From d2eb76b37d4da9921d8e8aea9c76014fbf32c447 Mon Sep 17 00:00:00 2001 From: aslezar <97354675+aslezar@users.noreply.github.com> Date: Fri, 27 Oct 2023 16:36:37 +0000 Subject: [PATCH 1/2] Project: Task Timer --- Task Timer/README.md | 36 +++++++++++++++ Task Timer/image-1.png | Bin 0 -> 43728 bytes Task Timer/image.png | Bin 0 -> 45561 bytes Task Timer/index.html | 24 ++++++++++ Task Timer/script.js | 99 +++++++++++++++++++++++++++++++++++++++++ Task Timer/styles.css | 61 +++++++++++++++++++++++++ 6 files changed, 220 insertions(+) create mode 100644 Task Timer/README.md create mode 100644 Task Timer/image-1.png create mode 100644 Task Timer/image.png create mode 100644 Task Timer/index.html create mode 100644 Task Timer/script.js create mode 100644 Task Timer/styles.css diff --git a/Task Timer/README.md b/Task Timer/README.md new file mode 100644 index 0000000..5aa02df --- /dev/null +++ b/Task Timer/README.md @@ -0,0 +1,36 @@ +Certainly, here's a sample README file for your Task Timer web app, inspired by the reference README you provided: + +# Task Timer 🕒 + +[Live Demo](https://your-task-timer-app-url.com) + +## Overview 📝 + +Task Timer is a simple web application that allows users to track work or study sessions with customizable intervals and a visual timer display. Whether you need to manage your work hours, study sessions, or any other time-based tasks, Task Timer provides an easy-to-use solution. + +## Features 🚀 + +- **Customizable Timer**: Set your desired time for work or study sessions. +- **Visual Timer Display**: See the countdown timer in a user-friendly format. +- **Pause and Resume**: Pause and resume your sessions as needed. +- **Task Name**: Assign a name to your task to keep your focus. +- **Reset Functionality**: Start a new session or change your settings easily. + +## How to Use Task Timer 📖 + +1. **Set the Task Name**: Enter the name of the task you want to work on. +2. **Specify Time**: Input the number of minutes you plan to dedicate to the task. +3. **Start Timer**: Click the "Start" button to begin the timer countdown. +4. **Pause and Resume**: Use the "Pause" button to temporarily stop the timer, and the "Resume" button to continue. +5. **Reset**: To start a new session or adjust settings, click the "Reset" button. + +## Technologies Used 💻 + +- **HTML**: Used for structuring the web page and content. +- **CSS**: Applied for styling and layout. +- **JavaScript**: Implemented to create an interactive and dynamically updating timer. + +## User Interface 🖼️ + +![Task Timer](image.png) +![Task Timer Running](image-1.png) diff --git a/Task Timer/image-1.png b/Task Timer/image-1.png new file mode 100644 index 0000000000000000000000000000000000000000..926a4a830e2751cca90a4c5508950602c51ef854 GIT binary patch literal 43728 zcmeHQd0dj&yDzh{%*;$JO|5Cl%G4ZlU)!fF&9T%p(R9k(b45iUYs%c4aZGbhN6l1l zNl{U-6q#Id$sGZc+!ewF6a?>UbGrl8H21&zxt|~XQypI3bIx;~<@PMLtCdKaCzJ1Z7YbM1h zHOHIw{nJz*zkbKDcgsJoX7!RiRd*bZ0u*!7Q_`gn>_8Q+@@S3pqLU)Pp#eP!wwjhPkH^04Lq1Wq$(XZwHF!<(qh=>HXetW^f zzln+j#%uo={HoKKNjkcEAcgg}A5CILYj|Lx>jkj4vmpnph;1w4>|Nc@Hb1Vo~MiT(## zK)^(QJKqy9(f<%~K8a1BK%XS>b@V1sAb|pXLjrsgl6X_R^xkI<%I0u;`g;Dxs)NFj;Kp=c)-IZEmwlGa zAPzDMHjnBrbI}%MC!(otff@3=3jkzda-~ileMM54cNka~m;^PykhB;yf?`gVdo5?w zi^tgq4ygAyc-M~il{ix%fq6BHPJ;n$wLUWo+Q*C@2lvl(_kyBQxU^P!|GurrYu+#K zuJ<7)v6ZK!KPwZ3jRMaAwG#SH@+eN2*8WR0)q!#dBU)LNb7OwGBRc|T>s}Gk&-8#0^wrPyR@i9rB19y~?NHVx_ zek5@Vd-2ivXLd%n@H415i;eO-dx^K5DTr<>JCzXTq*QH>z4p!4WT`ZLaBPXV!A|nC zS~RL^#u~fixdU!mK}!pC+amYFA9Tu9mki1575}sGmc|&Gkx$P=o+h|zae;=2ZbmK! z#B&H)uW_yEmeWD=C3GKx;>ymri%HwOYt(D$)c2%v{m0BcC{t&#Zk})mt@fZQbCFScb+s>-mpwLvh~ajt}IRMvZ}N^_i#~KXlg?@2ZIhjUoK%)vg6d z)U%8R)8ti$!$M-^+bU{`N*ZNHa;h_onNQjp6wouWa`O|CweIg+!fh+r*9Ri;Co{k= z@B2*6WT*UYh+;gP*rjo^L8Hw`rWXW;hK~Iq={)`jY9|&bzPk#(zt1yNc!9&jbL+!V zKl;(2&WG9I(`Bejs4S;2UiI`e&4dzIRWKFa1&JI}YAG66LL_6xjyvX`vCtcr=1%)w)f-HN zdI#sf9vdb$v|&G-7)g>S`sHPUes>Z9KgWA{ba~`aZ zJEn^ex$n}JE}y0s@EpReb*3T53v4yPVG~tsLJ!l<=AJ zL|HRrXek^#oaMXY-4p^ny`A8#eK3;Q9XMrGTaWUcg{#dI{Nr_&8YE?np&UD zeb)T_Hf=C#v%MNA+>R8f?~C;tMmfEI$azdnHsZAEjLd5|EjL7r)K9@kkPk!Sq*}Wg z4kJ2;J=U5c!;FJw(tX}6R6y{T73&S07K^PEIoD{mJ$%;f*uDMMQolt(kN1K*-v^oN z!;Y`p*zjzf_$|i6yo_KiM9t*n;^;Xg{6mY3hi#$UD0=-IY{#lmU4U>FZniboP$HBv zqGcRH@_!nZ$S^8A_snkhB?B*3DlMaXXOC)|RZT_^_UTFGa8fYSFrnP(X{B<|^5Uih zC|j%ml;p%Hr3vb!!QYXXLzWjJjNS=iGMd9`G!sR-eD|6JCpH-Q;iMS*}BubBJqJ ztI{#Dg8cpg-JiZlAP=X`!FOkHr^g<%eQ>l@a7ZWL13GrAt)HOV^M#Lz(%h?tIQdcp%p# zyke=0#^I(pzo!ZIb7S0ORF}mPuWSm+NR<1#>1C2WEdFdMSM(yViqvHvb+KjDYO-$_Su)SCVF|z)bal2`5Cmu zw6@2s)Z5Fw!%QsZJFjZSq|UP9)|jpG&sV$`SD`}(c(CNeR4`V?LCeG5x2RjckTiKi zp9|hYm<%gl7r7_s$B8$D?=Ha{pXmEf)lPvMZpU2*DLCMHr^+k>9*HHK&*PZ!N~my6 z*g^<1mJ+M0r)oeOyhX;a%v(0%4QqrjMOgVU;QH;Db&CC@DFFuv9v{kAe^rWHksTrVp9!vDt` zA24LLid@b}=)MW7Ry@yx z7}g5iH=!eXjmZJl7m|`}i%?qW8RqWSXBT2YGlnnKj_Fn$z2yqwF6H7;{?n!Gt^TQe zwSRulY3n(OYXQ!qp zHBHhvmbbNoT-nW5Td$`pA*_j}lBvSlz#B!R6Q#dv!2u68rGjk+xS4ZEXnG%e#|zv+C}N<0^gPj$I}E zOo?%xDq^X%?U(0;SZjqme>5p3JV>6&<2}>NbQ5&oj1v&!mC;-fBziU?FIDz!9*S#2 zAv-`X8fd{zjK~tiWo@n&K<#fpW@vC^p~}@h$9qNzP*EAx=qaz7{8G>$G?aVaIKNOE zRXk^=-$M*o29T-qxnmVSmf_t<_A)}CpD zc4-T8X3ZbKgCO-WC9e;p0P*dNsy%!p!J0xK8>*~k5e2=T)I00k0i&CvLLO5UjD4Jr zfNFv!#=iSmQ9abgFVF6?O&@7TJbn5O&RyUCVDGX&uf4wr2*Y-f${>@wTwsn{&cYXz z|AN}IVNxwpP|)Hgg2{DdJ{RNzD+SJ-0-Fn)2#!U<{1YSdJUXMqmvdFB`pRI4Fb5wjkY&^ zJFO*+@ZQ!~j~!kzMnzviV5d*eA5NXzYW!WUSD=*>DUs_c$?^)h>Fq>Rr3#`LwWhU3m(%Vl@Q9^6Pup4 z+G9h9*0OuW1Ecg~m`i=2k$NbvzyP=qBSb3s>>U)D5p}uc;AZX+#HHayuS1+VbETXv z(GZ_|A-0!mq)B?Bkq7)&-W|Mv=+3tUGOK;8?pU&KRI4-c<-Kg$nQrj=9*W_Tol-*& zfQ#+C73Jd(T#Q{R2Qva^2FmGB6v3-3V2gaI_sEOywh_JB>ncZCa!!N$;u>BIP@<#e zRud=vnaY#98Tlu($hj$6>AgjEy-iDHE^YaMr#OgV=gFiht}G>D8^(=^66VHikCr5L z4WrIlNFfSD>vKWYI-Q#F8W?6u6ZG7Xl9r&*{MQRjG$k);Gpmbac};i-m-f2Z3(|Xn zXr^f?$LkA3wmnlCl1DFGF64jjLYUO|M++E96BgkL(td7xmr4oujrFtxi8m6Z=8IHK z`HoyMaBZ9uw-|hh!>6+!o^C%#{Yf>vTF$HZ_;l%8GsWlRr#8IixNVUP%#5W_*h;s5S||!r91z@~z#(@rDS1L5~_~`3L#WbnYL0 zlOi+c24ARfj?+7=7dUO>ov6vTeY3a3L8ZB^QT>F!V>lz{W+tS@_W45wN2z{Wxo7;sQw_3l!-g{c3t4x$He-9?!$wj zWvxyFQ*WJm3j0ff=)yOpuu)Gj3Nh|jCpsd2OAA<7*d zC8HLrYG2&|uqxZ^JgaW_&kO|Ihhd|5xn7`rAdbG{$gC$FU*H|j+!glSDNel#s!@@) z7?*S`*jM8$XJtf;H6I~SAC6NJSCBG<%-^E-jS!c*-kRgfwFh?s6o<^)JZ%58>kI)E zH?u)3+B{ZPN|6lCxCPL)Wq8Ch`8WfH&2GrDw$+~_ZAMcqeGueJ6%gbG93F-1KljO~ zKf3%w!oui71DPVcfhx3E2sH?UTw88#mZd$iPoEjF21Phy7J!+FGs0HvZ*WXM9v8AbU8X)5$X|2Az$eQ$>c%D2qmu@D^>GHar1BHSZONMM_d(e5DC9KFyU2*m z7xf)SL@S-aBTSR^yg_oYP8c>j7ex`*CjZ0?k=GB5hNXCIU*+Iexo=B%8ZqsdtM88M zUct(UlAAM&0MAifQ_$ab`XIa98>T$knqtjNTIG+WQ#=(Emwse6GM6#Sv(5AqGwfzU zs;=MgFY#E(#O3*{zUKfJMU|SZdK&w3^HSDL)#_3#_DSgxUj4XZ@*NP0vu+-|&l|95 zXNM3FYRqbq>l;BOqH&4X5BGN(dE5eERnBW}mETyS1GQRTmEA2xXXaa`Orux9@oMJv z5<<18x*7a#mHUXtLPCg_z(aRDDH(AFrF6sU5$2fLlUb*0bTkf$_aYUnP(^UUSFomv^?%_Ll-qLgD-!87n0hb=>|W)fxyPV)UlC_V2mzP z)lS;l0pjWUMj{-0j0B%NY1SHM{mz@Q--BdIMEkgJ@ zp(?|#Sz9yP0y0>9`eITIyjzfHwx3t-)c~2c_uMp)SnzW5>m1i!^6itZ9%sc1ZM$u3 zeSdraW*fbIQNT|0BJrA(u!z4tU}-4!d5?#@<7twM0J-FF_@Kf)Ah{=ZE;2T-fJ)VA zVGEXRK8>1c+wN8dIk(P1l896mv|PQ%u|9BWJ6MQM!nRQG%{7_9E{W^g8PoZP>;$a!_S(DB*a`z;@z=uVA35&aJYpnpB$FfM}i4P%OCdT zG_uVzK&wlM-Ze51e%LUQNvy!g%BH&+?x+tJk2-#DLqemz-X)bCu%V~ndba7ukUjy; zXVsZSsn-;aI+}Fa9y)DLG``X1#+T0QK?28*M0xS5Uf)xpvh*bR6fJMBlAH9{L5Y12 zl$g7$f`#de#6Wio?2YEfNec~wJC!%4 zrG@aah@Vq$IZZ)O$*xEFy#1a>_Q0z#)2^N54Lj31VY+_JwDh!NK2EJ-2QKV%uyqbh zU=A{-dXdMxDGy?DO5SYQBL5Q%HM6{4R3DgR6k(6n(n4*iVlUY>lE89HMNaV4VcM|$ zCEe?GGhN=Uz6oJD%}vb97wk$(pAsFxomBMMDKM96be)}-XkFyC1S4kkRwxB3W@suS zI3r>{ZMDoZl$nY};w4r;H8*0#VJK|nZTe`ny1yie5;DXfPwE{QkXVROu z7SZKVxZLMy(M5sV!Smx5t;a`y+iz++*i2*&#_ygc`H?wS?5&DIo=+}n+*4et+cg6t z^@QVGhkC5(I^%c+xB=!vjv77(#A-STMx-A?;ejD%fJ^pgBFw>b}3;;{^$!x zv>zyfjMfA4dwMbX6kqtVR|R+-d#+R;pTTslw<NKAAaOp1c7uxK?y(SGyv}ms|z#Uy(T~2a# z6&?|OZw!%DHwU`%J-tc_*r+OXMgHJ|+J0~)msC{YqQUE6_O#mz+ipy3n=bI)|0Aq9 zLaA{{2Gr$LaJrqHZfPFp*QTq?=!ej>yt75}u#6b*MkzAdcPjPQgby!t7OH2uQQlD4 z{h~mpigA6n_kZeeerMu-Rns@H4IkmKnQ_-ohM$pOVP>U}5AiOB5-UCo-B#KNk#Sf- zg_G}RBuQTC(KdBA&_DtU?kiU07cyaU*BENp3xd|-wcs$9M3eI3vZDC%w5qw7D`rC0 zQwuH0_?3G1VJ2#DJBl;WrZUjtP`ro4iUs33&eqoG?n#?X9cy^_uAY*ArNHUktJCyw zf>)F~5{tpPl7~CqD9c$jHbHDRp!J6(-ga-`EucXXdW z?+h^~DXZ4LSEh%Fuh5Ux%$K{jEx zcr6t^^Fp2G)7Uj(6~acdC2`uun}Y~b(QnOSv}+iP73cMiakDd)kEvFUo2rarKD3YF zWsJa}lm%t0!iUUs*qN4ejl5P}0y|S@Eo1`c;0hX}UoEq}u)@&Bkf^W8Gev2Xxe=** za2SE$jB83z8JIB)_Ps`LUCC!l1F(naeQ6!9x1V&zSXsroU%(sQ_3J3+b~=-l%w zPBmzUY~>B!h7+whp3-|4e%r4?K7K9v#kvjE)hk;o*PHTdr`&4k-Ej*q@OO0Cw$mtU zcc65fE@Hv9f3m@~1XK)~&*{ESoANLifZ8LJmMwQPpF2}}2;80U%8{NRj~+@%P3h?K z#>Sn;ZaYR76>0`F`3>XX%q*Sh(`u1i4%^$_ts~yNk+m>ocf=6!1J-;0AaNH$BB2;c zhB9K$DnJWyfif;SC3eTAC%O9d;Gg4oO|@?q&=jCgLEYr*6TBoJ~#RxqBMO5s0Mt%;WcL z2k}i09@x|botv#~O))mMDi1OD1~9PUfs5xsWg7QU9J+bVghuW~<(Po6uq!bm%-yT8 zmGBr{4X=>v=7Vg8tA*8j7!MRrfx52DJQGYK`2gT8M-DxOgaeVue<&7BRlNwMuHAU5 zqkz;qQ0`7aGD(E2i*zsI$*o4uNJZdr7Qk|-7A0!*%}jE0QnY#1Wv!5=Xx9pAHW_t` zcc&uTZkZ1)X^07|_&POsfb$F3&-9j)TO(fH+t{0J zKbO4f%lDfmHbR+XMQviJ-{4B!Juo1Rv4yV z&y_z~2T15F=cq+QVMAP_%Hb>F#tp0LspWqwFGST2V*sQ>OAqTE2B>x}3>nZc~tsU7H%GPTUo#zw?(@OgHjAOo|d zk+ZucYC{&>$`A`1d&wUPk~CbrqTY36pT#vFei=}UaJ9^PArcT}1h!H*ZJ$a?Q-_A+ z5fFA*Bg8UHH`QpdZtTnomt#5=5U|qufd38fCMc;72S>fw-F-WGk5*6h_A5D%Lvm<8 z3i&WxG5EzXQjdwmE$#;;W8kz$wbL%i5(0;Sltp%(veHkeS_Q~5{h&g@V2As=tkXUn zIGMy;>{5((q3pxQ2M%mCfRDE9GztyMXVr*ecAnND^-nFUfp$ivhn8Lr9NyF|2I#hH zHvb#SGYOkT0?{+p&d$6}V!X1>6clPR@ykSR6Xkx}a)T0ue%0Iq{FJQ_w8w}$QFeYV z@@@6$#Xgeet@ccv>L$u>YLy?dg2sP6JD}{zEfhJ?w)iLZ^vQZll~HOHUV;9gSD|#> zk*-g@09Yc+n&P{3|WJq z+o{YaWzMG(B#Vl)%V|asd>lORN)$;>%PU$A;E!}`23=^i+1}*G-s=X6ub*6APIfr9 zu?ett*OH&rnR6MO3(<1DjD4AQw0Cg$e0JqZ*hc4(rUymv2UaBY<>$_^u7>5fHp@H% zB`@xbclOgO5A9OF!{l!70Q1MYE`QL7Up?iwpPjPZ=K1H#!=x@1@J&nJgWl8b8kPZCm|Gl_!Pt}|L=Hw- z7Nf7c>dei}Z93PFQ-{1s?bHv58vgDewKH|eaLL8DK7z{=0P)t7a}zp5x6k(RtdAX z)P@7R9D?B!Rf3>miDJq8{?i_KP5;a+vW{=}#m?&y%P++#&56s_enBa|Qh7IwS-*J6Z3<(D3X>} zAOnC~XDUA9;jns(d@X>3&N5y3A1w2axdWaKj6oxKCH*X=PLBM6rL!{F)(D{Zz-pkY zgt{y7n*a5mp4lB^GsU4tNplEr%U;mEXYlZsPKR$AGyZ99a&6?XCSvHn6y%pP^Z7r%{1`anw zr~@d-sq4>Q1Ntq295i@tOdA_j5u`LT*=-K&XuOt9Jxx2L?%VLNdY)tvrRq?U6}*De zkB9<)SY;F*Y*E-<|3Ey-V&9oY0ANgxS`VJIW|A#pdwBErHDLol&Ro8f|1YIq;`$nA z6tzK?4}0?N{!H<;#4b`pX%q zz*W_f?qANrJMzEYq%b-_sfXXU@}*X*AC&|BH12bj7r%K~ST*o#9#dw8d{pokw-R;( zs`EXgdC6bwi|^(Efadh1+3;l^e6srZ^{xYZ`iff3`5NZGoN*Fx7e)Fd8+h&X%Y%4! z(WKZeC4;|v^^4280RGDk>?HQ(EW9I^QUKthW!(KQGXfPZfr5QhT7iOn(zO5g3I=so zw&r&f1W6lI{vlOt_FhcrRB2MV6NQn>u8|LWoz22cgvUh0Zj53VfY*DJR zs#t@^(52=QpPs@QnIwzt-1TzlkG$)4ZF9hsS_V^VJAG zzfvKUw9=KULoL;%e<&4m49u*1Vb8+1kxI{A*qzRxC1|&1DEh_ft7;i6f7m*BrOp2N z$_v*Ld>c#}s$@1@B|=T*y#I9tfwyH-;cGnd9tTKfI(g#dB)Hz4JI?Z25f618LMZlI92 z;CId4r59Nl`rb9erOj?s_pnJJWej&=QgP>gzMzo|+(J{*md_P;uUB|(pxSrEA#4Xl zOx*A?`QpM*cRyoDja$aKx|AM2;pxe{QL`hjsr!EJGsAn z>rQKhbOBlDmM`#vt1rJ`au=w>ti8DD^C|dO=?i3Eer{8z`A0w7Z4AH{ z1AtUrJyBmSg?D6=5LD9bcRtyeXiHQs{O(GBWf*>pcGJ|dp>Sl1A|rmRK?&ioO>9aF z9BVw`GtGMH0M#e7610zmmp2a;@ zLk^OxF$!I->R5bok5XZohfCQiTU&nfHkRb`(g%%qUctZ%b*3^Gmk5lQL+CAiPc}`J zGQ-~H;u_bBI?Y8&+4Yh~h_u)VFj;;h(pHLn5zG<(4KK(5PLm}!#cR=Fg+get zDLHoZu5Iuq=-et==J|0}8QZE+37J7&p4+9iOU4=tB_}QSL!5}Yv9-UTL;}F_18OAS zk-{XD@5yOxuS*8i{=^SxH{Hte=_g{vPfEvURWLWubxC9y z@b*|PpXV_F17J50<=p_|)ui@wVZ+BfCEhcrQYFmswLU!^lEaN>(<9{$!y~64U={C@ z;cU~fhODLuBBya{w7!i0k#YS@-@D8)rgp={ID{K$>RpaG_AP1=;=^M0x$bkqwvo{b z_E_3d$Fz-=ZWS90*-EUAlTI1mYrI3r69q~zVMM@}5^bzD*`y$wTnFhHi>F!&enA&_ zRp$radX1C8KRjQl&l2-~xRhWL*uHjS!vm%ChY8m9QYEgIh4A@~Ja>H?Y;f=hnp~r+ zrLEOCdZU?(?IH8-%EU1b*euoG;fWYeSTM=VsUwIJ_eUDbX=&s3nfBnBG?2m=C#0k2 zTtbbuna-`tHE!5n)r0+4`fmLB7Q1;Xl}ty?g-(E@C{Zg%55*3GZLV=lPKHvC*MPT$E+rxqjF*6mT zZF)ap11#YDd1D#~c%uC+{Js~D9}i1cz0LJbj}~_@L|%M=+>Je36ExetI9@(SVFVXA zJMUiuVolt$ZBctgW*|(x?0?!6ZQT$N9v$0zL2;LhLWx~!Kt0f|Wi9HwG;pybXV!m+ z?n0E0F?kFrViQ%;-u6|W@8CbR34tn2>q+Wt{pBCfwS9j{n4z-u9Ow5}tCG;QTjaqt2A9C-V z#mm6iKVP%dbw%Im&h3N*$n|)}0!|z^-<17?fPReV-{HXG3PKu0HqU4$fuP4L5VIgshj)nOvC9e*H8)z5`zmk0GgEbC z^CH6WCqib^j20Tvp2w!z?+Kf6$yXEV$`2ue*%~=QSSIH&%nqI)pz1bPkcbz`& zgU5|Nc(AowCVtc^WMPt^olAy-r@2*an!Q#0K4naDyt}W@CRp+}e#8^_qORTCurfRG z1xPBa(fne;4+D($dndyyI8V*pq?3C3Z02O8Kjl;(aZp$(K$hK*0hud@jOuLD#C0{;d5|bEWqR{z;0mTNK-u9NZydJKI%gBmKqsr224UIj?#{p6g9A?Kb;! zwTHZd<+ONVau`*qc%_m{^tNm(mA^>LnQP=Q$tzcL+o4{0D_!|S7mYyP)rGk{0lJ2- zGVWK)^BhfeT%EqS{9CBj+!5ky{dD8!Z^2rlX|!qon7gr?qC@cddRiSvc&-=OHvR&T z;@h7$^B#P=dKi$YDrhJLO?%^C=ouFjL+6g~)3euE{v+P0uH{J@!m=G>a$Rq@)!PgH zn>n8!+XDzPU#I@+l1;u07#BpO!TeqreDU zPhab+!hcC~I)PHK?q@xTyb}D&+Dd_^pv#WB^B&t5ink`rAFzq)wDWwY@`Zu@EU|6+ z=JlR`QT7SIR{ix8c=z+gowogNcPNaW2t3Spwme|quYEi^4IK9UtCHVd`yT*X`gZ0r zUvU1yP3(yR(o4~@1K(czj{sSkOUUO9kzd^Dj)^oNQR$ofIn9@AU;PDSlqG-D`{%QV z9RVbIq$Qcxe!sYr$)43#L9e{uzFZ3L$WFMjAN&8`B);uRy$5eXFQqn{Bd z)<=`<1X!&9E01NBn7j8=FTfW_>wjFZzC_z~K=+6Y+OW?i!4rc$C-b>)I_#Q42 z;4J~(`c_6Gz+3<4cuU~11RhI3JpinPfO`1IL1Rm9#YW)rUdOHZK0wm`|7N`Ggq zUjh%2ZHw!FA(G$xOYdF8o#K?EeDAjVvcy@Zwr83f`1sqi{V4nk@t6L8=?;ahz0O3H z{Y#VLcYCG}w3vNuNB`3=wC97U2pXIAFQuOCYp-ix=j#pTJB`0Ey@N>~XXePibaRS` zpf{EMOEc%P&?~C9%fEC@o-*mXn3VPj9DaR|Lo(X};rgb3qlT{uUZ6?>RT8L@z$^V{ cd!-G<%-k5mpq$G<{9SYIwAm@d3CFwt1o@e^woO#`I&wXE?>vJvd>wR7K?a?_S z{Y@KoZ&rd(}1BFMKmps;Q%7dmw6TX z>XmZdjYjhqd)D%AmC(JjYBkT#KWsI%P0fjte*CW|{Po*9p1W4TzqkzWRZt(#U2NZ` z3u6CvtG|A}7J1{}rCC1ZBkx+|N0AiGf06h{ueUe72x*{RypPS^M(KCGF!J! z#Qs`f{nf|pRCAyT>{Q6G(@)BK}a1uk?ezhOEx;akketoB{mby72rN`%j;)GM@C*H4@5e{@uAkoEyY_W&ul@*{S|=U({m4&0+_gIL zOM$rt#5JH_dLq|=ejOLM5r`Xsej0h#a#I*Lh5ZT(a4`@U1N{pK?+^ivj9Icv;S0#+{Ws^;FrJq(cI4b-rZ$g`)f4*B8qdu!eDtHQVz3rb;NCY2BoPzi^)1VF7y8r0O-dfnwGsKMR47o}Y}| zWkUY;kxq&!&#Oh;f_^;2i7#)S0A_(@u9XO~9Tv9=3K0*G74^c9>(}<>f0IggDa74+ zWl67e|7xD(Gn>9#^)Hqph+gRIN^Qj>aJ@gsO}Ww;9AE>=v-)MXkHZrv7QA0(%Oe}DcFJRaG$ z(OW0)OM2^pU_O-vEAih}1P4|ew6uJFt8;7EuDmu@I>+|oUCM|JD^`r&%Swqc04Eu} zQdeqxbwnzwbh^&5orpE@29r!JoS#0JJiO0qq`8!alD8~6%wUK|#=z+aO3TRC(Qp;q zsXT*D%lw!%X^<1(=#3U_+I@z1P znn6!ha7MZ;bP(~UGGCO&dX!r9(8^m9B6a4k`;k*)S}CKgtr##~4sFN^WYm3|6AsyA z7+`8s_O)Krx4~^_m*uo7xyY`i`FFjRiSE4C>KLm8G5@)zl;JqnXorzP5x8*~#EfYe z4(ik6u%ZlUiLR_K*PgON1oB!YxoZ0;C9mo9m1eVm>)$}s=K<08Z=q0&)1Hf8^_6^8 z#vZ087@@Rh-ecmc!m@Q3@!$*8nQTIWu?oi1qmFo6iz=+2)()Y;<&%hbalgT@mKnWi zhH;*sa%=Aic#Y2wd^lXX@KSAtCAOW>(d(Kn&Y}=Tqs(lwRP7hQ+zmOA63z{Cqv<2?=zf0UPeOg%2PFj4tA>o_t_r zMylZbWbAd&i!-p%>CEiYc>D}<2=-pMAi^kKeK^{oDK`ECRO0sBQ`9NeVy8zjT8_h4 zb?bReZ_V$w3}RQx+USA`#un`tfqsMMmGrRY5aU;WD2Y;MBwJf0VQ**Md?%mQipj)# z{281C%2K#-Y$}q9)hVMcj2CEwsOCG)Fx}^*i)Wzz%|VX6XqV>}Hcxk$Ua^m|EbbO< zCdCjNw8n}CJd%jdq|mRGWJDpK9yu}>=Z6w$BLl`6{9c&~i(_4Gqbbj4A`BA1fI*~g zHx{!#(w0?j?XBYG%{M#h05f5H^LvS0oLSB8OXl)@5!h&v5{{@7 z{kEd5Wgt3)wUFYV9A!()TMRWj<9qrs~fnOl5u> z?Z+peE<$O&uEqxXdpyp{=PVAZlqYUGZDsbFI-!`I%}{)Q`~pLO&Xc(^JQSB*ZKKo zt*JX{<>kly%UjMAh+p;ZzGN1K51~KT+bmxuPMdK&IZAF2wp^sUKePz2benA-((p!t zNzs9UUB-1Jd?PO1pE!?_<122j4cMajQouVeXZCR(I!jxLVVkYhS`J}lTw}!9(9L^T zPxNGN^e+m?%QiL^zBNfV5+W2@NwcQ1Q49u29AlWk+rU!1dCqrp9`trIyo}YU2VcK~ zy(Z5QCv7he{3bJTVaF3zr=otk!e(sJqKc;+Ry3ZW?bjgVh?ye` zLCtoI-Kd?~ZoDXwW0fvAyhUg9UOpX6JJXtGn5oK|Kc9Rk5FJ=NLqxXrgX!|j99Nk3 zXb8Sn226}~fcByrB~FM1p6=v=yn&)*=u_`K%I_EKP;3cT z_l~X%Kfkxd>aY7bR3*#%LBk^s^1is{j%AKUF-3J~%Vy1ygf;;FnjJuUhQtuT=mr<4RB^8 zkWFR5!XR(jMDrx-38-j3I{eZOFk>|OeJue8#H)mNOEH~vDkXo~}7iP!J%3i=xn3!cC*wsmNi_XI3lBs6~GV(F)e#39mU*HJ6$pwY$1L74niI~s82ZKah zF6R*^$ZZ7?;mQp#SlJO@z-hqK8Rr!S%gcv%I}LX1P`DmRYx+c(Ab$yqJg-pR)i>WR zem#;0%n_C=K5XAQA+KS<;jy}z8%nMG7KvIkEbOHAjPq^{kaMh}-Hli?KL?jl`!w;1 zJODpn62e+o(DJ#;3DIl)UmHG-1SPZh%1?qFrOd2tMor`A9q8QdtrF)-!oj#wvC1?Wwv>%ogwS%h0ktl`LPly&2*c@TuE-7DMR(pl&- zuVIpQ_B6?KR@nkAR!}-P5bXrYsk%m09i9mITm}KaSKB2d*mxYC=bcQLd&2HSYt0Wx zbh*5Oxw4ytsh)8LbNb2pw^e?!)SkWuD zX+xsmv&aDZ&JwZs(z$@#b`dQqf_2*X@y@5p^ah7_It%BRxJT zNqQj%0&XjG!wbKy6G;i)(xu>%!(5PtsEnPFVc=1{WrNc)7pScmJNjgy zfrU%%i4xLBzE;UpTA#Mk^sBau2VY{VAzj<_)9U3*4$oc*m>mX1eTcPzOcvx1(rs(Q z#bI!nvR*LSmGpIDTs7A*=)v8N02=fBJh^9f53s35&(jeMnq*>}=GXNcWNuCy;9;q0 zGbh+ROcoNPgZBcD3YA2WK2Ns2HBl!}S})LuSa;qA#~N%@yUkcvu3e9PdVHNuH^kh= zZ*+))$vE%WCZLewz?#pdETo)nw>eEJJ(9dfRordvYBBnjoIgDdna-fiqdf;25idyE z*3(53b(t-~;GNI>W^XNO!3*F{S%tctaI0H^hZCW!$cE%>C!Wjf^+v@8S)k03xjpm3 zXhp#lAvS%*1mL;er!Z!ll+%Nf?nm1X7&XM(ppPS4;$uX%U=B_)3$QI@eeo#JLZ#B^ zbeO^!nAqZ5j6KubPaotFA&2PF6m{=g{WgG3b);oOgmZje_s5WxB3j)coLg$is~PHB?B2`qwDRow z>&I@+er>iYCNPM1k3yM?W33*fh5)aLuI19eZTo>2q^bBn>~Af6w1%WjFfuoZiW*#X zM~i7Kp>`eB{g8VzKweU&l$nqB1~5GwpMMNCAkAcL+=bR8pjxA1nA-N>O&aF%Pt?pp zh9ndG)a^+w*3hz9caiIncpR%wuk{@knJ$)U?ZB`G#}~9F@rl0F=;U-ES?E%M3iZ%n zFTWDId7L(mz%*#7G5YC9Vlgdvc9c~5+(?V@m_k5dE?GMP8MGRFz{p?D9y}zk{h^N- z30?50J6NUQbZ>y0x1*-r53511ZfcI*7p{j~6h}e>5M!w~SWNP4rvY*z->!s#2Ald5T4dm7E4_C<(=P0} z)mR?A-AUj&sY`33S+7OGSgoM{9(ntLG?G6n#IY6a{OkjmTs}W+G5TnmWXoM%fkRCe zPK`>f2vjj-GR$H>2O=E;p4GM@4l1)dsqPGK`BBdh&qi^0JytHxDoNcLs3MIQs?pHs zB^WLA5#&w$?2sVGn)uLaG-OMw2%w!tYv~*+o9Yh}s=gjM&=?r2PVHidi~-iySbrKjs_Kes^Sc=GUx=Rk`cx+RO^Je-T?Z;ZBt$)8%YKoDPpdri^^ zVV7ZTbod<&@0jq+Ob%~oU)y2rl;t^3QaFTvME`6DH5@n-c_QHm7&Hd3B0V=NH?=gk zB!`7;+V!lb(8U6GM8FHJHSpN;W3_NPRGa1>YoU&SNVka`y`8*NO)(PT6X(nHMag;Y zMGMW6ktt8n+Hp0;FVFeaj^$H8qvXbJq@M2xA(}Z^L!(**Jn%2)H&7ULW~U?BaqAABRI#ZNGWMspI_#a@~b(9A9wYuVuB# z?wC4wBahucfBXUW^$XnBFR+K^e_9du>3I$yy#llT6PUO|uiT+mjvTdOF8}Y2ndu_? zX8-Zt7V~4aV{LCohZOBvQcgc_olx^=c|*e+$E$;lfRa6`!v1M&#~PMa3*%5=bm|>j@RhL=W%gvXLGY!b-N};42%S^_@T!E1s=&XVS)h%_ zlpl4z*)u7FOiR%6JL(7W(2)f$+0otXd!o~Z!rWARS&BXX1zlU)(-5oVbY9V-H;VJF zQ5B+K+^ay3k0+!B_{P;ryhopH#<=1sQC8k?f>W_a7*5CRT)e>YWxd?h;yHgE49Kh| z(aQmu>J4nazBvI<^XStEY@mKv;o=w^nF151K5ql)^%A%Vh3O?^F)+BShTZ$3S1bnz z!V(X4dy^xz7w$o%8=Xx6iI;`KmAo~GX>ugK zE?#1!i)UDW!24IR*T_O9qNw0qQXBboOWKE9B)2kVz%t4eO+6qQ#OKF zGMfJlbtZsLar8txwx*>@Mrz43#)}CuP4(sANuik32@t*};tkF9ec`absV4(i>K;h~ zM?TZd<&hCWmSNYkA5BzR3qlPT7oS4_1omjB6zjv6b1JZm@nZYhnnC-J|bja6P;WB8MbrYx64k-X-1#{S&qpZl>a6QsE zaB{X&2L1{ggajD$jxu!4?|K)qt;-ITt6c4`TH+u!S!a$gL}cH;5*M_Bex<8C|Ki9| z9G}a%V~glp*OkD&DRM$SgSoZtFsacRK)`j^ z2{;Y&E$?dMb$8CPPf%8(ORi{jA^SRX4R{lFtNj6f1dyVdhz`tsIc4loFwmWXHD$?J zAM|5Yd+l+bGj8qZb+I9PG#hVr${`+{)h9dsR>#TFoXY@YJ{K6r&c7wv^9byaJ*7}a zaVPGDb@>cn%sqtHZK{LPs$0Znh8ydx-i$Cjc-xE5Em?+*R7@+U5$FO9=%Bem_67qW zueGR#yqrI&EVTYQK>Xm!dN0_NIK{{VtwL=fJe0+twPxDY4#Tfdn8kO;EDx420aJfo zKgy}$L_k_ye+v$2Q+WoY&VIJK7S3dNIL*pa#yeGLQEme>5TP%Ay7$0<3 zXAgq>f(HSuZpC-7U;pOYia`||aH-jL2%%%lDx=&^h0YxO^4udv+K**<%u9ZG<2%0$ zd9qvO)`RB~t%4xEvF!W4*8JcU(1aX@H|IH^G3I3gTBcS?v?ysM>LEYY{xD0siaV4h zjU$J~#G13o$e6GtAw3KW*<;9Ro~r->bk!pHF#Fw(${qF?evdhAr4DY&YDYE~ICWyo zZZy5VVwcs$h>;z6Sh=OXy|ax6m3GgcjmiRKJHJ*lRPBsZ8+%76D0S;gH4X9i-b9R} zH2mUxl#!^$FkI2eG%))O4J~wqaD3T~;w_EX&2Lo@4*ImW=UqAkVj7&kqN#^eXUlU?K#<^gfg94_MAR5sh9t7$isj`UZp5=IAlFgwXf@9R){kpb*<-z>g5PKn;W`>63-4aeY9lF$q^(uw+9Q z|9dtx0uVaH-<}^ZUb5~ffbA{LrcB1+fza!5qT|08ayqU+vM~D(oPGInNmGmW))!~L zM>eVdFNt*-aM-q7yV}tDvrt0(QYK9;r&M)X(`~54wGEN)nuM7Or_=MK;@5uq?bPLc z>+fk*+`NA2;?}EuqUXQlvSYdg<3tRB2^Z=YqYJtk_K;5k#F z)yGb)T7PftvnTiW#i!(XE@YW>DV_#Pl`)XU;D9k-^XCg@@iUodHAlnp0Hf-jcwDQ- zt-;SP3t3E;o(U4OSFo*mJHrYJrQuJ=vya9AojM)Bj_BKLI@wKr?!4Zk zGkv7M&S6Uj<3;MnkRD6F!EO3~jyVyMQFMH90-RZn8YhvM$gv?m_Bgb4L?@^aDnmk< zQ#cbhcB^V&Q?3iK1ej&$eLX($NP|?4Y)qBf1GS9v$dXz>vNj8h5Ayvb>*)hA94}+k z)d4(_?z_s9yyjwO7dL~{$h|gHS41nfDJY(}l%CKsY&rgj zNkmnCQlCEt?Zo35;Ada#*%vI)j0S>3px7!bd&o#k=P{vSRU)*fKa0k8H@6Am=QuV&Sat)8zl#$bX79UCVz9x-St*J(Op=RSr`SWuw!llKH#qq`zFiWGewH;4e zzPMSLCA$Jv^8^5}WfJ0{#Q`Tfd5yHmQHu1OO7ELs0}l_&1u{#>SkA`}!C)|RYx`Zb z$zT__L8ezE>_~d!{PIoSCKyA9^T>tZa;K1N6pJFH5z|8?(UD9*c~*i_9GP4~Cg^I6 zm3Q~hl}jl*IrsiU#gpIlu5~=#MNW=$jR1P4AS5c+2Tg25V1CmJ*&NQG;T2AX?Dl|hd)ndq3hDQ~(R zfR@OE;>>e_lVcf~nPK%ze5AKpo1qI8%tHFXoBTWQvotU(UeSFMyV3AdBJY4FsF6r( z_U$-#Bna`ERWmn{&H|r(^}!*Au4=nLnbWaZJpP*8)9E>n>kt8)3na{}75QsF(*ucY z`3#se>*4PTEmnq`vor0wC;{i2w?f4iM{3Coapu7U^PI#=zm~%K5K+IIuOU>Cey?mb zt(H(MPIaM#h3g9Sr4xwb3t(j+CV=6!Bz6&X6QKYuV2o#j*)>CXR3V^Hx^)KT^GAZs zhkYH{7BSXuMC@uGKLVyPY8rNhR8>8A5Zmz;&!ADhEi7B&50WPUVF3cl;AOuqhg~e2 zLfgd(4R5EqOt)X3Mgd;m+UudmIsL?8OH0{1F%5_pvD3FWt&BadFM~BL;N7%T%sBy$ zSi=e9fUh#%0?0M3bT`L-aP0ZgYIMXX0UQ-p*2gGB zMn^}VvN+P&*=Z(R`FsURem-k^^TzB!wkB(kw%|)0Xkd3Qrr6_tNx%qP22jM{p~Kgz z9-gvLOqaZ0%0BKfy>08n@R1#dR#?Pl0*_NCT#kOW7o@%{qwa4vu@R`^;$8e~iDTD# ze(xi@H>R#6i4muu4ro4t*TbfMe5s)@zhR?@@_Si%m)Z%ojg=4wvV*o=(r;|Lv!aRb zSId_H=Cfj|PyhO?K}m_OMhDr8$5%Y&hja?S4{sp5O@2^4{p+**0pf4|@%=MDk>t|_J7YRTJ?<=p_$;KZQqpJ;^ZE1bAuAG#r_< z_WH6vrb?SW(Mog({x*mO<3+((FEf8ivbgBR$bntoMgQwV&}s>ZF40xNDSxhPZSjUZ z&_%Lak7Ig)v@6hiaB1@Le3P52X!`#0w$^lG(#SKh_-rq_)}f}xe~KDpv;lyY&(F!T zJu{S;RRMGwuA#MP&NE8RT{(rq;M+FqUOFcQpu#B>!zz)p}V?!3R= zw1rC*rVWg`Y>$-%1Y7jgh`2tMHc5M7A*TZj^AA;u`3^pHqjo#!TUlA9fZGEJ8hB|m zqCA@ljL1CxUGKpQ0gXmK4zJx#HoR0!UX;bs2cH|)0D)~l7&UhShCiU_6MJy)Wj@(~u z4_OLr4e=U?((8rfJqx4Vlm+wrpS#PYF4_}NPRR#*-M?B{#(-UAmHMSVCRb~)vN?$ zDZ*;CbW&@B_{4UKFZS^v;umJKp`zIk?0A2BcA%H6MWJjtIo!4C^Ha%zh9l_5+l^F{ zN{P`Hpza+Lg%3)=7&rZ0xbjg$*U$$K9-Oi`1RavGc@!pJa*zsG=5)E>jkI$|c|SXr)mu|P{BhWD z^=(KJsDxHB4iD=@F=rH$K9XBfwQX1x^ET_{AIkEIK|?1vqcW1r1CoTY5AqxiRMn`n%&U zk`U#yS<_d{gNHh(43&QvOSkuY0!^*sI(l4>hQ!=;kQx8};P#O3^gtF1c5nv_|JhC)+H*}`U)7U&5(=LgPG37ysA>XAZ z7n+Dj@4+!o5n4Lhvh>Z9kT)7*Pgxis#H2S8$BMiz2G9H>HtFJlL3Mh~6$Q5Ap2rer z899!SZ-Vcs)TcNTNIUTKL8eEmcm4JQXAk1t;tFkz^v76$Uq_@T_#G1S8%dfYf>9zm zi{G{kWV05s?H1?ALrT&Yjbv_;06RQI>T+>C;p#Asv(k!pNiQ33IWv+!t?D8)$(C}L z6}JwqOQ%O|!Vu1@eYcv`JZsKLWK{v?(0e3ZDAf_!hg014SZ1^^)|&E;vU>E|pG z6%LqrAiSYOQddWic{;CQLzWNHaz%;w%|e+P=`>GmsW{TN7} z6yBnkF)W~zjbF3kaU7HybrBZq|GFrEQ_7#F82_uu`>@BB9{xdV5qGj)@-r}DJ%_4NfRoJ*XnW7DN~^3w;F|M z5Q`*1$jQP}olAiif5R2VD{~nS*>J0=dG8|l%iRqb7 zivxu&`Ryc}>EbcqE#+;7h7++^2gkV4NdG~}R98Q#+Z$jex&bx2943gSuocw!*E)Bt z-{|P7o0;C$@5d-=4dg0v?tnJwAx6J*7k6Jd3~wQea?Wy|QF^?+RH z`#AUz+p&M@5csM&2>?xcyT#dX)K6fG#1;S=iVY-k(px`V&J*aMO+KmNV{@yYT=%n{ zZcbdSD(3{`k3SIwSO|?2GRJdUKdxmO_*+54iksj4APdKhbwdEt-t6fAlcjx+T>u)@ z1aRj6ah0t@RpeZ)tP8P31v2`emyMUBYy59FK_K~Tkw31VN{55lM-u}8pgk$#P`0w( z&leJtl9Jv#0WGd89q9*`u+Ru3C@n4RLu-;ABkw$Ze0=30N8MT;rnq0Nvi3@qad?Dx zv)bU3>0P99I;>yZq!ej+#tzEbXP-y8G^%c1H zBu00Gx0KQAol>uFA1|HyB=FSK(FI$gl)d+o-jdptgiqn=D$ZS74PxZwSl~oBTz+hP z+zFSxnQfm(O8+Vwn{0?@*zUG2PS^Zx94=R;S=3o_+;_>6wSp+jS+{{2-&zoD4s+uB z#wOkXHb3_3t(V^eMMcH7n~si;!bMb~ZFq1&M?i-F`cv0+Lkf5-Vz*M=87%J4_8s42 zagenjz~}8vOJkGjC+2oeU^S^L>;60C|AK=H1EjI8YGZ#G`$ywnd+T?A(Boe0uT5y? z>Wt0wxu&ra>m&fv@G9$yX7|mVi9C&sjX%C&7D1|dxDi)?wV zs;RwL_r>ko*X`G?W1om=xf>`(WV#mpZffau$=Nz5QQzg#?C>|BQhN^I)0elu-B+xl z4ZSm3gI<|~u#E%Qt^+Ht7zo-RpvjyYaKi`Csx!_f_b<+%6)LUxf-Kkmz;l6%^Q)Z- ztGaEhc1C7*wGBZs{VU&VjSWCZFL#*Kf=Psr2wCer0%&awWg)!X9xdSvn37Cd010y5 zY%wvI4R;2OZP=JaOoq6#>2DYfv)K!PEwc+!$63w=nB)zXW?H4&iT7IujR$ zbR!rbH0d3P4PMBsPHK(e%y4x-xIAx?uZhh>&PfB{CG|mX4Qer(oz&J~k^@ zH-aat_pXYH3b?p*JZv(C1cgI_ZpUbd+*85KOgxzD3C=_=Ue5%cHc-Yvp)n+nN;t1F z#>4nMv!~NL;HfcNxZk<-c-t|pQn84YR0HQVul&Q}FsbKDIz#F(z1O&{y-0@IHYkDu*kyAeRO*7MASP2LmL z+CCETElmeR#^ohou?eessTW_bWZ-k6z|y^HdY-Q=9r)=59w%i`R@+QR|5c=2kym4^ z`HMG=$M0l0uE3+j9$+Q6B2nopwZO`k-!rT2Dxi+ytB{ah!4uyXzVadH7SO57)M6%Z zOu?=A#$RdmXYA8I&jGT*JGpaaleIJo`&Ste6(8(noThVthfd#}M($?sWiE-q+-F-2 z@BWGW-xmU4zXpI|dbQ<$;txvlalimuzMxB)ruqx+YzDV{r+I##+8@|d3bMk)Sne@| z#BjM%TW=HSyvMUSKQR0BYWC#-*h2T75b_2)@(tK~d$!%IR=9lXz7=(LK%Awjz3?^i zB+$n8#Xj3_&<{kD@S*w`(zLcXHA2@ZL&M+4>gdt42iM>{o4)2&Xb(K7Z6_Fo)v{2P zc9lANM8b3euP@GNDTK9d+0{ul)E>>PnCmQ)9~Q(*nWG}GMT$4jal#NA?<*U3DZZ(l zbYj!gY96%>mviF=GBO^0-{T4iq06N{ZVfOU9boRPdw6|ZY-~SJ8FhbKEb$uOi_HU` zskKYz z73zSPU!Wdlp{i$YFbiGl0=vbH|>BR|D_0 zAVsFa=FiHOP1kh|U`g^+sc|Hfs5&xk6SyCeWh$84dMRLX;6f`bA`-ed;D+_;oXnY~ z(on1bOVd&Z5Bk9TwXn7h?+bCTg|_s%$ZT0tTI!6k_WWRBy|C=%bMRq9mvppAUn#?_ z*98$pFcF8*F@%08;JqB1VOy&3k3}^~HhKfw6CWw~_re0_FWMb_ynBa@HtUZ25C~E$ z5F;+cclKQ*bUtkK>+~x%@|Vs@3u|vsZV%0Y1lv~6q-I=Zd`TWC+|uw+&4hJb6O#Qj zw|~2SEoRiNKVeH_s1g)a|0DO~lC_zNc$<#TJSbP%)Qet*JHwt|PkjQ)TZW!(X zlCI)Vf0*Qhjome^w~57ylPN7$%@W__MXR%2eIdMEoZN&EI?n)pa{^jm{y z*+*qz;Hw~@DkByRM9j_Tux5;|F0setcl}neu26dK^2AC!$zQ6RT992GqD@IM!s^)9 zy(lW;_ts|3qiatHTM0rYa`hkYQTtFz>vn*JJHd+&EVas1rz+Oe??%mLxkg$1i3a$S zjnSminI=`>Ki6OZ)JIV=W;^DaVLWe)g!`CZdeWF9EkrC6UYUsGY2F)Q*@KYyW9$awV-) zcJm^Bi+*c#4E)tmzsr`a=rsc#VA)6MW}r~|4tQ8ZkI2ysEB`0ofN7JCeo>@em`VR=K&}86fCkL#+)fwG+b_+46J#ul%)dH+VwBp!j$$>;y zf5`;7a;f)ng^$ELnzzojhHVWTsQD0H#w4&FO9OnTFDva@dJx&+^)>}Mj@F+WgVI#i zoU_%uP^z$)(~pV?Acy5HE{rGJS3Z!}4ys=XJU~I~3nXtsmL*$rOjm(FC8}6|kK3Oq zQQ1q}ndaqtdmZEOm76tW6a2>BVyTB6TT*-)oviaFO919qt=zhF;KSRujuyJe%##RmMKNZ-c7KJ)GBno)?f9=txh_IZRTp4EPSjeg4zs3-57So^_vn5{po?s`L`6YfJ%!`;W5-fM>i*zU@N}#JcF` zUZaloGfHGa?-b0QI!1cu3e_;hd7Aj%GRfTw9d*zVd5&M`_@hho%HkD}bfE6_OWTMb zX;XZf9af80>Ios2U4va4V!qjnF-&q*Z_(NwdK-L!TqzzFMzU(G-U9y9L$RhB&eJGk zTIva7v3K8e!vWSu>2AC1_kw>lkElS35W+^*w5SZ;)pC@#bd-kG0-h={#r1UCg3TBy zecpz-R!%)l#j`i%kH=}zFnNoU5N3TOvlo(nJ zz(S)+M#odu)Yfz=XdYxv8uC?PG6`ODeU9<8xX6T^4x&9<`F2<+kranhQ3;W7JURTd z!j6wQ$#y|}H4$=V6A=eZo5ZXaiw%FDq}FCsZi)O>J+|<`qp925?-V(BpJ8=$!|3Ii zR#;8VH5qCp%x7;0#^2*T@OGhr>T4%Jf+Pl9p&YSMrZ5uE60mv5V3EaHp3q!%AG>W^ zHP~{4L~|zq{>pcBinD2CNV(=nn8dJ*&HNc>*+NaNg^^^)rPS2R#hvkzS%X?Y&#E8j z1_dAyBovD|ganHNO*WsoZy^IVtXZ3Z#Nf@LVByTQeACel;o;+UAMf7J#Rt;!ebGcf zt#-^s9YG5d6ek4(uEL_JD|h0 zLKaoV{;hG>dM=q&Gpj>!zETN0M{%Bu-xQc{HU@~YC916>u0f(u!6H=VR~DjuWo6>~M&vJ7Wb%YGbRo_C|*GEqle(}UoYXQF7Y+a#a6i8p+4-eV^RRCBoAE1>a z4ov-xU$hY|h^d^X!23hQ6NGi>-SGf1KjyMO^_)t)0W8&NPyF_mhutsBnwR;8oCE)f zjqq5!Yj>cU0L?ubNa-58{K31vkT&KG4|y2hJ3bK*JYPa!5=qy5$d$s7Qc^&#mgw;}y01qi&DKp1#b+x_$Jik_IFo2oQSSBbZav#crA=un{x4y)*?GD#u^ zadM|jF;*;4VNjY{kanM5l9yKA8&_tADK!GYV(`Rj_MF<55jXr5=doqkZ5aqMq+ zfBG>pd_b!95#QtR;?~+K`|KVKZR)##{?Oh8yf^u|Ol<$%WU1>EQ6hW7}H z`whKNo$PaS`@~EhFkqn#EJDFGMP*cV54DAZ{sOy7|?7P14sriF~bvjR5a zAtcqJu4}&6bLD1o`lTiBp8R_jK(u?nnlZL>w$_U0q%f&9!TswA#j%%mby+bYO&SVg zpkG;daPv*z9Wusd)jEt;ooXnP0IdPu({$}R*}9=a zGOHw@-U4^QSy59*+rk+c`>Dq>z@rVdWc}r@6L5XVqB5mB=HdCu?L$Tg~+SP!u=})hvvb|+PhsBCR!Jh zf$R(_?Mw8rB`+-Hjb5W3wN`7$q^0Q>6Y0-}N#ig2(QfL>I&^1E^HKo~p#M4$ZPEX^ zpHGX5><|58!m##9Ki`oWnD32-xi7~3Q`fve8}1A5I7aHxVIKY*R!xhP3eD=S71r3e z$MpR$%*we^yLgWIjHkb2pqrwV43}SmQC*}u8ALoyfUVBvrxY$T&6{y^t-V%`Y!BWB zVb+35$u%ERw)pq0DUM1@*v&6%L2c2{1GiKDF6VqtJLqAhO_+l2lkX;pfrU4}zM1ZL zRDGrnzQ;}h))`fA)f=QcFqEf0m%?bBsflo5t#N>yur;-_%g#^U#wNzP1YK-}%#~_( z=aV=m6O^xx@anbiRp>l(1F5NtfO0u8d8M>E~XVBQNr`$~Inb?K~O!D}H*${DDr8O4!RF~24N;F_llP$Rj z0o9VJ?GvrN-;V`FtOcq~)4+V7dXA8HO8^GlfyuiV#+F?zv+W3|*Qde2tboIwOx%E! z_q^f(R=bVYyqJook!?Q&-&-tTwbBB)Q;`VtFgDj+ojtd*bakob=H_$OMS!U`Vfzm8 z1jshGwOypDdfx10E%<%=I$+mSUdT%%KG}~%h-xL(BO*~#pLQxb82!b8JsZ7;D0Ar) zo?mIet_nIP2k2qfmRp;*th_fX(VQn_kNc_l3NStZ?2IcdHs3;W%oF}kE2#q@K|h1q z=_J=~of}?u8s9)($`3)YipAQ`tiX{B76YFg*zul-BbLXn9dl@Sczukm_X5yVdb>qL zEZ!ORjjkBsMT@==oyDtr+^V)cH6Kk}Z(r3n@;5W12%t_bksL26XUtMv5Q3Rm zW_VAN_jCQib~AT*kz*YWqWl|mrYc?nqX4z{t_e||fS9-S_zX2x$X3AfmNuZ`n8_b2 z+lv!CCF9kq;caqfSmH^XuHP0P8!w;D~;Q(`hIR^26gkRw_OU}zL(_as6{PVrTKlszRrHW)I zeHG{HciHx1`4{fM`1`Q-@v#*e@+bFBoCa1@XS{mVKPCCDo}~|iz#D%W1Mao07}F0j z0c6<_K;1>bcvk%oO4zUc*$U`7)A`@B#dVHbEeDdII)JK_(cxY7%dqkU2@Ltrwq0Py z$LzQIOCeE!8cYK>too;VIHZ&S0~#etrf747o`3%25HM(ywJ5miCwg4bhb|G&C`SKO zz>lJ^9l2<&n`1FAy=vume+PZGBS9EIqs5U=7C2;OJ7HOK8KnS9nKoJVlMAqEwiwW; zhxqTa9C_%UKj9kI^8RxTi)&abk%t?xmcs-$VlAtIn+lin4>uJqtAUHLmaz~QV=b$J zi?NmvGZ(!7Rl{(>`;s2GRpD~+#;ppMi(f9?u&f3y-LPC|bLj>y-LO(;b9t;~)`d$q zaOs8>zL!fk{8w~C>TeV8R;}9RdHT;|7njfF;;rRkl#91k)WF4CT)ef?%;UCqxb2-4 z*!h1q-kM?|9BPlQT6K71BD@vockkk#A^adotU zMOS?0do1PJ5!XeyF2Z$@Wq7%Qw^!=0RYBY=!p*c?H1f|$J9c0Bzt%-IX87?L-CPBG RybAbt`h?M+@Z+|3{|9pyUi$z5 literal 0 HcmV?d00001 diff --git a/Task Timer/index.html b/Task Timer/index.html new file mode 100644 index 0000000..e24a22b --- /dev/null +++ b/Task Timer/index.html @@ -0,0 +1,24 @@ + + + + Task Timer + + + +
+

Task Timer

+
+ 00:00 +
+
+ +
+
+ + + +
+
+ + + diff --git a/Task Timer/script.js b/Task Timer/script.js new file mode 100644 index 0000000..1955f2e --- /dev/null +++ b/Task Timer/script.js @@ -0,0 +1,99 @@ +const display = document.getElementById('display'); +const taskInput = document.getElementById('task'); +const minutesInput = document.getElementById('minutes'); +const startButton = document.getElementById('start'); +const resetButton = document.getElementById('reset'); + +let timer; +let isRunning = false; + +// Function to check if the task name and time inputs are empty +function areInputsEmpty() { + return taskInput.value.trim() === '' || minutesInput.value.trim() === ''; +} + +// Function to update the "Start" button state +function updateStartButtonState() { + startButton.disabled = areInputsEmpty(); +} + +// Initial button state +updateStartButtonState(); + +// Add event listeners for input changes +taskInput.addEventListener('input', function() { + updateStartButtonState(); + const taskName = taskInput.value || 'Task Timer'; + document.title = taskName; + document.querySelector('h1').textContent = taskName; +}); + +minutesInput.addEventListener('input', updateStartButtonState); + +startButton.addEventListener('click', function() { + if (!isRunning) { + if (areInputsEmpty()) { + alert('Task name and time must not be empty.'); + return; + } + + const minutes = parseInt(minutesInput.value); + if (!isNaN(minutes)) { + startTimer(minutes * 60); + } + } else { + stopTimer(); + } +}); + +resetButton.addEventListener('click', function() { + resetTimer(); +}); + +function startTimer(duration) { + isRunning = true; + startButton.textContent = 'Pause'; + taskInput.style.display = 'none'; // Hide the task input + minutesInput.style.display = 'none'; // Hide the time input + + let startTime = Date.now(); + let endTime = startTime + duration * 1000; + + timer = setInterval(function() { + let currentTime = Date.now(); + let remainingTime = (endTime - currentTime) / 1000; + if (remainingTime <= 0) { + stopTimer(); + display.textContent = '00:00'; + } else { + display.textContent = formatTime(remainingTime); + } + }, 1000); +} + +function stopTimer() { + isRunning = false; + startButton.textContent = 'Resume'; + taskInput.style.display = 'block'; // Show the task input + minutesInput.style.display = 'block'; // Show the time input + minutesInput.disabled = false; + clearInterval(timer); +} + +function resetTimer() { + isRunning = false; + startButton.textContent = 'Start'; + taskInput.style.display = 'block'; // Show the task input + minutesInput.style.display = 'block'; // Show the time input + minutesInput.disabled = false; + clearInterval(timer); + taskInput.value = ''; + minutesInput.value = ''; + display.textContent = '00:00'; +} + +function formatTime(seconds) { + const mins = Math.floor(seconds / 60); + const secs = Math.floor(seconds % 60); + return `${mins.toString().padStart(2, '0')}:${secs.toString().padStart(2, '0')}`; +} diff --git a/Task Timer/styles.css b/Task Timer/styles.css new file mode 100644 index 0000000..809f9cd --- /dev/null +++ b/Task Timer/styles.css @@ -0,0 +1,61 @@ +body { + font-family: Arial, sans-serif; + background-color: #f4f4f4; + display: flex; + align-items: center; + justify-content: center; + height: 100vh; + margin: 0; +} + +.container { + text-align: center; +} + +.timer { + font-size: 3rem; + margin: 20px 0; +} + +.controls { + display: flex; + justify-content: center; + align-items: center; +} + +#minutes { + width: 100px; + margin-right: 10px; + padding: 10px 20px; + border-radius: 5px; +} + +#start, #reset { + background-color: #0074cc; + color: #fff; + border: none; + padding: 10px 20px; + border-radius: 5px; + cursor: pointer; +} + +#reset { + background-color: #cc0000; + margin-left: 10px; +} +.task-name { + margin-bottom: 20px; +} +.task-name input { + width: 100%; + padding: 10px; + border-radius: 5px; +} +@media screen and (max-width: 600px) { + .controls { + flex-direction: column; + } + .controls input, .controls button { + margin: 5px 0; + } +} \ No newline at end of file From 22aab88566c7978c4795bbdfb2ba8541d982af83 Mon Sep 17 00:00:00 2001 From: aslezar <97354675+aslezar@users.noreply.github.com> Date: Fri, 27 Oct 2023 16:39:45 +0000 Subject: [PATCH 2/2] changed demo link --- Task Timer/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Task Timer/README.md b/Task Timer/README.md index 5aa02df..0303f97 100644 --- a/Task Timer/README.md +++ b/Task Timer/README.md @@ -2,7 +2,7 @@ Certainly, here's a sample README file for your Task Timer web app, inspired by # Task Timer 🕒 -[Live Demo](https://your-task-timer-app-url.com) +[Live Demo](https://task-timer-efe4.onrender.com) ## Overview 📝