From 608cec26b1c2c8f6b4bca92902ee2264b1e3c02b Mon Sep 17 00:00:00 2001 From: T0b1 Date: Fri, 3 May 2024 02:19:47 +0200 Subject: [PATCH] fix compile, fix clang-format, add demo window debug setting, add setting to stop at entry or go to main directly --- .clang-format | 4 +--- src/backend/lldb/lldb_backend.cpp | 17 ++++++++++++++--- src/backend/lldb/lldb_backend.h | 3 ++- src/frontend/frontend.cpp | 16 +++++++++++++--- src/frontend/frontend.h | 2 ++ src/frontend/target.h | 2 +- src/frontend/window.cpp | 8 ++++++-- tmp/main | Bin 82608 -> 51064 bytes watchsyntax.txt | 0 9 files changed, 39 insertions(+), 13 deletions(-) create mode 100644 watchsyntax.txt diff --git a/.clang-format b/.clang-format index e7de6a6..af5dcc6 100644 --- a/.clang-format +++ b/.clang-format @@ -83,6 +83,4 @@ SpacesInSquareBrackets: 'false' Standard: Cpp11 TabWidth: '2' UseTab: ForIndentation -CommentPragmas: '^\\.+' - -... \ No newline at end of file +CommentPragmas: '^\\.+' \ No newline at end of file diff --git a/src/backend/lldb/lldb_backend.cpp b/src/backend/lldb/lldb_backend.cpp index a9be681..d672288 100644 --- a/src/backend/lldb/lldb_backend.cpp +++ b/src/backend/lldb/lldb_backend.cpp @@ -30,9 +30,10 @@ namespace LLDBBackend::~LLDBBackend() {} -LLDBBackend::LLDBBackend(std::string filename) +LLDBBackend::LLDBBackend(std::string filename, bool stop_at_entry) { - _filename = filename; + _filename = filename; + _stop_at_entry = stop_at_entry; char buf[256]; buf[0] = '\0'; pthread_getname_np(pthread_self(), buf, sizeof(buf)); @@ -60,11 +61,21 @@ void LLDBBackend::start() } _process = _target.Launch(listener, argv, nullptr, nullptr, nullptr, nullptr, cwd.c_str(), lldb::LaunchFlags::eLaunchFlagNone, - true, error); + _stop_at_entry, error); { pthread_setname_np(pthread_self(), buf); } + if (!_stop_at_entry) + { + // Create a breakpoint at main + auto bp = _target.BreakpointCreateByName("main"); + if (!bp.IsValid()) + { + spdlog::warn("Failed to create breakpoint for main"); + } + } + _msg_thread = std::thread{[this]() { auto ptr = this->shared_from_this(); static_cast(ptr.get())->run_msg_loop(); diff --git a/src/backend/lldb/lldb_backend.h b/src/backend/lldb/lldb_backend.h index bfd78d9..5401f46 100644 --- a/src/backend/lldb/lldb_backend.h +++ b/src/backend/lldb/lldb_backend.h @@ -90,7 +90,7 @@ namespace dbgui::backend }; // TODO: source_init_file: false - LLDBBackend(std::string filename); + LLDBBackend(std::string filename, bool stop_at_entry); virtual ~LLDBBackend(); void start() override; @@ -162,6 +162,7 @@ namespace dbgui::backend // process state bool _first_run = true; + bool _stop_at_entry = false; TargetState _state = TargetState::stopped; std::vector _reg_sets = {}; std::vector _threads = {}; diff --git a/src/frontend/frontend.cpp b/src/frontend/frontend.cpp index f0b119a..56353ae 100644 --- a/src/frontend/frontend.cpp +++ b/src/frontend/frontend.cpp @@ -9,12 +9,13 @@ using namespace dbgui; using namespace dbgui::frontend; -Target::Target(std::string filename) +Target::Target(std::string filename, bool stop_at_entry) { state = TargetState::startup; this->filename = filename; id = 0; - backend = std::make_shared(this->filename.c_str()); + backend = std::make_shared(this->filename.c_str(), + stop_at_entry); } Frontend::Frontend() @@ -43,6 +44,11 @@ void Frontend::run_frame() ImGui::ShowStackToolWindow(); } + if (_draw_demo_window) + { + ImGui::ShowDemoWindow(); + } + this->handle_msgs(); this->draw_open_popup(); this->draw_header(); @@ -154,6 +160,7 @@ void Frontend::draw_header() { ImGui::MenuItem("Metrics", nullptr, &_draw_metric_window); ImGui::MenuItem("Stack Tool", nullptr, &_draw_stack_tool); + ImGui::MenuItem("Demo Window", nullptr, &_draw_demo_window); ImGui::EndMenu(); } ImGui::EndMainMenuBar(); @@ -314,10 +321,13 @@ void Frontend::draw_open_popup() if (ImGui::Button("Start")) { - this->target = Target{_open_popup_name_buf.data()}; + this->target = + Target{_open_popup_name_buf.data(), _open_popup_stop_at_entry}; this->target->backend->start(); ImGui::CloseCurrentPopup(); } + + ImGui::Checkbox("Stop at _start", &_open_popup_stop_at_entry); ImGui::EndPopup(); } } diff --git a/src/frontend/frontend.h b/src/frontend/frontend.h index 64f4431..f339d79 100644 --- a/src/frontend/frontend.h +++ b/src/frontend/frontend.h @@ -44,10 +44,12 @@ namespace dbgui::frontend bool _draw_metric_window = false; bool _draw_stack_tool = false; + bool _draw_demo_window = false; bool _draw_open_popup = false; ImGuiID _open_popup_id = 0; std::vector _open_popup_name_buf = {}; + bool _open_popup_stop_at_entry = false; std::vector _windows = {}; }; diff --git a/src/frontend/target.h b/src/frontend/target.h index 790831d..5d39dd4 100644 --- a/src/frontend/target.h +++ b/src/frontend/target.h @@ -87,7 +87,7 @@ namespace dbgui::frontend bool is_cstr = false; }; - Target(std::string filename); + Target(std::string filename, bool stop_at_entry); std::optional data_idx_for_src_id(size_t id) { diff --git a/src/frontend/window.cpp b/src/frontend/window.cpp index 17fd2a7..7558ae4 100644 --- a/src/frontend/window.cpp +++ b/src/frontend/window.cpp @@ -908,6 +908,8 @@ bool SourceWindow::draw(Frontend &frontend) ImGui::GetWindowDrawList()->AddTriangleFilled( pos, p2, p3, IM_COL32(227, 197, 103, 255)); + ImGui::TableSetBgColor(ImGuiTableBgTarget_RowBg0, + ImGui::GetColorU32(ImVec4(1.f, 1.f, 1.f, 0.2f))); } // TODO: write custom code to catch mouse clicks in the whole cell, including padding @@ -1374,7 +1376,8 @@ void WatchWindow::draw_value(Frontend &frontend, } expr_path.push_back(ExprPathPart{ - .ident = std::string_view{name_begin, name_end - name_begin}, + .ident = std::string_view{name_begin, static_cast( + name_end - name_begin)}, .deref = false}); this->draw_value(frontend, member.type_id, member.name, node_idx, off + member.offset, expr_path); @@ -1390,7 +1393,8 @@ void WatchWindow::draw_value(Frontend &frontend, frontend.target->types[type_id.idx].byte_size / member_size; expr_path.push_back(ExprPathPart{ - .ident = std::string_view{name_begin, name_end - name_begin}, + .ident = std::string_view{name_begin, + static_cast(name_end - name_begin)}, .array = true}); char buf[32]; diff --git a/tmp/main b/tmp/main index b19ca1a512ae0e2d085fed575a4e25bed85f3c83..b08b16b712ca70257641f56bdb78ceb567bc53e2 100755 GIT binary patch literal 51064 zcmcJ23t*f@wf}tkNYW%t()5u>Te?ZRC4J@HqzNs}wn>}xMccHc6k)sBY?7sUvAaoI zQn>>v|A5WKIXaxdDIs*IDWs6f#eOaom0?r5OzKeN$uyO7 z;-7{``=|O@sp!z5S&sTRI6>AkIM2lq9Uf7H=`gWeQ~4JBB3RH(}l8PwiB z)!shUo(>PH_H?NEx%uTtC-LRq(RnFVj-RSVY*gizD)`bg7w7A+mQzCLQ1gBh%Bdm> zV|)RXr+M` zPpda<z>)nxsl-3YFH78pcvCcO6NgnAfr!kz9Bgxl zt5p84Z`*|_lqSAMnfPs-yBE^!6!*)d7%C1zYVG1lq^bTNUv?!##3ufz@+ly`(pXSf zjDP%d35#HR+jiY0yk3m7-y4qjLJ@DDFW3)Aci%w2f_R0uZOeLZXCM^l4u&Iv(3bTp zdk6XhTYMe80hu>yPPjJ^7!=+eoxK}}g?DTJ?qGkXcXJ>-)Q3{u?mc_FgMmAJh_3l~}!UB@no* z-zes-F0U?MEUQ4grk0BJNrcJ;E@lDECE|(xEivF)jwx@a(j%niNT2Cnj{!I5<)8sq zs*#KAG2p~|{UaGMf31Pu-T~K%1EJndarCH_U6<(>O_@HirUvv*w;xBcM07YN39$}g zEy7NO|3tV4;T#D0uMmC@A<5Ac{G*?B#%5vd$+MjuV`8{Xq!MTtaA0ClO*f zBHi-~q;!7?uND6yXoKdR@Z{v3Z`+xp`#}YJ@XvuZGbtax=sI%7#&z6sx}BzsUAJEe zoH_Wn5p|x0(6JDTa79j@C#SGEr|EqAS8TRzIfZCwMNWn%rwJJH_jc|vA6C85w*RS9 zTlc@%dj3mqZQRmQ^+465t(Po&3K&PHJ_e2P&#v;^Szq7+g#Xa5V!yjvF%YfG=oy)O zH=(p%@IYk3&j@hzg|15<>WY=koz*0M%J}EL$-(}&S|5CKdFzAk+gq)NTc7$QGAUX^ zx~d_uJhi`X*#)!F(9q(1`X3|9>uy(c6CSyTFgp^y+lf z^y-y(9DQi$A5{;WY<3RCJlon^&wssa-6fGZh3oc5=477-8-#@iS8TudTvE2kLYWi=Dmp6R=L+0!G_!eUe@y;hl2PitI@{1IF&pa2$NWAE$ z`%x^DLfc<@UhDj9mH)cp??jc(z+|W2TSsMkzgP5rqSCLcG=_-jp#dB3Z$1#UeU@0J zPPMyAh1*ovr9ywNufN+hjI}2?(C@0ME3YiCbCsLlGEragHh$H%7lFdB{?v%F8i*{9l?tHyh@ zdj6*JbeJlRrZxRj=+U%JRXAE6^gOY|Rvj%>c@FWmwe@<9m>6noOKj0mv*4By1vQqQ zDU(H54=*3oTv4Xe#eNa>%Zn$mA7x-K3084 ztrDawum76uYiW2Ao8x|ZE|)2&UF^=dUMHFq&?YKJG+d|hbi+2$HV&K(BXD#ZYgBzx zMKuvz86z76jih^@LcdsrQ$$TdvC(>KO|slMlb!aQyn^XDldOD(~M{IsURZ>%V? z=QL&=m(@0TIW(T#DQpEA0NbNBF6rEVo+YX#Pr@urD;NDa5^-q}l}w)_>^aA0WkKy` zG6Ag1E4TPSRbvz)M3LWb}R)b~F5hB}xGBMgFmH~H0t`Ir#H0Q?C zoEJ+@%-V&DCsA$tE$|@U7V9jUnOwnyW2usnV}LR>R(g5S(xU1tYH*tDVYOmX!3>lm z_7s+*X6m72agh`7T2xX@5h12eM4(wYqrd_Ubr=AG2r;wV(gV~sS(ZP>tj>>mW=%$q zmm=bdAxqSfD8Q*pm&QO6XSS-&Ny%z7IVT=KEx2QaWIcp8HwM&2kENl|q?Zx9h*|TD zfdD_}M+E_i1yKQvQn--H39(4Bk6J1>drW|eXwwjQ-FT%jY{03C;b@HN#8DHXCJJ)W zP}SNLD;G}|roh)_2pW$<&{fY-Cq+xDK4Q)tSSP2;u&GlSO3ucs9RW9?QtXr))4f{%Vj5^h(*{ADV zqsm2TTiY1z-nz+xL}|UQns|31&58|V8J;ke=jTREWi)q_2@zs*l&x78S-C_+d%3lG zvMZ|-Y}?`l*>VbOr9sm0Z3IVG(H$X9%mSablM>O8lT3wqibzL` zC-BdKe^7_kKFpaCj??2P8m=sKaheu!o0+gqJb-n{n)n@Lu=V-%@@TRFunrF;4`Ht5uwCr&95k}DjyDQCw80grGNBRYLWQ&Zm5jYfe z-V(H*o_PgbrU+TCrzLtXhSoXQBnqfpg-Q(elw*B8NK%;mM`W zef?Opnk(|&nW^Z_o8rnlsuPp4YjgJ(3GscjWzWyZosMDbn2-2m*t+&2G&H*&4Henv zAo}Yq=uVmARV@E4+mGR4ew z6+-OB-pq0JHq=y14`J_z6}o}iz2ula$eH6{Q3-flyoWHD`dNoDfUfz~LYz4X`M;6* zRJU-YV`q2WMnL}{p|YLlAbX7a9AOpBMSWuC@GPh%YUeKuq(;QdGteRf-+UGANz7?~ zME9$~RLjxhn$;x4(`euEfzg1gaEcI(rGS27KuhjN3$H8zG|l=7*e+`;@dCGt+MQxW z8!oP-E;6yD=jI6U5QM-{XmMqtv;ZdZ7B?U+2~mju1os9|&aut_7n4+pl8+#2C!?5S zqqP_)vZ9juW(D19H4>B=QF+V;1Ob+v?^dM;c5tNSOX_fa!2P&qAn3e${ zeFS{59Kq5nzzN2CM&ZFQ7sd1t(?-{s+F`u^r|_6idWh0l6I9-dDvwyE z*zzD~I6!o~YLWhtEM<ibNiEMyncFflm-`}fPaHkhY;u=IVHR4t2gs_7P$K`(ww)_%wvgj->CDpnt9w4_ngJ5+|_0t^+>oKi-hQ<*?iDW zI#NzA;ob!mm-;;=77bN6Fe zbG%@GJ3U(Wv|B*WCC~$wqtAUeNMn@0*{9LsAl1pV+kx`vN1B;4-8Bp|{k#ewfY-7laW$8?9$ynD_v%t%ZdhdT~@IYze@ zR5~iKrbdZ%`+?o<0k|#>{1OK0dYY0;P4L{c822M2CTkr^9#}kiaObv7RGBB4nPP4P z1A8z2IXVT|!GrtTo^U@3&M>&b86!`)GwR?O zfWSJAi^FaOCm6gs4*S>W`tvl3+ngij>K9Rj^LCnfa;~;vGI8E%W}cj@#qBC@kC`Xu zWBvjmzR`yEE;aL{Znyyw#d+UN%rg|bd(sIC>oyZBs_}&TRb9>fi3q}d8c5?No;34f zqUioP`pgK=ng~q$-1jk{&6S|NC{4+*>~AAR`r9NY^U_A}aBil`JJHOOdg~@AAucyy z=CQ(Midcf&J-UW{CYI6PH+40aB_as-GnjJR#0_Si(ciye>>1%f6G4vE29i54%<*Ab zOiA+UEyqLl{!WdxCOr{LRujQA;%d6m4fZe%a@-eVW55V!kBVRp{>@+pqh2`z)!@j7 zc7=8Gs93`NHWVON^Uw$cgEyT`3hQ@f&mM-dlBVJ`QngF5eApbj-4!)BmxXcRn3|E; zOF53U&@7BFFT>yy)h68E!n(kD%M$a78DVZMwl}VH)V?W0uT|}s2U{_l9J@wsuvqf8 z3A%}~&Kn!cWboY>EXKcfbbN!$SD{0Ude_*f!hJggh_Rj=9n0YNpLB&UnyAcge#jpE z6{?;qd~b9tgTjJ*g_<+L7?W6qgeu(2S17DGqhlEq{!4SmJ34C2Y<17WXfc_)Mn`2b zB>|^k6d85*=%^$v(zteeTnhF4(NRevrG4#g!8*XTUT3045sGLNMSF%2$J+$lDGezAhBo*Cb76LwCOIUhbVaiv-F>&INlw#(kQwpS&y!LiOXNZgq#nF;%Y7$6-&6CvlYU1CW1l8dLX<; zhTAPBf~0F%b+x?!tT?UJF7_&R!gyOj3#PRCd>8!Twqggn?|@ z(W?nhl%jSN=DZ_j9+i_dNUYE68r~Tj%WUy7Oi`|N%0#0@>bh{Bg}OPf-pq@&D6zhU zVP>pT$HtPg?AWcS)#3Q%#FtPcSCsB*gnMceK&!3ERM%DM%HbrPG|c}8OHgL^ra8bm z*JhQGqf_c%&gCsToP^FBSAtv4O;*%5TKbRUrD^B%TE*v}^5QR0pXSqOWMP-*Y`048 zScA}xf2XnAh%qEu$;;3?3+s{9KO*ZZ*eX$fox{@WaxGQPk2gS^D4BuUX=mu%ZxMjA zM9I@=i!`0{YgT*#)nGqL+zo~8yxuxM74pNV^}bfQ6gdBD^!yvJ^pGX%{E3mz?SCG7 zW>NA4>?Jz1az11cp!ini1`YY8MC%r-;XC@;4sI{NyW`32t3%ZvPzaE#2pmMVC zg6GhkD={$6r@26h8`U2M8P4Cy3b+X||2rr#6*Z(S%FK5hMq}258P-A?hebP3gRshf z4318?!76%}Xp*TLWlDNjD(=F%POgy&w>VM1nN_}nz;~;%!X7}4?riLOD=Ho9pnI(J z6TSY(Nb~pvkC8dh*BT&WFppM!}?|c|(Gpqaq3*a7AwxS-QF%!+C z@A?xOw2F>U9j{VvrqSZbF7NbJ(|(IMZ-3KUD;@{sTx1{@%c&|d9Z@ljM48>h>8qzb zk2vqF)7vUeK`WbxoU`SM%#^+agyOgG5LHv*o&F0(Ed5$VDq9AGAS#Z-PMaJN>330D zHYa9YQ;zGoU`zTd1ZA>m_B@VJv@&n8ChK#AlIsDXrZfL+-47aze=rY^|H4De*B#8f z)0$8CXQQhg1&`6}AVKF6wg5G_!P*{wEFb1wQ$6=t{DGRoV)=j<<7MIR7VGIfzm6@L-~ zeOZC1n8Lc;02RMMs1-|LtB{Cg-_fDfp zL*25nBNatZT;!F@e!#%4z@;qqgk>K#p&>L%jbijM&$6`B1v6M6{h zkAxum?ShnmJsDzh5e@CJmKs+c z^0|deaG;J+%dUur{{@^SyFI&3!$~Ay^WyY}tp03|)eH+sb&lsYRj9hDCx?}NmV0`e zv@5bVSab+xutOrduLN1NW@VqqYnDPFT;X1cdCPenW?r+A^RYoT!YzDSb-aq?!XDu5ME8VGb6*$U)uv94wi-fbtq#95gQA;J7*t zmU%ch{zMLz_i@m4J_jqV=3wP*9JJiS!793+Q8#Hd#1uj6GYnkw1_x{3=U|;3>c4K% z`Wy~UDB@sa1qYj2IM{qL2V3ZxMct&W7g8{_>2eM(d5eRue#F706Bkk5WuJfpbyF{| zgy7dr{n}~{uIS_7>tEpD%4<3J#@!rT^-B(}{v8L`Sd~=no249Fdprl%1v&WEJ`TQp zIS1dpje{E=5U*X{J z%^W=ZFb9wPnS)=v&B3F&unX#@{&E2akFDn5SAGs2ALihROE`G)1`dw=HwRBW$-&bv zBdDK>8(~n6^;5I0V>p~>c{rSI5k2)&kFkh3^;1hMVoUwhITkUberlO2H&2zD&*kc- zFYZL~y6JU64(iXL;FzYba^U$k2PKzVNr`1up)&dUN$~ail zz`@!z9IQK;gA;oZEXjs>QCCuXF@Z|Yzm|h99N^%KPjPV3A2_)9EeHe29Z@JjKCP&vS6~|8j7R9eSs(^qa*TT(^*eZ>{9u zdM^jx`8)^TyNZJwf55?kJ2<%MQ4Vf?hJ*ilkAqwC8>r4(7jbagat;oj%)viH9K8EY z4&J|sgAaP3N9#&Iyq8lSKh43viW>>|$xEC%dK5u@sjw;uI=5pL2mVbQ1bR8>I){Vq zOF8KIE(gIMb8y;W4t71mLGQmf=qrMPubbOn$-zJ?2ZLS?P9NqVbS($ryE%ybhJ&HE zI2fJ;eOfnn_iPUKv~jTaWDd^m;^3SJ2m3DM;M{L3tr{mi|=x9 z;lyQB^+hfY_Io(E_#_U#G{nIr`#AXOWgJ|3fP>2pad7#w9Q^mY9NaVcc&hB)8V>H; zz`^|k6f9``Dgx0!4uFRJQ27}YbKJcNXE>Ha-r{Q{xML2woSxChh<6Yoc?241bKUSD zB{@cq#dvYsl62KW({!?cfCaix}LR{l6KmP(*84RNse;{$gr}` ziaHbQZOHrqk#x4O(@vK5{8@GOtpL-8AgkWqjzy0)B3VoAK0s;XmbKV^3ZUc@$U08c z7OlhDdMgUnP5nqJH-}PEPN}3yeKIdxu@bLKUgGj*l^BPY`9 zG;?NVgAdEGLYMx5swr-S#^ML$<2ETR2c@*!E~VuTDJ?%DX%P*y&z`S`5qt3Y`-^Fb;x`SHB3pfA3*fim_3uHE_Y^3o|tC==?&m<+gYOc>9AYtyE9To~4Z^T;PqSeKEz34_k@`n=q!;10)^6y}zJ ze;jXc7`%6&G@#89U1G=82OL9-u^(<@3y+2*yG_~fEMZ)-=jkza)a*nUq zp8Ji7pa=C9Ht)>+BG`02#aH#@{s02YbhZxWdck0hw?%RX^Khw>aMtX}eGPr1>&}Ji z_vJo@wrGMCZa6RZ+oGk$j`G zzKEI|iS;b>IV2}n#q^pb8Xo}Gipw$5g$o#E6`HZGZhVFcKL>If|4gxKP|ZpfHS&BH zmB*@>B0L9>S>Uu6W3efoOAjKacmZOfaTcDAZb+Ha(M$-Mw6A7J=`5r%wUZ0W2#Fi{W|NaCmTku$7mS;aPw_J_`Iire6+=}IR zlZI&f;R!(S#pIk=CfYU-$4+CJCrK@)hiF>?b`+eS2)%hCpeH8Q@ElZW!F@bJu^K#K z>f9DPgX4#=co@4_(foNl8~5RnaRDB)wt|kfGxJdB`Dj(5?KYa6f%q0#wnW=uniYNV zB&w{Jh(n(nt(50>>cVz|OA}FzDXsZPH&Q>^Ii3Y!g_|)OvPC8)*>bx zr$F&IGMYD1X=>QBo%ni=)ti8K=Lx`bwEf&d?z0ILa!sDgXdG{~$Rdd~ptQujMExBW zE$4}OZM%rv3uF9d;wULR(;yB7EpqzOtPq}iK}LaHLZX8vx#u~CdYEn{5GQN$qrQS{ zna2oRSmt@D$9YB`3!uz<3sa|HM@(ihjemlnol8x9-2}HiN}TzAtZu4AwC%w%QSi$c zl$sT7`Iwpox5c0m_k0qf-^QR4_mzA=KZ!vN;?|I`pKBE?Hn}Ps`_QH%&$HqffO^m} zGh_h1PnCuZfCJm9nGplV$P%N%pcJh2NM1jALb=Wm8MuhN?^Tu_X93iSq>5Mxt z6s~&=Z6CEDple{1xbBce;;jp@>3rf|yPYXb2uE!x_+uuG?A9M)M^D+jf!w-N|Y; zA7% zBy)UYhS)fpXxy(@;CUR2iOXkaRYVWr=^;V~>Gsb-NUkV@fN!yPBl;1<@z|VM zCE(Mheh^%iZ!bOraM4Jf#I{E;>C5h5`DdtSC1kv8ie#FE`~#Y&Y?=XS%Lil2UNH)N zKq!`+yt0sEG9d3u$eU=W_-$&lnKGN-$D@%Pn4VtDk+O|)cJSzNorEtutH87}n?)t0 z2~FJ8LrNi$j8nf}t zV4f_%NR>Td#-QyX zV)U`x;~3O)4h_gq0%2;0@fbC7hLOjTs3`wAboONsud?SyZLZ`GSov?Ead=7Q8*OgK zqFZ+MX!WYCPb;SPFR^|Ju3iPUJfd3hAzM&Y+-1ZKt#l=Mul5HKJ6LGq;c;fbx zK$GJl&cME}3t2Zn?5tUEg>z~0iJw#gIdI%ZH_cDt!uRogNA|exs3`#Yw%5?4x)Qi; zH#8mMbZKzgnKDk^Td`x8gHWGGHFyh_23(SLlf`5aD&XW}6+0FnVQqU8wK`sus6PVJ z5ogq1nDQzvPM-K&I(7P45E{L`8SD7DnDV&S$;G&@GX6P7tMy=s5T_i$cuf2=HG0Yi z;L*f)$l)s5zefC>(`4}Xq`wf|e_-<3GwsM;8JErEexB!aeGhmpapPrCHE?Lv@& z_!kft?Ke^7=jzg5LPR>5+g()cHE|j3+X(hU4U;4NV+<1=idzrI!P{5EL0~Y&=S&o;i3CJ4)xGU=tJiD6{F@9)aGWZ%$@kNS&9IEpp+5SqvyRz2d=`S`= zCIH1DEQv$X*_E{jPtm;{&&yOj7-f9x!h(#6o^LByCK5X@K~I?Z#}M;{@9rjCJW~k7 zBYTO(ohPC4e=i}^F~=?$NTTS!)X1f}9mQ5UmnGr#?>2IonhYzAb4lirKi`9osG8JH zr_VKDWJ$pMM}ZWVTSCm-I*Ia*B;;i}Z4;6A7l8T4eR}xQ`ebH~?32zNy-zxKtUew2 z)IP=KCiKb7OYBqd@n&49R#l&7ZMCWdgY?i5s2XeMcQMTt9AT958qPt`y%+_?2Zj<+ap!=9lmgozI7W4_IG=SgMr;`et@f}fHxBI1tZ}$ ze@n~aP#3Cc*|^r<*Qbisd%gZWd#b9cs?91!E8Xs+Dypiy_-Jl0eA-aIKSDL7SWjK3 z1K-{4Z^1WocWh{nBuhra;83{7+u`%?YGDeJuc6Kt4hOsYTQ;w4uf?~3nUBd*QSTq< z8}x+&Eq#5&iQWEiWMCHs{+^KN4nzX|!(wnKLZg6h19#FVi39!JksdMBPi^C?iWpvT zw%6Mq*saHOASA-Oee{LlWJb0&eqfVl$KX22NJvw%T&Sw1#=X5hNbNuuOP3fz$Iw}T zYO1{vF}yqM_w{!XYx@0zdj$kFGSDdoA+C`wA@i6^fzyR|B?&D{xHqzQFj*O|2|&Uj zRo?KhD!$%Jlcm?&>5KRTq}Lw`(9{V9=wq1yZx9pA7a0gG#n+qrhiEo5Hey5uLVYL` z%_Qnv^B21CDQC*&In&r^&KaJa3W2cIypxkw!PUG)V}x2kz!)LyMODURo1HHX+9^y08k%8WU-O!%Cj)71_%G^+|=YpJ3rv&LJhPHK^)%f*z0Fa=ksnxvRM!AKC_KtCf8;sMfYS1QWB+6OTgg9C%C@KY1Z`cPo7*XIwkY-oti^D1;X zVV<`^@Ub4Ww6r&P+n3P)!no4s$$3V*@2mNZrg>(&yXbjcJPH3D>rcrXlqjQePL$^(w`s z1wy#qtLHJBT&Y^IQN!&svi`UlvZ=kh{XO{O5hr+ehp-lVv6KqZk-He?ALtDDha(~w z9>OY%B@OEj%)KsHihfbiGtd{P*oD6?Q85@AI4$6hgey8bx`%=lk-kCU>+B2#!eKNJ zH6d8lXthdPg5AEoVQ=8{Az!aX(AvSKqHl2z%&63`2Q z@Zyh`z|Mxx z>?R-%4fJ+u%LJl~=|ggiotfx`kPTxT`ULhxu%~&q277u{+qxFo&xRr6yq)uUcU6hL z0SuPh%_k{=F)3#+KoZ)+kX^kZB~dzI!%90HSgy1?Jo_`Si?vNJ6-tWQNI54`m9W&T z-4rD%ft_+KWczpt>}33XBxpa@nc+c*SYM!zyd%MI2liXLL{}()sqXE9{s0y&g^01! z1OiBZTZt4XtyHn?)(F2=J*^)BxE?mI4T=G*thAk9CZf9b?5LKd)efucpsyPq08*zU zyk5y{5(1Kb$UOlELxHX!)PGWLn5bMrqb6B&v;~p$a%utu!xy~?kPn6&PN}Yn=(>5NMnMRiXA;_p9NoVQsSxnztXjnjKZvodH9sAma2OQ+iEr6uo;u;4TK~+ zoV6k4h*QQ)di8??HApHdg+HpLkj6|IO?QjvsPNQy|4kihJ3U4j5KvP5ZFaN zZqm*0XY(FrSUYt4RfHE+k{zkV5{15oly=H%KPGW%%2C^2l64pZ5FguDi9r8QAN-2g zMXer!#}WQ{8M5z(mNbq?@3wUQcoW>+q!?&{0qRiyP&m*@9!ACHF2&_2K(if-PN)kG zORq1~jeq1J!UluZN>oLvrAr!JSl?*Z2$wH8EU`V=1KM$#0FO++KTwq#OIB95wb#Jy z1)f5lYLtT{alE2Z2Q*%rVhgK0p^{uwn^M~R`su+QCnf0PbyG=SWvW_6?n(lfVgq~S zmM(sXwUOX5?L9s>OO1VTr&%fJgC&07pwEv#7@6wM1qL7QnxeBQX^qNfX*?H`SI0O! zN_{e_6NgXP}1lJqt24t56Q?gjdS_iL;U0-bU)Vy~vPF`P%KiFZ}C*F%nJZx7lEt*pk_Z&N2O$>}B+L0H(3M<4!DFD!C8MHb|G>w-NITWMpCI9i0fUeD&uo|C-oZ97`L zTTa^8;zbwq0Tx^9so0Vj!Psq#md#i>wM92xSxj6y##^r5AG<+eZuQhUo9wud3(nsY zz-T=>8^ICXBWR*V38N1dkd_`m~~5 zotWzN-nb|sEz6iC89i5oDcGsb6}1sLtgT2G?aI`K&m+i_$B#W@zYl+n+O%z!j&=m# zI$lI|u%J^0YP^Q-YqV_Gy576Zv#v(ajOr(s3{>-{Ijps_1#_Shb0BIMe%cWP+K1HX zlAYctQ^*!kqA=d+psyVmrwXJC=ns6e6_}a;*JF08wE_kXrncU^rdHj^ZA_`lC;1Mc7%3`-huvZSLeVGE-qkEl{aUUTUIWy zm`T)%48pxytM>RYXCaS|L;!4sw!g#Xsl<@ zq;6@PHy{&zk>gb_i{S;;MizB!oXr_~ha?FdZ7CuZlx&AbvA0w;Snuh|1|1&CflXFE zaeZbz&NhQ^Jn{WH$Q7*6|Lh7HnIY0>kUdRaIn}BCq?`(B513j9Q<#7o+UvY+8`Tw} z6>MSZZ78m$!5_j$403iP%WqSduuzlZM_ohWiIZ+YNmx-k-7H}^qf9X7kItxhq)8QNQna
5z`D~Dg71`im+FW^pC#UfY55evN>b2A9Zbl3@){1_7(;irkQt=*ZgB3aTk(px zWF=0@>}Rv(A&;QC<<5c$xnz-ylTY66khI2jKT3Vk`2_SEU4`sWHxPukh5X>*fS=!! zh)I!D@8eyReSB3n=>uBB&62zYz}|8`$4pjiM!8&{lGM;*%~!KGrg&TI955jZ_|%M8f>UTap9vWvS4!S~73 zy%XGzCwn)}g}}!ne6%yxOAfT3r`IlahsXxQW&>(Tool2vT>L^p!fQIoOAY2b)c9Ce zsFJU*swUing%j5T2E1Lkvo9ws~AG;@+K z8FfI(EoMp!QFO{_$8ai!V6+lb--8dI;$X+t)RUsSG2ZMXuRZowTlg)RNOk2HuV=+> zLUhqNC0&`qQZwq!hH9}l_TD5ptJI6K`dt`E zmfne=inuo_W4GkZeFDj1vhP{4)bJhSB>E63=RYN#)E)zmhY?Z`z+C02IM=~&F?();}vvFHFdEmdV36)5QcDTJQ&_1 zXLuANdTTt4TS{{3!HyWioxB-W3_fMuj`IbxA6UP=JJM(+5guzJKcfAX=n^V#04KeK zCNdgBmhyfhx@k+%iN*dIZG+36q#(fRP2+K{GJX;!w$c!?Cn~nLm-e84h~8f59qNO# z(916s=sR%HbIs@r@_Z`6+CCWe_2On8ipcj6ad89-2UZMzWfE>NzWdU}hGJCY^m_{Y zq9mMI!$NMFlt?7VUM;(i_$5KQ9jxBkk<;Ez>7nVR8GWLbXpPlpd4|VWGapR_IxGNIG zQ90kQj0%mqXgRFH^?O@L?$kKSy*cka^cZh}6(OA~gLq+AnI$7`P^kMFQ9(HQ6t%RD z*S3%D5MxF)9dW00{0jy_`J2~X$!ogai_5C&G>5P5rexcWJmnsz=1AEzP2HA{P5^a} zI@R@=%^mZkhi->U%@3iJ3NR|2(hUlAHrV6icLt%yaD9VcER-)4g6}aGP7O@tmOXeC zWp(s5nMeQ&to9f2m0#N9jiRFBUa=b6;X^|&4;GZQri3_pm`4kJygiqi7E4+-=z;{l zk56ynr=sE(^OqhV-5jPkT@qiMNLpPboa87Ed)y5jQY>S6*2emL2o}TGg(11PlHXj$ z=+!D*3#Rja5k1%MhHtJ%bcFHs3%se!UP@j%$ztP37hfU@V@*>ha#fYlOG4GdV*TDN zHh!^WFm!t;msbcOnG<%6zJ^4p&Drl&YP%pXeO zcbJCt>0qQMNIq(RmB2fqfkFOG72j5t^D)tWuMV6}S3AJF(eq=+qMO^R#=xnnGW^-7 zEy%US@9BlSl1z=nR3+|x%ll-BSBA;k9q-AbLu<4zU&K*rVcdc;lKU(x5EAt&wCsD* zYJ%+j_$8Q@DM=v~zBi$b=wP8mB{-;(p`UM0(K0_nlMoDo5 z<3BNz?D*qllK;T5s;~dB7^Y+}B$|X#DP+Zp6Cdm#2S}>O`+*m>@Z^`8=_?&{=I8Il zrx4^2BX=b-qhnT%~>RUU~9gZrg%7BJ!hPCLdPXpIN_BO zT5eL+ZBPoP-!W=Tr6>|rHHm&5wsz=KiC87DaA6>@6^Nd`^C${@$`&6wcHwDR)<-!L zDZn>t1^!vFPtyW`KLly3RG+T3XIoBt<~t`j^S3!|Y2|4(X<6kq8;VZA2YVgjG<ffU3uC{^?Rx7IN zH2*&vGAiU{4Z+Qo_mIrsZZX!#MWjdi6-3?Ig8-Rs4`kxI*-|Fisj2`A7GSyV3U(uj z5244M=0-81&UT4pCQ&CR)jm)bNq|5)mCuVlm@FW&afC(uej-hxbnWhxb%Z0akHYeG z7XB_xSZ8vtW1YqexdfrQWej-uioDkwJr@Tc9p8S|9}JL5zf`LzCBL2{p$wE2fGAws z=d%-;huS*>U5MlF2FNoN35PMtZ%Lvm8I$GxG*l|eaiWk%5kP$N9MwT!Bm&}I7`8~z zK*=1{A>b@x3mBPl&d*a1IBEU6 zFOW{Rf7!a!VaMNWz3Z&)PWyL|HN*aZ^(|+fecpCwTG~=aI<%Vod*_q`$;z_7bN2Q$ zyZ1aoOS3<3Z6Ar3X8+CE+kq_7?6Yri+A^ouGNAxTXO8`&YzwSCWOFf+dQT)Jk0HmGKZ_vk!ZuaxOQ63S_%>Ufcs-%NeGH!@ zGKyR%82kMTQT&Nm(WLl1S7kYXPjJ1KmMZuJz+Iw1G$oAhe84A(ERm=B1?|PZ2ChdX zj9@L`d85>`9dMU{r=#bL0srP0aQd@?M8BSK^mi!ecSOO>PvH~%1%^{B{`bll@HfVQ ze+>8}^s8C%NAtmf@xmW}5<3(4FUp~S1EE1t4!3Kd+_R!>5q&FKrtrb<@{XZkZ|9<5 zrzr2-+aKQBC&~#*yC?dlqM7i9WU|MHuktcB-l-@L1$upyP_aSWO)L)$@bOtWEE#+j z${!fSQ8IlISd<5Pyj>x@o$KxCL|L5@<@m%4%JF8i9G>E!DCdeOijTpBe0yc4j-x$a zU(gSF@Exjh*;u3x7pDgL;RujTAxl=$fe(k4!;jS$z*58=;y#!AB6ydiV+h}%Ko#`; zVLJNLQC~*~_K-Ri?C%=TaV$PM3cCz_0@KhW!X9MFm<*xCeH}sdrS2{3S9;gAwQs?D z_xOkeKK_rZoiIcd(RAQ20)%Uz1N>nK`g%LQ=@#ZMa*{``7a!N}EU!cZqhP>Cqq&AJ zutq|Aaj}e8-Z|9Qhuel~062wx58hv61}oI)pJC9i8LVEpGHwj1(N&v0>s!1n8=C1O z0-e2hzmis0eDR0A`-4BkFc^df2yuLNoaz%aKq~EBz3zk+o^{?6R;_Ap+2Y;eS+TAK zmEd@qR=<97|I!sWETr_V7;3-@h#JsQqYiI(AH6`s*(gk%zz3cX0FU^rC~Mn7?>}qC zB7?+Z3rmNW@w{7i>;NBm)sJP`2i=3Rr8zYX~Ju2Fu_;UcgYRERPaE2rsaBs{j`AJwbrxm1OtZYJ$i?U`Reqyc81Y2<$v)-3<)rYmeLSejC-O_Db@(XC z(I28x(=BQ*?-^(L-=Zw>PM6pA>ONKepyI!7Plvi6&!H@#=<<~dTu2E~NlFPnjVDtv z`Pb>cAYzu+c59O=uiMl3iTr;pp}gMLw5syDoDLJ~`{3V{U!n`DFtNN1#1l;SU+;VN zsrD87qO~NZ(*Yn@WfVh3ba|Rz=1-T`VICrCs+eeE2K|jS{F*hQOpchpbCI8b!k9ai z;D4BqnUEA!W0c=PLXF=CN)O7^$hMY`QNDeuEb(TGE-Ayr_GzC&utffOPL}v*(}vXe z>GC?Hq)$ literal 82608 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

J-erNNl(?cw4hlUZ3UbBScCES4_ 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 diff --git a/watchsyntax.txt b/watchsyntax.txt new file mode 100644 index 0000000..e69de29