diff --git a/camtest/1_book/20230109_181242.jpg b/camtest/1_book/20230109_181242.jpg new file mode 100644 index 0000000..5f0c650 Binary files /dev/null and b/camtest/1_book/20230109_181242.jpg differ diff --git a/camtest/1_book/20230109_181250.jpg b/camtest/1_book/20230109_181250.jpg new file mode 100644 index 0000000..2f2aebc Binary files /dev/null and b/camtest/1_book/20230109_181250.jpg differ diff --git a/camtest/1_book/p1.jpg b/camtest/1_book/p1.jpg new file mode 100644 index 0000000..e5a9d55 Binary files /dev/null and b/camtest/1_book/p1.jpg differ diff --git a/camtest/2_rebar/p4.jpg b/camtest/2_rebar/p4.jpg new file mode 100644 index 0000000..3ced8d8 Binary files /dev/null and b/camtest/2_rebar/p4.jpg differ diff --git a/camtest/2_rebar/p5.jpg b/camtest/2_rebar/p5.jpg new file mode 100644 index 0000000..53ded52 Binary files /dev/null and b/camtest/2_rebar/p5.jpg differ diff --git a/doc/pm_doc.pdf b/doc/pm_doc.pdf deleted file mode 100644 index 32fb83f..0000000 Binary files a/doc/pm_doc.pdf and /dev/null differ diff --git a/PM_test.clip b/other/PM_test.clip similarity index 100% rename from PM_test.clip rename to other/PM_test.clip diff --git a/PM_test_0.bmp b/other/PM_test_0.bmp similarity index 100% rename from PM_test_0.bmp rename to other/PM_test_0.bmp diff --git a/PM_test_1.png b/other/PM_test_1.png similarity index 100% rename from PM_test_1.png rename to other/PM_test_1.png diff --git a/PM_test_2.png b/other/PM_test_2.png similarity index 100% rename from PM_test_2.png rename to other/PM_test_2.png diff --git a/other/test1.jpg b/other/test1.jpg new file mode 100644 index 0000000..d008ec9 Binary files /dev/null and b/other/test1.jpg differ diff --git a/overleaf/Makefile b/overleaf/Makefile new file mode 100644 index 0000000..ddeef9d --- /dev/null +++ b/overleaf/Makefile @@ -0,0 +1,60 @@ +# makefile pro preklad LaTeX verze Bc. prace +# makefile for compilation of the thesis +# (c) 2008 Michal Bidlo +# E-mail: bidlom AT fit vutbr cz +# Edited by: dytrych AT fit vutbr cz +#=========================================== +# asi budete chtit prejmenovat / you will probably rename: +CO=projekt + +all: $(CO).pdf + +pdf: $(CO).pdf + +$(CO).ps: $(CO).dvi + dvips $(CO) + +$(CO).pdf: clean + pdflatex $(CO) + -bibtex $(CO) + # makeglossaries $(CO) + # makeglossaries-lite $(CO) + pdflatex $(CO) + pdflatex $(CO) + +$(CO).dvi: $(CO).tex $(CO).bib + latex $(CO) + -bibtex $(CO) + latex $(CO) + latex $(CO) + +clean: + rm -f *.dvi *.log $(CO).blg $(CO).bbl $(CO).toc *.aux $(CO).out $(CO).lof $(CO).ptc + rm -f $(CO).pdf + rm -f *~ + +pack: + tar czvf $(CO).tar.gz *.tex *.bib *.bst ./template-fig/* ./bib-styles/* ./cls/* zadani.pdf $(CO).pdf Makefile Changelog + +rename: + mv $(CO).tex $(NAME).tex + mv $(CO)-01-kapitoly-chapters.tex $(NAME)-01-kapitoly-chapters.tex + mv $(CO)-01-kapitoly-chapters-en.tex $(NAME)-01-kapitoly-chapters-en.tex + mv $(CO)-20-literatura-bibliography.bib $(NAME)-20-literatura-bibliography.bib + mv $(CO)-30-prilohy-appendices.tex $(NAME)-30-prilohy-appendices.tex + mv $(CO)-30-prilohy-appendices-en.tex $(NAME)-30-prilohy-appendices-en.tex + sed -i "s/$(CO)-01-kapitoly-chapters/$(NAME)-01-kapitoly-chapters/g" $(NAME).tex + sed -i "s/$(CO)-01-kapitoly-chapters-en/$(NAME)-01-kapitoly-chapters-en/g" $(NAME).tex + sed -i "s/$(CO)-20-literatura-bibliography/$(NAME)-20-literatura-bibliography/g" $(NAME).tex + sed -i "s/$(CO)-30-prilohy-appendices/$(NAME)-30-prilohy-appendices/g" $(NAME).tex + sed -i "s/$(CO)-30-prilohy-appendices-en/$(NAME)-30-prilohy-appendices-en/g" $(NAME).tex + sed -i "s/$(CO)/$(NAME)/g" Makefile + +# Pozor, vlna neresi vse (viz popis.txt) / Warning - vlna is not solving all problems (see description.txt) +vlna: + vlna -l $(CO)-*.tex + +# Spocita normostrany / Count of standard pages +normostrany: + echo "scale=2; `detex -n $(CO)-[01]*.tex | sed s/"^ *"/""/ | sed s/"^ *"/""/ | wc -c`/1800;" | bc + diff --git a/overleaf/bib-styles/Pysny/czplain.bst b/overleaf/bib-styles/Pysny/czplain.bst new file mode 100644 index 0000000..cde28f0 --- /dev/null +++ b/overleaf/bib-styles/Pysny/czplain.bst @@ -0,0 +1,3243 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Projekt: IBP - Bakalarska prace +% Nazev prace: BibTeX styl pro CSN ISO 690 a CSN ISO 690-2 +% Autor: Radek Pysny, xpysny00 +% URI: http://www.fit.vutbr.cz/study/DP/BP.php?id=7848 +% +% Soubor: czplain.bst (vznikl upravou plain.bst) +% Datum: Vytvoren 15. unora 2009. +% Posledni uprava 10. kveten 2009, 16:55. +% Adam Herout upravil pro šablonu BP/DP FIT: 31.7.2019 +% Jaroslav Dytrych uvedl do souladu s normou +% pro šablonu BP/DP FIT: 10.10.2019 +% Popis: Český bibliografický styl. +% Pouziti: +% Kodovani: UTF-8 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%% VOLBY PRO NASTAVENI BIBLIOGRAFICKEHO STYLU %%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% -- Maximalni pocet zpracovanych autoru. +% Pokud obsahuje polozka author seznam o vice nez opt.aa autoru, objevi se +% v bibliograficke citaci prave opt.aa autoru. Tento vycet autoru bude zakoncen +% retezcem urcenym volbou opt.etal. +% FUNCTION {opt.aa} { #3 } +% FUNCTION {opt.aa} { #4 } +FUNCTION {opt.aa} { #5 } +% FUNCTION {opt.aa} { #99 } + + +% -- Maximalni pocet zpracovanych editoru. +% Analogie k volbe opt.aa. +% FUNCTION {opt.ae} { #1 } +% FUNCTION {opt.ae} { #2 } +% FUNCTION {opt.ae} { #3 } +% FUNCTION {opt.ae} { #4 } +FUNCTION {opt.ae} { #5 } + +% -- Oddelovac mezi jednotlivymi jmeny ve vyctu. +% Pouziva se pro spojeni jmen ve vyctu. Vyjimkou jsou posledni dve jmena, ktera +% jsou spojena pomoci retezce urceneho volbou opt.sep.ln. +FUNCTION {opt.sep.bn} { ", " } +% FUNCTION {opt.sep.bn} { " -- " } + +% -- Oddelovac mezi poslednimi dvema jmeny ve vyctu. +FUNCTION {opt.sep.ln} { " a~" } +% FUNCTION {opt.sep.ln} { " -- " } + +% -- Naznak nedokonceneho vyctu jmen. +% Pokud byl presazen pocet jmen danych limitujicimi volbami opt.aa nebo opt.ae. +% Dale se pouzije tehdy, kdyz je misto posledniho jmena pouzito klicove slovo +% "others". +FUNCTION {opt.etal} { "et~al." } +% FUNCTION {opt.etal} { "aj." } +% FUNCTION {opt.etal} { "a kol." } + +% -- Oznaceni editora (redaktora). +% Jmena editoru jsou od autoru odlisena retezcem danym touto volbou. +FUNCTION {opt.ed} { "ed." } +% FUNCTION {opt.ed} { "(ed.)" } +% FUNCTION {opt.ed} { "(red.)" } +% FUNCTION {opt.ed} { "" } + +% -- Pouzivat oznaceni editora (redaktora) za kazdym jmenem. +% Urcuje, kde se pouzije oznaceni opt.ed. Bud lze pouzit oznaceni za kazdym +% jmenem nebo jen na konci prvku. +FUNCTION {opt.ed.all} { #0 } % pouze na konci prvku +% FUNCTION {opt.ed.all} { #1 } % za kazdym jmenem + +% -- Oddelovac mezi prvky primarni odpovednost a titul. +FUNCTION {opt.sep.a} { "." } +% FUNCTION {opt.sep.a} { ":" } + +% -- Oddelovac mezi mistem a vydavatelem (popr. skolou nebo instituci). +FUNCTION {opt.sep.p} { ": " } +% FUNCTION {opt.sep.p} { " : " } +% FUNCTION {opt.sep.p} { ", " } + +% -- Oddelovac mezi titulem a podtitulem. +% Je-li zadan titul i podtitul, je tento retezec pouzit jako oddelovac mezi +% temito prvky. +FUNCTION {opt.sep.t} { ": " } +% FUNCTION {opt.sep.t} { " : " } + +% -- Oznaceni rozsahu u akademickych praci. +% U akademickych praci mate pomoci teto volby moznost urcit, zda-li bude rozsah +% techto praci udavan ve stranach nebo v listech. +FUNCTION {opt.pages} { "s." } % pocet stran +% FUNCTION {opt.pages} { "l." } % pocet listu + +% -- Zacatek prvku dostupnost. +% Tento prepinac ovlivnuje text, ktery bude zobrazen pred URL adresou. +% FUNCTION {opt.url} { "" } +% FUNCTION {opt.url} { "Dostupn{\'{e}} na: " } +FUNCTION {opt.url} { "Dostupn{\'{e}} z: " } +% FUNCTION {opt.url} { "Dostupn{\'{e}} na WWW: " } + +FUNCTION {opt.path} { "Path: " } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%% DEKLARACE POLOZEK A PROMENNYCH %%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% Polozky, ktere jsou stylem akceptovany a zpracovany. +ENTRY + { address + author + booktitle + booksubtitle % podtitul knihy (napr u sborniku) + cited % datum citace + contributory % podrizena odpovednost + day + doi + edition + editionnumber % cislo edice + editor + howpublished % druh nosice + chapter + institution + inserts % pocet stran priloh + isbn % standardni cislo + issn % standardni cislo + journal + journalsubtitle + key + location + month + note + number + organization + path + pages + publisher + revised % datum revize/aktualizace + secondarytitle % nazev vedlejsi webove stranky + school + series % název edice + subtitle % podtitul + supervisor % vedoucí (u akademické práce) + time % čas publikování + title + type + url % dostupnost + version % verze u el.dok. + volume + year + } + { } + { label } + +% Celocislene promenne. U kazde (krome konstant, ktere jsou pouze inicializovany +% ve funkci init.state.consts -- before.all, mid.sentence, after.sentence, +% after.block) jsou vyjmenovany funkce, kde dochazi ke zmenam dane promenne. +% +% output.state -- output.nonnull, output.bibitem, new.block, new.sentance +% +% ord -- is.ord +% +% ptr, i, x -- str.to.int +% +% numnames, namesleft, nameptr -- format.names, format.names.ed, +% sort.format.names +INTEGERS { output.state before.all mid.sentence after.sentence after.block + ord ptr i x numnames namesleft nameptr } + +% Retezcove promenne. U kazde jsou vyjmenovany funkce, kde je promenna menena. +% +% s -- output.nonnull, format.names, format.names.ed, format.journal.issue, +% format.thesis.info, format.thesis.range, chop.word, sort.format.names +% +% t -- output.check, dashify, str.to.int, format.names, format.names.ed, +% format.full.date, sort.format.names, sort.format.title +% +% u -- is.ord, tie.or.connnect, comma.connect +STRINGS { s t u } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%% DEFINICE ZKRATEK -- CESKE NAZVY MESICU %%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +MACRO {jan} {"leden"} + +MACRO {feb} {"únor"} + +MACRO {mar} {"březen"} + +MACRO {apr} {"duben"} + +MACRO {may} {"květen"} + +MACRO {jun} {"červen"} + +MACRO {jul} {"červenec"} + +MACRO {aug} {"srpen"} + +MACRO {sep} {"září"} + +MACRO {oct} {"říjen"} + +MACRO {nov} {"listopad"} + +MACRO {dec} {"prosinec"} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%% MIRNE UPRAVENE FUNKCE PREVZATE Z plain.bst %%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% Inicializace konstant nutnych pro spravnou funkci samotneho stylu. +% +% void init.state.consts () +% { +% int before.all = 0; +% int mid.sentence = 1; +% int adter.sentence = 2; +% int after.block = 3; +% } +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := +} + +% Vystup jiz formatovaneho pole, ktere je urcite neprazdne. Format vystupu je +% ovlivnen vystupnim stavem (tj. stavovou promennou output.state). Samotny +% vystup je zpozdeny (k vytisteni aktualni hodnoty dojde az pri pristim volani +% teto funkce) kvuli rozhodovani o pouzitem oddelovaci (carka nebo tecka). +% +% void output.nonnull () +% { +% s = pop(); +% if (output.state == mid.sentence) +% { +% write(pop() * " "); // zde byla carka!!! +% } else +% { +% if (output.state == after.block) +% { +% write(add.period(pop())); +% flush(); +% write("\newblock "); +% } else +% { +% if (output.state == before.all) +% { +% write(pop()); +% } else +% { +% write(add.period(pop()) * " "); +% } +% } +% } +% push(s); +% } +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { " " * write$ } %% Uprava: Nahrada ", " za " "! + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + { write$ } + { add.period$ " " * write$ } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} + +% Pri vyskytu neprazdne hodnoty na vrcholu zasobniku provede jeji vystup pomoci +% funkce output.nonnull. V opacnem pripade ji jen odstrani ze zasobniku. +% +% /** prepis do pseudokodu bez vyuziti zasobniku **/ +% void output (string string.to.write) +% { +% if (empty$(string.to.write)) +% { } else +% { +% output.nonnull(string.to.write); +% } +% } +FUNCTION {output} +{ duplicate$ empty$ + { pop$ } + { output.nonnull } + if$ +} + +% Pri vyskytu neprazdne hodnoty na vrcholu zasobniku provede jeji vystup pomoci +% funkce output.nonnull. V opacnem pripade ji jen odstrani ze zasobniku +% a vypise na chybovy vystup varovani o chybejici hodnote. Pouziva se pro +% informovani uzivatele o chybejici hodnote, ktera je dle ceske normy povinna. +% +% /** prepis do pseudokodu bez vyuziti zasobniku **/ +% void output.check (string type.of.field string string.to.write) +% { +% t = type.of.field; +% if (empty$(string.to.write)) +% { +% warning$("empty" * t * " in " * cite$()) +% } else +% { +% output.nonnull(string.to.write); +% } +% } +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + { output.nonnull } + if$ +} + +% Vypise zacatek bibliograficke citace. +% +% void output.bibitem () +% { +% newline$(); +% write$("\bibitem{"); +% write$(cite$); +% write$("}"); +% newline$(); +% push(""); +% int output.state = before.all; +% } +FUNCTION {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +% Zakonceni polozky (teckou). +% +% void fin.entry () +% { +% write(add.period$(pop())); +% newline$(); +% } +FUNCTION {fin.entry} +{ add.period$ write$ + newline$ +} + +% Zmena stavu: {mid.sentence; after.sentence} => after.block. +% +% void new.block () +% { +% if (output.state == before.all) +% { } else +% { +% output.state = after.block; +% } +% } +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} + +% Zmena stavu: mid.sentence => after.sentence. +% +% void new.sentence () +% { +% if (output.state == after.block) +% { } else +% { +% if (output.state == before.all) +% { } else +% { +% output.state = after.sentence; +% } +% } +% } +FUNCTION {new.sentence} +{ output.state after.block = + 'skip$ + { output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ + } + if$ +} + +% Negace vyhodnocene podminky. +% +% int not (int bool) +% { +% if (bool) +% { +% return 0; // false +% } else +% { +% return 1; // true +% } +% } +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +% Logicky soucin dvou podminek. +% +% int and (int bool1, int bool2) +% { +% if (bool2) +% { +% return bool1; +% } else +% { +% return 0; +% } +% } +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +% Logicky soucet dvou podminek. +% +% int or (int bool1, int bool2) +% { +% if (bool2) +% { +% return 1; +% } else +% { +% return bool1; +% } +% } +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +% Zacatek noveho bloku pri neprazne hodnote na vrcholu zasobniku. +% +% void new.block.checka (int.or.string anything.from.the.top) +% { +% if (empty$(anything.from.the.top)) +% { } else +% { +% new.block(); +% } +% } +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + { new.block } + if$ +} + +% Zacatek noveho bloku pri 2 neprazdnych hodnotach z vrcholu zasobniku. +% +% void new.block.checkb (int.or.string anything.under.the.top, +% int.or.string anything.from.the.top) +% { +% if ( (empty$(anything.from.the.top)) && (empty$(anything.under.the.top)) ) +% { } else +% { +% new.block(); +% } +% } +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + { new.block } + if$ +} + +% Zacatek nove vety pri neprazne hodnote na vrcholu zasobniku. +% +% void new.sentence.checka (int.or.string anything.from.the.top) +% { +% if (empty$(anything.from.the.top)) +% { } else +% { +% new.sentence(); +% } +% } +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + { new.sentence } + if$ +} + +% Zacatek nove vety pri 2 neprazdnych hodnotach z vrcholu zasobniku. +% +% void new.sentence.checkb (int.or.string anything.under.the.top, +% int.or.string anything.from.the.top) +% { +% if ( (empty$(anything.from.the.top)) && (empty$(anything.under.the.top)) ) +% { } else +% { +% new.sentence(); +% } +% } +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ and + 'skip$ + { new.sentence } + if$ +} + +% Vrati hodnoty polozky (ulozene na vrcholu zasobniku) nebo prazdny retezec. +% +% int.or.string field.or.null (int.or.string anything.from.the.top) +% { +% if (empty$(anything.from.the.top)) +% { +% return ""; +% } else +% { +% return anything.from.the.top; +% } +% } +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +% Vypis chybove hlasky pro pripady, kdyz jsou vyplnene dve polozky, jejichz +% pouziti se vzajemne vylucuje. Vola se s dvema argumenty -- prvni z nich je +% retezec s nazvy obou poli (kvuli vypisu chybove hlasky) a druhy je obsah +% jednoho z poli (kontrola druheho musi probehnout pred volanim teto funkce). +% +% void either.or.check (string field.names, int.or.string one.of.fields) +% { +% if (empty$(one.of.fields)) +% { } else +% { +% warning$(field.names * "can't use both " * " fields in " * cite$()); +% } +% } +FUNCTION {either.or.check} +{ empty$ + { pop$ } + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +% Provede zvyrazneni hodnoty na vrcholu zasobniku (uzavre ji mezi "{\em" +% a "}"). Nepouziva kurzivni korekci. +% +% string emphasize (string x) +% { +% if (empty$(x)) +% { +% return ""; +% } else +% { +% return "{\em " * x * "}"; +% } +% } +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +FUNCTION {makebold} +{ duplicate$ empty$ + { pop$ "" } + { "{\bf " swap$ * "}" * } + if$ +} + +FUNCTION {makesmall} +{ duplicate$ empty$ + { pop$ "" } + { "{\small " swap$ * "}" * } + if$ +} + +% Nahradi kazdy vyskyt znaku '-' za dvojznak "--". +% +% string dashify (string to.dashify) +% { +% t = to.dashify; +% push(""); +% while (!empty$(t)) +% { +% if (substring$(t, 1, 1) == "-") +% { +% if (substring$(t, 1, 2) == "--") +% { +% while (substring$(t, 1, 1) == "-") +% { +% push(pop() * "-"); +% t = substring$(t, 2, global.max$()); +% } +% } else +% { +% push(pop() * "--"); +% t = substring$(t, 2, global.max$()); +% } +% } else +% { +% push(pop() * substring$(t, 1, 1)); +% t = substring$(t, 2, global.max$()); +% } +% } +% } +FUNCTION {dashify} +{ 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { t #1 #2 substring$ "--" = + { { t #1 #1 substring$ "-" = } + { "-" * + t #2 global.max$ substring$ 't := + } + while$ + } + { "--" * + t #2 global.max$ substring$ 't := + } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%% VLASTNI KOD -- POMOCNE FUNKCE %%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% Prevod retezce na cislo. Ocekava se, ze se zavola az po testu pomoci funkce +% 'is.ord'. Na vstupu ocekava neprazdny retezec tvoreny jen cislicemi. +% +% int str.to.int (string to.convert) +% { +% t = to.convert; +% int x = 0; +% int ptr = 0; +% while (ptr text.length$(t) < ) +% { +% push(x); +% i = 9; +% while (i > 0) +% { +% push(pop() + x); +% i--; +% } +% ptr++; +% x = chr.to.int$(substring$(t, ptr, 1)) - 48 + pop(); +% } +% return x; +% } +FUNCTION {str.to.int} +{ 't := + #0 'x := + #0 'ptr := + { ptr t text.length$ < } + { x + #9 'i := + { i #0 > } + { x + + i #1 - 'i := + } + while$ + ptr #1 + 'ptr := + t ptr #1 substring$ chr.to.int$ #48 - + 'x := + } + while$ + x +} + +% Prvni pismeno retezce na vrcholu zasobniku prevede na verzalku. +% +% string capitalize (string to.capitalize) +% { +% if (empty$(to.capitalize)) +% { } else +% { +% return change.case$(substring$(to.capitalize, 1, 1), "u") * +% substring$(to.capitalize, 2, global.max$()); +% } +% } +FUNCTION {capitalize} +{ duplicate$ empty$ + 'skip$ + { duplicate$ #1 #1 substring$ "u" change.case$ + swap$ #2 global.max$ substring$ * + } + if$ +} + +% Spojuje dva retezce z vrcholu zasobniku. Tyto dva retezce jsou oddeleny +% mezerou ci nezlomitelnou mezerou. Retezec na vrcholu zasobniku je pripojen +% za druhy retezec. +% +% Pokud je jeden z retezcu prazdny, je vracen jen druhy z nich bez jakychkoliv +% uprav. Jsou-li prazdne oba retezce, je vracen taktez prazdny retezec. +% +% string tie.or.connect (string under.the.top, string from.the.top) +% { +% string u = from.the.top; +% if (empty$(under.the.top)) +% { +% return u; +% } else +% { +% if (empty$(u)) +% { } else +% { +% if (text.length$(u) < 3) +% { +% return under.the.top * "~" * u; +% } else +% { +% return under.the.top * " " * u; +% } +% } +% } +% } +FUNCTION {tie.or.connect} +{ 'u := + duplicate$ empty$ + { pop$ u } + { u empty$ + 'skip$ + { u text.length$ #3 < + { "~" * u * } + { " " * u * } + if$ + } + if$ + } + if$ +} + +% Spojuje dva retezce z vrcholu zasobniku. Tyto dva retezce jsou oddeleny +% carkou. Retezec na vrcholu zasobniku je pripojen za druhy retezec. +% +% Pokud je jeden z retezcu prazdny, je vracen jen druhy z nich bez jakychkoliv +% uprav. Jsou-li prazdne oba retezce, je vracen taktez prazdny retezec. +% +% string comma.connect (string under.the.top, string from.the.top) +% { +% string u = from.the.top; +% if (empty$(under.the.top)) +% { +% return u; +% } else +% { +% if (empty$(u)) +% { } else +% { +% return under.the.top * ", " * u; +% } +% } +% } +FUNCTION {comma.connect} +{ 'u := + duplicate$ empty$ + { pop$ u } + { u empty$ + 'skip$ + { ", " * u * } + if$ + } + if$ +} + +% Spojuje dva retezce z vrcholu zasobniku. Tyto dva retezce jsou oddeleny mezerou. +FUNCTION {space.connect} +{ 'u := + duplicate$ empty$ + { pop$ u } + { u empty$ + 'skip$ + { " " * u * } + if$ + } + if$ +} + + +% Otestuje, zda je hodnota na vrcholu zasobniku tvorena pouze cislicemi. +% +% int is.ord (string x) +% { +% string u = x; +% int ord = 1; +% while ( (ord) && (!empty(u)) ) +% { +% if ( (chr.to.int$(substring$(u, 1, 1)) < 48) || +% (chr.to.int$(substring$(u, 1, 1)) > 57) ) +% { +% ord = 0; +% } else +% { +% u = substring(s, 2, global.max$()); +% } +% } +% return ord; +% } +FUNCTION {is.ord} +{ 'u := + #1 'ord := + { ord + u empty$ not + and + } + { u #1 #1 substring$ + duplicate$ chr.to.int$ #48 < % < '0' + swap$ chr.to.int$ #57 > % > '9' + or + { #0 'ord := } + { u #2 global.max$ substring$ 'u := } + if$ + } + while$ + ord +} + +% Formatovaci retezec pro vkladani jmen dle ceske konvence pomoci funkce +% 'format.name$'. +% +% string cz.name.format () +% { +% return "{{\scshape\bgroup}ll{ }{\egroup}}{, f.}{ vv}"; +% } +FUNCTION {cz.name.format} +{ "{{\sc\bgroup}ll{ }{\egroup}}{, f.}{ vv}" } + +% Vraci nominativ mesice. +% +% /** prepis pseudokodu do funkce pracujici s polem **/ +% string get.month.n (int n) +% { +% int month = { 1 => "leden", "únor", "březen", "duben", "květen", "červen", +% "červenec", "srpen", "září", "říjen", "listopad", "prosinec" }; +% if ( (n > 0) && (n < 13) ) +% { +% return month[n]; +% } else +% { +% warning$("Month must be between 1 and 12!"); +% return ""; +% } +% } +FUNCTION {get.month.n} +{ duplicate$ #1 = + { "leden" swap$ pop$ } + { duplicate$ #2 = + { "únor" swap$ pop$ } + { duplicate$ #3 = + { "březen" swap$ pop$ } + { duplicate$ #4 = + { "duben" swap$ pop$ } + { duplicate$ #5 = + { "květen" swap$ pop$ } + { duplicate$ #6 = + { "červen" swap$ pop$ } + { duplicate$ #7 = + { "červenec" swap$ pop$ } + { duplicate$ #8 = + { "srpen" swap$ pop$ } + { duplicate$ #9 = + { "září" swap$ pop$ } + { duplicate$ #10 = + { "říjen" swap$ pop$ } + { duplicate$ #11 = + { "listopad" swap$ pop$ } + { duplicate$ #12 = + { "prosinec" swap$ pop$ } + { "" "Month must be between 1 and 12!" warning$ } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ +} + +% Vraci nominativ mesice s velkym prvnim pismenem. +FUNCTION {get.u.month.n} +{ duplicate$ #1 = + { "Leden" swap$ pop$ } + { duplicate$ #2 = + { "Únor" swap$ pop$ } + { duplicate$ #3 = + { "Březen" swap$ pop$ } + { duplicate$ #4 = + { "Duben" swap$ pop$ } + { duplicate$ #5 = + { "Květen" swap$ pop$ } + { duplicate$ #6 = + { "Červen" swap$ pop$ } + { duplicate$ #7 = + { "Červenec" swap$ pop$ } + { duplicate$ #8 = + { "Srpen" swap$ pop$ } + { duplicate$ #9 = + { "Září" swap$ pop$ } + { duplicate$ #10 = + { "Říjen" swap$ pop$ } + { duplicate$ #11 = + { "Listopad" swap$ pop$ } + { duplicate$ #12 = + { "Prosinec" swap$ pop$ } + { "" "Month must be between 1 and 12!" warning$ } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ +} + +% Vraci genitiv mesice. +% +% /** prepis pseudokodu do funkce pracujici s polem **/ +% string get.month.g (int n) +% { +% int month = { 1 => "ledna", "února", "března", "dubna", "května", "června", +% "července", "srpna", "září", "října", "listopadu", "prosince"}; +% if ( (n > 0) && (n < 13) ) +% { +% return month[n]; +% } else +% { +% warning$("Month must be between 1 and 12!"); +% return ""; +% } +% } +FUNCTION {get.month.g} +{ duplicate$ #1 = + { "ledna" swap$ pop$ } + { duplicate$ #2 = + { "února" swap$ pop$ } + { duplicate$ #3 = + { "března" swap$ pop$ } + { duplicate$ #4 = + { "dubna" swap$ pop$ } + { duplicate$ #5 = + { "května" swap$ pop$ } + { duplicate$ #6 = + { "června" swap$ pop$ } + { duplicate$ #7 = + { "července" swap$ pop$ } + { duplicate$ #8 = + { "srpna" swap$ pop$ } + { duplicate$ #9 = + { "září" swap$ pop$ } + { duplicate$ #10 = + { "října" swap$ pop$ } + { duplicate$ #11 = + { "listopadu" swap$ pop$ } + { duplicate$ #12 = + { "prosince" swap$ pop$ } + { "" "Month must be between 1 and 12!" warning$ } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ +} + +% Provede vystup. Je urcen jen pro vypsani primarni odpovednosti. Umoznuje +% pouziti volby 'opt.sep.a', ktera dovoluje pouzit jiny oddelovac mezi poli +% primarni odpovednosti a nazvu titulu. Dle zazitych zvyklosti v CR je jim ':'. +% +% Pouzivat pouze na zacatku bibliograficke citace! Jinde muze zpusobit prohozeni +% prvku. +% +% void output.authors (string formatted.authors) +% { +% if (substring$(formatted.authors, #-1, #1) == opt.sep.a()) +% { +% write$(formatted.authors); +% newline$(); +% write("\newblock "); +% } else +% { +% write$(formatted.authors * opt.sep.a()); +% newline$(); +% write("\newblock "); +% } +% } +FUNCTION {output.authors} +{ + duplicate$ #-1 #1 substring$ opt.sep.a = + { write$ newline$ "\newblock " write$ } + { opt.sep.a * + write$ newline$ "\newblock " write$ + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%% VLASTNI KOD -- FORMATOVACI FUNKCE %%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% Formatovani jmen (pro primarni odpovednost). +% +% string format.names (string names) +% { +% string s = names; +% int numnames = num.names$(s); +% int namesleft = numnames; +% int nameptr = 1; +% while ( (namesleft > 0) && (nameptr <= opt.aa()) ) +% { +% t = format.name$(s, nameptr, cz.name.format()); +% if (nameptr == 1) +% { +% push(t); +% } else +% { +% if (namesleft > 1) +% { +% push(pop() * opt.sep.bn() * t); +% } else +% { +% if (purify$(t) == "others") +% { +% push(tie.or.connect(pop(), opt.etal())); +% } else +% { +% push(pop() * opt.sep.ln() * t); +% } +% } +% } +% nameptr++; +% namesleft--; +% } +% if (nameledt > 0) +% { +% push(tie.or.connect(pop(), opt.etal())); +% } +% return pop(); +% } +FUNCTION {format.names} +{ 's := % s <= polozka se jmeny + s num.names$ 'numnames := % numnames <= pocet jmen v polozce + numnames 'namesleft := % poznamena si pocet zbyvajicich jmen + #1 'nameptr := % nameptr <= ukazatel na prvni ze jmen + { namesleft #0 > + nameptr opt.aa > not + and + } + { % cyklus zpracovani jednotlivych jmen + s nameptr cz.name.format format.name$ 't := + nameptr #1 = + { t } % prvni jmeno + { namesleft #1 > % dalsi jmena + { opt.sep.bn t * * } + { t purify$ + "others" = % kdyz po ocisteni zbyde klic. sl. "others" + { opt.etal tie.or.connect } % vytiskne et al. + { opt.sep.ln * t * } % jinak posledni inicialy po spojce "a" + if$ + } + if$ + } + if$ + nameptr #1 + 'nameptr := % posun ukazatele na dalsi jmeno + namesleft #1 - 'namesleft := % snizeni poctu zbyvajicich jmen + } + while$ + namesleft #0 > % mozne pridani opt.etal + { opt.etal tie.or.connect } + 'skip$ + if$ +} + + +% Formatovani jmen editoru. +% +% string format.names.ed (string names) +% { +% string s = names; +% int numnames = num.names$(s); +% int namesleft = numnames; +% int nameptr = 1; +% while ( (namesleft > 0) && (nameptr <= opt.aa()) ) +% { +% t = format.name$(s, nameptr, cz.name.format()); +% if (nameptr == 1) +% { +% if (opt.ed.all()) +% { +% push(tie.or.connect(t, opt.ed()); +% } else +% { +% push(t); +% } +% } else +% { +% if (namesleft > 1) +% { +% if (opt.ed.all()) +% { +% push(tie.or.connect(pop() * opt.sep.bn() * t, opt.ed()); +% } else +% { +% push(pop() * opt.sep.bn() * t); +% } +% } else +% { +% if (purify$(t) == "others") +% { +% push(tie.or.connect(pop(), opt.etal())); +% } else +% { +% if (opt.ed.all()) +% { +% push(tie.or.connect(pop() * opt.sep.ln() * t, opt.ed()); +% } else +% { +% push(pop() * opt.sep.ln() * t); +% } +% } +% } +% } +% nameptr++; +% namesleft--; +% } +% if (nameledt > 0) +% { +% push(tie.or.connect(pop(), opt.etal())); +% } +% if (opt.ed.all()) +% { +% return pop(); +% } else +% { +% return tie.or.connect(pop(), ", " * opt.ed()); +% } +% } +FUNCTION {format.names.ed} +{ 's := % s <= polozka se jmeny + s num.names$ 'numnames := % numnames <= pocet jmen v polozce + numnames 'namesleft := % poznamena si pocet zbyvajicich jmen + #1 'nameptr := % nameptr <= ukazatel na prvni ze jmen + { namesleft #0 > + nameptr opt.ae > not + and + } + { % cyklus zpracovani jednotlivych jmen + s nameptr cz.name.format format.name$ 't := + nameptr #1 = % prvni jmeno + { t + opt.ed.all + { opt.ed tie.or.connect } + 'skip$ + if$ + } + { namesleft #1 > % dalsi jmena + { opt.sep.bn t * * + opt.ed.all + { opt.ed tie.or.connect } + 'skip$ + if$ + } + { t purify$ + "others" = % kdyz po ocisteni zbyde klic. sl. "others" + { opt.etal tie.or.connect } % vytiskne et al. + { opt.sep.ln t * * % jinak posledni inicialy po spojce "a" + opt.ed.all + { opt.ed tie.or.connect } + 'skip$ + if$ + } + if$ + } + if$ + } + if$ + nameptr #1 + 'nameptr := % posun ukazatele na dalsi jmeno + namesleft #1 - 'namesleft := % snizeni poctu zbyvajicich jmen + } + while$ + namesleft #0 > % mozne pripojeni opt.etal + { opt.etal tie.or.connect } + 'skip$ + if$ + opt.ed.all % mozne pridani opt.ed na konec prvku + 'skip$ + { ", " * opt.ed tie.or.connect } + if$ +} + +% Formatovani jmen autoru. +% Pokud je neprazdna polozka 'author', provede formatovani jmen pomoci funkce +% 'format.names'. +% +% string format.authors () +% { +% if (empty$(author)) +% { +% return ""; +% } else +% { +% return format.names(author); +% } +% } +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +% Formatovani jmena vedouciho. +FUNCTION {format.supervisor} +{ supervisor empty$ + { "" } + { "Vedoucí práce " supervisor format.names *} + if$ +} + +% Formatovani jmen editoru. +% Pokud je neprazdna polozka 'editor', provede formatovani jmen pomoci funkce +% 'format.names.ed'. +% +% string format.editors () +% { +% if (empty$(editor)) +% { +% return ""; +% } else +% { +% return format.names.ed(editor); +% } +% } +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names.ed } + if$ +} + +% Formatovani polozky primarni odpovednosti. +% Je-li zadana polozka 'author', provede jeji formatovani pomoci funkce +% 'format.authors'. Pokud je polozka 'author' prazdna, provede formatovani +% pomoci funkce 'format.editors'. +% +% void author.or.editor () +% { +% if (empty$(author)) +% { +% if (empty$(format.editors())) +% { +% warning$("empty author and editor in " * cite$()); +% } else +% { +% output.authors(format.editors()); +% } +% } else +% { +% output.authors(format.authors()); +% } +% } +FUNCTION {author.or.editor} +{ author empty$ + { format.editors + duplicate$ empty$ + { pop$ + "empty author and editor in " cite$ * warning$ + } + { output.authors } + if$ + } + { format.authors + output.authors + } + if$ +} + +% Formatovani nazvu (napr. casopisu, zurnalu atp.). +% Pri zadane polozce 'subtitle' provede ji pripoji k obsahu polozky 'title' +% pomoci ": ". V nazvu je pak provedena zmena velikosti pismen. +% +% string format.title () +% { +% if (empty$(subtitle)) +% { +% return capitalize(title); +% } else +% { +% return capitalize(title) * opt.sep.t() * subtitle; +% } +% } +FUNCTION {format.title} +{ subtitle empty$ + { title capitalize } + { title capitalize + opt.sep.t * subtitle * + } + if$ +} +%%FUNCTION {format.title} +%%{ subtitle empty$ +%% { title "t" change.case$ } +%% { title "t" change.case$ +%% opt.sep.t * subtitle "t" change.case$ * +%% } +%% if$ +%%} + + +% Formatovani nazvu monograficke publikace. +% Pri zadane polozce 'subtitle' provede ji pripoji k obsahu polozky 'title' +% pomoci ": ". Pricemz na obe casti se provede zmena velikosti pismen +% a zvyrazneni. Pokud je polozka 'subtitle' prazdna, je provedena jen zmena +% velikosti pismen a jeji zvyrazneni. +% +% string format.btitle () +% { +% return emphasize(format.title()); +% } +FUNCTION {format.btitle} +{ format.title emphasize +} + +% Formatovani nazvu (napr. sbornik). +% Pri zadane polozce 'booksubtitle' provede ji pripoji k obsahu polozky +% 'booktitle' pomoci ": ". V nazvu je pak provedena zmena velikosti pismen +% a zvyrazneni kurzivou. +% +% string format.from.btitle () +% { +% if (empty$(booktitle)) +% { +% warning$(empty booktitle in " * cite$()); +% push(""); +% } else +% { +% push(capitalize(booktitle)); +% if (empty$(booksubtitle)) +% { } else +% { +% push(pop() * opt.sep.t * booksubtitle); +% } +% } +% return emphasize(pop()); +% } +FUNCTION {format.from.btitle} +{ booktitle empty$ + { "empty booktitle in " cite$ * warning$ + "" + } + { booktitle capitalize + booksubtitle empty$ + 'skip$ + { opt.sep.t * booksubtitle * } + if$ + } + if$ + emphasize +} + +% Formatovani druhu nosice. +% +% string format.howpublished () +% { +% if (empty$(howpublished)) +% { +% return ""; +% } else +% { +% if (change.case(howpublished, "l") == "cd") +% { +% push("CD-ROM"); +% } else +% { +% if (change.case(howpublished, "l") == "online") +% { +% push("online"); +% } else +% { +% push(howpublished); +% } +% } +% return "[" * pop() * "]"; +% } +% } +FUNCTION {format.howpublished} +{ howpublished empty$ + { "" } + { howpublished "l" change.case$ "cd" = + { "CD-ROM" } + { howpublished "l" change.case$ "online" = + { "online" } + { howpublished } + if$ + } + if$ + "[" swap$ * "]" * + } + if$ +} + +% Formatovani vydani +% +% string format.edition () +% { +% if (empty$(edition)) +% { +% push(""); +% } else +% { +% if (is.ord(edition)) +% { +% push(edition * ". vyd."); +% } else +% { +% push(edition); +% } +% } +% if (!empty$(version)) +% { +% push(comma.connect(pop(), version)); +% } +% return pop(); +% } +FUNCTION {format.edition} +{ edition empty$ + { "" } + { edition is.ord + { edition ". vyd." * } + { edition } + if$ + } + if$ + howpublished empty$ + 'skip$ + { version empty$ + 'skip$ + { version comma.connect } + if$ + } + if$ +} + +% Formatovani mesice a roku +% +% string format.date () +% { +% if (empty$(month)) +% { +% if (empty$(year)) +% { +% warning$("empty year in " * cite$()); +% return ""; +% } else +% { +% return year; +% } +% } else +% { +% if (empty$(year)) +% { +% warning$("just month (empty year) in " * cite$()); +% return ""; +% } else +% { +% if (is.ord(month)) +% { +% return get.month.n(str.to.int(month)) * " " * year; +% } else +% { +% return month * " " * year; +% } +% } +% } +% } +FUNCTION {format.date} +{ month empty$ + { year empty$ + { "" + "empty year in " cite$ * warning$ } + { year } + if$ + } + { year empty$ + { "" + "just month (empty year) in " cite$ * warning$ } + { month duplicate$ is.ord + { str.to.int get.month.n " " * year * } + { " " * year * } + if$ + } + if$ + } + if$ +} + +% Formatovani mesice a roku s genitivem měsíce +FUNCTION {format.date.g} +{ month empty$ + { year empty$ + { "" + "empty year in " cite$ * warning$ } + { year } + if$ + } + { year empty$ + { "" + "just month (empty year) in " cite$ * warning$ } + { month duplicate$ is.ord + { str.to.int get.month.g " " * year * } + { " " * year * } + if$ + } + if$ + } + if$ +} + +% Formatovani mesice a roku, kde mesic zacina velkym pismenem +FUNCTION {format.u.date} +{ month empty$ + { year empty$ + { "" + "empty year in " cite$ * warning$ } + { year } + if$ + } + { year empty$ + { "" + "just month (empty year) in " cite$ * warning$ + } + { month duplicate$ is.ord + { str.to.int get.u.month.n " " * year * } + { " " * year * } + if$ + } + if$ + } + if$ +} + +% Rozpoznani a prevod data z formatu '!yyyy-mm-dd'. +% +% string format.full.date (string date) +% { +% string t = date; +% if (text.length$(t) == 10) +% { +% if ( (is.ord(substring$(t, 1, 4))) && (substring$(t, 5, 1) == "-") && +% (is.ord(substring$(t, 6, 2))) && (substring$(t, 8, 1) == "-") && +% (is.ord(substring$(t, 9, 2))) ) +% { +% if (substring$(t, 9, 1) == "0") +% { +% if (substring$(t, 10, 1) == "0") +% { +% warning$("day must be between 1 and 31 in " * cite$()); +% } else { } +% push(substring$(t, 10, 1) * ".~"); +% } else +% { +% if ( ((chr.to.int$(substring$(t, 9, 1)) - 48) > 3) || +% ((substring$(t, 9, 1) == "3") && +% ((chr.to.int$(substring$(t, 10, 1)) - 48) > 1)) ) +% { +% pop(); +% push(t); +% warning$("day must be between 1 and 31 in " * cite$()); +% } else { } +% push(substring$(t, 9, 2) * ".~"); +% } +% if (substring$(t, 6, 1) == "0") +% { +% if (substring$(t, 7, 1) == "0") +% { +% pop(); +% push(t); +% warning$("month must be between 1 and 12 in " * cite$()); +% } else +% { +% return pop() * get.month.g(chr.to.int$(substring$(t, 7, 1)) - 48) * +% " " * substring$(t, 1, 4)); +% } +% } else +% { +% if ( (substring$(t, 6, 1) == "1") && +% ((chr.to.int$(substring$(t, 7, 1)) - 48) < 3) ) +% { +% return pop() * get.month.g(chr.to.int$(substring$(t, 7, 1)) +% - 48 + 10) * " " * substring$(t, 1, 4)); +% } else +% { +% pop(); +% push(t); +% warning$("month must be between 1 and 12 in " * cite$()); +% } +% } +% } else +% { +% return t; +% } +% } else +% { +% return t; +% } +% } +FUNCTION {format.full.date} +{ 't := + t text.length$ #11 = + { t #1 #1 substring$ "!" = + t #2 #4 substring$ is.ord + t #6 #1 substring$ "-" = + t #7 #2 substring$ is.ord + t #9 #1 substring$ "-" = + t #10 #2 substring$ is.ord + and and and and and + { t #10 #1 substring$ "0" = + { t #11 #1 substring$ "0" = + { "day must be between 1 and 31 in " cite$ * warning$ } + 'skip$ + if$ + t #11 #1 substring$ ".~" * + } + { t #10 #1 substring$ chr.to.int$ #48 - #3 > + t #10 #1 substring$ "3" = + t #11 #1 substring$ chr.to.int$ #48 - #1 > + and or + { pop$ t "day must be between 1 and 31 in " cite$ * warning$ } + 'skip$ + if$ + t #10 #2 substring$ ".~" * + } + if$ + t #7 #1 substring$ "0" = + { t #8 #1 substring$ "0" = + { pop$ t "month must be between 1 and 12 in " cite$ * warning$ } + { t #8 #1 substring$ chr.to.int$ #48 - get.month.g * + " " * t #2 #4 substring$ * + } + if$ + } + { t #7 #1 substring$ "1" = + t #8 #1 substring$ chr.to.int$ #48 - #3 < + and + { t #8 #1 substring$ chr.to.int$ #48 - #10 + get.month.g * + " " * t #2 #4 substring$ * + } + { pop$ t "month must be between 1 and 12 in " cite$ * warning$ } + if$ + } + if$ + } + { t } + if$ + } + { t } + if$ +} + +% Predani udaju z data revize elektronickeho dokumentu. +% +% string format.revised () +% { +% if (empty$(howpublished)) +% { +% return ""; +% } else +% { +% if (empty$(revised)) +% { +% return ""; +% } else +% { +% return revised; +% } +% } +% } +FUNCTION {format.revised} +{ howpublished empty$ + { "" } + { revised empty$ + { "" } + { revised } + if$ + } + if$ +} + +% Formatovani udaju z data citace elektronickeho dokumentu. +% +FUNCTION {format.cited} +{ cited empty$ + { "" } + { cited format.full.date + "[cit. " swap$ * "]" * +% "[vid. " swap$ * "]" * + } + if$ +} + +% Formatovani nakladatelskych udaju. +% +% string format.publish.info () +% { +% if ( (empty$(address)) && (empty$(publisher)) ) +% { +% string s = ""; +% } else +% { +% if (empty$(address)) +% { +% s = "[b.m.]: "; +% } else +% { +% s = address * ": "; +% } +% if (empty$(publisher)) +% { +% s = s * "[b.n.]"; +% } else +% { +% s = s * publisher; +% } +% } +% return s; +% } +FUNCTION {format.publish.info} +{ address empty$ + publisher empty$ + and + { "" } + { address empty$ + { "" } + { address opt.sep.p * } + if$ + publisher empty$ + { "[b.n.]" * } + { publisher * } + if$ + } + if$ +} + + +% Formatuje rozsah stran publikace. +% +% string format.range () +% { +% if (empty$(pages)) +% { +% return ""; +% } else +% { +% return tie.or.connect(pages, "s."); +% } +% } +FUNCTION {format.range} +{ pages empty$ + { "" } + { pages "s." tie.or.connect } + if$ +} + +% Formatovani edice a svazku sborníku konference. +% +% string format.cvolume () +% { +% if (empty$(volume)) +% { +% push(""); +% } else +% { +% if (is.ord(volume)) +% { +% push("sv. " * volume); +% } else +% { +% push(volume); +% } +% } +% if (empty$(number)) +% { +% return pop(); +% } else +% { +% if (is.ord(number)) +% { +% return comma.connect(pop(), "č. " * number); +% } else +% { +% return comma.connect(pop(), number); +% } +% } +% } +FUNCTION {format.cvolume} +{ volume empty$ + { "" } + { volume is.ord + { "sv. " volume * } + { volume } + if$ + } + if$ + number empty$ + { + "" comma.connect + } + { number is.ord + { "č. " number * comma.connect } + { number comma.connect } + if$ + } + if$ +} + + +% Formatovani edice a čísla edice knihy ci sborníku konference. +% +% string format.cseries () +% { +% if (empty$(series)) +% { +% return ""; +% } else +% { +% push(capitalize(series)); +% if (empty$(editionnumber)) +% { } else +% { +% if (is.ord(editionnumber)) +% { +% return comma.connect(pop(), "č. " * editionnumber); +% } else +% { +% return comma.connect(pop(), editionnumber); +% } +% } +% } +% } +FUNCTION {format.cseries} +{ series empty$ + { "" } + { series capitalize + editionnumber empty$ + 'skip$ + { editionnumber is.ord + { "č. " editionnumber * comma.connect } + { editionnumber comma.connect } + if$ + } + if$ + } + if$ +} + + +% Format dostupnosti. +% +% string format.url () +% { +% if (empty$(url)) +% { +% return ""; +% } else +% { +% return tie.or.connect(opt.url(), "\small{\url{" * url * ".}}"); +% } +% } +FUNCTION {format.url} +{ url empty$ + { "" } + { opt.url "{\small\url{" url * "}}" * tie.or.connect } + if$ +} + +% Format cesty. +% +% string format.pah () +% { +% if (empty$(path)) +% { +% return ""; +% } else +% { +% return opt.path * path; +% } +% } +FUNCTION {format.path} +{ path empty$ + { "" } + { opt.path path * } + if$ +} + +% Format ISBN. +% +% string format.isbn () +% { +% if (empty$(isbn)) +% { +% return ""; +% } else +% { +% return "ISBN " * isbn; +% } +% } +FUNCTION {format.isbn} +{ isbn empty$ + { "" } + { "ISBN " isbn * } + if$ +} + +% Format nazvu serialove publikace. +% +% string format.journal () +% { +% if (empty$(journal)) +% { +% return ""; +% } else +% { +% return emphasize(journal); +% } +% } +FUNCTION {format.journal} +{ journal empty$ + { "" } + { journalsubtitle empty$ + { journal capitalize emphasize } + { journal capitalize emphasize + opt.sep.t * journalsubtitle emphasize *} + if$ + } + if$ +} + +% Format nazvu lokace ve zdrojovem dokumentu. +% +% string format.pages () +% { +% if (empty$(pages)) +% { +% return ""; +% } else +% { +% return "s.~" * dashify(pages); +% } +% } +FUNCTION {format.pages} +{ pages empty$ + { "" } + { "s.~" pages dashify * } + if$ +} + +FUNCTION {format.chapter} +{ chapter empty$ + { "" } + { "kap.~" chapter * } + if$ +} + +% Formatovani data vydani, rocniku a cisla publikace + datum revize/aktualizace +% + darum citace + lokace ve zdrojovem dokumentu (rozsah stran). +% +% string format.journal.issue () +% { +% string s; +% if (empty$(format.u.date())) +% { +% s = ""; +% } else +% { +% s = format.u.date(); +% } +% if (!empty$(volume)) +% { +% if (is.ord(volume)) +% { +% s = comma.connect(s, "sv.~" * volume); +% } else +% { +% s = comma.connect(s, volume); +% } +% } +% if (empty$(number)) +% { +% warning$("empty number in " * cite$); +% } else +% { +% if (is.ord(number)) +% { +% s = comma.connect(s, "č.~" * number); +% } else +% { +% s = comma.connect(s, number); +% } +% } +% if (s == "") +% { +% warning$("empty journal issue info in " * cite$); +% return ""; +% } else +% { +% return s; +% } +% } +FUNCTION {format.journal.issue} +{ format.u.date + duplicate$ empty$ + { pop$ "" 's := } + { 's := } + if$ + volume empty$ + 'skip$ + { volume is.ord + { "sv.~" volume * + s swap$ comma.connect 's := + } + { s volume comma.connect 's := } + if$ + } + if$ + number empty$ + { "empty number in " cite$ * warning$ } + { number is.ord + { "č.~" number * + s swap$ comma.connect 's := + } + { s number comma.connect 's := } + if$ + } + if$ + s empty$ + { "empty journal issue info in " cite$ * warning$ + "" + } + { s } + if$ +} + +% Format ISSN. +% +% string format.issn () +% { +% if (empty$(issn)) +% { +% return ""; +% } else +% { +% return "ISBN " * issn; +% } +% } +FUNCTION {format.issn} +{ issn empty$ + { "" } + { "ISSN " issn * } + if$ +} + +% Format DOI. +% +% string format.doi () +% { +% if (empty$(doi)) +% { +% return ""; +% } else +% { +% return "DOI: " * doi; +% } +% } +FUNCTION {format.doi} +{ doi empty$ + { "" } + { "DOI: " doi * } + if$ +} + +% Formatuje cislo svazku -- presne urceni casti pro @InBook. +% +% string format.vol () +% { +% if (empty$(volume)) +% { +% push(""); +% } else +% { +% if (is.ord(volume)) +% { +% push("sv.~" * volume); +% } else +% { +% push(volume); +% } +% } +% return capitalize(pop()); +% } +FUNCTION {format.vol} +{ volume empty$ + { "" } + { volume is.ord + { "sv.~" volume * } + { volume } + if$ + } + if$ + capitalize +} + +% Formatuje zakladni informace (primarni odpovednost a titul) o sborniku pro +% bibliograficke citaci clanku ve sborniku. +% +% In opt.sep.a() . +% +% Pokud je prazdny, netiskne se nic. +% +% void conference.basics () +% { +% if (empty$(editor)) +% { +% if (empty$(organization)) +% { +% warning$("empty editor and organization in " * cite$()); +% push(""); +% } else +% { +% if ((substring$(organization, -1, 1) == opt.sep.a()) +% { +% push(capitalize(organization)); +% } else +% { +% push(capitalize(organization * opt.sep.a())); +% } +% } +% } else +% { +% if ((substring$(format.editors(), -1, 1) == opt.sep.a()) +% { +% push(format.editors()); +% } else +% { +% push(capitalize(format.editors() * opt.sep.a())); +% } +% } +% push(tie.or.connect("In:", pop())); +% if (empty$(format.from.btitle())) +% { +% pop(); +% push(""); +% } else +% { +% push(pop() * format.from.btitle()); +% } +% return pop(); +% } +FUNCTION {conference.basics} +{ editor empty$ + { organization empty$ + { "empty editor and organization in " cite$ * warning$ + "" + } + { organization capitalize + duplicate$ #-1 #1 substring$ opt.sep.a = + 'skip$ + { opt.sep.a * } + if$ + } + if$ + } + { format.editors + duplicate$ #-1 #1 substring$ opt.sep.a = + 'skip$ + { opt.sep.a * } + if$ + } + if$ + "In:" swap$ tie.or.connect + format.from.btitle + duplicate$ empty$ + { pop$ } + { tie.or.connect } + if$ +} + + +% Formatuje informace o akademicke (diplomova, dizertacni atp.) praci. +% Odlisuje se od beznych nakladatelskych informaci pouzitymi polozkami. +% +% string format.thesis.info () +% { +% string s = ""; +% if ( (empty$(address)) && (empty$(location)) && (empty$(school)) ) +% { +% warning$("empty address and school in " * cite$()); +% } else +% { +% if (empty$(address)) +% { +% } else +% { +% s = address; +% } +% if (empty$(location)) +% { +% } else +% { +% s = location; +% } +% if (empty$(year)) +% { +% warning$("empty year in " * cite$()); +% } else +% { +% if (empty$(s)) +% { +% s = year; +% } else +% { +% s = comma.connect(s, year); +% } +% } +% } +% return s; +% } +FUNCTION {format.thesis.info} +{ "" 's := + address empty$ + location empty$ + school empty$ + and + and + { "empty address and school in " cite$ * warning$ } + { address empty$ + 'skip$ + { address 's := } + if$ + location empty$ + 'skip$ + { location 's := } + if$ + year empty$ + { "empty year in " cite$ * warning$ } + { s empty$ + { year 's := } + { s year comma.connect 's := } + if$ + } + if$ + } + if$ + s +} + +% Formatuje informace o skole v akademicke (diplomova, dizertacni atp.) praci. +% +% string format.thesis.school () +% { +% string s = ""; +% if (empty$(school)) +% { +% warning$("empty school in " * cite$()); +% } else +% { +% if (empty$(s)) +% { +% s = school; +% } else +% { +% s = s * ". " * school; +% } +% } +% return s; +% } +FUNCTION {format.thesis.school} +{ "" 's := + school empty$ + { "empty school in " cite$ * warning$ } + { s empty$ + { school 's := } + { s ". " * school * 's := } + if$ + } + if$ + s +} + + +% Formatuje pocet stran a priloh u akademickych praci. +% +% string format.thesis.range () +% { +% if ( (empty$(format.range())) && (!empty$(inserts)) ) +% { +% return format.range(); +% } else +% { +% if (is.ord(inserts)) +% { +% return comma.connect(format.range(), inserts * " příl."); +% } else +% { +% return comma.connect(format.range(), inserts); +% } +% } +% } +FUNCTION {format.thesis.range} +{ pages empty$ + { "" 's := } + { pages opt.pages tie.or.connect 's := } + if$ + s empty$ + { "" } + { inserts empty$ + { s } + { s inserts opt.pages tie.or.connect " příl." * comma.connect } + if$ + } + if$ +} + +% Formatuje typ akademicke prace. +% +% string format.thesis.type (string basic.thesis.type) +% { +% if (empty$(type)) +% { +% return basic.thesis.type; +% } else +% { +% return capitalize(type); +% } +% } +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ type capitalize } + if$ +} + + +% Fromatuje typ a cislo technicke zpravy +% +% string format.report.type () +% { +% if (empty$(type)) +% { +% push(""); +% } else +% { +% push(type); +% } +% if (empty$(number)) +% { +% } else +% { +% space.connect(pop(), number); +% } +% } +FUNCTION {format.report.type} +{ type empty$ + { "" } + { type } + if$ + number empty$ + 'skip$ + { number space.connect } + if$ +} + + +% Kontrola prazdnosti vsech policek pouzitych pro @MISC zaznam. +% +% int empty.misc.check () +% { +% if ( (empty$(author)) && (empty$(title)) && +% (empty$(howpublished)) && (empty$(month)) && (empty$(year)) && +% (empty$(note)) && (!empty$(key)) ) +% { +% warning$("all misc relevant fields are empty in " * cite$()); +% return 1; +% } else +% { +% return 0; +% } +% } +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all misc relevant fields are empty in " cite$ * warning$ + #1 + } + { #0 } + if$ +} + + +% Formatuje misto a instituci technicke zpravy. +% +% string format.report.details () +% { +% if ( empty$(institution) ) +% { +% if ( empty$(address) && empty$(organization) ) +% { +% return ""; +% } else +% { +% if (empty$(address)) +% { +% push(""); +% } else +% { +% push(opt.sep.a() * " " * address * opt.sep.p()); +% } +% if (empty$(organization)) +% { +% warning$("empty organization in " * cite$()); +% } else +% { +% return pop() * organization; +% } +% } +% } else +% { +% if ( empty$(address) && empty$(institution) ) +% { +% return ""; +% } else +% { +% if (empty$(address)) +% { +%% push("[b.m.]"); +% push(""); +% } else +% { +% push(opt.sep.a() * " " * address * opt.sep.p()); +% } +% if (empty$(institution)) +% { +% warning$("institution is empty in " * cite$()); +% } else +% { +% return pop() * institution; +% } +% } +% } +% } +FUNCTION {format.report.details} +{ institution empty$ + { + address empty$ + organization empty$ + and + { "" } + { address empty$ + { "" } + { address } + if$ + organization empty$ + { "empty organization in " cite$ * warning$ } + { address empty$ + { organization * } + { opt.sep.p * organization * } + if$ + } + if$ + } + if$ + } + { + address empty$ + institution empty$ + and + { "" } + { address empty$ + { "" } + { address } + if$ + institution empty$ + { "empty institution in " cite$ * warning$ } + { address empty$ + { institution * } + { opt.sep.p * institution * } + if$ + } + if$ + } + if$ + } + if$ +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%% VLASTNI KOD -- FUNKCE PRO ZPRACOVANI ZAZNAMU %%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% Zpracuje zaznamy typu @Article. +% Bibliograficke citace clanku v serialovych publikaci (casopiseckych clanku). +% +% Povinne polozky: author, title, journal, edition, year, volume, number, pages, issn +% Volitelne polozky: subtitle, journalsubtitle, publisher, address, contributory, url*, month, note, doi +% Polozky el. dok.: howpublished*, revised*, cited*, version +% +% * Povinna polozka pro el. dok. +FUNCTION {article} +{ output.bibitem + format.authors + duplicate$ empty$ + { pop$ + "empty author in " cite$ * warning$ + } + { output.authors } + if$ + new.block %% primarni odpovednost (povinna) + format.title "title" output.check + new.block %% titul (povinny) + format.journal "journal" output.check + format.howpublished output + new.block + format.edition "edition" output.check + new.block %% vydani (povinne) + contributory capitalize output + new.block %% podrizena odpovednost (volitelna) + format.publish.info output + new.block + format.journal.issue + format.pages comma.connect + format.revised comma.connect + format.cited comma.connect output + new.block %% lokace ve zdrojovem dokumentu (povinna) + format.cseries output + new.block + format.doi output + new.block + format.issn output %% standardni cislo ISSN (volitelne) + new.block + note output + new.block %% poznamky (volitelne) + howpublished empty$ + { format.url output } + { format.url "url" output.check + year empty$ + revised empty$ + and + { "empty year and revised in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + fin.entry +}% @Article + +% Zpracuje zaznamy typu @Book. +% Bibliograficke citace monografickych publikaci (knih). +% +% Povinne polozky: author nebo editor, title, edition, address, publisher, year, isbn +% Volitelne polozky: subtitle, contributory, month, pages, series, number nebo volume, note, url* +% Polozky el. dok.: howpublished*, revised*, cited*, version +% +% * Povinna polozka pro el. dok. +FUNCTION {book} +{ output.bibitem + author.or.editor + new.block %% primarni odpovednost (povinna) + format.btitle "book title" output.check + format.howpublished output + new.block %% nazev (povinny) a druh nosice (povinny u el. dok.) + format.edition capitalize "edition" output.check + new.block %% vydani (povinne) + contributory capitalize output + new.block %% podrizena odpovednost (volitelna) + format.publish.info + format.date comma.connect + format.revised comma.connect + format.cited tie.or.connect + capitalize output + new.block %% nakladatelske udaje (volitelne), datum vydani (povinne), + %% datum revize/aktualizace a citace (povinne u el. dok.) + format.range output + new.block %% rozsah (volitelny) + format.cseries output + new.block %% edice (volitelna) + format.isbn "isbn" output.check + new.block + note capitalize output + new.block %% poznamky (volitelne) + howpublished empty$ + { format.url output } + { format.url "url" output.check + year empty$ + revised empty$ + and + { "empty year and revised in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + fin.entry %% standardni cislo ISBN (povinne) +}% @Book + +% @Booklet je pouhy odkaz na @Book. +FUNCTION {booklet} { book } + +% Zpracuje zaznamy typu @Conference, @InProceedings, @InCollection a @InBook. +% Bibliograficke citace monografickych publikaci (knih). +% +% Povinne polozky: author, title, editor nebo organization, booktitle, +% edition, address, publisher, year, pages, isbn or issn. +% Volitelne polozky: subtitle, booksubtitle, contributory, month, series, editionnumber, number, volume, note, chapter, doi, url*. +% Polozky el. dok.: howpublished*, revised*, cited*, version. +% +% * Povinna polozka pro el. dok. +FUNCTION {conference} +{ output.bibitem + author.or.editor + new.block %% primarni odpovednost (povinna) + format.title "title" output.check + new.block %% titul prispevku + conference.basics + format.howpublished tie.or.connect output + new.block %% primarni odpovednost a titul sborniku +% format.edition "edition" output.check + format.edition output + new.block %% vydani + contributory capitalize output + new.block %% podrizena odpovednost (volitelna) + format.publish.info + format.date capitalize comma.connect + format.cvolume comma.connect + format.chapter comma.connect + format.pages comma.connect + format.revised comma.connect + format.cited tie.or.connect + capitalize output + new.block %% nakladatelske udaje, datum vydani, revize/aktualizace a citace + format.cseries output + new.block %% edice (pokud je cislovana, tak i jeji cislo nebo svazek) + format.doi output + new.block + isbn empty$ + { issn empty$ + { "empty isbn and issn in " cite$ * warning$ } + { format.issn output } + if$ + } + { format.isbn output } + if$ + new.block %% standardni cislo ISBN nebo ISSN (povinne) + note capitalize output + new.block %% poznamky + howpublished empty$ + { format.url output } + { format.url "url" output.check + year empty$ + revised empty$ + and + { "empty year and revised in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + fin.entry +} % @Conference a @InProceedings, @InCollection a @InBook + +% @InProceedings je pouhy odkaz na @Conference. +FUNCTION {inproceedings} { conference } +FUNCTION {incollection} { conference } +FUNCTION {inbook} { conference } + +% Zpracuje zaznamy typu @Proceedings. +% +% Bibliograficke citace monografickych publikaci (knih). +% +% Povinne polozky: author nebo editor, title, edition, year, isbn or issn. +% Volitelne polozky: subtitle, contributory, address, publisher, month, series, number nebo volume, note, doi, url*. +% Polozky el. dok.: howpublished*, revised*, cited*, version. +% +% * Povinna polozka pro el. dok. +FUNCTION {proceedings} +{ output.bibitem + author.or.editor + new.block %% primarni odpovednost (povinna) + format.btitle + format.howpublished tie.or.connect output + new.block %% primarni odpovednost a titul sborniku +% format.edition "edition" output.check + format.edition output + new.block %% vydani + contributory capitalize output + new.block %% podrizena odpovednost (volitelna) + format.publish.info + format.date capitalize comma.connect + format.cvolume comma.connect + format.chapter comma.connect + format.pages comma.connect + format.revised comma.connect + format.cited tie.or.connect + capitalize output + new.block %% nakladatelske udaje, datum vydani, revize/aktualizace a citace + format.cseries output + new.block %% edice (pokud je cislovana, tak i jeji cislo nebo svazek) + format.doi output + new.block + isbn empty$ + { issn empty$ + { "empty isbn and issn in " cite$ * warning$ } + { format.issn output } + if$ + } + { format.isbn output } + if$ + new.block %% standardni cislo ISBN nebo ISSN (povinne) + note capitalize output + new.block %% poznamky + howpublished empty$ + { format.url output } + { format.url "url" output.check + year empty$ + revised empty$ + and + { "empty year and revised in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + fin.entry +} % @Proceedings + +% Zpracuje zaznamy typu @Misc, @Webpage a @Website. +% +% Povinne polozky: Alespon jedna z volitelnych! +% Volitelne polozky: author, secondarytitle, title, subtitle, howpublished, contributory, edition, month, doi, issn +% year, revised*, cited, note, url, version, path +% +% Pozn.: Protestuje, pokud neni vyplneny rok. Nemel by tedy volat format.date... +FUNCTION {misc} +{ empty.misc.check + 'skip$ + { output.bibitem + format.authors + duplicate$ empty$ + { pop$ + } + { output.authors } + if$ + new.block + secondarytitle output + new.block + format.btitle "title" output.check + format.howpublished output + new.block + contributory capitalize output + new.block %% podrizena odpovednost (volitelna) + format.edition output + new.block + format.publish.info + edition empty$ + address empty$ + publisher empty$ + and + and + { + output + day empty$ + { format.u.date capitalize output } + { day ". " * format.date.g * comma.connect output } + if$ + } + { + day empty$ + { format.date comma.connect output } + { day ". " * format.date.g * comma.connect output } + if$ + } + if$ + time output + revised empty$ + 'skip$ + { + new.block + format.revised output + } + if$ + format.cited makesmall output + new.block + format.doi output + new.block + format.issn output %% standardni cislo ISSN (volitelne) + new.block + note capitalize makesmall output + new.block + howpublished empty$ + { format.url output } + { format.url "url" output.check + year empty$ + revised empty$ + and + { "empty year and revised in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + new.block + format.path output + fin.entry + } + if$ +}%@Misc a @Webpage a @Website +% @Webpage a @Website sou pouhe odkazy na @Misc. +FUNCTION {webpage} { misc } +FUNCTION {website} { misc } + + +% Zpracuje zaznamy typu @Manual, @TechReport a @Unpublished. +% +% Povinne polozky: author, title, edition, address, organization nebo institution, month, year, revised +% Volitelne polozky: note, number, url* +% Polozky el. dok.: howpublished*, cited* +FUNCTION {techreport} +{ output.bibitem + author.or.editor + new.block %% primarni odpovednost (povinna) + format.btitle "title" output.check + format.howpublished output + new.block + format.report.type + format.edition capitalize comma.connect output + new.block + contributory capitalize output + new.block %% podrizena odpovednost (volitelna) + format.report.details + format.date comma.connect + format.revised comma.connect + format.cited tie.or.connect + capitalize output + new.block %% udeja o vydavajici instituci (volitelne) a datum vydani (povinne) + format.range output + new.block %% rozsah (volitelny) + note capitalize output + new.block %% poznamka (volitelna) + format.url output + new.block %% dostupnost (volitelna) + fin.entry +}%@Manual, @TechReport a @Unpublished +FUNCTION {manual} { techreport } +FUNCTION {unpublished} { techreport } + + +% Zpracuje zaznamy typu @BachelorsThesis, @MastersThesis a @PhdThesis. +% Bibliograficke citace akademickych praci (bakalarske, diplomove a dizertacni). +% +% Zakladni verze -- v choose.thesis ma hodnotu #0. +% +% Povinne polozky: author, title, address nebo location, school, year, type +% Volitelne polozky: subtitle, pages, inserts, note, url, isbn, howpublished +FUNCTION {thesis} +{ output.bibitem + format.authors + duplicate$ empty$ + { pop$ + "empty author in " cite$ * warning$ + } + { output.authors } + if$ + new.block %% primarni odpovednost (povinna) + format.btitle "title" output.check + format.howpublished output + new.block %% titul (povinny) + format.thesis.info capitalize output + new.block %% misto a rok {povinne) + format.cited makesmall output + new.block %% cited + format.thesis.range output + new.block %% rozsah akademicke prace a jejich priloh (volitelne) + type$ "l" change.case$ + duplicate$ "bachelorsthesis" = + { pop$ "Bakalářská práce" } + { "mastersthesis" = + { "Diplomová práce" } + { "Disertační práce" } + if$ + } + if$ + format.thesis.type output + new.block %% typ akademicke prace (volitelny -- pouzije se implicitni) + format.thesis.school output + new.block + format.isbn output + new.block + format.supervisor output + note capitalize output + new.block + format.url output + fin.entry %% standardni cislo ISBN (volitelne) +}%@BachelorsThesis, @MastersThesis a @PhdThesis + +% Zaznamy typu @BachelorsThesis jsou zpracovany funkci thesis. +FUNCTION {bachelorsthesis}{ thesis } + +% Zaznamy typu @MastersThesis jsou zpracovany funkci thesis. +FUNCTION {mastersthesis} { thesis } + +% Zaznamy typu @PhdThesis jsou zpracovany funkci thesis. +FUNCTION {phdthesis} { thesis } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%% MIRNE UPRAVENE FUNKCE PREVZATE Z plain.bst %%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% nacteni bibliograficke databaze +READ + +% Pripravi hodnotu pro razeni -- aplikuje vestavenou funkci purify$ a prevede +% na minusky. +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +% Deklarace dalsi celociselne promenne. +INTEGERS { len } + +% Vrati pouze cast predane hodnoty. +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +% Piprava jmen na razeni. +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ +% s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + s nameptr "{ll{ }}{ ff{ }}{ vv{ }}" format.name$ 't := %% Zamena! + nameptr numnames = t "others" = and + { opt.etal * } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +% Priprava titulu na serazeni. +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} + +% Serazeni dle autora. +FUNCTION {author.sort} +{ key empty$ + { author empty$ + editor empty$ + and + { "to sort, need author or key in " cite$ * warning$ + "" + } + { author empty$ + { editor sort.format.names } + { author sort.format.names } + if$ + } + if$ + } + { key sortify } + if$ +} +% Dytrych: Původní funkce upřednostní jméno před klíčem a ten pak nelze použít k opravě českého řazení. +% FUNCTION {author.sort} +% { author empty$ +% { key empty$ +% { "to sort, need author or key in " cite$ * warning$ +% "" +% } +% { key sortify } +% if$ +% } +% { author sort.format.names } +% if$ +% } + +% Serazeni dle editora. +FUNCTION {author.editor.sort} +{ key empty$ + { author empty$ + { editor empty$ + { "to sort, need author, editor, or key in " cite$ * warning$ + "" + } + { editor sort.format.names } + if$ + } + { author sort.format.names } + if$ + } + { key sortify } + if$ +} +% FUNCTION {author.editor.sort} +% { author empty$ +% { editor empty$ +% { key empty$ +% { "to sort, need author, editor, or key in " cite$ * warning$ +% "" +% } +% { key sortify } +% if$ +% } +% { editor sort.format.names } +% if$ +% } +% { author sort.format.names } +% if$ +% } + +% Serazeni dle autora, editora nebo organizace. Jedna se o nevyuzitou funkci. +FUNCTION {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +% Serazeni dle editora ci organizace. Jedna se o nevyuzitou funkci. +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +% Priprava na razeni. +% +% Funkce je zmenena oproti puvodnimu zneni v plain.bst. +FUNCTION {presort} +{ type$ "book" = + type$ "inbook" = + or + { author.editor.sort } + { author.sort } + if$ + " " * + year field.or.null sortify * + " " * + title field.or.null + sort.format.title * + #1 entry.max$ substring$ + 'sort.key$ := +} + +% Provede pripravu pred razenim. +ITERATE {presort} + +% Provede serazeni. +SORT + +% Deklarace retezcove promenne pro urceni nejdelsiho navesti do soupisu bib.cit. +STRINGS { longest.label } + +% Deklarace pomocnych ciselnych promennych. +INTEGERS { number.label longest.label.width } + +% Inicializace pomocnych promennych. +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +% Predani nejdelsiho navesti. +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +% Provede inicializaci pomocnych promennych. +EXECUTE {initialize.longest.label} + +% Vybere nejdelsi navesti. +ITERATE {longest.label.pass} + +% Tato funkce se stara o prvni radky, ktere se objevi ve vystupnim souboru. +% +% Tato funkce je rozsirena o podminenou definici prikazu \url{}. +FUNCTION {begin.bib} +{ "\makeatletter" write$ newline$ +%%% "\@ifundefined{url}" +%%% "{\def\url#1{{\tt $<$#1$>$}}}" * +%%% "{\DeclareUrlCommand\url{\def\UrlLeft{<} \def\UrlRight{>} \urlstyle{tt}}}" * +%%% write$ newline$ + "\makeatother" write$ newline$ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +% Funkce zapise posledni radky do vystupniho souboru -- uzavre prostredi +% thebibliography. +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +% Vlozi do vystupniho souboru zacatek prostredi thebibliography. +EXECUTE {begin.bib} + +% Provede inicilizaci potrebnych konstant. +EXECUTE {init.state.consts} + +% Zpracovani vsech citovanych zaznamu. +ITERATE {call.type$} + +% Uzavre prostredi thebibliography. +EXECUTE {end.bib} diff --git a/overleaf/bib-styles/Pysny/enplain.bst b/overleaf/bib-styles/Pysny/enplain.bst new file mode 100644 index 0000000..d1390ea --- /dev/null +++ b/overleaf/bib-styles/Pysny/enplain.bst @@ -0,0 +1,3175 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Project: IBP - Bachelor's Thesis +% Title: BibTeX style for CSN ISO 690 and CSN ISO 690-2 +% Author: Radek Pysny, xpysny00 +% Translated: Jaroslav Dytrych +% URI: http://www.fit.vutbr.cz/study/DP/BP.php?id=7848 +% +% File: enplain.pst was created by translating czplain.bst, that was created by editing plain.bst +% Date: Created on June 31, 2019. +% Last edited 10. kveten 2009, 16:55. +% Edited by Adam Herout for FIT thesis template: 31.7.2019 +% Edited by Jaroslav Dytrych to achieve conformance with +% standard for FIT thesis template: 10.10.2019 +% Description: English bibliographic style. +% Use: +% Encoding: UTF-8 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%% OPTIONS FOR BIBLIOGRAPHIC STYLE SETTINGS %%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% -- Maximum number of authors to be processed. +% If the author element contains a list with more authors than opt.aa, +% the bibliographic citation will display exactly opt.aa authors. +% This author listing will end with a string set in opt.etal. +% FUNCTION {opt.aa} { #3 } +% FUNCTION {opt.aa} { #4 } +FUNCTION {opt.aa} { #5 } +% FUNCTION {opt.aa} { #99 } + + +% -- Maximum number of authors to be processed. +% Similar to option opt.aa. +% FUNCTION {opt.ae} { #1 } +% FUNCTION {opt.ae} { #2 } +% FUNCTION {opt.ae} { #3 } +% FUNCTION {opt.ae} { #4 } +FUNCTION {opt.ae} { #5 } + + +% -- Separator for the list of authors. +% Used to join names in the list. An exception to this are the last two names, +% that are joined by a string specified in option opt.sep.ln. +FUNCTION {opt.sep.bn} { ", " } +% FUNCTION {opt.sep.bn} { " -- " } + + +% -- Separator for the last two names in the list of authors. +FUNCTION {opt.sep.ln} { " and~" } +% FUNCTION {opt.sep.ln} { " -- " } + +% -- Unfinished listing of names. +% Used if the number of authors exceeds the limit set by options opt.aa or opt.ae. +% It is also used, if the keyword "others" is used instead of the last author. +FUNCTION {opt.etal} { "et~al." } + +% -- Signify editor (redactor). +% Names of editors are distinguished from authors with this option. +FUNCTION {opt.ed} { "ed." } +% FUNCTION {opt.ed} { "(ed.)" } +% FUNCTION {opt.ed} { "(red.)" } +% FUNCTION {opt.ed} { "" } + +% -- Signify editor (redactor) after each name. +% Signifies where option opt.ed should be used. Either after each name, +% or only at the end of the element. +FUNCTION {opt.ed.all} { #0 } % pouze na konci prvku +% FUNCTION {opt.ed.all} { #1 } % za kazdym jmenem + +% -- Separator between primary author(s) and title elements. +FUNCTION {opt.sep.a} { "." } +% FUNCTION {opt.sep.a} { ":" } + +% -- Separator between place of publication and publisher elements +% (alternatively university or another institution). +FUNCTION {opt.sep.p} { ": " } +% FUNCTION {opt.sep.p} { " : " } +% FUNCTION {opt.sep.p} { ", " } + +% -- Separator between title and subtitle elements. +% If both title and subtitle elements are used, this string is used as a separator +% between these two elements. +FUNCTION {opt.sep.t} { ": " } +% FUNCTION {opt.sep.t} { " : " } + +% -- Oznaceni rozsahu u akademickych praci. +% U akademickych praci mate pomoci teto volby moznost urcit, zda-li bude rozsah +% techto praci udavan ve stranach nebo v listech. + +% -- Specifies number of pages of a theses. +% Used for theses, you can choose between number of pages and number of sheets. +FUNCTION {opt.pages} { "p." } % number of pages +% FUNCTION {opt.pages} { "sh." } % number of sheets + + +% -- Beginning of the availability element (url). +% This option affects text, that is displayed before the URL itself. +% FUNCTION {opt.url} { "" } +FUNCTION {opt.url} { "Available at: " } +% FUNCTION {opt.url} { "Available from: " } + +FUNCTION {opt.path} { "Path: " } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%% DECLARATION OF ENTRIES AND VARIABLES %%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% Entries that are accepted and processed by this style. +ENTRY + { address + author + booktitle + booksubtitle % book subtitle + cited % date of citation + contributory % secondary author(s) + day + doi + edition + editionnumber % edition number + editor + howpublished % type of medium + chapter + institution + inserts % number of appdendices pages + isbn % standard number + issn % standard number + journal + journalsubtitle + key + location + month + note + number + organization + path + pages + publisher + revised % revision date/update + secondarytitle % webpage title + school + series % edition name + subtitle % subtitle + supervisor % for theses + time % publication time + title + type + url % availability + version % version of electronic documents + volume + year + } + { } + { label } + +% Integer variables. Each variable (except for constants, that are only initialized +% in function init.state.consts -- before.all, mid.sentence, after.sentence, +% after.block) has a list of functions, that modify its value. +% +% output.state -- output.nonnull, output.bibitem, new.block, new.sentance +% +% ord -- is.ord +% +% ptr, i, x -- str.to.int +% +% numnames, namesleft, nameptr -- format.names, format.names.ed, +% sort.format.names +INTEGERS { output.state before.all mid.sentence after.sentence after.block + ord ptr i x numnames namesleft nameptr } + +% String variables. Each variable has a list of functions, that modify its value. +% +% s -- output.nonnull, format.names, format.names.ed, format.journal.issue, +% format.thesis.info, format.thesis.range, chop.word, sort.format.names +% +% t -- output.check, dashify, str.to.int, format.names, format.names.ed, +% format.full.date, sort.format.names, sort.format.title +% +% u -- is.ord, tie.or.connnect, comma.connect +STRINGS { s t u } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%% DEFINITION OF ABBREVIATIONS -- ENGLISH NAMES OF MONTHS %%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +MACRO {jan} {"january"} + +MACRO {feb} {"february"} + +MACRO {mar} {"march"} + +MACRO {apr} {"april"} + +MACRO {may} {"may"} + +MACRO {jun} {"june"} + +MACRO {jul} {"july"} + +MACRO {aug} {"august"} + +MACRO {sep} {"september"} + +MACRO {oct} {"october"} + +MACRO {nov} {"november"} + +MACRO {dec} {"december"} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%% SLIGHTLY EDITED FUNCTIONS TAKEN FROM plain.bst %%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% Initialization of constants necessary for correct functionality of the style. +% +% void init.state.consts () +% { +% int before.all = 0; +% int mid.sentence = 1; +% int adter.sentence = 2; +% int after.block = 3; +% } +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := +} + +% Output of preformatted array, that is certainly not empty. Output format is a +% ffected by output state (i.e. state variable output.state). The output itself +% is delayed (the current value is printed upon the next call of this function) +% as the correct separator needs to be chosen (dot or comma). +% +% void output.nonnull () +% { +% s = pop(); +% if (output.state == mid.sentence) +% { +% write(pop() * " "); // zde byla carka!!! +% } else +% { +% if (output.state == after.block) +% { +% write(add.period(pop())); +% flush(); +% write("\newblock "); +% } else +% { +% if (output.state == before.all) +% { +% write(pop()); +% } else +% { +% write(add.period(pop()) * " "); +% } +% } +% } +% push(s); +% } +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { " " * write$ } %% Uprava: Nahrada ", " za " "! + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + { write$ } + { add.period$ " " * write$ } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} + +% If a nonnull value is at the top of stack, the output is executed with +% the output.nonnull function. Otherwise it is removed from stack. +% +% /** pseudocode without the use of a stack **/ +% void output (string string.to.write) +% { +% if (empty$(string.to.write)) +% { } else +% { +% output.nonnull(string.to.write); +% } +% } +FUNCTION {output} +{ duplicate$ empty$ + { pop$ } + { output.nonnull } + if$ +} + +% If a nonnull value is at the top of stack, the output is executed with +% the output.nonnull function. Otherwise it is removed from stack and warning +% regarding missing value is printed to error output. It is used to inform the +% user of a missing value that % is required by the czech standard. +% +% /** pseudocode without the use of a stack **/ +% void output.check (string type.of.field string string.to.write) +% { +% t = type.of.field; +% if (empty$(string.to.write)) +% { +% warning$("empty" * t * " in " * cite$()) +% } else +% { +% output.nonnull(string.to.write); +% } +% } +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + { output.nonnull } + if$ +} + +% Prints the beginning of a bibliographic citation. +% +% void output.bibitem () +% { +% newline$(); +% write$("\bibitem{"); +% write$(cite$); +% write$("}"); +% newline$(); +% push(""); +% int output.state = before.all; +% } +FUNCTION {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +% Entry completion (with a dot at the end). +% +% void fin.entry () +% { +% write(add.period$(pop())); +% newline$(); +% } +FUNCTION {fin.entry} +{ add.period$ write$ + newline$ +} + +% State change: {mid.sentence; after.sentence} => after.block. +% +% void new.block () +% { +% if (output.state == before.all) +% { } else +% { +% output.state = after.block; +% } +% } +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} + +% State change: mid.sentence => after.sentence. +% +% void new.sentence () +% { +% if (output.state == after.block) +% { } else +% { +% if (output.state == before.all) +% { } else +% { +% output.state = after.sentence; +% } +% } +% } +FUNCTION {new.sentence} +{ output.state after.block = + 'skip$ + { output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ + } + if$ +} + +% Negation of condition. +% +% int not (int bool) +% { +% if (bool) +% { +% return 0; // false +% } else +% { +% return 1; // true +% } +% } +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +% Conjunction of two conditions. +% +% int and (int bool1, int bool2) +% { +% if (bool2) +% { +% return bool1; +% } else +% { +% return 0; +% } +% } +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +% Disjunction of two conditions. +% +% int or (int bool1, int bool2) +% { +% if (bool2) +% { +% return 1; +% } else +% { +% return bool1; +% } +% } +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +% Beginning of a new block if there is a nonnull value at the of stack. +% +% void new.block.checka (int.or.string anything.from.the.top) +% { +% if (empty$(anything.from.the.top)) +% { } else +% { +% new.block(); +% } +% } +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + { new.block } + if$ +} + +% Beginning of a new block if there are two nonnull values at the top of stack. +% +% void new.block.checkb (int.or.string anything.under.the.top, +% int.or.string anything.from.the.top) +% { +% if ( (empty$(anything.from.the.top)) && (empty$(anything.under.the.top)) ) +% { } else +% { +% new.block(); +% } +% } +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + { new.block } + if$ +} + +% Beginning of a new sentence if there is a nonnull value at the top of stack. +% +% void new.sentence.checka (int.or.string anything.from.the.top) +% { +% if (empty$(anything.from.the.top)) +% { } else +% { +% new.sentence(); +% } +% } +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + { new.sentence } + if$ +} + +% Beginning of a new sentence if there are two nonnull values at the top of stack. +% +% void new.sentence.checkb (int.or.string anything.under.the.top, +% int.or.string anything.from.the.top) +% { +% if ( (empty$(anything.from.the.top)) && (empty$(anything.under.the.top)) ) +% { } else +% { +% new.sentence(); +% } +% } +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ and + 'skip$ + { new.sentence } + if$ +} + +% Returns value of an entry (at the top of stack) or empty (null) string. +% +% int.or.string field.or.null (int.or.string anything.from.the.top) +% { +% if (empty$(anything.from.the.top)) +% { +% return ""; +% } else +% { +% return anything.from.the.top; +% } +% } +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +% Prints an error message in cases, where there are two nonnull mutually exclusive entries. +% Function is called with two arguments -- the first one is a string containing names of both +% items and the other one is the content of one of the items. +% +% void either.or.check (string field.names, int.or.string one.of.fields) +% { +% if (empty$(one.of.fields)) +% { } else +% { +% warning$(field.names * "can't use both " * " fields in " * cite$()); +% } +% } +FUNCTION {either.or.check} +{ empty$ + { pop$ } + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +% Adds emphasis to the value at the top of stack (encloses it with "{\em" +% and "}"). Does not utilize italic type correction. +% +% string emphasize (string x) +% { +% if (empty$(x)) +% { +% return ""; +% } else +% { +% return "{\em " * x * "}"; +% } +% } +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +FUNCTION {makebold} +{ duplicate$ empty$ + { pop$ "" } + { "{\bf " swap$ * "}" * } + if$ +} + +FUNCTION {makesmall} +{ duplicate$ empty$ + { pop$ "" } + { "{\small " swap$ * "}" * } + if$ +} + +% Replaces each occurence of '-' with "--". +% +% string dashify (string to.dashify) +% { +% t = to.dashify; +% push(""); +% while (!empty$(t)) +% { +% if (substring$(t, 1, 1) == "-") +% { +% if (substring$(t, 1, 2) == "--") +% { +% while (substring$(t, 1, 1) == "-") +% { +% push(pop() * "-"); +% t = substring$(t, 2, global.max$()); +% } +% } else +% { +% push(pop() * "--"); +% t = substring$(t, 2, global.max$()); +% } +% } else +% { +% push(pop() * substring$(t, 1, 1)); +% t = substring$(t, 2, global.max$()); +% } +% } +% } +FUNCTION {dashify} +{ 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { t #1 #2 substring$ "--" = + { { t #1 #1 substring$ "-" = } + { "-" * + t #2 global.max$ substring$ 't := + } + while$ + } + { "--" * + t #2 global.max$ substring$ 't := + } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%% CODE -- AUXILIARY FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% Conversion of string to number. A function call is expected after a successful +% test using the 'is.ord' function. The expected input is a nonnull string +% comprised of digits only. +% +% int str.to.int (string to.convert) +% { +% t = to.convert; +% int x = 0; +% int ptr = 0; +% while (ptr text.length$(t) < ) +% { +% push(x); +% i = 9; +% while (i > 0) +% { +% push(pop() + x); +% i--; +% } +% ptr++; +% x = chr.to.int$(substring$(t, ptr, 1)) - 48 + pop(); +% } +% return x; +% } +FUNCTION {str.to.int} +{ 't := + #0 'x := + #0 'ptr := + { ptr t text.length$ < } + { x + #9 'i := + { i #0 > } + { x + + i #1 - 'i := + } + while$ + ptr #1 + 'ptr := + t ptr #1 substring$ chr.to.int$ #48 - + 'x := + } + while$ + x +} + +% Converts the first letter of a string at the top of stack to capital. +% +% string capitalize (string to.capitalize) +% { +% if (empty$(to.capitalize)) +% { } else +% { +% return change.case$(substring$(to.capitalize, 1, 1), "u") * +% substring$(to.capitalize, 2, global.max$()); +% } +% } +FUNCTION {capitalize} +{ duplicate$ empty$ + 'skip$ + { duplicate$ #1 #1 substring$ "u" change.case$ + swap$ #2 global.max$ substring$ * + } + if$ +} + +% Connects two strings from the top of the stack. These two strings are separated +% by a whitespace or non-breaking space. String at the top of the stack is connected +% to the other one, specifically behind it. +% +% If either of the strings is empty, the other string is returned without any changes. +% If both strings are empty, the function also returns an empty string. +% +% string tie.or.connect (string under.the.top, string from.the.top) +% { +% string u = from.the.top; +% if (empty$(under.the.top)) +% { +% return u; +% } else +% { +% if (empty$(u)) +% { } else +% { +% if (text.length$(u) < 3) +% { +% return under.the.top * "~" * u; +% } else +% { +% return under.the.top * " " * u; +% } +% } +% } +% } +FUNCTION {tie.or.connect} +{ 'u := + duplicate$ empty$ + { pop$ u } + { u empty$ + 'skip$ + { u text.length$ #3 < + { "~" * u * } + { " " * u * } + if$ + } + if$ + } + if$ +} + +% Connects two strings from the top of the stack. These two strings are separated +% by a comma. String at the top of the stack is connected to the other one, +% specifically behind it. +% +% If either of the strings is empty, the other string is returned without any changes. +% If both strings are empty, the function also returns an empty string. +% +% string comma.connect (string under.the.top, string from.the.top) +% { +% string u = from.the.top; +% if (empty$(under.the.top)) +% { +% return u; +% } else +% { +% if (empty$(u)) +% { } else +% { +% return under.the.top * ", " * u; +% } +% } +% } +FUNCTION {comma.connect} +{ 'u := + duplicate$ empty$ + { pop$ u } + { u empty$ + 'skip$ + { ", " * u * } + if$ + } + if$ +} + +% Connects two strings from the top of the stack. A whitespace is used as the separator. +FUNCTION {space.connect} +{ 'u := + duplicate$ empty$ + { pop$ u } + { u empty$ + 'skip$ + { " " * u * } + if$ + } + if$ +} + + +% Tests, whether or not a value at the top of stack is comprised of digits only. +% +% int is.ord (string x) +% { +% string u = x; +% int ord = 1; +% while ( (ord) && (!empty(u)) ) +% { +% if ( (chr.to.int$(substring$(u, 1, 1)) < 48) || +% (chr.to.int$(substring$(u, 1, 1)) > 57) ) +% { +% ord = 0; +% } else +% { +% u = substring(s, 2, global.max$()); +% } +% } +% return ord; +% } +FUNCTION {is.ord} +{ 'u := + #1 'ord := + { ord + u empty$ not + and + } + { u #1 #1 substring$ + duplicate$ chr.to.int$ #48 < % < '0' + swap$ chr.to.int$ #57 > % > '9' + or + { #0 'ord := } + { u #2 global.max$ substring$ 'u := } + if$ + } + while$ + ord +} + +% Formatting string for insertion of names according to czech convention +% using the 'format.name$' function. +% +% string cz.name.format () +% { +% return "{{\scshape\bgroup}ll{ }{\egroup}}{, f.}{ vv}"; +% } +FUNCTION {cz.name.format} +{ "{{\sc\bgroup}ll{ }{\egroup}}{, f.}{ vv}" } + +% Vraci nominativ mesice. +% +% /** prepis pseudokodu do funkce pracujici s polem **/ +% string get.month.n (int n) +% { +% int month = { 1 => "january", "february", "march", "april", "may", june", +% "july", "august", "september", "october", "november", "december" }; +% if ( (n > 0) && (n < 13) ) +% { +% return month[n]; +% } else +% { +% warning$("Month must be between 1 and 12!"); +% return ""; +% } +% } +FUNCTION {get.month.n} +{ duplicate$ #1 = + { "january" swap$ pop$ } + { duplicate$ #2 = + { "february" swap$ pop$ } + { duplicate$ #3 = + { "march" swap$ pop$ } + { duplicate$ #4 = + { "april" swap$ pop$ } + { duplicate$ #5 = + { "may" swap$ pop$ } + { duplicate$ #6 = + { "june" swap$ pop$ } + { duplicate$ #7 = + { "july" swap$ pop$ } + { duplicate$ #8 = + { "august" swap$ pop$ } + { duplicate$ #9 = + { "september" swap$ pop$ } + { duplicate$ #10 = + { "october" swap$ pop$ } + { duplicate$ #11 = + { "november" swap$ pop$ } + { duplicate$ #12 = + { "december" swap$ pop$ } + { "" "Month must be between 1 and 12!" warning$ } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ +} + +% Vraci genitiv mesice. +% +% /** prepis pseudokodu do funkce pracujici s polem **/ +% string get.month.g (int n) +% { +% int month = { 1 => "january", "february", "march", "april", "may", "june", +% "july", "august", "september", "october", "november", "december"}; +% if ( (n > 0) && (n < 13) ) +% { +% return month[n]; +% } else +% { +% warning$("Month must be between 1 and 12!"); +% return ""; +% } +% } +FUNCTION {get.month.g} +{ duplicate$ #1 = + { "January" swap$ pop$ } + { duplicate$ #2 = + { "February" swap$ pop$ } + { duplicate$ #3 = + { "March" swap$ pop$ } + { duplicate$ #4 = + { "April" swap$ pop$ } + { duplicate$ #5 = + { "May" swap$ pop$ } + { duplicate$ #6 = + { "June" swap$ pop$ } + { duplicate$ #7 = + { "July" swap$ pop$ } + { duplicate$ #8 = + { "August" swap$ pop$ } + { duplicate$ #9 = + { "September" swap$ pop$ } + { duplicate$ #10 = + { "October" swap$ pop$ } + { duplicate$ #11 = + { "November" swap$ pop$ } + { duplicate$ #12 = + { "December" swap$ pop$ } + { "" "Month must be between 1 and 12!" warning$ } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ +} + +% Use only at the beginning of a bibliographic citation! Can cause switching of +% elements elsewhere. +% +% void output.authors (string formatted.authors) +% { +% if (substring$(formatted.authors, #-1, #1) == opt.sep.a()) +% { +% write$(formatted.authors); +% newline$(); +% write("\newblock "); +% } else +% { +% write$(formatted.authors * opt.sep.a()); +% newline$(); +% write("\newblock "); +% } +% } +FUNCTION {output.authors} +{ + duplicate$ #-1 #1 substring$ opt.sep.a = + { write$ newline$ "\newblock " write$ } + { opt.sep.a * + write$ newline$ "\newblock " write$ + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%% CODE -- FORMATTING FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% Names formatting (primary author(s)). +% +% string format.names (string names) +% { +% string s = names; +% int numnames = num.names$(s); +% int namesleft = numnames; +% int nameptr = 1; +% while ( (namesleft > 0) && (nameptr <= opt.aa()) ) +% { +% t = format.name$(s, nameptr, cz.name.format()); +% if (nameptr == 1) +% { +% push(t); +% } else +% { +% if (namesleft > 1) +% { +% push(pop() * opt.sep.bn() * t); +% } else +% { +% if (purify$(t) == "others") +% { +% push(tie.or.connect(pop(), opt.etal())); +% } else +% { +% push(pop() * opt.sep.ln() * t); +% } +% } +% } +% nameptr++; +% namesleft--; +% } +% if (nameledt > 0) +% { +% push(tie.or.connect(pop(), opt.etal())); +% } +% return pop(); +% } +FUNCTION {format.names} +{ 's := % s <= item that contains names + s num.names$ 'numnames := % numnames <= number of names in the item + numnames 'namesleft := % stores the number of remaining names + #1 'nameptr := % nameptr <= pointer to first name + { namesleft #0 > + nameptr opt.aa > not + and + } + { % individual name processing cycle + s nameptr cz.name.format format.name$ 't := + nameptr #1 = + { t } % first name + { namesleft #1 > % other names + { opt.sep.bn t * * } + { t purify$ + "others" = % if the "others" keyword remains after purification + { opt.etal tie.or.connect } % prints et al. + { opt.sep.ln * t * } % otherwise last initials follow after the connective "and" + if$ + } + if$ + } + if$ + nameptr #1 + 'nameptr := % move pointer to another name + namesleft #1 - 'namesleft := % decrement the number of remaining names + } + while$ + namesleft #0 > % possible addition of opt.etal + { opt.etal tie.or.connect } + 'skip$ + if$ +} + + +% Editor names formatting +% +% string format.names.ed (string names) +% { +% string s = names; +% int numnames = num.names$(s); +% int namesleft = numnames; +% int nameptr = 1; +% while ( (namesleft > 0) && (nameptr <= opt.aa()) ) +% { +% t = format.name$(s, nameptr, cz.name.format()); +% if (nameptr == 1) +% { +% if (opt.ed.all()) +% { +% push(tie.or.connect(t, opt.ed()); +% } else +% { +% push(t); +% } +% } else +% { +% if (namesleft > 1) +% { +% if (opt.ed.all()) +% { +% push(tie.or.connect(pop() * opt.sep.bn() * t, opt.ed()); +% } else +% { +% push(pop() * opt.sep.bn() * t); +% } +% } else +% { +% if (purify$(t) == "others") +% { +% push(tie.or.connect(pop(), opt.etal())); +% } else +% { +% if (opt.ed.all()) +% { +% push(tie.or.connect(pop() * opt.sep.ln() * t, opt.ed()); +% } else +% { +% push(pop() * opt.sep.ln() * t); +% } +% } +% } +% } +% nameptr++; +% namesleft--; +% } +% if (nameledt > 0) +% { +% push(tie.or.connect(pop(), opt.etal())); +% } +% if (opt.ed.all()) +% { +% return pop(); +% } else +% { +% return tie.or.connect(pop(), ", " * opt.ed()); +% } +% } +FUNCTION {format.names.ed} +{ 's := % s <= item that contains names + s num.names$ 'numnames := % numnames <= number of names in the item + numnames 'namesleft := % stores the number of remaining names + #1 'nameptr := % nameptr <= pointer to first name + { namesleft #0 > + nameptr opt.ae > not + and + } + { % individual name processing cycle + s nameptr cz.name.format format.name$ 't := + nameptr #1 = % first name + { t + opt.ed.all + { opt.ed tie.or.connect } + 'skip$ + if$ + } + { namesleft #1 > % other names + { opt.sep.bn t * * + opt.ed.all + { opt.ed tie.or.connect } + 'skip$ + if$ + } + { t purify$ + "others" = % if the "others" keyword remains after purification + { opt.etal tie.or.connect } % prints et al. + { opt.sep.ln t * * % otherwise last initials follow after the connective "and" + opt.ed.all + { opt.ed tie.or.connect } + 'skip$ + if$ + } + if$ + } + if$ + } + if$ + nameptr #1 + 'nameptr := % move pointer to another name + namesleft #1 - 'namesleft := % decrement the number of remaining names + } + while$ + namesleft #0 > % possible additon of opt.etal + { opt.etal tie.or.connect } + 'skip$ + if$ + opt.ed.all % possible addition of opt.ed at the end of the element + 'skip$ + { ", " * opt.ed tie.or.connect } + if$ +} + +% Author names formatting +% If the 'author' element is not empty, applies formatting using the +% 'format.names' function. +% +% string format.authors () +% { +% if (empty$(author)) +% { +% return ""; +% } else +% { +% return format.names(author); +% } +% } +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +% Supervisor name formatting +FUNCTION {format.supervisor} +{ supervisor empty$ + { "" } + { "Supervisor " supervisor format.names * } + if$ +} + +% Editor names formatting +% If the 'editor' element is not empty, applies formatting using the +% 'format.names.ed' function. +% +% string format.editors () +% { +% if (empty$(editor)) +% { +% return ""; +% } else +% { +% return format.names.ed(editor); +% } +% } +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names.ed } + if$ +} + +% Primary author(s) (author) element formatting. +% If the element 'author' is used, its formatting is executed +% by the 'format.authors' function. If the element 'author' is empty, +% its formatting is executed by the 'format.editors' function. +% +% void author.or.editor () +% { +% if (empty$(author)) +% { +% if (empty$(format.editors())) +% { +% warning$("empty author and editor in " * cite$()); +% } else +% { +% output.authors(format.editors()); +% } +% } else +% { +% output.authors(format.authors()); +% } +% } +FUNCTION {author.or.editor} +{ author empty$ + { format.editors + duplicate$ empty$ + { pop$ + "empty author and editor in " cite$ * warning$ + } + { output.authors } + if$ + } + { format.authors + output.authors + } + if$ +} + +% Title formatting (e.g. magazine, journal etc.) +% If the element 'subtitle' is used, it is connected to the contents +% element 'title' using ": ". The title is then properly capitalized. +% +% string format.title () +% { +% if (empty$(subtitle)) +% { +% return capitalize(title); +% } else +% { +% return capitalize(title) * opt.sep.t() * subtitle; +% } +% } +FUNCTION {format.title} +{ subtitle empty$ + { title capitalize } + { title capitalize + opt.sep.t * subtitle * + } + if$ +} +%%FUNCTION {format.title} +%%{ subtitle empty$ +%% { title "t" change.case$ } +%% { title "t" change.case$ +%% opt.sep.t * subtitle "t" change.case$ * +%% } +%% if$ +%%} + + +% Monographic publication title formatting. +% If the 'subtitle' element is used, it is connected to the contents +% of the 'title' element using ": ". Both parts are properly capitalized +% and emphasized. If the 'subtitle' element is empty, the capitalization +% and emphasis is only applied to it. +% +% string format.btitle () +% { +% return emphasize(format.title()); +% } +FUNCTION {format.btitle} +{ format.title emphasize +} + +% Title formatting (e.g. conference proceedings). +% If the 'booksubtitle' element is used, it is connected to the contents +% of the 'booktitle' element using ": ". The title is then properly capitalized +% and emphasized by italic type. +% +% string format.from.btitle () +% { +% if (empty$(booktitle)) +% { +% warning$(empty booktitle in " * cite$()); +% push(""); +% } else +% { +% push(capitalize(booktitle)); +% if (empty$(booksubtitle)) +% { } else +% { +% push(pop() * opt.sep.t * booksubtitle); +% } +% } +% return emphasize(pop()); +% } +FUNCTION {format.from.btitle} +{ booktitle empty$ + { "empty booktitle in " cite$ * warning$ + "" + } + { booktitle capitalize + booksubtitle empty$ + 'skip$ + { opt.sep.t * booksubtitle * } + if$ + } + if$ + emphasize +} + +% Medium type formatting (howpublished). +% +% string format.howpublished () +% { +% if (empty$(howpublished)) +% { +% return ""; +% } else +% { +% if (change.case(howpublished, "l") == "cd") +% { +% push("CD-ROM"); +% } else +% { +% if (change.case(howpublished, "l") == "online") +% { +% push("online"); +% } else +% { +% push(howpublished); +% } +% } +% return "[" * pop() * "]"; +% } +% } +FUNCTION {format.howpublished} +{ howpublished empty$ + { "" } + { howpublished "l" change.case$ "cd" = + { "CD-ROM" } + { howpublished "l" change.case$ "online" = + { "online" } + { howpublished } + if$ + } + if$ + "[" swap$ * "]" * + } + if$ +} + +% Edition formatting. //TODO num +% +% string format.edition () +% { +% if (empty$(edition)) +% { +% push(""); +% } else +% { +% if (edition = 1 or edition = 21 or edition = 31) +% { +% push(edition * "st ed."); +% } else +% { +% if (edition = 2 or edition = 22 or edition = 23) +% { +% push(edition * "nd ed."); +% } else +% { +% if (edition = 3 or edition = 23 or edition = 33) +% { +% push(edition * "rd ed."); +% } else +% { +% push(edition * "th ed."); +% } +% } +% } +% } +% if (!empty$(version)) +% { +% push(comma.connect(pop(), version)); +% } +% return pop(); +% } +FUNCTION {format.edition} +{ edition empty$ + { "" } + { edition "1" = + edition "21" = + edition "31" = + or or + { edition "st ed." * } + { edition "2" = + edition "22" = + edition "32" = + or or + { edition "nd ed." * } + { edition "3" = + edition "23" = + edition "33" = + or or + { edition "rd ed." * } + { edition "th ed." * } + if$ + } + if$ + } + if$ + } + if$ + howpublished empty$ + 'skip$ + { version empty$ + 'skip$ + { version comma.connect } + if$ + } + if$ +} + +% Month and year formatting. +% +% string format.date () +% { +% if (empty$(month)) +% { +% if (empty$(year)) +% { +% warning$("empty year in " * cite$()); +% return ""; +% } else +% { +% return year; +% } +% } else +% { +% if (empty$(year)) +% { +% warning$("just month (empty year) in " * cite$()); +% return ""; +% } else +% { +% if (is.ord(month)) +% { +% return get.month.n(str.to.int(month)) * " " * year; +% } else +% { +% return month * " " * year; +% } +% } +% } +% } +FUNCTION {format.date} +{ month empty$ + { year empty$ + { "" + "empty year in " cite$ * warning$ } + { year } + if$ + } + { year empty$ + { "" + "just month (empty year) in " cite$ * warning$ } + { month duplicate$ is.ord + { str.to.int get.month.n " " * year * } + { " " * year * } + if$ + } + if$ + } + if$ +} + +% Recognition and conversion of date from '!yyyy-mm-dd' format. +% +% string format.full.date (string date) +% { +% string t = date; +% if (text.length$(t) == 10) +% { +% if ( (is.ord(substring$(t, 1, 4))) && (substring$(t, 5, 1) == "-") && +% (is.ord(substring$(t, 6, 2))) && (substring$(t, 8, 1) == "-") && +% (is.ord(substring$(t, 9, 2))) ) +% { +% if (substring$(t, 9, 1) == "0") +% { +% if (substring$(t, 10, 1) == "0") +% { +% warning$("day must be between 1 and 31 in " * cite$()); +% } else { } +% push(substring$(t, 10, 1) * ".~"); +% } else +% { +% if ( ((chr.to.int$(substring$(t, 9, 1)) - 48) > 3) || +% ((substring$(t, 9, 1) == "3") && +% ((chr.to.int$(substring$(t, 10, 1)) - 48) > 1)) ) +% { +% pop(); +% push(t); +% warning$("day must be between 1 and 31 in " * cite$()); +% } else { } +% push(substring$(t, 9, 2) * ".~"); +% } +% if (substring$(t, 6, 1) == "0") +% { +% if (substring$(t, 7, 1) == "0") +% { +% pop(); +% push(t); +% warning$("month must be between 1 and 12 in " * cite$()); +% } else +% { +% return pop() * get.month.g(chr.to.int$(substring$(t, 7, 1)) - 48) * +% " " * substring$(t, 1, 4)); +% } +% } else +% { +% if ( (substring$(t, 6, 1) == "1") && +% ((chr.to.int$(substring$(t, 7, 1)) - 48) < 3) ) +% { +% return pop() * get.month.g(chr.to.int$(substring$(t, 7, 1)) +% - 48 + 10) * " " * substring$(t, 1, 4)); +% } else +% { +% pop(); +% push(t); +% warning$("month must be between 1 and 12 in " * cite$()); +% } +% } +% } else +% { +% return t; +% } +% } else +% { +% return t; +% } +% } +FUNCTION {format.full.date} +{ 't := + t text.length$ #11 = + { t #1 #1 substring$ "!" = + t #2 #4 substring$ is.ord + t #6 #1 substring$ "-" = + t #7 #2 substring$ is.ord + t #9 #1 substring$ "-" = + t #10 #2 substring$ is.ord + and and and and and + { t #10 #1 substring$ "0" = + { t #11 #1 substring$ "0" = + { "day must be between 1 and 31 in " cite$ * warning$ } + 'skip$ + if$ + t #11 #1 substring$ ".~" * + } + { t #10 #1 substring$ chr.to.int$ #48 - #3 > + t #10 #1 substring$ "3" = + t #11 #1 substring$ chr.to.int$ #48 - #1 > + and or + { pop$ t "day must be between 1 and 31 in " cite$ * warning$ } + 'skip$ + if$ + t #10 #2 substring$ ".~" * + } + if$ + t #7 #1 substring$ "0" = + { t #8 #1 substring$ "0" = + { pop$ t "month must be between 1 and 12 in " cite$ * warning$ } + { t #8 #1 substring$ chr.to.int$ #48 - get.month.g * + " " * t #2 #4 substring$ * + } + if$ + } + { t #7 #1 substring$ "1" = + t #8 #1 substring$ chr.to.int$ #48 - #3 < + and + { t #8 #1 substring$ chr.to.int$ #48 - #10 + get.month.g * + " " * t #2 #4 substring$ * + } + { pop$ t "month must be between 1 and 12 in " cite$ * warning$ } + if$ + } + if$ + } + { t } + if$ + } + { t } + if$ +} + +% Returns data from revision date of an electronic document. +% +% string format.revised () +% { +% if (empty$(howpublished)) +% { +% return ""; +% } else +% { +% if (empty$(revised)) +% { +% return ""; +% } else +% { +% return revised; +% } +% } +% } +FUNCTION {format.revised} +{ howpublished empty$ + { "" } + { revised empty$ + { "" } + { revised } + if$ + } + if$ +} + +% Formatting data from revision date of an electronic document. +% +FUNCTION {format.cited} +{ cited empty$ + { "" } + { cited format.full.date + "[cit. " swap$ * "]" * + } + if$ +} + +% Formatting of publisher information. +% +% string format.publish.info () +% { +% if ( (empty$(address)) && (empty$(publisher)) ) +% { +% string s = ""; +% } else +% { +% if (empty$(address)) +% { +% s = "[b.m.]: "; +% } else +% { +% s = address * ": "; +% } +% if (empty$(publisher)) +% { +% s = s * "[b.n.]"; +% } else +% { +% s = s * publisher; +% } +% } +% return s; +% } +FUNCTION {format.publish.info} +{ address empty$ + publisher empty$ + and + { "" } + { address empty$ + { "" } + { address opt.sep.p * } + if$ + publisher empty$ + { "[b.n.]" * } + { publisher * } + if$ + } + if$ +} + +% Publication page range formatting. +% +% string format.range () +% { +% if (empty$(pages)) +% { +% return ""; +% } else +% { +% return tie.or.connect(pages, "p."); +% } +% } +FUNCTION {format.range} +{ pages empty$ + { "" } + { pages "p." tie.or.connect } + if$ +} + +% Conference proceedings volume and number formatting +% +% string format.cvolume () +% { +% if (empty$(volume)) +% { +% push(""); +% } else +% { +% if (is.ord(volume)) +% { +% push("vol. " * volume); +% } else +% { +% push(volume); +% } +% } +% if (empty$(number)) +% { +% return pop(); +% } else +% { +% if (is.ord(number)) +% { +% return comma.connect(pop(), "no. " * number); +% } else +% { +% return comma.connect(pop(), number); +% } +% } +% } +FUNCTION {format.cvolume} +{ volume empty$ + { "" } + { volume is.ord + { "vol. " volume * } + { volume } + if$ + } + if$ + number empty$ + { + "" comma.connect + } + { number is.ord + { "no. " number * comma.connect } + { number comma.connect } + if$ + } + if$ +} + + +% Conference proceedings or book series and edition number formatting +% +% string format.cseries () +% { +% if (empty$(series)) +% { +% return ""; +% } else +% { +% push(capitalize(series)); +% if (empty$(editionnumber)) +% { } else +% { +% if (is.ord(editionnumber)) +% { +% return comma.connect(pop(), "no. " * editionnumber); +% } else +% { +% return comma.connect(pop(), editionnumber); +% } +% } +% } +% } +FUNCTION {format.cseries} +{ series empty$ + { "" } + { series capitalize + editionnumber empty$ + 'skip$ + { editionnumber is.ord + { "no. " editionnumber * comma.connect } + { editionnumber comma.connect } + if$ + } + if$ + } + if$ +} + + +% Availability formatting. +% +% string format.url () +% { +% if (empty$(url)) +% { +% return ""; +% } else +% { +% return tie.or.connect(opt.url(), "\small{\url{" * url * ".}}"); +% } +% } +FUNCTION {format.url} +{ url empty$ + { "" } + { opt.url "{\small\url{" url * "}}" * tie.or.connect } + if$ +} + +% Path formatting. +% +% string format.pah () +% { +% if (empty$(path)) +% { +% return ""; +% } else +% { +% return opt.path * path; +% } +% } +FUNCTION {format.path} +{ path empty$ + { "" } + { opt.path path * } + if$ +} + +% ISBN formatting. +% +% string format.isbn () +% { +% if (empty$(isbn)) +% { +% return ""; +% } else +% { +% return "ISBN " * isbn; +% } +% } +FUNCTION {format.isbn} +{ isbn empty$ + { "" } + { "ISBN " isbn * } + if$ +} + +% Serial publication title formatting. +% +% string format.journal () +% { +% if (empty$(journal)) +% { +% return ""; +% } else +% { +% return emphasize(journal); +% } +% } +FUNCTION {format.journal} +{ journal empty$ + { "" } + { journalsubtitle empty$ + { journal capitalize emphasize } + { journal capitalize emphasize + opt.sep.t * journalsubtitle emphasize *} + if$ + } + if$ +} + +% Location in source document formatting. +% +% string format.pages () +% { +% if (empty$(pages)) +% { +% return ""; +% } else +% { +% return "p.~" * dashify(pages); +% } +% } +FUNCTION {format.pages} +{ pages empty$ + { "" } + { "p.~" pages dashify * } + if$ +} + +FUNCTION {format.chapter} +{ chapter empty$ + { "" } + { "chap.~" chapter * } + if$ +} + +% Formatting of date of publication, year, number of publication + revision/update dated +% + date of citation + location in source document (page range). +% +% string format.journal.issue () +% { +% string s; +% if (empty$(format.date())) +% { +% s = ""; +% } else +% { +% s = format.date(); +% } +% if (!empty$(volume)) +% { +% if (is.ord(volume)) +% { +% s = comma.connect(s, "vol.~" * volume); +% } else +% { +% s = comma.connect(s, volume); +% } +% } +% if (empty$(number)) +% { +% warning$("empty number in " * cite$); +% } else +% { +% if (is.ord(number)) +% { +% s = comma.connect(s, "no.~" * number); +% } else +% { +% s = comma.connect(s, number); +% } +% } +% if (s == "") +% { +% warning$("empty journal issue info in " * cite$); +% return ""; +% } else +% { +% return s; +% } +% } +FUNCTION {format.journal.issue} +{ format.date + duplicate$ empty$ + { pop$ "" 's := } + { 's := } + if$ + volume empty$ + 'skip$ + { volume is.ord + { "vol.~" volume * + s swap$ comma.connect 's := + } + { s volume comma.connect 's := } + if$ + } + if$ + number empty$ + { "empty number in " cite$ * warning$ } + { number is.ord + { "no.~" number * + s swap$ comma.connect 's := + } + { s number comma.connect 's := } + if$ + } + if$ + s empty$ + { "empty journal issue info in " cite$ * warning$ + "" + } + { s } + if$ +} + +% ISSN formatting. +% +% string format.issn () +% { +% if (empty$(issn)) +% { +% return ""; +% } else +% { +% return "ISBN " * issn; +% } +% } +FUNCTION {format.issn} +{ issn empty$ + { "" } + { "ISSN " issn * } + if$ +} + +% DOI formatting. +% +% string format.doi () +% { +% if (empty$(doi)) +% { +% return ""; +% } else +% { +% return "DOI: " * doi; +% } +% } +FUNCTION {format.doi} +{ doi empty$ + { "" } + { "DOI: " doi * } + if$ +} + +% Volume number formatting -- identifying a section for @InBook. +% +% string format.vol () +% { +% if (empty$(volume)) +% { +% push(""); +% } else +% { +% if (is.ord(volume)) +% { +% push("vol.~" * volume); +% } else +% { +% push(volume); +% } +% } +% return capitalize(pop()); +% } +FUNCTION {format.vol} +{ volume empty$ + { "" } + { volume is.ord + { "vol.~" volume * } + { volume } + if$ + } + if$ + capitalize +} + +% Formats basic information (author and title) about conference proceedings for +% bibliographic citation of a paper in said proceedings. +% +% In opt.sep.a() . +% +% If is empty, nothing is printed out. +% +% void conference.basics () +% { +% if (empty$(editor)) +% { +% if (empty$(organization)) +% { +% warning$("empty editor and organization in " * cite$()); +% push(""); +% } else +% { +% if ((substring$(organization, -1, 1) == opt.sep.a()) +% { +% push(capitalize(organization)); +% } else +% { +% push(capitalize(organization * opt.sep.a())); +% } +% } +% } else +% { +% if ((substring$(format.editors(), -1, 1) == opt.sep.a()) +% { +% push(format.editors()); +% } else +% { +% push(capitalize(format.editors() * opt.sep.a())); +% } +% } +% push(tie.or.connect("In:", pop())); +% if (empty$(format.from.btitle())) +% { +% pop(); +% push(""); +% } else +% { +% push(pop() * format.from.btitle()); +% } +% return pop(); +% } +FUNCTION {conference.basics} +{ editor empty$ + { organization empty$ + { "empty editor and organization in " cite$ * warning$ + "" + } + { organization capitalize + duplicate$ #-1 #1 substring$ opt.sep.a = + 'skip$ + { opt.sep.a * } + if$ + } + if$ + } + { format.editors + duplicate$ #-1 #1 substring$ opt.sep.a = + 'skip$ + { opt.sep.a * } + if$ + } + if$ + "In:" swap$ tie.or.connect + format.from.btitle + duplicate$ empty$ + { pop$ } + { tie.or.connect } + if$ +} + + +% Formats information about a thesis (bachelor's, dissertation etc). +% The elements used to create a bibliographic citation are different from +% regular publishing information. +% +% string format.thesis.info () +% { +% string s = ""; +% if ( (empty$(address)) && (empty$(location)) && (empty$(school)) ) +% { +% warning$("empty address and school in " * cite$()); +% } else +% { +% if (empty$(address)) +% { +% } else +% { +% s = address; +% } +% if (empty$(location)) +% { +% } else +% { +% s = location; +% } +% if (empty$(year)) +% { +% warning$("empty year in " * cite$()); +% } else +% { +% if (empty$(s)) +% { +% s = year; +% } else +% { +% s = comma.connect(s, year); +% } +% } +% } +% return s; +% } +FUNCTION {format.thesis.info} +{ "" 's := + address empty$ + location empty$ + school empty$ + and + and + { "empty address and school in " cite$ * warning$ } + { address empty$ + 'skip$ + { address 's := } + if$ + location empty$ + 'skip$ + { location 's := } + if$ + year empty$ + { "empty year in " cite$ * warning$ } + { s empty$ + { year 's := } + { s year comma.connect 's := } + if$ + } + if$ + } + if$ + s +} + +% Formatuje informace o skole v akademicke (diplomova, dizertacni atp.) praci. +% +% string format.thesis.school () +% { +% string s = ""; +% if (empty$(school)) +% { +% warning$("empty school in " * cite$()); +% } else +% { +% if (empty$(s)) +% { +% s = school; +% } else +% { +% s = s * ". " * school; +% } +% } +% return s; +% } +FUNCTION {format.thesis.school} +{ "" 's := + school empty$ + { "empty school in " cite$ * warning$ } + { s empty$ + { school 's := } + { s ". " * school * 's := } + if$ + } + if$ + s +} + +% Formatting of number of pages and appendices in theses. +% +% string format.thesis.range () +% { +% if ( (empty$(format.range())) && (!empty$(inserts)) ) +% { +% return format.range(); +% } else +% { +% if (is.ord(inserts)) +% { +% return comma.connect(format.range(), inserts * " apps."); +% } else +% { +% return comma.connect(format.range(), inserts); +% } +% } +% } +FUNCTION {format.thesis.range} +{ pages empty$ + { "" 's := } + { pages opt.pages tie.or.connect 's := } + if$ + s empty$ + { "" } + { inserts empty$ + { s } + { s inserts opt.pages tie.or.connect " apps." * comma.connect } + if$ + } + if$ +} + +% Thesis type formatting. +% +% string format.thesis.type (string basic.thesis.type) +% { +% if (empty$(type)) +% { +% return basic.thesis.type; +% } else +% { +% return capitalize(type); +% } +% } +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ type capitalize } + if$ +} + + +% Formatting of type and number of technical report. +% +% string format.report.type () +% { +% if (empty$(type)) +% { +% push(""); +% } else +% { +% push(type); +% } +% if (empty$(number)) +% { +% } else +% { +% space.connect(pop(), number); +% } +% } +FUNCTION {format.report.type} +{ type empty$ + { "" } + { type } + if$ + number empty$ + 'skip$ + { number space.connect } + if$ +} + + +% Checks if all elements used for @MISC record are empty. +% +% int empty.misc.check () +% { +% if ( (empty$(author)) && (empty$(title)) && (empty$()) && +% (empty$(howpublished)) && (empty$(month)) && (empty$(year)) && +% (empty$(note)) && (!empty$(key)) ) +% { +% warning$("all misc relevant fields are empty in " * cite$()); +% return 1; +% } else +% { +% return 0; +% } +% } +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all misc relevant fields are empty in " cite$ * warning$ + #1 + } + { #0 } + if$ +} + + +% Formats place of publication and institution of a technical report. +% +% string format.report.details () +% { +% if ( empty$(institution) ) +% { +% if ( empty$(address) && empty$(organization) ) +% { +% return ""; +% } else +% { +% if (empty$(address)) +% { +% push(""); +% } else +% { +% push(opt.sep.a() * " " * address * opt.sep.p()); +% } +% if (empty$(organization)) +% { +% warning$("empty organization in " * cite$()); +% } else +% { +% return pop() * organization; +% } +% } +% } else +% { +% if ( empty$(address) && empty$(institution) ) +% { +% return ""; +% } else +% { +% if (empty$(address)) +% { +%% push("[b.m.]"); +% push(""); +% } else +% { +% push(opt.sep.a() * " " * address * opt.sep.p()); +% } +% if (empty$(institution)) +% { +% warning$("institution is empty in " * cite$()); +% } else +% { +% return pop() * institution; +% } +% } +% } +% } +FUNCTION {format.report.details} +{ institution empty$ + { + address empty$ + organization empty$ + and + { "" } + { address empty$ + { "" } + { address } + if$ + organization empty$ + { "empty organization in " cite$ * warning$ } + { address empty$ + { organization * } + { opt.sep.p * organization * } + if$ + } + if$ + } + if$ + } + { + address empty$ + institution empty$ + and + { "" } + { address empty$ + { "" } + { address } + if$ + institution empty$ + { "empty institution in " cite$ * warning$ } + { address empty$ + { institution * } + { opt.sep.p * institution * } + if$ + } + if$ + } + if$ + } + if$ +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%% CODE -- FUNCTIONS FOR RECORD PROCESSING %%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% Processes @Article type records. +% Bibliographic citations of an article in a serial publication (magazine article). +% +% Required elements: author, title, journal, edition, year, volume, number, pages, issn +% Optional elements: subtitle, journalsubtitle, publisher, address, contributory, url*, month, note, doi +% Elements of el. doc.: howpublished*, revised*, cited*, version +% +% * Required element for el. doc. +FUNCTION {article} +{ output.bibitem + format.authors + duplicate$ empty$ + { pop$ + "empty author in " cite$ * warning$ + } + { output.authors } + if$ + new.block %% author (required) + format.title "title" output.check + new.block %% journal title (required) + format.journal "journal" output.check + format.howpublished output + new.block + format.edition "edition" output.check + new.block %% edition (required) + contributory capitalize output + new.block %% contributory (optional) + format.publish.info output + new.block + format.journal.issue + format.pages comma.connect + format.revised comma.connect + format.cited comma.connect output + new.block %% location in source document (required) + format.cseries output + new.block + format.doi output + new.block + format.issn output %% standard number ISSN (optional) + new.block + note output + new.block %% poznamky (volitelne) + howpublished empty$ + { format.url output } + { format.url "url" output.check + year empty$ + revised empty$ + and + { "empty year and revised in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + fin.entry +}% @Article + +% Processes @Book type record. +% Bibliographic citation of a monographic publication (book). +% +% Required elements: author nebo editor, title, edition, address, publisher, year, isbn +% Optional elements: subtitle, contributory, month, pages, series, number nebo volume, note, url* +% Elements of el. doc.: howpublished*, revised*, cited*, version +% +% * Required element for el. doc. +FUNCTION {book} +{ output.bibitem + author.or.editor + new.block %% author (required) + format.btitle "book title" output.check + format.howpublished output + new.block %% title (required) and medium type (required for el. doc.) + format.edition capitalize "edition" output.check + new.block %% edition (required) + contributory capitalize output + new.block %% secondary author(s) (optional) + format.publish.info + format.date comma.connect + format.revised comma.connect + format.cited tie.or.connect + capitalize output + new.block %% publisher information (optional), date of publication (required), + %% date of revision/update and citation (required for el. doc.) + format.range output + new.block %% pages (optional) + format.cseries output + new.block %% series (optional) + format.isbn "isbn" output.check + new.block + note capitalize output + new.block %% notes (optional) + howpublished empty$ + { format.url output } + { format.url "url" output.check + year empty$ + revised empty$ + and + { "empty year and revised in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + fin.entry %% standard number ISBN (required) +}% @Book + +% @Booklet is merely a reference to @Book. +FUNCTION {booklet} { book } + +% Processes @Conference and @InProceedings, InCollection and @InBook type records. +% Bibliographic citation of conference proceedings entry (paper). +% +% Required elements: author, title, editor nebo organization, booktitle, +% edition, address, publisher, year, pages, isbn or issn. +% Optional elements: subtitle, booksubtitle, contributory, month, series, editionnumber, chapter, number nebo volume, note, doi url*. +% Elements of el. doc.: howpublished*, revised*, cited*, version. +% +% * Required element for el. doc. +FUNCTION {conference} +{ output.bibitem + author.or.editor + new.block %% author (required) + format.title "title" output.check + new.block %% title + conference.basics + format.howpublished tie.or.connect output + new.block %% editor and title of proceedings +% format.edition "edition" output.check + format.edition output + new.block %% edition + contributory capitalize output + new.block %% podrizena odpovednost (volitelna) + format.publish.info + format.date capitalize comma.connect + format.cvolume comma.connect + format.chapter comma.connect + format.pages comma.connect + format.revised comma.connect + format.cited tie.or.connect + capitalize output + new.block %% publisher information, date of publication, revision/update and citation + format.cseries output + new.block %% series (if numbered, include number or volume) + format.doi output + new.block + isbn empty$ + { issn empty$ + { "empty isbn and issn in " cite$ * warning$ } + { format.issn output } + if$ + } + { format.isbn output } + if$ + new.block %% standard numbers ISBN or ISSN (required) + note capitalize output + new.block %% notes + howpublished empty$ + { format.url output } + { format.url "url" output.check + year empty$ + revised empty$ + and + { "empty year and revised in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + fin.entry +} % @Conference and @InProceedings, @InCollection and @InBook + +% @InProceedings is simply a reference to @Conference. +FUNCTION {inproceedings} { conference } +FUNCTION {incollection} { conference } +FUNCTION {inbook} { conference } + +% Processes @Proceedings type of records. +% +% Bibliographic citation of monographies (books, proceedings and such). +% +% Required elements: author or editor, title, edition, year, isbn or issn. +% Optional elements: subtitle, contributory, address, publisher, month, series, number or volume, note, doi, url*. +% Elements of el. doc.: howpublished*, revised*, cited*, version. +% +% * Required element for el. doc. +FUNCTION {proceedings} +{ output.bibitem + author.or.editor + new.block %% primary author(s) (required) + format.btitle + format.howpublished tie.or.connect output + new.block %% primary author and title of proceedings +% format.edition "edition" output.check + format.edition output + new.block %% edition + contributory capitalize output + new.block %% secondary author(s) (optional) + format.publish.info + format.date capitalize comma.connect + format.cvolume comma.connect + format.chapter comma.connect + format.pages comma.connect + format.revised comma.connect + format.cited tie.or.connect + capitalize output + new.block %% publishing information, date of publication, revision/update and citation + format.cseries output + new.block %% series (if numbered, then include it's number or volume) + format.doi output + new.block + isbn empty$ + { issn empty$ + { "empty isbn and issn in " cite$ * warning$ } + { format.issn output } + if$ + } + { format.isbn output } + if$ + new.block %% ISBN or ISSN (required) + note capitalize output + new.block %% notes + howpublished empty$ + { format.url output } + { format.url "url" output.check + year empty$ + revised empty$ + and + { "empty year and revised in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + fin.entry +} % @Proceedings + + +% Processes @Misc, @Webpage and @Website type records. +% +% Required elements: At least one of the optional elements! +% Optional elements: author, secondarytitle, title, subtitle, howpublished, contributory, edition, month, doi, issn +% year, revised*, cited, note, url, version +% +% Note: Displays warning if the year element is not used. Should not call format.date +FUNCTION {misc} +{ empty.misc.check + 'skip$ + { output.bibitem + format.authors + duplicate$ empty$ + { pop$ + } + { output.authors } + if$ + new.block + secondarytitle output + new.block + format.btitle "title" output.check + format.howpublished output + new.block + contributory capitalize output + new.block %% secondary author(s) (optional) + format.edition output + new.block + format.publish.info + edition empty$ + address empty$ + publisher empty$ + and + and + { + output + day empty$ + { format.date capitalize output } + { day ". " * format.date * comma.connect output } + if$ + } + { + day empty$ + { format.date comma.connect output } + { day ". " * format.date * comma.connect output } + if$ + } + if$ + time output + revised empty$ + 'skip$ + { + new.block + format.revised output + } + if$ + format.cited makesmall output + new.block + format.doi output + new.block + format.issn output %% standardni cislo ISSN (volitelne) + new.block + note capitalize makesmall output + new.block + howpublished empty$ + { format.url output } + { format.url "url" output.check + year empty$ + revised empty$ + and + { "empty year and revised in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + new.block + format.path output + fin.entry + } + if$ +}%@Misc and @Webpage and @Website +% @Webpage and @Website are merely references to @Misc. +FUNCTION {webpage} { misc } +FUNCTION {website} { misc } + + +% Processes @Manual, @TechReport and @Unpublished type records.. +% +% Required elements: author, title, edition, address, organization or institution, month, year, revised +% Optional elements: note, number, url* +% Elements of el. doc.: howpublished*, cited* +% +% Note: * Required element for el. doc. +FUNCTION {techreport} +{ output.bibitem + author.or.editor + new.block %% author (required) + format.btitle "title" output.check + format.howpublished output + new.block + format.report.type + format.edition capitalize comma.connect output + new.block + contributory capitalize output + new.block %% podrizena odpovednost (volitelna) + format.report.details + format.date comma.connect + format.revised comma.connect + format.cited tie.or.connect + capitalize output + new.block %% publishing institution information (optional) and date of publication (required) + format.range output + new.block %% number of pages (optional) + note capitalize output + new.block %% notes (optional) + format.url output + new.block %% availability (optional) + fin.entry +}%@Manual, @TechReport and @Unpublished +FUNCTION {manual} { techreport } +FUNCTION {unpublished} { techreport } + +% Processes @BachelorsThesis, @MastersThesis and @PhdThesis type records. +% Bibliographic citation of theses (bachelor's, master's and dissertation). +% +% Default version -- value #0 in choose.thesis. +% +% Required elements: author, title, address or location, school, year, type +% Optional elements: subtitle, pages, inserts, note, url, isbn, howpublished +FUNCTION {thesis} +{ output.bibitem + format.authors + duplicate$ empty$ + { pop$ + "empty author in " cite$ * warning$ + } + { output.authors } + if$ + new.block %% author (required) + format.btitle "title" output.check + format.howpublished output + new.block %% title (required) + format.thesis.info capitalize output + new.block %% school and year (required) + format.cited makesmall output + new.block %% cited + format.thesis.range output + new.block %% number of pages and appendices (optional) + type$ "l" change.case$ + duplicate$ "bachelorsthesis" = + { pop$ "Bachelor's thesis" } + { "mastersthesis" = + { "Master's thesis" } + { "Dissertation" } + if$ + } + if$ + format.thesis.type output + new.block %% thesis type (optional -- implicit type used) + format.thesis.school output + new.block + format.isbn output + new.block + format.supervisor output + note capitalize output + new.block + format.url output + fin.entry %% standard number ISBN (optional) +}%@BachelorsThesis, @MastersThesis a @PhdThesis + +% @BachelorsThesis type records are processed by thesis function. +FUNCTION {bachelorsthesis}{ thesis } + +% @MastersThesis type records are processed by thesis function. +FUNCTION {mastersthesis} { thesis } + +% @PhdThesis type records are processed by thesis function. +FUNCTION {phdthesis} { thesis } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%% SLIGHTLY EDITED FUNCTIONS TAKEN FROM plain.bst %%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% loads bibliographic database +READ + +% Prepares sorting value -- applies built-in function purify$ and converts +% to small letters. +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +% Declaration of another integer variable. +INTEGERS { len } + +% Returns only a part of input value. +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +% Prepares names for sorting. +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ +% s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + s nameptr "{ll{ }}{ ff{ }}{ vv{ }}" format.name$ 't := %% Zamena! + nameptr numnames = t "others" = and + { opt.etal * } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +% Prepares titles for sorting. +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} + +% Sort by author. +FUNCTION {author.sort} +{ key empty$ + { author empty$ + editor empty$ + and + { "to sort, need author or key in " cite$ * warning$ + "" + } + { author empty$ + { editor sort.format.names } + { author sort.format.names } + if$ + } + if$ + } + { key sortify } + if$ +} +% Dytrych: Původní funkce upřednostní jméno před klíčem a ten pak nelze použít k opravě českého řazení. +% FUNCTION {author.sort} +% { author empty$ +% { key empty$ +% { "to sort, need author or key in " cite$ * warning$ +% "" +% } +% { key sortify } +% if$ +% } +% { author sort.format.names } +% if$ +% } + +% Sort by editor. +FUNCTION {author.editor.sort} +{ key empty$ + { author empty$ + { editor empty$ + { "to sort, need author, editor, or key in " cite$ * warning$ + "" + } + { editor sort.format.names } + if$ + } + { author sort.format.names } + if$ + } + { key sortify } + if$ +} +% FUNCTION {author.editor.sort} +% { author empty$ +% { editor empty$ +% { key empty$ +% { "to sort, need author, editor, or key in " cite$ * warning$ +% "" +% } +% { key sortify } +% if$ +% } +% { editor sort.format.names } +% if$ +% } +% { author sort.format.names } +% if$ +% } + +% Sort by author, editor or organization. Unused function. +FUNCTION {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +% Sort by editor or organization. Unused function. +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +% Prepare for sorting. +% +% Function is edited version of the original function in plain.bst. +FUNCTION {presort} +{ type$ "book" = + type$ "inbook" = + or + { author.editor.sort } + { author.sort } + if$ + " " * + year field.or.null sortify * + " " * + title field.or.null + sort.format.title * + #1 entry.max$ substring$ + 'sort.key$ := +} + +% Executes preparation before sort. +ITERATE {presort} + +% Executes sort. +SORT + +% Declaration of string variable used to identify the longest label for bib.cit. +STRINGS { longest.label } + +% Declaration of auxiliary numerical variables. +INTEGERS { number.label longest.label.width } + +% Initialization of auxiliary variables. +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +% Passes longest label. +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +% Executes initialization of auxiliary variables. +EXECUTE {initialize.longest.label} + +% Selects longest label. +ITERATE {longest.label.pass} + +% This function handles first rows, that appear in output file. +% +% This function is extended with a conditional definition of \url{} command. +FUNCTION {begin.bib} +{ "\makeatletter" write$ newline$ +%%% "\@ifundefined{url}" +%%% "{\def\url#1{{\tt $<$#1$>$}}}" * +%%% "{\DeclareUrlCommand\url{\def\UrlLeft{<} \def\UrlRight{>} \urlstyle{tt}}}" * +%%% write$ newline$ + "\makeatother" write$ newline$ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +% Functions writes last lines to output file -- closes environment thebibliography. +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +% Inserts the beginning of thebibliography environment to the output file. +EXECUTE {begin.bib} + +% Executes initialization of necessary constants. +EXECUTE {init.state.consts} + +% Processes all cited records. +ITERATE {call.type$} + +% Closes thebibliography environment. +EXECUTE {end.bib} diff --git a/overleaf/bib-styles/Pysny/skplain.bst b/overleaf/bib-styles/Pysny/skplain.bst new file mode 100644 index 0000000..c673c9b --- /dev/null +++ b/overleaf/bib-styles/Pysny/skplain.bst @@ -0,0 +1,3244 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Projekt: IBP - Bakalarska prace +% Nazev prace: BibTeX styl pro CSN ISO 690 a CSN ISO 690-2 +% Autor: Radek Pysny, xpysny00 +% Prelozil: Jaroslav Dytrych +% URI: http://www.fit.vutbr.cz/study/DP/BP.php?id=7848 +% +% Soubor: skplain.pst vznikl překladem czplain.bst, který vznikl upravou plain.bst +% Datum: Vytvoren 31. cervence 2019. +% Posledni uprava 10. kveten 2009, 16:55. +% Adam Herout upravil pro šablonu BP/DP FIT: 31.7.2019 +% Jaroslav Dytrych uvedl do souladu s normou +% pro šablonu BP/DP FIT: 10.10.2019 +% Popis: Slovenský bibliograficky styl. +% Pouziti: +% Kodovani: UTF-8 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%% VOLBY PRO NASTAVENI BIBLIOGRAFICKEHO STYLU %%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% -- Maximalni pocet zpracovanych autoru. +% Pokud obsahuje polozka author seznam o vice nez opt.aa autoru, objevi se +% v bibliograficke citaci prave opt.aa autoru. Tento vycet autoru bude zakoncen +% retezcem urcenym volbou opt.etal. +% FUNCTION {opt.aa} { #3 } +% FUNCTION {opt.aa} { #4 } +FUNCTION {opt.aa} { #5 } +% FUNCTION {opt.aa} { #99 } + +% -- Maximalni pocet zpracovanych editoru. +% Analogie k volbe opt.aa. +% FUNCTION {opt.ae} { #1 } +% FUNCTION {opt.ae} { #2 } +% FUNCTION {opt.ae} { #3 } +% FUNCTION {opt.ae} { #4 } +FUNCTION {opt.ae} { #5 } + +% -- Oddelovac mezi jednotlivymi jmeny ve vyctu. +% Pouziva se pro spojeni jmen ve vyctu. Vyjimkou jsou posledni dve jmena, ktera +% jsou spojena pomoci retezce urceneho volbou opt.sep.ln. +FUNCTION {opt.sep.bn} { ", " } +% FUNCTION {opt.sep.bn} { " -- " } + +% -- Oddelovac mezi poslednimi dvema jmeny ve vyctu. +FUNCTION {opt.sep.ln} { " a~" } +% FUNCTION {opt.sep.ln} { " -- " } + +% -- Naznak nedokonceneho vyctu jmen. +% Pokud byl presazen pocet jmen danych limitujicimi volbami opt.aa nebo opt.ae. +% Dale se pouzije tehdy, kdyz je misto posledniho jmena pouzito klicove slovo +% "others". +FUNCTION {opt.etal} { "et~al." } +% FUNCTION {opt.etal} { "aj." } +% FUNCTION {opt.etal} { "a kol." } + +% -- Oznaceni editora (redaktora). +% Jmena editoru jsou od autoru odlisena retezcem danym touto volbou. +FUNCTION {opt.ed} { "ed." } +% FUNCTION {opt.ed} { "(ed.)" } +% FUNCTION {opt.ed} { "(red.)" } +% FUNCTION {opt.ed} { "" } + +% -- Pouzivat oznaceni editora (redaktora) za kazdym jmenem. +% Urcuje, kde se pouzije oznaceni opt.ed. Bud lze pouzit oznaceni za kazdym +% jmenem nebo jen na konci prvku. +FUNCTION {opt.ed.all} { #0 } % pouze na konci prvku +% FUNCTION {opt.ed.all} { #1 } % za kazdym jmenem + +% -- Oddelovac mezi prvky primarni odpovednost a titul. +FUNCTION {opt.sep.a} { "." } +% FUNCTION {opt.sep.a} { ":" } + +% -- Oddelovac mezi mistem a vydavatelem (popr. skolou nebo instituci). +FUNCTION {opt.sep.p} { ": " } +% FUNCTION {opt.sep.p} { " : " } +% FUNCTION {opt.sep.p} { ", " } + +% -- Oddelovac mezi titulem a podtitulem. +% Je-li zadan titul i podtitul, je tento retezec pouzit jako oddelovac mezi +% temito prvky. +FUNCTION {opt.sep.t} { ": " } +% FUNCTION {opt.sep.t} { " : " } + +% -- Oznaceni rozsahu u akademickych praci. +% U akademickych praci mate pomoci teto volby moznost urcit, zda-li bude rozsah +% techto praci udavan ve stranach nebo v listech. +FUNCTION {opt.pages} { "s." } % pocet stran +% FUNCTION {opt.pages} { "l." } % pocet listu + +% -- Zacatek prvku dostupnost. +% Tento prepinac ovlivnuje text, ktery bude zobrazen pred URL adresou. +% FUNCTION {opt.url} { "" } +% FUNCTION {opt.url} { "Dostupn{\'{e}} na: " } +FUNCTION {opt.url} { "Dostupn{\'{e}} z: " } +% FUNCTION {opt.url} { "Dostupn{\'{e}} na WWW: " } + +FUNCTION {opt.path} { "Path: " } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%% DEKLARACE POLOZEK A PROMENNYCH %%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% Polozky, ktere jsou stylem akceptovany a zpracovany. +ENTRY + { address + author + booktitle + booksubtitle % podtitul knihy (napr u sborniku) + cited % datum citace + contributory % podrizena odpovednost + day + doi + edition + editionnumber % cislo edice + editor + howpublished % druh nosice + chapter + institution + inserts % pocet stran priloh + isbn % standardni cislo + issn % standardni cislo + journal + journalsubtitle + key + location + month + note + number + organization + path + pages + publisher + revised % datum revize/aktualizace + secondarytitle % nazev vedlejsi webove stranky + school + series % nazev edice + subtitle % podtitul + supervisor % vedoucí (u akademické práce) + time % čas publikování + title + type + url % dostupnost + version % verze u el.dok. + volume + year + } + { } + { label } + +% Celocislene promenne. U kazde (krome konstant, ktere jsou pouze inicializovany +% ve funkci init.state.consts -- before.all, mid.sentence, after.sentence, +% after.block) jsou vyjmenovany funkce, kde dochazi ke zmenam dane promenne. +% +% output.state -- output.nonnull, output.bibitem, new.block, new.sentance +% +% ord -- is.ord +% +% ptr, i, x -- str.to.int +% +% numnames, namesleft, nameptr -- format.names, format.names.ed, +% sort.format.names +INTEGERS { output.state before.all mid.sentence after.sentence after.block + ord ptr i x numnames namesleft nameptr } + +% Retezcove promenne. U kazde jsou vyjmenovany funkce, kde je promenna menena. +% +% s -- output.nonnull, format.names, format.names.ed, format.journal.issue, +% format.thesis.info, format.thesis.range, chop.word, sort.format.names +% +% t -- output.check, dashify, str.to.int, format.names, format.names.ed, +% format.full.date, sort.format.names, sort.format.title +% +% u -- is.ord, tie.or.connnect, comma.connect +STRINGS { s t u } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%% DEFINICE ZKRATEK -- CESKE NAZVY MESICU %%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +MACRO {jan} {"janu\'{a}r"} + +MACRO {feb} {"febru\'{a}r"} + +MACRO {mar} {"marec"} + +MACRO {apr} {"apr\'{i}l"} + +MACRO {may} {"m\'{a}j"} + +MACRO {jun} {"j\'{u}n"} + +MACRO {jul} {"j\'{u}l"} + +MACRO {aug} {"august"} + +MACRO {sep} {"september"} + +MACRO {oct} {"okt\'{o}ber"} + +MACRO {nov} {"november"} + +MACRO {dec} {"december"} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%% MIRNE UPRAVENE FUNKCE PREVZATE Z plain.bst %%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% Inicializace konstant nutnych pro spravnou funkci samotneho stylu. +% +% void init.state.consts () +% { +% int before.all = 0; +% int mid.sentence = 1; +% int adter.sentence = 2; +% int after.block = 3; +% } +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := +} + +% Vystup jiz formatovaneho pole, ktere je urcite neprazdne. Format vystupu je +% ovlivnen vystupnim stavem (tj. stavovou promennou output.state). Samotny +% vystup je zpozdeny (k vytisteni aktualni hodnoty dojde az pri pristim volani +% teto funkce) kvuli rozhodovani o pouzitem oddelovaci (carka nebo tecka). +% +% void output.nonnull () +% { +% s = pop(); +% if (output.state == mid.sentence) +% { +% write(pop() * " "); // zde byla carka!!! +% } else +% { +% if (output.state == after.block) +% { +% write(add.period(pop())); +% flush(); +% write("\newblock "); +% } else +% { +% if (output.state == before.all) +% { +% write(pop()); +% } else +% { +% write(add.period(pop()) * " "); +% } +% } +% } +% push(s); +% } +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { " " * write$ } %% Uprava: Nahrada ", " za " "! + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + { write$ } + { add.period$ " " * write$ } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} + +% Pri vyskytu neprazdne hodnoty na vrcholu zasobniku provede jeji vystup pomoci +% funkce output.nonnull. V opacnem pripade ji jen odstrani ze zasobniku. +% +% /** prepis do pseudokodu bez vyuziti zasobniku **/ +% void output (string string.to.write) +% { +% if (empty$(string.to.write)) +% { } else +% { +% output.nonnull(string.to.write); +% } +% } +FUNCTION {output} +{ duplicate$ empty$ + { pop$ } + { output.nonnull } + if$ +} + +% Pri vyskytu neprazdne hodnoty na vrcholu zasobniku provede jeji vystup pomoci +% funkce output.nonnull. V opacnem pripade ji jen odstrani ze zasobniku +% a vypise na chybovy vystup varovani o chybejici hodnote. Pouziva se pro +% informovani uzivatele o chybejici hodnote, ktera je dle ceske normy povinna. +% +% /** prepis do pseudokodu bez vyuziti zasobniku **/ +% void output.check (string type.of.field string string.to.write) +% { +% t = type.of.field; +% if (empty$(string.to.write)) +% { +% warning$("empty" * t * " in " * cite$()) +% } else +% { +% output.nonnull(string.to.write); +% } +% } +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + { output.nonnull } + if$ +} + +% Vypise zacatek bibliograficke citace. +% +% void output.bibitem () +% { +% newline$(); +% write$("\bibitem{"); +% write$(cite$); +% write$("}"); +% newline$(); +% push(""); +% int output.state = before.all; +% } +FUNCTION {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +% Zakonceni polozky (teckou). +% +% void fin.entry () +% { +% write(add.period$(pop())); +% newline$(); +% } +FUNCTION {fin.entry} +{ add.period$ write$ + newline$ +} + +% Zmena stavu: {mid.sentence; after.sentence} => after.block. +% +% void new.block () +% { +% if (output.state == before.all) +% { } else +% { +% output.state = after.block; +% } +% } +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} + +% Zmena stavu: mid.sentence => after.sentence. +% +% void new.sentence () +% { +% if (output.state == after.block) +% { } else +% { +% if (output.state == before.all) +% { } else +% { +% output.state = after.sentence; +% } +% } +% } +FUNCTION {new.sentence} +{ output.state after.block = + 'skip$ + { output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ + } + if$ +} + +% Negace vyhodnocene podminky. +% +% int not (int bool) +% { +% if (bool) +% { +% return 0; // false +% } else +% { +% return 1; // true +% } +% } +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +% Logicky soucin dvou podminek. +% +% int and (int bool1, int bool2) +% { +% if (bool2) +% { +% return bool1; +% } else +% { +% return 0; +% } +% } +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +% Logicky soucet dvou podminek. +% +% int or (int bool1, int bool2) +% { +% if (bool2) +% { +% return 1; +% } else +% { +% return bool1; +% } +% } +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +% Zacatek noveho bloku pri neprazne hodnote na vrcholu zasobniku. +% +% void new.block.checka (int.or.string anything.from.the.top) +% { +% if (empty$(anything.from.the.top)) +% { } else +% { +% new.block(); +% } +% } +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + { new.block } + if$ +} + +% Zacatek noveho bloku pri 2 neprazdnych hodnotach z vrcholu zasobniku. +% +% void new.block.checkb (int.or.string anything.under.the.top, +% int.or.string anything.from.the.top) +% { +% if ( (empty$(anything.from.the.top)) && (empty$(anything.under.the.top)) ) +% { } else +% { +% new.block(); +% } +% } +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + { new.block } + if$ +} + +% Zacatek nove vety pri neprazne hodnote na vrcholu zasobniku. +% +% void new.sentence.checka (int.or.string anything.from.the.top) +% { +% if (empty$(anything.from.the.top)) +% { } else +% { +% new.sentence(); +% } +% } +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + { new.sentence } + if$ +} + +% Zacatek nove vety pri 2 neprazdnych hodnotach z vrcholu zasobniku. +% +% void new.sentence.checkb (int.or.string anything.under.the.top, +% int.or.string anything.from.the.top) +% { +% if ( (empty$(anything.from.the.top)) && (empty$(anything.under.the.top)) ) +% { } else +% { +% new.sentence(); +% } +% } +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ and + 'skip$ + { new.sentence } + if$ +} + +% Vrati hodnoty polozky (ulozene na vrcholu zasobniku) nebo prazdny retezec. +% +% int.or.string field.or.null (int.or.string anything.from.the.top) +% { +% if (empty$(anything.from.the.top)) +% { +% return ""; +% } else +% { +% return anything.from.the.top; +% } +% } +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +% Vypis chybove hlasky pro pripady, kdyz jsou vyplnene dve polozky, jejichz +% pouziti se vzajemne vylucuje. Vola se s dvema argumenty -- prvni z nich je +% retezec s nazvy obou poli (kvuli vypisu chybove hlasky) a druhy je obsah +% jednoho z poli (kontrola druheho musi probehnout pred volanim teto funkce). +% +% void either.or.check (string field.names, int.or.string one.of.fields) +% { +% if (empty$(one.of.fields)) +% { } else +% { +% warning$(field.names * "can't use both " * " fields in " * cite$()); +% } +% } +FUNCTION {either.or.check} +{ empty$ + { pop$ } + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +% Provede zvyrazneni hodnoty na vrcholu zasobniku (uzavre ji mezi "{\em" +% a "}"). Nepouziva kurzivni korekci. +% +% string emphasize (string x) +% { +% if (empty$(x)) +% { +% return ""; +% } else +% { +% return "{\em " * x * "}"; +% } +% } +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +FUNCTION {makebold} +{ duplicate$ empty$ + { pop$ "" } + { "{\bf " swap$ * "}" * } + if$ +} + +FUNCTION {makesmall} +{ duplicate$ empty$ + { pop$ "" } + { "{\small " swap$ * "}" * } + if$ +} + +% Nahradi kazdy vyskyt znaku '-' za dvojznak "--". +% +% string dashify (string to.dashify) +% { +% t = to.dashify; +% push(""); +% while (!empty$(t)) +% { +% if (substring$(t, 1, 1) == "-") +% { +% if (substring$(t, 1, 2) == "--") +% { +% while (substring$(t, 1, 1) == "-") +% { +% push(pop() * "-"); +% t = substring$(t, 2, global.max$()); +% } +% } else +% { +% push(pop() * "--"); +% t = substring$(t, 2, global.max$()); +% } +% } else +% { +% push(pop() * substring$(t, 1, 1)); +% t = substring$(t, 2, global.max$()); +% } +% } +% } +FUNCTION {dashify} +{ 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { t #1 #2 substring$ "--" = + { { t #1 #1 substring$ "-" = } + { "-" * + t #2 global.max$ substring$ 't := + } + while$ + } + { "--" * + t #2 global.max$ substring$ 't := + } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%% VLASTNI KOD -- POMOCNE FUNKCE %%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% Prevod retezce na cislo. Ocekava se, ze se zavola az po testu pomoci funkce +% 'is.ord'. Na vstupu ocekava neprazdny retezec tvoreny jen cislicemi. +% +% int str.to.int (string to.convert) +% { +% t = to.convert; +% int x = 0; +% int ptr = 0; +% while (ptr text.length$(t) < ) +% { +% push(x); +% i = 9; +% while (i > 0) +% { +% push(pop() + x); +% i--; +% } +% ptr++; +% x = chr.to.int$(substring$(t, ptr, 1)) - 48 + pop(); +% } +% return x; +% } +FUNCTION {str.to.int} +{ 't := + #0 'x := + #0 'ptr := + { ptr t text.length$ < } + { x + #9 'i := + { i #0 > } + { x + + i #1 - 'i := + } + while$ + ptr #1 + 'ptr := + t ptr #1 substring$ chr.to.int$ #48 - + 'x := + } + while$ + x +} + +% Prvni pismeno retezce na vrcholu zasobniku prevede na verzalku. +% +% string capitalize (string to.capitalize) +% { +% if (empty$(to.capitalize)) +% { } else +% { +% return change.case$(substring$(to.capitalize, 1, 1), "u") * +% substring$(to.capitalize, 2, global.max$()); +% } +% } +FUNCTION {capitalize} +{ duplicate$ empty$ + 'skip$ + { duplicate$ #1 #1 substring$ "u" change.case$ + swap$ #2 global.max$ substring$ * + } + if$ +} + +% Spojuje dva retezce z vrcholu zasobniku. Tyto dva retezce jsou oddeleny +% mezerou ci nezlomitelnou mezerou. Retezec na vrcholu zasobniku je pripojen +% za druhy retezec. +% +% Pokud je jeden z retezcu prazdny, je vracen jen druhy z nich bez jakychkoliv +% uprav. Jsou-li prazdne oba retezce, je vracen taktez prazdny retezec. +% +% string tie.or.connect (string under.the.top, string from.the.top) +% { +% string u = from.the.top; +% if (empty$(under.the.top)) +% { +% return u; +% } else +% { +% if (empty$(u)) +% { } else +% { +% if (text.length$(u) < 3) +% { +% return under.the.top * "~" * u; +% } else +% { +% return under.the.top * " " * u; +% } +% } +% } +% } +FUNCTION {tie.or.connect} +{ 'u := + duplicate$ empty$ + { pop$ u } + { u empty$ + 'skip$ + { u text.length$ #3 < + { "~" * u * } + { " " * u * } + if$ + } + if$ + } + if$ +} + +% Spojuje dva retezce z vrcholu zasobniku. Tyto dva retezce jsou oddeleny +% carkou. Retezec na vrcholu zasobniku je pripojen za druhy retezec. +% +% Pokud je jeden z retezcu prazdny, je vracen jen druhy z nich bez jakychkoliv +% uprav. Jsou-li prazdne oba retezce, je vracen taktez prazdny retezec. +% +% string comma.connect (string under.the.top, string from.the.top) +% { +% string u = from.the.top; +% if (empty$(under.the.top)) +% { +% return u; +% } else +% { +% if (empty$(u)) +% { } else +% { +% return under.the.top * ", " * u; +% } +% } +% } +FUNCTION {comma.connect} +{ 'u := + duplicate$ empty$ + { pop$ u } + { u empty$ + 'skip$ + { ", " * u * } + if$ + } + if$ +} + +% Spojuje dva retezce z vrcholu zasobniku. Tyto dva retezce jsou oddeleny mezerou. +FUNCTION {space.connect} +{ 'u := + duplicate$ empty$ + { pop$ u } + { u empty$ + 'skip$ + { " " * u * } + if$ + } + if$ +} + + +% Otestuje, zda je hodnota na vrcholu zasobniku tvorena pouze cislicemi. +% +% int is.ord (string x) +% { +% string u = x; +% int ord = 1; +% while ( (ord) && (!empty(u)) ) +% { +% if ( (chr.to.int$(substring$(u, 1, 1)) < 48) || +% (chr.to.int$(substring$(u, 1, 1)) > 57) ) +% { +% ord = 0; +% } else +% { +% u = substring(s, 2, global.max$()); +% } +% } +% return ord; +% } +FUNCTION {is.ord} +{ 'u := + #1 'ord := + { ord + u empty$ not + and + } + { u #1 #1 substring$ + duplicate$ chr.to.int$ #48 < % < '0' + swap$ chr.to.int$ #57 > % > '9' + or + { #0 'ord := } + { u #2 global.max$ substring$ 'u := } + if$ + } + while$ + ord +} + +% Formatovaci retezec pro vkladani jmen dle ceske konvence pomoci funkce +% 'format.name$'. +% +% string sk.name.format () +% { +% return "{{\scshape\bgroup}ll{ }{\egroup}}{, f.}{ vv}"; +% } +FUNCTION {sk.name.format} +{ "{{\sc\bgroup}ll{ }{\egroup}}{, f.}{ vv}" } + +% Vraci nominativ mesice. +% +% /** prepis pseudokodu do funkce pracujici s polem **/ +% string get.month.n (int n) +% { +% int month = { 1 => "január", "február", "marec", "apríl", "máj", "jún", +% "júl", "august", "september", "október", "november", "december" }; +% if ( (n > 0) && (n < 13) ) +% { +% return month[n]; +% } else +% { +% warning$("Month must be between 1 and 12!"); +% return ""; +% } +% } +FUNCTION {get.month.n} +{ duplicate$ #1 = + { "január" swap$ pop$ } + { duplicate$ #2 = + { "február" swap$ pop$ } + { duplicate$ #3 = + { "marec" swap$ pop$ } + { duplicate$ #4 = + { "apríl" swap$ pop$ } + { duplicate$ #5 = + { "máj" swap$ pop$ } + { duplicate$ #6 = + { "jún" swap$ pop$ } + { duplicate$ #7 = + { "júl" swap$ pop$ } + { duplicate$ #8 = + { "august" swap$ pop$ } + { duplicate$ #9 = + { "september" swap$ pop$ } + { duplicate$ #10 = + { "október" swap$ pop$ } + { duplicate$ #11 = + { "november" swap$ pop$ } + { duplicate$ #12 = + { "december" swap$ pop$ } + { "" "Month must be between 1 and 12!" warning$ } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ +} + +% Vraci nominativ mesice s velkym prvnim pismenem. +FUNCTION {get.u.month.n} +{ duplicate$ #1 = + { "Január" swap$ pop$ } + { duplicate$ #2 = + { "Február" swap$ pop$ } + { duplicate$ #3 = + { "Marec" swap$ pop$ } + { duplicate$ #4 = + { "Apríl" swap$ pop$ } + { duplicate$ #5 = + { "Máj" swap$ pop$ } + { duplicate$ #6 = + { "Jún" swap$ pop$ } + { duplicate$ #7 = + { "Júl" swap$ pop$ } + { duplicate$ #8 = + { "August" swap$ pop$ } + { duplicate$ #9 = + { "September" swap$ pop$ } + { duplicate$ #10 = + { "Október" swap$ pop$ } + { duplicate$ #11 = + { "November" swap$ pop$ } + { duplicate$ #12 = + { "December" swap$ pop$ } + { "" "Month must be between 1 and 12!" warning$ } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ +} + +% Vraci genitiv mesice. +% +% /** prepis pseudokodu do funkce pracujici s polem **/ +% string get.month.g (int n) +% { +% int month = { 1 => "januára", "februára", "marca", "apríla", "mája", "júna", +% "júla", "augusta", "septembra", "októbra", "novembra", "decembra"}; +% if ( (n > 0) && (n < 13) ) +% { +% return month[n]; +% } else +% { +% warning$("Month must be between 1 and 12!"); +% return ""; +% } +% } +FUNCTION {get.month.g} +{ duplicate$ #1 = + { "januára" swap$ pop$ } + { duplicate$ #2 = + { "februára" swap$ pop$ } + { duplicate$ #3 = + { "marca" swap$ pop$ } + { duplicate$ #4 = + { "apríla" swap$ pop$ } + { duplicate$ #5 = + { "mája" swap$ pop$ } + { duplicate$ #6 = + { "júna" swap$ pop$ } + { duplicate$ #7 = + { "júla" swap$ pop$ } + { duplicate$ #8 = + { "augusta" swap$ pop$ } + { duplicate$ #9 = + { "septembra" swap$ pop$ } + { duplicate$ #10 = + { "októbra" swap$ pop$ } + { duplicate$ #11 = + { "novembra" swap$ pop$ } + { duplicate$ #12 = + { "decembra" swap$ pop$ } + { "" "Month must be between 1 and 12!" warning$ } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ +} + +% Provede vystup. Je urcen jen pro vypsani primarni odpovednosti. Umoznuje +% pouziti volby 'opt.sep.a', ktera dovoluje pouzit jiny oddelovac mezi poli +% primarni odpovednosti a nazvu titulu. Dle zazitych zvyklosti v CR je jim ':'. +% +% Pouzivat pouze na zacatku bibliograficke citace! Jinde muze zpusobit prohozeni +% prvku. +% +% void output.authors (string formatted.authors) +% { +% if (substring$(formatted.authors, #-1, #1) == opt.sep.a()) +% { +% write$(formatted.authors); +% newline$(); +% write("\newblock "); +% } else +% { +% write$(formatted.authors * opt.sep.a()); +% newline$(); +% write("\newblock "); +% } +% } +FUNCTION {output.authors} +{ + duplicate$ #-1 #1 substring$ opt.sep.a = + { write$ newline$ "\newblock " write$ } + { opt.sep.a * + write$ newline$ "\newblock " write$ + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%% VLASTNI KOD -- FORMATOVACI FUNKCE %%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% Formatovani jmen (pro primarni odpovednost). +% +% string format.names (string names) +% { +% string s = names; +% int numnames = num.names$(s); +% int namesleft = numnames; +% int nameptr = 1; +% while ( (namesleft > 0) && (nameptr <= opt.aa()) ) +% { +% t = format.name$(s, nameptr, sk.name.format()); +% if (nameptr == 1) +% { +% push(t); +% } else +% { +% if (namesleft > 1) +% { +% push(pop() * opt.sep.bn() * t); +% } else +% { +% if (purify$(t) == "others") +% { +% push(tie.or.connect(pop(), opt.etal())); +% } else +% { +% push(pop() * opt.sep.ln() * t); +% } +% } +% } +% nameptr++; +% namesleft--; +% } +% if (nameledt > 0) +% { +% push(tie.or.connect(pop(), opt.etal())); +% } +% return pop(); +% } +FUNCTION {format.names} +{ 's := % s <= polozka se jmeny + s num.names$ 'numnames := % numnames <= pocet jmen v polozce + numnames 'namesleft := % poznamena si pocet zbyvajicich jmen + #1 'nameptr := % nameptr <= ukazatel na prvni ze jmen + { namesleft #0 > + nameptr opt.aa > not + and + } + { % cyklus zpracovani jednotlivych jmen + s nameptr sk.name.format format.name$ 't := + nameptr #1 = + { t } % prvni jmeno + { namesleft #1 > % dalsi jmena + { opt.sep.bn t * * } + { t purify$ + "others" = % kdyz po ocisteni zbyde klic. sl. "others" + { opt.etal tie.or.connect } % vytiskne et al. + { opt.sep.ln * t * } % jinak posledni inicialy po spojce "a" + if$ + } + if$ + } + if$ + nameptr #1 + 'nameptr := % posun ukazatele na dalsi jmeno + namesleft #1 - 'namesleft := % snizeni poctu zbyvajicich jmen + } + while$ + namesleft #0 > % mozne pridani opt.etal + { opt.etal tie.or.connect } + 'skip$ + if$ +} + +% Formatovani jmen editoru. +% +% string format.names.ed (string names) +% { +% string s = names; +% int numnames = num.names$(s); +% int namesleft = numnames; +% int nameptr = 1; +% while ( (namesleft > 0) && (nameptr <= opt.aa()) ) +% { +% t = format.name$(s, nameptr, sk.name.format()); +% if (nameptr == 1) +% { +% if (opt.ed.all()) +% { +% push(tie.or.connect(t, opt.ed()); +% } else +% { +% push(t); +% } +% } else +% { +% if (namesleft > 1) +% { +% if (opt.ed.all()) +% { +% push(tie.or.connect(pop() * opt.sep.bn() * t, opt.ed()); +% } else +% { +% push(pop() * opt.sep.bn() * t); +% } +% } else +% { +% if (purify$(t) == "others") +% { +% push(tie.or.connect(pop(), opt.etal())); +% } else +% { +% if (opt.ed.all()) +% { +% push(tie.or.connect(pop() * opt.sep.ln() * t, opt.ed()); +% } else +% { +% push(pop() * opt.sep.ln() * t); +% } +% } +% } +% } +% nameptr++; +% namesleft--; +% } +% if (nameledt > 0) +% { +% push(tie.or.connect(pop(), opt.etal())); +% } +% if (opt.ed.all()) +% { +% return pop(); +% } else +% { +% return tie.or.connect(pop(), ", " * opt.ed()); +% } +% } +FUNCTION {format.names.ed} +{ 's := % s <= polozka se jmeny + s num.names$ 'numnames := % numnames <= pocet jmen v polozce + numnames 'namesleft := % poznamena si pocet zbyvajicich jmen + #1 'nameptr := % nameptr <= ukazatel na prvni ze jmen + { namesleft #0 > + nameptr opt.ae > not + and + } + { % cyklus zpracovani jednotlivych jmen + s nameptr sk.name.format format.name$ 't := + nameptr #1 = % prvni jmeno + { t + opt.ed.all + { opt.ed tie.or.connect } + 'skip$ + if$ + } + { namesleft #1 > % dalsi jmena + { opt.sep.bn t * * + opt.ed.all + { opt.ed tie.or.connect } + 'skip$ + if$ + } + { t purify$ + "others" = % kdyz po ocisteni zbyde klic. sl. "others" + { opt.etal tie.or.connect } % vytiskne et al. + { opt.sep.ln t * * % jinak posledni inicialy po spojce "a" + opt.ed.all + { opt.ed tie.or.connect } + 'skip$ + if$ + } + if$ + } + if$ + } + if$ + nameptr #1 + 'nameptr := % posun ukazatele na dalsi jmeno + namesleft #1 - 'namesleft := % snizeni poctu zbyvajicich jmen + } + while$ + namesleft #0 > % mozne pripojeni opt.etal + { opt.etal tie.or.connect } + 'skip$ + if$ + opt.ed.all % mozne pridani opt.ed na konec prvku + 'skip$ + { ", " * opt.ed tie.or.connect } + if$ +} + +% Formatovani jmen autoru. +% Pokud je neprazdna polozka 'author', provede formatovani jmen pomoci funkce +% 'format.names'. +% +% string format.authors () +% { +% if (empty$(author)) +% { +% return ""; +% } else +% { +% return format.names(author); +% } +% } +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +% Formatovani jmena vedouciho. +FUNCTION {format.supervisor} +{ supervisor empty$ + { "" } + { "Vedúci práce " supervisor format.names * } + if$ +} + + +% Formatovani jmen editoru. +% Pokud je neprazdna polozka 'editor', provede formatovani jmen pomoci funkce +% 'format.names.ed'. +% +% string format.editors () +% { +% if (empty$(editor)) +% { +% return ""; +% } else +% { +% return format.names.ed(editor); +% } +% } +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names.ed } + if$ +} + +% Formatovani polozky primarni odpovednosti. +% Je-li zadana polozka 'author', provede jeji formatovani pomoci funkce +% 'format.authors'. Pokud je polozka 'author' prazdna, provede formatovani +% pomoci funkce 'format.editors'. +% +% void author.or.editor () +% { +% if (empty$(author)) +% { +% if (empty$(format.editors())) +% { +% warning$("empty author and editor in " * cite$()); +% } else +% { +% output.authors(format.editors()); +% } +% } else +% { +% output.authors(format.authors()); +% } +% } +FUNCTION {author.or.editor} +{ author empty$ + { format.editors + duplicate$ empty$ + { pop$ + "empty author and editor in " cite$ * warning$ + } + { output.authors } + if$ + } + { format.authors + output.authors + } + if$ +} + +% Formatovani nazvu (napr. casopisu, zurnalu atp.). +% Pri zadane polozce 'subtitle' provede ji pripoji k obsahu polozky 'title' +% pomoci ": ". V nazvu je pak provedena zmena velikosti pismen. +% +% string format.title () +% { +% if (empty$(subtitle)) +% { +% return capitalize(title); +% } else +% { +% return capitalize(title) * opt.sep.t() * subtitle; +% } +% } +FUNCTION {format.title} +{ subtitle empty$ + { title capitalize } + { title capitalize + opt.sep.t * subtitle * + } + if$ +} +%%FUNCTION {format.title} +%%{ subtitle empty$ +%% { title "t" change.case$ } +%% { title "t" change.case$ +%% opt.sep.t * subtitle "t" change.case$ * +%% } +%% if$ +%%} + + +% Formatovani nazvu monograficke publikace. +% Pri zadane polozce 'subtitle' provede ji pripoji k obsahu polozky 'title' +% pomoci ": ". Pricemz na obe casti se provede zmena velikosti pismen +% a zvyrazneni. Pokud je polozka 'subtitle' prazdna, je provedena jen zmena +% velikosti pismen a jeji zvyrazneni. +% +% string format.btitle () +% { +% return emphasize(format.title()); +% } +FUNCTION {format.btitle} +{ format.title emphasize +} + +% Formatovani nazvu (napr. sbornik). +% Pri zadane polozce 'booksubtitle' provede ji pripoji k obsahu polozky +% 'booktitle' pomoci ": ". V nazvu je pak provedena zmena velikosti pismen +% a zvyrazneni kurzivou. +% +% string format.from.btitle () +% { +% if (empty$(booktitle)) +% { +% warning$(empty booktitle in " * cite$()); +% push(""); +% } else +% { +% push(capitalize(booktitle)); +% if (empty$(booksubtitle)) +% { } else +% { +% push(pop() * opt.sep.t * booksubtitle); +% } +% } +% return emphasize(pop()); +% } +FUNCTION {format.from.btitle} +{ booktitle empty$ + { "empty booktitle in " cite$ * warning$ + "" + } + { booktitle capitalize + booksubtitle empty$ + 'skip$ + { opt.sep.t * booksubtitle * } + if$ + } + if$ + emphasize +} + +% Formatovani druhu nosice. +% +% string format.howpublished () +% { +% if (empty$(howpublished)) +% { +% return ""; +% } else +% { +% if (change.case(howpublished, "l") == "cd") +% { +% push("CD-ROM"); +% } else +% { +% if (change.case(howpublished, "l") == "online") +% { +% push("online"); +% } else +% { +% push(howpublished); +% } +% } +% return "[" * pop() * "]"; +% } +% } +FUNCTION {format.howpublished} +{ howpublished empty$ + { "" } + { howpublished "l" change.case$ "cd" = + { "CD-ROM" } + { howpublished "l" change.case$ "online" = + { "online" } + { howpublished } + if$ + } + if$ + "[" swap$ * "]" * + } + if$ +} + +% Formatovani vydani +% +% string format.edition () +% { +% if (empty$(edition)) +% { +% push(""); +% } else +% { +% if (is.ord(edition)) +% { +% push(edition * ". vyd."); +% } else +% { +% push(edition); +% } +% } +% if (!empty$(version)) +% { +% push(comma.connect(pop(), version)); +% } +% return pop(); +% } +FUNCTION {format.edition} +{ edition empty$ + { "" } + { edition is.ord + { edition ". vyd." * } + { edition } + if$ + } + if$ + howpublished empty$ + 'skip$ + { version empty$ + 'skip$ + { version comma.connect } + if$ + } + if$ +} + +% Formatovani mesice a roku +% +% string format.date () +% { +% if (empty$(month)) +% { +% if (empty$(year)) +% { +% warning$("empty year in " * cite$()); +% return ""; +% } else +% { +% return year; +% } +% } else +% { +% if (empty$(year)) +% { +% warning$("just month (empty year) in " * cite$()); +% return ""; +% } else +% { +% if (is.ord(month)) +% { +% return get.month.n(str.to.int(month)) * " " * year; +% } else +% { +% return month * " " * year; +% } +% } +% } +% } +FUNCTION {format.date} +{ month empty$ + { year empty$ + { "" + "empty year in " cite$ * warning$ } + { year } + if$ + } + { year empty$ + { "" + "just month (empty year) in " cite$ * warning$ } + { month duplicate$ is.ord + { str.to.int get.month.n " " * year * } + { " " * year * } + if$ + } + if$ + } + if$ +} + +% Formatovani mesice a roku s genitivem měsíce +FUNCTION {format.date.g} +{ month empty$ + { year empty$ + { "" + "empty year in " cite$ * warning$ } + { year } + if$ + } + { year empty$ + { "" + "just month (empty year) in " cite$ * warning$ } + { month duplicate$ is.ord + { str.to.int get.month.g " " * year * } + { " " * year * } + if$ + } + if$ + } + if$ +} + +% Formatovani mesice a roku, kde mesic zacina velkym pismenem +FUNCTION {format.u.date} +{ month empty$ + { year empty$ + { "" + "empty year in " cite$ * warning$ } + { year } + if$ + } + { year empty$ + { "" + "just month (empty year) in " cite$ * warning$ + } + { month duplicate$ is.ord + { str.to.int get.u.month.n " " * year * } + { " " * year * } + if$ + } + if$ + } + if$ +} + +% Rozpoznani a prevod data z formatu '!yyyy-mm-dd'. +% +% string format.full.date (string date) +% { +% string t = date; +% if (text.length$(t) == 10) +% { +% if ( (is.ord(substring$(t, 1, 4))) && (substring$(t, 5, 1) == "-") && +% (is.ord(substring$(t, 6, 2))) && (substring$(t, 8, 1) == "-") && +% (is.ord(substring$(t, 9, 2))) ) +% { +% if (substring$(t, 9, 1) == "0") +% { +% if (substring$(t, 10, 1) == "0") +% { +% warning$("day must be between 1 and 31 in " * cite$()); +% } else { } +% push(substring$(t, 10, 1) * ".~"); +% } else +% { +% if ( ((chr.to.int$(substring$(t, 9, 1)) - 48) > 3) || +% ((substring$(t, 9, 1) == "3") && +% ((chr.to.int$(substring$(t, 10, 1)) - 48) > 1)) ) +% { +% pop(); +% push(t); +% warning$("day must be between 1 and 31 in " * cite$()); +% } else { } +% push(substring$(t, 9, 2) * ".~"); +% } +% if (substring$(t, 6, 1) == "0") +% { +% if (substring$(t, 7, 1) == "0") +% { +% pop(); +% push(t); +% warning$("month must be between 1 and 12 in " * cite$()); +% } else +% { +% return pop() * get.month.g(chr.to.int$(substring$(t, 7, 1)) - 48) * +% " " * substring$(t, 1, 4)); +% } +% } else +% { +% if ( (substring$(t, 6, 1) == "1") && +% ((chr.to.int$(substring$(t, 7, 1)) - 48) < 3) ) +% { +% return pop() * get.month.g(chr.to.int$(substring$(t, 7, 1)) +% - 48 + 10) * " " * substring$(t, 1, 4)); +% } else +% { +% pop(); +% push(t); +% warning$("month must be between 1 and 12 in " * cite$()); +% } +% } +% } else +% { +% return t; +% } +% } else +% { +% return t; +% } +% } +FUNCTION {format.full.date} +{ 't := + t text.length$ #11 = + { t #1 #1 substring$ "!" = + t #2 #4 substring$ is.ord + t #6 #1 substring$ "-" = + t #7 #2 substring$ is.ord + t #9 #1 substring$ "-" = + t #10 #2 substring$ is.ord + and and and and and + { t #10 #1 substring$ "0" = + { t #11 #1 substring$ "0" = + { "day must be between 1 and 31 in " cite$ * warning$ } + 'skip$ + if$ + t #11 #1 substring$ ".~" * + } + { t #10 #1 substring$ chr.to.int$ #48 - #3 > + t #10 #1 substring$ "3" = + t #11 #1 substring$ chr.to.int$ #48 - #1 > + and or + { pop$ t "day must be between 1 and 31 in " cite$ * warning$ } + 'skip$ + if$ + t #10 #2 substring$ ".~" * + } + if$ + t #7 #1 substring$ "0" = + { t #8 #1 substring$ "0" = + { pop$ t "month must be between 1 and 12 in " cite$ * warning$ } + { t #8 #1 substring$ chr.to.int$ #48 - get.month.g * + " " * t #2 #4 substring$ * + } + if$ + } + { t #7 #1 substring$ "1" = + t #8 #1 substring$ chr.to.int$ #48 - #3 < + and + { t #8 #1 substring$ chr.to.int$ #48 - #10 + get.month.g * + " " * t #2 #4 substring$ * + } + { pop$ t "month must be between 1 and 12 in " cite$ * warning$ } + if$ + } + if$ + } + { t } + if$ + } + { t } + if$ +} + +% Predani udaju z data revize elektronickeho dokumentu. +% +% string format.revised () +% { +% if (empty$(howpublished)) +% { +% return ""; +% } else +% { +% if (empty$(revised)) +% { +% return ""; +% } else +% { +% return revised; +% } +% } +% } +FUNCTION {format.revised} +{ howpublished empty$ + { "" } + { revised empty$ + { "" } + { revised } + if$ + } + if$ +} + +% Formatovani udaju z data citace elektronickeho dokumentu. +% +FUNCTION {format.cited} +{ cited empty$ + { "" } + { cited format.full.date + "[cit. " swap$ * "]" * +% "[vid. " swap$ * "]" * + } + if$ +} + +% Formatovani nakladatelskych udaju. +% +% string format.publish.info () +% { +% if ( (empty$(address)) && (empty$(publisher)) ) +% { +% string s = ""; +% } else +% { +% if (empty$(address)) +% { +% s = "[b.m.]: "; +% } else +% { +% s = address * ": "; +% } +% if (empty$(publisher)) +% { +% s = s * "[b.n.]"; +% } else +% { +% s = s * publisher; +% } +% } +% return s; +% } +FUNCTION {format.publish.info} +{ address empty$ + publisher empty$ + and + { "" } + { address empty$ + { "" } + { address opt.sep.p * } + if$ + publisher empty$ + { "[b.n.]" * } + { publisher * } + if$ + } + if$ +} + + +% Formatuje rozsah stran publikace. +% +% string format.range () +% { +% if (empty$(pages)) +% { +% return ""; +% } else +% { +% return tie.or.connect(pages, "s."); +% } +% } +FUNCTION {format.range} +{ pages empty$ + { "" } + { pages "s." tie.or.connect } + if$ +} + +% Formatovani edice a svazku sborníku konference. +% +% string format.cvolume () +% { +% if (empty$(volume)) +% { +% push(""); +% } else +% { +% if (is.ord(volume)) +% { +% push("zv. " * volume); +% } else +% { +% push(volume); +% } +% } +% if (empty$(number)) +% { +% return pop(); +% } else +% { +% if (is.ord(number)) +% { +% return comma.connect(pop(), "č. " * number); +% } else +% { +% return comma.connect(pop(), number); +% } +% } +% } +FUNCTION {format.cvolume} +{ volume empty$ + { "" } + { volume is.ord + { "sv. " volume * } + { volume } + if$ + } + if$ + number empty$ + { + "" comma.connect + } + { number is.ord + { "č. " number * comma.connect } + { number comma.connect } + if$ + } + if$ +} + + +% Formatovani edice a cisla edice knihy ci sborníku konference. +% +% string format.cseries () +% { +% if (empty$(series)) +% { +% return ""; +% } else +% { +% push(capitalize(series)); +% if (empty$(editionnumber)) +% { } else +% { +% if (is.ord(editionnumber)) +% { +% return comma.connect(pop(), "č. " * editionnumber); +% } else +% { +% return comma.connect(pop(), editionnumber); +% } +% } +% } +% } +FUNCTION {format.cseries} +{ series empty$ + { "" } + { series capitalize + editionnumber empty$ + 'skip$ + { editionnumber is.ord + { "č. " editionnumber * comma.connect } + { editionnumber comma.connect } + if$ + } + if$ + } + if$ +} + + +% Format dostupnosti. +% +% string format.url () +% { +% if (empty$(url)) +% { +% return ""; +% } else +% { +% return tie.or.connect(opt.url(), "\small{\url{" * url * ".}}"); +% } +% } +FUNCTION {format.url} +{ url empty$ + { "" } + { opt.url "{\small\url{" url * "}}" * tie.or.connect } + if$ +} + +% Format cesty. +% +% string format.pah () +% { +% if (empty$(path)) +% { +% return ""; +% } else +% { +% return opt.path * path; +% } +% } +FUNCTION {format.path} +{ path empty$ + { "" } + { opt.path path * } + if$ +} + +% Format ISBN. +% +% string format.isbn () +% { +% if (empty$(isbn)) +% { +% return ""; +% } else +% { +% return "ISBN " * isbn; +% } +% } +FUNCTION {format.isbn} +{ isbn empty$ + { "" } + { "ISBN " isbn * } + if$ +} + +% Format nazvu serialove publikace. +% +% string format.journal () +% { +% if (empty$(journal)) +% { +% return ""; +% } else +% { +% return emphasize(journal); +% } +% } +FUNCTION {format.journal} +{ journal empty$ + { "" } + { journalsubtitle empty$ + { journal capitalize emphasize } + { journal capitalize emphasize + opt.sep.t * journalsubtitle emphasize *} + if$ + } + if$ +} + +% Format nazvu lokace ve zdrojovem dokumentu. +% +% string format.pages () +% { +% if (empty$(pages)) +% { +% return ""; +% } else +% { +% return "s.~" * dashify(pages); +% } +% } +FUNCTION {format.pages} +{ pages empty$ + { "" } + { "s.~" pages dashify * } + if$ +} + +FUNCTION {format.chapter} +{ chapter empty$ + { "" } + { "kap.~" chapter * } + if$ +} + +% Formatovani data vydani, rocniku a cisla publikace + datum revize/aktualizace +% + darum citace + lokace ve zdrojovem dokumentu (rozsah stran). +% +% string format.journal.issue () +% { +% string s; +% if (empty$(format.u.date())) +% { +% s = ""; +% } else +% { +% s = format.u.date(); +% } +% if (!empty$(volume)) +% { +% if (is.ord(volume)) +% { +% s = comma.connect(s, "zv.~" * volume); +% } else +% { +% s = comma.connect(s, volume); +% } +% } +% if (empty$(number)) +% { +% warning$("empty number in " * cite$); +% } else +% { +% if (is.ord(number)) +% { +% s = comma.connect(s, "č.~" * number); +% } else +% { +% s = comma.connect(s, number); +% } +% } +% if (s == "") +% { +% warning$("empty journal issue info in " * cite$); +% return ""; +% } else +% { +% return s; +% } +% } +FUNCTION {format.journal.issue} +{ format.u.date + duplicate$ empty$ + { pop$ "" 's := } + { 's := } + if$ + volume empty$ + 'skip$ + { volume is.ord + { "zv.~" volume * + s swap$ comma.connect 's := + } + { s volume comma.connect 's := } + if$ + } + if$ + number empty$ + { "empty number in " cite$ * warning$ } + { number is.ord + { "č.~" number * + s swap$ comma.connect 's := + } + { s number comma.connect 's := } + if$ + } + if$ + s empty$ + { "empty journal issue info in " cite$ * warning$ + "" + } + { s } + if$ +} + +% Format ISSN. +% +% string format.issn () +% { +% if (empty$(issn)) +% { +% return ""; +% } else +% { +% return "ISBN " * issn; +% } +% } +FUNCTION {format.issn} +{ issn empty$ + { "" } + { "ISSN " issn * } + if$ +} + +% Format DOI. +% +% string format.doi () +% { +% if (empty$(doi)) +% { +% return ""; +% } else +% { +% return "DOI: " * doi; +% } +% } +FUNCTION {format.doi} +{ doi empty$ + { "" } + { "DOI: " doi * } + if$ +} + +% Formatuje cislo svazku -- presne urceni casti pro @InBook. +% +% string format.vol () +% { +% if (empty$(volume)) +% { +% push(""); +% } else +% { +% if (is.ord(volume)) +% { +% push("sv.~" * volume); +% } else +% { +% push(volume); +% } +% } +% return capitalize(pop()); +% } +FUNCTION {format.vol} +{ volume empty$ + { "" } + { volume is.ord + { "sv.~" volume * } + { volume } + if$ + } + if$ + capitalize +} + +% Formatuje zakladni informace (primarni odpovednost a titul) o sborniku pro +% bibliograficke citaci clanku ve sborniku. +% +% In opt.sep.a() . +% +% Pokud je prazdny, netiskne se nic. +% +% void conference.basics () +% { +% if (empty$(editor)) +% { +% if (empty$(organization)) +% { +% warning$("empty editor and organization in " * cite$()); +% push(""); +% } else +% { +% if ((substring$(organization, -1, 1) == opt.sep.a()) +% { +% push(capitalize(organization)); +% } else +% { +% push(capitalize(organization * opt.sep.a())); +% } +% } +% } else +% { +% if ((substring$(format.editors(), -1, 1) == opt.sep.a()) +% { +% push(format.editors()); +% } else +% { +% push(capitalize(format.editors() * opt.sep.a())); +% } +% } +% push(tie.or.connect("In:", pop())); +% if (empty$(format.from.btitle())) +% { +% pop(); +% push(""); +% } else +% { +% push(pop() * format.from.btitle()); +% } +% return pop(); +% } +FUNCTION {conference.basics} +{ editor empty$ + { organization empty$ + { "empty editor and organization in " cite$ * warning$ + "" + } + { organization capitalize + duplicate$ #-1 #1 substring$ opt.sep.a = + 'skip$ + { opt.sep.a * } + if$ + } + if$ + } + { format.editors + duplicate$ #-1 #1 substring$ opt.sep.a = + 'skip$ + { opt.sep.a * } + if$ + } + if$ + "In:" swap$ tie.or.connect + format.from.btitle + duplicate$ empty$ + { pop$ } + { tie.or.connect } + if$ +} + + +% Formatuje informace o akademicke (diplomova, dizertacni atp.) praci. +% Odlisuje se od beznych nakladatelskych informaci pouzitymi polozkami. +% +% string format.thesis.info () +% { +% string s = ""; +% if ( (empty$(address)) && (empty$(location)) && (empty$(school)) ) +% { +% warning$("empty address and school in " * cite$()); +% } else +% { +% if (empty$(address)) +% { +% } else +% { +% s = address; +% } +% if (empty$(location)) +% { +% } else +% { +% s = location; +% } +% if (empty$(year)) +% { +% warning$("empty year in " * cite$()); +% } else +% { +% if (empty$(s)) +% { +% s = year; +% } else +% { +% s = comma.connect(s, year); +% } +% } +% } +% return s; +% } +FUNCTION {format.thesis.info} +{ "" 's := + address empty$ + location empty$ + school empty$ + and + and + { "empty address and school in " cite$ * warning$ } + { address empty$ + 'skip$ + { address 's := } + if$ + location empty$ + 'skip$ + { location 's := } + if$ + year empty$ + { "empty year in " cite$ * warning$ } + { s empty$ + { year 's := } + { s year comma.connect 's := } + if$ + } + if$ + } + if$ + s +} + +% Formatuje informace o skole v akademicke (diplomova, dizertacni atp.) praci. +% +% string format.thesis.school () +% { +% string s = ""; +% if (empty$(school)) +% { +% warning$("empty school in " * cite$()); +% } else +% { +% if (empty$(s)) +% { +% s = school; +% } else +% { +% s = s * ". " * school; +% } +% } +% return s; +% } +FUNCTION {format.thesis.school} +{ "" 's := + school empty$ + { "empty school in " cite$ * warning$ } + { s empty$ + { school 's := } + { s ". " * school * 's := } + if$ + } + if$ + s +} + + +% Formatuje pocet stran a priloh u akademickych praci. +% +% string format.thesis.range () +% { +% if ( (empty$(format.range())) && (!empty$(inserts)) ) +% { +% return format.range(); +% } else +% { +% if (is.ord(inserts)) +% { +% return comma.connect(format.range(), inserts * " příl."); +% } else +% { +% return comma.connect(format.range(), inserts); +% } +% } +% } +FUNCTION {format.thesis.range} +{ pages empty$ + { "" 's := } + { pages opt.pages tie.or.connect 's := } + if$ + s empty$ + { "" } + { inserts empty$ + { s } + { s inserts opt.pages tie.or.connect " příl." * comma.connect } + if$ + } + if$ +} + +% Formatuje typ akademicke prace. +% +% string format.thesis.type (string basic.thesis.type) +% { +% if (empty$(type)) +% { +% return basic.thesis.type; +% } else +% { +% return capitalize(type); +% } +% } +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ type capitalize } + if$ +} + + +% Fromatuje typ a cislo technicke zpravy +% +% string format.report.type () +% { +% if (empty$(type)) +% { +% push(""); +% } else +% { +% push(type); +% } +% if (empty$(number)) +% { +% } else +% { +% space.connect(pop(), number); +% } +% } +FUNCTION {format.report.type} +{ type empty$ + { "" } + { type } + if$ + number empty$ + 'skip$ + { number space.connect } + if$ +} + + +% Kontrola prazdnosti vsech policek pouzitych pro @MISC zaznam. +% +% int empty.misc.check () +% { +% if ( (empty$(author)) && (empty$(title)) && +% (empty$(howpublished)) && (empty$(month)) && (empty$(year)) && +% (empty$(note)) && (!empty$(key)) ) +% { +% warning$("all misc relevant fields are empty in " * cite$()); +% return 1; +% } else +% { +% return 0; +% } +% } +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all misc relevant fields are empty in " cite$ * warning$ + #1 + } + { #0 } + if$ +} + + +% Formatuje misto a instituci technicke zpravy. +% +% string format.report.details () +% { +% if ( empty$(institution) ) +% { +% if ( empty$(address) && empty$(organization) ) +% { +% return ""; +% } else +% { +% if (empty$(address)) +% { +% push(""); +% } else +% { +% push(opt.sep.a() * " " * address * opt.sep.p()); +% } +% if (empty$(organization)) +% { +% warning$("empty organization in " * cite$()); +% } else +% { +% return pop() * organization; +% } +% } +% } else +% { +% if ( empty$(address) && empty$(institution) ) +% { +% return ""; +% } else +% { +% if (empty$(address)) +% { +%% push("[b.m.]"); +% push(""); +% } else +% { +% push(opt.sep.a() * " " * address * opt.sep.p()); +% } +% if (empty$(institution)) +% { +% warning$("institution is empty in " * cite$()); +% } else +% { +% return pop() * institution; +% } +% } +% } +% } +FUNCTION {format.report.details} +{ institution empty$ + { + address empty$ + organization empty$ + and + { "" } + { address empty$ + { "" } + { address } + if$ + organization empty$ + { "empty organization in " cite$ * warning$ } + { address empty$ + { organization * } + { opt.sep.p * organization * } + if$ + } + if$ + } + if$ + } + { + address empty$ + institution empty$ + and + { "" } + { address empty$ + { "" } + { address } + if$ + institution empty$ + { "empty institution in " cite$ * warning$ } + { address empty$ + { institution * } + { opt.sep.p * institution * } + if$ + } + if$ + } + if$ + } + if$ +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%% VLASTNI KOD -- FUNKCE PRO ZPRACOVANI ZAZNAMU %%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% Zpracuje zaznamy typu @Article. +% Bibliograficke citace clanku v serialovych publikaci (casopiseckych clanku). +% +% Povinne polozky: author, title, journal, edition, year, volume, number, pages, issn +% Volitelne polozky: subtitle, journalsubtitle, publisher, address, contributory, url*, month, note, doi +% Polozky el. dok.: howpublished*, revised*, cited*, version +% +% * Povinna polozka pro el. dok. +FUNCTION {article} +{ output.bibitem + format.authors + duplicate$ empty$ + { pop$ + "empty author in " cite$ * warning$ + } + { output.authors } + if$ + new.block %% primarni odpovednost (povinna) + format.title "title" output.check + new.block %% titul (povinny) + format.journal "journal" output.check + format.howpublished output + new.block + format.edition "edition" output.check + new.block %% vydani (povinne) + contributory capitalize output + new.block %% podrizena odpovednost (volitelna) + format.publish.info output + new.block + format.journal.issue + format.pages comma.connect + format.revised comma.connect + format.cited comma.connect output + new.block %% lokace ve zdrojovem dokumentu (povinna) + format.cseries output + new.block + format.doi output + new.block + format.issn output %% standardni cislo ISSN (volitelne) + new.block + note output + new.block %% poznamky (volitelne) + howpublished empty$ + { format.url output } + { format.url "url" output.check + year empty$ + revised empty$ + and + { "empty year and revised in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + fin.entry +}% @Article + +% Zpracuje zaznamy typu @Book. +% Bibliograficke citace monografickych publikaci (knih). +% +% Povinne polozky: author nebo editor, title, edition, address, publisher, year, isbn +% Volitelne polozky: subtitle, contributory, month, pages, series, number nebo volume, note, url* +% Polozky el. dok.: howpublished*, revised*, cited*, version +% +% * Povinna polozka pro el. dok. +FUNCTION {book} +{ output.bibitem + author.or.editor + new.block %% primarni odpovednost (povinna) + format.btitle "book title" output.check + format.howpublished output + new.block %% nazev (povinny) a druh nosice (povinny u el. dok.) + format.edition capitalize "edition" output.check + new.block %% vydani (povinne) + contributory capitalize output + new.block %% podrizena odpovednost (volitelna) + format.publish.info + format.date comma.connect + format.revised comma.connect + format.cited tie.or.connect + capitalize output + new.block %% nakladatelske udaje (volitelne), datum vydani (povinne), + %% datum revize/aktualizace a citace (povinne u el. dok.) + format.range output + new.block %% rozsah (volitelny) + format.cseries output + new.block %% edice (volitelna) + format.isbn "isbn" output.check + new.block + note capitalize output + new.block %% poznamky (volitelne) + howpublished empty$ + { format.url output } + { format.url "url" output.check + year empty$ + revised empty$ + and + { "empty year and revised in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + fin.entry %% standardni cislo ISBN (povinne) +}% @Book + +% @Booklet je pouhy odkaz na @Book. +FUNCTION {booklet} { book } + +% Zpracuje zaznamy typu @Conference a @InProceedings, @InCollection a @InBook +% Bibliograficke citace monografickych publikaci (knih). +% +% Povinne polozky: author, title, editor nebo organization, booktitle, +% edition, address, publisher, year, pages, isbn or issn. +% Volitelne polozky: subtitle, booksubtitle, contributory, month, series, editionnumber, number nebo volume, chapter, note, doi url*. +% Polozky el. dok.: howpublished*, revised*, cited*, version. +% +% * Povinna polozka pro el. dok. +FUNCTION {conference} +{ output.bibitem + author.or.editor + new.block %% primarni odpovednost (povinna) + format.title "title" output.check + new.block %% titul prispevku + conference.basics + format.howpublished tie.or.connect output + new.block %% primarni odpovednost a titul sborniku +% format.edition "edition" output.check + format.edition output + new.block %% vydani + contributory capitalize output + new.block %% podrizena odpovednost (volitelna) + format.publish.info + format.date capitalize comma.connect + format.cvolume comma.connect + format.chapter comma.connect + format.pages comma.connect + format.revised comma.connect + format.cited tie.or.connect + capitalize output + new.block %% nakladatelske udaje, datum vydani, revize/aktualizace a citace + format.cseries output + new.block %% edice (pokud je cislovana, tak i jeji cislo nebo svazek) + format.doi output + new.block + isbn empty$ + { issn empty$ + { "empty isbn and issn in " cite$ * warning$ } + { format.issn output } + if$ + } + { format.isbn output } + if$ + new.block %% standardni cislo ISBN nebo ISSN (povinne) + note capitalize output + new.block %% poznamky + howpublished empty$ + { format.url output } + { format.url "url" output.check + year empty$ + revised empty$ + and + { "empty year and revised in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + fin.entry +} % @Conference a @InProceedings, @InCollection a @InBook + +% @InProceedings je pouhy odkaz na @Conference. +FUNCTION {inproceedings} { conference } +FUNCTION {incollection} { conference } +FUNCTION {inbook} { conference } + +% Zpracuje zaznamy typu @Proceedings. +% +% Bibliograficke citace monografickych publikaci (knih). +% +% Povinne polozky: author nebo editor, title, edition, year, isbn or issn. +% Volitelne polozky: subtitle, contributory, address, publisher, month, series, number nebo volume, note, doi, url*. +% Polozky el. dok.: howpublished*, revised*, cited*, version. +% +% * Povinna polozka pro el. dok. +FUNCTION {proceedings} +{ output.bibitem + author.or.editor + new.block %% primarni odpovednost (povinna) + format.btitle + format.howpublished tie.or.connect output + new.block %% primarni odpovednost a titul sborniku +% format.edition "edition" output.check + format.edition output + new.block %% vydani + contributory capitalize output + new.block %% podrizena odpovednost (volitelna) + format.publish.info + format.date capitalize comma.connect + format.cvolume comma.connect + format.chapter comma.connect + format.pages comma.connect + format.revised comma.connect + format.cited tie.or.connect + capitalize output + new.block %% nakladatelske udaje, datum vydani, revize/aktualizace a citace + format.cseries output + new.block %% edice (pokud je cislovana, tak i jeji cislo nebo svazek) + format.doi output + new.block + isbn empty$ + { issn empty$ + { "empty isbn and issn in " cite$ * warning$ } + { format.issn output } + if$ + } + { format.isbn output } + if$ + new.block %% standardni cislo ISBN nebo ISSN (povinne) + note capitalize output + new.block %% poznamky + howpublished empty$ + { format.url output } + { format.url "url" output.check + year empty$ + revised empty$ + and + { "empty year and revised in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + fin.entry +} % @Proceedings + +% Zpracuje zaznamy typu @Misc, @Webpage a @Website. +% +% Povinne polozky: Alespon jedna z volitelnych! +% Volitelne polozky: author, secondarytitle, title, subtitle, howpublished, contributory, edition, month, doi, issn +% year, revised*, cited, note, url, version, path +% +% Pozn.: Protestuje, pokud neni vyplneny rok. Nemel by tedy volat format.date... +FUNCTION {misc} +{ empty.misc.check + 'skip$ + { output.bibitem + format.authors + duplicate$ empty$ + { pop$ + } + { output.authors } + if$ + new.block + secondarytitle output + new.block + format.btitle "title" output.check + format.howpublished output + new.block + contributory capitalize output + new.block %% podrizena odpovednost (volitelna) + format.edition output + new.block + format.publish.info + edition empty$ + address empty$ + publisher empty$ + and + and + { + output + day empty$ + { format.u.date capitalize output } + { day ". " * format.date.g * comma.connect output } + if$ + } + { + day empty$ + { format.date comma.connect output } + { day ". " * format.date.g * comma.connect output } + if$ + } + if$ + time output + revised empty$ + 'skip$ + { + new.block + format.revised output + } + if$ + format.cited makesmall output + new.block + format.doi output + new.block + format.issn output %% standardni cislo ISSN (volitelne) + new.block + note capitalize makesmall output + new.block + howpublished empty$ + { format.url output } + { format.url "url" output.check + year empty$ + revised empty$ + and + { "empty year and revised in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + new.block + format.path output + fin.entry + } + if$ +}%@Misc a @Webpage a @Website +% @Webpage a @Website sou pouhe odkazy na @Misc. +FUNCTION {webpage} { misc } +FUNCTION {website} { misc } + + +% Zpracuje zaznamy typu @Manual, @TechReport a @Unpublished. +% +% Povinne polozky: author, title, edition, address, organization nebo institution, month, year, revised +% Volitelne polozky: note, number, url* +% Polozky el. dok.: howpublished*, cited* +FUNCTION {techreport} +{ output.bibitem + author.or.editor + new.block %% primarni odpovednost (povinna) + format.btitle "title" output.check + format.howpublished output + new.block + format.report.type + format.edition capitalize comma.connect output + new.block + contributory capitalize output + new.block %% podrizena odpovednost (volitelna) + format.report.details + format.date comma.connect + format.revised comma.connect + format.cited tie.or.connect + capitalize output + new.block %% udeja o vydavajici instituci (volitelne) a datum vydani (povinne) + format.range output + new.block %% rozsah (volitelny) + note capitalize output + new.block %% poznamka (volitelna) + format.url output + new.block %% dostupnost (volitelna) + fin.entry +}%@Manual, @TechReport a @Unpublished +FUNCTION {manual} { techreport } +FUNCTION {unpublished} { techreport } + + +% Zpracuje zaznamy typu @BachelorsThesis, @MastersThesis a @PhdThesis. +% Bibliograficke citace akademickych praci (bakalarske, diplomove a dizertacni). +% +% Zakladni verze -- v choose.thesis ma hodnotu #0. +% +% Povinne polozky: author, title, address or location, school, year, type +% Volitelne polozky: subtitle, pages, inserts, note, url, isbn, howpublished +FUNCTION {thesis} +{ output.bibitem + format.authors + duplicate$ empty$ + { pop$ + "empty author in " cite$ * warning$ + } + { output.authors } + if$ + new.block %% primarni odpovednost (povinna) + format.btitle "title" output.check + format.howpublished output + new.block %% titul (povinny) + format.thesis.info capitalize output + new.block %% misto a rok {povinne) + format.cited makesmall output + new.block %% cited + format.thesis.range output + new.block %% rozsah akademicke prace a jejich priloh (volitelne) + type$ "l" change.case$ + duplicate$ "bachelorsthesis" = + { pop$ "Bakalárska práca" } + { "mastersthesis" = + { "Diplomová práca" } + { "Dizertačná práca" } + if$ + } + if$ + format.thesis.type output + new.block %% typ akademicke prace (volitelny -- pouzije se implicitni) + format.thesis.school output + new.block + format.isbn output + new.block + format.supervisor output + note capitalize output + new.block + format.url output + fin.entry %% standardni cislo ISBN (volitelne) +}%@BachelorsThesis, @MastersThesis a @PhdThesis + +% Zaznamy typu @BachelorsThesis jsou zpracovany funkci thesis. +FUNCTION {bachelorsthesis}{ thesis } + +% Zaznamy typu @MastersThesis jsou zpracovany funkci thesis. +FUNCTION {mastersthesis} { thesis } + +% Zaznamy typu @PhdThesis jsou zpracovany funkci thesis. +FUNCTION {phdthesis} { thesis } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%% MIRNE UPRAVENE FUNKCE PREVZATE Z plain.bst %%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% nacteni bibliograficke databaze +READ + +% Pripravi hodnotu pro razeni -- aplikuje vestavenou funkci purify$ a prevede +% na minusky. +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +% Deklarace dalsi celociselne promenne. +INTEGERS { len } + +% Vrati pouze cast predane hodnoty. +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +% Piprava jmen na razeni. +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ +% s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + s nameptr "{ll{ }}{ ff{ }}{ vv{ }}" format.name$ 't := %% Zamena! + nameptr numnames = t "others" = and + { opt.etal * } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +% Priprava titulu na serazeni. +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} + +% Serazeni dle autora. +FUNCTION {author.sort} +{ key empty$ + { author empty$ + editor empty$ + and + { "to sort, need author or key in " cite$ * warning$ + "" + } + { author empty$ + { editor sort.format.names } + { author sort.format.names } + if$ + } + if$ + } + { key sortify } + if$ +} + +% Dytrych: Původní funkce upřednostní jméno před klíčem a ten pak nelze použít k opravě českého řazení. +% FUNCTION {author.sort} +% { author empty$ +% { key empty$ +% { "to sort, need author or key in " cite$ * warning$ +% "" +% } +% { key sortify } +% if$ +% } +% { author sort.format.names } +% if$ +% } + +% Serazeni dle editora. +FUNCTION {author.editor.sort} +{ key empty$ + { author empty$ + { editor empty$ + { "to sort, need author, editor, or key in " cite$ * warning$ + "" + } + { editor sort.format.names } + if$ + } + { author sort.format.names } + if$ + } + { key sortify } + if$ +} +% FUNCTION {author.editor.sort} +% { author empty$ +% { editor empty$ +% { key empty$ +% { "to sort, need author, editor, or key in " cite$ * warning$ +% "" +% } +% { key sortify } +% if$ +% } +% { editor sort.format.names } +% if$ +% } +% { author sort.format.names } +% if$ +% } + +% Serazeni dle autora, editora nebo organizace. Jedna se o nevyuzitou funkci. +FUNCTION {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +% Serazeni dle editora ci organizace. Jedna se o nevyuzitou funkci. +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +% Priprava na razeni. +% +% Funkce je zmenena oproti puvodnimu zneni v plain.bst. +FUNCTION {presort} +{ type$ "book" = + type$ "inbook" = + or + { author.editor.sort } + { author.sort } + if$ + " " * + year field.or.null sortify * + " " * + title field.or.null + sort.format.title * + #1 entry.max$ substring$ + 'sort.key$ := +} + +% Provede pripravu pred razenim. +ITERATE {presort} + +% Provede serazeni. +SORT + +% Deklarace retezcove promenne pro urceni nejdelsiho navesti do soupisu bib.cit. +STRINGS { longest.label } + +% Deklarace pomocnych ciselnych promennych. +INTEGERS { number.label longest.label.width } + +% Inicializace pomocnych promennych. +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +% Predani nejdelsiho navesti. +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +% Provede inicializaci pomocnych promennych. +EXECUTE {initialize.longest.label} + +% Vybere nejdelsi navesti. +ITERATE {longest.label.pass} + +% Tato funkce se stara o prvni radky, ktere se objevi ve vystupnim souboru. +% +% Tato funkce je rozsirena o podminenou definici prikazu \url{}. +FUNCTION {begin.bib} +{ "\makeatletter" write$ newline$ +%%% "\@ifundefined{url}" +%%% "{\def\url#1{{\tt $<$#1$>$}}}" * +%%% "{\DeclareUrlCommand\url{\def\UrlLeft{<} \def\UrlRight{>} \urlstyle{tt}}}" * +%%% write$ newline$ + "\makeatother" write$ newline$ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +% Funkce zapise posledni radky do vystupniho souboru -- uzavre prostredi +% thebibliography. +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +% Vlozi do vystupniho souboru zacatek prostredi thebibliography. +EXECUTE {begin.bib} + +% Provede inicilizaci potrebnych konstant. +EXECUTE {init.state.consts} + +% Zpracovani vsech citovanych zaznamu. +ITERATE {call.type$} + +% Uzavre prostredi thebibliography. +EXECUTE {end.bib} diff --git a/overleaf/fitthesis.cls b/overleaf/fitthesis.cls new file mode 100644 index 0000000..b5ce959 --- /dev/null +++ b/overleaf/fitthesis.cls @@ -0,0 +1,1377 @@ +% ---------------------------------------------------------------------------- +% FIT thesis +% ---------------------------------------------------------------------------- +% Autoři / Authors: 2007 Zdeněk Vašíček, 2008 Michal Bidlo, 2019 Jaroslav Dytrych +% ---------------------------------------------------------------------------- +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{fitthesis}[2022/11/14 Sablona pro BP/DP] + +%Vychozi hodnoty parametru / Default values for parameters +\newif\ifczech \let\ifczech\iftrue +\newif\ifslovak \let\ifslovak\iffalse +\newif\ifenslovak \let\ifenslovak\iffalse +\newif\ifenglish \let\ifenglish\iffalse +\newif\ifczechslovak \let\ifczechslovak\iftrue +\newif\ifcover \let\ifcover\iffalse +\newif\ifCOPEN \let\ifCOPEN\iffalse +\newif\ifCBOPEN \let\ifCBOPEN\iffalse +\newif\ifODSAZ \let\ifODSAZ\iffalse + +\newif\ifPrint \let\ifPrint\iffalse +\newif\ifBarLogo \let\ifBarLogo\iffalse +\newif\ifWis \let\ifWis\iftrue +\newif\ifzadani \let\ifzadani\iffalse +\newif\iftwoside \let\iftwoside\iffalse +\newif\ifoneside \let\ifoneside\iftrue +\newif\ifphdsummary \let\ifphdsummary\iffalse + +%----------------------------------------------------------------------------- +% Parametry tridy (odkomentovani zakomentovanych na vlastni nebezpeci) +% Class parameters (uncommenting of commented one is only on your own risk) +%----------------------------------------------------------------------------- +\DeclareOption{english}{\let\ifenglish\iftrue\let\ifczech\iffalse\let\ifczechslovak\iffalse} +\DeclareOption{slovak}{\let\ifslovak\iftrue\let\ifczech\iffalse} +\DeclareOption{enslovak}{\let\ifenslovak\iftrue} +\DeclareOption{cover}{\let\ifcover\iftrue} +\DeclareOption{print}{\let\ifWis\iffalse \let\ifPrint\iftrue} +\DeclareOption{cprint}{\let\ifWis\iffalse \let\ifPrint\iftrue \let\ifBarLogo\iftrue} +\DeclareOption{zadani}{\let\ifzadani\iftrue} +\DeclareOption{twoside}{\let\ifoneside\iffalse \let\iftwoside\iftrue} +\DeclareOption{phdsummary}{\let\ifoneside\iffalse \let\iftwoside\iffalse \let\ifphdsummary\iftrue} +%\DeclareOption{COPEN}{\let\ifCOPEN\iftrue} +%\DeclareOption{CBOPEN}{\let\ifCBOPEN\iftrue} +\DeclareOption{odsaz}{\let\ifODSAZ\iftrue} + +\DeclareOption*{} +\ProcessOptions\relax +%Jako vychozi pouzijeme tridu REPORT / We will use REPORT class as a base +\iftwoside + \ifx\pdfoutput\undefined % nejedeme pod pdftexem / we are not using pdftex + \LoadClass[a4paper,twoside,onecolumn,11pt]{report} + \else + \LoadClass[pdftex,a4paper,twoside,onecolumn,11pt]{report} + \fi +\fi +\ifoneside + \ifx\pdfoutput\undefined % nejedeme pod pdftexem + \LoadClass[a4paper,oneside,onecolumn,11pt]{report} + \else + \LoadClass[pdftex,a4paper,oneside,onecolumn,11pt]{report} + \fi +\fi +\ifphdsummary + \ifx\pdfoutput\undefined % nejedeme pod pdftexem / we are not using pdftex + \LoadClass[a5paper,twoside,onecolumn,11pt]{report} + \else + \LoadClass[pdftex,a5paper,twoside,onecolumn,11pt]{report} + \fi + \twosidetrue +\fi + +%----------------------------------------------------------------------------- +% Balicky / Packages +%----------------------------------------------------------------------------- +\ifenglish + \PassOptionsToPackage{main=english}{babel} +\fi +\usepackage{amsmath} +\usepackage{amssymb} +\usepackage[czech,slovak,english]{babel} +\usepackage[utf8]{inputenc} %kodovani / encoding +\usepackage{cmap} +\usepackage[T1]{fontenc} +\usepackage{url} +\usepackage{ragged2e} +\usepackage{color} +\usepackage{etoolbox} +\usepackage{enumitem} + +\ifczech + \main@language{czech} +\else + \ifslovak + \main@language{slovak} + \else + \main@language{english} + \fi +\fi +\ifx\pdfoutput\undefined % nejedeme pod pdftexem / we are not using pdftex + \usepackage{graphics} + \usepackage{epsfig} +\else % je to pdftex ! / it is pdftex ! + \ifzadani + \usepackage{pdfpages} + \else % neni potreba pdfpages / pdfpages is not necessary + \usepackage[pdftex]{graphicx} + \fi +\fi + +\newtoggle{phd_summary} +\togglefalse{phd_summary} +\ifphdsummary + \toggletrue{phd_summary} +\fi + +\newtoggle{slovak_used} +\togglefalse{slovak_used} + +\ifslovak + \toggletrue{slovak_used} +\fi + +\newtoggle{english_used} +\togglefalse{english_used} + +\ifenglish + \toggletrue{english_used} +\fi + +\newtoggle{enslovak_used} +\togglefalse{enslovak_used} + +\ifenslovak + \toggletrue{enslovak_used} +\fi + +\newtoggle{czech_used} +\togglefalse{czech_used} + +\ifczech + \toggletrue{czech_used} +\fi + +\newtoggle{czechslovak} +\togglefalse{czechslovak} +\ifczech + \toggletrue{czechslovak} +\fi +\ifslovak + \toggletrue{czechslovak} +\fi + +\newtoggle{zadaniTwop} +\togglefalse{zadaniTwop} +\iftwoside + \toggletrue{zadaniTwop} +\fi +\iftoggle{zadaniTwop}{ + \ifzadani + \toggletrue{zadaniTwop} + \else + \togglefalse{zadaniTwop} + \fi +}{} + + +%----------------------------------------------------------------------------- +% Sazebni obrazec / Page layout +%----------------------------------------------------------------------------- +\iftwoside +% \usepackage[left=3.46cm, text={15.2cm,23.47cm}, top=2.5cm, marginparwidth=50pt]{geometry} + \usepackage[a4paper]{geometry} + \newgeometry{left=3.46cm, text={15.2cm,23.47cm}, top=2.5cm, marginparwidth=50pt} +\else + \setlength{\hoffset}{-0.7cm} + \setlength{\voffset}{-1.5cm} + \setlength{\textheight}{23.0cm} + \setlength{\textwidth}{15.2cm} +\fi + +\ifphdsummary + \newgeometry{left=1.8cm, text={9.5cm,16.5cm}, top=2.0cm, marginparwidth=25pt} +\fi + +\ifODSAZ + \setlength{\parindent}{0pt} + \setlength{\parskip}{0.5\bigskipamount} +\else + \setlength\parindent{17\p@} + \setlength{\parskip}{0pt} +\fi + + +%----------------------------------------------------------------------------- +% Texty / Texts +%----------------------------------------------------------------------------- +\def\@vut@CS{Vysoké učení technické v~Brně} +\def\@vut@SK{Vysoké učení technické v~Brně} +\def\@vut@EN{Brno University of Technology} +\def\@author@CS{Autor práce} +\def\@author@SK{Autor práce} +\def\@author@EN{Author} +\def\@abstract@CS{Abstrakt} +\def\@abstract@SK{Abstrakt} +\def\@abstract@EN{Abstract} +\def\@extendedabstract@CS{Rozšířený abstrakt} +\def\@extendedabstract@SK{Rozšírený abstrakt} +\def\@keywords@CS{Klíčová slova} +\def\@keywords@SK{Kľúčové slová} +\def\@keywords@EN{Keywords} +\def\@cite@CS{Citace} +\def\@cite@SK{Citácia} +\def\@cite@EN{Reference} +\def\@tdecl@CS{Prohlášení} +\def\@tdecl@SK{Prehlásenie} +\def\@tdecl@EN{Declaration} +\def\@tackn@CS{Poděkování} +\def\@tackn@SK{Poďakovanie} +\def\@tackn@EN{Acknowledgements} + +\newif\ifnasel +\def\ifEqString#1#2#3#4{\def\testa{#1}\def\testb{#2}% + \ifx\testa\testb \def#4{#3} \naseltrue \fi% +} + +%Vyber typu projektu / project type selection +\newcommand{\set@project}[1]{% + \naselfalse + \ifEqString{#1}{BP}{Bakalářská práce}{\@projecttype@CS}% +% \ifEqString{#1}{BP}{Bakalárska práca}{\@projecttype@SK}% + \ifEqString{#1}{BP}{Bakalářská práce}{\@projecttype@SK}% + \ifEqString{#1}{BP}{Bachelor's thesis}{\@projecttype@EN}% + \ifEqString{#1}{BP}{Vedoucí práce}{\@supervisor@CS}% +% \ifEqString{#1}{BP}{Vedúci práce}{\@supervisor@SK}% + \ifEqString{#1}{BP}{Vedoucí práce}{\@supervisor@SK}% + \ifEqString{#1}{BP}{Supervisor}{\@supervisor@EN}% + \ifEqString{#1}{SP}{Semestrální projekt}{\@projecttype@CS}% +% \ifEqString{#1}{SP}{Semestrálny projekt}{\@projecttype@SK}% + \ifEqString{#1}{SP}{Semestrální projekt}{\@projecttype@SK}% + \ifEqString{#1}{SP}{Term project}{\@projecttype@EN}% + \ifEqString{#1}{SP}{Vedoucí práce}{\@supervisor@CS}% +% \ifEqString{#1}{SP}{Vedúci práce}{\@supervisor@SK}% + \ifEqString{#1}{SP}{Vedoucí práce}{\@supervisor@SK}% + \ifEqString{#1}{SP}{Supervisor}{\@supervisor@EN}% + \ifEqString{#1}{DP}{Diplomová práce}{\@projecttype@CS}% +% \ifEqString{#1}{DP}{Diplomová práca}{\@projecttype@SK}% + \ifEqString{#1}{DP}{Diplomová práce}{\@projecttype@SK}% + \ifEqString{#1}{DP}{Master's thesis}{\@projecttype@EN}% + \ifEqString{#1}{DP}{Vedoucí práce}{\@supervisor@CS}% +% \ifEqString{#1}{DP}{Vedúci práce}{\@supervisor@SK}% + \ifEqString{#1}{DP}{Vedoucí práce}{\@supervisor@SK}% + \ifEqString{#1}{DP}{Supervisor}{\@supervisor@EN}% + \ifEqString{#1}{DR}{Disertační práce}{\@projecttype@CS}% +% \ifEqString{#1}{DR}{Dizertačná práca}{\@projecttype@SK}% + \ifEqString{#1}{DR}{Disertační práce}{\@projecttype@SK}% + \ifEqString{#1}{DR}{PhD thesis}{\@projecttype@EN}% + \ifEqString{#1}{DR}{Školitel}{\@supervisor@CS}% +% \ifEqString{#1}{DR}{Školiteľ}{\@supervisor@SK}% + \ifEqString{#1}{DR}{Školitel}{\@supervisor@SK}% + \ifEqString{#1}{DR}{Supervisor}{\@supervisor@EN}% + \ifEqString{#1}{DA}{Teze disertační práce -- autoreferát}{\@projecttype@CS}% +% \ifEqString{#1}{DA}{Tézy dizertačnej práce -- autoreferát}{\@projecttype@SK}% + \ifEqString{#1}{DA}{Teze disertační práce -- autoreferát}{\@projecttype@SK}% + \ifEqString{#1}{DA}{PhD thesis summary}{\@projecttype@EN}% + \ifEqString{#1}{DA}{Školitel}{\@supervisor@CS}% +% \ifEqString{#1}{DA}{Školiteľ}{\@supervisor@SK}% + \ifEqString{#1}{DA}{Školitel}{\@supervisor@SK}% + \ifEqString{#1}{DA}{Supervisor}{\@supervisor@EN}% + \ifEqString{#1}{DT}{Pojednání k tématu disertační práce}{\@projecttype@CS}% +% \ifEqString{#1}{DT}{Teze disertační práce}{\@projecttype@CS}% +% \ifEqString{#1}{DT}{Pojednanie k téme dizertačnej práce}{\@projecttype@SK}% + \ifEqString{#1}{DT}{Pojednání k tématu disertační práce}{\@projecttype@SK}% + \ifEqString{#1}{DT}{PhD thesis proposal}{\@projecttype@EN}% + \ifEqString{#1}{DT}{Školitel}{\@supervisor@CS}% +% \ifEqString{#1}{DT}{Školiteľ}{\@supervisor@SK}% + \ifEqString{#1}{DT}{Školitel}{\@supervisor@SK}% + \ifEqString{#1}{DT}{Supervisor}{\@supervisor@EN}% + \ifEqString{#1}{PP}{Projektová praxe}{\@projecttype@CS}% + \ifEqString{#1}{PP}{Projektová prax}{\@projecttype@SK}% + \ifEqString{#1}{PP}{Project practice}{\@projecttype@EN}% + \ifEqString{#1}{PP}{Vedoucí}{\@supervisor@CS}% + \ifEqString{#1}{PP}{Vedúcí}{\@supervisor@SK}% + \ifEqString{#1}{PP}{Supervisor}{\@supervisor@EN}% + \ifnasel + \else + \typeout{Spatny typ projektu! Moznosti: BP, SP, DP, DR, DT, DA, PP}\set@project{BP} + \fi +} + +%Vyber fakulty / faculty selection +\newcommand{\set@faculty}[3]{% + \naselfalse + \ifEqString{#1}{FIT}{Fakulta informačních technologií}{\@fit@CS}% + \ifEqString{#1}{FIT}{Fakulta informačních technologií}{\@fit@SK}% + \ifEqString{#1}{FIT}{Faculty of Information Technology}{\@fit@EN}% + \ifEqString{#1}{FEKT}{Fakulta elektrotechniky +a komunikačních technologií}{\@fit@CS}% + \ifEqString{#1}{FEKT}{Fakulta elektrotechniky +a komunikačních technologií}{\@fit@SK}% + \ifEqString{#1}{FEKT}{Faculty of Electrical Engineering +and Communication}{\@fit@EN}% + \ifEqString{#1}{FSI}{Fakulta strojního inženýrství}{\@fit@CS}% + \ifEqString{#1}{FSI}{Fakulta strojního inženýrství}{\@fit@SK}% + \ifEqString{#1}{FSI}{Faculty of Mechanical +Engineering}{\@fit@EN}% + \ifEqString{#1}{FA}{Fakulta architektury}{\@fit@CS}% + \ifEqString{#1}{FA}{Fakulta architektury}{\@fit@SK}% + \ifEqString{#1}{FA}{Faculty of Architecture}{\@fit@EN}% + \ifEqString{#1}{FCH}{Fakulta chemická}{\@fit@CS}% + \ifEqString{#1}{FCH}{Fakulta chemická}{\@fit@SK}% + \ifEqString{#1}{FCH}{Faculty of Chemistry}{\@fit@EN}% + \ifEqString{#1}{FP}{Fakulta podnikatelská}{\@fit@CS}% + \ifEqString{#1}{FP}{Fakulta podnikatelská}{\@fit@SK}% + \ifEqString{#1}{FP}{Faculty of Business and +Management}{\@fit@EN}% + \ifEqString{#1}{FAST}{Fakulta stavební}{\@fit@CS}% + \ifEqString{#1}{FAST}{Fakulta stavební}{\@fit@SK}% + \ifEqString{#1}{FAST}{Faculty of Civil Engineering}{\@fit@EN}% + \ifEqString{#1}{FAVU}{Fakulta výtvarných umění}{\@fit@CS}% + \ifEqString{#1}{FAVU}{Fakulta výtvarných umění}{\@fit@SK}% + \ifEqString{#1}{FAVU}{Faculty of Fine Arts}{\@fit@EN}% + \ifEqString{#1}{USI}{Ústav soudního inženýrství}{\@fit@CS}% + \ifEqString{#1}{USI}{Ústav soudního inženýrství}{\@fit@SK}% + \ifEqString{#1}{USI}{Institute of Forensic Engineering}{\@fit@EN}% + \ifEqString{#1}{DEF}{#2}{\@fit@CS}% + \ifEqString{#1}{DEF}{#2}{\@fit@SK}% + \ifEqString{#1}{DEF}{#3}{\@fit@EN}% + \ifnasel + \else + \typeout{Spatna fakulta! Moznosti: FIT, FEKT, FSI, FA, FCH, FP, FAST, FAVU, USI}\set@faculty{FIT} + \fi +} + +%Vyber ustavu / department selection +\newcommand{\set@department}[3]{% + \naselfalse + \ifEqString{#1}{UIFS}{Ústav informačních systémů}{\@department@CS}% + \ifEqString{#1}{UIFS}{Ústav informačních systémů}{\@department@SK}% + \ifEqString{#1}{UIFS}{Department of Information Systems}{\@department@EN}% + \ifEqString{#1}{UPSY}{Ústav počítačových systémů}{\@department@CS}% + \ifEqString{#1}{UPSY}{Ústav počítačových systémů}{\@department@SK}% + \ifEqString{#1}{UPSY}{Department of Computer Systems}{\@department@EN}% + \ifEqString{#1}{UITS}{Ústav inteligentních systémů}{\@department@CS}% + \ifEqString{#1}{UITS}{Ústav inteligentních systémů}{\@department@SK}% + \ifEqString{#1}{UITS}{Department of Intelligent Systems}{\@department@EN}% + \ifEqString{#1}{UPGM}{Ústav počítačové grafiky a multimédií}{\@department@CS}% + \ifEqString{#1}{UPGM}{Ústav počítačové grafiky a multimédií}{\@department@SK}% + \ifEqString{#1}{UPGM}{Department of Computer Graphics and~Multimedia}{\@department@EN}% + \ifEqString{#1}{DEF}{#2}{\@department@CS}% + \ifEqString{#1}{DEF}{#2}{\@department@SK}% + \ifEqString{#1}{DEF}{#3}{\@department@EN}% + \ifnasel + \else + \typeout{Spatny ustav! Moznosti: UPSY, UIFS, UITS, UPGM, DEF}\set@department{UIFS} + \fi +} + +%Nazev ustavu (CS, SK, EN) / name of the department +\def\@departmentname@CS{\@department@CS} +\def\@departmentname@SK{\@department@SK} +\def\@departmentname@EN{\@department@EN} + +%Nazev prace (v jazyce prace) / thesis title (in the language of the thesis) +\iftoggle{slovak_used}{ + \def\@title{\@title@CS} +}{ + \def\@title{\ifczech\@title@CS\else\@title@EN\fi} +} + +%Jmeno, prijmeni, tituly autora / name surname and the titles of the author +\def\get@author{\ifx\undefined\@author@tp\else% +\@author@tp~\fi\MakeUppercase{\@author}\ifx\undefined\@author@ta\else,~\@author@ta\fi} +\def\getlc@author{\ifx\undefined\@author@tp\else% +\@author@tp~\fi\@author\ifx\undefined\@author@ta\else,~\@author@ta\fi} +%Jmeno, prijmeni, tituly vedouciho / name surname and the titles of the supervisor +\def\get@supervisor{\ifx\undefined\@supervisor@tp\else% +\@supervisor@tp~\fi\MakeUppercase{\@supervisor}\ifx\undefined\@supervisor@ta\else,~\@supervisor@ta\fi} + +%----------------------------------------------------------------------------- +% Projectinfo - parametrizace sablony / template parameters +%----------------------------------------------------------------------------- +%Parametry +\define@key{projinfo}{title.cs}{\global\def\@title@CS{#1}} +\define@key{projinfo}{title.en}{\global\def\@title@EN{#1}} +\define@key{projinfo}{faculty.cs}{\def\@faculty@CS{#1}} +\define@key{projinfo}{faculty.en}{\def\@faculty@EN{#1}} +\define@key{projinfo}{faculty}{\set@faculty{#1}{\@faculty@CS}{\@faculty@EN}} +\define@key{projinfo}{department.cs}{\def\@departmentn@CS{#1}} +\define@key{projinfo}{department.en}{\def\@departmentn@EN{#1}} +\define@key{projinfo}{department}{\set@department{#1}{\@departmentn@CS}{\@departmentn@EN}} +\define@key{projinfo}{project}{\set@project{#1}} +\define@key{projinfo}{year}{\def\@year{#1}} +\define@key{projinfo}{date}{\def\@date{#1}} +%\define@key{projinfo}{author}{\def\@author{#1}} +\define@key{projinfo}{author.name}{\def\@author@n{#1}} +\define@key{projinfo}{author.surname}{\def\@author@s{#1}} +\define@key{projinfo}{author.title.a}{\def\@author@ta{#1}} +\define@key{projinfo}{author.title.p}{\def\@author@tp{#1}} +\define@key{projinfo}{supervisor.name}{\def\@supervisor@n{#1}} +\define@key{projinfo}{supervisor.surname}{\def\@supervisor@s{#1}} +\define@key{projinfo}{supervisor.title.a}{\def\@supervisor@ta{#1}} +\define@key{projinfo}{supervisor.title.p}{\def\@supervisor@tp{#1}} +\define@key{projinfo}{keywords.cs}{\def\@tkeywords@CS{#1}} +\define@key{projinfo}{keywords.en}{\def\@tkeywords@EN{#1}} +\define@key{projinfo}{abstract.cs}{\def\@tabstract@CS{#1}} +\define@key{projinfo}{abstract.en}{\def\@tabstract@EN{#1}} +\define@key{projinfo}{extendedabstract}{\def\@textendedabstract{#1}} +\define@key{projinfo}{extabstract.odd}{\def\@extabstracto{#1}} +\define@key{projinfo}{declaration}{\def\@declaration{#1}} +\define@key{projinfo}{acknowledgment}{\def\@acknowledgment{#1}} +\define@key{projinfo}{title.length}{\def\@titlelen{#1}} +\define@key{projinfo}{sectitle.length}{\def\@sectitlelen{#1}} +\define@key{projinfo}{dectitle.length}{\def\@dectitlelen{#1}} + +%Vychozi hodnoty / Default values +\setkeys{projinfo}{ + title.cs={Název práce (česky)},title.en={Název práce(anglicky)}, + date=\today, project=BP, department=DEF, declaration=, + abstract.cs=, abstract.en=, keywords.cs=, keywords.en=, + author.name=Jméno, author.surname=Příjmení, supervisor.name=Jméno, + supervisor.surname=Příjmení, extendedabstract=, extabstract.odd=, + department.cs=,department.en=,title.length=, + sectitle.length=,dectitle.length=, + faculty.cs=,faculty.en=,faculty=FIT +}% + +\def\projectinfo{\setkeys{projinfo}} + +\def\@author{\@author@n\ \@author@s} +\def\@supervisor{\@supervisor@n\ \@supervisor@s} + +%Prohlaseni / Declaration +\newcommand{\declaration}[1]{\def\@declaration{#1}} + +%Podekovani / Acknowledgement +\newcommand{\acknowledgment}[1]{\def\@acknowledgment{#1}} + +%Abstrakt / Abstract +\renewcommand{\abstract}[2][cs]{% + \ifEqString{#1}{cs}{#2}{\@tabstract@CS}% + \ifEqString{#1}{sk}{#2}{\@tabstract@SK}% + \ifEqString{#1}{en}{#2}{\@tabstract@EN}% +} + +%Klicova slova / Keywords +\newcommand{\keywords}[2][cs]{% + \ifEqString{#1}{cs}{#2}{\@tkeywords@CS}% + \ifEqString{#1}{sk}{#2}{\@tkeywords@SK}% + \ifEqString{#1}{en}{#2}{\@tkeywords@EN}% +} + +%Rozsireny abstrakt / Extended abstract +\newcommand{\extendedabstract}[1]{% + \def\@textendedabstract{#1}% +} + +% Začít rozšířený abstrakt na liché stránce? / Should extended abstract start on the odd page? +\newcommand{\extabstractodd}[1]{% + \def\@extabstracto{#1}% +} + +%Délka titulku / Title length +\newcommand{\titlelength}[1]{% + \def\@titlelen{#1}% +} + +%Délka druhého titulku / Second title length +\newcommand{\sectitlelength}[1]{% + \def\@sectitlelen{#1}% +} + +%Délka titulku nad prohlášením / Length of the title above declaration +\newcommand{\dectitlelength}[1]{% + \def\@dectitlelen{#1}% +} + +\newlength{\mkspc} +\setlength{\mkspc}{2pt} + +\def\setfontsize#1{\renewcommand{\baselinestretch}{1.5}\fontsize{#1}{\f@baselineskip}\selectfont} +%text +\newcommand{\mktxt}[2]{\vbox{\setfontsize{#1}\noindent#2}\vspace\mkspc} +%text pro titulní list / text for title page +\newcommand{\mktxtt}[2]{\vbox{\setfontsize{#1}\fosfamily\bfseries\noindent#2}\vspace\mkspc} +%text pro desky / text for cover +\newcommand{\mktxtc}[2]{\vbox{\setfontsize{#1}\ifCOPEN\fosfamily\fi\ifCBOPEN\fosfamily\bfseries\fi\noindent#2}\vspace\mkspc} +%všechna velká / uppercase +\newcommand{\mkuctxt}[2]{\vbox{\setfontsize{#1}\noindent\MakeUppercase{#2}}\vspace\mkspc} +\newcommand{\mkuctxtt}[2]{\vbox{\setfontsize{#1}\fosfamily\bfseries\noindent\MakeUppercase{#2}}\vspace\mkspc} +% Pro název práce na 2 řádky / For the 2-line thesis title +\newcommand{\mkuctxttl}[3]{\vbox to 1.2cm{\noindent\parbox{#2}{\setfontsize{#1}\fosfamily\bfseries\noindent\MakeUppercase{#3}}}\vspace\mkspc} +% Pro 2. název práce na 2 řádky / For the 2-line second thesis title +\newcommand{\mkuctxttls}[3]{\vbox to 1.0cm{\noindent\parbox{#2}{\setfontsize{#1}\fosfamily\bfseries\noindent\baselineskip=13pt\MakeUppercase{#3}}}\vspace\mkspc} +\newcommand{\mkuctxtc}[2]{\vbox{\setfontsize{#1}\ifCOPEN\fosfamily\fi\ifCBOPEN\fosfamily\bfseries\fi\noindent\MakeUppercase{#2}}\vspace\mkspc} +%bold +\newcommand{\mktxt@b}[2]{\vbox{\setfontsize{#1}\noindent\bf#2}\vspace\mkspc} +%bold na 2 řádky / 2-line bold +\newcommand{\mktxtl@b}[3]{\vbox to 1.0cm{\noindent\parbox{#2}{\setfontsize{#1}\noindent\bf\baselineskip=18pt #3}}\vspace\mkspc} +%bold pro titulní list / bold for title page +\newcommand{\mktxtt@b}[2]{\vbox{\setfontsize{#1}\fosfamily\bfseries\noindent\bf#2}\vspace\mkspc} + +%----------------------------------------------------------------------------- +% Desky / Cover \makecover +%----------------------------------------------------------------------------- +\newcommand\makecover{ +\thispagestyle{empty}\null% + +\setlength\parindent{17\p@} +\setlength{\parskip}{0pt} + +\fontfamily{qhv}\selectfont% +% + +\addtolength{\voffset}{-0.95cm} + +\begin{center} + +\ifczech + \noindent\hspace{-34.0pt}\mkuctxtc{20}{\@vut@CS} +\else + \ifslovak + \noindent\hspace{-34.0pt}\mkuctxtc{20}{\@vut@CS} + \else + \noindent\hspace{-34.0pt}\mkuctxtc{20}{\@vut@EN} + \fi +\fi + +\vspace{8mm} + +\ifczech + \noindent\hspace{-34.0pt}\mktxtc{20}{\@fit@CS} +\else + \ifslovak + \noindent\hspace{-34.0pt}\mktxtc{20}{\@fit@CS} + \else + \noindent\hspace{-34.0pt}\mktxtc{20}{\@fit@EN} + \fi +\fi + +\vspace{9cm} + +\ifczech + \noindent\hspace{-34.0pt}\mkuctxtc{20}{\@projecttype@CS} +\else + \ifslovak + \noindent\hspace{-34.0pt}\mkuctxtc{20}{\@projecttype@CS} + \else + \noindent\hspace{-34.0pt}\mkuctxtc{20}{\@projecttype@EN} + \fi +\fi + +\enlargethispage{5.1\baselineskip} + +\vfill + +\noindent\mktxtc{16}{\hspace{-52.0pt}Brno, \@year \hfill \getlc@author \hspace{5.0pt}~} + +\ifODSAZ + \setlength{\parindent}{0pt} + \setlength{\parskip}{0.5\bigskipamount} +\else + \setlength\parindent{17\p@} + \setlength{\parskip}{0pt} +\fi + +\end{center} + +%=================================================== +\newpage +\fontfamily{\familydefault}\selectfont% +\addtolength{\voffset}{0.95cm} +} + +%----------------------------------------------------------------------------- +% Abstrakt, klicova slova \makeabstract +% Abstract, keywords \makeabstract +%----------------------------------------------------------------------------- +\newcommand\makeabstract{% +\thispagestyle{empty}\null% + +\ifczech +\mktxt@b{16}{\@abstract@CS}\noindent\@tabstract@CS +\else + \ifslovak + \mktxt@b{16}{\@abstract@SK}\noindent\@tabstract@CS + \else + \mktxt@b{16}{\@abstract@EN}\noindent\@tabstract@EN + \fi +\fi + +\vfill + +\iftoggle{czech_used}{ +\mktxt@b{16}{\@abstract@EN}\noindent\@tabstract@EN +}{ + \ifslovak + \mktxt@b{16}{\@abstract@EN}\noindent\@tabstract@EN + \else + \ifenslovak + \mktxt@b{16}{\@abstract@SK}\noindent\@tabstract@CS + \else + \mktxt@b{16}{\@abstract@CS}\noindent\@tabstract@CS + \fi + \fi +} + +\vfill + +\ifczech +\mktxt@b{16}{\@keywords@CS}\noindent\@tkeywords@CS +\else + \ifslovak + \mktxt@b{16}{\@keywords@SK}\noindent\@tkeywords@CS + \else + \mktxt@b{16}{\@keywords@EN}\noindent\@tkeywords@EN + \fi +\fi + +\vfill + +\iftoggle{czech_used}{ +\mktxt@b{16}{\@keywords@EN}\noindent\@tkeywords@EN +}{ + \ifslovak + \mktxt@b{16}{\@keywords@EN}\noindent\@tkeywords@EN + \else + \ifenslovak + \mktxt@b{16}{\@keywords@SK}\noindent\@tkeywords@CS + \else + \mktxt@b{16}{\@keywords@CS}\noindent\@tkeywords@CS + \fi + \fi +} + +\vfill + +\mktxt@b{16}{\ifslovak\@cite@SK\else\ifczech\@cite@CS\else\@cite@EN\fi\fi} +\iftoggle{slovak_used}{ + \noindent\MakeUppercase{\@author@s}, \@author@n. \it\@title\rm. Brno, \@year. \@projecttype@SK. \@vut@SK, \@fit@SK. {\@supervisor@SK} {\ifx\undefined\@supervisor@tp\else\@supervisor@tp ~\fi}{\@supervisor@n} {\@supervisor@s}{\ifx\undefined\@supervisor@ta\else,~\@supervisor@ta\fi} +}{ + \noindent\MakeUppercase{\@author@s}, \@author@n. \it\@title\rm. Brno, \@year. \ifczech\@projecttype@CS\else\@projecttype@EN\fi. \ifczech\@vut@CS\else\@vut@EN\fi, \ifczech\@fit@CS\else\@fit@EN\fi. {\ifczech\@supervisor@CS\else\@supervisor@EN\fi} {\ifx\undefined\@supervisor@tp\else\@supervisor@tp ~\fi}{\@supervisor@n} {\@supervisor@s}{\ifx\undefined\@supervisor@ta\else,~\@supervisor@ta\fi} +} +%=================================================== +\newpage + +} + +%Rozsireny abstrakt / Extended abstract +\newcommand\makeextendedabstract{% + %Pro rozšířený abstrakt začínající na liché stránce / For extended abstract starting on the odd page + \newtoggle{extabstract_odd} + \togglefalse{extabstract_odd} + + \ifx\@extabstracto\@empty + \else + \toggletrue{extabstract_odd} + \fi + + \pagestyle{empty}% + \iftwoside + \iftoggle{extabstract_odd}{ + \cleardoublepage + }{} + \fi + \ifenslovak + \mktxt@b{16}{\@extendedabstract@SK}\noindent\@textendedabstract + \else + \mktxt@b{16}{\@extendedabstract@CS}\noindent\@textendedabstract + \fi + \iftwoside + \iftoggle{extabstract_odd}{ + \cleardoublepage + }{ + \newpage + } + \else + \newpage + \fi + \pagestyle{plain} +} + +%----------------------------------------------------------------------------- +% Prohlaseni, podekovani \makedeclaration +% Declaration, acknowledgement \makedeclaration +%----------------------------------------------------------------------------- +\newcommand\makedeclaration{ +\pagestyle{empty}% + + +\iftoggle{long_dectitle}{ + \mktxtl@b{18}{\@dectitlelen}{\@title} +}{ + \mktxt@b{18}{\@title} +} + +\ifx\@declaration\@empty +\else + \vspace{10mm} + \ifslovak + \mktxt@b{16}{\@tdecl@SK} + \else + \mktxt@b{16}{\ifczech\@tdecl@CS\else\@tdecl@EN\fi} + \fi + + \noindent\@declaration + + \begin{flushright} + \makebox[4cm]{\dotfill} \\ + \@author\\ + \@date + \end{flushright} +\fi + +\ifx\undefined\@acknowledgment +\else +\vspace{20mm} +\ifslovak + \mktxt@b{16}{\@tackn@SK} +\else + \mktxt@b{16}{\ifczech\@tackn@CS\else\@tackn@EN\fi} +\fi +\noindent\@acknowledgment +\fi + +\vfill + +%=================================================== +\iftwoside + \cleardoublepage +\else + \newpage +\fi +\pagestyle{plain} +} + +%----------------------------------------------------------------------------- +% Uvodni stranky \maketitle +% Introductory pages \maketitle +%----------------------------------------------------------------------------- +\renewcommand\maketitle{% +\ifcover\makecover\fi% +\thispagestyle{empty}\null% +\iftwoside + \pagestyle{empty}\null% +\fi + +\setlength\parindent{17\p@} +\setlength{\parskip}{0pt} + +%===================================================== +\fontfamily{qhv}\selectfont% +%\newsavebox{\@obrlogo}\newsavebox{\@rtext}\newlength{\@vyskartext}\newlength{\@vyskaobr}% +\newsavebox{\@obrlogo}\newsavebox{\@rtext}\newlength{\@vyskartext}\newlength{\@sirkartext}\newlength{\@vyskaobr}\newlength{\@sirkaobr}% + +\iftoggle{phd_summary}{ + +\ifPrint + \ifBarLogo + \savebox{\@obrlogo}{\hspace*{-0.6cm}\includegraphics[width=2.5cm,keepaspectratio,trim={1.2cm 1.2cm 1.2cm 1.2cm},clip]{template-fig/VUT_symbol_barevne_CMYK_CZ}}%symbol VUT + \else + \savebox{\@obrlogo}{\hspace*{-0.6cm}\includegraphics[width=2.5cm,keepaspectratio,trim={1.2cm 1.2cm 1.2cm 1.2cm},clip]{template-fig/VUT_symbol_cernobile_CZ}}%symbol VUT + \fi +\else + \savebox{\@obrlogo}{\hspace*{-0.6cm}\includegraphics[width=2.5cm,keepaspectratio,trim={1.2cm 1.2cm 1.2cm 1.2cm},clip]{template-fig/VUT_symbol_barevne_CMYK_CZ}}%symbol VUT +\fi + +}{ + +\ifPrint + \ifBarLogo + \savebox{\@obrlogo}{\hspace*{-0.6cm}\includegraphics[width=4.1cm,keepaspectratio,trim={1.2cm 1.2cm 1.2cm 1.2cm},clip]{template-fig/VUT_symbol_barevne_CMYK_CZ}}%symbol VUT + \else + \savebox{\@obrlogo}{\hspace*{-0.6cm}\includegraphics[width=4.1cm,keepaspectratio,trim={1.2cm 1.2cm 1.2cm 1.2cm},clip]{template-fig/VUT_symbol_cernobile_CZ}}%symbol VUT + \fi +\else + \savebox{\@obrlogo}{\hspace*{-0.6cm}\includegraphics[width=4.1cm,keepaspectratio,trim={1.2cm 1.2cm 1.2cm 1.2cm},clip]{template-fig/VUT_symbol_barevne_CMYK_CZ}}%symbol VUT +\fi + +} + +\iftoggle{phd_summary}{ + \savebox{\@rtext}{\vbox{\mkuctxt{16}{\ifslovak\@vut@SK\else\ifczech\@vut@CS\else\@vut@EN\fi\fi}\mkuctxt{9}{\ifczech\@vut@EN\else\ifslovak\@vut@EN\else\@vut@CS\fi\fi}}}%text VUT +}{ + \savebox{\@rtext}{\vbox{\mkuctxt{18}{\ifslovak\@vut@SK\else\ifczech\@vut@CS\else\@vut@EN\fi\fi}\mkuctxt{11}{\ifczech\@vut@EN\else\ifslovak\@vut@EN\else\@vut@CS\fi\fi}}}%text VUT +} + +\settoheight{\@vyskaobr}{\makebox{\usebox{\@obrlogo}}}% vyska loga / logo height +\settowidth{\@sirkaobr}{\makebox{\usebox{\@obrlogo}}}% vyska loga +\settoheight{\@vyskartext}{\makebox{\usebox{\@rtext}}}% vyska textu / text height +\settowidth{\@sirkartext}{\makebox{\usebox{\@rtext}}}% sirka textu / text width +\addtolength{\@vyskaobr}{-\@vyskartext}%odecteme od vysky loga vysku textu / we will subtract text height from logo height +\addtolength{\@sirkartext}{-\@sirkaobr}\addtolength{\@sirkartext}{-10pt}%sirka textu na radku s obrazkem a odsazenim / text width on row with picture and indentation + +\newtoggle{gray_used} +\togglefalse{gray_used} + + +\usebox{\@obrlogo} + +\iftoggle{phd_summary}{ + + \vspace{5mm} + + \iftoggle{slovak_used}{ + \mkuctxtt{16}{\@vut@SK} + \mkuctxtt{9}{\@vut@EN} + }{ + \iftoggle{enslovak_used}{ + \mkuctxtt{16}{\@vut@EN} + \mkuctxtt{9}{\@vut@SK} + }{ + \mkuctxtt{16}{\ifczech\@vut@CS\else\@vut@EN\fi} + \mkuctxtt{9}{\ifczech\@vut@EN\else\@vut@CS\fi} + } + } + + \vspace{5mm} + + \iftoggle{slovak_used}{ + \mkuctxtt{12}{\@fit@SK} + \mkuctxtt{9}{\@fit@EN} + }{ + \iftoggle{enslovak_used}{ + \mkuctxtt{12}{\@fit@EN} + \mkuctxtt{9}{\@fit@SK} + }{ + \mkuctxtt{12}{\ifczech\@fit@CS\else\@fit@EN\fi} + \mkuctxtt{9}{\ifczech\@fit@EN\else\@fit@CS\fi} + } + } + + \vspace{5mm} + + \iftoggle{slovak_used}{ + \mkuctxtt{12}{\@departmentname@SK} + \mkuctxtt{9}{\@departmentname@EN} + }{ + \iftoggle{enslovak_used}{ + \mkuctxtt{12}{\@departmentname@EN} + \mkuctxtt{9}{\@departmentname@SK} + }{ + \mkuctxtt{12}{\ifczech\@departmentname@CS\else\@departmentname@EN\fi} + \mkuctxtt{9}{\ifczech\@departmentname@EN\else\@departmentname@CS\fi} + } + } + +}{ % !phd_summary + + \vspace{10mm} + + \iftoggle{slovak_used}{ + \mkuctxtt{18}{\@vut@SK} + \mkuctxtt{11}{\@vut@EN} + }{ + \iftoggle{enslovak_used}{ + \mkuctxtt{18}{\@vut@EN} + \mkuctxtt{11}{\@vut@SK} + }{ + \mkuctxtt{18}{\ifczech\@vut@CS\else\@vut@EN\fi} + \mkuctxtt{11}{\ifczech\@vut@EN\else\@vut@CS\fi} + } + } + + \vspace{5mm} + + \iftoggle{slovak_used}{ + \mkuctxtt{14}{\@fit@SK} + \mkuctxtt{11}{\@fit@EN} + }{ + \iftoggle{enslovak_used}{ + \mkuctxtt{14}{\@fit@EN} + \mkuctxtt{11}{\@fit@SK} + }{ + \mkuctxtt{14}{\ifczech\@fit@CS\else\@fit@EN\fi} + \mkuctxtt{11}{\ifczech\@fit@EN\else\@fit@CS\fi} + } + } + + \vspace{5mm} + + \iftoggle{slovak_used}{ + \mkuctxtt{14}{\@departmentname@SK} + \mkuctxtt{11}{\@departmentname@EN} + }{ + \iftoggle{enslovak_used}{ + \mkuctxtt{14}{\@departmentname@EN} + \mkuctxtt{11}{\@departmentname@SK} + }{ + \mkuctxtt{14}{\ifczech\@departmentname@CS\else\@departmentname@EN\fi} + \mkuctxtt{11}{\ifczech\@departmentname@EN\else\@departmentname@CS\fi} + } + } + +} % !phd_summary + +\vspace{5mm} + +\vfill + +% Pro název práce na 2 řádky / For the 2-line thesis title +\newtoggle{long_title} +\togglefalse{long_title} + +\ifx\@titlelen\@empty +\else + \toggletrue{long_title} +\fi + +% Pro druhý název práce na 2 řádky / For the 2-line second thesis title +\newtoggle{long_sectitle} +\togglefalse{long_sectitle} + +\ifx\@sectitlelen\@empty +\else + \toggletrue{long_sectitle} +\fi + +% Pro název práce nad prohlášením na 2 řádky / For the 2-line thesis title above declaration +\newtoggle{long_dectitle} +\togglefalse{long_dectitle} + +\ifx\@dectitlelen\@empty +\else + \toggletrue{long_dectitle} +\fi + +\iftoggle{phd_summary}{ + + % Název práce / Thesis title + \iftoggle{long_title}{ + \mkuctxttl{16}{\@titlelen}{\ifslovak\@title@CS\else\ifczech\@title@CS\else\@title@EN\fi\fi} + \iftoggle{long_sectitle}{ + \mkuctxttls{9}{\@sectitlelen}{\ifslovak\@title@EN\else\ifczech\@title@EN\else\@title@CS\fi\fi} + }{ + \mkuctxtt{9}{\ifslovak\@title@EN\else\ifczech\@title@EN\else\@title@CS\fi\fi} + } + }{ + \mkuctxtt{16}{\ifslovak\@title@CS\else\ifczech\@title@CS\else\@title@EN\fi\fi} + \mkuctxtt{9}{\ifslovak\@title@EN\else\ifczech\@title@EN\else\@title@CS\fi\fi} + } + \vfill + + \mkuctxtt{10}{\ifslovak\@projecttype@SK\else\ifczech\@projecttype@CS\else\@projecttype@EN\fi\fi} + \iftoggle{slovak_used}{ + \mkuctxtt{8}{\@projecttype@EN} + }{ + \mkuctxtt{8}{\ifenslovak\@projecttype@SK\else\ifczech\@projecttype@EN\else\@projecttype@CS\fi\fi} + } + + \vspace{3mm} + + \mktxtt{10}{\MakeUppercase{\ifslovak\@author@SK\else\ifczech\@author@CS\else\@author@EN\fi\fi} \hfill \get@author} + \iftoggle{slovak_used}{ + \mkuctxtt{8}{\@author@EN} + }{ + \mkuctxtt{8}{\ifenslovak\@author@SK\else\ifczech\@author@EN\else\@author@CS\fi\fi} + } + + \vspace{3mm} + + \mktxtt{10}{\MakeUppercase{\ifslovak\@supervisor@SK\else\ifczech\@supervisor@CS\else\@supervisor@EN\fi\fi} \hfill \get@supervisor} + \iftoggle{slovak_used}{ + \mkuctxtt{8}{\@supervisor@EN} + }{ + \mkuctxtt{8}{\ifenslovak\@supervisor@SK\else\ifczech\@supervisor@EN\else\@supervisor@CS\fi\fi} + } + + \vspace{8mm} + + \mktxtt{9}{BRNO \@year} + + \iftwoside + \newgeometry{left=1.8cm, text={11.0cm,16.5cm}, top=2.5cm} + \fi + +}{ % !phd_summary + + % Název práce / Thesis title + \iftoggle{long_title}{ + \mkuctxttl{18}{\@titlelen}{\ifslovak\@title@CS\else\ifczech\@title@CS\else\@title@EN\fi\fi} + \iftoggle{long_sectitle}{ + \mkuctxttls{10}{\@sectitlelen}{\ifslovak\@title@EN\else\ifczech\@title@EN\else\@title@CS\fi\fi} + }{ + \mkuctxtt{10}{\ifslovak\@title@EN\else\ifczech\@title@EN\else\@title@CS\fi\fi} + } + }{ + \mkuctxtt{18}{\ifslovak\@title@CS\else\ifczech\@title@CS\else\@title@EN\fi\fi} + \mkuctxtt{10}{\ifslovak\@title@EN\else\ifczech\@title@EN\else\@title@CS\fi\fi} + } + \vfill + + \mkuctxtt{14}{\ifslovak\@projecttype@SK\else\ifczech\@projecttype@CS\else\@projecttype@EN\fi\fi} + \iftoggle{slovak_used}{ + \mkuctxtt{10}{\@projecttype@EN} + }{ + \mkuctxtt{10}{\ifenslovak\@projecttype@SK\else\ifczech\@projecttype@EN\else\@projecttype@CS\fi\fi} + } + + \vspace{5mm} + + \mktxtt{14}{\MakeUppercase{\ifslovak\@author@SK\else\ifczech\@author@CS\else\@author@EN\fi\fi} \hfill \get@author} + \iftoggle{slovak_used}{ + \mkuctxtt{10}{\@author@EN} + }{ + \mkuctxtt{10}{\ifenslovak\@author@SK\else\ifczech\@author@EN\else\@author@CS\fi\fi} + } + + \vspace{5mm} + + \mktxtt{14}{\MakeUppercase{\ifslovak\@supervisor@SK\else\ifczech\@supervisor@CS\else\@supervisor@EN\fi\fi} \hfill \get@supervisor} + \iftoggle{slovak_used}{ + \mkuctxtt{10}{\@supervisor@EN} + }{ + \mkuctxtt{10}{\ifenslovak\@supervisor@SK\else\ifczech\@supervisor@EN\else\@supervisor@CS\fi\fi} + } + + \vspace{10mm} + + \mktxtt{11}{BRNO \@year} + + \iftwoside + \newgeometry{left=3.46cm, text={15.2cm,23.0cm}, top=2.96cm} + \fi + +} % !phd_summary + +%zadani / assignment +\iftoggle{zadaniTwop}{ + \cleardoublepage + \includepdf[pages=-,offset=-0.1cm -0.2cm]{zadani.pdf} + %\ifzadani\includepdf[pages=-,offset=0.6cm -1.7cm]{assignment.pdf}\fi +}{ + \ifzadani + \includepdf[pages=-,offset=0.6cm -1.7cm]{zadani.pdf} + %\ifzadani\includepdf[pages=-,offset=0.6cm -1.7cm]{assignment.pdf}\fi + \fi +} + + +\ifODSAZ + \setlength{\parindent}{0pt} + \setlength{\parskip}{0.5\bigskipamount} +\else + \setlength\parindent{17\p@} + \setlength{\parskip}{0pt} +\fi + +\iftwoside + \cleardoublepage + \pagestyle{plain} +\else + \newpage +\fi +\fontfamily{\familydefault}\selectfont% + +%================================================================================= +\makeabstract +\ifx\@textendedabstract\@empty +\else + \makeextendedabstract +\fi + +\newtoggle{declaration_page} +\togglefalse{declaration_page} +\ifx\@declaration\@empty +\else + \toggletrue{declaration_page} +\fi +\ifx\undefined\@acknowledgment +\else + \toggletrue{declaration_page} +\fi +\iftoggle{declaration_page}{ + \makedeclaration +}{} + +\clearpage +\setcounter{tocdepth}{2}\setcounter{page}{1} +} + +%----------------------------------------------------------------------------- +\def\uv#1{\iflanguage{english}{``#1''}% + {\quotedblbase #1\textquotedblleft}}% +%\catcode`\"=\active +%\def"{\bgroup +% \iflanguage{english}% +% {``\def"{''\egroup}}% +% {\quotedblbase\def"{\textquotedblleft\egroup}}} + +% Now, switch on what is appropriate for czech: + +% czech quotation marks +% \bq - begin quotation, \eq - end quotation +\def\bq{\mbox{\kern.1ex\protect\raisebox{-1.3ex}[0pt][0pt]{''}\kern-.1ex}} +\def\eq{\mbox{\kern-.1ex``\kern.1ex}} +%\setlanguage{\czech} + +{% % Begin a group for which " is active +\catcode`\"=\active % Make " an active character +\catcode`\@=11 % Make @ an active character +% +% \csdoublequoteson +% +% This macro makes " an active character, resets the control sequence +% \dblqu@te to L (left), and defines \dq as a replacement for ". +% +\gdef\csdoublequoteson{% % \csdoublequoteson enables " + \gdef"{\czechquotes}% % Define " as \czechquotes + \global\catcode`\"=\active% % Make " an active character + \global\chardef\dq=`\"% % Double-quote char. via \dq + \global\let\dblqu@te=L% % Always start with a left double-quote + } % End of macro +% +% \bq, \eq +% +% These macros define default characters for czech left and right +% double quotes. Czech opening quote is created from two commas with +% kerning depending on fontdimen four parameter of current font. +% Better solution should be specially designed character with +% proper kernings; if you have such characters in fonts +% (e.g. in DC-fonts), use it instead. (e.g. define +% macros \bq and \eq e.g. \def\bq{\char"130 } +% in your document/style file-- not in csquote.sty!) +% Similar solution is used for czech right quote. +% +% \cs existence test, stolen from TeXbook exercise 7.7 +\def\ifundefined#1{\expandafter\ifx\csname#1\endcsname\relax }% +% +% another macro to be more efficient in time and space +\global\chardef\f@@r=4 +% +\ifundefined{bq}% +\gdef\bq{\kern-.25\fontdimen\f@@r\font,\kern-.8\fontdimen\f@@r\font,% + \kern-.35\fontdimen\f@@r\font}% +\fi +\ifundefined{eq}% +\gdef\eq{\kern-.35\fontdimen\f@@r\font`\kern-.8\fontdimen\f@@r\font`% + \kern-.25\fontdimen\f@@r\font} +\fi +% +% Macro \uv for other usage of \bq and \eq. +% +\ifundefined{uv}\iflanguage{czech}% + \gdef\uv#1{\bq #1\eq} +\fi +% +% \testquotes macro gives warning if citation span this place +% +\gdef\testquotes{\if R\dblqu@te + \message{Warning: You forgot right double quote!}% + \let\dblqu@te=L\fi} +% +% Define the macro that will be executed whenever " is encountered. +% +\gdef\czechquotes{\protect\czechqu@tes} +\gdef\czechqu@tes{% + % If the double-quote is the first character in a new paragraph, + % make sure it becomes a left double-quote. This case can be + % detected by checking to see if TeX is currently in vertical mode. + % If so, the double-quote is at the beginning of the paragraph + % (since " hasn't actually generated any horizontal mode tokens + % yet, TeX is still in vertical mode). If the mode is vertical, + % set \dblqu@te equal to L. + % + \ifinner\else\ifvmode\testquotes\fi\fi% + % + % Now insert the appropriate left or right double-quote. + % + % If \dblqu@te is L, insert an opening quote and set \dblqu@te to R. + % + \if L\dblqu@te\bq\global\let\dblqu@te=R% + % + % Otherwise, save the current \spacefactor, insert '', set \dblqu@te + % to L, and reset the original \spacefactor. + % + \else% + \let\xxx=\spacefactor% % Save the \spacefactor + \eq% % Insert ending quote + \global\let\dblqu@te=L% % and reset \dblqu@te + \spacefactor\xxx% % Reset the \spacefactor + \fi% % End of \if L\dblqu@te... + } % End of " macro +} % End of group + +\gdef\csdoublequotesoff{% + \catcode`\"=12% % Set " back to other + } +% +% Czech quotes are default +% +\csdoublequoteson + +% Zarovnání v seznamu typu description +% Alignment in description list +% http://tex.stackexchange.com/questions/7008/change-hanging-indent-in-description-list +\makeatletter +\newcommand{\DESCRIPTION@original@item}{} +\let\DESCRIPTION@original@item\item +\newcommand*{\DESCRIPTION@envir}{DESCRIPTION} +\newlength{\DESCRIPTION@totalleftmargin} +\newlength{\DESCRIPTION@linewidth} +\newcommand{\DESCRIPTION@makelabel}[1]{\llap{#1}}% +\newcommand{\DESCRIPTION@item}[1][]{% + \setlength{\@totalleftmargin}% + {\DESCRIPTION@totalleftmargin+\widthof{\textbf{#1 }}-\leftmargin}% + \setlength{\linewidth} + {\DESCRIPTION@linewidth-\widthof{\textbf{#1 }}+\leftmargin}% + \par\parshape \@ne \@totalleftmargin \linewidth + \DESCRIPTION@original@item[\textbf{#1}]% +} +\newenvironment{DESCRIPTION} + {\list{}{\setlength{\labelwidth}{0cm}% + \let\makelabel\DESCRIPTION@makelabel}% + \setlength{\DESCRIPTION@totalleftmargin}{\@totalleftmargin}% + \setlength{\DESCRIPTION@linewidth}{\linewidth}% + \renewcommand{\item}{\ifx\@currenvir\DESCRIPTION@envir + \expandafter\DESCRIPTION@item + \else + \expandafter\DESCRIPTION@original@item + \fi}} + {\endlist} +\makeatother + + +% Balíčky +% Packages +\usepackage[czech,slovak,english]{babel} +\usepackage[]{opensans} +\usepackage{float} +\usepackage{calc} +\usepackage{longtable,booktabs} +\usepackage{xcolor,colortbl} +\usepackage{multirow} +\usepackage{tabularx} +\usepackage{graphicx} +\usepackage{url} +\DeclareUrlCommand\url{\def\UrlLeft{<}\def\UrlRight{>} \urlstyle{tt}} +\def\UrlBreaks{\do\/\do-} + +\usepackage{blindtext} +\usepackage{listings} +\usepackage[toc,page,header]{appendix} +\RequirePackage{titletoc} +\ifczech + \usepackage{ae} +\fi + +%-------------------------------------------------------- +% Oprava pro Čechy a Slováky -- vyžaduje aktuální balíčky! +% Fix for CZECH and SLOVAK -- needs up to date packages! +% http://tex.stackexchange.com/questions/111999/slovak-and-czech-babel-gives-problems-with-cmidrule-and-cline +%-------------------------------------------------------- +\usepackage{regexpatch} +%\ifczechslovak + \makeatletter + % Change the `-` delimiter to an active character + %\xpatchparametertext\@@@cmidrule{-}{\cA-}{}{} + %\xpatchparametertext\@cline{-}{\cA-}{}{} + \begingroup + \toks0=\expandafter{\@cline{#1}-{#2}\@nil} + \@ifpackageloaded{booktabs}{% + \toks2=\expandafter{\@@@cmidrule[{#1}-{#2}]{#3}{#4}}% + }{} + \catcode`-=\active + \edef\x{\gdef\unexpanded{\@cline#1-#2\@nil}{\the\toks0}}\x + \@ifpackageloaded{booktabs}{% + \edef\x{\gdef\unexpanded{\@@@cmidrule[#1-#2]#3#4}{\the\toks2}}\x + }{} + \endgroup + \makeatother +%\fi + +\ifczechslovak + \renewcommand{\lstlistingname}{Výpis} %Výpis místo Listing +\fi + + +% BEGIN Jan Pluskal (ipluskal) listings + +\definecolor{bluekeywords}{rgb}{0.13,0.13,1} +\definecolor{greencomments}{rgb}{0,0.5,0} +\definecolor{redstrings}{rgb}{0.9,0,0} + +\definecolor{gray}{rgb}{0.4,0.4,0.4} +\definecolor{darkblue}{rgb}{0.0,0.0,0.6} +\definecolor{cyan}{rgb}{0.0,0.6,0.6} + +\lstset{ + basicstyle=\ttfamily, + columns=fullflexible, + showstringspaces=false, + commentstyle=\color{gray}\upshape, + captionpos=b +} + +\lstdefinestyle{csh}{language=[Sharp]C, + showspaces=false, + showtabs=false, + breaklines=false, + showstringspaces=false, + breakatwhitespace=true, + escapeinside={(*@}{@*)}, + commentstyle=\color{greencomments}, + keywordstyle=\color{bluekeywords}, + stringstyle=\color{redstrings}, + basicstyle=\ttfamily, + captionpos=b, + numbers=left, + frame=single, +} + +\lstdefinelanguage{XML} +{ + morestring=[b]", + morestring=[s]{>}{<}, + morecomment=[s]{}, + stringstyle=\color{black}, + identifierstyle=\color{darkblue}, + keywordstyle=\color{cyan}, + morekeywords={xmlns,version,type} % list your attributes here +} + +\lstdefinestyle{npl}{language=c, + showspaces=false, + showtabs=false, + breaklines=true, + showstringspaces=false, + breakatwhitespace=true, + escapeinside={(*@}{@*)}, + commentstyle=\color{greencomments}, + keywordstyle=\color{bluekeywords}, + stringstyle=\color{redstrings}, + basicstyle=\ttfamily, + captionpos=b, + numbers=left, + frame=single, + morekeywords={UINT8, UINT16, UINT32, INT8, INT16, INT32, Post, Properties, Protocol, AsciiString, String, StringTerm, BLOB, FormatString, this}, +} + + +\lstdefinestyle{c++}{language=c, + showspaces=false, + showtabs=false, + breaklines=true, + showstringspaces=false, + breakatwhitespace=true, + escapeinside={(*@}{@*)}, + commentstyle=\color{greencomments}, + keywordstyle=\color{bluekeywords}, + stringstyle=\color{redstrings}, + basicstyle=\ttfamily, + captionpos=b, + numbers=left, + frame=single, + morekeywords={UINT8, UINT16, UINT32, INT8, INT16, INT32, Post, Properties, Protocol, AsciiString, String, StringTerm, BLOB, FormatString, this}, +} + +%END Jan Pluskal (ipluskal) listings + + +% Příkazy pro TODO (3 alternativy - lze zvolit preferovanou) +% commands for TODO (3 alternatives - preferred one can be selected) +\newcommand{\todo}[1]{\textcolor{red}{\textbf{[[#1]]}}} +%\usepackage[colorinlistoftodos,prependcaption,textsize=tiny, disable]{todonotes} +%\usepackage[colorinlistoftodos,prependcaption,textsize=tiny]{todonotes} + +\newcommand{\phony}[1]{\textcolor{gray}{#1}} +\newcommand{\blind}[1]{\textcolor{gray}{\Blindtext[#1]}} + + +% Sloupec zarovnaný vlevo s pevnou šířkou +% Left aligned column with a fixed width +\newcolumntype{L}[1]{>{\RaggedRight\hspace{0pt}}p{#1}} + + +\endinput +%% +%% End of file `fitthesis.cls'. diff --git a/overleaf/obrazky-figures/fig_m_1.png b/overleaf/obrazky-figures/fig_m_1.png new file mode 100644 index 0000000..93b31b7 Binary files /dev/null and b/overleaf/obrazky-figures/fig_m_1.png differ diff --git a/overleaf/obrazky-figures/fig_m_2.png b/overleaf/obrazky-figures/fig_m_2.png new file mode 100644 index 0000000..5ff8a52 Binary files /dev/null and b/overleaf/obrazky-figures/fig_m_2.png differ diff --git a/overleaf/obrazky-figures/fig_m_3.png b/overleaf/obrazky-figures/fig_m_3.png new file mode 100644 index 0000000..6c1ddf5 Binary files /dev/null and b/overleaf/obrazky-figures/fig_m_3.png differ diff --git a/overleaf/obrazky-figures/keep-calm.png b/overleaf/obrazky-figures/keep-calm.png new file mode 100644 index 0000000..4f51fbf Binary files /dev/null and b/overleaf/obrazky-figures/keep-calm.png differ diff --git a/overleaf/obrazky-figures/placeholder.pdf b/overleaf/obrazky-figures/placeholder.pdf new file mode 100644 index 0000000..e3b2472 Binary files /dev/null and b/overleaf/obrazky-figures/placeholder.pdf differ diff --git a/overleaf/projekt-01-kapitoly-chapters-en.tex b/overleaf/projekt-01-kapitoly-chapters-en.tex new file mode 100644 index 0000000..db799c3 --- /dev/null +++ b/overleaf/projekt-01-kapitoly-chapters-en.tex @@ -0,0 +1,76 @@ + + + +\chapter{Existing technologies} +There exists a number of methods to perform the mapping of surfaces. +\section{Contact} +Contact profilometry utilizes a stylus moving across the surface to directly sample its vertical displacement. Both vertical and horizontal resolution are determined by the dimensions of the stylus tip and the force applied to it. The ISO standard defines these to be a cone with 20 $\mu$m tip radius, 60$^{\circ}$ or 90$^{\circ}$ tip angle, and 750 $\mu$N measuring force \cite{ISO3274}. The tip material is typically diamond due to its high hardness and low coefficient of friction. +\section{Laser triangulation} +Laser triangulation uses a laser emitter and a camera in set relative position. The laser projects a point or a line onto the surface. The surface profile is calculated based on the projection's position in the camera's field of view. The setup further examined in this paper falls into this category. +\section{Confocal microscopy} +\section{Interferometry} +\section{Digital holography} + +\chapter{Mathematical description} +The geometry of an idealized laser emitter-camera system can be fully described with three variables (laser plane to camera distance $d$, camera altitude angle $\sigma$, and camera transverse angle $\psi$). Four more values describe the camera itself (field of view $\phi_x$, $\phi_y$, and pixel dimensions $X_m$, $Y_m$). This system assumes the laser is thin enough to appear only 1 pixel thick in the camera's field of view. + +Introducing a flat mirror into the system adds three new independent values (camera-mirror distance, two orientation angles) if we assume the camera's field of view to be fully reflected by the mirror. Under this assumption any plane-camera-mirror system has an equivalent plane-camera system. + +Given two planes in 3-space, any point not in either of these planes defines a non-linear bijective map between them (\ref{fig_m_1}). This point is the projection focus. In case of parallel planes there are no singularities. In case of intersecting planes there is one line in each plane which maps to infinity. + +\begin{figure}[h] + \centering + \begin{subfigure}{.5\textwidth} + \centering + \includegraphics[width=\linewidth]{obrazky-figures/fig_m_1.png} + \end{subfigure}% + \begin{subfigure}{.5\textwidth} + \centering + \includegraphics[width=.8\linewidth]{obrazky-figures/fig_m_2.png} + \end{subfigure} + \caption{Side and top view - x axis going out of image and parallel, respectively} + \label{fig_m_1} +\end{figure} + +Imposing an orthonormal coordinates on both planes such that the intersection line is the x axis and the origin is the point in the intersection closest to the projection focus yields the following: + +$$\frac{a}{b} = \frac{y'.sin(\alpha)}{d.sin(\beta)}$$ +$$d.y'.sin(\alpha + \beta) = d.y.sin(\beta) + y.y'.sin(\alpha)$$ + +Therefore: + +$$x' = x.(1 + \frac{y}{d.sin(\alpha + \beta)-y.sin(\alpha)})$$ +$$y' = \frac{d.y.sin(\beta)}{d.sin(\alpha + \beta)-y.sin(\alpha)}$$ + +One of these planes is the laser plane, which has a fixed position. The other is the camera-normal plane, which can be placed arbitrarily. If we place it so that the normal to the laser plane at the origin contains the camera we get the following (\ref{fig_m_3}): + +\begin{figure}[h] + \centering + \includegraphics[width=\linewidth]{obrazky-figures/fig_m_3.png} + \caption{Laser-camera system} + \label{fig_m_3} +\end{figure} + +$$b = d.cos(\sigma)$$ + +The coordinates of the center of the camera's field of view in the normal plane and the resulting linear transformation from the camera's pixel grid to the normal plane: + +$$\begin{pmatrix}x_c\\y_c\end{pmatrix} += +\begin{pmatrix}0\\d.sin(\sigma)\end{pmatrix} +$$ +$$\begin{pmatrix}x\\y\end{pmatrix} += +\begin{pmatrix}x_c\\y_c\end{pmatrix} ++ R(\psi) +\begin{pmatrix}\Delta_x\\\Delta_y\end{pmatrix} +$$ + +$$\Delta_x = b.tan(\frac{\phi_x}{2})(\frac{2X+1}{X_m}-1)$$ +$$\Delta_y = b.tan(\frac{\phi_y}{2})(\frac{2Y+1}{Y_m}+1)$$ + +Per-pixel depth resolution here. +Address laser width problem here. +PCM to PC conversion here. + +$$e^{e^e}$$ \ No newline at end of file diff --git a/overleaf/projekt-01-kapitoly-chapters.tex b/overleaf/projekt-01-kapitoly-chapters.tex new file mode 100644 index 0000000..b32aceb --- /dev/null +++ b/overleaf/projekt-01-kapitoly-chapters.tex @@ -0,0 +1,1235 @@ +% Tento soubor nahraďte vlastním souborem s obsahem práce. +%========================================================================= +% Autoři: Michal Bidlo, Bohuslav Křena, Jaroslav Dytrych, Petr Veigend a Adam Herout 2019 + +% Pro kompilaci po částech (viz projekt.tex), nutno odkomentovat a upravit +%\documentclass[../projekt.tex]{subfiles} +%\begin{document} + +\chapter{Úvod} + +Tento text slouží jako ukázkový obsah šablony a současně rekapituluje nejdůležitější informace z předpisů a poskytuje další užitečné informace, které budete potřebovat pro tvorbu technické zprávy ke svojí práci. Než se šablonou budete dále pracovat, je třeba vědět, jak ji správně použít. To je stručně uvedeno v~příloze \ref{jak}. + +I když některým studentům pro napsání dobré diplomové práce (bakalářská práce je také diplomová -- dostává se za ni diplom) stačí znát a dodržovat oficiální formální požadavky uvedené ve směrnicích a typografické zásady, často je výhodné před započetím psaní zjistit, jaké jsou osvědčené postupy pro psaní odborného textu a jak si práci usnadnit. Někteří vedoucí svým studentům připravili popisy osvědčených postupů, které vedly k desítkám úspěšně obhájených prací. Výběr nejzajímavějších postupů, které měli autoři této šablony k~dispozici ve chvíli její tvorby, je v níže uvedených kapitolách. Má-li Váš vedoucí svoji stránku s doporučenými postupy, tyto kapitoly můžete vynechat a řídit se pokyny svého vedoucího. Pokud takovou stránku nemá, může být přečtení níže uvedeného textu vhodnou přípravou na konzultaci o plánované struktuře a náplni textu práce. + +Diplomová práce je rozsáhlé dílo a tomu odpovídá i technická zpráva. Ne každý je schopen si sednout a jednoduše ji napsat. Je třeba vědět, kde začít a jak postupovat. Jedním z možných přístupů je začít psaním klíčových slov a abstraktu, abyste si ujasnili, co je v~práci nejdůležitější. O tom pojednává kapitola \ref{abstrakt}. + +Po sepsání abstraktu se lze pustit do psaní samotného textu technické zprávy. Typicky si nejprve připravíme základní strukturu práce, kterou pak budeme plnit textem. Kapitola \ref{struktura} se zabývá základními informacemi a radami pro psaní odborného textu, které Vám pomohou vyhnout se začátečnickým chybám, a stanovením nadpisů kapitol a přibližných rozsahů jednotlivých částí práce. V závěru kapitoly je pak uveden přístup, kterým si lze psaní technické zprávy značně usnadnit. + +Diplomové práce v oblasti informačních technologií mají určitou typickou strukturu. Po~úvodu bude následovat kapitola či kapitoly zabývající se shrnutím současného stavu, který bude v následujících kapitolách zhodnocen a bude navrženo řešení, které bude implementováno a otestováno. V závěru pak budou výsledky vyhodnoceny a bude navržen budoucí vývoj. I když se názvy a rozsahy kapitol v různých pracích liší, vždy tam lze najít kapitoly odpovídající této struktuře. Kapitola \ref{kapitoly} se zabývá obsahy typických kapitol, které se v diplomových pracích z oblasti IT vyskytují. Většina studentů ve svojí práci pravděpodobně využije pouze určitou podmnožinu popsaných kapitol, která je pro jejich práci relevantní. Uvedené popisy a rady mohou pomoci jak s~rozhodnutím, zda danou kapitolu uvést, tak i~s~vnitřní strukturou a samotným obsahem kapitoly. + +Za závěrečnou kapitolou práce vždy následuje seznam použité literatury. Citacemi, které tento seznam tvoří, a odkazy na ně se zabývá kapitola \ref{citace}. Byť to tak nezkušený student nemusí vnímat, je seznam použité literatury a odkazy na něj pro práci zcela zásadní. Hodnocení práce s literaturou a citací tvoří jednu z důležitých částí posudku oponenta a bude-li chybět jediná položka, může to vést k hodnocení stupněm F, následnému disciplinárnímu řízení za plagiátorství a k vyloučení z nedokončeného studia. Nesprávná práce se zdroji může mít i další důsledky -- v roce 2018 stála křesla dva členy české vlády. Proto prosím citacím věnujte odpovídající pozornost. + +Po dokončení textu je nutné zjistit, jaké požadavky jsou kladeny na vysokoškolskou kvalifikační práci na FIT VUT v~Brně, a dořešit případné nedostatky. Formální požadavky jsou uvedeny ve směrnicích a na webových stránkách, které jsou zmíněny v kapitole \ref{formality}. Tato kapitola obsahuje i požadované rozsahy jednotlivých typů prací a další vybrané informace z~předpisů a doporučení. V závěru kapitoly je uveden přehled nejčastějších chyb, se kterými se oponenti setkávají a kterým byste se měli vyhnout. Hodnocení formální úpravy práce je pak další z důležitých součástí posudku oponenta. + +Po odstranění formálních nedostatků lze práci odevzdat. Před odevzdáním práce si můžete projít kontrolní seznam (tzv. \uv{checklist}) uvedený v příloze \ref{checklist}. Samotné odevzdání listinné i elektronické verze práce je pak popsáno v kapitole \ref{odevzdani}. + +V závěrečné kapitole \ref{zaver} je pak uvedeno shrnutí toho, co se lze přečtením tohoto textu dozvědět, a to nejdůležitější, na co je třeba myslet před odevzdáním práce. + + +\chapter{Abstrakt} +\label{abstrakt} +Pod nadpisem Abstrakt je uvedeno shrnutí práce zabírající prostor maximálně 10 řádků. Z~dobrého abstraktu by mělo být i přes jeho malý rozsah patrné, jaký problém se řešil, jaký přístup k jeho řešení byl v práci použit a jakých výsledků bylo dosaženo. Účelem abstraktu je, aby potenciální čtenář práce již po přečtení abstraktu věděl, zda v práci najde to, co hledá \cite{fitWeb}. Zbytek této kapitoly byl převzat z blogu prof. Herouta \cite{Herout}. +\bigskip + +\noindent Za prvé – na abstraktu záleží. Za druhé – není těžké ho napsat. Pojďme na to. + +\subsection*{K čemu je abstrakt} +Abstrakt slouží k \bf vyhledávání\rm, společně s názvem dané vědecké práce a seznamem klíčových slov. Tyto části (snad s výjimkou názvu) nejsou přímo součástí textu a nečeká se, že někdo, kdo by zasedl ke čtení dané vědecké práce, bude číst je. To, že práci čte, znamená, že už se dostal za fázi čtení abstraktu. Abstrakt mu slouží ve chvíli, kdy se ještě rozhoduje, \bf zda vůbec \rm text číst. + +Když někdo tam venku hledá odpověď na svůj problém, zadá knihovnici nebo dnes spíše vyhledávacímu serveru klíčová slova, která se jeho potíží dotýkají. Na základě shody těchto klíčových slov a klíčových slov uvedených autory dostane seznam názvů prací, které by mu mohly nabízet řešení. Dobře sestavený název práce badateli pomůže vytipovat takové texty, které by mohly mít vztah k jeho problému a mohl by se zajímat o jejich přečtení. + +A tady právě přichází na scénu abstrakt. Badatel si čte abstrakt vytipovaných prací a~rozhoduje se, zda práci skutečně chce číst, nebo jestli se v tomto případě jeho filtr založený pouze na jednořádkovém nadpisu zmýlil. + +V tuto chvíli obvykle ještě nemá stažené nějaké PDF s celým textem, natož aby měl v ruce vytištěný fascikl. Abstrakty jsou určeny k tomu, aby byly \bf mimo text\rm , aby ležely na serverech agregujících vědecké texty. Proto první pravidlo je, že abstrakt musí fungovat samostatně -- pokud obsahuje odkazy do literatury nebo se odvolává na text (\uv{Výkonnost metody je přehledně shrnuta na straně 51.}), nedělá badateli dobrou službu, což badatel ocení tím, že si o autoru nepomyslí nic hezkého, práci si nepřečte a autora neocituje. + +\subsection*{Kdy a jak psát Abstrakt} +Může dávat smysl psát abstrakt na závěr celého psaní -- jako shrnutí a skutečné anotování sepsaného díla. Já jsem vyznavačem opačného přístupu -- abstrakt píšu na samém začátku. Když píšu vědecký článek, začínám sepsáním velkého počtu klíčových slov, jež se textu dotýkají. Bývá jich více, než potom uvedu jako ona charakteristická klíčová slova používaná k indexování. Ujasňuji si tím prostor, kde se článek pohybuje -- o čem je třeba hovořit, co je v textu podstatné, čeho se dotýká. Hned po ujasnění klíčových slov formuluji nadpis a~právě abstrakt. + +Považuji za mimořádně užitečné ujasnit si právě ony čtyři části abstraktu -- Jaký problém se řeší? Jaké řešení práce nabízí? Jaké jsou přesně výsledky? Jaký je jejich význam? Když je toto jasné, text se píše skoro sám. Pokud toto má být nejasné, jak u všech všudy je možné vůbec dát dohromady smysluplnou větu v samém textu? + +\subsection*{Doporučená struktura abstraktu} +Abstrakt vědecké práce se může skládat ze čtyř částí a pak být opravdu užitečný. Každá část se bude skládat z nějakých dvou, tří vět, někdy postačí jedna. + +V byznysu se vžil slovesný útvar \uv{elevator pitch} -- představení ve výtahu. Ne náhodou jeho struktura připomíná právě doporučovanou strukturu abstraktu. Opravdu, autor odborného textu má do abstraktu napsat právě to, co by říkal o své práci, kdyby na to měl nejvýše dvě minuty a nemohl použít žádných slajdů, obrázků, textu. O čem by tedy měl mluvit? + +\paragraph{První část -- Jaký se řeší problém? Jaké je téma? Jaký je cíl textu?} +\begin{itemize} + \item{Tato práce řeší.} + \item{Cílem této práce je.} + \item{Zaměřil jsem se na.} +\end{itemize} +Nepatří sem úvodní pohádky charakteristické pro špatný odborný sloh: \uv{Naše poslední pětiletka staví před nás nové a smělé cíle}, \uv{S rozvojem výpočetní techniky a zejména zobrazovacích zařízení je stále důležitější \ldots} Ty nepatří do dobrého textu nikam, ale do~abstraktu tím méně. Pokud dokážete vyjádřit účel svého textu v jedné větě o pár slovech, udělejte to a nepřidávejte nic navíc. Stručnější zde vždy znamená lepší. + +\paragraph{Druhá část -- Jak je problém vyřešen? Cíl naplněn?} +\begin{itemize} + \item{Zvolený problém jsem vyřešil pomocí toho a toho.} + \item{V řešení bylo použito metody té, postupu toho a analýzy oné.} + \item{Práce představuje algoritmus takový, který.} + \item{Data jsem zpracovával pomocí těch a těchto nástrojů a provedl vyhodnocení takové.} + \item{Podstatou našeho algoritmu je.} +\end{itemize} + +Pokud je podstatou sepisovaného odborného textu nová metodologie (= \uv{jak něco dělat}), patří přesně sem její popis. Pokud se představované řešení skládá ze tří částí, pravděpodobně v této části abstraktu budou tři věty, z nichž každá se bude věnovat jedné části řešení. Dobrý abstrakt v této části bude upřímný a přesný -- nebude si schovávat \uv{odhalování svých tajemství} až do textu. Vágní formulace podstaty řešení v abstraktu obvykle znamená, že autoři buď neumí psát a nebo vlastně nemají o čem -- ani jedno není zrovna výzva ke stažení a čtení mnoha stran textu. + +\paragraph{Třetí část -- Jaké jsou konkrétní výsledky? Jak dobře je problém vyřešen?} +\begin{itemize} + \item{Podařilo se dosáhnout úspěšnosti 87,3\,\%.} + \item{V práci jsme vytvořili systém, který.} + \item{Vytvořené řešení poskytuje ty a ty možnosti.} + \item{Provedeným výzkumem jsme zjistili, že.} +\end{itemize} + +Není špatným zvykem uvést v této části konkrétní číslo -- \uv{existující metodu XY jsme zrychlili pětkrát}. Pokud přínos práce není možné shrnout do dvou nebo tří vět, někde je něco velmi špatně a celý text pravděpodobně nestojí za psaní. + +\paragraph{Čtvrtá část -- Takže co? Čím je to užitečné vědě a čtenáři?} +\begin{itemize} + \item{Přínosem této práce je.} + \item{Hlavním zjištěním je.} + \item{Hlavním výsledkem je.} + \item{Na základě zjištěných údajů je možné.} + \item{Výsledky této práce umožňují.} +\end{itemize} + +Při psaní vědeckých článků já sám obvykle bojuji s podobností části třetí a čtvrté. Vskutku, obě hovoří o tom, co jsou výsledky a přínosy textu. Účelem třetí části je jmenovitě a konkrétně jmenovat dosažené výsledky, úkolem části čtvrté je interpretovat jejich význam. Asi ničemu nevadí, když tato dvě sdělení do jisté míry splynou a část třetí a čtvrtá nejen že nemají každá vlastní odstavec, ale prolínají se dokonce ve společných větách. + +\paragraph{Nultá část -- O co jde? Kde jsme?} +\begin{itemize} + \item{Práce je řešena v kontextu tom a tom.} + \item{Nauka ta a ta se zabývá studiem toho a toho.} + \item{Stavíme na těchto a oněch nedávných pokrocích v naší oblasti.} +\end{itemize} + +Někdy je nutné na sám začátek abstraktu vložit kratičké uvedení kontextu, ve kterém se~celá záležitost vlastně odehrává. Může to být přínosné~u vskutku obskurního a esoterického oboru, který leží stranou hlavního proudu. Obvykle tato část ovšem nebývá nutná a~věty v~ní obsažené bývají prototypy ohavné, rádobyodborné vaty. Je dobrou praxí zapomenout, že se tato část v abstraktu může vyskytovat. Když někdo, kdo je odborníkem v~oboru práce, přece po přečtení abstraktu zavrtí hlavou: \uv{Vůbec nevím, o čem tady můžete psát,} pouze tehdy je vhodné vložit nějaké věty s uvedením kontextu. + +\subsection*{Inovace není Ignorance} + +Popisuji v tomto textu jakýsi obecný model obecné diplomky. Ještě ke všemu se na začátku zaklínám, že to je můj názor a vkus a jsem zvědavý na názory a vkusy alternativní (což jsem!). Každý diplomant (Mgr. i Bc.) přitom cítí, že jeho diplomka je speciální a výjimečná. Tudíž se nebude držet nějakého schématu, které slouží pro běžné a průměrné diplomky -- tj. pro ty ostatní. Setkávám se s dobrými důvody, proč se od výše naznačeného schématu odchýlit a každoročně některým studentům odchýlení od schématu sám doporučuji. Vskutku, každá diplomka je jedinečná a zvláštní. Kdyby ne, nemusely by se psát, stačilo by je kopírovat. Ovšem vždycky před tím, než vybočíte ze standardního a kanonického způsobu organizování odborného textu, dejte si tu práci ho poznat, pochopit a zvládnout. Způsob vědecké práce, strukturování odborného textu, nebo třeba citování pramenů, může vypadat rigidně a neohrabaně, je to ale zatím ten nejlepší způsob, který jsme jako lidstvo dokázali vymyslet. Pokud ho ovládnete, pochopíte jeho výhody a nevýhody a inovujete ho, je to v pořádku a jste vítáni. Pokud se jím odmítnete zabývat, pravděpodobně neprovedete hodnotnou inovaci, ale vytvoříte \uv{paskvil}. + + +\chapter{Příprava základní struktury práce} +\label{struktura} + +V této kapitole jsou nejprve uvedeny obecné zásady pro psaní odborného textu a po nich následuje detailnější popis doporučeného postupu přípravy struktury a základní osnovy práce. + +Před začátkem psaní textu práce je vždy vhodné zeptat se svého vedoucího, co Vám poradí a zda nemá nějakou svoji aktuální stránku s radami a pokyny. Jeho zaměření bude pravděpodobně odpovídat zaměření Vaší práce a poradí Vám tu nejvhodnější strukturu, které byste se měli držet. Dozví-li se autoři tohoto souboru o další sbírce užitečných rad, jistě sem v budoucnu budou zařazeny. + +Tento text se zaměřuje na obecná doporučení a obecnou strukturu práce, kterou je vždy potřeba modifikovat a popřemýšlet o ní na základě konkrétního zadání \cite{Cernocky}. + +\section{Užitečné rady pro psaní odborného textu} + +Následující pokyny jsou dostupné též na školních webových stránkách~\cite{fitWeb}. Přehled základů typografie a tvorby dokumentů s využitím systému \LaTeX{} je uveden v~knize od~Jiřího Rybičky~\cite{Rybicka}. + +Hodnocenou součástí potenciálního inženýra je mimo jiné i jazyková kvalita a čistota. Naším cílem je vytvořit jasný a~srozumitelný text. Vyjadřujeme se proto přesně, píšeme dobrou češtinou či slovenštinou (případně angličtinou) a~dobrým slohem podle obecně přijatých zvyklostí. Předpokládá se dodržování pravopisných norem zvoleného jazyka práce a dodržování odborného názvosloví. Slangové výrazy jsou nepřípustné. Při pochybnostech o~překladu či přepisu cizích pojmů využijte literatury dostupné v knihovně FIT. + +Text má upravit čtenáři cestu k~rychlému pochopení problému, předvídat jeho obtíže a~předcházet jim. Dobrý sloh předpokládá bezvadnou gramatiku, správnou interpunkci a~vhodnou volbu slov. Snažíme se, aby náš text nepůsobil příliš jednotvárně používáním malého výběru slov a~tím, že některá zvlášť oblíbená slova používáme příliš často. Pokud používáme cizích slov, je samozřejmým předpokladem, že známe jejich přesný význam. Ale i~českých slov musíme používat ve správném smyslu. Např. platí jistá pravidla při používání slova {\it zřejmě}. Je {\it zřejmé} opravdu zřejmé? A~přesvědčili jsme se, zda to, co je {\it zřejmé}, opravdu platí? Pozor bychom si měli dát i~na příliš časté používání zvratného se. Například obratu {\it dokázalo se, že \ldots{}} zásadně nepoužíváme. + +Za pečlivý výběr stojí i~symbolika, kterou používáme ke {\it značení}. Máme tím na mysli volbu zkratek a~symbolů používaných například pro vyjádření typů součástek, pro označení hlavních činností programu, pro pojmenování ovládacích kláves na klávesnici, pro pojmenování proměnných v~matematických formulích a~podobně. Výstižné a~důsledné značení může čtenáři při četbě textu velmi pomoci. Je vhodné uvést seznam značení na začátku textu. Nejen ve značení, ale i~v~odkazech a~v~celkové tiskové úpravě je důležitá důslednost. + +S tím souvisí i~pojem z~typografie nazývaný {\it vyznačování}. Zde máme na mysli způsob sazby textu pro jeho zvýraznění. Pro zvolené značení by měl být zvolen i~způsob vyznačování v~textu. Tak například klávesy mohou být umístěny do obdélníčku, identifikátory ze~zdrojového textu mohou být vypisovány {\tt písmem typu psací stroj} a~podobně. + +Uvádíme-li některá fakta, neskrýváme jejich původ a~náš vztah k~nim. Když něco tvrdíme, vždycky výslovně uvedeme, co z~toho bylo dokázáno, co bude dokázáno v~našem textu a~co přebíráme z~literatury s~uvedením odkazu na příslušný zdroj. V~tomto směru nenecháváme čtenáře nikdy na pochybách, zda jde o~myšlenku naši nebo převzatou z~literatury. + +Abychom mohli napsat odborný text jasně a~srozumitelně, musíme splnit několik základních předpokladů: +\begin{itemize} +\item Musíme mít co říci, +\item musíme vědět, komu to chceme říci, +\item musíme si dokonale promyslet obsah, +\item musíme psát strukturovaně. +\end{itemize} + +\subsection*{Musíme mít co říci} +Nejdůležitějším předpokladem dobrého odborného textu je myšlenka. Je-li myšlenka dost závažná, tak přetrvá, i když je neobratně a zmateně podaná. Chceme-li však myšlenku podat co nejvýstižněji a ušetřit tak čtenáři čas, musíme dodržet určité zásady, o kterých pojednáme dále. + +\subsection*{Musíme vědět, komu to chceme říci} +Dalším důležitým předpokladem dobrého psaní je psát pro někoho. Píšeme-li si poznámky sami pro sebe, píšeme je jinak než výzkumnou zprávu, článek, diplomovou práci, knihu nebo dopis. Podle předpokládaného čtenáře se rozhodneme pro způsob psaní, rozsah informace a~míru detailů. + +\subsection*{Musíme si dokonale promyslet obsah} +Musíme si dokonale promyslet a~sestavit obsah sdělení a~vytvořit pořadí, v~jakém chceme čtenáři své myšlenky prezentovat. +Jakmile víme, co chceme říci a~komu, musíme si rozvrhnout látku. Ideální je takové rozvržení, které tvoří logicky přesný a~psychologicky stravitelný celek, ve kterém je pro všechno místo a~jehož jednotlivé části do sebe přesně zapadají. Jsou jasné všechny souvislosti a~je zřejmé, co kam patří. + +Abychom tohoto cíle dosáhli, musíme pečlivě organizovat látku. Rozhodneme, co budou hlavní kapitoly, co podkapitoly a~jaké jsou mezi nimi vztahy. Diagramem takové organizace je graf, který je velmi podobný stromu, ale ne řetězci. Při organizaci látky je stejně důležitá otázka, co do osnovy zahrnout, jako otázka, co z~ní vypustit. Příliš mnoho podrobností může čtenáře právě tak odradit jako žádné detaily. + +Výsledkem této etapy je osnova textu, kterou tvoří sled hlavních myšlenek a~mezi ně zařazené detaily. + +\subsection*{Musíme psát strukturovaně} +Musíme začít psát strukturovaně a~současně pracujeme na co nejsrozumitelnější formě, včetně dobrého slohu a~dokonalého značení. +Máme-li tedy myšlenku, představu o~budoucím čtenáři, cíl a~osnovu textu, můžeme začít psát. Při psaní prvního konceptu se snažíme zaznamenat všechny své myšlenky a~názory vztahující se k~jednotlivým kapitolám a~podkapitolám. Každou myšlenku musíme vysvětlit, popsat a~prokázat. Hlavní myšlenku má vždy vyjadřovat hlavní věta a~nikoliv věta vedlejší. + +I k~procesu psaní textu přistupujeme strukturovaně. Současně s~tím, jak si ujasňujeme strukturu písemné práce, vytváříme kostru textu, kterou postupně doplňujeme. Využíváme ty prostředky DTP\footnote{Desktop publishing (DTP) -- tvorba tištěného dokumentu na počítači.} programu, které podporují strukturovanou stavbu textu (předdefinované styly pro nadpisy a~bloky textu). + +\subsection*{Nikdy to nebude naprosto dokonalé} +Když jsme už napsali vše, o~čem jsme přemýšleli, uděláme si den nebo dva dny volna a~pak si přečteme sami rukopis znovu. Uděláme ještě poslední úpravy a~skončíme. Jsme si vědomi toho, že vždy zůstane něco nedokončeno, vždy existuje lepší způsob, jak něco vysvětlit, ale každá etapa úprav musí být konečná. + +\section{Komu se píše diplomka} +Tato podkapitola byla převzata z blogu prof. Herouta \cite{Herout}. + +\bigskip +\noindent \bf Pište svou diplomku pro studenta, který má na Vaše dílo navázat. \rm +\bigskip + +Představte si, že na Vaší práci bude dál pracovat student Franta, asi tak stejně chytrý jako Vy sami. Máte teď čtyři hodiny na to, abyste mu svou práci ukázali, zasvětili ho do~všeho, co je potřeba, a on pak bude pokračovat sám. Franta je studentem stejné školy jako Vy a~ví asi tolik, co průměrný student, není žádným super odborníkem na obor Vaší diplomky, ale rozhodně není hloupý a řešeného tématu se neštítí. Franta, tak jako Vy, se~o~tom, že bude po Vás pokračovat, zrovna dozvěděl, takže ještě neměl čas si něco k~tématu nastudovat. + +Bude dobré začít tím, že se Franta dozví, co je cílem práce, proč se to celé dělá, co mají být výsledky. + +Nikdo soudný by hodinu z vyměřeného času s Frantou nestrávil řečněním typu: \uv{\mbox{Internet} byl vytvořen americkou armádou v roce 1962, pak v roce 1991 v CERNu udělali www, a~nyní se používá v nejrůznějších oblastech lidské činnosti.} (to vše na šesti stranách s~mnoha odkazy a obrázky). +Franta obvykle nepotřebuje několikastránkové skriptum o detailech barevných modelů pro reprezentaci obrázků, historii a detaily Houghovy transformace, kompletní popis vrstev referenčního modelu ISO/OSI, ani řadu koláčových grafů o~zastoupení jednotlivých mobilních platforem na trhu za posledních deset let. +Franta potřebuje nasměrovat na~cenné zdroje, které Vám při řešení pomohly, a chce letmý popis nástrojů a~algoritmů, které byly nutné pro řešení: \uv{Je potřeba nástroj XY, který slouží k tomuhle a~tamtomu, hlavně jeho modul PQ, který se používá tehdy a~tehdy. Nejlepší je k tomu tato dokumentace.} + +Řekněte Frantovi hodně o tom, co se při řešení osvědčilo a co pomáhalo, ale upozorněte ho i na to, co nejdřív vypadalo jako dobrý nápad, ale pak se ukázalo jako zbytečné nebo nefunkční. + +Dobře dávkujte úroveň detailu. Nějakou optimalizační fintu rozeberete ve zdrojovém kódu řádek po řádku, nějaký pomocný modul přejdete jedním odstavcem s popisem vstupů a výstupů a odkazem na použitou knihovnu. + +Představte si průběh toho čtyřhodinového sezení s Frantou. +\begin{itemize} + \item{O čem byste asi mluvili na začátku, kdy se Franta teprve začíná orientovat?} + \item{Co jsou věci, které by rozhodně měly zaznít?} + \item{Jaké obrázky byste v průběhu sezení malovali?} + \item{Na co by se Franta vyptával, protože je to důležité a přitom to není samozřejmé?} + \item{Na jaká omezení a nedodělanosti byste Frantu potřebovali upozornit, aby neupadl do~nějaké pasti?} + \item{Jak vlastně Franta může pokračovat? Co jsou otevřené záležitosti, které by ještě stálo za to vyzkoušet a vylepšit?} + \item{Co byste říkali úplně první (úvod) a úplně poslední (závěr) minutu sezení?} +\end{itemize} + + +\section{Struktura diplomové práce -- Pět kapitol} +Není-li dále uvedeno jinak, tato podkapitola byla převzata z blogu prof. Herouta \cite{Herout} (částečně inspirovaného knihou, kterou napsal Jean-Luc Lebrun \cite{Lebrun2011}) a z dokumentu na osobní stránce prof. Zemčíka~\cite{Zemcik}. +\bigskip + +Diplomová práce je činnost, kterou student vyvíjí po dva semestry studia a pak o ní sepíše knížečku. Rozšířená terminologická chyba je, že se té knížečce, která je o činnosti sepsaná, říká diplomová práce. Ta knížečka je ve skutečnosti technická zpráva o provedené roční činnosti a diplomová práce je ta roční činnost. + +Diplomantova roční činnost zahrnuje za prvé studium: \uv{Co už v oblasti mého zadání existuje? Jak to dělají jiní?} V rámci diplomky člověk dále nějaké věci vymyslí a navrhne: \uv{Zadaný problém lze řešit tak a nebo tak, já k němu přistoupím tímto způsobem, protože na~zvolené platformě je to nejefektivnější.} To, co řešitel navrhl, by měl po sobě ověřit tím, že to implementuje a vyhodnotí: \uv{Pro implementaci jsem zvolil ty a ty nástroje, celý systém rozvrhl do takových modulů. Výsledek je takhle rychlý, má takovou úspěšnost a~reakce uživatelů jsou takové a takové.} + +Základní struktura diplomové práce podle prof. Herouta tedy je: +\begin{enumerate} + \item{Úvod (1 strana)} + \item{Co bylo třeba vystudovat (vč. zhodnocení současného stavu; 40\,\% rozsahu)} + \item{Nové myšlenky, které tato práce přináší (30\,\%)} + \item{Implementace a vyhodnocení (30\,\%)} + \item{Závěr (1 strana)} +\end{enumerate} + +Není chybou, když text má právě 5 takových kapitol, není ani chybou, když je některá z~nich rozdělena na dvě části -- o tom dále. Obvykle je velkou chybou, když tam některá část chybí, nebo má nápadně odchylný rozsah. Názvy kapitol nemusí kopírovat tuto strukturu. Samozřejmě, samotný obsah práce je nadřazen všem zásadám a pokud tedy bude dobrý důvod strukturu porušit, tak to udělejte. + +Na této základní struktuře se řada vedoucích shoduje, byť různí vedoucí doporučují rozdílné názvy kapitol a např. zhodnocení současného stavu lze umístit nejen do 2., ale i~do~3. kapitoly jak to doporučuje prof. Zemčík: +\begin{enumerate} + \item{Úvod (1--2 strany)} + \item{Shrnutí dosavadního stavu (40--50\,\% celkového rozsahu)} + \item{Zhodnocení současného stavu a návrh řešení (3--5 stran)} + \item{Popis vlastní práce (cca 40\,\% celkového rozsahu)} + \item{Závěr (max. 1 strana)} +\end{enumerate} + +Názory vedoucích se dle zaměření práce liší i v rozsazích, jak je vidět např. v~doporučeních dr. Berana \cite{Beran}: +\begin{enumerate} + \item{Úvod (1 stránka)} + \item{Teorie (1/3 stran)} + \item{Návrh řešení (1/3 stran)} + \item{Realizace, experimenty a vyhodnocení (1/3 stran)} + \item{Závěr (1 stránka)} +\end{enumerate} + +U prakticky zaměřených prací, pro která jsou zásadní data a uživatelská rozhraní, lze využít doporučení od doc. Černockého \cite{Cernocky}: +\begin{enumerate} + \item{Úvod (jednotky stran)} + \item{Teoretická část (cca 10 stran)} + \item{Data (jednotky stránek)} + \item{Popis Vašeho algoritmu a jeho testování (cca 10 stran)} + \item{Návrh a implementace (pár stran)} + \item{Uživatelské rozhraní (pár stran)} + \item{Testování (cca 10 stran)} + \item{Závěr (jednotky stran)} +\end{enumerate} + +\section{Diplomka -- komiksová edice} +Tato podkapitola byla převzata z blogu prof. Herouta \cite{Herout}. + +Diplomka (bakalářka je taky diplomka) je poměrně komplexní dílo. Skládá se z velkého počtu písmenek. A ta písmenka nejsou jen tak za sebou, ale jsou uspořádána hierarchicky do~kapitol. Celé to musí mít nějakou logiku, nějaký sled -- čtenář se musí nejdřív dozvědět jedny věci, aby mu pak šlo přesvědčivě předat věci jiné. Musí tam být obrázky, tabulky, vzorce; zároveň si tyto ne-textové věci musí s okolním textem povídat a navzájem se doplňovat. Musí se zcela pokrýt oficiální zadání, a vše musí být doručeno k nějakému přesnému datu, vytištěné a svázané. Pokud, nad to všechno, má být diplomka dobrá, musí to všechno být uděláno dobře. Když se peče koláč z deseti surovin a jedna z nich je zkažená, celý koláč bude hnusný. Musí klapnout všechno. + +\subsection*{Jak to všechno pohlídat? Odkud zaútočit?} +Když s kolegy píšeme článek (poslední dobou asi tak pořád), v hodně rané fázi připravíme něco, čemu říkáme \uv{Comics Edition}. Děláme to jednak proto, že já na tom trvám, a dvak proto, že nám to dosti pomáhá. Třeba to pomůže i Vám s diplomkou. + +Nejprve si ujasněte odpovědi na následující otázky: +\begin{itemize} + \item{Jak byste vystihli podstatu svého řešení ve třech až pěti krátkých větách?} + \item{Jaké jsou silné stránky Vašeho řešení?} + \item{Jaké jsou konkrétní argumenty, že to, co jste udělali, je dobré?} + \item{Kdyby chtěl někdo být na Vaši práci zlý -- co by vytkl?} + \item{Co byste mu odpověděli?} + \item{Jaká klíčová slova by měl člověk zadat do vyhledávače, aby Vaše diplomka byla relevantní odpovědí?} +\end{itemize} + +Pokud máte, můžeme jít na věc \ldots + +\subsection*{Hned založit TEN dokument} +Občas vídám postup, že někdo píše \uv{předběžnou} verzi diplomky do nějakého poznámkovadla. Je to za prvé práce navíc a za druhé zbytečná. Je třeba hned založit dokument, ve~kterém svůj boj dokončíte, a ze kterého výsledek vytisknete. + +\subsection*{Nadpisy kapitol} +Důležitou součástí komixového vydání, o něž se tu snažíme, jsou nadpisy kapitol. Vložte je do dokumentu. Vložte je tak, jak budou z hlediska formátování -- žádné provizorní seznamy: \uv{Já to pak předělám}. Chcete vidět, jak přesně to bude vypadat, jak se vyloupne celý automaticky sestavený obsah. Vložte je jak budou z hlediska jejich znění. Nadpis kapitoly říká, co v kapitole bude. Nadpisy kapitol tvoří kostru celého díla, již pak obalujete masem a kůží textu a obrázků. + +Ze všech slov, která jsou v diplomce, jsou slova v nadpisech \textbf{ta nejdůležitější}. Věnujte jim opravdu mimořádnou pozornost. + +\subsection*{Obrázky} +Obrázek vydá za tisíc slov. Prošel jsem 8 posledních článků, jež jsem spoluautoroval. Dohromady mají 80 stran, obsahují 87 obrázků a 17 tabulek, tj. 1,3 vizuálního sdělení na~stránku (včetně stránek obsahujících reference do literatury, úvodních stránek s abstrakty a vůbec všeho). Mnohé obrázky (tak půlka) se ve skutečnosti skládají z několika podobrázků, zvlášť odkazovaných. Těch jsem v řečených 8 článcích napočítal 221, tj. v průměru 3 vizuály na~stranu. Taková je moje představa o roli obrázků v odborném textu. Nemyslím si, že by mohla existovat vážně míněná diplomka, která by měla \uv{příliš mnoho obrázků}. + +Již v rané verzi komixového vydání diplomky hleďte promyslet, kde se obrázky budou vyskytovat a jaké. Obrázky ještě nemusíte mít hotové. Zdaleka. Ještě nevíme, co přesně na~obrázku bude. Ještě nevíme, jaký pod ním bude popisek. Co víme je, že tu nějaký takový obrázek bude a že se bude skládat z více podobrázků a tak ho hned vložíme. Zabere to tak minutu (vektorovou podobu \uv{TODO Image} máme už dávno uloženou a je součástí této šablony) a hned se víc rýsuje, jak text bude vypadat. +U některých obrázků už dokonce máme představu, jak budou vypadat -- konceptuálně. Nakreslíme na papír nebo na tabuli, vyfotíme mobilem, obrázek vložíme, aby držel místo tomu, jenž přijde po něm a bude nakreslený pořádně (vektorově v Inkscape\footnote{\url{https://inkscape.org}} nebo vygenerovaný Gnuplotem\footnote{\url{http://www.gnuplot.info/}}). + +Jen tak na okraj: Obrázek vydá za tisíc slov. Hloupý obrázek vydá za tisíc hloupých slov. A když už jsme u těch obrázků: Kdo vkládá věci, které by měly být vektorové (schémata, grafy, nákresy, diagramy, prakticky všechno kromě fotek a~snímků obrazovek), jako rastrové obrázky, a kdo vkládá snímky obrazovek (a podobné věci, které mají být přesně) se ztrátovou kompresí (obvykle JPEG), nemůže očekávat pozitivní hodnocení práce. + +\subsection*{Objem textu} +Zrovna tak jako vkládáme obrázky, které ještě nemáme, vkládáme i text, který ještě nemáme. V \LaTeX{}u je na to krásný příkaz \texttt{\textbackslash Blindtext}\footnote{Stručný tutorial: \url{https://texblog.org/2011/02/26/generating-dummy-textblindtext-with-latex-for-testing/}}. Kdo ho (ke své škodě) nechce nebo neumí používat, použije \url{http://lipsum.com}. Pomůže pisateli tušit přibližný rozsah celého díla, hustotu obrázků v textu a další charakteristiky textu při pohledu shůry. Vytvořit si takový odhad trvá třeba 5 minut. Pro orientaci v rozdělaném textu je rozumné tento nijaký text vybarvit šedou barvou (inteligent si na to udělá příkaz, ať se pak barva snadno jednotně změní pro celý dokument). Zkušenost říká, že bez barev v tom člověk začne mít slušný nepořádek -- co už je hotové, co ne, na čem je potřeba pracovat. Je radno investovat pár minut do zprovoznění balíčku pro barvení textu. V rámci této šablony můžete použít příkaz \verb|\todo|, např. \todo{Toto je třeba dokončit}. + +Geneze každé kapitoly ať začíná tím, že obsahuje třeba 3-5 kusů TODO a nějaké to Lorem ipsum. Každé TODO se pak postupně transformuje na větší počet TODO menšího rozsahu, nebo na text, na obrázek, další podkapitoly, cokoliv. TODO střídavě přibývají a~ubývají, práce se přitom vždycky o kousek pohne. + +\subsection*{Jak s tím celým pracovat} +Když na to člověk sedne a \LaTeX{} zrovna nemá špatný den, za hodinu je hotová diplomka (bakalářka je taky diplomka) o správném počtu stran, obsahující představu, co kde bude. Začíná se podobat výsledku, který má přijít až za nějakou dobu, po nějaké práci. + +Dokument pak už v zásadě nenarůstá, ale transformuje se. Je velký rozdíl sednout si před prázdnou bílou obrazovku a \uv{psát diplomku} a vzít si jedno TODO a napsat místo něj odstavec. To první je těžké a někdy to prostě nejde. To druhé jde: má to svůj začátek a konec. Ví se, co se má udělat. + +Pořád platí, že diplomka se nenapíše sama, ale jde to lépe a výsledek má spíše hlavu a~patu. + +\section{Jak pojmenovat kapitoly} +Dobře publikovat neznamená jen posypávat co nejvíc papíru co nejvíce písmenky. Renomé vědce vzniká vlastně až tím, že jinému vědci je jeho práce natolik užitečná, že ho cituje ve~své práci. Proto je potřeba, aby svůj článek napsal dobře: nikdo nebude citovat práci, která je humpolácky napsaná, protože by se sám shodil. +Humpolácky napsaný článek ovšem nikdo nebude citovat už z toho důvodu, že \bf ho nenajde\rm . Už dávno před nějakým internetovým SEO vědci používali při psaní různé \uv{fligny} tak, aby je další vědec, když dělá svoji rešerši, zařadil mezi svůj materiál, jejž přečte, z něhož si nadělá poznámky a který -- nakonec a~logicky -- ocituje ve svém díle. + +Na světě je moře článků. Když vědec Tonda hledá materiál relevantní pro svou práci, zadá klíčová slova (kdysi papírově do knihovny, nyní elektronicky do příslušného vyhledávače) a vypadne mu hromada nálezů -- tj. názvů. První krok, aby článek někdo ocitoval, je mít dobrý název. Tak dobrý, aby Tondu zaujal a on si název rozkliknul ve snaze zjistit více. Název je \bf prvním filtrem\rm . + +Články, jež prošly prvním filtrem, si Tonda rozklikne. To znamená, že vidí abstrakt článku. Abstrakt je \bf druhým filtrem \rm a hodně na něm záleží. Je to jako dostat se do~druhého kola pohovoru k vysněné práci. + +Když tedy Tondu zaujme nadpis i abstrakt, stáhne si celé PDF článku a rychle ho proskroluje, aby si udělal představu: vytiskne ho, nebo okno s článkem zavře a bude se věnovat desítkám jiných? To je \bf třetí filtr \rm a je to jako být mezi pár posledními uchazeči o~práci snů. Na co se Tonda dívá ve třetím kole, během svého skrolování? Na vizuály, tj. na~obrázky, tabulky, vzorce, a právě na nadpisy kapitol. Projde Váš článek třetím filtrem? Bude s ním Tonda pracovat? Na obrázky se zaměříme jindy, tato podkapitola je o nadpisech. + +S diplomkami to může být trochu jinak. Ne každý pisatel diplomky stojí o to, aby ji lidé četli. Tušíme, že existují tací, kteří si přejí spíše pravý opak. Pojďme ale v tomto návodu pracovat s hypotézou, že pisatel chce napsat dobrý text, který by mohl být lidstvu užitečný a stojí za čtení. Tj. za který je možné dostat rozumnou známku. + +\subsection*{Klíčová slova -- půl úspěchu} +Jedna z nejlepších rad pro psaní článků (a obecně odborného textu), kterou jsem kdy slyšel, není úplně intuitivní a samozřejmá. +\bf Napište si klíčová slova, jež by člověk měl napsat do vyhledávače, aby mu vypadlo Vaše dílo jako relevantní odpověď. \rm +Popusťte uzdu fantazii, klidně to vezměte ze široka. Přemýšlejte o aplikacích Vaší práce. O souvislostech. Sepište všechna klíčová slova, bude to na několik řádků. Klíčové slovo je i sousloví -- typicky dvou nebo tří slov. Vyberte z nich ta důležitá. K tomu je potřeba intuice a zkušenost. Kde ty vzít, nevím, ale vždycky se můžete s někým (např. vedoucím práce) poradit. Až budete psát svůj třicátý odborný text, půjde to celkem hladce. + +\bf Všechna důležitá klíčová slova se musí objevit v nadpisu článku nebo v nadpisech kapitol. \rm + +\subsection*{Příliš obecný nadpis, příliš specifický nadpis} +Proč to s těmi klíčovými slovy? Protože nadpisy jsou směrovníky, ukazatele, které ukazují: \uv{Co hledáš, je tady!} Aby někdo o text stál, musí se v něm zorientovat. Potřebuje vědět, že text nabízí odpovědi na některé jeho otázky. Nadpisy mu v tom můžou pomoct, nebo ho přesvědčit o tom, že o text vlastně nestojí. Kdo si při stěhování napíše na všechny svoje krabice od banánů: \uv{RŮZNÉ VĚCI}, bude mít pravdivé a formálně správné popisky, ale nemusel nic psát. Obecný popisek k ničemu není. + +Jednoslovný nebo dvouslovný nadpis kapitoly jsou obvykle podezřelé z toho, že jsou příliš obecné -- s výjimkou úvodu a závěru, kde názvy kapitol jsou kanonické (dané vyhláškou). Máte-li ve své práci jednoslovné nadpisy kromě dvou řečených, pravděpodobně je máte špatně. Název kapitoly, který by šel použít u jiné práce stejného oboru, třeba \uv{Implementace systému}, \uv{Základ zpracování obrazu}, \uv{Principy uživatelských rozhraní}, je podezřelý z~toho, že je příliš obecný. Lepší obvykle bude \uv{Implementace systému pro sledování pohybu much}, \uv{Algoritmy pro detekci objektů a sledování jejich trajektorií}, \uv{Principy uživatelských rozhraní jednoduchých webových systémů}. + +Název kapitoly, který by šel použít na úplně rozdílných školách, je prakticky vždycky špatně -- příliš obecný. Nadpis \uv{Teorie} by mohl být použit na lesnické univerzitě, v IT, na~právech, na vysoké škole mlékárenské a sýrárenské. Je špatně. Nadpis \uv{Studium existujících řešení} je špatně. \uv{Průzkum dostupných technologií} je špatně. Ještě jsem neviděl nadpis, který by byl příliš specifický a nemyslím, že by něco takového mohlo existovat. Může být špatně -- tedy nevystihovat, co se v kapitole nachází. Pokud ale vystihuje, nemůže být příliš specifický. + +Nevybízím tím k nadpisům na pět řádků. Většina dobrých a specifických nadpisů bude na jediném řádku a budou mít v průměru kolem pěti slov. Tu a tam nadpis přeteče na~druhý řádek a bude k tomu dobrý důvod. Sestavit dobré nadpisy -- dosti specifické a přitom ne~příliš dlouhé -- není lehké, ale vyžaduje to přemýšlení. Jako každá lidská činnost, která má za něco stát. + +\subsection*{Zkratky v nadpise} +Zkratky v nadpise nemají co dělat, pokud nejsou úplně super-notoricky známé (ČR, AIDS, IT). + +Je možné v první kapitole vysvětlit nějaký pojem a uvést, že dále se bude vyskytovat ve~zkratce. Je možné tuto zkratku používat dále v textu druhé kapitoly bez dalšího vysvětlení. Není ale možné tuto zkratku používat v nadpise druhé kapitoly, protože nadpisy čte vědec Tonda už ve třetím filtru při rozhodování, jestli se vůbec do první kapitoly pustí. Pokud Tonda při rychlém skenování článku narazí na něco, co v něm vzbudí dojem, že text je nějaký divný, nesrozumitelný, vlastně neví, co se tam píše (to je případ zkratky v~nadpise), článek zavře a už ho neotevře. + +Odkazy do literatury a odkazy na další objekty v článku (obrázky, nadpisy, \ldots) do~nadpisu nepatří a ještě jsem neviděl případ, kdy by tam byly potřeba (a to už jsem viděl hodně případů, kdy se tam vyskytovaly). + +\section{Obecné rady zkušených vedoucích} + +Tato podkapitola obsahuje vybrané rady od dalších zkušených vedoucích, pod jejichž vedením již byly obhájeny stovky prací a kteří věnovali nemalé úsilí sepsání svých rad a jejich vystavení na web. Pro kompletní texty neváhejte navštívit jejich stránky, které naleznete v~literatuře \cite{Beran}, \cite{BeranPDF}, \cite{Cernocky} a \cite{Zemcik}. + +\subsection*{Obecné rady dle dr. Berana} +Tato podkapitola byla převzata ze stránek dr. Berana \cite{Beran}, \cite{BeranPDF}. + +Jak psát/nepsát +\begin{itemize} + \item{Kapitoly číslujte maximálně do druhé úrovně, nadpisy nižších úrovní volte jako nečíslované a neuvádějte je v obsahu, výsledná práce i obsah budou mnohem přehlednější.} + \item{Logické členění -- každý celek -- celá práce, každá kapitola, každá podkapitola má: úvod, stať a závěr: + \begin{itemize} + \item{úvod -- sděluje, co je obsahem celku, co se dočteme, co se řeší, uvádí do kontextu,} + \item{stať -- řeší kontext, problém, detailně specifikuje problém, způsob řešení, postup řešení, výsledek řešení,} + \item{závěr -- rekapituluje úlohu, shrnuje dosažené výsledky a jejich podstatu, uzavírá celek.} + \end{itemize}} + \item{Jedná se o technický text, nedoporučuji příliš mnoho osobních pocitů a \uv{povzdechů}.} + \item{Nepoužívejte množné číslo \uv{MY} jsme udělali, chtěli apod. + \begin{itemize} + \item{používejte buď trpný rod, \uv{testy byly provedeny} namísto \uv{my jsme provedli testy} -- zejména v teoretické části, kdy jde o převzaté myšlenky,} + \item{tam, kde chcete zdůraznit, že se jedná o Váš přínos, Vaši práci, Váš nápad apod. použijte \uv{já} -- návrh řešení, experimenty, realizace,} + \item{protože MY (já-Vy, Vy-čtenář, Vy-svět) jsme nic neudělali, VY jste udělal(a).} + \item{(To, že někde používáte nápady vedoucího, neřešte, to se očekává, je to Vaše práce na~jeho téma.)} + \end{itemize}} + \item{U převzatých obrázků/myšlenek/tabulek použijte \bf citaci zdroje\rm }. + \item{Každý \bf nadpis \rm (kapitoly či podkapitoly) by měl být následován odstavcem textu, který čtenáře informuje, co se dočte v následující části, a který čtenáře uvede do~následující problematiky.} + \item{Nepodceňujte úvod a závěr.} +\end{itemize} + + +\subsection*{Obecné rady od doc. Černockého} + +Tato podkapitola je převzata ze stránek doc. Jana Černockého \cite{Cernocky}. + +\begin{enumerate} + \item{Přečtěte si pár dobrých DP/BP a snažte se vstřebat, jak taková dobrá práce vypadá. Příklady Vám rád dá Váš vedoucí.} + \item{\textbf{Čeština/Slovenština nebo English?} + \begin{itemize} + \item Pokud umíte slušně anglicky a Vaše práce má potenciál být čtena někde jinde než na FIT VUT (součást mezinárodního projektu, práce pro nadnárodní firmu, popis SW, který chcete dát na GooglePlay, atd. atd.), velmi doporučuji psát anglicky. Můžete si 100x říkat, že to pak z češtiny přeložíte, ale už na to nikdy není čas. Navíc nemusíte psát háčky a čárky. + \item Pokud pracujete na BP/DP lokálního významu a víte, že Vaše angličtina za~moc nestojí, doporučuji naopak ušetřit sobě i vedoucímu a oponentovi utrpení a psát česky nebo slovensky. Rady pro psaní práce v angličtině a chyby, kterých se studenti často dopouštějí, najdete v~příloze~\ref{anglicky}. + \end{itemize}} + \item{Nemějte strach z toho, že budete mít málo stran! Nerozepisujte se zbytečně, nekopírujte zbytečné věci z Wikipedie -- jen tím naštvete Vašeho vedoucího a oponenta. Pokud budete následovat doporučenou strukturu a budete psát o tom, co jste skutečně udělali, budete mít na závěr dost kvalitního materiálu. } + \item{Pište průběžně -- nemusíte psát přímo text technické zprávy se vším možným formátováním, ale mějte aspoň nějaký soubor README, kam si budete značit, na čem děláte, průběžné výsledky, co jste četli, co jste použili, o čem to zhruba je atd. Důrazně varuji před systémem \uv{hrnu práci, pak to celé napíšu} -- za půl roku už vůbec nebudete vědět, co jste dělali, a budete si na to (v lepším případě) horko těžko vzpomínat, v horším případě si to budete muset zopakovat. Průběžné psaní Vám také pomáhá strukturovat Vaší technickou zprávu.} + \item{Používejte kontrolu pravopisu (spell-checker). Ušetřete vedoucího a oponenta opravování hloupých chyb (překlepů apod.). MS Word má kontrolu pravopisu dobrou, v~Linuxu je slušný ispall/aspell/hunspell (volá se např. z populárního textového editoru Emacs). Některé nástroje jsou nepoužitelné, např. ten v PSPadu propouští chyb jak ryb.} + \item{Vedoucího průběžně seznamujte s aktuálním stavem práce a sdílejte s ním pracovní verze. Vedoucí by měl práci vidět zavčas! -- nejpozději přibližně 14 dní před odevzdáním, nejlépe průběžně po kapitolách (tabulky s výsledky/závěry třeba nemusí být ještě úplně hotové). Vedoucí Vám ji poškrtá, Vy se na něho naštvete, co si to dovoluje nad mým (přece tak krásným!) dílkem, za~půl dne vychladnete a zjistíte, že má vlastně pravdu, opravíte a další verze již bude mnohem kvalitnější. Pokud toto neuděláte a~odevzdáte verzi, kterou jste četl(a) jen Vy, případně nikdo, dostane \uv{plnou palbu} Vašich chyb oponent a podle toho bude vypadat jeho hodnocení.} +\end{enumerate} + + +\subsection*{Obecné rady od prof. Zemčíka} +Tato část textu je převzata z dokumentu na stránce prof. Zemčíka \cite{Zemcik}. Normálním písmem jsou uvedeny vybrané důležité obecně akceptované zásady, kurzivou jsou uvedena osobní doporučení \uv{navíc}. + +Obsah práce by měl mít na jednu stranu textu práce nejvýše jeden \uv{řádek}. Členění práce do podkapitol by mělo být (s výjimkou úvodu a závěru) rovnoměrné. Tato zásada má přednost dokonce před standardním \uv{desetinným řazením} práce\footnote{Desetinné třídění dle ČSN ISO 7144 a ČSN 01 6910 -- výtah viz \url{http://web.ftvs.cuni.cz/hendl/metodologie/doporuceniupravydizprace.pdf}}. Pokud se týká písma, je třeba typy písma \uv{neplýtvat}. Méně je v tomto případě lépe. Orientačně byste měli kromě základního písma, nadpisů, popisů obrázků a tabulek a rovnic, používat jen minimum fontů, například italiku nebo tučné písmo pro zvýraznění textu (a to nejlépe ani ne obojí najednou) a vhodné písmo s \uv{konstantním krokem} (pevnou šířkou) pro úryvky zdrojových textů. Kromě toho je třeba dodržet formální šablonu předepsanou pro práci, která je uvedena na~fakultním webu. + +\it Pokud se týká úvodu a závěru, velmi doporučuji je vůbec nečlenit do podkapitol a nechat je jako kompaktní bloky textu. Z výše uvedeného v podstatě taky vyplývá, že je vhodné kapitoly členit do podkapitol jen do \uv{1. úrovně}. Pokud byste cítili potřebu častějších nadpisů než v~průměru jednoho na +stranu (zamyslete se ale v tom případě nad tím, jestli to je skutečně potřeba), dá se použít v textu \uv{pomocný} nadpis bez číslování a bez zařazení do obsahu. U~nadpisů je též rozumné se zamyslet nad tím, zda jsou pro čtenáře rozumným vodítkem o textu a pokud tomu tak není, je asi rozumné je přejmenovat. Je též dobré za každým nadpisem zařadit alespoň kousek textu (tedy za nadpisem kapitoly třeba \uv{2.~Stav práce} nepokračovat hned \uv{2.1 Počátek stavu}, ale zařadit kus textu a pak pokračovat. Není také dobré končit kusy textu obrázkem nebo rovnicí, ale je vhodné zakončovat nějakým shrnujícím textem. + +Typograficky podstatnými prvky jsou samozřejmě rovnice, obrázky, grafy, nadpisy apod. V~práci je ale jejich formát v podstatě \uv{tvrdě} upraven šablonou, takže se jimi zde nemá smysl zabývat příliš detailně. Přesto je třeba říci pár slov k jejich začlenění do práce. Především dbejte na to, aby byly +tyto \uv{grafické} prvky dobře graficky odděleny od textu a aby byl výsledek \uv{graficky pěkný}. Výmluvy typu \uv{toto udělal \LaTeX}, \uv{toto udělal Word} neobstojí. U obrázků je vhodné dodržet jednotný styl jejich začleňování do textu a přitom dbát na to, aby obrázky byly buď centrovány nebo aby byly (pokud jsou užší než stránka) umisťovány u~vnější strany stránky (vnější vzhledem k budoucí vazbě, při jednostranném tisku tedy v~zásadě vpravo). + +\textit{Poznámka:} Pokud byste nebyli spokojení s tím, co je na začátku této kapitolky napsáno o obsahu a chtěli čtenáře \uv{lépe navést}, udělejte rejstřík -- to je jiný typografický útvar než obsah a tam můžete uvést hesel kolik se Vám jen zlíbí. Je to ale dost pracné a proto to příliš nedoporučuji. +\rm + +Při psaní práce je třeba používat zásadně spisovný jazyk a vyvarovat se hovorových výrazů, případně slangu (včetně slangu odborného). + +\it Při psaní práce velmi doporučuji se zaměřit zejména na následující body, v nichž se, bohužel, často chybuje: +\begin{itemize} + \item{Využívání 1. osoby jednotného čísla (\uv{já}) je potřeba velmi omezit. Využívání 1. osoby množného čísla, i když se často využívá v beletrii, je potřeba téměř eliminovat úplně. Existují následující výjimky: + \begin{enumerate} + \item{1. osobu jednotného čísla je možno využívat v úvodu a závěru práce jako prostředek sdělení \uv{osobního dojmu} (například \uv{Obvykle se to dělá takto\ldots , ale já jsem zvolil jiný postup\ldots}), lze toho využít i ve zhodnocení současného stavu, ale v žádném případě ne ve shrnutí současného stavu.} + \item{1. Osobu množného čísla je možno využívat v případě, že označujete část práce, kterou jste nedělali sami, ale dělali jste ji v nějakém kolektivu. Vzhledem k tomu, že BP/DP by měla být v zásadě Vaším dílem, je tím potřeba velmi šetřit a z práce by mělo být jasné, že alespoň 90\,\% práce jste dělali sami (například \uv{Program jsem napsal sám, ale pro testování programu jsem požádal o pomoc spolužáky a~spolu jsme provedli experiment\ldots}). Předcházejte otázkám typu \uv{Vy jste tu práci nedělal sám?}} + \item{Výjimkou z obou výše uvedených pravidel jsou matematické texty, kde se tradičně užívá 1. osoby množného čísla (například \uv{Mějme krychli se stranou A\ldots}), tam 1. osobu samozřejmě užívejte bez omezení.} + \item{Další možnou výjimkou jsou řečnické otázky, pokud je tedy v práci používáte. Celkem doporučuji 1. osobu jednotného či množného čísla v práci použít maximálně cca 10$\times$ (mimo případ 3, tam se neomezujte), dolní limit není, ale zase tak 1-2$\times$ se to i hodí.} + \end{enumerate}} + \item{Anglické výrazy by se v práci, obecně vzato, neměly moc vyskytovat. Vzhledem k tomu, že v našem oboru se jim ale nevyhneme, doporučuji takový postup, při kterém při prvním výskytu nějakého odborného pojmu uvedete obě verze (českou a anglickou) s tím, že tu, kterou nadále nebudete využívat, uvedete do závorky třeba i s komentářem (například \uv{\ldots octree (oktalový strom, nadále bude využívána jen anglická forma, protože to je zvykem i mezi odborníky v oboru)\ldots}).} + \item{Zkratky by se při prvním užití v textu měly vysvětlit. Alternativou (asi lepší, ale pracnější) je uvedení seznamu zkratek, kde se na jednom místě přehledně vysvětlí všechny zkratky.} + \item{Budoucí/minulý/přítomný čas by měl být v práci pojat tak, že obecně vzato je práce popisem obecně platných skutečností (pak používejte přítomný čas) v kombinaci s popisem Vaší práce (ta už proběhla, +tak používejte čas minulý). V plánech budoucí práce samozřejmě používejte čas budoucí. Nejvíc ze +všeho ale v tomto případě použijte \uv{cit} a přizpůsobte jazyk situaci tak, aby se práce dobře četla.} +\end{itemize} +\rm + + +\chapter{Jednotlivé kapitoly práce} +\label{kapitoly} + +V této kapitole je detailně popsán význam a doporučený obsah jednotlivých kapitol technické zprávy a jsou zde uvedena doporučení od zkušených vedoucích. + +Struktura práce je ovlivněná jejím zaměřením, průběhem práce a dosaženými výsledky. Je pravděpodobné, že ve svojí technické zprávě nebudete mít všechny níže uvedené kapitoly nebo že tam budete mít nějakou další kapitolu, která zde není zmíněna. Vždy je dobré plánovanou strukturu textu včas konzultovat se svým vedoucím. + +Není-li uvedeno jinak, zbytek této kapitoly je převzat z osobních stránek prof. Zemčíka~\cite{Zemcik}, blogů prof. Herouta~\cite{Herout} a dr. Szökeho~\cite{rady} a dále ze stránek doc. Černockého~\cite{Cernocky} a~dr. Berana~\cite{Beran}. + +Jednotlivé kapitoly by na sebe měly logicky navazovat. \bf Vyžívejte odkazů, např.: \rm \uv{\it Ve~funkci XY implementujeme matematickou formuli, kterou jsme odvodili v sekci 3.2, rovnice 7.\rm} Pokud se odkazujete dopředu, popište dvěma větami to, na co odkazujete. Čtenář by se neměl ztratit, nenuťte ho listovat. \bf Každá kapitola by měla být (v rámci možností) samonosná. \rm Pokud se celou Vaší prací prolíná pár důležitých pojmů, zkratek nebo úvah, vždy je na znovu vysvětlete (jakmile je použijete v dané kapitole). Pokud čtenář otevře Vaší práci uprostřed (např. kapitola 4), neměl by se okamžitě utopit ve zkratkách a~výrazech. + + + +\section{Obsah} +\label{obsah} + +Delší text -- jakým je diplomka -- je opatřen automaticky sestaveným obsahem. U diplomky se MUSÍ vejít na jednu stranu. U sedmisetstránkové knihy možná ne, i když by mohl a bylo by to fajn. U diplomky se MUSÍ vejít vždycky. + +U diplomky ať obsah uvádí pouze nadpisy první a druhé úrovně, třetí úroveň ať tam není, je moc podrobná. Čtvrtá úroveň -- byť by se v obsahu neuváděla a byť by byla použitá jen v některých kapitolách -- je obvykle špatně sama o sobě. + +Pokud jsou nadpisy kapitol správně sestaveny, pohledem na obsah (bez dalších informací, bez čtení abstraktu) musí člověk, který se v oboru aspoň letmo orientuje, přesně poznat, co se v práci nachází. Dokáže odhadnout, co je cílem práce. Ví, z jakých modulů se~celé řešení skládá a k čemu tyto slouží. Řekne, kolik a jakých experimentů řešitel provedl. Dokáže říct, kdo je cílovým \uv{zákazníkem} práce -- komu a k čemu je dobrá. Pokud to ze~samotného obsahu poznat není, nadpisy kapitol jsou asi špatně a buď je pisatel předělá, nebo má špatně napsanou práci. Třetí možnost není. + +\section{Úvod} +\label{uvod} + +První kapitola práce má vždy název Úvod. Slouží k zasazení řešené problematiky do širšího kontextu a v podobě stručného obsahu jednotlivých kapitol definuje strukturu písemné práce \cite{fitWeb}. + +Rozsah úvodu práce by měl být cca 1-2 strany textu. Očekává se, že úvod bude čitelný i~pro \uv{náhodného kolemjdoucího}, který je gramotný, žije v~naší době a naší zemi a to je tak vše. Nemusí být odborníkem v dané technické oblasti. Přesto by měl úvodu porozumět. Je zapotřebí úvod napsat tak, aby byl samostatně čitelným literárním útvarem a pokud čtenář přečte jen úvod, měl by pochopit, o co v práci hlavně jde. Také se celkem často stává, že~lidé čtou jen ten úvod. + +\subsection*{Rady pro úvod od prof. Zemčíka} +Není vhodné úvod dále členit na podkapitoly a není vhodné do něj uvádět odkazy na~literaturu -- měl by to být literární útvar dobře čitelný a \uv{stravitelný} a měl by se pěkně a~příjemně číst. Pokud se týká vnitřní struktury úvodu, je vhodné, aby byla následující: +\begin{itemize} + \item{Cca 5 řádků obecný úvod do tématu pokud možno založený na obecně známých slovech nejlépe úplně bez odborných výrazů (tedy třeba \uv{počítač, video} ano, \uv{stromová struktura} ne),} + \item{kousek textu o tom, proč je práce v dané oblasti důležitá, jaký má význam pro svět a~pro Vás, jaký má vztah ke studované oblasti, případně další důležité skutečnosti,} + \item{kousek i o tom, co se v dané oblasti dělo v minulosti, případně \uv{v~jakém stavu je dnes}, případně jestli jsou nějaké vyhlídky do budoucna,} + \item{je třeba napsat i o tom, \uv{proč se tomu vlastně chcete věnovat}, tedy co Vás vedlo k~výběru tématu a co na tom vidíte perspektivního -- pokud možno pravdivě a věrohodně,} + \item{taky je třeba napsat, co je cílem práce (vlastními slovy, ne opsat formální zadání),} + \item{nakonec je třeba popsat strukturu práce, aby čtenář věděl, kde co hledat (například \uv{v následující kapitole je uveden\ldots, v kapitole \uv{XXX} je popsáno, v kapitole 3 je\ldots} apod.) -- nezapomeňte, že úvod má být i návodem ke čtení práce. } +\end{itemize} + +\begin{samepage} +\subsection*{Rady pro úvod od prof. Herouta} +Nemá se jednat o \uv{úvod do problematiky}, ale o~\uv{úvod do knížečky} (technické zprávy). Po jeho přečtení tedy má čtenář +\begin{enumerate} + \item{mít představu o~čem knížečka bude,} + \item{těšit se na to, že si ji přečte.} +\end{enumerate} +\end{samepage} + +\subsection*{Rady pro úvod od doc. Černockého} + +Úvod je vlastně \uv{rozšířené zadání}. Zahrnuje: + +\begin{itemize} + \item{Proč se na té práci dělalo -- co je Vaše motivace?} + \item{Pozadí tohoto projektu -- je to součást nějakého výzkumného projektu? popsat. Nějaké průmyslové spolupráce? popsat.} + \item{Pokud je BP/DP součást kolektivní práce, jasně popsat, kdo byl zodpovědný za co.} + \item{Co jsou konkrétně věci, kterými byste se chtěli pochlubit (\uv{claims}).} + \item{Kde se čtenář o~čem dočte. \texttt{\textbackslash subsection\{Obsah kapitol\}} atd.} +\end{itemize} + +\subsection*{Rady pro úvod od dr. Berana} + +Úvod by měl být stručný (1 stránka). Měl by obsahovat: +\begin{itemize} + \item{úvod do problematiky (že se pohybujeme v~IT, např. zpracování obrazu a~ne výroba čipů),} + \item{cíl práce -- jeden jasný cíl práce a k němu vedoucí kroky -- cíl je jeden, kroků k dosažení cíle (jako např. knihovna funkcí, vytvoření datasetu) je více,} + \item{stručně obsah celé práce (nejdříve udělám přehled existujících řešení, z~nich vyjdu a~představím návrh svého řešení, otestuji, vyhodnotím, \ldots).} +\end{itemize} + + + +\section{Shrnutí dosavadního stavu} +\label{stav} + +Rozsah této části práce by měl být cca 40--50\,\% celkového rozsahu práce. Smyslem této části práce je seznámit čtenáře s~dosavadním stavem oblasti techniky, která je předmětem práce, a~seznámit ho s~aparátem použitým v~práci (matematickým, fyzikálním, elektronickým, IT apod.). Nelze předpokládat, že ve shrnutí dosavadního stavu bude popsáno úplně vše související s~prací, ale mělo by být uvedeno vše podstatné tak, aby čtenář, alespoň trochu znalý oblasti práce, byl schopen práci pochopit. Tuto část je dost často vhodné dělit na~více kapitol, zejména pokud se jedná~o \uv{mezioborové téma}. Tato část by se měla \uv{velmi intenzivně} odkazovat na literaturu. Rozsah závisí na druhu práce, pokud je práce spíše teoretická, je tato část podstatně delší než u prakticky zaměřené práce. + +\subsection*{Rady pro shrnutí dosavadního stavu od prof. Zemčíka} + +Je vhodné na začátku této části uvést, co obsahuje a proč a taky že \uv{není encyklopedickým přehledem} daného oboru -- to proto, aby někdo práci nemohl vyčíst, že \uv{v přehledu něco chybí}. Text je vhodné psát vlastními slovy, ale může v podstatě obsahově kopírovat citovanou literaturu. Pokud byste museli nutně převzít kompletní kusy textu v rozsahu cca více než jedné věty, je třeba tuto skutečnost řádně označit a ocitovat zdroj. Takových úseků by měl v práci být jen nezbytně nutný počet a maximální délka takového textu je (orientačně) 1/2 strany textu. + +Ideální je se v této části práce zcela vyvarovat soudů ohledně technického obsahu -- dosavadní stav je třeba popsat, ale ne hodnotit. V podstatě je vhodné řídit se tím, že když někdo něco napsal v literatuře, můžete to napsat do dosavadního stavu. Důvodem je to, že~pokud dostane práci do ruky odborník v dané oblasti, měl by mít možnost tuto část práce přeskočit (je odborník, zná ji) a nepřijít přitom o nic podstatného ze samotné práce autora BP/DP. Je velmi vhodné tuto část práce sepisovat průběžně, dokud je přečtená literatura \uv{v~živé paměti} -- pak se nemusí číst znovu. + + +\subsection*{Rady pro shrnutí dosavadního stavu od prof. Herouta} + +Kapitola popisující co bylo třeba vystudovat by měla zabírat asi 45\,\% rozsahu. + +Záměrně nepoužívám duchaplně znějící slovo \uv{Teorie}, které by na tuto část diplomky v~zásadě sedělo. Je to proto, že slovo teorie má zvláštní magickou schopnost spouštět nutkání psát samoúčelné slohové cvičení na nejrůznější témata více nebo méně blízká tématu diplomové práce. I na témata poměrně dost vzdálená. + +Nad každým odstavcem v této části diplomky doporučuji se ptát: \uv{Je tato informace potřebná k pochopení toho, co jsem vymýšlel a implementoval?} Není-li, bez milosti pryč s~ní! + +Tato část textu diplomky se může často skládat ze dvou kapitol. Kdyby někdo v rámci diplomky vytvářel třeba webový účetnický systém, asi by měl jednu kapitolu o účetnictví a~jednu o bezpečných webových systémech. To je typický případ: u spousty IT řešení je potřeba studovat jednak obor činnosti, kde bude systém pomáhat, a jednak nástroje a~postupy vytváření příslušných systémů. + +\subsection*{Rady pro shrnutí dosavadního stavu od dr. Szökeho} + +V této kapitole (může jich být i víc) byste měli ukázat, \uv{že víte, která bije}. Máte prostudováno, jak se Váš problém obvykle řeší, a v čem je Vaše řešení jiné a lepší. Tato kapitola je dobrý zdroj položek do bibliografie. Měli byste ukázat, že jste něco nastudovali. Je dobré se~občas vynořit z matematiky a lidsky v jednom odstavci shrnout, co ty složité derivace vlastně znamenají. Je to užitečné, protože pokud se čtenář ztratí a přestane chápat, vrátíte ho do děje. + +\subsection*{Rady pro teoretickou část od doc. Černockého} + +Teoretická část by měla být na cca 10 stran, u teoretičtějších práci o něco více. +V této kapitole popisujete nezbytnou teorii pro Vaši práci. +\begin{itemize} + \item{Pozor, opravdu pouze tu, kterou potřebujete, nechceme vidět opsaná skripta, knihy, Wikipedii \ldots} + \item{Pokud uvádíte rovnice, je nutné v nich vysvětlit všechny symboly a musí být jasné, k~čemu je ta která rovnice ve Vaši práci použita. Nedávejte tam tedy rovnice \uv{jen tak pro ilustraci} nebo \uv{proto, aby to vypadalo vědečtěji} nebo \uv{abych si zkusil, jak se to v \LaTeX u sází \ldots}} + \item{Pokud je nějaká teorie hodně těžká (například HMM a spol.), nepopisujte ji celou, ale dejte úplně základy, citujte vhodný zdroj a \uv{vypíchněte} jen to, co je ve Vaší práci opravdu důležité.} +\end{itemize} + + +\subsection*{Rady pro teoretickou část od dr. Berana} +Teorie by měla obsahovat: +\begin{itemize} + \item{existující řešení z pohledu Vašeho zadání,} + \item{co již existuje v oblasti mé práce, jaká jiná řešení mého zadání existují,} + \item{co existuje za postupy/nástroje, které mohu využít k řešení,} + \item{veškerá teorie by měla být \bf zdůvodněna \rm (uvedeno, proč je s~ní čtenář seznámen a~jak souvisí s řešením práce).} +\end{itemize} + +\section{Data} + +Pro projekty zabývající se rozpoznáváním či zpracováním přirozeného jazyka jsou data naprosto klíčová a~tato kapitola by jim neměla chybět. Doporučený rozsah je v~jednotkách stránek. Popište: +\begin{itemize} + \item{kde se data vzala (producent, katalogové číslo atd.),} + \item{technický popis -- např. Fs, bitová šířka, počet mluvčích, délka audia atd.,} + \item{dělení na sub-sety -- trénování, vývoj, testování/vyhodnocení -- a~kdo ho dělal (nejlépe použít již existující dělení).} +\end{itemize} + +Tato kapitola ve Vaší diplomce asi nebude, pokud např. děláte na zpracování hudebních zvuků pro real-time hraní. + +Tato kapitola tedy bude především u~prací, které pracují s~datovými sadami, se kterými se běžně pracuje na různých pracovištích a umožňují srovnání výsledků, či u~prací, k~nimž byla školou či třetí stranou poskytnuta určitá datová sada pro testování. + + +\section{Zhodnocení současného stavu a~plán práce (návrh)} +\label{navrh} + +Hlavním cílem této části práce je popsat zhodnocení současného stavu a návrh Vašeho inovativního řešení. + +\subsection*{Rady pro zhodnocení současného stavu a~plán práce od~prof. Zemčíka} + +Tuto část práce je velmi vhodné uvést. Její rozsah je \uv{podle potřeby}. Smyslem je na~základě zhodnocení současného stavu určit cíl práce a vytvořit tak vlastně \uv{detailní zadání}, případně určit předpokládané parametry řešení, ale ne jeho způsob. Osnova této části může být například: +\begin{itemize} + \item{Kritické zhodnocení dosavadního stavu (co je dobře, co je špatně, co případně není řešeno vůbec a~případně cenové parametry, dostupnost řešení, potřebný výpočetní výkon apod.), } + \item{návrh, co by bylo vhodné vyřešit na základě znalostí dosavadního stavu a~také osobních preferencí, zadání práce, požadavků z praxe apod.,} + \item{podle možností i~specifikace práce ve smyslu \uv{co to má dělat}, \uv{jaké to má mít parametry}, \uv{jaké prostředky budou použity}, \uv{jak se to bude vyhodnocovat}, \uv{jak se pozná, že se to povedlo}.} +\end{itemize} +Je vhodné do této části práce napsat pravdivou úvahu, zejména v~bodě \uv{návrh} tak, aby zbytek práce byl uvěřitelný a~aby po přečtení této kapitoly a~poté zbytku textu byl čtenář přesvědčen, že bylo uděláno, co se udělat mělo. + + +\subsection*{Rady pro návrh řešení od prof. Herouta} + +Tato část obsahuje nové myšlenky, které práce přináší: +\begin{itemize} + \item{Rozhodl jsem se.} + \item{Vymyslel jsem.} + \item{Rozvrhl jsem.} + \item{Vypočítal jsem.} + \item{Odvodil jsem.} + \item{Zjednodušil jsem.} + \item{Vylepšil jsem.} + \item{Navrhl jsem.} + \item{Zjistil jsem.} + \item{Vyzkoumal jsem.} +\end{itemize} + +Někdy je těžké od sebe oddělovat nové myšlenky a implementaci. Programátorovi se míchá \uv{navrhl} s~\uv{naprogramoval}. Míchá se: \uv{vylepšil jsem} s \uv{výsledky jsou}. Ale je správně od sebe tyto kapitoly oddělit. + +V mnoha ne-IT oborech se diplomky strukturují jako výzkumné práce podle tzv. vědecké metody. V~našem prostředí (řekněme inženýrské studium IT) se struktura diplomky nedrží přesně tohoto schématu. Naše diplomky (a~myslím, že to není úplně špatně) se vedle výzkumných prací podobají projektové dokumentaci. Pořád je ale správná cesta oddělit formulaci hypotéz od návrhu, jak je ověřit, od jejich samotného ověření/vyhodnocení. + +\subsection*{Rady pro návrh a popis Vašeho algoritmu od~doc. Černockého} + +Pokud je úkolem práce \uv{věda}, bude tato kapitola asi nejobsažnější a bude vhodné ji rozdělit -- třeba na \texttt{\textbackslash chapter\{}Základ\texttt{\}}, \texttt{\textbackslash chapter\{}Zlepšení, zpřesnění, \ldots\texttt{\}} a \texttt{\textbackslash chapter\{}Výsledky a~diskuse\texttt{\}}. Pokud je naopak úkolem spíše vyzkoušet něco existujícího/nového, může být táto kapitola docela stručná. Rozsah této části by měl být asi 10 stran. Obsahuje: +\begin{itemize} + \item{co jste konkrétně udělal s teorií popsanou výše -- blokové schéma, nastavení konstant, technické \uv{přitesání} složité teorie (zjednodušování atd.),} + \item{návrh -- může být jednoduché blokové schéma nebo plný objektový návrh, ale mělo by být jasné, že má Váš SW nějakou strukturu,} + \item{volbu použitého OS, programovacího jazyka a knihoven. V BP/DP není úkolem napsat všechno sám, můžete použít jakékoliv volné i komerční podpůrné programy, knihovny, moduly atd. atd. -- prostě cokoliv -- je to standardní inženýrská práce -- cílem je ji \textbf{udělat}, ne \textbf{napsat všechno sám}. Musíte to v práci pořádně popsat, ne vydávat dílo jiných za vlastní! U knihoven je dobrá přesná specifikace -- odkud, která verze, pokud ji bylo potřeba platit, tak kolik to stálo.} +\end{itemize} + +\subsection*{Rady pro návrh řešení od dr. Berana} + +U návrhu řešení záleží na typu zadání -- následující body nejsou obecné. Rozsah by měl být asi 1/3 stran. +\begin{itemize} + \item{Pište z pohledu velmi dobře placeného experta na myšlenky, který navrhuje řešení problému, inovativní řešení, řešení zajímavých myšlenek.} + \item{Část \uv{návrh} se dá vnímat jako samostatný popis/návod k tomu, jak problém vyřešit, tento návrh se pak předá týmu programátorů a~testerů, který návrh zrealizuje a~otestuje.} + \item{Je-li to možné, návrh by měl být obecného charakteru, bez ohledu na to, bude-li realizován na iOS nebo Androidu, Linuxu či Windows, MySQL nebo Postgres, HMTL5 nebo Flash.} + \item{Detailní rozbor zadání práce, detailní specifikace a formulace cíle a jeho částí.} + \item{Popis použití řešení, situace/problémy, které projekt řeší.} + \item{Postup práce/kroky vedoucí k cíli, rozdělení celku na podčásti.} + \item{Návrh celého řešení i jeho částí, s odkazy na teoretickou část.} + \item{Analýza (mezi)výsledků (měření, pozorování, pilotní testy).} + \item{Vývoj a aktualizace návrhů.} + \item{Aktualizujete-li návrh podle průběžných testů -- uvádět odkazy na testy a výsledky.} +\end{itemize} + +\section{Uživatelské rozhraní} + +Tato kapitola se hodí pouze do některých diplomek a měla by mít rozsah pár stran. U~některých o ně vůbec nejde. Pokud o ně jde a je zásadní, měla by být uvedena (může být i~před návrhem) a obsahovat \cite{Cernocky}: +\begin{itemize} + \item{koncepci UI -- asi jste se něčím inspiroval(a) (existující programy, klasické mechanické zařízení\ldots) -- napište o tom,} + \item{mockup -- pokud si kreslíte nějaké obrázky ručně, dejte je sem!} + \item{jak proběhl výběr konečné varianty,} + \item{pokud UI prodělalo nějaký vývoj, např. jste nebyl spokojený s 1. verzi a na základě uživatelů to úplně předělal, napsat.} +\end{itemize} + + +\section{Implementace} +\label{implementace} + +Tato část práce by se měla zaměřit na vlastní popis práce. Mělo by zde být popsáno, \uv{co se vlastně udělalo}, a tato část by měla společně s testováním tvořit cca 40\,\% celkového rozsahu práce. Z~textu by mělo být zřejmé, co tvoří podstatu vlastní práce uchazeče o titul, jak bylo dílo vytvořeno, jakými prostředky a s jakými výsledky. + +\subsection*{Rady pro popis vlastní práce od prof. Zemčíka} + +Při psaní této části práce je třeba se zejména vyvarovat technických detailů, které by mohly čtenáře odradit či unudit. Důležité je uvést celkovou koncepci práce, podstatné rysy řešení, případně co k těm podstatným rysům vedlo. Dost podstatné taky je, že tato část práce musí popsat, jak se dílo využívá, ale nemůže být návodem k použití. Pozor, veškeré technické detaily, které nejsou podstatné k pochopení podstaty práce (a narušovaly by tak \uv{tok textu} této části práce), patří do příloh a ne do samotného textu, týká se to zejména výpisů dlouhých kusů zdrojového textu, návodů, dlouhých tabulek výsledků atd. Pokud v této části práce uvádíte výpisy zdrojových textů, tak jen úryvky a v nezbytné míře a graficky dobře oddělené od textu. Typickou vadou těchto částí prací bývá to, že jsou pro čtenáře \uv{nestravitelné} díky velikému počtu a~hloubce řešených detailů a také kvůli popisům věcí, které se lidem nedařily a pak se~to \uv{nedaření se} snaží reflektovat v textu (většinou tak, aby bylo jasné, jak se nadřeli a~jak se to nakonec povedlo), ale čtenáře to obvykle vůbec nezajímá. Vítány (a čtenářsky vděčné) jsou naopak obrázky, fotografie, případně i \uv{screenshoty}. Tato část práce může mít jednu nebo více kapitol. Více kapitol je vhodných zejména pokud realizace byla složena ze dvou nebo více tématicky odlišných celků (například server programovaný v C++ a klient v HTML nebo tak \ldots). Osnova v~tomto případě je silně individuální, ale přesto se dají identifikovat základní části, které by asi měly být v níže uvedeném pořadí. +\bigskip + +\begin{samepage} +\noindent Typická osnova: +\begin{itemize} + \item{Popis základní koncepce díla,} + \item{popis fungování díla jako celku (co na co je), podle potřeby více či méně detailní popis fungování jednotlivých částí řešení (ale pozor, není potřeba na všechny dávat stejný důraz -- důraz je třeba dát na neobvyklé či náročné části, \uv{rutinní} části je možné a~taky vhodné zredukovat na minimum),} + \item{způsob a velmi vhodně také příklad použití díla, vhodné jsou \uv{case study} přístupy, \uv{screenshoty}, postupy (pozor, nevhodné jsou návody).} +\end{itemize} +\end{samepage} + +\subsection*{Rady pro popis vlastní práce od dr. Szökeho} +V této kapitole (může jich být víc) popisujete váš problém z implementačního hlediska. Jaké prostředí jste zvolili, jaké knihovny, návrh tříd, komunikace, protokol atd. Nezacházejte do~detailů. Čtenáře nezajímá jak se~implementuje tlačítko. Spíš ho bude zajímat, jak jste implementovali umělou inteligenci, komunikaci nebo zajímavou funkci. \bf Ze všeho by mělo být patrné, proč to tak děláte. \rm Tuto kapitolu nemusí chápat Vaše babička, ale je dobré mít několik úrovní. IT znalému by mělo být jasné co a proč implementujete, zkušený programátor by měl pochopit i detaily (jak přesně to implementujete). + +\subsection*{Rady pro implementaci od doc. Černockého} + +Pokud je úkolem práce udělat \uv{produkční} SW, tak jej zde popisujete. Tato část obsahuje: +\begin{itemize} + \item{komentáře k implementaci -- např. seznam jednotlivých tříd a co dělají, nemusíte detailně popisovat rutinní věci (vstupní parametry z příkazové řádky), ale zaměřte se na klíčové funkce. Nedávejte sem plné zdrojové kódy, ty jsou na CD. Naopak, pokud je pár řádků zdrojového kódu životně důležitých, je dobré je sem vykopírovat a říci, co dělají,} + \item{pokud má Váš program v reálném čase komunikovat s vnějším světem, napište o~časování, možných konfliktech a zda jsou řešeny. V BP/DP se neočekává, že uděláte 100\,\% \uv{blbuvzdorný} SW, ale o možných problémech byste měli vědět,} + \item{pokud tady proběhla třeba implementace v Matlabu, popište,} + \item{výsledky, co to dalo -- nejlépe srovnání s nějakými již existujícími, které na podobném setu dostal někdo jiný,} + \item{pokud bylo úkolem \uv{odpíchnout se} od něčeho existujícího a prozkoušet něco nového, tady je prostor na to to popsat a řádně prodiskutovat.} +\end{itemize} + +\subsection*{Rady pro popis implementace od dr. Berana} +Tuto kapitolu je vhodné oddělit od testování, zejména je-li práce implementačního charakteru. Doporučený rozsah je asi 1/3 stran. + +Pište z~pohledu špatně placeného programátora, který dostal od nadřízeného specifikaci prototypu (Váš návrh řešení) a má za úkol ho implementovat. Kapitola zahrnuje: +\begin{itemize} + \item{specifika cílové platformy a technologií,} + \item{nástroje použité k realizaci prototypu řešení.} +\end{itemize} + + +\section{Testování} +\label{testovani} + +Z~textu této kapitoly by mělo být zřejmé, jak se ověřila správnost/funkčnost vytvořeného díla, jestli matematicky, experimentem, na uživatelích nějakou studií apod. Také, jaké mělo ověřování výsledky. Rozsah by měl být cca 10 stran. + +Tato část práce může mít jednu nebo více kapitol. Více kapitol je vhodných zejména pokud proběhlo rozsáhlé vyhodnocování, pokud se práce nějak nasadila v praxi (může do extra kapitoly) apod. Osnova v tomto případě je silně individuální, ale přesto se dají identifikovat základní části \cite{Zemcik}: +\begin{itemize} + \item{metodika a výsledky ověřování díla, které mohou zahrnovat matematické důkazy, postupy testování, postupy ověřování na lidech,} + \item{interpretace výsledků a možnosti nasazení v praxi (včetně toho, co by se třeba ještě mělo dodělat).} +\end{itemize} + +\subsection*{Rady pro obsah kapitoly o testování od doc. Černockého} + +Tato kapitola je hodně variabilní -- použijte jen body, které se hodí. +\begin{itemize} + \item{Testování na off-line datech -- dalo to stejné/lepší výsledky než publikované? Pokud ne, proč? Horší výsledky nemusí nutně znamenat, že jde o špatnou diplomku (mohl(a) jste mít méně dat na trénování, horší algoritmus udělatelný za 1 semestr atd.), ale měl(a) byste vědět, proč.} + \item{Testování na off-line datech -- dala implementace v C/C++ to stejné, co původní zápis algoritmu v Matlabu?} + \item{Jak je to celé HW náročné -- CPU, paměť, chování při paralelizaci, chování při použití GP-GPU atd.} +\end{itemize} + +\subsection*{Rady pro experimentování od dr. Berana} +Tato kapitola obsahuje experimenty a vyhodnocení -- není-li práce implementačního charakteru, může být v jedné kapitole s implementací. + +Pište z pohledu špatně placeného testera, který dostal od nadřízeného specifikaci prototypu (Váš návrh řešení) a implementaci a má za úkol ji otestovat. Kapitola zahrnuje: +\begin{itemize} + \item{specifika využité platformy,} + \item{data použitá k experimentování s prototypem řešení -- popis dat, zdroje, podmínky získávání dat, charakter dat,} + \item{anotace dat -- formát anotací, zdroj anotací, využití anotací,} + \item{popis měření, popis a podmínky experimentů/testů,} + \item{naměřená data,} + \item{výsledky -- diskuse a interpretace naměřených dat.} +\end{itemize} + +\subsection*{Uživatelské testování} + +Opět je relevantní pouze někde, ale pro některé práce je zásadní. +\begin{itemize} + \item{Výběr subjektů na testování (naivní, zkušení).} + \item{\uv{Testovací protokol} -- co vlastně testovali, na co jste se jich pak ptal(a) -- otázky, hodnocení, \ldots} + \item{Výsledky testování -- odpovědi po subjektech a pak sumární.} + \item{Závěry -- Jsou uživatelé spokojeni? S čím ano, s čím ne? je to dobré? Je to špatně? Dá se něco zlepšit? Zlepšil(a) jste to ještě během diplomky nebo je to na budoucí práci?} +\end{itemize} + +\subsection*{Rady pro experimentování a testování od dr. Szökeho} +V této kapitole byste měli podrobit Váš výsledek kritickému názoru. Nejen Vašemu, ale i~nezávislých uživatelů. Podstatné je, abyste z posbíraných zpětných vazeb učinili relevantní závěr. Například vylepšit GUI, zrychlit některé části kódu nebo zvolit úplně jiný přístup. Pokud máte čas, můžete v rámci diplomky zkusit udělat ještě jednu iteraci a zapracovat na~těch největších nedostatcích. + +\section{Závěr} +\label{zaverPrace} + +Závěrečná kapitola -- Závěr obsahuje zhodnocení dosažených výsledků se zvlášť vyznačeným vlastním přínosem studenta. Povinně se zde objeví i zhodnocení z pohledu dalšího vývoje projektu, student uvede náměty vycházející ze zkušeností s řešeným projektem a uvede rovněž návaznosti na právě dokončené projekty (řešené v rámci ostatních bakalářských prací v~daném roce nebo na projekty řešené na externích pracovištích). + +Závěr práce by měl obsahovat shrnující fakta o práci a čtenáři dát (i bez čtení jiných částí práce) informaci o tom, co bylo předmětem práce a jak se práce vydařila. Závěr by měl obsahovat i osobní dojmy z práce a nejlépe i shrnutí možností dalšího pokračování práce. Délka závěru by neměla přesáhnout jednu stranu textu. Do závěru se nehodí odkazy do~textu práce či literatury. + +V závěru ať nepřicházejí žádné nové poznatky, neobjeví se tam nové číslo nebo nový graf. + +\subsection*{Rady pro Závěr od prof. Zemčíka} + +Velmi doporučuji následující osnovu: +\begin{itemize} + \item{Jednou větou shrnutý záměr práce (například \uv{Cílem této práce bylo \ldots}),} + \item{konstatování, že záměr byl splněn (nejlépe bez zbytečných sebekritických poznámek, ty případně nechte na oponenta),} + \item{přehled splnění jednotlivých bodů formálního zadání práce, a to buď přímo jako \uv{otevřená reakce na zadání} nebo \uv{skrytá reakce}; v každém případě uveďte (třeba jako návod pro sebe jak odpovídat) jednu větu shrnující možnou odpověď na otázku \uv{Jak jste splnili bod X zadání?},} + \item{vhodné kvalitativní a kvantitativní shrnutí práce, například obsahující 3--5 nejvýstižnějších číselných údajů o práci (v rozsahu cca 5--10 řádků textu),} + \item{nějaký pěkný postřeh k práci (\uv{Práce mi dala \ldots naučila \ldots}), } + \item{výhled do budoucna, nejlépe i rozdělený do částí \uv{V práci bych chtěl pokračovat tak, že \ldots} a \uv{V práci by ještě někdo mohl pokračovat tak, že \ldots} -- do částí rozdělených podle toho, co byste případně ještě chtěli zkusit a co by se ještě taky dalo, ale do čeho asi \uv{nepůjdete}. } +\end{itemize} + +Prosím, při psaní závěru si uvědomte, že to je část, kterou si asi přečte z práce nejvíce lidí. Pokud do práce bude v budoucnu někdo nahlížet, přečte si buď jen úvod, nebo jen závěr, případně úvod a hned potom závěr, úvod, popis vlastní práce a závěr, ale jen velmi výjimečně kompletně celou práci. Každý z výše uvedených \uv{průchodů} by měl být pro čtenáře \uv{stravitelný}. + + +\subsection*{Rady pro Závěr od prof. Herouta} +Funkce závěru: + +\begin{itemize} + \item{Autor se ohlíží za tím, co udělal: \uv{V práci je. Hlavní úspěchy jsou. Důležitými výsledky jsou. Podařilo se.}} + \item{Autor uvede nápady, které nestihl realizovat v podobě možností pokračování: \uv{Ještě by bylo možné zkusit. Kdybych byl na začátku věděl, co vím teď, dělal bych.}} + \item{Autor (ve vlastním zájmu) rekapituluje, jak bylo naplněno zadání práce.} +\end{itemize} + +\begin{samepage} +\noindent K tomu dvě poznámky. +\begin{itemize} + \item{Za prvé: \uv{diskutovat možnosti pokračování} zní jednoduše a bezpečně. Nebral bych ale toto krátké sdělení na lehkou váhu. Obecné texty typu \uv{do budoucna by bylo dobré to zrychlit a zpřesnit} ukazují, že se pisatel neobtěžuje skutečně přemýšlet nad svou prací a že nemá nápady. U některých jiných \uv{možností pokračování} zase oponenta právem napadne, že to přece pisatel měl dělat už podle zadání, takže body dolů. Opravdu bych nebral toto krátké sdělení na lehkou váhu.} + \item{Za druhé: Závěr čte oponent úplně na závěr. Chvíli před tím, než se pustí do sepisování oponentského posudku. Závěr ho tedy tak říkajíc ladí na to, jak má posudek napsat. Je dobré ho ladit na notu: \uv{Jsem dobrý student, který naplnil celé zadání a udělal kus zajímavé práce.} To je třeba nepřehnat do polohy: \uv{Jsem špatný student, který neumí přemýšlet a programovat, ale umí hlasitě vykřikovat, že je nejlepší.}} +\end{itemize} +\end{samepage} + +\subsection*{Rady pro Závěr od doc. Černockého} + +Závěr obsahuje: + \begin{itemize} + \item{shrnutí práce -- udělal jsem to a to, toto nefungovalo, toto fungovalo, toto jsem nestihl udělat, protože \ldots} + \item{Budoucí práce + \begin{itemize} + \item{\uv{krátkodobá} -- co je Vám naprosto jasné, že byste sám/sama nebo s pomocí 1--2~lidí dokázal(a) v horizontu několika týdnů -- měsíců udělat a pomohlo by to,} + \item{\uv{dlouhodobá} alias \uv{vzdušné zámky} -- je na Vás, jak moc popustíte fantazií na~procházku.} + \end{itemize}} +\end{itemize} + + +\subsection*{Rady pro Závěr od dr. Berana} +Závěr by měl mít rozsah 1 stránka a obsahuje: + \begin{itemize} + \item{co bylo cílem práce,} + \item{jak se postupovalo při řešení (viz \uv{stručně obsah celé práce} v úvodu),} + \item{co se podařilo vytvořit,} + \item{hodnocení řešení podložené výsledky,} + \item{další možnosti řešení, výhled do budoucna,} + \item{nedoporučuji sebehodnocení a věty typu \uv{vybral jsem si zadání, abych se naučil programovat, a cíle se podařilo splnit}.} + \end{itemize} + +\section{Přílohy} + +Do příloh umístíme ty části práce, které mají výrazně popisný charakter (například příručka pro použití vytvořeného systému, fragmenty zdrojového textu, detailní schémata a detailní popisy řešených částí projektu a podobně) \cite{fitWeb}. Všechny přílohy musí být očíslovány, přičemž se využívá samostatný styl číslování (písmena A--Z). Je-li příloh více, jejich seznam se uvádí na konci práce za seznamem použité literatury. + +I když počet stránek příloh není omezen, je nutné dodržet stručnost a účelnost a přihlédnout k významu přílohy pro hodnocení práce a pro případné navazující práce v budoucnu. Zbytečně velký objem příloh bez řádného odůvodnění může být negativně hodnocen přinejmenším z důvodů ekologických a ekonomických. Více viz \cite{fitWeb}. + +Přílohy jsou vhodným místem pro uvedení návodů, detailních popisů navržených protokolů a formátů, delších tabulek, větších obrázků (mohou být ve formě skládanky) a dalších prvků, které by narušovaly \uv{tok textu} práce. Rozsah příloh se nepočítá do rozsahu práce. Počet stran příloh by neměl být příliš velký -- je důležité, aby všechny přílohy v papírové podobě byly účelné. + +\subsection*{Rady k obsahu příloh od doc. Černockého} + +\paragraph{Příloha 1 -- Kuchařka} + +Návod pro někoho, kdo bude chtít Vaši práci zopakovat, o rozsahu jednotek stran +\begin{itemize} + \item{co je potřeba odkud stáhnout, zkompilovat, jak hacknout OS, aby mi věci běžely \ldots} + \item{adresáře, skripty, co a v jakém pořadí pouštět, kam se dívat na výsledky,} + \item{atd. atd. atd.} +\end{itemize} + +\paragraph{Další přílohy} + +Cokoliv, co by příliš zatěžovalo hlavní text práce -- například dvoustránkové odvození něčeho, třístránková tabulka s popisem nějakého API atd. \ldots + +Přiložené datové médium by mělo obsahovat: +\begin{itemize} + \item{všechny kódy -- Matlab, C, \LaTeX{} atd. atd.,} + \item{všechny natrénované parametry modelu -- HMM, neuronové sítě, transformace, prostě všechno,} + \item{všechno, co je potřeba ke spuštění Vaší práce -- externí knihovny, moduly atd.,} + \item{všechna data -- pokud nejsou omezena licenčními podmínkami,} + \item{detailní výsledky -- do BP/DP dáváte souhrnné tabulky, ale můžete mít třeba několik MB tabulek automaticky vygenerovaných -- dejte je sem.} +\end{itemize} + +\noindent Dr. Beran doporučuje na datovém médiu přiložit: +\begin{itemize} + \item{všechny použité knihovny (nejlépe přeložené) i zdrojové texty s popisem překladu,} + \item{Vaše výstupní aplikace (včetně binárních souborů), tj. spustitelné řešení přímo z datového média,} + \item{video -- jedno nějaké reprezentativní, a pak klidně záznam z běhu výsledného řešení.} +\end{itemize} + +\subsection*{Plakát} +\begin{itemize} + \item{plakát uložte na CD i vytiskněte (nejlépe PDF),} + \item{velikost tisku A2,} + \item{tisknout lze v knihovně nebo v komerční tiskárně,} + \item{obsah plakátu rozumně vyvážen: + \begin{itemize} + \item{především poutavou a jasnou formou (co bylo vytvořeno, co to umí, k čemu to je, jak je to super),} + \item{trošku technického popisu (použité postupy a metody).} + \end{itemize}} + \item{Plakát by měl určitě obsahovat: + \begin{itemize} + \item jméno a příjmení studenta, + \item e-mail studenta, + \item jméno a příjmení vedoucího a + \item akademický rok. + \end{itemize} + } +\end{itemize} + + +\chapter{Pravidla pro bibliografické citace} +\label{citace} + +Tato pravidla jsou převzata ze stránek fakulty \cite{citace}. + +\section{Definice pojmů} + +\begin{itemize} + \item{\bf Bibliografická citace \rm je souhrn údajů o citované publikaci nebo její části umožňující její identifikaci a vyhledávání.} + \item{\bf Odkaz na bibliografickou citaci \rm je odvolání se v textu na bibliografickou citaci uvedenou na jiném místě práce.} +\end{itemize} + +\section{Přebírání cizích textů} + +Při přebírání cizího textu je nutné přebíraný text řádně odlišit od vlastního textu. V opačném případě autor vydává cizí text za svůj vlastní, což je u závěrečných prací těžko tolerovatelný prohřešek. Přebíraný text lze do vlastní práce začlenit dvěma způsoby: + +\begin{itemize} + \item{\bf Doslovné přejetí \rm -- text je přejat ve stejném znění, jak byl uveden v původním zdroji. Krátké přejaté texty jsou vysázeny v uvozovkách, delší v oboustranně odsazeném odstavci. Často se doslovně přejatý text navíc sází kurzívou.} + \item{\bf Parafráze původního textu \rm -- původní text je přeformulován autorem práce při zachování jeho smyslu. Parafráze je vysázena jako běžný text práce. K odlišení toho, která část textu je převzata a která je vlastní, proto autor musí použít jiné prostředky (např. uvedením odkazu na citaci na konci věty popř. odstavce autor říká, že věta popř. celý odstavec byl přejat, nebo je-li parafráze rozsáhlejší, lze na začátek podkapitoly uvést např. \uv{Tato podkapitola byla převzata z [1].}} +\end{itemize} + +Doslovné přejímání textů se hodí například pro uvedení definic, částí zákonů, předpisů či norem nebo pro polemiku s názory jiných +autorů. Doslovné přejímání není proto v technických pracích příliš časté. Pokud nejsou jednoznačné důvody pro doslovné přejetí textu, +použijte parafrázi. Dobře také zvažte rozsah přebíraného textu. Příliš mnoho přebraného textu svědčí o nízké kvalitě závěrečné +práce (obvykle dokončované na poslední chvíli, kdy přebíraný text slouží pouze pro dosažení minimálního požadovaného rozsahu). + +\section{Základní principy citování} + +Bibliografické citace uvádíme proto, aby bylo čtenáři jasné, z jakých prací vycházíme, abychom uvedli čtenáře do širších souvislostí (například aby si méně znalý čtenář, než pro +kterého jsme práci psali, mohl dostudovat látku, kterou jsme v práci nevysvětlili), a také proto, abychom splnili podmínky autorského zákona (viz paragraf 31). Při bibliografických +citacích dodržujte následující pravidla: + +\begin{itemize} + \item{\bf Citujte všechna díla, ze kterých jste čerpali! \rm Pokud některé dílo neuvedete, vydáváte cizí práci za svou vlastní! Již od počátku práce na projektu je vhodné si zaznamenávat všechny zdroje, se kterými jste přišli do styku. Na konci práce je vyhledání všech zdrojů pracnější.} + \item{\bf Citujte pouze díla, která jste skutečně použili! \rm Čtenář, který citovaná díla opravdu zná (nebo si je vyhledá), brzy odhalí, že pořádně nevíte, co v nich vlastně je, přestože je citujete.} + \item{\bf Citujte pouze z primárních pramenů! \rm To znamená, citujte pouze díla, která jste měli \uv{v ruce} (nebo na obrazovce). Jinak hrozí, že citaci převezmete s chybami.} + \item{\bf Uvádějte citace přesně! \rm Čtenáři tím usnadníte vyhledání původního zdroje a vyhnete se podezření, že nepřesnou citací chcete identifikaci původního díla ztížit nebo zcela znemožnit, aby čtenář nemohl ověřit rozsah přebíraného textu.} +\end{itemize} + +Při psaní technické zprávy věnujte těmto citačním principům zvláštní pozornost, protože jejich porušení mívá z pochopitelných důvodů mnohem vážnější následky na celkové hodnocení práce než nedodržení formálních požadavků na bibliografické citace. + +\section{Citační normy} + +Pravidla pro vytváření bibliografických citací a jejich uvádění v odborných publikacích upravuje norma ČSN ISO 690: Informace a dokumentace - Pravidla pro bibliografické odkazy a citace informačních zdrojů z roku 2011. Norma je dostupná v knihovně FIT. Nástroj pro generování citací podle těchto norem +najdete na \url{http://www.citace.com/} a~stručný výtah z normy s příklady citací najdete na stejných stránkách \cite{biblio}. + +Přestože norma připouští umístit citace do odborných publikací různým způsobem (na~konec textu, na konce jednotlivých kapitol, přímo do textu, do poznámky pod čarou, částečně do textu a částečně do poznámky pod čarou), u závěrečných prací na FIT VUT v~Brně je požadováno, aby soupis citací byl uveden na konci práce. + +Odkaz na citaci bude ve tvaru pořadového čísla, pod nímž je uvedena citace v seznamu literatury na konci textu. Pořadové číslo uvedeme v textu v hranatých závorkách. + +\noindent \textbf{Příklad}: \textit{Protokol SMTP je definován dokumentem RFC 5321 [1].} + +Citace jsou seřazeny podle abecedy. Řazení jmen s písmeny s diakritikou můžeme ovlivnit prvkem \texttt{key}, jehož hodnotu nastavíme na příjmení bez diakritiky. Pokud není vyplněn autor, citace se řadí na začátek seznamu, což není vhodné. Řazení v tomto případě můžeme taktéž ovlivnit vhodně nastaveným prvkem key. + +\newpage +\textbf{Příklad}: +\begin{verbatim} + @Article{Cech:2020:Citace, + author = "Čech, Jan", + key = "Cech", + ... +\end{verbatim} + +Citujeme-li tutéž publikaci vícekrát bezprostředně za sebou, můžeme místo opakování celé citace použít výrazu \uv{tamtéž}. + +Příklady citací naleznete v příloze \ref{priloha-priklady-citaci}. + +\section{Využití elektronických zdrojů} + +Výběr kvalitních pramenů, ze kterých při práci vycházíte, je pro vlastní práci velice důležitý. U klasických tištěných materiálů se dá kvalita díla poznat poměrně dobře. U elektronických zdrojů ale zvláště důkladně zkoumejte jejich věrohodnost a kvalitu. Ověřujte si proto, kdo je autorem daného materiálu, a kriticky hodnoťte hloubku předložených informací (řada elektronických zdrojů předkládá jen povrchní a neúplné informace a chyby mezi sebou autoři často přejímají). I když se vám podaří najít dobré elektronické zdroje, nespoléhejte se pouze na ně, ale snažte se využít i tištěnou literaturu. + +Při citaci elektronických zdrojů vždy uveďte, kdy byla informace převzata, protože za několik dní už může být celý web nedostupný. Při použití nástroje BibTeX toho můžete docílit přidáním klíče \verb|cited = "yyyy-mm-dd"|. K citování elektronických zdrojů využívejte \verb|@website| (celá doména) nebo \verb|@webpage| (jedna stránka v rámci domény). Pokud v rámci práce citujete článek z časopisu nebo konference, necitujte jej jako elektronický zdroj, ale jako \verb|@article|. + +\section{Evergreen: citování webu vs. papíru} + +Tato podkapitola byla převzata z blogu prof. Herouta \cite{Herout}. + +Ano, dnes je všechno na webu. Bohu díky. Web ale nemá žádný archiv. Za minutu bude vypadat jinak, než vypadá teď. Když jsou odkazy na \uv{literaturu} samá URL, je tato část diplomky jaksi živá, neuchopitelná, fluidní -- odkazy směřují do prostředí, které je každou vteřinu jiné. Ideálně by i tato část diplomky (jako její ostatní části) měla být pevná, konstantní -- samé odkazy na papír. + +Je slaboduché citovat webový zdroj, když se jedná o uložené .pdf časopisového nebo konferenčního článku. Nedělejte to ve svých diplomkách. +\bigskip + +\noindent Neuvádějte v seznamu literatury + +\noindent \it BAY, H., ESS, A., TUYTELAARS, T. a GOOL, L. V.: Speeded-Up Robust Features (SURF) [online]. 2008 [cit. 2010-07-13]. Dostupné z: \url{https://www.vision.ee.ethz.ch/en/publications/papers/articles/eth_biwi_00517.pdf} +\bigskip +\rm + +\noindent když můžete citovat + +\noindent \it BAY, H., ESS, A., TUYTELAARS, T. a GOOL, L. V.: SURF: Speeded Up Robust Features, Computer Vision and Image Understanding (CVIU), sv. 110, č. 3, str. 346–359, 2008. +\bigskip +\rm + +Ten web už za měsíc možná nepojede, zato konferenční sborník půjde dohledat přinejmenším do samého konce této civilizace. + +\section{Sazba citací} + +V šabloně pro závěrečné práce FIT VUT je pro sazbu citací použit systém BibTeX. + +\subsection*{Údaje v bibliografických citacích} + +Následující je převzato z normy ČSN ISO 690 a zkráceno. Jednotlivé části citace jsou odděleny znakem . (tečka). Každá položka, která se objevuje v citovaném dokumentu, by měla být uvedena tak, jak se v citovaném dokumentu nachází. Obvyklé pořadí údajů v~bibliografické citaci je následující: + +\begin{enumerate} + \item \textbf{Jméno případě jména tvůrců/autorů, pokud jsou k dispozici} + \begin{itemize} + \item Osoby nebo organizace zodpovědné za vytvoření obsahu by měly být uvedeny jako tvůrci. + \item Křestní jména nebo další části jména by měla být uvedena po příjmení, například \texttt{GORDON, D}. + \item Pokud má citovaný zdroj více tvůrců, vyjmenováváme je (oddělovač \uv{and}), pokud jsou autoři více než tři, neuvádíme všechny, ale zkracujeme pomocí \uv{et al.} (za jména píšeme \uv{and others}). + \end{itemize} + \item \textbf{Název} + \begin{itemize} + \item Název je tisknut \textit{kurzívou}. Příliš dlouhý název můžeme zkrátit a chybějící slova nahradit pomocí \ldots{} (tři tečky). + \end{itemize} + \item \textbf{Typ nosiče} + \begin{itemize} + \item Typem nosiče rozumíme jak nosič, na kterém je citovaný materiál dostupný (např. [DVD]), tak to, v jaké formě je dostupný (např. [Braillovo písmo]). Tuto informaci uvedeme do hranatých závorek. Pro materiály online uvádíme [online]. + \end{itemize} + \item \textbf{Vydání} + \begin{itemize} + \item Vydání by mělo být uvedeno včetně symbolů, např. \uv{2. vyd., (reedice)}. Pokud se jedná o aktualizovanou verzi, z citace by vždy mělo být zřejmé, z jaké verze bylo citováno. + \end{itemize} + \item \textbf{Místo vydání, vydavatel, datum vydání} + \begin{itemize} + \item Pokud místo není uvedeno přímo v citovaném dokumentu, ale je známé, doplňujeme ho v hranatých závorkách. + \item Jako vydavatel by měla být uvedena ta osoba nebo organizace, která je v citovaném dokumentu uvedena nejvýrazněji. + \item Datum publikování by vždy mělo být uvedeno. U papírových publikací stačí rok, u elektronických informačních zdrojů je nutné uvádět i měsíc a den. + \end{itemize} + \item \textbf{Číslování v rámci jednotky nebo stránkování} + \begin{itemize} + \item Citace by měla identifikovat tu část citovaného dokumentu, ze které se cituje. + \end{itemize} + \item \textbf{Název a číslo edice, pokud je k dispozici} + \item \textbf{Standardní identifikátory} + \begin{itemize} + \item Pokud má citovaný dokument mezinárndní standardní číslo (ISBN, ISSN, \ldots) případně DOI, které ho jednoznačně identifikuje, musí být uvedeno. + \end{itemize} + \item \textbf{Dostupnost, přístup nebo umístění informací} + \begin{itemize} + \item U elektronických zdrojů by mělo být vždy uvedeno, kde je uvedený zdroj dostupný. Uvádíme jako \uv{Dostupné z:} následované URI nebo URL. + \end{itemize} + \item \textbf{Dodatečné všeobecné informace} +\end{enumerate} + + +\chapter{Formální stránka práce} +\label{formality} + +Formální požadavky na vypracování bakalářské či diplomové práce vycházejí ze směrnice rektora č.~72/2017 \cite{smernice} a ze směrnice FIT č. 7/2018 \cite{smerniceFIT}. Hodnocení formální stránky práce je důležitou součástí posudku oponenta a je proto nezbytné věnovat jí náležitou pozornost (je nutné se seznámit se směrnicemi). Další pokyny a doporučení jsou uvedeny na webu fakulty \cite{formalniBP}, \cite{formalniDP}. + +Požadovaný rozsah písemné části práce bez příloh dle směrnice FIT \cite{smerniceFIT} je uveden v~tabulce \ref{rozsah}: + +\begin{table}[hbt] +\centering +\caption{Požadovaný rozsah písemné části práce v normostranách} +\label{rozsah} +\begin{tabular}{|l|c|c|c|} +\hline + & Minimální rozsah & Obvyklý rozsah & Rozsah by neměl \\ + & & & přesáhnout \\ \hline +Bakalářská práce (9 kr.) & 30 & 40--50 & 60 \\ \hline +Bakalářská práce (13 kr.) & 40 & 60--80 & 100 \\ \hline +Semestrální projekt (SEP) & 20 & 30--40 & 50 \\ \hline +Diplomová práce & 50 & 80--100 & 120 \\ \hline +\end{tabular} +\end{table} +Přibližný rozsah ve vysázených stránkách bude asi 1/2 rozsahu v normovaných stránkách. Pojem {\it normovaná stránka} se vztahuje k~posuzování objemu práce, nikoliv k~počtu vytištěných listů. Z historického hlediska jde o~počet stránek rukopisu, který se psal psacím strojem na speciální předtištěné formuláře při dodržení průměrné délky řádku 60 znaků a~při 30 řádcích na stránku rukopisu. Vzhledem k~zápisu korekturních značek se používalo řádkování 2 (ob jeden řádek). Tyto údaje (počet znaků na řádek, počet řádků a~proklad mezi nimi) se nijak nevztahují ke konečnému vytištěnému výsledku. Používají se pouze pro posouzení rozsahu. \textbf{Jednou normovanou stránkou se tedy rozumí $\mathbf{60\cdot 30 = 1800}$ znaků včetně mezer.} Obrázky zařazené do textu se započítávají do rozsahu písemné práce odhadem jako množství textu, které by ve výsledném dokumentu potisklo stejně velkou plochu. + +Orientační rozsah práce lze při použití systému \LaTeX{} odhadnout sečtením velikostí zdrojových souborů práce a podělením konstantou cca 2000 (normálně bychom dělili konstantou 1800, ale ve zdrojových souborech jsou i~vyznačovací příkazy, které se do rozsahu nepočítají). Pro přesnější odhad lze pak vyextrahovat holý text z~PDF (např. metodou cut-and-paste nebo {\it Save as Text}) a~jeho velikost podělit konstantou 1800. Využít lze i program Detex\footnote{\url{https://www.ctan.org/pkg/detex}} (v operačním systému Linux je dostupný v distribučním balíčku, pro Windows jej lze nainstalovat separátně\footnote{\url{http://urchin.earth.li/~tomford/detex/}}), který ze~zdrojového textu odstraní vyznačovací příkazy a~následně lze jeho velikost rovněž podělit konstantou 1800. \bf Program Detex pro určení počtu normostran v jádru práce využívá i \texttt{Makefile} v této šabloně \rm -- volá se příkazem \verb|make normostrany|. + +V Microsoft Word lze orientační počet normovaných stran zjistit pomocí funkce {\it Počet slov} v~menu {\it Nástroje}, když hodnotu {\it Znaky (včetně mezer)} vydělíte konstantou 1800. Do~rozsahu práce se započítává pouze text uvedený v~jádru práce (od úvodu po závěr). Části jako abstrakt, klíčová slova, prohlášení, obsah, literatura nebo přílohy se do rozsahu práce nepočítají. Je proto nutné nejdříve označit jádro práce a~teprve pak si nechat spočítat počet znaků. Přibližný rozsah obrázků odhadnete ručně. Podobně lze postupovat i~při použití OpenOffice či LibreOffice. + + +Originální text věnující se úkolu, jehož řešení tvoří jádro kvalifikační práce, musí představovat alespoň třetinu celkového rozsahu písemné zprávy. Pouhý kompilát dostupných zdrojů je nepřijatelný. + +Předmětem hodnocení oponenta kvalifikační práce je především text písemné zprávy a výsledný produkt. Neúměrně velký počet stran písemné zprávy svědčí o nekvalitním zpracování tématu a oponenta zbytečně zatěžuje. U prací, u nichž rozsah písemné zprávy odpovídá objemu vykonaných prací, se samozřejmě připouští větší rozsah vysvětlujícího textu. Vysvětlení podstaty řešeného problému a použitých přístupů k řešení však nemusí narůstat lineárně s objemem prací. Při kvalitní struktuře a ucelenosti textu písemné zprávy může být rozsah textu relativně malý. Detailní popisy významných částí projektu, které mají dokumentační (nikoliv vysvětlující) charakter, mohou být uvedeny v rámci příloh, na~které se z hlavního textu odkazujeme. + +Pokud se rozsah písemné zprávy bude blížit minimálnímu požadovanému rozsahu, bude oponent zvláště pečlivě hodnotit, zda jsou jednotlivé části zprávy pro pochopení práce opravdu nezbytné. Zařazení cizích textů, které s tématem vlastní práce souvisejí pouze okrajově nebo jejichž kvalita je pochybná, s cílem dosáhnout alespoň minimálního požadovaného rozsahu (např. v časovém stresu těsně před termínem odevzdání práce), může vést k citelnému zhoršení celkového hodnocení práce. + +Při vkládání obrázků volte jejich rozměry tak, aby nepřesáhly oblast, do které se tiskne text (tj. okraje textu ze všech stran). Pro velké obrázky vyčleňte samostatnou stránku. Obrázky nebo tabulky o~rozměrech větších než A4 umístěte do písemné zprávy formou skládanky (tzv. skládání do Z, angl. Engineering fold -- existuje i anglický pojem Z-fold, ale při tom by byl problém s vazbou) všité do textu (jsou-li pro práci podstatné), přílohy, nebo je poskládejte do záložek na zadní desce. + +Tabulky a~obrázky používají své vlastní, nezávislé číselné řady. Z toho vyplývá, že v~odkazech uvnitř textu musíme kromě čísla udat i~informaci o~tom, zda se jedná o~obrázek či tabulku (například \uv{\ldots{} {\it viz tabulka 2.7} \ldots}). Dodržování této zásady je ostatně velmi přirozené. + +Pro odkazy na stránky, na čísla kapitol a~podkapitol, na čísla obrázků a~tabulek a~v~dalších podobných příkladech využíváme speciálních prostředků DTP programu, které zajistí vygenerování správného čísla i~v~případě, že se text posune díky změnám samotného textu nebo díky úpravě parametrů sazby. + + +Rovnice, na které se budeme v~textu odvolávat, opatříme pořadovými čísly při pravém okraji příslušného řádku. Tato pořadová čísla se píší v~kulatých závorkách. Číslování rovnic může být průběžné v~textu nebo v~jednotlivých kapitolách. + +Jste-li na pochybách při sazbě matematického textu, snažte se dodržet způsob sazby definovaný systémem \LaTeX{}. Obsahuje-li Vaše práce velké množství matematických formulí, doporučujeme při jejich psaní dát přednost použití systému \LaTeX{}. + +Mezeru neděláme tam, kde se spojují číslice s~písmeny v~jedno slovo nebo v~jeden znak -- například {\it 25krát}. Lomítko se píše bez mezer. Například školní rok 2019/2020. + +Členicí (interpunkční) znaménka tečka, čárka, středník, dvojtečka, otazník a~vykřičník, jakož i~uzavírací závorky a~uvozovky se přimykají k~předcházejícímu slovu bez mezery. Mezera se dělá až za nimi. To se ovšem netýká desetinné čárky (nebo desetinné tečky). Otevírací závorka a~přední uvozovky se přimykají k~následujícímu slovu a~mezera se vynechává před nimi -- (takto) a~\uv{takto}. + +Pro spojovací a~rozdělovací čárku a~pomlčku nepoužíváme stejný znak. Pro pomlčku je vyhrazen jiný znak (delší). V~systému TeX (\LaTeX{}) se spojovací čárka zapisuje jako jeden znak \uv{pomlčka} (například \uv{Brno-město}), pro sázení textu ve smyslu intervalu nebo dvojic, soupeřů a~podobně se ve zdrojovém textu používá dvojice znaků \uv{pomlčka} (například \uv{zápas Sparta -- Slavie}; \uv{cena 23--25 korun}), pro výrazné oddělení části věty, pro výrazné oddělení vložené věty, pro vyjádření nevyslovené myšlenky a~v~dalších situacích (viz Pravidla českého pravopisu) se používá nejdelší typ pomlčky, která se ve zdrojovém textu zapisuje jako trojice znaků \uv{pomlčka} (například \uv{Další pojem --- jakkoliv se může zdát nevýznamný --- bude neformálně definován v~následujícím odstavci.}). Při sazbě matematického mínus se při sazbě používá rovněž odlišný znak. V~systému TeX je ve zdrojovém textu zapsán jako normální mínus (tj. znak \uv{pomlčka}). Sazba v~matematickém prostředí, kdy se vzoreček uzavírá mezi dolary, zajistí vygenerování správného výstupu. + +Pravidla pro psaní zkratek jsou uvedena v~Pravidlech českého pravopisu \cite{Pravidla}. I~z~jiných důvodů je vhodné, abyste tuto knihu měli po ruce. + + +\section{Časté chyby} +\label{chyby} + +V této části jsou vybrány a zkráceny popisy častých chyb a rady, jak se jim vyhnout, převzaté z blogu prof. Herouta \cite{Herout} a ze seznamu častých chyb, který má na svém blogu dr. Szöke \cite{chyby}. + +\subsection*{Drobnosti, které notoricky kazí čtení} +V této sekci se nachází přehled drobných formátovacích zel, které se často nacházejí v~kvalifikačních pracích: + +\begin{itemize} + \item{ + \textbf{Používání spojovníku místo pomlčky} \\ + Pomlčka je dlouhá a před ní a za ní se píše mezera. Pomlčka se často použije ve větě místo čárky: \uv{Tato kniha -- vydaná ještě před válkou -- je opravdu úžasná.} Použije se u rozsahů: \uv{strana 23--26} nebo \uv{úspěšnost 3--5\,\%}. Další použití jsou v jazykové příručce \cite{prirucka}. + +Spojovník se v našich IT diplomkách vyskytuje (tedy má vyskytovat) daleko vzácněji. Třeba ve spojeních jako \uv{říkám-li}, nebo u těsného spojení podstatných jmen: \uv{Rh-faktor}, \uv{real-time}, \uv{propan-butan}. + } + \item{ + \textbf{Mezery kolem závorek} \\ + Před levou závorkou je VŽDY mezera a to platí i pro kulatou i pro hranatou (při odkazování do literatury). Za pravou závorkou není mezera, pokud je za ní tečka, čárka, vykřičník nebo otazník. Na vnitřní straně závorek (ani třeba uvozovek) mezera není nikdy. + } +\end{itemize} + +\noindent Stručný přehled častých stylistických a jazykových prohřešků: + +\begin{itemize} + \item + { + Anglicky správně: + \begin{itemize} + \item{\uv{by using the OpenGL library}} + \item{\uv{in the MVC model}} + \item{\uv{all UI elements}} + \item{\uv{from the JSON string}} + \item{\uv{call it from C\# code}} + \end{itemize} + + Česky nesprávně: + \begin{itemize} + \item{\uv{s použitím OpenGL knihovny}} + \item{\uv{v MVC modelu}} + \item{\uv{všechny UI prvky}} + \item{\uv{z JSON řetězce}} + \item{\uv{volat ji z C\# kódu}} + \end{itemize} + + Česky správně: + \begin{itemize} + \item{\uv{s použitím knihovny OpenGL}} + \item{\uv{v modelu MVC}} + \item{\uv{všechny prvky UI} -- nebo ještě radši \uv{všechny prvky uživatelského rozhraní}} + \item{\uv{z řetězce ve formátu JSON}} + \item{\uv{volat ji z kódu v jazyce C\#}} + \end{itemize} + + } + \item + { + \textbf{Věty bez slovesa} \\ + Každá věta ať má sloveso. V krásné literatuře se někdy pro vytvoření spádu a pro další umělecké záměry používají věty bez slovesa. Za poslední dva týdny jsem přečetl přehršel vět bez slovesa a nikdy to nesedělo, vždycky to bylo ke zlému. V diplomkách ať má každá věta své sloveso. + } +\end{itemize} + + + +\subsection*{Jak popisovat plovoucí objekty (obrázky/tabulky)?} +Obrázek, a podobně i tabulka, se skládá ze samotného obrázku a z jeho popisku (v \LaTeX u \texttt{\textbackslash caption}). Popisek u obrázku či tabulky slouží k tomu, aby výsledný objekt fungoval samostatně -- čtenář se na něj často podívá ještě před tím, než si přečetl text okolo, a je žádoucí, aby obrázku i tak dokázal nějak přiměřeně porozumět. + +Nebál bych se titulky obrázků mít pětiřádkové i sedmiřádkové. Někdy budou stačit jen dva řádky. Někdy -- ne příliš často -- bude titulek o třech slovech ten nejsprávnější. Pokud v některé diplomce všechny titulky mají pouze tři nebo čtyři slova, prakticky jistě bude čtenář frustrován, protože obrázky nebudou dávat samostatně smysl. + +Pokud je v obrázku nějaký barevný kód (některé objekty jsou třeba červeně, některé modře a ještě jiné tlustě zeleně), vysvětlení kódu patří do titulku. Pokud se obrázek skládá z částí (třeba vpravo nahoře, vlevo nahoře a dole), pojmenování a odůvodnění částí patří do titulku. + +Když to povídám studentům, někteří z nich se poděsí: \uv{Ale to přesunu celé věty z~textu do~těch titulků!} Ano, přesuňte je, ničemu to nevadí. Základní vysvětlení bude přímo u obrázků a tak to má být. Podrobnější vysvětlení, zdůvodnění, interpretace zůstanou v~hlavním textu. Dvacetiřádkový titulek u obrázku nebo tabulky, to už by bylo moc, ale pětiřádkový titulek je standard a nebojte se ho. + +\subsection*{Mluvnická osoba} + +Použití \bf druhé osoby \rm (oslovení čtenáře Vy/You) je skoro vždycky špatně a je to protivné. + +Špatně: +\begin{itemize} + \item{\uv{Podívejte se na obrázek 5, kde najdete \ldots}} + \item{\uv{Když budete pracovat s knihovnou X, jistě narazíte na \ldots}} + \item{\uv{Kdybyste se chtěli přepnout do nastavení, zvolíte příslušnou položku v nabídce.}} +\end{itemize} + +Správně: +\begin{itemize} + \item{\uv{Obrázek 5 ukazuje \ldots}} + \item{\uv{Častým jevem při používání knihovny X je \ldots}} + \item{\uv{Do nastavení je možné vstoupit zvolením příslušné položky v nabídce.}} +\end{itemize} + +Použití \bf první osoby množného čísla \rm (my/we) nemusí být úplně vždy špatně a \uv{klasická} literatura o psaní odborného textu ho dokonce někdy doporučuje jako tzv. autorský plurál: +\begin{itemize} + \item{\uv{Zjistili jsme \ldots}}, + \item{\uv{Zaměřili jsme se \ldots}}, + \item{\uv{Navrhli jsme řešení, které \ldots}}. +\end{itemize} + +Méně zkušení pisatelé se z autorského plurálu příliš často přepnou do zvláštního a nesprávného jazykového modu, který mají zažitý už z doby, kdy navštěvovali mateřskou školu. Jde totiž o způsob řeči učitelek v mateřských školách (jinak nic proti nim): \uv{Tak děti, teď si nalepíme korálek přesně doprostřed kvítečku. Vytlačíme si trošku lepidýlka, tááák, a~prstíčkem do něj korálek natlačíme, tááák.} + +Není vůbec tak komické a roztomilé, když diplomant touto řečí mateřských škol popisuje svoje životní dílo: \uv{Nejdřív si musíme přilinkovat knihovnu X. Potom si vytvoříme objekty zvolených tříd a postupně je odesíláme na server. Když nám server odpoví chybovým kódem, musíme resetovat připojení.} Nepoužívejte při psaní tento jazyk, pokud nechcete, aby vaše diplomka byla hodnocena jako dílo někoho, kdo se mentálně zasekl v mateřské škole. + +Použití \bf první osoby jednotného čísla \rm (já/I) je správně, pokud se jedná o \uv{subjektivní} záležitost: +\begin{itemize} + \item{\uv{Zaměřil jsem se na \ldots}}, + \item{\uv{Vytvořil jsem \ldots}}, + \item{\uv{Naměřil jsem \ldots}}, + \item{\uv{Oslovil jsem několik respondentů \ldots}} +\end{itemize} + +Nesprávné (ovšem bohužel celkem časté) je použít první osobu v popisu jevů a postupů: +\begin{itemize} + \item{\uv{V prvním kroku algoritmu si vynuluji čítače.}} + \item{\uv{Pokud v ukazateli mám hodnotu null, provedu alokaci nového objektu.}} + \item{\uv{Z grafu je patrné, že mám nastavenou příliš malou velikost vyrovnávací paměti.}} +\end{itemize} + +\subsection*{Další chyby} + +\bf Necitujte irelevantní \uv{blbosti}: \rm Informace v Úvodu o tom, že připojení na Internet je dostupné už i na Mount Everest může působit dojmem, že je třeba to nějak potvrdit. Nicméně toto zbytečně nafukuje Literaturu o spoustu irelevantních zdrojů (vzhledem k~tématu Vaší práce) -- což se může obrátit proti Vám v posudku. Takže to tam nepište vůbec, nebo to alespoň necitujte. + +\bf Zkratky a poznámky pod čarou by měly být \uv{samonosné}. Pokud máte v~textu zkratku, tak ji při prvním použití rovnou rozepište: \rm Pokud se vám zkratka opakuje třeba o 2 kapitoly dále, tak ji opět při prvním výskytu můžete rozepsat, a nebo jen dát poznámku pod čarou. Důležité je, aby pod čarou byla vypsána i ta zkratka. Pokud se jedná o zkratku nějakého \uv{slušného} sousloví, nebojte se jej přeložit též do češtiny. + +\noindent Špatně: +\begin{enumerate} + \item{large-vocabulary continuous speech recognition} +\end{enumerate} +Správně: +\begin{enumerate} + \item{LVCSR -- large-vocabulary continuous speech recognition (rozpoznávač spojité řeči s~velkým slovníkem)} +\end{enumerate} + +\bf Nevynechávejte text mezi sekcí a podsekcí: \rm Mezi názvem kapitoly a podkapitoly by neměl chybět text. Toto místo přímo volá po 1-2 odstavcích, kde vysvětlíte, o čem ta kapitola je a co se v ní čtenář dozví. + +\bf Ručně dělané skicy a obrázky: \rm Obzvláště pro pracovní verzi práce je jednodušší rychle něco namalovat, vyfotit a pak psát dál. Většinou je ta skica schématu napoprvé špatně a tak zbytečně ztrácíte čas předěláváním. Do finálního textu bych byl s \uv{ruční prací} opatrný. Pro některé oponenty/přísedící to může být falešný indikátor, že jste nestíhali, a~tak jste to odbyli rukou za 5 minut. + +\bf Úvod a Závěr: \rm Překlepy, nesmyslné věty, hrubky, nespisovná slova, \ldots To vše do diplomky nepatří. Někde hluboko v práci se ten jeden jediný překlep snad ztratí. Ale úvod a~závěr čtou úplně všichni. A mít tam chyby je ostuda. Až u obhajoby budete přesvědčovat komisi, že jste odvedli velký kus práce, jak asi bude vypadat fakt, že si po sobě neumíte přečíst jednu stranu textu? + +\bf Citujte obrázky: \rm Pokud si \uv{vypůjčíte} obrázek z nějakého zdroje, nepřiznáte se a~přijde se na to, máte za F. Citace odkazem do literatury na konci popisku obrázku je (asi) OK. Přesto má řada oponentů raději explicitní uvedení do závorky: (převzato z literatury [xy]). + +\bf Nepřehánějte to se sekcemi: \rm Pokud má mít sekce 1-2 odstavce v samostatných podsekcích, zkuste se zamyslet, jestli by nebylo lepší to vyřešit třeba odrážkami. + +\bf Popisky v obrázku: \rm Nepopisujte komplikovanější obrázky stylem Vlevo je A, nahoře je B, uprostřed vidíte C, pod tím se nachází D a vedle je XY. Výsledek bude půl strany textu. A pokud nebude obrázek hned na stejné straně, tak se čtenář ulistuje k smrti. Dopište do obrázku popisky. Obrázek se stane \uv{samonosným}. + +\bf Detaily do přílohy: \rm Nesnažte se v práci za každou cenu detailně popisovat kompletní digram tříd, tabulek, objektů, \ldots{} Vložte jedno celkové schéma a popište základní komponenty. Dále se pak věnujte jádru systému (třeba ty tři označené objekty). Ty jsou klíčové, a~stojí na nich Vaše práce. Popis ostatních \uv{podpůrných} objektů (např. načítání a vykreslování dat) můžete dát do přílohy. V textu se pak jednou větou odkážete, že: \it Detailní popis všech tříd a jejich metod je v Příloze 1. \rm + +\bf Nepište dlouhá souvětí: \rm Věta přes celý odstavec (na 6,5 řádku). Na třetím řádku čtenář zapomene, co četl na začátku věty. Nebojte se souvětí dělit na menší. Místo zasypání a udušení čtenáře pod hromadou slov po něm střílejte krátké věty. Dáte mu tím možnost se mezi nimi nadechnout. Nebo reprezentujte informace výčetem (\tt itemize\rm ). + +\bf Nedělitelné mezery: \rm Udělat takovou typografickou hrubku jako je např. ponechání \uv{s}~na~konci řádku hned v názvu BP či DP je ostuda. Existuje něco, čemu se říká nedělitelná mezera, tedy mezera, ve které se nemůže zalomit konec řádku. V \LaTeX{}u se tato mezera označuje vlnkou \textasciitilde. Též pěkně popsáno v knize {\LaTeX} pro začátečníky \cite{Rybicka}. + +\chapter{Odevzdání práce} +\label{odevzdani} + +Bakalářská či diplomová práce se odevzdává v listinné a v elektronické formě, kde elektronická forma se odevzdává na přiloženém paměťovém médiu s listinnou formou práce a~současně do IS VUT. Za odevzdanou se považuje až ve chvíli, kdy jsou korektně odevzdány obě formy práce. Tato kapitola je do značné míry převzata z oficiálních pokynů na~webu \cite{formalniBP}, \cite{formalniDP}. + +Ti, kteří se rozhodli utajit některé části práce, o to musí min. měsíc před odevzdáním podat žádost. Dle úpravy vysokoškolského zákona č.~111/1998 zákonem č. 137/2016, \S 47b, odstavce 4 musí být v případě odloženého zveřejnění od roku 2017 vždy odeslán výtisk úplné verze práce na MŠMT. Student tedy musí odevzdat o~jeden výtisk plné verze práce v~knihařské vazbě více. Tento 2. výtisk pak bude shodný s~prvním a bude rovněž obsahovat paměťové médium. Do obou výtisků volně vloží papír s oznámením, že se~jedná o utajovaný výtisk, na kterém bude vyznačena doba trvání překážky pro zveřejnění (které však lze odložit nejdéle na dobu 3 let) a uvedeno odůvodnění odkladu zveřejnění. + +Před odevzdáním důkladně zkontrolujte checklist přiložený k této šabloně (příloha \ref{checklist}). Dále ověřte, že je práce v souladu se směrnicemi \cite{smernice} a \cite{smerniceFIT}. Podstatné detaily, na které se občas zapomíná: +\begin{itemize} + \item \textbf{Titulní list:} Nezapomeňte nastavit správný rok (odevzdání) a ústav dle zadání. + \item \textbf{Zadání:} Nezapomeňte na stažení elektronické verze zadání (šablona ji očekává v~souboru nazvaném \texttt{zadani.pdf}). + \item \textbf{Prohlášení:} Nezapomeňte před odevzdáním podepsat prohlášení v obou výtiscích práce. + \item \textbf{Bibliografické citace:} zkontrolujte, zda v textu odkazujete všechnu citovanou literaturu. +\end{itemize} + +Pak práci vytiskněte a nechte si ji vyvázat. Pokud svázanou práci otevřete na libovolné stránce, okamžitě najdete chybu. Ignorujte to, je to normální. Nic není dokonalé, prostě \uv{just ship it}\footnote{\url{http://blog.igor.szoke.cz/2011/08/zkoumejte-bezte-za-bod-odkud-neni.html}} \cite{rady}. + + +\section{Odevzdání listinné formy práce} + +Bakalářská či diplomová práce se odevzdává ve dvou výtiscích, přičemž každý z nich bude obsahovat podepsané prohlášení. Výtisk pro archivaci musí být svázán nerozebíratelným způsobem. Doporučeny jsou desky z polotvrdého papíru, tmavé (modrá, šedá), na vnitřní straně zadní desky bude vlepena obálka s CD/DVD či jiným povoleným nosičem tak, aby bylo možné jej vyjmout. Výtisk určený pro nahlédnutí před obhajobou v knihovně FIT, který bude diplomantovi po obhajobě vrácen, může být svázán i rozebíratelným způsobem (např. kroužková vazba). + +Student kromě vytištěné písemné zprávy odevzdává následující součásti práce v elektronické podobě: +\begin{itemize} + \item{písemnou zprávu ve formátu PDF (i v IS VUT),} + \item{zdrojový tvar písemné zprávy (včetně všech náležitostí tak, aby bylo možné text diplomové práce upravit a znovu vytisknout),} + \item{úplnou dokumentaci (návod k instalaci, uživatelskou příručku, obvodová schemata apod.),} + \item{zdrojové texty programů (binární programy musí být přeložitelné z dodaných zdrojových textů),} + \item{všechny programy ve spustitelné formě schopné běhu v prostředí CVT FIT. Pokud toho nelze dosáhnout (např. v CVT není nainstalován potřebný SW nebo HW nebo pokud je výsledkem práce nový hardware), po dohodě s vedoucím předvede diplomant funkční produkt vhodným způsobem oponentovi.} +\end{itemize} + +Dokument z \LaTeX{}u můžete do PDF převést aplikacemi pdflatex nebo výsledné dvi programem dvipdf případně z postscriptu programem ps2pdf. Výsledný dokument by měl mít řádově max. jednotky MB, pokud dosahuje několik desítek MB, je někde koncepční chyba. Zpravidla obsahuje obrázky s neúčelně vysokým rozlišením. + +Kompletní elektronická podoba musí být přiložena na nepřepisovatelném paměťovém médiu CD-R, DVD-R, DVD+R ve formátu ISO9660 (s rozšířením RockRidge a/nebo Jolliet) nebo UDF nebo paměťové kartě SD (Secure Digital) ve formátu FAT32 nebo exFAT s~nastavenou ochranou proti přepisu. + +\section{Jak odevzdat práci v IS VUT} + +Do IS VUT je třeba vložit kompletní text diplomové práce ve formátu PDF -- do modulu Moje závěrečná práce. Kromě dokumentu je nutno vyplnit také abstrakt a klíčová slova, obojí česky (slovensky) i~anglicky (při kopírování z \LaTeX{}u nezapomeňte nahradit nezlomitelné mezery). Jediný případ, kdy lze odložit zveřejnění textu práce, je z důvodu ochrany duševního vlastnictví, což musí předem schválit příslušný proděkan (jinak je jedinou možností zveřejnění ihned). Student v tomto případě odevzdává písemně i~elektronicky plnou verzi práce pro recenzi. Bez těchto náležitostí se práce nepovažuje za~odevzdanou. + +Semestrální projekt se u diplomové práce rovněž odevzdává do IS VUT. U bakalářské práce se odevzdává pouze tehdy, vyžaduje-li to vedoucí práce. + + +\chapter{Závěr} +\label{zaver} + +V tomto textu bylo uvedeno, jak začít s tvorbou bakalářské či diplomové práce, napsat abstrakt, připravit základní strukturu práce a co uvést do jednotlivých kapitol. Při tom bylo vysvětleno, že bakalářská práce je také diplomová a je třeba k ní přistupovat stejně zodpovědným způsobem. Následně byla věnována pozornost bibliografickým citacím a formální stránce práce. V předposlední kapitole jsou uvedeny důležité informace k odevzdání v listinné i v elektronické podobě. + +Je třeba zdůraznit, že diplomová práce je unikátním individuálním dílem, které vzniká pod vedením zkušeného odborníka. Ať už je v této šabloně uvedeno cokoliv, závazné jsou pouze oficiální pokyny na stránkách fakulty. Pro konkrétní diplomovou práci je potřeba vždy zvažovat, co je z výše uvedeného textu relevantní a co nikoliv a řídit se především pokyny vedoucího, který rozumí dané problematice a je tak schopen poskytnout ty nejlepší rady, co lze k práci dostat. + +I přes velkou snahu nikdy není možné do šablony zahrnout všechny prvky, co budou při tvorbě práce potřeba, a zaručit, že po doplnění textu, obrázků, literatury apod. bude vše v~pořádku pro všechny možné diplomové práce. Bude-li někde delší text, než se předpokládalo, a zalomí-li se na dva řádky, bude-li v literatuře položka, se kterou nebyl otestován využitý styl, a v dalších případech může být výsledek neuspokojivý a může být potřeba do~šablony zasáhnout a chybu, která se projevuje třeba jen pro jednu práci ze sta, opravit. Výsledné PDF a následně i vytištěnou papírovou verzi je tedy vždy nutné pečlivě zkontrolovat a~nespoléhat se na to, že \uv{tohle přece generuje šablona, tak to musí být správně}. Najdete-li v šabloně nějaké chyby nebo budete-li mít návrhy na její vylepěšení, napište prosím na e-mail \texttt{sablona@fit.vutbr.cz} a pomozte nám s jejím vylepšováním. Veškeré připomínky a návrhy jsou vítány. + +S kontrolou výsledku může výrazně pomoci vedoucí práce. Nelze však předpokládat, že vedoucí poslední noc před odevzdáním bude sedět v práci připraven na kontrolu desítek stran textu. Proto je nutné mít vše připravené v předstihu a konzultovat průběžně. Kritický pohled vedoucího pak umožní dosažení kvalitního výsledku a aktivita, kterou uvidí, přispěje k pozitivnímu hodnocení práce z jeho strany. + +Na závěr bych jménem autorů této šablony popřál všem, kteří právě vytvářejí svoje diplomové práce nebo se k jejich tvorbě připravují, úspěšné dokončení a obhájení práce. + + +%=============================================================================== + +% Pro kompilaci po částech (viz projekt.tex) nutno odkomentovat +%\end{document} diff --git a/overleaf/projekt-20-literatura-bibliography.bib b/overleaf/projekt-20-literatura-bibliography.bib new file mode 100644 index 0000000..52f992f --- /dev/null +++ b/overleaf/projekt-20-literatura-bibliography.bib @@ -0,0 +1,248 @@ + @BOOK{Pravidla, + author = "Zdeněk Hlavsa and others", + title = "Pravidla českého pravopisu", + publisher = "Academia", + edition = "2", + year = "2009", + isbn = "80-200-1327-X", + } + + @BOOK{Knuth, + author = "Donald E. Knuth", + title = "The {\TeX}book", + publisher = "Addison-Wesley Publishing Company", + year = "1996", + isbn = "0-201-13447-0", + } + + @BOOK{Rybicka, + author = "Jiří Rybička", + title = "\LaTeX~pro začátečníky", + publisher = "Konvoj", + edition = "3", + year = "2003", + isbn = "80-7302-049-1", + } + + @BOOK{Olsak, + author = "Petr Olšák", + title = "{\TeX}book naruby", + publisher = "Konvoj", + year = "2001", + isbn = "80-7302-0007-6", + } + + @BOOK{Eikh, + author = "Victor Eikhout", + title = "{\TeX}by Topics, a {\TeX}nitian's Reference", + publisher = "Addison-Wesley UK", + year = "2001", + isbn = "0-201-56882-9", + } + + @website{cstugWeb, + author = "Petr Sojka and others", + title = "Československé sdružení uživatelů {\TeX}u", + howpublished = "online", + url = "http://www.cstug.cz", + cited = "2019-10-02" + } + + @webpage{fitWeb, + author = "Zdena Rábová and Petr Hanáček and Petr Peringer and Petr Přikryl and Bohuslav Křena", + title = "Užitečné rady pro psaní práce", + howpublished = "online", + publisher = "FIT VUT v~Brně", + year = "2008", + month = 11, + url = "https://www.fit.vut.cz/study/theses/theses-advice/", + cited = "2019-10-02" + } + + @webpage{citace, + author = "Zdena Rábová and Petr Hanáček and Petr Peringer and Petr Přikryl and Bohuslav Křena", + title = "Pravidla pro bibliografické citace", + howpublished = "online", + publisher = "FIT VUT v Brně", + year = "2019", + month = 3, + url = "https://www.fit.vut.cz/study/theses/citations/", + cited = "2019-10-02" + } + + @MISC{biblio, + author = "Olga Biernátová and Jan Skůpa", + title = "Bibliografické odkazy a citace dokumentů", + howpublished = "online", + url = "http://www.citace.com/download/CSN-ISO-690.pdf", + publisher = "Citace.com", + month = 9, + address = "Brno", + year = "2011", + cited = "2019-10-02" + } + + @webpage{formalniBP, + author = "Zdena Rábová and Petr Přikryl and Petr Peringer and Petr Lampa and Bohuslav Křena and jaroslav Dytrych and Petr Veigend", + title = "Pokyny k~bakalářským pracím a SZZ", + howpublished = "online", + year = "2019", + url = "https://www.fit.vut.cz/study/theses/bachelor-theses/", + cited = "2019-10-02" + } + + @webpage{formalniDP, + author = "Zdena Rábová and Petr Přikryl and Petr Peringer and Petr Lampa and Bohuslav Křena and jaroslav Dytrych and Petr Veigend", + title = "Pokyny k~diplomovým pracím a SZZ", + howpublished = "online", + year = "2019", + url = "https://www.fit.vut.cz/study/theses/master-theses/", + cited = "2019-10-02" + } + + @MISC{smernice, + key = "Szz", + author = "Petr Štěpánek", + title = "Směrnice rektora č. 72/2017 -- Úprava, odevzdávání a zveřejňování závěrečných prací", + howpublished = "online", + year = "2017", + url = "https://www.vutbr.cz/uredni-deska/vnitrni-predpisy-a-dokumenty/smernice-c-72-2017-uprava-odevzdavani-a-zverejnovani-zaverecnych-praci-d161410", + cited = "2019-10-02" + } + + @MISC{smerniceFIT, + author = "Pavel Zemčík", + title = "Směrnice děkana č. 7/2018 -- Úprava, odevzdávání a zveřejňování závěrečných prací na FIT VUT v Brně", + howpublished = "online", + year = "2018", + url = "https://www.fit.vut.cz/fit/info/smernice/sm2018-07.pdf", + cited = "2019-10-02" + } + + @website{prirucka, + key = "Cerna", + author = "Anna Černá and Jan Chromý and Hana Konečná and others", + title = "Internetová jazyková příručka -- Ústav pro jazyk český Akademie věd ČR, v. v. i.", + howpublished = "online", + publisher = "Centrum zpracování přirozeného jazyka FI MU", + year = "2019", + url = "http://prirucka.ujc.cas.cz/", + cited = "2019-10-02" + } + + @website{Herout, + author = "Adam Herout", + title = {herout.net -- Poznámky učitele, kouče, čtenáře.}, + howpublished = "online", + year = "2018", + url = "http://www.herout.net/", + cited = "2019-10-02" + } + + @webpage{chyby, + key = "Szoke", + author = "Igor Szöke", + title = "Textová část BP/DP -- Lessons learned", + howpublished = "online", + year = "2012", + url = "http://blog.igor.szoke.cz/2012/01/textova-cast-bpdp-lessons-learned-1.html", + cited = "2019-10-02" + } + + @webpage{rady, + key = "Szoke", + author = "Igor Szöke", + title = "Píšete diplomku? 15+1 rad, které vám pomohou.", + howpublished = "online", + year = "2011", + url = "http://blog.igor.szoke.cz/2011/12/pisete-diplomku-151-rad-ktere-vam.html", + cited = "2019-10-02" + } + + @webpage{Beran, + author = "Vítězslav Beran", + title = "Beran-BP DP Projekty", + howpublished = "online", + year = "2017", + url = "http://merlin.fit.vutbr.cz/wiki/index.php/Beran-BP_DP_Projekty", + cited = "2019-10-02" + } + + @MISC{BeranPDF, + author = "Vítězslav Beran", + title = "Jak psát technickou zprávu", + howpublished = "online", + year = "2013", + url = "http://www.fit.vutbr.cz/~beranv/podpora/Jak\%20psat\%20technickou\%20zpravu.pdf", + cited = "2019-10-00" + } + + @webpage{Cernocky, + key = "Cernocky", + author = "Jan Černocký", + title = "Černocký BP DP -- obecně", + howpublished = "online", + year = "2016", + url = "https://merlin.fit.vutbr.cz/wiki/index.php/Cernocky_BP_DP-obecne", + publisher = "Wiki FIT VUT v Brně", + cited = "2019-10-02" + } + + @webpage{CernockyEnglish, + key = "Cernocky", + author = "Jan Černocký", + title = "English SOS", + howpublished = "online", + year = "2016", + url = "https://merlin.fit.vutbr.cz/wiki/index.php/English_SOS", + cited = "2019-10-02" + } + + @MISC{Zemcik, + author = "Pavel Zemčík", + title = "Všeobecné pokyny pro studenty a vůbec", + howpublished = "online", + year = "2012", + url = "http://www.fit.vutbr.cz/~zemcik/Pokyny.pdf", + cited = "2019-10-02" + } + + @BOOK{Lebrun2011, + author = "Jean-Luc Lebrun", + title = "Scientific Writing 2.0: a reader and writer's guide", + publisher = "World Scientific Publishing", + year = "2011", + edition = "1", + isbn = "9814350605", + owner = "herout", + timestamp = "2015.01.20" + } + + @MASTERSTHESIS{Pysny, + author = {Radek Py{\v{s}}n{\'{y}}}, + type = {Bakal{\'{a}}{\v{r}}sk{\'{a}} pr{\'{a}}ce}, + title = {BiBTeX styl pro {\v{C}}SN ISO 690 a {\v{C}}SN ISO 690-2}, + school = {Vysok{\'{e}} u{\v{c}}en{\'{i}} technick{\'{e}} v Brn{\v{e}}, Fakulta informa{\v{c}}n{\'{i}}ch technologi{\'{i}}}, + year = {2009}, + location = {Brno, CZ}, + language = {czech}, + url = {https://www.fit.vut.cz/study/thesis/7848/} + } + + + + @MISC{ISO3274, + author = "ISO", + title = "Geometrical Product Specifications (GPS) - Surface texture: Profile method - Nominal characteristics of contact (stylus) instruments", + year = "1996", + url = {https://standards.iteh.ai/catalog/standards/sist/70f20fe5-318d-41eb-ac49-33a6173bc60f/iso-3274-1996} + } + + @BOOK{Dagnall, + author = "Harry Dagnal", + title = "Exploring Surface Texture", + year = "1996", + edition = "1", + publisher = "Taylor Hobson Publishing", + isbn = "9780901920072" + } \ No newline at end of file diff --git a/overleaf/projekt-30-prilohy-appendices-en.tex b/overleaf/projekt-30-prilohy-appendices-en.tex new file mode 100644 index 0000000..2953076 --- /dev/null +++ b/overleaf/projekt-30-prilohy-appendices-en.tex @@ -0,0 +1,839 @@ +% This file should be replaced with your file with an appendices (headings below are examples only) + +% For compilation piecewise (see projekt.tex), it is necessary to uncomment it and change +%\documentclass[../projekt.tex]{subfiles} +%\begin{document} + +% Placing of table of contents of the memory media here should be consulted with a supervisor +%\chapter{Contents of the included storage media} + +%\chapter{Manual} + +%\chapter{Configuration file} + +%\chapter{Scheme of RelaxNG configuration file} + +%\chapter{Poster} + +\chapter{How to use this template} +\label{jak} + +This chapter describes individual parts of the template, followed by a brief instructions on how to use it. If you have any questions, comments etc, feel free to email them to \texttt{sablona@fit.vutbr.cz}. + +\section*{Template parts description} + +Once you extract the template, you will find the following files and directories: +\begin{DESCRIPTION} + \item [bib-styles] Literature styles (see below). + \item [obrazky-figures] Directory for your images. Currently contains \texttt{placeholder.pdf} (a.k.a TODO image -- see below) and image keep-calm.png to demonstrate inserting raster images (you don't submit these images with your thesis). It is advised to use shorter directory name, so that it is only in your chosen language. + \item [template-fig] Template images (BUT logo). + \item [fitthesis.cls] Template (design definition). + \item [Makefile] Makefile used to compile the project, count standard pages etc. (see below). + \item [projekt-01-kapitoly-chapters-en.tex] File for Your text (replace it's contents). + \item [projekt-20-literatura-bibliography.bib] Reference list (see below). + \item [projekt-30-prilohy-appendices-en.tex] File for your appendices (replace it's contents). + \item [projekt.tex] Main project file -- definitions of formal parts. +\end{DESCRIPTION} + +The style of literature in the template is from Ing. Radek Pyšný \cite{Pysny}, whose work was improved by prof. Adam Herout, dr. Jaroslav Dytrych and Mr. Karel Hanák to comply with the norm and support all frequently used types of citations. Its documentation can be found in the appendix + +Aside from compilation to PDF, the Makefile also offers additional functions: +\begin{itemize} + \item rename files (see below), + \item count standard pages, + \item run a wave that adds unbreakable spaces, + \item compress (zip) the result, ready to be sent to your supervisor and checked (make sure that all the files you've added are included, if not, add them manually). +\end{itemize} + +Keep in mind that the wave is not perfect. You always need to check whether or not there is something inappropriate at the end of a line manually -- see Online language handbook\footnote{Internetová jazyková příručka \url{http://prirucka.ujc.cas.cz/?id=880}}. + +Similar rules apply also in English - see eg. article Run Ragged\footnote{Run Ragged\url{https://24ways.org/2013/run-ragged/}}, according to which there should be no prepositions, dash or short words (2--3 letters) at the end of the lines, the two lines following each other should not end with a comma and line break should not be also in the phrases from 2-3 words. + +\paragraph {Pay attention to page numbering!} If the table of contents is 2 pages long and the second page contains only \uv{Enclosures} and \uv{List of enclosures} (but there is no enclosure), the page numbering is changed by 1 (table of contents and contents \uv{mismatch}). The same thing happens if the second or third page contains only \uv{References} and there's a chance that this can occur in other situations too. There are multiple solutions to this (from editing the table of contents, setting the page counter all the way to more sophisticated methods). \textbf{Check the page numbering before you submit your thesis!} + +\section*{Recommendations for working with the template} + +\begin{enumerate} + \item \textbf{Make sure you have the latest version of template.} If you have a template from last year, there should be a newer version (updated information, fixed errors etc.) available at the faculty or study advisor web pages. + \item \textbf{Choose a language}, that you want to use for your technical report (czech, slovak or english) and consult your supervisor about your choice (unless it was agreed upon in advance). If your language of choice is not czech, set the respective template parameter in file projekt.tex (e.g.: \verb|document|\verb|class[english]{fitthesis}| and translate the declaration and acknowledgement to english or slovak). + \item \textbf{Rename the files.} When you extract the files, there should be a file named projekt.tex. If you compile it, it will create a PDF with technical report named projekt.pdf. If multiple students send their supervisor projekt.pdf to have it checked, they have to rename them. For that reason, it is advised to rename the file so that it contains your login and (if needed, abbreviated) work topic. Avoid using spaces, diacritic and special symbols. An appropriate name for your file can look like this: \uv{xlogin00-Cleaning-and-extraction-of-text.tex}. You can use the included Makefile to rename it: +\begin{verbatim} +make rename NAME=xlogin00-Cleaning-and-extraction-of-text +\end{verbatim} + \item Fill in the required information in file, that was originally named projekt.tex, that means type, year (of submission), thesis title, author's name, department (according to specification), supervisor's titles and name, abstract, keywords and other formal requirements. + \item Replace the contents of thesis chapters, references and enclosures files with the contents of your technical report. Individual enclosures or thesis chapters can be saved to separate files -- if you choose this approach, it is advised to comply with the file naming convention, and the number will be followed by the chapter title. + \item If you don't need enclosures, comment the respective part in projekt.tex and erase everything from the corresponding file or delete it. Don't try to come up with an aimless enclosures just to have something in that file. An appropriate enclosure can be the contents of included memory medium. + \item Delete the chapter and attachment files for a language you haven't used (with or without \texttt{-en}). + \item Assignment that you download in PDF from BUT IS (link \uv{Thesis assignment}) save to file \texttt{zadani.pdf} and enable its insertion into work by appropriate template parameter (\verb|document|\verb|class[zadani]{fitthesis}|) in \texttt{projekt.tex}. + \item If you don't want to print references in color (i cannot recommend this without consulting your supervisor), you'll need to create a second PDF for printing and set the template printing parameter:\\ (\verb|document|\verb|class[english,zadani,print]{fitthesis}|). Colored logo must not be printed in black and white. + \item The binder templace where the thesis will be typeset can be generated in faculty IS at specification. Can be enabled for dissertation using the \tt cover \rm parameter in template. + \item Don't forget that source files and (both versions) PDF has to be on a CD or other medium included in the technical report. +\end{enumerate} + +\subsection*{Instructions for double-sided printing} +\begin{itemize} +\item \textbf{It is advised to consult your supervisor about double-sided printing.} +\item If you used double-sided printing for your thesis and it's thickness is smaller than the thickness of the binder, it doesn't look too good. +\item Enabled using the following template parameter:\\ \verb|\document|\verb|class[twoside]{fitthesis}| +\item After printing a double-sided sheet, make sure that the canon of page construction is in the same position on both pages. Inferior printers with duplex printing unit usually cause a shift by 1--3 mm. This can be solved with some printers. Print the odd pages first, put them back into the same tray and print the even pages. +\item Leave a blank page after title page, table of contents, references, list of tables, list of appendices and other lists to make sure that the following part starts on an odd page (\texttt{\textbackslash cleardoublepage}). +\item Check the final result thoroughly. +\end{itemize} + +\subsection*{Paragraph style} + +Paragraphs have justified alignment and there are multiple methods for formatting them. In Czech paper literature, a paragraph indentation method is common, where each paragraph of the text have the first line of a paragraph indented by about one to two quads, that is, about two widths of the capital letter M of the base text (always about the same preselected value). In this case, the last line of the previous paragraph and the first line of the following paragraph are not separated by a vertical space. The interleaving between these lines is the same as the interleaving inside the paragraph \cite{fitWeb}. + +Another method is indenting paragraphs, which is common for electronic typesetting and for English texts. In this method, the first line of a paragraph is not indented and a vertical space of approximately half of a line is inserted between the paragraphs. Both methods can be used in the thesis, however, the latter method is often more suitable. Methods should not be combined. + +One of the above methods is set as the default in the template, the other can be selected by the template parameter \uv{\tt odsaz\rm }. + + +\subsection*{Useful tools} +\label{nastroje} + +The following list is not a list of all useful tools. If you have experience with a certain tool, feel free to use it. However, if you don't know which tool to choose, consider the ones listed below: + +\begin{description} + \item[\href{http://miktex.org/download}{MikTeX}] \LaTeX{} for Windows -- a distribution with simple installation and great automated package downloading. MikTeX even has it's own editor, but I highly recommend TeXstudio. + \item[\href{http://texstudio.sourceforge.net/}{TeXstudio}] Portable opensource GUI for \LaTeX{}. Ctrl+click switches between source text and PDF. Integrated spell checker\footnote{Spell checker for czech version can be installed from \url{https://extensions.openoffice.org/de/project/czech-dictionary-pack-ceske-slovniky-cs-cz}}, syntax highlighter etc. To use this tool, you need to first install MikTeX or another \LaTeX{} distribution. + \item[\href{http://www.winedt.com/}{WinEdt}] A good combination for Windows is WinEdt + MiKTeX. WinEdt is a GUI for Windows, and if you want to use it, you need to first install \href{http://miktex.org/download}{MikTeX} or \href{http://www.tug.org/texlive/}{TeX Live}. + \item[\href{http://kile.sourceforge.net/}{Kile}] Editor for KDE (Linux) desktop environment. Real-time preview. To use this tool, you need to have \href{http://www.tug.org/texlive/}{TeX Live} and Okular installed. + \item[\href{http://jabref.sourceforge.net/download.php}{JabRef}] Neat and simple Java program for bibliography (references) file management. No need to learn anything -- provides a simple window and a form for entry editing. + \item[\href{https://inkscape.org/en/download/}{InkScape}] Portable opensource vector graphic (SVG and PDF) editor. Excellent tool to use to create images for technical text. Difficult to master, but the results are worth it. + \item[\href{https://git-scm.com/}{GIT}] Great tool for teamwork when it comes to projects, but can be incredibly useful even to a single author. Simple version control system, backup options and transfer between multiple computers. + \item[\href{http://www.overleaf.com/}{Overleaf}] Online \LaTeX{} tool. A real-time compilation of source text that allows for simple collaboration (supervisor can continuously keep an eye on the progress made), move to a place in source file just by clicking in the PDF preview, spell checker etc. There are some limitations to what you can do if you want to use it for free (some people are comfortable with it for dissertation, others can run into it while they write a~bachelor's thesis) and it is rather slow for long texts. FIT BUT has for students and employees of a license, which can be activated on \url{https://www.overleaf.com/edu/but}. +\end{description} + +Note: Overleaf does not use template Makefile -- to get compilation to work, you need to go to the menu and select \tt projekt.tex \rm as s Main document. + +\chapter{Writing english texts} +\label{anglicky} +This chapter is taken from web pages of Jan Černocký \cite{CernockyEnglish}. + +A lot of people write their technical reports in english (which is good!), but they make a~lot of unnecesary mistakes (which is bad!). I'm not an english export myself, but I've been using this language for a while now to write, read and even communicate -- this chapter contains a handful of important things. If you want to be certain that your thesis or article is 100\,\% correct, your best bet is to hire a native speaker (preferably someone who is technically capable and understands what you write about \ldots). + + +\section*{In general} + +\begin{itemize} + \item{Before you jump into it head first, I suggest you read a handful of technical articles written in english and try to remember or preferably understand how you should approach writing one yourself.} + \item{Always use a spell checking tools -- built in tools in Word, or in OpenOffice. If you work on Linux, I suggest you use ISPELL. Some spell checking (I think it's the one in PSPad) are not very good and ignore a lot of mistakes.} + \item{Use grammer checking tools. I'm not entirely sure if there is one available for Linux, but the one in Word is fairly decent and if it underlines anything with green color, it's probably wrong. You can even copy and paste Latex source code here, fix any and all grammar errors and save it as a clean text again. If you use vim, there's a~built in grammar checking tool too, and it's capable of detecting typos and errors in basic grammar. Write this in the first line of your thesis tex file: + \begin{verbatim} + % vim:spelllang=en_us:spell + \end{verbatim} + (alternatively \texttt{en\_gb} for OED english) \textit{Editor's note:} There is a very good online tool Grammarly\footnote{\url{https://www.grammarly.com/}}, with free basic version. + } + \item{Online dictionaries are good, but don't rely on them in every situation. Usually you get multiple choices and not all of them are correct for the given context.} + \item{\begin{samepage}You can probably figure out what the correct option is by looking each option up and seeing the context in which they're used, example given: ``advantage/privilege/facility of approach''. Online dictionaries give you a handful of results. Look them up one by one using google search: + \begin{verbatim} + "advantage of this approach" 1100000 hits + "privilege of this approach" 6 hits + "facility of this approach" 16 hits + \end{verbatim} + I'm not saying it's 100\,\% correct, but at least you have something to go on. This can be used to find the correct connectives (e.g. ``among two cases'' or ``between two cases''?)\end{samepage}} +\end{itemize} + +\section*{SVOMPT and concord} + +The structure of an english sentence is SVOPMT: SUBJECT VERB OBJECT MANNER PLACE TIME and there's no other way around it. It is not a flexible structure. There are possibly exceptions in things like a theater play, where something needs to be emphasized. Subject must be present in every single single sentence, people tend to forget as some languages have a sentence structure where the subject can be implicit and not mentioned. SVOMPT applies to dependent clauses too! +\begin{verbatim} + BAD: We have shown that is faster than the other function. + GOOD: We have shown that it is faster than the other function. +\end{verbatim} + +\noindent Concord or grammatical agreement between two words in a sentence -- it sounds silly, but people make countless mistakes here. + +\begin{verbatim} + he has + the users have + people were +\end{verbatim} + +\section*{Articles} + +Articles in english are a nightmare and almost all of us fail to use them correctly. The basic rule is, that if there's a particular noun, it's preceeded by ``the''. Definite articles must be in following phrases: +\begin{verbatim} + the first, the second, ... + the last + the most (superlatives and adverbs) ... + the whole + the following + the figure, the table. + the left, the right - on the left pannel, from the left to the right ... +\end{verbatim} + +\noindent On the contrary, there can't be an article when you're referring to a specific figure, chapter, etc. +\begin{verbatim} + in Figure 3.2 + in Chapter 7 + in Table 6.4 +\end{verbatim} + +\begin{samepage} +\noindent The use of ``a'' and ``an'' is based on the pronounciation, rather than how the word is written: +\begin{verbatim} + an HMM + an XML + a universal model + a user +\end{verbatim} +\end{samepage} + +\section*{Verbs} + +Passive voice can be tricky -- regular verbs are usually not a problem, irregular verbs however are a common source of errors, typically +\begin{verbatim} + packet was sent (rather than send) + approach was chosen (rather than choosed) +\end{verbatim} +\noindent \ldots most of the time, the spell checker will correct it, but it's not guaranteed. + +Tenses are a mess at times. If something just is in general, use present tense. If you did something, use past tense. If you got results that already exist and you just discuss them, use present tense. Try to avoid complicated tenses such as present perfect or worse past perfect if you're not 100\,\% sure. +\begin{verbatim} + JFA is a technique that works for everyone in speaker recognition. + We implemented it according to Kenny's recipe in \cite{Kenny}. + 12000 segments from NIST SRE 2006 were processed. When compared + with a GMM baseline, the results are completely bad. +\end{verbatim} + +\section*{Sentence length and structure} + +\begin{itemize} + \item{Try to write shorter sentences. If you sentence is 5 lines long, it's probably a pain to read, if it can even be done.} + \item{Comma is a powerful tool and you should use it for your sentence structure. Use a~comma to seperate the initial dependent clause from the main independent clause. Sometimes it is appropriate to put a comma just before ``and'' (unlike other languages)!} +\end{itemize} +\begin{verbatim} + In this chapter, we will investigate into ... + The first technique did not work, the second did not work as well, + and the third one also did not work. +\end{verbatim} + +\section*{The specifics of a technical text} + +When writing a technical text, don't use common phrases such as +\begin{verbatim} + he's + gonna + Petr's working on ... +\end{verbatim} +\noindent and others. The only tolerated thing is ``doesn't'', but you can never go wrong with ``does not''. + +\begin{samepage} +\noindent Technical texts utilize passive voice a lot more than active voice: +\begin{verbatim} + BAD: In this chapter, I describe used programming languages. + GOOD: In this chapter, used programming languages are described. +\end{verbatim} +\end{samepage} + +If you want to use active voice, it's more common to use ``we'', even though you work alone. ``I'', ``my'', etc. are only used when you need to emphasize that you are the person of utmost importance, for example in the conclusion or when discussing ``original claims'' in disertation. + + +\paragraph{Common erros in words} + +\begin{itemize} + \item{Pay attention to his/hers, it's not ``it's'' but ``its''} + \item{Image is not picture, it's figure.} + \item{The connective is ``than'', not ``then'' -- bigger than this, smaller than this \ldots very common error! ``Then'' is used in the context of time.} +\end{itemize} + + +\chapter{Checklist} +\label{checklist} +This checklist was taken from a template for academic work, that is available on Adam Herout's blog \cite{Herout}, based on the ideas of Igor Szöke\footnote{\url{http://blog.igor.szoke.cz/2017/04/predstartovni-priprava-letu-neni.html}}, with their permission. + +A big part of the safety of air transport are checklists. They have checklists for basically anything and everything, even the most cut-and-dry procedures. If a pilot can get over the tedious process of marking off every single checkbox of a procedure, you can as well. Make a checklist of your own before you submit your thesis. \bf Yes, really: \rm print it, grab a pencil and check every single item on the list. It will make your life easier –- avoid unnecessary errors that can be fixed within a couple minutes –- as well as others', at very least your supervisor and reviewer of your thesis. + +\subsection*{Structure} +\begin{checklist} + \item You can tell that the assignment was completed just by looking at the chapter titles as well as their structures. + \item There is no chapter with less than four pages (except for introduction and conclusion). And if so, I discussed this with my supervisor and they gave me a green light. +\end{checklist} + +\subsection*{Figures and charts} +\begin{checklist} + \item Every single image and table was checked and their position is close to the text that references them. In other words, they’re easy to find. + \item Every single image and table has a good enough caption, to ensure that the figure makes sense on it’s own, without the necessity to read the text. (There’s no harm in a long caption.) + \item If an image is taken from somewhere, it is mentioned in the caption: “Taken from [X].” + \item Texts in all images have a font size similar to the surrounding text (neither signifficantly larger, nor signifficantly smaller). + \item Charts and schemes are vector graphics (eg. in PDF). + \item Screenshots don‘t use lossy compression (they‘re in PNG). + \item All images are referenced in the text. + \item Axes in charts have their captions (name of the axis, units of measurement, values) and a grind if need be. +\end{checklist} + +\subsection*{Equations} +\begin{checklist} + \item Identifiers and their indexes in equations are single letters (except for rather uncommon cases like $t_{max}$). + \item Equations are numbered. + \item All the variables and functions that haven‘t been explained yet are explained below (or rarely above) the equation. +\end{checklist} + +\subsection*{Citations} +\begin{checklist} + \item \bf All used sources are cited. \rm + \item URL adresses referencing services, projects, sources, github, etc. are referenced using \verb|\footnote{\url{…}}|. + \item URL adresses in citations are only present, if necessary – article is cited like an article (author, title, where and when was it published), not using URL. + \item Citations have author, title, publisher (conference title), year of publishing. If a~citation does not have either of these, there is a good explanation for this special case and my supervisor agreed. + \item If there is anything taken over from some other work in the program source code, it is properly cited therein in conformance with the license. + \item If an essential part of the source code of the program is taken over, this is mentioned in the text of the thesis and the source is cited. +\end{checklist} + +\subsection*{Typography} +\begin{checklist} + \item No line extends past the right margin. + \item There is no single-letter preposition at the end of a line (fixed using unbreakable space \verb|~|). + \item Number of image, table, equation, citation is never a first item of a new line (fixed using unbreakable space \verb|~|). + \item There is no space before a numeric reference to a footnote (like this\footnote{footnote example}, not like this \footnote{another footnote example}). +\end{checklist} + +\subsection*{Language} +\begin{checklist} + \item I used spellchecker and there were no typos in the text. + \item I had someone else read my thesis (at least one person), that knows czech / slovak / english well. + \item Someone who knows english well checked the abstract in a czech or slovak written abstract thesis. + \item No part of the text is written in second person (you). + \item If first person is used (i, we), a subjective matter is being described (i decided, i~designed, i focused on, i found out, etc.). + \item There are no colloquialisms in the text. + \item There are no {\it default} words in the text. +\end{checklist} + +\subsection*{Result is on a data medium, i.e. software} +\begin{checklist} + \item I have a non-rewritable data medium ready. + \begin{itemize} + \item CD-R, + \item DVD-R, + \item DVD+R in ISO9660 format (with RockRidge and/or Jolliet extension) or UDF, + \item SD (Secure Digital) card in FAT32 or exFAT format, the card is set to write-protected mode + \end{itemize} + \item If the result is online (service, application, …), URL is visible in introduction and conclusion. + \item The medium contains the following mandatory items: + \begin{itemize} + \item source codes (e.g. Matlab, C/C++, Python, \ldots) + \item libraries necessary for compilation, + \item compiled solution, + \item PDF containing a technical report, + \item text source code (\LaTeX{}), + \end{itemize} + and the following optional items after consulting your supervisor: + \begin{itemize} + \item relevant (e.g. testing) data, + \item demo video, + \item poster in PDF + \item \ldots + \end{itemize} + \item Source codes are refactorized, commented and labelled with an authorship header so that others can tell what they actually are. + \item Any and all snippets of code taken from another sources are properly cited -- differentiated using a opening and in case of multiple lines of code a closing comment. Comments contain everything that the license on web (always try to find out what the license is -- for example, Stack Overflow\footnote{\url{https://stackoverflow.blog/2009/06/25/attribution-required/}} has a very strict citation policy). +\end{checklist} + +\subsection*{Submission} +\begin{checklist} + \item Do I want to delay (by at most 3 years) the publication ? If so, I will submit an application (in IS) at least a month prior to the submission of the academic work, and I'll include attitude of the company that the intellectual property belongs to and needs to be protected. + \item I have at least minimum number of standard pages (can be calculated using Makefile and by adding number of pages that images translate to). If I'm just under the minimum, I consulted my supervisor about it. + \item If I want a two-sided print, I consulted my supervisor about it and I've used correct template settings for two-sided printing. Chapters begin on odd pages. + \item Technical report is bound in a bookbindery (at least one print, both prints if I'm delaying the publishing). + \item Title page is followed by the specification (in other words, downloaded from IS and inserted into the template) + \item Abstract and keywords are uploaded in IS. + \begin{itemize} + \item There are no \verb|~| characters for non-breaking spaces in the abstract and keywords in IS. + \end{itemize} + \item PDF of thesis (with clickable links) is in IS. + \item Both prints are signed. + \item One (both if I'm delaying the publishing) of the prints contains a data medium with my login written on it using a CD marker (CD marker can be borrowed in library, at Student affairs or when I'm submitting the work). +\end{checklist} + +\chapter{\LaTeX{} for beginners} +\label{latex} + +This chapter contains commonly used \LaTeX{} packages and commands, that you might need when you're developing a thesis. + +\subsection*{Useful packages} + +Students usually encounter the same issues. Some of them can be solved using the following \LaTeX{} packages: + +\begin{itemize} + \item \verb|amsmath| -- additional equation typesetting options, + \item \verb|float, afterpage, placeins| -- image placement, + \item \verb|fancyvrb, alltt| -- change the properties of Verbatim environment, + \item \verb|makecell| -- additional table options, + \item \verb|pdflscape, rotating| -- rotate a page by 90 degress (for image or table), + \item \verb|hyphenat| -- change how words break, + \item \verb|picture, epic, eepic| -- direct image drawing. +\end{itemize} + +Some packages are used in this very template (in the lower section of fitthesis.cls file). It is also advised to read the documentation for individual packages. + +A table column aligned to left with a fixed width is defined as "L" in the template (used as "p"). + +To reference a place within text, use command \verb|\ref{label}|. Depending on the placement of this label, it will be a number of chapter, subchapter, image, table or a similar numbered element. If you want to reference a specific page, use command \verb|\pageref{label}|. To cite a literature reference, use command \verb|\cite{identifier}|. To reference an equation, you can use command \verb|\eqref{label}|. + +Symbol -- (dash) is used generated using two minus signs (like this: \verb|--|) in \LaTeX. + +\subsection*{Commonly used \LaTeX{} commands} +\label{sec:Fragments} + +I highly recommend you check the source text of this chapter and see how the following examples are created. The source text even contains helpful comments. + +% A left-aligned, fixed-width column is defined in the template as "L" (used as p). + +Example table: +\begin{table}[H] + \vskip6pt + \caption{Assessment table} + \vskip6pt + \centering + \begin{tabular}{llr} + \toprule + \multicolumn{2}{c}{Name} \\ + \cmidrule(r){1-2} + Name & Surname & Assessment \\ + \midrule + Jan & Novák & $7.5$ \\ + Petr & Novák & $2$ \\ + \bottomrule + \end{tabular} + \label{tab:ExampleTable} +\end{table} + +% Ohraničení lze upravit dle potřeby: +% http://latex-community.org/forum/viewtopic.php?f=45&t=24323 +% http://tex.stackexchange.com/questions/58163/problem-with-multirow-and-table-cell-borders +% http://tex.stackexchange.com/questions/79369/formatting-table-border-and-text-alignment-in-latex-table + +\noindent Example equation: +\begin{equation} +\cos^3 \theta =\frac{1}{4}\cos\theta+\frac{3}{4}\cos 3\theta +\label{rovnice2} +\end{equation} +and two horizontally aligned equations: % znak & řídí zarovnání +\begin{align} \label{eq:soustava} + 3x &= 6y + 12 \\ + x &= 2y + 4 +\end{align} + +If you need to reference an equation from the text, you can use command \verb|\eqref|. For example, to reference the equations above \eqref{rovnice2}. If you want to align the equation number vertically, you can use command \texttt{split}: + +\begin{equation} \label{eq:soustavaSrovnana} +\begin{split} + 3x &= 6y + 12 \\ + x &= 2y + 4 +\end{split} +\end{equation} + +Mathematical symbols ($\alpha$) and expressions can be placed even in text $\cos\pi=-1$ and can also be in a footnote% +\footnote{Formula in a footnote: $\cos\pi=-1$}. + +Image~\ref{sirokyObrazek} displays a wide image comprised of multiple smaller images. Standard raster image is inserted in the same way as image \ref{keepCalm}. + +% Využití \begin{figure*} způsobí, že obrázek zabere celou šířku stránky. Takový obrázek dříve mohl být pouze na začátku stránky, případně na konci s využitím balíčku dblfloatfix (případné [h] se ignorovalo a [H] obrázek odstraní). Nové verze LaTeXu už umí i [h]. +\begin{figure*}[h]\centering + \centering + \includegraphics[width=\linewidth,height=1.7in]{obrazky-figures/placeholder.pdf}\\[1pt] + \includegraphics[width=0.24\linewidth]{obrazky-figures/placeholder.pdf}\hfill + \includegraphics[width=0.24\linewidth]{obrazky-figures/placeholder.pdf}\hfill + \includegraphics[width=0.24\linewidth]{obrazky-figures/placeholder.pdf}\hfill + \includegraphics[width=0.24\linewidth]{obrazky-figures/placeholder.pdf} + \caption{\textbf{Wide image.} Image can be comprised of multiple smaller images. If you want to address the partial images from text, use packagae \texttt{subcaption}.} + \label{sirokyObrazek} +\end{figure*} + +% Uncomment this to switch to landscape oriented A3 paper +% \eject \pdfpagewidth=420mm + +\begin{figure}[hbt] + \centering + \includegraphics[width=0.3\textwidth]{obrazky-figures/keep-calm.png} + \caption{Good text is a bad text, that has been changed countless times. You have to start somewhere.} + \label{keepCalm} +\end{figure} + +Sometimes it is necessary to attach a diagram that does not fit on an A4 page. Then it is possible to insert one A3 page and fold it into the thesis (so-called Engineering fold, similar to Z-fold, where two folds are created -- face down and face up). Switching is performed as follows: \texttt{\textbackslash{}eject \textbackslash{}pdfpagewidth=420mm} (210mm to switch it back). + +Other frequently used commands can be found above in the text, because a single practical example of correct use is better than ten pages of examples. + +% Uncomment this to switch back to A4 +% \eject \pdfpagewidth=210mm + + +% newline command +\newcommand{\odradkovani}{\\[0.3em]} + +\chapter{Examples of bibliographic citations} +\label{priloha-priklady-citaci} +The czplain style is based on the style created by mr. Pyšný \cite{Pysny}. This appendix contains a set of supported type of citations with specific examples of bibliograhpic citations. + +The next pages of the appendix contain examples of bibliographic citations of the following pubplications and their parts: +\begin{itemize} + \item Article in a periodical literature (magazine) (str. \pageref{pr-casopis-clanek}), + \item monographic publication (str. \pageref{pr-monografie}), + \item conference proceedings (str. \pageref{pr-sbornik}), + \item conference proceedings entry or book chapter (str. \pageref{pr-kapitola}), + \item manual, documentation, technical report and unpublished materials (str. \pageref{pr-manual}), + \item academic work (str. \pageref{pr-thesis}), + \item web page (str. \pageref{pr-webpage}), + \item and web site (str. \pageref{pr-website}). +\end{itemize} + +\noindent Items are color-coded depending on whether or not they are required or optional: +\begin{itemize} + \item required element according to the standard + \item \textcolor{blue}{optional element according to the standard} + \item \textcolor{magenta}{required element for online information sources according to the standard} + \item \textcolor{red}{element that is not specified in the standard, but is available and optional within the template's bibliographic style} +\end{itemize} +Required items are only stated if they exist. + +\newpage +The bibliography file contains records in the following form: +\begin{verbatim} +@Article{Doe:2020, + author = "Doe, John", + title = "How to cite", + subtitle = "Article citation", + journal = "Writing theses and dissertations", + journalsubtitle = "Formal aspects", + howpublished = "online", + address = "Brno", + publisher = "Brno University of Technology, + Faculty of information technology", + contributory = "Translated by Jan NOVÁK", + edition = "1", + version = "version 1.0", + month = 2, + year = "2020", + revised = "revised 12. 2. 2020", + volume = "4", + number = "24", + pages = "8--21", + cited = "2020-02-12", + doi = "10.1000/BC1.0", + issn = "1234-5678", + note = "This a made up citation", + url = "https://merlin.fit.vutbr.cz" +} +\end{verbatim} + + +%------------------------------------------------------------------------------- +\newpage +\section*{Article in a periodical literature -- @Article} +\label{pr-casopis-clanek} +\noindent \textbf{Record items} + +\medskip + +\begin{tabularx}{0.95\linewidth}{>{\raggedright\arraybackslash}X X >{\raggedright\arraybackslash}X} + Element & BibTeX item & Example\\\hline + Author & author & Doe, John\\ + Article title & title & How to cite\\ + \textcolor{blue}{Article subtitle} & \textcolor{blue}{subtitle} & \textcolor{blue}{Article citation}\\ + Periodical literature title & journal & Writing theses and dissertations\\ + \textcolor{blue}{Periodical literature subtitle} & \textcolor{blue}{journalsubtitle} & \textcolor{blue}{Formal aspects}\\ + \textcolor{magenta}{Type of medium} & \textcolor{magenta}{howpublished} & \textcolor{magenta}{online}\\ + Edition & edition & 1\\ + Version & version & version 1.0\\ + \textcolor{blue}{Secondary author(s)} & \textcolor{blue}{contributory} & \textcolor{blue}{Translated by Jan NOVÁK}\\ + Place of publication & address & Brno\\ + Publisher & publisher & Brno University of Technology, Faculty of information technology\\ + Month & month & 2\\ + Year & year & 2020\\ + Volume & volume & 4\\ + Number & number & 24\\ + Pages & pages & 8-21\\ + Revision & revised & revised 12. 2. 2020\\ + \textcolor{magenta}{Date of citation} & \textcolor{magenta}{cited} & \textcolor{magenta}{2020-02-12}\\ + Series title & series & Guidelines for writing theses and dissertations\\ + Number in series & editionnumber & 42\\ + \textcolor{magenta}{Digital object identifier} & \textcolor{magenta}{doi} & \textcolor{magenta}{10.1000/BC1.0}\\ + Standard number & issn & 1234-5678\\ + \textcolor{red}{Notes} & \textcolor{red}{note} & \textcolor{red}{This is a made up citation}\\ + \textcolor{magenta}{Availability} & \textcolor{magenta}{url} & \textcolor{magenta}{https://merlin.fit.vutbr.cz} +\end{tabularx} + +\bigskip + +\noindent \textbf{Bibliographic citation} + +\medskip + +\noindent \textsc{Doe}, J. How to cite: Article citation. \textit{Writing theses and dissertations: Formal aspects} [online]. 1st ed., version 1.0. Translated by Jan NOVÁK. Brno: Brno University of Technology, Faculty of information technology. February 2020, vol. 4, num. 24, p. 8–21, revised 12. 2. 2020, [cit. 2020-02-12]. Guidelines for writing theses and dissertations, no. 42. DOI: 10.1000/BC1.0. ISSN 1234-5678. This is a made up citation. Available at: \url{https://merlin.fit.vutbr.cz} + +%------------------------------------------------------------------------------- +\newpage +\section*{Monographic publication -- @Book, @Booklet (brochure)} +\label{pr-monografie} +\noindent \textbf{Record items} + +\medskip + +\begin{tabularx}{0.95\linewidth}{>{\raggedright\arraybackslash}X X >{\raggedright\arraybackslash}X} + Element & BibTeX item & Example\\\hline + Author & author & John von Doe\\ + Title & title & How to cite\\ + \textcolor{blue}{Subtitle} & \textcolor{blue}{subtitle} & \textcolor{blue}{Monographic publication citation}\\ + \textcolor{magenta}{Type of medium} & \textcolor{magenta}{howpublished} & \textcolor{magenta}{online}\\ + Edition & edition & 1\\ + \textcolor{blue}{Secondary author(s)} & \textcolor{blue}{contributory} & \textcolor{blue}{Translated by Jan NOVÁK}\\ + Place of publication & address & Brno\\ + Publisher & publisher & Brno University of Technology, Faculty of information technology\\ + Month & month & 2\\ + Year & year & 2020\\ + Revision & revision & revised 12. 2. 2020\\ + \textcolor{magenta}{Date of citation} & \textcolor{magenta}{cited} & \textcolor{magenta}{2020-02-12}\\ + \textcolor{red}{Pages} & \textcolor{red}{pages} & \textcolor{red}{220}\\ + Series title & series & Guidelines for writing theses and dissertations\\ + Number in series & editionnumber & 2\\ + Standard number & isbn & 01-234-5678-9\\ + \textcolor{red}{Notes} & \textcolor{red}{note} & \textcolor{red}{This is a made up citation}\\ + \textcolor{magenta}{Availability} & \textcolor{magenta}{url} & \textcolor{magenta}{https://merlin.fit.vutbr.cz}\\ +\end{tabularx} + +\bigskip + +\noindent \textbf{Bibliographic citation} + +\medskip + +\noindent \textsc{von Doe}, J. \textit{How to cite: Monographic publication citation} [online]. 1st ed. Translated by Jan NOVÁK. +Brno: Brno University of Technology, Faculty of information technology, February 2020, revised 12. 2. 2020 [cit. 2020-02-12]. 220 p. Guidelines for writing theses an dissertations, no. 2. ISBN 01-234-5678-9. This is a made up citation. Available at: \url{https://merlin.fit.vutbr.cz} +%------------------------------------------------------------------------------- +\newpage +\section*{Conference proceedings -- @Proceedings} +\label{pr-sbornik} +\noindent \textbf{Record items} + +\medskip + +\begin{tabularx}{0.95\linewidth}{X X >{\raggedright\arraybackslash}X} + Element & BibTeX item & Example\\\hline + \textcolor{red}{Author*} & \textcolor{red}{author} & \textcolor{red}{Čechmánek, Jan}\\ + \textcolor{red}{Editor*} & \textcolor{red}{editor} & \textcolor{red}{Čechmánek, Jan}\\ + Title & title & How to cite\\ + \textcolor{blue}{Subtitle} & \textcolor{blue}{subtitle} & \textcolor{blue}{Conference proceedings citation}\\ + \textcolor{magenta}{Type of medium} & \textcolor{magenta}{howpublished} & \textcolor{magenta}{online}\\ + Edition & edition & 1\\ + \textcolor{blue}{Secondary author(s)} & \textcolor{blue}{contributory} & \textcolor{blue}{Translated by Jan NOVÁK}\\ + Place of publication & address & Brno\\ + Publisher & publisher & Brno University of Technology, Faculty of information technology\\ + Month & month & 2\\ + Year & year & 2020\\ + Volume & volume & 4\\ + Number & number & 24\\ + Pages & pages & 8-21\\ + \textcolor{magenta}{Revision} & \textcolor{magenta}{revised} & \textcolor{magenta}{revised 12. 2. 2020}\\ + \textcolor{magenta}{Date of citation} & \textcolor{magenta}{cited} & \textcolor{magenta}{2020-02-12}\\ + Series title & series & Guidelines for writing theses and dissertations\\ + Number in series & editionnumber & 2\\ + \textcolor{magenta}{Digital object identifier} & \textcolor{magenta}{doi} & \textcolor{magenta}{10.1000/BC1.0}\\ + Standard number & isbn or issn & 01-234-5678-9\\ + \textcolor{red}{Notes} & \textcolor{red}{note} & \textcolor{red}{This is a made up citation}\\ + \textcolor{magenta}{Availability} & \textcolor{magenta}{url} & \textcolor{magenta}{https://merlin.fit.vutbr.cz} +\end{tabularx} + +*Either author or editor is stated. + +\bigskip + +\noindent \textbf{Bibliographic citation} + +\medskip + +\noindent \textsc{Čechmánek}, J. \textit{How to cite: Conference proceedings citation} [online]. 1st ed. Translated by Jan NOVÁK. +Brno: Brno University of Technology, Faculty of information technology, February 2020, vol. 4, num. 24, p. 8–21, revised 12. 2. 2020 [cit. 2020-02-12]. Guidelines for writing theses and dissertations, no. 2. DOI: 10.1000/BC1.0. ISBN 01-234-5678-9. This is a made up citation. Available at: \url{https://merlin.fit.vutbr.cz} +%------------------------------------------------------------------------------- +\newpage +\section*{Conference proceedings entry or book chapter -- @InProceedings, @InCollection, @Conference, @InBook} +\label{pr-kapitola} +\noindent \textbf{Record items} + +\medskip + +\begin{tabularx}{0.95\linewidth}{>{\raggedright\arraybackslash}X X >{\raggedright\arraybackslash}X} + Element & BibTeX item & Example\\\hline + Author & author & John von Doe\\ + Entry title & title & How to cite\\ + \textcolor{blue}{Entry subtitle} & \textcolor{blue}{subtitle} & \textcolor{blue}{Article citation}\\ + Parent document author & editor or organisation & Smith, Peter\\ + Parent document title & booktitle & Conference proceedings on writing theses and dissertations\\ + \textcolor{blue}{Parent document subtitle} & \textcolor{blue}{booksubtitle} & \textcolor{blue}{Formal aspects}\\ + \textcolor{magenta}{Type of medium} & \textcolor{magenta}{howpublished} & \textcolor{magenta}{online}\\ + Edition & edition & 1\\ + Version & version & version 1.0\\ + \textcolor{blue}{Parent document secondary author(s)} & \textcolor{blue}{contributory} & \textcolor{blue}{Translated by Jan NOVÁK}\\ + Place of publication & address & Brno\\ + Publisher & publisher & Brno University of Technology, Faculty of information technology\\ + Month & month & 2\\ + Year & year & 2020\\ + Volume & volume & 4\\ + Number & number & 24\\ + \textcolor{blue}{Chapter} & \textcolor{blue}{chapter} & \textcolor{blue}{5}\\ + Pages & pages & 8-21\\ + Revision & revised & revised 12. 2. 2020\\ + \textcolor{magenta}{Date of citation} & \textcolor{magenta}{cited} & \textcolor{magenta}{2020-02-12}\\ + Series title & series & Guidelines for writing theses and dissertations\\ + Number in series & editionnumber & 2\\ + Standard number & isbn or issn & 1234-5678\\ + \textcolor{red}{Notes} & \textcolor{red}{note} & \textcolor{red}{This is a made up citation}\\ + \textcolor{magenta}{Availability} & \textcolor{magenta}{url} & \textcolor{magenta}{https://merlin.fit.vutbr.cz}\\ +\end{tabularx} + +\bigskip + +\noindent \textbf{Bibliographic citation} + +\medskip + +\noindent \textsc{Doe}, J. How to cite: Article citation. +In: \textsc{Smith}, P., ed. \textit{Conference proceedings on writing theses and dissertations: Formal aspects} [online]. 1st ed., version 1.0. Translated by Jan NOVÁK. Brno: Brno University of Technology, Faculty of information technology, February 2020, vol. 4, num. 24, chap. 5, p. 8–21, revised 12. 2. 2020 [cit. 2020-02-12]. Guidelines for writing theses and dissertations, no. 2. ISSN 1234-5678. This is a made up citation. Available at: \url{https://merlin.fit.vutbr.cz} +%------------------------------------------------------------------------------- +\newpage +\section*{Manual, documentation, technical report and unpublished \\materials -- @Manual, @TechReport, @Unpublished} +\label{pr-manual} +\noindent \textbf{Record items} + +\medskip + +\begin{tabularx}{0.95\linewidth}{>{\raggedright\arraybackslash}X X >{\raggedright\arraybackslash}X} + Element & BibTeX item & Example\\\hline + Author (person or organisation) & author & Brno University of Technology, Faculty of information technology\\ + Title & title & Manual for writing theses and dissertations\\ + \textcolor{blue}{Subtitle} & \textcolor{blue}{subtitle} & \textcolor{blue}{Manual citation}\\ + \textcolor{magenta}{Type of medium} & \textcolor{magenta}{howpublished} & \textcolor{magenta}{online}\\ + \textcolor{red}{Document type} & \textcolor{red}{type} & \textcolor{red}{User manual}\\ + \textcolor{red}{Document number} & \textcolor{red}{number} & \textcolor{red}{3}\\ + Edition & edition & 1\\ + \textcolor{blue}{Secondary author(s)} & \textcolor{blue}{contributory} & \textcolor{blue}{Edited by Jan NOVÁK}\\ + Place of publication & address & Brno\\ + Organisation or institution & organization or institution & Brno University of Technology, Faculty of information technology\\ + Month & month & 2\\ + Year & year & 2020\\ + Revision & revised & revised 12. 2. 2020\\ + \textcolor{magenta}{Date of citation} & \textcolor{magenta}{cited} & \textcolor{magenta}{2020-02-12}\\ + \textcolor{red}{Pages} & \textcolor{red}{pages} & \textcolor{red}{220}\\ + \textcolor{red}{Notes} & \textcolor{red}{note} & \textcolor{red}{This is a made up citation}\\ + \textcolor{magenta}{Availability} & \textcolor{magenta}{url} & \textcolor{magenta}{https://merlin.fit.vutbr.cz}\\ +\end{tabularx} + +\bigskip + +\noindent \textbf{Bibliographic citation} + +\medskip + +\noindent \textsc{Brno University of Technology, Faculty of information technology}. \textit{Manual for writing theses and dissertations: Manual citation} [online]. User manual 3, 1st ed. Edited by Jan NOVÁK. +Brno: Brno University of Technology, Faculty of information technology, February 2020, revised 12. 2. 2020 [cit. 2020-02-12]. 220 p. This is a made up citation. Available at: \url{https://merlin.fit.vutbr.cz} +%------------------------------------------------------------------------------- +\newpage +\section*{Academic work -- @BachelorsThesis, @MastersThesis, \\@PhdThesis, @Thesis} +\label{pr-thesis} +\noindent \textbf{Record items} + +\medskip + +\begin{tabularx}{0.95\linewidth}{X X >{\raggedright\arraybackslash}X} + Element & BibTeX item & Example\\\hline + Author & author & Brno University of Technology, Faculty of information technology\\ + Title & title & BiBTeX style for ČSN ISO 690 and ČSN ISO 690-2\\ + \textcolor{blue}{Subtitle} & \textcolor{blue}{subtitle} & \\ + \textcolor{magenta}{Type of medium} & \textcolor{magenta}{howpublished} & \textcolor{magenta}{online}\\ + \textcolor{red}{Document type} & \textcolor{red}{type} & \textcolor{red}{Dissertation}\\ + Place of publication & address or location & Brno\\ + School & school & Brno University of Technology, Faculty of information technology\\ + Year & year & 2020\\ + \textcolor{magenta}{Date of citation} & \textcolor{magenta}{cited} & \textcolor{magenta}{2020-02-12}\\ + \textcolor{red}{Pages} & \textcolor{red}{pages} & \textcolor{red}{220}\\ + \textcolor{red}{Appendices} & \textcolor{red}{inserts} & \textcolor{red}{20}\\ + Standard number & isbn & 01-234-5678-9\\ + \textcolor{red}{Supervisor} & \textcolor{red}{supervisor} & \textcolor{red}{Dytrych, Jaroslav}\\ + \textcolor{red}{Notes} & \textcolor{red}{note} & \textcolor{red}{This is a made up citation}\\ + \textcolor{magenta}{Availability} & \textcolor{magenta}{url} & \textcolor{magenta}{https://www.fit.vut.cz/\-study/theses}\\ +\end{tabularx} + +\bigskip + +\noindent \textbf{Bibliographic citation} + +\medskip + +\noindent \textsc{Novák}, J. \textit{BiBTeX style for ČSN ISO 690 and ČSN ISO 690-2} [online]. Brno, CZ, 2020. [cit. 2020-02-12]. 80 p., 20. p. apps. Dissertation. Brno University of Technology, Faculty of information technology. ISBN 01-2345-678-9. Supervisor \textsc{Dytrych}, J. This is a made up citation. Available at: \url{https://www.fit.vut.cz/study/theses} +%------------------------------------------------------------------------------- +\newpage +\section*{Web page -- @Webpage} +\label{pr-webpage} +\noindent \textbf{Record items} + +\medskip + +\begin{tabularx}{0.95\linewidth}{X X >{\raggedright\arraybackslash}X} + Element & BibTeX item & Example\\\hline + Author & author & Nováková, Jana\\ + Page title & secondarytitle & Post citation\\ + Site title & title & Web on writing theses and dissertations\\ + \textcolor{blue}{Site subtitle} & \textcolor{blue}{subtitle} & \\ + \textcolor{magenta}{Type of medium} & \textcolor{magenta}{howpublished} & \textcolor{magenta}{online}\\ + \textcolor{blue}{Secondary author(s)} & \textcolor{blue}{contributory} & \textcolor{blue}{Edited by Jan NOVÁK}\\ + \textcolor{red}{Version} & \textcolor{red}{version} & \textcolor{red}{version 1.0}\\ + \textcolor{red}{Place of publication} & \textcolor{red}{address} & \textcolor{red}{Brno}\\ + \textcolor{red}{Publisher} & \textcolor{red}{publisher} & \textcolor{red}{Brno University of Technology, Faculty of information technology}\\ + Day & day & 12\\ + Month & month & 2\\ + Year & year & 2020\\ + \textcolor{blue}{Time of publication} & \textcolor{blue}{time} & \textcolor{blue}{14:00}\\ + Revision & revised & revised 12. 2. 2020\\ + \textcolor{magenta}{Digital object identifier} & \textcolor{magenta}{doi} & \textcolor{magenta}{10.1000/BC1.0}\\ + Standard number & issn & 1234-5678\\ + \textcolor{red}{Notes} & \textcolor{red}{note} & \textcolor{red}{This is a made up citation}\\ + Availability & url & https://merlin.fit.vutbr.cz\\ + Path & path & Home; Art; The art of citation +\end{tabularx} + +\bigskip + +\noindent \textbf{Bibliograpic citation} + +\medskip + +\noindent \textsc{Nováková}, J. Post citation. \textit{Web on writing theses and dissertations} [online]. Edited by Jan NOVÁK. version 1.0. Brno: Brno University of Technology, Faculty of information technology, 2. february 1998 14:10. revised 12. 2. 2020 [cit. 2020-02-12]. DOI: 10.1000/BC1.0. ISSN 1234-5678. This is a made up citation. Available at: \url{https://merlin.fit.vutbr.cz} Path: Home; Art; The Art of Citation. +%------------------------------------------------------------------------------- +\newpage +\section*{Web site -- @Website} +\label{pr-website} +\noindent \textbf{Record items} + +\medskip + +\begin{tabularx}{0.95\linewidth}{X X >{\raggedright\arraybackslash}X} + Element & BibTeX item & Example\\\hline + Author (person or organisation) & author & Nováková, Jana\\ + Site title & title & Web on writing theses and citations\\ + \textcolor{blue}{Site subtitle} & \textcolor{blue}{subtitle} & \\ + \textcolor{magenta}{Type of medium} & \textcolor{magenta}{howpublished} & \textcolor{magenta}{online}\\ + \textcolor{blue}{Secondary author(s)} & \textcolor{blue}{contributory} & \textcolor{blue}{Edited by Jan NOVÁK}\\ + \textcolor{red}{Version} & \textcolor{red}{version} & \textcolor{red}{version 1.0}\\ + \textcolor{red}{Place of publication} & \textcolor{red}{address} & \textcolor{red}{Brno}\\ + \textcolor{red}{Publisher} & \textcolor{red}{publisher} & \textcolor{red}{Brno University of Technology, Faculty of information technology}\\ + \textcolor{blue}{Day} & \textcolor{blue}{day} & \textcolor{blue}{12}\\ + \textcolor{blue}{Month} & \textcolor{blue}{month} & \textcolor{blue}{2}\\ + Year & year & 2020\\ + \textcolor{blue}{Time of publication} & \textcolor{blue}{time} & \textcolor{blue}{14:00}\\ + Revision & revised & revised 12. 2. 2020\\ + Date of citation & cited & 2020-02-12\\ + \textcolor{magenta}{Digital object identifier} & \textcolor{magenta}{doi} & \textcolor{magenta}{10.1000/BC1.0}\\ + Standard number & issn & 1234-5678\\ + \textcolor{red}{Notes} & \textcolor{red}{note} & \textcolor{red}{This is a made up citation}\\ + Availability & url & https://merlin.fit.vutbr.cz +\end{tabularx} + +\bigskip + +\noindent \textbf{Bibliographic citation} + +\medskip + +\noindent \textsc{Nováková}, J. \textit{Web on writing theses and dissertations} [online]. Edited by Jan NOVÁK. version 1.0. Brno: Brno University of Technology, Faculty of information technology, 2. february 1998 14:10. revised 12. 2. 2020 [cit. 2020-02-12]. DOI: 10.1000/BC1.0. ISSN 1234-5678. This is a made up citation. Available at: \url{https://merlin.fit.vutbr.cz}. + +% For compilation piecewise (see projekt.tex), it is necessary to uncomment it +%\end{document} diff --git a/overleaf/projekt-30-prilohy-appendices.tex b/overleaf/projekt-30-prilohy-appendices.tex new file mode 100644 index 0000000..ac4bb7b --- /dev/null +++ b/overleaf/projekt-30-prilohy-appendices.tex @@ -0,0 +1,850 @@ +% Tento soubor nahraďte vlastním souborem s přílohami (nadpisy níže jsou pouze pro příklad) + +% Pro kompilaci po částech (viz projekt.tex), nutno odkomentovat a upravit +%\documentclass[../projekt.tex]{subfiles} +%\begin{document} + +% Umístění obsahu paměťového média do příloh je vhodné konzultovat s vedoucím +%\chapter{Obsah přiloženého paměťového média} + +%\chapter{Manuál} + +%\chapter{Konfigurační soubor} + +%\chapter{RelaxNG Schéma konfiguračního souboru} + +%\chapter{Plakát} + +\chapter{Jak pracovat s touto šablonou} +\label{jak} + +V této příloze je uveden popis jednotlivých částí šablony, po kterém následuje stručný návod, jak s touto šablonou pracovat. Pokud po jejím přečtení k šabloně budete mít nějaké dotazy, připomínky apod., neváhejte a napište na e-mail \texttt{sablona@fit.vutbr.cz}. + +\section*{Popis částí šablony} + +Po rozbalení šablony naleznete následující soubory a adresáře: +\begin{DESCRIPTION} + \item [bib-styles] Styly literatury (viz níže). + \item [obrazky-figures] Adresář pro Vaše obrázky. Nyní obsahuje \texttt{placeholder.pdf} (tzv. TODO obrázek, který lze použít jako pomůcku při tvorbě technické zprávy), který se s prací neodevzdává. Název adresáře je vhodné zkrátit, aby byl jen ve zvoleném jazyce. + \item [template-fig] Obrázky šablony (znak VUT). + \item [fitthesis.cls] Šablona (definice vzhledu). + \item [Makefile] Makefile pro překlad, počítání normostran, sbalení apod. (viz níže). + \item [projekt-01-kapitoly-chapters.tex] Soubor pro Váš text (obsah nahraďte). + \item [projekt-20-literatura-bibliography.bib] Seznam literatury (viz níže). + \item [projekt-30-prilohy-appendices.tex] Soubor pro přílohy (obsah nahraďte). + \item [projekt.tex] Hlavní soubor práce -- definice formálních částí. +\end{DESCRIPTION} + +Styl literatury v šabloně je od Ing. Radka Pyšného \cite{Pysny}, jehož práce byla vylepšena prof. Adamem Heroutem, dr. Jaroslavem Dytrychem a panem Karlem Hanákem tak, aby odpovídala normě a podporovala všechny často využívané typy citací. Jeho dokumentaci naleznete v příloze \ref{priloha-priklady-citaci}. + +\begin{samepage} +Makefile kromě překladu do PDF nabízí i další funkce: +\begin{itemize} + \item přejmenování souborů (viz níže), + \item počítání normostran, + \item spuštění vlny pro doplnění nezlomitelných mezer, + \item sbalení výsledku pro odeslání vedoucímu ke kontrole (zkontrolujte, zda sbalí všechny Vámi přidané soubory, a případně doplňte). +\end{itemize} +\end{samepage} + +Nezapomeňte, že vlna neřeší všechny nezlomitelné mezery. Vždy je třeba manuální kontrola, zda na konci řádku nezůstalo něco nevhodného -- viz Internetová jazyková příručka\footnote{Internetová jazyková příručka \url{http://prirucka.ujc.cas.cz/?id=880}}. + +\paragraph {Pozor na číslování stránek!} Pokud má obsah 2 strany a na 2. jsou jen \uv{Přílohy} a~\uv{Seznam příloh} (ale žádná příloha tam není), z nějakého důvodu se posune číslování stránek o 1 (obsah \uv{nesedí}). Stejný efekt má, když je na 2. či 3. stránce obsahu jen \uv{Literatura} a~je možné, že tohoto problému lze dosáhnout i jinak. Řešení je několik (od~úpravy obsahu, přes nastavení počítadla až po sofistikovanější metody). \textbf{Před odevzdáním proto vždy překontrolujte číslování stran!} + + +\section*{Doporučený postup práce se šablonou} + +\begin{enumerate} + \item \textbf{Zkontrolujte, zda máte aktuální verzi šablony.} Máte-li šablonu z předchozího roku, na stránkách fakulty již může být novější verze šablony s~aktualizovanými informacemi, opravenými chybami apod. + \item \textbf{Zvolte si jazyk}, ve kterém budete psát svoji technickou zprávu (česky, slovensky nebo anglicky) a svoji volbu konzultujte s vedoucím práce (nebyla-li dohodnuta předem). Pokud Vámi zvoleným jazykem technické zprávy není čeština, nastavte příslušný parametr šablony v souboru projekt.tex (např.: \verb|document|\verb|class[english]{fitthesis}| a přeložte prohlášení a poděkování do~angličtiny či slovenštiny. + \item \textbf{Přejmenujte soubory.} Po rozbalení je v šabloně soubor \texttt{projekt.tex}. Pokud jej přeložíte, vznikne PDF s technickou zprávou pojmenované \texttt{projekt.pdf}. Když vedoucímu více studentů pošle \texttt{projekt.pdf} ke kontrole, musí je pracně přejmenovávat. Proto je vždy vhodné tento soubor přejmenovat tak, aby obsahoval Váš login a (případně zkrácené) téma práce. Vyhněte se však použití mezer, diakritiky a speciálních znaků. Vhodný název může být např.: \uv{\texttt{xlogin00-Cisteni-a-extrakce-textu.tex}}. K přejmenování můžete využít i přiložený Makefile: +\begin{verbatim} +make rename NAME=xlogin00-Cisteni-a-extrakce-textu +\end{verbatim} + \item Vyplňte požadované položky v souboru, který byl původně pojmenován \texttt{projekt.tex}, tedy typ, rok (odevzdání), název práce, svoje jméno, ústav (dle zadání), tituly a~jméno vedoucího, abstrakt, klíčová slova a další formální náležitosti. + \item Nahraďte obsah souborů s kapitolami práce, literaturou a přílohami obsahem svojí technické zprávy. Jednotlivé přílohy či kapitoly práce může být výhodné uložit do~samostatných souborů -- rozhodnete-li se pro toto řešení, je doporučeno zachovat konvenci pro názvy souborů, přičemž za číslem bude následovat název kapitoly. + \item Nepotřebujete-li přílohy, zakomentujte příslušnou část v \texttt{projekt.tex} a příslušný soubor vyprázdněte či smažte. Nesnažte se prosím vymyslet nějakou neúčelnou přílohu jen proto, aby daný soubor bylo čím naplnit. Vhodnou přílohou může být obsah přiloženého paměťového média. + \item Smažte soubory s kapitolami a přílohami pro jazyk, který jste nevyužili (s nebo bez \texttt{-en}). + \item Zadání, které si stáhnete v PDF z IS VUT (odkaz \uv{Zadání pro vložení do práce} či \uv{Thesis assignment}), uložte do souboru \texttt{zadani.pdf} a povolte jeho vložení do práce parametrem šablony v \texttt{projekt.tex} (\verb|document|\verb|class[zadani]{fitthesis}|). + \item Nechcete-li odkazy tisknout barevně (bez konzultace s vedoucím příliš nedoporučuji), budete pro tisk vytvářet druhé PDF s tím, že nastavíte parametr šablony pro tisk: (\verb|document|\verb|class[zadani,print]{fitthesis}|). Budete-li tisknout barevně, místo \texttt{print} použijte parametr \texttt{cprint}. Barevné logo se nesmí tisknout černobíle! + \item Vzor desek, do kterých bude práce vyvázána, si vygenerujte v informačním systému fakulty u zadání. Pro disertační práci lze zapnout parametrem v šabloně \texttt{cover} (více naleznete v souboru \texttt{fitthesis.cls}). + \item Nezapomeňte, že zdrojové soubory i (obě verze) PDF musíte odevzdat na CD či jiném médiu přiloženém k technické zprávě. +\end{enumerate} + +Obsah práce se generuje standardním příkazem \tt \textbackslash tableofcontents \rm (zahrnut v šabloně). Přílohy jsou v něm uvedeny úmyslně. + +\subsection*{Pokyny pro oboustranný tisk} +\begin{itemize} +\item \textbf{Oboustranný tisk je doporučeno konzultovat s vedoucím práce.} +\item Je-li práce tištěna oboustranně a její tloušťka je menší než tloušťka desek, nevypadá to dobře. +\item Zapíná se parametrem šablony: \verb|\document|\verb|class[twoside]{fitthesis}| +\item Po vytištění oboustranného listu zkontrolujte, zda je při prosvícení sazební obrazec na obou stranách na stejné pozici. Méně kvalitní tiskárny s duplexní jednotkou mají často posun o 1--3 mm. Toto může být u některých tiskáren řešitelné tak, že vytisknete nejprve liché stránky, pak je dáte do stejného zásobníku a vytisknete sudé. +\item Za titulním listem, obsahem, literaturou, úvodním listem příloh, seznamem příloh a případnými dalšími seznamy je třeba nechat volnou stránku, aby následující část začínala na liché stránce (\texttt{\textbackslash cleardoublepage}). +\item Konečný výsledek je nutné pečlivě překontrolovat. +\end{itemize} + +\subsection*{Styl odstavců} + +Odstavce se zarovnávají do bloku a pro jejich formátování existuje více metod. U papírové literatury je častá metoda s~použitím odstavcové zarážky, kdy se u~jednotlivých odstavců textu odsazuje první řádek odstavce asi o~jeden až dva čtverčíky, tedy přibližně o~dvě šířky velkého písmene M základního textu (vždy o~stejnou, předem zvolenou hodnotu). Poslední řádek předchozího odstavce a~první řádek následujícího odstavce se v~takovém případě neoddělují svislou mezerou. Proklad mezi těmito řádky je stejný jako proklad mezi řádky uvnitř odstavce \cite{fitWeb}. + +Další metodou je odsazení odstavců, které je časté u elektronické sazby textů. První řádek odstavce se při této metodě neodsazuje a mezi odstavce se vkládá vertikální mezera o~velikosti 1/2 řádku. Obě metody lze v kvalifikační práci použít, nicméně často je vhodnější druhá z uvedených metod. Metody není vhodné kombinovat. + +Jeden z výše uvedených způsobů je v šabloně nastaven jako výchozí, druhý můžete zvolit parametrem šablony \uv{\tt odsaz\rm }. + +\subsection*{Užitečné nástroje} +\label{nastroje} + +Následující seznam není výčtem všech využitelných nástrojů. Máte-li vyzkoušený osvědčený nástroj, neváhejte jej využít. Pokud však nevíte, který nástroj si zvolit, můžete zvážit některý z následujících: + +\begin{description} + \item[\href{http://miktex.org/download}{MikTeX}] \LaTeX{} pro Windows -- distribuce s jednoduchou instalací a vynikající automatizací stahování balíčků. MikTex obsahuje i vlastní editor, ale spíše doporučuji TeXstudio. + \item[\href{http://texstudio.sourceforge.net/}{TeXstudio}] Přenositelné GUI pro \LaTeX{} s otevřeným zdrojovým kódem (opensource). Ctrl+klik umožňuje přepínat mezi zdrojovým textem a PDF. Má integrovanou kontrolu pravopisu\footnote{Českou kontrolu pravopisu lze doinstalovat z \url{https://extensions.openoffice.org/de/project/czech-dictionary-pack-ceske-slovniky-cs-cz}}, zvýraznění syntaxe apod. Pro jeho využití je nejprve potřeba nainstalovat MikTeX, případně jinou \LaTeX ovou distribuci. + \item[\href{http://www.winedt.com/}{WinEdt}] Ve Windows je dobrá kombinace WinEdt + MiKTeX. WinEdt je GUI pro Windows, pro jehož využití je nejprve potřeba nainstalovat \href{http://miktex.org/download}{MikTeX} či \href{http://www.tug.org/texlive/}{TeX Live}. + \item[\href{http://kile.sourceforge.net/}{Kile}] Editor pro desktopové prostředí KDE (Linux). Umožňuje živé zobrazení náhledu. Pro jeho využití je potřeba mít nainstalovaný \href{http://www.tug.org/texlive/}{TeX Live} a Okular. + \item[\href{http://jabref.sourceforge.net/download.php}{JabRef}] Pěkný a jednoduchý program v Javě pro správu souborů s bibliografií (literaturou). Není potřeba se nic učit -- poskytuje jednoduché okno a formulář pro editaci položek. + \item[\href{https://inkscape.org/en/download/}{InkScape}] Přenositelný opensource editor vektorové grafiky (SVG i PDF). Vynikající nástroj pro tvorbu obrázků do odborného textu. Jeho ovládnutí je obtížnější, ale výsledky stojí za to. + \item[\href{https://git-scm.com/}{GIT}] Vynikající pro týmovou spolupráci na projektech, ale může výrazně pomoci i jednomu autorovi. Umožňuje jednoduché verzování, zálohování a přenášení mezi více počítači. + \item[\href{http://www.overleaf.com/}{Overleaf}] Online nástroj pro \LaTeX{}. Přímo zobrazuje náhled a umožňuje jednoduchou spolupráci (vedoucí může průběžně sledovat psaní práce), vyhledávání ve zdrojovém textu či ve vygenerovaném PDF, kontrolu pravopisu apod. Zdarma jej však lze využít pouze s určitými omezeními (někomu stačí na disertaci, jiný na ně může narazit i při psaní bakalářské práce) a pro dlouhé texty je pomalejší. FIT VUT v Brně má pro studenty i~zaměstnance licenci, kterou si lze aktivovat na \url{https://www.overleaf.com/edu/but}. +\end{description} + +Pozn.: Overleaf nepoužívá Makefile v šabloně -- aby překlad fungoval, je v menu nutné zvolit \tt projekt.tex \rm jako hlavní dokument. + +\chapter{Psaní anglického textu} +\label{anglicky} +Tato příloha je převzata ze stránek doc. Černockého \cite{CernockyEnglish}. + +Spousta lidí píše zprávy k projektům anglicky (a to je dobře!), ale dělá v nich spoustu zbytečných chyb (a to je špatně). Nejsem angličtinář, ale tento jazyk už nějakých pár let používám k psaní, čtení i komunikaci -- tato příloha obsahuje pár důležitých věcí. Pokud chcete napsat práci nebo článek opravdu 100\,\% dobře, nezbude Vám než si najmout rodilého mluvčího (a to by měl by být trochu technicky zdatný a aspoň trochu rozumět tomu, co píšete, ať to neskončí ještě hůř \ldots). + +\section*{Obecně} + +\begin{itemize} + \item{Předtím, než budete sami něco psát, si přečtěte pár anglických technických článků a~zkuste si zapamatovat a získat \uv{obecný pocit}, jak se to píše.} + \item{Používejte vždy korektor pravopisu -- zabudovaný ve Wordu, nebo v OpenOffice, pokud děláte na Linuxu, tak ISPELL a další (většina editorů pro \LaTeX{} má již kontrolu pravopisu integrovanou).} + \item{Používejte korektor gramatiky. Nevím, jestli je nějaký dostupný na Linuxu, ale ten ve Wordu celkem slušně funguje a pokud Vám něco zelené podtrhne, je tam většinou opravdu chyba. Můžete do něj nakopírovat i zdrojový text pro \LaTeX{}, opravit, a pak uložit opět jako čistý text. Pokud používáte vim, je tam zabudovaný také a zvládne jak překlepy, tak základní gramatiku. V dokumentu \texttt{diplomka.tex} na první řádek napište: + \begin{verbatim} + % vim:spelllang=en_us:spell + \end{verbatim} + (případně \texttt{en\_gb} pro OED angličtinu) + \textit{Poznámka editora:} Existuje i velmi dobrý online nástroj Grammarly\footnote{\url{https://www.grammarly.com/}}, který je v základní verzi zdarma. + } + \item{Online slovníky jsou dobré, ale nepoužívejte je slepě. Většinou dají více variant a ne každá je správně.} + \item{\begin{samepage}Na vyhledávání a zjištění, co bude asi správné, můžete použít Google. Např.: nevíte, jak se řekne \uv{výhoda tohoto přístupu}. Slovník na seznam.cz dá asi 10 variant. Napište je postupně do vyhledávání na googlu: + \begin{verbatim} + "advantage of this approach" 1100000 hits + "privilege of this approach" 6 hits + "facility of this approach" 16 hits + \end{verbatim} + Neříkám, že je to 100\,\% správně, ale je to určité vodítko. Toto se dá použít i~na~dohledání správných spojek (třeba \uv{among two cases} nebo \uv{between two cases}?)\end{samepage}} +\end{itemize} + +\section*{SVOMPT a shoda} + +Struktura anglické věty je SVOPMT: SUBJECT VERB OBJECT MANNER PLACE TIME a přes to nejede vlak! Není volná jako v češtině. Jinak to je maximálně v nějaké divadelní hře, kde je potřeba něco zdůraznit. Hlavně podmět tam musí vždy být, na to se často zapomíná, protože v CZ/SK může být zamlčený nebo nevyjádřený. SVOMPT platí i~ve vedlejších větách! +\begin{verbatim} + BAD: We have shown that is faster than the other function. + GOOD: We have shown that it is faster than the other function. +\end{verbatim} + +\noindent Shoda podmětu s přísudkem -- zní to šíleně, ale dělá se v tom spousta chyb. + +\begin{verbatim} + he has + the users have + people were +\end{verbatim} + +\section*{Členy} + +Členy v angličtině jsou noční můra a téměř nikdo z nás je nedává dobře. Základní pravidlo je, že když je něco určitého, musí předtím být \uv{the}. Členy musí být určitě u těchto spojení: +\begin{verbatim} + the first, the second, ... + the last + the most (třetí stupeň přídavných jmen a príslovcí) ... + the whole + the following + the figure, the table. + the left, the right - on the left pannel, from the left to the right ... +\end{verbatim} + +\noindent Naopak člen NESMÍ být, pokud používáte přesné označení obrázku, kapitoly atd. +\begin{verbatim} + in Figure 3.2 + in Chapter 7 + in Table 6.4 +\end{verbatim} + +\begin{samepage} +\noindent Pozor na \uv{a} vs. \uv{an}, řídí se to podle výslovnosti a ne podle toho, jak je slovo napsané, takže: +\begin{verbatim} + an HMM + an XML + a universal model + a user +\end{verbatim} +\end{samepage} + +\section*{Slovesa} + +Pozor na trpné tvary sloves -- u pravidelných je to většinou bez problémů, u nepravidelných často špatně, typicky +\begin{verbatim} + packet was sent (ne send) + approach was chosen (ne choosed) +\end{verbatim} +\noindent \ldots vetšinou to opraví korektor pravopisu, ale někdy ne. + +Pozor na časy, občas je v nich pěkný nepořádek. Pokud něco nějak obecně je, přítomný čas. Pokud jste něco udělali, minulý. Pokud to dalo nějaký výsledek a ten výsledek teď existuje a třeba ho nějak diskutujete, přítomný. Nepoužívejte příliš složité časy jako je předpřítomný a vůbec ne předminulý pokud nevíte přesně, co děláte. +\begin{verbatim} + JFA is a technique that works for everyone in speaker recognition. + We implemented it according to Kenny's recipe in \cite{Kenny}. + 12000 segments from NIST SRE 2006 were processed. When compared + with a GMM baseline, the results are completely bad. +\end{verbatim} + +\section*{Délka vět a struktura} + +\begin{itemize} + \item{Pište kratší věty a souvětí, pokud máte něco na 5 řádků, většinou se to nedá číst.} + \item{Strukturujte věty pomocí čárek (více než v češtině!), hlavně po úvodu věty, po kterém začíná vlastní věta. Někdy se dává čárka i před \uv{and} (na rozdíl od češtiny).} +\end{itemize} +\begin{verbatim} + In this chapter, we will investigate ... + The first technique did not work, the second did not work as well, + and the third one also did not work. +\end{verbatim} + +\section*{Specifika technického textu} + +Píšete technický text, proto nepoužívejte zkratky +\begin{verbatim} + he's + gonna + Petr's working on ... +\end{verbatim} +\noindent a podobně. Jediné, které je tolerované, je \uv{doesn't}, ale neuděláte chybu, když napíšete \uv{does not}. + +\begin{samepage} +\noindent V technických textech se spíš používá trpný rod než činný: +\begin{verbatim} + BAD: In this chapter, I describe used programming languages. + GOOD: In this chapter, used programming languages are described. +\end{verbatim} +\end{samepage} + +Pokud už činný použijete, dává se v technických textech spíše \uv{we}, i když na práci děláte sami. \uv{I}, \uv{my} atd. se používají pouze tam, kde jde o to zdůraznit, že jde o Vaši osobu, tedy třeba v závěru nebo v popisu \uv{original claims} v disertaci. + +\paragraph{Časté chyby ve slovech} + +\begin{itemize} + \item{Pozor na jeho/její, není to it's, ale its.} + \item{Obrázek není picture, ale figure. } + \item{Spojka \uv{než} je \uv{than}, ne \uv{then} -- bigger than this, smaller than this \ldots hrozně častá chyba! \uv{Then} je pak, potom.} +\end{itemize} + + +\chapter{Checklist} +\label{checklist} +Tento checklist byl převzat ze šablony pro kvalifikační práce, která je k dispozici na blogu prof. Herouta \cite{Herout}, který s laskavým dovolením využil nápadu dr. Szökeho% +\footnote{\url{http://blog.igor.szoke.cz/2017/04/predstartovni-priprava-letu-neni.html}}. + +Velká bezpečnost letecké dopravy stojí z části na tom, že lidé kolem letadel mají \textbf{checklisty} na úplně každý, třeba rutinní a dobře zažitý, postup. Jako pilot strpí to, že bude trochu za blbce a opravdu tužtičkou do seznamu úkonů odškrtá dokonale zvládnuté akce, vytiskněte si a odškrtejte před odevzdáním diplomky i vy tento checklist a vyhněte se tak častým chybám, které by mohly mít až fatální následky na výsledné hodnocení Vaší práce. + +\subsubsection*{Struktura} +\begin{checklist} + \item Už ze samotných názvů a struktury kapitol je patrné, že bylo splněno zadání. + \item V textu se nevyskytuje kapitola, která by měla méně než čtyři strany (kromě úvodu a závěru). Pokud ano, radil(a) jsem se o tom s vedoucím a ten to schválil. +\end{checklist} + +\subsubsection*{Obrázky a grafy} +\begin{checklist} + \item Všechny obrázky a tabulky byly zkontrolovány a jsou poblíž místa, odkud jsou z textu odkazovány, takže nebude problém je najít. + \item Všechny obrázky a tabulky mají takový popisek, že celý obrázek dává smysl sám o~sobě, bez čtení dalšího textu. Vůbec nevadí, když má popisek několik řádků. + \item Pokud je obrázek převzatý, tak je to v popisku zmíněno: \uv{Převzato z [X].} + \item Písmenka ve všech obrázcích používají font podobné velikosti, jako je okolní text (ani výrazně větší, ani výrazně menší). + \item Grafy a schémata jsou vektorově (tj. v PDF). + \item Snímky obrazovky nepoužívají ztrátovou kompresi (jsou v PNG). + \item Všechny obrázky jsou odkázány z textu. + \item Grafy mají popsané osy (název osy, jednotky, hodnoty) a podle potřeby mřížku. +\end{checklist} + +\subsubsection*{Rovnice} +\begin{checklist} + \item Identifikátory a jejich indexy v rovnicích jsou jednopísmenné (kromě nečastých zvláštních případů jako $t_\mathrm{max}$). + \item Rovnice jsou číslovány. + \item Za (nebo vzácně před) rovnicí jsou vysvětleny všechny proměnné a funkce, které zatím vysvětleny nebyly. +\end{checklist} + +\subsubsection*{Citace} +\begin{checklist} + \item \textbf{Všechny použité zdroje jsou citovány.} + \item Adresy URL odkazující na služby, projekty, zdroje, github apod. jsou odkazovány pomocí \verb|\footnote{\url{...}}|. + \item Všechny citace používají správné typy. + \item Citace mají autora, název, vydavatele (název konference), rok vydání. Když některá nemá, je to dobře zdůvodněný zvláštní případ a vedoucí to odsouhlasil. + \item Je-li ve zdrojových textech programu něco převzaté, je to tam řádně citováno v souladu s licencí. + \item Je-li podstatná část zdrojových textů programu převzatá, je toto zmíněno v textu práce a je citován zdroj. +\end{checklist} + +\subsubsection*{Typografie} +\begin{checklist} + \item Žádný řádek nepřetéká přes pravý okraj. + \item Na konci řádku nikde není jednopísmenná předložka (spraví to nedělitelná mezera $\sim$). + \item Číslo obrázku, tabulky, rovnice, citace není nikde první na novém řádku (spraví to nedělitelná mezera $\sim$). + \item Před číselným odkazem na poznámku pod čarou nikde není mezera (to jest vždy takto\footnote{příklad poznámky pod čarou}, nikoliv takto \footnote{jiný příklad poznámky pod čarou}). +\end{checklist} + +\subsubsection*{Jazyk} +\begin{checklist} + \item Použil jsem kontrolu pravopisu a v textu nikde nejsou překlepy. + \item Nechal jsem si text přečíst od (alespoň) jednoho dalšího člověka, který umí dobře česky / anglicky / slovensky. + \item V práci psané česky nebo slovensky abstrakt zkontroloval někdo, kdo umí opravdu dobře anglicky. + \item V textu se nikde nepoužívá druhá mluvnická osoba (vy/ty). + \item Když se v textu vyskytuje první mluvnická osoba (já, my), vždy se popisuje subjektivní záležitost (\textit{rozhodl jsem se}, \textit{navrhl jsem}, \textit{zaměřil jsem se na}, \textit{zjistil jsem} apod.). + \item V textu se nikde nepoužívají hovorové výrazy. + \item V českém či slovenském textu se zbytečně nepoužívají anglické výrazy, které mají ustálené české překlady. Např. slovo \textit{defaultní} se nahradí např. slovem \textit{implicitní} nebo \textit{výchozí}. +\end{checklist} + +\subsubsection*{Výsledek na datovém médiu, tj. software} +\begin{checklist} + \item Mám připravené nepřepisovatelné datové médium + \begin{itemize} + \item CD-R, + \item DVD-R, + \item DVD+R ve formátu ISO9660 (s rozšířením RockRidge a/nebo Jolliet) nebo UDF, + \item paměťová karta SD (Secure Digital) ve formátu FAT32 nebo exFAT s nastavenou ochranou proti přepisu. + \end{itemize} + \item Pokud je výsledek online (služba, aplikace, \dots), URL je viditelně v úvodu a závěru, aby bylo jasné, kde výsledek hledat. + \item Na médiu nechybí povinné: + \begin{itemize} + \item zdrojové kódy (např. Matlab, C/C++, Python, \dots) + \item knihovny potřebné pro překlad, + \item přeložené řešení, + \item PDF s technickou zprávou (je-li pro tisk 2. verze, tak obě), + \item zdrojový kód zprávy (\LaTeX), + \end{itemize} + a případně volitelně po dohodě s vedoucím práce + \begin{itemize} + \item relevantní (např. testovací) data, + \item demonstrační video, + \item PDF plakátku, + \item \dots + \end{itemize} + \item Zdrojové kódy jsou refaktorovány, komentovány a označeny hlavičkou s autorstvím, takže se v nich snadno vyzná i někdo další, než sám autor. + \item Jakákoliv převzatá část zdrojového kódu je řádně citována -- tedy označena úvodním a v případě převzetí více řádků i ukončovacím komentářem. Komentář obsahuje vše, co vyžaduje licence uvedená na webu (vždy je nutné se ji pokusit najít -- např. Stack Overflow\footnote{\url{https://stackoverflow.blog/2009/06/25/attribution-required/}} má striktní pravidla pro citace). +\end{checklist} + +\subsubsection*{Odevzdání} + +\begin{checklist} +\item Chci práci (na max. 3 roky) utajit? Pokud ano, nejpozději měsíc před termínem odevzdání práce si podám žádost (v IS), ke které přiložím případné stanovisko firmy, jejíž duševní vlastnictví je třeba chránit. +\item Mám splněný minimální počet normostran textu (lze spočítat pomocí Makefile a~odhadem přičíst obrázky). Pokud jsem těsně pod minimem, konzultoval(a) jsem to s~vedoucím. +\item Pokud chci tisknout oboustranně, konzultoval(a) jsem to s~vedoucím a mám správně nastavenou šablonu. Kapitoly začínají na liché stránce. +\item Technickou zprávu mám v deskách z knihařství (min. 1 výtisk, při utajení oba). +\item Za titulním listem práce je zadání (tzn. mám jej stažené z IS a vložené do šablony). +\item V IS jsou abstrakty a klíčová slova. + \begin{itemize} + \item V abstraktu a klíčových slovech v IS nejsou zkopírované vlnky pro nezlomitelné mezery. + \end{itemize} +\item V IS je PDF práce (s klikatelnými odkazy). +\item Oba výtisky práce jsou podepsané. +\item V jednom (při utajení obou) výtisku práce je paměťové médium, na kterém je fixkou napsaný login (fixku na CD lze zapůjčit v knihovně, na Studijním oddělení nebo až při odevzdání). +\end{checklist} + + +\chapter{\LaTeX pro začátečníky} +\label{latex} + +V této kapitole jsou uvedeny některé často využívané balíčky a příkazy pro \LaTeX{}, které mohou být při tvorbě práce potřeba. + +\subsection*{Užitečné balíčky} + +Studenti při sazbě textu často řeší stejné problémy. Některé z nich lze vyřešit následujícími balíčky pro \LaTeX: + +\begin{itemize} + \item \verb|amsmath| -- rozšířené možnosti sazby rovnic, + \item \verb|float, afterpage, placeins| -- úprava umístění obrázků/tabulek (specifikátor \texttt{H}), + \item \verb|fancyvrb, alltt| -- úpravy vlastností prostředí Verbatim, + \item \verb|makecell| -- rozšíření možností tabulek, + \item \verb|pdflscape, rotating| -- natočení stránky o 90 stupňů (pro obrázek či tabulku), + \item \verb|hyphenat| -- úpravy dělení slov, + \item \verb|picture, epic, eepic| -- přímé kreslení obrázků. +\end{itemize} + +Některé balíčky jsou využity přímo v šabloně (v dolní části souboru \texttt{fitthesis.cls}). Nahlédnutí do jejich dokumentace může být rovněž velmi užitečné. + +Sloupec tabulky zarovnaný vlevo s pevnou šířkou je v šabloně definovaný \uv{L} (používá se jako \uv{p}). + +Pro odkazování v rámci textu použijte příkaz \verb|\ref{navesti}|. Podle umístění návěští se bude jednat o~číslo kapitoly, podkapitoly, obrázku, tabulky nebo podobného číslovaného prvku). Pokud chcete odkázat stránku práce, použijte příkaz \verb|pageref{navesti}|. Pro citaci literárního odkazu \verb|\cite{identifikator}|. Pro odkazy na rovnice lze použít příkaz \verb|\eqref{navesti}|. + +Znak \,--\, (pomlčka) se V \LaTeX u vkládá jako dvě mínus za sebou: -{}-. + +\subsection*{Často využívané příkazy pro \LaTeX{}} +\label{sec:Fragments} + +Doporučuji nahlédnout do zdrojového textu této podkapitoly a podívat se, jak jsou následující ukázky vysázeny. Ve zdrojovém textu jsou i pomocné komentáře. + +% Sloupec zarovnaný vlevo s pevnou šířkou je v šabloně definovaný "L" (používá se jako p) + +Příklad tabulky: +\begin{table}[H] + \vskip6pt + \caption{Tabulka hodnocení} + \vskip6pt + \centering + \begin{tabular}{llr} + \toprule + \multicolumn{2}{c}{Jméno} \\ + \cmidrule(r){1-2} + Jméno & Příjmení & Hodnocení \\ + \midrule + Jan & Novák & $7.5$ \\ + Petr & Novák & $2$ \\ + \bottomrule + \end{tabular} + \label{tab:ExampleTable} +\end{table} + +% Ohraničení lze upravit dle potřeby: +% http://latex-community.org/forum/viewtopic.php?f=45&t=24323 +% http://tex.stackexchange.com/questions/58163/problem-with-multirow-and-table-cell-borders +% http://tex.stackexchange.com/questions/79369/formatting-table-border-and-text-alignment-in-latex-table + +\noindent Příklad rovnice: +\begin{equation} + \cos^3 \theta =\frac{1}{4}\cos\theta+\frac{3}{4}\cos 3\theta + \label{eq:rovnice2} +\end{equation} +a dvou horizontálně zarovnaných rovnic: % znak & řídí zarovnání +\begin{align} + \label{eq:soustava} + 3x &= 6y + 12 \\ + x &= 2y + 4 +\end{align} + +Pokud je třeba rovnici citovat v textu, lze použít příkaz \verb|\eqref|. Například na rovnici výše lze odkázat~\eqref{eq:rovnice2}. Pokud chcete srovnat číslo rovnic u soustavy, lze použít prostředí \texttt{split}: +\begin{equation} \label{eq:soustavaSrovnana} +\begin{split} + 3x &= 6y + 12 \\ + x &= 2y + 4 +\end{split} +\end{equation} + +Matematické symboly ($\alpha$) a výrazy lze umístit i do textu $\cos\pi=-1$ a mohou být i~v~poznámce pod čarou% +\footnote{Vzorec v poznámce pod čarou: $\cos\pi=-1$}. + +Obrázek~\ref{sirokyObrazek} ukazuje široký obrázek složený z více menších obrázků. Klasický rastrový obrázek se vkládá tak, jak je vidět na obrázku \ref{keepCalm}. + +% Využití \begin{figure*} způsobí, že obrázek zabere celou šířku stránky. Takový obrázek dříve mohl být pouze na začátku stránky, případně na konci s využitím balíčku dblfloatfix (případné [h] se ignorovalo a [H] obrázek odstraní). Nové verze LaTeXu už umí i [h]. +\begin{figure*}[h]\centering + \centering + \includegraphics[width=\linewidth,height=1.7in]{obrazky-figures/placeholder.pdf}\\[1pt] + \includegraphics[width=0.24\linewidth]{obrazky-figures/placeholder.pdf}\hfill + \includegraphics[width=0.24\linewidth]{obrazky-figures/placeholder.pdf}\hfill + \includegraphics[width=0.24\linewidth]{obrazky-figures/placeholder.pdf}\hfill + \includegraphics[width=0.24\linewidth]{obrazky-figures/placeholder.pdf} + \caption{\textbf{Široký obrázek.} Obrázek může být složen z více menších obrázků. Chcete-li se na tyto dílčí obrázky odkazovat z textu, využijte balíček \texttt{subcaption}.} + \label{sirokyObrazek} +\end{figure*} + +% Odkomentujte pro přepnutí na formát A3 na šířku +% \eject \pdfpagewidth=420mm + +\begin{figure}[hbt] + \centering + \includegraphics[width=0.3\textwidth]{obrazky-figures/keep-calm.png} + \caption{Dobrý text je špatným textem, který byl několikrát přepsán. Nebojte se prostě něčím začít.} + \label{keepCalm} +\end{figure} + +Někdy je potřeba do příloh umístit diagram, který se nevejde na stránku formátu A4. Pak je možné vložit jednu stránku formátu A3 a do práce ji poskládat (tzv. skládání do~Z, kdy se vytvoří dva sklady -- lícem dolů a lícem nahoru, angl. Engineering fold -- existuje i~anglický pojem Z-fold, ale při tom by byl problém s vazbou). Přepnutí se provádí následovně: \texttt{\textbackslash{}eject \textbackslash{}pdfpagewidth=420mm} (pro přepnutí zpět pak 210mm). + +Další často využívané příkazy naleznete ve zdrojovém textu ukázkového obsahu této šablony. + +% Odkomentujte pro přepnutí zpět na A4 +% \eject \pdfpagewidth=210mm + + +\newcommand{\odradkovani}{\\[0.3em]} + +\chapter{Příklady bibliografických citací} +\label{priloha-priklady-citaci} +Styl czplain vychází ze stylu vytvořeného v rámci práce pana Pyšného \cite{Pysny}. Obsahuje sadu podporovaných typů citací s konkrétními příklady bibliografických citací. + +Na následujících stránkách přílohy jsou uvedeny příklady, jenž znázorňují bibliografické citace následujících publikací a~jejich částí: +\begin{itemize} + \item článku v seriálové publikaci (časopisu) (str. \pageref{pr-casopis-clanek}), + \item monografické publikace (str. \pageref{pr-monografie}), + \item sborníku (str. \pageref{pr-sbornik}), + \item článku ve sborníku nebo kapitoly v knize (str. \pageref{pr-kapitola}), + \item manuálu, dokumentace, technické zprávy a nepublikovaných materiálů (str. \pageref{pr-manual}), + \item akademické práce (str. \pageref{pr-thesis}), + \item webové stránky (str. \pageref{pr-webpage}), + \item a webové domény (str. \pageref{pr-website}). +\end{itemize} + +\noindent Položky jsou označený barevně podle povinnosti: +\begin{itemize} + \item prvek je dle normy povinný + \item \textcolor{blue}{prvek, který je dle normy volitelný} + \item \textcolor{magenta}{prvek, který je dle normy povinný pro online informační zdroje} + \item \textcolor{red}{prvek, který není předepsán normou a je v bibliografickém stylu v šabloně volitelný} +\end{itemize} +Povinné položky se uvádí pouze pokud existují. + +\newpage +\noindent V souboru s bibliografií se záznamy uvádí následujícím způsobem: +\begin{verbatim} +@Article{Doe:2020, + author = "Doe, John", + title = "Jak citovat", + subtitle = "Citace článku", + journal = "Seriál o tvorbě prací", + journalsubtitle = "Formální náležitosti", + howpublished = "online", + address = "Brno", + publisher = "Fakulta informačních technologií VUT v Brně", + contributory = "Přeložil Jan NOVÁK", + edition = "1", + version = "verze 1.0", + month = 2, + year = "2020", + revised = "revidováno 12. 2. 2020", + volume = "4", + number = "24", + pages = "8--21", + cited = "2020-02-12", + doi = "10.1000/BC1.0", + issn = "1234-5678", + note = "Toto je zcela vymyšlená citace", + url = "https://merlin.fit.vutbr.cz" +} +\end{verbatim} + +Citace jsou seřazeny podle abecedy. Řazení jmen s písmeny s diakritikou můžeme ovlivnit prvkem \texttt{key}, jehož hodnotu nastavíme na příjmení bez diakritiky. Pokud není vyplněn autor, citace se řadí na začátek seznamu, což není vhodné. Řazení v tomto případě můžeme taktéž ovlivnit vhodně nastaveným prvkem key. + +\medskip +\medskip +\noindent \textbf{Příklad}: +\begin{verbatim} + @Article{Cech:2020:Citace, + author = "Čech, Jan", + key = "Cech", + ... +\end{verbatim} + + +%------------------------------------------------------------------------------- +\newpage +\section*{Článek v seriálové publikaci -- @Article} +\label{pr-casopis-clanek} +\noindent \textbf{Položky záznamu} + +\medskip + +\begin{tabularx}{0.95\linewidth}{>{\raggedright\arraybackslash}X X >{\raggedright\arraybackslash}X} + Prvek & Zápis v BibTeXu & Příklad \\\hline + Tvůrce & author & Doe, John\\ + Název příspěvku & title & Jak citovat\\ + \textcolor{blue}{Vedlejší název} & \textcolor{blue}{subtitle} & \textcolor{blue}{Citace článku}\\ + Název seriálové publikace & journal & Seriál o tvorbě prací\\ + \textcolor{blue}{Vedlejší názvy seriálu} & \textcolor{blue}{journalsubtitle} & \textcolor{blue}{Formální náležitosti}\\ + \textcolor{magenta}{Typ nosiče} & \textcolor{magenta}{howpublished} & \textcolor{magenta}{online}\\ + Vydání & edition & 1\\ + Verze & version & verze 1.0\\ + \textcolor{blue}{Další tvůrce} & \textcolor{blue}{contributory} & \textcolor{blue}{Přeložil Jan NOVÁK}\\ + Místo vydání & address & Brno\\ + Nakladatel & publisher & Fakulta informačních technologií VUT v Brně\\ + Měsíc & month & 2\\ + Rok & year & 2020\\ + Svazek & volume & 4\\ + Číslo & number & 24\\ + Rozsah příspěvku & pages & 8-21\\ + Revize & revised & revidováno 12. 2. 2020\\ + \textcolor{magenta}{Datum citování} & \textcolor{magenta}{cited} & \textcolor{magenta}{2020-02-12}\\ + Název edice & series & Návody k tvorbě prací\\ + Číslo edice & editionnumber & 42\\ + \textcolor{magenta}{Identifikátor digitálního obsahu} & \textcolor{magenta}{doi} & \textcolor{magenta}{10.1000/BC1.0}\\ + Standardní číslo & issn & 1234-5678\\ + \textcolor{red}{Poznámky} & \textcolor{red}{note} & \textcolor{red}{Toto je zcela vymyšlená citace}\\ + \textcolor{magenta}{Dostupnost a přístup} & \textcolor{magenta}{url} & \textcolor{magenta}{https://merlin.fit.vutbr.cz} +\end{tabularx} + +\bigskip + +\noindent \textbf{Bibliografická citace} + +\medskip + +\noindent \textsc{Doe}, J. Jak Citovat: Citace článku. \textit{Seriál o tvorbě prací: Formální náležitosti} [online]. 1.~vyd., verze 1.0. Přeložil Jan NOVÁK. Brno: Fakulta informačních technologií VUT v~Brně. Únor 2020, sv. 4, č. 24, s. 8–21, revidováno 12. 2. 2020, [cit. 2020-02-12]. Návody k~tvorbě prací, č. 42. DOI: 10.1000/BC1.0. ISSN 1234-5678. Toto je zcela vymyšlená citace. Dostupné z: \url{https://merlin.fit.vutbr.cz} + +%------------------------------------------------------------------------------- +\newpage +\section*{Monografická publikace -- @Book, @Booklet (kniha, brožura)} +\label{pr-monografie} +\noindent \textbf{Položky záznamu} + +\medskip + +\begin{tabularx}{0.95\linewidth}{X X >{\raggedright\arraybackslash}X} + Prvek & Zápis v BibTeXu & Příklad\\\hline + Tvůrce & author & John von Doe\\ + Titul & title & Jak citovat\\ + \textcolor{blue}{Vedlejší názvy} & \textcolor{blue}{subtitle} & \textcolor{blue}{Citace monografické publikace}\\ + \textcolor{magenta}{Typ nosiče} & \textcolor{magenta}{howpublished} & \textcolor{magenta}{online}\\ + Vydání & edition & 1\\ + \textcolor{blue}{Další tvůrce} & \textcolor{blue}{contributory} & \textcolor{blue}{Přeložil Jan NOVÁK}\\ + Místo vydání & address & Brno\\ + Nakladatel & publisher & Fakulta informačních technologií VUT v Brně\\ + Měsíc vydání & month & 2\\ + Rok vydání & year & 2020\\ + Revize & revision & revidováno 12. 2. 2020\\ + \textcolor{magenta}{Datum citování} & \textcolor{magenta}{cited} & \textcolor{magenta}{2020-02-12}\\ + \textcolor{red}{Rozsah} & \textcolor{red}{pages} & \textcolor{red}{220}\\ + Edice & series & Návody k tvorbě prací\\ + Číslo edice & editionnumber & 2\\ + Standardní číslo & isbn & 01-234-5678-9\\ + \textcolor{red}{Poznámky} & \textcolor{red}{note} & \textcolor{red}{Toto je zcela vymyšlená citace}\\ + \textcolor{magenta}{Dostupnost a přístup} & \textcolor{magenta}{url} & \textcolor{magenta}{https://merlin.fit.vutbr.cz}\\ +\end{tabularx} + +\bigskip + +\noindent \textbf{Bibliografická citace} + +\medskip + +\noindent \textsc{von Doe}, J. \textit{Jak citovat: Citace monografické publikace} [online] . 1. vyd. Přeložil Jan NOVÁK. +Brno:Fakulta informačních technologií VUT v Brně, únor 2020, revidováno 12. 2. 2020 [cit. 2020-02-12]. 220 s. Návody k tvorbě prací, č. 2. ISBN 01-234-5678-9. Toto je zcela vymyšlená citace. Dostupné z: \url{https://merlin.fit.vutbr.cz} +%------------------------------------------------------------------------------- +\newpage +\section*{Sborník -- @Proceedings} +\label{pr-sbornik} +\noindent \textbf{Položky záznamu} + +\medskip + +\begin{tabularx}{0.95\linewidth}{>{\raggedright\arraybackslash}X X >{\raggedright\arraybackslash}X} + Prvek & Zápis v BibTeXu & Příklad\\\hline + \textcolor{red}{Tvůrce*} & \textcolor{red}{author} & \textcolor{red}{Čechmánek, Jan}\\ + \textcolor{red}{Editor*} & \textcolor{red}{editor} & \textcolor{red}{Čechmánek, Jan}\\ + Titul & title & Jak citovat\\ + \textcolor{blue}{Vedlejší názvy} & \textcolor{blue}{subtitle} & \textcolor{blue}{Citace monografické publikace}\\ + \textcolor{magenta}{Typ nosiče} & \textcolor{magenta}{howpublished} & \textcolor{magenta}{online}\\ + Vydání & edition & 1\\ + \textcolor{blue}{Další tvůrce} & \textcolor{blue}{contributory} & \textcolor{blue}{Přeložil Jan NOVÁK}\\ + Místo vydání & address & Brno\\ + Nakladatel & publisher & Fakulta informačních technologií VUT v Brně\\ + Měsíc vydání & month & 2\\ + Rok vydání & year & 2020\\ + Svazek & volume & 4\\ + Číslo svazku & number & 24\\ + Rozsah příspěvku & pages & 8-21\\ + \textcolor{magenta}{Revize} & \textcolor{magenta}{revised} & \textcolor{magenta}{revidováno 12. 2. 2020}\\ + \textcolor{magenta}{Datum citování} & \textcolor{magenta}{cited} & \textcolor{magenta}{2020-02-12}\\ + Edice & series & Návody k tvorbě prací\\ + Číslo edice & editionnumber & 2\\ + \textcolor{magenta}{Identifikátor digitálního objektu} & \textcolor{magenta}{doi} & \textcolor{magenta}{10.1000/BC1.0}\\ + Standardní číslo & isbn nebo issn & 01-234-5678-9\\ + \textcolor{red}{Poznámky} & \textcolor{red}{note} & \textcolor{red}{Toto je zcela vymyšlná citace}\\ + \textcolor{magenta}{Dostupnost a přístup} & \textcolor{magenta}{url} & \textcolor{magenta}{https://merlin.fit.vutbr.cz} +\end{tabularx} + +*Uvádí se buď autor, nebo editor. + +\bigskip + +\noindent \textbf{Bibliografická citace} + +\medskip + +\noindent \textsc{Čechmánek}, J. \textit{Jak citovat: Citace sborníku} [online]. 1. vyd. Přeložil Jan NOVÁK. +Brno: Fakulta informačních technologií VUT v Brně, únor 2020, sv. 4, č. 24, s. 8–21, revidováno 12. 2. 2020 [cit. 2020-02-12]. Návody k tvorbě prací, č. 2. DOI: 10.1000/BC1.0. ISBN 01-234-5678-9. Toto je zcela vymyšlená citace. Dostupné z: \url{https://merlin.fit.vutbr.cz} +%------------------------------------------------------------------------------- +\newpage +\section*{Článek ve sborníku nebo kapitola v knize -- @InProceedings, @InCollection, @Conference, @InBook} +\label{pr-kapitola} +\noindent \textbf{Položky záznamu} + +\medskip + +\begin{tabularx}{0.95\linewidth}{X X >{\raggedright\arraybackslash}X} + Prvek & Zápis v BibTeXu & Příklad\\\hline + Tvůrce & author & John von Doe\\ + Název příspěvku & title & Jak citovat\\ + \textcolor{blue}{Vedlejší názvy} & \textcolor{blue}{subtitle} & \textcolor{blue}{Citace článku}\\ + Jméno tvůrce mateřského dokumentu & editor nebo organisation & Smith, Peter\\ + Název mateřského dokumentu & booktitle & Sborník konference o~tvorbě prací\\ + \textcolor{blue}{Vedlejší názvy mateřského dokumentu} & \textcolor{blue}{booksubtitle} & \textcolor{blue}{Formální náležitosti}\\ + \textcolor{magenta}{Typ nosiče} & \textcolor{magenta}{howpublished} & \textcolor{magenta}{online}\\ + Vydání & edition & 1\\ + Verze & version & verze 1.0\\ + \textcolor{blue}{Další původce mateřského dokumentu} & \textcolor{blue}{contributory} & \textcolor{blue}{Přeložil Jan NOVÁK}\\ + Místo vydání & address & Brno\\ + Nakladatel & publisher & Fakulta informačních technologií VUT v Brně\\ + Měsíc & month & 2\\ + Rok & year & 2020\\ + Svazek & volume & 4\\ + Číslo svazku & number & 24\\ + \textcolor{blue}{Kapitola} & \textcolor{blue}{chapter} & \textcolor{blue}{5}\\ + Rozsah příspěvku & pages & 8-21\\ + Revize & revised & revidováno 12. 2. 2020\\ + \textcolor{magenta}{Datum citování} & \textcolor{magenta}{cited} & \textcolor{magenta}{2020-02-12}\\ + Edice & series & Návody k tvorbě prací\\ + Číslo edice & editionnumber & 2\\ + Standardní číslo & isbn nebo issn & 1234-5678\\ + \textcolor{red}{Poznámky} & \textcolor{red}{note} & \textcolor{red}{Toto je zcela vymyšlená citace}\\ + \textcolor{magenta}{Dostupnost a přístup} & \textcolor{magenta}{url} & \textcolor{magenta}{https://merlin.fit.vutbr.cz}\\ +\end{tabularx} + +\bigskip + +\noindent \textbf{Bibliografická citace}\\ +\textsc{Doe}, J. Jak citovat: Citace článku. +In: \textsc{Smith}, P., ed. \textit{Sborník konference o tvorbě prací: Formální náležitosti} [online]. 1. vyd., verze 1.0. Přeložil Jan NOVÁK. Brno: Fakulta informačních technologií VUT v Brně, únor 2020, sv. 4, č. 24, kap. 5, s. 8–21, revidováno 12. 2. 2020 [cit. 2020-02-12]. Návody k tvorbě prací, č. 2. ISSN 1234-5678. Toto je zcela vymyšlená citace. Dostupné z: \url{https://merlin.fit.vutbr.cz} +%------------------------------------------------------------------------------- +\newpage +\section*{Manuál, dokumentace, technická zpráva a nepublikované materiály -- @Manual, @TechReport, @Unpublished} +\label{pr-manual} +\noindent \textbf{Položky záznamu} + +\medskip + +\begin{tabularx}{0.95\linewidth}{X X >{\raggedright\arraybackslash}X} + Prvek & Zápis v BibTeXu & Příklad\\\hline + Tvůrce (osoba nebo organizace) & author & Fakulta informačních technologií VUT v Brně\\ + Titul & title & Manuál k tvorbě prací\\ + \textcolor{blue}{Vedlejší názvy} & \textcolor{blue}{subtitle} & \textcolor{blue}{Citace manuálu}\\ + \textcolor{magenta}{Typ nosiče} & \textcolor{magenta}{howpublished} & \textcolor{magenta}{online}\\ + \textcolor{red}{Typ dokumantu} & \textcolor{red}{type} & \textcolor{red}{Uživatelský manuál}\\ + \textcolor{red}{Číslo dokumentu} & \textcolor{red}{number} & \textcolor{red}{3}\\ + Vydání & edition & 1\\ + \textcolor{blue}{Další tvůrce} & \textcolor{blue}{contributory} & \textcolor{blue}{Editoval Jan NOVÁK}\\ + Místo vydání & address & Brno\\ + Organizace nebo instituce & organization nebo institution & Fakulta informačních technologií VUT v Brně\\ + Měsíc vydání & month & 2\\ + Rok vydání & year & 2020\\ + Revize & revised & revidováno 12. 2. 2020\\ + \textcolor{magenta}{Datum citování} & \textcolor{magenta}{cited} & \textcolor{magenta}{2020-02-12}\\ + \textcolor{red}{Rozsah} & \textcolor{red}{pages} & \textcolor{red}{220}\\ + \textcolor{red}{Poznámky} & \textcolor{red}{note} & \textcolor{red}{Toto je zcela vymyšlená citace}\\ + \textcolor{magenta}{Dostupnost a přístup} & \textcolor{magenta}{url} & \textcolor{magenta}{https://merlin.fit.vutbr.cz}\\ +\end{tabularx} + +\bigskip + +\noindent \textbf{Bibliografická citace} + +\medskip + +\noindent \textsc{Fakulta informačních technologií VUT v Brně}. \textit{Manuál k tvorbě prací: Citace manuálu} [online]. Uživatelský manuál 3, 1. vyd. Editoval Jan NOVÁK. +Brno: Fakulta informačních technologií VUT v Brně, únor 2020, revidováno 12. 2. 2020 [cit. 2020-02-12]. 220 s. Toto je zcela vymyšlená citace. Dostupné z: \url{https://merlin.fit.vutbr.cz} +%------------------------------------------------------------------------------- +\newpage +\section*{Akademická práce -- @BachelorsThesis, @MastersThesis, \\@PhdThesis, @Thesis} +\label{pr-thesis} +\noindent \textbf{Položky záznamu} + +\medskip + +\begin{tabularx}{0.95\linewidth}{X X >{\raggedright\arraybackslash}X} + Prvek & Zápis v BibTeXu & Příklad\\\hline + Tvůrce & author & Fakulta informačních technologií VUT v Brně\\ + Titul & title & BiBTeX styl pro ČSN ISO 690 a ČSN ISO 690-2\\ + \textcolor{blue}{Vedlejší názvy} & \textcolor{blue}{subtitle} & \\ + \textcolor{magenta}{Typ nosiče} & \textcolor{magenta}{howpublished} & \textcolor{magenta}{online}\\ + \textcolor{red}{Typ dokumantu} & \textcolor{red}{type} & \textcolor{red}{Diplomová práce}\\ + Místo vydání & address nebo location & Brno\\ + Škola & school & Vysoké učení technické v~Brně, Fakulta informačních technologií\\ + Rok vydání & year & 2020\\ + \textcolor{magenta}{Datum citování} & \textcolor{magenta}{cited} & \textcolor{magenta}{2020-02-12}\\ + \textcolor{red}{Rozsah} & \textcolor{red}{pages} & \textcolor{red}{220}\\ + \textcolor{red}{Rozsah příloh} & \textcolor{red}{inserts} & \textcolor{red}{20}\\ + Standardní číslo & isbn & 01-234-5678-9\\ + \textcolor{red}{Vedoucí práce} & \textcolor{red}{Supervisor} & \textcolor{red}{Dytrych, Jaroslav}\\ + \textcolor{red}{Poznámky} & \textcolor{red}{note} & \textcolor{red}{Toto je zcela vymyšlená citace}\\ + \textcolor{magenta}{Dostupnost a přístup} & \textcolor{magenta}{url} & \textcolor{magenta}{https://www.fit.vut.cz/\-study/theses}\\ +\end{tabularx} + +\bigskip + +\noindent \textbf{Bibliografická citace} + +\medskip + +\noindent \textsc{Novák}, J. \textit{BiBTeX styl pro ČSN ISO 690 a ČSN ISO 690-2} [online]. Brno, CZ, 2020. [cit. 2020-02-12]. 80 s., 20. s. příl. Diplomová práce. Vysoké učení technické v Brně, Fakulta informačních technologií. ISBN 01-2345-678-9. Vedoucí práce \textsc{Dytrych}, J. Toto je zcela vymyšlená citace. Dostupné z: \url{https://www.fit.vut.cz/study/theses} +%------------------------------------------------------------------------------- +\newpage +\section*{Webová stránka -- @Webpage} +\label{pr-webpage} +\noindent \textbf{Položky záznamu} + +\medskip + +\begin{tabularx}{0.95\linewidth}{>{\raggedright\arraybackslash}X X >{\raggedright\arraybackslash}X} + Prvek & Zápis v BibTeXu & Příklad\\\hline + Tvůrce & author & Nováková, Jana\\ + Název příspěvku & secondarytitle & Citace příspěvku\\ + Název stránky & title & Web tvorby prací\\ + \textcolor{blue}{Vedlejší název stránky} & \textcolor{blue}{subtitle} & \\ + \textcolor{magenta}{Typ nosiče} & \textcolor{magenta}{howpublished} & \textcolor{magenta}{online}\\ + \textcolor{blue}{Další tvůrce} & \textcolor{blue}{contributory} & \textcolor{blue}{Editoval Jan NOVÁK}\\ + \textcolor{red}{Verze} & \textcolor{red}{version} & \textcolor{red}{Verze 1.0}\\ + \textcolor{red}{Místo vydání} & \textcolor{red}{address} & \textcolor{red}{Brno}\\ + \textcolor{red}{Vydavatel} & \textcolor{red}{publisher} & \textcolor{red}{Fakulta informačních technologií VUT v Brně}\\ + Den & day & 12\\ + Měsíc vydání & month & 2\\ + Rok vydání & year & 2020\\ + \textcolor{blue}{Čas publikování} & \textcolor{blue}{time} & \textcolor{blue}{14:00}\\ + Revize & revised & Revidováno 12. 2. 2020\\ + \textcolor{magenta}{Identifikátor digitálního objektu} & \textcolor{magenta}{doi} & \textcolor{magenta}{10.1000/BC1.0}\\ + Standardní číslo & issn & 1234-5678\\ + \textcolor{red}{Poznámky} & \textcolor{red}{note} & \textcolor{red}{Toto je zcela vymyšlená citace}\\ + Dostupnost a přístup & url & https://merlin.fit.vutbr.cz\\ + Cesta & path & Domů; Umění; Umění citace +\end{tabularx} + +\bigskip + +\noindent \textbf{Bibliografická citace} + +\medskip + +\noindent \textsc{Nováková}, J. Citace příspěvku. \textit{Web tvorby prací} [online]. Editoval Jan NOVÁK. Verze 1.0. Brno: Fakulta informačních technologií VUT v Brně, 2. března 1998 14:10. Revidováno 12. 2. 2020 [cit. 2020-02-12]. DOI: 10.1000/BC1.0. ISSN 1234-5678. Toto je zcela vymyšlená citace. Dostupné z: \url{https://merlin.fit.vutbr.cz} Path: Domů; Umění; Umění citace. +%------------------------------------------------------------------------------- +\newpage +\section*{Webová doména -- @Website} +\label{pr-website} +\noindent \textbf{Položky záznamu} + +\medskip + +\begin{tabularx}{0.95\linewidth}{>{\raggedright\arraybackslash}X X >{\raggedright\arraybackslash}X} + Prvek & Zápis v BibTeXu & Příklad\\\hline + Tvůrce (osoba nebo organizace) & author & Nováková, Jana\\ + Název webu & title & Web tvorby prací\\ + \textcolor{blue}{Vedlejší název webu} & \textcolor{blue}{subtitle} & \\ + \textcolor{magenta}{Typ nosiče} & \textcolor{magenta}{howpublished} & \textcolor{magenta}{online}\\ + \textcolor{blue}{Další tvůrce} & \textcolor{blue}{contributory} & \textcolor{blue}{Editoval Jan NOVÁK}\\ + \textcolor{red}{Verze} & \textcolor{red}{version} & \textcolor{red}{Verze 1.0}\\ + \textcolor{red}{Místo vydání} & \textcolor{red}{address} & \textcolor{red}{Brno}\\ + \textcolor{red}{Vydavatel} & \textcolor{red}{publisher} & \textcolor{red}{Fakulta informačních technologií VUT v Brně}\\ + \textcolor{blue}{Den} & \textcolor{blue}{day} & \textcolor{blue}{12}\\ + \textcolor{blue}{Měsíc vydání} & \textcolor{blue}{month} & \textcolor{blue}{2}\\ + Rok vydání & year & 2020\\ + \textcolor{blue}{Čas publikování} & \textcolor{blue}{time} & \textcolor{blue}{14:00}\\ + Revize & revised & Revidováno 12. 2. 2020\\ + Datum & citování & cited 2020-02-12\\ + \textcolor{magenta}{Identifikátor digitálního objektu} & \textcolor{magenta}{doi} & \textcolor{magenta}{10.1000/BC1.0}\\ + Standardní číslo & issn & 1234-5678\\ + \textcolor{red}{Poznámky} & \textcolor{red}{note} & \textcolor{red}{Toto je zcela vymyšlená citace}\\ + Dostupnost a přístup & url & https://merlin.fit.vutbr.cz +\end{tabularx} + +\bigskip + +\noindent \textbf{Bibliografická citace} + +\medskip + +\noindent \textsc{Nováková}, J. \textit{Web tvorby prací} [online]. Editoval Jan NOVÁK. Verze 1.0. Brno: Fakulta informačních technologií VUT v Brně, 2. března 1998 14:10. Revidováno 12. 2. 2020 [cit. 2020-02-12]. DOI: 10.1000/BC1.0. ISSN 1234-5678. Toto je zcela vymyšlená citace. Dostupné z: \url{https://merlin.fit.vutbr.cz}. + +% Pro kompilaci po částech (viz projekt.tex) nutno odkomentovat +%\end{document} diff --git a/overleaf/projekt.tex b/overleaf/projekt.tex new file mode 100644 index 0000000..f41d009 --- /dev/null +++ b/overleaf/projekt.tex @@ -0,0 +1,379 @@ +%============================================================================== +% Tento soubor použijte jako základ +% This file should be used as a base for the thesis +% Autoři / Authors: 2008 Michal Bidlo, 2022 Jaroslav Dytrych +% Kontakt pro dotazy a připomínky: sablona@fit.vutbr.cz +% Contact for questions and comments: sablona@fit.vutbr.cz +%============================================================================== +% kódování: UTF-8 (zmena prikazem iconv, recode nebo cstocs) +% encoding: UTF-8 (you can change it by command iconv, recode or cstocs) +%------------------------------------------------------------------------------ +% zpracování / processing: make, make pdf, make clean +%============================================================================== +% Soubory, které je nutné upravit nebo smazat: / Files which have to be edited or deleted: +% projekt-20-literatura-bibliography.bib - literatura / bibliography +% projekt-01-kapitoly-chapters.tex - obsah práce / the thesis content +% projekt-01-kapitoly-chapters-en.tex - obsah práce v angličtině / the thesis content in English +% projekt-30-prilohy-appendices.tex - přílohy / appendices +% projekt-30-prilohy-appendices-en.tex - přílohy v angličtině / appendices in English +%============================================================================== +%\documentclass[]{fitthesis} % bez zadání - pro začátek práce, aby nebyl problém s překladem +\documentclass[english]{fitthesis} % without assignment - for the work start to avoid compilation problem +%\documentclass[zadani]{fitthesis} % odevzdani do IS VUT a/nebo tisk s barevnými odkazy - odkazy jsou barevné +%\documentclass[english,zadani]{fitthesis} % for submission to the IS VUT and/or print with color links - links are color +%\documentclass[zadani,print]{fitthesis} % pro černobílý tisk - odkazy jsou černé +%\documentclass[english,zadani,print]{fitthesis} % for the black and white print - links are black +%\documentclass[zadani,cprint]{fitthesis} % pro barevný tisk - odkazy jsou černé, znak VUT barevný +%\documentclass[english,zadani,cprint]{fitthesis} % for the print - links are black, logo is color +% * Je-li práce psaná v anglickém jazyce, je zapotřebí u třídy použít +% parametr english následovně: +% If thesis is written in English, it is necessary to use +% parameter english as follows: +% \documentclass[english]{fitthesis} +% * Je-li práce psaná ve slovenském jazyce, je zapotřebí u třídy použít +% parametr slovak následovně: +% If the work is written in the Slovak language, it is necessary +% to use parameter slovak as follows: +% \documentclass[slovak]{fitthesis} +% * Je-li práce psaná v anglickém jazyce se slovenským abstraktem apod., +% je zapotřebí u třídy použít parametry english a enslovak následovně: +% If the work is written in English with the Slovak abstract, etc., +% it is necessary to use parameters english and enslovak as follows: +% \documentclass[english,enslovak]{fitthesis} + +% Základní balíčky jsou dole v souboru šablony fitthesis.cls +% Basic packages are at the bottom of template file fitthesis.cls +% zde můžeme vložit vlastní balíčky / you can place own packages here + + +% Pro seznam zkratek lze využít balíček Glossaries - nutno odkomentovat i níže a při kompilaci z konzoly i v Makefile (plnou verzi pro Perl, nebo lite) +% The Glossaries package can be used for the list of abbreviations - it is necessary to uncomment also below. When compiling from the console also in the Makefile (full version for Perl or lite) +%\usepackage{glossaries} +%\usepackage{glossary-superragged} +%\makeglossaries + +% Nastavení cesty k obrázkům +% Setting of a path to the pictures +%\graphicspath{{obrazky-figures/}{./obrazky-figures/}} +%\graphicspath{{obrazky-figures/}{../obrazky-figures/}} + +%---rm--------------- +\renewcommand{\rmdefault}{lmr}%zavede Latin Modern Roman jako rm / set Latin Modern Roman as rm +%---sf--------------- +\renewcommand{\sfdefault}{qhv}%zavede TeX Gyre Heros jako sf +%---tt------------ +\renewcommand{\ttdefault}{lmtt}% zavede Latin Modern tt jako tt + +% vypne funkci šablony, která automaticky nahrazuje uvozovky, +% aby nebyly prováděny nevhodné náhrady v popisech API apod. +% disables function of the template which replaces quotation marks +% to avoid unnecessary replacements in the API descriptions etc. +\csdoublequotesoff + +\usepackage{url} + +% ======================================================================= +% balíček "hyperref" vytváří klikací odkazy v pdf, pokud tedy použijeme pdflatex +% problém je, že balíček hyperref musí být uveden jako poslední, takže nemůže +% být v šabloně +% "hyperref" package create clickable links in pdf if you are using pdflatex. +% Problem is that this package have to be introduced as the last one so it +% can not be placed in the template file. +\ifWis +\ifx\pdfoutput\undefined % nejedeme pod pdflatexem / we are not using pdflatex +\else + \usepackage{color} + \usepackage[unicode,colorlinks,hyperindex,plainpages=false,pdftex]{hyperref} + \definecolor{hrcolor-ref}{RGB}{223,52,30} + \definecolor{hrcolor-cite}{HTML}{2F8F00} + \definecolor{hrcolor-urls}{HTML}{092EAB} + \hypersetup{ + linkcolor=hrcolor-ref, + citecolor=hrcolor-cite, + filecolor=magenta, + urlcolor=hrcolor-urls + } + \def\pdfBorderAttrs{/Border [0 0 0] } % bez okrajů kolem odkazů / without margins around links + \pdfcompresslevel=9 +\fi +\else % pro tisk budou odkazy, na které se dá klikat, černé / for the print clickable links will be black +\ifx\pdfoutput\undefined % nejedeme pod pdflatexem / we are not using pdflatex +\else + \usepackage{color} + \usepackage[unicode,colorlinks,hyperindex,plainpages=false,pdftex,urlcolor=black,linkcolor=black,citecolor=black]{hyperref} + \definecolor{links}{rgb}{0,0,0} + \definecolor{anchors}{rgb}{0,0,0} + \def\AnchorColor{anchors} + \def\LinkColor{links} + \def\pdfBorderAttrs{/Border [0 0 0] } % bez okrajů kolem odkazů / without margins around links + \pdfcompresslevel=9 +\fi +\fi +% Řešení problému, kdy klikací odkazy na obrázky vedou za obrázek +% This solves the problems with links which leads after the picture +\usepackage[all]{hypcap} + + +% Informace o práci/projektu / Information about the thesis +%--------------------------------------------------------------------------- +\projectinfo{ + %Prace / Thesis + project={BP}, %typ práce BP/SP/DP/DR / thesis type (SP = term project) + year={2023}, % rok odevzdání / year of submission + date=\today, % datum odevzdání / submission date + %Nazev prace / thesis title + title.cs={Laserová liniová profilometrie s využitím kamery}, % název práce v češtině či slovenštině (dle zadání) / thesis title in czech language (according to assignment) + title.en={Laser Line Profilometry}, % název práce v angličtině / thesis title in english + %title.length={14.5cm}, % nastavení délky bloku s titulkem pro úpravu zalomení řádku (lze definovat zde nebo níže) / setting the length of a block with a thesis title for adjusting a line break (can be defined here or below) + %sectitle.length={14.5cm}, % nastavení délky bloku s druhým titulkem pro úpravu zalomení řádku (lze definovat zde nebo níže) / setting the length of a block with a second thesis title for adjusting a line break (can be defined here or below) + %dectitle.length={14.5cm}, % nastavení délky bloku s titulkem nad prohlášením pro úpravu zalomení řádku (lze definovat zde nebo níže) / setting the length of a block with a thesis title above declaration for adjusting a line break (can be defined here or below) + %Autor / Author + author.name={Jan}, % jméno autora / author name + author.surname={Kugler}, % příjmení autora / author surname + %author.title.p={Bc.}, % titul před jménem (nepovinné) / title before the name (optional) + %author.title.a={Ph.D.}, % titul za jménem (nepovinné) / title after the name (optional) + %Ustav / Department + department={UITS}, % doplňte příslušnou zkratku dle ústavu na zadání: UPSY/UIFS/UITS/UPGM / fill in appropriate abbreviation of the department according to assignment: UPSY/UIFS/UITS/UPGM + % Školitel / supervisor + supervisor.name={Petr}, % jméno školitele / supervisor name + supervisor.surname={Malaník}, % příjmení školitele / supervisor surname + supervisor.title.p={Ing.}, %titul před jménem (nepovinné) / title before the name (optional) + supervisor.title.a={}, %titul za jménem (nepovinné) / title after the name (optional) + % Klíčová slova / keywords + keywords.cs={Sem budou zapsána jednotlivá klíčová slova v českém (slovenském) jazyce, oddělená čárkami.}, % klíčová slova v českém či slovenském jazyce / keywords in czech or slovak language + keywords.en={Sem budou zapsána jednotlivá klíčová slova v anglickém jazyce, oddělená čárkami.}, % klíčová slova v anglickém jazyce / keywords in english + %keywords.en={Here, individual keywords separated by commas will be written in English.}, + % Abstrakt / Abstract + abstract.cs={Do tohoto odstavce bude zapsán výtah (abstrakt) práce v českém (slovenském) jazyce.}, % abstrakt v českém či slovenském jazyce / abstract in czech or slovak language + abstract.en={A profilometer is a device used to measure the geometry of a surface. They vary significantly in size, precision and speed of measurement, and price. The aim of this thesis is to create a software library and end-user application for a simple laser-camera setup, evaluate its theoretical and practical limits, and compare them with commercial alternatives.}, % abstrakt v anglickém jazyce / abstract in english + %abstract.en={An abstract of the work in English will be written in this paragraph.}, + % Prohlášení (u anglicky psané práce anglicky, u slovensky psané práce slovensky; u projektové praxe lze zakomentovat) / Declaration (for thesis in english should be in english; for project practice can be commented out) + declaration={Prohlašuji, že jsem tuto bakalářskou práci vypracoval samostatně pod vedením pana X... +Další informace mi poskytli... +Uvedl jsem všechny literární prameny, publikace a další zdroje, ze kterých jsem čerpal.}, + %declaration={I hereby declare that this Bachelor's thesis was prepared as an original work by the author under the supervision of Mr. X +% The supplementary information was provided by Mr. Y +% I have listed all the literary sources, publications and other sources, which were used during the preparation of this thesis.}, + % Poděkování (nepovinné, nejlépe v jazyce práce; nechcete-li, zakomentujte pro skrytí nadpisu) / Acknowledgement (optional, ideally in the language of the thesis; comment out for hiding including heading) + acknowledgment={V této sekci je možno uvést poděkování vedoucímu práce a těm, kteří poskytli odbornou pomoc +(externí zadavatel, konzultant apod.).}, + %acknowledgment={Here it is possible to express thanks to the supervisor and to the people which provided professional help +%(external submitter, consultant, etc.).}, + % Rozšířený abstrakt (cca 3 normostrany) - lze definovat zde nebo níže / Extended abstract (approximately 3 standard pages) - can be defined here or below + %extendedabstract={Do tohoto odstavce bude zapsán rozšířený výtah (abstrakt) práce v českém (slovenském) jazyce.}, + %extabstract.odd={true}, % Začít rozšířený abstrakt na liché stránce? / Should extended abstract start on the odd page? + %faculty={FIT}, % FIT/FEKT/FSI/FA/FCH/FP/FAST/FAVU/USI/DEF + faculty.cs={Fakulta informačních technologií}, % Fakulta v češtině - pro využití této položky výše zvolte fakultu DEF / Faculty in Czech - for use of this entry select DEF above + faculty.en={Faculty of Information Technology}, % Fakulta v angličtině - pro využití této položky výše zvolte fakultu DEF / Faculty in English - for use of this entry select DEF above + department.cs={Ústav matematiky}, % Ústav v češtině - pro využití této položky výše zvolte ústav DEF nebo jej zakomentujte / Department in Czech - for use of this entry select DEF above or comment it out + department.en={Institute of Mathematics} % Ústav v angličtině - pro využití této položky výše zvolte ústav DEF nebo jej zakomentujte / Department in English - for use of this entry select DEF above or comment it out +} + +% Rozšířený abstrakt (cca 3 normostrany) - lze definovat zde nebo výše / Extended abstract (approximately 3 standard pages) - can be defined here or above +%\extendedabstract{Do tohoto odstavce bude zapsán výtah (abstrakt) práce v českém (slovenském) jazyce.} +% Začít rozšířený abstrakt na liché stránce? / Should extended abstract start on the odd page? +%\extabstractodd{true} + +% nastavení délky bloku s titulkem pro úpravu zalomení řádku - lze definovat zde nebo výše / setting the length of a block with a thesis title for adjusting a line break - can be defined here or above +%\titlelength{14.5cm} +% nastavení délky bloku s druhým titulkem pro úpravu zalomení řádku - lze definovat zde nebo výše / setting the length of a block with a second thesis title for adjusting a line break - can be defined here or above +%\sectitlelength{14.5cm} +% nastavení délky bloku s titulkem nad prohlášením pro úpravu zalomení řádku - lze definovat zde nebo výše / setting the length of a block with a thesis title above declaration for adjusting a line break - can be defined here or above +%\dectitlelength{14.5cm} + +% řeší první/poslední řádek odstavce na předchozí/následující stránce +% solves first/last row of the paragraph on the previous/next page +\clubpenalty=10000 +\widowpenalty=10000 + +% checklist +\newlist{checklist}{itemize}{1} +\setlist[checklist]{label=$\square$} + +% Kompilace po částech (rychlejší, ale v náhledu nemusí být vše aktuální) +% Compilation piecewise (faster, but not all parts in preview will be up-to-date) +% Další informace viz / For more information see https://www.overleaf.com/learn/latex/Multi-file_LaTeX_projects +% \usepackage{subfiles} + +% Nechcete-li, aby se u oboustranného tisku roztahovaly mezery pro zaplnění stránky, odkomentujte následující řádek / If you do not want enlarged spacing for filling of the pages in case of duplex printing, uncomment the following line +% \raggedbottom + + \usepackage{subcaption} + + +\begin{document} + % Vysazeni titulnich stran / Typesetting of the title pages + % ---------------------------------------------- + \maketitle + % Obsah + % ---------------------------------------------- + \setlength{\parskip}{0pt} + + {\hypersetup{hidelinks}\tableofcontents} + + % Seznam obrazku a tabulek (pokud prace obsahuje velke mnozstvi obrazku, tak se to hodi) + % List of figures and list of tables (if the thesis contains a lot of pictures, it is good) + \ifczech + \renewcommand\listfigurename{Seznam obrázků} + \fi + \ifslovak + \renewcommand\listfigurename{Zoznam obrázkov} + \fi + {\hypersetup{hidelinks}\listoffigures} + + \ifczech + \renewcommand\listtablename{Seznam tabulek} + \fi + \ifslovak + \renewcommand\listtablename{Zoznam tabuliek} + \fi + % {\hypersetup{hidelinks}\listoftables} + + % Seznam zkratek / List of abbreviations + %\ifczech + % \renewcommand*\glossaryname{Seznam zkratek}% + % \renewcommand*\entryname{Zkratka} + % \renewcommand*\descriptionname{Význam} + %\fi + %\ifslovak + % \renewcommand*\glossaryname{Zoznam skratiek}% + % \renewcommand*\entryname{Skratka} + % \renewcommand*\descriptionname{Význam} + %\fi + %\ifenglish + % \renewcommand*\glossaryname{List of abbreviations}% + % \renewcommand*\entryname{Abbreviation} + % \renewcommand*\descriptionname{Meaning} + %\fi + % Definice zkratek - z textu se odkazují např. \Gls{TF–IDF} + % Definition of abbreviations - referred from the text e.g. \Gls{TF–IDF} + %\newglossaryentry{TF–IDF} + %{ + % name={TF–IDF}, + % description={Term Frequency-Inverse Document Frequency} + %} + % + %\setglossarystyle{superragged} + %\printglossaries + + + \ifODSAZ + \setlength{\parskip}{0.5\bigskipamount} + \else + \setlength{\parskip}{0pt} + \fi + + % vynechani stranky v oboustrannem rezimu + % Skip the page in the two-sided mode + \iftwoside + \cleardoublepage + \fi + + % Text prace / Thesis text + % ---------------------------------------------- + \ifenglish + \input{projekt-01-kapitoly-chapters-en} + \else + \input{projekt-01-kapitoly-chapters} + \fi + + % Kompilace po částech (viz výše, nutno odkomentovat a zakomentovat input výše) + % Compilation piecewise (see above, it is necessary to uncomment it and comment out input above) + %\subfile{chapters/projekt-01-uvod-introduction} + % ... + %\subfile{chapters/projekt-05-zaver-conclusion} + + % Pouzita literatura / Bibliography + % ---------------------------------------------- +\ifslovak + \makeatletter + \def\@openbib@code{\addcontentsline{toc}{chapter}{Literatúra}} + \makeatother + \bibliographystyle{bib-styles/Pysny/skplain} +\else + \ifczech + \makeatletter + \def\@openbib@code{\addcontentsline{toc}{chapter}{Literatura}} + \makeatother + \bibliographystyle{bib-styles/Pysny/czplain} + \else + \makeatletter + \def\@openbib@code{\addcontentsline{toc}{chapter}{Bibliography}} + \makeatother + \bibliographystyle{bib-styles/Pysny/enplain} + % \bibliographystyle{alpha} + \fi +\fi + \begin{flushleft} + \bibliography{projekt-20-literatura-bibliography} + \end{flushleft} + + % vynechani stranky v oboustrannem rezimu + % Skip the page in the two-sided mode + \iftwoside + \cleardoublepage + \fi + + % Prilohy / Appendices + % --------------------------------------------- + \appendix +\ifczech + \renewcommand{\appendixpagename}{Přílohy} + \renewcommand{\appendixtocname}{Přílohy} + \renewcommand{\appendixname}{Příloha} +\fi +\ifslovak + \renewcommand{\appendixpagename}{Prílohy} + \renewcommand{\appendixtocname}{Prílohy} + \renewcommand{\appendixname}{Príloha} +\fi +% \appendixpage + +% vynechani stranky v oboustrannem rezimu +% Skip the page in the two-sided mode +%\iftwoside +% \cleardoublepage +%\fi + +\ifslovak +% \section*{Zoznam príloh} +% \addcontentsline{toc}{section}{Zoznam príloh} +\else + \ifczech +% \section*{Seznam příloh} +% \addcontentsline{toc}{section}{Seznam příloh} + \else +% \section*{List of Appendices} +% \addcontentsline{toc}{section}{List of Appendices} + \fi +\fi + \startcontents[chapters] + \setlength{\parskip}{0pt} + % seznam příloh / list of appendices + % \printcontents[chapters]{l}{0}{\setcounter{tocdepth}{2}} + + \ifODSAZ + \setlength{\parskip}{0.5\bigskipamount} + \else + \setlength{\parskip}{0pt} + \fi + + % vynechani stranky v oboustrannem rezimu + \iftwoside + \cleardoublepage + \fi + + % Přílohy / Appendices + \ifenglish + \input{projekt-30-prilohy-appendices-en} + \else + \input{projekt-30-prilohy-appendices} + \fi + + % Kompilace po částech (viz výše, nutno odkomentovat) + % Compilation piecewise (see above, it is necessary to uncomment it) + %\subfile{projekt-30-prilohy-appendices} + + + +\end{document} diff --git a/overleaf/template-fig/VUT_symbol_barevne_CMYK_CZ.eps b/overleaf/template-fig/VUT_symbol_barevne_CMYK_CZ.eps new file mode 100644 index 0000000..abf35a7 Binary files /dev/null and b/overleaf/template-fig/VUT_symbol_barevne_CMYK_CZ.eps differ diff --git a/overleaf/template-fig/VUT_symbol_barevne_CMYK_CZ.pdf b/overleaf/template-fig/VUT_symbol_barevne_CMYK_CZ.pdf new file mode 100644 index 0000000..68d32e6 --- /dev/null +++ b/overleaf/template-fig/VUT_symbol_barevne_CMYK_CZ.pdf @@ -0,0 +1,1555 @@ +%PDF-1.5 % +1 0 obj <>/OCGs[5 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream + + + + + application/pdf + + + VUT_symbol_barevne_CMYK_CZ + + + + + 2015-09-21T11:46:42+02:00 + 2015-09-21T11:46:42+02:00 + 2015-09-21T11:46:42+02:00 + Adobe Illustrator CS6 (Macintosh) + + + + 256 + 256 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8Ahmad9wdirsVdirsVdirs VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsV dirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVd irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi rsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir sVdirsVdirsVTiDyb5vuII54ND1CaCZRJFLHazsjowqrKwWhBG4IyQxy7i4cu0dNEkHJAEf0h+tf /gbzt/1L+pf9Ic//ADRh8OXcWP8AKel/1XH/AKaP63f4G87f9S/qX/SHP/zRj4cu4r/Kel/1XH/p o/rd/gbzt/1L+pf9Ic//ADRj4cu4r/Kel/1XH/po/rd/gbzt/wBS/qX/AEhz/wDNGPhy7iv8p6X/ AFXH/po/rd/gbzt/1L+pf9Ic/wDzRj4cu4r/ACnpf9Vx/wCmj+t3+BvO3/Uv6l/0hz/80Y+HLuK/ ynpf9Vx/6aP63f4G87f9S/qX/SHP/wA0Y+HLuK/ynpf9Vx/6aP63f4G87f8AUv6l/wBIc/8AzRj4 cu4r/Kel/wBVx/6aP63f4G87f9S/qX/SHP8A80Y+HLuK/wAp6X/Vcf8Apo/rSaSOSKRo5FKSISro wIYMDQgg9CMg5oIIscluKXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX2D5G /wCUJ8v/APbNs/8AkwmbXH9I9z472n/jWX/hkv8AdFO8m4LsVdirsVdirsVdirsVdir4z8w/8d/U v+Yqf/k42ad9o0n9zD+qPuS/FyHYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F X2D5G/5Qny//ANs2z/5MJm1x/SPc+O9p/wCNZf8Ahkv90U7ybguxV2KuxV2KuxV2KuxV2KvjPzD/ AMd/Uv8AmKn/AOTjZp32jSf3MP6o+5L8XIdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi rsVdirsVfYPkb/lCfL//AGzbP/kwmbXH9I9z472n/jWX/hkv90U7ybguxV2KuxV2KuxV2KuxV2Kv jPzD/wAd/Uv+Yqf/AJONmnfaNJ/cw/qj7kvxch2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Ku xV2KuxV2KuxV7RoH/OQFhpehadpjaNLK1jaw2zSiZQGMMapyA4GleOZUdUQKr7XitV7KTy5Z5PEA 4pE8u833o/8A6GS07/qxzf8AI9f+aMP5s932/saP9Bs/9UH+l/a7/oZLTv8Aqxzf8j1/5ox/Nnu+ 39i/6DZ/6oP9L+13/QyWnf8AVjm/5Hr/AM0Y/mz3fb+xf9Bs/wDVB/pf2u/6GS07/qxzf8j1/wCa MfzZ7vt/Yv8AoNn/AKoP9L+13/QyWnf9WOb/AJHr/wA0Y/mz3fb+xf8AQbP/AFQf6X9rv+hktO/6 sc3/ACPX/mjH82e77f2L/oNn/qg/0v7Xf9DJad/1Y5v+R6/80Y/mz3fb+xf9Bs/9UH+l/a7/AKGS 07/qxzf8j1/5ox/Nnu+39i/6DZ/6oP8AS/td/wBDJad/1Y5v+R6/80Y/mz3fb+xf9Bs/9UH+l/ap 3f8Azjx+kLqa/wD8Qel9bdp/T+p8uPqkvxr64rSvhiNLY5px+13hxEPCvhFfV3f5ql/0LT/38f8A 05f9f8P5TzZ/6M/9q/2f/HXf9C0/9/H/ANOX/X/H8p5r/oz/ANq/2f8Ax13/AELT/wB/H/05f9f8 fynmv+jP/av9n/x13/QtP/fx/wDTl/1/x/Kea/6M/wDav9n/AMdd/wBC0/8Afx/9OX/X/H8p5r/o z/2r/Z/8dd/0LT/38f8A05f9f8fynmv+jP8A2r/Z/wDHXf8AQtP/AH8f/Tl/1/x/Kea/6M/9q/2f /HXf9C0/9/H/ANOX/X/H8p5r/oz/ANq/2f8Ax13/AELT/wB/H/05f9f8fynmv+jP/av9n/x13/Qt P/fx/wDTl/1/x/Kea/6M/wDav9n/AMdSjzb+RP8Ah7y5faz+nPrX1NA/ofVfT5VYLTl6z0+14ZXk 0/DG7czQe1H5jNHF4fDxdeK/968ozHesdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs Vdir7Xs/95IP+Ma/8RGbaPIPiWT6j71XJMHYq7FXYq7FXYq7FXYq7FXYqxH82/8AyXWt/wDGFP8A k6mUan6D8Pvdx2B/juP3/oL5RzXPrDsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs Vfa9n/vJB/xjX/iIzbR5B8SyfUfeq5Jg7FXYq7FXYq7FXYq7FXYq7FWI/m3/AOS61v8A4wp/ydTK NT9B+H3u47A/x3H7/wBBfKOa59YdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir7 Xs/95IP+Ma/8RGbaPIPiWT6j71XJMHYq7FXYql+qeYdC0lQdT1C2suX2RPKkZPyDEE/RkJTiOZcj BpMuX+7jKXuFpR/ys78v/wDq+2v/AAf9mQ/MQ73M/kTWf6nJ3/Kzvy//AOr7a/8AB/2Y/mId6/yJ rP8AU5O/5Wd+X/8A1fbX/g/7MfzEO9f5E1n+pyd/ys78v/8Aq+2v/B/2Y/mId6/yJrP9Tk7/AJWd +X//AFfbX/g/7MfzEO9f5E1n+pyYz+Zfn7ybqPkbVrKx1e3uLuaJVihRqsxEinbbwGVZ80ZRIBdn 2N2VqceqhKcJCIPP4F84ZhPpLsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVfa9n /vJB/wAY1/4iM20eQfEsn1H3quSYOxV2KvGfzZ/OK5sLuby/5ckCXMJKX2oChKN3ii7ch+03Y7Df MLPnN0HtOwfZ6OSIzZx6T9Mf0n9AeG3FxPcTPPcSPNPIeUksjFmYnuWNScxHuoQERQFAKeLJ2Kux V2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kvtez/3kg/4xr/xEZto 8g+JZPqPvVckwdiqS+dNZk0XypquqRbTW1u7QHqBKRxjJ/2ZGV5ZcMSXN7O0wzaiGM8pSF+7r9j4 +d3kdndizsSzMxqSTuSSc1b7EAAKDWKXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F XYq7FXYq7FXYq7FXYq7FX2vZ/wC8kH/GNf8AiIzbR5B8SyfUfeq5Jg7FWI/m3/5LrW/+MKf8nUyj U/Qfh97uOwP8dx+/9BfKOa59YdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVd irsVdirsVdirsVdir7Xs/wDeSD/jGv8AxEZto8g+JZPqPvVckwdirEfzb/8AJda3/wAYU/5OplGp +g/D73cdgf47j9/6C+Uc1z6w7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F XYq7FXYq7FXYq7FX2vZ/7yQf8Y1/4iM20eQfEsn1H3quSYOxViP5t/8Akutb/wCMKf8AJ1Mo1P0H 4fe7jsD/AB3H7/0F8o5rn1h2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Ku xV2KuxV2KuxV2Kvtez/3kg/4xr/xEZto8g+JZPqPvVckwdirEfzb/wDJda3/AMYU/wCTqZRqfoPw +93HYH+O4/f+gvlHNc+sOxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Ku xV2KuxV2KuxV9r2f+8kH/GNf+IjNtHkHxLJ9R96rkmDsVYj+bf8A5LrW/wDjCn/J1Mo1P0H4fe7j sD/Hcfv/AEF8o5rn1h2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Ku xV2KuxV2Kvtez/3kg/4xr/xEZto8g+JZPqPvVckwdirEfzb/APJda3/xhT/k6mUan6D8Pvdx2B/j uP3/AKC+Uc1z6w7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F XYq7FX2vZ/7yQf8AGNf+IjNtHkHxLJ9R96rkmDsVYj+bf/kutb/4wp/ydTKNT9B+H3u47A/x3H7/ ANBfKOa59YdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVd ir7Xs/8AeSD/AIxr/wARGbaPIPiWT6j71XJMHYqxH82//Jda3/xhT/k6mUan6D8Pvdx2B/juP3/o L5RzXPrDsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVf a9n/ALyQf8Y1/wCIjNtHkHxLJ9R96rkmDsVYj+bf/kutb/4wp/ydTKNT9B+H3u47A/x3H7/0F8o5 rn1h2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kvtez/ AN5IP+Ma/wDERm2jyD4lk+o+9VyTB2KsR/Nv/wAl1rf/ABhT/k6mUan6D8Pvdx2B/juP3/oL5RzX PrDsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVfa9n/v JB/xjX/iIzbR5B8SyfUfeq5Jg7FWI/m3/wCS61v/AIwp/wAnUyjU/Qfh97uOwP8AHcfv/QXyjmuf WHYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq+17P/eS D/jGv/ERm2jyD4lk+o+9VyTB2KsR/Nv/AMl1rf8AxhT/AJOplGp+g/D73cdgf47j9/6C+Uc1z6w7 FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX0rb/nr+Xy W8SNcXHJUVT+4fqBTM6OqiB1fM5+y+sJJqPzVP8AlfH5ef8ALRcf8iHw/mo+bH/QtrO6P+md/wAr 4/Lz/louP+RD4/mo+a/6FtZ3R/0zH/P/AOb/AJK1ryfqel2E8zXd1GqxK0LKCQ6tuT7DKs2cSjQd h2V7P6rDqYZJgcMT3+TwbMV752KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2 KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2K uxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Ku xV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kux V2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV 2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV/ /9k= + + + + + + uuid:d9b55930-cbcb-ed45-b985-a4aee91d927a + xmp.did:4A5E3F701520681188C68CFC782F358D + uuid:5D20892493BFDB11914A8590D31508C8 + proof:pdf + + xmp.iid:B23E975020206811822A831E66324EB2 + xmp.did:B23E975020206811822A831E66324EB2 + uuid:5D20892493BFDB11914A8590D31508C8 + proof:pdf + + + + + saved + xmp.iid:01801174072068118083ACEEA6F111F9 + 2015-06-01T12:00:44+02:00 + Adobe Illustrator CS6 (Macintosh) + / + + + saved + xmp.iid:B23E975020206811822A831E66324EB2 + 2015-06-23T23:11:18+02:00 + Adobe Illustrator CS6 (Macintosh) + / + + + converted + from application/postscript to application/vnd.adobe.illustrator + + + converted + from application/postscript to application/vnd.adobe.illustrator + + + saved + xmp.iid:4A5E3F701520681188C68CFC782F358D + 2015-09-21T11:46:40+02:00 + Adobe Illustrator CS6 (Macintosh) + / + + + + + + Print + + + False + False + 1 + + 58.741634 + 58.299973 + Millimeters + + + + Magenta + Yellow + + + + + + Výchozí skupina vzorků + 0 + + + + Bílá + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + Černá + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 100.000000 + + + CMYK červená + CMYK + PROCESS + 0.000000 + 93.000000 + 79.000000 + 0.000000 + + + CMYK žlutá + CMYK + PROCESS + 0.000000 + 0.000000 + 100.000000 + 0.000000 + + + CMYK zelená + CMYK + PROCESS + 100.000000 + 0.000000 + 100.000000 + 0.000000 + + + CMYK azurová + CMYK + PROCESS + 100.000000 + 0.000000 + 0.000000 + 0.000000 + + + CMYK modrá + CMYK + PROCESS + 100.000000 + 100.000000 + 0.000000 + 0.000000 + + + CMYK purpurová + CMYK + PROCESS + 0.000000 + 100.000000 + 0.000000 + 0.000000 + + + R=228 G=0 B=43 + CMYK + PROCESS + 8.425999 + 93.444702 + 67.586800 + 1.315302 + + + C=0 M=90 Y=85 K=0 + CMYK + PROCESS + 0.000000 + 90.000000 + 85.000000 + 0.000000 + + + C=0 M=80 Y=95 K=0 + CMYK + PROCESS + 0.000000 + 80.000000 + 95.000000 + 0.000000 + + + C=0 M=50 Y=100 K=0 + CMYK + PROCESS + 0.000000 + 50.000000 + 100.000000 + 0.000000 + + + C=0 M=35 Y=85 K=0 + CMYK + PROCESS + 0.000000 + 35.000004 + 85.000000 + 0.000000 + + + C=5 M=0 Y=90 K=0 + CMYK + PROCESS + 5.000001 + 0.000000 + 90.000000 + 0.000000 + + + C=20 M=0 Y=100 K=0 + CMYK + PROCESS + 19.999998 + 0.000000 + 100.000000 + 0.000000 + + + C=50 M=0 Y=100 K=0 + CMYK + PROCESS + 50.000000 + 0.000000 + 100.000000 + 0.000000 + + + C=75 M=0 Y=100 K=0 + CMYK + PROCESS + 75.000000 + 0.000000 + 100.000000 + 0.000000 + + + C=85 M=10 Y=100 K=10 + CMYK + PROCESS + 85.000000 + 10.000002 + 100.000000 + 10.000002 + + + C=90 M=30 Y=95 K=30 + CMYK + PROCESS + 90.000000 + 30.000002 + 95.000000 + 30.000002 + + + C=75 M=0 Y=75 K=0 + CMYK + PROCESS + 75.000000 + 0.000000 + 75.000000 + 0.000000 + + + C=80 M=10 Y=45 K=0 + CMYK + PROCESS + 80.000000 + 10.000002 + 45.000000 + 0.000000 + + + C=70 M=15 Y=0 K=0 + CMYK + PROCESS + 70.000000 + 14.999998 + 0.000000 + 0.000000 + + + C=85 M=50 Y=0 K=0 + CMYK + PROCESS + 85.000000 + 50.000000 + 0.000000 + 0.000000 + + + C=100 M=95 Y=5 K=0 + CMYK + PROCESS + 100.000000 + 95.000000 + 5.000001 + 0.000000 + + + C=100 M=100 Y=25 K=25 + CMYK + PROCESS + 100.000000 + 100.000000 + 25.000000 + 25.000000 + + + C=75 M=100 Y=0 K=0 + CMYK + PROCESS + 75.000000 + 100.000000 + 0.000000 + 0.000000 + + + C=50 M=100 Y=0 K=0 + CMYK + PROCESS + 50.000000 + 100.000000 + 0.000000 + 0.000000 + + + C=35 M=100 Y=35 K=10 + CMYK + PROCESS + 35.000004 + 100.000000 + 35.000004 + 10.000002 + + + C=10 M=100 Y=50 K=0 + CMYK + PROCESS + 10.000002 + 100.000000 + 50.000000 + 0.000000 + + + C=0 M=95 Y=20 K=0 + CMYK + PROCESS + 0.000000 + 95.000000 + 19.999998 + 0.000000 + + + C=25 M=25 Y=40 K=0 + CMYK + PROCESS + 25.000000 + 25.000000 + 39.999996 + 0.000000 + + + C=40 M=45 Y=50 K=5 + CMYK + PROCESS + 39.999996 + 45.000000 + 50.000000 + 5.000001 + + + C=50 M=50 Y=60 K=25 + CMYK + PROCESS + 50.000000 + 50.000000 + 60.000004 + 25.000000 + + + C=55 M=60 Y=65 K=40 + CMYK + PROCESS + 55.000000 + 60.000004 + 65.000000 + 39.999996 + + + C=25 M=40 Y=65 K=0 + CMYK + PROCESS + 25.000000 + 39.999996 + 65.000000 + 0.000000 + + + C=30 M=50 Y=75 K=10 + CMYK + PROCESS + 30.000002 + 50.000000 + 75.000000 + 10.000002 + + + C=35 M=60 Y=80 K=25 + CMYK + PROCESS + 35.000004 + 60.000004 + 80.000000 + 25.000000 + + + C=40 M=65 Y=90 K=35 + CMYK + PROCESS + 39.999996 + 65.000000 + 90.000000 + 35.000004 + + + C=40 M=70 Y=100 K=50 + CMYK + PROCESS + 39.999996 + 70.000000 + 100.000000 + 50.000000 + + + C=50 M=70 Y=80 K=70 + CMYK + PROCESS + 50.000000 + 70.000000 + 80.000000 + 70.000000 + + + PANTONE 185 C + SPOT + 100.000000 + LAB + 49.803898 + 77 + 49 + + + PANTONE 185 C 2 + PROCESS + 100.000000 + CMYK + 0.000000 + 93.000000 + 79.000000 + 0.000000 + + + + + + Šedé + 1 + + + + C=0 M=0 Y=0 K=100 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 100.000000 + + + C=0 M=0 Y=0 K=90 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 89.999405 + + + C=0 M=0 Y=0 K=80 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 79.998795 + + + C=0 M=0 Y=0 K=70 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 69.999702 + + + C=0 M=0 Y=0 K=60 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 59.999104 + + + C=0 M=0 Y=0 K=50 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 50.000000 + + + C=0 M=0 Y=0 K=40 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 39.999401 + + + C=0 M=0 Y=0 K=30 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 29.998802 + + + C=0 M=0 Y=0 K=20 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 19.999701 + + + C=0 M=0 Y=0 K=10 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 9.999103 + + + C=0 M=0 Y=0 K=5 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 4.998803 + + + + + + Světlé + 1 + + + + C=0 M=100 Y=100 K=0 + CMYK + PROCESS + 0.000000 + 100.000000 + 100.000000 + 0.000000 + + + C=0 M=75 Y=100 K=0 + CMYK + PROCESS + 0.000000 + 75.000000 + 100.000000 + 0.000000 + + + C=0 M=10 Y=95 K=0 + CMYK + PROCESS + 0.000000 + 10.000002 + 95.000000 + 0.000000 + + + C=85 M=10 Y=100 K=0 + CMYK + PROCESS + 85.000000 + 10.000002 + 100.000000 + 0.000000 + + + C=100 M=90 Y=0 K=0 + CMYK + PROCESS + 100.000000 + 90.000000 + 0.000000 + 0.000000 + + + C=60 M=90 Y=0 K=0 + CMYK + PROCESS + 60.000004 + 90.000000 + 0.003099 + 0.003099 + + + + + + + + + Adobe PDF library 10.01 + + + + + + + + + + + + + + + + + + + + + + + + + endstream endobj 3 0 obj <> endobj 7 0 obj <>/Resources<>/Properties<>>>/Thumb 11 0 R/TrimBox[0.0 0.0 166.512 165.26]/Type/Page>> endobj 8 0 obj <>stream +HlMj@ :.`YOh<۸B=@$)?Dv2͛ANo&Ĥcy9:3B"ZdOyH` [ߕTԙ c&!q|ΐٸ^}|Gzmhe"C endstream endobj 11 0 obj <>stream +8;Xp,Sbca?oKBhF(b.F`2\LeCgC98HWg\`?#<)iY*QTK[F#p=H?r[JT@$@6?RQ;.0 +_/=nRpsalM[2V`uo`pY@aUBsB!"8k.UcAt~> endstream endobj 12 0 obj [/Indexed/DeviceRGB 255 13 0 R] endobj 13 0 obj <>stream +8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 +b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` +E1r!/,*0[*9.aFIR2&b-C#soRZ7Dl%MLY\.?d>Mn +6%Q2oYfNRF$$+ON<+]RUJmC0InDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j$XKrcYp0n+Xl_nU*O( +l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~> endstream endobj 5 0 obj <> endobj 14 0 obj [/View/Design] endobj 15 0 obj <>>> endobj 10 0 obj <> endobj 9 0 obj <> endobj 16 0 obj <> endobj 17 0 obj <>stream +%!PS-Adobe-3.0 %%Creator: Adobe Illustrator(R) 16.0 %%AI8_CreatorVersion: 16.0.0 %%For: (Klara) () %%Title: (VUT_symbol_barevne_CMYK_CZ.eps) %%CreationDate: 21.09.15 11:46 %%Canvassize: 16383 %%BoundingBox: 937 -342 1037 -242 %%HiResBoundingBox: 937.7168 -341.3555 1036.9277 -242.1436 %%DocumentProcessColors: Magenta Yellow %AI5_FileFormat 12.0 %AI12_BuildNumber: 682 %AI3_ColorUsage: Color %AI7_ImageSettings: 0 %%RGBCustomColor: 0.922763 0 0.160076 (PANTONE 185 C) %%CMYKProcessColor: 0 0.93 0.79 0 (PANTONE 185 C 2) %%+ 1 1 1 1 ([Registrační]) %AI3_Cropmarks: 904.0664 -374.3789 1070.5781 -209.1191 %AI3_TemplateBox: 421.5 -298.5 421.5 -298.5 %AI3_TileBox: 584.3223 -571.249 1367.3223 -12.249 %AI3_DocumentPreview: None %AI5_ArtSize: 14400 14400 %AI5_RulerUnits: 1 %AI9_ColorModel: 2 %AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 %AI5_TargetResolution: 800 %AI5_NumLayers: 1 %AI9_OpenToView: 836 -204 4.34 1820 1125 18 0 0 59 213 0 0 0 1 1 0 1 1 0 1 %AI5_OpenViewLayers: 7 %%PageOrigin:115 -694 %AI7_GridSettings: 72 8 72 8 1 0 0.8 0.8 0.8 0.9 0.9 0.9 %AI9_Flatten: 1 %AI12_CMSettings: 00.MS %%EndComments endstream endobj 18 0 obj <>stream +%%BoundingBox: 937 -342 1037 -242 %%HiResBoundingBox: 937.7168 -341.3555 1036.9277 -242.1436 %AI7_Thumbnail: 128 128 8 %%BeginData: 31798 Hex Bytes %0000330000660000990000CC0033000033330033660033990033CC0033FF %0066000066330066660066990066CC0066FF009900009933009966009999 %0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66 %00FF9900FFCC3300003300333300663300993300CC3300FF333300333333 %3333663333993333CC3333FF3366003366333366663366993366CC3366FF %3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99 %33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033 %6600666600996600CC6600FF6633006633336633666633996633CC6633FF %6666006666336666666666996666CC6666FF669900669933669966669999 %6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33 %66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF %9933009933339933669933999933CC9933FF996600996633996666996699 %9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33 %99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF %CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399 %CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933 %CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF %CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC %FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699 %FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33 %FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100 %000011111111220000002200000022222222440000004400000044444444 %550000005500000055555555770000007700000077777777880000008800 %000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB %DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF %00FF0000FFFFFF0000FF00FFFFFF00FFFFFF %524C45B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58D8DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB5B58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D8D938D %B58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938D %B58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938D %B58D938DB5B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58D8DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5B58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D8D %B58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938D %B58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938D %B58D938DB58D93B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58D8DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5B58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8D8D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938D %B58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938D %B58D938DB58D938DB5B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58D8DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5B58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58D8DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938D %B58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938D %B58D938DB58D938DB58D93B58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58D8DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5B58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB593B08DB08DB08DB08DB08DB08DB0 %8DB08DB08DB08DB08DB08DB08DB08DB08DB08DB08DB08DB08DB08DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58D8D938DB58D938DB58D938DB58D938DB58D938DB099C3A0C3A0 %C3A0C3A0C3A0C3A0C3A0C3A0C3A0C3A0C3A0C3A0C3A0C3A0C3A0C3A0C3A0 %C3A0C3A0C3938D8DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938D %B58D938DB58D938DB58D938DB5B58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DC9FD27FFC28DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58D8DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB0A1FD27FF9AB08DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB5B58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DC9FD27FFC28DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58D8DB58D938DB58D938DB58D %938DB58D938DB58D8DA0FD27FF99B08D938DB58D938DB58D938DB58D938D %B58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D93B58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DC9FD27FFC28DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D8DB58DB58DB58D %B58DB58DB58DB58DB58DB58D8DA0FD27FF9AB08DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5B58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DC3FD27FFBC8DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D8D938D %B58D938DB58D938DB58D938DB58D938DB0A0FD27FF9A8D8DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938D %B58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB5B5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DC3FD27FFBC8DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8D8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB0A1FD27FF9AB08DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB5B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DC9FD27FFC28DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58D8DB58D938DB58D938DB58D938DB58D938DB58D8DA0FD27FF99 %B08D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938D %B58D938DB58D93B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DC9FD27 %FFC28DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58D8DB58DB58DB58DB58DB58DB58DB58DB58DB58D8DA0 %FD27FF9AB593B58DB593B58DB593B58DB593B58DB593B58DB593B58DB593 %B58DB593B58DB593B58DB593B58DB593B58DB593B58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB5B58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB693BC93BC93BC93BC93BC93BC93BC93BC93BC93BC93BC93BC93BC93BC %93BC93BC93BC93BC93BC99FD2FFF93B58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58D8D938DB58D938DB58D938DB58D938DB58D938DB58D8D8CB08D %8D8CB08D8D8CB08D8D8CB08D8D8CB08D8D8CB08D8D8CB08D8D8CB08D8D8C %B08D8D8CB0CAFD2EFFBC8D938DB58D938DB58D938DB58D938DB58D938DB5 %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB593 %FD2FFFB5B58DB58DB58DB58DB58DB58DB58DB58DB58DB58D8DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5CAFD2EFFBC8D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB5B58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DFD2FFF93B58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58D8DB58D938DB58D938DB58D938DB58D938D %B58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58DB5A8FD2EFFBC8CB58D938DB58D938DB58D93 %8DB58D938DB58D93B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DFD2FFF93B58DB58DB58DB58DB58DB58DB58DB58DB58D %B58D8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB5CAFD2EFFBC8CB58DB58DB58DB58DB58DB58DB58DB58DB58DB5B58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB593FD2FFF %93B08DB58DB58DB58DB58DB58DB58DB58DB58DB58D8D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938D %B58D938DB58D938DB58D938DB58D938DB58D938CB5CAFD2DFFCABC8D938D %B58D938DB58D938DB58D938DB58D938DB5B58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB593FD2FFFB5B58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58D8DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB5CAFD2EFFBC8DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB5B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DFD2FFF93B58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %8DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB5 %8D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58DB5 %A8FD14FFCFA1C299BC9ABC99BC9ABC99BC9ABC99BC9ABC99BC9ABC99BC9A %B58DB58D938DB58D938DB58D938DB58D938DB58D93B58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DFD13FFCAC28DB08DB5 %8DB08DB58DB08DB58DB08DB58DB08DB58DB08DB58DB08DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58D8DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB5CAFD11FFA1B08CB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB5B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB593FD11FFC2B08DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8D8D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938C %B5CAFD0FFFA18D8CB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB5B58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB593FD10FF %BC8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D8DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5CAFD0EFFC98CB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB5B58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DFD0FFF9AB08DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58D8DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938D %B58D938DB58D938DB58D938DB58DB5A8FD0EFFBC8CB58D938DB58D938DB5 %8D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D93 %8DB58D938DB58D938DB58D93B58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DFD0FFF93B58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58D8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB5CAFD0EFFBC8CB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB5B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB593FD0FFF93B08DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8D8D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938C %B5CAFD0DFFCABC8D938DB58D938DB58D938DB58D938DB58D938DB58D938D %B58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB5B5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB593FD %0FFFB5B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D8DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5CAFD0EFFBC %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5B58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DFD0FFF93B58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58D8DB58D938DB58D938DB58D93 %8DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB5 %8D938DB58D938DB58D938DB58D938DB58DB5A8FD0EFFBC8CB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938D %B58D938DB58D938DB58D938DB58D93B58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DFD0FFF93B58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58D8DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB5CAFD0EFFBC8CB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB5B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB593FD0FFF93B08DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58D8D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D93 %8DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB5 %8D938CB5CAFD0DFFCABC8D938DB58D938DB58D938DB58D938DB58D938DB5 %8D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D93 %8DB5B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B593FD0FFFB5B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D8DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5CAFD %0EFFBC8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5B58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DFD0FFF93B5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D8DB58D938DB58D938D %B58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58DB5A8FD0EFFBC8CB58D93 %8DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB5 %8D938DB58D938DB58D938DB58D938DB58D93B58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DFD0FFF93B58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58D8DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB5CAFD0EFFBC8CB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB5B58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB593FD0FFF93B08DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58D8D938DB58D938DB58D938DB58D938DB58D938DB58D938D %B58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938CB5CAFD0DFFCABC8D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938D %B58D938DB5B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB593FD0FFFB5B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8D8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B5CAFD0EFFBC8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5B58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DFD0F %FF93B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D8DB58D938DB5 %8D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D93 %8DB58D938DB58D938DB58D938DB58D938DB58D938DB58DB5A8FD0EFFBC8C %B58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D93B58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DFD0FFF93B58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58D8DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB5CAFD0EFFBC8CB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB5B58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB593FD0FFF93B08DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58D8D938DB58D938DB58D938DB58D938DB58D938DB5 %8D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D93 %8DB58D938DB58D938CB5CAFD0DFFCABC8D938DB58D938DB58D938DB58D93 %8DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB5 %8D938DB58D938DB5B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB593FD0FFFB5B58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58D8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB5CAFD0EFFBC8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B5B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DFD0FFF93B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D8DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938D %B58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58DB5A8FD0E %FFBC8CB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D93 %8DB58D938DB58D938DB58D938DB58D938DB58D938DB58D93B58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DFD0FFF93B58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58D8DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5CAFD0EFFBC8CB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB5B58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB593FD0FFF93B08DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58D8D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938D %B58D938DB58D938DB58D938CB5CAFD0DFFCABC8D938DB58D938DB58D938D %B58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB5B58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB593FD0FFFB5B58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58D8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB5CAFD0EFFBC8DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB5B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DFD0FFF93B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %8DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB5 %8D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58DB5 %A8FD0EFFBC8CB58D938DB58D938DB58D938DB58D938DB58D938DB58D938D %B58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D93B58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DFD0FFF %93B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D8DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5CAFD0EFFBC8CB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5B58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB593FD0FFF93B08DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58D8D938DB58D938DB58D938DB58D93 %8DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB5 %8D938DB58D938DB58D938DB58D938CB5CAFD0DFFCABC8D938DB58D938DB5 %8D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D93 %8DB58D938DB58D938DB58D938DB5B58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB593FD0FFFB5B58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58D8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB5CAFD0EFFBC8DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB5B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DFD0FFF93B58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58D8DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938D %B58DB5A8FD0EFFBC8CB58D938DB58D938DB58D938DB58D938DB58D938DB5 %8D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D93 %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %FD0FFF93B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D8DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5CAFD0EFF %BC8CB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5B58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DFD0FCA93B58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58D8D938DB58D938DB58D938D %B58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D8D8CB58D8D8CB58D8D8C %B58D8D8CB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB5B58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58D8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB5B58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D8DB58D938DB58D938D %B58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938D %B58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D93B5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58D8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB5B58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D8D938DB58D938D %B58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938D %B58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938D %B5B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58D8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB5B58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D8DB58D938D %B58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938D %B58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938D %B58D93B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58D8DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB5B58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D8D938D %B58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938D %B58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938D %B58D938DB5B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58D8DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5B58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D8D %B58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938D %B58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938D %B58D938DB58D93 %%EndData endstream endobj 19 0 obj <>stream +HWn} ~4d6\NP0VڔeWK;;7/3s)eqT$%jx?̜93wWoQivUS9>ɸW{E׵+Ϟd ڶbxZGmY*YwWя|Zw>ٓlou5TgiqWw[b;ѵ=~~gE_̗/&;]}2b̀r?۞gۃpLM]۶N񱿪Rm51.lX{ 5vXhi5 UolvoAU[V% aJ<.oLX)Ϊwx]˃x R-!}w%np憻+Yq׿?+OG^<[X)7}yu:_qDe$],_;~ ׭qp4ǿi3Gpi"7KϪk{凷x6.aAi'b3=]ơo֞yg|[t\_3$صvusUpE;ByƫV㲿\۳v/z6alq=d~,W8i]{X^ذvʥxzZ{<Ԗcy6isVuW{.#ڽw|WI[`ti;p߁f | =w3p =wm.eYv(L֍dE_y3yn&Ι\ [[nz +# +m9i>4ZգWNj:-٬eaC( ^Aycڡ +5WWL75,d6.?|m@˦llr6ȋ=pWuYp +ϰ_Ն#Ck0U]/>c;d+<=컇|;kgc{8-3۪wfZE k'Q3kxzZ#`Nk"נlxOf2mVN]ո+{zYy}??z9oܢ?W}W -Fl$8ϗvuE[LOצnvzڌ;y?˛#[o;yNno^JRdMS#:OˏU͔0髣q3|lA'σ~L/ L3h_{J1H)(C6Чեe }ٮv ]&rI?{^jr+~O\YS6⃒2BU2'^ٞMd̝`r/Z"1;č.f{:)udq927V*2設]@&&ɍ't}:[Fr88 +̥wQtEn M[t&}-飍ٻZ |SE -," ո  ε0(Q(>+JEڂQWLqtpl}DtX~Isa$[,L* +NdZBI,G,.齧cjrMn s!Ǎw)ZhO+t2WspFKP/U\-S2iAQS@"~Q*rvB8f %`j)&NަvX͗GRѨI5b˴:U@kB8\Ff9Es-(>T"أk +gwp"֑ae06H;Z6i`Q9;~@+@]d51i7qHO1HU*C +w(Wlbsm6AĢ]pF"!JL'uԚ:(l^q 'Sg[p2" Ov#*_@,JM).l!YH+ + RY"N RZ@ +B& +P#,`b Lŭ38$Q +1izN'eg9#bADr nsW B@_Fd6d'h=H!&ڧm)Oa\攦碋Ѕn;ǘ=ni%ʥ6 [J&,x, }JDs穃 FA1 w ":t+btW(&u +jXѥ S_TynyS4D%ؤ<{!#.D h92NJM[S#Q4![ g* z35P#yn=d/E1s8fy;4'Fbz 40#Q4b@4(rgQC`:H@qNhh24~ъ?9^ 't1/6]q]嗅-P< +87Z.7:Ho2_Bz8 Rr3۾sMKTb_ 81|IYaUBBgT1 ߑ+67dz[|3fUiN]#w.E|@ɯ='rE[ ]X/ՉR<\ɇoKfhmn<S^pכXG;ydQt=0v|I: TT^7*Z nuHZRqwP?] $iFh܆=C Z M6C݈okdEBwߓbhG;%ԤaoqʦUKKA5H~'u[Z<ҺJ#Oܰ#fp].&Ke3P6`ߩVr<ΜIz Bθi,HO77na{'۬pSUU +9 S9FVzx7?3ԅ`"6ݥ9=E(W(5N]NtPxot:8Gc/j4 +VJ*N# s"M`(OȟM >KU;x<ŷS[i Z|T+āH%lpӚnz'GPc>Z#䛌'Iqb|l,u%W o&x=/&RW&jŖ#ݛÒNPk=3ZQS[)ͬ7LmxD/3BԸ;S}gbYӨ^/ 9Opg a't;MGU/B1Ӱ/}a +Yp"^}>ʪB[jGGTenA +2T tN$Pjmg!BˁG\yRK.U>PeE,PUU(:Owg5'H'Jni)%8ѵ݄dvhؒXv0&}[N4~\TX ki D,9 iAM$k+NĦ jI1Ѹ >i z^.{ÿn35~/A +'bwX`B]N4(|b]]s H0%)f ԏՊ ~B:\ҫo]L=?*/g;NF-="7$Y]4j 0kUF֮C5΅=ܽ&`]0krzr؋Ƌ~\ +o"*XDܞȦĤ.q$Q%~!؋GSz b +xv3!"x>}p;Q;|o_ ]m%;)9'Ō]޵T"md5Vy%V"h 5%f - +16H3)ȸ9 oyAR8]Gnxg`amqHq 5ޑ :WʒАH f޻,kT1HGj*ciе]߱ _…E``k6'8Bg[x:cF#oNmxz3>EJFcLqvf{s&m^FQqgY&KhV~KQ|JbC9A |[;rQ1 iY &Ҏ6^AiXbSLN*Z1Ox_NSXI YO,W+T7Ȝ v_{SD5V/Z}Fj4ggO^ٓЈk."{9 l|qU2nZ鈨:~U>}بhKu 4zOY1Ml(p aBV5ʆt\La#SB(J+4~Et<9%|ٞ>1K1}æAgສ~\KGJ S= +iq`BEyc˱XL@G8H;Ƿ 6AAl\+m˳uR')({yeXi^p-44#ծZ uE}}#j^7d3 =;|lg5V49j9 :L#;c ]]';Xnf̸U懆:1 Jr6!N15T,k3@9TYbN@[ټ'ٹzeǷ k VZ'PAL)x=4Ji$/~!/+S`[lGUu^8Em!WvBry{oI!9s+fOׯ3 8#M"UO ~թzN0'HHkNd072C>kqKazWX$4ro Ip~g1?ˋaWˆDDjuf)ך&InմR$71m#wH 'wR![ +yEϖH$@BI6t u}[ܢ 6Zb}\1dsl,ϽbSǍ"{I!X$͙)AzVY"*Zqz9\'u]4L@y Xs^ZOb fj+!S]&I(E3v=nܲ$H ~a TQqEsrJZ1 Fv ֱ+] SRKnCc4듽}-k%cīEB@M OEǀq;U?Uv̸8o_Nj $nӾO[ш#DZٖ[a#B^hfY&$,;<C?$Q28q+\;d":wX6ۻ~1swڪHJ۷4,"SmjCkb}54s wӾN~J- +3 B^-_V;^ VjJUɈ4ӛı @Ly!wF^r<`(wMৎ)'b,Ñ+^L읞s%t%XA鶫00fͅ VUB.SZa:p޻@27ʤRT=Md1+^y ό9 *`$*D GA$e{Jcy414lCm{װGrL& ;*߲i g} 0VlR֩%N}h +qM#P-~*ь=e AIgdG3FMSnu~HՑݰO0D6Sj-~3Rbb(rd(z\<-ߩ>9 VTx&a@9p*eI{d +bNBi6 +2j; ya',+-_Ek19{`\l6WGstpvQXxm.2'賄~o&)j{MY2⑼*](SL ¦]d t&{S04gcHGN YǓ~(o\W?Ύœi>K!VDN{#$rxnr;T/0MwDc;kKx %8STX +-Nix(\EYv,)?(./ňmҬc,T72ؾTH/?Tz+{0lR\(2epc +=cO\5a^%AG-N^S*5]s5`TKx׻,pӭ NԈ^)O\=~5t6{xz0xK7=*sƴa3OKD?>F ; W$b0B5“g;/dQtqQԟd@XfZ &Co,^\Sn+&Wz.,.OY@ħ-zьqwS 5B2 +}\M,RRX2?Vڹ'K6OEpi6M"w:w<)ş$,f.CQ4oʒAΓ#h1M>lf+j%~Tw0ms}0s *H9#)I{>/|L%&aAVݣx_@Ŋx`O 31M7Wn[~^+QN 7HaǨdU!SI,]eE_!7oK&, 3g|3 =^降+ -sBrWw[@% gW7g/"g(x/Ӗy 5ݢ +hNWљ%;*gtd_ރ=V2 3"G_ EtXO6K<:|r~r}^-/7ytTϗW//^n9__/WW}c~5H{_FY󷿋סIkx+-o,MOm}xkN'UԒ,uсW[6xNHeI"k +``AJ +Y^Xq&W^.Uz\7))T%FcШAfQH0zisjIOt@UglZ-ʃ aD;c' +WM;->>ƭWd!iD1hC7{|`9aR:.$j,LdSdM QS~9Rr} -U[3kkc,*[zF1~fp d:G7D3ʇy۷F'A#f R=LXT9}!&CLQP@@7$*tIkut,8>% EBdu=Wj CQ3?pq?kJG{G9y?9xt>YczꒊdZڟ?T)z=[~odzvOWwԃw__wb?| nl@}%qT{ZM]0"_Mrje(4*vn*,?^NUu.3?ҡ:љ +74}?>dM DŽi5|nitf,"^ VVNg%)~/"- +o=I™ +w2}X<03îb4")bL?HY ։rJiyEP 2 +_ILe0*(ݣD ++.b +\C1=(0FL7fP5Je}@3 t"ԚZ(D*8$%F8i8kcH `a -^08 3N5En=R:0%Q =b5:mBQ :a+T,28 M.=`5ɐ񢔶bRQNҬC}QsEbuyS^0rz r:aMQDpC\u6\HIpT5q +W 4B?zxZ450 P_aj5TE+ +hYБ5CPʳ᱇9Ƨg|V\Vձ}LۖDT1 cV1y5JuDDbb$ nk|[!Jp^&{E&lGȺ~@/nG$dgmDv{(;F<>YneS^}%,*r:AQu`EPq3iߢƁA +;)W(f%3mOA?P +iɁB6s!,g NF%ᦞˎJ$)pxIM{;@el,ʠ{6Fd5nIC  Ӯ$YGZHJ +2PZ6iEhTU %4{qe‘`A~BlGRS)p-yxuJ5{irxJ1͛4!:T ҫO&*-;&k鴄|WuV\ir 5=O3B[<#2# 5з?iĻe>v47;DN2J+/T ̗4IUr0P;PO&d69j38n!pB^+m .Yfmh9YA R¤5AŮV=6ri0-ؤ^gX"Ap6ǶUWIâ- +šGR{L{FʟX,"E[~nDP0Y=ydqhUSzX**ƀ(KJJ?b( @p▄` Rne86eĥF붱#+3lx镽Ī 1:D$ht#;q|`2‡gX)R1nS邶b-V2fkEgrJF]Jgı:ؐdI eǙ)Zt. 8N<ʊxL$xnvߣWg1.Ҋ7? ba?Ɲ(i1R"08:PDp= 0hDjRMUdm+xxOp+1,@$nEYP2LYၐ74 e~4c~Ґ:oD%l*h,Jvber4.^DY& Q.Ez'IKrӔrQko3 %==r SƘskWi0X>AG=^+Sџӑ9'A~^SdT XJHj0A|Z5dXMA^pIc1nu^EahK^̫]HJ*YhqQ>ANET4bYA([QRu6N'9[7 '@ Ϟ|~n_߼yW,n߾~tѫ߿݋77qK=t/>{ͽoo_=? ޳g﮿}ŃOE>g__ӝ扟3"'yч|ۓ/^~sӋ޼~8we{<~<@[~;KO/M@!u + ַ.W^iqϏo=ryI4A5n. 6\T\,>[$r^I>gd5Dq ,C[TYl^F~ b+nBL+/J>%(nka[r0f=j1\+3NQpf驥ja)P< y֤wȏ]q9%,<ꖂ}U%d K̗zPc/{XЪj,u"J̥E.w47{` 8.RnD? fT;ER=#Qeh,qBw\F_];,Dy{: Tl]WHQj%#Of@rZ:#d]ت]wzVivRz|;|{|/N?lCDQ?>&в{߼O)^Hx>'L/f-@V=)}4~ÏC]f^[{V@y a:8LtV ԜY34@5E^@]G^s9EL&HA䑒ʾڀ+ZClt}3qDўG`m^6VIdCLٲ2RHAb坳f])Z+y=9iz%:Sh.S*^P2{d5nQRg7ì̠¢Z +Ȼd ͪ<"kCBoπ?M@g<ՙRhlj dC + CDKLatɟZspI%)\/#uD8iL0L̏HN懶ȁǼ,칦" +v>fʕ?9M"D [9hjZ +.k+oj,FҮꉱ1 z6$tC]В.gR#`8!Es]>&r6']}ԩ]r!ZB_7.Dnl&K7;HLR]396+p.ELE M39JnHvr1(CHf5퀒JeX_&* nۂHtkmhF- LKMA={%(S>CoC/5hSGݽYVTm& +4BjҮ$_!LCzNW + +$vKS@9h7 H5jɣ]4wqk~4bp҆Z)׺X($I + HâV39w;8"gZן\u!yJU/F[ҨoCSMWn>SmV}:5sPq.SK"=NdD}4J5ZOI/beUȝWcp9k.N}FwMHI &S_"Q \USJXU .lZfQI*xXď`:_^9S2Hk, etyVX}QY,Q@=9ȧ7.d,r2bzSA`ްEb<ŭ~"-pڮ %?"H P8Wn2<7mT-L +Vn5ooT{ NjDRpFfuf>[v bg6i(ʟ>vu(IWm輫εlydI~+rVJz0ᛆ"I{E8ےe0udS#8ءeEH@gxK<ʖKG8NuZ.pA,:B nq%E)ldr t7QͬxJ'x.)^w8JǑ[T)R[nڽ;b'r();ce=?ٸ24VphܘR=[Š:61%OQq#SӴ@!hu, 뷜|@JATGJy)#_2Q I0 ^AVZ rds +Ndd,x~^o2OYTdwXG(DV)ene?@zJ)"|^&Y˥: _ }_ :Elo|-S-L:J9^BO5]X] & ["̲Lp!0?%b;+7;Ǣhi[q*k_*r* UM']&(zeH\L֭t@Y?3ɘũVa⓱׫4hhtL.˭ ÿ@aR53kJB)8!+`df-%&g9|PNbocB0=b9P@:Uڦ8W`ApV]>LɦET|ԪF1Oq}?\)v _Թ5lqp ڰg,b<),pE|>1b=죶ɫm'mN CD$B_J%Y]-b sܑM-@i| S?/byobyf4ysq=nyv*P-|7C],wiBĚzʲ,9D9LWL-RBF#e +]Ę# +L˦hv=^[@xSyĻ IȭIٓpx=P2mE6Yh!LF,u7.ōة!5ԌTȎCIIs\ܓ}J*&Z?dLW= ,=M!1 Q 붺Z5e|ݹgW/E[.-淪b~ Dg_;F.Dqca k7QDqy"rxD\uT^ <]D+ +Cp>.Q݃n)ЗOCZ `L7ϱh'WQ@΋ԴGٕg IQȺHt+WyLScAR^nig) "itɉ\pZR̬W$Kf˛:sˣԪΜB*TmيNd{Ѫ V PeHKMsٌF0}^H'9)32wlenÁsύ +JGp[nj)u7V4Y7ԧ}_tu7_`D#6[q''Q5vp`c 9NSnB,A؛wUWQW"l92-T|?|zΖ>N[gi6gw?."ou|l +Z֙aB\qÂ+ڈ1( xGa&'Cu|XxjoAܠKU^gJF:(:KG9ϷfŖR$M+X[^6:=6 ?Ik Mp] ]z~CAWsUY? #Q(`8zBmX`)Z'1,mz"^BC8@`R ɪ$3jT_?{+ēͣ ZD u2}lPh +f%BiMeTAS$ŷ_00hCU=\C4<QV\!s y-A`ޭN:5e\f EzSP)^LfbO| )ZdVx.tm-FٖqԙMc8?|@RdEآHtv䗖:޳v"]&zڛDIJ%^~UԻY1U}OQ "(A-&o;CVAi "_hd+(OSf\ڱYuHFgƄU}Y,5=Rԣ2ڬ]Hv֭Pb]BR 5.>f Û \<,d(– "k,`LVbA?nZAN vw3]t<&tD!_kprLi-[UAt.ϗxx-naac vL%HTk̅fn3֣? *E 3A AON25 xkv5JA(tNM1YZPQs"'y__}L˫oϾ6ݻ.w==|UwmlQ_|8ܾ><|~zۯ~=z8wJWOO?{x|a/7<]\U?/7v&c2u YF+^}wݶۛÛۛ_yyc",j> endstream endobj 20 0 obj <>stream +HW[] H_|$(dGVB+%D1BCAxzv̽BHg]U}ճo|E~׿~׿qO}ᛗ?p/˧O/~%_5zw_r%t%#z}}t~?/u #k?Ox7?S1N|;A>$'x~/ɽ*)9.A%:%ţ8=}>@rQXxHF\J>~>@rUye n2? YmLy%p_EJݔTH"1OCgΦ_I"fPr:|$MEOH'I|'w>ymErc5|CfCVPzBQZl$+`} + ^jůח~&8еcA~ +j@ˊ+:PqyI~(jDnh( c VXXu.h:3=9NC Xs۹4(NU,GgtWïrL`?ʹJ@ys} ShT'2}lp 1dLY^Di&UCg󩔔fVvx2ā>@f7wi(f`@=Dqt5j#xGWȯ&x81`* #3hlLґ%RZ*"K6%E'[&6)mG20^h.hV>\Ҷdi0Idy`Q z\@1w02sJ hWr(ǖTPz[H pR"PBDOw_y4Gt` RB5YpYEqтT!d}?J^ k5 tV=BDTѥ~i^ۓu(|1uʼq{t:j^7נRLqSDto0FΓ$Pr +*Ws~:$ YN@:ᵫJX}}cָ7`) VZ\OFu-m 0Nv(NQ󩆃÷Zg!3S3 YlAa{kX?[{?']b0rhXPsڛys8`tGvFb?~1YtQ$3nvh:y0`8QJAVS:8Ъ=X<;gdKϧ5!h_ Wa@{B4au<5X8D$A}Xkld4ǖf[U1 ʱ6h6]]Ԛ@ 1’JdƥrMC0sE\T' jRh +F=Y¯$Yڠu[ aKy!5  eA;vZ5th?a3u.}0P_kh +) {pa9B+-pU6 CF@0f}p:XSHt v %2'$ 7o;j%w6򂶠,pZk|f!Ӗ9nmdR"9$xQAÉ6''lqʝCHvh'8'9=)$T1WqLA_\NC0%7̛@%KVi$0;|vhgB +Թ'bB:v+i}T&`3؉؜"p67ՉT>LN>G5<%0^;(`%;%b_ x00E)!_dB!g +6gB@C%ŶyscK UۂxÝW:ofCJ=jAAmM Z!ZTt O%~)h 2jI4whtypmWUd +MK`ϫ0>s{A+Ar +nd,DvU~*p;"V2W+Z׹v B.% ! CMڠp^ P!)4BrpmP$ BW`@tOś5ZMg8 .j.30fȩnhqqR4>d6kэW0H +;Splʺ 4 9{4oa+}f1c<R aVm K5tHit[𦹌F<mk9/T;o {8vr-PH'At[*]Xe,@%.l˲~^Z7춹qDL4ezw[n#^w-  qYF-gMlV%EXʡM0{sEW@իUYMX =4kF:< (n"^BtRg^#`W}=Wh ;JƽsRF-2zth-MAQY7'*FpT! ]QIViW^QH +Ul%RJ+ܪ5|F^uU!^R-:kt h܎&˷jm;40rwE;~LQ=2=2mɽLKoP`K4`)]Űi2Ҋ(`mfkܡaԌ 0]{1gZL[u7&g=c0mmȏV86SgC-mHc^ydf5]S [N.#bRZ jȵ: w#&?Hp6yQI&6U(Y5ek'^ NcY>DZ!;y,}d=RϬ'tu>ndNp1`b'cK9Z Ž@3dw,0/FB߷M5'9mh9 4_nuUR^֮?tI5%`$[Zْ+l z:F:#Vu3u;sMߋQDRއ.~Zvt7tWW[I({Oy͇?㷼? /6sx|߇_ýrbIg8d.DaTNN)F+ZD-Kb+Bڦ5<X{(07PQS6^oЖ*VF!-Il:$:x46\># &l4˧?p8GgkAQe +J\Ì%tHX)D5`oKٕre}VLZD}q 2~,i\bPC:;b㈎0g4Qdz(Yf[peH6+3ǖE|K#]jpdI.r^ chXu/!)iS/3H4p`4yIY-Fi-Me;Z-R] 7\RW nf< i#2q3O`*ywut9]An9k 5A%~#ZfWUģ3(̈upL< Y-!3OdKkx7|P~# ?͖)2?K6x9UP'譢Gl0}7g+TgP^[ɁBqJ;v->2O8"&T=_1xr64_5d谹ODmfg D()J'ڊgu7IwqX{{Z{1*QYR,7Rtw0yc>v 8kr3V=.a?'B>"Qx9M2eI=cVfCIi-`JXX3f9d"4R`{/c]UңMN92yb$%˳ /mpf-CRۃK1iD}LxM,CX[Kٵ:[E.7BtU36r&adzT #j*+ 49a +&$|6ə Jr5%dB6 N5/N3pGĤ]V eP#7}dFpU=AKRzg{ fY@@\\%mfEm-q3=k\0z]W/o[ X|(qĹ0Vu>+"0Bz ^ dS!4qC5j^Σst6I_rf\m0cіOHBw@G\9hY({?\NkB>P (׆6Д'H lʒ2{JJyD"ȝNx̘c'Oi2.*G>dlA`d^_~$Pz[L~['廵Uz}_W?/-'Ư1֜Nopbw_wM2*FK$+ɴT[R银j+ӕAE{*I"}}:ҒPY&<f"j, +;jlz1"=ݞ4gk<``v:?(;O}jb>%r0lpWvOmZ,3oѰ-vBtПBv;n `,=MYIUiNt SӛXZ)m>Cyv`~fkXw0@ݏkLxgJ2$/\ɷ3f͕ PT@6gjI7H [ U/e pɤ@@IA)ZbP] &1 +c&tɸ@/ʁ)XFNŽkkv}Vd&("[IJrgss8?+B>I$ej%)?|7՚Wϭk 2CST\z2ScTXw.bS5R!װHlIOViBqC7]$R<ϞR!m-TX'F\fXpӊF˜JʩӧijVӊZpJNT +R8bGV~3P† )%jlKV$K*KS o_N n )2VjJ)Sz)u&tE-\BFrDxMS$oP #"X!G~%&ܜFњaV$\^ -wL Grf1bdꦲ)91%NL,~1,Rmj 2=$K2ˡS +@ĹUxbJ +%TB+94Q)82QQi +c'e՗28:󙝶Bwy_O~Ѝ.mJT~AI?^h e _16;n(ܽ(~w9"Hf0VO|]4ϼ̵F 9ºf[V AtqȿQZ}<|UVZZCQ TᲱ͆Goi؉0- D4L'gH^Ah27n螐Ej!1O$AVF= 'yh4zA*՜^D1crCL % uꣀ{!y乡L È{.B#! GXm lL[ntiMuSMO(j/\/Jrܜ*GS:5 oeё`oAO^9hQ;A8邤}O'!;zw@$Я1>ue,9{M0Yۄ᠆x!^ʅm|ֳXt1#!̢l"^%"g5o"?ad hQa/ (״Vm–7vuю ).|&ek?uCřF#7'y=ATb ~!9/b.yb$;>8)$5A$Ыl`D0F#:(v@6. /1\.X#+lT}G{)9LJ5lXkpzKTZrcӠt͙ CW00b`U`؛S`Pv`YM7O.m=>v[fK작xc`$ټ +cr;2֟{ gP^',p~ \1²7oX3h \RI%/%kYٙ攴Kh5{SbdBg΂~IsWMs_㘞]}=z(dJ0~ݒn@SS!s%Xa:f5&&n`pl-6}l$*؆"*fvCHZZoͱY ɕūzxNN#wXu?iۃS thwݵֺtm{Gл 4:$i?} &'~$فS iΜS8ąq ȋgn?Qq@әnLH^bT0rJz'oDtꇱb;9;$ꓜN?՗nS )8"u$o g]I>,1Qb֘x6qAv!D4'a#阋ȢaaLbCCoNju/;X,iDG;p=z~=OcBn.Q;H ) %l8 i2&v0LIG/yG@, B;- 35yEtUS]uv< +$^}C#lMt@1dqp)^}E/Bil3>vhBE4\t~Iath:%0h$|lZ|_)֝'tQ|An [QoׇտgJ۸h~@ST5 ]%8gALbzBzB>ySq0tRd! F Q#+TuF6 tfMlj9juff5 hLKti%yU}B[7= u!JUf2G + rVQ^_ kV|EkJ77.W"ZeM!`0yF.l h`$){- 0_چ[I rgY/(zbe4h ˂~`+A{vۭ/v<ؚHKam;M>0>FZN*,nǜ5d(۞2ΤY0Ka[\}62X)%2L[.%k30s8?D+&sQ̒kXx($ЊŤBeOlOg5V?%VAs]noSgrr70{1PU9kW('> |G@% +IQ`|z&8^: A+x? /$x>;ܞ)|h]{X`S^'p/w ]ВrDpeM{Aªo Ah? + c' }-B 4/f6zd7t)ybUtT7ditg܍7tz-n4]Sh%%rStzqgV`n֨>uU*FܰYXZ^gJikv SS :s.sis` F*Vͯ ?/{Avi+H'wnO#ʉ3ǥ+R ͆`V+&9`Q`t endstream endobj 21 0 obj <>stream +HWnC2`S=~$FRp 9$;jv{h>a?!OWsM^ Is8ޑg%:Xn^)ߨEaǸ Put:?z /Tp,[|lBy[|IW~ btz&cO\y T#Ŀ"k}5TRAS}V\hԀ^5~6x8waqsd.`қn?YI7͹*`˸N +N2} 믚 (AN4rB N|u;A/z`ao4Xv-Msq=,֍={v'E58L:R/spV/+??)* %3>B#+L^Mi&w @ake7ke܌| As$|5Hx + BRu]ͶP[XVOQ1Q[Ms+'ؒ7X#W̄SY٪2;[ 4l^MMc0'R$@"/a) +:]_2!z iC[ 5K1CDvYpM|Ђ(B~Mg2n?;5s8d;㶨[O٥}vP$d޳BzsЛBnWe0pCmTV]b}`YMY#ʣ^&PYO!BM?Ī8o +F̻z +\3S& x1O#=XX'P)pz'U`WK %" GYf|-n@|o+|c5jVY'k2!F,Tg[{Je=d ~`d,qEg&ϭBm]W=; q;AlhTS]E{Gw$뿁1Om2=~+ĭͯUz ި;J{ڪ4|[ׁ[G+rAckZ<9E5iq5ӑXS + )DD=rK +*V/qWe*Mb>n%JyDW#n_=VqUWĀѰ'J'8ĸۃC8^1RǼ#k7,"h#%N[sɛ +E冃oy2!JY(LPPQ}_L&րi֖KMXk +;,UތԌXˌ.ZsY=0\ ^wUҏes P螰,Ί}&'kAfi{FWcص^9NmXҵ$|g+]LB]BtN\\<羦AgGCwjz hP%[H4% *ĶhFkR&3K w&)]_s[$G[[\dk)g8]$@EPwk!]kO .0L5n2v GJT>`R\S\Nˎp{fuvG'fMhD %\&>8զ|o}l/D~@){6O)pS8l"ϯ/'QӨeODz*Q徣4mȝ"ΚD-8i$z'<:g$Ӆ*70AdUtN,T5DCFrS@`Q|RZFVۮ\ݾ29:tDӚ:,.ͬ53,-U}]#ka]v_bÚl"z_.-T$J `J̶kodb9J#Jxm@&cvþ8[n^TvmjkSx4UB!@5оCfNS*J!Suz.n2g axZ.%ki;m]BE."$@h [Udpr*w68oRІ0 &ЭᘄW}hAHSqqG1*`25/"Ŵ94< Rs:2,^ëh(#ui›TDtRTyky]o*Xb_r"`sxAtu۷?na`6a8 c~N mnXOmyuueڰnQ>cnd-|l,L|c5ʷ0ǂ#] h۩*puיSט{{jME}8||-| +t\؅hn2aѦ6ă0of7.;521-]Yv+ky/.Wd:>XC{(5l۾@}SU9D1pq<7{Tug^,]CTӆy-7wR )#ڭ?f/Gп乻X$܌S%2s#uǢZ!~{UrJ՟"n[4Bl 213Kq%: }^*d\y&> `Px>cTdcX?X&{اƓH/HpC\"z7OdN;K73S,6ZS,vH}&w9MZ&+>]/.#}l/ ~ߙPݧgC?P8 _Oo}I~Xܲh{9ܛKR]v=SIЕANy $tؓE;w;R&|D|d]4IbtDҐNH\zagjFFDDr +䠿E4 њC%Z8c Z{ +=1<;fj*vK>~u*RoGx|>=J?4$W؃n{/Gd/fX-kW} +{Šr,\.v0tr0kRs/ DC5dqVx2/MC#P ڂwy^5 nmB7gǽ 3?nʹ>VY_F&mBh.T:qF0( Lq ^VX\ʆT rשV31lQ:A +݇K d>hxvDxrRk6tʂ=%xT0vpDA6I2p&LM[/Jg7^0e +Ԟ|FJD:Z^<8\;'qo8nM.W̛Xx `3"5EޯtT# +? C'< uΠ?4sFbѿ>gphS1;lm3 ^;(r>tW[^#E4~w/kq?Gϔ3/Ww1F">3N~*&e?{;rU%(vN# 9RWoQˁb΅"[.>6i_*Z}V[a~Fogr)amm˻Q4+_uVO[\!`V|pԨ ItJm8c3b'8@*fR8)-~u=qi4%p>U$r }dfG<ڕQ>6Sp'_|}(H\Vha)"{'T/a+'.EoAWS#NC+zYx存U."!Icm"0t>eka\鬔%ZI,ŋw^lbVӻPbS{#JM VֿPxTuM j` ♷hoj3W!f1 &,G+VuGFvX$I&lUӫ}9ג)U|O~!y>G[6$}Eu3bZqB. Am`Ўds/m̙BjWz̥Pc]@[g)NC3;`@ޯ./*鈸Gt $g>%0 ؙt +u>l[[O0mLU AًFtN]DhJc'K8Bq$-TR QX cK17b:orQeZû( ]]FU+ +P:?+ UhX!xYJ1D96H-F-\duZc#fLo;hGٯK*+{Qw+=ɴ6|n@ޕA{J.?K+ +nȯ1(*JN9NtE KL;iɯ66>We\[G=RRӨ@p)W0!f3TU[VlqXPג6(,yG,thZD_4!ֻa:—M$1b$N1SV+bŹ^E9V=I˻ޗyO4E`PWV:ẗ́b*B^`c`Vvhz<[nΦv=2OBhz5WzSIL{6Tclg`m6EaE@Z!Am]#ԽNÉ ӫ\#`}z_, [s iīơ5mWu.bէ}q_t3)]wqćHбpYgd$bTXaNnˤ'ы BVIql;*@FiE#)zޤA`9􀕟`fEj]sKLD*Nq +NEPHHe_6kgͬY3O7(z4ac  dh:)w9|voK'!Squx¼L"1n_j&zz!ГhBf^]MS,vgy/&<úۿ)qU?]^`m7,PM/a crrb\8:N/KK0#TA)q/gQ}.JX~siCQHޙ_={ +'̱׌1 4!1P$d)MH~JNvuv46 ^ЌdدĠ?8|T\-oncrSd'>cu0 ~M :SO+=t#ݕÇ,|:||{S:ڕK )??˰g6IMϓQ8XB'V\U'KGJ:]?RnSBVf1 ES{K(B]6f3Lm] &ğurlrjk7h$G3p䃲9?i쩟}Z%Ƌa%w5'[Ӽ y&^aѿ{~}]ȥݮW聛á:nhWN*?LqlFٱm +6ټ [ip9D)@&Rrc̪a&tYlޔ8pYxC"Nu0b+2Ȼ s>Lw#%nVRC9X @&[M;-ƘT>|<֙x`?a⽥X+Θ?gPncC:TPz0_k [vPjz?gYa[1)Lw7nzy,WkWD_D*!ծ2xJd=S"7R>@\$uwTD.U-Q_4lCx]`?z3}˛ U8W5aoWqykј]Y:G}Țtqa5H`8*j,6NXh b!V7A3댴+u-eɺ3t<{IVY/F.:ki0z=a4˻ ͳHRԵX+e:D'(Ȣ(K$DI\<[e欼5>Fɼw1[Q{Z-dDI*ZH.Rhqŭ7%N6~[2r"@?UUO7/OC]bBռ @]žt!q`iBٞ+d\ތ(h⓮2Ih1 v'E!^JLc[pxu.>U-tz7N':̘\ί+%e,^xšx#閭9HGiiNfޏQܾUF-T\~q^[DKWSHcflmf y[w(W|PTO~D' w,C;V hr#@&({f ?J ;_qT^@ WV hs߭ +X鏾y[h_76.  +dt<9{QK"M(RЏ@ L;\neBgE +*&M}%]SͳN)I +JjCe-mR!ֶ:|87r/|%<, +x%C+8 u{+t\l%=x#E h i]6u|Xx%<2x34͘P#Ǟ|ԏB{@%.Ԩ/ ^[_c$h KhoY,Mׯ +>I{h#svPv0jb6 |֙NmfBןQWz:}? )H] 6 QrY@W- %}P~Xb.v5C^go?{q +ĺvo\%a>Ͼ}{(C,ȼooTκ=@lyUxg} Bq¼m21r|Zky[lf(l.T0cܞԓ|ds.􃸍>iEt[$0E.Q: /e?C/BĠJee672kf`Ü?#J '}37#Qg1`ϱB - 7ঃuD}j$/; nv#pVtNOpy;Ns7S8~Np 'bn1I +XNuo:MBofZks+p>tSn9r}c:kSN9=ן|tk +)}[)l:' /[,gi`^ݸ bAC NǬ~@W "ğ@NWh Nrb+˴M\Tqsڢ&PѡWȁ.Lm 忌ڛHWJ̦<:bv\^jxfQg~=-Av٣cvDXʧ`y" ɾ%т6;n[Id2YCmWj|fOq~0_p~"hBu46 `9S#`,l٨?T܁yF|4s;N=Cyک'ͤέt  @ɠ:vUaxb;uIǮ㙴[YfO1=tu%;@*Q"+|aYMoz/+_ Xzfu> K ^Lʗ: +u=Il+q:2z5F3u2J#rw+}u`V-UxDW(e1Tmў ?(񵣇O20yq"s0yЌ?5e%N5Iݿzfi +X5xBYyAxt $?'z{lYXi~ .EGaj ˔QG_z t'c7.Mc}%O;"fg4qŢ`qoc+VS-,AKЩRoƻ&]- ++Ku]щ\Gj†N_.$)hXvZtMAuLy#A| x +Жĥ@ b(cDWO~/ ynf&0_f< XU2+*v@ Ji8NT`gKro[y,{%E4 t7mZjiJ`HNϧQTZ}j3`[ce*eisq{3}K`lqXf_τ0{5Ԗr9т09K,zlBpTS EӮڀK-Ӫ%b0,cܒP;XfdUkIL}`By-oETs@\ѧآPW`p}dcQ8fs꩒1 ۚ%mRbGJiP<db" =#:㬄13l5[^Ωy~|aTSȹJjfڱ@+p.o ;#FKtA6p-k䂍t4e~R ̮* ≯/t}L<8v실h9 +6iYs;TJ,clCBՅ+N|ygJWUa_4Ur{z7X*MYD$i̭mSd43|hg?s>ѺW? +4hi=̮=W1v3z}fڱ3Z +B|'Ԁm=HaQ63Fk1 +yHA6GUُC^iȣ2+>Қ fGr"fp,J:l;U8ܴ`$8Fyn9;(m+$w/ 6"qO}c#XV%Y0"S9;Kx^a0JɎ.m7)aeoNd"r< J5ְ)x_ҘdKJ-ֻXd,bKӑ#bg$H/9;T2i}}qND5)(q\h"kͳI{I,\kMJ-^cw>Vy@eWWfxWRO_gJDF-|;|2*mK\?J˾3EE\.#\.loҦm6_̔w9vN*>RVF9< ggjuT?b'6o$/i;ʩMG豝\>rf7zr=UwZaNo*ӡpmky@Wsk"/[Qf_RoP}i\&.H>e͹˭bۦ&qV}ѐмl591rmgsk1Ɏ$!Q $ ^R|vPwt#V:0Þ-MFO8(YzI +0Ieo~@v=E!Yr;j'N䮉V`.&^5r0hȮѠg T!lM|ySRjBC,WSL8OJ-kRf[ZRNbVJ)PњgZY1dPsjՂ< \d4Toק amKL%$Mdfj6הv2|.\T{w}'kN%OABV8fVLɡw%'2Wy.^QI:|,Q85Apq׳ex^~HM&@'J' .m3b`L]N7MX ,*@P14ӾAܐ4PPcԅS:9ޙʭ*ȭ_]?Iʡ{4Ɠ1?!Yl2MSN>ĘNj#}߅kJh{!fSrN7 [i:cl`{;9m Ę/( y&rYyNw]@9G[{< LdFGo )lZ +3Ŧ4*}g98x"n`W"s ̅NHڒWv):sRx$%tׄ?qڻ$JJ[TNtD z{ℶsRr&fW$3ch:Ǵ+x ǜԉƏf3W`!oQhsI P)3̐=ъYc3%39Zy ;jlfYVVNKA595|$t!xdfP<*. 5`% Ll8g6p;"d9!r%c\hIځHx c X]Xޠ RvNF8ݩC k46pBeguT;T!a9ra! o ӋqKb~ 6fH&xP.SWZZ=2-^zԲ CprpѤ1vzm{zhͨ0}dc.+=Goh$ 4xnIq[-A>7FGNHۦEv&MM"B^>*μ4_fI +=Cu#LR2|LvqbP:u?l- +W{YOgb1?}O:h);}LT0ˇNׇz?TA$[$/h'yH43%JJ37r sxgʹ;^cWCo>/>2vw+8!0Faw!:l⽛^d6R'e;Sva|F1R>զ1h\&͓JMF6Lo6@l|+lw9[06.@$>e I磷Iz!\\:gz+"Ϝhnqa[%+5^x3"3zLK CD'ǰs!,E2{#.7e塵 `2INIIS~]:m9VƢγk5G,] jrՕBY\'bލ܎=AQC?bXM%a5LԅG yzC|EU:<,(I>VMȢ-cF@eץᇘ cpg8L WS.3Fk&j35^< zn gf: R뿧25 +xTP[ߕZx{WAZYh?swcSNs0/[a4?T(f]LGr_é,bN*NWR|m][ke:۩;= Fpty˦(E>=9Ndyyya;-t{\YPd}u^C0v+uN7?UU0(k/%NXy,\ Y,D[wt^1荭>Cl]RI*?\^mso*v{l21vcS ?UR!y !BeSR5߮/+MAǩ0T:4HN%p%'*cs0 +7$i~͹S~w2.'?z%$S\y1F_8].ER.CS_5-=QVBi^F Шj*96b:z@ +ťӶRhγk.OFDfJ.E${; ƨY1ٕnk,PZzw`aA3 wTjx#iBvE_]w7Zz'UNVAB _+f=R@OJKv5J$DST 6VxACGC^Ij69FMn/C1/xza-E )PiA1,TB8'e(n)ѴG?q + +1)[^Z"`8Jb(B)2 sDKC`xw#Z!aH0 >stream +HWk[L!@@[hA(+Uw7]v7e[`.gfΜ~Uʩw2xVngY-vrΧ)gZ;N +V>vV7BrR֚^5W5iM{_P'TZD9ՒWߕZޔ-xL-[ Y-;oޱ:<ߦG?'I~j6씗KΥ.c. wŖHB0`}٘ =f +9I:8F^fG\{Tp3ZyF(VzVL!wI_IQZK2ZJ 1[,c8AxkD ă;o 5uіAg4=:|_WmZV_Γ +ivBeP4zrҪv.J3Zg N+m郺8KVD'UƐBICP!W]n>i -99<Cc4h%BL)}{";{!mA;!Bo'%mc=Ӕ}W:l OZprH>%}#v!Le4IӬ^޴O~JV-jGǢ/|+wλʳ|ZwVuOWM'Kh pcXJwư)m !D 30(-o ?%bpdx ,%raIGqH1UT"S:8bo] *iv_Jq׼M0]9Z:BHf(pIC!aX%@Ban䙥OcJTǀXϹI*0ڡ>`BcIv\}A3YM'lk]I;zc,\u0 }JO!@HdP +[/tdM}תzt޺zE9{/#QjSʑx+ +'5 a}UzX=>Kvyn6˥ol뛢edOiNII9s5T4K>0GL Hcg檙ѻ>өr>uN%}  ݓ\c<Zʗsǜ<'4 ~;4Se8=ʅ_ r11ǩ;e;5w4ZI3\Nj߲F_7Y>{}$U)`Q-o MRt)Y]Br|OFI毀Jv3} *%l%a +I v2;ښ +)Q%}u$3oB.b I8~ *Nf,a#ӻK0߸!(Ibd޾d~7CxL_~̋08G$ɼf`ˇmMʉ'fӕ1*]y1Yo_2F[,vs#a7+zԺHma`;9fjBJlǝa@gRWEw3q7vM F3!IY BOdQ_&X@KΉ +FfcW 431&LI2͘F +Tȴ=*Sb Pˋ9\X\%6Ha>:wr+Cu?#SC啞iwF6gq _4j$haR]6`)>KMڃ\ţ0eDÂU-R UXHQ?$X0(x่61 +VJWCqsAo1k[ .x#a='!TJ}bEa0v#rׇ9fǭ+C0uGl2&?:|&ܱnB 0`l~K2}k_8PI54iKB1M[il/L['y"mʖI“pEJ+"!$Yr>xH Ȟ6 +WO%TOD}ïDH0 e93LCI'.{6Q6b5 X}NL X@9lIBvjre'>B]a +!>/01'SfPD_+\E\֕BwCX2fz"Tv K҃wJx1tIAw[0 "5_Z̻0j%yeUΊޕ( +MnlQW»rw⪰?082 7*bf G <Ɏ~l4\IN:pIU,ɞͰlxEF~t7zGg:דex(7kFEX^?<ݝr̳Г>Γ0\-D~5cG;" $ա\Ms_-ݾiKz&՞g?EҁX"L1^v-G/CB'*˿lb`Г2QQwnMt꞊1cjs~q8;;S_{țix +t5%V{OB;jao;v7랦CTݞ͜k;5%P{C` +23ծkM5s^eJ8!!d%k`EZ.emԑ`ۍ+ŌoN"Jw +ֻ2b龜Wayӵ8{NwQpV'gߋ݂w+ĐNw8AУu;Ek^.4 8$l$+O +9o"KC% uIxA SrH@aT ] P' 0ֆKbk(w99ÝSK:^o山]<4_695{[!ytz$:1#-Zw&O7wn?-Nz&1<=Hm]&vf n`OK}eҺ4D$T8_0Dq<];ZSg- 8iJ.Ƅk.\c?vũL`A8Kńx^?J%s8E0B{6ĬPseD?{0 Xrj( ;3-LEs¨Q<.RdKzXSكUv#0`WiOc]L UtP`1#0HJQ'\\F{jĕ7i jZ S8c2, EJhRb P T,[QGYا`Q'ZLvGխX9xEk9a- + G- +c6>7㰧6).QIZ6荧/OotM䃏6SdRE#>})[4ٻtx_z}GګYZnrX+D[*'߻c7t,}|X$ Ax>6MWD'lo\om d'oҭrln+-F(\&n*,XE3_K`y }/LFk{a_ؼg1Lvf7mg lbO ϕQ`[z\i7RB Bs=͖& S7ǎ74b4/i7Ź_r<&VrOȵ ŗ偾4s7CGȽp¹+lVM)*ʱ3*IxBL$xD) RL2?! ~{-RS;֠& +R0&5ay:+ H\Ã.' @V'#'sQE`̶581EmV!TVƁ]a7<1]T@gǻ8gRK@hĪ,dzT5@M䝰 N7!1ٰGN֓*AIu_.iyaRrbc AX G8&\d'zt<]k >|h Et9ǃv<IJ~ k#L}xO9wy2\alW:͎#F2/ Ĕk?[X!wj;)EqeqùN-{tos~xLai?y/wR'"7YlsX+=S8V'is\E8SjkxfU]$Ϳ6x 7 Z;EXӁ.z*JW~|΍e) @X}j@e) + +0yʌe<%C7tu;of=iތi,`Ld6WLdMBLżFǵ:crI"DV.Yq !r=:(b]uȿ)>7`h4FcKu +<yqH*2XAά&הeYG@J V>[/z&eͷj.3I3XE=rC Pjgz%AUxlsܔ\ʩUT $s6Kcu&ݮ&ԑ@} ӂ-n!DeA4y/ QIJAk-b|<c_ՌSeMtl1sD**7wPn!IMRˎ@R?ҫt+u>p2 2aPàL2 Z߯o?Y:TWWڵ dqĠCXRo훓274bY +V^q0$K$PfmG5 BpoNzԭ tO 80S31\64C8C`$Tnu 4$P<&W29TW4ڻE6V.X}7M=pQd؆҇Pq>Dװȋ& lZ&^C9ˆ gU~v GY?0P҇(-QTԄ> Hx qp/eg_5wW491c7MXԟc9?1 >ɖNi(E7M_)W?r@BI#lQ_>ِm}Ɵ|C`W:L\bb '&o􀳎}c}}5MDl˛?%>)UӮtTf-eMjH[&V*/R?c\ɲ"Ҳv +dg3!Y͑)Ch})3YM<f5,ovE쯖bA]!.SŢa˓7x!bMw>^h{|t2n!/¸ǁɪp_qߴlO(ys5{hnf]>z+rb"Ug, lȐaR\wgH0? "+*/[HP5H@U~B\]V1n]%?'BR1>]Ḑ sʢP/7^m *1zDM*0XP02!+rm:vojS~88 -ܒ `J= .1y٥˚m[#M,i!&++‘Kny%\rl[|s%grr$?ngst`d@I6n޸1֎^Qbq40Vc8 מע jCܞtJD"?g uwZf ++UJ켙˸ld|عKGeKm9o^w&.g7{eM Ⱦ]<̈|:~0­m@F1u`=Jжv4TQG#3ݍ-&!72I‚ +'ɤGW/sZ FYv@_c¹ApFM@yj,+6t qA2!86ĕ́ura,;+j17ꪵ1_Jزd<#r]*KZ{/{8FSů 6Ҷ#E(~SPxHme"ݝ^*QE5|}BڤῈ_`"=W XS(د, fp7jzaQ%y"_F#b7o˳cj6іb«7 :$^:TM2Z@-j:ԒѲN@Y]5D&̼1UW^ s5TZS+tRp|wY^~.ƜoI1|pcWr#q%5j-ei/9M)Up_,Q.VaRBH+\͑ +ZC@;.9ʛT4bu lnFQ_XfDP.Seҏ`A, N`L[ +-Xveo+*Jq8ٱ5N>>F蔺s64ɉ͉qk I>4.!kS\^0l֓7M@l5eCMJ:ZT4>ʐi4 +7b"B5$|F?v1>Mݍ{&iyk{B"VB59R}̧9gemV2my{v ǠAaXQ7vrS P}g%AH9CNFqiؾ&urDݻm#n@14_fg>.E]Pga>DwF!y|2!!Yb-3a,nR惓{1AqqZ~%򛈤NUX(_+K2,RTw he|Yt]鑧B>A. #Sd:eH3\M0o69IlXۆDVB`|MB911**woMar1 "fr;x0. &K^]ub +NM&G˧46|aq=jJ1YL0~4Fu`}|qTh_\} RzHcIYPTҸ 5$ i0Nd1 =wwox|$St%GٻM)ͣWd&`n5!s# YVl z16CZk+5P7fS+cPpi5X±6"N,4,97\Jgx岥)-,OQ b\{z$XQH| ß:U"bD~dAYH::3>a%q{X,#'yKk.E⨍\H9߅T+iܴDȩ4EĂ}yPkB1*YwCLWNLy.byrQWz!ݛ\|<(d! dù:F0ѩ^DA ͡& ѥk ?ÙZ%sB< Z`6YÀ: M GYkmdnH1h%0)\Yit˥|_X,kW:J;f A!Xh)5OkٟҢ3t}?OÜNW_ػL__eES D%Jv%n^AF2]2_LUu1hAՐ7 +jD4]I~)"H7e,G7b&;PEs ?Zln4h9\Y^}x]ITQ 0ǞW endstream endobj 23 0 obj <>stream +HW[nF]0`aFz?A"1[xăm٤VCd q9UlImEA>&}!]uު8_b8m٣Gal0i4uzC_TS3*lU;i*MVq/z{9i]_WC7?o7_÷|wzΈQSz Tzj?47c~| Sߘ`GYTiLԥ3. 2=Qb8,~}4gjnW 3CΫkpe)pO)M-o ||Wz;bdZqm?ȟ}3%čR dzN3/6]3~ݷk%Ny6,ewꔈ$9)f:UokM2L{4\(YP&ϯd<.=hds8oaSM=uIi13;o0ξ^7(l41ܖ" ˘UlEM7{t}\mmfӌuL==pesA:yƆ5͇ӱ&ʳ=߻.N964Wkto_1Wi;a8zxwUM77y/;~ܬ'awQEgpպ9­d,^|]<Q%iF4Cu훱>۞=uZ={w&Sr׮Wx1D;u{5WfE 04Sz}0͝SMy R)j %F*i_s.Au`|?E %_~>frȾUUUVE*_Vҕd%*^Vʲ,Pҕ4.U)KQ򒕴$EUEQ +]B+hABP|ptPAx`+_ =ԓUt ;3N;;#-l:k*+2K-1)MakLfQD 3]R:hhZhJPAyUFiTBqЙd) NZi +? I*D) +NXaJH!~h*x [n2 9V,00,Њzpo6Mr($#H$A.'"mBq"#QF\╤9\v /+b>ןXkr*FqM~Հ-}jjZ jܡ T}UtC'tBgCLYT%A g'ҥIpKLgt5fá$Pntʀ,Me o%W-٣ wzz_ Bp(] Ђ5CE y?T$ep''7Xi))4r'J^!i"D)@d9@W@B)`M/إDhH4L Q*M * +PkRWY%z)*THT"YMt +RV$H[ D]& +EL,Y䳉"Ef-p8~${a 4HA*6`Bl/KyUgxWjPa8Ӡ;ҳ>2,XJWidɳN"vD2E$U "TQL3$^,0~RMW$C$IDD%[1IVܕ+ Yj('R*|v+a\df)RxWjf5~%%%wՌi%v >D{kEI]MfFrk!e*ceZrƭ +'QD2(= pdžt:HL½{.+U/4WDx/gWcp.S[79<1.ÅYڝ|/ϟ~xϟoOڙ% su=NXY~߾q*!GfC#})~xӏ9 7nrL7rs.|O?_a禶%99)dz_qxX֠GoߜC'JtT̊ "A)#pD&BmGņOWtb%bQSቆ*KA`:0&T>CH O4DMTS+(GI#v 3#Duxܹoy!pk0MiiqWP i >%¼yfA-RK(Y0&tPs9B#J#ܣ&[DBP3a>=Lh-"ۄwiqv'H`.#a)̅E Ma$ IP¯b_z2  bI[u%j.<=R&CC=oL!&}i,gf>Y J3˦!+smU q*Tt gXfΏFN}@(":_~`My嚪ڬ,|S^8V)DlǷ}*Pldqa?@s+Tp;țvدj1~yuد؋umsD~#f11YڞhScXWHHH(,0Ug%%E@B%Rb%rUU +欁¥QEDTDTJn*҆g=h( (U(p"q*r=}FktuvwxyT=*_bV@8[3VmA9TALKF̺(ʨ(hY$HQII(bښBsȭ;f;M;I[4r|! =[ P3\ n(FRZX:7N̪@Mt$A Cqm`it.]ɝ)ʰ7_A6 :(nyAeHo"y~%FF3Ҍ~F7菍mD%ې2 mƔ3ZaFtM\Lkӏe6g@5MJ4:Z<(c~J)?8Bn1wsXc2=&5br;Lrd:|F1<QEJ((*J6h@e[Tr$NSgqF;1n*d2smVzԲ=j3an)2IawJ/bju؉u孕#!uJ EW\]$p\QBEu\AklNQUeOG桫.Tzωlh/!BA0sD{Y#5pUF> Wem 4:@[hv #B]L(&^Lc `ЛV&nk?!Z8"WеB%mmE+VFVIIǣ-2b8ū˭^;teO4岲?*CmuF,/]|M.^7%>#e 3F33eFeMeU\`WK;~ɦ0i"!86LC2oLsza=/fAEϊ*m-fmRvm͡q){4@{ЛiN%C6},̽x\×_bC}õ-CAsjȁ!І._j$5'I#9.u`+U_C}|ط}}"Y䠂5ɧbjSҐF ! ةEYDY%b8*< +pEYxUt%ukG]P4Rőwg9t!޳f%g1}w_\#?'q9<:~9 RYq,8BX!SxE cDFK=$E՝G E"Ԥ!A "٦%tdDd, #GBJIK 3ܠ}d!6#l.3p0Dt M*f<Ş]|Gc_u'-KF@sg<rWN3AL.Z3^2 Jo8mj{g

%6qnE COUOӛo>Oӡߜ~oߜC'ۼ2GQԽAٖ%A+h X4^n%:au谑U:(tS-d6Ett.eUedUdI/BEK[ ɪ$fjDBl&6IR6Kbh =&M=% +.>CUTxCw谢r(|VGo%z.(*eS2Ea8][`xN$l%Z*fo|?P)̴R w&$mZƙ<ˤdpʞ#1yʝ@DTTU&maenņ}pXB[qU&sͶ,يكV䵪V>K`.s]O>LzE&>>?̨gT.T5% Q iršb$V]P]A0]G0LJ7<6enyl AHȕEf9;qNvşZ;YhN֝nNfYph+vvg.L2i&mӌsg։fӖL3kdf)1䔣9G@ׄ'/BFJNRVZe#9n';e J$EɇXspddR?U.`03*IEfsŽDvBՂK&DIJKdҥ#azRFU&k@tWl*DUJTkUQIQ:8BByR3t_VmjLMI;Sj06X3 Y;WsP8(nҲ=}P>Uw& ˿gE\&σ5غzh{ח ? we^TՇuC_jO|8|G?tn>g:~}IFMsW#x^i l䫹#J%70oX.PV$ȆcHܭݚҚĆ]i?8FҳW1t]~=׾}ßpEeHaENvU6m7 FSI`PT-b9W󷹡LєL4ю?BYi4Mٴs9Ԙ)l*߽<{p4>/V[ݮvqHŧg>vq5vݮlxfu2[6ǪMAD[f%mAnr[SCyqKSC] uvq'387x4žɾjj[v3[ ۭf>n`{ ;Cf;/ڛmUo*I?=Wݰ[u'j:zNA txN&WUKUĹV.8YWmPPj2ͫn l1XUYR R:RT P^bq썑Ky8en hd{c!}{pc܉*-"%08`B^! 6@Op31}!u$XV:W5Pq.L ܉il(6,/1#c2` |~恌8mN;jG™QN#jgWKT; ݀ۺn6$8+ vPt1{re6{|QeʚLpFyF9~4e(qJbĚ8] QFHLmlRzRT7 >Y M6r]K(*P#-HFTiXEaVN\tJ*zg^~q4U4JTx^՚J)a'*qh HnL~%WAiոӞ|PtG.NFDR&)"\b[ȦN{c&m \䔒ʋH+#W5=[B.aW"`°7R9L`6h'heN <$rDB͆P9Y`nn8Y^o{j޷Ei;y<3kk}M__ijȄƵF +fYl'IFċQCG0!DÓo.ut;mxP9 \ g~37Wm۸QOW3bέpƷ"m6)"10H.%zBJM5 L + Lx&0#WzD("T9Ԫ4 w'rwI'tܳ6pD3 3G63ps +5[r lT9x"RsYzw]IMm4CZs&PW~޳{f +x+aϕܝg=}G\nw[nE~dM@Lx CN$Uj#]O^d>][.ْIӮ۴bfK)[N[9{-60Wߏmkhov#rÚ^iٮ7Ws RDgIa_su]u-)maSbE1g!q&rv|ƝYߐ|UO|"> [u "DŽ(4 Lu^-YDkL +)pF8{dh6g WȨ3vv[ʲ,34-#4,xclNuiXy23B3ExrH20T4Մ;jY#rπ1<8?gE)vk1,0ۮ˰as;v@> _2vH={Sدm+ ET]ia4ɸp& QX7I3AZ H"%Q{`Q;emv+ŻZDzt\8`ˮ~&6U_R.wP֨kJ 1)$H#)p 'IB*$$M|: 'd1EVVB\GZ|lG>-ـ55Do!D3a-c2o[:}1Θ bY(-en  ĴL)5ܔSNTS P6{&*M-jIUsUZBVց+]z4vw4bp"]RW R: /x @^?MϞM.SCIE >aF7 4 + v06hl2:mg{ڱ@ڨy 4]c7}E/7Pۻ۾~~/ 8 I69 5- kv!=zYYG%nf fQxQm%auzTC1]9B#^ҳŃr例3#?'q-x ~%.[ V3l vX6G #d9g!#LD&EGH[G cE='E)#T0uD."{wG]!"гn7vrHɧ$gv<`Nv=5eAm9yd5:f6km^ X"&I,H1n rK[\P!+#͔jc8 fh*PJ7N>9ukU)NRMTKE=Ow^S +4_(Upg=U54O 07| A^󗷯Áۻt?=uts"L[wbeStQFK/1Lw +}+oI1bhsj35 ͞q-PfĘhq۟Iq!_{ m9%[Pq;4 Ab,]]i]GuK.!*hmkGεcᘥprYƤa +gLTiW3r:kiRҖ>6^d8X2U;V d]yaU]d5*nƕy)кv/Jwj`WzPG)9w->>ծԂ1C>Cl`wp;4fAAB°@qgZZ;n3n.t]94h׼`c圩Vqk6+`͜C?U~hoں\=Vy*f0ڨ;P鼊4,P: +q|ơ=mбUm*@F0@I)tvJvy-~|hg(u4Q +ZfkzsE{CD}l%+:A\PVKY,E&@X PtDE@Z} oN|G3FNy l΁Zffcb .;˒C2'%z?aB1Ҋ #Rn;څ'E~qR_!OK.9LrK턏N~ +4/Z%cmZ"X, c!'fxɜnS7(ةLP;1KHdKوG$E(3rLJ2ވ4 4`M7$DQ)c0ѯTQ&~)Us +ڴ&f3Bn +3L ­ ON`Nރ?8ѹtew,9 P<+`l`'P=7owۜ}[ڷshc߾7mJ;s 1/p5!( k.Ƶ@z7MpVS!x7l逾 [[Qj+߯ŕmv@N]iSa{0o=0#c&6U{y͇g& |}1̙aNfh `7p49(Π?=q#%N {Xf¹B(xreeUqsk7_>ʖ>?A_ӟQ̗_77Ͽ!BcQ¡maUƪBYWB#~~P8[D+[U Cn,ݝ>'8<oo͛o܌/o߼鞿vo_|Wkl?4jPN#|#0Ms8b5HGH\!jTElIa4hGYf2~&m0SqΕ8ΕVJ)eT3_J`)=_qBsKg~1!=Hli +ܾDo J.1|D)ʺj4FPe%NMHD3q)ux;\_˦WΣe Nck6YpVQb' d2{SlMvwuթsN&F6;<)vOT|ũWqhQ= LGޘDy{f^Y7s;턙Wb'hD +o4ldT)^;A@3P+i T:R'4`hY8v]I7BRlI2Ih)Zeo.uv'**\Wة,E"+Vr`\L UC [iT+̰BjDS'AŦQZ2)p½vj[%6D?2VVN~ө XdJEX *dOE.Jz+Zw#cux>J٢hcZ)EP [:pV֕J jn8{YmŚމAB8 +ON-(6*}3hOF v_^ BPviG֨y eSjR0LW~IC"/<83 o_JD_LZƤz+ưF~:iWQ&C(ӼE=*i3;=DyrTZϙԘai뗕߷o{c!k~??~7~.Ͽ|Ӗ8~OF? {F?5 JژcCe-?/ӾY-TXJE,e4`M?&Q)M8'iFKV9}ZjWHɸC>Yc"O߹_RPhWDD=im$2]t/L F<|5S Ss:9sWֻ&'z|dZ~,4IX~xVȡQp9(,\Nb^Pb<\l5g#ek8Hoم*jrd)N+et`O{f} ˖*AAa:Z1F(ABƓ^1ᒡdEf-.{Dk(e\:B8Ukb^ +w`}hRһr#4X G%+ɱ ~*VLbإ&_ŬXRRĎ"(`qR +Pv1Q͎\^P7V,Ю)ӝTkSbjُEkEJ9TXthtƵ .6J ?s{F +K0B2]u2*6۰v=`Q@=>"CAE YMm9f|u# LoH }QP[ǪņNq~r^hʪsMŭЇ +='՝'7Ry(8KF&ҹT/d͡{}3`aJp=6 Z"=f-ѕh&꒳`n]6Lc)-QE/8jIrUյW3y9J'y;*~Vm]5|@H1_xdMvc`o}1#4xN+Y=숄 VQE3s&v zLWiZ8>ZӍabI{Gc12~d6îY^DwF|VFq.:"xail̸֨qdlB((D9c1·DS^maTWch OMGB}2#VeLhbmt +hډco˺7GS'Yalכ2*2E +YmtR UY)3\ǚ'e@kX֍gI>8f{+YLTn#HfM z9X/`8zh&(! S[a~zbމ/P$ y)5n"1zM#+e0\m +[U G IGvp~,D}66jչO@"vZ\36r ?{<3wCW2Pm,|h) [~t˨_Axnj ]xn8Ä۬ EiBܚUpJ M-RE6`s$:c`:kFR\хȦ+@@&`!(T[x"vaGMNBZM>tXua!3LʼpV XHEI@AOTqr!T _L RvYiqGѡT:(zu1?xb,!PJiHR§-v•@gC+a,S +Fke'jb@@t)eīg]@bDrV6)Aq"'kiۇ)=G]K^7} CV\dr2.\ZS02lS,[Mpj)}[BB*IXPֆ5,RfuruLac\4T!wϙ ?vfEB89 ~(a9HpAY&c;꺙m HGautu7OGiD8&-F]_f_7ǣvdll =0lJH(>/G%86G3I-̱GV!1 +e fwj{*WJ{H1.0mN,jѮhA3 Ў]nR>H f'xPd|*DR[46mWpjXK/Eg@$BqbS~} *1_@&!/Ź[*!5)Åmxqj@3E}RroSzCIA 'zJ+Fnu : 1[]A,Vw[Ѹ0ȳUGL>y~mQuN@RlfDTPWޫþ=nuD3EP.Bk3W}צ\u.~~ST\giS'uMkžzs,{Х +:oDӧfO Ջdijj;5⢛.¹ ۶((us+oo?q- }'nŏql.@S׮ubv}56=e+ikPQ ˞2y6:%b՟& +H&ܩ( +*b ]WO~x-ecZs+1(^CLC{9]޼;_p؂ghAphsvD+{\d?<+Hա+"3.o']^_?ÇOW?wo!_k_ 뛫z/l>|wutwTŻo޾x"?=~?޼b&7eԴl*:*0˺M0ȎB +GQRSICj&EtI|FumH`U|B $oNUTW ^m鐜u@Da"IpV^P/^ O  U~Δx&C{;CN#EǗ R,R4sHqoǗa<Tl%DhwU.z M_B|,A@20#$%mGс0 Ǜ9%*tnrLE.Ojh|?.5KI?AʗPk-dl؋oۮQ/$?`V"TU^j%UyjyJ#_CU4Qt^Cȩz>* ՙa4'2ekQGW!sG`8VЁhcBL:l+Ucd}OߞԊq.W򁾊fϜ s&jڨ|9?h#<yǫOo_뛿\=ܼ#M `$M矄y hEjU +B\ +)$20tI\%$SW|Ut-FRZjgwސB + x>HHIF Z g8jP< צa_ ++O i >' Eñ*DD|wu 3s߈ +Ev3rc7}ig+ +WW=HJ.@!~Vo%hO 1~@~:r7e[ Dѭhi58 Ϲޗ,+ d&?jnü1h!%יfW%މ]!k:=Pj^?"`zlG8`hJ$yk"ո_(~SÙe?C1{|(( *}lJcU.JPCLIИ3Ǫb$2 u| +8q6& Bz>HwGsx<۱X}>~A0l +)b.?asE#sBz'D6j4GЁ +?m@*(9lʧ?Ė;5@@M^>r'L$SgF ͔&?99|@pLz㶠*;';I0ǭ_~oOd@rD ^h(Ԩ`T!T|>$”cLYd eW_ےxA1oW{<&#%}kb/9 H *'"],$H`preR6aBFY0JRBD\e7 +*"lGT^NAU)5G4b 8E :|˭N 38o;t)Jrז$ VY`I!i.y>:M;)|'Bٹp%iXD >լ!q8lnYF6s>AE-hwk[Ļ?PbXs *6$4l90V+vr2FB0/ECșjF,N)2`mM$AҸ(L)m1ZYƶD-`6JFTW +%pТ^RӗOIQf5$"x 55"rM!*E?څ".pEam!dlFᘜk}JpצTe1UIL&ŮsHjp "٭jJ]Yh-zy|tڲ"I (Wo&}C]][!HGdTߌǤ㖧<9dshudPA{.^qYs Px t.i4gB\q-ޑ@&yI|pծiK׭xѥW~I^ +Ę@T]b>k_آ1%[z* endstream endobj 24 0 obj <>stream +HlW=.7 +\졓I$!?oq*ZW?P@Q]KtSǸZKʸU ]f_w_o-*{-֥]C^ڼ"^p{kzrOjŽ_"zYJ=NEW5K/{ʜSRiZg2O]a¡]%y+}Zvtle LLp  DeD[E'lT~[uCo=D“ќ%̆-j rːyo.7bψ]6 #"Wwծ_Wz5 +^/t +b3Ho"s7]-=a*ԋ;= Zp,zƻ˭=3#z3h1nH߸UW*Es4<b~~w+,1d,J( @8*Mƅ RmZnXI$W\qc:b{]vL9jC̯F}9Yz7 )4k:;KC!똕{j1RGоzCiqf >=ߑxU*(mU=Jg(!Tҷe]T-8 7ho2)(2Y!fEn֒  +J\@P+!oF[BцDi`03XƑo8{AX3Q;Fx5c*">J@XW\^GlD4IY`ZB)JL#Py-4kV6E8|Qsi=Mij`gRo,@Qa8F +!d t*Ԣ|׽Up`.3U-pn:߹+}BӐ2i*՞CC%k+i YIB7HG'0Q|#;/*;J; +?vv,;TtJ:;|O" G`$?U.avҟED]tjPX)*Qy1mp6]c JZ$"lz4X'=vRAD^G/nڼ(H~6cl^iZifl2F6Fj eZ#R8B͙ фjKĝn%q|hOۃb ̚:f 6{V~Vnڷ6 +d 4v1Jk˃9=Pk0ǴhAV8zklaN(R !SIp]Z%R- +c$cUuR uTQx +8؄FIZsr~mKpT&^T&LԬFtSm]+m-T/#!3>y7[ߐRcqU#C%hfoi)ΰ>DQXjKME =D_֔CGKFl%du 5PqWcY]*]ÛQje.'40U Xu!u:Yff mҹ>'sI"9HlIVqjL=VK,)IRHA4G[cP +藱guB Wi/EK|<6pM4ۿ<ވE }E]'\9QSfD'U:GiWfP9 |.dȕgv238睱ݟfe$?[JۻSI$3}~ǥOM⠨^ %9CE +y1bE }HK\P.:5W( (JARC~ o֥=Z[۴LQ!;$Q+0ZO-{S$;3wC@q;mӟxm-,l^"yY,3sފ'S8w fOggpEh~x,6H` =vIa}Q\9}|NdC3ɣ дҕ=4[~Tl +;rݪv飛٥Z2wHPgm|y|WМUg+ׇؑr + >JE[͡6Ve:L9VjSzf?֨vANv5NN,cNLCoxmh̫86x+mwPkj"j8V1oo]ciuYY,)$B8_#e|Orm !A ۉ|hQd@TKɲs pvtviCW}=g>yVk8҄J]L{V QҌ(<b1206C3/{^q ꎔ{ͅ'uwQkޖC)-kcxq6IQ"4db2/6Ϣ `/G X2䇣̑ ~!fFN]B$$RM Tlu 0>RzAMGu|JP&iU'?P%rd9fF#}>lOGvH2Ƭx(fNgQgC;5f'.f 'gHUpq'Y\ 5AxʼnbLĘ3xd/qn<_=^Kǿ//8ga1on>ؼ}] ;٫o߽z]ȷO?}_wE-oo>I29o -*3O$ 5,LD<@0\['4B4]]צ-6K-0d2E=sUQr-\2hPBSǘ,BJ&Wuߔ((i̲p;n+}ף|\ÞP͗uqE<3S8]J*^|jPML?ə2B8cfd7,ؤ:޸#-"dfk0*r6, +2rWXjzV}~a3 3g6&gfwdvvѬgJq8_myy~ywnno5'R' $dah?K˚XI^^fFVpBںdl sGD]&CNV$IGՂf*tgjJ\/ +:JZ¥S=ި Hq/ˬᇨzڕmWbY_ni(֣p#|}j/% 8i%oQ"N8n<>!ɺ畹6:._݈ W/rUTˬki/W>CD>>X!A0+59c%c|^ | +hkr;~a9ѷ@nqKi99V2/iq{_nK+LO{by-.rvy7OWۺWȯ@>g:dB4Cئ g6$"6hxY k"YS7_̅2buۼԶBWiJ"0k ?ʎ2P9Wۇ~?tD M ֞ƇiSC) r|.!Vڄ+b`d6 $shSr=)6.&g!I6JB%#Il,+OFh|nT6x|t\{::Qo95{d*wkcʭg`p!(Y3 29Y2wu%b&^+[]M.j"ۖu˧OF*&аͪNyNFg Gj%eW<L 0/O2fNBTb!󞚗MǾ hn&r T!-wVH|sDfVXe{LXu*'Ovzu\ ^uN! 6+) + +500}a񽜬bˉ+oֆW= JP0gzV,FHޮCs0rb{ 4X{W#Kw#= @p6x`rXqA7WA_ҡlV`{Z}O69wG%Z1IԡRӒja3A#@5i@V0EZ H03fǀvZi:hp~kq`,WMJ] תv+?TkTrOպNM/۶MvBYksVLRҼERH_SUnf"*-v^9LcWH A"H2)٢(уiŕt{ҼdrXUtjtk/^ z&`l\z&!S!(S]Es351X>U2qկ5)ͽaǶGsH6.hE^,ABJ "ʼߙ$Uij؜=:m Tfb(Ŋ{PixR4p3<<<0АYvGQg< DV~ѮaJz T HTxL nT`5Y/7MF$CB~xd/i~Anmҟv`FۦJR!k<2 )"3AwhadaFeeD+7Ǫ :i1H%m-.Us]1Q%_]R.}{ߠE{QW0x@K%hV\;ӷZdl 7Y1"գP$w׳օAGjbfܗ2m W uBi傾J}z{k5CJH`psᮅ(bކQ:ot D(@ͰI *{Rjmm3*}k+c<6b:1oJ"O.,O)_)Ƃwruڳ(}i%{uGߑ4xW/w&Ƅ@ +E0=7备Mj/-ܫ Mn + Vjãi_Z[b1'L̟v&cؽ7"Y.x (MՊlR9Fr݉H<4S:4N + Yc66^IXiRWN +a|bEZubO!yuT +dFC7)t#nʺ}1%^/~2XCݓ$DrO,ͥT \\9HU c٨ В;>0/~ {pL&s?Ꭻ$(<.@C\OB\x`&1Ut@5b n#/*yAH@Xhb|\5ɉn_:1C"A5LRP܍f7 +2c"^d 7 5A{ٟxMľf\}ԅPjmGĊe}@F񚀖׊!ZPl mP?An[IH,2 c:)q>M:+V;cĆ$83+Q+5 ~wJQ+* OY~оJ=vPʗ|spsҼ>oAW;VUX'^ ? ,1DZzmלAskтDBn cͣ!;ڽ)&k(dlyG!c;2)s*rK?r@:J! C&L5+V)g>W)h>2%ʥȕ3XG|uq㜠xS;J0:Ǡ[6 28z8K1S,N)x ĚAZPr;ɫMJG1+aw$.<zBĭ+H2pJq2V< 7 + (ƾ'B\D y))=pL>Jx+|kL+8 0!3n+wf)*z[27Ur֑ ;J +౯i]MNI35;10+HIIe],H:~Td4afg*H"ibH+=74'tjf +'rcנBbUBNob"31Pl\y+Bϕif fPbMpE׊?ن歹Iga_E~TcOkdǍ|1<8#I4> @Z#L.LKvߚ|c@*2ZC5fv7ōWE`+b!*~/eRbMMWejKzMNFmf7SC8d΂>X!0ft I`ͤ D%M ,08s:`}Aơx\xI)rt%|voN!"}#ŚlNLcr7LR81܍ {Om[n +G:|]FBF`Q=o9;r4"M>"_sWPCeRBҞJs/;SqZZ#zBtAnW. ӂ6VzPZڷ: ,cq|S멈tY xuui<{"{'[']ǯ~/:* ʾL۩ \PfpǠhļ=߿$Ό3JtwUZyiaH-^<%)hXa> X#={~sw?^p}xWW7o gz.noO^<zxԶzeC v,jxTGrmy[rPO^Ąg5N^$^ aR5eמĎn3 C AAr3Po8N(z"$tz7/$" < KxgUHZ]J yLeSĵxH6C`H4{ncw9Z 8?h-皾>NaЏO?>;s0Ļ3XG}gόOtL3%C=fD*PQެWhn#"˜ltJNKW6c! LC|5y݄s6Ȋe%ߕ(fM8׀U4yǹ\R{[$i;hw()&Yg.b_E,wUv4.zS*D ,Lwu܋? Ԝ`&}-|k"sHԼL4L ᰥ ݖZ0ٿ* U?lE*dZKT 1g|l6ŶlgmFܢ {r˵lfl]fYR{cbOH*xv~}y۫o^ͫ\]^M_{,m#{sBڝQ"I.Z@Vu8 V\|Qke&`TE^BylyÓ@2I }''Ǭ}fkħQz1twV7ڷ&<94Z;&E tϡin zPIB$)y*V)Tc{j޾Byɸ,R}141bh|VЄ)* X +2B;r>IUCSQ*+WMҒɡ>ID|2CPFs̛CSl+&KEMj)5/a!ŊFiNeEa>Y^!9kWRa*N$Yݩ*I ABFɮt L>P q0e$-QkwB|376L#cgѳmaS,O?g/ekz6apuT jL6E?uuTftqY[ht.ٟR\㪣 +=3ڰ]pOW2!hEj(EtUQA~+ +Gel.oGB00AjS>LY9$h۞v,!ɶPq +om@;v:nVU4Vu_1u5am茪z"LTMX->m}arO}kjZJҟgr8{<}K^q$3Y-Ou},p.UPMHT +SQYY{#2d <{ f7&(rh a^U~9Rvd3b&r%s.nMJ]gL۲(q`LbgܰxU; $ -(: {et V%}+L4EROc +ѧP% œNmǚ#Pv0W +3pjj_;Lڋ fQrC#@-2a[ sbФ'^?wtj<=E:C%>AMz;,SH(!ߚ( x @cیv3G4 3ANgNC!A:;Ty*;<4(kIDmӎvyh$rѰAV`Ngo){Y2GHR,4)YSpfXa':'-9McarR686ȴ-NԾݰ;: <^-}>XWQ[v\{AW#8=u7\h[m2ceq4CV7FjsB1Z3s {"$3zx,9v o;||o" l dF3fȢ㦑,;0q'@ߐ`6'.I馾d0Oa>ux8s"țzJ.p=! m"*O7R}x]1ʚXWu_sO#Fsi)UbY?_Y4F@dAmc^8ϛ`WnUqfl[4.v$vm7gB!e$کX3!$-QDnpg~6ikCh{ډ' nԣY7n^I#dx{9Y #z:k+}3}ࣵ#ukR&ӚI ahnNVh{?{U.93U`bӿG(6Z RbI .ؼjN&G g Y%b;穢Y3tv6tC cΌ/k11Bl^d Lps_ӯN:]Cr@*<9 ;ozq蠶_h*K*{: w ZnW0j+'WתsEyÿF_׭w5D#IzMYO}2R +x2Zn`) q@V|o%w +V)0 S@d+d>K>.oD~s'ʹwf̂;l*uGOUp w.e9v٣2NCᖸDsK@UjE [b l$ڠ?W]D[εPd"&x;3l]q2PM>_QZܕmDָYGS(2griUQsǡj4^ĒQP8|0ed僳P pB2-%`dy3GPIn>t6O14YKٯE u`w5׭_<-7PwM=9-;hwIW}P\Sj6wҵӢ3K#`礦Ԫ%YuΔZz"ގ.eu@mCS'J|퓁r ꏴ]GKu[XAPȨt՞9OLµ,\! GTHsiTΊ sqbq[ϋf% g &M7F)iCmȟ._V+;eIg{Sy<-RL+ JM,cZR=U"v戶CҴMhIg~9mݞ>o/_bd2qϮiR(6%/2ӌ.ϳj$<7Z#f(/yf؅DμӚ6>zƻs 6{/Jnي@j3/9-GsZw wW~_)6ü^2kQVcyZI@7|͒ +cO˹ g6X Y= 8X|NE/Iv229fٌ^2kzG-D Gӌs]*9% +h7 @gMUJàe##h&Ab. Vpj("P +(le"8yY6}D,ͽBBWCkFUyk0rQIF%˭R +ŗٶI͊̀}(HYMK&-"aZт O&чNjؙ!'O +}e\)jWnR?<+3:CHr=6ʢ\N986b^T?G=·(;˓o޾}q/߼zR>_?<(hS.3'q.h"s[`0Ʉ7|_NCǿ/_݇_ݽ{{}?Ňo˓ϾC_~|}Զɳ~xȟ?ӫ}_vkw壡c/O^nJjne)h'xF2_b0w^wy;ZSml:Τ^a@2g.㓿ڴ&o6cQ>~wCl !wꈢNL</AK.ړ%Ȍ¿mwȱ 񫭬p+Kt o^Mg=AF V!pBXe,p| 'eS;KeBw-L]\|ŋ@gH+HMKZ) VB Q*Ѱ"i=1)T8%a#;4C.H4g:e. )dw7~) +{|Ej +Hty6ֲ$aDjoSժ,w޶F659@eN8 ++zk =C[QJ?L ;-eJj u3Z^"dr۶*t㼭r]"yFkڿ$8xDTtCh^EN#E9V8"؍ce(R mTmBf1wk6D'Ta<r0Y!"oµ A5j(_ѕ C8BR''$ AG)7VnwR)PDy|eS*TU">zx 镗n @`ԢXY~=BhGrY|z1(e'DINDQu@$l%3"y ydr. .3y0i#= GϮ=‘G1`Sp$g%i#5Pv<ݫ;uȃ ټL[#JpxT?Vb#}<{#=!L&ieN1,&JeL<.1 Gb!] Q(έO0!qQxtf&fuj!6!?CĹ\߄dɱAB7< -Fg}- @G h߃QCBN@i:6" a)aRa#T. % %E!ci'$n y^v꺐<;YRm[d!m˗t[.d[uڶJ? eL[;* j+ }JY$ۥp,XL]"J),`ikCƒ 4&}g+q \ [\J +#uOm.vJv7K)%rf)v"S;]`C"DR{ܵf S0wQ  L4 +l;/r꿩/s%M+ +J\nn= D0z~}RU ! 2ngtxJ7@EZ7LTo4vyT|ƅM fI>N`bX"/p1,iun5A.VsUe%بCcKB}5>WQ8?sD4c2ar=iDD NzaN IlI&ѱ@輬0<LCw1J~\HTWK;_<=BhV"trpu8Bql7ϧͬ +Otg0-A,y>~JG̚+*@[~jlXB-v϶=OFuTy~2tk$j1}JZl˶71+7B&E\RH]'*2j\e5Rdqޞ5RN֔OA]d ,ˡ=Ecq}|)RRh5ǹ}i߸n=|~_> b/;w{O/#ѣwwDv=:2(@cHއ Af5SbΤe$PÄO.yALerwN;|Kt |XOv {2f-ѤݒpzNfXL +0 Z2qEcמDjw5 P݌kɲ@)I&WY,Y $k4K<,%=f$sVT +̚ wǮFЯ1S,zl%/)hARds?DnT%I>ȁ%-9cA'l앝`#)Ys<ܺ:8D +"qMIw%Y0 )IgNǑk{?}L \mk\b`PԬrXS6@"Κvp6<=f|O<>Bԑfߝ(iJq+wm'+u̶F!A!-W* s>K7*mf3TZΪ:= 3;h=,xtr _+$I$A ^cYH(DoAQJ%ץ2,a=ci0DbE\V&'r$4B%/I>C0(@[O\s]V/(xM] fm)=fUZk"P2To=T;*讇q2$S7m2R}]KPWCCh~܃w_ Z4AJz~:G$/"CVaay@fHhV*۹S1O+M%eY$T,#宗\,"Z 6o1 - (ѯ麩 (V-]+ +;Ǟlw.гNJ~cvYyyVۄM8w|=[8 =QoF'T@3&;)z&*&/O_H(ւE]wLeWu-W'3zЙfOXHb ϣ\v HB+UJVU*UhbG1n JG[*FqDߡ`zu<%xG<:}j._9Qz0ߥPЕzH$eՈ(]i=̽]%LBQs\0v~(CMS =qLjRQֵ1@qLȀgnJܚtt[lQ>\.َ,bSݣ:6t4|#/J%i^(HWh GJ`RVQv\~2TL2o|RJ藽l&lNQ#?Vs$ )]Um],e[\&" +A[D*QZKeIAĪDlst#2I"N}AnlW'ͪ&nJay$)']; >?'/ss`qJYL2hK/MrP}MvG"Z>e^bb֒ZيMf۪:dNPJ,m599KFAֶm`m0څԶfTnRjlv2 QzsE8jۭ鱨mމp[0R?˧iS,>~ax]PHUӴ#xv䂾01d7¯/ jY2x,8W-ъ`K">߹5uDl AXu3Dqdn(HSS_sArymz4}Չ)~!tX'%K1K1'JK'>2䤃eqZ!Qi^]ZJ*A:C$=:ke]Q̳ι:cc}M+Ք3n.ȩ)Ypfi+B9w>UR_n<;E]!dpj$3M&Egf"nsX*I,6Z?ȼ]=c< s<)xF3oM֌%H?ћ$B!4>@vIX[:k 0%i]Rڊ06-H#cN'kໟf0/PL +gNFQSXor`(͙s0 ;3KŇ jgѭNJ1P'Nۑ‰|A3Aǘb ^Z9I: -Lng78$r:(95%-|IeUMTp*7Ul>*pN=,0@,$S I@Zeae K;SR'R\g9gj8j(%k7 .tCDdYҌFҷjD^`X/+L? 0AN626*Yv-A!XйFôd\̟:ڿ{DCp0zc3^SoQxXR%FZ5 qANFb0򡉪xdJϫELUj~ +fEk*dnSc$-PhƈC5-rd@Ajگ-A+ɭaKbZ)@Et˾3&wyR^ eݗճHZd/(#Xc&/m%^ޙج'?,Vr}z-c&FȵC_pm=}2^)ekDPlVڠy @Hi䠲6-#ǃ +m :?\8VZF\sߊ}o~ƕ!ބ 󖂵dU>db6tN ]ȶ")KGiH gT>iՕ<~1Q^\۹WsR3YOIuk1I}G kWyLoyסf@}mEܛѻֽ<(O<$=aae-. ]Vҋ 5B_8웯g=xߨDToISSsU-ŢͻeUPI#DCm_B]Py04)*[c`fʠE#^Lt&I%Fr6SfNbމT\_YLSAm;|$gDTn\4Z3MfF<` 88|w,N5_3"L/MYT'J{@m.wǴFM!pO4: ē.<($crv 3Sn\ٰv.4q+NJ },lNo Q+|gԤWzeC_FduwʪRn_ʒ~_cFzR]0k[,&10b[82@sCBޓ>?\> #.']_/O7w^ˋ~wGۛ_rs?l<{?wۯQ<{o^~!u}__^{2R9˳Ԃ6}.?0FXžލV2aQ:ErwB &NAf*MF$+#4?d:8_'׍1Hc:ǀW0>~d+7{ +Mfoy!עXNvIE-M +@|,8@X->>̓vTWdq@Ն-rZ&!!<(lҲ}WJՇ퉉ӛftSj Jy 9/U 0IV 7d?T5H<;Nb0)Rx jO؜ X-.~U D>stream +HWmn\<,`M6N։5ENlkybj7Rd]Y6?UE$)Ji7K Z<\UUC|u +R):")4m. +@\KcqEra`qڸR7!EDsKÆ2WIfkfWԱykEӺG G,1{:0GiMYL]zjXKYRk-SҸ1N3*%ѰS|fa~{8ç}\6oWRXnw_HB@U84^oϷ|顽?092ry?1,Îys{bx˸yqy1gwˁ|;=~xuv|ѽϓwCpp (odSݥY3MS'"XNl +‹r&!Q_{> Sse; ց;{>,_s>6c1W]r^4B|p`a4oisCx`T4ȏ*o#@+_D$hIDz6Ly$_(h@R\r{s2( \2QN"4kl9SlC} oSeĺ;7gH\IgK3u") U[ sz&Vzn _0q/ 62r? Q)G@N 'j"$ʤ@+5GW0VPl1SZ))? 'dI67Lc5ԛMKnbQzsPEN5R2]Gc?@ >?aӴLzLHr}5+@;`{ П%LC-}Ħaf0аEcS[?%< ybrƑ]f<(#Q{A|H i֗Mb \J_ +U'I5l84y0| ۼ\(A%GrVltfSxLފьB%Vc \^ݨf@hl3#bj{Xt.M=l;FӍÚAh0vb,, GA&rg {3L4ZFSmfQjYVbZ>҃5> +cf4+3ᣄ,%(|.àW2a6N 38OY1S u+`)Qi`ih6ѣ>#ףqȂ=` +n+Vx%⤍Ҡ H>y-AQnmcӒHP> eA +_*4r5-xhlfJ: + n/o.I @ F,DeS Z&Ke5LlUBF +-0v!ybH$oan=bLLŠʝJD3չa| <^zP[;;\o3NjYh#U21Ey4EPUMNpAjbY*i0#)NQp} +uTzH.Hs%z  >^㐴*b} 1޿dʃ1FyqdFxXyu7H:$EѬ^ཬw/5Z&:u D~jh#+7IC)_ʲp4Y0^*cS'L!2xC̫a7j19)}Յ[%$t{qjgҢC`Q}*\>'#Rڄ Oq'罹Y^R,)CԪGY0i6c`]0mMvMJ8`4FJZi +g_&=f{ 1ڽfeUXZ] |f^'&*7n1O㺣L3PcQ2٘g_jCج;Id3zäXG?.B $ir4NjLP~컅1N^kӑu0Qt#Uuk-n[)1HNY_) M6*&t[d]CdhD@t.~6,^Qqꝯz`-'pF5w9aH[ 1je"y<6[ȒxhVj22D}ˋ%;"̼(:μ z,Zo޲mgʒdddWE*['DnI|KnZ&(/߲yYѕ1#hq 1G&i/$v>il]E}%!HYGGAYxHr8k?4$&KC$sraA7k~v^7I O EJo'd_gyꃗ~m(ad<^%f2+| Ṙve>3T2QHSg0Г9[ញx+V͓d4l"lMdX}堙=8bNJ$7J B~[u$EEb& +P]Sbg]r]]F2ɸF՞xتRqt-Лn MdQ~=BRr.U7咫{S^@Z&P'DC꽋&*)|V-kG\(R aw&R*%K1Sŵ#Ua!Q~1D'RQeaSmLL8I{3"#9cfRԄq܇Ps2V\Ipt{I5ؒDS^Sa"-X +/3o(a*i#$|qD#AF`hTZ"3ycݔz89N XQW R"B[b]UNBl*|Zʧ矾?|~o4ӏ?2/7}HeR4>F&"Z̬zaP]Fg|SՕyZXt1u9aĦe\m(^qOow,IL2AuG#|a<0+̖{aUh &-"Ẍw2r_zއjnsK:`9r`7P9?mǙW:pwX{v)uupvHtXtI6V4 Ě-᧨(w#-!F{$um&1\9^ +$ (v8q<~-)?`mfփjYgYv$j7ub nR.%T>1 +]*;;OE]\6)d9xp 35|҇-؆h +Z/gY9Zra@WZo鲝`U>R-3j{/-eh9 تUY}K%=/[~ .|cŲՄߨ +2t;>R#( +ZϔW# ^m^E5Cl7:6IdeV'0[cTo@h6Ö:r:,vV%+"X9wFBr_"~ӄ2qOaB)!Wۚyfp}="Na$$e6"RZ"D 9$$F;ʙ1c +{M {Y$kTaFD3-h3KWȐ:9%`w}H-4V;}ޝ4@Dz^1.uM fK++uqIErKFuxX#F.} 2~$#LFDFus0f[ET\#|-%!VZ4Un$A Si+fw% +e)CVr)YjU qZ~I7}jY_[(&(pH1JEwRo91EٛsiIbDp{mAtYeeNYfDv;3"= 2}nFT:RS7T .1n5u:rBJI:%y߬M"9IJV>5|WLIn nWϳڮ &YTD58ey̯舼Up,G-6|&w2i!?e~E:)hMOʣKaz:_C=^i +Y/˜SVRZX8iqtTIk̂Wĸ'<s=[ p +lOէT#d^! ̻i\Hu.y0O[B<06 jv:vi!+{97Mś_鉔ɦ[E -Pz8Nh/!'g|%g\~֕R˜la.`H'tȹC {%LPҝ ǟY/ˊ+ +ʾԐ`z$FThZ7Ƭ#\4M֪Üsɑ+?_~k/J)_>ǧ~~~/e7^^{?x1q[Ae.Tk؏gS9GJŜ\t&,9ӢuQ*uƣjK#fE zrR+ AiC6D>a ,:e͒7/>a!hᮏ\ؕDeEX}OêO)}-C߭5KPV,R"kճc*& 2=K)>Ra<Msǻi x+`wPo_~zvvPCV\ʈKٓ`ɅǰZ;)\Ro'q{"8k~~OP$1s8phŶ4' 2wi žŤ/jFmBu@=zA4Zm7z7?-ߎC->x~^m։ߪG*`ct6XgD\V?\7l rݨXyq l`dP] +EՄH v91ɖ2. 8L} 3~&8))<1@U1Kg֒5&Z1J: a&ֳMxyC{э왻ث:@nhSizoF=nndCTF &b5F>L>I54&e4mɉBBu'*i$l1$r^AܗP{LYIH5sftХw:{\S+5꾒U*k'2\}t!"(}zik>+9 NR!MJ&/@ݔ-4djwBE#R=s(_vFF"mcuZ _Ryr #>1YKo$U&,ĪxU6X2O/T ZYa۳X#gIaȧ|)C$*yIVų͟-8F>\kfp#kQK0:]v84Kk@"XግK +iCɵ#Re[cLPX ٽϦۤE?xrg@O3W,6!u`ˌnTTUj麗<  u;f,p:Ym)FLeےrFZZU pc1cK_g"?ﬓRbfKZ}8k#uFUFfFDcb[#k;"*e@ +M&'R^x1P]j ج%.]2=p3o4Y${g!e#WJuFY n bp#j8}፵/ Q%Y\ANk_жMJ7q2/uICsV Zf t/q;RˡP=yuʠ|P04#kV&[\{| UT +uxGEF%4lxGO$6a Ŵ0>՜/zr]vXàrfE><"'ES}3.9=D/|x*ǩ=rZZӅ\%P{ a7TQȞ;_=eT"eǑljqh>״U`k+٫CMD5ݧACA[k%0Fp%uUh9U9!͟zLHdS)GRs6qLa>w.Hi7Z ^ߏ)nОĤZjݡ(q:FxJ5fD_O2/rff B dY +T5iO.GQ<+O}6;M#G\mWa/ڮ6/F:FȘq{"91:Zo*Įc)}WP}Z":gArvK>;me/8D7;AA+qf|١*(\DaCN@_㹔^n+zW~R +TCr%&a0҈(Ϸ'$w0{}"iǗ;Y;%WRà@=E0]hRF@ . tא(B=rqq +YI($P[2êF`{I)Wwdj[Zn3Vw L9xzOX\`mTk ϐѳvr:h6jHnqsMRr԰U]첞uR}Oq(u}.h(Z7'_ s$tEt>Y ]C!?Zm*9|BIs2֣2hkgS-+l[|p S{_n>ݼ=' +h_luϿ'o_x|>ZA$fG6(_ӀJ + b0jDBAgSCOCCb|Lؚ*)~#GC$GBzBLbȎ$?xI!Wׄ圄{QqJ5 !~\8]ָ* &WIe2~"ICcٳ{ +Ϛ-Q{0:wCW.ć(PḮQ+T2ʻroJ#3APmG Eu)$V#a- BȨ}MdE +̪`-k֮3ET<h=Ƶ8%O'F*讛7vX#ǎPpuEㄩP}wMǫ!o}L B!E Y 1:HyquVQz % !.* nbŗ2*80g6x»[1xU5ˬo&d:j)nu ʰX٠2a%- #Q{{&k@"$3GB,w- oV +)B񄑽7h?*I9p, UM]a}ҶG=X ԚSs^iGhÍ7!f c&όxRW<3fF[:7iacev(KEI̎(ݔbXB!!BD 5-O4< T,?܀K'V2b4Z)JJ)%0N2qFYd#mx1'P1kZPK݊(jHIfD Ⱥ6]Ӓ+ !yOj*逭 !?4Дz6Ws0,ؚ5]} Nw&ʾQ+6h0 x=B\Ǩ7SlqT.ʻAY<{:Y4s#4.kHSMWGPͦuqTR}*jll)*K!l,ne$$T94:7UY?|"{7⣰UW HӆSG5@^4y4YѸ2m].JDKIuYUP:N!1ܒD/ߒQo[L|=KezaTf3\Ifs# MѼMKΥ⒝KCk°bPvh +W֔}$:>i35,V6)/J=VQslEboi,)h!ta$JMײq}6d$@0Dt"`L1&z\,`Tګ+ Gs *jFiA|.VzT0q%8Br@q͔4dl 0_im%590;Qe(""W@U~L{)®"R/ Ҩyi6I1 +imXς\|hxZ\>2` +S 9xr ++G@k'@5L6QȦ:ΊIsО +Ub\_;@ʓ}S;9܋?I ]æ潑#EС TQ߿o]$xWTj{6eԎ`h"8Qs^ƌH^[T!_ʲϗ.B[6`&R D{-`-Ξ#tF:lLDc]h5mҏ scGś3rKfwwOvs*9ÈzPҭfazf*_:9UY!+'MQ= HWnrY7߳C% -N&QIb-| +B`{ܴr3dpl3,\GU0\m47 %A> 4 EijݴjQְ DJ +ݳ͉G-\̚a,onIҽSz.Ta>GIl9یk<)΍["I1ۉ68xlВFj dDf]HgRMg>ee3>-\ѐ?2R1#X1S9g-d-">LhhܢfN̸Nm+`3I\E<=iWYv+X^fn-2DAK"|LB. DAZSAeI h82Ef~C]qX@`'EJk05rnƝqqlQlY=f6]jiz|F)kbj_=ӦiK$yEk8^@=J4(-^@\M:B^^Rnv\H9׫:a"PR"ر&2t26" jؑb((!{Λ;memQ" +5@p]~1z!7,!.k! 6 YK3a3흄}*uQJ\ο}NJ^ "$ЅP%!"MQrc x{XL89l8Y9&^rͻlV$hDw!rV5ޅ_-łg4LMŹD<) Y=͍ |όb [Ssrɪg&VJqD<,_<4>Br+f^(Q"/aSjᐡP)7:Ї.~S "H(oM-GpPwjG`\Qe}_ǡV&Rn%|}ʑUhO{'bq#ԧX"[uFIfSПAE͟lە$Ȯ!E)Dz"CҨ/MGh-͗OBb&2f\ZR,}v_׺7N̓oZ2kwLA/2Kd)%6K3:g96r7o„)nj.7Xԡ ݸ:@ިEޖ\ BX&uA!LrK@0%&{/7"etj[pm8n) ilBQ<.G7&&\n{SԟHyY6夝jhx$=CGOQ^uq@,ݏ  +yߏ3v<)]XvB*>6rJ2կ Evz3)Sl=i WL0p"ߗ[ZNT |/[I*nN_>6u7䝷^H!q%h(=HYW] bˢ("h )B01-&$&h+ 3nMH}ݾjv%?boɝoC_2,%~&Cţp:8q.$XUz9S˟fr^d6L] 4tqG"0YmT"E[pO;BƑekk}dhR>}|~_퟿}LJ5goI! zcs02 ~O +ᆆ>^Df}d|6 {hA* ~ӿy.HTE;3\MCCDjȪ <+^d;h"ʯP4&_Y)`<ϯV]5fe!ID5sES!aphRH[RaYzԨ]̃cdx&JYkC3 ]EX/Ez{W*1eET,1tbS15#]!I>ҷ,2>'ZAz\[VЕf\S9 Gd"e^<݀+('A1#"hB5Cw~qk-֡9 J~_y592G$|3i:תZ'm,=wP7-HLXf $zIH tl~M6-!}P8vo +vsQFx=,j/vrDn[k̻*'-is!+vλ5K(#R+8풾 Ik0U(z&`vnq/̍iz`"Pl PL@| |yY#S^ u^FؕگMy[\|;QoqF8SyA[摳Q&:;5֍#"FҎe 65ʥ2pz\̛OT{lP)@j=yԬ +jsEUE LفQTC3[_3l` b՜<lkw~ZW-]3Bdfftsx5B0\8GD?g Akt\ +?jk9!'< @/菱4+k)F8p{;@3`2"BHN!]1SBW#l~;5HюhN ȭyHB'͛Y*UuJ"0k"1&̆M<ǣG@~c5.d|bxc4")ϐxh0|(YxўlX%\KsPD 6bEg1 oɍlqS)p YK1fV`+?[c >f\ z+ϚCO(6 :1 Mic@ϴFR-l;~YB_W)?7x]x4gq5g`0@lئFS AxKBaӷn*WT# )~`*.d?LWX؝zE^'M @IoWS$ShnFΛ*(uP 2o㉨B +y,;_QY`wG?q~,oPsDpr?C7Fb@e_|hGiP3b> +'W +ǜllȾlP5rn+1 n⇈ވإ.,`Xⷨ[ ȐM2M Kbh*\b@H_ڗ6zTF7D^gCq;` 6S9QߑgM q92۵c@^R|}gQp&TV_aCґ0\@t:HdNO`bA\Aݳܕ=`WKAȣUVw2s-(xdpTQRJx5 +zB\)JP3<+h]5rB<?`?ڬwJE;l[x4Zid z^@@(\=;vg{Z} -SN;"ǙNߏ@Le / @Hx-OP֓;4"!PNi`_^ +Y:77 +D=|  Ǚ(V}EArT(#ŋNDř {[ׅp1h: EECAS-O~SbrP尹nTDIU΄vPAc8_DD LbEź zZLS#.r-@;{U;;{D4H@lD_LE[y;)P#R_8*Ӛ %3e%I»W- &G̴Pٺl!%/lq@Z.2d^^j0*LIZ);jΦ> ֶ{+U+fWRsOiYT@Z_ 9ԨDFs<5Qxu/1V؏ED\#8yFS<֬;('dluDslo<@o) n1%!7lؿ<_q ƊK KK!V^u+K{Es W[eG*|J 655|g/@1eΦ!wMP̸ُ v^McTfDvTF/sܗLed2Ro̤:)d. NBttGy!Ҩb`5[FEɏ-x+T%'C pH@8WG< }zlW ݾq]7ro YJfBz0LA\Ƒa>cG4 庻e}UwfV9'kG>3J}`dhNEޏ̡;!fЌz fRW21_7EPیֿv`?u +~)njk>]@gŃ%BԾ5P2i.Dܜ綼 ZKh|I(R)45Db J9q] M۞r^}hu q,40S魐RF%8eyStDFU2zbǫNɈH*Tq7͖$>v:\8PzH+42_-EӉ,ؾl:NgܓmuήB.=TGj kU^I +-M$ckC5:STe͜?䙲rɥ O +y1;x:V +L67aaFX獘S!&0l1:4'H0QHLWDS5Gθh{D9e][4 +dӓTЬ]G7E IAn7&STmLn_e_!|Hl 5d ~|kU'r!K3=UOO_~?}$TJ>O_>_?ʿ߿Ѓ~Gz?{8`"bR=|rLSx6{+9[& . lY*ݑ3!Ӌ +MUcwѪ8mKT\dzomAxK %g @c4Ս,x?CIbh| +_=,ۥF#ȹv0J)Ll؜O({HmJ!Nջ*v첧5Yr?1O]Z \Ր!Vlۥ#_Tw_)Mj!Ĺ\MuYdNLB<_#t#B@H-.*%vNT3.J%S332I)E7HxS elѪ w +/oHlD5찅bZ\*luۍ"mâ<8|&骯x8f'Piz%4/gr9H B(>׽x\ "LɠxtiyĜ5溦8+nFfIxtkLe_#Ⱥ +kuUN@H+AœkMHk"'ՌϬTVWSJ?fI.T|ND{Rj:8-2b Ҿ]# ؅ToS⣨h)~˼ߎ)i14[[q̴(jp:F8J5*'iD_π2/RNx9;3) +93ؽJR~O=~r(}i*NDWHxmk̋)9{ݘurvn2crۮYo*Hg+G "EA}oZ]arEOh@"fD茉Kj9( 0oC u0^Xt!sKs V>9_v;0OhD nƫRcB(jA.AGE0\!?iBq̉qA =챪%:q/vU*76979h#tl=I׀ ecVAn_K/5:U~:Nl;r.4IDM +@[w#3svĹ"`wCqwix) `6V#j*hrȞ<λYkҳgL5l^>-q5`A񢤸$uŕP}9OFFSϝP$~)|$8tn`d`8|s;iwɴ + +)^H +'H~k,!vV> + *wb<6oH8ƸOBqVE&At̾zHWI>ܔprfH/|vO*$ݛbJ^JM%M>w xq- $7A`5*9rĒϕS`S@uS7lײWuQc(#F"|Ȯ3O LFMjmm| k}}Bw68u3t 42*jDoפN^cwP͔b&m?O}|Ƿ_~k':W~nO?էw?<ܯndo_?6Kdߏ?r5ۓn?,ߞ>xɳ/|x,Oyxo>}w>}p:'O$3ϯRd3o;}cL_S 6U4vx4iN Sm(vy9b>IDf&Mܩ*8bF jXS;N)SNu M8$/ڱ9RcOKDucmFj_j SU(?;ng +UJ1K/aG1r,Ou$kNcH {ձRFECrI\0c5 Jn;֍h֐G2:`kU퍙 ߐksjIJ/9\ RtqŬB5Җ!/^1 rcpF[)aR1tU<SDAg̵WA4D!l ]ԿO%vT)K#D$Ăb,+5-MY)jvJ,35K8tM߉x X6]G_[J6/#uɑC(K3Cc u7撺GMJtЁdoelPQ%q.+>Y3eb#Μ6u1=:''>T +3G]L;G\b>vc\HH:I +a:A1$vaz͢%<\Y6FʰfA-nZd.`eSfx[sS\٠rZw t/אpVTl ( +0])1?kltلg4)SEF٤.l/Ī Jt)$^E2$|ҐcRO\@qNfl,y7i_mdMK +-ly=ޡx&)H Ғ#&~UT_}=S!2#0F#SģL FH,!4Cq/u:],`CEg^j#\I-' CDߌ3.?2PgVƖR([*Np=@OyIQQ!=-way[ׄ h$V(@@R0t6.rZUzJY܋fcٌvpL,/93􋞀)v*U=e O7>_o^ۇADh`u%o*_Ghg[o~]͒VH)< JeCϮ42V^CTlwTuʪ.aYlU-kZȎTk]7D-9JNm,֏=Ր)+Ϛ(UWkLgr|']k~dV6)ݬmEǡ8Ti8Y˫8 FxՎ{6Q*6L"E׌~ő)8s쫉hv^9}Z=rB[MlSN-H;5|ג5^Pk="طqR~a,HyaJ(ginq +t ĬSe@z\|' SB֘e DBFow9 GhDhs4{[4Hɿ+ +Y=}o=F$rfr9Ꭻ{;Dwe?t9CU-GJtՉ<u[D!Rj^TP.%:m0pXYp]$y 5{l)&ʽ+Mko?O÷!nI-iV+tP4:邙`5&2[uJد{+#@D檵۞(z"HCBF` +YH~v{Ƽ pFkYsj +#^ +\պ#hCw]ed ƉC֣ͨ +GWYM\CP +%"g~c}ZeȪyؠS=:qizT]mQl-ܣאIe SݯsyS)daل+0c 9><+/e^#]i8WE%$}:aVY5!~f)ES+xBb5%V>dl%%lޱ0RJ4ViTY1(SYJ|H'?/(G̢@,{zlVUvj,l4&cp&{~At 1 uQe 075yHj=Lq9uJ7U +b~䖓dz,Ff9|ZMQ|s*,K?`DѠʾ\R!D.:ćQ߼JTC ʧO endstream endobj 26 0 obj <>stream +HWˎ` D(\G +/H)Y!hhnw [4rv=?'14/q\bvHl>_yo1׷TBPy]V@HݗL;ġ0ǭ4o h[g{d"]87םz1n|Ч{1u4`r*\چC +x;yEØΜqPɽyۚ2)OD.p} z?/g\5y_OvNq'TZ%]n-InDKFZg;+#ҥwh?6Sqb:uMJ#/dMJZG`4sWD |tFz[/97ITō#UGpSYpB?i;Ι 3oɤ(58yD!ʺg(H(]c=w 6qEm:{ȑ fQ†lEEEL^bnYQ,$ÇFj_Cb4>h9V}iV3/I&b)GZO`f9z>4ݎfkP}j(hunJªD"5Us0zN[5G !шmV=5(<O:T-e*LZx-(zϛ9Қ FqƶLX;9T$ݲ +эb4gT. C2?UEW@^s- ,aG˨mD-v}q%tR-qDGQbKjh+( 0@`"Hz. m9C_~ӻ//0te>ǧo~y=~~'FVÈvET PJ}DP^v5d`ζ@)8`m>%X{ȩ_B)Q! 8p?/ߧ IvhBgGw 2t$ƚ\-%xy +D!Y.yp +T: $BBwc)m%{9 49 Aʿٷ`Y`X-bA Xin6٧];P9i zBAFc + v FɞޓzNkB*j;ci[QŒm +G  @&2 +{Q PٕB +C_jا5Zo~Kڱ/Fme*z#mbbBU0֡ft9)c^*2qlD{Qҁ: ҝf _eIi +'*q)XOtXQ]o lmRpH9!Efd]UlCoh-%5қ/QTʠ ġ֛őńb6Pgqd8. +d<HJ%83X4H!kqT`T<ҋˀ ;̈́I8= +{138hPkT6D< K cUi~Jg% +tHCPnfB)p坧{TiӿG?rZDgI#bqVroS:ۛvQN`pߎC*(0{CEWν5xȬa5N4qV- i  Ah= ߑ02iN|# "829?A,A\!y0FO,p~\T1 -{6Jf,[d&i0'MtGa: D Yu[㲺G9/FDWUE)PPe HhW+%̕e3'dՏHf\-\OFkDٔ4ȧ?$ JsK`#NI|ciA m>E Ag۲ƒYdkjlFl";Ri{[f3)z9gʖRPz 1lG1 ɪqRd52\hb4zMJ0qFi +≂RfF'p#9)%$cŰ{Qgj-wO~1)ǷOBAVXRW̜Wk앋\a@(9Iιpx $}*L4=CE{+= +⌯zVtO\\(".f;O'O/IERKx?Y).ThZo?wndvw婌ȸ\oMjO'XdXۥ@mtȪhnߤb;jםs7J~=h {j|'*ac-qkLjcx5:0[dbg/Qf4}n $#o#}J + R#E:ëFT!E\+S&j1̹hF7H';z83j:N:MEepB蔞u%(LBz{p#T ]֎@ߗ ۍ)}˲]3@rX#P כj?CLki2CL5xP$qf~AweO1k6+!|(p2B`C,q)qnXruVv>p^QI 1n"I$M9p>B+% +`Q |0F|{dzpF;@wRC|RJum3RC6j&dѾ} -"Zwb_}aGӟbk 7Tg$3?.gLFpE[BS:Gf5#v˚DoԾ=HmWFC i0Bg'^}vM|O_6,tFiYpfd$iःX??Ki:AM6g-Pr=PEQUSDcGxu6q"bt5kWKMHۮZTUYL@ڋ}RWиPn1hSEK&(:p)cRgumeฮeme!SBFɜ&hY$H 6IZdu=wJEq [f0:Z`׊xbpv"^>XDs::4'V810_ɾ#bAl݃Bn|lvZVQ7_QT˛ ;N ˪}{͒E`ce;EZ+# Jx±uVjh}`atGP!b3i@j(Em=BT/VB4v;҉#{K"#\1ՂɢU^` [2h3!A}5~- +IJy+gA-rȠjb/b >A9=@euIʨשpn}=I^@c]$z\v ǵ6lQِJ1uNӋӒO,o\d4Z9Tt4>ݮh˃aEd@3eov-HGtyA2΄yz!,Q'h([AC+72o,5PH:p +t³K3ɣEXG*Ӌ7. "l^3{U]麖gNH 3,U,,+~8|DL,Ap%b֬*N[>öFզϗ~b l&]@Ml2il@$-(ׁI}zR޿ݧlCQ9wDaڨD&hNsqX8&.F_?9}JX?9T@{a]3a "-(K.~ຼ˱Ty=8$ mFx@SP5me짉Qʉ J5< tvI/+Wi-\09H*I;`kHjIRA}T*I7Z #^IMtu@l=)M)W0h\R/'0zX>iɕ`] Nzq^4\g5XFpޝ"hJ &J=7cWT~2,ۀxCp _-6UG'1ΓL|G +iϺOl] +#imfO):aڔe5ph.P2nYlrhM`sO4/k:ELYYv2%aǵ`}]Tu4T!֍RRVPpI[%~f /awC uj)܂BMFź db ĊvFX9F)kb5sӕca+$mUj>m/ۮ(ZW*AZ^ϺǭP@yQ)mI?" crtVBdDRUY))ӂG#ORbKwIa͐[/iQNB7 ;m.KjN%IZpyH)2%mN8u\j@;A\.ZJ?U\@+5-u.yMQy9<7{/4.͐Z42RLu%*%/.D}(k#} 4Tn:M=*c[[?M1ghgh{,qTZsB<ܵAբdP5PwlEЮAifٗMY4^1st,tC#Hp- +H>*Cрނf1^H@U[Z'^Ær qJ/go-7Kz%}Ly=]drۦ-~ޔ1{KP^B8uZ("2oJ;]$[>ڸf V(prIpC]TNp  'P Ǚ+-&Gᤴgfϴ}}HGf{EEoqd2G5D\ F 2 vK8 "C5)}oWa~_}׸i[)eXZ]8\D*nt9NVLM>&@:ϓuWx:DEt"3h5}R"U\ֱ[^jI&ZG$RXzEMrC$[(8#ҷP[~kEC 4Оvŏp>dn*eXޭPAF*v3psiN&]sFMb(hPU=hR:'Cƴ$Uz[Ic d =xd\tL<}a(Q"2[)̢WY;@zW)%~, }RHoetE:7Mw5,mNpd +SYKL*ZrEH&Tt3ٚvϷq65騱:hٖ"B>,Fd5]cr \\̍ OQ1|h…m֖EK̯xzf: d# = vyE4@UB[Qm~ϧwo޽~w@/~ChPM7߾w~~r5#շit%3_^˿ϟu{W}W_o~z[q~ݫ/~?G[ >|/_7/f\-?^nw9~(B=FN!q"ZujҲN]f!һ"NR^q5G3MC)kcNEÙT?Q8BM S499IU,]זH% ~ LR +]UWJռJ]bP3hWGkLáMI_^i % qH@9cI))BFzZقQj4ѓCF:Zw9= fsJc6ԒTyw~cB FbGҌ~ǹ`VAVRg +37AK!s$m%58 Kd"6d $`:hnO_`U6QԺu teݑ+J~GK-s|@_B)h]R]2UCq];fj_n?`٤@?H>#Qz{Q=Ҍr6BP+ib{"SNJPe*%VoADM/?߳fSyȭ.ψ(ZK+G (G#ucّ0t+^±Y\RUy~hQ%Q$j+(Xk!gB*nu!1AJ + +JDJ]گ>.cBj4μ3b¨#=Re /F8 +Ȟ3.wveiS5̢\\S4}.oēˉ+E IG~.*ɱ1Ff̓7+,U>Ō̻/7'qSł啇H2Y>!-TGc mSef9b:8=HaN=]Wh^3J9_AvG~8(WhT|Ao5ZOql粨˘ _v +]WгxAYׇ&^:]i7yh\*ҌcE8vQ)Tjք#&' T +ucp=7FOHP434 đ4mpq`N;gȜX܁AسR|"5b(z+|: /~vH3vi F[odJ {VqpK3$GEMȖBq?ZYghw&eh6Ђ]i"dU6#YxR5z($5h:R)Z=<.E,g8*&s/VˍL u][pO()MEI"7CRoz6W19D`9c׌@Hs214:}@`<#KegY0Wݚ._$"5%KΘI"pD^O10pWtzdse!N pf|*-[ڑdӱ.r RrV٪~j}΃&}̿6O 4 eC)?AVF["\Nl[ډ.Nr=Bce2SɳExŋ|iEDL![.kZ5iq -[B9`p5ڴ HP#ir ^Ƈ4NR/_tz鮪f Z)U汚fAd@<"No.7.\'U2dĹ, + Xv"6F:NH~QWT=[m 㶨[}-l2sm T4U)v#CY6#ҭ$dȨ8ڵo0F+McvZAuM `Uk~cS4) ϦS-YԋN`~Alupؔi_XvAF m7Ra]\rb}Pfb5 RˆSȞg>e/De0%ZG?"EAҀ s=%fHr81~ J焘_[ d>!jJ;0?6xh^/1V9[p7^l:U^/iIy%:"aPJaV<_D#s򔙛%C7!oRuJ-+> u&({ǵ>|66Nq<\rvBjD: 7Dh82 ^S&u:e I8AG>~@۔ m8-R"1Vw^2})UK6EC@b)(?Dd8|PX+!׫z%/S?jE>Bu~K!>B/d-E2DJY[RE; +K/ꃈDqC +.2bFST f}791~-1.c2*ut.m a25H- +R9NY&nsGWN5Y!@RǃUv亐!&$ߜזL/ǞHtQոD?1Qb+Ex+"/;A 5^A8ɯ6:%ZBh`۠wjdn%R>FV9t`W +NYk )GZS-fQu{E"CϕOE{SҟmR0V+bYH_HF钏u5$IJ̷캆I8+fHZ*>뼧(?PB=Tbخ83~9[gVf4d?ā?#m҃s m3 N ѨvxQzDs[ ʀnHb72 whgiw֤F T,&㳞r1^.zG~3( }%#O(R2DH<$ Yߪ޿"dNwTK-!*$fָ$&r>$BIMS6< 2EqZWW8uc /% TCl* gjZc!Ƙw $ cF*I#ðW+Ƌ LXndQՊTv?Ƙ|H7_*ow}}+߿G-yEͨde{6Bp1D!]oǂ~m%*Lv'Af: THsT$H8֜Fa'wȲQ|9BVmEQt,HU'CE;!)ٞhԫ: Mv R(v6="`Ny=n4Hl q7:Uk tMLdNu7<#(pnK=`#^VvE*Ve̢jRKM;YWhkzXFmCVm4 '8! *5ۗf K\ +.ѯ'k(A~ot(5I$ʙ[wX[b;oiE?UUU>˧Fdtocb2(xv8DLW3Ee֐Я^gžREn+d?Eƥ<K؇qꫂyQ_<ԋ uSNFdˌ`&ڹn g1#s#{+3&DSTZh@Mv?FYTie)1l "PiORSH- ?>{?݇_&苿u}??~x޾曯۟5cwI2CHmMZꘆ[$$!:MGP{A,1)$RF䒌k&mQ$&Q':ܛn;tЎݮ` +i%OB@0 +T4_OMS@3P\$݌tVˆHV ~katToJW׍fPQpm2EM#oX/[at$sЉJ@k`q $8azI +Z99 zyg 2}y$vC_@~R,s|Ж`ƾ2R-i +c)%j9şc\)c21hG T9Nbyv"^OB*ai;hɫr.7:DɎq.R\d[㉔7{ +Nwvv[,1_4AL| 0GK;6PW[& $oFZshquc=m-v?,%*i WP&Psms-?mE\Zr;pej2VBQŴqy<"=䖦vOeZIAJpQ8IiͼdA(34jւ)lD,j:e-75ѽQ~Qt`3x;SBjgo;խO KE +:A=L=Oɸ+[l 5kmSZEv&+o,Gj6FzTM}`сHBSX=F*K^i8Y&ʩ6T v +Z]G +HV;XfǓw$ӱ)1b nNHN9쁖3'63~eĖNߠKΙ{m +2?ș#)9EՕAmXy~f&D'ՅIǼ{{U9S[4=$,H5on{*8Rvu ڗ؂N*0n4d~bN\ODQ-28YwьX)|"UOuHUbX#/<OU9ruPQ_]֪W2T>{aRrqMQg0ܖ0 Bݷ=x,Sl8tL=rH{T_>/J˒nԆ)"yI\s}ąr*BU)SN΄'I-bp֋Г}Ͷ*8eǰ~A hRR4I+&{DR'"ZI2p)l"Yr>*NcQe}fQXڗBT^.zW~(~ #0Ì@!"dH}ַvuljX`x]{Ν=:&n9rC|Z&F ] {;Ca0IȪ)\ ń1î}bjY*Ku:@QwE$rd ,b8 @#xT %z;|dDm:J*=Zr +1qW +bښ0 cꗊ 2A**҅J淊Stl( _pUݻҺnSqw|\Z=ۭPdIpW (ot񤬿!!#lPG#>z:}JxȻUڈx P"Tf%*a)>d`7" 7&o]{Ex֑Q;h˞|'pJL:Ii;TN) LqbnRc(ۄfӘ-z|iD2 U6] _xV1vA6WSG'Ӑki8RG_ljwSBKlD_2ș5n1ѽvKiuWƉlRګ<2bhnN_!C ~ٙ0rRMGՉWAw x;gZpxRYҟ|ݻˏ~Mg)>~xϏ/o{d헏hgzo<;?l)7ECCu30Ƨu)3z3x9/t }ZnNHy,FR-!1r6, D,id$\D-'Xf˜-y8C|9PdqfDNs0qҘ-V$+Z$ne?aJP6C3a@1!t( D̒<˴cm;- -: rZoO@+iJKBs>2 .Kei{gXwE Rv-6*ާ")ajՕ +tE@abߍP>bi[1I 9:ϩ"0S#A}oT`瓘p] ,!H+@1 /.y3tm#1u{HbiJv<#VQ.}UM~LF;z^a8kJRPÈIjzlh_9쎸Kr먢_Cs]<Ee% ȴuνF0CVzuթwEr؅%8+ءMjݕIcmnX J-C ؖ<ϢP|2(17DyGbR8r{>PAs fMS4t +/'r@־ 8'vG,l,2L/߷J8HKv"Wn>5*]BOYz] X` Kd +ʁ}B[I1d ++Ҿ,{11L @4,Hhyz8p'Оym Iz'VZii b؏P9\FʌX@OU{mTq?Ж)ZK-~! <lռer QNUel,GV[k$/vC\ݜ@*OHRxM:! &׉ELAi'و*vDD}-k_뾙o*D1h̰םe'C\',(q۩dT'r\U]\ +%/yy\>Pۧ䗥6"ĹnS 7Ϋn$Ǿ,G--3=ϙx>l] k#Q)RF0f9V_d }|W`X(YaޟLq ٲ^n赙BPyMT|)m̺5&aYv*剹FLFFx!Cqr(n+< lkB{D]*\PXNǚbPSE8 lTBDK )v5f-W ]6O+&,@{/?z?7{\&R f$fMqY3wi&c +U428=,va-; H9/Q[$Iv+}징L+am&)dR7H#rΉ&lƔdKJ( +oM*@Pw, %'oQi68I;06WS1W0: `x"9Ȩe۱ ŦÀѻdڔ;*jTM +:-GӮwP@ +j8Fز%Xr!GO?{>{ۯ^ ++r߾w~~r%#7cMv~{ۿϟq{WzW_o~zKqxݫ/~~߽G[>//O;?3w-=dy6JXyq B #xe%ѧbFgqbE$gڙsZbbIC1ԋrb٥#&SIwFTRUܐuJ4ŽiQjyI͝ڗ tn7%{% +jB"6|VCgQw яq͌nCh(9Ƿj5s%MCtpBf%FJC/ 6{ޅֈzI.TTerkw3hqksv" +IQLФ*M'|̨K!Yȱ3P#y姜:!!6D^fBEIjfc 4هmPK ;nmZD2 +Y1%ZE.T#*8F/t~[w遑/X Aj-<5J[o9+7:Vt6eTdIv6Co)gEJ&)6Uh@3S.g&1$R|sHQj}v2鲺o VᏎZr2MU*O3ե₆}L2va̩3dn^;I iQyoPhmLvi3X`Ma^nވ]hs*+a\ ZR|f./s Zͧsvm^. tySGP=Oܷ7ژH_HUul}d.={mx 4|Pڒ 67%h3A/xf9 +RNuoRM]jOG/ކ݊CIy3gĀSlգ{7@ ]¿mo흇EmFg!gb##C ތ ~1N #mS[SzJmD;3ݡ+ LZ_v! D i3LAh]AɁ1J3nr?>d |zkB@Z8HXf8 qj&9Ʉrg^ 8i42cmg"jc+&JXK6!'˥m!iDDuhHMV>kQ1SY֩4Sݚ._$Ω>]34I<2q]B; ؃f&#AF'~qfzyQVPu(a qm]3iЪ꟟q{*[~82[Oo׃Nu8-ûò%|=Z2 qf!e3W$^Bve ͘17 򄩍CW, ":A[.w [%^6c% ,j8aY ->)gQpB&Q@!1Zp3ܰ'N1cۚb-q_;letI7T +?Y̛9.P +}F+*aZ٨ƣ9'OAi'RAPcⷼdMEU{ dW/Q[狶 ҊՍ#aL`KÈk dxRWķݙᬄ6c[ dȨ-N|H7ۯdvZ7{C#wnsMAU*=it.:1G{Ռ-*æDƪ°Tv}E?Y8DL`t RK[/F ,ԌTÂ[$E"\{UWؤE%ם?7Wߊ/yIE\n@%ZiF%{-BgAn-ypKm +[+"jr%] uBa8 THsZTnH!wA;fa'ϮPdh>.xM!'_l4xm5.mxsn/? X"c<|]Zvr‹<2; *Pg;8̈}g_v@9#h Pq7VoTyհwqJvmF/HnϾ`QC^otbɖljޠ'\ 2$EP\U[jbl1>Q 6,e/!"c]% PP6nѯ4E7:k2U"lץb%?\iE}ӄŔ{/>ǯyӷ?ɿ9$c W7 b҆-ګ/Բ-OH r=Hk%e@± 廼8)T]8v'v5I +:\| +ZwA뭁OXt"fcd4Vv ~kcۅʸ|J}Ȯ#++3{!Jn8̅]~ V&~3]ɜ;t0C5'8ŵVNddyTص]V46~nt`MiHF>ķ'i.%<d [>Ӭ/p!%`A=ɕF@;/#XJnC=H}MCZs74bߥyʛAM\"4MG!wp,SMrJ=w vQ[[D̐x^';ZLM-īCZ7D?As>'m7t?WOi-HasN9+ƆN6r*ZFaVX*ކ}{ +1Պ!j.Q~7szyd4J#u<" C6'ITA='DٹەXpkt$\{qJhv.4>9|P:/ШMX ElSޥW\R&-JVfR'g9v +ALO;Y*6:'M"fmv`c>3᪼߱Уz3tjt+$S-!Dul64@xP_!s;È:<VWKB\gŵM#WY}r5Wv\Q O~Ph Yo":HE'I%lx[N##%BIș'>yΊJIa!,[z5/xGJ<ݣPyRiD%J&\{9.ktwyeǡaDPRǘyP +N#0:آ5X#6qhZ]W}3-:Y^ }BȆ4tE?/аLOcSX0r,^̑:]|yS#llsӧ'AlB |Tw!&OeaLǦP3F: /i1aFrWE1A7֑9û7˯y<V fߤϯ=J#ʪßY~'G"^ctc|P̈-eC?8e`S\P^ Q4ʰ.>iL6"{82Ð ^1tB"ӹkn9ݨ̯ԃod%@ vϽ³;|X5uԊ j> \BAtmdtSJ62yd^p k*RtdI0F4RҺ}4>HG.a2Eb+}^J/1=Xψ-B\3C>4$V=u_nd4BtrRK$Yv̂s}9> ̸F:[M@d·J=Jbd1hw\+IO9%( W1 @ +d{a ܮro2@pR+]xBr#~0~J; QQA<9WڋKB}l7ȟ-Ċ( ȢQfCI Z:$X wwnȨHt(_$,!*s" H}8I+O5J=ﶡҊ@p[ym|iқ[|8<^gS 'zme p=Cr?" endstream endobj 27 0 obj <>stream +HWʜ||9%W A0A}g]a~?=>TW+F7w^5J3f)_ү9x[*뚱kڌ.1\SG],e\|1z} \ڣy6qR`9m,k͙-lvy곹P\hiGIaBJCpcPxMZs2BHdT=K|\S>@;`nxfڀka×_an 5WəQUAw16} +D? DFݑb0xeFFcȁ^QY 0Ar~:tUs].d)bO ZY!2%A( @htgnD0шW_cyIMN۬9k[Y, ͎$Tz:\^h=嵲e+Mw`@ց ]HJZ9?H(@= [p p f5kHy#`ef6Psd` ѹESz&acg*Zˈ\'!3,OC/q.4K5I"`auvJ%Ydʔ]$|lodQ*O)M4ZhAOs!RLAK%9wo!䴔۬EZ* 7vÂmq#l#u(pT!%>F%Q;(ĦuJ:"."h5zIY@D^ i3۲eʂI 0jU)?TkӡhQKr]cx 95ɑ7COВAP NBJb׻ިoYYJa t陪L}s:&%8A1Fih>ID) Ċ$Q]$ ;Q֏k+5AW#X O2x=%I?$eTNkYL]ٔ_Q 3V!euj~UX WĢ%2[6)DYFu, h; RHϠ#"11IF|UYp8A827L0wKk`39GvE[`v)Q  TY +K;ٜl1A]ysv\(p1 X5,cU7 unmt/C]r먢CA\:#;A(aFdݑi#Yu!b[UuL%VT= &RA#~ <]ū˞ '(d#s$)YmnQd/@0 +QSTRS_R=B{WǍ {&G>ѝ)RYOPg" +*R|2DN=śQ$m8Bѕт+H5WAbRl} &#碅WMj;'d"TR3aRa^>PvqBzNk3QlPhȠ11Mҿ]3 e21S(8Ąӑq1G-b6hA[T3qSe,(Cd}O$AQ) f׉EdqD%m6! >̈́N{k#c Q5=eO#luF#3h\~zrȴS6X)!gM񈲟"mv48F@)9ϸ]LGr#l8ܝߑ8b}X61#M?DE )bmC_s~]fPO( +CT:\L` =U[~ VӺ2CzWv~Q %;gNBf>ǹLvM6B?[eaD.P^O9PAnlI.cX^v** &]}h`bUz≖T +ir +)JQ׸L0S'5|i@}R袿T8w[)QDUB0iXQc{dk{8YV>tx+R^fYZɫĭꑎɰ1n +F5$" HL)"|6bĪM7iw{"A RfՇ8_$ m"=BDG&Wj& v T(qʦM^3own\G80Bbz}{#1 0@=t˂9Bb}}^߬)^m&W%%~'b8&" EaO /neԻ7,xe 8\w,ee3\m'pnS .1Q&ĕ}k7JH+ Tm`ѻSק&ah ;Trj *s"4Ƕc0bSJ_$v} + A>H~ N +o^qDP[UGcN?~Ç7?~-ٯWϏ}˗/޾ۇ7K_|?-nD[>r{~g_^,ߞ|xًoo?_݇_=}|O>?qO'նm 7$ȷVq̲OQuC #'MYIXPqCJz5=j6I`1ee滱lސHk-LцM\;cpPf IM/77u]ѥyF[b ~>2n(Af*U1.3R옜pL;UdU~nۣ+9 4҅ZJ<ҵ3t,j +wz9=v.?L)0 nZ0;)֊Yإ0ӤA |@;~`'k \58GTFB\Y϶#tƁv @1gm Tb8oQ4YNP[*BR/ #qwLe2=ɴJMd%Q.b8{]TeTN*b- (gQJ|L/P 8*~4㮽%z8GO-}HhRi.\/\NP=A,.O9P_S\$VVj[1b-$8uv +coD U($>CLnZ#g?.x(˔ K)މq& 9!契`RDwqy- +5ifΉ0FeV#f̧F6+WBR ),> 2{o!.Q \2낤@E`XXwl?ϘY.!].zW~hĮ[%0@24 d ~o!qRUu]^9u2le͘8m]F5zPG'~"vS.d=NѣzY6 +IT2q] #|{4u~mݶYRst[Tnnęc' P%ZT a9qYMi}7 误_Xuh\=SH|3cMF7=JmeIE̍Ps"VCDm!q"3Nʚm7 ˞w@٠ƞ_ԐrZgꄸr.8i{Ӎ\u(4N$S1BV5#f[ro 4ڭRSSˍ:JQQU݊1[|VA: S4Q-92V5`AIn2p=ϱOaћt3G(B 77D6}ڼQ]PesQ&aC/~ezXr'do:aW,kJæ<EE%t#d3&V +pHvﶥfEKcXZ eZ@Px&^ e N~컑Ψ$m>ŭde {m5$aҰ@=gOs2MYu9FI JTT^T@/kJ*356=uCZWvJ@5Ps%+^V]neoUCcY*qcx`bWߘ<'bhmm]hi/UhWP H+.pjb6q$J.Zأ!9\u-U :e_R%pϲ1Q(~ч+$zegkq&}BeAU*dĹ~T i|^/{EB"|-(>d{V~ñ2rak咛JkmV{żC Q'#DP^Ň8iki,%r&#f듼6J'6%լ맜 3Tb\g_g>37SU%J +23u'36Hz&p];!7ZoT2ۈ֪f[5|TZ_7*7B&^h +VGѡArkgڬM5p5hsT{\#=+r :!m[n8z)\Z.ZwDo}+4C|!еJj |)L &K*L^/lEkA5 +U2, S4165THbUST̚)M6t=i7(bֽˤҸ,XjLFA_ yOvGM@_E.X{6iI +iZnLBJlvֹ;( .9~E~e%Lk$n|vYDs +MH2uRIaX40DT{Fc)nq>3VHc0D.<7e}Q/q_6C\]&9e yѲj{K²4\p V̅ٿ"׿=n~S!2!} &8!S *"Jd"*c0O 7D&3oҙ|[*OkvA %㛽Ocv!/?^?p_Gͮ +[+@6YD6vB*Dl8Q8~A'XIx-D=j8 t^{sQףZ3Qils[VWׁ `@]<^6J)UVT2Q Z+q=JIHq6?Pʵ FWu1q L5PP{ `w(M 5L*o`kO*ENS|vONɪEQ[|vQO8";eHH.J۔RQzŭlj%I]S99[WZ=PYqz0BUؖ{f.4xHreLd fg.߶*8ƫo//U9e π-"2g/f˾kuI,Kt7BcxaܭMݭ1KD:U3躏:%Eu47C@b9ONy ^}qV6,%Kvm>r}3لv]Ky=x5H8Vi_MQD02J*b\A +%mZjVz@|B +O>~~ς쯮_?/592̭fẸhBAudM}UU0* R +US*ureɍQW/쟸dVJf qa VĮ9{G."B*\n\ْ:7:eI;ż +JG:)QDOmNQkOIT@jiW *~doΌ#*Ys>{d7Y c_"'s(CPDoyfG} T g!LBف +!` QVNRPb c@ά ;MS\%/rbZH,DIrDˁ~Yf +,yo񓎫 Ԧ9EGڣ[UyR3_3DO@G[3bPF!pi5ݙ_0Vֽ( Q|xӚHν'21o0ժNȒE6a~]/"]{-;".AwnP/ˇfWS轮ps,rf$hP}:~ՒW[*"?k}S]ӸSoQZ/X\+^fWUmg;C*uh.y_Wȭ1[TEPύf@5oqaQ [?Ұ.b#KUԊ_usNUdu3r<*M{y*O')(]OP)n;Q;48W\M2ySrݾ qh", + +2/SX[˧< *`uMenvx;1xxSƋ"OI(7iJq΍M{xRapI \dM߆*X%ZMMvK9I:Pkׁ7sT_a#h_ÜE$[#l҂^rR/y:̈́#3쩵CEZ';MF fwD[ zQaG1GڏH 'D[5iH?%3G\OD#埓ܨSE?D5j~(#J)xH׮#|=e勬Z ,Q@P)* {8T1VX +ev9kL^I2{*YM/n8MMP-^coDV㤯"VVU4 ߉ֈiU2&NHȊ5J ++RP\ x.?) үlqQQ`fHV9j +$`#[bzDLdzJ]hkϜH!~*]vgi֩U6IIl; cSrf*ta[/wULыÌ(IM +qY* 76%0)_ m^2-Qc#sTRa{7^\lFwk8/3QW饍2aeK@#d[-/Nfu,TtfU^Ή /x1lRb\le _"޷C; $ +\Pzi/jRv7)Vt:)!#j5|01mC҄tW2T3ٓ!.r$@mu-dϐJg^xClP󥱡sfXmuݿT^?7~ǷO=$?@ܗ7Oz|w߾_~c~^#^ /?~o )|ACF Lvx7Lly&}dpCE VsO^hY8DF"ƌˈ̴S[%ȰCY'SF*~ HLYr%vE& K'_JgBwVŠ QG/TːwwzɀľtHLэEJTfGŶ-hŅs7=կ4鴴lU{0^I=/y:2ArZy԰2΍F쬄č +&=1znǏKmA([J̔]OT?/Y=Q@kHs7ZE 6TvW ^:/.nA؜nuܨ}TԈ `^þFّ&|govG^8lrXۤ&dY/J9 ȲEpBiY)}ߪ&Rs&Fz0u>W{ZO^1|bis3eJ[XWzϾSN8[WɟYOqBf[,9cFW EtBk cX&V ^&8~'bůTku\b D p1Qe,(s]۸?`P289mP0ur02O9R(N]; kZûa /([*d$(-) r H9v@V_W`Q/Y/juA: ĕ~_PbM32BysK^@!,FkCe+OZV9b#!wOl_["A;pvq.;3H]ʋFgf$2p\< 9e^C^xyEPmNw:S߁O*uKQj~qў>_;`!Əs@UmuE+SS,D,y7Nx7Փ:s‰LwE)+BMoF;gj*+ ԣM[܇)W$oZ|+N22#aXfB@uJ ǸB܊ VK3Ý y0XQ!MjBN;|Ў"\*kmF#QQ ~7k*b$ :t:x%.qTifx@]SHʶyAM L9Cʾhl =?[]G~t$k3 B@dY,OdzPbjb$خH>{I*+:˼e6df2t夓0wĩigchhq@RAIc + +|2xSQJ5F=:C\L MvEsG8}]8]CNN(zhك:rbxڡPs%x I:ܪ:jM\/8".kg#\/-'e1z:x@56VBAiI?xH u$xȇsOu Fo49| ΙƇ4ACjSUuXuP3-b)4$!-q@]HT )4k2,B䘅4shv$6J#U N@qHJxbJǑR#p_7k\,Ĝf뛳$ez^zwN(FȗEKRe;u4hD*O,aQHSc!T莼QI#F+USݯm2{"c@M/ e+F!3-Ćt-G =e|Ed ?b!gu5 @#Bɬ%Vlו[򱤘1ln?Q0s&I*M˹hq[-ZӺa/1^m"uF%T|}%P{g3ΣB'ԍpЅRшJmS +P5/4`8)`PK՗6uC8z#/%ejU:R%$A* t x\۠H]#itp]4M.3Z{K#{P [Lק2n%טj(z6??ۧw|5Ћ_+ ?}o/>Ï<=Ondo?}inﻟ}=?ۋOnon}ۋϿӫ7߽/yӛWoI@lw/|O?oOn]'{߼1qw:UkHF}t4uHI^oj"CHe@kdq:!F$Qf^Z/1웄 F@j 4$FI+Wӕ|m!Fh.AR6l᷋ MTZbqcgJ N=xtl%Λ^בv#sd!021HZ1"mv0F"EFGhd<7WqлvK^S}yJq0l9Q*.|, |,o$vsiubw@('C kʈf4% Ң.@)cOzBK +pf$f")Ҩ@fۏlBG ٭O=B}UM4n w[`KS +@;y;CaNG/rD/R,ɼR*LgF\ ݍxA" PP +f`I\Z;&HEmP-H\(W19TVf#u4#w뢦T7UHAD/mRVYNJkq#m23[uq^+d*W-yK8s,}%lEY<Xv6!ZXGI] OYj"rf=0 G`8 NZ::J:\d㌟%>4K&=4.-drl)%ypoxr\:]YeEBy%gH3[#21]MS E;~߹,zXqMUd4[ 8fkf}#hk3D%J ,{|Qc$y9mW75IƘ*7q ,uh⍂GԠ$SXn V(&~ 3b(f =IEYcRr|k\D@J-; +WzaKCe*E]N.)h>(xzQ7_"o8$xT`fm%J6 {,B= b.+e{:rOR43ʑfFA])$ڧ8iZgvI<4]6c͉uh(㮾 +y\X{2FLR6ѦagG̖z4H}L`6LW|5蚨V<8[$fVI͒rԻЩ2 eopzGTr#mG2{b=$ꙭd:1b헀,Y8> +oG"QhzXU3sGdjZgjľ*z FѳDv }ݤ@g¢aAH6s?A PЈҌl/Q0(_s D]gļo#G1@%$v5],mݑOgnĸ#4VTx#/T>om?tռ#&ZxUxG08oe¯75$XKL+!4EH>j-pV]5kq(5mϛ-#/:փF#?_i!.8-?z@~;$Nbwo"^w{:L_@$,$ k0w;VpBlf@f?)`yKW, NЖ @oyY %^ȂڣvF~D%#;%PD52w5lGH2q)&u[X-]s>HQ:o8#ە^{Ъ轛so~s45',VUPiQ`TWx4z񔪶t6Jd.G;U%L%.SNߋP'DP5Ne 8 #]) idhZJ<ԏZ l/BV'1K2YTNmRT%Li}ڹgiN;U׹F\ELHNxKn5-őX`Oy OF@f-Ie vwY6cG dȐ~/h71Zn_i(ý"ץ,ql +VYM:0ozц MYM +qR|QͲq4[lX=hu:]|qƾ"߯|fVrJĔ0_6c<;{|/{ʐ!^B σW?Cq=xA%Y5DecP%~lAVd2[aV*snb9; 8f 4N/*6U-^QI">H0o(RRX_H;Oܬqۤk!QȰuwr5u +kT6q<*SD87nMuUZAj2 =v6W $N7/Q48>f"g5G _. :d.w!8B1f;AȭuV[) Kg 2`trXX&qD2k>XDQ@|R(,VO:%HfƎ;BY#kߖ)~U'^wEwJmPT|عY^wcm."u1< +Tnܢe/N Q|vLnsKn,4.dH)Av?4]C2]4g7% űg"{p!;/pzT(3,AIHi$tx)T^P)X'|NqP~[_s7D>PXmT./)Fd |4 ظӱ +lҢ'J,|PMnqf= gzp+bYk/VسQ]h\J·QBl|uAdqV5ӘQT|yN˞wD<6*v*:ϔqvJώOԧHat (1Az>'.̞ݸP'yA:ajTP-ѥql}\x:WlR݁> !UJoBkQ 5A^lj,e7":Fߣ 1+r7n;Ce)dkkW /$n#TZ ڮQT;Nű7D%} +)I@aU^D0A)XC"Q5&ֿ?73$#tz p<+b n![B~t4ݎX0QV; ;EӢ=GjN!A@O|lY'Yهz#dzM,KCG2^i粋H +1M.2TN^P'WQ&{?鉸 ˖NH巹 +;9Vv^|f!8I{2V'B4Ɯُɥ4Kk(#z g߰hri * в҃m~O—O|ݧ۟?㳯~o?}Q+*>X/=4&&ӈIkEj (.Rö(= d'L8K2N[8X6 H8E1|wNtJ4tgU hayjҤC .RP-I{j4h>k jfĢ7I##kfDu5k7ڳsM "=Sndv*+jB +Q +'9_c+홶dΝ:,B%9 psպ"c%1nƃ}\`BJHqv~f9<4a |R~,rs85%#f%r _hIZbЫ,DO eڈ%UGF9H|^&TAފ+7Τ"5Q(DpDd +^ş4BMWZwzo ƣEށ k-lh.qHl/%/IAJ}wqv;.VfpTѭ{ƪ@Iz =6^ΔMUi[ "S +kG}TCܖHsN9+ʆVv&V6 iXT#$2|o'3%9e{ +cMF8P5A" pyx=ݜNѡnK7=GD% }+M=C̵%$Sc%Z K.x>Lg@]d+Eɝx^0 K0l7W +Fm΁dPLmpTkVy+%qL@` +N$Xg]d-Ӝ.f"Bfmnbʾ҈YP*_?I[Z* i3HR:qO Љ_ԱЎ{'wl 9@)Qa\Fk@v䝩7nE({5q~T-"fQDr6P@c+:21XٚS`;9FZ ܭ'\Y#+oKE=ба WQG6AL^Ku*%Rm?߶#W3ݔH.HVauzPX)0 (~2kSSRUgH".DLi;:= b "H^@3/d8qqXZ%nܨfA4-ǔG +CsFp^.Ge>gDݭ^=4gGLHZ"M2ߕNErk&EΌOpOЪzb.ys?*1$@X)=n:\` l7 A`RW.d:@^^NJQb h*.҆):]EN:bi=[#~ P@mZG-[}Щ ;9i.mI8̳gɰ7/,LLqSwy\7:1$<saBBʜ9~)8Wm@[7A ^Gnm[^c'DҘA1#ң_ɱp@y+TQNÅtTj@e8GF[U)7英Ї%GE1hYp8ʽm%u> +Bw[7e#2TvtDz]hUÉP:GƊZ]q`h"zvdtF}JBt`"q`U/E*hk)AM|#J/ݭzu\G,'R<:#4 gY#:762t:|#Vh۳o~$8q0jNRyA+3| +mB>Z.fAsM$&ڢTB|GDdF )܉0G@q3ʹ#bgTYu8~cI½`I q ܔ,{TT?512+RG܊rHp VrP'fLd-F9~@Vݴ3QFPhBZ*px⥃[sviix kGc o!4Ip3[EBލ\h VH{ZR 1q^ɾ+פD4 Z~L(# ׺x+2oKD/=98R$@X4=Q.:^zO-k~b8肅*ID"[t~,]"Sf+ٮfH# QJK_/(jZӅ*-+(yN+Sj& ܚui9!.[Q'HJ36# ۳R+MZDVFݨJ0^zZ[L$RIx:"Ĕ5Ԝ0Vg|&S m0FÀ &@r,_J9?%$aXQ+Y7LV 1r$b^=|V\?f3 gb)TF1\v܌c KT Wb=Wj݊P~)F0'Z F,Q+}Pպ\46};B-ٲ*{("ܵv0DE0:e}!k wU.yi+KH]4o*Qq)&X_ CۅuہP/n9 +*\m"t`vORz!RdGkefZĘͲShsYO &DTKcK8, &K@Q V{2'gǁ%XAؕ$NBy QE#Eb*J 4f=D Hck6OqT\B "#>:fu%Az$6NAmari>xm>N<*BʚHkJd-额E _x\ϸD.ya}TG&GXE"q)k#r;"4?h=΃mh7 +C9}`A*7ƤX]F"lxoH9$~1JY&{>T@Y7%ۉ-Z +78IyfsTJ! vwCϸ2OӕB~0RxJT9T#8)v/şe:1%[FJO + =}EaثJK0Jyk J]I*zLh?f[77B"Ƌ~-ݮВٕYcƔFo$E#V2$ i)(rRYvb}Ps+mP9Hl\.pd|>Ť u'ԆPg '>6O7h5e d ]u]%h=Cڴoj3"V')ɋ6)&e:}e1eBD, Hfwk/I@BAI9ߙ{Ԩ A9X(ּHR6*˨>7D[-52T<3ڣ:R4Z/$6_>Ϡ?^gFR]{-}=vHUQXFvodk++:6jw +z $(.!2%u*IDŽb-xԊ-,=n:rnZ~L䨭vTh&25Tokئk.٢:>P"y dϪ'`pi-y4O;jc9\"vWn<8ٲiHli/ *B/l%ۻGz S-GQm3uBWlQV; cs61j8:(̃.*iŌ fiE-㯍vn|qWaK;5-Is_v*gUiWc,RB +gMrb^v4HQJ g<ߋ.#9%E6|1w'/$^3lSDm'</ev%9 ڒudzU,`Ķ .Vtk zg6(;h|[Y涒lfR`(+-q)_:W9D;)ŴnO6$ىms[Nq=碗Tw'psq鋔b@`TzJٓil +2^`26CĖ{#rѺfHA]iCΘ0>B_n y(`od 嘨Ϲ1cB-Ҭ_ @é|7tD0}_-C+*j:g"!jjTT)//RiUV_z܏iϱ+f/)HiLLE(H.B(z[aCUŗn##$ʥ(q(w*w@f9 cE+c"bݑJ"1a65C7aPZ{7tQEDA=DFW-DȚoofߊ.la (`Tuɱ#nH/\AMh#H6 ddIfX>J"QLQQځ K#ffW + Kj^.7URw endstream endobj 28 0 obj <>stream +Hݎ]Gw7HJr@Ap5Y;2c=ߪ}1;dќ5U]UViRQ[;vO7du>7t̳2Bf;gxrQV:yg-goub7ϒX|1;vfVO[%:s*-3w[~ӑGTildU~eUv:]؈Cs3{[=v{g*ASF;qT$A ᗉbxg/Fm%o.iG +:h@ElBAf'd!\pdtnoV͑Vת{־ٳVUyքDE]^y]se2od`](r2jW9GF>vGSŕD>VBwUDa'hV')MѷK!$7Bo%8md7e@4'2؎*1DsLX[7t 2~ju 9Z*P*I;JOdnG3V:'p8AfCY$A(59^74jnHR{fvi;H^,(ԫ5zI u#n7ʶ+uуcLءs~(RfXێ_ KÅ5T'漯2ͺ.aVDH1(YRO$eaJwXa3wwԠ&yL DR ,L]oFvqAyޮEY29='"E$-9ڣlqOPWisv1$BMΈ/ѳJDdbS\#A_DŁKv]HHĉJ1Ǫ]7Pu__4)& !z +j6H EڕN1"d@v< 4r@5 -!%Z:<ɧ]iY=p%Fbi9oڣwL#Q{Q.ڢ{WD6ɩh :+ݎQVjfvXy% 菰nU.ofZER eRMOEӐt_* H:ywmwtҥͅę54\FmED{ԇ#!@@ГyC.5kZ>n@VVlάTIzR\:]C-esK>)n%Np>BXAo˥ծbe7ޏ{[jAPP!D1fw+!dZs@6]3ZPr_l/*`\`+mQz!5-)Pk dȧ*ʄLkft+ ٳ26vlJ+E2;p&9m ߜ`Sjgnvх6`Qh&hX-%K)-h3 +X&UhgkOfJUhaCQtG̤|&Emr|bσ׫T*آ=CfJQ J21_[uEU+[̙?@h^8UT 7~Mz@|;-(C }*EB`z/h ®rAnٱT6tGH\=~kT q)W T$yF1C95NOJ6*J-3oLH.ϙ&J7xa$ ~Wg_kkUkjd.$y9mcԮ&P}AmCk.I"BqUz&TxXr$ʻԢQ]$Mld%ie8z@'M@z/G[rBPgRHӈkMB$Ȝ?fYV{wqKlb8u2l=8z\)z1)`";o20̐{\T_l$w0|R$F7o!QVe_of/͝|.PND<)zY=ŔBv/!]2dӄs ɱgD%K /D/} ]"aS!-u!SumTZtIIՊU˗iz`-'pH5/PpxIfS,SMF{"+]y*G`Cۋ% w +4 +ߛ?ٶ+ET0 +)͔b"=2\ը/MGh-smOBdb&ˌM 3\ǞW'oD~/^(G>H%An۳}7zC 3txdnjn7,H瞪aJD;SިGRΠ{!7D +P*fz&vxJXgb[*Ti\ N{Sz| 3&lAⲽ[ +mg5P'_2ȱ-⒤MD|Q;hS9[fwt/3HITW^Y{iW^Pdâ&ĤcQc?y$lȓ8oS+:ZFL*Z6r%J@ՏqFtm%FgPdf8 9ʼgVsP$HSZcɂ'gܩOY5OVR("->|QO,lG˧8oI⋘LȵF{JyUJF'zV\;n*,pz` 4=o=n4HDHC)yW*|cw׳|7 +}멻*C=Yg9C ckz:LwSg:R\> ! Iz98dX1m}"zyJ5ۗ(*DƼ,08 E.aSEHq Q@ڜ13քqLfgX%#Xg>&)uN|ӧo(QřXz9SûFP39/3![ZΛ;B*zon:S I'Sdˍ!ekk}0/3RY)⎄B]da3 om XO DiD1!7R4RrG,7*g:!e=)ɢӮA @SSiPJ/޼{>K޿'_۷~O159$!K[ zlNVm=t?Q +DfźrSÂ2 %IN7Rw gbK( 4wA*w]Y-o-jjW]54yUA/ZHTC9gugFM,9$]TY#%5#֩O73۹Y< M(KҊQ|ozw{̹R)0MN +)c<7FZRj1nx&ZYku@j?ffY}$?GQ +Ö$[z+η_\]X}eD1f,"GFYzВtiP]2=(+DYTffL}?lӴ}NdWa$(Xc=ٸ#EZEBp8g=DZ.Tp1#Xc"Rdsj JwaRCBHCLgZ +*!Vv($dgR6KBKEQ鮾БD$$`¿w=6)g~/U)>yMj D\SKCr/eyMc:duX]So&HC.a~A޴ֱvGD9_ki>/Zh^%]pPڲgI`:'&gBɍxZh~!!a @@= ϳdPƖj-`FJt(P:k}󟼬"Jfu1v˕5ƕۜmT}U(liG&Kp^B+3fh`Ph͞U!>ռD;YD4@G0]k J=Oqd%q<{ƾƄ1~jqKuG<]P>H}LQ*ı1'"G@tȉ=Qrgg{\635Å) -k]ԀC6CJ}G4=҃/_WrmqȒJu<|XdbXbzpVઢee<gm+;R=vO&T!R-(DB6K#uLHH4g}̜V>L2.M@ɜVG,nB@';Fz l`uI3$Ib[TTcUemd1F<sM^ગWNY7!-niս +<;)IzaOw4Y,Ñ4"8Aa{2i"22R)~cTLI/c:ͯkXдq* g~BbdDdQ=*iRř0Ta-L*5b^{+-&$~TESLy5~O rnS4Rm%{TEB~AE΂6en]a""jrOJ98fo>ZSdQ@Y-eѣ&` !QAn~}&FO1(aXNOS1NTyW\ǿ`b+AIE'F)NŠ^SY_)7mr¥%e&bw:]BR/ OX^RLzqBoCMt௞ΫjN֎S +LiC <"JDۍ\RoI- *~闷?)l"/駏?Ç돟~/-3Gy?xjbo4gBE;.)N@rERaXٛ Mf}_Kw[a] +1)맾jpiٲ]5_g|ŪQmhNHf#_yDKz8FH'ƀc7b:Bb9jo4;H-0/c8d;{*/pdP0^ L%'ÖqZ?Zi 5c   ezcy%D̒< GqOQc-omu";ú/2ڃZVADouVic8J(lQg ]ca5; 3:@$s[N@i ƾv߾YQ8[D:7ݎDO4{A=:nDVd=nd<@AD\ o#pZ?]edCMda\$̰<:S'l:Ns1j<}8:R܁jt .{dw x{5zx>9-MvSn>J&B6XBh)f2tdCpe 4ەЃz%9]w[XD7ICy]*|Nʎo&lT$Bf_S3*S,FbTrh%VݛHXD)qޚ-īߔAuZ/JFJq+A>֧-I=hﰐD*B o4i6|+]rJ||OLЎYx,8d9]6<2>llBm݋<R[OIVmMNdZ3mB=+ >{ R~]->@Q|SJW3(4oS' Gk&aL,tZmD8K: +vPpC1*RlĂ b~W>+q8]Ip)$#gĥ!;)iv/ŗy&[TdWA\j^ْZ2aԂwU +c8IC7ƈO]P5x 3ZWnzD}x/IJ*L$^ ~h:ZGvlCw۫kF s; ^4 ꜤFeu]uxފI0"~֧Ȼl\.pdsЁIã jEO}6rd7hEzqXE|.󺮋NNt 6\rpp3\d<>u^"VOO`ݹı|kMBǛEXwc͵j (&H\+ir es.%$}H,^aʻ0*lu<СlzlbTuҨq<>7^TB+_#.=]@:g7T͹ow'dbzmL*MsM{⿾(3Wۇ[?;[P $5"XYXb@ NM(EU:nX`Hi)^T?}IgA% 72c$uF1Y_[QivM9fNNĨLRc]mEqk̡0-y椋0L- rEC 9b|u-љBzށTc=+ΡLWYF»#pnM-6ڙA}>u&MqܩiDUi"m{oDa0O,/'b^Tb#JMm&tkd >uT4iϙ >L"M2`hȴAMJqY"X$ƦHڮŽSfxg<)5,&4]ҢN__O<,Sw&j">~梙 H+IBPS̆@#6ƋWI[D}GaDY*s3Il'~҃hi?}wP/货"Z+%tF]7sϡ5BxЌA}aD>vzqTAG\%O8D)jQ s=}Y.z\T`)"]99cc`6*w#-t/$zXЕkwbч=0J0<1ysk'r\Cܮq E/Kqv).(IHs8B5y Af7Vp }=u=S6H;E%.Bg/@qE@YTe8`r#qzxĴ)HNFA)knIuVſ` +yDPԚ`W1_9X:SÊ HO|$Nkd*V8yоx>>"KyJw}&ˡHt&D.:s@1 "eD2GR֯÷;7Z_bzBα,pGw\,h-XL͟#0NW kYQMW%%q'b8ޑ37,M:+ݸcKKI՛8 Ypt #!)d+QwZ)GoTHT]b P0ڽMNu n"J9X}AWlMM8 VRӋuVSMET;ߑHc۱s)%]o_?}zO +zx:U>}~{矽~Oϯ;X2-ø_ϟy{Wy_o~|/5!>/xO?o?ܺvso=?cV,t<޻1@b@o*#? h8dM]VUA4[X#9]Iy 93*xMGQڲKHcŅљ1!]TkH2[ $@18(bR!sQ۝oҾT +pfRGI-pdR&T@ V(a"2xɬ%:Ϡ9L Q(`tjMF !K@"ydA Od: [pD_t)AnYc2?%vx14 ;iLu8+У +TfiǺEQgef~tt-zΝ<{. HjRUUu%|䪇v\ ;UkWiAs/MŒWoS(UDiW1^b$yl3H 2=*GtA(`s,)@R&_$*ƴ{d<1ݩj+:Zax`][) TWO5MxV +s!54(l=%Oی3r)\X_>fӬKaֶ(Huvu9uÈZ1ΙJ[ +tbjDHM%Va̜/6b"2K>"Dt %h V[0? .`x]ߛyTGi7b"۾_;#wegA˧|jE%wiF[Jͨ4So8^ d:PVݛ4 IhG kDī1ĺGVg5v]N(2)D-%ּb'zk1mM3{ +̪5p6Bc`5Z15hҠ _Pڍ}?dV}r՜b[Qjiϛ ]~8;H褧] +)Syh{EL8AmcJJ%.iӓE=@o)߱ILgˠ}0jVTu`,H`i 0ጅ TLd_tG@y J0T +NWslpa)9ROVHr>m.P\oD~k1b-$LrԹ5iA}+Zq8h&Ϥ!eYH)3$OY6(hO!W#!.SbH[kGz6"2/sGtLZSܣL*"u #o` 7#8HrT6 0=Id#}2rZgꄸNaȦ}5|a 3"@CH+[HԊ9fl R:Mq=ZHMykgZ+s"Ac5tѕQ)ݑW8lB#>QwB1BUo]um5gDs8>N=xG2%TdWEb.bmPk;t@Sqc^ ٝds93,FK$an@c2AH5#ՍJ fȫaTJ FF=;! ȬF֊YVi$ˆArӳ6kK3W8GTmx\#=p!Wcz:d@,- N3âg V7N [x_0v|FEpD]5A峅jSåKoU,A*|,YYJ:Ik4^89*dYdNK{ZԭOҀ|~tVJ˽  @@L{@5&ձuoB+ֶKX"~՘&@: +`w%qZuC8ZwT&Pl1*o<1ݣ0:iJ/PI5)gH47XKͷIPQY\y]nrJj +sXl%[xK3טmuD!"\>5x2s3-2I$!Z=;:]WXF +~ +)zֻ +bU$=2Cvn b5ÓAS "Y7 +NjT|[ )vw{s y hR4Ƙ]?EK%Fy%#f7"Nҁ>4O

JhQET8mtXC+ӥUc4'D|q)bo_>{UWуש?|__}ݷ>?_3Ñ-enU?69q +n(I?e =c +6IlfD1bp4G z 9q=94j {ET|ՅyM%ZBs^$xd^"y(QB΁=4 nJ!17":BvYt';10#xl?]R&eFviK\'$\9E hX[WS9 4)/:҈0B7E)BWAIjwƕJLa"a_-UB{ I`}C,lJ 4xY25["ׅstlF-3J|%ĤK#%] )Kt uNJĥ٣YIݖ_6Y xe;Lj-OէfꝉkXl&^;<ܮ-H4m:Z +W35<.=@zF$9"WO/Lױvv}09@9vu~7W# $>/Hy\TVac\+TyRU?=fMEwP}66cn>Wm35e꫞7b'Rҕ XK㍐ y{ OvPe5ȳ[@z*xV.OHMX†YE4c9P[mYexГ&eh +7:5jF@;ELu/i%,|z RFЏ^qǣ) ֍L5XSNk^fWW NH< B5> yDJ Ƃ4UZî)3; ^ʼn2h<7U$ħ(>+=Q xhpX'zie#uɒůkAgL +hF PL] + y%й&_]0b0~H(92Jxo sja'a8'ӧ[iaŢ![;AƎdӜp=ht4;M-v^FџC2ۢGdkߡ*Օm;lLk Y٭V'1rHc3D]Vcõ&npW?8+*> ߩ^R_Ҭ~X :2, S@+=^u2BPQӓPVMhkb[ 佢,M3V 尫 )Ws,plBsE ]{DN߅ҊtKST;¾Xud]Bllk-Y:MVp;FA=bE q7ݩxtK/P hGnt~Gf Pgٸ,kC7JYAWb͠]+o)7RԼܖ! Nti4gԤ( {B=l^46 5I]pn此/e[i{xΖAQg}ĸh/ޡLU0 iov 6[W JAFT|01!tW2f+'t@-,y&1|A:.$@-cL38oNzb/~g_Շ?~dzQOE_y*o皿7SY Kc1FtAi{& ߺiy']Gz2xcfGQC5G].Ng6byVZ] -dP'S){F*>q uܶwDKQjmp>ha;3%ӛLK ?ٟ:j'Q֑!enbȄ420ҙCȻ-۹)]lI\_k+v_#m+*[9nMv=?!S^MBaA#üz̥{Jm*[~ӥv΍FOTFA }j?ޔx.f +JDX \g` HƦ.&i.HG'T +'ګKfy/T̾CVTL?H 4_G @@́.o 0u-g_eGrABb8X#uB';Awu=OP2 *nu2鄎a'N! uV7H̓0\d6B.&ڋ aoAlstp; mJ0 +*U󑔔?rW9G\$D]N+E[UlvS߉Tؽmb̏@w rqF0~(#7m/20y#Io|Ǧs&FtvP!lC%j Bt ¼K؏&*/AK*T 47ٳ݂ũ0QɚQ[#$NL@uFF!LRW|4zBr#^ٝjŠ=[#}L 9}hϓ!=г,GMq+D0vjW'odՋPhL)NŞRT1ΝC/"*nFr(.!Sn0O</d.id:bg>ԟ5pd2)י`Ħ2 [7|whw7u[ۯ,qa9>hTu 1Z3TE|Z `~=ZJ[o0]fvZ!~Nʕs9*8љ҃ CҟeAd`,L+ӈ@kf?L (@ØwhxL9#`L-0hϠ> ^%o"0ͷb.$*1bU=0WH`SmE.tM7=;|Gquuѹ۹U4"∢iQVP'b~YƩbR{%O)>T Z +B :)($@9@ bհ\\gV_.* &{=;",ײ`zmj\Ba3Y@XK)YBϳ7CeEg=P_!ʵf4,gg?:>:o{, Zm(ӄK, NYc2 P9Ӟ3􁚋;yV5A  GoOS`(? +X'Y2DtT<r¡8((V]: k52cKg@zdUԻƐ"Պ)1P(=ЦVyk n[wĿtv]05<ԣa!H-ruT腹-t {q7\V +P!H(϶X/iFY! M VJ{$.!ߣA>ZLD%ݹ.‘){7c7I z 4j*FF,&Guo`xyآ9#^AQO!G8<#8q'qU:v%@e6R1#墷۹˦Y[@*9EkS4ӳoZOX)Z M*n|* b+j¿Nj<% @8{IkihJ e~cuDG*LUOjxN?BN}:c]KDA!EĄ΁bg^̾~&9*hjy:L;|Ў&ٜ*]oYW(KW5w5IO|5LAj~Gʆ\f60N=QR𔯠:$L17a=[N99WH1D\&s 0#Pgbx]E>bk=I:Cfsx@|el2y .MqQL 4IZeeXw.2J +P "I[5 +GN7R'B7|վ.d;&@o z)'u, ߝBm@( ^F(1hcyzvAň\MD=u1u~!ScѸ fC5}WVfK*gm@Â1:3l<4A,Au,:s +oD%YO?_a ln;1aݍd2#8fNeUUj*G?nE@Q!bǩZcA+Nh W!I(2E+ІD~("UZg^zhepݢ(82K:wY c$ѽZ]PoNUhv zvpٗo?G؀zy?Br=pTvڪ,)l?4oi)nwo\EBgh-H#9ڗ:jmhF%Ģ턳RILEې-)C x{H6 *wM) Zj N||tρ݀ɀTivYU H;.IgHa{۷2][-]xA0-TVC%F@8$].8mO$z#7|s}wWw_zZ>_w݇ѳg7}<'[ɘ6q0w_4||zrfK7ܬ?K~koLj Q`>39~}>ǎ%n?J\eSrYەw034knf8@zh.Lbߣ#M |6@Aެzh==PHCt} +Wl +R&yOB[A?0mM2CA 9Xv{!qdҩ< /"m`tKb\j1 d`{^R"=$4UhG쉆RH#p"e-`QJ@x,Fa VWL +ή0mfy+oWUˤ<MF|-UiIrqc2ft|u`U9䦁byw(Fi +_b`=~2!rhf^NrY)1hMf,-J/sv]RiK_ՖvM#A\O-z #ݝ|OLpJo&k!fgŝ/ZC+8^2k"Iyg+Q!.:٪>stream +HWAd awaڸy~p|kຆyJDo' X%"b]gʗ!ް)NkN0Ax[-(n7Ϊ-[BW-юR/΁ OS qo0\>|${o'/29jtm&…r﫤+MO^|p}ړ. X׎rv^QhX|+\Ph{,Öާ <ӂnyE_(RCWT)P˚Ѓ:afi_P)z,k-wp͟y ih3@WGo%#(y1czp?#϶6}ǀ8ժg{ak+v.mF5=ãF6ڱ(t"hk +,&.XWH<W;tEsA7̧T/ul4l0*:ΖB0,c1J: uG'w`]=nlLf!1ApzyD 뜥s:gH_' +6ksFPjQw820 gT# DmY.j%Q ]YMGm,7:d.־Zr' =ڹč% ܡ͑ywaw <3BB\ak.{|78f9V*AKnϯYs׾l>K;*?bUh x .SMi_8@:i4^@Z ge]\0&}u'w.gYGu:eU4 EZ;^5X`.5|P^mV_B._?qp?uj\ =^W3Ġ 0$S7/30Ze piKD83Vt^:aӛV`^~0cm>eȪR.rtH?w&ؙy .6tgnO@rWα KQx2'p)+PN"U =c>1[j]rQluvmEƸm?2OPjw|$yO!iW{_t! t Y5\~;~ri+:2Us3YI闠 (𹞘).8oeR8˹uZvwLrF0;kܲŪHg>kY/߬X/s̊?@|1+ =~Ts4 9gI88omͬKLO YP3~R6( aWCYQ\L[(OtX&ܘ/;K%VY[.Q>՝t9d!zlfħ=dIkvoNb8YIວycl*YWdž_沎k= G1Lx '^}=杊Bd?l{UW҇аጹz ci{g:zfm +jTmL+'D&q>ml2F)1Vȴ#ANj9Cq-&DuJ.tJJU}!_u:]f I +Mkn&R4>dmŃ7Ry|6\an\M 8t/0~.[DItK»G}Z +IOfdI +>IpMoc1Ӓ#l*:oXJ \^=wGWT5NRBf_9Ұ]TuQ:;UbVX_%2@+Rcɬvh")90=hr]O@Y%;c`r'ǝd([Xۚ>jKQ:XGxR 7vsXfJ_|Fgb;6.X홗9H)/Ozy2|+p\0}rj3|ĤޝvEe!R5X+g`fgSf+໗\I+L^qm?B[ Utر|!QaqGg.Hq +fe(ww~G +&9.0&q2XVa-}3_aL-Ldqk]$V[ a%R cW%8%wR5 .)8`ο88!ܛDN znhZAh,QEP%kMHRGfg +0܂JiΑe'kV?$Y4dk7;qgWɦYM +ep~%|4H7MM$5 .FŧM^ZݎߔLZ9VvO6ٸ7X|0iÿ26ׂ{43 uLF6JDKQk [La堢#hRؗtT.₊Z`V5ƝUwu׳ !FatyX])ق-Hq+_>zEDki;yY_s/#,0Y@Pdk[Np ?+=tZҮl#ss2Fn7$/;P^Yt/gHgGXTO @'{Qx<׋a2X#'^7E09 k*TCЦ_xKK峵I*ϙUc dIc7))S`0AYV&Ju078$8 {8eF^]ڔm{>Vߣ0[5 4lG @qFi.r3L cJݡX8n6{3ʝI%_+!6@IH- VuPv0;1R_V.:RYXR6m}Nqzԇ3'LCE#k"?ˆ bƭ,)7JRv: j+KI5M{WйK_4xBgeũrpm!4S5 !`O<5RG_gεr Ez/Pg4Yl?*ŲԻ"`;SMY춮@8cB?mK7Վ-WV{я{·μt@`U(]'*@;J'aw`Oc;;9u0:-:`Am\==p'_,5 Eb\uz4Hp5R:ԍKuz;w-^3"e15cf1˹E~gz#􋼇f>-U];5kEW3(hxķʂ̱9RajJvWhzc} +܏xL@|EKϑ[ a2eBSXyyg"z VUoK߇N[tݛ,̭nSG ` Q=3\'[&Z|GSQMs+@Y 8 -lwL36녮] Oػ\Z/UjA 6kJ<BL8R .&{C5έDCw 䇫!2lڜЀ?Lfu0%$kU3KEITC*I`mV\ WF +V\=vKAM3X8LxK6 zI:bqijOt:#u3 y\oW+lDXej}W{ ]L=exe4'pd5X.i|w[n f]l5OȠkq FHu>FvSne1\nl;KFv:0:/S"qmERY(3DvU k[cF^$ zvz2 U},ee)hDebϳ&Sh!nO Bv*qk7[fK9 +qyiN8Wv6Ǿ|C`,k6WwuJ,K)Vq`bS(e6|18KLwf 89 qxUThz Z nЇt;j] `m09뮤RGk쬵֖(Fze3Qڊ O3\K3pC ngJ ]y=04{^4!8_]8p3uz^凰4lt3;1X%ݾR%ʣC?1W+BFP'}6dV #.EF#*.a`̂}.cπЗ +,~",Tz`"g$T@jEڷrDP zs u^ ^Isl֔GD V}|P6lV^}lxXF{/vd 4DRݓ<޹vc #^#h+D|MQD5kV=;u~ʱ5/ޭ:7U]\U`x9VY,e .WViжwp mN?|@ץQ/D1`/BaMo8/?yZ0R_sJ;|֋'MޖzuϞ"pWXwYyŞÓvۍ©F8zc7$2,nH{DXٲv1`˹vmė\U !}m;x˛}?!/=s8W +F12=E!Y O;V&4CZ<jΞ%Hpj{>' ǢU{$f%%Xmfp͞=GrHTG; p1)h^KǿRv"^Kac/嬦&8{9Ue|^&I{-SJW4)&qO. +ڕLXFD8N``hZCcWZvCϕ;`lT1I.T4E$z<% %Ng+q 58*"&PQYvcPN;Rvs7,Hq(D"i0gkצSؙsnɩ$әVzi&9مE8^?U0ys"UՉֱjj.б*[ED tEASTN &f>S2R7Hp";[8 xC"{i2G/TS<Ԣegnp'M ( |ONii]p(VcѰj/ api҂B~+Cg"g>c9Uڢ5]-xԾp,$Wh ;-_P PxDuĩ.x +/Ɓ zhNq4O`3j0wVLu|/P)jC +4)LR ?$`n +`H\:8Њdێ-dz +cK"m'ڃeOy (&ixq>M%=큾'$pj&OhFd8<CE R$CT&Upy AݤP^0':0tIZjAAřZt)'8L`sIM*.d"n%"<lu'DjR,qDV˺B +*8 +ySlQָwPNa#d /L N5^G:Q~L& @bۛdf>XVtC#}͌/FԩI{,6zCN+T6(de2`Ty]Y(%k.x(MYfW$hpv ~/1[#@#΢?ɢ .}=z +tQd6׃φk"MҙX vJ8L0S؂Xh ˒3+G/7!KۑQ -΁>\kpF4Aq +}&>A5]pAੵˢWZtt.4q{Ŋ}xx ~\;?cv`Z{¼楊ւ~1fh0׎M]FA v!܇Z;%ӷݻ"U"Zk`jfdۛz(&Nvr$:BH78 +w/(m/O}S13gg/I?㦨ʬÓi [uq1o踮b:ytup~x)1`0\zMnb\޿ Wh}ft.`J~93L^ q|ܜTrTkn?,mf{NXL`JQR%y}1859;`ʧgix˷_a~d*E6a®3,hkqrfWZL3سu"Z9z5n T;z@k`9 8E:u^gMUMaKaQ ~õ[gs^qή/q8 X0yNjV4e.=GO1:L0:8}Y 3 ?\k#aeU'Z6ϯl]jðexcM6ԍq6$Ta̠OqxN&ESkzl7l?#D+? ?Q(a+\;ZڠB$[~j^e(N %2w) 7mt]t#ya5';_T;l>Yy>Vu)1:kpmzZή/qx;{\]]W_CQi8C ~\6HN$k"kޮObh&^?gu\^Mxz¾wЯ:R' έ﹕/]vxѓ_5m@?Caٍ{-`;EP.XV__j%Y\5\ ̧y5mL|{G7i)U'w?o~G بlaziV\i{ӕXP/kfW?ݣ?7㛱sG~p`2f2hT R)H}!>J=䊭aνEm} cSatv(Ccei+q-ɱX<%ƝאccJ| 9FDdžzYON'E?nl_)*1%Vxf 3Ӷ+R vO(Szl Ұ)9 SXe)Qc# |`9Ttr) +b#+ŭi'F˶&) +'E0?Zj =mKo`'.Z+'N_w0ۮr*nIMđnU5ՊuZtPQH S%9zk[bfߑ_y!g>]ɱ2b@a]lTGhĮ:9|m,mc% ݧ^Kz;vGPDL@w70CCrd3}r.) bOQwDp +qŃВL/tT ?þ/GͿ<{i`VJ4t|I9L>ƚ~fLVT8Wf+w1v^]{lt +u^B&_ZKИA`9 +3&x ez mW91sæs_D8nh +}9Ccێ)c[|R%?-13Hb^G<3gQjؕ++E>9 iNuQGXqDAK#(g"E & :;ԡ!lsJr.) 9MԺ;"UIJ*3AhIp6S5Xk16GHL&.Ɠe)ax&^GzJ|cEc?}}_@v8M8܆svv__9nc&ν%94$]I]0x9䠖e{oƹ7 +H.XlluV/KzX?cS>@@0)0@lYcRf0(E墪`Э1X'6v΄zI(Nد:6 #P|^%4~Uj*KQP_ x endstream endobj 30 0 obj <>stream +HWn۸}MXxch- MjI*6} _y+vm'QZS-g9sXf^Zy j&{y̲ܾ'\V_wcގ%"Y$pHIy`Z M&VUk.!ZQm \XCǟFgybڠ/fO}r%'7vszǩQ]FpG1~Y*9 F3Ha$ +g؁J$MKwi50PWoYtsO7'MAy×/{(|M(OrAlQib,~ ΑUqDvChfK*_@9Ie7T8RB]7oحa9moj8ɁvÈah{I`xU ve0߷5n'İ3N pyTcm(M _[9d2L .1ѓDs?m4"R21feljG?D `. 2g[XAOY].r4&$`S&ISU}:՟֣ݭ(V>ww# *@>^vx*1-'YA#Jr5'{0/jƾ BOvV|ָwy YΑqGfhk--ѥr6˜&캄(,JF &c̡V׊YC8oM4 &uEpHAk<E:92bA(ߖ o ]&Di &{B6"1ȁgݟOx&ϫrV_a&%E2j }{Oag0z ll "ɣ?r +ƭK&eJ1%mxouѦ$"]}6cv)3+q O89H0XFL ta3H,"GCnbA6e^~4%_5ۧkZY>O[^SQ.w}H{%vX:ddt+֜#É~ٽe9V^0}ͲOf buT[<=4:=I+vt /oׄ6kfQ.-ؔ5*3Mz#9JtFg7$ {; !u;!F,Dב!c:f0H"#I(sBs"1ctn9 +!m'97Izm8:fs*20"1A!M&cGqvU#,ZbIMax39ȜeZa^7]ع(ޒ<ڽ/xb$fL8=ʲ O4<:9dCq@ VR?%ˤ`/<ޟ?|K=<)wYUnw^yo3]N +/c&VFD/+8=%QJϥS5)5|iB,{78cnH#g*Șhn)"ۊ_ً֏iI먶AKhYzsI_wes+(b:naDŽ*lV$g؁J$MKwHi50PW& u +5D)h4_ҍ;u1-'YA0$'?cʷ>pwF$19(WF5n4hNԎxN* fhF"` -]|dP(E%~=$yZH$vg V,/ǺoKU +T]v,TĬ!ibюuB^ y=LD;G;UXnalfa+EY:l |$?01JcQs'MtHVnF/}v ZūLF{=9|F0oATg<8m.-@ &fA"k+Jlj:U-6F76L +=5iW1O;3O%E=&ҮX%:`}GW+cKzУFbHN(TMce +}+܏,@q >_7@^wg*Hhn)x||~E>\yj*dL7vAhcn  ׃ZJ5%ZC͙3Fҳ!<|w1Na;JkbUQnI) +bT;U՝(' ZjBaV]$nvS׊ʃgTFXxG!.IO%73rFhOT0S%ϖxQ82d858U=3m2'*]y endstream endobj 6 0 obj [5 0 R] endobj 31 0 obj <> endobj xref 0 32 0000000000 65535 f +0000000016 00000 n +0000000144 00000 n +0000047719 00000 n +0000000000 00000 f +0000049185 00000 n +0000308791 00000 n +0000047770 00000 n +0000048113 00000 n +0000049485 00000 n +0000049372 00000 n +0000048381 00000 n +0000048624 00000 n +0000048672 00000 n +0000049256 00000 n +0000049287 00000 n +0000049558 00000 n +0000049996 00000 n +0000051147 00000 n +0000083155 00000 n +0000102704 00000 n +0000115870 00000 n +0000132032 00000 n +0000142331 00000 n +0000161331 00000 n +0000185297 00000 n +0000212762 00000 n +0000240028 00000 n +0000266794 00000 n +0000293035 00000 n +0000305369 00000 n +0000308814 00000 n +trailer <<52D1DEE7A87744F48C968A2B1EC4BA73>]>> startxref 309019 %%EOF \ No newline at end of file diff --git a/overleaf/template-fig/VUT_symbol_cernobile_CZ.eps b/overleaf/template-fig/VUT_symbol_cernobile_CZ.eps new file mode 100644 index 0000000..8069c62 Binary files /dev/null and b/overleaf/template-fig/VUT_symbol_cernobile_CZ.eps differ diff --git a/overleaf/template-fig/VUT_symbol_cernobile_CZ.pdf b/overleaf/template-fig/VUT_symbol_cernobile_CZ.pdf new file mode 100644 index 0000000..7b80bd9 --- /dev/null +++ b/overleaf/template-fig/VUT_symbol_cernobile_CZ.pdf @@ -0,0 +1,1656 @@ +%PDF-1.5 % +1 0 obj <>/OCGs[5 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream + + + + + application/pdf + + + VUT_symbol_cernobile_CZ + + + + + 2015-09-16T11:06:50+02:00 + 2015-09-16T11:06:50+02:00 + 2015-09-16T11:06:50+02:00 + Adobe Illustrator CS6 (Macintosh) + + + + 256 + 256 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A894FdirsVdirsVdirsVd irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi rsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir sVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsV dirsVdirsVZDa/l1+YN3bQ3Vr5Y1a4tbhFlgnisbl45I3HJXRlQhlYGoIxVU/wCVY/mV/wBSnrP/ AHD7r/qnirv+VY/mV/1Kes/9w+6/6p4q7/lWP5lf9SnrP/cPuv8Aqnirv+VY/mV/1Kes/wDcPuv+ qeKu/wCVY/mV/wBSnrP/AHD7r/qnirv+VY/mV/1Kes/9w+6/6p4q7/lWP5lf9SnrP/cPuv8Aqnir v+VY/mV/1Kes/wDcPuv+qeKu/wCVY/mV/wBSnrP/AHD7r/qnirHJoZYZXhmRo5Y2KSRuCrKymhVg dwQcVW4q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq/Qj8sf/Ja+U/8Atjaf /wBQseFWS4q7FXYq7FXYq7FXYq7FXYq/OfzZ/wApVrP/ADHXP/J5sCpVirsVdirsVdirsVdirsVd irsVdirsVdirsVdirsVdirsVdirsVdir9CPyx/8AJa+U/wDtjaf/ANQseFWS4q7FXYq7FXYq7FXY q7FXYq/OfzZ/ylWs/wDMdc/8nmwKlWKuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2K uxV2Kv0I/LH/AMlr5T/7Y2n/APULHhVkuKuxV2KuxV2KuxV2KuxV2Kvzn82f8pVrP/Mdc/8AJ5sC pVirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir6O8q/85X6XoflfR9Ffy7PO +l2NtZNMtyihzbwrEWAMZpy41piqaf8AQ5Gkf9Sxcf8ASUn/AFTwq7/ocjSP+pYuP+kpP+qeKu/6 HI0j/qWLj/pKT/qnirv+hyNI/wCpYuP+kpP+qeKu/wChyNI/6li4/wCkpP8Aqnirv+hyNI/6li4/ 6Sk/6p4q7/ocjSP+pYuP+kpP+qeKu/6HI0j/AKli4/6Sk/6p4q7/AKHI0j/qWLj/AKSk/wCqeKqd /wD84jfpa+uNVHmz0Rfyvdej+j+XD1mMnHl9ZWtOVK0wKof9CZf9/h/3Lv8As6xpXf8AQmX/AH+H /cu/7OsaV3/QmX/f4f8Acu/7OsaV3/QmX/f4f9y7/s6xpXf9CZf9/h/3Lv8As6xpXf8AQmX/AH+H /cu/7OsaV3/QmX/f4f8Acu/7OsaV3/QmX/f4f9y7/s6xpXf9CZf9/h/3Lv8As6xpXf8AQmX/AH+H /cu/7OsaVj/n7/nF3/CXlDU/MX+Jvrv6OjWT6r9R9LnydUpz+sScftV+ycVeEYq7FXYq7FXYq7FX Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX6Taf/ALwW3/GJP+IjCqvirsVdirsVdirsVdirsVdi rsVYB+fn/koPMv8AzDp/yfjxV8I4FdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi r9JtP/3gtv8AjEn/ABEYVV8VdirsVdirsVdirsVdirsVdirAPz8/8lB5l/5h0/5Px4q+EcCuxV2K uxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV+k2n/AO8Ft/xiT/iIwqr4q7FXYq7FUq1z zb5X0FVbW9Ws9N5/YF1PHEzf6qsQW+jFWPf8rr/Kj/qaLH/kZ/Zirv8Aldf5Uf8AU0WP/Iz+zFXf 8rr/ACo/6mix/wCRn9mKu/5XX+VH/U0WP/Iz+zFXf8rr/Kj/AKmix/5Gf2Yqwv8AOb81fy61j8sd f03TNftLu/uYUWC3jeruRMjEAU8Bir48wK7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F XYq7FX6Taf8A7wW3/GJP+IjCqvirsVdir5z/AD6/5yHvdKv7jyn5PmEV5bkx6pqy0Zo3/ahg6gMv R37HYbiuKvmO6u7q8uZLm7me4uZm5SzysXd2PUszEkn54FUsVdirsVdirsVdirsVdirsVdirsVdi rsVdirsVdirsVdirsVdirsVdirsVdirsVdir9JtP/wB4Lb/jEn/ERhVXxV2Ksc/MfzHL5b8ia5rc JpcWVpI9sSKgTMOERI8BIwxV+e8kkksjSysXkclndiSzMTUkk9ScCrcVdirsVdirsVdirsVdirsV dirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVfpNp/8AvBbf8Yk/4iMKq+KuxVgH5+f+ Sg8y/wDMOn/J+PFXwjgV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2 KuxV2KuxV2Kv0m0//eC2/wCMSf8AERhVXxV2KsA/Pz/yUHmX/mHT/k/Hir4RwK7FXYq7FXYq7FXY q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX6Taf8A7wW3/GJP+IjCqvir sVYB+fn/AJKDzL/zDp/yfjxV8I4FdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir sVdirsVdirsVdirsVdir9JtP/wB4Lb/jEn/ERhVXxV2KsA/Pz/yUHmX/AJh0/wCT8eKvhHArsVdi rsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVfpNp/+8Ft/wAY k/4iMKq+KuxVgH5+f+Sg8y/8w6f8n48VfCOBXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F XYq7FXYq7FXYq7FXYq7FXYq7FXYq/SbT/wDeC2/4xJ/xEYVV8VdirAPz8/8AJQeZf+YdP+T8eKvh HArsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVfpNp/+ 8Ft/xiT/AIiMKq+KuxVgH5+f+Sg8y/8AMOn/ACfjxV8I4FdirsVdirsVdirsVdirsVdirsVdirsV dirsVdirsVdirsVdirsVdirsVdirsVdirsVdir9JtP8A94Lb/jEn/ERhVXxV2KsA/Pz/AMlB5l/5 h0/5Px4q+EcCuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2 KuxV+k2n/wC8Ft/xiT/iIwqr4q7FWAfn5/5KDzL/AMw6f8n48VfCOBXYq7FXYq7FXYq7FXYq7FXY q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq/SbT/94Lb/AIxJ/wARGFVfFXYqwD8/ P/JQeZf+YdP+T8eKvhHArsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir sVdirsVdirsVfpNp/wDvBbf8Yk/4iMKq+KuxVgH5+f8AkoPMv/MOn/J+PFXwjgV2KuxV2KuxV2Ku xV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kv0m0//AHgtv+MSf8RGFVfF XYqwD8/P/JQeZf8AmHT/AJPx4q+EcCuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Ku xV2KuxV2KuxV2KuxV2KuxV9mWn/OUH5TRWkMb3d3ySNVb/RZOoABwqrf9DSflJ/y13f/AEiyYq7/ AKGk/KT/AJa7v/pFkxViX5rf85Bflv5k/L3WtD0u5uXv76JUgV7d0UkSoxqx2Gy4q+WsCuxV2Kux V2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV 2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2 KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2K uxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Ku xV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kux V2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kv/9k= + + + + + + uuid:66c73065-8051-e544-99ce-26ff8a93e861 + xmp.did:9C7A612D0820681188C68CFC782F358D + uuid:5D20892493BFDB11914A8590D31508C8 + proof:pdf + + xmp.iid:24CA2FC66E206811822A831E66324EB2 + xmp.did:24CA2FC66E206811822A831E66324EB2 + uuid:5D20892493BFDB11914A8590D31508C8 + proof:pdf + + + + + saved + xmp.iid:01801174072068118083ACEEA6F111F9 + 2015-06-01T12:00:44+02:00 + Adobe Illustrator CS6 (Macintosh) + / + + + saved + xmp.iid:24CA2FC66E206811822A831E66324EB2 + 2015-06-23T23:11:48+02:00 + Adobe Illustrator CS6 (Macintosh) + / + + + converted + from application/postscript to application/vnd.adobe.illustrator + + + saved + xmp.iid:9C7A612D0820681188C68CFC782F358D + 2015-09-16T11:06:48+02:00 + Adobe Illustrator CS6 (Macintosh) + / + + + + + + Print + + + False + False + 1 + + 58.741634 + 58.299973 + Millimeters + + + + Black + + + + + + Výchozí skupina vzorků + 0 + + + + Bílá + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + Černá + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 100.000000 + + + CMYK červená + CMYK + PROCESS + 0.000000 + 93.000000 + 79.000000 + 0.000000 + + + CMYK žlutá + CMYK + PROCESS + 0.000000 + 0.000000 + 100.000000 + 0.000000 + + + CMYK zelená + CMYK + PROCESS + 100.000000 + 0.000000 + 100.000000 + 0.000000 + + + CMYK azurová + CMYK + PROCESS + 100.000000 + 0.000000 + 0.000000 + 0.000000 + + + CMYK modrá + CMYK + PROCESS + 100.000000 + 100.000000 + 0.000000 + 0.000000 + + + CMYK purpurová + CMYK + PROCESS + 0.000000 + 100.000000 + 0.000000 + 0.000000 + + + R=228 G=0 B=43 + CMYK + PROCESS + 8.425999 + 93.444702 + 67.586800 + 1.315302 + + + C=0 M=90 Y=85 K=0 + CMYK + PROCESS + 0.000000 + 90.000000 + 85.000000 + 0.000000 + + + C=0 M=80 Y=95 K=0 + CMYK + PROCESS + 0.000000 + 80.000000 + 95.000000 + 0.000000 + + + C=0 M=50 Y=100 K=0 + CMYK + PROCESS + 0.000000 + 50.000000 + 100.000000 + 0.000000 + + + C=0 M=35 Y=85 K=0 + CMYK + PROCESS + 0.000000 + 35.000004 + 85.000000 + 0.000000 + + + C=5 M=0 Y=90 K=0 + CMYK + PROCESS + 5.000001 + 0.000000 + 90.000000 + 0.000000 + + + C=20 M=0 Y=100 K=0 + CMYK + PROCESS + 19.999998 + 0.000000 + 100.000000 + 0.000000 + + + C=50 M=0 Y=100 K=0 + CMYK + PROCESS + 50.000000 + 0.000000 + 100.000000 + 0.000000 + + + C=75 M=0 Y=100 K=0 + CMYK + PROCESS + 75.000000 + 0.000000 + 100.000000 + 0.000000 + + + C=85 M=10 Y=100 K=10 + CMYK + PROCESS + 85.000000 + 10.000002 + 100.000000 + 10.000002 + + + C=90 M=30 Y=95 K=30 + CMYK + PROCESS + 90.000000 + 30.000002 + 95.000000 + 30.000002 + + + C=75 M=0 Y=75 K=0 + CMYK + PROCESS + 75.000000 + 0.000000 + 75.000000 + 0.000000 + + + C=80 M=10 Y=45 K=0 + CMYK + PROCESS + 80.000000 + 10.000002 + 45.000000 + 0.000000 + + + C=70 M=15 Y=0 K=0 + CMYK + PROCESS + 70.000000 + 14.999998 + 0.000000 + 0.000000 + + + C=85 M=50 Y=0 K=0 + CMYK + PROCESS + 85.000000 + 50.000000 + 0.000000 + 0.000000 + + + C=100 M=95 Y=5 K=0 + CMYK + PROCESS + 100.000000 + 95.000000 + 5.000001 + 0.000000 + + + C=100 M=100 Y=25 K=25 + CMYK + PROCESS + 100.000000 + 100.000000 + 25.000000 + 25.000000 + + + C=75 M=100 Y=0 K=0 + CMYK + PROCESS + 75.000000 + 100.000000 + 0.000000 + 0.000000 + + + C=50 M=100 Y=0 K=0 + CMYK + PROCESS + 50.000000 + 100.000000 + 0.000000 + 0.000000 + + + C=35 M=100 Y=35 K=10 + CMYK + PROCESS + 35.000004 + 100.000000 + 35.000004 + 10.000002 + + + C=10 M=100 Y=50 K=0 + CMYK + PROCESS + 10.000002 + 100.000000 + 50.000000 + 0.000000 + + + C=0 M=95 Y=20 K=0 + CMYK + PROCESS + 0.000000 + 95.000000 + 19.999998 + 0.000000 + + + C=25 M=25 Y=40 K=0 + CMYK + PROCESS + 25.000000 + 25.000000 + 39.999996 + 0.000000 + + + C=40 M=45 Y=50 K=5 + CMYK + PROCESS + 39.999996 + 45.000000 + 50.000000 + 5.000001 + + + C=50 M=50 Y=60 K=25 + CMYK + PROCESS + 50.000000 + 50.000000 + 60.000004 + 25.000000 + + + C=55 M=60 Y=65 K=40 + CMYK + PROCESS + 55.000000 + 60.000004 + 65.000000 + 39.999996 + + + C=25 M=40 Y=65 K=0 + CMYK + PROCESS + 25.000000 + 39.999996 + 65.000000 + 0.000000 + + + C=30 M=50 Y=75 K=10 + CMYK + PROCESS + 30.000002 + 50.000000 + 75.000000 + 10.000002 + + + C=35 M=60 Y=80 K=25 + CMYK + PROCESS + 35.000004 + 60.000004 + 80.000000 + 25.000000 + + + C=40 M=65 Y=90 K=35 + CMYK + PROCESS + 39.999996 + 65.000000 + 90.000000 + 35.000004 + + + C=40 M=70 Y=100 K=50 + CMYK + PROCESS + 39.999996 + 70.000000 + 100.000000 + 50.000000 + + + C=50 M=70 Y=80 K=70 + CMYK + PROCESS + 50.000000 + 70.000000 + 80.000000 + 70.000000 + + + PANTONE 185 C + SPOT + 100.000000 + LAB + 49.803898 + 77 + 49 + + + PANTONE 185 C 2 + PROCESS + 100.000000 + CMYK + 0.000000 + 93.000000 + 79.000000 + 0.000000 + + + + + + Šedé + 1 + + + + C=0 M=0 Y=0 K=100 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 100.000000 + + + C=0 M=0 Y=0 K=90 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 89.999405 + + + C=0 M=0 Y=0 K=80 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 79.998795 + + + C=0 M=0 Y=0 K=70 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 69.999702 + + + C=0 M=0 Y=0 K=60 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 59.999104 + + + C=0 M=0 Y=0 K=50 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 50.000000 + + + C=0 M=0 Y=0 K=40 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 39.999401 + + + C=0 M=0 Y=0 K=30 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 29.998802 + + + C=0 M=0 Y=0 K=20 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 19.999701 + + + C=0 M=0 Y=0 K=10 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 9.999103 + + + C=0 M=0 Y=0 K=5 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 4.998803 + + + + + + Světlé + 1 + + + + C=0 M=100 Y=100 K=0 + CMYK + PROCESS + 0.000000 + 100.000000 + 100.000000 + 0.000000 + + + C=0 M=75 Y=100 K=0 + CMYK + PROCESS + 0.000000 + 75.000000 + 100.000000 + 0.000000 + + + C=0 M=10 Y=95 K=0 + CMYK + PROCESS + 0.000000 + 10.000002 + 95.000000 + 0.000000 + + + C=85 M=10 Y=100 K=0 + CMYK + PROCESS + 85.000000 + 10.000002 + 100.000000 + 0.000000 + + + C=100 M=90 Y=0 K=0 + CMYK + PROCESS + 100.000000 + 90.000000 + 0.000000 + 0.000000 + + + C=60 M=90 Y=0 K=0 + CMYK + PROCESS + 60.000004 + 90.000000 + 0.003099 + 0.003099 + + + + + + + + + Adobe PDF library 10.01 + + + + + + + + + + + + + + + + + + + + + + + + + endstream endobj 3 0 obj <> endobj 7 0 obj <>/Resources<>/Properties<>>>/Thumb 11 0 R/TrimBox[0.0 0.0 166.512 165.26]/Type/Page>> endobj 8 0 obj <>stream +HlPK +@ @|:igkW"?`?*ϼ<E8>stream +8;Xp,SbbTU79^^kTjeGa8._Xn)_.Zn'SNMS(kYWi1'u0(5rB1S$D@rG&sPjaLLMph +D,;.C3fpt\Tep)*+ShD[5_B-R!93h@hu~> endstream endobj 12 0 obj [/Indexed/DeviceRGB 255 13 0 R] endobj 13 0 obj <>stream +8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 +b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` +E1r!/,*0[*9.aFIR2&b-C#soRZ7Dl%MLY\.?d>Mn +6%Q2oYfNRF$$+ON<+]RUJmC0InDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j$XKrcYp0n+Xl_nU*O( +l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~> endstream endobj 5 0 obj <> endobj 14 0 obj [/View/Design] endobj 15 0 obj <>>> endobj 10 0 obj <> endobj 9 0 obj <> endobj 16 0 obj <> endobj 17 0 obj <>stream +%!PS-Adobe-3.0 %%Creator: Adobe Illustrator(R) 16.0 %%AI8_CreatorVersion: 16.0.0 %%For: (Klara) () %%Title: (VUT_symbol_cernobile_CZ.eps) %%CreationDate: 16.09.15 11:06 %%Canvassize: 16383 %%BoundingBox: 937 -555 1037 -455 %%HiResBoundingBox: 937.7168 -554.6885 1036.9277 -455.4756 %%DocumentProcessColors: Black %AI5_FileFormat 12.0 %AI12_BuildNumber: 682 %AI3_ColorUsage: Color %AI7_ImageSettings: 0 %%RGBCustomColor: 0.922763 0 0.160076 (PANTONE 185 C) %%CMYKProcessColor: 0 0.93 0.79 0 (PANTONE 185 C 2) %%+ 1 1 1 1 ([Registrační]) %AI3_Cropmarks: 904.0664 -587.7119 1070.5781 -422.4521 %AI3_TemplateBox: 421.5 -298.5 421.5 -298.5 %AI3_TileBox: 584.3223 -784.582 1367.3223 -225.582 %AI3_DocumentPreview: None %AI5_ArtSize: 14400 14400 %AI5_RulerUnits: 1 %AI9_ColorModel: 2 %AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 %AI5_TargetResolution: 800 %AI5_NumLayers: 1 %AI9_OpenToView: 836 -417 4.34 1820 1125 18 0 0 46 133 0 0 0 1 1 0 1 1 0 1 %AI5_OpenViewLayers: 7 %%PageOrigin:115 -694 %AI7_GridSettings: 72 8 72 8 1 0 0.8 0.8 0.8 0.9 0.9 0.9 %AI9_Flatten: 1 %AI12_CMSettings: 00.MS %%EndComments endstream endobj 18 0 obj <>stream +%%BoundingBox: 937 -555 1037 -455 %%HiResBoundingBox: 937.7168 -554.6885 1036.9277 -455.4756 %AI7_Thumbnail: 128 128 8 %%BeginData: 31680 Hex Bytes %0000330000660000990000CC0033000033330033660033990033CC0033FF %0066000066330066660066990066CC0066FF009900009933009966009999 %0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66 %00FF9900FFCC3300003300333300663300993300CC3300FF333300333333 %3333663333993333CC3333FF3366003366333366663366993366CC3366FF %3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99 %33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033 %6600666600996600CC6600FF6633006633336633666633996633CC6633FF %6666006666336666666666996666CC6666FF669900669933669966669999 %6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33 %66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF %9933009933339933669933999933CC9933FF996600996633996666996699 %9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33 %99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF %CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399 %CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933 %CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF %CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC %FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699 %FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33 %FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100 %000011111111220000002200000022222222440000004400000044444444 %550000005500000055555555770000007700000077777777880000008800 %000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB %DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF %00FF0000FFFFFF0000FF00FFFFFF00FFFFFF %524C45272627F8272627F8272627F8272627F8272627F8272627F8272627 %F8272627F8272627F8272627F8272627F8272627F8272627F8272627F827 %2627F8272627F8272627F8272627F8272627F8272627F8272627F8272627 %F8272627F8272627F8272627F8272627F8272627F8272627F8272627F827 %2627F8272627F8272627F8F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F82727F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F8F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F82727F8272627F8272627F8272627F8272627F8272627F8272627 %F8272627F8272627F8272627F8272627F8272627F8272627F8272627F827 %2627F8272627F8272627F8272627F8272627F8272627F8272627F8272627 %F8272627F8272627F8272627F8272627F8272627F8272627F8272627F827 %2627F8272627F8272627F82726F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F82727F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827272627F8272627F8272627F8272627F8272627F8272627 %F8272627F8272627F8272627F8272627F8272627F8272627F8272627F827 %2627F8272627F8272627F8272627F8272627F8272627F8272627F8272627 %F8272627F8272627F8272627F8272627F8272627F8272627F8272627F827 %2627F8272627F8272627F8272627F8F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F82727F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F8F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F82727F8272627F8272627F8272627F8272627F8272627 %F8272627F8272627F8272627F8272627F8272627F8272627F8272627F827 %2627F8272627F8272627F8272627F8272627F8272627F8272627F8272627 %F8272627F8272627F8272627F8272627F8272627F8272627F8272627F827 %2627F8272627F8272627F8272627F82726F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F82727F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F8F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827272627F8272627F8272627F8272627F8272627 %F8272627F8272627F8272627F8272627F8272627F8272627F8272627F827 %2627F8272627F8272627F8272627F8272627F8272627F8272627F8272627 %F8272627F8272627F8272627F8272627F8272627F8272627F8272627F827 %2627F8272627F8272627F8272627F8272627F8F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F82727F827 %F827F827F827F827F827F827F827F8272727F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F8F827F827F827F827F827F827F827F827F827F82752FD277D27 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F82727F8272627F8272627F8272627F8272627F82726A8FD27 %FF7DF8272627F8272627F8272627F8272627F8272627F8272627F8272627 %F8272627F8272627F8272627F8272627F8272627F8272627F8272627F827 %2627F8272627F82726F827F827F827F827F827F827F827F827F827F8277D %FD27FF5227F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F82727F827F827F827F827F827F827F827F827F827 %F87DFD27FF52F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F8F827F827F827F827F827F827F827F827F8 %27F8277DFD27FF5227F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827272627F8272627F8272627F8272627 %F8272627F8A8FD27FF7D2627F8272627F8272627F8272627F8272627F827 %2627F8272627F8272627F8272627F8272627F8272627F8272627F8272627 %F8272627F8272627F8272627F8272627F8F827F827F827F827F827F827F8 %27F827F827F8277DFD27FF5227F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F82727F827F827F827F827F827 %F827F827F827F827F87DFD27FF52F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F8F827F827F827F827F8 %27F827F827F827F827F8277DFD27FF5227F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F82727F8272627F827 %2627F8272627F8272627F827267DFD27FF52F8272627F8272627F8272627 %F8272627F8272627F8272627F8272627F8272627F8272627F8272627F827 %2627F8272627F8272627F8272627F8272627F8272627F82726F827F827F8 %27F827F827F827F827F827F827F8277DFD27FF5227F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F82727F827 %F827F827F827F827F827F827F827F827F87DFD27FF52F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8F8 %27F827F827F827F827F827F827F827F827F8277DFD27FF5227F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27272627F8272627F8272627F8272627F8272627F8A8FD27FF522627F827 %2627F8272627F8272627F8272627F8272627F8272627F8272627F8272627 %F8272627F8272627F8272627F8272627F8272627F8272627F8272627F827 %2627F8F827F827F827F827F827F827F827F827F827F8277DFD27FF522727 %27F8272727F8272727F8272727F8272727F8272727F8272727F8272727F8 %272727F8272727F8272727F8272727F827F827F827F827F827F827F827F8 %27F827F82727F827F827F827F827F827F827F827F827F827F82727522752 %275227522752275227522752275227522752275227522752275227522752 %2752275227FD2FFF2727F827F827F827F827F827F827F827F827F827F8F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827A8 %FD2EFF52F827F827F827F827F827F827F827F827F827F82727F8272627F8 %272627F8272627F8272627F8272627F8272627F8272627F8272627F82726 %27F8272627F8272627F8272627F8272627F8272627F82727FD2FFF2727F8 %272627F8272627F8272627F8272627F82726F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827A8FD2EFF52F827F827F827F8 %27F827F827F827F827F827F82727F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F8FD2FFF2727F827F827F827F827F827F827 %F827F827F827F8F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827A8FD2EFF52F827F827F827F827F827F827F827F827F827 %F827272627F8272627F8272627F8272627F8272627F8272627F8272627F8 %272627F8272627F8272627F8272627F8272627F8272627F8272627F82726 %2726FD2FFF27272627F8272627F8272627F8272627F8272627F8F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827A8FD2EFF %52F827F827F827F827F827F827F827F827F827F82727F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F82727FD2FFF2727F827F827 %F827F827F827F827F827F827F827F8F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827A8FD2DFFA852F827F827F827F827F8 %27F827F827F827F827F82727F8272627F8272627F8272627F8272627F827 %2627F8272627F8272627F8272627F8272627F8272627F8272627F8272627 %F8272627F8272627F82727FD2FFF2727F8272627F8272627F8272627F827 %2627F82726F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827A8FD2EFF52F827F827F827F827F827F827F827F827F827F827 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %FD2FFF2727F827F827F827F827F827F827F827F827F827F8F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827A8FD15FF7D7D %FD175227F827F827F827F827F827F827F827F827F827F827272627F82726 %27F8272627F8272627F8272627F8272627F8272627F8272627F8272627F8 %272627F8272627F8272627F8272627F8272627F827262726FD13FFA85226 %27F8272627F8272627F8272627F8272627F8272627F8272627F8272627F8 %272627F8272627F8272627F8272627F8F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827A8FD11FF7D27F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F82727F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F82727FD11FF7D27F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F8F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827A8FD0FFF7D27F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %27F8272627F8272627F8272627F8272627F8272627F8272627F8272627F8 %272627F8272627F8272627F8272627F8272627F8272627F8272627F82727 %FD10FF52F8272627F8272627F8272627F8272627F8272627F8272627F827 %2627F8272627F8272627F8272627F8272627F8272627F82726F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827A8FD0EFFA8 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F82727F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F8FD0FFF5227F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F8F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827A8FD0EFF52F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827272627F8272627F8272627F8272627 %F8272627F8272627F8272627F8272627F8272627F8272627F8272627F827 %2627F8272627F8272627F827262726FD0FFF27272627F8272627F8272627 %F8272627F8272627F8272627F8272627F8272627F8272627F8272627F827 %2627F8272627F8272627F8F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827A8FD0EFF52F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F82727F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F82727FD0FFF2727F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F8F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827A8FD0DFFA852F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F82727F8272627F8272627F8272627F8272627F8272627F8272627F82726 %27F8272627F8272627F8272627F8272627F8272627F8272627F8272627F8 %2727FD0FFF2727F8272627F8272627F8272627F8272627F8272627F82726 %27F8272627F8272627F8272627F8272627F8272627F8272627F82726F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827A8FD %0EFF52F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F82727F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F8FD0FFF2727 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F8F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827A8FD0EFF52F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827272627F8272627F8272627F8 %272627F8272627F8272627F8272627F8272627F8272627F8272627F82726 %27F8272627F8272627F8272627F827262726FD0FFF27272627F8272627F8 %272627F8272627F8272627F8272627F8272627F8272627F8272627F82726 %27F8272627F8272627F8272627F8F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827A8FD0EFF52F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F82727F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F82727FD0FFF2727F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F8F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827A8FD0DFFA852F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F82727F8272627F8272627F8272627F8272627F8272627F8272627 %F8272627F8272627F8272627F8272627F8272627F8272627F8272627F827 %2627F82727FD0FFF2727F8272627F8272627F8272627F8272627F8272627 %F8272627F8272627F8272627F8272627F8272627F8272627F8272627F827 %26F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27A8FD0EFF52F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F82727F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F8FD0F %FF2727F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F8F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827A8FD0EFF52F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827272627F8272627F827 %2627F8272627F8272627F8272627F8272627F8272627F8272627F8272627 %F8272627F8272627F8272627F8272627F827262726FD0FFF27272627F827 %2627F8272627F8272627F8272627F8272627F8272627F8272627F8272627 %F8272627F8272627F8272627F8272627F8F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827A8FD0EFF52F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F82727F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F82727FD0FFF2727F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F8F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827A8FD0DFFA852F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F82727F8272627F8272627F8272627F8272627F8272627F8 %272627F8272627F8272627F8272627F8272627F8272627F8272627F82726 %27F8272627F82727FD0FFF2727F8272627F8272627F8272627F8272627F8 %272627F8272627F8272627F8272627F8272627F8272627F8272627F82726 %27F82726F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827A8FD0EFF52F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %2727F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F8FD0FFF2727F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F8F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827A8FD0E %FF52F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827272627F82726 %27F8272627F8272627F8272627F8272627F8272627F8272627F8272627F8 %272627F8272627F8272627F8272627F8272627F827262726FD0FFF272726 %27F8272627F8272627F8272627F8272627F8272627F8272627F8272627F8 %272627F8272627F8272627F8272627F8272627F8F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827A8FD0EFF52F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F82727F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F82727FD0FFF2727F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F8F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827A8FD0DFFA852F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F82727F8272627F8272627F8272627F8272627F827 %2627F8272627F8272627F8272627F8272627F8272627F8272627F8272627 %F8272627F8272627F82727FD0FFF2727F8272627F8272627F8272627F827 %2627F8272627F8272627F8272627F8272627F8272627F8272627F8272627 %F8272627F82726F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827A8FD0EFF52F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F82727F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F8FD0FFF2727F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %A8FD0EFF52F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827272627 %F8272627F8272627F8272627F8272627F8272627F8272627F8272627F827 %2627F8272627F8272627F8272627F8272627F8272627F827262726FD0FFF %27272627F8272627F8272627F8272627F8272627F8272627F8272627F827 %2627F8272627F8272627F8272627F8272627F8272627F8F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827A8FD0EFF52F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F82727F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F82727FD0FFF2727F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F8F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827A8FD0DFFA852F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F82727F8272627F8272627F8272627F82726 %27F8272627F8272627F8272627F8272627F8272627F8272627F8272627F8 %272627F8272627F8272627F82727FD0FFF2727F8272627F8272627F82726 %27F8272627F8272627F8272627F8272627F8272627F8272627F8272627F8 %272627F8272627F82726F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827A8FD0EFF52F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F82727F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F8FD0FFF2727F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F8F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827A8FD0EFF52F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %272627F8272627F8272627F8272627F8272627F8272627F8272627F82726 %27F8272627F8272627F8272627F8272627F8272627F8272627F827262726 %FD0FFF27272627F8272627F8272627F8272627F8272627F8272627F82726 %27F8272627F8272627F8272627F8272627F8272627F8272627F8F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827A8FD0EFF %52F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F82727F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F82727FD0FFF2727F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F8F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827A8FD0DFFA852F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F82727F8272627F8272627F8272627 %F8272627F8272627F8272627F8272627F8272627F8272627F8272627F827 %2627F8272627F8272627F8272627F82727FD0FFF2727F8272627F8272627 %F8272627F8272627F8272627F8272627F8272627F8272627F8272627F827 %2627F8272627F8272627F82726F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827A8FD0EFF52F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F82727F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F8FD0FFF2727F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F8F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827A8FD0EFF52F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827272627F8272627F8272627F8272627F8272627F8272627F8272627 %F8272627F8272627F8272627F8272627F8272627F8272627F8272627F827 %262726FD0FFF27272627F8272627F8272627F8272627F8272627F8272627 %F8272627F8272627F8272627F8272627F8272627F8272627F8272627F8F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827A8 %FD0EFF52F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F82727F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F82727FD0FA827 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F8F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %27F8272627F8272627F8272627F8272627F8272627F8272627F8272627F8 %272627F8272627F8272627F8272627F8272627F8272627F8272627F82726 %27F8272627F8272627F8272627F8272627F8272627F8272627F8272627F8 %272627F8272627F8272627F8272627F8272627F8272627F8272627F82726 %27F8272627F82726F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F82727F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F8F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827272627F8272627F8272627F8272627F8272627F8272627F8272627F8 %272627F8272627F8272627F8272627F8272627F8272627F8272627F82726 %27F8272627F8272627F8272627F8272627F8272627F8272627F8272627F8 %272627F8272627F8272627F8272627F8272627F8272627F8272627F82726 %27F8272627F8272627F8F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F82727F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F8F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F82727F8272627F8272627F8272627F8272627F8272627F8272627F8 %272627F8272627F8272627F8272627F8272627F8272627F8272627F82726 %27F8272627F8272627F8272627F8272627F8272627F8272627F8272627F8 %272627F8272627F8272627F8272627F8272627F8272627F8272627F82726 %27F8272627F8272627F82726F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F82727F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F8F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827272627F8272627F8272627F8272627F8272627F8272627F8 %272627F8272627F8272627F8272627F8272627F8272627F8272627F82726 %27F8272627F8272627F8272627F8272627F8272627F8272627F8272627F8 %272627F8272627F8272627F8272627F8272627F8272627F8272627F82726 %27F8272627F8272627F8272627F8F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F82727F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F82727F8272627F8272627F8272627F8272627F8272627F8 %272627F8272627F8272627F8272627F8272627F8272627F8272627F82726 %27F8272627F8272627F8272627F8272627F8272627F8272627F8272627F8 %272627F8272627F8272627F8272627F8272627F8272627F8272627F82726 %27F8272627F8272627F8272627F82726F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F82727F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F8F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827 %%EndData endstream endobj 19 0 obj <>stream +HWr^ʮZBs 'YUNYrjMTJ؀l+XN(:/2elN>}')ys0;<ŧˋٗQQk)x^ŠJ{o[s5vnC~Jއuޫ>iŸNNb|KoPyHm}Yz&mx^rd!ӾΓI~o+odwVNI/}QNӼ=1Y9B|$]~~&(V_M< }'-6V;$Mǿ֤UQG ( ^eZwZ9E[`m[C&d'%aݾ{vIosKk6] C}JA38V9-]^%ZJlì"qPT*zVh.:]{cDY~q/IWo0_6Ǖ75eՖZʡ9;m4;w": vonճգp֙i_L${]g(Z9²:i&]pPNӼZ_he;z6ɧ%ͻm>M|-zpVN{XsX9座~1LnbǛp}ߖA5Wٽw+>+p +|Wl_:XWdw=]3p =w3p7z eV,fٔ?ԭɂ{egrn&̙ n:-lT}p\ʚl 'y5gIyB9xs ʡ&jܺ^V֯(əi;jse W.+ٲeXW#atWG{w` )E̒AI jrdZ$ oE788)_A [qP#avm+t@6ef[Y47VNl_&sy`i&150;Fjp~΋&ޫl흼?|7?9K=G;| v$3?Oz:}X'<}jvT˪.vG7o;yNpvrp#sdd9;ʿbev?ntr5:޳ì>ٞX>Z|—o0}Tp,_z}!r`ԣO6o,oo,}|*n +D:VE22A_*6 xF + bC% NB.tЗai= %S,4 2Z;/ m$ +D$t527%D&P)Gʀhjb{8 tqڥHƍԙM֙]mgz.;) qVtRG)C#vNt ?ct|"r?FXHBDR)'+9UfL] RAɡ! wnq+6)2xO|4&_U%`د +,V}9ZvE!n}LUa _l(RYؗ(,R1JZ6]8@E@2n>xi`%˥] [6ʡX UUUmn"kN*PH5@S(%8ѵ݄dt7PؒXv֥aL|m[N4^A.B*RĵBkQ"B^P"$|mؔp!A$ {Ig]rc~ϸi`)ҿ86-Ntb*T̋#uyCA[+ME1 y4)O0g~׬VH,!K2:2#3o~h@RUKd좥G(Ffp$/DJ˵U=<]#'n!kZ:f0p[tEa亽5s&Y4^R{U%*$lJLj;R?0?;٨B؋GSz b +xv3!^E| ;QE8WRA md':=E1g?1֨Jl,4F]±)+RSbP(dUP.IgF%OHA͋A[^+ H +Gd}<@[MnXn +.=|v= t8P?su, `K5KqF2 ]r.XdX:C܊;f4[[ oz;OfchͰ4e`J+-CBfG:%fADWيHOW֘jb|?ˢ֜B3 +ѰffY,yA΀u h{ݿǽo8U7V4/X a)}F. S/}3b=WփrǭmlƊ׉W7s[dIn:ϴwez|867o0ꎊ[w&>` +0 M,Z#s2qA}5/^}r,k&5̷\X ĴFʲ F-&}[`M5j[FߺÁrN@ҥO-a?^v~Xd-e$%yi?#L,$j";vUX Ce:yO>\DI\N@s8EicX PI`ykݪGXC1{alqܵVpô1a#d<=m 5#4Ix}ԢgWn+vo\ۘl~̑I(zܡd-E.nj2T9?@7e#+32|S6Ž~mg x^p\镜 󇀟nbGI)B0/xXj%(9:eJ.6PcSCBmyYnHk_cTP| Y,P3O:Bb 8iZ:$W4Qs5~2|cK$ ;HT3Te/2=䳒KuAd}`W<QN%;(W>T5Q3Z~/M4WoBt6Hj+Lyr0JFMk=mU~oRf>BhT#͏=Gk^_ph!B$Py[Tή`ҸTiۊ^*O_4!{^S>hh/!=I&RH+``veL8/zBAH4>8]B@@NV$ThB@r^Sb=^Ը Ek6uX@LߑKC6|1.u ly-[s jw*^3w߻p1^CNY%ZU*=x]yPDb^D5sU.di?z!k]~d9d\tC6j!R-&*2 +vR۬n*X!:2oC:x_KV!іVJzG}ߚ9 #hQN +Q-,.ci->\An6FSwP@Ü{F甅ߤ6 +֝-xUCdHZXud ;"=eMI\EU {hn'OCw"[Ӈ=LG*۸o4~XL_\Z>JuL9H36+X-.{_ Dh(z qt۰=nT5m̑f*͓IDZvf]ywGRw^VMT0]nV`7vm!Yyfi?0xɩʯ}xkԵn_H@(r4FNˌ*XXh ~(H/:6Ga3[p>GSt"{،q1 +\&c]l_z[cdF}H!ⳓeD@H@ +)p!S)+dU( ^̿%Upӳ=2ʵ^ U)PkKL:w-ˆ5c=fr*p+b(Ox2kܵLکimwƐo.TXLJвV6$+OPxʚ@/bO}?WHC!`0RZ<U($%[y%u![{{UwWs¶+G |[P)EЬ\~iYG5u' +$}׶wo5YxŒ[L$!6RSsAC݄ZRGLBˀ\ [YcI})ηt7ʅĸшŰ|B+1˂D6*uf(kr$cjZ);Afgc ۩}ݠ-y -mH7G]m&,?^0F8  2SBYD?q=ӣi#˙x%Jh2aSCw6=t~GLo[țM}ѯ=t%VsL +8K,}QvLYYm&㴧.xMng[C^<V(Jqq8Д߇ITzں__0€G-^v%zEWtWp1zet35բ7EWzմa/ +C-m)[uΈV4l)0Xzc!2jd񠁘gZv:?܍ȌHV _d!@HFR +e[ߒYQ_9;{( Ö 35UUNB+z, b"$OX:vYԣyk Ldks_8d nḃeA]tqpJCD@SdB&hfHqD@ diY(آ,%AxtQ+kD -UַX7۞]U#Qt4 +r^fVG"Yں(F^lY[(2% KղrpqrlY.Lo"a(4W^Ȝc+PN"4HG!LKMeV)HK0Pm9EʖTDrH TIw #˜mFaa$R2% P\!w쑬 g;=+~ iF%{kݕ@Vid$B%:APV$6 +-X^<棉؍?9zYYLr퓕Y}/:L&6z$2lv $86"XN!P}f&+ p֛$@!kl *PA¦H{aהRRDk퀐 +gc +ݶLDA]Yڈ $S>nGLr)Ī5(ՒcOd1j;6~ϵtsSW0mN?Z5;T]~C!߃=+= EtnuT[7kp~’rGf9]{[zW=Y^<{/9um_!>~/ƇBMUwUwNuhj-HTvѱs"Cw2DsJHF3<}7\'3J ["aU4xT 4șd7.lѣtuq=:=qmsfKXhTsh ]#lJbJ={ZIu'tTgl7u"At~H +vM;->, \.?ƭWU!i73#q܍ CU|Ua91x\ S[&:=x)O? %9C c:|_m(v1oeyD߇3|fnM-ԮͼF>QC߃EM6Ň!&{mрέsܻbj1 ebX$Sސ"ɦKML,Vr.9twdXdX7 O~h?٬90vw͏thgnh'MbL\ۄ.[&9xK"ilؤ>CۋMޖ1δU/T`E :CX<0⳿=ԥ +{Ia}z[ĺO@oz@h2 +~H-trz0Y+ .w.{Ɣ TF +kV߲ܨ@ (jϣ`ɬɼ׵SDY0m+;w|RI%fvdQrF頸dQCncj'/9>kBByV6Bv\ZHVkuϮӱ7|aϿ0O~?|t25ܶzdm.&s" 9GE*h:R _B76Zqٌ<LidBCl$h 9Eں|LhiM-ZkkED˛ 2) q*hpOp v9 iJio:e#.  L*e$q5R'QKDW&[9(kp+3Ě˼EJ[i/L1IDb@Ԕuy$jA^,`#|!DQw.D  kSi6KiI;R9].jxk\t* "\V4;k/ިh,GS8nmho}qYw嫋9XwG}W.j=ݪ*&|\]=>{J y3ƊFS*Ib m/ં JHpK%!l&(Y ĚeTRDus?%Ϋ#n'pвA =8&H"Ld,([kRUzUؘPB D Qge_U& c XYh`U-{UDv`Sr¦gX!7Fb4Eʑv6KMZN +hL.Mw|{mVWd!Ҙ@! +jց}U-Y/hB?NN=FOF^Q~鏫6$|j4â6-CL5j +bR!yâK +#>Xk,7x"B?99(h\_/ÓV[΢Aj@LE6( +HnZշO-#jT83cL +STĬ1k>ɉԖƳ@d +@P\`N=F} yIUV^"*cQ(lV]FC~5ʇ Lܐ~rShhh25q~" 0{lW{ g6]3!Ý$m {yW^g/ˇFq(&fV$n]تjvGS-3VP8yWs@?/yI)/%GX$PAr>`N).*Bq_΁.-qoFA +:'i٩;bq`&QtenrdϕJ;%za!T2mu$kR@1mBPڞ#-YO]%+ʩY5ONԀsy:RXC9rr9x4:ކ:7LHgfR1"&PlIu."8htuJ@+jlMq)gW FO?$aUi,[snE:!0$DQ$ehPp.ř/h9b,/;RXrʳ2^9'`C=A ķv47;DN2J+/T NKmOR@bpu0L;3 Y.zČ['bVbB8eֶ̡Κ;5+9hS*8CD\iճQK=EmaLְd&%R=ض* iXEZXHziO#H1Ţ.q_ZVLT  C'kUMaӻN,))y*^P 3nY- l95plJˈK *ZmcGVf8镽ĪDe@`ӉN<pif+Y#dʄTTXk˰ Zw3EZ%Qur.[vrNփř=qN, TZQy1Ye‰GY85՘mڎ{B8.x>"vhXx*s#(㎌C ENt+4D/@#zPwTh"k\uH$p@H&=x"[a{eBQ 0eCsBY`G@-#$ DՁ>|ӥ$*a+VyEfQW+ӸRx({g3FS$cAlV N~`{Y) f@Kz{ SƘskWi. t]a,AG=Vro/z߽|͟߾/\~}//^}}/޽T?o>~ŋw}ŋ_K7ӿ/}ӳ߽|۳/}<חy{xw?`G<޻{z_?d;$G DOw +[9$Hu}VXͩ?J^? wkCHvYC;DnT\P4up*붛}~z<)Mop~% ̗|VSc=T-DV-ŤNRD\Z5w$Xiwl!1:!BZ캚MetQ>oǬ)>Li84WihmԭN#L*<=EڃEkTIhY{ `ER0dmzcE +]1=_@qҙspl.#+?WE%zC4Xuұ?p* IJO'W䗑u_s;WqN RPwb#m^{)D[tncۅrrR|99h ji#4%.s+x%igb, [!l +9O!M$ usKR+)C#Wy@4 TsVz8 `ҩ]v?-4wIWEb7mأ%̛s0$CRA)bd)7f"8D, +Log'ܶ)]Z2ٕq͖4jxJ*Ki,_&*l۲!45A4 O +R_K`OXw +iebiGf'rߊ^4ZL#RN BQܦTy8 1g + +`(]\#A'6dQ%71>D4lj5}N~:creg !D$>ms?)7A|:$*OJ:mjK5̷EDIՠ[v7wUs>>~Ku +%nd:4I&툨2&_ txH"Jd1dq]Pup!b{ͅ'@X5/eWt) + vʆM@i\>FC2)rL] ~4y՜y HZh*irVE,]}Q!tA>]W gim#LmY endstream endobj 20 0 obj <>stream +H\Kr$7 DO;I\ַڳ +>DrW;vk{fqe+^W=W;ͺ__wd_[wzf2wtd-k߾f|X֚3/ :kӸ{V5^kI6tjߺw6/p|G"k4|=߾{a:"}_}B_1]\;7VHDN.<Ƶ y-9rvOۓS-&פxm1I{Z2- +Y`FR˝EIR}}Fޙҍ3cN䍗/N3 X0pSFd +&K=&^|[fO\N:&fn[‘qa_ P2:)eNKi 9JIam1LBKwǞ)W +x&8 ^ xo~K2+ע"TMZŴszŌQSBp8u< C{z,C9c5q_Y8Xʨcw!87Uua;lx &SREiFq1 ӘT'-e}>- זv(4,m2mFὋǨILs|KȲPWـh[>**<}ֻuR/&~gsՈʶ-e%DqQjЙmVFqځT> .U<Tp`L0~hPŰ _F+\]V-OgID"H;'uniuY:m^8%h9Yx;ɶ2rJEML[u m Xj0SPӢSlWE雮,$|TfPfUѡȼW,cdj0`RLiCæmu +|%ضބOq<|igJZsX,hGa%a yUW{۪u6Ry**5O(ҔBY 6 վgBCrcfjJ*# ̮0<}m$H 6Koebnyd즒1)u0$s71DWbYCC + e?ۚX[?!HZI|*aq< + Y+1e_Hy&޾)2*-(V5l NT+:h~T=r!-t^R";+u15A4HpW9τM 5jj5KbϪYtD(UmI. ɩC8"Hk<ؓH$ZSt%4j"54c[n[DOiiD{JGщt";pd ]rX>cH m'N]?ĸj@3UC%z^0 ETmԤjCĀ2=\LI_\ڵ=tQcC84 +bqU~5p3sxD26ڶvEJ +ٕH/9T0R).nQR{=uvysn٣\`ݸJR=ŏ#w~i5+2\C1X銣葅 +IpP"vk\Z(/bEXbaT$:L8н(b_po.y*$ 27-=ɝ,b;͊ Lq,YYG Ҵ J}/%ԋB_֓i"ظ,Ԣ\r%Ys>o YjÉI{\&c="T~KM4 aPzdhIUd!.=` ԦtjMT +AJ5q]6}*mz;O0P@ >˽% #ELkLDO50xSj`u~A$ ߄gEY$&zMlTɡ^4nC[|JMD`v!al'"O%y $!8;{?<_}?yq{J}ɻחW7}.[ +{D'oN׺+|1_7#Y@VÖiӓ|v|sugVbON֕&|T#!~O?N/Ngגf@+fl35f^|>On7]@Y|?C>tjuyhKo %6RC~&BkIoҹ~Hjw8.p5'7ċ@I![Yf0J]gcQCl3BN"P]e@UWx +o MU.Q@ Kz% +(Fe+DOCj%vcaH9'E~qa|v2fvR +aka2)oҌ(Đ|OxG%np2]2RީhnjG ǎ>(;@C6>k-\0ͥKD%FgoRoz&ʴ#)2\R{2z S(8C#3Hf8 ٖOۖ0Єuʬw&@M͘RR5Q j #f_SbԤsJ3.)>X&: Y'BՔQh%bɪ}\7̃-H|)-~K(W dM +SRm4㹡א L+a *'QQ#{2#OmRL8&zC\:[@um.l{_,w|od uT2)~h E{a{=1-ru6RٛPtF:)`}7V5Sx/bL>+ B|I 2:C3-5pN5в#P7{.ס^\3u9oB fPklgI>0 бt]bF oo&w_I&(>/{3NP:C=T/z-ܮM KV,^X\nPe-u{n*uT$e^ڀŶ֫:1-`qeIvFWZyQXkKڛWέ* 4{ȜeO&Ug~ޓggXW,"LB{W5{/e}NPO^ڤM=   "x +*ta&G \Ͽmo\PsperI~p~@~LE¡ U*꜊+YZ8RˡYtiMD I)` ߬:t:ެܸT}6%C0QWjyP#H-hFRPMYs J})g.JQt=rshS ?tLwE /  w/-.:7J]ٽTnÈu- кdQrG=.n'D)׎Xl + ;1mce|Prʁ< |Vx +ЯSq=j%s[ +]HNg>EcJ{.+1/dzDa$UTæϷWpK>ԛ{ֱ>$L~O +O fqf~͟D5[_O4h*شRxcOc^w> jT~6~~f.1 RZ {T|`e_I[67囍ʘV|+nZ=fxݘlZF}v+XXY߳iH To43S>#ޠF]/e+ZYknEP!e9}t{PF6C&F#}WYo#b2DQB>Dy1?bA|v1Nus=@vpj+9}cx0G ~tDꦐbX-jta*t婜Ar}uzMJFU!5tn+sA"qCRųCueZC fBZ{jbUbc`>Oco`oRȞ,s eyia⊍dEfߙb5FĸԞ-;u CZ#L1jK;P{°OXΨ΢%F޷*wf'\eAf!*|BYx<5|ɪubOf=OsIpPm?l +R${PlZ)d \WVɽ|X*ǖW9f>T:k[0-O(Td3kPz'zOFCGͰ,a_"@{>ݰ%*Uo˜JÏZD롭*ڭS(0K<`ZO`1V<yŰ($`ۤ +kҡEk4+8l+^VkI/H߅.,}ȡlTMsLFz+%u<H̝)s6J5hdƯ{0blYj1C5˵> uV!umN-+e=Za;Ѻ\/ +dջps1i?Ok8Oƨ~=,)Q$<4ZO*'y^[sJ<s n T㓃5$/1}75*jI,)+pPdfD AH#"V;^Kq0#2NDƽ=h?7elt ̽10G%Ts=st$B +)',1/??F*_zW?WS:2qn+vANST'DנUKWNVv͊v;;Uz+np\ɫtp1BM{7$0:=vVCɳҴmƱd2k]dh_]ԮSGy?T$:Y Fe֪r P dv\ïzXYVZj+W9Uհ5.)Ẅ\<m&le%zJc~CI]0JxXg9 +G%=-WN'א,0+u1H67ϐzm'J )ažH,?&rLٷ6x!*sWj|tt]uz+fgWLΞO +d0Nw8$<^WhwtJ)!ao0tM>SWv՟3TV(W9 |*21#@:,5 :dLb4̏!3)Z3S΢Z屎8lcaN8Z(n=v!<2Nw:}]5ա}]t {܏lьqJwic^k,We8vkb1y3v6&P1$gBۜa0!d$vvTzr(B=n⩶!bхl'|MJLbS a i.ݵJO-~2*G54}BidOcix(=N x@GTH[{RWbZyBLgԀ>xMnv9R~胂kckoKAP$u%WJV +P_m++HPpa8Qz`$Al-8~cIee2 +ͬHBB:a)S\r9+9d.#?h-:SE+#e0%"AȺ#v2Gm0hÁ^Zue oD^lS4y`|AoUFr#aګ!NT]ʮ)޹|_Eĺ`{O `syStqHc8l\p ((ߐ: :GS~X+1 #HG%'RhanAgR85vYМ>B)+,,dFJ13J'N#b +Ӿ#| #i!BvJw#uF@4)/x k;Zi5vzDu؀ຍ,zDE LӨ,fwxSkn3º`2&2v5zZ7{o N 7 30rҕ} _< St +n GE8bkȖ*Rs;#GJe1y a#R dų{$u"E Ϡ;u'%()%ŢjlJޯ~x{l#z }`cP b)T{FbZrD =UO%f, GJ>[ǵ*LRd1vdwK5?F"]d=RmO,$<4H/Iti[øB'^F^Lv̳I2<[@F kkmoxX2C8첍t&T1'fpP*RE>@t\j$7^K0--XA4Ajw XY5S$jJ#)YKԓ2XE5t^AOd{ .VvQ|PVx3cANiӔl^>ۃeTE P3^z$RqɂbfLR%dUPvCk7,-sR8ʝf+C.-4*i55H/ʣ\ߙ  $Ԑ25B{ez ;L1Q'IH<0ͥ5Sd3֭SczB|I't`x<4=ftY9!n2ʙ%<3iɖWZ&h +^v$ 6 NeQΒ,ƙfAT?5 Uh1"æ%X3/ՎD˝ +AQWffE~V 4lT?ZT d;2ޭJ:8#-@b]W2?8V:u]^~ٝ/ߪi[5u8#%c&|\)^3P{<_AU|hrQ?x,gGU踚K}G&x;]DrXqNL~&e1V=y5-wż>ZT'&{;pD^c  ÕB>oEU` `.j5_@V'D198kN(Ɉ ;vÎ W]sF1W6Y*_6?7/#kr,^AQ 5 =ǯ#&s}Y7lϛf-f YP9WBJrr9n'#2F]3{;-*@ǻ 8R>{M*â^\w }R+^ٯZ#?g^9D Ic \W-HqeS1ȶk2\B׉H5x.˙V &× g MK۱f I& 44N,@dr&߃;qyW<5$_cTƪrY @vڳyLi^ 9TdIiN7Gвg9"UMP#L + ujYvbzbYM 4jbzo@&[Ţ=Nhʫ"R m}n lr1ɏH$qc(O8S+f,O +oDP2+I,^!Ȁ $cGԾ<ef5YP&,ٞ$y$+U=()RϺ[JlfЬf   kwAZP&,00V~D WPJ `95m05 $b(}޾|qj4-1ZfBZVl9' x@Y)wLCP&>8-'>\.b{gw=⃳}qt'f|Q8> x*S Blq$v/,^ .Vf:K}§|@}@]3k8>M"ҧ?9ޝ>cQnH峮&\h|Dq(` 1,\FCa ]̆Y>41RcUe:UMvӑYo,k`ɲժ!J,7D9(ԚMLa]Q)F1%x(.ͲkdNf&GIp%VӬ1ƔSS*kJaJL1m0^4ۨ~^/xt<ʖt{U+!"eW,߆"&M7Fznd;W|}X|'wb!픎?\FCHhc,t" Ri娔 1ErqNaj77%GRI;1Ge~!+7B?*yi˒MaXU?arw_#桾zDnD>j&^e!(#ua6 ]$/t#Sv;1Sp q|/ƹ;ÃPi6(I$ʲpkrL>qS!9Ib5Y{zxJ@' + 0O} endstream endobj 21 0 obj <>stream +HWn8;G"vҦA㵻E:"-Xrb3wCg?M;d]]Ӄو/L_DZw(ViT壟&_ 7Z:|Xd/$  '/fZ%^N-s64TK~ iPlCk + ðK2 _UWMk7+fj&O[ +zC/MJ(Ze3CTE)atsaC*oP-AI}MI!1c2 qD 5H5izn y[l4g+ gy[@FB * +1P=9SN)8R3 ?_k]Ura30 PLy5ݔ#Pbrj +Z8WtfSoq!#iV 3,T5(y 59fl&^$`CS9w䮑%wG4uC`"g.ؒz]7= 9M3+i][y@2Sl_D=hgPP*s9F(SsA&t:|a<G𯳶lMa&)iv7ݡ :5^kuպrvu&q@B4xLbBw3>5&} 5v='$~1D&& l~t9ad?*C؋3,V|!w~fݳ#xF ^%'r\ .倌n+Kfe^ # a(:>܄⚯<`%`!FVo='HH S;ngAB2r@=nBPF?ss}8 +7;9:2ܷ/鶬̝C)zm&a3~Џ:'ߨˑr Ǫv(x +ҺH̞"8eh\#0YAaMZWN F2f#C>FQȡ{[$^E14pLcF!{nD=xw p  +p@BP[ (4,L|rQ05CWBxo +$KؼhnFkky4hx@C'Mzn0=Oq#NS^ =u\粛,x8UQPYRfY=H]q4rv\cgyMh(ͦl]5'] +7=z/H(?fQSEV$qvo:KjwPș$^n(0-[Em5,UmI~]RSRfUoAd>>JȆs|HS$8@ +"Q\O`,g#XwhKex@D 3?唯2/Olo⿮ XWEoUi +L+g)kɆ1K<& +Η΃X-E25n0 ,qU܋66V\4ў=ӸR(hG]Zݑo![QA%o͠MY7px +li+?iD5w"aG +Z]9E-3iʱ5="ZEB{b1|Q)Qh`y k (;\_5`O]͗bv;7T|vU୙LAgJ9>Q{Rz#/1A)ƺ Ox]l5S @*sQ!r#! +f6Tɡ RyXD `Ԇuy#z*_8FsW2?%H񝁩xǺ9)tGFy!>w~_l`4zj`ē%"zBz+Fu<cV2_C*NA/duUHk#1,{6ExX)~?ABw$WF'\M}NX*恧S &E k9iwVj[#&V>|x\4 ?вmA9Gc-㽖yDH}{(&Tg"7wR}8Gwx:QhkJfqg.oA}}%lFd4;X2^;4\ x>H!0=QXICHέ8eϨ|X5̺乙Gu DW " ?gФ*r/?Ѱ +OxGciHbp48Jtl +qHE?B?@hBnSbDdjňu1g1U]:ÙT&w/6RlѼp^?xgv a VMo>8U" O;m !Q34,!5`4[m*’ &@mzޙbjw+P,oQj}R%]v&bAHpDأwkL9ܔ7!- #<(ЬRG*6zS~M]Mr7 Ī8*g5uk(pHJPdDK{ YL q;S|KN(` 8_C5PG{"靰t +m njN2w_J9x,vGvn٩tbw3}eH`xdк%B ~jósO`־-9J<$o +x8Eg:w5,%4Xf]gZrS`=fEʵ32k%#H57Ϋ0)6ۿư~ÆQ[t/.M:Xo{$Nۭ­s By%LkqVzhi>ܩ R,o$#LG0-/SlE j=(@^q;s0bv17蕄+໭.tm5niXqQ][- +*nu{X&M]rL_A)jnL}&ňxy4M)~4guIAr_ګkKU%~p< 8 +Th 1g}̹k}qTu]sELksZƒELm~= TIsX4ap*y|C``Ǣ#Gr;9 r~X$xu2͜8|3.E2 .Up)FБFZ)'}\$I^t7qq[*9M&eM]i*4a/k8`Gd܁ ٿ juF{daa#dk {OJ,jem6$Τµac Ak14K)O;=R ^sG0.HqHry/:Xl@@ҌρBcLpJ @&P0 ОT 1-"[6L2А6gy2q;3mV"HZ}}σFWce]yD-eEڴGzÄڞX*!1GS_~+*w^Աy>;fb>ٸOސ Db)7!w2<2ܘS$>? {^=s2}TP¨@SrxbPF7u9ݐW8{-PFĤbf=%\z靱`ִ[ɕƩLt*ztVTyLEF4juuLVmN3;D*al4 ը4A|V""ĸpGeOo6s21[fjxD +>x5~'p#(H^Tu-a~Q7ބED 1oZѭF8!bHi~+5fATX4)IuE0Cf"f"pR0lěv +;t*!C?_ ٝQÁXZe3a9 *L]3ANb3uR6ȏK<=(8EޘqJ XRxflcpJ#*vLS i7fryo5aQXkyb)XfpM"Gݓ ;_MJaU8{cʯwD#&dr +i.T7:N~F_ʏk[A݋ .Ue\J(v_p=烀:Җo;Kq=l{v鏟1qUYG +͔oF+yo| gdzM9WZW*-A*e +=FڍX9Q<ŵugF0pk`>9g{1ceֱrݯ;ED'/R/ pvΠ,4:k?^gkS}bvqmU{}!Nc#b%A>fN"h6]DGg{Y; ,חqC)=Q`ϊufA)a'o=9SBY>"#fQYcp.RvK,`qUHf_{X/ J'噞20ߴm÷`m#mp]ݭC\ hh  DեEIUb$Nو|P +RVpr?haP}&Y~gcgjT+<3_PKzu..'aVńT9FL ϹUTMvZ8й$*Xbs51_#c |^vb骔3X ) _?2&vcps`()>?SpEW>@1+ .nj g[F)r&)wC_ +/6&݂ +RS+ (W:#b㳦s{_\"8smoSe{!גp>TvuYᜊ[X?SEYP!g>Ǫn6FAI:_qb61S)Ks'qlc2zepS^B#l0m_#]$GXv :1`,9wf **ꬣ`a 2uEm%(l ʄGs?%M5:(2qsjĻ DBޕ%MX9[I(WV]l @goOng[;}Nz1ۤ3>KܕDl/@~W㘑z}F@5~-&.ѷVɻ'NWת +[4  ȷ ˇ]Oß3"ڜLL ٷa%I4b0 c@OMAHCeegٗe +kXvBd!% +>t6NW_$ezP Z9]>L6B[*x_ \vpgw!in]GwQPJ}-Ο{@7} ~ +ڠۂ@i0훨|ר~ Ta(JECo1Dv]d_0ΨǕL*vƲSd3*s2 (~HS7ODӏE9`6.AE]|=;W.Ea8pZ +Ϟn $>Ot08v ?C%i */6LlZ51WsĤ(h sL$ydD_hAYir8OJL}GWΆޓ'=|z +:+ 6+ F_΁3NN3ΆtvNVTgYVa-/E[w)*j᝼/H_Sҷp/" +8Yg-k=q%+kq)g.iNDЀYVT-ϒvqr v֥U5'tjDHA CiעO_: m) Z ҷmp ,G< x etX8A\iSWyEZ_9&MϋV֮6G޿VT,$W/d}"d+D7Zbb._!"Y2Kl0"ZaLf L0F>l*c!PȯXTFxyw\6=/ɴRXr喅xyM\8^Q&cWȭh0aI%钥Px*KBh3 燚dT$ֿaFx흙{/:cUSgb^=q}]pDMUcۣ#tL[=,l y`V`MhbZY̯4CIŰM Bh||=4FL,m{x:4r p{$!&rbY/ݘl3@s<əkB,Q@ZI gɄ|ΕF /B"{h[,衠50D}Yl7b-܏ش˙P.ȏ_:hDim uIOtSkV jpnROtXst[ +orFy+=gf2DChuફ&ʉb6yos, wrg(hji +{̒k})-EWPc!?'\vך~[OFBbCsU6졧 +4bU(gȿ-2uS[贳P}yu7yt!dmNN:@E! Y`:Ra MC.e:uӜɹ]F ˦!M!C=fڤA +( ~SPU '-bᓸ@#(AErgU\=Ia͕@k"S}D=lUB( @ m`߱Ɨ&vÖdq1p(AՆޙ".}|GY7TmM-{o5k\;1i&R|`X}iW&뗝"ouv@onVg{WHk ں|eLb wǵZojZv^_!_}pKvʕɽ~NlZ1%=HN{;Ր;S֧<7C BfHkqWҲDżIiZKim0yXc<kT%3+9yZ +g6XTSc D}%CZOq/S׃10KXn/axǂ^ ^>v'WS\/2s1G}oݎRcܑmnIurU"z[M~A@nxFc$|DveU? BAXﰩv]{nO7hR^82H?c +cP}G@yL3 +ryu14NH>,CB„½3aU2(ǿynv>J{d3;C- IP˧auzΟC\ˎllмp'|I;ͣ_wk~p Hd +n\-#p-A< sbd#ۥw?1?w<\}F^W~=9pen7.7c{T#6).}n >Zd|yy隭\|S>&#a~Au?_1 :M~d?/',oсGrM_ 2|W޶`W)Ӎ݁.֣3=0_wϭriuծwoa ie쏃]M8i~"6/V1R\6Amv H3UEUլ3oh 2|UasnDa!=)%7jm|Dj;9$?SPj0Q(;N{7=S;!FGi/c̠[|z2MX fLv"j(~*l2cٸR"Maf'yZ-륷[d0Uy=4&1r3kP4=LMI;{޻/ֵWN>*:uJ\n,U<|YmkGw^AE dh] x+׵_h:[Nӵb8j9"'0^j;çH)ΚU"K}\I+΀8rgkaWD|w؍WfcsI6QEA+vEr/j^)Ȯw%t6,U]h%Rꋠ[4hf ͡=-:bt + 7$OgIxs]f醷h"'+iraG#wv7-Jm_)yis`esu*{p찢 '-jB Ie:eZ(+̦D)q۠BSpIn|r +'ѵH|w|0deξ bZM/׆7}ftM.yr J7ξhGI?a=씠`_Ύ" .2Iq;F3cqS?8Tck 78X)`Gn" +ف.zMm1hՏ9]h53Fq0/0ꚈB>ќqg4c4[+w2Z'95]ƢЩ&#(+{+U7oӖ:oI@_KYZ4 #HVAE}if}p8} +Q`\ ?ڿbt,2\j9K .ABT_ V o{jH+koSEZj3iY`KU15WS1gOEpw#q^Ż^8j(B0{!}Щ,6=}2' LVPIr&T^w?kYĔI +t^| sH-g&B|r)k ^/^,5ryRAJrOz/V͐_\\I Jz(+Jwz?,;|tӑ/,46NNrI>&'|"4ݙ 'bkEW׳O7e໵Z?$޷"oHSiE6OHfr?1۳HyJk4YE +UW oE.ojwE9;zKǣj5jz0)tD[C.K hk%(dXl߭/Q+zR-=fW1ؙ =D?zx=Q}2}Y+66|/JGScQqq}YJXjQqj:u?jfࣉY\dDG#w]gg7ӈTӂ>wśP-}ktܙ;LQͿZ܇7eqY$fq6%IJ;&`KR{f8mTՔ}JN۷(sԵ3u}n*%f̻'C($%)!4E{d>\Mz8s+>'8(^fC9N>J" fܻ>Mf +wݻc龨I5r;rMDlBܷXfiM?M} 2t8[RZaȕA09SBK;f [Z6&/ͽf]eʰ9dsnv+ dv ʒo ߧ"bK dt!-rl .ҒyGN:zVBgc9qH6qvmjŕ $>CI2ʀEዡLS[isǠN)c{o+47u_6\ysa|,PUrFBOWG8' 1k*gR}4 qJcli.;Wq9\ kUdA}V8/V>HA! +d ?4Va~۳CBF+p{tm= dpȜ *u.|Ay%Uds{M˹TSvJGUBPwc;^Ε7^vR=q#q<Q&%~IT %vULӡjJ'K'u<ˑ8'v Lp13z&t1tfS|!!'ĜkPWs{+Ny=JKJ#\>[eʰF +;%jPϹۥΆe2`쐏5@)/+Cy9X(dy,a.xމ5ͺo]P3 SMƁ)P:4p_ ^⏜AQiդ4JΕҀCM`>z4 /G 5ДB*U8$ +ZUPrhQc;/[;vKQ2^/̅ #}R"nj^.NSN LE.@bxzfgIҖcB3+[u1Jj%WOtr'߫lsXYA!g0mwc8-GNp8nHDJ\z-1Lm6̺ >\MƳã"oi2LPfHI.n*/Wʪ.,"ZszS/^Ksy&⽥̝ł,nDڒJx z.4Е1kxM՗9Ӊ&cgɭ|K扆i8 Ev]澈H{, ѻB0$ Cå f_Q4D`sKN565u _n5 %1$=i2c?G>  endstream endobj 22 0 obj <>stream +HWBJ}<@H @GPBEAAALj_wIGwS۩PPOp~dw4z (~;UBAl- +~ +f"8e_0l6RorHʉxل0O,?v2ZX.WI9vBi-`*>Lh2,$g,e>Ϛ`oX!B80 ŰrD!M`Qdms(kB[3*: a/l<{0t81X !a'7w|4WLL +Z::/VS]_jS JeZ%[0_"mh4aOiMiCi"Ѯ5FGUbg4w!C%r Cxr^BW%P*,F(7] sXk+(,$#2i9sB!a} f"\+B "$,Yo][9HMJ9pɋK`VIVQ)FBAױҥQ1$̌<SO~ُ8"gXCZ,V.'-?'[ʳx|yuCU*#/`oJD=#Yy)Տj.r+kiǁ_ +Oalzr)_\_@]Ug8gRڞdz:~9i]Z,a1Bo;k NWݳp]Q/N8{y5fPu*ReTˋf,kIF_=4 F7ۼշ؝>2Qy4~8^x}6ٿIQm#_^|v Fo4;|&~B5N5U]zDl>%,΀lT}VF2#Q` +ֈZQy]K +1k3Vg #Do+P4z!){ޑN*T +_z,]\mGʰU}\C]>_+oG.~w +.؅ˢڅZqkHq.K K0/dKOIs +` y%\%c;& +%&P=- c[W?[AhCCSH%O][bELR"fUᲢM:/gh,]rxƆ;Z_>/["kOW-{`C+ʍ&Q'SY;%_JգO'sT0JVlUժ* "'gL=?͎]0Q]<v,KVuANdd]I:O,ai1j\.юC{9&OQp + 0}'O?R#Ȅ[ r}뺈2 +V;]9k'\VGkW>\(%ge,sNZ1iiyACI,5)maBTj#ʰ-rN@ + ʨ>-Iir/r - 1h$sqch;}nŷrz.u x%uݪ b-r1wòؗE<$/vM4ܢ_x +͖ܺ%WWhW1t1+n^@l4mo4'?bАT@+п0c*ĘbR۟ľΤ9lJM: +$PJ؉o RXY}G>%Y٧}%i8Gwִtᄭ]"xj1 ˵miQV 2_6`Ak 3"RQ͋By%zYIB54I `{o+2:^N(ţg)q޸ 7x*o&vkhu'Z VJuj냼KFL>Մ Kӆ c2`E+wnCm<;wPyV#,JkBD)} ^N6m1s|BtZMfr i80"~W`6K's9rWJ_Mxkd׫aGezE`2:X&rh~l}z̤8q(8ߘz]8ҏD|qděFKʬTJI&_-Aҥ\1uK<|EH؎݆y^TH]iuPƾw%Ȥ+ kڴ@ە/kSHEP $F5+~ҐJ21~q {7d+#\ A%Yxɡ`< +Zᕆؾ,F(78fz-ig J:ȥd9 FX`/p\XmV욉h3_Rڞ֮z\.IJxVg^e[+A B Q#(fQ +ݙ$/Y,5ڵ =<^&4TnDw|^|[TOeO,8>똝e/} e{ ,ꢒ͋o^^ #Sy?Ĭlq+`4;-\2ܥ:嫳Ȼiv0\@cSqW5ns;MX!7$9e89WSoi:K?m4%[ r1+ce_|>2j% prС;h{t-!Fn}IySSKD{h5ߓ`օPf5 r$qѩ}6˳`P-:d=͖I݌_v3}6P3NTJQ4Z^5mHAd,(kHoz`Z^邐{jH G)x;8aeT c +8U_ @6$%]?{S̯e^ex\~VMנ[9!$ j>lA(n:]Ilѕ+iTo1?j.+ٰ;^y0!߬衦yJj/55(QSsuZ5K P)Cn#~ȗWK F5!OQQ&X}SkϮh,F3p$c*jAd¢B%Jv}aJjSW/,uJ9%a(<|:P]O?B!9$yw wca1zwer*&7_B>^#4ȪO%RHn6)}-[ _j亼8-#,$%xFYjjk3eυx.}K +2SqwA{E\s6m{y[Fx50F;FrD1vU̪+s˯{mW:*a&G3t&1؎ujAP~ q jj¢-mPh™\JeeTtsǢBZ]vip12,!E $d&UXCﰐFֵaVV)'wUc0I@ҡL3ԔKJ{~펥#fRZzeD% 8!As(.qZD-pUHOYNC?Fڄ~WL{.('1545(Cڶ^+\ܹ+ + c?≐}$uN<2b _&7ӂ>)pc;5WKP-8&ا$+k;Nܭ5JD0e1drg*5y4a=-Z4UL +x#.Ȍ.Kf(?AWPAB蝬M%k^Âvr)`]q{+R/º$}@`+8mfÝ*T Vv§DrJVQocDWbzLB u ‡]QJWCC!PBU)| kr܍!0vbCb_?P Y+Nu1Ĥ=Uk N06$Fd/+u*?=A3i r{żD屩?^Pzl{ 72 woȦ=O1L5@= !;Ӊ r铬;N;8>-lI-ٹ8Ce˳-*K\/8uLac!8cD*2bmr,\[f@ 3 eՖkx1V~('Hu[Ĕf,XXpJXgc7JPˈ1 +<{81P!".;"/4>{+Da!Ⰼ a\Ti8T`,Px8AY$؁O3r# kv߱H8DG(zXy?qۛFú$|jB6{~hOWk6SրJg^'[7[ܖ97+d_cRkF{ʮ4hC6 W|.EREΣ}|f$_ $-X$OWZL."H0E:BT5JiOٖwi|Y->?W+T|qdew>C$G{$(QDiV3=ߌJXWhWl$X<汰iSȷktQB;He2O#ۭ)AaZHש ]c}.ʈaRXQEΥbUQF[49o˒?T SCTKk(w+.d+TYsՎj6TR7E65p ;s5 >b\c2H,j%|lmazC>#4mz$>h-v/m_K-z)';1O 'g2!,DP&8x"UPqH;- !>LԨ.q3+xַE\) j->Zoa7ƹr@K0^X_zf0=cXCi&B"V|Y)prĂ,5#M[RIDk"FBP]z{|nЫުdc&uf}'-:-cx)؛2 \V}g̋++T⵨Y;tO2{ܲaK@^c_sփ +E|Uf]q +ʥmԲ@2j5f@]#TziQ*ı,B᥌׀9YoQm=>#z!Ѧ7~jF>ySmsxZV^f%޽Ah@nBJ A`vF& C)\,B\B 3 @dYir&K ~r@+)0v,BPO>KX)EVH˗Z3틐~ -^3_qgdADwOL 7 p"ocXQ`mZ3N\p. c9&P/@=s$@ ^ 8|oc?!]#">}G؏! |o!3>tKbw2^<9 #k¿Z#]$4里vX|dЯ|wO3SFAjuOu*)'WL/^Z㖒t|\W 5C 5el}1YnD Ey\A,%ܺ@SXi2UPV0MxFK9 qc=WXAةh!O7zo\mjb;3WW4s3;2V>`[Piw@El56&ʸ!A>h-v/m_Kԓb'uigZ uc֋g;ӓ+ m [nH\fȉc"pdTvFs<6lSBsE5%Ԥ`1Eu90hd4aU$co/Z6=IG,N&.Vxcrg *y*qv3a^2v{лȑQwQHTkZW9,yyBo +|+rDsUqHƥpUPXn`a\N[ܯ+s*{[/`zX2țXd+S.''e+*%d2':|N`~FMO3)r2il +=M[stco+l8tK]t"ľyr݃?+'y"椙s'8=x# _6Λ}\HEHƥ}RΨ^bőr!rYwf՜zqV\}A$e^B.6ފYMwh҆DbsR'|w N9rrpch[P;U( +"fax, |2aZ#bwD3¹ ꍸri5,]"#sc`+_ˈrT:\QC CB\ Kε_!w"o+ ]?s.G ]<%⧔G) \mycעqyDF08h(c [miuBMuᐩ p;erQ:v3B/cE +CabCc<xwOp`kMdYkyE3xs9M1X[ixH o+LP*V͋UƋ!sSpŦ)L$L,7I (eP +&!ƿM'l@d\=o L%.'~ +5У)P`I@o"bJv#ra]czEFv%3en㫪n'62/s@2k& g(c= į O.^1&\sJA$ǮWZU$_VK:,'b 35,5p)ƾt1,?gӟO0$ >[ OnÐ9#]]c3}P8(m⿊vd~vH~J_:T6a 5p +]y`:cj/˸BhG2/bx1>ջHbM*?BLɩA*.1͖B>:"aAtH8)YvA(#hJ)*d֙`H>>tl>CH\K4k'{x$VsiG~Ao&}2plNuDzJVժge~[z Dd iw$АfAa 7howy)/|@ i}S5,[ߠ +x hH(bSMn =vXPh(!\{BhJa$w[v ?l[tLQ8ϙĘbxv9nQ]Ďڳ}Rqp2Zڔ3O#hN5Ǐ>i|ێk7W6z_mTF_f;,'kaB˥hڝ2K|Oo|z 9WP/M +T +OIh/J6sli4Wq`/5kˇ=^t13"E(l"@ĺ&?n`BI1vc5ZͅY&Nu|1(RJV+͋))ϧO5fՑx}X#Ѥ&J푰Dn xT}$?h^'W3%<˾wgj/FFswIl}Ii}cIjA1t&tn8gvG(+@ϺH}rfK4'&ʩ %W1N.+XTpRjXl`9:>'wO9o'%)6`;f\r_%c^4ш'.|Pc1CW]Yfgyr)+(|jwcdcc7mATT~urD9h6v|swD)4DAzR +b a !pvBB(Ի&QN}:xѦFÛ4#?BMA7æ2*ȡڌ㥒Ϯa')d(\1z0h5ސ; kA.Dnq_m3· Mm.8¢qLI]ö WD-!e 蓁=|ΪG~d^c FmCJp&:5MƟ0%fT +n)PTJZC9ơ@WPGyr]jfp*+] WbIaW&sQ)J: +w^3/s,NA %|GQiB ̓`IF!QۧwF07w= endstream endobj 23 0 obj <>stream +HW[nF]0`aF@U-=R2lR`w+c!8ל*H Ůuo}S/n>4|Fѣ06j4?r5ơ/wrfJ9(ne;{i*MVq㯻zw;9jW]ׯ'Cw|ڌpvqv֜/w.]VQɞQSGTzl?In8m|WJ MH /MD]1SƤjfV̈́a1M:f C7˽w 1.UNY<{Fٱ_zq ʰ8̏W OqX?[`Y=|}X$5akL+REVhESl?=;Kf9kӍ֘z:g!{<t u> uk'c1Mlgu{s]rli+.h߾aD/v|ms$Nu?@/n8otu_y?oFUc(^@8? +KKʕ{^|6|ygb(Ӣ=s?atrO3Sj՜bZ2m?H ~ +vklY?sh(4q#סlߵumO߶|ѵ^L#q՞vY2,XJWidɳN"7D2E$U "TQL3$^,0~RMW$C$IDD%1IFܕ+ Yj(gR*|+a\df)oSxWjf5~%%%Ռi% >D{cEImMfFrm!e*caf_%Wn܊{IxREQ3 RqУ wl8Nǯ( * ˹R^H{%Hԏ| +ꖷMN,O̧,N>O?OϷy tdAùQUo',,o_8#x| ߑ>w}xN?ǏL7MF9i&ri?>'b/|~(bعD'g ;x^+A9o z(<=]>tALG5yxxX3/**ԁ2Nd"$vTltE']"f˘5 OT\ + +Ӂ41*EDMx"´8\A!>RL"qϴg!60uT׍ȝ +W  +3jk + +X—С>Da"Uпu`=̠[dP\toIGiB;L 0^LE`! 0c qv'H`.#C"섦0bxw(W +1/T w]K$ i a wCC=oL!&}i,gf>Y J3˦!+-pmU q*Gnd:6gXzΏFNCPDua`uy嚪5G./FZau{F +X"u]a]NC(62EC8@}+Tp;țvدj1~yuد؋umsDa#f11YڞhScXWHHH(,0Ug%%E@B%Rb%rUU +欁¥QEDTDTJn*҆g=h( (U(p"q*r=}FktuvwxyT=*_bV8te+ ۶ &ڥ#f]eTmuT},h$dlښBsȭ;f;M;I[4r|! =[ Ӡ5fP +!ٵB \'*LKU0HC+t +;+]\֓;Sn;ao2ltPʐfu3<7eE6/!J>۷.g +nWKLk[J!#e?ی)5DȨ3Œԃ隸"6yTmdk:-iuSyP.c\S~ +8phF9̡dLjv!t(G1QEJ((*J֨hʶpI4hfnT̵XQ˲_{y\<('a*v}X}#!uJl3ԧY] +rep $UǕG.ү r%9j_mEYUtaMuhWhR!3A8G:r\5We:JrUzm fwy > -DAń"mB4 V ii5l7p 5\Ip T(ik+Z\7”=LJ= hA)^U\e{-6@-V<є %t]nLhAKt}Ffffˌ˚0vůvU4MAMa7EBFřqm")Vd^aq{f_}џU| m-!̼>3C5-W%R&`0Ν-KlY{/Wjņk[ +*4Mlڦk/5暓mdFPĪP7}۾> bIerPAa +I1K}JiH# +WCS! ةEYDY%b8*< +pE YxUt%uSckG]ZS4Rőwg9t!޳f%g1}w_\#?'q9<:~9 RYq,8BX&SECƈdё=z2H" 9);S$vPKEz!ACDMK:;#@Y0bAF$IK53FB<%mFp]f2#Lalj +T4 Fy=ˏǬ[fWףOZDE&Gx:f#ų%-D]<9gL_2 JoSq`x{g

%qxqm.Sd~ixz~G=н}i:ӯyzzӻ|dW(>ʝ7("۲DChm8K4_krڭD6*tU'~nIk]zIIHr]VUMVEV=8k"{[)ELRi&L,fb(*e$v3kRԐS['OCEG9`Sb**U`: +k[K1 + +:0EL3!Y!hW5C5[օٛ({T +3߮ )@;q-2)Y(_@s$@h( +J$p-28lb ذKtXhk"d +٠ٖeC6[2{Z|sݚV5gzNA txN&WUKމsխ\ + !q(JqdW-َbR{$VIJOBґjXj{fo^a,cvc@ $Ƶ3,SH 1͕,"P&2!jT n h:<X7@UX(`zR$0bR~39=V! P K\agnȈH&ajFyT(4zF?[xEDlI V`sKSYNaK's*w^fX9 ~jlS<)|FS%lf Icٖ-'Ezq B8K#٘d#wC|:xiEjx܈Y># :luՉ6]gޙW_ܿfMe pp(a<C{PtG.NFDR&)"\b[ȦN{c&m \䔒ʋH+#W5=[B.aW"`°7R9L`6h'heN <$rDB͆/PhRin9  Ֆj=2ϡV1O:+Jl>\k'Y=9=j3 7Pc-;;zK9 /5wף1fHVk$9잙B+pXs%wYjQ>m-7|"Q e2 &

p ]W!#"cl-f@ +uʎp}TYee/tL풠.R땜:ϒ\qF{</0BI +Fpg-Lj3 tL-72NCYQZ/}u8lCc bIa շS)/ҧTm[{նcmE`^@7Jk"MA10lט&ΤA>_&)Qs#hPk>I$ju<YD(k\1(ޥ?L']v0JE=:vFe͵5WE_SdN!1EBIq8LR%!lI'> P)},>c.>o`F!xˮy'i x$nyÄr #qD`(-JGi)sm-> &ufJ)妔Rvڦbٓ7)HVijITK\yҫŠ9-;C4Gy}g,ﲴw|ѕ`xqT܆K\l~lKpq?J/jH w-d6 \LTXf)'@c+|l ?׎Fk1.7 +z EԽM]C?xY őAN. -=\hYX&] ˒̂8*q3X5Dwj+Yg kcuXWGS4b񒞽,dh$]D~9+oAW=eS'.]vj/0afK3\IJ݌>b 0$9 a"6?."=Bں>b#.:^9)O"t#wӽ;G ivpCJ>%9~Ɉlwvv) jc#1XCn7IJe.EqK[悂x Y9N.:MkPקPe:E'9_W8Za#/G[^`z^ƒTa])/IoWk//gǩen(7C MU PqͩTXJuO5?j*L]Z-yk=WB4F3%>\qŘxܭ*im~j'f9pnx7o}uwt^ޥCw^!L/?%#aڂ+,ʠ#̌:Џ6^"@|m$@}g" +U4e[yKCcĘSHhtfGnDSlM6#DL !XڃDhh̡,A݂ۡ٠egp Ҧcj]O:^r QVAKlg];r ,C3VR7& +DЈT8#e*OTN1YK韶-( +&q-Œj\ ? "UAt75K֕+}uVTp:r uL9mv, bG}ۡ!6 ;ӂqqsѦʹG+<+LO.Wc$ u[ضXY3l4>C{#Dg}e m4AʃEOW5F܁MU,Af1(Q0 C6]vhohㆎnSY7jLN9sT:sk;eCv\=C@막*8Wк_7XC+" +g[,Yб:傲Xb) +e5zq3$2G($/( =e(|~s?1:t\`sڜ73s_uYܭ:9(Y OV\pj|Le=3Q$h-x60ƈ)` sB 5CӠg u۠Aq=Dw1hw.Av_Є*e5xS;>Uhy *wEv +A 1>pWA!.*(+4yL N9NBiFW㎯XUdco[^ZZ?-6ܨae +`:S>V  ܃ZaPr(up} -ppFXhB| nruP65\0X,߳2Fإ]B Ӷ.+eӗ[cݗooo^Q +g|~߿1BxEm ӨR4Vʺ:h-Jơb8#z]ߪe򕯤t4gT|My>;}{?ܾ}sO'\wo|[|~Wf|y{M7X?~W/€_fӧ7I)UzΖpTU6Ԅi +4qF +>@ +Q*zg8\H +A;ʊ03i*s4NqRZ4vN>x,`ş:U"$M/"[; G,% fKU%z GT +Gt#JQU1R~.+pjGxh%#Mç:,"υu/e+QD2q'5,`H8(d=ϩyG6 &y9qgw ^ԫ8(OUD#roLxnЇ=3ҌU9v+A@ѓt4"ʉ`C7w62Yx/Q۝kc M*B_0PHB@)$P$2V7:oBí+IT"Qb+ 9 0j`B&*x!L4f*fX!5sSCbw( +mYO8o^a;L5[{n+Zk'?WJ,2SL"U~cЎCݧ"g mb%IEh:|% lQZ1L"(-8+JZF5RzZ7 =鬶b + L'J +';ׯo/SIl(;´#k 켅2)ZwdL)x{+gL!/X%K/&wcҊ`jF_rcX#?{~(!}iޢ}V ]c|iKjO?wӧ#럄Pc#voo¿~O{7}](@[(nC@9 Ê{[7솾&'ݞ151(mrkl4/Fd|E˶6'[-gjG $g Т(PQ GpS35=_vw` >=71[$UpFciOy 03+e ]/0VPiih%mLرėiFlv*G,m% +"|yirsi4 sIm%쾍V-+AdܡZ]v ,1G܍/z)(+"6I u.L[M:p&A5K#e}~I\ P)˹Q +]m=oҀdJ-?v,U?br+P(8 FC.i'1V(p +YU.6݋Hߵ]|׿ArBr]~9tQb2:ȧ=i~侄e~~ErI 0@hD-Ri#n!IAEᘌpPЃJТU{PV"5M + 2.xHDhg{*51 /U߄;>4)]q~#ᒕ؆ZKe+^1̪E]~BE,bln peiqRVt.u2d]} -f>rNwQAEh}Ȍ#I<DQC%r=dPlù [6wV.:vQ6k]7{ENSp l´,hѰc⺽xSwtjTk}I\r~G~zYHluwU=j`1GV4&%@h_!|͍IcEbz2,zǓc|ܶQdYeUUEiz1e1x:-$㘫SUì*kAR-|7B$ۮ +VOnkַ +޸&aƽ +nkn ('^xwH==|~1Au4Q9|XB+Bͯ{X81H< =kYH|x9.qW>AyF5=Mdv2} ,ȜqF"nb]GBKX,RzW(Bbm"  +jDgSXF!K5aPCCi1]cPORRbT +n))bBkJ DJ8)IF(;ȨfGl./`F ߛg+ nThghהNSEB15"l"i% Ke,Ay :D뎋鹽~# r`!.:XcmxHA(Q͞q "&6MѺu7lr(a(GЭcbC8?D9/4reչ&VCGQQ֊ΎVt_mA%#Jg]\uNs=NpЙ[0%8QdDD`{-XJa3ߎʂ +]4Ggud0.^}[ ek(ע$SeJs+̙<%?+ﶮ?v I/ }2 Qy;D옍mX+?t4\6kTf\8U_pz2rk!JJc}F`"o1]LFynyHbYۈZsH+ +/Znzg(BU!'IYO]^>ÙVWΆs)i"YՆN'Př2m}y2Peݸj +n8*}M%6)m0":0u\tp~R fFw5I,)e + +/iX$0EZ (u,m @MDG^))J" 8C8^mDvj p:49@Q6;t\IƗ: RL)E#iXXv'P[ hį(׉ 6藇@2`yS[R2:v h͢o[{){CIAV }ۏo?_xC?޿:_[ʠ@ȓZL@חo/>07x/?V;={uuWo{?]_ǏY?O>>ӳ>AY){Aן3wgO4F5F ~Д..\$aRU}  +o*eѭj&}(Ѣ>Hγ^ל7c'@k] HiUA8 +l|#Ϭϔ:CԣY9?g.(GɹTjhZ{% K1<}ObfΑ*#QhN2r=ޢ0h?9@ͫآ۴k+CuB+9oo_ ֊phcHj J:s >kĵ8>ɻ_S|P0!fU>jb=Q ]1T?5L3IJ!*ɔᑙI_ʰ[wIBP{pX .t\ҁ^1ݬA^k|}E3N#U]`^43Bz$' 5/F<ZUOO + vM)CY +XҪX6٫&_yEjV'V9 [dPEkzT-9ے0ŭJ+d?CXz\h+h̴{z\ZY3|r hZWezOl8'ŏGFT qE x:튻Y 5%M #h%8@Jgs4fPB}xoԨV* 1b^^kuZBFG6TEKB- DV=dM86bMfa[+w[ k)XMmiZͿgse}9d/˪aEWC+xU/W9g`&4r_d^O/PX7 <`|Y f]Ca KPԡRn hA3Th6D^u!wU;Eh K)s&G(s|( `)WVi!-;| O5j`Ir%,&R@0J0t)К)$>v3=-N')4!ER#̸䀭v<6z\(gfpid9@-g>|me%729X,QZ#4jT +"<'OEHPRX| WTOЬbCϟ |Ϛ W\%HTm2HweQ8;\ RprJPLpB\l%+)Fyi,Ԉ>_uC)^Qt^Cȩޡќqf"LZam*PN|HhY8VڃyVk/+Vb+6+Uឳg>fϜs:`N;h#zy~{ Ow߿"M *w4RK +y<<i.2d5Gox2U:3%5rD0gL_xDdn䋆FfrmXSbSi2A +I9i(%Lr0|Hlp$N ?_:!ePbdž`PF͉rDegT\H#ve'V +b=m]#N١ !D]&]B{ RlrgUHƐ`*R k +7V4A `Ŧݺg6DN'?{?"RbwݿWN?&rcbѭDil |u4G'|;w;=?b0us A0C~"ؠ28!FqXM@-Ƃ+Dd.bZ`!GY@e<ۺT'<X0"߼N;oP𞏴,LIPHSn4FwIbLW]FLnR7c(ad"ĕ;@K%I L%} ]8i+@m2_])/mY*rEBK.xk ltG_9](ʵ%@\xX˗=ԵA}GVt 0Q C6k`~} /\IG,KIFW>v TT30Uvg^A2,¢[ng8g'RD3ߙ!,agp1g)"q#1RZ?rvrsɗbL%î|qw|[qȃ|.DE2OH&SMƥ)cMU9|@pHzkTN|gy}_W0˭g#% H1 +*%" [1!I~/Má c"Ffr(rޖēMH? +:s`YEiV u?amئ[MDS +e=1&HW// bXG|$o0e82) @0J_RBD\e7 + P{aG]㩤!]$JAki k 8oMVWj738o`rɧҨܵevÀO@! endstream endobj 24 0 obj <>stream +Hl96DW=0qʃƌXP@{}1O<衺.k.¸Xw\ݭzYw ŮbbAxt{aYl~25,他rKh{_v.%Ku[=ޡdYh1b#(ǜG<ϵydrwk==!{ +a#݁Dy&`ΓZ=qg_[!Q]E/mwհ{䒴\o, W,Um-]ئ͖ywS,mP\X+w +F~Q|eP0ʘVj"/ (U{3g-6qHe@b"h`DzKD}U)(Z:@HZ[)+~MnLc{7=sht݄;?"2Q;@cjDtE5au/CͧFr)?4U¢ŷ.PT*Fm3r[_YdڈU ~ gl)+1@4 |}e!)=xD9e +I;b"'{4!绌]^EJU|'BoQ Y +l@D٫ZV5k6^/Qʝh{}J3V'=LXdXKߏ3$ȡ;T OG> p'k5W]7tM8vK|iKf( pnV`bh JZ9u͈yRa`p3.F3r>CU=yD{4]V3hJ%D$)E4Od&#،48Ҝ9{S3[(i}$F + /6Xʔ^2;iq~Ȥo̖=#{?}!㈔DwiQ#bd#RQgzUDq:O%6 {X +p8RzTǚ&Y4h!uJx,j|Kl9׽ߥ0f372E>6ݽ~Z'ߓa~ dže1R8@?jP|i +ؿY1^?rה# +K}_x' +ER|.ed425&CLI&ny#yy\8ysT He +,ͪA_X# nZd1;lJt5IEL$[0YAe((OqtBbӶZѩw>s037* ohDM+ J[=S$oES-W/l;_̜wˉ|a~LX-h2&[P &s +Gn8s+_qzϩiXt`!O_@fqIO:Gx)ITv,$*[( p2'i}4:, ]?I׮egM ZHjmv'^ipY7|"I1G 82B#F5e)CЊR0*WƜc9|lGζ 4r {`ddά4T {R(m yCG׊6ִі7&MJ9 ܐDBDLcbebӑ]c7_'HmN̦+=eil 7OEc~xN8Gg7^e% K-pIB!2qG"EMn8GplEw[,bPGfʯ|Ư`cF04+vÏ'9m^ DߣG^Cnǣ{. g׶,۴?$6Em$6RPZJJ,ʣ1 [ tg:Ԥ8{;qKi궓nr~kpjTtYԀg5{zV=ݶ5f!)~1~g3L~png,giӹ\xMe8wI粀:s7Q[f\;% D$9Bn9>$ fپ,iY*5#lk[tfbc9S7xc[snFsQ.i(uAokTz>wW)s#7FMB\BW*AZRH)v&CRB4+ǺAk(~V +_ŴK ޑ",GȌMs&hYyVOlpY?F~AsRm>B2g.S>ԗYtB@P&C.1D7bJɤj[FD[J$096Qu]̤(G]b4/nm\6UDf&sK?uiG\d,A"WEѝn_:k7*r޴RCxs[v̒O +{[)fM;[Ptҝ߾^I-aCtG5,^G3sG[8hS~^^yi옰:k|1d}}-֨c߾m FN0>Ö)s(è1BU':ūk1ulY4&#Dhdk  =!5Jw BD3Am6\Bn[lshjB֦5o Au~/%q1>exZ&(n5̩Ec%̕I=fK"G}uS$C cջ{xzjgPUD̏$-묧z#N"'"Tt:{~^W?/wo޼]~'ZV~_%(-%do~yyWz7?߶znWay7o^o0뇟y?wßuqwop}k/,Ͼ -M}_^jY=_-|eemu֒ϸSH(PUQXChFHFǤ s54aݮbv@ŦÓc!u6M}뱗1lM-Xna6ه\]vx %Z̕ugڪ $fS`z4n vp_U jYB?m_{ *>4ZH4lޛn֍c$- UTC 1 duXNgL=86{ xHPEOsC T!TeXO-,9谉vE].b&4sfZi;&|P-bΘ˲G bFۭ'$ZNkEg9#l6A8͟X=ss@zFc~FlVYdg u6P sˋ˻Wzxտ߼[qI?P,NX*R'`/<)k#i W Lɉ6pқuU/ +]DƛP$iRB%yqy2LvH" zFT]ۓ֟d_E1:O& dRa>Y !#zI) RdxEaK[S\}$UTJt?}>/JD`:e_:n^y5/gA>_^| +nyvywW۪Wȯ@>&:~ tTWGc+Qy@I\#A@TGNE*4Fhƕ s446 {P0 y#IRWmd2Ʋ<^TAY$( gބrHkɤ35T)]O+գB8 cʰ;msAмHLQҌb +݃1=I]#o`^fNm/<B兎l T +!ftR7TF9r.m}3۲A~ @eOw4Y"Rs nc*a4\7 ī1`1 \WМÐ#pX7[dY]x{6DenlWڃR:GnB&vBAc8bS 4X4u x!T$ik϶%{M$^"Y!+S7~v*}/t IE`'!^YM;.PX'Oek$=R93d:zH¾ba{zr羭{\+P[OUi}/9#s795}7c 'lgPaj+^;*0kT8Sl3z Uvuѿ=$xlS +<S&M(3wҨ'>x.낻+} W zu4eXPhIF(t5b19YhY3S].m +PzGw10H?8s1hL<F_iX.0lP/o9ؑRZ".˸b|JuVՈPbA8B5fP@5Tƛ_O' T%s-Q@騳~<2'(XvSҊFEڀ zb#'UwL. T,;WMB$ kEBxdMiBfy bɛiR(ީ5YinMwҕp1|WCY )O@ +ici&H¡jb62&*oW+廐Ⅽs_E{-QW0x@K!hfBS-2 U%VfňT77 c Yz={xh]twM C3]}ƛLuB'zEPZ%R?͗^e>;<Mn5CzV#}ME}pzGi1, 7MPNahp.XخJV1#(ro|f]?KZ1`E,nqȓ2Ɠ/̦@&z/vX]BNB{6߇W#y4»|bLht˩PaӃpNQNz(تpĽh/Jɺ`6KuXẻ=(ndtY$e/#$ŝзj5c[:egyv9C$5o b*t^A!6tW3f"UU+MJqEXQVUu,dc݁h Bt"YhO +vٵBYע/06D7Pkg>IBT R_\J [ +`qa94^@$^Y ݇)G<'PsN1Az dWI6Q)va ,H`&* OF.`_U:sу(&=Lz(x? jmRݾ rcA j$RPԌfP1z/2rmJFNBMEkuQׂ"7u!ZcɔrF F*0@^@c-zPl Pc"}[_mB#t !; W0i^PjC%NE(BD / # CKUwr!6$>!ĹjCĺ&Ն]e_j^a@m#ka +!g2p K@úqDsGZ-\`4$)o0U"(+A (jh=ҷ!A=!n/wTK;dAP; s* 7E.ґf5& Y[ۑi)0Lw–"Kc"K[ЈRA1i鮀Vl jF2MPsk PHD(D!cq2vy 9. TIcQN1HGhҐ)SM, ܔ.ʥȕY| qxC;J0Ǡ[7} 88K1SjB<ɏbMQrɋIJGnbV) r^ 19ŭ.ԏA\?V]9̱ꊇGE +A<OYJCHKq&:px[(?E!fO*PNō[m*$2=Mp]xU){u\4ѻVV DMͶ3rio]&4ql<ӈ%𲝃$N4kp!m3aGYF {[(䤰Zpx +*"wc^6!M:s pŽ$SiDuICz\VnDEhJFmL~*Fh42J3ϙiÝI/Jrr_z J(Wu>r^Ry%znPN'}?{Ͽ>ߏWӻO?N ~kD@H Oo͏z_>}?~o?>^~ǧ7oߟ;w/_Ϸ???~| "ߒ~uTQat;~ i3 aEAp|kWթsw ْ:ϵ׺y+x/|g[|g!u㨞ZP4/CL5E,A E&IQ,*Q!Dj} ԵANQ˨c6{zxRӃ#J8&O+Ŷzf_dca>dф9;rs/^N>|gAu [2#ݗ:zۥ٩]*T9x"[noǾj~B۰k>ƽπ N $.5v`̓m̴&F%F8$y t=LEWX++beMLjaV0,va⊊:FXK)|Ur!͋M2K~څvM';"+}vۘ ,=UH (1] Ɍ[Frru׊A}]U/ۢ|<,3$0(:|<  V+ p*e†#蔢iGIwPΤDazd<ɪĭ(d\^AEF}LtY1\cإຣVҧ}Owyhiejw׮P^pF&+CunN3VMl#εp3[q*qLh1BZ\'rTP18i8o9;o*A^ܪt#JGWVb/ .qS2H=dۃ\TބqUq2DD:z7CaSdgʄ"LL {[d +@85i~"áe1&M*KM +NfTEVʰ=D=uZ fD0MD/|ЕIOnrsCd.p!zۡ +?Gh-bNRa>JzVʏm(Mxn_\E-[_{QG4?"{K+~YzҖo&@|?~|}o_&50.{('2*ɍxx+5CV2QexJH#6ycf`j}'r'3i W8|IY*GM/4; xOny2 +|Ű=ej "%k}`6X`X.nw TV*56 .Jc_a74M"_. ЪNY^a+2Xc/"yx6RWڷV681j-! {ryTϜsu< +kON_I|^{G3~|"&\05 @iꀨA6ynQG@@O#060kane6<&;ܞƛg>ذ)S=36O + ;Levs ; X uTMVߠNruC?:OoCޒs{?BywU:NzyRC5F';$A`9"P|M 1l e:Ln!&[ryWAL;:s}}ՐF]!)!$U!Jqa-v8D`Ih-4a!VuFD37 7"s JJ[L=&]̀ZQxЋ1Tmt.?hK!JP T*1 H?S1՝GtȤ'gJRFĹLÄ8ଉ %]d`9iV2 !h')! Q2(υNϢ[Tr!#awqZ&4quuAEjY,4EM4)HNjrmJXh"ZH,fyC`떕 TJ=/$Is"W5fU%X4GL0uצ~SJ1?J'P+[cZR"0fbzBj}*9Q"1*aڥR&z~-d%@ ɩ N!4Kz7; =EVЪY:|Y=5_"z/TȧZ4KJd {PNZo*/)F-z#JXEԬH#GbpKW}Ji5{H,E5LD9$Vc[b]Әl5G}J5XmK"tA]PbPr_ jRH,Ԗw\2?|VX%R=- ?8o-$Z'#Ũ:-N[` xrOrZX<[` h_[ +RC`i.VN5eEB$K[e[o-`1NY + #Ra[b ؚ{x4VjKc޺X6(w34\ihdЋ5VjziTPm[@@w5-gXӜoe8Y%k +5ѧ}}0A9/ SmI$(ŽڱyZ&wOSWX [A邃Ԫ9tSu@).H.mKM?2DY! jӢ^|K +:P_W8KKZ'H2YOdHӒ˿wX!KX12\~}ĪҟĒs{PCΡΡ0}4B^1"!7BRr9)V)1oBSN +eO Mn S M7O Mrw%C3>^[14e +t#&:kJU;L1ֆ+&"*WֆIܼ2ɡǝCS'Z94Iod^94ɻrtrhB=|i#_D4Y*(RT:%O;+u0cW‚* h;eY4I +d5>S>oC 8r&źcpki}iaH5A cdt-,}Plf:kY~Xea.$p5TU4¦@Q̢dE El܂Ai]]sƕfm_,pu/ǖ!͆R 3bD|˰x470I 2n5L-haE=wG ɯmsY%TͪI_̴ _0[sƩf)cg]3,n뜑:2}(pӥJ҇yRrgz?W[5nZ\Vt}_䬧+jhޜϓ+lbWJИȢJ ~*@h<} ŅRRbneNܫԼRÐ>^TO}Y0m C9 ]Pp:r/ P+C\]0-eSg.Y{YbmYRhslgR)yxRڀz8hL%Ӂrċ_sy IQ|@ Tɦœ.B"}ӔL"ٹ,%Ub(l]\KQfYƯ.d&e`1#r!,rt -nq{dљnE*{NNKj WPgK=9Ejі8Saៗȴȴ}(Ȍas$iBg;Bu+J_*ʚJqŇ^tK;iء.-W2k s$I:*zO[W +$;#f#4`Ѕ~M`:Y6hKA0 ۩I2T+'BtEba2.Q+Q0΋TfOUdxK&󻞓k>4o$/TU80nbtmFGLi7mMN1מ?Y&zp"IB x>)6zisz\@'480hh/喯8ǀ$-T&D+0 I,S\^٤l&V/2]$`B0o2ΛT8iͮҟkdB)DM;SnEkHeSs2F.4GӁ +' Uk"-*XD19٣2SᖸDs[@5jE b "ڠ?_]B[KP_d"&t$x3lCq2L>IZg?q~?,n+g=߿| ߌn-~5ol*'_~ |c?X'ն@7P UeR(hl;Gz'!4jnyESI^+DәsWŸښo` J*cޣh)x yZ+yit6ᄊz/bpj^AANFeu41z?]UROA EӼ"{ 43 y :| f[zԈw-jњ]l3p5ޟȋhV{ԣق9 =mhn_A1`9> /GK(P'M 0fii2_ϓ- /%E؍d,*@A'4)IF:c@c# /Ff[ePx"X!6-+Duҙz[ua?a)?d6J 1$C#f@,d|܈)4QX㭵y_`vLp|Hfp) Y)K;eHNkK&1U3SE.q=XdTN B9G E[{!RkKNe$)[1pzp H}͐1]iвWhMv'?ew]I:R]B<v(]s{-GKQ״Uk$#g/n[_]yy3` .q]@eh% VXYg1{8}PF>x]Tw-|aK4N>.%y+"4 =Qc!.|8 +?T Fт0\ Dؼ#ƵZ=hvBFV+ xZtB!7|wvg]. +5N*ކ1MB|(a",jO.au殉k J*XZl3+Kt2ngb^ \#?~!LcYu,x:"0lQO~te8,BP}i/@&ŽE?q"`c֒neeVJ8гuno0LOQ_wJ("rY$v$p7̀Nø/\Q"_RhwX) +G<ʭk&45F{0L=]Ea&nVeyxs85*sUXI֋^KhڪtrMrFfkv/BiT}`FK̀Vpnڣ:5a+^^C9N ^e0MqvE6+ݭ9Hgtڃs'mj/{1 +G<{̿@̝`+EmAa}j%:1xfJ+";!zG)GDQ5.l:5 tj.y a.LC)c 2ϰj(+%E孴'=4?L bDm* LJqhfLFO6)H$l+3u[BлhX m_VR!ګ%c?'"GU-0K!OR"*ѹrs8Bq\菧-"<]gI\W+K.Xc_$&dV9NB\e޶bv݈aoQͿ3v5J;gVLw¿@-k*xAވI'!C]wT`NӼ佼,CBe_(V +);/HL`+K팆gE^CUWϕi özyA/31H6d_m\mC(q'!3KQc$LDSKT(:+$fT4ZHZ(qYra\CYYFMvo‘z{bHi2ol^:ap,-!T8C{h#Z\yD +Z DZo+m)..+u7-O3dyyçOӿwao^~:w-?߾Gdּ*Ӑʓ44ZQ yd!!*z>L*^0,^AҚuГi%1/ >?[Om񒎮KqI.?`TĬԛ[N k[ H\D-@ߴ'] H<@7j0zQ +a?%bKϬ5j +< %-f$sTT+̚ wzЯnсS,z4Tc@ 8\@c;I!|'kQŖ|, rɸ :9aa[AO$ϲ7dd׮ &RHdӐ4qU rttI=+*4ƾ +;ӜZ8nkHX3Ɔ;C^C]GCһkgA軽%-Pi2Nc.^`vlk+" m0㳀Q+zJlf-88@Ũ娚= 2ʿٽҌG/{6HN?%I5:KB4d5,PMT) K$eey A2L!4_`S<!QBp+ U8<9KoI:¬6(J~BZdޜᭅg*qX07Spr!XVJWIu ]`Jz tV]O{sU P_I/ßvE<㑣7HȐUXu9k*uߩȏ%־*̒r*ґr#2V6~,(F+AJCŽ{u=D U ;,!3-%1r9kܫmBPI8W|͵K85-q|+ 7}Ulu/z¥1{gcg r"_nm1[Ϩd☁=]x5zgz=*.w(*fxaM + +&W8ɯMfU*w$ sR"+Z+L`R37 ^LK6x>ayk.NY?:~-kV^P_R&;ҎtaP::^1퇏% 6e-t 7-;|٫[xxB^BW&VzDilJ_D;\UZ$dn5j[QБ24y. +Ώ2,,QnCƣZ%,kic*/,X%=5*Y+1َ,b]ݣ2]644 #~l c +@5.ޭ(rT}m9.uY2TH4o|kKR677 (o+Y9W __Ll \eSJzH92amȒ<~]E,#|ACm" HH@ŠGBĢZ+5®مy Oos |INBp\)@ӣybrVܓz{`Z~zg$pNRF lCX^]O+4j_meW59k 3q-la8ņ7K bnRVd3FsކT{9&c'պ ?ǤirVu)C= 7[~RE7 ijC1q;~CFh<,05֢wogk1,u!l5NMۨk'V:g;~,ʊ`$sرaOFW#ʇ7[HQ8L;tY +2i*SU`69kP[?/&[p^[B3(6N^ɖ}lٚhk<6$J?a"B0Xԗt8I[q5{KE#C,Yo_*W6@mUdԇ_XP<$JڻfE1[y߀ ,ϸJ} 豯qAO}0c5arih+;:٭ұX+ο W[Q endstream endobj 25 0 obj <>stream +Hˎ ЛR=Yid "Yq"y$+=0"gFJSde_w/-rN8_]/ru5])n$W2\Xv{ڒO<܋i- 7-9_[&U7yᦸKFCffV]IK'Mwue^յU^QTKB9 S 4T 6DWzi\t>[ޫJG\1.&Y }j\lD#rIjWԧ$D]kRp)'䈓]> x,-$IDK* Bnb#"L%n"\镧bt=t\fpx.f d_>Eиº[ +iHq%j>TZL$>ȷ( ~bnHq7щOU[r>>l%5qP^g\Py@@IDo-TG)\I PchA5zzW7kBsYE dyIl޽yfwH"1gbZϔ웷Ax{{=7x|{o__[^_w>wS)~__lOn/i_wkέALiAJEoXFr\pPG=,Mb0PZ 륦I:`]vr}`_ z aZۋC=-$uWu:)&b#':իc~0딒&P} b'yI餑7_ܐ3|O= >%+ĚJ8 + V/ڣϋZ}N6C^!5cfRˮ?Ax#00,Bay1:SJ/c9t(vsi 7M?fy3xFI.Nr7[p;XG\it +;MZr&hEw)wɆ%aȍp워U hx9\Ge Sʀ)v2Xv53¼ _M͌L10&[z2o2rUeT:I̝zͬn>iV@gkN0,pGUܟo g9FaCs[ơ3 +#,*`v[ͪ +4_,/FsX) 걗|JRA"RHw'tFnr2$EMNUcr[Z83>]d;̯JY戆"X`[*5Qe?)U{ wyN(~dRPe2Uc%o;&^a/683!<`'LQk9{j>й2mnK'݃W.ŞQ-NO+;mΈ;Cr$_m=)8.?j~M!m?H'g; g7w_qL> +"=s5#<31J̣?))(쇐Ui՗X8x"+kSoP&5Ghc 'Q T\y +h 0M ZHdи3i +Auh Pad(fTwV".246[e<"Ҩyv'6HV 9&>! 40O& +SP.}RO)U32s՛D[F4tOoDO?BXfFI\v[;M9#(\h 8^J-ZS~Zt;[ju]:8!f[l%k?{O9UMbeٞ sSoK*c]LPTnj9mP~~my!!FV8.Zd%vmh]D.JS( [{v*EL# Ŋ}Tm=6<%sхj俔ێ]GE p^rBj4Ivǖ?os{NbHLWծZ9ʗ߄uKZ2_MzɇO{^:?mph8=deԺ#܂x= R*#I RqK*>|_qV<jl^r}ȭXu˸}-G?FcD?y//D=fdՓ?ﯮo~{w{E ?|˫O}G=>ڧw7W~gAH4]{>?=_z_oo_~/4^O goV@D#U?_;yOw}]wDՓ?aJZuۗO'7/f뛅˧߾|W_߿z{O6L4s𠼻.!}x-_oN1xol.4NO.FO.Oq 7?9?|kua뽿GIg +4n d + +Nc +2 |$F +@&횲a1K,&¨wRfHR,X|'d5f8R#ƾo&dMhvZ0lDѳάH)>Nf;䢙2tQj&9&=  +j@M1jFMwIl Pt@7 PB{꺔LR!5uj[jMTk\oWA,`v>Ih +FBMoUWĶFА4SDXw} sJ'0{UfO{BS{fg1425f$14ah"F:V7EF%3Glt2fK!dp>WohP@:} `: v 2|jqi!ŋujd7.YmGddG9BOT!{/٩gy1b5DΦ`RdrzmF +d˼x5j(bH.tIVK.BrbZf5%힆 +_53kq"rTm^Nh Fscة} 6_e7xXhذǚ74b1OѓI4o[CTڹ!$C?P|ζ":4mIΑ8THgLfՠw" UƘ&rmC;9X"9hlSc;SlK}ҷW?X !j͹wH*e!fט3n\f9|tqEAnv81Sh(R1N@ +.'TXUQ +erqrA5;j0y37v!.Ib0eh5R$g(Ny;brUV"AZLpȋdjU&d ʵzm1֡bM6=%HY E4I+3UB fمԗAJoM`ݻ]j5BLUQ}`@] 4;T`e%!X5+` ٷU)*`/jʺlYvn +XJ7;T-}j#F)(Zb&-pJI qE5Q$OƼ rF%gYU>?-2Pl&7 0w۶Q0H[[ѺnS6YA3B*Ɏ,G2ohzIJhegq5-73Nc=1F#de|[h@g}f]d=w7¯]*)Fů#o)CĢ& V S裔% FjM蘉:_qlz#{?uHZhq 1-G28xk,na"Jcr<<. Hm& E>ne[ c3s%'>u^|P?]q|<؎IRZLL5(K H &]~6K5bDE!U0޵jؽmLH X^&Y+w7H͡#EС$(9P!I {ũ{Eĉfȸ Pjgb~1[^ >[8NݟnjW>t2y 7*KbfV C =@;͘&g `T + +EMv %bEKJjVDG_ J4cy5F;`CWe#sLY[9g:1"r?6Am<~)Y՘gjY3UMg>eCv.@[? ]j2ߊyܡ Qٲ1SrH?hq +q$ >ѸEؗ ,n[ 1H`9WM6vUS`Z򂪺&Q xxϥ?AHH>)+ _cޅn43){DW$nF~ "去"ЬNUkc)r7θJ6c{l\=3/T5U}6chmRqJȮEl!|iԗ- ebSv{:]9g=o<]SMTKg ~%աt O)iC?P,'.-m \vlo 7T+s)zl>WM7w#Vg s\ba du3=8^ sKBXn Q"n {7*oeCө=nM +tH\~V=q POJ=e0ӄ .m74'i]GN9[f']ǙxP리#C[aZx%}bհ4Yؿ?x ǿf3I'y@w%cdFzEv %ųշWjF1a-WBN{f5R d0Г>{&%1W" x4eE=4eEJK[JmՕL)@uN:sK:c$&~*.S(VY7;]TYFUӈ- 0U7VӫԎxetkLD⿹C{nGƗ*bZ@PP IYUR1,Y8|ѪQ{D[+lCBp%/F`pJj<3lS@dbZLI&h+Q2H3f&n >@Z;scu盺%uH"ITɩ/(('5Iy0wxl䘩GN{:JZw$T2mTE`رn (z85 +HڌS_%)<+mIE;T}Ħ3لVv]3A@э5VlX=لhJ BHmzbN4fy!QSKiiJlx3ƴe _ +UhX!'ዿ|>?R'ŧ|x_ݟ}ǟ37=$鶗ԪyS I{jG݇v6ro\は8vL6`'q͇ހ@qӠ)Šҋ@qvgcǛ}/U&m+tXJ's\qE4 Ԗ1fR&!Z̬ a&sHQ#-߸wR)+rJŢ#儥M7_ԧ{ Hbf.($mFo#܍M9¿a>5?%DӌV \O5Vɋo +h{.I>'q*rv6ḈS:٬ڻW\k׸MpÏb&%bx;͈eFp wQ7\!OL+-loBf 28вwP=N"nAJ7zLx"*. WPΉF!nl9;ѽ!;r(srԟj>sp~#1H9&;R]OHd]u&8(037<-4Y; G#jf)l*CY&5cO_SM̔λevͫnuo|R3W:ټWbXPO ;q ?=/nx@L30 14"D-0 Yɒ4W *'ٙQbOV3ܤC)R0AMUkR3?esQDѿ-m9 V@H,Yȶj#sND=nTw5=i# +Bn >vNAgo=Վ:,pw˳k$-ݟd 徐vbjfI(u2z|:)g45;{~/Yk Z:ۼ#-f{X89JMH@,v״k+wg #Mj#'4>ۖ^ +miQwؾ,}tل8MYe)$}P Yo[*ۿ&QRbqm6ș42p>{q T/@GJ &ˎ]&Ho5|4L=ÖՄqKF [/bVKaOa^X']?v9 +!g4rkEI:*zߚڰ +.t]VxK$n9g,&2 ~[wZE+;-3cP:y^`t f4H3ڔkI,H[)"| +$%jRh6>hü} +N/hЖ jKo߁AյcX5/WVDf? #b.{EpcT3hHP {QOxjqQ^>iD +pڼǧv rc5Cl+Nd?l`ѣ,uzӕaٶHi@$Q蛘9V"Y9SmŸ \zx1n\Ԃ@GQ[WUz6L+J!,B@O+~&^^uVҠr͕;اMJ$Q_EKҶVz&:3SmftD,,qIF.f/~|CڻeƼAh{[XD| +".mM/~7}eQ83P3\8?R!i^n(q*J=L#Beg51+e׃ȸ"|Nd?;rאȆ<ěNnEsEdo) N1:s50͋'VЯun/[M!'qxujUqjZ/-s)}iNU^y-Mf CQH8;"Pt~K[O*z i i5_3Dk ;33Jd މ<%5RC5]TӸ 2b>!a|6k$X\4C]IWTZf7ҥnwCL|Xѫfp @ƅO:Dݩ6Cj=|:}Wƻ%a8/@#jq'F +qiz،ͼwy(S\-kR>tC46nc]^A=%g{/?g2m_ }y9;t9Cռ*ۢMmhKz")2†:Vz8n7ϐ(R[gx[J.3⩂ +xSjdEx.;C""SBBa(*;IPwːɕN#|Ç~?P˷Oo~o~ޱ_];s9{4:^%&n~>h̃;zXgG6rkpr+0fhql +Q@ E +\2'JdJ%Mm}N`aL]qۢ|oz|M*E.&QǴ>U8{93CSy :Hh7`´ƬLmjP#!Utԥ a<ʒMsiY4.K|G;'@^`9MKt~$Xrc^c8Pʥu@|5דNH/Riat`zaĬYd3 rpNdjJ{'2 +^B+ڠ+v m=8çhҿO/ϳɑ$9Y)p&eyG@f튬cRa Dpc˷/h㲟s[uƷ"( O< *K{٦vȳƐyÃP/[8WkdpK)u*Wk}U*k'2\}t!"(}zJpȜ'S%P4y2~M)BCA 9sFy:)y*v;~oG#ӳcHP|QGq.Bb$_J}3Wiimdt/"H܆;Vg%)_* =*&dWlf-. b|HԫLY3.U_leŸ^T ZYa۳X#gIaȧ|)C$*NfoYfFRrqP{palEdFϵ(|eB.r;5ieH,pF%|Cڐ+}rF䈅T + $;ٔyԿo7%/ pCHt]"X2Uv=2Uڄr)"gBFBAlG\8ն"oT-)jZ% 7S:Fu&bP:)!f4Y+C0420@ǔ.nD4spc\YZOnՎbwDRUʀ|%L +P|b6բ g>`xt]\ʘoDf6&hb)("H%zBFDꌺ'"Ϲ=1Kb>ڽ! +Uc2 C08ȉ} ֲ^^!.&YZt\TkMe.rt/޸)Pz(< : eP>M([c]@Dg+߉lV4_B@$B|:3QXܨ &C;lF QO[o-3/Ag}X,œq9V x O 2(^GBMDT}z4\ kXYXc\IhɭDŽT@.Briۉ*C V?Iqʮ4^$9hIIMwPF+E:Op~7[ɱ_dP^8v!BjXPWG 5CZ/Jۅ`i~L⣨h)ON 見$&RmEUS1PQ6#z,y:f˙1FtB +q&9f 7Jةj\d\)yV +&TImvhG$ʋG\mWa/ڮ6/F:FȘq{"31:Z~~!U:]R8@)"EAuΞ +[|v8ϝc^  qBUI$o/AA훃8R >VP}x.Hw~drqn j5_v;<*74J Q>Հv.A ūdmD0hj>[^Oк;gJMSIudbʦөq(l(U*˛&6̖feBkUQ/ (\[/'/Tγ-o-'k`FEą*C&hmɮC : c|7wXvpF;Q(䪥k& AFFے%0"TbWFJKK;9^C|†|1s)E2ޗܝ,'橤0@4?H!7LZ)gd[n +ި'Yn=[8N|x{dFP5}%o\5{b%2E\նg4BX9xN[X\=j353$glYAգP`)\ QK7԰]]ruRN ush,:@4'_M{?P4eE"bkwidd)|+VgO(zy-f=RE?;jY+yg7!S0'`8",ƙF@jH]<ϯdr;Y?"\J36e\ZA8+v#ȄZipKtE$H:ILI EZTIt*,JR~3b77D e/i1 SsFh {Hj<]68H 2]`U6Ykz{B'DyTSGc؏M@y? E%'zs}%Ǵ8y&83r1SUa g"\żCGS/i沀ygRUU() +QfG9 P%V)JGַ yc͋z=sFqƴh9Q<;fdeZSN,BOlavgx"J'#Yqd?jȨ5Tafڐ;]at)9=Xi61>3^~|o Qgzyy_^y~xxؗ_3w~?-(;}s./^^,^^yxr㗏wO?2?ۇ/n~?<>|lsW;g?Ïx}|>ZA$fG6(_ӀJ + b0jDBAgSCOCCb|LؚjFg[ɑThPIGJΰ4|cґth85)`zI6e+qNd󢼔G ّ q7 +7⚰Pxo8*R`!\C7ЏWemy=tEyB| +0PL(%B/H+)ϡ +=4 +UN_^B!a19:8&LL nDv41NϬk ق-hh:- Xi ZD1-y=g/r48@uS^+cucD# +X4N +%Gyao:^ I{ gZh )zf̎|fi͔ԝgE25g-CE݀BdM8W\(IWgL& qQap+Q93sDd%^f'|S/!QLu+'WnUƺ XF4(i!ddɟ3\C:!)V9 + 44?I?2)lZħT2BFT1',TN65v!4~r+&HebM.[kNyY7*K܄7Į>3I] wT^M;]L {s/CٟX %1;lRr&`A^(Z +5[ִJ +[8 P +`j@J6$ZKzUЄfEjD(/%gqVq6zFu[8^8pJu|KFn1,ٗ%VHuPD&U͍$#W36M"F6-9&N%;<aŠfX)Ht|ZSqg{kXɽ6lS^X; 8T=$9[ dMo(-_p^8^-㣒X*5=z0DZeؐul!1M+l&PqE1SRWh>.%0 VpՌL\ҩ6]aWKp <.IMa)i\a4:JjrD psawP0-ED0 R]E,[_ Qlctڰ6BP 4}dHsv8I7V\|kV՞ +& + +(ydigEQ$g9JMChv*1 ]\I杜tEBcW77u3G[` ĉr}3"UD `1()"B*,S_4ח6XDz!ְ[&`&RD%g)FaF:hl&7 0w{ڨJ;`ͭFn@n/R̤KV)+%9?Q-砑cˆyquMuoFQ54Hg]dex̲JPQ +dXܧp!$ FSlk̛6]{#7~*Ya 0΁qMDM41)wF\,5XVS)M T<;1kr]Q&'@߿%{L޺v\eKyU?&waLv@Ɓfiy`1ytz4"UִEh ^&vY;MM @LI=b9ZL͋'6tηnL!}XmGqgܩ^g0`PHw;NGj3IYj܇#vB4nZ((kJJ2vMhoNt(ztUbF.f07n\cpqonmY\Sz.|}N%qYLTqn IRNisP-dU#hlUt2Yi]E陪{f3Y\0~ {_T@v2|5wAO^k@kF9a_8fqJAE.uJ<$zbW&X9rȀGz]42 e@AZSAT Ϥ8(2Efm "去"8Y@U'}7K)9M܌;>*٨"ز{l\=}|~_퟿}LJ3tۋ+x^<6TA4/+v}x+`W  8CLonI}OxP,P ,yosD)r]qV8CHsy7M2t@w. +5IYlY=wh @ůP#Niદ"gZ`פ3SrGdB}U7_, Lz'R3W蘄WD mXzԨ])^vZk!nliZSi)\wAwR)+rJŢ#儥Ma*5#]*}pҷolω~bH+IbB}=P! nx>)g=$S 8qQ{L +5ワDƛU{ݾmn~3u+ ^GH& ^5E]lP?գH =Sv8h; Vpa z0=i=g&< ld(EżsmmN?Et/!sȅs>(SҤ}(~a!9; Ɏ,<j!z:DvՙpJ.EqB*Ba.17G()X3FDP֪I(u_60xMYf ݼV'{Zh]tma8+(P.:Ǽ~L5;1\dWl,oJ3~*TN3kz-mU&JiS̀MKq]Oߠ8J3B3x-nbf'S:6RvԜL_c߬ɮeGE m8Fn@H0,,d[*羪9uw̓'2b7!. #`CO2HDȅO E2': @0@ +`U$`관{u^H+)#V ,֕`)|IʋHmy#D +Ԓ<"`X,vt;G)Lk"9&†M]|W>vn#F9~ZUMqVm+퇩9`}t/kĪ=Vc⢹ȡPgGMb=w.IF#*ض0-~v'(\Ȗh:mʛHST]1-M ec1^#mue@-Rs&t2\jBNm1 +YN4n KDwX?GOW.\]~C/'R}K=h4a(.cM-_"[ rJ:0]4`uθ4+r/kmFrYW}eb:f4'n }3:2qw4OaK3j lr'G GrF kJM,- vT #]x>j|nH}Y:1- wZ?flZDBlM>b{C&^_; no#M: TL Kb)Rb ,k` s "("PީI,CTip4wwqbLqެ22,۵@e}Ey21)m1iUCcxX{UV{Yaʞ'`VKaO,UC3sM +/:3^ZCG9*h1a܈ㄛ[[(ť~Q +`{ANjC,xhH WF3:xgh t \Z(]B;?Z9} -s+9{g ;iQʷW@Le// Xx#W#Hԭ3F +Z+;Sk1=ƢF8*\, +vHQ!؏(-"`ެB8 @x GEZ<ܵ},qL_6k Q+gV/PC#@$QXAJb֋⹰ Qٺ[ZwSKpR̊U|JLV Q%Չ-P +`ڬZ-P%p aQĒN@Ҙ獷shpJYփiE]jβ, w^Ҙ'3Sme ]r3'ޙWE&f2v5>ipK0z_^6&urj4+C3c9'4,*$m;_8BF.C9z< +R` ->V{-=lu{>(\OYif1!t4H͢K?C,a3N1RZ@A|J_(f8]QOŠ\e b^#.dUm-U۬MC0]IT)Z4Kp_W+ko³D7Q.CnI'aiە֭cenX xW]뭑xg)Q0 O +p@nZ\,zqg'DnČ)R̯6Z:]C3 O+օy4NBb;c%4nŅ,]WAS{sc%D+iGp CkW̆K`8>gଆ)es$ᶈV;p3>@16QHF^gY<[7=V6EIrׅy9;t9CF +JNnP ;Er'bVJJC#XZ V>V8HL*.Kr +>cMTUcQ;T#5E2J5=td)ݹò :ŬT]!_'| ?dP)˷Ï?o~鯿|g|=OW7_o1uO=#jYY2Z*ps?_Kх|6K@# +Xav|I/wlɅ$X'CnwU8ي!'W39F%g5Vݗ!0#T=õ^4<ƛt[Z ,_9{=aZZh|;%5b2˪˺wqn|p 2uT9y|-XTMnߤ_h7a^XE"K]fgl焫O~c΢ DHA11s[uQzHN|Ve,mѫa}@UKf2-!@ [!VSb-DLa 4j +p2FcX%&[P$Nq<ϓjls;\f0#XpalN.^r md^J]̘>rL̟,lV@s#AMm0(wI`R鎜) Y%T`orH{Vi[$3շ-sxWW$1Ŏ]sӬ+,x?F1M4>D RЂKZ +\ehtElΧ $X%']tvӬM韘'.Pn5dd1v?n?&]ktЦ:,2Td'&!{SS ;X*%Y)Xݛ 'H>Z[aÝ! Ϧ%J/[:wӒ9ggtХw>{H_.KF2OgBW]Ć02TR1M!FCr +#|pf7_'y2o" +nmaۀuiMf<ha۳ v7RЅvn9SU KdwYrމH.5kF9^f os/>+z)!fC?vۡ7XYZT-dY6!|b.7j*DXHqOo %Φ[E?xRFB,B<- +#W-FdtxFPPj|PqCuUZ!*ѳ<7餵mW3I%P gV Ŕ”AByy$Ҹ$/̖tq+"VjO#3#5Fǔ/nH4*+ﱮ,-+zG}6%J+S>H@ +l V5Oa:|Y!-7TG` S:6=!dl$JAsl鉬2 >ʌdA?{?ǯ%, )+Q%WF=-5Ym{%{p]5Zy\Zt\k",p[ø+e]e +=y;PӄR0"Ҍ=Xwx~U͵P5I_w=j4V.ZVF% lxG$6vB1-.F WʺPD|CmXt $]{,*S/()~!= 2t(>[GBM1q/AMA9X}J$0ڥ;?2~847 jce Ff*52Dn(9Rpm wƉ2'* +ġ=pdGv +3dǪĩ?TR/oweBkUQتUƪK N Ϊ+`5b>5~{6Ж~=tfΎ8w@vSn(. "%jDUR&W(@w2dn>aHFğ1հՀ1ŋH֩WByrJ k{;,./I{)|ȓ9H ?0O2bJ|sO),xl 1d_Lr %S`s2%-cW_86T%}nWzvF~We>d<kC#|ȩ3z6 Q1Az "T *'+JRA(8{$Tjmuݙݝ7| Gq52VHMIK>7XՋ>! SLJ-!|>4%Td70(֪ Eq=1Ε rk0/LHѲH<2DU Z1*ag0p[uT)P֣\h5XR ^Kq_b!mӲR˪ortFj +`Ss4@T#V"$Ih$Rp hU3:ը/VaÌ1ZAy&Er,ZIkRH<ѷLX%7,ۄ\Zfvna{iJTN͗}w|Za)ߩ{~_quowςKOzsyZKG3-mC{2[%;SƐq]l֮KƣItk낤XPJZ[ev+]pG$3 AEPU٣2fM͘Hs @F$`M*$KsٔtrN $8EA*B:(!,KZԃB`C endstream endobj 26 0 obj <>stream +HT9$9DOwH0\slRAFR'sOn}OOy~rOk||V`=;篿 8kjg/HZ2jzz-ǴkF-?#-=y̕ڧ6R&%==uܟ~ 09A(ɥTgSg=i .,j0g6],?{e@՜Uf֮VY#zx+e֧S{;ĥqcE.8OSkM> Hxdr_0iyNz}O}&w TR FQ桳SR?@]@MTR.a7*]o9An/F!̈zJ 'ģʦ+p.*#a5Wa]S:׮[g鎟_{;U٠'v|שz/?2tIsߊ4>S=Vw9,F!ey^$tչO]l6$y08] j.”CiC%%2>X^2zB=>)Ojp +kVAl³ ܬ]c\/+P;*}'טK+BQmʹXޜ M* @t[Hun%U>d-/]9 1py`*Lt;-B yTGpX&Fifyˤw%MjP" zOu-:b& +1l2 8CT#ڃ6(J*pO۪݄'5(bTL="d W2W)b 3滆JK8B͚iQ@nu kXWi s\M$*_6-EŸ`x2u5+9ǪjE:똳vn q><*%qא2v1ƶ w@P|W*F1b +Oe]yR!TcJbӷQB9(WlHmR_ GwKiWiS7uMQ5" +]ȴfjʽkuĢծY]E{_.ŻZuWA PE kp2[BmoSɱ0!URhۤ]XPP rV% dQDžb YfL .KtC߉pFd ڬ)ѳ~9%GZU&gr@Խ /|TsI]+PE!*(õC dq_elPQ%q/+>Y3eE9+?)C[ŇPa戢˂mm ˥!)iV͋ fT(^[\_<ƍ*R-& s kw/i 7RS3sXĵ.nji*[Ԙo t/Ҭ!! Fd P8a0ݣ瘟uN9cʌlBBVk(SEFE*o4Ŕ" rDROU$C--ML;).:,W@tvA&{]G ++lq]P[EcwXiI{5՗B~8}1BSM19T%5djOX nd-_)B;YbTޡߏѕFJwQbuR74_1 +G@ G)ZJQEN`㬛.kb굪*KxIwxP[2pX?Ti_R>4>7&AZRo*_Ghg^? wZ!):$R̜/$Pzxwٔ4~L* +p1AFIz;=ڴczP=f Qyk[L!|׌~+<%qjv*[^9}Zg$mI!'Zv.4|{UPZx +%'uV]Iѝ/عz]ˎ8eosS?f]UdqJiKNlމzJ7icV!SlqYj}H?/DPfQ qA,{I[ +FɍXl4&I&{A@Ӣ$$ \i`Lk&DԼ:xI': +:~E `G얛W'X4vr'}÷ ²TJI(;WK=̃h[x!W3\c%ZF&\qQ4iJeթLQ}Lz\&r 9+JQ0YnXQ+ݜR =_U+>"HZhFJ:s|隫q&lZ"/ +K B9"'cdILAjk r\h*Yh rD.0ϟɿ~ֿ'V,˹;jDv'A%Ө,tH6Byw˷ţ6mȿ=(+-*[j ȘA( NЏ)gKD3'thg:POg 3 {x8`;kƆ[JI]DcǣGB摡;?^1B Sd4`jb s> Z v҈65\)qzE> Dx~wKr*v;R{B+"_]띦&U(E>be1`~dUR6XѢ݅6g1GYCNVIԋ$s^0BWg84q׸H "dLB8tڛg`5l׸܇J=@ ⩺-MN.Z!r+T?7œBh#rc|ںN(nKTW^~2[.winHvk֦$cBT??G>hKd;HŪqO Av>xd 2HX8iqlEHč9d7 ?S} "Qry8æ_ВtůhN4B1 +Ow>>/,S#|>o~>_>ғ3Ñ~=CfbNL[kgj%oF ܽ`Ąar ]fr-0b3%pr9GpHؤBGGNѠ{V'e4=4B}@ :݁R; + ƫV3{;78[cӶfV͝}R \6Qb4*t9 2I[EL zЏSnfJǃhyT/)X%Gm]%ilX88T,+RAT޲I)ЍuMb[0/O-=[Zm^I޼%qjG,A&%Nu8D^1n/#_'m$)s$hvn Aָ]nyRt/VvRB%z\}48SVyyIdq)k=qh/+Hp7orq5Q4lZ!} S4k +fɎkӿg?RhE)' +.VNy#˯FS`]:~wEG;j^z+ywD g;t׌0.2R~mjVu]FPQQ˴rkTN1o%~\3''?߫y/g].U)<,RbB03xRC;[lT}›'@鬗y:MI +=ʑ.g,fDp>ArQs^ Jc_:ި;WPG=,r[>&FD +'·KH G.Ggń%B fbEb':<&j7Qj `z%iZb0Ț)7,8>P0&GkH#-odٟɑF TJDWӓ rC1v*R_7睉ΘOaG]BY:<CxLk]'MV%6Ƶ5b$%i3_zGJp4oLj#ZTȺ6 ͂Dm=ۡ l<&Oj',vh3YM`v貲ﱳF"k]T(T%]5i)zzM|??'}ܔ!j1*K4rL̓m0i̤CaiGkPH )sO,9;1B^VR/+GE2K5~Jҕ"R *(=s?AItuWߺ:k I!:Us)RPھD߮bmCZ=YR <tSU4"Ǘ`k;[y OqILS-jV}UlzSUoW{:)R&ƚ.v@ɮjA6M*v9~ڃ׭ƇapR 6VX^ǿTvoF'f+v[%ʌ bmD^.ԈEj@Hb s!~ iM h5jž7B2ڵlxI}g,5 $U7 +pӈ=?^k< cv۽,RoėjJbtyOr'iQņQ'Z.V,^ ,hԩ%;4W⫐RNצ8#5^F,ڷED.7R o1h|3pZ 1茨jϴKv&5t J#"^)h/g͈ݲ~$hiݱMhi>QPBFċRya+cD_ˆ( a jV@Fb& *ĊY M9m~v;2%UNzEU1#:TFUUеpSg&ymo8Ru?f^p*}̈́rӍ-pAc<(*'0]d G(}= k++庖}L y$SM&XI@l*#x{( ]-oxhK1EF ۉx`aCRi*V810_ɾ#bAlAC!7P_6;t-+y{ WFUfBNȲjqgd#X! -D}b plsݮh˃aEdi'} t!gqߠv-HGtyA2΄yz!,Q'h([ACgWH1}oeo,k$x]^3 mjGgmakkԦ-vőR۴ yu*ɖ:h<&FTp|FZ6_ 8Lr*b1pz~3N I*~_!1Ѐy + v$%3UZhĬa9zl'yw_y~~|g>$C^}~~/x~o~#~\GOWz|L#++B_zGQH x#au. +;V:%b.kZ[`3& Pd!? &V9 Mc'`;$c|ia XaR<P7㚙 +V=eYz:fB.50]~o̭y,"a. ,\\dT* +,їZNn瘊!ZmU^1}lPb^v9('dmuK6kT{ pk97h.ԩw{9@*~2+6ip`Tg>Uv뻯S|k*I2T 8 |&W.TqE x(^U/(9)T^.fa~}K!{Z-?00.S2"p㮡u]rDPA )Y'H:vQUc0Xh@&=xa3Nq>nJ'5F80"P滕A̧RjTXG0}|ǬH-@B8:$P^ ׸q Xeޫ*N׵\!!#I <@ 5b +Ų4 kg%P +X Ea[%J?;30_g f%~ sm6]㐍t~1sX!*NsT@{a]3a NgE[P!\uyc4z^ qT=I3A)mFx@SP5me짉Qʉ J5< tvI/+Wi-\09H:v!%I٢Q OJLNjGVԕ^ѳ6 _ 9sK~K聞;c+DBNi1YeF`ͨ)VHл3]pl|s3FpE'ò 7A?HoXu|? j<)wzUAG%05pBRAawѾv[L9Ψrr> J^vi٤ (gIE<_?qb8$OԱjPM-R"Ypc΍.b)Y9Tf[یNm99 +@)*x j!Qm$HX`F*Uї(Y]H=펦Z,%=v ` NadM!ڐ1w +Pȶ5]#e6U\Ni=m b9غRSDɜCI*׸NKv2# !$EBxQ2֥Qb;H_g}; { D2"o.>ԉJ/հpBOzn5Dmdfbo ™R|F/PR%(nGu;sh*F#X yJsW]J+iS7H`cao9"O=B v2U: JOCq<8=FL@/*-)G$AzlX]2nJ҃ HJ*k6%eZPpZhI[J,pin#1r%-V|ͅz y#Qթc54I 2)E?x7@RM k] h#EZIjh%%oPI2*{8/ǙGXS; c{j fuf%RKFFJuiDd%ԅem/JMBR 3Ge|lk+2 lm/ߞE7._J+bN>]:6HZsn9Xܛ5H!,rI;+#yNph)%wXuɧCe(4Pv[1@ jN.MխfTwǞ@\$kPd6N)48 RsfIo=ϴu7<,^n۴eU/ԛ2Fc/xx ˳\N E"YVtrMiku_]0|G,3AWvN.8inɴUb*"8~cdu}3V ތVhl}` "L樰fka(zWfz !Qy&1/*7m+0K + ЕXmN`c;I +)^Hy +OGX]@p_Q +>[:v+R0V> @k34DRzú]Izd E30pDjp9h"[{.7lM ۻ*hU\Unt.9ɤvnu4ȻIlXŴ괪M^z˜vQ`]Ro+)LA',ڃ."1ǷW;"%1RDzk>Y*xQP Or7O +LHW'⮆Eⴵm` NLtae*kIBK)dXa.s&[3Q6Φ&5T!"0RDGňhL!q);8MP׷mڲhcuo\Ϭq]A,@czGbVS.HFhVQ*YV6uK0w_W~ )>ݛO_==؏neÿK7]2C|K oŽfgOO˿z~~/?~LzO?釗=íu>?3/DY7YԻo?n +#MRH'O8VI-:ni.V3]QYkxF') +ɦC!_Z"Lןu( !&ւ)*\kKy`t SגD +?YWw&YIj^.1R#I&P&֤/PnZQ@B1qͤcf!#jsElAŨk5l!M#Jpa-軜ߞ9%1rSjI|VG;_AcX?D|oؑ4q.pvU&vTgBLFs@І 3RĜIy a ΂@?Y 1}?G;& Z| XMn]i! F%+lYw$㥒Rr\!.P +ZWlExLUF0~isW#ŽCZ0e>`6)HEucY0t+:^JǓldP,Q$0SiFBQD!41o"S)Je%voADM/?ȓ\6\;Bh `raʇ >b]Ni7YMmҢأ?#h.F0,&Ğ6V6QhQBτU(9"BCb#r6B- 廴_}]t9)PAihPyӬS-F46BZdkrT:]YP#NA"͐ES)2pI'dɏWy6k43ڔ qsP6"eNo%dYަN$zz}źe 4>f!VP=j6#8yEˑYV~婺fp:6T(}ygD#ĄQ{)Fz:h@^Vq竑=g 0]|!rӖjFEʡ#NGi$\ވ'+W|1YA<\TcYec !&͚oVX|i{w_o" +NR?3⦊+d8*|CZ ڦ>s:Fu qzœz"&мf|@4s ΃ȿ6pP#TѨσjmeQ1-/g%.|B}3M(u"Ӭo nѸT%!yq}SVԬ GӑM̵ORIz0nhBőiZgvi4#)i0ۥ7v@9aqgD._'kQa VtB_ 3xT٥Dz-o#<FD +n#J]Ap. +nq 9T-Ixz#bnuSp#rj1rH ZǻKuS'~=@x\^cr%Vy3g E-Somj9D̲.7Lߖ7 \q҈jۤAnDFȍN#l7ayfO2z.}:gȎ$-ݑ.H]4gHЧ- eM$ +l<\EɪlYG2Qpj$6PHjktRz4yN]82Yd:qjUL$X_$˭yQ@뺶PRNEnjg*ån4,lBb>s +!r: ¯zҟdbhun%xF:"yϲNa XG#v5],}HDjJ]'Ɲ1hE"剼(b`(j0h"d!6xBMAtU$F3 [# Llii7I^:]U! RhSc5:v25xD +]nd]FPRdDz3 Z9mQ"[~=ت*3"dҩi2!SF]mF[IȞ%Q +pk`փW(õj?7>Ʀh2R*AM3u[41 D1f/`)|Hl)f@ڲojúҹj4W64[q`I=|^0%ZG?"EAҀ s=%fHr81~ J焘_[ d>!jJ;0?6xh^/1V9[p7^l:U^/iIy%:"aPJaV<_D#s򔙛%C7!oRuJ-+> u&({ǵ>|66Nq<\rvBjD: 7Dh82 ^S&u:e I8AG>~@۔ m8-R"1Vw^2})UK6EC@b)(?Dd8|PX+!׫z%/S?jE>Bu~K!>B/d-E2DJY[RE; +K/ꃈDqC +.2bFST f}791-1.c2*ut.m a25H- +R9NY&nsGWN5Y!@RǃUv亐!&$ߜזL/ǞHtQոD?1Qb+Ex+"/;A 5^A8ɯ6:%ZBh`۠wjdn%R>FV9t`W +NYk )GZS-fQu{E"CϕOE{SҟmR0V+bYH_HF钏u5$IJ̷캆I8+fHZ*>뼧(?^&zQ~bS}hAP2P!$[ι7d$1wݪ:콚:('P bY+jLc-(u +H~JI%:&g9qavmSgL#pSjimDDn팧|{o 7:zB. PU&Yݭ㳞 R;XCdXn Q!1Kߦy%1ٗݎ=nM"$^9`7ΰ(MQi]]!ԍID/PuH?!BeԮqdj*=C>$ }PBaZ{yW LXndQՊV?Ƙ|H?__Wz!OHdx$EsGRT'EդvP $+!2چ(nANTqBTk/!"c 08$=JA!Mb H_OP&h+QjH3f&n DYW:Sw?Š[w) X'}R;Od QJIp:fS=:-!K _u}WtUaV"ɺk;NKyv6W '髏GE텶u额NFdˌ`&>n g1#ct#is+3&DST(9рT*|ˍ:%F(5N{NSbEnDÞB +1 _݋7o_~{A_|͖_߾yߏ/~ūW忷2_*R[/=D6:* D-~.TK Sځd$#I}τP#aÀcX#wD{my'}vڱbWMt:G%!Zk5 +T4w Eo..F*FHI͈HT ~kngdoJg׍"ME%{7bǧogL|gڒ9W +@A%9 wʸBrҖ8` +9ѫ zqf~ 2}y$VA}C~R,r|В`ƾ2R-i +cBJ%%r ?I>9Sۈ)d`vS}hG T9NbyV \OKT(! vrьW2H#]Z}N9Nth$;:ƹHBri$ܸS;Hx^w4q`GmQqL5NN w]*j1yEOBf k2Q>вw8P=./7̄Y pz% +=Z1o`X 5׆5\D-Cv|'ޜ;Aȥ&QWèɏbvy<"=䖆fv6Gw="޶ۙXp`AM7Egvl~piY)3`B`]QF1iτG.(d\aY%lޘ4(J:Q8>(^ɵfn 䭶$A,[ݼչ|J2Og+7*OjQiM]e8'G'_1]<~¡at{J + %uT:a*|\bVpXTtsE:ǾtJ2驽*@WFH?Yk@NJ5u$"ۃy˦O8Wm$N;r83넝#5HV;fϷ+21HbSZ7M :Q"9q{(O([.lfNʈ-O}NߠK- +2?=)9+*/1)}f&D'ՅI8{{U1S[4$,H5/ny*85:1kJ! \/]ɝd䡟b)2ȝZ68QwшX)|Z j'ՑFP_x`M  ~r$/JnԆ("汣I\c}ĉr*BU3S΄J-ڈ'4d*6[N +x@M[k#5_z;:gxKVmؾOYq|T߭bfnk qt닝l\UQ'9I>_ԭO9OԩI])KIp#ʪR ]ͫCNM3YҩC-3;vq8Nn/5TҮ:C2_^aLx~{#]S]ؿuyI*S;yarBr5ctY2 Em.]}LJ'}'*:Cwg;$( {R N EAԥi@ݮrhlf{N(0 *ɾ>V7ř|%?r8D_Y9ҭˁ:uC-&h}=):bv:`nV'-Ng駰:KPXH4l+4)Ǥa M,P!rG:M!q*ۉCa[J;J|2ϊxycJQ`hM53!L=k\RM72uFyav}vZ@d @Ղwt+(R6KߧVmhH'᝺`@b*jθE숇TЯ*މbȇ&@1r*U{c绒,4 )( z+b.5fPqn P)rw7 ΘA d9Na.NAs+T  :AHN:t@tg1> +}zv\T˙B0tHND}N.Wϝ~%&zPl;D_QTU1ԲUYm0BtQ:,拮 0٩~8P P.Bm"]8d~uCmp*^ս+Ҝ[uٳ n"mܼe 0 N*+OH<Dޘ}اǓ + +"wolnW8:!Sy7J"JJLc +1=JdX`"7`ߍaA^=udN$yسDNI7Z') Brnu +$>s9S5J9j wXΗM$^iSm›FՑr +^iN9OM[[`>LCj2p:ȿQ6ą4و0e:3)kb{LҪWƉlRګ<2bhnN_!C ~ٙ0rRMGtAw x3-8|ۏ~?&苿೔?~۷׏?_k_3=7_?ԈnxPҍ!gS SKKٺd*Bg|օm-y^3/yDKz8FHw; >K Q V{2'g˼|^?t3T8Yb!6 wv4fK.q[$ne?aJP6C3a@1!t( D̒<˴cm;- -: rZoO@+iJKBs>Uu b%D%mFl@Z=]d<)]}hg钔0J: o 0zFi(yXVL`Huĥ5R%߸}ڍZ +Oe5~TEݪ ljnEPxs[ Z w2FL,L s,-0?6!?87Z'5yD)q9NwP'Ј+G#B""l^3A4[$c3a tWo4r0Njz=o%|ni{Su*txhgjHѪ3 -H@D[ΙF>OECd+<ՒmilDD&KS'4bp9( +˷sGbJWbځj׹@\ uKG@ wzDOs%ZV`&ӪO!!KRD#1dI'C@Eˡ< Pڅ=aw:;=ISˁM@hmeϡU>-:JzIByX QG#qBb*޹J 4;m썌C$ O5<=Gg+T>AtrMj簺hQm"ѯd^3I_@s?OtvpQY:g}ƙOCi:Spe7}cR4¾K em$rl.Jʲ9if#{CxGKLp$Cj!B4 U +DwlDɱ3_1Py}cM+7^SGG&Ei5m/0OsL#aHu.$& D%;tš6PA')lLY/=* +2#WɌȀ ƫt!g]U;ӫ:_l!Cre6-N'NC!y':FGW0Ws@VvQ<][PLu-jMG!b6̫i*fTR TiH8"%r3:'QUTf]UJ$w+ aI?(Kp2V0W6CwLv7sH|ZPj H$C !a.DMYBlA 6.ҮsQO|e?¤ Y'd$<_J-dǒ"oe X,$"=Էڨr,86/H*"[gڕa >LOw#e+؄rهyiI1d{"Jc4+⤲#RL! 6SgΖbCS2-ER!YoC.vY@ LmIcAˠxXtHWƅf`q |\@x^qIz)[챍$Fv $Gn|׊sobwc*Gm$D0U`rUQV#\0@ $LAɑUhe!ŗ6 i_E@V,{11L @MiXn=!']hW:qN5seKw [IZ;ғV+ -40 R +1?B3s1 TfIHi;e%4wR˜;\hF-揞&B9U1 dr"=5x>9F˔SN4vPL B]̶R*BK88C|Q/_YF$h}ElxP CTL +oʞcrBm:$Dܢ$mΦQSBg=Kf +J >6eQ9ıڠQgbPv&:wf1![ ѻ!|9Uݢ5vT+l}r,b^fG%RF~PIZi,$wx'.4J9 cÃ7rJ.8xhm/yy\:P]䗩6Ԓ 5B_?-F3w=ڸ֍%9j!u1]mLOam<@qE*CDRJQW5mI9#40"D +dJ̚tkB)d:΃orOKigE5 K;T)OUfҽ+ +ϐ|YQҡp5Š5ŲwP +!4O 3٭U7oYw`bV}Dd(xwmB`f +b& +Sk@|fZ}Cw5cyob_vB UZL4iJi˰l.?*rIzD\c=d:%] #k3Q!粐yGs6ՂU46I6į/q-*A=TbcJ(kKFM/8r{h'^/o^<<zӇW>{+&R}^ۇ_^=o?_mn|ֹ?yz~qLgTj=sP!Y77 Q^pf1E)5-}ecvDԨ@gU(*v!(!m "$5UU]ƠqBLl{@&gyN)z7ИJsTຬ ( +;F{F* PϋhM!Q5M^:tIkAUM(Tf:I]\nHoލm;h%'VIr&GѾ`C4;sPh2Դ׬hc`4.H UV^`;h A%KkcBl }7n.1BdUT!5iBD Ou)$);V8R6'o7GFk"/3]&ٵ@ ݊Wþdi\)'3?Tx&̀ t:ŝ X1m"̟qV}D|_A1:"1zQփ8ԍu1d%O-m?z_²9awfΓ7h^?i?ޠsLgS6 v)3ۉo_)Ź{ jvVP}4A p˸Y rL/|0 eѕZ;{0ɡ!jzS5!gctӆLTD!WLŸE5ܧz\ETf'*GoQ;T5XDj,J,Pf>e'\{ ykJl=Im1!č[A%Њ jqYR^O!^Jd3pyQ;W0 ;)-3lVf@Dg3BEh+ƥniT'#7i`% +xiěѦ !w&<$[o=ɗz=m\ FGGA(R_{Rt6+TI8˫=g Zm-88r(Ef hTȁ񺽶 ă/6\T}++81$SR Me(8mkv_D< ~f̛ .D7J.%-n0@W$vo23qT_hu`&:2QfL,qiHu|2s=/Ux5Z+%"|(Y#3n\1RD(>}QtY7UGG-l* qqAC@W&Pֈsz27T$3FLP}_a9XzvٶV/FZo#'[dmLʯLm\>2 ws>(]mIZxT4m뙠^mf<Rn`V)7Ϧ.Cx@ߧOonš$f3bLh{٩qVUѽޅ.H[L߶7Bt"ҶBBr#Ґ3R{̡doi?s`-ډCj=G̶t]PIQ&x\ k_" SUGӮ 7GDYqD_QZP>=pU~͵VKs!rr -_$,F3g8 +dj3/J4wܶ3u{~vJS%c%}NA RXܶQ4"]̺f 4@LW X+x(똩,TƩW nMK/Tҿ`V_DTf|8v.VBkAbhWۑ @?83=Ǽ ++g[8¶.r V4hUKO-?EgȭAbEia>BĞe-| +xs82ޙhh/!;2f̘ y!+wf-}/1ԋx UG +ݰìOXTd`3Zɨ NHO8p!(X ؏-n 1NmpvΈQ8Q]Y_D2ދz,~ԜVx^d(>d0-lTќLaGVrEI|T[q&ڢ*=T~/B!ܡ;i;&VKDU5#]Q Ս&ѴY˱jr&f/㋴I(]mRT[i1吩A02AEEY6W?U([4B ۙ酇&2[՗E[LidV0R&Mf%aD̵2v< dpVBW1ӭg dTᖋj'vփW +2;pu雽;79*ph4XID`q䣽jFDuTÖEaSlgZmcUaX*];vƾ"ߟ,?HN"&"z /1|dpyjPCq=xMuB4J [v?f +U21de wMfO^/F߷̙?(s%aJ[W}Nl*f,8f4EE\>[^ar0N x)ܥ#jFa-lSE?ofnugw4WdB=@Vρtd:9ߜ&cL|E.REY+d8^͸a֠kT FTS!DR-zJ,_x`S +wcؒUGp,Ul.w8b ^ec.0wTU9tK- KΐAcA`aMngUWɰiK$]''v_$;=}RH@^ ֒V)Q2K>ը=Ix2r Hܩb+V-ЗNzغ_yv$GV*V֣,)t ijĸٗҝwpI?("ãOz9/|Gy}g}_??$I$eBZՌj4؃& -ppCt;S#>J*jԪ`,e:0/*A9zvj),hG(z(lɄd:veE+g/Xl^\E _ ܹ"=JJvULf<0ޏvU,," \􈀵G^~ϾU.Ћ\=h"P~o SbUI [ 0FZМq.4$T{,Xf$#n]@>stream +HW]ʵ \Apn + OlI*?+hPJ%I | tmo y3-ˣѸomoD猨Fܷ;fW=dw;| +iqEG29kLvV.Q#R/_=;pcK/%lcD\OV +Wc-}e1?3DdN~8r~/O?O|̾|}O?__|/_ƿgcU89~?T2wV82$J!f Oqiid l<5y&S@!Fƴ{qLl?\Oy4YYUl$NO,p쨣*HPgو\'С]8l0O[!1h/k=Wv$v3nec>+@ +IȿLMs]~ܞ<̽sM1NPh Y*!QhK+CdB(j%tDB"Zkm_'nA;׃o80:v2{z&\zv pYddt&2J3f@R$DXn(\-V?BXFwQ3<({u2p3}U`ߧOPC>~MԈ:蛇Cs@{ #G[(LUPN F8T[4Xv$4hv3SWg8#DPhEͲ8)>2`EQ+ۣ]B,gAc#h;6t&3p 61i}8m +uF]vR\ w5{D!5(S;̊LDOoKЊ 5DdJAGohx6(K*WF[A;6]#u:s}sخ\A^w1Ǎ"OE̫ FEyH;b3Y*.YcҐ0agӼCzb1{TgGfNMk:`HzGR, :7pOm5ܕ,Rli 7X>"L2vr@p#r{_"٣6Rch>tOՄ#lO7 %R8ՔXIR V=Q)q-󽮘m(bn>1Ց4Ȫ;F.m:Z (#/HB^j{!&1/?`3 =aC3 bSy;Ѭ*>Gp38VcS%R;:7xRswDSܚ;[/ȅޗc.O>\Y~ʂ4x!Ϻڃbpg;1}Pg;v+h?BEWhUkLCM M*a~OI'7V%4׹#~WxR6Nl,Nv/T/d_ gG uhIÉxoZ*~Dn +|( MGH!D;򂎡gW[W0o3%yuZH>\ d~I L";Wuz!Ivr1$!: jNȉpl:⻄0ӧIE/sef}WU> gh }+WkbrC=5TjB4w#.tY/C hÄHaz"re#dT]K/Pp`>D<;pA\s7{C@5I2Gsjt*7 xoixhZtsXdLIcLK2WQWΖvCZ%;69kdk;jir,q riW顆$| 3J$Ci04Ai~U!d j{{ݪs{=D4]:Pd`g93c`} Pߩgu5SRu [ٞTA#f`cgcXWR!} m:截E/N螨.ٕ!g{,g@zSt!e]|s'p4W!4X:Daϖnė4ʹI)dnjBzCi5@!FJ; M]™>̳"^yޘR+ A,$GkN:3B-4#DNFR iy$SVtZ$~aX;V}$S Hb7if+ͳGqݶ*މbaNLw* ⣀t8EYyq=qScu  +]V +3.U S!4 Sa~@)L@Ju{Ӷ}|zvj l#$'S7iUޜVPcgǕ$*De^/IO8 4G/43 wU5lI(jB QяWy _ʪJ|ѵ(^N2 4Cyjc41V!˶V.|\ܦʷU,us=wQa֩wWj-Fh~_qx @'Q0}6e߆*]|<)W +"Ool:mrT_io,]ZBDͰh#V5xvC)xqTz҂֘t`"ͯX1&o]{Ex֑Q+h/$rx|J2Wև̇ +7NgBT ^n! T mDD D?Z*Vuvr +`wu>1L0#DԻ)qYK S&L^;UZ]'q"\e(A +d"3aP)Y*ճpY05SpJ`P9Z#*˟>~?ORǟ>w}՗_-k?{ӿoyw9O$QҖrԳhbk%%)AErl]ʌ ^x2 Ծ + 7'T^W[ +$[f#_yDKz8FHw揝Æd߈%w>@Erhv@-$Cp83"e%ڹ;;8A\*t6IR ި-!CwLol<RH4,ɳL;ֶ;~Seaŝ-tg:g +A2|vXe}f0пxLg*F 2KTZ"2e>tˠ,!fĖIޟa3E̶5H8İQ툃& N9 R>=( %#'m US(7.ZNMW؃3p2B>;ݚF"#P6 E3L d.NxA;::!{/GD9.JhNخyfNb4a3:@'-< "PZ9H;e}͂ 1ɯnnT%JfҠ:nDVd=m2:=Bje@,Fര4d"s?)'4EJ x0úA74Xj +qbgv1}> vsӁ@$9_;#^ x֐>9-KZf\kVJ}:)tzzj-QIugGr#DtACEyB$G?qw:=7{<.*,6t*!})TU3*Sc>DY g*-K촵72RO9-'b&)O:MDj%%"qlެST[\`-2Sa#T&myMW +`Vijl3ͳ0މϨF"<((s\aF6E[r,Y4enݿr+ f,.Xd*ҹxh'v|Q_5HOoyŲ$ },6Om$ysj$fLY&>T@Y8Re=#r T5>h=Y;a `اߝ=ʼqNWF + HN2jȎ9tN/şk*=1zqOfgy(,TR i@P"'}킪{1~w@gcK __I%IbR^ Ԟ3i D7J"߽w((X@<6AC2\u{cBڽ74w' WA=PQ' lπd>g '@O7he d .󺮋dE^qfƷ[ڌgȭxS>N<=Mʒu +XmВfdXɎY{QNbBv;_$+lcѣIp +8wm ǖuA3C.EBuҨq<^[ ?u En _˥ǮFvP$((",+!#ӎ֮s 3^:{=✕B> x>(OE&?*){M;+:κ6I,]go%@ b_#2G VW0 5ۣ3Ɗ%DҾȲz}̂LC¼)Jsm?^LW&;9Qhyu/Ez(ZJ43O:‚bD/i@h7햅jb?.}^3W $/xڧzx`MU%҅ OZԗN'";rGURjWɀxt=QB79lA9Ui8`sT'lɑxM"xAY2PxMrdkXe= ?!7A;+4DÝ͉DKunW4xL}eܒaA'bk.mWo"&I :7n%$n1UOC)stR*(cO'gf| " +q:IJfe}7Ǩa [9M')B}/m1ChkjsPuw> }(269uzbw=UY%@O&|FKfI]xz!NPt!p= +R} |ŕrЀT=>xԊfbuX0 +~Q[]uyLx\3s@%lz_*_j۟j@걝\VvZi8g1w - 2h~F[#-@eo߮wP2)$q{Wb8B]\1FW\ -*ۊ縡2@Nm'Iecp +ubQ#G;QI(fK4O3S^3H%.C7x`O#2Ö^wjT;Z*é<姇C_rlcf8ClG)fGm1J#SkbPۧo$#%]W +` +} +z AF7vA1=u=S,+>tx+RZ^fYZɫĭ||0&MAVc-ɼSt$[aH1slbզ+}=I'FƮqa(5NV*n+cy@)b3/TMqd"0ZM5aPu1h`PLr{,58{fpfb{1oqû_~;";2lrI\޷&AZT܏.@P0ڽMNeLж:N+a0qmh0C! +6@N$fvFlJy?m %Ye\(4:ޢ 9 ++X*zőAml-鏄,ǒϧ/?<O|A/~O綎Onx7||~rFV/__>nD[_oC_b髧^o/o޾?~}OɢGѫ~zRmό)/|࿩'G ~c}j-lT~"H/A )H3{.lja| &=;Qb/0ߕ/. IZC +<"ڐ9EL]mT[Ur|[NE +- +ږpϪ8-- +Sj#= MK`4p]R÷ өQ4SVp %IicmeKt,kˢ%O,Uk{ +,=|  ktk47-PP륏vKi㸭ky2_g{\iGu09s} &0gSn]^z`mթ_`ډkE} R{rqS9&lT=;d| &}vEM?s㢗^˜7/ P{%K.@Cn?0H`v7whm O)+3"@A-*#$$i)$Te+:j0< 0!0 $1R4[)L&솃O3<(osVn7;=kr3g̰.OU;1]iju&g1(Fք*fv3eS8vԈ c WU'P<7Tuz])YW(l +Ōevز#Z jecQ`w$%xܻ7jiԏB\a7ce%\Y!xv()?;ҼCn5?ckn.(Af*f)NvLN8&**?t+9 T҅ZJ<rҵ2t,j +wz9=v.?L)0 vnZ0;)֊Yإ0ӤA |@}߱ou\58{TFB\YϺCuښSAUNLpy!$E%AZ}uva:FuY 2hwC.Xsg]d \2낤[O"Zm,j`;x6g,.mH<måL+cY3&jG&N[ex?ODpepSl^mrB,袴d\ȽtaOmB/>L*u_:O!0@0jIwcS5ZZ8=n"^5ȿ(hOѸF8%.2V-o{T?(ڗ%2!ZEBDfهg5m X_@&03$I3!4 q]^@?c,7n0s~)4N$S1BV5#f[[doU@jY&Z$6}I_B y2c>,5hiMo~[6Пaj#T}Pii!_4ݸQ~ب}>G/S!#JbgMA%laa \}G@EՈMYKO*K<ϨΖ@ayjD@;ռaXc\!TTUbL_8Udj @] 4XPG@R @8\sbog +8(BMm ѱem>-FpxYĜlut{\U+waOsٯ_Eav}+i H,**d3&V +YpH춥fE[cXZ eZ@Px&^ e N$m> ŭde S0`i8]e^@sյ{#nȤr%it@/*`5Jo} xkCbVƕR:+P-?:)cˊ%q[U\wVJܘzس7&e'9Zf[W Z:JvU$U=f!5Ҋ XM{ {VC'Wk qՂyh|>GIlܳdLT3_ +EٚFuz,tz\傌8]e限֝cz,{W A'/P4%۳/MݬS16deKn:"+}X % <׶GPxG4u`u;q4g ^I{z$ҿF' +"=@i:|KNJ&isIPEQ?$.BZd*|?WhT>y2NA0)FxG\dJ*&{l-Z cqIJ+l٭7FY; .s1X枋)/q*62&_I=zq%kH߸"#+sP7j()רy"vROJ;Q,pBPRͺ~)PQ=8ŻM%ƍy%Apv .;0EQU k2Sw18i#/IwDһ5Ktt )8Ph3Z[mNk q`*7B&ttEcbk +Ԃ#PRA^5gڬ-5p5hsTmx\#=p!7D1 2p[ '_âgf +VE_͐_H;tFeg&j[ +KscaRP[QZn7qU%0KT&j -֧ + 2Q,vVJ˽ /`1"Iolݫ +~^T]Ꮝd4a`/j8-r:ӎI3ORXOt`"U_euS|bܣ0:iTJ%L/cb :n{>˅ I4ŗz +a]5gzJ*4C)Cָdq|LiQmQz^Ҟ5qCUy=EZgLv,(+9ɘ7 /@9jH2{^{O +?אG +"rgD;%*\Yd2O[ksO58͛|9ŗ?T,bdή'f vYi3)p_V>ٺ\fQ\Σ]:}I߶|wȕ7@{*>so~+:ڥz@s9L᾽3YC0cq:"P"qvyoEQʫh%UTmxnꭨ0h[Z9?hhgzOFmo_ߟ뗟x뷿?+1Z +nͪ?INʠ#4QaW5`T0A-%\MVHcj$;ÒBd9,xU*krU`sFK"sX%%+3i`xDUֈzhE_DE $ve@[(SLjȉgD3Ǹނ n ozvҕӹN[[!xswWtn(ܭ-"MSI# Yw?WxiaDr>.0ő[cR$2Xy-ۃuٻ:o֌0JnƱEĸYf0 GKjJ:{ տ[EĹ Y&^' N־}C l_zЈ]>s8vyc.֣oUTȟW}w0XyZpm{oZXNJt\e6=)hÐR%z:a2 +Kr9EM>iLk"9n܂ec~`NȒE6aގރq&L"]4ݠNFSS轮psHР;f Om!P"/M5yLNDihbqH9ޯnږZ+ +n6g ԕ5ڏ,>]}k,uVԬ0=L&9(uc+pڔh$1͜$2@)7NWl^{ĪUtb*~#9#^Ur +Tpn|a+Q+48WH{&d9>LT'A Ԓǟ3LmZGWlG]&Z7J-d'NSX'G OyTxinvx1xx<&pX͋t# +g1HVQ9^NoTqR]RƷM{Z+2cs"]>tnClzbh])e4uA% &SП ƫdדH ߚ§Pz)zh-G3i8 Uv>L h~2kܠY,CR2@@,FŹmB| GOb(e#"xpO>u0f3/hn+wT#Y4'GDH] L[^y! +F}F-DVX_EVI֫i*+ +ӪdL`jsPy(dZb ]|RW9~ݯeFE݇"svTLe< GEos d/WAQAS񏸓-?7(LJINIi3ߥ Np!sT&ӕLHzv/ u}W3XyU0+ai%:+Kƣ1@:ӊtYGXuZ@=AHՙXk3!Bt'(DѨs7Fu~-9}Xl&>ލJolI7±z3R9VWC>cMLi?n${+h/evać}Zu` +ls裉̋ǟgwzjnds#\{b9'AyїoZ$fO[PzlVTQB/:fHcC҉ ! ]uޯD~WW.R6 J׷emnFV"Wί^SKjщ"m}1̻&mSN~ixMph)П ֡BNV?<\<[ȹ ΢/Uya jD +1lRb\le _"޷C; $ +jmFn( =t4X[5)M[+>DZ!iAZzeiUWLLL:JB`M ly}~݇÷?>=믿okF;o9_$/~{p?hpE}^׿eq/-Ԥ .0TPo5ꅖA@l$b̘F,>w5؂/A +ȾJ66RPۆ7i0DbbPΖ >,QːO -01f \:5Ph<˵.^zQD$\BS<& CwnLA*}RǶr.JnI{N_itmi#>ہ;9W 9eJ 5 +zL5 Vt3JeB4DO1Zyz԰2΍F쬄ċ +&31zn׏KmA([9J̔]OTgFua"C>h9&P}7 +qu-Aj>5^$A>y +w1,Px޹ ޟgюnwaGx_&}p6!%_xQ}n@%,BJ;ȶ'N! uV5钚7X6C E~ڋ~|3 6[M F0)sWzž%^Sr*>*MzΎ2gB f3K(ZKR4ϴjpb A,>+(y;$@cYP,- qd6!q +r4)Ǡ`a$d6+#csx*PtR?wϴw1 ^Q8UHfPZR@@@%r퀦"a2p~eS&W}oBEnz"56[t|b ?iQv>GM䈃ՙ_(*9,$ATz8;Pub8 nE#Ă;3E8r/2O8rVs*cx%2:0 +wU !t}YTi&uB-A]ۏJ){'$ +jsnATqn=V&qU g*-K̴7B7j& +)'iؚ㚌Š}(u[UzDdwNۨ/=5ldo|B^x]y$F E67;]*u)r}"4S=KS +Z/9ptO " MllوD sĘ"CLvrBaӬߺ4\sz@,{ eOGqI-D˭׎ +e?:43nF>DhGKGJ#K+3B'IJF#UlNJ'q+BS^ +i w9>W@PK57%m*q MUrdDKēTWo}Nr^l"uQl~ѱqv[ӕ\hvK6jn0a iTƭYDћ?}髷޾Ϸ_^Pg~n/ׯ?W헌 ׷r-~0n/>}X}?zzz˯7?yL?z^OO6|Թ?zw_?oޘqw8M6Mn`|qxT>4]!r5BDa%)-Q~@dܢ8dP:r<l0N'aHeEHY{_0Qz(&!HkAZPͽJ8rhtڴ`]-ehrSDPOhq@>JtUzsΩ }Kr ob%ӱP8𸁴9[L#syͤc͎HG[\!&9>Fu͍c$zW?;o"DI1ޗ< g3̉rNtP٧Cp+da+OXΥ) P N I1#1JD3OQB HIOh&YH +t `kBgJv8F7[֩qliJEuG^%(%?CRJ<{ uD%zbI&.K#qJ;v79t 60F@7#zpŨsFF&RUMICU!5^+ x!-h:klj5iq vLw.LyݜG=8{@海T.XQ[pYoXrl0DY<.Xv6!ZX򤮅8E#B(s[jcQ ؂3id%8kih(ir'~i +zhnXu?evY%Wfk=,Hʃ{#jB\w.ʛ-q 85s +5fz0k;TCjff= qQ& C2Noe)-Y72Y_hGKD%I Yw|Qcdy9Pw5IbL-[nx"[m,$SX gFGG`0*y&E' h@F֜ߚP.ڪcGlrh,:OT,r_trTKq?%Zh6W1BbM2(׸ow&S'^ 3ctPPH6!Euug6ΐN2i! +z:!ޅ3Gqf lbK4=E3PlNXFD$WH)y'k!u#Ym!f?;bՇKcZs<cF6"Rw+@.'A&,+\,.9獪-I 0MqW,IH6)LՁϦ 1+c2i嶂_ylyXxm Y^@p ro=IHTԩfmSoRZ7qwEq)So yxD6!FBn~V)e#%3[ؼ蹘EZj3jX֛h'I3"+]3s׉w\BgtN2K0Ld15.c +*ڠmQ'+(ϸVONԄA%\lkD]6Wk?pZT")f8 qjd s/Hμ(!PM:K h3u{Â[*հBԑ/T!(ш&c7;<R:"3bZu{G)@hՐt"1S}JqghZy|Qq@VcVE擳bd`bf;j"FQ:pÞ8d qJo z~v4Nve}w +]D+ܙ"fk0[ !è|6]rDvoԸں_2B] >SҾ`K(ad;U2mwj3f@, e71F+ eV͒zMT*<}O9tR/0)+[]!]jU,MDe߃\ŧng(2͕V"<G0ga(*Mx/Z~D|QS2-ɪ!%-3*g&ܲWZ{/F߷ s85(s)EB}`?(RZ4H1;Oܬqڤc? q=aq\#5 թukT6qp.ܚ{UZAj2 =f6H.L za$ ضiWi z3C27YD~52$QlA|A>(a?_mjƹH܊p*LJ1PۖslXj=ce ڟA""KRd!,lǭ.(Duz-A2}6v2hGdu:Y,Lٗ[W}߫.(Ah؟/;7 r8̽>`tx)ܥTNE-:QV +"Oiq[]29͕.:YP Ds dwuvd`ӜURoCb˱g"{d8>/}̋.܀Pe%(齱_m85j!%j *dǻwc`I1D0bdO G{Ɲ=hU`UD7kg惪H uˈ6a8v]6b= C>ը/[IX%Ķ̧K{U1:.{EcNRMTg;D-F + B糜0v=i{γҹF ]J.n:/rE;)qԥ:utAB .dQ3=/ +!THbJ;N%f)Ӹ10z%HlpI\S=q*MQԏ0NL:{%MB6BիHvG9u*}]q|PHI}$4KeZ{+]` Yl Z:=cL>7~W?ҏ3wI'_*+:+fR}u8Gvǂ~m%ZbQArp>bZ(Yͩ$H#z1 d'gw>y<팊!O6_Shb\rb*-M;]E/$f6hO4U y$z25'!xؒX􈀹{~[vU{h "&u +qyQ=p[h:rj.^gNX,]]ֻաzR@  CR1P2چ(nANTy *5ۗf K +U6- y1In(5 3oMHDŽn_v,f/|ScY=CI3rrQIq;HyVR=tSj3#Bu۪³Qpj\J˨Q0k3N}d^Eq^=hx;N osg o Xf!8I{k!v4=لhĜhُɥԨ:Kk(#z g߰hri * а҃mH—ӯzUAx+Ab86+ DH=U)k~O>sO[ݗϿ??~O}/?sIBjcVDŽZiöHUEԲ-U bAn$#E ;zG-mw(ÉN)w՛nmc7/}bWCd]#UՒ$Π@E@:ΌX"fcd2Z[O:0 #]GެfLdIA갃d/ o~,r5WF +3J\ jВhkz Anf:Z)m T("F~'3 +ē$ٵdu\ǿK+%NS8Q\DY<8Jnw:p*nSGBzΥbˣӥu󪴴b{'sladg$ݥ^5r4gۇדLҫbAZ/5ȉ(Y6{v8$=i + [ZO%5/cGn4 aJǽ +Yi?(JY)g /cլ(Rރ}2mÄN?%S8Fl@Ŀ6oLU-4Cl4mA.2֤`%06''jݐef d\uWq3M2o[gs.ZSGHS:˯E:PgMȂj3jvh!4c|PGv,9?2@J&UEsa!@56Fۘ0U)觽7KЇ1'G1EhYr9νm]^*sJݍ/vWJ*2ȏgs8Ogm_#!V + n#{M*C +yU6.(rm- OP@z^5bK<{ƙ/ F~unLd4B|ɞ#Vس0l>$Hm"43R#-Z Dj<Ղw_6b KSS}t$``1 g;YW>.UHD[f9_J;?ediXQ+7LV 3rdbN|vl?f45 grv +uP9V2Sݎ>=FpRXVlW$tI@)>N+Nmf#I)DeVhNN.gHGbUrzIB<@TҫjG9 #(mݘs$hV2֞>.t楬l"F|S/.V8˧_-hiVW KW]͋X=s;po'ikLz#pש ~ Ey(ڃTN* D%4JsfH+b#M[&XI3G o_l{-nNvZ +>%t(,wqYqä:DԻSb[|tY5n1}@UN9Q:+ )-d" J Ġr-f)24J't)[L`,M9Bi|_~>OǧǻGARJoקk/1n3ߏWO$1X(0И ECrQxĔ cdNi ^dFuuz@fk׬T6`?%=T#c@QY1,FXZN07sl'u#: DŽ!J7) !瞛D977tIgLo3ӱ J)f€c!@ +FaI@YfIvl-]5V] ->stream +HWKΤ ܐa+8G C ++r@X}FJ5LVt Hd$$ K)9?ll6A+&p g)\8B" xGG +WId1Ye=AI"SQVDv;U .IuB`<ȼcIYN&xkqo)yv"*GYœ`=Dqm"!8#csBWUP!-"#ȅK3dPP`|Ây#Us_p +cqP>\r覤E!z+)"[ܯHd&Y@gB!ƞ +ڑ qQ֧R@-R5s ؿnR(O1M^XN' 2\A$lI +}>1Ua[@iĺ19e [GYu'P] 戈[#g!DŭȜ֨ 5n; +p 9QuBCK4;yBtfQBXH6nG,']Kہ/ԡ!.^ pq]p+9Z.Y8g0QW,6*''Ju6d5,NE MZT Б9klkS6O *`qs`'C9% FtAr&yM: 8$7ZGmrJZNg{>vllZ#:EJm dOEB MD"LWVq4=&lM]c$H5(ݣjs[5=O l &l%'BN=&^AU&PҳśjT']{EniMy +{A-"*fbZW~G{CM>Pnr +Lvrߋ +5f67#."dNMv 挙2!Xv^\EH!R roBထ8v>HCoPv'xBl~5ɳ88 x5&,ne]׍{h|gܩzXqO9|tz(]橫؈"Ê&h%VH0Hiz'THܡ/@AsJBmӢ7I8!ZB]*ج7;&ݍ4% guyC. +|vYI+QWqJC@ĸ$5;VBw!~h@`F=RW)<ǚ! i '7O@:ܲ\1:Jij.B喁UR~x4?ㅰ5MS֮^T1? +}&u +uҭt@}";e fОdOuIFiW;D~#&ߑQy BupQWbDޒ=5U9T.wHmh%g+^ + @-}kot:DX%b)<~xI-ϷBX#Fꎤ)I'jdE-Şʮ}̒ѩNY1eWjeu+ WgPw9QTԸX%_x$W`*u>B}S|*6Zt>K'^$z:qNΝ$0۬u^h :Mv= p{JE*^6KJe+GluQSJLԸa}9(ڶiڹ [t!H YZcTGl?^-wv +(2.[ +qٍhM΅ߞ(BAf1PH:]Lx:2vqr).-}vJYTn8  ;>}< cP'_JyKڍ 4SCM ;ѓ8j1)o[iGr*<*FcGc,ilgHR#zqTAGA2}\%O8ȂD)jގ %|tedG]M!$(R9>G{jHN 'w_;YTRw/HҊRچ^\?ϳ7xvLSt[+T)%TҌb.D҅c]C~"D~Xkmɮmκ-dsk +w7j&neF$Brz\$ŎƖSSqX]m҅H$JB߃˿PIڐi%x0&^ +xУ <6<v!WQ㦂/llb}JХ6"ĹY7BDUYP8e9j!m!u~΄ӝesèHeL5쀩W5J뎄>Hs> K>&AAP[eeʄə ۙ)d:.kDD;"3kka˲;=%62}hCVcyD8?ĺg(޺OSQ4|^sǐI*S!\Fp%pKfvߚtZUEby,{,K;G#0XfOT+ZXLHAx}fX:f +ߤ}*B*q6wENGd 躕^~T ܰDmWEv+zt,ef煬҈sTj0+Yavi D\BqBI|{t&vpҎ# &aMG`" +ՎɉDF-ێm(6G~ڔ`\H%qGECstH~u7')iNVOO>}ś<}o^+two>?~Jc?q2G_Ϟy{yۗ_Wz/ۗ?˧^7x6׹{w_?ow8?xr2 H7ꞹP!و 1B) +oFvxܩCß݌XacZS 7 iJvM!q$I#!ȝ>D g A0A<;C|A t}\UJIP: +@ElBz00~kft|,V4k16r^{ؕR'Vod@NT?kVrnTI1) l{މZI.*H4lRɉxQ}WN%*DVa5J G#'|:B.dg!΀BK +pf\O=uBBid6DXI `~z%hj 47)S-x"Lhui^BjQѽ<޺;ΠF>KrcunL$32C9>{_`IJ1*:˭^eBNJΦB,3 )"f)ɮėoq,x{n$uhƢq8 +TxܩH L9!\٦վ~O)LfL.,(gvw!d*iΞ6DgkCWȤ5i!94Uo{yS3"IlbyPjX!D*GdnWT49X$iL/֭1F­Ӓ"\ec8` B +X13דf*ILjB7w|3m\:>7Zr2Lq&$|o˜F[1h#mD);N\3ˎ5O#NgB*Ph !MDЁN)(!8sд0ڛ[a+?0Hi,(I.ʇ=jdHɱ8$1Ln٩oeh969U\Frzeopz'=,BmqqFqXgD$C4^Dθ n؉U0uFZ/҉xf-t/v^yڅ0 [2ϰc"mP Z6O:0ˈeg2Pu/?chtNnaz +Ji$kQv>AF\@L;@@ &%ykc&箴oL%$v5],mݑ8'6s{'IrҪoqr%YyYfH"$PATW3JAOyfz G|6pWq֤v٩n4u wzyPVjfyMDZm^k]o_Z>{Pj'MC54.'%5vxw򷏀S B {񽑫hh/4f{u2Ļ%'IZtVoe-[弬RISU{ P6Kq0%#C)n9O+ 5Y)yB؏Un؁3-#qKöNJ8#gY2ރB:nU/?퐒,V!*aZp:ˡ<'ֱbyQ[;0mimYccJUyoh-%J̭7B!]'s^iHxRZX3fjgdX_duz^Kw@.`*(TӬch%Sl%V "p#!Eҙ ~eH<4v"6F:S5[5|Pخ  vd_uhgE=adTeB|ۍڌH=K <`lhg|Mi=~HfG\ߤ53AY<ܾ!]Dt& *fƞy)~br؍;Pƪ61*E;X;~4SBsa 3ˆF!|D$ED>/{/p)WS{ UE{)̈'+F dc#ɨ:[!+o!wW*V ș?6Ѽ/qn~M @؜O>bB}zoh ®rAnyjU!zniT qixCH+F1Cs k2kpʏ[*٨V!Pj lΘ\^&J7xa$ _~Wy"u4*vZ5NoLQk~f{8A6Ee $n1U鑚[A`e%kN-*UA PhP +hzP=˕V.P!Y4A!/dIB#R>ڧdڻ[RŘU0~22̐{$/Bz GI;[nq*qUx8:M;\fNF!@R%?f°Blz|sn_R6a8DNZr]_xC">WD^tqTOP 9hٯ^NuRjA%%W+V)J,_N<9j_y} #X"̦X2اeB|VT]U[7DyJ7ij(Pn*"~odۮ +W`Nl6JpGWNn%^(2߲ȒE$یIKM 3\ǞwHb`LT'4V!?lF\8g=ї72c} O U􆂅䩺=,O?Fry$RM6_73nW m$vuflsK@xb&ƞ2ǔÄ([lB Iẕ ~!q[BEM:Q;hLsR"_#"_HI/f%_UgeS&<"U7y$bͿ?C?~GHGyyjEJ u-#C[H-BMxGM˂A}J?t[DD ++9JYHaEAiў'S A@5,|r|NU|z̪8y[IDiz +Mf`=2/b|Ej'/bk,:F'zָRwjf񲅛#sf`QfZ:@ ! u +}")1Tt|IgrnQ]OU<@U$, +s*lWǖzz:LwSg:V$\KYr QԂ=<:%f5DF\K ^\˦!yJ{3&9#2)kB8&Dv9Y4l,f/~sDŽP0ro'1}kqڜ!ޥ4}SW{liK:oΟ;*PQ|{ʰՙ$!wN3[n (X[諄y阑ʦz^ܑPhv:[8RF ‹ B4,fdn$}8T3STud/Ԁ?oއ8bQ I5)89MM v] JڞJ*XVzI_}w?O}?ܴb)~|||_|/ǟO?ʿϜ!B +h%eCI\@DkV+|i]8,,Or"𽑺I)v-9X6 Ҹc<trؕТvv}8UC+W%I$MJ9yu_93jb!b)NoM} +g%J>DgDu#3Y< C(KҊQ?-?֋-&3mdΕ"tLP4nwZWO![ɸ5j4#e^CR16#9^ɒ$7 +O@ P<f D>ǰ]ٍ$ֵ 8.kl*246ljga5aGlaT*1M$2O:GPPzCmXG*gKkA$4SXܢ>㽔:Za~G/5iS'lheGS8:g2X Dׁ{ +riyhuɋl=o%buO5<\mНC>XfK;M9cmbZh^%]pP2%{0yt3AN$lpoHHl HSzy PR̈]g_|8JP'~-;*iV C\I3on ꫬBaKX#?0$m g.g8J̠aACo̵P$yбD,U_"k4 8L9AiT!?aq ט0S=o{[4;8{a 僌g_C4/=ql̉,$wl;8FE([y3vR +rws{wn .Rj^R!' QXH8rO D(=xLdK %zamOR;thYO[CF A@_CòR.ٲgmmd3mE(Hn J@ f?;B,Wm =3NvubezȃcKgxI4H +bJ +?Yka{Gk|Q`fgvᛨRhgbѰ"a E}7)ч+z!ЎWKm~m2c|wSb X@@u=zsShνt;SKu7?T^Ou$!Xyv6uyDcYh}YRf˩ 0=SzdA4kjI#1Цr#e$p@V$e>w3#`a~Gv^o}0#،t71eGZV}6;D渎/sSC~۶sWbhrH)ԕNwzf"r VHݲq'p_;3@Y>Me& I[dN#֎_f +_d/;Ud86;6O5a Æ9ILtKx@ܱ8XW\YbNzTӫV~<ω2}j 4&)?8W +m@>'g=9(}-tcg$m2h)c fQjz$H( fs &,O|V +f‘r_}#:Kˑh=@AS.OeTW|GvbT +rD8K4*zDx:GUsVenBfےǑS79lYB^=6, GD4y^D^ zL0y$~HH+s~yFh$/2t:9wD$B]m.b{9{um_:6nRd86(}gw1=j bOA={0~FYfUzYF"P}#wѤG_!^&'Ǚd0b3+*I:|Z/|FN y3cv@oIN8j&!bd&҃OX@Jh_G>cu\%f279!h}?a2b&ӌ%A)-jxȦy⥃[mNRpL2BL0W*@fڭ{L^RKhd?FNo4*z=ȶ 3Eu-՘ʼS}KՇ> IH*BwH8B[/1%NpKz"`.a-qDo]ѕ!͵t~F \|򉌖ˀ-"NiYRBCH52k`@x9J!Y0_U/A0!-niս<7)Ið@ƹ5믍fE7h'pm9r4NaؾL~flitnoj)7# :VܣwpB@  DmWWJgRņsh3 +X7 +%-6$~|a6N|g cy.5M)9 JT]iP_@>, )TF5uxAgf3*-y"31Dd봒(+`=*qTώ)F0p'vNab2`OZkyR cTxa[*~N Xg׺TeD;k[O U'Yk(JHXťoU,&q j-D`Tp(`ۖ4OZ~Z)yz\O="CCE΁6e_]a"&jrOJy9foZSdQ@٠-eѣ&`>B&FO1(aXNOS1e'*g_R01읋Ƞ$pѢ +d)NŠ^2(Pbm@pZlDܠ%$5a)R-UY'̈́l5T@.d>$a\v8(*g ]*%`YYȉd9o (ήꪽEӆ&yDz[$'ǧq&-(2 d^9#P6C2 J ĠY49镾: fa=fBSi8?ç_$?86圿~毟?}_o_}ݷ/?}گ~?~zzjw7tPP4Mu^B%_V?sћOfkkPX1 -bI<׌lj1xђ҈1 jX1,F։XXN7''|" CkY`' )s?d W{LtIqeB9S`4Dy2pW@YfI턣8㧨1t Au}斉7M6bK[_u";/dx$25[x ( +j\dyi"*ɹ$;ǽN: :AiJ[vuPKqF2-/TD :B} +, 0z +Dy16R>:v:Vyƍҝn %:疰#}2&{p[ _\'t}0d"tmC؏OndqlG"ؗM62˅eA| #4x2?9m + Ys]#}}SRIVTd +hOC|4x<1GI]]fЦq0:j#!0Uj  X.|,hD~gD&u6!*d*9;ucW]ǴM!1'blLd(F:s g ^j&9?˩5o$j6k0277M#+6?'Ҡu "M+FV@t0 Et#".˷8-.2Z2a! &H0fXOiV[iv:F GǝYr;P bs"yOZp:^u^i3šwNr6Ʒ[F K,GaATP3:I! |pa4ەЃz%9UXDg"BFs/; +9Su森-AZ=Іa!T&h ިlMte+m"(ubJv4{ei\NFes*c&^(fѽhKNs a:i4Ane3TѫiLnʴ h^_\ r(>)g+dxR' GkaL,temD8I:2v)ySxpC6*RlĂ b~V+¾9]Ip$#g])TCvL{US^/Q (؂0Լ%u\Pb?Zp~&r,}Fa6y"W9Ah"25* Pzn-ڏe5 5@| h3_H Q!G4Ƞ*NmQW/:SHK+bw̳{Y^hHxWbqd|BMcF;40oAٻNsW>;5((MD(Ft0'ͥ;bTb#JMm&tk uaz: WΣe rA(,qDfWzs;3RJP4> -dSU4H5ƀ3\ѨȴA:xYt-e"(U>|lJQ>^tq!tfB#ISxݑxfkhac؜hGIVV\4- jӓքV3מ0P\LL0K҅pմ.:w~ۣÿ bPm*[u9Mbn-Sӯ;3 }!nFFJe.*b)GQ]_sCb쎍ݺV)-v~˔Dr#C6x$ŃxGWD! DMݦUr۵ _Yx?W.Q9#5}t`Ƶ~Uh12ҎXҖ=SW;ATSk34g/l\*PJҲtLe5Xh95 iSjSAhGnS5635x_ۈ#ҙ/+; 2)I52vs'}-bϯ|xo^=%S}_}~|}>˭ݗOsΟ-?>V,-{`Қ(#'PhpbRFd V t3k8ٙ#& +m&MaψWXQB$ ,C'. K.U5&aT22&ꔁ:B]ATKqǪ&ٝo̾T + DGC}J[j!E<`O 5}@K3f`>0.5 (@ejC0_d lyxlpLكCVIK'a3D5xa= W^$ ȉD FvG )Es16 1c aY6-Jh"@ڶ*p"Ե3?5]U:fے~RS=ME}8GI4)OųRW&;en`c;KCfKyX܀J)Q+aa4z[(ëy f/XP, ++@{IFt@œƶC{di9ܩx9馎IʒM][U'e'4u+^B\ 5Ii`q6!o?cs`em2r)\X_b,LNf5VKuv k(X54W+FeumQBMB,[hT!2CK[qCxS:b)yp/Q:.y }Z hyQ Ǻ-A+Trw<{Wf^uRdFh#9v|`y;\ H\+X3X%wijFLruʖQV^u_*rHXK H1ƺG3bͪZlcr!2ѭy!b;Azk,aL&e4N 5]`o#vq׊]eA9-;Kvʣ/ b +rc6@RϘ36vj Is.[+̩<`8f,;q\L1\d1.;I!DwlzhuлVIm +4)9|)a@G\PXNCw~tGKq̢. 3i I\Pac=Y `Z}Z] \i(}Y;0b-JwTV(eeL3)∈a:#=5 e/ߤG<(d&ژa,{ ʑ ܧWbSu"g`'N IV7sNEZ%AV@P·Ү\Mb8g 77s6%PM?T)C_U0FU3\̲4Au6]x"9r[[f[W Z:JvU$UUd!lXEH+.pjb6q$JJ=sURy0+ꖼ?GI,s!D5En9Y@u/* 2)mG'*ӫ"@I_6m:nĸqq~IN[Qgf0|n%\έL<~; haLfuQ^T=Qݨyt=̚JW@7򶩴`nTnps=̚jDlUa\Dq=/fmx*5hwJՆ59~B$(Ӷ biqk1WEBO_O"ܠbLi<Ӟbغ7b_k˥Q,jLFA@: +`w%qZuC8ZwT&Pl1*/1ݣ0:iJ(bg$S.gH47}%[$^LyVa9Ҡھ\*[.&.w&!|kԶ:IVO]LLr\׾UWe$eoSƐ -ת3`T#?Kujv%z +bU$=2Cvn b:V #hХH%{B:"3VFi +'^\C"eA>11fB??xbG6qq# ȆuV#îYH ӏ0$k5q׌h%ZL2{8'exrKu@Τ(y+y7Y!I;IT+i`g>ݺz%Byt݇I3 + 662-'.ZZ0.t"Gx&p߮l d ׮@"+ >^MQD02J*ձBA(EQ +ac LGhO4BhRaﯾ~O<?R|_?}~owoh)skqT̉S'uCI-M)cUU.o{@WA /Jb3#@ۀ3M0@Q/#1QJW]xJY%!~k$mO0̫P$85%J([9@f~M 6$FTF]`p[. av .qGm]>%6hvkj-v3g&~Xg\f[(Q,8I.ظrB)Yd>2kR3Jh/!hgq< P/YnTi@s %sfV\qb]Qˌ'_9B 1H%A:9{BnHO{Tsw<+k"a y')R%KzgF'ۣ Վp +nWAj6gnerqEWvHdfQB A}ַ>W"ccKwSuvP5K^SW +NKˉ)²KȭqA>B=i`uFLxɉTNT2. +S=$O~ٽ7}\9#t C>Zsrӣ'0V/igjbL :oe!*'#A:A,? + 6=DCu9=SPư[AnΣL7&ZcW? \V:80EK +)<' +ʐ߅nwƅ HCv 9k:c`n|>&ͷ^B4WX1=U Cm>xR:Q`dbf_%B:t/l@3-k}z&16߾B~z`:5]뜃󫉸<~ ;5x MutL4XW`joL"\BH:1hJ}tj`w9Ȩ=]y4ڢgj"ե7l'TR P#=00G:Gl. +Hzg{vM +Z~ @OI3*E Q K"v\DbM1vu zٖD 3%ISeh +C6jFVLu/i}{>"|]Gt((x+q3&!TӚm.X7:NJ_|ULq." Ӟ)YDuʗewխaG4KduhEHG{Z:ꪓck"4V>c:8(CCNlJtZT }Z/YVǙުdeʮ USx#)%&FqFGYŸ/{{5<c/f_njU]A|e[ZVJ<nuLeivElXAx:P ~-k'HF@[\J_p9aƭT@EȢnO4^Tr3g9*PA5={Ěij$=ņ? nRPtu& i̖%z@k@+}+GG{30#f|nNWH7 +j +oՋXs!l*S1儌vCk&)S>23#HiV.=#TUۑ6VYAliD4%.s@Ѫ4w)]I/M< uDgspL+ȠG<ޯU[#ƳhH2h\$9!8A G-uUR;D`l4d "h~®)1;Ђ ^E2h<7U'' (ಬ5eHa# wBE9J/n4St_DQ,D#?Nwu=eXȳ1-Vn \y/it#Fⶔ!hv⟤K9s[X&3WٸiT-8TkU此.me[ia{xΒA(_K9餸ߒ?tpmnvDibhA,5{9hQ^)J{ҘƲIdE϶ta#hd='$ЏY|ODJWhQ7OV+'Jm3t,°ޑt +C{RHNXY[gm/zvVr)42U%̐85(a|KhsX>^O9TEmPKnK̆0l RE{c}-7tMWH%}K{;^H4 b(PzEM@ *P`s~hD)@c|Y/d$}߼{O<_GFw퟿Z@]2cDN?c؞q +|o}^-I瑞 ,/*#0j뉶!gv4ӻ"DH]M*R&%10fɺ"aE}~-c؛(mE5.ݍ`8SʱaY?_*>W&_9B3ftPD-0V&g&8~7bALmX9ɜ IUdATXA;? 3HÚLi);ہuJ|%(?1-]L0Ȇ@jj紴+,`P9qD 5m {C.R]|+6QI)u]]:.ĚfeDyGtr o#PZlQPYğz9"!r^(ݪTeͷFjN/pvun;3d~B,;@mK]69E/i{!HzS=6{G41;"Id3*Q%UHLp_fs]~4Q Z\Wᡔ6#h<ʒ`F=RzjQɞ-NAJ֌}@ܕ qE`*\U^72a0࣡EpЃ(Mlk>(g6PsVLLȜ\g_!/C{x 聞e5 2Dv/ÌlTYGpYmT<[?>P]{yC]ep7 47:rp]!*gs~t>Ps`Gz\:Ϫ9 A[:ث>O<IV,<37>ǡZN8e"_R]ªK'x a\fXfyl{Ha0zRDZ<% + +:ovm7NyCz ,IK:ya*\:ָNL.p+Hy$gۉLYE4oaE DB=\jg&lw rYȔD콛ʱ$=ot_Ja5#vc#A#xE:f70kw?D 15'SZc*OuIt1N^m@Ꚇx&Z'fRqAz=/Xё'S&@i(SNiXQPGg鷷390Pˀ?G414M-OgC{#SEּ4M:j4D߻$}'ĚAc& J# ei.3Ff([F܃zxWP@brb|ƭ@nf+$r".Kʹvl o1RJ"}1µvY!W< >2[6a`¼LA$SGa ; %~(oe|^ \yIHDVu!r>j_7CiN\Cus# JH1żp=RH bDg&b~麘:)1h\3r!ҚCUEْY'Ep=r`Cw@u OM jy]'N,j-QIhWvh=N;@LXw&h!فLvFnhdgtYUo]MZm(*DY۝8Uk>HTu8|^miA }U#6 M#D>Y6F=g@V\ٙ3ghR-̠16` +F`T8%bfJ Z4zXN!43*kAs7=\Ra,,4GXbʽV;u  Qdm QoΪJ1ug"ǩH0VJcFl%BdOzJ|ʦ[xᏠ^━ʝ4$%-1àD,UK{ȉƏu߾&%kEJws ᙉ> I*GE +|p8kVX@oԲ33u%#E{)U + (R,N'G27d%IP6=8vI'  G#&!`#m=˾R3Ny?%NF\MȈ9v.ݎ5BT8PLgPa=[Rp/:q@M)FtE\,dN$q$1LwX=gu"_YV}E\n&;[\/qTVٹ3l*ƍtGE?r3cLwgY}wǏר>stream +HWۊ] %03MI*U='yH\1ۓ݄$>1teIn_ᖖwVRO"uy9-/O.rħO׌O'~Pyr[]33\VhP=,lpCZKc>r`t'`U9z0Wۚ ʑ588K]!K> h'H~˻4zJ-r(m$ܿ-c3$O~kUFGvlJӾ?=soͧ,yZ;>; +|q ޑhR*'w8ɋ Z/vrf`]lg1p0KNPAwSch9LDpM55M*V jkIVD*a ͫ +*ɡ_FVlP .߶ 11z +=u`4QY+X U@L%N,YIK?PVE;VljT*HZZ4'_(t5F1@$ps] jQ51e, mjA:N%4Q{<4F-=Hf 4'(@AA )Uj1 +jH)59:pXpib>,1NoY;{}SAmVmABiem}fHkh6xG\F 3w(н صs =q˶n=Oux=s>Pm/=;>,W;v}Ҹ7:$F7xovexgtw(3z/?S޾|RvH5+/91TM=1MѸ +o/aQLwwE> Jf &]G +sV-e{;uuI>XId.9`bE}EΩ'QVZv?1 $0X'O-}sLΌM~Ծ} X1eFӄ0W83eԥwI<%"3#}0yL]ʸȀp髵-U*5=h +%ϞF).V >ѯ=AxmQӅ3eo)%GPYQ,9al5-q=BSKa>NJw0H ٻ #D"<'-5ex"}?NyvJ"쫜 ,cuKϜ1-ըŠE 0;܋5k薿\zpMqS 7)ʾ"9}E>V@T"ZS~o r2V®{_vn +.oqT$*)V9D {&8E@[fJ/[8݋Q35)Zµ>3W}E=;Z$~geտ +2 +=Vg%T|dx?c ޵w +'gWTΨn= -"*_.zLԺn;>{r,ӏy?(=QO$Ufqej8諬 +Eu\7;лT(jMU$BqgtkQY\h+͌nN EĠgÀ +ꖇ"6Z.=p z7)7_Vl~ | 2 +pU+S2 bʾlVMb,c88E0uĪQ1GtI2}Hj"c-)^Y&x6e.Mc늡(7FJ^~M{c[ɤ礅|\Wm}F]GFoOGHJ^) WW;v,ۊܣzw8``u=fQ Ӗ~֥2}L!~[ZM;pYJ+KkcgGժ!h bY۫aNxdnslwi:[=2;.yVv,0|ho}`r?ۢ d:iAruv _n w+@ ':[3{'=MPK, +!`+SfW }`"ݿ l x^/>#wԪKZ[܏>itphվ|!j~Kli}q≮5T];*)8cj*Z^t8IhEblɻ}g*QUc,$]ޫ$_~Lt:Y͓'`{43\KCa@c;[a>#RjVjqgo~*O|f5{έa![wjzŻ>y7/Q䍖Pj{BUGUF@+S7 +͞`L28䴶6gwb*ͬ: }f0oKi 6om[4|5o= +Zȫm½]Hq$+V(f&Ǹz\Z ^d. ɡ|x;VvJwkE.ZC=77 L;mb[de/p.umS%a GQltIvl55,£-jUQgKe?^x2H"o/…,g P 9WAxf'>[QC`zbZQgWQF/'9".7lo5{Θ GgS1g:^&SqNdk̬a pi]A>d|8KBrDeT +$2?^w(LivvR"; w`jÒ88uV5v\s^۪#k z~]8i+&ivVH =>}n'?o\Gh  |`iRãI]ב`]BÐ +.kR6.sHGAC a3Bq~ѫpBΔ_?yk&?T:q]#$B,!<4ζ`$*' blQڝBunSPZaU.3T` =Y=ʸtvQlSk`A-[l` 0#Zæ;~ k[v6×:&6lxlw]M`[ZB9Rml[qasqKF&4p]3j٤TǨŞbuYWl%)8&7@m>{pޚnz2o_&?ӥ(-JEqU~]QtdTгh"ڢqsU`u;J|\YjVkn(*p5nuvJٞƨ UCXG)v)83FF+%7(EP<=B  zmUC;CG +v`2<#& h]W SYƳ}Z~G,x6q8fWo㩀xqVx6$ "w?6-ux|-޻rF.a-.I) "6 +`?度dL5*q6=Zv]Tqks#4(WQ R;/id>؂9k8 vC$o;kL[uD_J;M DOjY)ln.-R<Ih?"&:>v}Ua$[Z ]pzpo3 PԪ\?|!vF`~z/@mf25mW x8U2Xxߣ4i>&K p$[x{`+=uiQ&QμG W5on$M.kb2< - o- 2M 7p[hMab@g*W'Dc:Z0eb$aR 8ڠVAh*g{/bV he\%pOYJ6VzpU=QĠ%N$Np|q;{8x\ +&A) +dq6gF#ɓoLxඵ/ezş{(AA"mJkm-Mc +ut`=!$1?1L 3$~Ɯu)(fzHJ|1 IGF\a8XR(ý(=&3b=pv 6Ζ; JZNJ5 xk^jnL,4mJz&gfJzh(`\6unx.SL ʼFR(lxU#D }&~| i4+ΟleUn&=Tm'/6f(>&]mMrL ~S- ˵Ʃ.Q'oƂT_ 3qZ|C#WzKMY Zi 'ZFM6V | AtU/_d/b54L -O”uPK,*̬ D^b9Uq1cmY,'AMSmrestvn\l) 2j]WsY?m٪ܱ12u]!`ۺY07Ad!_{8[ZYe% +0UP5Cqo_cܬ pKϷZL}h3x?W-Ӡ~ {w6m(7gGe:+f0]ZQy%ts ʡ>*LL!MZc)[<*~:;\˚Wj$O3MƝ삨Z7 ȸj=Bt~0a{eqC_ F4*MwMz -䫊b[o Rml)[2bSenMybu)cTw>갘Q^y|"klrw^O.NoXL0z8KTVEH26Nne?e-v`$ /էTY:M7.]23{ퟐY^u=+_`!ж04Cj,"`O>TR)' cOFRz/i.Uk\uvFx %).1iB jT:Xax7"Z1F\Z{)/y/rHP_{~.Wmb DzN kw66Eo@Ǯ[]sǰ6.A\bIōփ P3ۿ!yXڈj}p]C;,U[Zµi .wj,->ґ`9Gc}ͿUd-@,A\\j*@H\ymiS(2D/ +CvhC ֖ƕ#t-kC} n29sw#͙o')Ş^a3?]PؿǮͺ("Ps{N+ Go7eJW'rL\|(7hx^hbj7P4sR6zI)7t%ښSL\_u9<2HcAFoy1] GrQ#\V4;Gn FbWV:v9{/1;ݦ$VnKGn!tJ؁ 6d}|Y~ \8(;exx)Cv#KC26eދWء +.uoinnJNG&eV  .U{lQcm%9SǙ4OAwD0>~pd7G!@/Y`4u$M239{P[ʤ/CE$XyNc ^He&HLB,+{"AfTڝ/74yX[fZNe%^-R3r{RV4D򴠵1׿P.}FjL_#v pߗFH]}3vSnaH/26zuõ>p@!+, f;ΦV(LͨרMQ<},V zU40Hl0J>&:bWZy^, l7̡U,Fwf'Zfq3?MzuXe|ȓ2]O%{fܹ)R i0TF%MW ]3=[m7AЃ6Cv4Yq@#@?},,G3>zIH%wllb=ź,7&ոx1ro 񃰳㙮"f1 +~r Q\pvӋu +d.dRh'ϭ&8 !Q?D8=6%A;5׿j\ HcШ\8^`B}d9u9 /։A/)^鼭sDбUY3Yw:;RpVq*d4Xūy)N@>$}]N ~t%;;s 8* pXi4 @1q]A'(`!ŎTP] eí +:Lg0뮤˴PSֲ0- Dh(kH>u:)b0ܟ9qQ)'Ι\KpXDaX3$)c89mlF}Sl)IO5y`ȽQ9 ^ `ӎ& xo)t2;1h%^V8TX7 Eۏq)Tɠ0c]{2XK[# +-Q*fAYcY3L:~ _>xSԞځwPy[pW. +!#;g\pF+ð^B~;AL껠 LMvJX-16XIZ`~'XۍYxPޓ,[{#o\ЙFIIzv3$FC#u^i !zjC|eۧߪf.Q9@5>K'״Y xzWۃW^gN),f caNO pOՆ-> tcpmSF;=}X9HJmcR30Ƈ5Nl,/} Nq٢ӝYO|zlgO8RonLp,uKdw^qd. y[i@ĀJ(nE/1

ꆞ'ܑI߷K(c c`4>APިq~ *, +~\' EYP4W Z$0){cq G.b*̷qWYbuo]4tPe\~0G=l6STD2<% ++IJn bS1Ha7 _ʫHVz^D/~iG[֪\JvDOk€Zbi/qJLH"SlF٥Ͷ%PWrbvl1~p>OwRHHS`(wQJؠ@Ժ]k|&5 3<B 01< } EJ6T 8 Cמ[z"VTn{ D %oXz1kP&?D#/4Z-8ng|1fƇ jږ(vf3[W+R\`9Ô1 Օ YBB q n+ %4@H @3kU +Bj4oEA~:ڊfC:ɡ +c%ݼ5PP,sYPa f)7Zkt@GbmVzѳẄqyQΣo!@N:],` )vx .$GqvuFi B2JǏ?P-~Ik9+ȰuFdj + bΉSrU1&HBJT.ls +/V7@$r=w뇣W_tZ5USq=ED(b<8i/w_{}t; I"9ABD L0:⳾8/!+YxTTPo&…d>%GtF+ے +;/`{Gv,sΥ.B̨zA;gj$rz]|= +!N`WЍx +8zt#Ε^ykG`TDRd׺^Ww0_օʜd%O'SF{j*rdZž]qkRk׊^%4rhk@Ghx^W2ڇĥqɊ֥~WZA>lPN{EiNJPxM}AIJ˴`tX?a02oYP $04vɻuA :V$+bJ(@ +Ty.qJd4$=@ptJ?^!k.k„tСl(?W3q%fm Y\[֠$pVȁ賊bjr~Zfc䆴 +Iƅp 0>$92@g2^ŀ4$1?ꁒ Q#Z'1«ʊ:+n_b5&s/Lڟ_&.Tȟ'YRgeWO}8t}|zfUuSsQU+',O+Q9xUo\oψ9x[d /Aoq?z>1K뻧Kf"ς)x]Ft'ۻ9>:&{D|i8~/zZ6E +M ^_ºQG5ޝѡ:o+b 1KH̏JE[/論6l-J,ܾSw\n:^W7+FGXuV'B=˅}!V4I@ֽbӁ>c?yǻ_g-'b0rp6:\Tq]VֱY^V;\M*e=XAljI>iX򾜾﹜i_N]Ѱ X:7Fgi{Ӳ)R0qZ~CѡBS/epE6XYypfE*nb#_\}eOYk߾P,!f1VbQU= x~t\5kq3<=:, -Nfa؈}#JX>TI' 0:2ygafuius0~:䐺ׁ?>-`˞[Z" OdX]M|~[3JﻖFwo=~:Ә:c|[Wh74n,.bWTK\Tq]L*e}ޝyjиmnK`fytgi bB4Xю*f1 /-MRGf2(uK!=խδ׳c6dy-q'Tw(apkaZkm~/zZ6E +&NO`z(P3:ԣWW?WL6LNI?~]IJ |H-6+Rqi)E\4sct|=e }Brk#?XcV ϏZcOQօ'I3k؞+=ҭ<+D%$ΓҞv. q'YYmzl/MC:=M>R;I0g|vp#Nfb.v2,.avOޝѓAZrU]!eٲ+&yI-9v8=iCVE7R&33lQ~JV͍2A:7~e647Ə.ϼ%!}GLJQoI +5TPQ*}qJ]P) 9zj$.>"9YBN- 4|Qɹ + ٻ>Qg_FUFF&N~cA۱ܬ"M>l'&u$g'Y郧(d#C`ؓUHg.)cޥQdX+})016^ xs蕖uĹПč !_vC?01%k׬5]n;ܕ)˃{ 0sYS +o?%4n΁ކaFC@` fLDHzp#-m-D;EdAG/.CtTT8l˹TE*}q> 0 g| endstream endobj 30 0 obj <>stream +HWnK/WJf,qѾYtq=dž~@~`}l}!H7ةtUs\r^6(@c% Gc%wc 0es-Aƽi a""+F{J| #4fj| +SQZlS#blRF1 R ~\dhU4E|cH ~#OV/|{6FT +CgCMK d+Ǭp<&kWd̓,YnEi\0Bq&UJ0%mxmuQω'"QOh3fg,(s>Nt>r= ':€],} Y/NV9H)UEĂlʤ$q4iJ5ۧ[XiQ]L /JU펱tn9 +V9;|پP3HlP ~E˵>r;2/0C[ki.x4fvG* o dbKFsl0Z_+g +A40<9%#EDw`P4 pj[~[~$Ttɧ%.jِ$p"uΣ*MW `)#) +CgCMK , d\-l6~L ;쯄כY\`#m(M V`70n?_Z(6LR-m3}6}N8*pƾ'HĈ X_\9*ljAw 2g[`%Q]hM,HLKO$Q}Z՟_E*:{G}0PߙJ_#hcr;ҭ$[sw<#  Ib '/{ֳ{!x+rHEdz²ЋQm \X|sF92<=';*$Ⱦ ^۬esE `S֨T4 +F*jG<;U:һr2?.HLr0H@r!v:$we/(b|Y*9 3 Ys$=weۿ=XhNOٙ8AK얓 vspc׆c&8G+CÉb4 l#D\pNJ(ΉsPJϥ35)5|i߼:1Xn:8@ +z wMdL4єY~ߵsa1TpN Z Uah틤)1 ^~qKvWG5pa, ݣb8u2|W|'׌뺱U7=6wo_pHCMn8ov:weskEO"\V1OaLϪfA[*eDҴ*x䑆Zqwq= ,i9tS(ePBwCz1-'YA0$/=CÉb%EBq UhWeZ,IMa6 h) \H?ǶmCjG<8euT[C~%4,lt/<#6ikSv.~eEO"\V1qLϪfA[*eDҴ*x䑆Zqwql@@`]/NF1A/cPtn9 +!m'y}=S˸W7$1~!6?BW5Z@pApvsVah6C3qkp]mp8 +@#B)z( M~4 Q@ v<6E L4VC|=IhIJ#˪73s5J^]Zd=a9|c[*+Qc=᭔ 1DƱ@ԸN;ڂDʩsoOLQv1ZޒI&vcNEX8q>pؑV%\U_\gs$˴F +p8s.dPfȹ°è \z/~LuߢSDg`A*>\T&C/jݓCZ]!;wQyIєd +_I ;;E)Q!n ъzQ[Df ej!p> endobj xref 0 32 0000000000 65535 f +0000000016 00000 n +0000000144 00000 n +0000046010 00000 n +0000000000 00000 f +0000047465 00000 n +0000307078 00000 n +0000046061 00000 n +0000046404 00000 n +0000047765 00000 n +0000047652 00000 n +0000046663 00000 n +0000046904 00000 n +0000046952 00000 n +0000047536 00000 n +0000047567 00000 n +0000047838 00000 n +0000048276 00000 n +0000049416 00000 n +0000081306 00000 n +0000097574 00000 n +0000112988 00000 n +0000129080 00000 n +0000140808 00000 n +0000159180 00000 n +0000181496 00000 n +0000208230 00000 n +0000235298 00000 n +0000262350 00000 n +0000289352 00000 n +0000303615 00000 n +0000307101 00000 n +trailer <<83C09487EB324375B97C0101A1C964BB>]>> startxref 307303 %%EOF \ No newline at end of file diff --git a/thesis.pdf b/thesis.pdf new file mode 100644 index 0000000..1adf296 Binary files /dev/null and b/thesis.pdf differ