From fbb43c5a2814270cf59a46540b140de8e2b1ebdf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ro=C5=BCek?= Date: Mon, 29 Apr 2024 14:11:15 +0200 Subject: [PATCH 01/15] ulepszona tabelka z podzadaniami --- example_package/README.md | 73 ++++++++++++++++-------------- example_package/doc/abczad.pdf | Bin 215985 -> 215970 bytes example_package/doc/abczad.tex | 13 ++---- example_package/doc/talentTex.cls | 37 ++++++++------- 4 files changed, 61 insertions(+), 62 deletions(-) diff --git a/example_package/README.md b/example_package/README.md index c6778c50..54d56e75 100644 --- a/example_package/README.md +++ b/example_package/README.md @@ -3,38 +3,39 @@ # **Szablon paczki** -- [**Ogólne informacje**](#ogólne-informacje) -- [**doc**](#doc) - - [**talentTex.cls**](#talenttexcls) -- [**prog**](#prog) - - [**Rozwiązania**](#rozwiązania) - - [**ingen**](#ingen) - - [**inwer**](#inwer) - - [**checkerka**](#checkerka) - - [**oi.h**](#oih) - - [**Scanner (Wczytywanie)**](#scanner-wczytywanie) - - [Są 3 tryby wczytywania danych](#są-3-tryby-wczytywania-danych) - - [**Najważniejszą funkcją jest wczytywanie** i realizuje ją w następujący sposób](#najważniejszą-funkcją-jest-wczytywanie-i-realizuje-ją-w-następujący-sposób) - - [**CheckerVerdict**](#checkerverdict) - - [**checker\_test**](#checker_test) - - [**InwerVerdict**](#inwerverdict) - - [**bug**](#bug) - - [**oi\_assert**](#oi_assert) - - [**Random**](#random) -- [in i out](#in-i-out) - - [Testy ocen](#testy-ocen) - - [Generowanie](#generowanie) -- [dlazaw](#dlazaw) -- [attachment](#attachment) -- [**config.yml**](#configyml) - - [Interactive tasks](#interactive-tasks) - - [Time](#time) - - [Memory](#memory) - - [Title](#title) - - [Scores](#scores) - - [Task ID](#task-id) - - [Contest type](#contest-type) - - [Expected scores](#expected-scores) +- [**Szablon paczki**](#szablon-paczki) + - [**Ogólne informacje**](#ogólne-informacje) + - [**doc**](#doc) + - [**talentTex.cls**](#talenttexcls) + - [**prog**](#prog) + - [**Rozwiązania**](#rozwiązania) + - [**ingen**](#ingen) + - [**inwer**](#inwer) + - [**checkerka**](#checkerka) + - [**oi.h**](#oih) + - [**Scanner (Wczytywanie)**](#scanner-wczytywanie) + - [Są 3 tryby wczytywania danych](#są-3-tryby-wczytywania-danych) + - [**Najważniejszą funkcją jest wczytywanie** i realizuje ją w następujący sposób](#najważniejszą-funkcją-jest-wczytywanie-i-realizuje-ją-w-następujący-sposób) + - [**CheckerVerdict**](#checkerverdict) + - [**checker\_test**](#checker_test) + - [**InwerVerdict**](#inwerverdict) + - [**bug**](#bug) + - [**oi\_assert**](#oi_assert) + - [**Random**](#random) + - [in i out](#in-i-out) + - [Testy ocen](#testy-ocen) + - [Generowanie](#generowanie) + - [dlazaw](#dlazaw) + - [attachment](#attachment) + - [**config.yml**](#configyml) + - [Interactive tasks](#interactive-tasks) + - [Time](#time) + - [Memory](#memory) + - [Title](#title) + - [Scores](#scores) + - [Task ID](#task-id) + - [Contest type](#contest-type) + - [Expected scores](#expected-scores) ## **Ogólne informacje** @@ -85,9 +86,11 @@ Te polecenia również tworzą nagłówek "Wejście" i "Wyjście". - `\ocen{\testOcen{}{} ...}` - Lista wszystkich testów ocen. - `\testOcen{nazwa_testu}{opis_testu}` - Pojedynczy test ocen z opisem. -- `\ocenTable{}` - Tworzy tabelę z podzadaniami. Automatycznie tworzy nagłówek (Nr & Ograniczenia & Punkty). -- `\ocenRow{nr & opis & punkty}` - Pojedynczy wiersz tabeli: kolejne komórki powinny być rozdzielone znakiem &. - Jeśli chcesz mieć 2 linie w pojedynczej komórce tabeli użyj `\ocenElement{text}`. +- `\ocenTable{}` - Tworzy tabelę z podzadaniami. + Jako argument należy przekazać `\ocenRow{}{}`, dla każdego podzadania. + Opcjonalnie można podać ile punktów jest za zadanie `\ocenTable[100]{}`. + Automatycznie tworzy nagłówek (Nr & Ograniczenia & Punkty). +- `\ocenRow{punkty}{ograniczenie}` - Tworzy pojedynczy wiersz tabeli opisujący podzadanie z podaną ilością punktów i danym ograniczeniem. ## **prog** diff --git a/example_package/doc/abczad.pdf b/example_package/doc/abczad.pdf index d6f41b92b07cc3d68df0c27a118bdddb19614363..ccb93f839053e5db713e5469f966a2e56ff36770 100644 GIT binary patch delta 2573 zcmV+o3i9=_mkpwq4Ui-PGB}sPD+4Hhp?b?>3kGS@)zZsE|C9UklYhMqCCP+k)qnY7+4{7QxJnFr@p--NaaAp*T zrwqc7dj&3xCx3o>^Xm5I<#!_VI3-H)z`OnE1%?=-JZ%ICRp{L&-Ut6(vEMy^-chQf zB%d+rZ+Ejf52#=5sv4*5+dfL7br#KjyZydn<<0F4L((4eBsWA0>FF>eN{3#&y7_cN z7}dr!5WQiuWI|1ZYTmigM71j~|FL4;>-^>?_)Cchseq3N<17gA$+S|n?cxh*7fUiw=F9K6=`qYC(Hum_IT2KUScd%HgIA51(T%}d*;G!hkWM!PK7xq0}W)*N6 zD&xP-*J*5Li{JBgT$lEx%8RnHbfo_|tD@A-FAqE|>$n1N*pxR1_KgIkFi>+4SoT-Z zAK7ZgL%)Wt&!yBYF(IUXf1llhp@)9DPU_VQJD1d%9i)r2a#Ps?+yM5uvhSa>&xkQC zipYJmOdBrTIJbi`PM2wsm7nU=PORX`d;oM`)ee6dEwZZ0+V8VPy^QP_s4hEL+#?a0RwAAi_qoZoT9s%X`CjYTyi=)8l6y7dkmI`6+>G{Im+k@xTk7A#m_4P%1|$c3#Fq z;zGnPGX?Ja(8vfPno$B{vv#W>LTUXIuu_hXZVmRFo>JM|5XCgm6hKqA)aHUqAFQs} zmirwVDi8cEyq5dgu9Z~;;k1C%23y|FI7oDn+of&exeus+*Eoyp+Tjd#6#* zB8wwyeiAHyH!#5{f<^^;W?>zEZ{xtwNG|mlI`S3j@0_m$Bos{@qxlJ6;a}-1AVq2T z&{_Upv$y&SWp7;RHa`kYC!?B7{Dad40?m%CLv&5*ZE+z2y^fBoqsJkd17D6hI6BzBV1L zq3p+hh5-)>HV2=%6H08K?>POafvhTOoK>l(?%B|0U+8ELaWx#|L}9v`9fvL_3eX(n z3XFi57xA^ti;{_9Uc}G(c@f`TUQ{AD&{30gbenq{G)HJ0?P~}581tQ_tD*I3^D)dG z@-e&|@-f8EHXmcka`{*snnWBAbMFZ8IQPnbz}Va?yWA^>xpyM}jWe;B%EV$S6SrAd zbS>MlEG)V#e1L88E^3%u-h85E>LZrP|MHgEG}8^;%S&iQLgP~O?aXjLEh~3unaAn+ zbdY_1qXQd*#;KoxqWhRlQT$p8-UsMR=+maD-w*`~O8KrK`WCjSLtmMRHi!deZARsP z(yvh21w6mwTG$wkKJgGe&Y&V}iaX3qM+ElVSgpYmG&WZ-$AeB({C^@U$){RI=(nUA ziE4jDR9V`{sDa^^=3WEVLjydUCZTfq^GA?N7OhYBbW=g%S1|m@Rrnk{xPo^~y0)x` zDd_J|$NLOC&w{koJ&v)gN0@cggun`aS2ne6lv4|WU4(`%0t0-~71|KcIe1)t-_049B~<7It+JoIdvZy(D& zLbtsO?(*L8i*tFI-#3SkyBPof-Ku<1)Em2gkSB=Qanhfa4W^L%h2A z@Ei3KSoB=Fh1(vVC z+2s$#_`0XZWx=dU z{Oa~@o1d_+b4gysyjVy=8T_}*YqHW2gabtf^m=Qn47|67*bw*VV3V$-gJZT6EPTHRPF$q1oeTNBjZ`z3bzB*h+ zMg=rtOYBiV3<-w}2?2);2?Dna2?NA8DmgJU zF)%SUD=;!AFfb=63NKA>WJFnK{GK#H$p)%LP142 zK}I-2LN-D~IX+zqFHB`_XLM*FF*G%ou{{GReI-hcn%?%g@nXH zGIruD);2C+6=*S8em9I;l=K0DOt8Kma-vAdvew5rr6uff$N0ZFBTW z6uAh(L`~F1L-a+HeBFJcMSlL*GKRSD)MnV1p3)1Clcz4tZk~Fy*#)%nnV4S_%WY!y j5KgSmUYXLWLmGDxKiK&X_LqoD10V@EGzujpMNdWw1v%Gh delta 2560 zcmV+b3jg(@mkqI(4Ui-PG%%M@`T;0^+J+eY$zzJiYwV72>VH#@*Stk;gQ*&I$h zzyk5)fg{oiXC!gV!;19vTh-m9NDd`iquDGLv0<~1VpVnB)f5eu0S(?>(ML~8I5UdF zQ$}&jgAzB!i@&_RdUbvE@>>xHoD!vY6kLA{B14Q(fi{A~Dh{sG;6wPX-0$vxZz$DC zTFe*?x4YS#M>MQ=b%V=pwolSzlP9y^uD|P8d2@ZmkaWNT$qms$20D(3(s8g@UwyhF zjA~;nL~m%fOst7ecFv6^s@-|{&ov8P7gs;SUrIzw1-wKUXHkq#rj@eiJ+cL-{?zd_ z7s?Q-MKG7dfJgv6Zb+>N=K%wMNr<4#f{#e*Y~gl9+LOem)~;JW0*;zIf#yPBB*eG41Zsg*?KmY zItufLs`10LSQVukR#jfrZkVjotbQ?@M_^HlVpC;{I;$HGm!$baUM=#?(#^9~UIVAG zGU4lDlP%n8`FpWhG?kmwMOoF3jtoENb&|RD)q$r~v#0?a4i(ISeIr3B4AdM&j{SA= zN4}o%IBekPb18L8Ob8i&-sZPp=y8~B(q{d_t))%w2H7&J{ZhUJH-K}l-TZU@88K#M znfRAhndQQd3pc11*(xjZ>Qj@sg*7}`2!Q^r#^bM&WnR~L`+mM`R*4$})l~M=>w;xrr z1nMBI3V;HHJ0QjU*q56+yOQrX-P#Wc_qKvTEW=7P%*tghTv z`yCo8kHRfXt9|44sycyiT0&}rBX4IMB)Tlz*4BFN9qM&|ktc3#zkxxd!n?G&%RB}f zUfuXEOE>7a9(t88_P5DpW-Dk+BGVb;=9CO#qLpbOZ)ijj7+`20ABjPv9)@`U)dSE( z%N`OgFXNw45;1j@eKlZTP(7wRVtBv@{LWTH_7O-l64(mDLz#et!bTVix5&4|YE37FIf6YweGE>K30`uO=W7_rBJJ;r+M?Vf`@ zL8$-pJPbaI_|VVPbBd3P82V5a^f6y3!ycwfWH>bRmQTo$P%P*{HgXA405Jgg+H|ym zvL73N2D~VEIQYzsP-6RZ$LU86WK~h)tx7$1PfMG9p`$&-)p(E-h3RT`9QvFnKy#2Q zFaly;#A%xsB@@HEh_ChYBF=qYR3bXiQIm9Zn|m#qBQ%cowS#<&`OeYR(0aA`7*-GY z7$%2&4Dqwg$C$EwJ{E^25y!*aJ3>6py)rU?F89hV_sU`JoydRVOf04{v6#xlZ59?? z%XTaai!KWvU~S$-4U@~8Pqa*Z#4`C`-ZE`7ZRuWKLMsv*pQ5j4hKE^I`%BAWk!?-~ z*{3%;a4=|``UxnxU9c&NUrQnQ0G$ba+%)wYqDVn0-!(*kgJbGARA!^HSRorG_Fz390+z18oCG!@M%|QLqO-?d9gsxL;5=h zofhtSKZAxlK|!YWwxz`sk1%bnvo|Crakd*B63cIU>c=Jt5#+1hvSt35)u zy$hc5*7J*NMOEC|%g5aU|Nq^od|5URZvP-p5HXqbk~i1AFAm(c@j74;$4?A@i}lrq z-)NA+-go%P!oAwLpQmt0N~nrXA)$dkvBPoxm!W>?%18{&50iqZ z$lK+Q<@j??k4Y|Z~+uIz=20| z1q}Bf!N9M^yi_OE=>~u=kxUSP76k~TK8{3R3`8b+Vn{2GUdcr&f-q4LRZ$aNQ74}d z-)NAZ|Fwi6FFiFG_G?e^h5N} Date: Mon, 29 Apr 2024 20:31:39 +0200 Subject: [PATCH 02/15] =?UTF-8?q?testy=20wst=C4=99pnie=20wygl=C4=85daj?= =?UTF-8?q?=C4=85=20zno=C5=9Bnie?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- example_package/doc/abczad.pdf | Bin 215970 -> 215982 bytes example_package/doc/abczad.tex | 2 +- example_package/doc/talentTex.cls | 71 +++++++++++++----------------- 3 files changed, 32 insertions(+), 41 deletions(-) diff --git a/example_package/doc/abczad.pdf b/example_package/doc/abczad.pdf index ccb93f839053e5db713e5469f966a2e56ff36770..b6acef9e34d72673e1a114b072c9262393e90fcc 100644 GIT binary patch delta 2555 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 diff --git a/example_package/doc/abczad.tex b/example_package/doc/abczad.tex index 821cc015..1ad32eeb 100644 --- a/example_package/doc/abczad.tex +++ b/example_package/doc/abczad.tex @@ -61,7 +61,7 @@ \makestandardexample{a} % abc0.in -> {}, abc0x.in -> {x} \makecompactexample{a} % testy muszą być wygenerowane więc użyj st-make ingen outgen -\tCustomSection{Wyjaśnienie przykładów}{5pt} +\tSection{Wyjaśnienie przykładów} \tSmallSection{Przykład 1} diff --git a/example_package/doc/talentTex.cls b/example_package/doc/talentTex.cls index 9d6ffda6..184e8ef1 100644 --- a/example_package/doc/talentTex.cls +++ b/example_package/doc/talentTex.cls @@ -33,8 +33,8 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Plików w paczce %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\def\sinolTestIn{../in} -\def\sinolTestOut{../out} +\def\sinolTestInPath{../in} +\def\sinolTestOutPath{../out} \def\sinolContestLogo{logo.jpg} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -153,14 +153,16 @@ \fi } -\newcommand{\twocol}[2]{ - \noindent - \begin{minipage}[t]{0.5\textwidth} - {#1} - \end{minipage}\hfill - \begin{minipage}[t]{0.5\textwidth} - {#2} - \end{minipage} +\newcommand{\twocol}[2]{% + \begin{center}% + \noindent% + \begin{minipage}[t]{0.5\textwidth}% + {#1}% + \end{minipage}% + \begin{minipage}[t]{0.5\textwidth}% + {#2}% + \end{minipage}% + \end{center}% } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -474,49 +476,38 @@ } \newcommand{\exampleinput}[1]{ - \iffileexists{\sinolTestIn/\ID0#1.in}{ - \includefile{\sinolTestIn/\ID0#1.in} - }{ - \smallskip - \?{brak pliku {\ttfamily\ID0#1.in}}\par - \erroutput{brak pliku '\ID0#1.in' w scieżce '\sinolTestIn'} - \smallskip - } + \noindent\sinolExampleInputText + \iffileexists{\sinolTestInPath/\ID0#1.in}{ + \includefile{\sinolTestInPath/\ID0#1.in} + }{ + \smallskip + \?{brak pliku {\ttfamily\ID0#1.in}}\par + \erroutput{brak pliku '\ID0#1.in' w scieżce '\sinolTestInPath'} + \smallskip + } } \newcommand{\exampleoutput}[1]{ - \iffileexists{\sinolTestOut/\ID0#1.out}{ - \includefile{\sinolTestOut/\ID0#1.out} + \noindent\sinolExampleOutputText + \iffileexists{\sinolTestOutPath/\ID0#1.out}{ + \includefile{\sinolTestOutPath/\ID0#1.out} }{ \smallskip \?{brak pliku {\ttfamily\ID0#1.out}}\par - \erroutput{brak pliku '\ID0#1.out' w scieżce '\sinolTestOut'} + \erroutput{brak pliku '\ID0#1.out' w scieżce '\sinolTestOutPath'} \smallskip } } -\newcommand{\makeexampleinput}[1]{ - \noindent\sinolExampleInputText - \exampleinput{#1} -} - -\newcommand{\makeexampleoutput}[1]{ - \noindent\sinolExampleOutputText - \exampleoutput{#1} -} - \newcommand{\makestandardexample}[1]{% - \makeexampleinput{#1}% - \makeexampleoutput{#1}% + \vspace{5pt} + \exampleinput{#1}% + \exampleoutput{#1}% } -\newcommand{\makecompactexample}[1]{ - \twocol{\makeexampleinput{#1}}{\makeexampleoutput{#1}} - \vspace{15pt} - \setlength\parskip{15pt} - \par - \setlength\parskip{0pt} - \par +\newcommand{\makecompactexample}[1]{% + \vspace{-5pt}% + \twocol{\exampleinput{#1}}{\exampleoutput{#1}}% } % pozostałe komendy From 88df8e40ae1c20540334dfb59e78b21623234886 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ro=C5=BCek?= Date: Tue, 30 Apr 2024 10:38:58 +0200 Subject: [PATCH 03/15] drobnostki --- example_package/doc/abcopi.pdf | Bin 149163 -> 149163 bytes example_package/doc/abcopr.pdf | Bin 147527 -> 147527 bytes example_package/doc/abczad.pdf | Bin 215982 -> 215985 bytes example_package/doc/abczad.tex | 1 + example_package/doc/talentTex.cls | 39 ++++++++++-------------------- 5 files changed, 14 insertions(+), 26 deletions(-) diff --git a/example_package/doc/abcopi.pdf b/example_package/doc/abcopi.pdf index ec57fbcfb9ebafbdba8349a71eec28649a170860..8411f2173fcf34636447c8e03925baefeebf6b6f 100644 GIT binary patch delta 136 zcmZ48%elIjv!R7?3)2C6ZDRvN17mX&Gi?JSbpr!+O)h=k{1lhOl2io^7b_zJBNGD? zn3C`JxtTdS8oL=do0_;fIhz_7np#?#S{gW;TiPku5K=Pzrz_JY E0I^^rhyVZp diff --git a/example_package/doc/abcopr.pdf b/example_package/doc/abcopr.pdf index 3207639ff1317440107e570b7ccbec4098dd82e2..6235769040a646bad76f93a2154bb56560ed6048 100644 GIT binary patch delta 136 zcmX@!zQDp@FN5i<^OqrK_QZiK~Huoq`P^CDW(bGi?L_ D+gl)j delta 136 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 Date: Thu, 2 May 2024 22:49:28 +0200 Subject: [PATCH 04/15] =?UTF-8?q?usuni=C4=99cie=20niepotrzebnego=20i=20dro?= =?UTF-8?q?bne=20poprawki?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- example_package/doc/abcopi.pdf | Bin 149163 -> 149150 bytes example_package/doc/abcopr.pdf | Bin 147527 -> 147515 bytes example_package/doc/abczad.pdf | Bin 215985 -> 215989 bytes example_package/doc/talentTex.cls | 225 ++++++++++++------------------ 4 files changed, 86 insertions(+), 139 deletions(-) diff --git a/example_package/doc/abcopi.pdf b/example_package/doc/abcopi.pdf index 8411f2173fcf34636447c8e03925baefeebf6b6f..82be1b303e93e0b0eb31f65d8c92f77cacdd8573 100644 GIT binary patch delta 839 zcmZ48%Q>%?bAmFHfx-0u7EGG;Q$tSX-8K-|`&zqVNki8|HNESLd@sc8I%0d&Qe)aA zt+*!^Mm#THTRR7>n!Lb)n^7sf{&Sj&pB$%pxMY2Kky@*{kYB8o`bkFK{HgZqHuZPE zc@!k6WNGX+E#;#FPaNyUIKytJ($=K^O1yYc3tJI^I*7vi0mdW3?S$?JDNPHlMUU%^-E^QgoWy z>7&!vD$L*Y#@c3%=5bLLLq*q@A4IOrxbQyS=fc;|Ju3r_8Rv;=ntXQPT;krmtpDxOO_?-LlB_^WxNZ@0c>Lf~}FwktuHdLeYf}d|rPnwt2@m zb@ADtX+_uVp0);ceLKsiKkJ?OTdP%mmQ`0@l-2lXiD+d6U674x7u{FyntbYZYx&)~ z;Sbgdo+|bF-49r%4bZ)wLbn`C$ zor^b|^A>h~rD)2wL+9-z0U;jSp2ssTeuLwa)~i8*7JIiS{q-t% zQmQlaM6Ywp{gY>|f3fCtGCa?0p7?dzvin<~=$bZfU~1pM#JGI}6BEC!j;Vo>k&%hH zse!hEk-C9_x+a&tZ+?nPVo9okhKrSvfsu&;T*>y=_DrW)1C0zF4b6?rolP8_ot&L5 z%q<*E42>;K+)RxvEsY#qT&$LW4WILQu9)ZONvqxb3v^9q%5xDlEk8tilWpsE<+Ow3qvz5RaIAi GH!c7+YiZ&D delta 833 zcmbQ&%elIjbAmFnp^?J$g$_&_^;1K<^KTpQ?E4-5L4$eoqV~1NOK(K!Ot+mhcb43p z8*lH}%vr|A^!s}MmK=Rw!-QtWU=`O_kKMhP<~bb5Rk`PRaOxMgg+9j5MPyDE=Kd*^ zu8ncqES>AXnb&hF;U~w;=l7&H#1*H@=y2~yzTX$SJCZZ;^P;|`3D3>^LewHIo2l0u zv9CSdT@(NGbjW*s<$fi*0iZSmD4=<<%!4I zhhB{?Y9=z?6-yTXn|!R`BmvmVR5VtV5#3-Hs9Yv=Wt0_|Fq=r zb-VeQzgV64v+%s^6yG^B1%kFXCw83PR2A@xCAZnulJ`ZqC}Ws&-Kz&)OE)w8&etxNggi7t)ufcIYz19^=crInDN_?}oK5YO_ur^XAg@`?JBd zy+?Sq*4con)TbZj1)T0Kc;b+kp|np^IR5eMOWG%|@Xu=bYU;b6QI$#0mMb+crMRRh zH8B^&%1_GTGE^{70MgBSncDXc?>#PrRE)5O@o(7@Q-#BBN=dnPFacl&*NrqirJ zt}bpamKIKqZbrri=7z4u#+H_bh6YaNhR#5?qoIMFf(=0>v0VB-sd?!o844CA3XnW7 xUB!(_kauG%=N2jJ8>b=TSTmTEVaL)h$ diff --git a/example_package/doc/abcopr.pdf b/example_package/doc/abcopr.pdf index 6235769040a646bad76f93a2154bb56560ed6048..670c4cb88b2b3a735bfe87c2b9cb9c8a52726c58 100644 GIT binary patch delta 867 zcmX@!z`47DbAl4Hsinnqe{q6VdSZo>^PJ8@GVs(GXJL&4mVvgGnEbjg( zlH5DjU0i+&qsSczpTs(TH67K6^*fCDo>|`6ogI?J_^6%wiM81BW7`&+G`5`S2lkX~=w(>H! zr204}Rj*HoK2Y26E4{E^q5Z^U&ll`Zmp=2lytlsdQ&>TJR=~f;HG$#!Ssyj6zcN7v<@ zZ~P*YYvpk7&8sytuUuIbGySWR&*cxh)+Lp!>Abk9CxRt4c8|u@V8(kNzSC8fN4^6E(KR@irgu*0KEw^inr#`-OROIj--U)9% zxXCU!{6_WqhGLC-|I{UYzD+H9aN|>n!heRXaT!_7>zUfuGcj&o&%~5qrekVgWMpJw zZfc-yV5DwfpsvZK@0*|El30?epy6U=WME`s09Ufz+LB3vEzs4`$jsHu&DhA)+`z!X z(7@5q!pzyx*b=DJ%+S@z(oVsKppsZFeV^34^pXq(3ljx!dJmF4xtp^gK*ITY zLzfiausBMq7y4{0WIt$o$MNj_nkNDb6`XGcCS*7)=w9RNs+*pYJZYk)uiL%oJ(g2{ oMX;LkEm)?#Y3Z}a=f56gueauKm@enQq`+xmz@@6{>hHz{08uG@>;M1& delta 911 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 P10V@FHVP#rMNdWw6@$Z? diff --git a/example_package/doc/talentTex.cls b/example_package/doc/talentTex.cls index 3fc8dc8c..172e8172 100644 --- a/example_package/doc/talentTex.cls +++ b/example_package/doc/talentTex.cls @@ -22,7 +22,6 @@ \RequirePackage[T1]{fontenc} \RequirePackage{epsf} \RequirePackage{graphicx} -\RequirePackage{ifpdf} \RequirePackage{fancyhdr} \RequirePackage[latin2,utf8]{inputenc} \RequirePackage{verbatim} @@ -50,9 +49,6 @@ % zmienne logiczne i liczniki %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \newif\ifsinolerrors \sinolerrorsfalse % bledy -\newif\ifsignaturedefed \signaturedefedfalse % czy zdefiniowano sygnature -\newif\ifdatedefed \datedefedfalse % czy podano date -\newif\ifetapdefed \etapdefedfalse % czy podano etap \newif\ifkonkursdefed \konkursdefedfalse % czy podano konkurs \newif\ifdaydefed \daydefedfalse % czy podano dzień \newif\ifgroupdefed \groupdefedfalse % czy podano grupę @@ -80,12 +76,6 @@ \global\sinolerrorstrue } -% \erroutputWrongSection{}{} --- -% wyprowadza informacje o blednej nazwie rodzialu -\newcommand{\erroutputWrongSection}[2]{% - \erroutput{bledna nazwa lub lokalizacja rozdzialu '#1', spodziewane '#2'}% -} - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Czynności przed i po - otwiera pliki inf err %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -112,52 +102,51 @@ [[#1]] } -\def\ifundef#1#2#3{ - \expandafter - \ifx\csname#1\endcsname\relax - #2 - \else - #3 - \fi +\def\ifundef#1#2#3{% + \expandafter% + \ifx\csname#1\endcsname\relax% + #2% + \else% + #3% + \fi% } -\def\ifeq#1#2#3{ - \edef\@tempeqa{#1} - \edef\@tempeqb{#2} - \ifx\@tempeqa\@tempeqb - #3 - \fi +\def\ifeq#1#2#3{% + \edef\@tempeqa{#1}% + \edef\@tempeqb{#2}% + \ifx\@tempeqa\@tempeqb% + #3% + \fi% } -\def\ifneq#1#2#3{ - \edef\@tempeqa{#1} - \edef\@tempeqb{#2} - \ifx\@tempeqa\@tempeqb\else - #3 - \fi +\def\ifneq#1#2#3{% + \edef\@tempeqa{#1}% + \edef\@tempeqb{#2}% + \ifx\@tempeqa\@tempeqb\else% + #3% + \fi% } -\newcommand{\iffileexists}[3]{ - \immediate\openin\tmpfile #1\par - \ifeof\tmpfile - \immediate\closein\tmpfile - #3 - \else - \immediate\closein\tmpfile - #2 - \fi +\newcommand{\iffileexists}[3]{% + \immediate\openin\tmpfile #1\par% + \ifeof\tmpfile% + \immediate\closein\tmpfile% + #3% + \else% + \immediate\closein\tmpfile% + #2% + \fi% } -\newcommand{\twocol}[2]{% - \begin{center}% - \noindent% - \begin{minipage}[t]{0.5\textwidth}% - {#1}% - \end{minipage}% - \begin{minipage}[t]{0.5\textwidth}% - {#2}% - \end{minipage}% - \end{center}% +\NewDocumentCommand{\twocol}{ O{0.5} O{0} O{t} m m }{% + \noindent% + \begin{minipage}[#3]{#1\textwidth}% + #4% + \end{minipage}% + \hfill% + \begin{minipage}[#3]{\dimexpr\textwidth-#1\textwidth-#2\textwidth}% + #5% + \end{minipage}% } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -174,9 +163,8 @@ } } -\def\tophugetitle{ - \begin{minipage}[t]{0.8\textwidth} - \setlength{\parindent}{-4pt} +\def\tophugetitle{% + \begin{minipage}[t]{0.75\textwidth} \color{talentBlue} \fontfamily{ptm} \huge @@ -186,9 +174,6 @@ \def\topinformationbar{} -\def\sinolHistory{} -\def\sinolSignature{} - % uruchamiane po przeczytaniu deklaracji \newcommand{\concludedecls}{ % Sprawdzanie istnienia definicji @@ -219,23 +204,6 @@ \infoutput{[title][#1]} } -\newcommand{\signature}[1]{ - \def\sinolSignature{#1} - \infoutput{[signature][#1]} - \global\signaturedefedtrue -} - -\newcommand{\history}[3]{ - \edef\sinolHistory{\noindent $\bullet$\ v.\,#3: #1, #2\par\sinolHistory} - \infoutput{[history][#1][#2][#3]} - \DocVersiondefedtrue -} - -\newcommand{\etap}[1]{ - \def\sinolEtap{#1} - \global\etapdefedtrue -} - \newcommand{\konkurs}[1]{ \def\sinolKonkurs{#1} \global\konkursdefedtrue @@ -286,23 +254,13 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Nazwy wyświetlane (zmiana języka, narazie tu ręcznie) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\def\sinolSNamePrzyklad{Przykład} -\def\sinolSNameZadanie{Zadanie} -\def\sinolSNameWejscie{Wejście} -\def\sinolSNameWyjscie{Wyjście} -\def\sinolSNameRozwiazanieWzorcowe{Rozwiązanie wzorcowe} -\def\sinolSNameTesty{Testy} -\def\sinolSNameUwagi{Uwagi} -\def\sinolSNameHistory{Historia} \def\sinolSNameOpis{Opis rozwiązania} \def\sinolSNameOpracowanie{Opracowanie} \def\sinolTitleZadanie{Zadanie} -\def\sinolEtapText{etap} \def\sinolGroupText{Grupa} \def\sinolDayText{} \def\sinolKonkursText{} -\def\sinolSourceText{Plik źródłowy} \def\sinolMemoryText{Pamięć} \def\sinolTimeText{Czas} @@ -310,53 +268,44 @@ % Opcje talentTex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \DeclareOption{zad}{ - \renewcommand{\topinformationbar}{ - \hbox to \hsize - { - \begin{minipage}[t]{1\textwidth} - \setlength{\parindent}{-2pt} - \def\@tempempty{} - \bf - \fontfamily{ptm} - \color{talentBlue} + \renewcommand{\topinformationbar}{% + \hbox{% + \bf% + \fontfamily{ptm}% + \color{talentBlue}% + \def\@tempempty{}% % - %% Konkurs pokazuje się tylko gdy jest niepusty \ifkonkursdefed \ifx\sinolKonkurs\@tempempty \else\sinolKonkursText\sinolKonkurs.\ \fi \else\?{brak konkursu}\erroutput{brak konkursu}\fi % - %% Dzień pokazuje się tylko gdy jest niepusty \ifdaydefed \ifx\sinolDay\@tempempty \else\sinolDayText\sinolDay.\ \fi \else\?{brak dnia}\erroutput{brak dnia}\fi % - % Grupa \ifgroupdefed \if\sinolGroup\@tempempty \else\sinolGroupText:\,\sinolGroup.\ \fi \else\?{brak grupy}\erroutput{brak grupy}\fi % - % Dostępna pamięć -- pokazuje sie tylko gdy - % nie jest pusta i jest zdefiniowana \ifMemorydefed \ifx\sinolMemory\@tempempty \else\sinolMemoryText:\,\sinolMemory\,MB.\ \fi \else\?{brak limitu pamięci}\erroutput{brak limitu pamięci}\fi % - %% Limit czasu -- pokazuje się tylko gdy nie jest pusty i jest zdefiniowany. \iftimedefed \ifx\sinolTime\@tempempty \else\sinolTimeText:\,\sinolTime\,s.\ \fi \else\?{brak limitu czasu}\erroutput{brak limitu czasu}\fi + % \hfill - \end{minipage} } } } @@ -364,18 +313,13 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \DeclareOption{opi}{ \renewcommand{\topinformationbar}{ - \hbox to \hsize - { - \begin{minipage}[t]{1\textwidth} - \setlength{\parindent}{-2pt} - \def\@tempempty{} - \bf - \fontfamily{ptm} - \color{talentBlue} - \Large - \sinolSNameOpis - \hfill - \end{minipage} + \hbox{% + \bf% + \fontfamily{ptm}% + \color{talentBlue}% + \Large% + \sinolSNameOpis% + \hfill% } } } @@ -383,18 +327,13 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \DeclareOption{opr}{ \renewcommand{\topinformationbar}{ - \hbox to \hsize - { - \begin{minipage}[t]{1\textwidth} - \setlength{\parindent}{-2pt} - \def\@tempempty{} - \bf - \fontfamily{ptm} - \color{talentBlue} - \Large - \sinolSNameOpracowanie - \hfill - \end{minipage} + \hbox{% + \bf% + \fontfamily{ptm}% + \color{talentBlue}% + \Large% + \sinolSNameOpracowanie% + \hfill% } } } @@ -423,7 +362,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \pagestyle{fancy} \lfoot{Stowarzyszenie Talent (talent.edu.pl)} -\rfoot{\sinolTitle\ - \ID} +\rfoot{\begin{minipage}[t]{0.45\textwidth}\raggedleft\sinolTitle\ - \ID\end{minipage}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Definicja przestrzeni dokumentu: 'tasktext' @@ -455,7 +394,8 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Komendy dostępne w klasie talentTex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% komendy do obsługi plików + +% Pokazywanie testów wstępnych \newcommand{\includefile}[1]{ \vspace{-0.9em} @@ -494,11 +434,12 @@ \newcommand{\makecompactexample}[1]{% \vspace{-5pt}% - \twocol{\exampleinput{#1}}{\exampleoutput{#1}}% + \begin{center}% + \twocol{\exampleinput{#1}}{\exampleoutput{#1}}% + \end{center}% } -% pozostałe komendy -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Początek i koniec dokumentu \newcommand{\start}{ \begin{document} @@ -510,6 +451,8 @@ \end{document} } +% obsługa zdjeć + \newlength{\imgwidth} % podpis pod/nad obrazkiem @@ -546,6 +489,8 @@ \newcommand{\bimg}[2]{\img{#1}{#2}{b}} \newcommand{\plainimg}[1]{$$\includegraphics{#1}$$} +% Sekcje w dokumencie + \newcommand{\tSection}[1]{ \tCustomSection{#1}{15pt} } @@ -559,14 +504,12 @@ \setlength\parindent{0pt} \setlength\parskip{5pt} \par - { - \fontfamily{ptm} - \color{talentBlue} - \textbf{#1} - } + \fontfamily{ptm} + \color{talentBlue} + \textbf{#1} + \setlength\parskip{2pt} + \par } - \setlength\parskip{2pt} - \par } \newcommand{\tCustomSection}[2]{ @@ -574,17 +517,17 @@ \setlength\parindent{0pt} \setlength\parskip{#2} \par - { - \fontfamily{ptm} - \color{talentBlue} - \Large - \textbf{#1} - } + \fontfamily{ptm} + \color{talentBlue} + \Large + \textbf{#1} } \setlength\parskip{2pt} \par } +% Talentowy kolor do zaznaczania zmiennych + \newcommand{\tc}[1]{% \ifmmode \StrLen{#1}[\textLength] @@ -598,6 +541,8 @@ \fi } +% Testy ocen + \newcommand{\ocen}[1]{ \begin{enumerate} \setlength\itemindent{-13pt} @@ -610,6 +555,8 @@ \item[] \textbf{\color{talentBlue}\ID#1: \ }{#2} } +% Tabelka z podzadaniami + \newcommand{\ocenTable}[2][100]{ \setcounter{subtestsCounter}{0} \setcounter{sumPointSubtask}{0} From cd864ee010e574491406a770eb78662550d09142 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ro=C5=BCek?= Date: Fri, 17 May 2024 15:19:19 +0200 Subject: [PATCH 05/15] poprawki --- example_package/doc/talentTex.cls | 85 +++++++++---------------------- 1 file changed, 25 insertions(+), 60 deletions(-) diff --git a/example_package/doc/talentTex.cls b/example_package/doc/talentTex.cls index 172e8172..a5696784 100644 --- a/example_package/doc/talentTex.cls +++ b/example_package/doc/talentTex.cls @@ -34,7 +34,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \def\sinolTestInPath{../in} \def\sinolTestOutPath{../out} -\def\sinolContestLogoPath{logo.jpg} +\def\sinolContestLogoPath{logo} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Kolory @@ -114,21 +114,17 @@ \def\ifeq#1#2#3{% \edef\@tempeqa{#1}% \edef\@tempeqb{#2}% - \ifx\@tempeqa\@tempeqb% - #3% - \fi% + \ifx\@tempeqa\@tempeqb#3\fi% } \def\ifneq#1#2#3{% \edef\@tempeqa{#1}% \edef\@tempeqb{#2}% - \ifx\@tempeqa\@tempeqb\else% - #3% - \fi% + \ifx\@tempeqa\@tempeqb\else#3\fi% } \newcommand{\iffileexists}[3]{% - \immediate\openin\tmpfile #1\par% + \immediate\openin\tmpfile#1\par% \ifeof\tmpfile% \immediate\closein\tmpfile% #3% @@ -196,12 +192,10 @@ \newcommand{\id}[1]{ \edef\ID{#1} - \infoutput{[id][#1]} } \renewcommand{\title}[1]{ \def\sinolTitle{#1} - \infoutput{[title][#1]} } \newcommand{\konkurs}[1]{ @@ -230,24 +224,14 @@ } \newcommand{\iomode}[1]{ - \def\sinolIOmode{#1} \ifeq{#1}{files}{ \gdef\sinolExampleInputText{Dla pliku wejściowego {\ttfamily\ID.in}:} \gdef\sinolExampleOutputText{poprawnym wynikiem jest plik wyjściowy {\ttfamily\ID.out}:} } \ifeq{#1}{stdin}{ - \gdef\sinolExampleInputText{{\color{talentBlue}\bf Wejście:}} - \gdef\sinolExampleOutputText{{\color{talentBlue}\bf Wyjście:}} - } - \ifeq{#1}{outputonly}{ - \gdef\sinolExampleInputText{Wejście:} - \gdef\sinolExampleOutputText{Wyjście:} - } - \ifeq{#1}{interactive}{ - % TODO: UPDATE THIS - \gdef\sinolExampleInputText{Wejście:} - \gdef\sinolExampleOutputText{Wyjście:} - } + \gdef\sinolExampleInputText{{\color{talentBlue}\bf \sinolInputText:}} + \gdef\sinolExampleOutputText{{\color{talentBlue}\bf \sinolOutputText:}} + } } \iomode{stdin} @@ -263,6 +247,8 @@ \def\sinolKonkursText{} \def\sinolMemoryText{Pamięć} \def\sinolTimeText{Czas} +\def\sinolInputText{Wejście} +\def\sinolOutputText{Wyjście} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Opcje talentTex @@ -273,38 +259,21 @@ \bf% \fontfamily{ptm}% \color{talentBlue}% - \def\@tempempty{}% - % \ifkonkursdefed - \ifx\sinolKonkurs\@tempempty - \else\sinolKonkursText\sinolKonkurs.\ - \fi - \else\?{brak konkursu}\erroutput{brak konkursu}\fi - % + \ifneq{\sinolKonkurs}{}{\sinolKonkursText\sinolKonkurs.\hspace{5pt}}% + \fi \ifdaydefed - \ifx\sinolDay\@tempempty - \else\sinolDayText\sinolDay.\ - \fi - \else\?{brak dnia}\erroutput{brak dnia}\fi - % + \ifneq{\sinolDay}{}{\sinolDayText\sinolDay.\hspace{5pt}}% + \fi \ifgroupdefed - \if\sinolGroup\@tempempty - \else\sinolGroupText:\,\sinolGroup.\ - \fi - \else\?{brak grupy}\erroutput{brak grupy}\fi - % + \ifneq{\sinolGroup}{}{\sinolGroupText:\,\sinolGroup.\hspace{5pt}}% + \fi \ifMemorydefed - \ifx\sinolMemory\@tempempty - \else\sinolMemoryText:\,\sinolMemory\,MB.\ - \fi - \else\?{brak limitu pamięci}\erroutput{brak limitu pamięci}\fi - % + \ifneq{\sinolMemory}{}{\sinolMemoryText:\,\sinolMemory\,MB.\hspace{5pt}}% + \fi \iftimedefed - \ifx\sinolTime\@tempempty - \else\sinolTimeText:\,\sinolTime\,s.\ - \fi - \else\?{brak limitu czasu}\erroutput{brak limitu czasu}\fi - % + \ifneq{\sinolTime}{}{\sinolTimeText:\,\sinolTime\,s.\hspace{5pt}}% + \fi \hfill } } @@ -353,7 +322,6 @@ \setlength{\hoffset}{-4mm} % this means 1in-15mm \setlength{\voffset}{-30mm} % this means 1in-15mm \setlength{\topmargin}{0pt} -\setlength{\parskip}{0pt} \renewcommand{\headrulewidth}{0pt} \renewcommand{\footrulewidth}{0.4pt} @@ -500,30 +468,26 @@ } \newcommand{\tSmallSection}[1]{ + \par\vspace{5pt} { \setlength\parindent{0pt} - \setlength\parskip{5pt} - \par \fontfamily{ptm} \color{talentBlue} \textbf{#1} - \setlength\parskip{2pt} - \par } + \par\vspace{2pt} } \newcommand{\tCustomSection}[2]{ + \par\vspace{#2} { \setlength\parindent{0pt} - \setlength\parskip{#2} - \par \fontfamily{ptm} \color{talentBlue} \Large \textbf{#1} } - \setlength\parskip{2pt} - \par + \par\vspace{2pt} } % Talentowy kolor do zaznaczania zmiennych @@ -568,7 +532,8 @@ \end{tabular} \end{center} \ifneq{\arabic{sumPointSubtask}}{#1}{% - Uwaga! W tyma zadaniu suma punktów do zdobycia wynosi \arabic{sumPointSubtask} punktów. + Uwaga! W tyma zadaniu suma punktów do zdobycia wynosi \arabic{sumPointSubtask} punktów.% + \erroutput{Suma punktow jest niewlasciwa}% } } From 0db91fb2126fff0929365be0a6025e0dc7f2a194 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ro=C5=BCek?= Date: Sun, 19 May 2024 18:01:08 +0200 Subject: [PATCH 06/15] =?UTF-8?q?najwi=C4=99ksza=20zmiana?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- example_package/README.md | 19 +- example_package/doc/abcopi.pdf | Bin 149150 -> 149153 bytes example_package/doc/abcopr.pdf | Bin 147515 -> 147513 bytes example_package/doc/abczad.pdf | Bin 215989 -> 259751 bytes example_package/doc/abczad.tex | 93 +++--- example_package/doc/talentTex.cls | 451 +++++++++++++----------------- 6 files changed, 258 insertions(+), 305 deletions(-) diff --git a/example_package/README.md b/example_package/README.md index 54d56e75..9ed7a8cf 100644 --- a/example_package/README.md +++ b/example_package/README.md @@ -77,20 +77,19 @@ Można też `\timg{img1.jpg}{opis}`, `\bimg{img1.jpg}{opis}`. - `\tSection{text}` - Nagłówek w stylu talentu. - `\tCustomSection{text}{0pt}` - Nagłówek w stylu talentu, z możliwością ustawienia odstępu od poprzedniego akapitu. - `\tSmallSection{text}` - Mały nagłówek w stylu talentu. -- `\makecompactexample{id}` - dodaje automatycznie test "abc0{id}" z paczki, wejście i wyjście będą obok siebie. -- `\makestandardexample{id}` - dodaje automatycznie test "abc0{id}" z paczki, wejście i wyjście będą pod sobą. - -Przy kompilacji testy są automatycznie czytane z folderów ./in i ./out. -Należy się upewnić, że są one wygenerowane w momencie kompilacji treści. -Te polecenia również tworzą nagłówek "Wejście" i "Wyjście". +- `\example[h/v]{id}` - Wstawia test przykłądowy "zad0{id}" z paczki. + Opcjonalnie można dodać położenie testów, h - horyzontalnie, v - pionowo, domyślnie jest h. + Przy kompilacji testy są automatycznie czytane z folderów ./in i ./out. + Należy się upewnić, że są one wygenerowane w momencie kompilacji treści. + Te polecenia również tworzą nagłówek "Wejście" i "Wyjście". - `\ocen{\testOcen{}{} ...}` - Lista wszystkich testów ocen. - `\testOcen{nazwa_testu}{opis_testu}` - Pojedynczy test ocen z opisem. -- `\ocenTable{}` - Tworzy tabelę z podzadaniami. - Jako argument należy przekazać `\ocenRow{}{}`, dla każdego podzadania. - Opcjonalnie można podać ile punktów jest za zadanie `\ocenTable[100]{}`. +- `\subtaskTable{}` - Tworzy tabelę z podzadaniami. + Jako argument należy przekazać `\subtask{}{}`, dla każdego podzadania. + Opcjonalnie można podać ile punktów jest za zadanie `\subtaskTable[100]{}`. Automatycznie tworzy nagłówek (Nr & Ograniczenia & Punkty). -- `\ocenRow{punkty}{ograniczenie}` - Tworzy pojedynczy wiersz tabeli opisujący podzadanie z podaną ilością punktów i danym ograniczeniem. +- `\subtask{punkty}{ograniczenie}` - Tworzy pojedynczy wiersz tabeli opisujący podzadanie z podaną ilością punktów i danym ograniczeniem. ## **prog** diff --git a/example_package/doc/abcopi.pdf b/example_package/doc/abcopi.pdf index 82be1b303e93e0b0eb31f65d8c92f77cacdd8573..a729510b8cc065fc53b748b9fc1a004f8bcdc897 100644 GIT binary patch delta 793 zcmbQ&%ekg$KhezsO{cnY9Z@GM3%D;QL1$&Z* z*PjE08+3krotr5B%3{?OuFkua^`Fl&sQb4}zTL9l+H&$CY0l;6=1zXn(U$$R|Mru| zMlKP4jZT!}_^?nz4Fl!oSxG>v-SD1wYKVJU?5+ zHn#BKHTr6S)QP<2yraeU{H($fJt~vhbtPP8Me2&SUiQ|0 zw4TL1u5Hr9I|eR4=K9q1?w{;r z3j+f~q5w(W(^cG<1bH?#aBh*ZzH#d2A*QhD4sJ|_EInErKGRFx Pm=rlIxKveL{oS|#Jep}z delta 792 zcmZ43%Q>%?bAk%9fr7&H1s56B>!*gC%)4zMu=llg#gc}uhiZD)7x`X@*>%MBsHMiV zNm_AFER1+wzP5G_S~Yor12>~mdj01#6+byn^>E4h@*=fXb0NQ2EA^9%y!lh@*KO+W ze)A|uQpwWTZCc7l2c9_Ajd6zQGLcuFOsli*Ib3ye=h|0#;&bM;?U|su{O<+%K-v1G z8&|E4jec6*{aW(Wb62$uCW0>B=hs|1Vs*TyG-d1AdB$oxzS>pHiETby5R|9L?jREQX4%FF%M}n{nZNyw8QNpLNR%?X+KbN%mcs++1$v@X6|krnu* ziMr5OD2u#JgpY>*vL(@7^(GUIkktniTw;Pk+`s^S4&3{4A@kz9_5l(GtoOt>124G**x*ac^a}0Q7QOU;qFB diff --git a/example_package/doc/abcopr.pdf b/example_package/doc/abcopr.pdf index 670c4cb88b2b3a735bfe87c2b9cb9c8a52726c58..3bab96a382e15c82a4c10a353c3d47808bab56db 100644 GIT binary patch delta 845 zcmdnpz`3)5bAk$!nZooBmP{HG{kZB&M2uZ0hB@_TFV9um_eJoz$a9CrB_?JnGkBQy z@6$dYviq%%ba_ccX85J;zuz`bWLqqRSVE&uw#qwFg= z3znH4NvZYUa-S<{PD)txrgJBB|Au_O`?#%ma!RO%Mec5crWu!)WykHQvia&cZHlYV zz52D`o3-CxZ~SnO<6Dp0F&MEnoQi`@98aK|gjk zYtC0Jh+2Ao)f)Yx|8JG*pC>e=ev??Nzv^ya>7JQd%j-^_TJ$!oZHKfX2hY zZ@!oGva+Jzbfqb8&G|3BKD9Dx;pZhkZ(a}9);wJ zfP~A#nICt^wVqPiBE;F-8nGw;y`o%^JAB1ixDqL)E5RaVQ6?N{!F%{+D zSv`BUR}^b~-N=f;(hk`{MXI=HLp1gxKi^{ic5-86LUeV{G=?d;*!Lol8U0# TG%iCEb3=0rE>%@me>W}w$v%KQ delta 820 zcmV-41IzrmfC;;R36LZKIF~>&0x6MB3V-$}W{M)MgdW#U+f01vBhD$#ff|z1*e0>@ zF!1ZU0_+mEooV9^hZR~$-?!gB1U!I%%SilU1xM)(lGUkm2;1N|-TZPHy`4uFACv(U z+!#z@eh(%rC0MVxGY;lC+_F#Gu6jXPYvM?|Xz%YEb^;(|@kN=zMBD5p&G-<9v{!@t_qq~-Szt!E1%MVxwM*>co+8%sy(H09}m?tfekj!MlA z9A>dhS@t*}Htj>PDF)oJo~khy#jbA8f%F`0IzZm+>a3a6)T&&U^+Fld{4ZTMo6`zC zPMV*6J+_keoH8ET?eGBPwbH87V6IRYC9FfuYSG&eOcw=6jV7zRT{K{7T)HbyftH8(IYI599m zF*r6uK{GirG%z+XMM60~AUs7uGB!mvMl&)sH!v_bF)%?fI5tB;GdVIeFg7toLOGX* zKLR;Wy9t0$7(?MCKCX|#(jn{wK^rG=OtEnX!9CnT&EI_F5CC`y?GTV?K%k4PO+_td yWMh(%DNRP+Tf8}y`d9@u4xpwhvZdzZ&-K9ve>(_3mk>Y#APG1y3MC~)PeuyGsc&@v diff --git a/example_package/doc/abczad.pdf b/example_package/doc/abczad.pdf index ecd490d0eb64e5867da920dc37e7b36a2ac20c9d..2f93a156773152f8e865c505f5dc3e6afc0c1c4b 100644 GIT binary patch delta 58722 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 d5=dDAL)!?6QUZ~q@d|{2$IQr~Lo` delta 15194 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 diff --git a/example_package/doc/abczad.tex b/example_package/doc/abczad.tex index 6fb6d7d5..cd348334 100644 --- a/example_package/doc/abczad.tex +++ b/example_package/doc/abczad.tex @@ -2,51 +2,28 @@ \title{Przykładowy tytuł zadania} \id{abc} -\iomode{stdin} % stdin -\Memory{256} % w MB -\Time{2,4} % w sekundach -\group{A} -\konkurs{SKN 2023/24} -\day{Runda 17} - -%%%%%%%%%%%%%%%%%% -% Przydatne komendy: -% \pagebreak % komenda zaczynająca nową stronę pdfa -% ~ % słowa oddzielone '~' zamiast ' ' w~taki sposób będą zawsze koło siebie -% $text_mat$ % pozwala na pisanie wyrażeń matematycznych -% Dokumentacja: -% https://www.overleaf.com/learn - -%%%%%%%%%%%%%%%%%% -% Komendy talentowe -% \start{} % Rozpoczyna treść, musi być na samym początku treści zadania. -% \finish{} % Kończy treść, musi być na samym końcu treści zadania. -% \tSection{text} % Nagłówek w stylu talentu. -% \tCustomSection{text}{xpt} % Nagłówek w stylu talentu, z możliwością ustawienia odstępu 'x' od poprzedniego akapitu. -% \tSmallSection{text} % Mały nagłówek w stylu talentu. -% \tc{text} % Styl używany do oznaczania zmiennych. -% \makecompactexample{id} % 2 style dodawania automatycznie testów "zad0{id}" z paczki. -% \makestandardexample{id} % compact - obok siebie, standard - pod sobą. -% % Przy kompilacji testy są automatycznie czytane z folderów ./in i ./out -% \ocen{text} % Lista wszystkich testów ocen. -% \testOcen{text}{text2} % Pojedyńczy test ocen z opisem. -% \ocenTable[100]{text} % Tabela z podzadaniami. Opcjonalnie można podać ile punktów jest za zadanie. -% \ocenRow{point}{text} % Tworzy pojedyńczy wiersz tabeli opisujący podzadanie, o danej ilości punktów i z danym ograniczeniem. +\contest{SKN 2023/24} +\day{} +\round{17} +\group{A} +\Memory[MB]{256} +\Time[s]{2,4} \start{} Lorem ipsum dolor ssist amdet, consectetur adipiscing elit. Donec rhoncus torstor vitae lorem luctus maximus. Donec bibendum, dui eget diganissim viverra, lectus leo scelerisque metus, ut sagittis ligula nisl ut purus. -Etiam imperdiet luctus leo, et molestie diam congue auctor. Sed sapien eros, imperdiet in fermentum $\tc{a}$, faucibus ut ex cośtam. -% pusta linijka, by zacząć akapit od wcięcia +Etiam imperdiet luctus leo, et molestie diam congue auctor. +Sed sapien eros, imperdiet in fermentum $\tc{a}$, faucibus ut ex cośtam cośtam. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec rhoncus tortor vitae lorem luctus maximus. \tSection{Wejście} -W pierwszym wierszu standardowego wejścia znajduje się jedna liczba $\tc{n}$ ($1\leq \tc{n}\leq 1\ 000\ 000$), oznaczająca parametr z~wejścia. +W pierwszym wierszu standardowego wejścia znajduje się jedna liczba $\tc{n}$ ($1\leq \tc{n}\leq 10^6$), +oznaczająca parametr z~wejścia. \tSection{Wyjście} @@ -54,18 +31,19 @@ Donec rhoncus torstor vitae lorem luctus maximus. Donec bibendum, dui eget diganissim viverra, lectus leo scelerisque metus, ut sagittis ligula nisl ut purus. -W pierwszym wierszu wyjścia powinna znajdować się jedna liczba $\tc{z}$, wynik z zadania. +W pierwszym wierszu wyjścia powinna znajdować się jedna +liczbaq \tc{liczbaq qwerty}, $\tc{z_1}, \tc{q}, \tc{nq^{a+b}} nq^{a+b}$, wynik z zadania. \tSection{Przykład} -\makestandardexample{a} % abc0.in -> {}, abc0x.in -> {x} -\makecompactexample{a} % testy muszą być wygenerowane więc użyj st-make ingen outgen +\example[v]{a} +\example[h]{a} +\example{a} \tSection{Wyjaśnienie przykładów} \tSmallSection{Przykład 1} -Lorem ipsum dolor ssist amdet, consectetur adipiscing elit. Lorem ipsum dolor ssist amdet, consectetur adipiscing elit. Donec rhoncus torstor vitae lorem luctus maximus. Donec bibendum, dui eget diganissim viverra, lectus leo scelerisque metus, ut sagittis ligula nisl ut purus. @@ -73,14 +51,12 @@ \tSmallSection{Przykład 2} Lorem ipsum dolor ssist amdet, consectetur adipiscing elit. -Lorem ipsum dolor ssist amdet, consectetur adipiscing elit. - -\tSection{Testy ocen:} +\tSection{Testy ocen} \ocen{ \testOcen{1ocen}{$\tc{n} = 69$, Założenie jakieś} - \testOcen{2ocen}{$\tc{n} = 420$, założenie jakieś 2} + \testOcen{0b}{$\tc{n} = 420$, założenie jakieś 2} } \tSection{Ocenianie} @@ -88,10 +64,37 @@ Zestaw testów dzieli się na następujące podzadania. Testy do każdego podzadania składają się z jednej lub większej liczby osobnych grup testów. -\ocenTable{ - \ocenRow{30}{$\tc{n} \leq 100$} - \ocenRow{20}{$\tc{n} \leq 1000$ Dwie\\ Linie} - \ocenRow{50}{Bez ograniczeń} +\subtaskTable{ + \subtask{30}{$\tc{n} \leq 100$} + \subtask{20}{$\tc{n} \leq 1000$ Dwie\\ Linie} + \subtask{50}{Bez ograniczeń} } \finish{} + +%%%%%%%%%%%%%%%%%% +% Przydatne komendy: +% \pagebreak % komenda zaczynająca nową stronę pdfa +% ~ % słowa oddzielone '~' zamiast ' ' w~taki sposób będą zawsze koło siebie +% pusta linijka rozpoczyna nowy akapit. +% \footnote{text} tworzy adnotację na dole strony do miejsca w którym użyto. +% $text_mat$ % pozwala na pisanie wyrażeń matematycznych +% Dokumentacja: +% https://www.overleaf.com/learn + +%%%%%%%%%%%%%%%%%% +% Komendy talentowe: +% \start{} % Rozpoczyna treść, musi być na samym początku treści zadania. +% \finish{} % Kończy treść, musi być na samym końcu treści zadania. +% \tSection{text} % Nagłówek w stylu talentu. +% \tCustomSection{text}{xpt} % Nagłówek w stylu talentu, z możliwością ustawienia odstępu 'x' od poprzedniego akapitu. +% \tSmallSection{text} % Mały nagłówek w stylu talentu. +% \tc{text} % Styl używany do oznaczania zmiennych. +% \example[h/v]{id} % wstawia test przykłądowy "zad0{id}" z paczki. +% abc0.in -> example{}, abc0xy.in -> example{xy}, abc0x.in -> example[v]{x}. +% Opcjonalnie można dodać położenie testów, 'h' - horyzontalnie, 'v' - pionowo, domyślnie jest h. +% Przy kompilacji testy są automatycznie czytane z folderów ./in i ./out +% \ocen{ \testOcen{}{} } % Lista wszystkich testów ocen. +% \testOcen{test}{text} % Pojedyńczy test ocen z opisem. Podajesz nazwe testu (1ocen, 0c, 2ocen) i opis +% \subtaskTable[point]{ subtask{}{} } % Tabela z podzadaniami. Opcjonalnie można podać ile punktów jest za zadanie. +% \subtask{point}{text} % Tworzy pojedyńczy wiersz tabeli opisujący podzadanie, o danej ilości punktów i z danym ograniczeniem. diff --git a/example_package/doc/talentTex.cls b/example_package/doc/talentTex.cls index a5696784..15bdf628 100644 --- a/example_package/doc/talentTex.cls +++ b/example_package/doc/talentTex.cls @@ -13,8 +13,8 @@ % Formalności %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \NeedsTeXFormat{LaTeX2e} -\def\sinolVersion{0.0.6} -\ProvidesClass{talentTex}[Stowarzyszenie Talent \sinolVersion] +\def\codeVersion{0.0.6} +\ProvidesClass{talentTex}[Stowarzyszenie Talent \codeVersion] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Include pakietów @@ -28,13 +28,14 @@ \RequirePackage{xcolor} \RequirePackage{xstring} \RequirePackage{xparse} +\RequirePackage{environ} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Pliki w paczce %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\def\sinolTestInPath{../in} -\def\sinolTestOutPath{../out} -\def\sinolContestLogoPath{logo} +\def\pathTestIn{../in} +\def\pathTestOut{../out} +\def\pathContestLogo{logo.jpg} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Kolory @@ -48,66 +49,45 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % zmienne logiczne i liczniki %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\newif\ifsinolerrors \sinolerrorsfalse % bledy -\newif\ifkonkursdefed \konkursdefedfalse % czy podano konkurs -\newif\ifdaydefed \daydefedfalse % czy podano dzień -\newif\ifgroupdefed \groupdefedfalse % czy podano grupę -\newif\ifMemorydefed \Memorydefedfalse % czy podano dostępną pamięć -\newif\iftimedefed \timedefedfalse % czy podano czas działania +\newif\ifDocumentHasSet \DocumentHasSetfalse % czy samodzielnie użytp \begin{document} +\newif\ifUseExample \UseExamplefalse % czy stworzono przykład +\newif\ifContestDefed \ContestDefedfalse % czy podano konkurs +\newif\ifDayDefed \DayDefedfalse % czy podano dzień +\newif\ifRoundDefed \RoundDefedfalse % czy podano runde +\newif\ifGroupDefed \GroupDefedfalse % czy podano grupę +\newif\ifMemoryDefed \MemoryDefedfalse % czy podano dostępną pamięć +\newif\ifTimeDefed \TimeDefedfalse % czy podano czas działania -\newcounter{subtestsCounter} % licznik podzadań w tabelce -\newcounter{sumPointSubtask} % suma punktów do zdobycia w zadaniu +\newcounter{subtasksCounter} % licznik podzadań w tabelce +\newcounter{subtasksPiontSum} % suma punktów do zdobycia w zadaniu %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Obsługa plików: inf, err -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\chardef\inffile=15 % plik wejsciowy (np. testy) -\chardef\errfile=14 % plik wyjsciowy -\chardef\tmpfile=13 % plik tymczasowy - -% \infoutput{} --- wyprowadza do pliku informacyjnego -\newcommand{\infoutput}[1]{% - \immediate\write\inffile{#1} -} - -% \erroutput{} --- wyprowadza do pliku z bledami -\newcommand{\erroutput}[1]{% - \immediate\write\errfile{#1} - \global\sinolerrorstrue -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Czynności przed i po - otwiera pliki inf err +% Czynności przed i po dokumencie %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \AtBeginDocument{% - \immediate\openout\inffile \jobname.inf - \immediate\openout\errfile \jobname.err + \DocumentHasSettrue% + \ifundef{taskID}{% + \errmessage{brak id (\string\id{})}% + }{} + \ifundef{taskTitle}{% + \errmessage{brak title (\string\title{})}% + }{} } -\AtEndDocument{% - \ifsinolerrors - \immediate\write16{SINOL: znaleziono bledy (zob. \jobname.err) !} - \fi -} +\AtEndDocument{} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Definicje +% Definicje techniczne %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\def\ucase#1{\expandafter\uppercase\expandafter{#1}} -\def\lcase#1{\expandafter\lowercase\expandafter{#1}} - -\def\?#1{ - [[#1]] -} +\def\?#1{[[#1]]} \def\ifundef#1#2#3{% - \expandafter% - \ifx\csname#1\endcsname\relax% - #2% - \else% + \ifcsname#1\endcsname% #3% + \else% + #2% \fi% } @@ -124,25 +104,26 @@ } \newcommand{\iffileexists}[3]{% - \immediate\openin\tmpfile#1\par% - \ifeof\tmpfile% - \immediate\closein\tmpfile% + \immediate\openin\@inputcheck=#1 + \ifeof\@inputcheck% + \immediate\closein\@inputcheck% #3% \else% - \immediate\closein\tmpfile% + \immediate\closein\@inputcheck% #2% - \fi% + \fi } \NewDocumentCommand{\twocol}{ O{0.5} O{0} O{t} m m }{% - \noindent% - \begin{minipage}[#3]{#1\textwidth}% - #4% - \end{minipage}% - \hfill% - \begin{minipage}[#3]{\dimexpr\textwidth-#1\textwidth-#2\textwidth}% - #5% - \end{minipage}% + \begin{center}% + \begin{minipage}[#3]{#1\textwidth}% + #4% + \end{minipage}% + \hfill% + \begin{minipage}[#3]{\dimexpr\textwidth-#1\textwidth-#2\textwidth}% + #5% + \end{minipage}% + \end{center}% } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -153,84 +134,85 @@ \vbox to 0pt{ \vss \hbox{ - \includegraphics[height=1.143cm,bb=0 0 900 300]{\sinolContestLogoPath}% + \includegraphics[height=1.143cm,bb=0 0 900 300]{\pathContestLogo}% } } } } -\def\tophugetitle{% - \begin{minipage}[t]{0.75\textwidth} - \color{talentBlue} - \fontfamily{ptm} - \huge - \textbf{\sinolTitle} - \end{minipage} +\def\topHugeTitle{% + \begin{minipage}[t]{0.75\textwidth}% + \huge% + \fontfamily{ptm}% + \color{talentBlue}% + \textbf{\taskTitle}% + \end{minipage}% } -\def\topinformationbar{} +\def\topInformationBarText{} -% uruchamiane po przeczytaniu deklaracji -\newcommand{\concludedecls}{ - % Sprawdzanie istnienia definicji - \ifundef{ID}{ - \erroutput{brak 3-literowego identyfikatora (klauzula \string\id)} - \def\ID{XXX} - }{} - \ifundef{sinolTitle}{ - \erroutput{brak tytułu (klauzula \string\title)} - \def\sinolTitle{\?{brak tytułu}} - }{} +\def\topInformationBar{ + \hbox{% + \bf% + \fontfamily{ptm}% + \color{talentBlue}% + \topInformationBarText% + \hfill% + } } -% uruchamiane po przeczytaniu tekstu -\newcommand{\concludetext}{} - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Przypisanie stałych przez użytkownika %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\id}[1]{ - \edef\ID{#1} + \edef\taskID{#1} } \renewcommand{\title}[1]{ - \def\sinolTitle{#1} + \edef\taskTitle{#1} } -\newcommand{\konkurs}[1]{ - \def\sinolKonkurs{#1} - \global\konkursdefedtrue +\newcommand{\contest}[1]{ + \def\taskContest{#1} + \global\ContestDefedtrue } \renewcommand{\day}[1]{ - \def\sinolDay{#1} - \global\daydefedtrue + \def\taskDay{#1} + \global\DayDefedtrue +} + +\newcommand{\round}[1]{ + \def\taskRound{#1} + \global\RoundDefedtrue } \newcommand{\group}[1]{ - \def\sinolGroup{#1} - \global\groupdefedtrue + \def\taskGroup{#1} + \global\GroupDefedtrue } -\newcommand{\Memory}[1]{ - \def\sinolMemory{#1} - \global\Memorydefedtrue +\newcommand{\Memory}[2][MB]{ + \def\taskMemory{#2} + \def\taskMemoryUnit{#2\,#1} + \global\MemoryDefedtrue } -\newcommand{\Time}[1]{ - \def\sinolTime{#1} - \global\timedefedtrue +\newcommand{\Time}[2][s]{ + \def\taskTime{#2} + \def\taskTimeUnit{#2\,#1} + \global\TimeDefedtrue } \newcommand{\iomode}[1]{ \ifeq{#1}{files}{ - \gdef\sinolExampleInputText{Dla pliku wejściowego {\ttfamily\ID.in}:} - \gdef\sinolExampleOutputText{poprawnym wynikiem jest plik wyjściowy {\ttfamily\ID.out}:} + \gdef\exampleInputText{Dla pliku wejściowego {\ttfamily\taskID.in}:} + \gdef\exampleOutputText{poprawnym wynikiem jest plik wyjściowy {\ttfamily\taskID.out}:} } \ifeq{#1}{stdin}{ - \gdef\sinolExampleInputText{{\color{talentBlue}\bf \sinolInputText:}} - \gdef\sinolExampleOutputText{{\color{talentBlue}\bf \sinolOutputText:}} + \gdef\exampleInputText{{\color{talentBlue}\bf\textInput:}} + \gdef\exampleOutputText{{\color{talentBlue}\bf\textOutput:}} } } \iomode{stdin} @@ -238,72 +220,58 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Nazwy wyświetlane (zmiana języka, narazie tu ręcznie) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\def\sinolSNameOpis{Opis rozwiązania} -\def\sinolSNameOpracowanie{Opracowanie} - -\def\sinolTitleZadanie{Zadanie} -\def\sinolGroupText{Grupa} -\def\sinolDayText{} -\def\sinolKonkursText{} -\def\sinolMemoryText{Pamięć} -\def\sinolTimeText{Czas} -\def\sinolInputText{Wejście} -\def\sinolOutputText{Wyjście} +\def\textSolutionDescription{Opis rozwiązania} +\def\textDocumentation{Opracowanie} +\def\textGroup{Grupa} +\def\textDay{Dzień} +\def\textRound{Runda} +\def\textContest{Konkurs} +\def\textMemory{Pamięć} +\def\textTime{Czas} +\def\textInput{Wejście} +\def\textOutput{Wyjście} +\def\textPoints{Punkty} +\def\textTestCasess{Ograniczenia} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Opcje talentTex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \DeclareOption{zad}{ - \renewcommand{\topinformationbar}{% - \hbox{% - \bf% - \fontfamily{ptm}% - \color{talentBlue}% - \ifkonkursdefed - \ifneq{\sinolKonkurs}{}{\sinolKonkursText\sinolKonkurs.\hspace{5pt}}% - \fi - \ifdaydefed - \ifneq{\sinolDay}{}{\sinolDayText\sinolDay.\hspace{5pt}}% - \fi - \ifgroupdefed - \ifneq{\sinolGroup}{}{\sinolGroupText:\,\sinolGroup.\hspace{5pt}}% - \fi - \ifMemorydefed - \ifneq{\sinolMemory}{}{\sinolMemoryText:\,\sinolMemory\,MB.\hspace{5pt}}% - \fi - \iftimedefed - \ifneq{\sinolTime}{}{\sinolTimeText:\,\sinolTime\,s.\hspace{5pt}}% - \fi - \hfill - } + \renewcommand{\topInformationBarText}{% + \ifContestDefed + \ifneq{\taskContest}{}{\taskContest.\hspace{5pt}}% + \fi + \ifDayDefed + \ifneq{\taskDay}{}{\textDay:\,\taskDay.\hspace{5pt}}% + \fi + \ifRoundDefed + \ifneq{\taskRound}{}{\textRound:\,\taskRound.\hspace{5pt}}% + \fi + \ifGroupDefed + \ifneq{\taskGroup}{}{\textGroup:\,\taskGroup.\hspace{5pt}}% + \fi + \ifMemoryDefed + \ifneq{\taskMemory}{}{\textMemory:\,\taskMemoryUnit.\hspace{5pt}}% + \fi + \ifTimeDefed + \ifneq{\taskTime}{}{\textTime:\,\taskTimeUnit.\hspace{5pt}}% + \fi } } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \DeclareOption{opi}{ - \renewcommand{\topinformationbar}{ - \hbox{% - \bf% - \fontfamily{ptm}% - \color{talentBlue}% - \Large% - \sinolSNameOpis% - \hfill% - } + \renewcommand{\topInformationBarText}{ + \Large% + \textSolutionDescription% } } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \DeclareOption{opr}{ - \renewcommand{\topinformationbar}{ - \hbox{% - \bf% - \fontfamily{ptm}% - \color{talentBlue}% - \Large% - \sinolSNameOpracowanie% - \hfill% - } + \renewcommand{\topInformationBarText}{ + \Large% + \textDocumentation% } } @@ -326,19 +294,18 @@ \renewcommand{\footrulewidth}{0.4pt} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Wygląd dokumentu +% Wygląd stopki dokumentu %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \pagestyle{fancy} \lfoot{Stowarzyszenie Talent (talent.edu.pl)} -\rfoot{\begin{minipage}[t]{0.45\textwidth}\raggedleft\sinolTitle\ - \ID\end{minipage}} +\rfoot{\begin{minipage}[t]{0.45\textwidth}\raggedleft\taskTitle\ - \taskID\end{minipage}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Definicja przestrzeni dokumentu: 'tasktext' \newenvironment{tasktext}{ - \concludedecls % Tytuł \leftline{% - \tophugetitle% + \topHugeTitle% } % Logo \rightline{ @@ -351,13 +318,9 @@ \hrule height 2pt \relax } \smallskip - \topinformationbar + \topInformationBar \bigskip -}{ - \concludetext - \closeout\inffile - \closeout\errfile -} +}{} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Komendy dostępne w klasie talentTex @@ -371,52 +334,52 @@ } \newcommand{\exampleinput}[1]{ - \noindent\sinolExampleInputText - \iffileexists{\sinolTestInPath/\ID0#1.in}{ - \includefile{\sinolTestInPath/\ID0#1.in} + \noindent\exampleInputText\par + \iffileexists{\pathTestIn/\taskID0#1.in}{ + \includefile{\pathTestIn/\taskID0#1.in} }{ - \smallskip - \?{brak pliku {\ttfamily\ID0#1.in}}\par - \erroutput{brak pliku '\ID0#1.in' w scieżce '\sinolTestInPath'} - \smallskip - } + \?{brak pliku {\ttfamily\pathTestIn/\taskID0#1.in}} + }\par } \newcommand{\exampleoutput}[1]{ - \noindent\sinolExampleOutputText - \iffileexists{\sinolTestOutPath/\ID0#1.out}{ - \includefile{\sinolTestOutPath/\ID0#1.out} + \noindent\exampleOutputText\par + \iffileexists{\pathTestOut/\taskID0#1.out}{ + \includefile{\pathTestOut/\taskID0#1.out} }{ - \smallskip - \?{brak pliku {\ttfamily\ID0#1.out}}\par - \erroutput{brak pliku '\ID0#1.out' w scieżce '\sinolTestOutPath'} - \smallskip - } + \?{brak pliku {\ttfamily\pathTestOut/\taskID0#1.out}} + }\par +} + +\newcommand{\makeVExample}[1]{% + \noindent% + \begin{minipage}{\textwidth}% + \exampleinput{#1}% + \exampleoutput{#1}% + \end{minipage}% } -\newcommand{\makestandardexample}[1]{% - \vspace{5pt} - \exampleinput{#1}% - \exampleoutput{#1}% +\newcommand{\makeHExample}[1]{% + \twocol{\exampleinput{#1}}{\exampleoutput{#1}}% } -\newcommand{\makecompactexample}[1]{% - \vspace{-5pt}% - \begin{center}% - \twocol{\exampleinput{#1}}{\exampleoutput{#1}}% - \end{center}% +\newcommand{\example}[2][h]{% + \ifUseExample\vspace{5pt}\else\UseExampletrue\fi + \vspace{2pt} + \ifeq{#1}{h}{\makeHExample{#2}}% + \ifeq{#1}{v}{\makeVExample{#2}}% } % Początek i koniec dokumentu -\newcommand{\start}{ - \begin{document} - \begin{tasktext} +\newcommand{\start}{% + \ifDocumentHasSet\else\begin{document}\DocumentHasSetfalse\fi% + \begin{tasktext}% } -\newcommand{\finish}{ - \end{tasktext} - \end{document} +\newcommand{\finish}{% + \end{tasktext}% + \ifDocumentHasSet\else\end{document}\fi% } % obsługa zdjeć @@ -459,86 +422,74 @@ % Sekcje w dokumencie -\newcommand{\tSection}[1]{ - \tCustomSection{#1}{15pt} +\newcommand{\tSection}[1]{% + \tCustomSection{#1}{15pt}% } -\newcommand{\tsection}[1]{ - \tSection{#1} +\newcommand{\tsection}[1]{% + \tSection{#1}% } \newcommand{\tSmallSection}[1]{ - \par\vspace{5pt} - { - \setlength\parindent{0pt} - \fontfamily{ptm} - \color{talentBlue} - \textbf{#1} - } - \par\vspace{2pt} + \par\vspace{5pt}% + \noindent% + \tc{#1}% + \par\vspace{2pt}% } -\newcommand{\tCustomSection}[2]{ - \par\vspace{#2} - { - \setlength\parindent{0pt} - \fontfamily{ptm} - \color{talentBlue} - \Large - \textbf{#1} - } - \par\vspace{2pt} +\newcommand{\tCustomSection}[2]{% + \par\vspace{#2}% + \noindent% + {\Large\tc{#1}}% + \par\vspace{2pt}% } % Talentowy kolor do zaznaczania zmiennych \newcommand{\tc}[1]{% - \ifmmode - \StrLen{#1}[\textLength] - \ifnum\textLength=1 - \textcolor{talentBlue}{\textbf{\fontfamily{ptm}\selectfont #1}}% - \else - \textcolor{talentBlue}{\mathbf{{\fontfamily{ptm}\selectfont #1}}}% - \fi - \else - \textcolor{talentBlue}{\textbf{\fontfamily{ptm}\selectfont #1}}% - \fi + \ifmmode% + \StrLen{#1}[\@tmpStrLen]% + \ifnum\@tmpStrLen=1% + {\fontfamily{ptm}\textcolor{talentBlue}{\textbf{#1}}}% + \else% + \textcolor{talentBlue}{\mathbf{#1}}% + \fi% + \else% + {\fontfamily{ptm}\textcolor{talentBlue}{\textbf{#1}}}% + \fi% } % Testy ocen -\newcommand{\ocen}[1]{ - \begin{enumerate} - \setlength\itemindent{-13pt} - \fontfamily{ptm} - #1 - \end{enumerate} +\newcommand{\ocen}[1]{% + \begin{description}% + \setlength{\itemsep}{2pt}% + #1% + \end{description}% } -\newcommand{\testOcen}[2]{ - \item[] \textbf{\color{talentBlue}\ID#1: \ }{#2} +\newcommand{\testOcen}[2]{% + \item[]\tc{\taskID#1:}\hspace{5pt}#2% } % Tabelka z podzadaniami -\newcommand{\ocenTable}[2][100]{ - \setcounter{subtestsCounter}{0} - \setcounter{sumPointSubtask}{0} +\newcommand{\subtaskTable}[2][100]{ + \setcounter{subtasksCounter}{0} + \setcounter{subtasksPiontSum}{0} \begin{center} - \begin{tabular} - {|c|l|c|} \hline - \tc{Nr} & \tc{Ograniczenia} & \tc{Punkty} \\ \hline + \begin{tabular}{|c|l|c|} \hline + \tc{Nr} & \tc{\textTestCasess} & \tc{\textPoints} \\ \hline #2 \end{tabular} \end{center} - \ifneq{\arabic{sumPointSubtask}}{#1}{% - Uwaga! W tyma zadaniu suma punktów do zdobycia wynosi \arabic{sumPointSubtask} punktów.% - \erroutput{Suma punktow jest niewlasciwa}% + \ifneq{\arabic{subtasksPiontSum}}{#1}{% + \errmessage{Wrong total points (\string\subtaskTable[point]{...})}% } } -\newcommand{\ocenRow}[2]{ - \stepcounter{subtestsCounter}% - \addtocounter{sumPointSubtask}{#1}% - \arabic{subtestsCounter} & \begin{tabular}{@{}l@{}} #2 \end{tabular} & #1 \\ \hline +\newcommand{\subtask}[2]{ + \stepcounter{subtasksCounter}% + \addtocounter{subtasksPiontSum}{#1}% + \arabic{subtasksCounter} & \begin{tabular}{@{}l@{}} #2 \end{tabular} & #1 \\ \hline } From 32bead8183b29a4c66bc25cb0e3b9fee2460a08d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ro=C5=BCek?= Date: Mon, 20 May 2024 21:52:10 +0200 Subject: [PATCH 07/15] kolejne zmiany --- example_package/README.md | 6 +- example_package/doc/abcopi.pdf | Bin 149153 -> 149149 bytes example_package/doc/abcopr.pdf | Bin 147513 -> 147514 bytes example_package/doc/abczad.pdf | Bin 259751 -> 241466 bytes example_package/doc/abczad.tex | 16 ++- example_package/doc/talentTex.cls | 179 +++++++++++------------------- 6 files changed, 81 insertions(+), 120 deletions(-) diff --git a/example_package/README.md b/example_package/README.md index 9ed7a8cf..c48eaf5f 100644 --- a/example_package/README.md +++ b/example_package/README.md @@ -82,7 +82,6 @@ Można też `\timg{img1.jpg}{opis}`, `\bimg{img1.jpg}{opis}`. Przy kompilacji testy są automatycznie czytane z folderów ./in i ./out. Należy się upewnić, że są one wygenerowane w momencie kompilacji treści. Te polecenia również tworzą nagłówek "Wejście" i "Wyjście". - - `\ocen{\testOcen{}{} ...}` - Lista wszystkich testów ocen. - `\testOcen{nazwa_testu}{opis_testu}` - Pojedynczy test ocen z opisem. - `\subtaskTable{}` - Tworzy tabelę z podzadaniami. @@ -90,6 +89,11 @@ Można też `\timg{img1.jpg}{opis}`, `\bimg{img1.jpg}{opis}`. Opcjonalnie można podać ile punktów jest za zadanie `\subtaskTable[100]{}`. Automatycznie tworzy nagłówek (Nr & Ograniczenia & Punkty). - `\subtask{punkty}{ograniczenie}` - Tworzy pojedynczy wiersz tabeli opisujący podzadanie z podaną ilością punktów i danym ograniczeniem. +- `\twocol[szerokość1][przerwa][t/b/c]{kolumna1}{kolumna2}` - Tworzy 2 kolumny z zawartością o szerokościach 0.5 0.5. + Można opcjonalnie podać ułamek szerokości pierwszej kolumny (0.5), ułamek szerokości przerwy (0), wybrać linię bazową połączenia (t). +- `\imgt[szerokość]{plik}{opis}` - Wstawia zdjęcie z opisem u góry. Można opcjonalnie zmienić szerokość zdjęcia (0.8). +- `\imgb[szerokość]{plik}{opis}` - Wstawia zdjęcie z opisem na dole. Można opcjonalnie zmienić szerokość zdjęcia (0.8). +- `\img{plik}` % `\img[szerokość][opis][t/b]{plik}` - Wstawia zdjęcie. Można opcjonalnie zmienić szerokość zdjęcia (0.8). ## **prog** diff --git a/example_package/doc/abcopi.pdf b/example_package/doc/abcopi.pdf index a729510b8cc065fc53b748b9fc1a004f8bcdc897..3543505881b44daf64206eac615fb3be8437b4d8 100644 GIT binary patch delta 792 zcmZ43%Q?4~bAl49simcY!t@0f8P)5jhIr@CF%a1IS-Zw0=wnq*^5g8QYFT=6 zPH0_{BA;WnChWs&>*mHhvsG8PIIHj7uQ67*DLna&)ui`+nj#geKbT}r(=1asy!6xY z(l3VnV&S)pR9m-drT$djT*CUyW|!sRPm}I`%x~Wpt-rLy_2v7UM#O!a$)8bxo9TVOgD9l?Do3zl{Yf3xrGJaMJ6=-RI%HWCYYkIgmAH%_cqf42YK>+1*JDYo^P|6Qqe@$*s^ z$>nh$7uCD}+VAX=o3vp~_`*B6TjOl^`)=D2G_SI;ahd~@U}^-Dl)w0*x^KsA7oDou z8nW`%)$@gmwm!?HdZ z)-=D|D!a$rG`3!*?d$W0O;rotF|_#S9;ghSdUxH7i57h?=gc!{-xu{&-tC32MR&Vm zxxlr;EN73Ky}gQh$7csh2$kseJ+@eM{~Aj~@6XH%@6-kEO9K@%v_$sJ^@^#psShi? z!}pkV$t<%M@8UKI`I>KeWtY7CV4=0{`V{H1?rLkDTeAiGW^NIUlskOrjv)IbF^_}3 zk8RH`K786>#y+PU#tgZ1kJHPfPUJP`X$IdsXB8OeQ7Q79S4zQePT;J^FQ+zt40lr2 zcRo4sj)BXcxo2v8_fK~8cvg8qZH->$FJ9lTI(M6wF|{vaV%)xriAlhg!^ptM(A3b# zZ2CTXCTTct`$K!CGps>IX0DEomgeSWriNxt#^!Fu#>Q^O=FV=WhK7y?&Te)JHb9;D zmBe!C`=sWjmt-hd7%M>2_H;EjCPD7N*$%5WHm{vyd8KW-vm28kOUEV-lj#+1Oo|+) LT&k+B{%%|VKSoy+ delta 794 zcmbQ+%ekR$bCg==rQd|k@Fd$|RB zl84uy1BDxOeteyqDE`V~)fKMJyOs5y&oZd{w@kj>vftWr@*!!?<>%&3e$vsF{j~q~ zlgCCg?`k-!q#rvmM@PQ%;A(|y+Ru8FPfxmYG5`3!+iNVgyWU*Vbh&tXn$hzuZ*K{& zYOcQ`p1N^;_m?`$`3q{|)R?@59k+ZrqvgA%_)LWRwcSrt6Pu#nv-fwuPWW`rsG)7s zmuWLE8vWiR{3LjCO?$iX(;ZC;YD-SY&O0P!{N=Z}aLHez#8Xo~_C&iHowW&IdUMKWk0%a=yd*xqh0ldT7GG*9+@--^c|&%(y&1 zTf{cD@ZjY;-ceuPd;Bl&Sa8;4%2%T)(IK`QG#6OcF5WP zzRVb48MQV=@B7!{S(-~TqTha8^fECzzv%VV1*4?_{pV6E|{u^@}6rWWduv~vCFW$#Pr?n)kcUE%z+TZ+w zRl?^UC7zIN@trkWAgFAk;epgl;Z{Y*>xV4-1plscJ7Dze_`|hJ#B4RT@;D|h{O~s9 z&9BElH?JzR-jc2qzQeKn`s7Z(9muwYAQz*@DMnd`=yxI?k!b zz4#rOQI!V*0yliGD9TxLb;ind<% z)_$~}#XYWV(!@IkEob4xZm`ldYF^CLzL<$|`(h?00b343 zOG66-14HBKyX~2z;k@nl?3vE62AaCL8XKBhxVX7FIT<;co46V{TR1uzS(=y{nK_y` z*(ul<5>gV&rSFrPmtK;gU}2&FN!`k+QyV>gFM)u<7=0Ool8yS{y#p ROWc?gIV`wTRbBnvxBw9dX?y?x diff --git a/example_package/doc/abcopr.pdf b/example_package/doc/abcopr.pdf index 3bab96a382e15c82a4c10a353c3d47808bab56db..439f420e13c4c646449e386c405676a488d5f891 100644 GIT binary patch delta 770 zcmdnlz`3h|bAk$^`E&;(Ce8Y#A>R474S4qb4u7G+yjd$~lic;h=!r4kGRm^5J|u1b zJnKmAqXQf2|7zSmc_)W?8=GB#nr7{j9{8L-%@PW-3b=qbvyg+ z=`C8#f68FWAqk(GkLJxRU`eyx8F^OBa`)5uWwF0^Ou3X+DcbzRS6Y3BSKRimiuEhn z_v@YBoICSqdG}AvDc`#}m`s?LiE=Rj~Xm1}sQ?`=r$QjKq=)tpKkCS?tO zcCFu>b}8s}QSdeI)R1D$waFjTZ@;Zx?6>XClSDkHe>ZCqA< zM}|Filj-h-lJDDvY(F<0GMGFw#I0i2wf2JGa6_wmM=~ni!dpJ+`88}WxzX-yp0a+* zqwX7;^VW9fept_bH)z==yO%D4>z=TG+@i*Or1RSE~RWME)!YGLkT;Am!HWMOJn7XT@^Pd)$u delta 769 zcmdnhz`3)5bAk$^*>p!ECe8Y_A>PHa4FvXm)-Dk-cAXgJ)StaPS8d-H!RI2+9U7OI zn5oR*Vcx$_`+&&qw?5M4B@vn7m$v_Y+dP^5(8<&T^%Lhb7DxrGx)G(Y)qIZD{us9W z>j#grujDLPW_l#0)_===uB16BVbPn;ozVRo^8N1Pw&KYtp&AysyA7IVTwazPSHGvq z=BwwlDXv2I)`oA^et*63!vz-s);`IV9UG@*CVTGUp2w`VqcCsB#v6QU>AcR@|47bB z{FShC$1ToJ>$vP5Kk|vv`zR=^ko0<~K@|VTe+OFv?a$k}23a5LRhgK?r+M)GUPsBZ z3>^vQJcFJ;x##@Xc&G6R#ZMW6zZxqS&ItKYpLcN2!!u1XGynexQGa>DvS_w^;qUMB z7MKP7*xjr-U$G!+>HSq}^o#z#RjPlU(2)8~VzK_JyMd*9W@;_3J9%o=rwErLla6}* z=9&5OBik0K96_amheva6FF%?c+ha2&!0?&uY3CD5m*0GU>igG+@o%M{eA?ZA?IN$Z zO^@samAO0C)jKCnoV(3p?}hm8*Q}Myb zOMK$x?S9Wwyw`0!*}l%@myEOdmqnUOk3|~z9)7)y>)<6b7H46VuqodXRWjOV@4f#e z`Ad-3F21!(PMYce{hM|rx8ls~$m2!-RjL#HqfI&tjJQ->UmobleCNbd_pa(h-k-%E zFVuZolzBy_tK7n6vB$n7J{@0w_D}q24>LTQ7c#XkWMbUDkclbLjKk2<(89pL&}cfB zC6hFqw_VqgNrKJU#l*?d+`!n#)X34u#KP6Y#l+3r$iT_M(#68a(b>_+PQiwdlIb1x vOs@Q=l(qvO2B)W& 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 z zoIdZJeUVLcc<)5()vv}zzf+u7)E~dR908Yx-qz-un};%r=*EccZVPgG0wRr-xq>A9 ze|Wg&bklCL9lL15gm#jK__~}+`E6srY(}U(A%E2E_2d(*)+K;$zntnyRN=G~d1?}=Bq_{zZmV*Mv8(-Yv~GnI+N$tb^Ue>l1MAOX5pg_D)2h zG@E%OF+J=2h`q0MrFmik9^m*giH%;VWqT{Ef8TC5d(!PXhoD2@g6yJVU={W>>9UU}de-nsj zJMK!uuLR_nqnfuE&pYxG;(E_UxqX6U3)0BLr7-F&4GG^Mi8Wu%wBWqh^n zi;&J3vYfe)iTLh+CACXcUM-hNw~c`zK_N885fz$Y$3_*o5GF^ARGntTPI3@S#MnP3 zi)?t8V_+jsL^Me#o~!O_t-?Sqe{#H%oj7>{Z;gn8Fki**?mrYD9rs@4FUKzuUdlep zzu@Pn zh1T?{6r~SCBFq`w#;{w_nP)A%o@qFbCCuH#gR$9=R$Y$r_S+q9+4!^Ge_N|b0|uS0 z9fJJ5t! z@DiB(#xKD0F*>tUb8mo#LaI?VMXk|1k?9FtMMFA(mAeC(Q2S-xJgZ2zjIF-Txh3us zoEUp_Zlzt6m!_+3jfZO}fBW0q5>wq{5~i}$F|(vs`-^BZ)d+P=9UL96WK&}^9jkbC z>UepY*Q^#KsF2j7@Jq>!J`~K|| zilD*(u2ePG2b!_Zrc2n-OyMD68It@z?9~SFbDz#qT4fh=v50$69xtjfRNXiPPtte1 zLG~=CE(9283@gbwe+hfztzEi|V^3A~bwt@MNxy3hZ>)dYbq-^DJXMeqX*04o!S#2-g zM+fl)@VK$ZyP-`siA>tkJi+)`;Wk*G)_(#xexRozJ|xWke`I6h?X?J-#P-zgGzMWh zV#ufjs1G$KKmWOLm0_LJv`g0a9qv7$=81wMH%xBfUx5+=l417>&Ft75=G&gvI3;DgvL;dwdk)dix9x` zgk|FkihFFJXzZaN@++@qIl~i(PAv>QMZ%}TBG+UnZjWA?KnUJrrO(|u z84pq>)}t4&F>W5sd>b{+pavIZjD&nOo%sp}=+=zXp_R#}m{bG?7V6Ceo+W96F|*$W ztPJ4M+(2Ra1I2W;v3U!|Bu&@WonDsP@m)6-H^Xil9c5n$$ArkfC(7ivF7=XPp-vk) zx}OAHH&&Z%FNXlryNVXuO&=+Xe)omfrLq1WFHB-Em-YJrDG)U`3NK7$ZfA68G9WcM zIX0KE7y=XoHaRmfm*G+ZDSuW6R8w8ErAZ0BNJktN7$Nr)6!38-mop#TJfWu(AhX@Ib>6%y|Q|6>IR+rY6nB!332^xtqzEF6j_ z+O(i}qMI=W4K(og0YYSe5P2ntf)W@Elm>$p|K*6mDgm{i0Z4bCu@uk%gNEY(!kQT0 zU@X$Z6Hh$lUrV3}OcV%FR8)}o9S&4S!Ldjf6b&?n;yvLg;)yV*56}_=L&EXF|41Qn z%@dFJRRVzm0|TX?D1V$32J4|BDgg{c;yr;Da2y;P0CxxeY8Pk%MZteJCIt`%T6rRI zf6SH`1U?Xog#(EOA0!Np#t{Sj(e7|8ka#xGQr`$@>I+BzaW?wnAOZaAYJdklLNVtj!JVhivvBmz$S0}yb~05}kj^@oQM{yXr`9RLCW zx+7tDpc~u+i3a?gooI$5{_Kg9$0CD(*TF>ML4e?2zkjcsh}?3=pnZb>cKNg)W`8k*BLAua{CBKA8i4^S{wbDt zOaCf3;IHY6{3Q%g;6HPjV2F%`14aHOxFc8&3?n`u|8JWA4*B2M{VU7=LGb^qN5|jC z=Qk?y3;rJ{6ovE&{tGAa)gMpfzA=WV0Q7&l+QR?H)fn!M^hf!a8M?!Relr*dl0swf#1J5{y)YmGg9ZGW zr<^Phgd@_7XaxKtG0Y!}CCcje;EAXHYyVrraDR9Z90nL4#lWuK@_Kda?Lmb)PoU&d zpYo9KlI=rLNy0d`!T*SXDpmAFX5=h(Up=+Em1$~GTVzjdg8!7T_U1KJOkJ{h{c-4t zOOnOlQaxa7fc;(n(>3+V4n7)QNh`JG&{Mxqo15O`Z%CUAgme7-uP~V9u^t4r>jqVJ zlz&csh#p-sUw$EPNPANHQSz>Jg5%AiVc}f2CnKB!lz2%#YB84WAjaXn{UMg@{xg1q zBym94`dyg1S5bxMnUPE(cCN@;#OhgO>;zt7!%tp9sYTGx@`g{)KTe zQ_Un!y5XY>Gz!;(kx5rxs&qqAocNOFn%50fdHW{@QCFi?}%gxTtt?%WCIK%<2?oXe_i^M7zr zNNo2zMLOpJLRL69xIc>V(Ck!+$9j8~43T-62Cg}t%o&kKx4P?OMRjtM4p{?g z-|s(;Fr%~CTq;%Xd&&P#ayLsL zK-~-*7~bf3%D>B)yFuET+ke3aPVQbkw+AzOp%Fsp;LbykD9;{LyF=o?PU}9tOlX6A zYF2aa(+Ur^!#1XBm76*w7HfA)^(Rg#uO*8JI~O;Aq-~mOIYet4xu1Of*wOh}WOjQ4 zwN=N3sN?vQP)yyB5rX#UG<(;r61g{ zC9ReD$=xzu>PpGnoPT2KAnlD!pwQmb!@KN>d15k{xAWx>BkhO9!31#=siV`Xhz^zh z*x1X;IX7!M^$m`B+W-is4>6hoIA3&RMUHeNgoYq}f-?VGx=R>AbvdovCw2!RA1~A9DY6&#ouQTXQI|b!;$tk{i zTpfn=ErRY+9p@Z`3%qXvPO!Rn&@j6=Wevhp33*njF0qq{K3;B@zU`z!`Af}qlH6O^ z#kiM!sRt^b%NY4(FH!4usA3BoL*+Ay86I^RiNXV03x7G2rrI8Ah+~H}5@9QoSvfMd zTLJ(X>2nufKT`q|{JD$(7uxa$)Gts?dW8}EWNe)^NJ=h0nHD)^<+Lv#>GDK_M{V0J zR_|NRtCIM$9Fk15)18v7r#p1;S5&9Q-bW^(UoVclR~~Puoyh5YD7uzRsKUKaUPU=Z z-i%Cb@_%Rcan|)T>Ea)wR6Aaq6X8uy#L)*))E~*8PafxeN#S;69CPzBi`ZA{>dWM% zg&p!ss-KtE&`s(&ZwQ%L6_5BO>K{R32^re^vFlQ!7C|TzS*|+o*<}$nl0epsH$F08 z<3pxW@}}&`<#|VKl6bC4EZ}UF?DZ`5qdni#jelPJM({KZ_bg_EQRNUoN+|jXbxD6w zW4YhlQVO`P^{7lLZ4*DJ&-{>6d#GWPw1+m%>E>NT$I*(-*Yc6%vKcQ08>kDkyZQT` zfFwb1V`zh8xrj&d=Fxe;zS0V>n`!#w^>3ogn|jaRQVpxykxgi?)u*(d75%XG$iC)X z<$qU1V#L)}sZq8(`d-ZI*-#y`C&Q?I!eu(4bB$^fN+>C*XpmpJaH+2kP$L4wL+^UcHF{(sQ*{r+s!q_}cLsZBep9;I!L*}$C4PUtaN zjxXvFSfIY3(b`>MrTSANSJ!nLyR5BLsX~0i3!V3kVc3!C;5YW+Ir*8qb-B4=dj@>)F!k_aXVbYs75j+iCyK*I;p!oX>*puD}VXR zV)3lf$PuuwEGs9DX|=~uPD#mlg0MP}<)mAU0mTb#65AMv=Q2R$^D zqe=c`bt_mPD~@{Ym6xD+=R#+f~r?#V!H_yb>Ro8#}t zp}-fRC;Cnf?$1^-!Bth5#$|UK1Aig4^3bh27aF2D5@^M~7IQad1P5-jpE5Di8D=x~ zU);$XVE~t}uE`vb`vp*>OX-xm@Y$)S^)lJp?_Nrs+AkJ6mH$Kg=~{PrxT;sx@NWr>G5(pjGLnkF=%8x zNX?n1{Q5wJ?;D#IcebjT%h?uw0F&GM-7r2i(J1~htTcYFhL2=#hGvR)HYVo|ij&Qf zQiZKW@=3y&U}(}kx~n((7Oq=B$d@Ma?xecz0;<&1Fx7qN15e)Vw|`Q@9X6xWI^sQn zGOW|t>7PX{>=*_4Y6}nZ6bo=6vfu3D1YQZcEieX>8xgW#B+)t%CeKMo=DnydXS_?u zF^?Zk!oS()J(TA8WHo^f-;~-Yivr$i>fuQZEp_R*z`D&jn^^nPyITW|h@IwZ=XJ&wMg6RCyK zc#x?anv;VTBA0eMZ_}31Xv@F5RmEnp?Z5rldHs#kYXxb+=zr%;G271oK?-b3HI~}! z^>P*Ysis+D16$Vbl~gg${pc#0Y#kYYzCZtMi9g#fo~)3A!)%u1J^tF>c~8>Cs@Bfl zc?*ev7YcV6wcSV}JC^Gl-xEM2>EaGa=^ZXN+qEt+$MSf3lFoepBs_>f+I^C%9hwBmI zu%A7mG?MfAXn1d_e|@~cORqq!eolzuc9)^Et%A`Rseee-$0l#R)hpPJ8yxGJpak|# zN*C(eWnTstFS61#+=_;Hw0XD!Yd*StJ6G+WMpJ#fVB?OldgD^2Efif84IE@Ka?o76 z>GqXjj;Zf{BByAPp#M*J{_6A`)vDOFJSG%nM;H&~*@dvUJJ)VFysm*TJlj1;byBEK zUqr9oK7UPJZembol8@V8gN0uZbbU^NF?OxhpZokkS2Laq)-k7l*P>Mf!A$y^4#KFq zkorYMoXXyiibvCd?Y3}f3XVuNYqmt~fadhd0hR{2x_-vFDKB6S2Jf-g z7Q^ml#zB7qma%5`e$_R6tgQ&1^VwrE*6_kCb9t`^RQ^nxaTlxTlM3-Smh6or1hv2Z z42bF(J*~Z>8o{VGaP1588A`QetL@g~h1S~Bp(gvybdF|)5oc>~Oy@Ua*T!)>iSh1z z41ZZj;bR)QNfW2&;-6E;lnk1d+j+ijqdh}SU1yG6{e;-V4o+za$ZWpVB?F5sP5(@4g-b4Y{1F3S-PE zpDY7;oPjPEI$i zQZW?2NzW^;Gx=SLR@iWABk$~!?F1vk#FrUchjVnP{xDv1ro7`3i+gN^i7Qr5Az4*V zfzv8m*wv{0jI@pTgsVCO7j#F9zFj_TUq@4}Y}6 z389WTsly=)O@!Qh(;`0l)?Bl8+XD-BCza^wtZg4wUhbSCwdc71qH92+s3$kSo&9}e zt5xCUEA`#JsZRrdxYQyL$xX#}WlHr^3PtMS%cGiZ4j?MU!k=;IOG4fqWf0aG+~D1n z&J!qq53+By$sxWJ<|jcOvUj%YA_pzN`!v?kd*c zC7>m+$)aGYu?J}*&+;a`0)H0)Cl{ockH>rEmT5oW=krj#6YD-bEB@BSFg#m)ngL&JAXXlDOl~W%i;k_TiDPAEy57j&O-X13{Qe|WRnwDH=~u`$UnopEPlqZbNFCoAZvEd=!EMEl%c0Tt^;sdGy$Tl{*_l|#J>Sq+4|>rQ=#locm)uX$H;ObL zJ-M6fDY|;Yq_3}dl6|q%P=yv;g)ekjq!)8FEuvPEdrKQt zgnVaQygB(Q+AwogvDWBj3u{8T7+aZZo#b5zU4-~c@_&|{^o%Xea<7ho50iR3-)-@Z z2|qU94eaPP8$=;|xYm~%*VG^FAa)TdP&qA4CZQ7fHw!)-go7qg~dbdRJ4%4cQFW z4^A&O(tkpe1ELqBCZr)vqW5XDPH$(sH^@^+Dd^OBYc7N4NFZYda_$++obXKDwwG~7 z+);j!ZZG?D%NuMiPnP z%zw!X=gJ$j^D=H*!W!IaLZ!y;)$2l6MAmT0cg)_~!V2xrww0t)2Td;R_%T!TPRTyp zOBBil6x-MbRJOj;tEPOzVF`@n(#6t>tKKgwk?;PjvVbFOU#clDQKPpDVW#_h{7Ue1 z5R0CkxR!82fJ3;g>0MPDYMBlhauZse+kZnhGZhC&sd50<1?U9otFWkN@XXlswTC@~ zvEiRGM*Q3g_g6eJpLABHzg@GSa5Xo)@{-^2V0&{SH39+l+{<|hjJQ^Qc7-kXHhpl^ z*gJq?Y>(qxv)RLSt>`z-&pRPTGmsCr9B&JeFjZ(a>bPxv_l2EPaNxm{$75q-XJc<{ z+sGm)m`1=z0LG=)zr+(boKQ2(@gA?h%K}OI!krYZ9s*< zi(me(^bZoBN?H4Mn@Cw#lCtjm!|1?-32->1j#w!Vq#I)$e@2;Z%O~1+n>^4YSx393 zj|&x3!bofGwuD^i@!9pwV)?%D1NZ#QAAg}_+FGFXagJLzhVdr*G(BxT+^2)2Zr_OD zYIV271eFDmVjES-Ndst)`Nq_bVu3Hgs454Kyj4=6uWnz9+AwQb)FVZGy@Jju4VyGF zlv9*8u2qy8bC|evF62N>YJN2r-^fxb%*kC7_0_-RhfLP^jq<9Iv^~nT6R8zxA${b> zOe^atXV3&ffhz@tqQc)tJ}eel1{NVXpAnfpLC0nK8hb{BQEZk%gY%NuiUHeOxB~wH zD%&BhtlzyI@h{pqZX?*LS+)PFL(RQ;w1F=4@9;05g=#vZv(GVkW~lE6 zn9!k^amphfZU(<>kM{D#)HJ+jLS*$bCn6yZ|(@m0p zCqJ2*fSsUAwCxY;ZUkX!;T``F3i0amqF?Go-n<9$hTGF~$90K%nmF)~T1*_72zzK0 zc(`mi>dtY)FUUn{b!wL=CRvG%hOqEuSMLA(@uy4Ux|477zQ=JR%rABH9gdv^wJL`a z&n0NAOG7gN*?CL*3R=o>x0AW4$-V}fprm;bk3rwO{r%R^J#@BFh=+52aPS2SCgjD_2xyt{Bbl~9Pib-#dVCYSOD&Q~@NpI0$m?-Sb?Em*M$HmIX`rjXOkW7rstjtL@ zD&Ukrg`?5W^tHqvmpy)vKi2))+S+(PL&4yFg!XQ1_*vK@(i1mB_(8*DZuby#k{y#C zIX+$3X?F>HTt?Z1+c2b9RI)8?-p{9UTPiQos}i|knPB5#@f0x%5}X?zTozvJ=3kQJ zj}}7JLV;&qcw*n*Gb=`uBb@KjS-^tBf+Gk5iy*(hee0e;+(t!3?ahWBZWe6M(beF= z_K{Lp^GQi~c<7=7gh5m{zfRmH9l_VQ!Lc&|UcpHEZa?{x0g!X3>c4-u`!Y>H96)_Cd?POx z0T|vjE6q<52;Wv-2~NJZ%pO*)bzN)0e-LeOUbThzgs(Kp@k!LjqDH*u6-3(_x5#>D z(AF=r6NW98@j5JHSZ8POZb9v8frfHG5X7PyuYYFtt>uvg8v^b#EU*o4dF4?DK^r`q zNJFN$fpmD{0_PCtZOZX;fpWXc$p+S!)BP*q;#O@QumkB^7mQ>-$JSh*V)Ly&T5Z%d zL5LJ+%iXu!1KZwxU$eeIdQr%NhIw7`N&Y-XxMP8pvA{Bsu<>CVhVmELfP4frQM>QE zR8l^+C~v!jc7d?&FHEOB2dD1@a@< zZwo&?K^~uog1x);&)PFC4SygzQrBda z#8ZY_e7ICN_tVz$ufDxkwd}(?)NaQP;;Hq|JPbChvoG#<-S_pL5@<1e2W2LP&7{p&X#L2^Oe z!(HJ=(oPiKG16at`1hp);PO>q3b^2f*@pzvr<-U45$io?aj4aO=)VdaG?IJuX!#b@ zOMD>LN-ieUK+or!qI4#_fcfOKb3PH*8}+^82#E+;ApUn_kVgnUj>oK!0Q|^@S;|}J zwJJ6@gnE+*=lGb8AwYoJ|B^XgT1kv^=WuFc6K-Lamb8(lDC>MJI3sVJ>~G2!>IZXN z`LC0Fcle-aul%|(=lkofzer$wN1DZ;0%=wdl*eTBn|E~0A!Y7dm^vzSK7nFUZ~Kqz zB)M*heGOz#nDotHo_=*VsX)G!)&f3_i9+MQUVuSm<>PCw)DJmUGY+ z`(k-gPjkk!kjEQ|P@KxMKY?+Sk&Z2vFb4l)7&|Qbf&<|92_eGu4s9tLg^s7rN#x)4 z#mM!1Mr0JZISL>5+Y2A}8vXsqFZ@>=b2$UI3d)sGphEX4%{thnx=mdk>m^$pA-sIu z$=tZ%H+ZOc44y;%UiT(7$;#o-cPc4h<$aTW_`^tz@sEOa{UsAm%g%j1z7liUet2U( zgL=%+J2tT4NlraycWSmOJM-38^r{#`_ExoYyI7k~a&x}$Ds4k2YohruTd8PW^(Nd^ z1CN>08+*Hs#BEtU{g&Y|IFMwV@pQRZxid}}fkq#v@opb?x@ZZ3&geh5SjJ^214WMO z@HnM^q29a2yLyk{AjrHK#cho=*tYCJENjRf3RG_2cv>h>Q1mDxcl@R(h_gJ4S^Ryt>@pS< z5ACd?GXmq*wbK$fCj|dTV#>$GPJ0BANx2-3W5N#5NPpyz>)26E$`jkr#mElh8GIY78Bc`hUBgW#>)bynIPB}T?4ZDa! z*1}?KRQkDfs`A7D6?L7Sd7IL?Q)8OK1-wa}bH_H(V-zgc}KLzk{vHjP%H)Gha%uO#O|;@2)kjAGZ$hKn&cs-T+fHC> z>ka~~9%}@z+}}vodWmT4+wMfhO(xv(fn<^5pmV|HPTFaI4)P!t44FNNku@T7y>kG3 zP(nLhXn0a0UzAvi?(ONNC80_b_Twbi|7wwv#KHbT4T#}Gd=h;vCSChs;z0?O%b4pW zKl}_QM&w=7wxf~Ned>t;pI6I%Fg^P7mCJhN{ioiRzwr+pv0A|ak+EUP?|hDOF`AiU z#v#}m+Vkn{@%bc2C}LRGAm1UcvWS4amh2#9GmpRs5vtn@eGN_clQd1q=AKNL*}Gl@ zZXVDslME5GI&t)aU@R!aAO-Pstfcn21K14M*rtY(KmmC&Jo;lVQpEQNisVxa-x>E& z=bCK(3N*qYRKZ0U!U0lclgla&B4VNA3&fzmy%UO6K(#^Niw_}VGwS$biz*;_=Wkov z;J`kFuqsjL3Z;+aaarZ>0VS-lq+BNvN+eZ7+C^ska$cO?o_(oItNYmz1Cid4YBkBT zTV${zQ_{3*Tt#z@qcOZB#eX_gS#-Mnhp=6GV`xnH>y^EI5N(LJ_A}|Bhcoi*{z6T* zm)Or{u-Ic=_{XiTzwf_WKK=CSp`@NU^p1~BqH?n zbNh@!cw}w8+I^rF+thbY=Pe8A@tSQb4rgEsNvn;Jx{|IaohA9{9sIDa$A$8K-->K; zT#Ik0$aui_)sZ*p-P}18JIf(p?yYG*W+p1RQz4buxWpeA@^gHSMyytgJaIASPj9XK z8?}enejd(s>f}Bi z0M&;(pn=vuvTf9uvg)0;Z25Iyl??`KDz!vyTj?lBe)jH2VdiXthsusd6=W}yV2`DVY;nvGm6Q#r{Klo(}+8MR71-kwIL)j zIUsMr;u8tp!@IgM{rFD3TIf2roqT4tE3xq8_4@EcJ&0u&z9W8(ySy@)^E^MIlx6q| z6tuxHmm}0oK>)uVFq!|3UM%)qEiGwIW(33x--2#MWoyT88G{|@yoQT zC|tSaJ@tS1v)Fau)Sn%e>!=4TIM+NQHpj*oyPq4kXsy`@J^6944w4Vuqb2s}=_M@c zPpXY1ncixymquCh-*BL*5G!fy{FZ%RV(0>1cD6y7$^p1*nOpz)$Q_Tp)Q@#2c$|eq z5?OhN;0;fV`k$;2dCC1Sx5O!5pjVRpU(Y*)Vr+zuxfId3GL6BraF^IoOB@|}zTDK&O zc6d28dH|(VeERa8G$<4ZB>V{MIon+KFj#}+ZtAZ`y3fn1Cu4-XayY+WPFLHfnqQqp z6qJk%OulzKm?_rllF=9WuDY$bfM^9;*Y5Xl{sYhqK;*CA3^E1?pe;KGEICehoJC7Y zhSb}k4}Ds^#TxsdLondRe$H)z2`yxt#2Q}+K>&YDn<$^m|5Rrk**Wi^P@fl$gA-oc z3T0or*|1BoSSIJl7q98t@`C79W&F`~ls3peK?M6CL!G3RT-Fm!S0+OYJ1J?aTbFa` z=%CX8J1SLzXP&UVsHj}Dsg%S|q$_sW6bX8w0kOFBBa)1Q*B#mzJu5n{HvNv5hm!Z= zAOnB_rhG|jDWHudRLgO{0A|p{2pt<<`LS+(kz@{hzQ}%icKODujk=n4KXo@`?6><7>g}^N0sWv8W;j(mvtMA+u!S+3z@LO zE`D$~4zO4&soHJcAxb^-7@z(?&aWHoB?NY2etdJx@)u~Y6d4fNi>T)WKZL52+j8_4 zrB~2Q!^xKYr?${KrCf*yc)&`QQ zbN6ff8?&J(zqI%l$2vexSY9+Tp!Jz>MX6rKB4ptgKgg{HAG2^i@P> zqn*4oi8NcJ@NiHGbl}H9d5nsS$xpRMQMkrM&sl9Y2|03;dJWNomz#}C2M(|@r!Wd< ziQi>0%clf17$GMhxGizt)!z4N<6kw*Mw#-9yA@2D+0rg~nN$63kUUP=#>jn86#HZ8B-yUUCeQVoq-cL~a9)KpUBl^K@EZv(RH1zwdekxTJSD;2w-=W;^f4%NY>EhvU6EsZ;JF@G5wX5O)r?Bc@VJm( zy=$!PSr-#Ay>iH)EgP~NO}sRVxm!PLmmW(Nx*a1Mu6G4Pw9~*n0GL8W?Mm+%Qm|ka zm-jL#2HQ)J6(vPAs$IB}HX=rvF#Wwv5677>C&ty+uNFHGle8MDeRj^mt%4|6JA_^i zrPZQ8#D_GM7IR3cxN`6{%ZLIK^-{g%AQ}8cEvdv;@Dn~YQaSZGdI{Yx%H`C3v|QE? zz5wd9P$GuUOXK|8I{<}rW0$@FONC4g!>jNCLj)V)cwuKYr})^JZxneYa92!c>0NEZ zn<^g%0p)wf(N5LnaUrAr#HQyU#`S!g&$9OS$RqZeKpo;6WQTifIK~62h}VhjF~evp z(YFm&P-Tw#dgZLX<(KIyM4BcBQK{ILbLNP14$*a~lQULfTtJ=iS5C~3>crpWh3Tls z%CN^W-?%>pB9g08ei8R+`g2_!!__N=+CqwRDnDf+&IYaX*bN&uyJVMz>#K%6!#;Iy zXKuyf?xkj?rB*Xg*V5wFang|`{mZEOoVP2#TVWNp?@RG8tRlB*ZACn45{87El(b&u zy9jZ86X>*{oCD~dfRdikR;heP`i+@mngWNe_LlgBMQO1gTu=WRuxeg`e?zklXQxtP zp<^>@ihsM^yrKHqGnfLAio64R;Np#u3ACdd4g&f}`GOro>{diPmlv{H^6$%a8htz0 zdp($$8%Uju?Gh9Qgl;d+-`K2IO%1|f*4tmAAS}6a(g7JIUQZs+4DlUa$z{|mJ5@L_ zZOCRiA?WG;#7?wkjnQK_P|2XxEribReEhIE2iy1*f8xscQCCvd_c?i-!EH!^$%(v* zelr+eJSE%Rxc!8R)rSW%)bNsU%ldzM6GYMu_pgsWq*csQGQwQgg1)!Eui1JZv))-t zQDqH~4Z!AAz#kI$w5`|8!F5AI9R?iOOepJ}i-uTHNhmR&NXmo@H%N*yGjct}UFGQt1mMX+9|kQpgYo0t$`gd%Ca}^p(P&4Sw&`d1Qu! zeom3Gy~VudXkN}VK#9ndrQ?!uk=BeL>GKp?40W9Z-d!@b^8*H4AUEMd{b?}n;v1bX zKk&v`LSR)xR(@1yN|BZlWs*?HR7M;`@nk%K@zfbvUJxth_3b7>sv&bNDpz6U#+62D zSmzI~cX)F*7}cAbHa5L3WNWUM*k5`?I7igqcU}CCd1!J`yN7J@3;elFa3%wldUh=+ z7HW}L*XjTAziHu;?yKmHO(Iz^Vzl$S#ehU=N|uacdA5|{<_3lkOaw*KftU%1Q%Bx4 z=d;kuf?IQ`=!3eU%lwoX2F$k-9L^$ToGOIOQ&~-b zGIcR}gy2_0KsE7Rn)5fq#3$eg4q8()IfbO+N|buuuIAD>h(>fe|`+le9)>y zVWqX)hk1X z@I$$?7wU(;As?SzW!{y#geMfJmUH8G7f;=^%IL{qq#96v&vzcDtCzJJ-yf}^{R&Z}u zw(?0SSX#1uV;4Bt+~mqZKwCq(ft713v^mmoFR{bQz#0SSa^F1W!a_T3)7Qd83|XrL zJ>_ESsJ(gGA+6;}k=OKGoLtKS?s?#VjS5D^^zPR}y%q{jFVyeKj^A;u#1Eg7sr=1; z?7lCU{bV^U^nj^M0n!Y$bT zTcr&5__<%#a{7KYIjYj-P`Rb1bN2w**T=6~6}DARXJH2`1dMC3loqUA*|OkLr@R~S z1lGTaSJG_J!@L0~Ej-BnUs8aW6-@}=hWnqjTu?>zs|8ciG!K`i3e+NV1<#|)6l-VF zg1`J5@W?(9vsSF!)vb_%SEr4GwSNqQMM1_x5z!mBvEtP~+4fDKSmK}yiEVWd;4b&h zbffY>E$EKzfz{#=Or2;SxR}+pdRf>=_ZAye6#VxsCJjUgL; zqo7vd*aDS#=-helV@PJ&4`NEFgg?a#5lj7-w*AQViB$}BldymABQE5X=0a0?`TRVJ zt=TpB0`)Ez?rTX}aFnq_&oi(vleT!`$sCIq8=gG?-OyLLO9*E2Z^glmJRJsGn;r5FG_o#j-^r+UVrqh$tlfe0*{;}+kGq#k;|$QyHjU>p(c*ztWa}( zK;XPCRuUY;buIGw*_tF)J6&?mK>Q}fGF^u;Q3*=#V0jn|T4>8|&X0`h2hqPNT;z^fgz=;ddiAe#k}EldB5%nwtbs$Z}R z*KLt4GH+~IVH+{7+l_5F!HA zVDvg3x6+Q2g>R2NJ>D6#ILAusW>GNdF@v*b^Iu(0;ufWy`+ z7S-jjjV0bpe<5K)*y7V)DverAb%|WVXK*~pv`dd}rl}coxfhxhCY_BE_MUAp+7itt z1p(_Od%!xH2K1K+_+8#oOuOoh#v5b<#c}dt>8~z8F^ti?Dp+;j!B-oCmm0gz3uSjU z(y>q!lap_ZW`6@8om}&ByX-3xNb^_p?Nxm7CSG?_Muh0JQTW?YNgcGk^&7z&E_ixk z(p}JBhu~(~g`aswg20hP>$5vr{N8bIV(l=U#)*JloPEomm<5$NaU-Fq2X74}$-TJD z6)eP-Ox>D->?K)*9)!ew$r?h!@jRav4C|SF-ma$X~8Wy|2@l_6xNc9A1)pm}ZY-`QOA|t+e6aR+2M@S}UCXa}5gEhINTx~zWK%LR zM1dZS@URB6`5U=@-NIUkWgi9A=M(rpHX7f<0J_v(s2a%=y=_+y z%#>ourY4wzYkvaUpIDva_17kj=6r)y9Rlp#0}_ZWBUuj)LWTF6=a*~mr~KDT@d2`n zE{s0L^akI}5)weZ$KM66U}u+;aJLL08!UwEcUj%cwTE*ze5aCO=nP{JzcHp}r8N(M z3aACz8TGhBj*oUh0qL!^w(d)Dr-Q>(21xA0f8al;1 zFyItQIO~&Yq#|5}@E2C8YGE=5`M}kfVFb)z$a`Ii z?BTgfLJZg>5Z4r=W3(w5YeNQeUJF@7Z%<60IgwA?K1Ne#6X{)eZlTd z(UK{ACo*teOySyuxi2Ug%V2;E1G-YK;S6P7PJQ`R>A3hpGR8o2q)}Rz`FtIFCPp`o zs+?twOrc#Ek3vr(Bi{3Hi8^w%Avk`r zh4p@8#~{P1c^+kF)r%ZY`zqP0hzLX4u!2VhFhpyJF1JGs-u#{?T@wz7R!_$rt@4$J z_|3^yvtISmMSwA0)GE)NooixoL3bb&)AttCrR~jc^YCWbDxJ95G7c$L(pyjOA%i8N z$))tyUU9J6D5>A)&8$UfgHBc62RE|Q#=MSCBn|LV2xEV%RiTb73CuS0To2KylXd?K z5GX%e?2|rX)HRwCw-OXQcMnqTc$o4j+@B%NQsj5@y76my8{kCuA9-uIlv&)g4KLjI zPVC3@%%0ApsniuC7!CwK3A@B>O3hfiJ;Rctr(=4Icg}DQCJE_9S+uR zWsBV8v!Ao6?St@;QnKsqoXgC3UnFJ(1j%YPQncj{H})nBCG6D3L$IuQw2|!JrSt^(Z9KBz()1nJNOC#I_Np&ibdH zRlO9OLMgtUV0&rO{Ou2}kdJSj-IaoSTJ`MS>f6*D$dqKjY=*?QbC4?qWQS54 zs5^ap_9ku?c=6*<)4pRJjOdnTLRx|Pnb%paT)AiHt#%J{Cz{V#5*Z7dVIR((5%S)? zZcNOyYiQVv_Bw>gc6%il6Sm5+1&a#O{TQYUHQu3`-v9 ziv-NK@u~5{zpf+#?v$5qA6{d(F^rjuR(jXW?3k}z$+4q0x z46H9PEkQh|=9>K;y%L|>Tv#*?i>ia^68z)#6d(bqG7n0Ay5!s}zySs#@3ZB&P|Z)6iJcDlELaEYk(9cqnYP7WM2l5-}e z8-9=I95V0kp6fl&&{CKzfZ7vwu&|v=g$U-*WAp46((lruWHxa`*Aje5Y+?{QG9GBf zlNEuKjj{U4@v4~>nG4l*!lKo<`&>EF$mKgdeMSPM-jE1KqQ=`XcrAT1lK?S?t>PYc zOA$w7YRh{(!RuXzYn00dM}q`!0dlxKyosTgk;OWb4?6|^F^qEvl!yE*yiXFIA=FS ztajU;AfEZ4=V-21XC4S+EQ=AofDo6ZS83Ca-XKO4Ytd7{7$4Tg=F~+Rx&AsB zbgYNrPxf@pBk$(~yweNW(KkJ&+>JhYYzeJEHvJ#NN=MDC#KgY!6u$qwHc4gj92O%! zT`-0>ktT&@nk}R}(Fh;^cvEM+Pwl**^t@ykM;dOuK01>=Q|3;|bKvG_!O=|$G?z`8 zlKugCSMI{1z1*w4$BC_OsrAPbg|tr7uFAl3%(jvRC|15!(UG~cxDhP3RE zU|Oew67IL`4^;ERzVvUwW}^c|P;-sn#FCP!C|iY{_m2zPF3pxsI5t!9P75b8^^Z0s zU96IjK!OY|0L)Y;MB{P^xc?m&{+_zC=CiN{d z%5VA#bEI1w6z;@gY1Jg1ERoZ&wtgcQW;?^x%*B=OX&}gj_+v4-!dc{PvdABS9@L?3 zDF<1^ByfUxQpybFm}-S3yR%uchP6kj)KZ(kJ$=v{=#x)u7gdlKn>Ml{viMOe+-OBb z(zdMTGHsq$M9W6LpL(_2>6abab(E7w|3SHBYa7rnNM8yWjqv=lF|{A*wqp zDye&q0;M;aq|iPwyx!R1Cc?DfVZi;ZdG(;oYPS%V-ARaHYeg3GIfvZ4{)VRfT!lJK zj^_sjkn>Q0p?IDQ_oS+V?&T3eVD>yLJ!BgA4>Ps^?H-yUU2a7p+Bh!b0p!Y04#Wn; z5$Tlnp+}UnR@i|aN03IsKAEW97WCY2nHh`R-$)q*-%i?C$=LHEc&oN5y}vi&k@uxc z(t_oTU9-p)C8H;-MKrgckrZwuJ!QW{E+<|BJB#kSjcnnn6{J<2P919q$GY#m^$jdc zOe3VJ`_ZeyBI3mTEMWRyBa!$N<+$hG-}^`lPbC?0ZDN$&cef+ko5YKZn|6KC8kRV& zP?lS#>v0H3%5qyTWDQ5#&zSILD#W>=hVFano=KJX=n!1Kh*9o#JRjz0yWjps{-8Gl z+-|NYXSlM>?(clNb7!BH`nIx`dnq&AJN&#-Yluz|@Ms?#d7sdvC$dBj^+mR1>om^w zhzEM+#;h&XsxJb(PsnZ;Cy5BjJ`*Kx$!w3wnrQXg9yRnU{O;+0B5%-alBF2&lZ7*Gw@MAUwzv(yuKHCaSPhRLI?LJY-$_&;Et~deq)5;zzeGPbq388JyBWz zdgMZ6OZO>PF038q=AN!Uge&j0mZfst<&V5o8ZmU}9?rAmEC4>riqqPX$phRKgEx~= z8hWeX~1R z!O@!Hr@@K9L0Ov`=Kf={Q~76lTLkX`2W4yOSOw1mPl`+hM@z!o1y^Y5-2@l;Vqt+}5I3`Ta3o@8 zW&7WfNg`$zW{&>=OsIg0-x@Y++^F79Roi>?p~+8piugo!X_hndh^S2?jmQ3HR3TGR z=lE+U2k);LJBrNzDB|Jt2$59wlHPX{wxYjNVGGsoW!($g4VW2!AjZX*6(pnD!pce& zHW*B2N9akj80>)kksr$RL-Gd`H%Fvl95f%RK5YmhmK}nLh{OSKa+nwm0`$Zg_YlVm zk`r9n#?7nTN14ys14mL2DVV8K;)Iw>lINxR=gGPw?ggU4AI=#I?~ z6XyBGKtQ(x%GemId@Zg!k{CQZ@9#SG-wi#r9-ejiHGb7C#Nz1wW9KN89lYx?l_Uzv znY*fK$qzx_eLn~4e4y~GzPG@MKZ?B1`v1mc#7`2s5crgY$M4NQKad$jjxa2NE)@(N z`}Nn<;g`>^meX#MQa|MU;vuem;w3)&m@^cs0q*iqhE3q3E_J%p=F%sy@W_xUEBzPk zBaW=M)9`cgYmG1gBhcMRv_GYq;%%rf%Fr>jdeRwC*5C@5Xq{^`yI;M5dWe8%#j3(2 zt`b)&3fta0RT^wLgwY%l{jS8smO>*f58tS0uF zD`A6*5o8rwxrN;NNs|>L6eWbj>83IPXblCH5m1JWVzyEa)M-wmGl+9eu=3lgwzUHW zwAIDrQp0-K{bDj><~hoOZ4%Sb+7lK%*3@AUv#CIiVM{c-Da>ZOGn`cs_-m1Yotk)z zF#a<&pQ7}BKHYv5^Kz3EwQf=KBmWx7NRP7g3|UYSImson(kL@zJau7%!y=2mUo6Un zoTc){YrHHVa>x~ju&uQayGS)X@*_H3NIL2VZVIvx$sAWG+c1^mti&k7pjv1W6cN-wTCBnN~Z%55CBPA|{UKK)rLQk%=We*7MKnbf$FH0q7P9LyUFrj6Vr-qs#+$$>= zD&sO-(*;eH(BsdJ-B(Hl{>bsvGTP&HFOa4lXJ=+CH_R(W7Qv7=a_*1rUz_4Ja9SXpR|)-pes>SUE#{ zuT9>pI)rz(!->4gHUS(x-;JO3uP?WS;f|XLbozKu&G7S=a`=+%kzwO!^^E;PUOw&p zY((h&4s|`hvdrDRz?*s=IO+YpJWzSI$_Ja~Mn2D98}%7KR!UpnV9m0OpWfJ8x3sQWhjl0AyAD)O&)l9GS{22O z-FBW_A3bVYNAFqYObiiA_5jwNf_xNzXNTZklPgLt$q=b^_Lu*KciV-o@)&AI82QoF z6m*|R_5OL++B=M04Hm&F$<4IIQlpO^&vI>$Mrb*cei>WSf_+N+O6|y{{@fX|4L?#K z!z2=uPOz0~&Tm}0*yk(7`5H&1HM(}Mz_9Y=)~UxA(C^ozpNU<2B7k?V!V8YTkpcfs z+|9n;ubYu~XMS)u7mmZE_T7bdT;XR1Z?+FrC3S_DtoO(%s@fN?hU7_x7e9uVSYvh7 ztc#4T9grPSW_fSeh6?qMTbjZAgcb|>-<`#&VC;L9=h4ogw>PXe((579d(q%9 zkk9UnurGcn0ysc&T2JTx@rqS@eksUgK*pC zC{t9ve0x_3Lzl!zCO^Hml?d3+=%nHJ$IfA231UY61X$FM@LdOkDZbfPJ#qa8iRhF> zSZnF;_8InkZk29YhCy*-)K)za_?%>FX{fqxlY9-d<}KFzoxL;kAn?!rU%t|sMZZ+U2uDYcm=^>W4v zT!AuFZUpJPlr3A&ei54HgX_r{Q}=Te(=zDu0S<(~=9lIUE#jh57s z;9~X*H+z*}TV?72u{dL5yUFf^J)36D_jUM=5?!F3{$}h9+?(^_rfE*bm6v=V;+zM& z4_426Bae7MV(|+!+9wY+$#eqzd(zH5I0if$hZY=zikZ6+5nB@I12~!m+kfIOWjF>Y zYhxQCHn#tnh!Sb=3UP{aiVCx_3o)~cigU1vh>NlaF|o6;3X3taiHS0@@Du(2F8?-@ zHL^BwG$mrpD4a1XtG9vT^-K!apn&;8 zfT7UQ{loe!5nT#u_HOtPsoHhcxVb_bBT0zve~`*r0kpZwaEiQ z(^sRrZ`7qn)pbWV4YEKQ%=?l2OK3t?=r?JN-2ppdK4S;BH8_?j*6@BuggtJ(2 zc*@8a9+bE+p8V;})ywOv=if>ea7vWoQE>esP&j0Pjs-Ew1lNn;efYNAZtia=f7QvN zm@pcyHxcU+PQX&i$@DX90MFyWtD`n+9umn;+c05gm ziV4*sm`V~cf#`8TYDG8?7>Q#Mf0SwP0ZE;#+>S^q`Lrjx)x6+AOyDckSG<;lY3UUI z?w{XJroxDjQ!bu!NhZ^X((tDyUnDOkQx@}(X+QaXw)gGMr^IaB~x;`J!1pe{*w-CUb-IHm&_sb_+oOa<1I_$Lu3wOv^IyA1zbMg&!Ag zP|ee2T4vQ_le&o&JXr{U{;S60uaeuWuCw<0?6z4ZZVXhH9W2U7y>yY2?x882T%d{9 zb(SE5QiR#+!O2xFGAo3Xt)lEYu!t;36}GFZVwqNTmb&$Y$0X5;f47aFO#nktdTQ^| zg@dS)hb+wTM=e)S#iq%#b-K(`>GGXBgM>d`uks&KSZn)8H+~Cm14GycUc7tSP zg9Z}fFlg*rFKF=He+La@pVp6YwhJ130UOmV4IeW&T<-X3T>-~~`1k@-K+J);IqJ8I zKW+$ztZ&uupNWD{zq49`To)^WSzB|r3i^~Tb^$Nt_~_O^>hzd7r!i4X162W3O-l`& z(}duW<+?)iY&R=6wT7u`+u%zaR&@f&wuHh5g0F2X-xhAkf4$wIq32Nd?A$hoK@^2| zi{>u%7;O4=sPEE6?je`id^=0db7=wDS8~}pYJN0fLq(*j1-+pWMQ8w`eT2k7HS{pd z1E?Vurq~V(m*+{qIElGAD8PucW@b!!B)||K^D?qHP$bsEAV_RIOMplC@KYYoFabyv zLw~S?0*x_Sf3Kpj04vY8-q2uNHcy;qN+7S993|eQ#IP-0V%WO$G4!2t!-+l#BpPmf zAVtIobFn}IBgmK!Bk6y&>_`7cWgl1e^*lBUa-Ri#2ITz=D4^T#r#OJM3UT=`%X2@w zOMI}Roqs3TbGqeS66Cui$T11p)H_Qa&&-6>5NW!=e|O3C5flRs@VHLPdUMRJl_WHZ zclG{MRzyEfX<}HHXSXi5K!?0bKoOxfgdmb+FVps!6FqzY&Tuo*L4R|esvx!PGUVfN z%8}@_^38c#8Bon1_oxMOr)10~X4PxaM%f#ZUdPg3_Fz%4&+D{5`-F5v!^^3&aP#2yDVGu>lva|!kY znAiO|faDB@6``Deo%-a$fa9~EkNN9Y>a=AWf7_}^$v<^_&R(xmrhul=$U%?l8fRFb z0Dz6CIMSs0wJOij9M2!{)bU}Lpl*Z`>o3kygBm#%oG1z#0A^r6u_qT=+U#=<$ZV&q z|Ll~%-cDJKJLU7vn4snhb--izXM4Dt|u`M)2jA&1jRhfk7l7W`q?Th3FqJ zM6jQZyGHh}Afz^-iuW{h95Cy6bcpyf?1>^?+;A;i4nteqCHGls&kN73V#6e+6%iVb zy)=<+5d$63+3%?!$qBU8L;Xlj_bDg>f3`;Y*&f%Ah2iJAt>z@cawJIvO}i!k1Gr6= zf7)SY zcc%4}*R6Zt_C39G<7G2DTrSr3+xu#Z&}cZ^m7|n1&o9muRWY;Y`2Z$vR|iZm0*b}Ew)el#U;&HY;iVwN?%IN`z?`tzQW&Aj;N8`a z`;f4hFnJ6IKs$*Yiqo%N`|TWbe_t$uc8(LxeaG;9IlfQraT!tA!kRyr%SaJv)R4;` zZcFf``8M5i|GVQ?a7~o_gZTv?B6zhu;P-8l-;Yj&hMZ~&?VmcG(|s-k9VBpco*z<0 zl+mAH1QKt@h*iWe+X_Xv5Wo=VO%D#9_IuUIG%w;-cumnZ`bVz=3=z9Je{<+I07TiH zx-h?$+3%DWP_d8_+(i#nEcOv?{p)0+`+WmXKF@M6!$IrjI3FCU9{Z$w#f%u~?Z*#$ z*Qo?A;ajnWz1;8RS$i8CLAZ=spjT_xUEmKw2vufu2b{Id$6oh5-$1Q%4h(d}H&3Ow z*QppZz-Kw80s(k*k;JD3f0)d-d*ZNXUV@@`IE{z7p5n`N>l>c7Rzk-m4jcReY_t~d z3mzS@_{k*qno9%m6HMO5;0~AnA(VvD8;N76{Li%LK?QhBVE;Jw?fSdAy~x*LQchTC z8`2F7+;0HdO^0y3b+Yt7K5=t+YhHJA#2!H`8uGBj%i+mXOD^ziDKF-l`MtmGsvSw+ z@YYBge>ewA?ViVX;`lQ4+jV!CG9ULS{{{XnL~4T@3AY;w0lLnYd=ml|DKs!J3NK7$ zZfA68G9WlHF)|7-Ol59obZ9dmFbXeBWo~D5XdpQ-H#3)koC7F-jdTYzobB2!qW4~+ zjouk0dhb0t(FdcOVP^CmMDGL6FD%Y4A`S!s1b{%Xe}GV!I6x8P zdOrvj7Yno#1~3^r7|$Zx9R&cyPEn*@7YPhZIkU9T*09=nl|V(*!(q z2Sfe>YyJh`2K;?E0DfNnf0g??`*$HH$e(18tu55e9R%@pf;a%|om|0yr^=eV2pVwATKZg0rLb0`v331e_Gi5`~W*ATLi!c?BE2!{&)2UH`x9!`{Dj!PCfuL z-~;{m0l?qCf4x~eFw71LarON-{LdBhDQY}b*LceH_sahY%F9E20RB8rgaJGPPk;b^ zeqkYhfXKs3;D6T90Xh9W$N$PzgV;j>Vt?DaPX*#8y?2jD+zX+s~F3kI;%Kww-|2>hir>pCqIQw6K|051^b8_|l8}YzgPsD=? zw4e`Kfc!Vq82p!X<)N;2{~c39fF86U2XSzJ{ns%%!IhnSz;-%L2wTU$=<=7}@VC%h zogiQxDBS7yrv<>n4+Q>K>_J_&E)Sm%_yZ^ZguoBt`OlV05L>9-Z~q8_S_8ARwCTFHoX0!MvmH>XKPGqie<|< zlY_^94)($G3Lhh#qx$vp71+64`d|;?;)W9Yne06Mt^YwwJw{|}s&3nLz>QV1-sDyr z_SXsWPveCLa&>*QSTsBavfBZ-9sx#wp)QYFkUP~`@;p36@pTGFF1&kHeCqnj7Diso zZ0T-S3v1xqlzrxjH;gk6E&jriZ<8}k$%u~Np~d7RKJg*=a&|sN{AT=~UOkx$JMb`G z@SVTuszAc!wBJ&NfdIUVikZrklJ?OV@yH~rzx?h?b&6U4lA^d3so7kS=){44`S9M9 zX$>PP#vmO^Sa>OqRCb7FCkb=c8*kfen5&WPxHf>5jlK@kKZ2!1#Xhx)X|Tj9hsG)R z@|KBKKg9&uj_X4=UDx4}VJBxmN+P8=fBepv8{N4S$$CdlknqhVI$t?xQbiLj-5zO~ zX*nBHzQg)dVQy@xPVlhz_V{t^lV=-QYBa zD8>`IS9T_c3^bE{GWb)sIUV21WEOOfh!2Inf%Rfl<8dseVtBLMgRLfiMrmYThi-}< z<%&c1#G4Esdlo9Dnwq&~S@I2l8m1PvgJ*;?FdJM?g$7cl$+r-il0mHW#;+nOyfr~$ z4#YZ`-5!o>x*@N|^2ocKy{aZTB91NK?>+PwZzrnzBbaWIz(-xQP3f1nXr>y$I;tnh zFy(B?UrOo)wb!pCs8=U{d9{NMN<)mMYCJGC)w!%DF`cLC*Rc_I&%89|3g|z8%{?)* zG*5Ir5+sdM)Z}I&9`9d@f!Z;wmf2YMl@*)BRG5s~-d)Oixx@@2nt7FI0{qH5O$(f| zC33aj<381(=M%l6Vm!f|BrH{xn-}Srk&$LB&wZOifjE3Q=qPG!}7-%&EaYVr!r>V~2xfY|#<1LAL* z7-^{%6aM8U#n$&%LVdg{>E0xb6`KnIIu`=+`wols-alxr7hPX?q+{wiEp?&xklLmyf<>P)*{HaO>-C;tLdiwG~`fu(FjvDyht^Yb|tR z!^6aP@zn(T$2AX{+}>qNS6QTT~K#v*!5Ckq-Ed-~}smk{e(O2w5szS;ql zbQgBw!IXr5M3+oL_iB8E^||Gq{KuhH)fuSslKx(I^U zNg3v`)xBon_ymEO{bC+7-rEza{u_D1FNmwg;A5#oTH#q(7p%HGAKjntutl@RWNES1 ziqsRe5WPg0u3V#Sj5A@_gLZ1kN}O2S0O!tai|sxy z-fo0X3np19)^Uo9Quj00g6g6`yGULhusY68UH_RvQaVO(kraKY#s+zVBAzp(T8+_{ z)FhIB8h25#G2nu=JwNK>nTzzUQ%-x&+#w+nDTz-_+<{GtXO9eZ(TmCVDFXoRtYf1V zc#dCJ`puS{EnaXNo(kO*Zowx>Ti4Q0$K#E3e)ixH^1!H1xqG#o`&q3@U8y3{8~nxK(<8WmQD=O6ly?P>OoOr&b~3PI4S7-VlwuXy)&$?61iLY zMn-+AAUz5mObtv1POZFzr%o5fvwYv3wm8FNG_26}wJ0h* zI!YGm@i8ZQ=O@}|ZMDa`Ud3WUD1L2!_t8SLzuZCz01#0QTE(3G6&s8Gxm=8U$>UK& zc89IAub0d0h1O36GGbe93n>@;Yy{DO8#u#fJd_4THU90@SQl2R$4Rl4k!BrW5?A^D z^>w_A1lk*+IPLEdfX%L}DDoC*=}sx|n_@xT)CrzfY(U@1m2ah#ZxWc!)G>{J0YJ=^ zr6_6<^Xmv=#L1JYMJmDgG%5Ook7MmrUt3WrN(g#p0?hPYt-Y6i5~>zY5?+=AYdXXA zA#|*A^kvv^F&fq%s1k`(!?`eU8~_=lo{=s=4+cYjg(t9A;Tqe)4b?8BjxDaHvIw;T zrqEs`+o@leKP%J2FIVvmA!rhRvSTM)(N5f;Y4&F%cfB-^0a&;UREZj4XI&s4pU53c zNsV8?&HzT6mci$oTW&sQ?BHJ&G(V)wKMmC|T;An1?RuiEA`Pc>(oQ&0=uwUD!2rw7@VeJI+Mf$(WZP;SiFb3XtIgzUpgwDY8UVtxo}Wg{9cBe)-Ep@Onf8VfR6=*L@wK^By6Da= zKU1#4>yl&89oi!49Wqvbpv#MR3@o&Uk4d}Q9i!iswk@)M$pHwQ?Y7Lmsq1_nR#40h zSgT*n`tX#}Y$7UU%*tFQ!5A?tIS|1o(Gri_z__hPQ|Y$UQ}rgBqw2hrG+Qab95!Ig zkJ~*pnF39FH$j5ryD<|z$00uwb7I~hJMR#>7dNgh;|5Uj@R&<~3qKVVvYeS5S|{k7 zRD9D&1G*6t!QCiq?watg94yWzE;nVUx3cDe&AZMeavryNAV1Hh%-y7!YyBFNkHAIM zR6ut4j4ckaQOAn9(roSZNPL{u58H8mV%aP9s7zbWs7{?=r&0t=w)!IpQp<9{Ghu0AeQiCEWslY7~Xgr{>rVNe@P2guJ;#zFf%#n#IlAw`g>=XVmtTgWkTr0ji|= z{`)TsgUBUaJ4ZlwTHk5WGI5bQLWqvw3$ra>R|%{p+k3Carlpm~VtX@Uyi#-{2b~Gt z+z~xSNx7=Z5hi2FwGDa1RM;QXkc5*FGyHTL4et>c<#Tj@awHpQPM`nPk8yA$V7o^d z#}f~3>BLC6w;$nK@14Y*)({qirEu~tC1_pmQ;KyvH}$PEV;I-mK!t`&Jf7|ois;uv zYGGy0!#7GVzS|gZ91&C#ziMn}T9@0LEH_^kj z=3BV>P~wjvW?dz^N=A?vyWTsmOsvSN`Fte6YWj|Ucd#Na#S65*s=t*XA!5if;v(^A zLlakC-uejPQW%J()U!p<5Mmyss)zS!lu1Q{VUz2&hY0t3-X3_@YOsDexOg45ZCj%9J z4yTrXLiP?TmZ2$s95nLU^pQ{n;OMB~SetNE+DBp;e-OJkDC)H>U!LmjcsUnc!U&7J z+g>A&$OJBVuKp{5Lvr+ zAB&i!`O490wbD}Ugx|l4o;1cVC*{7e+lpm>WdhPqLNC$~o@Vt^x}zi4N{0OmG?abA z=Jd-+a1w8&`=1vT)pLi!t>wnE@i;F?bVaf7zST+MviP{NhEf+}&zx2g9tFueu1l>d z*B7iX3YfQ8aBl`ry_bc7*-P+Um3KJ%VxEcI%*D@twJyYY@2)Sy((Dv49D9ifKr+LB z{6%gfc}XpzC3X4wvj_!za01fs`1u53<7An)fY37GY($qGpUshCkQqnyC5D4galYX0 z?UD*B5}&(vSPu(9I_;c9Wji8u8xJ`{9665CeRm&spY*aP&|B*j84(|nKi0ePijcQJ zUYpX44QB?^jRaZA*urhR=jV5RzB8_WUpVe>8EXLxCubV@B;y-lT}y^;(9c;%m~#S! zNVX^$fgB+@8#{iftKw9WMDKqcpDlzdU(#dcL3>X6!U#)qH+NMu34DhP=0$!;DlHtZ z-*tIJ8wV-W7hJkMqxvbe1K!}ZW4XfJ21?%-Nvx1`CN?!OZ+^ENL&=loe)gJwmsa_D zF|82!)f*P%G?kAOt)$K!+^k4P%29_7^Nr@7>zJ&ArAbsS zM^WBLQij3edYR;Vp+GdQzLCMx{LEuJg^`(jiSq+GmEMk;w;_d}`b?SR>QgB5OY4q5 z6M{XITBHe3I`uTmu%6$AXnd7_We%8AG_K5wojT>y(XK}o^M*d>l3;q8x*FUO5<>UrhQs84c%bE@ry^v(s! zjuR$LT3SZ%Fuj@R2(0w{s4-1PJUKkpR{a52BMy_l&iGZ{TwNxBx2U!c7s_7kx|Gxph19mKSztohpG3)VxG+17BaoYuf# z4VgWcgTC=bNyE}^fu+8S@yDHhEU!ji*&EgX5sygkX_Z^5ui00*%&SJxliK+mU+-Mq zJ_~yYn5(@AUd@PqYh6Sd?K~`GjFJTja`a;7;UH^^?5c~@(W8D@;}PEq1W@4Rg?<7#74q-|7FcgM(@Zsp8M7@vY z=cBMi?Xb*|ti6h4XA$F~eWvWX&nf6r7-_RZb%Xt_@L~+b`216>P2gLcIKyA3@le0ObvAtwX`k$ULJPF9cGY(c>S18z; z+t7DP)yj)Qn9ZOz?F0&HFF+Fv+cb# z_R@HVMK!Qc>0@H@i3vpw8X*#klhAd(NHo2MQ=)FWE z4!|u~GpZNXEnd6){MMsiuX*fyxNLRjd@-Ddj|%OFgk-i|3q2v~$J&+kPjYi? zdt5Z4vcA5$`UjpvM8|34CVqFhZhLcrKC`FMP8tmHm2l74i4?oox;ZHrrNVm?nV+uh zVd*1A!NzvJOAAlb36kn2cU=|_fCrNoIQp%BZI1d&8ZDdg9L;2CA#@?LS7nc*(;Hly zZPwr?)HQeh$OqzT{`JE|T~TG9b~vT|1%Sg&Lp5_(XzlRaMSXP^op)rt~w^d=g-8^!9gMd~76D#_G; z({CBq7#bBna1na@lXOuZ^JU57K>P3!3u|;~7q)r-^i0m5BKnZv7JnD@-ekhCEMQG7Q-QeMwTY;JShNZMO*wVj3|+m8 zLR=4s9s4rD!fW5GA5G^_#Zha6GIfPS)Wx5wk$!rh#nb*NTAiEP+qbi6gtPm9(L+9; zUMtA9-NmJ9xsOSjCB_5CWlCH>c2#wIRljNUv8~Wi7E~?s`fK;j# zRq?C8F$*&bAvD_?2&>g?kQ=an+trS=)hHEaUVAivcr~(!xIb0mN{1+<_+q=JV~Vil zy4k1Vu+~F|`1{sM#Ur+z?mkD95^Z_X*5bK!FM+kkLy+HOp~&(}0OaMb56O-KP1*Cm zP*CfT2zDV$+edF=T9=)=d0+cJ`dU%D+G&v*s0qaMfUc>}e(MKhoz5M9uTlwZE*UAv z%ZHX~?p*tf^24o4E2!Ab1%@_EH#>Qw& z#hotHy)l#W3%MJ5r<2crsi9!#k>ZkvloqzZG)^kBGqK~sSfLyX;b<+k*+6MhHrxbC83rC@#HuZ8J-=G#z zssT^;hJpaRR+%TqHB|S^W*qQaZ9B;vriAK=)jh*y*7?`v(0pWYj{|LGL_(BZc(lkyJ)VsxV4Y3kts9vo8)VB)TI~)Ta0(I}KkBg5k*S<10 zKvMGM`7JG{Q-s?F#_%rlE7Fht27Q_{IhCB|3}J-)cs!$jZb22IAaLkws(u6aYg_Xs zHri;14dR07%JV4t5B3ux46U!JL&#a8OC`n}7Du(=m+UW6VJ`1ir*b|X>Hb7!d&8d$ z+XxY&DeKSFI905$EWi4&Q>I*;hP3W0>!(Cb`vRJuk!QGTS9Ogk_Dmio)2wfZBD&bZ z*M^i||H2}FXdS;epQunlO?!3MJ#+QdXY07FBLW#_Qu@`c&>|$>8YI72tGMkPp%4UU@e2EtQ-q^c6wi#r-{=H zdyf8pqL;X{KTbX<0gXCq&jMgN_vPRX=otIuv+&^9#V<^W#t^KA9@Uv2uHKEz?*@I-~_G3Q93W>llwUk;ko(nNcXZJ*Z5|xh(qaTX^hD%=Gf&6l>+DjE&B7;Qku>WB(WOq{^8Uu`=qcGODbSY}J-{DE`V9t`hYpgX;o+ zGdKFt#<3XooI26Ar_%TTZU;b4HFuit%&HDHUOM)Ev!Lm-Fr*pn-7xfdecPvI-BV^@Q z9iANI9z+crSO=9&V|(pG46gLC`1W3Z5k)qgqK4EuD^H1!TwzZbV7!dO92gA~5eNJl zu`8|HsTe>S-f>Qsq0n{D_O!zTf8C&{b7GemF}`f_o(008WweTRhsZX|LhwEA)oAvt zco9}W>JN$w-O_d4UW{$S!7iWzhAE(xsS(5scp^NEdQ+w#@!Cx}ta~z0_h<-zQdlvv zf2*`5bT^I)*QCkAd0F?x!OxBJ8(da0De9?Vb*i0cqrq6SUQUCm&ez?A=a;{N8`^mW zP$7%=v}q^5;7!v?zw~IhaURK@a#g^0B5YlwMvFYfZsMF-jN#|oi3zuU!x^Z!rBNY0 z?_+D@Ilb4W_q+WtqGrZI_}AEf#FLN)NV2Ojqjh^0k3ATe{3zB}gs0psz3EbYRbC7F zfH9Z-ybE-@j^*32%>8YjZ;>;bb_}2$`Nby3r$JZhqnsqE-4}9M&L|r=YOZxn`8!)Z9 zZO7DxtJ%3~gvva3?YoF~N}-)!6G_likgf0Em0n~eCNrCKzcjn(_)-=TWYhEkDSm{Y z23Ncowd1YcM8Z=*=>xFC>$~`e;@qDk1S|Lzrv=X@K3)L;Xj6 zAcmY9r*5fqq(Roo|gmF z^{hF@n|0TEc!}uUT8b~`e#kcKb0#xC9>@F|AtdE?tZ)3ZA4hV3@-u4UsyG`JCjUI} z!(;5Or|h~qno*%8G_+UFCPNH93_iX|Id_uC+&@CH!lUR+6V|^~!1!B>san`xoMfiu z#7RA0Q(22}n>l;$TFgf{WMjf2pTS_qa)fH3bR*ztW_~n{U5A(P2Y|Z5KzJ>mU1JJiDpZxtRmoPOy812GQ zWQD3Y*}_UY56M`$3;E66MQms4ipclBn9a~o5^>b;9(`AMCi0PJUKP1B1y!XxJ6#c3 zAR3xj<*&?U$k5w&xi&!gbU~xZZgSimPO9UM9QGMETYnCJ-SPfKX@`jC57f1NsSq)_ z57V{Ix{|g$N?Zd4Qp8j@ws}QC2rL_en2fK>#We(y&m<;~hWtj?TWginKFFDG3y~B1 zkZ{tSf4?y{`ygpQC*_WP^RZJd6-T}6lzhI{Q2k!$nKXS&-^bnIy{{))Bj(KC{GQh4 zrFZ@K5uSN}$l1Dzhou+9v?w*5%^uA$MX-JC_eE!SXVdn*!`IRY6Na?saW{`GHY7?z zO%YF7DsoM3&Mu*~><2(pmEFR}HY6I%IbpYYCEp?x1~bqlGhE#w6@JC{JBu6jDO9`_ zYyalZ-p?afcB&1eI8d7vu{j)Wp1ECTH?bm{n~XkxmxOHvCeJx9;F@gQ_S~l?WbQl{ zp~gvhSDbjr`q88QgF?ib&B~%&Yh!q%QMY=sHeJw;Vf=9#Z5W3)nrxEv&33A&&N*i2 zlVY8tNf3FQ&Z9;Om&4k(uj(mr$lUQA1}?)GA8j6EC&f1=iYo7>V~mF|(`HeB*vysFq=7JA!^jSF){49gOPxBb_Y*6>ziv_#X03PL`@XNcp69w=W_m4MP8n;26%>Skqd0lF zc*KBm>avEyKpq}`E*>5}Y-VOX7|Id)mm8b;DHQ1nL%_xU7eEdP1*2|%eez(`ElwQ) z2dcO^0(tp?yh38U!eTr;Kt3KG(fZ^7705P%2|w? z+rz_y3+&{|g+SU$v2p-^Jzyw1pbpd(igbrs1Ai?H)Brm{|7^yE%?#ADgSr0k>mqDW z9$+LCc5QLL6814mw+X8K1j!>W`NR12SiQ)i);nu%^U`JQPZ9dq49Sm~>TipVFPYwox zWVC_c+Xeqx&lQ4%Iip;;Tw#vCR^i|c1zX6|KNGwEMF5t+#K8*ucP$OXEo-4bmVZcY$|J}Fxqa~de^dQ;%KwewzpDJdNdDgg zf!rJ&e}`Fq$N!Ho*a_z7^%vllv~H+d0jMKxWdQ$gr~&kkXk`(O*8d$-MuBf-AOp8` z{QD4Lt{|9yC)8RChJx7r;mRMs{x6L=!r)LXge&aVM+L~q%fs_uv0Gt59Bw}xuD68z z9fIEK=HD$9;1GoMFM;t13IV}LB-ji4_KI&UL7)%strD%Fp1&y!X@fNpU;Tf9&59heAD} z5bW701VlW2j`bz$#Lc{2C1x^KC{Rcw+lSXB-V>``Q%`!s_sYfhX`lmI z5-4@*JKs4X`eTRu`16a3vFo3r|P9z@WC#B0#)=azPpt~QB=DRFDtIOMrIc(q2&?- zi#Z15xZY3Lu<-H&V^+}*bCO%atUP!olkmwnssyh5pT=a@)lvpqJXuFM^3^A-7APOJiH0M!}n1!tqDk+imnEyQO_)=dEXVe%s>EK{&G zX^G7mQbb4`YJ%MAho@I}ckHQ@haIO&0+$3XAJ!>zIVg zc=+Ya=cw&{X1oO#((d?+>g*gtnIN)%nw=TFov97f*~rxlzlAR;st5+N83-FgP35WBX<_h~Znz!Z=96-nep-(O+ z#R8h$X+cVQ&)MckecyT-5Zq$8y|IUuOD-+op@0v2uAna|>BOeJ+mMxUy0)z8xllLh z-f4k(AwQQ?ZDjl{B0UXHBa||KqMDtZ?#tpe?wTwXzRmJlf81Mv9%+71@MgmsLyWeSS*`=;zXKQBFt@WBml=y zfJ^IO-vs#}K?~P@aevsVV_sLJTUUBWQx_)?!`qKioW9VjCem%ZtAo0M4onav*tj&{Y2Gfi@p-3uq{e)Q)s5m zua1!kw)P7U-7_D5Q~&&#&HL>IF80CfXwklhPd@^8Ke$-MyS?xH!5s6zxk7S06<~tp zXa8=J=HS=p!KLg9U@8R>G|pu?_mNe{xcq#{mx+xA@?-%PL~ixF&r!(-wmO}DjGIj* z*vT$N4SqkEFl-X})Tuj&3zwETjhg}Wqq@V^&0laR%nXEoHrlv9+m$#kfLPHu`HtCA zHT+GEuy!{1@L$2GhD*tKPJ0&>238(lo|*s{mDdXLnQC;;;#KRdNZcISEH(noY3zv3AdU1h!+=8KAzTSqBXprw1CE92{ z&w|kAmPMX_Uw&q;Xe>UQm_b`Aebm3?GA;Jb`Obt;ToWN{%`)XK8JpOG##D!b4)qew zJtG{!pV#ve+ks=km(@SbQu^A0iAoh{7{1gi=J+a}(FEsSgn(Xxc_agt?N7H=uqjxI zS38Av#C<_73bu}QD<=1oxb|venqHpNmQQ-4t6!*p7Jf69`s{DcXS^JoKhylI42P~) zSGZ-X5HJwX+}=g4Ev&HL-1+$$qhT{HO=ai1XfM6^g^{X*rguf=6z!?WoBGpAi=2nG z0pn6ko2CH8=+f!oY3o2^4Z|qSn8X#|^ogiWT=RpJCqs%N#;fjY$(?O1my0`iqjC<_ ziJP8(DUDUB6!na{t;MtvoFQ1U>YEPFgcd$o#!OcG&6KNY>BhdnXcd?qL{(6ay((f* zaju}j+B(877Er>7k4?I}o=-qtWn$V@Fx2E6R0K+uJycIB0$}YldO0Ye!i};kZj8-f ziB$yT#ZNCj5uwdJHc2j84{c2!`i|lk>B=sDHh$&1dnIY~sm+N%nKieU{}eW&T~0{M z<90Ug2p+CY@ypRYyS~o3DhDOAR0mk$ZewpdZ`CtvWHki_$GpzC+tU0Zqi2|*EOkf{ zSFDcsyVb}I7e$yjKxL&VHn#n_%?8QtlR~k>l3#r;mo{T3l}}oA${RoDy<&%($n_?F zb_V&mSUOlzn8EQXa93`^UrG1(st{lTDVl+(zSy{m ziObRrSW`;fiX3|BO!P!ain{O#ZsUS~zLGTrWPBeWs@@WJuVYmVfxYsmuO~&d&%WPa;c~PGmYHzhg>T728Z+7}&%uYl##|5bk=L zLgXulbtRp3uofI_F{rDIpcL5ZrdO&SGd%GSNNq8nO6x zHzar8j9CIa`|a;Gty{K~I39=T6iFciXsT+lT@}pBBsy9sTn20}4qmj^Us^ue*Dj)1 zTQd#1#Jm@L^MOb6{88L$h|?#3&PF9uNg{h){~|2>sfKMD>*pj@q59Pmz4vmY((LK+ zuLtq6YbvdhvncTxt}LT%j0_(eMT5h!#&C~Kqr>rZogjQr(htLoaBD&bspl`9H2Z69 zmW2Qqio!XyNiqi+mht^V#u82ZGKN34WlYkM22pESx<3Wp1+brUaRgF-ug_zsEPuSP znKgiuJv>*h@zk2be^l*^SI#`RIVe9hoo)&@HS9bm5qlKSJ-YZU}YpO(JpNv|X=*Wc$zk-Y4R~n|^l*>o2I5XczBeG(=j!SokU&l@3K7Pn? zvpsv@Fa8Z}h9W!0(W{1kqmnX6Disjnk~PyFlt#C2SmXurttA&MNqsM^4tQ9MqRMyL zc|Jx_5xzK!`RS^}UVlG+o3l`7Bgs~V&_UsOtb|uJz*az1@($T!?YbU)B^GAsy^$?Z zx30{|hJyL_P_gyL8PxKuHFUZiZ@S)v!wqd1b>-^1|esbBAZ72Q{M*!=dOqp7_j z;DKBX`>t}aoN47i9A*m9LmXPLi0%^GecPLpc8W7^B!D`SZ@$f*eCy@i*axImjVBc4 ziCU5!eCrgmQ68Ji{q?k;I5mRj)0$gBME)jekB=96RO(boK1^1(IgsyO&vmEi1kWt; z&bIiRIF5v6M|C}a$9rMLUCvmC)D--V9>=r$4DUnGKuu5$xb&W`W$|cJDf4hmHcPmf zs9C*cX_gg30$Zf#KzYkSkHMHc`Kyhx z3W7~Jt{Zn3^vlx-ZWE$3GLkAGF6kcc!CoyPNzkY-Or52Fe`v9!C;Ulve7eKc2j&H) zJN8y+UX30kB77>yl*XLSkQBhu<00lL^PfGYe%j<*J=KyL%ZkOov+o5c3d5+AyW|)} zOKzGdV?&m-%4ObB(WRcfQ(XQf(PMMwyFoYVz->w}haW&dtu7X zl)?xe9GBd@&upQ%V5QygZ<7-V+S<@I*IowQ;gT$}sLC(v-ZE-&U#mIn*OrRHx8D_3 zFD6GqEf{=g?%_rAGknyzsHEK2D9g2TE5f}0S%Uicc?Fw5vLP7Pazs{gZXG&IZ1RX# z=Sok1>%GPGrtt>BchmBiKL+?VkwQIfj zj(cHSMr_3<#^m1GHnpfHmmVlMkX){Hxb_WeA;z=T?TEq035oBOc#F@zxbZ`guU2X> zRSP~`HT%Hoj;w2B%HdQG2U*sL!zvP-joVViEz6wc%_A1W>FXNm2c&c)9|V6aexg8s zn;2=s?`ShlRYXJ3Vs`mGk}>|OKa7{MfA#&++eotc=z^i1lJ6v~ie0`QjW<$EYf6B* z3`T2>)~fW-hNb7k*yFF1Lzbr$-(pEWZjAf-dSH%gU~w|gdn*rg2Qw5~h*NuNmj6_I zNw#{Q;Shc0h>?bs5~h;N+T?{OEJ}cX29u!Od{;;@Su|;-dIGG%`k)ZrM#7|y%ENZ%?N}M2uEYQ3yG_=Gm1P*Q|hN$(T8Ma7IyX2h6geI6v!Z{!-i< zgBLk_)`qn74EVYSL0`7(zY*a+8`U?cf4*=^&k7Q*^o+E+tke#hXj#D?`mKHBy5E5F|9u%=k+)E`mjatU90SAJX{QiUmTo@}8l4k}j$7RwEA1+%7- zHO@8mgrU_AA4Mp1iN8jR0e6$WLEF4{&?b^mLx;EfP{!FH^O@Q!tMTD$3VFMol3C@> zBP$gbu09F(laJH@mW-Mw1N%mFf1}nUR!qFh8Ylhq;xPgPsjo^($R$O6+UZ^r!FZ{tA7-VvdvcRFe_2uCJ3ksS zPKQG)MQ8gqM$E>}((S{V;ahZOmNmDerkU~|Ec)DQ#lk}V34|1vLgf9kGxz8|GLE0V zqWV$yIrI_B?3tV;{V~{`yN#PH*J}16wLt+FO|^8l;}HcuTQ|fc$ioG))>U6g2_O;z z#xdW0ef@w+afd0-)O)aYe=!LDtVXbC+t}O?c%`bRtJ5X=s@Y_h>8_~GjAJ*wV>e|~ znpq-1jqX_7jcD&li6tE5ck|3o^w67zDNr*>Hj%Obxk>Iaigun}6(vX1ambu|2h}>Q z#O&7Kt3z%8$WQVV_+&;ee=}~hnbTRHbk{!iJt?l0fQF*Gc`72Qf1i$>PXC*`K9J9E zMtFFFvfLfua;+gvb9h;|VteiWI$%?^v5c&%jI#f;;jVUzsaN%JuCNRbZimm%jK7yT zDpyBid+db$Y#RLCFIAYELp1qw5(wwJ(i8R88A>SOUPPNtjJ*75f+2^hMd$~&l#X0Z zn|!jucp<{$Fp8bSfAblWdDEwqJ4)ndE?k;^CYLSxlSaD56lToVbOhmL7({`TxzCt{ zj-*lOQUn8=PcX(Q4Prv>9$L$ftIDAYMbwBQqp>$m6n~Y-f#&e-O_`+X$_{s_JtMQIS`A zQBNKn-4I#)0q#vwg((`J_5JQ0Q{N=adubDYX$G z?EQnW$SuSAe~BT?8|dbq8duP95hJVH%I=2~)!dP^7{zSZ%)E01Li9|qIY#_&Y#NUuz1iX7?K%|32f z)U_VTq4{;6|5$zjA6sS0Y~-`Uu8dN21Ygjm${mD*e^=nfL~RvL|ap&H* z(K_=76;6>0Bwl5C&5N@k-sJ~6VJ;iqr906Zi5jv!A428yoHSd^##X1uBx)3nzxsS7 ze_!eoxi&?z$y~bZP>b6r@r~ShdVWa4lPTV;Zx2h}DOuQi@M0{`c17((zdhlu=>)vM zltwbFf5sc9xlKYpy=)hm$WEpN*omc1B42U{m8N=2RS->jwAN8~EIl#%22o>F+#;?1 zktSi6Ry<_{%0=8V*?t;_uy+_Hi^vm0mX|k+>&FC%n$xY{?SyDzUe9rCfGTeuDxnGS z$#palsDxyHm1mtS~Cm_V9H_V6@~4&0xf5A#p%!#EBM&k9FdzUTxs zL&#q~gnis6d`0(JnRk+NzP2C6+M(HIf5Tns*@L?ZdEO&R4k*w;p|_V_lzM4w>HaLd z9Pum=pA{VMYX%A=86-8-{&1&uGZ^~ul=j^r)m&#xuV&Vy#Lpu4e80qp@Ge}m8x z-BwcEq?^3g(yJXw++d5n^nbTl< zJpfPoFb&mdSkne-J!@sQFUF$RJz+F3X9k!zy+Xdd#f^5SFq0^)^V22Ye0vZ-^AhR( zbstg~C}K)!$qj;=qF=AnrE6f_@PL7JyvtTdX*)jb$Q`|MwU{V8Xv}z7e|zntd~s$K z&v!c?CbbHd)B6nOkYO4)!!rlo2uI4fcUDtAK)S`0OxN}3=H)`M#(ljGWXHx{-M7w{ zHj|gCO97A~cYuaYpw7&+BL9Wk^jVoo@ujeAQ_)~9{pzE0lT70g_WHH&MowYlPpElN?Z}~`rzGJHMwBHgz zNb^n!bbjNT_Vp-wD1?dwP_n_y@;`Qi?}(RQQUWLuG%_~|FHB`_XLM*XAT~2MH@xU{L^ALIx};0|Eg=Kp^SAfhdd&Kn>!7um|W119VVGIF^!I6@~W3ARL`= z_;vn%1n|Q60AOipNx@&~0A)8g1_6U00s0V}6Wk5IA`IdRFhRi(aGdu)O7O}#;c#df zAkfp(QyAiZh80F(92NKk0iFn)6Tldbg=0M6_JE%w0}LQ;@IRvoQ*r}LoezeszF}wjRI`4M+Y4>-`1@0{(0c04xmtSGhmgKMNs{ zzmg#^7|IO|L3$&QjsORQD;!{`p(l*ubqGL1 z*$4o^Pxxm(EDVD{27g~P3Jq|;j{)~bIKc5gl)hMq2ONOI+=u)7{%7Ey79|)Aut&gf z04UrMfu#I*b-Wwy@Y}|pKL+6iuma)f2L^zCe*X1jjc1rW3hCvSFgT$l&lK2OI|9{rG4MF_r<3Dn>kq#)p&tgCO#c$N# zJ$w8i0q-A$@B#i=%m9U_E*!x7Z>HY^iGyJHFYy1F@4r(1e>DGD<$q=Re|MyD-_`Y3 zocA~2|A|A~5U$>T5P0g|$Khq5kHU)q`QK0r_;2m%!|f6G-TphOjf3Fjpp10HQ(6dr zEG7&R`|U?yH4t8K``ZW{%;`66e*4XS3eFXQgx^MC5kIdOd=?1wUopJOU@rJ;1dHe9 z?+^rwmmKcbLH@Micv1bc4|OCAW&cxsBH|JN2nGZ3roq>Gc5{kSH$<2{>uC0_9$d2_Fhz)LFP?exsGGXM9*s4h5o^T8M+?!7coIP9>FWyT;Vu6 zb=d(nH8HYk^O=GxKk`aFHZ$peeW99Hl{W2r%jfx0kLnC|oR)Vst#9xqcS$vWXpFX*KrRQMox@m--U%`i|$%uN|Id}b`#G}X$_FyPxEP{7!>OfOBh z7>2mN@Wj9;?3a3?vE$0RF0%dz`TZPTMX#S)xc!;cN$KodES7yTHrkt#o3y__4 z)Ljj%VFF)hauN5Iy~s|hXRN`q%5g1)eKr66ZSs#f3B8snSK7Ze)PkMwR)sj0T_NoR zLpxftb)G`}>^hu(;!2?p_+EHghHSyCctFm{+jVycB)yLuDX*qGF`G1p74VQe@TW(g z3yp0!OxXY+r&G3+y{xWcKIZGYYe?hWg-&+cIJi=EJwKt3Uur^%1wy!4dYJEFe@2!{ zxXHtLtmvCZk6iKvZDOH`ncF@?t>h4@p)fI971E`Rt0eS)GpBtcC*UoC(P_HzOEh0B z8tX&`(Wq>-)9msnq7E;GL5Fu*^(R)G)~4zQFPt-t2ciRj0;g2V%ZwX<%yimWSE*&6 zJ2Q#sy1l%t9IYGXhciL;O*fhXW$ncZ3Qdb?K8VW*E}eKV+=A&o;-8t474Ug;jqFZr zHN6kD3*dTxkp}0*=!@X&up}Y^OHlOw$}Sh8?(_^ok&UO_SF>hyAhY5w~G)Hh?#%<)AT z$_S1ucDQJk{-OC1xYg-91tD!WB?EWdaiI$iC;naZtE0($ zHQ`dkCdT7;QoOIz%VlF5M4VF$ZQ2(@+Gx4EEXvr0=Hbx^p7W!cp~Dj8v^=fYhJ@R@+_9@<1nyPqAOr13bf;Y zqLLWdckcR4!8390&W7A4Ez7u?K4LEq`sY{u1D7>~xUz0$K^boFHu|`z85u)yvi1E} z)}4!5dU9N-mJOH>#45*0#f~%f=IduJoR#^r>>S4;jGorkQSg?0mK_SJF`_o(3{^!# z*Ip~h9(Ah{NW<58G^}`IC<}gs9mgMkmne=f#bF4dzoxgh+3r<^k91ORG7^S_0@txSp75u?--{&b_mG;AVY&7eBCJ%EU8&+0m#l zQO*%RYfeD5b;j~4t50jttU(n|3QMx)q#0PLFW z^KrL-e^N!8j($&i<%^PbS%8?nqBxtluOlv;dj7^8#uMs_3dgTe=g7jM)4n!w^(IT-U$|%*)r>McTxU#&bKVObJRAZ)?&DJ#{G73Z!~K}&kqhqx16)APwOSg+CHGPH%isf z=4xt7?Y11?eb2<`X6(Lp^{`OKiYYO`VTzVWS}?U-qW;r$TkuKYcz`E>>e=QKHWNV- zMerlV5OS*BDdmaYd2d&L-ryy@ORaBk&+<8mw#?$`zkOMw=wdE+QySxEJdHPHkdFVT z-bz?(Vdy9{ojUa*mZnB)9lgqQ1)@dDag+R>Ptn;+THx3?N2t29If-u$IBFL>9Aa9V zVy<^KChl#a>*o_Vw!4(J?Kjzi9V%{mbNeAQA2x0aEH3>h2HiaUq{hgfVmE zHAEb{>Q+yLh$_ySzwBRG3n>fod7irR2vbEuv#~J7Rjl%qN{#s=wn+J})puQY+s3=-$pyKL;S_EYYF0#*ab0offT8WG?I3K$q;B1Z|h{ z{NY5uo!xSOhqDZjitswY-TFs?7w2Xr-25jJtoPpUHmR&GCQT>E4Q{O5j^#oVIadaD z^{sn$$z-;`Va6ai*Ff6DYm@ z*>*(enZHYb-l)>&uN5z;hcxATY|5S9Z}7QPXSE_Iq@d#oM@m?m>qlOi7s3hQh=6Xz2&z`O?{@QqpWV5-sa=@WH<3<^d4BI>)63vj7oSdz;V3(g#Kks@{dKhB zmp2nt)!7b{sw3A(YoAQDT96!|!zXrKNDD%LMh2AgIca%6SnDq{zoVm}pk+9iiMI)= z9Gx^wsdb%w^VVCQZLiG6M_fHNh}nnhJa`E9bq+M-ViJvh^jvwH(5V!Ir3!lOvK(T}sZ9l61_Cbksd1y(EZfnzb>G>I;oeXZ2ry zEc`DH&1A!c)JIuX!je$WOrf7&9z7fJ3=DF34CaQl zb)oN#`isgVK3F>})IUBq_QP2>wnd45!8Qro4kS#=UDAl`45cwlRDW5X=K3vW&gq_} z9rV%xghQ$*vzd!`ZfC&8O!R8CduGGL{?^j2D#^|A3y;p2mVM`QI)XUG^t_XqA!YXQ z=2dawGOSF8bw8`DmPl3D^EyS>&W1V|1O4(j!R_M1y&G`y!jBt5IPk;wKo($se*#o4 zJSA!7%;glg;yX{eKAMcm8p*#J`sj5Z(bAV18&4B++dwJNpQe?sr%)G;g;(1H+gG-*?*7H;MvS+X&?rz`C6?28(7wa~EogB#e?(dtn ziUre#cjdi&RBBMLH9@;T+TpUf&||;g^+MZ8UA{l0G_u$_(Ha9VP3-cgZu_PkeEKy@ zWR|(=7Ikq1amM*ZuN6g28s%gn?EaZ|tC?|-%K}k6{*9z@Fp9PObx>z`s9*b?+Y|Zb z&wF{-edb0t+1tOgoh+u2pvtOyA@Cq1zp+`y&->J zeb;C`IgOlmQ%z2`-nph{u=!;EgZ9d?2$q4pplSY8xxq19GwHQ|fk}TftWRX(N839L zy>R&KlH{c7LmO3<{Kc5H8V31UO#G-_>JCG;t9vD{i1ln|h5?*4M|Uk5RL}lJv2+X# zPCfiiWfPaabA{m=o!#vKlM7CH-PsF8_2X4t)~qa^dV$@jLd-ob5ehD=cd~GpWA*UQ|3k8he@Tm|DH~z}2M`s)RHW*d3NN zPKZV3CPs;PzX`8q4E@mL&+%+ccm2JtxoOC)aw(R@*xVGfx=e@XU{3BRqdJV9Dk-nK zqFY{je?6*Hr{8Y-Rq`D^W3R2b#PxWh9xn>K)vRmYTZE9M~8+ji<1B9@~fETTd zI>ncl!dte2ie=o18T$sDyme`Z_nKyRRu$E6eK$sq9j4seSai8Ho41#! zWRid4r$fbmcd@5+kC>H|!Cx?W%)?AkO^z>cD0R!aDC?}~TgtQT#EMUI>zZ%->0Ts} z5Hx3+a;<6WA1r#u5M)X*iUIZ6{c4&!Z{^9`NwD;h5RxR|sIQJlxeRh33f4&FpvNiM zd99Zym-3h*1vq5osk4YRKR$TiBSkA|f-hf0*gmM|ob za8{XrUXoG_Qw;sQqDJy8jv#@}>fxTZTJncZGB=A7+gpjy7|2DcpC=!kw%r0vWj6u> z@q_eXp9=}=tiKhQYtavh|w}EMsD?`i&4Dg7CYW`P4jbg0-9pO4=K!|KglvjJb%|wv zc2^5bgdC~Z`H}vhEsM2jWJbVW=^oYWr;0}2l+FubZ*z+llOMdGO7|10f$7l_hwe3) z64T{<^9dNBqa)0|VAVTe374EGuGAE`+clJ@5?ebT-MJy(Le9@K9Aqk4E*0<~BK}tT z*g{{YYsyP0&TCDab-mA9oODi`OJ3xEvlZ|<$6Y{I_!;H>aIvg{u(2c%eJ{whd8?-3 zHCE2N&6A*_A3T{Krk1WUTZO*4xaOXZ-&RA@A=u6b^(24`x2VQ3f5 zHnuG$Z0N=1mFV@E?)$@|J1xxl6+@0vx|$5O-$3;@f~HV=J|z|*+rvW$nSN4>c7Yw@ zG~N34&L2~z#Gap@VBI53D>|HlB{0()J9V1B9{%MzmK}*gdR0r=kD2A zxg=zq&#O?(KXO7bR`z8;L_E@|eQm4FPg_|0{tG*!+l7Zy!F+b#pQIUo8TB`<^Zp<^ z6iX6kN~yOg4VeoKX3(FnMn$rdi)-@RDZVz=&@ZE2=ng!e9CloKxPk6+n4Tv@5}gxt zi1&eM>??{|6Ta&9Y|>llQF^zyQ#7b_HF0$-{ly$PD6xLSVsn9VB>qJGT2r5P>z2fk z;HkFh3$BQ`^AYc?4-wygk}hebq7kjD7v?ahTx%v*o{#g7HM(bIT3^x{7OivL8i*#p zp(ayC5JN{0#?41a#sFbj%F_2rIveP}X{(oZqR95ro}T|iCSnS-C1Ne<#rvgA3{6#a zTdJL(O_JUI>mcn`-{`#nW@CYCTpr!1RJG!aX~*z+@^kN?)mZ;K4Emp=9EJCrzFs146GOJpFD9>rbA>TvKI%RA%wKMl`+~tBdd;Gw}7@9-|Wl(Okd*jRav@4#B#CfZj zf;TS*8q=(UR0h8sUE679z)eyl+%CUH7HQ0MY8q9eE8{Z)RjnMvapya1)V#RjH)s7e z?&3|QWb{qyUQo|gRbu`Z%I69X!5Y<_$9eP@GvkfO#rBTt^=}zF4L3IXs6#4zx#P>N z)5Qzow&x9hRChx5n5SEm6~;aZf%`1iTD6JU@1onuh6)N_@qGZrS0#K8&itN$O${ri zr%^lh=4fwI7;L=<2IqErt#v*<9C7+9>oN6%RMw9w7*#Wz%xU}1h}uBANhq<9Xx$w* zlJi?iWCtPKOm^tONMO@$OS~A>Yb!zFhT_-MPkD%cTG}0G0Szu5+|H;a*lALYK>PJt zWe$oCoswnAWkMx4(H@ViXy`8W`ZdkBk|LE1c^a;B!L29lPo9Lor8>M&v0f)TqnTM@ z=#t1h;mv7(tez>9ecj(~Bb=_>z=(kZ{9})F-JMZyXD0cBx;@eRm!_FsmaI~xg-p^( z{tz0U3ifOx+W^t zw*N}ic)-aj?wUL|RpH882CDj{wdE&Yr|cWctBUI=gk2j0@6wT@n$Mpx^hryw5*S}K zeHU%xA5=GV)USK(g7fg$Bq`t=>*qETX4GV<{15Rmbek$!@ln_*Y(BJ*lAy2VgaKVgJio>UvphOoyqwN<_ z@F9@k+KECXg~+rCx2=j-7=4I689_an#p%}n0J8{32nuCxWOHr;keusCfr3aH`b0)z+yA!1SxaVanuCmfRxZ~ejZ2%M-29uf4u^^VBA26q@+0C?{uJoE5ZW_gQ9@iP>dtO z6?-BK>H;)G!;lD!-#7RK0ZDIP*+a@w1Y!0{Q>X+|K1G{A^`b!xxd-J3L#Oylc6ve+SLt;@?6vy|{@JWE3hjdm_-oiBQE>ZTL%_Y<1dUNhcQ1sx@?Qwn zMe-k?0|EmS1xttvO9%lG?m&bu%u(=Hc_TkJ#P1;Fmm7aOL12Iz+6`!r9Rd-Ev`1k7 zNCG^e-UuMZ!wV4@@V^89v`8QjARGz90PPSCNEFF`s$<;<`#&~z`5s7LpamGqJqQr| z>-XXq1cJf8f9OE2w9xf6qvr_s_)tjwvdleSrb|5Fo#hC>RKVh(mzl*q6Y6 zR?&kZ|8{=?{!gkp${r1bfd6!hy{3P4?ERMjTz|#E4g6;@9W<7;2q4#gNNx!h1;elp z$p1Ihf2aK482+ou|BK}R-H@u6i_7mY*YEiM5r(=VUHtw6u%z|EUxQo-%wM; zAJJ+f;7Bjm|Bk9-pjaU&pd7Gd=7)#~fJOfJk)D65NM8h84~c;}{-Mktzws}rxgb#p zJ+vqC*S7_m1qT0D4684gGxq!8iRI;=5Y!VZHq7re{<0BRIsLN_6%-5&|D`)2Q86IY z!vpF^f?Yk<5(Nf8umXi6e19_=C@6qJW3VYe?972cd$b41uQf}G0|lYKTz@PHprGAv z>mPrIz`Q&>uwDG-2DXEL*}s*JK=>kHBr}s}m~@y^O<3zml>(Cw|H_CA;ZE9#nGpX- zo;5M1M`hgROQK;`=B#Fk>P$C8)!L~;N74P{#pkJmfaO}2IzN#keiqel4lH&FlUGN$ z6G;Kb0M<#0CY&786vf+8g&sXPdd#sm-&}u}gFEyXf+!wv)^trL`EXDdsfufax9YUN zsVd6Uq6J8rY%LjJn(g|GRzwf!IkT5s;~#x}Y#E)Z^PE*vru~#8(Wmm}V(&oTJY_fY z+t?5d@6eT9_6Q86igX`9S%j$4WImVtJiE|)^ZBg+yL(iMYTOp%+(|_VD;Yhen*@JB zk(C3kt4~(FUP*TbJ8hPnXDWOOt78_UaLcsSA9}a)y|(%wWM1Qt_`^wEmv&L4{UK(fJON`tWQA^s?Z zTy5>?mOP1THczOV1tlf*2(t_tS#G%O*}tmhKZIL_l3y>oSSVL9?qRy6p6w^eNfP=!do~T+UBD<-c(eKTj}MYxq`NAJrbPUM%~@b7HzEFI#`I_Ve** zsy=5js58&{@r}{q`e@GbTPyhPFN|oePiXy6d5%hQtS*0TZ9 zPTZx4xm_7CeEI?`iHv;EQ~d3%nK+A{L7o)nhiQl;K=;9Se<6=g%=(kd9~8S_ zXAWuOcV8r4G01@kV6?#64yKqP0!|YKVLOlgX+!)tK)DbYq zYiz5t!1%LxFG1$Ed%%D6^1IXE{ld7AZNZc%z%3ergfQx7nm;c#CA$3vHl|r;-x=pz zUgyo|eKspq-WC>=Ye6lCb55E0px;$mWB+Pw?x^ zhx^~$>7dXOXeU?sg0RU|deP?rJ5XnxWfOICiC`yhU49$MW_sR58@YLLIMq{;Yr;dt zm}$*_U(L}f;q-qZO1ld_%2DNGkAAdVf4|noH@!hOxBkP)J+w*E7Z7qv!r%49l#`=RT&PPI%I$s<9`A~v|R5#0>+5D>~acAN0ckRXcJ~}rMP<&9S zeq#D%b`!6#1v28hb%;7erSIXJ^}ce7rj)CKDbAIBd71X3We1;rS477rj=uGaI7Wou zH(6KnfdGGFr-oW8XgFO=!09+#4M|XPv7007;_#j0a>l2sU?(bk;z5L{k|`5+?&H+Z z{E)N#sNpHGbnn1J>H-lV#VA>Fyq==*p#%3a(B8wZGUesI!y>i=3h1tp9GA+DX9m+c z*QT=Q7{1kasa^2Wz6J3YBt@jYJ~GJ~_aKig&M|-GffJyLF_|CBzpOISD?5cl7Mbxg z+BQ8d>F0{>qR6Vt(^2mQD2ugQT5*Y=RkFuv7^W8|=s4znIj_&I-f>I^1NEpu=3A4zV~W=J!K7vuKolTi3H zhem0EoGN9$*yE48Vi@_-rlbM8ilKUU2MX>DO^7IfKT}2vtKUyIro#VtBDZyK9!}?t zKg;z7U^n3r8C-K#XZ?gKM)ITy5vsk#9mRIJ7+-#?b9rKagSXVxb5*KjH4G2@+}MAZ z4!^B893aq~81rCG!MX)S8;&cAs(m`x?HQ&9T`+%_K;jEtmmwI{%o`8y+2YW|K~W9b zG!9%;70<>kx6*|&cQ)SL?sjF-nK3LUl4>#~lO?o$3YN~ZkRm(G0L61lfnKJ*TZldjeI*eEp; zGU&uhjjx(Nj0VAhIGl<{6h}8BW>+$)AhnOgb`B~|B!>*DKFDQmee`zsxe9& zzol1aRk?~9gJ;uVQ~frSh2% z+vfbm@MAjhiOFo8TaYo5;9eh2DaEZk@|1l!lJxed=phUc zySxd$zctPF+Aclz%&ppk!9jmG%;~mH>TS*tYMBn{6r-%!rS2rAM=$ut%nC3UL6fR? z9*4K%%#z4mAI!B7VtE(H%ddBX<>!y}Ev-38)z#bY@R#gOKE)m9wTry#-xmRz1$87; zao4`z<0W$7Cm5WeADpS?iFW-G$dzbJo^Y*w)V%wtvGsVrED7(Me2stGs_-QGQBZqr zOeyown$+FCZw@NjvCBBsURU~wZYCkLZXDtklJ0Yq`e^m<7w7dRDFpG_LRQf3_*39p zE*zHf^Dn^{5322F1ea9fJxWfAlPL^Lyw9InA080wR$RwD8hX%O%%AKw?R#(gVh6vJ z;z<@!kQ^t`TC78d|1^KCOHENy5rYR5-=1*r*C5zUUXD70=xVNa&(m(Fc)NeF9dU~7W!#9Zl{iU? zB~x2yR|uUJ&v<23g`A3_6h@d6&-xAyEw4lg`Z3sB?UHQBp5VG$uh=H;hn&@P;!v(W zVz9e|NzCXdWx(q3uoMU;|x$Zw<;H2Pl;#C2aV8iGPRJrHu5RQ=-hUT%~ z#Qps25%p6;-OPXYx-_{P@=wb3h^Gbt22s z`=*_(+!Y_PaO6Ltj;gqLk!;zhXJl#_$k`%F{%+$Yuy=n}Dce6Q9wD>C)%=O(4I#kO zIXCYcdXK11@=n;vv>df>*jVb4N_}$u&2ozl+^(g>7e`GRvK))7(Tbsa*Xa#m&!=Jz z8Ey{*28k+%thg#0r?fgwtZN2Aw7H$%?M@SO>m3n;_yt`kA7C~Ko6;^}Z9nOPlD-&` z+Bm*haIAmE-FxD^pBmZGI{%cpA+leozS;$NxCliOa5!^<+ji3GQ@2RtcdES2qtMQh z90SwBN43-yqC(SVy%HYh!$Ip-Vrvi{6*{~W{8y1?&S9ia=X&ASZ23J+zt%mqT_>;{ zkL7%Kxjwkvc4tYo?&DaxeYJ#Q)1>`Oc=voE7dL-SZDl&E{*y(J-IzRmk2`OowO*r` z!uw?}mXhwkMS?Irse4=mgieoU)p#@lp{%wBvlBMi^%(O0o|bz!hk(oi;>`f<1ql{q zo*DzblVuQp>173_!Q|)3Ae+%#J^vp4A?K9^0{3eZ+T11>31GYR8tuk0S&gNOW_#7C8(0OQ zLEOy@A#a^q?_5+rXBe|^HZA)-SRGKod38iJBg}NpTy3t3erelj<>pBeLl*rE)Oy&z z;yZ~9Er0jhTeZI zN0%Tb%~bu3m?ci&>Z_n?q6AD_^u5i9qD&HWs?xdzsx_bjASiqe{^#?B`w z*ZlZY7WYmUKbrjPdEciI6iq&S+;c#5wyeuP&x_=6xrVuo#Kf~t*Nj|-UuUAvp`GB1 z3S8Z*ky$*m7+q%fWA4qKE#{5o=1PAg^mPYo{#XuK@4lEHn`*<9N58~mBqbEIvfdQL zgb8YgB$ZFz8uWQR`{R@Z(a$W-3nu`WvOLWFVaFvl+8ZS|1G5=%$~_~onrk!p=y;bu zHaUiL% zg5Xy8u5!bTJO-teHwGu7-kPf_XGoLJcg~vDPMhnhrQM%VB;KYVUd1Gw>w?5h{gVz- zx1AnVckUQFn7g-zt!%Hw#~Ho_q|`0!nhsOT*neC@>b4GT%jTPD#%b*cvG&MHRuE}XO_BG33uWLu=i6Lw>8dJFn2xb;K?{Ma4Yv>kmN_&Os^M7W+s^=(a;FxLbDAM7BBNu711R4)6~ zUFfd-d_*1m-GB-pFyo0{v_6jk5Bt;vtnB>l> z%vAO>jb^`RYwrZCwbOq{PHpEZ4=3c~Kl38(@@g5~U&q=z`(d;yw(LC3swr~7;Wl|{ zG<$u#akmrbNz;oODSAOPTCtxWoZWVJ@yXAQxRR#b_u}UR4ZqJOq;+9p)kkxO@YNl? zxl>k_|NRwC=G=8k(hIfcaf8hV`ckj@UocaXegjW_Z&dyaSz3S6l!^?(`W6FW0Fp&}=D zQZEq@pTYAfyer0xtR|~~IyHHf5faL`pwYQs9Ho0^P*-;Fq%ps>3|v6@UTPmePQNcj z-u@D3o40<=3DXliiCMs!TCyOK!k3)p;%{_ zc9*`z8K&!g@|ZOyRD!9HgIj%eBT+uF?B(Np5?8LfMHV6=?u|k2_iuX*tbp}w1fR|n zZpzKFdL=b)hc~q4Ny|U316GcFoL+(e_8-Fahbjx9`6<#oPcuPX%Ku-9UY7K`uovuja1vc(KxJ4>_KSrSUDF z7cfOri}ifY*Ozs&KQy2${K07S_Pf^Fc2D6fc^%b60I?@IOAlV5Q#=mW+tuRIB)SG6 z(E1LzCscoc;i)aUHb5tofcuC6vFqhP)$olrK1q>tiSEqqP8hdLN?7C_`92;=;91@b zUn&U&zv!6^QDs1wzsH+rYc}*@TpWFlxWPWd5JH(R4hr+%d&~RhBwpK?h$ofN4j_0o z*beuO^>*FL?fBJ_Y#xXB?hn?rUs6kiM(y&kWmtdi->Vp!hKQ0xuFT(M<0oIM2<_q) znz`3axZXr&iGnCUdUZT3V>9Q^7zJzeT#Ao;_WY8YHEXP(T3VWB<%lZjf$(LCUYLMW zaNX)LB;fnG`U@cCQJfnaAc+Ddi`1LbB{0`Yp|p0ZK~&_GU0YN19j}x3;}aRdVdLRx z)iZw=x?ZxBm0r;oJaXi>;2k*hl<3hnBPXSA8RclR+Q{GusOcE1rcEbB?u|xucSk*& z2kWG3@d~;$-}B~lt-hUMJ#!!2GsRR1`{*V_Ky;xPum#fU3+T15EfNke$muugOob}blb*M~Q zxAf0C9z%@=>?Ckkw42H`0^OM1f_iVh-sI&4Kay*36>LYt@nmDXR5y(VNIFO=%UmQQD@`pqN^U^E>Aen5KyoiUi#!u^V z=97^_Zli#Ss@*o&uku|KKr-1?VKYqNu=*WBHD2HpmlS@#t0rDTc4+T^;`%pgtI_Zr zxs+Yg>fvgLrPR1O#h6G=Oc5FeunfUZjGqh+XY`P4;kYn~q%@Pi z8Oh$p!SEuh*%8OOewX&srbScDOG9y-8_aj<3$oVk$uUm`OneBZ$3y${c<5U81l68c zUDi}mgaT)|s9gDE z4z5)6vk@V>?zE^l3KOsJ6={h$^f;9AQ%B#b>bRY5c?e)!B}J1HRM^QH_oxQnWY45& z_Up(xpl&8#86X>}L#1l5oGkvaEuqH1n}e48y+UIgIIQ764Z>3;xMEeD*Jd&B}K zDls%RHVQ9HWo~D5Xfhx-Ha9j3FHB`_XLM*YATSCqOl59obZ8(rHa9buft&*@q=Ym`m$bAf4f3J)zW0s) zU+eqUtTl7?v*YY|_8C?tJwsl32bdjL1qMa(0{H|a0gBoNKmmY&fDoU6fFKSls}Th0 z3jQ0$VKo865fB(u@;?j|;b0K*e;!i;A@A+9VNigErz-#`1OSRk0>vZ+1OS2p0uui+ zgux{NN+2(Y13;S(paFw|5jd=hFn3=##K{?Xf6c#+01kUj08m0gjOUL#K;8`uhuDLl z0BsP`8SHj{qdmwKUmCBhniL2LtW_SBO0rin#aiggSuXfcwh< zhU!`XU3W0_FJrC040r&4_XYsu1O5~4Z|~oMAkaU~AbWe5n>z^V3xPTT93ie?fUb%b zAJPZO0{}rCej9>Z5wLrIe~=dl;tI06H~5n|2%sXb4*=a4_;+~-dpN`$iQq#(Tz{9y z|2xcmmzALoiZC}fFcgWv`JJB<1P->pZ@Vx5Uz2?bg?U5${}vn}PzT4~ML2l6^BY4U z9-d%zrN2$?A)J3>PGBTJL_k15OhO0%_5gr=?49|4hd1(d2met5e}BXG6$JXb!`uOm z_eFpMA&%ht9~^%K$O{ZW!ac!({{N}?ZwUto1UNwKkpMfe69kI$@96h1*zqsR z55Pj;o_j!m!0*pLC#!pUIl!Qv0P_L(^9l<9cm+iS z0KnfQ6T3eI{&yHXe-PyFH2%X^9qI@JNc@%UeVhK3vDe=O;P`tvI0641O9yt(S}=g) z-z2vb5D~Dy{{sF$Q~i(2{~yDDNBO^z{C^Wt@pN_lqvrUd|Np2#ZV*@BzYXq5>xsNy z0BzX)8bJTo)D-;J(rSYpAf9gjt5rvW?iWEG>g4)Q8zBf4e~1s*K@Wnocm9hlf8oZz zx6Bm+1?#~Okl)V=fcJhh|D(HKE&HeUPY2?jl7Cd-`_1|9E0v-4Fo)kOCMY5b0KwrP zU!40P-%BC@f8hNtI)HutkQl(v2ZbT;T>$sx1p*vlaGc*06$JwL!5*IXeZPnQAR>YQ zen*%m{NI2We}Er)pUgjiumpe~_8+o{Fn}L%&(?or0RTVJ8}@H|aR9#`82%UVU)kGx z!r}J|{D)unrTt6(^ICwxK45#CxoMcaRJcn`cnc0{r8$`A4WANf9tng2i(}aG#KA(!I>SS_%vF$ zC;y?B9-EHWNNy|O)+4|qPHRMTn|ri0=<0F3-2CPpAWsI3qz69oBCT-qMEoj zr4zjI#&MP*@1|Ju?6SU4F=HZm>9M#-j(rHHPR}Muaz^hMHC}S#1n$QR75P6|6->DN z;pO8f=`6d~;&`d#6Q2DnxzAn-&SqZ@UI?ocE*;Cn(~ zMcuJZ`|1?&jH@?^RoGpasLq|;$JfWlh1AYM%C?!29C;baozL@@6WR5pYQS|0WT4;AIjmC9r00EucTLX&Y!T`TmPWf!5IIBL9)!DoXdv#PB-P=kawGf7c4j zcfvi504b5UG<4UOY)muj!RbF%WH{ntemTZ8E*pEx*Ur;bXH0zpuk7~^Jy3Y`f3QtR zfb8+ez8avgggtXvtB9NIZaO*JWz8>3?us$7QKk}MS+h)bDjiWKW7%Pj%Ce#)8*RLc zJ+^ft`YLC_M>S6$+E+%K9z(qWsbZZ@$!3}v$I%i*p{%yZPAC4kUKGU16z3RW7K&xR zLmZ2RvM&9FovgnmG4;Cvsh*H>e;!jfuVghbJMrqTF?j+F!YV$DxtS^W>yhNN%a117|jw;br%BDmmb+3 zd5w!ZZu_iWI*S1)P!fQZb|>BP&F!eR;c_-}dBFL2IX8Tz;#)9QUETZle;Kj^)V8ue z#8UStaBYTiF)UuS{}A`llNJVkq5mO+9KBFOnJ2`T5>0Dr41{ZX0>24eryDDxU_jC- zYSoYxHRF?kXTDSn)4!hCGq75&cpL>=HaBkx>k4}@S!CFpt2gJrKl)I0L;h*YK9)vc zg}&@WTjNqY$6TO%DACJbe{_W^W!mzh8-NDS@fb*F7NV9pM^DKznlRVoThyf59pLQb zp;R5z^an*NK2cE3Zo^@q_g&y1h|y$^>=x7&m^67^DXOl=!s2@U?W(+yH<@zPqJwI0 z3Oqazd(lUOMXfnB!zRe;lww!q7j>>NM4iUt345kpF4#lmx9pjef0i3HCCZiF!u1xv zw+p{){7&NINb!nnPl09%g*_+L=h5@8md8#x$O<;ulJ$hqo}brHOrt&Tw&bl=mRtuN zOU1^F!jXC1v*}T}B2z&h#vO4FCM}1F%5_@U-m?v$34dI_f{a}C&#MC_fuv6JJec1l z%faQ?d0#MVPsPXae*tpuughNrtzf0yD}YLyTUmAI&xD>kc?xcaDwvd#bwC2F*;EIt zl73&&^U#j@WdOYjesMUJ7F5LW#G9>zcW?52Rko_%MX|&#l}tZ-(gw%SZL9i?v(8oR zwEu=K34q`Y5M9g5{)-zq2Bhw72U|b0_WrJ0k6eT4m&gjLf5Hm4MLSl3xi=VGSGMVU z4}0>GSCaW1PrI{R+gSCK1@j~sOyoHY6}0%bq)RCdMMz5(v*im`&a+&lD*Zoq;Bq`_ zo;AaOs$eEDW5uGpK?xW4H<*Pb5qI_&QF3h9m>#3q$^Qz{41j6l+K^69zBVOZ`9=4# z4c~V|d*@Cxf4D5S+Pdu=gv@5dlG6q55yXB?uFn#I^LYjJZqWaV7Y{tcgORsRCW#wh8Bp2aAUN3lM6ayrYoicSi;! z6pa)`Z7nMCedwiadRcrsZCVe;gMBU@yrr_S7%?-6e+IX1U z=6%jE*{3IEKnAYTjlOu2szhz>K0Ei|NGboN(jn}S3Vk7p9TO9&*}T@_=t%;6l1g1Z z-RxBee^0Bpc-b^V*nW3pgj0@;rOc`vv&!m~rpkp;p567Em+dAY39cNjPL-Wm^L7&z z@k>mNJEdPzzkIg*dV2{H)(29)A9@BTlUVaGDQbK-R0K#uSU)|;M>r&8KneU_c49rO zDA+EPoTk&t_M^5+AU-aI<07wRU+%To<{MJ5L=Pq^l@ZP#6xZ_d=R&yAp%&W~+|v32ANglGbO zQIn_hL$D!p6Q0<1*)&~>IO2Uhe)4KXUvh*{aeVnsEOLFC)|QY!dC!W{EIfDlQ9cXd ze*(iDV!qfClh%-yok+lQLOd`%U{dPzjN za(HnknVf_!$7Zo9RkiN?>+!c>4hDHV*9Ow@L!j-VxF_EaPwvC@Ip(V$kEM=zg8T+* z$60Y;EmbSIKIr`dZxErx)BV&Wra%>+f6>FKo!2V>r(bR__JYlzAf2PW=poX(G!x2RI9UyB@mm3Lhqpe9ui-K=o6#z=p9oA+wHf0s0z zv=klD@m4~*PBjru>$#r9 zjKuzvc!We0D!c7^1q1#*eBSg@QYWQozaKGq+LzM6D2M47hL>qgZ@Lu0CMfJpQsU}| zyTvjkXnI6i zU~Ba(9bQrF`K)=A-qlZ>5fxNp<^260zv7N3HN!f-5URzo*VH{meWEWne?q7}w~Ayf z*tkp0?64^26zgGYzsYqTfo9=VQ-3pOpIQKQ)f;txXE%cfO|7KyLv5h1&^5I3C~&bj zQsr=JwsSv^rQ=l8>CpRYs?@D499uuluv_ke?mnY9u+^$6u)A5VBsCNJgXX+%3#xycK`T*q><2- z6fdCZSw^k+&K2K4Pij54<4B*MZ?RVx<5!y+1;5I{sGP{3g0fyyf2~-UXuCgJPiLaK z%}_xFOybmE3f*v07ow<~yyuu6;$U5fZK`0K%lR5wJ^LP!gO*lt=?YVr{#Krh&6t|y z#UyaK(-5PQ5{kF9a&=guyaKX_4t2cH^AQeKi^wGp*nMbvQ!BNg$}mkvWKPN~r0`Q@ z?#Ip6#aA^;=E*V(f6NPD>PXswy@<|*M5+5@K{1UMh1(x>2!8a#n0hCUpCvxz`aA^4 z#}<`q;={?Rh~CB!Nk#(}2`f=Dw&*K2-%3tM9d(S?z&Dq!Gt=T&tsVmfYkC6(kn6`i zpAR;$woN(QQ(`lv z3+^x7nASIIV!>2fdAChCgj6rAXvGfd|H3zCPWN4I7D`?QPbISXxer|o>B7Qq*S%Rs z%Ije8YT-juV_(Z+*ep|6+e9olktNkV%cl60C>3wZ@P6!|SW_Wt`B)U(Q{TDBSoN|I z=W)u8>qmX}f0vOoW%)sqoE?$%S(kN1C;ahJ4-Ki=@vNIpB{z@{G^$ks83V?dKBt<$+TTUF zWST-%$C@(VES}7v)@0qWFH){*+-JDXkWrW$Qn#WFHpB#;10MaDY$kRl7_!ih)N(F0 z=iLl_e`W~({+*Ol|GJyL9`Rga{%=hNSxfM0Mr zj&G>=W!N_KHOS_#tJ|Z<8LF|RO5b6$CLKNie|teu#7RT4R6^-2*G;NRg?fL0D&(1b zeOuQhzfW?LW!p0q_#9)ThT4s4|C)aOmESQ?XeBjc@AKQfb!OF)RN{(lc1LZ*_`@ki zGgIT+z?-wWhDP(Ax_E2c;Heo_m*GApwf3V}U9~%`f#C#3o6GuGshy~rk&~d8YZ{GS ze|ZEoAy$iza9HLZmJ%+oD>}=Dh@?q}8&ciUw;X(a-}zlGxq>PSI~`PB8_Y|VCLd%U z6Zy>*W{O&?&2f^52}fyo_h`X(W(;cX@3LSk6yS>HMPF&#%&zX5dmFS`&9qs2lXp6) z*EP8BpOTNMT=nKiX2cz|V~ra!>%6D?e-zy|tKl$X-TmSUuR`3@caa5tlDhQcl_!p4 zpuI;ow@9b&Gp5@mt1nqsv=<%w1jalSsO`vH&Mksje`B=P zST7_)RcW@jD%+@k2$g+qXLF`YKgV5gXNvhZl8oz_-_gNdCAf++VBl zLuTu#7Bh36Jr8k$cmtwf$sx#j?}wW7a|d@cctnb_H}^)&I}zaFa4C(NR3CkUU;{d$8)#c zmOqgkIoj?SE$qz%emtpj4VnXY(DtF)dS1w((F8mw-)AJBUX0$UP5)#)FG_pJpY1z- zZ3{ZiBYE48A7fE95<_G=f6+dqoL$i6P1A|74`QIj%k$fUoM?fCDhG+COHQwtW!Jc-O{s!rY}i>OzP zA&rqa@$*LuRFztG$4_y(B! zR>7`Wm*^s}b|Q=IyfGCiA|4&KVs=tUNsMK+j((^5e~H@E@Xs;E4p}3~1G!n1Bg$=^ zJKTqcW}Qm{)zamhEzYZ^)0iP`!j4TUN)6753w*O5jLD}PZBX?S(;s*aMFm3ZrP<8g(><9VoOX=9wJvQ~ z+m)F1Vqq?D)Nru?;=D1-FLpS|W8#w6Bdp1EnBW!N=6*%eMUiZj@YhoE4(f`uw*1i{ zfjGP_08~*w%g?SSghRJ6nVP~hT*D!nf4tN)OQuDJn|iUsmGY&k>|s3=J&RYAAI2tz zl#c{w$JF%1Iw`9d4$L=92Y72#K1VST)mmR(cP%#H8+*^I;@_`go*^Zns~w31>3)=`~Du?&&K1SUfh#8MPoLRJXgnZr4&2da$GvTK{e|s7mz0V@>tVs1_pYw4o@HfZNT0$1n9yRUP7S9!+0P;9j_y!wuYyExsWj`cz(kKpHJ=yWL{&&I;g`O z>SA>X*w5#cw_&=%wxnGWurc{Ck_{20OB z@BAiaY#==8zCZbC$mnc@&rQ<{3rt_MEwMWprRaSMZpogk=Z1LbudDk_ouWLw>R1vU zFra~KCt=G_Niut=jHz4JoeA*xpFM9)Cv66lX*GrRUA(C>dnw1g$)$x$YRf0Vo4OFz z%et$Km%mC#YNmLh-L$q3e@q z+~r5Q{Z#}LGv$d@H~9TsRr_x3hvy&VUpv2XWAGi)doe|x#0L-NP%7)=?fhkd>> zZLoTeV8)|L+G}~?lFU`d62dRtm8vW6PP=SxGRf6urcuh$BFz?ds#jP(bw5fpsCtaK zE_&X&ze{;+*Dg_M>PX;_URbA|FcT8E3=J%NF z$KdroRceu{fAN6Q(wOb-#}vzQ-v29ZrN3z^K$#Fhy`^=yA>z|PH6PABbbP%v!E{Rw z&)rWHKh5`l-BuQH;ckrGJ+Y~V60&=8EqsK90I1;+obg+uR1Q4LzSWL1dAds3eoZV6 zmZ8ufxp_d;qECVS6y4canPJ=9tag2w5koJOkM()Pf7tiu3AIanA8sYcC~@CAgk6|Z z1PLvBn>A@5w$={nJ}n&4(Vz=Pt14ibZMkfGqZ?nRq}H*D%spH?kf~?*T0k+2F%#TL zowSpnt7h_A))=U=tg}<|orpEH?qX-Ab&3{tt$3@<8*L+fHI-p+va~re6{@FL1tjfL zuJV`&fB$@?)$9?Sn0VSWnChOJqt!VUyDJ;Z-p#HwQG7;}Ezp}&f7$%DYZ`Y#XkPw1=h~{IR+AH$v{JSs3LudMGh{ZxL>+s_B{SXT-MXKnp zQTEXFpA2O5ndyp#b7(j#1|Fk)g>f(ZSyhbOf2rS*x*0XcS}ow1Cwq!Se?aH*;dz#J zsDTz49_m%?vOcIKV~YMA!IoxzhN@D@D1|{zCf+w=r_?#}aY+%3{`IY3^s6Xx9K79! z^gVl4F|nInUdo|01PXXdRX=|!T=Dfp)r)XSCM1C0`w!WZKAWYG8_T{JGT1aRdR6o~ zf6VhC3|YA7=I%kQUR#2G zyINXo7_3yt5UJmp&(mT*c04OoP`3QFMU?bVl$b`Btw}7>(vCo!t(7&y_On=o(}J-& zR}kLlwfRh-Mcv*r`h=vhg(HQQF8GK(e;gwY8cFzh*+FbwuFyP`i$2B{!bl?jX{|Bq z3CD=|8xVb>P&zA#>#HK-WIq#vgDg+kl*1fUp!sGr=YuQ$7$5Y3WhrFhnFKeLm3`@S1qQ%i-w?|s$!3Xs^rc^SEPE_KepYNxC$e+!{g zwj{-t8%Ir4vk=)rbZ`6=Ilzp2!0kAaxrYPsO1W;fDyt2mPfGXI$gX8QiyQVvI}sh= zYzDu+bjcdfi^8L2vc!wpF+(4AFm}S6m|J}0kx;jF%B$X@;y>7d+U7;k6ny&{W7KxX z#(>9PQe+;hiK~4*L|*to-&Dh?Fi(7CG%%UMAoc2;bwx>bf!4-k+3P^e`_0UR?5U$ z)m@W}B2a1s=c{bxoB1)UDy-+sefwFc%MzYV2rk-WDrH81PlpP-y&@rQEkqP&nDwWf zUpoF3OM*#nPcX*&3qdC&lClWC;H#7<_Ol59obZ9alHZd?Xm!J0m7XdJrft&*5(uFN5JBlEh!h2>(iKqzDbhhex)do&Z%S2)bpGh~opb*0+`HDj z>s>4F-t)}Np4sy}?+X8Q6LV2jSF{UU3ys2xLd3xGKy^bi86X%eAqEDE1NiwZ5Lj>c zUseFW6&&M-e?X(;{}--~fkUx)n+6n%cQZtzfO`JkK!^koA}tS*kq3i;;$X1czZ}sR zd7uU~0O1NW6a(s^QE)#1zdG6{7=v*4z~WE&*AgfI69hu!Jw+l3aBH@1;69e!AEj$o@f0@nEZrDI51`fm$$*2d*y)VmMa?N9sD2nKf?v-+h`eS84Leu_}`G48afDw6BU;Mii%5tfe?teI8X+^ ze+c_$785Aq?<&CmiPc59p@DLL6^p;6e-#|?_w)t+7KR}3pSg_Cc*eqk0{wVfckG& zYxrMsHH5n&{E`2S>SCdI4XC2rz5jiQe+WM2$|;fLqr9|(>Y%|DOSM8VLmzttr!B@KjPFwkHCe#H2l6c7i& z%g_}b^oPMfkQfS$#fJd#?S%o|&=|n)c}hwEK|bF8e!s1M3{sLnkRP6RzxV$*e+lM~ z!QgfFhY9#H{IwX8thrd_%Rm zi;J97)Iw!7^xQYp>aG`2{goCyfBrmQe_3ji0*0f&PVJ!TuJW1w=!q56)mPH`6ldk1 zM3XEN?eCV1@#nid8)xMq!HRN`3DNHc(Tp7&j?(82U2^NC2m``4lO&38cJty7j>kj3 zzOWGYYh~kOvt#8VI-u_#xq(w#PuFAlj4LggEgZA=FOHM=(n{c<9X_#0e=egCj7X7v zt=vO&ebs&8*JcYvT^~wBJGOE<{rT#-NX4B>A3~|swKMQRZqFUsZQKM`IeqOLo|d!c zGU`WfpD-;-$3^JzUT0TSJh=Iodl!>19l)(L&8@x9mR@;18brlyN~J|@_%^)D4TQYL zA(W3u5Xj-Vjwox(1?Wdee=#Ugb`_qHyQYfhIabu%=U^ii*&T9-bSwabtg*1Le-h## z|5+m(>*Y~4O6X}ExZd=|caxBO*XxEz>Z+4+#FPGu-dNZ*o>Y|bVe#O&b!@6&PHOsi z0yje|`ydxlF?o_#NBU}fn)6nY-OG26J3#vn&FQHq(uD?;(`rcWf51XXmmjZKce$gR zQ?^si$JswtzHwprQh2Hvxh1sCwAMwL^jaiNk~9>5f;#c-e4~9y z)$6a}${0N<@xYYqe=tLh&Cc8{*k6)zJ*PCNeZIJ1VQ$3eSm7c!5i-f~X))hs!7ELM zWmGq-UWuRMY&~rB4q)=;%!xv&1o8y#&*f2 zn!RE}$zK#VQU&-OOPfIAR;_g`f_2U8&%S@^>RuL@+ucI$G_bifu#sM+=QMjD4rX

q$>Wq4rl=p$z&RfztiAs6yB_dwC>qU_zXNpfMwZ*>y^s@3lSXwAM0 z?I7;*0M5-Vn|HcFs)W6J)^Bs4llGj9D+Nufx0knUNR1FjJ>K8B9+*Gs_$`(4m~pbR zXfoij0MY)4q=;x?B)t8{`_aZiGG&li+|p)-@&k=(e_yz7TY5X)v!n`6vTD)%yi&3t z&8=-9-@%v6B$A5>&jo_HjL94B$2sChQ+S-C+dc`#;Y^ido@@ajN6Tqy8vgYw0dedg!u+q~&- z^P-96f6Cc!?E~Htt6mj+Y7$IMArl++#jytI&!M%QJ=raO5}*J0MO9EZQo5Z)!OBtJ zn}~Zb#Oh)2ugd2d{+Vm+Iv*WSl>m}fdC+dI;*Up_q*E^^4> zgLc{6G*S0_JgrTt3Ks^*+48ZuoR-&q9vn`~f83#_$^E>+sk7?-+3k#`Ls+q#E_mni zE_S7_KieTy;@btq6U(q+^l83IBKh8JYVEHML4`e1a&Mm2h9P`Pp!=k!c}L+qA6tOa z46a?|bWRRABk(j_fkm2A?2OwWC%e<&Zc4HAjaC~`_8rVp-0Q)#BcL)!0g7CohV%C%|9hqvvm@&0v*xF1^p2YpO06rY$FG$(>nUu-7Dre`l-4 z04~=F-_DUeIq*5(8o+J^e+&qlk03o8;DYvS#(Yay+$S)>Fm`>ICg=-8SWL%vCcCYo|pI;dPtk~mX1q4I-Znh1@GYy`bWPLnI6qTQ)KLic!F_GRdDHMQ#Rn#R zI~qgY1k3vdbQV6{wjX@-f0hm@*7Fx912vQ@<^h&dHCT00%2_^5SUM`|PFU zr^9jFJVl6JGs96@-dB?EkCeE6Flw;pDw{Z6 z?qG+}`2&0U@oC8h@i$@R@dxj?2o7e+zi`gQ z$S*|lhfN&M8(x=1nm{50Tn>yNS}VfnB>};LC)v%c4~coE@nb32`a{lRagNUx)2Q%m zv8{?I;JubUj<)ZyR37`br)Vk0xz{LkpR?^f2>f>8K*6Q#4(SUJ3;t233Ii{ z7uN?eeh&D}%DyKT9$fkwO_iR8$gG?CrXf?`%dBzMcwD*1yYlK_rWLJuYG?u;1^bkt z%KH;E?eBI@Rh|k@a>=BBbfRc9{Y4fMW!4!-HN=Y0K&w5=?htao@TBhDNBvL$Bs1t3USy)Ww2tHyJ4wyWyEY-Ak4=k981iX?-pwV<8i0oQzu#;j` zWIs^q$U4p-eX`p%ko19oow^?CdX)uJ;leGAUH!8!R`j_*G+wl-{M0q6Z%Zc!Ta{tD7z1Naqn<< z2EO~`^5bf)e>!>X>7tb@+M?d6LX$7LBpNtEZ(ygsao6QL^*rt1!(>*$5?=occ;Wij zdD3+ug#ub6Nmm#L$>p`MxCDhec5mN7f2d#VAEi0S)MhN9*6*LEt+r4r(n`l2ZotB? z@jAaGMjJZU>CP`d(pHaWgLTd8CYiMhxY1pCO9`P-UQGL@Bur|nPs*Wg$9SK={IMUS zpwFkFU$a5GhnG6WEE;B?J?LQ%+M{Cl_>+XM7|%Y%)Co}+TGzTy2u|yf6Y*1 zJ@3Ev!GN&UA|o$7RtB0kAO%<%Ve7ewb5UGGAB{X$Ib-AyU3&55l!RK{ ze7C^IWukAirRUPVX9yR2+{G#`0+}ncxS?mZqwar${2Zi_#9IY#9!w4GI}N+0cY5#J z;;1P48EaOE@u00my1K(EVyqi<^5Od_P@m1QrZ~ow1lps14UvyaB)N5Ef8lu?XwCu{R<=uLGVjHPB6*C^==-=*Rd)|%N9qu|&7vQ=>T z*?O9WdivX}wcS<9G=CVUDQ&^&xY+~7;^Z}p=a8J5=fJN@JDByT!>shJ_{3XU!`HMY zN`BltZ|0JJ(^XdJ%CyOBe-kr=3e|mo;4n~H7~~6DV}+2#oHh6%ijDYOe9|L6`MguG zbU6U?_NJ8SXl?8sSKsXZa>bVA;j5luk&?dr!cOLok?j`6H)R`pebSx>0R7TRKm>Q? zIu%J&&xz&8#%@liyV!w9<%%!jP&fFzx+)+HvwkBoZCWIWQyH7Px3_kiou>fv65|1_ zM~SzhaOs;Itl>OQe>M(!tH zj~V-~%sYH6$QyPZMt4bXkyh98zE#zhR#UF!?&=27U&0-)Gu|jBI@=eHb1K^$%AlT7 zZMxE?Q{1*~afjw7khW8++WBW>Lt3Q|aN37~`dX6QJFEz_e+)KL5==VzD1H1z!L(=K z65#Bb7~SdAfYd5QKX#!2IWWEH-M8j%Sqj54#&?K!yRRH)m@hwCh{Pgn-F-v^kPxOsGO<6 zTK-jUsEL-df5rocSkkZ@rbWA7DQ^T{Je2i`EWRB>9r&$oKuDm1r}6fU3jYH6ULm4q zn5X{Rq66gdikYP~JQ#H~l%M-J$Kk!*>;d=DqaoCrvU1IkX$6-zgB4JUz2K0km_-g@ z`ZxIhIF}(q&&FmzT9T>B>)X+a_0liUuS;LB{5*a>e@yw^+Y-jf1j3HJBlbF{-$TRI3eO#bU?~zPoNy^F(`9Hc4ct-sv=SQq zP?rI+>{+~I&rC~CxCe-f3DvvCQTywrP&IK$1Hr%Pcep+_rrMva!;zaDH{=bfW6{nSLGUX`As+XAQ$ zUqy5Lq5y{G5XUd_=|dP$-JwBp*$uH<<8sdzNPps>CdoA}S6TE~KyGx%5fWAr@I&P@ zH#whDq-?UNbO^2GU=OQ1;dk0hu{CYif_3VIe+X`NRlPMPeo1nLnc?tK@6ibcC-J_m z$JRBT<&Ca}#vLu(%LMT&<}*lm8Am%$N7Ed|kYWMyO1WHWJZ#Uc*Cq6RjPe}iN?I+z zmdlhxr8SDsA?x5Rn~Atb5$Ln^Mx>z4kARt$R9isr8PU%v;nvh!DE;g?xjKWpZ48N( ze?p8E&JChT5XuPQ*F!epwKU8m9bO;9NU2svG(7d*xTeRf2sDgWZjX>a_)C{wUr*48W6n{H7yQl5qwCI zbACV9wMm*-Oh&80OMMkIPXL+JlXA^kWrb&Jcf5`}VUO~StW2+u;9ejIh_v9CYn{t6 z>KhvpJB3sr{_G>4u{$%0=axUVCF_^Z`R|R{ao_e_I@8 z)|3pHB~=TdTK)Ef#c4P@@$=KQ_BBzOQ8LZK1250jp^Yy{lo!t4EQ z0fipZR)fF|oJDeGT(`466i9T8e}m>>-z29d%C}Mo^k>grIac4HSdehp;a6i<;VU8{L z2_hp3t^1>Qv*m`bkmdny^HB0M)?kn?;MuVm8<~B$$*~Iw18#PihimTH&$_EK-fx%@ zJDcjuzUH<++TET`i*N&b9OS(QMkrKX$};BPrwWdm`~Z-P?X!PxGIzYG5nb>2vKwMB z3+caSf1i(lwo1KO%VlTJf7{UXN=T9zcSGM|{;uxKD}pN7I=2AI3el;-c|!i_oFe19 zqiPmbkBC`x%4Td?gj;>|!ps44y>E~{&3bGS(WSk%_s^jPew1Hx+lgz0%uQ_#8q`dj zZb#}^6RXj8n!3BK0-bl8Im0>VN*`?A4(gvFdI%yW4E9+9qy*$4e<;+V9WtD#O8#gm3fy(odk**D@xp+Fv}g>2cg2`8 z%iZ0nD2F6M%JC~*Z})D*$3ph%2Xw{E4WHN>r@&wDuplYWkE_|2x7K-oews1Mdwl1l z%t!3@^0wt`Ue9n|8fB2JfIN}I#Q2;P-^rIa-oEWND4+BZe~h)Y&`&gTWb-`lyO7ey zliOx8oawlDuM(upRkVHrg(~^LO{U?x*lTE+@#Ll1ES)O!c4C?NT` zbV*y>b;Gl-eHJhcEXMo(p#FCt819AMVU?i`m;& zN);gZwWZmE-gBWC%@)bRwf{lg%e=KeN%KGVbf-8+jb_l z%?TzpC)UKAq{E3du{p7A+qP|+n{WT~@9sH!v6p+%{dQH?IepR9Z*}P@sdO#Lx#apX z<*K_~@fw@N_wjov+Jw+s>U48U=nO(p$W>Rj&dSJE+EF{tc#KZjqb%Ky<+$^FORW`? zOuL(AZ}yEhJfZ%Z+Hg{>TuiLow*0lzFxWE zN?aYaGM#YJN=Ti1kJ+(r#PTU2F-bQ%;53cF%3z2DN#23r=t$Fu+kYg>7q zIyy30^G*DL0`bin77`Bp&W{sB3&`g1O~db^q@W0tgpToRa&PrJJIeu))MN0b!oper zv_IfLH9bBH4>@KDO`xHsI(^*1GDsLFgqiO!cYur{LkwZOYCgsFTP`VhD7qQSfHz#2f`=TrG!0s6#vzAm(_ z3$Qw<_5#rMGCxM3Sre2|n9Dq-_4SksWDlvzsTM-az#Jq9MA*=p8ab^KrftQR6hL=$ z2xyb!?tIbjW+%D$;bzSh1CMc~ttO`aLCl}?kT}(8)f%9`4ia*1osZbJvRj$>@zCDW z=9!a7QpE=Xcjy11HVOv=RDm|Pa%*{ZF8Dw?Ie@>*_x2J(G<=N~QuoE5nwS|MfIYhS zfV&NQUv&Ohrrzpw`E|Urv-j@Cxp!IgxdYWVbMU8^ilQxVN@BzDBF7l5&2!Ji$w9mH_>yU8+>paAIh}AZ`6#)0c zQOB#PxgGB9aUVE;5t;-p`B9D_>m+qjgEhkgdGk&4#Y#gRU!+VUTlt!|UWHmP=8yLP z__9D}hMwC`pX|0;wAIIX~Lf_(|iv-2m8P+OJ%d$`} z1t4_|orC#xBjS@xme6fZfZs~><(fZ{hPIB3iUDTB&D7G8wsuE#`2~2+$VAr;hWPor zBHrW*C3^{rv-1q{;NtL4Q8j<}O8iX^Y!ze)7~+*yi8PF@z1<>7)dSi}JL8C|)4p)- zK%+cy8lS^{e4#z^f$=2%SmLh+r^&(x8oPT_F1RJvbr%@=Z-i9N{)SKe=GXidD5G$e z%|KVSD#pG)tK@~(sQ=(9%OBsXIvb+|-5gWmf!lkLQa|=5U0sS{>)1f?0@8q`FnM~T z+-`rJleWQo0;7hJ;Q&);)nDwn4pTS$J}(!ZVcqq5JgY0=ILD)+Ff6Y_#F{nB{@01~ zi7}V_SaCA>g&Avevx^*)-}<3%M||YBh!r>!i<{%rqhQ9&!6=p7MaEN3c?_?-$MOYX z&!H2p=#=_9g;nj&?yMXMHPkJ+IiWF@5;fF_X;y``kvYY6UcN)5rSlw4%Lx1J4?^Um zqmWg#gw#2dTSOSsxIZ!xr=5{pR-|zy`pG-%ZYie?B*q3rlue?;(7~h3oEd?>_%a*7 z4m6zO?AgmO5W9XTyX(2-X#v%)Bfxlpyd&3J0MSjCwcfTAFS=~Kjh~5H@O$QddyJ1A z*EB^pGE-ULS$}49;H0;Yj0I&HZ+?9e57K(AUKrR)v7Jd^ z+qj3FQJoSPmy(JR=~n%ip;-S+^Z>u&z+?T@t&Aem>iRFfF&M5JTS1B{EkHLiJoV(C zV^3%Pide#6xGU)|**?BlZ1Bl;l+`>WhhIJ6<%vV=u2v^HC2bf3MyYvfL6&D{c$zSp zt!JmHyQqc_sGx<(%NKq^&8>^#YV&#uWl~G!n~abO8B!f>h+PiOK%v^>DzgLh;I4;* zUl#ApG%-0_iTKKal)Q8O3BW8HF3AKJbiGLS#(!!chlS+7qiEsGcXxSs#&WT~lyi|o3 zkPmZGeo^y$6VMxa9As)8C6duWzEHS7@9fA8s?8kF^Lj|+0*Ms&1mwt-Q?oSCQ2w(Z zR@h^+b;PD;8J@vujT2q-pr>R%Rc|dh+gIGHS0Wye<0wFon;FVZA6D3e+~bI(ZGdIK zD-Tgr<0hk7a&kCz*J$MP2_w*3PsM$=JH<#5aX2!L0u;6yS!tS)^JwWW=x!lLB~O-a}8LodMcvNx&sdwXA@vMbf_?a z`n#}5Jf#`pB0-R6GR*j3`p(k!%+tX%R`$ygN1~2o-G8Nyc7@{Cbc&6e#F^a=eP5?t zfT|B0YG#s*w>e(3a+R6)pWp&FB>X>Udt~@A@(|DoU7qxdS~GzBr5=aDs02v zO)z>M_Yc4eAVxAgg0jdC!$Bqy)kwl~O!>W#M9WOyt&sZ6%@v<#|7H+%X@ox7o;@*_e)n zycWpnjo}##nU{7MVgF6+G{^tr3(Uf@DfPxU5de#nmM*se_s=ie2kvw$PhAo=eWrr? zv&j$1E7PnYK5$y*6D57ovgflW9t3%Y!;uDdqi|w$u3a6oG||nsvJ#emoN?a=E}jF| z8d{nN#fALWx$dsW;!iRhM@CY}b)V4dJ9s%=Gj<8uX*gXlr952$m4%VXcwwXQO%hN6S{Ob^x zqie+a`tbm=YjLYQnsq_W&hbNOEE9+fNvRLZc56u#>Nq>X5_p>)ycii~iuy$m;U8SmKAtIQdJ*VGD^qZAxXbPAV$dUw z`aLsM%k6}bCoLQGmw4JWx0lM}2j(rvRqbi$tRl#(uuRO$vFlN=LI$tOE9^@3#o0nz zqOWCr^O7{N%+#Eg$<&nO90mGU<|2PkBB4|xDk@^`__J|&Y8vUi#ylnTH zZI_Kl1VB~%D>-_j>F!Vke}>}@bcX>6WFPE@nh&rZzpI|?(oJNCFAvqjk0+Gqy!}3L zz4sRJI&Q?~7S1TLT)HkLTo0UFP^S0`1YqF<;?f_4&%`&x)3-0QK>(kLY%8Chm!N8j z5vo2#9>@#SMd1SYQPe0wtp)DpDrwZ0>$JhMa0L@@+>U?n^xI)SCxngYt#Y7y!G)CH z@K&vaF30#UduY(AskR4vJVN@mi)twTX`A}}3cRq`5q1T0W9r`z&2pBS-;&unbX~wT zL3q(V#*K;Q&MUZ-&;Xh|8{*In;T-DDr%tCTiSi8drI7)lVcmK1XJsk`wV7<%P634EN?_*D!0J zjSvz>N(qNq?jAHO!@cGU!#(zW?b{npoAGFCwiiUAmU`b@USPP8201>TJRPM0KYacO zOVmb-bkO=`y_b&5&$}C05k6piuxBZ-hZP0!yE9`2LP+cojJ9KVIQR4qmf^wtlo9$- zXaC6WuyS<96(tQSm+>_s*m~9Ji_2!NR+J5Z@Vu!t5yx_%LmnR0lSzo6g z(1qAFoxfmXV+WckWRTbb*MTy7A09tSwDb*D0rsyKoX2o4q#ECkN04hJo~Z zlr`OCutpTum8wX=$_;3KA^fukOIe5`$bfOrr885(0RM#N+pgmh*A)pzhudi8s?8f3 z;u(WH6(c%qb8Ua^La@{~ODp!{lf%u^r{&9Nx!g+hgJCsivkq1FfYL_|Lx~WC9TH=r zrlfDRc94`Q#cc}`z1$($RPn*qd@SU&z0#`S3A^|5p_Mi)rm|kcvN0$f=pDc!-zLr< zXLpR|0tEzUx2!vDUs;SxX|TgS=tcHB_uiaAZ>az}8?-tP+%76L;oo2(4ec1HtAztb zfS}ArbiCeY+Q(*{%GN_KR5xt$T9QG4M4VIipVppBkf!2G=%=Bl=c%>#n|K8bu_jv< zt(#V4(c#14???b`t>(ji)j_DG%VRwTUqq!W(4)hXHpX{VXxlv!V2MV<_(@{>bLlsQ z^gpBDI@Cu*|4gPH)P8#Rb+AU#2Z_ijbb%g1>7Uoy%h4vknc~S@@wW6kD+FIH6`v74 z*(klPffn-m>z5KgrNxu^u?aP^E)FryK}ZHzg*pbl#Xi`$ZOM54Ll!4yaQe~BnII+m z4KP}6ddjV5G8y2ntg`bP;kLvg5|AZ-IH3DQ600oYv&+lpc@b$=`a_7Hp?S-~Es;Tz zSvrZ>@m_F(+QG0*4lT&?^1+CA=bY~QqgniP)=IR*Mic`bEnf}XcN+n4$4*MF%5@mP zE_|UW>MB{#!Pd~}3o$JV-@^HlMhQn?0SHa|t!Nh4Wny2dyF==Ah*~bVuYZsD!a zKj9k@s2n%{3*|Y&=detOH8YVFL}#&$ZJ*-2srVy&g514C%-<$QMNxc3kkJx+A5X!~ zkEO|>R&9^hgPf*ti=jGPOG{omBTy;~b9`^~}S%=e77;KFCFRBRK?dIQFc8HIphI0wO{u-gl) z>cfuha1^I>yNBZpbd+@SB`RKM03FYEcCb34E}iIoelFoLgBMC#$gTOCaKu2=zKug$ zY;e~P61&o{htlLvB+%(ZRY2BLD8NK^o-Cp{B4D{hkJ?})FwB~%>mU}%08Yn0v`G8~ z9)0^4D=9|h@SmgXgmmHs5POd_S<-W=o}4rwgj7#^%@n3n$7<@b)Oj$t)SWe#YxFzo z;Kx5Pd33Xmo^fY`C1*blN{>w5XdITtRoEKaEUC^^6D$X`aY`=R3&3(2&qb5l!st6f zU_$Xt<8IDk1Ndcf0;~`9<+brrOkldMKHHX}wK!(L%L(FukFwgvZ_4g07Vir7jvt%` zzPyX-LITImH3Vs|>Scdii6Zay`lx63td0#JyCsEeMVd6w;B+o|Bgt@REz!#d2pH?G z`2{A)VVY6q5v%amGXcmt3S6QMvQK_HPD=$#oehF`vGdiLhd*{mn+%_#-EwGs_%^yf zx#^AAjx^`*+ZDG?x$0VF3UkR)bjq?b>(`RnqP3o{plezYBnJ&n-ZQwvXmB%ztMFj$ z5Tei%#@I*c$ppz$wgrRhe$qrf*a$j9A+&eT4(Mwt$0Ie}4+9ljcq2Lz>87M^h8L?CHD11FKgUfa6;v1+e~e$}HDf_qck9i^09#I= zD8dd`F?JDWp$r6h1%=W%lmBZH834=K6#3aNmdqrRlc_cjs0C%1(WoVbo|G`l@E z?Pmgl22%T_P1-n6f~b)^FFTAnhUk9k4;}G=mj3xe*TKxz8uS}%K0|vmSzPK&+2)hW zpeO)Ewoi6$5eH4nBdioV_hyo8N;Y}r(-6dJ92ZK98ej*9yQBZ;K{1B{QJeSrJ=p%N zPc;yg#yz-BVmD)W*&um4r!}WM_!CDCkfRAqd)R&{TX2+$FOS0nK8T|8Jo*)GD}q&f z6_l`(Zk*>S`!ODN$Fc6#$T19M#@%val_OD=z5v`6_)&;U$ys_(D2%BfQ>f&MMADm6 z7^_lF0W5O@2V)|yNtNQcE%FE$MJQGq^r0ds8b(d9@TYNl>xte5I2K1wyoZNzi2mQK zN311WXk}1)jPGgnh`w+-lI%O*x{4XjmP4*+Fmi#E9g{Y}o3mzb?hY5db!Zh>-qX3WJpo_0SvZK}v69RFw$u=CEr zx&1X=W1ircD;+A6Zf|gP*KqN@7l8*Hat(?8`A#{UZdOT$f6M4#AQ;eDiJnhsxYvq) zY;}5wbL(Qmg^{fm5v=~{e;RK(#=2X(tINJ}oT^(zI1LqZ{F}1jJw$D%mS7g_ykTvc zc(?o@A$g+crOM3g@8*8H{nT-8%_Uorwkg+m}lKw8B+o?>D9NAo`!>tiv0%yki%&grsAw-yfS@WnDpviy zKB?QSH+%=pW?D_(uTuI~7X4$;2~Ed$z<&6H0-ayz_WK97Jw=w@k}N)aY?D_j4!xR= z8@5)t1Qw4e(TXC`((9`0#O;k?S9lvc7O3d9gpSd8nHigJr(}R(QUco2l2_Us7}aQ# z^&y|3!>qYMVCVtfj*Pq>Km{vvI<1nF+0h!mNNQ)6iMEClI#H^HIFhh~YP^5b|Jcx1 zE17-JfY}nBeUUT~=f3rH<9+{JroQb9t~;lSwzqih;!fyQptKW8xgih0$QjJ2~3k`}f2hFfV4e3rgz%G}54c zedrqV5ST>NgXsJn*OPsf_)usW_cSyUWrxr#cDG%er<>``MP}3cQ<60^i&UBeARViY*=e&}o z+de@s?{@X0!I)78NcpzJuW8$6n7X9>jYj!bVcdtJ^0MKVzr(4I%7ctZjuMFzd~>O&X_V3mng3)s<;F^j=iyLT{&(J zc%B2IZb7^2c1cy7SP&1tB+DbEDnlM_o)EU~&3B^6%v09_K$J(IB6q-x$9588!I`&v zSLOQWE2$W5Hn%OmC6dgJ*waSFb|b+>7?O(LpSi3}krnsd5-_)7>q}vJ45jOK257EE zt}{Vs@4H`7RDcye{|X1g)@k4Rfq8}Z);8gd>q&D8!rsH z+~NZk8`HcQ;L%AX$oST~d6Gc?aNi?NO7*l6sw*G-$934~=fdn@W-$Zj7(3)Y)!KU2GSz%I|$=PlBPCZ)T(K*5PV-hI%< zf8PQ0+~GGCY(A@&BMV7Vi4SLnZTS|)AA^c6SRHqMVKt3z{Fvp%_wi_IDU{XYzpK<^ zAia|dtNxY|^F76yP7$9dTHhw%KNtmKk z?i!5BX??HEvnJA$`};s*M)A2x263lYt3(OgF$qRjF^3iUE;0iw~#Ijkkx~b;D$gpIFO^` zFK~G-7b;pNX}56#3t1s26SlEG1YM$txcknKm%npqf6sTZ;YS}Bf`ueVFg*;+Mlm^a zFJtW6h46cSn!Xy_!Bo5R3{6GwY2{7xUirFa-sBAb#vE>45ZgaMQs~b^TBQ6LD-CCg z$!Ar*Z=-J#RKc3~b8tu41Hled?IjYeA1D-ivI{L08t2u+vUa3&r6PBCWhe1Ii3lW3x-aD0!jIiVVk z$UsIG6T{$hpf)z5pT|#pM?t%k33d2`Uzr8Gva^C2OrI&XrYQIaF;&S!p{JCREiRwg^z{q zYm}3hy@G}~rUSM~RQs9qL8dEtN=J<2IRo=AK5c4vnA>OhttlxIf)n`nmm;ZY&q7|U z5-XclX+HBPi_vCe+~!p|oJS;9JfPeAr-+wG7#c4~#z{F(ZU1LV4PJ7QWwG{X|crmg*l_jabSKiDf8N1 zYc|ANQuSl(++X4M7-q=A3;}gXmILdzFq3K#nm@KAWEk>$0WSWHAX%kUqy56>VJgD+ z`Xas9H9cEg{Zj9LbUM}VNa7n#Y>fwf>tejCC#zHXPlJ?W zzn^G>ux84+BQA-^ej#sm?;^OBt_61v=in+wm zd1mMPjLRereAu{^FgT=`{Ef!()h6=O#blRbi>Nf+J-N4wV_-)bu{zXVA0>WeL#`l%zs^glRjOj=53~aXb z5wAgG+Y)|xoZdVKJ@%n39(i|YbEkWDdR?W2%95R+Phb85U!6oE*vVNsPU??;Z6TEN z5n(K44^fTBJL{ApQviXUqj;f#toEFsm5)6X3sTKJ`uh-0@WjsnQ`;BS(p0pnpZL_4 zK1xI64cFX(%Voh123QAlGb;FH)O?afVALIoA={Yp=7(pd2Mt|6$Wk?b(%;jX8K|&h z+(NZ@8;D-l{VtRVzbSZy+hVJK8-5wc>r!?4JQ+X>_ee<~I|70$^VYWJQ~0@RQc%uC zIclOZMSS*}sEFR|E&Fwruw?{^i`gcXXoMP>TpN zd`M*&hd1?3h5@j~w=(4)Ts9)5NP;gaD;Z6{k=3h|6iPynSeE|ae?V3D_*d*lIz`MA zMEx~sE91|h{)h9;3q4v&RicGhz31mJtuBYNChkCg;^$h|=w9B=QTfy3@-J`07qYzS zF^LUqD#E z+y!nwiIUIkIUnW!e~qODWkU&8Td zI3_WJEjh3jRKIn2**lY=SZ`c@`lj6JUBrrcfErAN+nq)m>^|lj$C_1YW@{UoE@I-Z zRkrXSG7J4OQmVaAGg)T^=I~gHe|Efr%gErHjHUv2?vqoMq2|#_+39=1;d6f1K8TCf zAl|=$_VSO%x{!*)7YwoJ2)gn4DfwV_KRZ%_sn5MzgTCB#5I)<)xsj%n#qK6Y$Y z`?f80%Ht8A(O~DLj3>=@tk+0=NOGyG_z-_pkC#VVpK|#wqy;anC+YX-o7~4?NSe{w zX;k3uSf&Zep(RmoS!R)52mJQcbZgY^+PxSDy8*I-w?AxiA-}A7AtHf`PM@8-6JSvEoiHy=LEa}dc zmE9EOco=Tm+vmW>^{30C&0|SN%Rd-qiNip^Ogb7P)!Tqv~gOwZhepH`1?T?0s} zGhD6hq2orKxRuwL$_koXL;F4A6pdP^nx5ek`Msfe;oaT?rMqM^cg=A@_PHP??~1wl z9(AZ*=@5I&fK+9~_c!zh%Bdtd`-?lZl#5=mMKR*yOji0h=Wm0b4}dyuz}e8gdB0Im z@3=GKb4S7{8@5ICxUwjmXk3=hD>Y#D5fe0o{qZ9`jY+q%rrpUyrB0GPH(v!6`Nl_4 zb+ydT&z~Wq;odZFwe%<2ZT0?$hviom*ZH5I% zvj0vaxi@BqN5VlK&E^Ruu9H*`21ORC-2Tmk%)R+N_Ch^+f=F4Dg1x6o}U}8TLE5;@a=Civ5iI-1*)f+3x*oub8 zJ5PKUVU3YBQ^A|mrz~rzt*F+R&4<)i$agZxsMnTLl_*4neVR6zdNuG>wFB}J$N2L! zdXKw+*z{tCJB3B&)W7NY}zSSd2y6)u= z4HyqDJ+3yIIqsu+O+RFM^{Yi_$;bZHs$ahUldyA%`Ig*nPQ_mKbd9FmGV#n>1IMgt zbZ}53SIZ&IMSoZMX}t$_rz?&_Bk-DIj3o`-Ob?=!5OQ2=IIz-UQ3$v?r-12yff7V5 zf$@yhSN|*)2g+VDbyNxyi2WQVD>oFiXd|%d?q1l3ENVVH^N$T&HZvhw=|@7ph7m=b~onwZgsQsX}B`nxp#EsA_ST<=sZ37peU zY+=~TwQ(v)ZjThjZwE{V$HQRUq}o%0Fma9SyGYsO&Nw1g$J3xo4g%>zr;xmR@ixea z3iLbOHBi_%UXkiXlX_zpk=FxYA3V>b&cWe^JY9zGcvjk{@^VT}qCV{N`U^D{WmT-F zbS&S}(2$2`yIG~fKP&9 zb8wI_ll(Ha`U2$t@A^y8M`WPq5$4~}#hHkR8)C&8*-Lt2gtP38wo z@W<;tK6;tD0E&F(=2+V`ywl^U3*WR_V0;MvFeM@GE73cTR5!O8BA zMgSe@#!G;J@OaSaK==XEB>ryj;jqOzE7^T7ozHMxU2D-W!il|I)@W8~Eyu3(qa^q| zhY{_snhTHa=8+cXgYW@rrG zo_=L_5*J_b7F`r8RuJi=KOiMJQ|f-*&0x%8o^pCm2tCGCKb>P`zzAV+ip?nuEdb}~ zaOU&@UCF@h2ry>kUfg_q^gm7~1Tn$e2v#Qi2uU&^C!Fc6_t&20x7RJBKK^FhoSgP~#G(jA+MWtf2f<$Zg02tiHoP#+SBHnlBxJ z-#57i>!mljqzI2+u>xN^?2NGs1pz7~tC6Lc`aPF)zsfdTw3mcymNoU1$Aq1=UC5pK z!B9mPiuo)DK;sBsg^7~IOZN%KU6g>-w{Y$|jfHe^lIm3AL1sX!Y%$WL-(;mL*y2}f zynr?8+YIZ|Keemxll}(0NIu6DPyc4Ok`}s|GN3yn5PVW3uISOZI*&$kndo6ZZO(F5 zXK0wbFCSnT=(W)`QCzHly`Ifw#7GEf2ksv9uYN~;hjus*=u5IK2PcM;Gqp2!w)oOw zj{pB!Tp0KMPY}t457^%7SnQp4@ZmK>`f0!{NekEj6|E1Up;8mg;0v}1E{JB_QnRH< zoP-I4Ck-c+#!EyqWTaYZNxk=xnWnpp;KQqvw}xr*UPrn6f8{sVwmpu7WVXfFy^rZv z7tf(vKXb=2Y?umXr$r%mr>*+wyzC*@&n8<3YK|4bH)t-i0P0bScKFJYGdeH9bJ^9) z6=Zw{9)oIAr82Tr_00*2N7~okA$h{2$?G4y`aE4E`sjv%;1DIDOW?2|`7l|=jv(+L zslE~5!ice6!k{#|--4i(p{4UjA#%uALD=#K=Yl3lzCrOxVy93{ z#rnp2N`n271hCs-dM(FH#c?KRKyI1SMOs*lxCxJ=x5omc@9FMPgj14S}P$qx3NuDuGO>O<9Dd1gvrb)6>k}lCg(Koac z`E5t@uyGLb@A7-oowt*2_}6JJw&Ryb)8#3ZtHa69ua>ET2t=*#`h&PnBWa{L2Drq% zwh0~vv=ajQB>Ge4YO%VR7y=BmAv^EBJ^kC=N>cdJWkerK!nYZZtI?sYBrS+eR)^d0 zj&Co21+FFsuv*R|Ze||sGNwv$Is71%8Xp?Q71m+3?(#Ue8TH!QF{XjmZT}lMQ#%tU zXGc>b+y7ksXKUtYJPHG61qbD5#E$}J`_KASXFm%L%GpSs0GtXooepl;NRt9C z@*l2MI(Y7XR>W-ZLoiUzr2AZOIT#im7H(!{7S<%0JaGK~P1)puM}3LB=7AI7epTp8 zS~@y8ld$q|{4Zm``ZZMSzaYHIwRKeRo6&q8E2nmO5_(!TOO$mWDb9wegt1_%WcIsR z(61Pm`Z$~4UuM^5A~@KRw@kuQiL{ay77ZG;zY>uCv{(Xhv6i5w-E~NEG6m(vvMh%= z%3{dwxKu%YlB4;7Q6t-Y2pAEG)69_aD|ti(|D5FL%>p&#@Xat5_{;#gD}+0IY;ty1 z^q@bIX8#(dhRQgt3<+u%da}E0LQ=K5(|fqGt3hNW4!{)flChcfWe+$alEOT|Z>7iE zz<7>oWMtl`K^fM~@&hc;{PqER~pETdywHgLCKrtsDaD<9G7^{(| zYDPEmXfMlHdxwbPFQG5fBgBw9)WpEE;vdDX&}HBqn&`9`4C8}It~e1GZfCl}Z>zq(?Sk!eR zAVT39!{D9db*BQ^D1MZBOK>biU|Tf*FhEiRW04pFSx}zn{Ppu>^3byTxx?>4WATvR z+wga^MaCpY)+R;jpwpMZ)k%LyG56uG*hG*&q+j>-nkn6TrdHm74%Kx6g zDkI>qTY46=pno-OcnfD)2D5FO)7{$y?1?yl%f`}2YL*8h2vbrMNP};6At##b6j>mq z@+<69FeKB7=zvUu(lN`SPpLK_ng6bX5Wu*+DhL7k;ugNsS|j2F`B7SuO~W!od4j4( zPN$C)-)jISGjS%V|KbPeb(4yr)JY4hbt{Q(koHUwSTtpz;&>lmaGr~^T+tc>Z7`XU zdB}zDco6dPY3FC3_yZb_u&t}1%%$I@WkHX78cIl7blCG*7ZRQSHRR6;7oDnW!6RJO zC{m@IlxxSLvwyiqI(LfR&hg2zWXBYP3FQ`Ybd*5K0i#kOt8uWcn}qA%6QUk;TXFZ? zhWPSnR1Ietdl@I%G>?&K#MyiF^lVc)9sUL|`uP}VqU(4LhEh@%BjHxBseB)fO32oK z->_uAiw!%HI*|XkU&B~QCVLaWdZZ*EixJ^h#3Z7jbW|1`HZZNKjEix-FF6sx8SYk= zou&YSgDJ@_*px(Na>K)bbSVV@UkI|OpOizyuui#lvDR8@5ODM~glKWI5dn37} zvu0bm!HHQj@^EIk2xNG3|}=9erzqDtgK9bNUmh zl32H*l44`-Fo-Gfi_=fgZ`Q0Vb;#z`7gzuo7IiRf!c&l8*Iai!cGH?kC>gX{f_=XTOyv7wiN%!N) zx=78sja)xLiWpa5RH=Mdt|!8=4?=)6$>Z>^_heoScE>?H(pgZ*@P|vlni~e(tI&-{ z&xu>L6n9%v4*PXwSDvsagdHuhxp$r<*0G(-BdH=bhbX?U<4O{Uooq{tf) zLl+unVuZMXpO5?=t0w|=l3|6{?s$(KO^3UtZ(8*@lhlo)%lvv1$dX)BH)p{9HZc=& z*4f2n`gc&o#k{ZWuy_zj@3~QU9}A795BJ6flupz_GjxrjYjjAbu^jp@#tM#qFV0*o2gHE6o0DLM96f?S zNAmCeQ6{#J_S8vj*8%yn-yR)qRl$}!7LlV{dokXBw9XBfXDhjGA71SIToVqGBWL=S zx0f%viISb(7I{0njV$ST*`;?}`YI5>PJI|*A~mgNTeeeOpkI$gMc=QvCP{2Ls!S3{v zot6k|bEdqLZ1WaorCAb6&F58g+@u=ZF6?L8rf^HQbjN<<{BPFQEhnT4MLeweLn~R9 zjwT|8il-YZeKm|rw>SLHjd0Ier2<|d?j;Xzgm|L!%0gABd{sb(3h^vn>D7M*Wi=L! zt57xk?+oEbgwSE7@7PZtFp~~QUa6FNWXfs*S@hzhw=e_m)^@O&m=)lOqf=pwbaa;8 zbHKbgMsu+8v9dIJR5g{nVg)lx*8H2!9dKaqw73@-zU;^@S^E01M6=qlvLU!B2nwX9 z^P}vL`3l+ZTLIB-wLhN3MiPate(oawn>+X*`GbZ@zv?Av7jLEbxIvJSDaez&_Pa@k zVB8ML?0O#S1FV+njUd(9gtt(1z;iE5oveays_rJ_n3x1NVEnh7nnf?u! zdt{TFfXK;MIA`Sqfof>q7bb#vJfWqG%1tkO6YKJFx)-SyGt={BmAMF(Pmo74sPmSn z5@*FT${S!Cjv~%s8XvNefsHZ<>ZT;;l=yIE4;gM zTR9v_71Qg-&Sbu~#zatnr`fkWjn~z+U>!9*+bk)7J^u+i`4hax4W#7% z{`=B?^2gjsh>1j&B$py!xL88M#!bZaK#Z&(E%bA3e{YzFEj!DMO z>=y~=e?lw&A;d{^_*vLkSh%>v#94U6#W*>bB}F+z#Kf2-S-%c8R#6UiL6ZNs$k$W; z+qq?B`JW*gT7Ymu;5(Q-%HZ|u`{Ydy^muR`Yq{K}U*50W4c}iPuz{Q!(6B3bgexol ziIO5H5Zx%27BFC|8LCCE>o?n8y@b?cH_)MO6e0P-5M(mMmBW;9@CF}o_YGs)sZ^T ph$l4Jp%cLP%2^?}M_dI$(VB!>2~LQ>!NbbU4o68Tp(qLWKLEIDKJ)+p diff --git a/example_package/doc/abczad.tex b/example_package/doc/abczad.tex index cd348334..ee1d29ef 100644 --- a/example_package/doc/abczad.tex +++ b/example_package/doc/abczad.tex @@ -22,8 +22,8 @@ \tSection{Wejście} -W pierwszym wierszu standardowego wejścia znajduje się jedna liczba $\tc{n}$ ($1\leq \tc{n}\leq 10^6$), -oznaczająca parametr z~wejścia. +W pierwszym wierszu standardowego wejścia znajduje się jedna liczba \tc{n} ($1 \leq \tc{n} \leq 10^6$), oznaczająca parametr z~wejścia. +W drugim wierszu znajduje się $\tc{n}$ liczb $\tc{a_i}$ $(1 \leq \tc{n} \leq 10^6)$. \tSection{Wyjście} @@ -31,8 +31,7 @@ Donec rhoncus torstor vitae lorem luctus maximus. Donec bibendum, dui eget diganissim viverra, lectus leo scelerisque metus, ut sagittis ligula nisl ut purus. -W pierwszym wierszu wyjścia powinna znajdować się jedna -liczbaq \tc{liczbaq qwerty}, $\tc{z_1}, \tc{q}, \tc{nq^{a+b}} nq^{a+b}$, wynik z zadania. +W pierwszym wierszu wyjścia powinna znajdować się jedna liczba, wynik z zadania. \tSection{Przykład} @@ -78,6 +77,7 @@ % ~ % słowa oddzielone '~' zamiast ' ' w~taki sposób będą zawsze koło siebie % pusta linijka rozpoczyna nowy akapit. % \footnote{text} tworzy adnotację na dole strony do miejsca w którym użyto. +% \vspace{5pt} tworzy odstęp. % $text_mat$ % pozwala na pisanie wyrażeń matematycznych % Dokumentacja: % https://www.overleaf.com/learn @@ -87,10 +87,9 @@ % \start{} % Rozpoczyna treść, musi być na samym początku treści zadania. % \finish{} % Kończy treść, musi być na samym końcu treści zadania. % \tSection{text} % Nagłówek w stylu talentu. -% \tCustomSection{text}{xpt} % Nagłówek w stylu talentu, z możliwością ustawienia odstępu 'x' od poprzedniego akapitu. % \tSmallSection{text} % Mały nagłówek w stylu talentu. % \tc{text} % Styl używany do oznaczania zmiennych. -% \example[h/v]{id} % wstawia test przykłądowy "zad0{id}" z paczki. +% \example[h/v]{id} % Wstawia test przykłądowy "zad0{id}" z paczki. % abc0.in -> example{}, abc0xy.in -> example{xy}, abc0x.in -> example[v]{x}. % Opcjonalnie można dodać położenie testów, 'h' - horyzontalnie, 'v' - pionowo, domyślnie jest h. % Przy kompilacji testy są automatycznie czytane z folderów ./in i ./out @@ -98,3 +97,8 @@ % \testOcen{test}{text} % Pojedyńczy test ocen z opisem. Podajesz nazwe testu (1ocen, 0c, 2ocen) i opis % \subtaskTable[point]{ subtask{}{} } % Tabela z podzadaniami. Opcjonalnie można podać ile punktów jest za zadanie. % \subtask{point}{text} % Tworzy pojedyńczy wiersz tabeli opisujący podzadanie, o danej ilości punktów i z danym ograniczeniem. +% \twocol[szerokość1][przerwa][t/b/c]{kolumna1}{kolumna2} % Tworzy 2 kolumny z zawartością o szerokościach 0,5 0,5. +% Można opcjonalnie podać ułamek szerokości pierwszej kolumny (0.5), ułamek szerokości przerwy (0), wybrać linię bazową połączenia (t). +% \imgt[szerokość]{plik}{opis} % Wstawia zdjęcie z opisem u góry. Można opcjonalnie zmienić szerokość zdjęcia (0.8). +% \imgb[szerokość]{plik}{opis} % Wstawia zdjęcie z opisem na dole. Można opcjonalnie zmienić szerokość zdjęcia (0.8). +% \img{plik} % \img[szerokość][opis][t/b]{plik} % Wstawia zdjęcie. Można opcjonalnie zmienić szerokość zdjęcia (0.8). diff --git a/example_package/doc/talentTex.cls b/example_package/doc/talentTex.cls index 15bdf628..cff064e4 100644 --- a/example_package/doc/talentTex.cls +++ b/example_package/doc/talentTex.cls @@ -126,28 +126,21 @@ \end{center}% } -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\def\LOGO{ - \leavevmode - \hbox{ - \vbox to 0pt{ - \vss - \hbox{ - \includegraphics[height=1.143cm,bb=0 0 900 300]{\pathContestLogo}% - } - } - } +\NewDocumentCommand{\tworow}{ O{10} m m }{% + \begin{center}% + \begin{minipage}{\textwidth}% + #2% + \end{minipage}% + \par\vspace{#1pt}\par% + \begin{minipage}{\textwidth}% + #3% + \end{minipage}% + \end{center}% } -\def\topHugeTitle{% - \begin{minipage}[t]{0.75\textwidth}% - \huge% - \fontfamily{ptm}% - \color{talentBlue}% - \textbf{\taskTitle}% - \end{minipage}% -} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Definicje nagłówka +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \def\topInformationBarText{} @@ -161,6 +154,22 @@ } } +\newcommand{\Header}{% + \noindent% + \begin{minipage}[b]{0.75\textwidth}% + \huge\tc{\taskTitle}% + \end{minipage}% + \hfill% + \begin{minipage}[b]{0.22\textwidth}% + \hfill\raisebox{-4pt}{\includegraphics[width=\textwidth]{\pathContestLogo}}% + \end{minipage}% + \smallskip% + {\color{talentBrown}\hrule height 1.75pt}% + \smallskip% + \topInformationBar% + \bigskip% +} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Przypisanie stałych przez użytkownika %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -206,10 +215,6 @@ } \newcommand{\iomode}[1]{ - \ifeq{#1}{files}{ - \gdef\exampleInputText{Dla pliku wejściowego {\ttfamily\taskID.in}:} - \gdef\exampleOutputText{poprawnym wynikiem jest plik wyjściowy {\ttfamily\taskID.out}:} - } \ifeq{#1}{stdin}{ \gdef\exampleInputText{{\color{talentBlue}\bf\textInput:}} \gdef\exampleOutputText{{\color{talentBlue}\bf\textOutput:}} @@ -259,7 +264,7 @@ } } -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \DeclareOption{opi}{ \renewcommand{\topInformationBarText}{ \Large% @@ -267,7 +272,7 @@ } } -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \DeclareOption{opr}{ \renewcommand{\topInformationBarText}{ \Large% @@ -275,15 +280,17 @@ } } -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} \ProcessOptions\relax \PassOptionsToClass{a4paper}{article} \LoadClass{article} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% rozmiar papieru +% Wygląd dokumentu (papier, stopka, tasktext) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% rozmiar papieru + \setlength{\textwidth}{168mm} % {180mm} \setlength{\textheight}{265mm} % {257mm} \setlength{\oddsidemargin}{0pt} @@ -293,39 +300,32 @@ \renewcommand{\headrulewidth}{0pt} \renewcommand{\footrulewidth}{0.4pt} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Wygląd stopki dokumentu -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% stopka + \pagestyle{fancy} \lfoot{Stowarzyszenie Talent (talent.edu.pl)} \rfoot{\begin{minipage}[t]{0.45\textwidth}\raggedleft\taskTitle\ - \taskID\end{minipage}} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Definicja przestrzeni dokumentu: 'tasktext' -\newenvironment{tasktext}{ - % Tytuł - \leftline{% - \topHugeTitle% - } - % Logo - \rightline{ - \hbox to\hsize{\hfil\LOGO} - } - \smallskip - % Linia - { - \color{talentBrown} - \hrule height 2pt \relax - } - \smallskip - \topInformationBar - \bigskip -}{} +% Przestrzeń tasktext + +\newenvironment{tasktext}{\Header}{} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Komendy dostępne w klasie talentTex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Początek i koniec tasktext + +\newcommand{\start}{% + \ifDocumentHasSet\else\begin{document}\DocumentHasSetfalse\fi% + \begin{tasktext}% +} + +\newcommand{\finish}{% + \end{tasktext}% + \ifDocumentHasSet\else\end{document}\fi% +} + % Pokazywanie testów wstępnych \newcommand{\includefile}[1]{ @@ -351,74 +351,27 @@ }\par } -\newcommand{\makeVExample}[1]{% - \noindent% - \begin{minipage}{\textwidth}% - \exampleinput{#1}% - \exampleoutput{#1}% - \end{minipage}% -} - -\newcommand{\makeHExample}[1]{% - \twocol{\exampleinput{#1}}{\exampleoutput{#1}}% -} - \newcommand{\example}[2][h]{% - \ifUseExample\vspace{5pt}\else\UseExampletrue\fi - \vspace{2pt} - \ifeq{#1}{h}{\makeHExample{#2}}% - \ifeq{#1}{v}{\makeVExample{#2}}% -} - -% Początek i koniec dokumentu - -\newcommand{\start}{% - \ifDocumentHasSet\else\begin{document}\DocumentHasSetfalse\fi% - \begin{tasktext}% -} - -\newcommand{\finish}{% - \end{tasktext}% - \ifDocumentHasSet\else\end{document}\fi% + \ifUseExample\vspace{3pt}\else\vspace{-8pt}\UseExampletrue\fi + \ifeq{#1}{h}{\twocol{\exampleinput{#2}}{\exampleoutput{#2}}}% + \ifeq{#1}{v}{\tworow[10]{\exampleinput{#2}}{\exampleoutput{#2}}}% } % obsługa zdjeć -\newlength{\imgwidth} - -% podpis pod/nad obrazkiem -\newcommand{\imgcaption}[1]{ - \def\capwidth{\textwidth} - \addtolength\capwidth{-1cm} - \centerline{\begin{minipage}{\capwidth}\footnotesize #1\end{minipage}} -} - -% rysunek #1-plik, #2-podpis, #3-gdzie podpis (t-na gorze, b-na dole) -\newcommand{\img}[3]{ - \def\tmpargthree{#3} - \def\tmpb{b} - \setlength\imgwidth{\textwidth} - \addtolength\imgwidth{-2cm} - \begin{center} - \begin{minipage}{\imgwidth} - \ifx\tmpargthree\tmpb - $$\includegraphics[width=1\imgwidth]{#1}$$ - \hrule - \smallskip - \imgcaption{#2} - \else - \imgcaption{#2} - \smallskip - \hrule - \smallskip - $$\includegraphics[width=1\imgwidth]{#1}$$ - \fi - \end{minipage}\end{center} +% \img[szerokosć][opis][t/b]{plik} (t-na gorze, b-na dole) +\NewDocumentCommand{\img}{ O{0.8} o O{b} m }{% + \begin{center}% + \begin{minipage}{#1\textwidth}% + \IfValueT{#2}{\ifeq{#3}{t}{\footnotesize#2\smallskip\hrule\smallskip}}% + \includegraphics[width=\textwidth]{#4}% + \IfValueT{#2}{\ifeq{#3}{b}{\smallskip\hrule\smallskip\footnotesize#2}}% + \end{minipage}% + \end{center}% } -\newcommand{\timg}[2]{\img{#1}{#2}{t}} -\newcommand{\bimg}[2]{\img{#1}{#2}{b}} -\newcommand{\plainimg}[1]{$$\includegraphics{#1}$$} +\newcommand{\imgt}[3][0.8]{\img[#1][#3][t]{#2}} +\newcommand{\imgb}[3][0.8]{\img[#1][#3][b]{#2}} % Sekcje w dokumencie From 733b4198e0b458d8a5c370e1e86d89cdfc8f99cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ro=C5=BCek?= Date: Tue, 21 May 2024 20:26:01 +0200 Subject: [PATCH 08/15] lepsze opisy i dalsze zmiany --- example_package/README.md | 34 ++++++----- example_package/doc/abcopi.pdf | Bin 149149 -> 149149 bytes example_package/doc/abcopr.pdf | Bin 147514 -> 147514 bytes example_package/doc/abczad.pdf | Bin 241466 -> 241466 bytes example_package/doc/abczad.tex | 27 +++++---- example_package/doc/talentTex.cls | 95 +++++++++++++----------------- 6 files changed, 76 insertions(+), 80 deletions(-) diff --git a/example_package/README.md b/example_package/README.md index c48eaf5f..5baa5cb1 100644 --- a/example_package/README.md +++ b/example_package/README.md @@ -66,34 +66,38 @@ Jest to klasa używana w plikach `.tex`. Nadaje ona odpowiedni wygląd dokumentom. Automatycznie tworzy ona nagłówki i stopki. Wystarczy że stworzymy treść dokumentu pomiędzy znacznikami `\start` i `\finish`. -Dodatkowo udostępnia następujące funkcje: +Dodatkowo udostępnia następujące funkcje. +Zmienne podane w `{}` są obowiązkowe a `[]` można nie podawać. - `\tc{n}` - Stylizuje podany tekst na talentowy kolor. -- `\plainimg{img1.jpg}` - Wstawia obrazek o podanej ścieżce. -- `\img{img1.jpg}{opis}{t/b}` - Wstawia obrazek o podanej ścieżce z opisem u góry lub na dole. -Można też `\timg{img1.jpg}{opis}`, `\bimg{img1.jpg}{opis}`. -- `\start{}` - Rozpoczyna treść, musi być na samym początku treści dokumentu. -- `\finish{}` - Kończy treść, musi być na samym końcu treści dokumentu. +- `\start` - Rozpoczyna treść, musi być na samym początku treści dokumentu. +- `\finish` - Kończy treść, musi być na samym końcu treści dokumentu. - `\tSection{text}` - Nagłówek w stylu talentu. - `\tCustomSection{text}{0pt}` - Nagłówek w stylu talentu, z możliwością ustawienia odstępu od poprzedniego akapitu. - `\tSmallSection{text}` - Mały nagłówek w stylu talentu. -- `\example[h/v]{id}` - Wstawia test przykłądowy "zad0{id}" z paczki. - Opcjonalnie można dodać położenie testów, h - horyzontalnie, v - pionowo, domyślnie jest h. - Przy kompilacji testy są automatycznie czytane z folderów ./in i ./out. - Należy się upewnić, że są one wygenerowane w momencie kompilacji treści. +- `\example[h/v]{id}` - Wstawia test przykłądowy "zad0id" z paczki. + abc0.in -> example{}, abc0xy.in -> example{xy}, abc0x.in -> example[v]{x}. + Opcjonalnie można dodać położenie testów, 'h' - horyzontalnie, 'v' - pionowo, domyślnie jak się nie poda jest h. + Przy kompilacji testy są automatycznie czytane z folderów ./in i ./out, więc upewnij się że się tam znajdują. Te polecenia również tworzą nagłówek "Wejście" i "Wyjście". -- `\ocen{\testOcen{}{} ...}` - Lista wszystkich testów ocen. +- `\ocen{ \testOcen{}{}...}` - Lista wszystkich testów ocen. - `\testOcen{nazwa_testu}{opis_testu}` - Pojedynczy test ocen z opisem. -- `\subtaskTable{}` - Tworzy tabelę z podzadaniami. - Jako argument należy przekazać `\subtask{}{}`, dla każdego podzadania. +- `\subtaskTable{ \subtask{}{}... }` - Tworzy tabelę z podzadaniami. + Jako argumenty należy przekazać `\subtask{}{}`, dla każdego podzadania. + Komenda sama sprawdzi czy suma punktów się zgadza. Opcjonalnie można podać ile punktów jest za zadanie `\subtaskTable[100]{}`. Automatycznie tworzy nagłówek (Nr & Ograniczenia & Punkty). - `\subtask{punkty}{ograniczenie}` - Tworzy pojedynczy wiersz tabeli opisujący podzadanie z podaną ilością punktów i danym ograniczeniem. -- `\twocol[szerokość1][przerwa][t/b/c]{kolumna1}{kolumna2}` - Tworzy 2 kolumny z zawartością o szerokościach 0.5 0.5. - Można opcjonalnie podać ułamek szerokości pierwszej kolumny (0.5), ułamek szerokości przerwy (0), wybrać linię bazową połączenia (t). +- `\twocol{}{}` `\twocol[szerokość1][przerwa][t/b/c]{kolumna1}{kolumna2}` - Tworzy 2 kolumny z podaną zawartością. + Opcjonalnie można podać ułamek szerokości pierwszej kolumny (domyślnie 0.5), ułamek szerokości przerwy ( domyślnie0). + Szerokość 2 kolumny dopełni się do całości. Oraz opcjonalnie wybrać łączenie lini bazowej (domyślnie t). - `\imgt[szerokość]{plik}{opis}` - Wstawia zdjęcie z opisem u góry. Można opcjonalnie zmienić szerokość zdjęcia (0.8). - `\imgb[szerokość]{plik}{opis}` - Wstawia zdjęcie z opisem na dole. Można opcjonalnie zmienić szerokość zdjęcia (0.8). - `\img{plik}` % `\img[szerokość][opis][t/b]{plik}` - Wstawia zdjęcie. Można opcjonalnie zmienić szerokość zdjęcia (0.8). +- `\title{} \id{}` - Ustawiają tytuł i id. Są obowiązkowe. +- `\contest{}` - Wyświetlany w nagłówku nazwe konkursu. +- `\day{} \round{} \group{}` - Wyświetla się w nagłówku. Automatycznie dodaje przed nazwe (np \day{2} -> Dzień: 2) +- `\Memory[]{} \Time[]{}` - Też się wyświetla z nazwą. Dodatkowo dodaje jednostkę którą opcjonalnie można zmienić. ## **prog** diff --git a/example_package/doc/abcopi.pdf b/example_package/doc/abcopi.pdf index 3543505881b44daf64206eac615fb3be8437b4d8..1aa761db5a57a27924c9560976d9bbc1946df07c 100644 GIT binary patch delta 113 zcmbQ+%Q?4~v!R7?3)2>Rc0(frBU1y*>AUTjWMG`__w1QYvpTyPo0u4z7#Ufbxi}dZ hxH%hJx*54yS{Rs`S(sTm8yeUt*bq`O{f#TrMgZK_9jX8T delta 113 zcmbQ+%Q?4~v!R7?3)2>Rb^{|rQ$r)O>AUTjWMG`__w1QYvpNHXT^$`Q&CShB4b7a4 g&E1TRjopmRo!v|g4IK@f-Ru->2q~HV#+7L!0OR5v?f?J) diff --git a/example_package/doc/abcopr.pdf b/example_package/doc/abcopr.pdf index 439f420e13c4c646449e386c405676a488d5f891..0150939060c5149325ee37aba4919884ba249a6a 100644 GIT binary patch delta 113 zcmdnhz`3h|v!R7?3lp;?yP=VRk*R^@bS_IK85n1~t|gNMo3pF2o3o3ffuWI!sfDG9 hn}Lg&iGiV|o3p98nSq;`sezq>4Iw4dJM5V@0RaAS8n^%e delta 113 zcmdnhz`3h|v!R7?3lp;?yMd9RsiBeSbS_IK85n1~t|gNMo3pW#xtWuzqk)N&sf(eL hlYxP`sfD?Vfuos)k%g(bnVFq}4Iw4dJM5V@0Ra0~8ms^S diff --git a/example_package/doc/abczad.pdf b/example_package/doc/abczad.pdf index 60d0d3b39d5164937ab00f5e7d70910eab95a31d..aa59bd212caebe190e6831bea4fe595ec7549755 100644 GIT binary patch delta 116 zcmdmWk8jsKzJ?aY7N#xCPK((MjSP%T4J@X6E@qa2akl3yX3phuHZ(S~FfcNJ_aB(s example{}, abc0xy.in -> example{xy}, abc0x.in -> example[v]{x}. -% Opcjonalnie można dodać położenie testów, 'h' - horyzontalnie, 'v' - pionowo, domyślnie jest h. -% Przy kompilacji testy są automatycznie czytane z folderów ./in i ./out -% \ocen{ \testOcen{}{} } % Lista wszystkich testów ocen. +% Opcjonalnie można dodać położenie testów, 'h' - horyzontalnie, 'v' - pionowo, domyślnie jak się nie poda jest h. +% Przy kompilacji testy są automatycznie czytane z folderów ./in i ./out, więc upewnij się że się tam znajdują. +% \ocen{ \testOcen{}{}... } % Lista wszystkich testów ocen, podajemy do niej komendy \testOcen{}{}. % \testOcen{test}{text} % Pojedyńczy test ocen z opisem. Podajesz nazwe testu (1ocen, 0c, 2ocen) i opis -% \subtaskTable[point]{ subtask{}{} } % Tabela z podzadaniami. Opcjonalnie można podać ile punktów jest za zadanie. +% \subtaskTable[point]{ \subtask{}{}... } % Tworzy tabelę z podzadaniami, podajemy do niej komendy \subtask{}{}. +% Automatycznie sprawdzi czy punkty sumują się do 100. Opcjonalnie można podać inną ilość punktów za zadanie. % \subtask{point}{text} % Tworzy pojedyńczy wiersz tabeli opisujący podzadanie, o danej ilości punktów i z danym ograniczeniem. -% \twocol[szerokość1][przerwa][t/b/c]{kolumna1}{kolumna2} % Tworzy 2 kolumny z zawartością o szerokościach 0,5 0,5. -% Można opcjonalnie podać ułamek szerokości pierwszej kolumny (0.5), ułamek szerokości przerwy (0), wybrać linię bazową połączenia (t). +% \twocol{}{} % \twocol[szerokość1][przerwa][t/b/c]{kolumna1}{kolumna2} % Tworzy 2 kolumny z podaną zawartością. +% Opcjonalnie można podać ułamek szerokości pierwszej kolumny (domyślnie 0.5), ułamek szerokości przerwy ( domyślnie0). +% Szerokość 2 kolumny dopełni się do całości. Oraz opcjonalnie wybrać łączenie lini bazowej (domyślnie t). % \imgt[szerokość]{plik}{opis} % Wstawia zdjęcie z opisem u góry. Można opcjonalnie zmienić szerokość zdjęcia (0.8). % \imgb[szerokość]{plik}{opis} % Wstawia zdjęcie z opisem na dole. Można opcjonalnie zmienić szerokość zdjęcia (0.8). % \img{plik} % \img[szerokość][opis][t/b]{plik} % Wstawia zdjęcie. Można opcjonalnie zmienić szerokość zdjęcia (0.8). +% \title{} \id{} % Ustawiają tytuł i id. Są obowiązkowe. +% \contest{} % Informuje jaki nazywa się kontest i jest wyświetlany w nagłówku. +% \day{} \round{} \group{} % Wyświetla się w nagłówku. Automatycznie dodaje przed nazwe (np \day{2} -> Dzień: 2) +% \Memory[]{} \Time[]{} % Też się wyświetla z nazwą. Dodatkowo dodaje jednostkę którą opcjonalnie można zmienić. diff --git a/example_package/doc/talentTex.cls b/example_package/doc/talentTex.cls index cff064e4..721e3782 100644 --- a/example_package/doc/talentTex.cls +++ b/example_package/doc/talentTex.cls @@ -4,17 +4,14 @@ % Copyright (c) Jakub Rożek 2024 % Provided under MIT licence % -% Based on sinol.cls made by: -% Grzegorz Jakacki, Tomasz Waleń, Marcin Kubica, Jakub Pawlewicz -% Adam Iwanicki, Szymon Acedanski, Tomasz Idziaszek, Jakub Radoszewski - +% Inspired on sinol.cls made by OI: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Formalności %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \NeedsTeXFormat{LaTeX2e} \def\codeVersion{0.0.6} -\ProvidesClass{talentTex}[Stowarzyszenie Talent \codeVersion] +\ProvidesClass{talentTex}[2024/05/21 Stowarzyszenie Talent \codeVersion] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Include pakietów @@ -61,28 +58,10 @@ \newcounter{subtasksCounter} % licznik podzadań w tabelce \newcounter{subtasksPiontSum} % suma punktów do zdobycia w zadaniu -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Czynności przed i po dokumencie -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\AtBeginDocument{% - \DocumentHasSettrue% - \ifundef{taskID}{% - \errmessage{brak id (\string\id{})}% - }{} - \ifundef{taskTitle}{% - \errmessage{brak title (\string\title{})}% - }{} -} - -\AtEndDocument{} - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Definicje techniczne %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\def\?#1{[[#1]]} - \def\ifundef#1#2#3{% \ifcsname#1\endcsname% #3% @@ -214,14 +193,6 @@ \global\TimeDefedtrue } -\newcommand{\iomode}[1]{ - \ifeq{#1}{stdin}{ - \gdef\exampleInputText{{\color{talentBlue}\bf\textInput:}} - \gdef\exampleOutputText{{\color{talentBlue}\bf\textOutput:}} - } -} -\iomode{stdin} - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Nazwy wyświetlane (zmiana języka, narazie tu ręcznie) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -237,6 +208,7 @@ \def\textOutput{Wyjście} \def\textPoints{Punkty} \def\textTestCasess{Ograniczenia} +\def\textNr{Nr} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Opcje talentTex @@ -310,6 +282,22 @@ \newenvironment{tasktext}{\Header}{} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Czynności przed i po dokumencie +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\AtBeginDocument{% + \DocumentHasSettrue% + \ifundef{taskID}{% + \errmessage{brak id (\string\id{})}% + }{} + \ifundef{taskTitle}{% + \errmessage{brak title (\string\title{})}% + }{} +} + +\AtEndDocument{} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Komendy dostępne w klasie talentTex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -326,6 +314,21 @@ \ifDocumentHasSet\else\end{document}\fi% } +% Talentowy kolor do zaznaczania zmiennych + +\newcommand{\tc}[1]{% + \ifmmode% + \StrLen{#1}[\@tmpStrLen]% + \ifnum\@tmpStrLen=1% + {\fontfamily{ptm}\textcolor{talentBlue}{\textbf{#1}}}% + \else% + \textcolor{talentBlue}{\mathbf{#1}}% + \fi% + \else% + {\fontfamily{ptm}\textcolor{talentBlue}{\textbf{#1}}}% + \fi% +} + % Pokazywanie testów wstępnych \newcommand{\includefile}[1]{ @@ -334,20 +337,20 @@ } \newcommand{\exampleinput}[1]{ - \noindent\exampleInputText\par + \noindent{\color{talentBlue}\bf\textInput:}\par \iffileexists{\pathTestIn/\taskID0#1.in}{ \includefile{\pathTestIn/\taskID0#1.in} }{ - \?{brak pliku {\ttfamily\pathTestIn/\taskID0#1.in}} + \color{red}{No file {\ttfamily\pathTestIn/\taskID0#1.in}} }\par } \newcommand{\exampleoutput}[1]{ - \noindent\exampleOutputText\par + \noindent{\color{talentBlue}\bf\textOutput:}\par \iffileexists{\pathTestOut/\taskID0#1.out}{ \includefile{\pathTestOut/\taskID0#1.out} }{ - \?{brak pliku {\ttfamily\pathTestOut/\taskID0#1.out}} + \color{red}{No file {\ttfamily\pathTestOut/\taskID0#1.out}} }\par } @@ -378,10 +381,7 @@ \newcommand{\tSection}[1]{% \tCustomSection{#1}{15pt}% } - -\newcommand{\tsection}[1]{% - \tSection{#1}% -} +\let\tsection\tSection \newcommand{\tSmallSection}[1]{ \par\vspace{5pt}% @@ -397,21 +397,6 @@ \par\vspace{2pt}% } -% Talentowy kolor do zaznaczania zmiennych - -\newcommand{\tc}[1]{% - \ifmmode% - \StrLen{#1}[\@tmpStrLen]% - \ifnum\@tmpStrLen=1% - {\fontfamily{ptm}\textcolor{talentBlue}{\textbf{#1}}}% - \else% - \textcolor{talentBlue}{\mathbf{#1}}% - \fi% - \else% - {\fontfamily{ptm}\textcolor{talentBlue}{\textbf{#1}}}% - \fi% -} - % Testy ocen \newcommand{\ocen}[1]{% @@ -432,7 +417,7 @@ \setcounter{subtasksPiontSum}{0} \begin{center} \begin{tabular}{|c|l|c|} \hline - \tc{Nr} & \tc{\textTestCasess} & \tc{\textPoints} \\ \hline + \tc{\textNr} & \tc{\textTestCasess} & \tc{\textPoints} \\ \hline #2 \end{tabular} \end{center} From 37a8509478925ecdd08a25c3d86512ef60ac4dbd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ro=C5=BCek?= Date: Tue, 21 May 2024 20:34:10 +0200 Subject: [PATCH 09/15] commit --- example_package/doc/abcopi.pdf | Bin 149149 -> 149149 bytes example_package/doc/abcopr.pdf | Bin 147514 -> 147514 bytes example_package/doc/abczad.pdf | Bin 241466 -> 241466 bytes example_package/doc/talentTex.cls | 12 +++++++----- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/example_package/doc/abcopi.pdf b/example_package/doc/abcopi.pdf index 1aa761db5a57a27924c9560976d9bbc1946df07c..c3689bd8cb6f78658e1990b770b0d1fc58058c22 100644 GIT binary patch delta 107 zcmbQ+%Q?4~v!R7?3)6Oc7Goo0i|M=VndHH&?f2}NPO~~Y8W|W_ni!b4xmmgxI=Q+U enOL~G7`vKV7`iyRSh~5{DcBHFGX0G!(?$SjaUEg+ delta 107 zcmbQ+%Q?4~v!R7?3)6Oc79&#w%jvuAndHH&?f2}NPP00@8k?9Hn;02cnz=X`7`Qnb eTe=y!Sy~vFnpv1xIvX0;DcBHFGX0G!(?$SIjvRyl diff --git a/example_package/doc/abcopr.pdf b/example_package/doc/abcopr.pdf index 0150939060c5149325ee37aba4919884ba249a6a..d598017ec3c92d5a173f35970cb728a234a6e2d6 100644 GIT binary patch delta 106 zcmdnhz`3h|v!R7?3lp0qi?NZh#dI!9CV4PxyRIdZ1e=qYp^2lZi>Zl;g^Qb^i<7yL erL&uftFfb{rKzE_rI~@9f(-#B)7$NtHUj`)RT-H8 delta 106 zcmdnhz`3h|v!R7?3lp0qi;<~;<#aAfCV4PxyRIdZ1e=qqv757tqk*B3iK&I9iJO6o enTdg+rJJ* Date: Wed, 22 May 2024 10:55:35 +0200 Subject: [PATCH 10/15] poprawa uwag --- example_package/README.md | 9 +++++---- example_package/doc/abczad.tex | 5 +++-- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/example_package/README.md b/example_package/README.md index 5baa5cb1..6cfbe0e8 100644 --- a/example_package/README.md +++ b/example_package/README.md @@ -67,7 +67,8 @@ Nadaje ona odpowiedni wygląd dokumentom. Automatycznie tworzy ona nagłówki i stopki. Wystarczy że stworzymy treść dokumentu pomiędzy znacznikami `\start` i `\finish`. Dodatkowo udostępnia następujące funkcje. -Zmienne podane w `{}` są obowiązkowe a `[]` można nie podawać. +Zmienne podane w `{}` są obowiązkowe a w `[]` są opcjonalne, można ich nie podawać wcale lub tylko jakiś prefiks. +Czyli na przykład `\img{a}` lub `\img[0.5]{a}` lub `\img[0.5][obrazek 1]{a}`. - `\tc{n}` - Stylizuje podany tekst na talentowy kolor. - `\start` - Rozpoczyna treść, musi być na samym początku treści dokumentu. @@ -76,7 +77,7 @@ Zmienne podane w `{}` są obowiązkowe a `[]` można nie podawać. - `\tCustomSection{text}{0pt}` - Nagłówek w stylu talentu, z możliwością ustawienia odstępu od poprzedniego akapitu. - `\tSmallSection{text}` - Mały nagłówek w stylu talentu. - `\example[h/v]{id}` - Wstawia test przykłądowy "zad0id" z paczki. - abc0.in -> example{}, abc0xy.in -> example{xy}, abc0x.in -> example[v]{x}. + abc0.in -> \example{}, abc0xy.in -> \example{xy}, abc0x.in -> \example[v]{x}. Opcjonalnie można dodać położenie testów, 'h' - horyzontalnie, 'v' - pionowo, domyślnie jak się nie poda jest h. Przy kompilacji testy są automatycznie czytane z folderów ./in i ./out, więc upewnij się że się tam znajdują. Te polecenia również tworzą nagłówek "Wejście" i "Wyjście". @@ -84,8 +85,7 @@ Zmienne podane w `{}` są obowiązkowe a `[]` można nie podawać. - `\testOcen{nazwa_testu}{opis_testu}` - Pojedynczy test ocen z opisem. - `\subtaskTable{ \subtask{}{}... }` - Tworzy tabelę z podzadaniami. Jako argumenty należy przekazać `\subtask{}{}`, dla każdego podzadania. - Komenda sama sprawdzi czy suma punktów się zgadza. - Opcjonalnie można podać ile punktów jest za zadanie `\subtaskTable[100]{}`. + Komenda sprawdzi czy punkty sumują się do podanej opcjonalnie ilości punktów (domyślnie 100) a jak nie to wyświetli błąd. Automatycznie tworzy nagłówek (Nr & Ograniczenia & Punkty). - `\subtask{punkty}{ograniczenie}` - Tworzy pojedynczy wiersz tabeli opisujący podzadanie z podaną ilością punktów i danym ograniczeniem. - `\twocol{}{}` `\twocol[szerokość1][przerwa][t/b/c]{kolumna1}{kolumna2}` - Tworzy 2 kolumny z podaną zawartością. @@ -94,6 +94,7 @@ Zmienne podane w `{}` są obowiązkowe a `[]` można nie podawać. - `\imgt[szerokość]{plik}{opis}` - Wstawia zdjęcie z opisem u góry. Można opcjonalnie zmienić szerokość zdjęcia (0.8). - `\imgb[szerokość]{plik}{opis}` - Wstawia zdjęcie z opisem na dole. Można opcjonalnie zmienić szerokość zdjęcia (0.8). - `\img{plik}` % `\img[szerokość][opis][t/b]{plik}` - Wstawia zdjęcie. Można opcjonalnie zmienić szerokość zdjęcia (0.8). + Pozostałe 2 parametry tworzą opis jak polecenia \imgb i \imgt gdzie t i b to góra lub dół. - `\title{} \id{}` - Ustawiają tytuł i id. Są obowiązkowe. - `\contest{}` - Wyświetlany w nagłówku nazwe konkursu. - `\day{} \round{} \group{}` - Wyświetla się w nagłówku. Automatycznie dodaje przed nazwe (np \day{2} -> Dzień: 2) diff --git a/example_package/doc/abczad.tex b/example_package/doc/abczad.tex index d317921e..2c2b643e 100644 --- a/example_package/doc/abczad.tex +++ b/example_package/doc/abczad.tex @@ -91,13 +91,13 @@ % \tSmallSection{text} % Mały nagłówek w stylu talentu. % \tc{text} % Styl używany do oznaczania zmiennych. % \example[h/v]{id} % Wstawia test przykłądowy "zad0id" z paczki. -% abc0.in -> example{}, abc0xy.in -> example{xy}, abc0x.in -> example[v]{x}. +% abc0.in -> \example{}, abc0xy.in -> \example{xy}, abc0x.in -> \example[v]{x}. % Opcjonalnie można dodać położenie testów, 'h' - horyzontalnie, 'v' - pionowo, domyślnie jak się nie poda jest h. % Przy kompilacji testy są automatycznie czytane z folderów ./in i ./out, więc upewnij się że się tam znajdują. % \ocen{ \testOcen{}{}... } % Lista wszystkich testów ocen, podajemy do niej komendy \testOcen{}{}. % \testOcen{test}{text} % Pojedyńczy test ocen z opisem. Podajesz nazwe testu (1ocen, 0c, 2ocen) i opis % \subtaskTable[point]{ \subtask{}{}... } % Tworzy tabelę z podzadaniami, podajemy do niej komendy \subtask{}{}. -% Automatycznie sprawdzi czy punkty sumują się do 100. Opcjonalnie można podać inną ilość punktów za zadanie. +% Sprawdzi czy punkty sumują się do podanej opcjonalnie ilości punktów (domyślnie 100) a jak nie to wyświetli błąd. % \subtask{point}{text} % Tworzy pojedyńczy wiersz tabeli opisujący podzadanie, o danej ilości punktów i z danym ograniczeniem. % \twocol{}{} % \twocol[szerokość1][przerwa][t/b/c]{kolumna1}{kolumna2} % Tworzy 2 kolumny z podaną zawartością. % Opcjonalnie można podać ułamek szerokości pierwszej kolumny (domyślnie 0.5), ułamek szerokości przerwy ( domyślnie0). @@ -105,6 +105,7 @@ % \imgt[szerokość]{plik}{opis} % Wstawia zdjęcie z opisem u góry. Można opcjonalnie zmienić szerokość zdjęcia (0.8). % \imgb[szerokość]{plik}{opis} % Wstawia zdjęcie z opisem na dole. Można opcjonalnie zmienić szerokość zdjęcia (0.8). % \img{plik} % \img[szerokość][opis][t/b]{plik} % Wstawia zdjęcie. Można opcjonalnie zmienić szerokość zdjęcia (0.8). +% Pozostałe 2 parametry tworzą opis jak polecenia \imgb i \imgt gdzie t i b to góra lub dół. % \title{} \id{} % Ustawiają tytuł i id. Są obowiązkowe. % \contest{} % Informuje jaki nazywa się kontest i jest wyświetlany w nagłówku. % \day{} \round{} \group{} % Wyświetla się w nagłówku. Automatycznie dodaje przed nazwe (np \day{2} -> Dzień: 2) From 4ef8797c8a9eea49c8a7e510fed1763b48ad094c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ro=C5=BCek?= Date: Wed, 22 May 2024 12:13:02 +0200 Subject: [PATCH 11/15] poprawka uwag 2 --- example_package/README.md | 4 ++-- example_package/doc/abcopi.pdf | Bin 149149 -> 149149 bytes example_package/doc/abcopr.pdf | Bin 147514 -> 147514 bytes example_package/doc/abczad.pdf | Bin 241466 -> 241466 bytes example_package/doc/abczad.tex | 2 +- 5 files changed, 3 insertions(+), 3 deletions(-) diff --git a/example_package/README.md b/example_package/README.md index 6cfbe0e8..45934c8d 100644 --- a/example_package/README.md +++ b/example_package/README.md @@ -68,7 +68,7 @@ Automatycznie tworzy ona nagłówki i stopki. Wystarczy że stworzymy treść dokumentu pomiędzy znacznikami `\start` i `\finish`. Dodatkowo udostępnia następujące funkcje. Zmienne podane w `{}` są obowiązkowe a w `[]` są opcjonalne, można ich nie podawać wcale lub tylko jakiś prefiks. -Czyli na przykład `\img{a}` lub `\img[0.5]{a}` lub `\img[0.5][obrazek 1]{a}`. +Przykładowo `\img{a}`, `\img[0.5]{a}` lub `\img[0.5][obrazek 1]{a}`. - `\tc{n}` - Stylizuje podany tekst na talentowy kolor. - `\start` - Rozpoczyna treść, musi być na samym początku treści dokumentu. @@ -85,7 +85,7 @@ Czyli na przykład `\img{a}` lub `\img[0.5]{a}` lub `\img[0.5][obrazek 1]{a}`. - `\testOcen{nazwa_testu}{opis_testu}` - Pojedynczy test ocen z opisem. - `\subtaskTable{ \subtask{}{}... }` - Tworzy tabelę z podzadaniami. Jako argumenty należy przekazać `\subtask{}{}`, dla każdego podzadania. - Komenda sprawdzi czy punkty sumują się do podanej opcjonalnie ilości punktów (domyślnie 100) a jak nie to wyświetli błąd. + Komenda sprawdzi czy punkty sumują się do podanej opcjonalnie ilości punktów (domyślnie 100) a jak nie to spowoduje błąd kompilacji z podaną przyczyną. Automatycznie tworzy nagłówek (Nr & Ograniczenia & Punkty). - `\subtask{punkty}{ograniczenie}` - Tworzy pojedynczy wiersz tabeli opisujący podzadanie z podaną ilością punktów i danym ograniczeniem. - `\twocol{}{}` `\twocol[szerokość1][przerwa][t/b/c]{kolumna1}{kolumna2}` - Tworzy 2 kolumny z podaną zawartością. diff --git a/example_package/doc/abcopi.pdf b/example_package/doc/abcopi.pdf index c3689bd8cb6f78658e1990b770b0d1fc58058c22..45bfb3194060166e4f810aec68be1767d0504ef5 100644 GIT binary patch delta 113 zcmbQ+%Q?4~v!R7?3)2>Rb|XU|G&Y#N+nz}V#@T+)p6N8Jvy+pBxuuz#vzeKjg_)Uw gqq&)xg@J{+v7?EBp`(+Vp`C&aAtlq_xH4@70OijeRc0(frVAUTjWMG`__w1QYvpPE(85mib7?`-ZS-KcH hxw;yeSh%_vyP8`Vx;VO6y1CgY*bq`O{f#TrMgaG@9*6({ diff --git a/example_package/doc/abcopr.pdf b/example_package/doc/abcopr.pdf index d598017ec3c92d5a173f35970cb728a234a6e2d6..f45190b36ccb7e4a7f2f9f8ca3de8f9681f64854 100644 GIT binary patch delta 113 zcmdnhz`3h|v!R7?3lp;?yOALf8XHXKvSgBhaklGPGD)yGTNs&Hm^qrc7`Pf+8d^HL f8X8%c7#o{d7`ZuGn3`Fb*eTc$QZl{6o@o;R?I9X) delta 113 zcmdnhz`3h|v!R7?3lp;?yP=VRv5~RGbS_IK85n1~t|gNMo3ojriKD5Dsfme&i<_Z~ hlev+lvzv*lv7@D>siCu_nSq^x4Iw4dJM5V@0RRH<8t?!B diff --git a/example_package/doc/abczad.pdf b/example_package/doc/abczad.pdf index eaf96a17dfb4f944a8a7bb9390a11f695dc40ae0..9810ab6c457b03db1f54c72228be84b596741144 100644 GIT binary patch delta 116 zcmdmWk8jsKzJ?aY7N#xCPK()%41v(da=PbYW*Hb~d(L9!TrOufS0htLM Date: Thu, 23 May 2024 17:29:23 +0200 Subject: [PATCH 12/15] drobnostka --- example_package/README.md | 2 +- example_package/doc/abczad.tex | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/example_package/README.md b/example_package/README.md index 45934c8d..2950e1a0 100644 --- a/example_package/README.md +++ b/example_package/README.md @@ -78,7 +78,7 @@ Przykładowo `\img{a}`, `\img[0.5]{a}` lub `\img[0.5][obrazek 1]{a}`. - `\tSmallSection{text}` - Mały nagłówek w stylu talentu. - `\example[h/v]{id}` - Wstawia test przykłądowy "zad0id" z paczki. abc0.in -> \example{}, abc0xy.in -> \example{xy}, abc0x.in -> \example[v]{x}. - Opcjonalnie można dodać położenie testów, 'h' - horyzontalnie, 'v' - pionowo, domyślnie jak się nie poda jest h. + Opcjonalnie można dodać położenie testów, 'h' - horyzontalnie, 'v' - pionowo, domyślną wartością jest h. Przy kompilacji testy są automatycznie czytane z folderów ./in i ./out, więc upewnij się że się tam znajdują. Te polecenia również tworzą nagłówek "Wejście" i "Wyjście". - `\ocen{ \testOcen{}{}...}` - Lista wszystkich testów ocen. diff --git a/example_package/doc/abczad.tex b/example_package/doc/abczad.tex index ae23509c..1a6ab0db 100644 --- a/example_package/doc/abczad.tex +++ b/example_package/doc/abczad.tex @@ -9,7 +9,7 @@ \Memory[MB]{256} \Time[s]{2,4} -\start{} +\start Lorem ipsum dolor ssist amdet, consectetur adipiscing elit. Donec rhoncus torstor vitae lorem luctus maximus. @@ -69,7 +69,7 @@ \subtask{50}{Bez ograniczeń} } -\finish{} +\finish %%%%%%%%%%%%%%%%%% % Przydatne komendy: @@ -85,14 +85,14 @@ %%%%%%%%%%%%%%%%%% % Komendy talentowe: -% \start{} % Rozpoczyna treść, musi być na samym początku treści zadania. -% \finish{} % Kończy treść, musi być na samym końcu treści zadania. +% \start % Rozpoczyna treść, musi być na samym początku treści zadania. +% \finish % Kończy treść, musi być na samym końcu treści zadania. % \tSection{text} % Nagłówek w stylu talentu. % \tSmallSection{text} % Mały nagłówek w stylu talentu. % \tc{text} % Styl używany do oznaczania zmiennych. % \example[h/v]{id} % Wstawia test przykłądowy "zad0id" z paczki. % abc0.in -> \example{}, abc0xy.in -> \example{xy}, abc0x.in -> \example[v]{x}. -% Opcjonalnie można dodać położenie testów, 'h' - horyzontalnie, 'v' - pionowo, domyślnie jak się nie poda jest h. +% Opcjonalnie można dodać położenie testów, 'h' - horyzontalnie, 'v' - pionowo, domyślną wartością jest h. % Przy kompilacji testy są automatycznie czytane z folderów ./in i ./out, więc upewnij się że się tam znajdują. % \ocen{ \testOcen{}{}... } % Lista wszystkich testów ocen, podajemy do niej komendy \testOcen{}{}. % \testOcen{test}{text} % Pojedyńczy test ocen z opisem. Podajesz nazwe testu (1ocen, 0c, 2ocen) i opis From 1e8250a2a7a70a72aef382ad0c91b46d93d113e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ro=C5=BCek?= Date: Thu, 23 May 2024 19:35:16 +0200 Subject: [PATCH 13/15] \start --- example_package/README.md | 4 ++-- example_package/doc/abczad.tex | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/example_package/README.md b/example_package/README.md index 2950e1a0..a58bbe22 100644 --- a/example_package/README.md +++ b/example_package/README.md @@ -70,8 +70,8 @@ Dodatkowo udostępnia następujące funkcje. Zmienne podane w `{}` są obowiązkowe a w `[]` są opcjonalne, można ich nie podawać wcale lub tylko jakiś prefiks. Przykładowo `\img{a}`, `\img[0.5]{a}` lub `\img[0.5][obrazek 1]{a}`. -- `\tc{n}` - Stylizuje podany tekst na talentowy kolor. -- `\start` - Rozpoczyna treść, musi być na samym początku treści dokumentu. +- `\tc{text}` - Stylizuje podany tekst na talentowy kolor. +- `\start` - Rozpoczyna treść, musi być na samym początku treści dokumentu i po deklaracjach. - `\finish` - Kończy treść, musi być na samym końcu treści dokumentu. - `\tSection{text}` - Nagłówek w stylu talentu. - `\tCustomSection{text}{0pt}` - Nagłówek w stylu talentu, z możliwością ustawienia odstępu od poprzedniego akapitu. diff --git a/example_package/doc/abczad.tex b/example_package/doc/abczad.tex index 1a6ab0db..66db5052 100644 --- a/example_package/doc/abczad.tex +++ b/example_package/doc/abczad.tex @@ -85,7 +85,7 @@ %%%%%%%%%%%%%%%%%% % Komendy talentowe: -% \start % Rozpoczyna treść, musi być na samym początku treści zadania. +% \start % Rozpoczyna treść, musi być na samym początku treści zadania i po deklaracjach. % \finish % Kończy treść, musi być na samym końcu treści zadania. % \tSection{text} % Nagłówek w stylu talentu. % \tSmallSection{text} % Mały nagłówek w stylu talentu. From ea7ea53c951281febf58b4bc31c951f336686326 Mon Sep 17 00:00:00 2001 From: A-dead-pixel Date: Thu, 11 Jul 2024 18:39:30 +0200 Subject: [PATCH 14/15] =?UTF-8?q?Ma=C5=82e=20poprawki=20w=20README?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- example_package/README.md | 75 +++++++++++++++++++-------------------- 1 file changed, 37 insertions(+), 38 deletions(-) diff --git a/example_package/README.md b/example_package/README.md index a58bbe22..7bfae34c 100644 --- a/example_package/README.md +++ b/example_package/README.md @@ -3,39 +3,38 @@ # **Szablon paczki** -- [**Szablon paczki**](#szablon-paczki) - - [**Ogólne informacje**](#ogólne-informacje) - - [**doc**](#doc) - - [**talentTex.cls**](#talenttexcls) - - [**prog**](#prog) - - [**Rozwiązania**](#rozwiązania) - - [**ingen**](#ingen) - - [**inwer**](#inwer) - - [**checkerka**](#checkerka) - - [**oi.h**](#oih) - - [**Scanner (Wczytywanie)**](#scanner-wczytywanie) - - [Są 3 tryby wczytywania danych](#są-3-tryby-wczytywania-danych) - - [**Najważniejszą funkcją jest wczytywanie** i realizuje ją w następujący sposób](#najważniejszą-funkcją-jest-wczytywanie-i-realizuje-ją-w-następujący-sposób) - - [**CheckerVerdict**](#checkerverdict) - - [**checker\_test**](#checker_test) - - [**InwerVerdict**](#inwerverdict) - - [**bug**](#bug) - - [**oi\_assert**](#oi_assert) - - [**Random**](#random) - - [in i out](#in-i-out) - - [Testy ocen](#testy-ocen) - - [Generowanie](#generowanie) - - [dlazaw](#dlazaw) - - [attachment](#attachment) - - [**config.yml**](#configyml) - - [Interactive tasks](#interactive-tasks) - - [Time](#time) - - [Memory](#memory) - - [Title](#title) - - [Scores](#scores) - - [Task ID](#task-id) - - [Contest type](#contest-type) - - [Expected scores](#expected-scores) +- [**Ogólne informacje**](#ogólne-informacje) +- [**doc**](#doc) + - [**talentTex.cls**](#talenttexcls) +- [**prog**](#prog) + - [**Rozwiązania**](#rozwiązania) + - [**ingen**](#ingen) + - [**inwer**](#inwer) + - [**checkerka**](#checkerka) + - [**oi.h**](#oih) + - [**Scanner (Wczytywanie)**](#scanner-wczytywanie) + - [Są 3 tryby wczytywania danych](#są-3-tryby-wczytywania-danych) + - [**Najważniejszą funkcją jest wczytywanie** i realizuje ją w następujący sposób](#najważniejszą-funkcją-jest-wczytywanie-i-realizuje-ją-w-następujący-sposób) + - [**CheckerVerdict**](#checkerverdict) + - [**checker\_test**](#checker_test) + - [**InwerVerdict**](#inwerverdict) + - [**bug**](#bug) + - [**oi\_assert**](#oi_assert) + - [**Random**](#random) +- [in i out](#in-i-out) + - [Testy ocen](#testy-ocen) + - [Generowanie](#generowanie) +- [dlazaw](#dlazaw) +- [attachment](#attachment) +- [**config.yml**](#configyml) + - [Interactive tasks](#interactive-tasks) + - [Time](#time) + - [Memory](#memory) + - [Title](#title) + - [Scores](#scores) + - [Task ID](#task-id) + - [Contest type](#contest-type) + - [Expected scores](#expected-scores) ## **Ogólne informacje** @@ -66,8 +65,8 @@ Jest to klasa używana w plikach `.tex`. Nadaje ona odpowiedni wygląd dokumentom. Automatycznie tworzy ona nagłówki i stopki. Wystarczy że stworzymy treść dokumentu pomiędzy znacznikami `\start` i `\finish`. -Dodatkowo udostępnia następujące funkcje. -Zmienne podane w `{}` są obowiązkowe a w `[]` są opcjonalne, można ich nie podawać wcale lub tylko jakiś prefiks. +Dodatkowo udostępnia następujące funkcje, przy czym zmienne podane w `{}` są +obowiązkowe a w `[]` są opcjonalne, można ich nie podawać wcale lub tylko jakiś prefiks. Przykładowo `\img{a}`, `\img[0.5]{a}` lub `\img[0.5][obrazek 1]{a}`. - `\tc{text}` - Stylizuje podany tekst na talentowy kolor. @@ -89,14 +88,14 @@ Przykładowo `\img{a}`, `\img[0.5]{a}` lub `\img[0.5][obrazek 1]{a}`. Automatycznie tworzy nagłówek (Nr & Ograniczenia & Punkty). - `\subtask{punkty}{ograniczenie}` - Tworzy pojedynczy wiersz tabeli opisujący podzadanie z podaną ilością punktów i danym ograniczeniem. - `\twocol{}{}` `\twocol[szerokość1][przerwa][t/b/c]{kolumna1}{kolumna2}` - Tworzy 2 kolumny z podaną zawartością. - Opcjonalnie można podać ułamek szerokości pierwszej kolumny (domyślnie 0.5), ułamek szerokości przerwy ( domyślnie0). - Szerokość 2 kolumny dopełni się do całości. Oraz opcjonalnie wybrać łączenie lini bazowej (domyślnie t). + Opcjonalnie można podać ułamek szerokości pierwszej kolumny (domyślnie 0.5), ułamek szerokości przerwy (domyślnie 0). + Szerokość drugiej kolumny dopełni się do całości. Oraz opcjonalnie wybrać łączenie lini bazowej (domyślnie t). - `\imgt[szerokość]{plik}{opis}` - Wstawia zdjęcie z opisem u góry. Można opcjonalnie zmienić szerokość zdjęcia (0.8). - `\imgb[szerokość]{plik}{opis}` - Wstawia zdjęcie z opisem na dole. Można opcjonalnie zmienić szerokość zdjęcia (0.8). - `\img{plik}` % `\img[szerokość][opis][t/b]{plik}` - Wstawia zdjęcie. Można opcjonalnie zmienić szerokość zdjęcia (0.8). Pozostałe 2 parametry tworzą opis jak polecenia \imgb i \imgt gdzie t i b to góra lub dół. - `\title{} \id{}` - Ustawiają tytuł i id. Są obowiązkowe. -- `\contest{}` - Wyświetlany w nagłówku nazwe konkursu. +- `\contest{}` - Ustawia wyświetlaną w nagłówku nazwę konkursu. - `\day{} \round{} \group{}` - Wyświetla się w nagłówku. Automatycznie dodaje przed nazwe (np \day{2} -> Dzień: 2) - `\Memory[]{} \Time[]{}` - Też się wyświetla z nazwą. Dodatkowo dodaje jednostkę którą opcjonalnie można zmienić. From b7faa1f4d39951474b5276ee44b2c967f676b725 Mon Sep 17 00:00:00 2001 From: Olaf Targowski Date: Sun, 21 Jul 2024 21:07:15 +0200 Subject: [PATCH 15/15] =?UTF-8?q?Popraw=20kilka=20liter=C3=B3wek?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- example_package/doc/abcopr.tex | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/example_package/doc/abcopr.tex b/example_package/doc/abcopr.tex index ac696d88..1ae7b9ea 100644 --- a/example_package/doc/abcopr.tex +++ b/example_package/doc/abcopr.tex @@ -22,10 +22,10 @@ \start{} -\tSection{Pochodzienie zadanie} +\tSection{Pochodzenie zadania} -\tSection{Poziom zadania, trudnoości} +\tSection{Poziom zadania, trudności} \tSection{Podzadania}