diff options
| author | Stratis Ioannidis <stratis@Stratiss-MacBook-Air.local> | 2013-09-22 07:55:14 +0200 |
|---|---|---|
| committer | Stratis Ioannidis <stratis@Stratiss-MacBook-Air.local> | 2013-09-22 07:55:14 +0200 |
| commit | cc1eea524d8fd1314d85fe7b56cddd95fd75302d (patch) | |
| tree | 8d028b58c801d7263e2457e5cf9934e279b51e70 | |
| parent | 1cb6e4b28e77b8c1a87e54bbd7097d7f8af0e371 (diff) | |
| parent | 50900bfc44961b87379cd2d3464b677d9f5be1ac (diff) | |
| download | recommendation-cc1eea524d8fd1314d85fe7b56cddd95fd75302d.tar.gz | |
Merge branch 'master' of ssh://74.95.195.229:1444/git/data_value
| -rwxr-xr-x | .gitignore | 3 | ||||
| -rw-r--r-- | abbrvnat.bst | 1436 | ||||
| -rw-r--r-- | abstract.txt | 28 | ||||
| -rw-r--r-- | abstract_latin.tex | 27 | ||||
| -rwxr-xr-x | approximation.tex | 11 | ||||
| -rwxr-xr-x | definitions.tex | 21 | ||||
| -rwxr-xr-x | intro.tex | 2 | ||||
| -rw-r--r-- | llncs.cls | 1207 | ||||
| -rwxr-xr-x | main.tex | 8 | ||||
| -rw-r--r-- | notes-on-non-homotropic.pdf | 248 | ||||
| -rwxr-xr-x | paper.tex | 29 | ||||
| -rwxr-xr-x | plot.py | 36 | ||||
| -rwxr-xr-x | problem.tex | 9 | ||||
| -rwxr-xr-x | related.tex | 2 | ||||
| -rw-r--r-- | splncs.bst | 1098 | ||||
| -rw-r--r-- | splncsnat.bst | 1508 |
16 files changed, 5608 insertions, 65 deletions
@@ -5,4 +5,7 @@ *.blg *.out *.brf +*.gz +*.fls +*.fdb_latexmk /*.pdf diff --git a/abbrvnat.bst b/abbrvnat.bst new file mode 100644 index 0000000..6109cb7 --- /dev/null +++ b/abbrvnat.bst @@ -0,0 +1,1436 @@ +%% File: `abbrvnat.bst' +%% A modification of `abbrv.bst' for use with natbib package +%% +%% Copyright 1993-2007 Patrick W Daly +%% Max-Planck-Institut f\"ur Sonnensystemforschung +%% Max-Planck-Str. 2 +%% D-37191 Katlenburg-Lindau +%% Germany +%% E-mail: daly@mps.mpg.de +%% +%% This program can be redistributed and/or modified under the terms +%% of the LaTeX Project Public License Distributed from CTAN +%% archives in directory macros/latex/base/lppl.txt; either +%% version 1 of the License, or any later version. +%% + % Version and source file information: + % \ProvidesFile{natbst.mbs}[2007/11/26 1.93 (PWD)] + % + % BibTeX `plainnat' family + % version 0.99b for BibTeX versions 0.99a or later, + % for LaTeX versions 2.09 and 2e. + % + % For use with the `natbib.sty' package; emulates the corresponding + % member of the `plain' family, but with author-year citations. + % + % With version 6.0 of `natbib.sty', it may also be used for numerical + % citations, while retaining the commands \citeauthor, \citefullauthor, + % and \citeyear to print the corresponding information. + % + % For version 7.0 of `natbib.sty', the KEY field replaces missing + % authors/editors, and the date is left blank in \bibitem. + % + % Includes field EID for the sequence/citation number of electronic journals + % which is used instead of page numbers. + % + % Includes fields ISBN and ISSN. + % + % Includes field URL for Internet addresses. + % + % Includes field DOI for Digital Object Idenfifiers. + % + % Works best with the url.sty package of Donald Arseneau. + % + % Works with identical authors and year are further sorted by + % citation key, to preserve any natural sequence. + % +ENTRY + { address + author + booktitle + chapter + doi + eid + edition + editor + howpublished + institution + isbn + issn + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + url + volume + year + } + {} + { label extra.label sort.label short.list } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := +} + +STRINGS { s t } + +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { 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 +} + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} + +FUNCTION {new.sentence} +{ output.state after.block = + 'skip$ + { output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ + } + if$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\emph{" swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", editors" * } + { ", editor" * } + if$ + } + if$ +} + +FUNCTION {format.isbn} +{ isbn empty$ + { "" } + { new.block "ISBN " isbn * } + if$ +} + +FUNCTION {format.issn} +{ issn empty$ + { "" } + { new.block "ISSN " issn * } + if$ +} + +FUNCTION {format.url} +{ url empty$ + { "" } + { new.block "URL \url{" url * "}" * } + if$ +} + +FUNCTION {format.doi} +{ doi empty$ + { "" } + { new.block "\doi{" doi * "}" * } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +FUNCTION {format.full.names} +{'s := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}" format.name$ 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {author.editor.full} +{ author empty$ + { editor empty$ + { "" } + { editor format.full.names } + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {author.full} +{ author empty$ + { "" } + { author format.full.names } + if$ +} + +FUNCTION {editor.full} +{ editor empty$ + { "" } + { editor format.full.names } + if$ +} + +FUNCTION {make.full.names} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.full + { type$ "proceedings" = + 'editor.full + 'author.full + if$ + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[" write$ + label write$ + ")" make.full.names duplicate$ short.list = + { pop$ } + { * } + if$ + "]{" * write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {n.dashify} +{ 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { t #1 #2 substring$ "--" = not + { "--" * + t #2 global.max$ substring$ 't := + } + { { t #1 #1 substring$ "-" = } + { "-" * + t #2 global.max$ substring$ 't := + } + while$ + } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + +FUNCTION {format.date} +{ year duplicate$ empty$ + { "empty year in " cite$ * warning$ + pop$ "" } + 'skip$ + if$ + month empty$ + 'skip$ + { month + " " * swap$ * + } + if$ + extra.label * +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + if$ +} + +INTEGERS { multiresult } + +FUNCTION {multi.page.check} +{ 't := + #0 'multiresult := + { multiresult not + t empty$ not + and + } + { t #1 #1 substring$ + duplicate$ "-" = + swap$ duplicate$ "," = + swap$ "+" = + or or + { #1 'multiresult := } + { t #2 global.max$ substring$ 't := } + if$ + } + while$ + multiresult +} + +FUNCTION {format.pages} +{ pages empty$ + { "" } + { pages multi.page.check + { "pages" pages n.dashify tie.or.space.connect } + { "page" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.eid} +{ eid empty$ + { "" } + { "art." eid tie.or.space.connect } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "\penalty0 (" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":\penalty0 " * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.vol.num.eid} +{ volume field.or.null + number empty$ + 'skip$ + { "\penalty0 (" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + eid empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.eid } + { ":\penalty0 " * eid * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize * } + { "In " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} + +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 relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In \emph{" journal * "}" * } + if$ + } + { "In " } + if$ + " \citet{" * crossref * "}" * +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "\emph{" * series * "}" * } + if$ + } + 'skip$ + if$ + } + 'skip$ + if$ + " \citet{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "In \emph{" booktitle * "}" * } + if$ + } + { "In " } + if$ + } + { "In " } + if$ + " \citet{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + eid empty$ + { format.vol.num.pages output } + { format.vol.num.eid output } + if$ + format.date "year" output.check + } + { format.article.crossref output.nonnull + eid empty$ + { format.pages output } + { format.eid output } + if$ + } + if$ + format.issn output + format.doi output + format.url output + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.isbn output + format.doi output + format.url output + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + format.isbn output + format.doi output + format.url output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.isbn output + format.doi output + format.url output + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.isbn output + format.doi output + format.url output + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + format.isbn output + format.doi output + format.url output + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output + new.block + format.btitle "title" output.check + organization address new.block.checkb + organization output + address output + format.edition output + format.date output + format.url output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + format.url output + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + format.issn output + format.url output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + format.url output + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors output + editor format.key output + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address output + format.date "year" output.check + new.sentence + organization output + publisher output + format.isbn output + format.doi output + format.url output + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + format.url output + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + format.url output + fin.entry +} + +FUNCTION {default.type} { misc } + + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sept."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + + + +MACRO {acmcs} {"ACM Comput. Surv."} + +MACRO {acta} {"Acta Inf."} + +MACRO {cacm} {"Commun. ACM"} + +MACRO {ibmjrd} {"IBM J. Res. Dev."} + +MACRO {ibmsj} {"IBM Syst.~J."} + +MACRO {ieeese} {"IEEE Trans. Softw. Eng."} + +MACRO {ieeetc} {"IEEE Trans. Comput."} + +MACRO {ieeetcad} + {"IEEE Trans. Comput.-Aided Design Integrated Circuits"} + +MACRO {ipl} {"Inf. Process. Lett."} + +MACRO {jacm} {"J.~ACM"} + +MACRO {jcss} {"J.~Comput. Syst. Sci."} + +MACRO {scp} {"Sci. Comput. Programming"} + +MACRO {sicomp} {"SIAM J. Comput."} + +MACRO {tocs} {"ACM Trans. Comput. Syst."} + +MACRO {tods} {"ACM Trans. Database Syst."} + +MACRO {tog} {"ACM Trans. Gr."} + +MACRO {toms} {"ACM Trans. Math. Softw."} + +MACRO {toois} {"ACM Trans. Office Inf. Syst."} + +MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."} + +MACRO {tcs} {"Theoretical Comput. Sci."} + + +READ + +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +FUNCTION {format.lab.names} +{ 's := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * s #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.key.organization.label} +{ author empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + 'key + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.short.authors} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + 'short.list := +} + +FUNCTION {calc.label} +{ calc.short.authors + short.list + "(" + * + year duplicate$ empty$ + short.list key field.or.null = or + { pop$ "" } + 'skip$ + if$ + * + 'label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { + s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't := + nameptr #1 > + { + " " * + namesleft #1 = t "others" = and + { "zzzzz" * } + { numnames #2 > nameptr #2 = and + { "zz" * year field.or.null * " " * } + 'skip$ + if$ + t sortify * + } + if$ + } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} + +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { author sort.format.names } + 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$ +} + +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$ +} + +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$ +} + + +FUNCTION {presort} +{ calc.label + label sortify + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + cite$ + * + #1 entry.max$ substring$ + 'sort.label := + sort.label * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label last.label next.extra } + +INTEGERS { longest.label.width last.extra.num number.label } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'longest.label.width := + #0 'last.extra.num := + #0 'number.label := +} + +FUNCTION {forward.pass} +{ last.label label = + { last.extra.num #1 + 'last.extra.num := + last.extra.num int.to.chr$ 'extra.label := + } + { "a" chr.to.int$ 'last.extra.num := + "" 'extra.label := + label 'last.label := + } + if$ + number.label #1 + 'number.label := +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + extra.label 'next.extra := + extra.label + duplicate$ empty$ + 'skip$ + { "{\natexlab{" swap$ * "}}" * } + if$ + 'extra.label := + label extra.label * 'label := +} + +EXECUTE {initialize.longest.label} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +FUNCTION {bib.sort.order} +{ sort.label 'sort.key$ := +} + +ITERATE {bib.sort.order} + +SORT + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" number.label int.to.str$ * "}" * + write$ newline$ + "\providecommand{\natexlab}[1]{#1}" + write$ newline$ + "\providecommand{\url}[1]{\texttt{#1}}" + write$ newline$ + "\expandafter\ifx\csname urlstyle\endcsname\relax" + write$ newline$ + " \providecommand{\doi}[1]{doi: #1}\else" + write$ newline$ + " \providecommand{\doi}{doi: \begingroup \urlstyle{rm}\Url}\fi" + write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/abstract.txt b/abstract.txt new file mode 100644 index 0000000..9078926 --- /dev/null +++ b/abstract.txt @@ -0,0 +1,28 @@ +In the classical experimental design setting, an experimenter E has access to +a population of n potential experiment subjects each associated +with a vector of features x_i. Conducting an experiment with subject i +reveals an unknown value y_i E. E typically assumes some hypothetical +relationship between x_i and y_i, e.g., y_i = β*x_i, and estimates β from +experiments, e.g., through linear regression. As a proxy for various practical +constraints, E may select only a subset of subjects on which to conduct the +experiment. + +We initiate the study of budgeted mechanisms for experimental design. In +this setting, E has a budget B. Each subject i declares an associated cost +c_i to be part of the experiment, and must be paid at least her cost. In +particular, the Experimental Design Problem (EDP) is to find a set S of subjects +for the experiment that maximizes V(S) = log det(I_d + \sum_{i\in S} x_i x_i^T ) +under the constraint \sum_{i\in S} c_i ≤ B; our objective function corresponds to the information +gain in parameter β that is learned through linear regression methods, and +is related to the so-called D-optimality criterion. Further, the subjects are +strategic and may lie about their costs. Thus, we need to design a mechanism +for EDP with suitable properties. + +We present a deterministic, polynomial time, budget feasible mechanism +scheme, that is approximately truthful and yields a constant (= 12.98) factor +approximation to EDP. By applying previous work on budget feasible mechanisms +with a submodular objective, one could only have derived either an +exponential time deterministic mechanism or a randomized polynomial time +mechanism. We also establish that no truthful, budget-feasible mechanism is +possible within a factor 2 approximation, and show how to generalize our approach +to a wide class of learning problems, beyond linear regression. diff --git a/abstract_latin.tex b/abstract_latin.tex new file mode 100644 index 0000000..04ec9fe --- /dev/null +++ b/abstract_latin.tex @@ -0,0 +1,27 @@ +\documentclass{llncs} +\usepackage[numbers]{natbib} +\usepackage[utf8]{inputenc} +\usepackage{amsmath,amsfonts} +\usepackage{algorithm, algpseudocode} +\usepackage{bbm,color,verbatim} +\input{definitions} +\usepackage[pagebackref=true,breaklinks=true,colorlinks=true]{hyperref} +\title{Budget Feasible Mechanisms\\ for Experimental Design} +\author{ + Thibaut Horel\inst{1} + \and + Stratis Ioannidis\inst{2} + \and + S. Muthukrishnan\inst{3} +} +\institute{Harvard University, \email{thibaut.horel@normalesup.org} + \and + Technicolor, \email{stratis.ioannidis@technicolor.com} + \and + Rutgers University, \email{muthu@cs.rutgers.edu} +} +\begin{document} +\maketitle +\vspace{2em} +\input{abstract} +\end{document} diff --git a/approximation.tex b/approximation.tex index 4978279..3e3f482 100755 --- a/approximation.tex +++ b/approximation.tex @@ -47,7 +47,7 @@ expectation of $V$ under the distribution $P_\mathcal{N}^\lambda$: F(\lambda) \defeq \mathbb{E}_{S\sim P_\mathcal{N}^\lambda}\big[V(S)\big] % = \sum_{S\subseteq\mathcal{N}} P_\mathcal{N}^\lambda(S) V(S) -= \mathbb{E}_{S\sim P_\mathcal{N}^\lambda}\left[ \log\det\left( I_d + \sum_{i\in S} x_i\T{x_i}\right) \right],\qquad \lambda\in[0,1]^n. += \mathbb{E}_{S\sim P_\mathcal{N}^\lambda}\left[ \log\det\left( I_d + \sum_{i\in S} x_i\T{x_i}\right) \right],\quad \lambda\in[0,1]^n. \end{equation} Function $F$ is an extension of $V$ to the domain $[0,1]^n$, as it equals $V$ on integer inputs: $F(\id_S) = V(S)$ for all $S\subseteq\mathcal{N}$, where $\id_S$ denotes the indicator vector of $S$. %\citeN{pipage} have shown how to use this extension to obtain approximation guarantees for an interesting class of optimization problems through the \emph{pipage rounding} framework, which has been successfully applied in \citeN{chen, singer-influence}. @@ -55,9 +55,12 @@ Contrary to problems such as \textsc{Knapsack}, the multi-linear extension \eqref{eq:multi-linear} cannot be optimized in polynomial time for the value function $V$ we study here, given by \eqref{modified}. Hence, we introduce an extension $L:[0,1]^n\to\reals$ s.t.~ \begin{equation}\label{eq:our-relaxation} -\quad L(\lambda) \defeq -\log\det\left(I_d + \sum_{i\in\mathcal{N}} \lambda_i x_i\T{x_i}\right)= -\log\det\left(\mathbb{E}_{S\sim P_\mathcal{N}^\lambda}\bigg[I_d + \sum_{i\in S} x_i\T{x_i} \bigg]\right), \qquad \lambda\in[0,1]^n. + \begin{split} + L(\lambda) &\defeq +\log\det\left(I_d + \sum_{i\in\mathcal{N}} \lambda_i x_i\T{x_i}\right)\\ +&= \log\det\left(\mathbb{E}_{S\sim P_\mathcal{N}^\lambda}\bigg[I_d + \sum_{i\in S} x_i\T{x_i} \bigg]\right), +\quad \lambda\in[0,1]^n. +\end{split} \end{equation} Note that $L$ also extends $V$, and follows naturally from the multi-linear extension by swapping the expectation and $\log \det$ in \eqref{eq:multi-linear}. Crucially, it is \emph{strictly concave} on $[0,1]^n$, a fact that we exploit in the next section to maximize $L$ subject to the budget constraint in polynomial time. diff --git a/definitions.tex b/definitions.tex index 7d30dcd..236c368 100755 --- a/definitions.tex +++ b/definitions.tex @@ -1,14 +1,14 @@ \newcommand{\mutual}{\ensuremath{{I}}} \newcommand{\entropy}{\ensuremath{{H}}} -\newtheorem{lemma}{Lemma} -\newtheorem{proposition}{Proposition} -\newtheorem{fact}{Fact} -\newtheorem{example}{Example} -\newtheorem{prop}{Proposition} -\newtheorem{theorem}{Theorem} -\newtheorem{corollary}{Corollary} -\theoremstyle{definition} -\newtheorem{definition}{Definition} +%\newtheorem{lemma}{Lemma} +%\newtheorem{proposition}{Proposition} +%\newtheorem{fact}{Fact} +%\newtheorem{example}{Example} +%\newtheorem{prop}{Proposition} +%\newtheorem{theorem}{Theorem} +%\newtheorem{corollary}{Corollary} +%\theoremstyle{definition} +%\newtheorem{definition}{Definition} \newcommand{\citeN}{\citet} %\newcommand*{\defeq}{\stackrel{\text{def}}{=}} \newcommand*{\defeq}{\equiv} @@ -36,7 +36,8 @@ \newcommand{\junk}[1]{} \newcommand{\edp}{{\tt EDP}} \newcommand{\dom}{\mathcal{D}} -\newcommand{\note}[1]{\textcolor{red}{#1}} +\newcommand{\qedhere}{\qed} +%\newcommand{\note}[1]{\textcolor{red}{#1}} \algrenewcommand\algorithmicrequire{\textbf{Input:}} \algrenewcommand\algorithmicensure{\textbf{Output:}} @@ -42,7 +42,7 @@ We present a polynomial time mechanism scheme for \SEDP{} that is approximately In contrast to this, we show that no truthful, budget-feasible mechanisms are possible for \SEDP{} within a factor 2 approximation. \smallskip -We note that the objective \eqref{obj} is submodular. Using this fact, applying previous results on budget feasible mechanism design under general submodular objectives~\cite{singer-mechanisms,chen} would yield either a deterministic, truthful, constant-approximation mechanism that requires exponential time, or a non-deterministic, (universally) truthful, poly-time mechanism that yields a constant approximation ratio only \emph{in expectation} (\emph{i.e.}, its approximation guarantee for a given instance may in fact be unbounded). +We note that the objective \eqref{obj} is submodular. Using this fact, applying previous results on budget feasible mechanism design under general submodular objectives~\cite{singer-mechanisms,chen} would yield either a deterministic, truthful, constant-approximation mechanism that requires exponential time, or a non-determi\-nis\-tic, (universally) truthful, poly-time mechanism that yields a constant approximation ratio only \emph{in expectation} (\emph{i.e.}, its approximation guarantee for a given instance may in fact be unbounded). \end{itemize} diff --git a/llncs.cls b/llncs.cls new file mode 100644 index 0000000..1d49f3d --- /dev/null +++ b/llncs.cls @@ -0,0 +1,1207 @@ +% LLNCS DOCUMENT CLASS -- version 2.17 (12-Jul-2010)
+% Springer Verlag LaTeX2e support for Lecture Notes in Computer Science
+%
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+\NeedsTeXFormat{LaTeX2e}[1995/12/01]
+\ProvidesClass{llncs}[2010/07/12 v2.17
+^^J LaTeX document class for Lecture Notes in Computer Science]
+% Options
+\let\if@envcntreset\iffalse
+\DeclareOption{envcountreset}{\let\if@envcntreset\iftrue}
+\DeclareOption{citeauthoryear}{\let\citeauthoryear=Y}
+\DeclareOption{oribibl}{\let\oribibl=Y}
+\let\if@custvec\iftrue
+\DeclareOption{orivec}{\let\if@custvec\iffalse}
+\let\if@envcntsame\iffalse
+\DeclareOption{envcountsame}{\let\if@envcntsame\iftrue}
+\let\if@envcntsect\iffalse
+\DeclareOption{envcountsect}{\let\if@envcntsect\iftrue}
+\let\if@runhead\iffalse
+\DeclareOption{runningheads}{\let\if@runhead\iftrue}
+
+\let\if@openright\iftrue
+\let\if@openbib\iffalse
+\DeclareOption{openbib}{\let\if@openbib\iftrue}
+
+% languages
+\let\switcht@@therlang\relax
+\def\ds@deutsch{\def\switcht@@therlang{\switcht@deutsch}}
+\def\ds@francais{\def\switcht@@therlang{\switcht@francais}}
+
+\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
+
+\ProcessOptions
+
+\LoadClass[twoside]{article}
+\RequirePackage{multicol} % needed for the list of participants, index
+\RequirePackage{aliascnt}
+
+\setlength{\textwidth}{12.2cm}
+\setlength{\textheight}{19.3cm}
+\renewcommand\@pnumwidth{2em}
+\renewcommand\@tocrmarg{3.5em}
+%
+\def\@dottedtocline#1#2#3#4#5{%
+ \ifnum #1>\c@tocdepth \else
+ \vskip \z@ \@plus.2\p@
+ {\leftskip #2\relax \rightskip \@tocrmarg \advance\rightskip by 0pt plus 2cm
+ \parfillskip -\rightskip \pretolerance=10000
+ \parindent #2\relax\@afterindenttrue
+ \interlinepenalty\@M
+ \leavevmode
+ \@tempdima #3\relax
+ \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip
+ {#4}\nobreak
+ \leaders\hbox{$\m@th
+ \mkern \@dotsep mu\hbox{.}\mkern \@dotsep
+ mu$}\hfill
+ \nobreak
+ \hb@xt@\@pnumwidth{\hfil\normalfont \normalcolor #5}%
+ \par}%
+ \fi}
+%
+\def\switcht@albion{%
+\def\abstractname{Abstract.}
+\def\ackname{Acknowledgement.}
+\def\andname{and}
+\def\lastandname{\unskip, and}
+\def\appendixname{Appendix}
+\def\chaptername{Chapter}
+\def\claimname{Claim}
+\def\conjecturename{Conjecture}
+\def\contentsname{Table of Contents}
+\def\corollaryname{Corollary}
+\def\definitionname{Definition}
+\def\examplename{Example}
+\def\exercisename{Exercise}
+\def\figurename{Fig.}
+\def\keywordname{{\bf Keywords:}}
+\def\indexname{Index}
+\def\lemmaname{Lemma}
+\def\contriblistname{List of Contributors}
+\def\listfigurename{List of Figures}
+\def\listtablename{List of Tables}
+\def\mailname{{\it Correspondence to\/}:}
+\def\noteaddname{Note added in proof}
+\def\notename{Note}
+\def\partname{Part}
+\def\problemname{Problem}
+\def\proofname{Proof}
+\def\propertyname{Property}
+\def\propositionname{Proposition}
+\def\questionname{Question}
+\def\remarkname{Remark}
+\def\seename{see}
+\def\solutionname{Solution}
+\def\subclassname{{\it Subject Classifications\/}:}
+\def\tablename{Table}
+\def\theoremname{Theorem}}
+\switcht@albion
+% Names of theorem like environments are already defined
+% but must be translated if another language is chosen
+%
+% French section
+\def\switcht@francais{%\typeout{On parle francais.}%
+ \def\abstractname{R\'esum\'e.}%
+ \def\ackname{Remerciements.}%
+ \def\andname{et}%
+ \def\lastandname{ et}%
+ \def\appendixname{Appendice}
+ \def\chaptername{Chapitre}%
+ \def\claimname{Pr\'etention}%
+ \def\conjecturename{Hypoth\`ese}%
+ \def\contentsname{Table des mati\`eres}%
+ \def\corollaryname{Corollaire}%
+ \def\definitionname{D\'efinition}%
+ \def\examplename{Exemple}%
+ \def\exercisename{Exercice}%
+ \def\figurename{Fig.}%
+ \def\keywordname{{\bf Mots-cl\'e:}}
+ \def\indexname{Index}
+ \def\lemmaname{Lemme}%
+ \def\contriblistname{Liste des contributeurs}
+ \def\listfigurename{Liste des figures}%
+ \def\listtablename{Liste des tables}%
+ \def\mailname{{\it Correspondence to\/}:}
+ \def\noteaddname{Note ajout\'ee \`a l'\'epreuve}%
+ \def\notename{Remarque}%
+ \def\partname{Partie}%
+ \def\problemname{Probl\`eme}%
+ \def\proofname{Preuve}%
+ \def\propertyname{Caract\'eristique}%
+%\def\propositionname{Proposition}%
+ \def\questionname{Question}%
+ \def\remarkname{Remarque}%
+ \def\seename{voir}
+ \def\solutionname{Solution}%
+ \def\subclassname{{\it Subject Classifications\/}:}
+ \def\tablename{Tableau}%
+ \def\theoremname{Th\'eor\`eme}%
+}
+%
+% German section
+\def\switcht@deutsch{%\typeout{Man spricht deutsch.}%
+ \def\abstractname{Zusammenfassung.}%
+ \def\ackname{Danksagung.}%
+ \def\andname{und}%
+ \def\lastandname{ und}%
+ \def\appendixname{Anhang}%
+ \def\chaptername{Kapitel}%
+ \def\claimname{Behauptung}%
+ \def\conjecturename{Hypothese}%
+ \def\contentsname{Inhaltsverzeichnis}%
+ \def\corollaryname{Korollar}%
+%\def\definitionname{Definition}%
+ \def\examplename{Beispiel}%
+ \def\exercisename{\"Ubung}%
+ \def\figurename{Abb.}%
+ \def\keywordname{{\bf Schl\"usselw\"orter:}}
+ \def\indexname{Index}
+%\def\lemmaname{Lemma}%
+ \def\contriblistname{Mitarbeiter}
+ \def\listfigurename{Abbildungsverzeichnis}%
+ \def\listtablename{Tabellenverzeichnis}%
+ \def\mailname{{\it Correspondence to\/}:}
+ \def\noteaddname{Nachtrag}%
+ \def\notename{Anmerkung}%
+ \def\partname{Teil}%
+%\def\problemname{Problem}%
+ \def\proofname{Beweis}%
+ \def\propertyname{Eigenschaft}%
+%\def\propositionname{Proposition}%
+ \def\questionname{Frage}%
+ \def\remarkname{Anmerkung}%
+ \def\seename{siehe}
+ \def\solutionname{L\"osung}%
+ \def\subclassname{{\it Subject Classifications\/}:}
+ \def\tablename{Tabelle}%
+%\def\theoremname{Theorem}%
+}
+
+% Ragged bottom for the actual page
+\def\thisbottomragged{\def\@textbottom{\vskip\z@ plus.0001fil
+\global\let\@textbottom\relax}}
+
+\renewcommand\small{%
+ \@setfontsize\small\@ixpt{11}%
+ \abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@
+ \abovedisplayshortskip \z@ \@plus2\p@
+ \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@
+ \def\@listi{\leftmargin\leftmargini
+ \parsep 0\p@ \@plus1\p@ \@minus\p@
+ \topsep 8\p@ \@plus2\p@ \@minus4\p@
+ \itemsep0\p@}%
+ \belowdisplayskip \abovedisplayskip
+}
+
+\frenchspacing
+\widowpenalty=10000
+\clubpenalty=10000
+
+\setlength\oddsidemargin {63\p@}
+\setlength\evensidemargin {63\p@}
+\setlength\marginparwidth {90\p@}
+
+\setlength\headsep {16\p@}
+
+\setlength\footnotesep{7.7\p@}
+\setlength\textfloatsep{8mm\@plus 2\p@ \@minus 4\p@}
+\setlength\intextsep {8mm\@plus 2\p@ \@minus 2\p@}
+
+\setcounter{secnumdepth}{2}
+
+\newcounter {chapter}
+\renewcommand\thechapter {\@arabic\c@chapter}
+
+\newif\if@mainmatter \@mainmattertrue
+\newcommand\frontmatter{\cleardoublepage
+ \@mainmatterfalse\pagenumbering{Roman}}
+\newcommand\mainmatter{\cleardoublepage
+ \@mainmattertrue\pagenumbering{arabic}}
+\newcommand\backmatter{\if@openright\cleardoublepage\else\clearpage\fi
+ \@mainmatterfalse}
+
+\renewcommand\part{\cleardoublepage
+ \thispagestyle{empty}%
+ \if@twocolumn
+ \onecolumn
+ \@tempswatrue
+ \else
+ \@tempswafalse
+ \fi
+ \null\vfil
+ \secdef\@part\@spart}
+
+\def\@part[#1]#2{%
+ \ifnum \c@secnumdepth >-2\relax
+ \refstepcounter{part}%
+ \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
+ \else
+ \addcontentsline{toc}{part}{#1}%
+ \fi
+ \markboth{}{}%
+ {\centering
+ \interlinepenalty \@M
+ \normalfont
+ \ifnum \c@secnumdepth >-2\relax
+ \huge\bfseries \partname~\thepart
+ \par
+ \vskip 20\p@
+ \fi
+ \Huge \bfseries #2\par}%
+ \@endpart}
+\def\@spart#1{%
+ {\centering
+ \interlinepenalty \@M
+ \normalfont
+ \Huge \bfseries #1\par}%
+ \@endpart}
+\def\@endpart{\vfil\newpage
+ \if@twoside
+ \null
+ \thispagestyle{empty}%
+ \newpage
+ \fi
+ \if@tempswa
+ \twocolumn
+ \fi}
+
+\newcommand\chapter{\clearpage
+ \thispagestyle{empty}%
+ \global\@topnum\z@
+ \@afterindentfalse
+ \secdef\@chapter\@schapter}
+\def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne
+ \if@mainmatter
+ \refstepcounter{chapter}%
+ \typeout{\@chapapp\space\thechapter.}%
+ \addcontentsline{toc}{chapter}%
+ {\protect\numberline{\thechapter}#1}%
+ \else
+ \addcontentsline{toc}{chapter}{#1}%
+ \fi
+ \else
+ \addcontentsline{toc}{chapter}{#1}%
+ \fi
+ \chaptermark{#1}%
+ \addtocontents{lof}{\protect\addvspace{10\p@}}%
+ \addtocontents{lot}{\protect\addvspace{10\p@}}%
+ \if@twocolumn
+ \@topnewpage[\@makechapterhead{#2}]%
+ \else
+ \@makechapterhead{#2}%
+ \@afterheading
+ \fi}
+\def\@makechapterhead#1{%
+% \vspace*{50\p@}%
+ {\centering
+ \ifnum \c@secnumdepth >\m@ne
+ \if@mainmatter
+ \large\bfseries \@chapapp{} \thechapter
+ \par\nobreak
+ \vskip 20\p@
+ \fi
+ \fi
+ \interlinepenalty\@M
+ \Large \bfseries #1\par\nobreak
+ \vskip 40\p@
+ }}
+\def\@schapter#1{\if@twocolumn
+ \@topnewpage[\@makeschapterhead{#1}]%
+ \else
+ \@makeschapterhead{#1}%
+ \@afterheading
+ \fi}
+\def\@makeschapterhead#1{%
+% \vspace*{50\p@}%
+ {\centering
+ \normalfont
+ \interlinepenalty\@M
+ \Large \bfseries #1\par\nobreak
+ \vskip 40\p@
+ }}
+
+\renewcommand\section{\@startsection{section}{1}{\z@}%
+ {-18\p@ \@plus -4\p@ \@minus -4\p@}%
+ {12\p@ \@plus 4\p@ \@minus 4\p@}%
+ {\normalfont\large\bfseries\boldmath
+ \rightskip=\z@ \@plus 8em\pretolerance=10000 }}
+\renewcommand\subsection{\@startsection{subsection}{2}{\z@}%
+ {-18\p@ \@plus -4\p@ \@minus -4\p@}%
+ {8\p@ \@plus 4\p@ \@minus 4\p@}%
+ {\normalfont\normalsize\bfseries\boldmath
+ \rightskip=\z@ \@plus 8em\pretolerance=10000 }}
+\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}%
+ {-18\p@ \@plus -4\p@ \@minus -4\p@}%
+ {-0.5em \@plus -0.22em \@minus -0.1em}%
+ {\normalfont\normalsize\bfseries\boldmath}}
+\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
+ {-12\p@ \@plus -4\p@ \@minus -4\p@}%
+ {-0.5em \@plus -0.22em \@minus -0.1em}%
+ {\normalfont\normalsize\itshape}}
+\renewcommand\subparagraph[1]{\typeout{LLNCS warning: You should not use
+ \string\subparagraph\space with this class}\vskip0.5cm
+You should not use \verb|\subparagraph| with this class.\vskip0.5cm}
+
+\DeclareMathSymbol{\Gamma}{\mathalpha}{letters}{"00}
+\DeclareMathSymbol{\Delta}{\mathalpha}{letters}{"01}
+\DeclareMathSymbol{\Theta}{\mathalpha}{letters}{"02}
+\DeclareMathSymbol{\Lambda}{\mathalpha}{letters}{"03}
+\DeclareMathSymbol{\Xi}{\mathalpha}{letters}{"04}
+\DeclareMathSymbol{\Pi}{\mathalpha}{letters}{"05}
+\DeclareMathSymbol{\Sigma}{\mathalpha}{letters}{"06}
+\DeclareMathSymbol{\Upsilon}{\mathalpha}{letters}{"07}
+\DeclareMathSymbol{\Phi}{\mathalpha}{letters}{"08}
+\DeclareMathSymbol{\Psi}{\mathalpha}{letters}{"09}
+\DeclareMathSymbol{\Omega}{\mathalpha}{letters}{"0A}
+
+\let\footnotesize\small
+
+\if@custvec
+\def\vec#1{\mathchoice{\mbox{\boldmath$\displaystyle#1$}}
+{\mbox{\boldmath$\textstyle#1$}}
+{\mbox{\boldmath$\scriptstyle#1$}}
+{\mbox{\boldmath$\scriptscriptstyle#1$}}}
+\fi
+
+\def\squareforqed{\hbox{\rlap{$\sqcap$}$\sqcup$}}
+\def\qed{\ifmmode\squareforqed\else{\unskip\nobreak\hfil
+\penalty50\hskip1em\null\nobreak\hfil\squareforqed
+\parfillskip=0pt\finalhyphendemerits=0\endgraf}\fi}
+
+\def\getsto{\mathrel{\mathchoice {\vcenter{\offinterlineskip
+\halign{\hfil
+$\displaystyle##$\hfil\cr\gets\cr\to\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr\gets
+\cr\to\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr\gets
+\cr\to\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr
+\gets\cr\to\cr}}}}}
+\def\lid{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil
+$\displaystyle##$\hfil\cr<\cr\noalign{\vskip1.2pt}=\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr<\cr
+\noalign{\vskip1.2pt}=\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr<\cr
+\noalign{\vskip1pt}=\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr
+<\cr
+\noalign{\vskip0.9pt}=\cr}}}}}
+\def\gid{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil
+$\displaystyle##$\hfil\cr>\cr\noalign{\vskip1.2pt}=\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr>\cr
+\noalign{\vskip1.2pt}=\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr>\cr
+\noalign{\vskip1pt}=\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr
+>\cr
+\noalign{\vskip0.9pt}=\cr}}}}}
+\def\grole{\mathrel{\mathchoice {\vcenter{\offinterlineskip
+\halign{\hfil
+$\displaystyle##$\hfil\cr>\cr\noalign{\vskip-1pt}<\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr
+>\cr\noalign{\vskip-1pt}<\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr
+>\cr\noalign{\vskip-0.8pt}<\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr
+>\cr\noalign{\vskip-0.3pt}<\cr}}}}}
+\def\bbbr{{\rm I\!R}} %reelle Zahlen
+\def\bbbm{{\rm I\!M}}
+\def\bbbn{{\rm I\!N}} %natuerliche Zahlen
+\def\bbbf{{\rm I\!F}}
+\def\bbbh{{\rm I\!H}}
+\def\bbbk{{\rm I\!K}}
+\def\bbbp{{\rm I\!P}}
+\def\bbbone{{\mathchoice {\rm 1\mskip-4mu l} {\rm 1\mskip-4mu l}
+{\rm 1\mskip-4.5mu l} {\rm 1\mskip-5mu l}}}
+\def\bbbc{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm C$}\hbox{\hbox
+to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}}
+{\setbox0=\hbox{$\textstyle\rm C$}\hbox{\hbox
+to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}}
+{\setbox0=\hbox{$\scriptstyle\rm C$}\hbox{\hbox
+to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}}
+{\setbox0=\hbox{$\scriptscriptstyle\rm C$}\hbox{\hbox
+to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}}}}
+\def\bbbq{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm
+Q$}\hbox{\raise
+0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.8\ht0\hss}\box0}}
+{\setbox0=\hbox{$\textstyle\rm Q$}\hbox{\raise
+0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.8\ht0\hss}\box0}}
+{\setbox0=\hbox{$\scriptstyle\rm Q$}\hbox{\raise
+0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.7\ht0\hss}\box0}}
+{\setbox0=\hbox{$\scriptscriptstyle\rm Q$}\hbox{\raise
+0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.7\ht0\hss}\box0}}}}
+\def\bbbt{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm
+T$}\hbox{\hbox to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}}
+{\setbox0=\hbox{$\textstyle\rm T$}\hbox{\hbox
+to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}}
+{\setbox0=\hbox{$\scriptstyle\rm T$}\hbox{\hbox
+to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}}
+{\setbox0=\hbox{$\scriptscriptstyle\rm T$}\hbox{\hbox
+to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}}}}
+\def\bbbs{{\mathchoice
+{\setbox0=\hbox{$\displaystyle \rm S$}\hbox{\raise0.5\ht0\hbox
+to0pt{\kern0.35\wd0\vrule height0.45\ht0\hss}\hbox
+to0pt{\kern0.55\wd0\vrule height0.5\ht0\hss}\box0}}
+{\setbox0=\hbox{$\textstyle \rm S$}\hbox{\raise0.5\ht0\hbox
+to0pt{\kern0.35\wd0\vrule height0.45\ht0\hss}\hbox
+to0pt{\kern0.55\wd0\vrule height0.5\ht0\hss}\box0}}
+{\setbox0=\hbox{$\scriptstyle \rm S$}\hbox{\raise0.5\ht0\hbox
+to0pt{\kern0.35\wd0\vrule height0.45\ht0\hss}\raise0.05\ht0\hbox
+to0pt{\kern0.5\wd0\vrule height0.45\ht0\hss}\box0}}
+{\setbox0=\hbox{$\scriptscriptstyle\rm S$}\hbox{\raise0.5\ht0\hbox
+to0pt{\kern0.4\wd0\vrule height0.45\ht0\hss}\raise0.05\ht0\hbox
+to0pt{\kern0.55\wd0\vrule height0.45\ht0\hss}\box0}}}}
+\def\bbbz{{\mathchoice {\hbox{$\mathsf\textstyle Z\kern-0.4em Z$}}
+{\hbox{$\mathsf\textstyle Z\kern-0.4em Z$}}
+{\hbox{$\mathsf\scriptstyle Z\kern-0.3em Z$}}
+{\hbox{$\mathsf\scriptscriptstyle Z\kern-0.2em Z$}}}}
+
+\let\ts\,
+
+\setlength\leftmargini {17\p@}
+\setlength\leftmargin {\leftmargini}
+\setlength\leftmarginii {\leftmargini}
+\setlength\leftmarginiii {\leftmargini}
+\setlength\leftmarginiv {\leftmargini}
+\setlength \labelsep {.5em}
+\setlength \labelwidth{\leftmargini}
+\addtolength\labelwidth{-\labelsep}
+
+\def\@listI{\leftmargin\leftmargini
+ \parsep 0\p@ \@plus1\p@ \@minus\p@
+ \topsep 8\p@ \@plus2\p@ \@minus4\p@
+ \itemsep0\p@}
+\let\@listi\@listI
+\@listi
+\def\@listii {\leftmargin\leftmarginii
+ \labelwidth\leftmarginii
+ \advance\labelwidth-\labelsep
+ \topsep 0\p@ \@plus2\p@ \@minus\p@}
+\def\@listiii{\leftmargin\leftmarginiii
+ \labelwidth\leftmarginiii
+ \advance\labelwidth-\labelsep
+ \topsep 0\p@ \@plus\p@\@minus\p@
+ \parsep \z@
+ \partopsep \p@ \@plus\z@ \@minus\p@}
+
+\renewcommand\labelitemi{\normalfont\bfseries --}
+\renewcommand\labelitemii{$\m@th\bullet$}
+
+\setlength\arraycolsep{1.4\p@}
+\setlength\tabcolsep{1.4\p@}
+
+\def\tableofcontents{\chapter*{\contentsname\@mkboth{{\contentsname}}%
+ {{\contentsname}}}
+ \def\authcount##1{\setcounter{auco}{##1}\setcounter{@auth}{1}}
+ \def\lastand{\ifnum\value{auco}=2\relax
+ \unskip{} \andname\
+ \else
+ \unskip \lastandname\
+ \fi}%
+ \def\and{\stepcounter{@auth}\relax
+ \ifnum\value{@auth}=\value{auco}%
+ \lastand
+ \else
+ \unskip,
+ \fi}%
+ \@starttoc{toc}\if@restonecol\twocolumn\fi}
+
+\def\l@part#1#2{\addpenalty{\@secpenalty}%
+ \addvspace{2em plus\p@}% % space above part line
+ \begingroup
+ \parindent \z@
+ \rightskip \z@ plus 5em
+ \hrule\vskip5pt
+ \large % same size as for a contribution heading
+ \bfseries\boldmath % set line in boldface
+ \leavevmode % TeX command to enter horizontal mode.
+ #1\par
+ \vskip5pt
+ \hrule
+ \vskip1pt
+ \nobreak % Never break after part entry
+ \endgroup}
+
+\def\@dotsep{2}
+
+\let\phantomsection=\relax
+
+\def\hyperhrefextend{\ifx\hyper@anchor\@undefined\else
+{}\fi}
+
+\def\addnumcontentsmark#1#2#3{%
+\addtocontents{#1}{\protect\contentsline{#2}{\protect\numberline
+ {\thechapter}#3}{\thepage}\hyperhrefextend}}%
+\def\addcontentsmark#1#2#3{%
+\addtocontents{#1}{\protect\contentsline{#2}{#3}{\thepage}\hyperhrefextend}}%
+\def\addcontentsmarkwop#1#2#3{%
+\addtocontents{#1}{\protect\contentsline{#2}{#3}{0}\hyperhrefextend}}%
+
+\def\@adcmk[#1]{\ifcase #1 \or
+\def\@gtempa{\addnumcontentsmark}%
+ \or \def\@gtempa{\addcontentsmark}%
+ \or \def\@gtempa{\addcontentsmarkwop}%
+ \fi\@gtempa{toc}{chapter}%
+}
+\def\addtocmark{%
+\phantomsection
+\@ifnextchar[{\@adcmk}{\@adcmk[3]}%
+}
+
+\def\l@chapter#1#2{\addpenalty{-\@highpenalty}
+ \vskip 1.0em plus 1pt \@tempdima 1.5em \begingroup
+ \parindent \z@ \rightskip \@tocrmarg
+ \advance\rightskip by 0pt plus 2cm
+ \parfillskip -\rightskip \pretolerance=10000
+ \leavevmode \advance\leftskip\@tempdima \hskip -\leftskip
+ {\large\bfseries\boldmath#1}\ifx0#2\hfil\null
+ \else
+ \nobreak
+ \leaders\hbox{$\m@th \mkern \@dotsep mu.\mkern
+ \@dotsep mu$}\hfill
+ \nobreak\hbox to\@pnumwidth{\hss #2}%
+ \fi\par
+ \penalty\@highpenalty \endgroup}
+
+\def\l@title#1#2{\addpenalty{-\@highpenalty}
+ \addvspace{8pt plus 1pt}
+ \@tempdima \z@
+ \begingroup
+ \parindent \z@ \rightskip \@tocrmarg
+ \advance\rightskip by 0pt plus 2cm
+ \parfillskip -\rightskip \pretolerance=10000
+ \leavevmode \advance\leftskip\@tempdima \hskip -\leftskip
+ #1\nobreak
+ \leaders\hbox{$\m@th \mkern \@dotsep mu.\mkern
+ \@dotsep mu$}\hfill
+ \nobreak\hbox to\@pnumwidth{\hss #2}\par
+ \penalty\@highpenalty \endgroup}
+
+\def\l@author#1#2{\addpenalty{\@highpenalty}
+ \@tempdima=15\p@ %\z@
+ \begingroup
+ \parindent \z@ \rightskip \@tocrmarg
+ \advance\rightskip by 0pt plus 2cm
+ \pretolerance=10000
+ \leavevmode \advance\leftskip\@tempdima %\hskip -\leftskip
+ \textit{#1}\par
+ \penalty\@highpenalty \endgroup}
+
+\setcounter{tocdepth}{0}
+\newdimen\tocchpnum
+\newdimen\tocsecnum
+\newdimen\tocsectotal
+\newdimen\tocsubsecnum
+\newdimen\tocsubsectotal
+\newdimen\tocsubsubsecnum
+\newdimen\tocsubsubsectotal
+\newdimen\tocparanum
+\newdimen\tocparatotal
+\newdimen\tocsubparanum
+\tocchpnum=\z@ % no chapter numbers
+\tocsecnum=15\p@ % section 88. plus 2.222pt
+\tocsubsecnum=23\p@ % subsection 88.8 plus 2.222pt
+\tocsubsubsecnum=27\p@ % subsubsection 88.8.8 plus 1.444pt
+\tocparanum=35\p@ % paragraph 88.8.8.8 plus 1.666pt
+\tocsubparanum=43\p@ % subparagraph 88.8.8.8.8 plus 1.888pt
+\def\calctocindent{%
+\tocsectotal=\tocchpnum
+\advance\tocsectotal by\tocsecnum
+\tocsubsectotal=\tocsectotal
+\advance\tocsubsectotal by\tocsubsecnum
+\tocsubsubsectotal=\tocsubsectotal
+\advance\tocsubsubsectotal by\tocsubsubsecnum
+\tocparatotal=\tocsubsubsectotal
+\advance\tocparatotal by\tocparanum}
+\calctocindent
+
+\def\l@section{\@dottedtocline{1}{\tocchpnum}{\tocsecnum}}
+\def\l@subsection{\@dottedtocline{2}{\tocsectotal}{\tocsubsecnum}}
+\def\l@subsubsection{\@dottedtocline{3}{\tocsubsectotal}{\tocsubsubsecnum}}
+\def\l@paragraph{\@dottedtocline{4}{\tocsubsubsectotal}{\tocparanum}}
+\def\l@subparagraph{\@dottedtocline{5}{\tocparatotal}{\tocsubparanum}}
+
+\def\listoffigures{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn
+ \fi\section*{\listfigurename\@mkboth{{\listfigurename}}{{\listfigurename}}}
+ \@starttoc{lof}\if@restonecol\twocolumn\fi}
+\def\l@figure{\@dottedtocline{1}{0em}{1.5em}}
+
+\def\listoftables{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn
+ \fi\section*{\listtablename\@mkboth{{\listtablename}}{{\listtablename}}}
+ \@starttoc{lot}\if@restonecol\twocolumn\fi}
+\let\l@table\l@figure
+
+\renewcommand\listoffigures{%
+ \section*{\listfigurename
+ \@mkboth{\listfigurename}{\listfigurename}}%
+ \@starttoc{lof}%
+ }
+
+\renewcommand\listoftables{%
+ \section*{\listtablename
+ \@mkboth{\listtablename}{\listtablename}}%
+ \@starttoc{lot}%
+ }
+
+\ifx\oribibl\undefined
+\ifx\citeauthoryear\undefined
+\renewenvironment{thebibliography}[1]
+ {\section*{\refname}
+ \def\@biblabel##1{##1.}
+ \small
+ \list{\@biblabel{\@arabic\c@enumiv}}%
+ {\settowidth\labelwidth{\@biblabel{#1}}%
+ \leftmargin\labelwidth
+ \advance\leftmargin\labelsep
+ \if@openbib
+ \advance\leftmargin\bibindent
+ \itemindent -\bibindent
+ \listparindent \itemindent
+ \parsep \z@
+ \fi
+ \usecounter{enumiv}%
+ \let\p@enumiv\@empty
+ \renewcommand\theenumiv{\@arabic\c@enumiv}}%
+ \if@openbib
+ \renewcommand\newblock{\par}%
+ \else
+ \renewcommand\newblock{\hskip .11em \@plus.33em \@minus.07em}%
+ \fi
+ \sloppy\clubpenalty4000\widowpenalty4000%
+ \sfcode`\.=\@m}
+ {\def\@noitemerr
+ {\@latex@warning{Empty `thebibliography' environment}}%
+ \endlist}
+\def\@lbibitem[#1]#2{\item[{[#1]}\hfill]\if@filesw
+ {\let\protect\noexpand\immediate
+ \write\@auxout{\string\bibcite{#2}{#1}}}\fi\ignorespaces}
+\newcount\@tempcntc
+\def\@citex[#1]#2{\if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi
+ \@tempcnta\z@\@tempcntb\m@ne\def\@citea{}\@cite{\@for\@citeb:=#2\do
+ {\@ifundefined
+ {b@\@citeb}{\@citeo\@tempcntb\m@ne\@citea\def\@citea{,}{\bfseries
+ ?}\@warning
+ {Citation `\@citeb' on page \thepage \space undefined}}%
+ {\setbox\z@\hbox{\global\@tempcntc0\csname b@\@citeb\endcsname\relax}%
+ \ifnum\@tempcntc=\z@ \@citeo\@tempcntb\m@ne
+ \@citea\def\@citea{,}\hbox{\csname b@\@citeb\endcsname}%
+ \else
+ \advance\@tempcntb\@ne
+ \ifnum\@tempcntb=\@tempcntc
+ \else\advance\@tempcntb\m@ne\@citeo
+ \@tempcnta\@tempcntc\@tempcntb\@tempcntc\fi\fi}}\@citeo}{#1}}
+\def\@citeo{\ifnum\@tempcnta>\@tempcntb\else
+ \@citea\def\@citea{,\,\hskip\z@skip}%
+ \ifnum\@tempcnta=\@tempcntb\the\@tempcnta\else
+ {\advance\@tempcnta\@ne\ifnum\@tempcnta=\@tempcntb \else
+ \def\@citea{--}\fi
+ \advance\@tempcnta\m@ne\the\@tempcnta\@citea\the\@tempcntb}\fi\fi}
+\else
+\renewenvironment{thebibliography}[1]
+ {\section*{\refname}
+ \small
+ \list{}%
+ {\settowidth\labelwidth{}%
+ \leftmargin\parindent
+ \itemindent=-\parindent
+ \labelsep=\z@
+ \if@openbib
+ \advance\leftmargin\bibindent
+ \itemindent -\bibindent
+ \listparindent \itemindent
+ \parsep \z@
+ \fi
+ \usecounter{enumiv}%
+ \let\p@enumiv\@empty
+ \renewcommand\theenumiv{}}%
+ \if@openbib
+ \renewcommand\newblock{\par}%
+ \else
+ \renewcommand\newblock{\hskip .11em \@plus.33em \@minus.07em}%
+ \fi
+ \sloppy\clubpenalty4000\widowpenalty4000%
+ \sfcode`\.=\@m}
+ {\def\@noitemerr
+ {\@latex@warning{Empty `thebibliography' environment}}%
+ \endlist}
+ \def\@cite#1{#1}%
+ \def\@lbibitem[#1]#2{\item[]\if@filesw
+ {\def\protect##1{\string ##1\space}\immediate
+ \write\@auxout{\string\bibcite{#2}{#1}}}\fi\ignorespaces}
+ \fi
+\else
+\@cons\@openbib@code{\noexpand\small}
+\fi
+
+\def\idxquad{\hskip 10\p@}% space that divides entry from number
+
+\def\@idxitem{\par\hangindent 10\p@}
+
+\def\subitem{\par\setbox0=\hbox{--\enspace}% second order
+ \noindent\hangindent\wd0\box0}% index entry
+
+\def\subsubitem{\par\setbox0=\hbox{--\,--\enspace}% third
+ \noindent\hangindent\wd0\box0}% order index entry
+
+\def\indexspace{\par \vskip 10\p@ plus5\p@ minus3\p@\relax}
+
+\renewenvironment{theindex}
+ {\@mkboth{\indexname}{\indexname}%
+ \thispagestyle{empty}\parindent\z@
+ \parskip\z@ \@plus .3\p@\relax
+ \let\item\par
+ \def\,{\relax\ifmmode\mskip\thinmuskip
+ \else\hskip0.2em\ignorespaces\fi}%
+ \normalfont\small
+ \begin{multicols}{2}[\@makeschapterhead{\indexname}]%
+ }
+ {\end{multicols}}
+
+\renewcommand\footnoterule{%
+ \kern-3\p@
+ \hrule\@width 2truecm
+ \kern2.6\p@}
+ \newdimen\fnindent
+ \fnindent1em
+\long\def\@makefntext#1{%
+ \parindent \fnindent%
+ \leftskip \fnindent%
+ \noindent
+ \llap{\hb@xt@1em{\hss\@makefnmark\ }}\ignorespaces#1}
+
+\long\def\@makecaption#1#2{%
+ \small
+ \vskip\abovecaptionskip
+ \sbox\@tempboxa{{\bfseries #1.} #2}%
+ \ifdim \wd\@tempboxa >\hsize
+ {\bfseries #1.} #2\par
+ \else
+ \global \@minipagefalse
+ \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
+ \fi
+ \vskip\belowcaptionskip}
+
+\def\fps@figure{htbp}
+\def\fnum@figure{\figurename\thinspace\thefigure}
+\def \@floatboxreset {%
+ \reset@font
+ \small
+ \@setnobreak
+ \@setminipage
+}
+\def\fps@table{htbp}
+\def\fnum@table{\tablename~\thetable}
+\renewenvironment{table}
+ {\setlength\abovecaptionskip{0\p@}%
+ \setlength\belowcaptionskip{10\p@}%
+ \@float{table}}
+ {\end@float}
+\renewenvironment{table*}
+ {\setlength\abovecaptionskip{0\p@}%
+ \setlength\belowcaptionskip{10\p@}%
+ \@dblfloat{table}}
+ {\end@dblfloat}
+
+\long\def\@caption#1[#2]#3{\par\addcontentsline{\csname
+ ext@#1\endcsname}{#1}{\protect\numberline{\csname
+ the#1\endcsname}{\ignorespaces #2}}\begingroup
+ \@parboxrestore
+ \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par
+ \endgroup}
+
+% LaTeX does not provide a command to enter the authors institute
+% addresses. The \institute command is defined here.
+
+\newcounter{@inst}
+\newcounter{@auth}
+\newcounter{auco}
+\newdimen\instindent
+\newbox\authrun
+\newtoks\authorrunning
+\newtoks\tocauthor
+\newbox\titrun
+\newtoks\titlerunning
+\newtoks\toctitle
+
+\def\clearheadinfo{\gdef\@author{No Author Given}%
+ \gdef\@title{No Title Given}%
+ \gdef\@subtitle{}%
+ \gdef\@institute{No Institute Given}%
+ \gdef\@thanks{}%
+ \global\titlerunning={}\global\authorrunning={}%
+ \global\toctitle={}\global\tocauthor={}}
+
+\def\institute#1{\gdef\@institute{#1}}
+
+\def\institutename{\par
+ \begingroup
+ \parskip=\z@
+ \parindent=\z@
+ \setcounter{@inst}{1}%
+ \def\and{\par\stepcounter{@inst}%
+ \noindent$^{\the@inst}$\enspace\ignorespaces}%
+ \setbox0=\vbox{\def\thanks##1{}\@institute}%
+ \ifnum\c@@inst=1\relax
+ \gdef\fnnstart{0}%
+ \else
+ \xdef\fnnstart{\c@@inst}%
+ \setcounter{@inst}{1}%
+ \noindent$^{\the@inst}$\enspace
+ \fi
+ \ignorespaces
+ \@institute\par
+ \endgroup}
+
+\def\@fnsymbol#1{\ensuremath{\ifcase#1\or\star\or{\star\star}\or
+ {\star\star\star}\or \dagger\or \ddagger\or
+ \mathchar "278\or \mathchar "27B\or \|\or **\or \dagger\dagger
+ \or \ddagger\ddagger \else\@ctrerr\fi}}
+
+\def\inst#1{\unskip$^{#1}$}
+\def\fnmsep{\unskip$^,$}
+\def\email#1{{\tt#1}}
+\AtBeginDocument{\@ifundefined{url}{\def\url#1{#1}}{}%
+\@ifpackageloaded{babel}{%
+\@ifundefined{extrasenglish}{}{\addto\extrasenglish{\switcht@albion}}%
+\@ifundefined{extrasfrenchb}{}{\addto\extrasfrenchb{\switcht@francais}}%
+\@ifundefined{extrasgerman}{}{\addto\extrasgerman{\switcht@deutsch}}%
+}{\switcht@@therlang}%
+\providecommand{\keywords}[1]{\par\addvspace\baselineskip
+\noindent\keywordname\enspace\ignorespaces#1}%
+}
+\def\homedir{\~{ }}
+
+\def\subtitle#1{\gdef\@subtitle{#1}}
+\clearheadinfo
+%
+%%% to avoid hyperref warnings
+\providecommand*{\toclevel@author}{999}
+%%% to make title-entry parent of section-entries
+\providecommand*{\toclevel@title}{0}
+%
+\renewcommand\maketitle{\newpage
+\phantomsection
+ \refstepcounter{chapter}%
+ \stepcounter{section}%
+ \setcounter{section}{0}%
+ \setcounter{subsection}{0}%
+ \setcounter{figure}{0}
+ \setcounter{table}{0}
+ \setcounter{equation}{0}
+ \setcounter{footnote}{0}%
+ \begingroup
+ \parindent=\z@
+ \renewcommand\thefootnote{\@fnsymbol\c@footnote}%
+ \if@twocolumn
+ \ifnum \col@number=\@ne
+ \@maketitle
+ \else
+ \twocolumn[\@maketitle]%
+ \fi
+ \else
+ \newpage
+ \global\@topnum\z@ % Prevents figures from going at top of page.
+ \@maketitle
+ \fi
+ \thispagestyle{empty}\@thanks
+%
+ \def\\{\unskip\ \ignorespaces}\def\inst##1{\unskip{}}%
+ \def\thanks##1{\unskip{}}\def\fnmsep{\unskip}%
+ \instindent=\hsize
+ \advance\instindent by-\headlineindent
+ \if!\the\toctitle!\addcontentsline{toc}{title}{\@title}\else
+ \addcontentsline{toc}{title}{\the\toctitle}\fi
+ \if@runhead
+ \if!\the\titlerunning!\else
+ \edef\@title{\the\titlerunning}%
+ \fi
+ \global\setbox\titrun=\hbox{\small\rm\unboldmath\ignorespaces\@title}%
+ \ifdim\wd\titrun>\instindent
+ \typeout{Title too long for running head. Please supply}%
+ \typeout{a shorter form with \string\titlerunning\space prior to
+ \string\maketitle}%
+ \global\setbox\titrun=\hbox{\small\rm
+ Title Suppressed Due to Excessive Length}%
+ \fi
+ \xdef\@title{\copy\titrun}%
+ \fi
+%
+ \if!\the\tocauthor!\relax
+ {\def\and{\noexpand\protect\noexpand\and}%
+ \protected@xdef\toc@uthor{\@author}}%
+ \else
+ \def\\{\noexpand\protect\noexpand\newline}%
+ \protected@xdef\scratch{\the\tocauthor}%
+ \protected@xdef\toc@uthor{\scratch}%
+ \fi
+ \addtocontents{toc}{\noexpand\protect\noexpand\authcount{\the\c@auco}}%
+ \addcontentsline{toc}{author}{\toc@uthor}%
+ \if@runhead
+ \if!\the\authorrunning!
+ \value{@inst}=\value{@auth}%
+ \setcounter{@auth}{1}%
+ \else
+ \edef\@author{\the\authorrunning}%
+ \fi
+ \global\setbox\authrun=\hbox{\small\unboldmath\@author\unskip}%
+ \ifdim\wd\authrun>\instindent
+ \typeout{Names of authors too long for running head. Please supply}%
+ \typeout{a shorter form with \string\authorrunning\space prior to
+ \string\maketitle}%
+ \global\setbox\authrun=\hbox{\small\rm
+ Authors Suppressed Due to Excessive Length}%
+ \fi
+ \xdef\@author{\copy\authrun}%
+ \markboth{\@author}{\@title}%
+ \fi
+ \endgroup
+ \setcounter{footnote}{\fnnstart}%
+ \clearheadinfo}
+%
+\def\@maketitle{\newpage
+ \markboth{}{}%
+ \def\lastand{\ifnum\value{@inst}=2\relax
+ \unskip{} \andname\
+ \else
+ \unskip \lastandname\
+ \fi}%
+ \def\and{\stepcounter{@auth}\relax
+ \ifnum\value{@auth}=\value{@inst}%
+ \lastand
+ \else
+ \unskip,
+ \fi}%
+ \begin{center}%
+ \let\newline\\
+ {\Large \bfseries\boldmath
+ \pretolerance=10000
+ \@title \par}\vskip .8cm
+\if!\@subtitle!\else {\large \bfseries\boldmath
+ \vskip -.65cm
+ \pretolerance=10000
+ \@subtitle \par}\vskip .8cm\fi
+ \setbox0=\vbox{\setcounter{@auth}{1}\def\and{\stepcounter{@auth}}%
+ \def\thanks##1{}\@author}%
+ \global\value{@inst}=\value{@auth}%
+ \global\value{auco}=\value{@auth}%
+ \setcounter{@auth}{1}%
+{\lineskip .5em
+\noindent\ignorespaces
+\@author\vskip.35cm}
+ {\small\institutename}
+ \end{center}%
+ }
+
+% definition of the "\spnewtheorem" command.
+%
+% Usage:
+%
+% \spnewtheorem{env_nam}{caption}[within]{cap_font}{body_font}
+% or \spnewtheorem{env_nam}[numbered_like]{caption}{cap_font}{body_font}
+% or \spnewtheorem*{env_nam}{caption}{cap_font}{body_font}
+%
+% New is "cap_font" and "body_font". It stands for
+% fontdefinition of the caption and the text itself.
+%
+% "\spnewtheorem*" gives a theorem without number.
+%
+% A defined spnewthoerem environment is used as described
+% by Lamport.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\@thmcountersep{}
+\def\@thmcounterend{.}
+
+\def\spnewtheorem{\@ifstar{\@sthm}{\@Sthm}}
+
+% definition of \spnewtheorem with number
+
+\def\@spnthm#1#2{%
+ \@ifnextchar[{\@spxnthm{#1}{#2}}{\@spynthm{#1}{#2}}}
+\def\@Sthm#1{\@ifnextchar[{\@spothm{#1}}{\@spnthm{#1}}}
+
+\def\@spxnthm#1#2[#3]#4#5{\expandafter\@ifdefinable\csname #1\endcsname
+ {\@definecounter{#1}\@addtoreset{#1}{#3}%
+ \expandafter\xdef\csname the#1\endcsname{\expandafter\noexpand
+ \csname the#3\endcsname \noexpand\@thmcountersep \@thmcounter{#1}}%
+ \expandafter\xdef\csname #1name\endcsname{#2}%
+ \global\@namedef{#1}{\@spthm{#1}{\csname #1name\endcsname}{#4}{#5}}%
+ \global\@namedef{end#1}{\@endtheorem}}}
+
+\def\@spynthm#1#2#3#4{\expandafter\@ifdefinable\csname #1\endcsname
+ {\@definecounter{#1}%
+ \expandafter\xdef\csname the#1\endcsname{\@thmcounter{#1}}%
+ \expandafter\xdef\csname #1name\endcsname{#2}%
+ \global\@namedef{#1}{\@spthm{#1}{\csname #1name\endcsname}{#3}{#4}}%
+ \global\@namedef{end#1}{\@endtheorem}}}
+
+\def\@spothm#1[#2]#3#4#5{%
+ \@ifundefined{c@#2}{\@latexerr{No theorem environment `#2' defined}\@eha}%
+ {\expandafter\@ifdefinable\csname #1\endcsname
+ {\newaliascnt{#1}{#2}%
+ \expandafter\xdef\csname #1name\endcsname{#3}%
+ \global\@namedef{#1}{\@spthm{#1}{\csname #1name\endcsname}{#4}{#5}}%
+ \global\@namedef{end#1}{\@endtheorem}}}}
+
+\def\@spthm#1#2#3#4{\topsep 7\p@ \@plus2\p@ \@minus4\p@
+\refstepcounter{#1}%
+\@ifnextchar[{\@spythm{#1}{#2}{#3}{#4}}{\@spxthm{#1}{#2}{#3}{#4}}}
+
+\def\@spxthm#1#2#3#4{\@spbegintheorem{#2}{\csname the#1\endcsname}{#3}{#4}%
+ \ignorespaces}
+
+\def\@spythm#1#2#3#4[#5]{\@spopargbegintheorem{#2}{\csname
+ the#1\endcsname}{#5}{#3}{#4}\ignorespaces}
+
+\def\@spbegintheorem#1#2#3#4{\trivlist
+ \item[\hskip\labelsep{#3#1\ #2\@thmcounterend}]#4}
+
+\def\@spopargbegintheorem#1#2#3#4#5{\trivlist
+ \item[\hskip\labelsep{#4#1\ #2}]{#4(#3)\@thmcounterend\ }#5}
+
+% definition of \spnewtheorem* without number
+
+\def\@sthm#1#2{\@Ynthm{#1}{#2}}
+
+\def\@Ynthm#1#2#3#4{\expandafter\@ifdefinable\csname #1\endcsname
+ {\global\@namedef{#1}{\@Thm{\csname #1name\endcsname}{#3}{#4}}%
+ \expandafter\xdef\csname #1name\endcsname{#2}%
+ \global\@namedef{end#1}{\@endtheorem}}}
+
+\def\@Thm#1#2#3{\topsep 7\p@ \@plus2\p@ \@minus4\p@
+\@ifnextchar[{\@Ythm{#1}{#2}{#3}}{\@Xthm{#1}{#2}{#3}}}
+
+\def\@Xthm#1#2#3{\@Begintheorem{#1}{#2}{#3}\ignorespaces}
+
+\def\@Ythm#1#2#3[#4]{\@Opargbegintheorem{#1}
+ {#4}{#2}{#3}\ignorespaces}
+
+\def\@Begintheorem#1#2#3{#3\trivlist
+ \item[\hskip\labelsep{#2#1\@thmcounterend}]}
+
+\def\@Opargbegintheorem#1#2#3#4{#4\trivlist
+ \item[\hskip\labelsep{#3#1}]{#3(#2)\@thmcounterend\ }}
+
+\if@envcntsect
+ \def\@thmcountersep{.}
+ \spnewtheorem{theorem}{Theorem}[section]{\bfseries}{\itshape}
+\else
+ \spnewtheorem{theorem}{Theorem}{\bfseries}{\itshape}
+ \if@envcntreset
+ \@addtoreset{theorem}{section}
+ \else
+ \@addtoreset{theorem}{chapter}
+ \fi
+\fi
+
+%definition of divers theorem environments
+\spnewtheorem*{claim}{Claim}{\itshape}{\rmfamily}
+\spnewtheorem*{proof}{Proof}{\itshape}{\rmfamily}
+\if@envcntsame % alle Umgebungen wie Theorem.
+ \def\spn@wtheorem#1#2#3#4{\@spothm{#1}[theorem]{#2}{#3}{#4}}
+\else % alle Umgebungen mit eigenem Zaehler
+ \if@envcntsect % mit section numeriert
+ \def\spn@wtheorem#1#2#3#4{\@spxnthm{#1}{#2}[section]{#3}{#4}}
+ \else % nicht mit section numeriert
+ \if@envcntreset
+ \def\spn@wtheorem#1#2#3#4{\@spynthm{#1}{#2}{#3}{#4}
+ \@addtoreset{#1}{section}}
+ \else
+ \def\spn@wtheorem#1#2#3#4{\@spynthm{#1}{#2}{#3}{#4}
+ \@addtoreset{#1}{chapter}}%
+ \fi
+ \fi
+\fi
+\spn@wtheorem{case}{Case}{\itshape}{\rmfamily}
+\spn@wtheorem{conjecture}{Conjecture}{\itshape}{\rmfamily}
+\spn@wtheorem{corollary}{Corollary}{\bfseries}{\itshape}
+\spn@wtheorem{definition}{Definition}{\bfseries}{\itshape}
+\spn@wtheorem{example}{Example}{\itshape}{\rmfamily}
+\spn@wtheorem{exercise}{Exercise}{\itshape}{\rmfamily}
+\spn@wtheorem{lemma}{Lemma}{\bfseries}{\itshape}
+\spn@wtheorem{note}{Note}{\itshape}{\rmfamily}
+\spn@wtheorem{problem}{Problem}{\itshape}{\rmfamily}
+\spn@wtheorem{property}{Property}{\itshape}{\rmfamily}
+\spn@wtheorem{proposition}{Proposition}{\bfseries}{\itshape}
+\spn@wtheorem{question}{Question}{\itshape}{\rmfamily}
+\spn@wtheorem{solution}{Solution}{\itshape}{\rmfamily}
+\spn@wtheorem{remark}{Remark}{\itshape}{\rmfamily}
+
+\def\@takefromreset#1#2{%
+ \def\@tempa{#1}%
+ \let\@tempd\@elt
+ \def\@elt##1{%
+ \def\@tempb{##1}%
+ \ifx\@tempa\@tempb\else
+ \@addtoreset{##1}{#2}%
+ \fi}%
+ \expandafter\expandafter\let\expandafter\@tempc\csname cl@#2\endcsname
+ \expandafter\def\csname cl@#2\endcsname{}%
+ \@tempc
+ \let\@elt\@tempd}
+
+\def\theopargself{\def\@spopargbegintheorem##1##2##3##4##5{\trivlist
+ \item[\hskip\labelsep{##4##1\ ##2}]{##4##3\@thmcounterend\ }##5}
+ \def\@Opargbegintheorem##1##2##3##4{##4\trivlist
+ \item[\hskip\labelsep{##3##1}]{##3##2\@thmcounterend\ }}
+ }
+
+\renewenvironment{abstract}{%
+ \list{}{\advance\topsep by0.35cm\relax\small
+ \leftmargin=1cm
+ \labelwidth=\z@
+ \listparindent=\z@
+ \itemindent\listparindent
+ \rightmargin\leftmargin}\item[\hskip\labelsep
+ \bfseries\abstractname]}
+ {\endlist}
+
+\newdimen\headlineindent % dimension for space between
+\headlineindent=1.166cm % number and text of headings.
+
+\def\ps@headings{\let\@mkboth\@gobbletwo
+ \let\@oddfoot\@empty\let\@evenfoot\@empty
+ \def\@evenhead{\normalfont\small\rlap{\thepage}\hspace{\headlineindent}%
+ \leftmark\hfil}
+ \def\@oddhead{\normalfont\small\hfil\rightmark\hspace{\headlineindent}%
+ \llap{\thepage}}
+ \def\chaptermark##1{}%
+ \def\sectionmark##1{}%
+ \def\subsectionmark##1{}}
+
+\def\ps@titlepage{\let\@mkboth\@gobbletwo
+ \let\@oddfoot\@empty\let\@evenfoot\@empty
+ \def\@evenhead{\normalfont\small\rlap{\thepage}\hspace{\headlineindent}%
+ \hfil}
+ \def\@oddhead{\normalfont\small\hfil\hspace{\headlineindent}%
+ \llap{\thepage}}
+ \def\chaptermark##1{}%
+ \def\sectionmark##1{}%
+ \def\subsectionmark##1{}}
+
+\if@runhead\ps@headings\else
+\ps@empty\fi
+
+\setlength\arraycolsep{1.4\p@}
+\setlength\tabcolsep{1.4\p@}
+
+\endinput
+%end of file llncs.cls
@@ -72,12 +72,12 @@ Lemma~\ref{thm:myerson-variant} allows us to incorporate our relaxation in the a $O\big(poly(n, d, \log\log\frac{B}{b\varepsilon\delta})\big)$ and allocates a set $S^*$ such that -% \begin{align*} - $ OPT + \begin{displaymath} + OPT \leq \frac{10e-3 + \sqrt{64e^2-24e + 9}}{2(e-1)} V(S^*)+ \varepsilon - \simeq 12.98V(S^*) + \varepsilon.$ -% \end{align*} + \simeq 12.98V(S^*) + \varepsilon. + \end{displaymath} \end{theorem} The proof of the theorem, as well as our proposed mechanism, can be found in Appendix~\ref{sec:proofofmainthm}. In addition, we prove the following simple lower bound, proved in Appendix~\ref{proofoflowerbound}. diff --git a/notes-on-non-homotropic.pdf b/notes-on-non-homotropic.pdf new file mode 100644 index 0000000..7c450db --- /dev/null +++ b/notes-on-non-homotropic.pdf @@ -0,0 +1,248 @@ +%PDF-1.7 +4 0 obj +<< +/Type /Page +/Resources +<< +/XObject +<< /PAGE0001 7 0 R >> +/ProcSet 6 0 R +>> +/MediaBox [ 0 0 831 584] +/Parent 3 0 R +/Contents 5 0 R +>> +endobj +5 0 obj +<< +/Length 39 +>> +stream +q +831.4 0 0 584.6 0 0 cm +/PAGE0001 Do +Q +endstream +endobj +6 0 obj +[/PDF /ImageB] +endobj +7 0 obj +<< +/Type /XObject +/Subtype /Image +/Name /Page0001 +/Width 3464 +/Height 2436 +/BitsPerComponent 1 +/ColorSpace /DeviceGray +/Filter /CCITTFaxDecode +/DecodeParms +<< +/K -1 /Columns 3464 /Rows 2436 +>> +/Length 43101 +>> +stream +ÿÿÿÿÿÿ“bEÿÿÿÈ +faÆ”€™’#$G2:ˆˆÈ Ä|ê,$‚*Ö„ˆõDÛ%‰´{GZSd¡¸r™$Óêè)MÄD5 &°ˆºe6E#¡LªmÊS ¸P¤_8lF$J‡m³¶Eé(u Êep½‚ܦJ#oÌ&ùn1$éÅHþÕ´ln$~© š¤GL7¤é§|5§Zi«á²:^ÜZT’höìa…¦ÒDu 0ÙKtKVÈAʡ¦Ó*m+J&ÐE6I5ïKÚujÖYkú–R4#¢:Y ‚ þ’A²·V¤>‹)®‘”èòÞ¡ÂHM I
%,ŠH¾\T„HýÝtB‚ðU£ ÷¤B"â!=%eŽS«÷i … þÙN…µíˆíØbŸv¸fe£n=~ã)šòd“#8¤ÓÊf¸$+L6ø M')šÚi ¡ØNÞÓÈé+¤Õí5ºNÕ:a§oMÂMé Š[VÒ]Ñd4L+a ‡z¥l$GW¡¦†\%pe +‚.’à2‚‘Ð$G†Ð˜ÈùPÂA$LÔ5’H C!HF# (…ºßt¯JÝ+~¶õ[zýdÁQ+DpD|ÂjŽBA žÈøˆ ‚ykPHDhbœ€˜#¦¯Æé[Õmëzݺzò×ê• Êl¥Ó½º™va;ätG$_#õÁ’+ÊÀƒ0á]A˜B š +ϵP‚DuA#Øá¤F0Êr¬ÐP +*¤ÂAÅ";®6!ʬ°RÄE”9V鈅´Ç„öŽ‹™^µLË ‚>Gvš+è‚@Uœ“-eŸ%p$†‚(p‹Ô}†"<Œ!p\µ”ÞC„c# „PEøG´H©„¤|ŽçtGEÑHÜA,1eB†ˆìÃHRA.–X!E‚N$V I ÊØ@’# Ý7@…”8&AB‚#ô +ÄDD%Dt!˜Ìh4¢ªoM!@ˆý´‚ L!à6ái +ì»A4ѤӨoݤ
ûOOÁáS7£²DGT!‡ƒ'B:Å#Â.¨â
ËMU‘Ñ\莈èó$I#É1nZeˆŽˆç‘Ñòù‘\GFfM$ A„‚L¡Á “Tm<´Ê4’EQ ‹²ú‰¶HHé‚¡ÏQMÊ#‚ƒ+T†Â.FЈA2‡ „°9 ð‰4GËö""!ÊŒ6Ü8 B ÂABqã`ĆTFH=!3Bì2¶\!.éF,¶™Þ¨$*ô˜F¤0Ø$’BiG©0IÍ Ã´DªeHM»a">-‰7<G‹ Ã4Pƒ*I`’nZf0lP":ajÚQ;èm¶è2¤–ƒrÓIƒ*JaÔ=SР̽ Dté;
Ä0F1‚l7Øm¬²)i“Ä$]:# Н)Ò“m…m‹&2OH:t¯U-34G…p…”*ˆò ·«,¢Jlí.ÒIZxACˆa¸`Â3ÔšrÊøArÓHÃ)(Q ˆõêIºH3µˆDE‡Ví‰ DzÊØ8lȾšIä ÒlR#í=Ci¸ÙÚÃ'LQx-•µMCNZia†Ò‚)ÒS¶ƒqM°@„Š¡hI¢IU¸4‘Ñ2[Ló(tw–™…aGb)C.ÒKaÅCGDtGÈó(ÍMë
ÒB#á¢ç¶nÒnI¡PáÛn‘uA%¸Raj›ŠV¢:hÚAM±n-Y„GÚ¤ÝíMUC &Ý.ÚV~Œ§”ˆŽˆèŽªžÙ
‘ÑÄZ#¢?i·i̇H´^#šHöá˜r™…ÓH"莸’#˜ MAeaEÊãŽPå35j";:&| L 2‡ !<’ÈCæU¢ðI]t¬B""GEнQ ¡‘&ÁÓƒ@„n’A9~ZÀˆ6GEá´ÃÒ +‘‚*Í!´âWIž…}Än"] ˆõŒµŠÑéZmöh©é +ka †ÒF@véªAxg !¤Ñ[Gdt RÓ%@Ð#â2:>ˆêZjhK @…#.Ò.ˆ÷Ì:.ˆñ|Ï
ÑxCB
t $Ž‚¸¥Å#¢:#Â(•‚P"= $¢œ§#Í$ŒÒIúD®##©iª I!#°’H"ñ‚º.e7 +‰É¼AŠIa„ šAˆ‘Ó`ÂAPÝœè³TDP!i”»‚e˜Rˆè‰D·“L2ˆ $¨Ž†‘tt˜0‚IžÎ×k +GH"Ìb‚#Ã-…¸$GDu¶â Ê‚šâ©Ö”³ò>-¦Ò¶ÃB5#¡wMÐHÖVÁ•.¤ ˜và›í>ÒDu ‚.¦ã—Bœµ•«Ò®0ýœ»Ã-ÔÜ',¤Š)E7YWiHt”Hö©CÓrΤ½ä|%´Þ:Ún¨7¡iR0’£í[
ˆêÐlº„azCD±Øe3E‚Du,ê¦]Ø´Ð#5ÁK8SB.‹ª-Õ{ƒÅÁ‚
±,Å=&leQPƒj[ª ›bGqš’C8eºžY…R(r‡OáS0\IÑ\7¤‚Bš#¢é8r¸¨¦f2èEÄR#¦FäG3C$"Õ„GÚ†ö‚.ˆô!E[T4#¡#¤$ ">GDt —DxðŠÕ´"Ê,gcÕ¡
0Œ Šj‡8Ò#ª#§¤C""GEÑÐPâÊ)`‚.¸ØˆŠ(ïhŒé)gTEÒ¤Ê L¢‡i
$’p’¦Öæó±\Žˆêd„Óm÷AØ#n)&¨SMÐA®±'QÊ‹¥‘´Ó¤!8ˆèÿ‚(r‡I(t¶ÒðÓ±a…ˆˆ‹M$Ãi6º5l":†í¤º²}1t¤úªD|Â0ˆðr:„“¦«m½¤LpÝpÚm("õ¸I =;¶Î I&Ój¡¤0áҦƽ ‚†¢=]m6ÛQm°Ü³¬æ"£T’¦Û«¦‘y ”=GÂ(p»VÖ¡$Á¤6!uVÛ°„$¤ëâ5݇½m-1E:´ø²·ÍάR.¶©]\&ˆê»Ši$0ôí–i–G +GD|–M6ƒiUµ¢Í%é‚/˜B›ØgÄ»ðQÊÀš$]5¤ƒ@ˆë©f-è Aˆ„+—Euv“¤CiˆˆA2±
{h,E"GA"ý°ÂB 5ˆíÚE
,³’¢Ì2È,'¦Â”J]mb
ÑÆYÉGlÖXå.V‘Ñ…d¶ÑcÈ"‚7‚¬5²¸©‚@ƒHE™‘)´4x!&Pà‹ E\DEÐa’ÔÒADE$"¸®)öÂB‚/="‹Œ+Á+Š¢èÚGA†‘Õ1-"U‹§A𡸆öQ?‹
CDÜÉtãû°lánb2 +Y+V¯H·5PàÔe=Z†$}w;RB‚.’NÑÚJ"-¶I¢:ÂfsŽRê¥ ³"0Œ¦œímª¡e6šÂH¾WpÌ€Ñ!!g¬ „È^8D“!0J‚.‚AË Ó@’ ]A8‘Ñš#SqÛ@’a‘ÕÄ2?°Ì±0›ÄÈ
ƒ<9C‚DUÒ¶ +*ÝF0“¢¼ò/L‡DDM":KABt(p³¢a‚Fñ#IÐ@‚‰&‚(p‚l7HZ#ú†-4GB¤tÊ©BA""kª$ÓaÖ ±Ú´’ºÚ„ÞÓ½7+Zh„GIÒi#޵M‚(pK ‹ÄtBH6Б՗´Ã̆“A» +IT,¸)r…`’OL"‡NL¤é*HE¢>GI +všm+pÙ}«›Ù’l4Ái–b¥LaÑÒ#îGDm’L0ÂÓeÒJ•n#¨D5iØœDt +é ‹¥
;z\"?lެ\ D}£èÑFÑtGÈòI"ÕªtÊ‘Z¢ø¤¬=„]CIä³*“¶ˆè‚@‚`’I$""–Dy;¡VøIéÕ¥m6På8!Aó) ŠÀIP@AƒI ‚eH×MB[TØ·‡MH3i$Œ£’#˜¤ $‚ì6G[tÂ#ï†V˜H +ŠÑzA ™š‘ô""®Å®Ý¦¢$vGFE|A»M†"Ž8A"BÛ†ûÕ6g’’&Æi"épm4‚HFXt)ÃH0Òb‘HÂN
&»p±E:I»N:¤Žˆã‚ “P©†öÈè{*X¤«*fª×T‰ÈƒA†’Ãh*ca¸´G„RiÚiDtØ0Œ&{(pŒ":2¥w,à†“9ca¤eÉJ¦-„ÐnšV}¤GÄ’t‚¨ºH'qm,© +Ý5QTB¤²Ž…¶DuË9fG¦Ü7tÎ`±ÊõDua·0ßA†ÑtG‚ +Ún™´GMˆIÈê—#m":MÒI£%EéöÒ TU‡D¹¤GEp¨"‡DŽ›2tíÂ#â-&Þ"ÚMÒ
Löˆã´ˆù&6“f2:·Iº¼ÂAÐ…E;HŽ’#ª†T$PàŠä¸Œdt]5Aœm ’]µnB&JpbèF莢HŽ„¯D-âØ´ÚWw;ƒeU³-RµÐcbGWA¶4N šl BÒÊvdŸ#æÒж„S A +H7!`Œ ”R@$]M=µm ’J’.‚@‚e^YÁa“u<Â#É™ ÁIHŽËŸUtb"‘ë‘Ñnª’ +Ð#)´S„M$H«>9ܧ;•'vGMª„P莮¨Â2"!Ã#¦Ó#¦Õ FtAˆˆˆ@„Ž’A$A&ƒ„š
´^ Ñ´ÒDy,R„B"""¡…„Û´†›A&)<8‰|ÞDu„‚A”éCÕ6Zè%º2ÖŠw²>¨[A „\¬¦¬®«Ø„’/<.’Xa)4i Ñ\µDvçöÚTè2¨¿MºÐNÂ1‘Õ”¸U §4Ý
¤„Ž$‚Pgn–DtÊ$’$›EÑ^úˆ š˜0I·¤…:.“TµE÷A6ÞWÁn´J¨B)ù[„¤:H®4Ñ\P¤ó*ÒIÔ6 t$tGn‘uˆH$
Šaá(G!ö‚ …”:T‚A²¸ý‚»š6´’I"?h·Dz„Xn8g‘¢"¸L A°Ó E:²:qa$‘÷Tlû‚®Dy”J˜TÕ +›Du²¹4©Q«„èìÔ)\$"*˜…·,ë Ì9R¶¼%gÙ©Ç*@ŒM &©¹gS˜D}²>$p•0@Œ$‚ºŽ‚A'Uyg˜a„
—@Ad"ÝÒH2bšB/t†ˆúA Ï*ÂA]$Ï#$BãC±
È „2¥«•º:ºrÓ2å„'ÚGLò ¡ÂvÝ1FÚGTvCÙ\•"¬˜çbGFXcªº &…´Ž¸ˆ"ŽP™‡B8à•Ü$›§
>%ÑtDr6ŽˆÚ@‚Š 'Û¦¬CM\E¤~FtoH +’ŠªÒ„©—A $!@„NÒ¢>kE¶â›eè‘ñE’¬DtGDtv•»#˜›Ár¶´©7&ĸ@„Ž¢}´]"¥@„ò9‘È BÊ9¶J¬5C—HÂ#«(ܹPDN&‘òøEmmÕÚA‹ $Gu":.ˆäG2<aÁ6G7½I²ÊXB!ºº4’+‚"ø@Œûu•&GDtG@•‘!I"èX!4Ÿ
âv„h¡Ð@…4’6,2:LT›º#£$GV6ˆè"»ˆûEI;X ˜AFYÔÙAA$‡pI†GJ)&H „›PŠÑ„†#ˆ†!»
e@cQÄ † +È„dkƒZV":°Â/ÂVÎnQ!Ù¤ +ö‚(¤("?iÕnÁ• Ué$èT+nÚt#ûi§o¨§I1mR!Øm4žöÚ„ôM+·Tš'L4Ã
YÅkx¢Z.”EÜì×èW†8#/¢:T…’é§HK¢:LŽšB\]¶š¶MÌA4g9XÔ$•'ErHŽ7Ié«tG Ø`Ò*M¦˜èi ‚a¤#„škbÂ[ïBeª.ˆãz#£½”Ð!ìA0Іm$´‚dt’D—#˜è"é6ø‘ÒH‹„‘ÑvI#ÔÜRlŠE$¥eIe»VÞÝFI¿[
++ŒVþè¯jDuPí=¶ÝË_äƒOT©)gXɹ¢#£$„Ú: Û¦ì5nYË|D$I +GdxŽHúžÚXM×#¢äauQA…‚¬$‚BG1#ça»w¬EáAÁ ‹± ":#¢:&Pà…„G@…Ä :µnYË ‚AA"""""""&Pèí"aí-5Tƒ+9F塈Œ#ª.[rl&‚PXŠTé‹OÙ\Í0Ó(ˆèº'N*äÚ©$¬5i£Ø"‡ÑtGÈð—VÝ{ôÒ ‚I"è ’A FtGUJƲ¸l®T˜Lò +)¤„ „Dùݶׅ2IB")=?lè³j|Ž‚ •!Já{uv&IØA§go˜EÑ.Œomz\6а©"³‘Ø Ð¤VÕT³¥já•%6] `A^H ˆùReº”)Û
ªAÄ$B°ÂAH B7BÛ–âÈŽˆùÌ.š¸â$tGèZ¤ˆˆŠ¤[‰I$‚ŠÑåÕ쎨êÒAK«o–é@’HD‹ IIDlLXAÃuØiQn¡2‡ „D3ùÛ✎’(—AñzlE¤„K¤x":‹•ç +Å¡ÃaHÄ] •…aöYJÑÕûZ‘ЃFeDŽ‚ºÛ!^Ä3ȵ4¨!H®¨‚DC¤™BÐ ]î B¡Â1¦"öàeò0‹ätGDu±ÒHB"‘ôPn™G™†n $I$$wH×S*BpBä|H´ŽÊò‡´„D#Àw#¤©+Ù\®¶ò¡ØG<ŽˆúI"‚#úI¶Ò4—DtNÃ
&H«ÆG@Š'ºi‹ AGB”7mÕ!!m)f©¤ÂV4GnÞèŒr“ÞCmÂEN Ž=´éœp††Ì¸®ö’eqι„ÃinÉŽYÖ¨EÓV P†|C”=Óqo–p¤G˳$VTJúI"P ‹Í6ÃkÖ y…n)$á ’Š]Ó(tŠ}¤ÚÐEÐA„a4’Pá ˆé!LŽ’QA¤éU1D4Ñ’šaŠAÙKÔ’
=»TŽ(”Üɉ¶Å"<xv¶ÊfR“240IB!È莄I¤eÈŽdtÝ%°âG@ÎÝ)’ÌPIºÌÐÂn”ò/‘ú´áÔÈÍЄ +é0‚`©–¼ÁµtGÅ‚1®Ô[I!¢?†GPÊÒ)tv•†t›BS×N¢¥V/‘ÌÖ‚AÎÊ´ Èé;W©”9à¡Í‡›»‹DtGè"°$W—eº8‚ YB¢GIL"êìM ‚aƒh$꥘aЙie7$bÂeqÏe{EÐIÙ-4Ž‚ÕB@&Õô’A èDD ˜h šA2|ŽˆéZ
¥b!û¦-Þ'Ј–NAÐr: œb‚O«EÑ7¢Øˆ‚Dt‚H$‚tœZøˆH]"Ê$ƒ²¤f኷úè$âÑEÚTPJŸõ°ÐÑVÊ}†š¦°Å&ÆâÐIRAâºs½Q€:Å +Ö+z°†‚.˜cFA¦ëi4GA§AZDuKMÂr?ÒMÒ½«@¦(Ž‹Í¯m¥´ŽñˆìŽ@Ð@ˆîÚ¶W§a ü,;pê’OV
NÇ3‘„«oöcs†ƒMÛȲÎJˆé„ápŒ ÃE":@ŒMŽƒÂÝH1—˪–u!§B6"‚6B!8DxA°ÚI&Ú9Ñt™7,ER¢¨cpK@‘b ‹
$nÒIEÑ
H ‘tGdtGÈèžË£èâK#£ „¶Ã•"ƒæKZ +÷±„ˆùu›‰´*Ðh0‚Dq‘Ì„xtƒH5h&ˆèYR@Ã@²:AÕÕØ@…‚1hŽ˜B!ˆñô"H K‹wA:#¤L$GBa»ÒeYÖ’D|0B"GAÊr‡(r‡(pB¼³‚67ÃŽ“ŒDDHèÈM‘˜6GGWîD!srT-¢–6a¤ ÉÓH"£#¡tÛ3Ë “
ì$U¤y°Ê³7KQ@¢<é•ya°È¶†•&Å”èŽ'²†7A0…;ÊDGCÛ-Ð$^ÛÒiGT$up“dua„ZYJíÓb¡Áô"ÎnÙNâš@aÊn³P¤taˆÚ[(T"ûˆyg+ÆT5@áÈèÈÆÛ^0í½0Ý]iZdž£ˆ9R<ˆÝ¥Û†KÃ6‚#êÙ•IÁžEEb/‘ûl>Ü4GDt‚!M+l]è$G5 ñ#è® \Èì¡wXè+a “Mƒ
ÙÂSÁ¢?ƒf@Ñt}ÒH$‚Hô$8$A&Ê Ô!Jˆý©.“h Ã0T6 Í ’DDHæ^’&ÔlHíè0nI‹¢:.šÐDtB!1; FhDYÜ!a7Ë9Z%ÒA¥e#‰ a0ˆò–‰¤ÜC<›i$aô‹â"Òt™Pˆ0B¡æDádøH*¶Bm4_Aˆˆ¦ÔZ@’*J#äx@š
ÑÚ9˜V‘ +)Ãà ‚# û²•E A’Hm ‚-91Ê H¿M‹¦ö•F…¦T…‘9ÐA–ŽÑC„, ‹ÉÐ`Úf©íˇìDDE¢:¦SB‡)ÂIa‘ÐHŽˆã§´¨mØô[ŒB"YR¶XG.í°Ûl88iW-0F‰tB"UëH æ‚*2Έî@B"{vœm^õI‘Ö¡Má6•¦nÛL¡Õ!^Q¤-ݑՋÒ5l,Šâf-Ó†T.1Ñn*’0¡.™’6†”³•šŽÔ·ÂHè›b#æ">HœBöаí†Ã†…´ËpˆŽÃ@$$I$vGËæyŽÚS-dtn©Ú "°!;#¢:Ã.ÂAø2þ‚/ë‹I:&ò¸R"m">#Š’H!=—Á8 IïŒ;vëiˆèŽˆèŽ‚$‚ 'b",Þã¶‘QC· „DHé!¢:# @‡dPÞÓ êÁ&peB"é[DuvÔ;¤R’½ Ùtmwt¢GLíöÃnÛpÛv‘ÒAê†ÛªŽ©º¦ZÖ,ªÛh!#Ø]†úD}ËF‰$Å&Ó£"™]„_0’AJÒ´ÛL2<G\ÈÉ$ Ñ#öÝ7NÒAé†A°B*IÕ „Ò@ˆè´Tˆê•ÚÂnÎeÁ9Q¸¤N`$“KPÈL[…{¹Õ¦)yQl´Z: ˆíÕ&ÓL§]& +2ÐjË¢:#¡ò(’EYÚÞí´‘‚UI”Ñ€ˆè$’DxÍ]2†!">#¢:…iªg…½ŠB- F
•$éFÃiØM Ûm#ȵh›ªå=EÀ…ò/¤Q0¶êÐE÷ªM2«(p™NT“Òl ½[Dt˜ÛP´PÕÉR:l ‚>ÌXu°Dt‘•LŽú¶JMØ…l0‹¯°›ŽeCEYVk$9G(Ý 4’ˆJ’áƒ[m_øHC„]¤]ÒDu»oR:W Ðîƒ)HŽhDQXT$’#˜Š£Z´¦
]·• %ˆ°I$"GDtGÈèP?M +}‰6ÛdU*ŽõÉ$I("=±Ð"?M‡N…â +¨DXB˜†[B®
•«i²5ZI¨èÕ: Â.®×%Ñ&MgT,9fQ4-°™D¶©"7¤‚n8åWe/5MºT@—ŽÌmÝ ";@8BÚbþ
Á&sHˆ2·=$GEÑtG„HòB)5zÝ1r±ÙNQÊrDm&¤ÃœrŠ]޾ƒYÒˆ$#A¤L*+©‘ ävŠÆy>ƒ`’#±ð’Û
#òΰ‚<‚“ätGÑPm+GÀŒdr#¢:Pá ŠÄ] ‹¢<$tA4;l6è8Ñ„A"ÉÙC‚¤BÝÞ$xPB-$@‚EÐA0…„ÒI(AUº2vGTøÜHejˆèÂ;SA-ÒЂ‘ÌŽIˆˆ‹@’(tÐ#Ž‚Bݪ*Û¦“p$™t-Dum°êÄDEú´’APogpˆí6ƒ);„†ˆ¤ßЈÔPª¼¡m¥²
Ñm·VZz":M&Å&¬0Ûl‡-”¢GB"¶4Ô,9$“wMqd"vôÎ[e$‚
º§bGXs²TÚÒE¥hŽ“T…•¨jÛA©g,›°ÈÄ!#Í¥bÓMƒ&VaÊ”vé4ˆüC†Út"‡ G“a*;š‡m)†õq¹g-PÛHŽ›‚#Á! Hº.ƒa+µ¥ˆ(½7°t›¶“Ãt@ÐH$]&Ò¬´¦±«$##ì6ë(†ït• ˆÃ-ÊàÙ7@—B¡Ê⠪ʄ‚sµU6uÉK9ja·°Ð Úb%àŠ"ì(¤Ù^¤5b%ÓEó6AÙZÃNÒl0ï#¡ÒÄ,¡ÂI“h>À›b¡ÁG0ŠÄ2!MVÚKA«8¨{¶GFxz<Înh˜iÑ6 +ҪȲ•P T]BÓaòF
¨lSHF°@›
‡v JÊSA¤ˆùt)mÕ²á°Ã#§Ó3@ÊÜî#öálº#¤«+æ"6ž¥AÚMêl¡Ê€‘VZqj¯0…#¸Â ‚1‘ò>GÌFÐa¤ëŠ6Ù$,uX8bB Š¡Â.ØDx D}Ã
&ÔKÄtà‚H$  0ÄHêÚ¶ØA¤GJ¤N#«B"ÊsŽˆð"‡ -YHT
Õ”HPb)EC “`4œ:+ßDB[0„i§q`ÇaÁ$Á
†Æð‚Q¹*
(¡Ð˜Il›+f0ÒXIRt‚fÌ‹äy0Ê)p°@ˆø‘Ђ h¦×H¶&ˆˆ‹dØblº# @¡šÐo@œTÝ¢ŠÂ@ŒA#iÈè$]q…†lŠi4Fê©DцfÐA4‚?„“îÜ!¡D"¬Ò˜hºm#É.!=¦":Ê Ø3j"#J!g¥ðë‚–r¼6GBϲXÑ8|’;ቢ9%z´0Ù-A±†U°}ª¦ÈéBR4ªÄ—A(‚#õl+ „Ð FÔ´* ¡±ª” ™Â;ƒtÃn! “°\4¤u•! 8AÙ:Äm"::ukAB"WHf¨¤ÅD9· SG’ŠvGÚHAÛVŠ=¤@“FC¢•
¤.ˆé½(lNGe¨¸Ø%Å‹ºADØS+—Eâ‚= „zÄ UH#AºNNXš#á$W™ÊѲ²¡¤Ã+£#á!ÂIÒ ô‹I Ý%lŽ“Ov(„!ŸbÁˆèŽ‚*ÑtD* Ê2V’eÑtGDrµ>ÒI"Û‚M¶ÚIÃta†8å
† ‹)Â&U@’B)Õ8a„´GTä|¬!Ó†EÓ¤“D|$õà "鱂D|D޲4…5²½H"®:H!P’¦ˆñ,a5âÛiê„R0›;Dt!ƒèE#¤Û.ˆè †ñ„acuA!
ö Iƒa"R$é4…§¬R.ˆ©Za ämt¡ ‹¢9‡eDy¡#¼[¤‚Dxœ‹bΦBGÈèE„]ØA1Ž»°ÃZ¡„c#"‡‘\$‚ð™C„¢¬št‘
R©S‚aDtfI%ŠCtÁ$™CEqcžt„7NöڂY1Ð$’B"AP}6&P™C•aD}á
Þ[¨D}*«PçÀ ¢$Ùô’#¯ Ž„E$*í"
¤¶fV„AI!p7ÒP$‹¡¡¹6)&¡‘ЂM:b"[—Š’„ûBeIaÙ6H¥8EôÚHÑÚW´âT‘ˆé0ŸMƒ<Ù…B†y‹B0I +{ZAU[„GHnì›+B¡ÑP‘Òa&“Ä D}8EÕÒl0é"F-‘üP O§M!ÃC¢>šj9&!²:MìVoÓš Û]!´ÛJؤ´ÔXvAU(0Òa®ÚM\6ƒIVÛ[oív%t'HÕ0Ûz¦áz;AÚeÕÛ¤ÚØm{bI„ƒ¥´Þ‘( CS±Ñ$GNØtÒ-Æ£º´²ntt‚.á¶qTž©„]Z³À.’·>¶SªfÐiÜ>ƒTƒex$[{Õ†aCðmÒ
ri†yD B&Èêé†÷A‚Ó@ŠÊa¦½‘
¦˜mÑb"’Ü4®Ã&oÁ±&ѪØh#´–mѽӶj’#ç«$´Vmï¦Ðv©Ãs±ÑtGIô’#Á˜sÉ+jl´ 84G‹¢Ÿ#£\c p@’.Œµ2>Á¦îN6Õå/&’ ’V_#ät!-ØIé´
ÃGJl(A Ñdv'#´ÄHé3•6ƒ(á¡V‚PmJÃ
ˆA‚$tA‘Ñ’U
…´%ÒQv‚“ b"ì.’# ‚/‡°‚åÐ`ªÛA÷)Xˆˆˆ‘àRèC+dØ;T‘ÄLDt Šˆ‚)@„ +›A†4# Ã.…i!ª@„VŒ”‘c´GB$~""!„Áà Õˆ D}$–ÓE“iÂu²‡Q`…GŽy+Ųùu·DM4…4Ể(p‹Âv +‹¢:<ŽD‰”á„GÂUDtÅ$\’¬ ¡éA2m#$)’';Ft]$BÑvo#™‡†GF¨ƒ
bÛJBŠâšIvÄs³A$‚
";î8H¬c#¢9ËJCl!ué":2Èè‘âù…Ù$ ÑX„SM?A$xŽ«P‚ ÂI ": ‘(ŠÈÇ""")Ê‚IÓÒÚSÒi!$›Á‚8¬YzÚMô…"(N„F–éduCJ1ÞíÚWNÝÝ:IéXuT©<nƒ¦Yæj\2‡M]a™¤ŠâH²#$G#ˆDs‹‹¦ÂêÕ !ú”é #ÙC„1hm0r:23Ëuh޶Á@ËŠ]I$T ´©†—3%³-ËžÚ•¤Ì$På7P¶ä£0áèŽ*LÂˤ˜’„~
4‘ "{
ã-*{D¥I‚#¢ê…‰0ÛÂTµ¤ ÑH¼R:¡ÁÑJû+bDt¢A&x2™&DFw¨äµçn‚Ž‚DP™j‹ª#¤ƒ9²U»¨HŽÆÈ¾Ê$„BÃ#¢:.‰Ž”D$GI¦• QâHX`Â#Ô’IÅI,mÓ Ûô’.£{h‘Ò(ŠH¡Ê°v‚;Wºv!¢:¢R’7ƒ,¡ÐˆGë(]í·Ú ÞÊ l6 A»M~ðDzÆ›a°Ä[iÃhS´ƒ’·a–à†Ú†ÓhÉ#´•¨2†ÃT&ÛÊ*ÌÊivn¨&ÙZ#¡e‡V¤šD ÍÁÜ„">˜nì4زۋ‚VÃl©+?„_OŽÓôÊoVA¦îÂU„_å¥Rm%ºH[
áí^ÙRWÎÜ ,4…¾ÜŽŠ$‡i¦í†Òm[ŒÐ=dWV[CmPq¦Ýhl0EÖöÚh·[DKjîÊ}5NÓ:V6vXµÕ©nHI]Õ¶¤ÕÙ\I4Aŵ¼¶[‰"ø I$´]NfEš +ÚÊõ Ûv¶jL§‚¥¤‹sŽÂÂ8ÄDERi+ƒJèQ¡ÒGßÅ¡Anݵ‘XH"°ªÃ»H¹¿ Èé쯪PîÆÛ¦ÍH0gUí.ÒI"èDE”è›OPÄt†.é @„0þÕ†šB–[p‚3@Aˆû|"REG»M½·Ü6õ· AQš0Âäv‚/L4ܤá”ÝI^šMíÃJé†.ÚTè$ʨÒiRj,¹ã´ÛNz½í†ö 6”$y°ÄADHè‘ðÃYQý}oêÛa„]ìZhº"„C({°„Ž‚(p’Ûï~í&ðÊ„GûilP`á$™â±Æ×àÃví#á´˜B5JÆÛ‹Ã! ªZôÕZІØeVÔŸ „*kÛwÐwÁ„"Ý:hލŠdt]dqHåò-¢`Ú(wŠ +«ì6°‘C„Ãl·A‘Ó‘Õ¤) H©”àˆùâ”"èn…µ¾¡´Ú¤“i ‘NË ECt$+@ŒeûI+bF&®í¯aµM•ˆ[#¥b*FA3ŽXà„ ‚›hã„D$Ï#™®ª·XvÛ vú„,· &ÄD$"",§z ¹Ó 3„_ ">!aþ×W
Sˆ…#¬ë²¶Z„zÜ$ôbAƒh4G@‚ N´ÒáÚ¯S Ûú¤ÄŽ‚ ‚H A‚HN"<,Ÿšm&›AðèIš®Õ©A"!† 8õIºgQ¢:
A¥nñmRId¡ÐFºô($Ó¤ì X"¸4†áj±hA‚I¸"‡bHŽ¡4˜}¤ˆé4¨ï×¶ØF4S„GT“M¨êÒilHêÓ.®•C ! YÙª 6“nÒ
†Ñ]äˆèˆèÁ8"<;Ô‹ Â:ãé$¡´½‡¡hH!µ‹T‰/N]&ø†´„téÓjMÄ¡L0ÖŠZ#—A^bˆèF[H¨ÚGM¶íÐH&xâ«IàºDy*™\ ’h¦Ö„A¤] ض®"2ÎTv-iˆ‹„ +š,¯œDtÚ¸eíB!…Š•‚¤Âµi$t“Hí#êî-¹‘÷*…i5ÐtÒHA(r¼Š‡±aôÆÂ>ÊÞÃVê–-„HèQ³V†’AV¡Â/AHupšúeTl)Q]ˆÓ°âT,–²;!#¢;inÓLB¡È£”[Jµ)gC’”XUœp˜L¡Ã¶¤í „ÑT7nQ#åGMäA4IÅ7´“ߥ¤G$´¢6˜´"%Æô´Ê樎¶Ìi;jºjÍH7º¢¤hS¡# 0‹÷{–•YôqDvm&(!%Û:2Y0ˆ¾GDtâƒ#¨UÚRÌ5Œ°a¢úDx ™V "<ÕÐ"¤HèHðGÀ‹ VˆíH_k×h#q¼$¤
¤ía ¢""‘áR ò:Û̹óŠî0Á8#hA
’.’zíÂ8áEX!Mªl$$©2<}A¡† BöÚtÐHD2¸ƒµK a„¤tG2èº6ˆ|DFÒ¶¬P"˜EÓH¡Ã[Â@Ê e9Pm– Á! ‘N‚A"<˱Â.ªít„‚ijëhE¦ÛhX!Á{(‚ŒÚîÛe*Œ6» +ÛxˆAˆò:NPŠ "è·¢
îÒHãQ¦ÐoÊã¦aˆnÕ'%‰íol¥ÒÁÈè·}·ìFê,:a1a§uVÚ#£©dËŽˆé¶ªúB(®*JØ´‰o«%ÔŽ¡?°ÕÒÐEÑTDõ“leôn’QäØ:a.“&Ó1#êØá ^ÊtÒDØ9GÛJñ
i„G¸Dyê$u-><nØ"?öƒ ]XaÐÃI¿ ð‘uzM¨0ÇÓ»–h/Á†Ú’jÃ}uÝÞÕm¥Gx«Þ4íáÓxhQ$ÁÊoÒŠØiª,ë lâHެ…aa‘Ìâ0Èé!HîœZdyÐBÛA(ÐaÐE!=°Ù!;Ñ4W2“´¸Ëþ-ØidµE™ÎåQ*`ûa5PÑø"òÙšJÑ ¦¢ˆèDE!@ˆý& BD}m ʨHæG˦é•ÎÑB!lÐÙ_i ƒoNGB"ʨ+ +À]ÖÏ +!”d +©&ƒuA†’DúV"" $] ÝÂDz“":OmÓA݈ˆAa#ätGéÁ:†=¤èD6 D{AÓ¨ˆˆ‹vœ0q +VNˆéÚQ +4›Ú„GPÚ +Ñ4öem†ÐI»H³š":.Ì"èÂUjÁ_Ã>ÖÛ´·DQ—NYÖ"<ÐE`L&‹î¶C„]D~Ò 4 Dt‚nÐ ‘RºšL$‘h A\ú4âȢ麡ÜHèGªa†và‘¤q(pAã‚0ˆúm¼´©„S¬Ž5°¥r&Ó$‘VXåSq©\¬Î"9›fÑåЈˆhMça¥#$ª)$í6•6ÐlDC‚HHëGÀK+ÊÀ„K¢>‚ GŒC!⧸¤]š ÓŠ§Z½¤GÄBA";#DD.‚¹ ’ˆí<Dl3Æ";A$¿í'XˆE:EZ#ˆ¢¦‹à’+‘d5NPi]ó4GI2‚’ãh7àÄE)XXå7C#£hSŠA–:i…©ÙbwA4í°„A9Vˆçˆ„š°HM8 C{°iªbÊte7´<B œr–”40㸈‚‘tÝÄE´œZAòuâ×Ó¯#¤ÒHT³¬'´ +©¦‚vÚO¤ÓB-ã}ì%e Èè$¤U)ª,‰øol„ "Ñ®F ‚¤";#¢:±+¨TGJv:¤î˜„’½,jr¸h·tm„¦&„i0‚.ˆè»>ªÐh·cÁ•±Â[m!#¢:’ÙkHމJ#£ ª
É—Ð`Žéê„D#¸#™$+J*’¤mMÚiULŠÐ²‡¿nF˜$”*lE=ÁH H¾”Z#°A;mذÚh$ŠDui†ÒHP I qÂ#¢ê Ø"‡Yn!䂤4GDt©ÂZ#ätwÈ´ $]‹A—DtmDŽ˜J‹ãŽ‹ö¢HŽ›@”è±M¤„DDRHŽÈü)%GNÑÐA A]úhÈ«iLàI'£µiȉP„N"9ò:ƒGEò:Pà“RdÄD4L"äGdrL«ÈèŽrcœsáR3*L'‰t¢š “é">GqŠHÂI –ŠéU‚H …Œ9´ $ŠÂ°!hÈB›½Ch®;xŽtâØ¤Nˆê"#ä4yˆ I ‚^+ˆÂ „ DG@Š!#—YC‚h¾GDs!H–¶éöqCh ¢è‚(pEÙĺEXNÁ +d"2XÐI‹²èŽˆìIHèºE8VˆˆÐˆt¡S~‚0‚A$|—q DF B¾!§ +Â@Á„Œ•tNŠ¡FÁiu`Ã@ˆóv‘º;/ +BPá /ˆA +H$ˆã-ÊÕ$ÁðEC!HŽ- Ñ’t7XÛÜÚ_B-ˆëJ$t¡ÂذÈë ‚ÃìDXk½¤Š´GÐV"7qU±Ð†Û¸oVÃ-‘‰º‘SºÈè0ûÁ¢>vJŸK‘ê°Âl²š¦Ø"<ª(¨J‚±a²ŒÒñivt˜ WCm¸„³":PåmIVÊã 7´Ï5ûiS]w †Ð‘Ó+eR^‰uO›jÛulMá&î™ö¨d¤¡’Ú¨Ipتxa©]â>ÊIŽ‘C¦Â †0‹¤ÛEc Œ&ñ.›a=:‚"¤4ùÓ ‚#¸„Ó³ò»mTB*BEjØ™":z>¥°°’#Ä}R#¤E2»H0Ü# @†tä9¥PgµA‹H-¦„$öµŒj›¯ 1¤õBÛjÖÑXPå9RHÞƒnöP¬;6@íXmBHò‚HŽ“µ´ÐD~é*d
Þ-4ÚÛ‰@‚†ü&„zL7v~›M6c`Ê’†é¶HW¶‚.·ŽZo#¥U$u
&Ó"?@ˆé+H6¶íQŒ[´©-§±Õ†}«-ÃI_bOma†$t;(>:íÖˆÚ.’ÒM†GÁžEÝ„°@’T½Š¤Êe¨BÙ÷×x¥n°ÃkIÍÙ‡„•Ö›ã•`Ç´šnØtÐAi +†û±¿a”ÐBN÷x";{I$Úr#oÅ´9Ъ‹AØŠ†›PÇ~ù¡2¬4íèxt‰TGÛAÕ’vÓ·§B)i…}·è6ý¾v'":#åØGÚU¦ƒxn -’J˜uÁœDtG¸ÒAzkØi idy7k„^Æa$Ïåt&Eâ;’´ÒÛ
Ó¶a¢‡ ¶ÒI#¬7m A@$GÁ8BP 4Ó(@t6Ôí4”D޲_ + ‚Iˆˆ„ðH=ˆ"‡]6Ò DuC@Ä3ޱm–¤GFqõ‚.°…™¤ˆâ¥ÑBSrîÑPáa(ˆ"‡‘Ö˜Jè#ŠEr
´˜P¾ƒB9n&‹sM$‚DsI ÛdùB Ð(M¿tnJˆæ!zH޾ˆèÛ
ÎdtPˆèÃ0elÃ]»Eº”E]´î…º³I_$‹„IH ˜B“oöí">"Ò +ˆé´ñH ©$x<DXlU7ÝSa‘-m!’I$@„i‚_«N){f¶""ؤwxtODt›u·A¶©QèÉB#¢:AÑvÌqiU$Ò[ë`$-C7Ãa»mˆÍ†ÖÛh I"9 @‚/ò: +¯uJF ‚8Èù#ðèL‘Óú;K3"’+ÂgðI$_kIûp„V¡Ý(ïJŠÔ®ŠB‚ÐA'm°’Y
$èB‚/‘ÑbŠ´Gè‹*¶II +"Ø¡ÒÓDumªIˆ ˜;¶ò
$^·J„":‚¢/´S¤B&lT7iІ®ÑC¡#¡I´Ät‚Š(t_tmEYö*4i¶¦‰>Û +Œ:PûÁ/Xb’™¡g±Ên4NBØÚŽ´Ë!* ¸Né QVNU0ÞDh!ëpÁ$¨Ž¶ÊèF™ufVj"‚.ÄÎv¯ ÚNi"½ŠG"莈i a»+Ên&ÉÓ½Q:}²:På ³#FU$ˆã#¡s+AüKáKrèÔ‡¼E_gf¨ºi$‹tŸXG !#£x"‡ ©\ˆùZIÂ#«fÙ‘Ha‡‘Ip‚l‹M8e«L)ˆˆˆ‘ÐH4_I!t¤’A†ÏDêí|A°G´°áPh B" Œ&Ó¶˜dttöÝÓ]Y2‡C´Úˆ¤ Uìí³ím%zp‡h«<Êâ¬ã¡ ¨bIL1…¤ öí°ÚN¤ƒ¤ Š Aˆä¡ÂAC´](Ý +vÁ½‡÷zm\FB“B<’â‘
VÒÝÝôƒi6Ðñfà –(Ž‹¢ vݲªf´aÝí»ü´ÄÏÂ2>aEÔ§½•TpÚ‡»‡¶–“
!H{XI³_Û ÚêAnÑn‘3ce ¡WnÒ
Âutà +º#ã”ÝH¼B›KDuL¤t†ˆëj¡ÊÄ‚gnH{¦¸ Ü4†7]°\Ž‚D±#öštö¤©¾é"&…ÚA”Bl?ºz÷h4GÞ"?Óí'û*íRuô4»I4)wÒh¯^Ö‚L1u] Â#ïä˜ÕôÜjå˜a;ì">¯mS¤ÐŠP‘Q¹R¢¸²WaŒ ÛkË8&
’dR¤ÃÂDu«*Êr…ãMÔ³‰…'BW‚#Á‡±hB ®ÒèäsŽˆèaÁ D|A9OxI ŠâºV#gi4i—DtG@‚&J
ÅPæÀŠæ¨ ’\G[
ÛduwPÝ^""$v¼`„C£Éi†„&‚#úOâí; +ÒXŒ G¨EðI# ‚"¡%oÝ=¦˜ÓÄDPB,!˜pBA²ðA + VõIè›+Mq„ƈ4AS†ÓA÷µgÜCDp€¬"èÞšTÐ÷NòÓQ¬A‘Ú¸zuØ“z]D @$‚K;§A¤šVè›$LW¢Ð„Õ%AÞߤ’Ãb.4’TÚioHè“I=ÛOhHêu¶¬·gÕ š–#ÈE«zJÔA)ÀЗDºÓ"Æ‘|èºJâ ˜ …">GD}ÊêDvFš0’¶ˆÄlB:ü ‹Äxƃ]7DtW~Ëua I!˜rЍ«†$HŽ( I$GUa F›HºPå80а@‚E:XÕåØ „RhŽˆèC‚Ðh ‚i,v’¶Ht"""Ê&{BGF.’ c¢¢ Áˆˆ‘Ñ#¢:i„"ÐA Ð I"¶$ŒˆDt©ˆˆˆ‘ÏYg/îv:r¸þb'ñ„ºÆÄDFÒHŽìI*h›•e×`ë+p ™C”:#¡IábGÅ4è$!Ú[MI+’@’#Äxõa!†&öšµaè†`€’h$‡i Ò]' AaðѺR:i Šâ‡Ž’”]•mÞéµJ1à‡.”D®¡RpØj“[¹\b4Èèâç":#Ö8ÛTíõiêdq#ÉDt
µbŽ-C`é3“wJ!”ªÐB ÒI":.šµ–q\Úr¹4#ÚJÙ”Z ¢:>‹¡HA…‘ÑÙR5xa½²:¤…¢Üb@Œ&Ûn¡[N"""QAIŽwDt“¥»ƒn’TÛR:H‚_GÀ™S+ÆaÜz,¸ºNÛ¤Ûa9 “¥#^ÐpaGݤ¶±I‚1 I")¶¾ƒ†ˆñí7¶ì ZD¥!<ÓoÇB.Dr#¥^¸a6ûA”%Z¶ŒŒ% ÓQO´Â‘҆߈¿AÕì1»KA >ÂŽMëVÊâØHŽš+¤G3hG§mÃ~˜aðHŽ`¥Ò¥ÐeH
ÐÝzP@‘XTm3îöÐd%W5mˆùtøí?VeoD6]\<HÄd!7÷xléV•‘lŽŽpÂTÕCEÒXƒAÒ"PhŽ:9‘æ›Ý¯†-•°åzþÒr @HXF#¥MÓ»°Å´aÓ+xÈÍ8"‡nƒ1ÃJÕK0FGJt˜oeo‘ÑÒB Š!EI"VÈÅ}“²‡D}Z
¦A´""Â#¡KŠX¶_9¶a¸ „[lŒîéI†*l=rrT¨Èža[ªYÖØ¦Ða Œ5I;JÁK2/¤“iv¯£p&Ã
]™A!Vîí¦f# ž÷‘ñPåJðª´WMîdt +ºÓièeŽ §“i忤UÛÇÔ›Z#Ç{Ò¶HßEy&@ÐeH#¶ô.‚ièB*Ûbþªôݺ²OưïÝ[\5¡kGªÛL4´šm²®m¡îYiji$ݵn%@ñªDvGÞ®›IÖöÒ¾!“sÍ[}0ݺ[ª°ÈèC•I¤ÃµA7Vᱸˆ‰0H6ž©Ã)QnWåQT0‘$mS¦ía Ì%ˆi">¤é'¤ÛT&sc<4‚.á6íZ
¤Ø¶aºŒˆ&íÓÃIè¤VØ@ƒ+ŒlIØ„¿ [µ¦ÓÂL:HHøa™§Ð¢9¦áúÒ¦“!‰˜AR©
Aè!»víXE&šH#¤TÊÚÛ¾Èá^éwi‹fBF,MµôF @ˆê˜k{ÖIôÜ"<«Ž„ì^k¨ˆ°Þ¶Õ':P‚I#Éh"èŽ#iCduÒMºa&Â@$ÚAa¸iXûtÓ±%šW !Qm$¬2‡+`€’#æMêÃm$W«ùJĨuE +í„ *U¨vâ&è EŒ¸Å¢4¬aÓ¯¬Ž’-•êÃj•ŒUÌŽˆèÂ
Œ&°a°¯wÒBÐAi¡è)ÂHBHøg*¿a„`ª’Dj
ý\X[ŒB# ’A$HC…doiLã”ázÍyÄG3dGDy&ÓjÊéÐöOš±h ÄDÄá•îÃü4DtEÆ]A4">Öé6)ÍÁ½(# ƼQæ($~L´Ê„'¦ý +Â.•°ÊM%Å‚.ˆè#ÚADDEµjû:#RKí&z&ïNU„"/¤[«Ò¨c‘Ð@¶ÙChEªGEÚB¶âê´©†
$vKˆcùn¶Øi +OiÓw…M'I$pEáÒ$E„GÈë¶“zÒpƒØ‹†ˆý»O…vÒvó%#©fVžšL*I +¾GÜ·"HaË9;½¤P÷Ä0‹ªE›ÜCv¥E*IP„´’D|ïúäKAý+ªm½7b4GDvIP …$›mRo·(¤–ÒmôˆâÒÝ:ƒvÈ=¦¨EUê">GBÊØAA´×ꞪV ·M\Hí">yŽˆç*&Ÿní«m¢™DÖdiÂm-Í™Êr‡) +ƒq´Û +„×IUA=á´©$Ga EU–å<î&Ø2anɲÒPñ¸b;J.4qD 4G0‚h‡½4ЍA4ôqV†— ":$"B# ‚`„$jFh$ ‘ôÁõh0Ó-Õsº°e–$’nØJÃ÷A¢?JÁ6a š& ŠÂ‡ÄGˆã.4v"
vm ‘ Š„’#«ØÞÐVÓ°®(äGË A4S…†Pà$U„Šh0H"¢#ºlDŽJ4Ã,4G-ÂS„ Â.ÒH$ T„Ž„DDDD]7a B"NHÂÊéÐL$!¼U•nÕ´GN"¸·»HG &!†U¢:A%L7EFá’Ãt/DvGMÉÄt"’Pß°ÂZ¶’º±eá:H¼j0‚o{4Ц"‘LE•ePålZÞݰŽ:nÚ¦ÃA†Ó ‘Iò:V݇pARÚatƒD~ÅeZHGÕ#«a.MöŸ„„EÃØ²¶R ‚öéh6¢*Š"èâXqÃuê7q†GÕÉI DuÒ¾›iU±ÑC„ß!HæGEÓtŸA†ø2™(Á7z%ˆ ˜MzEÓ\;½™“à
Ò "¡ÐA{3”9[5B•’±Q.’Ð+¤BÂEbg£*I%²œ¡]8Hx#(pA„$tša´»÷ÚŽ„A”:#›†î’
¿$„FU”9NP]Ñtm‡êE‘ZHBa$Õ¥N·q:ÚD“/4C0M2@OÂUÂ6´„T4Ò¨‘ÕÈÚhŽVš°ïtHX-ݤ»
SËr…ÛyÅô“´Ü:A$»MÒ
Dv¬Ñ½*Õ±vú»vúÞ)¹éR"éo<çcíZ•Ò‚W¹IêªhT¶ÁÁs¸ ‚·ÓI$ .ÒIâµh ¢! +#µè&"*¼r‡yØëm²º‘‰/¾°„jÃt5| Ã#¤Ýîä’.ˆ^Ýõ„ ”8I´½V! Èé+·Rð²¡îYB‘_Ê%j‘Óná6!;V…·Ò#ÄqèPZº²„ƒ§7"f“^ˆé0á#=†Ý–RÔi¤D½&GDx‰ª¤’# Úh!
ªL®v;Â/
ÛbmÛ Z$†#¼©l"?•Ë"y5+¥t‘ÓOm$tÝ‹xˆmÒL›‘™´ê“bÏfUI$KÉ©\±aêÒDwjw|A/êöÚGM2´n›zfûo÷`Ác~»m“„4’
ú Ìè¨T÷
/aåu4GmXeJiØo·„Ž‹ã}¤;m·´ƒÛˆoä±PÙÝ{N²‰-;I:JÒ!èOA"9ÑH6NŽVÓt^¸w!|Ñ8Œ6¶ "$‚L‘Eb¢inÄ+½Úm¥eH‹H»#¢:0„EÒtƒÚmÐ H5†ƒI´Óqa +)ÒIEÒ°Ö˜$j‚iÚÒÕ¡HE i¸MØŒ<\%oÞiöÄHé+tGÑ-B[vÓnôÔ\ì T4ˆèHé0[¥W¯kj¬Si4ÒB„ 0Úömñ³µi¦OŠ Á ƒºMYuÒµZe$’ +*•†xm=a;
„’# dÜ'+KVÛî›ØH,CA*Štá„Gª¡zAÕ0b8H “Jûëì'±x¦’
Õ%tí:Â APc³·ZIµTa
íß ˆŽž›l.ôþ¶Õ0IŸjõT‚H®è ‹¦´)Ú¬ŽÈè©%µP“„ز„„‹§–r“+’- ʆ&‰é¶áa1*Ek£ŽÁq.…_*©œºn¨$œ Á ÅvGp’"è „P0@„m4‹rD¨*Q‚
¤!±A5`“Ó«Z†W© ŽþÑ”#«A'Pät݉$ÞÂÂH«DtGNÄ)ì1Õ$›i'”™‘Õ„_–rrPüXM·I ’#Ên‘ÚéÃl4ȯa´°’BPÞÙy'êá&‚A¤ß ‚A + &ÄBZ/7ìÂI†Û|BUb*) ‹²æ•é•¡r.ŸQIhDQC¬ÈÉ~ÒaªŠtÑ.«¸uÐJÛ¶v¤šAé¯/°DtÑutv!
°“Ö¢Æé¥ÙQöÐ KU²¡ÐÅ·MGIZ´ÖÇ%†mX%i½ÛÛS‘4G#bùÙ¯]¤écD + "½F:JD{Òu¤‘Ð"‡ %í "ú[bë¶‘ÒB";¦Dy^U~ØHt´-´žÒ}ÒHQuÝ=6“O¬\YC•°«¶ški§ì×ÚIT©G¼jë#¬X$‹-“ÁÊXIš´Êá¢ùu¶’V"‘uv݆ÓgaI¤œAˆç®4#ÃA;*@–êU–9[R½Ù*hŽˆéNÉÇ ÚNñEZ.šZpûqų±„`à ‹ •ˆA0„ŽˆêÛÿI +ìŒ}B`…!u+úDuÕ¯±°‚ˆ¾GDt!IÄRD¶P“MÓÑ3’Ë鈎M¬¯hOÊ¢¸iAS ¦B„UŸbtð›@‚jÕDt›•í2¡Û]&ƒ#ÕÒi +^JíjÈ릴Ј3lÆ©¢:2²#™©ìö§TÒzaýbH®8æ¡ÊˆéïºQÓ»Eð’’ˆ H#Ž©ô•Ê䍯Ðnš¡‚#¢øH!'#£¯nÑ&("ëJí±@•¯«QhYC•ºÛÒiˆ°é+é&ÑkM¦‡j©6Ó‹ +ÓjØzÝêñ/m(í½m{@ª·+ÑD}4’8¹T×BIÞ’L&‹ ë³l¶‹ÚD~í$Ü´Òm$ '‘Ñ6§qxŠI¶á…{B"!¡4/&Ñåo*SmU3o6¥t ‚9²£j"ϵ2ÚWÿö7]ÌÌ_9ËBÖY„ÒN÷cL<=b'k>ül3mÒÒM†é?½0ÊÙYhZIvîéˤúTŽtݲ?TÛA4ö“·&!°Õ¢ª“
‘ÖE£%7ŸE檚{V’¸@CgÙB„’M´#P ‚»ëÂZAõÚNi Í¢9 @’#é©n¨°ÃW¦éîƒ<m&“VÁ ô"Â#¦›J›nÛ@’÷Ù[OnHFá)…†Èþ’ˆÝ¦ÚW…A¬{
±ê’
±í>È]¸2•zEº‡Ý¶éôÒy©ôÂH†u¦ô—aöÈ¢ÜA®ÝÃMoÝí¯ih">mh">6Õ/zkuôê$EÙs#Íl==¶¡»°Î¦ºÝî @‚#É3áNum ›T«¦Ð@¶ïÐD~Ð*b\ LŽ‚*¢‡"а™NPå3ë
»o}X0îǧM¶L”Ñt\Â>€„F1i!Õ}÷|ßXöÒ‰L!–‚T©|º‹R.•‡†×ÆÃWM÷AÓLû*-dBÇDhDŽˆêƒFÓK®á·¦Mjš#ìÁÈèD0b'7˜nª·KÝ ˆfËAT¡Ê!HZr:PÁ
zjNy»´°‚ME:–H F! CM¨l¥Dt,"í„Ö,SMÝA+K0ì6•BL›¬¡
i•þ"µ`–òФ&’ÓW¶™Õ”éê°fØ›)«¸A&6˜m+)ÒTª-%„ K]$ 0î Óûb:DtFÐaíIdÂ.›Ã¦Û ÊÒ7}U°ô¢ˆèâ¶]Øt(=*¡#«¢'0Õ8&i8aáô0–q¤pžì%V‚è$Â+9k¥A$W:´`ÃIHí[VûV¢± †Ð$‹ñ +!…(‰|ŽœZ»ª¦‚F‰¤ˆËBD`ͳ´-¢Tˆè …,6•«RlK†…Z³TŽÓ‘y ˆÚbú ‡i`¨Ž‚Ž’µ«A ‚„GÌ'i]*Ì‹zA$¢4݃>ˆé!@’&$sJË VöÐo‡¤Bíý°ðÒHC ’A ƒ4&ÒMh&ƒh0Ô$ ‚iíÅ „DD$GÈé';RMzL= Ħܴ +":Pá)hö.ˆìÜf—´v¨Ä‚q#¨°I ) ÓHì³A)Ã02<]WØgÞÃèDiøA‰ò:A ꢆ Ð"‡Æ(¡Ê¢.ºm%«I!ØqEˆúAG°A%ˆˆ—EÐA$Ga+ª
¶j‘ªÃP‘¢!¶u
¦ Eá‡(r¶h¢€³‡Õ®˜n„7·ŠˆHŽƒi¡#°œ:R:S”èº#Ź §m$ÚHŽ’NØqAÙ4-è#®#„„E$&Q’ƒöÚ¹g#AA‡bGB!^#äthŽ‹¼% 0ÂHZL<Eg!0Ò!« #Zv5‹c¸":tö’#¢<}$G˜n²ÎF"<weHº *aÜ$–‚oh¤”/KˆaÔ;QÈí«;B‚‡w餂’Iµ@ˆý$tã bÊ“qØA6–Ј@’!wI+(L:
¦šFð8†ÆHŽ’ 6¡”:É4…D0Ó²:#¦œBH"úáµÌÁ„A¶©±ØRÎIB
¦
b!¼ +2Yè²ê‡•²E¶) ЊBGd|·0‚ Ê€B"›;JÂ#âtÛ2S²]#·Cel"¸AbÚŠØîÇ„]†Pá ‘¹†$™C”[¤‹£3N¨"<ÊÛ´‰ZÅ#¢:E`28Ð@Š ÐI‡LD‘¿Òq`ÄC•
$!Œ5h²ÑÐAï°ˆønÙö)Et"V1°jÒHC
j0úX±Dm!Ý•µ‡m[Á´œ²ÒŒ6v.ˆíÛ yƒ‘èl";-I]h¨Xdtv‚H«$9[$+Šd9ÀÐ$Š€IP¡2œ4RI¶˜Úem"A ++‘ØYÈ‘Òô"ÒÁŽ(HŽ«kˆ „BDr;b!¢;;hD!ÊÙt-XÚM§«'‘ÄPFMÕ$C„6K¢:’·²‡+eé Ð@ŠPU¤ˆé!±Q8¶&G}7ÄP!‚#µ¤Ë7X(Å¡I±…pÛYfZ.’R|(Ü’GN›mS½Ô6†S„Ìn«Æƒu¶´† F$ÕXw¤ÔNÓ¦Óg7 +MîsðéÒ
о5ƒRÐuÞ˜¦´™ö›"]Ä¥MØ4‚õÛ–h4ghKIX—Jí¯e†M–>˜i6©:ÃbdØ)3±J›¯–itôˆÃ¢SI‘Q׈°Æ6 +@Ý‘D
6ÞMÇ̹$×PÑb¸\Žˆþ!'Ò
è&Q4Ÿ4,%h":ðAýñ#¡Pàˆê»ƒh¤é'ABaâM.ÁB>¶’j’~ºI%|³‰,6‘tHeç}—^Ø'ê#M)Õ4™";#ûkRÎ$¡‘4dØÃ@ˆéâØmÃGk’+ÉË*ÝY𜅷l$ÃYTø"¡„pÏÕSܰ§*Bm0éÒGPÓgER!q#âÁ¦[¥‘dGV0A›AÑt'qÓBƒm¸1m¨"ê‡PFt"*GA‡†Å#í©A· Ѭ ÁÚ&(Ösr
M&Ù6 µnÊÓWbvª…8D}%4’~è"é1R:†ÕVÖ6PáЋ¿uAÒªA! ÓÃa¥z´‚»»Ãm؉p¢˜M¤Ý¥m³¸V™ÚÊa¤“®7¡0„ÚO@ˆèŽ…ÒH4GM ’öÛ¹:xI @’bÑ#äØ>ÝÐA5 Ð}]Û(ÜW¬D¦“H!tñvÒµ„GV[·Tˆè™ëXjÓ¤#i(ÖÖ¯†Éu†ÚÚ ›o¡#£±òmªéì#ŽVÚ¾ÊëwÛ»r:Hâ7ˆ½Ú@†4Óxaí¶Ãmi0ÃclðŽˆã#ö’M™"ºÒ`ŽÌäÓ¥Ö›I·Ø}¸4™XEò:tŸ2EðHŽEÑ|)¡Ð¶û†õ@ˆûl;¶ B- ’#íÂó#H @‘\EÑÄÒÚQû]êŒ:mL7GchŽmƒ( EÞB´d##à‚‚Lã”8A$ˆðÙˆép…4’Ã]ÐDt#äy¼(m„ƒ¾‘’#¦|(ÞbÙ–ˆ H#A
Œ'ÑI#(Â;ÛÝ¢m» #¢?öˆúIeVü D8vÐA + ˆŠB Ê©yNܺi:vÛŠQ]":’ »H%d³/A H!&ˆøA +)Â$Ò«A•쎄9qà $"ö8ZˆE‚A°‹¶ "‡¦ÃkMœ5†“íÐ ˆótz["4á„"$xíe¨µ #¤ $ì5N/°ÎØõMß@ŒGahmCŽ›ÛÆøm Ú)Ý«(L=1«'²´_PEô0†›AÒ D%HÂ1—ìAE#úJªÐšg`h$“vÂØ‘Ò¨tÝ&Ô‰šA A ‹ÄtqC MM·Ã(M¶J¬ T]—Ò#ÉCaBqmØt&Ò?„) Ið‚:ŠH.ì$à ê"Š$xÚI Hîª
$iÙ‰ð’A! A2àÆ–’ ÚUq‚*Ê!#£¡HYQHF•ÑÐJÒa»A""$y„íˆè޾Ûa”|7A$"Ð °‚èHZ A¶øújôЈŒ$’W„•Õ”9[HÄ5„ˆèŽ‹æ˜A¡[ÄZ@ƒ
6P$‹¢:ÛB‚
½´) ’I‘Ñ$y¢:.1#±tBEÓm8¤ºT™Lå/uI"<"_#æ4‹ @’1Š+Ê¥ÍoM¤´Øb1hºI¸i6¤£ Ф$ ’‚‘ËÂ6›tB
ÐhŽ¥š ÛJuTäMˆhŽˆñXŠB‘sA$#UØ Œ(m¤‘hRqÓµŽˆø …‚DœÛ<Dúaí¶!!Ô[Ù©Ý„[´†„TÁ45uD¾_3¢:ÓH- +›ÐCBbêÖt6´†4®.’Š@ʆ›«nÂ/J$~Y J*È´Tö#ªoˆ ¡?,ãtÊ’U¶ÃÚÅ":#¬ÞäÓÅY[œj¢ÑD!…cí6Þ™ÚRÖ"]
$‘6%ßJ… ƒm*DtKb:;ÝVÝJℯ„¢ÉŽP°A1àŸ«lÈÍ¢;#ÉDtG›@ˆ÷Qé$›»ÒI‘È’w[x"‡,⬾ªôÔ³J‚4b"GDxQNˆî÷¶â‚/‘Ò)Õ‘¦]S¤ØK ¡›íÛ AD4GEò:# …`hŽt¡òÎ+«°ÄA^jí´(i$GF0´OjØôë@Â#Ät¸á(ƒI0FËH™ 6—iht<€þ‚‹(r‡@ŠÒ[b")‘Õ;e”Z_a‘ÐAÿ<¾""4U¢:
ª¤á¿g_[c¥Qo„¥ÙGG]´ÓA[!0e“[a=;ÒI"èÓKhâk–ioA”0n™Gò$ äuTØvˆè Ol£cø O‚H6›VGEё̺enå”
„iS¦D0I$‚ltª-†ÒvµØHHºö7M6$v éAæûLÍXi)Â{TðEjA2cŸx‚!
¥v,«UÕ0†•´¶íŠAÒM…!°–AX¸uÄ®ÚM´ž"#Ap…Ò°ãi¦ÞT":9Ž©Úg7.®Ë.ˆ¹‹
(IÓM ¶‚º0©öšõJŠ‘‡Û°íŽÅѵi8o³°jÐAŽaÛíÐR<-S§ +‚e)L€à’ Ñ%í½= ÚnÚe2±¤ .Ð"ëÒU»
STU—í´°áÓí¶©'wzJÒ¤PÁÚÐGvÓ†ô¶ïDA+db!Pé:¥I/ÚÝ6Ò†nÒ#íÑ“2,Dy‚iRmFÒIõN“ì5“.…аÂVØ"‡XIÛt¾ÊÂM†“™ŒÅ&Dãh¬it¤Pé•Ýí%¶› Õ³ŽaʘLóÍ‹¶ˆøJ”$ƒ)2]‚InÑNºBÚáƒM+HŽ‹ E`@Š(‘Ó
„G8VÚ5ë¤GÐ#inƒˆÔ9/Ö¬ˆ0±HDR#¡Âº#¡„]„ê…(H$…‚´ØgÒh">tWLC*q¡Â.È™b’B)(¢·‡":°¦C} ¥AÚN.ØK于ÄQC„]@³T8†PåILšQC„¤©• „0é†GTQvPDMÅRM‚FóâGI•”GDr ™,i&˜Q×H0Ò*ò:M"::â"PœiG@‚ +GÈèÛHB-’3¬›¢>}x©M»i8e 7²:=
I¹˜r>G‹¢:<Ò#«`‹¤DC•a(ÄY)•f¡¢¼ãŸe˜H7 +˜†Ä0”0Á8-- A!#á΄R.ˆä „SHCg`ðaED|ŽŒ#Z {ÕÃG6¸1dt]m„y$@„C„‘tN""4a씔‚:#¢í!]ýâ#ÄDE HSq
Ø`Œb_Dv]Ñ|Â#¤‘V0ˆúj)Ô–ZR©Ã#ªƒ#â(¤Â’ $GÇ1©§ßw ƒx`$vzŽ‚@‚@†‚COV›ëul¥aÐŽŠ²œïa´GûACäQÑt‘ujÐI†ÓPá¶ÚŒ#"‡¿i¶š‘¤ÐA1úm:#ŽƒbI$:Nå# 2œÓ8¦Pà“a†Šê_AÈü³Vºí'# ¢-¢9¸‚(r‡ +Ý}E‚‰~²¨ˆéU±±”8;6‚ZUÌmv#,Õ„+r[,ŽšhŽœ›¬eÑt Bq†ÂB“N*-´GåœhŒ2;¿XA"°Y]†Y¸ A$ˆñņŠÙ};I+¡–ÑÚTLøU •¦On’‚0‰¹A‘ÐA AJŽ6›f¢Ð8 I A
TAEl‰7TÎí4EqL2÷ï’+@„4"æG›2M Á³‹ávE*ˆ¶v¨ @„DvÕADS¯A@ˆªÒA&8AIÆGJ•¥§,õiCT†t¡‰o9#
²èŽÙ"=M"8¤tGÈæP›i;Gtˆú‡LvÝA&ƒ>Ýd· +Iöí¢VPçp™PPáÃ+ Ž $‡¼XvöØTEPm\l3ð6Š&Ž×m4Ø"è$A ‚ÒÑtðTè%
ú±¸m¤¤Âa‡#¦Ö((² 7I‡A¢:±hDDIÓ ^®ûÃu°÷Hލºn¡JÚIªE '´”"ŸÖï:ÂBe
h3›„)PºË¤í›jÄRPû‘M$àÏÐÚV3‰$ïnDt#¡Ô7Ih«hVAA+¶é#¢:“H ά4„DD’#}¤Þ™~’+&E;‹fFS´‘@°ÊPR¶ä/ „SjÙbØIÚJÆYëÈèäÛ ìX":#Á%!†ßDtÙ7ƒ-º®Ã»mfÒ±té$éÕ°’qP‹íØ—A´Äq
ZU¶›~•´4´Ñ‚4!'h…í“z’a:éÓAÒICõ ¨Žšh©Q “¶ñ‘&ïijÃÜH÷@ˆûa&ˆHÇ+@B4GMˆ‘çIá†ÖšOnmÒJVVʦÑJºEDv_/¤GÁ!¨tì ¨:¤áÅÒI§hANû§A">ö,&U„I †Ã§líÁ-¶*âG…SÞ¨ÃgJ $’A¤ÃI!i$•'TÂj®ƒa;h ‚wpÙ„Ê–˜fnVÝ»A„5{JÛA]ÛËQ¥·gZN»¶’T’A„^@‹º*¨Ž°úu4vàŒ>©Ã›n@J +ÄT¦í«³M0˜ˆèºLŽ” P¯Nåfpš«!ŠD#:·¥´GL ZDp¨
áv2E +Õ!Emä«+Ì9CIHžëh,m± ,ú6ÎbV‚‹jʆÂI§‚HèC‚’#¦!(ÜÉ·MærAŸÂ: ŠÃ!‚]+Q8èº>"†]8ªA ‚ÙŒYfëom+Øb""¬žÄ(6Òñ4‚K aÛºE1
qä’Ûsý6"Gdzƒî'bº@A ò;’T„"œ5¦ý¦¤JÅ„ÑRVŽ’¨A$.‚@$‚A=¨QH´G_w» +ݱiRøŠ $I&7NeôíÒH«U«Xt›©¸Ž")-a„_ªmÃb·uÝ%Œ]´¬S#§wº#¤ŸÛaÔ-Õ ˆ"#á$È)4 Š ´ÛJ›q#*I˦Ü" 7L2†GÒ
S¬<ví²‚™U… ¨p‘”×³ì» mydÓªÚt'Ÿ
# š¦õM¾“TÈ’@ˆæÕ•(wM°š[a¥¶¬™²14"ݺBÛl¥ÆÙö÷½%A^Ô7Ú†Ò¤éXtE²ëvs#£É8I¦äM0Þ’»NÚÝì4GtŠDGEB#¡Pá$G"ù´ÒAµQGKm7´ÿL:*Ͱ&쎚#ÄÞ¼…_Ãaª¶ð‚·øii¾"j;#È$„C8å)Ra¤˜aÓ¤“J›WnÈ”Éí%¦oMèˆúV"GD}݆§#«±ItÛ$ÜI=$
$¸†rǃµƒMÑ®¶ÛîˆëIÛƒwØ#“qؽÕlŠò:«§JƒE·#Tžñ"øl'#¡ú¶F&š#é™zNê#é(„´ÃÒÁ„‚@š.‚:C°‹§¥Ó莗m±h0íû«¢:ƒnœ:2L¥ëi¶A …ê=mE"èKé[A´Ì……¥Vÿ Èé A +
7\¬¦ÜÈš#ärA'ÒÒMU»#P˜A»bGM¶A#ÕtÞím=A V#H ™DÝQU +I$—B¨/·A"×*á!f…I$6´I F„ˆéì[ EU‰[¦Ø‚=™ÒB$}Û±î
‹´˜aB ¦ÕTR–eƒR":ºÊ’T":„’DuM5¶â4¨¤E$8a¿ˆ°íÚt‚ÉB(ý²™Ýä+%ñ¶S”¹d":¤ÝSPáK8¢6Œ$é"na[ ‚ÚIƒ`†í&Ð2‡CHŽÂDvGA‹§K¤Dy±ë‚!álŠ…*Ñ‘Ñ#¢:V†ÓºA'n¨Ši¦2Î`ÄB •i’D}:;KM…NÙê „6›Dt]Ä“MÕDD †ÄCICwa„´M ˆûb)ò>GIǨܳ¤ÄHø L$‹¢:#¢ýÛ’´ö‚„"e}QtGˆŽ“ÒˆˆƒDPI6
„Ž•$é;´T ‚*ÂV’#§–hžG œp²çì]á´-xH Dy +ÃVøA b(¬6ÇMƒDx$+VAÞ!¤rö’á ‚#¡¡Â.±o¤§³!((0ÐzÔN1#«Ê,I¸ÝP@6ÓNIT N‘‘ÒCeZ#£5dµ9t‚Aa¼r¤#ÈŽŽ*‰ôÁHVN’ì¢: j¤¥A!#Û‘tG¨&Ä¿gb«‹‚I9Ûät‚HÎ̱A{M I$$~“A¥D®$} FÃì»Ü$‘i2†º‘t*H$‚ „Ì8F%ÕDA”8EÙhîV‚I9콅š´ÞÁ$’ˆ† "?PÎP_qËaRXˆ‚(r¬••±eJÒÐHE&ƒ-m!-%%0¦Ê«)+YC”9X—M_a8°ˆ÷!1#ªÞV $ˆ‚0á*¦´Ûì^“bÙ©¾Ã+f²::þ}¤bGA$©!M‡Ó#pIŸz%´‡ƒ,pA–9C›u ¡ÓøiºA·lAÚºl¡Câ@©´‰›²³2•K9«Wº"$“VÐQ#¤’1§ˆT’ªëDvaSm«+s ô”DD$Òa˜úAbÐ$m&žÚDtvøNÓÒ)!± ¢±Ö¡‡Ùu0Û¡g2*Êdµ[i%B’v-D`‚Hèº#Êì5:HŽ‚OûNÂmª!lº„HjÚl$,+¿gÙœa^ñD¢:#¥;HHñ%Òª§N^4;FÑ"‡ &ÒNʵn´˜Å Ù.:Äi ‹I&‘˜[e”œGfÖÝå:/‚ÒVÊÊ‘jÛ ô!.‹¢út"¬2:#öEQ¢¶* ÌÐ „$8g(M¸¥V’$è ˆûJƒeTÐdnSr„ÊÏ!HŽEØ C†[”½Ðˆ¤‚l®á—A á‘ëR<=•å*¢U‘ÑbÝšÄJåã»TŽ8<D2 ªÜI ’¤#™Ó•å2(T-¦ÚJ!»9°Œ">¨2=º`ƒ-Êr¬¡Ñ#¡|ì×H][aæ„RA2:#«°Êä#±
Z«•…¢¸Œm1es¦é6!94í¦CK·B,vVÁPˆ%D<ŽÂA#Ú&é#Ž&Û`âÛj“`‚IA#¼ „=$éÐaK4„™dtGé·#¤œ ƒ (Þ¨ ´›
Û(sìÃ+aA0–“t‰Wa2œæõë֛ЦêÔ1LDPDÚÑÞ#C•èŒÕ°°ÜW&é»J…Ÿf¨CAB¶•†åš¥ ÈÄ]RN!l©¢:¶ÙÍ¡%H\EqV-a™bGD| „RAÓt¡ã¢‡YÇ‘ì6Ùm¤…t¶›‘tGL*„„DQ^}¡^dT”‘MÁU(wPÐB]°v–d®0VYaV–Ý4aÔHÓ#ûxAÙÄLe}b((·á´bå>{„“t2°ýhˆ¬I+ˆ©AŸbx²‡(}é¤a(ƒ&C”å":#¤›º¦…$VÍhFM‹H§»6iVÂ…a6Ð7Ä0}Јˆ#xI(p…RƆé7I‚Ž‹ A +B-Ã|Šíí‚#ÉV΄R¨JLv»°DvãeB»ÙµNYË5\nÒl †û ŠDáƒuj’PÅ¥mÙJÒ‡·:¡V›WÂ(u Ü0Ò;5F¥„
´èqÚJÃl!.ˆøØEŽˆç]©› ÁÜ5Ei‘ÐAa‹hDäd#Þ¶*´žÙX …‚I$‚+y†I¨úIÝ¥"à‚/¤"#ƒ
Íí6¤û7mÈë@„lÑÓÊ‚äuy6Tª‡„REh">Þ‘Õ†ÌR +‹‹I0û4ø—Z@Â#âG\b à $GÍâ}Eô‘æPå2øcÞ— S‚l ìZ4Â(vAXA1.ˆè$•0‹ûuZ.‡¦ÃUa”G@˜†„CÃ#õI-¢¢NîûI½(Ã;ul3½*@Êf(JÛí$GN‚HZ±I†](|³Š' nºÄP"ú Ô6ct(µ,àH!#éÚÛcgbÉ3ˆºtNm†SpqPH$G`ˆûMðèhU!v˜I'¨Œ H ¢($.“§t·
¶á¶š +o¦á#ˆ0¡¶ð‘a:aXÕC‚¢-„¾m+b,=ÇØjH§¢:HŽÈòGTKîK¤:Ô«mÓ–SDÌâš%Ñ„o<¶C„
CAºí>¥•g#¡ ŠgDGA!шùÅQè M¤E:Nµí½!#›Ny ¤’ú• +Ø$ÚbGT–ì7W,¤4ƒ ¢:°@’´.GEÖ”Høn™ökPêé+tÑCË¥E[-ôTI";H‡¶”4¯!¤aÝhAº6ˆèBÚDq‡@‘G* +}Ý8`ßI”:mÒ#öùe¢aîÒrßšHþDA!.‚[":e +*±ª|²â
Ú&ØA$&!‘Îí¶¬C!R¯IUA¨é0Áª¶ÙC•ˆMBÕÁƒfJL2J‚m¶k +ÂR’}–ŠxhŽ…¶ˆé$S;£#Ätye–µÐD]”µ±ŽŒÒM…¥¸fF±v$\Ë¢;1㸋tå¿¶ÁÙábDµ¤ÃPÙØX`#Ú Ÿ*Âí°•¦)÷
[‘‘TÝ ã90˜ Ê€’#²õ¥mÖÖ#ˆ‰ÒA¤êÐ"¼¢e©[«v·x I$_#é ¤ÈºHB"8ãã,å*ƒ+bˆE„‡(rˆ8è"‡ ZqË+¦ÈÚm‹‰™Ç(r¬aƶÈéÙJãVHT’± ‚I"<Ò †ìj¶'ÛHDq„!I8D}\ŽÛ]«ˆ‹Ðïmµý*´ÃwöÊn’ØJÛi4“M™£™E¡u m'Ã*IFDÑ„GÈúEÐA$G²:.Òr:è:*7)dgi²¤8 „$’(¤‚JLöˆñÑD;M„(BóÂ#±0šhm0 B!!!$ÙMÂÁWº K9D×iA2:OA5DDD$Û´,+H4ÐB!à’#ÍZj#¦šMGa¦ƒ9 /' ›¡¤™Vz#¤"ѧj…6ÅR¦Òd
ôÁVœÖ–ïmYÎÐ"‡ ¾ÅjYÄ"ìºëXm."WUÓÞ ‚F°ìˆ0ED}[LÈ +´Òa¬&WAHÓ¾'¦AGM:cÄJ–F‹mh$·âš†®)7ihEÛTEÓFE>Éh¢4Gª„2œ¡Ê&©Û±çuÛ0–Ò#¢>*V›B-[c²-íœÅ$tÛI°œÈ«¡ÓÑ@‚/*¡Â.ꈮ¥TGÉÙ6¦»mÇ ‘´6F‹¤¬RLú $]ÖM‚Ñ„GEÆ^JÌ„‘¡5bÊÆ&jƒéá´‘SBG[Yü€ˆ I]“¢ˆ„ðƒFJ†’#! "?¨ Œ ‚¤$$„2„Ö“÷ ˆð DuØ`ÄDC:Ì!lM¢:áBGÇQob@‚kv‚# b¢# ‚Až$ߤ, ‚J¬B]ø@„E¥qtTX>°™×Ü~¡(aÈé·ê“꺆¦Èê“ëiHÓ»âÊt#¢:VªÒVÑVOe©-•HDޱíjÞ‚Ww¤èRMé.Іö™—Z†ÄEpõtÝ„ ˆõ"¸Ri‘6µ°@“l%z¤‘Ї¸H¿¤H¥ ±
íÓtå,Ü$ϱk¤”i[I†›kéÐPŒ>ÂKÒNÄBt,0ÚAî“zn„[EhÖ´ÈR8mh&÷ʺ$• št¨ì®m":IVÐ":{n’ Õ¶vé!麽(©7a†* +¡Â/6‘R]¤ÞÜèœV˜nöT6ÜS$ÿ¤¾¬ á¼0‹ët‚}": 4‘õ‰7kJÕ&é+ÄHè0îÌi]„–ÞÊÑ;a¢<¯Ó(LîAò:W¡#á¸%I-P`ˆè—@Š'â,ŬV“¥ÐU} ʶ˜ØA2Ý šu†ñ°™Ñ^bGIÔ&… O\ªL¡Ê*eC
‘ÐHŸ БÓËNŒ‘ÑtŠg[@– Ê$}8ƒ–ƒ²Ò2 @ƒR.ĺ#è":DLDk²TÌ.Ó†ÛíQ=‚! FÆ‚I">™©]ob!ÚÈl"‡ +ÚJ‘a"‡!$ƒ*Ȧ„jÕ¢«3 +ßtêÆâ"4"¤>GKݶ¢1U3¬GÛkNÚt†»H ˆëB)vÓ
ðqJ¬PC¶Ó¥i§½‡w²¶'¤Òºxe
§a ©±Ö®˜mƒMŤú¦›í[n™BGF»M^¡¶®… @„¶«¥ðÓÜYÇw¦v&©—µ=7ÛhŽ›»
ÑC:"èÂjÕ Ä:.šHDX0H$dtCÊÊ0±úM9Ø^Ã#»s*‰lŽBKŒŽàÈã?ÝÕ»Mcô™’G§B¡Ê"èòaFeYN*Èì¾GÑuZ~šh‘ãÚ*Ø&ˆˆˆƒÆG2;.ÈáRePIŽÊ‚…µÎÈZx†$ F·ŠŸÂE:EYV„DDA ‚e +í黦Î8A.‚Hèã#˜¤ÇPÅ”8!HDDZ#äs1ñT +Òh4)4G4V‡„‚Aˆˆa +‹²:#£Ší’E
'ÄBh™A‹b"y$]ˆè‘ò:6«@ Dté¦"1 +„DXH$#hºøGæöÓCb" $ƒ#¢>GEÓu EZ]!a$‘s#™Fj¯[jí[&ˆè‚Dr#£hÍ'T2]á7B"""Dv!.ˆù#£$'ûMÑÜ$õ FDs#±](`êÒi&ÄDDâ#ŠGDtGeÑôGF¤w¤ýÁ´ªöf",«EÉ›B”¨¶àʲ•^œ+#lº#ŒDBa‘É"ùÒD±BGKI0‚k¦“T „ÍŠH$™‡0å(ƒ‹é¾ÜQN»ÚhŽ‚"ƒa +A@’#™ò:#ät(#D( @ˆëµb=/bGA†"" ÒAªH»#Äv‘É"91"ëO´‚Cb ‚…@‘V‚½¢©û„"<"!! ˆA=0ÊÚ5Td
Õˆ¶"""·en–ÓLËDGÂBGD~·¨é4ÓB „^L“m÷Ø}„‘Ј`Ü[ZeG„t BÃ#¬«{Úº°†2:ŵڧÐ@ÆGYVˆéúL$´èA‹tî¯mÛVeúŽÕ¯Ú¤ëB‘ÓÝ]'ÕìZUK«k´RßéÕ‹
»ZµVÖM–eè6”&ºz¤›(Ø^!†è0Û¶º»a5Z¥é†’
.»w[MÂ[·ih6ÕºZz°ÒL">ôT ‚wVâÚØ¥î©ÓWz ÇëRµ¦Ó³éÉ4»»*˜AÈýéQZŠX$ú¨A„‚And¨‹£´¤G9%Êæ©‡m{nÊ–B"Š€jƒ#Äta’+Ê"莋ª#¥g:hoKH!Št]fE¨C‚A—DtšEЋ¤][i7uÝ0†¤Ç*‰":# @„CIÖ¤¾ö„4GÜA A‹EôR·wnô*Ù}3!iÅͲhŽ„2Š÷u[Å">Õ ²:@Œ!‹ªI/÷H4ÂBÆ"v£#¡e6߾ІˆûI6F%oI¿Ô7 ˆê„¿AÕZ¾ÃME†&VÓiÝvÞÃVÓ¦ªôÁÞ·MÒÓ±oJïm¿aaµH;jª_{oPÝÃöÛUm½":Ú]¥IÝ'#¦Ú»»¦Óöö’A†Õ=Ó]+bëÞ·Ý ÕïM¯·eQk2H}Óú%ÒnذÒÓªÚmQŽ›HHéµjéGV!]Xa‚Gdio™ÎfÑòõUYYÅi‚0Ð!g‚*Â.l ‹ŸÛH$Kf ›ˆGq@mÒMÅrA#ŽzahºL¬¢>]†C”8*KtEñ}h:Dy¢¨‚A†’B#mˆˆŠ]´Å‚7Ûº«Ds
µí¥tCÏúi”8Eâ>CIRÂ#¾þ›k?„„ ò:.¶˜Ð@„CiÑñ"쎅~êá‘ÐA ’6^Ô·#¢8¤tGF5HD3êBÚnÖðEˆˆ›¨HïX‹L7H2“†©aê‹<7I†P«‚‘wbʨ¡ÛmÒÚh¯nì•·b'´¬XkDt¯M‹¤¶ÂDu¡IÈ"l6öGOw`A«c|ˆÅ1°Áî:Td6’‚†Í„¨‘Ð"µÓm¢ZÖ·vÚi@I @¬$_#ät]]¯ek†ÚNúT‘É# ‚‡ #A„-ÐEnÓ Ø= +¥JÌ%
H „‘ÓK›I$^¥M0žòÜN«ºiD A‚@ˆêí÷‡n—I8aÈè „3—“ Aí5L?nŠÛ>*A§%š‡N«ªZm.ê]&ô¶Ö½Ã.ˆè‘ò:nðÏa ‘|¤,6éèËU & ":j›Ð H T$]lÄCij·'À’ A"*›“¤¸´"–InEA=J´’E¶“0¢·
"õ¤ö’klÔI)1qúHA•±’ +ÒT„ ŸÌm ‚E¸¤GV&0‚# îM±$ª•¤&ö"‘@…$„$íW†`ˆêYÁ:Æ)”I&Ü^‚º:¥xŠKl¥5,âÒ5ª;IÂoW»–p1‚ ™˜©!ŽÓhRôéåœžŠ˜ ÖèiêÚO¤¤| +)˜³-™¢:TÚ†ÕÔDG!¡a·Û´:µ½&Ò³ %®Ó®PÞÒDuMÝ©HdtGMÅêÌ.ÇgÚÉVÍV¸@’D£,êü(m%$© I ŽHºR·¤Aa›–›tžmÑ´_x:2Èéî‚YeRLÑêÚA"õ¦ÏµDGB"($ˆåÑÃÖ„C+aA‚õp +G5„ÃHDOi IØ4ö%Ñucq
؈r:jÝ”"ûI*ÁÑ‘yG†…)g(Œ–’ŸÍsi5lCÂBÚzt0ö}”†M7O•(0ÛMÄEä’Iº¶Ê¦T·ItZL çaHP'Û¾é:I ZiÝàϱ":e +¢è]6L*H7aºG±#¦ÒH"é4›Ûí¶St;ºá-XÖŸm$ÊÚtÚ‘Ð F7vï öôˆðä)_TGZé§¶v„ ‹ê¡µÒº%‰8HE”ÊI6´ÒUÚHŽ’HPní·ˆ“n-‚°Ì’övT1»B0ÓmÄ#¤ûª2Oš¤S‚/Û—Fˆ2²šG\[ÑU¤ƒi[aÚŠCi ƒ(-ؤ]$ÖUM&SíÛªÍpAÛ6yR¡I/VÛiÆõvún7h#ªExÃj’ÒuMC
Únï +¶’@Š!mÛjéµ§°›©Z§t„CÒè2¶¡ß†ÒvûI E:}°ÖŠÿ†.Kw«¦Û§ºq-Êd‚m\j,+PÊ
ô7¶Á×HŠÝ¶VÖPEsì̸´š\;ÛZi¤÷CQ!¢tGEÑÄh8F„]õqt»M ÞÓ°Aº~‚+¢4A$q¤’EÐHº#˜¤‚ I ‹‘tÝ ô›iá«i+iÚì6GDtI}R $W"„Ï0šH7Mµ¨m¥ÕÐ^DÑh¯èŽ‚ $šg“ntHHê÷{°Ûô–‘‘¢-„"6$¡B˜c[«ôž‚L:FII¤„¿a™¥YݨDØM[mäˆê´Ý%°IùEÑ´]Èè„‹Â":èS-Ê[*ŸAŸä);m·M\D$‘‚A"GF–©"166SéÑn,Í⪘ A…龕i9.¥œ¹„L!:#¤‚;ÂA +vA¢ëA4¡Êp‹Á·hB;zÓiSi*wiÑÅG°HDDR „Xb:Dt›AÐJ˜go«Ûm¨N,㨄ˆ‰&ƒd"Ûi1.ˆsnâ‘’uK’TÔ5A[]ƒotØ…Q \ÉLBéáÂÂBÙ'v½C†’ 4CÖ\ ‚‡¤§ˆÚ"[cµêÛ݆WaMå:Vá!l«©3WÒAý&Å":iD @Í m —¢*ƒwgÑ„÷I ˜iÒí. ƒi&º§aº|*Jâ,$„%f¹YíÞª
vS¤*ȶT[¢ÜMöÁ&Á Û†cé6
ØŠBT@RJ•…'¦“1üen…":EzÎÇM¨}Y[%Û<«b‚^EÐŒ:W«®òJ›†*eJ´L1¦‘0F=ê ]¼>%..š
¤ªQÃB"*#²:.‹à¶šVÚ Dxލ4T
NÕ0kmžUCIY„ϺÒH$S„“é$ãIÕ¤GðŠâVP"‡ $ëô÷’ 0…ê›@ˆþB4LRA&CyÚ®˜ˆm5HIS!´î›[Ð`íµa‚Û¸ƒA¢:–qde2'®‹q-!ÒÞ“Ý]tGV!h`‘p\¹¤GI8¨µv¡†mÃ1hA-µB2ÎE§#ñ¤èWö‚t–°ÚT†M²l/,äÒMA) ‹¢:@Œ2:0™Nt‰kÚú¶e7
†&›nåœ0ˆˆˆ¤ù0‹¤»tÖôÃXJ†ÝVÄò.„K ‚.ˆèD Õ$ t•—’oâ½GW†‘ñ’#Çk IÞÚ‚ZRb@‚mÐDx ƒ
†ß@„B ‹™tHººqWhBK§HpŽ:†ôñ0™‡(H®Dt"‰Wrš
f£#¤“RÝ+Im": väØa6ªJU”I›k(ŽAEP$Œ'„!n"Òᆊ6Vˆí#Í:qlA”9LÁí@ƒT’DimÐå>/Ž-ë +YÁt¡Ó
뎰ՙ\f‚!„4ÂDtáa”Ì +¤GBãŸu+¬2„úb‘t+24ÃX VP!PT’f¡Î9Ç&å2ÍÙ¢$´hµ…¼1¦0‘Œr`Œ[ƒ2";I‚E8A"é%ÂhŽHŽ·r„±Á„]\ÔLµ4 „M$"‚HŽÜ6"ÒCëo™#¢:#¢l aIà@›ˆGÄGA"")z„}¡+Òâ"(Žˆ‹,娎ÐEÐAˆ‚(rœâGNÖÚXÃ@ ’:º„>·4éðÙ‘L’H$:9g˜A0‘í6šN›‚#˜4 +-»pA(u-ú„×oIº2A(¤ŸB*Â/ÝçjÒiXì2:<%!:›Aá‚«L¬LæIÚ `Ô"’SODuC
ZiIµ¶Q³¶eHb#ät:}
Ð; îU°Ût4C„) †û¦°jÒIê“·…„GVñmöÂaƒ†¯B¥ËHCPE:.‹ªaA曫RX‡ˆmÅ$‚DxŽ•!½&ô¬Ëû¶§] ‚aDt_n`ÂNGEº¢N…*J¦AXˆˆµTíÚ‘ÓV)¼´ŠÓ; œo
$ñ÷xÃ¥V‹ªi;¡Yg(ÈìvÚaÒMU¥)Ã-ÈDt_º¶HŽ˜k{Â)FÒÄHä’/¬$GA‹ySÈH[~T¥UbIôé»Xgf:a&‘Dw–¢êÊ£A7eOLÈ”Úr$ÙVEn ¡,!#ôw{Bô¶ ÐGr°ÍÊÑ_‘tGd|ÆCH+Ñ|%•UÂ#¢:nQN|ެ®;&U„"ðÓo†GÐ":M•±6ØÕˆ ‚y’Ú#¤GB3”ÍO +–d—¶…«[ áf€è$ÈèDZ ïeI $–í¶„P"9é…µIªÃ–0HŽ…¶˜Ude8v(²¬)Û$(S•a¤›2æ°†ˆõ B)$GE‘%V|TCD|¤a!vŸAŽì#â
ái4“ ‹àJé‚R‘Õ1H®4šA2:#¢>GDqHøA»DuÒƒÂBÃ#¤ôkA bŠÄÂI°nÃh ÁÔ Ù]&×JÄ „$’Dt–Š#iÐnÒ#¦ˆðS®W0¯‹¤""7fJ¦(ª9CžEq";¥aé—íÐEö‚5†GÁ‘Òd8Xv‚'@ÃA6ÒWhºÛ| +»…½U#µ¢:Mì¥ÉÑhÂ@D(žÈ莕‚#µ¡š·ºPÎ'»HŽBÃ%Ód40Þƒ-t-4¬¥Õ +pi˪MDD0Ã) ßΘaöÐaÙK– $ ‘µm°l"è2¤)Té´ÞÒˆ#P ‚:N¨È³lHý’0é ÃjÒygÊâša@И@Š @’.šJÄ0Ã*@hzÞÕµˆA$"‘„""Â:ªE˜D|MîÃNƒªž© +B$t¸Ñ‘nÃnÚiSW»„BHè$®ÎÀû¢nÒíǸ0ÛJ‚hDÒŠ*#¤Ž‚`Á°Û´ÆˆŽ•åœ-ÒA²:µLEßH0Ú2AÔE»¦-’êÒ¡ÊYXhÛŽÊØr1$–Šô˜dt'º¶Áµ‰v!†’nòΈèH$1¥VDˆ&6ÎÌ$ÞŒ…´ž?¦‚H‚‘
Z’D}Ã0ŠvFc0y„_«LCfK:ãK
„I(•ÎœŽ›·H¨ÂF8L#»F0A°6«Nõ¦ôŠI$Æ`Ê +i R:g´G)ʰ‹é½î¡¤¬£„a†íR#è&ˆ²„Â` ’!1ˆˆÐJ„DV‘t):Ò‹Hæ$t"ŽB2—[–EVˆèC
»lÊŠiE´›¶W ÛJ˜4g°Õ¥B=iÔ’É™²:Ã*H‹$øg\A@¡‘ÕäÆy0Dy/#dŽ®Æa˰¯EÓ((Y…J¡";#åÒ(¸PBÎ9E0Á iŠtG׊bʆ‘#“ÑŸA%öŽ„ F3è Ô5Dt Óˆˆ†’†Ä ’A"¡$#Ž„Bdz¥‚:#éAÂHHð‰>š‘½Þ_T#¤!ÊŒB"‚/§²‡B$t’%‰(A¬ ƒuÄDl „ˆg¡Ê$I‘ðA4AQ¤8@…ë–qdEú"è ƒLʗψTD”*d}; l0„Hø„U˜,b.Ié%dÂA6Ô³‰ AE3 ‚‘ +duWL12I$ãfFDGÈùŽÂ#¡ –,ªWº8‚N)›I>€¨Ž©
ÐlŽ„&á‡b)$¤ÆÓ;rÈADtGdv,›4%H Ð6’Y‹¢æA2³tXˆ‘ôU‡IlK«vÞ‚A¶¨R#ýˆ„"ܶ‚!mªA™Â ÓdÂmîL.¡Êã²M$GL¡V“Ã8à‚J*ijÆ,0E2"Ó0ÚúCFàF%:*Z&~YÀEbÄ?mº ƒhM‰2›–5ŠDt¹Õ3˜ °Á¥b’A-”Ý9Há1Q¢<§hŽ´V¢ÒxÐ"?PÑ +`Ó@›H$“„ša”ŠZE('Iˆñ:Pá4áúgt@’N-ê$~!ÂLHèA˜sŽ’@¬AœæÙ™NQVLca±–‘Z
4( +’ ÎõA">ÙEÑ>)ã©1H2‡VL+>ê9ªDE6T¦mÌ– ‚±„ ±w‡G„GIƒ+bèRûb!#ÄtGAý¸zB-%pšìŽˆê„\ÈùxŽ!½8rÒ-‚H%&}‹!ˆšÑä`ÔPH Í¢8Ð$¨%ƒ>ð$’a0Êâ‚Hè$‚+ˆ¹‘ÃH¯@%‹FI[{„›”$ÛEj !‘{ !‘Xs”8B"Þß0‚¨$«BqÑ| ’#˜A +hDDRNîÃ$¬3² +·m±„C+´ï"‡*ÁL‹¢’†¢%Ò(u}ô„!VVÅÛ„ˆú}†
b,‚!q¢6«
%¥OÄŽÌ"::¢<‚A EÐ@…UÁ$ Ü•âGAÓ(r‡(r ã i„"4äSO
+w
(ˆ#âi A ŒBÚ†qʸX´BÒAµ†På’S+¤ƒEà•ØM¶DDDHè[q@Œ$©ÑN¨0ÂÆ¬B žIý6”0‹°‚ªB‡*EÕ[IöØ"à—pâm‚UqTîxU:ƒ]RŠLÐ7q:#¢:2÷ÛmˆûI$‹ ÓýôU¡HŽÚI6û[V"G‹UÒfJâê›nG‚ UíÁ¦ÃwM‘„GˆèŽˆéµñ2Üþ¬DŽ‹¤J9\ $’/‘Õ7TqG’GkºH$GÈè$ÁHXBÐA$GD~êÐDv)AL¢eQ±#¶!„‘@‚‹ˆˆŠV^µR¸è¸àŒa @’@Œ‹!®"=„A,E]5M,£b‘Ò@Ix¤ðïg`hB¢Í"MÛ.hŽˆé$„´°ðÃJ´Í½AÃ’DtÝQZ0fÑ„B",¼8áÛDuì-âVÖâ,Û++~–Ä" !¡emj"Ë9bmÎÊY|"äúº; +KcÞŒxg!InA))Ùn_H ±KjÊ ‚enn´@Œa±hŽ–YÄv›É”èG B&Ñ¥µÈ4œ1V€Ó"Õ<Ì(wA1äð0`ˆ2 ¥¶ÚPÈè¤4é˜Ú&Š¡ßj&Òm—G‘tA!õ¤GB%Ö°„Cdº¶zTƒduÂlDC•hŽIŽh"øâØGp‚ˆý +„µ´Ö“·B")PåL¬FÍa‚ ¢7tÞûKq.ƒÒ@„Ze)Èé1‰¡nªØb¥bj¡#Ù[PÅYJƒ $:o ÙšK2ukIº‡X°á$Ñtm¶ ™C®´“qnÛ\:ckN’BCÓƒ1½K9„GMÕ>CM ƒM½ÞØ"‡ çd¹t_a(r‡ ":MnÞšâÚY_T–"8A0 “Dt‚›¶L¨)Õ[}µ¦Ãm±JÁ „$²:Zé4øýBA{YšA$"¹ ‚IéÓ<Œf0a ˆõì¡Ê²”Õ·mêÞ.‚)Ð ‘Vrw¶ê‚’#£D•¸¦SúTÚ@Ž8[‹L#ÝØA]-˜Dt*iÚlÂ`Èé¾Ã‘ÓV„Žƒ|-‘$£ !AõU¦ñé$˜*{HÈÒ8þGE"ÞÄCçR
_Dº-,[ÄŽ˜Du{‚†˜D{Þ„ŽˆúU$‚¶Ã$!jðáwD~Ôh޽1a_jýR¨ˆe¡[q„m*YDé‡Û# IÜCm
&ÑÙ¯»MÚ~yÕ¸hŽ‚Kgy-èËç$†Sro°’ºØJÂWâØU@Ï4’Ž‚Pà‚ ‰RÒ
øN¤GH¡a†f~ù•΢±»ƒa-K"ÑÈù#Š">í/"<)8âGN°ÑNvá +@ƒ·$Ñ+HN$Y7(-º?7
0@…†”0‹˜Iª"<’+Î$••±Ú?$tB‚1ˆˆ£Ú94˜·ÓW·ÂAj
AI°Êغ²:©Á8F4ºèžS”élCñvtWä!‡Kp‡ÄD A ‚µm ƒbg_K¤’#¢¨Á”4Ã+b¨NÍtí„-V¡êˆqt÷I¡#™’š4A$¶p8·Ma• +öÄxA$ Ûö¤ð„)$@ƒ(L¥ÒîÒA•4hˆêÅ#«KÕŠŠŠDLM:ÒÚ¡IøIÉÑ#£"½*#m M4Ý
ŠUu`™¤u„Sô©]Ý™S¦”´‹7Ä"¤ +P建¥OZ¨A7RA .‹ ˜¢‚®šDt÷ïXK ‹«LR Ð`ÙEÓÒé-®áxuCDtd4ÈìHé˜'¤œÈ*ð©$õ´…’’‚±õ¢:é72$VN‘ú†“`ד"©"èE&ûAXžDtqGä„E…t‘P¬´…ÍáIÊ ÐDtÃz fD²BGÒ#ÉØ@›™) ’LI†ívJòé±$GI‘ˆ¾]ѸÚ$+„GY".IIH§B12¦ÒTŽ–R>w}´( ’Dv&oRQÂA‚`„DŽ‚DA8"<Õ‚ +ÞYÕ¡ÄC<¸$M¤F4B ¦Á…Ä2ŠºCÜtAˆèL!M»TËŒŒ0¨È®FÌ•/ª´ ÑAjñ6‘XT‹"/HR„•',êò!>"GA cB $GYÌ$’`ÊT²ŠÝµAªaË‚¶¦Lv#¦‚#ê.6dW„ÚîYÉì§tOA"<è"éE¡à]$G6•z¤Á–u¥¨‘âè *akeš:Ó"9í|(q·@‚EÑt:M0Ñ WbGA¬8®ÿAº±’#£ªPà›VÜ`Â8é*f:IúLB’DvGB4G[u†Jö‚#«moov"qË£ºh!¤—dÇ8+ò:•6K«¢Ä ‚D|ÂPé+m·"„JPGu^"Ú¤öì7tAÎ(*++(»A +UFJéÙH¬$ž´Û†êÓÒjD%‚H"ñtG@$í7v›Š†„Á„NÒKgVÝÖ½‹ˆŠÑÑFðˆ ‡U#H*ŠDx‚5‡¨V¥jþÒ‚#²ŸÄVqÉŽS•W•‘ðElVí&ÁÓŒ ÉùXC‚MÝ-´ÇoT›[ à’ˆ ‘X’„ŽH$ÆGA*ÚJ›/‘.Êt-b©Siˆe75vÓxI¦."‚7¡ˆ¶é¶„Ž¥r@ö†Ð@Ù¯íÑ•":„è‹øˆˆ+BƒÄK¡µÞÛ¶uÌÕ=ÛM!”Hº@‘tÂLiÕ=;{º
Vƒ«mîÕ´©;M†Ú¿AëVúÒÕ-¶ÕVÐOÂwníéÝ»½é#NÚºDuÖ›®"<´•'Y‘c4_Ih6j6“iªDt8o}"?ØS ¤&P“ZAûj“xiÄ[«µé·I„dY‚" •7Ž“:ë`‚#¤ƒ
r!6©=Y#¢ý¶( ¢=6êƒn’i„·Ó¤’A$ib=¨¥pŠt´Ò Òí¤Û "¸"â‘Ñ„GÈë|›Ÿ}ÈuÄK«´ƒz¶“B"GA2¹„A4®…wH$kô•:Dtýí
ˆ„Œ ‚A%°êý1@ŸCªB®èDSªëz î6ØA†MÙ1ˆ@…-i6Ð@ƒ;î鯛nT#û +)Pئ•Rctí"b tÓvívƒ¤-ÝeqÒáx‘ÒB-õt.›[q.©Æ¡™½¥Ð@…Rnš^¸»kí6JÒŽ¶Djwi Ĥö/r“ôÊ–qÛ®)aç_=´KHÃ.'ÈSåFÝ„¨t‚ÉAòæê4Ã>Å4‚Ó¶Ó"DqDv!G³íbÝ«NÄ6þÑ1‚0ÐDtõÚ<š¢Nª´FYÇDqvðÝÛ
0Â{a•¤¶ô“B· ‚HDwMÓkº½U"ÃoI·NΉ«»iØ";µ“j…4½$"ç¶“L‘6ê&›Gwe:uhÉ/hÚ6‚(zLéjÙOˆ†ê‚VÞdDs/ˆ IÛN’z»p‘\sHB]½HÞÜꋤ²Pˆ—B:#¡]mÔ7V4ñ±éôF+
ø‘Òm ®ªÓ–pT©SjçT5m¤½5;lY@OVrú„ßl;0 w¶‚AmÒTd¤“NÐIMhŽ’oÙEö¦ÈÂW2XVˆ á7¨"™‚–™Æv•Â+„›u
3 ³:.Š…™(g‘ví”÷l&PˆçM|I +fAx˜PŒ ‚hâ#¾šA%nìèIDІI ¤t"GÃB8¤.a·‹¶•2«(p©†0Øv"¬Š9ŽQT&"Ь³…åÑÑf¼ÖøÝ„ƒ@ÑI$Î ‚EU„$|I„#«–rˆŽ ‘#£ %
$Ú¶tDt4L1váÞH $8FHGPìD¨‰Ä Ò.´÷¶°AX"›ÕIP@ÒBŸB"Ò,⑘!L¡Ê¦eû¤‚#¡°Ðhº:#¢:u¢: B"%ò?¤Ü³1e,´ҴÛ.ˆi$¸ˆ;B!”Yz‚(r‹ÊtBGY“ÚÒA†m‹D!#¦©mV-TDB>Ù~ˆé!†¯…†!#¥hÁ¦ªD³"¶1Q ˆûDu“pn•aÜS/¶Ï[lè+d‡p„çQEÓµµPA
ƒÂ,…Õ ·¦…Ag¦Âe7vMñiH6**!$®xíHHA3Z<’AÅ:A»WÐDy¾ÜPEÑÙhÍ¡Fí¨6zi-K8NÆé*Ãv,b!‹XÔ6òlQ£;Mø†Ã
^ÓŽ:.„¡êÛzb£iË:„ݶ[’#¤ÄBÁÖ
°òºNЏ6N’x¶¡}‹"Ù …8wH7¡ ‚m7»
Õ\Œa:éa‡Ù]_mÕÂR:AvÝÓ«#’
‘Ó¤oAÑRˆlXÞ4•Ze—H%Ží‡á1l\ÿWAîÝ‘#Ù«(t( ÚT#§¢¸Í*ä"qHÉM,9ÒˆgŒº÷î ÖÂÒ†ol¨1„ªÃbÂHºE°Ý!Ea ZM
F+¦‚#«¼BA":#´ªºN\AöʳC(pÒƒ%Híb@‚xf)Ø¢‡»ã¤‚AMˆ6öP쎈æþ":NЊ)ÒI8Ho +èÈ·î Ú(tGDt‘‹™t_±pg(¨%`‚{iRM(bŽ3Ç·ìF‘N‚i´ƒ
ãh$‰Äv“A«}é!"éiZm=A†•1›¶ÒÒ~öq¦ƒ§
ÐA7µA´úGXuIm-;[kµ»všAª¦Ö¡$ÄŽªƒVON©î“J½4‚mZV×cl6í¹¥½ÓoAfê©SIúÓKb“~-›IYJ>m2M(A+m¥WγoM'xm*U÷ +õÆK«·Ë8*¡¥m2MiÕÔ ’„FÌš“uM2›™0“m^å8#ëÝvšZU,ãHD Ô뺺c„6—ÒÒ ËÊ)74k¢:AæÅº†¾é%“u¤ÎU lŽFˆæ’Õ²y†¯Q „º# ES‚/' Fò<!«•yNšÁp„DDPEæª)"9 FEI:á‡ˆÜ ¢(/EU +ÀË¡að¬: ’A“Ü;E:w§í ¢mP ‘VˆúB•†Zzˆ¥D|Žš|8h¡Þ•"‡i¶)R
5ÕMˆmª9oÜXmjì5PŠ"úKµoTm»b("ûøNÚHVÛºHr—)uLXi]Øm%2:JôCÕ'Wr¹9³"É.½é†5ÃŒŠY¿!4Ô[wP@‹É„{(r¹“ËVP›h•ÔMÁwOÅ#á¤
£ A“ÀŸ¦Ó´º
®é²¬!&a„ÒÓV¬~„Si¼ EäˆèA`„D0‘C¯¦Ñçnɸ&gUTC§I.†ðG¶ãB¶6™Z#¦Ûmµ²Y·BسîôšI·&àˆ7Õ ›KkÙÑXºk¥ªznÛ´‚m Ŷª•÷§íÒ·vodÜÓJÓÖÒGÁWnµJ-Š“p¼+§¥mƒ7»•´©×H§Zl E’°Ó}ÂTÓN‘&GKÚQ¶VÊÛ™4ˆâ‘Ñm*m‹`a2¦ƒ8ç£pCŽW&õ«¤ @„M ‚A ¡“qm™×VýDDE#¢>ÂZoKH$’A…ªµÙÚš{HŽ„X#q
ïÆÒÄBë[¤â({jöd%Š»éÓ©í¤"ŠtG»é‰¦™
âuдvª·HD#¿xþd&„=i3µ=Ku¤GÓÔ ‹ºÛA”ljËíb,"?ÚÄúùžÂ#±„„èHèXFº;%·YpÝ0‚kˆÓjЈ0Ì.™Ù"#ô÷Ì…Pl{W¤‚#ÚŠdÜ$D/†Su¨‹§‰C^DÒ„„Ïm¬&¥ÅÄ·Z×¼7_Aù•$Ã+j5D~ #tªÚWMëC]ìtÕ¡‡aƒ Õh›©xi¾’i©g[M´© ˆút›¶Á¥MÛ¦èRaå–u¤©( ˆú~ØÐ%¶ß&êH]»†sa¥®„$î’a”9Í’:®$t¶Ãˆí·L$!/[A¢>©'mWa7•æš–p•6ê5¦ßºWò¼b»ouº24I°é7{ÖE=îÑ¥[´kØ[{¤dY—Ž I-ôEÓÒAÚuI`в¬BCcM=Þ4ˆú)Ên¬ã‚#ø"ølŽ´Ò}ˆÒ°ñLvïÔ¦Ê(uªØÓÄ°ÊØÕÒqÙ:ØiŸZh }RIÇÙЈãfìÌm»]\ÐÃ*Ê"ù¹^ª´ÊäÑÕœDutÌäGDtBMkAîÖ Šõ"8ÄFŸAƒ=ˆˆˆˆµM¨„‘S(r‡(s®î™œB=6Ô66µBGEÕñ7Ñ&›ÓšN– úN…º½ AjÖŸºóe’=È8º Dw°í1Šî!·Òr-º*Ô"<¡'aš EBÒiÓnö ì¡äuM¶Ãv’Iš&Ò„•ë4·, qt¤ ú»oÚ>ÚDx7·PÃê„$GNA$ u‡Î‘'x°š# AaõL7Ú«Er âí6nÛ A0á +EÓûl$GA·JÐ @’HA ‚[aˆ¦·B"Ñ;[žDtÓ¤¥”i¶_+Š¢:zmƒ?=]°ESá Óo]Ñ +mÝ5Iƒâ"GPª´‚MP†¶âm'ªŽ”K™²?{* ‚i6¶•Ò<-8@©K§/lmDmD_^-Õ½U´©…ŽŸ¾¶MÔ‡a8I]$hÓ×m¡Â#Þ4ô‹v6»n¹=XkÐ":#·§*6ê,«/dûD}º¹„"å±°«Ãˆ`ˆæÝ6騆#£ª´»JÁ*Kn݉ü6!ã”vÚL7´BB‚H‘ÕSª¤™\EmÄCEÒk†ÝÁ8 EéZL¡ÁÓ«z¤ƒaWhEöÛZ +! úŠ :oÁ"‡@Š$ÉtGîD±kn¨±EÄ3²¡k¶Õ ‚„.k@в™N÷m0éÁ0•GŠ@‚@’#ô…%¤Y +^‘ð’B’H"þÈ=Ã(À0JÂEÒA¦Èú ¬cAí";(s¹NUŸj"xUI®¡´ÚƒÓ«H ’H">¤ÜÃJ¢’ +S é +˜v…h B I$â!:{<“A‘øh$"Ê·ÄDRRn„UÄ ¡eØ‚(pˆöÄqÕ$Ò)Ò 0Þªƒa HIòé„GA†‚#õí´2èHŽC‹w´¡…Â; AA´úNÔ&ÂHø"‡ m'aº½‰[ „R i h%¯A
ß§,XH6]7 ’¾–ÐD|C”ê@ @„"‡A¿diºBÃB2‡L«“Yg+I" 5lÁNº˜&)Ðiâå" Ãð‚.È¸Æ Ë9]ˆŠDuV(«(P¬ ŠÅP%m<YŒ":ÁÆßpíX"‡mœFh#ÚPªžBdti0òÈJšã„\ËÀ$\ÁH0Dt” “§T"(I"¸!’{Mmð±&’.„E(AjAú^â" •$º«y7A!GÂzKÐñ +•”›‰¤igàñ²
Rn$t›dt%¬0•²0Hi +L㕾 Y +©2¶#ÅÕ +Cw‹ªÝ‹-Ê$T’Œ E»ˆH‘ó +!{
ˆ¡ÕR#ä4]“ +Û–I¤s. ‘ÌBEœ¬DþBÊàCUQé!¶"YÅ}ÐÒ[¶ZÆŽ´—%Ö‚N¦Fb—D|¶Õ H¡Êä‚.Hè¹Ñ×J‹Q-„HèCG€’hŽdxê)a!Á +A$VA½Yj%iX‘Ф,§BP#hŽ‹ÛºÂ†""Bn‘H+uè_á";l¡×h*aŠG¯G¢:#Ñ»„“ÄtƒV$ÃA*i;DuLD(„WGÜ6+kN$twh¦S)J؈Ðm(1·VÙØº§4Pµì8‡¥Jñ;ApVÎÊ/u–«¢>â᯸°ÎÕè$}Z´GÂH!ë{°‹¤(¶–ªÅŸz1¢:!úA—¹„"‘¦®Zµ¢è#®P§°HÂÙÙKTq‘|–#<#ÀCñAf2:mGCKÒEâ®gA#w@’@Œs1—@ !¦˜ˆ„WŸ¡ÚhDŽ‚!HkˆˆÝ>Ô}Ҿ嶦%A`ˆèŽ%ÄDâ1º–ØV!1
莄 FÂ#ïHDBH.Ê Ÿq‰_Ó¨‘ÕÒ©mŠ£4$uËl ‹ävGFÝ E ÈòJ $A‰gÙ…ˆ‹wA(pª"=uëKêžKUg¶Ø•ÌÖ†%ª´Šæ~îÛ‘úh%¢‡°V†Ô!¥¨+qÿÿÿÿÿÿÿÿÿÿÿËIcÿø +endstream +endobj +1 0 obj +<< +/Producer (MFPImgLib V3.5) +/CreationDate (D:20130709142703+01'00') +/Creator (TOSHIBA e-STUDIO520) +>> +endobj +2 0 obj +<< +/Type /Catalog +/Pages 3 0 R +>> +endobj +3 0 obj +<< +/Type /Pages +/Kids [ 4 0 R ] +/Count 1 +>> +endobj +xref +0 8 +0000000000 65535 f +0000043625 00000 n +0000043744 00000 n +0000043793 00000 n +0000000009 00000 n +0000000160 00000 n +0000000249 00000 n +0000000279 00000 n +trailer +<< +/Size 8 +/Info 1 0 R +/Root 2 0 R +>> +startxref +43852 +%%EOF @@ -1,31 +1,32 @@ -\documentclass[11pt,letterpaper]{article} -\usepackage[margin=1in]{geometry} -\usepackage[numbers]{natbib} +\documentclass[draft]{llncs} +\pagestyle{plain} +\usepackage[numbers, sectionbib]{natbib} \usepackage[utf8]{inputenc} \usepackage{amsmath,amsfonts} \usepackage{algorithm, algpseudocode} \usepackage{bbm,color,verbatim} -\usepackage{amsthm} \input{definitions} -\usepackage[pagebackref=true,breaklinks=true,colorlinks=true]{hyperref} +\usepackage[pagebackref=true,breaklinks=true,colorlinks=true,pagebackref=false]{hyperref} \title{Budget Feasible Mechanisms for Experimental Design} \author{ - Thibaut Horel\\École Normale Supérieure\\\texttt{thibaut.horel@normalesup.org} + Thibaut Horel\inst{1} \and - Stratis Ioannidis\\Technicolor\\\texttt{stratis.ioannidis@technicolor.com} + Stratis Ioannidis\inst{2} \and - S. Muthukrishnan\\Rutgers University--Microsoft Research\\\texttt{muthu@cs.rutgers.edu} + S. Muthukrishnan\inst{3} +} +\institute{École Normale Supérieure, \email{thibaut.horel@normalesup.org} + \and + Technicolor, \email{stratis.ioannidis@technicolor.com} + \and + Rutgers University, \email{muthu@cs.rutgers.edu} } - \begin{document} \maketitle -\thispagestyle{empty} \begin{abstract} \input{abstract} \end{abstract} -\clearpage -\setcounter{page}{1} \section{Introduction} \input{intro} @@ -39,8 +40,10 @@ \input{conclusion} \section*{Acknowledgments} \input{ack} -\bibliographystyle{abbrvnat} +\bibliographystyle{splncsnat} +\begin{footnotesize} \bibliography{notes} +\end{footnotesize} \appendix \input{appendix} \section{Extensions}\label{sec:ext} @@ -1,32 +1,10 @@ -from mpl_toolkits.mplot3d import Axes3D -import matplotlib.pyplot as plt import numpy as np +import matplotlib.pyplot as plt +from math import e -fig = plt.figure() -#ax = Axes3D(fig) - -#X = np.arange(-20, 20, 0.5) -#xlen = len(X) -#Y = np.arange(-20, 20, 0.5) -#ylen = len(Y) -#X, Y = np.meshgrid(X, Y) - -#fig = plt.figure() -#for i in [-0.3]: -# j = i*i -# Z = 2*X*Y*i*(4-j) + (X*X+Y*Y)*j*(6-2*j) -# surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, -# linewidth=0, antialiased=True) - -#ax = fig.add_subplot(1,1,1) -#x = np.arange(-1,5,0.1) -#y = (((4*x -24)*x +36)*x-16)*x -#z = 0*x -#ax.plot(x,y,x,z,antialiased=True) - -ax = fig.add_subplot(1,1,1) -x = np.arange(0,1,0.01) -y = np.sqrt((x-1)*(x+2)/((x+1)*(x-2))) -ax.plot(x,y) - +t = np.arange(0.001, 1, 0.001) +u = np.sqrt((4*e**2 + 4*e +1)*t**2+ (24*e**2-4*e+4)*t+ 36*e**2-24*e+4)/(2*(e-1)*t)-(3*e-1)/((e-1)*t) +print u[0] +print t[0] +plt.plot(t,u) plt.show() diff --git a/problem.tex b/problem.tex index c21135b..73647da 100755 --- a/problem.tex +++ b/problem.tex @@ -6,7 +6,7 @@ The theory of experimental design \cite{pukelsheim2006optimal,atkinson2007optimu Suppose that an experimenter \E\ wishes to conduct $k$ among $n$ possible experiments. Each experiment $i\in\mathcal{N}\defeq \{1,\ldots,n\}$ is associated with a set of parameters (or features) $x_i\in \reals^d$, normalized -so that $$b\leq \|x_i\|^2_2\leq 1,$$ for some $b>0$. Denote by $S\subseteq \mathcal{N}$, where $|S|=k$, the set of experiments selected; upon its execution, experiment $i\in S$ reveals an output variable (the ``measurement'') $y_i$, related to the experiment features $x_i$ through a linear function, \emph{i.e.}, +so that $b\leq \|x_i\|^2_2\leq 1,$ for some $b>0$. Denote by $S\subseteq \mathcal{N}$, where $|S|=k$, the set of experiments selected; upon its execution, experiment $i\in S$ reveals an output variable (the ``measurement'') $y_i$, related to the experiment features $x_i$ through a linear function, \emph{i.e.}, \begin{align}\label{model} \forall i\in\mathcal{N},\quad y_i = \T{\beta} x_i + \varepsilon_i \end{align} @@ -25,8 +25,11 @@ distribution on $\beta$, \emph{i.e.}, $\beta$ has a multivariate normal prior with zero mean and covariance $\sigma^2R^{-1}\in \reals^{d^2}$ (where $\sigma^2$ is the noise variance). Then, \E\ estimates $\beta$ through \emph{maximum a posteriori estimation}: \emph{i.e.}, finding the parameter which maximizes the posterior distribution of $\beta$ given the observations $y_S$. Under the linearity assumption \eqref{model} and the Gaussian prior on $\beta$, maximum a posteriori estimation leads to the following maximization \cite{hastie}: \begin{align} - \hat{\beta} = \argmax_{\beta\in\reals^d} \prob(\beta\mid y_S) =\argmin_{\beta\in\reals^d} \big(\sum_{i\in S} (y_i - \T{\beta}x_i)^2 - + \T{\beta}R\beta\big) = (R+\T{X_S}X_S)^{-1}X_S^Ty_S \label{ridge} + \begin{split} + \hat{\beta} = \argmax_{\beta\in\reals^d} \prob(\beta\mid y_S) &=\argmin_{\beta\in\reals^d} \big(\sum_{i\in S} (y_i - \T{\beta}x_i)^2 + + \T{\beta}R\beta\big)\\ + & = (R+\T{X_S}X_S)^{-1}X_S^Ty_S \label{ridge} +\end{split} \end{align} where the last equality is obtained by setting $\nabla_{\beta}\prob(\beta\mid y_S)$ to zero and solving the resulting linear system; in \eqref{ridge}, $X_S\defeq[x_i]_{i\in S}\in \reals^{|S|\times d}$ is the matrix of experiment features and $y_S\defeq[y_i]_{i\in S}\in\reals^{|S|}$ are the observed measurements. diff --git a/related.tex b/related.tex index 4b7e740..8cca712 100755 --- a/related.tex +++ b/related.tex @@ -36,7 +36,7 @@ establish that it can be incorporated in the framework of \paragraph{Beyond Submodular Objectives} Beyond submodular objectives, it is known that no truthful mechanism with approximation ratio smaller than $n^{1/2-\epsilon}$ exists for maximizing fractionally subadditive functions (a class that includes submodular functions) assuming access to a value query oracle~\cite{singer-mechanisms}. Assuming access to a stronger oracle (the \emph{demand} oracle), there exists a truthful, $O(\log^3 n)$-approximate mechanism -\cite{dobz2011-mechanisms} as well as a universally truthful, $O(\frac{\log n}{\log \log n})$-approximate mechanism for subadditive maximization +\cite{dobz2011-mechanisms} as well as a universally truthful, $O(\frac{\log n}{\log \log n})$-appro\-xi\-mate mechanism for subadditive maximization \cite{bei2012budget}. Moreover, in a Bayesian setup, assuming a prior distribution among the agent's costs, there exists a truthful mechanism with a 768/512-approximation ratio \cite{bei2012budget}. %(in terms of expectations) Posted price, rather than direct revelation mechanisms, are also studied in \cite{singerposted}. diff --git a/splncs.bst b/splncs.bst new file mode 100644 index 0000000..fe8a22a --- /dev/null +++ b/splncs.bst @@ -0,0 +1,1098 @@ +% BibTeX bibliography style `splncs' + +% An attempt to match the bibliography style required for use with +% numbered references in Springer Verlag's "Lecture Notes in Computer +% Science" series. (See Springer's documentation for llncs.sty for +% more details of the suggested reference format.) Note that this +% file will not work for author-year style citations. + +% Use \documentclass{llncs} and \bibliographystyle{splncs}, and cite +% a reference with (e.g.) \cite{smith77} to get a "[1]" in the text. + +% Copyright (C) 1999 Jason Noble. +% Last updated: Friday 07 March 2006, 08:04:42 Frank Holzwarth, Springer +% +% Based on the BibTeX standard bibliography style `unsrt' + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label } + +INTEGERS { output.state before.all mid.sentence after.sentence + after.block after.authors between.elements} + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + #4 'after.authors := + #5 'between.elements := +} + +STRINGS { s t } + +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { " " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { + output.state after.authors = + { ": " * write$ + newline$ + "\newblock " write$ + } + { output.state between.elements = + { ", " * write$ } + { output.state before.all = + 'write$ + { add.period$ " " * write$ } + if$ + } + if$ + } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {fin.entry} +{ write$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} + +FUNCTION {stupid.colon} +{ after.authors 'output.state := } + +FUNCTION {insert.comma} +{ output.state before.all = + 'skip$ + { between.elements 'output.state := } + if$ +} + +FUNCTION {new.sentence} +{ output.state after.block = + 'skip$ + { output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ + } + if$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "" swap$ * "" * } + if$ +} + +FUNCTION {bold} +{ duplicate$ empty$ + { pop$ "" } + { "\textbf{" swap$ * "}" * } + if$ +} + +FUNCTION {parens} +{ duplicate$ empty$ + { pop$ "" } + { "(" swap$ * ")" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.springer.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{vv~}{ll}{, jj}{, f{.}.}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #1 > + { ", " * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { "" * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " \& " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.springer.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.springer.names + editor num.names$ #1 > + { ", eds." * } + { ", ed." * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +FUNCTION {n.dashify} +{ 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { t #1 #2 substring$ "--" = not + { "--" * + t #2 global.max$ substring$ 't := + } + { { t #1 #1 substring$ "-" = } + { "-" * + t #2 global.max$ substring$ 't := + } + while$ + } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + +FUNCTION {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "Volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + add.period$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edn." * } + { edition "t" change.case$ " edn." * } + if$ + } + if$ +} + +INTEGERS { multiresult } + +FUNCTION {multi.page.check} +{ 't := + #0 'multiresult := + { multiresult not + t empty$ not + and + } + { t #1 #1 substring$ + duplicate$ "-" = + swap$ duplicate$ "," = + swap$ "+" = + or or + { #1 'multiresult := } + { t #2 global.max$ substring$ 't := } + if$ + } + while$ + multiresult +} + +FUNCTION {format.pages} +{ pages empty$ + { "" } + { pages multi.page.check + { "" pages n.dashify tie.or.space.connect } + { "" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol} +{ volume bold +} + +FUNCTION {format.vol.num} +{ volume bold +number empty$ +{ } +{ number "(" swap$ * * ")" * } +if$ +} + +FUNCTION {pre.format.pages} +{ pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { " " * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { " " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In: " booktitle emphasize * } + { "In " format.editors * ": " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In {\em " journal * "\/}" * } + if$ + } + { "In " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "" } + if$ + } + { "" } + if$ + } + { "" } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {and.the.note} +{ note output + note empty$ + 'skip$ + { add.period$ } + if$ +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + stupid.colon + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num output + format.date parens output + format.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + and.the.note + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + stupid.colon + format.btitle "title" output.check + new.sentence + crossref missing$ + { format.edition output + format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address empty$ + 'skip$ + { insert.comma } + if$ + address output + format.date parens output + } + { format.book.crossref output.nonnull + } + if$ + and.the.note + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + stupid.colon + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address empty$ + 'skip$ + { insert.comma } + if$ + address output + format.date parens output + and.the.note + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + stupid.colon + crossref missing$ + { chapter output + new.block + format.number.series output + new.sentence + "In:" output + format.btitle "title" output.check + new.sentence + format.edition output + format.bvolume output + publisher "publisher" output.check + address empty$ + 'skip$ + { insert.comma } + if$ + address output + format.date parens output + } + { chapter output + new.block + format.incoll.inproc.crossref output.nonnull + } + if$ + format.pages output + and.the.note + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + stupid.colon + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + new.sentence + format.bvolume output + format.number.series output + new.block + format.edition output + publisher "publisher" output.check + address empty$ + 'skip$ + { insert.comma } + if$ + address output + format.date parens output + format.pages output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + and.the.note + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + stupid.colon + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + new.sentence + format.bvolume output + format.number.series output + address empty$ + { organization publisher new.sentence.checkb + organization empty$ + 'skip$ + { insert.comma } + if$ + organization output + publisher empty$ + 'skip$ + { insert.comma } + if$ + publisher output + format.date parens output + } + { insert.comma + address output.nonnull + organization empty$ + 'skip$ + { insert.comma } + if$ + organization output + publisher empty$ + 'skip$ + { insert.comma } + if$ + publisher output + format.date parens output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + } + if$ + format.pages output + and.the.note + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + stupid.colon + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address empty$ + 'skip$ + { insert.comma } + if$ + address output + } + if$ + new.sentence + format.edition output + format.date parens output + and.the.note + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + stupid.colon + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school empty$ + 'skip$ + { insert.comma } + if$ + school "school" output.check + address empty$ + 'skip$ + { insert.comma } + if$ + address output + format.date parens output + and.the.note + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors "author" output.check + stupid.colon + format.title "title" output.check + howpublished new.block.checka + howpublished output + format.date parens output + and.the.note + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + stupid.colon + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school empty$ + 'skip$ + { insert.comma } + if$ + school "school" output.check + address empty$ + 'skip$ + { insert.comma } + if$ + address output + format.date parens output + and.the.note + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization empty$ + { "" } + { organization output + stupid.colon } + if$ + } + { format.editors output.nonnull + stupid.colon + } + if$ + format.btitle "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + new.sentence + format.bvolume output + format.number.series output + address empty$ + { organization publisher new.sentence.checkb + organization empty$ + 'skip$ + { insert.comma } + if$ + organization output + publisher empty$ + 'skip$ + { insert.comma } + if$ + publisher output + format.date parens output + } + { insert.comma + address output.nonnull + organization empty$ + 'skip$ + { insert.comma } + if$ + organization output + publisher empty$ + 'skip$ + { insert.comma } + if$ + publisher output + format.date parens output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + } + if$ + and.the.note + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + stupid.colon + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution empty$ + 'skip$ + { insert.comma } + if$ + institution "institution" output.check + address empty$ + 'skip$ + { insert.comma } + if$ + address output + format.date parens output + and.the.note + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + stupid.colon + format.title "title" output.check + new.block + note "note" output.check + format.date parens output + fin.entry +} + +FUNCTION {default.type} { misc } + +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"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +READ + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +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$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} + + + diff --git a/splncsnat.bst b/splncsnat.bst new file mode 100644 index 0000000..f808603 --- /dev/null +++ b/splncsnat.bst @@ -0,0 +1,1508 @@ +%% natbib-compatible BibTeX bibliography style `splncsnat' +%% +%% BibTeX bibliography style for use with numbered references in +%% Springer Verlag's "Lecture Notes in Computer Science" series. +%% (See Springer's documentation for llncs.cls for +%% more details of the suggested reference format.) +%% +%% Use +%% +%% \documentclass{llncs} +%% \usepackage[numbers]{natbib} +%% \bibliographystyle{splncsnat} +%% +%% and cite references with (e.g.) +%% +%% \cite{smith77} % to get a "[1]" in the text +%% \citep{smith77} % to get a "[1]" in the text +%% \citet{smith77} % to get a "Smith [1]" in the text +%% \citeauthor{smith77} % to get a "Smith" in the text +%% +%% The changes below are inspired by similar changes made to +%% splncs03.bst by Maurizio "Titto" Patrignani of +%% Dipartimento di Informatica e Automazione Universita' Roma Tre. +%% Unfortunately, splncs03.bst was not compatible with natbib (because it +%% was not built with author-year capability). +%% +%% ================================================================================================ +%% MANUAL CHANGES +%% (with respect to splncsnat-unpatched.bst produced from +%% splncsnat-unpatched.dbj): +%% [ search for ++++ to find the changes ] +%% - Emptied \urlprefix by default +%% - Added a new.sentence command to separate with a dot booktitle and series in the inproceedings +%% - Commented all new.block commands before notes (to separate them with a comma) +%% ================================================================================================ +%% +%% This is derived from `splncsnat-unpatched.bst', +%% generated with the docstrip utility. +%% +%% The original source files for splncsnat-unpatched.bst were: +%% +%% merlin.mbs (with options: `ay,nat,vonx,nm-rvvc,ed-rev,yr-par,aymth,note-yr,jttl-rm,volp-com,numser,ser-vol,jnm-x,btit-rm,bt-rm,edparxc,au-col,in-col,fin-bare,pp,ed,abr,mth-bare,xedn,jabr,and-com,and-com-ed,xand,url,url-nt,em-x,nfss,') +%% ---------------------------------------- +%% *** natbib-compatible .bst file for Springer LNCS *** +%% +%% Copyright 1994-2007 Patrick W Daly + % =============================================================== + % IMPORTANT NOTICE: + % This bibliographic style (bst) file has been generated from one or + % more master bibliographic style (mbs) files, listed above. + % + % This generated file can be redistributed and/or modified under the terms + % of the LaTeX Project Public License Distributed from CTAN + % archives in directory macros/latex/base/lppl.txt; either + % version 1 of the License, or any later version. + % =============================================================== + % Name and version information of the main mbs file: + % \ProvidesFile{merlin.mbs}[2007/04/24 4.20 (PWD, AO, DPC)] + % For use with BibTeX version 0.99a or later + %------------------------------------------------------------------- + % This bibliography style file is intended for texts in ENGLISH + % This is an author-year citation style bibliography. As such, it is + % non-standard LaTeX, and requires a special package file to function properly. + % Such a package is natbib.sty by Patrick W. Daly + % The form of the \bibitem entries is + % \bibitem[Jones et al.(1990)]{key}... + % \bibitem[Jones et al.(1990)Jones, Baker, and Smith]{key}... + % The essential feature is that the label (the part in brackets) consists + % of the author names, as they should appear in the citation, with the year + % in parentheses following. There must be no space before the opening + % parenthesis! + % With natbib v5.3, a full list of authors may also follow the year. + % In natbib.sty, it is possible to define the type of enclosures that is + % really wanted (brackets or parentheses), but in either case, there must + % be parentheses in the label. + % The \cite command functions as follows: + % \citet{key} ==>> Jones et al. (1990) + % \citet*{key} ==>> Jones, Baker, and Smith (1990) + % \citep{key} ==>> (Jones et al., 1990) + % \citep*{key} ==>> (Jones, Baker, and Smith, 1990) + % \citep[chap. 2]{key} ==>> (Jones et al., 1990, chap. 2) + % \citep[e.g.][]{key} ==>> (e.g. Jones et al., 1990) + % \citep[e.g.][p. 32]{key} ==>> (e.g. Jones et al., p. 32) + % \citeauthor{key} ==>> Jones et al. + % \citeauthor*{key} ==>> Jones, Baker, and Smith + % \citeyear{key} ==>> 1990 + %--------------------------------------------------------------------- + +ENTRY + { address + author + booktitle + chapter + edition + editor + eid + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + url + volume + year + } + {} + { label extra.label sort.label short.list } +INTEGERS { output.state before.all mid.sentence after.sentence after.block } +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := +} +STRINGS { s t} +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { 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 +} +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} +FUNCTION {fin.entry} +{ duplicate$ empty$ + 'pop$ + 'write$ + if$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} +FUNCTION {new.sentence} +{ output.state after.block = + 'skip$ + { output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ + } + if$ +} +FUNCTION {add.blank} +{ " " * before.all 'output.state := +} + +FUNCTION {add.colon} +{ duplicate$ empty$ + 'skip$ + { ":" * add.blank } + if$ +} + +FUNCTION {date.block} +{ + new.block +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} +STRINGS {z} +FUNCTION {remove.dots} +{ 'z := + "" + { z empty$ not } + { z #1 #1 substring$ + z #2 global.max$ substring$ 'z := + duplicate$ "." = 'pop$ + { * } + if$ + } + while$ +} +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} +FUNCTION {emphasize} +{ skip$ } +FUNCTION {tie.or.space.prefix} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ +} + +FUNCTION {capitalize} +{ "u" change.case$ "t" change.case$ } + +FUNCTION {space.word} +{ " " swap$ * " " * } + % Here are the language-specific definitions for explicit words. + % Each function has a name bbl.xxx where xxx is the English word. + % The language selected here is ENGLISH +FUNCTION {bbl.and} +{ "and"} + +FUNCTION {bbl.etal} +{ "et~al." } + +FUNCTION {bbl.editors} +{ "eds." } + +FUNCTION {bbl.editor} +{ "ed." } + +FUNCTION {bbl.edby} +{ "edited by" } + +FUNCTION {bbl.edition} +{ "edn." } + +FUNCTION {bbl.volume} +{ "vol." } + +FUNCTION {bbl.of} +{ "of" } + +FUNCTION {bbl.number} +{ "no." } + +FUNCTION {bbl.nr} +{ "no." } + +FUNCTION {bbl.in} +{ "in" } + +FUNCTION {bbl.pages} +{ "pp." } + +FUNCTION {bbl.page} +{ "p." } + +FUNCTION {bbl.chapter} +{ "chap." } + +FUNCTION {bbl.techrep} +{ "Tech. Rep." } + +FUNCTION {bbl.mthesis} +{ "Master's thesis" } + +FUNCTION {bbl.phdthesis} +{ "Ph.D. thesis" } + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"May"} + +MACRO {jun} {"Jun."} + +MACRO {jul} {"Jul."} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sep."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + +MACRO {acmcs} {"ACM Comput. Surv."} + +MACRO {acta} {"Acta Inf."} + +MACRO {cacm} {"Commun. ACM"} + +MACRO {ibmjrd} {"IBM J. Res. Dev."} + +MACRO {ibmsj} {"IBM Syst.~J."} + +MACRO {ieeese} {"IEEE Trans. Software Eng."} + +MACRO {ieeetc} {"IEEE Trans. Comput."} + +MACRO {ieeetcad} + {"IEEE Trans. Comput. Aid. Des."} + +MACRO {ipl} {"Inf. Process. Lett."} + +MACRO {jacm} {"J.~ACM"} + +MACRO {jcss} {"J.~Comput. Syst. Sci."} + +MACRO {scp} {"Sci. Comput. Program."} + +MACRO {sicomp} {"SIAM J. Comput."} + +MACRO {tocs} {"ACM Trans. Comput. Syst."} + +MACRO {tods} {"ACM Trans. Database Syst."} + +MACRO {tog} {"ACM Trans. Graphic."} + +MACRO {toms} {"ACM Trans. Math. Software"} + +MACRO {toois} {"ACM Trans. Office Inf. Syst."} + +MACRO {toplas} {"ACM Trans. Progr. Lang. Syst."} + +MACRO {tcs} {"Theor. Comput. Sci."} + +FUNCTION {bibinfo.check} +{ swap$ + duplicate$ missing$ + { + pop$ pop$ + "" + } + { duplicate$ empty$ + { + swap$ pop$ + } + { swap$ + pop$ + } + if$ + } + if$ +} +FUNCTION {bibinfo.warn} +{ swap$ + duplicate$ missing$ + { + swap$ "missing " swap$ * " in " * cite$ * warning$ pop$ + "" + } + { duplicate$ empty$ + { + swap$ "empty " swap$ * " in " * cite$ * warning$ + } + { swap$ + pop$ + } + if$ + } + if$ +} +INTEGERS { nameptr namesleft numnames } + + +STRINGS { bibinfo} + +FUNCTION {format.names} +{ 'bibinfo := + duplicate$ empty$ 'skip$ { + 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}{, jj}{, f{.}.}" + format.name$ + bibinfo bibinfo.check + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + "," * + t "others" = + { + " " * bbl.etal * + } + { " " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + } if$ +} +FUNCTION {format.names.ed} +{ + format.names +} +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.authors} +{ author "author" format.names +} +FUNCTION {get.bbl.editor} +{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ } + +FUNCTION {format.editors} +{ editor "editor" format.names duplicate$ empty$ 'skip$ + { + " " * + get.bbl.editor + "(" swap$ * ")" * + * + } + if$ +} +FUNCTION {format.note} +{ + url empty$ + 'skip$ + { "\urlprefix\url{" url * "}" * output } + if$ + note empty$ + { "" } + { note #1 #1 substring$ + duplicate$ "{" = + 'skip$ + { output.state mid.sentence = + { "l" } + { "u" } + if$ + change.case$ + } + if$ + note #2 global.max$ substring$ * "note" bibinfo.check + } + if$ +} + +FUNCTION {format.title} +{ title + duplicate$ empty$ 'skip$ + { "t" change.case$ } + if$ + "title" bibinfo.check +} +FUNCTION {format.full.names} +{'s := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}" format.name$ + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal * + } + { + numnames #2 > + { "," * } + 'skip$ + if$ + bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {author.editor.key.full} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.full.names } + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {author.key.full} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {editor.key.full} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.full.names } + if$ +} + +FUNCTION {make.full.names} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.full + { type$ "proceedings" = + 'editor.key.full + 'author.key.full + if$ + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[{" write$ + label write$ + ")" make.full.names duplicate$ short.list = + { pop$ } + { * } + if$ + "}]{" * write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {n.dashify} +{ + 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { t #1 #2 substring$ "--" = not + { "--" * + t #2 global.max$ substring$ 't := + } + { { t #1 #1 substring$ "-" = } + { "-" * + t #2 global.max$ substring$ 't := + } + while$ + } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + +FUNCTION {word.in} +{ bbl.in capitalize + ":" * + " " * } + +FUNCTION {format.date} +{ year "year" bibinfo.check duplicate$ empty$ + { + "empty year in " cite$ * "; set to ????" * warning$ + pop$ "????" + } + 'skip$ + if$ + month "month" bibinfo.check duplicate$ empty$ + 'skip$ + { + " " * swap$ + } + if$ + * + remove.dots + extra.label * + before.all 'output.state := + " (" swap$ * ")" * +} +FUNCTION {format.btitle} +{ title "title" bibinfo.check + duplicate$ empty$ 'skip$ + { + } + if$ +} +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { bbl.volume volume tie.or.space.prefix + "volume" bibinfo.check * * + series "series" bibinfo.check + duplicate$ empty$ 'pop$ + { emphasize ", " * swap$ * } + if$ + "volume and number" number either.or.check + } + if$ +} +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { bbl.number } + { bbl.number capitalize } + if$ + number tie.or.space.prefix "number" bibinfo.check * * + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { bbl.in space.word * + series "series" bibinfo.check * + } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition duplicate$ empty$ 'skip$ + { + output.state mid.sentence = + { "l" } + { "t" } + if$ change.case$ + "edition" bibinfo.check + " " * bbl.edition * + } + if$ +} +INTEGERS { multiresult } +FUNCTION {multi.page.check} +{ 't := + #0 'multiresult := + { multiresult not + t empty$ not + and + } + { t #1 #1 substring$ + duplicate$ "-" = + swap$ duplicate$ "," = + swap$ "+" = + or or + { #1 'multiresult := } + { t #2 global.max$ substring$ 't := } + if$ + } + while$ + multiresult +} +FUNCTION {format.pages} +{ pages duplicate$ empty$ 'skip$ + { duplicate$ multi.page.check + { + bbl.pages swap$ + n.dashify + } + { + bbl.page swap$ + } + if$ + tie.or.space.prefix + "pages" bibinfo.check + * * + } + if$ +} +FUNCTION {format.journal.pages} +{ pages duplicate$ empty$ 'pop$ + { swap$ duplicate$ empty$ + { pop$ pop$ format.pages } + { + ", " * + swap$ + n.dashify + "pages" bibinfo.check + * + } + if$ + } + if$ +} +FUNCTION {format.journal.eid} +{ eid "eid" bibinfo.check + duplicate$ empty$ 'pop$ + { swap$ duplicate$ empty$ 'skip$ + { + ", " * + } + if$ + swap$ * + } + if$ +} +FUNCTION {format.vol.num.pages} +{ volume field.or.null + duplicate$ empty$ 'skip$ + { + "volume" bibinfo.check + } + if$ + number "number" bibinfo.check duplicate$ empty$ 'skip$ + { + swap$ duplicate$ empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + swap$ + "(" swap$ * ")" * + } + if$ * + eid empty$ + { format.journal.pages } + { format.journal.eid } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { bbl.chapter } + { type "l" change.case$ + "type" bibinfo.check + } + if$ + chapter tie.or.space.prefix + "chapter" bibinfo.check + * * + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.booktitle} +{ + booktitle "booktitle" bibinfo.check +} +FUNCTION {format.in.ed.booktitle} +{ format.booktitle duplicate$ empty$ 'skip$ + { + editor "editor" format.names.ed duplicate$ empty$ 'pop$ + { + " " * + get.bbl.editor + "(" swap$ * ") " * + * swap$ + * } + if$ + word.in swap$ * + } + if$ +} +FUNCTION {format.thesis.type} +{ type duplicate$ empty$ + 'pop$ + { swap$ pop$ + "t" change.case$ "type" bibinfo.check + } + if$ +} +FUNCTION {format.tr.number} +{ number "number" bibinfo.check + type duplicate$ empty$ + { pop$ bbl.techrep } + 'skip$ + if$ + "type" bibinfo.check + swap$ duplicate$ empty$ + { pop$ "t" change.case$ } + { tie.or.space.prefix * * } + if$ +} +FUNCTION {format.article.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} +FUNCTION {format.book.crossref} +{ volume duplicate$ empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + pop$ word.in + } + { bbl.volume + capitalize + swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word * + } + if$ + " \cite{" * crossref * "}" * +} +FUNCTION {format.incoll.inproc.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} +FUNCTION {format.org.or.pub} +{ 't := + "" + address empty$ t empty$ and + 'skip$ + { + t empty$ + { address "address" bibinfo.check * + } + { t * + address empty$ + 'skip$ + { ", " * address "address" bibinfo.check * } + if$ + } + if$ + } + if$ +} +FUNCTION {format.publisher.address} +{ publisher "publisher" bibinfo.warn format.org.or.pub +} + +FUNCTION {format.organization.address} +{ organization "organization" bibinfo.check format.org.or.pub +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author format.key output + add.colon + new.block + format.title "title" output.check + new.block + crossref missing$ + { + journal + "journal" bibinfo.check + "journal" output.check + add.blank + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + % new.block ++++ REMOVED (to get comma before note) + format.note output + fin.entry +} +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + add.colon + } + { format.authors output.nonnull + add.colon + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + new.sentence + format.number.series output + format.publisher.address output + } + { + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + % new.block ++++ REMOVED (to get comma before note) + format.note output + fin.entry +} +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output + add.colon + new.block + format.title "title" output.check + new.block + howpublished "howpublished" bibinfo.check output + address "address" bibinfo.check output + format.date "year" output.check + % new.block ++++ REMOVED (to get comma before note) + format.note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + add.colon + } + { format.authors output.nonnull + add.colon + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { + format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + new.sentence + format.number.series output + format.publisher.address output + } + { + format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + % new.block ++++ REMOVED (to get comma before note) + format.note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output + add.colon + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.chapter.pages output + new.sentence + format.number.series output + format.publisher.address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + % new.block ++++ REMOVED (to get comma before note) + format.note output + fin.entry +} +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output + add.colon + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + new.sentence % ++++ ADDED (to get period b/w booktitle and series) + format.bvolume output + format.pages output + new.sentence + format.number.series output + publisher empty$ + { format.organization.address output } + { organization "organization" bibinfo.check output + format.publisher.address output + } + if$ + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + % new.block ++++ REMOVED (to get comma before note) + format.note output + fin.entry +} +FUNCTION {conference} { inproceedings } +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output + add.colon + new.block + format.btitle "title" output.check + organization address new.block.checkb + organization "organization" bibinfo.check output + address "address" bibinfo.check output + format.edition output + format.date "year" output.check + % new.block ++++ REMOVED (to get comma before note) + format.note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + add.colon + new.block + format.btitle + "title" output.check + new.block + bbl.mthesis format.thesis.type output.nonnull + school "school" bibinfo.warn output + address "address" bibinfo.check output + format.date "year" output.check + % new.block ++++ REMOVED (to get comma before note) + format.note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output + add.colon + new.block + format.title output + new.block + howpublished "howpublished" bibinfo.check output + format.date "year" output.check + % new.block ++++ REMOVED (to get comma before note) + format.note output + fin.entry +} +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + add.colon + new.block + format.btitle + "title" output.check + new.block + bbl.phdthesis format.thesis.type output.nonnull + school "school" bibinfo.warn output + address "address" bibinfo.check output + format.date "year" output.check + % new.block ++++ REMOVED (to get comma before note) + format.note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors output + editor format.key output + add.colon + new.block + format.btitle "title" output.check + format.bvolume output + new.sentence + format.number.series output + publisher empty$ + { format.organization.address output } + { organization "organization" bibinfo.check output + format.publisher.address output + } + if$ + format.date "year" output.check + % new.block ++++ REMOVED (to get comma before note) + format.note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output + add.colon + new.block + format.title + "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" bibinfo.warn output + address "address" bibinfo.check output + format.date "year" output.check + % new.block ++++ REMOVED (to get comma before note) + format.note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output + add.colon + new.block + format.title "title" output.check + format.date "year" output.check + % new.block ++++ REMOVED (to get comma before note) + format.note "note" output.check + fin.entry +} + +FUNCTION {default.type} { misc } +READ +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} +INTEGERS { len } +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} +FUNCTION {format.lab.names} +{ 's := + "" 't := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ + " " * bbl.etal * + } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { + " " * bbl.etal * + } + { bbl.and space.word * s #2 "{vv~}{ll}" format.name$ + * } + if$ + } + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.label} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.short.authors} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label + 'author.key.label + if$ + } + if$ + 'short.list := +} + +FUNCTION {calc.label} +{ calc.short.authors + short.list + "(" + * + year duplicate$ empty$ + { pop$ "????" } + 'skip$ + if$ + * + 'label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{ll{ }}{ ff{ }}{ jj{ }}" + format.name$ 't := + nameptr #1 > + { + " " * + namesleft #1 = t "others" = and + { "zzzzz" * } + { t sortify * } + if$ + } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { author sort.format.names } + 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$ +} +FUNCTION {editor.sort} +{ editor empty$ + { key empty$ + { "to sort, need editor or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ +} +FUNCTION {presort} +{ calc.label + label sortify + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.sort + 'author.sort + if$ + } + if$ + #1 entry.max$ substring$ + 'sort.label := + sort.label + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} +SORT +STRINGS { last.label next.extra } +INTEGERS { last.extra.num number.label } +FUNCTION {initialize.extra.label.stuff} +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := + #0 'number.label := +} +FUNCTION {forward.pass} +{ last.label label = + { last.extra.num #1 + 'last.extra.num := + last.extra.num int.to.chr$ 'extra.label := + } + { "a" chr.to.int$ 'last.extra.num := + "" 'extra.label := + label 'last.label := + } + if$ + number.label #1 + 'number.label := +} +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + extra.label 'next.extra := + extra.label + duplicate$ empty$ + 'skip$ + { "{\natexlab{" swap$ * "}}" * } + if$ + 'extra.label := + label extra.label * 'label := +} +EXECUTE {initialize.extra.label.stuff} +ITERATE {forward.pass} +REVERSE {reverse.pass} +FUNCTION {bib.sort.order} +{ sort.label + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} +ITERATE {bib.sort.order} +SORT +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" number.label int.to.str$ * "}" * + write$ newline$ + "\providecommand{\natexlab}[1]{#1}" + write$ newline$ + "\providecommand{\url}[1]{\texttt{#1}}" + write$ newline$ +% "\providecommand{\urlprefix}{URL }" ++++ EMPTIED by default + "\providecommand{\urlprefix}{}" + write$ newline$ +} +EXECUTE {begin.bib} +EXECUTE {init.state.consts} +ITERATE {call.type$} +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} +EXECUTE {end.bib} +%% End of customized bst file +%% +%% End of file `splncsnat.bst'. |
