From c6235093e1cd8c8aec381109affed18d0f89abb1 Mon Sep 17 00:00:00 2001 From: Kevin Date: Wed, 18 Mar 2026 02:07:35 +0200 Subject: [PATCH] completely redone menu now using widgets instead of QML --- JiboTools/JiboTools/.gitignore | 84 +++ JiboTools/JiboTools/form.ui | 643 ++++++++++++++++++ .../JiboTools/gui/Assets/Jibo/Archive.zip | Bin 0 -> 65421 bytes .../gui/Assets/Jibo/JiboFaceForward.png | Bin 0 -> 49634 bytes .../gui/Assets/Jibo/NoJiboConnected.png | Bin 0 -> 15979 bytes {gui => JiboTools/JiboTools/gui}/__init__.py | 0 JiboTools/JiboTools/gui/assets/jibo.kra | Bin 0 -> 187475 bytes .../JiboTools/gui}/assets/jibo.svg | 0 JiboTools/JiboTools/gui/installer_gui.py | 17 + JiboTools/JiboTools/gui/main_panel.py | 318 +++++++++ .../JiboTools/gui}/process_runner.py | 28 +- .../JiboTools/gui}/terminal_helper.py | 0 JiboTools/JiboTools/gui/tool_runner.ui | 148 ++++ JiboTools/JiboTools/gui/tool_runner_window.py | 123 ++++ JiboTools/JiboTools/gui/ui_loader.py | 34 + JiboTools/JiboTools/gui/ui_tool_runner.py | 124 ++++ JiboTools/JiboTools/gui/updater_gui.py | 17 + JiboTools/JiboTools/main_panel.py | 18 + JiboTools/JiboTools/pyproject.toml | 19 + JiboTools/JiboTools/requirements.txt | 2 + JiboTools/JiboTools/ui_form.py | 444 ++++++++++++ gui/__pycache__/__init__.cpython-313.pyc | Bin 148 -> 0 bytes gui/__pycache__/installer_gui.cpython-313.pyc | Bin 2270 -> 0 bytes gui/__pycache__/main_panel.cpython-313.pyc | Bin 3658 -> 0 bytes .../process_runner.cpython-313.pyc | Bin 10297 -> 0 bytes .../terminal_helper.cpython-313.pyc | Bin 962 -> 0 bytes gui/__pycache__/updater_gui.cpython-313.pyc | Bin 2266 -> 0 bytes gui/installer_gui.py | 37 - gui/main_panel.py | 59 -- gui/qml/MainPanel.qml | 168 ----- gui/qml/ToolRunner.qml | 142 ---- gui/updater_gui.py | 37 - 32 files changed, 2017 insertions(+), 445 deletions(-) create mode 100644 JiboTools/JiboTools/.gitignore create mode 100644 JiboTools/JiboTools/form.ui create mode 100644 JiboTools/JiboTools/gui/Assets/Jibo/Archive.zip create mode 100644 JiboTools/JiboTools/gui/Assets/Jibo/JiboFaceForward.png create mode 100644 JiboTools/JiboTools/gui/Assets/Jibo/NoJiboConnected.png rename {gui => JiboTools/JiboTools/gui}/__init__.py (100%) create mode 100644 JiboTools/JiboTools/gui/assets/jibo.kra rename {gui => JiboTools/JiboTools/gui}/assets/jibo.svg (100%) create mode 100644 JiboTools/JiboTools/gui/installer_gui.py create mode 100644 JiboTools/JiboTools/gui/main_panel.py rename {gui => JiboTools/JiboTools/gui}/process_runner.py (86%) rename {gui => JiboTools/JiboTools/gui}/terminal_helper.py (100%) create mode 100644 JiboTools/JiboTools/gui/tool_runner.ui create mode 100644 JiboTools/JiboTools/gui/tool_runner_window.py create mode 100644 JiboTools/JiboTools/gui/ui_loader.py create mode 100644 JiboTools/JiboTools/gui/ui_tool_runner.py create mode 100644 JiboTools/JiboTools/gui/updater_gui.py create mode 100644 JiboTools/JiboTools/main_panel.py create mode 100644 JiboTools/JiboTools/pyproject.toml create mode 100644 JiboTools/JiboTools/requirements.txt create mode 100644 JiboTools/JiboTools/ui_form.py delete mode 100644 gui/__pycache__/__init__.cpython-313.pyc delete mode 100644 gui/__pycache__/installer_gui.cpython-313.pyc delete mode 100644 gui/__pycache__/main_panel.cpython-313.pyc delete mode 100644 gui/__pycache__/process_runner.cpython-313.pyc delete mode 100644 gui/__pycache__/terminal_helper.cpython-313.pyc delete mode 100644 gui/__pycache__/updater_gui.cpython-313.pyc delete mode 100644 gui/installer_gui.py delete mode 100644 gui/main_panel.py delete mode 100644 gui/qml/MainPanel.qml delete mode 100644 gui/qml/ToolRunner.qml delete mode 100644 gui/updater_gui.py diff --git a/JiboTools/JiboTools/.gitignore b/JiboTools/JiboTools/.gitignore new file mode 100644 index 0000000..ca8b61e --- /dev/null +++ b/JiboTools/JiboTools/.gitignore @@ -0,0 +1,84 @@ +# This file is used to ignore files which are generated +# ---------------------------------------------------------------------------- + +*~ +*.autosave +*.a +*.core +*.moc +*.o +*.obj +*.orig +*.rej +*.so +*.so.* +*_pch.h.cpp +*_resource.rc +*.qm +.#* +*.*# +core +!core/ +tags +.DS_Store +.directory +*.debug +Makefile* +*.prl +*.app +moc_*.cpp +ui_*.h +qrc_*.cpp +Thumbs.db +*.res +*.rc +/.qmake.cache +/.qmake.stash +**/.qmlls.ini + +# qtcreator generated files +*.pro.user* +*.qbs.user* +CMakeLists.txt.user* + +# xemacs temporary files +*.flc + +# Vim temporary files +.*.swp + +# Visual Studio generated files +*.ib_pdb_index +*.idb +*.ilk +*.pdb +*.sln +*.suo +*.vcproj +*vcproj.*.*.user +*.ncb +*.sdf +*.opensdf +*.vcxproj +*vcxproj.* + +# MinGW generated files +*.Debug +*.Release + +# Python byte code +*.pyc + +# Binaries +# -------- +*.dll +*.exe + +# Directories with generated files +.moc/ +.obj/ +.pch/ +.rcc/ +.uic/ +/build*/ +/.qtcreator/ diff --git a/JiboTools/JiboTools/form.ui b/JiboTools/JiboTools/form.ui new file mode 100644 index 0000000..f6b9cb5 --- /dev/null +++ b/JiboTools/JiboTools/form.ui @@ -0,0 +1,643 @@ + + + MainWindow + + + + 0 + 0 + 782 + 649 + + + + Jibo Tools + + + QTabWidget::TabShape::Rounded + + + + + 12 + + + 14 + + + 14 + + + 14 + + + 14 + + + + + 0 + + + true + + + false + + + false + + + + Jibo + + + + 14 + + + + + + 420 + 0 + + + + QFrame::Shape::StyledPanel + + + QFrame::Shadow::Raised + + + + 10 + + + 18 + + + 18 + + + 18 + + + 18 + + + + + + 12 + true + + + + Config + + + + + + + true + + + + + 0 + 0 + 380 + 478 + + + + + 14 + + + + + Preview + + + + + + Override + + + + + + + + + + true + + + + + + + Connected + + + + + + + + + + + + + + + + + Home Assistant + + + + + + Enabled + + + + + + + + + + + + + + Server IP + + + + + + + Home Assistant host + + + + + + + + + + AI Provider + + + + + + Enabled + + + + + + + + + + + + + + Provider + + + + + + + + + + API endpoint + + + + + + + http://... + + + + + + + API key + + + + + + + QLineEdit::EchoMode::Password + + + + + + + Tokens used + + + + + + + -1 + + + + + + + + + + Qt::Orientation::Vertical + + + + 20 + 40 + + + + + + + + + + + + + + + QFrame::Shape::StyledPanel + + + QFrame::Shadow::Raised + + + + 12 + + + 18 + + + 18 + + + 18 + + + 18 + + + + + + + Connect + + + false + + + + + + + + + + + + + e.g 192.168.1.54 + + + + + + + + + + + + 12 + true + false + + + + Connect Your Jibo + + + Qt::AlignmentFlag::AlignCenter + + + + + + + + + Qt::Orientation::Vertical + + + + 20 + 40 + + + + + + + + + 260 + 260 + + + + + 260 + 260 + + + + + + + Qt::AlignmentFlag::AlignCenter + + + + + + + Qt::Orientation::Vertical + + + QSizePolicy::Policy::Minimum + + + + 20 + 40 + + + + + + + + false + + + Robot Settings + + + false + + + + + + + false + + + true + + + Reboot + + + Reboot + + + + + + + + + + + Update + + + + 12 + + + + + QFrame::Shape::StyledPanel + + + QFrame::Shadow::Raised + + + + 12 + + + 18 + + + 18 + + + 18 + + + 18 + + + + + Installer and updater remain available via CLI. Use the buttons below to launch their GUIs. + + + true + + + + + + + Qt::Orientation::Vertical + + + + 20 + 40 + + + + + + + + 12 + + + + + Install + + + + + + + Check for updates + + + + + + + + + + + + + Skills + + + + + + Coming soon. + + + + + + + + SSH + + + + + + Coming soon. + + + + + + + + FTP + + + + + + Coming soon. + + + + + + + + Status + + + + 10 + + + + + 10 + + + + + + 10 + 10 + + + + + 10 + 10 + + + + + + + + + + + No Jibo IP configured + + + true + + + + + + + + + + Robot OS + + + + + + Coming soon. + + + + + + + + + + + + false + + + + + + diff --git a/JiboTools/JiboTools/gui/Assets/Jibo/Archive.zip b/JiboTools/JiboTools/gui/Assets/Jibo/Archive.zip new file mode 100644 index 0000000000000000000000000000000000000000..ef52089174e4db361a616b7f475a28fdf7b2e534 GIT binary patch literal 65421 zcmV(@K-RxdO9KQH0000802!WfT%osJIjto_SmaxuT^udxn`8QsvJ5BF$xqE6uN@E^fxFdXcj0a=sP3?C@821EG#}KC@5rS zd3`r1C?nbbE@<3TDG4YjN+<lw@s4I=RrVZ!2(ch0DZ)7K9?l~^S+`E7#8UvfB7l2B>VRFOq6)Cd|n0~I~oRd47_lD0-4L5dua|0w?Q;zIOu zn7~xn?)~Ln?#F5aa6Cm#^qALa`;1qteeHa+bs=RwPsGniO)cRO5dpzJN^kEAF3KPh zBQ4__3rzD-G-9q4$NT%cXs#cWKY-|iDuQ(HVJ9f4-T&FOeJAj>x5I2Wdh~JKzJ3&+ z&FBgC$jDkW;}TZ_{SLFkpGxdt8_8zwo;F zg-GFU*#5&~quq%e2W|+Cn3#BCMM|C;FI>Vz5K}??i2AFN{3Zh}zh9mEQ%QJztviCg|wF@8{S&t*$-QPcRD8UTysv1XNhKvK~o0=(q=H4I&NIcTAClx{tPP2jo zL`4Wxfd_?N`)l4}qz6;ZHv_Pk?uew$!9vF+DU?mtx;1((Gke1^{eN@2B`!0S7Kq9F<-pBe($Cm*@NsmOgIL6<8 zIoi1AgE^gs04v7ZP@EvTP8RfbeR0Sh^n4yc=1F*P*vgKcr2Y56X@|z_FD3Ren$&u* zP*-<1d;jOht6JZFywIk|E#f9s>Hf%F`9RFGkp{NUs3LL|0 zVjbXDtTgw)HUo2j_h%B;c8c4f?Vv?BM1qn3=k4~B_yGzMLF1R7^HVu|Gxny;IyKG= zdEP}r53A<+TTcD&7q*U$y@WJ<0amYU04~_120OHkC#HcDkJDx2kA?h?7BWYa99$`p zNci7jBXUwDyMPf+@t8lkegOK=CIeiTC#o;22zCI``f10Pq&oQB``|m2jC!wzO?c z&qzZHPn5LF@(N*l#I|bGjVvH(DEj#)*$GoZ=9z|A$XgQxZm$UmjT+l!7s@A+6duw6 zzA;<%9sJMZfeDRac-k22$lp zkw~n)0|+V1dXA+)D+vgPDp^q-vvvF<5xMiKMY-wR1L@Bue&^wBhttBh%3dQx);0DH z4n_;BtE-iQEtVvrrrzWl#?p`~DlEHPc@)R0^75mb>FMc|`rZeF$DEzFk;X3JIA&C# zxCrw|dGuIwQj1o%BULq>Pd!T>hbr~kWM2uK=k^~Z(NNBJxt##l; zRw7G!Al=)b6}r1evhy_Jfk@$hMa<1Mk>j@uIYOPGsfv-;(+rERtE)Tx(RrBu@cD81 z>G`=OEXyIo;5?ekX=&8ILcAQ-vr0qo1s)-XZ+8m9V#9}o~gw$bL;eE}x< zVbi}0CV6v(6F2{pBSVo5phxlPO%Hpr1n!FG#C8y$(>AIEv^7k@d3Yh@|0w>gwgqf>h&}znT<`yUzwAEB^P9%Of-v7S!bx{< zf58ux)FZx;QO2ZXLMP&Jzl)2aR~#>Br&6hPV&N70|2|rQ z`rQItXn2$mcvt)o^u7}0LBi`Wt6V@}2S-t4<~_;*`)!Y~7B%^s6qH7BcA&WWV!jo@ zAyRQ&g>L*@CKcP>Y{#^~5$WTFSHIs@2qO6^C$_Cd|J*c>i!>yglCX)YWwr9Z_uRT- zPh{Sx2Bp?lM3k|0iN{Vd%H~2+-KeU5eYpDE3$e5DHq=0=V zThEoG*S615t=*3w4};PzHt3u*KoyLnh7n|BBPS=PQCLi2=Phkr z&j&ny4`;`;Y-Tr+ARcIk?VirtuG2dE{|@DmiT5r%djS#?96XjPh}0F*m;)m!sX{a0 zQX>mgV8ULW3Z`R`7^161-7{$T9Sy57@%rS2Yrie-TgAUdH+&Ap96w+QEuvf`hIQPM(z1=2)i zl3M`M;jgi9JXvC|Y*rF+OG=4M4njEkbbJ1UqHcC?-`9Dtva*sLDt}8{o)8}ziv;nY zV9~~wJ9NKJam~1!xD4Z+i@oh)PF@EO|3qT77<&2QYsmUEM1kDK87rqJXDcs#d>=y^9ExG@TP1Uw;uJWj3M$x1$wOl9@fvcLhI~zQR&@Rr zSFvA~^TXhE=JRbPo;AW!nxH{HiJXcqo=2CM9Ge`)-&@p#3cWs|f(`OgQPRWH6Vaik z7o9#V;HkvTzE_Km=6D)#>9vg|DdDOI_m z>;1M)H|4}$<~*u(YG0g9O?Mn&VPQ+lM#_xdM)T(Y$jq>b(*ciLx-aW1eSgV)4gl=V z22NqK`UM`GIFX(*YEc~P-1_JP)Ugz(yZ3*Vowr}WqiHJDlFx-IW)4ev^BV%tuH()Ce05dJ5RD}-&IL_%a{Lr&w&7DzQIH9 zjzl$ZYb7@9S3|FY)osn8_7zAteQYYMCXGE1n@-eRgTr#2(Qv3(A(TA+YyEo8FO3NS zQ|H~6eSIS9Z!})FS+Sl>+_}x<{3H9bNn> z6-#7{xxkGzLXy7ao0|U~&c(S?&}-N7@-lFef|?rW^LAz}#vJf*oBx=NGbjl{G!425 zhPqKe50bBnyQNLl;ST}jINPd(%17~|9u9gSwSx5%c;da)FaF&L6V4|8?;obKB4*v@WUwozY&9*{DJQ z+K{4+O`-g*$~qqUh?n9Z_7J@(3g*Okozyl#sPDa*V18G|fPe=mp=|iko+%m6P)Q?B>t!Y7^-yqRu{q}5g1~54cm{c( zO_LP57Qhm$2V$1`PO1mpVeLy{-_o2u1m%`e)dSr}AxBEpIhQ8k^{hEzP}v27%#a#) zt?%=j4y~Pf8v1O#xB7O{^y6mTDd=^>L>%yyRX@0dlCg#KO#A8E{U|JQ@>sMRvypx% zn1gyOhJbyVwmNb>v@3ap#;l^`Ov zD9m;y_?m!H5X=@N3vB%D-~gJ4=;PX#I#Q6z+i{rdCYiZk3Jb)@$$&NKxvJTYj{chg zIgI|hQufX`625fNm$?KCKx8K)1d_aAev)sPDFIQ?cZpnC{Yq z2$$MYx$(0WQ^oryDnaTx_D~*Ig5Fn3KR!M%_Qw3!CPs59SsZi>+Z?_$P9L^y{J2d+ z=d`Va##kct!xOcjE6had;8n`R5^Z6SkMW-FL<~g+UMrs&jo;34P?zB^!m4_}R4^b# z3rf+H7Z-1{&@xar)pSvym&pCii~_gRAj1&Ju#M$xIf&g?s@0w!A0LB;kn-&_??E!9 zqOY6Hr3wBAG#45DZ>9C#ASmdPc>qQvO8J&Jpdcz)8|g4?CcqYnP;;)xf_*oO@=IP+ zg7tHZZ=T^bKob_ABG11F8?P@SNZP`<6gRIbYcd8KfyN=7DgfgnL0}9Nq&te4TS$)gd!7_e-T>M5t)W&VT<=(-@=dGQt z>CP+Y(W^B5Z~Eq$t`Gv}DK`s~j=}tLt)Ws4>BoJ2&^a^tudvjAwY2U_)XW#wWJt&n zJplO&TN3D!aOe53W-d^HKXn<#qLSW4E>54zzO2}nus1B(fNx$;XgH;SFKkog*v{xp zk+zb5k;8A%u<%@6Pixy>hD*CWFK_sMolzy~{AdH})D4C*dR}aV~XZtBWgylVGe--$R31pCU<`c*O3G?XbyrW?QQJjy%myGg6BvA41LM;V7TG3_93jFS!*sfeo{ z$NphTkU@B4Pl$v?uYHxyYS?2ZX3_*>4v;PNQCMBVg1Y?0wdMzUj`R48Jdrpk@P$e3 zKN0sR6|CXaM;1mbiKMTi;}0&R`bqW}cqFuQ+;F#KMloyTbx~$#rk_EsKo$g`NC8 zA*vcrLEjm3ZNwQ1k5-l;_Dss+^P1xGSIPW(40~V48_|q|v@s5TTBwwL5lnsG-xKU0 z0Hy*^o&h5{bczt6NE^sNobcPO35zNYROt}P`JmP1t z$=O$%lR8cU(-RfVHv{+M_|n<>-(1yXZM3l2kVz*AIGWVx^kt?*hp7;BE@OMB>BSze1-;KJvENs5#dC;|kx8sxjU@dlSFWsR}ZeR-Kqo{#b`-%fPOi_Y?8|VhEa#MPm?uy5+x;nkuJeg0fYbG&4Xl z@N<6u!IAo)_tWzlGi&7;Ng<}hXbWwjQ8aku@_DP`Xi`qTkT)(g>E+{CDwczsHt4Kc z)BbIHgN-()Q(Cm=h#qc~%9ZJQHslzH)mh+q>q_1GbwZF4ZYzRZ-4 z__vb+89i#+_{)xc4E(e&1L~-#x3?fjNM2 zP)qSqeNI_g~ypg6&H;`T=b13c+3V-*EFE@wLR#yz4dLUa9yp}PPgC(lG0Gv zjM!IG&o#>rr`<|YB<1R0{k8btDCf}=H7j|v)J52{Wq+Lh121oLUnoF!S)nbAk?2j-tRhO%Lq~&CjIFT8ugiTtm|LJxX273P!)ucvC(FQ zjNnJ>{D5UsDNM8axX4Uq@dsOyrk#0FX)FG=BA=(-2%)HEKb!xp3T?Xj4tp^zbZImh zct%BtP-M%Ai>9EMtt&lb6ndsVCRU8r!n%$eulnxv`QY?Eo0v7|I~dErB5&ihaxv}X zzfTgVqK(7^DLuLZOOPoW(}`4I_Fx#np$XQ7SDhO$!I|l=1sjeqMnNbhrLVEhU8uvqu9|!N#Qy zk1G7BeafVcLgH%Xpjx;PhE#~oOl?*d`am6u4V)8gNuqP{@4DT(4D@nb9e7>6(o9LwgiK zVeu_+?jtF|_t~%1P21OXjyR2QRw! z({9AG-0_2m--CN9d-ktP7f@QV`sjK4&UWBs@8b(qffeF0^gm=qZ&8Q%$Vftz^~hXG z$o#Cj%Y0YhRTxFbfBYB$PYrTGB74K5@7gR|1@>%Hp7$Oyg^rr}Wn|H>>@Kt=_X_-~QhmryoHFNpd|C#4wJi=O`-7fxb8Z4WfT%G6wTa z&IWoDLEhWGr?o3-?3sm`E}(k|D!b8RO8#4k@OE24!!i0lGH0#eGXnqsP)xJfM9K1; zxVofkdY&PWr~~3%;GjWLg4blh7Ycmar)c-`^nBqMizF8hT9YB9;I9_fUIhRE=3#Bv zcKYIuFK}RW<+Pv-Q@~F29S;Q4*vjR2!YJQZ$EExm9Jh*~rK&w8&`Q z@cOnA0BXm>y1fS0+t-M!NZTN$%pP?{bptZ7=W(@lDi&WT$QLcrn60Oh;P4^<0Dyx? zEAuM3fNeVty}rX9c#SH?of~Da+=8RyQt&T>&0($S&=o)GhMh0h&?D`(L!O(uNU*^G zKfaA#j-LeG-NVCJ6sNVu_S39GkEtt^x#K_nOMhtO3iCl1c+B3}XfC77T7lYP=xb46 z?m_SW-0yvDcB!{HX<9w^t08LdzgpP~sLgb%D^y+L7&Gkc67K-h(?~qVXYw;jMMitd zis)fI4!~k^n0w!J9_1NgY;HGF#nbEOe+1nX@%@3h+U8e+-W@i z3Bwdjufd{sR$FSnAki=s*Wq^zt&9)#Et#(Gz7YH$|M$brj<^qbi`#4+8C4?SKf3Wq zjjkzp*4`?y1=m&jT%1U$SkhaKe;3Z{W}KmW=e2jo4UyctV5NxmtSMsFuvrvCMNyoj zn3L51>Q^5psn@1U-yqfdf|}U5BVGHpZ}lKrLBNrjy zKd|`v+bPiP`PB6Dg{U>teH}UGC+2^|cs~tnctm1#1|k~#7in>S+<)uPRAv6UwFZaV zcV&E?3#vlDSxx&kXJ+S5C0SllFyV5$LNhyLS0sgp#-kQ1q-@7*ED4O9Lxe7SZr@C- z__o|rx<6h{-}~{bZFT3Nn)ayaG0;&fX-My7$fCyT`afPCQX2%d9~QPgTs2wYaFq?z z|04r77yA9WZrML?*f)Ug!M~%ei$bnu`1@a$>ixZ+a&cG(IPyE;($XfNs3paZaj|s3 z{+EG|-CO^``p?gJB({6XNRazfYZ_J*G2A_yGuaBx$SgK1aq|FQ|Fg=dRa~%l9SQSi zWK@Wtc#att^f(L|)*tW7-bYVeV~?e-;snvIFkh&u&tpicyv7v} zW6cLzJ$Oh%50_Snh`I`qSkyAsx#(Jb87l4wmf|V+^?m0vKnx8u&_L4G+Uf({_A?AF zT@Vrnzoluxa6@e*BJ9a_@_N=hGxB3^wKU98P0vfNgZnJLFusc+&wC-c_Z<#%eh zb8^XUE;=hDt%aC~Hz?-sLHjfh4ti+Lzdo-s-7CQOA;>8LO8YPzElv>iZE9g|6bxr5 z|I~`fBwZW>$fn&E$;50D^gqcwVt!s>UKE63+*lNDYY)Ok!Zjt7z69l1Q(9B|>5e=CJwK*Sny=L*1qJ^Z4gOKW);PKVL|abK_2w!08zOT{u) z(cbRG^T|0D3xF?%6eN8YD=csSOqL=(l|`YL{4Jy2h7~e#T2UPDs%sP&zVe-;NJ>XB zER2vP=?_1?%NG-uXo}xaB@hlj2NJk!{2+z!zoS=IV>AhOuEl=POAMkbI(yV$DG(ic zjO(}FBF7#7+uyW?Dr72rWw{Mlf^dPS%e5KeI#?-qw4fyJjdrK}W;jjsiV$jdB&uxe zQHG!H$$Sp|CrkA=(sVG1!LCytI{e54ouEKERUhUc604a(XMd{%eeCOVr=Sf?Q(LXE z1P)!HLc7qfxVDwTOZ1gt-4|UkM4L(uLOhS}tbMsc zQZa{4&LMLu288qe&)5D(;+nomT%fpkdaN|@gAs6_iaGc92H5iFMhg~B3Y0K&_M>k9 zi?&$Uc(=1EF~DtTC?t0*Jv?RekLE|F<3;BYxfo0C4`l%$4==Zwp6UCdrrLAdQ%!@0 z&1!9nq9DrN6Cj<4_k_5OU6-*0ig z-r7gSsU@+xILpzn9{Md;1&5QDkr@C}y*Q_;7Zp#5%~psbP~p!CWW=n#|Htn>WZ7B6 z{XlB^xY(E{^SI(>rnXBuZ_w-8s^&DVh~*-4LrlVCjg_1vkLH-JR+Z;_QmIsdxFK3j ztf{K^r}HRJD2oo&^F597ReNZtKvq#MxB*!6F`vZ2&LJ;xM7kd_isQ0- zPhHEQvdp#XO<}t;MSfG6NDt%fR2q{>$Y`2`e;8G7DNDlZ;Ow>SQ%-^3#A4ee81{vs zrmwGW$v?F5ywov^U1iWLCX3N~A2H4l!L|k9sqs|Z|HAAP@qGmEYXiC=sL(A5ERsG+ zovvuS?4f^jb1%%B>n6S*($X*(aBgpUd#S`AN4(9dR7TANYbmEck5Fnm9xu;7@)+_F zvh*yu?S#rhmgx#PIX-@N`!ESyxiHSEqKm~?s0PYtVSr-4mL`QI1e}=%BEzDSx;7C; z6-Z-0@S`;!rFGQUk4$KmSkA!DH=Tu$(R}Q&e?Ug%l*wBJ*7M|*MpJq6)f)FlMyz>F zVDt}f78ZERd&>A6R-J_@dd$?4n4F9|9+=Gh3$7)N2-ju=Piv_B{-CB~1xG?tBSlfu z;*+Tjg|8&Ii;>jvL*S-;C`8GCGxTTr+-%$-k>e6&u;ZvraJCwl{*tYp=j*mVS#!Ta zilCy0_n_H(t{`8>Ce}4s&Q2cW_4X0bGqlex11|k~3y{BEvm*a9k}m3q>hNdFKL(dp z{}H8T^s8&YLJRn>>C#oIl;OKJ=O?2~YHLU~|G{XTicCMLCp|Ia-ZJy0(%6K>@?xI| zqp1!IBTgvA;XjU&K#0L(gF3zD0$gjd?1N^GqeB4%PrIbI@TY68Q;k0VdUEZO6kT|J zy4%pm$>_JjHG{OzjCO9%2p${;!(uoe$FB~IPE!ibh@?7EFF%n(0|2LAwNF)4F4}*{h2MrSmIfk@8v6xMD6Ai3?n$X|eI1)bc`m4&3MJyf8 z=YO6XZH{DWqR%Clcsx17N=i5b9dZ)Lh0e0Eab7+9WPz+CC*8!X1uTc|dGI9D_f-0E z?#6TtQbTsoLX4nrjZ81y{XKnn$N}{Tm<(gRYmd;U&)335qdM4-H>H!*@w( zAKL5{oUz#M?o%>O5V4}(s%HBua?*i@FN%8bD4L3lIY~>zvA9trUdaIEjm^YnLu2BR zjO-JbpSf<+*R(Pb1vkb10_mv0{hDg+OM!H%KyJ_qG!GLo(dG0Mqa~FADyA6~= zI66uQ&d>=UE#!SQgGGN2ImT7{Ioz@aENl=)uUcn-bld#cFfD3GXkEY5>{jzA-S(7` zhsUh*bjwm4I5ej2Hy9BMd0?P}g{*gZRJWUl+uFrBMAcG1>5{@B(r~ol`H!LGpvIzW zi7)(GZH7+0WHx=CpaNR~tKjXbfFwi%n^)N@JtLEu2h3*v>V73}lFuP`wu6DMH)ggI z=XyL0HGLm_7$(VU@afzfXU)7UZ?j_r8UiIzHAbDTkzf?2W2g?^MLRoWw9DeP#*t8N zW>jWA8+|#7fEG0dO{t-$LSCW?ERUfT90#L@a;F)g34kVOx7AdJQvUt@-D#JOiph!) zsTlZc8!2^lvu+~3f)oiKJ#{!GP5e+KTdas#wNHvF!OZq5(6uduk*!AzX}@{?`cW%_ z)Kz}5fgXBdj(GF%ACk?ajb1=Nz$9{x;$m(?^zfcW57x%@O%ZOWuU0S1=(2n)I{_!} zs#W-I0U69%)8xEj88)_Oz;6AmYX{ZOIdui%gBTwDx5g1YTbdEfgXpiS{W|(4@tM?% zTFDFK&+;bUJ|{w@nwxkL;=h0@AZlpTHO}&x@H{V#M(GGNziqy%lLNQS1xn$8xqB{9 zB&Z-fPM->gS~b6sp=SG)I;rYHj|4;>x*D^}jut%@wp~J5t5pVc)T^7|5&Q@c4(vKk zT#D=P5)5^?FO;SDV3BeWSX3agghkpwxu9{*s!=O<9tix66hpv_A0wwY%efdHhZ6Fw z2aeUu|NHwKBplV)OSefgWNcUvnP{3?nV_o$Bf>~6AzF<5$ye3SY^nJMO`|Wt=i>T% zLC`=3tfl0dv@&TM8{7%p_XOD#R{WUBa#ybYY~|vo3}v{Dje7owq`@_bXZ}4cj<#TG zSwvLXchi|ix}bFl{rT_LbPmgF&fgad#d%; zS0nq6!q6x}F`G;*v>b+S{1XZcyper%r#{>e2*y+PK*b$?UANbAQ z{&3-{7(h*Am`~uD8l)7s8D8*;^obypj7~@XQT#6PMVAQLn|hp5<>y8Ri|I*zI;cX~8AXd+ zIcTLL|6Ma`PH?!V^4YrQqUZ}?#^Zt2L=_WYdBsRfkRhj%<=~KJN+TEH4FBG+J(r$- z2>;*bFC{P$XSN7>tdV+ie!ewGHQ_0YA zM~_qk3DYSQVV2`?e~{VIrXFA-X^N~}DGsz6;cO4)Sqn%U8JX8>=KAkR8&O|Io`|D> z{kdxv|Ec=;4O<9*<D_oTMC|?C4$;1P?B-NEsw2jzE4Ea z&z5>fR6nMIdX1y@0bm>?z;C74v$`A$9Go>DujZYuCruwB6)Wp8!|^9nkZXCRa^57( z9ASPhQx}?B#^#}7A&zsalRAQ7ui6ExpAzJr{}Cf4`oX1Hf#5(EO6N%9KBVyhp z!mRz6k;5h)j>Dzk6x72E^PT?dVfTj^pIVEW4Eoo;KP~nGPgne%-Q5!wLElXk+~E6Hu{BP ze&3?`ghKxPE_e64Q5cVa`gEuTYy~-^y(S;wHlK^bf)0r`1B*ISnlKO=6iqPTLK;eL zDB?Tx6f%2tDBR7X{ue8KjE*lcRftk`ml`?59CA(PT*a5JT=C-yug<-rae#-vF3Blj z@F^)59A%mO^;6Y>%$5*CR*PaR*n**A)Y9gm6S8{4L9__^FF9rj{yog>ogbY(97#p# zLPDh&os`qUn0Q>X&cA;JYE0YU1-4-U&20ErVKLlNTgOJh&`UUQltmET4l?3+_&Piy zgK`dk5;b278Mso8d5{I2sj7Y0DxT)d=sf@@;>5qjReEr5GD6YPtf&GRc>nlFLAxvE z&4EPoCwGIOh!V;|)_-Uy7%U?IJAs`HC_IP>6QNcgY`-69gdE5tR?q+tMh~hv@`DP9 zHvHj};yrj-VlijrP*Px@dSEXxq6&du*vxJkEXNzyx$cv@bTgt$gQ~XLxsa<=^?IZ$ zwFLD>g9#vvu^gu|0C(mm?v}fC+G1RNbV@VEyr2&sr{-NQvI(_y1$p{lSru=2GwLt? z0tGJ`#>YlO!#wz1(-0&NfdrOvZefxciZaBfXkB7|K-%`{^(X~ zQCr-E1S!U5|5BW$3#Goz6#H+xY!s)PWq|8H8{FxcS83o!OU5xcxFfWrFE}FBLkEEL z;wfRuTAKQjMPhA+ns1FQHs8O02TDn8cN)!gmz9MYHWd86zklp18~NK*5c3o86$J`9 zmQc*5AwlFJbB9>(NPh^LWjqp%B{Gck?4C4cNZu*nkj~i=36OkYP3GdNNJBl}8Q1QT zh>y{<_fr62M))@NQ2~e3rD7X?96|IPPcuQiomi()i)EueIA37w`q1C7N#=+7&0Z+T z)PamsR6Vfb2y5A8ls{JZz?D`EKv5Tv{q*<4K2O>T?Q37nA1s-zWq* z4jqX19^KH1Dc+dYAI$Skdj5^`Sy>mH!Bcvv?t|8Kg+=THf_RLq=);(>@vmTxcxvu$ zN$Y`g%xnfNjPL#y|3anU01$|T4U*~5lQ_|Q#T?7ShEu=m^S8XVnqH_Pywad%x^AkK z35MQz{U<>l+2^_W@CG=ztF(N7fuAuIlyt*UH6_|nHT)xi;r@lT$-HJaSNFM-^tmHo z*_BibD%1tA!_e(JeXq}~_T632)_c<5fj>Yh zg9LAp*CDPYyL)0cV>B245gM;&&1#(*nso{Rv<i(;X!splaeSTPrawj{ z$#{I&(z0Fc@rP3Kf+Gs#EI|G9Xdva+P|Po|+xj#3oIdLLc@3eyrLj5LIh${7&qPgW zZ>6TJ8rl%WT^<$*$@Rt6gLwWuB&V4oEL=9KQp#DB7Vt<}R0S#b-u>xH_u*uQpJ96V z#JVKV6${jAs4%#vw~mJdFCg4b$$qocd)|BSdJc>}cKFUgI+Wo#{2Enp6=j{oc&Yqm zGXu~NsCcYVon)p##eWG}vEuBQt0OdKEfpQKulg?(jsGHiVpe^yfMykQ8#|})fZ5>L zq6T204mHS*5ZlPt2ZhdTuONhrTlo1PB_InX2`>ICK_r2Mg1ig|>Aqo{5`^&vWu{r2 z{J{3oDS=gAzZS*xh?=?Da<}8}w%_GF5U><>lC3ZK`w8|WRzuz1(0=(-bU6haUPxBU z*j{n)4)VEuMi_m4xI1%+AoB!;bvuKE@-q1nM`?9;io@g z7suuK50?N=0d)qL`z-D9aQ|N^OUc7ZMpEWdYpOp@4AnqsXSlPQn`e%CadGG-16ba0 zNo!&s$>GI`QxLAN#p>uDgySge zp6Yk7TNHDrH}I#2RXCRv-b#6T^FcU1>;$I%_nCkfTaAUYy|$NoF8f~XzDNleS8Dk- z9z-P2L?g{VY;SJ|prRjUT#3R5W3d^wO`%ev51?e2knU>I>=MIq7rCl~ zQ^^WQ^^1pQuU5?y?nP)0m7j~plU1c943gloo8%Rx>H1lQLOhjw!fOq;LRqn%eq5F%i?t3>d9P~C7GX`ZP(H0TVi{2tf2U>&mOtt|%DaU@vURCzk|{27P_S-g zBL#)9H$n6zFp!yXo&8il__t6gMnw)15y@g&u1dA9y{rQKUN)zVg^aDO%iHHHsU{{4 zBqG8!w+z1buiIan98S-)pSzdO8L>T5laMW9Ytyl4jrxoBlL40|Co&R?fShC#&N5(Q z3HacNs9?no8m5Se$#fx$!9_9qwDpaRt@%==t-7DxMs7;Y2?T|S)8tZwi*%|mHU2X4 zh3t%ESVS)D@g8dNGODh*F&!n^&_UbnqbYd2>fd)X`g)y)o+O?%Rx(j47Azt&f^RGX z4n_SKn%}3+id>MNjegiam&jHy0ZWy0{7I57!iV|7abZl|nqy!oj>vruk^(a!N}5R6 z{BW6&(B3aBAU-oQ^(+`}x(UyPGL=4M)8`4@mqNY~dwH1Ml1-{Fwz|1WgOH?nUtB7X zG@WU~5T^!YFVo*g6&&y%f&VTW9vUzjc_NX*q0mj{kRM$5M*@-TfTy-@%UBADIb*Wl z=Cl{Tf(aP%6-Xp*5lrA@Z|^Zm>K6NY$R2bY5s3ZWUji)wAD>e|y)C;|28l>f;{okA zrtp=x6HXHxyuv@ibFg_`_|%ol!MH#lT&f!?a|boee03cw@Yo1Mhdsz3VmPuH^!a|M zeQqZYSc*8&Qx|E{L^uF_ZM+P8eVI8$y7dt3@NUU-(6jkg6UpXijY(z#VHdnLSf;c= zTDQTFD0N8zqluf9g)bRBK#SNr~Yb}R!wi17kua=MLN|uN^f9s+3gT}q*At}VtHtRG_ZvUJyMEX16pA{ zWR3UXCVm!DpvqFQ^dZV-4b+V>c#FFxvLEDIuk2DWt5nBUVe3SzU~@>A8-XKmQAQqg zd-m`yj@myr^Hb98vE)DZYzdDol&F+L$v8Pz1(Om1vd>M1Ul1I9XNO}5Ua15u>s|_0 zmO3%bSH9hjW)0~x8qps5*_*qMM&VXkKQ#KDRF?P1hI`8NTp%|h`~HnQ3Axb{iK)>V z0X3rIPQaelH~2B-dDaH`s-7?2mjZv)b^2fEv)6pXxup~PXblA~-}%*li1hnI16v@h z`7OBE5alpQ?*J+p;7@KwC!|Ci9{}YsX40nWI&Ozqfrk5H=V=)o!H9|uatbNI z$AkQADyCQE`ROx}Gnb(Qtn^Yrq!9D@yR?@c(zAYtAg9~Awpnnf(@K@DtoE}n33k~k zsA^0u3IAhQ?>KSBhwAX~S@|el=;AK_*yf)c)$TqAl$62OzG`P`dc?H)a1cR$m-zl( zu^AZJKW1#5wZ+)?`@D^JnSafd)K`9FVRb=4ib!Nfj3TrB-Yb3CLGO84EsPUw9JXNJ zlw59J9^b>g0ay$cW-MY16k8Dngi+$66Df$KXn)kPnyvPFwj|7ydME+7Vf6zJ(xgrW zjiR1^GD{-2h{5EhgtUmGgu*c;rLzbxB_jw(FR>Y8>qd+}tz`avvnv&>-1cYTS^V43 zv4PM*Or~H(oo)GI7*7Z4A`v}I%Xx9U=)|S{kyzAM(6EbW{!a3!r*Q-?3rcY5*d!ws zt7C%*#|bTb2w6;c2`*H4_@8xzLCz}1a6!cIw%dtjt||*i@|f+4$cPb3E;)Axw69-{{7__9H_S zrxC-|!$Wo!w)WF0+BSPX?(02vo~ONfewWlI0Cy=n@nQ%~NZu3SNFwBwu5lzB(9)oj zQ6%&TZ#X;&S)RR=+a0C_Ob>|j_HmMQM*0RO|urKPnHZALq4G^Vzd9v_Nx z)0lNr2jQ~(zAbJB!dI#4VJS*Ug_*8@AE)!~{A%*LzS3o`L%QGA+u|7MVl2Y^fJL-p z?nDC62q@6E1mK_7mbMPp&lonk9yaXu4xj<03V}+5Ca8;`hMVWNxQAB>iBVpM{`bdQ zCDI13@36bRW54SQR8WI=5xUbPjg0J#rKN|4epSFXK`^ZYp{v)key>pfNR(0TG`je8 z5NU6}!d9)SN0~pfqdC^RGJi#&3B0=5GTz!w_gFtJ?;KXbe|1Kgb}G-A{u(`$SsB~_ zfkeaM12{Qn(=+df|6H7F|2>6E|M^|Wq-BNr@y6Wr#}rS=_-pUQP3JGx2o&^i6@?9a z{UvaRoupo;(GN{2sjznQ=l=VNqn>rfrY6rC<8CjXF!Imhm92&Ig(us2$tH4CbxK^u zD*N=G%+%Co{sk&?>9ciEj&U6R>%^YSV-9N{lbgUv%v(pD<^ie>w*2+lPLuOC{QvkX zd)JFO0gFT3k!)bz0Ai|gR-W%fWgxHQhTb23{8MxPBOyMNuTwPC)Mjr5A`*JkOa=SB z`0Vbe1k;b}c-hN;zTrE}S=D#`~J6DgX0eWxai?Kx~rimYk!k-3g}?pKdfY*l)JnSmw|*))J9R`bK5C8Vt77 zfmnss-(|5`CR{I7>t^t!hP@kR8&1G0=2etF`LC3{N=r+}V$RnQqK6NlNxg1_n41khE z?eqbFeMCp(1r!`T{hgyGYat7du|mYoK@71LQnrTIXs=Fp?lcDx?mfwCyJ9O4{LS;5 z=3xqeG6!#{wcEa3=r)$CH(dr;WUD_9lZa28rK|lrQB%DuGBR>kJ>oJ0GfM>zeos%* zeO`gVvaKHLn6X@xrzRG-4!+T_Yeq>RAtveh9sQX*cpY+Rxbvb@57h9Un85~&R7)cKqf!2#Wf_aNeCDJ==!V-zPzmoco{R)Ipwx>FLqs<wlSUW2Wz> zWR?|T$a4-gU7PM2n;ZB>w`|3OOZ)@%QkQwLrL?)_mz_4HFs5lTjL_4cu&rnNgle_*;3-Ech5MM8#6IcaDgr&K}twIC<07FEg zJ*i=E8u0d8bYBIm^Hbgw?7TACnG+D!%|!G2i%2=(D|}IPfq#x}pH0d6HPfH&JvQ1vIuI>A~ZR*b?ErUY{^59K#dO$rs^Q4F2edeQ2Q7nf&Jo)WoK{) zLzYg01KBCyxtHQ*@dw zxXzG-4c5|^^4vW+M*WxusYJwcHZsn%_QY(a#oPw(Un6B@G0$RLl-N|8DSB15fFJwL z;=RxmW<|Dz9)%}N7!1xV8wA~A($Z6S6}^8pN=1R?tU1fT2(rI3obBIJ%j2$hZ*3B( zq4f`MpRMnA&^4p7aqw*zx!rkrdF%FNr1V@RCs9x{B_lx26fd(8ZxCLH-tn}_<%4es zW@T#uH?>*Y;Dp%MnGydc!#UM&q1Wqpj$xP1w$}a{u5Z_)uVk8UOix;sgy?oo;gY~b zp7d6TGeYIpyHNBvbo-uP{;7^k;(AEAnjN^JE1$>tAC+R|-_D*$DddJ3Nj-FT=O?JC ztwEG_FvFF1}QL z+?7_K;K7Iymknd%M62L0h>oLpc6G61Iw6SbVQhZ#RT2XV+4i5;%W-*k3|rUOBkpS3 zKMCA&MjK|Pe8 zWo2bCw)G1kUwWBqjBFTd7GkVy4S1EqF(|)|AwY^?{+nQU!t2V0M;4=j>VwQ1ldZ~V zq_HF($-@x=I5k7248Dcdv}BXXU%0d|c!~o%F;}hw*z$WSo9p51Xr5vXo=Ez+?It*L zIqi@>A>m-mYA8yqc$se~h<#t@OEE}MIfO?Z(wKF-{+o9D$YuXc^|i7Oze?CjRz2ig z`4x zoxwoSRMmTy{NP1FOTH;d)v%G&5k^bc=x`|(I<0BmqZ2z^uLkg#< zsJ9tkx!`k~{iB@H5$I!>{=BSi5voa;cul$|vGl$#_F>*H8`Ibc4xnZ|Oi&B455UJ$ z76kzAQCgUglq|w=^j)UL!nh+S0y{G9y?SoRKGaNX5bX%sjN{-ARk{@;!WO;?F)DKc z>DpOviP?a12q;rc@AB%v&tR37{XPmn!t8zwFJW+@4{CI0o(Pb&c^2EK|meN zb~1kWOh+EX`kJ&PjSd$8;DQE5pmNl4DGo&RB$^5YJKScW%X$i4r7;U_etztH=G)uZ zd5VbmO$33f?w+VSuL6hgPy}>s{#4_Bkk{-EG9oP?>j4!d3ONvd*eQa;JLU>P@d$Y( zg<+%y2~7RR)fNK(a^+ut>P(7?+_6!TzRWStEhHjtEURDdicnKq5hrR`WT@h!$9NX+ z=BJqoT6lgBUex1%PfGAFQ8s%jcFfI!uLJrqDhq^zA&v`MIj7`(6pt1MV!v$_`-ED05nTkWtz>$aEb?ini*&?!slHgOC#QuA zx=fK_;r;w-(P}n~B37*`L`AVI7~LY9;*+0V_`ORuxp#xA?sy~>kd7oZcIf(3MMWiR zhXCBr8`_o+UD2+*@l{pseXG&D-0yWGXeY=`9{%eY>aQEbNX2Y?5WWJl89l82FmH@! znvBj#ur2HhX&kRJ1eu|Oz{LAk%BFNGY^374wv_o`#3W!LvT?0Q5z8DlN!Q$bzai~1 zR0UJ(izGh}bJ*VW&+bil0;4|!qY|nWqp|l{GSbFn^Hf~mXrob11Z8l9!Hu}Dk@S#z z*tE6<{IPrrb_*xeI>9GztK}p<`=^uN#>RgZGjBXtx!PzgQi}LCICg%0th7Ogt?_E7 z4t}|8%0xiR5cIRTrV(mHC9U)hM)BICraz<}PY_hLyOL6|%HWcgj@0Okx#VjR7aN2B zC{!1%8@(AkfQC{5Csj%!;O5j(UBWPU*4f{4a5f?SMdZ>afuTAnHAE4r@|ujASf{YC z!HPZ+FH;9{gU|~G^XxKh!QIhH`K7?2%)~#^>Wsbi_sX$~K5jN|UDW;juYKWhOVHvA znZH30FLjIGH)yG~S%}VLqYUG(C6XqW!5^yO`H$X#fNM40883MX*n%Kp>LwiV>*ThML$5S(-C*Bj zzW}pi>FoQWC@~5;mu&aV3}0SGC45Jasi~=)*W*QNA|hUqWHX!&#w6lVndI&9HPm3Q zR@fd%#rC$yMbjj^+e*--Z;&eH-MkX}b95;IfO8j<==8|-;`u25QIccp5SR0naxKk4 zLOd}ocP~l70*fo$B25+Vo4IGMv6R?N5@wn;4E#Bz;s?;W-p`=(uYob9{%=!`AY&yr zH#y+g*`K=;{sq5B+`#&p5wM5ByC|{$ZjNNzk&Jc^71h0#%FP=r}a@SCI##pl!LyF8VH(7ILu z_Nx8+S1`R;N*}%02slSG&UU2%3U6U$XJf9l+rBn-Z?zm;LxgO_TSE`0^=H26t#OB? z{};O-rP{~r{pZKvr^kOrKO#|_%^g0s_&fG<#q!-G-+Yeau?abkf740>083Ce;b*{V zv-E6pRzvY+{|$Kpu?3f8@N{|uU;p#(i}%Z*eugIS$PlIJN4{Dgio&O;+Ozi)yAncF z6KP&3Z)js*ZL8x}kI$_jHl)dxiQ$()f%7m+|LY5e?rx85-~FSYGXQ1|9*3VyHXaKp*TxUz*rM^?a%;SO1h zhj1JqJEGL0K#B$z6BE2iSHxAbIW2gxd}Nwm{ve9|JFin%*Lv`XF{19KW}*61PDM#( z8r9O$lpVO;r(kUyugb~tU6GT9n`NLq=s*94e-{@IZ7c;S%}9=Vq0@($b_P-kNahE7 zz4+ai{zpO=pT-ZLMk^QOYFevRCjQsMH)vF8bW{sm&Z==zIw$jOC4owy7 z6ZLXcKxE$dqXT_>HlvQJ%1T>M*01BG1}iimCmaaM*SAZkyQ_Nx@uj&nGYSh|y~CGz z@swiwP0H)p^7Ee~v=)BMh4Y;!5?;wrqc}07(gGa8k50opjI|q;=_anDhZJo@6@dnw zgv>0JJ2|FGJcd#meJc7~DduIJ>jFMKzPN4bA*U_-&X{_TPPr!Ud`4Wdu!08v#V}rza8+rhcpGHcF)oU_i ze5zCnnCSh>Q~yB5@)fOetdEW|ES7qjK3|7gt~gCg_ZqHQn5CW@u`$OVEp~gPhw6Nas%{V4D4eJ5C?H6)_ zzCm|0dXY&Zalxq@i*P3%>Tv{G%T}-R+?cm~pTEZ!|G6MB2s;8`wGs~9_&6MNX1mR1 zMPblmtmUo0thBbac{G$rxQgI#hB@ek6%;(49UuQYQA`&AHNX?&|DXfWi7VHvot!H9 z(t-96#hyZ5N9#X}H~JjA^JOd|{~HwjO+hpuiundmKC?ig-sOVl zI@Y%$NrWB`naJYN1WB+&HwUv&QV)RCzPkO4h5ER{{G2s*pQCtot4kZ1X)F+4tNE65 z>vHjPr3Q?#D+$@_q?~`gJ*u~Ja5%$-p4OVugP5UhFKsQYEi7f-_I$h2+S=-2aVWCDQH&gO?d{~`WcygRWimMalJnY-=)ty!4Y5D>U`bEu zMdOgR$Qt}_F16l;D)`TEE&G4607XqY^_eewlFi?ITcoV8TM2d8q@OTarI+7nst}j8 zBw!M;)^R-4-W64YYhm{qwW-9$Cf2O;&&AfQ_eG|Uc=%pa6XR1_5>wJLKsEnn5yu;P zycf+GfsKj8&Sa0No;*(5J+@obz2BzzA>Ru3HOG5yv?Yn$zS;(>tCPFX zz%RmYMj_4@IJ^fVBPC`*o~N}J`F$U17nSAtH@$ScA^$lYIe3Zl-`7&jFr=-&*cdKz zP;8@uE;X1fwuFjYEAku!zFj7!aMS%-{&JiIKTnNGN+X0t3ijY``VXc#VVduLE(~n5 zZ@EYi<66K!BMqLc)O7FpaMRL~&1}riH`TSawo2UyE^zK6$L#*8+v-j(qymo{xgZ^b z(2b9P{3Fsa&XI&=E6edwom+k40u}y5gM9R#m;ySZFjQ>QrF0x{`0#9HHwGF z>m^ziO30p1V-^n|-_c2U&D$-e-!EHm0J%0d^B=E^%`AWGe+Xc-O9;5`mczdY1iyQw z0B7O$yLF`_sQbjO|18ATxn|M5A06lR z!XQgaA_%sAD|h<=q zqeavPiHl$(?5d9%yy<`Gz-I`Rs@}`boDn!;=`Tk5Nx^HFV~wvLRe_6-oi3B?d6i$8 zoOV4fEv}@b^h0097@r9C1)?;Jwur_KygZ zqksTdli=ghC(zLdiIe+^iC-k^mJ6FlTh$QjLL*IP~OjSQ&c z^0mSAHg4u~%PQZ;|3S2@sI=i{*~l^jY!II_Sar0q_PptoAch!SX$IasF5}moW?owxyhk&L3e`hGPdsfzOvKB}E2GP=>%Ef!w%D=~ z;xHUCj-9T~$o=)fYom=J=dD;leWblH8ol6#54e+9LY#s+1n zH|}C~MNUfsP^$py+q6{h&+AC)ow>Ar{|ME-{oA@Y>|33rt_ymEx1Ji9U&d$I;pnl)&FSR9{BFd-m%I`NN<+g4)%eD zX?{%6>}#@@Fj$r8KpYA$Sa&a$c-Bq!Hr4ZbS2a0R(!zmpQ%SKSKT zsq2{DYs+KB#}B`kHJcDL_!WtpEzdA+m={3+;`~7BOh%j=sdVH<)>g;Jjyj>5U3>No zxHb{_d`8MVg^vv3f(IAh+h2h%dx9(YX33jkmlWVkt;44@} zw}2X7(6vM~`Fmi2bm5YQtdJrJ%Gr6}4ou>eGL@W7%%CSJuiM{z-RLB|-rolKQ8gO7 zVcXcyxq=D!Z{v!Hk!+!k@O?%1#z{sS*)w7jelUmM9QwvHWUH}Cbn1mh6jUJQPN=)+ z_Z4`NoRbl~Xym0bU)1pB?QXv;w|D*L#FB^Gs50ksg*IiCAgd=e`1ON>8r2*tefkT| zna=ITlWK!Nt091|>uuV7kqU?oU&Y@oc=zzoR?V4!@afb+BuRq3>}`!X`CR&HHz`|2 zMBb-zkidzxXBgyJ{aNwS_j+*)!7OZTYxQ-Esr=DG>)@6i{JcRYpW5TEX2kMrO&{y$ zR^z8n1?KKVjKLPTxKR9f)xav$j!xR90L7KB|JmkG>Iib;5{7-^7dp_)`XlQXC_#q! zV|>2%%>xVbKGghiW+ng1_i@^*XMxOX)8&JBJ{8$|ti~jCZu%UnLD+qffghNK0J1D> z>EQ!)e*YDEm+yq#EO~Q5V`_?7;Rk_1(os`WQ!p5|so()3Q?pP~N!t*zQ7Sv=F08E` z|9H8~*);arIwbhX+s^%Jl1)xL%7%x=>@9XV!5pJTCq;?{vu&lV`8Lbi2hs!ySP+@?iR zfELB=0Z%O z=ji7}yy@m{-uhK4f#6t-wRnzM=C3nqbdc~^j!dvVA^jh4L*zoBJU(cjKtg_nF0TA$r#zybvxRHpwi0Zd#qJP(~#H*l> zqoB?Dz=Qt1XgA%tykJ$Pn>YxI9#}Cr#zO-%8ut?Qo)=ap@Kg8Q!&o_rAF@leq z&An>RuWJK);y#z$7p1R^rdwRX1k%ppF2HQKwVyxa`MdZqzOBR-up-7>z4#8+P_r5{s z-N!mt@_}X3o4hcoW0pjt>ow_8DnrJMH6H`WuAph&TdTiR)4$fzQaYZdQ}V&d{yffV zBvkb%2f6=dxLUdGK$^WOp$@+=Nz~=_Xl(Tgq0odV5P`>ecYnC)$56jQmcy4l{0^(?MqfCK79$#?&L^&Ej+-z#QmIU~_241>or8Pu| zLvH$|6W%stK!IN@`m$PlaXm`$C?%Uj5Qph%PE3+q1dRor!Akx*TL;A=tW0dMM@dae zjBsSM4==*;k`6Dz^Aaz2l_rNT8`F$*Sx!Yx8Sgca0S-@qP3)S2bBCj@G*1v&?mbzm zcSj_1PjtFUC2Ny}0*K#;nhN!(@hvLFN06+IO6i>_^JDJRV?(IfsHzUQ3cw@a%|HD@ z$D&CMCoo$7WhZN0U0oq`e4t7TXbxFPejY<|eMV1e5V*TP+W-f_`r9WG@F9RD53xbB z(cTPm14kz=hhYl;yZE@@8t04IXv^?3<`E>WK^umJMgCH$JT{7vKM6`pPYK9B=%eYe z9_hS6D|GfJossdCXPlB#@3>dM{GuUB&2*Fe0MZN-J*g;u`+WWB3_t-G90?;=q}FOA&&KFt=zcb^J*VA4^WJ?>wLN5Z`x|@g^#+1K4wNHVF;09$Y8mp~D=gjYD zxcV6CO!c(v_n0_f7Bm!jCUKlr+qjg59w)y$P9#)U=q7V-0Eg9X!#MGOhqyEnOzct80W2m>tCugnQ*)!<#m~S9ioa1OiBg!?1~~Vizo7k} z$hVIe+@^^#dJlxFRE3dtC3mE!`mB{9zuebAbgMT|Soju)Dp0?F*EKc@$PtCF{MMQB zg}@+1e0FoF8Kec!vOqKPa?*Zpoz&X1yfM)b9#R4K!|=&wmC^m@93^lm&tVp`s~ zCnGiB`GeovlSG#cLX0w=6MjxgLX6{=#=tCwM!NYNCfr%)`5X^hu(OL2g+BFM`%+S+N^dBDU32%{jRNZyy=QvwSOiBnQ$rH(8u|0T6!M(6 zUj_ym<{d_`K3aqqlBz^MS#*ruKi@FOp?$*Vg*-0kLJODY=|AGpOX-OpFgY7dGlbPZ zPDevoxhxV{yEfJh;(psXN7mmp6E(*-Na{f=$XAySrMAXS(@@oT69>!4f1ekGoJvBP zt_!cgaWubXUoEI`mk)4qrKQY+ynvf6`6+o;fazVJq3haLq^S$uUFfRVEj)#siRkRCds1ubCBm4UI$ zt6V}FHn~}J7$kkS5+2(?g@xr1qqPzmPzXPu>2O_a>R(>O42Nk+v@cecvKGuAelHnInDzH6g| zeUiTK!cL+YiKblw`?E)i@z)+kjC9ha){8F79xy|icb>(+oacQqmJvs(c?BT5<31uYm195RkP~%{j`^~@khZ%r5c>6IL}P1>Uq9_KkfM$9h3a|%YYdQEce*S#Gs)3o941h zpiUOw0WrcLtYlMjW#}F~O5IWCyEFdpDylW-hSFBL41e%&GluAl(SEIfoE{}zZM+fN zN~85mUhAq=O_@Zo_C7f~7B_Kl*=jZX#)4tdZUP(2?6)@zOf=*$OgkAU!Lmjl6|3*g zWa%>*2o;}$N(9kNCWN$Yv?fE8Hw4IIV0a%%^>ia|*$Wi|EBQ#fc1O zvIK705;nNf))fZ%e0I8SSN|8$uKxafDuq35`qe+&nhc}woFa_9-xuQG^1{8*PJjP) zJcKVqMmV))Gh5zh0Gn6v4kv<$q=n!l{s6Fc5@W_GP$Isnizl_Z2B@(N!T74a$B-F7r3D62BUg9rtJm5Q{D(*EYSc(;SyMdL2_BTjusyvXFc+B%UoKE(hJ#UzskkCX~<(j;JLLC4OE__4WK_5L!m` z4KhVMlTQkqFS$WDI6l?$?1x-=H4T*Ds6-3hc1jnSoRhp9kwk z>rg)+xcaAm{$l?v0b9beZ2^*lv0-9oi+oecI5VEGeSQ6r1t>Q+jK9qT=Dc^+T9J_e zrg5X?N(qjG>iexTe=pOpC0BzL%Dw$jiJ{~n5u>Oks3BSbHOn&BDh@?W}MW{dWbv)cEt^9;Sp}?w23`1 zN@xma5Bg!tM^ugfm#eQk@e^4e-*W&JJwz4u#k^F64zPAk6e zZ2qcGByiN|u{r-^O5}bKq22fX%SF+n(Lp+kNwQQox?`}L@nH4>$dUvR64p@o(_yEt z_im74`(U{~2-4bK@6O6v8z@NbD(Ot;4Yhkal!T$#Q@AoUz02Re^HBJ5s)=$r)u$tj z0~|_ezxi$Vr$k$7Jk;rX)__#F{>=&OGE zt6pgP6@1_8OE;yz@?xy^umHm^zv@|qWv3b=6gFk-2ZkNm=FXKsAC`0Ahc@*L+M9>> z7s%eDH8LLv3%K-re!O-|VH#hA6QMKjPshY%Epy0W*Tk;4VB;L_zF*dp z)Oc3-a$y1WSfJ;x+@3@^?J_!|K!ej)SM(bw5IU-pGaFx`+w*sZXt4jhutVoT&vHs` zbqcb=1hy_)07g)3+yb2_TTc0`aml8n5U_ zpY74~Pdae8{|mJ_%R!N?HAodi_j{uH1IfIB@%Gc{(m41~aKdjVZ;jniq=v5zw3BX% z&HEilvJnjWh4t;b>o0yP5J;+{1m%^!5-B;cDmaAJnLkZ^QGgaiT?r+6aD^0NZ|XqV zMn^v46ze$t^kuDyZgNa*e7(ua>UXVa{eAxX`L?~)gJHAPi|Nurb$)gE>uFHXR<$m> z#{(7;FA#eVt8$h%0^P}-RLc9o9a`L4vij;ebk5Kxj;?O*%PRkdO*T$At0DRNq3r_m zkIeGl#oB~d2gxdkczo;u#Xp)}hQw%@oMOekldRhWG>Y=J{iI@HZD7}LDsg$rn>WmY z<8@>&D(9)WmWPk4q*%wMVO+=0PF`k4dR!QAs82LaKq`~BA;bO-0)T%0-NX_|$K1+{D#)7oER0Jm#P)mnw%M8GT~TXVu<(Q%y_reN@Y2UP5mzy!&$R zu+{!A5@cC`fwmhP8|z@!1;yQ(@|RXJS%jX2h6#}My__gmR|8wV*onoqMT&p8arT`B zx$N^h?q-Y)VV;kEs*F|$da9RAgk}3D5y*!}iBB8!n4{nwmqk2Pl_CLl<@-Rrly9O7 z{X+Tqh09+hZ>g6hsoHJ3hc}y8g|&6TCNX^{Ot;pN^dH4)Y(B*LRtz6KsR7M<^mjt_ zF?jmEa)+@{-WhArS!DtTTh49c%Lv@SqLr@Ao#`eF>L-#-jaCe6x`=|BJ46&I^=PVQf<#?6NGq#?wxk>IW42%VLx zR_!O7R2e84Ey8m}9Yh2hB~RnYSNI_r?|ng3yXL9AUyK+NYp3)!)|H>DssOw1z>ej` z5`e*CGeO#5B~`KSuX_4yGeW1Y1;S{&Z8hgNny&_rnV%@tT=+bB zP4R6$*qVXtXTey-;m<267YEhbnBHKB9nrF&6Kv48gubq~VQ5aKW`DCRV+?j|f~ zg#wpX)ePG&I%A`@L}Vz2R;ad?Kso%>I(^@mo*rS@W|A1nbqmg2d0F)J3*u;*%>iynN$`c4)fv87K96r1HNMEo+i2; z6>5CcNaD??9=|UPob94s`Ea50x!gC%aQT_xV5ZpWDPyj52NEDNBPKPBK>Y$PmJG% zxZPL38F8DTQ3DUnS;YeFM%P;e6o+2zXS54E;=pV1BD_XOTfebJNW3guXMv?5$OqTB^jyJ;w}8tSEWdOr2X*G6Jg6Y^b(GuAswAdeh9%cbQtSFQooKqXef#rH>g ze?AsU4&w+o%l#IJ^n>wle8?xlnL9ztZrJsEwPUEpEcvFX#hmSx2drGy0>M?YroL&! z8nfn$*l%&cn_V7`2k5fv%7N*(&j{G01~keq$kE&YIA!|tn&J&&+#f=m<-)7ws)fN| zvOYXUSf4eF4b?E@LLT-*z{NAM)RYb4Uz3Nv2w0sMN3b)Xzjg%AY-(o)X}!!=vVjRF zECb^yCBOY#X-1Yt_b1a7jF?*BG0vd&y>Ea=rB;F(D*8H)wOXMT(<^%MZm}1;vjEKU z`PiuzV4td}@rO`aE0D6@q!x_eZIIdL=;DnSrz*AB@Rg%Vn+dPpxHXhOHEt+t1hUj%;#M)e%X(A1?e2^@RexUur18Ru!WreioW9bau`kkjrpz`c^}mZ( zafrnI&@~1p)T@`5wV9V%k;W{-e^cZB@g$zK;H+~v2j>O{EkVoP66HudHS9WvepPJ~ zS+BE&9}{Aa@#96PD+nB{B%uuCVzn>g61@3?OlRA|rc=GtwBkO|y%$)6o7C{FNm5)i zdxi6=c|nvt@`LUlH`@pAPxRZ1?fL^!Kj;lN> z>}5vPzj6?3GBzC z&7Av}A}>yWWELuAjPMu#>tQK-`__pLFGD{(5jDNQbIM9qHM{Yqjz8Oe;yFo4ZNkR$ zH$E26pfaM_MaVs8A1jBe^AMS!*0XmPcu6>*o)TN9D{IDHS7R`m-w1150fY0Sf<~3P zR%^L*CoYyNxC5LfT8O+{Pw2?AZfUQ*_Afm?wHWo>ho;H69A%I`q0xN8o#6b-C86@y z?(xt3#zV}N7RgvtN4}DHB@T}#59Xh2Ip@VFoEMce8eiEDz|QFYCcG!dg6Z>>ACO;- zg~n+Mnk4QA=oIA@E2s7hrk7h$*R1nW;x=z9id9Pqu8s-p@sa$wHa7Y_M(3Dm%6o## za3l3~h@tA$OK%^{12#5=b2?0ZgY1i1)V{>YDI*4Y-&YCkb~qgo`qS}jOlvI31l<|2 zb?R}_DSjm%?5`qeOG}rFV+JSwKI?^G4$C~|twt>QCl#k_ah%@ZOY$EEi|7v6X`1tf zBb@3I6OGn!g%fWal>I#ScAvMGq=HEFtAx5_Tjo6Nb3TC2mk%Hzw2Pu;hU7W2D>QG(%?NS1Lfool#ir-`wCemy$r*1Ep1!FVWp(K}U5hTWmaT_kHLm z^Zbe9(xCK4Lcdj{+*LvSV7cE`%D(HAmEE`N6sQs2s9?M;K&+9f98) zX3+02tz7;pk_*B1-aB#8Mu~me_3lV)9yE4=l;q3(D-9_A8wgoVTrv1&s9n9RLo-;g za?m)+%`ygFAWB}kFX>~#6GT!fHX=fnSAp#r&rimi{kIWpx-#M2FA=Cogm@Fxyur~I z7FS#CY^q;<$r$>VSTUL-P-yjGi6`IS*0UfkjPtcg%kwsa_!2vQZc%O_t}llW#P{G@ z+QypV_M_MB$BMa3!7IzV1r-7rqw5=aF=G|A3k!#=}gUrPyj~aPBV@&ySgX$ll z4cRJ)tP^yyx^=5dEIR^FG_HA3nOsv~1g>3S634ioZ6Z!qPcy5!RV2P1S7%?)QIo4m zg(CPUQ7X0`v~zS4gO&CEP*a!1d=I{1h|#M0u>5C`e0Naym}f9}W1!8tW|RM-XQN?U zVzE+Z@p{ThkxjT&ucJxhv{(9+8dx^SM8@!zw++RL5rcLljYokJrNmsJb>v* z%EJ{d5|FGfe>qz?;VbebRXF17R$QikEgqrr>B;>YyjQ^-mfrb95m^?`!=AJ|e72pq zCdk5psl;+-qH4LSI@veC1Amb#(S1&GS0zrboSjS0y$=GH}l7HPOUY}P1*arC+5RWYw%W1>1{(v4ngqV!p z6^qH!huuRV3jQDFrHQhTkdNxSxG7v9(MD%Xctd&@zCMkU8HJAYkVV0-Dx6@_*GH6U zZSER$;rk1^J2c?jz!KA|ZgxTijzqUco3Xca7|e(27g zdUetB{o(`ofoFxTVo5gP5bJG>2$|jt<{vF9>c8-R2DQF2IzxHlm^DBi^4Gwz1l2X- zP}$BXJ0s$2X=fZFy7CCC=kkOm8bOLN;u}bJq%XCNX@^`{_D{0Q6ST6mQlEZ}FqS|Y zy$B3#-l?37_CEZsZrIHM7-`!DUCX{zI*|TWDifL; z1`RWg^i^l~#W$y)jwdf_!P!|QrU&&zF%tLCrx9_pR{!+-6d$>XRCbN2<(T%hX06uQ zR~Ne(B4zXWN#f24jDtC!=sy$<$@ob_ZG}T6ahS9qU7%7D$jYp+{5ZjEXxsu$larmg ze|PzMde=!C0=6ni832V22`Kvta^r<$3*SsoaIV-aFONkB$#IbG8FCwLcZaVd{=1zd z5dWTZ z7Ng#CF6I%SEKhWTI=LF7qS4=K3+qWw6;>J_ViB}jypF2P9Bu+vG z`J1D!NLjKX2VvMzn?EeP&9Hz}8NvHjOc59XvqD|U#VB*bpfnLl)#Q}>mvCZ(bv)Dp zA6nej>c}FftOwKZx@CUe&Qs*-nB@k^)aLu@m+aIGeN-DbPtiReJ+hFIJ0$}ZdTCcf zEN~D%(%)V~qywjSNstfn$4Aty_3&e-Xjyo5a!FfPeLcJ3=!vR(J6OA(y`FCTD=|T> zB0Y5xNwCqYj8{l@KOl-H3=8}Q%`hoc^^uX(15T7Gb~c6|hVWZG zSKBi7dgh%O#^(yj{;7b`coS-Nr>WPFV(XTpVn80co}!Q&(rCPVji!W<%5eQVA?Tbi zFF_`7-VDw{e#3%(%YhX)ug5QZ_EXa+XT-@x-i~DQ@ZDJy@>}PyKS2seM zouzRp4#6?;SE}fnADA46NZ5Myow?sx_ z1u9mAy;rry`D@65R#pBL@ziM0Dl|2kL{u#5702n^n7WdaZHYIt9|Su)+B4DYE+(4h znFwJr*92`}=i1xMru6*F4$$ghut6N+yqS~!_4qv7qwg(+AGf2mOR$r2AT{0jyVzCi z(Sz5}W|L8I@0U}!SmyuTHsQf^{;l)JHxbcQ{p?Uc*4 zczTbiDqBGv9nwizT?CsoYEg3UqV%v8%0^p5`|8hUujfNgq0@YV1UmYDf90dsE2$GG zhW~X{deT0^{g=q=tX*kWTRN?czHxXRb&bI{Lt~|6ZH?{|4EJI%$HsR9B$ww$)aup* zHOpIfhT@pzhBxbkWiB#@a4`Kaf$~>JCL_K%q|vcyJ1IhPPQHR|D%Ng-YMj>EbORqo zLB>fdOoBvZnCD4W{hvsv!(LGZY~cu z4y&VNkxezIeVMDXO^b}Qg|PSO_NJ!+@DKQWV9vPRhlzD~v3W2~b5Lx)$Jx}%w&?)5 zLPk>C#@k{&HMhrAp&@T0KM|K?_t6Fi?|yd8QUm6G1Szxa)&`BByL zeCo)eFo${cNvW3!*G{HVznRiy&}wJUwmu3T^?m6tGPmpP9!x}D%l3re1Ll+p#GI%7 zUP_#chE~=Xg@JR7tp>H%jZu-2MFV!4g>!<-?n$)cRd%&qzNszIaS$B*%!yHYYU(aB z;b1c?H9Lp0i}*f`Cmt5!5)+E|RXBM$HkWHX)dw2A{mLmD|5J**U$_7&@7i*i9g6m{ zG#r7n8I44+6Ao|U`I6#3Pln8I#v3dA8}r>>gX$l|q@+Des7%}_^+3zfasOb1Jxyf* z0Pv;9b2zU?(L<_ht6bn24?g^2H_LOFu}OkPk>6KF+MSv9ROhc8PjhMmB@=Jba#d@b z3;HPs4T%J=nOsqHBq63)1;a=9KTMB7zi@cHLE?S{%EjbprR0gSH<|G3iDHU?P!Fa! z`NAM+r=qO^29-d;F+)TWx1F1RMEX9iELVw97SFJrYn?BdEyj)ey-=VfVujv5la*SK z!Vve#4>lwKU<-`$q(z=z?QAFpIv8`l2b_1w2ds)kb>&|>4*bUB;iHym{`W7^7y9|2oQ)OqALehE75WXLls zBrD18FtgB)tXN6>S=uc5+s?I$kfSgqsxKp5Vk4)T68@8TUhIva(0<7yO_44}Lm4-@ z!5{WY;6ndxRhqUs(z9Xx*@7x`{@bv7VtHJ6eP!eR`=7C2tpSI9U{inwKP0r^jq0`a z1W`{t_X~uY0!{N*5ucs(H5T@?!$3b?@*+xaZy}Vu9##4B!aLpl&G@k-6iCKA!p*C5 zG=Y&zpsQ6*udb1hZu8B1pF$?$o>QQO=IPi5-7UmZ&6UBAd{v7wtB|ephjw|Pe`%Q6 z3p#{@wLbm%>TFB$!K`(1BOf|{Twd?{KC9#ZX#v>Yi2NOil0h@8EA8uk8&|5McO{=! zX1{lP1Ehzhpyv}CFOH!kQIOdcurcnKS)vv7CV#q3q8Oe6jG>WAH!}j2oSSAtI~dB8 zt6Pct1MF5YJVT6;q7*BZ?BZ(0Wrl|AOTz}9b;-1HBO`5T5?ZY6#w8DiaT|52ueYX` zmiy%yNr4*U3dy-O1OnDY5}52y6uW|H@G2H6(##DbmcNY#?Ue;&8!ptDVa}Lat~Y*d z)3A%xIz0z!Ds2`@MR=R7&Nk7z)vFFX1+DJ>QIJcf?bjHZ09Qb$zoVkwa}Mq+`q;y~ ztJZlJ)R`MY!HsVCdLE4;)=38R@etIkwB*_wdDjMP1wUA%*j@C^SQw<|r=|WAi&$Pd z<Y`_4Ht&wStKc|PKH4JK=e4skW1yVivU zEL?gVDY2g#-+P%1a{w2x+_t!6IGy!RryB)=K^D=MtVYNFruFJE3hk>?3Gs^`l>4Y* z;FnolQwBrKCn{Y0n3!*VR?27GMqnpVYZYZpnvCXL)z!IJ!j*E7Kc2%iZvB!5PEO$8 zJjW`EFoJT6YS4Fe8YT*1b9oaz#i$0|PYWA5)vR*p#_BOOwQ69AxA$eqY08HU35F=n zkBC2_W{eIkhaK;Xe#~}i$-1hQX-5iz6%xipReXrjUK6P7)@d0u8Cf!T$I@6!?zBfg zA23Vm9yrx%E7(4dimy9gZWK=vTIHK5JIyfh>Hzc76O{mG50S<)y4)N;@)W>5*D6;a^CJRE%a#kfBuh{=3OKbIcUNnWxTLdiiZn1Kzk+w3nU`+?Ivt{bO`}H_-kj zz|>hNCKD#~ zl(uI7@z}w&mWwudEtudYz`N#{TwgNxgjhpL{6R1Bxli(r5fuCxa`wzBVyZ zk(~C|U9#KpI1z`og9~TlJ64MK)HS8EW(D^QA9|ndEeBu}5-)z0D(1_Z#6JhBO7A9y ze-+nNRz3l8OsgQDx)MY3DdsRq)4{Y@F>Do2)Uq!3z%gt z^SqVLvVtWGE()~#yt6y^^E*tpcSbm0wvU?UMELHVEdo0D}chgXi0cdTz;N98)s@sQTXhrQ&Xg;_92lu%b`~*hZghT zlbfzC^e%(KV|jKFe${9keA1(cn(zYZx1-7N@eZV5kZ`bhJkly9w-q^Ox-#|g9dU_y zL<$c-g>H#%;6|=}f#?1GJ&C}GlWBH~kyM(Lxv4tFj;lG|B9e9DI5=5jg@km>JNQcW z*sUE&>JNXjd+dTsi^~i!f~>Evv(OS^EB7;f!-GjuzE@WE4%qmMcZ%)`d*EY_XWjjU z_fY{pG0bU3{kE($@#ZtET0TFt#4O6(?iGh=y(1xSmQ=o=6zOENd8G)c`Ori8SzhkP z+EJKw^Bw%E>+qpzGB$3P4&HJGaWG1v6YTQtiF^!Ck%FHl3yX+smBooDD=RAp|H~5} z4}}q1o?4Cut~gunULJ#F!*-mTgoK1@4nGP8=ic=ThD}b?No;oV5~#_H`Tl)<+$}6s z`On2>d5`7Gg6i#d@$bBS>sL3wWffg{e8hWw@NM9rUtU8W{?H6sfqF^ATgt1u79U~& z2)GCct;9ENyw^dw9e&f~?RNFf0zv7&m9BRCMq=IkSA2Z@j@2m9sMBByGhDCm_Oofb zU!~OUH*XYe5iIar78-9vP90ez-)gqnA2j=4pk#eAzaR_iA>YYEF2NY185?(Xhq2x^wRS zz!0qaIlD$rK-5iHShP0MMe$<-AQ8Hj9WVqgFwj);)lEme2pt`kXd;9^9~BS zH@q51THQ-|b4hPl$?axkHAHej*6J0wE<8m|7?Vr+s5D08kvD?)WlOh!Y16+4E@JXh zqjS!c(yXh9bqy9j@B>Z^>_Jb(Cw3+z(F%AK-sS;X1wl6>@Y(9H#`bj-F$0bi0E&-~ zUnrRMHYP{_-$w*^lius{-7s`rpR>sHw zP^|kD(i{||PCwoGA6UBF^5%~e^0VGb>+ZKhQ6Vu?Dp?7M_~*;FGo)38IQ zOSRy9miLKL_ZQPEhhiOLqn1KzA4or-sFdU}`zI%Y53g{5Ahv9}`o%;e+!j5GSyCxA^GPuSz6Za{+SX8`YZu99Ff!2m{WKkBvf8nBVjc=T0l1zfAFE|SP{;A{ zcx;SMqI@pHDudyzyUV+>S8uM;Q$zZanV39x^Zg4 z_j@6Dz#K(JC0gVCi<1YR@zfIp$jE1;R?kS+_Q>Zf(c6}{u@-fRn;w(cilWi_5N3^Iv87a{pDtVE@C4e(0l_=t#zQ5+l`kW~^l0;1Y${hrd5 zNc<0?u4H7HkmuWaAxjt{v+!aIxeGemg@3Cbcif_&m~@m6yQv$^!rZ;RLRN!T&P*7p zf7X74^-%#X^xkc)0FLJ`*X6{;vLpCmlsrpOz5;NMr#}hy0w8~%3QyE@fImG>9(>ec zp(LMgQRkBoe1B+pk~()inHsj`*1ApmkklEG!$TL#-E#U5jEtTB5#M*PnuDkp?l6C9 z>1kes-1$=?<_x)$gv{GTOZTl`LVrOpcnDOti-SJD7MtAi^oXnOxhVx((Xmuhdvz$% z8J@R>Dh)oWHFvu~l)zEvWB&F9H$<#-Pb+UeCO62ut*TZqu;4y4Q?jlIt}PH4~lDNLdf7LKfokI#LS1mnb?;#uO4Wo3G^C(4R96r)7E z;@Z5rQ`LcZ3$9M&>@ijcuZ!-sK4g4GPNo5JdD|i^8Qu!f%9w5s@DWlJ9Q#2Ta&TQ1 z&F=6yU&?>Z|77)8jpKJ8`6m%B1*pgm+5<PCBrHMxl^W;dIGw&wstFxTMz3R2+R# zA-A;8c+>dXUFO-0o*cp9t{kTI?y?zt+=an}t{pGtcl{d|e#=wf@dK2Hv!FW1m-RL0 zO27B*$JIy_Zzcf|hizwe+4hz zX@oW05YjjLR zolz4T8|!z0L^9(O#%x)wT$=nG82X79(=zXn7=HSL7yr>}&`4!i!vimK#n?W7d-Wdf z-`?DXtPHbZneO*0^cG|ah}itdxHy<3*tLg;uXg3Lo%}~p!g`!rKgD3%F;1uWt1F3v zITG#Sb`kdP22dh zdJQ{JG%3a1xot(TlQmFxCb_e2h0<*1WF_&?>!>=iakxP4;6QvuO|AtgDJiX2T)R%o zbM^rA%`V3E?(!JqvEGdhpe0Y8+0+T=choSybPBL@aABZE<~D3$d#;3>j~2ABgk1wc zFZ%LUFSx<#ps_cHE2x_!vkd*tMELnJUvSUGuIDqP=QL50Hcv&`cSRp5pmE@ERF+_R z<_bX~(+9o}f~Mp&bv^R`8<%wNm;`_M7sX0Dg^z!?;yK8=t1WlzBWG3j7=Pi-DJ0^8 zeiMz|?7l{9QyM-uV2St3W$1P6U43Vq!c$k0%HxXqv9cUXLqUSrZr331^B^nQH;+{XT4+~v}mqeeSA`Ms(gEeYQ87?-(f zp|h0UGN>|x`Ii-jjxE4{QUMTv+Fa6u2r?Yux+e?COaY#{(JDb&7$f|sihx%EGw;=I z;@&z#t3sa(ezNTsU?S2m(#ZJM9(s3~M;@Qc#s4I*CPjXeYJeBnM+LZU#1lKYKeCte z3@%(eynhc94BAwIlemXONgdBjQ#=KjJghF-MeO_7Y*nUlrPB`v{dVcRq7_iSQg4-??E9HSRMpo1rH3!IB z#2`zsi=Z0k>+!N4WfLdq9wL_HgdV`55rPUB6Zx0-4r`czqf2X`ZMd(qpujF{~Zw#QFeECmoq6rKt&>vnV;YBxf&h;EIX?m zWI9~?uvNdt|GiG&QE$T;DC82) zz{ASs7O4|dN$@p{IZP{2OlI@nYZUj#(%`cE?58wEE>bK4)}?8ep^rrYj#7|Xx= za6dZ|B_$RoB%CocT{alsOPruubuzg=Q zLZ1TeXVDBF+O>t2qD5CwJj7XXcV5Y2%Y~g93g+u!m#w>~jPAKg)6hFKYM`(^jwNh} znF%IZBirn=pbNH4^uJ@{wNNdPlU~bYc}H7dR)@xH75Xn|;O7^#G1D~;A<+qg_4oJpyAu*31xLBDxO8mvCAurEvSNwZ zjGRKn2epGNhuUwD)YXA!J#WWy!N?}l6`U)%bviTfJ?om^Ly?#>owK&ZrbQ^ce5Ea? z^86%**|U!Wvz0C?lmZ6cektHer-bSYXEi?mJ|;!?gPasm(06eEaXIi>Sw7gR!2P5+MfxulHUo|8h)*g)L3Jz2U_gl; zpri3t2(}Iz)&wvzMi~UTCOG`Dl1b|7X{gz=-Npbe!9+L=uQ@B6N462cia+Xbr%C%< z@emUZ{f#2kZRLS=bzkY_*C}*yaVrx$MO@^!1%e1PIYj_W?k#9MaCvV2*pckcq?ieP zYLjTpmatC{8A9;JmHJzPvi-WnCzOv^cZ068Efan+_y7x1T(4=%BkQP)$Nu~ubwtcf zti!Bdmuqq<#}Dio;_qYBv6EJ+okB>vpaJol?w%<8<>_(hW0ugZ_x@0G{~G~*|CP`j zoprQqKI#3RnJ7rB3_weMdbi62^CK?H$#Er%a_Ey>u3Swl zZdMaM;#-*B^wJw#p3^lXxRuuUtT2b)xGq@&cu(1^&Pxq^zwl?htE&rt!bPVjCbuF) zw5{r~dMOR6fJys!DBij!@^L{38)uVZ4UNrsW-zLO;*kDFq)h*F(zOwlg`$+`}FH8dHR9D zS1PyuM&uYs4}Z3cN06-1XH>)W@%7tJL(vjXxX7t|$=(Q?gYV$&G73d9Kt21$7naH| zZ!WE!{85DaJpoT%@S7A16lo~fZapUnmi!*#*q&Uav2OxThz!vuOQX5RVQe+7vFe!{ z-hn3YQUi^#U*`NJdzC0086LYXK3U_^^4RT@Dv!d=qnI*!sXvX6_8U@qhKP*}B?3o> z;h!@Bo+sDfRhX!dMf-ehXdLUp31~fREx~AFds4!2Kg7XRI@C5aT5aajse|==MGn7N z!^BBf&RhuwGDCU%E}xk)ONYm7O<)w0aiteIc8F5u!M|@yDv)G}E_?M1`;DNYVskkaqpSIlAZP>aDO;&_7_UupuEK4Ndlmrh6L0 z!JnktdNFf)dOBUA>zKoJqQ1e#Eje@=}o9I+xr%IR6gG~Vx7BSyTjq+Ozza^h*C2@Wq#X~ zb=r+nNqE(}#CrL4=6w9bdxMyI3I+>w8{T*p*4%uMhwP)$mRJ?Atc5_Ck&hJQZ5yy- zp*10)HOk#S?G|oQmHE7%-Ct+M*`ehbXpv?6Y+L-AN@&*S4fob3kktBPCZ|{$ZnnkK>O^hWzG+bGy%)5&y_;M9cKk|Eh-bYA2 zCS^0o#v2t;48e#@Yby*=v zPElJVrQq;f>wMATe7cewQ# z0hIjNkJYHU0Z0?tl!-&7FVzmCLyYb=L&98Ig=ZqN9}N{^_$nV+%kJ!Lc8L9*7PjyQ z%AA!5hW^H^%|tXkWfP?Tt8`yJ`fbFb^~KdWeJGO#*E1~uVJ}NovA%2_@)^L*L4ASY zv#4*rv1n5l|5Tfbl-*>3W7zG5P=z-!8Yi}?2r$t!k}a@g{vyjygOC3ek(LpYvY51V zND9mSpIV_&1|M##6V54!k&%D>q4c$*{M}R}tLoba`d&Xm`yNy3gg z$Fr)B%2xBYCtLRC)_erEiNL?y8!E3OqdUY}Lt4dWsLq~?vss#+EJu0ih(%yH{{1}q zMOqWO^rPQyi5B4!ti|9=U3Ex)P27-5fQsi#XPZW}f}mRW#BhNgq4fNrX&g;)+bgx+d+@Sm5TRRbHN zHuySYMn?vEkHr)1eB%l$0rzrumLCb4V;k6KvfD~6e%qAxX=Jzztj%e>fA0c$ySBRs zG4vt#6RnbLq6v#|W*}X=yDsGo3q1fb5qJ}LIv5+DoD0S{6zO@&q~D3Hr4rv_r#Fe`bFEbnL9f1GOYJ>vZppjm>lSI{=Z%GgK9WRQMphmkr-?8a zjL|4Mi+q|lkVHC@fN^!zyY0*HD}borlrfc`{x;)|9EEsbf`h*O>ks~w-7+q%zLgl- z?8c{`#VV-CDFMB*f#*Bs5tfsMq(m$7MtR0p z6F!jxKiEBAD~?i!6z6G|q`Uke*i1B2iaxVrFc?zuaEE*}-J*En2?;1N&DXBMNFBw~ z0%dr$joigRreSG0CoT}m(U!xb*>7pzc#D_6vK%Z9)IvwQF{NQb6?bPp8}wh?>{~Un zfuYm{B2yC+6SM@01Js_w|L`Co_U9IH#3)u=)*lcLR}7DDzWt2C$1TAj@Gk;Pb$8?a zTH3n+fvI8BY9iN-q;3eRqIO&7Zo=Zp2A^To#dMFGB21K@!5NLZF?>Qwy4u~SO3yGa z_LHqAqmTsWEhi&y7=1IdOUU0DLIO;bKn|J*vocT*ZL*+-a{QC480-ilIB))_b8B}a z#wVx4u#BMcpt6LH9tl|#uwL~f*Lrpgi>+G|&=CSnGaxmwWdR0ZjDa6j*;p`^m`vx= zNNG{Kyg`bjl3@(YE_h~bE3gpj2Y+tRbNvDA?29Lec^(3DwO`kLM_Lila^!o z#jmL+v_%l_M^ADs*H59tCN$A>BcdkulpJOMsT7_@D}^$wG-+%%dr8-_dG+J}ya1O+ zmv&zYE_?|bhI%4;_>3I3(mNQMjCaW%17E}jTM;iiS4q9?JAyQM&tE=*z7ktzov^>G z1&Sb}(tMcP1b{H^d}QxjC)O+bVIuMAp2x(rKKXu++f;jBTxH!)E6xDLXr_L#0~b_j zx5}=848;93>b-la3=o%F9V)_ek`=|*m|Vqc)J}=r|>S5@arNq_~9b9?x%WPumB+06FtttkvGE9p!H(M{K6b z6@;DU7&lZY8afz>&?b*eD|U7PrA+3HxdMT%;bMci%w6Jq66Xo>es~NP#ZScyOdsiEL|CdHnPn`19q$A+$ zV{-S)Uf8kB>-dVvCQ>poccqaZoa^?Z`jgsLi!o~d1eAFL$)EB{f8s-=$>AAO)>3i{ zBsg#H-k1NDa~o2{eP#+3BP;3OO8>z3Yk5cv=k;siu6h0PIh5V|sU^%D$sPj<@q~wx zl2XoCp&W)qn^j(`bn;Yfot%h)+t0u*gvZpFeP?JbBn%hblng0o_fAgM+B{$oS0yDSXNpIX zSjlB$Kq*3Wv?+F$<@|b6@r&f}a0Qd@fut|N^G(zX0V{Fwl-I&@ zl4i*9xWOjGS7hgGhJ0oVkOf%={qg!{Gv$HnI>A9`h)dIwFS3-=kaIl=;yo^%|!DqioSpR^vkkM zp-rP(g7NfQWg=~3oD`_^-xKO{wp5lt4*r{AgD_aAP!m&lT^yoU46jR3Yrfn9`A1;> zi<^oerNLZU4k;Pg8mGegj8>&1I~F}*HG@$kb_J_r1vziQku)}8?-sWpTMu!sQgonr z5>ND*QUh_}O9*KRhB14o%{A9W##2Dt6M=A|Wo<_BQ^yHW;HXAX0JDX*Xj_K{0ADj8 z>_5{gr~yDR!Ms9*{=yb%gsO_g=bUNfH|Jp^*#ht+OB6?0jhlXM%!1oVtEwR-Es2a;ZEV^Ymlw&Rv1W9Y8V_J z8#ckMT&=0A75~EaO(Z@k(=ReIGJiUy$9pdzKO!8BMB#t4_ypU} z1{mGHdj^_ED51#{)0oubw^cUCZs1llYI5lcd1^eo&a?FQH5=Jn58I0dK3R1{F!(AsZFT47 zd^bmZdUUU?paieD2Ol3_{QN6q*3j};j$-_WE#Is3??y!#>%3+Vr(PxYK0r6KutD#W zWF*<4l*pqq+pX%R^g^xT7NVSFiiK$9VrNZt?K#qW7nbYif}aHF@Z?NM&29Akh-E3; z1JCU+FtV<>vWzCba!N+lktDxGJ6PE1NRt+{z&{(Amy8`!pQPy7eR z<&!|%0W_Al%^-9*SwPM-N34rv&tn2a_P!Y8-DC{Aji;dpW2)%b7=(LO*|Fv+}8@TmvVeAzQ%H7=hI1KTn&Xj%%-nU zNA_~w{>z?m7;RQdOz4Q|>W26dyFNj*`M(*{6EmAb28F3cO$+J%{w5u!Prk&!5UXB= zy#oHlk}|4BMS7ODeF^p%;o9?!k+srB$E|Dur82T!to^;~BGVh-NW4Qs%FmFG1euO~ zt_ntf4S|VjE#~FAOz^lO^Q|3G#;WvpV)9D*{Pw5HY1QjBYl#vMWwLh{WpbUzL!7B* zgWXABbp1qCXHsm{R1HF>8rocCTyMA3d9~VpIim+at~Iyc!P{4o#aH(p=q^_~;@}0= zxm2uu2ZkqG?2H~H7eC)S&;n|>xPTeqChMfrkFva3*Y~A3XgvD4} zX-XUF_EBR02C#knw&TFdV)@JS+3E~i)>SIfW=kE)2G`G*OZ&IdpQ>*68%Rc+sLG!8 zQK2`RpZuukK_H#*KH%wf?W%YEqcx~93w$2|5V|(<;Pw*0Ma?Ue+&(_bULf@j+{3t#Q7*;%XW_>z9C)Lkp-xRzyz|U1_vA zz{twMVMwqGb6^NYY=wuP4*S!>-ZvXB-QJ9Y;Hg?_+I0TCC*P-A9dqoPIA9AlQa!+!J z%uWNGTHYr(>{fAo&rAoXGT2|_kzMug{CbLFr?$ldAqIs;H%FGzsGaqqg)29MBRhT< zeSEwimiq8-xy`;We>sY7!e84z^1HwVMsTJ`SdRz~GSw>-(>;nJ(WuRi!PunA>~x{F z1@Ce+j9DeFmc5y$hp4nAdNS!0qtX&8$n^;+#Z-UVl%-q~n{B2huP4N}WSb5|3VoN( z>sjR^`&;&OahtW&eS61b;F0)Mx`14NCiqhfMENbSWhmNXLpQar2XJ;wt@G2S*K>32 zQw?>TbDqT+QqIF$D{p=LE43P{@NBO~Wt=QIwQUS{j42MMqi}Y^M90gP^+?yy`%v@1 zoez8$Pk;huEvI#xsdDIod@281xvKZnFeL(`i7jDa+{*`3(~9@F4E&)DSMegzumh4w zr{*tjK|tk5&P(`9l9Jpw!3W}u3uuZqg?ZVG0Q|}nKjOheG1F+ZR^gfaaBye#doyB+ z=ut~g4^wN$FIGLKu)ydT7tNTO@I`744%X73yUXMASN)&KGB{+yzkNXfIRW949Aqw^ z;@@&{2bwjz<%3?S8wnQi5G1wA6i@!m;%gQ#Yw-|(^tE9fNRW)poK7U|5AwAP)D%2Z zupy({ikXmia4@Gc^N0X-{EKj$s=@WeC1gyKPx^P-{HTnS$4i&zGviX56!wcv<)Z69 z#5Xa}nRj0V-EJ~h7ZHO4>tqS*yZ80KS;#9~XtyjVWuK8q}4)ks)s~Xz4Q^HOAe)zoVD_&uz zp`eRxx%?XNs!v6agBiDf4yQC={@Rml@o}>HV$1Az+mZMdA1#K3Yj&QNr|RR<=bBBg zTps3_s*oTOnIhoi{L`i?lSZcpT?6INCty}&=YUnP<9-&Br+1Qx?2)89e8RNtIi9HApK1=RWM_N01magXFN&kn0=&wlX%U=ec1_=d zflGDKZr?FD)Gv!`gz~Fuf721aWBRK!K$-STxGIY@PwX=*vO)q;Z;SVt46V5@(lR_C zuiYRQh;vZr7h_f5Z_)=M{pxX57=PtsoqfbYoAF7f&V)mT-|a8_J^c#p zuwzt#^Qj#YGV003it?MVsb=4 z!(K8s2|KV@lp?2rK8qxt{?|KrYCDY!OSs4j_iGTp%gX$r0UOJ!tL)~EkBlP>FyZ0O z=()(8&N9`FNZ9m3Wmj04bSAYlfbV(6;)gXrW*cs&vL1JOq3@1CMe?!MvozOvI z-;0@cNiX?1t*D`YmRPjTLBz!{h0f{e@pyR(s(NCTf)w1x@jg!Y_u{P)r5-c*+iXl$ zOI}Mg3Eidn1l$a%80EkP-k{6!v98ZKc|3YmZc5`626OYKfH&KpU7Od!+SfMNkSvTa z`RGzOVpW`Gc&V~w|)d@4wRewsb1JC4ogPxJ0TEx2z zTI1uiLJ@2FVkloNv+X#oFxtO>n{lzll{mkm5QMh((z}dz-fb>~k zaKJOgN2xmHoF)p2H8gQ!k=Tj$Qu-_|VPc)f>IYkh=6ns@Vrgo-XroLvY!L@ zd|Pu2;tPR3-o#60&*yYkPc~zHe>g92s6K&m=*nBnBz*56Bs+=AbB0{3)%sRS$4ulK z!dr2Z&?g|wT_6TIY{n*yxxIs^$GAswA(06T-7$2zw5HG+81<22db^q{q54o zwNg%R=`4d4{kX`eBjBtJc?b>ekw>cX0VUac3%ra#=cN085CkryUiqIWYu~y zmy$ucy^k1RV^Sv_Q+vs{l0S6O*TSkz*z#kWQVK+qr_B*DPn{kKJj_FBmN2w zZs8DGG|kBeVP1Yuxcc;UL*u|P!^+_1;Bc-bwA`*WY;5j7=kSP`SulCv`v zfS}jMbw#nD5J5C;8twKyc)qTo*A`xc5&#dtu?ytSgf z*X)ziFVAP!$g@OX$Kc#NFPs=(yj;A+&MQl!6W63`!wzfe2v5nTgDS#CH@0KqFbf=l zU6LX6a-W<>@(jhA|6z=MP_Qg+16EQ51hQ@d@qAvHFzTq$44*%kmcZ8HF3MVRLhh zzQkgHBIBT>36fL2o5%040>Au|sgOdA(;`NQsUSkFu7T$V+|gQ4qEUi(6P=KJ zu%GC~C$Rh(@L^K1;CYeto!}p=KUL1_9bg%4$w;iI2?dRC(ji3EH_&l$BKb(2G zPo9myE)p`0-aqy&zX<$T+YSB@q!1Pe)O%JT4YnJ)W37aXQ}BioG(H!L4OqsJvyg(= zalRtnKM5F=nlG){-YZV+`l0*VMYSM}tPt?~=8X?HA;4yN}qg`(WnunneO)7=PsAd!cu|P(QH8VP&)1d`DpY9gGaL_h2*! z&-D}h$#G{?WLU;m$gzB#r_E5>2xW&{upP|@?)#Ey&MWBSD_R680AVr;Utap)+yLWX zfq^EPF*QPg7$}D(>!P&E&Je4tF68Rv8v3%ieOg<}b!lRKqC`Vx;g2H+`ND>s4kv%b z8aXg9h*<_;bWBd9$1CrX;nmu4cC%Z!*5G?MhZJA-=zZZg>b}x8E9Z;*sjnh9;b((< z(uCq$W0uWm!?Q}q$1zJ|0&)vL{Fz40YYZ+U>wGXlBGtg-BFjBIgkI?0VytLXr4*z1 z35MKlbMI@@dRGIP?V}bs)njEd$Xu2ANZ4}>avOOFb$@f#MNfZsa!f)5lyP8(q=LdMo5T~d#whF9;6kw5v4^j75gV@Z>^;8?m7veiQTmhMP%ROJzhV@!35`xe#0BITVD> z*^`M@^1t;>1|OljLhoLNT`t%IR@;0JzYem3LUIW{QK?M!Nem@Fe>SZ>lr*L~n7I?4 zzYX;`Ty5I4CYWw_I+#z4YyXgI8WW>q@wf2qz{E`}sgXpPd1mp}J^Gzg-Hp+_&kV(& zTCp&*@63BNCwm88Z=9m`o9)kPDYCbF%p*C1Yr-NT7xzU)>~r}86*AlRP-!{h6;P?r z^bHMjdX3%FO5A1tJ(Sw=$h(p$hTY|1PEJn7EBH$A#aO;nYT!l!PfFOsWxn1%HFzss z4W*|c@+$s`;--qLj76D}4I8dx$MKLn+T^;?S;8O~>y~V5cjQ~^NAV~~R&%nTxay6r zSUQ6vLVh729GkG{S#5H-vzVQtc8IL&4Pslcn+NtaW#YGj;hj2#w0i zzY9-RzT@waH*fP1w43~)0uZq12soio zW9kuI+h5Xqk##AtTi`JUJfVBKc=zbU{b2FdpF_VZp8CIym5hvj&sFprKtS=8+^44no2zoVk`^z?`*d@@pI=>U)Qi6W)* z1Ei!AU22z6NH4q^dRX_yzZKx;CpE)9mYr=bkoERkKWBU7iXpt5bevUI!hN;l@5IDJ zl9G~ARtzy+mjnonQX-~%DJ>!`9pbRs5!ilrcXuVZdzt;Vr0i`;2H09EF_-FTQDREh3>iK$oAQ8j*Bhc z7be8Up(*kcE~TIxZA7&;DJm7I*6fr9_-uY(kcp`dtAuMA0ykLP{D@&6uU z#!8VOOjQ^@uOE_fs5bvfKDx1cW86TT8vjK=8FGNN*MOJrOnU0hTl;gdljs!O?{Zp;s6r8CKY`84qmMu{Sg+;mMb=HYQj(#(KZE zr3YX_UYG@ZzuU*v*FJU00YBrZ(lC7Igyy72jEwY_;sknf1d*lJkaEsEpM5$hE3ryf z7s>A>t1V0#$hZ^SwgXksOcxD+4dRL&= zYOn0iMmYzJm3+n;9&ou}zakiRM%?VVsahSeMFANaioY8MgiXbtKY$qq-yAnghuD)2 z^Z4w-1{mG9>J8DoKo>Re!dC>44VggZKhRR#Y=L_oDCb?m>^LL$>)=uDY&d z{LlL7?#QxD6sJV{E{ZX?>6m$b)}nyfa*J&+-4N81gQMfSviJ2tH=w%i&N37^iza@R zDto*4MGTf{NX}r{1`Cb}SxuDqd4IfycD<4UpG%=l&L9mx>#u5e3WDLDIc8o7VDz4v z+`&W00Ca!aOLkXx+W++-%$13^b{X~SK^2Nk8S;H_Z)qw#hy2of;JaSS|8Cze%?nAr z`)k;>G0odmb%W;k2xB>fR$sA-$NYNPajIy^vauR;SP5svoUsm~0QceumpkN4$ z7{2IS?d!i5+Ps-G?~t0tREUZE)yj&-pvEyrhdAr@-~t?KgWm=r`KPR17bSwC5LDUd zpZyK+-%+G;<3N0GoVpP+Ua7SYZ>8m#c@Oxm9qfG)ymq(j-*ujk_gr4lXN%m&L=t6* zL0Yzxg{#Qyz2lElxv&NN_3N?0m6V24n8PcOC5XrC&bx17{OUn78%fYvNmUt9r z&ER|2t3eQI5U#{}oA#feJ1+~HFv(SvLtk&gy$kQYEp-Mrr;@!<2xCPL#dQwE<7FGl zQRK%wY(N9I?*+4z-?eXHHR%2@EIC2jcj04>XemG2%)~_4Dk8i2+F5plbm0M-DLXDr zvSEG_loPyH6o0vQ+MVS`K-& z>3w<slbYjUm-SsK54_BC4tT!* z>cX$JaS-~vOH;ENAa{R(*F*egEq)AwA?q1mZCz7zCc(OmZQHh!Kelaal1yydwv&l% zXJXs7ZQFOwJumm+c0JUp?yl;WUaNY4y|FzB)weL*-`_v4IHz8t+!Xmqs3-#ph6V%# z1O>#N@1P44Fe$yy2Lxor4+Mnz@2tF?w1u&qh@Gvi=`Uwf69#+R-_>4fs%ZL)j3irI z0B2S>`hPV=Amsu7!C7KS$ut(}6F5LoA_*u0bt1xiq6n2_P_SfS)ArL(ci4yTiVxSx zURIaiMa!?Nu&!r$UlU6~xjrEwK|w(qsO4rNqE<>NLHnDm=wN?;qJ&ua2!DTnULfm_ zX#ZaQpB|?;Y6*!bfB(2%MU4rX&AYtdCi3Cocf|#1ue9)J$qygtIu4JQuyT3J5((WM z0_|+pwBjrKh9V$y=b>8{Y7-MXe%S=8GmP&2x#NR_=h#)akCr%UeeK9hx+^-1>>u2V zbDnyVem|v6ABU%r>$TUEF{nRQIQF+cH>Q=HpdFox?K%cZ0lR8u&#W=ExOP(&?zD&~ zN_=mTHDuFVZ9ZOlo!gWAeA3#^3b^cd`PG9!J+_+ARL46PqEAqle9ztGHJ@SJc6@|i zq$ZjwPoGvota!gi8j}boZOsigm9#P}H-UeZ`N){D+^bOyV;Dr8k2x-)ty*mGu!D6s90fRz76r%A@S_9Juq3nr5@402CH0@pxu#V!xeKgrjdRpmow#be17kRumTo>w^~wq-JLs0HAJ0%foN$zWbJy1>;b; z%bYIJ;dojf7B{5(Q0121qgSB1R22ZUyu?i!niIEy+SEq}Ruy`buqkwGz(?M%iN-8W zn`ZRWL`M?lXEot-L0;2S(r*-#!3OZ)bu@b!DR2GKheSZIW?TBhhX%^JxZmTs|ypM0Yvwb8km&?v9yzz-x**EL+fNc_eVwupyI6AAZyffSsQ;F}ohY4YaTF z?A-)k#lX>MI6}Gc8IN_F&WIPYY@wlW*rZ)~b(l-{r|yAD@UW)tbz5t19lufrG7EPp ztd~J1k~RR%G)vLO(bu75xL9k9iF{0 z4(3uDM=DTLVbTVT<^*`vy(!-F&ksRb^Z1{_wCO-teljcYS`h+6m}Ntv?K zLw)8Km1{GS!9n-Ka!lp~G9VgHyXk%T3*8B*xpw(6s$Ij)wopcGgPlnAKa-_i5^<&X z)RZiB?DP7>~)kPl;94}(muTZ6Z48q9HN+4=zwRNytk&VYUl< z@(C8_!i?iWeJL7zviIkAJtUlm&Yialqc+OAuu2p@;JdqgtY2&6MN+HVBuhMDzmx8K z_RfK+<+k3sWVou2vmvXHy0>r7l%h{RHXrN&a<|MzYY#JRfVPg$S@589N%OE~S(SBE zk--~@P$SegzD^y|hMRZuZj5+(K6f!04oNGk)8o5>njgJEdjK7H4a4^bAtkXVS0kV~ zF*{n@81p&u+4jpaLrz}`JhElX4wTNV7x!w~R-B`7)QmKHtl9JgW_$K4%6F4YJ;&-| zQL#xW>Aae42h5=Mrvn$#=Em;>GY@3~7^R!n_t+USsqjOLIw5&^y5ZaG8$XMuWry;t zWzqY`X|HQ-18%n@_HxH;;PxUGrR{p0b}R%nDZ`P=elkd;t>I67cbzj&I@TamJ|=9f zI1V@Yya!X3ml{Lr#yYd~xy}>D5nm7VEN0w~D2ry^J;ZQhqoJ%y?=&WZX636-g&Gtj zR8M64PHz7s4QE`*u6gSHx++>0e<@aE!Nl0fz~ z>ilS`lmcKUJylQ2A%jyel`tF|or)byCZ@M<`Rs8}eHN!>k>2p=VMX#&TA5|e3B|2V zhYudh*EGnlFq5?5-XG||a);XqcxLw2PtBlEf1EiLZ4$T>BTL#0JImh@iKK6^?1 z3H`*BY~|6S+}1&k5>GXx>|RaMB^TigOuu95w1oBt1ZSLlf?!Wrybth=3p0-gYDSvG z?#1mY4g{fRw2D3x*+YhsYVqh_{|gdh`4fD}zZBJ1X+Uxy-d_Qz%^=uO>SgEM-?%FY z4VJ-Sm0NMCS)t{btZ#=j30fr@EC{O*y#!xN9_Ge0ucS|nSQ;Io5IF$*M4WGQ4j*IK+(F z=||d3(w0bwDrN2PfW{ei8p)Q4)VQ@*yZ4^qWSdr!!4y8uo7+THHeLB|BOjxcw^XGwi!p4RSU*wg+5%uKIhx zc(?s4*>HobH;{9_M*U4C3Ekgu+9Ng7bCj`(`EUt8bNfw_jWX4nIMI}PY_%YH}Hlo{g0FBJcsF!rGDQlf$w(wM^0)_PEl_ZlBX7Vy~1hNtGs({=o;36 z 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 literal 0 HcmV?d00001 diff --git a/JiboTools/JiboTools/gui/Assets/Jibo/JiboFaceForward.png b/JiboTools/JiboTools/gui/Assets/Jibo/JiboFaceForward.png new file mode 100644 index 0000000000000000000000000000000000000000..a97a45bc9b2442620c6e9a4d407c7dfc8fb94a9d GIT binary patch literal 49634 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%0A*(SFLfsC7k zyG0J{TK-oBfo^{EFDu`QSP|kcp8|$zsaTjs(9wp*l{mC9Y4nT9v31L&e_9-dm*d@K z?QqXar;MbM6nOc*?W)~FWn}ZBS3hw=h+rL>yd?{I$=7M5<yxY~Fe0a|^k5zd1cBpM3( z)DHT^FsQ=h2o}c$H-C8OMp3xH%TdeT|EWJ*a+_S{w76}iE@3}$KT7Bt;sE-P3%$%Q zAEU7w`owK)W+b~rKBDmi%_K{NP~~#CYB-3M3~oif@YHH=Q8DF9e@Q`mi-jM0gev%s z{BtE!r?HEOCb z1vkD;HQBJmae}C9?uY0=nJ3N3jiekwV+5ao)I6vg)&A3v9KS^DX%%V%93j7#mP;l` z!0@mlCQ14J0TVcbnZgCFTVN4UAvWBlp!!SQsQusSWT&U6Cya(~q1p4J=h}5MZHUyyEbd2cqAyCni0RSBcyDUC-+}`esLJ~%q_e&%)xI}`t#cN zr5W7BNrgsec|Ac+Q7;krN8ob`3|RJZ=eoEm>JbqzHazV8J2j{l4Lzn+G#mDo0u=pi z=M+A0aZdhmhcss~S)S~8;JDbU;ny?5CmYOiY>M6Cde(z92M69U4yBChW!=;2grhotiU9J)8>$n+SuzF zc*BW^;_;!`O2P{*Apx4pIW4z)J(M^l3!f>pyKE5W(dS_~*IRa+?}IFX{NS;&fT^V< zN93&p$w}%?n|LYMTW`-@cnkC&lcvygmbx`B^3n%gKPj1a5QzzsMEEdz| z)r+Tq$+;1~l1GbZ^1reFK++gjhB&u?zkt1br0aWh9y5@v{vGsMr#Qy3^yc%40c%zG zpw}9Jb`=7HiEn+N3NtlT-_#^1PZYH>r8^k_-Atn2dpOh$(}QVPJ}~eX5Gm>NING9M zS^BgCjO~Aqxp7<=a!%eif%`W2*GI^VE_@Y(q2d&r_gMPP#C+l3P+Q##7YeZWE#LEa zTd^!KB9;8$C@C8AO@oRc`@=Sa7Mc^!1APAaCiKR=eCt!>BQ!<%O!VbWY~-)k&76E7 zc?a}h(+S1R{l5P-P5ZE(;ViS02oFjx81rGE!g_oY@be+jBLx#9kL5<4eI_Bs2~4MF z7DxU3`!Q0arM^%#3kLvK>TrAGy>xKzaj&3mxH!VahiH%bF z9~2d8Dt@N5eVeAHto0)flT|RE7lIO!;O491OJD-^;Ow(CCGPS*PM(ak|tpmHo1me0(j=Eman8(i5!&lpqm^=ll;%8p4UhDnf?vzCy)SJ+5fg2%j+5(>IZSPSX_QeTL~ z6UsU|NRu*T7`rkO!GGM2fe414w`G3!C({BtYAh?Dc@5B9&?Fv)8JB5trr|s?v1$|q zgycI3Ft{WK36xu8Dze;Srw{`|3n4A#7Z$qN{QJc4L!YFYTdE><>5%IWyI$S!r>ZH} z+#1W;XfuO=zgp16W{mgh1m*Q9XzLP<*;bnDW(wL?ZEMRVOLX?g*fDvC!^&4{;5HVF zzV9TlvCMvXLB~Kvio|e~g%K)m@>jJrcO%W1$%Ld>wJ;nAWWdF2#k=rdnPfGvpfLp_GN81I2X8K>W5-` zJExrlfs=mlKuobp4PctmTbfTbje3+$%`S+ z^=GCF%yDHj!$T^`1Ihf$$^PCcdf{b+fKW4pQ-$P^`BDh{{_%;v&j9$+xA|x3VMJDz z3}$Q`X4BairJlXUqTn{Gqa{EM;c=*bq#orBjB9Z6=P&l(QlJeS+a^{@81~0+v)=EX5@&URip%}t6ETw?- zf|^fFq_FOHeK1!Apg4bVRGNg9+WGIgq_i@HMf2YJ`@gt|&BXp1#LCN2bXogwGrCT% z5rUQ;0$I11=hlfyxH@98C$dtBbrE4dTCTO&soQNA^!q5ptW~?PyIe<Fp z&52-lkePAPx*EU=|7~6?R(klD$Isq(+r$ ztXEeK=qt}{rnYup5}~_!O3N*vq+UC*|8)McUo>RI_`ap^ZBq1h5xyhfmht@iz43kq zi)o5<51LDur^!&x0>Fj@0UX&_obSBd-*+=azO}#H5DISVXz*fXtqTz%^N@0*^@G{D z{+W!f)mywWIlUv$v3*zkbfSfPG1;#xf@ASBwF5Hc_@`7ydMv`#yy^!A-+HmN=GUKt z@_i5kyI*}_!KR|AwAd&n-1wc*1!${*2CKfPdzJj=4Q0P&xcJalds!@^F1Ykc++o@_aO>j{^qHi#T`f_b#XA)ubXRj$`Yw1*3<4OIV;4V@poo-#fEGV6iH8 zu5bE)BkS?LFD9~Zd7o92wLrY=hRP@Q*6(mQolgsl3VNclV%h)hUZ z%(2Yge%{HXA2=BeZAF*GD78VN!o$N8AW4Kt3i|MdC>F1krVXyv7I+rlQ>6_-SeTkS zhe$s}6s-dy3zym@hIH*_7GHd{s@Gs_v<`>xZ{GJ0`86OAPYI2kMK`X-`&=}YGL;BK z<9Cet>^jI7we<9Wd-W{lCA7BU8^&Ab&5olOfK3rP>dv=s-<&PGVR+h7|I$dMh|;l8 zGht<$R}h8iX<{psxUx93N(=mIntf$KDt|Y}{T**lSm1AvCaWEemgZ|8ZPW2i1n}oo z=GOt-=PLRoWD`$Tr%D1n_}@@26q;!x7%AQvxr0;-mikzdYdp7l`ErO=S=$!uK^fbT zdUY~UlhAFFB zr4+dQ8}Hlqqr?pX<@I}MJ@{}AFTPp`WRf|ctf5OE4HE*i#dy}hBXmwCt*YVaKSv!( zi`BXRZl7$&EPv|DfQdiF05^}Lbyup}bRO)}WMO2r3D1;t5#a5WeM}~v;eN{c?Fpec zwoL90GN6yIozU6aRlTpOVL6&xbS^KJVi_*B5Tp-PQ8vCyTb~KrOixVV8>*A|Hqhl* z61s8~iJm&|<+X*kp(~a)~4En-A$~gl1u4DG%S7HKeK0$? zWZ{O%5W}}GmUBHFkE^~9X{F`cF`d`RyCeJ?`@+!BTw;d4zoCAWE+3x=74eZIS`CqW zMJ{YM`cv|<6WwW{;tIidL1}YB+FA|2L$CSNILgbBC@#KFL@e8+@c;Skr{&WF0Y@Tz?*|=@#r!#8M)*Z)Yp+6my|07oZDcqPk7IBm})zvy}S%f z99FJK>RjmaDmhGeWTmfluu*h>rjJ?cHe{6#M5#&jd!wdWTBqaJxPNXUMlmJZAwOlk zp|IeUr(?OWx#G?etD0EHcdjMU_^@J z!GcwxJF6|(AjbVF%vm9_TA@}P1|;prWBBC1hQ6T|iB!zXet>oUNGv^RkMP&@u0Q&d zZoCW74Qrro7|(KYdj@g6+(D|52`4fW{UNom<4k!*j#@9DY4W4EddM-9*t-n~_O8-S zQb$2s=e1KW)@FJ}E7>XWWp@+&xO_HxqK&mj`Mv3@aC(~sMT2P_5Z=!)tKY@l4RKP!$P92sf+KcWxobA0%3b zRyN(5rREi{@t)m~THNHuFU?XCVmT|Emn{oo>@jb&M?7qAeEDeC=jO;uiU3SbZu{1E z*s&_omssMq8{tIgMD}@>bzT-wVlOkO{gnsXA&qUUff>~US3`#ue((gHMmPxrV3*NT zO{tNww!Y3I4TDoWKpvt?YO)&lA~<8bAXMS%8GA2mI>1RiDKEp^?*%exb9d4*ch|s86dU<31VQ*hNr^^&L#J;Fa6+oPlI&7$K zzDnr0&FKO^kb!4!R%=5liuxkvVwwiCwjz0BlX--#2fqN`DcD!^G;HfV95d12=^SD+=o5R zJK)*!J~*6aQLNmEEVpn4@Q|a?^*C1IV^Y(k&b+b7rq8W~QH@%W}nFI^z?FgLEvtbntJN2=y3;B_>MR}5Tp zI&uLk$ssW>)>8$L;83P@g@r1OwsP>27^>0-eh^jG4@sa<6eB|pgIyw7#`(vhL1;x0 zZfn9EENKYD(gtdJFUok~54ZX*7p%@V8%jFqSQt8`CGj-K<(yV|+OzD->AtptxSLZ9 ztqd97O{HeAb=!1J^ym-Ofmom8kZ#Jq6^+8NQ-{jU<4@Tb08S8keE@ps3*ZOPyJP2B)xg^Hjm zL-PNCkX6u%;TI#Fnq^(;p`w-jrV$>NQQ!hm%F=CVKNFr1qH>8b5t4%Hr{1x`6ujA^ zjWDy7alZk{5G^7ENNmdnM}K5OU5%TWLCpn2#9v~iIF1nE)w?C$Lc?pHqJ&7!=Voo6 z>rCPc?8Lc6`Gti3TtWc_6<`6-YqH}7vLRMMLX#R~5O2$7ysVIzRcNJ0Ov@HObn>0g+xmi49cuzL8&+Pu zIB3w-b+g@CvB#m>@*fyJpLw~XM1xZd6fS0q#{)ze(?p`VHWRXf>hK6vPX67#!1)%< zVd|fae<#i6z1x-Xg3ED~&;nRHGeHfaZPZr%T38czkwv2jo4@j1qOY) z(NPv^F4*#dQg<9Nh*Np8m~5gCuX{N17zfMYskw19QvBRb*4M|}I=hdM^4EDEjJxf& zu+7}E>&DWmHTs2daasLK7So3}$Gc)={6EY~{N2BZTP3C5H^y7E;e3}Z7)uW`Y^`;bzI)}cU5i!Hq%0~qZ zG#x@7 z3`1g6JmTv(rUUF)YjpQC#34UFv-#(fcyU@Jd^{T;I1mfZ%%`TZ#i5iuNM4XBQY{T( zWma6iA7?f)X$7Xs%T3`} zIX>?i@fdCOM6DwnT~826oV|9n6YG$TCbew-yS0W!I9usY>jpB{t+F!uuO{$vl%aW( z{H-w6!{pMsf*+InbGWy}sdn8;I7L;OwGhV#9Sjlp=o`+_svS?=abSW>NLa0(@O3NHy`xjZ$eXw>3{WX_*En_OL!; zyZ-v5;lnq|hN^Tj9!8kJPyxiheMX4;uCG!6f26m!*lW9A_g!M;Q8g*0?cEIx>_#L1 z)Vw-?It}a%P?DUOpiYU7>N`o8@w2RNXv$aCh34+SwW69p*FICTJpww=|M~D z38S94(v{pDI0mU8X!?x)%~dh`{n^pAc)z_8_GDrG}V z4Al=;3ROpYqc}S{&lk`dlrt=b# zXBsa(L}Ouze%u$&#s2P)AZ*b=GAj#ZysNpN88-o+-DU(EO)brH5WkbYKOMPl z%RfZGq518lzkZ*TZiqNO*Q(5fQ?%Eh=<}>&S$BH|jlF?MR6SKKbelF&PSMfq`G@XR z0_4~*H$-%Qyho{NOH#MF_M$I=elah0Nz2@%&QUIl1T{Eqbs2{K3_=VOwipB;m5+}TtOogrxatdF!!Hx<{D3G1w(h@$mqJo)y00q# z#Yb3FqWjyfE|og|5{>ORNFhQ;#NcXOrxVAebwll)DhV{Pxj7ap%kEhmXX|>((7&5f z_4Fw7M-G&M*ew-NCXw|NEOKdvbx(8k4(Ty54q*0vy}pceEc|_b|Bt6UUcZQS`LKD> zPjZp%%@geFou} zfmKp|Q;dNl>4B6Dyzjbl$jp)6{n8rcB6SmKR4-<n?`dWJwq zYdJn(e5^U;B5}9rz^78T?>|@87(^`Q7}^Z$u9{+FV!lJe+u}K)Wv^tKv1(}IBOt9c zE&+^#pEW*0M@7|5DiUUisqW}pexBH``M}FUTxv@Gx(cfx&*pxmuXabRzgIPBA9O-q zFo=sq=~q`FyG`Cvo{l4!KBEZ&y5jJG&X$z+cr#_E7$COz5UZU&Xlz6L`ExH53KI`< zgN4n=SWp=Ju9gb4p$B8H&#!`7C2#5O%?iOsJh-Uyoot_949$|%N&*40GG5FyC%S*- zd0WyNDVX?@m!aRMJK6~cHHjpjrTq7}7(xv3O8U2`BMk4Mz$iHVA>sjeip7*T<&^RA z7ul$*@e=aj2ydnYh2l^d*YBG@=v706MvV|iJhvf7L&H(%Yh6!SttL%- zeK3F}V#U6G)0H}a;!mD`U)d0`ur^_Mn5?&)3~ry+zxsXAKQc9HSkYTKxosbzjIWhq ztz)M_m^^Qjcb2zdT%>o)S}4uX|QqZyWPz28xOmfF&tzi4lUY9 zGQ&r8kJ8xFaAPM z?6l;au0$KJse+r*81(5<@Z8{KRR-GB&!=(y(V8-1{>v{fP(?yiLsiq>>z~oVw%~() zpc$5?063!Ph4Q)WAA-I{9wV5F993)ZJHMmM6%@a4{xN`;vWVQ*R}AB%Pg$|N@Jf3N z89SDO0mxcKd-`^bBr$LccDKpv*EbQ;{(kY>BbSZ7 zE@tccs#8%MR2FIZga+ndZOC}MJl&MKvuvB#DEv@3rl4=W$LjL`wE%1{L_sb@DS(;P zm5%kmjZ3wWo6`47%c-5dV40tjALc<#=f^No$Vlvp*yuOREOAQu6ZxJK$VMkvCLa*X zerJX#yEV^7bkdhY*FNHbV8>N-pKuezSf$D($Amfw*`Gh1$|8R}>XB;aK|f#Wq*hzU zF)8Ru*rZ!?wK=`CJfOhv*+O$nF(t2-K+x{HBnJBf`HoOJoT{~|40GeK&6M$wlZv2R zhbYF#Z=SGon;~Kfn;*iC=NG<%mg|w<{xOazNb+9(W?yOTC&--Vr4KoVU z(~iWWmzPd>^_beurSoIJSh{?MKY5`I#}t2{Un-{5+OS(;X@&*s`vi|95l`eRXGB%d zCz7}~yAB-WBiD4!ceBj?7(U>wvFEpKHQbJ~k8TV;v@FymqtT*D1b%DN^e`NwvRH%p zx=$lY?WBFV(8d}VY6`d`*FW<$YEg)i?Ae-+jak=``H8zTz?R-WuRBV5Axp#Z9+l@~ zE^|evKj6q~DJ!Fbm(r0fx3vsJ+N|NJb{}i}`b$XH(Q%-P{!CVC2eHPqA+$&V?=u#s ziG-n+RAlRyZ)>|64dhVaQNy&ne1k=qr{`VSWunfm0C6O>4Wydan8d#Gq*q!0`%<5( zn2UUcS_J!mWb6#DtQRtf8&USKSyi`P-;CH3h-WGEw+FyDY#je%_)@jI;NUtkruq7J z8-F~<7V~1oWs0Fk?*IcKa+$@_$*qCt7ii3sD>*O-Z81V4c&cj&WBNOyM*-69|&Ag$8f3=C2t-QC?o!!UCX|GVyo%LiDj#VpP_>zw!OckkzUe*G+T z^YbLyn6vw0DjFUtYhLZBWj$pUK4Yr`nach$V^D%ZR{X8)C5Vqw6^n9_pBi3UzJ zl6>AoZBojZdL#rk`LeY=Rq$g~qicdcOR9)NsP@}&14jJZU%WvCTQh#2#;ft9Hv8$8 zsjsCA;YUrOX_~ce?EnGUVX=8K^=@J4wAxP1Di;lsYGz@vp}e&mnP0`m+KkPrDy4Wj zB2V1Z?)utR_f>pI2)ftFifmADI~5^Ef_=e>onDHXIFL4?OhKBQ_~+sxeE}d4?;FoR zk8j%Bk=wMg*fK1F+=>uPT%v=J%HV8@w}bIfQPxDzAbvlis0-7CjHZhzgT=8=?+6Nw zLJ~N*Ni_;JeAWPxy$cYaPslT1YmnBcE1o27WT1?)eA*CY9Lh9u=ohcDNJuo~=65A^ z=-6^W2k+4KLVN*eII{Q_L>HD5sEaHRJ6}M*Z|;1 zf(j}n?t(0jpT8l%%_SJ5_g4}c&w zzNA%Z@(4L9DDaw|u5}+lgD#;hImnITqpKj)RU4ha{{Hd0IKGQPmwleri^D*GzPtFu z>icSf)UEXuKy00pyqqx)L}wIKq?2xTJ_7YWL;kxs4*+5xMjLyd4qD$%*?nC7re*ER z;MwN%!m=4aOE`>MJC*HX3yl2RDG?R`dw13LY3}0O;`+b#d4H!(~AX@cOqIZGhNC~q6K}30S)p7m} zzP`#d<8A+erAth1ev4mx(OhiW{=P57Cu~42B`O;AeBqXI#~b#U_VLVI$2egvx8mpZ z1o0sw*ZyZmow!Wy5034{r8Yl0!nu(Gebqt=%dWz`#OB`LOQfWcIAMJP28M!zzQW?~ra!4Y<0?s!aw6hh+r~O)DA}`Iax6@`P?v_oPq#pU9iyT=|mDc483h{FtPC0_M zp`bUo8pbug7fr}FRv>N6U3NQ0!`z1;_PYx%L<}T>9dJz-y58O1dO}hOT-x?NR=7eh z44|8VZCBGr@Bv;ggL-?Hf%GzG-h-e{5v`!0oMBvaOfp1-^VeVbSp4phNZ^8CX8*C> zZE|K~V{6CjI*VNNg5DVco`m-C#fyO!db(1RtLAARG6Gq#smj~CJCPKf(UDWgGmBL5 zgvy!N@E#8!8?kvAF}QpVWa$tG&D@Vuqed%iszzp}r;kAnC-H|$sW8N0R1^*~-QzI# z%fK>#D7d|_Ep_$!3W&S-6Hia?vYq9X4G0;traN?n@nwAlO93?iE^RipT(XoLdJjn& z!zX4QL7vMD#C8y}_|61%7S!Z0U*9B+>dR@#*Jjv!F?pJgzstrNgN3tre|OaqPC(t9 zgV^9WdX;k%*RnZfAmNi0wB+NsJN5~Ad}3(it;O_v*q z1I}ch@9&vY(P!+Pyn%F_0P_d1uScm*uFHSnV;~jVx)>A86Sj}_R@gIj0(=G*RLGpB zh%Dq*uF=h0IEeai>KD;ftpoy9FGXp&4mm}))1Yc{v5hv7Nmq0?-3T^GG$RD;-)}B> z@6XZ^Eup{z&^rB_nRAKmDdRhqnRDDRUW4|3WxDOKGUI?+aUkV8$GFO@+ZE0MWzE$s zR2%M|8{PYYqa4jcOfn(9bV{_mLo#K8+%&n3Fs`=v6{NpLy;c)oKuVg0vq9I@#U}V7 z3inEA+JE_2*J@l4^LSv`zeyahYSP}3%%dOLIy+Y;%~5jBeE|YVdOJEgaA@xd6=I}`5H@v!VU;&@w z`$`UDAUq}KeB)v}=ydz&d(E)T1}W*NjZEN8^!Wc`m_qX2G2F$ zZ7hNgXD(NyMTFBrxL3(I=EFRAj+~zq-~nsN-zWSdm95Y??D$@cR%3aYEaPhTXutb? zljFpx>ro)+$gydY>cOcqAdQ2}m%e55>KPb1`7N?*Z8`;0&e>v!YwT>8gWY+N!KZZC zWBH6)go<{}UQYi6hRJY5hrP8Hw;Hqb!uWuL#+d;rbMB#deM?2ah22r+GNQ=upvuVc z23~lCI2-b^%D#ETME#`f=2LvFo9>`{Fn zEZy{uWvh z!`7*%3|$f02KbJWg9FC^NicI$knyvdEJOj-;S4>v5Q0X0RDkVW7eiRAzhsGfO?e$J z9V)T@`a=>Y_*8aUFpp}_M)2Sv4dx!64t0OPK1zFL;Cy1DhV&Ryb)?~Qq5aTe6d(IN zI=d}IdiY}&Pl_%{J4uIQki=GfHM@?_zlc9s?ECYdFH0{e-lxb7z9^NR-=({$`{gA0 zY(i5SZy!L#Hr-t|Ko8qdsDS0exvcho!~Ac7WW2nfOw3uuDX!FS=~r4^Z$B-CA~;j< z9xPDlS&(rxIHEAurA8?{ z!XLn|?N2u{b5dEfk+K~G-+PI%*tbxiO{9w#owlJ7uSVC@4hb5YMKYjX)m6KMhL@MVGKjN{#| zIc~i4-XZIs=;nF>+V&0(uF{qJX8dnCQL|xotpx2&n@IKiZw`dkVxO|O;esQk(bYUK z_*xIM)j_mb)}t{n0R{*`#cjB9bT=7r^v$l~w7N&+5u>kli$ODYYL`wcf-)h$BcnNY z^>{g`BZb6Hqf~w}WweZ-?^Ree@$eB(MsH74X=R2n5fKrUYh;Uh<8u~opuRyl0IuvH z=amk05EV({#JYMgw~dO?rLDK6wLLAxMMmugy2~PfR?Kc>47>&hz4(*4bj}V{4jOvB zzlgYrHTU&~9(GGoLs5jMFz8H19bsPmre9My>|PibS0|6(I4e4NHOS!^RVPqBejXdhIYB(s#kGN zz|ibb0XYZ`s>&eR3n9kjuYNomPw(xb0eR!AhSJ3iEAJ3v@hM0`4v|Nun~IazFN|OpsY8@8P@v7R2j19O2{p11o74znr=K`wy$UzUyy} z2%Y@H#1ALNNuPl9AI=V9FZ^R@vOGnv%r=i!t3@I+cQGi-wp}yi8Mnbp3l%siD>oCz zGu;D!_hP@55ZqR(?h>%qvRi|=_sN?Ei+;0)y`LWgGgdb=-+OY<2ZeHoSmOB-;%1o9 z5$RJQzYCMStd4}d@%ctd6~+q*PrDeKVD`G_$-x)Zdo3nvGMhyLaKbb4K$g~Uq~4+3zDl2;N{#j?gE({#%xil}R!-LcJb zjet>t4<=0qzbD;0wdBIpZ58V97RN)xbY}V?t-B_#V76(!s%%fsn}U&>j1>K6{K$^qO-sP*d zSM6z#|7B2P3P@@;E2#6v5uoxRpKt7aELrS8W9kmpEiuOHC&+zEvUKoFr(Ut(ig6Nc z8zZe?j&$4|zi{$)$xt3eNtZ8diOIgNK|4tfQEbMIH%@p4n%EO(z_b$=}^0PfJ31d3h5%EGmld ziOLS3?sf_Uq7R3`3VEyQxk8VG!SY5fam4BEjmoMtmHF&pQ7b*B}}+%~61#0WH;f zL3wm`P8B|0Y3&b*?yUhf>)Ruug4qWd5m?mBG=&@FS`FmBpjQj6jUr)K6MF`Ct)tkF=<!baY|b zz7EmWzfC1$+dFG3cPuthpiAf@Oxjm$rFH|Ga6h@cYOHahKMpwX5$oQkOGMhZUc&coIAbO`pBo4GBBWvhDYHL(jpC++hD13w8-Io~7d*eXy zJzBwP#W)V(F5FS8VP`>)8xP$>gXPz#T5w3&DB!R>|3?uLeiLCm>DlfOU&NY+K0)wf zh$3RtRI!ck!qT@#?=w2{{h54YE1Ksv{7B~OX9>FSYSDjxln z>AdSd;>&*|b_-GvuqH{6n#}liyFMx}GS${*F_o+@PC7%nG6E~L9vA*SP;-3#H5SLo z@&&YsO7AoWfHhXfi-PaT8k9LHz#nFRuK=J{+!1^A-0+N2f1&1bY~>S&&*aYS4n9;oZ^S5CB=}(?Be@;R)wZ0S42}9!WUriO%}J)65V4JhD}%&J4#FT zqUKl9tM+Qr@4q6jYO*IJW_3rW^!4zViY3ytEaQHDBT3%V{zmTDU3W1Qq=`G(&cRDu z=RT<7fPMWot`8#m_$djw2k~ouBk0{xi==F>Bv{j`?uCiM%bQCxTQ3CuZm0L-7u@>! zJh>{e78}nA{ltFw+qA@&tL*9@MTh!p5hqdJW70M0Rho8A^>0l_11G76{xbb9u|N!e zXmG@e$Y`Z~Ber9lB8Th^MtCue`0qN5-P(lCJ_21GQJ=y7qc15Sm*Z>b5+HOmZkeeH zh-8{Q4q6FZj@BL792K?M^|yAA2(So%C{4tjSewn1rgIzCjvTkAPZgqI6J&?)vKYux zg{fek6ouQW?B&Jp4C@`SkMf81;ISL4b>RnCY9?u_HDfloBzPBC(UrTOi`^3?ZlmTe zu3uKnR_7#)6VKp;F?paVgNh@PL<6I6Ule}_0t+lhbZbX=wfqFk`AAQ1ywGaa4Yf={ z5y6Y8I-fW>IT1 zMnEyPy6WTDzxFJ!pCkeVH z7;7c_{lnp-2EmFdeLc~SwO3{dGfslC9#69=Fg#zK{lO<05;q6n8{fr|*W`s$8$P~q?02$k|1kOaPYvB14;VMSxH_W=pjUbNObvwJ#h99}B~^X#4CH97JWKmU$RkTnsJ@+htoe<&z#I=pg)GiB?46QJ_9486kK9~Qf&gl*60lp?;%}7F{kIRsG@dU3UW$ym!&Q6R| z(c@3hkD39h58!HQ%kl2LI10|hwejc9`$4n5+xif+*RmR{&&oe3n9kfDZ&;m~ap76S zfd8_uy?GT1X%%krZxWdxKYcF3Y+`V{5ay~b9D-u~S8(u?s4`$auiJ8-3U2SGMr%h= zzE5&ZP@9N{h+<1nsAvSB+%!uvC0<(l*dH`^b z-d!Hk$+Od}RUzfu=7yfmdr}x|Kgut!Mf+DLC|oNRrEXDb*N3y#PZisiY^fjxAy*7! zRXyT@Y0lc~!K&fXXg1Hu>&Mh6d`?q|NA79apOn3_|NHK>h4TP$=B;+tKD2)$q*?u5 zLu7*g+a~bTE{m{I(ucE`w!1QIw}?QfGJ6U~?eocmHJK|i{(%6x6DPiuFbY4D@1EDj z1Wdp1mNzruJx9apUcsK|9;fTO^$*3J4&p@9*KQ8e?zJPOgLS1JevyM?8+TM$>0z8~ zjs}iv=I$n`pgG$5y)f?%^03(mR%y8AQn26emtPcp>cZBz+QJ71db$opVk|u(bIL&X z(sw4G@ERg&Stin&i;RDn7yVKBY~QmyrSjo}J?!oB_8d&doy1e9T&$ilFvO0QX#SP} zuJe^LVI=2Hw}CL7Auj_OJ{aa-_M?tW%wXz7pZ4cMD8!ICNUWwvGuZX#&_0%E0XMa&v-3#|P=eCwLQ+Y_IeiEvQt;@OmfV`Z z_6vZ7c*pd}J+(IJwxmf#e4?$jtX_TeD(jH6Z}KQZQKi*A`666OPC^Five5r|kz#OK zbyx>)@Od6z7gDBli#|s=zUOncWfWpEnnUzxQARgY?`p(7v?q_n<(1qZg@1nL`@&@V zJiPT7LwU%lC9QU!yt5PRlfee*V;7iru0huON|g9P6ct#K^S!QQ^|b3IklgB_@%K)%wu(}G$pAVk3w-~&!m;0cb6jEqp>#q?0P^#8+w z`CFYCM-m{Iu$b~-&JHLJk1VSR*-sn1ebAqHK>T{${c_SfZ=SJ!gNjEEYq1?LL}}Hg z`rU}}<27Jnaz5VaCHMH<=};R5E)&pCvcZ`tTL18Eu3U;|Y1V(zrM<1bcxMft)Nd_sgt?^EX&2z+&g3T3g9m)Z*-TfR z@l`IZ{lY6|c+~h{gU_(ah+=Q;KsujKip-2C6I6;_QK*EFWo9pFY{K&VdMLt9HDg&h~mQ1i~FZCw$8PQ|Z8;kJH;ki{U61F@t zy<3;6cyk&njf z;FS?4BnYdxqN5}#aRi|2tZOlRN!_@9mG^&IfXjnR%dgqz9(dM$ogtlEy4D-Xt+e%e z+r-%57ZHA@1PgZM;&1;P!0O#*E-|JBgcq1b00s|O@FFb9ouQcryvm++(KXeECScY7 zNMyVdn}Eta%M-gixLf1X!4I>?aF&R*`C>_!>-0&`qh_wWCN2v%gg*$3G)n zlzWBBkh^A@V?i(>wtq1rOd2^1(j;bp)Mov(1(ppf@wWK%ZCn^iO%x~SonW@QZFEqy zxt6YfhXyDwdHa;*1CdJ@dM*>ZS7!j z{TaQdcx25I`Od5^^brpMN1iQ`EEHkEO%%LV-@Kb8QblFq^qkF$L|m{Aw5D6J*~HJ zE~2S898YjUcZ-(A2Sf$F=|a8MQx%3*-pe(-DdGDuRBqQ)l}v5lPozFeA@Y=~D5R0) z>B6J*&MYPE=EyZpX(P7^?H~V=C~F83p6IuFpMHw(c-ggjDETU?bhMs`nAk~vAdhXu zYEWzRz3Chf+R3B9=|l2_QzDKFo+OQ6gc*)p&`N_`Jl=(vGN%gA=1pkl{ zgU1Awv8c|Rqr46&)ebPCYIa_QIRHmxM~Wea7GFFB7RN_I4A4_eW>)I+U&IFo%j$RZ z#D4Xgsi&AIpJK|a{|rSaP-){RaLx!Ph}4}^;PA+9kdlF~`-!?TlPRZPq?0gGL@$sg zqF`T=yl_u@7vrmEgf!*QWepmgR}1Z3WYlnMC1}%~Z_x2^9fO>wW)kV`$C6?owaHMRwtz_>#h9O@a&KN^b`+N+oI6!2~yts zy~F?$y;^B;QVk1`f7WS9-kmsDn4UcB*A-EX%qF`sp;l(Yf<}X1 zL8}{zUdm)sO2V0aAc2nGwZYEI+)2Z*AnEsgb@{@=+fq!9Wv}CU3f%X z;BZ?irUnEzMI;|7reYW=IE`_yz+E4rBdJ&;l#}+Zag-r9x{^3zyeJ}s9Tm3 zHSK3|FsX^+xCHD|Y~@Cp&4vkGz_$A4$42HGX5NhqwXv&3ubh^{`uT-!YLkP&b&1U6120i1)<>F-|QuD(aJS)bbl2rN@)bLKO1t zRF&UP5#8G}UIQ&h9%>wE10o}HEl&a|vKAoq7Zv_g>h|`pPWxDv+t6zRUBodqAa(tu z#2T*(j3u_xrdzj!=-RIqk8eKg0zsttId^Q2OYQjeZElO){;6<)S7~!GSY}Ckm&ipz z6(ur_kukCH27nRS=+(^KCb)Umir_b5Z-gE>(vvxp#JddvMzKx=0v1z zS1r&=+~&E+GUI`zd)p(uis|Wx-t-j$XqCDFDQ%Ic_e>_JfB}Q0HIaE1Ej)a#5YlMjDTN zF>x2#?#^|t!3}U+*0l)*{-5wtZ2maN>i*RM$0#)#m1xi(Mdli909UCz`JJ$gycW0B zi9%AvO678l=tG$79Wb11I|TF#hP@rJP-M+Wd0T8m`B)`fy<)ndT(8D*zU^wMNR%r%%D3gY{R4#zQ5@ zGSwg$OstQI2k0X(*EVi25&XhTO_W8o)w>Ace?92#o|}=-1>vlPnKWhE4YTq$5{C1w z3fkAt7m9$D|B2#ex3*Zwv7!_Z5QbcDc$`<-3BRz#`G}+0zOCH;j|ymQ`#ksgSNEO% zrMo0}Gzq9cnh$_OZIkUClF^#4cW|3F32M8mK;80QRy4-bi8KR4{_?8XFW!TF$_3BH zsy6b6n0NGjbURsJ+Q`GJD}6#{sZ>1*Eb#`&dxqT%q{m8(PtyrEhFY}g3#s`xHgox! zn(9v-=;@EUGdr7cc3R)fRHM^+N%aV~> zN}^%<>J4aprbSajI_s&6AVwfvQ)}x!-gXoq_keE%2cPtNQLTPx(3`)#84fy1OqE0- z&i)(E2=OZlGs`M;2pWB<)Pr>@{y+o63GSbH!>8-w!pFjqZ-S8qGap>I;%?QA&~GBa zjp!FLzE5D3IL_}f(S@1f#=KM7v@xqVA7iqZM*ewb&_n*2{;Q&hiA)i@ITkpCEkV?508p&d z$mUaHgb}J#rG=w_oUg5R#3t`ux{4l?=+%N7!+0OiXXs3!mJ3UYE+x^zClgjIFfUHH zCNNx2j9-b4YD_ce3FZ4Ck=eP#Mf|t;$=oJWk<;dueh-GoRWgrscM3Ev9H#IV+}H#Uf z9AD_>o5j&ztSjVR|0cKzpPqR4mDlkmWoZuH+p|I(y|R5@^NR`jsNvL_Yo8aOd|FsI zto1pl5QgED*KyigJodq?ZR=AJ$iI9F;*ysE7o>2@>XtTK0{W5k?|y_v&@yxyu&&oS zuqd1XuS*yK83dx9`+Gp~8VidgSB5h~fGmeYG>OKidI%fLA7FvWWYNROTPsu+q|&%6 zN+xl{vPw>he{CSboS+&d0i6xS>tH>vnMQamR8vOKVU|i?m@Ni-Uvo*-?`htUmDe`2 zCj=Y($#WO@lfTG9NlG2jc=^p+;LjUPRtBu@Da<18nQIr~IqZ1lxyH#K76Va@?rOBN z*DM^3Pn3a%ifX-p{X-v95#~!MnF}7Bc~W1lUuXMJ*G#i&;W5auu&$P}V140}p|O<= z?G&Tle@wsW0+8E;`eL86I}MlsDh4SjeQJW+BpOX+yg0!ECF>^Q(;X~4kt@s>`H&=U z*AfXTIGdqm{SQCzd^N=J2MUwoWqu`J77znRP4JHXuY3<#(lh?@RH97bFH9GuqVO6E zoG-*k)m_2H{vMh4wbDMAdpVxrhL!w^N3_hx{k4=X&v7lVKePiA;4Q{kE7ukY4Q&I9vzD>pTdP_(rix6JJY017e$f8KN$$Wo?#3Kd$=t z8x4r(RH=hSfT#X9rVH_ydC4o%gdE7n`oDYza;i&Zru#iTADj4M%wDFUtt~&_^QYWE+ht$^_h*D^&Bfl`RI3Na-7%6J)xd8Sa0ZlW}%&aLPHvINhD4L z!}{Ot&i+05Hr;ATrxao}>PsZ4qzkyDUlD8*OI`mk>6IgSV@QKV%#s$oio2oM(WqUl z9vSRCQpC)*KtjXDC#o*c;K~0pAcE}urJ^j7Y@s^#y#l&(%Y}`+Ad(zK!HXJx~K zL+dBH0oqmm{x--|*;u#?2`&!KOCTC%Q1YPVv-8{7&Y3!Hd=?Bg>0qV^AgF0}P{vTv zM)~tDvrjTkXR*B5PVm=AM&G_gV2oyd^h@GvLUlF{*u_3UP@q;A{;4g@4t9ZtX5Jrf zm;4Sw&6ZGG0>l!zg!K+3^h^%Ta!2`LQthc31JLWuFAfdM zfi25x%omJwt1=w}{WFppkdhj7fadNb?udt=j8F@#4|4`7KTgV7L$e8>f$jXcR*4Os zky&c%48%iNfb#p4oiHU(@V7@W!6gW6tVwX06Q(DdSEHIl4ua@TwP$d-wcd8{W@hX6uH1+ES=iDRefgzVGv&8K{!qUes~M{ z4*^Xl8ZqD%B54*yz)XXrF8a8*gW`H$(wOq*Yr_TcJr-RWwbZyNU*XVKGI{MB6k@x9 zkeIkaQ}R;GSECDqb`>Z&TgQNfdjCQ8!@;ALKhcE7KnZqG6!2kgAM+wV2-3i<56s>A zQR$f_`8Zwt{MfV7u=94~S-RmGa+L|W`sr+I@XW6~NpepEQ>h})3ZG!4iSL06X@UZ< z1Irzqfn!9>Jg}$qtYy*eKU%%PxQ`u@rkmzB$BD?JmFP1p@wzxm5caw>#I^96EM8vd zFZUt7oYp%`L>D5nn-X@yckdp;ep{6o@XsjlX7kw|O};EM{bOHJ$xCCd( zHn@wJoPow-q^%@9_=_??A7Zayig;sDe3%$=G%KTQ=o*PcFySZ&0&@8`Lwv1?zTK2M zCm*6e2lSy`6N8Q0qOv)-v2X$04lOP13kN`sM^5cmyYqDJvO@@~V3!qxf{ZFKm(FzF z&W;>}*X8c8D3_fBe>83YyubWrs%yI}j&cz^@S{Reuwg9Uzh;lDbgx$s{dZqI^Hy0h z1lhQw@LbIZ@H6#X&W3h@;BL`!zxlj3u~V{Ur_rWTzS))BBu}xdhqEOwP}hkl=V?PX zwXh$RyCgI~*IEh+BmAV-{u)Z}oA&q)kZgp^NGdvPC z%gWm>=1(IXXE%_kBf?_etc{2NZbXv(o$j0g&Qz)1x)dNztA1ML&>chhov}I9_4FI* z&IQk7pB*1qb!aRzi+bFHLNycMM>MTI$Q==+e^qhutxC}TC^Soi!Xg%AjB!8btVIM) zP1Si22!nEgu%Hpb6U`g!cW6Fe|4EjLBZjHq0|ewSz9t8svpsf*+VrDAymupQuww5) zJOU9V=bDDSGN%A8+R4K20||=QwJ8C4oBKlNf?yU3vd37O(^M)vv)b06Cq^1j5oAr4e1y8$y{pt&CIC(+wYQ z3?QF|V#iB%Y+xALoNx&3s(CzMA@g{Mtrvk_lsT2P0pd(VzSR^9jo!0=dtYWW?)y_t zc1hCU=(&6bkljO%l5?L=RUOcezOsQnV9jTx5>U&&JEpQD5mL?oyt?PY5#9@!(#GO2 zOEv+5-DB@w@tLB^&7J(j_B>#8c)Ph}K>6+F>IEyfj?{vSZ&q%nxtA#j zkqO)qgL4n^_n>w4&;cznjGBF;ztXM5Hn2(w@dHTpSrRozTm^y~KK2VUv=w3BNYZ@R z2CEz)+(@TphmEh0Ac@5}XU=V*e8VF=5G>MW2QkUG5Pt=kBnqaz2i4W+&-$z&`yb%@SsnGJUM{1A`yEEsp9PW2jvMaMMbhZjTMgPm)#g9FzL*qMtE3M&(*6FEka zIIiz}t6yoaCAPq5lvX@cFoaE&8w~_LM_p_JOS#i)V8<;|Eo8aW>chKklLK17U@i6R z;|k(sBh#kS?ZnXzZbjqps0d)$A(;R)zk6>BtC357$BXWOLf4`3W-IePxxdBh_;TNP zqjw4)l9~`=z|gt$j)Cu-8jgUAdC~B?V=l_?o{s zmZos*l3&$Z8FE+px9bu%yF|=Y^y__NEY&)&-w$Pgc6Tkt{#2e4515nUbCuCel3(Qh`i_0^H}2le3T zI828kHs`g08OX&mUZ4I3pxrj>IWqIFzk#r+NK&v2m&Il9DSV?OofO|LZ8XMI=9iX! zF9xzb;O=GM<*XHGso7)y8}N+zXW+$=zZv}_+86))+4%du*dfKb&1vWTrTTR< zyzv&>y_uNEmX8?*;o<7We{=5k^c~e=>j)JXCgyIPAn(MhZ**teCrEph^7(AcH;tLOYaH5xmFNc;auAv-f&x*G<<{Rg zNE#Q*n=@mHwI24#AoZ{7>_oNw&~Ax0wgx9Se0pC=d^3%gVQM1<1kwYKxNA&8x$tuU~K^Pew??9dOZAewgpi|MUOFb<^MmKPQ^_jAg ze%|AG89sZ`;9x$(vt&Z4N*Cai6S$3<-FYp6b~}j2xYhd@h_3GxTHc-4e35!7x}EJj z1U{yIGIxh@?6fy`>&2?o9tA{J0T)&*6!PI|?k^A?={FM3dI`Xke*?%gf8kFl@JXxNr?ig{=dMCG!}RkQ-RG=yC`rW%kHtDrkKgA+M*v=vtmsSeY1ZaPRptqA zN)ydk$h2{pJ-0de2Yf!!Qffi`1~YNW6Y5 z5vz`U^W4TvhW&*{B#bw%f2y8I!n=sqo|*Usz01~YvQqG3CYu6Bh&^Kp_6AmnMZix% z(BQJJSP`;83hV2Oy6Xo8jzyh4fEjvUAJ&fhTM_khxNoll!-b6+9b^~DLtgkp&k1GP zoyKF(qc-?Zd_hA?D;OHOkoR}@K^PVOn_P>)-bvEyw43^lI89$}Oz6*fKI%3ZHN(x6 z>pfXwya}c5n|5JkZT+F(cD>gDs;Is*3AmU<5(p#$OUYN^)f62PT9f8gzi|Jh7}0|J z!)2tyl{oZF9I1Z_t1YOxs@lr-J90@kbd820ca)^}9!v&7_kgzguKJ|=+k=@a1!ws( z?B_#OC_JXa_0g%ZKIaVfQ}u!GdM)#-Ww$8PKk*J2Ev$`mwwK=^SwF2Z0-LHUCXw); zFI!LKOc>Xed;$I%6Y7+y7Xi8#fv@U=T}^`SFaC2}T&*-jc$U>J$FN4Xd>sKD2DUSc z4Ggm*c&z zv-h((_ZibmLsED46-K!p$q5(SM;<>vBYS!MR|$@QV#>p7IiO)ZcE&m}i9QDv`m>1% zi9!sc4)!rutf1ML6xzSE{j*M(+JQAu2!<#g{Jpyd{X2M}P}dXH6{)PtfKz1V&RJ%1 zYSan6Yk|4}{O!91ulBPnoaZuf?i(cT`eFzZ)P+e4vHuFDaVCot1KA<#pSkgAUqURh z*IQrB7oey+=v^xdP0`mc-Jr?O-=M%=Yxz*9O#G;^i=4=Z40&(Ye!PT2UbPJHLKi^K z&^J2Tf-Y-vnz+gvVL{iF@w;9@S6*$>sANCcj+OG3BUh^|k2G%7K$bvnxlC|KPaB~34p+TFh~6W4rrV_d3c9o6z!Cin zIcene`jK1C-S_!6zlKEO*Rp|3$iB$7o+z9&9cj|6@P`Xf%kFW`AntkXky8M~EYJh0=0h%c_EJ3(tbnKh%x04%*IN$$fSMGv32cahL z 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

$K$wUl9SH?kLG|@fb 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 int: + app = QApplication(sys.argv) + win = ToolRunnerWindow(title="Installer", script="jibo_automod.py") + win.show() + return int(app.exec()) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/JiboTools/JiboTools/gui/main_panel.py b/JiboTools/JiboTools/gui/main_panel.py new file mode 100644 index 0000000..49427a1 --- /dev/null +++ b/JiboTools/JiboTools/gui/main_panel.py @@ -0,0 +1,318 @@ +from __future__ import annotations + +import json +import subprocess +import sys +from pathlib import Path +from typing import Optional + +from PySide6.QtCore import Qt +from PySide6.QtGui import QPixmap +from PySide6.QtWidgets import ( + QApplication, + QCheckBox, + QComboBox, + QFrame, + QHBoxLayout, + QLabel, + QLineEdit, + QPushButton, + QTabWidget, +) + +from .process_runner import resolve_python, resolve_python_invocation +from .ui_loader import load_ui, require_child + + +def _set_dot(label: QLabel, color: str) -> None: + label.setStyleSheet( + "QLabel {" + f"background-color: {color};" + "border-radius: 5px;" + "}" + ) + + +class MainWindowController: + def __init__(self) -> None: + project_root = Path(__file__).resolve().parents[1] + ui_path = project_root / "form.ui" + self.window = load_ui(ui_path) + if not hasattr(self.window, "setWindowTitle"): + raise RuntimeError("form.ui must have a QMainWindow root") + + self._ssh_client: Optional[object] = None + self._identity: Optional[dict] = None + self._connecting = False + + # Tabs + connection pill + self.tab_widget = require_child(self.window, "tabWidget", QTabWidget) + self.connection_pill, self.conn_dot, self.conn_text = self._create_connection_pill() + self.tab_widget.setCornerWidget(self.connection_pill, Qt.TopRightCorner) + + # Jibo/config + self.jibo_ip = require_child(self.window, "JiboIpField", QLineEdit) + self.connect_button = require_child(self.window, "TryToConnect", QPushButton) + self.jibo_title = require_child(self.window, "jiboTitle", QLabel) + self.override_check = require_child(self.window, "overrideCheck", QCheckBox) + self.preview_connected_check = require_child(self.window, "previewConnectedCheck", QCheckBox) + + self.ha_enable = require_child(self.window, "haEnableCheck", QCheckBox) + self.ha_server_ip = require_child(self.window, "haServerIpField", QLineEdit) + + self.ai_enable = require_child(self.window, "aiEnableCheck", QCheckBox) + self.ai_provider = require_child(self.window, "aiProviderCombo", QComboBox) + self.ai_endpoint = require_child(self.window, "aiEndpointField", QLineEdit) + self.ai_key = require_child(self.window, "aiKeyField", QLineEdit) + self.tokens_used = require_child(self.window, "tokensUsedLabel", QLabel) + + # Jibo card controls + self.robot_settings_button = require_child(self.window, "RobotSettings", QPushButton) + self.robot_action_combo = require_child(self.window, "comboBox", QComboBox) + self.jibo_image = require_child(self.window, "jiboImage", QLabel) + + # Update page + self.install_button = require_child(self.window, "installButton", QPushButton) + self.check_updates_button = require_child(self.window, "checkUpdatesButton", QPushButton) + + # Status page + self.status_dot = require_child(self.window, "statusDot", QLabel) + self.status_text = require_child(self.window, "statusText", QLabel) + + self._configure_ui() + self._wire_signals() + self._sync_enabled() + self._sync_all() + + @property + def host(self) -> str: + return self.jibo_ip.text().strip() + + @property + def session_connected(self) -> bool: + return self._ssh_client is not None + + def effective_connected(self) -> bool: + """Effective connection state for visuals. + + The Preview override is kept for UI testing, but the real connect/ + disconnect state comes from an active SSH session. + """ + + if self.override_check.isChecked(): + return self.preview_connected_check.isChecked() + return self.session_connected + + def _configure_ui(self) -> None: + # Simple styling, roughly matching the previous QML look. + self.connection_pill.setStyleSheet( + "QFrame#connectionPill {" + "background-color: #f6f6f6;" + "border: 1px solid #e4e4e4;" + "border-radius: 14px;" + "}" + ) + + # Provider choices + self.ai_provider.clear() + self.ai_provider.addItems(["Self-hosted", "OpenAI", "Other"]) + + # Robot controls start disabled until connected. + self.robot_settings_button.setEnabled(False) + self.robot_action_combo.setEnabled(False) + + # Defaults + self.tokens_used.setText("-1") + self.connect_button.setText("Connect") + self.jibo_title.setText("Connect Your Jibo") + + def _wire_signals(self) -> None: + self.connect_button.clicked.connect(self._toggle_connection) + + self.override_check.toggled.connect(self._sync_enabled) + self.preview_connected_check.toggled.connect(self._sync_all) + self.override_check.toggled.connect(self._sync_all) + + self.ha_enable.toggled.connect(self._sync_enabled) + self.ai_enable.toggled.connect(self._sync_enabled) + + self.install_button.clicked.connect(self._launch_installer) + self.check_updates_button.clicked.connect(self._launch_updater) + + def _sync_enabled(self) -> None: + self.preview_connected_check.setEnabled(self.override_check.isChecked()) + self.ha_server_ip.setEnabled(self.ha_enable.isChecked()) + + ai_enabled = self.ai_enable.isChecked() + self.ai_provider.setEnabled(ai_enabled) + self.ai_endpoint.setEnabled(ai_enabled) + self.ai_key.setEnabled(ai_enabled) + + # Connection button enabled unless a connect attempt is in progress. + self.connect_button.setEnabled(not self._connecting) + + def _sync_all(self) -> None: + host = self.host + connected = self.session_connected + visual_connected = self.effective_connected() + + if connected: + title = (self._identity or {}).get("name") or "Connected" + else: + title = "Connect Your Jibo" + self.jibo_title.setText(title) + + self.robot_settings_button.setEnabled(connected) + self.robot_action_combo.setEnabled(connected) + self.connect_button.setText("Disconnect" if connected else "Connect") + + dot_color = "#2ecc71" if connected else ("#e67e22" if host else "#bdc3c7") + _set_dot(self.conn_dot, dot_color) + _set_dot(self.status_dot, dot_color) + + if connected: + self.conn_text.setText("Connected") + else: + self.conn_text.setText("Disconnected" if host else "No IP") + + if connected: + self.status_text.setText(f"Connected via SSH to {host}" if host else "Connected via SSH") + elif host: + self.status_text.setText(f"Disconnected ({host})") + else: + self.status_text.setText("No Jibo IP configured") + + # Image swap + assets = Path(__file__).resolve().parent / "Assets" / "Jibo" + img_path = assets / ("JiboFaceForward.png" if visual_connected else "NoJiboConnected.png") + pm = QPixmap(str(img_path)) + if not pm.isNull(): + pm = pm.scaled( + self.jibo_image.size(), + Qt.AspectRatioMode.KeepAspectRatio, + Qt.TransformationMode.SmoothTransformation, + ) + self.jibo_image.setPixmap(pm) + + def _launch_installer(self) -> None: + program, prefix = resolve_python_invocation() + subprocess.Popen( + [program, *prefix, "-m", "gui.installer_gui"], + cwd=str(Path(__file__).resolve().parents[1]), + ) + + def _launch_updater(self) -> None: + program, prefix = resolve_python_invocation() + subprocess.Popen( + [program, *prefix, "-m", "gui.updater_gui"], + cwd=str(Path(__file__).resolve().parents[1]), + ) + + def _disconnect(self) -> None: + try: + if self._ssh_client is not None: + self._ssh_client.close() + finally: + self._ssh_client = None + self._identity = None + self._sync_all() + + def _toggle_connection(self) -> None: + if self.session_connected: + self._disconnect() + return + + host = self.host + if not host: + self.status_text.setText("Enter a Jibo IP address") + return + + self._connecting = True + self._sync_enabled() + self.status_text.setText(f"Connecting to {host}...") + + try: + import paramiko # type: ignore + except Exception: + self._connecting = False + self._sync_enabled() + self.status_text.setText("Paramiko not installed; install requirements") + return + + try: + client = paramiko.SSHClient() + client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) + client.connect( + hostname=host, + username="root", + password="jibo", + look_for_keys=False, + allow_agent=False, + timeout=10, + banner_timeout=10, + auth_timeout=10, + ) + + sftp = client.open_sftp() + try: + with sftp.open("/var/jibo/identity.json", "r") as f: + raw = f.read() + finally: + sftp.close() + + if isinstance(raw, bytes): + raw_text = raw.decode("utf-8", errors="replace") + else: + raw_text = str(raw) + + identity = json.loads(raw_text) + + # Success: store session. + self._ssh_client = client + self._identity = identity if isinstance(identity, dict) else None + self.status_text.setText(f"Connected via SSH to {host}") + except Exception as e: + try: + client.close() + except Exception: + pass + self.status_text.setText(f"Connect failed: {e}") + finally: + self._connecting = False + self._sync_enabled() + self._sync_all() + + def _create_connection_pill(self) -> tuple[QFrame, QLabel, QLabel]: + pill = QFrame() + pill.setObjectName("connectionPill") + + layout = QHBoxLayout(pill) + layout.setContentsMargins(10, 4, 10, 4) + layout.setSpacing(6) + + dot = QLabel() + dot.setObjectName("connDot") + dot.setFixedSize(10, 10) + + text = QLabel("No IP") + text.setObjectName("connText") + + layout.addWidget(dot) + layout.addWidget(text) + + # Keep it tight on the tab bar. + pill.setSizePolicy(pill.sizePolicy().horizontalPolicy(), pill.sizePolicy().verticalPolicy()) + pill.setMinimumHeight(28) + return pill, dot, text + + +def main() -> int: + _ = resolve_python # keep import stable (used elsewhere) + app = QApplication(sys.argv) + ctrl = MainWindowController() + ctrl.window.show() + return int(app.exec()) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/gui/process_runner.py b/JiboTools/JiboTools/gui/process_runner.py similarity index 86% rename from gui/process_runner.py rename to JiboTools/JiboTools/gui/process_runner.py index 4db3ac8..6676d72 100644 --- a/gui/process_runner.py +++ b/JiboTools/JiboTools/gui/process_runner.py @@ -12,7 +12,24 @@ from typing import Optional from PySide6.QtCore import QObject, QProcess, QTimer, Signal, Slot, Property -REPO_ROOT = Path(__file__).resolve().parents[1] +def _find_repo_root(start: Path) -> Path: + """Find the outer JiboAutoMod repo root. + + The Qt Creator project lives under JiboTools/JiboTools, while the CLI tools + (jibo_updater.py, jibo_automod.py) usually live in the outer repo root. + """ + + cur = start.resolve() + for _ in range(6): + if (cur / "jibo_updater.py").exists() and (cur / "jibo_automod.py").exists(): + return cur + if cur.parent == cur: + break + cur = cur.parent + return start.resolve().parents[1] + + +REPO_ROOT = _find_repo_root(Path(__file__).resolve()) def resolve_python_invocation() -> tuple[str, list[str]]: @@ -28,13 +45,20 @@ def resolve_python_invocation() -> tuple[str, list[str]]: if venv_py.exists(): return (str(venv_py), []) + # Prefer the current interpreter when running inside a venv (e.g. Qt Creator). + try: + if sys.executable and Path(sys.executable).exists(): + return (sys.executable, []) + except Exception: + pass + if os.name == "nt" and shutil.which("py"): return ("py", ["-3"]) if shutil.which("python3"): return ("python3", []) - return (sys.executable or "python", []) + return ("python", []) def resolve_python() -> str: diff --git a/gui/terminal_helper.py b/JiboTools/JiboTools/gui/terminal_helper.py similarity index 100% rename from gui/terminal_helper.py rename to JiboTools/JiboTools/gui/terminal_helper.py diff --git a/JiboTools/JiboTools/gui/tool_runner.ui b/JiboTools/JiboTools/gui/tool_runner.ui new file mode 100644 index 0000000..d95c938 --- /dev/null +++ b/JiboTools/JiboTools/gui/tool_runner.ui @@ -0,0 +1,148 @@ + + + ToolRunnerWindow + + + + 0 + 0 + 900 + 560 + + + + Tool + + + + + 16 + + + 16 + + + 16 + + + 16 + + + 12 + + + + + 10 + + + + + Tool + + + + 12 + true + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Start + + + + + + + Open in terminal + + + + + + + + + 10 + + + + + Jibo IP (required for updater) + + + + + + + Extra arguments (optional) + + + + + + + + + true + + + + + + + 10 + + + + + Idle + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Clear log + + + + + + + + + + + + diff --git a/JiboTools/JiboTools/gui/tool_runner_window.py b/JiboTools/JiboTools/gui/tool_runner_window.py new file mode 100644 index 0000000..40bbe9b --- /dev/null +++ b/JiboTools/JiboTools/gui/tool_runner_window.py @@ -0,0 +1,123 @@ +from __future__ import annotations + +import shlex +from pathlib import Path + +from PySide6.QtCore import QObject, Slot +from PySide6.QtGui import QCloseEvent, QTextCursor +from PySide6.QtWidgets import QMainWindow, QApplication, QLabel, QLineEdit, QPushButton, QPlainTextEdit + +from .process_runner import ProcessRunner, resolve_python_invocation +from .terminal_helper import TerminalHelper +from .ui_loader import load_ui, require_child + + +class ToolRunnerWindow(QObject): + def __init__(self, *, title: str, script: str) -> None: + super().__init__() + + self._script = script + self._is_updater = "jibo_updater.py" in script + + ui_path = Path(__file__).resolve().parent / "tool_runner.ui" + self.window = load_ui(ui_path) + if not isinstance(self.window, QMainWindow): + raise RuntimeError("tool_runner.ui must have a QMainWindow as root") + + self.window.setWindowTitle(title) + + self.runner = ProcessRunner() + self.terminal = TerminalHelper() + + self._title_label = require_child(self.window, "titleLabel", QLabel) + self._start_stop = require_child(self.window, "startStopButton", QPushButton) + self._open_terminal = require_child(self.window, "openTerminalButton", QPushButton) + self._host_field = require_child(self.window, "hostField", QLineEdit) + self._extra_args = require_child(self.window, "extraArgsField", QLineEdit) + self._log = require_child(self.window, "logEdit", QPlainTextEdit) + self._status = require_child(self.window, "statusLabel", QLabel) + self._clear = require_child(self.window, "clearLogButton", QPushButton) + + self._title_label.setText(title) + + self._host_field.setVisible(self._is_updater) + + self._start_stop.clicked.connect(self._toggle) + self._open_terminal.clicked.connect(self._open_in_terminal) + self._clear.clicked.connect(lambda: self._log.setPlainText("")) + + self.runner.outputAppended.connect(self._append_output) + self.runner.runningChanged.connect(self._sync_buttons) + self.runner.exitCodeChanged.connect(self._sync_status) + + self._sync_buttons() + self._sync_status() + + # Ensure the process is stopped when the window closes. + self.window.closeEvent = self._on_close # type: ignore[assignment] + + def show(self) -> None: + self.window.show() + + def _build_args(self) -> list[str]: + args: list[str] = [self._script] + + if self._is_updater: + host = self._host_field.text().strip() + if host: + args += ["--ip", host] + + extra = self._extra_args.text().strip() + if extra: + args += shlex.split(extra) + + return args + + @Slot() + def _toggle(self) -> None: + if self.runner.running: + self.runner.stop() + else: + program, prefix = resolve_python_invocation() + self.runner.start(program, [*prefix, *self._build_args()]) + + @Slot() + def _open_in_terminal(self) -> None: + program, prefix = resolve_python_invocation() + self.terminal.openTerminal(program, [*prefix, *self._build_args()]) + + @Slot(str) + def _append_output(self, chunk: str) -> None: + # Keep it simple: append and scroll to end. + self._log.moveCursor(QTextCursor.End) + self._log.insertPlainText(chunk) + self._log.moveCursor(QTextCursor.End) + + def _sync_buttons(self) -> None: + running = self.runner.running + self._start_stop.setText("Stop" if running else "Start") + self._open_terminal.setEnabled(not running) + + def _sync_status(self) -> None: + if self.runner.running: + self._status.setText("Running...") + return + code = self.runner.exitCode + if code >= 0: + self._status.setText(f"Exit: {code}") + else: + self._status.setText("Idle") + + def _on_close(self, event: QCloseEvent) -> None: + try: + self.runner.stop() + except Exception: + pass + event.accept() + + +def run_tool_window(*, title: str, script: str) -> int: + app = QApplication.instance() or QApplication([]) + win = ToolRunnerWindow(title=title, script=script) + win.show() + return int(app.exec()) diff --git a/JiboTools/JiboTools/gui/ui_loader.py b/JiboTools/JiboTools/gui/ui_loader.py new file mode 100644 index 0000000..a5955f7 --- /dev/null +++ b/JiboTools/JiboTools/gui/ui_loader.py @@ -0,0 +1,34 @@ +from __future__ import annotations + +from pathlib import Path +from typing import TypeVar, cast + +from PySide6.QtCore import QFile +from PySide6.QtUiTools import QUiLoader + + +T = TypeVar("T") + + +def load_ui(ui_path: Path) -> object: + loader = QUiLoader() + file = QFile(str(ui_path)) + if not file.open(QFile.ReadOnly): + raise RuntimeError(f"Failed to open UI file: {ui_path}") + try: + widget = loader.load(file) + finally: + file.close() + + if widget is None: + raise RuntimeError(f"Failed to load UI: {ui_path}") + + return widget + + +def require_child(parent: object, name: str, typ: type[T]) -> T: + # Qt objects implement findChild; keep typing light. + child = parent.findChild(typ, name) # type: ignore[attr-defined] + if child is None: + raise RuntimeError(f"UI is missing required widget '{name}' ({typ.__name__})") + return cast(T, child) diff --git a/JiboTools/JiboTools/gui/ui_tool_runner.py b/JiboTools/JiboTools/gui/ui_tool_runner.py new file mode 100644 index 0000000..8bb3424 --- /dev/null +++ b/JiboTools/JiboTools/gui/ui_tool_runner.py @@ -0,0 +1,124 @@ +# -*- coding: utf-8 -*- + +################################################################################ +## Form generated from reading UI file 'tool_runner.ui' +## +## Created by: Qt User Interface Compiler version 6.10.2 +## +## WARNING! All changes made in this file will be lost when recompiling UI file! +################################################################################ + +from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale, + QMetaObject, QObject, QPoint, QRect, + QSize, QTime, QUrl, Qt) +from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor, + QFont, QFontDatabase, QGradient, QIcon, + QImage, QKeySequence, QLinearGradient, QPainter, + QPalette, QPixmap, QRadialGradient, QTransform) +from PySide6.QtWidgets import (QApplication, QHBoxLayout, QLabel, QLineEdit, + QMainWindow, QPlainTextEdit, QPushButton, QSizePolicy, + QSpacerItem, QStatusBar, QVBoxLayout, QWidget) + +class Ui_ToolRunnerWindow(object): + def setupUi(self, ToolRunnerWindow): + if not ToolRunnerWindow.objectName(): + ToolRunnerWindow.setObjectName(u"ToolRunnerWindow") + ToolRunnerWindow.resize(900, 560) + self.centralwidget = QWidget(ToolRunnerWindow) + self.centralwidget.setObjectName(u"centralwidget") + self.rootLayout = QVBoxLayout(self.centralwidget) + self.rootLayout.setSpacing(12) + self.rootLayout.setObjectName(u"rootLayout") + self.rootLayout.setContentsMargins(16, 16, 16, 16) + self.headerLayout = QHBoxLayout() + self.headerLayout.setSpacing(10) + self.headerLayout.setObjectName(u"headerLayout") + self.titleLabel = QLabel(self.centralwidget) + self.titleLabel.setObjectName(u"titleLabel") + font = QFont() + font.setPointSize(12) + font.setBold(True) + self.titleLabel.setFont(font) + + self.headerLayout.addWidget(self.titleLabel) + + self.headerSpacer = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + + self.headerLayout.addItem(self.headerSpacer) + + self.startStopButton = QPushButton(self.centralwidget) + self.startStopButton.setObjectName(u"startStopButton") + + self.headerLayout.addWidget(self.startStopButton) + + self.openTerminalButton = QPushButton(self.centralwidget) + self.openTerminalButton.setObjectName(u"openTerminalButton") + + self.headerLayout.addWidget(self.openTerminalButton) + + + self.rootLayout.addLayout(self.headerLayout) + + self.argsLayout = QHBoxLayout() + self.argsLayout.setSpacing(10) + self.argsLayout.setObjectName(u"argsLayout") + self.hostField = QLineEdit(self.centralwidget) + self.hostField.setObjectName(u"hostField") + + self.argsLayout.addWidget(self.hostField) + + self.extraArgsField = QLineEdit(self.centralwidget) + self.extraArgsField.setObjectName(u"extraArgsField") + + self.argsLayout.addWidget(self.extraArgsField) + + + self.rootLayout.addLayout(self.argsLayout) + + self.logEdit = QPlainTextEdit(self.centralwidget) + self.logEdit.setObjectName(u"logEdit") + self.logEdit.setReadOnly(True) + + self.rootLayout.addWidget(self.logEdit) + + self.footerLayout = QHBoxLayout() + self.footerLayout.setSpacing(10) + self.footerLayout.setObjectName(u"footerLayout") + self.statusLabel = QLabel(self.centralwidget) + self.statusLabel.setObjectName(u"statusLabel") + + self.footerLayout.addWidget(self.statusLabel) + + self.footerSpacer = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + + self.footerLayout.addItem(self.footerSpacer) + + self.clearLogButton = QPushButton(self.centralwidget) + self.clearLogButton.setObjectName(u"clearLogButton") + + self.footerLayout.addWidget(self.clearLogButton) + + + self.rootLayout.addLayout(self.footerLayout) + + ToolRunnerWindow.setCentralWidget(self.centralwidget) + self.statusbar = QStatusBar(ToolRunnerWindow) + self.statusbar.setObjectName(u"statusbar") + ToolRunnerWindow.setStatusBar(self.statusbar) + + self.retranslateUi(ToolRunnerWindow) + + QMetaObject.connectSlotsByName(ToolRunnerWindow) + # setupUi + + def retranslateUi(self, ToolRunnerWindow): + ToolRunnerWindow.setWindowTitle(QCoreApplication.translate("ToolRunnerWindow", u"Tool", None)) + self.titleLabel.setText(QCoreApplication.translate("ToolRunnerWindow", u"Tool", None)) + self.startStopButton.setText(QCoreApplication.translate("ToolRunnerWindow", u"Start", None)) + self.openTerminalButton.setText(QCoreApplication.translate("ToolRunnerWindow", u"Open in terminal", None)) + self.hostField.setPlaceholderText(QCoreApplication.translate("ToolRunnerWindow", u"Jibo IP (required for updater)", None)) + self.extraArgsField.setPlaceholderText(QCoreApplication.translate("ToolRunnerWindow", u"Extra arguments (optional)", None)) + self.statusLabel.setText(QCoreApplication.translate("ToolRunnerWindow", u"Idle", None)) + self.clearLogButton.setText(QCoreApplication.translate("ToolRunnerWindow", u"Clear log", None)) + # retranslateUi + diff --git a/JiboTools/JiboTools/gui/updater_gui.py b/JiboTools/JiboTools/gui/updater_gui.py new file mode 100644 index 0000000..15035e5 --- /dev/null +++ b/JiboTools/JiboTools/gui/updater_gui.py @@ -0,0 +1,17 @@ +from __future__ import annotations + +import sys +from PySide6.QtWidgets import QApplication + +from .tool_runner_window import ToolRunnerWindow + + +def main() -> int: + app = QApplication(sys.argv) + win = ToolRunnerWindow(title="Updater", script="jibo_updater.py") + win.show() + return int(app.exec()) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/JiboTools/JiboTools/main_panel.py b/JiboTools/JiboTools/main_panel.py new file mode 100644 index 0000000..6ce11f9 --- /dev/null +++ b/JiboTools/JiboTools/main_panel.py @@ -0,0 +1,18 @@ +"""Qt Creator entrypoint. + +This project is intended to run cleanly from Qt Creator. The UI is implemented +with Qt Widgets loaded from `.ui` files at runtime (see gui/main_panel.py and +form.ui). +""" + +from __future__ import annotations + + +def main() -> int: + from gui.main_panel import main as widgets_main + + return int(widgets_main()) + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/JiboTools/JiboTools/pyproject.toml b/JiboTools/JiboTools/pyproject.toml new file mode 100644 index 0000000..6563692 --- /dev/null +++ b/JiboTools/JiboTools/pyproject.toml @@ -0,0 +1,19 @@ +[project] +name = "JiboTools" + +[tool.pyside6-project] +files = [ + "main_panel.py", + "form.ui", + "gui/__init__.py", + "gui/main_panel.py", + "gui/installer_gui.py", + "gui/updater_gui.py", + "gui/process_runner.py", + "gui/terminal_helper.py", + "gui/tool_runner.ui", + "gui/tool_runner_window.py", + "gui/ui_loader.py", + "gui/Assets/Jibo/JiboFaceForward.png", + "gui/Assets/Jibo/NoJiboConnected.png", +] diff --git a/JiboTools/JiboTools/requirements.txt b/JiboTools/JiboTools/requirements.txt new file mode 100644 index 0000000..c2f3583 --- /dev/null +++ b/JiboTools/JiboTools/requirements.txt @@ -0,0 +1,2 @@ +PySide6 +paramiko diff --git a/JiboTools/JiboTools/ui_form.py b/JiboTools/JiboTools/ui_form.py new file mode 100644 index 0000000..8899ea1 --- /dev/null +++ b/JiboTools/JiboTools/ui_form.py @@ -0,0 +1,444 @@ +# -*- coding: utf-8 -*- + +################################################################################ +## Form generated from reading UI file 'form.ui' +## +## Created by: Qt User Interface Compiler version 6.10.2 +## +## WARNING! All changes made in this file will be lost when recompiling UI file! +################################################################################ + +from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale, + QMetaObject, QObject, QPoint, QRect, + QSize, QTime, QUrl, Qt) +from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor, + QFont, QFontDatabase, QGradient, QIcon, + QImage, QKeySequence, QLinearGradient, QPainter, + QPalette, QPixmap, QRadialGradient, QTransform) +from PySide6.QtWidgets import (QApplication, QCheckBox, QComboBox, QFormLayout, + QFrame, QGroupBox, QHBoxLayout, QLabel, + QLineEdit, QMainWindow, QPushButton, QScrollArea, + QSizePolicy, QSpacerItem, QStatusBar, QTabWidget, + QVBoxLayout, QWidget) + +class Ui_MainWindow(object): + def setupUi(self, MainWindow): + if not MainWindow.objectName(): + MainWindow.setObjectName(u"MainWindow") + MainWindow.resize(782, 649) + MainWindow.setTabShape(QTabWidget.TabShape.Rounded) + self.centralwidget = QWidget(MainWindow) + self.centralwidget.setObjectName(u"centralwidget") + self.rootLayout = QVBoxLayout(self.centralwidget) + self.rootLayout.setSpacing(12) + self.rootLayout.setObjectName(u"rootLayout") + self.rootLayout.setContentsMargins(14, 14, 14, 14) + self.tabWidget = QTabWidget(self.centralwidget) + self.tabWidget.setObjectName(u"tabWidget") + self.tabWidget.setDocumentMode(True) + self.tabWidget.setTabsClosable(False) + self.tabWidget.setMovable(False) + self.tabJibo = QWidget() + self.tabJibo.setObjectName(u"tabJibo") + self.jiboPageLayout = QHBoxLayout(self.tabJibo) + self.jiboPageLayout.setSpacing(14) + self.jiboPageLayout.setObjectName(u"jiboPageLayout") + self.configFrame = QFrame(self.tabJibo) + self.configFrame.setObjectName(u"configFrame") + self.configFrame.setMinimumSize(QSize(420, 0)) + self.configFrame.setFrameShape(QFrame.Shape.StyledPanel) + self.configFrame.setFrameShadow(QFrame.Shadow.Raised) + self.configLayout = QVBoxLayout(self.configFrame) + self.configLayout.setSpacing(10) + self.configLayout.setObjectName(u"configLayout") + self.configLayout.setContentsMargins(18, 18, 18, 18) + self.configTitle = QLabel(self.configFrame) + self.configTitle.setObjectName(u"configTitle") + font = QFont() + font.setPointSize(12) + font.setBold(True) + self.configTitle.setFont(font) + + self.configLayout.addWidget(self.configTitle) + + self.configScroll = QScrollArea(self.configFrame) + self.configScroll.setObjectName(u"configScroll") + self.configScroll.setWidgetResizable(True) + self.configScrollContents = QWidget() + self.configScrollContents.setObjectName(u"configScrollContents") + self.configScrollContents.setGeometry(QRect(0, 0, 380, 478)) + self.configScrollLayout = QVBoxLayout(self.configScrollContents) + self.configScrollLayout.setSpacing(14) + self.configScrollLayout.setObjectName(u"configScrollLayout") + self.groupPreview = QGroupBox(self.configScrollContents) + self.groupPreview.setObjectName(u"groupPreview") + self.formPreview = QFormLayout(self.groupPreview) + self.formPreview.setObjectName(u"formPreview") + self.labelOverride = QLabel(self.groupPreview) + self.labelOverride.setObjectName(u"labelOverride") + + self.formPreview.setWidget(0, QFormLayout.ItemRole.LabelRole, self.labelOverride) + + self.overrideCheck = QCheckBox(self.groupPreview) + self.overrideCheck.setObjectName(u"overrideCheck") + self.overrideCheck.setChecked(True) + + self.formPreview.setWidget(0, QFormLayout.ItemRole.FieldRole, self.overrideCheck) + + self.labelPreviewConnected = QLabel(self.groupPreview) + self.labelPreviewConnected.setObjectName(u"labelPreviewConnected") + + self.formPreview.setWidget(1, QFormLayout.ItemRole.LabelRole, self.labelPreviewConnected) + + self.previewConnectedCheck = QCheckBox(self.groupPreview) + self.previewConnectedCheck.setObjectName(u"previewConnectedCheck") + + self.formPreview.setWidget(1, QFormLayout.ItemRole.FieldRole, self.previewConnectedCheck) + + + self.configScrollLayout.addWidget(self.groupPreview) + + self.groupHomeAssistant = QGroupBox(self.configScrollContents) + self.groupHomeAssistant.setObjectName(u"groupHomeAssistant") + self.formHomeAssistant = QFormLayout(self.groupHomeAssistant) + self.formHomeAssistant.setObjectName(u"formHomeAssistant") + self.labelHaEnable = QLabel(self.groupHomeAssistant) + self.labelHaEnable.setObjectName(u"labelHaEnable") + + self.formHomeAssistant.setWidget(0, QFormLayout.ItemRole.LabelRole, self.labelHaEnable) + + self.haEnableCheck = QCheckBox(self.groupHomeAssistant) + self.haEnableCheck.setObjectName(u"haEnableCheck") + + self.formHomeAssistant.setWidget(0, QFormLayout.ItemRole.FieldRole, self.haEnableCheck) + + self.labelHaServerIp = QLabel(self.groupHomeAssistant) + self.labelHaServerIp.setObjectName(u"labelHaServerIp") + + self.formHomeAssistant.setWidget(1, QFormLayout.ItemRole.LabelRole, self.labelHaServerIp) + + self.haServerIpField = QLineEdit(self.groupHomeAssistant) + self.haServerIpField.setObjectName(u"haServerIpField") + + self.formHomeAssistant.setWidget(1, QFormLayout.ItemRole.FieldRole, self.haServerIpField) + + + self.configScrollLayout.addWidget(self.groupHomeAssistant) + + self.groupAiProvider = QGroupBox(self.configScrollContents) + self.groupAiProvider.setObjectName(u"groupAiProvider") + self.formAiProvider = QFormLayout(self.groupAiProvider) + self.formAiProvider.setObjectName(u"formAiProvider") + self.labelAiEnable = QLabel(self.groupAiProvider) + self.labelAiEnable.setObjectName(u"labelAiEnable") + + self.formAiProvider.setWidget(0, QFormLayout.ItemRole.LabelRole, self.labelAiEnable) + + self.aiEnableCheck = QCheckBox(self.groupAiProvider) + self.aiEnableCheck.setObjectName(u"aiEnableCheck") + + self.formAiProvider.setWidget(0, QFormLayout.ItemRole.FieldRole, self.aiEnableCheck) + + self.labelAiProvider = QLabel(self.groupAiProvider) + self.labelAiProvider.setObjectName(u"labelAiProvider") + + self.formAiProvider.setWidget(1, QFormLayout.ItemRole.LabelRole, self.labelAiProvider) + + self.aiProviderCombo = QComboBox(self.groupAiProvider) + self.aiProviderCombo.setObjectName(u"aiProviderCombo") + + self.formAiProvider.setWidget(1, QFormLayout.ItemRole.FieldRole, self.aiProviderCombo) + + self.labelAiEndpoint = QLabel(self.groupAiProvider) + self.labelAiEndpoint.setObjectName(u"labelAiEndpoint") + + self.formAiProvider.setWidget(2, QFormLayout.ItemRole.LabelRole, self.labelAiEndpoint) + + self.aiEndpointField = QLineEdit(self.groupAiProvider) + self.aiEndpointField.setObjectName(u"aiEndpointField") + + self.formAiProvider.setWidget(2, QFormLayout.ItemRole.FieldRole, self.aiEndpointField) + + self.labelAiKey = QLabel(self.groupAiProvider) + self.labelAiKey.setObjectName(u"labelAiKey") + + self.formAiProvider.setWidget(3, QFormLayout.ItemRole.LabelRole, self.labelAiKey) + + self.aiKeyField = QLineEdit(self.groupAiProvider) + self.aiKeyField.setObjectName(u"aiKeyField") + self.aiKeyField.setEchoMode(QLineEdit.EchoMode.Password) + + self.formAiProvider.setWidget(3, QFormLayout.ItemRole.FieldRole, self.aiKeyField) + + self.labelTokens = QLabel(self.groupAiProvider) + self.labelTokens.setObjectName(u"labelTokens") + + self.formAiProvider.setWidget(4, QFormLayout.ItemRole.LabelRole, self.labelTokens) + + self.tokensUsedLabel = QLabel(self.groupAiProvider) + self.tokensUsedLabel.setObjectName(u"tokensUsedLabel") + + self.formAiProvider.setWidget(4, QFormLayout.ItemRole.FieldRole, self.tokensUsedLabel) + + + self.configScrollLayout.addWidget(self.groupAiProvider) + + self.configBottomSpacer = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) + + self.configScrollLayout.addItem(self.configBottomSpacer) + + self.configScroll.setWidget(self.configScrollContents) + + self.configLayout.addWidget(self.configScroll) + + + self.jiboPageLayout.addWidget(self.configFrame) + + self.jiboCardFrame = QFrame(self.tabJibo) + self.jiboCardFrame.setObjectName(u"jiboCardFrame") + self.jiboCardFrame.setFrameShape(QFrame.Shape.StyledPanel) + self.jiboCardFrame.setFrameShadow(QFrame.Shadow.Raised) + self.jiboCardLayout = QVBoxLayout(self.jiboCardFrame) + self.jiboCardLayout.setSpacing(12) + self.jiboCardLayout.setObjectName(u"jiboCardLayout") + self.jiboCardLayout.setContentsMargins(18, 18, 18, 18) + self.IpConfig = QHBoxLayout() + self.IpConfig.setObjectName(u"IpConfig") + self.TryToConnect = QPushButton(self.jiboCardFrame) + self.TryToConnect.setObjectName(u"TryToConnect") + self.TryToConnect.setCheckable(False) + + self.IpConfig.addWidget(self.TryToConnect, 0, Qt.AlignmentFlag.AlignRight) + + self.JiboIpField = QLineEdit(self.jiboCardFrame) + self.JiboIpField.setObjectName(u"JiboIpField") + + self.IpConfig.addWidget(self.JiboIpField) + + + self.jiboCardLayout.addLayout(self.IpConfig) + + self.jiboHeaderLayout = QHBoxLayout() + self.jiboHeaderLayout.setObjectName(u"jiboHeaderLayout") + self.jiboTitle = QLabel(self.jiboCardFrame) + self.jiboTitle.setObjectName(u"jiboTitle") + font1 = QFont() + font1.setPointSize(12) + font1.setBold(True) + font1.setUnderline(False) + self.jiboTitle.setFont(font1) + self.jiboTitle.setAlignment(Qt.AlignmentFlag.AlignCenter) + + self.jiboHeaderLayout.addWidget(self.jiboTitle) + + + self.jiboCardLayout.addLayout(self.jiboHeaderLayout) + + self.jiboTopSpacer = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) + + self.jiboCardLayout.addItem(self.jiboTopSpacer) + + self.jiboImage = QLabel(self.jiboCardFrame) + self.jiboImage.setObjectName(u"jiboImage") + self.jiboImage.setMinimumSize(QSize(260, 260)) + self.jiboImage.setMaximumSize(QSize(260, 260)) + self.jiboImage.setAlignment(Qt.AlignmentFlag.AlignCenter) + + self.jiboCardLayout.addWidget(self.jiboImage) + + self.jiboBottomSpacer = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Minimum) + + self.jiboCardLayout.addItem(self.jiboBottomSpacer) + + self.RobotSettings = QPushButton(self.jiboCardFrame) + self.RobotSettings.setObjectName(u"RobotSettings") + self.RobotSettings.setEnabled(False) + self.RobotSettings.setFlat(False) + + self.jiboCardLayout.addWidget(self.RobotSettings) + + self.comboBox = QComboBox(self.jiboCardFrame) + self.comboBox.setObjectName(u"comboBox") + self.comboBox.setEnabled(False) + self.comboBox.setEditable(True) + + self.jiboCardLayout.addWidget(self.comboBox) + + + self.jiboPageLayout.addWidget(self.jiboCardFrame) + + self.tabWidget.addTab(self.tabJibo, "") + self.tabUpdate = QWidget() + self.tabUpdate.setObjectName(u"tabUpdate") + self.updatePageLayout = QVBoxLayout(self.tabUpdate) + self.updatePageLayout.setSpacing(12) + self.updatePageLayout.setObjectName(u"updatePageLayout") + self.updateFrame = QFrame(self.tabUpdate) + self.updateFrame.setObjectName(u"updateFrame") + self.updateFrame.setFrameShape(QFrame.Shape.StyledPanel) + self.updateFrame.setFrameShadow(QFrame.Shadow.Raised) + self.updateFrameLayout = QVBoxLayout(self.updateFrame) + self.updateFrameLayout.setSpacing(12) + self.updateFrameLayout.setObjectName(u"updateFrameLayout") + self.updateFrameLayout.setContentsMargins(18, 18, 18, 18) + self.updateInfoText = QLabel(self.updateFrame) + self.updateInfoText.setObjectName(u"updateInfoText") + self.updateInfoText.setWordWrap(True) + + self.updateFrameLayout.addWidget(self.updateInfoText) + + self.updateSpacer = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) + + self.updateFrameLayout.addItem(self.updateSpacer) + + self.updateButtonsLayout = QHBoxLayout() + self.updateButtonsLayout.setSpacing(12) + self.updateButtonsLayout.setObjectName(u"updateButtonsLayout") + self.installButton = QPushButton(self.updateFrame) + self.installButton.setObjectName(u"installButton") + + self.updateButtonsLayout.addWidget(self.installButton) + + self.checkUpdatesButton = QPushButton(self.updateFrame) + self.checkUpdatesButton.setObjectName(u"checkUpdatesButton") + + self.updateButtonsLayout.addWidget(self.checkUpdatesButton) + + + self.updateFrameLayout.addLayout(self.updateButtonsLayout) + + + self.updatePageLayout.addWidget(self.updateFrame) + + self.tabWidget.addTab(self.tabUpdate, "") + self.tabSkills = QWidget() + self.tabSkills.setObjectName(u"tabSkills") + self.skillsLayout = QVBoxLayout(self.tabSkills) + self.skillsLayout.setObjectName(u"skillsLayout") + self.skillsComingSoon = QLabel(self.tabSkills) + self.skillsComingSoon.setObjectName(u"skillsComingSoon") + + self.skillsLayout.addWidget(self.skillsComingSoon) + + self.tabWidget.addTab(self.tabSkills, "") + self.tabSsh = QWidget() + self.tabSsh.setObjectName(u"tabSsh") + self.sshLayout = QVBoxLayout(self.tabSsh) + self.sshLayout.setObjectName(u"sshLayout") + self.sshComingSoon = QLabel(self.tabSsh) + self.sshComingSoon.setObjectName(u"sshComingSoon") + + self.sshLayout.addWidget(self.sshComingSoon) + + self.tabWidget.addTab(self.tabSsh, "") + self.tabFtp = QWidget() + self.tabFtp.setObjectName(u"tabFtp") + self.ftpLayout = QVBoxLayout(self.tabFtp) + self.ftpLayout.setObjectName(u"ftpLayout") + self.ftpComingSoon = QLabel(self.tabFtp) + self.ftpComingSoon.setObjectName(u"ftpComingSoon") + + self.ftpLayout.addWidget(self.ftpComingSoon) + + self.tabWidget.addTab(self.tabFtp, "") + self.tabStatus = QWidget() + self.tabStatus.setObjectName(u"tabStatus") + self.statusLayout = QVBoxLayout(self.tabStatus) + self.statusLayout.setSpacing(10) + self.statusLayout.setObjectName(u"statusLayout") + self.statusRow = QHBoxLayout() + self.statusRow.setSpacing(10) + self.statusRow.setObjectName(u"statusRow") + self.statusDot = QLabel(self.tabStatus) + self.statusDot.setObjectName(u"statusDot") + self.statusDot.setMinimumSize(QSize(10, 10)) + self.statusDot.setMaximumSize(QSize(10, 10)) + + self.statusRow.addWidget(self.statusDot) + + self.statusText = QLabel(self.tabStatus) + self.statusText.setObjectName(u"statusText") + self.statusText.setWordWrap(True) + + self.statusRow.addWidget(self.statusText) + + + self.statusLayout.addLayout(self.statusRow) + + self.tabWidget.addTab(self.tabStatus, "") + self.tabRobotOs = QWidget() + self.tabRobotOs.setObjectName(u"tabRobotOs") + self.robotOsLayout = QVBoxLayout(self.tabRobotOs) + self.robotOsLayout.setObjectName(u"robotOsLayout") + self.robotOsComingSoon = QLabel(self.tabRobotOs) + self.robotOsComingSoon.setObjectName(u"robotOsComingSoon") + + self.robotOsLayout.addWidget(self.robotOsComingSoon) + + self.tabWidget.addTab(self.tabRobotOs, "") + + self.rootLayout.addWidget(self.tabWidget) + + MainWindow.setCentralWidget(self.centralwidget) + self.statusbar = QStatusBar(MainWindow) + self.statusbar.setObjectName(u"statusbar") + self.statusbar.setSizeGripEnabled(False) + MainWindow.setStatusBar(self.statusbar) + + self.retranslateUi(MainWindow) + + self.tabWidget.setCurrentIndex(0) + + + QMetaObject.connectSlotsByName(MainWindow) + # setupUi + + def retranslateUi(self, MainWindow): + MainWindow.setWindowTitle(QCoreApplication.translate("MainWindow", u"Jibo Tools", None)) + self.configTitle.setText(QCoreApplication.translate("MainWindow", u"Config", None)) + self.groupPreview.setTitle(QCoreApplication.translate("MainWindow", u"Preview", None)) + self.labelOverride.setText(QCoreApplication.translate("MainWindow", u"Override", None)) + self.overrideCheck.setText("") + self.labelPreviewConnected.setText(QCoreApplication.translate("MainWindow", u"Connected", None)) + self.previewConnectedCheck.setText("") + self.groupHomeAssistant.setTitle(QCoreApplication.translate("MainWindow", u"Home Assistant", None)) + self.labelHaEnable.setText(QCoreApplication.translate("MainWindow", u"Enabled", None)) + self.haEnableCheck.setText("") + self.labelHaServerIp.setText(QCoreApplication.translate("MainWindow", u"Server IP", None)) + self.haServerIpField.setPlaceholderText(QCoreApplication.translate("MainWindow", u"Home Assistant host", None)) + self.groupAiProvider.setTitle(QCoreApplication.translate("MainWindow", u"AI Provider", None)) + self.labelAiEnable.setText(QCoreApplication.translate("MainWindow", u"Enabled", None)) + self.aiEnableCheck.setText("") + self.labelAiProvider.setText(QCoreApplication.translate("MainWindow", u"Provider", None)) + self.labelAiEndpoint.setText(QCoreApplication.translate("MainWindow", u"API endpoint", None)) + self.aiEndpointField.setPlaceholderText(QCoreApplication.translate("MainWindow", u"http://...", None)) + self.labelAiKey.setText(QCoreApplication.translate("MainWindow", u"API key", None)) + self.labelTokens.setText(QCoreApplication.translate("MainWindow", u"Tokens used", None)) + self.tokensUsedLabel.setText(QCoreApplication.translate("MainWindow", u"-1", None)) + self.TryToConnect.setText(QCoreApplication.translate("MainWindow", u"Connect", None)) + self.JiboIpField.setInputMask("") + self.JiboIpField.setText("") + self.JiboIpField.setPlaceholderText(QCoreApplication.translate("MainWindow", u"e.g 192.168.1.54", None)) + self.jiboTitle.setText(QCoreApplication.translate("MainWindow", u"Connect Your Jibo", None)) + self.jiboImage.setText("") + self.RobotSettings.setText(QCoreApplication.translate("MainWindow", u"Robot Settings", None)) + self.comboBox.setCurrentText(QCoreApplication.translate("MainWindow", u"Reboot", None)) + self.comboBox.setPlaceholderText(QCoreApplication.translate("MainWindow", u"Reboot", None)) + self.tabWidget.setTabText(self.tabWidget.indexOf(self.tabJibo), QCoreApplication.translate("MainWindow", u"Jibo", None)) + self.updateInfoText.setText(QCoreApplication.translate("MainWindow", u"Installer and updater remain available via CLI. Use the buttons below to launch their GUIs.", None)) + self.installButton.setText(QCoreApplication.translate("MainWindow", u"Install", None)) + self.checkUpdatesButton.setText(QCoreApplication.translate("MainWindow", u"Check for updates", None)) + self.tabWidget.setTabText(self.tabWidget.indexOf(self.tabUpdate), QCoreApplication.translate("MainWindow", u"Update", None)) + self.skillsComingSoon.setText(QCoreApplication.translate("MainWindow", u"Coming soon.", None)) + self.tabWidget.setTabText(self.tabWidget.indexOf(self.tabSkills), QCoreApplication.translate("MainWindow", u"Skills", None)) + self.sshComingSoon.setText(QCoreApplication.translate("MainWindow", u"Coming soon.", None)) + self.tabWidget.setTabText(self.tabWidget.indexOf(self.tabSsh), QCoreApplication.translate("MainWindow", u"SSH", None)) + self.ftpComingSoon.setText(QCoreApplication.translate("MainWindow", u"Coming soon.", None)) + self.tabWidget.setTabText(self.tabWidget.indexOf(self.tabFtp), QCoreApplication.translate("MainWindow", u"FTP", None)) + self.statusDot.setText("") + self.statusText.setText(QCoreApplication.translate("MainWindow", u"No Jibo IP configured", None)) + self.tabWidget.setTabText(self.tabWidget.indexOf(self.tabStatus), QCoreApplication.translate("MainWindow", u"Status", None)) + self.robotOsComingSoon.setText(QCoreApplication.translate("MainWindow", u"Coming soon.", None)) + self.tabWidget.setTabText(self.tabWidget.indexOf(self.tabRobotOs), QCoreApplication.translate("MainWindow", u"Robot OS", None)) + # retranslateUi + diff --git a/gui/__pycache__/__init__.cpython-313.pyc b/gui/__pycache__/__init__.cpython-313.pyc deleted file mode 100644 index 55f94b3fab3fdd372e2f592c276252e33ea93f31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 148 zcmey&%ge<81j*4mGC}lX5CH>>P{wB#AY&>+I)f&o-%5reCLr%KNa~icenx(7s(yBA zS!SNTOMY@`ZfaghvA$PkQodtpNxpA>N|}*gjEsy$%s>_ZKs+L( diff --git a/gui/__pycache__/installer_gui.cpython-313.pyc b/gui/__pycache__/installer_gui.cpython-313.pyc deleted file mode 100644 index a808daef3e4f6fdbaf3c5c1487445ced8b061f60..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2270 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 diff --git a/gui/__pycache__/process_runner.cpython-313.pyc b/gui/__pycache__/process_runner.cpython-313.pyc deleted file mode 100644 index cd7c1d731fca4c52b79b27cd6806765fee429d5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10297 zcmcIqYj7J?mcA{uq}I!lAM!Ja+m9qx;>Q3ElRyY$0wy>U+i}|vutCUDTNaTeak~}A zE(#1x4K@R7vsnrUW(!lWv&j~_McAo@pELh_+bP=9Ww2l6k2`!;j+yky5I&}zvqIqJzX zJgt$+C4uE?r3$H1a$^1&j@C(4l8f={rGVsSxrSQOOe9Y|k-Vec16I99x`T1cfa}}D z-5Ik4tFK{|Ag8&*$z)0mtMOD)>4SHEAgoTnQ|M14FPsS4HOHy`v1jCnstKnCXeuHr zie^7G6rYr-W|!hIsHE{yA_e78oR+CNeGS(jqK`tSI3)OS8%u0^M$9sa>u?h?Vlfzl zypbzBCCfdh2?;|T$=c6J{GZgq1}*H^B1wkHprg>Mkux@>EzbyhVLVQwbeI?$+C{o8 zt+zK)5qe;vioFbajJ^s_*er+9ulZfrf5{;UT^#$)54Cr0YY!_YIrF0|Grl$GH*$sN zeVp;lD6A<6wq0)(bY=btY7NS2h9Vyn6(y5L_DiThJXXWJCd&LxR=~P^i zS=aemPp7BFj=P=~6X8rU0_Co$2|0-s6gjDiN=lrP#b_$|ud^3aF)F9!WK@K&Ln|Cb zr+iL+S{#$($ry46jt(8~bj{d0@q3yjscH@>LgQ&w(X3r^@yG=5rWMTv zV~J!`SQ8mE$$>)%rKc6t2~i8gGVv~0SyZDC%_NgD?MzQ=bui6T;;al6aXKMf;s{eq z+6e6`;HSI~WR~14Bfi?Dz1gy+UpIfU_wwFPhyK3ny~lr($(EhGQd|G7zd>Ttd?_2SfG>&q|v z^6qyJzkT>3pKIvIHgv4}s}|M8@ww+$gq>F%-dCP`>AA&6a*kbD$F6mM-O`nxasPpGYaH#-~$M)tvd}Aw|Ini^fvABjKdc zoOVIUkKm`=17wz5xA3;W6>nwEyZbZm?qzj3@#!P0-k$Z!n(wTn>|rkF?fDmP&wpKY zS8Nc@7Wl$fb=?Zj|5RF_`AgN^WXaNEeOu@z@4N1B{H?W{T!!DTT}L_VZwUu90@cif zE)+(_ZS=q*fuxxQr50Y|m|KCGG18^Ghdhcfn?XjhNY*ZkA#EZ$ky5pI$#xsH?6=jI zzEDZ`quJCLo!<^*ADHwCw>y_27 z_TI1&e?8b_k6*VOAbw`T?PB6fZeM)6QAA6Mq_rM|wUQV{*4XYJ77z)9S+WCl40By} zNsyd}Kp`o6-oFZ;X5s&@g4z;rKb@SsTkvv-1^soo|&4^3XAhA`a1vEXK#haG};zSP_+Ucq%DJ+r^%60#JvEKRR7Z zwrMjACbD@a(3akXhNKTNEkp!kf@^uafhm|ibfBfo3M!Z}m$T$en@CRXBza}}v2~og z#Pxw}+mwlfd``1Hn@OoMyjwbdq;cUQ33ncj$w~QKnjXBz_3e^hW@FSYFEDDL2lr7HphQNvV) z?3o^L5HKt`kr;xUH8K?q3Iz?NEzm-9DVec6deLkHfcBG2;b<)sQi#b2dJF)HXEg^X zY$BeNH6Hh?*k6=yn+`n=ZF}LTB!B?Q@esjf029!b%Ide;-e}9#AH3YXT7Pi0;^3U) zicpagYCjWdmv%2#El+)9`$+xtv6Z@q{&Dy-K>}UB>TX(fx6D5HJGXD$S9KK?yy`Q) zYH{d|kq;st2H#J9#vfRB`*baYkD4iO-not61M4Z+`B6eSi9i6!QR^t*Y-$v>6}{Q< zZPdi|RFK@mq??m05TXeX&^bq4Q0^YJN!CLa$s_R?x*3{8J*?C_3N8Xly^^h{v~1Le zeUJJLR3Mc}_M#f)Si|T|a_d2)@lGp%qX(0fl1~pMDTI+UFih^_Xf*&Rzvdm#Vd)@4 zrPo3*`y!nH%cNVUr$AGVaGTxh5I0Pogmp8%Cz6r;DuO#P9nCOFU>_`j8#UdO!2^9V z zIhtoFS`7fa==2~ENd+GnrqTY4n$AE}l*fFUGXy~gtECC!@F6e*QO$!)^UW24z()l? z8|BbTe`=0@&9yFg7F_eLoY0mP+CHq!1s});A6OHPn*4oPVP8(TGb`NrQTHcDE+1JF zeqxq2WQB&D(2^BemLJTu9>}&HSQGAEZ)}?5U)NRr5~tbW$Rj>JT_oHHNI*Eb4LE6F z#(of8B?}-sWRP+$^806_Gcre2Yrjc!@t1qRZ+ClhwiK7Tx^>9&- zR2LXj3IUeY`pEv6y@nI&KQDi>zvXL7#Atgms^*Yv^Z-0p)}`0qQoA{^WfIMC&> zS)oa20slAHc$=q@x3sQk)u8q(;Psl34Z<= zMs=&P7+@m|bz%@Bg4*C5Sc1{>M!xX;z9S!IH1NAy(x9n|g@S@pzhx^E)NE>HsU(kD z6-yUUAa@+VPSQGJnxA2-VFCs$C&Bz6;#Mq4lY7fAl^4EX{sKme z!qbpz)&?Q^mh}DW8iRT0a~UV}Bs2|rC~7_vAJ{g<%Y>5?GI==owIl2jdjN)fAm(z=J*j-9u2Xt4h9O&^1&h+KOdPz$N*v z?t^!Rg&>60j|24PmBk9ipplAoF8~4Yb^8_$FC1R?RIJzU08`}yvy&5cWQ83$p(!gg ztqCorA=;T0b}q%%ggqvwF)K7)u3HuF{kZPp(GMz@PyMR;a$Q!ucTG5K*4dL4_I#jx zcA+4UNKM zg&10Z{ILVHHB+hZqDVeUwJCAbDw)98(Bmi=o?Cpg1QaOxW(hDbSV98}ZDM#z6u$z% zBizg{asc0sFc~2el&PX(#G6b3N=NIZ8xFRHEIxh#c>_ogU(jD5i6X)AQ9y`Ps2`oQ;=tkx*DwX?!dL>H$OX=23VALibPz0OTmNU=ZyA9gkyRO_5+sr~CzwKm440 z5okDndbaP2>K*4NX8Yl7>Dc*^*}m_1yRG?#pV-UhqDx1zwtX8G&UR?SO6>cuWA26> ziy}*1`JzU%s1b`?b1ie~%b^X6)7F9|f$NyNQ4J+8Ke}PD>s-%u%-!@`ZTr7-S#2%f z5+H1E*)St8LNn#f6}RyZ!1`0damiT}emh152%(+%@Y}T|{C17H21}qE2%C!oaTn{w zlMmB9TY_+}b{J>ZLfD8Ode*YvxR zWpi*{>iQDOO~Vh4;WoXeRE$MSwK5Oz%pD_x<%PVFgKwI+)Zi7)pc%?6)q9{&*T`)) zS>Qr6(i8tZ*wmn#_Cpmt__T%CwS~*Ll>nE3PD-+2)Uc?wz7dVwmFgW!L+2Babt4>b&%1L1 z0>fo~P1tR6Hb=34-TPken$TsI)n$dc&xHnETb_c?70D1t&Yu#|A+FtuYG^w!wd(B? z#U*_Y$`lU}GuT`a>U2zE3L}(a9`;06S_tO2ZFkPxAP#j)GPX9!o%WXkqJ;~a)BgW+ z;P<@%lYvEwTN<=ss1BFM6ch=dGj$YTTQwQb^Z!|%26P& zbmi4=H7qsf{4H63%c_6(oNe9hf2;S6-c|Q51d4%rb_@dNn}Gat0>%<+LL-U*9E`l~ z(bs$P`eB}}_w5DpZ$tI1+panDhd~gJHEiE}v+(b*Z5)XRq)7O9V6ajA3Np6};gg)i z!M#D@vKORj1X}3{E~hNU8E4XRS}YaP-ve$j+(gJ}F=5Ian3odAE~U;B4H-kk1G{YP z>$!%8A8w<(M-TLOeF7aKwz7S06JOgbTtfO5Bshy^kCkBa4bh< zih4m2`ZE`(?=HGphC&hDj>j3Ig&2(e4GQ*6*@;UP*22F(VSgOKZua%-p5w^tMS@#; zNjC-hVWn_bhsa0hCs2fTNkJ3~m--y{6>0v4IKL#GFNv4^FaMIbz9O|>k%oUGKh2S! z0)q6GFV_A7{-UHg>uFx~wB|hRSx@`LQ&~^ftn;S5l54-&ZsRKd!*AmPH~l`&f3vj$ d$i6$dmc@r}5_sHvhTF{rmmL32;K4Tie*pLJ$NT^Q diff --git a/gui/__pycache__/terminal_helper.cpython-313.pyc b/gui/__pycache__/terminal_helper.cpython-313.pyc deleted file mode 100644 index ccac6407cb591c6bd31f20dc66c725c8c083ddbb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 962 zcmYjP&ubGw6n?X_yGi;Zsq~k&iZPYe1=}Lnh#(%UNSk79S)+#r#!b43TQ;-l%&gLz zC(Y4IK|!R~`WN_TSbB0$5JaRmF?#UkOg0f8?6=?Jy?OJ!_og#EJOIjGZ@mv5A%L&i z>6?`h)VZa|KDgkbH7Fs5@|qiKMhP=qGMTA-?3!y<$!2yQPD24)YYJSuf|qbogQXfN zCw-zF2gyN?(nxqBh$wdqncBQp-SKNenr;}06D30@o#HL;DJ20V!e`BZdSNZ8m7tyc zQ0J;5`%nRfTwsQa7_OKFs8|)dl5&mf*tK0e1v}Pdj!UN2WMc|69WC1AN(&D>T#!EfEVcZ=7 z7=*maqj+9Lsk!y9cG>LbT~zTTr><12tHEF{7}Ga9mNdB^)@7>2q6YJtGUKsE-1Mp7 z5_!^8-V?6(mDeUG8ga1L9~*hx?QWs9Cx@bzPy0>F={`%^U-&P6Cwu)X-3;|sQC~fyRjGcA~{0p0plVJ zs81t8m~JN)$+gH=@`ZSCx#kTAWQ-y58N+ zu2IaPN>6RYp{fc}D^)5|duY`Q$NU*Fwq!a=BqXRRZbaLo#;gg???HbT=|~qeR1%0V!*EJVkrYT#6HA!jNQbq7 zl0>8k4`}I9hGZfvX@e!1$PrF!N@<7;0nX@yTDFuUxspoMXe?{Pr4cd$IIAm@=msXE zR}bhz3!fllW)Zr2uz;?P7SKGLhqZYjmX@%dD(0TDK~bQJ>AGHMhPLMhmtl;rnBjFM z%T?llRLdVW?Q_2G*!5@+8p)$g?iR3<& z1Bs3!JylK3_ir(SUcz6jiiv-1jIYc0Y{J_9#g|wYS8=lLOZX2|2VTiv($lZx4=I!Q z*IwgsspUE1FJ5__YZA$$SD8w59O?3#zz|(wy(>Xvrnx1NwHb~p1&$I~K((WMRF(KS z{wpIk9OLs6$TN->$k5ubYm6|gnxwFSXT6(IvjrzR>RA-f-c;aN(Cz_cne$+Zleli%&jMMtaJj zwsNSaOt+QkhwAVnCHKvlug~0G*v4beA$HM|vuGLyd@&NS!X|O4XuDx?jLN`N>!e0#`Wlfi-;Z(f>GEt8;ruT-U>piadE>Ae?w%JU4UgZ z&Aiv}R-2CXK3RYv`(1-`&^;3cLD)rw$4K5q`9IP0E-LP#6T9fGztDwUH2b$SE{s1r giSW=@w>sj)AM(L(SHAnWBTsGPsb?a>lhGFc0#do%761SM diff --git a/gui/installer_gui.py b/gui/installer_gui.py deleted file mode 100644 index 87f0d9d..0000000 --- a/gui/installer_gui.py +++ /dev/null @@ -1,37 +0,0 @@ -from __future__ import annotations - -import sys -from pathlib import Path - -from PySide6.QtCore import QUrl -from PySide6.QtGui import QGuiApplication -from PySide6.QtQml import QQmlApplicationEngine - -from .process_runner import ProcessRunner, resolve_python -from .terminal_helper import TerminalHelper - - -def main() -> int: - app = QGuiApplication(sys.argv) - - engine = QQmlApplicationEngine() - - runner = ProcessRunner() - terminal = TerminalHelper() - engine.rootContext().setContextProperty("runner", runner) - engine.rootContext().setContextProperty("terminal", terminal) - engine.rootContext().setContextProperty("pyExec", resolve_python()) - engine.rootContext().setContextProperty("toolScript", "jibo_automod.py") - engine.rootContext().setContextProperty("toolTitle", "Installer") - - qml_path = Path(__file__).resolve().parent / "qml" / "ToolRunner.qml" - engine.load(QUrl.fromLocalFile(str(qml_path))) - - if not engine.rootObjects(): - return 1 - - return app.exec() - - -if __name__ == "__main__": - raise SystemExit(main()) diff --git a/gui/main_panel.py b/gui/main_panel.py deleted file mode 100644 index af4aaec..0000000 --- a/gui/main_panel.py +++ /dev/null @@ -1,59 +0,0 @@ -from __future__ import annotations - -import sys -from pathlib import Path - -from PySide6.QtCore import QUrl, QObject, Slot -from PySide6.QtGui import QGuiApplication -from PySide6.QtQml import QQmlApplicationEngine - -from .process_runner import ConnectionMonitor, resolve_python, resolve_python_invocation - - -class Launcher(QObject): - def __init__(self, python_program: str, python_prefix: list[str]) -> None: - super().__init__() - self._python_program = python_program - self._python_prefix = list(python_prefix) - - @Slot() - def launchInstaller(self) -> None: - # Start installer GUI in a separate process. - import subprocess - subprocess.Popen( - [self._python_program, *self._python_prefix, "-m", "gui.installer_gui"], - cwd=str(Path(__file__).resolve().parents[1]), - ) - - @Slot() - def launchUpdater(self) -> None: - import subprocess - subprocess.Popen( - [self._python_program, *self._python_prefix, "-m", "gui.updater_gui"], - cwd=str(Path(__file__).resolve().parents[1]), - ) - - -def main() -> int: - app = QGuiApplication(sys.argv) - - engine = QQmlApplicationEngine() - - conn = ConnectionMonitor() - py_program, py_prefix = resolve_python_invocation() - py_exec = resolve_python() - engine.rootContext().setContextProperty("conn", conn) - engine.rootContext().setContextProperty("pyExec", py_exec) - engine.rootContext().setContextProperty("launcher", Launcher(py_program, py_prefix)) - - qml_path = Path(__file__).resolve().parent / "qml" / "MainPanel.qml" - engine.load(QUrl.fromLocalFile(str(qml_path))) - - if not engine.rootObjects(): - return 1 - - return app.exec() - - -if __name__ == "__main__": - raise SystemExit(main()) diff --git a/gui/qml/MainPanel.qml b/gui/qml/MainPanel.qml deleted file mode 100644 index 0f2dd7b..0000000 --- a/gui/qml/MainPanel.qml +++ /dev/null @@ -1,168 +0,0 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Layouts -import QtQuick.Window - -ApplicationWindow { - id: win - width: 880 - height: 520 - visible: true - title: "Jibo Tools" - - property string host: hostField.text.trim() - - ColumnLayout { - anchors.fill: parent - anchors.margins: 18 - spacing: 14 - - RowLayout { - Layout.fillWidth: true - spacing: 12 - - Text { - text: "Connection" - font.pixelSize: 18 - font.bold: true - } - - Rectangle { - width: 10 - height: 10 - radius: 5 - color: conn.connected ? "#2ecc71" : (host.length > 0 ? "#e67e22" : "#bdc3c7") - Layout.alignment: Qt.AlignVCenter - } - - Text { - text: conn.connected ? "SSH reachable" : (host.length > 0 ? "Not reachable" : "No IP") - color: "#555" - Layout.alignment: Qt.AlignVCenter - } - - Item { Layout.fillWidth: true } - - TextField { - id: hostField - placeholderText: "Jibo IP (e.g. 192.168.1.50)" - Layout.preferredWidth: 280 - onTextChanged: conn.host = text - } - } - - RowLayout { - Layout.fillWidth: true - Layout.fillHeight: true - spacing: 16 - - Rectangle { - Layout.preferredWidth: 320 - Layout.fillHeight: true - radius: 14 - color: "#f6f6f6" - border.color: "#e4e4e4" - - ColumnLayout { - anchors.fill: parent - anchors.margins: 18 - spacing: 10 - - Text { - text: "Your Jibo" - font.pixelSize: 18 - font.bold: true - } - - Item { Layout.fillHeight: true } - - Rectangle { - id: jiboCard - Layout.alignment: Qt.AlignHCenter - width: 240 - height: 240 - radius: 18 - color: "#ffffff" - border.color: "#e4e4e4" - - Image { - anchors.centerIn: parent - width: 200 - height: 200 - source: "../assets/jibo.svg" - fillMode: Image.PreserveAspectFit - } - - MouseArea { - anchors.fill: parent - onClicked: { - // Best-effort: open Chrome remote devices page. - Qt.openUrlExternally("chrome://inspect/#devices") - } - } - } - - Item { Layout.fillHeight: true } - - Text { - text: "Click Jibo to open chrome://inspect" - color: "#666" - Layout.alignment: Qt.AlignHCenter - } - } - } - - Rectangle { - Layout.fillWidth: true - Layout.fillHeight: true - radius: 14 - color: "#f6f6f6" - border.color: "#e4e4e4" - - ColumnLayout { - anchors.fill: parent - anchors.margins: 18 - spacing: 12 - - Text { - text: "Actions" - font.pixelSize: 18 - font.bold: true - } - - Text { - text: "Installer and updater remain available via CLI.\nUse the buttons below to launch their GUIs." - color: "#555" - wrapMode: Text.WordWrap - Layout.fillWidth: true - } - - Item { Layout.fillHeight: true } - - RowLayout { - Layout.fillWidth: true - spacing: 12 - - Button { - Layout.fillWidth: true - text: "Install" - enabled: true - onClicked: { - launcher.launchInstaller() - } - } - - Button { - Layout.fillWidth: true - text: "Check for updates" - enabled: true - onClicked: { - launcher.launchUpdater() - } - } - } - } - } - } - } -} diff --git a/gui/qml/ToolRunner.qml b/gui/qml/ToolRunner.qml deleted file mode 100644 index 72d3e84..0000000 --- a/gui/qml/ToolRunner.qml +++ /dev/null @@ -1,142 +0,0 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Layouts - -ApplicationWindow { - id: win - width: 900 - height: 560 - visible: true - title: (typeof toolTitle === "string" ? toolTitle : "Tool") - - property string script: (typeof toolScript === "string" ? toolScript : "") - property bool isUpdater: script.indexOf("jibo_updater.py") >= 0 - - function buildArgs() { - var args = [] - args.push(script) - - if (isUpdater) { - var h = hostField.text.trim() - if (h.length > 0) { - args.push("--ip") - args.push(h) - } - } - - var extra = extraArgs.text.trim() - if (extra.length > 0) { - // naive split (keeps GUI minimal) - var parts = extra.split(/\s+/) - for (var i=0; i 0) args.push(parts[i]) - } - } - - return args - } - - ColumnLayout { - anchors.fill: parent - anchors.margins: 16 - spacing: 12 - - RowLayout { - Layout.fillWidth: true - spacing: 10 - - Text { - text: title - font.pixelSize: 18 - font.bold: true - } - - Item { Layout.fillWidth: true } - - Button { - text: runner.running ? "Stop" : "Start" - onClicked: { - if (runner.running) { - runner.stop() - } else { - runner.start(pyExec, buildArgs()) - } - } - } - - Button { - text: "Open in terminal" - enabled: !runner.running - onClicked: { - terminal.openTerminal(pyExec, buildArgs()) - } - } - } - - RowLayout { - Layout.fillWidth: true - spacing: 10 - - TextField { - id: hostField - visible: isUpdater - placeholderText: "Jibo IP (required for updater)" - Layout.preferredWidth: 260 - } - - TextField { - id: extraArgs - placeholderText: "Extra arguments (optional)" - Layout.fillWidth: true - } - } - - Rectangle { - Layout.fillWidth: true - Layout.fillHeight: true - radius: 12 - color: "#0f0f0f" - - ScrollView { - anchors.fill: parent - anchors.margins: 10 - clip: true - - TextArea { - id: log - readOnly: true - wrapMode: TextArea.Wrap - color: "#e8e8e8" - font.family: "monospace" - background: null - text: "" - } - } - } - - RowLayout { - Layout.fillWidth: true - spacing: 10 - - Text { - text: runner.running ? "Running..." : (runner.exitCode >= 0 ? ("Exit: " + runner.exitCode) : "Idle") - color: "#666" - } - - Item { Layout.fillWidth: true } - - Button { - text: "Clear log" - onClicked: log.text = "" - } - } - } - - Connections { - target: runner - function onOutputAppended(chunk) { - log.text += chunk - log.cursorPosition = log.length - } - } -} diff --git a/gui/updater_gui.py b/gui/updater_gui.py deleted file mode 100644 index 9e52e5d..0000000 --- a/gui/updater_gui.py +++ /dev/null @@ -1,37 +0,0 @@ -from __future__ import annotations - -import sys -from pathlib import Path - -from PySide6.QtCore import QUrl -from PySide6.QtGui import QGuiApplication -from PySide6.QtQml import QQmlApplicationEngine - -from .process_runner import ProcessRunner, resolve_python -from .terminal_helper import TerminalHelper - - -def main() -> int: - app = QGuiApplication(sys.argv) - - engine = QQmlApplicationEngine() - - runner = ProcessRunner() - terminal = TerminalHelper() - engine.rootContext().setContextProperty("runner", runner) - engine.rootContext().setContextProperty("terminal", terminal) - engine.rootContext().setContextProperty("pyExec", resolve_python()) - engine.rootContext().setContextProperty("toolScript", "jibo_updater.py") - engine.rootContext().setContextProperty("toolTitle", "Updater") - - qml_path = Path(__file__).resolve().parent / "qml" / "ToolRunner.qml" - engine.load(QUrl.fromLocalFile(str(qml_path))) - - if not engine.rootObjects(): - return 1 - - return app.exec() - - -if __name__ == "__main__": - raise SystemExit(main())