From 8866557c1f651445f6a51de43687010149c06ac1 Mon Sep 17 00:00:00 2001 From: Ben Clark Date: Tue, 15 Oct 2024 16:50:55 +0100 Subject: [PATCH 01/87] temp for moving laptops --- .../profiling-ml-on-arm/Streamline.png | Bin 0 -> 128971 bytes .../profiling-ml-on-arm/_index.md | 39 ++++ .../profiling-ml-on-arm/_next-steps.md | 27 +++ .../profiling-ml-on-arm/_review.md | 45 ++++ .../app-profiling-android-studio.md | 13 ++ .../app-profiling-streamline.md | 200 ++++++++++++++++++ .../profiling-ml-on-arm/example-picture.png | Bin 0 -> 63167 bytes .../nn-profiling-executenetwork.md | 13 ++ .../nn-profiling-general.md | 13 ++ .../profiling-ml-on-arm/plan.txt | 20 ++ .../profiling-ml-on-arm/why-profile.md | 23 ++ 11 files changed, 393 insertions(+) create mode 100644 content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/Streamline.png create mode 100644 content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/_index.md create mode 100644 content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/_next-steps.md create mode 100644 content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/_review.md create mode 100644 content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/app-profiling-android-studio.md create mode 100644 content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/app-profiling-streamline.md create mode 100644 content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/example-picture.png create mode 100644 content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/nn-profiling-executenetwork.md create mode 100644 content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/nn-profiling-general.md create mode 100644 content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/plan.txt create mode 100644 content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/why-profile.md diff --git a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/Streamline.png b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/Streamline.png new file mode 100644 index 0000000000000000000000000000000000000000..e02ea645ce7d20f24944ba14174c2fb1ad0d6d17 GIT binary patch literal 128971 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�B(BOE^@J&KdUc|8N8v1AuWo-d)IIb3%DNU=&#> zHBO!HEVTZ|s}}J)aM!*qou@^mGaA%&ix{5`Ia=VY1ejKHwJK;g4D;>~q=%W$<_#xY zDVMXupiz!lca0wl82t9+8^@#URDu)>F~NjdA4W)bUT$Wn@^AfbTSW#RM| z2wmL78}87k`DE3j`Q`t|i(1qulp0OqVXH<(I_&oXH_T1aG!g>Y`nS*}iPbpnmO{R$ zq5m_&400wwdDmXE>G`a56vf809BTq{mE_e{Cp~}&SW??_-U??so#cOSVm6*^71B2m zR#Kajh)`Iy)~N94LHGYJR|$m11&#eTuJUav9flOB;?h6Cf5psmXCRCbASP~uIKQFG z#`E}_`%n;~wAi&N_-qjl#011N9m^z8;E82vLW%mW^+&f%do&@x+s0L-xPTNpLua}qVl!KJLa6p!f%i1 zZ~wHif=WI_{u2QMKtTQT?mZyScn1q6=|bHaGk*f)4HmEHxSwo#{lPL*4QIO7>0}Jp z3JzLj3aQ?Q8Umk*`tgT;js+bdFd8dwjd76$Fpz7#-e*1IzDQ1F0A05-c$~fekIeV} zEwc^6w{GB+X4IZhLfs(%JzR1J5+-rVVg<63>!_ib6Nvh^ zaDknGXX9fh|7c=!5iaYScvQpSoeLvzXd9}Jm;5|%?9j+kaZW&a& zH#S@<&&}>_JU&aT3*2wh{8|}{g7Lzj<%=uC^XPxT`pAOBEAgUJiFKZc9TO5(g#eg- z()ic(lDNnV3LyXIijoo*#qnZ11ej#q6xLMu0ry}7Lw)>(J5^r;EZ2c)ViUy)(Qz6B ztQ#tX|5-fsFHL7kjPOU<$VPR&x4ONRr7Ll^sN<15>pQ1G2!mbTbwf*P?_;8TcjE|` z;I`<1hzepnE{B~}RNYM4PJ##y9=^VwwSflTOup-TBdm(NYOtbe33@|a#Cn@Ku96w_ zE)XAd)TL>??rpt>@aNcWb8klmDzeab7RFQ>=#*hbfuKaTO0L~<=XK}Qh0y;nH#X9T zQ=Km5DTQ89tCVef!Kl4xxRa(>bz*3Zf#>!GE{I!$ec;*dQz)=0LjSob;`CCRMeMjB zyENaa0Numobqw#{)#xaAyH=ApPtQI>pg&GeKQ`1Y*Ol)j?C;z6z90NG*V4cLV+vR$ zGhSJ3ss8l3Xb&WSPzO3Yf;agk%t$9hhbGD_JeSGn8e8vUKX=|wHHMU`^3s zk<4!be@$oHYm)oi*?H*bA-#I;>ujq%Yg^`LPGX4Ack3kMs#Aex6SC2+4hFnZBizG@m;Rc8Z( zIp>1EAKOh1o5fSiUnc!~xlY}~S z)1=crKs%tFh&W@G)1F`hq<#1^8k3V%I{mF!m|P#M!V$We>s_V+|ZAR{v! za~pOssg6ftH?57o!UXy|dKP_Jz33ukI?W80rBk+iRRa$pk^ag5O6RbxXcHp^`dBl_ za&CzcHbqy9+n;~2ct4XEb(d^T4t}TJ>4b59@q7;zyy*s0R*bwHb~e8EFzv;u&!FXb zwquFq>;Q$*HBmqYjO*Jw%ftZ!iN>5YLvb2NgP;Qr{nwy_cuq1rR+En0)ca$vrAVu;0wtiLa9GA7ZqE<=N5Oozsx zZ~It0Tu5Vg%?N4DXW_k&{G%`LC;oTJyoc_MMdRb$w$%DO%08 zGzjHF=ATf0y!l9nvaagH*X?9rPJ+}6-L%S+e+}OJ)n^O?*JVYPT1`*N2ebS}bX?fw z;SM^Nkw~S^$ZZ;2T>g!FGDmnn_qGb(u$_54WRcMkNa)OGv%)rd;HWI5KQ z+hZ7@{lwr;09ukbt+}*9S_zH7?%Etde8#c$>s-m$VBKxnykyxS%m&2joPTLUcP>b7 zu*HtnF!UnMqgkJAEwJ6%em9Nvn49g$jz#OiaZ4~yd(PLrtOsYOgeu+DQKFJu-i%-; zcWeiN&{$vhCtg-22MlX?K- z6S^(P`FR`vcYU>KGLDL)7)>h5yC0-8jZvUYK1p}-8z#sJiwzEDY}I?08#Bvy&krB# zFu)%l#E2f#q>PuMiW(&Su05f89_T|mwYcd8fCkDIjU2ujg6M*G!Ph32+ViwOd!Bmw z(oBtV_|KNh2-1Qhr?3B*g+NJDtBu8XH}N?sS-*+;MqJ;?5ox8{a{Uo7Zt_>b9J86% zjYkNZ_Qt~7vSXGL=|NB^2W9cd$t+es(*G6qn_qay6In8mZDw|mpZRX&H7M?6mJag9lhZUgC%{tAx@*s9@FE)6$ z%r8`{$8gPqfA4v@d~jQPY45q!WH=Fa-lB3~OvMWNbb8h46`^ETs^S#*oDotTe9TC0VN%SpiT=rT&a7csk-^An(DyfEFW2toi^77gVuTECTx|f zqxLTy-RHCKJf}kTDstuX_9B z%GS=_LDE8t-H7tSW)@YYcC~u;=J5t3uw`+hClilc@1=U+*dDhIZuTo%o^Oo!AcWX> zSFFo`wb3?fo1rp(vrH@$;{;{p)w#X*6bO&k3(pkepM`UFePMjR%T!H&Tj+&`v6idp z0vq(+3U#@RFq^}Eks}T1LhzK=6Jlm4*Ern)H*98?sHrb(xgqg)efmUJLEn{;h>q8Ur!yYLZ>zb{KW zg+%p&9fgFa4OfHxW)!MQo z;J+Y~GWeHA+*zPV!Ry2oMBTT=?%Ypfr+qdMCsUBk}lHx9A<$N zfiSad2i?W>S(?-XO^&Qp$n5K1i7ztW{-OpjNtGhSOlOwsMNTwt_sB<+?uQNV@0*{c zpEIdY9)|k1yealjDde7|d3RTcmwReFB%)NBrBj*0g)updo`0vFt{0b_p1kY?!F*{` zUWV|GOAIxrf+z(w{ZJrmd%%|b9AApt;;F6`1paB&>vWw74;=y?S1bx=XI!fv67ZO2 zs_*oU`DVjc=kzX|Xab)J(<>8)s`u2}ul4uKCU_&Y5^j@udRdjTk+j&NliG6~!Y|i` zix45dnvg=R4Q)^BO1#jnh+A8tFH=1Tehb(4-L)$?2Gt8>@+F}7oL15f#rRALvn-e?wAteyG3%oGc&;-c6*QnkQX!y;s6 z4k%AHe=lDBy=Gb1BlB2ugn?xLWQ=2db8oeZMR++^_lu1Hjrt~N-pLq6hA5{*%3U0# zlP$x~>wv+=;{HU#fj9QEKDN8C%*nXYbt2s+a@7PpmC0(t+aM{U6Ot$ zcukz|__M6+nUxaN+mu@=%=1oxF5XO(6Pg+hYyPwbALT&7o*1E@Xt>=)?2g04<;r|b zX6iEG^)h{uN?;1a8g}@zaw*%XEyq^RLpo=Jvwqr|W(nUfXBO+c6)wNCxu5~oXCWVYCN;|Cny}obN&3@b z@217Nuf~}B#4lFLbttZ8rkRmwAzb~*Z-_3wD-$24aS`n-lPyDxjkvm;F-oZ4XV$?8 z6RUmrwE&s}qACvwwZW73X2Fc@0tSB`29H(n>cX?2 zribktbJ`bzg#75|?y6yoE71~}6@?N{eo#?4pNMSsZLP~bX0<(JJ*{}m*6H^gyN`uu z4E%x*aR@`k5zINJRa@gscDqozST>uG2+)d0Hrxf9e!8mZAB-Bqag(z(i4VI>?5^LBx^@YdX zxCrgY3C!)A%JcGWH&)QtwCDrIslEe#;$ccCp1MdPt4FlC9>*MJ(1uYznk;>xEL}zK zpY#*W;D*gy&mPIITIqOLlx8=117ElR#d5!Du_2fPtAYz=5=0d7E!g_E+LApd?|Wlt z(ECZg;3XuoJ2&iauwjO?3R-u{%}(UoL_LZ5Y1JIAkzEQfNI)y_o(1VXeI^<1SpL*$ z!_>#v@>@H|4TVP%@dvMqkOD`JkY=6*2%9+@2fbzbK7b~?xqIyL9R;pjhNMfQMCSV4 zuizbHCiRSKbc)DqF`jSXgt{%k!V90vHVF?7+>Be3t3oB{V}F zS+s;&V0~n%9LDBM8v&K2FV$gG?7@fNUqjlVn|{cs(}o1uK?u_kNJ=*>pe3S&xg;sH z9|od%ok@OU7~dciOK&IT$z@&k?ErMp2_}h{e|JYz(lN`(PQ|U9$@YTu;#FB6W*mvl ziq6Y|h=S{`pH;ioD3G_M*dcr-y&k*S=4Q+L(?ZLW`aFFQ)s$xrs}pR`6Fk2?T|l3} z`KwsSh04J{MiwDl5$*T!J5ORiNH#7E8GOsP&jAp0%j<_~aZ z?FfELA~i;LQiH<+V)WIXg%YWZ>?mX++AZNvza6nlFmWPf*UgR?9OgXD1{nzpF6)Y5 zpu*c#mY0xAAeqBbsh*KucEwYPoX4WS>r#5mFXlMP)Tm&GzW?DC^lL6uOjaNTMCgbX z<9mgcnRsvWm=U#k1X ze&#c_9R}$KjNo^?7T}OpnBl^~M)Dr}kGXY7Jngd36P#0S1U}wjP$B|(uFPAiMN+0| ztRHhDar?p`grihve6PxhX)tC`QYd1C%-}kw7_PrdjWU#68KCs-r#I_9c{bWa-7;hd zh8*^_07Wmy*RmJQuqzl7Jt$oRDk&89Edqwt!jZE=P9*_2jV8W7V~J za;;&zjqWSp zqCq{9%3HR|xiEwG#^bSvAQqQPImid0Y8KB=Nc|9?YZWV0AjYr!6&0z{-&`dV&u%|9x6_UXPINAAQWTq z!*Gx(x(PhxZxv;n2`JZ%bU1ilMjMPc4rs{+S0X-I3Ix(a61E28wWn+q3`FUAPK2n( zTM%X$#wlX!+DCD-OZ1#x?}&7=Uq@Ql`EcUl0}9n#MPE_Jf)+5wf)F|-m^Hf(v32N{ z3N1h)vuowLF3vJ>t6!Sn6!9n!D4bj+WSLdmZ_a}%DYNV}KxJ`WX)?`i3adZh;2er|9!Xn{_CaW5=YmRsWw#EC0#A(LdQS9k-meI~)=@&Q$#}mxDB2Txm`}UhGS) zC%I3kr$WT3hCqe^=C3yK2$H%$;oC2PyAMQK$0S0j(hJsDxf|*^!G{pPqP<-6BCnck z>v{CyYtAFM)JenobD%jJrsv>?0Bc&KKx6z|8m8D;c$iy4sOp@}p}S&KWQuGRZWHGU z-X|7&SQ>6@_b2;)WoD@qKDx>2$U5mE-B)}dy2e(a07`?wG=J#Gj;>Y#{E6Q58H!G^ zB*u~}a>s6$kqC8VZ++{pBW{peS&vA>n}gVBw>9e(uby~5?SeM5Yt4E@aKyS36?k5$ z5GGw{oYuM4##>y7ByQp=u!XA6=UlENh<8stq!Ga=?y(7t+8w@X@`ZEdIFmjDAJ<6S z`=;r(!{YermZ}LWGCl0)9ik8BEG9w1`?LtYD{6cKHa2BWxm;%m452XyR^^0#MhQ6g}C6WD~2{T=JTem7JrJdzP9Xb|jr3SFpC z1T5acIG3CpRAmj_nM0tbG;;8E4j*%sUcL_v+CE+{ePlz(aCZ$zYh$i09mdMyYlzl> zP937&uVKl3O$Xz2?!jS-9I5i(BuL7uzw9v*JGcO!)W!_c74NGNjKT-K>$}T zE5XH=d&6fiGE>ek(BnV6X5QH#C5y5dJig1MzahX&b)$---2x%jInANKdmb2-Yvs(> zZ5PV(l6B7l{{YmJKZU=N9E$owT`hC&Ko8u;i zML9{a^hRU7)_F#Tu9w#oHr-Os@Y4=kRsbt9`uBOOhW>M4QD3{8k zuV{@+*l8O?JHg?UxEJ9zZ-P~>`dcv_Yj6tP)%pfSrzI|l9=C}HPJeZ-fAg+J#}|Yo zl4d%dL`}+z=x4Y118?dun~ha))7KXT8Bh7KL!O*Kaz!iwtnj?P;U%*Y+7aHWo*p^s z(v?Iu&O2`qH!5s^XO0L9rha;_3VBOj61xO@3Su=i}x>{U@ug!}bw}24M)S+{d z=swiUJWC2$NiI%&dTH&N5ZYT`W*F<>7&I! z?3onB7HM=8Bj>p+Y58vh2vMm)qewlTrM%KzI{+|uThg}4=O?(w$ddlpoI#D3z=~L3 z!czM+|CziL%HwPDmKcI!jPCnlB{-ffqaXQrH6*;u8lcnC^|J<*C1Q!x^o~U#QetME zq7S=!UJaiTF^L5XbfogJco)yv@!UX?=Efo)J7$Z{zhb2Ep5X`lAy2DodL-K}4^)YR z16*&4efS3^t1ok%K02tR`wx8n_3U3+LEvF6_e~`10V%996cK!zh1=oy1& zmK*UsMf}}CLg0bR{;J54*h4NUXj}nUi~_J}ARhfg$>#D^_>^uZi@gO($^L4Lh`>Zd`8sz{ zdrQ3k8Ve}biAl_)^E1cVm)%MTw9{PDA75ZAMSZ~wi%h|APTrQlvhJrqaq zYGP-cwSQIHUG(bDJWIEg`%W)qk&U0ox63z(4GlFjB2@jRhOg(bX>I% z)7(_9_|@NCC}gkoKV1RZ798{{mqm`UIW$|it#b*EpjX`;3iSL?il4!eEp4|4&~*i4 zRLllby8j_7?1pk(&$$a+HF%qc-d5MKU}SWgCZNQ~Xk$r*5@)mg+IJR#(o(>wHFGM+ z4~|})2j>Bs*2Xj_;J~;;g(K(W$f?hE{kO_gZY8-#w*$sJ{q^ILXo|Q3a;Iu*V@ATS z?40S-t;k~Rev`4@d@8k@FkWGB4Zn88%A1 z*@Ws5CG3`emU56cm1f3M6gE!~gm$tH66xmbOMQeJsrjm=8ADoJ4|Y1R3>*$Fd2eA3e`CGtD3UBc@K2u zNPOe?TD@8?XZR}^4Bs^T!l*@$uh~-1#&4r5l`CH?!4(nPg89_ihlcO!e8nvE%ypxGPE!IOthBisE6YK z#S#)#seW>~s?!l-T_X*CsRj8BGy8rCbi6?-i!6r$2FB?4fKI9y6YLX7oEgT(UrHvC z+y?{d#IN`WM-IX&CzWXouWHa`ByV(!xpV!6iX2Bxb4QB>Z$69@jnqhuGxK=6i;sYW ze#@D04PKRRWw&u%7m7YW&#mK#ByLegND}Kuc{ZKEHtF)~jHFzc@+q9x7V{e| zSzN%KLzSF0`eIbH5;z9;-E2r%Wpl{DT7!i~aujiT2DbHrhM+zEwr&b?1A$J-f?!F$n+Y_VVe+k2GcPM@6vM4aESjA~=fp6Pp4N28?Mu5#W~_fg>47HifvJ7B z_0+q3$FyR;`rd@~uh7O)P_|aNA5s`ZX|7}*V#_vz1HtE$O)B4CZ--0*VGOQtl!otRa+~I#6N%(la(+s8R2wZ zoSVKiHBQ-)$>O5h4X~AzVwrx5MHURLthA=Rcw!REn2a$QB7R|X!_H8#h8;g%rklHx zxuX`mMc>G$2oLG{>Hif0)`C7yUYH=9gPY($$27dTi??+kjUNSFMA_O^)E_T0y|C4J7oz0nO}C!2PflA~pO?e^Av!yd zX9}g~=YB9Fq_#_;`k@crtE)Jg9bsGWtf#9cIIU83aF0|0GjM-o9KFUArJgj4*&vKK zkWpV-4?2luG<$P?;Ip^$HUY_R4Mn=3Fgr}y3QGFR;m^cDSXB$f-((SOLMlAsMPH|G zI1Xu}MgJhB)*l`%BmZNH|Hh?=O!iW4`V7s|Y$Kg)FK)9uUs!2KqI`8?zlR^IV%2vE z$-Yg~xzJi>NA=!1&!fFvM?3V_Ac9W0RFfPsQFn)Y(Da;PL$k$@$Vhibp0hXLr@lc9y@({ zR9b62L948n@uE2jWWC6EWc%*k$}YSL)8f(YQ=PM1J}|y7^85orcrhb=4Y?*-42l7L z+qHwah>rU{h1bH?P6y0+96re=tTXGh8x18Y&F_L3kl#qS>W4d1wgy2q@oljQHpedX zoPL;`a>XN?K}rYb`?4>gVtsmz$^mUtij@Aq+KcjkusZ?}>=x);>)ITtrgYEgf&`N)1B<^NrM5b0}!Cm29|BkueW-qBY{ zYsR?cFLTDe9cvnfL!wGv=Rb{f)5(PEjYvg7m29Cs|qAitg;jZ?eE69x5g@R)e8?bjTYA6 zWY;5hBO*5EPQ_w=2*tN}f{}lZiwcsT{zHFYr>)W{R8I_r=mT0-geKM(!-{>9ESLT~ zH=L3nQ8TCFzLgE9uk8_w??=|gP!pcFJrz;#aQx1#y{59+nx<&Z(NO9RZemS(&i1=U zP8Xw?&&p?5ywdf%I%~)XN;=Td^RI>LW~u|~^Am1`5K~J)vcb~HB;6>=*>PJfPNdCZ#!A1|;`?zX&Fq*d|>R-qe1L-u(Z>uH*|5Fn?U*u;x^P6diLClE+ zXc#w(kmYI1p2(m_Oll9s@NRUVA*KGE6vnB+uwB94zbc-JI`nBYgG&U{V+df?cDd_6 z{2vuhMqIBIPa=s70&8|E9i*uIEyn2U@9q+b-MP0nueo7k1I7DKCT5P z`+fW!vEc;!CL>~|H8UGQW&KSSzN5g2u!bPU3BX)+f4iA^u#W3#Z)w#z66J%AKnb88 zg8_>P{wR7>yV~=#*2Y93p3Sgb7flS=$$Ern$|fAm-=ir<_6@8Hz9rrq*bGuvjDC{l z8CXWQXa2;cx++gf=vZ|aIq~v1(#LpEb-osVI`dGi{6$XB-!l$RxvlZL0*)!uQW=_t z;Jr}3nW`6?!eSQwDnHzZcHH~5eGgTypmt=_qQ#@pT)0ntx#ZbaYjb7Sd)Nok$t$sw z{vv%4xw6Qcq1myP3XNttDq14BY=K4Lwl(9~ZL_$c@oU~R6GcCF%FMIC5!k44LHpm) zRrntaphIe{;xl6F2wc@D@eee7AE8mVJw;euF_&dLeAnRP9~3$UxoYVNdnCjU%|Ub& zl5#1zHB&7eWZCY)+MQtT_jg$ZP6Bt(Pd}VIezhRvN3O+v9AsWD(@$O2n;oKdD}BH+ zg`OfQh3{M;ex#6JYQ)1b2^Z{@+q9c_aLJJ}l`@`rcbS`2c9c^0tQJKz7`sDT?{Ily zco|i1Xyx45UJfknZ7vhW_rygJ@yr!ZBHAA6S*2$+4o@9oPXvkrY#e7dbj7^+E#(yw z#&(q?dzA3(-*rt=<*|vzyw4HLOzWcONMWNvLTaefjc(fqwi~;FFzj{GG#-rOsN%jI zQ^FD^NzU7trhad$rez2^Y)a&j=jWjHL`(vVGm!>mo(kC_esKWjsLT_4c-zB>q2_h2 zpckv@qB6?`Bz2l~TDOXwD3ewXp=y8rbT)JItD*WaBe!g$o#m82QCoj^P4FqL;(V!%DjK63h0M#sU+FY>TE{ydYVyhi|!-(`9A z`H(3_WaDX}iy|)IA^7@7-S5J^)*2SoH1T(DFT;!<3aFREINlqO=nhe zTo>NcwtICa{I)EI6#<22aIY#iP+mHi3{UW;aznY1Bk&o<%G#sdzRw6PW{~G>dS?f@ z^TsMXB@7~%GUH$U`(Sxnv8aVvf4dbI_WnycP35EZ|GW{ z)@WqGvum;^Fg7x<#QnW)0fT31nT%>otsW~GBay9TNHsmmVNY!oV_tTAgtYbinnwMP zvJdlVL67xrOJ#TEC+mTSbVA`re^ntizR#Tt*16$;Y;GAE;25puDjn~SJ)@(5n0XIv z>t9xM1kW~1(TUHA-e@({2k+&A*ErXp$b6Yhph_YyB+~t07RX3Qqw;_kyNQpUmD630 zMrZX-al`P%-6q4~omleL3H-oTy?Efp+!QZ*KuOssN}P}Sd(IeKM1>8zd_DoJTH1~8 zk!wM@H10*e_u+3zN(0Qai#gtuP)~mD^p7Nv&))GnLHQthSSB%a_X`-%N5vl1va&YU}G!M9wyuht@qn5Q~h92%2NwBvX%iW8N&92j@MwsxkO94lLuEV-?z63?7YLcb8Uk z6xH!gXqWVEROz5LS>4-g7(Obd{1^fjYVpHd9qFTYE%-QJtT+d4l@h8rKPng?UAoV_ z4^ldfqboX&+QEvCpL=#GZ|*J&p>6KKz2Gs+V~GZ`PdSg%9R3IDQ|bh=E@JB+K&h68 zpIl~}y#<_VBuI;VXo7HWSn!AM+oGq5VYOC$(msmNOQ~L@vxdms2O7CXEE>*^#o^rX z$+%F_mb%UKmNJf6VsXFq>bMg^dteTBuV>qRV7|W*P=WWnjXoSmIftW+V&{ukz|~MB zcc&N$CV@4|&00g0BUi|;30UIrw`a=@n%j9G&3@LHTt2i)7j(Rz;f%eVXhTMv*$Zij z&%n`|eebNiWdOeSKs2rWNM5w#XU}~Y7D9YzQ%D3sduA0D`Vm)=y1_#S@Bt714*O8LQPNr9=U9q zMF*gz6pwGw49EP2O+-w{031kBM-^6mwOI(fqz_P@Ag!-y8KvStY zDn}2+3bx1%sZz~!h?&i>K^f(xcTOrv1!vLY}v9!EbqGOE`){Isa&Nj zL5|+-Nlu&pbed>1$BvVC{UoGfvQgWIwYx^vD!uEP6fDWnpO=MI;#yL~m+R`!_BA@L zw~NoJRmwH2It7Nb?Qb79>-)FS7S|lCTBUy``Y_74w7-t^GZfcq7hv1*WEgwM!iF*_ z{V<=)jvf}nu!#KRfp{g%=yE1V8KAWYPnj@P%1Ctodx-sEJ~PKI5t$g6;rF)7Ol5&J-HLtlvP&Y-lFt#y># z^!Ycq@X%4jjhdzHb&eF#C>_YOV2$+q-WMjcq_~j96jfn z+|;2nkHSpfo)pA;0)2zZ6#<_1QRQ@N%XphVvf%L4bEfbRM*F6b%)kw_Cnn9i&v|jYfQtk&2S2DEx2S5d3<=sCE`By(N80=-KND`XV2$)6d_^x3+d|@`r;3BXNojQLfF-fp3f^YwLGN&_Qm&oO1+H2K+mr?by|9g(5Qik zPRbN^YwGNvys9&94?T(OX#2uPt*1yfX@X8~nRu1bhR8pCeDLQv(@-26f`3j? zg|pt~euf0A0~0fG|K^W`C}=&&sw3z-kRx`iAlAE^ zv4-kN1a$yYe$dm%`VxhsH`L!ci_G6-{XaHy7LF#z;8au~QfBJCJhZu~=t{gCUB9m} zAZ@a6H5$;|DqN4c0$HO|8;{zUv8k%-#52mXAiwJqs+%osa}s;)x`AzNL3D{aLS0(A z6XesKe7g(we_^Sgf4JWVpFZ|1{;F`B@*}kDuOl4T@^jYe}S0-`s*C zVF`XVc@PGicZJ1e%bZiSmhh0(w!LqZz60W#ufIb;Q7l2~g_)eg{NeLeJC{!QB?p3f{WiJO9K{@gBt79R>sbHGKjO#romZ^Fr{*NK8FlJwL9}I>-k#XDW0QfYp z1z&~wtA%v%Wcbfsgtsp{5C5Ju#FCj(0YDRm*b?5;#?D7ka;zxeiWYv)BEr-Dm41cd zcsfrG_3y1vnm84wc8*qSlc~7M*5uy9bHujTefE9Y*@8M|WXHh6 zZ)`zK;$TZ7nJP&1-l&mmEsoNUDs_aT;l$FPEqxz!-QJ881HVlfgo^8bjK+WfnS=$(KkYS!Xnio3@G=#%kQA5EYh|os*`NKbIK3M?Fe-+*@M0v zPgwL(!r%G(6P8eI)=bl<$)2Bn16UZaRp*V5v#SeE##HsmQq?6EB>nx?5XX zA1CrAPa-E6bR<5~GnDm7>BhmE_-Xuf{OeShP4^n~t(~j#lvOILWFb=-HED5DE9>LwP{_ zaF<6xNr9L0d24qwdZ_%77P>t>x>mo4d0+}M8tRWt1j_LSAA!Pop61mH4%PB9kmgbJQ@QMGx5uuT-EQo@*b?+ zz>+vkkYR@24Xmk9wQQGeZwT_~PU7y&y@#-&B+Oy`obI)1;ngTej6+p%o0U94`KD|W zF5UX25S33(JYTF|_{k^usZnj)QocZ9uRSOpZ~3Zmo&VL>NQg`q0`67$`^1Rw!T^)S zkVB8pG1V%ZtoRc~t6nk^&(xu{MJ;2UqU)Rp96nhrsROViLK|sNa!@R-X=4cP#opttMr`dIxYS|C>t?C9Ao-iovgO> z^(PTq(~Q#C5DdKX9&s%Fx(Z!G-|lVn^TqIz649ATyopn&{o60#xA_Ga4yvOG$ndlJ zqB%Av<&{iKoQ2$RZS{Q?-+P!2R`Lwf!wg*fgk=(t&O(J7WsU?11pf%C!F{*hg1c{9 zfOicQDF5sYvG0p912HaA^>yYhlnFW$?kS_D$z93fJ)ph;et&uZLHoZEJ)*BqPr=yv z*{C!a+FgfSi=%6O02o{vWdf*ZD9GXz( zmQTLHM1D3fT~UeexI_P%3dUoO-D8OYepndGzge zCo(*n{VQ=eBv4GMLwUszV_-WAcv{kMOmcxm&yOnJ)G0X2e|Nhd3CRRm^mSDPm2uza z*Nh`0)y|@pZLgy2vwsWg7Md7&?C`5lsO9CoHI2>)9E3O}epB?$ML-^@gO0j|R zmUEdt32L}e-a%=Q8X(r4$kMXMp7r|`W>pZ`;$WgxYe+mNvP|u*>SWnNVWINKo|sSH zd7d_T>m{1iJ)<@lsjR2+fUur8kpvZ)*PQEg=L`y;%;*1arrNN6@#;(QT9_Ii>QMG% zekt=4S!c3`bbU3!%O)heA$<}{C!g*&fBwBh|m6U1My%@gb?2A0{m^dfu&9? z5^t$)Lv^x$wu};Wp|FEri~Z#GhJ?xD&5$ctPJ{QYV1C%^N^HU#Es7~sIx7dUiDVDz!Q3ohFaD5+#v-2ySRb z<#!*7bEq@H|Fvg@0barAA>#YD8pz~3H) z!Dz&`A%Pe-<#wS-StB|xrp*%HY}nDm2rN4V-v=Lj@K@S?hGBX!Cr_S4Vq({2T zkBv$NJ9zwTBqdKo^uRF)_78>G*o>A&wG!?sB|gpgtCB(fS1CkN$K8zFDQO}TGUPl9 zlpaBF=5(Bi4n-C+aOlWKFe(3R;^z;ue;|B}t=b0L1O^78xw*Y?FfDNgzL_}%GxZ;yItP}`G$DNOilEZjp?@5H3RSQHa+{=903Z4;{-Gf7Ev0^A$#S6bcz}MT6 z7B~>~aq&1C5s0eHvG5r=9VhmDfD4VG!h)#K(4aIH9M6m|u@zrephC_kAQwsWbX zw^FId++a$;`$`4gx_>xn^yN5}k&gJ%ax{LU7H;kk*wl*J(c?u0y-5WndXLu=l$5 ztwq8QnMyi~G5fn6R#&lvN2!$kY0)CIPP+m%-)_f8D8mdyBSm>m^xfAfA^MGRh?4HZ zM5XQ--{T_hY_O3h>YsC>IiO2nzt|jwN#=0uO-;qt38RpH{47py{}*5~Av!7rb%{v` zk4{1GuB{lSJS*~}yIV>7ouNC^^UuR3VL*K&-WZpOPxk+>L-=dH`9Ns|H&~uqyzjYk{y_jn}^Z)nzAlAg-1Y?WW<0vX?g zTUOyZLn1CJJ}nx8t9^^xm7nx(WnSZ}yaOp__C_e5r+ERkj~I+?BS#>-{4A=Y!cdu# ziHQ79G1M3+MA_}WRjBPyOK=ZL$KNv!5CYpjw9Y1b1o{|6y7Tezamme+C+P0eIuDcw?Whe1Y#V+x^A5_v(SISd&v5xP3##DqUDfTah5}Z=%@|4c~ zCSL~gx1Wgm%t@uLOX-F3sCRtN+AOPj0;;#BD$i)s`D3wV%uu9%xf3;CY(mp{Q*lx$ z`|J0AgNy3O1xP49SL#=1eboG|r}8U3qlaCAQ7w(Q^t(eiZ@!|v{@ZnXFr+NIC3xCjh8 zRDy~+^&RNT3U}(IR3=v6@DnsUxqfe9;KjG&CwmX$()@!kjJX5{kF|FND*V0AoGsel z=G=c_Sc4gNo09RcF%92S+Ng8QF&Nhpj1e>nPpJdbkJ1jcqh^$p<9na&#=QIjBs4ZF zZT|o~J!uqnm#BieHB{H4w%im`gea5fon2oWjEnalhEYlP;SD}WuBpZSMKu^(T#8y> z;2Gt+)z{BkYtO(qc{ZwpeKGi(d_<;>!|}{vh^VZ#**>N78huRSUc*n7WBbU#_}f4J zi|D2nAxb~(r@EHXV=Fz=b>ftJjjX7}fL0R*1w>*V(iNx; z@oX=`2n$J$XH2@8rw;lv3_{VfbF2fs#q z##F?fcR3=*U51v~*W+YdsKw&Fu54dheC^cdsVziecG%pdC=d5X{O8-za7-N~Pf(oF zmHNur!RcrmJRIQ#`=Dek>U}3%iHM1F5qRM>2%R_wal^AjCqlSiIQ*5@+R&hmDsaTb zV{XO!lT-0cN+RCgorArtXGI-Qk55A_d~2&=96k<562p;oIsipy+rOJh)9=D(V+J6g zr4^=)Pr-C-Ka1}S(^v46_`ahu0F@zrI2#*@GlLR^NZc@aCVVcOhn9=4hVi2L9ey!m zE`|U8ol0h@S||~eF;d|`1!>LY3voKk7eTx7VBV)riej#6-ruAq&QzF7n{>B4#ebP>ZZyI_&T6cel(Mm-k%M{hFf#8VF zR4!%jGL%LXJsl;f+9XyEILUocTcW5|UjM(v) z;hC4-L`+?SXe8v==-IDQ;!PbG^qi?;LSi3Ts#5rpt810Yr5`>TITA088-u+WNr*mp z0F4FqC*z?W==urjZ1Mwke1kWxFx3lS zBHdm4DE1GDM@_IlQqwO))3@8vYPS7Ol_Vr8laXdW%cM)hxo$j2NVNM^Yq}5%S6`6@ zL!%kthYp}}U?L33!x5Ih3-v9kphOKoYLJs)K$GZE9^fjTh_7sjzjnb`9FB^$8&0Co z&}a$kTfS#36=_c*!}I>Ibi6uqk|jNy`F1P53~RuY#t^ZeL{WOaWKDCg-(l?4EIsX^ zf6nf7*jaN8UBeuNS7%&+gGq6S-u6G#oK`J$no0|R^Do8OP=8E1P=ax_Or*uahJ^?V`75_7M z|NHkiEoVJpTH7@Kx#-Px+UMMxizIF3F;Ns8YtCOQF&cl+QnE8iHW65B@ke3yq)U zqGHDzFr9yiu&6|x31KG=VJJdG`rGPL>2k-9EvA^lMZWj7@*O%8na-kBST2(o{Fcv| zF5TBvx;s5T7(WxkPM3>(;I*U(kC&(JqK_}Rr@B>n-qaDi+V?mHEw~RyhbFhH&(xTk zm2d@%{E5WbJx*QRm`a{BBsfNV@dHyj2+qT`sbR+^oh78AQAI-?^D8CgK0;LFe73Fiki+? z>SH5@UWUVChGE>160G=qpZLb9o=W9BH1912EuR+O?U1%uls4qyU9`lw`$2zK#X{<-kgiBGcM}GSdszU?B?`(7! z&LkzEV$^7%2a(>DoN*D%h2JXS=vcN{>sn3wcGxeUPaQ*OTpH>IB*Hi-9nlB&p}I+} zyJrlTh<#UFuDmxN1i$yH5Z--iDp`DIn7)Fi#P{4kK8EDu<%p@MMOwcW0!Bv-YQoZIaSNCE+BqN);#mIA=P(88;KnMc<*SMJvNphWJjMAJ)K&u0usw00O`K2#sa!-Mo;s0Qqhuzms!KF}U8G zAbf1n5J3HJ(Pz65S>GspR{qAX$ZqWP&zUOzGJKn(O?coZ-^b@8hr%2ZfwC|^_dnPR>V!(y$B=q6%5hQ=ap=UjttJ;ZI#EXX#lb zDP?(_IE# zcngZgjmFdeeizAStMI{?VaUJa2AlajHSXyjMsmzbkOr%zY! z>nh!up2^+Jb%iCU4GO@+K7}}WV7tf5Q+LtF_gZtD+QDL|#LhP+MZ2lUP`fGS zd%r?ais}wX3hu#MUq;zSFRSgEZ$Covph-f2JDZV#jL;#XO=69{4C?Oh&QgC<>iYQ^ z7vhsy=VR~iMBLUm2FI!kQPbMKenx4{QT?sE%Ogin`{@o-lBip~6jFnu3%;k+OAU6@ z=ae#El$5J;S5dsEQ%j1?&g!M)JH7VmCCXnWJpJ58Ol&X+OYq6ZPYVn10W}rK2ui`B zI_ehg+3(XD3hR|)=VR%%9b)~x0pUnc5^bVVo>M+D0pXx2LQ_V~!jjLv!rdQ!ZfXDh z*HDgZC5`{XP%6as@4}4O-BKaiPxPaaLR9v@>r;;Z-t!Rtb=cX@tzFNUiCeV6GKO$F)0NpXR3s2m#62?#7kp`q55mvBdx!^s_G05LdIMy%Fm(E zqeX|9!N-88Yk!6lF+oarPNM$Ze`rT5-wKQGo+B?W566xjXQl?@3{)2)p?q97+rk75>nsR&o815f>os$VrsfcN|8i&#XxRkG}j497qU2 z!0D4Py#KP;ZVidEL3_VM$QK`?{L42w2=3PGFjQNtR3A;K$L4FV!_jD8TvMNp{F2W^ zVK8mVkMPBLgG5hk>q}4B&6MfhVW&=_Wz@G6&ezhYc9P;9Rm2y z^P&<%q77MaK4wf8mY7s=qI0MMO%*?T)ER)E`xT(dNfT24oT<|FE2Yx)RcI3`r_Mp0 zQYcbq33aNNK6qL5!aHJ6^7)9WX~3Cp?7OFN6`D*YI$o)O4Ty(t%5bC>9!FV&>Kl`u z)2wOt;Qi@C#d^%PcM(99FYW!#3?7e@M?SYHz-O95MJ1E`lhQLM&Sm34&jZLnw8?;Ls5I1EwTSC#eD5<1 zL$c9NR6dK!jynw}L8C0X%ObVS3jaK8%gn&=?VqCc%Xcm5;X=RBICMA<9~sUdM@i$( ztlh2Y>~oe-1Cb_oqCDW4D`#N9mj9vVRQt)2nkq|SoOm&cmCE6qFLonVNxCFj3lIBcBD~ck@`9rG|8A)VHJ>;j z8jWWngD^H|IC2he#)ZZRk+*eLkc$n9#g77qA-t&>xwGcLIDE2jZ%A&9TI$V*|J5&6j$$kDFu&}ueX;(IdOS6I>eEqa%= zu9bGA)KVXIrfb}}G8TKr4;6W}Z_XdkQrD(EvH0#mh7MIS z-RCS z6JWaGr#LVmP)zU{^3osC^i{6q`hG(vU}8xNj@7jJa3=Jb^`%1=;{6MUiUPs+mDP4L zWrBtj*&0@43rcb1mz*pnziB)LgMT1eQ-|VIY&fQ$Fe5Y|90#wMi@E?Gglu~gro)ci zoY3&YkcK8S4IPcbqzHtXlaO|7pJ<@#Edgwa@UB)arSLwmz8dQ`yooW#)hYGfoHRxZ z)!jYe0*oqY6wj0HBi+7`NJB%N8wU=<*+~~zDlv0RF?iZE1j9`s;`*)rCX|OaVRulq z5b$3xpX%TPUH)D&oV44sA0Fs~2}uFCJR=BmM+9Ne*cLR5uEqYa8Wbz{ZZataUD_lx zgomm_v>KFHYR+dg6b5%4WJf-21&g*E#7UNs^ZKbaDSg`-0d5ok~fTNA3A+BY~F+5C*QN1^5{LW82vker65q-3OP9T5}< z8ct1(aq?mAs;J$S_)iyXn({T9Rwb~v9JK-d{%OX_@1Jd_=azQbUz5l0n z>ETdPm`D%b9sf)W;dhtLK4-~rr6ET1D;ypWix0+(MCBX0cdJ49W_a>w)W^i2E<6oU z2fswRS@}Md^QeJHmO`%59qIY|i8C>wvH@QWNx?skyrXSxLm&PO|3N4{uvJ(J$>%oS z9PaT>7m0Oz?=ug^C{r*#ADSvgkkIhj+8vu6mTSj!mWR|)aDh2Oq%G=@)LWgq3SC1^ z?0r_rr+#1^b6Ba>=>J6Xx zR`r+w-(Bfh?{4OI$8~v@hs#rUk@2PP`p3qB%5w#NbLSE?`T1hlcZWNaUoxG)aN<3T zRq{1@C!Hx5Is@f_G}$6`5WGI+JZ#O(K-6o0@8G|@<)o5#oqs7#MfhQALlQQee9w}8 zCbR_OL#Qrjx|cQm}q=6C>V46#tOGBN9)@xi5=D7y6gLO#3-ds^@r9BQC?HI@KAIO_Fr|4>fXai z`kdV`2!$uq(Fd;9OGBduqTx5{0ZsiA@pzx8U`y&@eU~rTHO-3{R^-VpFR2VUKfIp_E24Y5f z5Z*PPheOE&u|Fvu2L}v*@#FtGjBia%1q|oS6(ho%Hvg?dhnq|2;!DqlJSDX3_@C4G zk{@>RJMRoz->-FjJ~(L@3I>HEy7UxU^WM;ovJDv%xHE5|wXQ|=VV89+JDBTh5Yyx% zM$ey3QR+M?$wJGB-Le@td9Yo4eJU#}yT4@WCy?bk<2kaj)Sf#=W%usg7(afzw$?e` zc;gK`^w2}vntPa|;^4dFVKjt=Vo;S4bKl#A9T$zmo2) zbG+J!cMYSkXXa9bH<_?_^B#P3Q6}~!_>0LWeE;=Zm`|U*W0}B7ss1$SSiHH>Zo~RA1X{Tl|pO0Qs7%(r>NF| z^^@*HO?WJ>IG{8*j4k+IW;kN2%CLCHlP=#kVCIdex$sgkBx>n<1@PVZ3Kkfn5oY!k z`^op`^FF1*qE8~@>j)CwQ?Gvn3%}iiD|f3inv-AYr~Qg?CMweI^Q0mCw;2}4WJp|)RzZJ(x^zZl950BvW zuh*c_)Yd?y2Jg!)nc{h`_bm~X=eqDfr|-ABc_H8eq}4Uy*-J0PJKwy4y2|#ho0J3w z!=1lILsS$l+h2>lo1ehhX4NM+O)5#kAx$8Z?Pq@oq{Nl(fEWnq$1`OBFy4$mKX z->q;`BWHc9QW-)EZuZX?@1UzZ=`#vbn*;IhspGI|^eB{Wcu?D;;w(M5gS*dJGGA$g zk$~~Wq|taIHWWo$pVRiV$2=ef%|FZ*`SY|FU&f@8!{S_mI@HM5tSfZo{o3PS;TH=5 zbnWMCFRuB$qWKE9XvB;cXufgrK*_8;90 zpUwXgek}=Sm)w^C9EEeNrQptc+?L_ z62rV{A~?y=Gp(5TZ4u5Ee2VX?zY}>j-Oru-c9!l)&*X0Au7Xn{E&n96M5#|$jb8C! zdFn1QzSKEKE~!2nnvS0@zEVuW?X3LT{PiEPv?Z=n<$^mx-c8Zt|Yv!u?TCe0NW@4#9MD1pafu zIINyK9f76CVSed%V)E~ndEbXAbFw&Y{=Nppf4u|$F8;TrJhE4R>yGc&5me?pU`$h< zjym}*l?#!JvT-oKiKeaGbf^C{nBovuf?!{CI`_)TpL602(PbyP6!t@}*dqoQw5U9rCg zUnKj2tllT)+}Ek^;vW@b@yhs{#rm9sdAOR=e3sEXwj zw%7Kz;!mGeSlZDu(gX4IWs!&v^~JCKFT-E`vqYUFqw+ZJEB%Yp_^u4N4&_Qc@Lx?Y zYFnJMTX{amt6OpStc>piN_bYaki8Cnw z=PxiYE&@{%TEz2<3^K6z?nwdy?7L%N+^45|wR=0B65kh;u0^1);{whe#fE6y6!?7< z`$Q>~qH?7o5QjjelJr^QYQ&rETk6dT`U&z4iQ7ELgu@Y3u-S`mO_SMaVZYOmj0Hh=i2D&uK7QELxE>Qtj@<%S-}mmo z8}O#@81W4LQT93vr>fBOtq-D)_#lvGfl;7}6;+yO;=3auW*lg&5S24qknn!V#XrW6 zKK=qRwe@IL%JHKk%Mm`d!BR+AKhI}Ry@{IYMjWf~LFnfu46pJ>c}NKUdf8O`{Qd0+ zu5X2p(l!pAR)aT!%J6|wm<);b6NS%&fdLpCEIA?)mFk$%2DQit0Ph6`605BMDxoj#7}Y-34=ldRr< zcS$NTYTt7!oF5n0;M#*BNNEiaBQ{>MF%hskjPQ-ZUmMd!c<%YZ0?gRA1}ULxB~l+A zeR_Dd>`kDe(h{EhGiPz&topp-gM*QkJOEP%MJVagfaFNE5?NN`hZ9Pr{ma8OZarto zFG42aa-}l)*V)rhbZjHW#hdI_B4z%3Z*?9nF5QWS-AXw2t8;*mc>T0*kDi@7VMNGQRPC;aHE+h-_%YZ|BcMym32*nF`y5 z(@{RGPoG4AUo-wWJq{s*hoC7u5@$lAurp9?@L5A;P_mM~hMLMS)p!)is6uF7EB>6C zh3AG(b-A3i4o}UgT0DFvS-f)^1?Eb5(bL&j{bOx2DKhC@!3%^pW zNskO_KyAo0vGoGkG{%4a@^XfcR**c0T)+WpRxO^B|m7w>ZCMCU5k)fo=F@aHtYBXcEIU3PsKRmJE666mVi1}YV>2mqi9p4>cExOaY{-09s{QDh0 zM1#LSF3w$x(f&m?pC_ePO1G4L|8Vvl3@&<``ubZ>itn;BnvfmR)S+?W zmLH1_DtFVTqj*UMrcA^#C9fdiy}{3n&nBEkKy1C!>yQ4n5FwxY!mkNRNo~dpVnnh! z60|#@a{QUdEQ}~UjiR_n>=?EaNs)#Q;gszu3AOF0jc1MgE($7raJ0O^W;>C}jnN^$ z5P!d_d=He42@-(c+TVb~6|F9{TlHbO(YPCbXmaenMxRdg?NfPQYK!W_=?pslrElx; z+*fsIG=y|W&y;s$UmS_hu@h{zi}mrPXOtY_hp8z67#Qx0Ph-v(&&icGv^`vnucLOf z9#`}hLe}RA(o1$W{7(Gs2nvfUVX%e1p6QORWeXDGa}JpB`h~v|b)f|x{sxyP)pSS` zEWR^LAHh@N`;Dh{lkRl_eMUvxX8Z!zhJ1ztVc{qZ48%dDQbZ&*HX^B^5$9J`;9x@v z?l&wH+nrS)t*>tnSME#8fsGxly!6y6mBItcxz^W7QyNhNn;J2;x(aVMOu>4?g<|_c z(>J&^cq@*Egy3j!h|Bk-O46-?w~7k2p76$I-1x;exbgFE#NXCXrIjl7jxY`ZQs$Py zH?-q$WqZ$)uDN>S+n8|lgti6nAJ~e|Zx6wO@ZVuouo52ae#WSN^B1d4_kUj>L5{zP4LAbCw?5p)1e% z!|$i#w)l>dt?AKsdPyc6Ex}X&e#d5>)RTO3X#(a=aO~d8R``jYOrKv3O~#0YCpuNG z>C@+L=UpsDD|8mhSE$VBYB~GzpI<^+x#}WIk1OSoJ5U3~aB~Yr#JLwv5+xqXd9Pd2 zr{CpGNE+8M?nGbB=ksQy;pPh*=bw~!QXZ-&sj?b>`sbTs>5PLJu^2nI7zrWHMKKZv z{^fT*{?C7!MGVyA&V73m^bBTS*U`m*o}MaCX(W!lI^~alb}e4Q3vQQR-TB>7cwe15 z4zFG?PW(;S6Y2E4sHCG`1gO62B|V*f4v&t;#aF7MPxaVpU$|N?om^gp<+V%2wyp^8 zdg#4ci|~57>$%Y=!Khg^cE!MLzQb^L;PsXcIX&G`f9njk%I40dPr{XWH3j)1?WWW4 zPq1H(SYMyM&3kh5ETf@&g0qn!7=FtM1c%tq7xe9^KefDytKAw_>x)bMmx=v-EP6)cfN~-@C>3 zC;VT-i2*G(?M+cbiAuZp-NRRizn}Jh1xE*%oyOPL ztbRwn0j`aFu=RZO@pW`xXYFV`w(>(lf8XP^1MyS;8^!jATXQivbf4RLi@R9YGi~Wh zw$i7qcTJFhPaO!IvTn015gwi0-qONc!9-thUo*Or>EoS(XJ1lfB9wGlan$G z!!QiPFbu;m48t%C<2l&!oniV29{2ek770_#0GJ025q_`8FB{=gbwpjr`!4XYQ6MEm=jas|KjhpEh?YgksyYCSs&kg_meP3#v<^ycPl5i z4Qb!?lSGF@l&r7g40B+x@DJQBzJC7jdwC6fnw|+UzT4k~;n+cKkL$?zc4s*4A;WJPJ|2O;xl`M!VlO;hO}9Nc zY}OsREB$ynzULyHJHk3VolVc3$!FZbS-R~l@7EsP6@GVd7Tv+lddg?op*SAM+dB5FFZ%fbi=qu^mUO27OZBM=5?#ABt=~ekEn%??;T}_|vBIDa#*Y`AC%};vj{n`sp>-^hA`V9EnquLgg?#d6H z#n;|_TduhSe%t38XZIB- zacQ|}xp>wj@avJ!!TPy*3>(kW(fjHORM?2;`@?J@T+=h9=Se?D1)e=z2`9ZPkxr*v zDmr@P{b-#Ed3Uf5zu2a`28Bh2r?cr+{$#rCw)gHS?8M92d+Bj{TR1%w9+}T{Tlj5+ zlj!#QdWyahejDL*C4cJ*!`|j+~-RZU$p^uln`lq|}mgi;;jZl}mwpXuAZ|>6F>9en-e>>sqP48D99_#Om zGz@E9K%YL{(I2RNN@Bi|47`-KtGn$~hvB3)?82Wo)i5OPgvZf+sdJ_2q33M=?CLGl zZrAjss_T??w;g?nu&WnYp?}VF&vv?&axc24BRZQtt?z4z@1-{iEkeY1_;{f$7^kUz z^Y!%6+>K$F&LU=(_wyIl-ejTdyW<1+eekNVRHvWc|6YXeXYZ=k%e7VFSnCX0W{iaX z@BeS_T)^x&t^$2V^UzxwNq)x@+lrmX#0qvC62Ky{QCKChg7{Ff#D>)Zah#AKA#Y-` z>mWAlENj?=SdoAQL%<)*+jK!sH>_*dF;IOO{5X_smGMb*k(1 zJzck|Z}+{`_jXI?*Vmf+=-YMb)TvWdr>d(p=*+B+AqEAA3+J)()wQY7n3)&t<%L{0 zKXOg3Cs@B|K3g=q-hJ5)aT=ebuN)wLUYFm$*s5n?b>pR+CduJ~?^L-@40j5dRR240Qc+B=VGR-5b4$ht*56Vz5d}jDk36OGhk0p3zV!7~yNWAY`9XKZom2Ys zQ5E~CxPLfT?T6>f9(UOF>w;|`PSi8|C|kXw;5*EnAN^I7&ffA;w0&0GpCs(r8sFK$ z+=Cl_Gk%SCN#OX;6)eVd@G}f>PQU%9_1KVK$39RtBDH>@eX_ATbiIXJlySEO3X)2R zAPu7;C8;z+hzN)vAp+6}%Fx{mLxV_3gLHQYN;4zf9YfauLk|o&>%!8{9f!L@e8<)}Q86uOv4G{` ztpb&sY!-&jB(F@LHb!G~S2(G()aBUT<)HDv9>vb8-nZs0Hxz~_T_%lK3~lfGTw^Lx zgg{mdE{hcK-Z7kgYzZo2B7lTM$pNG7!SYMb0+&`i*YY07Dv5Bv5!}ZY(c6p=1JlF+ z#aNOz$e0J+SR{1;9g+@`7Xuk79VrI;_bKC<(^~{#YG4wt+g(vXf@RDucan^MEI_Bp z?BYsdzQH*qJQ-u3r#iNeO0?mh)!>ek$hlY9rv?%p%`9QZSx=R_4We_;nmBB!SFIuXi(D4z) zy}}ug-j!^$#-4oSJxMiw8t1Zzjl6tir&Uv#V}5CM(P{VB4$Wy_V!pJyFvsn<2z}${ zy_rXOAe1F}n+%+~Jty4h1dDQIWjbny&ByjISAZ?~jH0FDaN`WlozE5cvKHLYGB;xL z;G@AR*V2-#Z((6~&--Cl%5(q#9ObiogYqONmmqSwd99;EJCGs8xG|hb5l+jm%A}le z&dzg4jBs=XO>n{ zj7waLJ8y6z83`y)nTsh*StKb5miAJ51uH!RZ~B>^NXWUIxpzvz?g%&m&_2+%ul7xr_b-6sQ}}S z(DGB7sGs9`W3IwZ3%6IkS!XpR&u=H#H+?qGa(zxG8;qFHns|diK=XXVVzZYBa%6#? zX;!AWEJlPiY zBK<0BD4f{t>=^L|o{cv=x+O4EFBx_b{5|qVV@TfLpX703G_Tcb`f+UqXYf{+nHJMd zNg&a*xTHYkNl{mStz;e`!`K)&IkA>WL4}WWq|Hb)kK`LcGN|rGbR2OZtXGOL>Uvcn{7yeZ0M#=&e}I9j~3gf4lMm58klFvQ^{F!aSHOR?ncl!Bxmnamsy}eyPN{Z}k(VKtX zv77mzSk0#|Z3TH!>FZOFOG)QZnB}e({qW#}%e#yzUr$zv%DN4SjT3edF=*f$;pSfW z%`@|w{vni^U16acxrC1jfCE=`=m!bMu#0$IdiL;nxzenoSz`%q-_F+>{N*^opTAuw zcR!C?xjX%uuGeVqNC#%VGn@boUWNJ*T=?%b4F_s^jtx?|)U|d+1{{23m-x8o0A#HI znR67dPE`Huj+)+tyWp?@ZQY1?q$k{KuMPu^lhco!kf+!@lE7c?gk%!dAEkc3pM9_v zzLQOjPI@==5`BE_WLz&I;>$e9onZMDfpUzX)|F@e%ZaTIwmhZZ`Ojt!MQ@{ydkoRSLWqt!@xN zqr;w8LR13GMG*HqNaJs(?5`80k<2KM z(3`ohjEl~`+c5;BjqdJ(-ByC0&o1VGz>CslT=$zF?s*<2*tfaRlj(v!zpbs1=E)0! zBrM*zCZ^TWUzNC*8UhOlf6sLNdFY2kANXCahsQPMgplhrY07|eupJ77G#b4pd)hW@07U`;Vgw0=FZ_IeETw zJd41ii14}l2KT=@l9qw$J;;aKfrls43v#U2=VP`B3XTsl&a@GdcR67L0Q9eKZ)p3y zrkrmXTBdI6`a;O6KF#sH30YD!fp6-41X?WC_DmnJPm9%4)m9=uZQ_2EStD1eG-$zf zL;1`$Qw3o|q7qE7-+*LcHo5%?xO^_=bMcGZ4|dQ-A|NbG5Kbenx>;&`ZMBg2T*Pp} zr&y8ZJs#?-E@mij^k`<+%aqOAeb5s9M}lJHETvG%`r}I(&uiU--RDbvXBUsy%WtgN z#2AT|6EwR*!iRB=X5hit!$g$toe=g8zrF8l@3J!pMmtjwD09z*xx2p@%fezw)+icu zj2JzVZw43tEcBVZ=O=;NT$7M?x3U+3Z4qGhrh2#QlGe59TzT_yqmPW=aINvDruna} zq+h;TJL~BkeL9RQmTCM%pxYDp?A*Rp;TNX0F zhq!Lam=_}Sm3(I37tlBc>nB^e&rUTRZ|@J-;l*s!`P2s(OB&Cck8LMW=(Oy_FM9mx zhu>D_0XS!+{|8vGqR2?dA#>*L3i<$k=t1?#bLEu&#f_iqxDkE&L@I|NTCl(lu`1HC zV5`QjaiWBBpQyi5U1DkC zM>2OC=3qmf3uzHBe?)~Lxqy}Q%Ln@H^>rnVc9(a|4i3ou%H7L^P(b{Ox5hsy-B63f z+#gsRK#XAa38Gteb4J^*^Bug*VpqVc= zl4e4Il^wj=<#a5fRR5%jbIkdVF%3zN0=S;Ln7#lAKifSh0`z>C3~9(sxn8U zmD!)$nMr-K<&ED0 zUi<{$=O3ks-78?PVBxyr)b=ETQ0I{bt;p2EPpEy_k1YI-NZh@_sc+t&NkdQzgpArm z?V_R5>>%C-OklH(gxrPpNX zvLVVVNxD1K`ZrMK2h!_&xmz&iL1%wZC( zWzUz>QwIcd*5;|wpZ?7QaVhRE>aSA9$Yy#xEriC0@T>;Qj(e4DfHu`Zl`QMkm}8Yv zaRYaokqp#dwkL^M_2T>=x))q&g6`Scb4iT+$M`A%s)m#bd*R}tv+b3V4}ZgTueA2v zvMu`93l%fQFzwAA=uREh+Sp1lkCm!9g*_X#{|);-JGs$`w?=4W2AHi2$aT^mTDs`^ z)?PBYSw$K2uOY;Sy|j44l5zy<4xzJ;kd?c~^{PGwvl|C1kfeF&TW?aqVHg{yrl+E| zWdiJaDljs4iOj4p6b%08mdFQJYj;Tv#+HNkRoXQ2ot_4#%ahJMF7F`LI`#?vCl1JE zau2#(6zf@QSL>uYAT{dL7A|`vJcpw&1KBG!z=fAF1alzbxUyQPM3U8n=BASUuI^3$ zbW=ktpD&|#y^E3J@UXtif))o*v#+<2VMJ?OZs~*4TcW9@l<9rYvC`Za*c9isR8PT^KL(`qKK` zY6e^z^+3&;8c}Q_g&c zo$Xi@M9daL2ZCO6H{LH9LQ0>BPdB+&LPoYz1VPJYfXiga?eVx;yQ0j61~a((ddU}) zS|JZ zPO2}s$m7At`mX3)H|$2{M#2E2hzca~T9_Le z*vCzl-dTj=Wovb;F(E>pWobq+(h-QS+XEu(7IL~CXHe!ZIlQ4snj4o_GBY7=;P z@rKn`9v$CeD0OJjEj>}- z-<|^0vJTV;Em?hi7mt{iIFxU+S6+u?1WA#>dWYk4U(*jDmMg8)a+4U&+@0(ey9vc ztUNr@AeZ~;By2NXOE?u#5uCb{7>1a7Ub@Us!`3<74m5E;enG_@>eja0_0S7&Ja6Dg zRyOO#KW7FRfbqV|a25=>{JG>!W*oK@!IyKF7^+3FUkbAg+#$!y9sqA^W(F)Yxwo@M zOXld*%Um6_9~6kT+=bp=!T`{NVE#YVU;0fJn>`OWe9;^Sm|@?=tG>v;xn9-B9MA45<*VO;LZ%wd4Wx3Uh~yCD|Mmh!a?zvGw$ z2!)LzfMlZ}$HLZ?c!WZyn7hmF=CY^5(|s_0fT#(vNM5s4TT)`r9rciA!u8Z9e$#*)CuAvBQ*y3a$hUyC5+Ba~0Z04~>`LfZW?eyrJJrU}k zY2p{970Zv-!><~o7JFOv@Jij^6do&VSr2^7jW|tA%Gs-NI<=@=V!heW6S*9sq_nw zEOct{I*sVl&G(&#k@Hw3!A2(m?KWn8oz@VbrS(H{2vL=z{IAKrf|fvW9dCrTAP{#d zxm@q~C!q;PIlCI}+52vv$#=8Gb7Mjh?#t#MNq!UMhcngPJBuEJaqYIE+;uz`VMDF@dAj(dbARX6#t z^Sg8xy`q0Y?J)QM@Gs)uo{yrod{$wX-E+&{Fb6!Bbg_crPNLee6HC`7lG!O%J5mc* zPrt4?XnLjuaWcF3dj0rIZ+@>@P*|O<2D6G)^P$8<@~G=8O3?={r73S|83pkfHGoBX zooiAbS&>;g9U9k3pV`GVWE53Xx`sD->~@{!yXHvajnlwcFFD=rtSTjW#z^u>!5Qo| zxtOT6_Ol(1Y4gX(7?THdYQD>Xyp*Or z{zr6by^!r}Alu(Aj@R4sLZilPzN!fF41P4ywH2Dit>)RXlehTh=KS$@w%=GXYn!R{ z(>Ez?9yJp_-LnzSv}8G_=&f1($bh8@qH!(np-v}z`KvoHxC1bNkCVW5O5cJQ!SQ0f zR)?goYrSkF?o`Toy}XG=5S{@0d>oHwLO!%qC+?U5%Q@) zTrWl!mVvupk~|PyENIP|WaX6={8JFKA*c_zj3gQ8b5Gl2m(mOkWw=z2te{vt%nqSF31Qa9 zUq9SR$wcL11ylJ%aKc})V=E5%f{JwT83kF6gO&^M8qZbY=aAN@bU!;x?QbS3CwBhL zFZR8oHTEsV^@Ca^F@X-ZdldL{6+Gw<^7ec2;~Z);SD%c)m>l5n`6E~{xY&C9#HVA6 zPfySDU(@qpL8d-HGrczR18lGT+?m1s06clsP@PVC(oaKf%{TS4K#Z+8H6o5`!jeHrW_BJN)>+BMh-}v2m4-9Ukw_ANq+gJf6?9;-VN=BIY09%4@8Y(x(9g` z`Fh0PceC0x7q3|1ddrLC`?oT`O}g`CBJ5cBl_LVHXm3kQV7{(X;0{jZ@;s%me(gw; z5-=M%7J259+f`2-A8Bz-$82P!y_lUgF>MUxZ1jF&cNHN`5_nty#Qois+@~x$k_Xxq z5Rl@3K_=|#XZTOwoQ_teU{1icEM9Bbp(bAvLZR)lA0DH<*Ph-+#06;m8XoIK#l&5% zlsR<;zEmsBygFLvhkd;DS#|hjI2vRLJi%*w!_sdo%&L}+KcP=NWO^U>=NeZ!w*Dv% z3srT6Wox4oEPX#*sGiI{t5gH9Na^HDm4EZidTCbb#u%#rnNwsU-G)7i;oq*~-`**i ztd#Wk2{;ZxRI6@9Vu)DgdD2_f^Gz;~e=FwK+>$~nH4#nqkS!ChcP!idpRQk-dQSKG zB>BAmQ_FlvG(oSXqvrG|4}o)jtm)CXMs)tU8SOcbvb?jcE9a>WU-zmAj|)9&)=UJwn5^99wPbKyaD}f+=n?3+$zVxINag&w_W_6T z4Lf)li3369`reHLnVX;reaWFG1u`L{qZ;Rn-c2hAeSoHFpAGByLhc#rmC+gZ&I}^HxteZpgEDrcD@nV!vEp@ME~7 zm6-a?Fs0_R!B2W~>fHJ~-Buo4!xR6FNu;I5`_8m?G!nxu#SDdu${VG9&W{ZePJcbS z@xL(qVg*y@3tAg^YXB+(Pi9c&T!~LsvR`0T04zcNY4^c6743I@`yYCvX6*ezI zBDvfBy#v4$lm&8zgiu1ogw1M0Ff@|YhlF&^`(7UFm#FAFTkOeEQQ_Lv*z4#t^=GLX zBVZ#Ga`_Z+L)o%7pf7V|=@`?~}!52)Fv!YSOP2e_Nd8 zDr9kZocM3VeYlCKCYX>ZCSd*1M{A7Pe5?w$0&y4rzv8&xjqw4SPRY{gr)|~jBA zlJ@R&d3s0}7B6|2Bf%z9rzXw9^Wx@yg8fsDF2IAWYNaUkgDaU2Je3wW1ouM^j+ zVQ{mWSC_;G7w}yKiv}No?ENv5)D_i2BgKl(-_c zaB{cCdjcb+@$0v>S0l~Z7Yc)S`WO}>+Kr)SpTnsa8?vKF-RP_$)t&eajX8jcy;cK7 zN3#C8_p>S}d86-InYGJqndZg{FPzslrBS%_MOt2|t6I4@)_S*1Ps+bNt^ZjVQvK$Q zeTj`{AyM70m+DCnDMj@7GhEs{-)C_zR{Ck-a+GeVNq?(qD2rc;7E5)QPhZ``$1pY3 z#Tj0?e^~vEzApb4vFsdD?yTj8a=<8YRQp&P+-srZMZ2w*i*Bm%X1SQZv7F=?EDb=KpaF#hII7aS9 z(_${A3_a4va9kRUb%(@BG>L6#eZvj~A7Z4OVpUSEt1ieMEHSV75h}NkO{R^`NJ`nKBXrQ~(+M$on^s{p$Nk^($d=N#53m@O!v@wp zHmcaaLQt!$Rw$?Otm;6$+?*;&>suq#1Gs(eV%30Ln*G;@tq6(_P`ab6&ZuO&$8j`d$C@7-!LePN z^tR$FXWvF@+5x7^>0`WQ;Dn6a34B>G`;;G6VC&Dcd%bo9-NOT%zU5t)^;jhV5$W&J zT`M@@Fv8<(pBbjQ(s0;!G23^B@c2YgsMR(-^Rkdhln|HEep}3}P~H7L^#smJ--pjw z#dsTLDVWntnNK93klw$kCsxDotzI)cGRX2n)%eS;Z3Q;D#-Gx~kNLjWH}C~Ds!^CKDs`_kV+yQh{h7lA)J-$ zvk!VTMX>PLLsg{40vBn}^4CPw?>NYP&0WB=vP6q#vDtQN(574W zagximQ%^MV=;pntxFc**_ z1>&PiOv7NDc4UyB#GMi<6~UYd9F6;sn^@9x!rH>egHO%O6e8~}$lu2olnal14exk- z&A>?hmUes~md{msjQwGNY&t1BhX}+%(_?eE=x=&_Y1;CMxfQPvq$4%Oyz0pu*8gyX^yCU$6sRg}g~~)mfB0|l z@|w$yo$;lCgHmjZ>*efs)3=gF=t8l$6S}**Nnlw zo(GQU^AfZ4D*AfUq?`xR%Z2(O;ZqdrbzlF&dd0GpvI=x;puUe>IaTs10FU8oJU(R0 zZ+d05NpZVRl!dDC{&Yda7rZ5`vjqcOkE^vM^6C%Ji?CKTzyKFpA4N&cHd3Pmsfvw&$=?-h3+PRYG( zqjzQ2YN8i1v8Z4sJ&p4$!<7bifWSL;rwV1*RV+Ih?pM$XPbE0 zsIjK0X_b&78}8Gm^VqV^c+?84rxY2*3}kU3lZs;^o-H&KoiBLat`IM}s5_QF;-1j(Cw)@X*jv);rGHg* z)lA7>k#gFen|8!44;pYVK2BpV$@ZGQo$88Uu21QEgI<`&YLXFupP2I=bT>1+K5W;% zYn9Y=f!C`k(0WYsRd7S(*2}YR9a|sIbbia)b7S5bEOm?LsR1C~d^(VRtgI>&Tcg!P zra*%wo>zoNdgH!p-CUbV#aJswqP_P?h$X8;y%K_zyXWIKrvatW(=GexHUk-Ih}6Ut z%d6JO23iI8?{#KiTD7mmhXuT9^Tv7~vGozTb7+#MIrjWIy(X*vygi_E^fhDe*AcN_ z_Ry4w?B^~xt5-AZiuy@xd@I2ETyxk9@ z$C=@OGWY57!YlGpdRVz=hq%)p_Z-n3-5$fLnAY8)Otdnxvq&0R38TNcwjOGuFqEYC zJ!@nuJO*j%P;5I#y`*4DNgk<;hHj8uG`Sl*f0*gJ5IcTRg9x;b7?Oe9VJC0NGX^xT zD6TN;WCYt4iOT}`e{^M8XY0~0sDLIyErZNciDoqL{6?^k1FLYn=;Vr1G3;v4#0wd* z{;_47fKB-6gt5J449Lj0?Jk4M*~LRXMk)-yy!`s>SY(>}#WLg(?b z!R>wQFfXRl{_?AiX-V^Y=)p@)^?9H{qm*Cx0DkkU8H zu_(;DL%$IJ(L0&o0&5pVctQ2cHzB$o_;62DFj9j2jUw z<2^oBU%4<~FXo9x>Zcf8rmaWjhb_US`@OCSzx4I>v&D@(c2IM3RXLL<+kvv4L{3FG znlz4Eno~DzysinE7W}zklqb-UuQgrqNXNGe3;34uy4L_Cy6w zEx9`qh6H>;k&8vRaz(5UwtJ5!w%oVkM4w?L4tsmj>H3SJK@Yh53sc6d){tJE(eI1w zCaO6#Z$#9{Tx;Bv;RY6Nmd{8mPuq_k&i*SPa=n_c2OMQrT3p5eWPs1cVf*3UoTV(y z_z;T*^xLU72WPpEuRN7hk9cm~%MUHk^EbmfI8vIotp-bqW8}HNzL#u`cY7i$@3B`d zxRv=PVE=@ygyg74)a&8)GGnBzJKm}mD*2Z;=3t@magxF&ueV?R{s@&c`*nCRlc>(t zcRN?Fo<9$$DNuXe_{ww+anheABjuib(|@V_>zra>`uErK_T!xV3w}6bq#PH8&?j1a zWtnE__Ye{#ct;YaY8yiSg90@xaWSX^lo@~aWK4dEw%N@sk~uiVzenA6$Owv);jw!6 zh@9Tva8BgUcEUz^XV1pNDziP7nkNtrQoH$hVj=rE+$wpWIuQ4tu7{}yk<#|ZSt}Csz8;xVD&oT5Zh)QRyZEg7|Mpm&@ zrBdANlD$Zqlsn>CBq%Oo9X77i83-0Z_;|@qcyy2@1VFr-htKaKCN?iN@f*g^WK}(5 z1I`Cs+@v~~iN^0A^@jLRX?!=cQhn;%?(*(F<4M=aOaJqv;6`}|+3J|(i;mFw`()$! zJNVeT{^OmrwYIWDQw};^&%(~kMiEK+eEsCf?Bi6P?763EgJHXamUX*efXmPq5@nI1 zH$MRxl_CGJhWJU=_jMT2Qybg}iKoD9Q?XR_Ax3j;01=9qtJ7qcElzKBkY9YSR`a@) z2Qo*5afZKDK_k026wFE#{t26sJ(IQQ{AKoDz*!w_V*g)$Z2ZnP`tAH}HoE-CTfw~g zq&5;2Zy+`k7+zX0`2nWNUxm#j;54SyYc?;b&Q+G|M=}C}z!L6euqBgM7k-Il8y_7H ztU^9iK3^G|te<}18z+gq&LqHYGMIUK{eK|DDozG+V!> zPKF5@VPD7HpT1XxSkcRKYfm3N6~gN$!qqMhPCY5s`6FDau%hHV8N41wfB(m)7gH@!7q$RTdeD{xw_JqNBzHTe_-A{atO~dES;fw@mp)Ve!As3 zeP4W^@=ld@)GOp;q%*a-zG|PC;<$Q8I^OVrR6xd?ovrkVHJfT7UWRLNBOriRnZC+ykZPzV}@BE9ymh8rd ziFj8R(khK^Kz*+N9pGEE*#ReEecN?D>MTEv4!|qcq;yvGGQ%XL?!PYREOjtefKM0K zZ_M7<%W3d)+R8` zqpv{UG9SBf7-{D&1 zfA^;-fXoYHm6|8L!>D20c(~jeZ#=3lQJZGLA$AG5$GGr^%#Hzk&>onryPKGa3Ot5o zsoioBMDB*d&%XZ?Qm|gkS=54S(--}#z}&cnuzy^fu`i{YBGo#7PdLn7*)guD+Z_Vik_cf3lkPbw*P~%>o1H?bW;~tlcQ5T zpboo!xNXL3-ObeIQy=v@S2z|%3z*(97RLDTh(a5fBBDvK#%m4; z6?6pwc&1+5=S*d>cPo{qiVGd;?tN^RNu8SoJl8Ldb4@k=xY zb^Z5}eQwch58na*eC@ge<+~>x$OtJ?V3{pw-ZI~~DP_r_dYzxqtUc8Pl`h$HE3~^H zMI0m1z5EH-uG$t~JVM`t*;F`wT|JufkiH_t)5U5&ELX5|_aT(VDWg} z{wYWU!i6l@uWDi z|I$6$>pu9WMIyHy*yR}to_ThnJ3i_aeIPqs-)56L2D`f)WdTe{kn=X#i+Z?mB#g62 zRC6&?MPm|&k=pN7C8^U{{P|FOD>R@4<+h^d)YUgx&1Ds`}DACr%*CE$%3XOtS zpsYuNLpWx5FJEI147Dr>3J#|;xKXcW;W%3z`wizB(gl^LqXI<2H_0(ZO@%%>rS?oW5(#;zc#}LdqMxgy=~#zxmk>K zKq7WSYnB2oN3{OWvWqo}f(bPLChruwpkH$T#uj9Ik5d6|757~ZzOhL;P`++uxFB&9Pvb@jb{bL3 zabv>&HdWmWzcDukd(`gl7M99er#7{Q{vk1J+{7Dp5!s^HzU~GTM>=23h7{^t<`SoA>E{+bRP|dd% zGd{9T!E-hCUfy=2V<@@i+q>8{tbOsjUt?2}eFW^1xIp~Vq%l`B*xw2wjo$q%bQdn# zoA$%<;IvqkBlFX#|5jJsB<+390&7$CWTL?sDUKYikeVpa8@K_{NeK3Is(s!{7cw zdb3_CZ9h)?r{IOeBHJ*d?LW`&6?{jF9#fRXE%g33wU1H+HmI`7VA~!F1IVevaaWlH zt2#&Im6o~ZJ@(|qJCr3xNs$VeoaRS^YvJ0`>=h^k)5w3-yJ+*>TGnfBRuK0!NZM`{ z)ApP?vgWUB$NZ~(B4M3mKNYyAFqMqvU8S4rwlIuA_p9Dxx_UG7qKo5~mHLn_&c zUvX`wN2DQ~L9~Ci1b=t2VD^hGIyINLHsX6z+}Hpk-y+h(7#0Ww3y+P1(xfFMS%Ti0 zxjg$}sg}n`Y-N(OXBvw}0jUPR4-b9ka~1me6X}%|a)s{1&3LQEP5!YkaYt~p_l$WcDk55xl+Fl%ds zT~>JH$*KN_gE_Eo>E%${)qBo=?NH6d3cYi>0=FHX@dOzONOcD;Xg>MeKkxtvVmL2# zR_fQ(lWvpyglgFR)zVAU`^~bbtMP)$D=TWF4TsxhRaM5=(M%g)Quz3AS$({!VJxz8ysz&^Gu`!OE8$Ms zC(!0r%EgeuN^1}*~!e351_K(vZ^~7nTEY^XQ zg?q;o*uiNvcKt*it8bg1wo~T`;Nbx(KhENXt28O$84pd*T)2r8*S*nsqjjuZ>t)!5 zb+&6jIr-lRVw{YYh?JA+YW`2s{u>lj*QI3;;6s|ARm`i5z@AKg>A@>cqdQY)%^g%7 z%`(GXieG-#HM?|Fx>YgxtQ~rb75uGn+w6U2(Wp~ZMKq6?zKmy9;HWkeqPW)r`*P0K z!C@$-o0S=2-#7oR%cG0u2H_MEuoJqZ;ZOaeBCM{NxR+?|$>mV8*zji$Db4wDq!vYoh)9A;mGMSvypI`PHPt&#n8IKwV}oW zRED>@f~jf2cpz3?nujBFJR+(o+FQ=2DZPOZi?sbaxp9Gs&V_#wsUsTOgZ%QPe{uOC zPi=Pstq^b2G!{ujAwRFZkv%+M4$JEs%UJUmoz{Bd@j)Qoo#|>io%dNg2J{g*kOouR zn%NhsC)UM!tY)J5jnm_?#)*v>j`GFP3>5gj)-T^>C$y{v)?dYgZd$|ch;?)0GnNT7 zmcSSZ2Wkb61%Tw3Qpl0Ib_WO6V)g&U#Bhm7?f;Dl)}}{Cf9=K~N!)o9tnQnPZ9Sjv z7^a>mwCdW~7u?EJbOrrGq^&Y>^ycVXDvt^Q{6Xq~b?V{F4YSu-SkGVkQ5clZa5!18 z_o145Y1ro^d4!to)CaT;XGEGlJ7Q-wW{#)6ZZ=tEk3}ZYZ?lV@pTZ31Z^yv0*jthkEf%=Yz-u(*NlNSS+eW0m%iw6cR8M3h{W%* zabL>UXvE$JCM)&yEk2`y+k?4R;RP`6?az|s5+D&G(32T`dYiRi29IjqAzZV|{)hqM zbQ!y?8KQ*CFC=e&<#d0Nfr1Hs|DAsiF`@G&o8+ByDw20n?#p9{?%ik7xS0}G8j1N= zJ(!(Du&lnNX2#X#z~9QF8^65qn@;+3i@6GUb!(8%U&qpyQh0tDzx3F4Odsv~|8GVM zU$Vn5mt@vK5M=P<;LflX-nu#i<;Fpl33OWG?Jkf z$EwC=J8n@Z8Wlye)52^>GbWbap6?5y=?lAcXY^N;>K&pcnOk#`s=mzM%#rda$HUZ45WsI`~xpD&Wy)(=4FV zd;XKj;rlEvxM%o*nyJsBBVyx$+J*O0Hp8U7J$1@sSdx9UmtOfYrJJbLdMh}(5<4A! zI8Qkud6&CmMS6P1H|fhibpIGeowKuxDz@L{vY6P8+cM;y;@<`4o)mKk^7y=8?p96G z=KJ-+qo-efTw|tXbMy1^Hh12wN?yC0!^&=rfVcUq_}$mF1A8>XXInFhMOfW-9P%DL z$%W}>2XT5@tT*{E+Qi&^`gHayQ4@vu82b;O^wW_bKuCi|Q(~=8>pyZJhbSPcJ_Re1 zyDLhcjMX46_+#1shR?6G>}}T>hxHw_rv~&u$lBfw%(_$1@B*o^**Kw%&sQxm9H7LxSVk02oE&Wz@Y23Iq#7`Q7xc{ zVDR;`^Pck2rEV7Q0Wd4^tB0*PlmvN*N9CX9@yGf1i^bPVy$1J`TTX_KJ9am(`Y){n zyXwE$|7@7-`~7XW^R>NCV|IOq5aGnix{5l-w91>j!)o~j0Rbx4MBA28x4XPDDH#&K zc`Pyt)byA?74B>^(GGqwj7hJT5JfB$fCt6*mS25A(xy~rZoyvOvPB)gUWef7)B7Wl zzvoQWS?(oW=dG2R{b&Cbd#}Mut@UHhn_E9PkKsS1om@N>-M&Gd_lxMP#Z-wJECUf^ zpzDBr8hLt_;GEMm_1(p@B&RN5-KAGk0XtPyggST!sAIm>F`K~8VnzxlhqM*`EmHG| zb7Nf!vwvL*dkX50(4JJpYiYYt+wlArVc(3Tpv753)ByhT%(R!@xrdYqf*SNP>ewR+ z9XIJWum1y=QaIkM6trE51pXHE&8)esP}_G@`tYjVoTpFRW{BVP%kh_*C+YR86i<<3 zx+~-F#)o6>jCYEK@k6QSlt>`MM2VH|&Bi9+;_p8&BcVF2we~p8*U$VieQb}x(cLSjSORVsh1>87t=UCda^JY5$!~@fh(P3oP1WU zM;!#gwAKRqCmkqNhxOYr72IE_oJRPDt&%jJ3m zo0^mXZp+MEV=~La{n}9Jk|$VKx%rhtbAU~ouQv*vuW@iaM^upAFS)EzIQ+<0SfFX6 za_p}^=v(4An;QM~C!;jX4}kjcv~N`fDsX4q4pjPoVTaw3d-NAd6DSx_fG|(%yvFXN z`~`8f_pS)^FNiVeOC{(2Sd00KQ&g-brbVpCs@D^&{b6yBWeLNcsp_VP806NK#N8Wr zzqu<&@7CbSV)TY^K)86wIqHYJiH?79H?Gq7@N54q)3gr8|A(!&42!bs!iH5+6i|?c zp+iAJkQ_i7MM6=K25ISLU}zPQk``o0=?>{eKyv7Yp}S_t0S3Mcyr1WO-uL~EgCE8m z7yFvE*4}Hcb)M%kc!C*^Gk>@Boq`J?zldR4P-+g?y+j#kHve(D(RileOYcq9bVwoR zBZ)Tis$P3I^8awN##YXLT53 z?@!Z$(`+=qM47RkS*?svznaZi=!>Qmb>-#JdACVxX#PH8@mwGb9=tTS{&`^o5+%w3 zofJ0gTNio7ewJGuYX073(T18#$L=gl_GYDA?z|=WV3t>2UQ)^N+P)m=TGEn0|a8e28LO>h}dqf^ZJipmEg3%Hme{RYS>_|UcOqNA49CE{t{{G z*qsyw9_3dSjH)bCBs*AdwS$iwYnn##f1kl+0nRwt_tU>M34V;N!I6n(^Bz{_^}$1> z&H+c{;o&_?IInQ70&(zg`zYJ`D0$_0VJ?%^JgeQU;dyXW8HFW;JDzl%SnBLRSwp!e zsA8_ZR0w)*WJnY&S-kC041%rijN}cys_3`J>|K>DC(C#moULsSl3dmCZ&#{L(Z9aR z)cwbLB+rPNRO=_}O5Be*Z&uhLY-bsTHu(H;?{Zas+s5Rl$$yB+BjB;F=Y zlGY&5XP1rr-XB6TmkBmErbe@!1ZB!KrjTN~M#(3$ze>Ha1ve4d##ddgLaE?JmjtA= zJvhAZ)6YNg`$Dw4yAE$_V$2a;2a~H@c3jHm4M$p|n@$sFr0eoe#s(utP^;t=J*J@? zQwHR8qgu<+$l6a{ol*__Yu2>1N#SAPRU8?lE5DuPk)j+r7QBY@cL-D;hoJUrL_) zIh^reI~lU2aUb9<&zB^B1m#0rWUm^ail9m9cYeMkXT+NI-j~Mm*U%w3gjNC8$jI;w|3o@J1H=u z4OgdV!Nprvz#Gz6oth0|l=^sGX&$Up{s1^@9(18U5{SK73lV)D=C_KDVq-1rK81yU z&9pcZ7^|ED;C((SjS3ZGK}fn$M#AK~iXlQ#7*yy|$NvP%&yq0cdV% zX(g|==YM2;d58FL>a9-t`QlesOuVS8?Kt^*R`cPjBRZ?lq;@xe@uVEo8DL}O+Wg_% z7OvqNdMtO-Yd-M?9YSt}ks+vkR@k)meoG9hP=!q70Bx?au}z*G;F~wMh!^(`cALVP z&N)%e`H8#nx9^NXkmjriC$v`zh&(>4nw^>-2ghJ-9@2ZyVBf@1gR;9N3y#&1-lxSh zlQg@g{g?=Z@^@_Kbf|(+#`E#Q0~F)}mO-1n2`19TTo7|4N)Ek6ejAX&*_%+6Ce~;W zW%RkKl@cd~_dl{wiMU9$2H-RsNAY9CLpN^Vm5evkt+Xu3bXg~X-%Po-17qeJ7u>#Q zbgGlplRaeb95UUW(v1ObkQU-+g}dn+rw8*xt<`fyvMQ3(c9pkQIBljsUeLlVV*%VY zxnZ?`ncQEO__;Z?{VJ<#AW)T9ztOyJ_xA}m$nFW`#64=P=#Ru^Kv^_`gM$_voqJ|o zc!D*;99{Osne=oX{a9EpB&upbNf%zHD?J}9Mh3Ip1UJKhk{ii>UsGig z)dbFzVE*SA-dnW?3sz+<9&PgD^`1OnI?OG>>1xpQkCYQ1pSgr{9HHqDDEilvhGpv!b`2M*4oyTidmyXdT*c}?z1mF76 zc@A(qL_>;$|A9%8IGM<@Y*xSUGTJ<4{!SK;(7>FQ%$ZP&(dEETn zWc0x^BIA4I;Eg|my zRDm!01&z?e1(*j=Kl-ISs`tyn?td*lv4zOOOGa!i0acs2LPO53*2B+7>tIA(82RO= zIC@k2HhK#wN^ecs8i^}NZ~JqOwd60Ayy6r_aChY_FSbEKdIN%_D0+53}#U zC=_u^sL-s%?EPN_=JKvK0fZjiR3=zk0(qtB%$tvP&3wkVdVh}DQbqi4$I5d)K|JE_ z-=O2EhJot(ykt++LO~w_JgU@OzDInVeel5E>LI>TsTNE-ai9$|AwV^l zF>$DYM+}h?fx&2o;yH7X`+gNF9?Vn%@^A~%=~42WzIatQQ0yG{+Yttx&3pWLFZl@| z1Y>o|u#N=L;b-cq9t1-MVrwwdfx98;>UI&J!FhyjpFnK;Bgj`j@ z&0^kfDJIMQ*7{>gd5|Yb&6OerNPJUlUwWzA$%{T_41l_UatD(%+9a{drk>e1&JcVr zDt8z^rw6hGlI?COBbY9)QI?5BS;`Lwa^@$V;p?bue9=&QT_Y&>P zs+-e$lxj@;U9hWPk}fouGE_(E$$YM)E`{A{k2xaGgyD@Nu?4>Qu~TAP4b zM_kP}MVU5gj`No@fDTE$URTmDF+=s4dIJo~vO|5_SU5a<=a&}*Ph#~0e zPK%0Amq!mZSv^*xGyAwn7|-ju|I2xb&gDaailkr~){5&Ron$-}Sx#=!_1CS&E=gb6 z2FA-&a9vjRVvAi}nH)3_IYQ~HT3I18)HA6w=!30*E;_M(x(;JWeQ^%|@qbFPe=01= z1hRlj7pKRIx7UffLSLP?u&wHdq32#2$H|2%TxcA(=WdVQwl$mu&G{iNuc%UbSpd~j zdc?;4mx)ug!K>H+1|k{YTkWk~Me^Ho8Qxk#?BlCQcEn8&1!Z4OY_)`jt%tT-g^440 z(k>c1ng6=P>uMbj&L5bwgSkV`%m&>jGZ#p@P$AN04gOhOL8`~RKTkg$t&1iv5Z6b& z^0ow1-l`b|mp$WS%nFiIvt}}>`JySwHiMSW>|b9vT!95S$A96WqB2vJJEC`Nrd~E` z4mzzO&6qO2wV%4EG+)?WwVLE<*cV#aT6<}B^L)?1_oCM4(i;OYFh~{&POVIuAgn!% z<-gAvXfKH*8yMx<*psMpTK+KJ1R~lvpBd-1o)pfmRHAz4V?HCXTy^S=A)ij4KDQmx zr!=|K{I?4xFzi-qKjT4|oY;H*IqJw$3{E(JM(9m#$kY8$uRmd*&c8nB?paZz zqlId@SNO#YwJ&UH6PWYRC(h9XU9cENDhZo9zGhELd0dE{snz1G{SXd&=)$4Q{#MAg zy~G8^8%pSN?<=vB@(Upo<7Z(NZ~^)n<=&wp9UAG zel&Alg$Z(YJ@%@(sz++D7bzm$m0{x1*NY}WTl7QcA-R` zSCvJ!*^)5=m`Uz4sX^4p?Z2g!Z2sqYF~W>X$DN&;2hpk5n@L<^==q)>=>UTWBRhKD zSYZJJQ2uf)okQt|eE`p?tR_rE7{zAkaU_@>X#7lM3HLgKUbFTN@m=Vc3>r4ivajhp zYM-v?JU4HfRyG@Y*OKuXI1~@g!&g=0A-2vP1>q{|k3ljeVpg5A98F~51$W=>VaZLg z>mh8zyUZ>n#8VJXVOcM=)bCNjt?<4R+1Nd4r5K4now8~FQP(&uMim-F8iki>y8z?B zPog3C8h8NvTG+ctyhO^uOaDZVC6yi&BDg*%-STby^+d9`<$GeV%KJf>&DKw?##R3V zFl72?_h!WNxGmB}?bIfq!}fH4RLAZUotSIW&P?qgf*5GA6&p6++Arw6k&lodT13Wj z;Cm`&i&`Y3Vq_M-2|tzy*KiT@7Agi+us672ha8HmxJ~W)TJ>~LU(ED>I~6yO+KDa8 zLD)aRNSxlKPkb?E->@?F1aG7GsA*)ISK!T=-sIs(ZFc^+%NLW0IS9#jNzIfS`#n|h zi~@vY(u6W&$UhI$jZ^0ibBqsRj~o}w!{k*6;jDq8e6||U;?1)!VytX4DWS=oyIeyN zic4d4nK5V4niL0g%8&NiLAQ}_JO#s$CD}z|4h_Qwe%Yh7G zar|AyAtw%tTdOAn9`zAPoovPPnfqD2OE1W4<)i`K6WyaB4g=UXpmO~=GH}N`pp0Eweys*wa2?DPC0spojSTOf8Y?7G2PKJ%F=Hnr`7 zA0F48tg1SE4&k3WTuoSg`%B%5S-clx2Xr!- zN~V%$RnOyA$JWqWeAI42tH-+El2qx6Dpg-po|!x@BqIpn`BV$kw^zBA+{0950|KwI zyZo}up&(DnA+GsOW3%FU{M@9(FJ{{=>@5P0S?%dr=j_y$#12_3`c!l~ojcJ8eWz{U zC}Ebw!Q?bMN_nIZmDQI9`14qfS>SiJYUHb@OPjvm9E!1>?yqowyG1%ROti2MoWyG# zOQ_>AnkRXwnLlkH4BhNqGw*s?ld|P}5wcEcQli762q*#=Nrs|E?q7vA17uH12EV|6 z1v>)4$X>W2r9~lf6fN6jo177iU^Hiz)b*Tu6g8CJK(!`OxL<9z@G_B}hpqSbVJJ9D z*_ZTC4wWboS+B>D$abKSohYBA6~%TVb1ggh_9q#5`2yD$@$U_U01|ePeFmxV-0ReS ztvdQh9pHGUThtPMLQWM}i^-rJA77-Lx}0)^{y-fEuAjoTc#z`A&e?^LLAj8BZh@=Y zuO4nAQUNt=dKa!q{zWlr<4Px}kY&65^sHhM)#6#PcZ3&+zvSz0G~2~9 zkLvtI;o&q{6;)yqmkhWm#mLQd<;?jO;Wg&P2iU~B(a+m|Z(C+YBzZh^9Jf4kRc|1o z7uPEi!ot=3W+wKc#8xXS&@9m4_gt7lvTKbqohQ73iBUwA_KC;JlZ58GgxJsHU0{sv80IR#YT=?YvgkNj}Y>NzcbX>kSk>kn;j zxMKi5W}2mjom}U7Y?hNZ+k--A#BQ^NJm7e&VlC(UnOfW=@x^ z-7X(hT#}!{ql@%4iwAXm2B-O6uC6p^RJx9cbtzFarvDkAnorLnprI#IE<1{UY9I%o zTet!FqIBeg&ga4PCv*ct?Z4vSj#5Z(Csia?2SOq<=N9OZh zv-2e4LH?uWZKOno8007U7y-@(_w)$BNiv_;Vg5$?bIS3L6#dh@r~MIwT&a0c3M$YA zwWVQu15w8%hknxeGdq!#%|tLs12WSJ2G(sPNfspxBvL4AwLIH!5Fhto4y$kvX6THq zo8gIksGRJwo&a4(eIR9FcWE%DdJtWd9>@fd?gO8tOh9ca%gMqbf|gQ8*v9RL&}U)a z+i5HfD`oSpOXMblvw=WCv3YiMJb|a(Cr<@eJ)&HriT6+r3GTczj2SPz_G^D%!Uqb1Oh`Q$Gka&N-98VX-=UO{#IAzVU#9i3xd;Hl zcyr#)(Lvt0IfUO$h9jaaWAK7icr2WPS+@4C^>(kI)K4{SQ2yrf@V=NrtSyJ)MXQ3U0;((pciC+k`{^IQTE#WL3a8Xf z%7YIaIK85){_9b#n(`+HmRU-t<@8(XEV_L=Q3H?7kA4!_><@;iu-N$g?p8vqHyuE? zep_NhVm%kmLtK?;`T2fj0=W_h7|&Z2yLAl$4FG$v<}fLPN-e<%h5HwN(9!#}buoWa zrtn0q^S$P%0fzXcpROy)m{(^fOQ{Ee1tboW!d0dy+LqeF2jlbX5R!nruNwvT0LD^u zA5d0};-OYcODa3zOWgC(4{! z=oQA}!hV>$zZ#N)aBjJ@!pz;G0pGptxrnim&%r#qa}@vZI`lvyq~76OV}Gc4CdEiX z&n870raBfV-`G6|dAT*-a@pG8nP@&8!b?Aq(WYhKc|hD;Q|OZGtmOFmlqHK(@2*-S z($wp;R!DEwT*4+qNfPN_C9F4j^hnqHp-QRU`kG*!D})~ZDqE6tFi?)f!xMQsrgPsBpp^Xp#0+>0hKrQ$R{Z!Aw|gp4 zTK>ay^uK5#t}AnHV>qKn2)I|<-qLTLi;Pm?;N+ve$=S(8^E}QD@(N)zvU}4$O0e_f z%ui#BU#a11gEt4%@$`xdxGwl?pbrUa;PhRf{4l*qZTBAY;vjAu{lKRQj6@o8Sd^p} zZr15jid%`Oo(y4vniC%9L*7PLa((l5_F6)lu9HV1s&u1a?~ts6PMkm^%iv8ywn7++ zkj{W0?oM#CsyM#nNg2IAjn78?ztq4N{jJ*^?^HO`OJw9ixpA9+wQ8g|{nV27qKR-E zr?z(P&BZ+pp{~(pe+jcQgPZ5~VYAzA4LmG!mXQi07sF-AOS*5m&J;SxCjOFRrVaf> z$~G;AeQ4^GC7W*u<$2IKl<_&N&xV49UC_QHG23{xrB07G?6j~-NnTQF;# z#}Fe9y@n68Y%inY{!v1@wjK<_X<#qH10c(j-ZoT$vc*&00)e<$IYacY%5uHK((Y!5 zg51zoFEfC4GDiGKRiy}#?odvRP^J`_l4wX5t1CdVZ9Hf`jVV@jl?eBo8wWK5mLu`t z7afVRegF+62d-8#&aS)^m!Tu;ZG~itF;Io(jH-t95lXdyzI(AP zYDXl=bi}pjg*sq-PO-T#lib3ty@$NsnBLRfOvHuEc&TZyNP0UU*1Wd68y@Zgs5t*1 z;s1vKNY>tk7mKrwI2NUNI7X3+B|^7x(8m7}%wZ||R+u!r`E*RTKM!G?P6ju5pWaO^ zf_=Qjx-ci9hsfu3OU0TectK&B{@nkbS`sPeo#OkYq7e@S(iswznZBrUb`|txj7IoV z`|G|tWm#LFuX%-Bi=yU-aq9*4*^rhbzQ9A;>{@8PX?OwJF!{M%Ku@r7V`HknYL*06 zrf4_Lm);kj1m0Vl=ul#hzYzP>;jKt)iT==e4Qt~6!yk;B@bJ(!VqI}?!<<6y1aD_Z z>D52g4leJi(P~Y{gd@{t6B99n#5bF6Dnf&t-%A5F-*2&3JqOimTDKjJ=6L9BoG!FR z@o3w8@i;=~y+osQ5rLI3(`fDM{ns?lP2$OTfofmHQ4zR#xo!`NJ{LKpw`hJ1I)S-v z15GobS4m$!)|2r`JW3$n;#a>8Q}9)o;y5As&xtJ0PWr}aaJA9yLsJH6`!SCJCRhgfN4T9nVRSteNIr zcKqIOxtX-rw#i(2j{^IV8FQl-ld2aFdpuXf_Rb$ywg$yDQmg1WW?a->D)>-?&if?B ze_6$el(pv;cp5^Xy7W_H#NSmvx$+l#*Q#GO!1qZuM5R3$*_HfOxQCk9%!)%7b9<>3 zR9@gIjHhthI`?uh6N?VK6xZY2DXvb@@^-TQ6NW3Q1QM(><6Vgh{H zbbH6qo&|N|SdiBTTj^$He|KW!y5G>(>-^R%f<5WwiySwTA(KV!uY1Hn&Psr)BG7YI z?VI)ABGlh?`vwI zmTMcr0a5-dF>UL^J_YjH!_JAm3o^7#WQG<=Gf!7pYqGj8@2)$0@a$I(#7Wl(1EN8!2eHYCb-0Pn*=;GSCh|e<4eF&e%C0U}b6uznIW^R*1#|@;kaW=Z z6RU}f`nw6p8{>-2xR`av!$Xrk@<4?mMK(wIRWR??KlkxSL*yG{zwl@|B$;87f)kR` zt$+*4i@5jdfUqJ^{?x8^hvU;~l?(#BJ-!pHzq~zIL@%Zo;tuGr=QT1P5ukh3bX3J} z{aD|3`C+tQvj)Ww*2?=_ic*4T0*nspC4}@NdL@QdWs^4$VZ()VMdR%w(^eHXt##5R zRvqsVE(Q7ct|Adxo%ieePHDo9kHerR8ku7f<`82`(eBLo!|JV0F;HC%h3G92S^@#A z-3Qd{a)j7VDe*;Kh#I)5{}-WvSO^Mz5RdZLSQz?fd>0c^e*^Z|b>SypVtp zz?9DDYSEMBt2%hlwQ?^on&YYn5z%bx<;)x7UsqLsI||R?FpgwZ2Q7Cd zC%xpilNP?n_)|zh?R$G_GP_wB3wVBgcu16}`yLjJPIJRj|?Q$auZOr`s)T zSbwHmZ&*{&2c`lrWlL?kMyFQ6sEu^(8;vLINa4UzUo7A3eMBG?5KzB+LJxnhHHFIMp5trw6lhn9t*YBg{4CA~1k z*?7i+d-YEbW=|1$$Hq07>d~vBLM9p=+akS2z12)L}_}j3ta&$)_=?;AOEeS zlSBTnXO4(%$hNzTNLgI^?n${*bzM1?TW5T+@^5zbGQ1B4`cpJ|S@AKueXgM5yL zDl35-F7ekQ?p2q_)4aQA6oAuQSFiLV19UrX?xtaTfrTj7kX;L!2;ne4 zDH|n_rcWnC;;^WPGWk7g!85)PVNlB=@%IX**r68`Si8b(URx8-#m(B=Xig~hVWyi@ zgT$bqb3w&QGHc0i!2aXG_JfE7TgW4fBBlnYkSLkn2ZrH#5OHNvaQh{t2lm#ooS<3b zbl=a8WZQ_9>ESsA5xNxyPEJj}u+UYbdu7D-fI{9`$$-j`V7^=ovPHsDz zrTstxHutIe(i8g%s{CB>u}fxO;U^fMN24tE_S8_gnU3R^Xk1 zXGu?&v5M&N=%=(AV$T&}^{;$>^gS&fnMDoydzp1zr<*b=k$gwM7GxT}YhmgDh$T5B zHvbGQok9tpDLG#xPGX5X1n!RDX-GuLx<>X4#BStDnCAwFFZq?V-=No+Rr<+q^UDkk zc&V-U;t27|*b5;GZ{@__)wgB_`6rz98&}h81F;7AD^;Vo*I7)U534eK4k}!V=a6;@ zZqF~K6gYtRknb~4yhUA;DGtx-XzxnJ6S?>!ptt=^c^yjE_{P8NQ6WZ*$MZzd9 z(51?crqWzVyfW@6A2Hg; zHfgFo^46iAj4?|o=?NfORs~4Ih!TVWmX3v17w)#&nm_*xs!9DPveY6 zP2Q}X95=#eh{M4s{AusA?b9+Sn9$RWxW%zv&Eqa;R?4$_j^JpLT!8n8_qT!Rd)9n2 zo$+!NV@SpJ6PoOhE&oX-q_ao@ny>?Nwn9lWi|x6)B;{=Y#C^BKtz#SPcQiAx4AFNT zga;S#_cX+s3*ZaBVHoDTX)L?QarNkT-lzA}}O$Tf=er&Vpr?#otLx=^M>$27hs zFeitq0Ay}Mpx@kqz4OnDF@`n4A~TclLrWm?sejkVw+*t#kY&;c6~581@m*pOsj)2f zBTQcRjoONiyBC^FoY0mvf?ZcGqK`Jf2f}B*C!PU=@p8u8qh5NWXD9b(Ju)i< zXuTIg2Oi0Y2@k$$;5hkn?GO)VzG2c-{>eOERn6csRp^mJd+scAj!N#Yy4okVzX*PL z$#}t>7~l}k;ZS}c=#*sEu%8E+vb7=C**Bt-F}OD$u+#h=VenWbhl0iRduQq zwEujJZAWVCZmLxcuK1T^Kr;yRs%99k9dZ5<(*Fo|wq!aeUkCop+k%ND!hmz87#-RL z4!fjm%)S3=F3A9Bk1t+jQ@hn{qf%aLNkW+Yt{zN$iu4aM1RUxl|xgkI&6jJf*Gly2K z0tCZmbko~7@Cs*Jmsmy1BaGPL47YBjek(fwubTgfnN21pHf}ApT-=$|5ZV|AFL2Vx zbscIFZTtNaQ#^WlLo7;%=r$}M@c^zbNiT5}D`$_%cm-R&$@Jl8A9ww`%g|(!J`MZ! z(8OEtj+9*2rIT5KLGZies)p*Bjvcjo!%_gMGUjK&Gon}x7F2sv(tXyB?JNJ$B`ygN z8e?1&t%lW(SU&p@`oh@j_2LYFV}p~f01JEPjUn}cRFe>~IeAc*k}YN_#g^CiJL;B` z`LkYItJS@Inu!ACA;5J4F;xe1-I`N>2Z*HN9Yq!)?+;3TGkEm&A8ho)Ua+_OXv^Au z_dNdj&_3FK7e90NgL(B`tt%|1e>YXOK1E?=o$%pHOw{N;*%S?Mr*V@0?_HIkVoL4z zkzK_NOWZEax)T{cw7ieE>%ibzJ#y7V34$`ktN!M?9(o{yf&4bLYX(Xb>era)vQzO# zh_X1njLXq>H}ul)rn5`;RTB3(z3wM?bI(B_r+(DILA%3U&$^)D33f4{asMFSt?ef2 z{jnV>5)Z}y;Fz~`-p>0yZ!Z6of|X9+J*|o)WGux>+_|bBdYKetqQFm~ASLx8j^~Xf z*$W|uu@ckd=L&6lQP~nM(wf;c|5;li>}pl9-z_qnD&z1 zJ8|ZJIgPE2G}N!h<{I6)2Zrs0?cWiS8bMP=yd(ywrN1FID#ReXb zPuVC}2K8w%*Z#7o01}Z>`azjk=r5(ex;7q$b}gEs78>4JKHrT+YpuT_*8dVDt_Uo> ztHJQ3j{}KQeHI*Ed9Y<0D*CIKUj_B_IHWJd z6AeVg;^NFApv%^Dm4B#x-F}IcfCVm|qE1egTvmUaN1h+t%`$6-s@-iSvkTgcfT+5l z6%6zfiduI?mqr&Ce9kPmgG`rdpVkUS`dwy`GX- zJWud2fs*^1ej)`~1c#qb%jwroe%mUrDr^n0E-Yx-F(|_!^+V8+RR(&@7 zf%1|}N0#a3fKXU#k+|qh$-{}bxzkIe^nym_`16O(4Ah!joLBP;)BnI%2?eA>jnX1A z<5ji!j8b7w3ZgaCYP6{BoLedjzvB_tc~XHJ)(2~_j+JFjOrC+$?Gm5Bu?n>10>e}& zU4n=%o>Iu?Y3HPe{6;_F@5IK5w4ndZ^_%XoQu6S3=cVY z5)l1PUAz}sPrPb!BSx%cX}$tzzx&Nh3aDR!GsB(KmO3@XuC@`zWhoLV4q`@3fYsjU zU$U#$m9?{0ANx=65AmM$JagT`T4hJ8R8v+d?7%I=S z>=Nj?eTJ#73Q!}EO=9g2`(w*+=Y}Tf2&1xI`P?2TQa<Po@^dcY}6X@ zjV=uT$W;K(2vgeJI!dN7MH}^x0;36q2&>%aEq^B0p+_wBX7P3}FK~FvKa_-3&LI(( z%97USexLR}E7ksbJoGeC%Kj7QOujeIZrW=D?;I}sEvcKwcIW4;qC5gfKXlJ6oW1VF z&ID}D=R+Hox)8lWvcZ83+lE}7dtEn(Ytr|hnTIzY(Vt@|Tv9L5eYG8*dlHoCyH#eXB@D3Oj>e%ZRi9?o8q zAUS5tQYQ~?CbG%!SWk$17}DW>2jt$@PXF#k<7HU2DEXrH)><%+>7ggMA;#)e4twJp z@@!^;DrWb3#MvYt<`jcSo<=v}borO2ay{+6?QgH|3yjuHIaBs=e}@9D+Gpz(Zj@6#)zuYho{L(IJb2_t%*ki%h`IW%Oey zf8vTNfs(B^|7bS=6=OR6(fAH+vZ2q| z?9L#bUUInAWNM}Ek^Ex1O0=;GkXh!A146S|i2abPHCl;=#j0Dofc|g6O5c^WNrLO2 zgzS=FSiL2JZ>u#?54jeE$XD}S_&VV0-cWQQm+TnXIiblPN;A=$tuKJYA* ziv_RsE$YNm#CV{BzvY8nKaRCNX>}*wctD|d`c9CdG5o!zOgJcFu9hJ&{F{0gjWfFi z4;P_Nf&0!H)%GwiA=5V0dFg~kg#yRFARZbTZ&?}8R&@&|=H?s;HmDea+QWmk&}L8A zQSbdA6(Z$2RKO|47+)wB*H$#Fk>!mm*D zhv2Kp!6{(;LJwP6j!WMvTsykQ*VhL|bAIoWw!&=Vu;yd4ibScwNiFK{tQvxEb?u~< z@4hP%dkv5;HX=B$t`1<2*4xOQZR?nS`SSqu2D@OZ0`u4pqqgPqKAG|?uff}q_WXU+ zYfIqvFUch~y@P`LKy5!T%tA1(YrWCTaR@6r#{cGndX65LBy+Hw@iW@IiMe08er_!k zzF7|RqqoZ|$8_haNMWj!?+&{s3{Z)xf*~H6d=I7h0u4?#k-{gT+w>z^*33vDN?{+k z4Ey5SVHf*}?0m9p;;%f`mvNJ;+)y33;VG0aQK*q?Mjm~L^N-2xE?b^^&01B~rz{HI zmTcO$icy+m>i!n|V%yngdmw#w{JwXf#kSLT=W+k`= zYNb^NqFVpW*vpPhIzymhY|8XNK7eHY0K7OB}??$W%mX zI%hotopII9N_SC}>bs>ioY;>r_e`1IVWxuE|BQzMbBt*|lH6|8Wc;rN(bX)d`{4@T z8|6ew8iO&aTY>K{NzZAmDczB69Ftf(-L@6Vp?!Yw#`BIa z(CWD6*V%Q(ZyZ;Nmm%pUZ-Imxm_0G=o)l}1RR)zjdn)5M-6bU2ME#EB{k$5+gAYEl z+-mq*enIknOhFX>>kn~2f#fB+)uXO^lM7TniOF$bi<4uzP>ZuIx3Sa9Z@y_G9^i5> zTt0X{q1R5@obcHMpKTNaYeRI!ACjVxuCze`pWxF&Jz~krCB+Al=w%_EK^NbEsopvp zNcl{U!X;bR4{QY1lP6D@6q;l>aGlkvVUaj)FJ03=^-a}A>KP@6`{7AUeN{7@X$V!3 zf$43EN=Pro2}vJ?Sb%_e66dvM7xmxSdyKXEyX=-4C7z_3Yl<{DyR72(Bzc*QhzPbM zd%>T~7@j;6K~|3M85su>!n|~->>k{oRWw$>7GrTIRB0*9Zx8pMDQr)2vvp?xHKQt* zfA8z+5CR$Ii!z-@WxvsuuA9DvQaYC9WM-1XMk}ysF7$`4>%JvcSHRxBmjJ6|R8$k9 z_CFDy+)33!Z1BXZ3JvTl7X(wLs8rdJL-IE&dHOyZ1p|*V%{H!&?mUnY1MZaDd9aOf zH@fto9mBYzxB0;snVm1;^>ZyXf7|lmKeKuSKqaSe%4un}J}}1QLbNwIorsq~)@|Y< zD^RsVs$Ssar>4$<{BrgZ&#x;Ts+iedd-7;ed#e!B;+sEktasL*wF&lx>4PrzkNyXz=^mg2z2t>5aQ zNb1B}y>8ZNSGHGbj}}KTb!$+>WTL0!!FzD_a<7G-L-4xUt-h3|BVRiqnbPNb z;tY}~X31;Q@=fz;sSwa$>0**nn$a$VJiSLc{Ak5G0}qweae}(}dBWGWV02p6AWu@% z46C}rW@*{t-g>1%-dG7^hkOo^K}{~Rw{z@zaSkrACgFL}RP1`=I8u=YY%CK>NH6Fr zTwH9&xfuF>MLr?!;g3)9_GThVtDo@}9(w8YanX?xT7}qnwmvBnGY5>B7Vk)mGoiXW zAmc)}Qlnz~>_0K=9~B;IA%Ee{V776;E9gwA2G|bDX&U9`WfLQf1~PP9>G z3VGdr7TR=hnTJB+&ko4Ckr>X=8C)iNbvix@XBWe}9)lxt3nUF$PY^cIAHho>xH;ME z+>jCE`FX;l>5B-$n>VL@-}#W~`441Y0FS|VKXZ95{~hPx`9OUkr6TL539GH1+P#e6 z%9O#RT_G-Tj;4m8j9=)1*yYx>J>+M#h)Q5evus|dgEXickU7tu{&IET zzN`-P-&)1utf9tz39!YlBx@8Q-)e}80?d}!MOI-VIh7w4&XnG(`HqFE#9l!sRUIof z0@-WQq_&g-Cw$r2oxOe^X$r5Qes#Yc`8TpVBV<76&1HM_y;MoxGE?YpYCe9#Za}kTC+v2kNT)*pt`@uL*5AE>E zVRs~ZLF32ra(o_kOC(;M(qKaXOQ`bYnf?3wI+G{N5eV`H5af9<583m)^|Z@&VVv2U zC)bJRJ%~GN?U|O)3z1jN2eypXD$8p>A}5HJ>ldH7)6xXD?sp`I$Z5iM7gi- zH(L5+^I5r^oxEg5<@M;O(L>2ISkCK7AMQ(oQl#E{xoXz%vc}(V9t%{Hoc8&=+a+IX z#nZd_0a_Fp8S7bUuNRa)kud08?7f|Qf2Z;XWZk56)-^OdymD3=-(O7_alRrnU$a@r zznid_8VK@7xNm1e#;AEN5JH=c-Gx4PYtBBDc@%+N@9Mj3aX>F3m3rCl^GH;@K73=| zTsr1OShLEe=`d&4P}wx?YL~L_HNH-+oM;eu4zY+Xsym0rU*2?Uyr6c^;lW6yg$`mQ zvnrYlxEpVPDBY{kKly*V4z8dM=gX#C;1YK@*}|GS4EQZ1g7Ebk=wE5n7JNNVJ>Mg)e=h{~mMVh8(bqI=7isJwh&2<1 zZyxKp#GqLgbO&@ea$gtiNB;7%6Ex5|TuJ}%uhjjVg&U<@w zlsvW@V+wWK+mysM&+^<@LLSCJS1FXUPh|8L&MQRp44^p{(&MW(#_*;*bWXH|ZC0hQr830;Tx4k5ACxgE;m|Mze@r&5vUVE&k7gZEym1 zdqWJcrT&CpeH{Fsj~jSy|5}OKf^O;{BIV!xv$&5H{=h|`oyVVHNueF%e-8wi%VkIm zOcZfqJFJ@Xzq27h`k!}O!#*094RfSxyx43ca$4!>Jl76Gf&3XhX4x*ENuIY#e%I{X z50E?wSczf4H}%(OXhg*n2_z3YO_;{5Hv$Fy#0w?pt|uaj%KkqVm?S8Ks?s##!&ZfS z_J!sb=`V$8#XSUutWxX#R2kfBQKx_=i+ff;M!;FB$$~}LQXHfYppB;+dA;nWsLqA)t<7=3&Xn-N^P9m0^P(BE|&*Lc3X5=Gq|$0Jn4lmtaR2Yz$Bc~Zpx z`95x;2EZ)xbyXkjq7RbL6Z_0DX-I@aBg0393fTQ?yG`Xy-#^n(shbH2nCe$#=K9Cb z(qheXwN~d$(SZdzl^ac`sWO32>dCu;uZ?)Uh`=gap0gddMyrO<;{SKm4cn&BqGgU< zMto^^lPM}G;qa80T?#$t2=vdS=4L63o3rzqOICd-QZD}He_lDYV6N-992wjX@jk2c z(E(O$KlkkaT``YNMGthrtnDjVu{j*H&%KZlr~iNXko+P=YT0?;?s*tdzVV!3_y3rX z0(*Y?lmD(#EEiw02_Ah2^S{2jjs5@ct30|@{m@8QxHmD7KSMb&)$twacQreWm)^Jk-wL7q`0`~I*#z<4M zv9tHG_aggch?{5J5H_>7|2Ihe)gF}f82ra+|Klz9ZZUEqa8hr5)I~Q~jdAa*{3qV$ z&zA=j=$``anoVK{>DKAtl;V)Qib8^WPfjlQFE7k{#QdB#Z7N%mRrk8!pVFJqP~9pE+WGl z^9Ax4a6)XENp7ioA1j!>Or-9KHV@^($1+YGo$JJ{=+*9_23shZ??dV7=sqd`5QGq) z&vt%>@k&S(hQk7AjE3xk=Z{N_-myzTrLu{JCEJzr3%}?mb=MIlz1C{;A#VM(=ht(g z34B8w_gA&1fW1vkU{HY^JC(F)sd?&{7)J|YLsw0WzgJNp8nyZlhd(A zqGN=Q&x~L4;&JG^Y7eZfS_XzB8nBaJ^M+PLYcJQR~r-L^zZTlLLBGf`~h+etxl?!Z(H?9^fo)I>M z#KP%Y63-8-%)x4u>A&ywhR%5hZ&(VdL3e^y-cS^S$B_FsRs(;d1AX_NbRk&2f8yVD zl6RQL`F2z{&&%G|_tDn|bQ<{y=|;>3*_x_k>h+5}_*kw7c#KVEl>~}?B*t!_(VgJp znTTH9X9oOR$WN-b>P~al4%y#cZo9pe+$4Q6NB)(egEHL~ek|08?k)B>{IJh`3$eJW zUr`VguvV+_|Fv}`KuslSINV57a2+lggjqzKv1Va()e*8mIV&;)xI$2Z0)yNjAP5O0 z0^yRw0&778DIE}JL?ECX0dg6+0*Zi32+9#6%P~QdzylHzBHICEW~@o2Qk{DJy8Hd_ z@BjNc>Gyy6?FHGifM|snd*y~0yVYQvFhOPBUv{syK8%eXd4T*id&s^5F#sDzGRy($^VLRR`t`Qqz;@^w-NLYBnK{W(!hG@WUm8)Exn zj(w5u+vsR4xbj9CbS+V66I()Qvr@~D*0~7Y=&JJYv(#{fZE_Aqm>8~BUM(BMVQVd! zO*7t(EB8Tv$RoS;tTXwLO`4G9j9lE)@-FA_68HViXHpvt|EYsx3o*Azm-)g0!clO%69CH}-(Ph)f7eXF=pn|7PJfnQG4Zo|BcAoKb-F zqMPkf5wd!}(!)Bd`^i^gM(F$7=LW+QAMvqY`Zzx&SfnO=h6m+gl_b2rYWbIcfd`Ig zI^6CUvq(sE*FB(MrKXofasfqnT(}vrKYbp`8Hx=4^yL$roMyRk9_cCA!=I`uBA#MQY6V3?J2UImMzOOAVdxLs zIQ^$v3w7@18-qPX1a<16C$phD(Q0{JHvt1=$M{`b{6{j86DW-~Xz82zATTiBhFDr4>B z4!j~VZ@p)AK-;|zMnvI;*pPr0q@9po~H7}nM{ zv=EWsccX%#g&a%eHRdP`DGN-&{2-jt1CQ{& zFRtKh+n4C>3D`to1~E;zsjkqY?$YZOIj%fN`X|V4_14p>RGRi3_G+AN1TAf))-Yu` z;fhtA89I`tQW3S_1N2%#re#_qElDTd6TFj4j$Q;rA~wqsQDJS$QO5t)0P`BJK)M?j zRC_o(NWr3E>$W~`O$YPM_21E=&6s4YowYM;Dl8E?vbWlAe!utXeq;NmTq<}R`XqTw zRn$Qqg0n{@i=Hs;>fNkjPiNItR(sR0Oj|_2l^5sMd#+=*Tef2tEYuC4w2~+JV8@Sg zgpX2?Z288mz8-Pw`5o0KL@6H)c5?5I#sA{;#TxgJtOpEeXoY%CV@xfYQZmzx5qkI@ zxNiBo1A01bdCqPH_(@z-u=D!Y-g}R~=0ipHHvZ95TCubrVd4K7eHD!c+lGLWNm!^j zN_|HsoES}CcsLp^8|TG97Jd3T;l4^Dmi|klPKziKA-TcYi{Y_;t*ZYIj`k8b+M&G{ zr>3U9*EpbQmyMe#37+Iv*JbwfpdeH%VrjrWT0EX`H{p3}2WDbXZv + PLACEHOLDER QUESTION 1? + answers: + - PLACEHOLDER ANSWER A + - PLACEHOLDER ANSWER B + correct_answer: 1 + explanation: > + PLACEHOLDER EXPLANATION 1 + + - questions: + question: > + PLACEHOLDER QUESTION 2? + answers: + - PLACEHOLDER ANSWER A + - PLACEHOLDER ANSWER B + - PLACEHOLDER ANSWER C + - PLACEHOLDER ANSWER D + correct_answer: 4 + explanation: > + PLACEHOLDER EXPLANATION 2 + + - questions: + question: > + PLACEHOLDER QUESTION 3? + answers: + - PLACEHOLDER ANSWER A + - PLACEHOLDER ANSWER B + - PLACEHOLDER ANSWER C + - PLACEHOLDER ANSWER D + correct_answer: 2 + explanation: > + PLACEHOLDER EXPLANATION 3 + + + +# ================================================================================ +# FIXED, DO NOT MODIFY +# ================================================================================ +title: "Review" # Always the same title +weight: 20 # Set to always be larger than the content in this path +layout: "learningpathall" # All files under learning paths have this same wrapper +--- diff --git a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/app-profiling-android-studio.md b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/app-profiling-android-studio.md new file mode 100644 index 0000000000..1d63e0df09 --- /dev/null +++ b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/app-profiling-android-studio.md @@ -0,0 +1,13 @@ +--- +title: App Profiling with Android Studio +weight: 4 + +### FIXED, DO NOT MODIFY +layout: learningpathall +--- + +## PLACEHOLDER HEADER OF SECOND STEP +YOUR CONTENT GOES HERE + +IMAGE HERE: +![example image alt-text#center](example-picture.png "Figure 1. Example image caption") diff --git a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/app-profiling-streamline.md b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/app-profiling-streamline.md new file mode 100644 index 0000000000..65ccd6eb74 --- /dev/null +++ b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/app-profiling-streamline.md @@ -0,0 +1,200 @@ +--- +title: App Profiling with Streamline +weight: 3 + +### FIXED, DO NOT MODIFY +layout: learningpathall +--- + +## Application Profiling +Application profiling can be split into 2 main types - *Instrumentation* and *Sampling*. Streamline, for example, is a sampling profiler, that takes regular samples of various counters and registers in the system to provide a detailed view of the system's performance. Sampling will only provide a statistical view, but it is less intrusive and has less processing overhead than instrumentation. + +The profiler can look at memory, CPU activity and cycles, cache misses, and may parts of the GPU as well as other performance metrics. It can also provide a timeline view of these counters to show the application's performance over time. This will show bottlenecks, and help you understand where to focus your optimization efforts. + +![Streamline image alt-text#center](Streamline.png "Figure 1. Streamline timeline view") + +## Streamline +Streamline (and Performance Studio) will be installed on a host machine, and will connect to your target Arm device to capture the data. In our example, this will be an Android phone. The data is captured over a USB connection, and the data is then analyzed on the host machine. + +There are many tutorials and training videos on Streamline, which you can refer to for more depth. Our example will be Android-based, but you can use these instructions for Linux setup and capture. + +For now, as per these setup instructions, make sure you have `adb` (Android Debug Bridge) installed. We will be looking at Android Studio profiling shortly, and if you have installed Android Studio, it will have installed adb. Otherwise, you can get it as part of the Android SDK platform tools here. + +Make sure adb is in your path. You can check this by running `adb` in a terminal. If it is not in your path, you can add it by adding the platform-tools directory to your path. The instructions for this will depend on your host machine's operating system. + +Next, install Arm Performance Studio, which includes Streamline. + +Connect your device to your computer through USB. Ensure that your device is set to Developer mode. + +On your device, go to `Settings > Developer Options` and enable USB Debugging. If your device asks you to authorize connection to your computer, confirm this. Test the connection by running `adb devices` in a terminal. You should see your device ID listed. + +Next, you need a debuggable build of the application you want to profile. +- In Android Studio, ensure your *Build Variant* is set to `debug`. You can then build the application and install it on your device. +- For a Unity app, select Development Build under File > Build Settings when building your application. +- In Unreal Engine, open Project Settings > Project > Packaging > Project, and ensure that the For Distribution checkbox is not set. +- In the general case, you can set `android:debuggable=true` in the application manifest file. + +You can now run Streamline, and do a capture of your application. This can be used to do a general performance analysis of your application, but we intend to add additional useful information first. + +## Custom Annotations + +In Streamline it is possible to add custom annotations to the timeline view. This can be useful to mark the start and end of specific parts of your application, or to mark when a specific event occurs. This can help you understand the performance of your application in relation to these events. In the picture above there are annotations to show when inference, pre-processing, and post-processing are happening. + +To add annotations, we need to add some files into our project from the Gator daemon that Streamline uses. These files are `streamline_annotate.c`, `streamline_annotate.h` and `streamline_annotate_logging.h` from here. Then we will be able to show log strings, markers, counters and Custom Activity Maps. + +These files are obviously C code, so if your Android Studio project is in Java or Kotlin, you will need to add a C library to your project. This is skightly trickier than just adding a Java or Kotlin file, but it is not difficult. You can find instructions on how to do this here. + +For us, we create a file the we will call `annotate_jni_wrapper.c`. This will be a wrapper around the Gator daemon's functions, and will be called from our Kotlin code. It starts as below and continues with very similar wrapper functions for the other Gator daemon functions you want. + +```c +#include +#include "streamline_annotate.h" + +JNIEXPORT void JNICALL Java_AnnotateStreamline_AnnotateSetup(JNIEnv* env, jobject obj) { + gator_annotate_setup(); +} + +JNIEXPORT jlong JNICALL Java_AnnotateStreamline_GetTime(JNIEnv* env, jobject obj) { + return gator_get_time(); +} +``` + +Some functions have `unsigned int`, but that needs to be a `jint` in the wrapper, with some casting required in your Kotlin code to enforce type correctness at that end. Some functions have strings as arguments, and you will need to do a small conversion: + +```c +JNIEXPORT void JNICALL Java_AnnotateStreamline_AnnotateMarkerColorStr(JNIEnv* env, jobject obj, jint color, jstring str) { + const char* nativeStr = (*env)->GetStringUTFChars(env, str, 0); + gator_annotate_marker_color(color, nativeStr); + (*env)->ReleaseStringUTFChars(env, str, nativeStr); +} +``` + +In Android Studio `cmake` is used to create your C library, so we need a CMakelists.txt file in the same directory as the C file. This will look like: + +```cmake +# Sets the minimum CMake version required for this project. +cmake_minimum_required(VERSION 3.22.1) + +# Declare the project name. +project("StreamlineAnnotationJNI") + +# Create and name the library +add_library(${CMAKE_PROJECT_NAME} SHARED + annotate_jni_wrapper.c + streamline_annotate.c) + +# Specifies libraries CMake should link to your target library. +# Adding in the Android system log library pulls in the NDK path. +find_library( # Sets the path to the NDK library. + log-lib + log ) + +target_link_libraries( # Specifies the target library. + ${CMAKE_PROJECT_NAME} + ${log-lib} ) +``` + +If you add the following to your `build.gradle` file, you will be able to call the functions from your Kotlin code: + +```gradle + externalNativeBuild { + cmake { + path file('src/main/cpp/CMakeLists.txt') + version '3.22.1' + } + } +``` + +This will create a `libStreamlineAnnotationJNI.so` library that you can load in your Kotlin code, and then you can call the functions. Here we create a singleton `AnnotateStreamline.kt` that then enables Kotlin calls from the rest of our code: + +```kotlin +// Kotlin wrapper class for integration into Android project +class AnnotateStreamline { + init { + // Load the native library + System.loadLibrary("StreamlineAnnotationJNI") + } + + companion object { + // #defines for colors from the Streamline Annotation c code + const val ANNOTATE_RED: UInt = 0x0000ff1bu + const val ANNOTATE_BLUE: UInt = 0xff00001bu + const val ANNOTATE_GREEN: UInt = 0x00ff001bu + const val ANNOTATE_PURPLE: UInt = 0xff00ff1bu + const val ANNOTATE_YELLOW: UInt = 0x00ffff1bu + // any other constants you want from the included gator files + + // Create an instance of the AnnotateStreamline class + private val annotations = AnnotateStreamline() + + // Function to setup the Streamline Annotation - call this first + @JvmStatic + fun setup() { + annotations.AnnotateSetup() + } + + // Function to get the current time from gator + @JvmStatic + fun getTime(): Long { + return annotations.GetTime() + } + + // more functions that you want, e.g. (note UInt conversion) + @JvmStatic + fun annotateMarkerColorStr(color: UInt, str: String) { + annotations.AnnotateMarkerColorStr(color.toInt(), str) + } + // ... + } + + // externals match the last part of function names in annotate_jni_wrapper.c + external fun AnnotateSetup() + external fun GetTime(): Long + external fun AnnotateMarkerColorStr(color: Int, str: String) + // ... +} +``` + +The `AnnotateStreamline` class can now be used in your Kotlin code to add annotations to the Streamline timeline view. Make sure that `AnnotateStreamline.setup()` is called first, and then you can add annotations like this: + +```kotlin + AnnotateStreamline.annotateMarkerColorStr(AnnotateStreamline.ANNOTATE_BLUE, "Important event") +``` + +## Custom Activity Maps (CAMs) + +In addition to adding strings to the log and colored markers to the timeline, a particularly useful set of annotations is the Custom Activity Maps. These are the named colored bands you can see at the bottom of the Streamline timeline view shown above. They can be used to show when specific parts of your application are running, such as the pre-processing or inference, and layered for functions within functions etc. + +To add these you'll need to import the functions that start `gator_cam_` from `streamline_annotate.h` through your wrapper files in the same way as the functions above. Then you can use CAMs, but first you'll need to set up the tracks the annotations will appear on and an id system for each annotation. The `baseId` code below is to ensure that in the case of multiple places in your code adding annotations, the ids are unique. + +Here is an example setup in a class's companion object. + +```kotlin + companion object { + const val camViewId = 1u + const val trackRoot = 1u + const val trackChild = 2u + baseId = (0u..UInt.MAX_VALUE/2u-5000u).random() + currentId = baseId + + init { + AnnotateStreamline.camViewName(camViewId, "Inference") + AnnotateStreamline.camTrack(camViewId, trackRoot,0xffffffffu, "Root") // root wants -1 for parent id + AnnotateStreamline.camTrack(camViewId, trackChild, trackRoot, "Children") + } +``` + +Then they can be used like this: + +```kotlin + val preprocess = currentId++ + AnnotateStreamline.camJobStart(camViewId, preprocess, "Preprocess", trackRoot, AnnotateStreamline.getTime(), AnnotateStreamline.ANNOTATE_YELLOW) + val childjob = currentId++ + AnnotateStreamline.camJobStart(camViewId, childjob, "child job", trackChild, AnnotateStreamline.getTime(), AnnotateStreamline.ANNOTATE_CYAN) + //child job code... + AnnotateStreamline.camJobEnd(camViewId, childjob, AnnotateStreamline.getTime()) + //rest of preprocessing code... + AnnotateStreamline.camJobEnd(camViewId, preprocess, AnnotateStreamline.getTime()) +``` + +Now when you build and deploy a debug version of your application, you can run Streamline and see the annotations and CAMs in the timeline view. This will make it obvious whether the time spent in your application is on the inference, ML pre-processing, ML post-processing, or other parts of your application. diff --git a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/example-picture.png b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/example-picture.png new file mode 100644 index 0000000000000000000000000000000000000000..c69844bed44b65c7f5bc6cf511f93987fdcd7b95 GIT binary patch literal 63167 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 q-Mv3pxc`&l*gyNt{xlEs;Qs>q{#983 literal 0 HcmV?d00001 diff --git a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/nn-profiling-executenetwork.md b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/nn-profiling-executenetwork.md new file mode 100644 index 0000000000..551fc2959e --- /dev/null +++ b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/nn-profiling-executenetwork.md @@ -0,0 +1,13 @@ +--- +title: ML profiling with ExecuteNetwork +weight: 6 + +### FIXED, DO NOT MODIFY +layout: learningpathall +--- + +## PLACEHOLDER HEADER OF SECOND STEP +YOUR CONTENT GOES HERE + +IMAGE HERE: +![example image alt-text#center](example-picture.png "Figure 1. Example image caption") diff --git a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/nn-profiling-general.md b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/nn-profiling-general.md new file mode 100644 index 0000000000..ea589f59a2 --- /dev/null +++ b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/nn-profiling-general.md @@ -0,0 +1,13 @@ +--- +title: Profiling the Neural Network +weight: 5 + +### FIXED, DO NOT MODIFY +layout: learningpathall +--- + +## PLACEHOLDER HEADER OF SECOND STEP +YOUR CONTENT GOES HERE + +IMAGE HERE: +![example image alt-text#center](example-picture.png "Figure 1. Example image caption") diff --git a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/plan.txt b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/plan.txt new file mode 100644 index 0000000000..70e7667178 --- /dev/null +++ b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/plan.txt @@ -0,0 +1,20 @@ + +want the performance of your ML app +memory and compute + +how can you find that out + +different steps: +- ML network +- app around the ML network, especially pre and post processing, and the network as a whole + +for around the ML network - streamline profiler +here's how to do that... +Also Android Profiler, memory example + +Ml network, it will depend on the inference engine you are using +- here's an example for if you are using ArmNN with TFLite +- if you're not using it, it may still have some useful information, but different operators will be used and their performance will be different +can see structure with netron or google model explorer to compare operators or different versions of networks +may need to use a conversion tool to convert to TFLite (or whatever your inference engine wants) + diff --git a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/why-profile.md b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/why-profile.md new file mode 100644 index 0000000000..3864750f69 --- /dev/null +++ b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/why-profile.md @@ -0,0 +1,23 @@ +--- +title: What do you need to profile? +weight: 2 + +### FIXED, DO NOT MODIFY +layout: learningpathall +--- + +## Performance +Working out what is taking the time and memory in your application is the first step to getting the performance you want. Profiling can help you identify the bottlenecks in your application and understand how to optimize it. + +With Machine Learning (ML) applications, the inference of the Neural Network (NN) itself is often the heaviest part of the application in terms of computation and memory usage. This is not guaranteed however, so it is important to profile the application as a whole to see if pre- or post-processing or other code is an issue. + +We will be looking at an Android example using TFLite in this learning path, but most of the tools also work with Linux to cover a wide range of Arm devices. The principles are the same for other inference engines and platforms, but the tools are different. + +## Tools + +Currently different tools are needed if you want to look inside the NN inference, or at the application's performance as a whole. + +For profiling the ML inference we will look at ArmNN's ExecuteNetwork. + +For profiling the application as a whole we will look at Arm Performance Studio's Streamline, and at the Android Studio Profiler. + From a593790d21d0b6c379ba26ddd45671b5a6a4d6ee Mon Sep 17 00:00:00 2001 From: Ben Clark Date: Mon, 21 Oct 2024 17:15:15 +0100 Subject: [PATCH 02/87] network profiling and ExecuteNetwork pages --- .../profiling-ml-on-arm/_index.md | 2 +- .../app-profiling-android-studio.md | 6 +- .../profiling-ml-on-arm/example-picture.png | Bin 63167 -> 0 bytes .../nn-profiling-executenetwork.md | 68 ++++++++++++++++-- .../nn-profiling-general.md | 11 +-- 5 files changed, 74 insertions(+), 13 deletions(-) delete mode 100644 content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/example-picture.png diff --git a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/_index.md b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/_index.md index 2bd02eb5c9..a57070750e 100644 --- a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/_index.md +++ b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/_index.md @@ -17,7 +17,7 @@ author_primary: Ben Clark ### Tags skilllevels: Intermediate -subjects: PLACEHOLDER SUBJECT +subjects: Machine Learning armips: - Cortex-X - Cortex-A diff --git a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/app-profiling-android-studio.md b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/app-profiling-android-studio.md index 1d63e0df09..e2873f0af1 100644 --- a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/app-profiling-android-studio.md +++ b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/app-profiling-android-studio.md @@ -6,8 +6,6 @@ weight: 4 layout: learningpathall --- -## PLACEHOLDER HEADER OF SECOND STEP -YOUR CONTENT GOES HERE +## Android Memory Profiling +Memory is often a problem in ML, with ever bigger models and data. For profiling an Android app's memory, Android Studio has a built-in profiler. This can be used to monitor the memory usage of your app, and to find memory leaks. -IMAGE HERE: -![example image alt-text#center](example-picture.png "Figure 1. Example image caption") diff --git a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/example-picture.png b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/example-picture.png deleted file mode 100644 index c69844bed44b65c7f5bc6cf511f93987fdcd7b95..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 63167 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 q-Mv3pxc`&l*gyNt{xlEs;Qs>q{#983 diff --git a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/nn-profiling-executenetwork.md b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/nn-profiling-executenetwork.md index 551fc2959e..aeafa6bc16 100644 --- a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/nn-profiling-executenetwork.md +++ b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/nn-profiling-executenetwork.md @@ -6,8 +6,68 @@ weight: 6 layout: learningpathall --- -## PLACEHOLDER HEADER OF SECOND STEP -YOUR CONTENT GOES HERE +## ArmNN's Network Profiler +One way of running tflite models is with ArmNN. This is available as a delegate to the standard tflite interpreter. But to profile the model, there is a command-line utility called `ExecuteNetwork`. This program just runs the model without the rest of an app. It is able to output layer timings and other useful information to let you know where there might be bottlenecks within your model. -IMAGE HERE: -![example image alt-text#center](example-picture.png "Figure 1. Example image caption") +If you are not using tflite, you'll need to look at other tools from your framework to profile your model. If you are using tflite, but not ArmNN, then the output from `ExecuteNetwork` will be more of an indication than a definitive answer. But it can still be useful to see if there are any obvious problems. + +To get `ExecuteNetwork` you can download it from the [ArmNN GitHub](https://github.com/ARM-software/armnn/releases). Download the version appropriate for the Android phone you wish to test on - the Android version and the architecture of the phone. If you are unsure of the architecture, you can use a lower one, but you may miss out on some optimizations. Inside the tar.gz that you download, `ExecuteNetwork` is included. Note among the other release downloads on the ArmNN Github is the separate file for the `aar` delegate which is the easy way to include the ArmNN delegate into your app. + +To run `ExecuteNetwork` you'll need to use `adb` to push the model and the executable to your phone, and then run it from the adb shell. `adb` is included with Android Studio, but you may need to add it to your path. Android Studio normally installs it to a location like \\AppData\Local\Android\Sdk\platform-tools. `adb` can also be downloaded separately from the [Android Developer site](https://developer.android.com/studio/releases/platform-tools). + +From a command prompt, you can run the following commands to push the files to your phone: + +```bash +adb push model.tflite /data/local/tmp/ +adb push ExecuteNetwork /data/local/tmp/ +adb push libarm_compute.so /data/local/tmp/ +adb push libarmnn.so /data/local/tmp/ +adb push libarmnn_support_library.so /data/local/tmp/ +``` +Push all the `.so` library files that are in the base folder of the tar.gz you downloaded, alongside `ExecuteNetwork`, and all the `.so` files in the `delegate` sub-folder. If you are using a recent version on of Android Studio this copying can be done much more easily with drag and drop in the *Device Explorer > Files*. + +Then you need to set the permissions on the files: + +```bash +adb shell # to get into the adb shell on the phone +cd /data/local/tmp +chmod 777 ExecuteNetwork # to make the file executable +chmod 777 *.so # to make the library files executable +``` + +Then you can run the model with the following command: + +```bash +LD_LIBRARY_PATH=. ./ExecuteNetwork -m model.tflite -c CpuAcc -T delegate --iterations 2 --do-not-print-output --enable-fast-math --fp16-turbo-mode -e --output-network-details > modelout.txt +``` + +This will run the model twice, outputting the layer timings to `modelout.txt`. Specifically, the `-e` and `--output-network-details` flags will output a lot of timeline information about the model, including the layer timings. The `--do-not-print-output` flag will stop the output of the model, which can be very large, and without sensible input, meaningless. The `--enable-fast-math` and `--fp16-turbo-mode` flags enable some maths optimizations. The `--iterations 2` flag will run the model twice: the first run includes a lot of startup costs and one-off optimizations, so the second run is more indicative of the real performance. + +After running the model, you can pull the output file back to your computer with the following commands: + +```bash +exit # to leave the adb shell +adb pull /data/local/tmp/modelout.txt +``` +Once again, this can be done with drag and drop in Android Studio's *Device Explorer > Files*. + +Depending on the size of your model, the output will probably be quite large. You can use a text editor or a tool like `less` to view the file. The output is in JSON format, so you can use a JSON viewer to make it more readable. Usually some scripting can be used to extract the information you need more easily out of the very raw data in the file. + +At the top is the summary, with the setup time and inference time of your 2 runs, which will look something like this: +```text +Info: ArmNN v33.2.0 +Info: Initialization time: 7.20 ms. +Info: ArmnnSubgraph creation +Info: Parse nodes to ArmNN time: 50.99 ms +Info: Optimize ArmnnSubgraph time: 85.94 ms +Info: Load ArmnnSubgraph time: 91.11 ms +Info: Overall ArmnnSubgraph creation time: 228.47 ms + +Info: Execution time: 721.91 ms. +Info: Inference time: 722.02 ms + +Info: Execution time: 468.42 ms. +Info: Inference time: 468.58 ms +``` + +After the summary comes the graph of the model, and then the layers and their timings from the second run. At the start of the layers there are a few optimizations & their timings recorded before the network itself, with the layers' "Wall clock time" in microseconds of how long they took to run. These layers and their timings can then be analysed to see which layers, and which operators, took the most time. diff --git a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/nn-profiling-general.md b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/nn-profiling-general.md index ea589f59a2..da4fe08de0 100644 --- a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/nn-profiling-general.md +++ b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/nn-profiling-general.md @@ -6,8 +6,11 @@ weight: 5 layout: learningpathall --- -## PLACEHOLDER HEADER OF SECOND STEP -YOUR CONTENT GOES HERE +## Profiling your model +App profilers will give you a good overall view of your performance, but often you might want to look inside the model and work out bottlenecks within the network. The network is often the bulk of the time, in which case it will warrant closer analysis. -IMAGE HERE: -![example image alt-text#center](example-picture.png "Figure 1. Example image caption") +General profilers are unable to do this, as there needs to be annotations inside the ML framework code to get the information. It is a large task to write the profiling annotations throughout the framework, so it is easier if we use tools from a framework or inference engine that can already do the job. + +Depending on your model the tools available will differ. For example, if you are using TensorFlow Lite, Arm provides the ArmNN delegate that you can run the model with on Linux or Android. ArmNN in turn provides a tool called `ExecuteNetwork` that can run the model and give you layer timings and other useful information. + +If you are using PyTorch, you will probably want ExecuTorch on an Android phone, and this also has a profiler available alongside it. From 3e4ad22a25afae7ad077fb229a0766dddba3debd Mon Sep 17 00:00:00 2001 From: Ben Clark Date: Sun, 27 Oct 2024 18:08:00 +0000 Subject: [PATCH 03/87] done, pending final read-through --- .../profiling-ml-on-arm/_next-steps.md | 18 +++------ .../profiling-ml-on-arm/_review.md | 38 +++++++++--------- .../android-profiling-version.png | Bin 0 -> 18717 bytes .../app-profiling-android-studio.md | 34 ++++++++++++++++ .../app-profiling-streamline.md | 20 ++++----- .../profiler-jk-allocations-legend.png | Bin 0 -> 32173 bytes .../start-profile-dropdown.png | Bin 0 -> 6980 bytes .../profiling-ml-on-arm/why-profile.md | 6 +-- 8 files changed, 72 insertions(+), 44 deletions(-) create mode 100644 content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/android-profiling-version.png create mode 100644 content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/profiler-jk-allocations-legend.png create mode 100644 content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/start-profile-dropdown.png diff --git a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/_next-steps.md b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/_next-steps.md index c4ae77cc92..aafea4126a 100644 --- a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/_next-steps.md +++ b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/_next-steps.md @@ -1,21 +1,15 @@ --- -next_step_guidance: PLACEHOLDER TEXT 1 +next_step_guidance: Continue Learning -recommended_path: /learning-paths/PLACEHOLDER_CATEGORY/PLACEHOLDER_LEARNING_PATH/ +recommended_path: /learning-paths/smartphones-and-mobile/build-llama3-chat-android-app-using-executorch-and-xnnpack/ +recommended_path: /learning-paths/smartphones-and-mobile/kleidiai-on-android-with-mediapipe-and-xnnpack/ further_reading: - resource: - title: PLACEHOLDER MANUAL - link: PLACEHOLDER MANUAL LINK + title: Arm Streamline User Guide + link: https://developer.arm.com/documentation/101816/latest/ type: documentation - - resource: - title: PLACEHOLDER BLOG - link: PLACEHOLDER BLOG LINK - type: blog - - resource: - title: PLACEHOLDER GENERAL WEBSITE - link: PLACEHOLDER GENERAL WEBSITE LINK - type: website + # ================================================================================ diff --git a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/_review.md b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/_review.md index 9b1bfb96fe..814fe6c32d 100644 --- a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/_review.md +++ b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/_review.md @@ -2,37 +2,37 @@ review: - questions: question: > - PLACEHOLDER QUESTION 1? + Streamline Profiling lets you profile: answers: - - PLACEHOLDER ANSWER A - - PLACEHOLDER ANSWER B - correct_answer: 1 + - Arm CPU activity + - Arm GPU activity + - when your Neural Network is running + - All of the above + correct_answer: 4 explanation: > - PLACEHOLDER EXPLANATION 1 + Streamline will show you CPU and GPU activity (and a lot more counters!), and if Custom Activity Maps are used, you can see when your Neural Network and other parts of your application are running. - questions: question: > - PLACEHOLDER QUESTION 2? + Does Android Studio have a profiler? answers: - - PLACEHOLDER ANSWER A - - PLACEHOLDER ANSWER B - - PLACEHOLDER ANSWER C - - PLACEHOLDER ANSWER D - correct_answer: 4 + - Yes + - No + correct_answer: 1 explanation: > - PLACEHOLDER EXPLANATION 2 + Yes, Android Studio has a built-in profiler that can be used to monitor the memory usage of your app among other things - questions: question: > - PLACEHOLDER QUESTION 3? + Is there a way to profile what is happening inside your Neural Network? answers: - - PLACEHOLDER ANSWER A - - PLACEHOLDER ANSWER B - - PLACEHOLDER ANSWER C - - PLACEHOLDER ANSWER D - correct_answer: 2 + - Yes, Streamline just shows you out of the box + - No + - Yes, ArmNN's ExecuteNetwork can do this + - Yes, Android Studio Profiler can do this + correct_answer: 3 explanation: > - PLACEHOLDER EXPLANATION 3 + Standard profilers don't have an easy way to see what is happening inside an ML framework to see a model running inside it. ArmNN's ExecuteNetwork can do this for TensorFlow Lite models, and ExecuTorch has tools that can do this for PyTorch models. diff --git a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/android-profiling-version.png b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/android-profiling-version.png new file mode 100644 index 0000000000000000000000000000000000000000..7e058f009ffd14bd91ba049ae488d3b7d832fe22 GIT binary patch literal 18717 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 GO!yBZ4e@RO literal 0 HcmV?d00001 diff --git a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/app-profiling-android-studio.md b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/app-profiling-android-studio.md index e2873f0af1..03ba77f991 100644 --- a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/app-profiling-android-studio.md +++ b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/app-profiling-android-studio.md @@ -9,3 +9,37 @@ layout: learningpathall ## Android Memory Profiling Memory is often a problem in ML, with ever bigger models and data. For profiling an Android app's memory, Android Studio has a built-in profiler. This can be used to monitor the memory usage of your app, and to find memory leaks. +To find the Profiler, open your project in Android Studio and click on the *View* menu, then *Tool Windows*, and then *Profiler*. This opens the Profiler window. Attach your device, and then you should be able to select your app's process. Here there are a number of different profiling tasks available. + +Most likely with an Android ML app you'll need to look at memory both from the Java/Kotlin side and the native side. The Java/Kotlin side is where the app runs, and may be where buffers are allocated for input and output if you're using LiteRT (formerly TensorFlow Lite). The native side is where the ML framework will run. Looking at the memory consumption for Java/Kotlin and native is 2 separate tasks in the Profiler: *Track Memory Consumption (Java/Kotlin Allocations)* and *Track Memory Consumption (Native Allocations)*. + +Before we start either task we want to build our profileable app. The instructions for this and for general profiling setup can be found [here](https://developer.android.com/studio/profile). We will want to start the correct profiling version of the app depending on the task. + +![Android Studio profiling run types alt-text#center](android-profiling-version.png "Figure 1. Profiling run versions") + +For the Java/Kotlin side, you want the **debuggable** "Profile 'app' with complete data", which is based off the debug variant. For the native side, you want the **profileable** "Profile 'app' with low overhead", which is based off the release variant. + +### Java/Kotlin + +If we start looking at the [Java/Kotlin side](https://developer.android.com/studio/profile/record-java-kotlin-allocations), choose *Profiler: Run 'app' as debuggable*, and then select the *Track Memory Consumption (Java/Kotlin Allocations)* task. Navigate to the part of the app you wish to profile and then we can start profiling. At the bottom of the Profiling window it should look like Figure 2 below. Click *Start Profiler Task*. + +![Android Studio Start Profile alt-text#center](start-profile-dropdown.png "Figure 2. Start Profile") + +When you're ready, *Stop* the profiling again. Now there'll be a nice timeline graph of memory usage. Unfortunately, while Android Studio has a nicer interface for the Java/Kotlin side than the native side, the key to the timeline graph may be missing. This key is shown in below in Figure 3. +![Android Studio memory key alt-text#center](profiler-jk-allocations-legend.png "Figure 3. Memory key for the Java/Kotlin Memory Timeline") + +The default height of the Profiling view is usually too small, so that will need adjusting to get a sensible graph. You can click at different points of the graph to see the memory allocations at that time. If you look according to the key you can see how much memory is allocated by Java, Native, Graphics, Code etc. + +Looking further down you can see the Table of Java/Kotlin allocations for your selected time on the timeline. With ML a lot of your allocations are likely to be byte[] for byte buffers, or possibly int[] for image data, etc. Clicking on the data type will open up the particular allocations, showing their size and when they were allocated. This will help to quickly narrow down their use, and whether they are all needed etc. + +### Native + +For the [native side](https://developer.android.com/studio/profile/record-native-allocations), the process is similar but with different options. Choose *Profiler: Run 'app' as profileable*, and then select the *Track Memory Consumption (Native Allocations)* task. Here you need to *Start profiler task from: Process Start*. Choose *Stop* once you've captured enough data. + +The Native view doesn't have the same nice timeline graph as the Java/Kotlin side, but it does have the Table and Visualization tabs. The Table tab no longer has a list of allocations, but options to *Arrange by allocation method* or *callstack*. Choose callstack and then you can trace down which functions were allocating signifcant memory. Potentially more useful, you can also see Remaining Size. + +In the Visualization tab you can see the callstack as a graph, and once again you can look at total Allocations Size or Remaining Size. If you look at Remaining Size, you can see what is still allocated at the end of the profiling, and by looking a few steps up the stack, probably see which allocations are related to the ML model, by seeing functions that relate to the framework you are using. A lot of the memory may be allocated by that framework rather than in your code, and you may not have much control over it, but it is useful to know where the memory is going. + +## Other platforms + +On other platforms, you will need a different memory profiler. The objective of working out where the memory is being used is the same, and whether there are issues with leaks or just too much memory being used. There are often trade-offs between memory and speed, and they can be considered more sensibly if the numbers involved are known. diff --git a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/app-profiling-streamline.md b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/app-profiling-streamline.md index 65ccd6eb74..af5a13a975 100644 --- a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/app-profiling-streamline.md +++ b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/app-profiling-streamline.md @@ -9,22 +9,22 @@ layout: learningpathall ## Application Profiling Application profiling can be split into 2 main types - *Instrumentation* and *Sampling*. Streamline, for example, is a sampling profiler, that takes regular samples of various counters and registers in the system to provide a detailed view of the system's performance. Sampling will only provide a statistical view, but it is less intrusive and has less processing overhead than instrumentation. -The profiler can look at memory, CPU activity and cycles, cache misses, and may parts of the GPU as well as other performance metrics. It can also provide a timeline view of these counters to show the application's performance over time. This will show bottlenecks, and help you understand where to focus your optimization efforts. +The profiler can look at memory, CPU activity and cycles, cache misses, and many parts of the GPU as well as other performance metrics. It can also provide a timeline view of these counters to show the application's performance over time. This will show bottlenecks, and help you understand where to focus your optimization efforts. ![Streamline image alt-text#center](Streamline.png "Figure 1. Streamline timeline view") ## Streamline -Streamline (and Performance Studio) will be installed on a host machine, and will connect to your target Arm device to capture the data. In our example, this will be an Android phone. The data is captured over a USB connection, and the data is then analyzed on the host machine. +[Streamline](https://developer.arm.com/Tools%20and%20Software/Arm%20Performance%20Studio#Downloads) (and Performance Studio) will be installed on a host machine, and will connect to your target Arm device to capture the data. In our example, this will be an Android phone. The data is captured over a USB connection, and then analyzed on the host machine. -There are many tutorials and training videos on Streamline, which you can refer to for more depth. Our example will be Android-based, but you can use these instructions for Linux setup and capture. +There are many [tutorials and training videos](https://developer.arm.com/Tools%20and%20Software/Arm%20Performance%20Studio) on Streamline, which you can refer to for more depth. Our example will be Android-based, but you can use [these instructions for Linux](https://developer.arm.com/documentation/101816/0903/Getting-started-with-Streamline/Profile-your-Linux-application) setup and capture. -For now, as per these setup instructions, make sure you have `adb` (Android Debug Bridge) installed. We will be looking at Android Studio profiling shortly, and if you have installed Android Studio, it will have installed adb. Otherwise, you can get it as part of the Android SDK platform tools here. +For now, as per these [setup instructions](https://developer.arm.com/documentation/102477/0900/Setup-tasks?lang=en), make sure you have `adb` (Android Debug Bridge) installed. We will be looking at Android Studio profiling shortly, and if you have installed Android Studio, it will have installed adb. Otherwise, you can get it as part of the Android SDK platform tools [here](https://developer.android.com/studio/releases/platform-tools.html). -Make sure adb is in your path. You can check this by running `adb` in a terminal. If it is not in your path, you can add it by adding the platform-tools directory to your path. The instructions for this will depend on your host machine's operating system. +Make sure adb is in your path. You can check this by running `adb` in a terminal. If it is not in your path, you can add it by adding the `platform-tools` directory to your path. The instructions for this (and location of the directory) will depend on your host machine's operating system. -Next, install Arm Performance Studio, which includes Streamline. +Next, install [Arm Performance Studio](https://developer.arm.com/Tools%20and%20Software/Arm%20Performance%20Studio#Downloads), which includes Streamline. -Connect your device to your computer through USB. Ensure that your device is set to Developer mode. +Connect your Android phone to your computer through USB. Ensure that your device is set to [Developer mode](https://developer.android.com/studio/debug/dev-options). On your device, go to `Settings > Developer Options` and enable USB Debugging. If your device asks you to authorize connection to your computer, confirm this. Test the connection by running `adb devices` in a terminal. You should see your device ID listed. @@ -38,11 +38,11 @@ You can now run Streamline, and do a capture of your application. This can be us ## Custom Annotations -In Streamline it is possible to add custom annotations to the timeline view. This can be useful to mark the start and end of specific parts of your application, or to mark when a specific event occurs. This can help you understand the performance of your application in relation to these events. In the picture above there are annotations to show when inference, pre-processing, and post-processing are happening. +In Streamline it is possible to add custom annotations to the timeline view. This can be useful to mark the start and end of specific parts of your application, or to mark when a specific event occurs. This can help you understand the performance of your application in relation to these events. At the bottom of the picture above there are annotations to show when inference, pre-processing, and post-processing are happening. -To add annotations, we need to add some files into our project from the Gator daemon that Streamline uses. These files are `streamline_annotate.c`, `streamline_annotate.h` and `streamline_annotate_logging.h` from here. Then we will be able to show log strings, markers, counters and Custom Activity Maps. +To add annotations, we need to add some files into our project from the Gator daemon that Streamline uses. These files are `streamline_annotate.c`, `streamline_annotate.h` and `streamline_annotate_logging.h` from [here](https://github.com/ARM-software/gator/tree/main/annotate). Then we will be able to show log strings, markers, counters and Custom Activity Maps. -These files are obviously C code, so if your Android Studio project is in Java or Kotlin, you will need to add a C library to your project. This is skightly trickier than just adding a Java or Kotlin file, but it is not difficult. You can find instructions on how to do this here. +These files are obviously C code, so if your Android Studio project is in Java or Kotlin, you will need to add a C library to your project. This is slightly trickier than just adding a Java or Kotlin file, but it is not difficult. You can find instructions on how to do this [here](https://developer.android.com/studio/projects/add-native-code). For us, we create a file the we will call `annotate_jni_wrapper.c`. This will be a wrapper around the Gator daemon's functions, and will be called from our Kotlin code. It starts as below and continues with very similar wrapper functions for the other Gator daemon functions you want. diff --git a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/profiler-jk-allocations-legend.png b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/profiler-jk-allocations-legend.png new file mode 100644 index 0000000000000000000000000000000000000000..a9dfadfe0d23673de36ba850e04bf4caa84ba7bd GIT binary patch literal 32173 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 T=hy$JD=9CnA_bKA7V`f9ihY}h literal 0 HcmV?d00001 diff --git a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/start-profile-dropdown.png b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/start-profile-dropdown.png new file mode 100644 index 0000000000000000000000000000000000000000..e7d16270f82b18ea40f37e6762428cc6a2d582da GIT binary patch literal 6980 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 Xwh>1A+s75De4(f)YARI7eF*s<(7$n3 literal 0 HcmV?d00001 diff --git a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/why-profile.md b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/why-profile.md index 3864750f69..8a0d20d1a6 100644 --- a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/why-profile.md +++ b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/why-profile.md @@ -15,9 +15,9 @@ We will be looking at an Android example using TFLite in this learning path, but ## Tools -Currently different tools are needed if you want to look inside the NN inference, or at the application's performance as a whole. +Currently, you need to use different tools to profile the ML inference or the application's performance as a whole. -For profiling the ML inference we will look at ArmNN's ExecuteNetwork. +For profiling the ML inference we will look at [ArmNN](https://github.com/ARM-software/armnn/releases)'s ExecuteNetwork. -For profiling the application as a whole we will look at Arm Performance Studio's Streamline, and at the Android Studio Profiler. +For profiling the application as a whole we will look at [Arm Performance Studio](https://developer.arm.com/Tools%20and%20Software/Arm%20Performance%20Studio)'s Streamline, and at the Android Studio Profiler. From faac583d06636047bcab940010d635951dc95dc8 Mon Sep 17 00:00:00 2001 From: Ben Clark Date: Mon, 28 Oct 2024 13:47:35 +0000 Subject: [PATCH 04/87] editing on self-review --- .../profiling-ml-on-arm/_index.md | 2 +- .../profiling-ml-on-arm/_review.md | 2 +- .../app-profiling-android-studio.md | 16 ++++++++-------- .../app-profiling-streamline.md | 16 ++++++++++------ .../nn-profiling-executenetwork.md | 15 ++++++++------- .../profiling-ml-on-arm/nn-profiling-general.md | 2 +- .../profiling-ml-on-arm/streamline_marker.png | Bin 0 -> 52790 bytes 7 files changed, 29 insertions(+), 24 deletions(-) create mode 100644 content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/streamline_marker.png diff --git a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/_index.md b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/_index.md index a57070750e..593c7e1116 100644 --- a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/_index.md +++ b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/_index.md @@ -3,7 +3,7 @@ title: How to Profile ML on Arm minutes_to_complete: 30 -who_is_this_for: ML App developers who want to see the performance of their models on Arm devices. +who_is_this_for: Machine Learning App developers who want to see the performance of their models on Arm devices. learning_objectives: - Profile timings of ML models on Arm devices. diff --git a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/_review.md b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/_review.md index 814fe6c32d..a1f46d1ed9 100644 --- a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/_review.md +++ b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/_review.md @@ -27,7 +27,7 @@ review: Is there a way to profile what is happening inside your Neural Network? answers: - Yes, Streamline just shows you out of the box - - No + - No. - Yes, ArmNN's ExecuteNetwork can do this - Yes, Android Studio Profiler can do this correct_answer: 3 diff --git a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/app-profiling-android-studio.md b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/app-profiling-android-studio.md index 03ba77f991..7d49a7303b 100644 --- a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/app-profiling-android-studio.md +++ b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/app-profiling-android-studio.md @@ -1,5 +1,5 @@ --- -title: App Profiling with Android Studio +title: Memory Profiling with Android Studio weight: 4 ### FIXED, DO NOT MODIFY @@ -9,9 +9,9 @@ layout: learningpathall ## Android Memory Profiling Memory is often a problem in ML, with ever bigger models and data. For profiling an Android app's memory, Android Studio has a built-in profiler. This can be used to monitor the memory usage of your app, and to find memory leaks. -To find the Profiler, open your project in Android Studio and click on the *View* menu, then *Tool Windows*, and then *Profiler*. This opens the Profiler window. Attach your device, and then you should be able to select your app's process. Here there are a number of different profiling tasks available. +To find the Profiler, open your project in Android Studio and click on the *View* menu, then *Tool Windows*, and then *Profiler*. This opens the Profiler window. Attach your device in Developer Mode with a USB cable, and then you should be able to select your app's process. Here there are a number of different profiling tasks available. -Most likely with an Android ML app you'll need to look at memory both from the Java/Kotlin side and the native side. The Java/Kotlin side is where the app runs, and may be where buffers are allocated for input and output if you're using LiteRT (formerly TensorFlow Lite). The native side is where the ML framework will run. Looking at the memory consumption for Java/Kotlin and native is 2 separate tasks in the Profiler: *Track Memory Consumption (Java/Kotlin Allocations)* and *Track Memory Consumption (Native Allocations)*. +Most likely with an Android ML app you'll need to look at memory both from the Java/Kotlin side and the native side. The Java/Kotlin side is where the app runs, and may be where buffers are allocated for input and output if, for example, you're using LiteRT (formerly known as TensorFlow Lite). The native side is where the ML framework will run. Looking at the memory consumption for Java/Kotlin and native is 2 separate tasks in the Profiler: *Track Memory Consumption (Java/Kotlin Allocations)* and *Track Memory Consumption (Native Allocations)*. Before we start either task we want to build our profileable app. The instructions for this and for general profiling setup can be found [here](https://developer.android.com/studio/profile). We will want to start the correct profiling version of the app depending on the task. @@ -25,18 +25,18 @@ If we start looking at the [Java/Kotlin side](https://developer.android.com/stud ![Android Studio Start Profile alt-text#center](start-profile-dropdown.png "Figure 2. Start Profile") -When you're ready, *Stop* the profiling again. Now there'll be a nice timeline graph of memory usage. Unfortunately, while Android Studio has a nicer interface for the Java/Kotlin side than the native side, the key to the timeline graph may be missing. This key is shown in below in Figure 3. +When you're ready, *Stop* the profiling again. Now there'll be a nice timeline graph of memory usage. Unfortunately, while Android Studio has a nicer interface for the Java/Kotlin side than the native side, the key to the timeline graph may be missing. This key is shown below in Figure 3, so you can refer to the colors from this. ![Android Studio memory key alt-text#center](profiler-jk-allocations-legend.png "Figure 3. Memory key for the Java/Kotlin Memory Timeline") -The default height of the Profiling view is usually too small, so that will need adjusting to get a sensible graph. You can click at different points of the graph to see the memory allocations at that time. If you look according to the key you can see how much memory is allocated by Java, Native, Graphics, Code etc. +The default height of the Profiling view - as well as the timeline graph within it - is usually too small, so adjust these heights to get a sensible graph. You can click at different points of the graph to see the memory allocations at that time. If you look according to the key you can see how much memory is allocated by Java, Native, Graphics, Code etc. -Looking further down you can see the Table of Java/Kotlin allocations for your selected time on the timeline. With ML a lot of your allocations are likely to be byte[] for byte buffers, or possibly int[] for image data, etc. Clicking on the data type will open up the particular allocations, showing their size and when they were allocated. This will help to quickly narrow down their use, and whether they are all needed etc. +Looking further down you can see the *Table* of Java/Kotlin allocations for your selected time on the timeline. With ML a lot of your allocations are likely to be byte[] for byte buffers, or possibly int[] for image data, etc. Clicking on the data type will open up the particular allocations, showing their size and when they were allocated. This will help to quickly narrow down their use, and whether they are all needed etc. ### Native -For the [native side](https://developer.android.com/studio/profile/record-native-allocations), the process is similar but with different options. Choose *Profiler: Run 'app' as profileable*, and then select the *Track Memory Consumption (Native Allocations)* task. Here you need to *Start profiler task from: Process Start*. Choose *Stop* once you've captured enough data. +For the [native side](https://developer.android.com/studio/profile/record-native-allocations), the process is similar but with different options. Choose *Profiler: Run 'app' as profileable*, and then select the *Track Memory Consumption (Native Allocations)* task. Here you have to *Start profiler task from: Process Start*. Choose *Stop* once you've captured enough data. -The Native view doesn't have the same nice timeline graph as the Java/Kotlin side, but it does have the Table and Visualization tabs. The Table tab no longer has a list of allocations, but options to *Arrange by allocation method* or *callstack*. Choose callstack and then you can trace down which functions were allocating signifcant memory. Potentially more useful, you can also see Remaining Size. +The Native view doesn't have the same nice timeline graph as the Java/Kotlin side, but it does have the *Table* and *Visualization* tabs. The *Table* tab no longer has a list of allocations, but options to *Arrange by allocation method* or *callstack*. Choose *Arrange by callstack* and then you can trace down which functions were allocating signifcant memory. Potentially more useful, you can also see Remaining Size. In the Visualization tab you can see the callstack as a graph, and once again you can look at total Allocations Size or Remaining Size. If you look at Remaining Size, you can see what is still allocated at the end of the profiling, and by looking a few steps up the stack, probably see which allocations are related to the ML model, by seeing functions that relate to the framework you are using. A lot of the memory may be allocated by that framework rather than in your code, and you may not have much control over it, but it is useful to know where the memory is going. diff --git a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/app-profiling-streamline.md b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/app-profiling-streamline.md index af5a13a975..976a3d0b7b 100644 --- a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/app-profiling-streamline.md +++ b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/app-profiling-streamline.md @@ -38,13 +38,13 @@ You can now run Streamline, and do a capture of your application. This can be us ## Custom Annotations -In Streamline it is possible to add custom annotations to the timeline view. This can be useful to mark the start and end of specific parts of your application, or to mark when a specific event occurs. This can help you understand the performance of your application in relation to these events. At the bottom of the picture above there are annotations to show when inference, pre-processing, and post-processing are happening. +In Streamline it is possible to add custom annotations to the timeline view. This can be useful to mark the start and end of specific parts of your application, or to mark when a specific event occurs. This can help you understand the performance of your application in relation to these events. At the bottom of *Figure 1* above there are custom annotations to show when inference, pre-processing, and post-processing are happening. To add annotations, we need to add some files into our project from the Gator daemon that Streamline uses. These files are `streamline_annotate.c`, `streamline_annotate.h` and `streamline_annotate_logging.h` from [here](https://github.com/ARM-software/gator/tree/main/annotate). Then we will be able to show log strings, markers, counters and Custom Activity Maps. These files are obviously C code, so if your Android Studio project is in Java or Kotlin, you will need to add a C library to your project. This is slightly trickier than just adding a Java or Kotlin file, but it is not difficult. You can find instructions on how to do this [here](https://developer.android.com/studio/projects/add-native-code). -For us, we create a file the we will call `annotate_jni_wrapper.c`. This will be a wrapper around the Gator daemon's functions, and will be called from our Kotlin code. It starts as below and continues with very similar wrapper functions for the other Gator daemon functions you want. +For us, we create a file that we will call `annotate_jni_wrapper.c` in the `src/main/cpp/` folder under our project. This will be a wrapper around the Gator daemon's functions, and will be called from our Kotlin code. It starts as below and continues with very similar wrapper functions for the other Gator daemon functions you want. ```c #include @@ -94,7 +94,7 @@ target_link_libraries( # Specifies the target library. ${log-lib} ) ``` -If you add the following to your `build.gradle` file, you will be able to call the functions from your Kotlin code: +If you add the following to the `build.gradle` file of the Module you wish to profile, you will be able to call the functions from your Kotlin code: ```gradle externalNativeBuild { @@ -158,12 +158,16 @@ class AnnotateStreamline { The `AnnotateStreamline` class can now be used in your Kotlin code to add annotations to the Streamline timeline view. Make sure that `AnnotateStreamline.setup()` is called first, and then you can add annotations like this: ```kotlin - AnnotateStreamline.annotateMarkerColorStr(AnnotateStreamline.ANNOTATE_BLUE, "Important event") + AnnotateStreamline.annotateMarkerColorStr(AnnotateStreamline.ANNOTATE_BLUE, "Model Load") ``` +This colored marker with a string will add the string and time to Streamline's log view, and look like the below image in Streamline's timeline: + +![Streamline image alt-text#center](streamline_marker.png "Figure 2. Streamline timeline markers") + ## Custom Activity Maps (CAMs) -In addition to adding strings to the log and colored markers to the timeline, a particularly useful set of annotations is the Custom Activity Maps. These are the named colored bands you can see at the bottom of the Streamline timeline view shown above. They can be used to show when specific parts of your application are running, such as the pre-processing or inference, and layered for functions within functions etc. +In addition to adding strings to the log and colored markers to the timeline, a particularly useful set of annotations is the Custom Activity Maps. These are the named colored bands you can see at the bottom of the Streamline timeline view shown in *Figure 1*. They can be used to show when specific parts of your application are running, such as the pre-processing or inference, and layered for functions within functions etc. To add these you'll need to import the functions that start `gator_cam_` from `streamline_annotate.h` through your wrapper files in the same way as the functions above. Then you can use CAMs, but first you'll need to set up the tracks the annotations will appear on and an id system for each annotation. The `baseId` code below is to ensure that in the case of multiple places in your code adding annotations, the ids are unique. @@ -197,4 +201,4 @@ Then they can be used like this: AnnotateStreamline.camJobEnd(camViewId, preprocess, AnnotateStreamline.getTime()) ``` -Now when you build and deploy a debug version of your application, you can run Streamline and see the annotations and CAMs in the timeline view. This will make it obvious whether the time spent in your application is on the inference, ML pre-processing, ML post-processing, or other parts of your application. +Now when you build and deploy a debug version of your application, you can run Streamline and see the annotations and CAMs in the timeline view. See the [Streamline documentation](https://developer.arm.com/documentation/101816/latest/) for how to make a capture for profiling. Once the capture is made and analyzed, you will be able to see when your application is running the inference, ML pre-processing, ML post-processing, or other parts of your application. From there you can see where the most time is spent, and how hard the CPU or GPU is working during different parts of the application. From this you can then decide if work is needed to improve performance and where that work needs doing. diff --git a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/nn-profiling-executenetwork.md b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/nn-profiling-executenetwork.md index aeafa6bc16..1254741906 100644 --- a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/nn-profiling-executenetwork.md +++ b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/nn-profiling-executenetwork.md @@ -7,24 +7,25 @@ layout: learningpathall --- ## ArmNN's Network Profiler -One way of running tflite models is with ArmNN. This is available as a delegate to the standard tflite interpreter. But to profile the model, there is a command-line utility called `ExecuteNetwork`. This program just runs the model without the rest of an app. It is able to output layer timings and other useful information to let you know where there might be bottlenecks within your model. +One way of running tflite models is with ArmNN. This is available as a delegate to the standard tflite interpreter. But to profile the model, ArmNN comes with a command-line utility called `ExecuteNetwork`. This program just runs the model without the rest of an app. It is able to output layer timings and other useful information to let you know where there might be bottlenecks within your model. -If you are not using tflite, you'll need to look at other tools from your framework to profile your model. If you are using tflite, but not ArmNN, then the output from `ExecuteNetwork` will be more of an indication than a definitive answer. But it can still be useful to see if there are any obvious problems. +If you are not using tflite, you'll need to look at other tools from your framework to profile your model. If you are using tflite without ArmNN, then the output from `ExecuteNetwork` will be more of an indication than a definitive answer. But it can still be useful to see if there are any obvious problems. To get `ExecuteNetwork` you can download it from the [ArmNN GitHub](https://github.com/ARM-software/armnn/releases). Download the version appropriate for the Android phone you wish to test on - the Android version and the architecture of the phone. If you are unsure of the architecture, you can use a lower one, but you may miss out on some optimizations. Inside the tar.gz that you download, `ExecuteNetwork` is included. Note among the other release downloads on the ArmNN Github is the separate file for the `aar` delegate which is the easy way to include the ArmNN delegate into your app. To run `ExecuteNetwork` you'll need to use `adb` to push the model and the executable to your phone, and then run it from the adb shell. `adb` is included with Android Studio, but you may need to add it to your path. Android Studio normally installs it to a location like \\AppData\Local\Android\Sdk\platform-tools. `adb` can also be downloaded separately from the [Android Developer site](https://developer.android.com/studio/releases/platform-tools). -From a command prompt, you can run the following commands to push the files to your phone: +Unzip the tar.gz folder you downloaded to somewhere convenient. From a command prompt, you can then adapt and run the following commands to push the files to your phone. The `/data/local/tmp` folder of your Android device is a place with relaxed permissions that you can use to run this profiling. ```bash -adb push model.tflite /data/local/tmp/ +adb push model.tflite /data/local/tmp/ # the tflite NN model file that you wish to profile adb push ExecuteNetwork /data/local/tmp/ adb push libarm_compute.so /data/local/tmp/ adb push libarmnn.so /data/local/tmp/ adb push libarmnn_support_library.so /data/local/tmp/ +# more ArmNN .so library files ``` -Push all the `.so` library files that are in the base folder of the tar.gz you downloaded, alongside `ExecuteNetwork`, and all the `.so` files in the `delegate` sub-folder. If you are using a recent version on of Android Studio this copying can be done much more easily with drag and drop in the *Device Explorer > Files*. +Push all the `.so` library files that are in the base folder of the tar.gz you downloaded, alongside `ExecuteNetwork`, and all the `.so` files in the `delegate` sub-folder. If you are using a recent version of Android Studio this copying can be done much more easily with drag and drop in the *Device Explorer > Files*. Then you need to set the permissions on the files: @@ -51,7 +52,7 @@ adb pull /data/local/tmp/modelout.txt ``` Once again, this can be done with drag and drop in Android Studio's *Device Explorer > Files*. -Depending on the size of your model, the output will probably be quite large. You can use a text editor or a tool like `less` to view the file. The output is in JSON format, so you can use a JSON viewer to make it more readable. Usually some scripting can be used to extract the information you need more easily out of the very raw data in the file. +Depending on the size of your model, the output will probably be quite large. You can use a text editor to view the file. The output is in JSON format, so you can use a JSON viewer to make it more readable. Usually some scripting can be used to extract the information you need more easily out of the very raw data in the file. At the top is the summary, with the setup time and inference time of your 2 runs, which will look something like this: ```text @@ -70,4 +71,4 @@ Info: Execution time: 468.42 ms. Info: Inference time: 468.58 ms ``` -After the summary comes the graph of the model, and then the layers and their timings from the second run. At the start of the layers there are a few optimizations & their timings recorded before the network itself, with the layers' "Wall clock time" in microseconds of how long they took to run. These layers and their timings can then be analysed to see which layers, and which operators, took the most time. +After the summary comes the graph of the model, and then the layers and their timings from the second run. At the start of the layers there are a few optimizations and their timings recorded before the network itself, so you can skip past the graph and the optimization timings to get to the part that wants analyzing. The layers' "Wall clock time" in microseconds shows how long they took to run. These layers and their timings can then be analyzed to see which layers, and which operators, took the most time. diff --git a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/nn-profiling-general.md b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/nn-profiling-general.md index da4fe08de0..7ca228759f 100644 --- a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/nn-profiling-general.md +++ b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/nn-profiling-general.md @@ -11,6 +11,6 @@ App profilers will give you a good overall view of your performance, but often y General profilers are unable to do this, as there needs to be annotations inside the ML framework code to get the information. It is a large task to write the profiling annotations throughout the framework, so it is easier if we use tools from a framework or inference engine that can already do the job. -Depending on your model the tools available will differ. For example, if you are using TensorFlow Lite, Arm provides the ArmNN delegate that you can run the model with on Linux or Android. ArmNN in turn provides a tool called `ExecuteNetwork` that can run the model and give you layer timings and other useful information. +Depending on your model the tools available will differ. For example, if you are using LiteRT (formerly TensorFlow Lite), Arm provides the ArmNN delegate that you can run the model with on Linux or Android, CPU or GPU. ArmNN in turn provides a tool called `ExecuteNetwork` that can run the model and give you layer timings and other useful information. If you are using PyTorch, you will probably want ExecuTorch on an Android phone, and this also has a profiler available alongside it. diff --git a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/streamline_marker.png b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/streamline_marker.png new file mode 100644 index 0000000000000000000000000000000000000000..e7ec90f36eb7b3abb82022bc81819462fb34d2c1 GIT binary patch literal 52790 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 Date: Fri, 1 Nov 2024 10:24:04 +0000 Subject: [PATCH 05/87] added information to index --- .../microcontrollers/yolo-on-himax/_index.md | 36 ++++++++++++++ .../yolo-on-himax/_next-steps.md | 27 +++++++++++ .../microcontrollers/yolo-on-himax/_review.md | 45 ++++++++++++++++++ .../yolo-on-himax/example-picture.png | Bin 0 -> 63167 bytes .../yolo-on-himax/how-to-1.md | 10 ++++ .../yolo-on-himax/how-to-2.md | 13 +++++ 6 files changed, 131 insertions(+) create mode 100644 content/learning-paths/microcontrollers/yolo-on-himax/_index.md create mode 100644 content/learning-paths/microcontrollers/yolo-on-himax/_next-steps.md create mode 100644 content/learning-paths/microcontrollers/yolo-on-himax/_review.md create mode 100644 content/learning-paths/microcontrollers/yolo-on-himax/example-picture.png create mode 100644 content/learning-paths/microcontrollers/yolo-on-himax/how-to-1.md create mode 100644 content/learning-paths/microcontrollers/yolo-on-himax/how-to-2.md diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/_index.md b/content/learning-paths/microcontrollers/yolo-on-himax/_index.md new file mode 100644 index 0000000000..cb9ffb0e50 --- /dev/null +++ b/content/learning-paths/microcontrollers/yolo-on-himax/_index.md @@ -0,0 +1,36 @@ +--- +title: PLACEHOLDER TITLE + +minutes_to_complete: 10 + +who_is_this_for: PLACEHOLDER SENTENCE + +learning_objectives: + - PLACEHOLDER OBJECTIVE 1 + - PLACEHOLDER OBJECTIVE 2 + +prerequisites: + - PLACEHOLDER PREREQ 1 + - PLACEHOLDER PREREQ 2 + +author_primary: PLACEHOLDER NAME + +### Tags +skilllevels: PLACEHOLDER SKILLLEVEL +subjects: PLACEHOLDER SUBJECT +armips: + - PLACEHOLDER IP A + - PLACEHOLDER IP B +tools_software_languages: + - PLACEHOLDER TOOL OR SOFTWARE C + - PLACEHOLDER TOOL OR SOFTWARE D +operatingsystems: + - PLACEHOLDER OS G + + +### FIXED, DO NOT MODIFY +# ================================================================================ +weight: 1 # _index.md always has weight of 1 to order correctly +layout: "learningpathall" # All files under learning paths have this same wrapper +learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. +--- diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/_next-steps.md b/content/learning-paths/microcontrollers/yolo-on-himax/_next-steps.md new file mode 100644 index 0000000000..c4ae77cc92 --- /dev/null +++ b/content/learning-paths/microcontrollers/yolo-on-himax/_next-steps.md @@ -0,0 +1,27 @@ +--- +next_step_guidance: PLACEHOLDER TEXT 1 + +recommended_path: /learning-paths/PLACEHOLDER_CATEGORY/PLACEHOLDER_LEARNING_PATH/ + +further_reading: + - resource: + title: PLACEHOLDER MANUAL + link: PLACEHOLDER MANUAL LINK + type: documentation + - resource: + title: PLACEHOLDER BLOG + link: PLACEHOLDER BLOG LINK + type: blog + - resource: + title: PLACEHOLDER GENERAL WEBSITE + link: PLACEHOLDER GENERAL WEBSITE LINK + type: website + + +# ================================================================================ +# FIXED, DO NOT MODIFY +# ================================================================================ +weight: 21 # set to always be larger than the content in this path, and one more than 'review' +title: "Next Steps" # Always the same +layout: "learningpathall" # All files under learning paths have this same wrapper +--- diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/_review.md b/content/learning-paths/microcontrollers/yolo-on-himax/_review.md new file mode 100644 index 0000000000..9b1bfb96fe --- /dev/null +++ b/content/learning-paths/microcontrollers/yolo-on-himax/_review.md @@ -0,0 +1,45 @@ +--- +review: + - questions: + question: > + PLACEHOLDER QUESTION 1? + answers: + - PLACEHOLDER ANSWER A + - PLACEHOLDER ANSWER B + correct_answer: 1 + explanation: > + PLACEHOLDER EXPLANATION 1 + + - questions: + question: > + PLACEHOLDER QUESTION 2? + answers: + - PLACEHOLDER ANSWER A + - PLACEHOLDER ANSWER B + - PLACEHOLDER ANSWER C + - PLACEHOLDER ANSWER D + correct_answer: 4 + explanation: > + PLACEHOLDER EXPLANATION 2 + + - questions: + question: > + PLACEHOLDER QUESTION 3? + answers: + - PLACEHOLDER ANSWER A + - PLACEHOLDER ANSWER B + - PLACEHOLDER ANSWER C + - PLACEHOLDER ANSWER D + correct_answer: 2 + explanation: > + PLACEHOLDER EXPLANATION 3 + + + +# ================================================================================ +# FIXED, DO NOT MODIFY +# ================================================================================ +title: "Review" # Always the same title +weight: 20 # Set to always be larger than the content in this path +layout: "learningpathall" # All files under learning paths have this same wrapper +--- diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/example-picture.png b/content/learning-paths/microcontrollers/yolo-on-himax/example-picture.png new file mode 100644 index 0000000000000000000000000000000000000000..c69844bed44b65c7f5bc6cf511f93987fdcd7b95 GIT binary patch literal 63167 zcmeFa2UL^U+6EeXMMVUZIs+pJ3K&D^keLz00^~3ugw9BmUWCvCWE@9n0!I-cw2Yt$ zBoKrEAw)o=Nl9XeA@m-4?}T>aIsboV=3oC^_ny1%x@+CD+#$)E@7wuy`QH7O=Y4nB z>)aazoVk7D)(ybEeE`5d;RCQYy#Laz>(`zC_7n8REi;pUoY;RJAS?&30sua~fdN06 z{`ifJt=%_Yj{SGJi$p#6Z~A|E7hZR*QAlB>1>rL=K-jpj zv-gDbIk$h(py+Yc+ z$2;gtTVKkT9-qAL3x^5cZG=x501EIEz!dPKkp6$Q{4t+?IRJppDgbcc?|&R~!2$r( z#{j_j?mv!w_d5V^`ZoZeob}*tz}7u}=WNar^)7=pWzx z<6iuqjP)DgcVvX)^b>R&We2t{K4`k|Kf9+cLN^2s%0NhxCR2342er9!hT)&(Iw|YyX1G*pD$YNbpuWc z2fAPMfG7Y0SXxBI8koEvu3o9F9q37tmzIAprB%>XMjXhA4}>KLsNmCG$d;nQBKz!U zYNUm-z_d@U;^SIB>%#Vf`Jxs_=rrOCKi7ppD}!qz$W({{}+t$RX6@e=*G_Y zXfZ#EbdqXKPu5b}BChF_VEfJI-7^1EW}&Q+=*Xy_rZ9FD(U2>VTtoKYPU9wnWf$@N zh4lCTLJI%?PaI476P`EP^mJDzgvVDWtde3-B1x5mN&{(~0bSZOH0A*43$*>8QuYBy zAc?Z8n|JbeJcniea_{dJuUoB~K5~;D*EaN61h{(rr;Pc_IFt*Cl6*a65!jEw&DQYuWqt=E0h z)CcR66Up?;>|G_)@52`S2MrtW7smdJP`lc>MMUS;QWBOkvP(C90fB${4;r`FpBcOP z&k}A-T0RIG7^>x8jY4(c&K!1q`yVvy{eNNXzeu<`I(m3~1~44;nV$ zFO2;c376*m57piERdxU8-0!cd`>X2ys=B|b?ysu*KR~8`Ro#d)|DM+^#ymKiB^J6E z;x(Jq^mxq`o9D*yQfdk$Cr%pIuLb3$5h0p&-|qpQ?Ey?RZgf=L$8L>Zme1&FosLtl zZ)@{vCNR$$WViyu_{5^SQ+Nes3)}3%a0T06zy~(J2@F{AaqFkRpRZ)Mj)_Hr;}a_#>h3zDPZnzd@`U-16{#~a9!#;Nm!Y~;hBms3><*e zsuAn-W1I-??jpj2VgmLu43Fpzd(tpcG6N1Jm9aHBQp{w%T^rbfZ2kBD&dS*r5Dr{% z95NNxfyUC;UDXLF%c|65*UAD{Mx|aUq9xm^J}k?A^TY$OJ-{y=JNFUWa!!x3ztNn3 zfr@%Iz+JnW=2AFJwlryuiOo(Kcz!R;XS=eY^`%NWKHb&TMc2&)z58SD!9BnrxW*Q~ z2RL+ZGO|`JsWt)WGdz=FTR!Vq(Iu(DNq*KBxhifc3Ixe!r9h|L1xe_ffsi%ma9E8I z$L(U1iyzV>hmQibHiIT!KIyo(aZ(8uFdMJQv3d~ZqM$tcWA-nZDqj*K|0rQ^XDu=6 z4e^-*syfVgX<-RF%0@>X4n5{rc{vMWzy7&?r=7HWa+(u0F}w#zGG#t#MeYH9@LNz^ zQ2ImoUcpSCj2^D;Jft zSK#OV$Jpj}z@hpcY-zU%j%KkQpO=QN0@o6!^a$@ck(jiau5jQwjI9~GdHyilpn$&~fzUf3_ zloT}~CAMz8(>l$(z%=b^RS8$$0~h)>&c zY;0m6*K7}9m!9L|5>b4$GevscICxG@eW+WS$gT8f{tOIwPy`nh?Z7jv;AX6BOegQe-y&S5+ zT5OmbU#0ijKW`d@)L;#$3FfndQ$req(>V<r`EP+m`3EotXa&HJRz#w_i*M2(G= zhzaj<$cn@sU_Zn~u?(_NLmH&)Cen%_?A`IdAH3yy4gFd>No{p$&bj?gcBSM^KRNqp zes9g|R71N^=Zf4)13CY;h^6^L#M582q`v=4tAF`$;)l7&(4LO!@98URc86Ik)O2Hi z+0vl_Ldhr11MU$5^sAs5?V)o5?x{QN^!f09Ol-HHfod1vlrn(sSl+hab*RxQH1w#` zrcb}SP&2f?bGznBN#~)Q<=_9(4B&vZK!3gu6qET)Pdf9^lxJ0Zv=@{?WewOhQ;aPg z%))e+;&KOxvfn<-)EVyB0}L4voCwA1hh{ERwbDmesx!_p2C$*Aj5DowRZ&H2e2nO{n~b3 zcm<`v4rPmM3nwT3s#^_IPGPdAC{`-!Q~R~TQQPhfZcj5gE{BLzpS9G!6q}@`$@W!d zAnXjTZfuR?*DtI`iOg!4RS{;}(2JT}r!3E+5?$yMh1no8<$?a=gZY=GZ+&53VGU zX+lYrKMn#7VNKILH7|FQy+1S~rZEnaH z=GtHfHQ1I=YV=-{22xPs3Av9gDq%9k43SC`ALg#&9v9>@&kczx#WDJFMyxL6}(Nggf#h>ZFB+C|r`* zp~=f7Unp-?e1E?}Rei{3!81KacRb_PG}iz9*#^&l4gLQX@&7zrwC}SXa6{0AQDJXg zBzhP8NeaHwhmM~Mueo54Gp$C3@HW2RuZb(BqcEA_MI*f3=LANi8e`XgswT-UhGM3QFG1?LLhPJv~f6OGAOssN^_AncelX2$7-Q;Jn4FV z^5DYe6ZK3jh4KBWqp=((rwB=8Z+#mfe+&>V|pajy;{)?m1~2p6OxNN6L}b?WMCJ zcUsv&-gm-mY&*P~K2id7IRSl^EqOS`mAsLnV`b_hi>DzTe3)Y>9NMMlYht-$qy{s* zwK4L7gQzpxK2?s$gr&i?rU;L$Pyx#yz@_NRPNu#Y9n(W>gJeCA*DFEGw1rdM3P$9t z(sk>igbS4xU0js^m}^>9(>W7;q@D3htt4)K^O)_&5b!2HcF( zqM%rJZ6lt|NlF5{r~8HV6=GZUEz2aqqz=+-SpveyW+(eNX@R>NeQCiuXHw2NmL5-$ zB*SWX8T7(~tZUmww(*&2@yX6dvI9A{rpB{MdSgT4S{sdCZ-jSjvydygzGruBkD~jMc6u zvGS1X6Jno%kUT({4OpIqAtvzm*G7JKmQ_-4o$E>ZHR$*rAeepkm32E(DNG@4EsD&Q zK9s_df`eJ*MrPfgD^L3`L#d8Eb~jS8&V>QXq?9~2aw^_1sfYui^pZj@CSYO9wt)iG zC9Z1emsKKJ;GSui=)$rWY{^A67M~XzJClaHJlD^0@xT?CnW67K*#oe5_gCzSwB+L~ zlI28)8`ychhza_K?8~l+J~B8;V7+ zH*M57&uAvftdiFC2eSQx>l1T}I))gLNmOD#7 zZ@S>zLG4aV+?ZHcp?x}4qG`~X78d@*{N0t4_FcM?#5lDsiZRbIC@d#!7Q2xx`L~HW zkW6Hk0bvg?Wx1^CQiX~ugERB6y`3Lyo?0lxgY+KY6(c61|KQT(KNf%a8RI=b_~l&( zza0tZ9X-k(U;?*;9BVY_mFd$~9Xpj9jgeGpTlKZA@^vT2E}MgTPVZ+2?sNsY_nNh@ zr^H)Y7!AIU4^dLw1GpCh&0!E(ar>RKYkJpK3~4n$Aa!1>(7EB0pJ`w%C&#sKW-21} zGEPK-(A-*HboyQZcK(KkYvx5Adh%#Vr94E^$<4{$MF(cKynG`|%+MiO{*Ygf z^yLsg2iD-uoAOmzr#*lX%tFZ!p;z-5D3iZ2c9$1u@mMCRL(OEm2YtkBe8-_zphARz zW&MO|hn+<)*IHw@&$`o*CUu;v-t{IDKp&Gzwk+xLZ$5(3>3Jc+TC( zt(%#7iiY^04->B;mrZEtH89u{DXmmVvmJMQWb(3if9J{a%0MbSkQD)~eR|>i=J`}o zV@q)WqX)$$_qDjD=i@Z%*XkO%{Z}5Gj+XhEL+7DBPmJp73XU1o$TpcuL@gt-`8eS!IgsTUNsZcY^fB+ehi zmjzn!F+1p6@mN8z85&~M-~XQf0`?{d0U8ipaMh~$H2wPUBjes(C0HI?6l^wlzncz} zf5cS9#VKYy_p&=oqk=p+)Wb;`c)sNjCDnxl-;N;0WILa@FS;}SHaO%=X-2yGVozr{ zUaiGdLBl?lJWywX@iE>8UhS%z1%J%aV2jBmLg#zgjXQEfQ+T%{!7ky%c4UOH8M<>r zfBsf>e0TJr5|v(h_|B}Ur>oOkpaV^2{w@OIU{6TF}n$>Wq{}&$w}0FU`{n5nSBCRnM4gb1V!KsBzDH z7UJW7TB1p}iH5qte`blUygw(TDP(La0ulIf(70cPW?^r)c1*r$|3PU_q)q6a70 zTo=rroEZPfwEdG7bGXlTWirF-I+J^Cir>P#7)R#HY*WtFFC{%e%aU?UO&ExT3(k#> z4FPKzrT)GQ@&4SBwV;m+Jrt(CO42l9FzFyFJJRt;7y5|X!tzb(tC_w7Vt49u6qK&8 zTj1sSQ_G`wNL-UWcr@b9CV7+^XEa&qOI}6+0;@l+2f#p=ZbgzGDP+4+KB)x=cRQGwtg>67k;)+JKnPz)ZL89{V z-|Z`f!^|x;xuQT|i%Y~?@^-`onzE6akX)f6Z2FZ`T~2Ztlm-}wOL_>jyH3(+8Za<)ONnQV`_cKxmvqn9H+=^gDnP;mb+ zXKrvxFS3jB%w;r~Z55RtyHMYBufD!+>Gyic&{q5K2uj8sUA zZq3d4xqY8d^@p>T68+ls1to3ULI==D<42(fK4gRW3AfL*itR_=QeHF|z_RHY2Xcr$03Ca5xbJS>pq%#=gDO*X=HbKO-ptI57u^(Bt{6Pz zGBM0Vvp%@3jinA{y3H83O`bk6Ibo0VpL<$S+mkL4MR*2kr41vw!5E0O^7Eku(C=jJ z&JB9TQ{H7Vzr}?wB_1azHhrnE)8dxN(h$*H;`2!#srqPd9|nQIe&dsM`pBJns;H>j z*#@o2nM8;27s0GL!@M&`+!6wbb?1!0w#563ed=k54@d}}{Bhjs{!}U?R z=Js4A$!+RIPp1qyt({21&L{l_x??*5YuZujLtL4Cr*`K>oAKT89-#McNRC5f1{m4Jxu4P5Swxc?r&FPP}YdEN9Oa^|j-Y-9FsJ(B2=0q#baZ(|ov z7w%w}qja^za~W=oG2O5-RqyYmb`U1hdlz((w6RzSVpyS|Esl0(^TdD?j|aq z7F=^kvuP5`7iGGB8xi`$C(@Ix5oI2M^pc%8ls>%X=(nu5nn;}B*bo*Q9 zId)&jE7nbsQ+kUOmCqhA zwN{}UFK?*E@)wDzQi5Y1QVE#}m`Bu+1J`tU)=9|$t_=gHb;<(J?l>?QmGmUl`ABK7 zpP6Np4v5E+&jF^-C|y2b)?3SMG!8_;XC`ogf^+WZ%8q!FPaop)bzb1~hSU@BX3DdK zsMs8OP}6f4%c6qKmMjV<7jLuIxiGLr`bUsQiA!+t7D#AnF1_QjE<)P;(5ICtUH5KW)7}Om8U~ zHnEEolNm19CRt+;cAiPBV`|k8-vyClh{STCTiRo8_t;@%#XilwViYb^8`(GUhRMsf zW@k$~AxsF--H`=C}jI6;@VXOx6hD(P>h5OB`2(ATLe$i44 z3HOEGV$W+TG0V$k;D9G@Pt(zN;_y*bK>d;7Cd|YhK!Xf<>?pJ`%|at=YQh_4yvl4o zQXEMypsIOfES~7b02&=x;2F+;P?z?XmMZWWqO8mah_Nv>S~>A6W}6-~sA>*IUo-ss znZm3(rmE)_XJv++JxSG}rg61~v2i)z z>4b?Jm=a!zs=`WdTpqSvPuXeyh0uZda0Now^1J7VXT-yMX%0*HI29~0U$`V5qja=C zUBCHxr9gyTU&va!pE-T*Uf26}-vFxCG+q_&Sp)H5Dk=BZM~JIwwGJtZRG?ilq_4Y9 zrbk-UqpHkfh^sI;TN*+SkI{p~cV7X=ru)=$^>Z;38TaWTNsTZ`4X(r_&U-HDDMitD z;q=oUa<9{;4Zp&EssYV`p46*?W1&dL<}yA-Cv`t2s`q_bX}d&9t!n=4(_p#SVCeed zlpzCO&s|fA8GxL_v)H@N#uy1c99m)|Hq6A0iZ?-a*1A_8W9Sh+&aa$rim38}%F3^< zo?dyddIAm?sHWRF0XhF#riSQ4DR3!co?PeVwbQ{5>S8ja+&20s;7Ikj2yMR+xI|4) z5?a81!Ww95YN1#g!Q(>;5i-OaJ`fHztrHtUFo7#qhgfI)m%xTNmku5epH9qq=c()B zT$Fmxp-kRO7UyHC?l2Yx9}K#hamSZ7IIJ=#K)%#QZRFBkzIURS^}g>N+5@}{Q|>b0 z%(5S%^F@vLJtW=DmqvyD!?fDZ~a0CYDpX3E?=kY@%rn?74awkI=C zzM~$%W}v|WKoFsJgtj{3XScb3p3~(n4KZXDNr&@3N=9Y3e*a12)$-)rW8T|=-(b^L zx*E6VtER(tmA$4V`aGJ$5s~xutVMlioAR;2cT)p}a##QEx(A3JSXJFFY5iFup83lc zow8Oss{!k{mV4qBr-Txq8cVz~VoT(sM0-G7yi(Zpsr7$BE~%~)mq9Y&O|uJ=wz!g) zNs61#`nG*2Y#G26YQAHkicX z4A>5)4cAB1S#Hu%S9mwl1-78Rgr~Vjbm$?jGFqgPr_Q~fvm#2su|X~kF8Lv z*CkAg)1ESWU4UT!;PH$yAa5ecY|hOo;Zt%_Wm&qP^QY2TE!ADJ?<-@tyo_ZB8e4Tp zXED~r&#v)P$rN4*ot0oZ0No1Y$QS13#_HdC%5xMNyl)oY+B(2qGs0J=<&|#wS)5pe zMwgn;4wQfmPKX**f6Q=fXYF1T)7&jpE0y%ItMVlw3ONCBBPmu~86k2ERHe3`c;!3L zSJ9}hGa)!FBUQ88^-@C{?&K=6*0UzQpY>Al!_?2^iScD7=hK7?oYC_+act{I zh=|b7g@fxcPoj7w$mi(NB+rLQ$iH!x0}EynKtDCm6H;S?N!l}gcn_gZ?IvtdY%nb? zEqqeb;@#UKS0&|JfT$XIH0A0%~WtBO~7>~=8V3NPDt`ZVQ>MU76AMg^7rbhX-J;;yU0&=8Q z|5vZd?jK&&xrWGAC5AO=iuG%FnK4wwyVWrA)6tj_^$Y{L+xNvQyo@m45No47fS9I7 zGl)4hzV)r&#agCn1_g2DM!E-U*81nO=guFgdF5``IL=)Rl&!%Jus(x)O$s8==YmKy zt4#&S@`5o$$wkpN5@yB&nga`3KSi1!@SOAECa=kL3oU|tbfz&oHo>tgDTyT3x=f}X z);l_3=NK1bbF0gyQ(1iUk+=q!BrwI_-%w^19j-WF^u*KM@pSn2)9;A8 z-&x>{n{-GJb#4*2BRzLG?bfA<3r%(taYT}@B}lfEn+In?OlVKy6HV-IJ;jd3A-f=& z*+TC=urUShu!S5t*~gjyH@#E6OlD@}j+uzEUK-^>b!V1L{BQ50g&X-3JZwqI4nvI; zUxtzNOYfa$!u6$vC;zQObluOx--^Y zsVpFt4;SZXa?LjJ%I|lj_|-a)ItxW4Jc+&*oRtN)1e)*iCFa?zR`ZrHxcnPzFS?6< zJ$l=!qdcma)!ND_?Rn8nEJ)8G&h}5$^ZW`$W!>>^sYVW)^-a&dX+_0{CBTefK&u;7 z{#8d=Yj$fU#!kcvVr-UTPSD)u9o#YX4?~SB!@*Rk!_A)pz*oqY@a7y{dx|kjy{cur zpACgvX<1r;y;5ouM)#4^z1PVdqa71`2c$VaA&$FzU4ZCpGq-77bt1h9;fFhUHiz0O4-s6nQ{p4-As?-c3dl-L%6up-44$NB4isAJBccM2=>hZBm1Px%9-A{ zpbkw>w=Ol^Ik`+j_(EV-5XUJtDPFE7MtWX|u7?ZJb<7#B>$8o$9%G49k3&2Yy~0KCyCva?p$P1W*p{m_bu8T z4lDVmh5NO66tRpC=(diiHaUENA&#qXQZup@qBN$sq*St{FfWGeK(m6GoNLl0y48xx z*+zB^t?k6}^%b3CH?`JF1Tu0l*;l+f)5hiNI_06)9i=XieXQ*rH5>G%CxgrVT-{lP zy)<|;;So@#dwI)d{m*dCP2r`md}&2ztT50bQZ-Y4CIItK6!xsMAjnM!J3|CbjQBD( zyb>QbneK@XGcyyyMxe#j^@z4PhOa9c^IJgFOTx!HlUXho5eVr1d_vy7l})t3dVp8f zKfQe{$5Sf$0lzP*p^-cf!x=gH7C_Y_2&oXw>gYe@o4p?@+ifOtRc1?1fSIYLee8f3 zkq*TW>n+LYfdcRpbjdNEn(?!HBRt$Ay=;`@$sIZsLA-9%zo8!CpV;Hq2S1bJ986*(8}bGt-SmQ>}9T;4jZw3hV@ zwIltaA$Vkkjan&vApL{RI}T=VdtpyjMs!j)P?JT=%eJ#ds`VIG*Bofsq=Rc{VE z#}NY=J`?3fGLlO|G|sH6%W=BHeZndeeIo5H5lYfkcFTgegZQ+>F6@HlorhUs<;ur^ z-c#X?Mn;3Z13pecTMn}}xS38WLWhvLHa-B2rqs%s)oD^vIjftV+3vfWujD?ig@|V( z3=rHL-KlKfiD}$ipyg}|o0NbSFy2+2M!MS9(`6=_8EK7FtFU2TGqYXy7lLe|k3x(g zd-l9&YceXB5=SLHDjCq|VEdn^l~xc5Q^v-A8wL8(`(CmwQay?J(;bR^ghtyR8l3ho zNlnN^H!{izPAB3OT=n&lB@u7Oy{L2XuI%j#C4n2Hf%S+Uu4%en zd5-d0z5?u}i!btOX+Mpnw;VD-){54kq>O=wyv-PzlPp%Ns8Qlux!uRVPwV3l4WEK{ zGcb_9F=!G6$j;nC#}-1f=pF#~>$f$abB!elv21O&Yg1 zW@Ak8MO0AdAmIle+V5RWyb4-C0`ezfx>tfK7j?d3d5oNw9pY+q%4!W`r*EBln_Zf4 z;&^{njz?&E)Wtl$5DeGs&cVf{yL>C%=p&l}dtcXdJbW{E6&g_WsD9WZKCQc=B0Dj> zs!DWz&b2Z2Q`75H6yx3^4;xPI9$*<&XbIZP$ENlrK8!$RJIwp!ZLIz?cGXPs045te z`vO|0C;ZwnnV_0J-Xnk1)wS%)C6fFq?YphP=a(8Kf{0@fFwBhRG~P*Xy+3N9KGQA8 zP7Y9=YU&E*_Tck3RMYr~v6ppK=FnU1s|EV$!Nmlmn@d05gXX5d)xJbjZr0?Ao$Lrs zUj=R3DInR+%bqUPNe@z*cFMZHM6=|NA$6)V{U*RvZIO7v9^mL!b^;M5j<8M*plyjM zL>S~@$F+z{#*u_avk|Ib@`N6)Ia|v1-gyO4+x@h`NN;73k$p``(TG!?OQk-T$lnf0csNIQysI`CniC)PadrA zR6CXe2Z>u&V}=>8Ue|mK5#H&YSfYSAzYQJLXYT=a>$#C`A-fs_{burTVK(T-PAvm% z<%ip#xO-?U$qMbrJ%Ed6HH9urg^(Pn{>0Xjl+;%L)brA}n-kbZ^g*(NM|+9su6^QA zJwiF!^X1$Lt>PrIPj_sGqLcG3&9<6>yk@W2U(e7pn`{OdRGO`t{&a9@`2M{?zAdA! z#_{P>^ozc-;5ZuGB#@;epQZGp+j0Iu_LeP5 z#7%S$TXe^6Sa(}Y-1NC@*bA8>!*g$H6TiLdTVO++6Jc$t6B6WCI?K$0XqY$9OTx^# zv?Y}1%lLvxbo|XaUa476Sg6$FxNH7JJvg*5=Fh|?F^rDQK90<~-+vwR*f{bwtxE3k zP)XSMY=rXu86kF=cx$D}#Hk+#Mfdp|rMx?v`&34sj=oiouWJ3h!8ZK9CA6jrs<9;G ztJ6*jN{T`sWH2_>Tc*uWu)y=6`(>X!>3gaJa@t91#mn51Fg+l%(9oSvjQf+KOdW1n z=@^V&JQ8ktMr&8xYQjE!7CsPnX+4d`>2Wm7dM3WcgVyn4W`6U_aXUzefA?dqHlk_T zr>_eBuIhTB+}cjWW>1qabI-*U!^RgGT=7Jm0N*tzawg$x2vP6i8ry=K=aZ=nW&n?{0I@P=jneKdML8r~a0vKS<{NjTMP1u5YWD2YHbJEG%EfC=^5~{>q z!V57$zNl!6f;@3vJhn(OoWxybt>>(?K9DGBQ#)^O@VRkQ2wWs$n$*=i9HfSJgQuCq zxMkJYCJvA|yQQd_m;DALx?{r!!;Rc=S3ZO!Cnr2k2myf<`r;)n5odd-s&VdA6Cl%* z=vJbjpyYZ#O;%~6FS#-C8>f~J^x%Z5*9@CVIF=X&H-=W%07r?V_0VjUIONB^mTQ|$ z1MNk{GL)q?nm#o9#+^sl984_YBILqa=mcM|ODE1n`sw?7VT10CPa&q8o9T!r^c1LW zw$sgJ<6vV$fK9Qena6QeB3_unl;vttIB}r?Hz?AD{V;29biq&Dbi?hX-Uwb>%K=f4oe?3&3ARqIK!J+*Q-UY5l0_cpB?RmK^8tKEaV|pD zgKuSKsyhyB2@6O)I1p)6kzB|Nk-q2N9o64}P0N{WiE3`1+6E!s#ct$pPslz^y$}@` zrJ# zF-b?BizW^2gezxyg>CNvE)?ym7wT&SAg3K-vS*{NCOQa=DdLz@^=;vvF&ohM`-hz# z5Z)+@S0ITDsamTMOD{dK z90KL~=QS5wt-(dDf;m=UsWFx`b#BSJNE(rOpO&GWW4H_6h@A^@-|)b3WQNg7KNT}`Dhs*dY&|pm zR3FQz-fo%{2l%?_RibpRuO}ViKV@%kU)+mYDac5pPA&yakWzJ)>ooc(~6)|PmLhK&=&t?)qr(jZo|m>y={X0wcHD1JVV=ssQXcoZahMx6n=kUIPmyz z$kAXwNnmM&AwMB%HB0($xt0_Y;&2*Wv%bEY##GL#%!ynvRmrw&xeLmPQ?oRu2MR5E zW0<*S)1{cCgT|28$e3P}?q0R-E_-_L_zfdDNL5Z8+Si#TjMVl)I*4IWUD=jmSBkYY z9{Aj#aAkMQJ@e~^T;G}7!3rWht3-K5zh$~5?oReKMAqWMv#@@reI~0)dvY=~2R;hp z@VtPEwAk(Qzky6AgW3<6wqz1RW@nhC%fxr1UI*_Al@2qmzehIoda5$+K`09O~a%CX+*Yxw%$f z--aSkQ;qyVa;MftT&}KPr7Ced+wWd^KT_aottk40WaqZk9;tA;fq8mnSJQ{6#hlMo ziVybVJWEQ6g`c};LpCtHO~mKL5cQRmlrtlMVqy;y`&wq)lVVb9?UM zEG^7(K5=(8LEnA0K&O#Y+Ip^&V(MlW7V1TeD1#eJ5hExdjgr;n<%QCBG6{DqTc`=~ z@xCNpkpqcjUa6881P6`A#Qc=45xCZI`Lo}|_BWj3nY&#?_XK+_ULY+TDd?DmR^f5l zc1msxxx@XEhho~ivem)U*o{^!)^$TBj$sfnDf5{l+S<&OwVZj}f5AWGP4vwZLX75v zSiN_*=X4M~MXS)HXiXv8AxpTUW8S<9_Q3a~c}4>%^qKXmfQ<9$<%ShyqQUumbM3q& zv?!=W@ADEL)FVSjVnit$bcwN159=(4-BVgee3p8BCMZC-n1L|e+hY#P4gfqzmTc{l z_Pg0HjkfF-tf}crMG=ymz*|AaP(9B?hY{Sb$P$-`WYH_nhEFkBLu+dt<}?H4JxE05ygT5rbrL!JnZNND-GHut8C+J9&x_cha!;F^6@ zxOju5Cc_da*40`&h`n7O95+R^LKsh8&Fm{P*$T4zrvz}g^XXHdnzFZhg+2Pm57bz~ zy zv~gKaLM_t(1Qffa9c^I&o|9?iy6dLtqYqd6n>=;!^hF4BdV6VN2D|6^i+VN&B=I!U z3&sIKto4?`v5Z@(_mU;lnPsLM9>QPkor>Arl+wGl2e>{d4BuY=IJa1%;bz=sZoOPQ z>x4%#dZ0SnoU`RwGL?=V4vtJJh3YGkrHFzXGa&)Qs3zuAlU`0DikZG?%(4z!PCB@$ zsIH;daQ9M1@*7K8^9YLfwHfA&O@eTvMulB~K*7Z=wZ`P>zQ)@rN%*4u1@k@x=d){T z=P;*zwm{YnmZD-QkD)#e+pCs6RuQu9von00$nSK|zAboXl?k|qX2x~|o9Ymibj|K4 zg$}*-9KwlfOEB@-HXB$J>TFm*Y!gj1fTsab^^9{HiZxsFlh(eJ2}Z4jA?Yg{#DuCA zkK*8`A3l4CFTn@cMx8vT(Q^l1IhH2>J{}{Y&zBi^9kLGiQ}(&7YgAZB2Tt;p7G|LU zk`MhQw||1#x0Ae)?Z+y8r)oGCA34wki5=VCGB1c`O{{I)!ItBG?VBeo3pd-m{rupQ zMf8r;!kT()d_9Bz(7dlT-!8sF%a_C2(3i`bnZX_E&IxPV@Q95=zF4JoIK>*MP#fgb z?luyVBm*P&r+r?|$Cc5zMEw-n@+yhXG$`f3EG*4)+EjDRF4D%wHzPVMK8yxB@vhZK zP3l?7Wv5qVvL|^&Ktv&zw&Ivd1Cl_rQ;(&Am;r`bu)}0 z_J=B`WUeT&vT^5|Zfb!02fHDdEJ)9*PYPOtaw}c}F3oVB#Ygo`!<+QHs8(=u%LTLG zJ0Cw*J!~L<`=H4x*Q%>019ZwIk2q$~o4z<-kFn;{*2_$%m(4Vja_41M5_P>dxihwe z(}?%P45{pMa2CxWZCsqqPgmuG#1_oLWVTzC=&77WXf+Kn5P2UtU0IzMDzV{##R#{N=N=!5ZCUUAQkF1cZZx7DjCJ zLpMR_0<*t!SVCfl`{jX@mwoS>#t&JGKgLp?E(|ij1^IM$l7N zo{y8DC)Uq}m_B0aCJA?25Eq}Vm#eq%LSyNgeOcv;Tjf!2!qqHUB^iMmp5*)`;qD(0 zXe_$c`P4(1OJ%vU4*i!s)7WdiG`LN8AXm10QH|SDnakkO%$gc}4Q4L9ymnP5jLu=m z?g0iaqrPn+GJ&6mYU)^4tH!ALu_QBk)8UOD%5{LHSA4SeGbFF6#`$_);Fw;qMKuGKNpf6$g3zvR6)y5u}i-MSIfKc1*cgQuwmbW_94sp6fk<|VAZRo zy{az04r#)mDVA@3jw4$J2X%=aht!|KIb7#b=In;%k{|y*xzg4^$7lzh zLTx!0jJ9QmjwNT_I`?nIZ~XmCo2sIN^KuGdP^zW_g(cv2&&K7lxO^kI<^}B{@3m`O zgG=q?N&b4h?s-RAOR=OvpMxrRlBfs`Y?({4H~(C^gM>D60}EPpL&Jjet6X-{hl%Qz zR;alAw1xV*t_Nen(2SXaOJ0YJ{2R#|I~q^z!{>%R`TLB_i(G4Cs!h45Y-#lw)*ySA zH^Wn)zoHGquJCGH*1*$gU0S5FU@pw0HAslqn^+p)m6U6NMmIiz)(OtXd}hrT6Y6~w zCG!b$QKk1Afb;H5yy42WYZ}DAUe>dL1ffJmf=}a}ZWU9OJm};RB zhBxD;H&pRS`o^LnLa8_uc9AwJU@khEgG8EYzyI|>O-V}%2VPf9&)Qz5RT`>ta(OX^KxP399$D!y*fR8Z) zC9{1#Henf9M6t%69Q-6eEe_nN@vSobTYC^%b7|VH`F&1eX_Pp*fFAW>{rg~Rl2)HrL2+RHp}60Q)evJM3&@NNMp$)uxXL_ZMh-%qJit z3KDnvD)djgdg<3$64Q!b5A`;uVfj3wVn1h*i?GHqKW3q9n7w+;;Hvz-44N=Ow2idd zw&6w2Ct@7P5VN_z>t7Fiuzb5~+o$PsHf211Ah5+m7yso#8v{N1Fa4< zhhddEilq9|5{ibx`PGS@f)x4RiPg^;?d_GGcVuB__-MV+CJk-%hi$fg3a%) zrxm?EDU#1Q?JL|H%8|dY4xT~!6gF2BIO10m(3aGI*l}|!K0-`v0Sf+YVzYe@fSwg; zdPLobCExQx`>FGFR{L9viZDkqm*QXa;v(TdK0ZI2bwu5<;0D8~%$Vm}K}6=7Yolte z>PJ4V?~k{MM;QxuPfW}8-)z?|)xl^YOj=ZE!dh`TszT+QX$Jk(#kpMzr_*%X_xR9a zNVF~D!P`la|HMmDYx^8WPEc*hq>GKm4eKjzIod8$PPw?aDk&-HD_t!0emyB&cE!6| z+jsWJ*_d3ptRDjkIHD~oIXjyDamc~M$=2nITcCJi9!UgYdL;smX+LalBIYM=>;W>6 zsxnBgpNmak`tG+Wlz7xDSfmz4JPetfDHXwGkMk0$yhcydK=1$Ve)!Yo%KDGfoqiuw zR*5pHZ$kQ4-w6Y?WvlVNrK44stJe$1H?oQf>`@P#g8Vv?&ff%K>gEM0QMUKro-i5z z{tM!1WASUX(PH)Oww)KHk(siGA|gj3Qm|Vp?t&ww*2A8{hx7X#X1; z_S8=O@FRNu$4m#28y&gEHe?lIWnNs4Pg@(bO1OnJmfwO#D=CTHt)m8zgovL-^0CKT z5{p`6+|CZ{cx-5~fAQPm!n;GARF{T0l`>DRFobt0CyjrOBii-lUt*lToV+;w`o`x$ z>lD|Z6XH{L{gLAENBC~CN_u`QzfT?B^EnsiW&{HPfudao`N5Nu#Z5kS&!Pf%P-52` z=%CNVk77;r{dX_=!%-02vd~D!i6;`C=4cYg;SMMN58mE9s>yS0`=;Ag_jaPlq>Njv zARy4lJf>BKR)ds=5M-=Shy)08n4zszCV{QY2_#$41QG}$1V}=l3W74l5CSq!hA@SB zNFa&tZJ+mfw|njNt#7UOThEvO?zO_bLhhC8IAEc`}X>r5LSpLyR(9nfGd!j$8)dLYU5fKlLNiHiWh+YQr=|5h7EU# z>Fl%4IDPdd(Z|X{F+ksCy}v1vwm32@E zafsAFR%ivxlsNCjshY3$XYq@0sCD)af??=QdHI`WL&47dvAdOg4Pj~WH)rhsRxMGI z?n?@{k|hSHDqhMb7v%q9c_~+H;lHk5hKhbdG}AwuFLoCFrJLh>=Y}owt*jb7{I!xD zX1ltfElGVaFKlF1e&xrSf9mwW-gkAs?t4wm%nV|TtdBS|(2E2liN28F0Fs+6E#yhI%S}CL-z6#;86`vRN8ItT6bhbBHv^CT$?{$>Z@4-C zR|oYwVtt=maq9QhehE$S47``VS~}$ zQUuW$n()F0a~c~j->GVPO(pC?l^V;eOXU<@0%JR)D)M&8m|*d0 zCU+My84c?jj@9S-^bE8|YwyMasUtdYnn;6C%$*IvVFui1jbYdh3F{vD*07PJv6as3 z?%VD5`mQ_ui~znFI#pNf$)h82zNe$rrhfhw(Yd1X%M1Ey{=-hW)lNBq} z7w*;d4t>WBVRB~Gqy#QJbg!@ZYY)|y!+g{*rZc36w;<}$yx5?;3HqpPsBCSqykiZ8 z{dK%ogGZ#}gUnkY(qmh5OP_s^30v~50ivYGp!?zHMsA8k7pB`s;XzD5ebI5)caREJ z(_R_3r4-uS6jpcD9(F-;taXwX=HA1fvZJQVBVJXo-1RX*loUVNvF>}H--w#9jfWU0 zp`yE5C%0-ER%2^eAX-*K-O*Z;5&R=9Tifr`j>D^?h#OZYuI#xxuQ1jPEoPPm3CX|^r`+zv5wqwuhlQN^1$Fbhl!~cpJ!}vRk=L&&V2Oz_JS_i8vkD!>kT=cD=6#-_#XkH{~S1Nc|%j zbt*LLN^GbnI7g*lVQPrN(#0wWgS!dIL!yLuB>#N|Z~PdMykh0}>#uQcBc?V!;M0B4 zv^4Eqvs$3GbL+HQpQ2?k%=LLBkBt(qb0`(8Qss5syfs8S&Ua>Z{4OC*CgvojK6uhn zr91`=SrW!hR&K*V3akad5kRavf}{6 zyY5;!NweKd_DMQ<+6#INA6To+Tk{rEeM>gds;W`5gX7u2W~=rMhuV)VeE5(!8|=Pm zwO<26CJ|#O^vXgXW_i3IVrO5E3M*5m>*r{nzah}jn$kC6qPdyQuY%Eq8MgzP5&x-SyA+iQNBKWdSr$1CpNzi{YK z0(-f2Bl?Zh=y&b$6A#(1q?~q@zAe{94lZf;eeTlAXG(JjIg`_htNqs!*Q{IXpH=Zt z{igQbuNk%lo|X9fB;t-eM5yJ8yhP%;I>^=ZbTQD`3eMyCPeCeuyY?65K@evc#NH{i zPo$|7*VdcOd>NOTshl|JOWe3eX$G4cHs34p_E@TNI^KK zU~b$om}o{%nuo!iW8iWyQ>e|Hf3o};X{q%~sdc2z@AUE-W_`;Qy^gFo@&U@BhvGk- zciCCqHox~^Xscwqk$krm{?_8n^T@dS_XfBy$Y|dy5+!!-JydSEB6)LMUY?hk8P#yP zV$JVqw2dBuxbX13wd;MBc35YGp_9?kgxEa$oweU*{ph!15<2I)h8cA9-bJN--|QfA z5vd|Cr97yl6ss5|z_d2H;2U1p7JYu_cD?e~&He%!FFi!_*M`#D%N>3>!Q{!MJO~Kw z|IyuEQUZiZFKkX61Vjt~M*3H!g~R}dTB9g0sbW`FK%t2@DagoGQ!&ysYRe&FHrre_ zwal4>;`D>atoT*+_><1@A!R##-75mV4B|g>?*AWPnSjocYS-k~6O;M|iPirk)_&(E zNAyaguFIXzUN4#4m3}FcqcbDiH_v5LecUN)wHjHAfSVjSK$Vx*I9sw3@5kC40UW$Z zG2znGk;cQhmE|Hst7)Wp+go9Kw+~h#V7H47ec9sJ(e|lHRlvhR6{z{7{1`dRaAoe5 z1`ZO}f1ASRx$c;aAwGSNvE~!0uXdcqey;CnSQ%E?_zuQ!l%~jri&ShBoqm3jWa{iT z7cva)*!*37=`TFR8G~2G^1DC;8CooZA$=Q}cw%!ZBI>Yr?ZN1wrXH#84jeTyid+wa zgBZz$Xf7lzq*lGbO_$T3UR+4zy<@%nsGo-vOf{hYv;f*H{i&ay8S0w7)O`zUy0e|A zQ_JZwwx&56mcb~w@hiC{(t`vqD@(YOp~>tfIbC?b922l>mn7akUK+T8+Qr=7hnl05 z3$+@-d<`dt1bL!i)%$hcz}PXK%;HlN8Wt<$}*Ac?tIWTM$7vO4HQ>e z=Pm!*9%T?|CGm;n42sJxW_CL21?OJ5aJTMe*?|mS95FYQ|DyaZmSM~&TpjS~xY?xFlu!;jQ4{1GOeJHkSjAOmMsFYEMXrrey*&6 zsv0vnV(2^(eh#)U(fWWnt?(Cl`F+nN0Ow|)u zE=!?1#n0eY4?Fial>x`6f4u&KX>1bg+2n3YiDpf~xQrf~sRMya;`Fy`c|&mL*gKw2 zUuW`7xYd(9u%>RN1XbNZITt#mum}?{^PY0={u-xMLt3Ordbu!k6+ye2L@V8ZLZUX% zmgm|c?|0u8k|V8FqMH<(vW-jdsdveAtG6pD1Qor6K zRWY|W51*$(^Gcz`^mIo}O@GY^wsFfI)umUo6-^YLg$3fxib#9W_{SO-@Y>&!bQIX})k zWKmSS%#V^DwH@QLVD3w$lB)YdUKymx0i4H%r>0ZfGREi~?#|4B#6S7`?l<v(9eIYWSI^AB9;aIAfp%1^Emqmr`Vh9KEHte0tV^I zA>N*aYTUtCHw&10;`*%+xqvV1oou=q1QG>1?z~=C&`1#CQRz%~<=r>)HF;x565tXJ z^7l^wKu8ybRvGiREdIubYGxfn6BY*Q>Iw^q9ESrj)thRJA`xdxD-hd6AfFkhz2_v; zcn}UB&bGQANU}SgC>EvC;&y#s4B5xKlcanrDEZ;PPzuP7sZfD=k&zJ8B9i#BU zS=z2GInX!d7u*A4p3P~yeA&XKz?GNDE^jH^C%3&yR|!~SlL->|INz6&8k}dG%gniE zCMDwYtKM^mnT3greH|7I0AsBbQ>YPp0kTM}+qV6k?NoC`Uvqh1t+qr0B7SeD91gz5 z1)0|BYquu%sqXyj!LZ-L7`lQ?SWD?uSNiO`9t~$=5FY%H^;71Bx#vUGk0l1M6&!2t zp(HW(+sod(9(tOot6S>NrM~nN$Y!d>=N{e6s1T_vH>$phZ*$Oi2(07MCpCJMu3Hc6 zv>2}a@ty~?%wOGRrN{LmG7NE{>#6UU*qp2C130tcX@%@=ZGG=eB*(%{3r7>bSzWz9_GG) zfhclpuYx(7LeTpsKwM(+i(zcG%>q+3riCq3e7DsR+hU&H zE}6u>V-&Ky4`~|rUq562-W%$fn-!3}#cFeK+`k&v=7^`F7hZJIOgJ?^Pq2EIS)t?g zatcuJ=OfXzo8$LrkrcC?+hb)>BN3*87cIMGCtA)nWTS@F#+IFJgUR^z3IskJ|K?(4TI}61Yd7iXWLJjSI;5TZ&8T}jA%b(bPHR6%o5c6?I$YM< z7Jx4n0EU#LZv2!4rNab zR0~Rp#F+0PyRbD&+@Fq41AZKgl>WT8Nk6SRPd^Dau#QLRk9ykqwD!8M?Vo-c>uPgA z1%9>#LY-pWZHVb+!tgOUe}*UPvWtE5^T|g8Uwia=AKcVOE$D_8S!S(oZjTAJxpJe5=a$-X z-%ZEb)SG*cRJur>J)RW4`s!Sc@&&P*6Ftbr1n5}*AR}|E;XmcGfSdmj(3Km*i~YD8 zw?4=?dB4L0*2L)7fBCB6ob8}$chP|;&S>c(%jd)=jIdf8qY2kZ4Oxo?J3vk*clmmI zhlprq&o;wg=-q=QDk>}46y~;-k(V3zEa^h1|7tD1LZD^{ML7LYpYH4`K|Pg&a5wup zS^PlaXD0aBHj~w|zg5=Ruap#{pmv@H6Isi7YzVbfc`Uo(WphYd>IwP9^;2>VV#s#i zD{C5}OGeJ2fHj3vyZL6q=4$usloF7FJ}T&Sn`n119*w@jvspl}xD~+}+Yl}v_P#kg zQQ}3+JS0cJKFBm9MR48RWD#^yTQ@_frFH&{=h+i-_d8rsRu`rRx7(s0kiYJp?1WjZ zxGhbpJzSFsqhLo!JwRhOdk3vGsy3n zL6kIS@WeOuNdHS*gTS9A`Cu;A6t21M^^}kWP*E;BJovdEJeQLyKf^%lsJa{J5itB) z6+w8!S6z$cws#-ykVoD3+mAFWT{H_?a4$ugLVSJC(hyAv$uZ86qRGf*%`J{laj$FR#G|B<7Ag#mSRZ%>t0 zr`4*r5-9xe?KtZgNU8$kxp{}Pkx)L}%kMjkRpIT$ckX(bxll!DPzHYF%p<)CpV9UV z%KM!@=DDKVm4Ew<>JRRKI5CQ+^z)q8^m(g>svcu>Lm1lBb|k7bfrg^MJOOA!I0O=} zO`$3z!(a;@3voMp6Y`|UN=-)siHME8{4zM*q7d-oh0Xl5#RDR@KJBY7Z{J-@iNI*bSxKhx zmMn_NtGspQuIBTMJ1bU+iSgUbTiQA-x*!ygET;~2W-`Ox+w=Umnu<}M*+Tzk*?^aI zzV*|LpS~EB+T&?AaQYKv<;a+eO`f}*KK7^f<9OfXzo$Z8flOf_IrWAs5(kSqk{{c` zhq3zrNpF7Ecv+ks%_`QbuJ`Uj=2DzxLS9Oigm?VZb$j}^?P z?#90B=^;%inx?Vm*tT9KTU$x*GVwNjtir$A*j5ZTqp)rc3foQ>`kU9`nGD!Uek}~r zxBvQ(p&Ez8o`_qr?r>t51P0%7``NW8Nk0RhVlP&N4(QAjztp5cKW5JQjj(ZgRBym? z1?p876udPpbMAf|%((lPph&9C4a=egVPf&6tR)FlHs$q!4zf8mHIH#sa@Y{XD+_tY zg|O^gQIa0rygmP7Z&*pTxASuCE~INI(fUZnR;vL+Lh_I6sBtP{Gcsqh%Hwxt{-@}l1-i)B8xJJ8`1&0Upf>abAl_}m@ll`?rVlGs@E$G*} zgV8zheP=f&$P(gg7Mv-`Ya@f=f+PoPE|6aKC`#k&5^Hx|AczIhnDt7G-1IUEh~TRt z7HP0|L(PG`MIj&8E3b}bE|yt8gCUSE3H?L1FXvm)6Hw>4Et5C%ouNZ)ld@1$o!tO4 z8n%RIDeLC-pAzTEo_!Dqf}2FGE$lDO2~w?UPQ$#%%k{|D1IAfvneZ=_w6cNaN&}K6 zdR5m!+-nWj28-uLW;us`k0iP1-lgg2&Gr|S3mxwg58@`o;Tv~E&-N5ewwWN8(O-)t zMs`92uJmHwM>s#0LW%v`>j@pCGS!k}zM{4p7q3t{( zNX-0oXUCNNFj-@>p&`}xkAp;&#rt7SQ{!uR#oC>?g%Qb}4H<`FeYNH^(P(XQW&RG; z?#2orr*AiSikx(okjaJhPNV4$U`1`iFFPUiT4KFZPL{jV~)@Ahi8Tu#plGP}-w#km3qG87htOy?$Uj#WKg=`pZ06`!pnVrYpvV^u8{^)wbZEJ=WSm6rYFkvp84F!dDt! zueTY66r0x0k^!Bfalr0WH6}7LcngXGNW7Pi9bfewyxK-3xfDCY@3ZA4iQ>=F53?aHE)*I|Q?CTV_rd{BE;*QB}FgN(qpO z-1_E7+r3{T1PqyUsiKrbA{GEU(QA{A$GCxJs)gc{Kp3Jrzs{RM@-59v0l|E{(y-MI z#+s@$yJNCDJtkq9%`q4Qj=g`dM^j>B_a(kF$v@4{d>U55Xh@aB=@0@JSDR0rg{YGi zKFHiJ$&0&GX}9RR_xjBQBRsvxFskcCC)xdV2Ciq_heVFC7n^WU)p?s26UsER%fH-1 zoQ-=b5l~R&akAQyYFGJozTgOO*9@7Ev4m`ii^3==Q)qd}?ux(ZM=`AL77vrAC-)Q^Vd@7qx zooH=69`5Q;hMS)tXBRCu+oEda?2Z$Xw5|PBO2qslSsiesc5KP}_qf!&B;uo0N_g?S zz#mD_(k&TTaWXeKq{hAd@@ZrB)MC&CwfGr&cqPj}JeXb^54B+=l^;Ugq$p}u+V%U5 z4TJ&38cH6$e+3_wS)87j_i}BBbEsbwOk`L`g}eyn8f$816^)ZYA!e9)u^Yz@v>_As zkGCHykWXKbPsi~6Tj1&cZLrVj$LzfB;a<_ryio&aAi@!>>1D*T0{={P{@YlZMI~3* zGjU+Mt=iW9Qbz8HBxk%x%Upvjr&eJcF8Qi0WC<0%od**q0*8Ay5jiNYLDt0QFnUVn zAmHPtI~KBdm$rZZ*Ditl5#(r{_Hcdls`Cxi+McZX)G#&`y1F7>ppdzpUoHQeVe zC(&`69g(;DnQvNZp+4xf@r*iIWxSOEdhZns4Rb@IcLR!<9)$@w025yiHJg8AX}Tg6 z73X&IMz&U)F31_zLSJ$kJ}y9YEB4_i3O zM18cOaR9i6E+L=;$WEl`pL39r?H(CRa`Bs1O+OJ5mSVMlep=<7?H@Nou_H`2#!D+=Qn#haI)AG(S|cbbvZVV?2DA zm;iMEH+{5*0oqOHRZ}_Bn-2%@+>fp?n3cWVKc0AB-~ZP1MkzeP0^S6wnd2BkkSevt zKD`emBm*c&Awg%_+3)1FoaGcl`qkw^$kd$rp+etw7O4L6tqh?h+up?}*QeLo`T@h` zc&+X_&JSIcYJ`evHHA8;=}AnwwM8ZSrl0>Tb^0#Vg6B)x9nf8~Al038E%#B7-XZv( zkFz?160lo^(5mI6h6u#UIrJ`Lueu$ZO6GE$qNsrE1T_XAP6_eWft$H+3}-?&xm@{4 zvY`w0T{2(seN!!0{>eZC@#;&Nxu>Kgz`Xp&C^$Dr+S1Ox0n`GvY)IT9876s+6bSN*mtfy#1ER)f^BY7TaU z9d3WX>KtvuoGz^Tfc5pOhu6$PXk30TUN0yCglTWWr6z&)7<{dQNIP$-K`)a_K#U%PVcDG z;4kubV)t8emy-kcez`WBZO>8&$#cX2uA2G_C$1=AFh=F@|;RC-(|GsJG)+c)V z4B2bE-P_j4JO*$*@79lxXeX zT;K1Sk>GICeD~63Lo+_G!i~0YbUO~7>4ROCb;-XSBy%AUcHKNcaUix#<&9oxINrW? zH!#jn?oLbNNDuk&{!m}k2Ir=&2tQ)d9)cF&P!I26p1aqnuTN2GIF8Ny}f#={j-T11+~0DiIf!ibx6 zw*636Q{0}MJP|&9vRDMP(8yB#0^Pdp2TRh-DBD<juCVq?%dSNI?tE1^mB?xc9cQve6bgKBA~Xne?U?9((8!0XJ{lrVg+GUlHXFA zSSBxnTF7x<7j9JO4kl<@#^PFjITm{w*x{1?gF)A2@}G8dIrZufGOr|lU*LCQ`!l6^ z`!>I5-2mlJo^MSEuPcs{KJwmuOTQMsHSK4}lYB*6=Dd`=QfJR>=LYbLQ;@BJ@90_{ z)U+pNgM?i0s%6H z*)_r@ga%hB)CIO>zd36@E&&-s@ai$q6{Rr}JG(lGb|{xUuR{NgHdq%ajfVhn@LH z=+Fn5N$xW1!FkQ^mDeP68pqSzVi9@Rz1d+S;;MsWIw4(_y8d+liMEs1TziM=b+ z=1cl5f_G@tu;q66eOK6U_p z+1zhX>8Q@~7$wfB%d_k6YJcJGIw#$=zUDF9u+B#WE}bav03E0en0) zcd{Z3ZsKCUM6>LedfYUw&M49pMxZWBj1>%vxszM-;Pu{m)ajbb?(Lz zFE07)GsD51f)xL8>~GuT)W-Oi-(sbjX+z|#UV~pejjTRa&VP9sqqw=Bv*nIheOkFX zv#3A6uKK=)HG0G8t?iTT*Si68w5Agq)w}$c$LyBA7=3YSvsc>Ddte!(V3ZRNL#k;^ z31hrgM&iPkE1_o^|HG9DyV%r>u`D z3q^j;P?`ntTJrUJx{Ux^2xG05_A=CQe?8RVfu$oM?&p4A$^KIe5~)D~OHz^)gx?US z7O4t1r$*u0B`Z*DDa55n>rV3k*e&(m3#eaAfOgd%?@A)0pOeS#jaBnzO9-9zQaaZ1 ztB|~pN+397;ljoCI#HU5?$;;I+5eApb_&<-3_0}s9i8+&{yYo{##JST1F)B~2f2p! zT!mNUA^1SDTu)WOUP1v=tn08LUw5-c(eeil4_Vj%dFJySFSGE zhCv_z9;}-9D8aWRGc)I>ARS0T>5@7l4G=n(-Br+i0~ibQdMkUB^@zWJS+50Lu$^}b zl#R+8w|`=74Bn4TY?%Kmc<^%wuOM+#gpAmbFZ}q>Z2%a-cD7%-iy(gLzq>W<7Z240 z#hf<&eA->7{`60Z0@FNtcOSwLrGiZ_zF2Kq%wN0t^tDz!ds*qj{8V>VCP z>3c1%_tzb;XJoQ#+$}$C%M=e!evsh@QMYnk28TrY{vXeKzK1=G_n+-`(Wm&f#(QQW za>3Thj1#y&AsXg1vBg=Tb};)%EIW#0!%bVTIzs^l{{DnFC7RyiahR`>_g6pFi}vh% zkId!LX}8y(G;BP0|1u@6oQCt87_$wHX}{0e-a`Cv0>tMF{=He#ac=S7jfrvw)eBT$ z%PrlBW_{dpZT~5!i0h%`!%@ETQ+pJi_k!v5#k?#`aE8S7wEt4d#n$BYv_gvXb+p6N zyW2^rHSspQ(yjTr#NGJUM*=Hs1*a#?sZ2YrUx+V^gqXw3E;4h>wLqq7-ZXN-EvCa8 zoVO^7qyuOnv@46T2)qihTRXm*AE(+dI@_;(9Ib6KG!EG(ckJ1^(TNH z`R}j)`PE6sL!$zAJp8^3%W3=Tj8;;+T7 zUw574q6=nmJpZ>=KXN3p5Za;6f|&;SmXOK~cU?iIEMOd20wnos5tC=pvB-!`BmlkZ z#>Gz0neO47jqRKXC7pC|2N_RF{mugump?CCA>b}!rEjKO9@u3!!%5+XMs=5{V>uhb zt;;T3%ah=*E<0QIM5eRR%e&4WWCFMLWo6?Q20NOo*2=N9!DpLM`>Jsb5vW@g zP#qp_WL^MsXuprK)+bB8Q3)zFguy^gw=jV9;}afb;s3oi|>q08)5iiFu{D| z&8Uq&)3|i3{Iyv^|KOhc6xC#QsmOoYw9#gZU*?M^~cae|(Ip)bve-A0&j?K*9g$j$)1MNtRHCoHE z^Ch0TxzRl~4R(LcyWDqeXjFA1d{Z`L1|_L0-E%Cj@>&@u1r)mVx#(6@No!p}ps$HO z))tfE3ss&o3ln|(oO>`!6>f}6U|g%&YINoXRO6sZI>eEbI$6nWwxQkEa4Ksjt8-K% zCo?)I^a|as0bUPY_BZT9IhWa3J7siP5zj*wsGXGU@H`-~bAH6EssCJGpt#I$6w}Vy zTEx3ls2o4?dr6hK^V;WW3cJ#SLxe2(Nk|+WQ%;US2L!}^edLjuM8mzxR654qs|etf$lbF7Q>`(HX-E1eQg+<`aZK7YqzI=hNN)x02A zc}*_Cf5bw(_teqC>17zV%V08(x;K0g>g0*pj@Bb26{+W@9`K?M5}>oBr1PXhm(V3I zqtK-!7kjGNMogJke34eNv9m&FG=P?HxsT{IzLG64)XSjWRMA<1tk_PII)TX=Jddo+ zUB?1@XV6k9$H%%7&)ogxni3s%STP-8<}zQ}eq}JvNER5gcI0QNC3f53($>q@$uIN5 zA5;k%#mMzoa1k)h?!Pf3M59mmBQc==^1aD_>U+y`@;=P0O4W~BxS_IgnAm3dpADha zKN~`DiI$|s9B`ykg+R9KXyVljBU<`#22iJBai18zpazM$DH~X$&EEEJBdfo2 z$Cf|3F5}QHyHqMm48M8oL?VJM2%Uhs%A6l!ltPcOZC-LO#cfnCJb4z zRPZYN`ti4?OMTR+z8B`_H_(WPkUsonzFTQXva*1z?Q>n(ejzjF< zLTVs2YS@y5cO#Kom$@e1RCHzqT`%t>Fpoxl z3V1`cu`y%^;?iaLbnaNg%Ded8w$4< z7YJJBj=vQhR?sD2N#EGs8r1lMj6RF$R0OW9n2@Gz;UCA8=5yqeU70QX8rPgu!?`;q zu9fdF$!daVY&*_yBnr$;_e0e5PlUqR5Qy0BQrm?8yleqCoIuN%v|^<*JAZK*s{Hq?es3Vi~T^ofaiw=^0s^{tgGKOcvxr8L0C;&!_swjg z8Bh50d{>RcT5m#&s5Yacx0}^jU!IA^HeCthpt&)uKsOiw@tn`R4>DQAUlvFM!y;_$Qwi|%QWj&M-I{Mug+tt20v32J}Nm?mfM&wjPBH;jUh5-<&NeCPwRRMEpZvG?J)d8-T zbtxw(p~7-l^Pi^&+R2;O+$Q%gZ+E_pS+0E*t#LAYH}(!s`cyd$`b`<9a{XAng?>kk zPu*nLdt`#*Ku~qQJ=*&XNlP1(%=GlvD%svD1!nS|E}|HRdIv#qZn7KAM|XEgo%G zH|b(-zOfTN{4V9~WPa*YT~mB!9+Ff8)coJQA?fZn!X2PdLw%yAU3NA{V2N~(ZE;g{XxoAc z(7>yoR;zEvj=hdFnk)14auB8x_tocj??fCXt*^fRW0V2^k-N5AfgvhukgA%EC3NX< zh7ehjE`UMpBS_`vw^5UE$Si}-K9+q{kDVdnZwE)F*Ia8O@46Ev_AN;{7hGt=CFEj6 zEK|K4KU#?g3lbF8T^k(j9_RZHMO92LFA{9nijZsYQ@Qoo6w>8^R&~>5UQDFO&iFDF zwWf!YmG#j|5Sj3Eb5r-JO%b}>IPLtWBQBn0eJf|THR35elMgZr?LUgI?BmrR7%N?BEZnzTsa!N%h(3|ElRF7hTkLjT}z`<8nbu1I7ShdI#>a;t#x*U{5oa zjfq5Jo^_g*fAS$^Y9L|#dFo$tr&8r5ZerN$&v$Rs{?CqAcvk)|`oN)u)p6lrmq_1u z???8IY_QFit%r~j_M2EQC1K;&nSqY(p@`=uV!9UNoIAN8s#HoO>4 zWYB}hFk3^jCsmq;hpKsnPZp+LGB&s<8X?H;Z@d9J^EW=YQl<*EKgqo=+Xg&H;ZHG9 znAozDiB=;)cL-W#*)dLGzI$4F8G_YJp3O4vx;`)_hKu4Uy86hQaGhOy`~h|Tg!N|+ zDpi9Fp#Wc&Yh=s61)Hc;hGjq8jXh`>QP-?{DsE@EQ~VeX*>29T3DPA(3BZTi%1AqL z?d^VLZau@?OjbS)T^y~7T7qA=a5Q_T-xTp4I&RN_bcc};O~?&Mr+xJP#B={m_YE{b z@MdBE;Ovz?`d)A*@l=o{0+(1x07}2wmnl!JmG3h`g5ju348l@Vm>NA|zn752{s-D|F$%&Ov;#4~+B;9&Ibn5YvN z{pcVsnoT3Rm zKY!t#V9oF{ukqayrD{^G0U*-L+$@-f9vDd05B1-R4m^S3tDj!D&nGYNfoWb2JiFTg zL&U8=Sm7~8x(%^gU*r*5-xeh${Zqp-X8IqOQ%w0#MDm{XQ;qSumpa2wZ++uZK=u+E zQAQ_PFOI47XDzg}SI%)@&{@o4vjSYYYpR{adTW%-Zn1DJY&4o)2@ES6t0DkPxb0fp zCH&rDO=@5XOn7LV-Z_Fw)Q*cu!ezXvkId;^ozBGs_zK_SQ!8?l9%Hp6IcdObIgNg3 zfRPeYN1GJ9-{{>8gB$d*a3mC5Zo|vh#3^gSj2+)lPc?W*iLRIml!ImObX(Q0bH-5u zu!1n4S02Rsxfc}qTPFvdKqJ!Am>$vpX9;JiZ}zH+m^E4QH!p2uCr70F(jKp$(&Ax) zsvm@o>0;`iFXnyWzOvzhxL>-@=4D(Rc4ibz67(x#Gk<{BOms|O;lUVWZagmHj5@xf zf4hDA!m*$*=NoX^aF!lfRfAMJUMihrHCEWE5Y8XMV%TbW#P5>Fn|;PAvLlU+*=o=8 zPL#eJ_*FT~e}od51SjYd`eEaPF^6S9d;sS&y#HH5T2L-)r!^}Yi_EqxULDVM8)v{w z#I9Gk9RW4|D(Qm1;* z4F8d5`aveBs%X6QRO!Du)S@J>A1d9)tsKeW#ZcoTnp!|^A2v>?lGIgIlXA5EeT$nx zFgef=fYN))pZEc^rvm^U996p zm3#4VORs3&;}zoZl4h9eECDdKi)D{&`}j4;t1W$+ya%<1B6sho=3gHPUWw*3ga$gf zC%Cjy^j0OOa;Q<+!&OXV3*}=;OtO)epD6$%b#dx+ru>Fynp14&XuA`{*|<&Tz4Q+U zck7E5^A$HI=Z|gmMEX=sqM|L6 z7^b4QHp}%eIW9rmy{BE0g)GT^Lo5>}>C*dq>rLjK4Z$Hh!M1=O6ET_sfDLFtErX_| zc@W5!%l_bzmYuN0(Uz7MEs>@v2(JoH8P4kCn!v7|I6f~0I-q214Du#j!84fI&MmDuRbt?R}!U;`7t zcs>VWVEn2_L$?2vnJLNOR)f7)vx8g@&_4$t!|yZFAA0y3-P97mkxQk;kDqyXMtFq8 zBNM7Ka^8Ld6mYlnPD~U&pl&Vb^wCHEv}9TyItg!H;1i`nS!Na;*T#Yss&^Xz8=axSz&|=3{wE1xVZu8 zWoCMe=#e**HqUmnujLTG?ydF9S{Hs=g^!LvtYF}EjM_eksGPT*k09pc=hRIZHEV5_*^#=WG%la4{E>SSrN}95{Knd#C zUlU9T+h?A%w6s0$2WU!t^MpSfpP%|;9$!rC-<8P+#+CNuiRUdLsQ}+PqimNhD1`%J zq^%L7J2A!N(Xc0p5bD_SO+(^x?7`TX@4j$8yj%DI?(-0d$?l0}Qbj#g7lxEX>h*Rp z)8ViHYO|f59@2A;k#%*VO8=TRJVvOW7^5yvdoL2y!oE{2Ut>Qro45W|%ewKnIaq&? zO*cBFAX#rDogWNH)c3bE zqMo+K0nKJGW4;WHmADNy?jE7X!co+T(6GXoy;zE!!yrh}^+tL)cNx~%d~s&0(v?wz z+}l#82J=A3a4xtc-^-+{Yo{JC#1G$y$?1k>CJml7Hj#!?*P|;XzQt3s95Gv4_0Vj9 zwtKu)Zz|;awuDZLB^;o+DbA^34Bel*6nL5`wSRd>eVbLyuuM&jvPz}wI7;>SQAIx)Xa+CSSA<=2<<5XbW!!Bn>6ZQjr}` zhpW#t5X=?m!!l**)C;RzsE^~m{_3)A4fIOyvO$HBETU)i#;ay#wY61hFVr;HjiT&N zf*9u_2Kzjx5P)7~FFD&>A@pEf=iuk=H(~)-w`KjdAE2QGQ?+5vY^=R{5B^qd9pf>X z{>YoNfBp4rrJ6k@Um4XTPd@~+?q#{tz+B5{!4Lx^k?_o5fEFBm?X$LVk@xb(wMy%! zT)71LN_XpCUx>FyJvIYHLj=JAYO=5{fV}fJK0#f6V9d>BrR|!E$dTbQ4)!@@UTRED zgT)L;L)fvTd)^4#_)X>Vudr+n32AG?E)P7BXAZTPt`8a^N;}CcfiY0`FzD7u&#Bvc zqun#(IGsDl#aiFNcG|6oyyEzgIa07IIj4Z^&QZFhd92eTtuXl2c=iDi-a!zEBw&O> zJEvBK>XDr_f=Ew5O3uq&YvC$-1evqLE7U^$of}5)l{$An@1n{E0wm6wB?6Ej`6m_d z3;3ND<|`~2p%uCQa&+*-=%{xN$JcK=d-7YXCB}X!mKPVqtKRI}dyS6h7WL?DXq#!6 zxL3#E;)v~V5T8)G-0INb{c2Ao%?@VS>e!w6Av_F*&MT?wQ^TEi+`wY`@3};0d9tZE z8gT$XF}H@fHgUI=%ToN-*P_FeF!Oh#&OW#vP*92F200*180kW+Rp@jcLA8>7@#!Rf z&s%|b{C;s{>Ya1inXT>+WrNLG8dB-FUmz0SEK*Jr_Z97%Ykq`->3a_gj5H3p;qf)$ zaR#=XOAyty(E`7Fd$F2fi#*rvVxkwUo0g+iORA4>u#7@cq9b4mPkw1=x^lp(ixT}B zGDyoHiqcdx^cH3_(9!Yt+&6;z(JD{KSupTEn@do6(d`UwlFVhoIc$zOh&$?=H+}rG z)QA9KUQ&v8iGiTl(xwSdw3AlU3QRqlyZK~=!iiw+0>pIu2)f-sN~7)j)3A&1Buq){dR9;VhDnvp3sRwZoVb9(;aF~^xX6O;e5*L zKzpEK1PW8i)JsUoHZxT7Nz7}IXwPl3x~yKKg^7C*f*aKkL8s za!H~sFy3Q0!*uBiv{5!H0pvZmIg)&1JgyHosy|+%gl^w?Bj!=b{PZNzqHfwB&wM4%Yn=Xy^V-IQU9DyJ`0ppfjI1i}?1P7j7o9#lryO z@YjKff1w{(;Ieey^SVI&b9~kxgq)!oQmc(U>y3Oz7L{I_S|5$hj-@NaVtNGznDkKA zXv>bne3)IwM3OL%ZA_0SkeQ<)4D>*dZpZf1yl3kC+CBQF{nDTugq(4D!|Tvm8x*0! zlr;%&ay57!Y#x+uEXv0$Yf|r3OgPw?;_~2e^HrXkGpk%w*)n{GSgY{m&kezR9Xn8k z!Ph6rxq&PRS@oU<4MBP?&tk+RyMT@VVaUnOB&txC?JJP#BhrRR2YME_(I{;1tfAh5 z*8sqe?#nAMEKAWIrrN>)J%sC)fR2Jq-jtH8t~-4z%XX`~Jo{qp#i7;|<)WApmFLG_ z@nWgL3-QM_F~JqCZAAn=r;nDf;f^0Cs5HZ2<{7paAg>t*pqasP-Y!0rh9HhXzo{jr ztHeEaf}r$4ls_prf5|QFD>5dH;6jQG79iwH1&YqZ+Olo+?C%9W*L|l(nVod_@Q$no zEkXe6Cd~u#NUUa%4zWiweYa9R@+YCCd+TfcSyErtJ;Zg6<#sTl^GN{t0cOqS0`|Dc z)V#QAr|>;**F&Cr^~~HIrJCp|KV!N!ba`e93w7U%G5=U>L7DmaJ3Q6T-zic!xfBDu zy~NfTyW)LKi80`w=#_WGr$MIuYFj;RJlPwrk$_$#f8LoEkg3 z|C;!VmVx{(4S@+b2MV1XCVtUDR{D-}>B6fjG&lA(3 zITNW~LVM8qY{Y|Vx^l@&r82nkcBhnp;N|l9Oq}#&uxLD8cql*Iuc9KMsyzBD5lQmu zM%FE31e-OSZr}XLS`*e?Rj;VQHkZAx#y-MQp+-dZ>g8Iu8-AZR=_3U-o)#rBlau`l zulwE;Oec?ZLnS?r(l+EV~#=1$T z_i$jd6ntglmOLX{IaSg^PlauIeA&W|P|UaBGhG|}YD0vP#^lLV2dK#TMU_)X8b!Y# zlRw@=tv0c$@4L9Z7abS=Rm8ocQLx9;sRf8@vu6;Z?Mn%a)SNeBE1E*YyxlE4vSX3; zQGH(Vl`7xXa&xe_eybi=l6YIg^vd=wfE3giIr!^za88dCDPXdD3*ZJVJ(QuzPegAk z%d`FX;Qt61%%&6K|98Of@4~y=xXm!zQnqzl+)Q!d2#wb@m%Sz6R7*@Q6||(&678Ep zEN(Th$!b5&+tc^bW|A}7wW4g{BPVx5W&AFe6?yNi1WuodP$b^*cHle-nwk)}5kv)j zb19|uRu0`7$=DON;Dyzh)*g=9ou@7X!)r9(AeYKRXr>hiDKbUjMjiN+e#juf%$rJP zi4a>~_OIKqA5PBGBH^vQPxl*QHqoJ!)-Z&Ue6;rqJ$~{+7ADuHAH7#7H#xTs^_-)x z+HRdJ8cY${XEBC|1V|{?LiV*aHS%P{u>(R%WHzg(CZ&Sml$z(<+mB9KgLw|ab{?IV z(?`IiUJ}A`yaXg&*zfL>ncmq_c=A#0 zQ=XDy!q9y%O54g4(DbZLFd90m@m*@{Kr;lDmtt}8{j|-# zw%4mhstbLgPnl*iCL>J=6bDwjot{Ds9CF!9)vx`8BgX)GEVs|?H=cLlH|fzi1?XV& zb2ny8hI4KT-I_U1=M6kx(b0goJVTU+a{!nxbCX2bjw{tE`8j8z?vyUc&yf1eJ7{;0 zfmslKswE49pA_X2S@7?1VL7uV_x~1;o`8k-s%3J^ClIqUh;|Cjw}mQ%pM+}_}%+o{M1lsjnjr6-zF00 z^Qdz~YZi9=z$sUh1VD^63!kmSPxlK2(w0%KS=bD3UBx~R?Kxc+x}`hyt=3Hd!MhNE z#Cu)4FYd#(d6W(5XlvsWr9hf#pX4pZ_!1GOjW2{2Y~<>ePQpjDn8F<>T|_V__6hg$ z?$Bzhu>prOx}^^84{1hyL_CsGbb%C3h*6FqvLUleo|62Qu9jZCAit|VuI+8FN_1S` zCQVWw*aAe{Z&g3QkJml}cLuAf8r&-*&B{5|-;T8HdphF2Z^q`+E!3J52nDm_#*N6y_VH6svUAgYC;&} zXOn*1Uz&pvzcU=8`8In#ayi7-HafbWRRd{x+00pRNWGQpC&#Q4*wG9pQv9*{mJwff zS?GAwM~b+hG1I0%e)+Y-=_F!Wx@f-&wMS1}s1@G)F`$>& zA(%@dQ_7aD^rS#qfm{s&9eSxjBbh+n0+v|S_kieAzqkj{n4gu2zPK_EG-u2^Af4t3 z0%z4cGF{lIE442Wn=AY>q zhnJ7=`Yug{#MAJ%)QNuORCHIhpt( zol~vTy*_ob)R?f6DgR2x^?)U8z?b*dtis$&3bN;bhXKStYK6AZ{DV(5%T7!reh{G~ zyN(JA65-oyUGm81G5*{m(>&G*%hmKy@Ii`TXINQvBu$4>!;Mm+`319VlrA~LtX%`3M3&4Hr^4~`gHQP*yC zkDT4Doyb>J)w(`HU?vyeEeMr{wi=+Fi_~m-o+_BOW&Ao@*N||^!2F8wKwnu+Fb{(A zCn$fmXaZ;*MRA@QYt{zz8_B?BK_M_l|J`uu7SGOl#mnC9wwUyqgb##5Kn{m;sCkic zf#h2@gMD3nyYq>e0g`HGIGY~5!vb%aiv4OXA9FdlDDk0PbnKWDrQA*+MRdUST=T~w60Ni&NV zk)5gNFn~wBK0q~@l$s6XPa9?yfEJtnB%#9N3D+9<{DWa4&d+W(LQT^86K3RMJixUZ zi_b=Ci}T#i@a;D{DlNhmPRf4QSwHAu7xk1AQ<*LRlZtx|jcr;*kJ^yr08CI^Y07L8 z-sqUXf%kX`Eh?#7i-0;+9(5R2bWWztMU7~;6SMR2gSttpfiJrd4}p{wL%*fIEtTDQ ziZ4vOXfb-jNkI zw^wzy>TdeU6y@A?OPe1)V12xu`n1lo_KA`GGFO{F;gU??N$D9~(n05?M$9gA-B*`w zngJ?JpEWCKcanOEL0&wMW|glhXz$4t>V22MIic|)6%x9aLvK>D0zE_jEF$o6AO zO1|fuXMN<=#eKQP-c?rTK*?sY=|N3e{>)xOG>}iBHh*y(E{{sIYN7)jo^iz%SKLS@ zp6|ZW7zrsHdF#JEBX()UJUDbdD_Z;^O2A2YtMQ!w$-AYOxxghHBMd(rzHPbNOTO^o zYF0Szew_Q#m#ta~o{$5_8~G0skIz*NcN7?Op=q55AC=@k+XsxTxWj^Hb*AsAwfT_F z5X~0ISiq(19J?^dZ(Rw!_@IUh>rdN;&eS~vO+*Aa&Yp&1dNy45yicjU@ZHL(U)ytS zBC{UsjSd0mFocsTn9vpAh+(+L@vjE@vfZ9{jqAZ4N!vf|TC?1Mmc(;L>G;;vthA!E z0FbzHpSAg}vVdGmPMM)3r-#Bp3Yk)h&e7jxQGp=X+}zEkCmg^lc~A*nb7vxfCveu# zpB7vPFd3?z@2)nzxGZkEK1P2jQp_i|`{s*ahfHb91fs*)pfOs&;#}@x-d*~>qLNf+ z0?#0_1)7TUFH($B!uQ*aD9Q%SP|{&`h?}!Cz)*Vy2*I2YTd=M8>51`)K}NMDn!qC| z|AVt*M~i)W%hKldivl1hZaS1seBwM<7S9GkWW}Z;?Z0w$UE4U9R(1PNyVZCJ!nu$S z2PlDU${QW^ZY`bI zSgQ^~ta3g+%K)001vC(8pH5Cr%Eg6hOd7x7{?rPWL&G~2$9~=!jO)42(kbyupi7?S zD(22^GIZaFDOK9IzFrSv5JuTs$Fh=3$ER$Z77gL~!NU}Y94h(VGm{LERQcxyFlkGU zW56d9gS=C_=E7DuH)Kb1gLVDdf0_%KmU3cynH2igc^H=kGmrqWNRlI;?=r4 z5w~Jw(gkgqx$RXRtXenDMVF=T+;Ho-DMRA3y^@NZAeRdkZ%+=i@+p0c)~aA8DZC6& z9|RyuHa9C@eEe(Y?BczshG8Xb__}ndYiRYMH#BaWq)eB^reAIUO=W-8-oXMYH5MI)cc zF>TVic5^_(SIfapat2T$d~zXDCdS(*Anw{QwbrmK3tPQ8jYrYA9Jo`{PZOw=;C`fe z=E!a)ASdD=$R{ZKJ@A+}0{S(r_TW~I0E;65D5=U%xSe@+bVT7aJTmi++*agM^vL|l ze1KR&!gK{A2@rU36w|`7-g^i|T%(G1Tz&GIPC2@6ePiWpfS?PS7rv3TBcg1_1u5~3 zu}&_%?{`J-?EM#7>b4ljXmR>Ey+;RKKtcTdG3HNKP|+2Mh!?)`@@o@`_yg9BzgYP_ zDSk-B7A>vTj18W;@eeQ|JEA3z%ClmDPrrCigP-{E22Lg8uaW?$h_Z5=r2cYsIk~emHM?;nc9J}m zyMSZ2K_ddaAaj-LEYC>KEebv<=j1l=iE-txu*!uBRG&|2QtGDP=vW&iu?#)3$$=>S z7>!BJ6JFfEpvi_Hv1o6-rtxW7@GXH9-?^CE!Nt&^}-zmn0@Awdd_UMD6MUw z<0|vkxs6AbLUzk4;}=b5Nve6=HNb(FQW&DXaII}@i3IbK_J(M}miID#`v0yp^*-#S zXx`>j)U98aV)Mg!5q9TnG8TimUO-&OD0pj$M2{~11|^X9-% z39WZtubrhgzTh*sX`xOve4MrH<>xY$EZA(JEUn$YahQTJ4}mUXg=g3Yr>A2^i+SoF za}RF+un;Spo;lnRdIBz^oyB?HVQ88X+ujf05N7XB%2|{YvfMa(kCY__j88Ed6a1EN z;rnCjoK@u5?>ACBro4=w3r>UBQ)&eFri3SW8vP8o4Q!Yzh&im!j2ENcv zl-C?o@MwWae|duJoFAT4;+H)4HMTdUKn^AVOnN1Cx+ZCP%Oaap*>jnzQBau_AE9$ zf{Th~BV2KD(_s1fu82)^#cfZiJ2m(5sdTyKSlzBr6Xc?WI0BFhn8Df4PW_|j@)_%I z4@UI+v+f#+H?O_B@EWt(*YskfkZ$pPm4~5K{szhfZspKfy`OWPaTj2;@lrLrW>?9~ zuN)!E@xom42|*lWDBO|5dZOy3QnIih;3?ITq!>-=5cIClWl*yg)t=iE?I zMlASQ<>ja0r%tXXPpBQe0M{B<7sW$2Ns$b>WgqVffM*A_~{(45LnX%CP^&^(+Wsf!v>exlDqp9M5FoZw2EXbnjsO95P{Fq>$sn0Us~mx zyv96j2Zt*iH+6K5cO4v2sPC&lEfr_qk1A?lhHzfsZ`*{S_oiVws-dxop%|w$MC^Rd zrM(BNf$gU@7zQJG)s3oqL+lmQL6%BC6T`YB$T1yn#+2N#WVakD=Y zwnV-jXs2{zeppHc(cTj}DFeFDTQU|-h5E?P7GOHOa1MN2T>T@9cYc7Mbya@;e1sH0 zN_SajF+Z)T*=a2Z8!lP;+&W{!9~a`?u%0=qoyO=g7e6k0V}xDGUL2ztxOb(lMFd;v zbv|%_>L5Muz2tu}*31|2gIdWB55G=LV|aFjbgM}@)pX}~XUMaOHlJqQtd4c#Gd_N5 zz7lCi{tj=`aX-0@u!JtaZF=XpJy>1dc_e*SvqT4`4`+h!%TW5g1V%TCRP&P4xBuZ5 z?fBak{rUGT%I%GReV_?~b~IC8K5IZV`O?Ceu5@q-3dm9c*zRpdK(?uC=SBTb&j(%v z$f$EX5?qR9H7|9C)<5GIcWk>WgiR$00ri^nUye;?>)gG!czf2=8W0RMxJlKS;(HA- z@+T3*vG5Bi(Qm}81XGVDVY0WX(vniw=ZQvIjN8O);hC-y6#2O4@jHZP8DQRuChd2t zh~H_`PqZ?@QHfiZE%lqOj+-g&>@PH3#1o|5yd}(FGQKv&JehgR$zAf2fTUi1VB+aH4le@%-1?Um8dQuE|egrapBvYb3zN_CPAg*iGN(P5sy+hg^Q1-$mh2y#IdyPT!9 z%3`WC2YCejRBe}v2m_#`kP0w+;oXN|eDB-fjNHP6BHE^EFTJGg-lnHpgD;?D!lUKr zxR(;io%PV-Vz>5AY7({_0{iLZNNR0aPw6@<(oNCGzZ(3q)j80Ld4p`{ecKjePnWC& zi<#OVDPRA7k8kKXnUnD2?=z@4JM`|cg52#e`Q$Qed8@$vJsmoQ9sWTJha+= z^pHbY?hl*U*aqpxb$TdzoP$TlC4W8j7GDf?-7!;}A=!v*IY^Mg&4LN_lm#xJEe*Z> z*=C<`#LUcvF=FQF+`%!BcWvlgR9=FxsaJ*`LST=O?*g&tr{YKbnPo^LZYrC^! z$qcu7(NUb{V2p1|_;lqSjQHJX0~aB30q`K2dLt`UJKHhYlbweT)<|(P#!mg%y4*7MpKhMZO`Imgf0& z@9NY21ylo2VhDkwMD=SNfPO<OQKrN^e(~RmRg<+L1llt4gVzc&S)B?ulGluLXRfW@SCk7U zr1?>zg z<>{4f^$5GT`c+{^^eQqoVTO`n)o^18mbc`kvPie6|Ncv2>ho(W4WYjoOA8D+Tj)H3 zzcUrS9OW9&F2$r2u9ye>Lwor~>~99M_&*KiXA?3DMLUh*JfX40HGm4!Z>Q9-G*{B!YJX`UHhL80_aSt0CW%NoQQGn-S&Od}=lc=&JQk?m>8Z z$NrjI<5rW}5|2fvW(;CL-_WFC780TL=Ed9Tw34u{nS=7dMJhF3bcw=RjUF)aCm(d6 zuzg)st@P>v&FTt0{VgcVv09vZmZE5Ez%T;6VpAjJBuJh&XpN^+riN5^Sr>#H?g z*ZSn<3aqs`rdz#>8xr|#(poFY#1hJIXFMmzE+xAOlVga>joTyj`4!uFi($OVEV3R1 zfPCW|9h7c=d_SEctJ8dSCy@PcW378VK#!%jQ>m&k)fJAho|zgI&b$}JEB68w)0qllG*zUu#Rc# zf{236IWkLTevWG!r+|8J6;tKnBy|?7`2fAa`23An{Ngn7X>>M1(kitWL5lVsV=l0X zau&7;*!&vYJSK)qZ&w_GFJSBQ~90 zbHm+}lT(6yxz^gH#hORj@m|LMb}#aZ*Fsrbvr`jIx>KHR#>9>0`* zcf#Va`iiz=SagD5cEvEzHkypXz*&ERHsz%!d~i?wIEq^kp+4?PP&WSnrzV?t4jnw9 znNOO}>wPbavLr7(8{Yzv@){W4O*_44PWR3-TwbNv8CA_JY}Hnx^HRLPr@7KF#c%FB z94a!|J`ZHVtg90phj*lHnuxkG!ES_vk3`}1jA?9gp?79V`_0@2LPJ@PAHl@JvOs5O zgr!}g?cn)Q?sN(sY5pv83FRI}p4ripwvl?e2$SCn9K*g5^PZe90yS9N=$oLK)gG1s z64qD8d87p0#M6v<->W@D-m7+M(c0h+GQ>wF=;mCNQkwr7QD;#s>i5Rq+@*Z81&PTk$9V92NCGd zU``BkNG;0|0kA7MLUF3f2pb8W%nRZtOp_7qSCz`z99a^T#5v9N)Q#7Z3V33&w(x!E z-n+)=)_*ZYW1qZxQaLsLRo=6@jd!q*srse=p&Rj|Zh7zi3|T@FlWc@NQ|-dBOvRR-~nv>8W$1_3%kwqxY$IBW5~= zso^OY{oQ3R=Cjf&ecO?eMyd&clIY)=<9El)qR`uB9hNsAlNk2!>!Re2$GNn^pgBNn zZHHEO65sWt69T5=V2wh-eRBXFz1`URAVI#z1$fGc*X#gRy+R;|K zUn2hXeYvUyeyG_E4{A)Vz#}134{opz@~uzC-pj%)TSlGEb*_6xJDIjO7agO86PM{}VrM~fz3$t%=pSbpoFIq!bi6=fP47QjR7=VT@+&KQohwb4?W zk&m(pvh?(m_a_MlS>pTfH zZ>7Jwm*8F>4K}BET;e}@rt?YTC8jAfZr`T@I|S|oRkwIi0_+=RAL%i9AODA2ISbaB z6>rt~c%-DSZ$z5M@uJkkc!Zb@WJT{dfB+Pw7F)k-C%XKwd+V#sMx;!62tA{i$V-WK zf5i#rWCW9*tysmomSJxfUDh!fC?|iIij(dziJAO4v2hEd0}QE2xKM?e+kk4t8cc8A z;H0S#ENqyrtnhj|i8Ckcte?K-L8#pFCt0}7C2HWXjhRo!_BBVFwHSsGe&V2ZxX04Z zUqX9Mc}qSVE{V^4Bc@t3S9EdLe706~f~fEJ>1g#xFb0pcxGZqmAPR3Uud zr=6BWL6Ks7!^M08($`*4a@}qCP6lbmzfUnzz2&8x8kHBRTF`d^J2ylh)>E3{N&`Au z@@K9#-K|N%--;=^M*Wd7fu4UBAyZGNv}rRT4zcM~9Q==R0+~{7C2B}|cf#zU&qTP0 z4e@{v=L6?R^0w4RrcPmTlw6W=5z!KgV{R9-^)I~+)f_DU&8hXC%5fdu???%w~U)b%NT1$Q$@i zdiTx!^GQHeT^uiZxQ*QYdtK+lu!%^QH@5{>hv3Sq3IUbY5Z-XWoSDf>Ms|d40 z!CAKw(0VIXrTOG}CJ5?E%YvHVV0u95b{ze2MEL;qUWxWlnzAI=L+8+RVXOsi05`uR z*3lOhECoV6Id(N8D%aEwBOS=lkqCT;02b1zr zv?e_%q{a^fHuoldUQZ`1@Wc1uv5ody2VZuDaZ>T&o~xem!o?p0PZ~0vYOVXY28FnR z)I5y6cD`S`MIWg$HOoS-Y{l=Pg;X6Qf^3F&U6gZ2^iv;Qvm9zI@qPhztK z+&9H%vfjxQbMnG&&tj6>c&P!tUV#BaPz0ne$VC=3vE_5RU%{E6&Ed~)NAE~K3vg|J z?4+6cz~LdoNNb;W!k+6p&}raIk90+)y*-^4emL%+kiY?xlGiTJPwbVrT0^u8qxnwP zw=~1pTOP%qqu+>)lo@kc$F;nlPR{n*2fL&v2w~blzQ;!V)%^JK)Bc~;3XmofG5wLh zCueNljcNT4Up$X6Ut0@Lj9aS&7@7#hKijo11@d2y4J~e_SuC9C!)SKg_pj%fJ%Ij* zqh1h>FR%V|T>*6=HLMkoR!}yG5Fp4T0j9jGivTlJRvn6e(Cb^rcw)+O?WGbTd zG-riW+S@YzcpC^-B_U=zJgs9PX`O2BK&;AUog-$Bu;ZIJO+UKU$joy6`_^N*==nBl zdH0gMea&#F@&4;P*I7^Y+=e+SD({xk(Wsr%toho`YweZ3kF)HbG95(NpX~xds!dfc z&z4kPXZ%#7(U?`FC}Ox$RA<+=4RyN?NlHgtXRDqoD3=l1_^jTYD9Fp_^?DZDMNTM* zj)(wpsZKadgw335dU&Fvv?u?B)@S*{-+OwK7U>EbJ6FmMP!saGE5(dcyZeuN z4{JhCU8~x1+_JgtcTQ+z?!O}D8}Nq@{;3y#E|C?NHg@Pg@2PhEKpINfIoGt$>1(ua z-_^*NPYgEW6pTe8!m7HCK3@CcPtD=)UHs=bASb?#i@TSzj-Jtp?-6ggyS*c!J0oDc zJUCETnRqY_@r&dFzMAR#z0uGA-dKPBz5nOftUoiBDa%T?QOf7gByvW_Ks{4ld^AQ^ zBC48dgyZk2Y@1zqMFHrWt3<7lCU&IRbjL0RWC-6mj$9IqJ;#a`B@i~XNupyCl1VKv zI7!vpK7Ge!Pcnb}v9V_MijhCTmmZeK$^6DS=M_L}IE|}WjexQp`AwZox0HrQ6e-xC zHL8-m{RgOXiLmD_hZhlvYNs{|9J~KwX&3IGr%>(b7g!hOllzLKmQvIn&-=B5kW!*| zdJTHT{0EoIfB7@Z{JYowv7yU#-D|>kkZ*K)VNo=^>3-GWb_N!d>Z^n3r>Nxk880lj zEB(IcyTSo2YZd9{8p|$!`B5&pDzEnV(QIb9)sR2=4(MTb(Z^NqZWEv~n3MRv1+~r` zsW^1Lm6BH|KPnFz8Aezh%2!%AaYDSjTf5Gbq|?Jz(`%3kuS6pB@=oxjf?nInDTII>@$L);)Ip}pG@<;~_-b6~sN z7L&US9*n1WvhY9ppjzI`EC16s|8M+(KN!0|s5@L7*dxW_UsR{972uw3{{S-h;lJ@R z{_NELJyzw<&gx%&{r?Mz<$w9y{*?p#VPpR(*^+;C8H2I7=ISh)W=x-oslA0P95{C~mj{b#56KS#G~ q-Mv3pxc`&l*gyNt{xlEs;Qs>q{#983 literal 0 HcmV?d00001 diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-1.md b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-1.md new file mode 100644 index 0000000000..8b23cb6bf1 --- /dev/null +++ b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-1.md @@ -0,0 +1,10 @@ +--- +title: PLACEHOLDER STEP TITLE 1 +weight: 2 + +### FIXED, DO NOT MODIFY +layout: learningpathall +--- + +## PLACEHOLDER HEADER +YOUR CONTENT GOES HERE diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-2.md b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-2.md new file mode 100644 index 0000000000..f884b5592b --- /dev/null +++ b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-2.md @@ -0,0 +1,13 @@ +--- +title: PLACEHOLDER STEP TITLE 2 +weight: 3 + +### FIXED, DO NOT MODIFY +layout: learningpathall +--- + +## PLACEHOLDER HEADER OF SECOND STEP +YOUR CONTENT GOES HERE + +IMAGE HERE: +![example image alt-text#center](example-picture.png "Figure 1. Example image caption") From cbe0c9209aaf1660a17283105cf51ae8eb68a9ab Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 1 Nov 2024 10:24:42 +0000 Subject: [PATCH 06/87] added information to index --- .../microcontrollers/yolo-on-himax/_index.md | 34 +++++++++++-------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/_index.md b/content/learning-paths/microcontrollers/yolo-on-himax/_index.md index cb9ffb0e50..32c51c405b 100644 --- a/content/learning-paths/microcontrollers/yolo-on-himax/_index.md +++ b/content/learning-paths/microcontrollers/yolo-on-himax/_index.md @@ -1,31 +1,35 @@ --- -title: PLACEHOLDER TITLE +title: Run Yolo computer vision model on a Himax microcontroller -minutes_to_complete: 10 +minutes_to_complete: 90 -who_is_this_for: PLACEHOLDER SENTENCE +who_is_this_for: This is an introduction topic for beginners on how to run a computervision application on an embedded device from Himax. This example uses an off-the-shelf Himax WiseEye2 module which is based on the Arm Cortex-M55 and Ethos-U85. learning_objectives: - - PLACEHOLDER OBJECTIVE 1 - - PLACEHOLDER OBJECTIVE 2 + - Run Yolo model on off-the-shelf hardware based on the Arm Cortex-M55 and Ethos-U55 + - Build Himax SDK and generate firmware image file + - Update firmware on edge device (Himax WiseEye2) + prerequisites: - - PLACEHOLDER PREREQ 1 - - PLACEHOLDER PREREQ 2 + - [Seeed Grove Vision AI V2 Module](https://www.seeedstudio.com/Grove-Vision-AI-Module-V2-p-5851.html) + - [OV5647-62 Camera module and included FPC cable](https://www.seeedstudio.com/OV5647-69-1-FOV-Camera-module-for-Raspberry-Pi-3B-4B-p-5484.html) + - An Windows based machine running an x86 archiecture. -author_primary: PLACEHOLDER NAME +author_primary: Chaodong Gong ### Tags -skilllevels: PLACEHOLDER SKILLLEVEL -subjects: PLACEHOLDER SUBJECT +skilllevels: Beginner +subjects: Object Detection armips: - - PLACEHOLDER IP A - - PLACEHOLDER IP B + - Cortex M55 + - Ethos U55 tools_software_languages: - - PLACEHOLDER TOOL OR SOFTWARE C - - PLACEHOLDER TOOL OR SOFTWARE D + - Himax SDK + - bash scripting operatingsystems: - - PLACEHOLDER OS G + - Windows + - Linux ### FIXED, DO NOT MODIFY From 245afa7c6f55125be21aaafe575ebc0d1adfd102 Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 1 Nov 2024 11:21:54 +0000 Subject: [PATCH 07/87] copied information from draft pdf --- .../microcontrollers/yolo-on-himax/_index.md | 7 +-- .../yolo-on-himax/example-picture.png | Bin 63167 -> 0 bytes .../yolo-on-himax/himax_web_ui.jpg | Bin 0 -> 27405 bytes .../yolo-on-himax/how-to-1.md | 56 +++++++++++++++++- .../yolo-on-himax/how-to-2.md | 45 ++++++++++++-- .../yolo-on-himax/how-to-3.md | 33 +++++++++++ .../yolo-on-himax/how-to-4.md | 28 +++++++++ 7 files changed, 157 insertions(+), 12 deletions(-) delete mode 100644 content/learning-paths/microcontrollers/yolo-on-himax/example-picture.png create mode 100644 content/learning-paths/microcontrollers/yolo-on-himax/himax_web_ui.jpg create mode 100644 content/learning-paths/microcontrollers/yolo-on-himax/how-to-3.md create mode 100644 content/learning-paths/microcontrollers/yolo-on-himax/how-to-4.md diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/_index.md b/content/learning-paths/microcontrollers/yolo-on-himax/_index.md index 32c51c405b..f9c722c3ff 100644 --- a/content/learning-paths/microcontrollers/yolo-on-himax/_index.md +++ b/content/learning-paths/microcontrollers/yolo-on-himax/_index.md @@ -10,13 +10,12 @@ learning_objectives: - Build Himax SDK and generate firmware image file - Update firmware on edge device (Himax WiseEye2) - prerequisites: - - [Seeed Grove Vision AI V2 Module](https://www.seeedstudio.com/Grove-Vision-AI-Module-V2-p-5851.html) - - [OV5647-62 Camera module and included FPC cable](https://www.seeedstudio.com/OV5647-69-1-FOV-Camera-module-for-Raspberry-Pi-3B-4B-p-5484.html) + - Seeed Grove Vision AI V2 Module + - OV5647-62 Camera module and included FPC cable - An Windows based machine running an x86 archiecture. -author_primary: Chaodong Gong +author_primary: Chaodong Gong, Alex Su, Kieran Hejmadi ### Tags skilllevels: Beginner diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/example-picture.png b/content/learning-paths/microcontrollers/yolo-on-himax/example-picture.png deleted file mode 100644 index c69844bed44b65c7f5bc6cf511f93987fdcd7b95..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 63167 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 q-Mv3pxc`&l*gyNt{xlEs;Qs>q{#983 diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/himax_web_ui.jpg b/content/learning-paths/microcontrollers/yolo-on-himax/himax_web_ui.jpg new file mode 100644 index 0000000000000000000000000000000000000000..080dd8ee9643485a674c93269c3f3e39d8b000b2 GIT binary patch literal 27405 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 F{|7oIF?Rp} literal 0 HcmV?d00001 diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-1.md b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-1.md index 8b23cb6bf1..21ccca5c92 100644 --- a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-1.md +++ b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-1.md @@ -1,10 +1,60 @@ --- -title: PLACEHOLDER STEP TITLE 1 +title: Set Up Environment weight: 2 ### FIXED, DO NOT MODIFY layout: learningpathall --- -## PLACEHOLDER HEADER -YOUR CONTENT GOES HERE +## Set up the development environment + +### Step 2.1. Install Ubuntu 22.04 + +Himax SDK needs to be compiled in a Linux environment. If you use a Windows computer, it is recommended to install WSL, by searching Ubuntu 22.04.3 LTS in Microsoft store. This learning path has been validated on Ubuntu 22.04 LTS. However, we expect other linux distributions to work. + +### Step 2.2. (Optional) Install Microsoft VS Code + +This is only optional. You can use any text editor to view/change code. By typing “wsl” in VS Code terminal, you can switch to Linux environment. + +### Step 2.3. Install python 3 + +Go to website python.org to download and install. +Verify python is installed by +python3 --version +You should see an output like the following. +```bash +Python 3.12.7 +``` +### Step 2.4. Install python-pip + +```bash +sudo apt update +sudo apt install python3-pip +pip3 --version +``` + +If `pip3` is correctly installed you should see an output similar to tht following. + +```output +pip 24.2 from /pip (python 3.12) +``` + +### Step 2.5. Install make + +You will need to install the make build tool in order to build the firmware in the following section. + +```bash +sudo apt update +sudo apt install make -y +``` + +### Step 2.6. Install ARM GNU toolchain +```bash +cd ~ +wget https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x86_64-arm-none-eabi.tar.xz +tar -xvf arm-gnu-toolchain-13.2.rel1-x86_64-arm-none-eabi.tar.xz +export PATH="$HOME/arm-gnu-toolchain-13.2.Rel1-x86_64-arm-none-eabi/bin/:$PATH" +``` + +Please note: you may want to add the command to your `bashrc` file. This enables the Arm GNU toolchain to be easily accessed from any new terminal session. + diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-2.md b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-2.md index f884b5592b..a07524ab24 100644 --- a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-2.md +++ b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-2.md @@ -1,13 +1,48 @@ --- -title: PLACEHOLDER STEP TITLE 2 +title: Build The Firmware weight: 3 ### FIXED, DO NOT MODIFY layout: learningpathall --- -## PLACEHOLDER HEADER OF SECOND STEP -YOUR CONTENT GOES HERE +## Build The Firmware -IMAGE HERE: -![example image alt-text#center](example-picture.png "Figure 1. Example image caption") +Next, we need to build an image that contains the embedded software (firmware). You will need to have the git version control system installed. Run the command below to verify that git is installed on your system. + +```bash +git --version +``` + +You should see output similar to that below. + +```output +git version 2.39.3 +``` + +If not, please follow the steps to install git on your system. + +### Step 3.1. Clone the project + +You will first need to recusively clone the Himax repository. This will also clone the necessary sub repos such as Arm CMSIS. + +```bash +git clone --recursive https://github.com/HimaxWiseEyePlus/Seeed_Grove_Vision_AI_Module_V2.git +cd Seeed_Grove_Vision_AI_Module_V2 +``` + +### Step 3.2. Compile the firmware + +```bash +cd EPII_CM55M_APP_S +make clean +make +``` + +### Step 3.3. Generate firmware image file + +```bash +cd ../we2_image_gen_local/ +cp ../EPII_CM55M_APP_S/obj_epii_evb_icv30_bdv10/gnu_epii_evb_WLCSP65/EPII_CM55M_gnu_epii_evb_WLCSP65_s.elf input_case1_secboot/ +./we2_local_image_gen project_case1_blp_wlcsp.json +``` diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-3.md b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-3.md new file mode 100644 index 0000000000..1fd66134e5 --- /dev/null +++ b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-3.md @@ -0,0 +1,33 @@ +--- +title: Flash Firmware +weight: 3 + +### FIXED, DO NOT MODIFY +layout: learningpathall +--- + +## Update The Firmware + +Update firmware in Windows environment by python code. + +### Step 4.1. Open ‘cmd’ over Seeed_Grove_Vision_AI_Module_V2-main. + +### Step 4.2. Install xmodem. + +Run the following command + +```python +pip install -r xmodem/requirements.txt +``` + +### Step 4.3. Connect the module to PC by USB cable. + +### Step 4.4. Flash the firmware by the following commands: + +```python +python xmodem\xmodem_send.py --port=[your COM number] --baudrate=921600 --protocol=xmodem --file=we2_image_gen_local\output_case1_sec_wlcsp\output.img +``` + + Note: For each project, the command might be slightly different. See the instructions on project pages for this command. + +After the firmware image burning is completed, the message "Do you want to end file transmission and reboot system? (y)" is displayed. Press the reset button on module to restart. diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-4.md b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-4.md new file mode 100644 index 0000000000..6d88cad5a2 --- /dev/null +++ b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-4.md @@ -0,0 +1,28 @@ +--- +title: Run and View Model Results +weight: 3 + +### FIXED, DO NOT MODIFY +layout: learningpathall +--- + + +### Step 5.1. Close the terminal session. + +### Step 5.2. Connect module to PC with USB cable. + +You will need to insert the FPC cable cable into the Grove Vision AI V2 module. Lift the dark grey latch on the connector and slide the connector in with the metal pins facing down. + +### Step 5.3. Download the Himax AI web toolkit. + +The Himax AI web toolkit enables a browser-based graphical user interface (GUI) where the live camera feed can be displayed. + +Download the Himax AI Web toolkit by clicking on this [link](https://github.com/HimaxWiseEyePlus/Seeed_Grove_Vision_AI_Module_V2/releases/download/v1.1/Himax_AI_web_toolkit.zip) + +Unzip the archived file and double click `index.html.`. This will open the GUI within your default browser. + +### Step 5.4. Connect to the Grove Vision AI + +Select 'Grove Vision AI(V2)` in the top-right hand corner and press connect button. + +![Himax web UI](./himax_web_ui.jpg) From b9dd8460a23551b05fa2bda9e34802815d337b74 Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 1 Nov 2024 14:07:46 +0000 Subject: [PATCH 08/87] copied and validated steps from draft pdf --- .../microcontrollers/yolo-on-himax/_index.md | 3 +- .../yolo-on-himax/how-to-1.md | 34 +++++++++++++++--- .../yolo-on-himax/how-to-2.md | 12 +++++++ .../yolo-on-himax/how-to-3.md | 25 +++++++++---- .../yolo-on-himax/how-to-4.md | 2 +- .../yolo-on-himax/how-to-5.md | 30 ++++++++++++++++ .../yolo-on-himax/latched.jpg | Bin 0 -> 39516 bytes .../yolo-on-himax/unlatched.jpg | Bin 0 -> 52263 bytes 8 files changed, 93 insertions(+), 13 deletions(-) create mode 100644 content/learning-paths/microcontrollers/yolo-on-himax/how-to-5.md create mode 100644 content/learning-paths/microcontrollers/yolo-on-himax/latched.jpg create mode 100644 content/learning-paths/microcontrollers/yolo-on-himax/unlatched.jpg diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/_index.md b/content/learning-paths/microcontrollers/yolo-on-himax/_index.md index f9c722c3ff..a053eef311 100644 --- a/content/learning-paths/microcontrollers/yolo-on-himax/_index.md +++ b/content/learning-paths/microcontrollers/yolo-on-himax/_index.md @@ -13,7 +13,8 @@ learning_objectives: prerequisites: - Seeed Grove Vision AI V2 Module - OV5647-62 Camera module and included FPC cable - - An Windows based machine running an x86 archiecture. + - A USB-C cable + - An Linux-based PC on an x86 archiecture. author_primary: Chaodong Gong, Alex Su, Kieran Hejmadi diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-1.md b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-1.md index 21ccca5c92..c2f0b496a0 100644 --- a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-1.md +++ b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-1.md @@ -8,9 +8,22 @@ layout: learningpathall ## Set up the development environment -### Step 2.1. Install Ubuntu 22.04 +### Step 2.1. Install Ubuntu -Himax SDK needs to be compiled in a Linux environment. If you use a Windows computer, it is recommended to install WSL, by searching Ubuntu 22.04.3 LTS in Microsoft store. This learning path has been validated on Ubuntu 22.04 LTS. However, we expect other linux distributions to work. +Himax SDK needs to be compiled in a Linux environment. If you use a Windows computer, it is recommended to install WSL, by searching Ubuntu 22.04.3 LTS in Microsoft store. This learning path has been validated on Ubuntu 22.04 LTS. However, we expect other linux distributions to work. To verify the Linux distribution you are using you can run the `cat /etc/*release*` command. + +```bash +cat /etc/*release* +``` +The top lines from the terminal output will show the distribution version. + +```output +DISTRIB_ID=Ubuntu +DISTRIB_RELEASE=22.04 +DISTRIB_CODENAME=jammy +DISTRIB_DESCRIPTION="Ubuntu 22.04.5 LTS" +... +``` ### Step 2.2. (Optional) Install Microsoft VS Code @@ -22,14 +35,14 @@ Go to website python.org to download and install. Verify python is installed by python3 --version You should see an output like the following. -```bash +```output Python 3.12.7 ``` ### Step 2.4. Install python-pip ```bash sudo apt update -sudo apt install python3-pip +sudo apt install python3-pip -y pip3 --version ``` @@ -48,7 +61,20 @@ sudo apt update sudo apt install make -y ``` +Successful installation of make will show the following when the `make --version` command is run. + +```output +$ make --version +GNU Make 4.3 +Built for x86_64-pc-linux-gnu +Copyright (C) 1988-2020 Free Software Foundation, Inc. +License GPLv3+: GNU GPL version 3 or later +This is free software: you are free to change and redistribute it. +There is NO WARRANTY, to the extent permitted by law. +``` + ### Step 2.6. Install ARM GNU toolchain + ```bash cd ~ wget https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x86_64-arm-none-eabi.tar.xz diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-2.md b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-2.md index a07524ab24..3d9dd57298 100644 --- a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-2.md +++ b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-2.md @@ -33,12 +33,15 @@ cd Seeed_Grove_Vision_AI_Module_V2 ### Step 3.2. Compile the firmware +The make build tool is used to compile the source code. This should take up around 2-3 minutes depending on the number of CPU cores available. + ```bash cd EPII_CM55M_APP_S make clean make ``` + ### Step 3.3. Generate firmware image file ```bash @@ -46,3 +49,12 @@ cd ../we2_image_gen_local/ cp ../EPII_CM55M_APP_S/obj_epii_evb_icv30_bdv10/gnu_epii_evb_WLCSP65/EPII_CM55M_gnu_epii_evb_WLCSP65_s.elf input_case1_secboot/ ./we2_local_image_gen project_case1_blp_wlcsp.json ``` + +Your terminal output should end with the following. + +```output +Output image: output_case1_sec_wlcsp/output.img +Output image: output_case1_sec_wlcsp/output.img + +IMAGE GEN DONE +``` diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-3.md b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-3.md index 1fd66134e5..bbf1d2b72e 100644 --- a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-3.md +++ b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-3.md @@ -6,21 +6,32 @@ weight: 3 layout: learningpathall --- -## Update The Firmware +## Flash The Firmware -Update firmware in Windows environment by python code. +### Step 4.1. Install xmodem. -### Step 4.1. Open ‘cmd’ over Seeed_Grove_Vision_AI_Module_V2-main. - -### Step 4.2. Install xmodem. +Change the directory +```bash +cd $HOME/Seeed_Grove_Vision_AI_Module_V2 # If you cloned the repo to a different location replace $HOME with the path. +``` -Run the following command +`Xmodem` is a basic file transfer protocol. Run the following command to install the dependencies for xmodem. ```python pip install -r xmodem/requirements.txt ``` -### Step 4.3. Connect the module to PC by USB cable. +### Step 4.2. Connect the module to PC by USB cable. + +You will need to insert the FPC cable cable into the Grove Vision AI V2 module. Lift the dark grey latch on the connector as per the image below. + +![unlatched](./unlatched.jpg) + +Then, slide the FPC connector in with the metal pins facing down and close the dark grey latch to fasten the connector. + +![latched](./latched.jpg) + +Then connect the Groove Vision AI V2 Module to your computer via USB-C. ### Step 4.4. Flash the firmware by the following commands: diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-4.md b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-4.md index 6d88cad5a2..b059ed6948 100644 --- a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-4.md +++ b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-4.md @@ -11,7 +11,7 @@ layout: learningpathall ### Step 5.2. Connect module to PC with USB cable. -You will need to insert the FPC cable cable into the Grove Vision AI V2 module. Lift the dark grey latch on the connector and slide the connector in with the metal pins facing down. + ### Step 5.3. Download the Himax AI web toolkit. diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-5.md b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-5.md new file mode 100644 index 0000000000..c303ada772 --- /dev/null +++ b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-5.md @@ -0,0 +1,30 @@ +--- +title: (Optional) Try Different Models +weight: 5 + +### FIXED, DO NOT MODIFY +layout: learningpathall +--- + + +### Modify the makefile + +Change the directory to the where the makefile is located. + +```bash +cd $HOME/Seeed_Grove_Vision_AI_Module_V2/EPII_CM55M_APP_S/ # replace $HOME with the location of the project +``` + +Using a text editor, for example visual studio code or nano, modify the `APP_TYPE` field in the makefile from the default value of `allon_sensor_tflm` to one of the following. + + +|Parameter|Description| +|---|---| +|tflm_folov8_od|Object detection| +|tflm_folov8_pose|Pose detection| +|tflm_fd_fm|Face detection| + +Go back to the 'Build The Firmware' section and start from Step 3.2. to regenerate the firmware image. + +The images below are examples images from the model. + diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/latched.jpg b/content/learning-paths/microcontrollers/yolo-on-himax/latched.jpg new file mode 100644 index 0000000000000000000000000000000000000000..25d9b856d0c405f7be9a7568741f9ab5547a01eb GIT binary patch literal 39516 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%0AjR3rQ)xd0Z}b2W9B%Keu@Qi9x#Rm(OkNWuOr&K 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 Ou9AP~Ca~!Zpa0o@Ey36T literal 0 HcmV?d00001 diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/unlatched.jpg b/content/learning-paths/microcontrollers/yolo-on-himax/unlatched.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0a3b5b01420d67c24765563e19a670a482f9b6f7 GIT binary patch literal 52263 zcmb@tby!r<_b)tjgQ%l4D5)bUAPs^vg5=QMBOMN1(%mJYFoZA+-JJr`-7(Zq(j6DS z`TOI(&wHQy+;!?R`>eC~UTeoWYwb1n)AuWYK1ryRIRNnSBj7av0Kf%cqdf*-JRr1( z4S+@g!1@OU05s4j|AY0>SpLO>4gjD(`7eL46#(;J{118lgJk~o`=3{w7ytn0AqA6z zi;FWB?VlJ89Rra4?{rQMj%>95=9rEC?;O$8vN8UH`*N}W#q*Cs{+{kv(OG0ABn&>O zC`rjGNCMCv>W@zL_YV3a0Kmr9*-=GWoK90qo9=JgzsbnN$^PH?e{+4v<81P;CIEmj z*8k1@|Gy+WQ!^)%2d0CE!`bnn@CTimKH#So|HRP0*!Z6~;xBeoQ;~S!$$r2r7XJeq z{}24d+1~kq=ht6;6MM(Mc>Vzk*?e~STh?FtTVp~qTXofktLDQ&1#kkW0Hgup5BUEn z{a2rMKL7x}Qvd)X=D%sisQ^GtAOJu%``Thzr00 z-~{mA&jG$ZbdSG;{;*@9qoZSBVmuHgHs)W##=-sv;rxqm|3P?viQqqk_V+0a46KKp z02dqgKk5I+;C|tuH$S^?1(4#R^`WU@puGg3lcHgeqTP3*J*W~5>z_6Jw-O%eiHU`c zgNuhx@Cbm8hJk^OiGhWM`Jg&9ufGEblN9Um3(oi0Pn3;tUOGJG@{9eBOD|s522>e2 zV0dfn=#Pj0>^T`Z1tSwP%d6MiJiPDt_yr_BNJ>e|$jYgzscV2A)NEpEW^Q3=W$onb z;`#;Z<{t1hFeo@AG%PMYAu%aAB{l6wPA)7jzo77Ec|~PabxmzueS1e|S9i~^-oDYX z@rlW)>6zJ;Rpi?G#^x4k`|#-a99{atl4Uhh<$^p>WaRmPv1NRE!;a`#dA<_St zK>q(%68%S@|HyMc3n0WmduT8WQh+Gn24BxuHIQ$U*7+=7Z!y*Ix2G%fWOM#S%{A$b z`GxJ+HpRzE@0X+FS+5}^r+1pDjrWnQXO{#RQ41iX?6cKLD|kul_qh4JB;M;^UOmct zX_vtoI}(4qLcP|YKt>#24!66+0Pj!nZ=@1r{5ctdDYp|ltw;81gds0zd`glZCu6*s zr@B({WSNwTM9S<(q?7BEc(@zqjqgzkQoiVIr7rTVusWdyGL$2&=;@-mt6>b4tX-#~ z_ClmcG8cIrH}yI*3}L6RtLQe0%Jir^Vm_Wr;K5W+JE6}0?8CHl=r1gae+xWN3VR7P zdQ{5avkV%|XBb%@%%~Kp8nwF#u6-Mwfm}XEFRe_!T)gvW(BOP3{#LWz6|uo&((#Pa zS`rd24+&}O{-Y$93PRVQU5<2I?deu3WdHp#^6Hcy?t`}IV-2nTqums_7S+uZj}bwW zxH0>5QE#F1@LlpzjFVn;;Qnk+oBKqce~YDAsE)|D*sy^vO_Y>baavF0jqzmC{FA!l z+X;h%5=a-gbb4MS^>e#8AFG~S2XD0OuuInSp;!j1^$!c-qRM++P*|KUL?G%S^mk9* zTiy74r@Y6)$19NuXYN=_AsQd!=V>d%aa-r+?|{bhF#lhsF};GP1J(-*s51)2Z`z)O zbYm-=z06`qnN@26nzDIGH)n%SvlJ%+{Iw|xnZ5`-Rk2=V2%8k^YbX^vfh&>fGL{q% zJ8Fnv3pjwisi&pVh;xu0)ttGM>LPZ@zeR7Y*Xbv?BULu{1j4x`hdx2iiWxCvx;JIg zs_H)!yE~u2;er|v*~FA5Lo_J}j>hpyWC4K{$-eK-pV^u*%_zRa7oFd6aL7triy?i{ zIu(rd|g?j^TnB(N7b3Qzru`e zH2Eo85dcc?Zt8;MHk<4}Xkcl^Z{rrYdB!_>xgE?v>@?v1nL;VB zQQe9`Wfji^X|BFO_?zArf+%b|(xGMQ_xv z*^lN;WTS8Nb59wf9QW}Oh_(e?JwBMM%e@GYsh)E72&}JY3N`mvqbm;SpbNV*;(M&&;;)U#2}3$Xyst9f2GW_*l`B;kDuhm;pI^CBfJE&m{oXP=~K-zzwt0gt^|X#~_hvx5j z@QLPi8#sQwRY*-^gth-tIZhbW5A6B|GrNRlV_v@rZ~s-a7bY^qesiYOmvX4|YQ8bd zV#d~s1>=7BgdJ_C9Ga!}{4uY_i*HxROO1O#XY|a{@@5Y%QuNUYG`}`dPTCFcT6px; zE@Lzfl`}s=;Nlg9#EOp1CJ9|HGLFcL8atPcrR)eBw3=QnDqnUfd1!Elr@HzPq?n~~ z!Me)lVjt}6Zd;J4u=eC!V^wq^4o7UHP^9WI{Sae?wo@tSEn{-09`U)j8>Mm6xFo&# z-L}kIN-8JcPGmmt)&f-@Ht+A8yPE+ffd9qWgXu;3c=fC zTFtt^mZylcM%jA+rr#(-Vu=tX^3{vL=&ObuMzc>I=FjxA-m4R;VQ*y(^#oN}?fHYK zDlKBiVBV28REJHGXUUkbJHuL|s1$_uVb;xK(bcomdLMj<0ONHxG1urEp2IYb#;gb7 zH*eqp!z@nc(9BqOPe;pR=YBZN26&ovKL|5rlaqsyk&OIyju+<>s6L99fe#(4{(Ha?HkXHDxt`qoIZtA>%SOwzZ@YBNpDnTIXWX$Mv}M zrPc9Jb&UL@A1Yg)qoP%(EXIULo~2q(Yt6YSFWmzsbVP_oUyeD)u6liJjBCAo?IleP zZ2M@;TvtBUb~NsrTMZ@B({Cu5-_}0MSia>C&=G6a&P>55D31JbA{ZT#Nv8+u&~^=I z`f@2QrM!J}igg=xwfW^vY=%vCwJUU`J>rU3^!16s*B|n@ zlzThydfXj)@Oq1a((9RHx9>{#nn(G#&Y6z$k5qrG71z9XHTCBj1n z9#j-AY8qu{(0L*h0bF{K7%VgudBNNn!&FGo_XTZHlqycN!9eaJSP6fJk|g=0L=ZgOPO<>toGnY* zl(Xv@^~=fz6;b)Q$$Pn6(Wij#3<-^lH&8^(*&JWsU?AK1mQY^$CW zR!siQaePjG_2jQEcW4IeQ*leAH_KfYEmai>)=uxi_T{*hK*lWhn+3WwT@b*he(lxV zOmo$>VqEoYiMK&N@D!>&k^qbj=vlc7KsuDsAu`@nKZDXh5SEY!)K$v8QixsG9$vrTXaK5&rpOR?ByZ7tDtw;u9idp3+l7 z7(eH3V^HUx={|8pLYRjz@_#1qA$`@NCUy-SK9*=eYjr#>kFr>n3H`d9G{CX% z-^`B5maYDZpt;-$D>*l2=dNLo3a)aj4=U)8IZ{L~8{#e=Fgz*ioqw29t*n3keD{pb zB;Wliry~uX8Et!}(o@@JS7~_Ic#a^vaLestJhuKqDI4J#<`dSyhsbYespHH8Ci7jX zym8HP5}mVkK^JkMGOuvH-YN59NLh%;6jZAwjG1249qO?KVSH?Xco3wA^l*9Rj{zfX zgAOg1MqISm*tNcx{+hl5L+sqvxvO_-@ZD}eJvYo;jc|tu;MyH>eWtn2}!(yow@*t3F)6X`A7|YaN1FSy8OXKI!bO zarL+wW$cm9T>7zNwi~okOR@dtPj$gjx|Qt&vYsis5K_g@kIY<59Jf+!TIk?oAUxqt ztD`DDM-cPO>W9WNAYfiZKcL+nj+vHxL-agH`=O4am91L1rqq${8|g*T3}MNIN15-4 zzi9v#hKji}q@^Z*fNNb)!>1*V+XMRK6i*U+drCk<&K@B@loohTOy;V-%(~_Q86%j! zpmlR9UTM7Sn(K0iCqLz#u(|C&dZA~+6teF>GZ zbwQ4tDieb#+@61aYD$WxJ|P4-_h=udp5&O(#c?(XMq8hINz1=?C{qj4=Zu=@TeJ)t z5g98zQJyX1BTHZR35u0t*y^1X=p*h!EM$Zeb;D`{?}+9ccJp;6 zx(7@lHXm;gG-%Z@$x8HM)Z7EKo7ZnMMR<1>$#h(oHnj^h^L;lr2yU0eapX=9faA0v zA;KxV!Ma`V!8wJWxG}e{6Wd=Co?uSBTN!{T9E!wZ*X1abw{iTUFQbnBPR%)6FUo3W z)Dl1297LpfiJve_*ZJa$NmyQ2XZTt~=7ezf);cMb&0g5&*hUr82!}4MQ2IU2OV!xg zaZa*juhe|*GTdM01ExLbLixY#63(d$FjPND9-W^9(}98W9fSJlS5uNy_VY7e`51A8 ze?}dphP!gk`qCfK+Y`HvdL@dsXvT*pCnPY_Y6tf>oQh@ueC|hYiY~y&4T{g8rzyIG z77>RA8e7dmHIG7aO&C&s{aOaEz3ZTTu4q_OlUV(E+3*Zed?Si{wVui<)V_?2H+VX7 zr58OK4Y-K2sD~8!)#(6C$Pl@og&-z)^3dqt4ky6N+ZB?>z4@q6TgF-R1ISD>&GtRO zu7yjM=|r`65JE1tr9+$R{j4$YyOypa67G(_V{f%h&;ISo8F<8+9BEh`B8l;=ha9^} zzJv7(yq!5!M#+8s81ETA(Fy ztGDzpPIFNcgSD8R-kkoG9KsCE%~@-|8&Y?H-ZI zT9l^L^rl;_>gZ1b^Y2K0e0$kDTxGyJii1OUP7NA^pYnM|H`Q3Kf$0zBS3aKa-UANx zcUBrVw78cGo$_?+xpI@@ZrkE`Q|a4efwJ^~Z`e*w;_SBE8U!_2ExBFoep`QFsRiCwvyboiFbk^z_m- z%DZX=mCU~W+v92qaBf`;GzgdmLo8lchUxeh_qP?>7>{4a4mh!&asMQ<5C)}zCm`H5IYBjNu+&O2^*Y1l5h5EF&$o$g_6=Wy6+W`x(ozdEBToz3eFeAET$Z zT>rC})&yRi4-K*G@oGVtTNN<*qw#a6$F-?rK}ip?>7bg8JU6 zY(iF@uNN2SmnVURTcLG@?(F8H@3uJ9pwi*BxG!-=HwqHoKn&ZSdZH;1r3S=I;@k=)_aU#73P zg-ohEc!LYy7ZB~V>Ej~eZUh~R9MWx(4|Lol&um=T137Zw?UOj|!q zx5}${KjCoR;GpKLr_pzb=M>z{cUqFdRTZBTP*c{$U7~Ad^6T{W=@3@};Bc~*T3+FU z`aH38zTA0}{?M~Wi!8M7$WUP`E(D}6JR^)N5(KG9V~-bWVBG;j`iT=zG!>jA+^63S zNfh5|r%gs?lG#Q?=Ya&p4lw1g=N2%$vU?0E?^GFer zxG?o>HuASy3O)C#Y6QQ1X1l=BNNZt}1Cz|x7h9J7Jfj+Lp^?}dCH~uOAp%^SdVCxi zf;Wu|G9lIl*jHqvzOi)1dzor+>zBvC^Af`;mZz^Oas(qBR&(jUgb$q?LFQ;(-HB{YaKUVG2qc>3iU8iwx;8}8zknu}@h8mlI zsPW>rCl+l8rXtt!+Bu4>bpx=a`>zi&Pa+IWX;B75o;-(dvSu7QYR!UK^)FWjY~Ry8 z?&DY>v2M5DQqUW!aPDzaW>dbTE*f#>r;jLVApX&8G~($*h5sh!#hl-s{@6-|hr5RS zP$CIEaER}OH=>?8I@Cf3)iXo9EV6}O`gqndhVjqhUY6X6mJRpCZs)-_u4U5GVpf$| zavQAPJBr>S3fkv))As;eA<09?3hCI*8cwb5 z2Ny`&w?10~@RQw=$lb-1sH~gmgiII{>=*>KR57>KHDg0hE-Ium7!NjDoIrE=FXgpT z$Qc8JI8+%@rhQ2I#6Uwu0YyJUH%%-ToahIO_f2Gp_frZG>l&&rsZ6p@OBAW4$bUR8 zTt2x{*?xD}^SNqI!lc)F_UYHW?OTS5HH);9a8TVOw+mTom%Tm>?-U7RTYC^K-FeCC z?;o9gG6RAyp0Trgc0yI@kOw7fN81KvJn4_5#oMb~aMaN%q6EPV=cFQA!NNrtmcNP! zIe7xU`lKrI!y`pzm9x{!)vK$=c62N8Dt-sstBX_><=q2*@ybY;*g2@I!cD#lW|;f2 zj#QXSVu^;R?-Ac5SONf?e7aNQxebv5rV9a?{5L;^1$2^pDiFV&boY5(1zwb$^!U24 z@7jQrV{+nO2dWMePJy#^ImZ^J{#fvA-jR*lZj3QjLJuFuG?cY2AiInPq>F#e7cyK(Mv%S?1%;+F5*KPf2^ubp`sfsM-(kz+(NwbBqA zB_ZI71fsNgOJn70R}xNfs-Olzh<(>z>-J=Zv@qv-k@~Pba=^02dqw>&DkIMcPjz@;wa2Yd@mqVw|cYXts2N53bsmiy_aeX`6 z>#;_%?XHDZcjL{zy$5U~tR~;&e0%fTUd;r!c|Kg^nO}xPX|V!+l&8WcE%b4yG(4>SM zX|=B=^(36oXmDu~FN{{~9veUfb;DJvj0-evl?{rs@SEvScf2FW1ld&AsD+}Lc4Gt9 z)T5awtTE3K>ALxa;!@{U9-`dh-B!YqSM)Uc5>ob3oRc}x&eG?i?2}En4Ver%#*-uK z381*u!d#X2;X$_30Q@EgH%w(bK!-*cEH}x(QjCOJ_;n~};CNA+xDUQTRqs7O=pGO39$KYD1|)T}BT- zCd`;L1dL@PBCUJ2IjnnhR(2AqT^c-N$KAmrch3(MY|7uaQ5S8vz2q$~lxU*{lw?Ux ze9QsK#>RIGgUCj$qpizMhLQJ&Mx`_hfHMRihNlKIHxBTN>11YIrQleVS1)W z3T4g{2JN*3W<7dQra3Wf$43oe8ko0@9uxFfs&0QKhMt)fs9RT87B+mjR~Z#R1@^V_ z=7_Sy+z^AJ(((&02Kf_$;&BC>w0w z+CimG68uF^<_o`KPrkauJg?Wt-p7^R1}TB+iDze6n$F14I-OL;+P27MquCZ4QOG@D zrrIDP6Bymuj9Vpjs1Z@?Cx$;&ouNHmhO`&u#;SkU8v{28J>%SO;GD;nrSGffN-#4M zlq=6vDkA_4BN?7TCDUW5rXP(O>{m29vbmUIT$`=Q5i^vCLs$)9=keIq;oami1{ zDe+3Qo|K#nK5@KSE`KfMVG_1xn&h0ALS0)FEjq9PvWM_`gnZj4U)USXvm8yO7<#h6 z#lgS<%!iQGr2bI#z34kDp18fdT}0DgQ=eh?%oG3Q+33(E7ZnsPq2Fg#b8HiR=%ikp z9Vfs1&PGMjY{)s!juT8?5-wjc-)z3(Z~yj_&2y(oA<)kdcnSAzlDg-$c>@vGAyz}R z02MeK>bSDY#-!XzPj&+ucBafuw5>_4Y$eP3sf6NXXF} zJrwG+Rtev?S3h|EglUf6vZOul7IZF=m8hkO&a)=LYAlU`y+@)WtoE#bO_64lRCP@+ z{4)2jcc|TbXvZ>o?Ou?t7?sA`XbH{F?uv>0oR_tI=Uwg=!FFwaL^;6M_G%{x{4ple zauRaBZ7C>nw&9ji`PfF)0r&mRSlFg@_cjHs{MHq$rjLQ#PD$>Jm10M!p@tI)@rwhk z69{YYWwLXWfTo=D6BkV9y+0e0$bH~389kMk(H|8oIFQ-JvadP&G#`;o*<&Y%8ogW` z+pQa%&37=Oyy;Jze=8PE)#&f_PAljz9glRjqfAwYhG|sYJvo*;srKwZM9pyH z=PV9dm=P2NjymFR1QpUQ>0~Wz7V6KdDt44@g3E(u14Jc? zs(K^mh}GQ-7iX(+@YO+CQ`)m!Jf3-9r0j%wy40FWkp8~ePV;WN+C<% z)zuG<|zD=Qa05X4X4ljTD_>p>gC(BZY-1c1;^{a&1z1) zM_wdvl015ae(Pi@eb72H(1R8>90zJEl;%@rumISg zDknB-?AV=6__~FQ(yyICN4*`+UCxuw54kR(?a^}U3Cc6rvGY(JgLH*dllV1qWOQG1 z+NkH}J>1Y~e)MJ$Rm>xE-oe?u6EEXKG{1D(TWe(I<_CJG9grvm!xNBTl)EcJd8GN3 zZrjUrH!juD=4bVj>rum@WQSu_n!`c{_Uw-rXJ*15Rbk)!oD_wMU|j@j9#$uB%Co%; zG1<}Y<&AYK-tPZym7CF%M2+*;viG?l7xJb#kgOD@QGYN75VegMCRjn=Tx5;0wLIzPvW3YS$|X3 z&3D*GH1tTcUQKQM*~_?Q*`~<&eGj1WCZFS;f+?g;_?vM3WWVteZ(0z$J@TQ5>^~-? z9oaGo!aUA1l)DEI=~dqYLKFJmd=^J2PK@C%4s4mJ;LG(Koz$Q&=az9eyAbD6`R9M9 zRUR#e#pF5c800TiGw-_H2Autg^ue{^MKz>(8OVn^o!KmTZv#ZvV}<(3uJbqb-{IeM zX2d>N$J4fG$SV&pT&g^-QHd7@5)K>mx4cB6)E{FIEPvZT1mZS&P2|zC{xTB=l~GMq zcTO4^#TPIf2539YNl~(;>M#8K$|>d8X*$tUyY$r+)rIxyt%!QH*<4@dL_X0NPp&dA zP{JvyO7^A7htxHTu!cOcP)?3soG{&j36UPN{EtBRiIIRP=B=cy*dK^TIlb?#%t?tm zrr(~3Bz~U{MGIzRm94BnK2LmPBt6^a536LU`Cdpsz&M)TGrt1BAKRR7hq3xzx!dAX zYLO+xoyidhIUsI;n>+PhAE^e;#@gd$<#&Jiz zdTEzn4;py08hp*OpvlQ#+(4=2YGvOQb#o1VGb%8i7_AkiSA>C>H{^oMR0>;hU&D@5 z$^$8tV9?AA=YBiehqk<%Si1Z@h5J%3yvp54E1oH{r*zt&_bmSPiO`+P+~cWdD_8bJ zZbX@d>qFFyVeJ!-B^~ z^Vg;d4P^&T1DM->OHPMCc{>N~SQTh`mhzbkrKZaQqge?0b{(=7K`?Hkzv%NSo)4jR zaQ5BB^hdk?CkLg&pkSgkQJYGF*ey&ce%!?47kkI52 ze)7)NRv#;o^tn0T%Od@*jXCbp7P^QCWY~lkXu!mY&gQqMb`>Nimi)L|mh8c0uUNgg zbs{|JRy>Jqu!K&4F+Z6Y@th=N{e?*4Y}X1hF7{QgXrPV(9)}Wto5(lk5-maM5iozh zOb(Y#q_+!Fc&E0i5(_6yB(>lqgJz@8fSb+3Gy<%5n*==?M^a-Mj*O9OZrBZn@bRDJ zd$NTrc}kU)CwRg-Xca-(@p6eV*;w9HU)s{N#)R}Bh2l;@w7$iwRb_}O>Aj)$2734q zCMWFz)1n}F3ypKu3IZWrQ8S^!znD66uc#h#*0h81yQ#e!Z7$4Gdoq{sK2U$P(zZuv z;*7rh?P7mT_8B7|n_w2L;1K5cg>*aV z*d~4;@Nh0lN|;xCcbL>1;6g{B(3W zqC#x&npP(BW4Tj-hgWtAySI)Y%ImIzEMND379C~Z6y5{O=jS7kN5#`TlA0eLpNRIA zT;|vs@wMK93N{#LA5jr*WLUk7FuzR*D+Cu&iDU$rcsv)z;5N=a=>DGO?qvOuHnxm^j zQ@69H@0e_dwaX>bu|c~Twpi9QR{)$9u|^iwm7$Uz%f0EdVJ)4qI-64~4Z)(%QaoL& ze*ULyh?yEv7w{>R`vMj#^>(buNseh``t(+0#e3-4ATi&7JFxlt)6cQJ-C{_dRV!}_ z7JW7~VlONg)omljuLpG)aK|*Mcfz^7EVWWNf~At~yym~rTB~Q6<8f8{x_X~qYVkxWhk;wisDcXGM9d_}w?u~6wsw0^05nq?< zsP>0_BfyHAVtaWKQb<*;GHKF|(_1$)u@E?vN;|!j0)jd32+pvZ zwgdHfZJu3~JP{S#2LtPhXZhA~Ono@XiLRe;s>#35#e67c;GnT$^PPFKh3Btt;|37g zc{rsHi}W$!_+`L#)s`L&F!p}x=1KWzcE+dj7%9H9l02Iy1CmiATn=5%^-PJjyou3P zDE*F=Ke%rK_5?9#zMUb$zD;hT?DL={0V_Cx(X&%;pj5^U*awx$-K06o?%-k03lV+ly=c_e}8RAPoIE;Zj^=D+ck`p@WM??4W3yN)oHL2>_Sn+HG${^;o5LuRBFG= zHzWjB&be@S(KdH636{$LEzlCg_$bBSrkIw*O2;MT2^!e`1{<;?`WR}>SY`DTT?wTx z|KLG7h9ATNXi}cG-pXId9n4u)51*03JsPY7KS=@b1*1-nhT8W&P~&51v`J!6*CH(L z#$WrT$2gp1zj4ouE!+#t)X%^Yd)n*D#?-x7E9{_E{XDj+G%-jF6&AI6B=6eVZBUa9 zr`eJ=0UlKb7_A*@6K{XzDq!FFJ0#HibbrG{wyz#uZwNw_B3dIqb=HXHXD(cex^u=d zbF8xs21N2s1vVaI@#7?NNM{|U`mcJ6gwIwqn%+rPMv*5bhauy}M`UT%Ve=Af(YKlO z`l=?T7O$o7W1w_VxF?7<_PKyFw)ExouA#1$z{&i(M|EUP>%}JPqg2QQ<)P`h0@0(^ z!#f0}sGGA)ZqkZH_^tNoIb8IqR`_&d{s(9n_h;C94JoqM(&D(w0bS0YN|yJdv@0(Y zqmjOPyMm#YP?XMDd{w7bgbSiZ^s~WqmimQNk*=rMg`n}d2wCc}NUC+@n|esi&9NkA zQ`ufbio4fun+qpdt`7>TuN3Sh2uUw!vgED^g9!{C5wCwT+&tl#M!6!$XuJtT^D%gOtz5TL-AY>tWA%g0 z$f`cY`+fmH_rxv{-)k_BBwxE_qw}p+s`#|n<^zsnwN&P@f_o#V@J&rSw|gh*$D1Ov z_gx(t9lbKzdQp02;nEI81sdG|glLrtP{~Ymu--<%^=^1GMi2=cU|G=I62|UUe`(p= z1ah5RiHdCz+Jrf1e?DSuY$tK#gWn2x%_>e}(8C=EsfkS3g5g%z3}Z+wDi%KM2Cc6S zIv+X%qV6WvilA90f#AZEk_Am!$YUuPR9lHa(1@$B)Z+U$mY)uNLGY@&7YS4jJx%tm zZ|fU1Mh(9aOFH|@B%Na1s@uD~O&K(u7bQxf;X zH!TN)0SvJ$bdJ)>2J%pF$D_H)4 zKBIRSUt`=X?UR~cyuRcQh#6fL9-Oovv)htah(W1uhM=?M9T z&1LtZe^an*y;`KQ_eC)yu#CA5>L@i$H>6lKp^u$3e+KXZg&q_)oBqT_C{5agl+pR} z6;qVb@?3;z8O3J4e7{EMU=XoX{d{+*SZjN>raKEA!vW&BWHr9~=?Md|^dGjD7=NVf z39`vm49w>s}BTJGz~VfeezOhiJw@ur_3;1Fq{;-?saPpLUw zhiAst(>MatLBmrJGl%BAWd8QUu;mG@l%G^KFY7Zne}t`=p&G)v<$4s%Y>59z9%EIu z9!3d(<&9q61I+r#_H^?yURU(vw=mT>_bTw(ezm=tuGX!4=O+vFfDUt z!Q6%oDy@h6Utw4Rr)m-%!|5Xu*1UlosuD2z;Vx9zAr*21gN$buHJdiK?a#f2%&jvSAr^pX(eIxYD^Zwmi@q8RG1Zq4k_>eHWgYP5>kG&&_qh!)I; zNaMbhyc;9>W59u?AC2G+rKj4XE=m}6d6Ksf#OfcA5BuU{ z^<>U>XAT3{3Hc;z$7vZ%u=v&VOz=t3tifQM#8KvIb+HSs(9pvd2idj7bbiMmhuCXD zUx>RX>D+r;##H|+i-@U@0>MDbKTbPK#1L^|)+hF4@TI+pyMtTMS`j-nM-3%D@*!vj z{t%bCBA9&Ldo@)^rCS`0ttssleLr$B*D4T_G|3yB@(YQv-sQpC$h$Ap^_r3j09s!9 zy2z6*Yc}HI)c)wvrY&Tb`mLs{p+<ek(MXB8CtJvhk^b&f!rwpZ&Q@h;XdXtols{TatuZLxPw%k!Z8AW}shg{_2Ec%)>`IkAE`{URO|bT(ch@;S@>NSI!gZ6`V(IM!?b z5K3xS`n<_=#HhGj?zu>Nlas^*IEdQ*twJB9 z@I*i9+S{`2@*yDn!ZWcm!rM;n(1&p0@|R!jfCpP>#?7RYHhCs;rEZZtaV%o0aqi8# zB-?X3k%?unuO;0L{1V)_B|Q*ejLfWx7xUaiLh!=tB-=NdT_#!A-x)KuAtUCJUaX80?Psh*KzzcHetCNM0Zo9wTxiNk7xdlU`|GDr93-p)nkCI)ssCzF`;=Zp zZyJNrHj%TTdgl42u2XERfjQJ0_eU8iTErKi`vyCYzx41IL|!YLB;t48ieOfsL1#-~ zroe^Z>RdE7^jOIQG%d2P`~`CNdZoyEs*!@hFZLZ*h6{Py{xq~UjSz)omsEd zPO1HX?+@Wf8qzSu@7q_NPX>h+@@*HZs?4v&1tON0qwWEBKaazORb<>0McW%FS>LOZ zW#*F=I@FDkI}2kdnntZ>*z=+E)V~f;*+dEN1eG=sF0oLB&4%qItVE5VX3MR6KF~@u zRW=>(bt*JG#3Ysk@%zQSqKwKAF7hp_V}0HSDURB`bf}Lo3_Jdrp=@D-HRAEROwgyh zp-BK@L?E8}#@#{Rj;h(Y_r+?x2W7|}`}w;UzFlrrq!Z+lGWszT|P>GUt|naSb=>ctg9l`%lA3i9Gkfn6Ro`liM5P*l9Mxr%{H-RLikl;6psO6_#yWzCF|@ z)RZh$I?l_geL~fTDBNxq{`q1ztcf2&Ben1A06SZt^5Mpp&HVm0%#I!Q;VDD!uhcmCs4VT)MlncTmdO}1`fQ6aAFY1EBw>t+5eNSyxB6BY%UfI5H|QQVG@DX%2b~>-oc_fxlB;`lRCzkA2!Axb#4zDGNe(`xJA7HT8V}|ai5@{{Fk$f{eh9r1 zGG$tHGN89ib~8l#byKv(PGC^g7|MR&%;QUa4~RIKE-^ed(sdZ{tZ}fSqL^G6PrJGY zXo7t5Jp+P($BGrOuM^>3^Quv6UGwv!o9efV4%!=BhjE~oFv-9+>unpQl%#{XLcGazybaL^om`15$7|h7;0a7O4p4|g7Kf7-3#~MTn zv;?2BlPt*_70$^*xCtesUq5xBpOC@yR=>4na8P=7>85=+6qW^Ortowe>rO>Nh`N~; zh~_aR94JlfmM~(YS3biPP#GznPJub}m)_-#Y_L2^B}Kl~`t*3go0LgEA%9qD%P1=LVK9@h@Y7462yrBx27op-dGPjf2|MC#1ocJl0NpUs<>}WPPc!)ODV8O&VKUlG(p%8*9fGrsa=~ zOgsKbU!Nhd&0bw37D;f#sl#q>QEec2@vwT=3@tl6OV~BGN|e2>TCi$ntwJ@^t#?ghI72upV$^R zT7q3rm`>XK>Gi9eNb#~>AGs3)0&C*09n3VoSNI2&&Fq+8$jB9QL=vYpcjU3>rghf; zXyq!vOi)BzXLvfqZm1r)Esb?GV_x(|nxRgqg-K&5GHmDj;TsjUHCq{!np2;KU{QET zE)@snX^GsnJQTS=xjYG-@KtH3A9F4u_ye@Y`@VIUY93#@E3A|ata@$xQL`IvMz#=# z@_sZfB!RIlx6_}vQWl|+bp!e+ecf?)jmT|eJ@6k>7=1RWc{54qcwLHjRuX*&42-_H zz6T&r_oOj?h`75YH||E?kD*+aaI5@8toMzUXcE^%SPx*Z)30Ibp6w3{4a1117mka! zLBr>5u#9?-iU+~REa z%!yr}CpUzn?RVNoB>7biS>?PjceEEpUkHn8en)3=#)0IF(;{Q9T5JtolpUME?Brm3 zof!k#qi>9pF%LLZ4BQ;#*Sbb4`PNnDsLYG(2z26*Fwcoq7^H&1&>||MXj@N%b+VJ) zyXv?lJiCT5iES}sN2Z92p51--@?B?jP;X6F_o6*$GmG+4LE}`+zyR*$hd>#x@@7nZ zGdV)Uh|p_OT2UQ6b=cGCW-3oi3QlFbBxesm1!&MslrQnqWj^@pyh@}Y9DW%RGy-FL zH)6rKWVZJJ{2jGHez`fC>%1MMS`P>P@7X&lZsEP?&03=_#mgK$*Lp=0m54{;q>dfy z`MVKwB0~p*Ei@;O`3I#)U|yUnAHAj#4}aT$9Ot}0L^l*{mO+JGk+fy9>z17L-W0vV zu74UQDs@7wpz!mZGs62ov5MR*$omG|kx6p+a)2Vx@a-Q1i39A->eZ`{CfJV7;`X8mb=vMj>(jS^2jcU-v*Re)xU8RL8g^!}G z#689fA{I%s^&%FeCOXPBWB!0b>3)e2p@!nD0%Ix;tHaHT+NC&MaO3Ujvl{caAUWmZ zFPr^r4GsG`3Q*dM-t+X?WH+znBj#O27$@!l%b5lh=5WXJXRc{c$t^$TmfmLH1Dq9T zEzhtU!#f`WXBCzJi|x!DP8dVW1>z5WV@9$0RO13uzYAQN>0G72lB>-CQ zE|xc$_l&`TnwzI^q5jSD+lY1u&5PH=de9>4fqc~7jd+(1$i@Df_i4i1ho$3@gdX)% z)6=r@?(wMKmn3H!2VXj}rgLQVL_2ACD-LnOPjNp~(~wmKt~7EyiLP9r9%O|F;bH}$ zWI7EqK?n4D@vF35c8?yM$>nD`N9N5e&la|;=LF{tSMI#1Is{@c_ao?LQj00qM$j-ft0j2+Pj zbDcueI{G>Es}(12mWzc|>B77$rBpwqy})BMK0zsddMa?I`%wE5zDSW>F*o+B;x!Vy zh`m{{p7p4S^ZZ@lwT!3GZDxz572=L%3snO3Fc^WA)`#OCv5r5+`(G4YWmr>h9|jRn zDM68D3J3~P(m4?&1w>M6A|hSVFg5{6feHKxNtF_bN%!dPhK(9sgN+<)%y;jXec83^ zI@hyvo^#*7J03S{s&85DDVBww5Gh;l|4JkM;uH1-Z4IR}Rq>O`maAn7qglF-_k+y* z3&46uUexOVk<-nVNDq|D+3i-pSYQ-qoP+Xzu~ZlDou~g^<^7|uwYKgWT*)@^?qqsM z9vbw1*kV0Cyq1=DBH07-@wPCFJ3;kTh&=U=&+ zrM@0b5pbc&ZMG#3rvIbbcjbL2{g2_;RWJ^S0bz}-GW3ADO~(Tjdb>AlfCZn(gML*( zyyE2QtDuHVSJ9)SfISeEB~b^RD?uDG&>NWx5<+!*mn;xYi9S$7acFN@x7$ zNc-{5%b(o(goAxD-vqnzyY{!@|T5eZ#!haoIZDtEdw*}ZY#M$xNRWa(rJV9q%EJS(ay=eQR(&OB(dP~veHfdx72v#?0sfr8yxq#=F)vCqv{%kZ zh?inY*I@gQI>%kvNF2z^V-#71e*rKFUS$CtF^tP=vN60B`QLS#S(u*EMFTdzy<4Ma zlc%NDXL9Z-)a6N5+SxkNwL9%Z&vvN@Ztxo_vUr6if?NW)x>C*l!V~!<;q8Yo^6R3g zizyVuQ4>$qaW5kr@BH@VW{h(1CR33W5gWhu@Vi2M9eCa<=SS|(R{LcJeABAj7hmmi zUy%~v{?7Yl|IMfAcAjbj=eIOfx;;muGLf2A0ZA(FAw<0T+jz)ZcFJ9mvgYQ9^8Zrd zatDTgbl9uHJL{VC)_`2w za)wt9TAA^UBC=MkUT51Y?EkSd>s`^qzYI{J<@bC1q_9k7*gj(-Y0~bzHjw{wnq7q^ zS?7cWz*nac=>YvPiGu~@mZ%8?2NsAaS_OTT{73QL1^J3o!FK^NDy0?Vqm<%OJ$3rk zLqMx+_HX&6Q-R$^h4-73@%h~xk(LZKnW>GcSrzKQoEF@3rQ2`hUTfk2J2nQZtsFA> z`W9Byn1mYKVHZ698ka-u*WZWTa^4xYO@SI<1%gw6cU!Ur-rFQe!oiEB86D?5Jn3cl zg(plskgb!oZhC)=H2 z$@=Z(7O}|LgMZzcpvxUH_KdX;zYM~M;s(3zdY4((W94%tk>(cgWO~_^jrTFCM?Fea z;Df-GcZ|)-V&y~5pUPlmq;Ost4cZKTBY*IiA9 z&#@G&4Lr>=*cb=3Ix61!@~Tw*txWu^hD*~&i4`r{{t;cXF4DuRETaFKwPCq?5x>&~ z#l~x>LD1C=OAhyg;i(@N)@-$8PmQ@#M4IC>6oE;H_Fm$}#R}7WuK`vub8p(E1QDi5 z0-S5Aox<%&T@S7Y`(e&j5##=)nMr77YOeN%!joO7AU5U#9VrM(`96AxKGvhfP%!@7gFKPQZ;{Hh5jk!6zo0oGNi7?Ipi9 zmvHNwo9kZPkV_&5b{U1Z=?Gvb%jggxuwOHH3a+?_`}8(SNOUUK;^Oje%>HC?VbNjk zz8CI}CjJ5~QleGeCtdpt*Xu@c!DrY(&CcFiAS2zhsAO0li>JUUnDQLSlgFD_J=kZ6 z5H{8tAG>B+oiqI^IF+Y&v-ee&AKVj9K)b~Aui8)5UKe2V67AzXYzIV&)WVLk*kf$W zG?Oj&Jdv;m$(!Ce3ab?Yp=qxPFB(QcT|R%V1^N)8^u8lCU1zd5zrF2mcuq&pWM}Qb zIzpP!Ep{7k8)a1`YY|OW3qdKn_d)3)G*160kadW%i`TSd3#oyxilx!4d!`Fp+gcsk z8XgK3S+#6R3~^JKTv1E)ZX;faYoKDd`(!uXYp?V!3N(kDVS&)^r~C=erN50B*sPzz~D9$)f&@#?C4JtxcUhe z!q!2uf4a}gn7Af^ZufLv!FOVhvR%&F@ZDZ=C|AAeH@u(8$h=4fx0`+N9+n%ld$Mx)=uY6dC z=9hQ=+`I@}W7RqDN<W->F(gT>-(~{mkf7!#=l1qpp zEVMg!p4NIASmD#O=OV*D6ll+GCG-P>v2i09kV#q+i4V{93MUtqUCr@+ir1w@f3b}X zEB%4J<1$US?XzTp@Xrr&=ET+iV@#acs(-Ag^kBa`@#UXk@4Mq_EY*`rU20asVkR0i z`V^r(p4ow8UM8daeGXa&!#iaIp^+pvUXin#Y2m`ViQ`{?IY)j={Ynsw9Z8N zTD+Y<*1snnm$tH0BpxN|x)N|5`L#*cYjfq!y@O}+H@8@bbfr57v#Y; z{H~y|@i@V6{nL>43R8hkM_FpGlID&>2Z#s!{3@H={^P_O27ZZN)UoW!G2a9@CMjXQ z+dJH^ig@;;;&jwv=BkP$9nkq2TNgo8ar2kX0ZbO^{x>-ocH8rnTlnPfULBmMW*4x! zJRUuXUi9y{S(t62i_{S`%eaeafPTIT5r*$~6IAws;N1^A2zpR({^IOvG=&E7g7d)+jb= zzltEZ>|DzUsaea`Y?sT(_fInu@!c3?%=Vx;d?@E;Br?E8krXr=N>s{hY9Ew1REU9O# ziekL6?or8iLaq0Bbev*_^<5lv!Ye`hf|9g zqxv>di#VGd0tZ+W>(QGVw~US4mFqQ_tlra{D$h_3tP*hl&96aX>27czkl*Xg+DQv? z!X7(vc0JbuB-AShnKeWD&1|mWz1OTYL}|wPn`hj<02~wheazDlU89Q(IbO3=6U`Y@ zn<#CbfnSEI!}wwcY*9zxcaj^i#eb(b`vO zKl$~*#SMA1g-Z=&CC{y{dZTPI*SI{sM@xHw?=X}PBmp-Jy(R0k@QVpG9?LGGr`psv*tzj zC$J;l8#Ju3;wRU5G%aSE)dbT%6xy@6J!`Q+^yANQhc@`(Kg0O}_BpefutNj6fsxiF zj{~Nc>$3y1a-Q3M9`@*FfP`BTChZ)yufm3`Hh&qM$gRHp!O4boq8aETIF&7S%FwI< zoPG{XmLNv>jB#b6YE4B2l9>CqI97}CcKY=*ugjY4H8qntSodmkIKs8--tM<~_w3gh zU@uLVhDN-1--K%ZIgaBV3;HVse^NBlED%Uyh^PvUyL?|1Oks92aXW~91`(0h3_q&B z#U`2)z8n1JzhFkO&CQfwq<7{=L_!M+fW+l-_C3;64 z`?Bj^E^jldN_-+WxsmT|xMjnUN?BcH{&_4R3Jq+7&7ZHze$IJ}hZb&=_$CED#rPN4 z#QbDz4b(R3WZd=CEC>k5GD_Zfb^2(c@|8o!ASmoI5Qfo;sAqqa??tBYqx&dqFdC5X zfHdAxS($?zdrVMzmhSO9U%L2lA~J1pxIqe z7=i^{JR?XTx z$hlfHq6`PFbJCe zH{d}-WLu!+>$Mx^@b9CzLh?B1CLe+dZ-^~AizhSH3b6V_t1}ciJ3L0>jHVuqA`0Db z{Bkz&+mjye6-nS0J5p>*V%#&;~44c)Q-qd=l>zX5nFXd5J4l zn{I_$vYjgSl!=iv2dy-SIZ&G*`sXRfwerbKJQmva>V~qXk)&|~vlIQ$K(8nJLnB86 z6Ixw4x>8Bn=K{0pwrf0wd=v{FLce_(CigN*H=)R8HcmuZ4c1DhLtYRxw!>E%(h(0`Yr?hUj4v=Cy9 z+9ww~4dj7t`{CF~G=n6W4y?u?^E#Al^4AxKdK|LVwGHNmFEgF^P8^8OBc}b?OkwP= z-g%lWA;c!XuTK2@oASwy9XNT!>SL+y;Y#noFzF}xc49$TBIyC<8?->6v{ZK3Jg+)h z>cunY#@me4#?JG=ouvl4!TImeao?OHbDe@q^{+APnm;D@-N|@0ZtIOt!@r7Mhgbon zeA*5zf}|Cf;GdEW0GGh?pgS1r!cc6%6FauXqMWr=vBlAmU?u_zIlY+!3KvTR%~5ZQJyZLd&qJ-+PMs zBW>uU!Wk=d8Eh^$Dz_5Uei$vA)_C}t=;lRV`%#ksOfBWx+RzZ7LCW`+=>npb=?-Lu zmD&+PIBd0>!djB9iEZ78De0avwSafd^wDyZ>XQIXbjWrK)&p7itw(kC;UF^)3U=v0 z6oH}3*ScGIh$6UF^++a`fR8;hNV;^3;7qR=ONN1{m2xwYUb|<4L8F*7tbxUhJ5xM~ z2cK%dav|_=xc-G~YDH)#zn~l?ksQC-%$bEAcruL^q zC$1VTy=-G3-VdIg{YOFDY)eoE>(7cebF7x>fUe^W^dk5x{#FYDs~`2bP5QR6%X25W zjH*iR0;nKN0r1Xq-fQD)ID^i9!4&Z~1`7s(ewj8v)eqLgyki=jpWED&Id_UQF4^@9 zn*g3pfNG{r18(OSzCFKDUr#@lBZm1C)f6%xVf{xzO@&SCyx|UhjK#4TO>5XaEmTgQ z43=r zoH(r>U_MxyDL0tTY5k*cVHXJc*zk`c%H{?h>V-Y-=ETetHoEmh6sas$i?CE#^|kO* zmzROUPT(UDH#VoG`9cDx(>ij*{Dq1ufPgScFl}Gb=O)kNsQ@TN`tRR z+NfYn88q83Te=WzO;6nIjtWG`F>ciT;>+1ey#ER&HS;&r*=p5E&Yi32)^6OBxbhJD zqJUo;`{?iMqRmv{$QG&2C1IG>)GCfjyTTQQCw4BBPhl(hF|%=I)g+C)bt+@^fH ztUxF-&0z>7PyUlvnRvlkv&vpxXRzB=u662!bh8b^6JEqWij=_FIMRI^XN&xd@)m!w zyx#`#M_L=G4N493tpzpNC~_XOW~;U0s?k6(%0N_cm6GdrXK`BW|8+j5K;KPM6O$ZWp(o{9sT~L>@e3 z5PBT|e>U-JpwuHV6xH(4lJ*;TfXUXRS#8yguH!kEZVX?@n***GSD$|rGN!?kE*yyy zGJEHm7HW14!1>g|rHKQR`0@`&Xj6WlguAuVfG(7AcHUojJVMTbG>vR+hej+{&qjbH z%kbWv$ljQHYcD1bl&b*IqA?8D{|<6INY|(gtY|Qf@t0FlH+xCYg$ys(nC6m2qE=q8 zdePiYMs4jLe0v5NvV|=5W#HY_DvI5IRTiE42aw_+u5afn<6cS4eMlL5DDrE z(jqL+#}-3b67sv{jiDXSLPTn?b#1vwP4w4Hc;x0FsG8Ed5H#Sr@sj6fLv$sHf#Y&^ z0m|?ZXIk)6?C0v0k|DNcRp*_HWkX(rU5!ay$;)qc3T?`tZghjMoF|eOPTn=VVv1CK zlC~-oWe_9XCsxX$5MR|@>V&a zu0OIz^*NQVvf_WWoKL)zXK#c4 z9<9FMc)!0uO@)W4ffT?xv%Q#y4rHB*1ZSF8<}IHG2xyH zY0Thwp)Md-Yu8C~m#Va30p7>}=v*^d9vwZvchS9wmp7q1&kIGEla4pACBzZZ8~|%5 z9u2L9cbCbXJ->>z#2^4*1C@rRd-}>)=fSzad4oh85ys3MOKB}1EtE1 z9eJ_;t_}H0@FJ@c&&p1-Xyv&_&nkdI6Sp{W4wHQrQLZjzIN@WSGds2j=0_`nbZ?o5z9pY2E|Bg?Fm8t!M?x$Pgt-_iXCwgq5?tDh&|Ns7dmX$G+e zYcEr}BO_esn+2*YmG&j29vpq?3Dh#Gc}CL$J!845X;vb<0h`v~844jor0ca~cD&Zp zJyD#X_5yY8K$^9o$sh5Q7pz7@$Lz8uI$@fVuk&tM@|tMNH4qoUYLkNF&D!41KIqIyOX>e%PIry}E@gRh+LrnzmZRkZt0p?^N+i%M)el4UE>Y2p%l;OqGkuG-k;3 zQ)kVu1W-!h7Q5jx&s9l&9k#Fu3RnLXz}Vwvdho%Cm+OX&>9q%GO1JOSXg=}!thm~0 zsrm%c2fY4|!jX)hn3~-PeA}~2oCzWxLZGRd;tY)(eY&)`JB_PC3wa->0{S>s?1tc~ zv`q7B-LfPZyxJ<^yG)7F$9TK?2-CMqCa5Qld~{!Y*ESittta?qfeP?uFAqD%;*X%A zqp2@K6%+|7lB4=5T|2T65j=cVV9fPHe4*pke>Vlq?NA;ZiHMJD2XNk^P*9WHrFa+9 z*H+qmvS`J_H!zD?{umrc-TeHBl3^5?$yB{I?9L7K-hhvQI3eA$B>H+67?ZQM`~oY> zwy;BDXgx!72vE4aDAJa}$J8Bhk67(>uFmHlu;fZ{fq(ie9>^_iDasakY%T$sf- zCj|VFgNQavyNVha(**zaCtbuWkTap)JCi#$N~>IpnjIM%Gohs&g~8f3Y)7b12l264 z%M&|fB-K;O!wLu5ml$HblUto=j+(_c>15ipUr>>iZ<)eAg^xt6j*8%dSB~G^W zRu+nVMLbF-F}Av<0B2Q;9DLC}$o80TdZaak=TC|3wEk01HZtVLke6M7rz zIO)tR+_#b>^Ajp^h{k}+xzT6T!{z6K@}Dscho#KxU#VzLD|`q zB#=sm1q@5hvL#+FPsRdSwB4FEe2y`5vt zv>(n=(8aVR;zs|w!p_T|URF$DROb-F4;fl!CGudGj#pvP!)Z~{b7e`FTq^pfcGCi3 zMuZ=3iClw8`Z0GJ`wXaGpIrDY_wq{Oauc9vn^X1fpS4>j_K#IyPmwP zIQ@Q7XK|nEIq&zKnU*jh9p1q*jtk}Juna@|m>tS^!m_mB{;q`6F1YSigFMG&4sG#@ z+0J<+&_R!F#XXcZw$;U>cHY_I%eAfNSedL2l+Dzdr*gv~BgaXZN&`r;t?64Bf4l@M zabC_FF|N~h(c6*BP`$^aV-O9YN>JexXBe*CvpnWh(p7-<@h!COiLuL0*Tu0ZaMi|f z9*weWBe%MMcWaB4D#A3x`Kwqac-Pm@;fSrltJ+XMpTnu5xyR5HUS?Nboox8#c7C~!SrdISWf0& z$bm>68O?WA_&-X#+XbALzt-ZZ{S&V-xZh#ILOJNKx~y};oV{d}H;7Dz8=uj9{Evnq$3xd~5c-tSy1=JtAfnHzf`n7kk4 zvQKxk9yDWgA44=;rL=c<&t6cYdcUvhueyEd( z+p$JudvI$%TrkLzFp2X8qThy&TUx5!Nik|psF|~{7_eh|7x}(0S5+V*U7Gm|6q##M@QzJL+{*5OoR4k`ag^sZSM% ze@Jk-id}m>d3c)3B(*~l%+;@#^JDX7H1{YX> zKrT$TdbvISjB+iwB|N+l`_WHq=q`1?GWqO{TWe*paqs=!bS|`Fxz4=Px-&xJ%sAI? zZ(n|Zewf%7U(&qir!_R*$*Zb0EoaO8>>2`%J>PG@Nwt5<)?As5E#r4UwHi$SvP9ja z*sF%8No#UngNH6~n;6hR1}_gn!M+AzHu9=~B!dh~?azpctV?Mrnj=z0ip)9aGnj2v z9ld9O*Et!~ZLwoIiyR;8rMv}sUXtCFvJpwaqi7akT9vGFJ?W)KR1O=?>QX>&P4A)f zm9Y-4+QRtAs%!i=m;D<}%1VuqIe4)ucffNuy&o;u)QU`kDgS<*_7r2fYD={AVI+yZ zcAArJ^oFzdyt8Na=8|oSEy@WF#ihZNA7DK?zu{YZ4QZ!0J@`hJrm3uKtR(tk*`t<{ zxpQK_9!pXfcZ8>Y(fOsT9&Fr*1$Myc0WrDEe6(57eO7b(SGu)rtHq^qgc{(nea0AivOo#iymClN`qWQSg#^ zGawvPXJxS%)dOJ1C!=%8s&SEUw1=y-%TNE+i_Z%V+Us>mO#9ooFVQqot;-!?__4#j zH{nLWM<}Z!l!rt?njqZ*F*{m(Ni#*7EH;}>XkHIpOW@k7YxxrLbH#S+*L|%8wB`T< zBoa(c0fohZC9gh9D?#U5Y{&tw<=ATWGK}vHQQNvnpJC~{*DWQV8OjRYYE$lK)wzg2 zzUB*jPgYaU&%orL{zrT<3t`3+R%Bz>^eQb&nqu5AGP*Cc^`{d2BuX@&WbHp!wZEP~ z9inoJJF#-^=#S|ee}{!7RlGJ%b2XyWq7J4?N0h~(ad!U74WkB<^XQFsV1P?CXyZda|Qf*4iN7q_b^p}H=C5K6d+EK~RTj}nW zes_sp*ugeG8>Z@p?>V~h>W0aq2t=b_QgBRgRTE3E>Uyrl%8=xL*ovm*iphx1fzth2 zSyf)V@MuS^o4{m0^tX+Yo`1-v?#=on_4=yR{=LIoi*xokrFMF6)DK!@eK$cB-9%|t zs2F5gG=B=Zy?5#VMOox}V`Oo$&i$I22ycPP#OyyR|FIanG)xW!-HhqduSPjcO%!o@ zRcoI%;R=^SG7goiTQDK{|BaCXfGcU7u>FWN@pv}Kt*ats zPOzn2`J7Bz6h_t~+8Nd?0bXO`bGzLa5Ld!otbD<`MPwOWEpNb)y$NBWhfhj#JEZPb zKUG@j4zeFg>=A<9ND^?3dHilJS(&$>6{`aCgHDYQzXHBTWTgk4PO0ZXC7kQetA!q=(MDGAnDL!r19sd0lHP!4BLU8%F#IcKR6Ya&W)@v1mS0zbK0=8ZOiby{xQ z`c8;#Hdi&0$KYC5_^w3q*z#@&z4J3lknQZVv;1BU;ks=Jllhe7;R(!N4V zv-$Vc>L@1uyBtW0m7riVH-avyzp=G*8Cgc6R$JwQ^3)V27g^iXCdK}pTef-eA+^0N zN$gIhZFsA+1wXNj>sP;0Y zFDP`0wQiCGAWBaZPQW9ggHfH=bm-$CFYD$9L@2ZcY%N2(!S2El&a5iyA)=hsMF8L2 z5g3L%g1b({Ew`1FQFZ&z{K){uh_Y;*>)X4~jet=~Ia1uA&nuG&RoQ<&(LhxWNVk_P z8}mPeX{sOPy4PH#kY+hklgY|UBkT*<%T9D8{tqf28Rti^ug@3;c+0Mxzcr_qsmN#ndsxUJsNuMn|uA{QC=Y{c)3H!~Gk>#}b2S6j79&o+NAsBaUAyUF!v z*Kf8d%`Wc|1bc+LTfp&|u9e>AO2?En%Z3oG6zWos^L?t?py#4mUc^bUe80IrKeHG3|aTWNYz>ECe-I3Af- zHLCUwyTKED>(nF8Vk514w0g;jWmhpb)_v>P2t#AJms!@inefCz>9u{AW2iABg&}Bi z3P1_9hlQo4~J0j1ysdcYXn{Q%aX9@LbD}oVXU(pPHNRbxR=^{C1 zls1K=byq=5qM2X6iDd-ib8sHj_uY{`6RlIw7a$Ad25D54c}&@jpq!7K?b6dUNC>_P zwyDvoKD=c$nz+7WS{cdaKfpNodolW)kW?1eG@J^F;J@eJM8Lgnx(kpe(N~vbQ0~2nhZ<{|BFm`WEVGk#PQva`ZjGhH?BKWAt zE~!C}NJaYG`5eYcmU*AOM-L+JCyb*|FtNvi7YqDNBljPe$0@>O@p9NaL+kfI<^}jX zhJTx)jenxm6H1od)K_S`m*85Lm;(xy(F_c;6S>tIZ(RL`kK($h7H zJU1#H;6t(!BPgpeDSh{7j2>J>bpm()lE;qhO@4EfGSb^+^R#08U5K0xY?F$Xsvtn6 zC-2G8MRJ8}mbZB;>W;N`rRzofVa8#z=*oFxiihuALDfI`oIT#IAB!SS=!Oj=I(us$ z?(M~%-E|Yuisp&U450;pbVlSZA;}bMnje>9obZsJ38W%qUh zukS*u&wBuLkWpY&Yy62g({9k&?-@4Ep1(X8x6Rn@n(L7g=?fDA0n6WhxWD$NH|skG zREZP$K{bL+r8{ho#S#P026=4X{ip5b?>A9t^@Qtr;nB+m?^X~cm8av6U0S) z`8zPjKkDF6v?r7IFum8d>yDJz;uqhSHlBfSB=8HU3f37frxlKwTyR=}GxuMM*4M;h zRYA`fsRQwGW@6C?1zHVQx-&8k=+-Rb$|)Qj8G@jJc7`E8FfY;3?6do*>N3R8Xrl|+zAeJ zHz(JjQBasICE^45yC$}w&SC76L-pjE1C+*E^yMShH53P&(`wYF=)KOPF){>`>34mg zIFihOney7)wY+{KqH5as-5T#NL_Xeog-6bmpjxzo8Z3KCdXN^Yew3tW$4|~$Cu5J% zXSu#lU3e)F^|dL_FKUlJsWzX%)$qxFe#Wm{XR|9`+e}$VA6H!$$1iE{+**<7Ek+> zzrR(mB4`h?R53=nvyChw$FE=Q%@jitF&XPgPpY>+^bCryqmoZ_dSI5rxPG`BPEc2Qn*;~xd05gh2OPW`5xHEPIm_fvC)ihae} z`--f_7pH)DU^N?tfxL~{TosU~1D_F8j$lc2o|InU+_K&V%A(uVxP|n?&ecF-LAk_d zWCnRRj6RW6O6mq;^~m@;_>2Kx{F|sb?(lzE&kfjh&kyNdz*Al2>h?f5LCdE@SNQ~V<(2~ED zXEAKYqq^+o(hPz{Olg#3K|*g{0T z`_rd|^IVjJ4tZI;@#@`Ai8fbd2ugg;;MpMELMxlmxYX2hS3Pff^Y(8q-IagC@(b2KK}_`5c3^m6 z0LGtePKd**!1mP$KxfH-9?}SDgkXuIgesz5kw)HWe4ug}7QB^Zr$VCyrd|O>@iOA= z(HmpRoTUf)gu$5BS%XJw-pq51teOKq-rYK`;_k`0myMXUtD_D}3AFq<50)G^Ll3vi z&N@tML3@z^|vCb-a(K?n`L9=S^J_P}(C-E1pa7ak~#A+ox;Ko{-Nw z8F4ug4#;qG9L*?>$e6HT-@J6Z&-@Ote`hZ?X+lY)nhSDyToYm3X!i2L_}3b1GI!m* zbHNw#*3G#)*22S%UIX_W%*FNpGu_it;~BX2-tQtz%lPxNvtg)dZq;lzi1ICDkkcW~ z2gFdAESp?}l+O6VAlh}#{1oG8&HhgL6`d4QChcY$D={6pOILlB|A8?l<&=#K;hB1E zu92Uxvybt`iw{fEsNWcEV7|F|)fElNE1M;!+gIb5tLv0J<-flP0yGA_$`QZHR}Pk0 zPA0WHs~Z90=&^o;Rj$^^fDt-EZocOi5$?SZt+fO zmUL+T?i#m3|Je>`)GP`j?Gh9f>%K2z*9Ca9`&@9Pl9PbN?1)ma3N0ONb9?x|N;${2V5bWG7T_ zIxD88xD?>OqbD$N<>T3sD{n18(#fg1W#d0aHVv|Hv3U4dBKhG@Ab!A)d-^O>3kOhj zpzX9y%6K={6B8DsbOUg`B1u8ljZG*hGl*AHGKBte&egyLd8N9BCta6Gfik@gE>acU zK0rgnW5_s=86otdxOBJ4t&gIc5?M;{tAJ=f3EtxEKpM1@14vquMJ%-HM|VQ};CMJ$oMWbG_Y)eEA{4 zUFXF!h5pfHz+c+^J8L(AP9>s7M&r^@ZoDi5?}p5Ot*vgd&pe{iHri`B`m%&c2cWcD zqhU9;%pL6?&GYt?Sylg4)oClzeNY>(4tL?(>-G}puvLl?Y^;e<`;?@BO7D!L@Sfyr zJVY6wyVD|?ACr%=+d^lz#t=Omq(}31a~>tJP6(u$P_}wj0;>5m)L-638Lm?%T#NGr zu>&2JQJL+zEC_xcT?5%F?IHsivJup$rm3M48G(sYiwRS;erIlQ~ATONo4nMdmExwxh9k^4;l z?EMlS9;x^F7FN$?ji&Aw@o6pgUJbZ%9`$X>jP|LJdK-`Y&W?@xAAFrYnJck3i`(-L zB!&%cDtt0uao?)rWoH0wsPa4*^MP2q2Z<%RYt^uRj6fvVo@wH-| zKSn2-OF}lLCoShoWXVcZw~}6E?%P)8_HW@~F3UtEbg+`r(-mQPK)2yvb_gfd_;oMO z6)G*czT2-c_bVTEU5^vv$Irf(prT|ZwFN zyf#T3su$LDH4U9TfifT&EW6CSP|pkO1l8-r^vCiRay}b#=0>0VqoBikn>OW`BR4w@ z8e4VWuPA-}u+#G`f3_5p#+O9(#Fo*jKg)E{mK>sD|Lw;7L0Sbm zAE6p4H*|#qT_Q(CBHH_~hw}z#rkMR|OCZBuPC&Lpy^AdepO)x>*3;*N8*i!HOdUto zk16CI8Yj%Iczhvhu7Mbxg4p6Wnzcmf{f&C>R%*MaIk6?V^GBq2iSYsx3+J00C}wv6 zVZi_E-}uNSB^4=4rOYNoztJRp`u$608+X1YvoNI{BNY+!avLCu?qi1D)#<|1{adyO ztJA|IN_Z8C0W!KIiFfnmZe;>ndH6WpIIhl|k$O%O)bnA%jOzZQ2Tr-yAk0KvEInD@ zn6&&y@uf};MM(6y7aT1~RO(wA2=ZM;RAYOhRtWJLN-7pJTUyI)lEfcD?|k4&s}3ep zK8nFW#_b9lj#Cu|bZ9QG58cK(v`v0QWDgd#bmN{JU0DE^QIf9E{c1BF;~>s9^5!h+ z-`ORyT%K2`)qL^U4luS_4~)&_5i>H+UD;|giKq!^BTYs!_9&~_c5-IYOCo$Ae8v{>FxeCnF)Wqj?|AMq~EC9HyGlWX5D-mPEj%Zp18 zSp+(Q=8s=YA-HycbUyItTF_0^+X0YnyXLBKKTDg1w$SIDXHgH_Fdf&p-hb!*)*dMV z_BgZ0*EgO=mqO^F?Xtw1_UL~Uk(c%zfZG8mquNBfY}*H*{er*eX)MB+V{2?{!1^Pj z6T=@rx%m6e>OR`EV5vwqq3CQ=kLa0y6fDXH*d&6PlP}j-sgh;KH$&?7i>~F*Q(kM) z4m@Lgb_hxZ*3QPYemqQA5}6=zk@`8e;+r)@4ZfE+Ta46&_~tiTl|zQTBq`gsJ0$Y$ zpB<=@D;vXFAma#@t2|}1pOBGd+Vv>2W^6XfdXIA=tK0F_M@iR*fWTbHCfzsLgeZ1$ zXm|F@36Of5E`NLMOaHRxmCf556jgvum|7cLPI4$OB9e4Gci4{Rd279IjRl1HK%-Q- zIq#*0f;$9qUQ2HFhxT9Eg^mZCh1h#0X?2D@>+62`*mN#2E@IDW!rA-kmy64z45#&P z0*1d1KEC&4eYR`xOlh{w46ZnNmLjKG9{*?p_Jna_*|23woNwaf_s}fk3$I?z13$m* zyNvl~tOQEJL&yLFHg=fwAYcmvD%ijy<%#%Z%+`NBTD>* ztpd9SeKNb*m^YD(9Iht4YN#QVQS1rpoGL zr_lZaNbeUK=B+!{G_g-?9Ktqw_FZ{O(x;xdN1%G&NhF?@!#=9byxluze#R$%5l{lc zCXQ~4d<`S9+Z`1q)2saPz$h79>|NfW{0njv)nyEEj8PbZfO(Pz@FnjCRCY;)_<{>p2XGM>RnzYMOP8} z+q=APO8*wFd<^&Ws+1VY`X+KgPPYMwcRN>SJK@)NTj`o*6fK<;r*x_RQG5qv@ZR7W zj^pOej_|)Gc}x$}x%!B|xe7yCu6gvdfL>fx$i$mjOpQiXU+H$T*bG(PltyJwS}eYe z?l+D!)i8O-n%*6zYH{kI?>PMz8V17@#nPeMpl1|N!v)d8}UBwX({D>o}xIi zS>W7z&EtO*op(H2ZyUyqmKLQ}ZK0@Ej4EnNRcjV4MNvZSP3;v_QF|4oMb)kmJ8H!a zMeP+kv1ek2M1F7Hf6wRqkY_)`l@ z+B2RKj(Gk{D6TMYf<4P=v0eTFJRYz>ef||IabSWCLZifMMtOdSj5#&EfL_T|s2qKF zI2@k1%W0o*V}Rz55#4f$MO>BekQn0zs^;_}_W02Q!FewKZ3UVc;zAD4%Z+2z&oV9@^H!XN4w$6 zE;opL$er%1$^ECWG>iEmN2o7DjvHYj=3n?BSj1=k%X*I+U60c!H_s-_%aiD*CF+fM zm2+_F5s}X(vmjNyL*$(1(jQ{>n~|#OAX_5-NqIS$51(ij(=o2aoF=*t3#A4iKi>rv zhx9)vRVh2$o;(j?tUBniT?%8+?XK}nv;xEC8_twJzWc$v56qrA!!J2o)$_!u?3Oy4 zJAJ6N7V7c%kIdG~(mP(^M}vX|CBjk&z}IY zf)}k!D8nD?l~%XVs>glo|9U$==()(Nub<2VDj@v0+{!)TZLIKT_ajbP0J8=|zAJ@w z-rP~dAh225ZJ>)|+Xd@#{u#%$3JM319Vw}J>i+ikjKv`ePvzqvnCMuH7j zM%PB~IB}73m7YgLc8$0ngx=IwlhVVKB(DX_wD8*)y;&%S3S-0KAGCipcXDw2$92O5 zfCh1|?54#B=-oF6&dV4?E@ylje#Wuua$7MuBd26(7zgoQhK|_W`TDBo2HqhN2r z=aS!#aqL_M_-#1B&W8@UoF$7kHOV`Ys)WJYvLs7~OhTj&P zt{}NLvY7Rs6r_JB(jL|{66@Rs4#_~d&AR-3*V^fK^oj-PZ4yHF(Mc+eLy&#|phKF# ziz@&mhOmZ-L1UFwn)TTUc33?qI-hyD$G2in_GINf(=VYX zdJA9Pf?MLd%hp%v(muNEu6zdEAwJp3DmyoO8Xt}cE5C^xxB ze|`vIV)A$?Lswa!Bhk;oRde%&ee2E`t!DIjlml$;wBtaQiopP4>(INxes-J4L3q@b*3&anX*GQ|P{*CxV{ZC* zbr7kAU<{qUJc0dAVjbM}ep}_37mJ1_TqVcL&_X|hD8+S){MHLnivI=dS*Q;OJiIh^>yP)ri4+g3ZAgMg6cPKc3#HW#%ulWBg zKZ7`KDS~Uq>+hyHxA3M}$)5i<1Hd#d1H@P!UHARa_J2~axOyObba<6;&vb}uj^rJh z%t)_2Gl_t&=3i|QSfFc*poXnP6|vTU$+zMCK0}(T?c)uf#Z6tmK4hZ!#tY$=ddvZO zh)Blm5pPZ6--Re8XszN-p{(Y;Px|`}UF4N(>DIpfN47HE7sNoi>rs9pgu{h2E+VNB z?Y`^EcIGi+8i#Y=Q?6o2fj+@+a#G6#hQeM}oND!2pa5vph8cpM_tM9}Q z_uXcYC`}G+QWnicHazCObmmfAqG@vi|tu<-!kA@O!CQvM`+-DZBF} zRR3ms9ZL6i`&C%JHsOfTve?wpeQR!_nDfns#@nlIQ}e*Y=_HDX^t^B~PzD4J>Cdn2 zh0xW&a9vmt#%q{DwwoJ(djDb1hA{Cv>)yNqePFe~`Gf1EwekBkxFKxxeDu#}-(OAI zzkb=Vc0BYDbUc>yCM+`H1YGV<^-^`6n?f5^pn3zzRk-8DESOourrNnL@=!uTblofH z$-xgsWPL-Apb7n$92ZFur0Zt3lZDJtau0!7K4YCqQ>S@VC?3W4PDb-b=GRjmI89@P zg;w$VFLHLCl)R+Owz?_dNq*u;z>wxTVL4x4drOAu)9$X&pDcR)rSf!RY3VbeN&6q# zaPhaE@}y@cphv_KekY`V5p?Vv809vEED%R*sY!{Oav`#4tv30p`Q4^1pC(zx_Y&^b zRzsI}=^3aC*ijt|*M;!aUttaU2O6jm352Ee^m6xqWLo0~r<&%^?-cbmVWgUj+~Qco z%{O0fP^rAPjU(W&)KR{7m9 z%pbS?18E&OiL+4cw=1j}MRn3|)-KVqA1Em3rIF;gBplII{{6k%#VWos%?GpZJ}^ zSoWpi$bVZXj$1xtKK2uG{}PZ8$^*Png=Ba5qWL3@1ByMn~XF)h@kz}UhWllg4c6E2#qlP}jR zHGQwx&Rwn}SI5p`u;9L6qvl|LS`QmRhd~?41Jf-!P~fKP$qkV2N7_R<%CiOSPk*Ox z%cmLmvnhvCt1OXmlXsH6U22bdG&hg)T_Y)Jsk{AnNh@t}M|SbfBhomjE0x76$^1uF z#y_3E>#b>8N~pRv3+$WIV^^PLJ4&wFNtt|<=?s@HR6Y`v5!jaV)@#5+$T#)bpg>;6 zQglyg#oT&^$r$Pkz_{!z>*npb@#8873;x0@iy4zVeAve#K?JYF*Yh(+)=b_T!^3dwOY zk9h67ZQW=)JE5RZOLJ+*fyD#`>|5!I_~7{&^^ivZf7XBNSGTs;($J#o;Rw=gWpk$Z=~+kH56d(LB4;s~|9V!p+BPukr%IEHC%BSnsWCd5#Jh z4u;u#dz~4gfjQQvGF^6A7MiN^)m7{j{JrRub#I4TgDkO^FR|%YN^*PTs%>TfxZ7-4 zR=3>oTrp%&si($4l%$(Y!#vGjTcVnlo~?Ii(u*s+8QKRaCfvNv^$4*meTmYK;rvy- zC<$xj^Pck=3CwU_%Kf@Cw+?q0rG1AhHHq)ZXKHY&98Shp484BS;=`9ha#JVTBGwEfh)@pu?B@}(sj&g0*k$9G*SL9@`76V|hB zey3h?u+mkDe608<=mHm3d(m39c6h2GrrqHXjDp6h@Lm5rDj5%9@N`w;^59R}GW@(B zeBH)=kW4s6-+A1B7>gJoc?jlLnn)_?(Yck*!p>#tIOJZRgu~`Lr??lMrVF9d&CSGh zzQ{(%2|9^fU^L7<4EGQm6=u&P4vxyd%^&#&`{m1vR1r$Ml9H8-QcAKK_D2*yn&gpx ztS?Eg%#DKU+=i6}O7!6$Z0UJYppu5i&q3DtMmSgzum8Gv(9}JdX8alRMm#w=k|OFQ z>*?I9cEqwH7Asesr6jxt+JA%hg)Cf6kM=uYuBUecqSfTERPChsS@9USng50s=qq_I zzZjv7Ld`oJ{|3(v83r_vn)?1Pu%KS}7c=9C3Y_2Ww7V}$-Lx%Jr`TKc&`A|qef7un zL;xA*`Hl=jVm>!SG$5uA#4Pgw=Z#V9G+{Co>5`p?HqIYt8r!G1Il38jJY#lB2MGUF zKWyzpvL%C7e*qW)y#U4rmlb*fIcAsKy2P1Q=<70HuAHfGY!hsr)zhyANpMh#J1;k^ zo5Jo*wT@jD_JJ`5`Z(dI^#LmPVLi8Hmi!J_mrYNb?>+DHjtSITR`7*p5#_?V3`y$f zaRpP-c4XEU!m#$ej868WX${+LYTa@XH^vQ!MQxINk4bb`m%2TMx{m<~Go0+8Trle? zaP)f`WSc&JzqmPvVx!ybQtNf6*QqjapiTJKP6uG}{$!=0d)MH?)K$*OiPAszcTQM8 z1J52cOM623u2xl|6V++oO zn?RQCX7Wc$&2?(tIei)im*3{|j-{C^F!bbmW|CTgPiJ#+JR-oRKjsYlCXV}|F8s`f z;?CBe{V});B7~{l<0v@XYl(qN#xKLoK2kJK89FF!Udp5@OFHH$UdIHQq}B1ITYThOeeG6VPv64Ka5?RqC zv`J`rfX3@kHSPE6=EGK!38V~GQeQhZzQnnlC5-}N#P8h~(kD6t6-%!@&G>lb-=16_ zqK4`62$3Y!DT}URbIB=D+td?nzb1RaXo;*lvL-8xGT(%!JZ-cdYytzmT*kf7n-mBg z>*c9HcEn+Y&mEGKxSnPNP24*Cg&gq!cHK{Qc+R0e0T=0bL>#i@n`~5{ZhI7R)&Bcf z;E#N3f`1PHzLOeh!C}wI{yVcmkvpKJzEE#!eE$yK)d@fs;;!U?`8R#0>$hNo`0e~r zmV)7BibiTe;v+pf;7<|f#YYR>&zy}drm10}N`%wR{$%{!UB9maokp5;{>kh$BB0ex>z z(j1UU4t9=r%g)fD&%ih0Ux#&Z!5#5pAMO~gg*2J1)8>P`9PQ=`%h*Nq@d7-+6Ax7B zelA)+I*%h%&D2_Gq?I-Iu8rf)fJ(-o*c)vp#}Mk@BoLno(COo2+Z(|qGQTuu6cREG z?h1gO$ZEHu6UmpUT5Ylt93uNQwAU)nVtqq}gagh;UFYNgVph{h-=t>{u;tyB(Bd!o zZ#@fP+J^*6j8q?(M>;pScbOLJmtNomVVPKX*G8O3P5E1%pYhbk$VhRi!$?SDa(y&5 z(*$xKgL+w1yA+Y4h&Sxu4FJDS?&;B)`IamtA}~m4<7M--2<3OefyPTB!4^26?PH}omq+MpvH*jm*{w44t*v$51uO2x%USroZfG2V_jR} z3;;c=AOBEuGBf>7S29H|#jo?qWDLTF$&U=N;nWel;}p~p>7d;O%-kr6hJS98MZ?Z@7t6bwH0MPHXk@OoG{& zM(iM6v1rR(!RKgOkz{ETjv;7aFU%qlVN9zoJQTvFr%RlwjU@|zb$wLePx{8yWqr_a zh8SgSxak5o)$M19h{rrkzw-rq%MqBo$U47i65 z1eUzf)u!A)jQ1+{82k&G0(hVsju+43RoOic#D=qk)FzqZjQ)Ud4-o{G>dCd~_Sw$S zdF0h2nbIZt!U|;Wj#cS~BU6Sj~8*D+~WFGy1`9K$n@4RY(6VV7~ueSV7M1xjGTOpky$R@ z`t_=I*gA7z*b;JlXe<)Mn5Qw(!9c2lN!=yY>jJn_ya_IFwFFEZ;0{jPIIxrO+#6$f zT!t9xAA8)c3eEqI%)@1cBILt$b>k*ZhsoTL^SyD4NA4}!dtz!7jBjtU+jk-?^+{>D ziG`-yO<1R^4f?~M-E-?A3lJsu!!Zm^+P220E+OyEZe#w_3Ybo!K@%TXL{E zSu-ya_!j(%aGq7-$`XjoY9vv`w4gbLoBak#6*2b zrVc{(X`N_rvc9uFrONTK`9gPE^+cqAn?6I<4VrhhSH>en0{h8Q;qQ{$^rbJWrH^X4 zf9dWzPmMSFw*%{V z*%@rpg^pMpqpn)C5c`_%P)pWdNH{G6HHwF|fXqh!G&R^8$a853w430CN(+9HGRz4o zIK&#zpspr?{FB!y^l$Q)7z>PgC2}TulkGW2IOx$P+?@#A$#-2IfQw5`mbe^mp=Cc8 z{?RH-HJOws>gOsU(jtWKo+G)gizi|?znAcaze~8_D?8q zN1;+ zI#`>rN%`_Kpvxos$=u07_H^#R2K&P;cAWTR7la+F6zvnI2rPYbLVkRBh6Gkz{~|sh z1Yk9~#RS&!~sYTszNV^%T!s}BD%-s4n`*~Y2 zUj#Cn-$+&U8%Gj)bOP#sOcbZOrQs3_9dD#wnF7f?y@`Kf@R7Kfc;W!44w8-~4On6z zjJrWd$C%#PD!QwxznA^@|5|*%b5Zp1aclCjygVgqOy&G8bKiNp*0RYET$f_fE`)!+HUp)=pVO|qM0L~ZISq8=WFUt|v1qOvW1=lB#;jlW7E|NSP zxK;)4$&WO%^)xFpZfUdP+&s6E&kR(kRgQTk#{=BCyI(QU!FWxgemU(iAlX(k6R`m8 zue7m-109j_$JHMcE%Z^qgC&p!tkt6aPU#%hQdwJEti<Cy+!DETR?~d1zGmNo2yJm#e)6` zpZ_3n2a-SMNw;D8t4bGlGJnrWc+vJy4+p&4@Dy+jq8e=sa8LZHb~AteK0EsnX+z4J zCVn&fk8HmSGm6m8T$Y;<^QATN><50y)Er_ka#!#IkLnXxHHfzZ@rofLn57jGGdl7_ zCAoY_m+rOGQ~V32Az;Mk&t%MGc_uYmGV3VRugYLK`SR^BAg6nro2?^ME%3(mVRuI& z2GG@d#I;znWyQ&fZZ=uE`4xIkDlSd7K@kx4kVmr~ zN+V3HlkT!M7l79HvpQ?aT>Z;;VdfxaGqLL&E9!nv<-P4Hfi4I=_T`sp>Cbp+?DZx&T;LP@I`Se1&&{`+7z-97Ub1M2i{H^k8;b5W|s)KiNnoH_{Lt z4j?lTLqlV)B)S>ssHeB2h8eP0Tu!tEQoHY;*(--b1xSwD#IU}rN-&!Wu+qi`4N>poY_I8N+5y&;=$=2)seNWGpEgPQAbK3o68EP{4a2>3YB}c#ga73x;vs+G?N;U_~WY0WSpR)!o1?|F&Sg$Vd$^@C~pQM)X z*A=R>QPz;Rx(t?>uimut=*eZxL#x1V0^V zY?|K1dv`KqXoR_kLSNu6$I~IEk z%+&9MnhZX@+i*h8MCU zmfoYM{Gk7ikf4{Cl|-Ua0KyRG;Bha1ZECtCZbFVlgWF4;Rgx3RE~EpINi1-hQ83PF zar+fgK7}r?rW<-(`Z+mYZLHJE!L&;HX`8&Yi}i;V`@Fojl)}yzqrxg3XEUlIqTTHO zCV;sS)5U5W$7sW7o*iU#fx8g?g@!W}U`D_*#^#!Ok1XZesV6vTWbjxJ>zb@X`g?wa zG?R!cc#`~@?>hCcLvlBjV1kQhUI?(K0@;32ZGDmg`n5Nw=@c5 zie!o={N;-;-AZ;yAim!boWFiOBqL*s2$v(H7dgnw^^j@R9BqhPh#Pp)buW8!33kL1 ziu^Zz1Zw!f=CK5QGbv3zxiiyqz-!lfWIfdgp0-a?d_4N_gyqyMNoUCM{zzIA) z=KuX#=;`%C%GwF&>eRmFgJgO+!C8xMZuszUwUb)jRwF~?<6(V06u+m*swM}2gJ{k1Y`XUs#wUGG4@zXH%GQvO( zpuPV_BSv|2e)M)g(t<&K@|y`eQyXgjlq~^dM{4rx=5`Ez=T&EqC%GNyvD|vF2?@Q~ zgeyY!%m>gTQ73=Zqzhd_bEGNdGqAM*J88G~?}W@ zAtXTl@!r5{bb^!2{QKb1S6Ootq-2Oa|76cU4JqDt*Kb~as@a$9+=TxcjRG|R!b9GT zZFfAFFLoCDd|SYd{Xeq0>Gt>E?uh|Kxj?OD&UB{_dA0eHHPx$!OKoHO~8%sLC%mcjFQLJb1T%(kOB(s%bsx z8C$<60`H zDo$Bny@ajXdE~3JvmLCML|F7aG@7B$36*purz2gb!e5t=WW?MXWr#=c5jNW0UN%V6+ZkK9TwP&t6xWIgL(9uL_K!|vN>4(L~qy9e&!Qz%|_H!b8L?xoTUFLP{@ zj))!CYxF|uEr5@&H*pj^zk(AE+n23^{QZA6)PH0RJQp!SShn5+Z+#|nq;RI?guII5 zKFamL0HWsE)$u_xx8T{;4|?i(U_;2JFtfkI7y*d;zaJfq!{g-$ViO(WAvP9IyLq&I z!=13Bn-&Z83>kKv?=Hzc2@E9jXzt+Aq?;$NTRLu#$e`O{w;}iC>e5vs_lZ8^`E?_; z^%<@#0;ywYEUM){G6qP$2~j*d%!yixz0=!@V&>z8ifZRT|ll9&N zC5AOh5SWwu(&u*JtY_xRcGC6|9yS7(HQ8i;iR(Odj0xdyQE)-H8we)?iiM~+d55s! zsM*H|LL{cgEZduMt<7*c*JSqNE^t=DT?LysLJqD=BKiy(ceNLyJWn5oOhhgysX5+_ zy=BoxFUKERyTEFq^QfdZ<%J#_yxL`SxOU1j^+e$@`y-UlQ0*M@)r_QA(XAUcKP|JX z%50e)(CiCT*$OREiOth^^(#=mQz)sIv}O?|GugydzSy1mn69!L#i~d1h!dIlE7cwd zf#_1X7*9R6+o*r2ze_q|X?bf1N}UGm<>p6Dk6s z9=)oSNaOl;B*{;(J=&)81+PEvgwGURK^oqe#AEpyhv_`=zWFR#udR8oSf_ z^vP9{lo98v=%KwdJ*12^yOf~VvZo#5P<-Pj$!cKP5Vg8D zT)F~o#_WWs;CWNVr@tA#=WDM_5*c2i@f>1@Dn=se`zC#B1-0jmTSHucMB}VFQlZq2 z$*X>Wgwz8LyEr)Be3D#9%2+dAq4;iqO{!Ye6u;R~K$E>Md%`__u9l?Q|JdbB811lc zg3@Q$mI|2EOGWC68)d(vgY5ewev&pGal$L(+IU@DVUeq@iE3&H4nb&$DFEnw1a3Pj zx`y=mj{x(z16&Y!DmWe#FqvT~CQ;y0xFO|J+XZ<0rN?dLkl-9*FbO8zoFyQdx17+6~x8`c2y~EJCQG z;MVofZR#bD!^an^=cmw@THJcs7qE!1)dI7bNIb7|e!WDD>w!<8uX%R0jIJK(6V+*p zo%=Q!KxrN8#crKmLnaB%%E>s}#BwyrfrIj!Nj)_jW=?pigqf+cN8T-Q`mVFr@rs>=HN!CGxe&uf3)(gV65^$=Cv3$iUIBLDUs$RZAaN{;A|3}9O6 zUnYmgT}^mWvf#(zKEAs}L7e{#z2*id{+z=)N0Bk8{BS5L3Ak21&mAjP{SBiKl1Ly4 z&YDA*uFD7vSXbSWXS&q|PRS}u*o;xHq>7|7!m|02P-VvlraHf_&gz~Q*s1t{x*_Sz zQO8%|JDRD%S3OubBTDn=#!_uVAw7aKL~eqPrks zIfr-e$<_3uM53Bdz zpGz|fFzEIG8qW}5$LqFTitorc$ky&t`y>u7@X8W%h@~;p;VNMeqP{K*m}Kq@jl%Ug8!~D@y&+3pDfjUU~Tk?F` zGi-{uuN9f`s*L6~7X;i5zn%7%_JQLp`@w6jWO2K%l6+x#(`WHF^(0k%QQW2F*BXSo z7@p*V*0p#5a^ZXe>&eUc38hhs>1)V)`STq|U3STYeP z@ob6xJ-iI)+$72sg_l`6C}RW`upe6?<;WohJwN3vy_37!6%i`(Qw^zWTs+#VPOb4= zKB>K?VeQACsFklnfzA_hK2u5m_=Xy+C?`6=3d0Yr1p*X@Y7aL89-(X-E_8((C#$U9 zxxE$iLOa`VJ!9`Py_fnes#o5K8{KZ8^R3A3*t6%-Sg*K3bHC=fiPN@%$>z7VR}~{u zd0WeG3TR%xj+2s|0nlTU^-Tr-K> zSK?T85o)NJocthiCR`zTX0KFR&1~b{MI^(F_TFuUI_geDQ1XR5^ z6Rr8@_iNt&^g%JsWObA6XQ`$gZ%#K;eY&hYSh{M2wyCMHBtOQvYu>El(^(l8#i5T) zqx=SQdtE)?s8 z-8brKl9MJMM{?0VU_yIZC%N#hw)dBx`&;Y~z+|0Br^^JvHt!=k0!VaC01CRPFC3&f>bz%BHR94)@+Cb~?r#a2lx& zKO!)L-#=v|ir@_LeDgCm8WvOb^2So9HSCnmp(|p{+HI}*`wzE1ZTj^6qKS$V0f6fgVIq1=&| z|2nfnP&oHG)57g@VfEL5=G)6sR)X1F7k(}2 ze3Z;qA!#WTm7PJHr(DSTYoN~-^5dkzTBaOcHxoD?T7E?sH5PYQ&UW+ z=_Df~b9SQCZmShs3ScR_IZM0szsxRkwOkfWx@)RiUrhd%MKu$=!3K_IsDO*kvV^V& zF=cw)?eXV_xWJNt!k!rrXNXu#(qg>%QuF1D(u=^0JADucK^g0dh#79`%t%CdoJ_JV z-L{mKN7n9K&BlnLIm9*By%8YoOSDm#z?-c76=6^hf^}C#4!cx!@UwQZUkEL(2yn)F zXDU{_``gVel8kfF~xcM`r-}gG94->(EShk?m&3?WR zzW61D&=xTciL4^=1Hv5gV+z;0Nf}Dp)y6^wTs47NPGVd&Lk5Qp=7uAO+WVD40ylk<2|=h z_i;oiNjup{V#Q}fSq{b;uLqfwe(G!H^%JJqs3o;bAL1gtb9B*1N%HZy5XQC)s< z${0^6!J;#VlwF8!|AvC0IRJ@ZZSn$mqA9(_5) zSW7esDgPDj-V@m)t{4Px#xSrz24>**q;-xMaoW4c?p;A~>y!gyL~&?|(YLXW+K!j5 z?i9b1TOhXc0ZCi0np5}9-7)Ge%y_f$$n2U4*;40iB@*Pn&ywNWg0mPGI-y_y)%M#> z1jpY@$^aztqB`0)*`2-M3QCS^B7^fU8vQ*#V+S`YcXHms_%zYCG*qTzSp2Il1o*<` zuV#w^+!rggh28TrLj1h@rJYLYM5{-OhUDCf@|Epue$_SUyt@aq>!egNvaikEI2p7x z-0Nf=Q>A!;&;Iz+r*g@RxY+wforMV`LYV0g_ubrm8$Vy_mvAI0I$-tti=>B)FVd~VD0C9RB93Wn-ny6dlW- z<8M0jN?nGxP}6L_3n_C0NRi0Z;TJYFofVcE>5)>d?nMUq&kbtFc4i)jCjJr@RWNWd z=*{$EAN)(+FKL8^wZu9Mkj7M*b=(BU^o6p<-cJ5cybLB_pe9F0?YV zWLd9Nu3UQP=G4aBqlGcw&fht?QN3*Hlf#Q;UI)(@caqB%BR=5J+?(;E3>G~fhY1t` zT|35AiEZqe{0*UFp|{S1;2R9Vvc9A5*=d=alJ}JFR*o29@{()*~I(D;*EE zPUaMIOOvyT-MW6$Dwz+j@NG*z+q#i76Bbp$r1x0kp$;I&;A?7=Nr_rorkq#E^dDIfa`*@E5mAVTQ|h=53wAJn<|Ee@t73}?ikcAcIB$l$ zq`u)-{=Al8P4Kx+Rgn$>woj?B?I9h0Nc>EDXrFMeev0q)$MG%PSGop=O~YMzP(+>t z&IC0|=WJ-M;~*gTEYpsf#J8M*p6-ykrX+(q;nkQOZ2BN`b0ui7!ShY}VN2fc&I_LA z9q_O$fko$>VV210YzFO3zGaAw% ze|Z=-UP_x^7T-ls9x6BGoF3f{;lu*IY*MU-X7XQTw_x{yyFwUPx@US{wvGGSh~~S& zpX3n5KA9$d=O(eGTMz6hSg7fS^;jP6ehi@GaVbFEe!Cw!jTglku5NX=Q_S?JQCR4$ zdgP$qyVGgt1v5Bb-yc7Pv+do3`CHza5N~vtTs8lmU$6dNmDiK@v{N~JD2V2A=v@3d zyhA0#c*<2N46Uo6e=ES}?zn#W3!AoVuNf`}O3I(c>Fl6xmn#zz0c3$R`=xD@07QpK zIrBw9J`68xqz?37cn?XQfug)ysuDYier@ur@B~YRnIqy87nnY4Qmm+Fk><2ZK;ogB%*q#ir5T#SfjGm3ojJe;*s2fX(upveBH_(a-5Q^22}e9T zUiU?NlOyET>6@#O$Lc2`@kZo#BaX41JFk~ITiK#~VB_h!j+6V&pCs?Cq+6|$DVX$w zxk2`cH+|+wTKU6yu}_~S79Ms|Pe0o^g|_;XXEf}HS@ds^ks4Ckqf@Ta`!AYs)XjTW z#woe6KGn&c7Vf|U8Gy#r^eSs3w@YZ}d;c%aY_ON#V#*RHsc^Uo}Y=(f@8ZZM>nJ zWWL^%AT8FaoEYTLDG|Xdcm1o41a(p3r>(OZQo?(4KUCO)O*Dnsh0SZAE)MQgEoeE| z2xZ3b^V%K!Wl46I`Z_Qqt0x&p%vYfx&|zdd^Qk3b2r7jme1RtiRA5N?lY%x{)sg{Vu2;OOozpF!grhe zcM5fyfP%x~X`eexeuVa$o&76vrZP0QQE;x+v!8tb6jCQDFUO_D+#1y2R!yAVZh8V|&lTv(%&5+kUW#8U}i(H1kQn<%N(cQXwY_NIqfl-646@ zwm--_u4DNXMl_A_ht-GrgqlSpHi zA-M~SHCOB8=@)msigQhkZ&d`aHrc$nl#4TykbLF0`%ZR15IM|pt)y|!H^aKQ-- z){Z)B?1*)H70dt&d3{6HA8OzACW-m*ph5+Jz43SA??3ZW_+_6Ut(&X=?kg${%DAAO zUp;j3%vAO}u#KO0E}9zP-o6SOIp41{NEN`x+Jd%Y8^-QR4Y-WNc>;V9ltC8u-^8`U zIE$*s=6fP=&S>=DZ5z1WY%M#8&dBjJwz5iP>gdNQ`zrpeg0%fIiDpjjp^cF!PTElv zBdtIR{vZab-kv3`% zj8$ioGFS~ABi@hfDNFSl|Cv^ywX5l$c)@0%&NEWo1Ec(}(Cga|pNb;EbKCdQ zk#%*IKP2Fdfrkr^)JRMxFn>lkUt|}xk`1y2#AvP~R>vOg9r^w!m3mGv&%4QJTXH7H zkMiWGe+8rS9~n;gKe8l(mh2Z9XmpVF(xQB(f9;8AkK#x3yLI8cCn*Y(5PC=_s6M%i zfj!I>N8N+8t22F^Mw?vQKMS3uF#UGVt)pE(2oKYTWj=vrlLt>P>F7SGh1Wi#etr+8 zI~Tv;E${nK{9r~gW3eKfL7pru@9U^IRr9-;MdxnyW~YG!$U#uj^dzGEr59(>n^nZ# zGjFjZf5UXW#;=Hbw$z^_Cz_J`v&_-4OrjmU;G z#&J;@A(2vD`&gcpYFZ1GAA>3X00fr!sjgm;<6jsEV3VT5ZZf&_CA$4aJ*(?)gFo;~ zUw~f>uVd8wPYm87yM*qI?w@++jP6l|Zk;iK+P_jYH%VZN%k%>kVigF#I{fWfy>~51 zqK}9CH=$@Y5m@N(i&TklsDof1mjm#kR-P6xrXQb5+=dLJGZMHQVzS}=+j)|l1w8TE znvY@gG8s+0(5g#-X* zRFJ${gr8`10H^C(6KUbt%Nr_%8QbZfYRm~O;ErU>O@exg*0X3*+ITkY;BtSZah5l- zeYv55bGMI5(bVstPyic9^c7r;3wFAS+Dhto0$owmI>rcH)MYxcZX+1dO=~=pZuiJ5sH;?IE?!2L19ite=C^F?a%Lt)I zk9ql1ztXE~f_+7rcPHe=)9qF-zvKEL+O5t103e{fvN)}hU5$*Z`F7YtYN&kN02z3$ zW5gD4M2N(XGt##29oF^@q>L!6%|MpaA9p<~Ic{R!rwOi4FW6Sv(;RwJG+z*0$7C(# zjDyoS#%jL1#nR%o^i@~TC1)8Urh8VaVs2#KTt#gr+dweYf|s{;)0c2n3C8ZYsINF^ zhxmZd}vgaHczXVGk&gbuA6@h?lKqI)TP=I1=`U(K&b-S6P zyb7V02kDBn4W-T8KWSGW4#f4THSj!`&!Jk`w&KiV(ttUpytoI-omX!`ij~B6!+dBt z9S0Q+(LQ1i_Nlv=sU-9mt!%BZ6n@VI^q7E^^#-mckrKzaob2@LRG0T*Bv5Znmc3`ox&m7R9bU(OlGK)h|Jj~b*ze|DXzGku~?dTpn0Gaz9F$wJ3x zwQfs2qQ(Fx%smgFu695Sl^xF#B{#4gKA&uXkIjZ}O0gB4qFsHS@L_R*=~c9_Jj3)A zp{xLP1XIus1!-_HWs1_)<87DB2TXg`-kT<#t>oX~3Fke*u0C!Uk?U5|nR0zAIc^4` z#0B(`5=tJJ=~egN>2r`2vio)RsqG0f4Ek2WyS2iGB#tRHU^ABX`e0UO5u literal 0 HcmV?d00001 From d517c7c2c62f31143d16f7b917434a91d8f979f6 Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 1 Nov 2024 14:25:51 +0000 Subject: [PATCH 09/87] tidied up formatting --- .../microcontrollers/yolo-on-himax/_index.md | 3 +-- .../yolo-on-himax/face_detection.jpg | Bin 0 -> 28018 bytes .../microcontrollers/yolo-on-himax/how-to-1.md | 14 +++++++------- .../microcontrollers/yolo-on-himax/how-to-2.md | 6 +++--- .../microcontrollers/yolo-on-himax/how-to-3.md | 13 +++++-------- .../microcontrollers/yolo-on-himax/how-to-4.md | 10 ++++------ .../microcontrollers/yolo-on-himax/how-to-5.md | 15 +++++++++++++-- .../yolo-on-himax/object_detection.jpg | Bin 0 -> 17517 bytes .../yolo-on-himax/pose_estimation.jpg | Bin 0 -> 31719 bytes 9 files changed, 33 insertions(+), 28 deletions(-) create mode 100644 content/learning-paths/microcontrollers/yolo-on-himax/face_detection.jpg create mode 100644 content/learning-paths/microcontrollers/yolo-on-himax/object_detection.jpg create mode 100644 content/learning-paths/microcontrollers/yolo-on-himax/pose_estimation.jpg diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/_index.md b/content/learning-paths/microcontrollers/yolo-on-himax/_index.md index a053eef311..21e6533696 100644 --- a/content/learning-paths/microcontrollers/yolo-on-himax/_index.md +++ b/content/learning-paths/microcontrollers/yolo-on-himax/_index.md @@ -20,7 +20,7 @@ author_primary: Chaodong Gong, Alex Su, Kieran Hejmadi ### Tags skilllevels: Beginner -subjects: Object Detection +subjects: ML armips: - Cortex M55 - Ethos U55 @@ -28,7 +28,6 @@ tools_software_languages: - Himax SDK - bash scripting operatingsystems: - - Windows - Linux diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/face_detection.jpg b/content/learning-paths/microcontrollers/yolo-on-himax/face_detection.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ed70940f335e0b96a954cb6178bf3498094b4eb2 GIT binary patch literal 28018 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/pip (python 3.12) ``` -### Step 2.5. Install make +### Step 1.5. Install make You will need to install the make build tool in order to build the firmware in the following section. @@ -73,7 +73,7 @@ This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. ``` -### Step 2.6. Install ARM GNU toolchain +### Step 1.6. Install ARM GNU toolchain ```bash cd ~ diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-2.md b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-2.md index 3d9dd57298..7b21f37c45 100644 --- a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-2.md +++ b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-2.md @@ -22,7 +22,7 @@ git version 2.39.3 If not, please follow the steps to install git on your system. -### Step 3.1. Clone the project +### Step 2.1. Clone the Himax project You will first need to recusively clone the Himax repository. This will also clone the necessary sub repos such as Arm CMSIS. @@ -31,7 +31,7 @@ git clone --recursive https://github.com/HimaxWiseEyePlus/Seeed_Grove_Vision_AI_ cd Seeed_Grove_Vision_AI_Module_V2 ``` -### Step 3.2. Compile the firmware +### Step 2.2. Compile the firmware The make build tool is used to compile the source code. This should take up around 2-3 minutes depending on the number of CPU cores available. @@ -42,7 +42,7 @@ make ``` -### Step 3.3. Generate firmware image file +### Step 2.3. Generate firmware image file ```bash cd ../we2_image_gen_local/ diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-3.md b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-3.md index bbf1d2b72e..6a3713ba84 100644 --- a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-3.md +++ b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-3.md @@ -8,20 +8,17 @@ layout: learningpathall ## Flash The Firmware -### Step 4.1. Install xmodem. +### Step 3.1. Install xmodem. -Change the directory -```bash -cd $HOME/Seeed_Grove_Vision_AI_Module_V2 # If you cloned the repo to a different location replace $HOME with the path. -``` `Xmodem` is a basic file transfer protocol. Run the following command to install the dependencies for xmodem. -```python +```bash +cd $HOME/Seeed_Grove_Vision_AI_Module_V2 # If you cloned the repo to a different location replace $HOME with the path. pip install -r xmodem/requirements.txt ``` -### Step 4.2. Connect the module to PC by USB cable. +### Step 3.2. Connect the module to PC by USB cable. You will need to insert the FPC cable cable into the Grove Vision AI V2 module. Lift the dark grey latch on the connector as per the image below. @@ -33,7 +30,7 @@ Then, slide the FPC connector in with the metal pins facing down and close the d Then connect the Groove Vision AI V2 Module to your computer via USB-C. -### Step 4.4. Flash the firmware by the following commands: +### Step 3.4. Flash the firmware by the following commands: ```python python xmodem\xmodem_send.py --port=[your COM number] --baudrate=921600 --protocol=xmodem --file=we2_image_gen_local\output_case1_sec_wlcsp\output.img diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-4.md b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-4.md index b059ed6948..c0fc075bb3 100644 --- a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-4.md +++ b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-4.md @@ -7,13 +7,11 @@ layout: learningpathall --- -### Step 5.1. Close the terminal session. +### Step 4.1. Connect module to PC with USB cable. -### Step 5.2. Connect module to PC with USB cable. +Exit the terminal session and connect the module to the PC via your USB-C cable. - - -### Step 5.3. Download the Himax AI web toolkit. +### Step 4.2. Download the Himax AI web toolkit. The Himax AI web toolkit enables a browser-based graphical user interface (GUI) where the live camera feed can be displayed. @@ -21,7 +19,7 @@ Download the Himax AI Web toolkit by clicking on this [link](https://github.com/ Unzip the archived file and double click `index.html.`. This will open the GUI within your default browser. -### Step 5.4. Connect to the Grove Vision AI +### Step 4.3. Connect to the Grove Vision AI Select 'Grove Vision AI(V2)` in the top-right hand corner and press connect button. diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-5.md b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-5.md index c303ada772..cb6ad788f2 100644 --- a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-5.md +++ b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-5.md @@ -15,16 +15,27 @@ Change the directory to the where the makefile is located. cd $HOME/Seeed_Grove_Vision_AI_Module_V2/EPII_CM55M_APP_S/ # replace $HOME with the location of the project ``` -Using a text editor, for example visual studio code or nano, modify the `APP_TYPE` field in the makefile from the default value of `allon_sensor_tflm` to one of the following. +Using a text editor, for example visual studio code or nano, modify the `APP_TYPE` field in the makefile from the default value of `allon_sensor_tflm` to one of the values in the table below -|Parameter|Description| +|APP_TYPE =|Description| |---|---| |tflm_folov8_od|Object detection| |tflm_folov8_pose|Pose detection| |tflm_fd_fm|Face detection| +### Regenerate the Firmware Image + Go back to the 'Build The Firmware' section and start from Step 3.2. to regenerate the firmware image. The images below are examples images from the model. +#### Objection Detection +![object_detection](./object_detection.jpg) + +#### Pose Estimation +![Pose estimation](./pose_estimation.jpg) + +#### Face Detection +![object_detection](./face_detection.jpg) + diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/object_detection.jpg b/content/learning-paths/microcontrollers/yolo-on-himax/object_detection.jpg new file mode 100644 index 0000000000000000000000000000000000000000..783ee9f521e75feb9bc9c6e655baa19e659648a5 GIT binary patch literal 17517 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 V!^ccsz@aleG6$);VGO~K{U2jp7dZd` literal 0 HcmV?d00001 diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/pose_estimation.jpg b/content/learning-paths/microcontrollers/yolo-on-himax/pose_estimation.jpg new file mode 100644 index 0000000000000000000000000000000000000000..09e24fcbcf38ab66110b0a40077f0cf603b1b4a2 GIT binary patch literal 31719 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 H-|7DYu#?__ literal 0 HcmV?d00001 From 3a87162ebdff2df2e5b1e867ed6b13712d31f9f7 Mon Sep 17 00:00:00 2001 From: Your Name Date: Mon, 4 Nov 2024 09:47:11 +0000 Subject: [PATCH 10/87] added reset image and adjusted wording --- .../microcontrollers/yolo-on-himax/_index.md | 6 +++--- .../yolo-on-himax/_next-steps.md | 17 ++++++----------- .../microcontrollers/yolo-on-himax/how-to-1.md | 6 ++++-- .../microcontrollers/yolo-on-himax/how-to-3.md | 15 ++++++++++----- .../yolo-on-himax/reset_button.jpg | Bin 0 -> 54671 bytes 5 files changed, 23 insertions(+), 21 deletions(-) create mode 100644 content/learning-paths/microcontrollers/yolo-on-himax/reset_button.jpg diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/_index.md b/content/learning-paths/microcontrollers/yolo-on-himax/_index.md index 21e6533696..dd826d2782 100644 --- a/content/learning-paths/microcontrollers/yolo-on-himax/_index.md +++ b/content/learning-paths/microcontrollers/yolo-on-himax/_index.md @@ -6,7 +6,7 @@ minutes_to_complete: 90 who_is_this_for: This is an introduction topic for beginners on how to run a computervision application on an embedded device from Himax. This example uses an off-the-shelf Himax WiseEye2 module which is based on the Arm Cortex-M55 and Ethos-U85. learning_objectives: - - Run Yolo model on off-the-shelf hardware based on the Arm Cortex-M55 and Ethos-U55 + - Run Yolo model on off-the-shelf hardware that uses the Arm Cortex-M55 and Ethos-U55 - Build Himax SDK and generate firmware image file - Update firmware on edge device (Himax WiseEye2) @@ -14,7 +14,7 @@ prerequisites: - Seeed Grove Vision AI V2 Module - OV5647-62 Camera module and included FPC cable - A USB-C cable - - An Linux-based PC on an x86 archiecture. + - A Linux/Windows-based PC on an x86 archiecture. author_primary: Chaodong Gong, Alex Su, Kieran Hejmadi @@ -26,7 +26,7 @@ armips: - Ethos U55 tools_software_languages: - Himax SDK - - bash scripting + - Bash operatingsystems: - Linux diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/_next-steps.md b/content/learning-paths/microcontrollers/yolo-on-himax/_next-steps.md index c4ae77cc92..b3b4ba6a6e 100644 --- a/content/learning-paths/microcontrollers/yolo-on-himax/_next-steps.md +++ b/content/learning-paths/microcontrollers/yolo-on-himax/_next-steps.md @@ -1,22 +1,17 @@ --- -next_step_guidance: PLACEHOLDER TEXT 1 +next_step_guidance: Navigate Machine Learning Development with Ethos-U processors -recommended_path: /learning-paths/PLACEHOLDER_CATEGORY/PLACEHOLDER_LEARNING_PATH/ +recommended_path: /learning-paths/microcontrollers/nav-mlek/ further_reading: - resource: - title: PLACEHOLDER MANUAL - link: PLACEHOLDER MANUAL LINK + title: Grove Vision AI Module V2 User Documentation + link: https://wiki.seeedstudio.com/grove_vision_ai_v2/ type: documentation - resource: - title: PLACEHOLDER BLOG - link: PLACEHOLDER BLOG LINK + title: WiseEye2 HX6538 processor blog (SoC powering Grove Vision AI Module V2) + link: https://www.himax.com.tw/products/wiseeye-ai-sensing/wiseeye2-ai-processor/ type: blog - - resource: - title: PLACEHOLDER GENERAL WEBSITE - link: PLACEHOLDER GENERAL WEBSITE LINK - type: website - # ================================================================================ # FIXED, DO NOT MODIFY diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-1.md b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-1.md index 287372e6a0..b7ddb67739 100644 --- a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-1.md +++ b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-1.md @@ -10,7 +10,9 @@ layout: learningpathall ### Step 1.1. Install Ubuntu -This learning path has been tested on Ubuntu. If you use a Windows computer, it is recommended to install WSL, by searching Ubuntu 22.04.3 LTS in Microsoft store. This learning path has been validated on Ubuntu 22.04 LTS. However, we expect other linux distributions to work. To verify the Linux distribution you are using you can run the `cat /etc/*release*` command. +If you are running Windows on your host machine, we recommend using Ubuntu through Windows subsystem for Linux 2 (WSL2). Please see [this learning path](https://learn.arm.com/learning-paths/laptops-and-desktops/wsl2/setup/) for assistance + +This learning path has been validated on Ubuntu 22.04 LTS. However, we expect other linux distributions to work. To verify the Linux distribution you are using you can run the `cat /etc/*release*` command. ```bash cat /etc/*release* @@ -27,7 +29,7 @@ DISTRIB_DESCRIPTION="Ubuntu 22.04.5 LTS" ### Step 1.2. (Optional) Install Microsoft VS Code -This is only optional. You can use any text editor to view/change code. By typing “wsl” in VS Code terminal, you can switch to Linux environment. +This is only optional. You can use any text editor you are comfortable with to view or edit code. By typing “wsl” in VS Code terminal, you can switch to Linux environment. ### Step 1.3. Install python 3 diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-3.md b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-3.md index 6a3713ba84..9beb5dd4cc 100644 --- a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-3.md +++ b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-3.md @@ -8,8 +8,9 @@ layout: learningpathall ## Flash The Firmware -### Step 3.1. Install xmodem. +Now that we have generated a firmware file on our local machine, we need to flash the microcontroller with this firmware. +### Step 3.1. Install xmodem. `Xmodem` is a basic file transfer protocol. Run the following command to install the dependencies for xmodem. @@ -28,14 +29,18 @@ Then, slide the FPC connector in with the metal pins facing down and close the d ![latched](./latched.jpg) -Then connect the Groove Vision AI V2 Module to your computer via USB-C. +Then connect the Groove Vision AI V2 Module to your computer via the USB-C cable. -### Step 3.4. Flash the firmware by the following commands: +### Step 3.4. Flash the firmware onto the moule. + +Run the python script below to flash the firmware. ```python python xmodem\xmodem_send.py --port=[your COM number] --baudrate=921600 --protocol=xmodem --file=we2_image_gen_local\output_case1_sec_wlcsp\output.img ``` - Note: For each project, the command might be slightly different. See the instructions on project pages for this command. + Note: If running one of the other example models demonstrated in '(Optional) Try Different Models', the command might be slightly different. + +After the firmware image burning is completed, the message "Do you want to end file transmission and reboot system? (y)" is displayed. Press the reset button on the module as per the image below. -After the firmware image burning is completed, the message "Do you want to end file transmission and reboot system? (y)" is displayed. Press the reset button on module to restart. +![reset button](./reset_button.jpg) diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/reset_button.jpg b/content/learning-paths/microcontrollers/yolo-on-himax/reset_button.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d6f7d8b82dcbedcb9b4519d9de2ef08219d58e55 GIT binary patch literal 54671 zcmb@tbyytT(l0uA2<|Qk1ovP;LkJKcKydfq3OV)zzz4RWGSkUH!Q9xCIzh@O7{S0Myg~TmS&z2>=_7 z6o7$3Xs8W+51PI0~g z063@|OaUPw!9=uwV>EOOK>mN{3knG2qy4AEeDwb=5zQ?h<9~2w5%z!a{OczF93G+Q z9LnG0lclxCr~k(PhZI%D z)xtlT003rr{}1Q?-?DH&+IU!_nBb`0(;anllukdQFuC2ovF|_F>fbo-AMCE9C6D6C zM_~@T{|#IHZ`jB4lP8L2_#b}jPwxNVRTP#2I(z+duYc&D8spoz=xU=<1Jq6r@BnB5 zlmKr~`2Sb>k3L<00082b0073f|KwR^002$l008yMfAU!K0RW;f0HAU5lcl@mzbf-j zn?bilwV1O~0D!;{03e$J0G=BEcSZkm?SG!d|AVZ|sB7p^a=M~6JAgC52EYtZ2DkvM z0emPV1P}lS0z@AnfG||^_=nI@KMZtqbPP-k6k%dx{zKR}*#9D&|Dq@VBHVun?|%sG zpQ|u1uuwm|C)iK^C;$H%Jg%WyGxcLPfaD2UCYl=t+H(Lp2^t0o+G9T&N|k6>|E}SG zD*;tcOe}1iC%8}Xhymzm7#Qf77+6@CDAl0_{nLRkNw7$t3CdxUXP8JRx{i;7E1f0mWk*3~yOHZ`}j_V)D; z3=R#CjLyu?%`Yr2Ew5}rw|92`?EQu9pPrpxTwYxxZf;RM`rqQ9j{lbEf0KsTnmCqjWY2}ZJRyIRSWwf0%kokSPGRLf{gjebc0Z~JsU7{NP>JmOMSJkT#t$H}EiqJ22VD3JUEprn;3?=lgwy z%{+Grj%cicnsZwH6*Scy{66v|!8%k@m-DdqXyqj&#*6kBc~#YTb|K#P(My(?!Is9x z=9HpBj5$K5Io{v;0#(iLH?4CUQe`8wlof~iBN1vAIK03uG?B7QrdFB112zLcCY~&X z{W=1{%u;~_3!pPGlLvILp#s6cP&R_Gq+XYHDnsGr#E#Hvcx~$INd~Ufb*h9FkvH-H zp?B3u*YB0Gh&>XTE6@j^O=rhG_!pI%@e<7^h_=&$C}c4L*Vh2gUy=rdUqf66C-mbkk`iNPhhj<2ECpke4x$|1bj(~LFg%w8iYR(b?HxlVK}PIfK+sD|G6y!0>kqLiu={jG^$VcCO%z7Qj!pc16MaCDHn3%t4i>SBzNhD^c+tovMYL1n>lzVEnHVv{wK9G2lF>PJ98 zLT+l0d=M*byZOhsa4jLG<0?b(GvjCeKaW&5$GOfVV`GiAsCIjbtu@?3hNzBqTaGC`d=DLTj_B zZNG;B7VJbtAB?j_!%aF^0jXiV+|~z3-E5*xd(akxliZxOYTdaEq0S!QszL&ox^H~+ z_1Xo8IopMzw86s0)PBUxvre8Uos2BP++1b<5wHcQX{a|f-H9SmB%_8&I>Rw`)0aOpqRx8YLfR1pw0 zF?(KN{q@l4dlN|4@2#_8lh=U19DFxCbMPve|9g4KyGeH^gSJAhST%fEgyOOEvqwN@ zI1@a6)nEP*5cKp|cFWK-B;-Okq_?*9;SuoHG0xB2`f;kaV|L9IV-;VAO2P!9KMMG2 zx^wGu++TObC8=s(*kT-wb~X_BL+0C##gvQX*NL2%uQORb`4Nrh%(9{ZF&Cz<4aTt% zEko+_ldmAex|@3KF)L`pohg*dI-o2DM@bI0*^lSM!I=84K&*wryJnUNY3_oozRw0H zUia4)obE$^FH!_j5m^yRQ|OT)j$8ebD^a+`T{Bs?@{ zT20{|ySS33MoaVTywFVM7^e#0c4iFe=v8ta@F6B}W{>>gv;`!_@p-?fQ0yQ&itqDz z(EsO1iZRxuJBKGl!HVr_GOIPs`ujyr^E7>76Ix0n*s;NM2BkXY97;9f>`~ z9j3vcnCbh-v#LrKd=3^y`vwH_?f_-rhaf47;MB5G*rNL|FYqH5?#WD^^o2y&ejPhE z@^wg}sdP!YZ(MSMb|?YB-G3l_EgK4{o{ih48Bh>SC}G&owHElx-O@Je(jb{!)5vwZ zz;X{(?;!bDgBncr;2U9YCKhd7d842#XURu8u0WTI*gw(otQnIO2avZ{@YQjWa|y6Z zs;b&-H6QY|2wpv3>~+roz%7?Pph7h9PZZX73o@;h9uGU7bT(4UZ|AVYmDVFC)yC$w zkh+?;OudAT@#T)R!Fjy3^boQ2N%4z(9GI4UJb8L;C?5-J)MPN1w6*Hj4-Lj+!7u^_#1%rG58%EK#-Qv%-0oCu4lzp8K) zo%;H#X?h}+-lqWl+p0kI<;9r6b2Y2|_lgy%XU!`cdkr4ZZZ>Qwzc$2qx-IyrZ|7qP z_|Em~BnWfwj1+J5?>0axzwxi<28-#G%SYMXe9G7toP}3m8&vL)nm$Y21w7N73JB1n zhEFuP`Y@)K$+crIQG3gzE^yA*lN)&1<9`!6e6!Ij9S`vIx$^glk8Z$vx33F&)JDCj1<^2L7`4F$Y(`LTWXf2ZBd8fp4Jo6e;F=* zWwJ*iUjm^ghiy$~sxK99Hmw__xn+kI)(O&9mA6`olr3)z1n!n@wHxT{+m)(2E@qze z*IIh#jlnCtjVNQW4n;Fl2K3%^H#3M=Ik>Ql%5FWMm)$!Gd8veCH7Z5kga0@!cWvp} zGhL9G-)(9>0-n~regx!aJ_0t-n=l@yk6h}bi98wtGN)selzH%DcC6#{?$1oRmuz}- z2kZ3K{|!_maMx^^ajo_b^2$*q)KWR!Act0d21VU@<8YQOfypkRnp8@S?KfC)3l!K@!Ri zzQI2A7`^tEFEoIGH!IS)rF8A=R)k-Rfn5IFXpz=`R#&2Ut)7+(A+E}Jg%9euC(sPO zA^SZk>aal~9gTOKxDQuEt}3wlBSx5KgoA-%Zf-+V0<+P8o7Y**a~Z`TCoNvmQAGQh ziVX+OShh8VEuQ!hG-?02m?xe-uP3exGu70mHA4?Ma)^^wLu2;2{FSPLu9x%9r`MI^ z8Y*d=DdWtkks6N633JgNBo_DL(1t2ktszbyKzdxjl)ZM{g0NaT=vcHgj2db7h zmi{U^9v9YxZQ$|^&eP))8D*JHg@wT28iN9_@`MNh#PNvz<0ve2MReICz&I=qSL5hNT;>7(FvX9LuKhMKrb&6Tse?Y z(+=7*Zyj1GZfl^N7M{)-?PF5;8%Xe@|1388on*@A(qe#{QAc;e>FZJcpoW62ah5x4 z{WCiaQ7K9WP=hzBNr%mhZn^G!-MxIE{d)mBJap04`K3t$;G`ZFM%$A}y)$U83zzkj z4UfctY04CPkU^Cc5?+g0=W<;~t%Mxm^1CuqdkisP>G~Zu&^>_?-|!XUY|MNXy8vRS zF03Vu?qT`wSe2Rg6)&$eraqH#Z+t?buTazZt4*Iz(_JD!|EGf)&5Q_c=B>@$$DmIJk7^<}>jgewRHg~yzZmk^MAd znS*%lV^`jrKZnpetkq9NbFK`JgsIm>rK5)-25F77z|qlU5}H)(4Ug9hBDp_}CLqqS zUIHmH>&S%EvP$!@3Z)(MWhh720=ru0_ev*M0@?7bb1zDJo12fZj5+bNyE{!(Nqu|A z4giahL66srK>kPNjl+W%weE??z1_dXH-cdUtuE4+sk*e@eS+=^A517omx1h^pT9{fgb9s!p>AJ$Iokmt$gkAMT+J7waK z$C+D~bB#O4=BNg(eEk5CwBe?~?##i!q9yBuRsG*{v8%Tn^;ZH4@pr@4 z(JDXpC3T~C^Uu9&L-iYcD7~k9&L!=9|0-BGioU@+x(n7eh;Mt|>Ht`2@AGlQWSZ&IuRIkJ{VnfauzRdo{F|P4ia5W-ov&qfW z<~T=W$LigbrNpVORXlzyv9os>uVlVJ#nNGl&F!6zXl=)53v!D)UC5nel#Ib6fNO1r zhxAN{uhWFE8Tuu|Kd4>IG8-x?J1|oqr0hIyTS z2{|1vJ9DoJ;d(07Ra|Yq^DJxAYyYQ*!1o+9wo!s+_gvu%-*Vj@DG`A4rUq-Sph!+u zw}smm7a!jogld@0Fa14z1Xx!n{H)$_8|37#cClR<{yt%7q#4e_NSDo5W?1^aR9)*_n?t@6QnXZ`t3-=@NV^Rsq(XC|WFXy8pAQ_Na!d}x zDd8rQlad5_^AjA9>{?S(B%K5}ggiI0;BI;&4mLdX&OIHWS|Y~elK4bKA+HYKZ7doh zIrKF1yT~UrH=N?*+lu0w?%qiFUcK=e9w=x6nP4U9_uY>9sv3>b#;hT(mFPKyqJW%= zHfRQ>#q1?bCp%hV#QZ9cWNDn>T*=ELHZbw)N{j1Z*6Gg|@rCergM@Mv`~L0d#+t6I zfM4QR@g7EOS-c5FtaCc8AMF^*ztKEApAv~RNagpgw->;rhOC%3*yQ1H0DL`)~N8rn((~%6Mx9r&pBJG8#NP#N6zB zgEb(JX~v;Gqd;XhtHO`vc#7&y7=zvtprsjR^cB%3G=to%13%4`smwXa<4@xrQtiwa zPmV9@XOAsqjQHkVawO-gD1Ur9{M6*{xx)IbID;O{*YQLIa$rPI;TxdZHLH~F#%kX2 zaJ(6ylgS(QZ3)j9qIPBqJbNMAmz%AxGNoF$0>a-POaBtff|k%V6V6JXN#a{)7;7|D znQUZQSM*$b$ zIs&*1C5+#(Xj98_3}1jnPqF?~9(e>n=_W;C0f}R11AuyNDbRhPQ<2f=S-pzlA^fFT zP7uoC{i`=_+o?MOa@w&=0W(fpgfdw2HQ|Q+E_~HP0h1ta6cg)Ox~)F2ZxTA0)KJmm z?7-JJ%F%wvc+d%P-p{+3JgdHYAUPp=1WfibU9U00LB1gm!OW=n2$mG`ID03T#LtSh z*r7lR>0{1_R6(ZJ-Pg$4_qzdQBM=E5mr2&q1@CPAk|UNsm$mLS$J3mRe|rv85oB_Jlq2-I_a)ox)bBN-!0#!+x|0uJXj*kf*VP|NBhI`+{Y>}4*B}Zb>W|Uw z^*c=$;K;*A08l3bKRuW!FAo0%l2>2@*k0+3Km?uIhA=GMcU)xDBO=!vXpBSdn)fci z>@><#dYLsaOD;ulZvblqu#IJcsMzoevuWGhM?JNsDBu)5KMgFm9#jn(;X7x<$!96{ zb!EUi%dPF5tf?uRs1wjJVKP^#DIT7BqxVLosn{os-TdX)V?5M!zuZ{-pQQVu#qt%fHmcVU4eJUG8B`(d0?r z8HL#PnK`0 zXHD;K{8mDi#aU)rb8xn=`#_}JMljmpO#2>NgG9(voL9YYzyVBKpGdsoEEKGEIQdb6 zJe?3PXLWP?S83l?o3^{<8yWRr%P#|;^vubTuNWqV8#tzGlB!3ut)=fPjQbdcr;w)L z;y9{+*uXxA!CmURmcf(WnjPDO;_Iu(W?j?4|L_ z{O0l1`{s_NTE<&>bvokRqJ^`iRp{&JB-}g;&To~hIcrU$zGZ@Gkr4FPz!v((&*`W! zq-NrA8c;s!DYa*`uaX!T&gnvMH=h&n)BBfUASn zL{o5Jg503HgdX1y=Yl9;q+>3kVnHuy6{dKGZH*6%Tp^^A7IGU>neentJ+!Y-Dwr|Y zuU(M>qde|zU-pCcF`V2&C?SB4sgPZR9y`V!CD~Me*IptbUk~VY!cj2e+6Hgtke$d} zG8R#IBx4bwhpB8&)+DY&UZYrKAm>&rNMeERCQ)599hWTb+e_p@rqJJU`pRlQo=&pU zuuL9(u|_dEs(fEorn?ssO!&UgZT0hNVMs(I6H5`FFXNWe?K@RT2V$k?=;Ri*X+!U4 zFNS5tEuRihvmR*;5=gjprGpBRN%xfH;?r z0G692_~er3yZ6L5mQ59bl}}i`2eeKZD+0h~(qWpFKo)E9A@fp|hbSAk`PY8lF6COt z#x=~pJ^3endQ6z7a(3hPD)=aBX?-p!( zFD}Z^)tS;lnQh`~Rwd3&b{3j$D_O`~?27VGrhs6<2b0|(j0A+H4 zsYd=XqISaGWou67=3ONofRNB_cBNp}fuVk%E$*O;*r|4Mw=rAHtz>>GYy22V2wCftsb&Aa{K2w}b)$gcADc2e&-araYV&wo({hVCyZ#g;UFX zkwt60w_l}mK;tg$%+`}I10$P)nUgf=@#4fgBXxk$I|F6GZX~_^p$K>*HGqtoI z%y1Cs)RUQ|@RE1#U9kO<*ChRiqPO{Oj0!^u4U(}@Oot)1CWjXo4euYw=Pwbg9p57< z_l0o887d^UKXlGE;9iP9zj66O2ly-d^gxOxs2Y}q%)q&Q>rBhCs`oQN(eF5UtL;Fw zs~%Pw*m%axC#@uMfrDg~!8+B5T$eUh50EwwnXnee^k00or5f6F4fV~T8(S^FVa6C4 zD)tmjhUpvqx>Fe(d%pK+bFUcp0+*X*GNdLM@^B{{V$I%kf915;RpS|QoHwj_A6xhc z@O*faf%77dGGuSco{?Jp?Zn zDhe6pB~JjoWI`JdliR#977Ir6QbE*jVpHpt6tT5(-hx`Bq))S;*8`jvv98gy_X`ch2tPB1 z=Yw0k3v|>knA_cM1O^YOf3lA|P6|P*4NI3SoqQ$ zxf?dy_0b_S#W*m%ZN!(-wwn<9IJa!FmV1nYI>Az zSOeZQV>mn<5SIICADQ8uYQIsM-BZg!yXRgTaiieS1<4GhW?F9PWx1{1j`f+tKWIc` zmgMrYBkc>MS z&9fiH-wgZ;={Pd2U-|KNE%-8cBcf-jOif1n6lum+B@xdSJiGF+uu)qY-C$4;+TMTqobdL>HwDKSF71sJrWl+U6SHdB3;b_2QM- zOe|d%TYT70=5#Wk)u%risl7V{RpzO=n5X(to~G`z2Jl*`^ec6~qh6&whJ~(<$@H%+ zI&20O@%cN}BB0GYP_F1{(~+iA!RjNxZoEvbT)4$ebIfEDoNgFfuF4RfE~QJ z4ro9K{y~pO8{G#PsU=8yz9YJE8TTJ&tuppvjQ9rrYA8P~2 z+B%Yv>s0f-3i|C!f5^J-4nSIB@ehR{&^b6<_31{xjTn-Y=>d16!Xel*m#&jEaB}Yv z;4uD&RHNjO-kTa`vYUq_1zm~3=f5tql|kuLy#liWg5*9lzgnr(lqWgLQ@JJU3nn|g z+^N|&<380LL;@)n1dB932axtei)@7S5)|DiV$Sm$Y$BU1S=Dn!u^h+lREx*g(IHIe za*qJa(fiau!&B7{2>ne{Yn>VX`gISB545?@6(NeQb6iL(1C~tk z-d83Oz#7@sDTsb|p9x?GRZR6*r4*%3;G0rmdDS4B)}6Y3aWzeDo5zdR(YrIwY{^}X zi8|IBxk+CSIiq9QJ^~y` zu0vGr6%$kyKNvCPEKE3-iA~*q%F?@!ajAZnwVgMh&`ob@?>1Zr5zMDxo|Cmg7_Kv| z;0;~fMI!6r(}7};R4ekwWiZ}GO))1{bP%3C^zHpQMii2FuBw6e3>@bG?`&hBc-b4cNPU7&Yn-zQu$ z$m`s91oE?ezqKZ<}nrU#XMUUGteB2u-mrlH+Aiic;8xC8&orDRC4lsRR}vB zHiXe4PH|^_#~C~=LyE{b1#N*tc>{6WemK!Ocfn}0mSW%LeI#rd(REk%r~lI>UZprY zbvK|X4xD<3sEX!z3Da}rXgoqwP&KV@lyVIF-J_@$j9QsK;9cLbBgCM*Cw+92_`Va5 z0IizV03qQuPO$t4T`fZ>L;qQ4HeoY(&6eHu<^p_vhVZx3fZ*sRt++madrENgg3kKe zqPrbqC!)Ilq(&z{ckcoOWkT@h9j0#KUH&=^`P%uy;2kR9V2k06{mpiI0;Sw+3w8DP zM?jC)BfyH9x3FW*xS!H(*c&9N#<6@$HgpCKy_6*$3Gkg>la!G&&!`&=;{Id4!rqsu zu+cL~HcUZNILmI~%@=Iiyf0330P0OC^zfYtl?5I>0yY~$YV?Y^4PlG4_ft>tlpTsy zy`$So-al*Up1=_Y_wui3Y{!{1p&FuVbO>c2XOUx?3{_i}dc(}|rK)YM(+1me;4(|- zdzGkaZ`-$8DsaKC<{3;ijHMo^0EvetztZv{a ze57*G+Wcc7JUcD1(!{vyJE5StBNBkP*@`_<(ncy{UaRmO`IMXS#awG4uu-B zu(Q(~nF}D57B9J(s3e!(FPwMpTV=kCjE{I)o7?YQRkk@VPupCkWu|mdv$;V&UhbRW z%=dXo6PaJiBmf)t%51E0UTLV?50tAT?6$_#ACdia(vPQ+(1mMzDgzd8TD(v#u=&YV zy^%f0z#s`sB=r63E~!5+Aw9>m0@WZcA9rl~hAxqiK>>x@2fS*|9i$>IrC^C&Y|!Rw zBVW;ON)bF~$EfmLDQUwrny)(QKBwax^xa;m5y^XEnxQZlR|$mh<$Fvmko$*3?PeHl zQZKvJ{{mRAv?P?WP6nU8^_OnUZ2hH6w&!mV*euesfp8jNGzn&_K`qcf=cRx5Ja%ltLncW5I!H8eZejtWz5z;lgv_7l4N;Hu^&-Y z0kJEJOu1GoZEOw|{bTwYBa|DS$c3|~8|Ymthy z4S(Gw<4-xAAm=coI{s;agF`;NaKLf0()shgv|U}w4_>?S%0*%APij@~)w-&S!O_a7 zr_UipU>~s{2)eSg@3b?9)*R-=g54j`tloDOyOa6IguNoY*NBr(cbrU76W` zm~j|hE&MFLqo2a58#F3@0ak;j&RK4MXXw<#%=R2N^HR;i6Kg}w&3(wQuGzDn?o&;eBoD7g&; zyZFwSH^6M6njoPUf&Mmf;KfObHHQW7Iy2MFeCqEH0 zr54PQWF!|I)(=nR;lX%IsnDzeV&?EHl5o+c4DH$7l_vme9LDe9XLEXD9nF3plMKWO zYlJGcr&ZC>jLk5g|!s=9|1f(#rcz#+xOH1dW+Z zZQkPz%9iV$pYF@r?SQ3-4R!c^B5~tQ;xeJnaWd0rXDY%*I1%=NCpff=xL;+w|K2~$ zl{`qfXsun+(kyi;t7MZAWg_cai}WO_@`)dq;@ zLHTq_r@r>! zBu*{DuG+TqR=!@@!=>{Ez@eRF2wpeTC;_`>WJAbpEmf}%?(~KY+QhFKpG1N9Ju&^> z0)yw_p#HnA_(uT6W%DDzUN+X>yMTJZ!-=ujuLNZW^B$%Rqj5+zhgFi%t?A<|N)c_q zyT}S(~`na7=f;{F0O4cA{yzA@7*snw5}x3LYdP zf4|7KOgKQ8e>&~X-8XLALfa(2KDu?nayySQ4qrRmYD9+s*SL-kQNb+`yb$56oX;!d z@2Ko0)t@lP0WJnY44J5SKOo;CLcBO`sB~=^eg!6p4}=is!8K%8n2Ztnr;~k*ya=&E zu{h-0{nKR_<(Fco0v=x*#t*E4g|GffE?$&wGOe7T?4GgHz3yBB#0XqT8{t!oQj_pl z+3FZeuPGTiOD8L!MwVY{d!~!4f985}+Tm~FUD9VP>U++4eBKlcYG_Ht*O?*u)UZKc z@b>Ig6sqoO4=4%HFULc!@}~GN2)r3&wVLOj&jM+^+S8B7(iPM;*ft5Dp62%JU(uLR z-KqLnZ{|h$46<@N8cJHuM{Eo)T#SB|jVAE8D!TtE{6`juU;>XZ_qf)YLadXhK2JQk z#F(#Q< z&WKk9ff{WHC$?~?YSv%=k9FB{6bW;_xcY;44YnV~K6eLPfCnA{vHE(!VyB%|+mdt+ zywB#UOIi%fvF6_Oe}2bmx47P#%AG_1pakiHYY?b@=$J+7(}xKLKpa#OK2v)iT`+lC zb!od)rXMn!@Ttpu2q1DqE~7N!h%ncnrHZct*jl1}%3gMsZ;5sW)C05xHuBFm;T@Q&DkoYG~(l%hV5jLBFFGjZc!g zLE7D-x!kj~i`t1Mp5|-u-FLJn-O5~Pc9asbZ7tRhxZqQvvoYv;!KT4dk;Hm-@hlVH zozke-W^HYrCP?MJe13gWsUty0?)lrL6~Yh|q%eXa-w26|$N`=bsrfW#KC$^a7HARe zy>|u~2rh$lHL~}O>y1KXNqmDtUNxrpG769<6lQyYRfVc zC^g~XefIGiGvC+QuQ5YiD8nk~&Gu+h+DF|jv7tE7BS6=;ZtML7Z7bn=WECOXn2nP@ zXg!F|?uUY(7pL;ZD8{vOUtG*ox_&EsBL?Wjsztd}$WTb{mI(`_@+l9rg0H0|!}k}A z`%2$bNGj3X(7sQ_y!-5C77K(!p!Agso$T;6n2sjnUnr}nghkA$qotjCV6vWcxo@V| z^K7$75-5n+Aw9F`*MVLzuw#T2ds9@poIrBOpYjXl3S+tr?Mi*8v&$pE*DbW=qC$oR z!MhEqQhd=k3$}{IaLphi1{|t$V`##uVh%5D;71D?%zUp2YjW}*bQCG+OKl1|9s#(I zfXJ@BY1xxPB_#U;<0ByNE$aPBya~#!?1G4V1jrO#7Cz9lL79-ZpoRJx#>L^sg$MTw zQ#*sX`oEs(so_5ekf(o!S5HJBa&*QYo7RRLcO%oP+Ud7{RSlOa8(OXEFn0EKIrdtn z3WJ7gd_h2W`xA;kbn1Svl{S7t$C6oX-Dd4wF-$v}Tm3wv@~kAXd~xcF>Jri_4(V=G z3<{Po)O|XguXHsSWARv6KY=FCHxct!^Ny71%e)W1mPod)cQUwvjv!@7@xD7Q@8tUM z2$KrZ7#@=FW2Q>~^(ng40xuhUddsdU`N99q(C48-&Kr|YPWxSi;8^WkMayr z_%2#Z z^%7!BIHu^HnDM3$7Ws_;LD|DRmoxQSslN%dY~Ofdl&r!+ zi5j`^PU0mDZjQkp{L$A_Pnk5UJLYjb4$VYk^xgGjnh~?76Wiu;MX=XB4kS0L+dLt? zU80?Q2t-36?5fht(BG;IF$PV2_!TE?zsmB-hPm7gmfNto=sxD=Y1b9))W)n*4r}*YU zMZa!k1do@S@DQ=-2H{>HC2#fj9h1UztU%)ohB~Rs8vRti{?@#hFA|uPvdKvD4P1&4 z!rmP{!Kp^0SPkjn+PVFtb25><&zzRm;OFULb?mM=N;C~Yl9ns;cWoAg;Hqc7?{Yk)sC!+hN$#g>f~2ELp2GF-HbxZ1MAwBY-rZxR%s57X~CAzeO@VQS2rZ^Dia z`3CN*kvUwx-DUd1q_eUwcxYPH#86QfbG*vIRP2is9AhDfA9OP%Q?Yp6CD2{16Hl|S zf19GYT+93y7yMa9VxMY!lZeXXZNfmMNF0UP_n7w&ik*$EU5N#DslUR!uE3F{9BKJ!MxazCzoQU8oeO0 zeKVSQFt24(=DGTJ)}%L|iIZ505>*Owei%S(x9eQg+`FhdB?HY7W$v9Eh!$v&`9N#7 z@~)C-p=|bD0N2}CdJ@76;sI)Dbq$dr$!Lq14}#yfw;ur90lguF`p~>6o^~Q&#gctf z)3H^3o_5}0V}!fRyP_;79!2di#Xz<*@?3=wg-T%^?+&8OFjE!GF@m&6VAbaymPF%PD zmtmOsjQNq|oeT06qVP_&=M-b8i_|Ct(@351{`r~J0_nK*Z{?@*88p{og*O9|KS&Rgm0eITByYG7*G*PL|ok*=2k&VhHaObP~<=&;n+ zsW4i=hgsYFQR^YJ2+C2qfMU>{B}2xh;2?J2m*%{7X~CJU=q?01`;qJE-cTN+XO;Gq zO+yyc2gI8%y5&lubR2VR={_`)@B(lQNF9QIo#`qv$3a@4RF{rO-UfXY?pkTuDoNf7 zd8+jDL?R;34IjLRbwh^d_Kd5~J6K(S`w#cT=w1Vs$92+LPk6v5u7M9tHumY5o)w&* zooKz(4c}(A4{g8AC5qijXnv4wm++3g61y{&;XB!I?>9z8Z#9vd!E?9fNMe*98&4#U$yZ4mE*l%DVL!GD`{|sg)z#AC zk*X(2|8B^Gl6`ki9K3T4)tvxUBT(UfAK>d*gc+7@ZmekwQ`tlK>O)rOLWJ|(lm2%e z&@LqTNsrl6#9cX(qXQwk)uC?8pm(DBFm-37#A#n-6I6KU()KIEvaMRl5wSfa!>U1z z_;KE!mPQOqYnp98HF^V?A@}$ev-IKh<%&$|0d3*I#*$7B*O1}tuaIphr!VXQ?1~81 zy|r|)xue}gUfy)v5v8}cFCG(yne|kxOArz1a2_b7=~Xl^Uw0s*qOMXG;H0w1dxQKiLw8fK-X63CpbcRD&ZHNs)?+lVW$gs zE-AxWt?rJ^~Odu16L!n8x7P%NtLPdgdSnu<*Po%h+d1gWumqZQa8a z7i>InQa?CtYb?`UX~OvjKsZi};-`6Wg`M@&x$^^!;jhlv!nX`<%^M_on3JS7pTI>o zFU1*k>dK9VFU?dn2VT&<>2*gPQ)WNYl43*?99&^~POil`X{WP$2oi^OkcNQZtW zyu$3}F-BSlW4% z9!NOtrdzbp@i7A*0byEbO z(C5i&JW%2K#|Sdbbs^*snRpdQP_6 zD>LGaA&T>+pS{M?3Ws^=PAPFxyI7)-TP3VD$2>@v4^MJ@RviBjJO&xdX&(+zH3X{fM$yC zE5jR}Dnwj4U+*`H1H10HA7){N#(i5MB=4uFe-(5Pa^K3_XUn_{WJ6rTx!-sEYH#SM zX|ER$)&hR~$U;O{ws}kJbo0+_{q13BW#h2s)ONAI3*)f5VG`G=g7>$#Ug3Dwd*5Y@ z-lu0H=Pq%K-lt3Y+te|c+`)yr)H|biPDHJ75<=@!C@AlJS4M z?`a7k8QL{D?NecYyI++otIc*g-vzqFl@cpx3rgV6yz<<3md}ZW1Z+Frdch1gXdVa- zT8B{It0IQfL5H{MsRbLtNwvT@t~YyDd$T1@5Lw&FaGd_{sKC50lpseyOAH@HPRmX7 z?)QYt%abEDs4QBb%>DO3hax8|>xN{xt|-M&xXd4v!Hf4kD46TJDzwPd#`Po8p zF1yoK)~Q!5)5NbamX0Wr&m?L^sRep)N{Af0yoB>UHX08y`XoL{W)Qk@WC7(F zJ$x^v<7S$qA8)WOuR8@LIL{fw7?~FiyKgjsBJppQo^R7>kF==8K8$V#=tInF`TNYH zLYhhkJ6NvdPWJ{tG`?beOv@_?RWiktb#6i2${3KrUmSBUa-aRFUtaCQt$T{?E-SS+ z2c7-g&VC%+`5oNZWt9g}>JF)i9B9*smtlr?Tt|siRIyzv$Bbe}Gsl?=^Vp=Q2z2{N zdV|N)U~$`j>b#B{$o7Sb<`PknbxlM_(wCc{K50c+oZ#^g3Xv`f$26gi;@y%mRyCLO zL}D{pNqbGU)r4j}`dj^N*%;Z)^t^^(aMf4=!c}8dgl6<6Hr|Xfc8v8Wk9G8@sN0t& z#>?xyL6i$ja#JI^-HAQAvYq9pgP_Rnz!*%F>KV``X)7)~WB7Lf6DwD!K#2@~aJ6_Ux@XreXUItSo^`S;s7h^k}-<|dTI!Py7WgUq7V>Q{|^$DZ?$dy54 z8o4Ocd=|aagX~8QOiMOc`0$1$1c!lJ@u!gm05C)m+)Oznx#|Y+1PdU>e)@8&AoRf- zNck9t3j^n(q%%ny+th;pMbcS@HTk}MoJOUjL1HK%Dka@aMM^{j>6DTZ5Ro1msDQM9 zfOLyUN%uxiP#WnPlV-4ygT?Q;|Ht!cZ+2{VT=6}>=jS{xTc0cJo03x${`NWc3WSHY z10Gnn{!Dh=%^w~|bq{-9$_xae%0h~bwuH}qkUGF?S#V~&R;3N`YQv0_y6X)QRr8E@ zUMQyiNzEn0o6T=N-~DYMG(_Q+O*SXr#%B?I(OtR&Z>ngh&N%dj_7kc((;ptc6x5+yV(_7MXBx*{ zT;SLpaJmVdZr|}agDC(;5Ta)2ckRKZaMbncU0V8GL*~(y6u02l<>H8dhtQZEd5-T+@%jpO?%&{Ue`h2VM2b zSnkG{=(2#6P!8ksHt-v1M-C~(^Q=lI&(Q2~(X6k&-mUwz?|xp~l1XrG^7~aDEIwNn z(Cle&k9D$3tgc63f&hpPnuLxQO7Z)j_y=52b>!*pn;7J))HF!bq zHO55Q*qAH-M^Te%agf(2_vt|zP4W{WbvznS-2vVk7sBVvH(JiTrL+9rsG4>sn8Q-u zxcq}4taC*QohRWwSI!o+tKwwuH4nMZOS(&$!u}g4hcz8CLoBhhf8hv}!Jfw3*eLU(nZ2lW8x+PFktZSMmiWX(F8(24RZTste%KjgP#0jBVmHtsAx1imE zW3-Ie@4h!&x~RZN9A6*&F1|uxD^Xp=HHfA?DY-nhaj~P)Nb;E9KbC!1ZTP<0I7*Mc z37V6<`P>uPyVhn}a;M>pOgLM_m(%yQ6}2GRe(JGq*0tM2yELcOnL7Q7Vlm3}t>d>q zyY)%4+Ir^m;N+o_IC;gOh134ohLM0R{Y~5DCsRf;2G2hkaI5qdI-n>ZB_}QY?a4&8 zJ!5>xO}y{gA(!Qf=NtKa7wDZfc+#-k``;Q}{Ts3m?nG4FgF5axNRfvNu7O<;To5%} zW&*@m^sKyM$AD>|to&0+i{7oqf{&8?)I%ZtbwC!>$g_Brq(JZfVK=!s?l z{%+rbEBmvdX~Abt+5Xuq$s9vcgDtL=9*{X1LnG}ya523Is&@=yEcg#7>DZfpw`TVb zeF8KT<(M(IEk&awQJR*_H_SpD*wQ{{J(bda6DnBZlwEA#FEQTKK%ZowZ+&$ zr|TP4P9efp49y@z| zJ^m+e!gy8l!Ihz8dLAMi7`~3Mo`-M^=otLkj68zLvzC+v3vdlO)7GnFO&yg^rgn?r1_5#dvR}ZR>GL0G#5_bW8p`YNQs8Gj zAk3sB^8KCm!4%xqxl z&>`gR1QFAcCo|0%78lkN zwXSh07#{u_rA= zsjc}6k5o2U`e82Y77(JH{DsMf8211OTLkg(c#D;s_Wk840n>2tjj`wg4x6>v{$E7P zx~tzB-{30vzSO(%+N1Ne!~df|gXhZ6Q0{E&Mp2iY#?K~-@3c>e{C@hto(-Rpo8XsR z26ZLsVUyz^l<1CChT!#{lVux&*08WjtH1`NM7UYAoRls>LbnSt>h{}ON^xrZ@@b81 z;naT=(&MCEye=UaVuua?k|{{>*J%oKkTaH{<^c}qOw!{;3y4F(cx8Gt;=Mnrql^71 zjxyT9+5h{PKYN{I_dI9mFcr%eP6+D|C%$rREQ#BmV?uCYQQs!^E1T#SwjaSg)Kf|6 z$ITT1uv#y62UT{7(aGySLhFXmxV3kj*#9WzWo%0JOTOBYKXn=a38P({SZuGoCjhc` z-aEJ2G!74R_>aP{GhBDF!ebR{XT+xOCr}E%I_WH{*eyKmtM>qw0Q%{sf{D=ByI8gf zxqcx_HyW0t{Vr4|Yr{Zb0{N|*O_EBbd7Obd46T#a4Qil zH~v27M!)pFR9Q-<9;A;r)&T`Yl!XEI6f>quQxM zyy#dD?89oKE~e-Q5a1*s>eG7c`LLML62$_ADI5Lpx31A@{;W^cim8Rtm4|}&j@b>O zL|Shx=PR3iuw4>cg}|->wRW}N$b96Pvx2(Jcwy2vb-Btp8_%=mOlvuh*>UyH3}IuE zokNU~jxR^pyw%Ptr6$gC_HpF$6TP9(1n8fF(PZ&wuB~TgAbFY04Qmh+V+MZE<|U3N+n9WGm^-1VC7@ zuftV5OSkY-95l9k?ibe9qoJuQCaZzjY!hx`s| zx{R(?KkrkyQirZ1z8zkH4k56{(jUQmkeg_h1qbxsf_?|4>OEaj8grJym*`h!N2M!M zdacP!M{90D1a;z>f+s;RUHFoz4%}f>=3y?-HQ9I*t8J~s9LMW5^gCcYwz7-IrS$URu!diL!KE%gNc=CYmYrUn-pV8~Tm2JMx zSUQ1Z6739gNB>w1hizCFK zM}dqTZTuuuGdNBnm_=Rv!u95OJ1AueS37Y! zOmTgUd2Ssci*P~`l#&%Jd)@vtK24bucd^)|(jxr)XTfo<7(J*kbS%R6^TAn}|&l|&N8uA?_mteHbp{hZ-{F+bNYuyh^PT{5s%Q+T8rH02s9^& zHcbt6Hxx8>(GOeLz06j$bOYU5DZZG0d_#FrOZB(zJagiZOwevWDDz%$R)Sdu6$qS(rm(00kmU|gw5pJMu*w7F0lV5$nO-El~4s|DV?0$`AaG6=OW%o;! z3m2Dw6Bin0@zbSV2AS*8?Ih zM1yZX;wn)qxmQs7uY4uwzI^j#*~q`o+sBWo4pSNCZ~LNT>izMse@PM;p5-UpZet{%!;oWG2;8yK?(8*TD+1`fyJys$H%&< zsoUJ#S*2Hvu+#)D+FGqgS{3nY3H6|f&y#AZjLbIO+Y zKkN2APd6hdi;}V1#)m6WG_?J!`xNKO zO#>c1TnLPK<7c0Tb?ejQ$AJ?Y|D#}7fhbOq#XYk(ohIK^>zZaheXo+m`3ySBnLq!E+R z8OAvKOJ;0M@1*BtyT(Tw4%qKT&sKq-beieb4tQNDZ?4`x!$!*@M-c;#Ytgcu8&3ew zh;v(=V`1Vy3Wt!5$v?IV#$>p;=GSSMV-DYSd9PZ$SWOd0!t#rC%fKbm{9-o0D0Mf^ zVGj`YSuz)%v^Gr*huKNNq|PR12e{I1no~WF;@wC0wcoNz(=IIQnLd|B{fA5`J5Lf&mK z#-LKa<|MvyD0|Vn-{-bvf|$>07Pq@$Q7DA?llffZE4m{Kt^wQ}aDzSIO?=zh*cFH> z-Veu4U>H1WScaE-uj?9U&<{QRT9dlR9{sCdJUS2@e1}uI-vKW?Mr8N5$NQoMwAN-L zG;i;;x4eHDQrgfwEtP-lpx2&r^Lw#ygKX{9Wp+Ts2=!Gd@LZ@hlU zFIDM*0x{U({riJpUg_1&2m~ub$bpvL@X@Ah*=ksS{lA~Im0GyDb^tpkws;*>X+`1qH7JN6=mLVX@BB|0wEN zi0tAh?)^G$fcs*GNZ=bvR@?FiSC9tNr}IsVUfXc8&|=`3g-O#5|9;b+#%Z56X59}>auq_#rc8;2NNKoHsax^Jv}KrcTT8xR}Jj;h}L zp^$@UzTzlLCpXenp7QAXP0M=H5_9^ID`L<$DZ~2Cj1eY$<3kIVc%`STE!)Lf$?a2Q zV2{90@yVVZ6Kfy;XOM-abAi$HAe5K5KPzqv6YIpoc~d?N^9!Cc5jloNdR|Zuz(K7J z+;%qjK;*!TreLbMOFOPP`_jHPm`?UcXZOcItjZm|Q?&*MhhVR>2>h1Rmve4JQ|I%+ zk`TA)Q`&3bo$?&_Lhlp$vf%Rp0e@rsm+@T(R+xJMqgQ*bCHyIk58|-J%<{7Nl8n1h2Uulm$skK@BE3=jUpOcQPXl){n+A- zG%+#IyWdsMLlWOkjs~;ArSZ;oQ#ott1+h{@FMrw*c!4)+QL&@r=*mOI$HpC1FF9pp zE;uNEt+yTD8R+f(y*@p*QoA^Y*4^*G5rEbOeTMX?ooItJ+WLh#k8$2tPIF0m{lQGP ztt@Dm@-+6aQ)k&EAffRR@!>xT_EYIA;M7whD{D|>)NY#_EH)hb+au|~bn0zmk%#)Ej1pzU5W0Dgv=fnf9#9+2ih7N1D zE11hsLsfPXwd(pFqLl_Bby7#(!`dP~6jXEzJdi#f1(FSPLJ2B!1Mv~ul=jTvVb#No zhthcn8gG-eJN6+0!Gh^Tz+&!^CR0NvK#jirBqh{Vg1WC*goVXjfus`8>$~^w={SUn zL*BpWji_4yUmPa|0$& znql-lUyAiVit$@pfYu0X$4;LAO$wRVurBzBXwt<50n6iRZ+KX@Jp(Dv`vl{2Fqf!g z_ra>+as8LvknSH6AEQP&gz1!NoXd~WaLved&14+AaUH&L3+N0(mFRbtX$5pJ_;>M{ zmQa#lF$W|MSNBH%i7$;4Ll&?FudcxWj`(M%z;_3UW>x3l&(>d2dT5Se zcM0=+p%(oGyy_}AP!CzPbpk4}0&KZ^L;Qw*;04XUt(+I&kS4h(G@p+6-iyu`%B%dm_pIABB*J#WAp_)1)>1ge5HW+QUJFo5U~s$dLpYfPIf>y_`Lf zSEgY8i;v+MoX;h(UINDU{08>a=>k2O-1t~E`^l$1UKQbLNX1Fu<5l;VndC;Tz2_mU zm&X5ecOJa$|8J6PPSh2?S1fa<9#R^&cj6GEiX31`gmYs--8nYy3K|ysXJ>l>!9$Fh z&vlN5vo7u0d|%d3D%3z=m*HXfL=4)N2%Vo-d9YZ9wI@8NOdY z|4Hjp`nGP?nxuigEBoVP8jX+iQS*4P3W%0?kCaZ9BAQ|o596{>6A*D{IUD=k<9kb_ zd~FK!{`WnREKFmP*ML0Ve-zvv3!3GHkAAnjXbih*U?4@?nX4Bscqo1TAzIWwNzTR` z#7n+IRL2|FLX@$KW8Q*I^8U7+jIFoW&-Gp!f%nlGdmH8ND>%l=l4RMM%d;S+cr74r z5D67(uE!~qR=E8TncQhPe)vxt=F9kAF++aoPoWG&Ob^YPi@)7}6#E!lniZY_SI~nH zIKjxynzmzoYUvti^Y%IekM(_$eh8FUyexqpu(mx1im23x&q+m^@$xVDmjqP4? z(V|9T%z|*7oUhM;K#8Eq?fq7I3AsUWP|pHpv+l>Y93ji`#LkmiK^~7`^SWL2r_KVr z1Z&t@`D_7qz+o&|3SU-YwbQbqT-Qn9zv1@vY$rV6=)>I<(?;8kShK}J%32jtGVG<% zq6NAL#Zz zQu=Eka$A4lK0Q^(6(UQSywhXcOztT67e#K5v2P(ed*f%d-+pJ-y-y&3)RIa2IiG&3 zp!3m?2Iu+8@kU9nXDzLXE&wqk6j*c3h;m`bn{zM|?X76lT%dZpz9as3ct0)UJR77? zaqYT)3op$K1`&~>*a_8`fQ%}E>Q}xy^bdlcoSKER+(fywmzWd!>?PW9uYpI^S1omH zMvy*qAgId8SCGfGFYpJZ{N{&on(~l`*q|661rS@XRv$Oaxg|RoXcjAqo$G|(5^IWoOESA|j$D}buZkpawcZy zZqVuq>+nG7i^AJvUzxhlWJ!+kUt+~$*xFK-qn@x^fbBJfp@U$$lhsA>HE<7z5pUCH ztc3$Vi8r3{DI8x*+MOtF&ItL|Fe@2)M`xY3soDd_`UH9zpil{L7wxyC4EeOH?Nn!{vw^Kw&2D!;1^ZbyU#!s?;5)w$B9DW4 zUgATreEsn?mPP;&7Xl&*ACrn{BBF9gD%NVjcD&Q_Z*QiF74`hE7bV4mT?^s>jD04Z zAo<&?`XOB{S5^%`Vw$?vd3jlJMi4~UcsBFxR{eyjWFw9fES4vTrg$R&f1x$U*3_K0 zhu8KCyg+Rbp*QP)wk1l4Afm&}KfK{FmKu{gh#1ZN9GC!Uz(pcF4Pc8oDA3^QB1Ld0 z7~{*f;2!$)Qsa*j*zHJiEAzJ#PG{RPBqmrahyh8}R%UpjjeO@EOdwzFBQOOgcNef( ztOX?pT!naGFQ->`Z)n8KL-Mc(38KTFCkOe4UnU|{5|ZAxf$+EK_Z_e;XStff6Y3VX zQ?45_Z=S87jq405xAK?Sbdn}kv@Jg+_Q6d*s|F!g3%C$o74SPmH9QLIyEc%Nf?DOp z)1j&r{Que1@7@sY56chU;9(4uj~iY4x{)|-ag4&olI4Th!1zL;w(M1dkn6f$t@V$= zfg+4u4|(kMmReurr?bB>p3NbE^0_P>qC_)*M`>d5dNd)XoIP%QA>#%!d zaYTF!hG=&dW&(F z^yo~CFyT3Vt4HxV(J8&w(XfT}qO3T3>C;&R?x%6P!fWRrK12MQdEC-oTz_P)CuXZJ z4qU>4WNZI*Bv&SC?5f>j!)7A(Y6=?HQ{NU>@cx=md-1aw4nNpe8#WAUbKU zy5XhYgUyi9(Y^eZjJKbpt6X-B&^{EdZs{ zz_K5N69(#ul7USenE!?~1^(-HvID0ohrUfi?_3(|%`FSqMBe&}<}yV+N?*>Ppa{ib zO-e74_-QU)B~ME)paEbVmy8ZVhFbuM1TKg|+5X2K!2+hTKha|ZCB|NrG9gxB#LBfU z9m?9@MhkLiF(UhU4_rE@7t8?{s7-jO_So509v5xDia=>&m< z;e`t@J!^S7Q)F(PS`^DQ_bIK-yq9|x*?pfPE*>%Gcp=F6a*F2_UbP6t)#WitZG|ILKf{rs9Ioi0O>SJ`dkISOMEohNr}rra^Emduf4F*{koMff{d<6N2JE<>W_QZcJ884c-zeNy*cwv(Ve52s%xNl7r1A*i58eulxPyY10 zX$7}C5=E%0XEpz>p-sG(&VDwxgG;M#o#;E>$hVM}TQD}j6YK!WIMmS47F>`aK3bjEu}YtQ zzH#x>>DPHGZGIbn<|1!qyXntt3Ygqfec~Lx4_g9kPSiwSKkWHHdt>OvY4Ky1j)Y;8 zM`)pBRecx!KsP51ue}Q56)c|}>tR9N-))Duw}6%}(Cv*xGPWsP!c!mfzYRv0LAA)p z+2=jDR0a=axp~`r`STZErz1-Hw6os+M*c1bp1*HInZNiPQeNGGlpTfc9o_Yw)~6~Y z-97X5JNx$D@$02f^`D*$>M-*O1+$zm_y#@rRi*d8xsPP&3b&61P=Y6TSqSc8hv zW<2&F>-SE}-Q?H(u)^Byb;_xrTzp=75LG+FeddI|NBJDvV z_`fN#Nj}Pv%5Kqbp|HR-#7;m2`LpI3`nek{tKDy`$s2DzDt+Cnx&6*(@ugpNLZ`3R zSUgGgW^3t-V5M>$lgT^VOyvJ4zWf|95AoilQ`(wUxI}&jCY^Gp05G-)Ph4i*V*2ZS zvUl}PDS>u}odvrY%K6isCgr&6i#Ai=G(+(N1Zq$4RXD{Sg0~j(!b@!@J1;%GQ*pLZ zXfYt-F;=4ysQ;|FF081 zJu>w5<2HTmB6zJnrB7I#`ATgO>=g)qCmAT3bUFN}serdriW#g6sQMEiz(v#(=CV%h z{XBU5&2)(EwMB1gXc15CC-o4*Bccwz9LH^iFG6Fq51Yb6_b@?e7y8#zAM(HXuu*X@ zLd28m{euBOklKHAeb=Z4FHvGpsyLw68ArJW$iAlscm5(OS9v80ie>(3%6?3r;FfFg z(Eulf%F_#>I`5{cZRyW(da+;s>{*B`Em76NR4zOGnTKntweYsM27{h~MOfCi<-dXV zDFo?-lD?i)?=gXOWWw`G(}Pl4-^+$mU>sz}aGZ-Ex0J5)J0zK>P5AO34{ypEBI{=# zjXI8xY?!#s^gY6UVYaqvdQkpd=R*)GmG;@Yf~ftCe00BK7>%M@9eyb8;?>qVW~48J zu}itvsYP8B9j;|3t1CpKyToYW!zZ7p|CXO80d7h{@3ca|*tl)gouC!TPbo)|^Ha}Q z2s(H57Edv?|<2Iu87LjCpaOoKNz} z%))CYv)gs~gwGcf#s?Z~o`$obG%eD0ECGBe& zw$#zrN?FNc!V8GUfZv=AYdJ_GfZemVak+slikA}sZE>cL-h4RsRDH>Ka=MA&)Qy#% zd48}zhor$>nD^U@GTi(l^C7|I4qa;{irqRd__gi&SPjt`M~@1|1M0nNZM?btbsAFS z&+VJSdC@yrc5Tm*QOITGf$#x>2Xr1rOO}R?3Gz%;y{?jXU=3y-WnkcyxX))9BIRg! zq{A&P!UgwIaSG!9{3bAY(DD>-{%FjXF)mD&>K<>vrz{wHftJQGaFC9^$zS&>$COfK zyssAE4<<@NY^t~65)REHup7TgWg2UVw?3D~pE=U4<|c~=<+@(e!dy)sf#w0LgCfkG zB?iQZa36v7BRGi$<#?~BaBSy{`PA-PiTj3fOOMI=fxQQmblmt0G6t$Q1{3{{LhcNy z0ZtF+CEO>Es+MDt2@l;J8dm$Nou6T&_S`c=qYmn-B+j`WTj_&xZpJC;E@}6>rGFcU4b|!KCd79js;2AJTkgsLHgdQd468>KbbcvL!Myn_K`@Bx)P6?`m>4rXgXA&!tKjV?DO4o1gsi z>AzFc&v+DEyPizGT0{^fvf<-#S~_?ST;S%Obv-V_skOddf;Zh+vR;O&u@BV$d)&Xf zc01-7a1qa;eXx4zK_dpDJ6;sk<)w||xA3M3QffJ$(rPwcycJ>rY9Hdq9s6Zp5MLdR zpWn}8+4eW+q8j3~O{J6da~N5L_}U5XXEqr#fvu^63JaRaCUc#^LMI-i&&YN&?MTQyXt7;FbK%a27 zULaTlCquU^IF;xmImQLBRgQFx6lzCb%fDy)9U zP9Bh^w4U>9_I0b!4lgcf?xWcm>^mznO^Jp&^D%W%sLvjuaDAv4;yqvfF;oHOH&Y0s zjGeA#e!i`Z>)7vve4Qo!FpF&j253n_Q!=S312LM0szNMq&iKdrG_0QjSeOSVbTTG> zIF`2?{$ak_n?4xc;E=w01I`+3vBn)=jCK0}d0385Hss1UH@4fUyrB*EUMvx3SEaM1 z{;czmKa>;zjud1}!2o%X@R2{OJQ$ZKS?A`jYkmed7W7)TJvh(u>oZg7kHZU7ysK_Qud23zB#k>|coo^Zcj8C| zF}pTQwEv*sg6HsChP*#*jYJB6EisFmNXvsH@9Up@FLJTC(EWWN{&uJ&)h~T)2Z)N4 zyjia0sXh5aq5#H_k7y66q^kI_v`j-gHE4NGju-`d!gZEuueW?e2(vf_CL_(-Gzxo; zk@>c3QsJ60d9X-L&i>I1W03|W!t}7a%`a-SUIKVJ(Tz+x(%rR{=6iW^@Su72+LDrj zbXw5fGo>^5tL{Dpr3FlHw3PTiqtcH3hZ}a6aq5)_;}@j*DRQVJ=rxeS&5wUzSMc97 zStYv75bn7}GUeI`V@;ykU@$c1D<0swvadz2H%m0l#tm zvy!|Xt5DXJF4&q|Bn0S5gr<+_WM7whIW1ihXGYJ5e&FH)n0Y@q(7A%D7BfyVvZnix zQ;B;f=9)<0pWjz`74wC$um{(c~s_PrNW3fBkOx zR&cdz)&U|c$n*A>ED?z`iP?Mr=M?i27JQu zL?%DE%sjh;zgY|&hY6m*DDbJTK0JkK?(PqgZL4XED`jsYhez!!f@rz@K#EI-KxK8( zbsLb}g&e)iMo_Kgx%Aija_4fbjA2eia`(4RfprEo7Kd#SDXvy8ZQa-0|M?HCfOo?YP~CViF1f#e$pqGjEZWU97gy4{_t>-~ zC5kdz$*`NLsG((J0H|`?#5jAHBp7eSMpHHnSeq0C7`_xg;D1-){CNVTuARPNYkEAUB*4&%Y!7dX zdH4buLLx!~ev>L!qCP7zIQZ*y+W*1ten~pG+Wctp@VUl_m(^GBvFGO;!LWW z0kiarbNRhEmC^e$ziRmHtd0oL_)vo!yI5e5N!9r#0N-HH6tZj1WcoWY@bjzoma07E zS7Mv}um1lig7}k-CTsC`+=%Q!WS$aTY?x;QOLK6Nc+8xbezY*Y_SS0$eIxVv z@U-j7-Zk>cj63G4rZ1MM{bBc~IO0R>QOS%}@uO5^+0rfLU{*8;fJU_FD%<91p}u!6^1kJfKNsvTd#;lP z{B#pYtPnX6{hACoeVlYpm+XvAm?cI4;z)@T`^_g;k?13(-dZ3Lr0y(npXFLB;qVNY zvhSZlkp(PJpi5ExSbqWcUi}yqLyq@bKK&aia~RMrD#3LOTS@a`j0(Z4DM|+341Xv6 zccy#jzV@iUQ-iKaJQ-KNe&2@q$(Pg$1QRRQ#q|}6&N$HSC1(w1O88@JIa&;J7llYf zaCaIz7OrY}aegZaDAwhU!BnlAzO9O9=WGm=_;pPuCGV!M=J} zw*kuauzBf{R3>G7RMY)8rO}pxI@_HG44*YBFMNQD4J+oeZh-qVSv zM`Mi1j*%FhF0b&aU|-{@Dxt8fgQ|m@aXcX*H}vw%I6^aot}Qb0J?*VQ9&h2o{%4j& zHs%GbaSuo@IBR1Uyh4NKeI!n!>I@AfeLhFuJNori0^!#iKJ{Mw0)by#gGD>A5RI54 zv6cO2_V*@=8$S*Nx&Hg~rFLk8lG43f`#A;Ar3I!I0|R!*_*Q%tS_$8Si&YOpWqPRv zyCxe=n0qN_{Jj<}@%q5>C1agrqXjBx(198vj1ONIH)LO1O@N^kCIv@%qe}>#jme`+ zef)ku8Q$|+bcO#%(>Lme{wTwCWh~%dhDDeL5+Z2fR zcm(CgL=o8evw_+e2neXRTJ^}-Fgy*RQL&>c|&dfdC(*b*ZK(C-Oj?2L@pabWr*v|u_( zXaQeQ8f9;JWTgH^{8&mHGS_hd3h%4i=zDvSqhC67p5wFYIC((L&vCY1KNef=p@`(> zd>Neh{ypyaq&6k2;L$~Oh4h(y(H>|+_y0eh1DSxQ;H?6(8gPVE9~tlmfZn~+|NSKk zRc|izTy)pO^tGSI5jCo;_B5H=S{tXmH}xgIHPQS@qdp1=ra2h9MxnA}Yx2APLDOMD zgKsQR4V9c|FF2$AB7ieJmpgK#f2>|v&zv%=ouZuoY;U1!w|){yWBz@OED>D3jsTVi zKKtNgG+j~ncYK71;;if{vL0nJPo!E zN0rlSK{Sn@U2`n%Mc;426)y({Zd2nQO7Y&OtWJ6?8+5+{cs3|5TGteHn?jP5RHv&T zptlABBeM$I|54DvrGh)wVEu-2>$>m%nRZRNNO3*W8s(tG`>G6e4Yq#TY+%ZE% zWcb|Kk7CCu&V-%4S020px+hoHYw;36F=E(zyY}2z$l>~T@5hSe&s!T)C+X1cZlB__ zoU~G}|H$a3NovB|tRLP8PDVn7;W$`)4d9@gPM4?d?rz%pW`sQ3@=u`9->2iCD2WjN zQe0miouDZ7!q?wgJnD|D%t^_}#qr`~eZB6JI`)$%%i_E(&bp&d4m%|)^xb%mDAlks zhxWd9g7KO|!b1zJkz(Vp(@JYIeu0S*+x|xU7$}6#wdn$a4pgF3fl$PXNO5-3cNUO&j^R?$LPy1 zOYxLO8$_F!%Sf+?@kd53=KtN99J$@BD`4BqB)l1JGJL3w$TXNeyPi-M^!M-~9CLDtvma9Y_Ct$zf{dhv&uaplFryKCH68W6PNBp0i&d7YTPBm~4 zqX1Lb`ThlN^$}i1vTPd8mTdl4GQg!vwY=cplCFDPoVOF7-h!oEYClsyRPdD&=N;s- z+Rr(6l`!OXOFzq;6O1-^7;r57cE5>D9cYe8X9fAV(q9YKG#S)4rw#5F&<@tc&=T$t z_3?Zt7G}t!X-`D zSMXNUaKhB6$68;tzgc(v?%bC0{B-CPR0h`bNL>N#J714n6N~N?N^6+&JPW$m4MQ zo{6-@W+*-YzuOOu2wwAZ@FV}ZVbnbqw<@ThR`4mGcJee)%>bJ_tJp4o5ysWo6y~1c zHhMMNZhzE>_tijZ)z!efu*Cw-a&U~YP+Y}9kMLw8%mSEc%;jNWjt zJamu_c0TJT6~dYKWOsoruG1K{)>h+a5W=k|qm%kLvCZtmX zOMu_lDM!urBwxcT4Yb>R^|s%7!e-a+L-lz-{>=|g|6dfq2_5Lh)jH|^v3T;$4uExe zRecRT$Ug8|YGu|SL#4*M=+&H{S)jJrYWGFGUN=4GQMyrS5^@K$pF^<13!g>e>rktL zx;#~{80}dz)!s)(GYAP;- zPg$evT9 z02Wj}|9Raus2*yAo{iQj_%e2<=kzEyjcZf1wkQ=vnLw%f`BBg2a z?KxbRXVM`UK9p&36%thawyxRQGY}s14Jg|b%2AC>D7EDlVA)7|4paV2!rHye;kK*LNCVYr^K@8eP%%rNL&!j!d;LLKm&4V@74~ zf>s-H8;S=4vxY9rdhB%zshdJ;Whar@KLyW_Bj9@959Z+H70y`R61J6kwL56i(~mF- zi<5`m#n#q8z7H+Pj6l7KlBC>I7N+3xr?c;7-K9|JPhE%|YJ!^Smwdk7>#a_fABPFS zOJTFao2Q)C6-$@=?P=uyLW}h>Pl03w`e^ZGgc8-xs5hVbkAuuc|m{faW%Z#Z=qH+pifR0@Ju+%Q!lbJ zZb7b~y9~c=w}dVaFIscZuGHa}p1zfp{J;?`WwQx;2Xs^8rUZZAiCp5awEsVLmyr*Kpkdf_ivagH~ zC~NVv&b3o}4X+^~Qf{ZAiltCji`eoraRqBuSAy91#en?Wd9oa?dhFH;ouzl0kFGW8 z8W?MY;4{K%^@F+J6|lL_3imD;4%We3CYB!Fe?LvN#~+oi_?h~srkf|hB>wIG+Ll-sqS@H2!lZPq5jj34e66rM}*aODt)E0*70mS1}-L zCJK|ER_dvg0lo3Jv&5V8?>B;YqzjMkMh7j^hL3jym@>A9R&O6D51d|YJZnKqs;IO3 zpN*J_+@4eukU4OZ<#0UG%R={!Y26?$#!oIEr!_AewTsZ&5HLftt8)u8&syEI^# zcd6CF6%ULiz{(XdkTj?nxGE`x_8+EahWYmV)JwlTi_3R^2M+%)6i7 ztIGd+9gbjlv1AR>h%Gx5pzS*OMYv7Dyy#`*GWma8eRnjQfB1GwWwXx-bGO(wfCO2SM8bDGciLVeV^~|eb4!w^Zw&J&Pf~|c|P}j zU-vbP!}gU_p!pu#p4?u;vZj)HzAG{sQZ#h>i%atSKMcH+HL-^`<$;J-1<#Io^pA^iST29X`^Hp$ONAT#%Zj~@8S4!NAm8av3^ zSV!Ka^AL9Lb`z6jsUCw1LkwCY)%s?<4w-|RK=!nSu{MBdrTE{|! zTu?_ju}`?9eh4O8j90Q>62HnlS&nMx$)f(2s%6ksgB3{G;7g~cCHofX;%gW%=m!Ee zjz6H)^aQ$Mb%3NrwhboB#mv95&z^6$w0=;ht>b8C{vjoE*la#WfQQHYNa4j>Qqm_$ z4P!bSuo*&XxI)NF%~8E7f;evV7jY!D7`McGOJ(x;b~gLgt#Lb+Z+YcgKi;!Mqgosh z_lg%zNfw?WOM!)LeUm^L!Mq}=`%;>XFG797wdGIlQqPmHrKb@+^UP7PH6D^wYp2~B z{6B+o)hyea9Pwtj^B%v*+P4b^55JjpI`re@h`aY9e7Bz}!Lzop{x@c*gmziYOKK_J=|XSLAk#+IYH7CzGE07as*$xGr4oRMOCDD(~cRSnKyHf}xM&i|kZ!joY2En=mJ>aZYS-pG9 zSjYBOQlczQTcLp|&tY6NYQ1_R>zRATmjQNhMo0&4ajsR1$cdvlvl%5AtQrugR;kET z|F$f}8=2@EzKkyfKYE1b{ODO*qok~gb&t^XyYH>MpB2iV%cOAQnOVpq~Gf3iw|@MauS@IuTl=Y@Z1m^ohj|tVvc8DPm$Frx&aF} z97mQCC>G!;_+~1E3WOE0lIZ8!>&Pn71u%xl9885LpO>=aHAJVC8ovB7-2M8kE-x-6 z$dzlIQOma*A%>U0$5!`6tC3&%Uf$J*yx1Q z_a@mfw|~Z!Z$T=GOAu88pKs^bI=^)4J^$j|yAExgLVlo0;HjweVikgpXzq2=w&IRg zsl>?PVK$Rm&yx|?tXvTJ2(^1#eD1+-$VsnR?uPf2l5NNd_E!J_P zoy5_H=A#r=@EFU+6XeXN)eJ_R*oQiL_;#ghbQdB(Tkh8of?h>Nu}9smGOYgXbTTrl zogdgS?e)UI&V5ohAyP#ek~`P+C}a@?-rFcu{AtiNpBwe^WRBP7+ez_e{9=m7uBWV# zl!1n!=yvq?$a#%!t(oocOqH&$mM+3V#^soSFmb+xY(IA``+JBFt;ZwauRj|Xc-GlR zP`vkHelKs~jTf$X%zyM}(^L=ij^}=BrXU7v67Vtjofz3;VnFZJDZt(Oj}4erj}THm zlWsje7ua~ZMnwY{;N7d`7n#dqo05>>-313hNS+HY!DKb>?z$`lWGmMme7^4bFs5ML zkZZN|%d^t_rs$bJYx2jwz7Vm$i?z|d+v5#?UqNi((Ort*i76!P5nna*fuX*`%j%|z zkE;?=0XGBG@s@-Kn5_1g2+7SLX#xI66Khqpd66brAJUq&6{a?bbJb>-@wrYc5V>s23=j|t>0 zxcdGiL;xgO74`Y7D2Ala1}W^BQ7dJB%g9pvEEhxH=}JXlteql2RvXoM-vJ1+Yt?*I z!Cue!>fAGuNc#6K8M;liXEN1^Xzgh>i9dGxd>_r*w2tcjfaRdd#OWcXz!7XVkT*#? z_k`dUS(C&Mxfh+8fDvyWVSt6U$vz}5jtNYtJEtkc$(??+mp1uon!1zrzJ! zraMfpB~020?FjFPHL`Jj+I;#A`H-VFu~}P6neMcgK-;(y+AXylW9Zu5cf$J}v;IR; zEr933twjezFR=`qtu!Q}Cs})-bz#?vjJ)i?2w4IX zZg@5!6Uq$ZAo-9;Fh-^I%RkWl;LS)P6|70I^&@Sma zKTMudACq8Bq3KtyMkpbEAMU3kobtgph}?E>O&pWThgj_Il7*j|Mg9>uh>Y`o@ zcAJK4e+xX*c_2bvt6Qzm3MHhCF%?91;+I(v_bwD&lh-1N5=EVVqHhMS5ElW4VJ(1w zV)f2^g7e2V-OoyeuEp-3r;~o+S9_wl$P)ec0*yUB6Tu*tE5RJ~aQ8+Z zW3I4rrAHFzSL_D+Y7L?5>Eq}*JUr&BTS^V1gYIoX^2)bwvFis7+Rt z{>DkSA6I8g7~(#W0T$JygGt>$P3SwSMF{a#7dCz~S_nRV`L*}y8arV=(3m=dFg5pF zE!J7;sRxM@W#ie&@TdownM%8~-qLdUZ~_{73)X@NH@%D3YNCDplf+JM|1QOhp-J%r ziY9-v0ZB^Iw}1sMrDij8#^m3Um@iGPSX&f0LiDp2Iz!9g^!lwQ8~1CI5@qfUMBtj~ zk#z0Gi=qqRmnHTd^b&Wo16xv9^!7B0@hV&3`yUSP*g>j#ik)vB#9DQ#;k^@GT=+L) zlVxg7-X9r&bal;xdRZ0WzL?@wt~P-3%I!)6i$^_)#ms6wi1nhORob`Z<<_AEMdlla zERaidWQt7m75Yrb=3RZ2h2YdQC!d>epf*F;Wtqpc?maJ}wyggo91L#)4ONi@OE_7Q zKR=H=qgqP$)t&qK+ETGc`4yB2E{>rOZMD^8 zhKpdnXFkEyb^$yg2Z4!nU?@T?RIES(z z-+hT8gF3=xPqHhWCjZ0NHTb|%OQ3DB%1pHB(5LX}P+{lyy+cQvzsq1BO4Yo3zmsQ*Ry;Z{uoQ4TUiswE47Zj`Md6c_uk=JUs+Ck|B^?plxHdtpjp{7 z0I4I5RDKikIJ%W)<#sX+yaH1~20E8xIL_BBM;ZS0On8mujvONc@<%>~qoWur44Flt z)S!`>_nRvjQ$!`M`(4*~0q|7RFG;Hl6(!0i?s86* zz75{3iqGnA&F4miPi+o;s^JLeJ}Kcn2#O!wA@)9xf9+Z4G7^}aM_+ExFJ1bp_ha_$ zW5*#QUA*7i9BsAApCO;onOB9%tZSd7XD+kyEgTT?2#m6_2wVa?xOR1AGl^#Cy<{?Lu$5>6Xw^H=X5$Qn6Qp+w62Bk5H%vP)g@zMfo)srO8N zsJT9sZ(*&Fy3^+x4^5ojtEa3qZ}cGIAt&VIB1Vr~O;13Jm+iy5Um+aC=TTRcm9lUU zq5;v9$3z;QyZ-SSZbCWq?qdS%cKra@7z;8r4LXNSn|3L7+t$S2lK&!T4 zM{FBMY%T=ad>jS5?^vn?7;&wgiO$wP97GJ|@t--JKl)IzNqR`g{>^tqgC8uae{W3z z5|93YWQvDVSBlz2Pd3}4ARXclw3l`hgN{~)f@wNR{FMvfQ>W~SKR(x^O&?AYb3}ys$iFONTRvRcwL^KBsGy=FR?)Bk*(qCB*$)jSnCZPH zhp&z(bnJ@>uco;JOFfu9!Ow?vX*tu-dh3|w(JeHQ1YKifVN>*yrN-r=1xV&8OsL^(0|4!4w6WsHpmqm2yEM!AeGV z@+1_ay{cQj5@qnL)Jtr-bZ<_bN6Lm0fDykdQ~r|cf1S}p`FT92x{}vA2h$r3P%XoV z5@V~F+OMM5FP*DLn~da`N+5Rcg~%RK#;;d$8JnFHd4a>v*myBqq3}CIrqL7p2z57K zqr;RKQT^&f_|AJ%VM2v8tfPhG4oGw@@R81EgSs&7funV=qY=!$g%}YCt45;!ctNSR z{iu2}oLw5=k2&hYS>p!DcR8#MWh#5etJW$;yDJ)s7~X03441BFhF0t8jSMyy%}4wA z{0jQbmXnR!>}a6r)TF}+=wNCR3LQ)zI*ac~PIf2a-{2`rpAEQV-|5&9W=}g<1?>m| z>Mz1w=ov@o*=Jk~SC8x0vnAVLf~cUN0(z~nk)`nb{Yn-hKhOs!VnokIGZn}*YsaKi zP=qVnRjsX@-JLK;>xxSiAUOp@|NlCLqkGB2#!4<~^A>8Yj@5sDEL0u{H zW5#g5qtev4%sReyadW#H?#i^`wKbZb1pK?AOpcI`{}Qt>y`R%9Y#Dlj1)}`~UadfJ zJkx~x034(>b%3zZ3=;o2{id8v7wJR#ei#RCc-4C_ox|}6XwQ#Y&*X7v6yhU-p@jGd zX4|>hRXI1mpycGqb9h(avTd}NH%5RFAMEDaOScWF2FR+?j97~HtlK%5zg<2J)ju-= zdBsJpU6f~3B2U(hUUG#e4g-=QHCFp{(171K?wzvi~)JhqqyHQjxM+sTH% z5rWfV(yxOK=bHCoICBzKIfApBp+3u(Glv~!MXTF9@5k1m70AvAFwiMyL#c3AsdB|X z3yO^y%G8m`nBZ>@lRb(;=4iC&0vwm6H8J2bUx33eIUhI*txT6}4GFF(0^GsvQRHiN zuZgqLx;r}~9Q#L0IuPD{_j(#B1CM_o^O11GjVi=^lq`pX1+C_cTe#8jHFlSUlh=`z(~YXViL@jkS+ z`xc{B=#{0{d-W?;x}Vz3L5Q#ZoOUhiq0&R7>og`aZn7WIROI zP{rY=^t-aZAoHykBhnfp+x!zovvN>skGFwsb}rwOCYMbevb4|FWc=GS#qf#G#)H}Y z;*H0>dX@FY=>Y__EC=C51+W6Nf-B(sQM^F={3Ug_o5|Atj&yiMRgp|di)B}fLsXCd^z?EC{eC;J ze38Z8Xjty>XMXid$z?t0$hf5D$VB0{bnKl-l8aYnTv7E58!hB_RXN$kTm>>38_?B( zEr@mjKO4C zawA$V>YJC6M{F?JfyhT+x+_!SC}5`<6NRW)Yz;Ab_qofvVJXzPXj^iq3Rc@Z=&Kgt zrgkSLZ$;Zk|x61FyCm6R%1-y~tGJfoLOH6d^%|uLBFP0RmmF zOb(`$6*yNPcgE3^E2T}Ha2j^Ojw7t6tp5#vfa}V6R7Bq2|lP1(grI5twks zwP#ecJ7?O6o`+JVxr?5M=0uWjsAwJ>d}1>_B4N`|HXjNsddEdYd@Us*%<6(XeKjy2qaH0s=XXL4gIO_Tc zC)AdgwaSAO>NoI3H(Itjqg? z#Gkhk(gv*g4MN2BNt$8DGbiRhMlT^}9JpPSE2Y|xtcX-zQ<$duo&F@+_WF(5uV&n) zF`vd7(R6rve>|MnvCKqpUUdywCf|2SGHjgup%T^e^^AvACp{4RR};g6xGY8=UN<0) zw32S(Ts<+iy=VVGw1h`RDvIk$~Eg^Ekib8Qn3}+ zU>UyFB*0!1<62AfeRRcJ6s_LspAQpjkTFzBryQ&c{81IBYrt`&xoF)xEvwwyaU8@L=AXf1}{qN&wNtl8n#5y{FfkCX7oC+cJ4#XRCFwJ7<=c) z<1S&6^iS0qavainsM=nE2nb0azo`K(er5AxE{5%I@?!V>*oMVF9M>xZW7d~)Uzlm^ zFKo0HFM|X7TUdaQB7YeHLrg(u7K6h(=0<(asYA4h68qq|uL_dnTQ*I@3$l4p0y1!- z0cbqZmhS>*C!7xl%Opv9-Pl^u1X#%Kmsy2)e@*UE{#eS`&eQmbfh|i;Zs``*0j^}b z_YdR|f&JWm%zY8BSM911ErHzrX?GyN7reCC&zNRwCZ%_@iP6}8h$~oq@pvxVQOuyP zA3aESrQqNfcNOLAY-UEQ3`fMO{^DU~v|F_i3D$buMwZ=ej{^>(L&IzM{9uJI=#T}( zPf5LN1&agxzg}v6jA~Uq;k$c8VG!vURS@*EJ_3?UgX37rq0U(avoyCZ7!BOy82bXG z!p=$(bb+%_tn(%^6ppyry6B%FDF@_Xns@@0ZhBwcOG~v6U5tJ3^k)!_s#R2#Rr>9j zL8s72;IEKqjvIbWo@5*+Q;>bleSf_1*b_v2)cuODJ3MN zpSk;_M zMUcT7miOkO)2>onFmcrP=epUi)yCBAAeiut9j4&P=dIMHuwh@tgr5=j#izwp@ocv^ z>LTD@5iQwwTTrb}nxN?A2e8BLX;Uez7vVA*3F|*zToAOkvKzD1QVnKd{}l-WT`xg) zLGE28l(hVPq=ddX5B@q#gW@is_vW@>{~H^D)+}FyE$cQ^d1u}$GXl8AQ9oX+7svby=zWN4_d&NpRVXIK=)Ny-kU){w_lK zM;YD-gC>pG}3aq**|4-s6la&vwsG zRh8T`G_`N0mr#!fn6qBJHkoB=NCM`6nR}}ntyuZ_E++M%+K{Ow+uESlY&!_Cm!Si? zkvETySmJy^!E1UWLK?|EdwbIU0lX(k`nVS;UpU>btp{`R`pN-!IV7LQ#5`N~jGeEB z=K`H`xswZsBeSTUy%S`}Lv^l3jXuop1yD^K&uhghtRp zMauPcwQKVb)!j_1#Gbcp%SF>W;PUAnb#U7`QL35Ax;r|}g})$rZacq@_M9i^A;Z&) zv<(Kj}D)VM3>r`N+XGle5a)+^pq+xASR=@VDVV2*JFndN?q?7QdjDKS!PokU`O z$oX?`Pw~2qL=#6oCjChmiWMRMH>9y(`SnfI0k3dYx(KFMHt!x3$S=hxWknL7OnV*P zCkSK3ihK$c9)%x`@t0X;SgaL4b6ER2!EkYhCq|Wsm{s!5{CoMI=E)<~4&rF<{EZN| zm1G@?FJ*&d_!HrFZ4Uli%52h5k3SphU}zVzy%n7PWk4yo^E#=-4(|yG@%9jt zLEv0N`PYD5iU$wNi;tLeoWTIZ&<06 z`Mg{!yy)vuqH>M3V0FqR*EQ--hn#%(S@-ZPAjJ#xUEI^dSz~oys4Z>N8zn{k5~tk} z%sc6o*bZOGcT8ry^(^XBb*O6~?*WwnT6Cn7&(D8;cV1m*(Dsj`T0E!2V7^BMi2P(r z0{Il@j}{2>z)dc|UB_Ijoo}ny(oje67@3myv1xNi^@s&gual*Jys5B0dTyVk5!i#E zCq5y_{C(c6*6nBHxOA^Jgk{a2!Wixm3i_GtE*2aliu@#I`cU?MQ`2(s zJg&Ikwc_cAqwdQ21MkQvqHXGHGCOFJ#MLye7pu1l{<@Aih|iTP(3p!F)T32%USkas zGi`k7*2@8YwQZ`)qbKv`xoghl>go%fDkFQ}-tQUZa}A>&BF45~h7W1x0DxWk8_}Yn zUGO%kq+SGXX^heXMVw^nw64mWn0rPZLbCk^I-1u^X~2b(>nB8YDVFRQiFYN=Lo0jt znoI025x_Dfv?D(=lp-V3LzG9ten^bSE0{Dl+epNr!)z=Qy)0ZE?r z^kKfNo%3(bhBGbXNZ(3Zk0xwKXYej}!f#(u5a9V==GqT8x9`0Xmb% zv5}4{vYBTQHAz(`rHX2N{Q<}M)nq_+oTfk9Pmj;Nfnw~rv2Rv~66mCqg4KdS^y$g& zIcuN}NBCw)e%7chf%eClSSxlTD`Y8g&S)+2y0|el*($W*lrRExi~=oB^$9Pqz2T2r zY;{_yYv0~kH|qDS^#oF@c-{gij^Q=5szQ`%hZTv55V5_JKEUP}2ESa1=~lMo z!~~pY3E|D8ZJdf(tjhcs#vXDye88$^l@R=$}$BygMXK8nb@%IBFjh4Fa9GV^NU6O6%=Kh6mKDnDKs-%L{n3|^w3V)A$wEhy+64os<0vy8&gRP6G1}br_7|n^pstZ28 zGQ|^iTF$YMxa*~L(p)%jIb;!4k9SSt;aS(Lj4``@Km8-w?=5aY8E(6ro?9d>0X#cm z*mND91Wutyi*#$&Z+BI37w+$zF2qNn0u8x|^4Hwk^SPC6$aX^sv;q*!JSAl38XyVD zQ8ZR2JV-Ukset`@;GGGJO_2ZlDm}u30-|OkaIE~+1!Pb^ zijOv3Pp5zuJPVBXkWO_Z(n0n+k5XTV*Z$-^k06rc3l?ypZMvymb#vD9=fxNs>YuIF ztrl5x_u5-QC+gyQ*gYh5np>uEoFc`-bE^+s?m>exZW74KuBCV7Cnu$hPY{ZJ;7;IX z!~8qj9E)#-EQxR)Yk(AV7;P0~LRX^^MSN=`V{27;J z5$jRwG)Ik)k!r?N&)X!+OCVe*$N|}L2slPuf0WRXMZ4`e;8-%J;wf6)X89XU^zBQA z&F5(GP9j!*$=;4_H5>AITVDB^@41QgtJd^%8wT^1ud1DqAL&}05H#bhSXhd`q zJxYxR_>naHmJ`yJ1ut72!z=}C3+>w?Q*<;he;ZNe9fT%y#C?^%kA*{bH&U~I=-e4Ju-g+3OO*ONLZ9d8C!mccHfSN0;3T|*>(|chMsuU0*pyN zkeZPhIDbaK(PI4qOcxWwcRQkQ6S7if6*I4h)nf(R}DkkJnrjoCWxvmLuTzua6|o85V+1s3-n`PTnHp0b*55 zcPqJUZ|SmwUrdO!464s6+Ndu!QhcgLo4@zaA(YV>`e{3FDIQg?u@W8kA`3R5a~%XR$3ou z7U2+YV~lIG-UwISRf>uIxb!~RoVdLm-ivd@=C;W);y%$w20q2{kDy2sSoDNyA`os) zsJPcj;P)B zlLn`FVkD*S%<5Idp4g4DW0F>QWy>Sns3BO8dhAY7J}WnGdHT8Cm)KUt6{(aSaMNou zKJ{2LWO~^F(;T^CDVXbgf@&6faqHsauIa0VlLtK+EmD^{V_ZpA8X~a{S0c?=ss!o=P*neaId)2!{R*BV_Y7{GVr>qsHeff#+pvK7=TkquiDHKk9 zGmsAMcU3|J6DQ9abk0MhujRqS&Q;?y#SY&z;om2{Q)9c?l=~-=y=TVjVMdoXau*8l z4K1+HuHCFqKidfDo0M}c*(eFo-9vVmjj+hqer8{>kIE8m}eMj5C?5 z4qtCMyu@KsiNEy!*gu&4oz3=ge+cndmL_f&Z>y>QdP#tdFDD!--;8hhkdsNoQsgZT!@^oM76Ig ziR-^%Tr!Tw5uK(_($t5>#khzs^~z>&==XQR*3HzgLji$0!5fBP@nk*s#DX~pCgYIf zL%nBPucw|h)_Tv~*LBKN*1V7IXdM~hOjY)H(1Q~G4@CUcnhP6uEKYe+m)@^8>h}TZ zEumo&^9U8N&$!2BT$_#T zYql?Tp+h>2-9GHb-La3>Y9wg@{>>Ocdiuja%niGN)m^=y=M|r5hSDn@QZ8ej+(0!w z+sNYHTTc+kIZuOmb_m7bj;oBlkCo|2wlZ(J*QhwV0hNu0PJwxtn;%NobrDm?IXOJcsvxShW3lVHzLYs8Owy@=OGBd z^XNWkn>mb{c5D zcp+&Af7_2{m~y~5F&*(Pze@`f%owOZPAzx#_b;{ZWwxs1}cs6 zu;FZJYhB=5IbxOGBvWn^g0jlF04#z%RlNwLIsMU+KE+7ZnL#Zk<6~tB?u5d|Wuw4S zyU&gmE*`ZU=D#dpRyH@hXH;@o6-K@Z?t5?VOi-27lekE6nN6q&s&?)X%1Vszhm8w} zFgSQ|{YLGL{0t<4#cPeh70JS!GraBm`31zy4kq%0_#V>cX3R&jMd9 zl?}|IiF?ry4rl>Dr+lfrAKdp3l+1cg45kY--wD>!ZWyu81LLsBNq~@4+_PN03{At| zJ&$yc8q+0M{{wNJi4dFnE~E!=qB4|+IG&nMWw?T~-6qT-;JGv@N-@AHDZ#g5GQ#0& z0$K^={3tcuu9rpH!XXg3iqk{GT&ko7)O_k5oRK6fw%|d5n zbyGPE?cuW2_3-zLQaEy0)8UWJHdT55pQrA^s3qq!(=1BzO z)EF5PIB5m@`qzpDZ~9#8&FSGiuk8hLaSmrAx-;)oV^%OW&G|c(uR(a}1~^IoLv$#m zxPa+<@OLXT9fmBlMVugjElmoBYvLsd!V^UBGrdC5c}K^D=Hs^wMczWcXcm4N@wAxB zMb)<<=QJastg@sFvxtuBQFPU$b-i`86kZ{!G{xfO{O2nS!(EV>RQM5Ab}vRg_OcR_ zsVUxG^G5R4cj|@Pr+FN9z*C&GD%k_L6fQmKZ*CAoPu@PYI+{p7HkGcm&8Pcd^5vrj ztn{fAkuJvQ!Afl19kOP7m3lyT4&3RRKqD3uv=G?0BoW_!ZhC7%TJNg*NvTH?eXY%c zd`&Gk+mud-{7RVTq#Hz_T{C96CVyn#vtVn^5r$A13wx6j&JBmpCkm&29 zh;;8pK#78w;pS3;=3i-!|C9mJ6)k^7_3)Cg)E$4{(zW`)2MP+Elo+v!&lA-MesJwS zP><_f*aWJj7?ayAX&Pa(MDh1v4_!a{CCbsyqASqjHK+T5JhfQlzWX1E8~Fd~uBex- zS6G?7;=Dr|{-tJl$~Bqxqrzn{>qXdS*m55i_t zaFd+$0(@vD@i14{56K7Y+P7x(i+0FaAsyj`9ceao(^Nxiu?q_Cw0Utc+u<|gNIvNf z)|%L(qTM0i)9&uRFU+6fx;&SVvkq!jIb*(DuA(EX!x=Fu58Izq7*EtGP>h^~dEX z&t1>|^pCht{2B7)Wg)Nt7>4)`=gLpe&8dAK{iKYrUa zyo@M@ks!0KxFdP(Za8jJHFKSQ?d`4evS{9jY4B6VEnj4qY?)xq=6Dt+3nos4PY|z4 z!T);+pN<$g2&}R=#%Gn@Jjw;Ebnbt(e8g%eR1q1gUZa&qqH8QP9C*Mxt@?)}+GzHU z5{cM;CfAkHsyp*6X0O{eC+1qB+mPwbnf;;MWV1PY zyb$ft5-%h1s^;s8W=gk8osLL(Ufny%6FDwGodXNG=(5}J(UC!YRvI7|BC$!wj)|(x z>~eYwxqsW)B511LGQ~HZ#Z5}DEt6jn{)-yIv)3v9A=>Zv_~up;f%Xn9-uWA1>;FyN zi2r|{2IixnrzXm_c-J3qUJ7p|jUgwKTRX}TD>Y*D50-1`uJ$6n)QwkNg-%<+M326C zqqz_l*vs6t=fr6sq8Fllr14+rjGmfy{q)?qS=Mz-5ss$0Y!AQ8>K=8%xv$nl`SmQs zoa?q6Ih~JWnk`>daujGNZ-;M77b^I_r;IiJ{cV27x$%>p)(WG{3sePjRD=&RigzwY z{DvDML2|=+^BL()*(nvHN0+y6_<(5+_x4Zg@+XtdZzWN$MPJWvD$(4A7BBJCHvl1* z$mlu6wxhiG4yesH7fRvUsRDq$MB_4p>~FpK1L4&6EBgp`_Aq7_8nB~xewV<71p@q1 zRwuKoCVU=j4kg;H_ejQ8@H?tPneNxf3QSH`ui=393`rOY%m#odmVcl%4B~*y|3CZ! znxw5lkwSxIA$nZ`2>uP%%2e06Imb0{W2j;yWq^1UjHqL5HNLuFd*yFCup#-bXv;kd zqnBiTRduQZKB4+=PSgq1-0_esdI_WZ52e28-VnZfHaSJ9ENc=R4*t~*O-xD*(eiQQ zm8Fj%JT$BN2TF1y#EvD_p85rTJwEFn>IF^WUi6>-gesr;mZwHPNm-^ak@!;LU$y>2 zd5dPxKO2YcoPG;e#nc;ZJ&H{XcyUxd{JxA-S+hau<>4{|av2d0giau5E4#qd(9Sa= z&D1j_I$B(C#Qu8TvoH6OXyUH1${z#a0m~T87f#D^#O|a}da#5v-O}=;-l+iAwL_K( z8Zyc$R<20$jECNgRW*{u5)uVt82Nf?=g6F;L*V`(du!q`*}9|E!|05geu17tzA>GS zN|l)4s0#EzIGs+f>WRu45Tw&o)YDt6GRu0?QGS&JUEr{(5EETZ*Hdd>kgYC{Vi5ma zITXt=EP-}sEY7=|FtRyKy!`@i2}7T~$NljEH0(HbFjFsb$w7~noN}$3g^KiK_Qt)t z1w)4)#qiT8=)Mr%6ox-5G~p(4z?7Cdj<@-E=X*hQO7rX>IRkVI$xpXB3FHn3nk%MC ziYAPyHleiBCT^h*k8aVI9%;x6(PN=bckd452R;UG2?i@vu5FnN)t{j?lLCCAzUi(l zuk#iBy^S-5+BQMan{>+Y;!v z32R%wip)}jzmNR^Q%9FDl9NR%1Bmbg%wW|K48f7$ZWEh1MiQ~(9*HuCP1JP6xW$wRT`#9I!=apGCECAy5H%^W97r3d%eY0Y%uq$>GpxOKDqfhq>ACOntO7O(J1BL<^5(! zmczK`rvo>MfRkWmCn_llX|V5=b!SJ|g@d^)-$M3d3)%Yn)5E)eY<)PdAE4ILzWZ`o zUO8@R25RpioDi5;d+0Hi=86Et<`VDn@e%_c{R6c|5Jd^Hhz=wFU9PK>WwbKkacxTl zVp*N|oYorwc%j^Xd$*16MN0dey7EN6ew4^@t>_+0TvTsYj*hCk>Ff$VIWLGKQ<)Cn zzFr5Y5)=+$u8)FexJRznVauDSOT-%v0#;W>?x^LdIm6t>a;_ywTsZErioCD-TatM6 z_xtA=T4)9kiksUQX|O>1*>uRfcxju5S^Y7hiA?q4b~UTWw*9LNu({!2FrnIHwoqEV z)V_sr0{nJzfm7uL;~HLXs24>R#{M!kqjU#^e2!Jzs7DznpXKf8Xlis+=%<}LPhivW z9D@6z(vS?e9{~=~L_sknk+yeGSzO1uf_kLoDbf@xeKzNCl}a+Q4SnJ0i?G zd+g7q!2@pq8zS1p138Tdf>%`p`qHI7_Ugt)F_C+{18(^*0gSq4dK>V8YhBg(TN^FS ziVYlxocPZhJikb$mY#`T{|D+-52V_zO_G!?a4xZrT3eV?jaOvH=%61Kf#rEGG1#84 z97MZX>q^Fh^9Hu*=?7!B!Jfy;g>#h8ZLjud54+)6bdbG;U6ORjD&R31_!{7rfZK49 zfAEwh&-7+-(9`f`<~MFNMkpIL>P4oUNx1`s`a_jDmRLJy+}FbN2BKn>Lq3;A)OXMKX<3d+jgE~>+hAMNc zlT+UUvbj4nrS`uFLY5#tpqTssBm9lPE_JMkRw#-rs&pRzWHupNOR$1=e}Os~ISs)* zg??$`$VIeE1wPywzvVp3J~6EZat0>5LSo;&Y$_nM^6zt=R{Q&*T3K}?=oWijjf`Q( z^G4#W7|h(tGOQKVJWhMNMDhcr66xx33*D8WAGQ(Qc*|lbWJM4CV5Uz z!O6%S4ZG(685Tjfx4(D5sAuS}q#=t zdMuW)(&2VwAh#5FM0tM*dz~gMs~Q^Fq-ldvbFFQMrQ`&1Z^Lzty1W#dM4+pB(Yszzp)hE z@$O{b35KMNv;k8E74a8s42&F?5bVf)%1RVeHL0z(nCB`O9VII8wAbFd5D%Z3NQ&SM zIa>Q;nj(P&b{MlUnwbNJm6;0fsVJ^h&i*I19|P*2n##BrnA-8uEz>bk`{tkaqaeU? zWwUPIl=R8#0n3?Af*2$R8Z3!CtNr+4U=km1luOg!Eb~q*T1qdRKwBRT4Q_bc0lJY` z*sg5$5@}Owv7F$m6Qe5iU|jegh-dm3cyMoS*M!Uv9#66@s8nP)P<2@e^p(6OltV}L zIRoa1fsmD!hUUbC)#czy(?z5Cu4%&x5lueVXJQmX;%bJRf+B^D|Zk!B!L zi8Cay37aM9k!7gD(oMW7wJ%t|`LQWhC^S3Pt5DFHu?9L0(vKC?IsmU-8J=3cV+9dDcRVQp8Nn>Rc5 zU+H|(*eV^Ywl=WOxj?R73@m@lz;y@2{@{%KW${*p1cPd^!Wpd$X`4*z zeh7|gu3s36rl}4{q6xJ*{{D&-iCpPM()*!kn}Y zc3a)$qaV88Mepr6(V^JvSZMc6Yk$J&u++JBwX{9M^*wW^>f)>X(I1w@KEU|-dKRAU z9%@`qISLVl9<;72{m)k@018pbU{Pa%p$W+~eLe}hB4dsp-F$c!iD^$DI06BGkVka?B+fcR|C8`9rx8C z&QHnTRxb58?L-AQe04T-%P+XFq`lhoeD(#M&vG00WMrC)djSo>BX7PlgJ}N?E4_o8 zts(y>Uk;%0bauHiwW=I?kLg#>h4hIZZ`mT+e}`!Q01EeTxQ7K~j~@|A=i!3*S6xH@ z03MSu^jOLMRr=5W00gxCt97s0qvAt&563ZFCxpC9BCM?F!EJ6jEWXNmHG8P=&WmA> zvf4(H9^pkvHjSY*x}(}4Zu}4MtTS44GYl;7c%Oz#?(Em0=VEf|Rq47@*`4qF6(jx$ z-F4!Nng0N3-+&fk?A))Nt618uON@WV#9(#E`@nr`^E>uk_|xO>*~ZTP%SF?r{{T&$ zXObzQW=+bWLnz>>z`^Wm_oMb@{i++lmazB($Hk}7)C7WWywDHsk=;L)dymC$*z4hc z#pq9tz8F2Vt<~4>50(M9nEoGh{XZ)BOus#^lG`lJ{{V-yDs;C*{XY*)PY(%=sg}#? z*x!fj%cZ=}%a;EDf~fpOv(aIXNANh3`Z6~(l1L%o_P{4TgBAI|<8O!>w~YKxtoXNA z@a@W8YqwWd(=wn$`%T-K9n>ht-)1{|=D$|_dHXzg%fM4S9wpEU#HWejLh%qg%DENJ6;C~K$I7`LTVOU`<@>{7@7#p?*$GO4Hcn9q-`)2;u zpS1Ub+u_E!pu?tUGhSQYe`nZRyUO!gHu!UJ#1>U=pJu`H0nRwDwLBH@7vc|&=SzJP zNteqcW_d@K7#~yD@XdaL{4xERJ|27=wEqBv*WxVjTwOpn?vw?FBkT{}KjaGVb1p2v z<-5zCr$|Rvf6(!>EY}T(T&`D_NUi?>;2)nK@J%n+4(H+HNBc&6b+!8?+%cEaEN(ys z-7)^ULD{kQM`2$lf5AsSEc{XZr@ki-5BNV!xc>lzQ^Vz>wB#tBPK_x9_vpUW`g!|8 ze$x~9_9=WF;H}pBN8OT7y3=F%FSUF}J)|&zah%s558*L&vCllsm+xA%BhnH706*(} zy!^K*sZxJi#px%sdn56_%u1l(3 z#Mf{}oPby^2c~Pzs_&`U2-y9N{he6J@Q1_3UL9>BQof%kub~GWE9F0gUlBYPqIf>r zO}x|~Lki&h*u{Fs{4NiMmg~MvX4nSceEe4{!x~IwKm%orAPjW=4%O)P9}9jQpbrj(V4w^Qma(D#0LN5UnoaSu;mK`_sYJ{= zZRA#!r|k>y(#bYUd(TgmN&ZyA$4%oOfu9b%d!xUHb?qM3TRBSaiJ*;;h4lq_ug~Ax zJN6v?o%|pB5PWO3_;KJ34%blBye)k?{hLmLCwseS_glycs-HC<1sgmX`})`8@59Mq zGRJsIj{6Vtu3yGqA3hywz7y0mX&J6f%r5{+b<>0HN%Cem+odAuUcl)YAqYMtM^BMb>0Gupn8{{VzL!}8w)Z)Xz6 zo)HuU$FRo(+P5_yht{?dMSl&tEE06%rEIHPWOL4zr^-GC_(Ngg-7#R&t-QEO;Z!dm zd)J}(d*LO%pyelTCvPB;fNS2DNsM7EW5XW8v@LAe2ouHSKex3+syS{7Hb;yPh3TUo z-hArBVY_kKyBjYEL1QDEn8HUW?0Cg{h2@kp+C)%fZ5aoSYLS8&-D6exh5_`f&0|jM zbIA1Hhk9yVn~(&Nx82*=*I5sPEUl&4HM?V=$*)XJEJ1R(bSr^f&-PZBZ5s4qR!m@j zpGv5!kkzz2vfsmrrb!#vBO(F_8RIq3-DnzB)Jo`#w+?<|*w&u0s!H=Lg*>sq!1m(0 z-wR8pBoBE!LU{oBLF1a)2=gEKK;`tK{t!8RE7!lYuRrI^QT?TP{{TK>fIt7&{11+Q zF$x?EbgK&>NQGpkLkv~+K*ws=lOaniNcG`AZ% zeQH3K%qlq;+nU(4Dj8Yx_*M<8OBK#hvZtkPFPNxZM_!bg(!glU$i!@>0^xkI!8GWQ zGKOJ;TE^Xcy~;DiWYvy{HOh+C5y})vAsJehS7Scq;M9=<69%VSV8hM?3b@9`GTf)W zQa)jvbgMpCx+Bb7aZOz9=k%)rVgLXRD#@`bM39if0~P9j556yW{{Z2prRVrg`Qn7& zye;!Y-&H(UnZ>cO=3@r5q%aAVDEJuWv9E`vS`M9PsYUc_Lpro!QaqI+n(Tguct7^< z(eBV#d_vKR9`f5^kpBR{8~kh0{{Z1}e#rhV#m2J*pkvzR)1S~9{HS|G11P*xtz(HF zB>Q5%M!y7Q{QUGBss8|mR{ZXG6*yl8<;_XTAK_=}xBMjEu`uMvq<`QefAPAp7semi zN5X%<(4e&}y*|rngZN}EepX#W6RP80)w>SI(Kh=s)NmiR) zzwi&ypA~-Fx@0lEmw>dBk;2P!@~Hm+fG_yh#hyR-qvOAbw|{H#HRP8n56Kezv9Hlb z73Xo~(|O=k=!Rn(dBuBqXAb4~2hE41xx2kz{11`o;Ie!s7g{jazU-+I@8SMlD&5N4 z!)@h}miFycWfQ|D=*B_ztGZM|;h7}KbJD%T(=ieW8=eC8sN(_W^1;gbj@7+Alu*b~ zKp#qn`#yBXmN-7t0e($3+BlJ-&prCou<7&0!;Fm9)HWgEibeUENa@z|)rqR5 zp>ben-OMDaw`DawwY-fU-grIg+5)hz%k7a}Akp?(CDc#5dgmD8fkyG@O{E)jv)dyO z>)N_YTiX+AA!N&TBdu^ISt9#@pQUbT6QPg^cw@x|vW?5LOBj^LmKp8Rt%*QiDl$On z?^9gZc^5d4?*9OEW}=b^)=`pwDhoRuD&efHSjfjM_i$@KNcXZUNO>aNjW*-`BHA@q9Yrc>H&)tXTq9;8KIt8+ z14>k$a|n;GR_G`yr^0l$m&zQv9OIzIK&D(-+f3r(+dIh{u~8}rCon)cJabc9+}&Dv zkVlLj4-^>ku3MYXTIp|WN|KJeVxWyRJt9>}!2T7Y@HFRf;<0T10OS3Kv96gu;QCYn1)Z#0!nrCJ&{swxi9lZ6 zsw;J0PSvFV2RWbzi&)Yk$UD{8hdKA9O42XsWX>w~tN@r}(y77F(s8&Gu>l9M&M6v8X(HHi8?{Lv z-xXH;YKSK%kQOkF)I0M$7+P`z@~$1Z%(GBNT&Ph z4Oz4U&S8q{G}KccAXQ3M1C@@+}Fn#`ly2~xm=U~UD6)bVaNF_(*T8N-Sz^PzvY0oLSjpbd+y+w7p zrQBC?t6N4R0~rFabnp20tJIFD?2d*TReKzU9OD$^l52PYcEDcMiEPb=8REBQRcl|E zXNn3n>?X9hLe~KMVw^2nbT1IV13Y#Wou+@Ot;SyFD`s!K_)rH+Y?I!^BMLIUl*ck#F@$A(>6&zsE!0Y+f$dlCIe}R9pou{; z{)vBi2K9^Q-TmsfaMP=OsDYEl7qxSia!9*?Vli9xWVD|*JWyiSE70t;E4!(!B#52B zgYur(6@hN@+g%;JD6W^o;74};U(5TJ>BV!8{{SBiKst@98_zSzaI=NmzZ@Fq7I-YA z+F}ger<_+QBQb?ZJq2pn^QW^OxS)dcmMf^Yn-&$%7zc{zbh-7NDkJiVBT=^lpsr^@ zC+#Xd>$=bhZC#>nS9s&K2SSbFk Date: Mon, 4 Nov 2024 10:01:33 +0000 Subject: [PATCH 11/87] tidied up formatting --- .../microcontrollers/yolo-on-himax/_index.md | 9 ++--- .../microcontrollers/yolo-on-himax/_review.md | 33 +++---------------- .../yolo-on-himax/how-to-4.md | 4 +-- 3 files changed, 11 insertions(+), 35 deletions(-) diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/_index.md b/content/learning-paths/microcontrollers/yolo-on-himax/_index.md index dd826d2782..61aa41bf0e 100644 --- a/content/learning-paths/microcontrollers/yolo-on-himax/_index.md +++ b/content/learning-paths/microcontrollers/yolo-on-himax/_index.md @@ -3,12 +3,12 @@ title: Run Yolo computer vision model on a Himax microcontroller minutes_to_complete: 90 -who_is_this_for: This is an introduction topic for beginners on how to run a computervision application on an embedded device from Himax. This example uses an off-the-shelf Himax WiseEye2 module which is based on the Arm Cortex-M55 and Ethos-U85. +who_is_this_for: This is an introduction topic for beginners on how to run a computervision application on an embedded device from Himax. This example uses an off-the-shelf Himax WiseEye2 module which is based on the Arm Cortex-M55 and Ethos-U55. learning_objectives: - - Run Yolo model on off-the-shelf hardware that uses the Arm Cortex-M55 and Ethos-U55 - - Build Himax SDK and generate firmware image file - - Update firmware on edge device (Himax WiseEye2) + - Run a you-only-look-once (Yolo) model using off-the-shelf hardware based on the Arm Cortex-M55 and Ethos-U55. + - Learn how to build the Himax SDK and generate firmware image file. + - Learn how to update firmware on edge device (Himax WiseEye2). prerequisites: - Seeed Grove Vision AI V2 Module @@ -29,6 +29,7 @@ tools_software_languages: - Bash operatingsystems: - Linux + - Windows ### FIXED, DO NOT MODIFY diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/_review.md b/content/learning-paths/microcontrollers/yolo-on-himax/_review.md index 9b1bfb96fe..27a46683f1 100644 --- a/content/learning-paths/microcontrollers/yolo-on-himax/_review.md +++ b/content/learning-paths/microcontrollers/yolo-on-himax/_review.md @@ -2,38 +2,13 @@ review: - questions: question: > - PLACEHOLDER QUESTION 1? + The Grove Vision AI V2 Module can run Yolov8 model in real time? answers: - - PLACEHOLDER ANSWER A - - PLACEHOLDER ANSWER B + - True + - False correct_answer: 1 explanation: > - PLACEHOLDER EXPLANATION 1 - - - questions: - question: > - PLACEHOLDER QUESTION 2? - answers: - - PLACEHOLDER ANSWER A - - PLACEHOLDER ANSWER B - - PLACEHOLDER ANSWER C - - PLACEHOLDER ANSWER D - correct_answer: 4 - explanation: > - PLACEHOLDER EXPLANATION 2 - - - questions: - question: > - PLACEHOLDER QUESTION 3? - answers: - - PLACEHOLDER ANSWER A - - PLACEHOLDER ANSWER B - - PLACEHOLDER ANSWER C - - PLACEHOLDER ANSWER D - correct_answer: 2 - explanation: > - PLACEHOLDER EXPLANATION 3 - + The Grove Vision AI V2 Module can run object detection in real time using the Cortex-M55 and Ethos-U55. # ================================================================================ diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-4.md b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-4.md index c0fc075bb3..3a9f4e8a96 100644 --- a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-4.md +++ b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-4.md @@ -13,11 +13,11 @@ Exit the terminal session and connect the module to the PC via your USB-C cable. ### Step 4.2. Download the Himax AI web toolkit. -The Himax AI web toolkit enables a browser-based graphical user interface (GUI) where the live camera feed can be displayed. +The Himax AI web toolkit enables a browser-based graphical user interface (GUI) for the live camera feed. Download the Himax AI Web toolkit by clicking on this [link](https://github.com/HimaxWiseEyePlus/Seeed_Grove_Vision_AI_Module_V2/releases/download/v1.1/Himax_AI_web_toolkit.zip) -Unzip the archived file and double click `index.html.`. This will open the GUI within your default browser. +Unzip the archived file and double click `index.html`. This will open the GUI within your default browser. ### Step 4.3. Connect to the Grove Vision AI From 36bfaf39ad347d7c39fbeda7eff6ff23061c8eee Mon Sep 17 00:00:00 2001 From: Your Name Date: Mon, 4 Nov 2024 10:24:52 +0000 Subject: [PATCH 12/87] tidied up wording --- .../learning-paths/microcontrollers/yolo-on-himax/_index.md | 4 ++-- .../learning-paths/microcontrollers/yolo-on-himax/how-to-1.md | 4 ++-- .../learning-paths/microcontrollers/yolo-on-himax/how-to-2.md | 4 ++-- .../learning-paths/microcontrollers/yolo-on-himax/how-to-3.md | 4 ++-- .../learning-paths/microcontrollers/yolo-on-himax/how-to-4.md | 2 +- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/_index.md b/content/learning-paths/microcontrollers/yolo-on-himax/_index.md index 61aa41bf0e..59d523d0b6 100644 --- a/content/learning-paths/microcontrollers/yolo-on-himax/_index.md +++ b/content/learning-paths/microcontrollers/yolo-on-himax/_index.md @@ -1,12 +1,12 @@ --- -title: Run Yolo computer vision model on a Himax microcontroller +title: Run a Computer Vision Model on a Himax Microcontroller minutes_to_complete: 90 who_is_this_for: This is an introduction topic for beginners on how to run a computervision application on an embedded device from Himax. This example uses an off-the-shelf Himax WiseEye2 module which is based on the Arm Cortex-M55 and Ethos-U55. learning_objectives: - - Run a you-only-look-once (Yolo) model using off-the-shelf hardware based on the Arm Cortex-M55 and Ethos-U55. + - Run a you-only-look-once (YOLO) computer vision model using off-the-shelf hardware based on the Arm Cortex-M55 and Ethos-U55. - Learn how to build the Himax SDK and generate firmware image file. - Learn how to update firmware on edge device (Himax WiseEye2). diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-1.md b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-1.md index b7ddb67739..da46268655 100644 --- a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-1.md +++ b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-1.md @@ -6,7 +6,7 @@ weight: 2 layout: learningpathall --- -## Set up the development environment +## Set up the Development Environment ### Step 1.1. Install Ubuntu @@ -27,7 +27,7 @@ DISTRIB_DESCRIPTION="Ubuntu 22.04.5 LTS" ... ``` -### Step 1.2. (Optional) Install Microsoft VS Code +### Step 1.2. (Optional) Install Microsoft Visual Studio Code This is only optional. You can use any text editor you are comfortable with to view or edit code. By typing “wsl” in VS Code terminal, you can switch to Linux environment. diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-2.md b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-2.md index 7b21f37c45..388c390f06 100644 --- a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-2.md +++ b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-2.md @@ -31,7 +31,7 @@ git clone --recursive https://github.com/HimaxWiseEyePlus/Seeed_Grove_Vision_AI_ cd Seeed_Grove_Vision_AI_Module_V2 ``` -### Step 2.2. Compile the firmware +### Step 2.2. Compile the Firmware The make build tool is used to compile the source code. This should take up around 2-3 minutes depending on the number of CPU cores available. @@ -42,7 +42,7 @@ make ``` -### Step 2.3. Generate firmware image file +### Step 2.3. Generate a Firmware Image ```bash cd ../we2_image_gen_local/ diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-3.md b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-3.md index 9beb5dd4cc..b8fde69fd0 100644 --- a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-3.md +++ b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-3.md @@ -1,12 +1,12 @@ --- -title: Flash Firmware +title: Flash Firmware onto the Microcontroller weight: 3 ### FIXED, DO NOT MODIFY layout: learningpathall --- -## Flash The Firmware +## Flash the Firmware Now that we have generated a firmware file on our local machine, we need to flash the microcontroller with this firmware. diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-4.md b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-4.md index 3a9f4e8a96..2aa5632762 100644 --- a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-4.md +++ b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-4.md @@ -21,6 +21,6 @@ Unzip the archived file and double click `index.html`. This will open the GUI wi ### Step 4.3. Connect to the Grove Vision AI -Select 'Grove Vision AI(V2)` in the top-right hand corner and press connect button. +Select 'Grove Vision AI(V2)' in the top-right hand corner and press connect button. ![Himax web UI](./himax_web_ui.jpg) From 6f58ebe28f7d114143f893d66713bad1e5dab121 Mon Sep 17 00:00:00 2001 From: pareenaverma Date: Mon, 4 Nov 2024 09:11:34 -0500 Subject: [PATCH 13/87] Update _index.md --- .../profiling-ml-on-arm/_index.md | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/_index.md b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/_index.md index 593c7e1116..1c0e05223f 100644 --- a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/_index.md +++ b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/_index.md @@ -1,22 +1,21 @@ --- -title: How to Profile ML on Arm +title: Profile the performance of ML models on Arm minutes_to_complete: 30 -who_is_this_for: Machine Learning App developers who want to see the performance of their models on Arm devices. +who_is_this_for: This is an introductory topic for software developers who want to learn how to profile the performance of their ML models running on Arm devices. learning_objectives: - - Profile timings of ML models on Arm devices. + - Profile the execution times of ML models on Arm devices. - Profile ML application performance on Arm devices. prerequisites: - - Some application development. - - Arm device with Android OS. + - An Arm-powered Android smartphone. author_primary: Ben Clark ### Tags -skilllevels: Intermediate +skilllevels: Introductory subjects: Machine Learning armips: - Cortex-X From 1c9ff903299f163763370724055f588be7f3461a Mon Sep 17 00:00:00 2001 From: pareenaverma Date: Mon, 4 Nov 2024 10:11:23 -0500 Subject: [PATCH 14/87] Update _index.md --- .../smartphones-and-mobile/profiling-ml-on-arm/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/_index.md b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/_index.md index 1c0e05223f..3bd9669e90 100644 --- a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/_index.md +++ b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/_index.md @@ -16,7 +16,7 @@ author_primary: Ben Clark ### Tags skilllevels: Introductory -subjects: Machine Learning +subjects: ML armips: - Cortex-X - Cortex-A From f87f6dd5ef55dce5feaefe96fed3a6bdd2d6dcfb Mon Sep 17 00:00:00 2001 From: pareenaverma Date: Mon, 4 Nov 2024 10:17:52 -0500 Subject: [PATCH 15/87] Update why-profile.md --- .../profiling-ml-on-arm/why-profile.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/why-profile.md b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/why-profile.md index 8a0d20d1a6..75ac1724fc 100644 --- a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/why-profile.md +++ b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/why-profile.md @@ -1,5 +1,5 @@ --- -title: What do you need to profile? +title: Why do you need to profile your ML application? weight: 2 ### FIXED, DO NOT MODIFY @@ -11,13 +11,13 @@ Working out what is taking the time and memory in your application is the first With Machine Learning (ML) applications, the inference of the Neural Network (NN) itself is often the heaviest part of the application in terms of computation and memory usage. This is not guaranteed however, so it is important to profile the application as a whole to see if pre- or post-processing or other code is an issue. -We will be looking at an Android example using TFLite in this learning path, but most of the tools also work with Linux to cover a wide range of Arm devices. The principles are the same for other inference engines and platforms, but the tools are different. +In this Learning Path, you will be profiling at an Android example using TFLite, but most of the tools also work with Linux and cover a wide range of Arm devices. The principles for profiling your application are the same for use with other inference engines and platforms, but the tools are different. ## Tools -Currently, you need to use different tools to profile the ML inference or the application's performance as a whole. +You will need to use different tools to profile the ML inference or the application's performance running on your Arm device. -For profiling the ML inference we will look at [ArmNN](https://github.com/ARM-software/armnn/releases)'s ExecuteNetwork. +For profiling the ML inference, you will use [ArmNN](https://github.com/ARM-software/armnn/releases)'s ExecuteNetwork. -For profiling the application as a whole we will look at [Arm Performance Studio](https://developer.arm.com/Tools%20and%20Software/Arm%20Performance%20Studio)'s Streamline, and at the Android Studio Profiler. +For profiling the application as a whole, you will use [Arm Performance Studio](https://developer.arm.com/Tools%20and%20Software/Arm%20Performance%20Studio)'s Streamline, and at the Android Studio Profiler. From 1c8d85fb52f9cbfb7b16f3b1d83ac907052c99de Mon Sep 17 00:00:00 2001 From: pareenaverma Date: Mon, 4 Nov 2024 10:37:16 -0500 Subject: [PATCH 16/87] Update app-profiling-streamline.md --- .../app-profiling-streamline.md | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/app-profiling-streamline.md b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/app-profiling-streamline.md index 976a3d0b7b..86fd7702fb 100644 --- a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/app-profiling-streamline.md +++ b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/app-profiling-streamline.md @@ -1,5 +1,5 @@ --- -title: App Profiling with Streamline +title: Profile your application with Streamline weight: 3 ### FIXED, DO NOT MODIFY @@ -7,26 +7,26 @@ layout: learningpathall --- ## Application Profiling -Application profiling can be split into 2 main types - *Instrumentation* and *Sampling*. Streamline, for example, is a sampling profiler, that takes regular samples of various counters and registers in the system to provide a detailed view of the system's performance. Sampling will only provide a statistical view, but it is less intrusive and has less processing overhead than instrumentation. +Application profiling can be split into 2 main types - *Instrumentation* and *Sampling*. [Streamline](https://developer.arm.com/Tools%20and%20Software/Streamline%20Performance%20Analyzer), for example, is a sampling profiler, that takes regular samples of various counters and registers in the system to provide a detailed view of the system's performance. Sampling will only provide a statistical view, but it is less intrusive and has less processing overhead than instrumentation. The profiler can look at memory, CPU activity and cycles, cache misses, and many parts of the GPU as well as other performance metrics. It can also provide a timeline view of these counters to show the application's performance over time. This will show bottlenecks, and help you understand where to focus your optimization efforts. ![Streamline image alt-text#center](Streamline.png "Figure 1. Streamline timeline view") ## Streamline -[Streamline](https://developer.arm.com/Tools%20and%20Software/Arm%20Performance%20Studio#Downloads) (and Performance Studio) will be installed on a host machine, and will connect to your target Arm device to capture the data. In our example, this will be an Android phone. The data is captured over a USB connection, and then analyzed on the host machine. +You will install [Streamline](https://developer.arm.com/Tools%20and%20Software/Arm%20Performance%20Studio#Downloads) (and Performance Studio) on your host machine, and will connect to your target Arm device to capture the data. In this example, the target device is an Arm-powered Android phone. The data is captured over a USB connection, and then analyzed on your host machine. -There are many [tutorials and training videos](https://developer.arm.com/Tools%20and%20Software/Arm%20Performance%20Studio) on Streamline, which you can refer to for more depth. Our example will be Android-based, but you can use [these instructions for Linux](https://developer.arm.com/documentation/101816/0903/Getting-started-with-Streamline/Profile-your-Linux-application) setup and capture. +There are many [tutorials and training videos](https://developer.arm.com/Tools%20and%20Software/Arm%20Performance%20Studio) on Streamline, which you can refer to for more depth. This example will be Android based, but you can use [these instructions for Linux](https://developer.arm.com/documentation/101816/0903/Getting-started-with-Streamline/Profile-your-Linux-application) setup and capture. -For now, as per these [setup instructions](https://developer.arm.com/documentation/102477/0900/Setup-tasks?lang=en), make sure you have `adb` (Android Debug Bridge) installed. We will be looking at Android Studio profiling shortly, and if you have installed Android Studio, it will have installed adb. Otherwise, you can get it as part of the Android SDK platform tools [here](https://developer.android.com/studio/releases/platform-tools.html). +First, follow these [setup instructions](https://developer.arm.com/documentation/102477/0900/Setup-tasks?lang=en), to make sure you have `adb` (Android Debug Bridge) installed. If you have installed [Android Studio](https://developer.android.com/studio), you will have installed adb already. Otherwise, you can get it as part of the Android SDK platform tools [here](https://developer.android.com/studio/releases/platform-tools.html). -Make sure adb is in your path. You can check this by running `adb` in a terminal. If it is not in your path, you can add it by adding the `platform-tools` directory to your path. The instructions for this (and location of the directory) will depend on your host machine's operating system. +Make sure `adb` is in your path. You can check this by running `adb` in a terminal. If it is not in your path, you can add it by adding the Android SDK `platform-tools` directory to your path. The instructions for this (and location of the directory) will depend on your host machine's operating system. Next, install [Arm Performance Studio](https://developer.arm.com/Tools%20and%20Software/Arm%20Performance%20Studio#Downloads), which includes Streamline. -Connect your Android phone to your computer through USB. Ensure that your device is set to [Developer mode](https://developer.android.com/studio/debug/dev-options). +Connect your Android phone to your host machine through USB. Ensure that your Android phone is set to [Developer mode](https://developer.android.com/studio/debug/dev-options). -On your device, go to `Settings > Developer Options` and enable USB Debugging. If your device asks you to authorize connection to your computer, confirm this. Test the connection by running `adb devices` in a terminal. You should see your device ID listed. +On your phone, go to `Settings > Developer Options` and enable USB Debugging. If your phone asks you to authorize connection to your host machine, confirm this. Test the connection by running `adb devices` in a terminal. You should see your device ID listed. Next, you need a debuggable build of the application you want to profile. - In Android Studio, ensure your *Build Variant* is set to `debug`. You can then build the application and install it on your device. @@ -34,17 +34,17 @@ Next, you need a debuggable build of the application you want to profile. - In Unreal Engine, open Project Settings > Project > Packaging > Project, and ensure that the For Distribution checkbox is not set. - In the general case, you can set `android:debuggable=true` in the application manifest file. -You can now run Streamline, and do a capture of your application. This can be used to do a general performance analysis of your application, but we intend to add additional useful information first. +You can now run Streamline, and do a capture of your application. This can be used to do a general performance analysis of your application, but you will add some useful information first. ## Custom Annotations In Streamline it is possible to add custom annotations to the timeline view. This can be useful to mark the start and end of specific parts of your application, or to mark when a specific event occurs. This can help you understand the performance of your application in relation to these events. At the bottom of *Figure 1* above there are custom annotations to show when inference, pre-processing, and post-processing are happening. -To add annotations, we need to add some files into our project from the Gator daemon that Streamline uses. These files are `streamline_annotate.c`, `streamline_annotate.h` and `streamline_annotate_logging.h` from [here](https://github.com/ARM-software/gator/tree/main/annotate). Then we will be able to show log strings, markers, counters and Custom Activity Maps. +To add annotations, you will need to add some files into your project from the Gator daemon that Streamline uses. These files are `streamline_annotate.c`, `streamline_annotate.h` and `streamline_annotate_logging.h` available [here](https://github.com/ARM-software/gator/tree/main/annotate). Then you will be able to show log strings, markers, counters and Custom Activity Maps. -These files are obviously C code, so if your Android Studio project is in Java or Kotlin, you will need to add a C library to your project. This is slightly trickier than just adding a Java or Kotlin file, but it is not difficult. You can find instructions on how to do this [here](https://developer.android.com/studio/projects/add-native-code). +These files are written in C, so if your Android Studio project is in Java or Kotlin, you will need to add a C library to your project. This is slightly trickier than just adding a Java or Kotlin file, but it is not difficult. You can find instructions on how to do this [here](https://developer.android.com/studio/projects/add-native-code). -For us, we create a file that we will call `annotate_jni_wrapper.c` in the `src/main/cpp/` folder under our project. This will be a wrapper around the Gator daemon's functions, and will be called from our Kotlin code. It starts as below and continues with very similar wrapper functions for the other Gator daemon functions you want. +Create a file that you will call `annotate_jni_wrapper.c` in the `src/main/cpp/` folder under your project. This will be a wrapper around the Gator daemon's functions, and will be called from your Kotlin code. It starts as below and continues with very similar wrapper functions for the other Gator daemon functions you want. ```c #include @@ -69,7 +69,7 @@ JNIEXPORT void JNICALL Java_AnnotateStreamline_AnnotateMarkerColorStr(JNIEnv* en } ``` -In Android Studio `cmake` is used to create your C library, so we need a CMakelists.txt file in the same directory as the C file. This will look like: +In Android Studio `cmake` is used to create your C library, so you will need a `CMakelists.txt` file in the same directory as the C file. This will look like: ```cmake # Sets the minimum CMake version required for this project. @@ -105,7 +105,7 @@ If you add the following to the `build.gradle` file of the Module you wish to pr } ``` -This will create a `libStreamlineAnnotationJNI.so` library that you can load in your Kotlin code, and then you can call the functions. Here we create a singleton `AnnotateStreamline.kt` that then enables Kotlin calls from the rest of our code: +This will create a `libStreamlineAnnotationJNI.so` library that you can load in your Kotlin code, and then you can call the functions. Here you will create a singleton `AnnotateStreamline.kt` that then enables Kotlin calls from the rest of your code: ```kotlin // Kotlin wrapper class for integration into Android project @@ -169,9 +169,9 @@ This colored marker with a string will add the string and time to Streamline's l In addition to adding strings to the log and colored markers to the timeline, a particularly useful set of annotations is the Custom Activity Maps. These are the named colored bands you can see at the bottom of the Streamline timeline view shown in *Figure 1*. They can be used to show when specific parts of your application are running, such as the pre-processing or inference, and layered for functions within functions etc. -To add these you'll need to import the functions that start `gator_cam_` from `streamline_annotate.h` through your wrapper files in the same way as the functions above. Then you can use CAMs, but first you'll need to set up the tracks the annotations will appear on and an id system for each annotation. The `baseId` code below is to ensure that in the case of multiple places in your code adding annotations, the ids are unique. +To add these you will need to import the functions that start `gator_cam_` from `streamline_annotate.h` through your wrapper files in the same way as the functions above. Then you can use CAMs, but first you will need to set up the tracks the annotations will appear on and an id system for each annotation. The `baseId` code below is to ensure that in the case of multiple places in your code adding annotations, the ids are unique. -Here is an example setup in a class's companion object. +Here is an example setup in a class's companion object: ```kotlin companion object { From e8c1c1bea1ef25dbcbc00dbdfb87e00c8ac6b389 Mon Sep 17 00:00:00 2001 From: Ben Clark Date: Thu, 7 Nov 2024 13:19:58 +0000 Subject: [PATCH 17/87] added example (app/network) information --- .../profiling-ml-on-arm/_index.md | 4 +- .../app-profiling-streamline.md | 60 ++++++++++++++++--- .../nn-profiling-executenetwork.md | 21 +++++-- 3 files changed, 69 insertions(+), 16 deletions(-) diff --git a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/_index.md b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/_index.md index 3bd9669e90..1271520b0d 100644 --- a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/_index.md +++ b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/_index.md @@ -1,7 +1,7 @@ --- title: Profile the performance of ML models on Arm -minutes_to_complete: 30 +minutes_to_complete: 60 who_is_this_for: This is an introductory topic for software developers who want to learn how to profile the performance of their ML models running on Arm devices. @@ -10,7 +10,7 @@ learning_objectives: - Profile ML application performance on Arm devices. prerequisites: - - An Arm-powered Android smartphone. + - An Arm-powered Android smartphone, and USB cable to connect with it. author_primary: Ben Clark diff --git a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/app-profiling-streamline.md b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/app-profiling-streamline.md index 86fd7702fb..294365aacd 100644 --- a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/app-profiling-streamline.md +++ b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/app-profiling-streamline.md @@ -13,6 +13,8 @@ The profiler can look at memory, CPU activity and cycles, cache misses, and many ![Streamline image alt-text#center](Streamline.png "Figure 1. Streamline timeline view") +If you want a ready-made application to profile for this section you can use [this example](https://github.com/dawidborycki/Arm.PyTorch.MNIST.Inference). Clone it to your computer and open it in a recent Android Studio. It is generally safest to not update the Gradle version when asked, to ensure nothing else needs updating. + ## Streamline You will install [Streamline](https://developer.arm.com/Tools%20and%20Software/Arm%20Performance%20Studio#Downloads) (and Performance Studio) on your host machine, and will connect to your target Arm device to capture the data. In this example, the target device is an Arm-powered Android phone. The data is captured over a USB connection, and then analyzed on your host machine. @@ -34,17 +36,19 @@ Next, you need a debuggable build of the application you want to profile. - In Unreal Engine, open Project Settings > Project > Packaging > Project, and ensure that the For Distribution checkbox is not set. - In the general case, you can set `android:debuggable=true` in the application manifest file. -You can now run Streamline, and do a capture of your application. This can be used to do a general performance analysis of your application, but you will add some useful information first. +If you're using the example application, the Build Variant is `debug` by default, but you can verify this by going to `Build > Select Build Variant` in Android Studio. Build and install the application on your device. + +You can now run Streamline, and do a [capture](https://developer.arm.com/documentation/102477/0900/Capture-a-profile?lang=en) of your application. This can be used to do a general performance analysis of your application, but you will add some useful information first. ## Custom Annotations In Streamline it is possible to add custom annotations to the timeline view. This can be useful to mark the start and end of specific parts of your application, or to mark when a specific event occurs. This can help you understand the performance of your application in relation to these events. At the bottom of *Figure 1* above there are custom annotations to show when inference, pre-processing, and post-processing are happening. -To add annotations, you will need to add some files into your project from the Gator daemon that Streamline uses. These files are `streamline_annotate.c`, `streamline_annotate.h` and `streamline_annotate_logging.h` available [here](https://github.com/ARM-software/gator/tree/main/annotate). Then you will be able to show log strings, markers, counters and Custom Activity Maps. +To add annotations, you will need to add some files into your project from the **gator** daemon that Streamline uses. These files are `streamline_annotate.c`, `streamline_annotate.h` and `streamline_annotate_logging.h` available [here](https://github.com/ARM-software/gator/tree/main/annotate). Then you will be able to show log strings, markers, counters and Custom Activity Maps. If you are using the example project, create a `cpp` folder under the `app/src/main` folder, and add these files there. These files are written in C, so if your Android Studio project is in Java or Kotlin, you will need to add a C library to your project. This is slightly trickier than just adding a Java or Kotlin file, but it is not difficult. You can find instructions on how to do this [here](https://developer.android.com/studio/projects/add-native-code). -Create a file that you will call `annotate_jni_wrapper.c` in the `src/main/cpp/` folder under your project. This will be a wrapper around the Gator daemon's functions, and will be called from your Kotlin code. It starts as below and continues with very similar wrapper functions for the other Gator daemon functions you want. +Create a file in the `app/src/main/cpp/` folder under your project and name it `annotate_jni_wrapper.c`. This will be a wrapper around the gator daemon's functions, and will be called from your Kotlin code. It starts as below and continues with very similar wrapper functions for the other gator daemon functions you want. ```c #include @@ -69,7 +73,7 @@ JNIEXPORT void JNICALL Java_AnnotateStreamline_AnnotateMarkerColorStr(JNIEnv* en } ``` -In Android Studio `cmake` is used to create your C library, so you will need a `CMakelists.txt` file in the same directory as the C file. This will look like: +In Android Studio `cmake` is used to create your C library, so you will need a `CMakelists.txt` file in the same directory as the C files (`app/src/main/cpp/` in the example). This will look like: ```cmake # Sets the minimum CMake version required for this project. @@ -94,7 +98,7 @@ target_link_libraries( # Specifies the target library. ${log-lib} ) ``` -If you add the following to the `build.gradle` file of the Module you wish to profile, you will be able to call the functions from your Kotlin code: +If you add the following to the `build.gradle` file of the Module you wish to profile (`:app` in the example), you will be able to call the functions from your Kotlin code: ```gradle externalNativeBuild { @@ -105,7 +109,7 @@ If you add the following to the `build.gradle` file of the Module you wish to pr } ``` -This will create a `libStreamlineAnnotationJNI.so` library that you can load in your Kotlin code, and then you can call the functions. Here you will create a singleton `AnnotateStreamline.kt` that then enables Kotlin calls from the rest of your code: +This will create a `libStreamlineAnnotationJNI.so` library that you can load in your Kotlin code, and then you can call the functions. Here you will create a singleton `AnnotateStreamline.kt`. Place the file alongside `MainActivity.kt` in `app\src\main\java\com\arm\armpytorchmnistinference` for the example. Add the following code to `AnnotateStreamline.kt` to enable Kotlin calls to the gator daemon from the rest of your code: ```kotlin // Kotlin wrapper class for integration into Android project @@ -155,13 +159,17 @@ class AnnotateStreamline { } ``` -The `AnnotateStreamline` class can now be used in your Kotlin code to add annotations to the Streamline timeline view. Make sure that `AnnotateStreamline.setup()` is called first, and then you can add annotations like this: +Fill in all the function calls to match the functions you added into `annotate_jni_wrapper.c`. + +The `AnnotateStreamline` class can now be used in your Kotlin code to add annotations to the Streamline timeline view. The first thing is to make sure `AnnotateStreamline.setup()` is called before any other gator functions. For the example project, add it into the `onCreate()` function of `MainActivity.kt`. Then you can add annotations like this: ```kotlin AnnotateStreamline.annotateMarkerColorStr(AnnotateStreamline.ANNOTATE_BLUE, "Model Load") ``` -This colored marker with a string will add the string and time to Streamline's log view, and look like the below image in Streamline's timeline: +In the example app you could add this in the `onCreate()` function of `MainActivity.kt` after the `Module.load()` call to load the `model.pth`. + +This 'colored marker with a string' annotation will add the string and time to Streamline's log view, and look like the below image in Streamline's timeline (in the example app ArmNN isn't used, so there are no white ArmNN markers): ![Streamline image alt-text#center](streamline_marker.png "Figure 2. Streamline timeline markers") @@ -188,6 +196,8 @@ Here is an example setup in a class's companion object: } ``` +If you're using the example app, add this to the `MainActivity` class. + Then they can be used like this: ```kotlin @@ -201,4 +211,36 @@ Then they can be used like this: AnnotateStreamline.camJobEnd(camViewId, preprocess, AnnotateStreamline.getTime()) ``` -Now when you build and deploy a debug version of your application, you can run Streamline and see the annotations and CAMs in the timeline view. See the [Streamline documentation](https://developer.arm.com/documentation/101816/latest/) for how to make a capture for profiling. Once the capture is made and analyzed, you will be able to see when your application is running the inference, ML pre-processing, ML post-processing, or other parts of your application. From there you can see where the most time is spent, and how hard the CPU or GPU is working during different parts of the application. From this you can then decide if work is needed to improve performance and where that work needs doing. +In the example app the CAM annotations would be added to the `runInference()` function, which would end up looking like this: + +```kotlin + private fun runInference(bitmap: Bitmap) { + val preprocess = currentId++ + AnnotateStreamline.camJobStart(camViewId, preprocess, "Preprocess", trackRoot, AnnotateStreamline.getTime(), AnnotateStreamline.ANNOTATE_YELLOW) + // Convert bitmap to a float array and create a tensor with shape [1, 1, 28, 28] + val inputTensor = createTensorFromBitmap(bitmap) // could add a child CAM job inside function call, but probably too simple + AnnotateStreamline.camJobEnd(camViewId, preprocess, AnnotateStreamline.getTime()) + + // Run inference and measure time + val inferenceTimeMicros = measureTimeMicros { + // Forward pass through the model + val inference = currentId++ + AnnotateStreamline.camJobStart(camViewId, inference, "Inference", trackRoot, AnnotateStreamline.getTime(), AnnotateStreamline.ANNOTATE_RED) + val outputTensor = model.forward(IValue.from(inputTensor)).toTensor() + AnnotateStreamline.camJobEnd(camViewId, inference, AnnotateStreamline.getTime()) + // and then post-processing is simplistic in this case, so not worth a CAM job + val scores = outputTensor.dataAsFloatArray + + // Get the index of the class with the highest score + val maxIndex = scores.indices.maxByOrNull { scores[it] } ?: -1 + predictedLabel.text = "Predicted Label: $maxIndex" + } + + // Update inference time TextView in microseconds + inferenceTime.text = "Inference Time: $inferenceTimeMicros s" + } +``` + +The example app is very fast and simple, so the CAMs will not show much, but in a more complex application you could add more CAMs, including child-level ones, to give more detailed annotations to show where time is spent in your application. Indeed for the example app with its very fast inference, you will be best in Streamline to put the timeline view on the 10s scale to see the CAM annotations better. + +Once you've added in useful CAM annotations, you can build and deploy a debug version of your application, you can run Streamline and see the annotations and CAMs in the timeline view. See the [Streamline documentation](https://developer.arm.com/documentation/101816/latest/) for how to make a capture for profiling. Once the capture is made and analyzed, you will be able to see when your application is running the inference, ML pre-processing, ML post-processing, or other parts of your application. From there you can see where the most time is spent, and how hard the CPU or GPU is working during different parts of the application. From this you can then decide if work is needed to improve performance and where that work needs doing. diff --git a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/nn-profiling-executenetwork.md b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/nn-profiling-executenetwork.md index 1254741906..b046364a82 100644 --- a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/nn-profiling-executenetwork.md +++ b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/nn-profiling-executenetwork.md @@ -11,6 +11,8 @@ One way of running tflite models is with ArmNN. This is available as a delegate If you are not using tflite, you'll need to look at other tools from your framework to profile your model. If you are using tflite without ArmNN, then the output from `ExecuteNetwork` will be more of an indication than a definitive answer. But it can still be useful to see if there are any obvious problems. +If you want to have a tflite to practice this Learning Path with, you can download one from the [Arm Model Zoo](https://github.com/ARM-software/ML-zoo). As an example we'll use a [mobilenet tflite](https://github.com/ARM-software/ML-zoo/blob/master/models/image_classification/mobilenet_v2_1.0_224/tflite_int8/mobilenet_v2_1.0_224_INT8.tflite). + To get `ExecuteNetwork` you can download it from the [ArmNN GitHub](https://github.com/ARM-software/armnn/releases). Download the version appropriate for the Android phone you wish to test on - the Android version and the architecture of the phone. If you are unsure of the architecture, you can use a lower one, but you may miss out on some optimizations. Inside the tar.gz that you download, `ExecuteNetwork` is included. Note among the other release downloads on the ArmNN Github is the separate file for the `aar` delegate which is the easy way to include the ArmNN delegate into your app. To run `ExecuteNetwork` you'll need to use `adb` to push the model and the executable to your phone, and then run it from the adb shell. `adb` is included with Android Studio, but you may need to add it to your path. Android Studio normally installs it to a location like \\AppData\Local\Android\Sdk\platform-tools. `adb` can also be downloaded separately from the [Android Developer site](https://developer.android.com/studio/releases/platform-tools). @@ -18,7 +20,8 @@ To run `ExecuteNetwork` you'll need to use `adb` to push the model and the execu Unzip the tar.gz folder you downloaded to somewhere convenient. From a command prompt, you can then adapt and run the following commands to push the files to your phone. The `/data/local/tmp` folder of your Android device is a place with relaxed permissions that you can use to run this profiling. ```bash -adb push model.tflite /data/local/tmp/ # the tflite NN model file that you wish to profile +adb push mobilenet_v2_1.0_224_INT8.tflite /data/local/tmp/ # if you are using the example tflite model +# adb push yourmodel.tflite /data/local/tmp/ # where yourmodel is the tflite NN model file that you wish to profile adb push ExecuteNetwork /data/local/tmp/ adb push libarm_compute.so /data/local/tmp/ adb push libarmnn.so /data/local/tmp/ @@ -36,13 +39,17 @@ chmod 777 ExecuteNetwork # to make the file executable chmod 777 *.so # to make the library files executable ``` -Then you can run the model with the following command: +Then you can run ExecuteNetwork to profile the model. If you are using the example tflite, you can use the following command: ```bash -LD_LIBRARY_PATH=. ./ExecuteNetwork -m model.tflite -c CpuAcc -T delegate --iterations 2 --do-not-print-output --enable-fast-math --fp16-turbo-mode -e --output-network-details > modelout.txt +LD_LIBRARY_PATH=. ./ExecuteNetwork -m mobilenet_v2_1.0_224_INT8.tflite -c CpuAcc -T delegate --iterations 2 --do-not-print-output --enable-fast-math --fp16-turbo-mode -e --output-network-details > modelout.txt ``` -This will run the model twice, outputting the layer timings to `modelout.txt`. Specifically, the `-e` and `--output-network-details` flags will output a lot of timeline information about the model, including the layer timings. The `--do-not-print-output` flag will stop the output of the model, which can be very large, and without sensible input, meaningless. The `--enable-fast-math` and `--fp16-turbo-mode` flags enable some maths optimizations. The `--iterations 2` flag will run the model twice: the first run includes a lot of startup costs and one-off optimizations, so the second run is more indicative of the real performance. +If you are using your own tflite, replace `mobilenet_v2_1.0_224_INT8.tflite` with the name of your tflite file. + +This will run the model twice, outputting the layer timings to `modelout.txt`. The `--iterations 2` flag is the command that means it runs twice: the first run includes a lot of startup costs and one-off optimizations, so the second run is more indicative of the real performance. + +For the other flags, of note are the `-e` and `--output-network-details` flags which will output a lot of timeline information about the model, including the layer timings. The `--do-not-print-output` flag will stop the output of the model, which can be very large, and without sensible input, meaningless. The `--enable-fast-math` and `--fp16-turbo-mode` flags enable some maths optimizations. `CpuAcc` is the acclerated CPU backend, it can be replaced with `GpuAcc` for the accelerated GPU backend. After running the model, you can pull the output file back to your computer with the following commands: @@ -71,4 +78,8 @@ Info: Execution time: 468.42 ms. Info: Inference time: 468.58 ms ``` -After the summary comes the graph of the model, and then the layers and their timings from the second run. At the start of the layers there are a few optimizations and their timings recorded before the network itself, so you can skip past the graph and the optimization timings to get to the part that wants analyzing. The layers' "Wall clock time" in microseconds shows how long they took to run. These layers and their timings can then be analyzed to see which layers, and which operators, took the most time. +After the summary comes the graph of the model, and then the layers and their timings from the second run. At the start of the layers there are a few optimizations and their timings recorded before the network itself, so you can skip past the graph and the optimization timings to get to the part that wants analyzing. + +In the mobilenet example output, the graph is from lines 18 to 1629. After this come the optimization timings, which are part of the runtime, but not the network - these go until line 1989. Next there are a few wall clock recordings for the loading of the network, before the first layer "Convolution2dLayer_CreateWorkload_#18" at line 2036. Here is where the layer info that wants analyzing starts. + +The layers' "Wall clock time" in microseconds shows how long they took to run. These layers and their timings can then be analyzed to see which layers, and which operators, took the most time. \ No newline at end of file From db80610c6e5e5d5c74204db7f7c5b2a09bb9bfc6 Mon Sep 17 00:00:00 2001 From: Koki Mitsunami Date: Thu, 7 Nov 2024 22:23:15 +0000 Subject: [PATCH 18/87] create win-opencv content --- .../win-opencv/1-opencv-compilers.md | 79 +++++++++ .../win-opencv/2-1-build-msvc.md | 166 ++++++++++++++++++ .../win-opencv/2-2-build-clang.md | 159 +++++++++++++++++ .../laptops-and-desktops/win-opencv/_index.md | 36 ++++ .../win-opencv/_next-steps.md | 27 +++ .../win-opencv/_review.md | 45 +++++ 6 files changed, 512 insertions(+) create mode 100644 content/learning-paths/laptops-and-desktops/win-opencv/1-opencv-compilers.md create mode 100644 content/learning-paths/laptops-and-desktops/win-opencv/2-1-build-msvc.md create mode 100644 content/learning-paths/laptops-and-desktops/win-opencv/2-2-build-clang.md create mode 100644 content/learning-paths/laptops-and-desktops/win-opencv/_index.md create mode 100644 content/learning-paths/laptops-and-desktops/win-opencv/_next-steps.md create mode 100644 content/learning-paths/laptops-and-desktops/win-opencv/_review.md diff --git a/content/learning-paths/laptops-and-desktops/win-opencv/1-opencv-compilers.md b/content/learning-paths/laptops-and-desktops/win-opencv/1-opencv-compilers.md new file mode 100644 index 0000000000..2a32df9280 --- /dev/null +++ b/content/learning-paths/laptops-and-desktops/win-opencv/1-opencv-compilers.md @@ -0,0 +1,79 @@ +--- +title: OpenCV and Compilers +weight: 2 + +### FIXED, DO NOT MODIFY +layout: learningpathall +--- + +## OpenCV +OpenCV (Open Source Computer Vision Library) is a popular, open-source library that developers use to build computer vision applications. It provides a set of tools and functions that help you handle tasks related to images and videos without needing to write everything from scratch. + +Here’s what developers should know: + +* __Ease of Use__: OpenCV comes with pre-built functions for common tasks like reading, displaying, and processing images and videos. This saves time compared to writing algorithms from the ground up. + +* __Image Processing__: You can perform operations like changing colors, applying filters, resizing, rotating, and other transformations to images with minimal code. + +* __Video Handling__: Developers can use OpenCV to capture, modify, and analyze video frames, making it ideal for creating applications like video surveillance or video editing tools. + +* __Computer Vision Algorithms__: OpenCV includes built-in algorithms for complex tasks like object detection (e.g., face and eye recognition), edge detection, and image segmentation. + +* __Machine Learning__: It includes modules for training models using basic machine learning algorithms, which can be applied for pattern recognition and data analysis in visual data. + +* __Community and Resources__: Being open-source and widely adopted, there is a large community of developers contributing to and supporting OpenCV. This makes it easier to find tutorials, documentation, and answers to questions. + + +## Compilers for Windows on Arm Development + +When building applications for Windows on Arm, both MSVC (Microsoft Visual C++) and Clang are options for developers, each with its own advantages. + +* __MSVC__: A compiler developed by Microsoft that’s part of the Visual Studio IDE. It’s designed specifically for Windows and integrates well with the Windows development ecosystem. + +* __Clang__: An open-source compiler that is part of the LLVM project. It’s known for its modern design and and cross-platform capabilities. + +MSVC is the go-to for Windows-focused projects needing seamless integration with Visual Studio. Clang is ideal for cross-platform projects or when using modern C++ features with flexibility. + +## Before you begin + +Any Windows on Arm computer which has the required tools installed can be used for this Learning Path. You will learn the build methods using both MSVC and Clang. + +Please install the following tools required for both methods. + +* [CMake](/install-guides/cmake) + +{{% notice Note %}} +The instructions were tested with the version 3.28.1 +{{% /notice %}} + +* [Git](https://git-scm.com/downloads/win) + +{{% notice Note %}} +There is currently no Arm version of Git. Install the 64-bit x86 version. +{{% /notice %}} + +Follow the link to intall the required tools for a method using MSVC. + +* [Visual Studio 2022 or higher](/install-guides/vs-woa). + +{{% notice Note %}} +The instructions were tested with Visual Studio 2022. +{{% /notice %}} + +To build using Clang, please install the following. + +* [LLVM](install-guides/llvm-woa/) + +{{% notice Note %}} +The instructions were tested with the version 18.1.8. +{{% /notice %}} + +* [Ninja]( https://github.com/ninja-build/ninja/releases) + +{{% notice Note %}} +The instructions were tested with version 1.11.1 +{{% /notice %}} + +You use the LLVM Clang and the Ninja generator to build. Set PATH to the paths to your LLVM and Ninja install. + +You now have the required development tools installed.Please proceed to the page for the compiler you want to build with. diff --git a/content/learning-paths/laptops-and-desktops/win-opencv/2-1-build-msvc.md b/content/learning-paths/laptops-and-desktops/win-opencv/2-1-build-msvc.md new file mode 100644 index 0000000000..ed93fd4c57 --- /dev/null +++ b/content/learning-paths/laptops-and-desktops/win-opencv/2-1-build-msvc.md @@ -0,0 +1,166 @@ +--- +title: Build OpenCV Applications with MSVC +weight: 3 + +### FIXED, DO NOT MODIFY +layout: learningpathall +--- + +## Build OpenCV with MSVC + +### Clone OpenCV repo + +Open up a Windows Powershell and checkout the source tree: + +```bash +git clone https://github.com/opencv/opencv +cd opencv +git checkout tags/4.10.0 +``` + +{{% notice Note %}} +You might be able to use a later version. These steps have been tested with the version 4.10.0. +{{% /notice %}} + +### Build with MSVC + +Here, you will use CMake from the command line. First, Run the following command to run the pre-build configuration. + +```bash +mkdir build_msvc +cd build_msvc + +cmake ` +-S .. ` +-B . ` +-G "Visual Studio 17 2022" ` +-DCMAKE_BUILD_TYPE=Release ` +-DBUILD_opencv_world=ON ` +-DWITH_ITT=OFF ` +-DWITH_OPENCL=OFF ` +-DWITH_OPENCLAMDBLAS=OFF ` +-DWITH_OPENCLAMDFFT=OFF ` +-DWITH_OPENCL_D3D11_NV=OFF ` +-DWITH_DIRECTML=OFF ` +-DWITH_DIRECTX=OFF ` +-DWITH_ADE=OFF ` +-DWITH_CAROTENE=OFF +``` + +The given options specify the following: +- The source code is located one level above the current directory. +- The build will be performed in the current directory. +- The Visual Studio 2022 MSVC compiler will be used as the compiler. +- The built library is generated as a single file that includes all of OpenCV's functionality. +- Disable unnecessary options, assuming processing on Arm CPU.Unnecessary options have been disabled to execute processing on Arm CPUs. + + +If the configuration is successful, a message similar to the following should be displayed at the end of the execution: + +``` +-- General configuration for OpenCV 4.10.0 ===================================== +-- Version control: 4.10.0 +-- +-- Platform: +-- Timestamp: 2024-11-06T17:47:31Z +-- Host: Windows 10.0.22631 ARM64 +-- CMake: 3.28.1 +-- CMake generator: Visual Studio 17 2022 +-- CMake build tool: C:/Program Files/Microsoft Visual Studio/2022/Professional/MSBuild/Current/Bin/arm64/MSBuild.exe +-- MSVC: 1941 +-- Configuration: Release +-- +-- CPU/HW features: +-- Baseline: NEON +-- requested: NEON FP16 +-- Dispatched code generation: NEON_DOTPROD NEON_FP16 +-- requested: NEON_FP16 NEON_BF16 NEON_DOTPROD +-- NEON_DOTPROD (1 files): + NEON_DOTPROD +-- NEON_FP16 (2 files): + NEON_FP16 +-- +-- C/C++: +-- Built as dynamic libs?: YES +-- C++ standard: 11 +-- C++ Compiler: C:/Program Files/Microsoft Visual Studio/2022/Professional/VC/Tools/MSVC/14.41.34120/bin/Hostarm64/arm64/cl.exe (ver 19.41.34123.0) +[...] +-- C Compiler: C:/Program Files/Microsoft Visual Studio/2022/Professional/VC/Tools/MSVC/14.41.34120/bin/Hostarm64/arm64/cl.exe +[...] +-- Install to: C:/Users/kokmit01/work/opencv/build_msvc/install +-- ----------------------------------------------------------------- +-- +-- Configuring done (93.6s) +-- Generating done (2.8s) +-- Build files have been written to: C:/Users/kokmit01/work/opencv/build_msvc +``` + +Now run the following command to build and install: + +```bash +cmake --build . --config Release +cmake --build . --target INSTALL --config Release +``` + +{{% notice Note %}} +The build takes approximately 20 mins on Lenovo X13s +{{% /notice %}} + +When the build and the install is complete, confirm the shared library have been created: + +```bash { output_lines = "2-12,14-22" } +ls ./install/x64/vc17/bin + Directory: C:\Users\kokmit01\work\opencv\build_msvc\install\x64\vc17\bin +Mode LastWriteTime Length Name +---- ------------- ------ ---- +-a---- 07/11/2024 21:56 43008 opencv_annotation.exe +-a---- 07/11/2024 21:56 143872 opencv_interactive-calibration.exe +-a---- 07/11/2024 21:56 41984 opencv_model_diagnostics.exe +-a---- 07/11/2024 22:03 36864 opencv_version.exe +-a---- 07/11/2024 22:03 35328 opencv_version_win32.exe +-a---- 07/11/2024 16:11 26391552 opencv_videoio_ffmpeg4100_64.dll +-a---- 07/11/2024 22:03 56320 opencv_visualisation.exe +-a---- 07/11/2024 21:56 27175936 opencv_world4100.dll +ls ./install/x64/vc17/lib + Directory: C:\Users\kokmit01\work\opencv\build_msvc\install\x64\vc17\lib +Mode LastWriteTime Length Name +---- ------------- ------ ---- +-a---- 07/11/2024 16:11 434 OpenCVConfig-version.cmake +-a---- 07/11/2024 16:11 15260 OpenCVConfig.cmake +-a---- 07/11/2024 16:11 972 OpenCVModules-release.cmake +-a---- 07/11/2024 16:11 3879 OpenCVModules.cmake +-a---- 07/11/2024 21:56 2849862 opencv_world4100.lib +``` + +{{% notice Note %}} +The directory name in the middle is "x64," but there is no need to worry as the generated libraries and executable files will definitely run as ARM64. +{{% /notice %}} + +```bash { output_lines = "2" } +./install/x64/vc17/bin/pencv_version.exe +4.10.0 +``` + +## Build OpenCV Applications + + +Add C:\Users\kokmit01\work\opencv\build\install\x64\vc17\bin to PATH environment variable (for access to dll) +put the dll to the directory with exe file if it doesn't work. + +Set include dir/linker path + + + +```cpp +#include +#include +int main() { + cv::Mat image = cv::Mat::zeros(100, 100, CV_8UC3); + if (image.empty()) { + std::cout << "Failed to create an image!" << std::endl; + return -1; + } + cv::circle(image, cv::Point(50, 50), 30, cv::Scalar(255, 0, 0), -1); + cv::imwrite("test_image.png", image); + cv::waitKey(0); + return 0; +} +``` \ No newline at end of file diff --git a/content/learning-paths/laptops-and-desktops/win-opencv/2-2-build-clang.md b/content/learning-paths/laptops-and-desktops/win-opencv/2-2-build-clang.md new file mode 100644 index 0000000000..7b8591bcba --- /dev/null +++ b/content/learning-paths/laptops-and-desktops/win-opencv/2-2-build-clang.md @@ -0,0 +1,159 @@ +--- +title: Build OpenCV Applications with Clang +weight: 4 + +### FIXED, DO NOT MODIFY +layout: learningpathall +--- + +## Build OpenCV with Clang + +### Clone OpenCV repo + +Open up a Windows Powershell and checkout the source tree: + +```bash +git clone https://github.com/opencv/opencv +cd opencv +git checkout tags/4.10.0 +``` + +{{% notice Note %}} +You might be able to use a later version. These steps have been tested with the version 4.10.0. +{{% /notice %}} + +### Build with Clang + +Here, you will use CMake from the command line. First, Run the following command to run the pre-build configuration. + +```bash +mkdir build_clang +cd build_clang + +cmake ` +-S .. ` +-B . ` +-G "Ninja" ` +-DCMAKE_C_COMPILER=clang ` +-DCMAKE_CXX_COMPILER=clang++ ` +-DCMAKE_BUILD_TYPE=Release ` +-DBUILD_opencv_world=ON ` +-DWITH_ITT=OFF ` +-DWITH_OPENCL=OFF ` +-DWITH_OPENCLAMDBLAS=OFF ` +-DWITH_OPENCLAMDFFT=OFF ` +-DWITH_OPENCL_D3D11_NV=OFF ` +-DWITH_DIRECTML=OFF ` +-DWITH_DIRECTX=OFF ` +-DWITH_ADE=OFF ` +-DWITH_CAROTENE=OFF +``` + +The given options specify the following: +- The source code is located one level above the current directory. +- The build will be performed in the current directory. +- The Visual Studio 2022 MSVC compiler will be used as the compiler. +- The built library is generated as a single file that includes all of OpenCV's functionality. +- Disable unnecessary options, assuming processing on Arm CPU.Unnecessary options have been disabled to execute processing on Arm CPUs. + + +If the configuration is successful, a message similar to the following should be displayed at the end of the execution: + +``` +-- General configuration for OpenCV 4.10.0 ===================================== +-- Version control: 4.10.0 +-- +-- Platform: +-- Timestamp: 2024-11-06T17:47:31Z +-- Host: Windows 10.0.22631 ARM64 +-- CMake: 3.28.1 +-- CMake generator: Ninja +-- CMake build tool: C:/Users/kokmit01/work/venv/Scripts/ninja.exe +-- Configuration: Release +-- +-- CPU/HW features: +-- Baseline: NEON +-- requested: NEON FP16 +-- Dispatched code generation: NEON_DOTPROD NEON_FP16 +-- requested: NEON_FP16 NEON_BF16 NEON_DOTPROD +-- NEON_DOTPROD (1 files): + NEON_DOTPROD +-- NEON_FP16 (2 files): + NEON_FP16 +-- +-- C/C++: +-- Built as dynamic libs?: YES +-- C++ standard: 11 +-- C++ Compiler: C:/Program Files/LLVM/bin/clang++.exe (ver 18.1.8) +[...] +-- C Compiler: C:/Program Files/LLVM/bin/clang.exe +[...] +-- Install to: C:/Users/kokmit01/work/opencv/build_clang/install +-- ----------------------------------------------------------------- +-- +-- Configuring done (384.4s) +-- Generating done (1.9s) +-- Build files have been written to: C:/Users/kokmit01/work/opencv/build_clang +``` + +Now run the following command to build and install: + +```bash +ninja +ninja install +``` + +{{% notice Note %}} +The build takes approximately 25 mins on Lenovo X13s +{{% /notice %}} + +When the build and the install is complete, confirm the shared library have been created: + +```bash { output_lines = "2-6,8-16" } +ls ./install/bin + Directory: C:\Users\kokmit01\work\opencv\build_clang\install\bin +Mode LastWriteTime Length Name +---- ------------- ------ ---- +-a---- 07/11/2024 16:11 26391552 opencv_videoio_ffmpeg4100_64.dll +-a---- 07/11/2024 21:56 27175936 opencv_world4100.dll +ls ./install/x64/vc17/lib + Directory: C:\Users\kokmit01\work\opencv\build_clang\install\lib +Mode LastWriteTime Length Name +---- ------------- ------ ---- +-a---- 07/11/2024 16:11 434 OpenCVConfig-version.cmake +-a---- 07/11/2024 16:11 15260 OpenCVConfig.cmake +-a---- 07/11/2024 16:11 972 OpenCVModules-release.cmake +-a---- 07/11/2024 16:11 3879 OpenCVModules.cmake +-a---- 07/11/2024 21:56 2849862 opencv_world4100.lib +``` + +## Build OpenCV Applications + + +Add C:\Users\kokmit01\work\opencv\build\install\bin to PATH environment variable (for access to dll) +put the dll to the directory with exe file if it doesn't work. + +Set include dir/linker path + + + +```cpp +#include +#include +int main() { + cv::Mat image = cv::Mat::zeros(100, 100, CV_8UC3); + if (image.empty()) { + std::cout << "Failed to create an image!" << std::endl; + return -1; + } + cv::circle(image, cv::Point(50, 50), 30, cv::Scalar(255, 0, 0), -1); + //cv::imshow("Test Image", image); + cv::imwrite("test_image.png", image); + cv::waitKey(0); + return 0; +} +``` + + + +```bash + clang++ .\test_opencv.cpp -o test_opencv.exe -I.\build_clang\install\include -L.\build_clang\install\lib -lopencv_world4100 +``` \ No newline at end of file diff --git a/content/learning-paths/laptops-and-desktops/win-opencv/_index.md b/content/learning-paths/laptops-and-desktops/win-opencv/_index.md new file mode 100644 index 0000000000..dae9a04626 --- /dev/null +++ b/content/learning-paths/laptops-and-desktops/win-opencv/_index.md @@ -0,0 +1,36 @@ +--- +title: Build OpenCV applications on Windows on Arm + +minutes_to_complete: 60 + +who_is_this_for: This is an advanced topic for software developers who want to use OpenCV with Windows on Arm devices. + +learning_objectives: + - Build OpenCV library with Windows on Arm devices. + - Develop applications with OpenCV. + +prerequisites: + - A Windows on Arm computer such as Lenovo Thinkpad X13s or a [virtual machine](/learning-paths/cross-platform/woa_azure/). + +author_primary: Koki Mitsunami + +### Tags +skilllevels: Introductory +subjects: Migration to Arm +armips: + - Cortex-A +tools_software_languages: + - Visual Studio + - Clang + - OpenCV + - C++ +operatingsystems: + - Windows + + +### FIXED, DO NOT MODIFY +# ================================================================================ +weight: 1 # _index.md always has weight of 1 to order correctly +layout: "learningpathall" # All files under learning paths have this same wrapper +learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. +--- diff --git a/content/learning-paths/laptops-and-desktops/win-opencv/_next-steps.md b/content/learning-paths/laptops-and-desktops/win-opencv/_next-steps.md new file mode 100644 index 0000000000..c4ae77cc92 --- /dev/null +++ b/content/learning-paths/laptops-and-desktops/win-opencv/_next-steps.md @@ -0,0 +1,27 @@ +--- +next_step_guidance: PLACEHOLDER TEXT 1 + +recommended_path: /learning-paths/PLACEHOLDER_CATEGORY/PLACEHOLDER_LEARNING_PATH/ + +further_reading: + - resource: + title: PLACEHOLDER MANUAL + link: PLACEHOLDER MANUAL LINK + type: documentation + - resource: + title: PLACEHOLDER BLOG + link: PLACEHOLDER BLOG LINK + type: blog + - resource: + title: PLACEHOLDER GENERAL WEBSITE + link: PLACEHOLDER GENERAL WEBSITE LINK + type: website + + +# ================================================================================ +# FIXED, DO NOT MODIFY +# ================================================================================ +weight: 21 # set to always be larger than the content in this path, and one more than 'review' +title: "Next Steps" # Always the same +layout: "learningpathall" # All files under learning paths have this same wrapper +--- diff --git a/content/learning-paths/laptops-and-desktops/win-opencv/_review.md b/content/learning-paths/laptops-and-desktops/win-opencv/_review.md new file mode 100644 index 0000000000..9b1bfb96fe --- /dev/null +++ b/content/learning-paths/laptops-and-desktops/win-opencv/_review.md @@ -0,0 +1,45 @@ +--- +review: + - questions: + question: > + PLACEHOLDER QUESTION 1? + answers: + - PLACEHOLDER ANSWER A + - PLACEHOLDER ANSWER B + correct_answer: 1 + explanation: > + PLACEHOLDER EXPLANATION 1 + + - questions: + question: > + PLACEHOLDER QUESTION 2? + answers: + - PLACEHOLDER ANSWER A + - PLACEHOLDER ANSWER B + - PLACEHOLDER ANSWER C + - PLACEHOLDER ANSWER D + correct_answer: 4 + explanation: > + PLACEHOLDER EXPLANATION 2 + + - questions: + question: > + PLACEHOLDER QUESTION 3? + answers: + - PLACEHOLDER ANSWER A + - PLACEHOLDER ANSWER B + - PLACEHOLDER ANSWER C + - PLACEHOLDER ANSWER D + correct_answer: 2 + explanation: > + PLACEHOLDER EXPLANATION 3 + + + +# ================================================================================ +# FIXED, DO NOT MODIFY +# ================================================================================ +title: "Review" # Always the same title +weight: 20 # Set to always be larger than the content in this path +layout: "learningpathall" # All files under learning paths have this same wrapper +--- From 18a11d244e2572f8659e1263f42f514bdeb5a43b Mon Sep 17 00:00:00 2001 From: Koki Mitsunami Date: Fri, 8 Nov 2024 13:35:31 +0000 Subject: [PATCH 19/87] add how to build app and update description --- .../win-opencv/1-opencv-compilers.md | 8 +- .../win-opencv/2-1-build-msvc.md | 119 +++++++++++++----- .../win-opencv/2-2-build-clang.md | 101 +++++++++++---- .../laptops-and-desktops/win-opencv/_index.md | 2 +- .../win-opencv/_next-steps.md | 22 ++-- .../win-opencv/_review.md | 35 +++--- .../win-opencv/msvc_add_file.png | Bin 0 -> 80336 bytes .../win-opencv/msvc_include_dir.png | Bin 0 -> 66647 bytes .../win-opencv/msvc_link_dir.png | Bin 0 -> 62935 bytes .../win-opencv/msvc_link_lib.png | Bin 0 -> 50462 bytes .../win-opencv/msvc_project.png | Bin 0 -> 31413 bytes .../win-opencv/msvc_screen.png | Bin 0 -> 106708 bytes .../win-opencv/set_path.png | Bin 0 -> 30462 bytes .../win-opencv/test_image.png | Bin 0 -> 493 bytes 14 files changed, 199 insertions(+), 88 deletions(-) create mode 100644 content/learning-paths/laptops-and-desktops/win-opencv/msvc_add_file.png create mode 100644 content/learning-paths/laptops-and-desktops/win-opencv/msvc_include_dir.png create mode 100644 content/learning-paths/laptops-and-desktops/win-opencv/msvc_link_dir.png create mode 100644 content/learning-paths/laptops-and-desktops/win-opencv/msvc_link_lib.png create mode 100644 content/learning-paths/laptops-and-desktops/win-opencv/msvc_project.png create mode 100644 content/learning-paths/laptops-and-desktops/win-opencv/msvc_screen.png create mode 100644 content/learning-paths/laptops-and-desktops/win-opencv/set_path.png create mode 100644 content/learning-paths/laptops-and-desktops/win-opencv/test_image.png diff --git a/content/learning-paths/laptops-and-desktops/win-opencv/1-opencv-compilers.md b/content/learning-paths/laptops-and-desktops/win-opencv/1-opencv-compilers.md index 2a32df9280..23001219e6 100644 --- a/content/learning-paths/laptops-and-desktops/win-opencv/1-opencv-compilers.md +++ b/content/learning-paths/laptops-and-desktops/win-opencv/1-opencv-compilers.md @@ -1,5 +1,5 @@ --- -title: OpenCV and Compilers +title: OpenCV and Compilers for Windows on Arm weight: 2 ### FIXED, DO NOT MODIFY @@ -30,13 +30,13 @@ When building applications for Windows on Arm, both MSVC (Microsoft Visual C++) * __MSVC__: A compiler developed by Microsoft that’s part of the Visual Studio IDE. It’s designed specifically for Windows and integrates well with the Windows development ecosystem. -* __Clang__: An open-source compiler that is part of the LLVM project. It’s known for its modern design and and cross-platform capabilities. +* __Clang__: An open-source compiler that is part of the LLVM project. It’s known for its modern design and cross-platform capabilities. MSVC is the go-to for Windows-focused projects needing seamless integration with Visual Studio. Clang is ideal for cross-platform projects or when using modern C++ features with flexibility. ## Before you begin -Any Windows on Arm computer which has the required tools installed can be used for this Learning Path. You will learn the build methods using both MSVC and Clang. +Any Windows on Arm machine which has the required tools installed can be used for this Learning Path. You will learn the build methods using both MSVC and Clang. Please install the following tools required for both methods. @@ -76,4 +76,4 @@ The instructions were tested with version 1.11.1 You use the LLVM Clang and the Ninja generator to build. Set PATH to the paths to your LLVM and Ninja install. -You now have the required development tools installed.Please proceed to the page for the compiler you want to build with. +You now have the required development tools installed. Please proceed to the page for the compiler you want to build with. diff --git a/content/learning-paths/laptops-and-desktops/win-opencv/2-1-build-msvc.md b/content/learning-paths/laptops-and-desktops/win-opencv/2-1-build-msvc.md index ed93fd4c57..8773c603e8 100644 --- a/content/learning-paths/laptops-and-desktops/win-opencv/2-1-build-msvc.md +++ b/content/learning-paths/laptops-and-desktops/win-opencv/2-1-build-msvc.md @@ -22,9 +22,9 @@ git checkout tags/4.10.0 You might be able to use a later version. These steps have been tested with the version 4.10.0. {{% /notice %}} -### Build with MSVC +### Pre-build configuration -Here, you will use CMake from the command line. First, Run the following command to run the pre-build configuration. +Here, you will use CMake from the command line. First, run the following command to run the pre-build configuration. ```bash mkdir build_msvc @@ -52,8 +52,9 @@ The given options specify the following: - The build will be performed in the current directory. - The Visual Studio 2022 MSVC compiler will be used as the compiler. - The built library is generated as a single file that includes all of OpenCV's functionality. -- Disable unnecessary options, assuming processing on Arm CPU.Unnecessary options have been disabled to execute processing on Arm CPUs. +- Unnecessary options have been disabled, assuming processing on Arm CPUs. +  If the configuration is successful, a message similar to the following should be displayed at the end of the execution: @@ -62,13 +63,13 @@ If the configuration is successful, a message similar to the following should be -- Version control: 4.10.0 -- -- Platform: --- Timestamp: 2024-11-06T17:47:31Z +-- Timestamp: 2024-11-08T08:50:24Z -- Host: Windows 10.0.22631 ARM64 -- CMake: 3.28.1 -- CMake generator: Visual Studio 17 2022 -- CMake build tool: C:/Program Files/Microsoft Visual Studio/2022/Professional/MSBuild/Current/Bin/arm64/MSBuild.exe -- MSVC: 1941 --- Configuration: Release +-- Configuration: Debug Release -- -- CPU/HW features: -- Baseline: NEON @@ -88,11 +89,13 @@ If the configuration is successful, a message similar to the following should be -- Install to: C:/Users/kokmit01/work/opencv/build_msvc/install -- ----------------------------------------------------------------- -- --- Configuring done (93.6s) +-- Configuring done (97.5s) -- Generating done (2.8s) -- Build files have been written to: C:/Users/kokmit01/work/opencv/build_msvc ``` +### Build and install + Now run the following command to build and install: ```bash @@ -101,53 +104,72 @@ cmake --build . --target INSTALL --config Release ``` {{% notice Note %}} -The build takes approximately 20 mins on Lenovo X13s +The build takes approximately 25 mins on Lenovo X13s {{% /notice %}} +  + When the build and the install is complete, confirm the shared library have been created: -```bash { output_lines = "2-12,14-22" } +```bash { output_lines = "2-12,15-22" } ls ./install/x64/vc17/bin Directory: C:\Users\kokmit01\work\opencv\build_msvc\install\x64\vc17\bin Mode LastWriteTime Length Name ---- ------------- ------ ---- --a---- 07/11/2024 21:56 43008 opencv_annotation.exe --a---- 07/11/2024 21:56 143872 opencv_interactive-calibration.exe --a---- 07/11/2024 21:56 41984 opencv_model_diagnostics.exe --a---- 07/11/2024 22:03 36864 opencv_version.exe --a---- 07/11/2024 22:03 35328 opencv_version_win32.exe --a---- 07/11/2024 16:11 26391552 opencv_videoio_ffmpeg4100_64.dll --a---- 07/11/2024 22:03 56320 opencv_visualisation.exe --a---- 07/11/2024 21:56 27175936 opencv_world4100.dll +-a---- 08/11/2024 09:03 43008 opencv_annotation.exe +-a---- 08/11/2024 09:03 143872 opencv_interactive-calibration.exe +-a---- 08/11/2024 09:03 41984 opencv_model_diagnostics.exe +-a---- 08/11/2024 09:12 36864 opencv_version.exe +-a---- 08/11/2024 09:12 35328 opencv_version_win32.exe +-a---- 08/11/2024 08:50 26391552 opencv_videoio_ffmpeg4100_64.dll +-a---- 08/11/2024 09:12 56320 opencv_visualisation.exe +-a---- 08/11/2024 09:03 27179008 opencv_world4100.dll + ls ./install/x64/vc17/lib Directory: C:\Users\kokmit01\work\opencv\build_msvc\install\x64\vc17\lib Mode LastWriteTime Length Name ---- ------------- ------ ---- --a---- 07/11/2024 16:11 434 OpenCVConfig-version.cmake --a---- 07/11/2024 16:11 15260 OpenCVConfig.cmake --a---- 07/11/2024 16:11 972 OpenCVModules-release.cmake --a---- 07/11/2024 16:11 3879 OpenCVModules.cmake --a---- 07/11/2024 21:56 2849862 opencv_world4100.lib +-a---- 08/11/2024 08:50 434 OpenCVConfig-version.cmake +-a---- 08/11/2024 08:50 15260 OpenCVConfig.cmake +-a---- 08/11/2024 08:50 972 OpenCVModules-release.cmake +-a---- 08/11/2024 08:50 3879 OpenCVModules.cmake +-a---- 08/11/2024 09:02 2849862 opencv_world4100.lib ``` -{{% notice Note %}} -The directory name in the middle is "x64," but there is no need to worry as the generated libraries and executable files will definitely run as ARM64. -{{% /notice %}} +  + +`opencv_world.lib/dll` will be the library used by your application. Once the library files are correctly generated, run the following command to ensure there are no errors. ```bash { output_lines = "2" } -./install/x64/vc17/bin/pencv_version.exe +./install/x64/vc17/bin/opencv_version.exe 4.10.0 ``` +{{% notice Note %}} +The genereated directory name contains "x64," but there is no need to worry as the libraries and executable files will definitely run as ARM64. +{{% /notice %}} + +  + ## Build OpenCV Applications +Once the OpenCV library has been successfully built, the next step is to link it to a simple application and try using it. + +### Create a new project in Visual Studio + +First, create a new project in Visual Studio. Launch Visual Studio, click `Create a new project` on the initial screen, then select `Empty Project` and click `Next`. On the next screen, set the `Project name` and `Location`. You can choose any name and location, but for this example, we named the project `TestOpenCV`, as shown below. Then click `Create` to generate the new project. + +![MSVC project](msvc_project.png "Create a new project") + +### Adding a source code -Add C:\Users\kokmit01\work\opencv\build\install\x64\vc17\bin to PATH environment variable (for access to dll) -put the dll to the directory with exe file if it doesn't work. + In `Solution Explorer`, right-click the `Source Files` folder, select `Add`, and then `New Item...`. Create a file named `test_opencv.cpp`. -Set include dir/linker path +![MSVC add file](msvc_add_file.png "Add a source file") +  +Once the file is created, it will open in the editor. Copy and paste the following program into it and save the file. ```cpp #include @@ -163,4 +185,43 @@ int main() { cv::waitKey(0); return 0; } -``` \ No newline at end of file +``` + +This program is a simple example that uses OpenCV's functionality to create a 100x100 black image, draw a blue circle on it, and save it as a file. + +### Configure build settings + +Next, select the `Configuration` dropdown menu in the center of the screen and change it from `Debug` to `Release`. At this stage, your screen should look like the example shown below. + +![MSVC screenshot](msvc_screen.png "MSVC screenshot") + +  + +Now, set up the compile and link settings. Select `Project` from the top menu and click on `TestOpenCV properties`. Edit `Include directories`, `Library directories`, and `Additional dependencies` as shown in the images below, and then click OK. + +![MSVC include dir](msvc_include_dir.png "Include directories: Specify the directory containing the OpenCV header files.") + +  + +![MSVC link dir](msvc_link_dir.png "Library directories: Specify the directory where the libraries for linking are located.") + +  + +![MSVC link lib](msvc_link_lib.png "Additional dependencies: Specify the names of the libraries to link") + +  + +Finally, ensure that the directory containing the dynamic libraries (DLLs) is added to the `PATH` environment variable. Set this in the Windows system settings. After setting the environment variable, restart Visual Studio to apply the changes. + +![path setting](set_path.png "Set the DLL dir to the PATH environment variable") + +### Run the build + +Once these steps are complete, you're ready to build. From the top menu, select `Debug` and click `Start Without Debugging` or press `Ctrl` + `F5`. + +If a console window appears showing that the program exited with code 0 and `test_image.png` is generated in the top-level directory of your Visual Studio project, you have succeeded. When you open the image file, it should look like the example shown below. + +![test_image pic](test_image.png "test_image.png") + +Congratulations! You are now ready to create your own OpenCV applications. + diff --git a/content/learning-paths/laptops-and-desktops/win-opencv/2-2-build-clang.md b/content/learning-paths/laptops-and-desktops/win-opencv/2-2-build-clang.md index 7b8591bcba..58e8b81bcd 100644 --- a/content/learning-paths/laptops-and-desktops/win-opencv/2-2-build-clang.md +++ b/content/learning-paths/laptops-and-desktops/win-opencv/2-2-build-clang.md @@ -22,9 +22,9 @@ git checkout tags/4.10.0 You might be able to use a later version. These steps have been tested with the version 4.10.0. {{% /notice %}} -### Build with Clang +### Pre-build configuration -Here, you will use CMake from the command line. First, Run the following command to run the pre-build configuration. +Here, you will use CMake from the command line. First, run the following command to run the pre-build configuration. ```bash mkdir build_clang @@ -52,10 +52,11 @@ cmake ` The given options specify the following: - The source code is located one level above the current directory. - The build will be performed in the current directory. -- The Visual Studio 2022 MSVC compiler will be used as the compiler. +- The Clang compiler will be used as the compiler. - The built library is generated as a single file that includes all of OpenCV's functionality. -- Disable unnecessary options, assuming processing on Arm CPU.Unnecessary options have been disabled to execute processing on Arm CPUs. +- Unnecessary options have been disabled, assuming processing on Arm CPUs. +  If the configuration is successful, a message similar to the following should be displayed at the end of the execution: @@ -64,7 +65,7 @@ If the configuration is successful, a message similar to the following should be -- Version control: 4.10.0 -- -- Platform: --- Timestamp: 2024-11-06T17:47:31Z +-- Timestamp: 2024-11-08T09:23:57Z -- Host: Windows 10.0.22631 ARM64 -- CMake: 3.28.1 -- CMake generator: Ninja @@ -74,10 +75,11 @@ If the configuration is successful, a message similar to the following should be -- CPU/HW features: -- Baseline: NEON -- requested: NEON FP16 --- Dispatched code generation: NEON_DOTPROD NEON_FP16 +-- Dispatched code generation: NEON_DOTPROD NEON_FP16 NEON_BF16 -- requested: NEON_FP16 NEON_BF16 NEON_DOTPROD -- NEON_DOTPROD (1 files): + NEON_DOTPROD -- NEON_FP16 (2 files): + NEON_FP16 +-- NEON_BF16 (0 files): + NEON_BF16 -- -- C/C++: -- Built as dynamic libs?: YES @@ -89,11 +91,13 @@ If the configuration is successful, a message similar to the following should be -- Install to: C:/Users/kokmit01/work/opencv/build_clang/install -- ----------------------------------------------------------------- -- --- Configuring done (384.4s) --- Generating done (1.9s) +-- Configuring done (244.5s) +-- Generating done (1.4s) -- Build files have been written to: C:/Users/kokmit01/work/opencv/build_clang ``` +### Build and install + Now run the following command to build and install: ```bash @@ -105,35 +109,51 @@ ninja install The build takes approximately 25 mins on Lenovo X13s {{% /notice %}} +  + When the build and the install is complete, confirm the shared library have been created: -```bash { output_lines = "2-6,8-16" } +```bash { output_lines = "2-11,13-20" } ls ./install/bin - Directory: C:\Users\kokmit01\work\opencv\build_clang\install\bin Mode LastWriteTime Length Name ---- ------------- ------ ---- --a---- 07/11/2024 16:11 26391552 opencv_videoio_ffmpeg4100_64.dll --a---- 07/11/2024 21:56 27175936 opencv_world4100.dll -ls ./install/x64/vc17/lib +-a---- 08/11/2024 09:51 40448 opencv_annotation.exe +-a---- 08/11/2024 09:51 126464 opencv_interactive-calibration.exe +-a---- 08/11/2024 09:51 40448 opencv_model_diagnostics.exe +-a---- 08/11/2024 09:51 38400 opencv_version.exe +-a---- 08/11/2024 09:51 35840 opencv_version_win32.exe +-a---- 08/11/2024 09:23 26391552 opencv_videoio_ffmpeg4100_64.dll +-a---- 08/11/2024 09:51 51712 opencv_visualisation.exe +-a---- 08/11/2024 09:50 20207104 opencv_world4100.dll +ls ./install/lib Directory: C:\Users\kokmit01\work\opencv\build_clang\install\lib Mode LastWriteTime Length Name ---- ------------- ------ ---- --a---- 07/11/2024 16:11 434 OpenCVConfig-version.cmake --a---- 07/11/2024 16:11 15260 OpenCVConfig.cmake --a---- 07/11/2024 16:11 972 OpenCVModules-release.cmake --a---- 07/11/2024 16:11 3879 OpenCVModules.cmake --a---- 07/11/2024 21:56 2849862 opencv_world4100.lib +-a---- 08/11/2024 09:23 434 OpenCVConfig-version.cmake +-a---- 08/11/2024 09:23 15254 OpenCVConfig.cmake +-a---- 08/11/2024 09:23 936 OpenCVModules-release.cmake +-a---- 08/11/2024 09:23 3749 OpenCVModules.cmake +-a---- 08/11/2024 09:50 2862548 opencv_world4100.lib ``` -## Build OpenCV Applications +  +`opencv_world.lib/dll` will be the library used by your application. Once the library files are correctly generated, run the following command to ensure there are no errors. -Add C:\Users\kokmit01\work\opencv\build\install\bin to PATH environment variable (for access to dll) -put the dll to the directory with exe file if it doesn't work. +```bash { output_lines = "2" } +./install/bin/opencv_version.exe +4.10.0 +``` + +  + +## Build OpenCV Applications -Set include dir/linker path +Once the OpenCV library has been successfully built, the next step is to link it to a simple application and try using it. +### Prepare a application program +First, save the following C++ program as `test_opencv.cpp` in an appropriate location. Here, it is assumed that the file is saved under the `build_clang` directory. ```cpp #include @@ -145,15 +165,46 @@ int main() { return -1; } cv::circle(image, cv::Point(50, 50), 30, cv::Scalar(255, 0, 0), -1); - //cv::imshow("Test Image", image); cv::imwrite("test_image.png", image); cv::waitKey(0); return 0; } ``` +This program is a simple example that uses OpenCV's functionality to create a 100x100 black image, draw a blue circle on it, and save it as a file. +### Compile the program +Now, let's compile this code using the command below. ```bash - clang++ .\test_opencv.cpp -o test_opencv.exe -I.\build_clang\install\include -L.\build_clang\install\lib -lopencv_world4100 -``` \ No newline at end of file +clang++ .\test_opencv.cpp -o test_opencv.exe -I.\install\include -L.\install\lib -lopencv_world4100 +``` + +The given options specify the following: +* __`-o`__: Specifies the name of the generated executable file. +* __`-I`__: Indicates the directory where the OpenCV header files to be included are located. +* __`-L`__: Specifies the directory where the libraries for linking are located. +* __`-l`__: Specifies the name of the library to link. When linking `opencv_world4100.lib`, omit the `.lib` extension and specify it as `-lopencv_world4100`. + +### Run the program + +Now, let's run it. To run this executable, you need to ensure that the directory containing the dynamic libraries (DLLs) is added to the `PATH` environment variable, or place the DLLs in the same location as the executable. + +```bash +.\test_opencv.exe +``` + +{{% notice Note %}} +The command below adds the DLL directory to the beginning of the `PATH` environment variable. Since this is a temporary setting, the `PATH` will revert to its original state when the PowerShell session is closed. To set it permanently, you need to use the Windows system settings or the `[Environment]::SetEnvironmentVariable()` method. + +```bash +$env:PATH = "./install/bin;" + $env:PATH +``` +{{% /notice %}} + +When you execute the command, it should finish quickly, and `test_image.png` should be generated. If the image file looks like the one shown below, it means you've succeeded. + +![test_image pic](test_image.png "test_image.png") + + +Congratulations! You are now ready to create your own OpenCV applications. diff --git a/content/learning-paths/laptops-and-desktops/win-opencv/_index.md b/content/learning-paths/laptops-and-desktops/win-opencv/_index.md index dae9a04626..da15b1c424 100644 --- a/content/learning-paths/laptops-and-desktops/win-opencv/_index.md +++ b/content/learning-paths/laptops-and-desktops/win-opencv/_index.md @@ -1,7 +1,7 @@ --- title: Build OpenCV applications on Windows on Arm -minutes_to_complete: 60 +minutes_to_complete: 90 who_is_this_for: This is an advanced topic for software developers who want to use OpenCV with Windows on Arm devices. diff --git a/content/learning-paths/laptops-and-desktops/win-opencv/_next-steps.md b/content/learning-paths/laptops-and-desktops/win-opencv/_next-steps.md index c4ae77cc92..6870d89e90 100644 --- a/content/learning-paths/laptops-and-desktops/win-opencv/_next-steps.md +++ b/content/learning-paths/laptops-and-desktops/win-opencv/_next-steps.md @@ -1,21 +1,21 @@ --- -next_step_guidance: PLACEHOLDER TEXT 1 +next_step_guidance: You have successfully built OpenCV on Windows on Arm using MSVC/Clang. You might be interested in how to create Windows Forms applications on Windows on Arm. -recommended_path: /learning-paths/PLACEHOLDER_CATEGORY/PLACEHOLDER_LEARNING_PATH/ +recommended_path: /learning-paths/laptops-and-desktops/win_forms/ further_reading: - resource: - title: PLACEHOLDER MANUAL - link: PLACEHOLDER MANUAL LINK - type: documentation - - resource: - title: PLACEHOLDER BLOG - link: PLACEHOLDER BLOG LINK - type: blog + title: Arm Kleidi Libraries + link: https://www.arm.com/products/development-tools/embedded-and-software/kleidi-libraries + type: website - resource: - title: PLACEHOLDER GENERAL WEBSITE - link: PLACEHOLDER GENERAL WEBSITE LINK + title: OpenCV website + link: https://opencv.org/ type: website + - resource: + title: Evolution of SIMD architecture with SVE2 + link: https://community.arm.com/arm-community-blogs/b/architectures-and-processors-blog/posts/sve2 + type: blog # ================================================================================ diff --git a/content/learning-paths/laptops-and-desktops/win-opencv/_review.md b/content/learning-paths/laptops-and-desktops/win-opencv/_review.md index 9b1bfb96fe..9f0dd17c46 100644 --- a/content/learning-paths/laptops-and-desktops/win-opencv/_review.md +++ b/content/learning-paths/laptops-and-desktops/win-opencv/_review.md @@ -2,37 +2,36 @@ review: - questions: question: > - PLACEHOLDER QUESTION 1? + What is OpenCV? answers: - - PLACEHOLDER ANSWER A - - PLACEHOLDER ANSWER B - correct_answer: 1 + - OpenCV is a game development software that helps create 3D video games quickly. + - OpenCV is a library that helps computers see and work with images and videos. + - OpenCV is a tool used for creating music and sound effects for apps. + correct_answer: 2 explanation: > - PLACEHOLDER EXPLANATION 1 + OpenCV is a powerful open-source library that helps computers process and understand images and videos. It is used in tasks like detecting objects and editing images. - questions: question: > - PLACEHOLDER QUESTION 2? + What is MSVC? answers: - - PLACEHOLDER ANSWER A - - PLACEHOLDER ANSWER B - - PLACEHOLDER ANSWER C - - PLACEHOLDER ANSWER D - correct_answer: 4 + - MSVC is a tool for creating user interfaces in web development. + - MSVC is a Microsoft compiler used for building C/C++ applications, mainly on Windows. + - MSVC is a library for machine learning and data analysis. + correct_answer: 2 explanation: > - PLACEHOLDER EXPLANATION 2 + MSVC (Microsoft Visual C++) is a compiler provided by Microsoft that is part of Visual Studio. It is widely used for building and compiling C/C++ programs on Windows, offering good integration with Windows libraries and debugging tools. - questions: question: > - PLACEHOLDER QUESTION 3? + What is Clang? answers: - - PLACEHOLDER ANSWER A - - PLACEHOLDER ANSWER B - - PLACEHOLDER ANSWER C - - PLACEHOLDER ANSWER D + - Clang is a tool for designing animations for mobile apps. + - Clang is a compiler that is part of the LLVM project, known for cross-platform support and detailed error messages. + - Clang is a plugin for adding extra features to text editors. correct_answer: 2 explanation: > - PLACEHOLDER EXPLANATION 3 + Clang is an open-source compiler that is part of the LLVM project. It is known for its support for C/C++ and other languages, cross-platform capabilities, and clear error diagnostics, making it popular for modern development needs. diff --git a/content/learning-paths/laptops-and-desktops/win-opencv/msvc_add_file.png b/content/learning-paths/laptops-and-desktops/win-opencv/msvc_add_file.png new file mode 100644 index 0000000000000000000000000000000000000000..0301fff9a0b60285eb5c152f37e2f7c7388dca9e GIT binary patch literal 80336 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 AvH$=8 literal 0 HcmV?d00001 diff --git a/content/learning-paths/laptops-and-desktops/win-opencv/msvc_include_dir.png b/content/learning-paths/laptops-and-desktops/win-opencv/msvc_include_dir.png new file mode 100644 index 0000000000000000000000000000000000000000..a90ae7c1d91762378bf90e1b44289bdcf2861ba5 GIT binary patch literal 66647 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

4@79g;7!N8TKWgYQeHM~Cyb>gW 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

=L znj^ZXCTeIPdaMO9MM60hw_;R5*sHs`&i85%IRl!$sDL3d@w@17LHx=6XH`8F_s4hF zmW+_BPP3aPJ?ohv>7T$@P%3HNU5c2sS)KKwdpJ4%f{4Yg_Z$mTtAzln;XekAQR9 zoO^GQez9#^YyC)X<>fhm8>Ziua6{3DH4dQJ-|k9@1Pd`!CPrqyS_r^r^>%YSSZ*o-$@6vJ?vC;`7AvO7mo% z^$1ov8L|Xi0E>o~%`&sFwG&}^^MxJGwL?ft1B`+^!}|Mx)SDCW+v#L1)CWwc7yrK` zjfzoK=m4OjgG0HHpV0&~x4Q83aAC>acO+6lG*z~k7`Cit_%FcsM2Se1FuTCM zbOh^!tfZmH3MogG_@W{{S2dfVgQdXzU1+W^G0N@CmW}U!G2JI*cGDk%QbhM4Q!MoA zB0Anem4<|yaFTwwiJ=G6N8Ww&`wLrVH4%ul8WRo?JFgJ(IMbX&Bo&Yerz6Xc?V zo>$RuxD9DOAJO(}n;&TXU5x@)7}nO;N*k-)1rM|8yjHnasBbbl!u_s?hn5c+ za+=1*E1EV9Vr-6nD4_x*K;@98eiK1+j_^ad$6@Qa3W%kpEloicz09BA@Kxi@HTiLz(M7@2C{0WCSp)dVkb(7VLWKnf?RGZw?_yAj5bUlJ1;u=bbwuTEA#k0)=w`*`OH9Eb*>5yt2#Ge zYJkc+J+tTEObguHQau8ds+4+lw{?$&H%x&^VU?A{<%uJqipJmxVik)StEU;m z0FuH2cUVl+3PfQ0K>be+12sq#OEQBMAi)y|{2y`$+w5rvx^Nτ-y72~c)9LTkb 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 literal 66647 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

4@79g;7!N8TKWgYQeHM~Cyb>gW zi&%1lH#WjUm4?iXPnMaH5O?FQebTg@;<+6NVbbPvCx_{Yog3wOK!8$ z)xXkh=ch?#qtEnKRug}!tnlE_@t~5TB56N^*;HP<*1UE3WRppsL##qN$+gSpCxxqh z753JT9?}gzDY>fE5*SvmZRDaiA@R?(G7i(4;Ti2sR<`PnE-`iH0Us9&HB)M z(Q$l`pMP>XlVC$9av@_1gKJ*ByPOmSE~0_)XQ`GhFPwMM4E)Yja?()*wJn`-y{`MD-+ zj8atdMz2S~77|KZ#kTG;7X%iy!zUNIFVma-J$^fPf8d~YYwyA$h|qL^nHTDJ>+|&Z zk79Xa%sVq~D+ZAX?_dJglq0KiC&3Ex{iQG(5zUc5SY)RXjGQwg-%?DkuTKy1fqlI4S6Ukf4T<^- zC9rRo^KT`sW5=*w@4iog99=xk^;Z&wpFH>(L`0hW)-7B{_|itQft~LKx#eobKpS*| zOYOOO_){3LnGDnv5dF`7s{p255pVn>?M}Vvp17utG)&g3{%5OOUv~w z#&%(h@$zfCq`e0N;`f zTRmGV`khs5`=pSnyah>Fs#`p4Q_tiZ;r%am^c~X`1Kr}HXY7-c@*y@{36o`rOHMxE zajdNY4V|+tmV`5x%M4f^X^$U1co3Y7tXaN!p{tS}v^@1r3u-&*m&ed4V1`nUU>3eZ zFg9Fr)=vIDL&IoXKq4gklt;oRBlxc|1#JbbJdLdGLz?=>Y!k@Pvaez)X>>`zp085j z`qR^hvko$e*lDD!o(jjnNOq6Q9Un$6d(pm)5xE!U? zw+U^WjGTEi^W2~>x2h9h*h)HucnudUG88pCjI=%)U#RbH1)ziW$$ki^AxPEG`v}DN zp{}nu^9_5JX33-caY-H-L*o!Gi>j=d)wWqC*2d(cQ@^}QMfcN)`ZW0uqGsr3K#pm7 zmZ8*e-LY)u>4JldxHmP2)n5FL!?yz`p}$5ijpoiwX$nFhQ?~5|A0G&2>betu_2Eoq zoC7~joV>?Ntn2etW6MAY=VP}i#qf7jqodeo<7;%JA|trw(Axq zj`Q>Pv^OlRrP4%(T@Dzbu@A)1uNH^1 zG5+<9+&Acg>`D^7R|M&%i5+GMtD$GEj#MTxG5TY!pbvhaF z5jcn#mX`f%q|)I)L`t)@DBYm@dyKvtsBaMMuGDW_Bp!)BC@+c%5W`9vzZ=?a-|#2? z2;s*HAaVmK%^-1G>ZKrZ+73pOJ&Qa_aOc~HK>UfYPgKiUsYxx5IF=|OAtS6xey*pStk)-j4yixQycQJdpY(|sORH_G_S9(R=28Xq%Jjl zWRTCga(o}pzOlzd+OyQ~;E6s`{&FHEnXUJK8{8MOtyTx>JjAHwY37}p&mW6`4*Gkt zLTx56{T{SD;v%1UwPYktoAWlFFzUOg8j-$pgL2G8KnXDQe$4gdam}S zsb$a?F~c*tt}Xyzq7MA}cO`+%wY7Tb{?6`wdB)_XVcvE6!GvFzRKFeS!KNxXny zck>moVH-E9>J~@6SI;^3AFIWJR&;cgqx%Ybn+326l-<>>>;F_^C)4`X9>;04W2Egz zAkSL-eYg^d4L#t~F8SqBytNJLS9U>#Fwmq0*V#^uJ#Xx$I==;-c!z5dc>IodcQ28B z#1K&`zCA{4MHG87%Qmayk?!a!;j>;20Ebs2bS=S)&b4_KjUM=};J83*k1|$UN4y@X z&ah+Q4Gtyg^brE?doJ#Oodx(+k}IyFtg7hE*Wv{EDP75dFF|W*GTn_V66M$iwV{Vq z$ zi#U|ep8GzGG^DPBC`k_q))68Gcdyi@`wqG|<_1hcy9>M185)XvCU4MVCN^F#7KT9^ z`74pC15kQN42XT{Lv=wF`N+DrZ#D2`{0Sz#!yugM$5*Jh9_;8-{|jNUm_+w3b8ID_ zuchhmi+lTG(i}mw;$ys@EaiGqzh9DU3$)s?fQz4y^Ic_LUa)mFELkz=uz}rLnioT} z9KKu6k%gH#^v>OHU9TuxD|$1XoGjn7$K}!F#q7s-Wgt?UUM$$9!yR9L zu-2m8bXTOh$CDhu*yMS`#Vy?d&+G#4fs0dhpXxIeYDCJMy(nu-oS{M+95vsq1#L}1 za1uHi5~Q%B8QT~OWuNsf+gUz?lG~^E?!9LZYmjo5Js{{MCqU;)#`r79^KGJbURXYD z^h^egrM?y3eDI3h+`1|f-x&3hFHs+Q<)}U906hl#ZLB6lh044Y|n17v3$Vy%nb}l zr%j{Y>u`;>p*ne{8rMUWcFZ&8$8eK$o`HMo>ovnM$j)Kjii_(=akwncMWsb@z}?$~ zQRV7-oJ`lAtO3MX@~$Kg}3X$V_ArMi>B|N zXcd+upQ<5ZAZ#n?;?kUR&Uss{(sYLK0(NPHBEs$Miq5WF{^dK!^xoovQ_MZk7ZgDQ zn1Wry^1I2FA5dqj_vFNjpfYo6v?IHT(+N=C8d{w!Km{N|E#~%RQ449B=idZtO}g2? z@Malp39lFi0wThLWKxl4ho7aD;sTn5Sfh??>@#^PvZB$cq=(7-QPppB(To-&FvXT7 z@v`tC{#X07PMxM*lf1MMHH5nN&5nc6;IvZt{czWvYuTn$nK zIE`>`6HDEobSb7)%_^0@Gyk9aXh}LViK&=c}#JPAy z7Zzt$c9szAT84gZb1nbgkBM+nxsJ93>~77^+bvhb##$uY*kz#(lI3PA*P}42b$!jP zoxy;bT4B7+q(rf>~artARAR+nqhJNmpuRmOlKl;lzuBtf?8L3hl zv0J0H7#Y}4QA{S9oJy3xY^40CCajl7yAky|+wfnf;s|om_s{JjT>O0jFZHIaFxqO=3Q}Yh5Zc zR*-PFaTSYg=1CgS`h}Fkb6(pXn-RD%;9EgxnZQuWA#a3)!I;+?pr9Xk;opH7M3Lt) zAnw+=`JjsIrU2GsK`%t_tv6cfGY0_dMn&e=UE2tV3JRxkO|i%6;80kG^C7&fLaFWyk1T! zy^6CJBp3St!{3q%taO{+@BLIY`S@e^7o#k0s8`-?vxyndk)#r6<#u>AHo)J)?2yE} z(ePG-8>J6(S--np>}$%rE3>GU+&lo_wD5W52UpJv!W!03daLd4Hz(;VE%o(byr&Bn zMfs_G^1i1oq-RFnrY)SvAvO=sq>Ikye>&CBz7Y`9oV}z{B0Uq3mE#LA^(u`_ymWm& z38)b_0Bo&}oVo5-lP2BP8q}$JMhH*sHtG_-{qGZy#dea4tk-=Jz0GZQHRZV0-YaW^ zleum1H{(ezhTDrE2%nQ&LE!C^#Rg+an5Q{P&d&M{$HXxYA$-OnCwfi*`oLX9r_E(( zq!y*zkSh6;p+$UaKs)Un5s>`b9GxawZq8fM)64NdpT>gj%V6CgeS6I~^SU9G8!NH! z%p2dDPT!&%$su24vUXRf&H`T8U+7vONnNcQ3ND>s*_e}t z)Ua17PX%Eo-XO2YEb$LtZh9xKw2ggLIv0`*T!N4NV2fCpCKtA%JTJ zCXB``GucKb);N{9?MGD8?tONkjF_+-DSAA@zHFTIdT~U5TPc!S+CXW!+9e>vpv3rP z-3UALBT0U{em$q82q;hn>$9%ww)&L4XsR4_dVDg)C=|@{D7gj_ckb>-qg5$k!<9>( z%#T;;@WG+ts;zE{OtuA*UUe%h+V7s0taLT*1WLS&vR0t~X;fHW9pi^sCsp&-G#-tJ*Fub{<0y#BrMW{74Xn3`fP+rqwem6$xGUnsHJA!C-STH za^>9C<9zK`rl8bV1x+L#Hwn3RRZ-JV$cBaIe|SWG;OOkUXjyeALJv^Iy)q$E_9G?@ z)kf!_#}HVR&lQuUjR1LI+?rDr#Y0EXASSWOA1kwZ+NRyvD7EZjCx>E^r6zOb28pKN zd#xWZw=+Bdg70L#23wy%D2w07^Rn$7?}WXZQ<^z9FxC?T^Ec#k{i>{EcHg!aTJ{uZ zhcEl`v`;gvGz!GH`OAtLk%=F0q1Xv-b22?^fOAl2LLo?I-gyE%ToRvP3nIU70BFBQ-@`EhVoGZlk&%2SQ zY8XX2n)jk^EAOPA#Jx9E@?&Hs_5bUw zl#!Yy7O$r2{3YM9D=!+Fpa$x0&+B9~qkJQz25UO#J3iJL)RZeFtTxHF9bgl4AH5O? z!k%-iDM9kuTo;Yh{%c^y6J&l~v8YW6+1~I!nIK^wIC{Xb|2+;HE@rLK`QF*$IW=xN zH6ga5$wuQk!?tqvjpt#Xl5ograFcII*_o+FMibfBW*`1FS5`rCiSV{fLD^-9UkGm# zu5U#wPgcA_#sNCruBUfRuu-EL#P>H_e@oVJr2#Lf*~DS(@cFo+8l|NQj>|L9WZS7e zliSnRJ9G0K^jy~rJED#Fiiu)FhJBG$6mZi18x0{+4oyvcY#MKg5tJN7o@#Y&5+CY+ z*SA_33~$*}IB$H2bCuw-%wuR8;5IZg+yP`xs`yVv+YXwe1Z<;y+O-1uY%5a&1TeL5 z?K6|{vWPbG=AOJ8q3FmS!HwoDTUB#!#SyD&kI9|6H~bv}4rzJ8Q~VAps!6oXr#_^@ zw{a`gX#56#I}1%9pZ$;^^}#eL_nTpfw`Z|QA;BwnZe{8Dp7`4AflL;ugrxN3kVUw0 z>G(QkDIZ0QY2|a$A|2QD{%G(_K7$OXtI=;&Qzu~a1kI+fyj^=G(*-;-;}Q1RI$dFl|{_SQlH1pA-0S|ru0qaqjexXo^xu1?#tXOD)1ekS22qlqVl z5&yTw%l=7cULlG~Cec$5Py8c-w&-^WdK{;hY0S2v=PQjNpnzXG?II_c#^wtBbUPww zBvC6w2=Mzeg7o`685Wp0{p9Yef;Q#S?&D1m8Ft@X+bxyF80_6X{ZpaG$le#5P+b1H ztr)4a<|eZ5n>9RSVy;y+U@qf`D)AMSB$?t}D}x7zi}hTW>~#SQIAc=-$A++v8LFa} z46?DNs+uhernI!;1*-vKGIKhxt8G3XZ|TFA?$vYGU9)=Q*8d%KgGEEr!-msl|88&nPF-kNnS}8YL(y}{1%b2aVQnnzH29j@@Ttht|e3UI)j*W z{e~uidDH7Edyt7HdBirjA}fGPviKIUFM4bJK-ANw!y7EsjuU(>3Isw;B;WAmi^5!+ zEHZ1X;~Lb+M+W5>DJ`Tlh%q(uG1Z-CS?ee%ywJVolz5^puIF{L0mHrp;+hl+rIy#H z1`r*3+pOn`lFshyM;3kR{^U9RewehDpzdWByYU3uv= zyW23-ud~{4wOQFsZr^_Z1HdqN`ZlH%k;dE$13!ya5$c1scwt3>bojkw;332>wzg&l zD9@>|DCan3*}zXn1YWj#L%QyX?^^ z1V{$bGh!<{h>4YIskl-lBlcEYs~4_UmW^RBK_jaI!!1{2N_o-EWxXr5-qBeN%-ca) z&q;@0&6HEnd!r#a0#S^%4$o8Go#>^HHMuSY}|8%6r+9Qp0e-G8WZ0YgXCUG@tB>YPET$N#lsJyqP)z$s|*uG zYzhwXg(Tytn~BW6#lvQJF!&{Vqac)GhzDjcwqisqUiqrO5u+=a(TLTD9Y$hf=Mn~a z>wT;%Dr=Q`K)pG#O4IT;kvH!? zBHe#(r>iKvRD7TC(r3!wJURmz`T#lhKsfw)Z?h#gMFzJ?nK;|tHUp}=j1*iJa33k$ zhE^yGmRf7fw6aF%f0t~9X|`l&OcY5;z`O<(A{?N|4vPf(vXB!vve?>D;B!u;I%s3Gnrr zbV)9;$<)^5!O3B6XhM^PY2?aU>vDin$?*8*HPUzM@6~3-Q;ou9db*`%p}E-<*&12! zu=l{7rcu6_TGBhW2AI{?%c!&qJI=WcS98}ZnoG_v8>CH~&Xp5>N^@ozP!@c8TQ8Xu zLvm<10kMi*Z%x%K^1Qp7vdl;W+6iO2xc}`Y^KwSZTmy1t~#y*(JmSHT7rrxto-j;?owo0$(BVn(#`}oW>|$T zHAr1ulw3DOHHf;YD2GJGilHU~r}+)0Y3TcKL0n}SOQN( zBb;eBUm%=a=rtjV>bGNU_8ARYlY)for|1y|g?`9!+(K-DdN8f5kxRx~J;gQH3dkXE zk#_?mtdVJp6CZp^jmuu7#pp0mZ@>*kopKbWM|0W$MfV6XviP!efzE=&+79G-@sOL5 zSDgAEj4%(L9z-o?$Y_`l2WDIGUzQ8JDih37I}?l_UvTj+?O|r5zp^Nn z+hkEBr?r#P>g&Fo;9~!|?2uv&(!L60Lo@sI>XJ3Z5tLa{rTk%bR7bwiwbgdjFUEz@ zcN!S;v36q`*KQuZ7n7J5TjC%AoYy!(NK=_&v5gwwy0pPAAZ1s}WY;s* z$|1HyORkBJ7mWnUh4DY7lEpX5BHbe!9XaHf(R?udppsVX{=4S&*S&629@p2mXGfUr zE8kYrS0Z<0vc~6Ln2z10E0oq<0>xFs8Jt^QCf+9LcD(jT_mz2`vTMAyfdT7#nfole zEOg4K<^jYENkLO#vG#GCMwv+#J`GuC&XQLxbu%7m(o&TJ(yrJ$NF7-r_2)c;EUi3r zp9!>dq*&x_2FHbOtXRgo4F@k)GyC8Bx>%>A48hV~aKx*Ic$jaQ#YA}p?WNee9bDWY zsLeL>l<`}yvKfExHyQO*#00!Re=6_0bPpMv_yKgoqni-sOg&x z(vl3<`M6o>9z6O;E>cM5=0?%3-Mo=wn>>$biF}aJ=R{SU{)?O3uJ_w^*uyMSV%EA2 z8ZH}r9Ue}quB%gitlwrU#UVVyy9lgcyM=(0gJ+=>E(;)s5?qyca{RPCs8P^Yyl${Y zxsUVGXZSni;f`Rmi+#1{AP@}(Dq zU3UN=nVb%TKz@-N`3ef`G*YCFm0^Nr0iY#66Fn))D^1|o7QG!>VwE6-e+}@<^f8KJ zNiz|EXpXt#Fakwh2M7InG#OF=1u}2EJ?wPxXD;7dKIEigiWwbWx>F3T)drBxeMnY@ zrLCrJszN!YRk) z;jWRA60ZdPO3u^Cvl_GZcgR(Q_m;I1qW0t;O&yW9CSH5_-=Y+$KAjO$O%|j`fBU=f z$G5Q~3qk*%#+PIXTuQ2n|7j-oJn^5V|4+|ita8f1?B%w2ZMnl+74LNhuxFb$Kb+nA zc!T%^FMXlvbl^X#8h4|9M>mVrkIR0rv(VxXfAHUIXWN_+9#$1pi)qJ@S?$Z0Sk< z-D*N!F!1e}SC{^h!viNXB2_;)`AUR8BFbdxqxbWP1*cm@j6Klu_A-Zm{YTf?PlWW| z`KJ3ZR7uJ59>`D~<|snL{cOGkjz6SyKV-$uGzILggFEj#Kwg2}S#>T^=w^D`4>(DM z{)$0AlUE5X2-#Ra)P_-sDU5qvCEI?2D&kiW4mr4u7x+9q&Eo%bsq`?6RlNEV_m8aP zZ*@CKeK0$I`(?|w^R@rkWh%R~0`zuXs=xdG_{PD$XLFk3%4QY3mv^v-te1LmlyD#)A7`22x5#8}d*B zME-ONiLi7&&jWpSuxZ;5PB^6sB=|oq4qNN-W$Do-A`n}0=YzSuvfw9r<75dct%qwK zJ<-CgJl7;<3oSt9hsy)(e&08<12+O@qOU)m#U45v7OzaV1dM%$C4|t6`21W~R@Kls z(xx$SXQr8hgvVb#BVti5H7Z*ewobmtRRZ9bBkRqIC!Z_=u=K}pQfOSxI9Ch$T+)W) z^B6u|I&IV5h&A=Q#(_n3{t8VWIR``AByHkcY{~L>s%6$~^!c`^)oqyEp=x1aAzN}$ z5`|Rfu+t~q8}+B6+d-V2ulzZ^ewKfb6AW3$cq@tI^HfJUv|C^J$}Qw;ep_EC{-?)q z;!}$@BY?!8dj()5#{U(9xbkPk!m&`s3#^^yHy@||VZz8Nz;~Zqo^ineBKk`!S1i7a z(+^;R`q3^q=grw$xs>m;a6xX!#1Ei{8wQ+*rq+-jq5I8#By}L%28tasRYMDx9FaV2m)m9 zajZ2QAFRDIwu?>gZ6dX1%Cg}BJ6(Z!rH`;o+uL4!`H)3S?m)hN)S7qSfQG5pj+&{*q5|MDIJ;ee6`v8&Jzu5#|&l&OmKEKe8b+8Ca<0;ijK4B1A^!d5jKL!QdW(a{-70`! zbHA|Oc>(yDUug8GopKfT{*LdLf}vY8^paD;egR|6ep-vD8_RC?KIbR8DpGNrxarxF7YrtmnDHd@r}*mL38#SHbw%#Vc>U8X+o9e^+ z221|p9Lp&ykengcYeJpRBQBO&fG>tPw3j~l*PG?G1<2q3^`sp?SuKwWA#wW=W@^Lf zS<5kPlVAjCuZ)dJP*AXozpVKJTq6&9uwq3rEi5Wxrwss^wJI3xFXQdKCPYsbzt`fgZSb5@lL{u!Mo!`K3Q)?k|Uo39aa=jg~L#hedEzSZsz zc%-5$my0t9x%H|_!HvnE-tNuU+|QgpJ3JDkc0KG+@;lheMBAVNxyU%VkgG+|m}?TL znKE4;%~(tOu=R!e2ATeO-Pj6BW?)C@MhHq8Pe8q%G`xVuH!NkaTij`I%HsMdF{_f& z($A?Xeea8|J^RU5#4S=Vn;R&Eer##XF%x`rmzh_C8t-PL+`;`?*RczJ_4TI`+d+r3 z(ZWY;JLZqv^(MpJi5=uZZ;3Vv&2Dtd;(CDZ+6xs^^0n-Vm-1wPuGS9+Co7B` zY2bgl#U%BYkoan{OE~y;_-7LOe-_lB{GCz@nfGS~o4!9u!~BYde$F9Hx5Z@A*8F zHxJD`Ty@;q{HibjsZ6VNFCmx(SuN%$$IaKZ9mWigjC7ONyRROk|Fin}-vMPkIEkZP z?CgATKz^+p5Z=?Q0 z5cQd53p;$PEP+J>%C_G$bEuVZ&yT$SJ(boUBUV}U?M#kpO+)sQXOfmO0*r!WxYO>) zK+}>*-*!ffsiFf7TroF ze5=qpq6#U?-yjE!4Ouap5t9gix&IlHe9wy#YlnOv!Wl;*Zp??2e1Pd<<9G*vg>AUz h6*CcN$ySqbicej`CfA4=M zD=TZwOzzCwIdf$1eSav*OQ3xq`~Uy|(4-{Az5xL5QUL&XG9Wx`i(d%uci0cIy`-iS z0Koe9zb_n(iPkazKn9Q!6H)n|ah&PmrP6=<*L-)aB`xZxZxt(-8(HhuggTrRcG+-A z`~2<8(xuhRpQDl~T-qtz@D?OVAST?u)Aq&D)4J4k(oa(xn*TO^gdSo|+1$*=R#Kbx zvUr>jsVFHy5C8yMyhx?^*M3EJT}j@A)COh7M`#2=J9YjtvRQjv*jtfQw_Zf)tm{}><)_%1SWbW_HwD<>B_y}$_;~S z<;G(8aH8NYHi>5rt>R9e($g!n(w#y_6fkptl=<22>2@T>guEPD4T1pw0)&AZ`Tsz| zfDk~JonRCY_rlb;?A=0^7$pc!764KI7oUIAPf@En_QTi zQ&ZB*N=*zFci8HSqE^WI&C=)C#7{%BAFWyQ4-2!5olqDE4%%ugpa1SRIXO44R?ld} ze8j7JpsgOOfXz7mdwO{z|12192Ov)7XFZ{mPv2e-0Wi0Jdn4blN?I$Q()^Q?H~bMn z>hV}=1_}OSPodS_0sCC}RLH;2gU#I&Hr?q6Qpt5hzzPH0qw5lN>DJm(na0g3F9+Ak z_?Nv$g$=u5&mT)x59BqnRPn<*R&`oEjit2-hWO#R7D2I@nX5Ag)BVvhxilZ{0!CYf z8jE*stcpU}SCgTC8e)U~vmP9RQtKJr4f4rf!NtmN|J@HWD%Ph@N4vZAzHdIMvLQ28 zE-KE>UFR6U9D0pFq|cSp9qQY;o*V;w2X#-xtyx~%UE>^#XGOTpYIX>qDJ&Gu-_z*F zmT;8+8N)VVOiHJ4XubKX_lfx~8GM&WSsoVTdzPD{V|YZ&yj7i~u_+D~Db&_@dL1Xe zG9ia03&8w@rgy!bHKYcCSuQDo*7W(rPcxt&C_FOq`r;yI=R@$^Dlu5>(caic$iWm2 zYEUx^*l6Y|p=Z6>Atnv7-Q~)O?B4+u!z$ zNmk##5(zg0DUy9P1OU)TT5fi+?n`CMrLkIFrIt(EJ~)wkv|1MuSJJMxsj9D%3X3tv zFAzl%1=bzjw78vp{P-a}ENs8D-USW<$f+p!Dh!mPntpUSx^#3R^NWS>_tPg1J?)LT zxHz?ZEeC?ra=Ej(d~vx?Te5u_zkKv9Pgzy7hf4DJcR2G&D5@n4wvD z@ybk^d9>jW;03>L6g&P_#?_wN@j{NZr3f|-A*SQeNa}~+uC6}+Wbat~ZPd)7nqkSd z#{c|^g=|0bp@cN58Wz9j;J_-{>J8?1r%TPekr#)vB}a!xr0&}o+SO|C{QjK#4t|y*x~VP+C*+aFaF-n zu9>+xA0HnZsuLRRM-u)Bi8XVMc*(UKOu}caMW|vyogB0t+s@H#klMg;|eHhRyNj z&=%b5d~%d!852#lqf?)=w!1Z-e&Ry;EZFVI%E~%BIv(Qa-m(%PgI`}?RcB{CUC-t$ z*!9-dP`hjE>&tbTF83$%+{RPctY&CX_MPlNY#BO5>NDU?LkE( z8^L(Td243b7y2;N*;ALl7w~;4xilf16*upacBExwUNzpH!Zy3B{;V`W*Wb(GG1QZF{DDTQyp*KN09`Z7#P^%N0#juRGBPr-EG;J|Cs{wGM~lvo1+k`QP5V4X6v125(BBm?O21nO!(}Wz&*Xay`!UOU=<~$PKS(=^z_6;)d~hheW|aI zu(Gm~f4vbMZ?8|PC2Ar-V`HPaa$V2sg{qdlkyL)u52Dk$v&Bqf*##gMj*hSJfZ;2K z{%VHdEB<~I1}2z8K36|eXUZ2&Y6!vJ;>C&9)Ev6iIAYsh8S4gN%`ZEv$yV#wb9rvat zS6A0*^O1q!(bYDm!buC2lG!Uf#@d<&Ci*X&S)X8bTjMu3-($3CIIP0$#MicFkHGt))$a8`>ib;f{dB9AX*ZU^6Hl#B zFC5o~DmIC|55eOUGG9i0eDi)$_4a<(?_g@0zg%xuR#NtI88LozbO;NxXts#{d&{VZ zNv7H^Www3wX=!O;1CnVuqh?A$v7w<7dUnx+CcG|}+buHdf{9sciu%6i8=X5suYaZw zVb0Mnr`#; z%3@9P++5A#;=0e3oV&Zblhaj^a-rbcF`KT8jG^JC=UJ=M`CtFX$46yq1)s}Fi7#Ki z;Nal++O90Dtc;||rV9cciCaJ4{ZM!eDNQR}ctsFp+276rat+l1)iA&$NOoi_4>G4QjUfz5>+jqMY37X0B&X^&2 z*nG`(`5qa|(aDL_b33lJwe??aZU?7b2D^K;R(^45sZNX8==8W?$v3*Z+*}fmd&8hu z>3m-I%WbxCeo^MNCT~wo&D5x}lhf4}Shm#jL<)_@{fnP1DFb_aZlo^?5Z|boJbG5wC>JMk@=;^ z7q|77r(QfZHnzRdY$4w@{w9badun;n*zKFnbY@Dms3Ou)dKBO9=?>9IFs%wHMcwA; zSXBAEFf%BNR^aOyT9ALvjws;c@j59Hk=IdKgB3d=N+6=n7iAPNSdmy;YqQq6I5~Nd z<#|fW$S9ch^JhYWn378Jh`l;p1ZQns+%QC0*LgPB_q|eSdC~3pwT+z>C!rjmi&nX? zxshAwwFe7U8+aU*api@g$&d*7Z*ePu+_NOGcQ!WcPmdR)Uu5yO!iU2D`jLec5Tuc? z82yI1K2^{7yhM@8C6T(SW=>Uoc}YnisE?Y;!`)K}`(*o=h?EowTw7OX%SH$es;}pS z6=sxCG7!fmNnlWHfn{WsT8WF36aB#W_|O=kfJZGPzYE_DXrk9)YiEZDfTh9FEVfWX z{IuME|Nhz7+R9NW>)M_y{HD~RGIn2^?fuNoP+C`q1Hp%7Qe0d_fW4CgGBUEIrDaiR zsk4KNt&N4n?17GsP8T`(HY>p>v%|$jZ0`3gb4@i6LiAo4M;g!FiqpnlI9Rm_D__k= zQgRgOkio1nW@1Xt+ZK-T8CGZ5+Sba8rauCJ<8bJ5nqBE@~#Ryy$m7AD@O zl5a&~B7aKCT<*>->?~QTN+FD-$qCzgXTC5W+TGb{Yjd_VGWxgAVvLOkwQf01x<&PV zxIgmHd}q{!kBy389(YPYYq%<5C5jASu;;{wzv|mT{Y0FGN;RVSydP`-UV;3a_Qs~!clM9BHxEt@b{-}~(KU-y5CGA5 zQ`6JpO4#D4Kr;MykZsn*fw;V+)>|zLjr);Qw!{xjgBD92P<Mdihg^H%9;X~!qWYd%l5Ft`N(0RJv-CNyRUCnrOI z{86Ec`brTT`z@c4&-Hlji#F`Zwt9OJWoCea{sp(`19K*g`}koc4=kjR_rdZ5Up*B4 z<3~MaUmtn9)5!#E01QVO7#nK7nbXDyB1ldBnirQ#BSB3a_4R5>hUxu##5D0Ogv}q+ z*$njbPy5~I9j}+em6gnH=rJhr%z#Cv&|g>5Ilm?w);oO{>jPK*4EXWHq_n2V{qp(Wnm$xr$^uSRkLD# z*rYl(78I;=`tKO_MqFO>la6Nzm_PR*H}UY0w!Y~Z7=Xlc!Y>`o)#qWpFudak5SDSe zk|6bwWOFwA+BdRn=j7;^#cw*am+kXS>sztnK%(@{>fKrd%dW;85fiGhjgcl$Qp}`h z#&UY@wf<2|t5}vQ5EvX11P>$#LH>yB<96`v?XPeROJjH5qE{usa5YhX6%lnaZW)YE0n_?qXLK&q^osw#)a2tI5Mn;$&_JI_bw^-E?BTUS;p&+QeMn3^CL zPmeb;$&9K+v#4?knVh5D-GRoMkt}3E1(u}x>$P`lPxgz|4=8xB{@VNH`St$gZa#@& z(t^ElS`JejhEnxam;NwC24jmqJUx+e+y828)W8nf-8D-q$ji&)dVSbyIcv?Us^=t( zqDm6S#vvjqRV!K7ZJt@|6{m`iBH|cYUw?}cdY!1NB@2QN3^Zk3Oynm=3Ky@x!`A#E zb095qSI&{k#dbFAGXn-T-8%_QjZST<3Zl!Yisv5bJRg%KH+J7Tm_7!PkPf^Y$=i>1 zVL-GwZHu86-*21tV9~B+$Jihz1zX&9p>oqgdT8}-h0St`GQU(}3mYWOFjfmdkQCC-2 zU>c_gMd#vV2LNFaF19c^`CAdJCz_x7M+yRANfNfni)VK^^}ZF}#2zg=<{8j0#{;%KjnW@vzoXuw4-EVFm&O=77RU1zU|T zR*#X6_qVtA_Ne0rVZN%PqkHA(=**j$+4dro?W2{imYkTFn2^NF%Uw%=DnB+BBXFAn zduA|$2~nfmiV}T=NE9YbF!k=*iVv|wLF<})wYNZPaU-= z>-p-^PhO#>HWrGWF$d72u$uJ5HySd2#PykVBl%G>apqGsUtcV$0YjG6N+>8O%4}`y zR@kkZQb1i@0bQFE5>(XG=?Z4=0U$_%w5f&$e*cA?T{+Cu?b#YVGf@x*^lDaC z{rkI)5x8QFXfCclvVG1OkFXXV;Fn{Wv;UO&+CF(Ls5Oj$9EmA08WL>yB~ zw=Qqh8t?teqd{dbylC%zmV%U&W}DUQRKq&V1yVrKP@%2{Cuuzpb02CqFkr#~ecQ3A z$q_MdGc#W%FE3NSZG>>Hyg$2)(+_HEPY~Xpue{FL<2pp!V4md ziBw7k`9SR>{P13W#_p3M&i`o&8!le^6keKt;?zbrfR9Mtqd#F@uCAsqG%!)S*ifT; z()8xUTy zAWIcq?+MrZRBPk-1^lq?Od63}k!=$NSER#U29tuj)MNSc0j2|j$bMymC=f0P-#E#X zN5sJW)ryvBW-oU{GwE|s2A`YVRe@Y^aPXbb`QM%NDn_Vm4XOAZ^ziUdtxTr~YP<6u zyfu>QdDb!xYo(8O9S7^EhQ}oKk(xKP07y4BZdZ<2hmwI6C2K)kQV=7c(~AIT1qbiq z3E`EF5iL_8v6@|hpnHN!EZ%O!l#A0+8HUginweWuCl7n}-!z(E27zD&+jt6(@+t{t zXO}dnD@~SRcuc=>VtV?j@6bg!uP2F z$s3iy>hV+T!{sy5oyo-6(%P@vxRYd0Cd(>JF6tLSO_%s~0x55T*y?0&RL0>ak80id zem_IOmu)OUE-tvpCm-EX6!U^rd;tc;zLc}RrI#H&ge1ow<9%|HP`8oO)}K<>v_Hw0 zDI~*7djN*#bk*;iP|-%TZUjMq1kE{`u!X5MG!s87fbKf+%!Lz$sm>JqyF|E#gFZ~( z#oJFa=HaDc=m5T#}DQFYTm@KZWF6CZ_ide%lCyOq| zLn>K)N3gm`wy-=|%di`cL%6cn^pTN5Vm@yBke2d`nh_cE{@3fjq+D$Rwc!0cwfzvX z{YNQYmVMrw|Di5^4@gU{0N?qpT)Uz@mA-H0l9*IiQE0&`Y9DW6NngLIXx3`^_}soa zeI32~uO2xQ6L zSfvh@l3W3adF*RRuGea;k9^wwW~Tz}%iZ5N71M_EV-C>>nx8TK^2LOi=4u{7sJt4g zb78Fh)2-qKdcV}^J^hq_8`v_)m>1J~Q1g#cT+L{M!sVL`fzcP&ylHI2fcRuC%ut;` z$^W$#RFLe19C5Jze>};5W>g6ew-Hy}VGaKO=3q=V*eU#fcf$?ILcl9T=6B3{v+Qhh}6vvw%|Jzghbq`yqk|0m7w`5J~X;?~#&{I;h?Z z4cl-c3GyrdZ%q7S;X!^bO0uMkEaB;d+LvM0-wx#9$v_QuLp1W=KVXy&(!rycAv+;Y zboV^}kcttRC@{xTt4L*veKoNMm~&JZzaL2k{F;#5pc@pDLH;@W#X1`l!6s3!U-WqiwO4Ob#0pa}~kZh8dp> z1`#|H9?}L)n6OqcSi?{>V`H{!v&8fdNv21Khp33}V0A`YBEzsW*D`EiScNe?tz484 zEfXKR&lo_4jfZC(2@Vn+2{2+!)zQ`EAe8e}7lRm01hO#F(qbTNHdFDo=|N3RO|7jX zK!irhL!%)&jBd`(Fi_h>Gs!T;dR-2f^LtneRb0tnpZ7sZ@|r;Oz7)3x1uvHB1M&~M zci`iHk0E4080~}oIjW`eBUmg)Q4xDqykigi#Bd<+TZH_7oPcG*Pmy=@nyMGGg+Yv+ zA`b%q05P1m`h8J6B>Qc_BML`;37=yT^rdwzfR`0`)f)CWQ5hC`{qT82>$FY72Al#U zfxqy1-XrLND!4{Q)dNxHr6eU$Et@TD4w-jUE* ziZnRPp#J+hSGs)7ZB;|mFNKrh^AsPM$d)uXfyrO7M%(Ng?n>LsbklFoB|R^5mfb6} z)#a+?eD5h{+&8zZ>g|I-0E9bNTT03hLJ+8me`hb#GM}RiK-TAZTuN}UHdm{dba_O8 z%|$*kF7lp?Cr$l@Q0+S^WJ=1{w&{ zzidpQ=x1n1^D<;oG12LeNHz_7cGRl^9iwTfCR84$9$y1OlS*gN6J#L4<5HxKjuT^!nv?kgtmM1Nm6}$J~wZwyz1a(U3LQB!E7u4)MX}iQC?X8q*VnB*t28-R zk#4MjRa=}e5PW0W$PDHZ*MNkcXDbl#y?gVbj&*WVP>(PGQnl%I_?r2to|s>KwMTSg z;*bF2aLdMa`Lit|{DfBh(Y(Ho9BoyLw==xzPj7ieB=I|q1}LpOJ^P}k$35?#pn`v; zHD6T~QQ>e8rDJ1@jXR$2McVN$uPu0YSp7+e8+E$WLvyA)I zAk20!^r=vvvEtK1*PB|D!?#XO_7j%nIdoTIi01AVTVe!ZAo&ds=ha-qE0LlH?MdNOJMa70`$bl)s;W=df zKqG%VxL!r9u0e$Fvj<7|Ek4ShuD^&xlUSOEB)@3hj$?9aAuDz$V=O4Ng>AP>~fYmBEHpj zBlb`L6LWqed=i-fO;Z^7Tlnv>x}G*Og)sN|?mu)+Vwr2Vk9jb~22A7g+m!W+n&Fb1 z%IlQ$?KR+W{wU(ru)@HJ>)DIf?m~Thg>*~W2|lE@^u-nn#Vq?B>~?@;@M0S*zcKzI zd;^Mvy_ZK|mjeUgFx>V2B22P=0Cu4@Ga1%Z@|eI^~+{@pXfc5KO4=#C@td2ya;9M!D=R{z0QJ&fE{@LyXR zPW5-RI=CfNpPy&b3oR!s{n>g4b-TQqTA~9W7+npXy+SWI*XP^4Xqyd2(fgmxnY7p$ zd&*$Y4`# zA1Mdom*-`s5mcpj8QjEVL1a`2x<6Au6N6H}1WGzO5CDLhq{q8AX2#{$xzHV{2of)k z+yT|T2`8;t8A^pZ$yBw-^KPLMX;(1bHLZ_scs!0 zIN4Nkz;v+ueii4?sVc>LbJE^h7Z*}h_c)V1%$ECBXVgi9^nP3X?|@GHPhB{GFndCl z(5+&P)os2_sQ{ARiiABYO zR5p$1bW(#1oYlfPx1^kX$$Sk=ZHnreZWeoL4~

neY2UMYVYZ;C{Bp8A!>7CM%|Nr(`B5iR$@X`1;r_{_d2j#Gt`?&Y73q)*_8 zs;07rPT`(_(a&e$%|WNna#Y(yKS5h3zb5ub8Q-tHYMIlg=AZqJJue6lYN(IQ9v~IU zQpY?v+Ag!nCgMeh`j2bBRhVus&XZ&j?`$MoU*j2r#g$IbS&ZyNO!WL(zb}%4+P}Pw zXFE}l_!@a7s38NPbSsr*rpIEN->vi}6lX&hGRS8-JSrCdqfVR%qXZ@maSst|`_Da@J;XlbzGu{Yr9#PTv$Vnab1=Lb;E`q6!;Y8d`6~ zvIaZ5VLRVD_gcO$%_~ff$z^P-47M(|h-;AuX$s$~t_inB!#=^`;2rugEG?w2_RV$o z?{1)-TOZGlrX3G$HwAra4vQfkAJ)QB|Mv-=*ZVZS>Krz-QcM{5?X^|qy67lXABT$8hEkX@@9`R80KRLl9x9^k$~%AFrljWki;S z6)Rn)h zarubEN`J*7Puo+0$M|bw+V`j+bk8yV*B-d98^1Fy^mD^ZTKBbw`UWfSNaj+mF0nvK zM$mhR*LJ$|xB$M^r7a3-5?g(qT&ULM{V>?7kz@Z-c=ncIUYoDeEs#F1PR;aYk~BYv zqfp`eayFB`COXvn?o3mG2x z5|7!@b!pFY(d!!9I@4#pj_zEI@AifF`g+}Vj=Pt!OZcl5vdnallI}!LCkr)|GV&C+ zw+^T%7bx7H#Z*LA$?3oLpfhIsv|B`~y%QgnZwmw{VUG^%OpJ~$(|t+<3phmT$){Km5`A9bnY%?ahsgg98|^mNT$3HZBeW8`}g5 zg-V&lCQY&u{40@>p;e7dltmncx&uH}ht~x{4LGWYXgJL72R|n{($URlaq3QA+N3AB zcWs6iA9D)?e22V3dcP~xA$7bQr(Zkzn@g5az2^H0vVQ5iIex@THfvsNP;$6x^HS(| z7FBhov|=cu9m4)9;83EiX{Dv6DrKlU!Is@7NMG+fib5Jkoy?HMF@kfED}Kd_yO8_N zQqAG&bOzstTlt#+!^*NYGQdyx<CJLF1$!?cD&7>P*bXyXoRS>r0jzTORu;foX0s z?%eL>$4x!ETe=ThNk6;YTiyH`)KCUTU7bHe;u;q_@nISrZXO;ORiE1752|KJkBiHhg-I}NW0Jmxo$8pm)HW1m z&wT(~O}DR>ebslhe^4hq6P%_QP{P4_oQQwZ;bv(x8BVXr|CVM}XE4H}wA;R)=~ggw zOT@4FQ`?UD*F?{E-{e5(7kW9Z*82mN@WA1Y$M1JVU)P*U6^{C*HYD_X4yESHDmv8D zYWF+M3+}tRzChdcDo?o`5RjDdO@X^N4D1x_{K};XB%{D*cfk%F*n$#4#XK2`$j0 z=68F9sNy!yY)t$DP{?xh-K%F%BG)oxt7&Uz>7kp?o!2cU{dU+#{+a!^LG;48>0Q*-yiRj<~- zx%_#|r)#ahUu4a?m;vr@XE8mJF$e$(`dCkRRqgZC0D_m-cd>ZrFEkd^xwsaiW`R!o zl4{qxkIXy002HppqZ?jsUE%p3Mpt9b#=hUrdJ1}#yYA98Gzg^$b*Yuo!TaTcpnv2a z9+oqdpfBeG7OFe?Zw>cuaYz98FkXgu0K|e*(7;bNjYXm3N;m~VWuz0l6< z$si3TTS3n*6L^a_nu^(ts>Y*lfP*N-LQ8m>pS$BHNuM9brR*r*D!53V?47=yuNaUS zc;{?ICdx>#6n3=VU1au?MyLP7%u2A>B5PR40Kj1cr?Is(JZoC^*CyriK}mO@^yVe3 z^Doz!e~wy5C2IXAAS-@Lh3ph=GQEHYHJNSfFA;YG9v9_ z9BJk9kWj()`7ExstA)gC?;%Y&+ka0_*IxTi)IqGx;r#xCI^GCsz2)k~y4xMEz~ja8 zT`xB$@ptRj7VT+x{=!M@3I9KPLLMHuG0*#&?ckcOn-_&QrYe`wwmY9{hq-?J*E6)c zYSPn8&ufj%MuX&7mLIvHbtC`KOh7=J%~uuG6-Z2FY*D#3dg6SKgu5qwSP`A|@Obu% zbED)qYxpF(kV%8fTk7F+Naj&-nKzbqDW~8a&eMIKzq!!L;q^!dY2)XqXlveDn?ZfB zf{@U3O2a5LW=jaLALXnU$0@PqLk zn1P82hO)~`OJ81ILV#5aFkU$=F_FXJUr*K@I~l^V)r>TOlS6sRu-40|epe&j>)l8# z;Po00y`$L}DjD06jLL5ItLm)%<{rW7io%Jr;P=|)RK#0aa#xaqR^$1_550|RJq&WO z>F0;p?6ZKptmlg&?F^?550j_GuYMo^@S92~>$?#_IcVo6=osm#ESBBt%i-ou z6hV5jjZiA@OOtOKGt;UHtLtk3HT7fe$TYcFSZ>n_$JxsumEhH=6I+1&?tDypv$eW` zg`yu3r&-qll+pbV_o2T3?3L}N=V3cVsXQ~6J`5r}MQnbDi@Sq|BEM44Fl5~bW&Wa2 zLI%JZVsqcrIf~nn`|q5?you@@o!W@$tex9jN&IZObz75*9fbv^F)^R^;`!fvmN!jr z2(;H%lDwNMSqCc*jxxQDyM_3BCc}F8FbHd1ftjz*@Cv?p*a#C_Sgs$COKPII|c`U;0M-ys6na57a$0Wv#@MqNd}dd)8<9?>)mS{f9Hf*f_2Dr5GWG4 z6CZ>+vPK;nW@PImz`@I-(K~_a_=$((;pBxEcIJHk^KxVi!nzEEkjUQ(wd_;jlPK+y zJ>*OpOG_X)rBdG4{uoW|C{_6w+Xo-V6pB?H$L*&EHzgDjE&Spx&7+RRR5r_x=on(L zm36f19d!|DZyR0A9AjE{v$w65f_X-#K0DyIjON2ymx@!qZ`bHwf-lMqT6e6&JA@-(1GHW!iDp5{PZk zBO!#P82BOg0lHAK#f1+Et%7@$z^+z2Vz(59kxS~WTZv4CG^CwHPUAOs#BF{t7tal1gKPcVk*FQc9+( zqA7^PLTWz4Whh1&(jDn<=F@-pP6^JSPChr(5@YhnRb@gmD=btH(Oi%={6>p8PoL*XyhWmOj6*vn@8pUt9VQ_eB>Zs`RJ67ZXL_pAMb)4!=Hck!G!>0&1DDa{=&#OmFpV zXw7N@fO(!YDM&6BFy~;p5W3oYGm#?-TNC5t>MF0GFg`Mp!R=sVU|=v_Av1h(obE_> zc&IHLJ7tp*2!g;n*Uj2aw)>NeS%qWfQON=5MdHWy#lz-Ds#yF<^^oKtFvBc&vY*p84qA?N%hWuLn0aTheCJ+anhojy)y8g~t zP^>iEp+36XX~2(+>cg=5012q#ajGdm00dPw)h~f|h&K*$b1aE?eE3WM5o#~}3KJ-d zi9)+o1B0;l5M(}SYrF3c#f}Y?zV$rGAFpd=IFweAt@0k%4}dDD;IRB+7j#455L~1>>>-1aMaCBn$YERwSgp7@4=?S5#doyFm;Wpvb7)V2}R|8`A|1CwCvn z*cgui=&dg(jgonD_A*>er#OhLAbkmk@nCTvn5tHkVvdOZBl(|%!Jx|!wE!9fS(o0= zuAEZru!6$RpeB@n3;-d&`S*IA=)=|gR5l6z~6p2Jb#ysh59v5mY6BI zXa)1s$Y-(LGO%iap3d;MwWuyn1^x1^ai<{RH^Ra}4G|fw(w+_B{BNUa97izq$U=>I zj1D8z!lLn{ez{hwEZDOHfbd$QuU&0mmV$+e0EeZAJ>taw*Jv||%NOVD@$!l9-BGeo zqYApXEOTFMj%7%QAJ?8R5THn_9y?Tk3rCiQIV2;^J_Klr+=PQWxl-|TK){;7a193m z{CM~&z-SK=^xx5i+|22DYK0Lb?~_W=_`^-u|X zIyR(+;c@^BFgVEIxq*!V4)7S$qWz}o>R=j1wI_LW(t!BDOX!wd6H+Q_JzSF*#$3$u zcgU-U0uBH_QfC5PQJNu2^Z2eV%2~>VUGa3X(YQdvL<$sJ=c(wZ{vL3VjO5F&r-4gs zV~q{~AV6Ty$Y$pF$!LVj*n&$J^+T_L+hKy=dtm_L_mxN%kyBU4U@wht-g>j`F|TeZ z1Y8F;k83skjwnZE)4AQxCv}l^QGq#98{fSq?QoHQ9FfNlnvJAX!L+*XkUmwk7fd91TftCuAo| zBLc}%QtG;IrEHPBD)K&n68p5fs6V7gn1eUdp8{Z@>;8kNS-WT( zA;p{y9$*#I?3pjSof4n{71p(a8pcQd`l1&@Oyvg<;+)`@bbKR{H%8Q zc7}d24C>a%3>^Xo0e~Pm^^>=amY=`GNxgiMSL@C7hank%6zOmBU0mdB0UC8G2}fyK zFcmSum&O?V+Knc2szxjbS+L|S4_t$K%)Yb&ZvA4T=R*;p{4RmbO53w4+JQTwby;CY z&C<`o>u_N}n%}=iSIq!_$Voi^QPz60_eImB3MRDh7k3<#vc0CyJt#6#$J39R?-A}CV(ReH@T=@oq^}k*Mc?y_uzsmz^yLy@YUtJ#*d^!7z?pqVC81RrS zn!4!elp4(T)b1vm&?Gc_Kgy3Jait@BE|ia_}QN zQ|Q5F6YYK&)9*dTK{W?x$%9i_K zO=n+pvG?exLFDy3FUwqW3ol0vvw5@c-#qU{2|xtdmQ1fqMUH1kOkU@kb4^FgvlezO!1Dxc7blzxP@1GH8Gr zzef;Jfc`X>{Mg8ysE*Jfsm1yOuhGq`C^({^iLtSqhnXLl>AL#|BK)}D$uQwTjvok# z*ITWx>TjaVPi_it=VhBX7P|GahA)UZ@oN=W`7uY)-z#nKSY%ZKalexoGMK&HKI1)O z$&j?tFJby>(p)xg(Km3VH;QT(E0D4 ze<0?&)cJ(oOY@kFDWVmqbjsPUx{y-YXm6vs=SX`Kw^Y0EZOlByqR2!4|wvzN_BRTltoOnx41OWW|m&&U7EnJAp zJ3)KkZU) zRqLO=S^az^iotH-E><9zT}}bE0%Ez|7AEXzSo5&1ps6;CrP__|eT8;3{2OLUiw|+v zib$zo=aG{OM<--U)A#(|Pgt-PYGO0~gP4b-OSycDThC%1zmn`SAPku-V50mh$WJ^D z4?(2zBk@VX+iF1_ygFgenM_&f6~qsaysvca|NQPq{XD07D|EQHE~qwC9D^AQ0b*Z6Y@Sh1CeJaxCWl)rvK zf7!cL)I_&n2Lb3PDNUAYEv54>2_G;9XxfYlD7mxN8}0hz5@x1(-W%L!q{4u%EO7U6 z4OjWP54S+!+DI&pu9eIn(FhtmQ$2?Y5IeVp1Shi=IBot z1vejVLOtuD^1}mW?~F6$37^dr2zL+unIgGDS2G-0Ddt%m3+l87dN$WMZH&QtoSc*E zi_)9hHtLn$NA2+hU)PnobppReB3HVp1?D|{G&6bkc9Am|;@D|A5(X-RnzV}E>L0lg zN%N_nIX?N4rfw98KxE{=M?4`@IsdB#;N%4V)r5PmD~C}+OnjDa@nut|pX!m1{=j;? zD+mWRT(lG=1CxM zKP?Q)6AS!IDt05qItZfIY`I?$M%VtlgP*pqR1F=DZbMSornhr{m@JAb|37SMp|}ROASeItJLm4?$;C`A*51jJ znOS@7-}^4c{EEp>OCuvlJ}aYQb{^HRnB1eY+E_R9KE9C;t)ePqeAA0CVeQU8_|w*U z?vBrk2Rj0{P)3$(U3KR*vNTM6{YGFoe)QSoqFWhD04U9(X+0CudWGKtM1 z<*{GfqY|mo*;$udAk78uF;hL3gI;~uE!OZ`SCD#&n6F7IbW{#fNtZ_|1I|)+5E;kAwiZzJnjDl0we0Nt+%&Tm~(|_rb$V^TxVDH z7l?$L11t?_q} z{|>kS7e2HxtD!8?6S9^w<~?WtjVH+gf$YJ|Hmc#0;Sn}mo|Nb9H*-b;&FM>sD89q= zBPb6K9Tiuz8rY{bjbwypmg^Rph~Y?)$Wrk@d%lLClVX-g&agolqRA|B^H_`~q(9|J zqe-efc5~V~)0Jom7?>Wj)Uf1lS~q>O5Gxu3)uW|(hCh0xE@h`5KIeO3Rd=l%0X`)s zBaLp*@k905YRu=aUvn?zqQ!){i}R%|RV8gQ7D!1>&`7n!wtp4igi%K?oZ6v9Ph-Eja_?X_PS|Cbutr!k5CF!M%ty*xbE};?tc$ zFeyxE^`#}mgMTtDx7{SapW8Xf%ll_5fj4btLJz`a#s$DK?-r9p1~lC3eyYzws5s#O znqX55kOxiCqlHyNI>LErcH80I6ab8|5@d3}4geb(7@VA)v80cq;>5+%FFtRwcFfRb`)qmErKLywOqJ1tFW#qk>{T?I1 zTr7eG%{fnN)^1&#-Tr5*bJ7Ki8PRv*hX{#SPAd=3GC?mQe)lAxp&4X=w^g$t8+q3~ z>tFoZmL+g3#~+*g4;;l=8`-vL_)2VfA4$Qd((%K_b<}9GGDYvmyVm+r*E1m_a3Q!7 zxbZj#j~*BT9SyYt_vaI*inj5kbMb*sDa#0Jg=yb}6msA0ye$h-(<@{q-k$r!9J4Ae zsU_4F$!O?AL`*8?<>_=XYLPrWf|}{Yqd;NJa1u$4i^yj=w-{k(J~S4fFK5DbRY+Sy z$N9HzL`PKua1?=W){KmdYwPO-Xh_Y?7F9tmpW0t?)exRfK{SZwc6-Teo1+-s7FQSS zk>5O~I$Kx^TEC`a_&$XCfZ>muyKB9btn>!oQHh-9G+9LMEeOb9qfWL)4cL$M;nWu z*^Tf0c9^omF1_MNj%%t#o|c(RPA9AIBL(mJ);PKh3!4)p>~5250xM(k1RHDe)O%d| z-dPvqizrY$LJZVDDbVTu2{~lpj2fpBmVvPvaRn*oLx0Fn=Hb}M00~!% zk7RPtH_e>RijKW2nVuzLV`6mEv?}Ix9wK2HfW7JJ9?*F6dB-he#%1?p=(5t`BSm}W ziinqT7$9mPBL90~!@PD%9f#$M^~b(zB4M77l7A2sS-^>Ffj_COJmYeTLy&h}%w)J}YxeTqdkQ)H%ZT27&*z4*Pe<(okxNU>R zLK;Wvn_XNe%2COf&26Cjwl&P4aZXV4D~4X$S5bU1KVjw=00)I*5OcE!BW)TuN;T!7 zFGR@Za1c6t!fmcdk+xKSj8>sDX)M-bxyo!6IH6o_8W zxxlYy5(Cwf^11l)%UX$+HQW`#Odmg)Y%=@|*%W^JGiQAsJEeHGw{(4u46J-Q-Hp56 z!=%;d+^KL->ar4gTQgFdT>PilK{D=2-r_xDu8lv`Qww3e_wu1VI=+4%4U9_5ilboC zDVifeiXIExSC~=+{+0ddPtF;CMWJj;}RCU3hQ!auo-v3lSUficdR!`;D~ z)Nx%i`d$PfN?&3rHrueBC#Jp4J;2WE!TZR_(XXMQqEn~Zxudd`-~Tn60IA)-|2|f$ zzo^A)Bu`+!!=66MY-WgV^!Q1L{r2XBWRJkZjP*R-eZ7$);mD9>IqmT{2`CWOTPsmD z|ENph`4t4JdTNv)qLop^ylg5sp;P5~2MjJdTuPfa_;wYKAsGPiyWYMO;z&XQz}tM3 zTWR*xFwgxe#qRl3;YM$iEqYf&fG+lM*ok87|L74fy;|kDTwxM|yJS6sk2YF3wr;wz7eS#(>M(Ei1az`URp` zaC4@rFL}ZaOj41Ron7N4#&8@#A45CbDp2<^OtoSjrdvu&Pe%{AVEZ25PDmZ5UN$!~ zqsE%T{qo2cL2`>a2ND}kag z#U<>$?hJ}I{}_|c5R+d@ritwz3NzpM@2p*JS~ue^ER_%`KCj zk0g=ZIgrYs?1V>^S^pFKMPNylhi|->X^@h3xX6-#Fm`W~3EyMjAMe8aP_*Upi4o|3 zMs`HA7meZ>;M~Fv(F6Wkw%=&GPtq?cgd6)44!F=Mri=hY5iiayth=mw=j0HA*Y>O$ ze&}$0{tZ7EEMoA44lm07I6Iwj43h&gkCVpl zi+nLY<3y)a=8Z&X$k0t4GcF#6k9j-#T0CMG6o z_%*dO=ybk{nllzcJA+=_s(#+VX@<6#6EUe^a_ zua&u_dVRG{z1$U=f%?)W^^uV294z-iR}35^oVVp-ihImj8-kA2+(#AB2$)DwChLp)N4*udk2d^5(`KvEkHd zi;wqMZW`A*YmXwlcxjeV45rLz5r1!PNVS}!N^)+{h6?`opR?^wUymb|JimsBeF_5n zRrfqT{3_8y!K(qThu7Z6!9FXwzgBnMO3eC96JoBQaeS<^z~9xjb>7V?FWYYaB^;2n z|M&Y@MbGNDb)Y0XF**@P&^Ch0H*)z+JYRJ*jZN4#3qw`;+i>G1q&+}NRhX$4*^ zW81)GGRiPX8wUQ?=hZwWS}Om8*}w!>8*Z)lIh7IGOxtuAtAu~>W*ALj27FOw#K>a3 zqG3r6wIqn80SdHe;&$KBXmH5Tuxp+Jvw5#l6J=0rc{SY56E=}haZpWJu>`4gL6RZ5 z2{d7ip2;oPZils*48RQPG%!pL0Ah{`Gc#CSLM4p0v7K1Dcw%ekAyiECO7)4)>an3i zl%&gWC*CzB^AH7?^CE+s<-R0J3`Sf>(@!msutaT>_ahHJ**w_2#>-0DIf$wI209c( z1A>W-OgC+;HH_uMX$99tCe^~^Uvg3f zsR#8_Jv!w{_IDg>OzY|xKJv+!IE5tDp({sSda1gDIi;Bwh;qhwYib-m000(5D{L@Q zVG?BDp5&7M{TBPqYf)amLcC7+&70;5`@&i65=QCA4UKrdI%yPp=}rW5guWPQ3exG8 zPVyOl^ddxKJ0v?cAXe@NsDY&NZ(`$7oo8j=`U2+7n#DrMVw8&xJ{hb1qU0y}qVN%S zy>tC-S^KBarSS?}Z*i%I@hLTp)R9a4LpiLgle>5(d^b50tUa^nJkE@(=Jdnc84sR1qDi}HjG=Iy`! zm@Clf>=Bv*#2JjKtL$l^!&f-qa)g0IWo5_1ziar+v(SEPy^pzHl+%rZLo`=#SZL1E zc-i+Cq@7moqb*&y=?0VHNa29Z%VgyyDjac==el%$uh7*e6vQ-Sj;r4(cmE7TWydM}jy){O{U&96KNo!G8H} z^`G9zlL*sa+)j&E@0}djOyQF2LpYzCecY_E(3{iUXHLZ=6_f(iImmGTT@vL_EEp;} z*Or9lvk-A}n%XG4G`Aj z2=TC|YdanPhw-#V`T5rrB13q}&iA9q9I5oxuTS8CULGrz>E!x%Ov3(PuyiaE1Mep) zcB@GVw_$0RyU?V0T{U|d$Pen*%9zaO_ve#Jq9EynPk#?T$`K$a%&~?-q!KX^yDc<<)g9GMFzGHqT-Z$O>1S6io#mNZDD%7s*S2BUX#H|DW|G2G zc)YX6pNBFm(^{7{R_L)AsJU*Pe>@spkeR79{I`*|Z)O}eFy|hU4v$XN4TLCUE22N; zQCr7JMMc1vw`04gBuH?R_SW?~LLKBZ-0?hpxE_&*@O@qjub-a}L&ab1H%RGqD~X%T zt>;5%RC@la#L{e~1!tI$*9svpdR|>C2^`h2uEJ`GiX(QiDg!dDRnhNA|vS0>& zUcL{yOg_4NEzeq`7#A@Lm@E{%`{gK|GLHnuta)&*-{NYgT}6G7?^m}2Zb9K=1OX&L zU5v+i%a$w@irz)bfRJ#f0^Dt5oCWlK};Swe}CsT!go;V^EjT>x^;Yo z>!u~=Hg_GHM@jh8W@5D|a44-(Uu+Apg|ozG=ZD)u=Z&6Olz^Dp{nK$_NsGO3X$@D) z+?Y%^hX^kiTDP`BYc^Gb`2)=6cfGQ>U}xg9bI#lC58KeJ8M6x^L?m^8G0yOE`hmjV zaJN@e{)D)2I6m=Y4xalIo7???b`Kxf|Z^9S4ZeB^R6J#3iEow{hoTse)QondP*ynXo_TeH8&PC`l}X7)Ft9p znobHBydsy#ef)yB`?HN39T4X0@AT0l6o+MamPtEVU|%V3i~AknXa06MR6_l$Afsfw zr_oNcE(({Sg+#(iC(_$~9=AyEvB8x>mHoh*@UEBGPmzd>Y{rvSXIYYsKUN>s%*Vks z!p_!Vgn%dn$Dp$|y;)jv=b3$a${;YD^V?NjomnWQ!9rdw#%dZ>{okK*5ap@B00Z^% z4ydTfx2FMlvlWS1df#0B!j?Fj4T1Kr6^;K^9*|ZKSw4BZ$J0GTA%m4 z`l>)_xdRfuS8HV0)^9-DUeeo!{wkg*v}W;ipU9xX34PiHWFhKYK2Kf z<^f&5mYm7DogW;+^b!)blcv&1126aBj~c6sh79#r)v#7)-wjG&f8d1&O6JK;33Hyj z@)Frp)UZAx;Dn&Jbho!!9q(WZ&22jM8_YIrKHLtvOMgmP*VOwjPYa(yc{>G+nDW~4b)49xe5GRewo+m*zmI| zF-2O^3^*=P!E0MB*`#2=b8CLBrGF#j5h#jymjMF)(yp=q;j?%wcLW*-(9uh9oQ)?I zx0O`tduHTu?@R(nCO6t$-yX&ASZKd|RNcHL41Jm_S4nWzfV45m zD!al0L;T;O348VE>aaTlRSHuO(RcR6^77kP8mkl%KIkN7-wm%FKj)npd+$^u%4m8; z0Y*jb%jKRPV`t%}SOaV_$h^!T`PMzJLMzt3Yz*SyuTNt4 zev_m6YleAUujy+XQ-LB}!%BbPXm3fMr*}He*HYDm*?WzDsW4iIiwlxljH+h`)kmRD z&y$PzR9D9d)LTbd?LM&UX~~mZX@0lPsrrILL5nitU8Yx8OkEa+iFN0kMDvULO%eyM zv_i<`%1{Z_&0-4c?C`Q{P0NAhJ%~19hYscy0h4LiR51zaO(3K2^)|bF3^rAeI{x+j zoAjrx04S`6swHO=rC>xKmO*y%y-DehYi=#pwiv5?R8>T$1ihu2S4Z2CtlNIE*2e&A zwoYr=U}ZFb^YMKzo>_~NA{#@(-F2x7KbtSKqodq=P1UruPAdFS1sYh+t5Ar%mGbw~dxIKVD~Mc;<-aIyFQN!9~NQj2}AlHs*Se zQ86=P{q8dAwrL=l!ihy7hZ!8d#^j8~0aNyFAB}R8Rd`QLcD8m*1!rRMz7Dq@NlgZg z0kFDkB?=0DCx^F!O;&@b9)KU%UaRD0TY3gp@xx} zLpgtI^C>Sv(p zAUPV~$u+)QBD&&%ST3F`RPbA`)t8I^BZP$L2tJ8j)_SWZX_bp?;=VqA({aL1FRAuF zMc?y_-H*FWNqQL3Y2B$)YFSyhfg}Y{>7>L%%rth)6-HB+UVg|h!u~;GF4&6*|=LBWMy{UnNHP8 zztZ=;>25iZ+099VN+ij3+kS77>pj|3_eMLG6V5wnJW_%zpW4>;Zn>qaQ@>#plRz6% z-M2M#`lcA<4~~=B)#th0UGjh9F_oyNcMDIR z*HGZ-%q@@8Fv%u&7s+D#YQvpGIQTog2V!e-lN3%eyRo|~Xv?zGS(npiX}z(q?DY+n zps6iXIXLF)9j_fucNSdDKdla!kE&L3{M5&;ZaNl?ryuSvT`WL!SfS@PuU7NT6vF4i z0|+EQKo|hWFtgcm;A!sKBLbJ*zArmbC5n0d=AWJQbLdjq82YkY+Sf#-%PJLN&-@E} zW6O(Y?9D78#w2{m>czm7(2>WV>8+$*As%asjFb*9@8!(2_7CKwf=h4EoDO-#M~-dd zyK{cZofr)n(OyYwq7j8WXPREEqaFuCzhnEHIz;TilPY?8>2#;S+f>QHh3f$8t};oz zRS~^LrgduAw_~?wKnvQxl{vUUM&Wt6xSfn^x3Y1MIdE(eX}x!Mam*|#nwaDn9*GBI zKGNSiEo$-6j3m8M?#cAL9P7@7)+paA88zG_JtvHqZ#zN1#k!9D`D5uRj6->T=P3MZ zuSDrKo~2jLv#LfZ=E+)DTvmm`7yzjCKvGzzjg+cdX}@*uT?d2Ly|JRqW4qUWZt*1$ zF`i%|iUOFMED63?3XY8FHP?x5GT`!$ z#FM{8)_e|*LVa8)Q8&;Mc64PWlR>=-d-lDB=_YNT`t_s%7LpS4aLF+3D>Wj_;vObr zH!k0Tr|-V_Cj<)wpm|4HfgRIqjc)&C;w9jSaQO$DutHMa+vT#8cQ9&S2CM`_+QTK2k_bPmefj}Krd&c*5 zyHM>u;5q-}wZPOfEaeDV*knttrh=}oZ!va|0%(YI;2V_3?yF1ZTm=O zQ1#xd5GIWLUta(XNcQ|l^!USLN>>{ge$8X@xd*C~&ppBqYhiL)55KG@TWrri0iJKvK!QO-U{iO8vMf+1Nk2GoBoI}p!B(X zwN=APE8JwAEQ4teK;;&kX<`6)18I1dDlYqtNH#@agGB!C^%@^9C2*+NU%RV*sedUd ztWeu!BCNyTdM^kMUjlwjCZ{L}pm>LYa4z9?4yIiGFxBvN9SsS|Wfr+?NA+=;KPXTM zi_k==7~b3{pUokO{5gE5^0L*9nTeSs_UDLcb3>KH?PR?{oZMBLO(4c3?~Ru?^a~`w zb+Rkq$Kb30QZk6c`!D*AS9im$=$GJ@A7B8DXxNXpCHjNb-L%DGM}HSDSLxrqvT0&m zWk~HUJ^pTpE1qwSNFsHRfa`gMuT6I6In4*U`%#FA!+D#_-ZbWO>!1Ai_Fk@LE+@YB zeVxqRc>UvdOnRL4P>Kp+9-I=qy)3shIi7w-K}H_0V2VARi!=0;gK>Dsm5{>`Yk@uE zQn}^lt7;9B_Xzp#F{^+Nz8Ypt`(b?zW=QN}5+=_k$YNWp5F zqu{yoNT-1el8>B8avC|_7e_yf$scgJCSk3n-5v-#PW3^Mf-8UqH(+FZF=fDAU%(JcgF|>Q0v;4SD|0J>s$c9 ze+ft72ba=>LzbEq5iDrnk`DUM1DxH18}wIjKXsZs<`!GU0s%JI!8qVpMV!7c5Il{W ziy#&afP?0q#gO;Ebs_v9tsOY9gv%e5x+&E%ZTK`tWS3qZw3|9m8+WGn27ep@PxH?L zPQxS*Gen`=`1LkI^&k@3kklwus$OMuo7uk-@!_8tHXHykDxRz9Yc(q=5_q^Z;FjIO z&pZ_4Ll_8yX7=@BQQE$;`qIl|fkAiMyb9q3+%I(2L>_`D(WGx(Nx-a)L9zj9UbJr5 z9y0NV{&}K~l!@Rdt>{364`bHivrA)J^RMjuZDUV3GD;#VDe7M^Aav#dG@efPQzWH2 zIjG)}%d2~5#F@oD?2$^KE%CI?^`1{&8!!RLPm9U`#lcyCYFT3B*sZ!oI@$fti2T0Q z7bs?csU;VVJ3ThpR=f)<%a(0Gj&(!XOZUwr;QSY^PEgj*XjJUmX zqIy4=UzI-q-~@`p|CD#wRR560LJM#oWWL?JTO3Z?%m7Aoa#}t4)$j*gZtvfcASWj? z!haC{q*^{NsTAO8H55sXFF?7rB4@U@FtNr#)lx*Xzq|1TrJDD_r{8gF( zP;|F3qMFV2r=O`QWhfKg4k4`Utm0<$VgTBWjUJ~kX{Hn=+7e+Ag&vEYw0RUM<#JNz zH#@vD_K+*I4i*Rj@b47iNt)rbP*H`%1ZKeyoFXuk zKvnNPRFjGDvexf`f%9bwqU%@6dI6WCkL(@Y*(VPO3vQfCiwpcpH6Jwk`y*ox+?G0B^|0dNchhpooyG119%>d@m-Bp^(qy z)myugVc_(55xZ{tLL2hb;RYa!xvyR}+2FBQ3`hX+y*C&r_3CczNNjygZn;sdjc@#NX82u}4)gJezkmdwsiXea zewQW;7uD%D_u|aqmll%f1CiUG+{M^}IIFZ1toOH+Q6aCpYVD&}haJwgj$c#?OvLyH!3% zi9Bd|k-}&aS{!>RdhY#T3dm69KVA|VM zl?ltcXdM_!D;+oydbz)+k!G_8tM z>T)N$Hu;a@(yOp+m_DHt1%5yTOsP$=Qp|5u zsj&Aolg5ECc%^o`#=A3=`A-dcF(ATMZ7PnoRoyhy#EO0$Y_)qSGV3qK?kBnHGQth+ z7Lh`s0vksPus8_O2csqF8|EkV2vzT+f4puV+=Bpcy;})hPauP{W8tgJL?>GToDfvF zm{NhwXh#9V-5iKCoH+ZDn#P2yYm3+{mErx>K4d{_sDnXuJo80l_fh0RnhIM0^)8BX z?)l|4C!5p|zX__cz|#f_A+E{^@UZ%KewLM7ASfkzV~qt_>ECClz@kH)wF+-PEW9d( z`?E>0*7SR;ymHg4{?`l%U~tLSgDX?U%V{yLi>trtcAbq@ziJ_290e~JsY0t45yTAC z7Ne^Kk8TMQhy+4oi6#a^WO39|2XF_3a0eAMImgfr+ z(N9_3VWOooe547vD-C}PxIRwEJ1gDIboI!|pPK4jsT{$%8I$2|5B~G7n5Q*W1mJ`< zL&HJpM&HkNh;2*05&vy=s30O!vHWaBcGCs*ZCzE!2>~BtEiUqWM#$-`+6|d!G^efY zZMZZ%{+iQt3;oNqHUa=fG3X-V;DzXVjGCVP)v{a6EFV}W4HD7QB0{2>L&l_>zIj~n z;0OQ86ACr*#l+B95g<)0K3yg)&7K<N_~(J@mMd`AJ7C93EC>*XN9fF&%;Br8 zD6@r-bd5U$9e7%o_}vxoS?}smL!>~6`Iw|jHAk`WCqd0=538T@-D=>v0#3ikyLO(2 zo_)UBkIPy8!g5qq zF1~hs$5Q^IXY1GUfq$LQ7P*l1{$XR&JvBj9^C_Yu6TAAM&gEY$gfwWS%_mf!AGS?-csHDd2x1f#JH+cnTT1+gX)t{|LE41Y{H2z236R!dDH&>USv3; zJRQ#yZ%@Lfv_=_sB0K>^pF)p0@X0%G1J}q?ofW<#&_=Lwbm8pRH|Hsepn0iZ1}U;9 z621p>cj_jAtvxppRO9v96-`h*>aeh+xXMn^AgVS+PakREFNPSH?J1@4hI-kJQ{)^u zx*0SNv942NH0h!|o@wE1C4l#R!-wO{A{8Z|OOjYbY8$Uh2dw&^Lw8Kt#ai=4o;7xLW^qaf#nid+E9u zmHZMaWH@)Yl-o6uq8Kwpa0gpjk&iR|KG_EIS=Kof!+s@ z$!1g_CDEPzOTgRLcfUWDis!OUui%|g zQKh_K+f!q`PEt=K#nfR4iVWGk(^{(s^fjd<2A)#?;buKRNDIh`t3#v*yX5`uClU(8EXBi)vMC*{njOBw zyiJ}vn6oj5hCT6(MmNDMO_aoYFCKtwD9|T~%_{w#fFRfC^)ML-8O0gn&fLQ;TZtvi z_?l9m5FlQwmZwn>9gi7*c2=?3;xuyJMfAfLr9%?yjOvilcC<=uWH91EfKksuG-H2v zo5Jsoy!1A4x+u1L;7Lk4Lh|<7j<@dMe!T;m{yjZU$8GF6k$GO=?$%d?rgH@IA8KV{ zBm@+sTcyDuIm6KPp)4zp>0X+;x~>2w?9=r+Kd;OH$y&SJ=|Hjb`iLK-TJDNA!395v z8SCxl)i}()CUBZoj#g_)$wVR|Ne)7Zl_8s#(CPtL2bVvNs55Z&bDP}F-k1rAHy+OR zyiWt=9tL+G2+Br;1>Fp(u=z@cf7@w1P`^<-QJ?^*mvoagDiY$bqGPWr_`SF8b2`Sz z`{9l9BX7{%(|Pu_KfVKthyKuv3c6C3fHiDMF^m}A3c{v+GGHOc^dx|xnUgs+w z4}-tyLf!l|d)P-#2M3_{I_-3Wt=9wx$~nR=&%4oh^vd{hMwxLt5yAt~7-TpQqgtV& zjSVL1rDd(55-Jf_Qljn(=~cW$JwBw$!|ce1jab)Kk$^PA-nZ>l zU>VH1#bu*h9C4dE-2`&JZ|tVE(gj07UReg2h(?^Th9mp?u}-Cczx>;wXG@4n8{=Qr z3BRSSyu`}*SLxMzPXeh3sLx1H`+|O;(|BKUM4G~@MfR@T8B>abmV_H$ky~2UJx7(* z-mp@T+?eeR>Omk{bFhBa#^$0Cm>vOOYUgmJ194(ZBo}dV4JrBdzWHRy6NNf#Wg~>H zuqm-*Ho&Z7h*}aDf|Vl-YN{!gg*{-!5cM~`kR+!|UK%e7cGTQ*+Z>#eNZ~@H>;>JV zA!j?q4JinK+NSfH7Kjr=Jn{W>AtDvmq8UBRwXONRJ;=UmnK~p1WJ)F_3E(JZ&3bgc zWPynAK+^ziEOk|j7&M3us4yfJ@ZrqKZ{<~#7%vzUlGM1--VAP9KyVnLZ9X!jY2;#T z3_uQU+=L)5TE1PqqC`qSazq>?Glo5j{~R3=(XN5nh@o zCL6mZZAIFvCfjZl#T1?*@27+Ww*FXCk&;zD418*O3FX&pZ|+|?W($#mrw$v{wowF9 z-}2cJ1vvMunjM~KeHUP6dDZM;n=Fsh}n ztT2hh6(-1W;)3sOwrXW$EC(llPX2VR7{u1q*8Ll8&hQ||P@gwy^zYL;?%ctq(f1w2lm{q6j0m znD?`dd1aiOf8YLP)|YSGuO-(pR25avz&GYhHIDO_cr5-2AMv6XXLSOpzTUAY)ur@H z814oI76+-~d6ZXEn*(sF;)jraZXOEbeEpnM?+$A?ln|^YZQ{zD&l@l^|BKvqf zCu<||(ZlU%jW3wkA#WLS+eUYrMUlM?Pv2QrC}Fywm8`2Z@d6okzfE|fdN*j8n(coh z>KLB6tvQ?PySo8re0<{VCJ}Kb@$6zmLT(LDCb{LuZWPwbd>|YL?!p#22Vc3R%EuPGg5>F@23lF zZ8`mCJV~oe^K)8}BXtOnx>G*~2sEYsJHw?p6^@F-@z7B)>%?37QlTV9C-Hbn8Y9$1ouXW*g-bV z&Bb+lp-YI{rP?&qQ69Du02mymS zWa;nsZp)b~1SI57zqov{Mf0Tpqrl1!PWJDGnEp`;6^|mrP+t;6epcn)TEi1XMcrDo z3_!#lh`M*-P^Oj|*xZIhl3;1yKn#yqM{NpEl0f4SJ5)<9AqfYD*XzE8gOAl#gB2cO z#5IDLfpLY_X%Y}fh_vcC7erv>oOUdCc&n(UsWOP%=F4F;@nNY!j5aG)#eq-H^fO!; zCwrh~*r#{L4R-{!lk6w2(O%-!_H?Y1-j-P#veJ&KxNB1RUfZ|r^_)yl# z@8hihYwyN)&d}a51YBvU*0Hwp1e9N_5&**TS?+UQqgji+LbCy<*z0c#mgi%8=3s<% z&1aF9l@B3Bf&nAjpPp8%;Ps-d`>O`TDURxm<}hPS>lob@lilSWMg!pzT#*4G;pLU< zdc3@}y^F?y%P->m)%;7jKw$OMN}WJk>EEb~-aZZ7kQ^<09!?n6X!Nc!b~sloYEAQ{ z8K%aVBP`01tE#ZGWmwVMt~2%h`PpqpAWxG{vSFWpJiPPY&O^cCFw$7Lat-upqzl=2 zq;x8eVL6}b`RLn6;bjBDDp&6l3NIN{o3W*O=lC4~$T~q$x!vaWx$EMhwRGF(LZ^rQ zNFya&ih_@_jLZ3ux0!E8$4}3H$eKTBMMu@L=y4gd-rsm?&`hrnHI*vYs^)n;jHilN zrcuL<4jJN;2re_Zy(r`{r29W4Rmk6~^eEM}9Zjt0Y^)SqdU|L9-xEMF##$g`pr6Gv z%pUJ(L-tPhk(`3wKlQvkj(FW)ey5?$n0kF0RzCsP2<`Z7n+8B;H=9#{^8c0&xDK{WP1&%Zm*7ism27ekGMU28O0v#g$?i0_B{u?f5UJ0#@I^|d4dJjRAu=1~*7E@$e8 z5{Jv{@XY`;lFU<0-3o9x18zXk!QTUsN@Tn?vf_<3JIg60V`O$rDo$&KkoyM%DprFl zn@aufG=RFchJ&u_+lZzLomXd_ zR&ivYg>J4{h9een53M+Gpuuc*^YN;ri77pZJ>U0bc*mMaiD%Z0YQBM*5*edzYWWG8 zxrW9BE60r1laIUWA>lCNJNnrz*Nntq63rsIZBI&(gRpX zU3GoeY2HC)VU`|s63|gbI$iveV>`g-9|D1e-$Ua9Y$^?h{}L>|as&AgEr#0ONBnx_ zZ~MS%%)-40f;B?khv<1UZqT*9kE0?#Ww4H3GW_0p=Ij{%^`hSRUCEuxjvZ%UO(PZg zZu#Ee*r^ep|E8`95#MLRJi+lBG%_C2Y_sb}s?fm*iP1}r5?a^45znN|GgAxRf$}EMSyA0R+wxI z*l(wB0Mx)dc9XpNYt!TvIiv8C=`AaT*kBKl^k$#zwzy^u)7%TFIDc{P$ZTdfNu zNB$gAo#yYqwkrO2-^XWKV-DrQ8E^OzwgU$c2Rm#`vSIVV+_;zm)Secn{6_%d`kTZ3 zVM`nHA;Ds@tlM_#Xm-O99kTi{Zs?U(T#`VTa#lJ8fP>%?V2L`cZ*Tj1^>$Aza-=8l zeZti9{t-kM@G~x5vjl%G4%>r<IDrzJg#$tx@suvAX zgBu7Tg718eFLC}#*o@Y%8w4c zs^yIji7{I$L02zqmhp&ksaBf?`Oh}Y3PuEB0NF-VFBQd?&Gst#wa!SSm5t!=s5z?| z=)-mDqlX~V2-2#GK2;{wqBmnltFcM84}8%r8PVQJ{y%_)PtP_sCV$g@3q+U=U5VJs zK>TNyX60}F`|GUD`kSx|%o5ht1TVP>2HVQYF~tzu%NA+qEDYf@yaxNdc9?|x z*7dww~hi!XLl@gonP5!ADC(y_<)OEr@2FlMdo*jV=g7{FzHP}86fwceO z^Y*&jwo@%?M=+_*XQF>lV6b@4+J^vjG=ly~Wd9>kwZ%KNq^6dOhMGTfx*6gv^|0HL z&g=iUf-N8{^25^q^fEJmf_gYYU1Nz!Ve^8~z~|l}QaLpaBcdeeX;<+OI)0FNoud7| zo9Ft^I!QA2U|fZ+hUO+dt3W0q%1TilV4RtH6?KR^!u(e=w zi_2P$3(cKiZ`6Qi=zbSeG|uS7smA{Y?(_LuF8KjljnLgjSIxO%?B&5^m3}f6^lyoq zOj|bYX7;699S{dGX}i|5xAT7gZidSt$o99BRzWdVqUWv~&#RNpQ$}ke7&#A`>;FYM zh=@`jgIJtU8{8K$7$@qKX899|)|9uw_XxEl zQbd=xATg9?ZwH#YnN9xbZKz}%DMR zM*6Avt=?Y2r6ySd8O3I*>g_7n=LiowMsA@vGB=NlWh^t?{Rt)!sHPAHy3Q=Y+{4a^ zXaMz`i5u?<3W+A^=qZ&2eVNZfGSMlxDtZj_GPCs0_}$00RAn+X{}J+8sn(`^e;=IM zCKFGBZ_k$gdti7fdmGzTLxo<4H|)vf?hA>9C96vcseXUF4#0?4`toV0>wH^2)R2$jH@*%8bKf$^Dx1zG(5AWx} zW%&kK-zWT@MNn8$GCx-4+hh7>AhFI<4|b4J*=M{my2HDp(5^GOPCwPo&fkXC+>3Mb zy>Pz*zwnL7ozjkARM>JDNFLO}HSrC33_-s=h~ddZrdy?I|9F0h)96v9&#Aw)BNG)D z-Fcjqxq}G&7*FuO{KbKTB?t!)+bjj4gk!|sa?Sq?imK6{bnE1Hy}965aEq1OR3&p> z-BR_#WSbd|qbOb|2Mz-`N7)$X#ArrZf3@R=#;i$n1Z{Q~sFEH3s>7yo@6mBv*f4p$ z-(ed;R~+>_B&P!3b#smDyt*>?Y`Ei1WXrtx0f#$BE{KM+>Urp`(muzMBLGTk%5eX| zznsns4wUyhk!--rrSvgJN#Y|aZVl<9i3js4<>^5JuXbASn0o@dU#HuypZGDDu2je$ zUKXo-T!V<3lxcNg-DubyDdPXr=){BK4Oa+!Wd9!vFitrp>=MZ?foiIPX^kq~No#(5 zlH6jVh%1GGJP}}RY5-3trT94|7a}DoMh9T17Vc3gm`Id62T-pJB-m zvUlr6_!v6q;@?OW>8oIq&^N^rCvSB&w^t5T!UY3E&Jts!;Ne1KKc=Ai5O`SOfGifQ zE%7!(#Gw=H)y1H1&t_B zjC#r3Fb)+C$Y{ZNX)l!{g@~BV#Q7;_Zbm&?n~_Dtwfky8Hz>7;`Q6AI`5GyzX&fpI zNS;7`D{%bz{vh#22liu$gC_KNOV4+&7B_tC@;D9$piq&Ch1XT-~X!3-Ksj{YrUZ*zwAq4D-Yk8(=bIa3!VO^-xc3SUj zzMC5AX_h;CXv@DJOWJV_?S={(W?2|o0t=XJkRM}Z4gwdb>{2c&`d5CJ(0|J}in z!MMke-y8TTB@fZ(fZ$$p`NWSHAe!_J@g{6EVZ&=9Z1j5Ki{&r`Om3GfI`B@ z?-qR`L8f*_ciRJ*zA3-$$JSHJNrgvr-hokRh)r_Sp9G>ztNH6(Zdr|EbX8q$3f-^P ze}SspBB>~&kn z;s4?3o1^P&-e^zKs7;!j*tXT!YHZuKZQHhOyRnm|u^Zd=J^g<7-uWwQ<-GIGnl_g)(-z`$IA&0;u0qJxv|L;vf-sdgwuW|I4Hju=DZI=Z~$5rn!q3g_+WXV zDfiavHZ__WI?l1lZewBQN4)m;uR^Ek*2!hl^2Ck91yM1e!0Dwk??dsQ9HxrW7Ii3SgEu8q~EGcPY(>x z)WrhjKy|Fb_#u^~fU37(a=BDVkr8W0uLJ=#sutI~-sRg#urPn7||t;)w%yNz`vYy`wn9WdEmXYKp2%w2CjMC)iQn>9MS zs5&4BNrH@w_90(hM>{*R2!aYI(9qF6-P|RM|Mc<*rx~uja3K;oxNR@dLMzPdC9#g% zy1%qj&T>w#Dt+I89)x12Rh0! zuf^rG=TGZYC{Q__Y5YQdhv2H((kh5(#X8Ub_)-5cEzuJxoGi5i1RkoogT%{CRRK_~ z<+U?-C${9f=UxN24YK$X<6O}F1xX{B@1^jucL|!6{+7MV0QBUjR)nxeW>YfqV$(e| z6y3O&M^#kY&6Y=_)fFm}tM|rGsHUtJ`>AO~b9a`rxb(;G-|dq&AY`-VSqQ^|1b`qc zg<#O2tbf|OFp#@h0VaNsV^Ee(g2&_Wa%p0X`UhPd<@@sW-h5;7!>&#mOGRrWPWg|F zg7vd3t4dd|w%EdiFF!J;TGl$mn4+rP&hF6Vvn*!kh2J zhJovJMkXf4>fOlw-nhwk3nCE(A29_5M4-CfbH^VPSORd49*-{U=6{NeCsK}`IHNkv zXoG-QQNy~e=Q*6_RT9N#K1Opw{9$R4=k{tSpW|6yfQ(YF^Yy-rm-poV;9SF0RgqMJ zAdKCG(-u%&+d&;u*MCgOkO7Coo>;$MA6E2(ZERJXIM4#WQxs;n?H(Z#l!_(>GYl%2 zLqHM~_b^kPs1!H-i5?&V2Mi=ITT46sv1WU^S(7C;xL6#v_F#p*Nnjv2xeyLp!e^e| zxbs{dPuCUp^~C9DF+nIq03z~f$9%Z~q$(AJD?kP+`eu#=aG2n<%4ox6?+1{hlQVwRWw!}*kzTKw*x;tCDue?*7&}RGNiKExOCg6dcN)o zk1}Lm5X+mfdzyJF2n5a=jjeR3GJS*t*=P|6j5uY)eZ|N04;OHME32RR7jU+}d4!a` z?*s$-B`-?oZ0c&}=sI)gduc%!R1L3SUH?j^3M-0pvVNZ%;rXaPvaz#@%nA4Fz9_jU z`?%R0Xt*G(L>mYQ6c;p9kLVa@PhYz#<;7lnLC$uF{+D1{^F2&zACpa-X2Oo!(cUkO zK|BP~=Y) z9CyAC)65JJ7S_K?rPgw!FS`-N@*jzC1%zo}{`AG@aA}+W5kQgmpbz-oSK}0iry)ij zx0xv2;OugcbvZ%?22s2IdYsHOgOJAIcrt17nElwbkN;v5>KB%*J|dIk)?|ZPQY*>h z7HyjXJSp$@{edrLEGmD}r$xuhI4?8=_(qUCv@;*ruGJVMCyNS8;irTYseo{BGle9` zt$c>d^ByvtJyZ_u*j{p-uXFO5x6KCu$xo*ARi!-7j+`Gr0T~4Fpzr>mq@bVxp$`1M zA5)NE4B>x!QjG}%8Wy~cPdOxKAVpr<>kY(*Y|%C{V@aQGK1W-*ApFKt3Yr?t_3N*F zq)u|4*VeZ(Z=*tgLhr9}LWiu;3BD z8JF(g5K2AXb}$eq)lw>eyELFpd2YXjiqfRGVj4x_tcI9u5W6 zE^sM|Td!AoFkuAp_dimN!2kfc!P5e0S+CD>21NS-+Jvf(=>TK!aRT=6$dFe z!$ij!FzhVJ=o`RqDN^h8bqN-WnlNO@Pj1N;GCmuE0WJgpkRT})K5@M=KKa%x8%`pw zhPu8xl+HtFH=pulu;G5Q7pC!k+q#T|Q+(hFh6vgSBW9>f2Ui>n0+cl$X*){&70{2P z_!$YwIMLQYME42_lDv4!;f)=WH08q!HXt*@P0YJGd;8zfwcIE*!2FwR3X1j5^>Cl> z{m{ZGkU(%MuCHKSqPH?rmMsS5z&Iqy>H06| z-%hgBP&a#I19BrEQz}CdvZz}k1p!FKnqFZ9M(iQ`m}qiWUQ2qp&yePuXTZV~FAimDLmzhiE<)LP zSVeKXJ}sxIrI>I%RXkoZ91ukv%p$@eLf+Ru)-5PDzT~KqZ z3FCiO)%G-D^H3oVK;hr1Gb+u*t!5xm7#p(fS@kTK2m5N-sfD@o=~R_T`S|wSh`Qi1 z*PI*aT@r1EsMr2>zZ%V_WcbAeRvvv#L>8jFk==M^$ukyx4Q!T^?(qz(aJKTZ&-9@b zI419PJc5%ieG9`!3k`_JLB-@dwB%&{>ZH0g2Ca!EtuE?2#?oSokDhmk+OGZI{BGmz z^~D(z#%1px`n-M9+N+SwP4eKGce)dm7!v6>_J1O{IS@ zeUKB^^?gY+d^&qZU}J3XL(+7<$j?4)Lc>9mU}dOh z4`bxH-#)X5)BNaJWmuG9^m+5_e^(=TpQ@YM;%&Kk1wUNjeY^S6zU3D~YF?u$K~gW#1l9kxcOo~)p8~>f)Ol$- zw{G9!-i9X!f0I;cM6Eim&qtaF4lb#vqCx^-mEMaxZVYgVwTw%Hu9M^>NB*&zy%3N2(7#1othU&vu7ij_;K04EKx_*8m?E|z~1c4-e*|KeE_&2tZ5 z(BfGX)9siW{-%+j)C;Nuv+ZK5()L4B_+~6Q6pu>mT9+VPQCUe)HoH5W^&y^*uIh(oS*cEwYVJ#Y)7BM(EU~BPIbkKd+fgz?hd>apYXL^Jeq34Z zUu%PQBQR2z0HY2<$awmQL)+BgHxe%q1_#LTe+89G%2PN^^K+q}#@HB_g#a5BINQ5H8yQ3B$SFo6=3c_?xc00;m- zKSenmP4k2wlBJA9hx{jS;BRIik08vv1ueYU$NHW9dBD7%pkD1Hoe34)p2~wI7QZzl zW_v;5m@_sgKk%eM*eHB7OpZd4YAlJ>CHd~G=^8g+!4KS^n!WvDSJ#=|o3p-~%yFSt zrQT1FWkj`PPlXo;U(EU$)CVz|V3~?#yzWlp+(-+;AAUbzgBs1}8uUGWfI1yP%SQ5) z>9?0bNZ7iQJ%pj|P-u6|tR;9~?;n+`@XGZ(P|fgvrOWwB(^(EGi$hZ0ciNHyN0_Oq z{9;eI%cSde$9v$`3*3up(bgP%Uq94Ll7ky6+Aab$pe*Yef7~BREh3PV>NZ9Yv`P0) z&+43TB_^W&J84l+KG?Vk8ffe}ao|H~!W)psQTQRi@*4K+M9B4&dg^gC-=Fp~q>l{p zWTvhOY4IbZk8ZCJa;-P&c@}hQ6(L(s5Dzzs9M|v>ydGGj(d?8>zH#Z9B?-_<%7lU( zU;$w9gD+LkN#h9=<3Zps;aZvAZ=Li~9wl#9DckXkj5bsh;qdZAN#HBTz-$zIUeNn4 zSDI~@Q?aTP8@0qDZ4kF{d0c&ZoK@Wwd8oKNn-{TG2tEY)!ANCh7lhuCz(^B>oD>E< zMw~3VJ(oggwLI!{rtHC{RvEDZJ*USmT@ILx4`D46DGs;`Io+&3El#H+ZaqqF&K9sN z+4-w%tx8)wdDrS7OQGB`gFfD0iJc_>+;_sN*vX!4w(H5dNNab6I-QIpYz_o&SeJ9L zo1Dj9I~K%6kM#GW`PZD`7XD$&nEJ}FSq{= zC^Dmjj6(!RdUcxjyn-uYLnFJpFuOv*0OzoN`?WNzTC?oAJ*b?H+Vt>u+CCgtv`4Gi zZX!NWHB4fSs!Wo(_X+G1OSj`Kleu?AO?!TzmOJZj4ViP#bvM^Z7eos9uUGQBld@YS zMu1=+U%sknc54I}P$(DZeEiIO41m$jImf=N5m4EB+QfCnqw>F%KH3o2EmtY`!goJk zsgQlp;kK7HfQ+VXQ?z;;poi;iI+nXJ$C|(2&i^9u&I37&ij+z;`AQ0U$F&M`oPuf) z?PhHcb)W68(-{@-oAYAicBBDI4d^EP--b>jmAb_whn}P^c*`8iqSZ)VFT8v^e+~i< zr+@#V^A7n=bAPW;4$=GZ=}}`almkm%dyVD%c(KvE+POXss0;8^h@IAyL0y=4Kgb@t zxQpxk$=z!(`>6aLdMC!P6SZOKD|3zygAs$l*~@P0#hu$_q~Sa&Y1_@x6wMYI-pur! z2;PuHId`RLPw*_jx%NKxuVgG82G8yYEG;o7V;EwjH{K?9aj57;Nq#IoZ}w87I)B(j zu1<5n{~D~|s5kutxCF2^($~oWDK5()aEy`^B=_KBB@LI5Nk*5wAjV4I>53}Hlmkj$S?)cM;1qohG&&(YE(evad3HMtbF`>hOqX_o< zLk_gg;tQ^-I4(>?_M;gaR0ioX=lm0q{LYfT`srlnW-dT3mdcVg2z%#dFCYTG5kmO2 zg+$`sZN3ToO77bJDrPKBhT`Vp<>Nvw0Tu)_^lDwh007kc;+A>r=4{j3{}dOn&hl#H zw{!`YfNmZ>ljuOEAKqfs#^*3UNrv1iAZ1`Ke{h|j-m>D~h zUM$nC=NYIk64%QA`UvQ?thS`+949U|*KmbG-EA##}J9K`Suki3a zpT_C{K%TJ6W`+^AUvw_G#QT31Xl9Bj}wx`F$&PnMU1N2+z3hMG8g0$i6j~6nyACj%=|F(5a|G+?EywURvHPsuN96#Z~ zJF=(iyhk|(DgMhAxRHCS$;KO5cO9G63D@R@hJej#FFwmJJF2>&`p5h<0bS8e3wu?A@~OVKwV6^G5ukJ8lmcqouWpy?F> z6vczeitb_G{%fvZfdvKB=xL*Me?5i1xFQHr?loP1AtwV@PpK81S9p@tXRmFM?PX`8 zs`E?}2xiB4T&|+rZ)C&edI}u9!qPN*RLfO~z1RD4k3%pWF-Z*VJ4WkRcF&_@fxlmf zm;l8)2z}(1d`Qe(iZZoocb1A(5$^f2Ay6IYynM3uHj7um&jXD(@Y?Fu)Cnv@M_H)) zZzJ_@fEAMvkigY!v{>`cah_YBQmm)K1nAYP!L%;` zw;w@T0-S0U>vDEy$jI? zvu=~*NZq_U+EG+Kx zSD2siRRgW(Y%5T?H>jF zB;*2cfn|G16h>-LV)w`Y_n-!y)fXVs?v+MU{HQc7fFR7?pIg4{$%&TUrICzk`ho^Euji#(4i=Mm1wW3NWtZwM3;JwYXUkb4 zDcw{bid0K1{IePhv7NlD!%-%J@pA>aHfES&Ca{Roz<_{$9_S#~yNzI=2hd0z1}t8Z z?qa3O#S-dTfe?!GD41wuPS!b+iRlT=9!;UN@ad+Hn~;!kIotF?DkC_K6IUb^VIOu1 zDS!t8N-mWxY0m4ok|T2FCFI4uf?Wniafo$4f<9LUHX`iy-@Wa^E|>8zy#)(?^b?u( z`rS{e%mA?vgkiLGVSSa?`TREtJPaLkW+jvF_!$83owCU{{ri@)(R#()OLSwu6wB9C z*{zlp`m5}o`U@&FVybW?Fu*^DCq&%ECfmcyEA=|Pv{)!{h~wXk>zpK5hUb z&X;hrRuivQz0jrC+nnoJqLpJNoIJqS)v}Szbe^K*S~Laza48UWISUK!DUJCHXQJ&b z5^>H>*tnEL@wXXpo3nQd|Bo+VM6jq$pORu7)1_jN@n2j^o}W~}CE4Wud1_2Z@~~Pd z>O*bG=44T-hfBtU(xu6Fb0w=dZMxtDzW~yPDKF2=Xiov!OBkktyn-s4EKv=r)9jA} zJOu*~s@fF-*EtmR+tr~$ewFFD;z_UsuaFIc9vA?W|9ikY81%rtK{e0rANSb71F)B$ zYgzyTkP}}JAU_FM-a;@j2<3MD7Yf~@o}0S3ZkUjGnwn%-b!0Sor5uv169V%wFAcz^ zBi{VqSNGqCm-?}r29^+U=+9&%YBe;=Y$b<;u^{5aGmA9LQ*qV0N+n0{e)J5_W+qEf zGFKUA<8$?lb1jd-+KrHddrRB>+*!rp7Cyy=mv?2msDZPCLwtFH<>%t$A=h&Pv*za8 zAH!8o+17_3XVccMX35VN;+Cl`(o}7Go6jGeH^rodYp+KPAm~RTyq)0uP5p08-!c!$ zAF*j0_g%+W^Es%WM4${_!01A|D6ek)v6}zF*!FU$Y4`Gyo%LEnYz%rD>E`d_6%j+u zmlHJ+w*Q?ad3jf!7oO^isJnOo1X!>4;7{X9k0V+&Oa*V7+3G_sb0#k$SUHX2Hwr+U!pc_+CGh8|E z>)zvcaTv6Ajn!`3KXB->;#k=5GL1hB@2jIEtIy>a8zJ3SqMgj z6kTjK(HDv=hkx-(RW(JhLC-hEKod~^>TJhF5pNNxP>ZslF7l0_Uk5QfU&rENrj>*u z{v={f(q1mER6x&$PS{^S$EF|uO~37AzO3JC{f8^Vv^E&2g0{E^CLGKaQw4@<)Ia+3t%kIAhv1D{@8Y0y8!>4Vu8=z9}X2!ldiFc+#CysQ5$fU6n%*f*R{ zUq2Xq9g3OpMhT|i-_4EmTr>}QzI-WtNdZu|k|38{Akicv2GOJ)P9Q*}i}P)En}@iY z=X)P+CuvH$RDmKCkO&40;+Hc7;b2!K>Wu!n*^D@)QSd0asaKcH+Jp3|3eVQ8P&5qW zy|ngNgPFT|PVwFoI&})I`ptIibHS0^b7*TBSEK7^cw@P$#1v9~g!hqkymd)p<B=29<%K+_j#&yzZ208WJU0$y8kVxvnJrEpkRh9WkHW}TEEAWa zpN(`)(%e1DVsZiO};(#`R;zijv;{`~lG{qsss5Cl$XvMzd?bBt0J znzYTr?MZ%40V#}ToF0(5i9``E68_eS{T+1oqe$#LH3!Z*=ns_bpR70zKSVop-pghn z?Zny6pU*+1_J?eM{X|`M{S%TCci6t>OC0BcF1#womp4;%&qFY?MZIeN@2m@cMUtR& z-1~lrFuAjwKv?2naYiv_;xSljR8(1*&szxoCKaq!EZE1%7CbzU=*gd71#Dl`?dFlwn#Ur zGougc(=MB(bE153)>8Q!EELQKEsTE(qBFFoQpbOHD$DfvTx}uVj!&rq} z&&v=gFdE#kkQyHV6g$|NR46KaCRK+2>Jh~H^>NVw20*2}uN4xLzx@BS0OOR65dcpS zlAyN4@ks?}P+cf_NS3b;JCmyPrm5;#e)rKa2&@e)e zlIumy67A@5Ln-4cYD=^z8`&v$ku!li!>f|a6LB$UNy@9)zj%toi(0i3GUWBBhEiv8 zW9&{bERrS^m|&+|(zo9VGa<3C8gD-?hWk!Igj#XS$+`mu@NaqYIH-q|e?5rk!C506 zS39uq1BvwLdy-UsJr4(0oZe9R>H3ArR7}zY-rtuqHi2G}GvFstVwu_~Nn60luq?L= z4EVDCy&t#R?0-ShI$=`9y~e=@f~5pyA608h;emfNva0u;Vs!M<5f@LZnG>`wt|TGy zpYwVjPhOqoCsl$UwzIUHRB8jT6>Tow!3eIt8S)Qj>jH72yu2*EHEJ4y6id%T2paC# zO=0JpWtTaqmS~rSg0}|;WYof)NSBNIf?`17}UrdHqC4jfwM#YxGM<8Jt@wSt>ex^W5K9r!f9e@kK>9|U-nJnl3rLJxZSM^t%d9?-2jt{Ck)y_4By z{Vq3~x=KGr?C4)rsrBZj;eG5BfpslStHL1Re!iYJC2ClT$YQz8%0!%ne$=Iv@I9fUsIam8VME`Nw*=;;aUYmL` zHb;4x`^Z7Y#aajch}Cu@iaep~%pIE7+jjA>Tt!rD%f-%A=G0hnm=|Z)d8?Q6zgYYY zl&~@AZ1yh#1G5Wn45;5|q}GTbOacd}#|(riNKo!LSC4o%xS-^tFu@4{^cVv2_S<9^ zqYM1}r%#BPkoxh{pHvb`p};{Z`6T0Cry8-^^(GMc046vxK!-;3yW6=Kh}-+$a7z>k49PbY2P%W z)VK?!eT-Mat834>vfjA32^c z&#r484d^YjE4d5A%c7SqjgWqBTNXA#f)S8lZDOmxqFSl;)u zf?15hfV1d2hYhtnwW{|19z(#(<}*Tgy=$CXeW^olq2o!Lo!Fv`goLJh_%Ith) zjmm7Wc`D8IV%5%Ve+akd!^fVbgDbAhyrK0mc)NS(=^vtvL@?&wBcD*%)^~p@`R@2$ zQ|)=Oq8k(K@px=}iKg=r=6l&4@16Nl$$-i9**(~Gax#}me#Vt?EhYthcQ`9TNs5%8 zB*-sZ|2K}?X}7~2%>6VM@AI^NHhaJj5xnVUwQr{9Q|JBdO}ab7J#kAobWrgdz&-*p zw5XJ=DjPki*JrfNTeQ|09=%~{=55jSE+IXzVBe5g)Vi7xk+d)P--Wba7a_>cT`q`3 z0&EZ`7F)JflY3JQ-menJAZ7$eBn~c|V)RYjU$rt$3ags(vrc(eU5F>8y&S+l*`c7M z)hi5U#Gcc>iMfY8eL*)d*$F2|I4nKld-qWX@9!}PgY~njfM(6;$#2pBM~AC!#cfcPxro@Nb`yb^G^_PHp(RZvxk9zcV5)=oICIIOxLoC6|;krG&z{#;LS1f zFy|>j2msrCit)tN&0Y+sXLoV?Tn&ABY72kWlku zj5Jvy9_$b0ofY6X_B~JC%6JVCN37^HW5CcLbL~8Xh3n@~8Lr_~Fbf*gm8J>|HDAzW zwWO$@hwM}y1TbqJ=DuYJp?vi|Wl*Y@I%EE#0S%3@kg>S&teD~;A7g?UgrQQ5grP^@ zd2@f_%6d*;S<|S#A$Y+s4ybCa%R^yeKS=+m7Wxv6rG0wQ|5dVm0Wp-Knz!SI=k%|$ zW+z!NreAf(ri4HEXkMEB`&tkbR`Uz%hBCReu}Y??xxlER(3&WOCsvj=^yBTMX;Suo z_v+wYuowQpy^d-8@ZeTz*JSw!wQgUjvdj>FzxA{0+mY&zs;c_EVM#VsMUrJMXnU$? zmD)K0fFB7s05AyCQBX?=Lr@$O)y=H(`5+DgQJ;{X2{H-XGF!UD52>DnI@)xN z;hwA>C>MfkS9y&ugSkS+4*)U-Wb|(6ehY%>YzSI>jT4Zm-ma*mDUhmND-isxR}rBO z)`HV(braU&PX!>H5V(~ug?oA#Bm)Wt#Z$lks9Gvws`Ar_(d0BYdeuXP4BL%+XDgLb zhtPhQyC2&D5JC_|0a2znJWIUI@bAYKdGlGgbh1u`eUtDo4WP7Tj|2$Yt|8$z+UUe6 zA@h_j*J@g5ZY|7TDP$1d5{cillGMnU4RmBNL5@-v7~dstbUujsk?7Kf=;%vx z8xe^&NcBZa=c!ayPD#r0;(`*sm@>h$P~DFymD5M&EDc1$D3Xo8ZWxsbl8iag?w@@X z3I+p{){{z00WNWaC1*#QCz=Ny5)qO#3^+1tDA7KhfbJG+y^2kWWcM=B4T|73FCZ9} z1TliUUqj-S?~@5ClUNCJ3%8o-K1c#d`M=<|7c#`r5G8u7w|JI>f7|8@Q&wLuW~<}v zy5Sn|VE(Hi`V@v4jCd5A1Y+`nv%G&T?p^avJ#pfvP(d~R2ZQ=T+r3T7U&iF_m#`ptV1K6#`fXM3b$d=9 z%eN|9I!8sc5g14SgBBUQUY|@1Dty(jd)xi);d*b!wz&!vq=?v=1(gbPJ~Lowdtdsn zqQYY#X$2&S6)YUYX{A21qp+yB&h4|*DjRMs*#Y`p~efU^O*<>q#?Lx+M$}& z&J&~v_mnjJi=%J-{S>G+)@c*0i1r{;{J&>|F5zIw!jZ_|YSP7A8t+rcxF_`Zjb~2) z+%x*Z!jTJv$UlowF;42#d|Q`8oEJiI3LDItIg79_u%WYR()Fk`aM>QVg#7 zO)@9HQH3mL#~s>MUv?nKxnxwkq>nySInzh?JdB2f%eKJ(d2@}`+Wz#{CZTZzdBcM+ z?rj}^1&^cOgoU#hh=_y}H`b?mLGW6OXs(#;I4y?kNBlB ztgyY?4A&7+q$s;}D?)@xV&=P({dvdkgp%kE3k@G7Wf?O^dhq3-Xkn^ONfG(O3Jf(Ly-eMFO*Q&Ng{O6WgZut6BaFC$+B!x%#VK=qf* zLkRf+DZDVznyVQB<9bl?q5FjI7$q`h%IU*uMZ9(3J%aEP-+w#)lk&HM;v>NzW1dnC z_Q*Yc3W&EVEDve-VXpG@s+Ao5DuwsgLjrLKG;81sSwL4YW zZw63`>SRek%a!JJ4Q0K!(v$&&VeF`WJ_sYXtxZK%XKzh16#mij`8V%e8qI%%!nQ9$ zKgIh~`>Re$Fw9uWi6S=HB;TOfg2fg6p=oDO z+ikDnw4hjaGKXhscO$hd>iu%mSnMDMu1OQpxhcN_F6yM7e!w~YftSR(trYt_R8_(Q-yG9|% z12W$u@?m@UhxOI@B%l~Tz&MMr6$q2%*&{WObSAK9*~ymLiz%mVP~d z9ZuK`>jMJ6A==nMnd87PrzvP$syK6r{^|t(mi1?YlMOPs6G6~lu^^!VwGae`*7`Gc z2}S;f7EFNz5DnTUQe)wdj31Sg_OqY*N!>LN&~D%^soAiZfWnnhJ1 z%ZP^a3^@eaFXGzv9;n!VZRPa;meKtnv~`_UNK3SBKpyRY9)ZAMr%^W1r7J`HYQQ4| z3X_+rA+=VL03iIYR*9dMg0eQAk`*Edx^o3~&T*p3qMNj~ZFnRbga&hxvuy3f0S4TI z2cM1^<4z_1RAyC~HC*-Rdz81uI3G%h7^4Mn3mL3uL#lq0Cem96CklwBf+)&(n}7Q@ zD~>tM#XhV_C)2B;pemp0{#?M8x)*A3BR#q_Q)Uw1cw(U;(5wxfcK^j;{`|QDJxc7t_}IIYJUB9FW0WgM>&a{;qLDYX6odUEm+CsJ{Mn_us{ym=Z>g z`oqPy3FGM*3agj1)7w~bo?g3^mfsAc$Rrz0w|ocr?k7kmV$r#*)8dKnvtI>!^ZwMD z_~5hOHuDmCE%Ys1dYwKTL@`=#3{7rGK8AK(Gc+D1CX3!qB3&*%KZ_WyeqA8%QR{gS z%U9k>TLyC^gNwRro3+FS-(kq!c&lYOXz5GGTv@D;=vmuqH&lXNy5v#JkZ$p|7~V{L zdDW1yRezeb9g@K|$l88Clyalml$6=LS{13J$%~G6R~>>x_r9SOFVP>-{~8b9DeyV~ra1L_3`#uXlHAe4wi- z)%Sf4GWK*i}~o5#1GnSb_Au7wE~5vHc4Lyw5S0o4t0JSiJ`{hR8S169d&Y?@X25B!}JN5zlzNy_WcUWg#8tM`m zkG3Z!zmMg`mUye#vdR(#?A(mpZFH=w?h~q=a~Dm0Wu|J8=(Uxaaj?ylL`an`pAVJ* zHHt=NW_fZt8K#s|ThFuZc=DqaoEi*yY?UB_IqXpA#Z~s|?ss9^Q_2}S3u*#RpB@b3 zfx1}n%{WrKd#{O&jRz0>#cJo&@NP5wY`8iZ1tssVJX3wt9gwVRz(e>63$w?a%ejMb zTG#gXc3V)2o2hj>#Y^hpd)xDS_u;8Ub%79iIO6~l22m78OdpUxjG%~#vX+8y%9GWZ z8N&(g5@#A%KDp7sGhMwUIoHTpad=< zUtih4Uq4ceQU?4^NgKL}$h#F#kxnd8Y#6_EG>2l-jU6OJRSvPBAp!vLnr4k+wo|@7 zmK5<*#p%Ys>3_`;ype)K$Dc|t*PtzE2!rIitA1%>2;~%=39#R;Sw@r7i+{~*%}L+; zEpxvI%4yoKhM#X0iH?wyI!oO!S6~3jjK(D^5e2=J9@aU}E{{uguX`_p)W#cX&{UQ< zKyv5f0E5D}@7x8#RUIihG4J5--Az_P3mrR63VWBA=1QHs>kkP{$ZL;9qO8(lC(G+I z+C$*{#Ti{riF!#ARMKdTUl?(q8l+&9pMQ!#c~~s>nw<|Sq&PQYc#1-KnsY46DM)a8 zadZFp)Xk)lm>fDL{XH@>w;S?RkxE5-f+CdH|08EKNt>wi)y*UCq{?7yV{J~zGZo7L z#1dK(pz*=9lM?=iHG8lH>Z+CXR8Y71}F{!2WUIm$pHwHX-cq?3G{->CU#o3wZ9mY z@aCa`FDHvdfWsgP&YMrY_>94GdksfaTbl47TB799D5lH7*cV2EL?PfQeGb(NAYa;F z&1zu85EPJfBlI9W$zxEBPK#2u2D8KS$C<+`A5SuNo^S=N)EFJ(O7U73;rPSqTxF>2 zx(7{fiH@zT6-%jVY)0F?nU42Y=LlnR)*1C@A&K;TRvw_|c{)oWnGHvR=B+0za0f&P zSH%)u_3@nRh!s}G`P=D9BATLu=y*huP zY+Us2GCJX6X2Y4OOaKtXj5~Iw$gDQeSAu}7L*9=MshsB)>+p7Vmd>*N9f(2m-lqK_ zM&ca2+qWQ9U3cS2$;;|3&z8}XB+|L|8MLam10^5pfkKi7xAUcESXC>&L{0K9{Kk&6 zuGl3r8m(T}^WlxGI8)_GfV}CG+fLrJuIr^-7dkce`~6h%DDQ@ufxyrh?+?)EKZigr zq@PP80Z5YK8ZPp|B1OVT^tPVvXTR*3du6E|6+nA!aK4&eTD_6H`0Vq2rLckd@z;(B zbxTf{hNqAR5!Hgulfm`)M(_SYM0##FxAA#SlLO;v<5$HcFYkJ#=U>zmZz2rfF5Cdh z-mp3SamjACm?N_b+w?s55q_3X<1tD^LCV1{Td~Gpw$pD}XS&5BLnEsc6(W}xUo?}mf3fZ%&;PiJ)a~U)TPOch z)<24Yac=sT0RkYWit_~|+HBa1FarQc8|Iv)jK)y${P(>CcLIAkZ*MvH60tSC&cx)G zz~VW-lhueXwk8yXI8_U$khJUcSJRiegsx~;w5Oz#>2jxBs|KS{uAr(0aL`V{s6|xNW^Vw_c zKE);vuZ5l=of{t6NJQ^+hLEH(>NYg~RlsG}n~)1Jx$9QnVuC^O(eoT2DT;*r42_qq z(hNg2vGMM5>sFf0*3ESqYhOpECsD!vPKl{1%$#ZT1-5b56tG4Q?{BRGWs`SvL>;1}0sT_+X zdf$9ir==xTXFr@7HY-SikXUc8i@zL>K0MBZzd;-WPp^Hk^WP(VZ@~~U&Z!UoE-6wD z+sh2*?cHJL(?kZdQR;-FwzivDgsMVa{CA^*+B~GE&zTt5WSnCzU3ClW+k+#0aXbK! zl4P^vvGP53@cG{6;5$gam1LXQ`_2c+q&4|>C3eR9^Y7SRo?nf8hQ~YP?yP%%L`&Rm zd=^c3&83<|7E}J?uxb@ZfdV!laIN$E*ZZR!fU)ux-uS`0<&37EO8TxaaTDkFAdHm8 z){$IciU>;Ock2)tycVO2j$%GFOzp|PW45jLj90%d<_c6N{T=0Ly;wAo;;8$T+5miFqb?gd-0 z@G2Diu7UQ&52IUGsZ3zNK(%$25bAp!Ul_Hp&5TYaR78_vXcB;n3+ZAl$0lTR2z!SRE z(o{}%PmyXW61u^}>M8Ltx<+=eUF=Mho#AB(rt!K~xnxzf-5}oCuRRJntIglA`!4eB z5jQp9<#(z&5*&*AcZ#ZXr3CBZo0E-_^m(SJ%TY-GA};<|pHNTAh*y=L)Zz6d6W(H+ zoKp9qY#cQphdV?^#W%~V<82zcQ~|SH#?PO(8K)NU7r@h~C+dbfHuo_v9{9R0l=;)G z669OX4?|e6xD$B{+2xzaU`rc%;t8I%uSC_|_q_?P@lF?W<}E8rcauc!J1o5kipCk! zz_TbRME*`wR9A$7)AL(8OlwU3&+;Fnjla+0Fc;~Wct^hj!U+1OPpA(Q8qW(@o6M79 zV}c#5w~NmN8>NS{e4QHkT~Sk{mgsaTS-2=3;9?PO7wZO-5)-sd&_GmbHgKoL=7*gh zkg-dnlKJTVo^ju5!QJ@xj4Xou0B*h#(|(Z_B{LVrE^;z(r`+W7(zf)IHc5jj!YKx5 zBxir}D@c!zr%2|sxv+QkX(aFq55p)}4G*RP?GyzVmWGnNas7l%U%k9f8xb*cYtwRy z&xccpY$+gsz=Sq?1S2 z*v74-5$EV5$6NgvPjw zy!m5Lb3#qBaXinznwGk@s?k%J6k=zbx?O|}n+0M>_@%QF10ZH?W8qRiMnzm3W3UgGP{z4eIq9|sgd6aa{Ns}EDqGh=ozr}kq6Z-7(N9{g2K{o3BL zhZ$p!S}_1E^>(E{ss{lE?KHGh|2% znsBb_BeA=5h{_(Is78e-6OcPE$spwBxwaO{q`_lysM4pnT%T$;N#v`F?W^p|np>NNzMW^#7 z9WfST-l$($!h@R8>@puP9;&I5%V}Rsv1B?LK$s!4*25#Orq%bL)#P&GS8}oV7Py8^ zyP2qAXvn{#h%f8IN#nV31i5c5L}yZz347btBdOAJ?s!&M4gHNyO=XHpcgWhK*>Wm2 z^1#Qw_&3oKM9ea~uTl$LMpN$EPOZqdihMhi(F z@-z@Y0%7X8p7pnb17cbojeC_|4Ep?f9_Ml|AoUZdVxG}-``P%a@MT19%H&3}vJr@b zj@DvkzP<@vgWt=p)nxwE`rdlHfR~b+I=PmtZk8hTF;kVzRufDPo=0~%xhczB=dFY)Zuji5h{(;~9cO-l!h34(W zAQ?5Wt?xf}Xny$#TY3tTa*TX~Y6Ex$6N@0Hz06?4!DW7MWK#n%2b6Q1ot@!TYkKu6 z#+;DG*JO2f>SSQsC;y=TqTd>(@**4i{+F1<*%J5o0-=s1Ifqv)gLnV*+~05D{wBhY z$NE%~*^#(wPU1#Nm8mF(nKygoY<&Fu)ghs>MTsPH<-Ycn0fX~|O&DXbQ>3$mId(rq zd4Z$X+dbcXl52)nhR@UeKpl6gnT&_+@_8g+VE1N@mJIfLw3V@%{hO#PUA^UmT`a(l zwEb?Lki({~w$`+;{zq|*Zy59E@6yQDtf_KDYHs{bvj<6@f?6A2_eFQyb`xnVK3603 zcMH%hA55mbvYa_&Z#RKv>)ann93fZCcdsvH`We{sKYWd z)923davHk*UcmQR&P~atZ_RA5dKs7xsQNqUGOKbQeWPIoythy%o_;0uo1J~iWeXrMqE z>N#{YjTYO)-K5&*CKx{^+8RAb(p4tYJO4DR8CK)DjG$5lSutco$4oY@&B9Al*Td*z zu>0))P<4*cku_nv?%0}4Y)`C-?TMXC>||owwr$&H$F_}$C$@F^{m%NyCG(D!$?nQSg3Hnx{aYP?R1 zb7P{duppJxTtMi#*T!@d0VV?4xP|0 zHku+`;hfbD-_Al^HPe+~M}q)1nSH4de>?QvW^dT4}jSP|gA zEG-;Z4-q$j6kKW!Be;XBEGXMo?hARleJ{)KyURc9;nAmRKMPKS6|}=e5fpftg^ZnA^XK)%&n^ zn1~C_BrUeCX|Qt3EfJSf0K3aSw7m)m9FaT0E(121 z@9s{9_PgT?GUwd`%>SwgGq^W{PCCw&1b#vP5ww(jk8uW1Ov1mPFrQ+BtrDBe^%l#xqv zD%#*Gqixosn002KEpU61*7>d<{qF^b9@$Bk`Ew;%jtySW%taz>@lS(Mo@4>W_s7}d zx_r7wK(U`7`{`VHV#arsrJSvsaaXFD=SfcLD=63mul=4oQYG~k#M}hqMaPZg(ff3pITac(45lgzo8Q?Eoim>Q0{Uv%? z&A~zH1d0?&PqV513byOeiK5VMPpDGwyTie)9~F5t=Jw7oPpi(>RIsn^VMwAD?bq&y zWtW{%^akd3OX5b$>%hJ*PpvP{m%#aZjvx3SYyALB6Fj`#@iRN$^T9exW_qU^OSAWm zxxG-g4GjPgHwiGpU+6X|OT~g=MW|go)Y-iMyqVE}jqA{(ho&20C-~I-~B+|PAHWvbX_!-l6@_>b!l`numge(CVNF!T$X1Oub=wW*7k8M5ADD^7OxSg(hMj-GBof1oOa+1seqZ zp}I?LPTQfNy=rx}9MPaKC>qKEt7eD7^(0x_gE%f|+fxy;o(yD}48~Jd_FE`}biOFesXRcco){=~g(@t6 z_3?T+c@-;7Oq_D{^wbP^dx4RT&QXph84T&C2DnFVS1o3d}Uf!`?b@h63dOlj!7#jlN%k`FWzh zdPv>m2^l|-wlCJ4F%XkkReOPv%-km=P9On{M?wP$v}FE_K!%%#4|0#Ir6?;{y>L>r zTITr2V-sev)_#&`_5$6*-^2#8?aq`%yG=6tYJ1LRWY?vsXu^sBLLm~9ecvj|XCwa= zeCJpTy}eVdD%_Oo-+a17_OB~jNi!u^Be~OiYEfk4r)Y}Cgeh(`N+|P4`64cIXP0~q z;%Qr`c&kpM{z%^)9N}MP;a?S_FXlI%cRr&(ez+do0lUOICSR|6-!iD6aCptDAE;F& z75#<8fyI(M`*K~2%+=P{W~v;Frk9A0-4I;{vxp1D(e=ajZY9$_WH4eF!f=#S1@`%Z9BRDJ(lJUO|AxQ0fKyK+2JU8DO-I?NdnLS5J48z=s)tj zvV9kB1MbujGDp(rIohU#!>)sf0h-xQ6R&#kh8|i`2dA%3rQC1wdh>i04nwo{grtgj zNnoUqWUU|LuTLfIuW~wz^cA;f$5d@$GX7wWAc;xlJf*&1NAT3afu*aR+`WH1&h{vl z4;2PPTw$5PPM)4Z6Ytr%z}urx;T=_Uo-&oPIpy3K+*wkYDZq_Iwp80?HZn*Vq%JVbnFR<^2IwEy^E)d=o&IW~owA!)q$I&`8Y9FoB_&lJ8`DEs*YvgN+zoRClU(^zvc!T7;>u8=$-# z8|*;4g{^M`YP)j5V-0ky!`O+%xOxEHRJ3nK+6w!GTW0h+^~_b=T)n-S)kxsj3TvIg zY3T2UxFgfsbzag*i?ezXb$URzL{Z=pSe<4qTGUbr80XhN%KGCTt!@e>Dda`_RVBvh zA1fUNWn+|zA$4k%wWGYA_xf$CWnCZvc;y7=OPRSfpc(DAEx#^8dYi>(X{EK~M2Sbs z$osUDfju&(rr|Fr1&x{qkKQu!F&2|3MQD5LkZ5xiCetPO?WIDqw?ze`=qcFbqFY+3 zSbV1MmVC!P869L6s|U->luiX5OrS=*FJ;7rw;M5T7=q$J-=HJI=Rlv&*}`4bJgk%a zZF4Om3TQU5ukGh2HD3(D<8tv>%am%huIe@effNum-(8?DFX=LzUUBC+qbAD3tb%2% zJz2xza=LQ!jzZIUfHn7X_qHNgi zv5{S}t?TuS{=sgaiOit;A>j;a@zPxR*>}LW+-j#JyFigYQ&&w%F%292!1kNBky1pg znu-dy5W?h}9e_zA*Y@9V{N++bo(1>4dwfR`cbwPri-8*awX#heLL7a;=m>;$k7R%U6ZMX6CF~IE~ z9a$%*HoJMvt@colN-r!4D^h6Q{@3Mk^Y4?j?}Ch6?MwvH@hD~n=wNp}TAVJ&O4+uq zh)bUQU3-!l*rAd^ztj+@^=H`XxeRV9miK>xdkOX@0y)vOd?V|UL*{3kD@=- z^(FmrML(j2{yreV$hcq3OXtdad`P$EEjxQ!e>!&WJ`}nKj)L_MqGlN{;kqjlY#bSU zcv|xFtK2Ua9D8=BF*yuV@uZ5k*sg49&gc!HdD|&9x$#Yck#_MjVI=DK#{Av6~};qMfbK#P&HDq7bQy4$9PAi?}&1h$L4yIW(wtuf=k+-TUg{#|Pu}g-eAaYuQxfLkA7*^k|@oCJu&Cw_&ePWDiT2?Kh!zU zb8zH8wbVU8n}ebF%|(PUauWEhYL)!mkO0|^6Z}{rkDW{sD3@z)?A=Jc3#b$BbxhE=TkeH+|;H@BBCdT-!3Ms0!!@C(A zJm|syMr}-e=q}!x@MfdS={59lFO{sY|Ln|1lf(JzDMX_UY&A60-Y5SDj zl2Zm^uS%{l1O`BI$a|Btz8?ufc^=Yz7y`s|>r4HhYsglW3sX#pPAUU+lBmcP;QTzy|J zm*`8s^^fXrCJ7Ug*S;HDZFleC^Epc${J!ek+_zT<0z#D6mx*+u6gY$0kzh(u_1|4+ z@O6JzF4vBU_{g&1nc=;>o=BqEW#9IISHkPf6?%*e!UG2Qs941h3vd8fONhOK2h3`a zDX+C)m8$KWUDt!ZeIY}17WZ*B8$--Mb*S&>`T+AW14eKNuGa&0@|&2L#S|`BB$&Ng zv)BX~3Gs48%O9x8w-Jq{&yFTSqKE}?pAP+CYPVHjIHpNzVL-ocXb8k&rFyOTLdnbP z>%11d4{1<^b;}j|`@8-Xp$AZo`B$5#Lb(ci=0!^5UJ7y0kKzgS+N-(d?6sBS6(}@e zn^sSdEWngjGaIh#ea{0`1txQiPP389BPV&)H`o%JPP}l^8H2opja?y{cq;6)^A@hn zhDp@DC2ow7O=OO5V%wcoGvujLyD8Knus1Z>VHBk>khT;J8@uA5`mkx|^`3&?-I2i( zv)Mx>O8ijmXsY2Skl{rAkC~X-TTsF}E|61YxRT|D6ic^u^AYcOq2<1FP4c>Mlv%t2 z08x@QoeMghd_l0d&0*xBc#!c_ll!uZ)wxWuTSx^zP|4e^kkgeb#cE9;3qegfO|U>f z_l9dm|I^W`#<9q@i95?)tl&Iy;^b|3qC*oSWQ`q=MSJ+gVnkflOe*ikyk_FqK@Cia zc0WgM6{Qvq(5$Q&GjwgEfcNuLH&+EOSDomu4{Bzs;en|w9PW<1qiwve(<`S=jXk>@-CCeQBC|h0QCr&;~IPh zUB6*u*R<=$by)j_OR8wNR3+)+iGx)0f=nT%#Zm6LOPfEIdrb*+OyKFc&fPE_#%tI0 zpVSZ^{KTxKm_5GE#=XS7{w{*+?=}Q?eT<(^+h1;_ zFuH%;0|0*i4KBGdwc|;oe3sSC%_vxQ0g{ZvS~i2EDIiSUTm?LZ0J)SLO|ca8EeyJP zZ??^c(#~BtP3Xc3TIpj&(PoSeK<_s$Z4O;Xp)y$rMmt_{85f=`hT1P&IeilttQZZ% zC;q43u}y%OjthprP&t7a{EiCBaH0S8mUqSzZ>T_X=qtoOKA?XK(a35fhJc@+U#(I# z#TMutfa)_+F_s1EDzeHbGx`ABj~c(-`I|;yAj3534BR8@H+Ura83QYk=9Q@Tp=Bx> z^xmH3iV2G@bf#*Cs#saW6~U$GsdGYo>SUNrS|IKXhlYU)&%Q+1aE{PKXiwn3bVo+4CWf@K%S&7xbcwM)I_POlxR2Ba3v z9IDP|`P-|K3YNB)MdC;RjwHb_a}M@4dt9BpuB@kC$T z@9MA~%gH+;LofK?1PEqH)uLR?v%wlEEr3mLUbeqI_PFfHBo>vKqOEr%$LURlSeAme z(Ylg7nkt7$zhB2yv8t?nl%2qR0?U+~Eq}s?h7L=6G zQ+6)6(rppMy$Tyz0bl^nE3tOjqO#HlEAri-j16CCvfoo%P@c5d$utPl$0?lJEJlKy zxwC2dfqrwchD4P3rVaN32@W`*%Z$m6U_z8gq5fciu1;2Zq{;|FC{KG*q`Q{V$q;1&+E>(j&+;CaFT3^No#qPJ^G@BFRCcZ zAMRWS8pW>e9Yqj+#0YKR^kTuL?i?ynCx$%{)9`T@D!VGzgo}j67Q!yV@7@rc8)LLG zq^3ga0sSdIC=^t8PQ%mooLoy^DB#9PFBtkme@xZI?PT;rQaQ(5Z-(yE-vN_^uALT{ z(fz?PSFw=D61QrgM-@Oq#{(+!`M+h>xK&?MS^q)NJ+bcI!jXs?LU^K=P; zM6U@Mgarj=G+Z``3PRDVM`P#+>W9C8PlS>W>dfK&Y>kkV(ku`%oQNRfcoowy{o&uy zOOy``7c2Ef`cW+Ulbt4yAu*!~lK_B0zkxVT#Rhn9^e`$5(-o#WG^|m8#U#dQ20F0} zY#%HW6OD8;G<4cx8o5U_b02P$pG zgPCMilxq7-x#P(%sS%3$aj_vHN~+sK4&PA!RUX!tp5LyW!%GU&@R-0t0Kns<7_+C! z?Z$uAi4H@ba<<>!4rMu%2667puIeX_=5K72EtBmmZ>cLhYvm*Ie(S6*c>cc3g z2OOt5q!ZxD*6lc@F@?N9{W{3?M>>KYv5y118FDTk?Vlut+jsIWL|Lt$`nwe7V^NM` zj56+|eeUO(=6WE-1!?fyMa#{&X?`=T9$pTfVU=B(^Eb`Gcy+Z-ywH-;+}70OijCOM z=a-iJfV0imh3-{Fl|9p%y3o=tdp+20jW{R}q{(7fJfn5RH@}FYPNd6y`#;lKav|wT zhs9w1QdkrsgQM4FEC4N$w&AHd{bndeCR6L+n`aEp`WBVti&^gFbk!~Fuv(yiPls%s zf2ysef!YC+Qd9uO_fLE|4h+tFvpvfHSmyUm{iyf$9fr#p9-R(vp)|?MDuO%8i-od> zVHXj~r>p19*?A6*ujh%E_grrn;7+qp8>MMf<^2hpPvMSxS-60Dm-F&-b~i+hJGnST z_N(dcBdu&FH*eEs;!i`v9rA3m6@Je?=1tqzsQCVq;F;Kum)^qY_d>6ELT`zcuDq^; z+4b0#tM2uD^+nrlFvx@fRkt9-G;Zsn*Yp145gV>&yN24Nc9;Ii$cya^Udl1O=rF%* z6EjQxUtQg=z;8c{5+q8ZxF?<%b2=to&qs(_*pt6_FOlphh>sWq>fH8_2MXo8@oSAr zR~S|^wtw9As?~qo8ND@yu{+?0Uik%c4%)mV|0e}tsgUjap9+Z$*=JW%zXly<)Ri3@ zR$*_YA(7`(Hb3acF6yTE_s^|2inW*1X239+8XNqzDs!sDU#9*bbg`(Sg!jsp_w!`s zSa?X(T5GLnFgPzai$K)CoKU5zZ)8^|i?dej`9TLiFV7-KTSt1XZ=VnZ*6j*9#xGqm z4SiQMh>d=KC-rcVd1S@2Hw^q~BWn^rU@9*VpS)Qey)>gvHu}Bpc$lUpRG9+XfKqzM z1gh@|QL6s=<^2ZvsrCWW+vqE89^*Zk?ph!}X7a{E$ zG2G^|g~tEn1%Ptb&+MY{N^f|5OJRgSDzQS6xdsEIX|j`8AbX9a z(E72_2VrY56W^lo=4jXHz)5)>QZMd3M$9HFcLnjmKnA+Kuq3A~**n}O#Y}$_ai)H% ztM_y&ybn}k!Y(}z32h_kgSMJ%>Z%4$Oua#X%0fw@uzj~uQ82WitQL5wXg}1@@W!U` zA#6Vt9W{yxepqJGFyY&MBi$2%t5WbFuAJl9Oyv$^>umm`!kH+PDfd#>rdl_uEo*V> zcB=VCYdNWBzcgrr?o(fpAHOI!9Oa9TRd~pS!3*$0GQVnc729bTKa_Nfr=|b~-%vC0 zkM3&QNa4SDWopKy83+6NFp1b;08!lV3z3pxLnCFMiOi*GDn1WZ?KHf-Gi8*3C@%OJ z%tQr&ZF@FaESN#jG-q&V{it<#7Wg#1xS^_Du(U=dJ~B`Tf>D=)DTbl(R3WjOF^msb zdx#@zOD?~g)bu+Zvq)EH!y4)Q61EDHbgp)7x;;&gbjNUsK%EaA)Clwj#t&r$dX1lfk0s=m~*<2$jvO!xigjV;vlpMaR1&e0a1iw4lvICkKZqM5v zX+I$=>3zs;Cn9nuXQBvmm~YOA&goyT06tr%=%Q z80p3uoi0K`+REqLohIfYXnY6Z{Lvmn)NMXo^hBSq8$(2f^^G>aW&f`(KqY9HYbQ^3 z>eUlB`9>)fPq%y?@&)2vLi7JTlK0;G*u${jfd+}Kg z7E}+JB!pPU@^OoOJU~EBAud97;|>t-`HpM05ZMbV8+vscS^NP`+WTA&-}Qu#wh>TzwIrn zJb2ES*`6`y_E5Mo-PMfCF5Womvj4eT{dp9~7?shlDVuX^T1)PW%p7~SIDgFVh~nd| zu#-frzI)=lATha>qIINXpCEr%sz-3^_U1-(&i$}dHt*t*=du2EvYJSqCw19(Hj%!Xn}Qd_m}Mh9X&LlgVq+7N{-fV@n~0zeW!h6& z_t+w`bhGC;W9yRqExPytQ)0!vPEJB6p1D}X%CWyOGxHrW_faWN>gKRvc-7`#Q8!YQ z5c4iK5>3_3R1_os+N26~w5G;cuq9M-&0OKYSJ`Ssk0#@aT>y$ii z%l;kA)T|fh<5#CVol8C3@ZJ_~Dd1l%K?% zybapN$G==sE;INYj$RhAOsCJVi$nLkl|yGfv?~ebdYs9rd0v)Aj8KAj@5WB$6rtl7 zz3#GQ&m6{WHZD(Ur$&Df@*CM;Re~j7zBsL7HL7%=L1aAPy!A>Lu@iA(Vz06s<$m^p zlue(dcV`JMtAd#$#Jn5Lj*5^#E6LR!f2anQIA=hd{FP$vgD8F|8Yq}NDe0NP+AVgtDdOcCuygimvA#fljZ`_Ehxv-b+vbnZupYZFctDzN#nf5qy zh&?uJKRS?$9h}WuV#%4C`}8pp`8q<3CTSeyu;OPG1Pc9%D&C_=zu{Uew?(o)3V2-KnP?z32_7U(F+EJ~G!`*da`KaF`z#TM1)VD_;6>A{sTsl_S!J;dq!-n;da7Y$$&9H~DIa18#9vKCy-z;PEY zQ}=oX1ujDa^m>=V?3scu@LH(6^pI*P9$z|#9yXV0vG%JNB9 zvq#?Tx1S#%?R;#_o3m&l@1F;yQ;1T{3xo(m&Z_6Nlkp$RN&pC}>|af9ys69%|Je4e z@N_6c2K&QQnY0$7ikLE3pAjU8cK zCx?N>E2;T@>HC&X7~Ss-3sB1aCjn+rj!R;rH>XC!(OXtKvEaj4qw(;~16Mv{-KSM%C|B_%jm+2%-uDqLiTR`0z-( z1ZzT%ZjN9`7m*QQYpNj~1A3QYl9Z?(>MPm>%nrTQv88l*ZWg|w z@$_Dx9%6J)P+ z=sdnCX8cL7$6|BPIub$9)xD7!se4LzK?Sa_OR#fgdb&G~SbF*mFDL;u|m)BO%6n(;D2$-!=?eUmQ#17<;jFAkq>88!(P zyLy_-aj&la7iS|CaAiQA0_Kc-B>sxZr|HzorC9}y|Ib)aDPBgb@5{mS-f+IeOm_9? z^tTR~42}-W{^%j+0arN`#H~9wa<+P zLN1{%rAnL9`gJjmh$kgvna>wH^}A(n7WU3td)U*HUdR2!XLD!<`xOpa7(7ZUEYOB_uMeOOdr@EN2Bs zf9olOGI%m58Gs6kYSbh;qQ=@TA=O>$NJpK-nw_BCDab`)Vi}Fv^4qyO6-c#91kQ!; zcnZfi*|evD^RpSwVQaESLo2(-Hv1ijd5YilNYtr(Ze$zs$4e7Muj9vMV!We-{GnDf zE_0E50;X{)`O2oGTB3NvLQ4CG%*GvX_D5#LOie_cE+(6CJjd+L68AY~2T;*T;3VE_tfohpoLcK$31JbSRa;j`({QrgUR$JyvoK!r*FMo#Y8XXMRcbG1R&!0*V@=+f^eHo*@! zrt!RLv}5brWX`wyexIto?#ch@5UCH6*37l$USbb3y2Ljt9J>o`j%KlspxC>BB&GR6 zmgmS}yQxG^wT2jOk%3P@iSj(GOh|b`A^K*`-RU*nvTsd0?X9Eum4B0q^oM}d0eprT z04Yd4H8FmTpk&U54;XcLxJ=F@!;QK|S%z2z17P=4%SY8C;dDAE56pfBjf_G8R8l@Z zyna@!KWoFH9{tiaZy%sIv5hmqF-r1aMOa~h*!`ue(Y|nKNH=RZU#22c!w<9>KA!M- z9lPtjf2nO2NBw(M3DkuIBO&i;+PriyD2k1!UDZ|6)rCV#={bf6onpLS)OAXvs6OlM zKKy;OW$qCBJsa#o1gx9Nqu&qh;yTGJlP5HR++7c|Y!e@witD99#@?i7pUrbFa<+)? zDIUK}s{29y=v!iG6(_X+XR};v`-rAfnGzpsft+hpU(k+UU_-}ew-hS%F$_EMHRd-_ zwueBg)fo!jZy{rceM~eo+1Km4mXA6x4Dlt94kA`jWjJhXT^_>8>(RR!M2pw^W|^dA z0o9WkHY;?{b=Z1CEPV#wQ7GAxODGatIH|ZFT#WfV@v8CnHu%$}Tcg_fh^3HC!IhEz z_-7w^S7}%_3j*qFO^ia+YFW8wHN4$M zAm#u!#$H>xBvuZn*LW~{^sqkue6VPGW5B<%R*-J$+TSOE5@Duv0MkiR&+tI;fGP~5*MZMC6( zOO}Q4g!zBHfWm2GEC#(P#@01v&|lzHv*?VeF4qQ~gtGCG(tiiZdks>Um!SYZX4`nd zMBTtRE2a$Vp@a<)u*>@zgV|{l4JEO?7oljEq-$^(JxS4w5$A(uP@5M2ma= zH3q2;H7Y#mnp!819U6_P2jdBNsNi{3Re6JA)QMXfRPxv=H2zdk^9}v;mN3yY$-PEx zHN%)Hnn{bUn*p}$K3^XlwrbJ;)EG~?(HgP3b}EbqN<{>o9}UyxQ#pqhSVQ5a?yL=5@sdlQC@I2yQJ($P2}2Y3*+$sts+TzbIyIKQ)SsS;ej^BMX9Tg#D{ z;?I!aw`87khLN>sB09mqVY*kJspFX<$Uj1+E1FdVm(GPl8GXt}AB3o4Y!RN%1MZd_ zpiaEnu5>N)iIREzBe-}tn1)9CwwBjSQrxXU9|q|9F~0n^^X|12a>ZfuyY(`g-(FHD zH~aQ*1o+I?7z%9Mn_U{uFoX@Ksa7^@KvZ$i(e0dy|7HN!xHuQW1Q;$axOAs}eqLV6 zbTL)+gw@|U@Z`ZF*z!2Hic#NdHnY)aW~1$$IX4qbVi9$7uoenrE#BT}fBx69KDn6E zY;w4K4v1VcWYSPBn3z82b*~?UNVDUOrA{`%@xtBQC_Y$iF*0kkJe^tZu&_+Y9Xhuq zPm)ScMF96^gU-G!P*!LY$p@fm%FRvCylbEeH_%;ewlD13-JdQ^{Q3Dgu&zPFReSl{ zQR$lXx+|;Gx~Fpi$P7j)J&>|==la<-jZ?(1?o-!AGioVHbDX={>>g;RtJQQ7cbqQ- z=MOy^fAEgp>9hSKYX#Gm=byWsf}tO>1218#431HjevEB0x7lH8B^}hm2O>U}c2BbJ zLwut~a?7)v`4loPZ`1Q;4uU#u#Xe6lJKvu;90dTPjDyLAwrAGU(j84ot95SSKHr>= zhwhcKlgn31?qv2xJ6ce3DbXsp8H;N!t^6bLU>TjKu@nxmj8{}Q#qp!<%iPzt&0M~@ zHU6Eet?n^*DdUz)Ueo+!SH)U@awmuFtTyv^>y6_!UqPj?TDOk^H{ReCoa++y@RoyUvvV)sATnGz|TQ~A?K-u}t;<_2r7>JM?NO@*A zhmyvu1|9z*v)KLMEY}DMl_ETOL=N&&A4sECjkv$I#O{mnHS)!i-zx zUd{I5Z!BZ!Qk9wjcBiq_N}(I!W9F)L^mKLglT@;}=EVHFcTy>`jgINg8|B3c5?HlOquTFeHY&3VljE$G61 zpyN48_*hoIqNixp#@g+DG+#Dj7?E*2fvYUkG6Q9$KUn!T=X;CZ%ycsUJ4<(F8t*TN zilD2!ChEnmtf^_)xcGv{gNUJ8#$H+sM_|NSg>240!(;VegJ+sgi3O=0_Gh?pQ|gSeGB+y-O8?-q*H7e8l<5&^l@2J96_6DjbhPb6(QG$`=c7Ho914o`HQeJt`3bModFfeylCx&n zy@|P8Gr%W%8fp$T&Cz0Q#30B>Eb1mLvoT!IBlou`jXkpP4w{+;@(Ms zFQJLl>{6x;bo%H+C=OWlS@j$A=w4|m30aKs*SnZvupm_I+81^bMv(S9(hOcsF;^;6 z3`1utW!KsG%ne0hD9Qzw^c9I-|n%qAd(Voa*D$@^G#9FId|IKy; zQ=u7_Z9^0e1O!&qdsE5EY(o%3g08q#=_FhrW9eK4I#k)sHss@myMaZ}q(ZI*!jog7sVxN#>JMjJ^_NCl-LJ z(!q4PRJqb*zToBUZA+a^{QvPJmyfy{qJGTs3bI`Rdj4F5tQsj_HB+D4mwxw*OLpZd zG?`Osu4=?V+6*fZ7_|7v5Qn6SRx0HR3EziqMp;=hPO=`_=z@W1L0MTz zffhH3jpCf%fHqQb=(OxNMAhw`By-my3m7$`Y~M_1wbnftt@a#>#24x zx^qD_2tcF67mxBVzGffCE+&i>#W{kCA&%>^FeDCQ>cwxPb(KB8Za*48fpH0E+1_MY z#Nh?#>;8ok2Sj;nf=-Y`VZkTuv6-)!;2w1uaqL$*gkXoOrk$^mOHEV0$sO2jNf%u+ zj+~V6hQik1X+(}EAg0}|8?)v$bh=EV%JnMXjRs$Xy8?+5w}v_?eVd}2Vik+eHlECr zznk4?&a;S@lS7acvEy?WCP);dT@P+RCi2;gy)|l;D$#V-h9(LHVQ~h`+L}DFJAHgV zg3PJpa*iaGVE|r#Oxo|fJbAz5%RNkuV~RlqZ=epZ#t`s$d3jZ-o!M%z-|`Ch^bdB5 zGe)A0DxDmXVQCmUw8i%3<9V5oP`XFd;?sUFr~-rb@6}_}CZ+WJui$SXsNm-6&rJ-Z zf!uf7tU*|JV4;o#xHv_uL;@P7N`)m2?vW0*Ska|WP&-~$v!Slajq~X@$?Oa?s%;j| zm1+;wC)AGeK)=yuakPF>)Y={oUp~yMQ-SXMjUK+|jAeJl16xi9>$HEbakZ`xOF-lv znki}q6I)AEO0R55WR4je|4j!q^uE@^zc4XCXYDWTFNU%Fj59NvD%7r6MFJq7FvsMH zrX4|UfN$E%libHEXX4>IStcW8OApmt1#AO6yem_bP+sh-jXM>Ie$My=-cihl-O+lK z5|)TFOblwlWkezEcFya5y93t1Gov~ONL-@wbai}A+4mQtD~ng_W{5BJAY95Sd%5DL z^FTKl>2E`=Qt_89RD@4Gl>RQR7TJs?y-Kv#e=1zd^>|j_ooujczOnj1nJg*g{R?giQoYv@OG#(N^4L0Ia-4EC7uZ zHh*1JQ;haaU05Y#5sWpVc1IKdC}1x_PMbr8ZLh|cMpMk(wDs@?kzhoE@V){;Ur5;} zJxD=ZLht)lAef<*1G^C7IN}ms0~0KPuVn&eVX7M1r4J)AM!URd>{`1a`A-uvY-XW&wn3I>dY#?EtR5mEZm~e`UvMo!8 zoO$}&78Ac9E$U!zvZvS13u$N2OK)4r+$YU+vg13*7ok&Bg(O_IU=kdrrVIUzC1Q(k zPnlxO)dP072O#BN@TL7sg%9|}fphZBAu{mGW%gptI@lMWf*t@6e9>0}sr_vA`d)@2 zPF&wp32Y>Ghr|*Z+UBLC5-wO%iwDyXMVT3w`pZ&(87Ar zEXn8^#qQ=H_ugc<%|SImu7IP-myLaDH1Xm7P~dDPwV5C&qWOyK%Y=LQet)=FjN`)g zOcA`6P3S9@@quzPD${NV5AXYJTrdIW73-M*Bv+*H97~M-F=oBz8b}u@@SWsNJ~kO+A?s|Mup>bw<|9AOHq*jo)x zsCi;<)ST?d87OCKYyYyW*3)>;)wQ+|ovf_xc<*LXPeghG zIbOC!Bg0T1RgS;9jMoW2^L@NQ@XhOR@dk_LO))KIw)OK~5tU|!6i2l81y!pw+T^E* z=%+2yA2rZcxGk6n0u&1l-T)h3&3(Vs6xV-wpmpnJv}Lle8gI`f-?c)-7R#gsXm3UyJ42avX4A z$6eO}7V2l92zxfiu$`w)X6YreE9zW7U?Y&LJ6mVAz!aDPFp(*#D&m~cQSEYeKO#g9 zTVLH28K00A>Dg;9 zXLh%e4hdFBXgt2-UDc!vg6U{yu++v7(>ggj1#i=^)yj>yd4EK|?bd}{7FdU9{VY4Z ze^OpP$;tk3S6&JZCOd{xIO9$RGeUG1qYbLpv_*}$mCF7ZV22M8kzO_rZ(qGlxKwKp z2ahd$d5f^~HzG1vl?B2M%M9aJf-dua4jBLQdA4m|01aW1oj1vabR@Lbec z*OXlj?ZO$THw(TjGdhEZ*EarOhR47$dv1j)mUAB;Fkmz?FUBFAoiAN$Gej!28%<(;EI~SgXo*hoXr;>Z{y){3e{rO2AX8JqU#Y*1leOvdf*Mo_bJpd*ajXTipN5p-|y>%A=2*UR5>o$VH zpN84g%ACT(Vkepmhwti0$X)bXIDn?A7a`6DEVdD%VCLM@!sK}QOBPk2Xj z3pC$(;YI?jAw20kIw=qRsGa6Wx%C+)-osr=;GK#bbC29TMz~3*FfOTTbngC_bShEe@kTf^sd`pA>WdWq~Wi!9ymARS{jgy;l zx>C$g=l2GgA`Qrr8Z4^XIb4OGOTp}`#+zI3y)XS{==369C~i1T`nQ)k6dG1s`baoa z;Y3El(k!d(cNtRG0tk~lOhwi`>~DGjA>5t6MJ+a9srUb;SJ9vlrLF$t+8kVHpbc$! zVUqo9pAbVH%UUEI+Gy&$UhLl2I7A+=BvsZLf%#LX?Q$rXqO6*&qisXWlcO6?b-D4G zsL@vHbIm3K?Npd0SsXE0s6oDNF$_x%Y(ZIWNM00;O z0z{CVMQ$pKyw#Q?%g-k7F5KB>c_K=T(klV`_BN@0Z8xd2Ak;!bXAse3r)B3l+R(}( zUQJu}nU3qjsJ^A#GyTjX@!k9U3ts-F-L};0=Z75$NM&Ptr z-3Ap~hdM`c9!4Xe1 zS=}e+W304udP5r$UUq87=OLJX>dgGvw`1f#^3*r1p{2-fBM_8rNth<^l3Ju*Qmx%{ zG+^ol=fDNV#1x*Av*?o9p}&-|HXy^(@}8iht>L2o`KEQo_jM8>E8x@kTsW(vyh1Qm zV~Q;VWy9;W9I$Ks^8{f>Lq78n=Y9Mx@T&ZG4+US(o5y(GzZMaJSHqVxK2mRA9srea8c7tYa8g76fVxQT ztJTd4Ex)y+`=LA)3oV$zkHBFOGdj0+i6lMETE!V4@9EI7M{)LA^OdkY8}a10#&~06 zirlB$edA$I)--L!^{C2> z6pqtNBB0wsEZ(wDj+e!5$QIR|E%VKP5Z|ZsCWVJaFb_7Qpt-7~kjxH@Qoy^DrcNdQ zR&+bJxJd{U|K|>C=eG@Vu0iAP z&kn;1PG*@Hobps!VSc$`Klc!3WzGLk;75(7k+|j?)Bz)JKR*EuoG64 zHEfuWs13sU{Y|4p5{`y$X0O;XqPUASX$e1&KW}{SCg$&#e@NY;2=+yhF|8||owzWsjRz5l?iANqOvoIdANSDo6m_o`iM*?9mY6>31s)-}?J7Fd^% zs55sKI0$r`Y%HE*i*_ya?MuiRs>X=8W|#mLF*?x%mx*(9sJxupNrpl$g@3i4>%=U8 ze;WA7D*^rCN=>ly0Kg8^WvcDRGGoCiX9e1@c9krn8J47l!*4baVT`{RJr_14(aePR zfd>kdaZc1^g_M0%@1E@to*7$lx>M)|!>Fku$wpI1W%W;aNt54t1tNmHrAps_s*92! zA6~$^Y8mN2efr%mbPjC}MBxa(B@&o>Y^D<+oF0Fh=^Z5sM-&dw%X$10KlHr(#;Nwq z9T<2M{E&0>0mEpdmhj8WRti-W4t!rry@L{vK;KZ`C>8-!h6E)^g8X91RE^fE{G|Ov z+Fkj&s^_t297zoW#C>K*A$<#wDGmgFi+7tssvTieA^CK+pL1!h`s_=`C}ZMnZ}iIlK2J1Ji+ zs%hUK3PU))-2NxG_7l?c7l>WK44Is6qS50Di%I}mwgl1STL{J2`60MKxpyBsom}!~ z`KE4!6QOCn{7LSbX36z-aD;K>cPyMd9B=(HaOOgBRvc}<{p9I0wa0U@JGyP_Kt0re^B1n&x*}NTOSxNy?WAme z7~tzc*k;;Nw-1kF7TzWsA8b=t(kw5?)dU!3{(UQ^>X|eYbhOo8f83ly7jF`{iF8Qm ze>?Mn1Z4f2FDiX_xB#mu3WYquQhEGZ;lJvoi@J!<{mt02eZS=^b43aXYml*maM~b1 zP$1+BCaHo3Sr=p)WF?-#kw``aPU@DF5DJ-;AjNkwX5Ybo_qIocN@8<=f)f1pLjOCv z+4t!3<8qb#NdJmtn9CR>B44cq02prx9n9i<8dTFGyD!yd%@pa(&vbnb{rM@3p#P7^ zv73u+&A`2hnt`00d>-d-k?b#Q25nw}u8Y=-5@){bW=Flx8U@s1 zQ`@1jh6U=mi8w1XC}3#n_`A>6_KeD^j_aSCyC=`38~HSSNmwv@M*a+=+3%^S1M5(O zQmqv_622(V(JT{e>gaHZgK-(b!BqZE5#fe?d7nN*$v_J$E2|leAXK)@DSEAH4*b|( z)Jn}wO4VqBymL{KM; zV`x$!MT^v}1q80P)z-i1a$c0MSScn4ny^TTz@fp`f*kW?nP3tXKrh1x8?Fj4LMG4z zw<42{vf!`1`^6uZ6Q>B^<^yx%1uHyf%XucZU!uqKIgHfnNe~<1%q~+JOnJpow749Z z=u$o{r39)ZkeNUolUX2uG;9x-qyQ3ef`kq(l+09c+=VcN^*$Y?U`dTK5EmNER6E9c zh8>H4T&w3p;^i+dN^G3R%fpl<+Xv3CpCBr<_EciZ0!ZAw%ONNUbP13aXCFX>GMYpM zNNedG_puI6J25&sdJhHs?&H&*ooyf@5=bH2wY0fKMJ>Culo#&pGYbG8hcHyA^P%ZcVnkXWD8S#gfB79 z2QBfl-3FIMGgm;zuUkzbOU_9w?^o17y=co7iQ)n8<-?T}29TCy&_%#i!zh6b-hQ$x zSBfmPOS2(_O!GkKHHC5j&XgyvONyEnWK_t>@7~_Y8yUc5j~Vz=OXd9L=A{!&?^HY_ zr5h_YYwYbrA|k~6WlenN7{Tx(qTo+;Ph|(q z=D)e|ea?3WAF`dKamKDNNm#w#G`T-IcKTZp>NR|vK?!3v2jLYWmy*usc5-hKDOP(O z+#T-cwYy>+-Yu4drX2}$FAR8@o}?LJbLdhOD~yNaZz1F7B$~6XBf!FftySQ#xw3j- z7dtgE6N@n*00Pz+pT9yb>8T7RekH$b=OsTjV~K(K>rfXazuQv!gW6gLF=&w#0)8#h+ znH#39G}EhF-s!!kTFC{k5U>8W7e$Ed51-*Ka+no%5!l4Vp&AjB=6e|bDKiuFG4Kg+iYfTU7q<_~9iveVb(V2NLGgV?CeNzvAlmgb@@%d$RHQy^bJbqt#P3tlxq*u3zAg<@GZJLyASLIPo=?Vc|epp%Uai3651 zm1=xGDv0A-etR|jxK7sj^(*TktGE!NVRX@8RJWlZC(!1)P|b|UE_p66Ig%+F<-HO9 zT#R}ZiXznZ0hq$~+MGsQ<{xko#Q;%()O|9fhmrO0*W?I?xVlBd6fn8^Mk%p!idVk- zZ~V%0u^FhF*@q%@X;wI_o@9Xd1BWhBp;-DBsJAwSiCS?TEr;Zy>gxa6L?t%T)@kOx zcFkf`+C$-jO?goa6Nla8rpq$G8(K2>x<*s|w)~Cl0}d!-`x5!iHcid6uqhP@Mw7Tk zrV#X>&#$6H5jY?+4qn_`>7cNUL;84E$(y14v^=x+#xGM3-#7v zH3D9Y$+TigE859*`KcuIwfs}SI9b=TSj{-48zU!xa#jHW6IGcGTyseHT6W`Oq5bM| z+7knerWjzz-T6F*>yr-wpBI@eK;1miC4vD`jn@VMcediOH|I5wXu8%iuixO3>JE+r zhyy&x>znGdoGzMPBXg&{J+#yPjTS1+zmIRePl4r9ZyFGB3gRovTGI)7#38}oIvp1> zKm*7)u}YagoL<}KBhaDfPYW;8UsrmFL#Et(o{W#~`77-ofw`B3JZ%8o^

P2{crFK&w!0|jQbyD{4r;s(A)HTbQIz6buPmy@|Fa$tpLk&) zhG=~l_z2xD%_?c8cV`_=__F9|xX#M&qLeWJayRE_O|4CY&AADm*1w`Nbv_H-$`>_) zPiOc**699kuh-$Z%?|I*vt~r}TIaOoocHClrH_Pf<67+0)U9VsXqAI=i5=&Wo=a9w zb;JOG&3EQ)wyOvC{m(Yx_j>#F)CW0YEl1t^lcje)HOE}4I=91*>;1|mYMa=Ae*;v( zI}7#Y4NF87m&s`nlev&4ySbr{)tfnbZr${x6a_L{a-a!mzUIF{YjB_Bo@(f^uf>pm zpX34rGui4BChZ?i9Z6Qr>sr2;jrx53m!>G8NfQ7a$}({SpMvl019R+}Aeux&DQ2%Y zJod)}LG^hU3C?-eX+b|N?YC>S+FzKTJWB)|CVkaDW(Sc#Dw@%GWbQ+v$!fa>z!@5A z;J#%_qk0|8e9QXX9@)mCa_+B0wM7T8E$$yO5e)?m=hkhqt2&EiNV3Q`3-ov-CC&X0 z6^gN5j}`p8f_A)sVyiVXCC46HUyp|b5^Dc}Iu}CR{hgwIG1t{PAffR(XoJ^kiR;GWR_i~FyY=SqlPg5 zjhf(qh}4gXJjlC@bcYcDujQTwG-+N@8;J4R9va6&E^;RfZcG#zKfliU4kbGEoSs{U zhxH%yn-+0|%A$il%iG=nC!rTI{Dr=zkk?H=jM+r0;)goF?-zF5Ekvbc;4Qt4oID!ykNaT*wAWwT!gV4a(^=uvkY(!)pbL`&{Mp{- zoA(~9_?G?E##)EocqVi;597sYNltmrFL#LjzUG%iP-;XCmo!3A8@0|~PeWdO5%}d1 zIe3b?Z~E1^DPR6rIAVjg7upi*Onl;%ox?iW2L__+b_Klj?+N4C8sxm6+`-jdM#Y_O z8g)0LUHYC!YWq@oz657O725H4gH-E!qjQ<@k5=n^hxaW?6wf>yqF9Sl3;cxHj)rgFF!D}ixDnh(CIp1u z?0ky6t~cL~?8g)yWG&Kjs$fmASW%d~rjp+hU6v}thavf$z7VfSe)oI>28C{au7%n+ zEL}|8bs;$8!oe0!XE|=Y>$rZwOnj4Zxfsp*sL>I=x_k0adfcsf^s@lXT0c;9CdTj0 zU?mYT9%y}H77Gs)habH?$zfY9Js%9IR>(^7mERhUEKJ-BGmt6-4Awxe4cBf=)Q2aptF zfjB@&2j-qWd_k1mASUqJtY6sfwL2f&(~8KtY*WTzAQYaa##0@Zi8onNn0 zjO>MdsK&)~5CKyUO@~3V`P0bwaeEllF(=yMy8K9h`qY%f#J0o4Dt@+)Z&9`VzSm|m z$l1(d4qT)%-tUw6`~^tit|ABR}0=?p0}6}(OS40n=Q zn5sZbUhh$saDcKE7mxLLUjlG}3p@3QqXm2LVpuRvjzwTF09K^la>*DB3{YH!G=&`* zY+gM+vq*y_Fml~lG9^Y4ii(?IE71oIO9OJZ5C=wqnuh`4UBsiAKD9NoiOoZiZ!?s%=)sw<$QO4L zfqRU{67jVkUK}*6s#Wbb5*eqc6pD%}izy*C_Oc7nX076pM@ z$1BBS!8KnAv14y)fWPep6QJwMpuEZ;jD&I~cB9(~z=6m;@q*KHW_}+h9h1hDn<8+LC zW?DE0<|a42pBYU`aqPC0(|$ezH8Xu?286p?EN@gWgsn%5f*{DV)U)R7S3b6W+iHEL zwU4~(PXe4z*K|=QL^hNcXZhz{jRl_ZHw zWrE-W#r75~Sd76EGA(L#9e)%Pu1Q|(^YQfSh zHH{4i)ypu$s*TJ~PfqU2nV(!zTDrcv3Iz!%leAz<6t{OcmHC8HJ3%Hfv=sHR?RR4! zxnFq2B=0gggR0d85M;26__7+MOg9b>E2yVZ8PmU;%@U1dV(Mpy{ zGXJ1$%`>meHVqpP0eC)u+;`N0dR+2e+&#G_II$&0;iWGcD5(qf%eFRt}J2P`qzX&+%u91QSm1hhjXWWF9#a{2nFK#vFKx)hmB__f>?YyTDBr z7E?87m|n)5FWhN?AqlC*TY%b>nmYfbReyvAYHchanYIhm{JJ($~y*gThL8HL+Q1do`v@xlTtI7e09XANPELG7u3me$xW+K$54G_kRBZL63n9e=d^O*dxS$uv|680c^6`ZtejrGKr38pp19JwD%n2tG@i$L%?% z*{Q;9?v}b5YN>ef@iIa)*pHBbcZNg+f9wU?9xG~ExEh*cVq4m$&7I#D^^;&x>)iG~ zIIL3k^c*({T`WH;mHwa?CX`E-F;xnXbPD_Xl~wb44y@&}*-l0{4QKJ8r1=(Zx=${8 z=C@-1Q@`vMAe2}2e;CE&K( z|Ft;gJWL%222tA%eIPgBiFYK)k=XY&yplGzi=Ps35byy?kf=WmfBnfL5z~3r`6+K^ zwgpPtC$4B4V}>P-Yi^DEc)o$un4K%1As#JPa^@s5>gc9A8ESh%THwC={nr1eyTk1c zTGQUqh9*S>R4$zR3`oaQmq&N|p8ka3eJFQ0#1LkhW{K~xP!0^kb~I=!wKffG*h>9q z+UWeikp&O_9F#TiYoaqyLt_8{65c0C@3=*2QeaO@^@u=D=I0p6f)?Bz%HR5Q6Ll_+ zD(NV_L2H~rT?+_PTozdc`zrlO7GbDpJagh-*xSuL;;4{C%HFZv7J1Pbg*kmUYa*p0 zzNu!t6T-p5ORHq?kJ|b7-~8`Hw2)xF^*OJJi~#sk2S({hvVJ(eb{r&#N~iOrspF4TxtxIxo}Ql?$G(npQJ498&}c5X zlQzS2Xss1RD^}J-01j&sqam=JtTxL-+K(ikVl@usYOVF741pxo$~)%(6^dk7ZbptQ zSxjs4M<}XlMdJ$jVM3kjyOzVuP0*ZYX(lN6^BG{1dPi3s-J}|{%JNTTI2}`m=0Fq+8g>+FqYD#G| zn$1F~(qsJxzL{ARWCs0Q_r?WYpJRn`Att(?{hTiMB(cAuphCS{MrUdHq?>e!giKC* zTzWQrpHUxx1fDa4KHSul(d`UXm2-@K5`#hGm6O0I-jsMUin$?1n@P~sz_AXgxNk)s znsor}9c)nTmQ<=#+Z26vZiasn)FUTHREiN@@$pQG7alh>M8^DYkr&=4PNeUH7egEX zG5rI;3X*74Y=u~$!HNS>WytbHz}OisZ%IYcP1?V@m60P%SSZm+1>rmBLnwd?uQ_VwLtDo5-$llYvDuY&WFOSd7u_Ef8k~33Av2f%t#iOxpmlw!uu~I8rXXqn& zRcGCi5pmcayeVnt7L!|Yc|G0mTC~rilqpP*6%A`o3DcZ*`YUOm>(h;zZJ9t2bbB%` zY!INLg^Zhs`>$+xDXD++Cj|{d@3J9f4c>q8KOC=?7_%~6q$%^yxr3h)=pF937dKBs zE^B%wGvjF-4RdDa-(YGgm(MtuJX}n`H@jx#s7OA2JeSFn$~k?9yW!qcxED z*A6>f1EP8!|5VzH&He7!EnfCq@oMk*-a5=ap=7<4DI_#~z`el0+LEjPa9g^@OZ?7X za=71J$kd$}^esRpOjXvJr|FIZ1B>Wibpc4I`7N&fRSMF3mF6>;J*jOvui)UmoqOv! z7;;MYerNN>kWOCGb?0^Y2tjGeYjWL?l3Fq~G4Uk#J#|q=>JUF1yzt+^RqowlJ?F$H zzoYhM{8>C^F87n>)t3dAcHhtKr^h4VN}Y$zqZyi(%5@|C`B}N9=n_wmI_M6rMBQ5g zwXomABahZ5@tYL-teejTJ+Z@dIXkK13Ez2nykQslmO^;7fSHfKR8zu>nK3d9a?`|@ zx8CJ%-9Fv^dcuiODjiV!{+JXVWukY@7Lybui|J?banqfbK3KdUQemnre(x=Tu+p29 z;WS!HuhvCAR_u#ViNkQ))Cc~jvGL&?rVJ( zv};Lz4Hn`ck65drJn<!?Im5`#;}AvMWX*Ut4rJ>{R=Z?V(ZIXr&xBTU2;XMnP8qpoc~U<>p91-A< zw8-q=*Teoa>+Er)IcZc|S)c}&<>oN&?DhGQX=Zy^?)c z8g)6yg)9y%^B>=j)R9}VL-u%*MKEUp0QwtG?%S1w-X7f`hJm_N-`Ip7Ha5k@AL<*T zVqzwn;wvpIURhyP#7^TJ^ncE*G!n0D30zheq5AUle4Mpqt~<7SswWev)q0G@sbO>l z?on>$Q6CDW9y6p~zB#)}X5u~fE)ZaBpbgX$f)u_WVH*fXz_IA#N<5*Jyib1nCh7B} z;@WTr+TJvsQAsq8xbfbcaxueq|}rhoSSEaX@urtCyva*99Z9eMv^f0^H(g?3lpE=5(Pzf(_4~2sqxZIf3LcPt&~Es^ zR#_(do9!u*;%(Z#W@>eT=khVpd0KxbgV{5uee7amX;qHEA@glE8_oeJf~y04f{(2B zaMtiCNF}n^O^geQM86Bx-G}UbI{MvgOp%@ri@RP0?4?z%^zJYWq|+0P_&p8tw44_I za-8PT<)T|#R|?=17Ww@Z0K)PAt)w};9b7cQC_?#|rHW#Qs#sm#qM+~yaD8nCQ1WMG>utb=ZsXyp~XHi+&+I_k?mJ)vQ zGSq_R-+|Lo6VF$qxGW5b@!;1|NflQzfqX?Qqn9oZFtq+Hb7J^?i3e2oa z#uKd8Z`rX#MVNs*5Tjk14>;3sNH!=~v;C$7c#q5oBa3;}sLT&D<$kGI{wNUL#RaUn zbsNe@Avraw)Dp%K3eL4gHG1L$%o+a+%%|pi8W{#|aV2(kE&V557|05q>32$5CfG@$ zb|2DNM4$n%lId`5j*ssFNRJETp*qkZP_&D>*ICb}@6^z~6=0|kB_&;Ci4>9GJIU4L zIbU|#o;>UfHM7&A3Q6zH6jM;Asp* zk_rlQQk(tB5+fvPM%P6kqhS?ipM;Ls>=$#yaytq&bcwv;eVrfY$v+k`QK`cIxZAn= zeBTRw7U?Q~UBLTA3Y#z2vZeeVm;tKUDd*?URW<3??_i{eC3FoTmeMNrnUU=k?d*Ti zg0*ujn5}I>6Qqihfu|W$=zuy7OiZ3*vJ`l`5|N?mT1N@+e}4}kCf?aaM0BRjCIi3& z^gHXj8w)IGq7!wC3yP7Zq`&}!ccln+>V+J1i;FqsAb&}o_?TN4o0Kl20{$^uO-jmV zofZ_s4bG{jdlzkyG70@v8Pji8A^?4=)z+w@p`Do3m>*<;EmNwaLp7{2fDP0eIKJu> zs|}{_YzH)5(^E13RT*&&8Z!fDOj^mFKr#s%!m&&2?DzcV^t~^2(MYSU3`ts%tHoDM z!q$b$e4o?Zy8i=XTpxGKzW3OK$jI-JQVaFGY;UD^zm61J78TNEte`+dB3dVbrjM>8 zy(8R@#eR%0H;own8+-j;#SG4!l~|S=;hwOQzQic*^3QF*2YdVG=xSQQmbNJZKyL;| zoGMAMu?Yo`c7i`F{@cyPE;CL8=$Z$@M*<#JuFEADO@{Z+Ov<04iXNRtYMVa3tt4>Rq6I6Yev`0!uPGJSxz0nExs+?Rj-Fwba$UeBNkM#)Ut;oz9_L$%>Q8o8sD0 z6cL?fuMMcA25AUGU|ySu)&qE`kJM$q;}P=+%tdmUwIn~2XfXzqQ=&Hjt+)+5ETudg zOxk?kr>Z~e1~3GXqn%9-Xtv^+)$MhP{jb>ytmOjy4>{W%tDEm|Hj9*lJLu$h5k+5S(cVK3!4BZ^Iy8J zmyx0aDaAJ1@DjTKW8ZQl>ym6WEnE;&Wxl2hK{D!oiPlY==-6lW>hJLSdL^v1EDMM* zNohox2$Q&TS>Yc7Pj#_>& zn7C)2pGHxA<8aq)BG-GLNjwFm6{?yB1u2F88ZcXFw05IWjvI%ff#)S>tlLN&4XzkF z@>7b%^z$w#eYe~she3(De}Gefw;o%|bv}MBw^_fb`Si7m$&@lA069HcDYv&SAb{1; z@yoWY9XE{E>0fVC(h~wHMbvIz2n+@~x(~(@EW4@nX3kHPYR?~MRULa-i|NYnuyqX4 zBIuH~bPVvCSCT-ANL{|uCni6qs(AuO1x2@(ogj2FAUaf-8D40m4m3q1S*jT-Kuo

KNr7 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

s{=NM2F*a4x7z`{f@+tam~yQ$a+F&(D6Q# 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 G@&A7kSz=HC literal 62935 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�M8_>!>pEPBr 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 Q0(jWx>ViJca=Q8Gzn&H4^8f$< literal 31413 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 Tzi>lB-dy diff --git a/content/learning-paths/laptops-and-desktops/win-opencv/set_path.png b/content/learning-paths/laptops-and-desktops/win-opencv/set_path.png index 383c095d90be92686ca5e13a8c7b408fb1bb08c8..b6e2d62ab4b2daa08af6a763bb70e52f95736429 100644 GIT binary patch literal 34217 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%0AXk9*N)V_6+JJP3i3 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 From 7483342ec0d0b700e781a111a649c547e65b0b99 Mon Sep 17 00:00:00 2001 From: Koki Mitsunami Date: Mon, 11 Nov 2024 14:09:50 +0000 Subject: [PATCH 22/87] add linkedin account --- assets/contributors.csv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assets/contributors.csv b/assets/contributors.csv index ac5348825b..d0e9345629 100644 --- a/assets/contributors.csv +++ b/assets/contributors.csv @@ -43,6 +43,6 @@ Rin Dobrescu,Arm,,,, Przemyslaw Wirkus,Arm,PrzemekWirkus,przemyslaw-wirkus-78b73352,, Nader Zouaoui,Day Devs,nader-zouaoui,nader-zouaoui,@zouaoui_nader,https://daydevs.com/ Alaaeddine Chakroun,Day Devs,Alaaeddine-Chakroun,alaaeddine-chakroun,,https://daydevs.com/ -Koki Mitsunami,Arm,,,, +Koki Mitsunami,Arm,,kmitsunami,, Chen Zhang,Zilliz,,,, Tianyu Li,Arm,,,, From c57c3d0f0b390bc857ab3157ee86232600b524e9 Mon Sep 17 00:00:00 2001 From: pareenaverma Date: Thu, 14 Nov 2024 11:14:56 -0500 Subject: [PATCH 23/87] Update why-profile.md --- .../smartphones-and-mobile/profiling-ml-on-arm/why-profile.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/why-profile.md b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/why-profile.md index 75ac1724fc..7d688a4ad6 100644 --- a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/why-profile.md +++ b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/why-profile.md @@ -11,7 +11,7 @@ Working out what is taking the time and memory in your application is the first With Machine Learning (ML) applications, the inference of the Neural Network (NN) itself is often the heaviest part of the application in terms of computation and memory usage. This is not guaranteed however, so it is important to profile the application as a whole to see if pre- or post-processing or other code is an issue. -In this Learning Path, you will be profiling at an Android example using TFLite, but most of the tools also work with Linux and cover a wide range of Arm devices. The principles for profiling your application are the same for use with other inference engines and platforms, but the tools are different. +In this Learning Path, you will profile an Android example using TFLite, but most of the steps shown will also work with Linux and cover a wide range of Arm devices. The principles for profiling your application are the same for use with other inference engines and platforms, but the tools are different. ## Tools @@ -19,5 +19,5 @@ You will need to use different tools to profile the ML inference or the applicat For profiling the ML inference, you will use [ArmNN](https://github.com/ARM-software/armnn/releases)'s ExecuteNetwork. -For profiling the application as a whole, you will use [Arm Performance Studio](https://developer.arm.com/Tools%20and%20Software/Arm%20Performance%20Studio)'s Streamline, and at the Android Studio Profiler. +For profiling the application as a whole, you will use [Arm Performance Studio](https://developer.arm.com/Tools%20and%20Software/Arm%20Performance%20Studio)'s Streamline, and the Android Studio Profiler. From a03f8357d8fd1d833beb79dfb8dccc3174972d8a Mon Sep 17 00:00:00 2001 From: pareenaverma Date: Thu, 14 Nov 2024 12:13:30 -0500 Subject: [PATCH 24/87] Update app-profiling-streamline.md --- .../app-profiling-streamline.md | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/app-profiling-streamline.md b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/app-profiling-streamline.md index 294365aacd..a6ebb950b5 100644 --- a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/app-profiling-streamline.md +++ b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/app-profiling-streamline.md @@ -13,16 +13,19 @@ The profiler can look at memory, CPU activity and cycles, cache misses, and many ![Streamline image alt-text#center](Streamline.png "Figure 1. Streamline timeline view") -If you want a ready-made application to profile for this section you can use [this example](https://github.com/dawidborycki/Arm.PyTorch.MNIST.Inference). Clone it to your computer and open it in a recent Android Studio. It is generally safest to not update the Gradle version when asked, to ensure nothing else needs updating. +## Example Android Application + +In this Learning Path, you will use profile [an example Android application](https://github.com/dawidborycki/Arm.PyTorch.MNIST.Inference) using Streamline. +Start by cloning the repository containing this example on your machine and open it in a recent Android Studio. It is generally safest to not update the Gradle version when prompted. ## Streamline -You will install [Streamline](https://developer.arm.com/Tools%20and%20Software/Arm%20Performance%20Studio#Downloads) (and Performance Studio) on your host machine, and will connect to your target Arm device to capture the data. In this example, the target device is an Arm-powered Android phone. The data is captured over a USB connection, and then analyzed on your host machine. +You will install Streamline and Performance Studio on your host machine and connect to your target Arm device to capture the data. In this example, the target device is an Arm-powered Android phone. The data is captured over a USB connection, and then analyzed on your host machine. -There are many [tutorials and training videos](https://developer.arm.com/Tools%20and%20Software/Arm%20Performance%20Studio) on Streamline, which you can refer to for more depth. This example will be Android based, but you can use [these instructions for Linux](https://developer.arm.com/documentation/101816/0903/Getting-started-with-Streamline/Profile-your-Linux-application) setup and capture. +For more details on Streamline usage you can refer to these [tutorials and training videos](https://developer.arm.com/Tools%20and%20Software/Arm%20Performance%20Studio). While the example you are running is based on Android, you can use [the setup and capture instructions for Linux](https://developer.arm.com/documentation/101816/0903/Getting-started-with-Streamline/Profile-your-Linux-application). First, follow these [setup instructions](https://developer.arm.com/documentation/102477/0900/Setup-tasks?lang=en), to make sure you have `adb` (Android Debug Bridge) installed. If you have installed [Android Studio](https://developer.android.com/studio), you will have installed adb already. Otherwise, you can get it as part of the Android SDK platform tools [here](https://developer.android.com/studio/releases/platform-tools.html). -Make sure `adb` is in your path. You can check this by running `adb` in a terminal. If it is not in your path, you can add it by adding the Android SDK `platform-tools` directory to your path. The instructions for this (and location of the directory) will depend on your host machine's operating system. +Make sure `adb` is in your path. You can check this by running `adb` in a terminal. If it is not in your path, you can add it by installing the [Android SDK `platform-tools`](https://developer.android.com/tools/releases/platform-tools#downloads) directory to your path. Next, install [Arm Performance Studio](https://developer.arm.com/Tools%20and%20Software/Arm%20Performance%20Studio#Downloads), which includes Streamline. @@ -36,7 +39,7 @@ Next, you need a debuggable build of the application you want to profile. - In Unreal Engine, open Project Settings > Project > Packaging > Project, and ensure that the For Distribution checkbox is not set. - In the general case, you can set `android:debuggable=true` in the application manifest file. -If you're using the example application, the Build Variant is `debug` by default, but you can verify this by going to `Build > Select Build Variant` in Android Studio. Build and install the application on your device. +For the example application that you cloned earlier, the Build Variant is `debug` by default, but you can verify this by going to `Build > Select Build Variant` in Android Studio. Build and install the application on your device. You can now run Streamline, and do a [capture](https://developer.arm.com/documentation/102477/0900/Capture-a-profile?lang=en) of your application. This can be used to do a general performance analysis of your application, but you will add some useful information first. @@ -237,10 +240,10 @@ In the example app the CAM annotations would be added to the `runInference()` fu } // Update inference time TextView in microseconds - inferenceTime.text = "Inference Time: $inferenceTimeMicros s" + inferenceTime.text = "Inference Time: $inferenceTimeMicros µs" } ``` -The example app is very fast and simple, so the CAMs will not show much, but in a more complex application you could add more CAMs, including child-level ones, to give more detailed annotations to show where time is spent in your application. Indeed for the example app with its very fast inference, you will be best in Streamline to put the timeline view on the 10s scale to see the CAM annotations better. +The example app is very fast and simple, so the CAMs will not show much, but in a more complex application you could add more CAMs, including child-level ones, to give more detailed annotations to show where time is spent in your application. Indeed for the example app with its very fast inference, you will be best in Streamline to put the timeline view on the 10µs scale to see the CAM annotations better. Once you've added in useful CAM annotations, you can build and deploy a debug version of your application, you can run Streamline and see the annotations and CAMs in the timeline view. See the [Streamline documentation](https://developer.arm.com/documentation/101816/latest/) for how to make a capture for profiling. Once the capture is made and analyzed, you will be able to see when your application is running the inference, ML pre-processing, ML post-processing, or other parts of your application. From there you can see where the most time is spent, and how hard the CPU or GPU is working during different parts of the application. From this you can then decide if work is needed to improve performance and where that work needs doing. From 4289d2e6f895f0aa1a3e839b75281ab0d59058c5 Mon Sep 17 00:00:00 2001 From: pareenaverma Date: Thu, 14 Nov 2024 15:12:50 -0500 Subject: [PATCH 25/87] Update app-profiling-streamline.md --- .../app-profiling-streamline.md | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/app-profiling-streamline.md b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/app-profiling-streamline.md index a6ebb950b5..e55e4e172d 100644 --- a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/app-profiling-streamline.md +++ b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/app-profiling-streamline.md @@ -39,19 +39,19 @@ Next, you need a debuggable build of the application you want to profile. - In Unreal Engine, open Project Settings > Project > Packaging > Project, and ensure that the For Distribution checkbox is not set. - In the general case, you can set `android:debuggable=true` in the application manifest file. -For the example application that you cloned earlier, the Build Variant is `debug` by default, but you can verify this by going to `Build > Select Build Variant` in Android Studio. Build and install the application on your device. +For the example application that you cloned earlier, the Build Variant is `debug` by default, but you can verify this by going to `Build > Select Build Variant` in Android Studio. Build and install this application on your device. -You can now run Streamline, and do a [capture](https://developer.arm.com/documentation/102477/0900/Capture-a-profile?lang=en) of your application. This can be used to do a general performance analysis of your application, but you will add some useful information first. +You can now run Streamline and [capture a profile](https://developer.arm.com/documentation/102477/0900/Capture-a-profile?lang=en) of your application. But before you do, lets add some useful annotations to your code that can help with more specific performance analysis of your application. ## Custom Annotations -In Streamline it is possible to add custom annotations to the timeline view. This can be useful to mark the start and end of specific parts of your application, or to mark when a specific event occurs. This can help you understand the performance of your application in relation to these events. At the bottom of *Figure 1* above there are custom annotations to show when inference, pre-processing, and post-processing are happening. +In Streamline, it is possible to add custom annotations to the timeline view. This can be useful to mark the start and end of specific parts of your application, or to mark when a specific event occurs. This can help you understand the performance of your application in relation to these events. At the bottom of *Figure 1* above there are custom annotations to show when inference, pre-processing, and post-processing are happening. -To add annotations, you will need to add some files into your project from the **gator** daemon that Streamline uses. These files are `streamline_annotate.c`, `streamline_annotate.h` and `streamline_annotate_logging.h` available [here](https://github.com/ARM-software/gator/tree/main/annotate). Then you will be able to show log strings, markers, counters and Custom Activity Maps. If you are using the example project, create a `cpp` folder under the `app/src/main` folder, and add these files there. +To add annotations, you will need to add some files into your project from the **gator** daemon that Streamline uses. These files are named `streamline_annotate.c`, `streamline_annotate.h` and `streamline_annotate_logging.h` and made available [here](https://github.com/ARM-software/gator/tree/main/annotate). Using these annotations, you will be able to show log strings, markers, counters and Custom Activity Maps. WIthin your example project, create a `cpp` folder under the `app/src/main` folder, and add these three files there. These files are written in C, so if your Android Studio project is in Java or Kotlin, you will need to add a C library to your project. This is slightly trickier than just adding a Java or Kotlin file, but it is not difficult. You can find instructions on how to do this [here](https://developer.android.com/studio/projects/add-native-code). -Create a file in the `app/src/main/cpp/` folder under your project and name it `annotate_jni_wrapper.c`. This will be a wrapper around the gator daemon's functions, and will be called from your Kotlin code. It starts as below and continues with very similar wrapper functions for the other gator daemon functions you want. +Create a file in the `app/src/main/cpp/` folder under your project and name it `annotate_jni_wrapper.c`. This will be a wrapper around the gator daemon's functions, and will be called from your Kotlin code. Copy the code below into this file. You can also create very similar wrapper functions for other gator daemon functions. ```c #include @@ -66,7 +66,7 @@ JNIEXPORT jlong JNICALL Java_AnnotateStreamline_GetTime(JNIEnv* env, jobject obj } ``` -Some functions have `unsigned int`, but that needs to be a `jint` in the wrapper, with some casting required in your Kotlin code to enforce type correctness at that end. Some functions have strings as arguments, and you will need to do a small conversion: +Some functions have `unsigned int`, but that needs to be a `jint` in the wrapper, with some casting required in your Kotlin code to enforce type correctness at that end. Some functions have strings as arguments, and you will need to do a small conversion as shown below: ```c JNIEXPORT void JNICALL Java_AnnotateStreamline_AnnotateMarkerColorStr(JNIEnv* env, jobject obj, jint color, jstring str) { @@ -76,7 +76,7 @@ JNIEXPORT void JNICALL Java_AnnotateStreamline_AnnotateMarkerColorStr(JNIEnv* en } ``` -In Android Studio `cmake` is used to create your C library, so you will need a `CMakelists.txt` file in the same directory as the C files (`app/src/main/cpp/` in the example). This will look like: +In Android Studio `cmake` is used to create your C library, so you will need a `CMakelists.txt` file in the same directory as the C files (`app/src/main/cpp/` in the example). Copy the contents shown below into `CMakelists.txt`: ```cmake # Sets the minimum CMake version required for this project. @@ -101,7 +101,7 @@ target_link_libraries( # Specifies the target library. ${log-lib} ) ``` -If you add the following to the `build.gradle` file of the Module you wish to profile (`:app` in the example), you will be able to call the functions from your Kotlin code: +Now add the code below to the `build.gradle` file of the Module you wish to profile (`:app` in the example). You will be able to call the functions from your Kotlin code: ```gradle externalNativeBuild { @@ -172,7 +172,7 @@ The `AnnotateStreamline` class can now be used in your Kotlin code to add annota In the example app you could add this in the `onCreate()` function of `MainActivity.kt` after the `Module.load()` call to load the `model.pth`. -This 'colored marker with a string' annotation will add the string and time to Streamline's log view, and look like the below image in Streamline's timeline (in the example app ArmNN isn't used, so there are no white ArmNN markers): +This 'colored marker with a string' annotation will add the string and time to Streamline's log view, and look like the image shown below in Streamline's timeline (in the example app ArmNN isn't used, so there are no white ArmNN markers): ![Streamline image alt-text#center](streamline_marker.png "Figure 2. Streamline timeline markers") @@ -180,7 +180,7 @@ This 'colored marker with a string' annotation will add the string and time to S In addition to adding strings to the log and colored markers to the timeline, a particularly useful set of annotations is the Custom Activity Maps. These are the named colored bands you can see at the bottom of the Streamline timeline view shown in *Figure 1*. They can be used to show when specific parts of your application are running, such as the pre-processing or inference, and layered for functions within functions etc. -To add these you will need to import the functions that start `gator_cam_` from `streamline_annotate.h` through your wrapper files in the same way as the functions above. Then you can use CAMs, but first you will need to set up the tracks the annotations will appear on and an id system for each annotation. The `baseId` code below is to ensure that in the case of multiple places in your code adding annotations, the ids are unique. +To add these you will need to import the functions that start `gator_cam_` from `streamline_annotate.h` through your wrapper files in the same way as the functions above. Then you can use CAMs, but first you will need to set up the tracks the annotations will appear on and an id system for each annotation. The `baseId` code below is to ensure that if you add annotations in multiple places in your code, the ids are unique. Here is an example setup in a class's companion object: @@ -199,9 +199,9 @@ Here is an example setup in a class's companion object: } ``` -If you're using the example app, add this to the `MainActivity` class. +For the example app, add this to the `MainActivity` class. -Then they can be used like this: +Then it can be used like this: ```kotlin val preprocess = currentId++ @@ -214,7 +214,7 @@ Then they can be used like this: AnnotateStreamline.camJobEnd(camViewId, preprocess, AnnotateStreamline.getTime()) ``` -In the example app the CAM annotations would be added to the `runInference()` function, which would end up looking like this: +In the example app, the CAM annotations are added to the `runInference()` function, which should look like this: ```kotlin private fun runInference(bitmap: Bitmap) { @@ -244,6 +244,6 @@ In the example app the CAM annotations would be added to the `runInference()` fu } ``` -The example app is very fast and simple, so the CAMs will not show much, but in a more complex application you could add more CAMs, including child-level ones, to give more detailed annotations to show where time is spent in your application. Indeed for the example app with its very fast inference, you will be best in Streamline to put the timeline view on the 10µs scale to see the CAM annotations better. +The example application is very fast and simple, so the CAMs will not show much information. In a more complex application you could add more CAMs, including child-level ones, to give more detailed annotations to show where time is spent in your application. For this example app with its very fast inference, it's best to change the Streamline timeline view scale to 10µs in order to see the CAM annotations better. -Once you've added in useful CAM annotations, you can build and deploy a debug version of your application, you can run Streamline and see the annotations and CAMs in the timeline view. See the [Streamline documentation](https://developer.arm.com/documentation/101816/latest/) for how to make a capture for profiling. Once the capture is made and analyzed, you will be able to see when your application is running the inference, ML pre-processing, ML post-processing, or other parts of your application. From there you can see where the most time is spent, and how hard the CPU or GPU is working during different parts of the application. From this you can then decide if work is needed to improve performance and where that work needs doing. +Once you've added in useful CAM annotations, you can build and deploy a debug version of your application. You can run Streamline and see the annotations and CAMs in the timeline view. See the [Streamline documentation](https://developer.arm.com/documentation/101816/latest/) for how to make a capture for profiling. After the capture is made and analyzed, you will be able to see when your application is running the inference, ML pre-processing, ML post-processing, or other parts of your application. From there you can see where the most time is spent, and how hard the CPU or GPU is working during different parts of the application. From this you can then decide if work is needed to improve performance and where that work needs doing. From 0c8b302bbe418985a1add2a9a05f8dcf475b2000 Mon Sep 17 00:00:00 2001 From: pareenaverma Date: Thu, 14 Nov 2024 15:17:17 -0500 Subject: [PATCH 26/87] Update nn-profiling-general.md --- .../profiling-ml-on-arm/nn-profiling-general.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/nn-profiling-general.md b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/nn-profiling-general.md index 7ca228759f..91a35381f1 100644 --- a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/nn-profiling-general.md +++ b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/nn-profiling-general.md @@ -9,8 +9,8 @@ layout: learningpathall ## Profiling your model App profilers will give you a good overall view of your performance, but often you might want to look inside the model and work out bottlenecks within the network. The network is often the bulk of the time, in which case it will warrant closer analysis. -General profilers are unable to do this, as there needs to be annotations inside the ML framework code to get the information. It is a large task to write the profiling annotations throughout the framework, so it is easier if we use tools from a framework or inference engine that can already do the job. +With general profilers this is hard to do, as there needs to be annotations inside the ML framework code to get the information. It is a large task to write the profiling annotations throughout the framework, so it is easier to use tools from a framework or inference engine that already has the required instrumentation. -Depending on your model the tools available will differ. For example, if you are using LiteRT (formerly TensorFlow Lite), Arm provides the ArmNN delegate that you can run the model with on Linux or Android, CPU or GPU. ArmNN in turn provides a tool called `ExecuteNetwork` that can run the model and give you layer timings and other useful information. +Depending on your model, your choice of tools will differ. For example, if you are using LiteRT (formerly TensorFlow Lite), Arm provides the ArmNN delegate that you can run with the model running on Linux or Android, CPU or GPU. ArmNN in turn provides a tool called `ExecuteNetwork` that can run the model and give you layer timings among other useful information. -If you are using PyTorch, you will probably want ExecuTorch on an Android phone, and this also has a profiler available alongside it. +If you are using PyTorch, you will probably use ExecuTorch the ons-device inference runtime for your Android phone. ExecuTorch has a profiler available alongside it. From 09d1b819a1cffe3184f16cb379080804e75fcdf2 Mon Sep 17 00:00:00 2001 From: pareenaverma Date: Thu, 14 Nov 2024 15:45:38 -0500 Subject: [PATCH 27/87] Update nn-profiling-executenetwork.md --- .../nn-profiling-executenetwork.md | 40 +++++++++---------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/nn-profiling-executenetwork.md b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/nn-profiling-executenetwork.md index b046364a82..f4ca26994d 100644 --- a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/nn-profiling-executenetwork.md +++ b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/nn-profiling-executenetwork.md @@ -1,5 +1,5 @@ --- -title: ML profiling with ExecuteNetwork +title: ML profiling of a tflite model with ExecuteNetwork weight: 6 ### FIXED, DO NOT MODIFY @@ -7,39 +7,38 @@ layout: learningpathall --- ## ArmNN's Network Profiler -One way of running tflite models is with ArmNN. This is available as a delegate to the standard tflite interpreter. But to profile the model, ArmNN comes with a command-line utility called `ExecuteNetwork`. This program just runs the model without the rest of an app. It is able to output layer timings and other useful information to let you know where there might be bottlenecks within your model. +One way of running tflite models is with ArmNN. This is available as a delegate to the standard tflite interpreter. But to profile the model, ArmNN comes with a command-line utility called `ExecuteNetwork`. This program just runs the model without the rest of the app. It is able to output layer timings and other useful information to let you know where there might be bottlenecks within your model. -If you are not using tflite, you'll need to look at other tools from your framework to profile your model. If you are using tflite without ArmNN, then the output from `ExecuteNetwork` will be more of an indication than a definitive answer. But it can still be useful to see if there are any obvious problems. +If you are using tflite without ArmNN, then the output from `ExecuteNetwork` will be more of an indication than a definitive answer. But it can still be useful to spot any obvious problems. -If you want to have a tflite to practice this Learning Path with, you can download one from the [Arm Model Zoo](https://github.com/ARM-software/ML-zoo). As an example we'll use a [mobilenet tflite](https://github.com/ARM-software/ML-zoo/blob/master/models/image_classification/mobilenet_v2_1.0_224/tflite_int8/mobilenet_v2_1.0_224_INT8.tflite). +To try this out, you can download a tflite model from the [Arm Model Zoo](https://github.com/ARM-software/ML-zoo). In this Learning Path, you will download [mobilenet tflite](https://github.com/ARM-software/ML-zoo/blob/master/models/image_classification/mobilenet_v2_1.0_224/tflite_int8/mobilenet_v2_1.0_224_INT8.tflite). -To get `ExecuteNetwork` you can download it from the [ArmNN GitHub](https://github.com/ARM-software/armnn/releases). Download the version appropriate for the Android phone you wish to test on - the Android version and the architecture of the phone. If you are unsure of the architecture, you can use a lower one, but you may miss out on some optimizations. Inside the tar.gz that you download, `ExecuteNetwork` is included. Note among the other release downloads on the ArmNN Github is the separate file for the `aar` delegate which is the easy way to include the ArmNN delegate into your app. +To get `ExecuteNetwork` you can download it from the [ArmNN GitHub](https://github.com/ARM-software/armnn/releases). Download the version appropriate for the Android phone you wish to test on - the Android version and the architecture of the phone. If you are unsure of the architecture, you can use a lower one, but you may miss out on some optimizations. Inside the `tar.gz` archive that you download, `ExecuteNetwork` is included. Note among the other release downloads on the ArmNN Github is the separate file for the `aar` delegate which is the easy way to include the ArmNN delegate into your app. -To run `ExecuteNetwork` you'll need to use `adb` to push the model and the executable to your phone, and then run it from the adb shell. `adb` is included with Android Studio, but you may need to add it to your path. Android Studio normally installs it to a location like \\AppData\Local\Android\Sdk\platform-tools. `adb` can also be downloaded separately from the [Android Developer site](https://developer.android.com/studio/releases/platform-tools). +To run `ExecuteNetwork` you'll need to use `adb` to push the model and the executable to your phone, and then run it from the adb shell. `adb` is included with Android Studio, but you may need to add it to your path. Android Studio normally installs it to a location like `\\AppData\Local\Android\Sdk\platform-tools`. `adb` can also be downloaded separately from the [Android Developer site](https://developer.android.com/studio/releases/platform-tools). -Unzip the tar.gz folder you downloaded to somewhere convenient. From a command prompt, you can then adapt and run the following commands to push the files to your phone. The `/data/local/tmp` folder of your Android device is a place with relaxed permissions that you can use to run this profiling. +Unzip the `tar.gz` folder you downloaded. From a command prompt, you can then adapt and run the following commands to push the files to your phone. The `/data/local/tmp` folder of your Android device is a place with relaxed permissions that you can use to run this profiling. ```bash -adb push mobilenet_v2_1.0_224_INT8.tflite /data/local/tmp/ # if you are using the example tflite model -# adb push yourmodel.tflite /data/local/tmp/ # where yourmodel is the tflite NN model file that you wish to profile +adb push mobilenet_v2_1.0_224_INT8.tflite /data/local/tmp/ adb push ExecuteNetwork /data/local/tmp/ adb push libarm_compute.so /data/local/tmp/ adb push libarmnn.so /data/local/tmp/ adb push libarmnn_support_library.so /data/local/tmp/ # more ArmNN .so library files ``` -Push all the `.so` library files that are in the base folder of the tar.gz you downloaded, alongside `ExecuteNetwork`, and all the `.so` files in the `delegate` sub-folder. If you are using a recent version of Android Studio this copying can be done much more easily with drag and drop in the *Device Explorer > Files*. +Push all the `.so` library files that are in the base folder of the `tar.gz` archive you downloaded, alongside `ExecuteNetwork`, and all the `.so` files in the `delegate` sub-folder. If you are using a recent version of Android Studio this copying can be done much more easily with drag and drop in the *Device Explorer > Files*. Then you need to set the permissions on the files: ```bash -adb shell # to get into the adb shell on the phone +adb shell cd /data/local/tmp -chmod 777 ExecuteNetwork # to make the file executable -chmod 777 *.so # to make the library files executable +chmod 777 ExecuteNetwork +chmod 777 *.so ``` -Then you can run ExecuteNetwork to profile the model. If you are using the example tflite, you can use the following command: +Now you can run ExecuteNetwork to profile the model. With the example tflite, you can use the following command: ```bash LD_LIBRARY_PATH=. ./ExecuteNetwork -m mobilenet_v2_1.0_224_INT8.tflite -c CpuAcc -T delegate --iterations 2 --do-not-print-output --enable-fast-math --fp16-turbo-mode -e --output-network-details > modelout.txt @@ -49,12 +48,12 @@ If you are using your own tflite, replace `mobilenet_v2_1.0_224_INT8.tflite` wit This will run the model twice, outputting the layer timings to `modelout.txt`. The `--iterations 2` flag is the command that means it runs twice: the first run includes a lot of startup costs and one-off optimizations, so the second run is more indicative of the real performance. -For the other flags, of note are the `-e` and `--output-network-details` flags which will output a lot of timeline information about the model, including the layer timings. The `--do-not-print-output` flag will stop the output of the model, which can be very large, and without sensible input, meaningless. The `--enable-fast-math` and `--fp16-turbo-mode` flags enable some maths optimizations. `CpuAcc` is the acclerated CPU backend, it can be replaced with `GpuAcc` for the accelerated GPU backend. +The other flags to note are the `-e` and `--output-network-details` flags which will output a lot of timeline information about the model, including the layer timings. The `--do-not-print-output` flag will stop the output of the model, which can be very large, and without sensible input it is meaningless. The `--enable-fast-math` and `--fp16-turbo-mode` flags enable some math optimizations. `CpuAcc` is the acclerated CPU backend, it can be replaced with `GpuAcc` for the accelerated GPU backend. -After running the model, you can pull the output file back to your computer with the following commands: +After running the model, you can pull the output file back to your host machine with the following commands: ```bash -exit # to leave the adb shell +exit adb pull /data/local/tmp/modelout.txt ``` Once again, this can be done with drag and drop in Android Studio's *Device Explorer > Files*. @@ -62,6 +61,7 @@ Once again, this can be done with drag and drop in Android Studio's *Device Expl Depending on the size of your model, the output will probably be quite large. You can use a text editor to view the file. The output is in JSON format, so you can use a JSON viewer to make it more readable. Usually some scripting can be used to extract the information you need more easily out of the very raw data in the file. At the top is the summary, with the setup time and inference time of your 2 runs, which will look something like this: + ```text Info: ArmNN v33.2.0 Info: Initialization time: 7.20 ms. @@ -78,8 +78,8 @@ Info: Execution time: 468.42 ms. Info: Inference time: 468.58 ms ``` -After the summary comes the graph of the model, and then the layers and their timings from the second run. At the start of the layers there are a few optimizations and their timings recorded before the network itself, so you can skip past the graph and the optimization timings to get to the part that wants analyzing. +After the summary comes the graph of the model, then the layers and their timings from the second run. At the start of the layers there are a few optimizations and their timings recorded before the network itself. You can skip past the graph and the optimization timings to get to the part that needs analyzing. -In the mobilenet example output, the graph is from lines 18 to 1629. After this come the optimization timings, which are part of the runtime, but not the network - these go until line 1989. Next there are a few wall clock recordings for the loading of the network, before the first layer "Convolution2dLayer_CreateWorkload_#18" at line 2036. Here is where the layer info that wants analyzing starts. +In the mobilenet example output, the graph is from lines 18 to 1629. After this is the optimization timings, which are part of the runtime, but not the network - these go until line 1989. Next there are a few wall clock recordings for the loading of the network, before the first layer "Convolution2dLayer_CreateWorkload_#18" at line 2036. Here is where the layer info that needs analyzing starts. -The layers' "Wall clock time" in microseconds shows how long they took to run. These layers and their timings can then be analyzed to see which layers, and which operators, took the most time. \ No newline at end of file +The layers' "Wall clock time" in microseconds shows how long they took to run. These layers and their timings can then be analyzed to see which layers, and which operators, took the most time. From 73461abce4dcab18f35759b6ca283726b6880697 Mon Sep 17 00:00:00 2001 From: pareenaverma Date: Thu, 14 Nov 2024 15:57:55 -0500 Subject: [PATCH 28/87] Update app-profiling-android-studio.md --- .../app-profiling-android-studio.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/app-profiling-android-studio.md b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/app-profiling-android-studio.md index 7d49a7303b..9f8508f3a8 100644 --- a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/app-profiling-android-studio.md +++ b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/app-profiling-android-studio.md @@ -13,7 +13,7 @@ To find the Profiler, open your project in Android Studio and click on the *View Most likely with an Android ML app you'll need to look at memory both from the Java/Kotlin side and the native side. The Java/Kotlin side is where the app runs, and may be where buffers are allocated for input and output if, for example, you're using LiteRT (formerly known as TensorFlow Lite). The native side is where the ML framework will run. Looking at the memory consumption for Java/Kotlin and native is 2 separate tasks in the Profiler: *Track Memory Consumption (Java/Kotlin Allocations)* and *Track Memory Consumption (Native Allocations)*. -Before we start either task we want to build our profileable app. The instructions for this and for general profiling setup can be found [here](https://developer.android.com/studio/profile). We will want to start the correct profiling version of the app depending on the task. +Before you start either task, you have to build your app for profiling. The instructions for this and for general profiling setup can be found [here](https://developer.android.com/studio/profile). You will want to start the correct profiling version of the app depending on the task. ![Android Studio profiling run types alt-text#center](android-profiling-version.png "Figure 1. Profiling run versions") @@ -21,14 +21,14 @@ For the Java/Kotlin side, you want the **debuggable** "Profile 'app' with comple ### Java/Kotlin -If we start looking at the [Java/Kotlin side](https://developer.android.com/studio/profile/record-java-kotlin-allocations), choose *Profiler: Run 'app' as debuggable*, and then select the *Track Memory Consumption (Java/Kotlin Allocations)* task. Navigate to the part of the app you wish to profile and then we can start profiling. At the bottom of the Profiling window it should look like Figure 2 below. Click *Start Profiler Task*. +If you start looking at the [Java/Kotlin side](https://developer.android.com/studio/profile/record-java-kotlin-allocations), choose *Profiler: Run 'app' as debuggable*, and then select the *Track Memory Consumption (Java/Kotlin Allocations)* task. Navigate to the part of the app you wish to profile and then you can start profiling. At the bottom of the Profiling window it should look like Figure 2 below. Click *Start Profiler Task*. ![Android Studio Start Profile alt-text#center](start-profile-dropdown.png "Figure 2. Start Profile") -When you're ready, *Stop* the profiling again. Now there'll be a nice timeline graph of memory usage. Unfortunately, while Android Studio has a nicer interface for the Java/Kotlin side than the native side, the key to the timeline graph may be missing. This key is shown below in Figure 3, so you can refer to the colors from this. +When you're ready, *Stop* the profiling again. Now there will be a nice timeline graph of memory usage. While Android Studio has a nicer interface for the Java/Kotlin side than the native side, the key to the timeline graph may be missing. This key is shown below in Figure 3, so you can refer to the colors from this. ![Android Studio memory key alt-text#center](profiler-jk-allocations-legend.png "Figure 3. Memory key for the Java/Kotlin Memory Timeline") -The default height of the Profiling view - as well as the timeline graph within it - is usually too small, so adjust these heights to get a sensible graph. You can click at different points of the graph to see the memory allocations at that time. If you look according to the key you can see how much memory is allocated by Java, Native, Graphics, Code etc. +The default height of the Profiling view, as well as the timeline graph within it is usually too small, so adjust these heights to get a sensible graph. You can click at different points of the graph to see the memory allocations at that time. If you look according to the key you can see how much memory is allocated by Java, Native, Graphics, Code etc. Looking further down you can see the *Table* of Java/Kotlin allocations for your selected time on the timeline. With ML a lot of your allocations are likely to be byte[] for byte buffers, or possibly int[] for image data, etc. Clicking on the data type will open up the particular allocations, showing their size and when they were allocated. This will help to quickly narrow down their use, and whether they are all needed etc. @@ -36,7 +36,7 @@ Looking further down you can see the *Table* of Java/Kotlin allocations for your For the [native side](https://developer.android.com/studio/profile/record-native-allocations), the process is similar but with different options. Choose *Profiler: Run 'app' as profileable*, and then select the *Track Memory Consumption (Native Allocations)* task. Here you have to *Start profiler task from: Process Start*. Choose *Stop* once you've captured enough data. -The Native view doesn't have the same nice timeline graph as the Java/Kotlin side, but it does have the *Table* and *Visualization* tabs. The *Table* tab no longer has a list of allocations, but options to *Arrange by allocation method* or *callstack*. Choose *Arrange by callstack* and then you can trace down which functions were allocating signifcant memory. Potentially more useful, you can also see Remaining Size. +The Native view doesn't have the same nice timeline graph as the Java/Kotlin side, but it does have the *Table* and *Visualization* tabs. The *Table* tab no longer has a list of allocations, but options to *Arrange by allocation method* or *callstack*. Choose *Arrange by callstack* and then you can trace down which functions were allocating significant memory. Potentially more useful, you can also see Remaining Size. In the Visualization tab you can see the callstack as a graph, and once again you can look at total Allocations Size or Remaining Size. If you look at Remaining Size, you can see what is still allocated at the end of the profiling, and by looking a few steps up the stack, probably see which allocations are related to the ML model, by seeing functions that relate to the framework you are using. A lot of the memory may be allocated by that framework rather than in your code, and you may not have much control over it, but it is useful to know where the memory is going. From 46c451bbc9543de98759ecd8db8d87a690217a31 Mon Sep 17 00:00:00 2001 From: pareenaverma Date: Thu, 14 Nov 2024 16:03:49 -0500 Subject: [PATCH 29/87] Update _review.md --- .../smartphones-and-mobile/profiling-ml-on-arm/_review.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/_review.md b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/_review.md index a1f46d1ed9..7eae5a8b1b 100644 --- a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/_review.md +++ b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/_review.md @@ -16,8 +16,8 @@ review: question: > Does Android Studio have a profiler? answers: - - Yes - - No + - "Yes" + - "No" correct_answer: 1 explanation: > Yes, Android Studio has a built-in profiler that can be used to monitor the memory usage of your app among other things From fc1a47d07e157058499d528eb6fa85ca267708bd Mon Sep 17 00:00:00 2001 From: pareenaverma Date: Thu, 14 Nov 2024 16:07:53 -0500 Subject: [PATCH 30/87] Update _next-steps.md --- .../profiling-ml-on-arm/_next-steps.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/_next-steps.md b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/_next-steps.md index aafea4126a..f468cb1b80 100644 --- a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/_next-steps.md +++ b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/_next-steps.md @@ -1,8 +1,7 @@ --- -next_step_guidance: Continue Learning +next_step_guidance: You might be interested in learning how to profile your Unity apps on Android. -recommended_path: /learning-paths/smartphones-and-mobile/build-llama3-chat-android-app-using-executorch-and-xnnpack/ -recommended_path: /learning-paths/smartphones-and-mobile/kleidiai-on-android-with-mediapipe-and-xnnpack/ +recommended_path: /learning-paths/smartphones-and-mobile/profiling-unity-apps-on-android/ further_reading: - resource: From acf0e266dc8128225f46a171d792c875a3b00198 Mon Sep 17 00:00:00 2001 From: Jason Andrews Date: Thu, 14 Nov 2024 17:30:31 -0700 Subject: [PATCH 31/87] Update WPA plugin install guide --- .../_images/wpa-install-plugin.png | Bin 0 -> 89367 bytes .../_images/wpa-installation.png | Bin 68266 -> 67889 bytes content/install-guides/_images/wpa-store.png | Bin 0 -> 127218 bytes .../install-guides/windows-perf-wpa-plugin.md | 62 +++++++++--------- 4 files changed, 31 insertions(+), 31 deletions(-) create mode 100644 content/install-guides/_images/wpa-install-plugin.png create mode 100644 content/install-guides/_images/wpa-store.png diff --git a/content/install-guides/_images/wpa-install-plugin.png b/content/install-guides/_images/wpa-install-plugin.png new file mode 100644 index 0000000000000000000000000000000000000000..91d072dc5e5371515a5f33d586329df7631cd7cc GIT binary patch literal 89367 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 M0uqlh`PE#^TL6g5h2tY@Y3QJf=VEDLWzXTl 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 Cn6uIV diff --git a/content/install-guides/_images/wpa-store.png b/content/install-guides/_images/wpa-store.png new file mode 100644 index 0000000000000000000000000000000000000000..78d84c85a15e847f5e19a146fbf0def33fd2b86e GIT binary patch literal 127218 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 `About Windows Performance Analyzer`. +{{% /notice %}} + +Close Windows Performance Analyzer. ### Install the WPA plugin -Now you're ready to install the plugin, which is a single `.dll` file. +You are ready to install the WPA plugin, which is a single `.dll` file. Download the `.zip` file from the [Windows Perf WPA plugin GitHub releases page](https://github.com/arm-developer-tools/windowsperf-wpa-plugin/releases) on GitHub. -Alternatively, you can download the latest version using command prompt: +Alternatively, you can download the `.zip` file from a Command Prompt: ```console mkdir wpa-plugin @@ -95,7 +93,7 @@ cd wpa-plugin curl -L -O https://github.com/arm-developer-tools/windowsperf-wpa-plugin/releases/download/1.0.2/wpa-plugin-1.0.2.zip ``` -Now extract the `.dll` file from the downloaded `.zip` file. +Extract the `.dll` file from the downloaded `.zip` file. ```console tar -xmf wpa-plugin-1.0.2.zip @@ -103,30 +101,32 @@ tar -xmf wpa-plugin-1.0.2.zip The file `WPAPlugin.dll` is now in your `wpa-plugin` directory. -There are three ways you can install the `WPAPlugin.dll` file: +There are three ways you can use the `WPAPlugin.dll` file: -#### 1. Copy the .dll file to the CustomDataSources directory next to the WPA executable. +#### 1. Start WPA from the command line and pass the plugin directory location using a flag. -The default location is: - `C:\\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\CustomDataSources` +Use the `-addsearchdir` flag to tell `wpa` where to find plugins. + +For example, if you downloaded the DLL in your `Downloads` directory, you can run `wpa` as shown below: +```bash +wpa -addsearchdir %USERPROFILE%\Downloads\wpa-plugin-1.0.2 +``` + #### 2. Set an environment variable. Set the `WPA_ADDITIONAL_SEARCH_DIRECTORIES` environment variable to the location of the `.dll` file. -#### 3. Start WPA from the command line and pass the plugin directory location using a flag. +#### 3. Copy the .dll file to the CustomDataSources directory next to the WPA executable. -Use the `-addsearchdir` flag for `wpa`: +The default location is: + `C:\\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\CustomDataSources` -```bash -wpa -addsearchdir "%USERPROFILE%\plugins" -``` - ## How can I verify the WPA plugin is installed? -To verify the plugin is loaded, launch WPA and the plugin should appear under **Help > About Windows Performance Analyzer**. +To verify the plugin is loaded, launch WPA and the plugin should appear on the Installed Plugins list. -![WPA installation confirmation](/install-guides/_images/about-wpa.png) +![WPA installation confirmation](/install-guides/_images/wpa-install-plugin.png) ## How can I run the WPA plugin from the command line? @@ -135,7 +135,7 @@ To open a JSON file directly from the command line, you can use the `-i` flag to For example: to open `timeline_long.json` in your downloads directory, run the command: ```console -wpa -i "%USERPROFILE%\\Downloads\\timeline_long.json" +wpa -addsearchdir %USERPROFILE%\Downloads\wpa-plugin-1.0.2 -i %USERPROFILE%\Downloads\timeline_long.json ``` ## How do I uninstall the WPA plugin? From 42cf265e22422e38693035eaf0b1b73fafa52e28 Mon Sep 17 00:00:00 2001 From: Annie Tallund Date: Fri, 15 Nov 2024 17:29:28 +0100 Subject: [PATCH 32/87] Update YOLOv8 on Himax Learning Path --- .../microcontrollers/yolo-on-himax/_index.md | 32 ++++--- .../microcontrollers/yolo-on-himax/_review.md | 24 +++++- .../yolo-on-himax/how-to-1.md | 85 ++++++++++++------- .../yolo-on-himax/how-to-2.md | 42 +++++---- .../yolo-on-himax/how-to-3.md | 34 ++++---- .../yolo-on-himax/how-to-4.md | 27 ++++-- .../yolo-on-himax/how-to-5.md | 26 +++--- 7 files changed, 163 insertions(+), 107 deletions(-) diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/_index.md b/content/learning-paths/microcontrollers/yolo-on-himax/_index.md index 59d523d0b6..4a5167d254 100644 --- a/content/learning-paths/microcontrollers/yolo-on-himax/_index.md +++ b/content/learning-paths/microcontrollers/yolo-on-himax/_index.md @@ -3,33 +3,37 @@ title: Run a Computer Vision Model on a Himax Microcontroller minutes_to_complete: 90 -who_is_this_for: This is an introduction topic for beginners on how to run a computervision application on an embedded device from Himax. This example uses an off-the-shelf Himax WiseEye2 module which is based on the Arm Cortex-M55 and Ethos-U55. +who_is_this_for: This is an introduction topic for beginners on how to run a computer vision application on an embedded device from Himax. This example uses an off-the-shelf Himax WiseEye2 module which is based on the Arm Cortex-M55 and Ethos-U55. + +learning_objectives: + - Run a you-only-look-once (YOLO) computer vision model on the edge device + - Build the Himax Software Development Kit (SDK) and generate the firmware image file + - Update the firmware on the edge device (Himax WiseEye2) -learning_objectives: - - Run a you-only-look-once (YOLO) computer vision model using off-the-shelf hardware based on the Arm Cortex-M55 and Ethos-U55. - - Learn how to build the Himax SDK and generate firmware image file. - - Learn how to update firmware on edge device (Himax WiseEye2). - prerequisites: - - Seeed Grove Vision AI V2 Module - - OV5647-62 Camera module and included FPC cable + - A [Seeed Grove Vision AI Module V2](https://www.seeedstudio.com/Grove-Vision-AI-Module-V2-p-5851.html) development board + - A [OV5647-62 Camera Module](https://www.seeedstudio.com/OV5647-69-1-FOV-Camera-module-for-Raspberry-Pi-3B-4B-p-5484.html) and included FPC cable - A USB-C cable - - A Linux/Windows-based PC on an x86 archiecture. + - An x86 based Linux machine or a machine running Apple Silicon author_primary: Chaodong Gong, Alex Su, Kieran Hejmadi ### Tags -skilllevels: Beginner +skilllevels: Introductory subjects: ML armips: - - Cortex M55 - - Ethos U55 + - Cortex-M55 + - Ethos-U55 tools_software_languages: - Himax SDK - - Bash + - Python operatingsystems: - Linux - - Windows + - macOS + +draft: true +cascade: + draft: true ### FIXED, DO NOT MODIFY diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/_review.md b/content/learning-paths/microcontrollers/yolo-on-himax/_review.md index 27a46683f1..98489df86d 100644 --- a/content/learning-paths/microcontrollers/yolo-on-himax/_review.md +++ b/content/learning-paths/microcontrollers/yolo-on-himax/_review.md @@ -2,13 +2,31 @@ review: - questions: question: > - The Grove Vision AI V2 Module can run Yolov8 model in real time? + The Grove Vision AI V2 Module can run YOLOv8 model in real time answers: - True - False - correct_answer: 1 + correct_answer: 1 explanation: > - The Grove Vision AI V2 Module can run object detection in real time using the Cortex-M55 and Ethos-U55. + The Grove Vision AI V2 Module can run object detection in real time thanks to it's ML accelerated capabilites. + question: > + Which of the options is the YOLO model unable to run? + answers: + - Pose detection + - Object detection + - Speech-to-text transcription + correct_answer: 3 + explanation: > + The YOLO model is a computer vision model, meaning it runs based on images as input. + question: > + What Arm IP on the Seeed Grove Vision AI Module V2 enables you to run ML workloads efficiently? + answers: + - Ethos-U55 + - Cortex-A72 + - Cortex-X4 + correct_answer: 1 + explanation: > + When paired with the low-power Cortex-M55 processor, the Ethos-U55 provides an uplift in ML performance # ================================================================================ diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-1.md b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-1.md index da46268655..7af1eb6ceb 100644 --- a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-1.md +++ b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-1.md @@ -1,46 +1,32 @@ --- -title: Set Up Environment +title: Set up environment weight: 2 ### FIXED, DO NOT MODIFY layout: learningpathall --- -## Set up the Development Environment +# Set up the development environment -### Step 1.1. Install Ubuntu +This learning path has been validated on Ubuntu 22.04 LTS and macOS. -If you are running Windows on your host machine, we recommend using Ubuntu through Windows subsystem for Linux 2 (WSL2). Please see [this learning path](https://learn.arm.com/learning-paths/laptops-and-desktops/wsl2/setup/) for assistance +{{% notice %}} +If you are running Windows on your host machine, you can use Ubuntu through Windows subsystem for Linux 2 (WSL2). Check out [this learning path](https://learn.arm.com/learning-paths/laptops-and-desktops/wsl2/setup/) to get started. +{{% /notice %}} -This learning path has been validated on Ubuntu 22.04 LTS. However, we expect other linux distributions to work. To verify the Linux distribution you are using you can run the `cat /etc/*release*` command. +## Install Python, pip and git +You will use Python to build the firmware image and pip to install some dependencies. Verify Python is installed by running ```bash -cat /etc/*release* -``` -The top lines from the terminal output will show the distribution version. - -```output -DISTRIB_ID=Ubuntu -DISTRIB_RELEASE=22.04 -DISTRIB_CODENAME=jammy -DISTRIB_DESCRIPTION="Ubuntu 22.04.5 LTS" -... +python3 --version ``` -### Step 1.2. (Optional) Install Microsoft Visual Studio Code - -This is only optional. You can use any text editor you are comfortable with to view or edit code. By typing “wsl” in VS Code terminal, you can switch to Linux environment. - -### Step 1.3. Install python 3 - -Go to website python.org to download and install. -Verify python is installed by -python3 --version You should see an output like the following. ```output Python 3.12.7 ``` -### Step 1.4. Install python-pip + +Install `pip` with the following commands, and check the output to verify it's installed correctly. ```bash sudo apt update @@ -48,21 +34,39 @@ sudo apt install python3-pip -y pip3 --version ``` -If `pip3` is correctly installed you should see an output similar to tht following. +```output +pip 24.2 from //pip (python 3.12) +``` + +You will need to have the git version control system installed. Run the command below to verify that git is installed on your system. + +```bash +git --version +``` + +You should see output similar to that below. ```output -pip 24.2 from /pip (python 3.12) +git version 2.39.3 ``` -### Step 1.5. Install make +## Install make + +Install the make build tool, which is used to build the firmware in the next section. -You will need to install the make build tool in order to build the firmware in the following section. +### Linux ```bash sudo apt update sudo apt install make -y ``` +### macOS + +```console +brew install make +``` + Successful installation of make will show the following when the `make --version` command is run. ```output @@ -74,15 +78,32 @@ License GPLv3+: GNU GPL version 3 or later This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. ``` +{{% notice Note %}} +To run this learning path on macOS, you need to verify that your installation is for the GNU Make - not the BSD version. +{{% /notice %}} +## Install Arm GNU toolchain + +### Linux -### Step 1.6. Install ARM GNU toolchain +The toolchain is used to cross-compile from the host architecture (x86) to the embedded device architecture (AArch64). ```bash -cd ~ +cd $HOME wget https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x86_64-arm-none-eabi.tar.xz tar -xvf arm-gnu-toolchain-13.2.rel1-x86_64-arm-none-eabi.tar.xz export PATH="$HOME/arm-gnu-toolchain-13.2.Rel1-x86_64-arm-none-eabi/bin/:$PATH" ``` +### macOS +```console +cd $HOME +wget https://developer.arm.com/-/media/Files/downloads/gnu/13.3.rel1/binrel/arm-gnu-toolchain-13.3.rel1-darwin-arm64-arm-none-eabi.tar.xz +tar -xvf arm-gnu-toolchain-13.3.rel1-darwin-arm64-arm-none-eabi.tar.xz +export PATH="$HOME/code/tmp/arm-gnu-toolchain-13.3.rel1-darwin-arm64-arm-none-eabi/bin/:$PATH" +``` + +{{% notice %}} +You can add the above command to the `.bashrc` file. This was, the Arm GNU toolchain is configured from new terminal sessions as well. +{{% /notice %}} -Please note: you may want to add the command to your `bashrc` file. This enables the Arm GNU toolchain to be easily accessed from any new terminal session. +Now that your development environment is set up, move on to the next section where you will generate the firmware image. \ No newline at end of file diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-2.md b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-2.md index 388c390f06..714961dc13 100644 --- a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-2.md +++ b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-2.md @@ -1,39 +1,25 @@ --- -title: Build The Firmware +title: Build the firmware weight: 3 ### FIXED, DO NOT MODIFY layout: learningpathall --- -## Build The Firmware +TODO short intro / framing? -Next, we need to build an image that contains the embedded software (firmware). You will need to have the git version control system installed. Run the command below to verify that git is installed on your system. +## Clone the Himax project -```bash -git --version -``` - -You should see output similar to that below. - -```output -git version 2.39.3 -``` - -If not, please follow the steps to install git on your system. - -### Step 2.1. Clone the Himax project - -You will first need to recusively clone the Himax repository. This will also clone the necessary sub repos such as Arm CMSIS. +Himax has set up a repository containing a few examples for the Seeed Grove Vision AI V2 board. By recursively cloning the Himax examples repo, git will include the necessary sub-repositories that have been configured for the project. ```bash git clone --recursive https://github.com/HimaxWiseEyePlus/Seeed_Grove_Vision_AI_Module_V2.git cd Seeed_Grove_Vision_AI_Module_V2 ``` -### Step 2.2. Compile the Firmware +## Compile the firmware -The make build tool is used to compile the source code. This should take up around 2-3 minutes depending on the number of CPU cores available. +The make build tool is used to compile the source code. This should take up to 10 minutes depending on the number of CPU cores available. ```bash cd EPII_CM55M_APP_S @@ -41,20 +27,32 @@ make clean make ``` +## Generate the firmware image -### Step 2.3. Generate a Firmware Image +The examples repository contains scripts to generate the image. ```bash cd ../we2_image_gen_local/ cp ../EPII_CM55M_APP_S/obj_epii_evb_icv30_bdv10/gnu_epii_evb_WLCSP65/EPII_CM55M_gnu_epii_evb_WLCSP65_s.elf input_case1_secboot/ +``` + +## Linux + +```bash ./we2_local_image_gen project_case1_blp_wlcsp.json ``` -Your terminal output should end with the following. +## macOS +```console +./we2_local_image_gen_macOS_arm64 project_case1_blp_wlcsp.json +``` +Your terminal output should end with the following. ```output Output image: output_case1_sec_wlcsp/output.img Output image: output_case1_sec_wlcsp/output.img IMAGE GEN DONE ``` + +With this step, you are ready to flash the image onto the Himax development board. \ No newline at end of file diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-3.md b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-3.md index b8fde69fd0..06d110108b 100644 --- a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-3.md +++ b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-3.md @@ -1,46 +1,48 @@ --- -title: Flash Firmware onto the Microcontroller +title: Flash firmware onto the microcontroller weight: 3 ### FIXED, DO NOT MODIFY layout: learningpathall --- -## Flash the Firmware +Now that we have generated a firmware file on our local machine, we need to flash the microcontroller with this firmware. -Now that we have generated a firmware file on our local machine, we need to flash the microcontroller with this firmware. +## Install xmodem -### Step 3.1. Install xmodem. - -`Xmodem` is a basic file transfer protocol. Run the following command to install the dependencies for xmodem. +`Xmodem` is a basic file transfer protocol. Run the following command to install the dependencies for xmodem. If you cloned the repository to a different location replace $HOME with the path. ```bash -cd $HOME/Seeed_Grove_Vision_AI_Module_V2 # If you cloned the repo to a different location replace $HOME with the path. +cd $HOME/Seeed_Grove_Vision_AI_Module_V2 pip install -r xmodem/requirements.txt ``` -### Step 3.2. Connect the module to PC by USB cable. +## Connect the module -You will need to insert the FPC cable cable into the Grove Vision AI V2 module. Lift the dark grey latch on the connector as per the image below. +Insert the FPC cable cable into the Grove Vision AI V2 module. Lift the dark grey latch on the connector as per the image below. ![unlatched](./unlatched.jpg) -Then, slide the FPC connector in with the metal pins facing down and close the dark grey latch to fasten the connector. +Then, slide the FPC connector in with the metal pins facing down and close the dark grey latch to fasten the connector. ![latched](./latched.jpg) Then connect the Groove Vision AI V2 Module to your computer via the USB-C cable. -### Step 3.4. Flash the firmware onto the moule. +### Flash the firmware onto the module -Run the python script below to flash the firmware. +Run the python script below to flash the firmware. -```python -python xmodem\xmodem_send.py --port=[your COM number] --baudrate=921600 --protocol=xmodem --file=we2_image_gen_local\output_case1_sec_wlcsp\output.img +```bash +python xmodem\xmodem_send.py --port=[your COM number] --baudrate=921600 --protocol=xmodem --file=we2_image_gen_local\output_case1_sec_wlcsp\output.img ``` - Note: If running one of the other example models demonstrated in '(Optional) Try Different Models', the command might be slightly different. +{{% notice Note %}} +When you run other example models demonstrated in the later section [Object detection and additional models](/learning-paths/microcontrollers/yolo-on-himax/how-to-5/), you need to adapt this command. +{{% /notice %}} + +TODO: how will the command really change? How to find COM number? -After the firmware image burning is completed, the message "Do you want to end file transmission and reboot system? (y)" is displayed. Press the reset button on the module as per the image below. +After the firmware image burning is completed, the message `Do you want to end file transmission and reboot system? (y)` is displayed. Press the reset button indicated in the image below. ![reset button](./reset_button.jpg) diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-4.md b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-4.md index 2aa5632762..522f23f29b 100644 --- a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-4.md +++ b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-4.md @@ -1,5 +1,5 @@ --- -title: Run and View Model Results +title: Run and view model results weight: 3 ### FIXED, DO NOT MODIFY @@ -7,20 +7,29 @@ layout: learningpathall --- -### Step 4.1. Connect module to PC with USB cable. +## Connect the board with USB cable -Exit the terminal session and connect the module to the PC via your USB-C cable. +Exit the terminal session and connect the module to your host machine using the USB-C cable. -### Step 4.2. Download the Himax AI web toolkit. +## Download the Himax AI web toolkit -The Himax AI web toolkit enables a browser-based graphical user interface (GUI) for the live camera feed. +The Himax AI web toolkit enables a browser-based graphical user interface (GUI) for the live camera feed. -Download the Himax AI Web toolkit by clicking on this [link](https://github.com/HimaxWiseEyePlus/Seeed_Grove_Vision_AI_Module_V2/releases/download/v1.1/Himax_AI_web_toolkit.zip) +```bash +wget https://github.com/HimaxWiseEyePlus/Seeed_Grove_Vision_AI_Module_V2/releases/download/v1.1/Himax_AI_web_toolkit.zip +unzip Himax_AI_web_toolkit.zip +``` -Unzip the archived file and double click `index.html`. This will open the GUI within your default browser. +Open the unzipped directory in your file browsing system and double click `index.html`. This will open the GUI within your default browser. -### Step 4.3. Connect to the Grove Vision AI +## Connect to the Grove Vision AI -Select 'Grove Vision AI(V2)' in the top-right hand corner and press connect button. +Select `Grove Vision AI(V2)` in the top-right hand corner and press `Connect` button. Follow the instructions to set up the connection. ![Himax web UI](./himax_web_ui.jpg) + +The image will run the YOLOv8 on your device. By using the camera to identify things from the [Common Objects in Context (COCO) dataset](https://cocodataset.org/#home), which the model has been trained on, you can put the it to the test. Get some common objects ready and move on to the next section. + +## View model results + +TODO have running section here? \ No newline at end of file diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-5.md b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-5.md index cb6ad788f2..9f3cfde92d 100644 --- a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-5.md +++ b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-5.md @@ -1,21 +1,25 @@ --- -title: (Optional) Try Different Models +title: Object detection and additional models weight: 5 ### FIXED, DO NOT MODIFY layout: learningpathall --- +TODO some more intro here, and showing how to test the model +Also double check this section -### Modify the makefile +## Modify the Makefile -Change the directory to the where the makefile is located. +TODO: why are we doing this? + +Change the directory to the where the Makefile is located. If you cloned the repository to a different location, replace $HOME with the path. ```bash -cd $HOME/Seeed_Grove_Vision_AI_Module_V2/EPII_CM55M_APP_S/ # replace $HOME with the location of the project +cd $HOME/Seeed_Grove_Vision_AI_Module_V2/EPII_CM55M_APP_S/ ``` -Using a text editor, for example visual studio code or nano, modify the `APP_TYPE` field in the makefile from the default value of `allon_sensor_tflm` to one of the values in the table below +Modify the `APP_TYPE` field in the Makefile from the default value of `allon_sensor_tflm` to one of the values in the table below |APP_TYPE =|Description| @@ -24,18 +28,18 @@ Using a text editor, for example visual studio code or nano, modify the `APP_TYP |tflm_folov8_pose|Pose detection| |tflm_fd_fm|Face detection| -### Regenerate the Firmware Image +## Regenerate the firmware image -Go back to the 'Build The Firmware' section and start from Step 3.2. to regenerate the firmware image. +Go back to the [Flash firmware onto the microcontroller](/learning-paths/microcontrollers/yolo-on-himax/how-to-3/) section and run the python command to regenerate the firmware image. -The images below are examples images from the model. +The images below are examples images from the model. -#### Objection Detection +### Objection detection ![object_detection](./object_detection.jpg) -#### Pose Estimation +### Pose estimation ![Pose estimation](./pose_estimation.jpg) -#### Face Detection +### Face detection ![object_detection](./face_detection.jpg) From 9a9b50dbc56fe2573146f297c99ab610fb222b79 Mon Sep 17 00:00:00 2001 From: GitHub Actions Stats Bot <> Date: Mon, 18 Nov 2024 01:28:54 +0000 Subject: [PATCH 33/87] automatic update of stats files --- data/stats_current_test_info.yml | 2 +- data/stats_weekly_data.yml | 84 ++++++++++++++++++++++++++++++++ 2 files changed, 85 insertions(+), 1 deletion(-) diff --git a/data/stats_current_test_info.yml b/data/stats_current_test_info.yml index ecd46e69b0..1eca8f7819 100644 --- a/data/stats_current_test_info.yml +++ b/data/stats_current_test_info.yml @@ -1,5 +1,5 @@ summary: - content_total: 301 + content_total: 303 content_with_all_tests_passing: 32 content_with_tests_enabled: 34 sw_categories: diff --git a/data/stats_weekly_data.yml b/data/stats_weekly_data.yml index 4844d39087..d47c32756f 100644 --- a/data/stats_weekly_data.yml +++ b/data/stats_weekly_data.yml @@ -3834,3 +3834,87 @@ avg_close_time_hrs: 0 num_issues: 17 percent_closed_vs_total: 0.0 +- a_date: '2024-11-18' + content: + cross-platform: 25 + embedded-systems: 19 + install-guides: 89 + laptops-and-desktops: 32 + microcontrollers: 25 + servers-and-cloud-computing: 88 + smartphones-and-mobile: 25 + total: 303 + contributions: + external: 43 + internal: 353 + github_engagement: + num_forks: 30 + num_prs: 8 + individual_authors: + alaaeddine-chakroun: 1 + alexandros-lamprineas: 1 + annie-tallund: 1 + arm: 3 + arnaud-de-grandmaison: 1 + basma-el-gaabouri: 1 + ben-clark: 1 + bolt-liu: 2 + brenda-strech: 1 + chaodong-gong,-alex-su,-kieran-hejmadi: 1 + chen-zhang: 1 + christopher-seidl: 7 + cyril-rohr: 1 + daniel-gubay: 1 + daniel-nguyen: 1 + david-spickett: 2 + dawid-borycki: 30 + diego-russo: 1 + diego-russo-and-leandro-nunes: 1 + elham-harirpoush: 2 + florent-lebeau: 5 + "fr\xE9d\xE9ric--lefred--descamps": 2 + gabriel-peterson: 5 + gayathri-narayana-yegna-narayanan: 1 + graham-woodward: 1 + iago-calvo-lista,-arm: 1 + james-whitaker,-arm: 1 + jason-andrews: 89 + joe-stech: 1 + johanna-skinnider: 2 + jonathan-davies: 2 + jose-emilio-munoz-lopez,-arm: 1 + julie-gaskin: 4 + julio-suarez: 5 + kasper-mecklenburg: 1 + koki-mitsunami: 1 + konstantinos-margaritis: 7 + kristof-beyls: 1 + liliya-wu: 1 + mathias-brossard: 1 + michael-hall: 5 + nikhil-gupta,-pareena-verma,-nobel-chowdary-mandepudi,-ravi-malhotra: 1 + odin-shen: 1 + owen-wu,-arm: 2 + pareena-verma: 35 + pareena-verma,-annie-tallund: 1 + pareena-verma,-jason-andrews,-and-zach-lasiuk: 1 + pareena-verma,-joe-stech,-adnan-alsinan: 1 + pranay-bakre: 4 + przemyslaw-wirkus: 1 + rin-dobrescu: 1 + roberto-lopez-mendez: 2 + ronan-synnott: 45 + thirdai: 1 + tianyu-li: 1 + tom-pilar: 1 + uma-ramalingam: 1 + varun-chari,-pareena-verma: 1 + visualsilicon: 1 + ying-yu: 1 + ying-yu,-arm: 1 + zach-lasiuk: 1 + zhengjun-xing: 2 + issues: + avg_close_time_hrs: 0 + num_issues: 12 + percent_closed_vs_total: 0.0 From e4a24c4571fc6ded8935f150fd395ded6f46aeab Mon Sep 17 00:00:00 2001 From: Odin Shen Coder Date: Mon, 18 Nov 2024 13:06:43 +0000 Subject: [PATCH 34/87] Correct weight on Himax yolo LP --- .../learning-paths/microcontrollers/yolo-on-himax/how-to-3.md | 2 +- .../learning-paths/microcontrollers/yolo-on-himax/how-to-4.md | 2 +- .../learning-paths/microcontrollers/yolo-on-himax/how-to-5.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-3.md b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-3.md index b8fde69fd0..7c0cdd05a7 100644 --- a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-3.md +++ b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-3.md @@ -1,6 +1,6 @@ --- title: Flash Firmware onto the Microcontroller -weight: 3 +weight: 4 ### FIXED, DO NOT MODIFY layout: learningpathall diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-4.md b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-4.md index 2aa5632762..6477442f3c 100644 --- a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-4.md +++ b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-4.md @@ -1,6 +1,6 @@ --- title: Run and View Model Results -weight: 3 +weight: 5 ### FIXED, DO NOT MODIFY layout: learningpathall diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-5.md b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-5.md index cb6ad788f2..367cbe1766 100644 --- a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-5.md +++ b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-5.md @@ -1,6 +1,6 @@ --- title: (Optional) Try Different Models -weight: 5 +weight: 6 ### FIXED, DO NOT MODIFY layout: learningpathall From cae073faf243d6ce2232809158336c24241597a5 Mon Sep 17 00:00:00 2001 From: Odin Shen Coder Date: Mon, 18 Nov 2024 15:32:19 +0000 Subject: [PATCH 35/87] Add Grove Vision AI V2 Module link and add one question. --- .../microcontrollers/yolo-on-himax/_index.md | 2 +- .../microcontrollers/yolo-on-himax/_review.md | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/_index.md b/content/learning-paths/microcontrollers/yolo-on-himax/_index.md index 59d523d0b6..eb7fd79dcc 100644 --- a/content/learning-paths/microcontrollers/yolo-on-himax/_index.md +++ b/content/learning-paths/microcontrollers/yolo-on-himax/_index.md @@ -11,7 +11,7 @@ learning_objectives: - Learn how to update firmware on edge device (Himax WiseEye2). prerequisites: - - Seeed Grove Vision AI V2 Module + - Seeed Studio [Grove Vision AI V2 Module](https://wiki.seeedstudio.com/grove_vision_ai_v2/) - OV5647-62 Camera module and included FPC cable - A USB-C cable - A Linux/Windows-based PC on an x86 archiecture. diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/_review.md b/content/learning-paths/microcontrollers/yolo-on-himax/_review.md index 27a46683f1..8049916a7e 100644 --- a/content/learning-paths/microcontrollers/yolo-on-himax/_review.md +++ b/content/learning-paths/microcontrollers/yolo-on-himax/_review.md @@ -10,6 +10,17 @@ review: explanation: > The Grove Vision AI V2 Module can run object detection in real time using the Cortex-M55 and Ethos-U55. + - questions: + question: > + What the IP the Grove Vision AI V2 Module integrated? + answers: + - Cortex-M55 + - Ethous-U55 + - Both Cortex-M55 and Ethous-U55 + correct_answer: 3 + explanation: > + The Himax WiseEye2 module which is based on the Arm Cortex-M55 and Ethos-U55. + # ================================================================================ # FIXED, DO NOT MODIFY From 4f062367b898cd84b6a3fb18b2ad8586a0c0a734 Mon Sep 17 00:00:00 2001 From: Maddy Underwood <167196745+madeline-underwood@users.noreply.github.com> Date: Wed, 20 Nov 2024 17:10:24 +0000 Subject: [PATCH 36/87] Editorial review of update. --- .../install-guides/windows-perf-wpa-plugin.md | 40 +++++++++---------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/content/install-guides/windows-perf-wpa-plugin.md b/content/install-guides/windows-perf-wpa-plugin.md index 255436c30b..59196a27a0 100644 --- a/content/install-guides/windows-perf-wpa-plugin.md +++ b/content/install-guides/windows-perf-wpa-plugin.md @@ -31,17 +31,17 @@ layout: installtoolsall # DO NOT MODIFY. Always true for tool install articles The Windows Performance Analyzer (WPA) plugin connects [WindowsPerf](/learning-paths/laptops-and-desktops/windowsperf/) to the Windows Performance Analyzer. Windows Perf is a lightweight performance profiling tool inspired by Linux Perf and designed for Windows on Arm. Windows Performance Analyzer provides developers with diagnostics and performance tuning. It generates data tables and graphs of Event Tracing for Windows (ETW) events, which are recorded in one of three ways: -- Windows Performance Recorder (WPR) -- Xperf -- or through an assessment that's run in the Assessment Platform. +- By using Windows Performance Recorder (WPR). +- By using Xperf. +- Through an assessment that is run in the Assessment Platform. -WPA can open event trace log (ETL) files, which you can use for analysis. +WPA can open Event Trace Log (ETL) files, which you can use for analysis. -The WPA plugin is built using the [Microsoft Performance Toolkit SDK](https://github.com/microsoft/microsoft-performance-toolkit-sdk), a collection of tools to create and extend performance analysis applications. The plugin parses JSON output from Windows Perf so that it can be visualized in WPA. +The WPA plugin is built using the [Microsoft Performance Toolkit SDK](https://github.com/microsoft/microsoft-performance-toolkit-sdk), which is a collection of tools to create and extend performance analysis applications. The plugin parses JSON output from Windows Perf so that it can be visualized in WPA. -## What are some of the features of the WPA plugin? +## What are the features of the WPA plugin? -The WindowsPerf GUI extension includes features, which are designed to streamline the user experience: +The WindowsPerf GUI extension includes features that are designed to streamline the user experience, and these are detailed below. ### Timeline view @@ -67,25 +67,25 @@ Open the Microsoft Store and search for "windows performance analyzer". ![WPA store](/install-guides/_images/wpa-store.png) -Hover over the card, and the "Free" button will become a "Get" button. Click the "Get" button to start installation. +Hover over the card, and you will see that the **Free** button becomes a **Get** button. Click the **Get** button to start the installation. -Wait for WPA to be installed, and launch it from the Windows menu. +Wait for WPA to be installed, and then launch it from the Windows menu. ![WPA installation #center](/install-guides/_images/wpa-installation.png) {{% notice Note %}} -The WPA plugin requires WPA version `11.0.7.2` or higher. You can check the version by clicking `Help` -> `About Windows Performance Analyzer`. +The WPA plugin requires WPA version `11.0.7.2` or higher. You can check the version by clicking **Help** > **About Windows Performance Analyzer**. {{% /notice %}} Close Windows Performance Analyzer. ### Install the WPA plugin -You are ready to install the WPA plugin, which is a single `.dll` file. +You are now ready to install the WPA plugin, which is a single `.dll` file. Download the `.zip` file from the [Windows Perf WPA plugin GitHub releases page](https://github.com/arm-developer-tools/windowsperf-wpa-plugin/releases) on GitHub. -Alternatively, you can download the `.zip` file from a Command Prompt: +Alternatively, you can download the `.zip` file from a command prompt: ```console mkdir wpa-plugin @@ -101,28 +101,28 @@ tar -xmf wpa-plugin-1.0.2.zip The file `WPAPlugin.dll` is now in your `wpa-plugin` directory. -There are three ways you can use the `WPAPlugin.dll` file: +There are three ways that you can use the `WPAPlugin.dll` file: -#### 1. Start WPA from the command line and pass the plugin directory location using a flag. +##### Option 1: Start WPA from the command line and pass the plugin directory location using a flag. Use the `-addsearchdir` flag to tell `wpa` where to find plugins. -For example, if you downloaded the DLL in your `Downloads` directory, you can run `wpa` as shown below: +For example, if you downloaded the `.dll` in your `Downloads` directory, you can run `wpa` as shown below: ```bash wpa -addsearchdir %USERPROFILE%\Downloads\wpa-plugin-1.0.2 ``` -#### 2. Set an environment variable. +##### Option 2: Set an environment variable. Set the `WPA_ADDITIONAL_SEARCH_DIRECTORIES` environment variable to the location of the `.dll` file. -#### 3. Copy the .dll file to the CustomDataSources directory next to the WPA executable. +##### Option 3: Copy the `.dll` file to the `CustomDataSources` directory next to the WPA executable. The default location is: `C:\\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\CustomDataSources` -## How can I verify the WPA plugin is installed? +## How can I verify that the WPA plugin is installed? To verify the plugin is loaded, launch WPA and the plugin should appear on the Installed Plugins list. @@ -132,12 +132,12 @@ To verify the plugin is loaded, launch WPA and the plugin should appear on the I To open a JSON file directly from the command line, you can use the `-i` flag to specify the file path to open. -For example: to open `timeline_long.json` in your downloads directory, run the command: +For example, to open `timeline_long.json` in your `downloads` directory, run the command: ```console wpa -addsearchdir %USERPROFILE%\Downloads\wpa-plugin-1.0.2 -i %USERPROFILE%\Downloads\timeline_long.json ``` ## How do I uninstall the WPA plugin? -To uninstall the plugin simply delete the `WPAPlugin.dll` file. +To uninstall the plugin, simply delete the `WPAPlugin.dll` file. From 7dcde9a214865803954a72694d51c2283c0335a6 Mon Sep 17 00:00:00 2001 From: GitHub Actions Stats Bot <> Date: Mon, 25 Nov 2024 01:29:04 +0000 Subject: [PATCH 37/87] automatic update of stats files --- data/stats_weekly_data.yml | 84 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) diff --git a/data/stats_weekly_data.yml b/data/stats_weekly_data.yml index d47c32756f..280ec08538 100644 --- a/data/stats_weekly_data.yml +++ b/data/stats_weekly_data.yml @@ -3918,3 +3918,87 @@ avg_close_time_hrs: 0 num_issues: 12 percent_closed_vs_total: 0.0 +- a_date: '2024-11-25' + content: + cross-platform: 25 + embedded-systems: 19 + install-guides: 89 + laptops-and-desktops: 32 + microcontrollers: 25 + servers-and-cloud-computing: 88 + smartphones-and-mobile: 25 + total: 303 + contributions: + external: 43 + internal: 353 + github_engagement: + num_forks: 30 + num_prs: 9 + individual_authors: + alaaeddine-chakroun: 1 + alexandros-lamprineas: 1 + annie-tallund: 1 + arm: 3 + arnaud-de-grandmaison: 1 + basma-el-gaabouri: 1 + ben-clark: 1 + bolt-liu: 2 + brenda-strech: 1 + chaodong-gong,-alex-su,-kieran-hejmadi: 1 + chen-zhang: 1 + christopher-seidl: 7 + cyril-rohr: 1 + daniel-gubay: 1 + daniel-nguyen: 1 + david-spickett: 2 + dawid-borycki: 30 + diego-russo: 1 + diego-russo-and-leandro-nunes: 1 + elham-harirpoush: 2 + florent-lebeau: 5 + "fr\xE9d\xE9ric--lefred--descamps": 2 + gabriel-peterson: 5 + gayathri-narayana-yegna-narayanan: 1 + graham-woodward: 1 + iago-calvo-lista,-arm: 1 + james-whitaker,-arm: 1 + jason-andrews: 89 + joe-stech: 1 + johanna-skinnider: 2 + jonathan-davies: 2 + jose-emilio-munoz-lopez,-arm: 1 + julie-gaskin: 4 + julio-suarez: 5 + kasper-mecklenburg: 1 + koki-mitsunami: 1 + konstantinos-margaritis: 7 + kristof-beyls: 1 + liliya-wu: 1 + mathias-brossard: 1 + michael-hall: 5 + nikhil-gupta,-pareena-verma,-nobel-chowdary-mandepudi,-ravi-malhotra: 1 + odin-shen: 1 + owen-wu,-arm: 2 + pareena-verma: 35 + pareena-verma,-annie-tallund: 1 + pareena-verma,-jason-andrews,-and-zach-lasiuk: 1 + pareena-verma,-joe-stech,-adnan-alsinan: 1 + pranay-bakre: 4 + przemyslaw-wirkus: 1 + rin-dobrescu: 1 + roberto-lopez-mendez: 2 + ronan-synnott: 45 + thirdai: 1 + tianyu-li: 1 + tom-pilar: 1 + uma-ramalingam: 1 + varun-chari,-pareena-verma: 1 + visualsilicon: 1 + ying-yu: 1 + ying-yu,-arm: 1 + zach-lasiuk: 1 + zhengjun-xing: 2 + issues: + avg_close_time_hrs: 0 + num_issues: 13 + percent_closed_vs_total: 0.0 From 1b79410746eef75c109bb935d033d28a82a64f76 Mon Sep 17 00:00:00 2001 From: GitHub Actions Stats Bot <> Date: Mon, 25 Nov 2024 02:34:07 +0000 Subject: [PATCH 38/87] automatic update of stats files --- data/stats_weekly_data.yml | 84 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) diff --git a/data/stats_weekly_data.yml b/data/stats_weekly_data.yml index d47c32756f..280ec08538 100644 --- a/data/stats_weekly_data.yml +++ b/data/stats_weekly_data.yml @@ -3918,3 +3918,87 @@ avg_close_time_hrs: 0 num_issues: 12 percent_closed_vs_total: 0.0 +- a_date: '2024-11-25' + content: + cross-platform: 25 + embedded-systems: 19 + install-guides: 89 + laptops-and-desktops: 32 + microcontrollers: 25 + servers-and-cloud-computing: 88 + smartphones-and-mobile: 25 + total: 303 + contributions: + external: 43 + internal: 353 + github_engagement: + num_forks: 30 + num_prs: 9 + individual_authors: + alaaeddine-chakroun: 1 + alexandros-lamprineas: 1 + annie-tallund: 1 + arm: 3 + arnaud-de-grandmaison: 1 + basma-el-gaabouri: 1 + ben-clark: 1 + bolt-liu: 2 + brenda-strech: 1 + chaodong-gong,-alex-su,-kieran-hejmadi: 1 + chen-zhang: 1 + christopher-seidl: 7 + cyril-rohr: 1 + daniel-gubay: 1 + daniel-nguyen: 1 + david-spickett: 2 + dawid-borycki: 30 + diego-russo: 1 + diego-russo-and-leandro-nunes: 1 + elham-harirpoush: 2 + florent-lebeau: 5 + "fr\xE9d\xE9ric--lefred--descamps": 2 + gabriel-peterson: 5 + gayathri-narayana-yegna-narayanan: 1 + graham-woodward: 1 + iago-calvo-lista,-arm: 1 + james-whitaker,-arm: 1 + jason-andrews: 89 + joe-stech: 1 + johanna-skinnider: 2 + jonathan-davies: 2 + jose-emilio-munoz-lopez,-arm: 1 + julie-gaskin: 4 + julio-suarez: 5 + kasper-mecklenburg: 1 + koki-mitsunami: 1 + konstantinos-margaritis: 7 + kristof-beyls: 1 + liliya-wu: 1 + mathias-brossard: 1 + michael-hall: 5 + nikhil-gupta,-pareena-verma,-nobel-chowdary-mandepudi,-ravi-malhotra: 1 + odin-shen: 1 + owen-wu,-arm: 2 + pareena-verma: 35 + pareena-verma,-annie-tallund: 1 + pareena-verma,-jason-andrews,-and-zach-lasiuk: 1 + pareena-verma,-joe-stech,-adnan-alsinan: 1 + pranay-bakre: 4 + przemyslaw-wirkus: 1 + rin-dobrescu: 1 + roberto-lopez-mendez: 2 + ronan-synnott: 45 + thirdai: 1 + tianyu-li: 1 + tom-pilar: 1 + uma-ramalingam: 1 + varun-chari,-pareena-verma: 1 + visualsilicon: 1 + ying-yu: 1 + ying-yu,-arm: 1 + zach-lasiuk: 1 + zhengjun-xing: 2 + issues: + avg_close_time_hrs: 0 + num_issues: 13 + percent_closed_vs_total: 0.0 From ee922c1159a4f62c1b7e5a8422fb344c9865f332 Mon Sep 17 00:00:00 2001 From: Maddy Underwood <167196745+madeline-underwood@users.noreply.github.com> Date: Mon, 25 Nov 2024 06:42:47 +0000 Subject: [PATCH 39/87] Editorial of index and intro. --- .../cross-platform/simd-info-demo/_index.md | 18 +++++++++--------- .../simd-info-demo/intro-to-simdinfo.md | 8 ++++---- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/content/learning-paths/cross-platform/simd-info-demo/_index.md b/content/learning-paths/cross-platform/simd-info-demo/_index.md index cedd43e124..bc2a2cc83a 100644 --- a/content/learning-paths/cross-platform/simd-info-demo/_index.md +++ b/content/learning-paths/cross-platform/simd-info-demo/_index.md @@ -1,30 +1,30 @@ --- title: Introduction to SIMD.info -draft: true + cascade: - draft: true + minutes_to_complete: 30 -who_is_this_for: This is for advanced topic for software developers interested in porting SIMD code across Arm platforms. +who_is_this_for: This is for software developers interested in porting SIMD code across Arm platforms. learning_objectives: - - Learn how to use SIMD.info’s tools and features, such as navigation, search, and comparison, to simplify the process of finding equivalent SIMD intrinsics between architectures and improving code portability. + - Describe how to use SIMD.info’s tools and features, such as navigation, search, and comparison, to simplify the process of finding equivalent SIMD intrinsics between architectures and improving code portability. prerequisites: - A basic understanding of SIMD. - - Access to an Arm platform with SIMD supported engine, with recent versions of a C compiler (Clang or GCC) installed. + - Access to an Arm platform with a SIMD supported engine, with recent versions of a C compiler such as Clang or GCC installed. -author_primary: Georgios Mermigkis & Konstantinos Margaritis, VectorCamp +author_primary: Georgios Mermigkis and Konstantinos Margaritis, VectorCamp ### Tags skilllevels: Advanced subjects: Performance and Architecture armips: - - Aarch64 - - Armv8-a - - Armv9-a + - AArch64 + - Armv8-A + - Armv9-A tools_software_languages: - GCC - Clang diff --git a/content/learning-paths/cross-platform/simd-info-demo/intro-to-simdinfo.md b/content/learning-paths/cross-platform/simd-info-demo/intro-to-simdinfo.md index 24df6cce42..84466ff1ec 100644 --- a/content/learning-paths/cross-platform/simd-info-demo/intro-to-simdinfo.md +++ b/content/learning-paths/cross-platform/simd-info-demo/intro-to-simdinfo.md @@ -7,10 +7,10 @@ layout: learningpathall --- ### The Challenge of SIMD Code Portability -One of the biggest challenges developers face when working with SIMD code is making it portable across different platforms. SIMD instructions are designed to increase performance by executing the same operation on multiple data elements in parallel. However, each architecture has its own set of SIMD instructions, making it difficult to write code that works on all of them without major changes to the code and/or algorithm. +One of the biggest challenges developers face when working with SIMD code is making it portable across different platforms. SIMD instructions are designed to improve performance by executing the same operation on multiple data elements in parallel. Each architecture has its own set of SIMD instructions however, making it difficult to write code that works on all of them without major changes to the code or the algorithm, or both. -To port software written using Intel intrinsics, like SSE/AVX/AVX512, to Arm Neon, you have pay attention to data handling with the different instruction sets. +For example, to port software written using Intel intrinsics, such as SSE/AVX/AVX512, to Arm Neon, you have pay attention to data handling with the different instruction sets. -Having to port the code between architectures can increase development time and introduce the risk of errors during the porting process. Currently, developers rely on ISA documentation and manually search across various vendor platforms like [Arm Developer](https://developer.arm.com/architectures/instruction-sets/intrinsics/) and [Intel Intrinsics Guide](https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html) to find equivalent instructions. +Porting the code between architectures can increase development time and introduce the risk of errors. Currently, developers rely on ISA documentation and must manually search across various vendor platforms such as [Arm Developer](https://developer.arm.com/architectures/instruction-sets/intrinsics/) and [Intel Intrinsics Guide](https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html) to find equivalent instructions. -[SIMD.info](https://simd.info) aims to solve this by helping you find equivalent instructions and providing a more streamlined way to adapt your code for different architectures. +[SIMD.info](https://simd.info) aims to solve this problem by helping you find equivalent instructions and providing a more streamlined way to adapt your code for different architectures. From a7d92327b464688b9c47f49c7bfb8f27d97bd81b Mon Sep 17 00:00:00 2001 From: Maddy Underwood <167196745+madeline-underwood@users.noreply.github.com> Date: Mon, 25 Nov 2024 07:05:27 +0000 Subject: [PATCH 40/87] Editorial for description section. --- .../simd-info-demo/simdinfo-description.md | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/content/learning-paths/cross-platform/simd-info-demo/simdinfo-description.md b/content/learning-paths/cross-platform/simd-info-demo/simdinfo-description.md index 678d08327c..7c2732794c 100644 --- a/content/learning-paths/cross-platform/simd-info-demo/simdinfo-description.md +++ b/content/learning-paths/cross-platform/simd-info-demo/simdinfo-description.md @@ -7,23 +7,25 @@ layout: learningpathall --- ### Comprehensive SIMD.info Capabilities -**[SIMD.info](https://simd.info/)** offers a variety of powerful tools to help developers work more efficiently with SIMD code across different architectures. With a database of over 10,000 intrinsics, it provides detailed information to support effective SIMD development. +**[SIMD.info](https://simd.info/)** offers a variety of powerful tools to enable developers to work more efficiently with SIMD code across different architectures. -For each intrinsic, SIMD.info provides comprehensive details, including: +With a database of over 10,000 intrinsics, it provides detailed information to support effective SIMD development. -1. **Purpose**: A brief description of what the intrinsic does and its primary use case. -2. **Result**: Explanation of the output or result of the intrinsic. -3. **Example**: A code snippet demonstrating how to use the intrinsic. -4. **Prototypes**: Function prototypes for different programming languages (currently C/C++). -5. **Assembly Instruction**: The corresponding assembly instruction used by the intrinsic. -6. **Notes**: Any additional notes or caveats about the intrinsic. -7. **Architecture**: List of architectures that support the intrinsic -8. **Link(s) to Official Documentation** +For each intrinsic, SIMD.info provides the following information: + +* Purpose: a brief description of what the intrinsic does and its primary use case. +* Result: an explanation of the output or result of the intrinsic. +* Example: a code snippet demonstrating how to use the intrinsic. +* Prototypes: function prototypes for different programming languages (currently C/C++). +* Assembly Instruction: the corresponding assembly instruction used by the intrinsic. +* Notes: any additional notes or caveats about the intrinsic. +* Architecture: a list of architectures that support the intrinsic. +* Link(s) to Official Documentation This detailed information ensures you have all the necessary resources to effectively use and port SIMD instructions across different platforms. Each feature is designed to simplify navigation, improve the search for equivalent instructions, and foster a collaborative environment for knowledge-sharing. -- **Tree-based navigation:** **SIMD.info** uses a clear, hierarchical layout to organize instructions. It categorizes instructions into broad groups like **Arithmetic**, which are further divided into specific subcategories such as **Vector Add** and **Vector Subtract**. This organized structure makes it straightforward to browse through SIMD instruction sets across various platforms, allowing you to efficiently find and access the exact instructions you need. -An example of how the tree structure looks like: +- **Tree-based navigation:** **SIMD.info** uses a clear, hierarchical layout to organize instructions. It categorizes instructions into broad groups like **Arithmetic**, which are further divided into specific subcategories such as **Vector Add** and **Vector Subtract**. This organized structure enables you to browse through SIMD instruction sets across various platforms, allowing you to efficiently find and access the exact instructions you need. +Here is an example of the tree structure: - **Arithmetic** From b729d997a7009eedf318a7880c88f03a80e30b43 Mon Sep 17 00:00:00 2001 From: Maddy Underwood <167196745+madeline-underwood@users.noreply.github.com> Date: Mon, 25 Nov 2024 07:09:08 +0000 Subject: [PATCH 41/87] Editorial description. --- .../simd-info-demo/simdinfo-description.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/content/learning-paths/cross-platform/simd-info-demo/simdinfo-description.md b/content/learning-paths/cross-platform/simd-info-demo/simdinfo-description.md index 7c2732794c..1b2fb45e12 100644 --- a/content/learning-paths/cross-platform/simd-info-demo/simdinfo-description.md +++ b/content/learning-paths/cross-platform/simd-info-demo/simdinfo-description.md @@ -20,9 +20,9 @@ For each intrinsic, SIMD.info provides the following information: * Assembly Instruction: the corresponding assembly instruction used by the intrinsic. * Notes: any additional notes or caveats about the intrinsic. * Architecture: a list of architectures that support the intrinsic. -* Link(s) to Official Documentation +* Link(s) to official documentation. -This detailed information ensures you have all the necessary resources to effectively use and port SIMD instructions across different platforms. Each feature is designed to simplify navigation, improve the search for equivalent instructions, and foster a collaborative environment for knowledge-sharing. +This detailed information ensures that you have all the necessary resources to effectively use and port SIMD instructions across different platforms. Each feature is designed to simplify navigation, improve the search for equivalent instructions, and foster a collaborative environment for knowledge-sharing. - **Tree-based navigation:** **SIMD.info** uses a clear, hierarchical layout to organize instructions. It categorizes instructions into broad groups like **Arithmetic**, which are further divided into specific subcategories such as **Vector Add** and **Vector Subtract**. This organized structure enables you to browse through SIMD instruction sets across various platforms, allowing you to efficiently find and access the exact instructions you need. Here is an example of the tree structure: @@ -46,10 +46,10 @@ Here is an example of the tree structure: - **Bit Clear** - **XOR** -- **Advanced search functionality:** With its robust search engine, **SIMD.info** allows you to either search for a specific intrinsic (e.g. `vaddq_f64`) or enter more general terms (e.g. *How to add 2 vectors*), and it will return a list of the corresponding intrinsics. You can also filter results based on the specific engine you're working with, such as **NEON**, **SSE4.2**, **AVX**, **AVX512**, **VSX**. This functionality streamlines the process of finding the right commands tailored to your needs. +- **Advanced search functionality:** With its robust search engine, **SIMD.info** allows you to either search for a specific intrinsic (for example `vaddq_f64`) or enter more general terms (for example *How to add 2 vectors*), and it returns a list of the corresponding intrinsics. You can also filter results based on the specific engine you're working with, such as **NEON**, **SSE4.2**, **AVX**, **AVX512**, **VSX**. This functionality streamlines the process of finding the right commands tailored to your needs. -- **Comparison tools:** This feature lets you directly compare SIMD instructions from different (or the same) platforms side by side, offering a clear view of the similarities and differences. It’s a very helpful tool for porting code across architectures, as it ensures accuracy and efficiency. +- **Comparison tools:** This feature lets you directly compare SIMD instructions from different (or the same) platforms side by side, offering a clear view of the similarities and differences. It’s a helpful tool for porting code across architectures, as it ensures accuracy and efficiency. - **Discussion forum (like StackOverflow):** The integrated discussion forum, powered by **[discuss](https://disqus.com/)** allows users to ask questions, share insights, and troubleshoot problems together. This community-driven space ensures that you’re never stuck on a complex issue without support, fostering collaboration and knowledge-sharing among SIMD developers. Imagine something like **StackOverflow** but specific to SIMD intrinsics. -You can now learn how to use these features in the context of an actual example. +Now let's look at these features in the context of a real example. From 99607cc6ad480cdd170945406e9f5b38d5945544 Mon Sep 17 00:00:00 2001 From: Maddy Underwood <167196745+madeline-underwood@users.noreply.github.com> Date: Mon, 25 Nov 2024 17:41:31 +0000 Subject: [PATCH 42/87] Further editorial updates. --- .../cross-platform/simd-info-demo/_index.md | 2 +- .../simd-info-demo/intro-to-simdinfo.md | 2 +- .../simd-info-demo/simdinfo-description.md | 63 +++++++++++-------- .../simd-info-demo/simdinfo-example1.md | 8 +-- 4 files changed, 43 insertions(+), 32 deletions(-) diff --git a/content/learning-paths/cross-platform/simd-info-demo/_index.md b/content/learning-paths/cross-platform/simd-info-demo/_index.md index bc2a2cc83a..7340831211 100644 --- a/content/learning-paths/cross-platform/simd-info-demo/_index.md +++ b/content/learning-paths/cross-platform/simd-info-demo/_index.md @@ -7,7 +7,7 @@ cascade: minutes_to_complete: 30 -who_is_this_for: This is for software developers interested in porting SIMD code across Arm platforms. +who_is_this_for: This Learning Path is for software developers who are interested in porting SIMD code across Arm platforms. learning_objectives: - Describe how to use SIMD.info’s tools and features, such as navigation, search, and comparison, to simplify the process of finding equivalent SIMD intrinsics between architectures and improving code portability. diff --git a/content/learning-paths/cross-platform/simd-info-demo/intro-to-simdinfo.md b/content/learning-paths/cross-platform/simd-info-demo/intro-to-simdinfo.md index 84466ff1ec..28380fce64 100644 --- a/content/learning-paths/cross-platform/simd-info-demo/intro-to-simdinfo.md +++ b/content/learning-paths/cross-platform/simd-info-demo/intro-to-simdinfo.md @@ -13,4 +13,4 @@ For example, to port software written using Intel intrinsics, such as SSE/AVX/AV Porting the code between architectures can increase development time and introduce the risk of errors. Currently, developers rely on ISA documentation and must manually search across various vendor platforms such as [Arm Developer](https://developer.arm.com/architectures/instruction-sets/intrinsics/) and [Intel Intrinsics Guide](https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html) to find equivalent instructions. -[SIMD.info](https://simd.info) aims to solve this problem by helping you find equivalent instructions and providing a more streamlined way to adapt your code for different architectures. +[SIMD.info](https://simd.info) aims to solve this problem by helping developers find equivalent instructions and providing a streamlined way to adapt code for different architectures. diff --git a/content/learning-paths/cross-platform/simd-info-demo/simdinfo-description.md b/content/learning-paths/cross-platform/simd-info-demo/simdinfo-description.md index 1b2fb45e12..5184d20851 100644 --- a/content/learning-paths/cross-platform/simd-info-demo/simdinfo-description.md +++ b/content/learning-paths/cross-platform/simd-info-demo/simdinfo-description.md @@ -6,50 +6,61 @@ weight: 3 layout: learningpathall --- -### Comprehensive SIMD.info Capabilities +#### SIMD.info categories of information **[SIMD.info](https://simd.info/)** offers a variety of powerful tools to enable developers to work more efficiently with SIMD code across different architectures. With a database of over 10,000 intrinsics, it provides detailed information to support effective SIMD development. -For each intrinsic, SIMD.info provides the following information: +For each intrinsic, SIMD.info provides information in the following categories: + +* Purpose: a brief description of what the intrinsic does and the primary use case. -* Purpose: a brief description of what the intrinsic does and its primary use case. * Result: an explanation of the output or result of the intrinsic. + * Example: a code snippet demonstrating how to use the intrinsic. + * Prototypes: function prototypes for different programming languages (currently C/C++). -* Assembly Instruction: the corresponding assembly instruction used by the intrinsic. -* Notes: any additional notes or caveats about the intrinsic. -* Architecture: a list of architectures that support the intrinsic. + +* Assembly Instruction: the corresponding assembly instruction that the intrinsic uses. + +* Notes: any further information about the intrinsic, such as caveats. + +* Architecture: a list of architecture that supports the intrinsic. + * Link(s) to official documentation. This detailed information ensures that you have all the necessary resources to effectively use and port SIMD instructions across different platforms. Each feature is designed to simplify navigation, improve the search for equivalent instructions, and foster a collaborative environment for knowledge-sharing. -- **Tree-based navigation:** **SIMD.info** uses a clear, hierarchical layout to organize instructions. It categorizes instructions into broad groups like **Arithmetic**, which are further divided into specific subcategories such as **Vector Add** and **Vector Subtract**. This organized structure enables you to browse through SIMD instruction sets across various platforms, allowing you to efficiently find and access the exact instructions you need. -Here is an example of the tree structure: - - - - **Arithmetic** - - **Arithmetic (Complex Numbers)** - - **Boolean Logic & Bit Manipulation** - - **Boolean AND** - - **Boolean AND NOT** - - **Boolean AND NOT 128-bit vector** - - **Boolean AND NOT 16-bit signed integers** - - **Boolean AND NOT 16-bit unsigned integers** - - **Boolean AND NOT 256-bit vector** - - **Boolean AND NOT 32-bit floats** - - **Boolean AND NOT 32-bit signed integers** +#### Tree-based navigation +SIMD.info uses a clear, hierarchical layout to present the instructions. It categorizes instructions into broad groups such as **Arithmetic**, which are further divided into specific subcategories such as **Vector Add**, and **Vector Subtract**. + +This organized structure enables you to browse through SIMD instruction sets across various platforms, allowing you to efficiently find and access the instructions that you need. Below is an example of the tree structure: + + - Arithmetic + - Arithmetic (Complex Numbers) + - Boolean Logic & Bit Manipulation + - Boolean AND + - Boolean AND NOT + - Boolean AND NOT 128-bit vector + - Boolean AND NOT 16-bit signed integers + - Boolean AND NOT 16-bit unsigned integers + - Boolean AND NOT 256-bit vector + - Boolean AND NOT 32-bit float + - Boolean AND NOT 32-bit signed integers - AVX512: mm512_andnot_epi32 - NEON: vbic_s32 - NEON: vbicq_s32 - VSX: vec_andc - - **Bit Clear** - - **XOR** + - Bit Clear + - XOR -- **Advanced search functionality:** With its robust search engine, **SIMD.info** allows you to either search for a specific intrinsic (for example `vaddq_f64`) or enter more general terms (for example *How to add 2 vectors*), and it returns a list of the corresponding intrinsics. You can also filter results based on the specific engine you're working with, such as **NEON**, **SSE4.2**, **AVX**, **AVX512**, **VSX**. This functionality streamlines the process of finding the right commands tailored to your needs. +#### Advanced search functionality +With its robust search engine, SIMD.info allows you to either search for a specific intrinsic, for example `vaddq_f64`, or enter more general terms, for example "How to add 2 vectors", and it returns a list of the corresponding intrinsics. You can also filter results based on the specific engine you're working with, such as **NEON**, **SSE4.2**, **AVX**, **AVX512**, **VSX**. This functionality streamlines the process of finding the right commands tailored to your needs. -- **Comparison tools:** This feature lets you directly compare SIMD instructions from different (or the same) platforms side by side, offering a clear view of the similarities and differences. It’s a helpful tool for porting code across architectures, as it ensures accuracy and efficiency. +#### Comparison tools +This feature lets you directly compare SIMD instructions from different, or the same, platforms side by side, offering a clear view of the similarities and differences. It’s a helpful tool for porting code across architectures, as it ensures accuracy and efficiency. -- **Discussion forum (like StackOverflow):** The integrated discussion forum, powered by **[discuss](https://disqus.com/)** allows users to ask questions, share insights, and troubleshoot problems together. This community-driven space ensures that you’re never stuck on a complex issue without support, fostering collaboration and knowledge-sharing among SIMD developers. Imagine something like **StackOverflow** but specific to SIMD intrinsics. +#### Discussion forum +The integrated discussion forum, powered by **[discuss](https://disqus.com/)**, allows users to ask questions, share insights, and troubleshoot problems together. This community-driven space ensures that you’re never stuck on a complex issue without support. It fosters collaboration and knowledge-sharing among SIMD developers. Imagine something like **[StackOverflow](https://stackoverflow.com/)** but specific to SIMD intrinsics. Now let's look at these features in the context of a real example. diff --git a/content/learning-paths/cross-platform/simd-info-demo/simdinfo-example1.md b/content/learning-paths/cross-platform/simd-info-demo/simdinfo-example1.md index be115692d2..7e08c8ac71 100644 --- a/content/learning-paths/cross-platform/simd-info-demo/simdinfo-example1.md +++ b/content/learning-paths/cross-platform/simd-info-demo/simdinfo-example1.md @@ -6,9 +6,9 @@ weight: 4 layout: learningpathall --- -Consider the following C example that uses Intel SSE4.2 intrinsics. +Have a look at the following C example that uses Intel SSE4.2 intrinsics. -On an x86_64 Linux development machine, create a file named `calculation_sse.c` with the contents shown below: +On an x86_64 Linux development machine, create a file named `calculation_sse.c` using the contents as shown below: ```C #include @@ -52,7 +52,7 @@ int main() { } ``` -The program first compares whether elements in one vector are greater than those in another vector, prints the result, and then proceeds to compute the addition of two vectors, multiplies the result with one of the vectors, and finally takes the square root of the multiplication result: +The program first compares whether elements in one vector are greater than those in another vector, prints the result, and then proceeds to compute the addition of two vectors, multiplies the result with one of the vectors, and finally takes the square root of the multiplication result. Compile the code on your Linux x86_64 system that supports **SSE4.2**: @@ -78,4 +78,4 @@ Multiplication Result: 2.00 12.00 36.00 80.00 Square Root Result: 1.41 3.46 6.00 8.94 ``` -It is imperative that you run the code first on an Intel x86_64 reference platform, to make sure you understand how it works and what kind of results are being expected. +It is imperative that you run the code first on an Intel x86_64 reference platform, to make sure that you understand how it works and what kind of results you can expect. From ee2641d13b046ceb0d01ee3a23297dc437fdceed Mon Sep 17 00:00:00 2001 From: Maddy Underwood <167196745+madeline-underwood@users.noreply.github.com> Date: Mon, 25 Nov 2024 18:12:29 +0000 Subject: [PATCH 43/87] Editorial update. --- .../simd-info-demo/simdinfo-example1-cont.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/content/learning-paths/cross-platform/simd-info-demo/simdinfo-example1-cont.md b/content/learning-paths/cross-platform/simd-info-demo/simdinfo-example1-cont.md index 6a8e1c4463..59ec4ba710 100644 --- a/content/learning-paths/cross-platform/simd-info-demo/simdinfo-example1-cont.md +++ b/content/learning-paths/cross-platform/simd-info-demo/simdinfo-example1-cont.md @@ -11,7 +11,7 @@ Now that you have a clear view of the example, you can start the process of port This is where [SIMD.info](https://simd.info/) comes in. -In SIMD programming, the primary concern is the integrity and accuracy of the calculations. Ensuring that these calculations are done correctly is crucial. Performance almost always comes second. +In SIMD programming, the primary focus is the integrity and accuracy of the calculations. Ensuring that these calculations are done correctly is crucial. Performance almost always comes second. For the operations in your **SSE4.2** example, you have the following intrinsics: @@ -20,11 +20,11 @@ For the operations in your **SSE4.2** example, you have the following intrinsics - **`_mm_mul_ps`** - **`_mm_sqrt_ps`** -To gain a deeper understanding of how these intrinsics work and to get detailed descriptions, you can use the search feature on **SIMD.info**. Simply enter the intrinsic's name into the search bar. You can either select from the suggested results or perform a direct search to find detailed information about each intrinsic. +To gain a deeper understanding of how these intrinsics work and to surface detailed descriptions, you can use the search feature on **SIMD.info**. Simply enter the intrinsic's name into the search bar. You can either select from the suggested results or perform a direct search to retrieve detailed information about each intrinsic. -1. By searching [**`_mm_add_ps`**](https://simd.info/c_intrinsic/_mm_add_ps/) you get information about it's purpose, result-type, assembly instruction, prototype and an example about it. By clicking the **engine** option **"NEON"** you can find it's [equivalents](https://simd.info/eq/_mm_add_ps/NEON/) for this engine. The equivalents are: **`vaddq_f32`**, **`vadd_f32`**. [Intrinsics comparison](https://simd.info/c-intrinsics-compare?compare=vaddq_f32:vadd_f32) will help you find the right one. Based on the prototype provided, you would choose [**`vaddq_f32`**](https://simd.info/c_intrinsic/vaddq_f32/) because it works with 128-bit vectors which is the same as **SSE4.2**. +1. By searching [**`_mm_add_ps`**](https://simd.info/c_intrinsic/_mm_add_ps/) you get information about its purpose, result-type, assembly instruction, prototype, and an example demonstration. By clicking the **engine** option **"NEON"** you can find its [equivalents](https://simd.info/eq/_mm_add_ps/NEON/) for this engine. The equivalents are: **`vaddq_f32`**, **`vadd_f32`**. [Intrinsics comparison](https://simd.info/c-intrinsics-compare?compare=vaddq_f32:vadd_f32) will help you find the right one. Based on the prototype provided, you can choose [**`vaddq_f32`**](https://simd.info/c_intrinsic/vaddq_f32/) because it works with 128-bit vectors which is the same as **SSE4.2**. -2. Moving to the next intrinsic, **`_mm_mul_ps`**, you will use the [Intrinsics Tree](https://simd.info/tag-tree) on **SIMD.info** to find the equivalent. Start by expanding the **Arithmetic** branch and then navigate to the branch **Vector Multiply**. Since you are working with 32-bit floats, open the **Vector Multiply 32-bit floats** branch, where you will find several options. The recommended choice is [**`vmulq_f32`**](https://simd.info/c_intrinsic/vmulq_f32/), following the same reasoning as before—it operates on 128-bit vectors. +2. Moving to the next intrinsic, **`_mm_mul_ps`**, you can use the [Intrinsics Tree](https://simd.info/tag-tree) on **SIMD.info** to find the equivalent. Start by expanding the **Arithmetic** branch and then navigate to the branch **Vector Multiply**. As you are working with 32-bit floats, open the **Vector Multiply 32-bit floats** branch, where you will find several options. The recommended choice is [**`vmulq_f32`**](https://simd.info/c_intrinsic/vmulq_f32/), following the same reasoning as before—it operates on 128-bit vectors. 3. For the third intrinsic, **`_mm_sqrt_ps`**, the easiest way to find the corresponding **NEON** intrinsic is by typing **"Square Root"** into the search bar on SIMD.info. From the [search results](https://simd.info/search?search=Square+Root&simd_engines=1&simd_engines=2&simd_engines=3&simd_engines=4&simd_engines=5), look for the float-specific version and select [**`vsqrtq_f32`**](https://simd.info/c_intrinsic/vsqrtq_f32/), which, like the others, works with 128-bit vectors. In the equivalents section regarding **SSE4.2**, you can clearly see that **`_mm_sqrt_ps`** has its place as a direct match for this operation. From 32396304c7595514174db46871bfe7e2ecdbaa8c Mon Sep 17 00:00:00 2001 From: Jason Andrews Date: Mon, 25 Nov 2024 16:02:03 -0600 Subject: [PATCH 44/87] First review of OpenCV on Windows Learning Path --- .../win-opencv/1-opencv-compilers.md | 15 ++-- .../win-opencv/2-1-build-msvc.md | 72 ++++++++++++------- .../win-opencv/2-2-build-clang.md | 42 ++++++----- .../laptops-and-desktops/win-opencv/_index.md | 6 +- .../win-opencv/_next-steps.md | 8 +-- .../win-opencv/_review.md | 2 +- 6 files changed, 86 insertions(+), 59 deletions(-) diff --git a/content/learning-paths/laptops-and-desktops/win-opencv/1-opencv-compilers.md b/content/learning-paths/laptops-and-desktops/win-opencv/1-opencv-compilers.md index 23001219e6..0395709011 100644 --- a/content/learning-paths/laptops-and-desktops/win-opencv/1-opencv-compilers.md +++ b/content/learning-paths/laptops-and-desktops/win-opencv/1-opencv-compilers.md @@ -6,7 +6,8 @@ weight: 2 layout: learningpathall --- -## OpenCV +## What is OpenCV? + OpenCV (Open Source Computer Vision Library) is a popular, open-source library that developers use to build computer vision applications. It provides a set of tools and functions that help you handle tasks related to images and videos without needing to write everything from scratch. Here’s what developers should know: @@ -24,19 +25,19 @@ Here’s what developers should know: * __Community and Resources__: Being open-source and widely adopted, there is a large community of developers contributing to and supporting OpenCV. This makes it easier to find tutorials, documentation, and answers to questions. -## Compilers for Windows on Arm Development +## Which compilers are available for Windows on Arm Development? -When building applications for Windows on Arm, both MSVC (Microsoft Visual C++) and Clang are options for developers, each with its own advantages. +MSVC (Microsoft Visual C++) and Clang are options for developers building Windows on Arm applications. * __MSVC__: A compiler developed by Microsoft that’s part of the Visual Studio IDE. It’s designed specifically for Windows and integrates well with the Windows development ecosystem. * __Clang__: An open-source compiler that is part of the LLVM project. It’s known for its modern design and cross-platform capabilities. -MSVC is the go-to for Windows-focused projects needing seamless integration with Visual Studio. Clang is ideal for cross-platform projects or when using modern C++ features with flexibility. +MSVC is ideal for Windows-focused projects needing seamless integration with Visual Studio. Clang is ideal for cross-platform projects or when using modern C++ features. ## Before you begin -Any Windows on Arm machine which has the required tools installed can be used for this Learning Path. You will learn the build methods using both MSVC and Clang. +Any Windows on Arm machine which has the required tools installed can be used for this Learning Path. You will learn how to build OpenCV using both MSVC and Clang. Please install the following tools required for both methods. @@ -52,7 +53,7 @@ The instructions were tested with the version 3.28.1 There is currently no Arm version of Git. Install the 64-bit x86 version. {{% /notice %}} -Follow the link to intall the required tools for a method using MSVC. +Follow the link to install the required tools for a method using MSVC. * [Visual Studio 2022 or higher](/install-guides/vs-woa). @@ -62,7 +63,7 @@ The instructions were tested with Visual Studio 2022. To build using Clang, please install the following. -* [LLVM](install-guides/llvm-woa/) +* [LLVM](/install-guides/llvm-woa/) {{% notice Note %}} The instructions were tested with the version 18.1.8. diff --git a/content/learning-paths/laptops-and-desktops/win-opencv/2-1-build-msvc.md b/content/learning-paths/laptops-and-desktops/win-opencv/2-1-build-msvc.md index 3a3c819e9a..ef2f30856e 100644 --- a/content/learning-paths/laptops-and-desktops/win-opencv/2-1-build-msvc.md +++ b/content/learning-paths/laptops-and-desktops/win-opencv/2-1-build-msvc.md @@ -6,11 +6,11 @@ weight: 3 layout: learningpathall --- -## Build OpenCV with MSVC +## How do I build OpenCV with MSVC? -### Clone OpenCV repo +### Clone the OpenCV repository -Open up a Windows Powershell and checkout the source tree: +Open up a Windows PowerShell and checkout the source tree: ```bash git clone https://github.com/opencv/opencv @@ -19,12 +19,14 @@ git checkout tags/4.10.0 ``` {{% notice Note %}} -You might be able to use a later version. These steps have been tested with the version 4.10.0. +You might be able to use a later version, but these steps have been tested with the version 4.10.0. {{% /notice %}} ### Pre-build configuration -Here, you will use CMake from the command line. First, run the following command to run the pre-build configuration. +You can use CMake from the command line. + +First, run the following command to run the pre-build configuration. ```bash mkdir build_msvc @@ -51,14 +53,14 @@ The given options specify the following: - The source code is located one level above the current directory. - The build will be performed in the current directory. - The Visual Studio 2022 MSVC compiler will be used as the compiler. -- The built library is generated as a single file that includes all of OpenCV's functionality. +- The compiled library is generated as a single file that includes all of OpenCV's functionality. - Unnecessary options have been disabled, assuming processing on Arm CPUs.   If the configuration is successful, a message similar to the following should be displayed at the end of the execution: -``` +```output -- General configuration for OpenCV 4.10.0 ===================================== -- Version control: 4.10.0 -- @@ -96,7 +98,7 @@ If the configuration is successful, a message similar to the following should be ### Build and install -Now run the following command to build and install: +Run the following commands to build and install OpenCV: ```bash cmake --build . --config Release @@ -104,12 +106,12 @@ cmake --build . --target INSTALL --config Release ``` {{% notice Note %}} -The build takes approximately 25 mins on Lenovo X13s +The build takes approximately 25 mins on a Lenovo X13s {{% /notice %}}   -When the build and the install is complete, confirm the shared library have been created: +When the build and the install steps are complete, confirm the shared library has been created by inspecting the results in the `install/bin` directory: ```bash { output_lines = "2-11" } ls ./install/x64/vc17/bin @@ -126,6 +128,8 @@ Mode LastWriteTime Length Name -a---- 08/11/2024 09:03 27179008 opencv_world4100.dll ``` +Also inspect the `install/lib` directory: + ```bash { output_lines = "2-9" } ls ./install/x64/vc17/lib Directory: C:\Users\username\work\opencv\build_msvc\install\x64\vc17\lib @@ -140,7 +144,9 @@ Mode LastWriteTime Length Name   -`opencv_world.lib/dll` will be the library used by your application. Once the library files are correctly generated, run the following command to ensure there are no errors. +The library used in your application is `opencv_world.lib/dll`. + +Once the library files are correctly generated, run the following command to ensure there are no errors. ```bash { output_lines = "2" } ./install/x64/vc17/bin/opencv_version.exe @@ -155,23 +161,31 @@ The genereated directory name contains "x64," but there is no need to worry as t ## Build OpenCV Applications -Once the OpenCV library has been successfully built, the next step is to link it to a simple application and try using it. +Once the OpenCV library has been successfully created, the next step is to link it to a simple application and try using it. ### Create a new project in Visual Studio -First, create a new project in Visual Studio. Launch Visual Studio, click `Create a new project` on the initial screen, then select `Empty Project` and click `Next`. On the next screen, set the `Project name` and `Location`. You can choose any name and location, but for this example, we named the project `TestOpenCV`, as shown below. Then click `Create` to generate the new project. +First, create a new project in Visual Studio. + +Launch Visual Studio, click `Create a new project` on the initial screen, then select `Empty Project` and click `Next`. -![MSVC project](msvc_project.png "Create a new project") +On the next screen, set the `Project name` and `Location`. You can choose any name and location, but for this example, name the project `TestOpenCV`, as shown below. -### Adding a source code +Click `Create` to generate the new project. + +![MSVC project #center](msvc_project.png "Create a new project") + +### Add source code In `Solution Explorer`, right-click the `Source Files` folder, select `Add`, and then `New Item...`. Create a file named `test_opencv.cpp`. -![MSVC add file](msvc_add_file.png "Add a source file") +![MSVC add file #center](msvc_add_file.png "Add a source file")   -Once the file is created, it will open in the editor. Copy and paste the following program into it and save the file. +Once the file is created, it will open in the editor. + +Copy and paste the following program into it and save the file. ```cpp #include @@ -189,41 +203,45 @@ int main() { } ``` -This program is a simple example that uses OpenCV's functionality to create a 100x100 black image, draw a blue circle on it, and save it as a file. +This program is a simple example that uses OpenCV to create a 100x100 black image, draw a blue circle on it, and save it as a file. ### Configure build settings Next, select the `Configuration` dropdown menu in the center of the screen and change it from `Debug` to `Release`. At this stage, your screen should look like the example shown below. -![MSVC screenshot](msvc_screen.png "MSVC screenshot") +![MSVC screenshot #center](msvc_screen.png "MSVC screenshot")   Now, set up the compile and link settings. Select `Project` from the top menu and click on `TestOpenCV properties`. Edit `Include directories`, `Library directories`, and `Additional dependencies` as shown in the images below, and then click OK. -![MSVC include dir](msvc_include_dir.png "Include directories: Specify the directory containing the OpenCV header files.") +![MSVC include dir #center](msvc_include_dir.png "Include directories: Specify the directory containing the OpenCV header files.")   -![MSVC link dir](msvc_link_dir.png "Library directories: Specify the directory where the libraries for linking are located.") +![MSVC link dir #center](msvc_link_dir.png "Library directories: Specify the directory where the libraries for linking are located.")   -![MSVC link lib](msvc_link_lib.png "Additional dependencies: Specify the names of the libraries to link") +![MSVC link lib #center](msvc_link_lib.png "Additional dependencies: Specify the names of the libraries to link")   Finally, ensure that the directory containing the dynamic libraries (DLLs) is added to the `PATH` environment variable. Set this in the Windows system settings. After setting the environment variable, restart Visual Studio to apply the changes. -![path setting](set_path.png "Set the DLL dir to the PATH environment variable") +![path setting #center](set_path.png "Set the DLL dir to the PATH environment variable") + +### Build the application + +You are now ready to build the application. -### Run the build +From the top menu, select `Debug` and click `Start Without Debugging` or press `Ctrl` + `F5`. -Once these steps are complete, you're ready to build. From the top menu, select `Debug` and click `Start Without Debugging` or press `Ctrl` + `F5`. +If a console window appears showing that the program exited with code 0 and `test_image.png` is generated in the top-level directory of your Visual Studio project, you have succeeded. -If a console window appears showing that the program exited with code 0 and `test_image.png` is generated in the top-level directory of your Visual Studio project, you have succeeded. When you open the image file, it should look like the example shown below. +Open the image file, it should look like the example shown below. ![test_image pic](test_image.png "test_image.png") -Congratulations! You are now ready to create your own OpenCV applications. +Congratulations! You are now ready to create your own OpenCV applications using MSVC. diff --git a/content/learning-paths/laptops-and-desktops/win-opencv/2-2-build-clang.md b/content/learning-paths/laptops-and-desktops/win-opencv/2-2-build-clang.md index d8d8d7ae53..442884131a 100644 --- a/content/learning-paths/laptops-and-desktops/win-opencv/2-2-build-clang.md +++ b/content/learning-paths/laptops-and-desktops/win-opencv/2-2-build-clang.md @@ -6,9 +6,9 @@ weight: 4 layout: learningpathall --- -## Build OpenCV with Clang +## How do I build OpenCV with Clang? -### Clone OpenCV repo +### Clone the OpenCV repository Open up a Windows Powershell and checkout the source tree: @@ -19,12 +19,14 @@ git checkout tags/4.10.0 ``` {{% notice Note %}} -You might be able to use a later version. These steps have been tested with the version 4.10.0. +You might be able to use a later version, but these steps have been tested with the version 4.10.0. {{% /notice %}} ### Pre-build configuration -Here, you will use CMake from the command line. First, run the following command to run the pre-build configuration. +You can use CMake from the command line. + +First, run the following command to run the pre-build configuration. ```bash mkdir build_clang @@ -53,7 +55,7 @@ The given options specify the following: - The source code is located one level above the current directory. - The build will be performed in the current directory. - The Clang compiler will be used as the compiler. -- The built library is generated as a single file that includes all of OpenCV's functionality. +- The compiled library is generated as a single file that includes all of OpenCV's functionality. - Unnecessary options have been disabled, assuming processing on Arm CPUs.   @@ -98,7 +100,7 @@ If the configuration is successful, a message similar to the following should be ### Build and install -Now run the following command to build and install: +Run the following commands to build and install OpenCV: ```bash ninja @@ -106,12 +108,12 @@ ninja install ``` {{% notice Note %}} -The build takes approximately 25 mins on Lenovo X13s +The build takes approximately 25 mins on a Lenovo X13s {{% /notice %}}   -When the build and the install is complete, confirm the shared library have been created: +When the build and the install steps are complete, confirm the shared library has been created by inspecting the results in the `install/bin` directory: ```bash { output_lines = "2-11" } ls ./install/bin @@ -127,6 +129,8 @@ Mode LastWriteTime Length Name -a---- 08/11/2024 09:50 20207104 opencv_world4100.dll ``` +Also inspect the `install/lib` directory: + ```bash { output_lines = "2-9" } ls ./install/lib Directory: C:\Users\username\work\opencv\build_clang\install\lib @@ -141,7 +145,9 @@ Mode LastWriteTime Length Name   -`opencv_world.lib/dll` will be the library used by your application. Once the library files are correctly generated, run the following command to ensure there are no errors. +The library used in your application is `opencv_world.lib/dll`. + +Once the library files are correctly generated, run the following command to ensure there are no errors. ```bash { output_lines = "2" } ./install/bin/opencv_version.exe @@ -152,11 +158,11 @@ Mode LastWriteTime Length Name ## Build OpenCV Applications -Once the OpenCV library has been successfully built, the next step is to link it to a simple application and try using it. +Once the OpenCV library has been successfully created, you can create a simple application and try using it. ### Prepare a application program -First, save the following C++ program as `test_opencv.cpp` in an appropriate location. Here, it is assumed that the file is saved under the `build_clang` directory. +First, use a text editor to save the following C++ program as `test_opencv.cpp` in the `build_clang` directory. ```cpp #include @@ -174,11 +180,12 @@ int main() { } ``` -This program is a simple example that uses OpenCV's functionality to create a 100x100 black image, draw a blue circle on it, and save it as a file. +This program is a simple example that uses OpenCV to create a 100x100 black image, draw a blue circle on it, and save it as a file. ### Compile the program -Now, let's compile this code using the command below. +Compile the code using the command below: + ```bash clang++ .\test_opencv.cpp -o test_opencv.exe -I.\install\include -L.\install\lib -lopencv_world4100 ``` @@ -191,7 +198,7 @@ The given options specify the following: ### Run the program -Now, let's run it. To run this executable, you need to ensure that the directory containing the dynamic libraries (DLLs) is added to the `PATH` environment variable, or place the DLLs in the same location as the executable. +To run the executable, you need to ensure that the directory containing the dynamic libraries (DLLs) is added to the `PATH` environment variable, or place the DLLs in the same location as the executable. ```bash .\test_opencv.exe @@ -205,9 +212,10 @@ $env:PATH = "./install/bin;" + $env:PATH ``` {{% /notice %}} -When you execute the command, it should finish quickly, and `test_image.png` should be generated. If the image file looks like the one shown below, it means you've succeeded. +When you execute the command, it will finish quickly, and `test_image.png` is generated. -![test_image pic](test_image.png "test_image.png") +Open the image file, it should look like the example shown below. +![test_image pic](test_image.png "test_image.png") -Congratulations! You are now ready to create your own OpenCV applications. +Congratulations! You are now ready to create your own OpenCV applications using Clang. diff --git a/content/learning-paths/laptops-and-desktops/win-opencv/_index.md b/content/learning-paths/laptops-and-desktops/win-opencv/_index.md index da15b1c424..561cadd2f9 100644 --- a/content/learning-paths/laptops-and-desktops/win-opencv/_index.md +++ b/content/learning-paths/laptops-and-desktops/win-opencv/_index.md @@ -6,11 +6,11 @@ minutes_to_complete: 90 who_is_this_for: This is an advanced topic for software developers who want to use OpenCV with Windows on Arm devices. learning_objectives: - - Build OpenCV library with Windows on Arm devices. - - Develop applications with OpenCV. + - Build the OpenCV library for Windows on Arm devices. + - Develop applications using OpenCV. prerequisites: - - A Windows on Arm computer such as Lenovo Thinkpad X13s or a [virtual machine](/learning-paths/cross-platform/woa_azure/). + - A Windows on Arm computer such as Lenovo Thinkpad X13s or an [Azure virtual machine](/learning-paths/cross-platform/woa_azure/). author_primary: Koki Mitsunami diff --git a/content/learning-paths/laptops-and-desktops/win-opencv/_next-steps.md b/content/learning-paths/laptops-and-desktops/win-opencv/_next-steps.md index 6870d89e90..e12b500d53 100644 --- a/content/learning-paths/laptops-and-desktops/win-opencv/_next-steps.md +++ b/content/learning-paths/laptops-and-desktops/win-opencv/_next-steps.md @@ -4,14 +4,14 @@ next_step_guidance: You have successfully built OpenCV on Windows on Arm using M recommended_path: /learning-paths/laptops-and-desktops/win_forms/ further_reading: - - resource: - title: Arm Kleidi Libraries - link: https://www.arm.com/products/development-tools/embedded-and-software/kleidi-libraries - type: website - resource: title: OpenCV website link: https://opencv.org/ type: website + - resource: + title: Arm Kleidi Libraries + link: https://www.arm.com/products/development-tools/embedded-and-software/kleidi-libraries + type: website - resource: title: Evolution of SIMD architecture with SVE2 link: https://community.arm.com/arm-community-blogs/b/architectures-and-processors-blog/posts/sve2 diff --git a/content/learning-paths/laptops-and-desktops/win-opencv/_review.md b/content/learning-paths/laptops-and-desktops/win-opencv/_review.md index 4903c6186e..6db88cd2cc 100644 --- a/content/learning-paths/laptops-and-desktops/win-opencv/_review.md +++ b/content/learning-paths/laptops-and-desktops/win-opencv/_review.md @@ -23,7 +23,7 @@ review: - questions: question: > - Clang is a compiler that is part of the LLVM project, known for cross-platform support. + Clang is a compiler that is part of the LLVM project, known for its cross-platform support. answers: - "True" - "False" From 5b586ad825ab2e0bca23f074992d0d10a824a0b5 Mon Sep 17 00:00:00 2001 From: Jason Andrews Date: Tue, 26 Nov 2024 02:12:29 +0000 Subject: [PATCH 45/87] Test OpenCV on Windows Learning Path --- .../win-opencv/1-opencv-compilers.md | 2 +- .../win-opencv/2-1-build-msvc.md | 4 +++- .../win-opencv/2-2-build-clang.md | 16 ++++++++++------ 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/content/learning-paths/laptops-and-desktops/win-opencv/1-opencv-compilers.md b/content/learning-paths/laptops-and-desktops/win-opencv/1-opencv-compilers.md index 0395709011..ae3c8e282c 100644 --- a/content/learning-paths/laptops-and-desktops/win-opencv/1-opencv-compilers.md +++ b/content/learning-paths/laptops-and-desktops/win-opencv/1-opencv-compilers.md @@ -75,6 +75,6 @@ The instructions were tested with the version 18.1.8. The instructions were tested with version 1.11.1 {{% /notice %}} -You use the LLVM Clang and the Ninja generator to build. Set PATH to the paths to your LLVM and Ninja install. +Make sure LLVM Clang and Ninja are in your search path. If they are not, you can use Windows Control Panel to set the PATH environment variable. You now have the required development tools installed. Please proceed to the page for the compiler you want to build with. diff --git a/content/learning-paths/laptops-and-desktops/win-opencv/2-1-build-msvc.md b/content/learning-paths/laptops-and-desktops/win-opencv/2-1-build-msvc.md index ef2f30856e..a749ff9aa1 100644 --- a/content/learning-paths/laptops-and-desktops/win-opencv/2-1-build-msvc.md +++ b/content/learning-paths/laptops-and-desktops/win-opencv/2-1-build-msvc.md @@ -8,6 +8,8 @@ layout: learningpathall ## How do I build OpenCV with MSVC? +Follow the steps below to build OpenCV and a test application using the library with the MSVC compiler. + ### Clone the OpenCV repository Open up a Windows PowerShell and checkout the source tree: @@ -113,7 +115,7 @@ The build takes approximately 25 mins on a Lenovo X13s When the build and the install steps are complete, confirm the shared library has been created by inspecting the results in the `install/bin` directory: -```bash { output_lines = "2-11" } +```bash { output_lines = "2-12" } ls ./install/x64/vc17/bin Directory: C:\Users\username\work\opencv\build_msvc\install\x64\vc17\bin Mode LastWriteTime Length Name diff --git a/content/learning-paths/laptops-and-desktops/win-opencv/2-2-build-clang.md b/content/learning-paths/laptops-and-desktops/win-opencv/2-2-build-clang.md index 442884131a..a4d8e7cc70 100644 --- a/content/learning-paths/laptops-and-desktops/win-opencv/2-2-build-clang.md +++ b/content/learning-paths/laptops-and-desktops/win-opencv/2-2-build-clang.md @@ -8,6 +8,8 @@ layout: learningpathall ## How do I build OpenCV with Clang? +Follow the steps below to build OpenCV and a test application using the library with the Clang compiler. + ### Clone the OpenCV repository Open up a Windows Powershell and checkout the source tree: @@ -198,11 +200,7 @@ The given options specify the following: ### Run the program -To run the executable, you need to ensure that the directory containing the dynamic libraries (DLLs) is added to the `PATH` environment variable, or place the DLLs in the same location as the executable. - -```bash -.\test_opencv.exe -``` +To run the executable, you need to ensure that the directory containing the dynamic libraries (DLLs) is added to the `PATH` environment variable, or place the DLLs in the same location as the executable. {{% notice Note %}} The command below adds the DLL directory to the beginning of the `PATH` environment variable. Since this is a temporary setting, the `PATH` will revert to its original state when the PowerShell session is closed. To set it permanently, you need to use the Windows system settings or the `[Environment]::SetEnvironmentVariable()` method. @@ -212,7 +210,13 @@ $env:PATH = "./install/bin;" + $env:PATH ``` {{% /notice %}} -When you execute the command, it will finish quickly, and `test_image.png` is generated. +Run the test program: + +```bash +.\test_opencv.exe +``` + +When you execute the command, it will finish quickly, and `test_image.png` is generated. If you don't have the DLL directory in your search path, the program appears to run, but no `test_image.png` is generated. Open the image file, it should look like the example shown below. From 2d767500403763527bb1d45488e590f95e061b9f Mon Sep 17 00:00:00 2001 From: Maddy Underwood <167196745+madeline-underwood@users.noreply.github.com> Date: Tue, 26 Nov 2024 10:45:05 +0000 Subject: [PATCH 46/87] Editorial review. --- .../cross-platform/simd-info-demo/_index.md | 4 ++-- .../cross-platform/simd-info-demo/_review.md | 24 +++++++++---------- .../simd-info-demo/conclusion.md | 14 +++++++---- .../simd-info-demo/intro-to-simdinfo.md | 8 ++++--- .../simd-info-demo/simdinfo-description.md | 12 ++++++---- .../simd-info-demo/simdinfo-example1-cont.md | 10 ++++---- .../simd-info-demo/simdinfo-example1.md | 10 ++++++-- 7 files changed, 50 insertions(+), 32 deletions(-) diff --git a/content/learning-paths/cross-platform/simd-info-demo/_index.md b/content/learning-paths/cross-platform/simd-info-demo/_index.md index 7340831211..43a273c486 100644 --- a/content/learning-paths/cross-platform/simd-info-demo/_index.md +++ b/content/learning-paths/cross-platform/simd-info-demo/_index.md @@ -10,11 +10,11 @@ minutes_to_complete: 30 who_is_this_for: This Learning Path is for software developers who are interested in porting SIMD code across Arm platforms. learning_objectives: - - Describe how to use SIMD.info’s tools and features, such as navigation, search, and comparison, to simplify the process of finding equivalent SIMD intrinsics between architectures and improving code portability. + - Describe how to use SIMD.info’s tools and features, such as navigation, search, and comparison, to simplify the process of finding equivalent SIMD intrinsics between architectures to improve code portability. prerequisites: - A basic understanding of SIMD. - - Access to an Arm platform with a SIMD supported engine, with recent versions of a C compiler such as Clang or GCC installed. + - Access to an Arm platform with a SIMD-supported engine, installed with recent versions of a C compiler such as Clang or GCC. author_primary: Georgios Mermigkis and Konstantinos Margaritis, VectorCamp diff --git a/content/learning-paths/cross-platform/simd-info-demo/_review.md b/content/learning-paths/cross-platform/simd-info-demo/_review.md index cc6a2a64d0..35df3294b6 100644 --- a/content/learning-paths/cross-platform/simd-info-demo/_review.md +++ b/content/learning-paths/cross-platform/simd-info-demo/_review.md @@ -4,34 +4,34 @@ review: question: > What is SIMD.info? answers: - - An online resource for SIMD C intrinsics for all major architectures - - It's an online forum for SIMD developers - - A book about SIMD programming + - It's an online resource for SIMD C intrinsics for all major architectures. + - It's an online forum for SIMD developers. + - It's a book about SIMD programming. correct_answer: 1 explanation: > - While it allows comments in the SIMD intrinsics, SIMD.info is not really a forum. It is an online **free** resource to assist developers porting C code between popular architectures, for example, from SSE/AVX/AVX512 to Arm ASIMD. + While it allows comments in the SIMD intrinsics, SIMD.info is not a forum. It is an online free resource to assist developers porting C code between popular architectures, for example, from SSE/AVX/AVX512 to Arm ASIMD. - questions: question: > What architectures are listed in SIMD.info? answers: - - Intel SSE and Arm ASIMD - - Power VSX and Arm ASIMD/SVE - - Intel SSE4.2/AVX/AVX2/AVX512, Arm ASIMD, Power VSX + - Intel SSE and Arm ASIMD. + - Power VSX and Arm ASIMD/SVE. + - Intel SSE4.2/AVX/AVX2/AVX512, Arm ASIMD, Power VSX. correct_answer: 3 explanation: > - At the time of writing SIMD.info supports Intel SSE4.2/AVX/AVX2/AVX512, Arm ASIMD, Power VSX as SIMD architectures. Work is in progress to include Arm SVE/SVE2, MIPS MSA, RISC-V RVV 1.0, s390 Z and others. + SIMD.info supports Intel SSE4.2/AVX/AVX2/AVX512, Arm ASIMD, Power VSX as SIMD architectures. Work is in progress to include Arm SVE/SVE2, MIPS MSA, RISC-V RVV 1.0, s390 Z and others. - questions: question: > What are SIMD.info's major features? answers: - - Hierarchical tree, Search, AI code translation - - Search, Hierarchical tree, Code examples - - Hierarchical tree, Search, Intrinsics Comparison, Code examples, Equivalents mapping, links to official documentation + - Hierarchical tree, search, and AI code translation. + - Search, hierarchical tree, and code examples. + - Hierarchical tree, search, intrinsics comparison, code examples, equivalents mapping, and links to official documentation. correct_answer: 3 explanation: > - SIMD.info provides multiple features, including a hierarchical tree, Search facility, Intrinsics Comparison, Code examples, Equivalents mapping, links to official documentation and others. AI code translation is not a feature of SIMD.info but will be the focus of another project, SIMD.ai. + SIMD.info provides multiple features, including a hierarchical tree, search facility, intrinsics comparison, code examples, equivalents mapping, links to official documentation, and others. AI code translation is not a feature of SIMD.info but is the focus of another project, SIMD.ai. diff --git a/content/learning-paths/cross-platform/simd-info-demo/conclusion.md b/content/learning-paths/cross-platform/simd-info-demo/conclusion.md index bf30963645..d7627070b3 100644 --- a/content/learning-paths/cross-platform/simd-info-demo/conclusion.md +++ b/content/learning-paths/cross-platform/simd-info-demo/conclusion.md @@ -8,10 +8,16 @@ layout: learningpathall ### Conclusion and Additional Resources -Porting SIMD code between architecture can be a daunting process, in many cases requiring many hours of studying multiple ISAs in online resources or ISA manuals of thousands pages. Our primary focus in this work was to optimize the existing algorithm directly with SIMD intrinsics, without altering the algorithm or data layout. While reordering data to align with native Arm instructions could offer performance benefits, our scope remained within the constraints of the current data layout and algorithm. For those interested in data layout strategies to further enhance performance on Arm, the [vectorization-friendly data layout learning path](https://learn.arm.com/learning-paths/cross-platform/vectorization-friendly-data-layout/) offers valuable insights. +Porting SIMD code between architectures can be a daunting process, often requiring many hours of studying multiple ISAs in online resources or ISA manuals that run into thousands of pages. -Using **[SIMD.info](https://simd.info)** can be be instrumental in reducing the amount of time spent in this process, providing a centralized and user-friendly resource for finding **NEON** equivalents to intrinsics of other architectures. It saves considerable time and effort by offering detailed descriptions, prototypes, and comparisons directly, eliminating the need for extensive web searches and manual lookups. +The primary focus of this Learning Path is to optimize the existing algorithm directly with SIMD intrinsics, without altering the algorithm or data layout. -While porting between vectors of different sizes is more complex, work is underway -at the time of writing this guide- to complete integration of **SVE**/**SVE2** Arm extensions and allow matching them with **AVX512** intrinsics, as they are both using predicate masks. +While reordering data to align with native Arm instructions can offer performance benefits, this is outside the scope of this Learning Path. -Please check **[SIMD.info](https://simd.info)** regularly for updates on this. +If you are interested in data layout strategies to further enhance performance on Arm, the [vectorization-friendly data layout learning path](https://learn.arm.com/learning-paths/cross-platform/vectorization-friendly-data-layout/) offers valuable insights. + +Using **[SIMD.info](https://simd.info)** can be instrumental in reducing the amount of time spent in this process, providing a centralized and user-friendly resource for finding **NEON** equivalents to intrinsics of other architectures. It saves considerable time and effort by offering detailed descriptions, prototypes, and comparisons directly, eliminating the need for extensive web searches and manual lookups. + +While porting between vectors of different sizes is more complex, work is underway to complete the integration of **SVE**/**SVE2** Arm extensions and allow matching them with **AVX512** intrinsics, as they are both using predicate masks. + +You can check **[SIMD.info](https://simd.info)** regularly for updates. diff --git a/content/learning-paths/cross-platform/simd-info-demo/intro-to-simdinfo.md b/content/learning-paths/cross-platform/simd-info-demo/intro-to-simdinfo.md index 28380fce64..c37e72753d 100644 --- a/content/learning-paths/cross-platform/simd-info-demo/intro-to-simdinfo.md +++ b/content/learning-paths/cross-platform/simd-info-demo/intro-to-simdinfo.md @@ -7,10 +7,12 @@ layout: learningpathall --- ### The Challenge of SIMD Code Portability -One of the biggest challenges developers face when working with SIMD code is making it portable across different platforms. SIMD instructions are designed to improve performance by executing the same operation on multiple data elements in parallel. Each architecture has its own set of SIMD instructions however, making it difficult to write code that works on all of them without major changes to the code or the algorithm, or both. +SIMD instructions are designed to improve performance by executing the same operation on multiple data elements in parallel. One of the biggest challenges developers face when working with SIMD code is making it portable across different platforms. -For example, to port software written using Intel intrinsics, such as SSE/AVX/AVX512, to Arm Neon, you have pay attention to data handling with the different instruction sets. +Each architecture has its own set of SIMD instructions, which makes it difficult to port code without major changes to either the code itelf, or the algorithm, or both. + +For example, to port software written using Intel intrinsics, such as SSE/AVX/AVX512, to Arm Neon, you must address issues with data handling with the different instruction sets. Porting the code between architectures can increase development time and introduce the risk of errors. Currently, developers rely on ISA documentation and must manually search across various vendor platforms such as [Arm Developer](https://developer.arm.com/architectures/instruction-sets/intrinsics/) and [Intel Intrinsics Guide](https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html) to find equivalent instructions. -[SIMD.info](https://simd.info) aims to solve this problem by helping developers find equivalent instructions and providing a streamlined way to adapt code for different architectures. +[SIMD.info](https://simd.info) aims to address this challenge by enabling developers to find equivalent instructions and providing a streamlined way to adapt code for different architectures. diff --git a/content/learning-paths/cross-platform/simd-info-demo/simdinfo-description.md b/content/learning-paths/cross-platform/simd-info-demo/simdinfo-description.md index 5184d20851..0e2940ee7d 100644 --- a/content/learning-paths/cross-platform/simd-info-demo/simdinfo-description.md +++ b/content/learning-paths/cross-platform/simd-info-demo/simdinfo-description.md @@ -9,7 +9,7 @@ layout: learningpathall #### SIMD.info categories of information **[SIMD.info](https://simd.info/)** offers a variety of powerful tools to enable developers to work more efficiently with SIMD code across different architectures. -With a database of over 10,000 intrinsics, it provides detailed information to support effective SIMD development. +With a database of over 10,000 intrinsics, it provides valuable detailed information to support effective SIMD development. For each intrinsic, SIMD.info provides information in the following categories: @@ -27,12 +27,12 @@ For each intrinsic, SIMD.info provides information in the following categories: * Architecture: a list of architecture that supports the intrinsic. -* Link(s) to official documentation. +* Links to official documentation. -This detailed information ensures that you have all the necessary resources to effectively use and port SIMD instructions across different platforms. Each feature is designed to simplify navigation, improve the search for equivalent instructions, and foster a collaborative environment for knowledge-sharing. +This information ensures that you have all the necessary resources to effectively use and port SIMD instructions across different platforms. Each feature is designed to simplify navigation, improve the search for equivalent instructions, and foster a collaborative environment for knowledge-sharing. #### Tree-based navigation -SIMD.info uses a clear, hierarchical layout to present the instructions. It categorizes instructions into broad groups such as **Arithmetic**, which are further divided into specific subcategories such as **Vector Add**, and **Vector Subtract**. +SIMD.info uses a clear, hierarchical layout to present the instructions. It categorizes instructions in to high-level groups such as **Arithmetic**, which are then further divided into specific subcategories such as **Vector Add**, and **Vector Subtract**. This organized structure enables you to browse through SIMD instruction sets across various platforms, allowing you to efficiently find and access the instructions that you need. Below is an example of the tree structure: @@ -55,7 +55,9 @@ This organized structure enables you to browse through SIMD instruction sets acr - XOR #### Advanced search functionality -With its robust search engine, SIMD.info allows you to either search for a specific intrinsic, for example `vaddq_f64`, or enter more general terms, for example "How to add 2 vectors", and it returns a list of the corresponding intrinsics. You can also filter results based on the specific engine you're working with, such as **NEON**, **SSE4.2**, **AVX**, **AVX512**, **VSX**. This functionality streamlines the process of finding the right commands tailored to your needs. +With its robust search engine, SIMD.info allows you to either search for a specific intrinsic, for example `vaddq_f64`, or enter more general terms, for example "How to add 2 vectors", and it returns a list of the corresponding intrinsics. + +You can also filter results based on the specific engine you're working with, such as **NEON**, **SSE4.2**, **AVX**, **AVX512**, or **VSX**. This functionality streamlines the process of finding the right commands tailored to your needs. #### Comparison tools This feature lets you directly compare SIMD instructions from different, or the same, platforms side by side, offering a clear view of the similarities and differences. It’s a helpful tool for porting code across architectures, as it ensures accuracy and efficiency. diff --git a/content/learning-paths/cross-platform/simd-info-demo/simdinfo-example1-cont.md b/content/learning-paths/cross-platform/simd-info-demo/simdinfo-example1-cont.md index 59ec4ba710..a9449b1cbf 100644 --- a/content/learning-paths/cross-platform/simd-info-demo/simdinfo-example1-cont.md +++ b/content/learning-paths/cross-platform/simd-info-demo/simdinfo-example1-cont.md @@ -11,7 +11,7 @@ Now that you have a clear view of the example, you can start the process of port This is where [SIMD.info](https://simd.info/) comes in. -In SIMD programming, the primary focus is the integrity and accuracy of the calculations. Ensuring that these calculations are done correctly is crucial. Performance almost always comes second. +In SIMD programming, the primary focus is the integrity and accuracy of the calculations. Ensuring that these calculations are done correctly is crucial. Performance is almost always a secondary concern. For the operations in your **SSE4.2** example, you have the following intrinsics: @@ -20,11 +20,13 @@ For the operations in your **SSE4.2** example, you have the following intrinsics - **`_mm_mul_ps`** - **`_mm_sqrt_ps`** -To gain a deeper understanding of how these intrinsics work and to surface detailed descriptions, you can use the search feature on **SIMD.info**. Simply enter the intrinsic's name into the search bar. You can either select from the suggested results or perform a direct search to retrieve detailed information about each intrinsic. +To gain a deeper understanding of how these intrinsics work and to surface detailed descriptions, you can use the search feature on SIMD.info. Simply enter the intrinsic's name into the search bar. You can either select from the suggested results or perform a direct search to retrieve detailed information about each intrinsic. -1. By searching [**`_mm_add_ps`**](https://simd.info/c_intrinsic/_mm_add_ps/) you get information about its purpose, result-type, assembly instruction, prototype, and an example demonstration. By clicking the **engine** option **"NEON"** you can find its [equivalents](https://simd.info/eq/_mm_add_ps/NEON/) for this engine. The equivalents are: **`vaddq_f32`**, **`vadd_f32`**. [Intrinsics comparison](https://simd.info/c-intrinsics-compare?compare=vaddq_f32:vadd_f32) will help you find the right one. Based on the prototype provided, you can choose [**`vaddq_f32`**](https://simd.info/c_intrinsic/vaddq_f32/) because it works with 128-bit vectors which is the same as **SSE4.2**. +1. By searching [**`_mm_add_ps`**](https://simd.info/c_intrinsic/_mm_add_ps/) you will retrieve information about its purpose, the result type, assembly instruction, prototype, and an example demonstration. By clicking the **engine** option **"NEON"** you can find its [equivalents](https://simd.info/eq/_mm_add_ps/NEON/) for this engine. The equivalents are: **`vaddq_f32`**, **`vadd_f32`**. [Intrinsics comparison](https://simd.info/c-intrinsics-compare?compare=vaddq_f32:vadd_f32) helps you find the right one. Based on the prototype provided, you can choose [**`vaddq_f32`**](https://simd.info/c_intrinsic/vaddq_f32/) because it works with 128-bit vectors which is the same as **SSE4.2**. -2. Moving to the next intrinsic, **`_mm_mul_ps`**, you can use the [Intrinsics Tree](https://simd.info/tag-tree) on **SIMD.info** to find the equivalent. Start by expanding the **Arithmetic** branch and then navigate to the branch **Vector Multiply**. As you are working with 32-bit floats, open the **Vector Multiply 32-bit floats** branch, where you will find several options. The recommended choice is [**`vmulq_f32`**](https://simd.info/c_intrinsic/vmulq_f32/), following the same reasoning as before—it operates on 128-bit vectors. +2. Moving to the next intrinsic, **`_mm_mul_ps`**, you can use the [Intrinsics Tree](https://simd.info/tag-tree) on SIMD.info to find the equivalent. + +Start by expanding the **Arithmetic** branch and then navigate to the branch **Vector Multiply**. As you are working with 32-bit floats, open the **Vector Multiply 32-bit floats** branch, where you will find several options. The recommended choice is [**`vmulq_f32`**](https://simd.info/c_intrinsic/vmulq_f32/), following the same reasoning as before—it operates on 128-bit vectors. 3. For the third intrinsic, **`_mm_sqrt_ps`**, the easiest way to find the corresponding **NEON** intrinsic is by typing **"Square Root"** into the search bar on SIMD.info. From the [search results](https://simd.info/search?search=Square+Root&simd_engines=1&simd_engines=2&simd_engines=3&simd_engines=4&simd_engines=5), look for the float-specific version and select [**`vsqrtq_f32`**](https://simd.info/c_intrinsic/vsqrtq_f32/), which, like the others, works with 128-bit vectors. In the equivalents section regarding **SSE4.2**, you can clearly see that **`_mm_sqrt_ps`** has its place as a direct match for this operation. diff --git a/content/learning-paths/cross-platform/simd-info-demo/simdinfo-example1.md b/content/learning-paths/cross-platform/simd-info-demo/simdinfo-example1.md index 7e08c8ac71..542872e3ec 100644 --- a/content/learning-paths/cross-platform/simd-info-demo/simdinfo-example1.md +++ b/content/learning-paths/cross-platform/simd-info-demo/simdinfo-example1.md @@ -8,7 +8,7 @@ layout: learningpathall Have a look at the following C example that uses Intel SSE4.2 intrinsics. -On an x86_64 Linux development machine, create a file named `calculation_sse.c` using the contents as shown below: +On an x86_64 Linux development machine, create a file named `calculation_sse.c`, populating it with the contents as shown below: ```C #include @@ -52,7 +52,13 @@ int main() { } ``` -The program first compares whether elements in one vector are greater than those in another vector, prints the result, and then proceeds to compute the addition of two vectors, multiplies the result with one of the vectors, and finally takes the square root of the multiplication result. +The program does the following: + +* Compares whether elements in one vector are greater than those in another vector. +* Prints the result. +* Computes the addition of two vectors. +* Multiplies the result with one of the vectors. +* Takes the square root of the multiplication result. Compile the code on your Linux x86_64 system that supports **SSE4.2**: From 11c768ba6e36b29ebc7122f1cdd81103a9bd8e88 Mon Sep 17 00:00:00 2001 From: Maddy Underwood <167196745+madeline-underwood@users.noreply.github.com> Date: Tue, 26 Nov 2024 11:43:07 +0000 Subject: [PATCH 47/87] Editorial. --- .../simd-info-demo/_next-steps.md | 2 +- .../simd-info-demo/conclusion.md | 14 ++++++------- .../simd-info-demo/intro-to-simdinfo.md | 2 +- .../simd-info-demo/simdinfo-description.md | 20 +++++++++---------- .../simd-info-demo/simdinfo-example1-cont.md | 6 +++--- .../simdinfo-example1-porting.md | 18 +++++++++-------- .../simd-info-demo/simdinfo-example1.md | 2 +- .../simd-info-demo/simdinfo-example2.md | 12 ++++++----- 8 files changed, 39 insertions(+), 37 deletions(-) diff --git a/content/learning-paths/cross-platform/simd-info-demo/_next-steps.md b/content/learning-paths/cross-platform/simd-info-demo/_next-steps.md index 320c29c6e1..2c6760d15e 100644 --- a/content/learning-paths/cross-platform/simd-info-demo/_next-steps.md +++ b/content/learning-paths/cross-platform/simd-info-demo/_next-steps.md @@ -1,7 +1,7 @@ --- next_step_guidance: You should explore **SIMD.info** more and find out porting opportunities between different SIMD engines. -recommended_path: /learning-paths/cross-platform/ +recommended_path: /learning-paths/cross-platform/vectorization-friendly-data-layout/ further_reading: - resource: diff --git a/content/learning-paths/cross-platform/simd-info-demo/conclusion.md b/content/learning-paths/cross-platform/simd-info-demo/conclusion.md index d7627070b3..d16f95a0aa 100644 --- a/content/learning-paths/cross-platform/simd-info-demo/conclusion.md +++ b/content/learning-paths/cross-platform/simd-info-demo/conclusion.md @@ -6,18 +6,16 @@ weight: 8 layout: learningpathall --- -### Conclusion and Additional Resources +### Conclusion and further reading Porting SIMD code between architectures can be a daunting process, often requiring many hours of studying multiple ISAs in online resources or ISA manuals that run into thousands of pages. -The primary focus of this Learning Path is to optimize the existing algorithm directly with SIMD intrinsics, without altering the algorithm or data layout. +The primary focus of this Learning Path is to optimize the existing algorithm directly with SIMD intrinsics, without altering the algorithm or data layout. While reordering data to align with native Arm instructions can offer performance benefits, this is outside the scope of this Learning Path. -While reordering data to align with native Arm instructions can offer performance benefits, this is outside the scope of this Learning Path. +If you are interested in data layout strategies to further enhance performance on Arm, see the Learning Path *Optimize SIMD code with vectorization-friendly data layout* linked to in the **Next Steps** section at the end. This provides valuable insights. -If you are interested in data layout strategies to further enhance performance on Arm, the [vectorization-friendly data layout learning path](https://learn.arm.com/learning-paths/cross-platform/vectorization-friendly-data-layout/) offers valuable insights. +Using SIMD.info can be instrumental in reducing the amount of time spent in this process, providing a centralized and user-friendly resource for finding NEON equivalents to intrinsics of other architectures. It saves considerable time and effort by offering detailed descriptions, prototypes, and comparisons directly, eliminating the need for extensive web searches and manual lookups. -Using **[SIMD.info](https://simd.info)** can be instrumental in reducing the amount of time spent in this process, providing a centralized and user-friendly resource for finding **NEON** equivalents to intrinsics of other architectures. It saves considerable time and effort by offering detailed descriptions, prototypes, and comparisons directly, eliminating the need for extensive web searches and manual lookups. +While porting between vectors of different sizes is more complex, work is underway to complete the integration of SVE and SVE2 Arm extensions and allow matching them with AVX512 intrinsics, as they both use predicate masks. -While porting between vectors of different sizes is more complex, work is underway to complete the integration of **SVE**/**SVE2** Arm extensions and allow matching them with **AVX512** intrinsics, as they are both using predicate masks. - -You can check **[SIMD.info](https://simd.info)** regularly for updates. +You can check **[SIMD.info](https://simd.info)** for updates. diff --git a/content/learning-paths/cross-platform/simd-info-demo/intro-to-simdinfo.md b/content/learning-paths/cross-platform/simd-info-demo/intro-to-simdinfo.md index c37e72753d..65ca70f73f 100644 --- a/content/learning-paths/cross-platform/simd-info-demo/intro-to-simdinfo.md +++ b/content/learning-paths/cross-platform/simd-info-demo/intro-to-simdinfo.md @@ -9,7 +9,7 @@ layout: learningpathall ### The Challenge of SIMD Code Portability SIMD instructions are designed to improve performance by executing the same operation on multiple data elements in parallel. One of the biggest challenges developers face when working with SIMD code is making it portable across different platforms. -Each architecture has its own set of SIMD instructions, which makes it difficult to port code without major changes to either the code itelf, or the algorithm, or both. +Each architecture has its own set of SIMD instructions, which makes it difficult to port code without major changes to either the code itself, or the algorithm, or both. For example, to port software written using Intel intrinsics, such as SSE/AVX/AVX512, to Arm Neon, you must address issues with data handling with the different instruction sets. diff --git a/content/learning-paths/cross-platform/simd-info-demo/simdinfo-description.md b/content/learning-paths/cross-platform/simd-info-demo/simdinfo-description.md index 0e2940ee7d..1ebe0c9572 100644 --- a/content/learning-paths/cross-platform/simd-info-demo/simdinfo-description.md +++ b/content/learning-paths/cross-platform/simd-info-demo/simdinfo-description.md @@ -13,26 +13,26 @@ With a database of over 10,000 intrinsics, it provides valuable detailed informa For each intrinsic, SIMD.info provides information in the following categories: -* Purpose: a brief description of what the intrinsic does and the primary use case. +* **Purpose**: a brief description of what the intrinsic does and the primary use case. -* Result: an explanation of the output or result of the intrinsic. +* **Result**: an explanation of the output or result of the intrinsic. -* Example: a code snippet demonstrating how to use the intrinsic. +* **Example**: a code snippet demonstrating how to use the intrinsic. -* Prototypes: function prototypes for different programming languages (currently C/C++). +* **Prototypes**: function prototypes for different programming languages (currently C/C++). -* Assembly Instruction: the corresponding assembly instruction that the intrinsic uses. +* **Assembly Instruction**: the corresponding assembly instruction that the intrinsic uses. -* Notes: any further information about the intrinsic, such as caveats. +* **Notes**: any further information about the intrinsic, such as caveats. -* Architecture: a list of architecture that supports the intrinsic. +* **Architecture**: a list of architecture that supports the intrinsic. -* Links to official documentation. +* **Links to official documentation**. This information ensures that you have all the necessary resources to effectively use and port SIMD instructions across different platforms. Each feature is designed to simplify navigation, improve the search for equivalent instructions, and foster a collaborative environment for knowledge-sharing. #### Tree-based navigation -SIMD.info uses a clear, hierarchical layout to present the instructions. It categorizes instructions in to high-level groups such as **Arithmetic**, which are then further divided into specific subcategories such as **Vector Add**, and **Vector Subtract**. +SIMD.info uses a clear, hierarchical layout to present the instructions. It categorizes instructions into high-level groups such as **Arithmetic**, which are then further divided into specific subcategories such as **Vector Add**, and **Vector Subtract**. This organized structure enables you to browse through SIMD instruction sets across various platforms, allowing you to efficiently find and access the instructions that you need. Below is an example of the tree structure: @@ -57,7 +57,7 @@ This organized structure enables you to browse through SIMD instruction sets acr #### Advanced search functionality With its robust search engine, SIMD.info allows you to either search for a specific intrinsic, for example `vaddq_f64`, or enter more general terms, for example "How to add 2 vectors", and it returns a list of the corresponding intrinsics. -You can also filter results based on the specific engine you're working with, such as **NEON**, **SSE4.2**, **AVX**, **AVX512**, or **VSX**. This functionality streamlines the process of finding the right commands tailored to your needs. +You can also filter results based on the specific engine you're working with, such as NEON, SSE4.2, AVX, AVX512, or VSX. This functionality streamlines the process of finding the right commands tailored to your needs. #### Comparison tools This feature lets you directly compare SIMD instructions from different, or the same, platforms side by side, offering a clear view of the similarities and differences. It’s a helpful tool for porting code across architectures, as it ensures accuracy and efficiency. diff --git a/content/learning-paths/cross-platform/simd-info-demo/simdinfo-example1-cont.md b/content/learning-paths/cross-platform/simd-info-demo/simdinfo-example1-cont.md index a9449b1cbf..c903ef320d 100644 --- a/content/learning-paths/cross-platform/simd-info-demo/simdinfo-example1-cont.md +++ b/content/learning-paths/cross-platform/simd-info-demo/simdinfo-example1-cont.md @@ -20,7 +20,7 @@ For the operations in your **SSE4.2** example, you have the following intrinsics - **`_mm_mul_ps`** - **`_mm_sqrt_ps`** -To gain a deeper understanding of how these intrinsics work and to surface detailed descriptions, you can use the search feature on SIMD.info. Simply enter the intrinsic's name into the search bar. You can either select from the suggested results or perform a direct search to retrieve detailed information about each intrinsic. +To gain a deeper understanding of how these intrinsics work and to surface detailed descriptions, you can use the search feature on SIMD.info. Simply enter the name of the intrinsic into the search bar. You can either select from the suggested results or perform a direct search to retrieve information about each intrinsic. 1. By searching [**`_mm_add_ps`**](https://simd.info/c_intrinsic/_mm_add_ps/) you will retrieve information about its purpose, the result type, assembly instruction, prototype, and an example demonstration. By clicking the **engine** option **"NEON"** you can find its [equivalents](https://simd.info/eq/_mm_add_ps/NEON/) for this engine. The equivalents are: **`vaddq_f32`**, **`vadd_f32`**. [Intrinsics comparison](https://simd.info/c-intrinsics-compare?compare=vaddq_f32:vadd_f32) helps you find the right one. Based on the prototype provided, you can choose [**`vaddq_f32`**](https://simd.info/c_intrinsic/vaddq_f32/) because it works with 128-bit vectors which is the same as **SSE4.2**. @@ -28,8 +28,8 @@ To gain a deeper understanding of how these intrinsics work and to surface detai Start by expanding the **Arithmetic** branch and then navigate to the branch **Vector Multiply**. As you are working with 32-bit floats, open the **Vector Multiply 32-bit floats** branch, where you will find several options. The recommended choice is [**`vmulq_f32`**](https://simd.info/c_intrinsic/vmulq_f32/), following the same reasoning as before—it operates on 128-bit vectors. -3. For the third intrinsic, **`_mm_sqrt_ps`**, the easiest way to find the corresponding **NEON** intrinsic is by typing **"Square Root"** into the search bar on SIMD.info. From the [search results](https://simd.info/search?search=Square+Root&simd_engines=1&simd_engines=2&simd_engines=3&simd_engines=4&simd_engines=5), look for the float-specific version and select [**`vsqrtq_f32`**](https://simd.info/c_intrinsic/vsqrtq_f32/), which, like the others, works with 128-bit vectors. In the equivalents section regarding **SSE4.2**, you can clearly see that **`_mm_sqrt_ps`** has its place as a direct match for this operation. +3. For the third intrinsic, **`_mm_sqrt_ps`**, the easiest way to find the corresponding NEON intrinsic is by typing **"Square Root"** into the search bar on SIMD.info. From the [search results](https://simd.info/search?search=Square+Root&simd_engines=1&simd_engines=2&simd_engines=3&simd_engines=4&simd_engines=5), look for the float-specific version and select [**`vsqrtq_f32`**](https://simd.info/c_intrinsic/vsqrtq_f32/), which, like the others, works with 128-bit vectors. In the equivalents section regarding **SSE4.2**, you can clearly see that **`_mm_sqrt_ps`** has its place as a direct match for this operation. 4. For the last intrinsic, **`_mm_cmpgt_ps`**, follow a similar approach as before. Inside the intrinsics tree, start by expanding the **Comparison** folder. Navigate to the subfolder **Vector Compare Greater Than**, and since you are working with 32-bit floats, proceed to **Vector Compare Greater Than 32-bit floats**. The recommended choice is again the 128-bit variant [**`vcgtq_f32`**](https://simd.info/c_intrinsic/vcgtq_f32/). -Now that you have found the **NEON** equivalents for each **SSE4.2** intrinsic, you're ready to begin porting the code. Understanding these equivalents is key to ensuring that the code produces the correct results in the calculations as you switch between SIMD engines. +Now that you have found the NEON equivalents for each SSE4.2 intrinsic, you're ready to begin porting the code. Understanding these equivalents is key to ensuring that the code produces the correct results in the calculations as you switch between SIMD engines. diff --git a/content/learning-paths/cross-platform/simd-info-demo/simdinfo-example1-porting.md b/content/learning-paths/cross-platform/simd-info-demo/simdinfo-example1-porting.md index f0a2d3f5bb..f6b15af718 100644 --- a/content/learning-paths/cross-platform/simd-info-demo/simdinfo-example1-porting.md +++ b/content/learning-paths/cross-platform/simd-info-demo/simdinfo-example1-porting.md @@ -8,13 +8,15 @@ layout: learningpathall ### Step-by-Step Porting -1. Change the loading process to follow **NEON**'s method for initializing vectors. The **SSE4.2** intrinsic **`_mm_set_ps`** is in reality a macro, in **NEON** you can do the same thing with curly braces **`{}`** inititialization. -2. Next, you will replace the **SSE4.2** intrinsics with the **NEON** equivalents we identified earlier. The key is to ensure that the operations perform the same tasks, such as comparison, addition, multiplication, and square root calculations. -3. Finally, modify the storing process to match **NEON**’s way of moving data from vectors to memory. In **NEON**, you use functions like [**`vst1q_f32`**](https://simd.info/c_intrinsic/vst1q_f32/) for storing 128-bit floating-point vectors and [**`vst1q_u32`**](https://simd.info/c_intrinsic/vst1q_u32/) for storing 128-bit integer vectors. +Follow this step-by-step process to porting: -After identifying the **NEON** intrinsics you will need in the ported program, it's time to actually write the code. +1. Change the loading process to follow NEON's method for initializing vectors. The SSE4.2 intrinsic **`_mm_set_ps`** is in reality a macro, in NEON you can do the same thing with curly braces **`{}`** inititialization. +2. Next, replace the SSE4.2 intrinsics with the NEON equivalents that you identified earlier. The key is to ensure that the operations perform the same tasks, such as comparison, addition, multiplication, and square root calculations. +3. Finally, modify the storing process to match NEON’s way of moving data from vectors to memory. In NEON, you use functions like [**`vst1q_f32`**](https://simd.info/c_intrinsic/vst1q_f32/) for storing 128-bit floating-point vectors and [**`vst1q_u32`**](https://simd.info/c_intrinsic/vst1q_u32/) for storing 128-bit integer vectors. -This time on your Arm Linux machine, create a new file for the ported NEON code named `calculation_neon.c` with the contents shown below: +After identifying the NEON intrinsics that you require in the ported program, it's now time to write the code. + +This time on your Arm Linux machine, create a new file for the ported NEON code named `calculation_neon.c`, populating with the contents as shown below: ```C #include @@ -66,7 +68,7 @@ int main() { ### Verifying the Ported Code -It's time to verify that the functionality remains the same, which means you get the same results and similar performance. +It's time to verify that the functionality remains the same, which means that you achieve the same results and similar performance. Compile the above code as follows on your Arm Linux machine: @@ -92,8 +94,8 @@ Multiplication Result: 2.00 12.00 36.00 80.00 Square Root Result: 1.41 3.46 6.00 8.94 ``` -You can see that the results are the same as in the **SSE4.2** example. +You can see that the results are the same as in the SSE4.2 example. {{% notice Note %}} -You initialized the vectors in reverse order compared to the **SSE4.2** version because the array initialization and vld1q_f32 function load vectors from LSB to MSB, whereas **`_mm_set_ps`** loads elements MSB to LSB. +You initialized the vectors in reverse order compared to the SSE4.2 version because the array initialization and vld1q_f32 function load vectors from LSB to MSB, whereas **`_mm_set_ps`** loads elements MSB to LSB. {{% /notice %}} diff --git a/content/learning-paths/cross-platform/simd-info-demo/simdinfo-example1.md b/content/learning-paths/cross-platform/simd-info-demo/simdinfo-example1.md index 542872e3ec..2e3eb72d9d 100644 --- a/content/learning-paths/cross-platform/simd-info-demo/simdinfo-example1.md +++ b/content/learning-paths/cross-platform/simd-info-demo/simdinfo-example1.md @@ -60,7 +60,7 @@ The program does the following: * Multiplies the result with one of the vectors. * Takes the square root of the multiplication result. -Compile the code on your Linux x86_64 system that supports **SSE4.2**: +Compile the code on your Linux x86_64 system that supports SSE4.2: ```bash gcc -O3 calculation_sse.c -o calculation_sse -msse4.2 diff --git a/content/learning-paths/cross-platform/simd-info-demo/simdinfo-example2.md b/content/learning-paths/cross-platform/simd-info-demo/simdinfo-example2.md index 32793cf3c0..5f37dc9002 100644 --- a/content/learning-paths/cross-platform/simd-info-demo/simdinfo-example2.md +++ b/content/learning-paths/cross-platform/simd-info-demo/simdinfo-example2.md @@ -8,11 +8,13 @@ layout: learningpathall ### Handling intrinsics without direct equivalents -During the porting process, you will observe that certain instructions translate seamlessly. However, there are cases where direct equivalents for some intrinsics may not be readily available across architectures. For example, the [**`_mm_madd_epi16`**](https://simd.info/c_intrinsic/_mm_madd_epi16/) intrinsic from **SSE2**, which performs multiplication of 16-bit signed integer elements in a vector and then does a pairwise addition of adjacent elements increasing the element width, does not have a direct counterpart in **NEON**. However it can be emulated using another intrinsic. Similarly its 256 and 512-bit counterparts, [**`_mm256_madd_epi16`**](https://simd.info/c_intrinsic/_mm256_madd_epi16/) and [**`_mm512_madd_epi16`**](https://simd.info/c_intrinsic/_mm512_madd_epi16/) can be emulated by a sequence of instructions, but here you will see the 128-bit variant. +During the porting process, you can see that certain instructions translate seamlessly. However, there are cases where direct equivalents for some intrinsics might not be readily available across architectures. -You may already know the equivalent operations for this particular intrinsic, but let's assume you don't. In this usecase, reading the **`_mm_madd_epi16`** on the **SIMD.info** might indicate that a key characteristic of the instruction involved is the *widening* of the result elements, from 16-bit to 32-bit signed integers. Unfortunately, that is not the case, as this particular instruction does not actually increase the size of the element holding the result values. You will see how that effects the result in the example. +For example, the [**`_mm_madd_epi16`**](https://simd.info/c_intrinsic/_mm_madd_epi16/) intrinsic from SSE2, which performs multiplication of 16-bit signed integer elements in a vector and then does a pairwise addition of adjacent elements increasing the element width, does not have a direct counterpart in NEON. However it can be emulated using another intrinsic. Similarly its 256 and 512-bit counterparts, [**`_mm256_madd_epi16`**](https://simd.info/c_intrinsic/_mm256_madd_epi16/) and [**`_mm512_madd_epi16`**](https://simd.info/c_intrinsic/_mm512_madd_epi16/), can be emulated by a sequence of instructions, but here you will see the 128-bit variant. -Consider the following code for **SSE2**. Create a new file on your x86_64 Linux machine named `_mm_madd_epi16_test.c` with the contents shown below: +You might already know the equivalent operations for this particular intrinsic, but let's assume that you don't. In this particular use case, reading **`_mm_madd_epi16`** on **SIMD.info** might indicate that a key characteristic of the instruction involved is the widening of the result elements, from 16-bit to 32-bit signed integers. Unfortunately, this is not the case. This particular instruction does not increase the size of the element holding the result values. You will see how this affects the result in the example. + +Consider the following code for SSE2. Create a new file on your x86_64 Linux machine named `_mm_madd_epi16_test.c`, and populate with the contents as shown below: ```C #include @@ -44,7 +46,7 @@ int main() { } ``` -Compile the code as follows on the x86_64 system (no extra flags required as **SSE2** is assumed by default on all 64-bit x86 systems): +Compile the code as follows on the x86_64 system. No extra flags are required as **SSE2** is assumed by default on all 64-bit x86 systems: ```bash gcc -O3 _mm_madd_epi16_test.c -o _mm_madd_epi16_test ``` @@ -128,5 +130,5 @@ vpaddq_s16(a, b) : a4d8 56b8 2198 578 0 0 0 0 final : a4d8 0 56b8 0 2198 0 578 0 ``` -As you can see the results of both executions on different architectures match. You were able to use **SIMD.info** to help with the translation of complex intrinsics between different SIMD architectures. +As you can see the results of both executions on different architectures match. You used SIMD.info to help with the translation of complex intrinsics between different SIMD architectures. From 172dc75d2e0514b43942e5ed21f88e8d00d8f7c5 Mon Sep 17 00:00:00 2001 From: Maddy Underwood <167196745+madeline-underwood@users.noreply.github.com> Date: Tue, 26 Nov 2024 11:48:18 +0000 Subject: [PATCH 48/87] Editorial. --- .../cross-platform/simd-info-demo/simdinfo-example2.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/content/learning-paths/cross-platform/simd-info-demo/simdinfo-example2.md b/content/learning-paths/cross-platform/simd-info-demo/simdinfo-example2.md index 5f37dc9002..feb24da071 100644 --- a/content/learning-paths/cross-platform/simd-info-demo/simdinfo-example2.md +++ b/content/learning-paths/cross-platform/simd-info-demo/simdinfo-example2.md @@ -10,7 +10,7 @@ layout: learningpathall During the porting process, you can see that certain instructions translate seamlessly. However, there are cases where direct equivalents for some intrinsics might not be readily available across architectures. -For example, the [**`_mm_madd_epi16`**](https://simd.info/c_intrinsic/_mm_madd_epi16/) intrinsic from SSE2, which performs multiplication of 16-bit signed integer elements in a vector and then does a pairwise addition of adjacent elements increasing the element width, does not have a direct counterpart in NEON. However it can be emulated using another intrinsic. Similarly its 256 and 512-bit counterparts, [**`_mm256_madd_epi16`**](https://simd.info/c_intrinsic/_mm256_madd_epi16/) and [**`_mm512_madd_epi16`**](https://simd.info/c_intrinsic/_mm512_madd_epi16/), can be emulated by a sequence of instructions, but here you will see the 128-bit variant. +For example, the [**`_mm_madd_epi16`**](https://simd.info/c_intrinsic/_mm_madd_epi16/) intrinsic from SSE2, which performs multiplication of 16-bit signed integer elements in a vector and then does a pairwise addition of adjacent elements increasing the element width, does not have a direct counterpart in NEON. However, it can be emulated using another intrinsic. Similarly its 256 and 512-bit counterparts, [**`_mm256_madd_epi16`**](https://simd.info/c_intrinsic/_mm256_madd_epi16/) and [**`_mm512_madd_epi16`**](https://simd.info/c_intrinsic/_mm512_madd_epi16/), can be emulated by a sequence of instructions, but here you will see the 128-bit variant. You might already know the equivalent operations for this particular intrinsic, but let's assume that you don't. In this particular use case, reading **`_mm_madd_epi16`** on **SIMD.info** might indicate that a key characteristic of the instruction involved is the widening of the result elements, from 16-bit to 32-bit signed integers. Unfortunately, this is not the case. This particular instruction does not increase the size of the element holding the result values. You will see how this affects the result in the example. @@ -63,11 +63,11 @@ b : a0 8c 78 64 50 3c 28 14 _mm_madd_epi16(a, b) : a4d8 0 56b8 0 2198 0 578 0 ``` -You will note that the result of the first element is a negative number, even though we added 2 positive results (`130*140` and `150*160`). That is because the result of the addition has to occupy a 16-bit signed integer element and when the first is larger we have the effect of an negative overflow. The result is the same in binary arithmetic, but when interpreted into a signed integer, it turns the number into a negative. +You will note that the result of the first element is a negative number, even though you added 2 positive results (`130*140` and `150*160`). This is because the result of the addition has to occupy a 16-bit signed integer element, and when the first is larger we have the effect of an negative overflow. The result is the same in binary arithmetic, but when interpreted into a signed integer, it turns the number into a negative. -The rest of the values are as expected. Notice how each pair has a zero element next to it. The results are correct, but they are not in the correct order. In this example, you used **`vmovl`** to zero-extend values, which achieves the correct order with zero elements in place. While both **`vmovl`** and **`zip`** could be used for this purpose, **`vmovl`** was chosen in this implementation. For more details, see the Arm Software Optimization Guides, such as the [Neoverse V2 guide](https://developer.arm.com/documentation/109898/latest/). +The rest of the values are as expected. Notice how each pair has a zero element next to it. The results are correct, but they are not in the correct order. In this example, you used **`vmovl`** to zero-extend values, which achieves the correct order with zero elements in place. While both **`vmovl`** and **`zip`** can be used for this purpose, **`vmovl`** was chosen in this implementation. For more details, see the Arm Software Optimization Guides, such as the [Neoverse V2 guide](https://developer.arm.com/documentation/109898/latest/). -Now switch your Linux Arm machine and create a file called `_mm_madd_epi16_neon.c` with the contents below: +Now switch to your Linux Arm machine and create a file called `_mm_madd_epi16_neon.c`, populating it with the contents below: ```C #include #include @@ -130,5 +130,5 @@ vpaddq_s16(a, b) : a4d8 56b8 2198 578 0 0 0 0 final : a4d8 0 56b8 0 2198 0 578 0 ``` -As you can see the results of both executions on different architectures match. You used SIMD.info to help with the translation of complex intrinsics between different SIMD architectures. +As you can see, the results of both executions on different architectures match. You used SIMD.info to help with the translation of complex intrinsics between different SIMD architectures. From 8121d5579993f46bfd8d8176a9cebe24754f2db4 Mon Sep 17 00:00:00 2001 From: Maddy Underwood <167196745+madeline-underwood@users.noreply.github.com> Date: Tue, 26 Nov 2024 15:33:50 +0000 Subject: [PATCH 49/87] Editorial --- .../simd-info-demo/simdinfo-description.md | 4 ++-- .../simd-info-demo/simdinfo-example1-cont.md | 14 +++++++------- .../simd-info-demo/simdinfo-example1-porting.md | 2 +- .../simd-info-demo/simdinfo-example2.md | 2 +- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/content/learning-paths/cross-platform/simd-info-demo/simdinfo-description.md b/content/learning-paths/cross-platform/simd-info-demo/simdinfo-description.md index 1ebe0c9572..9997a8fbf5 100644 --- a/content/learning-paths/cross-platform/simd-info-demo/simdinfo-description.md +++ b/content/learning-paths/cross-platform/simd-info-demo/simdinfo-description.md @@ -55,7 +55,7 @@ This organized structure enables you to browse through SIMD instruction sets acr - XOR #### Advanced search functionality -With its robust search engine, SIMD.info allows you to either search for a specific intrinsic, for example `vaddq_f64`, or enter more general terms, for example "How to add 2 vectors", and it returns a list of the corresponding intrinsics. +With its robust search engine, SIMD.info allows you to either search for a specific intrinsic, for example `vaddq_f64`, or enter more general terms, for example "How to add 2 vectors," and it returns a list of the corresponding intrinsics. You can also filter results based on the specific engine you're working with, such as NEON, SSE4.2, AVX, AVX512, or VSX. This functionality streamlines the process of finding the right commands tailored to your needs. @@ -63,6 +63,6 @@ You can also filter results based on the specific engine you're working with, su This feature lets you directly compare SIMD instructions from different, or the same, platforms side by side, offering a clear view of the similarities and differences. It’s a helpful tool for porting code across architectures, as it ensures accuracy and efficiency. #### Discussion forum -The integrated discussion forum, powered by **[discuss](https://disqus.com/)**, allows users to ask questions, share insights, and troubleshoot problems together. This community-driven space ensures that you’re never stuck on a complex issue without support. It fosters collaboration and knowledge-sharing among SIMD developers. Imagine something like **[StackOverflow](https://stackoverflow.com/)** but specific to SIMD intrinsics. +The integrated discussion forum, powered by **[Disqus](https://disqus.com/)**, allows users to ask questions, share insights, and troubleshoot problems together. This community-driven space ensures that you’re never stuck on a complex issue without support. It fosters collaboration and knowledge-sharing among SIMD developers. Imagine something like **[StackOverflow](https://stackoverflow.com/)** but specific to SIMD intrinsics. Now let's look at these features in the context of a real example. diff --git a/content/learning-paths/cross-platform/simd-info-demo/simdinfo-example1-cont.md b/content/learning-paths/cross-platform/simd-info-demo/simdinfo-example1-cont.md index c903ef320d..495bc4cb5e 100644 --- a/content/learning-paths/cross-platform/simd-info-demo/simdinfo-example1-cont.md +++ b/content/learning-paths/cross-platform/simd-info-demo/simdinfo-example1-cont.md @@ -7,29 +7,29 @@ layout: learningpathall --- ### Using SIMD.info to find NEON Equivalents -Now that you have a clear view of the example, you can start the process of porting the code to Arm **Neon/ASIMD**. +Now that you have a clear view of the example, you can start the process of porting the code to Arm Neon/ASIMD. This is where [SIMD.info](https://simd.info/) comes in. In SIMD programming, the primary focus is the integrity and accuracy of the calculations. Ensuring that these calculations are done correctly is crucial. Performance is almost always a secondary concern. -For the operations in your **SSE4.2** example, you have the following intrinsics: +For the operations in your SSE4.2 example, you have the following intrinsics: - **`_mm_cmpgt_ps`** - **`_mm_add_ps`** - **`_mm_mul_ps`** - **`_mm_sqrt_ps`** -To gain a deeper understanding of how these intrinsics work and to surface detailed descriptions, you can use the search feature on SIMD.info. Simply enter the name of the intrinsic into the search bar. You can either select from the suggested results or perform a direct search to retrieve information about each intrinsic. +To gain a deeper understanding of how these intrinsics work and to surface detailed descriptions, you can use the search feature on SIMD.info. Simply enter the name of the intrinsic in the search bar. You can either select from the suggested results or perform a direct search to retrieve information about each intrinsic. -1. By searching [**`_mm_add_ps`**](https://simd.info/c_intrinsic/_mm_add_ps/) you will retrieve information about its purpose, the result type, assembly instruction, prototype, and an example demonstration. By clicking the **engine** option **"NEON"** you can find its [equivalents](https://simd.info/eq/_mm_add_ps/NEON/) for this engine. The equivalents are: **`vaddq_f32`**, **`vadd_f32`**. [Intrinsics comparison](https://simd.info/c-intrinsics-compare?compare=vaddq_f32:vadd_f32) helps you find the right one. Based on the prototype provided, you can choose [**`vaddq_f32`**](https://simd.info/c_intrinsic/vaddq_f32/) because it works with 128-bit vectors which is the same as **SSE4.2**. +1. By searching for [**`_mm_add_ps`**](https://simd.info/c_intrinsic/_mm_add_ps/) you will retrieve information about its purpose, the result type, assembly instructions, prototypes, and an example demonstration. By clicking the **engine** option **"NEON"** you can find its [equivalents](https://simd.info/eq/_mm_add_ps/NEON/) for this engine. The equivalents are: **`vaddq_f32`**, **`vadd_f32`**. [Intrinsics comparison](https://simd.info/c-intrinsics-compare?compare=vaddq_f32:vadd_f32) helps you find the right one. Based on the prototype provided, you can choose [**`vaddq_f32`**](https://simd.info/c_intrinsic/vaddq_f32/) as it works with 128-bit vectors which is the same as **SSE4.2**. 2. Moving to the next intrinsic, **`_mm_mul_ps`**, you can use the [Intrinsics Tree](https://simd.info/tag-tree) on SIMD.info to find the equivalent. -Start by expanding the **Arithmetic** branch and then navigate to the branch **Vector Multiply**. As you are working with 32-bit floats, open the **Vector Multiply 32-bit floats** branch, where you will find several options. The recommended choice is [**`vmulq_f32`**](https://simd.info/c_intrinsic/vmulq_f32/), following the same reasoning as before—it operates on 128-bit vectors. +Start by expanding the **Arithmetic** branch and then navigate to the branch **Vector Multiply**. As you are working with 32-bit floats, open the **Vector Multiply 32-bit floats** branch, where you will find several options. The recommended choice is [**`vmulq_f32`**](https://simd.info/c_intrinsic/vmulq_f32/), following the same reasoning as before; it operates on 128-bit vectors. -3. For the third intrinsic, **`_mm_sqrt_ps`**, the easiest way to find the corresponding NEON intrinsic is by typing **"Square Root"** into the search bar on SIMD.info. From the [search results](https://simd.info/search?search=Square+Root&simd_engines=1&simd_engines=2&simd_engines=3&simd_engines=4&simd_engines=5), look for the float-specific version and select [**`vsqrtq_f32`**](https://simd.info/c_intrinsic/vsqrtq_f32/), which, like the others, works with 128-bit vectors. In the equivalents section regarding **SSE4.2**, you can clearly see that **`_mm_sqrt_ps`** has its place as a direct match for this operation. +3. For the third intrinsic, **`_mm_sqrt_ps`**, the easiest way to find the corresponding NEON intrinsic is by typing **"Square Root"** in the search bar on SIMD.info. From the [search results](https://simd.info/search?search=Square+Root&simd_engines=1&simd_engines=2&simd_engines=3&simd_engines=4&simd_engines=5), look for the float-specific version and select [**`vsqrtq_f32`**](https://simd.info/c_intrinsic/vsqrtq_f32/), which, like the others, works with 128-bit vectors. In the equivalents section about **SSE4.2**, you can see that **`_mm_sqrt_ps`** has its place as a direct match for this operation. -4. For the last intrinsic, **`_mm_cmpgt_ps`**, follow a similar approach as before. Inside the intrinsics tree, start by expanding the **Comparison** folder. Navigate to the subfolder **Vector Compare Greater Than**, and since you are working with 32-bit floats, proceed to **Vector Compare Greater Than 32-bit floats**. The recommended choice is again the 128-bit variant [**`vcgtq_f32`**](https://simd.info/c_intrinsic/vcgtq_f32/). +4. For the last intrinsic, **`_mm_cmpgt_ps`**, follow a similar approach as before. Inside the intrinsics tree, start by expanding the **Comparison** folder. Navigate to the subfolder **Vector Compare Greater Than**, and as you are working with 32-bit floats, proceed to **Vector Compare Greater Than 32-bit floats**. The recommended choice is again the 128-bit variant[**`vcgtq_f32`**](https://simd.info/c_intrinsic/vcgtq_f32/). Now that you have found the NEON equivalents for each SSE4.2 intrinsic, you're ready to begin porting the code. Understanding these equivalents is key to ensuring that the code produces the correct results in the calculations as you switch between SIMD engines. diff --git a/content/learning-paths/cross-platform/simd-info-demo/simdinfo-example1-porting.md b/content/learning-paths/cross-platform/simd-info-demo/simdinfo-example1-porting.md index f6b15af718..c38523ce30 100644 --- a/content/learning-paths/cross-platform/simd-info-demo/simdinfo-example1-porting.md +++ b/content/learning-paths/cross-platform/simd-info-demo/simdinfo-example1-porting.md @@ -10,7 +10,7 @@ layout: learningpathall Follow this step-by-step process to porting: -1. Change the loading process to follow NEON's method for initializing vectors. The SSE4.2 intrinsic **`_mm_set_ps`** is in reality a macro, in NEON you can do the same thing with curly braces **`{}`** inititialization. +1. Change the loading process to follow NEON's method for initializing vectors. The SSE4.2 intrinsic **`_mm_set_ps`** is in reality a macro, in NEON you can do the same thing with curly braces **`{}`** initialization. 2. Next, replace the SSE4.2 intrinsics with the NEON equivalents that you identified earlier. The key is to ensure that the operations perform the same tasks, such as comparison, addition, multiplication, and square root calculations. 3. Finally, modify the storing process to match NEON’s way of moving data from vectors to memory. In NEON, you use functions like [**`vst1q_f32`**](https://simd.info/c_intrinsic/vst1q_f32/) for storing 128-bit floating-point vectors and [**`vst1q_u32`**](https://simd.info/c_intrinsic/vst1q_u32/) for storing 128-bit integer vectors. diff --git a/content/learning-paths/cross-platform/simd-info-demo/simdinfo-example2.md b/content/learning-paths/cross-platform/simd-info-demo/simdinfo-example2.md index feb24da071..75349e6289 100644 --- a/content/learning-paths/cross-platform/simd-info-demo/simdinfo-example2.md +++ b/content/learning-paths/cross-platform/simd-info-demo/simdinfo-example2.md @@ -63,7 +63,7 @@ b : a0 8c 78 64 50 3c 28 14 _mm_madd_epi16(a, b) : a4d8 0 56b8 0 2198 0 578 0 ``` -You will note that the result of the first element is a negative number, even though you added 2 positive results (`130*140` and `150*160`). This is because the result of the addition has to occupy a 16-bit signed integer element, and when the first is larger we have the effect of an negative overflow. The result is the same in binary arithmetic, but when interpreted into a signed integer, it turns the number into a negative. +You will note that the result of the first element is a negative number, even though you added 2 positive results (`130*140` and `150*160`). This is because the result of the addition has to occupy a 16-bit signed integer element, and when the first is larger we have the effect of a negative overflow. The result is the same in binary arithmetic, but when interpreted into a signed integer, it turns the number into a negative. The rest of the values are as expected. Notice how each pair has a zero element next to it. The results are correct, but they are not in the correct order. In this example, you used **`vmovl`** to zero-extend values, which achieves the correct order with zero elements in place. While both **`vmovl`** and **`zip`** can be used for this purpose, **`vmovl`** was chosen in this implementation. For more details, see the Arm Software Optimization Guides, such as the [Neoverse V2 guide](https://developer.arm.com/documentation/109898/latest/). From 77cb457c8b4d89f0695cf5c1dc30deca05911359 Mon Sep 17 00:00:00 2001 From: Maddy Underwood <167196745+madeline-underwood@users.noreply.github.com> Date: Tue, 26 Nov 2024 15:37:04 +0000 Subject: [PATCH 50/87] Final editorial review. --- .../learning-paths/cross-platform/simd-info-demo/conclusion.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/learning-paths/cross-platform/simd-info-demo/conclusion.md b/content/learning-paths/cross-platform/simd-info-demo/conclusion.md index d16f95a0aa..14538a712f 100644 --- a/content/learning-paths/cross-platform/simd-info-demo/conclusion.md +++ b/content/learning-paths/cross-platform/simd-info-demo/conclusion.md @@ -12,7 +12,7 @@ Porting SIMD code between architectures can be a daunting process, often requiri The primary focus of this Learning Path is to optimize the existing algorithm directly with SIMD intrinsics, without altering the algorithm or data layout. While reordering data to align with native Arm instructions can offer performance benefits, this is outside the scope of this Learning Path. -If you are interested in data layout strategies to further enhance performance on Arm, see the Learning Path *Optimize SIMD code with vectorization-friendly data layout* linked to in the **Next Steps** section at the end. This provides valuable insights. +If you are interested in data layout strategies to further enhance performance on Arm, see the Learning Path *Optimize SIMD code with vectorization-friendly data layout* linked to in the **Next Steps** section at the of this Learning Path. Using SIMD.info can be instrumental in reducing the amount of time spent in this process, providing a centralized and user-friendly resource for finding NEON equivalents to intrinsics of other architectures. It saves considerable time and effort by offering detailed descriptions, prototypes, and comparisons directly, eliminating the need for extensive web searches and manual lookups. From 4b9b61d233a73d19999940402ae3f69049e7c08e Mon Sep 17 00:00:00 2001 From: Jason Andrews Date: Tue, 26 Nov 2024 15:44:47 +0000 Subject: [PATCH 51/87] Update capitalization on Windows PowerShell --- .wordlist.txt | 1 - .../laptops-and-desktops/llvm_putty/putty_llvm.md | 4 ++-- .../laptops-and-desktops/win-opencv/2-2-build-clang.md | 2 +- .../win_sandbox_dot_net_cicd/win_sandbox_net.md | 2 +- content/learning-paths/laptops-and-desktops/wsl2/setup.md | 2 +- content/learning-paths/laptops-and-desktops/wsl2/systemd.md | 2 +- .../2-build-onnxruntime.md | 2 +- .../3-build-onnxruntime-generate-api.md | 2 +- 8 files changed, 8 insertions(+), 9 deletions(-) diff --git a/.wordlist.txt b/.wordlist.txt index c5ade02d65..47fe254fa8 100644 --- a/.wordlist.txt +++ b/.wordlist.txt @@ -577,7 +577,6 @@ Pmod PostgerSQL PostgrSQL Postgres -Powershell Prefetching Prereqs ProjectExplorer diff --git a/content/learning-paths/laptops-and-desktops/llvm_putty/putty_llvm.md b/content/learning-paths/laptops-and-desktops/llvm_putty/putty_llvm.md index 62a8f46aae..57caf69c84 100644 --- a/content/learning-paths/laptops-and-desktops/llvm_putty/putty_llvm.md +++ b/content/learning-paths/laptops-and-desktops/llvm_putty/putty_llvm.md @@ -27,9 +27,9 @@ You can use Clang to build a CMake application for Windows on Arm. The example a To compile PuTTY on a Windows on Arm device, follow the steps outlined below: -1. Open `Windows Powershell` on your Windows on Arm computer. +1. Open `Windows PowerShell` on your Windows on Arm computer. -Run the next two steps at the Powershell command prompt. +Run the next two steps at the PowerShell command prompt. 2. Create a directory to use for the build and go to the directory: diff --git a/content/learning-paths/laptops-and-desktops/win-opencv/2-2-build-clang.md b/content/learning-paths/laptops-and-desktops/win-opencv/2-2-build-clang.md index a4d8e7cc70..f3311710da 100644 --- a/content/learning-paths/laptops-and-desktops/win-opencv/2-2-build-clang.md +++ b/content/learning-paths/laptops-and-desktops/win-opencv/2-2-build-clang.md @@ -12,7 +12,7 @@ Follow the steps below to build OpenCV and a test application using the library ### Clone the OpenCV repository -Open up a Windows Powershell and checkout the source tree: +Open up a Windows PowerShell and checkout the source tree: ```bash git clone https://github.com/opencv/opencv diff --git a/content/learning-paths/laptops-and-desktops/win_sandbox_dot_net_cicd/win_sandbox_net.md b/content/learning-paths/laptops-and-desktops/win_sandbox_dot_net_cicd/win_sandbox_net.md index 0ab8e7f935..4b66c37413 100644 --- a/content/learning-paths/laptops-and-desktops/win_sandbox_dot_net_cicd/win_sandbox_net.md +++ b/content/learning-paths/laptops-and-desktops/win_sandbox_dot_net_cicd/win_sandbox_net.md @@ -50,7 +50,7 @@ You will see instructions displayed on this page. These are commands you now nee On your host machine, click on the Search bar and enter **Windows Sandbox**. -In your running Windows Sandbox, open up Powershell. You will now copy and paste all the commands into Powershell. +In your running Windows Sandbox, open up PowerShell. You will now copy and paste all the commands into PowerShell. The commands are also shown here for your convenience. To download the runner package: diff --git a/content/learning-paths/laptops-and-desktops/wsl2/setup.md b/content/learning-paths/laptops-and-desktops/wsl2/setup.md index 7a3253d514..440f79da48 100644 --- a/content/learning-paths/laptops-and-desktops/wsl2/setup.md +++ b/content/learning-paths/laptops-and-desktops/wsl2/setup.md @@ -64,7 +64,7 @@ There are other Linux distributions available in the Microsoft Store. Make sure Another way to install Linux distributions is using the WSL command. -Open a Windows Powershell or Command Prompt and list the distributions available: +Open a Windows PowerShell or Command Prompt and list the distributions available: ```cmd wsl --list --online diff --git a/content/learning-paths/laptops-and-desktops/wsl2/systemd.md b/content/learning-paths/laptops-and-desktops/wsl2/systemd.md index 3f655ee02b..36251b091e 100644 --- a/content/learning-paths/laptops-and-desktops/wsl2/systemd.md +++ b/content/learning-paths/laptops-and-desktops/wsl2/systemd.md @@ -20,7 +20,7 @@ Add the following lines to `/etc/wsl.conf`: systemd=true ``` -Open a Windows Command Prompt or Powershell. Run the following commands to terminate and restart the distribution: +Open a Windows Command Prompt or PowerShell. Run the following commands to terminate and restart the distribution: ```cmd wsl --terminate Ubuntu-22.04 diff --git a/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/2-build-onnxruntime.md b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/2-build-onnxruntime.md index d6541e2bd6..93ff353ee3 100644 --- a/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/2-build-onnxruntime.md +++ b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/2-build-onnxruntime.md @@ -15,7 +15,7 @@ ONNX Runtime is an open-source inference engine designed to accelerate the deplo ### Clone onnxruntime repo -Open up a Windows Powershell and checkout the source tree: +Open up a Windows PowerShell and checkout the source tree: ```bash cd C:\Users\$env:USERNAME diff --git a/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/3-build-onnxruntime-generate-api.md b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/3-build-onnxruntime-generate-api.md index 4ca2983bec..0d7e417440 100644 --- a/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/3-build-onnxruntime-generate-api.md +++ b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/3-build-onnxruntime-generate-api.md @@ -18,7 +18,7 @@ You can learn more by reading the [ONNX Runtime generate() API page](https://onn ### Clone onnxruntime-genai repo -Within your Windows Powershell prompt, checkout the source repo: +Within your Windows PowerShell prompt, checkout the source repo: ```bash C:\Users\$env:USERNAME From 31613ea07b08146c0f99d8a2812b7cc2c495fad5 Mon Sep 17 00:00:00 2001 From: Jason Andrews Date: Tue, 26 Nov 2024 20:57:17 +0000 Subject: [PATCH 52/87] New install guide for Git on Windows --- content/install-guides/_images/git-woa.png | Bin 0 -> 19574 bytes content/install-guides/_images/git2-woa.png | Bin 0 -> 75982 bytes content/install-guides/_images/git3-woa.png | Bin 0 -> 18351 bytes content/install-guides/_images/git4-woa.png | Bin 0 -> 37109 bytes content/install-guides/_images/git5-woa.png | Bin 0 -> 21142 bytes content/install-guides/git-woa.md | 103 ++++++++++++++++++++ 6 files changed, 103 insertions(+) create mode 100644 content/install-guides/_images/git-woa.png create mode 100644 content/install-guides/_images/git2-woa.png create mode 100644 content/install-guides/_images/git3-woa.png create mode 100644 content/install-guides/_images/git4-woa.png create mode 100644 content/install-guides/_images/git5-woa.png create mode 100644 content/install-guides/git-woa.md diff --git a/content/install-guides/_images/git-woa.png b/content/install-guides/_images/git-woa.png new file mode 100644 index 0000000000000000000000000000000000000000..034c4e11a35cfc81b7e50e9220a4b824a94cf294 GIT binary patch literal 19574 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 AvH$=8 literal 0 HcmV?d00001 diff --git a/content/install-guides/_images/git2-woa.png b/content/install-guides/_images/git2-woa.png new file mode 100644 index 0000000000000000000000000000000000000000..5ddc6dcca457103d3abef08d75f0b43cb72b640a GIT binary patch literal 75982 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 Z{|Csi{uhxAeVYIP002ovPDHLkV1iKvXq5l} literal 0 HcmV?d00001 diff --git a/content/install-guides/_images/git3-woa.png b/content/install-guides/_images/git3-woa.png new file mode 100644 index 0000000000000000000000000000000000000000..092523c1a41a8c634331ef60dcd3cf87c0aeebcf GIT binary patch literal 18351 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

3mOba~4dEBZ`T7h^5 zx1HdF%=HTN6l!+nH(i+e&vg0fd9}i6xhY*NP$gV$fWc1j{}&A&=nb*b+MDecbTP-q zPi36WuV{92b5{94;6h}n(_x%Ej&e`-`Iu@vF+lf(t6F(HbQqH9jqw)G=10#Ao5twg zv0D<^i+*1|s#IL7NfHI1U}fb+Oiwf=k3nGfhY9J{io)e@@9GrJ3=Uty)(E3TatO>n zRe;<7?52R86lj<)(O(N&&t-X0r+tW-B%(u<^Wrhw1N4AlY)p>>kh4TrX6@LpT6Lx_ z5ra+8Yzq+2^q=<*5;^DWBQl~ltCFS(g4md%^+9T>kWt4(-+$7v>h0YepiSgs4)ocQ z&iK!MikK0{Lx@_d8b}YcK(NkVt>~HfD7R71%6?n$c_b@&dFaUdtY|U{60x_cC-gNr z(B$pC(ZJ7A(FeYBCIf^8TdLuxdOiwOk?PR&=3N$dco6vV*p|-QxrRUFYk+wz2^-Mw zjdG5b9o;OXzqO)cZ~!U&y(9tsT7r+<{u)yG@$7GOU_e5=WAHIjYy&Y1-aIYwvM%z_ zrT0H`x+fXer5ZdQbN2tl;ablCzR9B}QX2}fpnVgt&4hk^?^j%YsxvJA YMVIULMZ5$4$<8JlE5}n+C;e{xKj`BH5C8xG literal 0 HcmV?d00001 diff --git a/content/install-guides/_images/git4-woa.png b/content/install-guides/_images/git4-woa.png new file mode 100644 index 0000000000000000000000000000000000000000..68076a174078408fd4d498521792d471551170a6 GIT binary patch literal 37109 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

M#p5r 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 QuK_<&;&NhTB5(Zv7qIBR6aWAK literal 0 HcmV?d00001 diff --git a/content/install-guides/_images/git5-woa.png b/content/install-guides/_images/git5-woa.png new file mode 100644 index 0000000000000000000000000000000000000000..6d63e97aa70b7544023968b2a5b6702846c74f79 GIT binary patch literal 21142 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 z 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 Date: Mon, 25 Nov 2024 14:12:59 +0100 Subject: [PATCH 53/87] Update YOLOv8 on Himax Learning Path --- .../microcontrollers/yolo-on-himax/_index.md | 2 +- .../yolo-on-himax/how-to-1.md | 19 +++++- .../yolo-on-himax/how-to-2.md | 23 +++++-- .../yolo-on-himax/how-to-3.md | 65 ++++++++++++++++--- .../yolo-on-himax/how-to-4.md | 7 +- .../yolo-on-himax/how-to-5.md | 25 ++++--- 6 files changed, 108 insertions(+), 33 deletions(-) diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/_index.md b/content/learning-paths/microcontrollers/yolo-on-himax/_index.md index 4a5167d254..1dcf71ef7a 100644 --- a/content/learning-paths/microcontrollers/yolo-on-himax/_index.md +++ b/content/learning-paths/microcontrollers/yolo-on-himax/_index.md @@ -6,7 +6,7 @@ minutes_to_complete: 90 who_is_this_for: This is an introduction topic for beginners on how to run a computer vision application on an embedded device from Himax. This example uses an off-the-shelf Himax WiseEye2 module which is based on the Arm Cortex-M55 and Ethos-U55. learning_objectives: - - Run a you-only-look-once (YOLO) computer vision model on the edge device + - Run a you-only-look-once (YOLO) object detection model on the edge device - Build the Himax Software Development Kit (SDK) and generate the firmware image file - Update the firmware on the edge device (Himax WiseEye2) diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-1.md b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-1.md index 7af1eb6ceb..cd5ceb2f83 100644 --- a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-1.md +++ b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-1.md @@ -26,11 +26,15 @@ You should see an output like the following. Python 3.12.7 ``` -Install `pip` with the following commands, and check the output to verify it's installed correctly. +Install `pip` and `venv` with the following commands. ```bash sudo apt update -sudo apt install python3-pip -y +sudo apt install python3-pip python3-venv -y +``` + +check the output to verify `pip` is installed correctly. +``` pip3 --version ``` @@ -38,6 +42,15 @@ pip3 --version pip 24.2 from //pip (python 3.12) ``` +It is considered good practice to manage `pip` packages through a virtual environment. Create one with the steps below. + +```bash +python3 -m venv $HOME/yolo-venv +source $HOME/yolo-venv/bin/activate +``` + +Your terminal displays `(yolo-venv)` in the prompt indicating the virtual environment is active. + You will need to have the git version control system installed. Run the command below to verify that git is installed on your system. ```bash @@ -98,7 +111,7 @@ export PATH="$HOME/arm-gnu-toolchain-13.2.Rel1-x86_64-arm-none-eabi/bin/:$PATH" cd $HOME wget https://developer.arm.com/-/media/Files/downloads/gnu/13.3.rel1/binrel/arm-gnu-toolchain-13.3.rel1-darwin-arm64-arm-none-eabi.tar.xz tar -xvf arm-gnu-toolchain-13.3.rel1-darwin-arm64-arm-none-eabi.tar.xz -export PATH="$HOME/code/tmp/arm-gnu-toolchain-13.3.rel1-darwin-arm64-arm-none-eabi/bin/:$PATH" +export PATH="$HOME/arm-gnu-toolchain-13.3.rel1-darwin-arm64-arm-none-eabi/bin/:$PATH" ``` {{% notice %}} diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-2.md b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-2.md index 714961dc13..6d5377363e 100644 --- a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-2.md +++ b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-2.md @@ -6,11 +6,11 @@ weight: 3 layout: learningpathall --- -TODO short intro / framing? +This section will walk you though the process of generating the firmware image file. ## Clone the Himax project -Himax has set up a repository containing a few examples for the Seeed Grove Vision AI V2 board. By recursively cloning the Himax examples repo, git will include the necessary sub-repositories that have been configured for the project. +Himax has set up a repository containing a few examples for the Seeed Grove Vision AI V2 board. It contains third-party software and scripts to build and flash the image with the object detection application. By recursively cloning the Himax examples repo, git will include the necessary sub-repositories that have been configured for the project. ```bash git clone --recursive https://github.com/HimaxWiseEyePlus/Seeed_Grove_Vision_AI_Module_V2.git @@ -19,35 +19,46 @@ cd Seeed_Grove_Vision_AI_Module_V2 ## Compile the firmware -The make build tool is used to compile the source code. This should take up to 10 minutes depending on the number of CPU cores available. +For the object detection to activate, you need to edit the project's `makefile`, located in the `EPII_CM55M_APP_S` directory. ```bash cd EPII_CM55M_APP_S +``` +Open the file and scroll down until you find the `APP_TYPE` attribute. Update the value to `tflm_yolov8_od`. + +```output +APP_TYPE = tflm_yolov8_od +``` +Use the `make` build tool to compile the source code. This should take up to 10 minutes depending on the number of CPU cores available on your host machine. The result is an `.elf` file written to the directory below. + +```bash make clean make ``` ## Generate the firmware image -The examples repository contains scripts to generate the image. +Copy the `.elf` file to the `input_case1_secboot` directory. ```bash cd ../we2_image_gen_local/ cp ../EPII_CM55M_APP_S/obj_epii_evb_icv30_bdv10/gnu_epii_evb_WLCSP65/EPII_CM55M_gnu_epii_evb_WLCSP65_s.elf input_case1_secboot/ ``` +The examples repository contains scripts to generate the image. Run the script corresponding to the OS of your host machine. -## Linux +### Linux ```bash ./we2_local_image_gen project_case1_blp_wlcsp.json ``` -## macOS +### macOS ```console ./we2_local_image_gen_macOS_arm64 project_case1_blp_wlcsp.json ``` Your terminal output should end with the following. + ```output Output image: output_case1_sec_wlcsp/output.img Output image: output_case1_sec_wlcsp/output.img diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-3.md b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-3.md index 06d110108b..67a3f530ab 100644 --- a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-3.md +++ b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-3.md @@ -1,16 +1,16 @@ --- title: Flash firmware onto the microcontroller -weight: 3 +weight: 4 ### FIXED, DO NOT MODIFY layout: learningpathall --- -Now that we have generated a firmware file on our local machine, we need to flash the microcontroller with this firmware. +Now that you have generated an image file on the local host machine, you are ready to flash the microcontroller with this firmware. ## Install xmodem -`Xmodem` is a basic file transfer protocol. Run the following command to install the dependencies for xmodem. If you cloned the repository to a different location replace $HOME with the path. +`Xmodem` is a basic file transfer protocol which is easily installed using the Himax examples repository. Run the following command to install the dependency. If you cloned the repository to a different location, replace $HOME with the path. ```bash cd $HOME/Seeed_Grove_Vision_AI_Module_V2 @@ -19,7 +19,7 @@ pip install -r xmodem/requirements.txt ## Connect the module -Insert the FPC cable cable into the Grove Vision AI V2 module. Lift the dark grey latch on the connector as per the image below. +Insert the Flexible printed circuit (FPC) into the Grove Vision AI V2 module. Lift the dark grey latch on the connector as per the image below. ![unlatched](./unlatched.jpg) @@ -29,20 +29,67 @@ Then, slide the FPC connector in with the metal pins facing down and close the d Then connect the Groove Vision AI V2 Module to your computer via the USB-C cable. -### Flash the firmware onto the module +{{% notice Note %}} +The development board may have two USB-C connectors. If you are running into issues connecting the board in the next step, make sure you are using the right one. +{{% /notice %}} -Run the python script below to flash the firmware. +## Find the COM port + +You'll need to provide the communication port (COM) which the board is connected to in order to flash the image. There are commands to list all COMs available on your machine. Once your board is connected through USB, it'll show up in this list. The COM identifier will start with **tty**, which may help you determine which one it is. You can run the command before and after plugging in the board if you are unsure. + +### Linux ```bash -python xmodem\xmodem_send.py --port=[your COM number] --baudrate=921600 --protocol=xmodem --file=we2_image_gen_local\output_case1_sec_wlcsp\output.img +sudo grep -i 'tty' /var/log/dmesg +``` + +### MacOS + +```console +ls /dev/tty.* ``` {{% notice Note %}} -When you run other example models demonstrated in the later section [Object detection and additional models](/learning-paths/microcontrollers/yolo-on-himax/how-to-5/), you need to adapt this command. +If the port seems unavailable, try changing the permissions temporarily using the `chmod` command. Be sure to reset them afterwards, as this may pose a computer security vulnerability. + +```bash +chmod 0777 +``` {{% /notice %}} -TODO: how will the command really change? How to find COM number? +The full path to the port is needed in the next step, so be sure to note it down. + +## Flash the firmware onto the module + +Run the python script below to flash the firmware. + +```bash +python xmodem\xmodem_send.py --port= --baudrate=921600 --protocol=xmodem --file=we2_image_gen_local\output_case1_sec_wlcsp\output.img +``` + +{{% notice Note %}} +When you run other example models demonstrated in the later section [Object detection and additional models](/learning-paths/microcontrollers/yolo-on-himax/how-to-5/), you need to adapt this command with the right image file. +{{% /notice %}} After the firmware image burning is completed, the message `Do you want to end file transmission and reboot system? (y)` is displayed. Press the reset button indicated in the image below. ![reset button](./reset_button.jpg) + +## Run the model + +After the reset button is pressed, the board will start inference with the object detection automatically. Observe the output in the terminal to verify that the image is built correctly. If a person is in front of the camera, you should see the `person_score` value go over `100`. + +```output +b'SENSORDPLIB_STATUS_XDMA_FRAME_READY 240' +b'write frame result 0, data size=15284,addr=0x340e04e0' +b'invoke pass' +b'person_score:113' +b'EVT event = 10' +b'SENSORDPLIB_STATUS_XDMA_FRAME_READY 241' +b'write frame result 0, data size=15296,addr=0x340e04e0' +b'invoke pass' +b'person_score:112' +b'EVT event = 10' +``` + +You have now verified that the model works correctly in the firmware. The next step is to view it using a web toolkit. \ No newline at end of file diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-4.md b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-4.md index 522f23f29b..b34e3e9e5c 100644 --- a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-4.md +++ b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-4.md @@ -1,15 +1,12 @@ --- title: Run and view model results -weight: 3 +weight: 5 ### FIXED, DO NOT MODIFY layout: learningpathall --- - -## Connect the board with USB cable - -Exit the terminal session and connect the module to your host machine using the USB-C cable. +In this section, you will view a live camera feed with the ML application running. ## Download the Himax AI web toolkit diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-5.md b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-5.md index 9f3cfde92d..bc84d98418 100644 --- a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-5.md +++ b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-5.md @@ -1,26 +1,22 @@ --- title: Object detection and additional models -weight: 5 +weight: 6 ### FIXED, DO NOT MODIFY layout: learningpathall --- -TODO some more intro here, and showing how to test the model -Also double check this section +There are other computer vision applications to try. In this section, you will re-flash the module with a different one and check the results. ## Modify the Makefile -TODO: why are we doing this? - Change the directory to the where the Makefile is located. If you cloned the repository to a different location, replace $HOME with the path. ```bash cd $HOME/Seeed_Grove_Vision_AI_Module_V2/EPII_CM55M_APP_S/ ``` -Modify the `APP_TYPE` field in the Makefile from the default value of `allon_sensor_tflm` to one of the values in the table below - +The table shows the different options available to use with the web toolkit. Modify the `APP_TYPE` field in the Makefile to one of the values in the table. |APP_TYPE =|Description| |---|---| @@ -28,11 +24,22 @@ Modify the `APP_TYPE` field in the Makefile from the default value of `allon_sen |tflm_folov8_pose|Pose detection| |tflm_fd_fm|Face detection| + ## Regenerate the firmware image -Go back to the [Flash firmware onto the microcontroller](/learning-paths/microcontrollers/yolo-on-himax/how-to-3/) section and run the python command to regenerate the firmware image. +Now you can run `make` to re-generate the `.elf` file. + +```bash +make clean +make +``` +Use the command from [Flash firmware onto the microcontroller](/learning-paths/microcontrollers/yolo-on-himax/how-to-3/) section to run re-generate the firmware image. + +```bash +python xmodem\xmodem_send.py --port= --baudrate=921600 --protocol=xmodem --file=we2_image_gen_local\output_case1_sec_wlcsp\output.img +``` -The images below are examples images from the model. +The images below are captured images from the models run in the toolkit. ### Objection detection ![object_detection](./object_detection.jpg) From 28583748000033dbfb5642eeb23101226fea0c2c Mon Sep 17 00:00:00 2001 From: Maddy Underwood <167196745+madeline-underwood@users.noreply.github.com> Date: Wed, 27 Nov 2024 15:16:49 +0000 Subject: [PATCH 54/87] Editorial review --- .../1-webgpu-fundamentals.md | 32 +++++++++---------- .../android_webgpu_dawn/_index.md | 15 +++++---- 2 files changed, 24 insertions(+), 23 deletions(-) diff --git a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/1-webgpu-fundamentals.md b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/1-webgpu-fundamentals.md index 0ccb2f79c4..0ffacf456d 100644 --- a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/1-webgpu-fundamentals.md +++ b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/1-webgpu-fundamentals.md @@ -1,5 +1,5 @@ --- -title: Introduction to WebGPU +title: Overview of WebGPU weight: 2 ### FIXED, DO NOT MODIFY @@ -8,43 +8,43 @@ layout: learningpathall ## What is WebGPU? -WebGPU is the successor to WebGL, a well adopted modern API standard for interfacing with GPUs. WebGPU provides better compatibility with modern GPUs, support for general-purpose GPU computations, faster operations, and access to more advanced GPU features. It is designed to provide a _unified access_ to GPUs, agnostic to GPU vendors and operating systems. +WebGPU is the successor to WebGL, a well-adopted modern API standard for interfacing with GPUs. WebGPU provides better compatibility with modern GPUs, support for general-purpose GPU computations, faster operations, and access to more advanced GPU features. It is designed to provide a _unified access_ to GPUs, agnostic to GPU vendors and operating systems. -WebGPU is a Render Hardware Interface built on top of various backend APIs like Vulkan, DirectX, and Metal (depending on the operating system). +WebGPU is a Render Hardware Interface built on top of various backend APIs like Vulkan, DirectX, and Metal - though this depends on the operating system. WebGPU is available through web browsers using the webgpu.h header file. -The high level view of WebGPU is shown below: +The high-level view of WebGPU is shown below in Figure 1: -![WebGPU high level view #center](images/webgpu_highlevel.png "WebGPU High Level View") +![Figure 1: WebGPU high level view #center](images/webgpu_highlevel.png "Figure 1: WebGPU High-Level View") ## What are the benefits of WebGPU? -WebGPU takes into account learnings from older standards like WebGL and OpenGL and provides the following benefits: +WebGPU takes into account lessons learned from older standards like WebGL and OpenGL, and provides the following benefits: -* A reasonable level of abstraction -* Good performance -* Cross-platform -* Backed by W3C standards group -* Future-proof design +* A reasonable level of abstraction. +* Improved performance. +* Cross-platform functionality. +* Backing from the W3C standards group. +* A future-proof design. -WebGPU is a standard and not a true API, so the implementation can be adopted and developed as an interface between native applications developed in any programming language. +WebGPU is a standard, and not a true API, so the implementation can be adopted and developed as an interface between native applications developed in any programming language. -The performance requirements for web pages is actually the same as for native application. +The performance requirements for web pages are the same as for native application. {{% notice Note %}} When designing an API for the Web, the two key constraints are portability and privacy. -The limitations of the API due to privacy considerations can be disabled when using WebGPU as a native API. +Any limitations of the API caused by privacy settings can be disabled when using WebGPU as a native API. {{% /notice %}} ## What are the benefits of using C++ for WebGPU? The initial target for WebGPU was JavaScript. The initial `webgpu.h` header file is written in C. -This Learning Path uses C++ rather than JavaScript or C because for the following reasons: +This Learning Path uses C++ rather than JavaScript or C for the following reasons: -* C++ is still the primary language used for high performance graphics applications, such as video games, render engines, and modeling tools. +* C++ remains the primary language used for high performance graphics applications, such as video games, render engines, and modeling tools. * The level of abstraction and control of C++ is well suited for interacting with graphics APIs in general. * Graphics programming is a good way to learn more C++. diff --git a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/_index.md b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/_index.md index f1a307a26b..bccf38cc60 100644 --- a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/_index.md +++ b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/_index.md @@ -1,26 +1,27 @@ --- title: Build and profile a simple WebGPU Android Application -draft: true + cascade: - draft: true + minutes_to_complete: 90 -who_is_this_for: This is an introductory topic for developers building GPU based Android applications and interested in trying WebGPU. +who_is_this_for: This is an introductory topic for developers who are building GPU-based Android applications and are interested in trying WebGPU. learning_objectives: - - Understand the benefits of WebGPU and Dawn, a WebGPU implementation. + - Describe the benefits of WebGPU. + - Describe the benefits of using Dawn. - Set up a WebGPU development environment. - Integrate Dawn in an Android Application. - Use Dawn WebGPU APIs in the application. - - Understand the changes required to upgrade to WebGPU to render a simple 3D object. + - Describe the changes required to upgrade to WebGPU to render a simple 3D object. - Build and run a WebGPU Android Application. - - Profile the Application using Streamline. + - Profile the application using Streamline. - Analyze the profiling data. prerequisites: - - Basic knowledge of graphics APIs and experience with developing Android graphics applications. + - Basic knowledge of graphics APIs and experience in developing Android graphics applications. - A development machine with Android Studio, Blender, and Arm Streamline installed. - An Android phone in developer mode. From cf78c9017d7fe645de972a13f3085c5494743ec1 Mon Sep 17 00:00:00 2001 From: Maddy Underwood <167196745+madeline-underwood@users.noreply.github.com> Date: Thu, 28 Nov 2024 15:54:30 +0000 Subject: [PATCH 55/87] Editorial. --- .../1-webgpu-fundamentals.md | 30 ++++++++++--------- .../android_webgpu_dawn/2-env-setup.md | 10 +------ .../android_webgpu_dawn/_index.md | 9 +++--- 3 files changed, 21 insertions(+), 28 deletions(-) diff --git a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/1-webgpu-fundamentals.md b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/1-webgpu-fundamentals.md index 0ffacf456d..d337d0296d 100644 --- a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/1-webgpu-fundamentals.md +++ b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/1-webgpu-fundamentals.md @@ -8,9 +8,11 @@ layout: learningpathall ## What is WebGPU? -WebGPU is the successor to WebGL, a well-adopted modern API standard for interfacing with GPUs. WebGPU provides better compatibility with modern GPUs, support for general-purpose GPU computations, faster operations, and access to more advanced GPU features. It is designed to provide a _unified access_ to GPUs, agnostic to GPU vendors and operating systems. +WebGPU is the successor to WebGL, a well-adopted modern API standard for interfacing with GPUs. -WebGPU is a Render Hardware Interface built on top of various backend APIs like Vulkan, DirectX, and Metal - though this depends on the operating system. +WebGPU offers improved compatibility with modern GPUs, support for general-purpose GPU computations, faster operations, and access to more advanced GPU features. It is designed to provide a unified access to GPUs, that is both GPU vendor-agnostic and OS-agnostic. + +WebGPU is a Render Hardware Interface built on top of various backend APIs such as Vulkan, DirectX, and Metal - though this does depend on the operating system. WebGPU is available through web browsers using the webgpu.h header file. @@ -20,7 +22,7 @@ The high-level view of WebGPU is shown below in Figure 1: ## What are the benefits of WebGPU? -WebGPU takes into account lessons learned from older standards like WebGL and OpenGL, and provides the following benefits: +WebGPU takes into account lessons learned from earlier standards such as WebGL and OpenGL, and provides the following benefits: * A reasonable level of abstraction. * Improved performance. @@ -28,41 +30,41 @@ WebGPU takes into account lessons learned from older standards like WebGL and Op * Backing from the W3C standards group. * A future-proof design. -WebGPU is a standard, and not a true API, so the implementation can be adopted and developed as an interface between native applications developed in any programming language. +It is important to note that WebGPU is a standard, and not a true API, so the implementation can be adopted and developed as an interface between native applications developed in any programming language. -The performance requirements for web pages are the same as for native application. +The performance requirements for web pages are the same as for native applications. {{% notice Note %}} When designing an API for the Web, the two key constraints are portability and privacy. -Any limitations of the API caused by privacy settings can be disabled when using WebGPU as a native API. +Any limitations of the API caused by privacy constraints can be disabled when using WebGPU as a native API. {{% /notice %}} ## What are the benefits of using C++ for WebGPU? -The initial target for WebGPU was JavaScript. The initial `webgpu.h` header file is written in C. +The initial focus for WebGPU was JavaScript. The initial `webgpu.h` header file is written in C. This Learning Path uses C++ rather than JavaScript or C for the following reasons: * C++ remains the primary language used for high performance graphics applications, such as video games, render engines, and modeling tools. * The level of abstraction and control of C++ is well suited for interacting with graphics APIs in general. -* Graphics programming is a good way to learn more C++. +* Graphics programming is a good way to improve skills in C++. ## Dawn: the Google WebGPU implementation -Since WebGPU is a standard and not an implementation, there are different implementations. +Since WebGPU is a standard and not an implementation itself, there are various possible implementations. [Dawn](https://github.com/google/dawn) is an open-source, cross-platform implementation of the WebGPU standard. -It implements the WebGPU functionality specified in `webgpu.h`. Dawn is meant to be integrated as part of a larger system like Chromium or a native Android Application. +It implements the WebGPU functionality specified in `webgpu.h`. Dawn is designed to be integrated as part of a larger system such as Chromium or a native Android Application. Dawn provides several WebGPU building blocks: * WebGPU C/C++ headers that applications and other building blocks use, including a header file and C++ wrapper. -* A "native" implementation of WebGPU using appropriate APIs: D3D12, Metal, Vulkan and OpenGL. +* A "native" implementation of WebGPU using appropriate APIs: D3D12, Metal, Vulkan, and OpenGL. * A client-server implementation of WebGPU for applications that are in a sandbox without access to native drivers. -* Tint, a compiler for the WebGPU Shader Language (WGSL), that converts shaders to and from WGSL. +* Tint; a compiler for the WebGPU Shader Language (WGSL), that converts shaders to and from WGSL. -Because it is written in C++, Dawn provides better error messages and logging. Because it is open-source, it is easier to inspect stack traces when applications crash. +Because it is written in C++, Dawn provides enhanced error message reporting and logging. The fact that it is open source, also means that it is easier to inspect stack traces when applications crash. -Dawn is usually ahead of `wgpu-native`, another WebGPU implementation, when it comes to new functionalities and standards changes. +Dawn is usually ahead of `wgpu-native`, another WebGPU implementation, in terms of new functionality developments and standards changes. diff --git a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/2-env-setup.md b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/2-env-setup.md index 070d2456c2..4853960534 100644 --- a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/2-env-setup.md +++ b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/2-env-setup.md @@ -6,17 +6,9 @@ weight: 3 layout: learningpathall --- -In this Learning Path, you will learn how to: - -* Integrate Dawn (WebGPU) in an application. -* Use the APIs to render a simple 3D object. -* Profile and analyze the application. - The first step is to prepare a development environment with the required software: -* [Android Studio](https://developer.android.com/studio) -* [Arm Performance Studio](https://www.arm.com/products/development-tools/graphics/arm-performance-studio) -* Python 3.10 or later + You can use any computer and operating system which supports the above software. diff --git a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/_index.md b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/_index.md index bccf38cc60..8c2d6f4908 100644 --- a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/_index.md +++ b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/_index.md @@ -1,10 +1,6 @@ --- title: Build and profile a simple WebGPU Android Application - - cascade: - - minutes_to_complete: 90 who_is_this_for: This is an introductory topic for developers who are building GPU-based Android applications and are interested in trying WebGPU. @@ -19,11 +15,14 @@ learning_objectives: - Build and run a WebGPU Android Application. - Profile the application using Streamline. - Analyze the profiling data. - + prerequisites: - Basic knowledge of graphics APIs and experience in developing Android graphics applications. - A development machine with Android Studio, Blender, and Arm Streamline installed. - An Android phone in developer mode. + - [Android Studio](https://developer.android.com/studio) + - [Arm Performance Studio](https://www.arm.com/products/development-tools/graphics/arm-performance-studio) + - Python 3.10 or later author_primary: Varun Chari, Albin Bernhardsson From 15f8dd327e3a1b7255368c19d16d233254e7462c Mon Sep 17 00:00:00 2001 From: Maddy Underwood <167196745+madeline-underwood@users.noreply.github.com> Date: Thu, 28 Nov 2024 16:08:26 +0000 Subject: [PATCH 56/87] Editorial. --- .../smartphones-and-mobile/android_webgpu_dawn/_index.md | 4 ++-- .../smartphones-and-mobile/android_webgpu_dawn/_review.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/_index.md b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/_index.md index 8c2d6f4908..0b153fe46c 100644 --- a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/_index.md +++ b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/_index.md @@ -20,8 +20,8 @@ prerequisites: - Basic knowledge of graphics APIs and experience in developing Android graphics applications. - A development machine with Android Studio, Blender, and Arm Streamline installed. - An Android phone in developer mode. - - [Android Studio](https://developer.android.com/studio) - - [Arm Performance Studio](https://www.arm.com/products/development-tools/graphics/arm-performance-studio) + - Android Studio + - Arm Performance Studio - Python 3.10 or later author_primary: Varun Chari, Albin Bernhardsson diff --git a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/_review.md b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/_review.md index f12277b62d..6d4d9d6d3a 100644 --- a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/_review.md +++ b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/_review.md @@ -4,7 +4,7 @@ review: question: > What is WebGPU? answers: - - A highly customized API for specific GPUs. + - A highly-customized API for specific GPUs. - APIs designed to provide unified access to GPUs whichever the GPU vendor and operating system the application runs with. - APIs designed for cloud-based applications. correct_answer: 2 @@ -28,7 +28,7 @@ review: answers: - A profiling tool to profile CPUs. - A profiling tool to profile GPUs. - - A a comprehensive profiling software to profile both CPUs and GPUs. + - A comprehensive profiling software to profile both CPUs and GPUs. correct_answer: 3 explanation: > Streamline is an application profiler that can capture data from multiple sources, including Program Counters (PC), Samples from the hardware Performance Monitoring Unit (PMU) counters in the Arm CPU, Arm® Mali™ GPUs, and Arm Immortalis™ GPUs. From dd14fb6e21382df9c9daa25fa74038b144b84bac Mon Sep 17 00:00:00 2001 From: Maddy Underwood <167196745+madeline-underwood@users.noreply.github.com> Date: Thu, 28 Nov 2024 17:17:48 +0000 Subject: [PATCH 57/87] Editorial review. --- .../android_webgpu_dawn/2-env-setup.md | 36 +++++++------ .../android_webgpu_dawn/3-integrate-dawn.md | 52 ++++++++++--------- .../4-using-webgpu-apis.md | 6 +-- .../7-Profiling-App-using-Streamline.md | 34 ++++++------ .../android_webgpu_dawn/_index.md | 6 +-- 5 files changed, 69 insertions(+), 65 deletions(-) diff --git a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/2-env-setup.md b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/2-env-setup.md index 4853960534..3f566eeda7 100644 --- a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/2-env-setup.md +++ b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/2-env-setup.md @@ -8,9 +8,11 @@ layout: learningpathall The first step is to prepare a development environment with the required software: +* Android Studio. +* Arm Performance Studio. +* Python 3.10 or later. - -You can use any computer and operating system which supports the above software. +You can use any computer and operating system that supports this software. ## Install Android Studio and the Android NDK @@ -18,28 +20,28 @@ You can use any computer and operating system which supports the above software. 2. Start Android Studio. -3. Open the `Settings` dialog. +3. Open the **Settings** dialog. -4. Navigate to `Languages & Frameworks`, then select `Android SDK`. +4. Navigate to **Languages & Frameworks**, then select **Android SDK**. -5. In the `SDK Platforms` tab, check `Android 14.0 ("UpsideDownCake")` +5. In the **SDK Platforms** tab, select the checkbox **Android 14.0** ("UpsideDownCake"). -![SDK Platforms #center](images/sdk-platforms.png "SDK Platforms") +![SDK Platforms #center](images/sdk-platforms.png "Figure 2: SDK Platforms") -6. In the `SDK Tools` tab check the following: - * Check `Android SDK Build-Tools 35` - * Check `NDK (Side by side)` - * Check `CMake` +6. In the **SDK Tools** tab, select the following: + * Select **Android SDK Build-Tools 35**. + * Select **NDK (Side by side)**. + * Select **CMake**. -![SDK Tools #center](images/sdk-tools.png "SDK Tools") +![SDK Tools #center](images/sdk-tools.png "Figure 3: SDK Tools") -Click OK to install and update the selected components. +Click **OK** to install and update the selected components. ## Install Arm Performance Studio Profiling is an important step in the Android application development cycle. -The default profiler in the Android Studio is great to profile CPU related metrics, but does not provide GPU details. +The default profiler in Android Studio is great to profile CPU-related metrics, but does not provide GPU details. Arm Performance Studio is a comprehensive profiling tool to profile both CPUs and GPUs. @@ -47,13 +49,13 @@ One of the components of Performance Studio is Streamline. Streamline captures d * Program Counter (PC) samples from running application threads. * Samples from the hardware Performance Monitoring Unit (PMU) counters in Arm CPUs, Arm Mali GPUs, and Arm Immortalis GPUs. -* Thread scheduling information from the Linux kernel. +* Thread-scheduling information from the Linux kernel. * Software-generated annotations and counters from running applications. -Install Arm Performance Studio using the [install guide](/install-guides/ams/). +Install Arm Performance Studio using the [Arm Performance Studio Install Guide](/install-guides/ams/). {{% notice Tip %}} -If you want to learn more about Arm Performance Studio and Streamline before continuing, refer to [Get started with Arm Performance Studio for mobile](https://learn.arm.com/learning-paths/smartphones-and-mobile/ams/ams/) +If you want to learn more about Arm Performance Studio and Streamline before continuing, refer to [Get started with Arm Performance Studio for mobile](https://learn.arm.com/learning-paths/smartphones-and-mobile/ams/ams/). {{% /notice %}} -Android Studio and Arm Performance Studio are now installed and you are ready to create a WebGPU Android application. +Android Studio and Arm Performance Studio are now installed, and you are ready to create a WebGPU Android application. diff --git a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/3-integrate-dawn.md b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/3-integrate-dawn.md index 8b487e4bb7..4228762ef0 100755 --- a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/3-integrate-dawn.md +++ b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/3-integrate-dawn.md @@ -1,5 +1,5 @@ --- -title: Create an application which includes Dawn +title: Create an application with Dawn weight: 4 ### FIXED, DO NOT MODIFY @@ -8,17 +8,17 @@ layout: learningpathall ## Set up Android Project -You can start by creating a new Android Studio project. +Start by creating a new Android Studio project. -Open Android studio, click `New Project` and select `Game Activity (C++)` as shown below: +Open Android Studio, click **New Project** and select **Game Activity (C++)** as shown below: -![New Game Activity #center](./images/android_studio_new_game_activity.png "New C++ Game Activity") +![New Game Activity #center](./images/android_studio_new_game_activity.png "Figure 4: New C++ Game Activity") -Set the `Name` to be `dawnwebgpu`. +Set the **Name** field to **dawnwebgpu**. -Select `Next` to continue. +Click **Next** to continue. -Finish the new project creation by accepting all defaults until the project is created. +Finish the new project creation by accepting all the default selections until the project is created. The project is created in `~/AndroidStudioProjects`. @@ -28,15 +28,15 @@ GameActivity is a Jetpack library designed to assist Android games in processing GameActivity is a direct descendant of NativeActivity and shares a similar architecture: -![Game Activity Architecture #center](./images/GameActivityArchitecture.png "Game Activity Architecture") +![Game Activity Architecture #center](./images/GameActivityArchitecture.png "Figure 5: Game Activity Architecture") -With GameActivity, you can focus on your game development and avoid spending excessive time dealing with the Java Native Interface (JNI) code. +With GameActivity, you can focus on game development and avoid spending excessive amounts of time dealing with the Java Native Interface (JNI) code. GameActivity performs the following functions: -* Interacts with the Android framework through the Java-side component. -* Passes app cycle commands, input events, and input text to the native side. -* Renders into a SurfaceView, making it easier for games to interact with other UI components. +* It interacts with the Android framework through the Java-side component. +* It passes app cycle commands, input events, and input text to the native side. +* It renders into a SurfaceView, making it easier for games to interact with other UI components. {{% notice Tip %}} You can find more information about Android Game Activity and its capabilities in the [Game Activity documentation](https://developer.android.com/games/agdk/game-activity). @@ -44,7 +44,9 @@ You can find more information about Android Game Activity and its capabilities i ## Download project source files -To create a WebGPU application, a number of files from GitHub are doing to be added to your Game Activity project. The objective is to show you how to take the Game Activity template and modify it to become a WebGPU application. +The process of creating a WebGPU application involves adding a number of files from GitHub to your Game Activity project. + +The objective of this part of the Learning Path is to show you how to take the Game Activity template and modify it to become a WebGPU application. To get started, open a terminal, create a new directory, and download the project files: @@ -59,9 +61,9 @@ Unzip the project files: unzip main.zip ``` -Yow now have a directory named `Android_DawnWebGPU-main` in your `webgpu-files` directory. +You now have a directory named **Android_DawnWebGPU-main** in your **webgpu-files** directory. -During the next sections you will copy some of the required files from the `Android_DawnWebGPU-main` directory to your Game Activity project to learn how to create WebGPU applications. +During the following sections you will copy some of the required files from the **Android_DawnWebGPU-main** directory into your Game Activity project to learn how to create WebGPU applications. ## Upgrade the application to include Dawn @@ -73,13 +75,13 @@ You can remove this dependency and replace it with WebGPU. Add WebGPU to the project using the following steps: -1. In Android Studio, navigate to the project view and find the `app` --> `cpp` folder. +1. In Android Studio, navigate to the project view and find the **app** --> **cpp** folder. -Open terminal in Android Studio. You should be in the `dawnwebgpu` directory. +2. Open the terminal in Android Studio. You are now in the **dawnwebgpu** directory. -2. Create a new directory and download the WebGPU header file from GitHub +3. Create a new directory and download the WebGPU header file from GitHub. -Run the commands below to download the `webgpu.hpp` header file: +4. Run the commands below to download the `webgpu.hpp` header file: ```console mkdir -p app/src/main/cpp/webgpu/include/webgpu @@ -88,7 +90,7 @@ cp ~/webgpu-files/Android_DawnWebGPU-main/app/src/main/cpp/webgpu/include/webgpu cd ../.. ``` -3. Next copy the remaining WebGPU files to your project. +5. Next copy the remaining WebGPU files to your project. ```console cp ~/webgpu-files/Android_DawnWebGPU-main/app/src/main/cpp/webgpu/CMakeLists.txt . @@ -101,15 +103,15 @@ cd .. Notice that `FetchDawn.cmake` uses a stable `chromium/6536` branch of Dawn repository. {{% notice Note %}} -WebGPU is constantly evolving standard and hence its implementation, Dawn is also under active development. For sake of stability, we have chosen a stable branch for our development. Updating to latest or different branch may cause breakage. +WebGPU is a constantly evolving standard and hence its implementation, Dawn is also under active development. For sake of stability, we have chosen a stable branch for our development. Updating to latest or different branch may cause breakage. {{% /notice %}} -To add Dawn to our application, there are 2 options: +To add Dawn to our application, there are two options: -* Create a shared/static library from the Dawn source and use it in application. -* Download the source as a dependency and build it as part of the project build. +1. Create a shared/static library from the Dawn source and use it in application. +2. Download the source as a dependency and build it as part of the project build. -You will use the second option, since it provides more debug flexibility. +You will use the second option here, since it provides more flexibility for debug. The files `webgpu/webgpu.cmake` and `CMakeLists.txt` facilitate downloading and building WebGPU with Dawn implementation and integrating Dawn into the project. diff --git a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/4-using-webgpu-apis.md b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/4-using-webgpu-apis.md index a3acd342c2..1e4c9eacfc 100755 --- a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/4-using-webgpu-apis.md +++ b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/4-using-webgpu-apis.md @@ -6,7 +6,7 @@ weight: 5 layout: learningpathall --- -## Setup project +## Project Setup With the `webgpudawn` library integrated, you can start by removing the extra files included as part of the stock Game Activity project. @@ -34,7 +34,7 @@ With the `webgpudawn` library integrated, you can start by removing the extra fi There are several layers of abstraction between a device GPU and an application running the WebGPU API. -![WebGPU Application Interface #center](images/webgpu_app_interface.png "WebGPU Application Interface") +![WebGPU Application Interface #center](images/webgpu_app_interface.png "Figure 6: WebGPU Application Interface") It is useful to understand these layers as you begin to use WebGPU APIs in an application. @@ -56,7 +56,7 @@ These are used to determine the overall capabilities of the system before **requ Once a code path is chosen, a device is created with the chosen capabilities. Only the capabilities selected for this device are allowed in the rest of the application. This way, it is **not** possible to inadvertently rely on capabilities specific to a device. -![Supported Limits #center](images/adapter_supported_limits.png "Adapter Supported Limits") +![Supported Limits #center](images/adapter_supported_limits.png "Figure 7: Adapter Supported Limits") {{% notice Tip %}} In an advanced use of the adapter/device duality, you can set up multiple limit presets and select one depending on the adapter. diff --git a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/7-Profiling-App-using-Streamline.md b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/7-Profiling-App-using-Streamline.md index 583395c6b4..273c619fab 100644 --- a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/7-Profiling-App-using-Streamline.md +++ b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/7-Profiling-App-using-Streamline.md @@ -6,54 +6,54 @@ weight: 8 layout: learningpathall --- -## Setup Arm Streamline +## Set up Arm Streamline Follow these steps to configure Arm Streamline Performance Analyzer to capture Mali GPU related data: -* Confirm you Android device is connected to the development machine. -* Navigate to **Start tab**, select **Android (adb)**, select the device and then select the application to debug. -* Click on **Select Counters** +* Confirm your Android device is connected to the development machine. +* Navigate to the **Start** tab, select **Android (adb)**, select the device, and then select the application to debug. +* Select **Select Counters**. ![Select device #center](images/streamline_select.png "Select device") -which opens a new window: +This opens a new window: ![Select counters #center](images/streamline_select_counters.png "Select counters") -* Search for **Mali Timeline Events: Perfetto** -* Make sure it is listed in the **Events to collect** -* Click Save +* Search for **Mali Timeline Events: Perfetto**. +* Check that it is listed in **Events to collect**. +* Select **Save**. ## Profiling the application using Streamline -Once you have selected the device, the application and metrics to be collected, click on the **start capture** button. +Once you have selected the device, the application, and the metrics to be collected, click on the **start capture** button. This automatically starts the application and begins collecting the profiling data. -Make sure the application is running as desired on your Android device. After a few seconds, you can stop the capture. +Make sure the application is running correctly on your Android device. After a few seconds, you can stop the capture. Wait until Streamline completes processing the data. -Switch to *Mali Timeline* view as shown below: +Switch to **Mali Timeline** view as shown below: !["Mali Timeline Streamline" #center](images/Streamline-mali-timeline.png "Mali Timeline Streamline") -You may have to zoom into the data to the maximum (`500 us`), since you are rendering a very simple 3D object. +You might have to zoom into the data up to the maximum (**500 us**), as you are rendering a very simple 3D object. -You can analyze 2 consecutive frames as shown below: +You can analyze two consecutive frames as shown below: !["Two consecutive frames" #center](./images/Streamline-mali-analysis.png "Two consecutive frames") Arm has worked with the Dawn team to optimize data uploading to GPU buffers for Mali GPUs. -Arm has implemented a **Fast Path** mechanism wherein the Vertex Queue starts processing in parallel while an earlier Fragment Queue is being processed. +Arm has implemented a **Fast Path** mechanism where the Vertex Queue starts processing in parallel while an earlier Fragment Queue is simultaneously being processed. As you can see from the above picture, there is some overlap between Fragment Queue of first frame and Vertex Queue of the consecutive frame. -This shows that the application is hitting the **Fast Path** that Arm has implemented to optimize performance of Dawn for Mali GPUs. +This demonstrates that the application is hitting the **Fast Path** that Arm has implemented to optimize performance of Dawn for Mali GPUs. -The overlap is small since the application is rendering the same simple 3D object under different orientation. You can extend the application to render complex objects with multiple *Uniform Buffers*. This would show the overlap in more detail. +The overlap is small since the application is rendering the same simple 3D object under different orientation. You can extend the application to render complex objects with multiple *Uniform Buffers*. This will demonstrate the overlap in more detail. {{% notice Tip %}} -Feel free to experiment with different counters in Streamline and explore the other CPU profiling data as well. +You can experiment with different counters in Streamline and also explore other CPU profiling data. {{% /notice %}} diff --git a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/_index.md b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/_index.md index 0b153fe46c..d6c17d25a6 100644 --- a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/_index.md +++ b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/_index.md @@ -20,9 +20,9 @@ prerequisites: - Basic knowledge of graphics APIs and experience in developing Android graphics applications. - A development machine with Android Studio, Blender, and Arm Streamline installed. - An Android phone in developer mode. - - Android Studio - - Arm Performance Studio - - Python 3.10 or later + - Android Studio. + - Arm Performance Studio. + - Python 3.10 or later. author_primary: Varun Chari, Albin Bernhardsson From 8f790bfadd9c7832676944ebfe087c042121288f Mon Sep 17 00:00:00 2001 From: Annie Tallund Date: Thu, 28 Nov 2024 18:23:10 +0100 Subject: [PATCH 58/87] Update YOLOv8 on Himax Learning Path --- .../{how-to-2.md => build-firmware.md} | 4 - .../yolo-on-himax/{how-to-1.md => dev-env.md} | 0 .../{how-to-3.md => flash-and-run.md} | 2 +- .../yolo-on-himax/how-to-4.md | 32 ------- .../yolo-on-himax/how-to-5.md | 52 ----------- .../yolo-on-himax/web-toolkit.md | 92 +++++++++++++++++++ 6 files changed, 93 insertions(+), 89 deletions(-) rename content/learning-paths/microcontrollers/yolo-on-himax/{how-to-2.md => build-firmware.md} (92%) rename content/learning-paths/microcontrollers/yolo-on-himax/{how-to-1.md => dev-env.md} (100%) rename content/learning-paths/microcontrollers/yolo-on-himax/{how-to-3.md => flash-and-run.md} (96%) delete mode 100644 content/learning-paths/microcontrollers/yolo-on-himax/how-to-4.md delete mode 100644 content/learning-paths/microcontrollers/yolo-on-himax/how-to-5.md create mode 100644 content/learning-paths/microcontrollers/yolo-on-himax/web-toolkit.md diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-2.md b/content/learning-paths/microcontrollers/yolo-on-himax/build-firmware.md similarity index 92% rename from content/learning-paths/microcontrollers/yolo-on-himax/how-to-2.md rename to content/learning-paths/microcontrollers/yolo-on-himax/build-firmware.md index 6d5377363e..d2f5604b99 100644 --- a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-2.md +++ b/content/learning-paths/microcontrollers/yolo-on-himax/build-firmware.md @@ -24,11 +24,7 @@ For the object detection to activate, you need to edit the project's `makefile`, ```bash cd EPII_CM55M_APP_S ``` -Open the file and scroll down until you find the `APP_TYPE` attribute. Update the value to `tflm_yolov8_od`. -```output -APP_TYPE = tflm_yolov8_od -``` Use the `make` build tool to compile the source code. This should take up to 10 minutes depending on the number of CPU cores available on your host machine. The result is an `.elf` file written to the directory below. ```bash diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-1.md b/content/learning-paths/microcontrollers/yolo-on-himax/dev-env.md similarity index 100% rename from content/learning-paths/microcontrollers/yolo-on-himax/how-to-1.md rename to content/learning-paths/microcontrollers/yolo-on-himax/dev-env.md diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-3.md b/content/learning-paths/microcontrollers/yolo-on-himax/flash-and-run.md similarity index 96% rename from content/learning-paths/microcontrollers/yolo-on-himax/how-to-3.md rename to content/learning-paths/microcontrollers/yolo-on-himax/flash-and-run.md index 67a3f530ab..71e16134fd 100644 --- a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-3.md +++ b/content/learning-paths/microcontrollers/yolo-on-himax/flash-and-run.md @@ -92,4 +92,4 @@ b'person_score:112' b'EVT event = 10' ``` -You have now verified that the model works correctly in the firmware. The next step is to view it using a web toolkit. \ No newline at end of file +This means the image works correctly on the device, and the end-to-end flow is complete. \ No newline at end of file diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-4.md b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-4.md deleted file mode 100644 index b34e3e9e5c..0000000000 --- a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-4.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: Run and view model results -weight: 5 - -### FIXED, DO NOT MODIFY -layout: learningpathall ---- - -In this section, you will view a live camera feed with the ML application running. - -## Download the Himax AI web toolkit - -The Himax AI web toolkit enables a browser-based graphical user interface (GUI) for the live camera feed. - -```bash -wget https://github.com/HimaxWiseEyePlus/Seeed_Grove_Vision_AI_Module_V2/releases/download/v1.1/Himax_AI_web_toolkit.zip -unzip Himax_AI_web_toolkit.zip -``` - -Open the unzipped directory in your file browsing system and double click `index.html`. This will open the GUI within your default browser. - -## Connect to the Grove Vision AI - -Select `Grove Vision AI(V2)` in the top-right hand corner and press `Connect` button. Follow the instructions to set up the connection. - -![Himax web UI](./himax_web_ui.jpg) - -The image will run the YOLOv8 on your device. By using the camera to identify things from the [Common Objects in Context (COCO) dataset](https://cocodataset.org/#home), which the model has been trained on, you can put the it to the test. Get some common objects ready and move on to the next section. - -## View model results - -TODO have running section here? \ No newline at end of file diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-5.md b/content/learning-paths/microcontrollers/yolo-on-himax/how-to-5.md deleted file mode 100644 index bc84d98418..0000000000 --- a/content/learning-paths/microcontrollers/yolo-on-himax/how-to-5.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: Object detection and additional models -weight: 6 - -### FIXED, DO NOT MODIFY -layout: learningpathall ---- - -There are other computer vision applications to try. In this section, you will re-flash the module with a different one and check the results. - -## Modify the Makefile - -Change the directory to the where the Makefile is located. If you cloned the repository to a different location, replace $HOME with the path. - -```bash -cd $HOME/Seeed_Grove_Vision_AI_Module_V2/EPII_CM55M_APP_S/ -``` - -The table shows the different options available to use with the web toolkit. Modify the `APP_TYPE` field in the Makefile to one of the values in the table. - -|APP_TYPE =|Description| -|---|---| -|tflm_folov8_od|Object detection| -|tflm_folov8_pose|Pose detection| -|tflm_fd_fm|Face detection| - - -## Regenerate the firmware image - -Now you can run `make` to re-generate the `.elf` file. - -```bash -make clean -make -``` -Use the command from [Flash firmware onto the microcontroller](/learning-paths/microcontrollers/yolo-on-himax/how-to-3/) section to run re-generate the firmware image. - -```bash -python xmodem\xmodem_send.py --port= --baudrate=921600 --protocol=xmodem --file=we2_image_gen_local\output_case1_sec_wlcsp\output.img -``` - -The images below are captured images from the models run in the toolkit. - -### Objection detection -![object_detection](./object_detection.jpg) - -### Pose estimation -![Pose estimation](./pose_estimation.jpg) - -### Face detection -![object_detection](./face_detection.jpg) - diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/web-toolkit.md b/content/learning-paths/microcontrollers/yolo-on-himax/web-toolkit.md new file mode 100644 index 0000000000..ce39140aa4 --- /dev/null +++ b/content/learning-paths/microcontrollers/yolo-on-himax/web-toolkit.md @@ -0,0 +1,92 @@ +--- +title: (optional) Run additional models in the web toolkit +weight: 6 + +draft: true + +### FIXED, DO NOT MODIFY +layout: learningpathall +--- + +In this section, you will view a live camera feed with the ML application running. + +## Modify the Makefile + +Change the directory to the where the Makefile is located. If you cloned the repository to a different location, replace $HOME with the path. + +```bash +cd $HOME/Seeed_Grove_Vision_AI_Module_V2/EPII_CM55M_APP_S/ +``` + +The table shows the different options available to use with the web toolkit. Modify the `APP_TYPE` field in the `makefile` to one of the values in the table. + +|APP_TYPE |Description | +|--- |--- | +|tflm_yolov8_od |Object detection | +|tflm_yolov8_pose |Pose detection | +|tflm_fd_fm |Face detection | + + +## Regenerate the firmware image + +Now you can run `make` to re-generate the `.elf` file. + +```bash +make clean +make +``` + +Use the commands from [Flash firmware onto the microcontroller](/learning-paths/microcontrollers/yolo-on-himax/flash-and-run/) section to run re-generate the firmware image. + +```bash +cd ../we2_image_gen_local/ +cp ../EPII_CM55M_APP_S/obj_epii_evb_icv30_bdv10/gnu_epii_evb_WLCSP65/EPII_CM55M_gnu_epii_evb_WLCSP65_s.elf input_case1_secboot/ +``` + +### Linux + +```bash +./we2_local_image_gen project_case1_blp_wlcsp.json +``` + +### macOS +```console +./we2_local_image_gen_macOS_arm64 project_case1_blp_wlcsp.json +``` + +Finally, use `xmodem` to flash the image. + +```bash +python xmodem\xmodem_send.py --port= --baudrate=921600 --protocol=xmodem --file=we2_image_gen_local\output_case1_sec_wlcsp\output.img +``` + +Press the reset button when prompted before moving on. + +## Download the Himax AI web toolkit + +The Himax AI web toolkit enables a browser-based graphical user interface (GUI) for the live camera feed. + +```bash +wget https://github.com/HimaxWiseEyePlus/Seeed_Grove_Vision_AI_Module_V2/releases/download/v1.1/Himax_AI_web_toolkit.zip +unzip Himax_AI_web_toolkit.zip +``` + +Open the unzipped directory in your file browsing system and double click `index.html`. This will open the GUI within your default browser. + +## Connect to the Grove Vision AI + +Select `Grove Vision AI(V2)` in the top-right hand corner and press `Connect` button. Follow the instructions to set up the connection. Now you should see a video feed with a bounding box showing identified objects, poses or face detection. + +![Himax web UI](./himax_web_ui.jpg) + +The images below are captured images from the models run in the toolkit. + +### Objection detection +![object_detection](./object_detection.jpg) + +### Pose estimation +![Pose estimation](./pose_estimation.jpg) + +### Face detection +![object_detection](./face_detection.jpg) + From 36f0ee2590ddae02952019ea91c71f43e7f25f93 Mon Sep 17 00:00:00 2001 From: Maddy Underwood <167196745+madeline-underwood@users.noreply.github.com> Date: Thu, 28 Nov 2024 17:25:31 +0000 Subject: [PATCH 59/87] Editorial update. --- .../android_webgpu_dawn/7-Profiling-App-using-Streamline.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/7-Profiling-App-using-Streamline.md b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/7-Profiling-App-using-Streamline.md index 273c619fab..c47fbbaba8 100644 --- a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/7-Profiling-App-using-Streamline.md +++ b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/7-Profiling-App-using-Streamline.md @@ -10,7 +10,7 @@ layout: learningpathall Follow these steps to configure Arm Streamline Performance Analyzer to capture Mali GPU related data: -* Confirm your Android device is connected to the development machine. +* Confirm that your Android device is connected to the development machine. * Navigate to the **Start** tab, select **Android (adb)**, select the device, and then select the application to debug. * Select **Select Counters**. @@ -38,7 +38,7 @@ Switch to **Mali Timeline** view as shown below: !["Mali Timeline Streamline" #center](images/Streamline-mali-timeline.png "Mali Timeline Streamline") -You might have to zoom into the data up to the maximum (**500 us**), as you are rendering a very simple 3D object. +You might have to zoom into the data up to the maximum (**500 us**), as you are rendering a simple 3D object. You can analyze two consecutive frames as shown below: From e68e7dbc651e1f67e72ad4a77bacb6ed597b1ab3 Mon Sep 17 00:00:00 2001 From: Annie Tallund Date: Thu, 28 Nov 2024 20:06:54 +0100 Subject: [PATCH 60/87] Temporarily disable draft --- .../learning-paths/microcontrollers/yolo-on-himax/_index.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/_index.md b/content/learning-paths/microcontrollers/yolo-on-himax/_index.md index 1dcf71ef7a..7666663b81 100644 --- a/content/learning-paths/microcontrollers/yolo-on-himax/_index.md +++ b/content/learning-paths/microcontrollers/yolo-on-himax/_index.md @@ -31,9 +31,9 @@ operatingsystems: - Linux - macOS -draft: true -cascade: - draft: true +#draft: true +#cascade: +# draft: true ### FIXED, DO NOT MODIFY From d82be5f61918924f344acb2b748ac1565953c954 Mon Sep 17 00:00:00 2001 From: Annie Tallund Date: Thu, 28 Nov 2024 20:08:44 +0100 Subject: [PATCH 61/87] Temporarily disable draft --- .../microcontrollers/yolo-on-himax/web-toolkit.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/web-toolkit.md b/content/learning-paths/microcontrollers/yolo-on-himax/web-toolkit.md index ce39140aa4..6df3680264 100644 --- a/content/learning-paths/microcontrollers/yolo-on-himax/web-toolkit.md +++ b/content/learning-paths/microcontrollers/yolo-on-himax/web-toolkit.md @@ -2,7 +2,7 @@ title: (optional) Run additional models in the web toolkit weight: 6 -draft: true +#draft: true ### FIXED, DO NOT MODIFY layout: learningpathall From ef95018212220423768e2ea78bbdf42826789da8 Mon Sep 17 00:00:00 2001 From: Annie Tallund Date: Thu, 28 Nov 2024 17:41:12 +0100 Subject: [PATCH 62/87] Update MLEK LP with Corstone-320 FVP --- .../microcontrollers/mlek/_index.md | 6 +- .../microcontrollers/mlek/build.md | 117 ++++++++++++++---- .../microcontrollers/mlek/run.md | 53 +++++--- 3 files changed, 134 insertions(+), 42 deletions(-) diff --git a/content/learning-paths/microcontrollers/mlek/_index.md b/content/learning-paths/microcontrollers/mlek/_index.md index 4a0460243f..14729b1732 100644 --- a/content/learning-paths/microcontrollers/mlek/_index.md +++ b/content/learning-paths/microcontrollers/mlek/_index.md @@ -1,13 +1,13 @@ --- title: Build and run the Arm Machine Learning Evaluation Kit examples -minutes_to_complete: 30 +minutes_to_complete: 30 who_is_this_for: This is an introductory topic for embedded software developers interested in learning about machine learning. -learning_objectives: +learning_objectives: - Build examples from Machine Learning Evaluation Kit (MLEK) - - Run the examples on Corstone-300 FVP or Virtual Hardware + - Run the examples on Corstone-320 FVP or Virtual Hardware prerequisites: - Some familiarity with embedded programming diff --git a/content/learning-paths/microcontrollers/mlek/build.md b/content/learning-paths/microcontrollers/mlek/build.md index 0872560bfd..98b0e289b8 100644 --- a/content/learning-paths/microcontrollers/mlek/build.md +++ b/content/learning-paths/microcontrollers/mlek/build.md @@ -7,69 +7,138 @@ weight: 2 # 1 is first, 2 is second, etc. # Do not modify these elements layout: "learningpathall" --- -The [Arm ML Evaluation Kit (MLEK)](https://review.mlplatform.org/plugins/gitiles/ml/ethos-u/ml-embedded-evaluation-kit) provides a number of ready-to-use ML applications. These allow you to investigate the embedded software stack and evaluate performance on the Cortex-M55 and Ethos-U55 processors. +The [Arm ML Evaluation Kit (MLEK)](https://review.mlplatform.org/plugins/gitiles/ml/ethos-u/ml-embedded-evaluation-kit) provides a number of ready-to-use ML applications. These allow you to investigate the embedded software stack and evaluate performance on the Cortex-M55 and Ethos-U85 processors. -You can use the MLEK source code to build sample applications and run them on the [Corstone reference systems](https://www.arm.com/products/silicon-ip-subsystems/), for example the [Corstone-300](https://developer.arm.com/Processors/Corstone-300) Fixed Virtual Platform (FVP). +You can use the MLEK source code to build sample applications and run them on the [Corstone reference systems](https://www.arm.com/products/silicon-ip-subsystems/), for example the [Corstone-320](https://developer.arm.com/Processors/Corstone-320) Fixed Virtual Platform (FVP). ## Before you begin You can use your own Ubuntu Linux host machine or use [Arm Virtual Hardware (AVH)](https://www.arm.com/products/development-tools/simulation/virtual-hardware) for this Learning Path. -The Ubuntu version should be 20.04 or 22.04. The `x86_64` architecture must be used because the Corstone-300 FVP is not currently available for the Arm architecture. You will need a Linux desktop to run the FVP because it opens graphical windows for input and output from the software applications. +The Ubuntu version should be 20.04 or 22.04. These instructions have been tested on the `x86_64` architecture. You will need a way to interact visually with your machine to run the FVP, because it opens graphical windows for input and output from the software applications. If you want to use Arm Virtual Hardware the [Arm Virtual Hardware install guide](/install-guides/avh#corstone) provides setup instructions. -### Compilers +## Build the example application -The examples can be built with [Arm Compiler for Embedded](https://developer.arm.com/Tools%20and%20Software/Arm%20Compiler%20for%20Embedded) or [Arm GNU Toolchain](https://developer.arm.com/Tools%20and%20Software/GNU%20Toolchain). +### Install the dependencies -Use the install guides to install the compilers on your computer: -- [Arm Compiler for Embedded](/install-guides/armclang/) -- [Arm GNU Toolchain](/install-guides/gcc/arm-gnu) +Run the following commands to install some necessary tools. -Both compilers are pre-installed in Arm Virtual Hardware. +```bash +sudo apt update +sudo apt install unzip python3-venv python3-pip -y +``` +### Install the compiler -### Corstone-300 FVP {#fvp} +The examples can be built with [Arm Compiler for Embedded](https://developer.arm.com/Tools%20and%20Software/Arm%20Compiler%20for%20Embedded) or [Arm GNU Toolchain](https://developer.arm.com/Tools%20and%20Software/GNU%20Toolchain). -To install the Corstone-300 FVP on your computer refer to the [install guide for Arm Ecosystem FVPs](/install-guides/fm_fvp). +Install the GNU toolchain (`gcc`). -The Corstone-300 FVP is pre-installed in Arm Virtual Hardware. +```bash +wget https://developer.arm.com/-/media/Files/downloads/gnu/13.3.rel1/binrel/arm-gnu-toolchain-13.3.rel1-x86_64-arm-none-eabi.tar.xz -## Clone the repository +tar -xf arm-gnu-toolchain-13.3.rel1-x86_64-arm-none-eabi.tar.xz -1. Install `virtualenv` to create Python virtual environments: +export PATH=~/arm-gnu-toolchain-13.3.rel1-x86_64-arm-none-eabi/bin/:$PATH -```console -sudo apt update -sudo apt install python3-venv -y ``` -2. Clone the ML Evaluation Kit repository, and navigate into the new directory: +{{% notice Tip %}} +You can review the installation guides for further details. -```console +- [Arm Compiler for Embedded](/install-guides/armclang/) +- [Arm GNU Toolchain](/install-guides/gcc/arm-gnu) + +{{% /notice %}} + + +Both compilers are pre-installed in Arm Virtual Hardware. + +### Clone the repository + +Clone the ML Evaluation Kit repository, and navigate into the new directory: + +```bash git clone "https://review.mlplatform.org/ml/ethos-u/ml-embedded-evaluation-kit" cd ml-embedded-evaluation-kit git submodule update --init ``` -## Build the example applications +### Run the build sscript + +The default build is Ethos-U55 and Corstone-300. The default build for Ethos-U85 is Corstone-320. Use the `npu-config-name` flag to set Ethos-U85. -The default compiler is `gcc`, but `armclang` can also be used. +The default compiler is `gcc`, but `armclang` can also be used. Number after `ethos-u85-*` is number of MACs, 128-2048 (2^n). You can select either compiler to build applications. You can also try them both and compare the results. - Build with Arm GNU Toolchain (`gcc`) ``` -./build_default.py +./build_default.py --npu-config-name ethos-u85-256 --toolchain gnu ``` - Build with Arm Compiler for Embedded (`armclang`) ```console -./build_default.py --toolchain arm +./build_default.py --npu-config-name ethos-u85-256 --toolchain arm ``` The build will take a few minutes. -When the build is complete, you will find the example images (`.axf` files) in the `cmake-build-*/bin` directory. The `cmake-build` directory names are specific to the compiler used and Ethos-U55 configuration. +When the build is complete, you will find the examples (`.axf` files) in the `cmake-build-*/bin` directory. The `cmake-build` directory names are specific to the compiler used and Ethos-U85 configuration. Verify that the files have been created by observing the output of the `ls` command + +```bash +ls cmake-build-mps4-sse-320-ethos-u85-256-gnu/bin/ +``` + +The next step is to install the FVP and run it with these example audio clips. + + +## Corstone-320 FVP {#fvp} + +This section describes installation of the Corstone-320 to run on your local machine. If you are using Arm Virtual Hardware, that comes with the Corstone-300 FVP pre-installed, and you can move on to the next section. You can review Arm's full FVP offer and general installation steps in the [Fast Model and Fixed Virtual Platform](/install-guides/fm_fvp) install guides. + +{{% notice Note %}} +The rest of the steps for the Corstone-320 need to be run in a new terminal window. +{{% /notice %}} + +Open a **new terminal window** and download the Corstone-320 archive. + +```bash +cd $HOME +wget https://developer.arm.com/-/cdn-downloads/permalink/FVPs-Corstone-IoT/Corstone-320/FVP_Corstone_SSE-320_11.27_25_Linux64.tgz +``` + +Unpack it with `tar`, run the setup script and export the binary paths to the `PATH` environment variable. + +```bash +tar -xf FVP_Corstone_SSE-320_11.27_25_Linux64.tgz +./FVP_Corstone_SSE-320.sh --i-agree-to-the-contained-eula --no-interactive -q +export PATH=$HOME/FVP_Corstone_SSE-320/models/Linux64_GCC-9.3:$PATH +``` + +The FVP requires an additional dependency, `libpython3.9.so.1.0`, which can be installed using a script. Note that this will tinkle with the python installation for the current terminal window, so make sure to open a new one for the next step. + +```bash +source $HOME/FVP_Corstone_SSE-320/scripts/runtime.sh +``` + +Verify that the FVP was successfully installed by comparing your output from below command. + +```bash +FVP_Corstone_SSE-320 +``` + +```output +telnetterminal0: Listening for serial connection on port 5000 +telnetterminal1: Listening for serial connection on port 5001 +telnetterminal2: Listening for serial connection on port 5002 +telnetterminal5: Listening for serial connection on port 5003 + +``` + + +Now you are ready to test the application with the FVP. + diff --git a/content/learning-paths/microcontrollers/mlek/run.md b/content/learning-paths/microcontrollers/mlek/run.md index 69c9a83399..714002ad57 100644 --- a/content/learning-paths/microcontrollers/mlek/run.md +++ b/content/learning-paths/microcontrollers/mlek/run.md @@ -1,6 +1,6 @@ --- # User change -title: "Run the examples on Corstone-300 FVP" +title: "Run the examples on the FVP" weight: 3 # 1 is first, 2 is second, etc. @@ -9,17 +9,37 @@ layout: "learningpathall" --- ## Run an example -To run an example on the Corstone-300 FVP target, launch the FVP executable with `-a` to specify the software application. +Now you are ready to combine the FVP installation and the example application. Navigate to the evaluation kit repository. -To run the key word spotting example `ethos-u-kws.axf` compiled with `gcc` use: +```bash +cd ml-embedded-evaluation-kit/ +``` + +To run an example on the Corstone-320 FVP target, launch the FVP executable with `-a` to specify the software application. + +To run the key word spotting example `ethos-u-kws.axf` compiled with `gcc` use one of the two options below. -- on your computer with the FVP installed +## Option 1: On your computer with the FVP installed + +Run the FVP. ```console -FVP_Corstone_SSE-300_Ethos-U55 -a cmake-build-mps3-sse-300-ethos-u55-128-gnu/bin/ethos-u-kws.axf +FVP_Corstone_SSE-320 \ + -C mps4_board.subsystem.ethosu.num_macs=256 \ + -C mps4_board.visualisation.disable-visualisation=1 \ + -C vis_hdlcd.disable_visualisation=1 \ + -a cmake-build-mps4-sse-320-ethos-u85-256-gnu/bin/ethos-u-kws.axf ``` -- on Arm Virtual Hardware +{{% notice Note %}} +The number of NPU MACs specified in the build MUST match the number specified in the FVP. Else an error similar to the below will be emitted. + +``` +E: NPU config mismatch. npu.macs_per_cc=E: NPU config mismatch.. +``` +{{% /notice %}} + +## Option 2: On Arm Virtual Hardware ```console VHT_Corstone_SSE-300_Ethos-U55 -a cmake-build-mps3-sse-300-ethos-u55-128-gnu/bin/ethos-u-kws.axf @@ -27,17 +47,18 @@ VHT_Corstone_SSE-300_Ethos-U55 -a cmake-build-mps3-sse-300-ethos-u55-128-gnu/bin When the example is running, a telnet instance will open allowing you to interact with the example. {{% notice Note %}} -It may take some time to initialize the terminal, please be patient. +It may take some time to initialize the terminal, please be patient. If you see warnings regarding loading the image, these can likely be ignored. {{% /notice %}} +## Interact with the application Use the menu to control the application. For the key word spotting application enter 1 to classify the next audio clip. ![terminal #center](term.png) -The results of the classification will appear in the visualization window of the FVP. +The results of the classification will appear in the visualization window of the FVP. The display shows a 98% chance of the audio clips sound was down. @@ -56,23 +77,23 @@ You can specify additional parameters to configure certain aspects of the simula List the available parameters by running the FVP executable with the `--list-params` option, for example: ```console -FVP_Corstone_SSE-300_Ethos-U55 --list-params > parameters.txt +FVP_Corstone_SSE-320 --list-params > parameters.txt ``` {{% notice Note %}} If you are running with Arm Virtual Hardware substitute `VHT_Corstone_SSE-300_Ethos-U55` as the executable name. {{% /notice %}} -Open the file `parameters.txt` to see all of the possible parameters and the default values. +Open the file `parameters.txt` to see all of the possible parameters and the default values. ### Set parameters -Individual parameters can be set with the `-C` command option. +Individual parameters can be set with the `-C` command option. For example, to put the Ethos-U component into fast execution mode: ```console -FVP_Corstone_SSE-300_Ethos-U55 -a cmake-build-mps3-sse-300-ethos-u55-128-gnu/bin/ethos-u-kws.axf -C ethosu.extra_args="--fast" +FVP_Corstone_SSE-320 -a cmake-build-mps4-sse-320-ethos-u85-256-gnu/bin/ethos-u-kws.axf -C mps4_board.subsystem.ethosu.extra_args="--fast" ``` {{% notice Note %}} Do not use fast execution mode whilst benchmarking performance. @@ -83,14 +104,16 @@ To set multiple parameters it may be easier to list them in a text file (without For example, use a text editor to create a file named `options.txt` with the contents: ```console -mps3_board.visualisation.disable-visualisation=1 -ethosu.extra_args="--fast" +mps4_board.visualisation.disable-visualisation=1 +mps4_board.subsystem.ethosu.extra_args="--fast" ``` Run the FVP with the `-f` option and the `options.txt` file: ```console -FVP_Corstone_SSE-300_Ethos-U55 -a cmake-build-mps3-sse-300-ethos-u55-128-gnu/bin/ethos-u-kws.axf -f options.txt +FVP_Corstone_SSE-320 -a cmake-build-mps4-sse-320-ethos-u85-256-gnu/bin/ethos-u-kws.axf -f options.txt ``` Full instructions are provided in the evaluation kit [documentation](https://review.mlplatform.org/plugins/gitiles/ml/ethos-u/ml-embedded-evaluation-kit/+/HEAD/docs/quick_start.md). + +You have now run an example application on an Arm Fixed Virtual Platform. \ No newline at end of file From a87b4e62b781a8775516201f7493fbde343cafd9 Mon Sep 17 00:00:00 2001 From: Annie Tallund Date: Fri, 29 Nov 2024 13:26:00 +0100 Subject: [PATCH 63/87] Update web-toolkit.md --- .../yolo-on-himax/web-toolkit.md | 22 +++++++++++++------ 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/web-toolkit.md b/content/learning-paths/microcontrollers/yolo-on-himax/web-toolkit.md index 6df3680264..0790b4ff35 100644 --- a/content/learning-paths/microcontrollers/yolo-on-himax/web-toolkit.md +++ b/content/learning-paths/microcontrollers/yolo-on-himax/web-toolkit.md @@ -18,13 +18,18 @@ Change the directory to the where the Makefile is located. If you cloned the rep cd $HOME/Seeed_Grove_Vision_AI_Module_V2/EPII_CM55M_APP_S/ ``` -The table shows the different options available to use with the web toolkit. Modify the `APP_TYPE` field in the `makefile` to one of the values in the table. +The table shows the different options available to use with the web toolkit. Modify the `APP_TYPE` field in the `makefile` to one of the values in the table. Then, to the xmodem argument, pass the `--model` argument. + +|APP_TYPE |Description | --model argument | +|--- |--- |--- +|tflm_yolov8_od |Object detection | model_zoo\tflm_yolov8_od\yolov8n_od_192_delete_transpose_0xB7B000.tflite 0xB7B000 0x00000 | +|tflm_yolov8_pose |Pose detection | model_zoo\tflm_yolov8_pose\yolov8n_pose_256_vela_3_9_0x3BB000.tflite 0x3BB000 0x00000 | +|tflm_fd_fm |Face detection | model_zoo\tflm_fd_fm\0_fd_0x200000.tflite 0x200000 0x00000 model_zoo\tflm_fd_fm\1_fm_0x280000.tflite 0x280000 0x00000 model_zoo\tflm_fd_fm\2_il_0x32A000.tflite 0x32A000 0x00000 | + +{{% notice Note %}} +For `tflm_fd_fm`, you need to pass all three models as separate `--model` arguments. +{{% /notice %}} -|APP_TYPE |Description | -|--- |--- | -|tflm_yolov8_od |Object detection | -|tflm_yolov8_pose |Pose detection | -|tflm_fd_fm |Face detection | ## Regenerate the firmware image @@ -57,7 +62,10 @@ cp ../EPII_CM55M_APP_S/obj_epii_evb_icv30_bdv10/gnu_epii_evb_WLCSP65/EPII_CM55M_ Finally, use `xmodem` to flash the image. ```bash -python xmodem\xmodem_send.py --port= --baudrate=921600 --protocol=xmodem --file=we2_image_gen_local\output_case1_sec_wlcsp\output.img +python xmodem\xmodem_send.py --port= \ +--baudrate=921600 --protocol=xmodem \ +--file=we2_image_gen_local\output_case1_sec_wlcsp\output.img \ +--model= ``` Press the reset button when prompted before moving on. From f898b5f4c0fba7c732afc8b78df10e92007d1b14 Mon Sep 17 00:00:00 2001 From: GitHub Actions Stats Bot <> Date: Mon, 2 Dec 2024 01:29:06 +0000 Subject: [PATCH 64/87] automatic update of stats files --- data/stats_current_test_info.yml | 2 +- data/stats_weekly_data.yml | 84 ++++++++++++++++++++++++++++++++ 2 files changed, 85 insertions(+), 1 deletion(-) diff --git a/data/stats_current_test_info.yml b/data/stats_current_test_info.yml index 1eca8f7819..3947475798 100644 --- a/data/stats_current_test_info.yml +++ b/data/stats_current_test_info.yml @@ -1,5 +1,5 @@ summary: - content_total: 303 + content_total: 305 content_with_all_tests_passing: 32 content_with_tests_enabled: 34 sw_categories: diff --git a/data/stats_weekly_data.yml b/data/stats_weekly_data.yml index 280ec08538..e9e8de919a 100644 --- a/data/stats_weekly_data.yml +++ b/data/stats_weekly_data.yml @@ -4002,3 +4002,87 @@ avg_close_time_hrs: 0 num_issues: 13 percent_closed_vs_total: 0.0 +- a_date: '2024-12-02' + content: + cross-platform: 25 + embedded-systems: 19 + install-guides: 90 + laptops-and-desktops: 33 + microcontrollers: 25 + servers-and-cloud-computing: 88 + smartphones-and-mobile: 25 + total: 305 + contributions: + external: 43 + internal: 355 + github_engagement: + num_forks: 30 + num_prs: 14 + individual_authors: + alaaeddine-chakroun: 1 + alexandros-lamprineas: 1 + annie-tallund: 1 + arm: 3 + arnaud-de-grandmaison: 1 + basma-el-gaabouri: 1 + ben-clark: 1 + bolt-liu: 2 + brenda-strech: 1 + chaodong-gong,-alex-su,-kieran-hejmadi: 1 + chen-zhang: 1 + christopher-seidl: 7 + cyril-rohr: 1 + daniel-gubay: 1 + daniel-nguyen: 1 + david-spickett: 2 + dawid-borycki: 30 + diego-russo: 1 + diego-russo-and-leandro-nunes: 1 + elham-harirpoush: 2 + florent-lebeau: 5 + "fr\xE9d\xE9ric--lefred--descamps": 2 + gabriel-peterson: 5 + gayathri-narayana-yegna-narayanan: 1 + graham-woodward: 1 + iago-calvo-lista,-arm: 1 + james-whitaker,-arm: 1 + jason-andrews: 90 + joe-stech: 1 + johanna-skinnider: 2 + jonathan-davies: 2 + jose-emilio-munoz-lopez,-arm: 1 + julie-gaskin: 4 + julio-suarez: 5 + kasper-mecklenburg: 1 + koki-mitsunami: 2 + konstantinos-margaritis: 7 + kristof-beyls: 1 + liliya-wu: 1 + mathias-brossard: 1 + michael-hall: 5 + nikhil-gupta,-pareena-verma,-nobel-chowdary-mandepudi,-ravi-malhotra: 1 + odin-shen: 1 + owen-wu,-arm: 2 + pareena-verma: 35 + pareena-verma,-annie-tallund: 1 + pareena-verma,-jason-andrews,-and-zach-lasiuk: 1 + pareena-verma,-joe-stech,-adnan-alsinan: 1 + pranay-bakre: 4 + przemyslaw-wirkus: 1 + rin-dobrescu: 1 + roberto-lopez-mendez: 2 + ronan-synnott: 45 + thirdai: 1 + tianyu-li: 1 + tom-pilar: 1 + uma-ramalingam: 1 + varun-chari,-pareena-verma: 1 + visualsilicon: 1 + ying-yu: 1 + ying-yu,-arm: 1 + zach-lasiuk: 1 + zhengjun-xing: 2 + issues: + avg_close_time_hrs: 0 + num_issues: 18 + percent_closed_vs_total: 0.0 From 3867a5c4706e6825a0da5ed6c24964318a102dc8 Mon Sep 17 00:00:00 2001 From: GitHub Actions Stats Bot <> Date: Mon, 2 Dec 2024 02:38:46 +0000 Subject: [PATCH 65/87] automatic update of stats files --- data/stats_current_test_info.yml | 2 +- data/stats_weekly_data.yml | 84 ++++++++++++++++++++++++++++++++ 2 files changed, 85 insertions(+), 1 deletion(-) diff --git a/data/stats_current_test_info.yml b/data/stats_current_test_info.yml index 1eca8f7819..3947475798 100644 --- a/data/stats_current_test_info.yml +++ b/data/stats_current_test_info.yml @@ -1,5 +1,5 @@ summary: - content_total: 303 + content_total: 305 content_with_all_tests_passing: 32 content_with_tests_enabled: 34 sw_categories: diff --git a/data/stats_weekly_data.yml b/data/stats_weekly_data.yml index 280ec08538..e9e8de919a 100644 --- a/data/stats_weekly_data.yml +++ b/data/stats_weekly_data.yml @@ -4002,3 +4002,87 @@ avg_close_time_hrs: 0 num_issues: 13 percent_closed_vs_total: 0.0 +- a_date: '2024-12-02' + content: + cross-platform: 25 + embedded-systems: 19 + install-guides: 90 + laptops-and-desktops: 33 + microcontrollers: 25 + servers-and-cloud-computing: 88 + smartphones-and-mobile: 25 + total: 305 + contributions: + external: 43 + internal: 355 + github_engagement: + num_forks: 30 + num_prs: 14 + individual_authors: + alaaeddine-chakroun: 1 + alexandros-lamprineas: 1 + annie-tallund: 1 + arm: 3 + arnaud-de-grandmaison: 1 + basma-el-gaabouri: 1 + ben-clark: 1 + bolt-liu: 2 + brenda-strech: 1 + chaodong-gong,-alex-su,-kieran-hejmadi: 1 + chen-zhang: 1 + christopher-seidl: 7 + cyril-rohr: 1 + daniel-gubay: 1 + daniel-nguyen: 1 + david-spickett: 2 + dawid-borycki: 30 + diego-russo: 1 + diego-russo-and-leandro-nunes: 1 + elham-harirpoush: 2 + florent-lebeau: 5 + "fr\xE9d\xE9ric--lefred--descamps": 2 + gabriel-peterson: 5 + gayathri-narayana-yegna-narayanan: 1 + graham-woodward: 1 + iago-calvo-lista,-arm: 1 + james-whitaker,-arm: 1 + jason-andrews: 90 + joe-stech: 1 + johanna-skinnider: 2 + jonathan-davies: 2 + jose-emilio-munoz-lopez,-arm: 1 + julie-gaskin: 4 + julio-suarez: 5 + kasper-mecklenburg: 1 + koki-mitsunami: 2 + konstantinos-margaritis: 7 + kristof-beyls: 1 + liliya-wu: 1 + mathias-brossard: 1 + michael-hall: 5 + nikhil-gupta,-pareena-verma,-nobel-chowdary-mandepudi,-ravi-malhotra: 1 + odin-shen: 1 + owen-wu,-arm: 2 + pareena-verma: 35 + pareena-verma,-annie-tallund: 1 + pareena-verma,-jason-andrews,-and-zach-lasiuk: 1 + pareena-verma,-joe-stech,-adnan-alsinan: 1 + pranay-bakre: 4 + przemyslaw-wirkus: 1 + rin-dobrescu: 1 + roberto-lopez-mendez: 2 + ronan-synnott: 45 + thirdai: 1 + tianyu-li: 1 + tom-pilar: 1 + uma-ramalingam: 1 + varun-chari,-pareena-verma: 1 + visualsilicon: 1 + ying-yu: 1 + ying-yu,-arm: 1 + zach-lasiuk: 1 + zhengjun-xing: 2 + issues: + avg_close_time_hrs: 0 + num_issues: 18 + percent_closed_vs_total: 0.0 From ec1e112db841f2f5ea4224de8c8b859b7fdd1bdb Mon Sep 17 00:00:00 2001 From: Maddy Underwood <167196745+madeline-underwood@users.noreply.github.com> Date: Mon, 2 Dec 2024 07:25:07 +0000 Subject: [PATCH 66/87] Editorial. --- .../5-render-a-simple-3D-object-part-1.md | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/5-render-a-simple-3D-object-part-1.md b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/5-render-a-simple-3D-object-part-1.md index f807a40b92..322abd6106 100644 --- a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/5-render-a-simple-3D-object-part-1.md +++ b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/5-render-a-simple-3D-object-part-1.md @@ -8,40 +8,40 @@ layout: learningpathall ## Command queue -Graphic applications have to deal with 2 processors, the CPU and the GPU. +Graphic applications must operate with two processors, the CPU and the GPU. -These 2 processors run on different timelines. For optimal performance, commands intended for the GPU are batched and sent through a command queue. The GPU consumes this queue whenever it is ready, and this way processors minimize the time spent idling for their sibling to respond. +These two processors run on different timelines. For optimal performance, commands intended for the GPU are batched and sent through a command queue. The GPU consumes this queue whenever it is ready, and in this way processors minimize the time spent idling for their sibling to respond. A WebGPU device has a single queue, which is used to send both commands and data. You can get it with `wgpuDeviceGetQueue()`. -WebGPU offers 3 different ways to submit work to this queue: +WebGPU offers three different ways to submit work to this queue: -* wgpuQueueSubmit -* wgpuQueueWriteBuffer -* wgpuQueueWriteTexture +* wgpuQueueSubmit. +* wgpuQueueWriteBuffer. +* wgpuQueueWriteTexture. {{% notice Note %}} -Other graphics API allow you to build multiple queues per device, and future version of WebGPU might as well. +Other graphics API allow you to build multiple queues per device. -If you want to learn more, refer to the [Command Queue](https://eliemichel.github.io/LearnWebGPU/getting-started/the-command-queue.html) +If you would like to learn more, refer to the [Command Queue](https://eliemichel.github.io/LearnWebGPU/getting-started/the-command-queue.html). {{% /notice %}} ## Getting started to render a 3D object -WebGPU is a very simple system. All it does is run 3 types of functions on the GPU: Vertex Shaders, Fragment Shaders, and Compute Shaders. +WebGPU is a very simple system. It runs three types of functions on the GPU: -* A Vertex Shader computes vertices. The shader returns vertex positions. -* A Fragment Shader computes colors, they indirectly write data to textures. That data does not have to be colors. -* A Compute Shader is more generic. It’s effectively a function you call and say “execute this function N times” +* A Vertex Shader that computes vertices. The shader returns vertex positions. +* A Fragment Shader that computes colors. The shader indirectly writes data to textures. That data does not have to be limited to colors. +* A Compute Shader that is more generic. It is effectively a function that you can call and request to execute as many times as you require. -Here is a simplified diagram of WebGPU setup to draw triangles by using a vertex shader and a fragment shader: +Here is a simplified diagram of a WebGPU setup to draw triangles by using a vertex shader and a fragment shader: !["Triangle using WebGPU" #center](images/webgpu-draw-high-level.svg "Triangle using WebGPU") The main things to notice in the above image are: -* There is a **Pipeline**. It contains the vertex shader and fragment shader the GPU will run. You could also have a pipeline with a compute shader. -* The shaders reference resources (buffers, textures, samplers) indirectly through **Bind Groups**. +* There is a **Pipeline** that contains the vertex shader and fragment shader the GPU runs. Alternatively, you might also have a pipeline with a compute shader. +* The shaders reference resources such as buffers, textures, and samplers, indirectly through **Bind Groups**. * The pipeline defines attributes that reference buffers indirectly through the internal state. * Attributes pull data out of buffers and feed the data into the vertex shader. * The vertex shader may feed data into the fragment shader. From b783561e0ad2d3a8b8292ed8e1840e9c71a5261c Mon Sep 17 00:00:00 2001 From: Annie Tallund Date: Mon, 2 Dec 2024 12:22:04 +0100 Subject: [PATCH 67/87] Update web-toolkit.md - Additional use-cases verified - Misc minor updates - Remove _review.md --- .../microcontrollers/yolo-on-himax/_index.md | 6 +-- .../microcontrollers/yolo-on-himax/_review.md | 38 ------------------- .../yolo-on-himax/build-firmware.md | 18 ++++----- .../microcontrollers/yolo-on-himax/dev-env.md | 32 +++++++--------- .../yolo-on-himax/flash-and-run.md | 25 ++++++------ .../yolo-on-himax/web-toolkit.md | 30 ++++++--------- 6 files changed, 51 insertions(+), 98 deletions(-) delete mode 100644 content/learning-paths/microcontrollers/yolo-on-himax/_review.md diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/_index.md b/content/learning-paths/microcontrollers/yolo-on-himax/_index.md index 7666663b81..1dcf71ef7a 100644 --- a/content/learning-paths/microcontrollers/yolo-on-himax/_index.md +++ b/content/learning-paths/microcontrollers/yolo-on-himax/_index.md @@ -31,9 +31,9 @@ operatingsystems: - Linux - macOS -#draft: true -#cascade: -# draft: true +draft: true +cascade: + draft: true ### FIXED, DO NOT MODIFY diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/_review.md b/content/learning-paths/microcontrollers/yolo-on-himax/_review.md deleted file mode 100644 index 98489df86d..0000000000 --- a/content/learning-paths/microcontrollers/yolo-on-himax/_review.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -review: - - questions: - question: > - The Grove Vision AI V2 Module can run YOLOv8 model in real time - answers: - - True - - False - correct_answer: 1 - explanation: > - The Grove Vision AI V2 Module can run object detection in real time thanks to it's ML accelerated capabilites. - question: > - Which of the options is the YOLO model unable to run? - answers: - - Pose detection - - Object detection - - Speech-to-text transcription - correct_answer: 3 - explanation: > - The YOLO model is a computer vision model, meaning it runs based on images as input. - question: > - What Arm IP on the Seeed Grove Vision AI Module V2 enables you to run ML workloads efficiently? - answers: - - Ethos-U55 - - Cortex-A72 - - Cortex-X4 - correct_answer: 1 - explanation: > - When paired with the low-power Cortex-M55 processor, the Ethos-U55 provides an uplift in ML performance - - -# ================================================================================ -# FIXED, DO NOT MODIFY -# ================================================================================ -title: "Review" # Always the same title -weight: 20 # Set to always be larger than the content in this path -layout: "learningpathall" # All files under learning paths have this same wrapper ---- diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/build-firmware.md b/content/learning-paths/microcontrollers/yolo-on-himax/build-firmware.md index d2f5604b99..ef89acd6d3 100644 --- a/content/learning-paths/microcontrollers/yolo-on-himax/build-firmware.md +++ b/content/learning-paths/microcontrollers/yolo-on-himax/build-firmware.md @@ -34,24 +34,24 @@ make ## Generate the firmware image -Copy the `.elf` file to the `input_case1_secboot` directory. +The examples repository contains scripts to generate the image file. Copy the `.elf` file to the `input_case1_secboot` directory. ```bash cd ../we2_image_gen_local/ cp ../EPII_CM55M_APP_S/obj_epii_evb_icv30_bdv10/gnu_epii_evb_WLCSP65/EPII_CM55M_gnu_epii_evb_WLCSP65_s.elf input_case1_secboot/ ``` -The examples repository contains scripts to generate the image. Run the script corresponding to the OS of your host machine. -### Linux +Run the script corresponding to the OS of your host machine. This will create a file named `output.img` in the `output_case1_sec_wlcsp` directory. -```bash -./we2_local_image_gen project_case1_blp_wlcsp.json -``` -### macOS -```console +{{< tabpane code=true >}} + {{< tab header="Linux" language="shell">}} +./we2_local_image_gen project_case1_blp_wlcsp.json + {{< /tab >}} + {{< tab header="MacOS" language="shell">}} ./we2_local_image_gen_macOS_arm64 project_case1_blp_wlcsp.json -``` + {{< /tab >}} +{{< /tabpane >}} Your terminal output should end with the following. diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/dev-env.md b/content/learning-paths/microcontrollers/yolo-on-himax/dev-env.md index cd5ceb2f83..450297b752 100644 --- a/content/learning-paths/microcontrollers/yolo-on-himax/dev-env.md +++ b/content/learning-paths/microcontrollers/yolo-on-himax/dev-env.md @@ -67,18 +67,15 @@ git version 2.39.3 Install the make build tool, which is used to build the firmware in the next section. -### Linux - -```bash +{{< tabpane code=true >}} + {{< tab header="Linux" language="shell">}} sudo apt update sudo apt install make -y -``` - -### macOS - -```console + {{< /tab >}} + {{< tab header="MacOS" language="shell">}} brew install make -``` + {{< /tab >}} +{{< /tabpane >}} Successful installation of make will show the following when the `make --version` command is run. @@ -96,26 +93,25 @@ To run this learning path on macOS, you need to verify that your installation is {{% /notice %}} ## Install Arm GNU toolchain -### Linux - -The toolchain is used to cross-compile from the host architecture (x86) to the embedded device architecture (AArch64). +The toolchain is used to compile code from the host to the embedded device architecture. -```bash +{{< tabpane code=true >}} + {{< tab header="Linux" language="shell">}} cd $HOME wget https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x86_64-arm-none-eabi.tar.xz tar -xvf arm-gnu-toolchain-13.2.rel1-x86_64-arm-none-eabi.tar.xz export PATH="$HOME/arm-gnu-toolchain-13.2.Rel1-x86_64-arm-none-eabi/bin/:$PATH" -``` -### macOS -```console + {{< /tab >}} + {{< tab header="MacOS" language="shell">}} cd $HOME wget https://developer.arm.com/-/media/Files/downloads/gnu/13.3.rel1/binrel/arm-gnu-toolchain-13.3.rel1-darwin-arm64-arm-none-eabi.tar.xz tar -xvf arm-gnu-toolchain-13.3.rel1-darwin-arm64-arm-none-eabi.tar.xz export PATH="$HOME/arm-gnu-toolchain-13.3.rel1-darwin-arm64-arm-none-eabi/bin/:$PATH" -``` + {{< /tab >}} +{{< /tabpane >}} {{% notice %}} -You can add the above command to the `.bashrc` file. This was, the Arm GNU toolchain is configured from new terminal sessions as well. +You can add the `export` command to the `.bashrc` file. This was, the Arm GNU toolchain is configured from new terminal sessions as well. {{% /notice %}} diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/flash-and-run.md b/content/learning-paths/microcontrollers/yolo-on-himax/flash-and-run.md index 71e16134fd..78d03dcf5b 100644 --- a/content/learning-paths/microcontrollers/yolo-on-himax/flash-and-run.md +++ b/content/learning-paths/microcontrollers/yolo-on-himax/flash-and-run.md @@ -19,7 +19,7 @@ pip install -r xmodem/requirements.txt ## Connect the module -Insert the Flexible printed circuit (FPC) into the Grove Vision AI V2 module. Lift the dark grey latch on the connector as per the image below. +To prepare for the next steps, it's time to get the board set up. Insert the Flexible printed circuit (FPC) into the Grove Vision AI V2 module. Lift the dark grey latch on the connector as per the image below. ![unlatched](./unlatched.jpg) @@ -27,7 +27,7 @@ Then, slide the FPC connector in with the metal pins facing down and close the d ![latched](./latched.jpg) -Then connect the Groove Vision AI V2 Module to your computer via the USB-C cable. +Now you can connect the Groove Vision AI V2 Module to your computer via the USB-C cable. {{% notice Note %}} The development board may have two USB-C connectors. If you are running into issues connecting the board in the next step, make sure you are using the right one. @@ -37,17 +37,16 @@ The development board may have two USB-C connectors. If you are running into iss You'll need to provide the communication port (COM) which the board is connected to in order to flash the image. There are commands to list all COMs available on your machine. Once your board is connected through USB, it'll show up in this list. The COM identifier will start with **tty**, which may help you determine which one it is. You can run the command before and after plugging in the board if you are unsure. -### Linux -```bash +{{< tabpane code=true >}} + {{< tab header="Linux" language="shell">}} sudo grep -i 'tty' /var/log/dmesg -``` - -### MacOS - -```console + {{< /tab >}} + {{< tab header="MacOS" language="shell">}} ls /dev/tty.* -``` + {{< /tab >}} +{{< /tabpane >}} + {{% notice Note %}} If the port seems unavailable, try changing the permissions temporarily using the `chmod` command. Be sure to reset them afterwards, as this may pose a computer security vulnerability. @@ -64,11 +63,13 @@ The full path to the port is needed in the next step, so be sure to note it down Run the python script below to flash the firmware. ```bash -python xmodem\xmodem_send.py --port= --baudrate=921600 --protocol=xmodem --file=we2_image_gen_local\output_case1_sec_wlcsp\output.img +python xmodem\xmodem_send.py --port= \ +--baudrate=921600 --protocol=xmodem \ +--file=we2_image_gen_local\output_case1_sec_wlcsp\output.img ``` {{% notice Note %}} -When you run other example models demonstrated in the later section [Object detection and additional models](/learning-paths/microcontrollers/yolo-on-himax/how-to-5/), you need to adapt this command with the right image file. +When you run other example models demonstrated in the later section [Run additional models in the web toolkit](/learning-paths/microcontrollers/yolo-on-himax/web-toolkit/), you need to adapt this command with `--model` argument. {{% /notice %}} After the firmware image burning is completed, the message `Do you want to end file transmission and reboot system? (y)` is displayed. Press the reset button indicated in the image below. diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/web-toolkit.md b/content/learning-paths/microcontrollers/yolo-on-himax/web-toolkit.md index 0790b4ff35..f3ec67106b 100644 --- a/content/learning-paths/microcontrollers/yolo-on-himax/web-toolkit.md +++ b/content/learning-paths/microcontrollers/yolo-on-himax/web-toolkit.md @@ -1,14 +1,12 @@ --- -title: (optional) Run additional models in the web toolkit +title: Run additional models in the web toolkit weight: 6 -#draft: true - ### FIXED, DO NOT MODIFY layout: learningpathall --- -In this section, you will view a live camera feed with the ML application running. +In this section, you will view a live camera feed with a computer vision application running. ## Modify the Makefile @@ -18,12 +16,11 @@ Change the directory to the where the Makefile is located. If you cloned the rep cd $HOME/Seeed_Grove_Vision_AI_Module_V2/EPII_CM55M_APP_S/ ``` -The table shows the different options available to use with the web toolkit. Modify the `APP_TYPE` field in the `makefile` to one of the values in the table. Then, to the xmodem argument, pass the `--model` argument. +The table shows the different options available to use with the web toolkit. Modify the `APP_TYPE` field in the `makefile` to one of the values in the table. Then pass the `--model` argument to the python `xmodem` command. -|APP_TYPE |Description | --model argument | +|APP_TYPE |Description | Model argument | |--- |--- |--- |tflm_yolov8_od |Object detection | model_zoo\tflm_yolov8_od\yolov8n_od_192_delete_transpose_0xB7B000.tflite 0xB7B000 0x00000 | -|tflm_yolov8_pose |Pose detection | model_zoo\tflm_yolov8_pose\yolov8n_pose_256_vela_3_9_0x3BB000.tflite 0x3BB000 0x00000 | |tflm_fd_fm |Face detection | model_zoo\tflm_fd_fm\0_fd_0x200000.tflite 0x200000 0x00000 model_zoo\tflm_fd_fm\1_fm_0x280000.tflite 0x280000 0x00000 model_zoo\tflm_fd_fm\2_il_0x32A000.tflite 0x32A000 0x00000 | {{% notice Note %}} @@ -47,17 +44,17 @@ Use the commands from [Flash firmware onto the microcontroller](/learning-paths/ cd ../we2_image_gen_local/ cp ../EPII_CM55M_APP_S/obj_epii_evb_icv30_bdv10/gnu_epii_evb_WLCSP65/EPII_CM55M_gnu_epii_evb_WLCSP65_s.elf input_case1_secboot/ ``` +Run the script corresponding to the OS of your host machine. -### Linux - -```bash +{{< tabpane code=true >}} + {{< tab header="Linux" language="shell">}} ./we2_local_image_gen project_case1_blp_wlcsp.json -``` - -### macOS -```console + {{< /tab >}} + {{< tab header="MacOS" language="shell">}} ./we2_local_image_gen_macOS_arm64 project_case1_blp_wlcsp.json -``` + {{< /tab >}} +{{< /tabpane >}} + Finally, use `xmodem` to flash the image. @@ -92,9 +89,6 @@ The images below are captured images from the models run in the toolkit. ### Objection detection ![object_detection](./object_detection.jpg) -### Pose estimation -![Pose estimation](./pose_estimation.jpg) - ### Face detection ![object_detection](./face_detection.jpg) From d32227973621232c681a2f1227aec1502c3627da Mon Sep 17 00:00:00 2001 From: Przemyslaw Wirkus Date: Mon, 2 Dec 2024 11:33:37 +0000 Subject: [PATCH 68/87] windowsperf: update WindowsPerf + WPA plugin docs --- .../windowsperf_wpa_plugin.md | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/content/learning-paths/laptops-and-desktops/windowsperf_wpa_plugin/windowsperf_wpa_plugin.md b/content/learning-paths/laptops-and-desktops/windowsperf_wpa_plugin/windowsperf_wpa_plugin.md index 2f1f1a04e7..d2bad14c28 100644 --- a/content/learning-paths/laptops-and-desktops/windowsperf_wpa_plugin/windowsperf_wpa_plugin.md +++ b/content/learning-paths/laptops-and-desktops/windowsperf_wpa_plugin/windowsperf_wpa_plugin.md @@ -26,7 +26,7 @@ You can save a `.json` output from WindowsPerf by using the `--output` command f To create a file named `example.json`, run the following command: ```console - wperf stat -e ld_spec --output example.json + wperf stat -e ld_spec --timeout 5 --json --output example.json ``` 2. Open Windows Performance Analyzer, and see the following window: @@ -54,9 +54,11 @@ You can use WPA to visualize PMU events in the recorded data. To try the timeline feature, run the command: ```command -wperf stat -m dcache -c 0,1,2,3,4,5,6,7 -t -i 0 -n 50 --json +wperf stat -m dcache -c 0,1,2,3,4,5,6,7 -t -i 0 -n 10 --timeout 2 --json --output example2.json ``` +Note: above command will run for ~20 seconds. + Open the generated output (`.json` file) in WPA to see the graph: ![timeline-by-core #center](figures/timeline-by-core.png) @@ -72,9 +74,11 @@ To see all the generated graphs you can expand the `Counting timeline` section i Run another `wperf` command with different options: ```console -wperf stat -t -i 0 -m imix,l1d_cache_miss_ratio,l1d_cache_mpki,l1d_tlb_miss_ratio,l1d_tlb_mpki -e inst_spec,vfp_spec,ld_spec,st_spec -c 1 --json +wperf stat -t -i 0 -n 10 -m imix,l1d_cache_miss_ratio,l1d_cache_mpki,l1d_tlb_miss_ratio,l1d_tlb_mpki -e inst_spec,vfp_spec,ld_spec,st_spec -c 1 --timeout 2 --json --output --example3.json ``` +Note: above command will run for ~20 seconds. + The graph after opening the `.json` file is shown below: ![timeline-events-by-key #center](figures/timeline-events-by-key.png) @@ -88,9 +92,11 @@ The WPA Plugin also provides visualization of [Arm telemetry metrics](https://de To visualize telemetry, run the following command: ```console -wperf stat -t -i 0 -m imix,l1d_cache_miss_ratio,l1d_cache_mpki,l1d_tlb_miss_ratio,l1d_tlb_mpki -e inst_spec,vfp_spec,ld_spec,st_spec -c 1 --json +wperf stat -t -i 0 -n 10 -m imix,l1d_cache_miss_ratio,l1d_cache_mpki,l1d_tlb_miss_ratio,l1d_tlb_mpki -e inst_spec,vfp_spec,ld_spec,st_spec -c 1 --timeout 2 --json --output example4.json ``` +Note: above command will run for ~20 seconds. + You can also see the telemetry timeline graphs under the graph explorer level in WPA. These graphs are generated dynamically so only the relevant metrics for the given `.json` output file are visible. @@ -101,4 +107,4 @@ Once expanded, a more in-depth view is visible under the Analysis tab of WPA. ![telemetry-table #center](figures/telemetry-table.png) -You now have a basic understanding of how to use `wperf` generated data in the Windows Performance Analyzer. \ No newline at end of file +You now have a basic understanding of how to use `wperf` generated data in the Windows Performance Analyzer. From c2cbe580177728c6c4e33c6765986d2bf615a73f Mon Sep 17 00:00:00 2001 From: Maddy Underwood <167196745+madeline-underwood@users.noreply.github.com> Date: Mon, 2 Dec 2024 12:29:32 +0000 Subject: [PATCH 69/87] Editorial. --- .../1-webgpu-fundamentals.md | 10 +++++-- .../5-render-a-simple-3D-object-part-1.md | 8 +++--- .../6-render-a-simple-3D-object-part-2.md | 26 +++++++++---------- .../android_webgpu_dawn/_index.md | 2 +- 4 files changed, 26 insertions(+), 20 deletions(-) diff --git a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/1-webgpu-fundamentals.md b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/1-webgpu-fundamentals.md index d337d0296d..735e056a7b 100644 --- a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/1-webgpu-fundamentals.md +++ b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/1-webgpu-fundamentals.md @@ -10,9 +10,15 @@ layout: learningpathall WebGPU is the successor to WebGL, a well-adopted modern API standard for interfacing with GPUs. -WebGPU offers improved compatibility with modern GPUs, support for general-purpose GPU computations, faster operations, and access to more advanced GPU features. It is designed to provide a unified access to GPUs, that is both GPU vendor-agnostic and OS-agnostic. +WebGPU offers the following benefits: -WebGPU is a Render Hardware Interface built on top of various backend APIs such as Vulkan, DirectX, and Metal - though this does depend on the operating system. +* Improved compatibility with modern GPUs. +* Support for general-purpose GPU computations. +* Fast operations. +* Access to advanced GPU features. +* Unified access to GPUs, which is both GPU vendor-agnostic and OS-agnostic. + +WebGPU is a render hardware interface built on top of various backend APIs such as Vulkan, DirectX, and Metal, though this is OS-dependent. WebGPU is available through web browsers using the webgpu.h header file. diff --git a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/5-render-a-simple-3D-object-part-1.md b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/5-render-a-simple-3D-object-part-1.md index 322abd6106..24416a80ff 100644 --- a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/5-render-a-simple-3D-object-part-1.md +++ b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/5-render-a-simple-3D-object-part-1.md @@ -28,7 +28,7 @@ If you would like to learn more, refer to the [Command Queue](https://eliemichel ## Getting started to render a 3D object -WebGPU is a very simple system. It runs three types of functions on the GPU: +WebGPU is a simple system. It runs three types of functions on the GPU: * A Vertex Shader that computes vertices. The shader returns vertex positions. * A Fragment Shader that computes colors. The shader indirectly writes data to textures. That data does not have to be limited to colors. @@ -36,7 +36,7 @@ WebGPU is a very simple system. It runs three types of functions on the GPU: Here is a simplified diagram of a WebGPU setup to draw triangles by using a vertex shader and a fragment shader: -!["Triangle using WebGPU" #center](images/webgpu-draw-high-level.svg "Triangle using WebGPU") +!["Triangle using WebGPU" #center](images/webgpu-draw-high-level.svg "Figure 8: Triangle using WebGPU") The main things to notice in the above image are: @@ -61,9 +61,9 @@ In order to achieve high performance real-time 3D rendering, the GPU processes s To do so, WebGPU provides a Render Pipeline object. The figure below illustrates the sequence of data processing stages executed by the render pipeline. -!["Render Pipeline" #center](images/render-pipeline.svg "Render Pipeline") +!["Render Pipeline" #center](images/render-pipeline.svg "Figure 9: Render Pipeline") -The Render Pipeline has 2 main types of stages, **fixed-function** and **programmable**. +The Render Pipeline has two main types of stages, **fixed-function** and **programmable**. ### Fixed Functions stages diff --git a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/6-render-a-simple-3D-object-part-2.md b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/6-render-a-simple-3D-object-part-2.md index 6378bd1a67..04c8f30cf7 100644 --- a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/6-render-a-simple-3D-object-part-2.md +++ b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/6-render-a-simple-3D-object-part-2.md @@ -8,29 +8,29 @@ layout: learningpathall ## 3D meshes -Once a Render Pipeline is created, you can use WebGPU APIs to create and render a 3D mesh. This is very similar to other graphics APIs. +Once a Render Pipeline is created, you can use WebGPU APIs to create and render a 3D mesh. This is similar to other graphics APIs. The steps are listed below: -* Create the Vertex Buffer(s) -* Create the Index Buffer(s) -* Create the Uniform Buffer(s) -* Create a Depth Buffer (Z-Buffer algorithm) -* Create the Depth Texture and TextureView -* Create a Depth Stencil -* Create the Transformation and Projection matrices +* Create the Vertex Buffer(s). +* Create the Index Buffer(s). +* Create the Uniform Buffer(s). +* Create a Depth Buffer (Z-Buffer algorithm). +* Create the Depth Texture and TextureView. +* Create a Depth Stencil. +* Create the Transformation and Projection matrices. -All these steps are common in graphics programming and WebGPU offers capability to perform all the operations. +All these steps are common in graphics programming, and WebGPU allows you to perform these same operations. -It is recommended to go through individual chapters in the [3D rendering](https://eliemichel.github.io/LearnWebGPU/basic-3d-rendering/index.html) section to learn more. +It is a good idea to read the individual chapters in the [3D rendering](https://eliemichel.github.io/LearnWebGPU/basic-3d-rendering/index.html) section to learn more. ### Loading 3D objects -In this project you can use OBJ files to define 3D meshes. +In this Learning Path you can use OBJ files to define 3D meshes. -Instead of manually parsing OBJ files, use the [TinyOBJLoader](https://github.com/tinyobjloader/tinyobjloader) library. +Instead of manually parsing OBJ files, you can use the [TinyOBJLoader](https://github.com/tinyobjloader/tinyobjloader) library. -The file format is not complex, but parsing files is not the goal of this Learning Path. +The file format is not complex, but parsing files is out of the scope of this Learning Path. You can use open-source software such as Blender to create your own 3D objects. diff --git a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/_index.md b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/_index.md index d6c17d25a6..3a05c5e9b9 100644 --- a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/_index.md +++ b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/_index.md @@ -3,7 +3,7 @@ title: Build and profile a simple WebGPU Android Application cascade: minutes_to_complete: 90 -who_is_this_for: This is an introductory topic for developers who are building GPU-based Android applications and are interested in trying WebGPU. +who_is_this_for: This is an introductory topic for developers who are building GPU-based Android applications and are interested in experimenting with WebGPU. learning_objectives: - Describe the benefits of WebGPU. From fde881e3ea869b5adb118acf142a339ccc7c096b Mon Sep 17 00:00:00 2001 From: Jason Andrews Date: Mon, 2 Dec 2024 12:17:12 -0600 Subject: [PATCH 70/87] Link fixes and updates --- .../laptops-and-desktops/intro/find-hardware.md | 4 +++- .../servers-and-cloud-computing/intro/find-hardware.md | 1 - .../lambda_functions/_next-steps.md | 4 ++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/content/learning-paths/laptops-and-desktops/intro/find-hardware.md b/content/learning-paths/laptops-and-desktops/intro/find-hardware.md index b1824897e3..88b3d7eb93 100644 --- a/content/learning-paths/laptops-and-desktops/intro/find-hardware.md +++ b/content/learning-paths/laptops-and-desktops/intro/find-hardware.md @@ -21,10 +21,12 @@ Windows on Arm laptops can also be used for software development. ### ChromeOS -Chromebooks with Arm processors can also be used for software development. The Lenovo [Duet 3](https://www.lenovo.com/us/en/p/laptops/lenovo/lenovo-edu-chromebooks/ideapad-duet-3-chromebook-(11-inch,-qlc)/len101i0034) and [Duet 5](https://www.lenovo.com/us/en/p/laptops/lenovo/lenovo-edu-chromebooks/ideapad-duet-5-chromebook/len101i0023) are popular detachable Chromebooks. +Chromebooks with Arm processors can also be used for software development. The Lenovo [Duet Gen 9](https://www.lenovo.com/us/en/p/laptops/lenovo/lenovo-edu-chromebooks/lenovo-chromebook-duet-gen-9-11-inch-mediatek/83hh0000us) is a popular detachable Chromebook. ### Linux +The System76 [Thelio Astra](https://www.system76.com/arm/) is a powerful Arm-based desktop computer designed by System76 and ships with Ubuntu installed. + Both Windows and ChromeOS have a Linux subsystem which can be used for software development tasks. Read [WSL for Windows on Arm](/learning-paths/laptops-and-desktops/wsl2) to learn more. Some single board computers have enough performance to implement Linux based desktop computers. The [Pinebook Pro](https://pine64.org/devices/pinebook_pro/) and the [Raspberry Pi 400](https://www.raspberrypi.com/products/raspberry-pi-400/) are examples. diff --git a/content/learning-paths/servers-and-cloud-computing/intro/find-hardware.md b/content/learning-paths/servers-and-cloud-computing/intro/find-hardware.md index 2c7da50571..1a2e5e80ff 100644 --- a/content/learning-paths/servers-and-cloud-computing/intro/find-hardware.md +++ b/content/learning-paths/servers-and-cloud-computing/intro/find-hardware.md @@ -24,7 +24,6 @@ Cloud providers offer Arm instances based on Neoverse processors. For example: Free tier offers are currently available. - [Amazon EC2 t4g.small instances powered by AWS Graviton2 processors are free until Dec 31st 2024](https://aws.amazon.com/ec2/instance-types/t4/) - [Oracle free tier includes up to 4 instances of ARM Ampere A1 Compute which are always free](https://www.oracle.com/cloud/free/) -- [Until March 31, 2024 Tau T2A VMs in Google Cloud are available for a free trial](https://cloud.google.com/compute/docs/instances/create-arm-vm-instance#t2afreetrial) [Get started with Arm-based cloud service platforms](/learning-paths/servers-and-cloud-computing/csp/) explains how to create an account and start an Arm virtual machine using the cloud service providers listed above. diff --git a/content/learning-paths/servers-and-cloud-computing/lambda_functions/_next-steps.md b/content/learning-paths/servers-and-cloud-computing/lambda_functions/_next-steps.md index 7460a65db6..00349aa36e 100644 --- a/content/learning-paths/servers-and-cloud-computing/lambda_functions/_next-steps.md +++ b/content/learning-paths/servers-and-cloud-computing/lambda_functions/_next-steps.md @@ -26,8 +26,8 @@ further_reading: link: https://aws.amazon.com/lambda/getting-started/ type: documentation - resource: - title: A Performance Perspective for Graviton Based Lambda Functions - link: https://blog.thundra.io/a-performance-perspective-for-graviton-based-lambda-functions + title: AWS Lambda performance with Java 21 + link: https://community.aws/content/2juXXgrDDaUdmi902LHwilBhvNU/aws-lambda-performance-with-java-21-x86-vs-arm64-part-1-initial-measurements-and-comparisons?lang=en type: blog From 9d1796a2da60660b4c50819ce8ab6e87117f4244 Mon Sep 17 00:00:00 2001 From: Odin Shen Coder Date: Mon, 2 Dec 2024 20:41:40 +0000 Subject: [PATCH 71/87] Update WPA 1.0.3 installation & add wperf note --- content/install-guides/windows-perf-wpa-plugin.md | 8 ++++---- .../windowsperf_wpa_plugin/windowsperf_wpa_plugin.md | 5 +++-- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/content/install-guides/windows-perf-wpa-plugin.md b/content/install-guides/windows-perf-wpa-plugin.md index 59196a27a0..9afda85d45 100644 --- a/content/install-guides/windows-perf-wpa-plugin.md +++ b/content/install-guides/windows-perf-wpa-plugin.md @@ -90,13 +90,13 @@ Alternatively, you can download the `.zip` file from a command prompt: ```console mkdir wpa-plugin cd wpa-plugin -curl -L -O https://github.com/arm-developer-tools/windowsperf-wpa-plugin/releases/download/1.0.2/wpa-plugin-1.0.2.zip +curl -L -O https://github.com/arm-developer-tools/windowsperf-wpa-plugin/releases/download/1.0.3/wpa-plugin-1.0.3.zip ``` Extract the `.dll` file from the downloaded `.zip` file. ```console -tar -xmf wpa-plugin-1.0.2.zip +tar -xmf wpa-plugin-1.0.3.zip ``` The file `WPAPlugin.dll` is now in your `wpa-plugin` directory. @@ -110,7 +110,7 @@ Use the `-addsearchdir` flag to tell `wpa` where to find plugins. For example, if you downloaded the `.dll` in your `Downloads` directory, you can run `wpa` as shown below: ```bash -wpa -addsearchdir %USERPROFILE%\Downloads\wpa-plugin-1.0.2 +wpa -addsearchdir %USERPROFILE%\Downloads\wpa-plugin-1.0.3 ``` ##### Option 2: Set an environment variable. @@ -135,7 +135,7 @@ To open a JSON file directly from the command line, you can use the `-i` flag to For example, to open `timeline_long.json` in your `downloads` directory, run the command: ```console -wpa -addsearchdir %USERPROFILE%\Downloads\wpa-plugin-1.0.2 -i %USERPROFILE%\Downloads\timeline_long.json +wpa -addsearchdir %USERPROFILE%\Downloads\wpa-plugin-1.0.3 -i %USERPROFILE%\Downloads\timeline_long.json ``` ## How do I uninstall the WPA plugin? diff --git a/content/learning-paths/laptops-and-desktops/windowsperf_wpa_plugin/windowsperf_wpa_plugin.md b/content/learning-paths/laptops-and-desktops/windowsperf_wpa_plugin/windowsperf_wpa_plugin.md index d2bad14c28..abd47aaa51 100644 --- a/content/learning-paths/laptops-and-desktops/windowsperf_wpa_plugin/windowsperf_wpa_plugin.md +++ b/content/learning-paths/laptops-and-desktops/windowsperf_wpa_plugin/windowsperf_wpa_plugin.md @@ -28,6 +28,7 @@ You can save a `.json` output from WindowsPerf by using the `--output` command f ```console wperf stat -e ld_spec --timeout 5 --json --output example.json ``` + Note: This command won't finish automatically. You can use Ctrl+C to terminate it after it has run for 5-10 seconds. 2. Open Windows Performance Analyzer, and see the following window: @@ -71,10 +72,10 @@ The WPA plugin also generates a graph per event note in order to provide a more To see all the generated graphs you can expand the `Counting timeline` section in the graph explorer section of WPA. -Run another `wperf` command with different options: +Before you run another `wperf` command with different options, you use use `wperf -list` to find out supported metrics in your machine. ```console -wperf stat -t -i 0 -n 10 -m imix,l1d_cache_miss_ratio,l1d_cache_mpki,l1d_tlb_miss_ratio,l1d_tlb_mpki -e inst_spec,vfp_spec,ld_spec,st_spec -c 1 --timeout 2 --json --output --example3.json +wperf stat -t -i 0 -n 10 -m imix,l1d_cache_miss_ratio,l1d_cache_mpki,l1d_tlb_miss_ratio,l1d_tlb_mpki -e inst_spec,vfp_spec,ld_spec,st_spec -c 1 --timeout 2 --json --output example3.json ``` Note: above command will run for ~20 seconds. From d3d5d65bc487a3585f5be682548e1969cc6d0f4f Mon Sep 17 00:00:00 2001 From: Jason Andrews Date: Mon, 2 Dec 2024 15:52:02 -0600 Subject: [PATCH 72/87] Review Yolo Learning Path --- .../microcontrollers/yolo-on-himax/_index.md | 16 ++-- .../yolo-on-himax/build-firmware.md | 34 +++++---- .../microcontrollers/yolo-on-himax/dev-env.md | 74 ++++++++++++------- .../yolo-on-himax/flash-and-run.md | 18 +++-- .../yolo-on-himax/web-toolkit.md | 28 +++++-- 5 files changed, 105 insertions(+), 65 deletions(-) diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/_index.md b/content/learning-paths/microcontrollers/yolo-on-himax/_index.md index 1dcf71ef7a..f1c4abe72e 100644 --- a/content/learning-paths/microcontrollers/yolo-on-himax/_index.md +++ b/content/learning-paths/microcontrollers/yolo-on-himax/_index.md @@ -3,18 +3,18 @@ title: Run a Computer Vision Model on a Himax Microcontroller minutes_to_complete: 90 -who_is_this_for: This is an introduction topic for beginners on how to run a computer vision application on an embedded device from Himax. This example uses an off-the-shelf Himax WiseEye2 module which is based on the Arm Cortex-M55 and Ethos-U55. +who_is_this_for: This is an introduction topic explaining how to run a computer vision application on an embedded device from Himax. The example uses an off-the-shelf Himax WiseEye2 module which is based on Arm Cortex-M55 and Ethos-U55. learning_objectives: - - Run a you-only-look-once (YOLO) object detection model on the edge device - - Build the Himax Software Development Kit (SDK) and generate the firmware image file - - Update the firmware on the edge device (Himax WiseEye2) + - Run a you-only-look-once (YOLO) object detection model on the Himax device. + - Build the Himax Software Development Kit (SDK) and generate the firmware image file. + - Update the firmware on the Himax WiseEye2. prerequisites: - - A [Seeed Grove Vision AI Module V2](https://www.seeedstudio.com/Grove-Vision-AI-Module-V2-p-5851.html) development board - - A [OV5647-62 Camera Module](https://www.seeedstudio.com/OV5647-69-1-FOV-Camera-module-for-Raspberry-Pi-3B-4B-p-5484.html) and included FPC cable - - A USB-C cable - - An x86 based Linux machine or a machine running Apple Silicon + - A [Seeed Grove Vision AI Module V2](https://www.seeedstudio.com/Grove-Vision-AI-Module-V2-p-5851.html) development board. + - An [OV5647-62 Camera Module](https://www.seeedstudio.com/OV5647-69-1-FOV-Camera-module-for-Raspberry-Pi-3B-4B-p-5484.html) and included FPC cable. + - A USB-C cable. + - An x86 Linux machine or a Mac running macOS with Apple Silicon. author_primary: Chaodong Gong, Alex Su, Kieran Hejmadi diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/build-firmware.md b/content/learning-paths/microcontrollers/yolo-on-himax/build-firmware.md index ef89acd6d3..b1db98e5f5 100644 --- a/content/learning-paths/microcontrollers/yolo-on-himax/build-firmware.md +++ b/content/learning-paths/microcontrollers/yolo-on-himax/build-firmware.md @@ -6,11 +6,15 @@ weight: 3 layout: learningpathall --- -This section will walk you though the process of generating the firmware image file. +This section explains the process of generating a firmware image file. -## Clone the Himax project +## Clone the Himax GitHub project -Himax has set up a repository containing a few examples for the Seeed Grove Vision AI V2 board. It contains third-party software and scripts to build and flash the image with the object detection application. By recursively cloning the Himax examples repo, git will include the necessary sub-repositories that have been configured for the project. +Himax maintains a repository containing a few examples for the Seeed Grove Vision AI V2 board. + +It contains third-party software and scripts to build and flash the image with the object detection application. By recursively cloning the Himax examples repo, git will include the necessary sub-repositories that have been configured for the project. + +Clone the repository: ```bash git clone --recursive https://github.com/HimaxWiseEyePlus/Seeed_Grove_Vision_AI_Module_V2.git @@ -19,41 +23,41 @@ cd Seeed_Grove_Vision_AI_Module_V2 ## Compile the firmware -For the object detection to activate, you need to edit the project's `makefile`, located in the `EPII_CM55M_APP_S` directory. +Use Make to compile the source code for object detection. -```bash -cd EPII_CM55M_APP_S -``` - -Use the `make` build tool to compile the source code. This should take up to 10 minutes depending on the number of CPU cores available on your host machine. The result is an `.elf` file written to the directory below. +This takes up to 10 minutes depending on the number of CPU cores available on your host machine. ```bash -make clean +cd EPII_CM55M_APP_S make ``` +When the build is complete, you have an `.elf` file at `obj_epii_evb_icv30_bdv10/gnu_epii_evb_WLCSP65/EPII_CM55M_gnu_epii_evb_WLCSP65_s.elf` + ## Generate the firmware image -The examples repository contains scripts to generate the image file. Copy the `.elf` file to the `input_case1_secboot` directory. +The examples repository contains scripts to generate the image file. + +Copy the `.elf` file to the `input_case1_secboot` directory. ```bash cd ../we2_image_gen_local/ cp ../EPII_CM55M_APP_S/obj_epii_evb_icv30_bdv10/gnu_epii_evb_WLCSP65/EPII_CM55M_gnu_epii_evb_WLCSP65_s.elf input_case1_secboot/ ``` -Run the script corresponding to the OS of your host machine. This will create a file named `output.img` in the `output_case1_sec_wlcsp` directory. +Run the script your OS as shown below. This will create a file named `output.img` in the `output_case1_sec_wlcsp` directory. {{< tabpane code=true >}} {{< tab header="Linux" language="shell">}} ./we2_local_image_gen project_case1_blp_wlcsp.json {{< /tab >}} - {{< tab header="MacOS" language="shell">}} + {{< tab header="macOS" language="shell">}} ./we2_local_image_gen_macOS_arm64 project_case1_blp_wlcsp.json {{< /tab >}} {{< /tabpane >}} -Your terminal output should end with the following. +The script output ends with the following output: ```output Output image: output_case1_sec_wlcsp/output.img @@ -62,4 +66,4 @@ Output image: output_case1_sec_wlcsp/output.img IMAGE GEN DONE ``` -With this step, you are ready to flash the image onto the Himax development board. \ No newline at end of file +You are ready to flash the image onto the Himax development board. \ No newline at end of file diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/dev-env.md b/content/learning-paths/microcontrollers/yolo-on-himax/dev-env.md index 450297b752..73cb55e14f 100644 --- a/content/learning-paths/microcontrollers/yolo-on-himax/dev-env.md +++ b/content/learning-paths/microcontrollers/yolo-on-himax/dev-env.md @@ -1,48 +1,59 @@ --- -title: Set up environment +title: Set up the environment weight: 2 ### FIXED, DO NOT MODIFY layout: learningpathall --- -# Set up the development environment - -This learning path has been validated on Ubuntu 22.04 LTS and macOS. +This Learning Path has been validated on Ubuntu 22.04 LTS and macOS. {{% notice %}} -If you are running Windows on your host machine, you can use Ubuntu through Windows subsystem for Linux 2 (WSL2). Check out [this learning path](https://learn.arm.com/learning-paths/laptops-and-desktops/wsl2/setup/) to get started. +If you are running Windows, you can use Ubuntu through Windows subsystem for Linux 2 (WSL2). Check out [Get started with Windows Subsystem for Linux (WSL) on Arm](https://learn.arm.com/learning-paths/laptops-and-desktops/wsl2/setup/) to learn more. {{% /notice %}} -## Install Python, pip and git +## Install software tools + +Follow the instructions below to install the required development tools. + +### Install Python and Pip + +You will use Python to build the firmware image and pip to install additional dependencies. + +Verify Python is installed by running: -You will use Python to build the firmware image and pip to install some dependencies. Verify Python is installed by running ```bash python3 --version ``` -You should see an output like the following. +You should see an output like the following: + ```output Python 3.12.7 ``` -Install `pip` and `venv` with the following commands. +On Ubuntu, you may need to install `pip` and `venv` with the following commands: ```bash sudo apt update sudo apt install python3-pip python3-venv -y ``` -check the output to verify `pip` is installed correctly. -``` +Verify Pip is installed correctly: + +```bash pip3 --version ``` +The output is similar to: + ```output -pip 24.2 from //pip (python 3.12) +pip 24.0 from /usr/lib/python3/dist-packages/pip (python 3.12) ``` -It is considered good practice to manage `pip` packages through a virtual environment. Create one with the steps below. +It is good practice to manage Python packages through a virtual environment. + +Create one with the steps below. ```bash python3 -m venv $HOME/yolo-venv @@ -51,36 +62,43 @@ source $HOME/yolo-venv/bin/activate Your terminal displays `(yolo-venv)` in the prompt indicating the virtual environment is active. -You will need to have the git version control system installed. Run the command below to verify that git is installed on your system. +You also need the Git distributed version control system installed. + +Run the command below to verify that Git is installed on your system: ```bash git --version ``` -You should see output similar to that below. +If it is installed, you will see output similar to: ```output git version 2.39.3 ``` -## Install make +### Install Make -Install the make build tool, which is used to build the firmware in the next section. +Install the Make build tool, which is used to build the firmware in the next section. {{< tabpane code=true >}} {{< tab header="Linux" language="shell">}} sudo apt update sudo apt install make -y {{< /tab >}} - {{< tab header="MacOS" language="shell">}} + {{< tab header="macOS" language="shell">}} brew install make {{< /tab >}} {{< /tabpane >}} -Successful installation of make will show the following when the `make --version` command is run. +After Make is installed, run it to print the version. + +```bash +make --version +``` + +The output is similar to: ```output -$ make --version GNU Make 4.3 Built for x86_64-pc-linux-gnu Copyright (C) 1988-2020 Free Software Foundation, Inc. @@ -88,21 +106,23 @@ License GPLv3+: GNU GPL version 3 or later This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. ``` + {{% notice Note %}} -To run this learning path on macOS, you need to verify that your installation is for the GNU Make - not the BSD version. +If you are using macOS, you need to verify that your installation is for GNU Make - not the BSD version. You should see GNU in the version output. {{% /notice %}} -## Install Arm GNU toolchain -The toolchain is used to compile code from the host to the embedded device architecture. +### Install the Arm GNU toolchain + +The toolchain is used to compile code on the host for the embedded device architecture. {{< tabpane code=true >}} - {{< tab header="Linux" language="shell">}} + {{< tab header="x86 Linux" language="shell">}} cd $HOME wget https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x86_64-arm-none-eabi.tar.xz tar -xvf arm-gnu-toolchain-13.2.rel1-x86_64-arm-none-eabi.tar.xz export PATH="$HOME/arm-gnu-toolchain-13.2.Rel1-x86_64-arm-none-eabi/bin/:$PATH" {{< /tab >}} - {{< tab header="MacOS" language="shell">}} + {{< tab header="macOS" language="shell">}} cd $HOME wget https://developer.arm.com/-/media/Files/downloads/gnu/13.3.rel1/binrel/arm-gnu-toolchain-13.3.rel1-darwin-arm64-arm-none-eabi.tar.xz tar -xvf arm-gnu-toolchain-13.3.rel1-darwin-arm64-arm-none-eabi.tar.xz @@ -111,8 +131,8 @@ export PATH="$HOME/arm-gnu-toolchain-13.3.rel1-darwin-arm64-arm-none-eabi/bin/:$ {{< /tabpane >}} {{% notice %}} -You can add the `export` command to the `.bashrc` file. This was, the Arm GNU toolchain is configured from new terminal sessions as well. +You can add the `export` command to your `.bashrc` or `.zshrc` file to set the search path for each new shell. {{% /notice %}} -Now that your development environment is set up, move on to the next section where you will generate the firmware image. \ No newline at end of file +Now that your development environment is ready, move to the next section where you will generate the firmware image. \ No newline at end of file diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/flash-and-run.md b/content/learning-paths/microcontrollers/yolo-on-himax/flash-and-run.md index 78d03dcf5b..43892699b7 100644 --- a/content/learning-paths/microcontrollers/yolo-on-himax/flash-and-run.md +++ b/content/learning-paths/microcontrollers/yolo-on-himax/flash-and-run.md @@ -6,11 +6,13 @@ weight: 4 layout: learningpathall --- -Now that you have generated an image file on the local host machine, you are ready to flash the microcontroller with this firmware. +Now that you have generated an image file on the local host machine, you are ready to flash the microcontroller with the firmware. ## Install xmodem -`Xmodem` is a basic file transfer protocol which is easily installed using the Himax examples repository. Run the following command to install the dependency. If you cloned the repository to a different location, replace $HOME with the path. +`Xmodem` is a basic file transfer protocol which is easily installed using the Himax examples repository. + +Run the following command to install the dependency: ```bash cd $HOME/Seeed_Grove_Vision_AI_Module_V2 @@ -19,11 +21,13 @@ pip install -r xmodem/requirements.txt ## Connect the module -To prepare for the next steps, it's time to get the board set up. Insert the Flexible printed circuit (FPC) into the Grove Vision AI V2 module. Lift the dark grey latch on the connector as per the image below. +It's time to get the board set up. + +Insert the Flexible printed circuit (FPC) into the Grove Vision AI V2 module. Lift the dark grey latch on the connector as per the image below. ![unlatched](./unlatched.jpg) -Then, slide the FPC connector in with the metal pins facing down and close the dark grey latch to fasten the connector. +Slide the FPC connector in with the metal pins facing down and close the dark grey latch to fasten the connector. ![latched](./latched.jpg) @@ -56,11 +60,11 @@ chmod 0777 ``` {{% /notice %}} -The full path to the port is needed in the next step, so be sure to note it down. +The full path to the port is needed in the next step, so be sure to save it. ## Flash the firmware onto the module -Run the python script below to flash the firmware. +Run the python script below to flash the firmware: ```bash python xmodem\xmodem_send.py --port= \ @@ -72,7 +76,7 @@ python xmodem\xmodem_send.py --port= \ When you run other example models demonstrated in the later section [Run additional models in the web toolkit](/learning-paths/microcontrollers/yolo-on-himax/web-toolkit/), you need to adapt this command with `--model` argument. {{% /notice %}} -After the firmware image burning is completed, the message `Do you want to end file transmission and reboot system? (y)` is displayed. Press the reset button indicated in the image below. +After the firmware image flashing is completed, the message `Do you want to end file transmission and reboot system? (y)` is displayed. Press the reset button shown in the image below. ![reset button](./reset_button.jpg) diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/web-toolkit.md b/content/learning-paths/microcontrollers/yolo-on-himax/web-toolkit.md index f3ec67106b..e03500d02a 100644 --- a/content/learning-paths/microcontrollers/yolo-on-himax/web-toolkit.md +++ b/content/learning-paths/microcontrollers/yolo-on-himax/web-toolkit.md @@ -8,15 +8,19 @@ layout: learningpathall In this section, you will view a live camera feed with a computer vision application running. -## Modify the Makefile +## Modify the makefile -Change the directory to the where the Makefile is located. If you cloned the repository to a different location, replace $HOME with the path. +Change to the directory where the `makefile` is located. ```bash cd $HOME/Seeed_Grove_Vision_AI_Module_V2/EPII_CM55M_APP_S/ ``` -The table shows the different options available to use with the web toolkit. Modify the `APP_TYPE` field in the `makefile` to one of the values in the table. Then pass the `--model` argument to the python `xmodem` command. +The table shows the different options available to use with the web toolkit. + +Use a text editor to open `makefile` and modify the `APP_TYPE` field to one of the values in the table. + +You will use the model argument value with the `--model` option to the `xmodem` command. |APP_TYPE |Description | Model argument | |--- |--- |--- @@ -28,22 +32,22 @@ For `tflm_fd_fm`, you need to pass all three models as separate `--model` argume {{% /notice %}} - ## Regenerate the firmware image -Now you can run `make` to re-generate the `.elf` file. +Use Make to re-generate the `.elf` file. ```bash make clean make ``` -Use the commands from [Flash firmware onto the microcontroller](/learning-paths/microcontrollers/yolo-on-himax/flash-and-run/) section to run re-generate the firmware image. +Use the same commands from previous section to run re-generate the firmware image: ```bash cd ../we2_image_gen_local/ cp ../EPII_CM55M_APP_S/obj_epii_evb_icv30_bdv10/gnu_epii_evb_WLCSP65/EPII_CM55M_gnu_epii_evb_WLCSP65_s.elf input_case1_secboot/ ``` + Run the script corresponding to the OS of your host machine. {{< tabpane code=true >}} @@ -76,11 +80,19 @@ wget https://github.com/HimaxWiseEyePlus/Seeed_Grove_Vision_AI_Module_V2/release unzip Himax_AI_web_toolkit.zip ``` -Open the unzipped directory in your file browsing system and double click `index.html`. This will open the GUI within your default browser. +{{% notice Note %}} +If needed, install the unzip command: + +```bash +sudo apt install unzip -y +``` +{{% /notice %}} + +Open the file `index.html` in a browser. You can double click the file in a file browser or use the `File -> Open File...` command from the browser menu. ## Connect to the Grove Vision AI -Select `Grove Vision AI(V2)` in the top-right hand corner and press `Connect` button. Follow the instructions to set up the connection. Now you should see a video feed with a bounding box showing identified objects, poses or face detection. +Select `Grove Vision AI(V2)` in the top-right hand corner and press `Connect` button. Follow the instructions to set up the connection. You should see a video feed with a bounding box showing identified objects, poses or face detection. ![Himax web UI](./himax_web_ui.jpg) From 4a9af5eecacf0cbcc83aa4c89222b04bdfd1b366 Mon Sep 17 00:00:00 2001 From: Jason Andrews Date: Mon, 2 Dec 2024 19:30:58 -0600 Subject: [PATCH 73/87] Update Arm Compiler for Linux install guide --- content/install-guides/acfl.md | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/content/install-guides/acfl.md b/content/install-guides/acfl.md index 383cde57a9..cf070251b5 100644 --- a/content/install-guides/acfl.md +++ b/content/install-guides/acfl.md @@ -142,6 +142,33 @@ install takes place **after** ACfL, you will no longer be able to fully uninstall ACfL. {{% /notice %}} +## Download and install using System Packages - Ubuntu Linux + +Arm Compiler for Linux is available to install with the Ubuntu system package manager `apt` command. + +### Setup the ACfL package repository: + +Add the ACfL `apt` package repository to your Ubuntu 20.04 or 22.04 system: + +```bash { target="ubuntu:latest" } +sudo apt update +sudo apt install -y curl +source /etc/os-release +curl "https://developer.arm.com/packages/ACfL%3A${NAME}-${VERSION_ID/%.*/}/${VERSION_CODENAME}/Release.key" | sudo tee /etc/apt/trusted.gpg.d/developer-arm-com.asc +echo "deb https://developer.arm.com/packages/ACfL%3A${NAME}-${VERSION_ID/%.*/}/${VERSION_CODENAME}/ ./" | sudo tee /etc/apt/sources.list.d/developer-arm-com.list +sudo apt update +``` + +The ACfL Ubuntu package repository is now ready to use. + +### Install ACfL + +Download and install Arm Compiler for Linux with: + +```bash { target="ubuntu:latest" } +sudo apt install acfl +``` + ### Set up environment Arm Compiler for Linux uses environment modules to dynamically modify your user environment. Refer to the [Environment Modules documentation](https://lmod.readthedocs.io/en/latest/#id) for more information. From c329faadbfc9ef25a4c2394e17066e56f341c8cc Mon Sep 17 00:00:00 2001 From: Maddy Underwood <167196745+madeline-underwood@users.noreply.github.com> Date: Tue, 3 Dec 2024 10:05:51 +0000 Subject: [PATCH 74/87] Editorial. --- .../1-webgpu-fundamentals.md | 20 ++++++------- .../android_webgpu_dawn/2-env-setup.md | 11 ++++---- .../android_webgpu_dawn/3-integrate-dawn.md | 28 +++++++++---------- .../6-render-a-simple-3D-object-part-2.md | 2 +- .../7-Profiling-App-using-Streamline.md | 8 +++--- 5 files changed, 34 insertions(+), 35 deletions(-) diff --git a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/1-webgpu-fundamentals.md b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/1-webgpu-fundamentals.md index 735e056a7b..c5cd651c18 100644 --- a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/1-webgpu-fundamentals.md +++ b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/1-webgpu-fundamentals.md @@ -50,27 +50,27 @@ Any limitations of the API caused by privacy constraints can be disabled when us The initial focus for WebGPU was JavaScript. The initial `webgpu.h` header file is written in C. -This Learning Path uses C++ rather than JavaScript or C for the following reasons: +This Learning Path uses C++ rather than JavaScript or C, for the following reasons: * C++ remains the primary language used for high performance graphics applications, such as video games, render engines, and modeling tools. -* The level of abstraction and control of C++ is well suited for interacting with graphics APIs in general. +* The level of abstraction and control of C++ is well-suited for interacting with graphics APIs in general. * Graphics programming is a good way to improve skills in C++. ## Dawn: the Google WebGPU implementation -Since WebGPU is a standard and not an implementation itself, there are various possible implementations. +Since WebGPU is a standard and not an implementation itself, there are various possible options for implementation. -[Dawn](https://github.com/google/dawn) is an open-source, cross-platform implementation of the WebGPU standard. +[Dawn](https://github.com/google/dawn) is an open-source, cross-platform implementation of the WebGPU standard. It implements the WebGPU functionality specified in `webgpu.h`. -It implements the WebGPU functionality specified in `webgpu.h`. Dawn is designed to be integrated as part of a larger system such as Chromium or a native Android Application. +Dawn is designed to be integrated as part of a larger system such as Chromium or a native Android Application. Dawn provides several WebGPU building blocks: -* WebGPU C/C++ headers that applications and other building blocks use, including a header file and C++ wrapper. -* A "native" implementation of WebGPU using appropriate APIs: D3D12, Metal, Vulkan, and OpenGL. -* A client-server implementation of WebGPU for applications that are in a sandbox without access to native drivers. -* Tint; a compiler for the WebGPU Shader Language (WGSL), that converts shaders to and from WGSL. +* WebGPU C/C++ headers that applications and other building blocks use, including a header file and a C++ wrapper. +* A "native" implementation of WebGPU using appropriate APIs, such as D3D12, Metal, Vulkan, and OpenGL. +* A client-server implementation of WebGPU, for applications that are in a sandbox without access to native drivers. +* Tint, a compiler for the WebGPU Shader Language (WGSL), that converts shaders to and from WGSL. -Because it is written in C++, Dawn provides enhanced error message reporting and logging. The fact that it is open source, also means that it is easier to inspect stack traces when applications crash. +As it is written in C++, Dawn provides enhanced error message reporting and logging. The fact that it is open source, also means that it is easier to inspect stack traces when applications crash. Dawn is usually ahead of `wgpu-native`, another WebGPU implementation, in terms of new functionality developments and standards changes. diff --git a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/2-env-setup.md b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/2-env-setup.md index 3f566eeda7..43211b4c33 100644 --- a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/2-env-setup.md +++ b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/2-env-setup.md @@ -29,9 +29,10 @@ You can use any computer and operating system that supports this software. ![SDK Platforms #center](images/sdk-platforms.png "Figure 2: SDK Platforms") 6. In the **SDK Tools** tab, select the following: - * Select **Android SDK Build-Tools 35**. - * Select **NDK (Side by side)**. - * Select **CMake**. + + * **Android SDK Build-Tools 35**. + * **NDK (Side by side)**. + * **CMake**. ![SDK Tools #center](images/sdk-tools.png "Figure 3: SDK Tools") @@ -41,7 +42,7 @@ Click **OK** to install and update the selected components. Profiling is an important step in the Android application development cycle. -The default profiler in Android Studio is great to profile CPU-related metrics, but does not provide GPU details. +The default profiler in Android Studio is great to profile CPU-related metrics, but it does not provide GPU details. Arm Performance Studio is a comprehensive profiling tool to profile both CPUs and GPUs. @@ -55,7 +56,7 @@ One of the components of Performance Studio is Streamline. Streamline captures d Install Arm Performance Studio using the [Arm Performance Studio Install Guide](/install-guides/ams/). {{% notice Tip %}} -If you want to learn more about Arm Performance Studio and Streamline before continuing, refer to [Get started with Arm Performance Studio for mobile](https://learn.arm.com/learning-paths/smartphones-and-mobile/ams/ams/). +To learn more about Arm Performance Studio and Streamline, see [Get started with Arm Performance Studio for mobile](https://learn.arm.com/learning-paths/smartphones-and-mobile/ams/ams/). {{% /notice %}} Android Studio and Arm Performance Studio are now installed, and you are ready to create a WebGPU Android application. diff --git a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/3-integrate-dawn.md b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/3-integrate-dawn.md index 4228762ef0..b895a1975c 100755 --- a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/3-integrate-dawn.md +++ b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/3-integrate-dawn.md @@ -6,19 +6,19 @@ weight: 4 layout: learningpathall --- -## Set up Android Project +## Set up your Android Studio Project Start by creating a new Android Studio project. -Open Android Studio, click **New Project** and select **Game Activity (C++)** as shown below: +Open Android Studio, click **New Project**, and select **Game Activity (C++)** as shown below: ![New Game Activity #center](./images/android_studio_new_game_activity.png "Figure 4: New C++ Game Activity") -Set the **Name** field to **dawnwebgpu**. +* Set the **Name** field to **dawnwebgpu**. -Click **Next** to continue. +* Click **Next** to continue. -Finish the new project creation by accepting all the default selections until the project is created. +* Finish setting up the new project by accepting all the default selections until the project is created. The project is created in `~/AndroidStudioProjects`. @@ -61,27 +61,25 @@ Unzip the project files: unzip main.zip ``` -You now have a directory named **Android_DawnWebGPU-main** in your **webgpu-files** directory. +You now have a directory named **Android_DawnWebGPU-main** in the **webgpu-files** directory. -During the following sections you will copy some of the required files from the **Android_DawnWebGPU-main** directory into your Game Activity project to learn how to create WebGPU applications. +During the following sections, you will copy some of the required files from the **Android_DawnWebGPU-main** directory into your Game Activity project to learn how to create WebGPU applications. ## Upgrade the application to include Dawn Return to Android Studio and start work on the WebGPU application. -The Android Game Activity framework uses OpenGLES3 for graphics. - -You can remove this dependency and replace it with WebGPU. +The Android Game Activity framework uses OpenGLES3 for graphics. You can remove this dependency and replace it with WebGPU. Add WebGPU to the project using the following steps: -1. In Android Studio, navigate to the project view and find the **app** --> **cpp** folder. +* In Android Studio, navigate to the project view, and find the **app** --> **cpp** folder. -2. Open the terminal in Android Studio. You are now in the **dawnwebgpu** directory. +* Open the terminal in Android Studio. You are now in the **dawnwebgpu** directory. -3. Create a new directory and download the WebGPU header file from GitHub. +* Create a new directory and download the WebGPU header file from GitHub. -4. Run the commands below to download the `webgpu.hpp` header file: +* Run the commands below to download the `webgpu.hpp` header file: ```console mkdir -p app/src/main/cpp/webgpu/include/webgpu @@ -90,7 +88,7 @@ cp ~/webgpu-files/Android_DawnWebGPU-main/app/src/main/cpp/webgpu/include/webgpu cd ../.. ``` -5. Next copy the remaining WebGPU files to your project. +Next, copy the remaining WebGPU files to your project. ```console cp ~/webgpu-files/Android_DawnWebGPU-main/app/src/main/cpp/webgpu/CMakeLists.txt . diff --git a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/6-render-a-simple-3D-object-part-2.md b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/6-render-a-simple-3D-object-part-2.md index 04c8f30cf7..cfa1209825 100644 --- a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/6-render-a-simple-3D-object-part-2.md +++ b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/6-render-a-simple-3D-object-part-2.md @@ -174,6 +174,6 @@ For example: Now click the **Run** icon in Android Studio, which builds the application and launches it on the connected device, producing the following output: -![Output #center](images/output.gif "Output") +![Output #center](images/output.gif "Figure 10: Output") Congratulations! You are run a WebGPU application on an Android device. \ No newline at end of file diff --git a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/7-Profiling-App-using-Streamline.md b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/7-Profiling-App-using-Streamline.md index c47fbbaba8..27f638fd8a 100644 --- a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/7-Profiling-App-using-Streamline.md +++ b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/7-Profiling-App-using-Streamline.md @@ -14,11 +14,11 @@ Follow these steps to configure Arm Streamline Performance Analyzer to capture M * Navigate to the **Start** tab, select **Android (adb)**, select the device, and then select the application to debug. * Select **Select Counters**. -![Select device #center](images/streamline_select.png "Select device") +![Select device #center](images/streamline_select.png "Figure 11: Select device") This opens a new window: -![Select counters #center](images/streamline_select_counters.png "Select counters") +![Select counters #center](images/streamline_select_counters.png "Figure 12: Select counters") * Search for **Mali Timeline Events: Perfetto**. * Check that it is listed in **Events to collect**. @@ -36,13 +36,13 @@ Wait until Streamline completes processing the data. Switch to **Mali Timeline** view as shown below: -!["Mali Timeline Streamline" #center](images/Streamline-mali-timeline.png "Mali Timeline Streamline") +!["Mali Timeline Streamline" #center](images/Streamline-mali-timeline.png "Figure 13: Mali Timeline Streamline") You might have to zoom into the data up to the maximum (**500 us**), as you are rendering a simple 3D object. You can analyze two consecutive frames as shown below: -!["Two consecutive frames" #center](./images/Streamline-mali-analysis.png "Two consecutive frames") +!["Two consecutive frames" #center](./images/Streamline-mali-analysis.png "Figure 14: Two consecutive frames") Arm has worked with the Dawn team to optimize data uploading to GPU buffers for Mali GPUs. From 307c16eceb9cfa756ea9bb74590af68ffd957191 Mon Sep 17 00:00:00 2001 From: Maddy Underwood <167196745+madeline-underwood@users.noreply.github.com> Date: Tue, 3 Dec 2024 10:20:21 +0000 Subject: [PATCH 75/87] Editorial. --- .../android_webgpu_dawn/3-integrate-dawn.md | 10 ++++------ .../android_webgpu_dawn/4-using-webgpu-apis.md | 10 ++++++---- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/3-integrate-dawn.md b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/3-integrate-dawn.md index b895a1975c..2fc0518191 100755 --- a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/3-integrate-dawn.md +++ b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/3-integrate-dawn.md @@ -15,9 +15,7 @@ Open Android Studio, click **New Project**, and select **Game Activity (C++)** a ![New Game Activity #center](./images/android_studio_new_game_activity.png "Figure 4: New C++ Game Activity") * Set the **Name** field to **dawnwebgpu**. - * Click **Next** to continue. - * Finish setting up the new project by accepting all the default selections until the project is created. The project is created in `~/AndroidStudioProjects`. @@ -106,14 +104,14 @@ WebGPU is a constantly evolving standard and hence its implementation, Dawn is a To add Dawn to our application, there are two options: -1. Create a shared/static library from the Dawn source and use it in application. -2. Download the source as a dependency and build it as part of the project build. +* Create a shared/static library from the Dawn source and use it in application. +* Download the source as a dependency and build it as part of the project build. You will use the second option here, since it provides more flexibility for debug. The files `webgpu/webgpu.cmake` and `CMakeLists.txt` facilitate downloading and building WebGPU with Dawn implementation and integrating Dawn into the project. -4. Add WebGPU to the project. +## Add WebGPU to the project WebGPU is added to the project in the file `CMakeLists.txt`. @@ -153,6 +151,6 @@ target_link_libraries(dawnwebgpu ``` -The `webgpu.hpp` header file acts like an interface, exposing all WebGPU functions and variables to the main Application. +The `webgpu.hpp` header file acts like an interface, exposing all the WebGPU functions and variables to the main Application. Navigate to the next section to continue building the WebGPU application. diff --git a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/4-using-webgpu-apis.md b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/4-using-webgpu-apis.md index 1e4c9eacfc..c30e73e3bd 100755 --- a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/4-using-webgpu-apis.md +++ b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/4-using-webgpu-apis.md @@ -8,13 +8,15 @@ layout: learningpathall ## Project Setup -With the `webgpudawn` library integrated, you can start by removing the extra files included as part of the stock Game Activity project. +With the `webgpudawn` library integrated, you can begin removing the extra files included as part of the stock Game Activity project. -1. Delete all the files from the top `cpp` directory except `CMakeLists.txt`. +* Delete all the files from the top `cpp` directory, except `CMakeLists.txt`. - You have already reviewed `CMakeLists.txt` in the previous section. + {{% notice Note %}} +You have already reviewed `CMakeLists.txt` in the previous section. +{{% /notice %}} -2. Add the files `webgpuRenderer.cpp` and `webgpuRenderer.h` files for the WebGPU application. +* Add the files `webgpuRenderer.cpp` and `webgpuRenderer.h` files for the WebGPU application. Run the commands below to add a new `main.cpp` and WebGPU renderer files: From 28bc46b811fc245a0b97ded395c34c70a2552e0e Mon Sep 17 00:00:00 2001 From: Maddy Underwood <167196745+madeline-underwood@users.noreply.github.com> Date: Tue, 3 Dec 2024 10:32:39 +0000 Subject: [PATCH 76/87] Editorial. --- .../android_webgpu_dawn/3-integrate-dawn.md | 3 -- .../5-render-a-simple-3D-object-part-1.md | 35 +++++++++---------- .../6-render-a-simple-3D-object-part-2.md | 2 +- .../7-Profiling-App-using-Streamline.md | 6 ++-- 4 files changed, 21 insertions(+), 25 deletions(-) diff --git a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/3-integrate-dawn.md b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/3-integrate-dawn.md index 2fc0518191..ca5be128bb 100755 --- a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/3-integrate-dawn.md +++ b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/3-integrate-dawn.md @@ -72,11 +72,8 @@ The Android Game Activity framework uses OpenGLES3 for graphics. You can remove Add WebGPU to the project using the following steps: * In Android Studio, navigate to the project view, and find the **app** --> **cpp** folder. - * Open the terminal in Android Studio. You are now in the **dawnwebgpu** directory. - * Create a new directory and download the WebGPU header file from GitHub. - * Run the commands below to download the `webgpu.hpp` header file: ```console diff --git a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/5-render-a-simple-3D-object-part-1.md b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/5-render-a-simple-3D-object-part-1.md index 24416a80ff..e8fc427000 100644 --- a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/5-render-a-simple-3D-object-part-1.md +++ b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/5-render-a-simple-3D-object-part-1.md @@ -69,43 +69,42 @@ The Render Pipeline has two main types of stages, **fixed-function** and **progr The pipeline description consists of the following steps: -* Describe vertex pipeline state -* Describe vertex pipeline state -* Describe primitive pipeline state -* Describe fragment pipeline state -* Describe stencil/depth pipeline state -* Describe multi-sampling state -* Describe pipeline layout +* Describe the vertex pipeline state. +* Describe the primitive pipeline state. +* Describe the fragment pipeline state. +* Describe the stencil/depth pipeline state. +* Describe the multi-sampling state. +* Describe the pipeline layout. -The fixed function stages are well documented and you can refer to [code](https://github.com/varunchariArm/Android_DawnWebGPU/blob/main/app/src/main/cpp/webgpuRenderer.cpp#L256) and [further reading](https://eliemichel.github.io/LearnWebGPU/basic-3d-rendering/hello-triangle.html#lit-24) for configuring them. +The fixed function stages are well-documented, and you can refer to [code](https://github.com/varunchariArm/Android_DawnWebGPU/blob/main/app/src/main/cpp/webgpuRenderer.cpp#L256) and [further reading](https://eliemichel.github.io/LearnWebGPU/basic-3d-rendering/hello-triangle.html#lit-24) for information about configuring them. -Configuring these stages is straight forward and is similar to other graphics APIs. +Configuring these stages is straightforward and is similar to other graphics APIs. ### Programmable stage -There are two programmable stages, vertex and fragment programmable stages. Both of them uses **Shader Module**. +There are two programmable stages, vertex, and fragment programmable stages. Both of them use the **Shader Module**. ### Shaders Both the vertex and fragment programmable stages can use the same shader module or have individual shader modules. -The Shader module is kind of a dynamic library (like a .dll, .so or .dylib file), except that it talks the binary language of your GPU rather than your CPU. +The Shader module is like a dynamic library (such as a .dll, .so, or a .dylib file), except that it uses the binary language of your GPU rather than that of your CPU. ### Shader Code The shader language officially used by WebGPU is called WebGPU Shading Language, [WGSL](https://gpuweb.github.io/gpuweb/wgsl/). -All implementations of WebGPU support it, and Dawn also offers the possibility to provide shaders written in [SPIR-V](https://www.khronos.org/spir). +All implementations of WebGPU support it, and Dawn also offers the opportunity to provide shaders written in [SPIR-V](https://www.khronos.org/spir). {{% notice Note %}} -WGSL was originally designed to be a human-editable version of SPIR-V programming model, so transpilation from SPIR-V to WGSL is in theory efficient and lossless. You can use [Naga](https://github.com/gfx-rs/naga) or [Tint](https://dawn.googlesource.com/tint) to translate. +WGSL was originally designed to be a human-editable version of the SPIR-V programming model, so transpilation from SPIR-V to WGSL is in theory efficient and lossless. You can use [Naga](https://github.com/gfx-rs/naga) or [Tint](https://dawn.googlesource.com/tint) to translate. {{% /notice %}} -It is highly recommended to understand WGSL syntax and capabilities to better program in WebGPU. +It is recommended that you learn about the WGSL syntax and capabilities to better program in WebGPU. ### Shader Module Creation -It is simple to create a Shader module in WebGPU: +It is simple to create a Shader module in WebGPU. Use the following code: ```C++ ShaderModuleDescriptor shaderDesc; @@ -116,15 +115,15 @@ By default the `nextInChain` member of `ShaderModuleDescriptor` is a `nullptr`. The `nextInChain` pointer is the entry point of WebGPU’s extension mechanism. It is either null or pointing to a structure of type `WGPUChainedStruct`. -It may recursively have a next element (again, either null or pointing to some `WGPUChainedStruct`). +It may recursively have a next element (again, either null or pointing to a `WGPUChainedStruct`). -Second, it has a struct type `sType`, which is an enum telling in which struct the chain element can be cast. +Secondly, it has the struct type `sType`, which is an enum reporting in which struct the chain element can be cast. To create a shader module from WGSL code, use the `ShaderModuleWGSLDescriptor` SType. In Dawn, a SPIR-V shader can similarly be created using the `WGPUShaderModuleSPIRVDescriptor`. -The field shaderCodeDesc.chain corresponds to the chained struct when cast as a simple `WGPUChainedStruct`, which must be set to the corresponding SType enum value: +The field shaderCodeDesc.chain corresponds to the chained struct when cast as a simple `WGPUChainedStruct`, that must be set to the corresponding SType enum value: ```C++ ShaderModuleWGSLDescriptor shaderCodeDesc; diff --git a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/6-render-a-simple-3D-object-part-2.md b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/6-render-a-simple-3D-object-part-2.md index cfa1209825..a71370ba67 100644 --- a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/6-render-a-simple-3D-object-part-2.md +++ b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/6-render-a-simple-3D-object-part-2.md @@ -176,4 +176,4 @@ Now click the **Run** icon in Android Studio, which builds the application and l ![Output #center](images/output.gif "Figure 10: Output") -Congratulations! You are run a WebGPU application on an Android device. \ No newline at end of file +Congratulations! You have now run a WebGPU application on an Android device. \ No newline at end of file diff --git a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/7-Profiling-App-using-Streamline.md b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/7-Profiling-App-using-Streamline.md index 27f638fd8a..311fcc1d51 100644 --- a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/7-Profiling-App-using-Streamline.md +++ b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/7-Profiling-App-using-Streamline.md @@ -30,7 +30,7 @@ Once you have selected the device, the application, and the metrics to be collec This automatically starts the application and begins collecting the profiling data. -Make sure the application is running correctly on your Android device. After a few seconds, you can stop the capture. +Make sure the application is running correctly on your Android device. After a few seconds, you can stop the capture process. Wait until Streamline completes processing the data. @@ -48,11 +48,11 @@ Arm has worked with the Dawn team to optimize data uploading to GPU buffers for Arm has implemented a **Fast Path** mechanism where the Vertex Queue starts processing in parallel while an earlier Fragment Queue is simultaneously being processed. -As you can see from the above picture, there is some overlap between Fragment Queue of first frame and Vertex Queue of the consecutive frame. +As you can see from the above picture, there is some overlap between the Fragment Queue of first frame, and Vertex Queue of the consecutive frame. This demonstrates that the application is hitting the **Fast Path** that Arm has implemented to optimize performance of Dawn for Mali GPUs. -The overlap is small since the application is rendering the same simple 3D object under different orientation. You can extend the application to render complex objects with multiple *Uniform Buffers*. This will demonstrate the overlap in more detail. +The overlap is small since the application is rendering the same simple 3D object under a different orientation. You can extend the application to render complex objects with multiple *Uniform Buffers*. This demonstrates the overlap in more detail. {{% notice Tip %}} You can experiment with different counters in Streamline and also explore other CPU profiling data. From c25036c715525df370ca2483ce2d6dd0ef960dc0 Mon Sep 17 00:00:00 2001 From: Maddy Underwood <167196745+madeline-underwood@users.noreply.github.com> Date: Tue, 3 Dec 2024 10:58:55 +0000 Subject: [PATCH 77/87] Editorial. --- .../5-render-a-simple-3D-object-part-1.md | 2 +- .../6-render-a-simple-3D-object-part-2.md | 2 +- .../android_webgpu_dawn/7-Profiling-App-using-Streamline.md | 6 +++--- .../smartphones-and-mobile/android_webgpu_dawn/_review.md | 6 +++--- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/5-render-a-simple-3D-object-part-1.md b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/5-render-a-simple-3D-object-part-1.md index e8fc427000..67e7f82d17 100644 --- a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/5-render-a-simple-3D-object-part-1.md +++ b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/5-render-a-simple-3D-object-part-1.md @@ -31,7 +31,7 @@ If you would like to learn more, refer to the [Command Queue](https://eliemichel WebGPU is a simple system. It runs three types of functions on the GPU: * A Vertex Shader that computes vertices. The shader returns vertex positions. -* A Fragment Shader that computes colors. The shader indirectly writes data to textures. That data does not have to be limited to colors. +* A Fragment Shader that computes colors. When an object is drawn, for each pixel to be drawn the GPU calls the fragment shader. The fragment shader then returns a color. * A Compute Shader that is more generic. It is effectively a function that you can call and request to execute as many times as you require. Here is a simplified diagram of a WebGPU setup to draw triangles by using a vertex shader and a fragment shader: diff --git a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/6-render-a-simple-3D-object-part-2.md b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/6-render-a-simple-3D-object-part-2.md index a71370ba67..54d6e1c638 100644 --- a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/6-render-a-simple-3D-object-part-2.md +++ b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/6-render-a-simple-3D-object-part-2.md @@ -35,7 +35,7 @@ The file format is not complex, but parsing files is out of the scope of this Le You can use open-source software such as Blender to create your own 3D objects. {{% notice Note %}} -Exactly one of your source files must define `TINYOBJLOADER_IMPLEMENTATION` before including it: +Only one of your source files must define `TINYOBJLOADER_IMPLEMENTATION` before including it: ```C++ #define TINYOBJLOADER_IMPLEMENTATION // add this to exactly 1 of your C++ files diff --git a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/7-Profiling-App-using-Streamline.md b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/7-Profiling-App-using-Streamline.md index 311fcc1d51..5892932817 100644 --- a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/7-Profiling-App-using-Streamline.md +++ b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/7-Profiling-App-using-Streamline.md @@ -8,7 +8,7 @@ layout: learningpathall ## Set up Arm Streamline -Follow these steps to configure Arm Streamline Performance Analyzer to capture Mali GPU related data: +Follow these steps to configure Arm Streamline Performance Analyzer to capture Mali GPU-related data: * Confirm that your Android device is connected to the development machine. * Navigate to the **Start** tab, select **Android (adb)**, select the device, and then select the application to debug. @@ -48,11 +48,11 @@ Arm has worked with the Dawn team to optimize data uploading to GPU buffers for Arm has implemented a **Fast Path** mechanism where the Vertex Queue starts processing in parallel while an earlier Fragment Queue is simultaneously being processed. -As you can see from the above picture, there is some overlap between the Fragment Queue of first frame, and Vertex Queue of the consecutive frame. +As you can see from the above picture, there is some overlap between the Fragment Queue of first frame, and the Vertex Queue of the consecutive frame. This demonstrates that the application is hitting the **Fast Path** that Arm has implemented to optimize performance of Dawn for Mali GPUs. -The overlap is small since the application is rendering the same simple 3D object under a different orientation. You can extend the application to render complex objects with multiple *Uniform Buffers*. This demonstrates the overlap in more detail. +The overlap is small as the application is rendering the same simple 3D object under a different orientation. You can extend the application to render complex objects with multiple *Uniform Buffers*. This demonstrates the overlap in more detail. {{% notice Tip %}} You can experiment with different counters in Streamline and also explore other CPU profiling data. diff --git a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/_review.md b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/_review.md index 6d4d9d6d3a..25383d3999 100644 --- a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/_review.md +++ b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/_review.md @@ -9,7 +9,7 @@ review: - APIs designed for cloud-based applications. correct_answer: 2 explanation: > - WebGPU is a Render Hardware Interface built on top of the various APIs provided by the driver/OS depending on your platform. This duplicated development effort is made once by the web browsers and made available to us through the webgpu.h header they provide + WebGPU is a Render Hardware Interface built on top of the various APIs provided by the driver/OS depending on your platform. This duplicated development effort is made once by the web browsers and made available through the webgpu.h header that they provide. - questions: question: > @@ -20,7 +20,7 @@ review: - A new programming language to program GPUs. correct_answer: 1 explanation: > - Dawn is an open-source and cross-platform implementation of the WebGPU standard, lead by Google. More precisely it implements webgpu.h that is a one-to-one mapping with the WebGPU IDL. + Dawn is an open-source and cross-platform implementation of the WebGPU standard, lead by Google. More precisely, it implements webgpu.h that is a one-to-one mapping with the WebGPU IDL. - questions: question: > @@ -31,7 +31,7 @@ review: - A comprehensive profiling software to profile both CPUs and GPUs. correct_answer: 3 explanation: > - Streamline is an application profiler that can capture data from multiple sources, including Program Counters (PC), Samples from the hardware Performance Monitoring Unit (PMU) counters in the Arm CPU, Arm® Mali™ GPUs, and Arm Immortalis™ GPUs. + Streamline is an application profiler that can capture data from multiple sources, including Program Counters (PC), samples from the hardware Performance Monitoring Unit (PMU) counters in the Arm CPU, Arm® Mali™ GPUs, and Arm Immortalis™ GPUs. From d2a79f1833d7ae584a2174d83a0b684b3998c02f Mon Sep 17 00:00:00 2001 From: Maddy Underwood <167196745+madeline-underwood@users.noreply.github.com> Date: Tue, 3 Dec 2024 11:25:59 +0000 Subject: [PATCH 78/87] Editorial. --- .../4-using-webgpu-apis.md | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/4-using-webgpu-apis.md b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/4-using-webgpu-apis.md index c30e73e3bd..1a2ebaf79c 100755 --- a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/4-using-webgpu-apis.md +++ b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/4-using-webgpu-apis.md @@ -50,27 +50,27 @@ It is useful to understand these layers as you begin to use WebGPU APIs in an ap ### The adapter -Before requesting access to a **device**, you need to select an **adapter**. +Before requesting access to a device, you need to select an adapter. -The same host system may expose multiple adapters if it has access to multiple physical GPUs. It may also have an adapter that represents an emulated/virtual device. Each adapter advertises a list of optional **features** and **supported limits** that it can handle. +The same host system might expose multiple adapters if it has access to multiple physical GPUs. It might also have an adapter that represents an emulated/virtual device. Each adapter offers optional features and supported limits that it can handle. -These are used to determine the overall capabilities of the system before **requesting the device**. The **adapter** is used to **access the capabilities** of the user’s hardware, which are used to select the behavior of your application among very different code paths. +You can use these features and limits to determine the overall capabilities of the system before requesting the device. The adapter is used to access the capabilities of the user’s hardware, which are used to select the behavior of your application among different code paths. -Once a code path is chosen, a device is created with the chosen capabilities. Only the capabilities selected for this device are allowed in the rest of the application. This way, it is **not** possible to inadvertently rely on capabilities specific to a device. +Once a code path is chosen, a device is created with the chosen capabilities. Only the capabilities selected for this device are allowed in the rest of the application. This way, it is notpossible to inadvertently rely on capabilities specific to a device. -![Supported Limits #center](images/adapter_supported_limits.png "Figure 7: Adapter Supported Limits") +![Supported Limits #center](images/adapter_supported_limits.png "Figure 7: Adapter Supported Limit s") {{% notice Tip %}} -In an advanced use of the adapter/device duality, you can set up multiple limit presets and select one depending on the adapter. +To use the adapter/device duality in an advanced way, you can set up multiple limit presets and select one depending on the adapter. -In this case, there is a single preset and abort early if it is not supported. +In this scenario, there is a single preset and an abort early option if it is not supported. {{% /notice %}} ### Requesting the adapter An adapter is not something you create, but rather something that you *request* using the function `requestAdapter()`. -Before doing that you need to create an instance using the `createInstance()` function. +Before doing this you need to create an instance using the `createInstance()` function. ```C++ wgpu::Instance instance = createInstance(InstanceDescriptor{}); @@ -80,7 +80,7 @@ In order to display something on the screen, the operating system needs to provi The Game Activity provides a *pApp* member which exposes an Android Window. WebGPU can use an Android Window for rendering. -WebGPU cannot use the *window* directly, but uses something called **a surface**, which can be easily created using the window. +WebGPU cannot use the *window* directly, but uses something called a "surface", which can be easily created using the window. ```C++ wgpu::SurfaceDescriptorFromAndroidNativeWindow platformSurfaceDescriptor = {}; @@ -131,7 +131,7 @@ There are few options to set the limits: wgpu::RequiredLimits requiredLimits = Default; ``` -* Query the Adapter's *supported limits* and use them as *required limits*: +* Query the Adapter's *supported limits*, and use them as *required limits*: ```C++ wgpu::SupportedLimits supportedLimits; @@ -140,7 +140,7 @@ wgpu::RequiredLimits requiredLimits = Default; requireLimits.limits = supportedLimits.limits; ``` -* Query the Adapter's *supported limits* and define specific *better* limits in the *required limits*: +* Query the Adapter's *supported limits*, and define specific *better* limits in the *required limits*: ```C++ wgpu::SupportedLimits supportedLimits; @@ -155,9 +155,9 @@ requiredLimits.limits.minUniformBufferOffsetAlignment = supportedLimits.limits.m ``` {{% notice Tip %}} -Setting *better* limits may not be desirable, as doing so may have a performance impact. To improve portability across devices and implementations, applications should generally only request better limits if they are required. +Setting *better* limits might not be preferable, as doing so might have a consequential performance impact. To improve portability across devices and implementations, applications should generally only request better limits if they are required. -It is recommended to read more about ["Supported Limits"](https://developer.mozilla.org/en-US/docs/Web/API/GPUSupportedLimits) and ["limits"](https://gpuweb.github.io/gpuweb/#limits). +It is recommended that you to read more about ["Supported Limits"](https://developer.mozilla.org/en-US/docs/Web/API/GPUSupportedLimits) and ["limits"](https://gpuweb.github.io/gpuweb/#limits). {{% /notice %}} Use the `requestDevice()` API to request device: @@ -181,7 +181,7 @@ static auto errorCallback = device.setUncapturedErrorCallback([](ErrorType type, ``` {{% notice Tip %}} -While creating a device, use a callback function `setUncapturedErrorCallback`, this helps in capturing validation and other errors with the WebGPU device. +While creating a device, use the callback function `setUncapturedErrorCallback`. This helps in capturing validation and other errors with the WebGPU device. {{% /notice %}} -Proceed to learn how to render 3D objects. \ No newline at end of file +You can now move on to learn how to render 3D objects. \ No newline at end of file From ceb2b73f2f33d2467d18e9015df14589b14825bf Mon Sep 17 00:00:00 2001 From: Jason Andrews Date: Tue, 3 Dec 2024 09:20:20 -0600 Subject: [PATCH 79/87] Remove draft from WPA Learning Path --- .../laptops-and-desktops/windowsperf_wpa_plugin/_index.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/content/learning-paths/laptops-and-desktops/windowsperf_wpa_plugin/_index.md b/content/learning-paths/laptops-and-desktops/windowsperf_wpa_plugin/_index.md index 0f33fff372..1518a9cfce 100644 --- a/content/learning-paths/laptops-and-desktops/windowsperf_wpa_plugin/_index.md +++ b/content/learning-paths/laptops-and-desktops/windowsperf_wpa_plugin/_index.md @@ -1,10 +1,6 @@ --- title: Get started with the Windows Performance Analyzer (WPA) plugin for WindowsPerf -draft: true -cascade: - draft: true - minutes_to_complete: 15 who_is_this_for: This is an introductory topic for software developers interested in using the Windows Performance Analyzer (WPA) plugin for performance analysis. From 4cef27cc11469b9feebe3f1431cb53d3fbb92d7b Mon Sep 17 00:00:00 2001 From: Maddy Underwood <167196745+madeline-underwood@users.noreply.github.com> Date: Tue, 3 Dec 2024 16:37:01 +0000 Subject: [PATCH 80/87] Final checks. --- .../android_webgpu_dawn/1-webgpu-fundamentals.md | 2 +- .../android_webgpu_dawn/3-integrate-dawn.md | 2 +- .../android_webgpu_dawn/4-using-webgpu-apis.md | 6 +++--- .../5-render-a-simple-3D-object-part-1.md | 4 ++-- .../6-render-a-simple-3D-object-part-2.md | 6 +++--- .../android_webgpu_dawn/7-Profiling-App-using-Streamline.md | 2 +- 6 files changed, 11 insertions(+), 11 deletions(-) diff --git a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/1-webgpu-fundamentals.md b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/1-webgpu-fundamentals.md index c5cd651c18..4ffcff0a43 100644 --- a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/1-webgpu-fundamentals.md +++ b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/1-webgpu-fundamentals.md @@ -28,7 +28,7 @@ The high-level view of WebGPU is shown below in Figure 1: ## What are the benefits of WebGPU? -WebGPU takes into account lessons learned from earlier standards such as WebGL and OpenGL, and provides the following benefits: +WebGPU uses lessons learned from earlier standards such as WebGL and OpenGL to develop an improved offering, and provides the following benefits: * A reasonable level of abstraction. * Improved performance. diff --git a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/3-integrate-dawn.md b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/3-integrate-dawn.md index ca5be128bb..544058f2ac 100755 --- a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/3-integrate-dawn.md +++ b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/3-integrate-dawn.md @@ -37,7 +37,7 @@ GameActivity performs the following functions: * It renders into a SurfaceView, making it easier for games to interact with other UI components. {{% notice Tip %}} -You can find more information about Android Game Activity and its capabilities in the [Game Activity documentation](https://developer.android.com/games/agdk/game-activity). +You can find more information about Android Game Activity and its capabilities in the [Game Activity Documentation](https://developer.android.com/games/agdk/game-activity). {{% /notice %}} ## Download project source files diff --git a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/4-using-webgpu-apis.md b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/4-using-webgpu-apis.md index 1a2ebaf79c..eec6f8f291 100755 --- a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/4-using-webgpu-apis.md +++ b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/4-using-webgpu-apis.md @@ -56,9 +56,9 @@ The same host system might expose multiple adapters if it has access to multiple You can use these features and limits to determine the overall capabilities of the system before requesting the device. The adapter is used to access the capabilities of the user’s hardware, which are used to select the behavior of your application among different code paths. -Once a code path is chosen, a device is created with the chosen capabilities. Only the capabilities selected for this device are allowed in the rest of the application. This way, it is notpossible to inadvertently rely on capabilities specific to a device. +Once a code path is chosen, a device is created with the chosen capabilities. Only the capabilities selected for this device are allowed in the rest of the application. This way, it is not possible to inadvertently rely on capabilities specific to a device. -![Supported Limits #center](images/adapter_supported_limits.png "Figure 7: Adapter Supported Limit s") +![Supported Limits #center](images/adapter_supported_limits.png "Figure 7: Adapter Supported Limits") {{% notice Tip %}} To use the adapter/device duality in an advanced way, you can set up multiple limit presets and select one depending on the adapter. @@ -157,7 +157,7 @@ requiredLimits.limits.minUniformBufferOffsetAlignment = supportedLimits.limits.m {{% notice Tip %}} Setting *better* limits might not be preferable, as doing so might have a consequential performance impact. To improve portability across devices and implementations, applications should generally only request better limits if they are required. -It is recommended that you to read more about ["Supported Limits"](https://developer.mozilla.org/en-US/docs/Web/API/GPUSupportedLimits) and ["limits"](https://gpuweb.github.io/gpuweb/#limits). +It is recommended that you to read more about ["Supported Limits"](https://developer.mozilla.org/en-US/docs/Web/API/GPUSupportedLimits) and ["Limits"](https://gpuweb.github.io/gpuweb/#limits). {{% /notice %}} Use the `requestDevice()` API to request device: diff --git a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/5-render-a-simple-3D-object-part-1.md b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/5-render-a-simple-3D-object-part-1.md index 67e7f82d17..cd8d77ac10 100644 --- a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/5-render-a-simple-3D-object-part-1.md +++ b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/5-render-a-simple-3D-object-part-1.md @@ -10,7 +10,7 @@ layout: learningpathall Graphic applications must operate with two processors, the CPU and the GPU. -These two processors run on different timelines. For optimal performance, commands intended for the GPU are batched and sent through a command queue. The GPU consumes this queue whenever it is ready, and in this way processors minimize the time spent idling for their sibling to respond. +These two processors run on different timelines. For optimal performance, commands intended for the GPU are batched and sent through a command queue. The GPU consumes this queue whenever it is ready, and in this way, processors minimize the time spent idling for their sibling to respond. A WebGPU device has a single queue, which is used to send both commands and data. You can get it with `wgpuDeviceGetQueue()`. @@ -50,7 +50,7 @@ The main things to notice in the above image are: To execute shaders on the GPU, you need to create all of these resources and set up this state. Creation of resources is relatively straightforward. {{% notice Note %}} -Most WebGPU resources can not be changed after creation. You can change their contents but not their size, usage, and format. +Most WebGPU resources cannot be changed after creation. You can change their contents but not their size, usage, and format. If you want to change something create a new resource and destroy the old one. {{% /notice %}} diff --git a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/6-render-a-simple-3D-object-part-2.md b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/6-render-a-simple-3D-object-part-2.md index 54d6e1c638..8cd399a404 100644 --- a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/6-render-a-simple-3D-object-part-2.md +++ b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/6-render-a-simple-3D-object-part-2.md @@ -22,7 +22,7 @@ The steps are listed below: All these steps are common in graphics programming, and WebGPU allows you to perform these same operations. -It is a good idea to read the individual chapters in the [3D rendering](https://eliemichel.github.io/LearnWebGPU/basic-3d-rendering/index.html) section to learn more. +It is a good idea to read the individual chapters in the [3D Rendering](https://eliemichel.github.io/LearnWebGPU/basic-3d-rendering/index.html) section to learn more. ### Loading 3D objects @@ -51,7 +51,7 @@ You are now ready to render a 3D object. You can run a rendering pass and *draw* something onto our *surface*. -To encode any commands to be issued to GPU, you need to create a `CommandEncoder`. Modern APIs record commands into command buffers,rather than issuing commands one by one, and submit all of them at once. +To encode any commands to be issued to GPU, you need to create a `CommandEncoder`. Modern APIs record commands into command buffers, rather than issuing commands one by one, and submit all of them at once. In WebGPU, this is done through a `CommandEncoder` as shown below: @@ -123,7 +123,7 @@ Make sure you release the created encoders and buffers by calling the respective {{% /notice %}} {{% notice Note %}} -By default Dawn runs callbacks only when the device “ticks”, so the error callbacks are invoked in a different call stack than where the error occurred, making the breakpoint less informative. +By default, Dawn runs callbacks only when the device “ticks”, so the error callbacks are invoked in a different call stack than where the error occurred, making the breakpoint less informative. To force Dawn to invoke error callbacks as soon as there is an error, you can enable an instance toggle: diff --git a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/7-Profiling-App-using-Streamline.md b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/7-Profiling-App-using-Streamline.md index 5892932817..1f5326e38d 100644 --- a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/7-Profiling-App-using-Streamline.md +++ b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/7-Profiling-App-using-Streamline.md @@ -42,7 +42,7 @@ You might have to zoom into the data up to the maximum (**500 us**), as you are You can analyze two consecutive frames as shown below: -!["Two consecutive frames" #center](./images/Streamline-mali-analysis.png "Figure 14: Two consecutive frames") +!["Two Consecutive Frames" #center](./images/Streamline-mali-analysis.png "Figure 14: Two Consecutive Frames") Arm has worked with the Dawn team to optimize data uploading to GPU buffers for Mali GPUs. From d4efb3b6441727f6106977ce5eeafb6748b94c06 Mon Sep 17 00:00:00 2001 From: Maddy Underwood <167196745+madeline-underwood@users.noreply.github.com> Date: Tue, 3 Dec 2024 17:11:12 +0000 Subject: [PATCH 81/87] Editorial Review. --- content/install-guides/git-woa.md | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/content/install-guides/git-woa.md b/content/install-guides/git-woa.md index 14c4899d09..432f39e75b 100644 --- a/content/install-guides/git-woa.md +++ b/content/install-guides/git-woa.md @@ -47,27 +47,29 @@ Once you have downloaded Git, run the installer `.exe` file on a Windows on Arm The installer starts. -Click Next to acknowledge the GNU General Public License. +Click **Next** to acknowledge the GNU General Public License. -Set the destination location or accept the default location and click Next. +Set the destination location or accept the default location, and click **Next**. -Continue to click Next for any configuration settings. You can accept all defaults if you are unsure of specific settings. +Continue to click **Next** for the configuration settings. You can accept all defaults if you are unsure of specific settings. -At the end of the install process you see the screen below indicating setup has finished installing Git: +At the end of the install process, you see the screen below indicating setup has finished installing Git: ![Install](/install-guides/_images/git-woa.png) -Click the Finish button to complete installation. +Click the **Finish** button to complete installation. ## How do I use Git on Windows? -You can use Git on Windows from a Command Prompt or using Git Bash, a Linux-like terminal experience which includes Git and many other Linux commands. +You can use Git on Windows from a Command Prompt or using Git Bash. + +Git Bash is a Linux-like terminal experience which includes Git and many other Linux commands. {{% notice Note %}} Git is not automatically added to your search path during installation. {{% /notice %}} -To use Git, click the Windows Start button and then click `All apps`. +To use Git, click the Windows **Start** button and then click **All apps**. You see the Git folder in the G section. @@ -77,12 +79,12 @@ There are menu items for multiple ways to start Git. ## How can I use Git in a Windows Command Prompt? -Start a Git Command Prompt by selecting `Git CMD` from the start menu. +Start a Git Command Prompt by selecting **Git CMD** from the **Start** menu. ![CMD](/install-guides/_images/git3-woa.png) -To see the help message enter: +To see the help message, enter: ```cmd git help @@ -92,11 +94,11 @@ You can use Git from this Command Prompt. ## How can I use Git with Git Bash? -To use Git in a Linux-like environment, select `Git Bash` from the start menu. +To use Git in a Linux-like environment, select **Git Bash** from the start menu. ![CMD](/install-guides/_images/git4-woa.png) -Click the colored icon on the top left corner of the Git Bash window and then click `Options` to change the appearance of the window, including colors, fonts, and font sizes. +Click the colored icon in the top-left corner of the Git Bash window, and then click **Options** to change the appearance of the window, including colors, fonts, and font sizes. ![Options](/install-guides/_images/git5-woa.png) From 25e06af623be905f2f1912a8d3c395eda2b87a62 Mon Sep 17 00:00:00 2001 From: Jason Andrews Date: Tue, 3 Dec 2024 11:55:32 -0600 Subject: [PATCH 82/87] Remove direct link to review questions in embedded migration to Arm Learning Path. --- .../learning-paths/embedded-systems/migration/6_run_evaluate.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/learning-paths/embedded-systems/migration/6_run_evaluate.md b/content/learning-paths/embedded-systems/migration/6_run_evaluate.md index 8a2cfe7754..256a3ea14c 100644 --- a/content/learning-paths/embedded-systems/migration/6_run_evaluate.md +++ b/content/learning-paths/embedded-systems/migration/6_run_evaluate.md @@ -45,4 +45,4 @@ Emulation does not give a representative view of how efficiently the algorithms You have now ported an `x86_64` application to `aarch64`, built and run the ported application on `aarch64` using emulation, well done! -If you have access to Arm hardware, continue to the next section [Evaluating real hardware](/learning-paths/embedded-systems/migration/7_alternative). If you don't have access to Arm hardware you can jump straight to the [Review](/learning-paths/embedded-systems/migration/_review) and test your knowledge. \ No newline at end of file +Continue to the next section to evaluate application performance on Arm hardware. From 7036ff094f0eba4adcbcaff57a2b8d8b69ed7937 Mon Sep 17 00:00:00 2001 From: Jason Andrews Date: Tue, 3 Dec 2024 12:42:46 -0600 Subject: [PATCH 83/87] Update WSL Learning Path --- .../laptops-and-desktops/wsl2/setup.md | 16 ++++++++++------ .../laptops-and-desktops/wsl2/ssh.md | 2 +- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/content/learning-paths/laptops-and-desktops/wsl2/setup.md b/content/learning-paths/laptops-and-desktops/wsl2/setup.md index 440f79da48..f1a96fb493 100644 --- a/content/learning-paths/laptops-and-desktops/wsl2/setup.md +++ b/content/learning-paths/laptops-and-desktops/wsl2/setup.md @@ -25,6 +25,7 @@ WSL 2 replaces the system call translation layer provided in WSL 1 with the late WSL 2 can run containers for application development. WSL 2 provides much faster file I/O compared to WSL 1. ## Install WSL 2 + Installing WSL 2 requires Windows 11. It is also possible to install WSL 2 on certain Windows 10 versions, but these instructions were tested on Windows 11. Windows 11 is recommended to complete all of the examples in this Learning Path. All of the examples have been tested using WSL 2. If only WSL is specified it means WSL 2. Here is the short version on how to install WSL 2. Microsoft documentation provides a [quickstart](https://docs.microsoft.com/en-us/windows/wsl/install-win10) with full details on how to install WSL 2. There are also numerous tutorials available (for non-Arm architectures). @@ -73,12 +74,15 @@ wsl --list --online The output will list the available distributions: ```output -NAME FRIENDLY NAME -Ubuntu Ubuntu -Debian Debian GNU/Linux -Ubuntu-18.04 Ubuntu 18.04 LTS -Ubuntu-20.04 Ubuntu 20.04 LTS -Ubuntu-22.04 Ubuntu 22.04 LTS +NAME FRIENDLY NAME +Ubuntu Ubuntu +Debian Debian GNU/Linux +kali-linux Kali Linux Rolling +Ubuntu-18.04 Ubuntu 18.04 LTS +Ubuntu-20.04 Ubuntu 20.04 LTS +Ubuntu-22.04 Ubuntu 22.04 LTS +Ubuntu-24.04 Ubuntu 24.04 LTS +openSUSE-Tumbleweed openSUSE Tumbleweed ``` Install a distribution from this list: diff --git a/content/learning-paths/laptops-and-desktops/wsl2/ssh.md b/content/learning-paths/laptops-and-desktops/wsl2/ssh.md index 4621c441a4..e12a3e7983 100644 --- a/content/learning-paths/laptops-and-desktops/wsl2/ssh.md +++ b/content/learning-paths/laptops-and-desktops/wsl2/ssh.md @@ -22,7 +22,7 @@ Substitute your username and the filename to be copied. cp /mnt/c/Users//Downloads/ . ``` -If SSH is needed to access WSL from a different machine continue with the instructions below: +If SSH is needed to access WSL from a different machine continue with the instructions below. ## Install SSH server From e92a2faf7ea10cd9f0c3d534ebddae8c85a19aa9 Mon Sep 17 00:00:00 2001 From: Maddy Underwood <167196745+madeline-underwood@users.noreply.github.com> Date: Thu, 5 Dec 2024 10:45:21 +0000 Subject: [PATCH 84/87] Added intermediate as level. --- .../smartphones-and-mobile/android_webgpu_dawn/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/_index.md b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/_index.md index 3a05c5e9b9..afffc360ee 100644 --- a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/_index.md +++ b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/_index.md @@ -27,7 +27,7 @@ prerequisites: author_primary: Varun Chari, Albin Bernhardsson ### Tags -skilllevels: Advanced +skilllevels: Intermediate subjects: GPU armips: - Cortex-A From c8382e4cd80117d40614fb1dab1badbb68c9c2e2 Mon Sep 17 00:00:00 2001 From: Jason Andrews Date: Thu, 5 Dec 2024 07:20:40 -0600 Subject: [PATCH 85/87] spelling and category updates --- .wordlist.txt | 47 ++++++++++++++++++- .../laptops-and-desktops/_index.md | 11 +++-- .../learning-paths/microcontrollers/_index.md | 9 ++-- .../smartphones-and-mobile/_index.md | 11 +++-- .../android_webgpu_dawn/_index.md | 4 +- .../profiling-ml-on-arm/_index.md | 4 ++ 6 files changed, 69 insertions(+), 17 deletions(-) diff --git a/.wordlist.txt b/.wordlist.txt index 47fe254fa8..12f6888c86 100644 --- a/.wordlist.txt +++ b/.wordlist.txt @@ -3335,4 +3335,49 @@ webgpufundamentals wgpuQueueSubmit wgpuQueueWriteBuffer wgpuQueueWriteTexture -wpa \ No newline at end of file +wpa +CAMs +CODENAME +COMs +Chaodong +CreateWorkload +Disqus +ExecuteNetwork +FPC +HX +Hejmadi +Himax +Kieran +LHwilBhvNU +LastWriteTime +LiteRT +OV +Seeed +WebGPU’s +WiseEye +Yolov +blp +dLayer +dawnwebgpu +dmesg +fm +himax +il +juXXgrDDaUdmi +mins +mobilenet +msvc +od +ons +scm +seeedstudio +sscript +tflm +tw +vc +videoio +wiseeye +wlcsp +xB +xmodem +yolov \ No newline at end of file diff --git a/content/learning-paths/laptops-and-desktops/_index.md b/content/learning-paths/laptops-and-desktops/_index.md index 7f6fe66d59..857b0f965b 100644 --- a/content/learning-paths/laptops-and-desktops/_index.md +++ b/content/learning-paths/laptops-and-desktops/_index.md @@ -13,11 +13,11 @@ operatingsystems_filter: - ChromeOS: 1 - Linux: 29 - macOS: 7 -- Windows: 36 +- Windows: 37 subjects_filter: - CI-CD: 3 - Containers and Virtualization: 6 -- Migration to Arm: 25 +- Migration to Arm: 26 - Performance and Architecture: 20 subtitle: Create and migrate apps for power efficient performance title: Laptops and Desktops @@ -31,10 +31,10 @@ tools_software_languages_filter: - Automotive: 1 - C: 2 - C#: 5 -- C++: 2 +- C++: 3 - C/C++: 4 - CCA: 1 -- Clang: 9 +- Clang: 10 - CMake: 2 - Coding: 19 - CSS: 1 @@ -56,6 +56,7 @@ tools_software_languages_filter: - Neon: 1 - Neovim: 1 - Node.js: 3 +- OpenCV: 1 - perf: 2 - Python: 2 - Qt: 2 @@ -65,7 +66,7 @@ tools_software_languages_filter: - SVE: 1 - SVE2: 1 - Trusted Firmware: 1 -- Visual Studio: 9 +- Visual Studio: 10 - Visual Studio Code: 9 - VS Code: 2 - Windows Forms: 1 diff --git a/content/learning-paths/microcontrollers/_index.md b/content/learning-paths/microcontrollers/_index.md index f139834ead..caeda206bc 100644 --- a/content/learning-paths/microcontrollers/_index.md +++ b/content/learning-paths/microcontrollers/_index.md @@ -8,14 +8,14 @@ key_ip: maintopic: true operatingsystems_filter: - Baremetal: 25 -- Linux: 4 -- macOS: 2 +- Linux: 5 +- macOS: 3 - RTOS: 10 - Windows: 2 subjects_filter: - CI-CD: 3 - Libraries: 3 -- ML: 7 +- ML: 8 - Performance and Architecture: 11 - RTOS Fundamentals: 4 - Security: 2 @@ -37,6 +37,7 @@ tools_software_languages_filter: - FVP: 1 - GCC: 5 - GitHub: 2 +- Himax SDK: 1 - IP Explorer: 2 - Keil: 7 - Keil MDK: 3 @@ -44,7 +45,7 @@ tools_software_languages_filter: - MPS3: 1 - Node.js: 1 - Paddle: 1 -- Python: 1 +- Python: 2 - PyTorch: 1 - Raspberry Pi: 1 - RTX: 2 diff --git a/content/learning-paths/smartphones-and-mobile/_index.md b/content/learning-paths/smartphones-and-mobile/_index.md index 0461503058..3184b831e0 100644 --- a/content/learning-paths/smartphones-and-mobile/_index.md +++ b/content/learning-paths/smartphones-and-mobile/_index.md @@ -10,14 +10,14 @@ key_ip: - Mali maintopic: true operatingsystems_filter: -- Android: 23 -- Linux: 21 +- Android: 24 +- Linux: 22 - macOS: 10 - Windows: 10 subjects_filter: - Gaming: 6 -- Graphics: 3 -- ML: 8 +- Graphics: 4 +- ML: 9 - Performance and Architecture: 24 subtitle: Optimize Android apps and build faster games using cutting-edge Arm tech title: Smartphones and Mobile @@ -27,7 +27,7 @@ tools_software_languages_filter: - Android: 3 - Android NDK: 1 - Android SDK: 1 -- Android Studio: 7 +- Android Studio: 8 - Arm Development Studio: 1 - Arm Mobile Studio: 1 - Arm Performance Studio: 2 @@ -61,6 +61,7 @@ tools_software_languages_filter: - Rust: 2 - SDDiskTool: 1 - SVE2: 1 +- tflite: 1 - Total Compute: 1 - Trusted Firmware: 1 - Unity: 6 diff --git a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/_index.md b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/_index.md index afffc360ee..5fa6f5e6c9 100644 --- a/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/_index.md +++ b/content/learning-paths/smartphones-and-mobile/android_webgpu_dawn/_index.md @@ -27,8 +27,8 @@ prerequisites: author_primary: Varun Chari, Albin Bernhardsson ### Tags -skilllevels: Intermediate -subjects: GPU +skilllevels: Advanced +subjects: Graphics armips: - Cortex-A tools_software_languages: diff --git a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/_index.md b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/_index.md index 1271520b0d..09b49edbdb 100644 --- a/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/_index.md +++ b/content/learning-paths/smartphones-and-mobile/profiling-ml-on-arm/_index.md @@ -1,6 +1,10 @@ --- title: Profile the performance of ML models on Arm +draft: true +cascade: + draft: true + minutes_to_complete: 60 who_is_this_for: This is an introductory topic for software developers who want to learn how to profile the performance of their ML models running on Arm devices. From 107c01baa986a2e3584627686e13b6364d011829 Mon Sep 17 00:00:00 2001 From: pareenaverma Date: Thu, 5 Dec 2024 09:11:16 -0500 Subject: [PATCH 86/87] Update _index.md --- .../learning-paths/laptops-and-desktops/win-opencv/_index.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/content/learning-paths/laptops-and-desktops/win-opencv/_index.md b/content/learning-paths/laptops-and-desktops/win-opencv/_index.md index 561cadd2f9..939f756cfa 100644 --- a/content/learning-paths/laptops-and-desktops/win-opencv/_index.md +++ b/content/learning-paths/laptops-and-desktops/win-opencv/_index.md @@ -1,6 +1,8 @@ --- title: Build OpenCV applications on Windows on Arm - +draft: true +cascade: + draft: true minutes_to_complete: 90 who_is_this_for: This is an advanced topic for software developers who want to use OpenCV with Windows on Arm devices. From 99972fc7429facbe90c796b1f42fa81fb6ba2a7b Mon Sep 17 00:00:00 2001 From: pareenaverma Date: Thu, 5 Dec 2024 09:12:07 -0500 Subject: [PATCH 87/87] Update _index.md --- .../learning-paths/microcontrollers/yolo-on-himax/_index.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/content/learning-paths/microcontrollers/yolo-on-himax/_index.md b/content/learning-paths/microcontrollers/yolo-on-himax/_index.md index f1c4abe72e..8882ef4e61 100644 --- a/content/learning-paths/microcontrollers/yolo-on-himax/_index.md +++ b/content/learning-paths/microcontrollers/yolo-on-himax/_index.md @@ -1,6 +1,8 @@ --- title: Run a Computer Vision Model on a Himax Microcontroller - +draft: true +cascade: + draft: true minutes_to_complete: 90 who_is_this_for: This is an introduction topic explaining how to run a computer vision application on an embedded device from Himax. The example uses an off-the-shelf Himax WiseEye2 module which is based on Arm Cortex-M55 and Ethos-U55.

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�M8_>!>pEPBr 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 Tzi>lB-dy literal 0 HcmV?d00001 diff --git a/content/learning-paths/laptops-and-desktops/win-opencv/msvc_screen.png b/content/learning-paths/laptops-and-desktops/win-opencv/msvc_screen.png new file mode 100644 index 0000000000000000000000000000000000000000..9ce520802b5fdb3ecd952899eb00df85780b195c GIT binary patch literal 106708 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≤x}7N8 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 g05a zNs>WwX14MF_to21yY;rKsBXG%ci+DEob!F>J9i>qX($mrpm~6Wg+=sISza3p>kbJP z7WOgT9pKDOeiRk3!*^9S@W8?n{Biq-&1q#ggN5}N>!th)UEj3rIiEms>v^od1!`0C z!#p2l`LX5Y8+Ch%d}+o5<&)z&96C9kUTRu^cmpA1o65Y-m#f%1F zV_`+mz$?rJCWnWY+#9%gc;2^uLm&)!e?Mthc@+AJlYGffnv2VBv{0+7s|z0=pFIIT z`yLjSJOu<|WN1i3L!+Xqs$XWDlA3Cyug~%F5gH^aEFAW85sg+vnldsn@<(OY5 z$cV78e)s+aLE#WcX?eL>qvu9j7=fy)Dun{mqHBFo(M$67l@%*3@+phCbaP;&=H7zy z5!|wzY;3EW#pNx3+X(21@5@G<1-7_~(NR$;;k|ndbpCk`XH=KfS1=U)?Zx{ef2sY; zYvS;n(mS`4FlY`>h>y=#OR=n*dC5sWyx}?c?Y0+qaIhA+kf0zhC4oEv(5?dw%1M-< zBSxBP>OxkW5W4LYnrIpz4#!AVf0d~AP2NUJ#%y1XACZUKKe6X35jaxwGy%k8GGt6M+k zTxtZF8P3mVM=g|dsz4w~J*$@RYwhh#UU)?|r?9ZFMnTo}i-G24r8%-zkb|9F5d!f5 z_q`H~@!j)p6&3pt9=hatEiEkpnsivM%9*~e^Ry@$yb;3-tHV2Sg3O`larI1*{#k4P861uz~z~N=0rq9mAsPa z8kqw=D*j8{QQE*}WHb|V?N1Gr&Mc397!Cg8DG?nNWoTp+_c|A0FDLi&GoMjzCJfeU z?)visQAZ#!@NfIIA!FtOR;N2gIwmImV&>-X>tM{gCCl;-A=lqOh|RKp$5z3?=)qtvvS$mowy{z9q^#vuF|kGeIRRQXBN_Na#SXJ@|U z6UCfSbIu&0g$P4^ecPurKNr7i6p$$lZFoMCmCgFtZV9G|858QP8V@?xh5xiDmDQ9i9C{;<2Syt|`NG?S$5cFKU-7z{r~Dp%Tu0810eSn`*;(1_ z6Rfvy6!BiFs97Nlb#(zdVSQw`?;lP?Yg0F+k^7+F{hKUEQfH+aS4>RIs$a|Z@85HC zxHF5HNc5v`xYHBoT8z{B!Pg+`9c6RpH zuQV@6$rbR!WS7w~9!+zrtE*(}Y62;0Prf(+mM$(X9u^jc3^>(LRh{{6@!qt&AkoI! zy1}?CUDC%M|65`#jd1syr@PZNs^W04h})9<3)1m&GZ)}{jGHtwrJd^}A4PUnJ`29` z4gWbbI+~c8S{(NLeXD@uBrtS{>}=+oA4`fU)-sAs0!v$2WMmfhP8~Mrgza_J z)YPcT`hZ$@W5)#-9=Ibrqx0-`wEJBuXR48c5N)=b%OnZ1*TU!SOAs^!bZkm(G zAm(cRE8^kC#zs<75)c9gqo_d87oEYQD8pp4c4q1%>0+y^pT3Mg zI5+?t9|%{hc4vPV0WdJCbLQjYqZhPNhCl#wyE|~m#>NJm2ZO;*Ndkt+)KdPQk4azG z*pI!%zI$=H$NzE|9YcG%Gb3vG3lF#>Yp^#(h#JbHUsi%ZY|b@_qLbIo4+msq`1#AL zt38j_hk%FCia2ue@QiGDHZ(NQbpTG-UD*u8hQ>w-2!ujmW28W{+!R^;iE2P{uh~`1 z*u+H2@4)H>Y4sBMz+q8Q(ed$d(8ZCRon53n^KCrYI@T+OY#F{XGAg#-g;%_IkDHg5 z2Xvn)6psmb8;c?w5BL4M=a2dMHI39EW50g=!oG|9R7Avisxq&v>qYEuTP&9l<+r4}DG1l{^__%k z^1B7lsZi3F@ljDxjv_`XDp8N|xVX50fum=54uPN+G`XCdoUGv~eKw^PqEDVY5f`Us zvU*ArB+Z!jR9dxi;(t;$dox|aT8Ebr$(S0_m8X9O2ZH%IVR<*7L9GH)AQb7=*A=;^G z>f&faj!QU2&9uC3r@I>Sez`s|G0~*STUb=|OJX7`8{0!!dk2TZg9CDfA@12~WxE=~ znmng3*)1*7GBRd7!8J7@$!hsG*Ovq#q-12vu3~`2?07fTw&>~2pkOFH#zIJ#mv0|7 z*6%llRo+@!pX&0gfqBj{cZI#c))|At;bizAdeoN!;WrLqu{z`m@vH!kz{6=<{QHo{ zp_Ew3Q=CF!f7W9_U0HcBHcuFrZpd7fOI<@_zShY|LE+xOA;41%)3s+F7~T{^OlxXu zH;?^G_daq)DLq|fbn91IIdj512>FmfA7yrfMPP&}w0w8Ap+H z4Sj9xrG4LisZ(PGt&{C3z;y-R41OC1NYc_$4%s)z)XrSfgndmcoj5=%oF~7(;3-j# zC&$B)*BX6NH0SIRo%n2^qoX5^R#bzwQx!6{oOloTWU;_o99;VR`Lmo8g$S)&;rDM? zOu1688DWRS(|lG2W##4i3Mp-LUC*dvcKn`etSeHz|gx zR(2C*CWgm}kMTrOORvAJ8xj`^%SUJX{{7wB`u@H{UTAHt=MIUiG5{8H&I3TW@9ca9 zsi~*{v#`kZ49;-FrVmDHeMf4mo$h6T8_Z|Vh@)H!^wzzc54S?7M zt(vMPNl1t%mA!ZGUg*b?l9J^$zN4=WWgBC~R2}rxBGnqN7~(p1yaA30Y(*JU4Gdm}j*S8iia<9V;aBslTf$^N435<-4 z{G==&V2=jfzk~gPbZL3H#vLE(xIUO=NZqz}IJM)Q(6w@US##~s5C}w06B82;4-b2L z#JJJK+9BYZPNd$b1pq5b^c-gN45^g~%mG9%pWt9+{ng$sEFv;KHYWV^sV{PVbX2!g zU)$0$dwe$ADSKjT&elv5@G@##t9!>A7~q_t2y#Rn8@L^BBs7BZP z{VIy}O{e-0Sj5PN$C1E0WdqhElGbPS!Gq#p6(=`{knx1t9w1nu9P*Y$(9GA8{nhVB#}P-{AthJQ#oU?OiOabRX-^6mfof$$$#x6hKmDV@FD;SK>!o_G9f`Ml$?A#m>h zx*z|&w?1J$p7aij8a9^y12{+yf$;W`=r`n`=F^2ZIiGY#1={NXU&j%%=2zT4JM~FB z$JJ^qf%fl)RrbAG)Q2@$g>m8~4kt_ktp>17@rcd_1%yj$~w3rH*ynh{V)XAa!bLmS!byq>shP5{xC z_a_}|HSWO^Tviode}wSnZbCw(g)2N-11JOT8O4)$1v_fq-}^;q6lPGG1z zyz6_1KXWl2x0b6tMMJQ##QKsSc|x{%I7>+Ah>6r5h)hsI8s*YAYR3|u1Jm|ahX6|F z{Wdt?3r+fln^hIdh{E^FJw=tJKvz?2Va zX`~W5Kv0D!F`mP%!}Njq8uH>wCZVkDJE}y3`!8v17-f=I^MZ&*bh|byYHcOQHpy%hkKF!*xAOFA+s8 z`ztNp;}{9c1Q){i2|A_(3l?sAdFKua_L{G2jrJ~1p#%hS{sF`5s`pa``RP_kOHY#1 zsJ+W?+O)tDEd?vR+&T?g7#`hx-(XRof5qRdA9GFB_pX50XL#! zWKVmu6nyf|TmWC@y5r5m;96;lqx_!)MdkwODOTQhCfc>bMAmd?V2gdOSpAk!*`7X+ zVu?0~2i}%Z^0sAtbU%Z*!YhW}Y`ez;F;$n7d^4qHoUS8_EK`IeEwN0IAl($EGK`J2 zeh#oqAC5(;3O%!e@d-tXcxwaF(AWv-CIPgBB*mjm|LV7Q9%BvVaA4*oQw3%5@r-#VCZcd;msQ^mo-f%TD_ z7+t!A0}$=sazB!Y)d z&gQ(usv&^=DYFhk*KnTQLQ=>6GuVrzRFi|{`+J{v(0+Zf(^Y-Q4DdGjs? zDW_L=%B9AjCAd<;Y)xskT6Y~=hUc1$v^&yAdU|z2J|Rwi6k^|kuf~12TYW>|Dvzj4 zbAby+o<*enwDGBvEXFs(@)xNh=k~Mu%~Dh;=zI)TaCV>!2TLP3WF;T2R#Q>e4>-Q|jc*U>+@HLwK)c|7v%$aF z{uInET&7_CvuKIS;QWtSiz>|e^XVngWooesRWK8^AlkO$;LfJ_D#0zias6tpHu@bE zIHAu-zEK*9&UDx_gfp0vAR5I4%kbVF;8NW7f}3gW=dszC|mC}K5TJl z+Q8n!{hNWDoAj1Qi8<*iES9*DVb1%T9R%TY?1>Fgh7_1VhXPw_LiUQ&GgXcOGewg7 z_dbArMs+76EJNH#2q^!0GXRsU2O^7om9Z=q!j*T2<@mDr3J&hlH!|+mt(o(UP_rh~ z$|#U3YF#4bGy=wbgXO%LjTUwNHGkcADDA6|gd~%c()mJ~Ur;fw!e*^A*Mk&(E4-p8 z-j@$pLi%k+87J#Ki-MMZ+1-VnXOKVr@7z&u+g*43D!*P_K7}MrYoj+m5T!mnpT6H+ z*L%Lc{66*_)zxD8Vm={Rc@FY}I%ASEdC3QhgmU%dCY!~&KiiQ(P#o;jv}sNa$k?vN zt)T{ipdoxaAx$zFXK`|w=CWL^oLv|EgvX+; zZ{GmQBu495%O0g|FPPG7>hdqY-~fM_El25=9Y)njEqPM-=zqr|c7^tG6;!}`KnQ1U^%fB@Kd=YPYz z|I2v)&omh>Kk)jNLu=4*;K>%?mfpj9TlJFM<}HWlBtD$%9#(|ubn|m3okj(Gm5rCZ z#uH<2vN%;P1@3vQVY^Z$ST{5!xH@v^=aeCUkVS}d2VPM~WAt&&4@mK%mZ;N-xE>Mn z2#j!J4KdLXpY|FjE!X$=hyMZ*gvkb@78YG!^L}2pYlV=vFYo(4V@T~|k6Ma!nOsfL z%W+XL!phdu%&<%HvdM?QD|mZ=s0$=-mKE}l+l$wVs=NY^JPC&^?^bzYH2AP9(_ zKi%q*IqA<=`)_2_lr9>PPn9kQbR-=k1=U5s$ztDvV>2EUo>Y_VIo7-?;JE~2RrtbwVf+^gvO3UW+<=&nHo`4l-NannLVg{k-7 z2)X~HG_}e+T9kF!n^g8J0+UlK6T82r#gmgGz3xqyUEMSSOb3b?WFgO4E}Ehy;utF$ zec|5KVU^QVR>)M6fPCR_@|#>Pw}KPZ%fgk`nl=toe#GcG@kL?#?jtpMVv&h2zVM)c zDFw>?0DGjYA))u@Z62r35pR_H`(M^rw(A=un(ZbP^`}k4lq)}Z!a9F{WW!dlE(hK! zCJtia8r5xvZvBaR<>YL4*e9x?BAaoyClfQ*d{L3Yw0ebU7EF2)e4Hh2G;16o^mU-= zJf?}GD?s|JV{?(QFT>(s`*JCAW}GBAVAttAv$dqOpM^tzj*v0G%-Qy5#jv=Zt83`q z{NMs|ulRhRxhCsHcI{cDDDnjMCGTtFb)PM9*3-~$z5tSQM7?TXsI;A0K7I0tFm^Ih z^qEBhzM}o(Z@7*^48DIVSm-2jP;6tW5PGj5)Kt!TPtC5J6Z z$eG5R((P1)=6Ml-brNA*4{FdFEtrHno{3GcpIJ;_Yea~r&GI+!8fyw%CAXp` z5@miwTHK!TQNneYZ8;i&%my<-T_F}036dx*^`@)9!&o4Uk?i)?XwZD2&YTaBKhO4| za_ZyZb~sUBF5A3g+giuJfEl=->F;L1$8k?-ko z$O_C^g!G@1c6QW*kfGOIrTZD6M4Ny{HZ%-({> zT&kqeEQEFewbpoUB*k>BMj`Oc5ipu`Sx=h)HN;*A6{ZHhA3KU)hjPap>CV%BFCgiM zkLkeM>$j<4{=>(=ktB1MPpa}X8+XFC!i_xXJXm8|0)L?oy4ECcqL(@w#DcBQSG0&f z)#y2%|Gim*{k?Y-NsS6vmnqsuPtIgG2ddm7 zf$AuL2Xo6tkOFcQpzawP8|zB_5k$8wx~i&1YZPpaelS5QO4<0z10>RC{A!*Wny3w^ zg8Kmb_eV1|V!) z+@53P0{}W7`{Rdv{Q7lzu1IV|qYRFBD}jvlf8DGpyGc0xpKAd|_zV%7K&14%cgxtY z{{N+~{}q6#q;hfq0ydQW*JL-L=fq-#1nc>cCH!SPP>J*5Sb=9JX8d}*bDNxKsoYj- zL3lVIs1~HB?XbDkoK#^S9{U5OH>kLb^j+1%tLI5$DwQKDVKg4zEU2XA@Y&M`2gQ6E>;@|Q1-~A) z9*H%8(Pvhd72b^h=<|a@_u}HlB8Z+YS^)4L?PWMQJqxpd!a)G-d)YvEq)cPUxW`@m z+wop!hPw^=xeh_UNLR;i;%Kn_sb8FsKK#r0;j}jTtWY>L>T~aP58}n%GapE8n9|Pj z9UWFw9Tz8Bl8|o0t|oYB*bdNnG&mr{syJ&`$E9J>U--{g8XOwx_F6XDkITM=fMx56 zWFxrTJJ;-qxCm>^LcnN?wRhGYWqwv#*009wYo__P=MUdk0ydt;9J)+cdv^BAs+jb& zsfoc`=3x7)iBD{by+HQ&x-2yHD=@!Ay!JgfSo|pXzD^q-k#PT872k9|X)SNa#OV0M zbg?~R2RZD>9PLZvV2n+1C=p;;slGlQ@t-V9+@j@PjEcUA{V9Q0`EQmtvDB3N=Svo06mHZ=#Eb3Gi{ zTNo|2Sq-_*h{=EYt3BWBV!#IjmYP?7Raf)oKlu=r$DMGiUgLI|7O8-VznJEW=OqQs z6T@-(dQ!8Q7HW7}X<;%g*JrzFnBGgDk~-(pcz%M)J-_`Y3ufblX{WsqIl7zo(F+;K zfM4$q86pnHw~Y_>NracnyF?D=yk&1q`gfuZB#hJ1e2-OFTdNZ3sCxXfE;y3H;Cq3Y z5B}}|sp9KTZ82<;-69juJZHYhf5K7P+v2Yxtf28j@&VO@5?x`2*9(;931^rZ*RW2L+b46bzApQ>{*ZV`4I+fgrkO&u0SPzCI!V~%IEf1 zYFmZfZ13VzVnbiplCiLjMMaUK@c?a3^3fC2aaB`?k-VDN(2Bsp93?mDQRE#!!IV#8 z;fqPKw!Tl`U3U2==bSeDY71>aSp^oCR-bKfv{rX`Oh+8vRv7})p-^DU1`9Kp%nGYMvQDoP*`gM zh$VHni;b1$j{83AHmw0If9~(C?glN30hKF1r0GAs4IA2=!4#DZl#gCY-%=G5R z1TnWatGK{wtX4dSV^bLyT9*JvX*Tsg)AQ4H1epk_%-j(weefy{(ZEP%6hrc>43?c9 zW?*+|7n7sEe)I`{m8(_eGSmSUvFtS2AO}@Dhwf05#ZuwC_}$>W@gwoz85^F3T0M*Q zBt`g>$I@xJIU1PWkus}GlGwA)aaCOT(_g~Ci^1O4#5-%DE!|HfF9dIfeS+L2Cp2~j zt(iEyWz5y87e)u--8fBFR$RE@_)=Fa?a2pi19qZ20~6900piwFYZK37a5f3*oEHp+ zva1K0#=h5a!)E&1F5V80@zNJRgvo7`Wq*)slDJyZq-@gb6Z)Z$(X5uwaJZFjY)+B-_+|Q+5Q9I)GBMa*@Q(& zHwm)jF{Wy5_Y;GD12#rx!rI+?s?yM`^GbXdYF&p9G;DomR$~lGO zn9K z1adzhSDVJmOsf2kH^+e6OzMKKr-_Wbb^WL%6GciCL)2HBqG|8SSQ~-3vi=-2J6+me zb8nT+?Dn>T!sqf-8Bj|XMr(m)J70#f0&!pNF13@)`Hm6A@gg2{n=}%Fa$KSN2Mw@5 zcRR@QHqf%G&VFTssB}e%1g9557?UV*JamWUm#kNVLrd^pSck35K_^R`^vw~i*Fy1g~##m>FzL=F%~W3x8VW{bZ}7pK9-J| zk{T#2!S5`Lw#I@N%^IRkVvI7*Zr++HhH8&3RIiN$WEerH;$7>=1q9d;D7({wQ)yJA zG$%{QLv~$Yb?6~FlhI6<=GiV66wYdP{vpon+_8Y?x83VgG+!LQ1n48NQwTWbjAk4e zd`K2e>5ix-YJko+Zfcs$AGq4?2f-J-!q-D@+n%qrn^_ieOqO{S2^^(f&n z`_p0Vri)`4nVRa#F-X-(>5L7m(Qg^E8{noc_xij&p-nCFDP_soQO$kEfTJN>(+ex5 zgj{AdPQAc9)y(tDK26?Pqn4cnSf9ZRNK4}?phG#*m&d#G>;&eq+k8B?gKZFV);-aD zJ-V&L;CED^#2EZL1J&Pn5$Chub6QoL9`C+hocJt>#|(3rpvuD%j=CfJdNROuPRRo` zImB9|HT0niG)yada)t<7NIYlZZo^~w<4|I7*&2n5{3W2c{VKqj*3*h$ZxKV^px5+X zz`&{4#}W=!xa7ZCb4pmA(XoNR`JD0DmThk2VEOOd zJ%lNe8ePOR7J8mL5A>3!a?(xbAxwPW;u%T^W+0>_O6vZyK?JV9(}L)JsE%Td zB3ICRxX7suk>#>cgIL|u$#@i+4CollhWAa6e>LfAnV#tK8M*dMAgP+&p|QV?B4vyn;O<7oZAHQ(vmtM<$&*L4C&yk{l4gP@NVFA$w z`nxEW-CfyDicWmQ&ZEQ%iHC%OndsUHbu^gpz$r{0fD2z8PlDG>j}AyAkt0j$*>9`2 zqVUI_kU-TS#PkuhGQyDYvKLLlu*Oa`Yh6hPgU=*VqYM{Ju=J_VQkEB~Ti(@bs8<6X5lpgN3e)Pxhclb6O3CC1 z6++bS>j&?nskHwz2>$sPMF^HFPpxvL{D~8uN?ekHSy)AuXAJ)xj&;f);8*)G-J?qg z4g&7o>#VES%mh znNQO9>B=J;uXcqqdmNLG(p6=8kou9)H=I2R)4z{mOV!G(%Ymx@%!;t_x)07zeA$uL;d24)8Aq>&EI;d z^~6owZ5FUcY=W*A^YdRuegLI=heJcbt;+j}+q~}67ld2OznPB%>b{7CTQk#WUl3{5 zk>y%TfLPjfDvKwrRT-1z=kCuLXHUM?-YIAtZIRo)xenm@N`Z*m5_-&|r_1IthfVc` zeSC+v#JPxMZ@xC>B#LV`MaJ)soQM%!e~S0m7tJ-u+{Xluo#j1E>H32jh$ICXrwaP_ z$Y3F`y2!0<^#h1LLADHW_0j8jb`nC{L%l`y%hXJklKUWJb18r=r9v0wGt>GfLRMZ* z1+!>p!x}#41#jhzK6fIbS_9Vhg37ZUa{N%q!89f zirA;VD@4c41S$fWod0XG#=_kHY!m}Sijf4`t#&1BVK5K+O<*{?(-Cw_CXYdb|#e?SJY@V!r zsUbChyicY-77I%ucNb2qZ@{V8F!y>pQeZ<;dvUT;dL)2|8vrFfWD%IsZ-T)LJaF(E z>#GTob+{ZvYEO0AR=yXr5479b{GxUJCL&W_ZP3=tBrN3dBhjJdGVr~}(yE;v0~GQ= zbb|5ky5LAjea-&c=*d?KUS!Lj_(8$7Fy8g0fc7SDN=U%gn8{4-zMK*}K}L6Tyy8nH ze;q?q+Eb0Do|9X*C9#*cPu%za4#G+x(LgnSu6 zlFcJe9&&s52ya3K@7s1nB!_+F_IBZ1_xiaP($G9aBjnl*iIz6nOY`-MO45<-^P)%+ zb8`(zA!QFU7FKv7Eh+RO?v8MSpEU#Z;YIGYg?HN|-{n48(Vv=c0F zU6|i)0l(BU7kvW8l_Rv4DAK<}>~s?&{ne+7W577sig0|#NbE8*>`ZeVLb_bph3dAf?@%o)XwzzYHKy^HHFz}Ed)*LWN@=Eg80oxwP?sgJ zo3XhXCM%8Rv-xvaXMYM^@WxEMUES+rn-?=I=uZ8H<6?crxmU3LbeEeV&7H~#hLole z1=&RCHSF>LDN0mHcY$B0=XiZ^tRyO8;(aMZ<+sqh!H1!MHgAnjoFTiu$cV-8T{^Z) z$BCLJ-^@yqq}h6wX2K2&+%%0h0+ySc`rVJy^@+#lJj1g@ShzA+LP`4>GId*ia`AAl zioF{V#6yd{7Z2_X9c0Ov6}`LY4N^xC>6q`@9ZP0JyRFT47xO1 zCc6haj}6;HUd`wG8$`U!aR2F4yQ;aWVeoe}57`GSF&kR;Syc~MjKyA-a|tpMTpfQX z!O{+5QLvvzZ65Y*P3Ys?Iq8b)J6}6TqlFJKXC~uK7N{Mhs zo}e&y?7BL5PU_BN$D`MH>(}Ti{O4e{15+cpt`%HV#y-(rQzL#O^T8LQ8~MsQT}vF8 z6w&3eaQ1_+==s#c`FzE&x&qUiJ<+n4^v|B0U9`m))vbuZEq|G`T#U)^?P6{Yg}fY0 zkvHlKVeg}ScJa^ejH~|PJzG<5vES*bT3Zn*GB$3@H9(!B_UA-wh5Zj#AMBybngqo$ zmuqWf2maO}mCpWq8w()V=iq#I#p0mB`X5^hiE1dXddPlKiLpRHP;ZdtHCxTmwP=O| zJ!Uw4tut%}_QsA-`oalc$!)s+env}xrQ_cppRId_DC&s#{cXw-qzQb^gXix=Tg1h# zYZvtz8eCUr!+q2*e-}mTz!xu;_A;Ao_reYtsWngd{4d*mYDK`{+6n8^mf&Ua5YAUO zwo_Qpu%&hFp`}*dD0GJU2-z|a7*^41Ek^xhp?RF3Tmft@aYwJv1 zvzDB=Cnp59K7gx_W<)dRGtPgb_96~Pw@nWgPgh5rX*l0#4#8_sZ$K7s5EO6O)x*On z$#%49VIgn(Vx=hD?EJ=O4e*^@xdLPzxeua=R!C7mC8EY7^vbggZqYq6a{p9aKpP>N zuU6l@_j9H=MBL5hAyepUqn@-A*2srZI6(@j!B5RjW^*ReCpwt%Dhsxo?rAzjA(vyf zgue6d&G^7L=_Q481v15UGx<$Y=q8Vbq3CF{WZ3n(G-YfKYe)yCc291G`}#e-%|jNo z4gzV5F=b==nMO&+;~g+z$AFDGjA-iI;Z1-UTTMwyz%q+!?X~r!Sg3BK5IP;! zXH3_8v2{eX*4rIV5_r;=)$ufxw9Uzdzfx|D8(#Fw{3SiiZ$YUJavqLOCPMczL4BNf z|EddiHyF`g4o#O@PuRBWJI+D3Jzl8JUHD|q`1c=X-guROlQHevml@|b&3^h~Rw?I% z%X@ySUrh^xrxdw#lbY(Cw_>qLklsI&aR?k30_?`OcOb1<#0ifZiuF;KOZ^WAf_&F} z6ZkPb9lJrBO^2pPX2s*ntwV>4mh%mnlKWKB{sTs;{IvcJc5{*gPA?k|_h4!XNWTS) zi@}s%f?SKMN7nLzrZh&g=c^wq4e5Eg!-7_*g&mDbW;m<`dE1#qD;I9_O{m}a?rZGz zTG2T7FBk=FxNw|k{$Aqm3l4OEyovb9X$iN6eYY_C`Sv{X>Sy5Zt*KK~&B}qrmlW_t zktJot&z+7$dSo$U$1Kq=0DAOqMIZ5%z`)uzdz?{|>_ z4zPe#Ux$&{x{P3y^?0$_HG5AdR834nh5jwnBM-8k+xHfxI!c-Gf>_^EN*_3s7S6eei(^sbX)2^_UAK5|Y$WKD|- z_CEhQoicKMvKRuUNZkgM=)Pb}4{P(^=1OfJRWaWBTgYhXEASAK>+t5@i2sHWNwrEf zm(8?fdCQw3qwDd7dDCY(1M44>9Ik{g;I_$EiUL`Qb-!|BuGPm!jJWT-5C0`r*^lxa z#^`OoNnsec+P%K#g=+FoEAs9!(nK*f+qHfX3P|w{1-HM3jIp>=tG)WQ`t0l{`+3Oa zvTs{->`?`(%iqSs`pq{5esg#pB}}f!VSOuefolbJv+~pB3DR<1E#zYq@C!bLW+oTw zt1+`c57>2OLtV>v-^)@K8}#P7fhb`Dq7YYU>Gw;0e*f#HD{S%0@ofgbIg^)G;)-}( zi>^5fd>YcWZ@b8;<@jC^9SK*eEKQF;GWs_8?Xd-Y>dY7njm?UdN zX8n=fiSL+>UPa+p{U)LCd0r{EoKw0Mm`n{=H+ONftWPLF5HS&XSJ8IwGV2F@)Z>tf z$29mIWN-mX!k6yy6k<7V)V3t&k-H;%`eid2Myn50W4!JMjX6jM?(P?4WL7o5Fvkul z;yjTOVfHNt;Q*L6M$hO^qAI&y<6L~3GV7~`gLJ>G%Q;C0&t~;-U35yXoXy;`DxZ=* z!L!+o3v6gO8!aE@%%H{cD`fFYEmC$v9WqUDTj<|sc_EK4*j^Tw=&yX&ApQFg2?EJU z&@DW=zczzUn$j|7I6+nZn{^qonrdsE7Zz-%Te61mNiHf=7)qntSvPRYVL@bAzzn z?^ZeO_Kbp_CB`%Blxkd4&~yjs3+LkxJAM!*Boeb8P3#E#qoTUZ z)5vfgUlqah#Os%WzSx?~iOlNf;txhg&DnzQ+Xap*?U231M!i24p#&!`##QFKagDs% zl|eIQ*%#>e*&yNIR;zW%Y|Z)MJ3g-kU(?@J9N?U9Y$+?N2-Xi?(L_;4Fpsrg+H+jn z7&cD*(BWg0ph0uaE*16h(0U#xvc6M_LezmO!%w?R^nQOL4^3{H*%qI;_VaJ#6A^Lf zy~ol+^OYPj*77u8u+^E`v#-~}CY8^o^EX%}z3PS3y>yH}GbGPnNu^)jVk#gr=vZ!j zeBo$}Z0FNQQf6~*;o4AYSvBGs5fOtJ+)d>T(N)7!TbJ^=hBrh_ZxYotA&&6q)SDk1 z(XiJw{>Rw^3rOqSm#lE6PXGK+sojzB?@Y1p=C#~wmX|^ll*N&4@ z8T7Hc+elP@tgKW~_@vp_4}!`+&0SOL?!xRh_1!myyN3KAW0s^%1ypzIn|J=Gl0vn? z=#(5>XVc0)3Owx>YU*8%MP*(ulMj^l$#=P)o^GVSiK3U-Y9OJUO{uiom8+A%Kyw(W z9nps_u$`*CFPQI^Lthv%PR$CrQQf3aZZgOB|AF=lNIXL}-ZS#XpuEe)R{OZ)4#-1ZDX#iBXWVbJqr z%h2k6qLQGBkKkXEpXMf$+d%Ae6i3;7;8Gix6wMbZxp`KaW8b8^o@v5vtlB|jM2)?l zu0{E${ygZG&>0>)BudqDGD8lDu3lNJse>sfD0il;88Q=c$-F|l)mt93lM8jt3|a}( z*frf@QdDCewbf)`8FS>Z8yqK#x#)d(Ey_2)OWXz864UU$xRb2i%bf8+v3N)xPm5w~ zZNDqDP^GZ4zSB|QQSX)$y27V<|2&(5C-~|n`qV{cfR{80T#^(+DjUHhU)cZVHw~>3 zD0;Q76sLOuDvH`XJcGz4)0OZ( zdAdcEs2xjoU8%y!*16{;2$5=R0yM#n+&uJ-5>D0k;=1_T)GCQo4>xaEnk< zolhX4t2q8Z0nB(ZqnYpDa{e;Mu^C)-KEgwW=hHDWD`*{2Xq6Pa)(}TZ4jlgFO`DJOr<9j6 z(|j=slo{?l#38^_d8qaL2q%|}`QyjRF6YV}Kbv_O5qxY}k)-D*m*)Fqq6r7 zhbwH`y`_kjAcPP>^xiu`j5>N3qC|9}ccVpgqL=6)3`XyrAbO2aqIVNBdW|~YlH+T8 zKYQ=vef?)<&CK1_y3cj3>-wF;$2-UKEMw7&6BcjI>!>TZ@IqqQM%7=45Iyap_v!jZ zk>hg{l3|o1>5bl1t6;}T55i_-NdUEWeEjQlmRBmjWZ1Ye)nT*%PDOfm!p`27JP%ms zQR(bX?&;_!H`44`%43xZW(SilYP|h}qtz+B)QzRxQv;!RQUSTB3PbZ;Z5Bx0o?KAi z36eh2X(>Anbg&}@8WHBM_hH|a^W67jt63#VFU{-`y={6vO1G(K+)N#;VXhD3a?nux zY^>JVi{5&SWErR?1YwtS&ou>{Pesi@x=caVBLzubMK0)=UDb@;->FGOg!z|BppyM` ze1?eznvYJog&uMdlmAkRYwOuU{Cu4sP;SC+vYsayYM%S|qn|fb% zEPrLWMY81d7#b5!@lgqSYO;+4v_KgnKp5XD`o-Rz%L_}If?Tf9>U7#DF z2Rllxr8cvEBQpqz92Ks?6xJCIgCWM{cW>G_U%{bz1jkb%kx>ZG{zU*7M}D5%?7 z>2JEqJ)&R*R-1&08KEo>pUPEQpP#oxJ}Bo&9A&;TK5}*_(zVJtF84;CRz!_vk&Thp zJSGc3oh(pW4f~B~_^*byZ)Y7hx1LX3CzsRsc#X{o$R<|oTWGZf!EXA{9zLo2cL%O! z3AaKrZK$>T?NW3Y+wIQtmG$+Dqn6PV6Li<` zR0@|~<9JhzG(y^mV%BQD&Jat_Q}TdQEXQ(|7w$GOd}cr1Uo0P|Ko^C@#Au8u4S7-B z-*&HASaiikb~00s_Xa)Nqp3?DdRE*tdmT+0>rR;kcboDZW%0AXk9*N)V_6+JJP3i3 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 literal 0 HcmV?d00001 diff --git a/content/learning-paths/laptops-and-desktops/win-opencv/test_image.png b/content/learning-paths/laptops-and-desktops/win-opencv/test_image.png new file mode 100644 index 0000000000000000000000000000000000000000..abfca30f56988964de01168d0cc4622a2cf601ec GIT binary patch literal 493 zcmeAS@N?(olHy`uVBq!ia0vp^DImr~Kr+O|BMATPD>#RJi0mtM##m zaHd$FvhR{$izy`&{2m5ea=g{D_@vQGK|O`+CGI;K)=ZRp$h65#swMjbQ>MT=MeZez zJKA(6gg!L-G-VCf^oh$;LU;7osIESg`b0BQR8QIeUpT}km|jwjak%EuU%(itoO|eE%FGh3_DOt~G-bT3JT@1| zWGbCKRJf$`3pe{jJBXiR4;^1JJ4eJ$S^7lWL*`BGIpT4uw@-K{s)^odYfKly#D{fY7?0gRSCghCk>4|RqUZBwsI72yR&BZH@_pUXO@geCw?NzOt5 literal 0 HcmV?d00001 From fb1124ba3d1cfc9f49caf6f695dda82207c36339 Mon Sep 17 00:00:00 2001 From: Koki Mitsunami Date: Fri, 8 Nov 2024 13:40:42 +0000 Subject: [PATCH 20/87] update knowledge check --- .../laptops-and-desktops/win-opencv/_review.md | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/content/learning-paths/laptops-and-desktops/win-opencv/_review.md b/content/learning-paths/laptops-and-desktops/win-opencv/_review.md index 9f0dd17c46..4903c6186e 100644 --- a/content/learning-paths/laptops-and-desktops/win-opencv/_review.md +++ b/content/learning-paths/laptops-and-desktops/win-opencv/_review.md @@ -13,23 +13,21 @@ review: - questions: question: > - What is MSVC? + MSVC is a Microsoft compiler used for building C/C++ applications, mainly on Windows. answers: - - MSVC is a tool for creating user interfaces in web development. - - MSVC is a Microsoft compiler used for building C/C++ applications, mainly on Windows. - - MSVC is a library for machine learning and data analysis. - correct_answer: 2 + - "True" + - "False" + correct_answer: 1 explanation: > MSVC (Microsoft Visual C++) is a compiler provided by Microsoft that is part of Visual Studio. It is widely used for building and compiling C/C++ programs on Windows, offering good integration with Windows libraries and debugging tools. - questions: question: > - What is Clang? + Clang is a compiler that is part of the LLVM project, known for cross-platform support. answers: - - Clang is a tool for designing animations for mobile apps. - - Clang is a compiler that is part of the LLVM project, known for cross-platform support and detailed error messages. - - Clang is a plugin for adding extra features to text editors. - correct_answer: 2 + - "True" + - "False" + correct_answer: 1 explanation: > Clang is an open-source compiler that is part of the LLVM project. It is known for its support for C/C++ and other languages, cross-platform capabilities, and clear error diagnostics, making it popular for modern development needs. From c9517709feb5eb03f9bb570c875b91fcf3a84aca Mon Sep 17 00:00:00 2001 From: Koki Mitsunami Date: Fri, 8 Nov 2024 15:00:05 +0000 Subject: [PATCH 21/87] update image files --- .../win-opencv/2-1-build-msvc.md | 12 +++++++----- .../win-opencv/2-2-build-clang.md | 13 ++++++++----- .../win-opencv/msvc_include_dir.png | Bin 66647 -> 184133 bytes .../win-opencv/msvc_link_dir.png | Bin 62935 -> 163445 bytes .../win-opencv/msvc_project.png | Bin 31413 -> 55115 bytes .../win-opencv/set_path.png | Bin 30462 -> 34217 bytes 6 files changed, 15 insertions(+), 10 deletions(-) diff --git a/content/learning-paths/laptops-and-desktops/win-opencv/2-1-build-msvc.md b/content/learning-paths/laptops-and-desktops/win-opencv/2-1-build-msvc.md index 8773c603e8..3a3c819e9a 100644 --- a/content/learning-paths/laptops-and-desktops/win-opencv/2-1-build-msvc.md +++ b/content/learning-paths/laptops-and-desktops/win-opencv/2-1-build-msvc.md @@ -86,12 +86,12 @@ If the configuration is successful, a message similar to the following should be [...] -- C Compiler: C:/Program Files/Microsoft Visual Studio/2022/Professional/VC/Tools/MSVC/14.41.34120/bin/Hostarm64/arm64/cl.exe [...] --- Install to: C:/Users/kokmit01/work/opencv/build_msvc/install +-- Install to: C:/Users/username/work/opencv/build_msvc/install -- ----------------------------------------------------------------- -- -- Configuring done (97.5s) -- Generating done (2.8s) --- Build files have been written to: C:/Users/kokmit01/work/opencv/build_msvc +-- Build files have been written to: C:/Users/username/work/opencv/build_msvc ``` ### Build and install @@ -111,9 +111,9 @@ The build takes approximately 25 mins on Lenovo X13s When the build and the install is complete, confirm the shared library have been created: -```bash { output_lines = "2-12,15-22" } +```bash { output_lines = "2-11" } ls ./install/x64/vc17/bin - Directory: C:\Users\kokmit01\work\opencv\build_msvc\install\x64\vc17\bin + Directory: C:\Users\username\work\opencv\build_msvc\install\x64\vc17\bin Mode LastWriteTime Length Name ---- ------------- ------ ---- -a---- 08/11/2024 09:03 43008 opencv_annotation.exe @@ -124,9 +124,11 @@ Mode LastWriteTime Length Name -a---- 08/11/2024 08:50 26391552 opencv_videoio_ffmpeg4100_64.dll -a---- 08/11/2024 09:12 56320 opencv_visualisation.exe -a---- 08/11/2024 09:03 27179008 opencv_world4100.dll +``` +```bash { output_lines = "2-9" } ls ./install/x64/vc17/lib - Directory: C:\Users\kokmit01\work\opencv\build_msvc\install\x64\vc17\lib + Directory: C:\Users\username\work\opencv\build_msvc\install\x64\vc17\lib Mode LastWriteTime Length Name ---- ------------- ------ ---- -a---- 08/11/2024 08:50 434 OpenCVConfig-version.cmake diff --git a/content/learning-paths/laptops-and-desktops/win-opencv/2-2-build-clang.md b/content/learning-paths/laptops-and-desktops/win-opencv/2-2-build-clang.md index 58e8b81bcd..d8d8d7ae53 100644 --- a/content/learning-paths/laptops-and-desktops/win-opencv/2-2-build-clang.md +++ b/content/learning-paths/laptops-and-desktops/win-opencv/2-2-build-clang.md @@ -69,7 +69,7 @@ If the configuration is successful, a message similar to the following should be -- Host: Windows 10.0.22631 ARM64 -- CMake: 3.28.1 -- CMake generator: Ninja --- CMake build tool: C:/Users/kokmit01/work/venv/Scripts/ninja.exe +-- CMake build tool: C:/Users/username/work/venv/Scripts/ninja.exe -- Configuration: Release -- -- CPU/HW features: @@ -88,12 +88,12 @@ If the configuration is successful, a message similar to the following should be [...] -- C Compiler: C:/Program Files/LLVM/bin/clang.exe [...] --- Install to: C:/Users/kokmit01/work/opencv/build_clang/install +-- Install to: C:/Users/username/work/opencv/build_clang/install -- ----------------------------------------------------------------- -- -- Configuring done (244.5s) -- Generating done (1.4s) --- Build files have been written to: C:/Users/kokmit01/work/opencv/build_clang +-- Build files have been written to: C:/Users/username/work/opencv/build_clang ``` ### Build and install @@ -113,7 +113,7 @@ The build takes approximately 25 mins on Lenovo X13s When the build and the install is complete, confirm the shared library have been created: -```bash { output_lines = "2-11,13-20" } +```bash { output_lines = "2-11" } ls ./install/bin Mode LastWriteTime Length Name ---- ------------- ------ ---- @@ -125,8 +125,11 @@ Mode LastWriteTime Length Name -a---- 08/11/2024 09:23 26391552 opencv_videoio_ffmpeg4100_64.dll -a---- 08/11/2024 09:51 51712 opencv_visualisation.exe -a---- 08/11/2024 09:50 20207104 opencv_world4100.dll +``` + +```bash { output_lines = "2-9" } ls ./install/lib - Directory: C:\Users\kokmit01\work\opencv\build_clang\install\lib + Directory: C:\Users\username\work\opencv\build_clang\install\lib Mode LastWriteTime Length Name ---- ------------- ------ ---- -a---- 08/11/2024 09:23 434 OpenCVConfig-version.cmake diff --git a/content/learning-paths/laptops-and-desktops/win-opencv/msvc_include_dir.png b/content/learning-paths/laptops-and-desktops/win-opencv/msvc_include_dir.png index a90ae7c1d91762378bf90e1b44289bdcf2861ba5..821113407476c112aafc1953f6b6c6a9b2e60016 100644 GIT binary patch literal 184133 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