pax_global_header00006660000000000000000000000064147021372520014515gustar00rootroot0000000000000052 comment=5dff9c61be88681bc6cbd0c1ccc6137a9f30ea1c sfst-1.7.0/000077500000000000000000000000001470213725200125015ustar00rootroot00000000000000sfst-1.7.0/.github/000077500000000000000000000000001470213725200140415ustar00rootroot00000000000000sfst-1.7.0/.github/workflows/000077500000000000000000000000001470213725200160765ustar00rootroot00000000000000sfst-1.7.0/.github/workflows/clang-format-check.yml000066400000000000000000000004331470213725200222460ustar00rootroot00000000000000name: clang-format Check on: [push, pull_request] jobs: formatting-check: name: Formatting Check runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Run clang-format style check for C/C++ programs. uses: jidicula/clang-format-action@v4.11.0 sfst-1.7.0/.github/workflows/clang-tidy.yml000066400000000000000000000005631470213725200206600ustar00rootroot00000000000000name: clang-tidy check on: [push, pull_request] jobs: clang-tidy: name: clang-tidy check runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: submodules: true - name: Install dependencies run: sudo apt-get install -y clang-tidy - name: Run check run: mkdir build && cd build && cmake .. && make clang-tidy sfst-1.7.0/.github/workflows/cmake.yml000066400000000000000000000030721470213725200177030ustar00rootroot00000000000000name: CMake on: [push] env: # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) BUILD_TYPE: Release jobs: build: # The CMake configure and build commands are platform agnostic and should work equally # well on Windows or Mac. You can convert this to a matrix build if you need # cross-platform coverage. # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: submodules: true - name: Install dependencies run: sudo apt-get install -y bison flex libreadline-dev - name: Create Build Environment # Some projects don't allow in-source building, so create a separate build directory # We'll use this as our working directory for all subsequent commands run: cmake -E make_directory ${{github.workspace}}/build - name: Configure CMake working-directory: ${{github.workspace}}/build # Note the current convention is to use the -S and -B options here to specify source # and build directories, but this is only available with CMake 3.13 and higher. # The CMake binaries on the Github Actions machines are (as of this writing) 3.12 run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE - name: Build working-directory: ${{github.workspace}}/build shell: bash # Execute the build. You can specify a specific target with "--target " run: cmake --build . --config $BUILD_TYPE sfst-1.7.0/.github/workflows/codeql-analysis.yml000066400000000000000000000047041470213725200217160ustar00rootroot00000000000000# For most projects, this workflow file will not need changing; you simply need # to commit it to your repository. # # You may wish to alter this file to override the set of languages analyzed, # or to provide custom queries or build logic. # # ******** NOTE ******** # We have attempted to detect the languages in your repository. Please check # the `language` matrix defined below to confirm you have the correct set of # supported CodeQL languages. # name: "CodeQL" on: push: branches: [ master ] pull_request: # The branches below must be a subset of the branches above branches: [ master ] schedule: - cron: '26 0 * * 1' jobs: analyze: name: Analyze runs-on: ubuntu-latest strategy: fail-fast: false matrix: language: [ 'cpp', 'python' ] # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ] # Learn more: # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed steps: - name: Checkout repository uses: actions/checkout@v4 with: submodules: true - name: Install dependencies run: sudo apt-get install -y bison flex libreadline-dev # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL uses: github/codeql-action/init@v3 with: languages: ${{ matrix.language }} # If you wish to specify custom queries, you can do so here or in a config file. # By default, queries listed here will override any specified in a config file. # Prefix the list here with "+" to use these queries and those in the config file. # queries: ./path/to/local/query, your-org/your-repo/queries@main # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild uses: github/codeql-action/autobuild@v3 # ℹ️ Command-line programs to run using the OS shell. # 📚 https://git.io/JvXDl # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines # and modify them (or add more) to build your code if your project # uses a compiled language #- run: | # make bootstrap # make release - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v3 sfst-1.7.0/.github/workflows/pip.yml000066400000000000000000000015301470213725200174100ustar00rootroot00000000000000name: Pip on: workflow_dispatch: pull_request: push: branches: - master jobs: build: strategy: fail-fast: false matrix: platform: [windows-latest, macos-latest, ubuntu-latest] python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"] runs-on: ${{ matrix.platform }} steps: - uses: actions/checkout@v4 with: submodules: true - uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Add requirements run: python -m pip install --upgrade wheel setuptools - name: Install libreadline (Ubuntu only) if: runner.os == 'Linux' run: sudo apt-get install -y bison flex libreadline-dev - name: Build and install run: pip install --verbose . - name: Test run: python python/tests/test.py sfst-1.7.0/.github/workflows/wheels.yml000066400000000000000000000032171470213725200201130ustar00rootroot00000000000000name: Wheels on: workflow_dispatch: pull_request: push: branches: - master release: types: - published jobs: build_sdist: name: Build SDist runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: submodules: true - name: Build SDist run: pipx run build --sdist - name: Check metadata run: pipx run twine check dist/* - uses: actions/upload-artifact@v4 with: name: cibw-sdist path: dist/*.tar.gz build_wheels: name: Wheels on ${{ matrix.os }} runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: [ubuntu-latest, windows-latest, macos-latest] steps: - uses: actions/checkout@v4 with: submodules: true - name: Build wheels uses: pypa/cibuildwheel@v2.17 env: CIBW_ARCHS_MACOS: auto universal2 - name: Verify clean directory run: git diff --exit-code shell: bash - name: Upload wheels uses: actions/upload-artifact@v4 with: name: cibw-wheels-${{ matrix.os }} path: wheelhouse/*.whl upload_all: name: Upload if release needs: [build_wheels, build_sdist] runs-on: ubuntu-latest if: github.event_name == 'release' && github.event.action == 'published' steps: - uses: actions/setup-python@v5 with: python-version: '3.x' - uses: actions/download-artifact@v4 with: pattern: cibw-* path: dist merge-multiple: true - uses: pypa/gh-action-pypi-publish@release/v1 with: user: __token__ password: ${{ secrets.pypi_password }} sfst-1.7.0/.gitignore000066400000000000000000000005621470213725200144740ustar00rootroot00000000000000build/ .vscode *.o *.a *.so Makefile src/version.h _deps fst-compiler.H # Distribution / packaging .Python build/ develop-eggs/ dist/ downloads/ eggs/ .eggs/ lib/ lib64/ parts/ sdist/ var/ wheels/ share/python-wheels/ *.egg-info/ .installed.cfg *.egg MANIFEST # Environments .env .venv env/ venv/ ENV/ env.bak/ venv.bak/ # Caches .cache .*_cache # IDEs .vscode .ideasfst-1.7.0/.gitmodules000066400000000000000000000001521470213725200146540ustar00rootroot00000000000000[submodule "pybind11"] path = pybind11 url = https://github.com/pybind/pybind11.git branch = master sfst-1.7.0/CMakeLists.txt000066400000000000000000000011321470213725200152360ustar00rootroot00000000000000cmake_minimum_required(VERSION 3.20) file(STRINGS "VERSION" SFST_VERSION) project(sfst VERSION ${SFST_VERSION}) message(STATUS "Project name: ${PROJECT_NAME}") message(STATUS "Project version: ${SFST_VERSION}") set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED True) set(CMAKE_CXX_EXTENSIONS OFF) # Generate version.h to reflect our version number configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/version.h.in ${CMAKE_CURRENT_SOURCE_DIR}/src/version.h @ONLY) # add library code add_subdirectory(src) # add python bindings add_subdirectory(pybind11) add_subdirectory(python) sfst-1.7.0/COPYING000066400000000000000000000354271470213725200135470ustar00rootroot00000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS sfst-1.7.0/MANIFEST.in000066400000000000000000000001241470213725200142340ustar00rootroot00000000000000include VERSION COPYING CMakeLists.txt graft data graft doc graft src graft python sfst-1.7.0/README.md000066400000000000000000000071601470213725200137640ustar00rootroot00000000000000 # SFST - Stuttgart Finite State Transducer | CI | status | |----------------------|--------| | CMake builds | [![CMake Actions Status][actions-cmake-badge]][actions-cmake-link] | | Pip builds | [![Pip Actions Status][actions-pip-badge]][actions-pip-link] | | Wheels builds | [![Wheels Actions Status][actions-wheels-badge]][actions-wheels-link] | [actions-cmake-link]: https://github.com/santhoshtr/sfst/actions?query=workflow%3A%22CMake [actions-pip-link]: https://github.com/santhoshtr/sfst/actions?query=workflow%3A%22Pip [actions-wheels-link]: https://github.com/santhoshtr/sfst/actions?query=workflow%3A%22Wheels [actions-cmake-badge]: https://github.com/santhoshtr/sfst/workflows/CMake/badge.svg [actions-pip-badge]: https://github.com/santhoshtr/sfst/workflows/Pip/badge.svg [actions-wheels-badge]: https://github.com/santhoshtr/sfst/workflows/Wheels/badge.svg ## Installation SFST can be compiled in Unix/Linux, Windows and Mac operating systems. The SFST command line utilities has a few external requirements. * The "Flex" scanner generator which can be downloaded from: . In linux systems they can be installed using package manager. For example, in Ubuntu, `apt install flex` installs it. * The "Bison" parser generator available from . In linux systems they can be installed using package manager. For example, in Ubuntu, `apt install bison` installs it. After unpacking the software package, in the top directory of source code, ```bash mkdir build cd build cmake .. cmake --build . ``` to compile the tools. Then call ```bash cmake install ``` to install the tools in /usr/local/bin. If you want to install the tools in a different directory, specify a different prefix using the --prefix option: ```bash cmake --install . --prefix /my/install/prefix ``` Finall, to install the manpages in /usr/local/man/man1: ```bash make maninstall ``` The subdirectory data contains a simple example of an English morphological analyser, the source code of the German SMOR morphology (with just a few sample lexicon entries), and the general morphology XMOR which may be used as a starting point for the development of a computational morphology. ## Usage See the manual SFST-Manual.pdf in the doc subdirectory and the man pages for more information on the SFST tools. doc/SFST-Tutorial.pdf explains how computational morphologies are implemented in SFST. If you want to implement your own tools based on the SFST code, have a look at fst-infl.C and fst-infl2.C. They show how analysers are implemented with the standard (fst-infl) and the compact (fst-infl2) transducer format. ## Author The SFST tools have been implemented by Helmut Schmid, Institute for Computational Linguistics, University of Stuttgart, Germany and they are available under the GNU public license version 2 or higher. Currently maintained by Santhosh Thottingal. Please cite the following publication if you want to refer to the SFST tools: `A Programming Language for Finite State Transducers, Proceedings of the 5th International Workshop on Finite State Methods in Natural Language Processing (FSMNLP 2005), Helsinki, Finland.` [pdf](https://www.cis.uni-muenchen.de/~schmid/papers/SFST-PL.pdf) Same can be cited as: ```bibtex @inproceedings{schmid2005programming, title={A programming language for finite state transducers}, author={Schmid, Helmut}, booktitle={Proceedings of the 5th International Workshop on Finite State Methods in Natural Language Processing (FSMNLP)}, volume={4002}, pages={308--309}, year={2005} } ``` sfst-1.7.0/VERSION000066400000000000000000000000061470213725200135450ustar00rootroot000000000000001.7.0 sfst-1.7.0/data/000077500000000000000000000000001470213725200134125ustar00rootroot00000000000000sfst-1.7.0/data/SMOR/000077500000000000000000000000001470213725200141725ustar00rootroot00000000000000sfst-1.7.0/data/SMOR/FIX.fst000066400000000000000000000014731470213725200153430ustar00rootroot00000000000000%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % File: FIX.fst % Author: Helmut Schmid; IMS, Universitaet Stuttgart % Date: July 2003 % Content: fixed stems not listed in IMSLex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %************************************************************************** % Punctuation, symbols etc. %************************************************************************** $Fix_Stems$ = <>: <>: (\ (\- | \-\-) $IpKL$ |\ ([\'\"\(\<\[\{/]|\'\') $IpKL$ |\ (\,\, | [\)\>\]\}\\]) $IpKR$ |\ [\.\?\!\:;] $IpNorm$ |\ \, $IpKo$ |\ ( | ) $Symbol$ |\ [-] $SpecChar$ ) sfst-1.7.0/data/SMOR/LREC04-SMOR.pdf000066400000000000000000003100341470213725200163350ustar00rootroot00000000000000%PDF-1.3 %쏢 6 0 obj <> stream xX{\[gv8o2*L̔RmR ʢGĵ,:KWnrHB89!h% XfڵXZfn]k7uj;V;/9 k9|}yku?ύ[ipqf6q Εf̹<\]WU *sm_~{>ՙ/XkuwpmuZVT?Rl7|tƲ|qyeEUW}JVWWW5j5ŖZ+[.Wk\MM ;F5JZPk[fqXx'na]˛KoY,՟ ?w-lXΫj+;sommn_/;nח;, wccyw;1p6q禯unpq7c:0 gegozVl+sྐྵi[ݷm5W`fL=bO}( B^_2 p$z#'qTC ';waȷNwc(#&|Q_IF[4-n$![{pD`L wj4o~i}(Lr_ I%-5 ~1 AuHk{qnU sOLFbMl†d(J+1L9GUɩ{ZⶆKXގEr^~2tF#r"6zX $aq('o5 }R9f"ivo]o𗓚3{ B."͹f}3ޑGèBF ڀ #69J1}\WϮYB,/oq`1)yB&DX8HӓC"1qOS0>M'4vl wn]bߣ^钸1m=C&NTBw W9ITMCj7VMp`IxPHf˜w.V%*40pЅ01T- uuzVTL~EG-2\|\3|!IK6iARlC"̪~QC5bHBĦʛdb4`X78KفŲ2!ʍ :q1 ?)0J .-VNmԕhM52|D{:0 @cO!x*蠍tLGA Dd2Z'v\"wm~*3 WysK>;"<=uoX:ߐi[$R.da\̔걮5/z4goz!9;0b߼Q16(uC`CAXBB//+&Bg?\ A4bpCfry<=BIT)[dydIF WSDJ{iNLO@zP.EU䑹C1a:FT!4x$ȕ^(ヴbUvO h ?SO=g6[vluZ7S(thd[A5RR w#RMa'\S֟;NE,XSSo$@%O K-V.Sqh (CuD}&mb?*њ۹KXs>KhU<'NEv ʺ\ΒPw|VވxXrxw<<¿D访{Xk:ր#3}uIScl3•Pp7 O`xG:>( Ӕ> stream xXoL[XMJ7b` !d!NXe*M:YZ 6fx#Nmm߶50ꧪ*MS?mE]W69д=߹]Z?yBU<60nmt, h~o6\?::kg^mͧoy_뻢SBJr 7Wمks%GR`5mmK~)-cxJwچ#w9>Z M=kYc_Vr I}5'bVJ/cTbތguw5sW,hdW[&I_i+i4fcl!6~,i̦2i gZ q<|p}팓wgt:9LgM]Aexs3&㺤_ 8ḟ@Q5'fygM3l!YrWpwd(+>߰;wm;(mNuqQA1^0;paGY#SoA3֦,.vYv8"]Hh&eDTǧT= ^XģyRY%u_+8$y KyYe֗ p{T߫ԟ~?bNKo?T=tPuI ʒa(HqV 99=u,SOf]릖rF -Gqe Gwx z gcZK$HR,J"'"΁\raQ/A"Ac?_fx*ʑrkB=y<ޞz&wQ' >g&vM~2~;ߏLyvn9}83|oW MzR_s޾~hŊ v+њ/ڮ?~}VoUቘ[w9RړzX?7GgRb)9wI,kdVd D,, HE(\h,aBt oɿ:HjM:]48v}ۓu.g0tL#\T|2),)FqB vIBaNRD@fѼ/o,h9M)7[#yIw =?yQwVS]:Ql~zw7! /t2v5_?72b~$o.8Ifm q\ai|l )R؊VS@;:6Ju[Rua h;mm { x-lviU>0{ Ve4hWxvlgo(Cl+=vFK$Th#܆]&"`喛?wMfPxNVIG0Nl'^IήK"rY ?qHh%v )6t 0a|ڏa/0#4Cc}5(K1e"j0^CiAMdN0@ͫ#oA#=[b ǼT^ĵh91$1v|`醑'~LpΗ^^Pmo%$ygL58;qEӛ0/s- xIG8YSu?6D(/|.*+Z`&>&b1vmFgKtao(H;?Eb *'J) $l!`8~YeH;SZ-&cJjHQMPN ~WVd46HLuySj1vWrk%Lc h4tIQnG u]quJKPZpxn9!ymUN7v>Q:+bKΎ;QQ7ibQf٤ET,Wt^>2pɖ5Y7[c+ZےfqiI#_h'E%FX}8縢[A*u#lJhAΪwvw|aSQx~㏜ &)["}xW4`x 9nj1Ҥܰbd̄8QT7t-YmG-oS73ֵPIPIkd qI b{{غ"7rϭe:\4K"AA3 )eW Sk4Jdl/ۗmv1 4E- >O𬳡Sy$]--N v%zQ'$2 endstream endobj 264 0 obj 3031 endobj 290 0 obj <> stream xuXml[VD#hSI!n;d5 KXoc؎{}ǎsZt, (TETCPןM&mgI Tsy>>t[=OɃ4>cO4k~8lNIXzf68|D!OScBrcS}={qnj)n)*b=wk&=皑Sy=)$&L>ɉljqO"IҒ m dh>gO(1Hܻ[ pNsCwýgw A{>x=vf'f89HT & eұxt.^0%XұH!'TZw/F=_׍.^xS7>n|jv^"hx`7G+B1,/0:~pT@.BWbB vK};`Kw 9D#)5H)# R s*=MN[N$B&PV@+|t78e}%s‹y3ii@ ||{&OOJ2VN-[;\{N׃x#£na!CceO6#Z=[EL#{^.DJ)$B xAjIt8;EHTI\Jl)KNZhT9SJY/5b&- (SHCk%Es/O,,h(IQ0f^*ף&c_^g=~16 ^+Wx] \kr61 ?}tФ&>av a=V)0kr']< !(Bq/8ڑ8`J(@(ᤲdNdgTDLID2ggLd#QͫZj+3:YZO-I-i8t Ņ\V]4V| anP(q8O+b.; iCtERh*_0{TbVP\PX"hyI`g3Rz"#[֡_D)ُC+?2SzX9+nʲ]ҐN! ]C%0١۲D;-$㤳/Į7r>\r\\1]2]~[_M\u۬uFi pM:ׯ2smU].3,N8zjTeqvU> Xs\>f&U\MhJ ̀kH7>f>XhU(->ɪ>7Ǧ,ߦk#dHR"Qr EJeqZMvGc^_,k2\ƴ4½M:2nଗVx&6n* -N.H6kջrZPR;{Yi7a}dp]6{GOQ~3 iC<`Y5!~87NH2If|H2pjaU2udo3Q:h21Uw d!u(T۬@*{VVxY~IxI*tj= 6Uk}nM<iyUҍU}Ca+}dy d45?lM$<0ajS&Bj.[Bk1ZU_zgܩd25I`9 /0VR(e*c^;V A.(9j.1DPSQQkIy,?WұE7`F@mpGuN kDM,tUR/{7S 5=G$׏iFdi>.JlH?MD^)[ ' wr-_Р^*^څ#9tUk1zXm=}9u+3_iNZ͈FD˲:xGD[,,8҄6.v.HAOj9D:X0aLV%fW?m޺U8rn }&z|N1XGZ8߶;55F٫@Ĵ6/]`u˻ɫ q'$+Nl9Axm2K׷,7fmhs[ _6u1MÅܖZ3%M:Xn7E Olz.p7i)V Ę55CG#tD ׏6>Oa3Zj8Uc}"5~:!̗V+f?&{ <ЃrK9~uzÐfj%:rirż @4Hk#R_]D '5 V[wSZ4룐~5c!勊n 6UxM.fyGsU.sr״l6 N\׽?m׽ﻑKN[],Uަ9u>pW#+c74T~}~>IU'{yЂnn٬~\dz#wyMϫ~b.,{ygo.~ Uygn[{^\-\r+~}1G~1g27~$3Ҫ\:Z;M,舽=jƌ7>l;endstream endobj 291 0 obj 3383 endobj 359 0 obj <> stream xWmlSVQ1I14hl8?Ȭ D"%&%"u. G4q}\_ǹ|xf`%!|,> ^?ؙPlk nu22c(tpr藦OdUVYKZ*KcVZeoH6Z[5u-苇ϵ2+ `Ͻla^ZS O3%">8/۽evTdZ3")kE.&YqI p?w|/'ƆN&} K\T\Zӱ5"Ɂ43k5|d(/y,MKYd5`VQu8h;Jb\;u7F~쌃|w2f>uj,#xb,h!7>a-®BR/Ow},zZ.ItxM`Ī+v;!Zww>y1-߫Ҝ_U2Eex@c}aMk^&8 ~ F1<@$ZMi[w˪OryH @LG$9ځ˙ \ր䒀c>@<'uS' ~@c ݪ)EB^"nR ;seO̮JSX-<MU  P }.n#I: y2IsS҉"' ~EEL=4J]#KI(y˜pz}o\F4^7޳hdYk L&ok+c(BmwA@A^emI\4x%uԒsP*tԶitBV(,=o``u2x#Q":z&">R!o@ y!H"NfxJғ0H\ͨz_:ׂO4R;*s%ё'DuzU|\TnFGRa^O ^:B$! ҶngAX`_F:Ix5h KQbr dQHl31@{#"QQ*XJh$_eD/6%YG”$p?I]t-T׈YUгpLWDHV%mqy $'E1pq56|*# hқ~[$Ɖwĩ֕PtWNj% fHYIo> /&:noH3 d{3&+}NQяY MV>;C]HM4g RinHP7vvU嫓7$seecke ϸ{dɞe(g],'y:EnsoYP:.@f4[> /Contents 6 0 R >> endobj 262 0 obj <> /Contents 263 0 R >> endobj 289 0 obj <> /Contents 290 0 R >> endobj 358 0 obj <> /Contents 359 0 R >> endobj 3 0 obj << /Type /Pages /Kids [ 5 0 R 262 0 R 289 0 R 358 0 R ] /Count 4 >> endobj 1 0 obj <> endobj 4 0 obj <> endobj 8 0 obj <> endobj 10 0 obj <>stream 0 0 0 0 73 123 d1 73 0 0 123 0 0 cm BI /IM true /W 73 /H 123 /BPC 1 /F /CCF /DP <> ID 0 P0(Q PkDnao ~a&A{ ^M@렿\/X], j4 }a Ar(F ZLhlp肝__ka}vm\0'} }! g@@ EI endstream endobj 11 0 obj <>stream 0 0 0 2 127 120 d1 127 0 0 118 0 2 cm BI /IM true /W 127 /H 118 /BPC 1 /F /CCF /DP <> ID &YOi ,5k(M[7oX Ioa [&L?oIa ?bL EI endstream endobj 12 0 obj <> stream 92 0 0 0 0 0 d1 endstream endobj 13 0 obj <>stream 0 0 0 0 109 123 d1 109 0 0 123 0 0 cm BI /IM true /W 109 /H 123 /BPC 1 /F /CCF /DP <> ID &uyԟ: t >`o`}&o& 0A}o }o)MV_]z wz޸aK K pa `,<,a: ,jL EI endstream endobj 14 0 obj <> stream 147 0 0 0 0 0 d1 endstream endobj 15 0 obj <>stream 0 0 0 2 109 123 d1 109 0 0 121 0 2 cm BI /IM true /W 109 /H 121 /BPC 1 /F /CCF /DP <> ID &x' xgOPAcx[OrjD` 5/ |/_K/K2T6@e~A_ ?!aa |/_K/K V!""&V@ EI endstream endobj 16 0 obj <> stream 127 0 0 0 0 0 d1 endstream endobj 17 0 obj <>stream 0 0 0 45 15 120 d1 15 0 0 75 0 45 cm BI /IM true /W 15 /H 75 /BPC 1 /F /CCF /DP <> ID &pqɪXk  xN/5K a EI endstream endobj 18 0 obj <> stream 123 0 0 0 0 0 d1 endstream endobj 19 0 obj <>stream 0 0 0 -1 112 120 d1 112 0 0 121 0 -1 cm BI /IM true /W 112 /H 121 /BPC 1 /F /CCF /DP <> ID &ː'/5 ,4_aV޽x~{k_k^__kk^z_^_]zazׅۯx / EI endstream endobj 20 0 obj <> stream 85 0 0 0 0 0 d1 endstream endobj 21 0 obj <>stream 0 0 0 0 110 123 d1 110 0 0 123 0 0 cm BI /IM true /W 110 /H 123 /BPC 1 /F /CCF /DP <> ID &ji "`Y B"5#?A\ A cA}_^ /߂)&<v {^ap?m{]ypI O_ |0`x2' o*/d EI endstream endobj 22 0 obj <>stream 0 0 0 43 61 122 d1 61 0 0 79 0 43 cm BI /IM true /W 61 /H 79 /BPC 1 /F /CCF /DP <> ID &C DAC 7>oIA[}/ k_P w\:\5K 8!~@  EI endstream endobj 23 0 obj <> stream 124 0 0 0 0 0 d1 endstream endobj 24 0 obj <>stream 0 0 0 44 53 120 d1 53 0 0 76 0 44 cm BI /IM true /W 53 /H 76 /BPC 1 /F /CCF /DP <> ID &%[ a? o[ xw+%`c EI endstream endobj 25 0 obj <> stream 72 0 0 0 0 0 d1 endstream endobj 26 0 obj <>stream 0 0 0 44 126 120 d1 126 0 0 76 0 44 cm BI /IM true /W 126 /H 76 /BPC 1 /F /CCF /DP <> ID &"a!5 өv a_}~ |?ޞ nP80Ih LOzz b # 1k"  EI endstream endobj 27 0 obj <> stream 62 0 0 0 0 0 d1 endstream endobj 28 0 obj <>stream 0 0 0 43 70 122 d1 70 0 0 79 0 43 cm BI /IM true /W 70 /H 79 /BPC 1 /F /CCF /DP <> ID & < h<&D =C'?L4-zQj7߰0upc AT U[iv al@b 7D@ EI endstream endobj 29 0 obj <> stream 139 0 0 0 0 0 d1 endstream endobj 30 0 obj <>stream 0 0 0 44 80 120 d1 80 0 0 76 0 44 cm BI /IM true /W 80 /H 76 /BPC 1 /F /CCF /DP <> ID &ԃNMap׶V(_m/ @:  EI endstream endobj 31 0 obj <> stream 77 0 0 0 0 0 d1 endstream endobj 32 0 obj <>stream 0 0 0 0 99 123 d1 99 0 0 123 0 0 cm BI /IM true /W 99 /H 123 /BPC 1 /F /CCF /DP <> ID &j 9 "A!QK<#XC G ށ|$}oIzC}~_]~_A/Q&<o7u[]ya޸`{a $Ape8 O B 6eXe5p EI endstream endobj 33 0 obj <> stream 144 0 0 0 0 0 d1 endstream endobj 34 0 obj <>stream 0 0 0 43 69 122 d1 69 0 0 79 0 43 cm BI /IM true /W 69 /H 79 /BPC 1 /F /CCF /DP <> ID &C ς"Ę@H]}&[M&}&o o_p=va[i[ivm }2f EI endstream endobj 35 0 obj <> stream 114 0 0 0 0 0 d1 endstream endobj 36 0 obj <> stream 79 0 0 0 0 0 d1 endstream endobj 37 0 obj <>stream 0 0 0 44 79 154 d1 79 0 0 110 0 44 cm BI /IM true /W 79 /H 110 /BPC 1 /F /CCF /DP <> ID & ~D aML>?o_/_׿i|.HXV2,c0D@ EI endstream endobj 38 0 obj <> stream 136 0 0 0 0 0 d1 endstream endobj 39 0 obj <>stream 0 0 0 44 80 122 d1 80 0 0 78 0 44 cm BI /IM true /W 80 /H 78 /BPC 1 /F /CCF /DP <> ID &C?0^AA> o<- n~WrP#m_  EI endstream endobj 40 0 obj <> stream 90 0 0 0 0 0 d1 endstream endobj 41 0 obj <>stream 0 0 0 14 51 122 d1 51 0 0 108 0 14 cm BI /IM true /W 51 /H 108 /BPC 1 /F /CCF /DP <> ID &N W >A>o?2H5?} EI endstream endobj 42 0 obj <> stream 88 0 0 0 0 0 d1 endstream endobj 43 0 obj <> stream 68 0 0 0 0 0 d1 endstream endobj 44 0 obj <> stream 74 0 0 0 0 0 d1 endstream endobj 45 0 obj <>stream 0 0 0 6 31 120 d1 31 0 0 114 0 6 cm BI /IM true /W 31 /H 114 /BPC 1 /F /CCF /DP <> ID &&Xk / ?l,P EI endstream endobj 46 0 obj <> stream 66 0 0 0 0 0 d1 endstream endobj 47 0 obj <> stream 44 0 0 0 0 0 d1 endstream endobj 48 0 obj <> stream 80 0 0 0 0 0 d1 endstream endobj 49 0 obj <> stream 94 0 0 0 0 0 d1 endstream endobj 50 0 obj <>stream 0 0 0 0 33 120 d1 33 0 0 120 0 0 cm BI /IM true /W 33 /H 120 /BPC 1 /F /CCF /DP <> ID &&Xk/* @ EI endstream endobj 51 0 obj <> stream 105 0 0 0 0 0 d1 endstream endobj 52 0 obj <> stream 143 0 0 0 0 0 d1 endstream endobj 53 0 obj <> stream 81 0 0 0 0 0 d1 endstream endobj 54 0 obj <> stream 61 0 0 0 0 0 d1 endstream endobj 55 0 obj <>stream 0 0 0 0 80 120 d1 80 0 0 120 0 0 cm BI /IM true /W 80 /H 120 /BPC 1 /F /CCF /DP <> ID &ԃNMa~zۯ xb.P?1 EI endstream endobj 56 0 obj <> stream 91 0 0 0 0 0 d1 endstream endobj 57 0 obj <>stream 0 0 0 43 73 156 d1 73 0 0 113 0 43 cm BI /IM true /W 73 /H 113 /BPC 1 /F /CCF /DP <> ID &k Y5'oXx$|~IoX}O5u 붂  X</.E+'z (=@7xX| M_]A林a`0b33 !k` EI endstream endobj 58 0 obj <>stream 0 0 0 45 80 155 d1 80 0 0 110 0 45 cm BI /IM true /W 80 /H 110 /BPC 1 /F /CCF /DP <> ID &M eG8xL7o|50?OO?o?O~~z߇O׭ zzz Ar7  EI endstream endobj 59 0 obj <> stream 145 0 0 0 0 0 d1 endstream endobj 60 0 obj <> stream 113 0 0 0 0 0 d1 endstream endobj 61 0 obj <>stream 0 0 0 45 80 122 d1 80 0 0 77 0 45 cm BI /IM true /W 80 /H 77 /BPC 1 /F /CCF /DP <> ID &x5?|oJ?H7 վoX}x[|'[ׅP=q V EI endstream endobj 62 0 obj <> stream 73 0 0 0 0 0 d1 endstream endobj 63 0 obj <> stream 83 0 0 0 0 0 d1 endstream endobj 64 0 obj <> stream 63 0 0 0 0 0 d1 endstream endobj 65 0 obj <> stream 43 0 0 0 0 0 d1 endstream endobj 66 0 obj <>stream 0 0 0 0 105 118 d1 105 0 0 118 0 0 cm BI /IM true /W 105 /H 118 /BPC 1 /F /CCF /DP <> ID &waw0kMBkk ~a߷7߿?__^/ 5 wa@ EI endstream endobj 67 0 obj <> stream 42 0 0 0 0 0 d1 endstream endobj 68 0 obj <> stream 82 0 0 0 0 0 d1 endstream endobj 69 0 obj <> stream 75 0 0 0 0 0 d1 endstream endobj 70 0 obj <> stream 65 0 0 0 0 0 d1 endstream endobj 71 0 obj <> stream 45 0 0 0 0 0 d1 endstream endobj 72 0 obj <>stream 0 0 0 105 16 154 d1 16 0 0 49 0 105 cm BI /IM true /W 16 /H 49 /BPC 1 /F /CCF /DP <> ID &O8C5\5  EI endstream endobj 73 0 obj <> stream 100 0 0 0 0 0 d1 endstream endobj 74 0 obj <> stream 95 0 0 0 0 0 d1 endstream endobj 75 0 obj <> stream 135 0 0 0 0 0 d1 endstream endobj 76 0 obj <> stream 96 0 0 0 0 0 d1 endstream endobj 77 0 obj <>stream 0 0 0 43 54 122 d1 54 0 0 79 0 43 cm BI /IM true /W 54 /H 79 /BPC 1 /F /CCF /DP <> ID &0t AEA3 ?i7 0/upAd2uc p  Iz%5yy@u'!C@ EI endstream endobj 78 0 obj <> stream 41 0 0 0 0 0 d1 endstream endobj 79 0 obj <> stream 150 0 0 0 0 0 d1 endstream endobj 80 0 obj <> stream 76 0 0 0 0 0 d1 endstream endobj 81 0 obj <>stream 0 0 0 0 79 122 d1 79 0 0 122 0 0 cm BI /IM true /W 79 /H 122 /BPC 1 /F /CCF /DP <> ID &H ?.2ADL #@AAAh Å߬xH0O/Kxav=5 0` Ax0 .AT3d@ EI endstream endobj 82 0 obj <>stream 0 0 0 2 42 120 d1 42 0 0 118 0 2 cm BI /IM true /W 42 /H 118 /BPC 1 /F /CCF /DP <> ID 5 D < q#A@ EI endstream endobj 83 0 obj <> stream 55 0 0 0 0 0 d1 endstream endobj 84 0 obj <>stream 0 0 0 -1 80 120 d1 80 0 0 121 0 -1 cm BI /IM true /W 80 /H 121 /BPC 1 /F /CCF /DP <> ID &R_  }w߷o' x> |n EI endstream endobj 85 0 obj <> stream 89 0 0 0 0 0 d1 endstream endobj 86 0 obj <>stream 0 0 0 43 61 122 d1 61 0 0 79 0 43 cm BI /IM true /W 61 /H 79 /BPC 1 /F /CCF /DP <> ID &C K C @ &oW\++kAO?߿ v %0Da/! EI endstream endobj 87 0 obj <> stream 69 0 0 0 0 0 d1 endstream endobj 88 0 obj <>stream 0 0 0 0 78 82 d1 78 0 0 82 0 0 cm BI /IM true /W 78 /H 82 /BPC 1 /F /CCF /DP <> ID &Ți ( ??8 EI endstream endobj 89 0 obj <>stream 0 0 0 28 44 84 d1 44 0 0 56 0 28 cm BI /IM true /W 44 /H 56 /BPC 1 /F /CCF /DP <> ID & "A &ޗZ_&kXa m\ @ EI endstream endobj 90 0 obj <> stream 86 0 0 0 0 0 d1 endstream endobj 91 0 obj <>stream 0 0 0 -1 26 82 d1 26 0 0 83 0 -1 cm BI /IM true /W 26 /H 83 /BPC 1 /F /CCF /DP <> ID j)@_5 EI endstream endobj 92 0 obj <> stream 52 0 0 0 0 0 d1 endstream endobj 93 0 obj <>stream 0 0 0 29 91 82 d1 91 0 0 53 0 29 cm BI /IM true /W 91 /H 53 /BPC 1 /F /CCF /DP <> ID $I56@4ӄOK~6LX`iqdž&AP EI endstream endobj 94 0 obj <> stream 33 0 0 0 0 0 d1 endstream endobj 95 0 obj <>stream 0 0 0 29 57 84 d1 57 0 0 55 0 29 cm BI /IM true /W 57 /H 55 /BPC 1 /F /CCF /DP <> ID &CAa<3 o OZ]W A5A  EI endstream endobj 96 0 obj <>stream 0 0 0 9 37 84 d1 37 0 0 75 0 9 cm BI /IM true /W 37 /H 75 /BPC 1 /F /CCF /DP <> ID &O?t?jd0" EI endstream endobj 97 0 obj <> stream 64 0 0 0 0 0 d1 endstream endobj 98 0 obj <>stream 0 0 0 -2 53 85 d1 53 0 0 87 0 -2 cm BI /IM true /W 53 /H 87 /BPC 1 /F /CCF /DP <> ID &C6(~hߠ'7L>K륐kOfQ AkZ@/ 5\.ZD4_{.hxaO/|0t<@ EI endstream endobj 99 0 obj <>stream 0 0 0 28 44 84 d1 44 0 0 56 0 28 cm BI /IM true /W 44 /H 56 /BPC 1 /F /CCF /DP <> ID &h7A [W(6^K 0l<@ EI endstream endobj 100 0 obj <>stream 0 0 0 -1 57 82 d1 57 0 0 83 0 -1 cm BI /IM true /W 57 /H 83 /BPC 1 /F /CCF /DP <> ID $&k.6 ^8g~?L@ EI endstream endobj 101 0 obj <> stream 48 0 0 0 0 0 d1 endstream endobj 102 0 obj <>stream 0 0 0 1 26 82 d1 26 0 0 81 0 1 cm BI /IM true /W 26 /H 81 /BPC 1 /F /CCF /DP <> ID j)@_5L/ EI endstream endobj 103 0 obj <> stream 99 0 0 0 0 0 d1 endstream endobj 104 0 obj <>stream 0 0 0 -1 57 84 d1 57 0 0 85 0 -1 cm BI /IM true /W 57 /H 85 /BPC 1 /F /CCF /DP <> ID &!1T3 |@&trւb}//55ap6ix0day ] _) EI endstream endobj 105 0 obj <>stream 0 0 0 70 14 105 d1 14 0 0 35 0 70 cm BI /IM true /W 14 /H 35 /BPC 1 /F /CCF /DP <> ID &7{ cM~( EI endstream endobj 106 0 obj <> stream 71 0 0 0 0 0 d1 endstream endobj 107 0 obj <>stream 0 0 0 -3 80 82 d1 80 0 0 85 0 -3 cm BI /IM true /W 80 /H 85 /BPC 1 /F /CCF /DP <> ID *+&u CP%[PU\=kK^_l2]z5u޿k i_P EI endstream endobj 108 0 obj <>stream 0 0 0 29 39 82 d1 39 0 0 53 0 29 cm BI /IM true /W 39 /H 53 /BPC 1 /F /CCF /DP <> ID A?&=~C?Ѣa=5BN  EI endstream endobj 109 0 obj <>stream 0 0 0 29 57 82 d1 57 0 0 53 0 29 cm BI /IM true /W 57 /H 53 /BPC 1 /F /CCF /DP <> ID $&k.6p &C'  EI endstream endobj 110 0 obj <>stream 0 0 0 0 67 82 d1 67 0 0 82 0 0 cm BI /IM true /W 67 /H 82 /BPC 1 /F /CCF /DP <> ID &OȚᮿx^?_ׅp/Q@ EI endstream endobj 111 0 obj <>stream 0 0 0 28 38 84 d1 38 0 0 56 0 28 cm BI /IM true /W 38 /H 56 /BPC 1 /F /CCF /DP <> ID 0$< zÈ ap_uAY py  @ ^j P_d5ȁx20O EI endstream endobj 112 0 obj <> stream 46 0 0 0 0 0 d1 endstream endobj 113 0 obj <> stream 51 0 0 0 0 0 d1 endstream endobj 114 0 obj <>stream 0 0 0 0 78 85 d1 78 0 0 85 0 0 cm BI /IM true /W 78 /H 85 /BPC 1 /F /CCF /DP <> ID &HP#aAH7ނa_2Z4Cb EI endstream endobj 115 0 obj <> stream 67 0 0 0 0 0 d1 endstream endobj 116 0 obj <> stream 87 0 0 0 0 0 d1 endstream endobj 117 0 obj <> stream 34 0 0 0 0 0 d1 endstream endobj 118 0 obj <> stream 103 0 0 0 0 0 d1 endstream endobj 119 0 obj <>stream 0 0 0 0 57 94 d1 57 0 0 94 0 0 cm BI /IM true /W 57 /H 94 /BPC 1 /F /CCF /DP <> ID &?(Ap؟ cL> EI endstream endobj 120 0 obj <>stream 0 0 0 -5 50 94 d1 50 0 0 99 0 -5 cm BI /IM true /W 50 /H 99 /BPC 1 /F /CCF /DP <> ID `cĉ EI endstream endobj 121 0 obj <>stream 0 0 0 29 80 94 d1 80 0 0 65 0 29 cm BI /IM true /W 80 /H 65 /BPC 1 /F /CCF /DP <> ID & JfT׿?)C |2Wb/0A EI endstream endobj 122 0 obj <> stream 59 0 0 0 0 0 d1 endstream endobj 123 0 obj <>stream 0 0 0 3 50 96 d1 50 0 0 93 0 3 cm BI /IM true /W 50 /H 93 /BPC 1 /F /CCF /DP <> ID &Pzz5 0^ ċ5>  EI endstream endobj 124 0 obj <>stream 0 0 0 29 56 94 d1 56 0 0 65 0 29 cm BI /IM true /W 56 /H 65 /BPC 1 /F /CCF /DP <> ID "GMB?O~u_o66})5  EI endstream endobj 125 0 obj <>stream 0 0 0 28 70 96 d1 70 0 0 68 0 28 cm BI /IM true /W 70 /H 68 /BPC 1 /F /CCF /DP <> ID &j nOD N(| k7޷ސa}>>_=o a.m- a 1 `fi EI endstream endobj 126 0 obj <>stream 0 0 0 -6 79 96 d1 79 0 0 102 0 -6 cm BI /IM true /W 79 /H 102 /BPC 1 /F /CCF /DP <> ID &t:C`9&&  D`A\RI _H?O\6k0`Ȁ[bipazx*i EI endstream endobj 127 0 obj <> stream 84 0 0 0 0 0 d1 endstream endobj 128 0 obj <>stream 0 0 0 29 80 96 d1 80 0 0 67 0 29 cm BI /IM true /W 80 /H 67 /BPC 1 /F /CCF /DP <> ID &j!C`IV??H7)pWVC9? dt EI endstream endobj 129 0 obj <>stream 0 0 0 28 60 96 d1 60 0 0 68 0 28 cm BI /IM true /W 60 /H 68 /BPC 1 /F /CCF /DP <> ID &t F<zF| AoXzO^O_l5ֿֿ~C(? ?߷톶Xaa_C. EI endstream endobj 130 0 obj <>stream 0 0 0 -7 35 94 d1 35 0 0 101 0 -7 cm BI /IM true /W 35 /H 101 /BPC 1 /F /CCF /DP <> ID &BU+9O=?( EI endstream endobj 131 0 obj <>stream 0 0 0 0 97 72 d1 97 0 0 72 0 0 cm BI /IM true /W 97 /H 72 /BPC 1 /F /CCF /DP <> ID &`no[\,?]oO,i_^_^0P?k]7OO0&_~o =8o EI endstream endobj 132 0 obj <>stream 0 0 0 23 39 71 d1 39 0 0 48 0 23 cm BI /IM true /W 39 /H 48 /BPC 1 /F /CCF /DP <> ID &8DFb0Iޯp%h j_ׇ_h,=a a_' EI endstream endobj 133 0 obj <> stream 93 0 0 0 0 0 d1 endstream endobj 134 0 obj <>stream 0 0 0 24 49 89 d1 49 0 0 65 0 24 cm BI /IM true /W 49 /H 65 /BPC 1 /F /CCF /DP <> ID /85".G? O}x_Kv4 [Rj8` EI endstream endobj 135 0 obj <>stream 0 0 0 24 34 69 d1 34 0 0 45 0 24 cm BI /IM true /W 34 /H 45 /BPC 1 /F /CCF /DP <> ID *8k |a>- `IC  EI endstream endobj 136 0 obj <> stream 39 0 0 0 0 0 d1 endstream endobj 137 0 obj <>stream 0 0 0 23 32 71 d1 32 0 0 48 0 23 cm BI /IM true /W 32 /H 48 /BPC 1 /F /CCF /DP <> ID 0!_ m8 7_ PU/BX%Z8PD3kkapboN<@ EI endstream endobj 138 0 obj <> stream 38 0 0 0 0 0 d1 endstream endobj 139 0 obj <>stream 0 0 0 24 50 69 d1 50 0 0 45 0 24 cm BI /IM true /W 50 /H 45 /BPC 1 /F /CCF /DP <> ID &Nis4-[ BQ@ EI endstream endobj 140 0 obj <>stream 0 0 0 8 32 71 d1 32 0 0 63 0 8 cm BI /IM true /W 32 /H 63 /BPC 1 /F /CCF /DP <> ID &A|fo_?$$}  EI endstream endobj 141 0 obj <>stream 0 0 0 23 47 71 d1 47 0 0 48 0 23 cm BI /IM true /W 47 /H 48 /BPC 1 /F /CCF /DP <> ID &IϟFm<,zA矠c7\?~ |ʿ!?w__A K A~A EI endstream endobj 142 0 obj <>stream 0 0 0 24 78 69 d1 78 0 0 45 0 24 cm BI /IM true /W 78 /H 45 /BPC 1 /F /CCF /DP <> ID ȃ?jDA80PV /a.fo66L4Q / EI endstream endobj 143 0 obj <>stream 0 0 0 23 45 71 d1 45 0 0 48 0 23 cm BI /IM true /W 45 /H 48 /BPC 1 /F /CCF /DP <> ID &@13PzMAXz Ow&_K_ m.ް !~( EI endstream endobj 144 0 obj <>stream 0 0 0 -1 50 69 d1 50 0 0 70 0 -1 cm BI /IM true /W 50 /H 70 /BPC 1 /F /CCF /DP <> ID &Nis4_` ޼ɨ EI endstream endobj 145 0 obj <> stream 56 0 0 0 0 0 d1 endstream endobj 146 0 obj <>stream 0 0 0 -1 22 69 d1 22 0 0 70 0 -1 cm BI /IM true /W 22 /H 70 /BPC 1 /F /CCF /DP <> ID jDkɨ EI endstream endobj 147 0 obj <> stream 50 0 0 0 0 0 d1 endstream endobj 148 0 obj <> stream 28 0 0 0 0 0 d1 endstream endobj 149 0 obj <>stream 0 0 0 23 46 91 d1 46 0 0 68 0 23 cm BI /IM true /W 46 /H 68 /BPC 1 /F /CCF /DP <> ID &0@0|'M5L/2+Z 0z3_䏶?&  v׆a! EI endstream endobj 150 0 obj <>stream 0 0 0 2 22 69 d1 22 0 0 67 0 2 cm BI /IM true /W 22 /H 67 /BPC 1 /F /CCF /DP <> ID jDkXQ=?0 EI endstream endobj 151 0 obj <>stream 0 0 0 23 38 71 d1 38 0 0 48 0 23 cm BI /IM true /W 38 /H 48 /BPC 1 /F /CCF /DP <> ID &8joHxA7}&_}u!ɮ#=|0ݬ0N@ EI endstream endobj 152 0 obj <> stream 49 0 0 0 0 0 d1 endstream endobj 153 0 obj <> stream 54 0 0 0 0 0 d1 endstream endobj 154 0 obj <>stream 0 0 0 26 48 90 d1 48 0 0 64 0 26 cm BI /IM true /W 48 /H 64 /BPC 1 /F /CCF /DP <> ID &ftټ$Èwa~/0?M ߿_M%A@ EI endstream endobj 155 0 obj <> stream 27 0 0 0 0 0 d1 endstream endobj 156 0 obj <>stream 0 0 0 -2 34 69 d1 34 0 0 71 0 -2 cm BI /IM true /W 34 /H 71 /BPC 1 /F /CCF /DP <> ID &gfa> EI endstream endobj 157 0 obj <> stream 31 0 0 0 0 0 d1 endstream endobj 158 0 obj <>stream 0 0 0 -2 68 72 d1 68 0 0 74 0 -2 cm BI /IM true /W 68 /H 74 /BPC 1 /F /CCF /DP <> ID &H ? "@ k/I^ _/?!___dck5k>xA`Iy   EI endstream endobj 159 0 obj <> stream 70 0 0 0 0 0 d1 endstream endobj 160 0 obj <> stream 40 0 0 0 0 0 d1 endstream endobj 161 0 obj <>stream 0 0 0 -2 51 69 d1 51 0 0 71 0 -2 cm BI /IM true /W 51 /H 71 /BPC 1 /F /CCF /DP <> ID &/}QLG\?o  ` EI endstream endobj 162 0 obj <>stream 0 0 0 -1 49 71 d1 49 0 0 72 0 -1 cm BI /IM true /W 49 /H 72 /BPC 1 /F /CCF /DP <> ID &8c97>(|-| ZA~_ .a]x1^ _eҜ@ EI endstream endobj 163 0 obj <>stream 0 0 0 26 67 71 d1 67 0 0 45 0 26 cm BI /IM true /W 67 /H 45 /BPC 1 /F /CCF /DP <> ID &g0?_AtդMx}PT'q:@ EI endstream endobj 164 0 obj <>stream 0 0 0 -2 51 69 d1 51 0 0 71 0 -2 cm BI /IM true /W 51 /H 71 /BPC 1 /F /CCF /DP <> ID &/},Gf??O K ,t@@ EI endstream endobj 165 0 obj <> stream 57 0 0 0 0 0 d1 endstream endobj 166 0 obj <> stream 26 0 0 0 0 0 d1 endstream endobj 167 0 obj <>stream 0 0 0 58 12 69 d1 12 0 0 11 0 58 cm BI /IM true /W 12 /H 11 /BPC 1 /F /CCF /DP <> ID &ۂ!MPX0 EI endstream endobj 168 0 obj <>stream 0 0 0 0 67 72 d1 67 0 0 72 0 0 cm BI /IM true /W 67 /H 72 /BPC 1 /F /CCF /DP <> ID &PRU<"qxAh&ҽ~xW?޿W8 7 EI endstream endobj 169 0 obj <>stream 0 0 0 -1 49 69 d1 49 0 0 70 0 -1 cm BI /IM true /W 49 /H 70 /BPC 1 /F /CCF /DP <> ID R' axA}z}zzAz_v ῿o?~O  EI endstream endobj 170 0 obj <>stream 0 0 0 24 50 71 d1 50 0 0 47 0 24 cm BI /IM true /W 50 /H 47 /BPC 1 /F /CCF /DP <> ID &8cAΡ 9A,d_Qh EI endstream endobj 171 0 obj <>stream 0 0 0 26 50 69 d1 50 0 0 43 0 26 cm BI /IM true /W 50 /H 43 /BPC 1 /F /CCF /DP <> ID #C(;m/]t0]Ktk=yOVoI׬<-d!1 EI endstream endobj 172 0 obj <> stream 53 0 0 0 0 0 d1 endstream endobj 173 0 obj <> stream 29 0 0 0 0 0 d1 endstream endobj 174 0 obj <>stream 0 0 0 44 27 50 d1 27 0 0 6 0 44 cm BI /IM true /W 27 /H 6 /BPC 1 /F /CCF /DP <> ID @ EI endstream endobj 175 0 obj <>stream 0 0 0 -1 49 71 d1 49 0 0 72 0 -1 cm BI /IM true /W 49 /H 72 /BPC 1 /F /CCF /DP <> ID &+ao7//u .yi{^ɨ EI endstream endobj 176 0 obj <> stream 35 0 0 0 0 0 d1 endstream endobj 177 0 obj <>stream 0 0 0 58 13 89 d1 13 0 0 31 0 58 cm BI /IM true /W 13 /H 31 /BPC 1 /F /CCF /DP <> ID &~˾c  EI endstream endobj 178 0 obj <>stream 0 0 0 26 48 71 d1 48 0 0 45 0 26 cm BI /IM true /W 48 /H 45 /BPC 1 /F /CCF /DP <> ID &75}o߅XoOzi@ EI endstream endobj 179 0 obj <>stream 0 0 0 0 65 69 d1 65 0 0 69 0 0 cm BI /IM true /W 65 /H 69 /BPC 1 /F /CCF /DP <> ID &?ek _ k_޽޻'dG EI endstream endobj 180 0 obj <>stream 0 0 0 -2 46 72 d1 46 0 0 74 0 -2 cm BI /IM true /W 46 /H 74 /BPC 1 /F /CCF /DP <> ID &`3>@l}?O¿ ?_,Ak !Arx. a. ^ D h/GP~D2㯯x_k#; ^' EI endstream endobj 181 0 obj <>stream 0 0 0 0 57 69 d1 57 0 0 69 0 0 cm BI /IM true /W 57 /H 69 /BPC 1 /F /CCF /DP <> ID #`cj!4"?N }tl# EI endstream endobj 182 0 obj <> stream 78 0 0 0 0 0 d1 endstream endobj 183 0 obj <>stream 0 0 0 -6 24 93 d1 24 0 0 99 0 -6 cm BI /IM true /W 24 /H 99 /BPC 1 /F /CCF /DP <> ID &XZZ -p]~z/Z_ /Mw|= ߀ EI endstream endobj 184 0 obj <>stream 0 0 0 -6 24 93 d1 24 0 0 99 0 -6 cm BI /IM true /W 24 /H 99 /BPC 1 /F /CCF /DP <> ID &h{{{>{ZX_^Akֽa.Z]iu EI endstream endobj 185 0 obj <> stream 36 0 0 0 0 0 d1 endstream endobj 186 0 obj <> stream 60 0 0 0 0 0 d1 endstream endobj 187 0 obj <> stream 104 0 0 0 0 0 d1 endstream endobj 188 0 obj <>stream 0 0 0 26 38 69 d1 38 0 0 43 0 26 cm BI /IM true /W 38 /H 43 /BPC 1 /F /CCF /DP <> ID _'2jþ۷ ?}<7Eaoÿm @ EI endstream endobj 189 0 obj <> stream 58 0 0 0 0 0 d1 endstream endobj 190 0 obj <> stream 32 0 0 0 0 0 d1 endstream endobj 191 0 obj <>stream 0 0 0 -2 79 69 d1 79 0 0 71 0 -2 cm BI /IM true /W 79 /H 71 /BPC 1 /F /CCF /DP <> ID &"  6 /b#ME3 a ?Ta9/70H`xa \D@ EI endstream endobj 192 0 obj <>stream 0 0 0 -3 67 69 d1 67 0 0 72 0 -3 cm BI /IM true /W 67 /H 72 /BPC 1 /F /CCF /DP <> ID %"zoo_߽z_=vv_=ǵk@ EI endstream endobj 193 0 obj <> stream 112 0 0 0 0 0 d1 endstream endobj 194 0 obj <>stream 0 0 0 0 62 69 d1 62 0 0 69 0 0 cm BI /IM true /W 62 /H 69 /BPC 1 /F /CCF /DP <> ID +oj! C5!/N]0J# EI endstream endobj 195 0 obj <>stream 0 0 0 -1 47 71 d1 47 0 0 72 0 -1 cm BI /IM true /W 47 /H 72 /BPC 1 /F /CCF /DP <> ID &0p'a?wr~?Xgx1 J|@ EI endstream endobj 196 0 obj <>stream 0 0 0 3 25 71 d1 25 0 0 68 0 3 cm BI /IM true /W 25 /H 68 /BPC 1 /F /CCF /DP <> ID & A>MV~X0_/@^@ EI endstream endobj 197 0 obj <>stream 0 0 0 24 50 71 d1 50 0 0 47 0 24 cm BI /IM true /W 50 /H 47 /BPC 1 /F /CCF /DP <> ID &l  G}aB߇6?;_> stream 30 0 0 0 0 0 d1 endstream endobj 199 0 obj <>stream 0 0 0 24 36 71 d1 36 0 0 47 0 24 cm BI /IM true /W 36 /H 47 /BPC 1 /F /CCF /DP <> ID & jGHz}"*d(/{o~ol,0ia Bl@ EI endstream endobj 200 0 obj <>stream 0 0 0 44 26 50 d1 26 0 0 6 0 44 cm BI /IM true /W 26 /H 6 /BPC 1 /F /CCF /DP <> ID WU EI endstream endobj 201 0 obj <>stream 0 0 0 24 40 89 d1 40 0 0 65 0 24 cm BI /IM true /W 40 /H 65 /BPC 1 /F /CCF /DP <> ID &/M"{n??w߿w ;]n0hޞ8?@ EI endstream endobj 202 0 obj <>stream 0 0 0 24 48 71 d1 48 0 0 47 0 24 cm BI /IM true /W 48 /H 47 /BPC 1 /F /CCF /DP <> ID & 0@h(v͍~MV?o~`z}k~  EI endstream endobj 203 0 obj <>stream 0 0 0 6 30 71 d1 30 0 0 65 0 6 cm BI /IM true /W 30 /H 65 /BPC 1 /F /CCF /DP <> ID & |=0[߿;"y5_!g} EI endstream endobj 204 0 obj <>stream 0 0 0 24 34 71 d1 34 0 0 47 0 24 cm BI /IM true /W 34 /H 47 /BPC 1 /F /CCF /DP <> ID &> z7s0&{ t]-xXK:tA/p0KXb`  EI endstream endobj 205 0 obj <>stream 0 0 0 24 36 71 d1 36 0 0 47 0 24 cm BI /IM true /W 36 /H 47 /BPC 1 /F /CCF /DP <> ID & j|a >޷ ۿol ް,|@ EI endstream endobj 206 0 obj <>stream 0 0 0 58 16 89 d1 16 0 0 31 0 58 cm BI /IM true /W 16 /H 31 /BPC 1 /F /CCF /DP <> ID 0 5O߾~|xC} EI endstream endobj 207 0 obj <>stream 0 0 0 -1 35 71 d1 35 0 0 72 0 -1 cm BI /IM true /W 35 /H 72 /BPC 1 /F /CCF /DP <> ID & '0z߆~Շoۮ gֽ^K]_ EI endstream endobj 208 0 obj <>stream 0 0 0 24 42 71 d1 42 0 0 47 0 24 cm BI /IM true /W 42 /H 47 /BPC 1 /F /CCF /DP <> ID &>stream 0 0 0 24 40 71 d1 40 0 0 47 0 24 cm BI /IM true /W 40 /H 47 /BPC 1 /F /CCF /DP <> ID &l~6_dp?}pn~ OS @ EI endstream endobj 210 0 obj <> stream 98 0 0 0 0 0 d1 endstream endobj 211 0 obj <> stream 37 0 0 0 0 0 d1 endstream endobj 212 0 obj <>stream 0 0 0 11 66 77 d1 66 0 0 66 0 11 cm BI /IM true /W 66 /H 66 /BPC 1 /F /CCF /DP <> ID &`VA? EI endstream endobj 213 0 obj <>stream 0 0 0 0 69 69 d1 69 0 0 69 0 0 cm BI /IM true /W 69 /H 69 /BPC 1 /F /CCF /DP <> ID &ȇ!]e?w ?;cf-c?C`r  EI endstream endobj 214 0 obj <>stream 0 0 0 24 44 90 d1 44 0 0 66 0 24 cm BI /IM true /W 44 /H 66 /BPC 1 /F /CCF /DP <> ID &i =~A1?;~ o?8ww~o[ P2 EI endstream endobj 215 0 obj <>stream 0 0 0 24 50 89 d1 50 0 0 65 0 24 cm BI /IM true /W 50 /H 65 /BPC 1 /F /CCF /DP <> ID 3i%|L}?-wo^5n~ /zئ!aA EI endstream endobj 216 0 obj <> stream 107 0 0 0 0 0 d1 endstream endobj 217 0 obj <> stream 106 0 0 0 0 0 d1 endstream endobj 218 0 obj <> stream 102 0 0 0 0 0 d1 endstream endobj 219 0 obj <>stream 0 0 0 0 84 69 d1 84 0 0 69 0 0 cm BI /IM true /W 84 /H 69 /BPC 1 /F /CCF /DP <> ID !OɩCb0`i?OOoOMM?c!2\7? EI endstream endobj 220 0 obj <>stream 0 0 0 -6 18 95 d1 18 0 0 101 0 -6 cm BI /IM true /W 18 /H 101 /BPC 1 /F /CCF /DP <> ID a?  EI endstream endobj 221 0 obj <>stream 0 0 0 0 66 69 d1 66 0 0 69 0 0 cm BI /IM true /W 66 /H 69 /BPC 1 /F /CCF /DP <> ID %`\MD$7῿o~ׯ^_^L@ EI endstream endobj 222 0 obj <>stream 0 0 0 0 67 69 d1 67 0 0 69 0 0 cm BI /IM true /W 67 /H 69 /BPC 1 /F /CCF /DP <> ID bB@!i' h8 @ EI endstream endobj 223 0 obj <>stream 0 0 0 3 34 69 d1 34 0 0 66 0 3 cm BI /IM true /W 34 /H 66 /BPC 1 /F /CCF /DP <> ID &l/='} EI endstream endobj 224 0 obj <>stream 0 0 0 3 43 72 d1 43 0 0 69 0 3 cm BI /IM true /W 43 /H 69 /BPC 1 /F /CCF /DP <> ID &D?a鿇>>Fd7IPɯ.t0im ,0  EI endstream endobj 225 0 obj <>stream 0 0 0 3 43 72 d1 43 0 0 69 0 3 cm BI /IM true /W 43 /H 69 /BPC 1 /F /CCF /DP <> ID &8/A` [>ҿ_߯+ KB .\1 Mxaxf3m?=?|0Kk ,s@ EI endstream endobj 226 0 obj <>stream 0 0 0 -6 17 95 d1 17 0 0 101 0 -6 cm BI /IM true /W 17 /H 101 /BPC 1 /F /CCF /DP <> ID '  EI endstream endobj 227 0 obj <>stream 0 0 0 -2 66 72 d1 66 0 0 74 0 -2 cm BI /IM true /W 66 /H 74 /BPC 1 /F /CCF /DP <> ID &C B%0 <,< @oo }o}o [}o_p__Avia q  EI endstream endobj 228 0 obj <>stream 0 0 0 0 55 69 d1 55 0 0 69 0 0 cm BI /IM true /W 55 /H 69 /BPC 1 /F /CCF /DP <> ID 5v7Jo  EI endstream endobj 229 0 obj <>stream 0 0 0 2 26 90 d1 26 0 0 88 0 2 cm BI /IM true /W 26 /H 88 /BPC 1 /F /CCF /DP <> ID &4 0d.d%_'2@k @ EI endstream endobj 230 0 obj <>stream 0 0 0 3 41 72 d1 41 0 0 69 0 3 cm BI /IM true /W 41 /H 69 /BPC 1 /F /CCF /DP <> ID &|W@ >8`/8.. y ^/kh EI endstream endobj 231 0 obj <> stream 101 0 0 0 0 0 d1 endstream endobj 232 0 obj <>stream 0 0 0 0 69 72 d1 69 0 0 72 0 0 cm BI /IM true /W 69 /H 72 /BPC 1 /F /CCF /DP <> ID &phP@@BzOɨP~x^+@73o__ z }b!ABpi@ EI endstream endobj 233 0 obj <> stream 111 0 0 0 0 0 d1 endstream endobj 234 0 obj <> stream 24 0 0 0 0 0 d1 endstream endobj 235 0 obj <>stream 0 0 0 0 69 69 d1 69 0 0 69 0 0 cm BI /IM true /W 69 /H 69 /BPC 1 /F /CCF /DP <> ID aj! 2Ei_Kz__/A}.ׇ]k0^ׇo@K EI endstream endobj 236 0 obj <>stream 0 0 0 3 41 69 d1 41 0 0 66 0 3 cm BI /IM true /W 41 /H 66 /BPC 1 /F /CCF /DP <> ID &=a{7߶o ?{}{}OAu[0]X0`a EI endstream endobj 237 0 obj <>stream 0 0 0 3 43 72 d1 43 0 0 69 0 3 cm BI /IM true /W 43 /H 69 /BPC 1 /F /CCF /DP <> ID &1j#3AxX>&} O?[w__4ް ba` EI endstream endobj 238 0 obj <> stream 108 0 0 0 0 0 d1 endstream endobj 239 0 obj <>stream 0 0 0 2 43 72 d1 43 0 0 70 0 2 cm BI /IM true /W 43 /H 70 /BPC 1 /F /CCF /DP <> ID &~ao~yPa߿|]@@ EI endstream endobj 240 0 obj <> stream 47 0 0 0 0 0 d1 endstream endobj 241 0 obj <>stream 0 0 0 0 64 94 d1 64 0 0 94 0 0 cm BI /IM true /W 64 /H 94 /BPC 1 /F /CCF /DP <> ID j}>}~o߿݃ f<7~a#(' |%Uh,0awKv kaa"@Q@ EI endstream endobj 242 0 obj <>stream 0 0 0 -6 70 96 d1 70 0 0 102 0 -6 cm BI /IM true /W 70 /H 102 /BPC 1 /F /CCF /DP <> ID 6F/!%`8>:w}=0 IZ\ m1@@^C`. a%\PD 32$PkUK&Umj` w\6 A0 a?<@ EI endstream endobj 243 0 obj <>stream 0 0 0 -5 140 94 d1 140 0 0 99 0 -5 cm BI /IM true /W 140 /H 99 /BPC 1 /F /CCF /DP <> ID &s_td5ᄟ? O 7M [ 7 O8OP EI endstream endobj 244 0 obj <>stream 0 0 0 -6 102 96 d1 102 0 0 102 0 -6 cm BI /IM true /W 102 /H 102 /BPC 1 /F /CCF /DP <> ID &SiJ0D3 0D`e< A7|$ޓ[}|-0ISj\=턿޿ =v޷][ ޶ ApvAXb ![ !  EI endstream endobj 245 0 obj <>stream 0 0 0 -5 113 96 d1 113 0 0 101 0 -5 cm BI /IM true /W 113 /H 101 /BPC 1 /F /CCF /DP <> ID &x(5JDx'f [kK_K^%. 50  ~ _~}}/ׄP+u\.w0lrd ~  EI endstream endobj 246 0 obj <> stream 115 0 0 0 0 0 d1 endstream endobj 247 0 obj <> stream 110 0 0 0 0 0 d1 endstream endobj 248 0 obj <>stream 0 0 0 24 49 89 d1 49 0 0 65 0 24 cm BI /IM true /W 49 /H 65 /BPC 1 /F /CCF /DP <> ID &AsFcߠ~L}>}_5~_\0ha/z'  EI endstream endobj 249 0 obj <>stream 0 0 0 26 12 69 d1 12 0 0 43 0 26 cm BI /IM true /W 12 /H 43 /BPC 1 /F /CCF /DP <> ID &ۂ!MPX0˼qj EI endstream endobj 250 0 obj <>stream 0 0 0 3 49 71 d1 49 0 0 68 0 3 cm BI /IM true /W 49 /H 68 /BPC 1 /F /CCF /DP <> ID &0@xG&?÷߻w~oئ` f0A0  EI endstream endobj 251 0 obj <>stream 0 0 0 24 41 71 d1 41 0 0 47 0 24 cm BI /IM true /W 41 /H 47 /BPC 1 /F /CCF /DP <> ID &`/AO +#߿ c {{ 7a\O EI endstream endobj 252 0 obj <>stream 0 0 0 16 61 72 d1 61 0 0 56 0 16 cm BI /IM true /W 61 /H 56 /BPC 1 /F /CCF /DP <> ID &A X@, Aap@ApX \., ,X X.XGO !p a`>x0x0|0x0x``8 EI endstream endobj 253 0 obj <>stream 0 0 0 0 60 69 d1 60 0 0 69 0 0 cm BI /IM true /W 60 /H 69 /BPC 1 /F /CCF /DP <> ID `5.~ /~~EB# EI endstream endobj 254 0 obj <>stream 0 0 0 16 61 72 d1 61 0 0 56 0 16 cm BI /IM true /W 61 /H 56 /BPC 1 /F /CCF /DP <> ID 6 paL<<x>x`x0x`|0yᇐS>? A^, X X\, , ` p  EI endstream endobj 255 0 obj <>stream 0 0 0 3 50 71 d1 50 0 0 68 0 3 cm BI /IM true /W 50 /H 68 /BPC 1 /F /CCF /DP <> ID &8cAΡ 9A,d_QhL! ziXa  EI endstream endobj 256 0 obj <>stream 0 0 0 0 69 72 d1 69 0 0 72 0 0 cm BI /IM true /W 69 /H 72 /BPC 1 /F /CCF /DP <> ID &l?|}oa~  [A·oa}B~D8Hn@ EI endstream endobj 257 0 obj <>stream 0 0 0 0 43 72 d1 43 0 0 72 0 0 cm BI /IM true /W 43 /H 72 /BPC 1 /F /CCF /DP <> ID &I#PG=[oIh x5׵ 8 EI endstream endobj 258 0 obj <>stream 0 0 0 0 67 69 d1 67 0 0 69 0 0 cm BI /IM true /W 67 /H 69 /BPC 1 /F /CCF /DP <> ID !Jjd0k{^_/BK~K_/ _/ _ KƟAA>  EI endstream endobj 259 0 obj <>stream 0 0 0 0 39 39 d1 39 0 0 39 0 0 cm BI /IM true /W 39 /H 39 /BPC 1 /F /CCF /DP <> ID &@,'<'_kaaf EI endstream endobj 260 0 obj <> endobj 261 0 obj <> endobj 265 0 obj <>stream 0 0 0 26 13 89 d1 13 0 0 63 0 26 cm BI /IM true /W 13 /H 63 /BPC 1 /F /CCF /DP <> ID &~˾c MPX0 EI endstream endobj 266 0 obj <> stream 97 0 0 0 0 0 d1 endstream endobj 267 0 obj <>stream 0 0 0 -24 32 45 d1 32 0 0 69 0 -24 cm BI /IM true /W 32 /H 69 /BPC 1 /F /CCF /DP <> ID jă @ EI endstream endobj 268 0 obj <>stream 0 0 0 0 57 4 d1 57 0 0 4 0 0 cm BI /IM true /W 57 /H 4 /BPC 1 /F /CCF /DP <> ID  EI endstream endobj 269 0 obj <>stream 0 0 0 14 61 74 d1 61 0 0 60 0 14 cm BI /IM true /W 61 /H 60 /BPC 1 /F /CCF /DP <> ID &N,X@Aap`a .,X\ XAp Tx|0x0<0a  >  EI endstream endobj 270 0 obj <>stream 0 0 0 0 61 69 d1 61 0 0 69 0 0 cm BI /IM true /W 61 /H 69 /BPC 1 /F /CCF /DP <> ID RH h?~_/K_ q' 0x]0D(P@ EI endstream endobj 272 0 obj <>stream 0 0 0 14 61 74 d1 61 0 0 60 0 14 cm BI /IM true /W 61 /H 60 /BPC 1 /F /CCF /DP <> ID &pp > <0x|x`x0߂XApAap   ,, \,X@X MQX EI endstream endobj 273 0 obj <>stream 0 0 0 -2 60 72 d1 60 0 0 74 0 -2 cm BI /IM true /W 60 /H 74 /BPC 1 /F /CCF /DP <> ID &C D@c6$Xx A o &}'¿__@am[k0{Da8 EI endstream endobj 274 0 obj <>stream 0 0 0 -2 62 69 d1 62 0 0 71 0 -2 cm BI /IM true /W 62 /H 71 /BPC 1 /F /CCF /DP <> ID &"OFri$`&0# a0&<0. 8 EI endstream endobj 275 0 obj <>stream 0 0 0 3 43 72 d1 43 0 0 69 0 3 cm BI /IM true /W 43 /H 69 /BPC 1 /F /CCF /DP <> ID &bB Fz/I }] %렺,.Ap L?]^Kfc\{As@ EI endstream endobj 276 0 obj <>stream 0 0 0 0 67 96 d1 67 0 0 96 0 0 cm BI /IM true /W 67 /H 96 /BPC 1 /F /CCF /DP <> ID &\_!Cx"TNaoI߻ /K\%lhp 5oa oD"Oz׼/]r/:Xb$GeU EI endstream endobj 277 0 obj <>stream 0 0 0 29 123 94 d1 123 0 0 65 0 29 cm BI /IM true /W 123 /H 65 /BPC 1 /F /CCF /DP <> ID & E Y eAú kar X5L4=xbh5 A AC EI endstream endobj 278 0 obj <>stream 0 0 0 29 79 122 d1 79 0 0 93 0 29 cm BI /IM true /W 79 /H 93 /BPC 1 /F /CCF /DP <> ID "! "DqA o uK50 a~RjA EI endstream endobj 279 0 obj <> stream 130 0 0 0 0 0 d1 endstream endobj 280 0 obj <>stream 0 0 0 -6 36 94 d1 36 0 0 100 0 -6 cm BI /IM true /W 36 /H 100 /BPC 1 /F /CCF /DP <> ID &BUW@ EI endstream endobj 281 0 obj <>stream 0 0 0 28 62 96 d1 62 0 0 68 0 28 cm BI /IM true /W 62 /H 68 /BPC 1 /F /CCF /DP <> ID &u ^<xAo@7?Af__L`߿ׯ~ ,?m]% Y ` EI endstream endobj 282 0 obj <> stream 131 0 0 0 0 0 d1 endstream endobj 283 0 obj <>stream 0 0 0 28 73 96 d1 73 0 0 68 0 28 cm BI /IM true /W 73 /H 68 /BPC 1 /F /CCF /DP <> ID &Aː_\H qCO ymn!%  ,__ᤸA-*_ @@ EI endstream endobj 284 0 obj <>stream 0 0 0 -2 60 72 d1 60 0 0 74 0 -2 cm BI /IM true /W 60 /H 74 /BPC 1 /F /CCF /DP <> ID &`6B F` 6 o  u ` XAh-tT| 9@i!k߰av{3A1?i EI endstream endobj 285 0 obj <>stream 0 0 0 37 33 85 d1 33 0 0 48 0 37 cm BI /IM true /W 33 /H 48 /BPC 1 /F /CCF /DP <> ID &XGzL?-U=vAo[ 3@ EI endstream endobj 286 0 obj <>stream 0 0 0 0 72 69 d1 72 0 0 69 0 0 cm BI /IM true /W 72 /H 69 /BPC 1 /F /CCF /DP <> ID a5P v߇P`>P|s}vå._ EI endstream endobj 287 0 obj <>stream 0 0 0 37 27 83 d1 27 0 0 46 0 37 cm BI /IM true /W 27 /H 46 /BPC 1 /F /CCF /DP <> ID &Mʿ|< EI endstream endobj 288 0 obj <> endobj 292 0 obj <>stream 0 0 0 -1 41 78 d1 41 0 0 79 0 -1 cm BI /IM true /W 41 /H 79 /BPC 1 /F /CCF /DP <> ID &OBD4y=7{%xpaX] _dY-?w_d55<  EI endstream endobj 293 0 obj <>stream 0 0 0 8 45 69 d1 45 0 0 61 0 8 cm BI /IM true /W 45 /H 61 /BPC 1 /F /CCF /DP <> ID &ȾAG& EI endstream endobj 294 0 obj <>stream 0 0 0 8 48 69 d1 48 0 0 61 0 8 cm BI /IM true /W 48 /H 61 /BPC 1 /F /CCF /DP <> ID &(ɪ@^?A3Oa׏?T EI endstream endobj 295 0 obj <>stream 0 0 0 8 48 69 d1 48 0 0 61 0 8 cm BI /IM true /W 48 /H 61 /BPC 1 /F /CCF /DP <> ID &k>MVÓ{,0׺-n[_ OA?X}>Մj8Pxp@ EI endstream endobj 296 0 obj <>stream 0 0 0 28 45 50 d1 45 0 0 22 0 28 cm BI /IM true /W 45 /H 22 /BPC 1 /F /CCF /DP <> ID &X+Mu EI endstream endobj 297 0 obj <>stream 0 0 0 6 31 37 d1 31 0 0 31 0 6 cm BI /IM true /W 31 /H 31 /BPC 1 /F /CCF /DP <> ID &`_[z  EI endstream endobj 298 0 obj <>stream 0 0 0 8 42 69 d1 42 0 0 61 0 8 cm BI /IM true /W 42 /H 61 /BPC 1 /F /CCF /DP <> ID &kP EI endstream endobj 299 0 obj <>stream 0 0 0 26 43 69 d1 43 0 0 43 0 26 cm BI /IM true /W 43 /H 43 /BPC 1 /F /CCF /DP <> ID &C0" 5Z φ_uXa~ EI endstream endobj 300 0 obj <>stream 0 0 0 26 48 69 d1 48 0 0 43 0 26 cm BI /IM true /W 48 /H 43 /BPC 1 /F /CCF /DP <> ID &.8|."x31.K/mp~O?~a_Oa?  EI endstream endobj 301 0 obj <>stream 0 0 0 6 38 69 d1 38 0 0 63 0 6 cm BI /IM true /W 38 /H 63 /BPC 1 /F /CCF /DP <> ID &EjAy5^? EI endstream endobj 302 0 obj <>stream 0 0 0 26 40 69 d1 40 0 0 43 0 26 cm BI /IM true /W 40 /H 43 /BPC 1 /F /CCF /DP <> ID & ,7p[O5QɪCdp 'c A EI endstream endobj 303 0 obj <>stream 0 0 0 26 43 69 d1 43 0 0 43 0 26 cm BI /IM true /W 43 /H 43 /BPC 1 /F /CCF /DP <> ID & 1<x@E z>o}oOiv0K %_ P EI endstream endobj 304 0 obj <>stream 0 0 0 26 50 69 d1 50 0 0 43 0 26 cm BI /IM true /W 50 /H 43 /BPC 1 /F /CCF /DP <> ID &%TYd\xRj2p`@ EI endstream endobj 305 0 obj <>stream 0 0 0 -1 22 71 d1 22 0 0 72 0 -1 cm BI /IM true /W 22 /H 72 /BPC 1 /F /CCF /DP <> ID &|'x#)wy5_~߿*C  EI endstream endobj 306 0 obj <>stream 0 0 0 24 48 71 d1 48 0 0 47 0 24 cm BI /IM true /W 48 /H 47 /BPC 1 /F /CCF /DP <> ID &</ށ S} +|K?}=bg EI endstream endobj 307 0 obj <>stream 0 0 0 24 40 71 d1 40 0 0 47 0 24 cm BI /IM true /W 40 /H 47 /BPC 1 /F /CCF /DP <> ID & g:G=oH>վoX?]  ) EI endstream endobj 308 0 obj <>stream 0 0 0 0 69 69 d1 69 0 0 69 0 0 cm BI /IM true /W 69 /H 69 /BPC 1 /F /CCF /DP <> ID *"Jz vk_Xm. mߺ nwxZ_=}&zPOWMCI@D* EI endstream endobj 309 0 obj <>stream 0 0 0 8 45 69 d1 45 0 0 61 0 8 cm BI /IM true /W 45 /H 61 /BPC 1 /F /CCF /DP <> ID &T9 Bo0p߃~zׅ(T4  EI endstream endobj 310 0 obj <>stream 0 0 0 26 46 69 d1 46 0 0 43 0 26 cm BI /IM true /W 46 /H 43 /BPC 1 /F /CCF /DP <> ID & MRyia?h(cX5&  EI endstream endobj 311 0 obj <>stream 0 0 0 8 41 69 d1 41 0 0 61 0 8 cm BI /IM true /W 41 /H 61 /BPC 1 /F /CCF /DP <> ID &*&bDc  EI endstream endobj 312 0 obj <>stream 0 0 0 -1 8 78 d1 8 0 0 79 0 -1 cm BI /IM true /W 8 /H 79 /BPC 1 /F /CCF /DP <> ID &P EI endstream endobj 313 0 obj <> stream 119 0 0 0 0 0 d1 endstream endobj 314 0 obj <>stream 0 0 0 14 41 65 d1 41 0 0 51 0 14 cm BI /IM true /W 41 /H 51 /BPC 1 /F /CCF /DP <> ID &-`XAh,K a@K\ . =`a ?x{ EI endstream endobj 315 0 obj <>stream 0 0 0 14 41 65 d1 41 0 0 51 0 14 cm BI /IM true /W 41 /H 51 /BPC 1 /F /CCF /DP <> ID &pA}x}|x>> >p{aX%X\  ւpXa@@ EI endstream endobj 316 0 obj <>stream 0 0 0 56 14 69 d1 14 0 0 13 0 56 cm BI /IM true /W 14 /H 13 /BPC 1 /F /CCF /DP <> ID &_- EI endstream endobj 317 0 obj <>stream 0 0 0 17 38 61 d1 38 0 0 44 0 17 cm BI /IM true /W 38 /H 44 /BPC 1 /F /CCF /DP <> ID &bwq <+ 5A`0 /$gkaɮ  j  EI endstream endobj 318 0 obj <>stream 0 0 0 6 43 71 d1 43 0 0 65 0 6 cm BI /IM true /W 43 /H 65 /BPC 1 /F /CCF /DP <> ID &@OO}N' o`.C`̂UxK\-  Q@fׅZ/$x^24{O EI endstream endobj 319 0 obj <>stream 0 0 0 6 43 71 d1 43 0 0 65 0 6 cm BI /IM true /W 43 /H 65 /BPC 1 /F /CCF /DP <> ID &1'. 7M}&OM /zw_ 4Ka @ EI endstream endobj 320 0 obj <>stream 0 0 0 14 43 69 d1 43 0 0 55 0 14 cm BI /IM true /W 43 /H 55 /BPC 1 /F /CCF /DP <> ID &ܠ$ >[(^/5K! EI endstream endobj 321 0 obj <>stream 0 0 0 26 55 69 d1 55 0 0 43 0 26 cm BI /IM true /W 55 /H 43 /BPC 1 /F /CCF /DP <> ID &];#g/Ça0g.HG[Mt @@ EI endstream endobj 322 0 obj <>stream 0 0 0 26 39 69 d1 39 0 0 43 0 26 cm BI /IM true /W 39 /H 43 /BPC 1 /F /CCF /DP <> ID &ا@"\Q>u Az| ֤%d  fBa," :q4 .ɪ|>B]@ EI endstream endobj 323 0 obj <>stream 0 0 0 26 47 91 d1 47 0 0 65 0 26 cm BI /IM true /W 47 /H 65 /BPC 1 /F /CCF /DP <> ID &j?$7 ?}? /\? (:&O EI endstream endobj 324 0 obj <>stream 0 0 0 26 50 69 d1 50 0 0 43 0 26 cm BI /IM true /W 50 /H 43 /BPC 1 /F /CCF /DP <> ID &@A'CuuDHMc_T EI endstream endobj 325 0 obj <>stream 0 0 0 8 41 69 d1 41 0 0 61 0 8 cm BI /IM true /W 41 /H 61 /BPC 1 /F /CCF /DP <> ID &A , { xao z0Y  EI endstream endobj 326 0 obj <>stream 0 0 0 8 46 69 d1 46 0 0 61 0 8 cm BI /IM true /W 46 /H 61 /BPC 1 /F /CCF /DP <> ID &8w&G_^_x_AzxK(V: MPP EI endstream endobj 327 0 obj <>stream 0 0 0 26 48 69 d1 48 0 0 43 0 26 cm BI /IM true /W 48 /H 43 /BPC 1 /F /CCF /DP <> ID &looaooTkӓU EI endstream endobj 328 0 obj <>stream 0 0 0 8 46 69 d1 46 0 0 61 0 8 cm BI /IM true /W 46 /H 61 /BPC 1 /F /CCF /DP <> ID &㾤r9A0OT EI endstream endobj 329 0 obj <>stream 0 0 0 6 35 69 d1 35 0 0 63 0 6 cm BI /IM true /W 35 /H 63 /BPC 1 /F /CCF /DP <> ID &> stream 120 0 0 0 0 0 d1 endstream endobj 331 0 obj <>stream 0 0 0 6 45 71 d1 45 0 0 65 0 6 cm BI /IM true /W 45 /H 65 /BPC 1 /F /CCF /DP <> ID &OOA>x_ ] k?| џӿ ~}[ .;VkO! EI endstream endobj 332 0 obj <>stream 0 0 0 8 48 69 d1 48 0 0 61 0 8 cm BI /IM true /W 48 /H 61 /BPC 1 /F /CCF /DP <> ID &qV4=a %O|'?_&av׵0\1% / _ڀ EI endstream endobj 333 0 obj <>stream 0 0 0 -1 28 79 d1 28 0 0 80 0 -1 cm BI /IM true /W 28 /H 80 /BPC 1 /F /CCF /DP <> ID &, h-tXAikZ𰿥k/a EI endstream endobj 334 0 obj <>stream 0 0 0 -1 27 79 d1 27 0 0 80 0 -1 cm BI /IM true /W 27 /H 80 /BPC 1 /F /CCF /DP <> ID &l5Axaᇿ__kiiapT*MPP EI endstream endobj 335 0 obj <>stream 0 0 0 16 45 62 d1 45 0 0 46 0 16 cm BI /IM true /W 45 /H 46 /BPC 1 /F /CCF /DP <> ID &h75hڀ EI endstream endobj 336 0 obj <> stream 121 0 0 0 0 0 d1 endstream endobj 337 0 obj <>stream 0 0 0 8 47 69 d1 47 0 0 61 0 8 cm BI /IM true /W 47 /H 61 /BPC 1 /F /CCF /DP <> ID &dXA.o/__ }0~~)Rjp EI endstream endobj 338 0 obj <>stream 0 0 0 26 48 69 d1 48 0 0 43 0 26 cm BI /IM true /W 48 /H 43 /BPC 1 /F /CCF /DP <> ID &" a@P # :'cG4'4GpAix_kj EI endstream endobj 339 0 obj <>stream 0 0 0 8 37 69 d1 37 0 0 61 0 8 cm BI /IM true /W 37 /H 61 /BPC 1 /F /CCF /DP <> ID &EjC)ɪP EI endstream endobj 340 0 obj <>stream 0 0 0 8 50 69 d1 50 0 0 61 0 8 cm BI /IM true /W 50 /H 61 /BPC 1 /F /CCF /DP <> ID &%TYd^+^d?( EI endstream endobj 341 0 obj <>stream 0 0 0 8 50 71 d1 50 0 0 63 0 8 cm BI /IM true /W 50 /H 63 /BPC 1 /F /CCF /DP <> ID &|RpAd)I||/7 /I$@ EI endstream endobj 342 0 obj <>stream 0 0 0 0 70 95 d1 70 0 0 95 0 0 cm BI /IM true /W 70 /H 95 /BPC 1 /F /CCF /DP <> ID &C^σQ?߰?oo~?x EI endstream endobj 343 0 obj <> stream 132 0 0 0 0 0 d1 endstream endobj 344 0 obj <>stream 0 0 0 30 75 123 d1 75 0 0 93 0 30 cm BI /IM true /W 75 /H 93 /BPC 1 /F /CCF /DP <> ID &  {{^x~k}a[Vo}(+o([8  EI endstream endobj 345 0 obj <> stream 117 0 0 0 0 0 d1 endstream endobj 346 0 obj <>stream 0 0 0 -7 55 94 d1 55 0 0 101 0 -7 cm BI /IM true /W 55 /H 101 /BPC 1 /F /CCF /DP <> ID &!**J1?o5+ᅐk  EI endstream endobj 347 0 obj <>stream 0 0 0 28 53 96 d1 53 0 0 68 0 28 cm BI /IM true /W 53 /H 68 /BPC 1 /F /CCF /DP <> ID &.t?%¾k |Cx,I%, --r . 94྿{] .|%3|@ EI endstream endobj 348 0 obj <>stream 0 0 0 -3 64 69 d1 64 0 0 72 0 -3 cm BI /IM true /W 64 /H 72 /BPC 1 /F /CCF /DP <> ID &h!Famx]x~~wۯoc  EI endstream endobj 349 0 obj <>stream 0 0 0 0 46 69 d1 46 0 0 69 0 0 cm BI /IM true /W 46 /H 69 /BPC 1 /F /CCF /DP <> ID &7l.0 EI endstream endobj 350 0 obj <>stream 0 0 0 24 75 71 d1 75 0 0 47 0 24 cm BI /IM true /W 75 /H 47 /BPC 1 /F /CCF /DP <> ID &l6L r>w}? a~͏UaßO44!A EI endstream endobj 351 0 obj <>stream 0 0 0 41 50 44 d1 50 0 0 3 0 41 cm BI /IM true /W 50 /H 3 /BPC 1 /F /CCF /DP <> ID  EI endstream endobj 352 0 obj <>stream 0 0 0 3 43 72 d1 43 0 0 69 0 3 cm BI /IM true /W 43 /H 69 /BPC 1 /F /CCF /DP <> ID &@/!~xF oA}>a?WjMzKmxa. `-5@}? Ou׮K턶f*,X3@`@ EI endstream endobj 353 0 obj <>stream 0 0 0 -2 47 90 d1 47 0 0 92 0 -2 cm BI /IM true /W 47 /H 92 /BPC 1 /F /CCF /DP <> ID &|4?8py5:N|^ǵ@ EI endstream endobj 354 0 obj <>stream 0 0 0 -1 46 71 d1 46 0 0 72 0 -1 cm BI /IM true /W 46 /H 72 /BPC 1 /F /CCF /DP <> ID &<@}sz_5Ww ;]n5mp>CGxf EI endstream endobj 355 0 obj <>stream 0 0 0 0 92 72 d1 92 0 0 72 0 0 cm BI /IM true /W 92 /H 72 /BPC 1 /F /CCF /DP <> ID & iTww}>>߿7=?o~ڰo [~o@ H  EI endstream endobj 356 0 obj <>stream 0 0 0 2 45 69 d1 45 0 0 67 0 2 cm BI /IM true /W 45 /H 67 /BPC 1 /F /CCF /DP <> ID & `57`Bj~~߿߿߿߰߷߿ǿ} EI endstream endobj 357 0 obj <> endobj 361 0 obj <>stream 0 0 0 3 45 71 d1 45 0 0 68 0 3 cm BI /IM true /W 45 /H 68 /BPC 1 /F /CCF /DP <> ID &@13PzMAXz Ow&_K_ m.ް !~,b i0A EI endstream endobj 362 0 obj <>stream 0 0 0 3 47 71 d1 47 0 0 68 0 3 cm BI /IM true /W 47 /H 68 /BPC 1 /F /CCF /DP <> ID &IϟFm<,zA矠c7\?~ |ʿ!?w__A K A~AϏBY ^04 50P EI endstream endobj 363 0 obj <>stream 0 0 0 0 67 69 d1 67 0 0 69 0 0 cm BI /IM true /W 67 /H 69 /BPC 1 /F /CCF /DP <> ID & F<2&h>~w{zY¸.( EI endstream endobj 364 0 obj <>stream 0 0 0 3 47 72 d1 47 0 0 69 0 3 cm BI /IM true /W 47 /H 69 /BPC 1 /F /CCF /DP <> ID &l #H`n)}xn h,w˦ <7>?&ގm?;~z~ 0 v+ C, EI endstream endobj 365 0 obj <>stream 0 0 0 0 67 74 d1 67 0 0 74 0 0 cm BI /IM true /W 67 /H 74 /BPC 1 /F /CCF /DP <> ID &5d0EX4Q8 "O ްxA7pÓUA6kmp\0{ #O(> 5  EI endstream endobj 366 0 obj <>stream 0 0 0 0 57 69 d1 57 0 0 69 0 0 cm BI /IM true /W 57 /H 69 /BPC 1 /F /CCF /DP <> ID & r k? ߾  EI endstream endobj 367 0 obj <>stream 0 0 0 0 68 72 d1 68 0 0 72 0 0 cm BI /IM true /W 68 /H 72 /BPC 1 /F /CCF /DP <> ID &h, (#6~C{>׾ /bN0߆> ][{ `"  EI endstream endobj 368 0 obj <>stream 0 0 0 24 40 71 d1 40 0 0 47 0 24 cm BI /IM true /W 40 /H 47 /BPC 1 /F /CCF /DP <> ID &G]tx>~6O߇wo]k  EI endstream endobj 369 0 obj <>stream 0 0 0 0 63 69 d1 63 0 0 69 0 0 cm BI /IM true /W 63 /H 69 /BPC 1 /F /CCF /DP <> ID &_F~߇!@##@ EI endstream endobj 370 0 obj <>stream 0 0 0 0 67 72 d1 67 0 0 72 0 0 cm BI /IM true /W 67 /H 72 /BPC 1 /F /CCF /DP <> ID &  Mrj?߻?@ EI endstream endobj 371 0 obj <>stream 0 0 0 0 78 69 d1 78 0 0 69 0 0 cm BI /IM true /W 78 /H 69 /BPC 1 /F /CCF /DP <> ID & ` `<|~K 4=vo]p߿l{X 4OV~a}>?~7=GBά EI endstream endobj 372 0 obj <>stream 0 0 0 -1 13 30 d1 13 0 0 31 0 -1 cm BI /IM true /W 13 /H 31 /BPC 1 /F /CCF /DP <> ID &o1ɪ a@@ EI endstream endobj 373 0 obj <>stream 0 0 0 3 36 69 d1 36 0 0 66 0 3 cm BI /IM true /W 36 /H 66 /BPC 1 /F /CCF /DP <> ID &Ta߿?;ޏ?4 EI endstream endobj 374 0 obj <>stream 0 0 0 58 12 69 d1 12 0 0 11 0 58 cm BI /IM true /W 12 /H 11 /BPC 1 /F /CCF /DP <> ID &A0 EI endstream endobj 375 0 obj <>stream 0 0 0 0 92 69 d1 92 0 0 69 0 0 cm BI /IM true /W 92 /H 69 /BPC 1 /F /CCF /DP <> ID Û I|8/ E0{w;}oan}߾oal bAq_@ EI endstream endobj 376 0 obj <>stream 0 0 0 24 43 90 d1 43 0 0 66 0 24 cm BI /IM true /W 43 /H 66 /BPC 1 /F /CCF /DP <> ID &3 G@/}xX}06 }?l~z{ @ EI endstream endobj 377 0 obj <>stream 0 0 0 3 48 72 d1 48 0 0 69 0 3 cm BI /IM true /W 48 /H 69 /BPC 1 /F /CCF /DP <> ID &E?߿߿0}8}&?0ap}th>߇8}ð` EI endstream endobj 378 0 obj <>stream 0 0 0 -6 59 95 d1 59 0 0 101 0 -6 cm BI /IM true /W 59 /H 101 /BPC 1 /F /CCF /DP <> ID 0U}߾o~߿xo~a߇~߿~{߾@ EI endstream endobj 379 0 obj <>stream 0 0 0 3 45 72 d1 45 0 0 69 0 3 cm BI /IM true /W 45 /H 69 /BPC 1 /F /CCF /DP <> ID & #Pl f(=oH7 6M~ ~Z]i膁o 0W a a ,0` EI endstream endobj 380 0 obj <>stream 0 0 0 3 44 71 d1 44 0 0 68 0 3 cm BI /IM true /W 44 /H 68 /BPC 1 /F /CCF /DP <> ID &<'hAk;~{~{߆ wh1>h0ӿ EI endstream endobj 381 0 obj <>stream 0 0 0 3 45 72 d1 45 0 0 69 0 3 cm BI /IM true /W 45 /H 69 /BPC 1 /F /CCF /DP <> ID &dAq`ۓ\6|X?x@߬^}~7o7~`X`a@@ EI endstream endobj 382 0 obj <>stream 0 0 0 3 44 89 d1 44 0 0 86 0 3 cm BI /IM true /W 44 /H 86 /BPC 1 /F /CCF /DP <> ID &1:>xв B+\MfB(Cp~ý߿oÇa{ EI endstream endobj 383 0 obj <>stream 0 0 0 -2 67 72 d1 67 0 0 74 0 -2 cm BI /IM true /W 67 /H 74 /BPC 1 /F /CCF /DP <> ID & dH@_]~O a'MW~ᅦ pA0=> Db ' 8 EI endstream endobj 384 0 obj <>stream 0 0 0 0 73 69 d1 73 0 0 69 0 0 cm BI /IM true /W 73 /H 69 /BPC 1 /F /CCF /DP <> ID &V1a!S~>ݿwn\?_An0|@ EI endstream endobj 385 0 obj <>stream 0 0 0 0 67 72 d1 67 0 0 72 0 0 cm BI /IM true /W 67 /H 72 /BPC 1 /F /CCF /DP <> ID &}>Ooaoooa}o~~ }$`h" EI endstream endobj 386 0 obj <>stream 0 0 0 0 54 72 d1 54 0 0 72 0 0 cm BI /IM true /W 54 /H 72 /BPC 1 /F /CCF /DP <> ID &Aq{pmky   EI endstream endobj 387 0 obj <>stream 0 0 0 3 46 72 d1 46 0 0 69 0 3 cm BI /IM true /W 46 /H 69 /BPC 1 /F /CCF /DP <> ID 6ς0ӓTxK!8=p vx7x}x}\onamw{V`C/ EI endstream endobj 388 0 obj <>stream 0 0 0 3 44 72 d1 44 0 0 69 0 3 cm BI /IM true /W 44 /H 69 /BPC 1 /F /CCF /DP <> ID & ?>aX}7|'za|?u6C. EI endstream endobj 389 0 obj <> endobj 271 0 obj <>/FontBBox[0 -58 123 108]/FontMatrix[1 0 0 1 0 0]/FirstChar 0/LastChar 186/Widths[ 0 89 0 75 60 81 57 79 51 58 50 61 34 0 54 59 43 0 32 33 27 0 0 0 130 0 88 0 44 73 131 0 64 0 83 0 76 0 0 66 87 94 62 70 0 103 0 0 0 53 56 0 101 0 112 0 47 0 52 0 0 0 0 49 0 0 77 0 39 0 41 0 67 0 0 55 0 99 107 0 119 0 0 0 114 0 0 0 100 108 0 0 0 0 0 0 98 0 0 0 0 48 120 86 102 46 97 0 0 96 0 42 0 0 121 0 0 106 0 45 115 0 0 0 132 0 63 117 0 72 65 69 0 93 0 68 0 0 0 0 0 0 74 0 85 82 30 0 0 0 0 40 37 0 0 0 91 0 78 0 105 38 0 0 0 0 0 0 0 92 0 26 0 0 0 0 0 0 90 0 0 0 0 0 80 0 71] >> endobj 9 0 obj <>/FontBBox[0 -105 140 123]/FontMatrix[1 0 0 1 0 0]/FirstChar 0/LastChar 255/Widths[ 0 0 92 0 147 0 127 0 123 0 85 0 0 124 0 72 0 62 0 139 0 77 0 144 0 114 79 0 136 0 90 0 88 68 74 0 66 44 80 94 0 105 143 81 61 0 91 0 0 145 113 0 73 83 63 43 0 42 82 75 65 45 0 100 95 135 96 0 41 150 76 0 0 55 0 89 0 69 0 0 86 0 52 0 33 0 0 64 0 0 0 48 0 99 0 0 71 0 0 0 0 0 46 51 0 67 87 34 103 0 0 0 59 0 0 0 0 84 0 0 0 0 0 93 0 0 39 0 38 0 0 0 0 0 0 56 0 50 28 0 0 0 49 54 0 27 0 31 0 70 40 0 0 0 0 57 26 0 0 0 0 0 53 29 0 0 35 0 0 0 0 0 78 0 0 36 60 104 0 58 32 0 0 112 0 0 0 0 30 0 0 0 0 0 0 0 0 0 0 0 98 37 0 0 0 0 107 106 102 0 0 0 0 0 0 0 0 0 0 0 0 101 0 111 24 0 0 0 108 0 47 0 0 0 0 0 115 110 0 0 0 0 0 0 0 0 0 0 0 0 0 97 0 0 0 0] >> endobj 2 0 obj <>endobj xref 0 390 0000000000 65535 f 0000012522 00000 n 0000094495 00000 n 0000012439 00000 n 0000012570 00000 n 0000011804 00000 n 0000000015 00000 n 0000003009 00000 n 0000012639 00000 n 0000090564 00000 n 0000013876 00000 n 0000014241 00000 n 0000014626 00000 n 0000014690 00000 n 0000015053 00000 n 0000015118 00000 n 0000015475 00000 n 0000015540 00000 n 0000015758 00000 n 0000015823 00000 n 0000016147 00000 n 0000016211 00000 n 0000016584 00000 n 0000016873 00000 n 0000016938 00000 n 0000017191 00000 n 0000017255 00000 n 0000017575 00000 n 0000017639 00000 n 0000017957 00000 n 0000018022 00000 n 0000018292 00000 n 0000018356 00000 n 0000018711 00000 n 0000018776 00000 n 0000019071 00000 n 0000019136 00000 n 0000019200 00000 n 0000019517 00000 n 0000019582 00000 n 0000019863 00000 n 0000019927 00000 n 0000020197 00000 n 0000020261 00000 n 0000020325 00000 n 0000020389 00000 n 0000020637 00000 n 0000020701 00000 n 0000020765 00000 n 0000020829 00000 n 0000020893 00000 n 0000021142 00000 n 0000021207 00000 n 0000021272 00000 n 0000021336 00000 n 0000021400 00000 n 0000021693 00000 n 0000021757 00000 n 0000022123 00000 n 0000022433 00000 n 0000022498 00000 n 0000022563 00000 n 0000022831 00000 n 0000022895 00000 n 0000022959 00000 n 0000023023 00000 n 0000023087 00000 n 0000023410 00000 n 0000023474 00000 n 0000023538 00000 n 0000023602 00000 n 0000023666 00000 n 0000023730 00000 n 0000023949 00000 n 0000024014 00000 n 0000024078 00000 n 0000024143 00000 n 0000024207 00000 n 0000024515 00000 n 0000024579 00000 n 0000024644 00000 n 0000024708 00000 n 0000025037 00000 n 0000025283 00000 n 0000025347 00000 n 0000025647 00000 n 0000025711 00000 n 0000026000 00000 n 0000026064 00000 n 0000026319 00000 n 0000026570 00000 n 0000026634 00000 n 0000026858 00000 n 0000026922 00000 n 0000027193 00000 n 0000027257 00000 n 0000027505 00000 n 0000027744 00000 n 0000027808 00000 n 0000028124 00000 n 0000028378 00000 n 0000028634 00000 n 0000028699 00000 n 0000028924 00000 n 0000028989 00000 n 0000029270 00000 n 0000029478 00000 n 0000029543 00000 n 0000029820 00000 n 0000030049 00000 n 0000030290 00000 n 0000030544 00000 n 0000030803 00000 n 0000030868 00000 n 0000030933 00000 n 0000031210 00000 n 0000031275 00000 n 0000031340 00000 n 0000031405 00000 n 0000031471 00000 n 0000031713 00000 n 0000031945 00000 n 0000032203 00000 n 0000032268 00000 n 0000032523 00000 n 0000032762 00000 n 0000033039 00000 n 0000033343 00000 n 0000033408 00000 n 0000033674 00000 n 0000033945 00000 n 0000034187 00000 n 0000034494 00000 n 0000034738 00000 n 0000034803 00000 n 0000035061 00000 n 0000035285 00000 n 0000035350 00000 n 0000035598 00000 n 0000035663 00000 n 0000035895 00000 n 0000036126 00000 n 0000036387 00000 n 0000036646 00000 n 0000036892 00000 n 0000037137 00000 n 0000037202 00000 n 0000037420 00000 n 0000037485 00000 n 0000037550 00000 n 0000037838 00000 n 0000038055 00000 n 0000038296 00000 n 0000038361 00000 n 0000038426 00000 n 0000038683 00000 n 0000038748 00000 n 0000038985 00000 n 0000039050 00000 n 0000039342 00000 n 0000039407 00000 n 0000039472 00000 n 0000039726 00000 n 0000039993 00000 n 0000040256 00000 n 0000040513 00000 n 0000040578 00000 n 0000040643 00000 n 0000040834 00000 n 0000041095 00000 n 0000041349 00000 n 0000041590 00000 n 0000041831 00000 n 0000041896 00000 n 0000041961 00000 n 0000042139 00000 n 0000042401 00000 n 0000042466 00000 n 0000042672 00000 n 0000042907 00000 n 0000043145 00000 n 0000043439 00000 n 0000043681 00000 n 0000043746 00000 n 0000043993 00000 n 0000044242 00000 n 0000044307 00000 n 0000044372 00000 n 0000044438 00000 n 0000044670 00000 n 0000044735 00000 n 0000044800 00000 n 0000045093 00000 n 0000045352 00000 n 0000045418 00000 n 0000045672 00000 n 0000045941 00000 n 0000046185 00000 n 0000046447 00000 n 0000046512 00000 n 0000046763 00000 n 0000046944 00000 n 0000047204 00000 n 0000047463 00000 n 0000047701 00000 n 0000047949 00000 n 0000048191 00000 n 0000048398 00000 n 0000048655 00000 n 0000048910 00000 n 0000049146 00000 n 0000049211 00000 n 0000049276 00000 n 0000049497 00000 n 0000049766 00000 n 0000050035 00000 n 0000050302 00000 n 0000050368 00000 n 0000050434 00000 n 0000050500 00000 n 0000050794 00000 n 0000051004 00000 n 0000051258 00000 n 0000051501 00000 n 0000051720 00000 n 0000051988 00000 n 0000052259 00000 n 0000052479 00000 n 0000052765 00000 n 0000052993 00000 n 0000053232 00000 n 0000053497 00000 n 0000053563 00000 n 0000053837 00000 n 0000053903 00000 n 0000053968 00000 n 0000054239 00000 n 0000054496 00000 n 0000054753 00000 n 0000054819 00000 n 0000055057 00000 n 0000055122 00000 n 0000055417 00000 n 0000055756 00000 n 0000056106 00000 n 0000056441 00000 n 0000056768 00000 n 0000056834 00000 n 0000056900 00000 n 0000057156 00000 n 0000057362 00000 n 0000057641 00000 n 0000057897 00000 n 0000058173 00000 n 0000058418 00000 n 0000058693 00000 n 0000058954 00000 n 0000059216 00000 n 0000059456 00000 n 0000059730 00000 n 0000059947 00000 n 0000059978 00000 n 0000011974 00000 n 0000003029 00000 n 0000006134 00000 n 0000060008 00000 n 0000060231 00000 n 0000060296 00000 n 0000060516 00000 n 0000060691 00000 n 0000060964 00000 n 0000087640 00000 n 0000061226 00000 n 0000061502 00000 n 0000061783 00000 n 0000062055 00000 n 0000062325 00000 n 0000062640 00000 n 0000062938 00000 n 0000063228 00000 n 0000063294 00000 n 0000063532 00000 n 0000063807 00000 n 0000063873 00000 n 0000064175 00000 n 0000064474 00000 n 0000064709 00000 n 0000064964 00000 n 0000065175 00000 n 0000012129 00000 n 0000006156 00000 n 0000009613 00000 n 0000065215 00000 n 0000065510 00000 n 0000065729 00000 n 0000065963 00000 n 0000066220 00000 n 0000066413 00000 n 0000066622 00000 n 0000066836 00000 n 0000067078 00000 n 0000067323 00000 n 0000067545 00000 n 0000067781 00000 n 0000068022 00000 n 0000068254 00000 n 0000068491 00000 n 0000068752 00000 n 0000068997 00000 n 0000069274 00000 n 0000069512 00000 n 0000069736 00000 n 0000069963 00000 n 0000070171 00000 n 0000070237 00000 n 0000070481 00000 n 0000070727 00000 n 0000070919 00000 n 0000071162 00000 n 0000071437 00000 n 0000071694 00000 n 0000071922 00000 n 0000072168 00000 n 0000072420 00000 n 0000072674 00000 n 0000072905 00000 n 0000073144 00000 n 0000073388 00000 n 0000073620 00000 n 0000073850 00000 n 0000074072 00000 n 0000074138 00000 n 0000074391 00000 n 0000074641 00000 n 0000074886 00000 n 0000075130 00000 n 0000075343 00000 n 0000075409 00000 n 0000075661 00000 n 0000075913 00000 n 0000076128 00000 n 0000076368 00000 n 0000076624 00000 n 0000076890 00000 n 0000076956 00000 n 0000077248 00000 n 0000077314 00000 n 0000077575 00000 n 0000077863 00000 n 0000078121 00000 n 0000078350 00000 n 0000078642 00000 n 0000078820 00000 n 0000079105 00000 n 0000079366 00000 n 0000079641 00000 n 0000079943 00000 n 0000080188 00000 n 0000012284 00000 n 0000009635 00000 n 0000011782 00000 n 0000080228 00000 n 0000080495 00000 n 0000080777 00000 n 0000081032 00000 n 0000081309 00000 n 0000081594 00000 n 0000081837 00000 n 0000082116 00000 n 0000082362 00000 n 0000082610 00000 n 0000082877 00000 n 0000083155 00000 n 0000083362 00000 n 0000083594 00000 n 0000083784 00000 n 0000084093 00000 n 0000084366 00000 n 0000084624 00000 n 0000084888 00000 n 0000085167 00000 n 0000085441 00000 n 0000085715 00000 n 0000085988 00000 n 0000086277 00000 n 0000086545 00000 n 0000086803 00000 n 0000087046 00000 n 0000087336 00000 n 0000087600 00000 n trailer << /Size 390 /Root 1 0 R /Info 2 0 R >> startxref 94547 %%EOF sfst-1.7.0/data/SMOR/Makefile000066400000000000000000000004261470213725200156340ustar00rootroot00000000000000 SOURCES = smor.fst OTHER = lexicon smor.a: phon.a $(OTHER) %.a: %.fst fst-compiler $< $@ %.ca: %.a fst-compact $< $@ Makefile: *.fst -makedepend -Y -o.a $(SOURCES) 2>/dev/null # DO NOT DELETE smor.a: map.fst NUM.fst deko.fst flexion.fst defaults.fst FIX.fst PRO.fst sfst-1.7.0/data/SMOR/NUM.fst000066400000000000000000000057441470213725200153610ustar00rootroot00000000000000%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % File: NUM.fst % Author: Helmut Schmid; IMS, Universitaet Stuttgart % Date: July 2003 % Content: definition of cardinal and ordinal number stems %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Cardinals % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $CardStem/2-9$ = zw(ei|o) | drei | vier | fnf | sechs | sieben | acht | neun $CardStem/1-9$ = eins | $CardStem/2-9$ $NumStem/10-19$ = zehn|elf|zwlf | (drei|vier|fnf|sech|sieb|acht|neun)zehn $NumStem/10-19$ = zehn|elf|zwlf | (drei|vier|fnf|sech|sieb|acht|neun)zehn $NumStem/20-90$ = dreiig | (zwan|vier|fnf|sech|sieb|acht|neun)zig $Card/2-99$ = ( \ $CardStem/1-9$ |\ $NumStem/10-19$ |\ ((ein | $CardStem/2-9$) und)? $NumStem/20-90$ ) $Card/1-99$ = eins | $Card/2-99$ $Card/2-999$ = ( \ $Card/2-99$ |\ (ein | $CardStem/2-9$)? hundert ((und)? $Card/1-99$ )?) $Card/1-999$ = eins | $Card/2-999$ $Card/2-999999$ = ( \ $Card/2-999$ | \ (ein | $Card/2-999$)? tausend ((und)? $Card/1-999$)? ) $CardBase0$ = null | eins | $Card/2-999999$ $CardDeriv0$ = null | ein | $Card/2-999999$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Ordinals % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $OrdStem/3-9$ = dritt | viert | fnft | sechst | siebt | acht | neunt $OrdStem/1-9$ = erst | zweit | $OrdStem/3-9$ $Ord/3-99$ = ( \ $OrdStem/3-9$ |\ $NumStem/10-19$t |\ $NumStem/20-90$st |\ (ein | $CardStem/2-9$) und $NumStem/20-90$st ) $Ord/1-99$ = erst | zweit | $Ord/3-99$ $Ord/3-999$ = ( \ $Ord/3-99$ |\ (ein | $CardStem/2-9$)? hundertst |\ (ein | $CardStem/2-9$)? hundert (und)? $Ord/1-99$ ) $Ord/1-999$ = erst | zweit | $Ord/3-999$ $Ord/3-999999$ = ( \ $Ord/3-999$ | \ (ein | $Card/2-999$)? tausend (und)? $Ord/1-999$ ) $Ord0$ = nullt | erst | zweit | $Ord/3-999999$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Digit Numbers % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $DigCard$ = [0-9]+ ([\,\./] [0-9]+)* $DigOrd$ = $DigCard$\. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Resulting transducers % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $Quant$ = $CardDeriv0$ :<> |\ $Ord0$ :<> |\ $DigCard$ \-? :<> |\ (beid | mehr | viel | dies | doppel | ganz | gegen) :<> $CbnC$ = {<>}:{} $ObnO$ = {<>}:{} $ObnD$ = {<>}:{} $NumBase$ = {<>}:{}\ ($CardBase0$ $CbnC$ |\ $Ord0$ $ObnO$ |\ $DigCard$ $CbnC$ |\ $DigOrd$ $ObnD$) $NumDeriv$ = <>:\ ($CardDeriv0$ |\ $Ord0$ |\ $DigCard$ ) {<>}:{} $NumKompos$ = <>: $Ord0$ \ {<>}:{} $Num_Stems$ = $NumBase$ | $NumDeriv$ | $NumKompos$ sfst-1.7.0/data/SMOR/PRO.fst000066400000000000000000001346361470213725200153650ustar00rootroot00000000000000% ************************************************************************* % File: PRO.fst % Author: Helmut Schmid; IMS, University of Stuttgart % Date: April 2003 % Content: pronouns, determiners -- % converted to S-FST from stems.PRO %************************************************************************** % Lower-Case Pronouns $Pro_Low$ = \ % Articles da:es <+ART> |\ da:es:m <+ART> |\ das <+ART> |\ das <+ART> |\ der <+ART> |\ der:m <+ART> |\ der:n <+ART> |\ der:s <+ART> |\ di:<>e<>:n <+ART> |\ di:<>e<>:r <+ART> |\ di:<>e<>:r <+ART> |\ di:<>e<>:r <+ART> |\ die <+ART> |\ die <+ART> |\ die <+ART> |\ die <+ART> |\ ein <+ART> |\ ein <+ART> |\ ein <+ART> |\ ein<>:e <+ART> |\ ein<>:e <+ART> |\ ein<>:e<>:m <+ART> |\ ein<>:e<>:m <+ART> |\ ein<>:e<>:n <+ART> |\ ein<>:e<>:r <+ART> |\ ein<>:e<>:r <+ART> |\ ein<>:e<>:s <+ART> |\ ein<>:e<>:s <+ART> |\ % Personal Pronouns du <+PPRO><2> |\ du:e<>:i<>:n<>:e<>:r <+PPRO><2> |\ du:i<>:c<>:h <+PPRO><2> |\ du:i<>:r <+PPRO><2> |\ e:ir:h<>:m <+PPRO><3> |\ e:ir:h<>:n <+PPRO><3> |\ e:is:h<>:m <+PPRO><3> |\ e:s<>:e<>:i<>:n<>:er <+PPRO><3> |\ e:sr:i<>:c<>:h <+PPRO><3> |\ e:ss:e<>:i<>:n<>:e<>:r <+PPRO><3> |\ e:ss:i<>:c<>:h <+PPRO><3> |\ einander <+PPRO> |\ er <+PPRO><3> |\ es <+PPRO><3> |\ es <+PPRO><3> |\ i:e<>:u<>:chr:<> <+PPRO><2> |\ i:e<>:u<>:chr:<> <+PPRO><2> |\ i:eh:u<>:er <+PPRO><2> |\ i:m<>:ich <+PPRO><1> |\ i:mc:eh:i<>:n<>:e<>:r <+PPRO><1> |\ i:mc:ih:r <+PPRO><1> |\ ich <+PPRO><1> |\ ihr <+PPRO><2> |\ s:ii:h<>:ne<>:n <+PPRO><3> |\ s:ii:h<>:re<>:r <+PPRO><3> |\ s:ii:h<>:re<>:r <+PPRO><3> |\ s:ii:he:r <+PPRO><3> |\ sie <+PPRO><3> |\ sie <+PPRO><3> |\ sie <+PPRO><3> |\ sie <+PPRO><3> |\ sie:c<>:h <+PPRO><3> |\ sie:c<>:h <+PPRO><3> |\ w:u<>:n<>:si:er <+PPRO><1> |\ w:ui:nr:s <+PPRO><1> |\ w:ui:nr:s <+PPRO><1> |\ wir <+PPRO><1> |\ % Relative Pronouns da:es:m <+REL> |\ da:es<>:s<>:e<>:n <+REL> |\ da:es<>:s<>:e<>:n <+REL> |\ das <+REL> |\ das <+REL> |\ der <+REL> |\ der:m <+REL> |\ der:n <+REL> |\ der:s<>:s<>:e<>:n <+REL> |\ der:s<>:s<>:e<>:n <+REL> |\ di:<>e<>:r <+REL> |\ di:e<>:ne<>:n <+REL> |\ di:e<>:re<>:n <+REL> |\ di:e<>:re<>:n <+REL> |\ di:e<>:re<>:n <+REL> |\ di:e<>:re<>:r <+REL> |\ die <+REL> |\ die <+REL> |\ die <+REL> |\ die <+REL> |\ was <+REL> |\ was <+REL> |\ welche <+REL> |\ welche <+REL> |\ welche <+REL> |\ welche <+REL> |\ welche<>:n <+REL> |\ welche<>:r <+REL> |\ welcher <+REL> |\ welcher:m <+REL> |\ welcher:n <+REL> |\ welches <+REL> |\ welches <+REL> |\ welches:m <+REL> |\ % Demostrative Pronouns da:es <+DEM> |\ da:es:m <+DEM> |\ da:es:mjenige<>:n <+DEM> |\ da:es:mselbe<>:n <+DEM> |\ da:es<>:s<>:e<>:n <+DEM> |\ da:esjenige<>:n <+DEM> |\ da:esselbe<>:n <+DEM> |\ das <+DEM> |\ das <+DEM> |\ dasjenige <+DEM> |\ dasjenige <+DEM> |\ dasselbe <+DEM> |\ dasselbe <+DEM> |\ der <+DEM> |\ der:m <+DEM> |\ der:mjenige<>:n <+DEM> |\ der:mselbe<>:n <+DEM> |\ der:n <+DEM> |\ der:njenige<>:n <+DEM> |\ der:nselbe<>:n <+DEM> |\ der:s <+DEM> |\ der:s<>:s<>:e<>:n <+DEM> |\ der:sjenige<>:n <+DEM> |\ der:sselbe<>:n <+DEM> |\ derjenige <+DEM> |\ derselbe <+DEM> |\ di:<>e<>:njenigen <+DEM> |\ di:<>e<>:nselben <+DEM> |\ di:<>e<>:r <+DEM> |\ di:<>e<>:r <+DEM> |\ di:<>e<>:rjenige<>:n <+DEM> |\ di:<>e<>:rjenige<>:n <+DEM> |\ di:<>e<>:rjenigen <+DEM> |\ di:<>e<>:rselbe<>:n <+DEM> |\ di:<>e<>:rselbe<>:n <+DEM> |\ di:<>e<>:rselben <+DEM> |\ di:e<>:ne<>:n <+DEM> |\ di:e<>:re<>:n <+DEM> |\ di:e<>:re<>:n <+DEM> |\ di:e<>:re<>:r <+DEM> |\ die <+DEM> |\ die <+DEM> |\ die <+DEM> |\ die <+DEM> |\ diejenige <+DEM> |\ diejenige <+DEM> |\ diejenigen <+DEM> |\ diejenigen <+DEM> |\ dies <+DEM> |\ dies <+DEM> |\ dies<>:e <+DEM> |\ dies<>:e <+DEM> |\ dies<>:e <+DEM> |\ dies<>:e <+DEM> |\ dies<>:e<>:m <+DEM> |\ dies<>:e<>:m <+DEM> |\ dies<>:e<>:n <+DEM> |\ dies<>:e<>:n <+DEM> |\ dies<>:e<>:r <+DEM> |\ dies<>:e<>:r <+DEM> |\ dies<>:e<>:r <+DEM> |\ dies<>:e<>:r <+DEM> |\ dies<>:e<>:s <+DEM> |\ dies<>:e<>:s <+DEM> |\ dies<>:e<>:s <+DEM> |\ dies<>:e<>:s <+DEM> |\ dieselbe <+DEM> |\ dieselbe <+DEM> |\ dieselben <+DEM> |\ dieselben <+DEM> |\ ebendies<>:e <+DEM> |\ ebendies<>:e <+DEM> |\ ebendies<>:e <+DEM> |\ ebendies<>:e <+DEM> |\ ebendies<>:e<>:m <+DEM> |\ ebendies<>:e<>:m <+DEM> |\ ebendies<>:e<>:n <+DEM> |\ ebendies<>:e<>:n <+DEM> |\ ebendies<>:e<>:r <+DEM> |\ ebendies<>:e<>:r <+DEM> |\ ebendies<>:e<>:r <+DEM> |\ ebendies<>:e<>:r <+DEM> |\ ebendies<>:e<>:s <+DEM> |\ ebendies<>:e<>:s <+DEM> |\ ebendies<>:e<>:s <+DEM> |\ ebendies<>:e<>:s <+DEM> |\ jen<>:e <+DEM> |\ jen<>:e <+DEM> |\ jen<>:e <+DEM> |\ jen<>:e <+DEM> |\ jen<>:e<>:m <+DEM> |\ jen<>:e<>:m <+DEM> |\ jen<>:e<>:n <+DEM> |\ jen<>:e<>:n <+DEM> |\ jen<>:e<>:r <+DEM> |\ jen<>:e<>:r <+DEM> |\ jen<>:e<>:r <+DEM> |\ jen<>:e<>:r <+DEM> |\ jen<>:e<>:s <+DEM> |\ jen<>:e<>:s <+DEM> |\ jen<>:e<>:s <+DEM> |\ jen<>:e<>:s <+DEM> |\ selb<>:e <+DEM> |\ selb<>:e<>:m <+DEM> |\ selb<>:e<>:m <+DEM> |\ selb<>:e<>:n <+DEM> |\ selb<>:e<>:n <+DEM> |\ selb<>:e<>:n <+DEM> |\ selb<>:e<>:s <+DEM> |\ selb<>:i<>:g<>:e <+DEM> |\ selb<>:i<>:g<>:e <+DEM> |\ selb<>:i<>:g<>:e<>:m <+DEM> |\ selb<>:i<>:g<>:e<>:m <+DEM> |\ selb<>:i<>:g<>:e<>:n <+DEM> |\ selb<>:i<>:g<>:e<>:n <+DEM> |\ selb<>:i<>:g<>:e<>:r <+DEM> |\ selb<>:i<>:g<>:e<>:r <+DEM> |\ selb<>:i<>:g<>:e<>:r <+DEM> |\ selb<>:i<>:g<>:e<>:s <+DEM> |\ selb<>:i<>:g<>:e<>:s <+DEM> |\ % Indefinite Pronouns all <+INDEF> |\ alle <+INDEF> |\ alle <+INDEF> |\ alle <+INDEF> |\ alle <+INDEF> |\ alle<>:m <+INDEF> |\ alle<>:m <+INDEF> |\ alle<>:n <+INDEF> |\ alle<>:n <+INDEF> |\ alle<>:n <+INDEF> |\ alle<>:r <+INDEF> |\ alle<>:r <+INDEF> |\ alle<>:r <+INDEF> |\ alle<>:r <+INDEF> |\ alle<>:s <+INDEF> |\ alle<>:s <+INDEF> |\ allerlei <+INDEF> |\ ander<>:e <+INDEF> |\ ander<>:e <+INDEF> |\ ander<>:e <+INDEF> |\ ander<>:e <+INDEF> |\ ander<>:e <+INDEF> |\ ander<>:e <+INDEF> |\ ander<>:e<>:n <+INDEF> |\ ander<>:e<>:n <+INDEF> |\ ander<>:e<>:n <+INDEF> |\ ander<>:e<>:n <+INDEF> |\ ander<>:e<>:n <+INDEF> |\ ander<>:e<>:n <+INDEF> |\ ander<>:e<>:r <+INDEF> |\ ander<>:e<>:s <+INDEF> |\ anderlei <+INDEF> |\ beide <+INDEF> |\ beide <+INDEF> |\ beide<>:m <+INDEF> |\ beide<>:n <+INDEF> |\ beide<>:n <+INDEF> |\ beide<>:n <+INDEF> |\ beide<>:n <+INDEF> |\ beide<>:r <+INDEF> |\ beide<>:s <+INDEF> |\ beide<>:s <+INDEF> |\ beiderlei <+INDEF> |\ bichen <+INDEF> |\ bisschen <+INDEF> |\ deinesgleichen <+INDEF> |\ deinesgleichen <+INDEF> |\ deinesgleichen <+INDEF> |\ dergleichen <+INDEF> |\ dergleichen <+INDEF> |\ dergleichen <+INDEF> |\ derlei <+INDEF> |\ dreierlei <+INDEF> |\ ebensoviel<>:e <+INDEF> |\ ebensoviel<>:e <+INDEF> |\ ebensoviel<>:e<>:m <+INDEF> |\ ebensoviel<>:e<>:n <+INDEF> |\ ebensoviel<>:e<>:n <+INDEF> |\ ebensoviel<>:e<>:n <+INDEF> |\ ebensoviel<>:e<>:n <+INDEF> |\ ebensoviel<>:e<>:r <+INDEF> |\ ebensoviel<>:e<>:s <+INDEF> |\ ebensoviel<>:e<>:s <+INDEF> |\ ebensowenig<>:e <+INDEF> |\ ebensowenig<>:e <+INDEF> |\ ebensowenig<>:e <+INDEF> |\ ebensowenig<>:e <+INDEF> |\ ebensowenig<>:e<>:n <+INDEF> |\ ebensowenig<>:e<>:n <+INDEF> |\ ebensowenig<>:e<>:n <+INDEF> |\ ebensowenig<>:e<>:n <+INDEF> |\ ebensowenig<>:e<>:n <+INDEF> |\ ebensowenig<>:e<>:r <+INDEF> |\ ebensowenig<>:e<>:s <+INDEF> |\ ein<>:e <+INDEF> |\ ein<>:e <+INDEF> |\ ein<>:e<>:m <+INDEF> |\ ein<>:e<>:m <+INDEF> |\ ein<>:e<>:n <+INDEF> |\ ein<>:e<>:r <+INDEF> |\ ein<>:e<>:r <+INDEF> |\ ein<>:e<>:s <+INDEF> |\ ein<>:e<>:s <+INDEF> |\ einerlei <+INDEF> |\ einige <+INDEF> |\ einige <+INDEF> |\ einige <+INDEF> |\ einige <+INDEF> |\ einige<>:n <+INDEF> |\ einige<>:r <+INDEF> |\ einige<>:r <+INDEF> |\ einige<>:r <+INDEF> |\ einiger <+INDEF> |\ einiger:m <+INDEF> |\ einiger:n <+INDEF> |\ einiger:n <+INDEF> |\ einiger:s <+INDEF> |\ einiges <+INDEF> |\ einiges <+INDEF> |\ einiges <+INDEF> |\ einiges:m <+INDEF> |\ erster<>:e <+INDEF> |\ erster<>:e <+INDEF> |\ erster<>:e <+INDEF> |\ erster<>:e<>:m <+INDEF> |\ erster<>:e<>:m <+INDEF> |\ erster<>:e<>:n <+INDEF> |\ erster<>:e<>:n <+INDEF> |\ erster<>:e<>:n <+INDEF> |\ erster<>:e<>:n <+INDEF> |\ erster<>:e<>:r <+INDEF> |\ erster<>:e<>:r <+INDEF> |\ erster<>:e<>:r <+INDEF> |\ erster<>:e<>:s <+INDEF> |\ erster<>:e<>:s <+INDEF> |\ etlich<>:e <+INDEF> |\ etlich<>:e <+INDEF> |\ etlich<>:e<>:m <+INDEF> |\ etlich<>:e<>:n <+INDEF> |\ etlich<>:e<>:r <+INDEF> |\ etlich<>:e<>:s <+INDEF> |\ etlich<>:e<>:s <+INDEF> |\ etwas <+INDEF> |\ etwas <+INDEF> |\ etwas <+INDEF> |\ etwelch<>:e <+INDEF> |\ etwelch<>:e<>:m <+INDEF> |\ etwelch<>:e<>:m <+INDEF> |\ etwelch<>:e<>:n <+INDEF> |\ etwelch<>:e<>:r <+INDEF> |\ etwelch<>:e<>:s <+INDEF> |\ euresgleichen <+INDEF> |\ euresgleichen <+INDEF> |\ euresgleichen <+INDEF> |\ ihresgleichen <+INDEF> |\ ihresgleichen <+INDEF> |\ ihresgleichen <+INDEF> |\ irgendein <+INDEF> |\ irgendein <+INDEF> |\ irgendein <+INDEF> |\ irgendein<>:e <+INDEF> |\ irgendein<>:e <+INDEF> |\ irgendein<>:e<>:m <+INDEF> |\ irgendein<>:e<>:m <+INDEF> |\ irgendein<>:e<>:n <+INDEF> |\ irgendein<>:e<>:r <+INDEF> |\ irgendein<>:e<>:r <+INDEF> |\ irgendein<>:e<>:r <+INDEF> |\ irgendein<>:e<>:s <+INDEF> |\ irgendein<>:e<>:s <+INDEF> |\ irgendein<>:e<>:s <+INDEF> |\ irgendein<>:e<>:s <+INDEF> |\ irgendetwas <+INDEF> |\ irgendetwas <+INDEF> |\ irgendjemand <+INDEF> |\ irgendjemand <+INDEF> |\ irgendjemand<>:e<>:m <+INDEF> |\ irgendjemand<>:e<>:n <+INDEF> |\ irgendjemand<>:e<>:s <+INDEF> |\ irgendwas <+INDEF> |\ irgendwas <+INDEF> |\ irgendwelch<>:e <+INDEF> |\ irgendwelch<>:e <+INDEF> |\ irgendwelch<>:e <+INDEF> |\ irgendwelch<>:e <+INDEF> |\ irgendwelch<>:e<>:m <+INDEF> |\ irgendwelch<>:e<>:m <+INDEF> |\ irgendwelch<>:e<>:n <+INDEF> |\ irgendwelch<>:e<>:n <+INDEF> |\ irgendwelch<>:e<>:n <+INDEF> |\ irgendwelch<>:e<>:r <+INDEF> |\ irgendwelch<>:e<>:r <+INDEF> |\ irgendwelch<>:e<>:r <+INDEF> |\ irgendwelch<>:e<>:r <+INDEF> |\ irgendwelch<>:e<>:s <+INDEF> |\ irgendwelch<>:e<>:s <+INDEF> |\ irgendwelch<>:e<>:s <+INDEF> |\ irgendwem <+INDEF> |\ irgendwen <+INDEF> |\ irgendwer <+INDEF> |\ irgendwessen <+INDEF> |\ jed<>:e <+INDEF> |\ jed<>:e <+INDEF> |\ jed<>:e<>:m <+INDEF> |\ jed<>:e<>:m <+INDEF> |\ jed<>:e<>:n <+INDEF> |\ jed<>:e<>:n <+INDEF> |\ jed<>:e<>:n <+INDEF> |\ jed<>:e<>:n <+INDEF> |\ jed<>:e<>:n <+INDEF> |\ jed<>:e<>:n <+INDEF> |\ jed<>:e<>:n <+INDEF> |\ jed<>:e<>:r <+INDEF> |\ jed<>:e<>:r <+INDEF> |\ jed<>:e<>:r <+INDEF> |\ jed<>:e<>:s <+INDEF> |\ jed<>:e<>:s <+INDEF> |\ jed<>:e<>:s <+INDEF> |\ jed<>:e<>:s <+INDEF> |\ jedermann <+INDEF> |\ jedermann <+INDEF> |\ jedermann <+INDEF> |\ jedermanns <+INDEF> |\ jedermanns <+INDEF> |\ jedwed<>:e <+INDEF> |\ jedwed<>:e <+INDEF> |\ jedwed<>:e<>:m <+INDEF> |\ jedwed<>:e<>:m <+INDEF> |\ jedwed<>:e<>:n <+INDEF> |\ jedwed<>:e<>:n <+INDEF> |\ jedwed<>:e<>:r <+INDEF> |\ jedwed<>:e<>:r <+INDEF> |\ jedwed<>:e<>:s <+INDEF> |\ jeglich<>:e <+INDEF> |\ jeglich<>:e <+INDEF> |\ jeglich<>:e <+INDEF> |\ jeglich<>:e <+INDEF> |\ jeglich<>:e<>:m <+INDEF> |\ jeglich<>:e<>:m <+INDEF> |\ jeglich<>:e<>:n <+INDEF> |\ jeglich<>:e<>:n <+INDEF> |\ jeglich<>:e<>:n <+INDEF> |\ jeglich<>:e<>:n <+INDEF> |\ jeglich<>:e<>:n <+INDEF> |\ jeglich<>:e<>:n <+INDEF> |\ jeglich<>:e<>:n <+INDEF> |\ jeglich<>:e<>:n <+INDEF> |\ jeglich<>:e<>:n <+INDEF> |\ jeglich<>:e<>:r <+INDEF> |\ jeglich<>:e<>:r <+INDEF> |\ jeglich<>:e<>:s <+INDEF> |\ jeglich<>:e<>:s <+INDEF> |\ jemand <+INDEF> |\ jemand <+INDEF> |\ jemand<>:e<>:m <+INDEF> |\ jemand<>:e<>:n <+INDEF> |\ jemand<>:e<>:s <+INDEF> |\ kein <+INDEF> |\ kein <+INDEF> |\ kein <+INDEF> |\ kein<>:e <+INDEF> |\ kein<>:e <+INDEF> |\ kein<>:e <+INDEF> |\ kein<>:e <+INDEF> |\ kein<>:e<>:m <+INDEF> |\ kein<>:e<>:m <+INDEF> |\ kein<>:e<>:n <+INDEF> |\ kein<>:e<>:r <+INDEF> |\ kein<>:e<>:r <+INDEF> |\ kein<>:e<>:s <+INDEF> |\ kein<>:e<>:s <+INDEF> |\ kein<>:s <+INDEF> |\ kein<>:s <+INDEF> |\ keinerlei <+INDEF> |\ lauter <+INDEF> |\ letzter<>:e <+INDEF> |\ letzter<>:e <+INDEF> |\ letzter<>:e <+INDEF> |\ letzter<>:e<>:m <+INDEF> |\ letzter<>:e<>:m <+INDEF> |\ letzter<>:e<>:n <+INDEF> |\ letzter<>:e<>:n <+INDEF> |\ letzter<>:e<>:n <+INDEF> |\ letzter<>:e<>:r <+INDEF> |\ letzter<>:e<>:r <+INDEF> |\ letzter<>:e<>:r <+INDEF> |\ letzter<>:e<>:s <+INDEF> |\ letzter<>:e<>:s <+INDEF> |\ man <+INDEF> |\ manch <+INDEF> |\ manch<>:e <+INDEF> |\ manch<>:e <+INDEF> |\ manch<>:e <+INDEF> |\ manch<>:e <+INDEF> |\ manch<>:e<>:m <+INDEF> |\ manch<>:e<>:m <+INDEF> |\ manch<>:e<>:n <+INDEF> |\ manch<>:e<>:n <+INDEF> |\ manch<>:e<>:n <+INDEF> |\ manch<>:e<>:n <+INDEF> |\ manch<>:e<>:r <+INDEF> |\ manch<>:e<>:r <+INDEF> |\ manch<>:e<>:r <+INDEF> |\ manch<>:e<>:r <+INDEF> |\ manch<>:e<>:s <+INDEF> |\ manch<>:e<>:s <+INDEF> |\ manch<>:e<>:s <+INDEF> |\ manch<>:e<>:s <+INDEF> |\ mancherlei <+INDEF> |\ mehr <+INDEF> |\ mehrere <+INDEF> |\ mehrere <+INDEF> |\ mehrere<>:n <+INDEF> |\ mehrere<>:r <+INDEF> |\ mehreres <+INDEF> |\ mehreres <+INDEF> |\ mehrerlei <+INDEF> |\ meinesgleichen <+INDEF> |\ meinesgleichen <+INDEF> |\ meinesgleichen <+INDEF> |\ meist<>:e <+INDEF> |\ meist<>:e <+INDEF> |\ meist<>:e <+INDEF> |\ meist<>:e <+INDEF> |\ meist<>:e <+INDEF> |\ meist<>:e<>:n <+INDEF> |\ meist<>:e<>:n <+INDEF> |\ meist<>:e<>:n <+INDEF> |\ meist<>:e<>:n <+INDEF> |\ meist<>:e<>:n <+INDEF> |\ meist<>:e<>:n <+INDEF> |\ meist<>:e<>:n <+INDEF> |\ meist<>:e<>:n <+INDEF> |\ meist<>:e<>:n <+INDEF> |\ meist<>:e<>:n <+INDEF> |\ meist<>:e<>:n <+INDEF> |\ nichts <+INDEF> |\ nichts <+INDEF> |\ nichts <+INDEF> |\ niemand <+INDEF> |\ niemand <+INDEF> |\ niemand<>:e<>:m <+INDEF> |\ niemand<>:e<>:n <+INDEF> |\ niemand<>:e<>:s <+INDEF> |\ nix <+INDEF> |\ nix <+INDEF> |\ nix <+INDEF> |\ paar <+INDEF> |\ reichlich <+INDEF> |\ seinesgleichen <+INDEF> |\ seinesgleichen <+INDEF> |\ seinesgleichen <+INDEF> |\ solch <+INDEF> |\ solch<>:e <+INDEF> |\ solch<>:e <+INDEF> |\ solch<>:e <+INDEF> |\ solch<>:e <+INDEF> |\ solch<>:e<>:m <+INDEF> |\ solch<>:e<>:m <+INDEF> |\ solch<>:e<>:n <+INDEF> |\ solch<>:e<>:n <+INDEF> |\ solch<>:e<>:n <+INDEF> |\ solch<>:e<>:r <+INDEF> |\ solch<>:e<>:r <+INDEF> |\ solch<>:e<>:r <+INDEF> |\ solch<>:e<>:r <+INDEF> |\ solch<>:e<>:s <+INDEF> |\ solch<>:e<>:s <+INDEF> |\ solch<>:e<>:s <+INDEF> |\ solch<>:e<>:s <+INDEF> |\ solcherlei <+INDEF> |\ sonstjemand <+INDEF> |\ sonstjemand <+INDEF> |\ sonstjemand<>:e<>:m <+INDEF> |\ sonstjemand<>:e<>:n <+INDEF> |\ sonstjemand<>:e<>:s <+INDEF> |\ sonstwas <+INDEF> |\ sonstwas <+INDEF> |\ sonstwas <+INDEF> |\ sonstwem <+INDEF> |\ sonstwen <+INDEF> |\ sonstwer <+INDEF> |\ soviel <+INDEF> |\ smtlich<>:e <+INDEF> |\ smtlich<>:e <+INDEF> |\ smtlich<>:e<>:m <+INDEF> |\ smtlich<>:e<>:n <+INDEF> |\ smtlich<>:e<>:n <+INDEF> |\ smtlich<>:e<>:n <+INDEF> |\ smtlich<>:e<>:n <+INDEF> |\ smtlich<>:e<>:r <+INDEF> |\ smtlich<>:e<>:s <+INDEF> |\ smtlich<>:e<>:s <+INDEF> |\ unsereinem <+INDEF> |\ unsereinen <+INDEF> |\ unsereiner <+INDEF> |\ unsereines <+INDEF> |\ unsereins <+INDEF> |\ unsereins <+INDEF> |\ unseresgleichen <+INDEF> |\ unseresgleichen <+INDEF> |\ unseresgleichen <+INDEF> |\ unsresgleichen <+INDEF> |\ unsresgleichen <+INDEF> |\ unsresgleichen <+INDEF> |\ viel <+INDEF> |\ viel<>:e <+INDEF> |\ viel<>:e <+INDEF> |\ viel<>:e <+INDEF> |\ viel<>:e <+INDEF> |\ viel<>:e <+INDEF> |\ viel<>:e <+INDEF> |\ viel<>:e <+INDEF> |\ viel<>:e<>:m <+INDEF> |\ viel<>:e<>:n <+INDEF> |\ viel<>:e<>:n <+INDEF> |\ viel<>:e<>:n <+INDEF> |\ viel<>:e<>:n <+INDEF> |\ viel<>:e<>:n <+INDEF> |\ viel<>:e<>:n <+INDEF> |\ viel<>:e<>:n <+INDEF> |\ viel<>:e<>:n <+INDEF> |\ viel<>:e<>:n <+INDEF> |\ viel<>:e<>:n <+INDEF> |\ viel<>:e<>:n <+INDEF> |\ viel<>:e<>:r <+INDEF> |\ viel<>:e<>:s <+INDEF> |\ viel<>:e<>:s <+INDEF> |\ vielerlei <+INDEF> |\ was <+INDEF> |\ was <+INDEF> |\ was <+INDEF> |\ welch <+INDEF> |\ welch<>:e <+INDEF> |\ welch<>:e <+INDEF> |\ welch<>:e <+INDEF> |\ welch<>:e <+INDEF> |\ welch<>:e<>:m <+INDEF> |\ welch<>:e<>:m <+INDEF> |\ welch<>:e<>:n <+INDEF> |\ welch<>:e<>:n <+INDEF> |\ welch<>:e<>:n <+INDEF> |\ welch<>:e<>:r <+INDEF> |\ welch<>:e<>:r <+INDEF> |\ welch<>:e<>:r <+INDEF> |\ welch<>:e<>:r <+INDEF> |\ welch<>:e<>:s <+INDEF> |\ welch<>:e<>:s <+INDEF> |\ welch<>:e<>:s <+INDEF> |\ wenig <+INDEF> |\ wenig<>:e <+INDEF> |\ wenig<>:e <+INDEF> |\ wenig<>:e <+INDEF> |\ wenig<>:e <+INDEF> |\ wenig<>:e <+INDEF> |\ wenig<>:e <+INDEF> |\ wenig<>:e <+INDEF> |\ wenig<>:e<>:m <+INDEF> |\ wenig<>:e<>:n <+INDEF> |\ wenig<>:e<>:n <+INDEF> |\ wenig<>:e<>:n <+INDEF> |\ wenig<>:e<>:n <+INDEF> |\ wenig<>:e<>:n <+INDEF> |\ wenig<>:e<>:n <+INDEF> |\ wenig<>:e<>:n <+INDEF> |\ wenig<>:e<>:n <+INDEF> |\ wenig<>:e<>:n <+INDEF> |\ wenig<>:e<>:r <+INDEF> |\ wenig<>:e<>:s <+INDEF> |\ wenig<>:e<>:s <+INDEF> |\ weniger <+INDEF> |\ wenigst<>:e <+INDEF> |\ wenigst<>:e <+INDEF> |\ wenigst<>:e <+INDEF> |\ wenigst<>:e <+INDEF> |\ wenigst<>:e <+INDEF> |\ wenigst<>:e<>:n <+INDEF> |\ wenigst<>:e<>:n <+INDEF> |\ wenigst<>:e<>:n <+INDEF> |\ wenigst<>:e<>:n <+INDEF> |\ wenigst<>:e<>:n <+INDEF> |\ wenigst<>:e<>:n <+INDEF> |\ wenigst<>:e<>:n <+INDEF> |\ wenigst<>:e<>:n <+INDEF> |\ wenigst<>:e<>:n <+INDEF> |\ wenigst<>:e<>:n <+INDEF> |\ wenigst<>:e<>:n <+INDEF> |\ zuviel <+INDEF> |\ zuviel <+INDEF> |\ zuviel <+INDEF> |\ zuviel <+INDEF> |\ zuviel<>:e <+INDEF> |\ zuviel<>:e <+INDEF> |\ zuviel<>:e<>:m <+INDEF> |\ zuviel<>:e<>:n <+INDEF> |\ zuviel<>:e<>:r <+INDEF> |\ zuviel<>:e<>:s <+INDEF> |\ zuviel<>:e<>:s <+INDEF> |\ zuwenig <+INDEF> |\ zuwenig <+INDEF> |\ zuwenig <+INDEF> |\ zuwenig <+INDEF> |\ zuwenig <+INDEF> |\ zuwenig<>:e <+INDEF> |\ zuwenig<>:e <+INDEF> |\ zuwenig<>:e<>:m <+INDEF> |\ zuwenig<>:e<>:n <+INDEF> |\ zuwenig<>:e<>:r <+INDEF> |\ zuwenig<>:e<>:s <+INDEF> |\ zuwenig<>:e<>:s <+INDEF> |\ zweierlei <+INDEF> |\ % Wh Pronouns was <+WPRO> |\ was <+WPRO> |\ welche <+WPRO> |\ welche <+WPRO> |\ welche <+WPRO> |\ welche <+WPRO> |\ welche<>:n <+WPRO> |\ welche<>:r <+WPRO> |\ welche<>:r <+WPRO> |\ welche<>:r <+WPRO> |\ welcher <+WPRO> |\ welcher:m <+WPRO> |\ welcher:n <+WPRO> |\ welcher:n <+WPRO> |\ welcher:s <+WPRO> |\ welches <+WPRO> |\ welches <+WPRO> |\ welches <+WPRO> |\ welches:m <+WPRO> |\ wer <+WPRO> |\ wer:m <+WPRO> |\ wer:n <+WPRO> |\ wer:s<>:s<>:e<>:n <+WPRO> |\ % Possessive Pronouns dein <+POSS> |\ dein <+POSS> |\ dein <+POSS> |\ dein<>:e <+POSS> |\ dein<>:e <+POSS> |\ dein<>:e <+POSS> |\ dein<>:e <+POSS> |\ dein<>:e<>:m <+POSS> |\ dein<>:e<>:m <+POSS> |\ dein<>:e<>:n <+POSS> |\ dein<>:e<>:n <+POSS> |\ dein<>:e<>:r <+POSS> |\ dein<>:e<>:r <+POSS> |\ dein<>:e<>:r <+POSS> |\ dein<>:e<>:r <+POSS> |\ dein<>:e<>:s <+POSS> |\ dein<>:e<>:s <+POSS> |\ dein<>:e<>:s <+POSS> |\ dein<>:e<>:s <+POSS> |\ dein<>:s <+POSS> |\ dein<>:s <+POSS> |\ eue:[<>e]r<>:e <+POSS> |\ eue:[<>e]r<>:e <+POSS> |\ eue:[<>e]r<>:e <+POSS> |\ eue:[<>e]r<>:e <+POSS> |\ eue:[<>e]r<>:e<>:m <+POSS> |\ eue:[<>e]r<>:e<>:m <+POSS> |\ eue:[<>e]r<>:e<>:n <+POSS> |\ eue:[<>e]r<>:e<>:n <+POSS> |\ eue:[<>e]r<>:e<>:r <+POSS> |\ eue:[<>e]r<>:e<>:r <+POSS> |\ eue:[<>e]r<>:e<>:r <+POSS> |\ eue:[<>e]r<>:e<>:r <+POSS> |\ eue:[<>e]r<>:e<>:s <+POSS> |\ eue:[<>e]r<>:e<>:s <+POSS> |\ eue:[<>e]r<>:e<>:s <+POSS> |\ eue:[<>e]r<>:e<>:s <+POSS> |\ eue:[<>e]r<>:s <+POSS> |\ euer <+POSS> |\ euer <+POSS> |\ euer <+POSS> |\ euer<>:s <+POSS> |\ ihr <+POSS> |\ ihr <+POSS> |\ ihr <+POSS> |\ ihr<>:e <+POSS> |\ ihr<>:e <+POSS> |\ ihr<>:e <+POSS> |\ ihr<>:e <+POSS> |\ ihr<>:e<>:m <+POSS> |\ ihr<>:e<>:m <+POSS> |\ ihr<>:e<>:n <+POSS> |\ ihr<>:e<>:n <+POSS> |\ ihr<>:e<>:r <+POSS> |\ ihr<>:e<>:r <+POSS> |\ ihr<>:e<>:r <+POSS> |\ ihr<>:e<>:r <+POSS> |\ ihr<>:e<>:s <+POSS> |\ ihr<>:e<>:s <+POSS> |\ ihr<>:e<>:s <+POSS> |\ ihr<>:e<>:s <+POSS> |\ ihr<>:s <+POSS> |\ ihr<>:s <+POSS> |\ ihrig <+POSS> |\ ihrig <+POSS> |\ ihrig <+POSS> |\ ihrig<>:e <+POSS> |\ ihrig<>:e <+POSS> |\ ihrig<>:e <+POSS> |\ ihrig<>:e <+POSS> |\ ihrig<>:e<>:m <+POSS> |\ ihrig<>:e<>:m <+POSS> |\ ihrig<>:e<>:n <+POSS> |\ ihrig<>:e<>:n <+POSS> |\ ihrig<>:e<>:r <+POSS> |\ ihrig<>:e<>:r <+POSS> |\ ihrig<>:e<>:r <+POSS> |\ ihrig<>:e<>:r <+POSS> |\ ihrig<>:e<>:s <+POSS> |\ ihrig<>:e<>:s <+POSS> |\ ihrig<>:e<>:s <+POSS> |\ ihrig<>:e<>:s <+POSS> |\ ihrig<>:s <+POSS> |\ ihrig<>:s <+POSS> |\ mein <+POSS> |\ mein <+POSS> |\ mein <+POSS> |\ mein<>:e <+POSS> |\ mein<>:e <+POSS> |\ mein<>:e <+POSS> |\ mein<>:e <+POSS> |\ mein<>:e<>:m <+POSS> |\ mein<>:e<>:m <+POSS> |\ mein<>:e<>:n <+POSS> |\ mein<>:e<>:n <+POSS> |\ mein<>:e<>:r <+POSS> |\ mein<>:e<>:r <+POSS> |\ mein<>:e<>:r <+POSS> |\ mein<>:e<>:r <+POSS> |\ mein<>:e<>:s <+POSS> |\ mein<>:e<>:s <+POSS> |\ mein<>:e<>:s <+POSS> |\ mein<>:e<>:s <+POSS> |\ mein<>:s <+POSS> |\ mein<>:s <+POSS> |\ sein <+POSS> |\ sein <+POSS> |\ sein <+POSS> |\ sein<>:e <+POSS> |\ sein<>:e <+POSS> |\ sein<>:e <+POSS> |\ sein<>:e <+POSS> |\ sein<>:e<>:m <+POSS> |\ sein<>:e<>:m <+POSS> |\ sein<>:e<>:n <+POSS> |\ sein<>:e<>:n <+POSS> |\ sein<>:e<>:r <+POSS> |\ sein<>:e<>:r <+POSS> |\ sein<>:e<>:r <+POSS> |\ sein<>:e<>:r <+POSS> |\ sein<>:e<>:s <+POSS> |\ sein<>:e<>:s <+POSS> |\ sein<>:e<>:s <+POSS> |\ sein<>:e<>:s <+POSS> |\ sein<>:s <+POSS> |\ sein<>:s <+POSS> |\ unser <+POSS> |\ unser <+POSS> |\ unser <+POSS> |\ unser<>:e <+POSS> |\ unser<>:e <+POSS> |\ unser<>:e <+POSS> |\ unser<>:e <+POSS> |\ unser<>:e<>:m <+POSS> |\ unser<>:e<>:m <+POSS> |\ unser<>:e<>:n <+POSS> |\ unser<>:e<>:n <+POSS> |\ unser<>:e<>:r <+POSS> |\ unser<>:e<>:r <+POSS> |\ unser<>:e<>:r <+POSS> |\ unser<>:e<>:r <+POSS> |\ unser<>:e<>:s <+POSS> |\ unser<>:e<>:s <+POSS> |\ unser<>:e<>:s <+POSS> |\ unser<>:e<>:s <+POSS> |\ unser<>:s <+POSS> |\ unser<>:s <+POSS> |\ unsrig <+POSS> |\ unsrig <+POSS> |\ unsrig <+POSS> |\ unsrig<>:e <+POSS> |\ unsrig<>:e <+POSS> |\ unsrig<>:e <+POSS> |\ unsrig<>:e <+POSS> |\ unsrig<>:e<>:m <+POSS> |\ unsrig<>:e<>:m <+POSS> |\ unsrig<>:e<>:n <+POSS> |\ unsrig<>:e<>:n <+POSS> |\ unsrig<>:e<>:r <+POSS> |\ unsrig<>:e<>:r <+POSS> |\ unsrig<>:e<>:r <+POSS> |\ unsrig<>:e<>:r <+POSS> |\ unsrig<>:e<>:s <+POSS> |\ unsrig<>:e<>:s <+POSS> |\ unsrig<>:e<>:s <+POSS> |\ unsrig<>:e<>:s <+POSS> |\ unsrig<>:s <+POSS> |\ unsrig<>:s <+POSS> % Upper-Case Pronouns $Pro_Up$ = \ % Personal Pronouns Du <+PPRO><2> |\ Du:e<>:i<>:n<>:e<>:r <+PPRO><2> |\ Du:i<>:c<>:h <+PPRO><2> |\ Du:i<>:r <+PPRO><2> |\ S:Ii:h<>:ne<>:n <+PPRO><3> |\ S:Ii:h<>:re<>:r <+PPRO><3> |\ S:sie:c<>:h <+PPRO><3> |\ Sie <+PPRO><3> |\ Sie <+PPRO><3> |\ % Possessive Pronouns Dein <+POSS> |\ Dein <+POSS> |\ Dein <+POSS> |\ Dein<>:e <+POSS> |\ Dein<>:e <+POSS> |\ Dein<>:e <+POSS> |\ Dein<>:e <+POSS> |\ Dein<>:e<>:m <+POSS> |\ Dein<>:e<>:m <+POSS> |\ Dein<>:e<>:n <+POSS> |\ Dein<>:e<>:n <+POSS> |\ Dein<>:e<>:r <+POSS> |\ Dein<>:e<>:r <+POSS> |\ Dein<>:e<>:r <+POSS> |\ Dein<>:e<>:r <+POSS> |\ Dein<>:e<>:s <+POSS> |\ Dein<>:e<>:s <+POSS> |\ Dein<>:e<>:s <+POSS> |\ Dein<>:e<>:s <+POSS> |\ Dein<>:s <+POSS> |\ Dein<>:s <+POSS> |\ Ihr <+POSS> |\ Ihr <+POSS> |\ Ihr <+POSS> |\ Ihr<>:e <+POSS> |\ Ihr<>:e <+POSS> |\ Ihr<>:e <+POSS> |\ Ihr<>:e <+POSS> |\ Ihr<>:e<>:m <+POSS> |\ Ihr<>:e<>:m <+POSS> |\ Ihr<>:e<>:n <+POSS> |\ Ihr<>:e<>:n <+POSS> |\ Ihr<>:e<>:r <+POSS> |\ Ihr<>:e<>:r <+POSS> |\ Ihr<>:e<>:r <+POSS> |\ Ihr<>:e<>:r <+POSS> |\ Ihr<>:e<>:s <+POSS> |\ Ihr<>:e<>:s <+POSS> |\ Ihr<>:e<>:s <+POSS> |\ Ihr<>:e<>:s <+POSS> |\ Ihr<>:s <+POSS> |\ Ihr<>:s <+POSS> |\ Ihrig <+POSS> |\ Ihrig <+POSS> |\ Ihrig <+POSS> |\ Ihrig<>:e <+POSS> |\ Ihrig<>:e <+POSS> |\ Ihrig<>:e <+POSS> |\ Ihrig<>:e <+POSS> |\ Ihrig<>:e<>:m <+POSS> |\ Ihrig<>:e<>:m <+POSS> |\ Ihrig<>:e<>:n <+POSS> |\ Ihrig<>:e<>:n <+POSS> |\ Ihrig<>:e<>:r <+POSS> |\ Ihrig<>:e<>:r <+POSS> |\ Ihrig<>:e<>:r <+POSS> |\ Ihrig<>:e<>:r <+POSS> |\ Ihrig<>:e<>:s <+POSS> |\ Ihrig<>:e<>:s <+POSS> |\ Ihrig<>:e<>:s <+POSS> |\ Ihrig<>:e<>:s <+POSS> |\ Ihrig<>:s <+POSS> |\ Ihrig<>:s <+POSS> |\ Unsrig <+POSS> |\ Unsrig <+POSS> |\ Unsrig <+POSS> |\ Unsrig<>:e <+POSS> |\ Unsrig<>:e <+POSS> |\ Unsrig<>:e <+POSS> |\ Unsrig<>:e <+POSS> |\ Unsrig<>:e<>:m <+POSS> |\ Unsrig<>:e<>:m <+POSS> |\ Unsrig<>:e<>:n <+POSS> |\ Unsrig<>:e<>:n <+POSS> |\ Unsrig<>:e<>:r <+POSS> |\ Unsrig<>:e<>:r <+POSS> |\ Unsrig<>:e<>:r <+POSS> |\ Unsrig<>:e<>:r <+POSS> |\ Unsrig<>:e<>:s <+POSS> |\ Unsrig<>:e<>:s <+POSS> |\ Unsrig<>:e<>:s <+POSS> |\ Unsrig<>:e<>:s <+POSS> |\ Unsrig<>:s <+POSS> |\ Unsrig<>:s <+POSS> %************************************************************************** % Resulting transducers %************************************************************************** $F$ = [<+ART><+DEM><+INDEF><+POSS><+PPRO><+REL><+WPRO> \ <1><2><3> \ \ \ \ \ \ \ ]:<> $Pro_Stems$ = ($Pro_Low$ <>: | $Pro_Up$ <>:) \ || <>: [A-Za-z]+ $F$* [] sfst-1.7.0/data/SMOR/README000066400000000000000000000021171470213725200150530ustar00rootroot00000000000000This is SMOR, a German computational morphology covering derivation compounding, and inflection. This distribution of SMOR comes with a very small sample lexicon. The lexicon entries were selected such that the lexicon contains many different types of entries. See the paper for more information on the features used in the lexicon. Compilation =========== > make smor.a Analysis ======== > fst-mor smor.a reading automaton... finished. analyse> Kakteen Kaktus<+NN> Kaktus<+NN> Kaktus<+NN> Kaktus<+NN> analyse> Kardinal Kardinal<+NN> Kardinal<+NN> Kardinal<+NN> analyse> Kardinlen Kardinal<+NN> analyse> Kardinalsmemoiren KardinalMemoiren<+NN> KardinalMemoiren<+NN> KardinalMemoiren<+NN> KardinalMemoiren<+NN> analyse> generate> Kardinal<+NN> Kardinal Kardinale generate> q Remark: Empty lines switch fst-mor between analysis and generation mode. "q" terminates the program. sfst-1.7.0/data/SMOR/defaults.fst000066400000000000000000000100401470213725200165120ustar00rootroot00000000000000%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % File: defaults.fst % Author: Helmut Schmid; IMS, University of Stuttgart % Date: July 2003 % Content: generation of default base, derivation and composition stems %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $TMP$ = $VPrefStems$ $BaseStems$ || $NoDef2NULL$ || $PREFFILTER$ $TMP$ = ($BaseStems$ | $TMP$) || $KOMPOSFILTER$ $ANY$ = [\!-\~- <~n>
    \ ]* $TMP$ = $TMP$ $FLEXION$ $TMP$ = $TMP$ || $ANY$ $FLEXFILTER$ $TMP$ = $TMP$ || $INFIXFILTER$ $TMP$ = $TMP$ || $UPLOW$ $TMP$ = <>: $TMP$ <>: || $PHON$ % default noun composition stems $DefKomposNN$ = \ ([\!-\~-]+ \ ({<>}:{<+NN>[]} |\ {<>}:{<+NN>[] } |\ % {<>}:{<^ADJ><+NN>} |\ {<>}:{<+NN>[] } <>:?) || $TMP$) \ $T$ = [Aa]rbeit|[hk]eit|[Ff]ahrt|[Gg]ang|kunft|[Nn]acht|ion|[Pp]flicht|\ schaft|[Ss]chrift|[Ss]icht|[Ss]ucht|tt|ung $T$ = [\!-\~-]* $T$ {<>}:{<+NN>[]} $T$ = $T$ || $TMP$ $DefKomposNN$ = $DefKomposNN$ |\ ($T$ || [\!-\~-]* <>:s ) % default noun derivation stems % delete final e and en in derivation stems unless a vowel precedes $c$ = [bcdfghj-np-tvwxz] $C$ = [BCDFGHJ-NP-TVWXZbcdfghj-np-tvwxz] ALPHABET = [\!-\~-] [en]:<> $Del-e$ = ($C$ e <=> <> ((n:.)? )) &\ (e:. n <=> <> ) % allow Umlautung in verbal and nominal derivation stems ALPHABET = [\!-\~-] [Aa]:[] a:<> [] $R1$ = ( A => (u $c$* (e[rl])? [])) &\ ($C$ a => ([au]:. $c$* (e[rl])? [])) &\ (a: a <=> <> ($c$* (e[rl])? [])) ALPHABET = [\!-\~-] [AOUaou]:[] [] $R2$ = ( [AOU] => [] ($c$* (e[rl])? [])) &\ ($C$ [aou] => [] ($c$* (e[rl])? [])) $Uml$ = $R1$ || $R2$ $DefDerivNN$ = (\ ([\!-\~-]* \ <>:<+NN> <>:[] <>: <>: || $TMP$) \ ) || $Del-e$ || $Uml$ % default proper name derivation stems $DefDerivNE$ = \ ([\!-\~-]* <>:<+NE> <>:[] <>: <>: || $TMP$) \ % default proper name composition stems $DefKomposNE$ = $DefDerivNE$ % default adjective base stems $DefBaseADJ$ = \ (([\!-\~-]* :<+V>? ||\ $TMP$ || $NoDef2NULL$ t) <>::<><>:<>:<>:) |\ (([\!-\~-]* :<+V>?[] ||\ $TMP$ || $NoDef2NULL$ (en|nd)) <>::<><>:<>:<>:) % default adjective composition and derivation stems $DefKomposADJ$ = (\ ([\!-\~-]* <>:<+ADJ> <>:[] <>: |\ [\!-\~-]* :<+V>?[]) ||\ $TMP$ || $NoDef2NULL$) $DefDerivADJ$ = $DefKomposADJ$ % default verb composition stems $DefKomposV$ = ([\!-\~-]* {<>}:{<+V>} || $TMP$) ||\ [\!-\~-]* ({en}:{<>} | e[rl]n:<>) % default verb derivation stems $DefDerivV$ = ([\!-\~-]* {<>}:{<+V>} || $TMP$) ||\ :<>? [\!-\~-]* ({en}:{<>} | e: [rl] n:<>) || $Uml$ ALPHABET = [\!-\~-] n: $R$ = ([bdgptkfs] | ch) n <=> () ALPHABET = [\!-\~-] $R$ = $R$ || (. | <>::n)* $DefDerivV$ = $DefDerivV$ || $R$ $BDKStems$ = ($BDKStems$ || $NoDef2NULL$) | <>: $DefBaseADJ$ |\ (<>: ($DefDerivADJ$ | $DefDerivNN$ | $DefDerivNE$ | $DefDerivV$)\ <>: |\ <>: ($DefKomposADJ$ | $DefKomposNE$ |\ $DefKomposNN$ | $DefKomposV$) <>:)\ <>: % default stems for generating "Gejammer", "Gejammere", "Gejammre" $T$ = $BDKStems$ || (\ :<>? : [\!-\~-]+ \ (<>:e: []:<>|\ ({l}:{le}|{r}:{re}|<>:e)? \ ::<>)) $BDKStems$ = $BDKStems$ | $T$ sfst-1.7.0/data/SMOR/deko.fst000066400000000000000000000337731470213725200156470ustar00rootroot00000000000000%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % File: deko.fst % Author: Helmut Schmid; IMS, University of Stuttgart % Date: July 2003 % Content: enforcement of derivation and composition constraints %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % expression matching either a simplex word form % or the features of the last morphem $C1$ = [\!-\~-<~n>
      \ ] $B$ = [] $C2$ = [\!-\~-<~n>
        ] $C3$ = [\!-\~-<~n>
          \ \ \ \ \ ] $FLEX$ = [\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ] $TAIL$ = ($C1$* $B$ $C2$*)? $C3$* $FLEX$? %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Herkunft Filter %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ALPHABET = [\!-\~-<~n>
            ] \ % stem types \ % category features \ % stem type features \ % other features $ANY$ = .* $FILTER$ = (\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<>) $HERKUNFT$ = ($ANY$ $FILTER$)* $TAIL$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % check of stem type feature %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ALPHABET = [\!-\~-<~n>] \ % stem types \ % category features \ % other features $ANY$ = .* $FILTER$ = (\ :<> :<> |\ :<> :<>) $STEMTYPE$ = ($ANY$ $FILTER$)* $TAIL$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % check of category feature %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ALPHABET = [\!-\~-<~n>] \ % stem types \ % other features $ANY$ = .* $FILTER$ = (\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<>) $CATCHECK$ = ($ANY$ $FILTER$)* $TAIL$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % phonological rules %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ALPHABET = [\!-\~-<~n>] \ % stem types \ % other features $Cons$ = [bcdfghjklmnpqrstvwxyz] $UMLAUTUNG$ = .* \ ($Cons$ ([aou]:[] | a: (a:<> | u)) $Cons$* (e[rl])?
              :<>)?\ $TAIL$ ALPHABET = [\!-\~-<~n>] \ % stem types \ % other features \ [i]:<> $SUFFPHON$ = (((i | $Cons$y) ) i <=> <>) $TAIL$ $SUFFFILTER$ = $HERKUNFT$ || $STEMTYPE$ || $CATCHECK$ || $UMLAUTUNG$ $SUFFFILTER$ = $SUFFFILTER$ || $SUFFPHON$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Prefix Filter %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ALPHABET = [\!-\~-<~n>]\ % stem types \ % other features $ANY$ = .* $bdk$ = [] $klassisch$ = [] $NS$ = [\ ] $FILTER$ = \ % prefixes like "ver" delete the marker (:<> [\!-\~-<~n>]* \ {}:{<>} ? :<> $ANY$ $bdk$) |\ ( [\!-\~-<~n>]* (\ {}:{<>} $ANY$ $bdk$ |\ {}:{<>} $ANY$ $bdk$ |\ {}:{<>} $ANY$ $bdk$ |\ {}:{<>} $ANY$ $bdk$ |\ {}:{<>} $ANY$ $bdk$ |\ {}:{<>} $ANY$ $bdk$ |\ {}:{<>} $ANY$ $bdk$ |\ {}:{<>} $ANY$ $bdk$ |\ {}:{<>} $ANY$ $bdk$ $NS$ |\ {}:{<>}$ANY$ $bdk$ $klassisch$ |\ {}:{<>} $ANY$ $bdk$ $klassisch$ |\ {}:{<>} $ANY$ $bdk$ $klassisch$)) $PREFFILTER$ = $FILTER$ $FLEX$? %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Compound Filter %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % deletes base stem and compound stem features ALPHABET = [\!-\~-<~n>] \ % stem types \ % category features []:<> \ % Herkunft features []:<> \ % other features :<> $ANY2$ = .* $ANY$ = (. | :<>)* $hk$ = []:<> $KOMPOSFILTER$ = \ (:<> | | )? \ ($ANY2$ []:<> |\ <>: $ANY$ :<> $ANY2$ :<> |\ $ANY$ []:<>) \ :<> $hk$ $FLEX$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % insertion of the prefix "ge" controlled by the lexical marker %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $C1$ = [\!-\~- <~n>
                \ <^imp><^zz><^UC><^Ax><^pl><^Gen><^Del>] $C2$ = $C1$|[] % replace with "ge" if followed by perfect participle marker % or ge-nominalisation otherwise delete % in complex lexicon entries as for "haushalten" is not followed % by $GE$ = $C2$* |\ $C2$* :<> ? {<>}:{ge} $C1$* <^pp>:<> $C1$* |\ $C2$* :<> ? {<>}:{ge} $C1$* :<> $C1$* |\ $C2$* :<> ? $C1$* |\ $C2$* $C1$* <^pp>:<> $C1$* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % insertion of infinitival "zu" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $C1$ = [\!-\~- <~n>
                  \ <^imp><^UC><^Ax><^pl><^Gen><^Del>] $C2$ = $C1$|[] % insert "zu" after verbal prefixes if followed by infinitive marker $ZU$ = $C2$* |\ % $C1$* <^zz>:<> $C1$* |\ $C2$* $C1$* {<>}:{zu} $C1$* <^zz>:<> $C1$* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Imperatives have no separable prefixes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $C1$ = [\!-\~- <~n>
                    \ <^UC><^Ax><^pl><^Gen><^Del>] $C2$ = $C1$ | []: \ | []: $IMP$ = $C2$* | : $C1$* <^imp>:<> $C1$* $INFIXFILTER$ = $GE$ || $ZU$ || $IMP$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Upper/Lower Case Markers %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $C$ = [\!-\~- <~n>
                      <^imp><^zz><^Ax><^pl><^Gen><^Del>] $S$ = $C$ ($C$ | )* $S2$ = (:<>[A-Z-] | :<>?[a-z-]) $S$ $UPLOW$ = <^UC>:<> []? <>:<^UC> $S2$ :<> |\ ? (:<> $S$ :<> |\ [<>]:<^UC> $S$ :<> |\ [<>]: $S$ :<>) sfst-1.7.0/data/SMOR/flexion.fst000066400000000000000000001226561470213725200163700ustar00rootroot00000000000000%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % inflectional endings -- % converted to S-FST from flexion.lex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $Fix#$ = <>: $Adj#$ = <>: $Adj#Up$ = <>: $N#$ = <>: $N#Low/Up$ = <>: $V#$ = <>: $Closed#$ = <>: $Closed#Up$ = <>: $Abk_ADJ$ = {<^ABK><+ADJ>}:{<>} $Adj#$ $Abk_ADV$ = {<^ABK><+ADV>}:{<>} $Closed#$ $Abk_ART$ = {<^ABK><+ART>}:{<>} $Closed#$ $Abk_DPRO$ = {<^ABK><+DEMPRO>}:{<>} $Closed#$ $Abk_KONJ$ = {<^ABK><+KONJ>}:{<>} $Closed#$ $Abk_NE$ = {<^ABK><+NE>}:{<>} $N#$ $Abk_NE-Low$ = {<^ABK><+NE>}:{<>} $N#Low/Up$ $Abk_NN$ = {<^ABK><+NN>}:{<>} $N#$ $Abk_NN-Low$ = {<^ABK><+NN>}:{<>} $N#Low/Up$ $Abk_PREP$ = {<^ABK><+PREP>}:{<>} $Closed#$ $Abk_VPPAST$ = {<^ABK><^VPAST><+ADJ>}:{<>} $Adj#$ $Abk_VPPRES$ = {<^ABK><^VPRES><+ADJ>}:{<>} $Adj#$ $Adj0$ = {<+ADJ>}:{<>} $Adj#$ $Adj0-Up$ = {<+ADJ>}:{<>} $Adj#Up$ $AdjFlexSuff$ = {}:{er} $Adj#$ |\ {}:{e} $Adj#$ |\ {}:{en} $Adj#$ |\ {}:{em} $Adj#$ |\ {}:{en} $Adj#$ |\ {}:{en} $Adj#$ |\ {}:{e} $Adj#$ |\ {}:{er} $Adj#$ |\ {}:{en} $Adj#$ |\ {}:{er} $Adj#$ |\ {}:{en} $Adj#$ |\ {}:{e} $Adj#$ |\ {}:{es} $Adj#$ |\ {}:{e} $Adj#$ |\ {}:{en} $Adj#$ |\ {}:{em} $Adj#$ |\ {}:{en} $Adj#$ |\ {}:{es} $Adj#$ |\ {}:{e} $Adj#$ |\ {}:{e} $Adj#$ |\ {}:{en}$Adj#$ |\ {}:{en}$Adj#$ |\ {}:{er} $Adj#$ |\ {}:{en} $Adj#$ |\ {}:{en}$Adj#$ |\ {}:{e} $Adj#$ $AdjNNSuff$ = {<+NN>}:{er} $N#$ |\ {<+NN>}:{e} $N#$ |\ {<+NN>}:{en} $N#$ |\ {<+NN>}:{em} $N#$ |\ {<+NN>}:{en} $N#$ |\ {<+NN>}:{en} $N#$ |\ {<+NN>}:{e} $N#$ |\ {<+NN>}:{er} $N#$ |\ {<+NN>}:{en} $N#$ |\ {<+NN>}:{er} $N#$ |\ {<+NN>}:{en} $N#$ |\ {<+NN>}:{e} $N#$ |\ {<+NN>}:{es} $N#$ |\ {<+NN>}:{e} $N#$ |\ {<+NN>}:{en} $N#$ |\ {<+NN>}:{em} $N#$ |\ {<+NN>}:{en} $N#$ |\ {<+NN>}:{es} $N#$ |\ {<+NN>}:{e} $N#$ |\ {<+NN>}:{e} $N#$ |\ {<+NN>}:{en} $N#$ |\ {<+NN>}:{en} $N#$ |\ {<+NN>}:{er} $N#$ |\ {<+NN>}:{en} $N#$ |\ {<+NN>}:{en} $N#$ |\ {<+NN>}:{e} $N#$ $AdjPos$ = {<+ADJ>}:{<>} $Adj#$ |\ {<+ADJ>}:{<>} $Adj#$ |\ {<+ADJ>}:{<>} $AdjFlexSuff$ \ % |{<^ADJ>}:{<>} $AdjNNSuff$ % nominalization $AdjPosAttr$ = {<+ADJ>}:{} $AdjFlexSuff$ \ % |{<^ADJ>}:{<>} $AdjNNSuff$ % nominalization $AdjPosPred$ = {<+ADJ>}:{<>} $Adj#$ $AdjSup$ = {<+ADJ>}:{sten} $Adj#$ |\ {<+ADJ>}:{st} $Adj#$ |\ {<+ADJ>}:{sten} $Adj#$ |\ {<+ADJ>}:{st} $AdjFlexSuff$ \ % |{<^ADJ>}:{st} $AdjNNSuff$ $Adv$ = {<+ADV>}:{<>} $Closed#$ $Circp$ = {<+CIRCP>}:{<>} $Fix#$ $Intj$ = {<+INTJ>}:{<>} $Closed#$ $IntjUp$ = {<+INTJ>}:{<>} $Closed#Up$ $IpKL$ = {<+IP>}:{<>} $Fix#$ $IpKR$ = {<+IP>}:{<>} $Fix#$ $IpKo$ = {<+IP>}:{<>} $Fix#$ $IpNorm$ = {<+IP>}:{<>} $Fix#$ $Konj-Inf$ = {<+KONJ>}:{<>} $Closed#$ $Konj-Kon$ = {<+KONJ>}:{<>} $Closed#$ $Konj-Sub$ = {<+KONJ>}:{<>} $Closed#$ $Konj-Vgl$ = {<+KONJ>}:{<>} $Closed#$ $NMasc-Adj$ = {r<+NN>}:{r} $N#$ |\ {r<+NN>}:{<>} $N#$ |\ {r<+NN>}:{n} $N#$ |\ {r<+NN>}:{m} $N#$ |\ {r<+NN>}:{n} $N#$ |\ {r<+NN>}:{n} $N#$ |\ {r<+NN>}:{<>} $N#$ |\ {r<+NN>}:{n} $N#$ |\ {r<+NN>}:{n} $N#$ |\ {r<+NN>}:{r} $N#$ |\ {r<+NN>}:{n} $N#$ |\ {r<+NN>}:{n} $N#$ |\ {r<+NN>}:{<>} $N#$ % Herz-ens $NNeut-Herz$ = {<+NN>}:{} $N#$ |\ {<+NN>}:{ens} $N#$ |\ {<+NN>}:{en} $N#$ |\ {<+NN>}:{} $N#$ $NPl_0$ = {}:{<>} $N#$ |\ {}:{<>} $N#$ |\ {}:{n} $N#$ |\ {}:{<>} $N#$ $NPl_x$ = {}:{<>} $N#$ |\ {}:{<>} $N#$ |\ {}:{<>} $N#$ |\ {}:{<>} $N#$ % Frau; Mythos; Chaos $NSg_0$ = {}:{} $N#$ |\ {}:{} $N#$ |\ {}:{} $N#$ |\ {}:{} $N#$ % Mensch-en $NSg_en$ = {}:{} $N#$ |\ {}:{en} $N#$ |\ {}:{en} $N#$ |\ {}:{en} $N#$ % Haus-es, Geist-(e)s $NSg_es$ = {}:{} $N#$ |\ {}:{es<^Gen>} $N#$ |\ {}:{} $N#$ |\ {}:{e} $N#$ |\ {}:{} $N#$ % Nachbar-n $NSg_n$ = {}:{} $N#$ |\ {}:{n} $N#$ |\ {}:{n} $N#$ |\ {}:{n} $N#$ % Opa-s, Klima-s $NSg_s$ = {}:{} $N#$ |\ {}:{s} $N#$ |\ {}:{} $N#$ |\ {}:{} $N#$ $N_0_\$$ = $NSg_0$ |\ {<>}:{
                        } $NPl_0$ $N_0_\$e$ = $NSg_0$ |\ {<>}:{
                          e} $NPl_0$ $N_0_e$ = $NSg_0$ |\ {<>}:{e} $NPl_0$ $N_0_en$ = $NSg_0$ |\ {<>}:{en} $NPl_x$ $N_0_n$ = $NSg_0$ |\ {<>}:{n} $NPl_x$ $N_0_s$ = $NSg_0$ |\ {<>}:{s} $NPl_x$ $N_0_x$ = $NSg_0$ |\ $NPl_x$ $N_en_en$ = $NSg_en$ |\ {<>}:{en} $NPl_x$ $N_es_\$e$ = $NSg_es$ |\ {<>}:{
                            e} $NPl_0$ $N_es_\$er$ = $NSg_es$ |\ {<>}:{
                              er} $NPl_0$ $N_es_e$ = $NSg_es$ |\ {<>}:{e} $NPl_0$ $N_es_en$ = $NSg_es$ |\ {<>}:{en} $NPl_x$ $N_n_n$ = $NSg_n$ |\ {<>}:{n} $NPl_x$ $N_s_0$ = $NSg_s$ |\ $NPl_0$ $N_s_\$$ = $NSg_s$ |\ {<>}:{
                                } $NPl_0$ $N_s_\$x$ = $NSg_s$ |\ {<>}:{
                                  } $NPl_x$ $N_s_e$ = $NSg_s$ |\ {<>}:{e} $NPl_0$ $N_s_en$ = $NSg_s$ |\ {<>}:{en} $NPl_x$ $N_s_n$ = $NSg_s$ |\ {<>}:{n} $NPl_x$ $N_s_s$ = $NSg_s$ |\ {<>}:{s} $NPl_x$ $N_s_x$ = $NSg_s$ |\ $NPl_x$ $PInd-Invar$ = {<+INDEF>}:{<>} $Closed#$ $Postp-Akk$ = {<+POSTP>}:{<>} $Closed#$ $Postp-Dat$ = {<+POSTP>}:{<>} $Closed#$ $Postp-Gen$ = {<+POSTP>}:{<>} $Closed#$ $Prep-Akk$ = {<+PREP>}:{<>} $Closed#$ $Prep-Dat$ = {<+PREP>}:{<>} $Closed#$ $Prep-Gen$ = {<+PREP>}:{<>} $Closed#$ $Prep/Art-m$ = {<+PREP/ART>}:{<>} $Closed#$ |\ {<+PREP/ART>}:{<>} $Closed#$ % untern (Tisch) $Prep/Art-n$ = {<+PREP/ART>}:{<>} $Closed#$ $Prep/Art-r$ = {<+PREP/ART>}:{<>} $Closed#$ $Prep/Art-s$ = {<+PREP/ART>}:{<>} $Closed#$ $ProAdv$ = {<+PROADV>}:{<>} $Closed#$ $Ptkl-Adj$ = {<+PTKL>}:{<>} $Closed#$ $Ptkl-Ant$ = {<+PTKL>}:{<>} $Closed#$ $Ptkl-Neg$ = {<+PTKL>}:{<>} $Closed#$ $Ptkl-Zu$ = {<+PTKL>}:{<>} $Closed#$ $SpecChar$ = {<+CHAR>}:{<>} $Fix#$ $Symbol$ = {<+SYMBOL>}:{<>} $Fix#$ $V+(es)$ = {/'s}:{'s}? $V#$ % seid; habt; werdet; tut $VAImpPl$ = {<+V>}:{<^imp>} $V+(es)$ % sei; hab/habe; werde; tu $VAImpSg$ = {<+V>}:{<^imp>} $V+(es)$ $VAPastKonj2$ = {<+V><2>}:{st} $V+(es)$ |\ % wr-st {<+V><2>}:{t} $V+(es)$ % wr-t % sind; haben; werden; tun $VAPres1/3PlInd$ = {<+V><1>}:{<>} $V+(es)$ |\ {<+V><3>}:{<>} $V+(es)$ % bin; habe; werde; tue $VAPres1SgInd$ = {<+V><1>}:{<>} $V+(es)$ % seid; habt; werdet; tut $VAPres2PlInd$ = {<+V><2>}:{<>} $V+(es)$ % bist; hast; wirst; tust $VAPres2SgInd$ = {<+V><2>}:{<>} $V+(es)$ % ist; hat; wird; tut $VAPres3SgInd$ = {<+V><3>}:{<>} $V+(es)$ $VAPresKonjPl$ = {<+V><1>}:{n} $V+(es)$ |\ % seie-n; habe-n; werde-n; tu-n {<+V><2>}:{t} $V+(es)$ |\ % seie-t; habe-t; werde-et; tu-t {<+V><3>}:{n} $V+(es)$ $VAPresKonjSg$ = {<+V><1>}:{} $V+(es)$ |\ % sei-; habe-; werde-; tue- {<+V><2>}:{st} $V+(es)$ |\ % sei-st; habe-st; werde-st; tue-st {<+V><3>}:{} $V+(es)$ % sei-; habe-; werde-; tue- $VImpPl$ = {<+V>}:{t<^imp>} $V+(es)$ % kommt! schaut! arbeit-e-t $VImpSg$ = {<+V>}:{<^imp>} $V+(es)$ % komm! schau! arbeit-e $VImpSg0$ = {<+V>}:{<^imp>} $V+(es)$ % flicht! (not: flicht-e!) $VPastIndReg$ = {<+V><1>}:{te} $V+(es)$ |\ % (ich) liebte, wollte, arbeit-e-te {<+V><2>}:{test} $V+(es)$ |\ % brachte {<+V><3>}:{te} $V+(es)$ |\ {<+V><1>}:{ten} $V+(es)$ |\ {<+V><2>}:{tet} $V+(es)$ |\ {<+V><3>}:{ten} $V+(es)$ $VPastIndStr$ = {<+V><1>}:{} $V+(es)$ |\ % (ich) fuhr, ritt, fand {<+V><2>}:{st} $V+(es)$ |\ % (du) fuhrst, ritt-e-st, fand-e-st {<+V><3>}:{} $V+(es)$ |\ {<+V><1>}:{en} $V+(es)$ |\ {<+V><2>}:{t} $V+(es)$ |\ {<+V><3>}:{en} $V+(es)$ $VPastKonjReg$ = {<+V><1>}:{te} $V+(es)$ |\ % (ich) liebte, wollte, arbeit-e-te {<+V><2>}:{test} $V+(es)$ |\ % brchte {<+V><3>}:{te} $V+(es)$ |\ {<+V><1>}:{ten} $V+(es)$ |\ {<+V><2>}:{tet} $V+(es)$ |\ {<+V><3>}:{ten} $V+(es)$ $VPastKonjStr$ = {<+V><1>}:{e} $V+(es)$ |\ % (ich) fhre, ritte, fnde {<+V><2>}:{est} $V+(es)$ |\ {<+V><3>}:{e} $V+(es)$ |\ {<+V><1>}:{en} $V+(es)$ |\ {<+V><2>}:{et} $V+(es)$ |\ {<+V><3>}:{en} $V+(es)$ $VPres1Irreg$ = {<+V><1>}:{} $V+(es)$ % (ich) will, bedarf $VPres1Reg$ = {<+V><1>}:{e} $V+(es)$ % (ich) liebe, rate, sammle $VPres2Irreg$ = {<+V><2>}:{st} $V+(es)$ % (du) hilfst, rtst $VPres2Reg$ = {<+V><2>}:{st} $V+(es)$ % (du) liebst, biet-e-st, sammelst $VPres3Irreg$ = {<+V><3>}:{} $V+(es)$ % (er) rt, will $VPres3Reg$ = {<+V><3>}:{t} $V+(es)$ % (er) liebt, hilft, sammelt $VPresKonj$ = {<+V><1>}:{e} $V+(es)$ |\ % (ich) liebe, wolle, sammle {<+V><2>}:{est} $V+(es)$ |\ % (du) liebest, wollest, sammelst {<+V><3>}:{e} $V+(es)$ |\ % (er) liebe, wolle, sammle {<+V><1>}:{en} $V+(es)$ |\ % (wir) lieben, wollen, sammeln {<+V><2>}:{et} $V+(es)$ |\ % (ihr) liebet, wollet, sammelt {<+V><3>}:{en} $V+(es)$ % (sie) lieben, wollen, sammeln $VPresPlInd$ = {<+V><1>}:{en} $V+(es)$ |\ % (wir) lieben, wollen, sammeln {<+V><2>}:{t} $V+(es)$ |\ % (ihr) liebt, biet-e-t, sammelt {<+V><3>}:{en} $V+(es)$ % (sie) lieben, wollen, sammeln $VVPastIndReg$ = {en}:{<>} $VPastIndReg$ $VVPastIndStr$ = {en}:{<>} $VPastIndStr$ $VVPastKonjReg$ = {en}:{<>} $VPastKonjReg$ $VVPastKonjStr$ = {en}:{<>} $VPastKonjStr$ $VVPastStr$ = $VVPastIndStr$ |\ $VVPastKonjStr$ $WAdv$ = {<+WADV>}:{<>} $Closed#$ $AdjComp$ = {<+ADJ>}:{er} $Adj#$ |\ {<+ADJ>}:{er} $Adj#$ |\ {<+ADJ>}:{er} $AdjFlexSuff$ \ % |{<^ADJ>}:{er} $AdjNNSuff$ % nominalization $AdjNN$ = $AdjPosPred$ $AdjPosSup$ = {<>}:{} $AdjPosAttr$ |\ {<>}:{} $AdjSup$ $Adj\$$ = {<>}:{} $AdjPos$ |\ {<>}:{
                                    } $AdjComp$ |\ {<>}:{
                                      } $AdjSup$ $Adj\$e$ = {<>}:{} $AdjPos$ |\ {<>}:{
                                        } $AdjComp$ |\ {<>}:{
                                          e} $AdjSup$ $Adj~+e$ = {<>}:{} $AdjPos$ |\ {<>}:{} $AdjComp$ |\ {<>}:{e} $AdjSup$ % family names ending in -s, -z $FamName_0$ = {<+NE>}:{<>} $NSg_0$ |\ {<+NE>}:{ens} $NPl_x$ % family names $FamName_s$ = {<+NE>}:{<>} $NSg_s$ |\ {<+NE>}:{s} $NPl_x$ % Leute $N?/Pl_0$ = {<+NN>}:{<>} $NPl_0$ % Kosten $N?/Pl_x$ = {<+NN>}:{<>} $NPl_x$ % -ung, -heit, -keit, -tt, -schaft $NFem-Deriv$ = {<+NN>}:{<>} $N_0_en$ % Nu/Nsse $NFem-s/\$sse$ ={<+NN>}:{} $N_0_\$e$ % Kenntnis/Kenntnisse $NFem-s/sse$ = {<+NN>}:{} $N_0_\$e$ % Hoste/Hostessen $NFem-s/ssen$ = {<+NN>}:{} $N_0_en$ % Matrizen $NFem/Pl$ = {<+NN>}:{<>} $NPl_x$ % Matrix/-- $NFem/Sg$ = {<+NN>}:{<>} $NSg_0$ % Mutter/Mtter $NFem_0_\$$ = {<+NN>}:{<>} $N_0_\$$ % Wand/Wnde $NFem_0_\$e$ = {<+NN>}:{<>} $N_0_\$e$ % Drangsal/Drangsale; Retina/Retinae $NFem_0_e$ = {<+NN>}:{<>} $N_0_e$ % Frau/Frauen; Arbeit/Arbeiten $NFem_0_en$ = {<+NN>}:{<>} $N_0_en$ % Hilfe/Hilfen; Tafel/Tafeln; Nummer/Nummern $NFem_0_n$ = {<+NN>}:{<>} $N_0_n$ % Oma/Omas $NFem_0_s$ = {<+NN>}:{<>} $N_0_s$ % Ananas/Ananas $NFem_0_x$ = {<+NN>}:{<>} $N_0_x$ % Name-ns/Namen; Gedanke(n); Buchstabe $NMasc-ns$ = {<+NN>}:{<>} $N#$ |\ {<+NN>}:{ns} $N#$ |\ {<+NN>}:{n} $N#$ |\ {<+NN>}:{n} $N#$ |\ {<+NN>}:{n} $NPl_x$ % Ha-Hasses/-- $NMasc-s/Sg$ = {<+NN>}:{} $NSg_es$ % Ba/Bsse $NMasc-s/\$sse$ = {<+NN>}:{} $N_es_\$e$ % Bus/Busse; Erla/Erlasse $NMasc-s/sse$ = {<+NN>}:{} $N_es_e$ % Nimbus-/Nimbusse $NMasc-s0/sse$ = {<+NN>}:{} $N_0_e$ % --/Bauten $NMasc/Pl$ = {<+NN>}:{<>} $NPl_x$ % Fiskus/-- $NMasc/Sg_0$ = {<+NN>}:{<>} $NSg_0$ % Abwasch-(e)s/--; Glanz-es/--; $NMasc/Sg_es$ = {<+NN>}:{<>} $NSg_es$ % Hagel-s/--; Adel-s/-- $NMasc/Sg_s$ = {<+NN>}:{<>} $NSg_es$ % Revers/Revers $NMasc_0_x$ = {<+NN>}:{<>} $N_0_x$ % Fels-en/Felsen; Mensch-en/Menschen $NMasc_en_en$ = {<+NN>}:{<>} $N_en_en$ % Arzt-(e)s/rzte; $NMasc_es_\$e$ = {<+NN>}:{<>} $N_es_\$e$ % Gott-(e)s/Gtter $NMasc_es_\$er$ = {<+NN>}:{<>} $N_es_\$er$ % Tag-(e)s/Tage; $NMasc_es_e$ = {<+NN>}:{<>} $N_es_e$ % Fleck-(e)s/Flecken $NMasc_es_en$ = {<+NN>}:{<>} $N_es_en$ % Affe-n/Affen; Bauer-n/Bauern $NMasc_n_n$ = {<+NN>}:{<>} $N_n_n$ % Adler-s/Adler; Engel-s/Engel $NMasc_s_0$ = {<+NN>}:{<>} $N_s_0$ % Apfel-s/pfel; Vater-s/Vter $NMasc_s_\$$ = {<+NN>}:{<>} $N_s_\$$ % Garten-s/Grten $NMasc_s_\$x$ = {<+NN>}:{<>} $N_s_\$x$ % Drilling-s/Drillinge $NMasc_s_e$ = {<+NN>}:{<>} $N_s_e$ % Zeh-s/Zehen $NMasc_s_en$ = {<+NN>}:{<>} $N_s_en$ % Muskel-s/Muskeln; See-s/Seen $NMasc_s_n$ = {<+NN>}:{<>} $N_s_n$ % Chef-s/Chefs; Bankier-s/Bankiers $NMasc_s_s$ = {<+NN>}:{<>} $N_s_s$ % Wagen-s/Wagen $NMasc_s_x$ = {<+NN>}:{<>} $N_s_x$ % Kindchen-s/Kindchen $NNeut-Dimin$ = {<+NN>}:{<>} $N_s_x$ % --/Fresken $NNeut/Pl$ = {<+NN>}:{<>} $NPl_x$ % Abseits-/-- $NNeut/Sg_0$ = {<+NN>}:{<>} $NSg_0$ % Ausland-(e)s/-- $NNeut/Sg_es$ = {<+NN>}:{<>} $NSg_es$ % Deutsch-en/-- $NNeut/Sg_en$ = {<+NN>}:{<>} $NSg_en$ % Abitur-s/-- $NNeut/Sg_s$ = {<+NN>}:{<>} $NSg_s$ % Relais-/Relais $NNeut_0_x$ = {<+NN>}:{<>} $N_0_x$ % Flo-es/Fle; $NNeut_es_\$e$ = {<+NN>}:{<>} $N_es_\$e$ % Buch-(e)s/Bcher $NNeut_es_\$er$ = {<+NN>}:{<>} $N_es_\$er$ % Schild-(e)s/Schilder $NNeut_es_er$ = {<+NN>}:{<>} $N_es_\$er$ % Spiel-(e)s/Spiele; Abgas-es/Abgase $NNeut_es_e$ = {<+NN>}:{<>} $N_es_e$ % Bett-(e)s/Betten $NNeut_es_en$ = {<+NN>}:{<>} $N_es_en$ % Feuer-s/Feuer; Mittel-s/Mittel $NNeut_s_0$ = {<+NN>}:{<>} $N_s_0$ % Kloster-s/Klster $NNeut_s_\$$ = {<+NN>}:{<>} $N_s_\$$ % Dreieck-s/Dreiecke $NNeut_s_e$ = {<+NN>}:{<>} $N_s_e$ % Juwel-s/Juwelen $NNeut_s_en$ = {<+NN>}:{<>} $N_s_en$ % Auge-s/Augen $NNeut_s_n$ = {<+NN>}:{<>} $N_s_n$ % Sofa-s/Sofas; $NNeut_s_s$ = {<+NN>}:{<>} $N_s_s$ % Almosen-s/Almosen $NNeut_s_x$ = {<+NN>}:{<>} $N_s_x$ $VFlexPres2$ = $VPres2Irreg$ |\ $VPres3Reg$ $VFlexPres2t$ = $VPres2Irreg$ |\ $VPres3Irreg$ $VInf$ = {<+V>}:{<>} $V#$ |\ {<+V>}:{<^zz>} $V#$ \ % |{<^VINF>}:{<>} $NNeut/Sg_s$ $VMPastKonj$ = {en}:{<>} $VPastKonjReg$ $VModFlexSg$ = $VPres1Irreg$ |\ $VPres2Reg$ |\ $VPres3Irreg$ $VVPres2$ = {en}:{<>} $VFlexPres2$ $VVPres2+Imp$ = {en}:{<>} $VImpSg$ |\ $VVPres2$ $VVPres2t$ = {en}:{<>} $VFlexPres2t$ $VVPresSg$ = {en}:{<>} $VModFlexSg$ % bedarf-; weiss- $Adj&$ = {<>}:{} $AdjPos$ |\ {<>}:{} $AdjComp$ |\ {<>}:{} $AdjSup$ $Adj+$ = {<>}:{} $AdjPos$ |\ {<>}:{} $AdjComp$ |\ {<>}:{} $AdjSup$ $Adj+(e)$ = {<>}:{} $AdjPos$ |\ {<>}:{} $AdjComp$ |\ {<>}:{} $AdjSup$ |\ {<>}:{e} $AdjSup$ % deutsch; [das] Deutsch $Adj+Lang$ = $Adj+$ |\ $NNeut/Sg_en$ $Adj+e$ = {<>}:{} $AdjPos$ |\ {<>}:{} $AdjComp$ |\ {<>}:{e} $AdjSup$ $Adj-el/er$ = {<>}:{<^Ax>} $Adj+$ % Algebra/Algebren; Firma/Firmen $NFem-a/en$ = $NFem/Sg$ |\ {<>}:{<^pl>en} $NFem/Pl$ % Freundin/Freundinnen $NFem-in$ = $NFem/Sg$ |\ {<>}:{nen} $NFem/Pl$ % Basis/Basen $NFem-is/en$ = $NFem/Sg$ |\ {<>}:{<^pl>en} $NFem/Pl$ % Neuritis/Neuritiden $NFem-is/iden$ = $NFem/Sg$ |\ {<>}:{<^pl>iden}$NFem/Pl$ % Virus/Viren $NMasc-us/en$ = $NMasc/Sg_0$ |\ {<+NN>}:{ses}$N#$ |\ {<>}:{<^pl>en} $NMasc/Pl$ % Intimus/Intimi $NMasc-us/i$ = $NMasc/Sg_0$ |\ {<+NN>}:{ses}$N#$ |\ {<>}:{<^pl>i} $NMasc/Pl$ % Absolvent/in $NMasc_en_en=in$ = $NMasc_en_en$ |\ {in}:{in} $NFem-in$ % Schwabe/Schwbin; Bauer/Buerin $NMasc_n_n=\$in$ = $NMasc_n_n$ |\ :<^Del><>:
                                            in $NFem-in$ % Bote/Botin; Nachbar/Nachbarin; $NMasc_n_n=in$ = $NMasc_n_n$ |\ <>:<^Del>:in $NFem-in$ % Lehrer/in $NMasc_s_0=in$ = $NMasc_s_0$ |\ : in $NFem-in$ % Bibliothekar/in $NMasc_s_e=in$ = $NMasc_s_e$ |\ : in $NFem-in$ % Professor/in $NMasc_s_en=in$ = $NMasc_s_en$ |\ : in $NFem-in$ % Adverb/Adverbien $NNeut-0/ien$ = $NNeut/Sg_s$ |\ {<>}:{ien} $NNeut/Pl$ % Komma/Kommata $NNeut-a/ata$ = $NNeut/Sg_s$ |\ {<>}:{ta} $NNeut/Pl$ % Dogma/Dogmen $NNeut-a/en$ = $NNeut/Sg_s$ |\ {<>}:{<^pl>en} $NNeut/Pl$ % Oxymoron/Oxymora $NNeut-on/a$ = $NNeut/Sg_s$ |\ {<>}:{<^pl>a} $NNeut/Pl$ % Fa/Fsser $NNeut-s/\$sser$ = {<>}:{} $NNeut_es_\$er$ % Zeugnis/Zeugnisse $NNeut-s/sse$ = {<>}:{} $NNeut_es_e$ % Aktivum/Aktiva $NNeut-um/a$ = $NNeut/Sg_s$ |\ {<>}:{<^pl>a} $NNeut/Pl$ % Museum/Museen $NNeut-um/en$ = $NNeut/Sg_s$ |\ {<>}:{<^pl>en} $NNeut/Pl$ $Name-Fem_0$ = {<+NE>}:{<>} $NSg_0$ $Name-Fem_s$ = {<+NE>}:{<>} $NSg_s$ $Name-Masc_0$ = {<+NE>}:{<>} $NSg_0$ $Name-Masc_s$ = {<+NE>}:{<>} $NSg_s$ $Name-Neut_0$ = {<+NE>}:{<>} $NSg_0$ $Name-Neut_s$ = {<+NE>}:{<>} $NSg_s$ $Name-Pl_0$ = {<+NE>}:{<>} $NPl_0$ $Name-Pl_x$ = {<+NE>}:{<>} $NPl_x$ % Buenos [Aires]; Tel [Aviv] $Name-Invar$ = {<+NE>}:{<>} $N#$ % % Englnder/Englnder-in % $Name+er/in$ = {<+ADJ>}:{<>} $Adj#Up$ |\ % $NMasc_s_0=in$ % Stuttgart/Stuttgart-er/Stuttgart-er-in % $Name-Neut+Loc$ = er $Name+er/in$ |\ % $Name-Neut_s$ $VMPresSg$ = {en}:{<>} $VModFlexSg$ $VPPast$ = {<+V>}:{<^pp>} $V#$ \ % |{<^VPAST>}:{<^pp>} $Adj&$ $VPPres$ = {<+V>}:{<>} $V#$ |\ {<+V>}:{<^zz>} $V#$ \ % |{<^VPRES>}:{<>} $Adj+$ |\ % {<^VPRES>}:{<^zz>} $Adj+$ $VVPres2+Imp0$ = {en}:{<>} $VImpSg0$ |\ $VVPres2t$ $VInf+PPres$ = $VInf$ |\ {<>}:{d} $VPPres$ $VInfStem$ = {<>}:{en} $VInf+PPres$ $VModFlexPl$ = $VPresPlInd$ |\ $VPresKonj$ |\ $VInfStem$ $VPP-en$ = {<>}:{en} $VPPast$ $VPP-t$ = {<>}:{t} $VPPast$ $VVPP-en$ = {en}:{<>} $VPP-en$ $VVPP-t$ = {en}:{<>} $VPP-t$ $VVPresPl$ = {en}:{<>} $VModFlexPl$ % beduerf-, wiss- $VFlexPres1$ = $VPres1Reg$ |\ $VPresPlInd$ |\ $VPresKonj$ |\ $VImpPl$ |\ $VInfStem$ $VFlexPresReg$ = $VFlexPres1$ |\ $VPres2Reg$ |\ $VPres3Reg$ |\ $VImpSg$ $VFlexReg$ = $VFlexPresReg$ |\ $VPastIndReg$ |\ $VPastKonjReg$ |\ $VPP-t$ $VMPast$ = {en}:{<>} $VPastIndReg$ |\ {en}:{<>} $VPP-t$ $VMPresPl$ = {en}:{<>} $VModFlexPl$ $VVPres$ = {en}:{<>} $VFlexPresReg$ $VVPres1$ = {en}:{<>} $VFlexPres1$ $VVPres1+Imp$ = {en}:{<>} $VImpSg$ |\ $VVPres1$ $VVReg$ = {en}:{<>} $VFlexReg$ $VVReg-el/er$ = {n}:{<>} $VFlexReg$ $Pref/Adv$ = {<+VPRE>}:{<>} $Fix#$ $Pref/Adj$ = {<+VPRE>}:{<>} $Fix#$ $Pref/ProAdv$ = {<+VPRE>}:{<>} $Fix#$ $Pref/N$ = {<+VPRE>}:{<>} $Fix#$ $Pref/V$ = {<+VPRE>}:{<>} $Fix#$ $Pref/Sep$ = {<+VPRE>}:{<>} $Fix#$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Numbers % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $Card$ = <+CARD>:<> $Closed#$ $DigOrd$ = <+ORD>:<> $Closed#$ $Ord$ = <+ORD>:<> $AdjFlexSuff$ |\ {<+ORD>}:{<>} $Closed#$ $NumAdjFlex$ = {<+ADJ>}:{<>} $Fix#$ |\ {<+ADJ>}:{er} $Fix#$ |\ {<+ADJ>}:{e} $Fix#$ |\ {<+ADJ>}:{en} $Fix#$ |\ {<+ADJ>}:{em} $Fix#$ |\ {<+ADJ>}:{en} $Fix#$ |\ {<+ADJ>}:{en} $Fix#$ |\ {<+ADJ>}:{e} $Fix#$ |\ {<+ADJ>}:{er} $Fix#$ |\ {<+ADJ>}:{en} $Fix#$ |\ {<+ADJ>}:{er} $Fix#$ |\ {<+ADJ>}:{en} $Fix#$ |\ {<+ADJ>}:{e} $Fix#$ |\ {<+ADJ>}:{es} $Fix#$ |\ {<+ADJ>}:{e} $Fix#$ |\ {<+ADJ>}:{en} $Fix#$ |\ {<+ADJ>}:{em} $Fix#$ |\ {<+ADJ>}:{en} $Fix#$ |\ {<+ADJ>}:{es} $Fix#$ |\ {<+ADJ>}:{e} $Fix#$ |\ {<+ADJ>}:{e} $Fix#$ |\ {<+ADJ>}:{en} $Fix#$ |\ {<+ADJ>}:{en} $Fix#$ |\ {<+ADJ>}:{er} $Fix#$ |\ {<+ADJ>}:{en} $Fix#$ |\ {<+ADJ>}:{en} $Fix#$ |\ {<+ADJ>}:{e} $Fix#$ |\ {<+NN>}:{er} $Fix#$ |\ {<+NN>}:{e} $Fix#$ |\ {<+NN>}:{en} $Fix#$ |\ {<+NN>}:{em} $Fix#$ |\ {<+NN>}:{en} $Fix#$ |\ {<+NN>}:{en} $Fix#$ |\ {<+NN>}:{e} $Fix#$ |\ {<+NN>}:{er} $Fix#$ |\ {<+NN>}:{en} $Fix#$ |\ {<+NN>}:{er} $Fix#$ |\ {<+NN>}:{en} $Fix#$ |\ {<+NN>}:{e} $Fix#$ |\ {<+NN>}:{es} $Fix#$ |\ {<+NN>}:{e} $Fix#$ |\ {<+NN>}:{en} $Fix#$ |\ {<+NN>}:{em} $Fix#$ |\ {<+NN>}:{en} $Fix#$ |\ {<+NN>}:{es} $Fix#$ |\ {<+NN>}:{e} $Fix#$ |\ {<+NN>}:{e} $Fix#$ |\ {<+NN>}:{en} $Fix#$ |\ {<+NN>}:{en} $Fix#$ |\ {<+NN>}:{er} $Fix#$ |\ {<+NN>}:{en} $Fix#$ |\ {<+NN>}:{en} $Fix#$ |\ {<+NN>}:{e} $Fix#$ |\ {<+ADJ>}:{<>} $Closed#$ |\ {<+ADJ>}:{er} $Closed#$ |\ {<+ADJ>}:{e} $Closed#$ |\ {<+ADJ>}:{en} $Closed#$ |\ {<+ADJ>}:{em} $Closed#$ |\ {<+ADJ>}:{en} $Closed#$ |\ {<+ADJ>}:{en} $Closed#$ |\ {<+ADJ>}:{e} $Closed#$ |\ {<+ADJ>}:{er} $Closed#$ |\ {<+ADJ>}:{en} $Closed#$ |\ {<+ADJ>}:{er} $Closed#$ |\ {<+ADJ>}:{en} $Closed#$ |\ {<+ADJ>}:{e} $Closed#$ |\ {<+ADJ>}:{es} $Closed#$ |\ {<+ADJ>}:{e} $Closed#$ |\ {<+ADJ>}:{en} $Closed#$ |\ {<+ADJ>}:{em} $Closed#$ |\ {<+ADJ>}:{en} $Closed#$ |\ {<+ADJ>}:{es} $Closed#$ |\ {<+ADJ>}:{e} $Closed#$ |\ {<+ADJ>}:{e} $Closed#$ |\ {<+ADJ>}:{en} $Closed#$ |\ {<+ADJ>}:{en} $Closed#$ |\ {<+ADJ>}:{er} $Closed#$ |\ {<+ADJ>}:{en} $Closed#$ |\ {<+ADJ>}:{en} $Closed#$ |\ {<+ADJ>}:{e} $Closed#$ |\ {<+NN>}:{er} $Closed#Up$ |\ {<+NN>}:{e} $Closed#Up$ |\ {<+NN>}:{en} $Closed#Up$ |\ {<+NN>}:{em} $Closed#Up$ |\ {<+NN>}:{en} $Closed#Up$ |\ {<+NN>}:{en} $Closed#Up$ |\ {<+NN>}:{e} $Closed#Up$ |\ {<+NN>}:{er} $Closed#Up$ |\ {<+NN>}:{en} $Closed#Up$ |\ {<+NN>}:{er} $Closed#Up$ |\ {<+NN>}:{en} $Closed#Up$ |\ {<+NN>}:{e} $Closed#Up$ |\ {<+NN>}:{es} $Closed#Up$ |\ {<+NN>}:{e} $Closed#Up$ |\ {<+NN>}:{en} $Closed#Up$ |\ {<+NN>}:{em} $Closed#Up$ |\ {<+NN>}:{en} $Closed#Up$ |\ {<+NN>}:{es} $Closed#Up$ |\ {<+NN>}:{e} $Closed#Up$ |\ {<+NN>}:{e} $Closed#Up$ |\ {<+NN>}:{en} $Closed#Up$ |\ {<+NN>}:{en} $Closed#Up$ |\ {<+NN>}:{er} $Closed#Up$ |\ {<+NN>}:{en} $Closed#Up$ |\ {<+NN>}:{en} $Closed#Up$ |\ {<+NN>}:{e} $Closed#Up$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % building the inflection transducer % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $FLEXION$ = <>: $Abk_ADJ$ |\ <>: $Abk_ADV$ |\ <>: $Abk_ART$ |\ <>: $Abk_DPRO$ |\ <>: $Abk_KONJ$ |\ <>: $Abk_NE$ |\ <>: $Abk_NE-Low$ |\ <>: $Abk_NN$ |\ <>: $Abk_NN-Low$ |\ <>: $Abk_PREP$ |\ <>: $Abk_VPPAST$ |\ <>: $Abk_VPPRES$ |\ <>: $Adj+$ |\ <>: $Adj&$ |\ <>: $Adj+(e)$ |\ <>: $Adj+Lang$ |\ <>: $Adj+e$ |\ <>: $Adj-el/er$ |\ <>: $Adj0$ |\ <>: $Adj0-Up$ |\ <>: $AdjComp$ |\ <>: $AdjSup$ |\ <>: $AdjFlexSuff$ |\ <>: $AdjNN$ |\ <>: $AdjNNSuff$ |\ <>: $AdjPos$ |\ <>: $AdjPosAttr$ |\ <>: $AdjPosPred$ |\ <>: $AdjPosSup$ |\ <>: $Adj\$$ |\ <>: $Adj\$e$ |\ <>: $Adj~+e$ |\ <>: $Adv$ |\ <>: $Card$ |\ <>: $Ord$ |\ <>: $DigOrd$ |\ <>: $Circp$ |\ <>: $FamName_0$ |\ <>: $FamName_s$ |\ <>: $Intj$ |\ <>: $IntjUp$ |\ <>: $IpKL$ |\ <>: $IpKR$ |\ <>: $IpKo$ |\ <>: $IpNorm$ |\ <>: $Konj-Inf$ |\ <>: $Konj-Kon$ |\ <>: $Konj-Sub$ |\ <>: $Konj-Vgl$ |\ <>: $N?/Pl_0$ |\ <>: $N?/Pl_x$ |\ <>: $Name-Pl_x$ |\ <>: $Name-Pl_0$ |\ <>: $NFem-Deriv$ |\ <>: $NFem-a/en$ |\ <>: $NFem-in$ |\ <>: $NFem-is/en$ |\ <>: $NFem-is/iden$ |\ <>: $NFem-s/\$sse$ |\ <>: $NFem-s/sse$ |\ <>: $NFem-s/ssen$ |\ <>: $NFem/Pl$ |\ <>: $NFem/Sg$ |\ <>: $NFem_0_\$$ |\ <>: $NFem_0_\$e$ |\ <>: $NFem_0_e$ |\ <>: $NFem_0_en$ |\ <>: $NFem_0_n$ |\ <>: $NFem_0_s$ |\ <>: $NFem_0_x$ |\ <>: $NMasc-Adj$ |\ <>: $NMasc-ns$ |\ <>: $NMasc-s/\$sse$ |\ <>: $NMasc-s/Sg$ |\ <>: $NMasc-s/sse$ |\ <>: $NMasc-s0/sse$ |\ <>: $NMasc-us/en$ |\ <>: $NMasc-us/i$ |\ <>: $NMasc/Pl$ |\ <>: $NMasc/Sg_0$ |\ <>: $NMasc/Sg_es$ |\ <>: $NMasc/Sg_s$ |\ <>: $NMasc_0_x$ |\ <>: $NMasc_en_en=in$ |\ <>: $NMasc_en_en$ |\ <>: $NMasc_es_\$e$ |\ <>: $NMasc_es_\$er$ |\ <>: $NMasc_es_e$ |\ <>: $NMasc_es_en$ |\ <>: $NMasc_n_n=\$in$ |\ <>: $NMasc_n_n=in$ |\ <>: $NMasc_n_n$ |\ <>: $NMasc_s_\$$ |\ <>: $NMasc_s_\$x$ |\ <>: $NMasc_s_0=in$ |\ <>: $NMasc_s_0$ |\ <>: $NMasc_s_e=in$ |\ <>: $NMasc_s_e$ |\ <>: $NMasc_s_en=in$ |\ <>: $NMasc_s_en$ |\ <>: $NMasc_s_n$ |\ <>: $NMasc_s_s$ |\ <>: $NMasc_s_x$ |\ <>: $NNeut-0/ien$ |\ <>: $NNeut-Dimin$ |\ <>: $NNeut-Herz$ |\ <>: $NNeut-a/ata$ |\ <>: $NNeut-a/en$ |\ <>: $NNeut-on/a$ |\ <>: $NNeut-s/\$sser$ |\ <>: $NNeut-s/sse$ |\ <>: $NNeut-um/a$ |\ <>: $NNeut-um/en$ |\ <>: $NNeut/Pl$ |\ <>: $NNeut/Sg_0$ |\ <>: $NNeut/Sg_es$ |\ <>: $NNeut/Sg_en$ |\ <>: $NNeut/Sg_s$ |\ <>: $NNeut_0_x$ |\ <>: $NNeut_es_\$e$ |\ <>: $NNeut_es_\$er$ |\ <>: $NNeut_es_e$ |\ <>: $NNeut_es_en$ |\ <>: $NNeut_es_er$ |\ <>: $NNeut_s_\$$ |\ <>: $NNeut_s_0$ |\ <>: $NNeut_s_e$ |\ <>: $NNeut_s_en$ |\ <>: $NNeut_s_n$ |\ <>: $NNeut_s_s$ |\ <>: $NNeut_s_x$ |\ % <>: $Name+er/in$ |\ <>: $Name-Fem_0$ |\ <>: $Name-Fem_s$ |\ <>: $Name-Invar$ |\ <>: $Name-Masc_0$ |\ <>: $Name-Masc_s$ |\ % <>: $Name-Neut+Loc$ |\ <>: $Name-Neut_0$ |\ <>: $Name-Neut_s$ |\ <>: $Name-Pl_0$ |\ <>: $Name-Pl_x$ |\ <>: $NumAdjFlex$ |\ <>: $PInd-Invar$ |\ <>: $Postp-Akk$ |\ <>: $Postp-Dat$ |\ <>: $Postp-Gen$ |\ <>: $Prep-Akk$ |\ <>: $Prep-Dat$ |\ <>: $Prep-Gen$ |\ <>: $Pref/Adj$ |\ <>: $Pref/Adv$ |\ <>: $Pref/N$ |\ <>: $Pref/ProAdv$ |\ <>: $Pref/Sep$ |\ <>: $Pref/V$ |\ <>: $Prep/Art-m$ |\ <>: $Prep/Art-n$ |\ <>: $Prep/Art-r$ |\ <>: $Prep/Art-s$ |\ <>: $ProAdv$ |\ <>: $Ptkl-Adj$ |\ <>: $Ptkl-Ant$ |\ <>: $Ptkl-Neg$ |\ <>: $Ptkl-Zu$ |\ <>: $SpecChar$ |\ <>: $Symbol$ |\ <>: $VAImpPl$ |\ <>: $VAImpSg$ |\ <>: $VAPastKonj2$ |\ <>: $VAPres1/3PlInd$ |\ <>: $VAPres1SgInd$ |\ <>: $VAPres2PlInd$ |\ <>: $VAPres2SgInd$ |\ <>: $VAPres3SgInd$ |\ <>: $VAPresKonjPl$ |\ <>: $VAPresKonjSg$ |\ <>: $VInf$ |\ <>: $VInf+PPres$ |\ <>: $VMPast$ |\ <>: $VMPastKonj$ |\ <>: $VMPresPl$ |\ <>: $VMPresSg$ |\ <>: $VPPast$ |\ <>: $VPPres$ |\ <>: $VPastIndReg$ |\ <>: $VPastIndStr$ |\ <>: $VPastKonjStr$ |\ <>: $VPresKonj$ |\ <>: $VPresPlInd$ |\ <>: $VVPP-en$ |\ <>: $VVPP-t$ |\ <>: $VVPastIndReg$ |\ <>: $VVPastIndStr$ |\ <>: $VVPastKonjReg$ |\ <>: $VVPastKonjStr$ |\ <>: $VVPastStr$ |\ <>: $VVPres$ |\ <>: $VVPres1$ |\ <>: $VVPres1+Imp$ |\ <>: $VVPres2$ |\ <>: $VVPres2+Imp$ |\ <>: $VVPres2+Imp0$ |\ <>: $VVPres2t$ |\ <>: $VVPresPl$ |\ <>: $VVPresSg$ |\ <>: $VVReg$ |\ <>: $VVReg-el/er$ |\ <>: $WAdv$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % definition of a filter which enforces the correct inflection % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ALPHABET = [\!-\~-]
                                              <~n>
                                                \ <^imp><^zz><^pp><^Ax><^pl><^Gen><^Del> \ % upper/lower case features $ANY$ = .* $FLEXFILTER$ = (:<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> []:<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ % :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ % :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<>|\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<> |\ :<> :<>) $ANY$ sfst-1.7.0/data/SMOR/lexicon000066400000000000000000002116471470213725200155710ustar00rootroot00000000000000<>:g<>:e<>:w<>:esei:<>n <>:g<>:ehabe:tn:<> <>:g<>:ewe:orden A:bt<>:i<>:s<>:sin Addendu:am:<> Adverb Afrikaander Agenda Akzidens:t<>:i<>:e<>:n Albatros Album Algorithmus Allegro:i Allroundma:en Amaryllis Amen Amerika Andromeda Anis Apokryph Apostroph Appendix:z<>:e<>:s Aquamanile Architektonik Atlas:n<>:t<>:e<>:n Avemaria Balkan Bastard Bau<>:t<>:e<>:n Ba Beelzebub Begabung Bodega Brasil Bub Buchstabe Brschlein Cello:i Cembalo:i Cherub<>:i<>:m Cherub<>:i<>:n<>:e<>:n Ciskei Clinch Dadaismus Delkredere Dieb Diva<>:s Dompfaff Drama Dre Dugena Ende Ephebe Erlaubnis Etikett Extemporal<>:ie<>:n Fa Fjord Florenz Flo Fluid<>:a Fonds Formaldehyd Gabe Geba Gelb Genital<>:ie<>:n Getriebe Grab Graben Greif Gruft<>:e<>:n Haggada Ha Helen Hemd Heroon Herz Hoden Ind<>:i<>:zex:s Ingrediens:z<>:i<>:e<>:n Insektizid Interesse Intimus Jeans Joule Juwel Jger90 Kaktu:es:e<>:n Kalif Kardinal Kataplasma:e<>:n Kleinod Klima Komma<>:t<>:a Konfirmand Kuba Krbis Lambda Leasing Legion Leib Lesbierin Leute:<> Lira:e Litera Mafioso:i Magd Malaria Mango<>:n<>:e<>:n Manna Maria:e<>:n Medik:zu:is:<> Medusa:e<>:n Memoiren Memorandum Meningitis Mogul Mythos Nachtrieb Niederlande Nomenklatur<>:a Nu Olympia Omega Oxyd Pankreas:t<>:e<>:n Pankreas Pantalone:i Paranoia Parcours Passus Pence Peninsula Penis Penthouse Phalanx:g<>:e<>:n Pharao<>:n<>:e<>:n Phnotyp Police Primas Prinze:ip<>:es Pronome:in<>:a Psalm Pteranodon Pulpa<>:e Raa Rabe Radi Radiu:es:n Radscha Real<>:e<>:s Retina Reverend Risiko:e<>:n Ro:s<>:s<>:e Sacha Salmiak Salmoniden Samba Sandwich<>:e<>:s Sandwich Sarkophag Schema Schi<>:e<>:r Schnabel Schwbisch See Seine Sekunde:<> Seleukide Seru:em:n Seychellen Sieb Signor<>:i Sipho<>:n<>:e<>:n Skalde Smaragd Soda Soma Spital Spor<>:en Sptzle Stab Stadio:en Stalin Stewarde Str. Stdel Surfboard Switch<>:e<>:s Switch Syllabus Taktik Tangens Tenor Testudo:i<>:n<>:e<>:s Thelema<>:t<>:a Titan Tochter Tonika Topos:i Triangel Trichogramma Tripitaka Trumpfas Tuareg Tumba Tutti Umschweife Unikum Veloziped Veranda Verb Verbum Verderb Viech<>:e<>:r Viktualien Vikunja Vordersteven Wasser Weda:e<>:n Weda Weib Wienerwald Will Workbench<>:e<>:s Wchnerin Yoga Zamba Zaubere:<>r:<>:<>in Zeh Zelluloid Zusptkommende Zyanid ab abhold acht:<>ge:ab acht:<>ge:ib acht:<>ge:b acht:<>geb acht:<>geb aerob am am an anteil:<>ne:ahm anteil:<>ne:ih:mm anteil:<>ne:oh:mm anteil:<>ne:hm anteil:<>nehm aufs auswendig:<>lern auto:<>fa:uhr auto:<>fa:hr auto:<>fa:hr auto:<>fahr auto:<>fahr baden:<>ge:ah:n<>:g baden:<>ge:ih:n<>:g baden:<>geh ba be<>:einflus:s: bef<>:iehl begi:onn beheimat chic da durchbe:<>i:s<>:s eigentlich entfa:il:el entfa:ll entra:i<>:et entra:t entsprechend entspri:oe:s:s erki:oe:rs:<> etwaig fad formidabel g:bu:et:<> g:bu:et:s<>:s geb:ar geb:i<>:er ged<>:iei:<>h ged<>:iei:<>h gesch<>:ieh gesche:ah gesund grob ha:b:te:tn:<> ha hab:se:tn:<> hab:te:n:<> habe:<>n:<> habe:<>n:<> habe:tn:<> habe:tn:<> haben:<> haben:<> haben haben halb haus:<>ha:i<>:elt haus:<>ha:lt haus:<>halt haus:<>halt ho:c:<>h ho:ch hoc:<>h inklusive ja leid lila live mi:s<>:sbra:uch mi:s<>:sbrauch mi:s<>:sfa:il:el mi:s<>:sfa:ll mi:s<>:sli:ang mi:s<>:sli:ung mi:s<>:sli:ng mi:s<>:sra:i<>:et mi:s<>:sra:t mi:s<>:sverste:ah:n<>:d mi:s<>:sverste:ah:n<>:d mi:s<>:sverste:h:n<>:d mi:s<>:sverste:h:n<>:d mibra:uch mibrauch mili:ang mili:ung mili:ng miverste:ah:n<>:d miverste:ah:n<>:d miverste:h:n<>:d miverste:h:n<>:d modal morbid moribund na:<>:ch na:h nicht ober oberhalb ohne penibel relaxed rosa s:be:<>in:s<>:t s:be:<>in s:we:ai:<>n:r s:we:i:<>n:r s:we:i:<>n:r schofel schuld se:<>in<>:d sein:<> sein:d sein:d sein:e splendid tabu und verausgab verde:rb vergess verli:oe:<>r verli:oe:<>r verli:e:<>r via we:arde:<>n:<> we:ird:se:<>n:t we:irde:<>n:<> we:urden:<> we:rde:<>n:<> wegen werde:<>n:<> wie zerstieb<>:t zu zur ber<>:gess bern A:uge<>:l Abergla:ube:<> Akrobat Amerika<>:n Aroma<>:t Barbar Bastard Beira:t Chaos:t Ehe Florenz:t<>:i<>:n Geschwister Ind Institu:t Japan Java<>:n Method Monste:<>r Pantomime:<> Seku:nde:<> Standard Thema<>:t divis erkunde:<>n:<> ertra:g fahre:tn:<> fair fas:s:<>e:<>n:<> faszin faszinat fli:ue:<>ge:<>n:<> ge:abe:<>n:<> gemein<>:s<>:a<>:m gi:ue:<>e:<>n:<> he:ube:<>n:<> ko:um:nm:f<>:te:<>n:<> la:ng langsam las:s:<>e:<>n:<> pfe:<>if<>:fe:<>n:<> prohib re:<>it<>:te:<>n:<> rigid rufe:<>n:<> schi:ue:<>be:<>n:<> schlage:<>n:<> schne:<>id:t<>:te:<>n:<> spezif spiele:<>n:<> ste:<>iche:<>n:<> ste:ah:ne:dn:<> st:urze:<>n:<> tausche:<>n:<> therap transport tre:it<>:te:<>n:<> umkleiden:<> vage:<> weise:<> w:ahle:<>n:<> zi:ue:<>h:ge:<>n:<> Albe Lein Tand Ur Aids Anhalt<>:e Ehre<>:n Ende:<> Fachschaft<>:e<>:r Garnison<>:s Gewerbe:s Isotop<>:e<>:n Legat<>:o Pdagoge<>:n Schwan<>:e<>:n Unschuld<>:s Violine:<> anti disziplinar es:s:<>e:<>n:<> graben:<> haupt ideal mes:s:<>e:<>n:<> nach rasch<>:e<>:s<>:t skaten:<> tief<>:s<>:t viel As sein biss gabel halt schlag A A Aids Albe Bad Co.KG. M.d.B. a. ab arab. circa d. da darauf ders. deshalb komb. lfd. lieb lieben m.b.H. od. sec. vorlieb worab whrenddessen z.B. a a<~n> a<~n> a<~n> da i i i infra kontra non non pan para para stief supra supra ba:ck back be:<>i:s<>:s be:<>i<>: be:irst:<> bi:and bi:oe:<>g bi:oe:<>t bi:oe:<>t bi:nd bi:e:<>t bl<>:iei:<>b bl<>:iei:<>b bla:i<>:es blas ble:<>ich ble:<>ich bre:ach bre:och bri:n:cg:h di:ang di:ng doubel dre:osch dre:sch d:arf d:urf drf drf e:is:s:<> e:iss es:s: fa:il:el fa:ing fa:uhr fa:hr fa:hr fahr fas:s: fe:icht fe:cht fli:oe:<>h fli:oe:<>h fli:e:<>h ge:ab ge:ah:n<>:g ge:ib ge:ih:n<>:g ge:b geb geb geh gelt gi:oe:<><>: gle:<>it<>:t gle:<>it<>:t gra:b grab grab h<>:iei:<> ha:i<>:elt ha:iu:e<>:b ha:lt heb h:ang hng jobb ko:amm:<> kre:<>isch kre:<>isch l<>:ies la:is:es: la:iu:ef la:d<>: la:s:s:<> lad las:s: le:<>id:t<>:t le:<>id:t<>:t lern les li:<>eg li:ae:<>g li:e:<>g me:ilk me:olk me:lk m:og:c<>:h mg:c<>:h m:us:s:<> m:us:s:<> ms:s: ms:s: ne:ahm ne:oh:mm ne:hm nehm ns:s: pfe:<>if<>:f pfe:<>if<>:f pr<>:iei:<>s pr<>:iei:<>s que:ill ra:i<>:et rat ri:oe:<>ch ri:oe:<>ch ri:e:<>ch s:<>pri:oe:s:s s<>:ieh sa:ou:<>g sch<>:iei:<>d sch<>:iei:<>d sch<>:iei:<>n sch<>:iei:<>n schi:oe:<>b schi:oe:<>b schi:e:<>b schind schla:i<>:ef schlaf schna:ou:<>b schr<>:iei:<> schr<>:iei: schre:<>i schre:ac:<>k schre:c:<>k se:and<>: se:and<>: si:et:sz:s si:oe:td:t soll soll sp<>:iei:<> sp<>:iei:<> st<>:iei:<>g st<>:iei:<>g ste:ah:n<>:d ste:ah:n<>:d ste:h:n<>:d sto:i<>:e tre:aff:<> tre:at tre:it<>:t tre:ff:<> tu:an:t tu:an tu:n:t tu<>:en<>:d tun:<> tun:e tun:s<>:t tun:t w<>:eis:s:<> wi:us:s:<> wi:us:s:<> wi:s:s:<> wis:s: wiss zi:oe:gh:<> schreib schr<>:iei:<>b schr<>:iei:<>b ag akt re fahre:tn:<> er er ig ig el el eln is isat ifikat ifiz isch isch ik ik ik iker iker iker ikum ikum ikum or<>:e<>:n or or or ismu:es:n ismus ismus ist<>:e<>:n ist ist ier ier ier chen chen <>:e<>:n <> bar bar bar los los los erweise weise weise i:os is is ivum ivum ivum it:ar itr itt<>:e<>:n itt<>:s itt r<>:s r r r r u:r ur<>:e<>:n ur ur heit<>:s heit heit lich lich lich <>:e<>:n<>:s <>:e<>:n <>:e<>:n ung<>:s ung ung io:n ion<>:s ion ion igkeit<>:s igkeit igkeit keit<>:s keit er er er <>:e<>:n <>:s <> <> <>:e<>:n <>:e <>:e <> <> <> <>:s <> <> <>:e <>:s <> <> <>:e <>:s <> <> age<>:n age ant ant :os s abe:il abel abel ive er er er isch isch izitt<>:s izitt ent<>:e<>:n ent ent ent ent enz enz enz <>:e<>:n <> <> <> eur<>:s eur eur orat orat orium orium oriums er er er lich lich ie<>:n ie ie ie in<>:n<>:e<>:n in mig mig mig artig artig haft haft haft tu:m tum<>:s tum haft haft haft ell ell ial ial ial iell iell al al al ell ik ik ik ual ual ual uell ling<>:s ling heit<>:s heit ei ei ei keit<>:s keit sam sam sam schaft<>:s schaft schaft
                                                  er
                                                    er
                                                      erin
                                                        isch <> <> in <> <> <> a a aner aner anerin anisch e in e e ei en er er erin erisch ese esin esisch ianer ianerin ianisch ien ier ierin isch istan land ner ner nerin nisch ant<>:e<>:n ant ant ant eut<>:e<>:n eut eut ler ler ler esk esk isch isch lein lein in<>:n<>:e<>:n in thek<>:s thek thek haltig haltig haltig schaft<>:s schaft schaft ibe:il ibel ibel :ar iv iv iv iv al al al iker iker iker iv iv iv oid ig ig ig er er o isch isch iate:<>r iater iater o anz anz lich lich er er <> eck erlei fach fach mal -er -er ler ler ler chen chen ig ig <> <> el el el ens klssler klssler klssler haftig haftig e<>:n e in<>:n<>:e<>:n in gen gen gen graf<>:e<>:n graf graf gramm gramm graph<>:e<>:n graph graph krat<>:e<>:n krat krat log man<>:e<>:n man mane mete:<>r meter meter naut<>:e<>:n naut naut nom<>:e<>:n nom nom path<>:e<>:n path path phage<>:n phage phage phil phil phil phob phob phob se<>:n se skop<>:n skop skop soph<>:e<>:n soph soph tisch tisch troph troph troph eur<>:s eur eur isch isch end t t sfst-1.7.0/data/SMOR/map.fst000066400000000000000000000373161470213725200154770ustar00rootroot00000000000000% ************************************************************************* % File: stems.fst % Author: Helmut Schmid; IMS, University of Stuttgart % Date: April 2003 % Content: reads the stems from the lexicon files and deletes % certain symbols on the upper and lower layer %************************************************************************** %************************************************************************** % definition of the lexical features which are deleted in the analysis string %************************************************************************** $CAT$ = [] $DELCAT$ = <>:[ \ \ \ \ ] ALPHABET = [\!-\~-] n: e: d: <>:<~n> <>:
                                                          \ % stem types <>:[] \ % prefix suffix marker \ % stem type features <>:[] \ % marker for ge prefix <>: |\ % Herkunft features <>:[ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ] \ % complexity agreement features <>:[] \ % complex lexicon entries <>:[] \ % inflection classes <>:[ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ] \ % disjunctive features ??? <>:[\ \ \ \ \ \ \ \ \ \ ] $ANY$ = .* $ANY2$ = .* ([\!-\~-] ([\!-\~-] | $CAT$)*)? .* % category feature is only preserved to mark komp and deriv stems $MAP1$ = <>:[]* (\ <>:[] $ANY2$ $DELCAT$ |\ <>:[] $ANY2$ $CAT$ |\ <>: $ANY$ $DELCAT$ |\ <>: $ANY$ $DELCAT$ $ANY$ $CAT$ <>: |\ <>: $ANY$ $DELCAT$ $ANY$ $DELCAT$ <>:|\ <>: $ANY$ $DELCAT$ $ANY$ $CAT$ <>:[]) $ANY$ %************************************************************************** % mapping from disjunctive features to disjunctions %************************************************************************** ALPHABET = [\!-\~-]<~n>
                                                            \ \ % stem types \ % category features : \ % prefix suffix marker (not needed by morphology) []:<> \ % stem type features \ % marker for ge prefix |\ % Herkunft features \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ % complexity features \ % complex lexicon entries []:<> \ % inflection classes \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ % disjunctive features :[] \ :[] \ :[] \ :[] \ :[] \ :[] \ :[] \ :[] \ :[] \ :[] \ :[] \ :[] \ :[] \ :[] \ :[] \ :[] \ :[] \ :[] \ :[] \ :[] \ :[] \ :[] \ :[] \ :[] \ :[] \ :[] \ :[] \ :[] \ :[] \ :[] \ :[] \ :[] \ :[] \ :[] \ :[] \ :[] \ :[] \ :[<>] \ :[] \ :[] \ :[] \ :[] \ :[] \ :[] \ % Herkunft features : [] \ : [] \ : [] \ : [] \ : [] \ : [] \ : [] \ : [] \ : [] \ : [] \ : [] \ : [] \ : [] \ : [ ] \ : [] \ :[] \ : [] \ : [] \ : [ ] \ : [] \ : [] \ : [ ] \ : [] \ : [] \ : [] \ : [] \ : [] \ : [] \ : [] \ : [] \ : [] \ :[] \ : [] \ : [] \ : [] \ : [] \ : [] $MAP2$ = .* (e: [lr] []:<>?)? sfst-1.7.0/data/SMOR/phon.fst000066400000000000000000000214561470213725200156640ustar00rootroot00000000000000% ************************************************************************* % File: phon.fst % Author: Helmut Schmid; IMS, University of Stuttgart % Date: April 2003 % Content: two-level rules for German (TWOLC) -- % phonological and orthographic rules -- % converted to S-FST from phon.rules %************************************************************************** %************************************************************************** % Allomorphs % iloyal ==> illoyal % imateriell ==> immateriell % imateriell ==> immateriell %************************************************************************** ALPHABET = [\!-\~-] \
                                                              \ <^UC><^Ax><^pl><^Gen><^Del> \ :[nlmrn] :[dfgklnpst] <~n>:[<>n] $R0$ = (. |\ :n [ac-knoqs-zAC-KNOQS-Z] |\ :l [Ll] |\ :m [BbMmPp] |\ :[rn] [Rr] |\ :d [a-ehijmoqru-xA-EHIJMOQRU-X] |\ :f [Ff] |\ :g [Gg] |\ :k [Kk] |\ :l [Ll] |\ :n [Nn] |\ :p [Pp] |\ :s [Ss] |\ :t [Tt] |\ <~n>:<> [bcdfghjklmnpqrstvwxyz] |\ <~n>:n [AEIOUaeiou]) * %************************************************************************** % Umlaut % Apfel$ ==> pfel % alter$e ==> ltere % Saal$e ==> Sle % Schwabe<^Del>$in ==> Schwbin % Tochter$ ==> Tchter %************************************************************************** ALPHABET = [\!-\~-] \ \ <^UC><^Ax><^pl><^Gen><^Del>
                                                                : \ [aouAOU]:[] a:<> $Cons$ = [bcdfghjklmnpqrstvwxyz] $ConsUp$ = [BCDFGHJKLMNPQRSTVWXYZ] $LC$ = | | | | <^UC> | $Cons$ | $ConsUp$ $R1$ = ($LC$ [aouAOU]<=>[] ([au]:.? $Cons$* ?(|(e($Cons$|<^Del>)))?
                                                                  :)) &\ (([aA]:[]) a <=> <> ($Cons$)) %************************************************************************** % /ss-alternation % (1) obligatorisch nach kurzem Vokal und vor 'e' % Flu~+es ==> Flusses % Fu+es ==> Fues % Zeugnis~+es ==> Zeugnisses %************************************************************************** ALPHABET = [\!-\~-] \ \ <^UC><^Ax><^pl><^Gen><^Del> \ []:s $Bound$ = [] $R2$ = ( <=> s (? :. $Bound$ e)) & \ ((:. ? | s) <=> s $Bound$ e) %************************************************************************** % e-elision after e % Bote+e ==> Bote % leise$er ==> leiser %************************************************************************** ALPHABET = [\!-\~-] \ \ <^UC><^Ax><^pl><^Gen><^Del> \ e:<> $R3$ = e <=> <> ($Bound$ e) %************************************************************************** % optional e-elision with genitive % Tisch+es ==> Tisches, Tischs % Haus+es ==> Hauses % Flu~+es ==> Flusses % Fu+es ==> Fues % Zeugnis~+es ==> Zeugnisses %************************************************************************** $R4$ = ([bcdfghjklmnpqrtuvwy] ? $Bound$) e => <> (s <^Gen>) %************************************************************************** % e-elision before ' % hab+e's ==> hab's % kauf+t's ==> kauft's %************************************************************************** $R5$ = e <=> <> ('s) %************************************************************************** % adjective-el/er e-elision % dunkel<^Ax>+e ==> dunkle % sicher<^Ax>+e ==> sichere, sichre % sicher<^Ax>+em ==> sicherem, sicherm % schwer+e ==> schwere %************************************************************************** $R6$ = e <=> <> (l <^Ax> $Bound$ e) $R7$ = e => <> (r <^Ax> $Bound$ e) % $R7$ = e => <> ((r <^Ax> $Bound$ e) | ([lr] (|)+ [eui])) $R8$ = (er <^Ax> $Bound$) e => <> ([mns]) %************************************************************************** % verb-el/er e-elision % sicher<^Vx>+en ==> sichern % handel<^Vx>+en ==> handeln % sicher<^Vx>+e ==> sichre, sichere % handel<^Vx>+e ==> handle, ?handele % sicher<^Vx>+est ==> sicherst, *sichrest, ?sicherest % handel<^Vx>+est ==> handelst, *handlest, ?handelest %************************************************************************** $R9$ = ([lr] ( | $Bound$)) e <=> <> (n | s?t) ALPHABET = [\!-\~-] \ \ <^UC><^Ax><^pl><^Gen><^Del> \ :<> $R11$ = => <> ([lr] (|$Bound$) [eui]) %************************************************************************** % s-elimination % ras&st ==> (du) rast % feix&st ==> (du) feixt % birs+st ==> (du) birst % gro$st ==> grt %************************************************************************** ALPHABET = [\!-\~-] \ :e\ <^UC><^Ax><^pl><^Gen><^Del> \ s:<> $R12$ = ([xsz] $Bound$) s <=> <> t %************************************************************************** % e-epenthesis % regn&t ==> regnet % find&st ==> findest % bet&st ==> betest % gelieb&t&st ==> geliebtest % gewappn&t&st ==> gewappnetst %************************************************************************** % different to DMOR ALPHABET = [\!-\~-] \ \ <^UC><^Ax><^pl><^Gen><^Del> \ :[e<>] % gewappn&t&st ==> gewappnetst $R13$ = ((((c[hk])|[bdfgmp])n) <=> e) & \ ((:e[dt]) <=> <>) ALPHABET = [\!-\~-] \ \ <^UC><^Ax><^pl><^Gen><^Del> \ :e $R14$ = ([dt]m? | tw ) <=> e %************************************************************************** % Consonant reduction for analysis of old orthography % Schiff=fahrt ==> Schiffahrt, Schifffahrt % Schiff=fracht ==> Schifffracht % voll=laufen ==> vollaufen, volllaufen % Sperr=rad ==> Sperrad, Sperrrad %************************************************************************** ALPHABET = [\!-\~-] \ \ <^UC><^Ax><^pl><^Gen><^Del> \ f:<> $Rf$ = f f => <> ( [fF] [aeiou]) ALPHABET = [\!-\~-] \ \ <^UC><^Ax><^pl><^Gen><^Del> \ t:<> $Rt$ = t t => <> ( [tT] [aeiou]) ALPHABET = [\!-\~-] \ \ <^UC><^Ax><^pl><^Gen><^Del> \ m:<> $Rm$ = m m => <> ( [mM] [aeiou]) ALPHABET = [\!-\~-] \ \ <^UC><^Ax><^pl><^Gen><^Del> \ n:<> $Rn$ = n n => <> ( [nN] [aeiou]) ALPHABET = [\!-\~-] \ \ <^UC><^Ax><^pl><^Gen><^Del> \ l:<> $Rl$ = l l => <> ( [lL] [aeiou]) ALPHABET = [\!-\~-] \ \ <^UC><^Ax><^pl><^Gen><^Del> \ r:<> $Rr$ = r r => <> ( [rR] [aeiou]) $R15$ = ($Rf$ || $Rt$ || $Rm$) || ($Rn$ || $Rl$ || $Rr$) %************************************************************************** % eliminate letters % Virus<^pl>+en ==> Viren % Museum<^pl>+en ==> Museen % Affrikata<^pl>+en ==> Affrikaten %************************************************************************** ALPHABET = [\!-\~-] \ \ <^UC><^Ax><^pl><^Gen><^Del> \ [uio]:<> % eliminate -is/-us/-um/-on/-os $R16$ = [uio] <=> <> ([mns]:. <^pl>) ALPHABET = [\!-\~-] \ \ <^UC><^Ax><^pl><^Gen><^Del> \ [mnsa]:<> $R17$ = [mnsa] <=> <> <^pl> % eliminate e ALPHABET = [\!-\~-] \ \ <^UC><^Ax><^pl><^Gen><^Del> \ e:<> $R18$ = e <=> <> <^Del> %************************************************************************** % Eliminate markers %************************************************************************** ALPHABET = [\!-\~-] <^UC> \ [<^Gen><^Del><^pl><^Ax>]:<> $R19$ = .* %************************************************************************** % up to low %************************************************************************** ALPHABET = [\!-\~-] <^UC> :<> [A-Z]:[a-z] $R20$ = :<> [A-Z] <=> [a-z] %************************************************************************** % low to up %************************************************************************** ALPHABET = [\!-\~-] <^UC>:<> [a-z]:[A-Z] $R21$ = ((<^UC>:<>) [a-z] <=> [A-Z]) & \ !(.* <^UC>:<> .:[a-z] .*) %************************************************************************** % Composition of rules %************************************************************************** $T1$ = $R0$ || $R1$ || $R2$ || $R3$ || $R4$ $T2$ = $R5$ || $R6$ || $R7$ || $R8$ $T3$ = $R9$ || $R11$ || $R12$ $T4$ = $R13$ || $R14$ || $R15$ $T5$ = $R16$ || $R17$ || $R18$ $T6$ = $R19$ || $R20$ || $R21$ $X1$ = $T1$ || $T2$ || $T3$ $X2$ = $T4$ || $T5$ || $T6$ % result transducer $X1$ || $X2$ sfst-1.7.0/data/SMOR/smor.fst000066400000000000000000000176711470213725200157040ustar00rootroot00000000000000%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % File: smor.fst % Author: Helmut Schmid; IMS, Universitaet Stuttgart % Date: April 2003 % Content: main file of the German morphology %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $PHON$ = "" #include "map.fst" % read the morphemes $LEX$ = "lexicon" % add repetitive prefixes $LEX$ = $LEX$ |\ (ur)+ |\ (vor)+ % delete certain symbols on the upper and lower level $LEX$ = $MAP1$ || $LEX$ || $MAP2$ % define a transducer for numeric morphemes #include "NUM.fst" % add the numeric stems to the other morphems $LEX$ = $LEX$ | $Num_Stems$ %************************************************************************** % extraction of sublexica %************************************************************************** ALPHABET = [\!-\~-] <~n>
                                                                    \ % category features \ % stem type features \ % Herkunft features \ % inflection classes \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $ANY$ = .* % symbols appearing before the morpheme class symbol $I$ = [] % Herkunft features $HK$ = [] $NoDef2NULL$ = ($ANY$ | $HK$ | $I$ | :<> |\ [])* % base derivation and compound stems (without derivation suffixes) $I$ = ($I$ | )* $BDKStems$ = $LEX$ || ($I$ [] $ANY$) $BaseStems$ = $BDKStems$ || ($I$ $ANY$) % prefix morphems $PrefStems$ = $LEX$ || ($I$ $ANY$) $VPrefStems$ = $PrefStems$ || ($I$ $ANY$ $ANY$) % derivation suffixes which combine with simplex stems $SimplexSuffStems$ = $LEX$ || ($I$ :<> $ANY$) % derivation suffixes which combine with suffixed stems $SuffDerivSuffStems$ = $LEX$ || ($I$ :<> $ANY$) % derivation suffixes which combine with prefixed stems $PrefDerivSuffStems$ = $LEX$ || ($I$ :<> $ANY$) % derivation suffixes which combine with a number and a simplex stem $QuantSuffStems$ = $LEX$ || (:<> $I$ :<> $ANY$) #include "deko.fst" #include "flexion.fst" #include "defaults.fst" %************************************************************************** % derivation and composition %************************************************************************** % derivation suffixes to be added to simplex stems $Suffs1$ = ($SimplexSuffStems$ $SuffDerivSuffStems$*)? % derivation suffixes to be added to prefixed stems $Suffs2$ = ($PrefDerivSuffStems$ $SuffDerivSuffStems$*)? % suffixes for "Dreifarbigkeit" $QSuffs$ = $QuantSuffStems$ $SuffDerivSuffStems$* % dreistndig, 3stndig, 3-stndig, Mehrfarbigkeit $Sx$ = $Quant$ ($BDKStems$ $QSuffs$ || $SUFFFILTER$) $S0$ = $BDKStems$ $Suffs1$ || $SUFFFILTER$ $P1$ = $PrefStems$ $S0$ || $PREFFILTER$ $S1$ = $P1$ $Suffs2$ || $SUFFFILTER$ $TMP$ = $S0$ | $S1$ | $Sx$ $TMP$ = $TMP$+ || $KOMPOSFILTER$ %************************************************************************** % add inflection and filter out incorrect combinations of stems and infl. %************************************************************************** $ANY$ = [\!-\~- <~n>
                                                                      \ ]* $BASE$ = $TMP$ $FLEXION$ || $ANY$ $FLEXFILTER$ || $INFIXFILTER$ #include "FIX.fst" #include "PRO.fst" $BASE$ = $Fix_Stems$ | $Pro_Stems$ | $BASE$ $BASE$ = $BASE$ || $UPLOW$ %************************************************************************** % application of phonological rules %************************************************************************** $BASE$ = <>: $BASE$ <>: || $PHON$ %************************************************************************** % whole word in upper case %************************************************************************** $TMP$ = ([a-z-]:[A-Z-] | [\!-`\{-] | {}:{SS})* $TMP$ = :<>? $TMP$ [a-z-]:[A-Z-] $TMP$ $UC$ = :<> ($BASE$ || $TMP$) %************************************************************************** % capitalisation %************************************************************************** $TMP$ = :<>? [a-z-]:[A-Z-] [\!-\~-]* $CAP$ = :<> ($BASE$ || $TMP$) %************************************************************************** % hyphenated words %************************************************************************** $Pref$ = \{:<> [\!-\,\.-]+ \}:<> \- $TMP$ = :<>? (\- [A-Z-]:[a-z-])? [\!-\~-]* $BASE$ = \ (\-? $Pref$* \ $BASE$ || $TMP$ \ ) | $Pref$+ <+TRUNC>:<> $CAP$ | $UC$ | \ $BASE$ sfst-1.7.0/data/XMOR/000077500000000000000000000000001470213725200141775ustar00rootroot00000000000000sfst-1.7.0/data/XMOR/FILES000066400000000000000000000013771470213725200147740ustar00rootroot00000000000000Source code files of the XMOR morphology morph.fst main file symbols.fst definition of the single- and multi-character symbols (tags) map1.fst mapping of the analysis symbols of the lexicon entries map2.fst mapping of the surface symbols of the lexicon entries defaultstems.fst generation of default compounding and derivational stems from base stems suffixfilter.fst filter checking agreement of the suffix features prefixfilter.fst filter checking agreement of the prefix features compoundfilter.fst filter checking the structure of compounds inflection.fst definition of the inflectional endings inflectionfilter.fst filter checking agreement of the inflection feature phon.fst morpho-phonological rules lexicon contains the list of lexicon entries sfst-1.7.0/data/XMOR/HOWTO000066400000000000000000000044111470213725200150220ustar00rootroot00000000000000 How to develop a new morphology =============================== 1. Get acquainted with XMOR - Read the SFST manual - Read the article on the German SMOR morphology - Look at the XMOR files and try to understand how XMOR works 2. Do the linguistic work, i.e. a) Define the set of word classes b) Define the inflectional classes c) What are the derivational prefixes and their features? d) What are the derivational suffixes and their features? e) Which features will be used in the morphological analyses? 3. Modify symbols.fst to include your word classes, inflectional classes and morphosyntactic features 4. Write lexicon entries and store them in the file "lexicon". Add entries for derivational prefixes and suffixes. The Perl script morph-match.perl can be used to do the necessary alignment of lemma and surface form automatically. Try for instance: echo "mice\tmouse\tN base native NounPl" | ./morph-match.perl 5. Define the different inflectional paradigms in "inflection.fst". 6. Write the morpho-phonological rules which transform the morpheme sequences to the correct surface strings and store them in "phon.fst". 6. Compile and debug the morphology. Debugging ========= If the result is not what you have expected, you can use the following tricks: Check whether the compiler produces warnings of the form "assignment of empty transducer to:". If so, check whether it is okay that the transducer generated at this point is empty. You will find the respective source code line at the beginning of the line with the compiler warning. In order to check an intermediate result of the compilation, which is stored in $X$, you can proceed as follows: 1. Insert the command $X$ >> "ValueofX.a" in the source code after the commands which compute $X$ 2. Compile 3. Examine the file "ValueofX.a": You can print the transducer with the command fst-print ValueofX.a You can generate with the transducer using the command fst-generate ValueofX.a You can use the command fst-mor ValueofX.a to check interactively how the transducer maps the input strings. 4. Often it is also useful to reduce the lexicon to the smallest number of entries needed to test something. (But don't forget to make a backup of the full lexicon first!) sfst-1.7.0/data/XMOR/Makefile000066400000000000000000000015071470213725200156420ustar00rootroot00000000000000 SOURCES = morph.fst symbols.fst map1.fst map2.fst defaultstems.fst \ suffixfilter.fst prefixfilter.fst compoundfilter.fst inflection.fst \ inflectionfilter.fst phon.fst .PHONY: targets targets: morph.a morph.a: phon.a map1.a map2.a prefixfilter.a suffixfilter.a compoundfilter.a \ inflection.a inflectionfilter.a lexicon %.a: %.fst fst-compiler $< $@ %.ca: %.a fst-compact $< $@ archive: gtar -zcf VERSION-`date '+%y%m%d'`.tar.gz Makefile lexicon *.fst clean: -rm *.a *~ Makefile.bak 2>&- > /dev/null Makefile: *.fst -makedepend -Y -o.a $(SOURCES) 2>/dev/null # DO NOT DELETE morph.a: symbols.fst defaultstems.fst map1.a: symbols.fst map2.a: symbols.fst suffixfilter.a: symbols.fst prefixfilter.a: symbols.fst compoundfilter.a: symbols.fst inflection.a: symbols.fst inflectionfilter.a: symbols.fst phon.a: symbols.fst sfst-1.7.0/data/XMOR/README000066400000000000000000000006761470213725200150700ustar00rootroot00000000000000 The morphology is compiled by running make (GNU version) After compiling, you are ready to analyze words: > fst-mor morph.a reading automaton... finished. analyse> mouse mouse analyse> mice mouse analyse> houses house analyse> mouses no result for mouses analyse> unstrikable unstrikeable analyse> redder red analyse> generate> red reddest generate> q sfst-1.7.0/data/XMOR/compoundfilter.fst000066400000000000000000000013601470213725200177470ustar00rootroot00000000000000%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % File: compoundfilter.fst % Author: Helmut Schmid; IMS, University of Stuttgart % Content: enforcement of compounding constraints % Modified: Fri Jun 17 14:14:08 2005 (schmid) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% #include "symbols.fst" % Compounding filter % Compounds are restricted to nouns and adjectives $org$ = [#Origin#]:<> % symbols occurring in non-compounds $T$ = [#Letter# #EntryType#] | [#WordClass#]:<> | $org$ % expression matching non-compounds $TS$ = $T$* % expression matching compounds $TC$ = ($T$ | :<>)* ($TS$ [] |\ $TC$ []) \ :<> $org$ [#InflClass#] sfst-1.7.0/data/XMOR/defaultstems.fst000066400000000000000000000017101470213725200174140ustar00rootroot00000000000000%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % File: defaultstems.fst % Author: Helmut Schmid; IMS, Universitaet Stuttgart % Content: generation of derivational and compounding stems % from base stems by means of default rules % Modified: Fri Jun 17 16:03:22 2005 (schmid) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Default derivation and compounding stems are not generated for % lexicon entries which start with ALPHABET = [#Letter#] % Rule which turns a adjectival base stem into a compounding stems % The inflection feature is deleted; the morpheme itself is unchanged. $DefCompAdj$ = $LEX$ ||\ : .* : [#Origin#] [#InflClass#]:<> $DefDerivVerb$ = $LEX$ ||\ : .* : [#Origin#] [#InflClass#]:<> % Add the new stems to the set of stems $BDKStem$ = $BDKStem$ | $DefCompAdj$ | $DefDerivVerb$ sfst-1.7.0/data/XMOR/inflection.fst000066400000000000000000000026721470213725200170560ustar00rootroot00000000000000%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % File: inflection.fst % Author: Helmut Schmid; IMS, Universitaet Stuttgart % Content: definition of inflectional classes % Modified: Fri Jun 17 16:04:22 2005 (schmid) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % definition of the symbol classes #include "symbols.fst" %%% definition of the inflectional classes %%%%%%%%%%%%%%%%%%%%%%%%%%%% $AdjReg$ = {}:{} |\ {}:{er} |\ {}:{est} $AdvReg$ = <> $NounReg$ = {}:{} |\ {}:{s} $NounSg$ = :<> $NounPl$ = :<> $VerbReg$ = {<3>}:{s} |\ {[<1><2>]}:{} |\ {[<1><2><3>]}:{} |\ {[][<1><2><3>]}:{ed} |\ {}:{ed} |\ {}:{ing} % adding a tag for the inflectional class $LCInfl$ = <>: $AdjReg$ |\ <>: $AdvReg$ |\ <>: $NounReg$ |\ <>: $NounSg$ |\ <>: $NounPl$ |\ <>: $VerbReg$ % no capitalized or fixed word forms yet % $UCInfl$ = ... % $FixInfl$ = ... % The capitalization of the resulting word form is indicated by % the three feature tags (lower case the first character), % (capitalize the first character) and (do nothing) $LCInfl$ = $LCInfl$ <>: % $UCInfl$ = $UCInfl$ <>: % $FixInfl$ = $FixInfl$ <>: $LCInfl$ % | $UCInfl$ | $FixInfl$ sfst-1.7.0/data/XMOR/inflectionfilter.fst000066400000000000000000000011401470213725200202510ustar00rootroot00000000000000%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % File: inflectionfilter.fst % Author: Helmut Schmid; IMS, Universitaet Stuttgart % Content: definition of the inflectional filter % Modified: Fri Jun 17 14:29:02 2005 (schmid) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % definition of the symbol classes #include "symbols.fst" % The following inflection filter ensures that the base stems % are combined with the correct inflectional endings ALPHABET = [#Letter# #EntryType# #WordClass#] $=1$ = [#InflClass#]:<> .* $=1$ $=1$ .* [#Cap#] sfst-1.7.0/data/XMOR/lexicon000066400000000000000000000007411470213725200155650ustar00rootroot00000000000000dark red easy house story wish mouse mo:iu:<>s:ce hike strike un able sfst-1.7.0/data/XMOR/map1.fst000066400000000000000000000012071470213725200155530ustar00rootroot00000000000000%************************************************************************** % File: map1.fst % Author: Helmut Schmid; IMS, University of Stuttgart % Content: deletes tags in the analysis string % Modified: Thu Jun 23 10:22:28 2005 (schmid) %************************************************************************** % definition of the symbol classes #include "symbols.fst" % delete unwanted symbols in the analysis ALPHABET = [#Letter# #WordClass#] \ <>:[#StemType# #Origin-cl# #InflClass#] <>:? <>: .* |\ <>: <>:[#Complex#] <>:[#WordClass#] .* :<> |\ <>: .* <>:[#WordClass#] .* :<> sfst-1.7.0/data/XMOR/map2.fst000066400000000000000000000014011470213725200155500ustar00rootroot00000000000000%************************************************************************** % File: map2.fst % Author: Helmut Schmid; IMS, University of Stuttgart % Content: deletes tags on the surface string % Modified: Fri Jun 17 14:34:43 2005 (schmid) %************************************************************************** % definition of the symbol classes #include "symbols.fst" % delete unwanted symbols on the "surface" % and map the feature to the more specific features % and ALPHABET = [#Letter# #WordClass# #StemType# #Origin# #Complex# #InflClass#] \ :[#classic#] [#Affix#] .* |\ ? (: .* |\ : .* |\ : .* ) .* sfst-1.7.0/data/XMOR/morph-match.perl000077500000000000000000000055341470213725200173140ustar00rootroot00000000000000#!/usr/bin/perl # Input format: # enwraps enwrap V 3sg PRES use Getopt::Std; getopts('uh'); use Encode; if (defined $opt_h) { print " Usage: morph-match.perl [file] OPTIONS: -u use UTF8 character encoding -h print usage information The input file contains lines with three columns such as write wrote V past house houses N pl The output is wro:ite houses:<> "; exit(1); } my $N; while (<>) { $_ = decode("utf-8",$_) if defined $opt_u; print STDERR "\r",$N if (++$N % 10 == 0); chomp; my($w,$l,@f) = split; print ""; output(match($l,$w)); foreach $l (@f) { output("<$l>"); } print "\n"; } sub output { my $_ = shift; $_ = encode("utf-8",$_) if defined $opt_u; print; } ###################################################################### # alignment functions sub match { my $lemma = shift; my $word = shift; my @w = mysplit($word); my @l = mysplit($lemma); unshift(@w, undef); unshift(@l, undef); my($i,$k,$s,@score,@action,$result); $score[0][0] = 0.0; for( $i=0; $i<=$#w; $i++ ) { for( $k=0; $k<=$#l; $k++ ) { next if $i==0 && $k == 0; $score[$i][$k] = 10000000000000; # matching $s = $score[$i-1][$k-1] + cost($w[$i], $l[$k]); if ($score[$i][$k] >= $s) { $score[$i][$k] = $s; $action[$i][$k] = "m"; } # delete character in word $s = $score[$i-1][$k] + cost($w[$i], ''); if ($score[$i][$k] >= $s) { $score[$i][$k] = $s; $action[$i][$k] = "w"; } # delete character in lemma $s = $score[$i][$k-1] + cost('', $l[$k]); if ($score[$i][$k] >= $s) { $score[$i][$k] = $s; $action[$i][$k] = "l"; } } } $i = $#w; $k = $#l; while (defined $action[$i][$k]) { if ($action[$i][$k] eq "m") { if ($w[$i] eq $l[$k]) { $result = quote($w[$i]).$result; } else { $result = quote($l[$k]).":".quote($w[$i]).$result; } $i--; $k--; } elsif ($action[$i][$k] eq "w") { $result = "<>:".quote($w[$i]).$result; $i--; } else { $result = quote($l[$k]).":<>".$result; $k--; } } return $result; } sub mysplit { my $s = shift; $s =~ s/(<[A-za-z0-9-]*>|.)/$1 /g; $s =~ s/ $//; return split(/ /,$s); } sub quote { my $s = shift; $s =~ s/^([\!\"\'\(\)\,\-\.\:\?\~\<])$/\\$1/; return $s; } sub cost { my($w,$l) = @_; return 1e30 unless (defined $w && defined $l); return 0 if ($w eq $l); return 0.2 if (lc($w) eq lc($l)); return 0.5 if ($w eq '' && $l eq 'a'); return 0.5 if ($w eq '' && $l eq 'o'); return 0.5 if ($w eq '' && $l eq 'u'); return 0.5 if ($w eq 's' && $l eq ''); return 0.7 if ($w eq 'c' && $l eq 's'); return 0.7 if ($w eq 's' && $l eq 'c'); return 0.7 if ($w eq ''); return 0.8 if ($l eq ''); return 0.95 if ($w =~ /[aeiou]/ && $l =~ /[aeiou]/); return 1; } sfst-1.7.0/data/XMOR/morph.fst000066400000000000000000000043371470213725200160510ustar00rootroot00000000000000%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % File: morph.fst % Author: Helmut Schmid; IMS, Universitaet Stuttgart % Content: main file of the morphology % Modified: Thu Jun 23 10:23:15 2005 (schmid) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % definition of the symbol classes #include "symbols.fst" % read the morphemes $LEX$ = "lexicon" % apply the transducers which deletes unwanted symbols in the analysis % string (map1) and the surface string (map2) of the lexicon entries $LEX$ = "" || $LEX$ || "" % creation of sublexica for the different types of entries % stems $BDKStem$ = $LEX$ || :<>? [#BDKStem#] [#AllSym#]* % prefixes $Prefix$ = $LEX$ || [#AllSym#]* % suffixes combining with simplex stems $SimplexSuffix$ = $LEX$ || :<> [#AllSym#]* % suffixes combining with suffix derivation stems $SuffDerivSuffix$ = $LEX$ || :<> [#AllSym#]* % suffixes combining with prefix derivation stems $PrefDerivSuffix$ = $LEX$ || :<> [#AllSym#]* % generation of default derivational and compounding stems #include "defaultstems.fst" %%% Derivation and Composition %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % sequence of derivational suffixes to be added to simplex stems $SimplexSuffixes$ = ($SimplexSuffix$ $SuffDerivSuffix$*)? % sequence of derivational suffixes to be added to prefixed stems $PrefDerivSuffixes$ = ($PrefDerivSuffix$ $SuffDerivSuffix$*)? % suffix derivation with a simplex base $SuffixFilter$ = "" $S0$ = $BDKStem$ $SimplexSuffixes$ || $SuffixFilter$ % prefix derivation $P1$ = $Prefix$ $S0$ || "" % suffix derivation with a "prefderiv" base $S1$ = $P1$ $PrefDerivSuffixes$ || $SuffixFilter$ % combination of the different derivations $Morph$ = $S0$ | $S1$ %%% Compounding %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % $Morph$ = $Morph$* $Morph$ || "" $Morph$ = $Morph$ || "" %%% Inflection %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $Morph$ = $Morph$ "" || "" %%% Morpho-Phonological Rules %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $Morph$ || "" sfst-1.7.0/data/XMOR/phon.fst000066400000000000000000000033431470213725200156640ustar00rootroot00000000000000%************************************************************************** % File: phon.fst % Author: Helmut Schmid; IMS, University of Stuttgart % Content: morphophonological rules % Modified: Mon Nov 6 09:23:31 2006 (schmid) %************************************************************************** #include "symbols.fst" %%% adjective rules %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % easy+er -> easier % easy+est -> easiest % late+er -> later % red -> redder ALPHABET = [#Letter# #EntryType# #WordClass# #Cap#] \ y:i e:<> : $C$ = [] $T$ = ([hwxaioue] $C$) e <=> <> (r | st) &\ [#Cons#] y <=> i ($C$ e(r|st)) &\ ([#Cons#][#vowel#][#cons#]) <=> (e(r|st)) ALPHABET = [#Letter# #EntryType# #WordClass# #Cap#] #=1# = #cons# $X$ = [#=1#] <>: :[#=1#] $Rule1$ = $T$ || (.* $X$)* .* %%% noun rules %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % story -> stories % wish -> wishes (also verbs) ALPHABET = [#Letter# #EntryType# #WordClass# #Cap#] $T$ = {y}:{ie} ^-> ([#cons#] __ [] s) $Rule2$ = $T$ || <>:e ^-> (([szx]|[cs]h) __ [] s) %%% verb rules %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % delete -> deleting ALPHABET = [#Letter# #EntryType# #WordClass# #Cap#] e:<> y:i $Rule3$ = e <=> <> ( (ing|ed)) &\ [#cons#] y <=> i ( ed) %%% capitalisation %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ALPHABET = [#Letter#] [#WordClass#]:<> $T$ = .* \ ([#EntryType#]:<> ([#LETTER#]:[#letter#] | [#letter#]) .*)* \ [#Cap#] $Capitalisation$ = $T$ || (\ ([#LETTER#]:[#letter#] | [#letter#]) .* :<> |\ ([#letter#]:[#LETTER#] | [#LETTER#]) .* :<> |\ .* :<>) $Rule1$ || $Rule2$ || $Rule3$ || $Capitalisation$ sfst-1.7.0/data/XMOR/prefixfilter.fst000066400000000000000000000012051470213725200174160ustar00rootroot00000000000000%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % File: prefixfilter.fst % Author: Helmut Schmid; IMS, University of Stuttgart % Content: enforcement of derivational constraints % Modified: Wed Jun 22 17:04:56 2005 (schmid) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% #include "symbols.fst" % Check agreement of the word class and origin features % Delete the agreement features of the prefix ALPHABET = [#Letter#] #=wc# = #WordClass# #=orig# = #Origin# .* \ [#=wc#]:<> [#=orig#]:<> [#BDKStem#] .* [#=wc#] [#StemType#] [#=orig#] \ [#InflClass#]? sfst-1.7.0/data/XMOR/suffixfilter.fst000066400000000000000000000025161470213725200174330ustar00rootroot00000000000000%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % File: suffixfilter.fst % Author: Helmut Schmid; IMS, University of Stuttgart % Content: enforcement of derivational constraints % Modified: Fri Jun 17 16:31:36 2005 (schmid) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% #include "symbols.fst" % Definition of an expression which matches either a simplex word form % or the features of the last morpheme of a complex word form % expression matching prefixes $C1$ = [#Letter# #BDKStem# ] % expression matching the last morpheme and its agreement features $C2$ = [#Letter# #AgrFeat#] $Tail$ = $C1$* $C2$* [#InflClass#]? %%% Feature Checking %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % The agreement features are deleted $=1$ = [#WordClass#]:<> $=2$ = [#StemType#]:<> $=3$ = [#Origin#]:<> $T$ = $=1$ $=2$ $=3$ $=1$ $=2$ $=3$ ALPHABET = [#Letter# #BDKStem#] $Filter$ = .* (.* $T$)* $Tail$ %%% Phonological Rules %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % morpho-phonological rules accompanying derivational processes could % be added here ALPHABET = [#AllSym#] e:<> % write+able => writable $PhonRules$ = e <=> <> ( a) %%% Resulting Transducer %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $Filter$ || $PhonRules$ sfst-1.7.0/data/XMOR/symbols.fst000066400000000000000000000056731470213725200164200ustar00rootroot00000000000000%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % File: symbols.fst % Author: Helmut Schmid; IMS, Universitaet Stuttgart % Content: definition of symbol classes % Modified: Fri Mar 24 10:10:07 2006 (schmid) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % All symbols used by the morphology should be defined here %%% Single Character Symbols %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % lower case consonants #cons# = bcdfghjklmnpqrstvwxyz % upper case consonants #CONS# = BCDFGHJKLMNPQRSTVWXYZ % all consonants #Cons# = #cons# #CONS# % lower case vowels #vowel# = aeiou % upper case vowels #VOWEL# = AEIOU % all vowels #Vowel# = #vowel# #VOWEL# % lower case letters #letter# = #cons# #vowel# % upper case letters #LETTER# = #CONS# #VOWEL# % all letters #Letter# = #Cons# #Vowel# %%% Lexicon Entry Markers %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % affix type features #Affix# = % stem type features (internally used) #BDKStem# = % all stem types including the general stem feature % used in the lexicon #EntryType# = #BDKStem# #Affix# %%% Agreement Features %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % word class features #WordClass# = % stem type feature #StemType# = % classic origin features #classic# = % all origin features #Origin# = #classic# % origin features including the internally used feature % which represents the disjunction stored in #classic# #Origin-cl# = #Origin# % complexity features #Complex# = % inflection class features #InflClass# = % all agreement features #AgrFeat# = #WordClass# #StemType# #Origin-cl# % all agreement features + inflection class features #AgrFeatInfl# = #AgrFeat# #InflClass# %%% Analysis Features %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % number feature #Number# = % gender feature #Gender# = % case feature #Case# = % Person Feature #Person# = <1><2><3> % degree feature #Degree# = % verbal features #VerbFeat# = % affix markers #AFF# = % Morphosyntactic Features #MorphSyn# = #Number# #Gender# #Case# #Person#\ #Degree# #VerbFeat# #AFF# %%% Trigger Features %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % capitalisation feature: lower case, capitalized or fixed #Cap# = % Features used to mark the boundaries of morphemes and inflection #Boundary# = % all triggers % marks lexicon entries without default stems #Trigger# = #Cap# #Boundary# %%% General Symbol Classes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% #Tag# = #EntryType# #AgrFeatInfl# #MorphSyn# #Trigger# #AllSym# = #Letter# #Tag# sfst-1.7.0/data/easy/000077500000000000000000000000001470213725200143535ustar00rootroot00000000000000sfst-1.7.0/data/easy/README000066400000000000000000000012371470213725200152360ustar00rootroot00000000000000Simple transducer example Compilation >>> fst-compiler easy.fst easy.a Test of the interactive analysis tool >>> fst-mor easy.a reading automaton... finished. analyse> easiest easy analyse> latest late analyse> late late // entering an empty line switches to generation mode analyse> generate> late late generate> q Test of the batch-mode analysis tool echo easier| fst-infl easy.a reading automaton... finished. > easier easy Test of the second batch mode analysis tool (usually faster) >>> fst-compact easy.a easy.ca >>> echo later| fst-infl2 easy.ca reading automaton... finished. > later late sfst-1.7.0/data/easy/adj000066400000000000000000000000471470213725200150350ustar00rootroot00000000000000easy late early happy white black dark sfst-1.7.0/data/easy/easy.fst000066400000000000000000000017271470213725200160410ustar00rootroot00000000000000% Define the set of valid symbol pairs for the two-level rules. % The symbol # is used to mark the boundary between the stem and % the inflectional suffix. It is deleted here. ALPHABET = [A-Za-z] y:i [e\#]:<> % Read the lexical items from a separate file % each line of which contains a form like "dark" $WORDS$ = "adj" % Define a rule which replaces y with i % if a morpheme boundary and an e follows % easy#er -> easier $R1$ = y<=>i (\#:<> e) % Define a rule which eliminates e before "#e" % late#er -> later $R2$ = e<=><> (\#:<> e) % Compute the intersection of the two rule transducers $R$ = $R1$ & $R2$ % Define a transducer for the inflectional endings $INFL$ = :<> (:<> | :{er} | :{est}) % Concatenate the lexical forms and the inflectional endings and % put a morpheme boundary in between which is not printed in the analysis $S$ = $WORDS$ <>:\# $INFL$ % Apply the two level rules % The result transducer is stored in the output file $S$ || $R$ sfst-1.7.0/doc/000077500000000000000000000000001470213725200132465ustar00rootroot00000000000000sfst-1.7.0/doc/Makefile000066400000000000000000000002301470213725200147010ustar00rootroot00000000000000default: pdf clean all: clean pdf clean pdf: clean SFST-Manual.pdf SFST-Tutorial.pdf %.pdf: %.tex pdflatex $< clean: rm -f *.log *.aux *.bbl *.dvi sfst-1.7.0/doc/SFST-Manual.pdf000066400000000000000000006617461470213725200157570ustar00rootroot00000000000000%PDF-1.5 % 3 0 obj << /Length 1806 /Filter /FlateDecode >> stream xڭˎ60zJDUAӠI n/M\aRvzg8CIh"3y?|26II&7&͊H&Dfw{n EUM`Tݯ@o$,E2*d ʼ"ҟul"`;7 6aBl´*#;|76B2&,M, "͠{L"T{W=i D֚ni$(WVw1Q oGP leYjp D *fPckH4礿'`R ;IDQ\1d&Iv[øwz:.妊xٷX 0T?iMk-EЃ티qcP7!@jK{3ϾkM}wZ&"ǭ?Ѣ 4&R'y*$X9{W;DB@q P)g>dm!*eJFfS¦iQ:N&EF]ARU2^@WSOGՎQ{B`02f:}Ov̷oWﭱDVUel\b /;".lr j$b% r *iFĨPRBvܣW3X$]CQ)HHo3,Ͳ(9[],JsiePl9$ȃ#L]! q37++7)eO떞>dJ9M{fa9#O{C6gC̯K-|x 'rxxzw4KQE bQbA7FIjD]*D M7NAđ*(q,)W֎&8*(#&C[3")eD Q*78N;X]$L3<*cTPGPUq ykxj2 dwf‰_8щq> stream xڭَ]_M=P@ Dypww wmHuWBJonnLDG7Y8S73u$xMT<]}62q*o*Emʸ1=N@ttt4^X)"FZ fPC 6Yat>]Z{,9VU޺pr0_:KZp=o7 JKA3,I$$~ĎQhvMGEFd|,u$G9G!e44YihڙsKG"FEUPac99ن 6/DemJBn326,@o:j@͚0B;ęm$HfDu 4iH BK5zc[,B*ԡݞoj^JT1z+k-ŅM!^!%AP3ѭEc=g7Dn-p֠| S^;DN$VΉA3o2D\\H~Ɩ9CXb>w\ jI} rߟ!\ɷ%2l&/%c݀ XZ@8|di공K~\IEEuKD:<\- &[aPV@7!{u9eijœǦBLۮ:OUG` f"c=T[b-`"Wz[4T. PQ%Ttl`ЮzR%) x"&O_V_uaJlQ51/\o%00^(D:RE"&WNLY7k7*)^$8q,uTA_䨔^PŸ'Rq PMgy 2O5˟15 HVgќD{/xP9B!*/8 lI/\KY+ [WOaϵqW;c JT PGP|D´J9qlN6*ۑP;I};]6qװ¥Yb-y?U3!+T*X&ѹk;lĖ1uA9E'EB!`D 8t8xX=z uC=u4g-$9AZ'šEJ`L?y\6h۳79K =Ѩ_20cS J  HX$Vj&qP~)LpZC}Δg"/?R3}qsoN?_gA7Gׄp⃤n{Wg endstream endobj 19 0 obj << /Length 2030 /Filter /FlateDecode >> stream xڝX6wEJAR C, %Wl΃%-b!]]*2~Gi%|sޭnވR8a-ZADŽnN#kk O4 T_mw杘Iϲ,*b?%MDFTT|бqLz8i]$ uzy[-QqPj#8bL3z#$uMzzߒ i}@|;6u=Pu26vK>Y hpGc?!J#5YYR6.%Npj ՀMqaZJ6%eIJ&evvvh<Rg..#tS!TTA[Rڽ62Q#͠w+ZpPBAe=v*dWWa㊤{{vϤ#= 2.lX4Fj.3TqCxzPGÌfvB.'f,yDt(r=,&$NqKހu{e:_(LDXV͋XoR6̹ς>[<-}4 nfJhO4<;N(@5#ᆚ N8/IK"HoԿt[i%f>ߚ5_81e3'@H/ eiGDyUFe4Ʀ3g+(п ^P1>v S(9e(EH|(9It2?eeI4?+X!QM/RKz#(H1( rb}Pb˰( t){PfƘvrV=xNav6hEXZ\r6y͆T=HPdPġ731@򵁺B23f0*\r}a?QūMsTB*w|(1hxJa#`>HMk w0us+=a{P-)w'[RPGgK@|BYR+_%s>3QȚA]djvyJt;\Nʋ_Fz endstream endobj 23 0 obj << /Length 2340 /Filter /FlateDecode >> stream xZm~(81;eHow@ks:ؖ!ɛܿE/)$mJ25nL0Nl8F9-֯SyGLB@H6OHwE\ߍr_yqs:g}F9$WmRҊ)5wܒ̟(:"J@O̤I9oa9]$35,3T-5T(]{g@»xq>m>\ق\]9cH ]0;G0wA7I"qIr(h^{Y8M*c%%J Ic9CD7I"H#<ƌU,>|v<3 _ɫR: r-Oo&v@[ o'M @ ?^¦X<eZ}a!nE~mDHa9"n`p:{ʰ9ڻ5HD!O)a1`HV EJOq_: ݒGnq%.\ߺ=jO"ͣi9 yZzozt 2=L{hp7u7MmUm}856GК$oF&.ghA.;I]y~ibV];Wdnuurү][YNQFj0 E?R3fB%I^8Ű f_>iMfCJCs|3TiY钚I63 ,XZB6j{c<}Fg:_V ַu=wOy7UCO;l+< 8޶k?BR endstream endobj 29 0 obj << /Length 2747 /Filter /FlateDecode >> stream xZݏ۸߿yï6$(zE-ZVk$9CΈaZM/-p7ꧫoy*W7 J"[hWWYxo` D)H݈_۬)vs|Hezߗ}]24p:ŊRb:=nl_/W*UIsMUlo(Q[tP0s#B0@"phD B` Iz$=DFӁ4ʉTf$n LDMDxʻAED&t$ℒ1)X"73Dx38hE P񐵩a~qn"%D4OkV!ij^A!m(}iDiFLjNV-ci> jB_AϏ }yGqH1!e24_VEnTϿ;w6̼^&?ۼKauP~S-i)}>d}F3jHКbw3L 6܏_zSg_vM~,AtAK`)K޽}wU ܶOMn`tv3;Zw|+8fIؒ̓SY_Pś.Ќxl F,48Ij? <o' {Gw,.qSTKVQ Ҡ6>"@;#;B"amW}qKiԅ (;пF6@q&G = ;Ÿ8tH\y䪛F{cN$΀BF[ [ ua4Wb6iD :EW gVU~ K(6IEFﳢ)a}.] ee1Q-+,a(6$˕鱴_D/vu 1(/г y^Pyk9rSG5pi]L0_]k=)iBޭScu(l/fO˖d`iqz7~,nxBƇCq07㝟wi"/bZ]ۊeSKƻC d5-oHPJ;X1d1ām *"QHۣ=tI0C,ޭ(Z#kf(Ղn@#Ġitx84t1foZ3ZdA@|nc\OzTzkAޔu.] MPsVk mN sB;\vDͺ`%jXq[SC} FT+d3YJ3ط!tC 9y h4F($5 .wM|DR^|,\{`@i3~:#Y3)&xˁ^tMp ;hڴ rn?G9(9z?j!~2 RK?|i9#I|P2Z: !v[Dk- ޥ8(hQ ഒBZG6 [yTx˃{EOk;oc{mbb#9y8=0u!L>1 Ό- Q"?{M=B [dt\G?1 :B $Uq1 )cՀim{2B:YML'd~(TGPۊf9)Tz7NO L-)ȦLXW'8-aإƠeh@FeŲZp1U=Ӹ6,[}2kA+XKծ2C;&ߗE|ʢ5Wwp_Ug!S1|`r$>[{iB.ItJur82@ݶ٤obV I[`KwCq Li\O6@0+yS.jW!>laPWWM*f~:"B{G(!TZ|ռ1@vdB endstream endobj 33 0 obj << /Length 3221 /Filter /FlateDecode >> stream xڽZێ}߯=FF+^DJA x@`%eQkfz`THҜ㧦Y$N*WWo޾7ER(6W7f|jm^Ug?\aKno~ozӋzzCcʊD%ϷUoƮwCӓQx n]5}} -tDkqRV䥴]FJ6v>]$u]eJt+4HvG]}}{_Xv-~:^0Z̯_oߋtv,Ŕ0D.?FDyV`-$ѠěA_a&Y¹T'2ӛr^¾&7~#)4͇7^ %"+42Ot^ء4ɹ_'ߚ~G' pean%})|v8^c_MT:) NщЈdШ v ԃ&iMs?]U1VvY:鳥 R(E ޴XV}dy",<]`&{k8'0<vZ[-~u0ݛ[ϯ~Vk#z^hϚSW^,4y9wQ\ug/IuMc5>MlO>覓ˉ 88ts * 2ԸD9ֿ8bm`Igw8S}dkwZ @˶UfLEQ,qvVSv}]Kf]5SPUfi;bFġe(5nSSXAiwc?*2>ȓaAܚ`In==Q$rP0DZ{3qNŭ.:1DؽYub~Bd$RWzOW 8p]_;/Q~C0C`H(hºFӖG; (XOl? 2xWiLi"*zɤ`#Q,zqV5b6>*D-&g;p[}:k6} 4Ì8a'&`aðA-_kS1 '#O 4贘AK&"a@[^Ce |=BD9zExs*-?d\?ϖ PRpErGG(tT^e)s6ggvFyJ ^z9hj`Se9FqKdy$Ċ8sO8 autM ʥKPm+sO)I&q)Ag`8LOXNTE)\]PQT~AaS1g4u mh#BSH,0|5cA-}2E%mDgpz$$OJ'|x"/[rm+W֋-]j̨M1kzt) Vط䗅_.QR /VHR*O'*IE *W&ב@PE\VS1˃>32e/t =ˤP"3.\KJO.*z4D.LGE-EyWU#٭>sӌ ?gGefNRKtPmP$mb^^&n,>VKmIZ>$@Bt ;5";n_ ^74I\)%eQ6rZ>t.S~:Pˌ|t>}ıw 6uC2X*,MK]SW(=뚈v?nGGa'm:kgTk_/8Xw=|U .)Pfp\t#+OuH8FRK0GkϜQp_J-JnqJ&NKIԗJ>]9~ tm[W4sD9*"=f: ->S=9LB96c}hbƼt&`Mlo),,w!|e Sb/ ,QR>Xv a aY=%Vx%T.' ]DLgȌ hVyu50#eX8$ҋ,,PNdDo둞ɡh}ZppFFh&JlY ~R[R$5v/,~'Aǡ9-e] l}?qR E)sgK͜<$`Dy?FZ$ψNPl)^N@U@%{PFp{9\sHO<_ 3s9ؾ黽T(tsc' i,m0(7jo<ʛTS]VQ0qN+1m?>Z))Ͷˮai2cKlt\Ƣ\%}yׯt튩>s K* aKcS.`Ŕ)´WʳxUp(KP??WxO3t{+wf endstream endobj 36 0 obj << /Length 2386 /Filter /FlateDecode >> stream xYݏ۸߿ .bHC .^ЇYh\Yr(6ۗP_З55Ùp^^>f)KгBL F.׳Ob'ŗ?|/YD?G2`0nՄkbęIQ O.8Тq4^gml%a,bqn#g{uS])ΠFFyMh''9~lKNv~g+백weJ ChKaλi!7B k&B_TͰe\l>?{j1 !S(MJgPI"a7eȀǾs(qCdv=&j*(Ə@#I#cIb: }=E q(.Uc)J4CUyE!snisBELZ3&Gqz{?wZ&L1 ]LbyW\ލ+`Rtи>Rbs ?\ڧYִ!NJS o0$1e:4SG;V!W @<-#bhU7~]}w"rmE 4xeEK%dgm!㻟Jʊflտ &3 BZA2 @77~A( c %lM" -m$WY:J Vy kl.qgmk& _»ǧ&/֫k!9{ G65(x. >xI6.чeFEg)EdD'| \64Mi_]lf*i HP+ܐVv |087y UW-Z\e-g5}]QN-$Ƀm\ll@5׎J{/I1i7˟޼PnzǗ0̖z?FrM& \[Qu¡\kxaCOrKp>?xa{rg)`ͅGo'];1%"$`2ȉhBbvF@9W|KQRd6^0Q=DY޾Jڠ)a9o5E[aU:`7UfؙCQ *yxQco?U#8h5Mݰlٰ*y4ӳeaExM/ߋ|k"yݦ:mZfS 2wЍBh@Fl{3b`8 m'#C.@J5\h:l_'4jďn:qP2%ߟGGt^4t8mx>/cTnsx3}eR=QLB}QLhv5 eNѣJ"d)R$KLo 8 endstream endobj 40 0 obj << /Length 2226 /Filter /FlateDecode >> stream xڍXK8W #+d039%,noWUXO߽(["Odۯ0Y&WJծ\fGzwzVSSǣi͗ݯ` C m<F=RNzi0M4/'jJjB4(HچPIJ)0+'TU"%bܟu]_hΔP5LIޜtGڼAnCNE[XħVxϻohԵ(]J"e )AJxi.Zv/ -q uJvszߵGLaBS{ @6r%m學!bqTR( bz}~h 2 khixn*{n}qSoԴJf>2*HHh|"iV-A'UIicauUSҪgOHT>-b;thϽ}{40Î{S%*sf"G *!*Ƃy: }^d%D)E/3),)qǤjRxI%ѥuyhSt:>;7œ[>k5Ts SuYZF*OT0HX{}EPL15xX".&Q ȯ= Tbﭮ5g}P==vv#̑x@U Vгb$v츏'dHTSh4)kyD @LVl uYZun"80*[u$h'H)sx/H @wæ(t'NQlP)` зZMz3 -MOb[Ԋ5r܅]?&Msyq_5 @Q(;Rqb`LvxF5poo{?x#S"L1ʫt6I I(%'=M:eN/y6-?#*:;B xfMñ~WDI 8]!t -b!Z$=uP%~X̤U=ňUX.D4f TG3_%KjzQLd<p/ oHY56pfx }ȥ d@뻷nCū&s ,t^'E4 7Ȅ2#P?@e]16gs%+󾭩U_ 6 vg(wp-W_a\o=7څGfx47}4jP5zr~_= |%4`3—}w?~F7O?B^}y;*`y qctyqm?Yf~J2'ybtqwʂI}7m7c~.r_Sß\deHo endstream endobj 43 0 obj << /Length 1656 /Filter /FlateDecode >> stream xڭXo6_!`j M )k\, ꣢[Gږcg'ǻ}xezA͖F~^l}=ID9?xSop?c uNWp+[K i粳]E /붹b^"o¼Z}-ײV׏\"rz"ZLD =RO߱aV/$-?NG''NDd)sat1˺'7?p ^ 9=n~]MY;[\E^tnP6/@tC7͍,+j!^vWoN{zCj ߢ6ސuPq" g<8Xꝶ_N ejzXVgbE-ksw@ONL#j:TJ )Pi[{D ruؗ|oGab< $1>-%` 6~p0Ld)i<*FBqRi+tݷpI@/ /h01a`Oi; x8HF6$%(Hp) A%2 4)2-ʴ0.k辀7Y/{jz,n]}9pq<DY%>ø. /4jU߬)?V1iUG=^+\YVXXpb,;ΪDHT7!'C lΥ_VӒqJC ۅz]v,ŋR@Vtqa/8@hwhXF lc<+%P+FRps =@=Y8HH禎u")ghQ\kbQrGVp E9+Bh;[)׵8@ C%~Lin<:NźD ! eMLx jU2ҢUx %c%o%b誢ú]0~ӳu=k6 f@XKoڼDwYc!q30[@nmdH<Ӏʥ&8~#2}$it/c3?C=) !a-̇Qk_}Z*@gX)$LNeGWW }N> >g Ͳ·QqO)l"R(pA#b.ăA%vC/im>';Q|@ G=LbۈAa4;|92˸+ʣAa7deVGƆj0HKc?I޽dʐ1EPV2fS7XL*y302cmYXiȕ13PfݷN@Pó*Qf$l"!V^M $8A<3C 1nE 0,x|Qja:s# endstream endobj 48 0 obj << /Length 2028 /Filter /FlateDecode >> stream xڕXK6ϯ0r5#A0@;L紳MȒGb9,>Xϯχw?~LLJdpX4I6o?Lt3'ݩ\G푾 ?~~o]{mM) f"/KϦi p.9Сdz*EYp:~UmNT06|ec+C22"Adt%I*׷=B"eZ[6Kx X;@S8ۀfE56I-(R'4p{tL˕crWmhBWl DyWĢ=7)e.X @JMm4*e{О{|p@5Gj ;Te~T~־\m7GdDPR@57%Si=m` l]1zrKimwh*'"Z_{8C,}*a tj=VjK]x)P[P5[Oǀ.{@$ICϗB|6K>96ein}{1w24M|ot@٫! inqR{RG4ܕp+f&xb+z!GxˇDz,BO<<^&֡MHBBg,)͞Q̅g[Ǩ4u5`: J R"t=)-1L>_X Z}:aǾ(s0сiʨ:fѡʑ¦>1/4vI5"'& Yw3}T}ݭ)8pK# o6UGM:Ymt  z}rLҗ<6n勱R ȹj;ثY26긴^]fDҘDͩO6r H!ib&F4]jN|}tۭ)^Z pe$4qf}8.(];jR$AՁwI髴9;D5 gO1]T1%/Ы3^yG2 l.Vc_PHƌWogAR¯@m@8-G (t`ֱ@?0k5b4ֻΎ||摀nZGǚTO<ā0ehTG E1=*8^1W\bQZb`vm+,^LXLu5'˖РDYNdk>< 2 endstream endobj 51 0 obj << /Length 2761 /Filter /FlateDecode >> stream xڕYK06[D=FK6F.{`˴-,y)yg*VQ[39"XErQe)Eڼ72"Uj'ah9BoT:p~:z/Ө埏M) vV"rh6Q՝N5_i/vZB4"ѽ*'3mT,i; dKҞ2d(l-|3v-o8^P[ N7[YI}vYdK]_eB lkN gv<1s̽5=}O|C?UiMj>,gO]q{S!$_*-IIc76;TtfEI'3TU @T7QpAkQ\uoԷ^Y307:&4损+#۶b:5~P!1p4asA:) l-*{  k0-ѧkox]ajiK_Hg `k;խ?'~ɳ2}+E\30ڛf*~4Ac{E=|rB9Lgk+2g{>@!}:U)HXSc> T E/` ҋyP}R9ijCT tG|9kb4.֎E^kNh8 xX׺]I3cл Bi\0@| 汎ϸ/ӬbP)nRWNeI*6Fo&Nře԰^,BldG1Y@2"Ur.8*Gt$j8WTӱ!Ea,('-0'Enh)ȎB=4W88θngmմUز(U/-Dg[;\"+(g/%"K(1br5SG]C] v9JAq[mwƞ,2+v97kr)[T\G;.DK=$@t9>ˢkC=УCۂ,|/$a5:Ѝ͇B(D}KyUX]ߣj$)|_*9:Gˠcr\8mdӀ' /\} Q >a[5mqnV Q@Q92lwЁ充d'dSsm9b ĭqDp[ 6'U@Gڼ90𣹌cj=Vu<CJ"*/Y ⼭>.vx\l;Qy~OO?~x~=sE]uO-́.7 j)pLJi$Z({;AS,ތc_QdYx-VZ쟈`D1ϥ}W9qgj)nY4P.+=ĸ@ U/KP]뽥=>5ӊḊJ ѯf0q&?d|1t LŐwyCC&OP kPsC6=kB0n1VSxXAAm\vx24&ִ,(t^>fzpkr91B~q#Vwr8@5)4f)fKøҎOA0a9-3!*&a דuBiaGTRXǽsdRoyf ?w#HkzMnS/<_D{5uyٍҥd_}9~a;l-ʋG׮ Bi_*( endstream endobj 54 0 obj << /Length 1905 /Filter /FlateDecode >> stream xڭk6;**ޚ88Q* *`T@OI{Myc/w{=g^z,;Z+yGg[gGbɹ'BpTN,>~{2:Y) -= ߿|Z,9n"GIWeCMUmUՕF:2ej7eh fIJҨ5so@%p pU]!3Vҏbgɵ8(VI@4 ËB8gyuMd@v$w9h&C}ulwjiKSu ΢Peo*-IG¹ |:j;L+9ҺB\9 ~^'[퍉s$]߾z+%~LJdD{J M֗s(ec#"H&dЯrA ^'ya*| Z"XFݐ^,D f0In}ŁE } 1㾰igKL-<0߆&, ն:& ܨ;Ufl@H"d0~jrS4As_21.?HO'=X.5I|Mot_)$q "r'',"5෷X6LziӅQB7𺮶s3w@J2.n/(t\@R10A[ଢ,@X h%ZgKظDPgkKϋ B#/1s3DhY"xw9٦~0I%dGCֽKSE ht 2>}ZlK;րՙ~CGOڴjPyĜ뜭Aʎ1gaĬB&4ݾrzP*^nPu *XYi ] e=rTMZwK[hhڦў [XANPԎM@}YW$5iPJTՂ`ÍhV2G(MWUD/C0M&/ BGۡ!;X|(hj5B/ UbiY4jd)?9մ% `[ tHuxG y:GZn2EEFwذwduU랓!)pOs)\?c 9UFMGut\B 򷴥% _Os'064ɹ! @0_өH/0z l*a6x2XbA]i'1ȾS:+o鏩&.]esC?MOq(==Mfyseٝ,w?^qfOi݀{A@$ЃsME`籘Ӷ -]E5ݬA4Ա 67wI%|sGL=LhD:C;wq)0l*?Q 8F=# E@7$~>@[nM F$ӹ쏠*arr/΍sT2j=_ J>-DSA1g99DI;,sywpL8N`= rVĕ-~d z_ޚm(5H}źNBI5m1 <8xz2`(1$"-j89؛dn=POorשj*JíMrsL|´ڪ> stream xڵXݏ4_H'X7q|TPZQ*+@rKh>މ3㱳Ы 3x{}E V<]moVQ(X*aj[M3MύqԾ"C_'Ն'ɚ$I lE u(3Ъ5σZ$6cҾiu tDAʃ qoѝST[o, BsЂ(bdж {o_ځ$^M x "(y鮂EY=*xO*[{$ O9+Iby`<,EEV&8$pp3dLp_?Fp|CE"u{RSڼEXyS]B@"i4ڦSw{+ىgL-eItM liTB&mK/P4tG% V:Bƞ$L^6|O?;&zBRuy(b#i cRSErv8;)t h^eY: m66=F!$v֧P{]:b5~3lZv߇+"ñ C_jϲk!»t,\`TvP+.,sҪQ}u BR~:e `ة]#"ew( wVXe\piReB4#rtms9`KvɗGrp. 2RS Lt^# e{H4K鰞V'à1Dn ՓZ{MLxov  C׏BPnH  QOL[@/Mk+kl^F# {"sHI㠦a~hۦByQq3#Ch3689$A!|l腒qʊzEWLaI`y% " tCbS}s(3(&"momsLη߻tӦ.4htIgDե,)@V&I%hN~0F1 ǙcaXO/-$j>\T)K 2Iy<"I?g> IKp0+pY!|.$Cz&&D@$rpU/#i>Ykz^a"m{Ǿ?UՂ){6zǩv)56~6xٹ<"yՍGq_V΋:rʕWQZGy.RWbMiDHmGmJ8 E7rG7 'Mi˧rq{:Ksl>Z2&J=lZNi3Se؈gqoE@?:?\爕/1ޝq2E-A**-Xmƭyo T: endstream endobj 61 0 obj << /Length 1375 /Filter /FlateDecode >> stream xڍVKo6W! Գ@"H0Zw kĵc$@zg8+p<7W\Tq|_0e)e;xZ5g8"?|(^,?,EX\e霒lO5gǚ/g4sJ9b5Gdɼ=پ0֪o̜(S`~\:bIl,AkFiRv]z:VF,hC</geG=ܨ8k]#ϚnQHTa5ayA1$h6P4 ڜ} VZ JQ{I@-m_\P}Z4tg߁eenխj[ %*Z/5A_,yD=&@sI!3I,;#q8fE0ݽUU!ӵS#ظ 8:0<l#(r˭J ҇D(#@殎Jf< %ea#vTa7 FBJZL=B@:Vrm.zX}ÀyM48_鑱t^X$7{k4@e7?`r4iq@P+gguqc`,.9#k[38&F2guDmeRvz >{;YLY%gSf r?xhB* C+ !XC1;W1ODiIgV@nhi/n/!C;n ݀" XK\ ^s8@,%45,)[>uэƣˆy|kR_$]ryq4T$9_vшʸLiB,]!?﫥WCꨋ`8̰4d]_-E2'Oςuo,1*U;h}XYcч0H|)T M~(ܜ5='I{4Osn]#'P}IO^;8g6б{DES27u{n Ν6J Uv-1a 6>jQ NkW0yc%,=DIiݣ{*d%Vg"33h.XuiRB6~%HUaE'/#sje1mp<OC0oH|{B Ī_bzF/ܤc{AbbaX<+!"ʿe,Wb endstream endobj 77 0 obj << /Length1 1416 /Length2 6197 /Length3 0 /Length 7160 /Filter /FlateDecode >> stream xڍwTTk6!!) C7 "C7 ) CPҍtHHwH+ %79=}k~yk9YvH[*@:J`3 EI89N G"dB M"u @D ")+"% D@H,@ 4tA1Bx)_EW  :#[ qP8 u͛v㟚s#`H4g+43Sƒ ѿ H@P( + Vv0_t !l;?"y"@Q- 1?}b̿_u(Vm/`0($z;ԩ*"1{3fS TޗOPGۯͯޝej!xlxwnh8H2=L=|K՛Fw?]97jr{HSQxuyWwO|~)Ez^2*gkT8Ιkt#x7gC?X4I |?>>`H`N i@w3wc$r_h6ݽE&&eAoVII.άk_{])3q`@0Gec﹵tBѩզWv'̲;3P^Q|ZUzdZcXu_+8Z y*߀lh^WOhF)>~|/fqbsi<^h7V N\._.IÑ {<>'H|Sbn5zI@ 'Yo# Rx-_z7&^{Cʰ Za0KN+bW݋NƘ `CܒSS!'|@yj[ >;ݲ^nshܩݒXqzIaL_Bd-&X+)rUg|`>.ѕ5ʾ/9=и9kW0P`yqՎ蜰8le]وh)daW53vf{g"-BΤZKŗVyJCľ*\# UWN0Fq ݼtn!.wo߸ԡ)tَ❻zm(殖8y9C݆*9~@+)J(r9iDžX ǧLk}nKqV+xVm*+ėWxt 5b0)Fb)+4}y1s` ޝőKJD{5Qdc^e]Jt{`pg 3"ǯ |~ZbWrp-QNa(uwsΦ)!8q*+#'R}U$;OPO8NGvW^zұ(.;= i<ښqO] "H:"#NH*n01/[+*U{],-#zpځOxtĂ{,-MgƗ~jvA\sx5PXI@ H*&n($>+K9.ξfUW# Wfͱl-OmʣaV/^3OUr&Hyo+a{ $i++)8V2ׯW!t>uf"0똝pcr͡UOhvQ,9/5e-nrVVRY Z/*!|]׹WXG.–MA7E^mA>=$L^ fe[)affwLĀB&)dqx1gì'-_a)I&R@&G!Iي|T'ZQ6Pjv pxm`b*ްO]ϣ88Iw~ n},~y7_ m|o9 `ʕnM|JJk"̕ݘSux˗@Yql0oa5u1ǗCDco"Bp0=C*䕊X؇FS`19<#bٕϜ ?q`Z+[˷mMntQlsmMĠ\tXE'JV1zL.`ge2FZ'Fʈ^:$!ɝ"-HH"OQٚ63:0FLµ%G ~51lCAȈ@zLXN-ɺr<;5-E3 eٴ]$T8+{d>tlvr&ZWT#XW3Sՙ ]׌6T]DE-/vIq-^z0vNjrSEL 3e~}x#5ڸhx3C/ASTIUeɈ Vh_דڞ;_*fgP^yXR mQu'|F@[< -玔6n:VӍ%I͏U,?+6sMyT1.^C=Z\ zx7s3II2 5: ž9 ]=TDEJv6{."c˄r'QP> aHAIV`[O .7VsHEt1~-lן-Qխ&nЭG򴭂["은h:Q=u("CH7L1ت+Fiʊ(‰=`|H \l߫ ▅ Ys=qSQ2ndKxG98|@FBޗݶޡP\3$Ksz}ׄ]G- wă'y"eQvt&#TS44@cAu_,.gW^^(Kv|C1A0s6[I gE݂ #Ƃ6umjR殣gom]^&-O6<ٍ\yrWDҲnY=4+ p!!faw?h6\f2!Rq>I-Ӷ/#g%a i1i='ejZw`^(~I1(Sꜥ'P9-dL R} ]č,C}_;,Sfˌ$ q֮!P=}oA TOP Eg`^PZn ݰZD &.'x [DccAߺfAM!zif~H^~`KCⳛ6n BmJ>wJ(i)ق\RJLݞL]c ̥֮Ա1}1=S<]> Gu8ymw@YarN_ʴ;v WW#B|n6oGkyQMtRwo7XesG:KO\xFo7(xq$ߧW=]Axk\\P<!BY.\6ʟTYh)G:̀=pͭx[,;q*gOt?Y+H+ݧgtoGr{1N>Ho+ =v&>Q-BsnG^5ũ9բ lC~:ǟwJr0P|* ,O Mw:"O"#Y֫_!vpPWG)؏iI /r8ET'7ve;iM26 >j n}NPɌz V92]5Ek1"ܽI{A a7?@g#Kif_mbzwdՉnA%fdg<\x%M@}JyөGOD5{e8o{ȃ^ŚWMXFRZvaoV]@M+똕/nHT5{xfPw35yNq#/|zLTFAzax@Ƿ 4M^osSI˃:WZ=zr볻UiRޠd|!t.̹+Vbmg"h ЈeAJ@;7.v׫VVSxiIK˧ Y[4-_ }Wh%dLAWlņrUiܫ0uk9+/${IOl]Ƶ_}ؕ[ޝHg̞KZ >O˘tcLO9Es|Dsta\I#iXs%Д BUmzcT#qӻ=b,).'*7$%Fg[m~dV[uNOEv yodLhjgSm$dFIٜk3E'K&ܴ!<0gH3{0AI49s!V L7b*dwCpûV1Il~")MWR&ۜU2ێ[U LC !멚'约2S[ gf&*'@Z\g r|cuMGk?AZsݥ:&ZFkaUJ D,:?|8%8X˧3t^ gb#ȩ{3> siaJ*%F!kj%'} 1Sy*/WȤL=,o{ilQQJS7o%ǽy^ĆzB*}b;tyrj޽:(ZG0/1"`ҽW=sg1ʩUZ8܁~hMϻȑt?bրjTqq_qz.|^4k&DK+A1NJVYpu= ~oVR|hJ({$y/ڣ3Drj/Y7Qtz"NK9$iBr})7e6a"> stream xڌtk 67m۶1mm8ƶ$/{?}_֬5slju)2P֙ ,+```c``#%Up#U::Yr!4tD ?elR.Ff##;?v\CW ,@G*lghafqƔFNNv6@G cC[9DcCk\P;;sӻ89Q,J@'+W9CS#[8Klgf|@[[#t @h/e)]#/GzXؚL-y1:gwg_NvֆF nT~d-읝,ʑ/7e5:;#n_iӫZ8%EAÙ lnlN*9xL?X?~༜ ]gGןEp cg4_mc0DŽZ{we4ńTBBv/ZV6-+~ -vQPח +qߔuoDb.)#78l._UuVW$ ?vAepp(X8k\ūh@;'-#}l1GۙeL6tt4hbx1~ )9>9Q6V_Կ^/bgK8rE z^E1x1n,NpC 7?< zp4v1h֏3?z毖#G&@G,>fbgmmG?>蝡?VQֆ6X}dnCaaHw,47Gl#+W#4еxO/Xo'X>踅 H埊}{߂E9M%#3~39YY;@0¸єdYz? 755vq(f݁p vuxnsi^ˎ.OHɔYGPvE)V_NC'*?{+-M*:l ŧU8~uV o"sp@R(@pwoXxP& R1KP4({ʙ 9ܩwBxj8hb/-y*&/8Zwh3d^BG)RX^e%Q9+ j8ľ ؎崼2_zr݌3Ռd 0^!e⦉5$#e~$ &ԝ{.Tb'm>Ee{y4L6 Y4;#4X=OWrOk n]l΁0lxxyZg>Tq4;Ɯ~L#Ʉ%t^1,0aㄯ >dqF?34u^xvrTםKӟ ;jQu)IҶIף6l[;[`IieN,KFR&ci`1ҵf2R雃tPK𢇠%RKOA*Q,^T9okN_mFFZrqMUz.sã ){iANv"&)N^(j1J'Y٭U`ɝ# A^ f\Bpk20,ečjf?̚^L QH}1D3XU (.U+q[% n*pwƍaɴ Jqfs6L$b%ZgTL8 nEhnjI1gl1E9Jf8e?l4J"eJ2FdNn;;}F\:)QwګReN< jo[IlȪG.>@Ԓ;Ƅ$Κ q<gFYq̶๊GǠ^W128igǖn5)JY6\mU(|3 ĩz:mڝ l;mOfd+5nRHj +zl7ad+ X4Z$gzB?BwHh.Kh|ÄyF7&A Zr]tBBItXp;cV34*@H><,"] 5YkBǑϛ5Y!l儧.j2Y$&]Ԓ:)l{ iH6;C߽9 x妋2B܈d(, @`ٽ 2JWӺ$(0t' WKX.IҶVC#aM#?ǝߑEvG {]ԩQK?^יo K6lϞ}AcDvDs<僗S͟=%ZLDAd;ꀭNk [Jդ\p\ η.nGL}y6!W|d\7S0.RQ4R}9g%_#_E >>^c'@DbA}b*_`e$'e،{;*Q3oAֿ|Ɩs16~?\% |¡%;< ǎgI6Ui٪kؼ7-,B(tK*Ap9I\ERN0p{d-%Hɦr;*Efbn'=۞CLvv^K 2@,Ý/XRX{[#䫪'q7k4. Ŷ-dy>K7T\l6Lcp!ߦ8Ԉ1HDp lx|(2cƯ)`(O Iς$ģ-&)V8wGi0Ւ8zyJ*Q+,:絤"Ќ\R$X1,h@.>M*WU0 EU)WOu=G@PsЅb6ǿ@R]/s>,UW_48E"ؘ_p9tmCV |^,^9wK 7L }p6B3^#u,kFf}r2 9e i{eJ[ $qox #W^+\%|Ɋ!&Q5Z/r}35pm׊?i|RJ'?BN>T?K,Kou|9xzvzӘ -CIA9&xF?mz0\"T}XYȮ5eQTq36FY_Fk܅a{ |Wl3Ps Udt f&t!o?NQ]ti&CVg Tej׼Ȭq >OP6]q"ħ!rػ>pdϱJԭƪە**۠9/z&=Ŀޔ#*rɼB_q2rlw-Y̲90H~J2}VD&`L*~$@s|AѓJ{qt3?',^ TY:G‰lrS2a˛-3Fj~oy/ 6WYQ-g\*=ѥ S1$?s}aR) ;sCr#Mq7^W[d6&@A'-6 }R۲ޓ,Uh=c_~lQeT-?AInd8^%6mL NXuWQYzҭ DF~7yDxPT0W0Yy{~wXTn ]C1كʌ>鲿lDcm9d*] 3Z1H&i { u~LxkZswP; ްtlI,vuG7OQlCa,MirkmƑ+ w̓`wC3UYD:K a x!7OI! ď͝Aecj|ESQˤ) Ϸefp ij'Ȇe^Glo7Aj~&뫬Rq 3GVk 3͕ץ)[1!?/>U'7Ym;]սyrIz5"ԃhnqOOP'L 1ݶlWےOҰf1}r_OR!X@9P(cU'`AzҔۦG'NX o0֔aR|yRVOFxNRʪz`v(ĬF'c?V;,(_61DԜЊj?x6Q{''8ꊊǯn:fŘŕ6¸Rԉ7ޮUG.\.+UsgJPSA~;Z~o1+0b:ڞ󎄜2NUTz(Bp5@^HNd@BJ8bF"Spvh@p1 e$|}0KX-*Q~G;6a8 rrKR]``60U4dM\ဤh᪮ksyjlڻE R.NHWidMPVD g&Z)#& 9Il,&C:tTj>8dvDxFQƁrِr}zDuܔ?hn:#7@H G"':s(iAŭ۳RUVn ݶ vr eo]MXH(\}I BitWkKnn N~}/q̼e*@8E,p@>U۪}x܌,̍+"ͅa aHEmX!JZX!*$)hd ЪRY_sݐ$"!&U[,`ie.düʺ-VTEaToΰ}S7w~:/ڔNr&<$1[Ǫ?)8?v+JC8-P_BʥwʕX3hq1 W' -ϔRsPd&C a#VYg ׅ Lh7<<<-a:(Yϑ\d6(1vWPl&6OPQdzwܐ<{o pS:'"k.;Ɣ(n]kkQ\b7'>Lna S?k*'A@󎂬.Sy*c$yh-ˬцg>7LV2¥;#KGSy#u}τʧ=+1plfhS64hJsb,։ dKMh&n\7V>m -&'KIfdmHT Lσ{s'jfyc;︢ФdS ,c,P\ v%nEnVĤ32fb6gLJ;=^vLPҬ/NM.I}6o+r&)w)8!ٲ9 nJ>[h3~F5l9)ϕ&#ݷkis%\=.1#P*` 1,l9u-% ?^=}EJ&jr1 ]'W$8xeE>3,afDpaMc! 2>i^'eeɁĵԥP,&41ߌT$hgT}\_MX wZkHsLzϱj W-qUꈮhe,E epgaM4r•mS#Ha$IAL9g_K[n(Mt{: GMv|Q4 Ӝ#m\{4h9yNMNvI L[8Iʢau>KߵWOv=2nM-Q0|R#f9QAoiˊ68`\MPQ%yqxSK̀@(4Śz2߻m__UFINf*H͖a{sktּ6TU&D$N!^ }TuCuᲟ=^0?IhB|/ Oط L*:Gl ֲ5+n}'$b H֥y"-^t߂&/A`֡S9l#6p=~xE:m+鋁hjFw,F["\~@F}ɤlzc&9 +pW6TGbڻ]x+543Pu7jpF15*Lf9"`{KtIbIO_NLӳV&"+D wL򋊚ڗ&8_P{\GlJd'nħBVJxAö,5?{vc#k9ʐתҎ}U y)dɑWj١MK>&MliͿteNRMi Soe( zWAx%qz3\}g%F}óm\ 5D:5ք(y;tR@f-:3/Zǩjd,b.3yn- unSத!AɕNUJE@Wǘ*\-V KіӹD|].:MY-bJ); a>9Z/)h@.b,ysyPykŴ|QOD7oտ1jHk/[u'gY(rH!ogPKjXKpmrghw@p)ǿbd<3'|Mo=:aUmE(*M ]:1ӁʵG™m/"r5𵓵wu=W(ș{ywza@|ĠPg@D<}%gfʲjj8Ah .z&b3zx=Y Jʢ#ͥ&;P7͂x(L{rt++nI8SW}c:.ycR$T=+GF`Y&թϚc6"lcAr;6j(Eȸ8 8XI r<ٛ;8p?/OZ3zx{!ƔKC& @+3NfR=K7ڸ-fެDw#+d1vT?AZEXf7ZT?*y UqDw"t{L S^/o)T;T~JkF>tjrIdmN76z*]B#X&P39+ɍ']Qy^$"}VZʴHA:˳z_Lv90]X[Qr'6gc?xfW?3Ǖo6D >X&8(>ڰѻf=HDo)fg5Bɤl"5> U ~O$0QoW ###GQYlяc b8t.掅:hCA*71fHA88PXyn>,zdv]Lo+m_- ,S GkR<Tvũ R$|3s?ڇ@TH-ėyExyUt\P[OtHȰ1۩qc"zw }ۆCAr8^喢Q6v!(׶o yI7afX{ mhmCdz;gg9}';CGRļ;aD*nRM316⇡ pWuϖ1Iʹ'x$Wovj'@ƽpUB6 ~ TKݫHL{KXE$2ۥG" |0Gt3X*с-$D(țI7a-dce4gZhRq|#LU3!.d+Vٙ) 6(h(Mv`q@9wc7v .0rUvv/f,2bI=2q,ꮒZ8C*r2Hyv;dWb,2Z]w43 #LO?MH>ff/\mG;OPyZK|?-<6) YF€}Nod@'WF ͎6M2L@񲾃~xJYc\ղfdߣbi㙌 IDvկc@қ :Nܐ h²qZm:Q0F! |iR0lpmOyLorDD̗tc=S%tvV vZ,5{yLnβ >>BHDoX|%8rWYBhd1!}!' #X-?2>> mzV%  ?'W':z=X$QpLKzuvA끘fzկHŦv.7K݁AUb嘚{b5F2~]{ %F(@["3`ֽ[D)G/ 34K /_ 7*y֨QS:όL%FN ]`[J殨|fLb-PiprH_Ef3AB Ziy{ PfZ4ubC@]x4cMvN*ZFDn/vу?yT=}ЍC4ǐJ$?Qn E< XL+WGGU[bMJI0W-:+FTm)srp{wU7*tG p60٪fׅmL(ovW>[ Pe,V]n[>CL2!!jv6`%++HȖPDEfO9ߔ& kY_h|Web$^{m#ѰEC[/׮m|mai{zN#+ bęu[P N4HYtCĹe(ݦD8[GX$'6 ~ T4ϥ/ 3H%ST9.\A2iHUJ7 .2RYf~/vDY/ T?ֆ!QVdx~эs_%BO-}eDȺ_銿rbC¤`~kF5˽þHa\Iw$"(_5<ƴwYWPjٹY:rM.B'L;q,}wVJT,KgMqFB{FdȢd{ MwF~ԤϰKn-dS3\5A5!~UZqe߼Ti\L8j)x(i!>,sOD_&dfU=45+j"Q*GX|Sa"V|cs/dJl4=wõiNbsG| I^ H:׼ :ѯ 79UYD9b6*.UFYzY {52 겺xE䭣=Pab,EKaYZ ;1{3>;w*b꤅}8 N>9 i}Y+ lrAkTp,Atc SA.u[*\13&r4VZ1E 0'PTTi_?>AqHoc@D s{~QJ:JFGOGpRɄJd|׵~V;lMsqJ` \__]0; Yh|hDb#mfʅ{N/0ۏN# ;9#YNca؞?@)< H&L!`GpKWXNp,yWhy+T9 $HsjBTh˂YhlFv)3>? dH0?'kMQG r(0Ma3aSiϵoiDעcPļ;xhGŧ>QTm_&(/;iBH C:qik:)*rRGhd" 3܀v]eim= EP|,`ҥ$#E4vIF 7rcܧ<3絋#Gy䆝G'rd8}vxXkA[N#CSC~ *$rzkr8JX颩,)w5zƬyU{ idfA " 6[=TMaRٟvW_U+PO ~މ2UsCWiUIM,a*/Q wbߍE f^yΒ5ȿnWv fE 6X_̴gN5a|PiCr3-Ju7#5m{S8^:v $%f6Ӹ(AhxZO@G[(-׋;~bs[c={|řDŽϜȟ n=anIPijj#ھ7Uñ@=kw{Aq;Ȝ9ӴG!}?-`рCXْ(qZ&J{?8{ k+A1zRCK>6` #ص)7I`NOgߎdrV2n%};u{àlm* \:+9G)E5"QΰU]k*x<ױ}V>#W>ߟ ,7 AL^SWsΆ%NB,JYH.&ǩ5Tñ}boKSRV滵c׶ 휒 d!1rP汼wTY!H%T ])/i+fTYΜ[*lZ`k.3v)sfR,Sn5O/ OLHnPEB#xՒ.wlNL lPG-Ҏ?:UWc?@ϭTի`-=IMm1( 瀱e0&;Z߽NJ8h ^g2dL[*cR. qneȍVhK 7W W@?C Jl{v wER>">YsJEE 8]'dzEnto@w<9!SOECƍ!dP?<^RvyKxbH svR GPa?ei1xuTz 1tcfz٢Ej`bWpG(Y(P v|t6XGv"nW[DT޹ИPVb"N]N0]B'ҕ*9[lwvXM몰ht{ }%pS&@(V0 endstream endobj 81 0 obj << /Length1 1997 /Length2 13578 /Length3 0 /Length 14792 /Filter /FlateDecode >> stream xڍP\ֆ CpwиCp4Hpw ACp=\>}9dc1 QRe15I8102E?Y)(,@Y98ZCtz_:;d,lN^.^ff+33mx@ <#@O!fk`afi,<<\DA@<d1 jklrrNNvLL@kGF[3Az9@rp*4Fx N@}dlcrP(ځl,/zt+@cc[k; PctrsmLrZ9ھ]V@w"{ɑJ~6&b 'G[8ݝ?djacbW&vL6 i/Y3988y {؜ @YZ~`^tAޞ4/L,F 3 ?ߗA`a~o?_~{0[+?_b&U m1y_ `aapq07:Jۘx%#=@o.4.3v;_"Ig+r-޹NS o> 6U26i',ؘY-%-@&JNj5hV6 %[Gn-fc{.cۇ{Omn)aclkהrp@wxVbx .01:ދ:uE99L"-8L $xL%.fb0I,r=NXL*=b0w}ϻN0ݍK0?1LM-djǟ/w[g$xw1g0`|m|m|nYޅ߅}ߟ20+c~?-QG,N|8#{-.oV6vvpx}yO d 4ok:+ Ůf2 C#2LM叀u[nԕm eϣZ8'gXI#>"8B5={/ K&,{gnd{^)_!{% #u g)pI`iPfong3'ވebཏ{joF=y:viAܠNQz$,xD˄D7٫H:KF&6GplOD+oQRlEϪ*~a1ȅwTn((otc tAA"^N4U7_EVl'.OI ) k5AI0!209I&I` 8A_Fe:ԉ?K5B- ,rCͮ xk"655%]2yIƴaV[w#2ԬХcW|R] B{{|X!3]T`Ogy9g⨹A.Bo܆FbYquڱ_}n?z*~i!Fc2vk.uM*N @\L5Z>C&Ֆ NUλP9d-T%15֔TJ[;6(*(@Z:D,&%p6 YT1rq2_vyu$*xTÂ[FOLb ܇2C/L7R!cso۲ڪk_6f[p94{]B>i;ia5EIupáB.7w&oq}g8 }Ah# Ĕ@PV2\jq/#>f=AN _O~ ` $NT&Al(t}kux: CUBuvD6A 45H\z*+g3AlODg~dj}y%P-$爟ҠJ|*mo@]ۜ"yɊqvWAn6Qv`Q;c@̧f,$%o`FB9߶-YyMОjH~ =^ҴLm4ܞ&ɹDJ4?M>|up$Dhg&_<+`Ļu~z` Aɷ>KP''yБbPa|_4ګ6+^R6ا52ϋ1;Qse c!_nK j~ht4bi@0" ͽ6>/6MtS8)Yێv(Ho[R7ʜv=sU ,w.Ck ?NL(ĉ;m5oC 0i;sz Ux(Nӆ{9,$]+Sy!kFGQkqN 3fc~$Z [0mN}f! l$qGV&ЗgV8TO%E5,:.`;sl*" -qXX{,g(WNʕ!>qzr𼼌r1(BHȖ K{ gNM^uIi٘Qy VC5)e= vוESxu.ZPY#4l{K'Xkk[vG5_Ǧ)\=7e.߄5i5A߉I}÷QY֓fI` ,XSDtfoBV.fUvKfE! YXȺrAv ܢ"+jZaV=y錨Rfi-LQdqg*!ɹ әӪfwGch /T8s^f}<m3O(S9+SYB!\x[QI Җ術ލGnNTZ S{cQ"Xڂ*JҷVSi xB}CРR 0he\.~ $bM;_ o*u9;ڦlP_Ct;B;/JT=ӚҥN @bCvJ$#x\ |&xzAJrlj0id[Y!|R-54ܞ#uha*OUG=DkbLpp'vD Y=0eŧ8V30&K 2Y:?>s21bGêC~3:a8$8jrtE$= e஥`D74$.ʔ0鑲؅wp'­CoJ̩HS\ۆ:}*dSN_cCgCLaS_kT_OdB=Cw7xyڋ肩LDz(ȭ~NTOfZmgRVBQ*:ZF ۇZЇg'ͥkK6-3>9tPu ּ 4ˊо;g X#׫:뗮/9[DEmKFoyM%//jvo.(<\ue75m #m[Я0FF(R"T,BNW)}KE %%)Q ?ۧZaWN%g2٦0Vٴi% ܾL'^Q@q6PK?LeG$<)S:K{<ѽ3ב""ǘœvsV(J,<M_ HFgL1cm h{z|^#f E<׆3R mjΖgy\D +K&Ap7sC:蘬D|0!<~hbah8DObÉ֠7%+(s"TS?mt %cG~k G5Τ@LE|]1Cg7AF~~JH vyCqqQ,6Y2J[QB&z im"TtXuJz.cǠ :"նi)oRZuqtwڠ0[u:oW$ʶc~Pʒ02;)ˏA5=JIwk>|ekds-{YK  0|ًTJ#nTAT` B9NGb^|.ht{*dR;"Nzk&H$p~[Pd!F6Aפl)za:C #"BAikBT^PĎkP2W[vizIUϵ.]>ӿ?i- tF MUZܪ'=e8O, YS#PੑBZk; gxJ'rmڦ)d}WFܒ݁ d8ܓ6:ͯ!a:]&'G)ka0ud#Ȕz|i 7[OR&M7r$e6bSm캰?hy9hJqVTb|fʯ&=gcpFEe'AIZB'N$cY .u5rj=$ydN'Hheq:qуg;[3k'UސSk, xdu`0ŀ)dgT׶v]C[qG]5j[=5"+BudP5QS#RbG2$8 Vv;$1tn7ޯ80CVLaP.N{ }"%]3&=A$M;=k,ʗ)C\L.ut0P)s_6Ñ͙sJ/dR=)Bg^{ rri<q#7mz+䟳(#LCtRq֨D:6cK㚇iE{e.(1" cZM%;A^lU=tyR;UA׵bqڭʿ<تP.mt \9$؆I珋re3Z5fHs8-aC}e_\<r |eg( @.7\XEӟ (N.+?l(_I;X]|uJ<ֻT ` - ᔤG8I%rvN*TVCN¤ 4`Ԧ: OBc4Kk9Ob`ޣ3H IET7dC`)@\- 9 +vz*sF3%Lm)fPRR+)N6r+%@f46amj.,DjR>}~y3ZNE1u95Ӛ`(f̀-8>^{(`ۏw^8NovJ6]C֒i;1LsJ{ %p =u9a(5O dh/a)¢ӮL#Ŷ7;*q)&l>aPmB/[ ЃLJ{[: v!aWShe[ϸ%5>\pۇn|9;9olZ~믃7džcV SHAi,@E ECtv6+q_{L֮E^%'5'7s@j!+fPn)楣Q:[Xk+ >q}5,9BoMCC \!e ^{hIv- V2tWue>9?bɄKeӗ`l~hd~'И[&o;vc n#kac p)g HK~2Kg1'ۦ·LbP[<~ yCFV崮 gy܃S.o k3.,Xe,21A?'PE|TS*a$Xq!USkLV{7!2ZN 3"/u _8ut_|A*4f0riX~dTF,,-_?vc[w d/]{F[o|cW*9-#C )t9ģ rEQY[VVBcEՆߝ[T?|95i!21][Vpp}GaarϲThՁj@Mc'TƳ&yxi)9G2_żcUW>•{Qۛ}}\*^6(G;|MW.v"Jh-y@{,ӯ䝨(G ċY,Qhwrdcޜ1H= oyDGa<z饥({ȟD)~G;zޚ,7Ad!jRCkXT܅ J+L'jw۬dj}^[,'u-D7W 9d_P-b*)090k 5ؐ"?.iKj;Ӎ{w*EJ1ٔ{Xmh+HV}+65R7X/y!Q"{@a 菥;TϨj #. 0Z$ث%-zT)4W{ :$=~5K)>3_ vM9;67,X p"+Hv_!Jmd M[x,GIj>$xSY{ygRfo윾a+PմBF`$hu,X+wDuLyT>h͗2R˪@i;YwQXyZ K!x5VBD {zhqfyH>>^4}&̭M˵JP'ȘP+fx`iy1؃vdrF6O-zͥb[+h;L%(Kz::}XiQlL40vN-֖;JǶaQwˬxĻ1WҼP'I9v$f. `=LՊ.ҊJؒWhۇ+V&ׇdg0#=4 B_4gO*wôjj5KUT rN*+>ۧ^aaͻT!UUT3}(zpp\F2_av̽2#ճ;mc%[M1 ~ u*V^;oq).Qmr@5\‘ j58TJ 0CY7*Ϭs9*7REq>,@xcHk,PZyQ<)%W_%sQTnf ?W gA,9ȫ;mx>YY> }c:lú$ԴMdy^ߞ~T<aE$L" % At ]|xVr^ڶq%\Ԫ#o ſnmy{dvuF@R{&綥/ŵS~T(GMQgyz2*o{~ G~![8Xe^z|x,z\ BfŜygJox2%l^ٺjyfIϠvہV`?&nҊyp@_=[2n7Fy/S~G-gkvv CWyg(Qr(Fz 3f Jz瑴nlʯ6u?!CEs8w'dhwoJ7gp8yljE|:|\^ORD~HÝ,JWEۧw:[%ǻu~ x)N<Mu=V"+tJEF^\c[=} 5%h):0I:AA=H]L-[Sg%_ðYWVk9Ƚ3:c3 aPQyZ Kh' MfP%vD5yYCqˮ)rS!l?F.Ԟ$U XUN ; gF}!؁ZOUr@酲{+Z`5<&\K ⎢ߤ./ɩkͯOU{,vO1==.!'[vN^c:$G:T!-&v$LWتrcXՉ ۠ؑE3f=w{a?gЍt6Mu߈C.)Ye܌m~KL5`l=]'ҎȏgVռ3bn{_cɿ<2,üX uMxmMM7]kBa?#ۨIc.Z Qt2ͪƶuCs-Y7~E#3$&"B,V5TsY*ԭ$})&]ˢbb iVP}7 WjXݯ)!5 ' Ԉ_*W…*VhN;Je.)\$fL\ώ^8y=PC5]ϥv߯<26-@V̞WB~ 0L4)56+U&"6XcldSV:`-3 2hZdL4Оy[if)5~E5d+[)3E3i_;;So=ĆVZMͧH9Ek3T5/.UZZJ9mʊ}A O\_' ]Aģ⾄HkjZ4LAM(%Ǫf6fxs!K#}𱇸"'3:(>I1pƘSAX ^4=H?W4NQ"x6G^ǜ5I!׉j!~?~&.:oX(˳0u,:m% we&m"7UӜD/Hwi)^OPXj ?խ6 k9 .Wg;Ɛ*05t[d|/3j&H{ƺhNnxr"na#*1\y*J/{Ib_ V_,Y_e:[WK%+1oݽ=\`w`eB ۫kQF7њ]+Vll0U}kU10nI>$yx|Y Jvy@F)Mgv}˄n^y6E?fW?VxH޿іξMĩ`h~MmʣYH[qFd^sF&A9*p"rdb.jjWAkG | z?h %3|1|c)N:2|5%. g35qN#`UgyBwfg40ˬ`cϠ<:8QKP5 #zwBBŪؗO$2&I Qm4r;VH!4TjgMUu)ú]MgF xr] ,16N+mXHX܎WY9'h_m\y\Iwp̫H%,_TD>'H GoCd$W_҃  %-bPΛ+`5ZCpm? YDOHyqD0zΈ`+>"]Kr4 [ᗞ܉W@&E[oPʫA ߖ8iߨ&=m!If TLw3Xl "-{Y%Kkid-زZlKڌe^?>TGq!pTfvu 8Nv+F x}fT, ^K7PqǤ_+(EhLk&k~L@Hۑ(6#O-"Ofc Gqy:mӡ Ԉg#ٴ0;vZDZyGq>“/U;hrBx? $/jQK~LXHLu]'NWqzUH|J$nىDH/ژ35-b1Zq,UEg'0g^T v_S5Mdawy "nzf5A~!5S,lZp3 qY1k3^q~y@*!<DZ)>s0dVljښƲ "R2RO5<6Sn,X<5 Ӧ`oNM]WlBb_S̮Bl d}DjFT"FlONE3yn)D$=$D_^{}s&9B07ݔv @-)C Ȩ3B15Xqa&X<кgt&J{~!i]|zyS`.Oզ y-,+Z,@%}u)RphvBWJߛ[lkWև/ʁښSvV,ۦ8.yL^~xpQzDi 9_^I.f6 worF;5uk;*14yUx()l@ү{5T|6q #Hi-dBA wRnX$;|Z=VC_?'qrˬFc{7:O4qjV2g5Pzj ZH&ˠ2U6C!ZG󾞘Mh{|n-6&>y";<˞އZ _j)Rsu>$u#cmH͋cה-%Jߊš؉@lfъJ;Ԋo9}:h\jka?ވ}Ĭ9T^ {^aF*\2L.ozVU v[xqT";l endstream endobj 83 0 obj << /Length1 1626 /Length2 8318 /Length3 0 /Length 9390 /Filter /FlateDecode >> stream xڍT.L" 'hqw-E@KqS+^)E7r>׺we䛙gy]Ii^kIX@P';P @ =a[CvCBH9AN@UEg;'7O B @uq襠0w'5yߏFs&+?`'9BX'Ps_! +;uebB 0. U;=@Ӡ Dbv#],NMe 'XO+89/߁ 8͡0; ` dnV7d"A.  #u@VBBVW}ps' gC~; 2RP{{;?iwwkuu[8XX.ơqt+HApY^ +n~^v3}; Y' X"{C,O8 @89=mo `1GV#`?e n ~ :عc:jRodX*?FII py5WUp~/Q &S" 0tC /?\h;v?;bI]gr Tep_.U[@ת!A Ii6Nv ϟz\x A[I?ڿ~ C~_1H/ l-3E^#p$74ȕC12T9q@NN w/`? `w".dKA p~8s!%0_f$r]a.Ç j:EN?( //?@K8 CRj/2?W̝ -qn`sPMM`e+0aʥH1Wfd5N}ƼR\MeF-u;9Yx ڙM(t$ zQ^StbYXj?zY5ޕHbPj{gUQ2 Ώ5 Dـ&)ˬ5d4Z%+8JEO~.GtB i:9 ]҈<䞈Y.3%]֨[o0&t6MqEI[$Lq X FktB他(mC秺W~9+%+2ĉܕmot FmyYD!BmGg~1hJˀ?źUK`Q WRQa]I{$üceC$QJWZއCNuR^nF|rV{Y¨ :x#,0%|aUjJjvɗ>h+ 7K_j@VQD_N/.Oіd5_E{ wL33g;KIjysT%aCM7ۓ(<bVpjGE"~X3NȟdSPߛCMIR-_=l8֥'Chx޵:ށ2&Zp7F~,=>;Zx۫ߺ_Wi"Ӭ9CenYh铫~&FΓk2ƠD;]cf܎CgdAd$,^Yˌ aofOM ֌ZsFGfGťy 5cpxL$1w`-\sN>xCk͐( Ekw66Ғ9d1rA HK!fǿᡷ9J/Osg@+dxWuڅR4ӇzDxgyˮ >3MH% 1EȻ]#_QtMvK&tFl=ٛlACo/^h{!;4j:SvLm3xm?3Tyb]g'Π{닃eQ1'uZ_i8!TCcЖmJO$7Mށ!yWǎkN`~tMIDgD:.D5ՀG[V]ν=KUz-H|@X_nܓ\G I2dDu/Z=99}ژ\WP'UrY{\xK UeZ;i1h|\J*9 :}BǶqD]v#\ڞxnȲѥӦ0{Jk!jwlznOb\..H0ZMT`3|RӦmB00 *!tB Oim19zH8a4^U|viWP{DUWljee}7%f?x2 6$2S554z1 c*!vZw=`_ Ō0h75(ucܣjCimN`vTq t_9Pf-W)qj\9jm+WCl*rk4R dl+6Q]aPۂ H<-S}g-XpO2ѷ, w,hPc0d{CAF؍#D~SO{VLٛCtז酈k+_^ &βh(|*Ur> 9ƛM'xh'7 һtǓ^Ǚ4a˃aMwwLX')*5$u0~%%p~rh@c9C&TW̄:wqBC3Z, dFbwݎ]A(c65ڡv mNR{ f-bf|]5+Ow`[ yL*Z,C.I@ 'ZՉ:ʷJ^'G^ y6;A:"sZ3>[5wܦ.w0G*:%ߟ!SSvkqEMdRrcYUQ=^B|S6PFi3_~=iZ|AC)qF@ y%SmCGm6A98]y݇WT8ҫ؞pT2^]U!vw$oRXP4Q̽i~ ɔGڣ0-?[(C,klBn4R;MF>z(/1.d[ 7?tg zGv&r]Xku t\cnPܖZͲ+dxkna8TI7Cޓ=t6Å.k7`Kj3؏ѩ i3ͺ[̜lj9# Y1~jvFE(N=xe"gt-&3|3(Ql[Fecǯ6vJn+M;1c^㺳"[2- \+NYej*/~aY*17ydFvÛĉMə:t&/Yʙ=8Q51.ks?tL:;\? -wo:#DKɺ^le/  sUՈu՘mܡο8c.!8r<5N_\Od? ҇#_06yQdm9/MI\f 01lm^<&gC{УOYƻU"VRG9u~Įf= Eŷ: Wr ~vlIjNL.JRD=RtFسkg42!| ^" ;L6Jޒ8FC~*LQpSeiB9 UWwÌE8X&|s!ϳ3fάB՜)v۽O 2"⌜Zqx- 7\*^几`W%LǙ;ߺ7kkٮ ~j{=˸4kխ`fN"Z=<Da;Ė~C0$Բ+-o`# \ )l0\CPSngd,=iaZ9+.81eNDU\U0>_-ND_MKEKIfoW|s7M:&ΰs,g2֑ &!V8LkrO=ҷ{1-%tZ\'C:.l:w;ޚ2zfTl'@ny6_/4Dq'ng[h&r2,>\I8Mq[i竒VR0v$2DYe" g;G4vbzܰy筋^`H˓fP}>5(?Zn:tD'vWVw'+$5˧븴q{ɩSmuDnkn͆])0 /ZJGɰ̋/eƉkf_{)2ݟc{&LhI 3%$~<+[[ڑ'ҘErOáBU"KĔy*F, $gS*1#z;*!tto= ^i:kBm6cT|u%=#~1XI95\J}P&mWbZv$MD`'e抸b}-0'eIP &`nU$S6|jX!6bAb71>FRDK'u<-0ygOre"T0]y\ @}66vZ0Z q-w}IL $(y4b9n0 CQKuSRNosփid =u|Tu.զƄp?ժ)[;_rUSlLԟ:3ˌeiIVFD8w0pjyl\IO/mvTɂ-T) @Q+÷Ai"sw2hH]J1uw̼ՄpSت̕ O <| Q3ɕ/cy9%Qֱ+҄0mH̋.~ 5mM֊7)rm"6ID@^]aUN+JY?DjfhYd+·PހZ247 _1 .*7뾱MkJ=BJ#)6Dž5KU-]5`#v57:8?.ȲˆM4~3S݀!`?n+1zRmkǯ-tpvk>cxA]XUI^hDht<iMUA$/w Ŗ64o)ۢa|x=>L)jq8z_8hVlSdtKrM+Tg2)*gְqlٌ#E?xYnx):2U{1d8Y]a x^Z€@bJ;J,^9fS/*Ex+ݾwVQNeT;v>eyͱJ={D8Mu t/ \dQDy7>r@> i޺14"cXX M@-o@`J8!J=Cbz[@?rE` nkVf vt^LYTz0Ai?qQ\6-޾" {noЇL)K74I:?u*xj7{d!+I3CUqC+/kpiڧ/^o7?ˑ9TJ.y'fm)jm3tGmVޭD71S6:>j$Q'{/BfE\5 [|h4O;1iatxꠌ2^?9XǯgdTO/p<~F`&S3.~aNt\0ˍ+zz~ˀexBYa7^-Rs/zfo$𖈽c3Gz3q7.d?ɘ6νCqð,wHU 9OuQ{c0"W!@Vo|$8QU+_ _&-続x!ZUyA&-$rO0,1.[ŨTz,?VVr Zn-4p摕YTкDZw(`rCnn(թbZp |Jrs(͒=9 ADa8Xt@#&>vG%|{$vj#Kwj|Ai+!xWS-GFaLs>> }˟Co5 ?}bNfOf:^?Wv u[chU٩ Ilړy)"(f96PEP^y𤛕NSc)`Q㏖w)n֘;OW^C:=(.(yc=-⩲@%;I9cW2)tM/*!yajm\ߛܗUr׸yCO[f<DB L~ ư8Py ej Yg<RKE<>8x. sVm(|dQs{{d5r\EID|Nco_R -PՒ!^(=]蕫.&"T1%f+3Kg/K^90mܗyKJ=#_ݢ/,P vBBdH^_ J{uk9xg)JG_ZW*NXu).R%LJ佮ռ#vCU ) Kuֻ:S橴g k+ඩ6T8͢ r h<{B؁|B~Yz8(FU lV9az՛P«FXQ&>uY9+,fxKW *VY'V?R!l2X%ntm;?7ãЪ< /7֓n_4;R%J75 (nid:@AЀъΥ]2eJ7ol%c×hɹ@M9*:ap-PuV.An&66,L OmWTKM6KJZ3D,¤oYQ#9V"'6Lݩ ~u,/nD-}{<. 4ҜS̴'"؄ Ⱥ6ˠkktqu䞼hm^beGxdiGnQ-!cf(Y3pۙGbïyJNL#ބka?5P zA,` ?m1Uƚcc?u%k8\NC!L֥FFxS͏+?EY3Y{ҲdХ+n/P9{6z hM")%,aX7'):h'9fޑyڢk|ŋE>[ !V=f}$~^r<'Ǫize[w)ب`Ey'818K?`dBygwp ^vՉFoWSJOTi[}>R`w\rqON?OO\k\ҌxX_~Ieo]bk-럄c"uMcz_^{5$b).kmƒȾ Żb`ԭ+|W7EW endstream endobj 85 0 obj << /Length1 1400 /Length2 6376 /Length3 0 /Length 7340 /Filter /FlateDecode >> stream xڍtT.)Ht 3tItR03 R 4*t8޵]72 8(hj@A> PtuAa(AHOD4p$HD%@(/ M4j8UG+ N9C`0 FCQ'BN}E="vvCIs`H{ v``sG"nP@  :v5x_``v[Fp_@;Ü(e9]5!n0;;׈ʠnY npv‘xSA!kYG8 װml aoz@UBP.H0PLTPLu@!@Aܨ \.[-nl`$j: c<f =223co/+ @ (%Ut] E@?ݢ_{%_qpYL b-M)7"7;;0'i=(h"P27GPGU`v(2B0we7F/9P;׷W /#%65(9%8aKw"z% jl?DP3lnx  a|LpsCe: !!mgr^kR{g&~ǏR>CY֗#:z^v 3'S~tL3Mh9$tuݕg%gKb#+VU m.Р7YC6[ Sg8=mI]/ׁO$}QAjk,/$JtB8UFr<_~D*d38~-x+0jy=f#OvUzzb +wk?j>3Saiܗzr+#=Կ$_ߝe5e,[m@/!ǶkhiT]762\TWY}Pjjεݱ!kkdw:ͫ=1&[~TdO{ggm So"Zp8t΁:T.l/)I=% 0] NiZ;0v"ky!էc zHyP_DAG/_cRODN"erlt?K4 =3!JJOQ5dK|)$Ц,yÒb/=/ $.O-v6qu+Nkc_&GUl8oi0n'<ή-0.|nxAk #|yk)u|?ҿTPKBh貺׋e5S'سVͪT\fGW3G^ȅ]ì[jofc,tJBGhĩ^//1}\8&{ ӍpZi-\K=p[}w(6h?9>9V|+m>9w97w^-HT>!A"rZ_#DgI{}b-%tH͙mی*jxmÙS!Qĉq~V\fCTI`F9Su"(2uz#n R9mm[KƓKL3zӱ.Nb "eeB֠HiY QjwU/Ele)Mc{p^ j/[Նuios>=B%.f|Ȥ^ J90gŏW=ߒ Sz3I}з۝7!9hz?59SV m(wU`NqU [ J QRa*R[|B6bֿPp{~Vdpڱ RM6FQ h{~O;4s //IٲI/Kն,NVQSIaKs8 Ua^H;`. !`L˙\tq>6+pLV($ .M_<9zZzTEհw<ǩޜ֝LJ *ݬ/RZO2'݈Jrl%Ȍu*EPWzmpš4{>͖6tWU,ji%ZWUl^c (D10;RL+ ʭu} (Z2uƅhM6g, y=[Q蛅a+e8Ss*gj WH3M#UQlS3Pj~K]c/UDѨ h'kg "3m[r y1w#[ð~!hIۮ>X7sn{D|"]>}@ث98\աJjsIÓ:+I/p蔐 I4CR3Gl(=18謧ž^[ĐF5A5w8ÙoUY:.sv_(]64lkN_hS ^Ly7&'Cw#% m=w+p$z$"% ;b3o.a?E9Q6^9rX[?lH])NB[z){$FB#6VV ɽ k"{Ggze2v=]=g}[Ʉi-Ȋ/OT1y*j6u*62X}W3R3i=w}#ankw96*:So! NuKKa<}nmKRbceU'oOBVw[Ӣ.\jܨCh<`"L6\XK}y8ځ'sw$ûn^|˟;a}=z7t(0 쌯{cNj52O52_`Hc´率4wWeD ֎2 4Vj9=iZ[FsY57=jٜ֥Qk4vF[Qj@K(5$5ܫx҉޻uҤ&)B>.>l1@aŠ5gE6M@&9\N\V^~'6vS 20qـҾkɾ 0%KaC 5N`#;}/!e n4(6<'xRGV),0g2 v5i.RH 3q !x8`sNJ[KM,(w7#+lkflC>qpU1|e Kʝ`("~Ճ/+V#,l *\j`&+)$P#cBm?%1EZ=UV޲J/3:kKXw49b SZ3'`(vn}oWrF:08y)~q\Ry*5KH%^tO27+坐 ^ט*#XEFbm;Z]T$AX>51F_m˶"T쇖inu W)4OKʻUHaM:ވ;Zl-cScS0ouXvJ=^'/66^ΞfKl2z,-a!Y߳䆕V=Ew+rXsM#$>C84ސHkw`e wx*FVr/\ _JRz򰎽ƦpeEpԟt1CXKBp:vHW"o(;pGʊD?+{e5x`LN}قhfO.c]?=+j~dJIFA/.sho amf!YJ: (gI$\B(XH^␎P *ො͑VыJxcrZBoK(Z!ڮgLbEl [ o 9?rm t}cx crh[f#y7m{lt=j|zn=;29ZC+6ƈ vBL*\F÷U珪rat*~sx˃Js\$g6LKIOE DS~D Eqh%eoX7|/u~ZX'};ҷ)W(/C8Ce<)xļR8U~!n]6,B8џy>Zk4M,rm1TX$ZFywܐ0> ㅭ}zKQ)0{ R|w:&eKit_ {)Ca$ iMNóSߏ+,I 3]"1DeLbR /!=Y/#4զc*pt%3rϊݜtٓ&~M$z5f&weKF&yӐ¶Ƒ]U3lFA&r\bDx__O@4 n~tGv*\;Lfjҽ?Yo{]*S>{ʑtx0\:,%Ճƍ2þTU ·W&GjuiϹG >쳘qe&ni~*)4m#gF֓eyLs0@'Serym28/?\8;grLSИ8wT<&sV.8E3Mv-ɊmuK{񓆷c pkS+|G{ h놌 6'L A/%Cv)|۝?Rwܔ(2۾}MPt6@C3d#]{V#`zc<>⼝Fֹ(gRe.f{ʤQێEg4`Z }MB-%p^677]%lSSBV|&ّbZŞ kiZ /G{s5 SsXSk;RNxOF +0~ޝ] .%һ*fbba.Cm&y8y7gz I::-2$YY?v&\v"lȮsEsy8*aƺ+}Q[>:EzO;L%&MYJŽ~3AԔ=!y>v0T^]2&iy ~1v~ע2@?\L xhζ$Mb-7vDw[H$_I#0m0Ԕ{4ev`gZiiWqb$oֺbGw3ުMk9?,TsV' zڴ5&v-3RgJ,}IiX 'yƽ(f~'bގD(9񝴙3.q:uIEy;' ZuVKl4O8?6/=/;rAЂP1XtBLj#v,VĆQmg; SPhTHLZX#u&S0?~wۧsdڢ^gkǼ+y"Xܢ=ܘ7QLhe3WMnವI3˺S;]9?lz[B!ekf@9}$'4o7O~Ѱp56(66<DcP5F/i˃C#bp{N::Fƨ k}<# endstream endobj 87 0 obj << /Length1 1388 /Length2 5940 /Length3 0 /Length 6890 /Filter /FlateDecode >> stream xڍtTT.C "0tHwH0303 ]ҩtt#H Ht8޵]{{g3Yí p(PR@ ;&a7 P8L9( FBa0#_/"/*@9E P Hv'jk” >s ` BA0 G> 0bz}2si*q6yyG@# E?肠'V fDisOj/8 dp l! ( c^X,/wCʮ͜uA+ -8v}Z-5鿭j( r0[ yxBP2b E`0. sDe 1c!1lC^/?Pֿ' ,! O10Pkohxap&`GZ FK`WS7 0e%7|W5TqYK>1}FQXH(Rͯ̾M[$sq^=M{V1SG^nj,S X9O$!ztl'g_5A],ܬ^QI(nho.~֪StZ٫$T S8}w;^(3* Ϳ!z綝JerKvۺx+J}m;h'OS%EjN@PlX"pCG9AX˼`yA f4𼂖m{s.R8#GGOo`IȢ]A7G߳+gZ\\Ƥ3u&43ct徒ZLV99IBsǂu3(~յ#\K;vQ]aa0Ò'8={NEóVva`+"^Sv:~AW?L\>u]ڽ<\(4wjH!aiaie 0d5[Fȇ>1ch^4ЧX:v,[6YS}[1^{&]AEWYWXl5vޫڨr"n5axQ٢%>ACenb0Toc;ǔ4Oe9ߐ䍕Tih6}֩y,|f}r5Ԯe9g1su[t0}cr]TnoO '5bcbI\(-_zՆr"]mjǐ/Œ[ƺ+鑜y5?;nl N KD0-Aq y͠)ٲئKGE7sy켲Nlpi>~\*$y_z3󛸘O&Xc?\=`J;;$.Y2Tğl3XMW%mؗASq cFMnڸķ\x гxp'3]Vr<9w,9@H">9]hb]w<A/wN( eܾjݵ>;z9wWx TL+QZ>ПbOiw̢<kTD*8H6ޚg,ڮUUS z.!1yذhQoVXfR`-V1-\.q@k=!^\Xv"=U}ڏ;-? He D%Qlk{ˑ{\7xr'͈G?v? Nwj|,jlCwCLĊJCjb-#Wʰ l,d)9U_5 1+RwR&Ǽ%ș$Gw [p'@l$5?Fӹ#C6RN[ 7cW: Q 1d&qpu5~OKr?l\%T\ՋRCQ tE[6Etu܂yDɝGЧy^K~g\Cp~=Q ~mk .v`pX>{Q佶?!ڴ'e$di)O]4"Ϩ{6i5'xcTdcJcW6eZXCMޞ۽]8s=2-ϭ {]^CRI_s!V6#azsi;uTk k@Lޙs.4G*mvS,؈LlSQIeOoTjhb,^ fI]h7%w/ݰ[o8O!d GBrC8c6 h4_%4eƧo^oa/f_Lʫ&1ȏOڪdfL\y):coqL;^RM۲&{XdGC8DU9 )2_!8LIaCz!4nz:cx'oŝ¿r<:i+.`$`?)Զ؜|+T<_ 00x`̦7.-rzSmč>YtStw"V?H-Ȓ`w_&?YS̨ ;ڇ-8SP)39 IH&M5l^y_Ӊ[(I:g8@pd:zH0;(r%܈M なiˣ -4 Eyp;Oߤl13j |8}I~hgڮRUz]R\$ʈ6Qj*9GPK@L}Bs&/.TlN39)/Sz/nMy $@^]IX6:5፵WލmX;!!S}B/<Ͼù`m)xSUR%D.z2/YFmlOpDyLn~-|Fcɷ&PW}/%M+c&љWt/nkЙJe>}l D4M/jֶ~씡bblsep /,uzJkGd4hWT~@aOK㳞I+'RZ ᇄ+֡sjHhQ ߀rƐ XϽᜲš) L 2KǛ9g]}٠pK\˩1jaٝ=`7$Ipxw o(i3R~$U՜*myIdvǐEyӻH@ʦ+o8nɠwa |yi//vIGn3aB!ޒ"GÆZWޅٯ%296Sxyհr*b4saQ*LIu*x(A [I7vc3:wUN@i@Za`"ぱ&O<0𚎂>WW+ri?䰂N vS"siՇߌ>Nd?<ˍ*j(>r}@\|i86`>reX50$rr5SJeq+u6%ώrWZ %]10U8* Xٟ#iTq# 8'Y\D {Kko< !s7 ӈ*>)PF\SQ8V "p煮xzX{m&ˤ3=@9z#"d}H5 BqxZ\"<͙O^T-*)&HBF>,,4$mx_rQFRW3N4_N.rZ>Ip/wC:OVHS#O= 4k+ӻp H+wdv;~)UW<|K$)܄)h*cwWߧ)Fڵd]u)Zg*oD@n`-)=Pz}%A@I*Nn:\ {'ܼ]Tޚ6uofOvAג!o$i,晵J33[Qg1{zޑWi[Hy=68?g\ށm O27BOfp+ ! u@n&ǃ.wRq/Iޚ;_,lV>yMb^O[$^'lw Mh#{z7&9lֲ,vWޫ%4U9Pa /s˭nE0UJ maRyC~Mh UULcg$zނ+בd1&gُ=nGE*M5yI7EzbAi۷)K-ZqVsP1eQیyNr2`šEgֺUo}q~lm-ph슄wZU ?L&VhmIhlZ+1 NjhΠ+ Isd&3iV*#cǍ%lp?dЇk.^7w%knngԈ>Ɂ/Ո TOU=hO'_cOI79ҩRу0lDEG&l0S;-+a@ԶZ&rCwAD}I$Z. P~z-?hffd1jtN}}ʪ\3YQ@jM 7!{/TyV:zgϺt>Y> stream xڌP\iݵqw-xc]H%hәoVS]EgZP*2 %lYX*,v&6xJJ5Kgk?bxJ -@#gLd'og qXXXXl,,3sZ2v@'xJQ;{GKs gP=hLh m&Fy#g (5@4|nnnLF6NLv悴 7Kg 4n`d3&xJrU;3g7#G $4:<\lMPr@h f`eb7?޿Yldbbgcodaik0%䘜ݝF @FFF *7H+@ ӞMYTh>1KG h[;7[&L]m-\bD2s3tM,Wd-ueog054ཛྷ\gGן"xVV3hni $Aheq{Ll=^:_f5Qe1U;W'"bb`0qX0JF񇯴jAc_Ů7@+X8YL@X?S/  k4F6H Zy;_SMK+4tZig#"ۚ[;FK' Kwl[{ˬ-mJvN#hZ&@WoJq[;+0rt42qXAh tf&[;g ԞrqF\fW `}E<fW `q%^+Y^;Yqe^WEjEZ^Wʮ@U_(+eWE]k"Pv/_4+RPMFN Y:}xu"L>A/%3W9_ WtsrYo) AkɿIZ++!SK# tc rX@jdJ>.wLxʙ}SZ{ж>6g>%KGy.ajMVxGxj,2v:|IЃD.~s"CZkgl B/7TTg2q$~H`p7Mq>ցy[@̆wPVx_FWIHۭ.8c5WRXM[#n Eby = *ïتZhSQWb(Sw Z5.ET=&GH&(Kst79BZQm}Z{KlѰ&\HX2 \;!΂)8z,-N]ˣ|MHLz mx[Wy-\V]bM]!#חIw,e۾boxۖ唳I&p*uӿ%2 5G쯊MPPb" bDF[FA)g^q.U O15~43+5Cp\8,1gF&9B5»NY`to4 ac@1+K7̠?ڊwx﮸ 3u]+ p]u[DA(z뛺(7)Ҫ)\&Ĕzkg~zMM)MgX&,kDŗ2,%ñ^\kgB~NSԖeZ=`2 Lo'&XAbSdH*VuPێ{4 Çœb4l\z+3| [7Ki.otH=H/?F u~6;7p.zW3-ڑ[kn EhCJP&;>dmV ~B?NHY;<)No(KL `mn+Z<Bq9eEO4- h_\I r^Q2MUKzߦ~j~PxVD 'Bʹ`A[St k΄,S,$C=~;zӝlvݕfJ$ΖG!L*"Ǽ+P}ʉQ$.vf_5Ԏ@C4m+O 2oѭCmya,+m'`1;L׊-WYzkN+zŜ&qA݃ ܸdӊ.MKX/ u}1Y`j^C$VSgOԲj%C֙3tf>ȢV4V9 ?;|\Q-04ʙHjJ/׮AxE@G_OAQ^@OBf8\RkJFx#X#:ŬtE}}~!^+EpY-#aSHeL -<<ųā]!oޮ I?JܩeJk6/H[4,^!m/Ix7Pfũ(tk>wpdb4g/oP.} y#BD^vQX[$7/3U95x \b,ΑHb0kHu6^\ (N U{6,%¤ q:~(t; PϜi?NxAR_3}.u_F!Лe#ҩ=WV2IT0X buK9aT"N{s-ЗS+;{˭No(8V)1ұ=~$B0fD+Tln֞lgUn+NJ/9;d#]tW =+>)$+ZTþWܘ憨RU+4rǖҫ|=uKy׾8vT"Ek*=W>z: lAQE^Xw~ILm-j{̴MC;Ц^2S뺠r^lk`RF. &Qj/sh|iDҹNÏ'r9arճ{]7֖v9~&Sb8:}콺Yv.X+cTT$ IWxa>I)ٔqB|t:JNz5wǔ:z>O@ *ϲЌl\[`a ZBrHyfrmBqHqHi yxNd$$1͕~>BsinXٝ;Tp&%IYLTm 2v WwRzdSź0w_OL8xٸeEj!O#i~c)3 ; m$H:4P¤ {(ŋp8,V'R1q^m9W)jmt , FLs)J-o/f,RUϧGbT~E۳Z0RkPsK[|g /mQ ~.w")>n9 +@3!&F&6X7^2njmH\1~R +zX&)koC>.8w=.69*5~5߶3L!{qu8 h֒DLajԍl]DY#Iqsy#=YEU sX> TF؋eX\LR7wm8e5޴]KFR:S.>?z~`&HݓNKNkLeR䉗7Jy+0,O@~5Մf<"gQ͸QÈ -Y83O MpG ;2X/~em.5N!+~@L*4u +}9~Spq|7 ݵ~sV#}RmgR/#1$uUq2 YU),QZ*D|2Tq!PͨƏ󫰯IDȁ&x$A駠PLh] L6{-֜' *LG)O~}6L#[b $ و׳ե=6u.)ojX83GM#DrNg%~ٛ)8zd=[H"|Hpއ*1$)i垧d4e~c~w+a"+c%g7̂Y/Dx+aZi72:jYCrڵeK2(PPcXFU*(wH_JM'iw"4/qFUcRb]sƿìQB"viZ V_z8!LGAk\g-6B 4ֳs朽eRnY{0GA{Gt zw$V|m_h,*4נG _3t,>Szd^Xgꋞ.f JkxPRh1"M˗,8!䥶8!16 BJrnz+B=t.=|rfjT1"̊flZw Ξ"uŋխ6OxI[&.%69^{GrnbMs|*k({qd% S*|crPz!T;JeUNސjtj}m}BX%*: @L>-VDTV>cig@^c(!s<Soe)"Un_onE3OuG)rLH:{z|rXm~\JD{[sJb]\>n~ tlʍw!-7+|sL&,,I`yFԽl=|T_U2:U(+)~U}T*b2("ݛK/ٓE([t^ nfUo@m !~!7b'(y SDJ!iR綩ݽEؼh60.(\]Oey-01,l[R)FY6j M'łf-M@PT\LGl-'ÏLeipS}tSQ>/9b8oR"M[M `}&+־?;E Yy:@\'q9!&%l=.R6E>DR Ӳ_EY*.:Yp oo!x :WJF61j5Nuʷu0Zo?E-;SdJݗ|:292z`+*u4/#Ɩe7xpNm D9aO ̘!u5€):xC"Rw{U^u;wl(L;nF_%#i[ cPcv,_Z*ŭ^ʟ{eIX;g(R~,m S+9.?eś_Euǻ2AboHCاQDI@p(-e\\!vM*Q3jIWeMhf.FhA1hp5 %pwN2!uGXKLϐF@rh%DȀ{4kJ0훩3AԦ蓈Q1GT8pQH"r_hcz؏@䷎oOᘙշ)\w$wׅ+AGtCA;E4˕EC/J'mO3EyTy&VUP=B&<y6e%"WZPZdl;÷/IG}8'g:uŧ3#}c_K v%sbuB3eŜGMpwqY.Bo}EWUd!fA@>C_58R$z EL1%S9mp|k% }gû\B%q1,bOxv<ŕLG_}H Gh_>""P5!:j1s ;Ŕr;P26#HϕH{,I_rT^C#Nzqt(q2(O㖉F27-S%vڪD٧-x H!= DלּTXJ0h2DmpV*۷Q$Ŋux9r?Ĥ)W1G3/ܦ-*hEWY>qm-:L⭯,r!<9_x &ViPMhQõ!4M^%Q1kݓ4"\nw[V8=.`mnvK8]r)VH0۫ߞ V u$tbR!E7-^D :ʉqVX~R7ДiR?f TP=嬱¥ݜ.[x{/IGz] m+8p>qg;+F_F-\;q鮄 ^F>Ey{}E|-o4 "A4  |+*+7&E Rf C0IZ荼vk/.C\0Qn7/!C /8yXF:y$%hC5Av,ER*K#gCܣ^*m;/K:TdщCnjG_W 5rmkV/a7g1yt{]Q0j%([Sjj*Y)sꛍ.ZFܜ62Db.XcV%|08/ }Tq{m*]g4 Pa!TZFgV3H#CQW-BfZR Nθ헑Z52Pi^U-%YWsBnzrgj-gGV h_re`ѲfZHaoBЗ~9$Yi0#La|<ȡ, IENC9V?zܾ؆̯o aqH*%d0&.Tkj]9Y'VY+d"Q$g'ɮƶKja:d*mx|erP"Qh( lUЫr>->J߮qӚ snnâG{<|?DlD{)GT'/މR o&\~|{g{&jͲڭۢVO7n VD̰L,s}0x+-v~[kR Pw,ά}e![a.;JMYr T,}r1Ap 3RF):^.NK7l6%mJK)}w k!qJ(~*5TGr 6:=(,p ßW{0z`Q>4qN*V?3Mu'FD` g~D2;ʟA$o7Yȹ#MSi(168H:Ƹk;j^* &3JO+Ds p#Ҹ'p8(^ԅRb͋&qs@%4 7mC~W;c 덉4*|pFWt$;<8۝\1n*K̸XՎ#+ɐZ-0Ki=ㆿ0Niz 3/qFAp{{=r FQx,:1q _̬S-~1õ#N3 b>|s9ѵDٖrRbd]+ :`&= z` I1& ikiX.W l#a1bZzz+ދ@N{ڎ;AU>,<>@EI\''ktsj]au fGƘ dCKgSQ3}^/Tū{ӸQmeK{" %rZZh.ƙB8^VkJ">V6kڸx PARݪ0Cs MLSh/EϵJOX{x\b&ݕА,,Kq,-(CkV\k%fH9ШCVɅG^g{u*NeVkՊɫBD/N`h>YV #ѴB۸B@|Ab$)d[v'r$IN;j鹫t2Y u.V;S2V5pƻ2*t<8#MIqDAŔ+%~(%\j'z3̃HA vff{-Z}O% χl|Y4+Z¤f zSv66r*i`)u WiP7s魍>+߉D :F\8AB2r}/K*b6 :Wt>WֻY|>gS憝ž-L}A%Ѷ뷮pes՟c '<(:$q}\S?kb//;/5.Bٖ&mo1&Dp/ ]ӝ?sً_@|#Bbc7tz( zz6YהGyQBqpՐхSZgN$//W:\X"Q_KZ]/`4{;kNv)jfn7t^ g; 2x`'M2^ټNLK͛"P6b.˔tt+|ׄss/]rM1Vףw cd~o-3./Zh jNUЮş;Ԧh - dBJZ r-"]RK2=Ӯ3x* ^ bWxgk|G 3IJڬ`8B+cS"ʌ%? ّ;'GBƤQG4 ,<0ΜI~Ѱki vDL5(A.qq6nm?@k#rqXp. mS3 ˹λ_ڱ v 7?]4xJTW9w(9&ɤyBhh<¤P^fJ&\ǃ$8=~ddP@U\x}~ .l˖RKgA֑үC0)S]uZqJ=9^mQ̮MDdTcD У[.:|Ԧ,%媷=7Ym{"N] |R˥I& zcoRPXgA?8+ր}PQCC:?X6#KrhY}^C SjZ Rr(}(o?azO~~O`3Gn3F"Ԛ3] Eo::-$]Ǘ#I?g斥47y&a/Gb˔>\-jLbu& }KM:ľ*bs.*xh#! eW B<)rɔ< D1h ezU{˳W2 fɹ|t& OmRGG&ژsF^rT`[zMrYC)lO\gSP3e.DI8B۴v[-թ*/A'ihۨ~U橛_+!dَ5}"_8ܽoCCYoI ólFrK8)[ q =?E]g E`>a\IL]j.9TKxv=tq)c_eCϿGV? Mⱹ3n$u)0vg%-WXñO Vrmocq&N/l:Ec3z6À blá,9{Ӄ'3˾`JJz]䝏z=w!R$%$C<$/]'DFGbؠ}.Xhs^C"XO]:0C7LPM}kPbNF~l_d8vP9+US.ϑ%0W}3Ntc:ʚM~Rǐ-DKL}ל l7GwAXFZ!J..ݒ@8z!#=zB<؉&uݮ)# SvR5( AL06Oo5g0 },bs0ޙТƗ0j\5Afq*I;9q~Lך!&5<姡Ws8 s*zQjjJ]nMo|s6%=%PSK*ҹijbUe!if׻a,)7&~~7y</Gjbc@%U֢;'u.h m5 ND Hg-6a7ʶT%0k$Z|X@qjȶ)b"z9{cҏVN0x+/ЋV ඉ8ٸ,WI)u=.Cp/:2yVing$";l!\qLSB;!6衚|U@$]w*X$6nL+d=0E6TM;v3+/ݐ٢a|swd/SW 5:Yܦm E6?0GLV?8H>ӓD %|®ump V :gJo'p\\P^H %v/ec*mU)a=jn/r9ŵiEbv;h+TW.ssyjyM+w> P]DBqPt|%.}1'$hL`6kT p2[Ml|LvHj_B&&!29Kx~~G7"*GJ4IRFK3 _g|C{<. K\ iOYC}= A$]^zOx?S_q5լ1sqm P9@285e#{OR\XnI.c'i0<GT9Gh-ՓC] CC#[[&Vwۻ>Y kG笿=º~w6~Wq6U8#Y~!g!Qnԣ߆ygDUQA8mXP'DAQ{#fUeuaHWyzgȘ7 lM73:jNEL5k_Gu|_\Fmw;&٫a`U6@y\ ;2tcU-{q 扁 ;?$cI3Rյ&j-\cFd; UcAr| i;' Qs®N]bl8Θ\4ۏ)vp Q/o 6>/E6}"Hf on^u{~ɠtu -97yg|"ćBdvpBGNeJqػ K୤J 95*悕#Kjwʕtu.XӝV}U^g Ф95y&ML8kl#Tߠ\:+v,X" \,)X HЄ-J+c CZeEP /F)椧KR:jm~rG [yMڶY54.fРuT!yru.$n]]1OhqrR\=XN$|fe[)J8Wj\24{-7a7k[J5LPɟF"?!y0TR^ݩBቑLpSXm<kSF^kM%!8&,m6܄ qhvteA.-7cvz5{|FN 57Y VAj_]׊z2zwe7쬎%V0h15?LEXi>rlFh闪M2쬯ȡCogj\[|B:re;ƳZ"qR@dZ&B}Ú'ʝL '>L~t0LԐ2RRr ԰qQc8mĵ8Uwzws\4XkWW)υJ9^7@T sieLBḪpsb#݃ˈ\7}LЃ:mYRv*NW vB郣+ȹ)!e)6I oͳPxEbS]"wVL# 1dnH|fHb+Re);9Ceq莉om<`3i(5, Fq#ܫUf87]ڪK~qdJUg8DhnTAǽ.9\C௙3 #+[B-:_*2OMfix}O,}ݺ;ee̳[:۪Ix LwOZh j#Z=j,piZkp4@C̓ H(XAp\z{A|!Cq5Z 0F3U1M5Â?B5jO(Im dMjՕZ($S Xi:%埣uϲz ;̟Mllmw\ݸi)A=$yB* hxi,⺙Hڳ`A8rNR?< 缫 ㄣ h,\zrBwSf|OeIt vZػ|**qyӑUlr73#)`C'QPPEXsQXpUH4#yU>RykҌU!a*wu.ͺ_$.}A1]ǣ07R^2 Z͈en7LpQ{q x$w,sK >j(NqxQ7[p=xܴG`@ ɉ9Qh'q>: 41T#HバZCѰxW$ؿpsv0HP?9yۮ  4-N2(|6%ræCQ ;vz0_!Zq~} W'T𻁄]Awg$ ZޜYU}r[q4%Y:IR'lH"tE4K1`A4BW}FbϾ+sWlÂӳ5gWEyo1Q BXG]Ϗ$ǘS=6[Mb085AFc:5u(di,)7VGf%/fY%rk+延I],@N.B}l9Q%xŹ˸I YpFDn=|%-3#x.19t;f9pi#ч$j=ʿ1k=X-,P;6$.2"_FKSyPϱ2HR8FN@Д bJ!MףIYH [8@Aaf]*n>pBtOLN~p[û G5ba>Y(cs,5HRhN 4|ф.; y5^yd"  "ޭ~(s+4LJS;d$ʝqTOx3ջ36 k wPd΀KQ ^/qЙH AY\.bT>/RN, Dnh{!1w$Z ]g}₵)mH nU!{b@JFD7sae kx0 %R7}$Wbv,>bh S)W5XrzdJ 'M<:1ֲfYg[Nf{wP|6 2ܸJ\[X 7[gѾtGp9vgoA R՗-ekƟkZai۹c \gQugis(.i;Cq|NOٱo@y ΎWV}-4"ƍiuC.[LTV-X3[4"Y Pr|Q fYԻ@ķWǨUM|X# s"! aQQ=1Tw8a/*đI'!H0\rPrWfZ1Y̿*<TO"侏)MkuS-m<JHTF~vkJ46 {j͒6tzdžeSRAɵ;VsH6:9-!"~"mCKM3{sSu'w/WLQ}o5'㹴M}M+ 聘7Sק,j!=- @U\f2YȜ < `UϮ ht3&43~l@cuH6J/&ӯF9q87K@v7Viq'?jex:{+܍$=W~PȮNt2$ѯ)0@E_E.:r~Y0. eτ<%iRWDYr6AʃgX0t /ޔdrZ1"X_mRm6w)eT‘"`etDMY?eO/q=tМ m:ej޵:!ѹLe] bwrª.R6bIx8@q]<= ZtMF1a|z;1r'ȚRu dvpS,K6qłuG1lh@E +B6Ǯ"rrP4*#_`MδSÈ+VY+̾OţٻkЎF/6-\C:E92Do,a!ݵ K {*nhg28ߛр^BU S hC .O4 ?XsM?PMT~CXtct} vKY44zN& ,,zj2ŻR81Y1/XYոO+\z1/\2\_엄骣iȿzV'QÈ5e j?WeTCgPl $Sݢ#օ/@:J@;1>N 8C\+m[j'NY9T⊝q.~[8Ȥ."my 8䪷y}+Rׯ*x:\edhqg*Op֫KGJӞ)C4XPoyUӃsᕋo꿚}7; g Q*50S pLŠ^`t<̼8Wba;3MU}x+ejW6 g! ݁ Ds쁁C[Źal㱌mM= "8.9gc`\9<1'xX ƝZKR$5&%pA<bV* !F8],\zP rN>ObBٍ릊I=T5-}b?f *:t:d wm3Az>4֩ DYVT^ԟo>w1{ڭ2mgSQ:yIn ^4 #\;zZ鏎mwk/bS:vP;m>YۑKq,NH:]8r¿#pD_GO[ŧV4P2YЀ%qdg-$Ү 4Oѧ4PG{\;Cr _"<ۻ[e"uaIGz-R]+R\# 1lER%c0=AAhOMs ⢽Y=(0ٕS+vb%uYZ%tkDZdƎ=?NtU,f);,k_>F&X` &HqN P1SHhz6hfVahUuelPh2J |e|%Nk{DJb=L {5I `Xi,;ZP,^74ѩA]=$b.TP;rx&߉S\)_U$KvmspeF)tp]sC05PaR'n8+ & v(8g^2BH4~DogKmIe;Da#L3"[:x_ Gr'5van+$Jא`QFf㞝,>\.A?;mx5HCe^A%ޢi=9v/ȼ-@8<)'&ФN!"dH0`mVIPmH:=5dDBba cxK`LTW~~R@(yC™u .@#)f`u=SÿE5F; ;&h?Qèo4ˬ܅j&ǜ<߽[,%>n]~|(vo3vgcM[{j=댂IϲL2A!Z t.vR1Hzy}H i–cp|Υo)=Ad%b!&,"POrf؟/[2-p2gU KClzetSbBG;Eז|y43o0s]iF zGl b)N& ,Z5 {d&d:z/L"5 e* #cq t#uiAs0m–MXdײ *"c ;gew+_(OHP:vIď? ǹ=CIgSyөoG`FSeq8 fcK}D[3*qd. sarF?]tQ >{e>.ĨgWf1faHf*'S7D>`hv?kcԹ/gyb"ͬaӽƈg8Xuhi"@vE^MFj \HB&q_ۮANH) ҭlU+$[ޭ;u@F59@H -ӒE0P,*%}"9^q0ߎ˧|>iv %RsvV[3}gWޫ$jZI pYUT`I_.m1L=7A\Y6joJ͉JjgvG׫C76e (:+7uQι"bAN*o`_k-uc& ;31b9.Dqi1fiޛ|mH%/jp{p'E,)Q)=}Fa;nm榜u̽;$eoB h7Yt ƶ&+і0[ta'i~  զ* ;˰APXĿBp~Jʍաk-#e mMi`o J6 hsC`q!eNL+yil)%[X1aL_F5 2zfJ6]P#.!*)h*ynw:v.U b]p1;ds+WCԬ3M@6 |谀dL"џ$ A_•uN0U"ʵNƒ0g7,eWS\IHk7 ^VX"ܫ,[)=IJ'qVZ$6Z\P/3fiAbǃoB18;Y+W+(Kq8 yFeIuGFqbFx"kg\IP J01۝"oԡXh)!SSiM;GGqv`kcr53 벱T-I&c.U.*k`5-9C6̉HA=.u~V:;'^ٜ1„ L8GU+} `t{+w%a[f #5&LI)t m]jScIYsV/u̬6\VCN!9V>٬0U$V=8}f`Yn ui;~ #}[W4'uTy_O9ޤ_ l+_^bŹ*P˛೿Ǫ(y># ,bAg< MA}"܋e~ASE;'ʀؗ( OvoɎѼ4wo +1c'ݑ] A{}+_O{͜VDNh$O+>ZchJ,{&oPyb9@;Dlj`^im<,; T.Z܇ +-MYśc> stream xڍP-=?J/ck?/gEi:ND```ps8E \!&}S4%oJZ0s0bf.# GK??joW::_u TʁV[+|aFf/Kf \ 3ҽne*wJq ]_pgy]Ec˟01B^]yLxQN.? I `A&k nf?O`Ryq"<& W=q1Y_Av kKמL_3|MbOZ\m^?2 7_d k}]{&Nuk~dj__R_Kqp^Kq|-O_l2r{+yA ¬ѧ󺀎a"g;)4 v舉4~kv7‰}oĩIݏZ=c'wڑ(8$A"fPxPmȱuFWþst,[ QڭT6[6I|@r~Y<D[|T,9zbNMYo3%T ._NĽsNdT " Zm8mEJAĭcM;u%:ܳGl+rhJVNwY3Pۉ`gs vyĊKi%Sx.S隠_FD6ࢯQ{S1R(ߥ |I]@Gj4@ù1/ͅޡˀ$'d?ڒvOw8a+r3&8gZ tm:.n.3@yxN蒁wF]8Tޛ0qp`FVKl'(HkBvf:OJw[b:Y W_ݒɊΦR=^F zqkp֢vrM9VGİ^ZǍ8 "B;qlٔT_Gr:ԉںϱ eQB$)#NW܂nu6WIODޫxw%oO?V @9А5Y$9\/g$5TL"Ŏ"{NG 0Nj5eFeS1E4T'>)9ˆ)F›ݘ;CK~n3o}gn!t?C*j0`#6zYEm],foóKgݎX)kX)>=YyQ ravGw^cv?"" Hc/C;xg[+  7v5ZBrfJ$WΒl$>?u",[~F'le}FW۸vL RR&4ʶe!+x:U4fp+7= ;P. >6\ F I8۔R%'G'NɅm!H[͠hiJWN_w 3C $mUcrR|n@R^j`c24(9%H^  髂jvf2/]kH%dnsBsM>'P b v R;~LW+Rć*z\rfSM=iPfYG =(D1@ bt?4YRNJ+1 9'iđ8bjTV,yډig>ڈ nBٱ`uHԠg&sz@O7G0 A\L *a5v4WMT3/L>IgjFY=Up!,f/C#84X7@r:YDM;"S|h}đ^:k,Qpr,>W9 o4?o84f#Y!gtLչ>mO ]7v.a^C0ժ?GS]< "!Y"+RS>Afwy 38f fg/b+]ibs~Qn^&,EDap)h|tuv7 yso! <;n]dpECMv InMy$v5{]O#dy"np+lIo0x~'\l"$Sd 6GA]JNc0^W])紆xHrΣ>~ ;j&ـDv3v/:x!*zƚX?8}o &x}\trUGc1/oQ {<Ά*0m"n1i# dig0O8%oח RH[/b5Yн yc,쁐X$ K7yL9O4\Ǩ]|^Ľ.:pϾ]VHM? C $= :b C*cc>${o7AN4 UV>PȔa싶?ϑ]OĄ6޶U]|PVO“ "nTөWUYBF 'b!iyƷ:TZy7CQW_²#IBCf=vx(3:WM06|: YP%&0Nb|x?eGP1ޓJCjzs=߄wʋU\ hwVAaildg].$|qK8{!W < ;3Ŝm?=T"}7PQi҂Cer_{q.Zup@͍>!UpXc{bi?Y΄}>Q)>_Y b)V|ptz 4))fbT~- o4pQBתFn!84ܰa0O4sgCR0mFir {д>H*ԸGB7tձ-uijڵ>\1E= eq'*9$?"TpvI`Ar "}[C u tW2wla`8q:S; UZ?S\T!.tiq~9ȧ-YJKgڃ0j6n XdFtj6D^ {YY8r|BCQ"?6[i.gmJS-+Ak~g,Gb&mh#%?yWڭ"y1tYޠFn& (Mu<3zɓ%g~!%d>t o~8_5DOB*ƗrJ.n+g1MNhENl1VH+ u} 'J$'MlꧭE| :]h_֝-|Ka \,FR&溭K ʽ|j"fr>ưSKE2ݜN uEu}|'#i7V1v錏F"]jSG./TD_R E-v-4a,.`/j{^sI3s?*vgs,SX+QOJ2¾aa5xh*~M³y tS>(~WުQ'?'%`EhXtD5/K6lc-ɭ@94zFifxjd| (?wQVtD&'g~ :s Q\UN QhV4+A˸VϘPd[xs!KEBU7Xo_!IYnlsJ B*Qt"iro'b&2\k~΃0 R 唛~^-J~jlR9bD6E?AFFPMp/ק7+Jvu"` plX8:T,ߠV~ng" DoQ3}r/DW=~@E]f:Cw7(XcF>K bMD{P@m- ZY$-]R*!i,b&{ bۖ)/x3`%^ &Kލ=Y@ n'B(:qЩ83[X^69^ á+(s ;VA,X@2tEiF/ /ngN<ԑ<7ڒBjK.չ8[K9EH6:M#yDONm\|j͌ ~2~B\(Ue[AOvĝ(1 T!v;ls<zu/nʗq^tLܷAPakƠB3|[q`$‚~1-=ԅʃL PZυdi6ܧG?nʹi`FLa|j/+l'>y"SP`} ݒHv\xp2fH`ly4!Ю"8eזuL{@"L{A~'=lYm޺k4T q=n|36L͟5_1Y(1lljj;ΎhLQH|ij,*rnldU l)$-sjzCB&l#|c*ÙV1%m#0fh`G7rxSJwtZ%2o:c5#///4ѻT+8jVM=I9F5Ggey**xcx6Ljܞ=EJ&I#[e(9l :1^1~y ~rh$rz 6nBmMb}{g%+H87j(zzE`fš|d2Ο y~;r^^{{CHul,gv^9P N i{vZ\(8[_%؅Äq :/:Չ'Fދֶ.w" FG?9vA(tI%ă"v!t4!qw{Iψ9\M\N_ǀdu!nj[ J؁*GvT%9{>I^ 4/WAIY8 „G6:' & A2roՕ_!Cf".2ŕ{#dJ .9Vrٮ jJۈ=h̅0PdbB1wC?Y$e:5fU|gkU&1DkϞL~@dr/B@ 6:GVnͱVe*Y4l_=g86E1;+̌-}E|L&Ruyee7T(kxxw d82K?^ݶCtPoŘiuy3%OEUlŇODNCEҰ;}";d0iҾBt`Ck%6K5ߺS,Cmi_qS_kH],%d77 Bx:Z&$X^ i=5wJudoXY ϸ=gG/wQOG>[oul>`[3^!-?iq{G} n%Lh~$3J3c2X}V(?-MD$4+:a3)չi?Ou5fi+#+70-Co9BE|yC$) ݙ CB{]hh9/-]/< F%ܨz}Y]{\1~<\'忼&~GU_/R6Xqƶh1ubᦿ" N6nH*ɿu"VߋfҶ@fj.hE3'D%o՗(_$юBZIOk:/y~37 ڙR-Kк/ч3X;߹c:ձXD:"@_4oTCI;:AOXQCŢ슌E͈;@]EG+ʛB7y;:ˉȟo9O©:xflwZ3Hs0S[ٍ#TH,NMP~s:%f (D_YO0!Տ>-ʟP5Uz QEɮ[xel^>auZރsǯgoSM-?k Tl=iV5&Mj9+IqYPf'fUp#؟7 *=$fلKbK!ʮ Zɇ'G;v ̖Zj^ >H53>^1܂m>nl6z?j,`dg }W%]N}D>%BԤXx_ϟ'-QٔGo=esv/@5>.)]DP7EҶչ L%&̗|f ='ϥ:cj?F!(2xi zR(顙ϸ|kISGMqmtޕ| "NUzU추a(&CyIQ{5r8#:`=[)&_3fϵ)WvS͸B!=R#.8ZN$эw7B樞{.p5}fݥ~i#T;?=J߰!m#s+9'U=4}rC+B 9,TPE:roK!Cvk9xbê>\n([ CZ YQٌ+Jja/똌|rF%s&lTD)Sy#( y=~5ϚʏwHk)G ) ^ú5hߒd.h/ Bq78Ҙe c&ߑǘ; nwI{+V/H?=Z'-*-Pb*5J, N<엸OL.v b~ v⭁nuN&!92+ߚi \~{YQ }qz4m&ͅ8w6PD>]@"~<3YU|$I{@PO`r.XGW]'ҒБ/?v  zFc+zٿjcuH {ðs`q${ٖrx*Xm'x.=wBs!QMF=Ws L® %<B+Ddoǵ n<9wbkFPLcӭPsɈu&O"MyR6F@/d--{\I~h* d.~b_yQƎ=L:J!RpP*>Ø<*,3ƸKާ(W5Bx{r\Ղa}=|i1l50&Ͽ/R=S"؁Zۡ6o;XjA[L42*hZWXs*aߍq;C8Ht•ZG] Nrw<S(zM}HT|)G'anJ۟z'rE#C8'OʸݿM's5)'tu픡>^.,!K9Ae.PVVȉuqQol'ꃳq|s["V<Swծ.Gb\ Æc/0T#R [:K`\3mTBLJ*6xwɌivlK^uG?sZfe \`$P!dQ4qOR&=kd2If< 2'5 bxB*XuyT} ,\/eЂܦTV1qKNSL)c$l1K|2A;/!:c7),O )+]x`]VNTؾhiZVUrF6͜V I y6?ׅjNPQG*밿KEt66g-]3= |,ɦnlXL9Xh rJr_8{y<&PbKcj)®2~]Y3#c^[{t>,'33=rafX!_"Op Y'vt|Rrt-Q{y>ѱ+tjb:-c[aƜ^<i5`1E aR% psg޻ԽNA߀UP=a%*koDb0 fY %R Ljf x+M~Sa/*+8KCt>lw.׵4YiL g*tFݗD%'TmG|P{>+-jM1N%m솞؊,MJ}֟nY.㒞@N:3b Z~i21^k={8ϯ6!I~_ӕ ՠYq w?BǍTN(*+K^e~׬؍KjvL/l0l|HL.9[}+psK셣W *xH`ɡֳQ78`nîO;P> stream xڍvP\[-AI ]``%{A=hp ]${UթsV{5:6p+Ȫi@>. QeaA0Eumr {PxNl!0_Mx8s .`%(&lv`w]`ok{_u}<:ÝM! pwoǿbA`8d7mwxL=C}*z::'#r8ya~ 0Y4A{K)gk6XΥ-M@o W (p Pp׿~ `M5Y5 鿽J9AFl q#?v_Cp7ȯ[~o{EvKì6&W)  W@s?6`ps!pW_'*p+2An[ 3A# _vkW_`7gqn-PZָ4A+k|WUY!үz6YΤ4;-/ڮn,'p>OHQaSrJ}uvDmATfs, U+41 Mg^ip cU,9;'ѡ74Qr;n<_n] TgDL2^+%l-U6ۍYPe1 0ҍ){ hr䏁u\l=Vp#EnV'-JxC.kBNY=ɒ RU(c%#T}DoChB 2FW5%_)" ?i v,gvI:~FA/"v7q=_\ eb{Qnzꅿp3"]<Ҥ3[niߨK+=Lgټ7ޯG6P)yvNˑ;4'10V&q9JLMC#@AG\n, װ-Ɠ?TFc-)F٥"=4ާ{)vH9^GB ϻJBe%o{wHyFN&6"a`Z̅v DKJoD5o2ܟ?nFح'#hl&?!OcrBP^i<#Gꉂ..YM =G`b;6iVQ| xUWnJfо;̸ ;&0@k>{OV84#Ζt=*^3*#%8%Ͻ.j;/M?ێS!W˲MoAnxktcTHnf#? qdzX-9-̯+f[2sKl`V@&/'S5HUڴ bޚ5D<0yjޟX-V}'HAtg(w߄Zj3 ̜Fg@SxpROC,Z-j2jln"0mVۏ4Tݤ(K[GV6by XM\YV:Z'&,Rҍ'VWJ1ae)?j/~vel*q.WI 0?:U VV I?;rsJb\:AM:!f 94!v 7Y̜Χ Z7m:[[U$FTJrfjr2R28+]J yfζ} ,CC3:N.VZ;8 (mJMZvy?^xq_%D|OWzNY`𕫋KqS;ͬ#B2FQ&v_~> @?U>W%Nv+n?JC2Ӡ`_{7M\aA#ំ&$l^&FsB1l4!ꌩ۳jYP6Pf񩔎[Bu 81$pjM؊OvQ:E`H՞}. )JDzׇkp~c5Eu\$("_3,T >we0eSHOzǵXAs#ґ OMyx &jpSdx[E1YQRrw]b")ƈݷ']W֣ͧrJmh2X&ܲID p↪.4_9B\RQB m]S[V>@$%x؋Pٹ WuٙJQڲ͘(^TOu,Q?Ki K`#a'bL1K܂(6L ),ݪKn 1[KRY6z]Y{銎=w3jر)>jmň?Lsԫ2n A &ィrnkjrnXHL^GT\o!:IaN/}jkEfX]#|E<)Im آ$O!)YfiCxqk9Aw쨃W {"ׯsc^1 y9Q}%xTJRbK^w6GQAhFp{BNZWMW07ttg$$b5l* QnjCmj6 ^ڽ-Ԯ~J{w&9;3? Z%ҲɄcdNaXC4d%x@M1Ոّ_Le(ណ|j't}fϠrfT޺8mЛn4;c 908W/R)ћPMHE+D+>⫧ 7/5P1Z֑ȿ}?1x"XV ~bU&eV9|@/ xU:!+в E*FAL_-iۙ{\A]a[+͒O1x\)3UˊyA(PM?'Zs!!|m}en]Z'6r- SMdO($zX |jHRwXG~t h;J'1koJ"q~:L^~E0W1KhOi73>X#l,{@0*փ]܇v0AjMR#ʞg)Y:Ϲ?3xǗǐCw. S6b&vS 5=+|ʃRCum?ÙCf &< R*<ȗ*ؼ̕~MdsL\t0SOKv;²[4:MA:F"qg},? 4="7c)yF(2疢QMN륞O@Jq 5ljy2 {8jV:a B\qL<֒d1K25?7n#E`?\R6v0n gv3ޙfN7<`{bpV̳J0C*hʄHrOGdO  ο&{c??ڷ{߇f$BfV"%2@]7Spsd1I?+#irV)"K}kkU(bj`|4DaovsXl֖>Fd)<(}J*-=x.h ˚-X>Ϙ-DF|rFwLB~bP%E?8&t9ZDVYc=@G"醏Mw[iN,Oqd2Oo3;5x!mVbKLjMysLϗW3gJ sG4*?q"ƓFAOUG?Mqk~7"BSǏ 2t-Z5U0A W{pgL r 1k-ki6dP΍#%^`䨤a1+eo6zz% b< ߗL )Pe8h;P3 }QS0E}5ҧCYw({5.Y6a=ԅzy05.kgpZT s>W5,{kBDe}T r h;VՂՀa^Oc aa;Au/@@!w%צ?B>F~q <8fU)9 v}5|6,n^7Rd@.~yHnGc+˽Zf~V19rT3+2 .:z$sNb*O!a4BY%0=@{Ǥ\{$qGKT _6;ch΢A7jM(tҍľG*ZÇcPd+4V߈D /],!nbDpTӻ֯q_ǽN7߱_oZ/Ʉn)"6+4guB^(FTǢ芀xx7[sT6 Y#PDZp@*.4gyGX3zo90u 8" ]/|'眳va\ 6ɐFKcG/_mxc9ޙEvb_6yAO瘦_'ii}d}_vC"^HJރ ;[o6]SQ&ŕP!%4C C%[뾭!EVݫų)>? ό< Tτo[60M^$ʿ#śg"fg-C9a>'08>_;woZ 8_]0#YFmk%hWYȶS;OQܖVe 4nR&_1ܑSZv-;3_2"#׍rD7wtUkth8nyxi_u[i2⯼~agڈw{qƝd]66cesT.$#J,EgnPo5%ܬLE5$=IW[ U2&1mj#;^6,=Z[GPOQK LY8!-[D"cQ$6|yֱh+(~$pNNtCZ4W 9Q>>CdݘS$DU?ɕgaTL)l}FCJ lk26ajGuJ16+Y߱?hK%Ie~)T؂D .d]?ߑjDP 83̐gی22% DƉ({rxvW?6b]~\J9655~Z*jq"Q„4_A|Y'$"aQAo~]GܴOˡ2">x/ #+i}d*~皲ֵQ3ܽDv M-\weľ_o/hu^7g:k]9ҭ7m%cD Ca:1U E0yt .գ!~U6\Ƞ}MfpYv/=WL_Qlv%PT_~ZxU'jpJ0XΤUhHP;f~JkGW*.U(UE?rПwo0Ԉ>Lܭ*ߙ~$PyX6'$mpr(-7}qsbU=k2D}W\,US׆ԝX~ endstream endobj 95 0 obj << /Length1 1373 /Length2 6096 /Length3 0 /Length 7038 /Filter /FlateDecode >> stream xڍwTl7ҍ #FnPBc6F74 !tJJ7H! !Ny~;;gw3 #E@5}I$&f0/- !ˮQ:qG:n1,d@>0G@z~H S_G "##%'E `8@rc*BnSE# !+,+vB y0 E@ݡ"\`^MN(_0 (`(  w"Sm=_Ww'!;`nP Ꮏn^L< s;`4h y`n'd  GyOB0[sp/<௳ {Goas8FE3@R2'Nnc8aF/BzCA08cPd#ah5<'[ p7\f:VIU @ sg#0.@Ն;!25ҿy&/ B< H|O ݿ?hz6V;o;( ]0ojD& u4 .A/oP#ˆahxaŐ%5ovJHH$؏sI #a!8 ` 8!$S\ y~+Ș:(_ H$f_NCh(dn|TvVrWpmDafW0`0:'|S%=W y֫ǭo^%%-VK|GLy=3"C-MnTHsQ ]]0=f^-KzY6!`oV X;NKG}ts:oU'$h'A8jU4|LԫɊ. 8WFLPi"n+64M,lgA-tejq uY<J |~ΌXz^Pij<@E{H6̒z*֪r6YwW͔%IOǘ=OC SAQ|`jo0(97!7q3TX ~(r'QDREE9/$6Z#Q QiqJ :uܮq=.gmnXN|\2~eZ/ SߴJ*K[ "`AOt>>{{\S*gȷ ^5Z踓݋|lQ_tzO`Qcvԥ{c5.qv]_$[7(4$ZyP,l#l}"kU[/-uinDdH>pG+fܚz`{AEWrkl>^yӏ&IqTt>V48˳mXmǿ`Uޒ|9]\Ti=&Fu^V—LkvCÍD9)'jgVߦYwqHARK=O՜4r$.4me] 91 ts]4)Vyv!9_"~ d|* GM5jH3l=xZʼnĨ; i8=GH=y[B~u:od-t$х>gv-VsOzmvJ/11r QqΎ!enIdRPY)/;<Ig^\]RKlu#5dFTڭ`B"#ֳ{ 9T#t,E/yi-i;Ǘ dZiiɒiRה"& NJA3(oSK˞01/|bCFCE@7{3ZlR}Qj5ʊA,Qx[4GG\8Yg3X^b%MƵ^8ٱڰ,X斞Ѽh,[gp0ߺj)yq_DnPOgYҷXaBs+n;'h=uo ﱵUtxZɷ,#&I0SZR=. Ӌ)Qw([r}FsVoȴ}0jg-@B!˓Tn]/Շ5)ۜZ,$Ģ'V6֪vt}v pgJztCXL Aw'*dw~in0>jBL[=lz+A`FR~>,%fC3f&n)K"ֺEyFM *VQg)&X*pǀ #Ȩa8@Gg_(*1lF V_Г 1ՎdT[E+bE蒋:y`=.Tfvt{ }LTzJg2U2f> <}՗'CoB19BųWFsXKUw'w)v zkjsȃZQBM;,/o#v6>,l "" XV?Ɉϑ7AEY ?0Lj3U5{ȜGͧW #M0z^#{1zD(źMU>)PY [5οДEG>>PۏOj:-%OԾ\И~\8 sXƭrH/} L^e}NO.( į{? qp3;|+q,Y|(G^Cq/&?gIU~Hgn›k-W 2K%#[j^%M#҅HDrin󓙿\K5r} я;9Y4TjP1c2>ܒ_hL[_^:cKMWf}pjgݚ7sD0T=[X鷴9I UK[yV$MyS8gIYܸ=̈́6*w) ]I t)Rut6Wp8W' /FUT\p+s?zm'JUDǮ9WvMhNw/zY -dp ќ{ONU)vf63V{dHDBt~A0u1WcΉ~f,Dǜ4/kn_vM (mF簪ŔK> 7k^?~\& !i"뭆l*Dە@NȚYRGEѮBȻ .Ⲩ+CTZm0W(dI?r>aV1|R43or/}Be$yى9ْ?N >#~H1*3j07}iON!zN$WX?;Av5njsϿS2PpMJ'OS_>k:qt3 NOߏo8|\n%T64*xƓ䫂g@S[28$7]oN1X.6=ߛ/$9 ţjcb!+Gfd$7t/y5:)vTp<^!cq! \8AM4 Xy'Fgؾpkט(=9O\rB['B3N#y &u{YfrHT'By^$."ו3O.`l8aIE@\z1~W<<iq9<ɧ>}X{ǹg'cԀL|}3usnB\"އ_ QI0,p@v珆ϵHkgiάphVoӉYJ9abV:Brc٪=]Ivo-b D'񎰇l,bɧ"صa{^6W*8{m;J&i>e -`G ? {+y^PZpvy*s%gSE| 3IG$^"汞JQ~e!72}{D5>Ju.Cϐ+%Ҭ<MHE_dq uh;߀TF J4U*7-"yXz(!B>u|.;֧H4]!:H;AJOqNJwOWXyRjYiiκriJ#nPQiYA5Vb w7cfwSY~8UQS!6s8:&*,p>G5K:"{ '2x+Ԏ1%_VthE1myZYDbAogogܾ3,楶`U._C@襼֣x VQrw7?φҤTo HW"I]:Xh@wɌ#83E*4<;;A x3Q=a×@ ~Q8 54~lFk+m{lv(V?mxnnNl:"Vtٽ /TnkΖM峣q)mF[6Ē)CFw?YIXȪl](72)-ORT,^| [nZ5Dlqq|M> stream xڍvTl7%1:I(nI 1 ch$$QA@$$.%E@RywW_}~uc3QUg\ ŠB@uCS ,!XO_Z8F/:uP,z!@.X(+<08rc@3]m/8/gD_ "w'BCa04 D\.O8𶖁6+;B=}x u;i R5B= <Oɚ(gu4 Ga}@`0G: P.GpY޾p]=*tp,P ȁpo << B{]#C.p_x) 3:](pd1]0x ';<(Y.HZ[B68Qqef1"X] (W[W~o_obG,(ۂ0BoGUBxb7DoWK_t5;#|mBPEz>Z1 s *-~}( /U0ODο%.% b0@~xI i ` H CB.h >% [Gab0x8 aI4=Wr)Zf 1-4d/s"1Gt5Uf/pobRMςRLGWS#mpQp_x߉ n$l1.d<驘=jRZhEmD8 VR(^C%^0 d+Qg t2幹O; +!Ç8 =O⹢q[ߒ8vڡK2 W}\nQ6 Dcf2]TUyIvp\ uyΟɨy|uI:.\:4=̃?nn jnj-7=. 5\<~UO9s}e}6aHB@: G!ZX1"-(q;E}Z5eРrz-i,l%mղݚr1SB sZmB8$)UrI1՝2v/GJފc{vmf |[˃(~)ҦPݯt/}5$Lȏ2l\}%6r:JGN~%@8>.X-z˰f7*sonή?,ʧ?tXFԐ!uxNMg@ϖFy=iK3n3CHxN~MsL`xm6agA8!ZЅ@q.ȧv!@+LkFm2~ϊe- ; , O}]F64]a4M:՛ @G+&IsFROr!_q*;0Z]ǹmUJM3 ΊMQc_SNF%ED"ߎ5+L㖷24jO+9kD 4w| $o"Dž8a#Ӌ؛zg]1<>^|HNTQ|ƽjHp8~D/g;oI*oސ^|bHC)پˡ3+~_: )Ip^ߓ{(Ux4ei zV[b[hwe9&Ӳ_>9.X4VwO&S ؜*> g}YsrN%XA{]c*cYJŏ4_^? AxBCy޷g{(rGBtY!NvV컘WCJ+ܒ7ȵ{1Ŷe4 %)Ԅ1jɰ|~̅o˃qlk]#fCpj7~`d.&sC'-M7-*2tS]mepWץ>D,OWniLT@FFD{kqOm.pf&P4J_M|EtjqAyM⊒UMTj~#.'1HcH,.[(vKl4i$1&DϘ)6< n˛][$g.7̓?>n~`Go*q/͎;*w5We`GuX5Zv("]zN|Hsu8nmrF^ɯs:Μ]~G[qU+ҟy ޥl]5jkܟ5ѻL&ܤҪ2#ygWxyAԶ._W}`2[hV%!Ҥׅx0;m lew|CwVs k1md!2U*f[GyYa;݌:# gD^`V gOl}wX`[^jo L6Zaumu}x_p$t\1x`Wcؓ`ܫ[l<{ySPen~ƀ(=4{ޕnһ6gצ,e9Ijl,_n Onkw^ޥ>Ǔt%G^w~_8?_֢[לT>͒@)5;J?v~ jcSۏ$SLʁJ5@+联Z=]Hxt50ꨢ\_|J>kdsۇEW*e'M}eRt8ݖ)"%W#_G|يVWlW;Q)zcK_ pu ;- D? gKB([;}r mEJ4>sYo0 ݼjl3r m#^lS4)JlٞPxy@c:xFf̽$K *!j eȀIe^+qzo3i);\bG?ӓ o*(>s?@2*1u>M NI6tB:S PBq3EKx_K^抠-/WCI\Ow8׼NK\AV EwMSG'gP;bەQ{m=X~y кDP˲B'XꝮVKZ&=߽'[vody_=0֛i27KUΝٵx/~MUCgiKyD%,, Wk;{ME^${3t\{͌TfKI{4'-Ʒ1Ē!ܳTŎFm`JHfj Ki Sh1z/>ɉ BJ{2 j~: 3WD m{1 ӷ1$桳! cR%0:߯:|^4ĵX: ;hFJMh(f7ɬE_6 鐤=!B(ټ nER 9N6 2_q|=9k^LuЉ#nf&/W6$~ ̣#̢{u=Gb# >=\/. ~esmZ ә[{wZ ~ p[<7?as:YgAh' {!Y/̻|,6nFdjxߨjK)q.יn9o gLvt옇麵j#ҫ3^4"rli ԣ3ˀkbgӃRk-ρu_2)K3&C)!1J66΁~ۅefR%|*\-ռJ՗ #^8UVWsJ`u T>&gb^pj娑dK{ugke"Kmi{ҷP_) EbVY-F] :qto/guxB3hFP%G`t0kˠ -䍝hFWeYOMTq:&[ovt% gu۬!'?gBCՊ.`)(p.iG:I4.#dŽdٖحbԝXpaAybFP,r%[L-x\^-eV吔UfޟIyM>ЪWgC?)$K|FTop\NSܳE}8 > ȅ9J*~|"UMcu%F%\A ]Uo*$Hh$ve{E6UY$erXIX!|?Fyj5`eBEd}Xܭr3Rl[5xZ=J?g^ 1JұI4B.c?3{ʽgìKmϝw#zQ.l[]\Rt|ҍKɭuB!,e>ʒ_%g>2>p |mS |^K-/kUj_[vd~Q36[Id<@ )=)5Vxv׫S(ȪpEHs\`~wdpu-.F>CY~MUq*kw ӚӖdZ,#9 wҎkz o~F_vzP܏X lzh׋LsNsig#:0{~D^ΌUP] Y,gu7]DhUrzb;@}M墄. _sO=yQ$% ewj:ԑ6#ٴ1+˥W|p{7UV^0k'لZNTC.#AlDu,"Gn,p|ωM0fy&)+n㽝pa+`Bե,S}w۷'[э/z!slUj944! JnX*ӝ}IP-GU):=@?[|;bL#Ykv/3|kWDtY h՗NZ!3k&5c:$j &.k@ǽVPfH)~ S#^ݭ*y}G$D B*^t7J5kǪ/q9:F1=P.O`$D,X-\:~⥙_mK BCL1+4:JJ9l7"P~g)8{n2ɞ N⑝4'B6RMT.XJVs09L,ųhnW'qG.Y,Dݟo;B=! &meE4E1RTmw$u[3xtGB<vMS㐟߹R.ѱ$CDE%~zKg?1P endstream endobj 99 0 obj << /Length1 1748 /Length2 10856 /Length3 0 /Length 11963 /Filter /FlateDecode >> stream xڍP[-kpָCi܃{<5@pN{gfޫkaX!P6.vNa NAg?2n@KLlq({\<.~a.aNN7'п !nYKO @ q@\|@v,>\BBn kKg% ЁXP (jspxyy[:CęX^ =@t~ PtU;@Xb t`5x QRh6Vۀps'ܿ9lim qrt9lA` @C^ eX:6C-=-A`Kg[䥴:wk7 ԝ]!0ϗ,l#qr:C~o݇㯶::C>ۂml`¡ r*Yqrr q=>.@\%@?4?wKO  S `v g?λ&σyl `j._G%- ظ8\CGѴ?Jζdo߄=}-cC'`gM98?\ct#eh-@`6#Gh?X$iO}$(<#G%cӕ E f>ލWw]_h~ix8ӐYV9sHP6rfSo˫ܼ'J$x"?u9ߕJ]nNZcbrK)z?齷D ~EknscN\=Fu3sz aFbx|ظdd$ޜokJgVɠ' 'Lsw"Ӻ5Ӄs뛪J1ꙓH$Mr4 >փiwjIh|Pd=XO!܄]kn0'zԶ0nnDr*x!HOkGRZC/L:u"!SYLێ歈lIl$FeБsũ.씒CuGO@8B,lV<^Bonr8LJsdMEf^:] o.K_Զ1Τ,jyyw1:QJ3ZxW( ,Oɯ%E`v17g3䇖#?duNȵe dɓZ;đܞOK"C94;z'%8#:f\G򮓣̃C rp䙎z*^1j  3ZW"/ukE$dkzL1&-(naă)2%QG}:wYݩZӵ(FǎޑqONXz['AN,3Xc*kF|B)$s3\85>l} $x& *E{87{{pܚ>MLP`o”k'_rнbu"aYtIW|Spg9GtdUΩ pBV1(󉆥KHjX53r֌I+g9q>{Z!2n[ܕ_ԧObXr&ղ-~}ZɅHWs'wi.&҅Y.Y&XvxV^+=*'*JH;,a]&}LծIqYm)ˡq0- ҖΙmbkGE_:c|4I7#^ERnoAœʳ;&@#rߦ%Ո _R֬`6 Y< ԧԸ+2b[hD.}fu4  lN2.7| 5$J8OR#D݉SPɇ"﯌f [6ϝ z]7*;F LV:}ے+9hOy(Px)>Gۚ~/?3^y CQվ֕&O,=3?#3ꑚ8 ku|>ˀ$(LZ1o+{sk=)}jo@ ͉-6w YgI8yL%z4tz*QQ>llJ4r׏C"i|_;Q*'^2xMA!z8vJU+f%iħT097?nO%^۱zʙBD=#0[o:{rMr1utP 0U!{QS깤`u2.#oF NM7Yggs_\vvP3_*gTg/xuɈZ>V\&&Yf(tM 7 -:,au٘)0:άF"Y*xڙűhF% cŝV*m%B-8nR8ׯ;q᧦~E ^l#)T67}Z"JooܩШ~Zq7d^y]Fdf|p9nQkF\%sVt:L3M$jR{ U+D\kU1X7)%[c> },-9|O8"Zgʜ;^+sVJDiuzQ!%P4`w5trZ=DRc6;Rջ|@x3cC6 1aKI]UpLjAX'5n!4*UOrNed߼WYjYDil[~PO O~ޔ2|PN?1溓\ͧ׵X]!ۘ$;׊G!!]2XP \K{0ȥVn^u8`ʫfqJL(Ԭkj0Y̌!hDBXaCOVC.EMuށU$+鈐 gWϏeˢ+cZ"7SEp8b/lL;`m$S$1- lo8+d&,GCI̗⩢: |ti s:,yy7[ze⾇jn L bnLHa=D'Lb%}o/IN'w|ے.}(z|иQ> $Wƽu#?^~t 9bRҿ# hv 5etף'o4EYRixr!}T)0]hF 5ˎV[{jmW.b}.ۡ(fci8AyZJ^<&;eUE~sxmk􎱟3Bd>1IoK)p6EJ1 T%r 8,+[^39,BX #U;u$gx8SەXFB]nwj~Iy X:(n Gq@ #;E<!Q-94Eן?K o~(g+nZ=d}cz,X-l u4|X9ߧ+x sYv30B]8cmC!MwWQ0O~9U5.";C; O26o4Dtp,>5:P待~<d k5MtD02,puHb n+b8rT'VJfLh$iSrt2‹V!kGb"={5FMm$3|0 л+xZå{j}TeN5'ӭfa{V"DŽn]WDש3Eܘ+wZ/QhgX?H֫fg0ٽ#WGA?- BfGÅ^\ѱRLP8iM%V៪?)ɝ|!T7vT23cyo`L0iS k2TMg`ϤSώ/59A|z+8-UDwI<B(<ħ(^Y' a=Fof^bCWyj^N_N%F}bmrգ؞!ֶɕc&oiT|UtxMn}xς;D^F׬ d0&^]J{5p''r\ĝX\D}5dj4U)v^ (콒4c*Xr KDp  xbqGi5BBuysnAFˍKIS/ F*j%+lzP֘Ho_ZL .~X0Tj ]ЖP\^h#Hn߯m)N+ }gS`F"iPT;&ʨn$HKC əZ@+E(<NNwKmev(-ŴwHT,+G3+ŵw{NN.҇8r6`[Ay&I3)sfaR0FRBijTlu6"sI@ vv@ԇPŶN'P$I EzNUJGgް'd-ƢhX7@~`dci5zV'ы [q_c3H5U0Hؗ{(><ڐ8 m[._zr"-rw&Cx-x.+6 6x0  _}'wW&چ8&&*5PK6+wC~s+#XF>)xP'N1.v s2zOZ71G]!7>,7sRjU)tqGvTsZ5A2AK:4lwB}n.&͈-'"z^٦s7׮v_*J%)&=`H3?)=A?slJO -UQH ~'~ WNQ#9q!"Y 9~H2YmeټU{IhAd4 l~;& //Ge91wZvOr8~*ţiI^2KerGEPdL޹SI:IL$n@*/4)Zzl4$2.9-#8)ZlBdQ[sXp14\0m)vwBPa7eR$+"`Nb(ߜj9C4O_B>}Vvq.{6漰c&65nf>!g$-+oIż9(Z1r䕞 7Wuy7w5vVU6WB~A>]P0Ҭ; $fA2f"xt%b0zO,j Vz NM#e?Q8":S F?헴k8zX#[[hdCx>rioJG_WQ`0ohza {i=s[t$ WgEE879 ؆e# __Ig`< ?$H7.A9H-!m(}{ѹf9?xBu&|N#j.^DolxPBJ#H!m BiL>N\ۆswh8/6 xGI"B{*([sS[!7|uLc)~\FA垁z' ^a$)Jܩ{LwKķ%{xǔuayhQF% A}8܅ V_m0tf7gەъz薾>ۓȏ҅/XeKB9NR"fS-V)qHP|!33,ɥ(r[@AeN7\RSػ#ys2ۗ$2bΏ&v{ܿwe`WMI`ǁ"ilxc_ѳxg4}u)1ὃ*U?K7^&%NQ^ist2x=*~q|ofp8דXSnގ sҽ' HiҿZb/y~+ $;huaR@J1P<ZYשZػ(A@[)VYP;.71 *&@ذ *ӓ=|]z1AsrMd#]J9{_BYK%TcsI_'%`d^N{/ʼr%XTNs\LP ;s{_W4x &w.~zl J)?Li(/OBܒzn|Tjs]1e$ۉnАڃE>ĭFKSr l.' k]59mh Ѥ[0Nm4%jZ등˗Z0d@BR_'集xX-1fF>B otyG"nxNН֢˿T]^uf~e_>xō/]2I]cXY?%[(ܹ‚km,yˠiN2KB+ endstream endobj 101 0 obj << /Length1 1443 /Length2 6356 /Length3 0 /Length 7340 /Filter /FlateDecode >> stream xڍxT6AHoH !@ $HBHM]ҥ+HQ"_sZ߷V3̞2*8pWO@cd!(ge5 q|VS'IC D0e Eԁ^P0@PTRPLR@ $ 7) PzC:|M8 gU{yB]u~p8b< `O.`wԊ `AHvA"=$}||>,'t`Oo#W];Y. P/#Z` xm@O_ @ p@=Um>/9"8* @(ҁU_!@$W6`>e'w? m9A`Np7Ay5 c`$@D@BTTD~\-` z {Pm N`~  =A/(p3(F'`% @_O6(9aP1"_-˩ Ix%D11@?!0'8@O}d4׀pKR.o[ PogWU]_ r)ЁfT3;B۫AR4C>pB vԇ A.T75oP G@~0( 䆺E(ivQ3uU` a==~FY"AT:}#Q!TA''D)rC@_?/߀F%jPPTmG^2'jLKU;  Hݗ >'7zR,bElO\qf);Qg/UE,r}~U^DSR<-~qˎ"=J5'´bO7[yc)p0e" {[0l ,IyZxkLݠ?$](v'P۲J{uPI@h]4}Mj6ȹRUf 3u{4ڏag]zoZ" 2k'tv \xYYrꅡE ՟:s maOTyB62PE Nf+ҙ2V2} ]& <|ߞ Ajagc,_gR{R4Dߒr"}vɅs!E]jRKɦƤ;h9xQ s$Ddn_蟯Ԋy*.)*:}|G qAw,c~!\[^K ]vMH~lرZIYeuS⏤o;g-GE Mиِ-go{,r^N g\c9I0GAkZE:ǙX q=8}'zaۢ{21RVN(D&Ai27{pS+6TNkdߊq{ydn ) aFc&MNZU(/Ňޯ;~,1kGDߓ^gO|6:3bR#wִ/)MH)/R#N/M=Ό3$ 3(l&4JFPzfs@̴-˻3풀M񽅠˅!'vSsm@ 0Gԟh^?tӓ<_0Uׇ<^6H  U5+v- 843y ?esӖ3`(}tEXsTn浗-QI j7l5x .7q9j梊̆{7$( vfxTh.1]M8]j0PM[vŠ^ֱ[Jte{r$Xgs+7C~x,縐ԋ6I"`dq*STYeniEz ݕP`Z0Ҧ}3kx }ncքhx.˧ɟ=o9G{T,9|h%x-O;`G}_[mֻBΜo8 WA~C]eEwt$73že?+j>BU;ʽo4'$㈰p5kxy$Ԕ٭iugce~VhD]= -a34=>!Nb'd+ތSJ3TZ@Io_,c /םS#0yJ͟u0~)*i,VLya:u=^*DkvͳPs{hs@9G@fc?eY8; yozX]*l6ޠ^jWxՃ6N["&uJ㸚UNh>n+1T ꂜb遣p۰S9H߽{q;C}e?]ZLG>eoP?x4Fzz3?VGXAdpgPN4V0["asj^q1ܵP׵{AaW|%pE>/ ~}.=mѳ =$J( KRy`T-r4 މ6WGDDD=B(O+@!RpoiGY-Kt$!|U+iiG;J|t>`>"Чw/1fͬv{ !LςY%TJ:)R\ejv`_~qkzD1ww;@FϣSČ/f3ĔL|DghHlgiUW[$R^,,ۛ *&TDn1/5\Fj>l8CNy]6 d͙^gOB)~2Ϛ*^>F9%wYE++>BG6 B^)hpR\|i k OMgMIeɣoR]JOf_26\͝" m.cw?@H|`E0^^|#K>T9զT\V_nY0TF2N>1,8 J?Kf%;@iV?afǥMi(Am 4򱲁>a|,;.4Ȃs777 z.%L,Oγ=O >a:lT{i9}JgWuFv^4OfgVR|_!vɖDE~\7CNҴ n'rUBԜSNg%~8YWiI*  gN;5ܵ󞏏T֏3+zZtXX^ܧX (/ $"ڛGc R\V(l#kӣAM*) I_,( A3T)'S͵栄lK؃Ul,^g^ޱ>X*Cߏ(OgC"Ͻ$2Hyq2nzg3~|M)IO3?MYԄA@v\5\͌~W_b5kQ|A C!"%UMܵemu/Lyv> %(\y:o`aIN` lHn |V$^GX\qÕY :Uzo3i3dƌ*Jo)&֝/YR1U/t\W'[n:%RAQ:!O@ KF-2܇ Z1UCU;d Ƶyv93VVЇ['^qDAl7|7 ];4ފ >n9QX6ęy4 OCuGRmd7 &rRr*P'&fvVVRՃ>n^ }9E1yIŋEUqm*bH$F -׬$y#X66ncxI{_I i[Gc[d2=>2 ?SSM Kl1rNW09%LJ Y*]{]/XKۺ0";=l[|AeurKFFfZ0lcė;|ګ$9@W7XM4RkVɗj}&D,ycGD[t;l 蘪 v(d&!T l=Fƴ,v.dht%ehdԊ|N;ޥ=y\D̍|6kz5Od{X^(E5qRqRt* ͝gmň^2Ƥ&{[ŘL;ݏOj8K=uH8x&5qfۏ3ߝJ4: sHy0܎9Ja[xz߿íH h_TҺQix~ݘ[?fJNS)|s|>Gc3GnNDJcx`d\7:-`ղMh\k#⏑޾^^~v_;2W?sym.s%jBOYAUS>Six^H~ ޵x#z޳tBw >] , EL8v[*~O+) KĪLlɝXU1o2qy1W{'?1\{} $g]!МH9vy|.o@^rG•ae3}\X!3E|jhTGc߼"֫8J76yl~0˧™9Ё8ŧAVC]~Ñ˵TB-^9*4KD ; Ǝo9vb ^М7ARiqHB7YȴuG\o]PlMfIet(dy4A#J%giLfeGc_3u>л6KG'Qcvnii,`Of_^Un=ؘƺj|& B YVi IF=JMD7L mDsG5 ꡩXagu}rٿ:TvM1dԚMe%3[IpCpߑ>>:> kb%V '6VӻZdP8ֻ}W`WZ42>ݱQugaɹxL iNci>»8 Δ/O_~DK.Fh!| ?zL)TIPUG(|gXy.\E_XdEC4KNwZBT^x˕phRovCNhp:T[>\$K]v(V6^' P2[=rh|VKJW*a 9+!dˤWlodO )N^v0 endstream endobj 103 0 obj << /Length1 2099 /Length2 17031 /Length3 0 /Length 18297 /Filter /FlateDecode >> stream xڌP\ Ҹxpw -!@;8r9v1}5TdjL"v I;[g&Vf^ + Jl # lg/ 1GLP b `er~eaΑ n 6(0dlANTbv`s 09Ml F &F5;0B[8;nnnF6Nvt7@rt P4M nvKfgf & [7[S#-;@MFdX/F27ldbbgcod5A%IyfgwgFFNvoFF`k#7?K7Hl#0om5:;!Q8dw߇kekfd55=PM daaf w  =A*Yq񲷳@o^NF ߊES3dE'd~;G;XMmLl=1 ʚ SRT `bdq>oe#uWWo}Oɮ BXvo 3,,&o)#ߊ$]e7[{m6.o[` T*L.6W+l "o$ v*M,5lyba?%3zEFOm70rt4@x;7 b}JS 2988X.NP_(A<P J@(zˠzˠ_SE8@[ EysHsG48!D ~C,e_pTX,#$Wyr{#h$bŒŷʢGg4b$&u.rّ?Ga}sbwO -Bŝ܄K⪯ŷ*SPok '狶H| V$7j0Ϗ; 3( 'цRʱx?9P 5^Q?g{˲KP ʉEvUe~9m_1j5v\6Ego|fzzlPYQ&|K+ -ִD6vQcF'-N_?~QiAHA >>#/Ib9ݪ̞`c")sTi.bQoֽ2k;KyՃycZ:q]4_DKX:԰!9yZZy E!89eY{Ɔn.G @˃k|C8ܚ-Ht =R︣w"|ϏzH(ܾ#c[QX;PrX]>K>MLݲb:8f}~LɃi}sE돼A҈X_c1Ŗpݙ:nwizdO'''}\)+*Zzp*qs $#~r0)+XtGyiXEUbҖ$A N0%vQDi:>PU@SpS]{Gq}-9b1d^<@=wZ fLcnm^J_"j5VzO2(h@ֳY:%%s ۿfBi PƜklW:5[;Q;YbfƱ$sިܳrYɰ5Y_z̬4/4,% ߝyb>wI28&Ԗc9;kB˓΢ Ns@nD(۠eX^:?}3j}ZO"Gvϼ}dݣ*r̃CEїΊ13ߊ~ .Rev^봋IS* vf2.׊Av @J#읦^'ws`tmdgLvwb#mVn̆b}T86&f^QmIaFX]c:1Jb >]=5;a>%?= 5蠃ּٟƬ[ȡέ-y.C.Ogv*nC;33r3 n,?.De `seZT),JلܸR9*q5Ӊj.ZH>Z|{*nvG*W2tOSDoz+_PU29& N,W= H꧌K'y-GOtVb^ш_097:VfUF*RIYݬxd.VmzDCrأC>;@e+@.UR@qLNYmlh$`j{<{лv[ٯ:AjjO"8j͇"QV (}گ2Afި}c5;L} Ûe8-“fru Nm9lN罰%/ ?::·yElԁ ZӃ+Kь|n/'eSk8[x8k{iCJܤT5 ) 3 'q/4ϓ tT=tbE&=2쇇PCX[&NH d@PTw+en3Ao#mu69`n\.*qe`q"2OIt}dsܐ iw*P͘˼%ŰK"OѰC+gr~qz:@)؜&5^ˆm~uެ)4MX I|@;T<hA Ϩ 0ȃ!g92HL`Si?VjR7Y9u| ^ LxMOcJ?{ =k~vmVfjYE/OTov=mzrxjȰoc'ebldMoEWT!X0sJeG8;`O&Hrru {)L ݹw6Uߝ. 2z$u*uWLo2bx@vqvm|~Ŭ)ܛ@l[ cm{g&mϧ! \ #yun~w\:_E6v wJ';@ZA3ԖWG|BVܡ-Y#.qSjXx- ]ӥ8?:ve*gkDRC* =[ɗSp\X{s+`'F\S<`}0Sx RM5#Ce(}E2Mg O=$f#qUeO+X᪾1ndWqz} 2nzҮ˵4SH׾(Xh9H__ys-॓yc O5"\}Ȣns Dw)wp*aT٨R퐲1ʀ[lg y y<OiDW-F Xf-/2%:i4و(˯_m@?hO/)zVu)CBAPk[ЈW"G8!}n2+6*vց06BN߲e˔P@LER0 %ْۂ()qpސ~n6P[&7_r \$Yk#=v^t?2¨u4_|&;rGm)&̉Nd|S;2[w@;כWOۼGjA:Ya ѫ 0-cfk1$ɖ1ݛ[J,]t 9b@tS`yBozzp!bbAmYt3h?A8+/MS.<^=; L^vF4: )Iߤ _f6:N#_7q O4Nԝ`yR穜sEz\pG3Ž D %5 E fĤ>K ރS1Tv<Ÿ6(㴏^=5'!Q$;Lzű~BI'6jàƫt0Et,l$n쵲sn6s \qԝ9x/fenzކODi#NRә^[9813g~v&_.Gl4`[*"]oYFkt< ^H y5aC|ɂ w>;ş[dK!d :O9QUo`w5 rTHw+v.GTsGջX.s 76aU{X`䐜ӆ}χqz/9)]-QOcmv6Sc^!?)KesJƧsI;.G>Z)onP5yX$vb}FaynI!$\샥Cg}KB?{ZIw<ϥ2D8cp ~ʎ,U"Kۿ{{#yX e>sie0uƊcz[tYEs%X܌OOx]s"gt }PT4seѤpĊqKBꩿ LT]$}PnS|R$5i)&nO4mʧ>mh\%:5G?4xCi: aOZ~&q?y=&ǧ$( 0"[@ `{F")d;YXYв؎qH@ۯu1K'S]O w1̫(@DUj%a Cg%O}aN 5(rv҅>>8||Zgx]UPFOfS!yү'ɕzx=W7%»ҬZ_m)i[:?,E%`Q1/ 6 3n?/XCTMlxӮ6G#7l7esD? &!Mގ 8&W"JqEU!AShMv͊ijӪHTScIlh>$DE4~Ī5A0I qvSwW,7y2Q|AP`6}cJ*Y(Ps)[|aB˴s mQSH.9~2pɋv kuIbpP>G<P.ߐŜrKSMB`r1_DyR/9HE|lKCqX;l7a? :BNw7t$BI[A-I&TX*|Oggv]1⧁cɠF@yEVLy'/GCq8Ywl1Y) 5x}*ۑ4w5n2Jrh!~ U99P0+mn\W6И7s1N6 G1.ϰiW!L$Y0Nmԃh4c :ksױ׶3TEzny+]hK̴[f}(yН`k֋B5̦sqrfoP,/Mij=[_9h|ˆ#\$D{d`Z ^|CN3>WPry>J  j(\MYLTԚ#aQ% b}^}FDwaZ)CɯL|ri>UJ\w. uP*Na}PB3@2Tk0_~Աm~N) R@hv~}<[1|RkncxI%_o~B؇gwRSn*[aꮺ| _9O$# eCg+%JW2pu# q"_|<}B|nʰ1Io# ޹n L5( (?y\pj+8|˼m1eT)\? 5[v?}GT+) )cR?2LƁBQԧ|!sowV4!U+lתfkb};H=iB1W4nL2$6b=Ea{ '֩(yW6ؔT,L<< P`qt9n`csMGPTJc|i/*nR$ {If{?bj=꣜KZڲ"sz{2n#)gMOx\v65\Ǚُ=`琂齄-DgwdK-vq0e淋N$ ~C1zp,[y2 Vw~$ &<*;kG6j҅-'PyRihYQ: ^漢c3rQנiEi5R|I^G2 M/z{M6h4N-t$S0Hب1c{af65;CΰGiEA oDK 8h9^rGQ{c4 %@\t<8I34v@][#g[/._c)l `r9MQe+O%xa)ga>fdѬnak d|}=%3t#?IG#{$ret Å;ʖ!Rr :a chz}sS#c ⪫[rCp Q̌k?@oW{.IĿS&+!A|bߐD*t2~K|$V2<8i2> @vb?>A宷|rb $x;4mmlqӊ(l}oCМrurR.쬂O :5z/:]DTee8lHe:7a4ZR m42i,澬T2RWItx)+;0PsոNd5ܺmt~%7z%ޒOF…iCI, {.  PdU4pzUՕHe8(&{iHYe?ߑm$]IRNbe{&E$GGZ\r"LJcy)ZYI鄩Ҥ@ KNaD ,ʬf=*` ҆VEZdgf׶06^dՋo,g|8(ۼ?ڻ^Ig,yh> 3"k)p7NoH.~Izu@k k8e_z`R\Ӄ۝ r`2L~cx1f :~ng@:d) Cz24Hvˍmϧo\?qX5.JIdq?*p.|e<<c~UX$ӻ=-o/s'{Az&.zV`}Yq]IR$EF1.&;cs_c%Y^dg4^ 0 %p6=Z&@(k ӊLŁ+^ vs#Zg"BSlK&c, 8|7wEп= U40!6AAk쫋jĊnHH{_YbƥIiۅl@fp^̷B[r!MTZ2wBb\CtQyK ˎ|W֥~Ԡ40I;i'RKrɔJ{кA!g&Q‰oa#ų@#Rޔń.팽|<JnT\UNR>a;(ϔj/;5sʹ\?n3TX)j MSg9FP%nJ?qDNWM~J5Ns܌ ȴmX~W6jemhBaWI%rY}L+I°~C+lfג"K}&yp䝬 v9^s +O MϸRHd\?jxS^>,{ /rS1%9"\Dzbm,d<.bZ>^/[q A'-M6n8Df#[]Es 1? ڜk{E=8RDZ6|l0+x4)qy"чE/ջbz f$H)S[1hE~0ET l4ם.0]N6Hd/F3 Qq+B5 Inݯ]`^v-йALԙ-椦lXJ\ہ2\ZV [DЬ6px_Sj$Yws*I^Chll>ӯ4鳼9 o1|?Fs#%4v44dDZ=P9j7LG@WLe-[P˼g CXF3\~v*(fif+~1X`:֔3H rfJDU 'Mд+].;_"C(v }r>EJb+qe㒯<)}wYwµ43# ;0Y_ptٻ;D.haɊZ\lx"!l.{qHBԠ+aFU\7bdJVu!0 ƄG! YdN׊yxoXxFN©VG;NTٌȦX۲ :#\>ޞoyU0_PJj>-g`% Fq8n>-(TX\%@5z Z'I Mogj GtѡؽA&~ݒ޵-ea&9%Yn*(AF}91.aa`*K GzL$ѱ*,$֡^m!sw뿥0ȟᄋp–HFj,{ ŜV⭚cpD㓑+Kνn]쑎SzF[>pn{~%:IB-W'k-m)*!]aiųZ!p)\!lS`7&M>_ŎtX[Q4Iڒ?r >^gU̬4XPW>Gh.H⇑Atid_;<|0FT>g}u֥m0)$3ғ Em(֑ߞ(w,B9/.KS_4w>|c,(Ԩ 6Rlw&ϷSX/#~8J_k|=x)5?pY#ͳ~) OV56 J{x8^Wr\Hɚʻyn$Q@d̗Wt2yi6T*^MW,ڿO+>'=C4}]C.9P>RˋetW!.n4@7Λ}8+I[QFo<IW`tdX*@ #P`=I=!#-q&M5C!tVt'=Ю;clӕHа`$k{ceMTJ N _|n>tW[[1<ҹ_f0fR+(#CGep;̛+i*~>Ff*8qWxzİg6)}󭲲He!ǫE̞{][ &\t\#uY8E3V:DtmVC6r]ph.= +_`zFz~P]TW,su0Zj C`VJBHwŏ[@m<&x[`a 6>ԜyB3Ƹ4l`T~:([4mኘujΎ= VPXaRnPfƝ}0z]cUa]h \@&. Sq5\D=Ki3w~Y#\HlH򸊹k#4SM*HN}f.O&4  z1Pfc~[4pg^fWKJq0k~+RCo̜Cdže~/R 롡SU\NK|f##òl|,i霃%(z}'5jqAE9r1݂ԢIpPd_ۿϘ!9#oݜZHzb\b)99WzPٟï\B\d#ۛ;m~q*4 2k~-Hɭ3 !#Hm ߩj}- "QSo8)/r##1:ܣ@<5ꑼQy͢E9qIM@;,|=c tYj? |{$?vkbj|)!&׳x-dƑ؝n|rwm߱l _߇N(嚜4Яhͺ`X0_\F޻e@q~pQ(m o #ΨZ|vm` d ɾ~;sI>^w8{V_ڐKϛmE$vls0]H,mko/Sj4{'EF`. A358 V{wVGE+ARSgcU%9#z'>)dM;ն4C|FѐC(|^kXԴ;Tsϟ` yչBBЊB8BN8[OgF>X`)9 p/ɯ>JJ_㒒P+ q$ZIZrFο#cWWc̑ƣLÖ|Dz '9.p"P~>hR0r&ɑ\v6GȀ~ a²:"Rs;kttPZ>bikFt*we!NXu?D&_V)Ս[_t5QV|8b,.ZFGkPK|H*[縍sK֭#3]'9_7vO=+ϣkb-jm*+#rPmR. *657ٯZ~ʵLғN[c\ѤUb`UӶFR? *±-2~{e,xK(KrDa!y[/Fj{?N.oV1+|n~%l6VBÀ[8[FDiz_R31f*T~9ușqԏ3OB^:UE0ʿÜK}us0!zMNAe,;!gh0_笳5E tE0NqtՏHqCQ8Nѷ>gvDrJ|vQiS.elu[.@)07AW[d hqraRei!'- f9 o9Dh{jbC cYBxkEϕ0^MZDUՁZj^*q1=RVF} YS80`_E.o1A9e.>|R1K#bn4OްۯY XB< ,$RmC1K'vx0ehDMqSThffQabԺɈ …y2geyC1ľ3a*&(*iXQbVNoVLZ [WNk\wEx߅JAWe5h\!高-Cdg'UުHV ]Ta/e]YƮ] N&nRօnCMк666`܉Aa%/ Ψ9O?a6vRz~Qe~'VЇ=%+ tG8#<?IpRKj/i0`<;$zl++ʕDe6sD٩[٘%/_  aa=C29>[j=|m* X8(¨k~wűቔCiC;EL` /iqb PKc nV*$-ʿD͆ c$I`w >6jmbS`DЌKџ(;Ǜ%jg|o ^ ۲:8apRQ7E=/Fx[b0ky9Ua3OkDdƞ7HU<w^tF3ImfKiyn77?(H>& [9蟸FMn3 +/:g+ss0ms^BrH5!}@3? Zu<{!D3r?k" Gv 8~pij7^1tej~Մ%Z˭4Q-] O9 `f*z`M2xlv97CԸ|}'lhR6dl+lBfoh|e xY0 l"Ў͝1R.~1odD{9,Cr^0Q8鞆1U"dHb+k ;#pv%QJiŒ-yFǔ QbEf$=u1Iٴ?raDa>v+Ooɒ ^ݺY )qSyg&E``!ZN_!2;akweǚALyuGnv{>p ͐ endstream endobj 105 0 obj << /Length1 2786 /Length2 19681 /Length3 0 /Length 21269 /Filter /FlateDecode >> stream xڌPX c` {p`!@p'@pwNpz'nW[T)oc;*՜re_b5bJf) L2E?DAϛ|!MC;e裻w7Z҅GK}>6M##Mg8f]`!b}wWO^yGjܯ)H >gGؑ.T>ݡHg:sx8E/%++I==-x-fU'?LX]."O>6G3j'noR3QP1(j1yL!i%51:>fp=x{x6z٥Lp7ؘ%bU@ɌO+.}+,ͼJxMr\!bۨ%]@(Y&ӵ09tu~D'CbH̏Aa1ws6 ֢9RQ2[qxZGR5SS~]/(ʶ{ jgt.zxUEiQ%CdS7)u$wN\0=M/J4:x(4zթJ\]~+r/8%|),R`?~rTieg6Μc?s;BiMyEuH򇘆!̨Ϧ9ϴKDPaHaxPɂ?}՘>tc{W!Xz:kS/P1KASщ W7šK: t:ĔS$ʔ~MB KdBa@uBi S_;a>@ѲXzv3}f.үf}0BOq#gPgUPGYMV۱ly29Q^xƾ#[|Z9N98/~('Q"?W7ƣYmW M-r>:MU:9ѵG|#Y(:W mM<0 N?-΃E<\zJM 3-d3[k(vc5H^dv._sa{uCR6I1D64&hNϼ'BBۚACˑPVU&ŪFS?oCl[;*ۏIlF'W7:yv&ecKU%ƕ[Y <ߍ0e-zn#}q QQ)m<̫Dj`=Pіl \ N!lzL;B񤋸|cUU)cjrwLGJ()}BqyŎx ;=0ܷ$g=8#wZ/sK̷8LGMWӤJ5?7nt.^97+@u\v[>Ϛ3AC1i7[;PF:,'u~ @9#S)m"c!Rn/E:zeN<HERM!:GK?G}qJq߇UG+%ajb%CdHʟ {?H0pq5K,D 4%}47@Lat!rJ\x$ew: l  UԀg B Qrmc=pf8 A$.%gظ3y#w!YJś94U.y%E"آ]Ա8Ȣ\>kh74?lGVBB2AEb~ͺ/C5>m8/<eyRUn<˂ p<--!})~}0dBaQە&#.#&rf(ϊ(S,1Y{ZkpK/+H2`x^QعТP{בK{*GހzR|+t EvCuEHV;6M>=vL&R!_tNOrq[6`,hFr%>=~0uӠ6U>^ˡi3[eA=23!Ug?1(: Ȁ|Tи9bO_\ٰ.1^o.:]*$6o%^i_ ON'n:n>|OiOQݴQm? ͈-J/]u,nlOp8nN_-]Ѓ)iya݈ .s#NZ&x+8.8pĴd c^ [6<228bVQbuW[*9Pqc ?UVK̆S=`"sF~Kg* &Lտ x8Ndc%YiQ]Nj0,vB៤>p!Յ F5J00D$ 17O+W'!1rwT]26m//*dݒ)ӳFqx`FURS%# ^]$}̍HƩ 5:NrQơqRd@X>:81ŐNb>R+tGgZ;EA t/ sxwe){P9@>q Uf3ekoډDYSсY$* r}+Ւ{jj#o::KnGJvjP\ennJ/B8`EN;I _[f.adLDGOBY`eZ>iѹ҈̿Y/=6 YO,/VUcNKgxoa3 ʣͨyQ}4ӏz7˭Bs*xE¶-a 'Lì:ܦi)­OS)b<ί|{JQF\:?7Q[J5W{*mto넉&~N!h"N_ZCkICEHIb!fXo@QtE#J ns6u.`ԍ\lHo:jxncW$[rSZ nQPz$Cv$w"TMI+O#bePY֎o \ I,T6yK?<|W88,k6Ut6(l'DS_b$}և...6GWdl[@Ipc4 Ag-D*2;–MlZC޻S3 oC8sni_!j}"}N蝎q鞱hUɬ>7)0 A'm_M^igJ^)H.[faZ#cΒ-{.7QÉH.{„{vK!%\4\Uxt)`>,O](eq2_QFxa  dܫ/cf􈡃]Z=M[A}IFR>ByfN,-K3]kS.M(ͺ=e֘,~=grwx .üy ><͘ӄPcӫۮZo\%L*[a՟( )\­cHAr32H2KR! nӝGxL~~'% Jtu65KbGWy_l_ ͳ_Yb ^īĚa*/REVFNZMc B.͔aHu!cz@9+?q&wX>Iذ#SRj>UDc0Aj Ȉ^6zGRQYJx}uJݏ1,o: Ƶ>^w(x-Xz~D"n4͊[vgB/ PmMPR㌐@4+R_0hS7(A^|^2&RF⺷d?^䧏.n|g" uw&!s/σZwӴWH+m@3L|}FQtci6&[$ UPˠ'|x|°No.K&ҋo U %NsP/V!lm3M_\o%(>HwW Hi`&oEד4}A"]Qv^LFmi ou WG`2{Ldz,򰠶j:fQٜWYyQ+RPνUc[q5 /5WY4t+|Jo#YAxIW^;Fd<cա>#z=c,~T㐒6C얒魲{sd#|\NɀhT] CՃ٘]&:,^Z*4Q9{֏]Ly妮^) fS\#o?Gwlgz} BU7wV:>/аxYEփesҝ4%m}r7؉f?ji׻ aunYq~*>2ox0L ͉I'wm$g lڊ`Űn<;1yGy0`<Ǻh*H+GVHd(|)Aن }S3X.SvzGt 2&$8U*`yT=C~RL}H5"AC?sr=r $oA9i$A"y9Y> op;AbUVz'@ncX# efoߜ hd{8*HČ^B݆g٧& G0@{ >?4.^EzטU9-lK˲x,1K2XL-iڝ;qe1`.UҎ"5(9oJlbaΦT,;CU iâTA㶮ՀozFYŸ #xFt'H r$E7)q}rR崵`ACbwԉ@1{|ى} (!9s~b5l1B֘xa_w6=9fg"p=n]NH"ޛ[{wg rP 6rG9$*m/c47фz 9XS4)J>ܽ:#SI$Y.G%-83UZRK \LVI"ϯ!Flfcy'vIWnJɹ<<9Nph K<wgoUcz+@Iϧ\|a' Z3ܤ$fCXBN.MfꜬF|890;cFd۽D󂫲ڲ-r_tb>%ѩ--O|r'lvRZ<IC2$(U44Fuf&N+,t dЗQxYk[<T(v 8"t\>8]3FC^rPLqXaӥ"O?'IUJݨesScXcxWGV R@= W8ʤ3DQsƖ0EJ9U|bhF Q,3Ys*o졼ɹMŹzk6|O-[vj{ Ghw~|b~޴JbSS-1 3w8d2e` F{Dn'RSIXMxg7#_8iO1@vs'u8QC RC b\q^(MU^z ~3ZHO&b_})2inn(]՚dWØÛu iڕRN폶 Ik "f 'cVZ7.yjC׿(Fx,h+%ƣ\6Bv\E-!Xʡ1=F.lSwj,Et )t+7SOTeH<\K~yNo_WObPגx,ewԳ!س2Rxa!Qk!3͌RTo2-P'Ά}M1hT)K .5P=><8mH2$=3m}^{T78Z/{Yps R@ϸRMmK2;Y a5̎n[=κ J[SLW4K2'tq4+,TO 5NS~&J04uArnrp>7-SS[)76T vmܠ-va}t i7ńًSaҎj@Z(^o03S>(ep{͙2v>~6t{~;a!_\{ ŏMcr)0l׽yYSTc%©P's zP ijM6t4̏\V3'$E&.cW@[jΎsDX)$N.pۑ]= Nj[ո [F6eF4l@3>f܇dA:'NKF؋(ѲoIM5ٟ׊)g:XHms`b35'oP?VoG|mPQ{De"-CDeJpIdU-3-e|)/ 0Nè4~<TW$zDkyR)[+wfEޚ' qփ+ }gHʹf5^j ͪ҅̔^Ts% QM'wB*bH+[;S^3vٺ=Z4Uhk]qy>1q9\'e| ɰUkwqƓVhtLd&>\8H/g\^]2.,_{63iх2ʅ˞I!ov|3hxi!5@@<,H0N3nB-tb6Uw6JaiU͎P@x% <2˽VDyI(Q_><iyHdX QpV)@0 vkhD݌57e~6AFTax8%zIgR0<ϵp#L>W& ]&/6O II1@tߴZ(VCkƗ?n܏|~Ms]Ms-XZG_rЉ Wue'/-VI ݎklՑ3vE}WCt7,iVfal*Q:AFW ?}>1Jt1+`˧%m`9ץ-{aND$7DQng4L+o|r݅Kc\oX <"Z)taYkzªPY3~%E. z{m(p@kof"d4|i{aa-{_cy{jau \]r=S !hv簬j զ+([m+d:߹ᳰein-B?$)<9Jڎb|tڟHHgnGKD1iUXүSm.ҟ 2 A 4L,el (m%:q=~,5O .U`+8I"j6=LTpiMdJG )u["S9@hOZ"d"64օT>U;Eq uЏˍZ%g^Nfچ"=/wU]S̅( >P&t&fw um27 c .i+{h}Ǎ]~p s4)&L '\}Zf/ !B(; ZeJNӥ6杝aMcXYw.Y`0{uM#ݸ/xdg يu0HL{P,[ ;MPGѿ dR`Dzd6s͟XY$}Wqo:͟# IH,>LZuZNΎN#<7t,HH9hqp4M~uCRD@Q;qPNj' Qhz2.8ϣ@+b[t~FVb;j?WW qx~ {LCk2)+~D @`:Ϯ:s+>x(P!^*GR S%ƬNYqe®l I*+8~oLrf~+WKC1Ct  h au<<-e]3&r#@ YYctm9<`N/$9b]Wr^@ǘȒMsag# |t1B7>UrHVm>aɎczņt*B#;rjWR=_ 34V*N e"5"%{' /NJ>7 [5|#оW!5m_qp9Ux5 V(Nb7E=}|g6n,EaaCyݪcߏ7Ln, ȡcϩ.ZƘro1*b-NU&oMϗU d|yՑZR;exHd\L/^㸃,@HXTo~@nYq픪⵲NPF"ܣ7P\:hImPlDPQQ %2uTp{#{杲E[UEx %pҭTt˕!ܞ72>EQ\fXU캽J  D8hFLn=`C^Y]F"J9CVtZAAG*[qĬ\,#͓oQ`v֓fne3;f%'xƼ3*˪&ht/"\Nl/J.#7)ok(lޓy*ܿ~ZUc0Ӭe]cJiB -V/ sb੶Z,/ll|^Ʈlx k.6J&8ڿ 'Dٹj^^xs>i1{|zY#Fێ g-_kNMK d~,IUz~ԣgDPʞ'5㞻 p ]&jϢ>]4W1( 1cP10Uw溲 :맣r ޴mΐ'ě:B{H)0ȴfZּ nUՐcMMo(ºe7Vkj%!\Wx{s%|EKYwRbUa Fz ϡ 0b}MFe;zٺ6S__ ;^[;d"u`ƒ_tʓj_w"9H6iN:WD Gtl%#i]>LYXu pxus*0խld}@6g= Zc=Pkgu$;M=Uh5:.mRCu?=.ʌʩ'Ow?荶(uD# u-' Z _#3'@@<0 }=; LȁǙvӲHR*= ﳑ֥f$PsQd&s7}+_#XEcI!0A-ұ=r|'8 c ;AC doB*|6\>"qD}K&mp %T,IA(Tj̿B~i2ʨl(|۫x֭йBƜڕZt;Ѻq Cseջ DR2FC҉c/=Z]E4P|#40ĊFVv4O;b3-5."*.r+i=: S"=\=X!w]ѷk&| dPm?TVT~)ijBN홌cfS<ذkTuDA5grd;]egsjV^_u#x ɠqƵWm=bͭJ#-jv^-%iޙB%)%i$z *xBִG ^)IBJ| Gߤ{2LVyUWY9n+b)Қ5%b䃤{<ܵb.CDGEHd{k`\36M` 8ʆh ##]"2Geb=jHw, ljyXk$s*6b*ֶ->`v}<:Pkj#9tPSZ|D r7q&)9BeGeӡP>HM |O+4V%Բjye܏wT BDSɄӃGFNce~Uxm`b @Tǧ(0?ʙqJO<-1 N śkȍG9c8t kB=U;Z2,FW3#MzG6q=X8A?1-v !M%` blxz%asiEk+4.kLVA\z FwX9x:۶bܱ؆ȱߙȕ9@^ŋjMrͩc|MH3y~ojq9jBޢ^*.X[Xy<:zrGݮ?pP:דĆCDՍ0dT s~]tFU"wgޭjX p7;iNUEIoXJk^߼zWhWE%UϷtﰤ.9=B\~Hįa:r#Y_,gWKs1s#<ةG^2WgںZPp2bg]7O$KgRâ!(oLr{I[)1׫qʶYne̫>jidؤ=LvN8]rA\* 0~!i3dVGp 3%QDA: MSft @lƏ.[A~uqX橲+dp_ Nt'~nW1oܕTϥB_n 7?rK꥓vn7HdOӃo#iYʑ &U x \9)A%^x_:F"Vnm<# HV7>_`{}gL 4#Mk5Asۑ",͕^5uS0,y")yzp)9CR$T'׳P]xz#IX/4A3M*E(|,\5 p'Zg{iL&:m:Ź}'ʼ'b_"QV6PAMR/FjNvsh/c;LB^J^Q6Rڛt?1q+(T!~NDV_~R~pAkT[}rbbUh!ztء8*i.,:5PPQFj`]S*(x:TPTpf"880YtMH!dWcO[bl0ҰE| pZfe9;-+ڥT} ?S7(̾st a$R9Ԓݿ@6Ӫ2! &WԢڢ#59Ol!tz`.SkϞ*$O_Y>5-+48sQTaѕ;TB)uVd3pYq[ ;@ <%,F6OUFc3S)*6,i5.{WمQ?; 4`D<*SC|ұ>\3Y/NmYZi%^ǽ _AE悍kZ>CML~vϋ% |zŽ}a~9Ws"ĵ]Hょgҫo8|> q#Nw#mN ku, ;dx^Vg @VX+&Ŕnc,6mʬ}ۛ"_jk2Ctcc/$~]yQRkapGBɗ~j ?-4dP`JnT墮`fDЊbjϋT\*>XؼVͽXgh!Ah+fd:BE/ĹePuUh'jX g_ 1+ffXyXI뽁NAH` Ћo{,@O㏟2샄&d wmQ]NZڗW^$MR*+T`~wK(k0; )X؃S=qrQ>\AO28\:-wbc?.I`ubMd2Zw$CHK p]R4]*l 5L-Q>"%cB1ªSFK1XǔI fQNW`Eob^OPE.^Q:\fZu>e"-HwxU' G m*,iB:x߀PlF< 鴶<%\]T;'o \9:o? + ̦vGlͨǿdvrZ_URYGhGDI%^Oގ]ҵ^G& l$, YT.4gl3mv#,;Fj0’1:_8'Cd2d"j 5wOBVЇ k0\hF48ЃpƏes_o(-㽳kR[!~sӭԳ:Nb#iVV$/w:@[+NR,_w9g#+5ŮRFYϑ3_/ޠ5>7x|Y7e!fƜwVV!%k}!*q^{U}a_j K_isXR+.侰^7K)aE^5-$o֗7][ܵs=! {a_H61<$jM`x%5vù9+!L2m <$Ђ;!F8LDW +U3=xu`~Oַz\)Zlra魾 <_eM4&b_Wi>Gs.K娷w̓n&I#l˔fo!>XvR|NP5#0K=KvkȿjV5*^Z5ze&:wZ~x׆RxIp>m )Bb9HG:V5(.yx[sVEsjp9BUkhm9T I63VlBuC[+=T$0ޖI +Ƭ)uz9]S{B֬)p͠M]צ?TnSqS7 KҶb'~_k!Q7M5˓ķ.&YhՃt|F{D3.*y6FLzZHk)c9Hq}|\P ڏ+:=F񝽤IM H)#03wӞ䷐шKCB!dOܖv)آnkPjfH޹,-2+Wƚ&m]=z dԂ <{իO{\fay(%. M.ʞs\sȓC'`f@NDGB .$F켩SEE49zM:kޕiA sgv Gd8% gj[l`I^]zwOLn/̏JiЄ4)}G;d}>TP+S<{e)w*]6> 攚, 7e(>"/FsE&Y{5cט"Eƨdn-5WJt+D$w) -d=hW9rn8MDE%Pm" T9t'7L//|´\,RdF]D(RTTD]p?w]- eφ,q1Bc([Κa@wԇ< 6wl߸_ KK endstream endobj 109 0 obj << /Producer (pdfTeX-1.40.19) /Creator (TeX) /CreationDate (D:20240808093655+02'00') /ModDate (D:20240808093655+02'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2018) kpathsea version 6.3.0) >> endobj 11 0 obj << /Type /ObjStm /N 78 /First 638 /Length 3944 /Filter /FlateDecode >> stream x[YoG~篘],/`˖cRJK\SBR_u {H$J ,l6{z u%+UP)[i+e*\beB售<||tb0RfUJTl|[` lLZ+嵯,m=Ѧ :Y 9:U6XL \8o-\b*<k*B+`EoA 7=,Ƀ#|H%9V 2Iиr&eL\@eUURNJ pJ* >1i2U̔Ijaw+4гX2$-q-m%X  wN&n x$hɀ;ܱqecu g= E6Q r@dĕÐ1pGϫóz v'r> @ճ~}:>|>Kph4U;1})LU ?=`Z=zT=plw heR0MEQxu=>UM}^}iĮK64ӸnT]y}H+Jm(Q,P0OWM*T.*@Yn<*qW?D{سTzmJ,j ;; E;\g*W(d+٠ Y\'nCtK+^fߢDJ}(~$n~+5:'ZYx[7eݜd4PXQm$2fVT¯xKP[Sݼ^8C%cr۱հ,U)h}F!MO\8݌|G;xL H Xp/) 4]p{H[۬T<&$sqDwHԨ#@wLME45<(*0u=w$,!J6πS8:ΑA5+EܒĒC4׭gȫkU$%#~|O($1HuI_HazDBG |D^Ă4̫6^r_r&&uXGK{fmgLand.c}n?(0!O|Z!Qnvrbb ^\!q=@c6j21X$K )ud%|IKXZ|<욘0Bh)DKJ|eDE qiy)) Ea(lLT- R]n Aĭ7wx>($Jy1`Bd=Cc`@ I!1\hKk鮢2 67qT -5:H]?rX0`̡EF!d P H#DZ|TI 'ɂS&qwMd DP%^JҲ.P{$&aCK-F\ !ѐ{[ P E`򛓆8 ҄*-fLIa ei3zQ9AQVDy ~Hi#[OJĈ[X5n7.mY,`ARm:; 2&Dt&1lK'4?KTT6%SxF%%*N<6#Wvl9PUk==E&,G;LxD1n8QLxTZ<)tX̢WRI˻o*rB^hDܹj5w \PtW@@̲5~a=T/xdS.5S G&6Hq> 429nf$锶ŔKh440+eMox);,ʉ(8Wx6s,VF@׹kfJx4P*R4>8Ji=LeXr?,%DžPNFtl'XG;VO[浴|:\1[iq>c:# z&t"<>^S0ŖGP뽧s"o @Դ$3?ySYep] )}{X(-5ʦ:}AcNyrR=Cng"B_r[Ӗ\#JzX܅z4y.S4%[$|.`/Ńf|LGWɔ  /oG%xx6,YpO!Óz\so4썀K6^}{B}Sρz+25ZQ;'٣cD@#^ ⪞Άb8oTV[O@q2\_|d<tTOh&N'p*jQ_g~2^Hsqy})Fb,.ĥ+q= Ic9T\gz6߮'x$S11kC|:JOGl+c+Rbvl%-z&^/dx+ށݎ5 ~po-Af<OZnZYT`vO} [x f74JWq=N..gz(Ÿf ^{-㠚mԖ`6#]ROHNMM*FhQ~׸<rKFhjzuMslg[ >n#@ҿ]EXe-E ob1stV[#jl'nxa%6t#[z:Fiχ/^d(j)+>}vӠE/\i]{L-L%>i^"|z"1qlӝq=8S#K|@CPR\w(x;G'6Auކգ:n'p6Eϟ6=&ҡFhFl?<"mb6=h{yAv\lAr!VԹ}\M?>}(pr4ސɻITǣ64TVkŸ~E\F7d7&@Ux٢~Xaeѫ%'x'SF\tC9XG5PV\WsX)qJ \6oYt}y O& Iɞ>% g5,x#zpo4Gx5l`gg/?jJrEzG qs#\ƒ\!|I]JḔF\wI_ rK'%+e!ұ+:ɛ1/-e/Id8}R${ׂ옻7-ʗDMhWXw %ΒsJ_Vgz![#-WZrse߲t{KD/=t_.Fԑȯ){7Z2L7#yP󕡫/ange۸>_6~x @-#`iـY2?=, endstream endobj 110 0 obj << /Type /XRef /Index [0 111] /Size 111 /W [1 3 1] /Root 108 0 R /Info 109 0 R /ID [ ] /Length 302 /Filter /FlateDecode >> stream x.a缟*ZcLkk,UcQBb!b#6HظtJ,lH,gf̂ V2'Kd:W}I<`3mY#%;m)'蛶9! $@`. )h$TVgH,󮭚adԒISg4 Q;ԹEI26N:H'"1'ݤ>O`W? 캠U@K5TaZ5\ܪӷj.|KUpj ԧNfG$jl-1 endstream endobj startxref 221624 %%EOF sfst-1.7.0/doc/SFST-Manual.tex000066400000000000000000001073461470213725200157750ustar00rootroot00000000000000%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%% File: SFST-Manual.tex %%% %%% Author: Helmut Schmid %%% %%% Purpose: SFST Manual %%% %%% Created: Thu Feb 21 10:44:45 2002 %%% %%% Modified: Thu Aug 8 09:36:54 2024 (schmid) %%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \documentclass{article} \usepackage{natbib} \addtolength{\oddsidemargin}{-1cm} \addtolength{\textwidth}{2cm} \addtolength{\topmargin}{-1cm} \addtolength{\textheight}{2cm} \title{SFST Manual} \author{Helmut Schmid\\\\schmid@cis.lmu.de\\ Center for Information and Language Processing\\ Ludwig-Maximilians-Universit{\"a}t\\Munich, Germany} \date{} \parskip=\medskipamount \parindent=0mm \begin{document} \maketitle \section{Introduction} The Stuttgart Finite State Transducer (SFST) tools are a collection of software tools for the generation, manipulation and processing of finite-state automata and transducers. A finite state transducer (FST) maps strings from one regular language (surface language) onto strings from another regular language (analysis language). One important application of FSTs is morphological analysis, where a word form such as \emph{translations} might be mapped to the analysis string \emph{translate$<$V$>$ion$<$N$>$$<$pl$>$}. The mapping between surface strings and analysis strings is reversible. The same transducer can be used to generate (i) analyses for a surface form (in analysis mode) and (ii) to generate surface forms for an analysis (in generation mode). The number of generated output strings is non necessarily 1, but can be anywhere between 0 and infinite. Other important applications of FSTs are lemmatization, tokenization, lexicon representation, spell checking, grapheme to phoneme conversion, low-level parsing, and much more. The SFST tools comprise \begin{itemize} \item a programming language for the implementation of finite state transducers called ``SFST-PL'' \item a compiler for SFST programs called fst-compiler \item a set of tools for applying, printing, and comparing finite state transducers and \item a finite state transducer library written in C++ \end{itemize} The implementation of the compiler and the other tools is based on the C++ library. The following description of the SFST tools assumes some familiarity with finite state transducers. \section{The SFST Programming Language} SFST transducers are specified by means of the SFST programming language. Any regular expression is already a valid SFST program. An example is the expression: \begin{verbatim} Hello\ world\! \end{verbatim} It defines a transducer which maps the string \emph{Hello world!} onto itself and rejects any other input. The blank and the exclamation mark have to be quoted with a backslash because unquoted blank and tab characters are ignored and unquoted exclamation marks are interpreted as negation operators. Because the output of the previous transducer is always identical to its input, it is equivalent to a finite state automaton. The following expression specifies a real transducer which (in generation mode) maps a string of a's, b's, and c's to a string where the c's are unchanged and the a's have been replaced with b's and vice versa. The string \emph{abcba}, for instance, would be mapped to \emph{bacab}. \begin{verbatim} (a:b | b:a | c:c)* \end{verbatim} This expression uses the union operator ($|$) and Kleene's star operator (*). The colon operator separates an input symbol and an output symbol. \emph{a:b} maps the input symbol \emph{a} to \emph{b} in generation mode and \emph{b} to \emph{a} in analysis mode. The expression \verb#c:c# could have been abbreviated to \verb#c#. Note that the analysis level is viewed as the lower level and the surface level as the upper level in SFST. (Other formalism sometimes visualize the surface as the lower level.) A less trivial mapping is performed by the following transducer for the inflection of the nouns \emph{foot}, \emph{house}, and \emph{mouse}: \begin{verbatim} (house | foot | mouse) :<> :<> |\ (house<>:s | f o:e o:e t | {mouse}:{mice}) :<> :<> \end{verbatim} Strings which are enclosed in angle brackets (such as \verb##, \verb##, and \verb## in the previous example) are multi-character symbols. They are treated in the same way as single-character symbols. '\verb#<>#' is a special symbol representing the empty string. The expression '\verb#house<>:s#' therefore maps \emph{house} to \emph{houses} (in generation mode). '\verb#fo:eo:et#' specifies a transducer which maps \emph{foot} to \emph{feet}. The expression \verb#{mouse}:{mice}# is equivalent to \verb#m:mo:iu:cs:ee:<># and maps \emph{mouse} to \emph{mice}. Regular expressions terminate at the end of a line unless the end of the line is quoted with a backslash. This was the reason for adding a backslash at the end of the first line in the previous example. \subsection*{Variables} An SFST program is essentially a regular expression. This expression may be quite complex for transducers which perform sophisticated tasks. Therefore we use variables to build complex expressions from smaller units. The preceding program, for instance, can be reformulated as follows: \begin{verbatim} $Nsg$ = house | foot | mouse $Npl$ = house<>:s | f o:e o:e t | {mouse}:{mice} $Nsg$ :<> :<> | $Npl$ :<> :<> \end{verbatim} The first two lines define the variables \verb#$Nsg$# and \verb#$Npl$#. Variable names begin and end with a dollar sign. The right-hand side of a variable definition is any valid regular expression (see the next section). There is a second type of variables for character ranges. They start and end with the symbol `\#'. The following program defines a variable for lower-case characters, a variable for upper-case characters and a transducer which maps strings of lower-case characters to the corresponding strings of upper-case characters (in generation mode). \begin{verbatim} #LC# = a-z #UC# = A-Z [#LC#]:[#UC#]* \end{verbatim} SFST programs usually consist of a long sequence of variable definitions followed by a single expression which specifies the result transducer. \subsection*{Agreement Variables} Variables whose name starts with the symbol ``='' are called \emph{agreement variables}. They are treated specially by the compiler: if an expression contains several instances of the same agreement variable, their values are correlated. Consider the following example program: \begin{verbatim} $=c$ = [abc] $=c$ X $=c$ \end{verbatim} The result transducer for this program maps the strings aXa, bXb, and cXc onto themselves. Only acyclic transducers (i.e.\ transducers with a finite set of strings mappings) can be assigned to agreement variables. There are also agreement variables for character ranges. The following transducer maps aX to aXa, bX to bXb, and cX to cXc (in generation mode). \begin{verbatim} #=c# = abc [#=c#] X <>:[#=c#] \end{verbatim} \subsection*{Basic Regular Expressions} The transducer expressions are defined over a set of \textbf{symbol pairs}. Symbols are specified in one of the following ways: \begin{itemize} \item single characters such as \texttt{`A'} or \texttt{`{\'a}'} \item quoted characters such as '\verb#\ #' or '\verb#\!#' \item quoted numbers such as '\verb#\32#' which are translated to the character with the respective code ('\verb#\32#' translates to the blank character.) \item multi-character symbols such as \verb## or \verb## which are enclosed in angle brackets and which contain only ASCII characters \item the special symbol \verb#<># which designates the empty string \end{itemize} \noindent The following expressions are examples of \textbf{basic regular expressions}:\\ \parbox[t]{2cm}{\textbf{a:b}} \begin{minipage}[t]{11cm} defines a transducer which maps the symbol \textbf{a} to the symbol \textbf{b}.\\ \end{minipage} \parbox[t]{2cm}{\textbf{a}} \begin{minipage}[t]{12cm} is identical to \textbf{a:a}\\ \end{minipage} \parbox[t]{2cm}{\textbf{a:.}} \begin{minipage}[t]{12cm} maps the symbol \textbf{a} to any symbol \emph{b} for which the symbol pair \emph{a:b} is an element of the alphabet. (The alphabet is described below.)\\ \end{minipage} \parbox[t]{2cm}{\textbf{.}} \begin{minipage}[t]{12cm} is identical to \textbf{.:.}. The transducer defined by this expression performs any mapping of a single symbol allowed by the alphabet.\\ \end{minipage} \parbox[t]{2cm}{\textbf{[abc]:[de]}} \begin{minipage}[t]{12cm} is identical to \textbf{a:d $|$ b:e $|$ c:e} (``$|$'' is the or-operator which is introduced below.)\\ \end{minipage} \parbox[t]{2cm}{\textbf{[a-d]:[A-C]}} \begin{minipage}[t]{12cm} is identical to \textbf{[abcd]:[ABC]}.\\ \end{minipage} \parbox[t]{2cm}{\textbf{[abc]}} \begin{minipage}[t]{12cm} is a short form of \textbf{[abc]:[abc]}.\\ \end{minipage} \parbox[t]{2cm}{\textbf{[$\hat{~}$abc]}} \begin{minipage}[t]{12cm} maps any symbol other than a, b, or c onto itself. I.e. [$\hat{~}$abc] is the complement of [abc] with respect to the alphabet.\\ \end{minipage} \parbox[t]{2cm}{\textbf{\{abc\}:\{de\}}} \begin{minipage}[t]{12cm} is identical to \textbf{a:d b:e c:}\verb#<># This expression maps \textbf{abc} to \textbf{de}.\\ \end{minipage} \parbox[t]{2cm}{\textbf{\$var\$}} \begin{minipage}[t]{12cm} the value of a variable \verb#$var$# is the expression which was previously assigned to it (see below). \end{minipage}\\ \subsection*{Operators} More complex expressions are built by combining transducer expressions with operators. SFST-PL supports the following set of operators:\\ \parbox[t]{1cm}{\textbf{rs}} \begin{minipage}[t]{13cm} concatenation\\ If \textbf{r} maps the string $\alpha$ to $\beta$ and \textbf{s} maps $\gamma$ to $\delta$, then \textbf{rs} maps the string $\alpha\gamma$ to $\beta\delta$.\\ \end{minipage} \parbox[t]{1cm}{\textbf{r$|$s}} \begin{minipage}[t]{13cm} or-operator (union, disjunction) \\ \textbf{r$|$s} maps $\alpha$ to $\beta$ iff \textbf{r} or \textbf{s} maps $\alpha$ to $\beta$.\\ \end{minipage} \parbox[t]{1cm}{\textbf{r$||$s}} \begin{minipage}[t]{13cm} composition\\ \textbf{r$||$s} maps $\alpha$ to $\gamma$ iff \textbf{r} maps $\alpha$ to some $\beta$ and \textbf{s} maps $\beta$ to $\gamma$.\\ \end{minipage} \parbox[t]{1cm}{\textbf{r\&s}} \begin{minipage}[t]{13cm} and-operator (intersection, conjunction)\\ \textbf{r\&s} maps the string $a_1a_2...a_n$ to $b_1b_2...b_n$ iff both \textbf{r} and \textbf{s} map $a_1a_2...a_n$ to $b_1b_2...b_n$ by aligning $a_i$ with $b_i$ for all $1\le i \le n$. $a_i$ and $b_i$ are either a single character, a single multi character symbol or the empty symbol \verb#<>#.\\ Note: Although \textbf{a:b} and \textbf{a:}\verb#<><>#\textbf{:b} both map the string \textbf{a} to \textbf{b}, the result of \textbf{a:b \& (a:}\verb#<>#\verb#<>#\textbf{:b)} is nevertheless empty because the alignment is different.\\ \end{minipage} \parbox[t]{1cm}{\textbf{!r}} \begin{minipage}[t]{13cm} Negation (complement)\\ \textbf{!r} maps the string $a_1a_2...a_n$ to $b_1b_2...b_n$ iff the alphabet contains $a_i$:$b_i$ for all $1\le i\le n$, and $r \& (a_1$:$b_1a_2$:$b_2...a_n$:$b_n$) is the empty transducer. Either $a_i$ or $b_i$ is allowed to be the empty symbol.\\ \end{minipage} \parbox[t]{1cm}{\textbf{r--l}} \begin{minipage}[t]{13cm} minus (subtraction, difference, relative complement)\\ \verb#l-r# is equivalent to \verb#l & !r#.\\ \end{minipage} \parbox[t]{1cm}{\textbf{r?}} \begin{minipage}[t]{13cm} optionality\\ identical to \verb#<>#\textbf{$|$r}\\ \end{minipage} \parbox[t]{1cm}{\textbf{r*}} \begin{minipage}[t]{13cm} Kleene's star operator\\ if \textbf{r} maps $\alpha$ to $\beta$, then \textbf{r*} maps $n$ repetitions of $\alpha$ to $n$ repetitions of $\beta$ for $n=0,1,2,...$.\\ \end{minipage} \parbox[t]{1cm}{\textbf{r+}} \begin{minipage}[t]{13cm} Kleene's plus\\ identical to \textbf{r r*}\\ \end{minipage} \parbox[t]{1cm}{\textbf{\symbol{94}r}} \begin{minipage}[t]{13cm} range (extraction of the surface language)\\ maps $\beta$ to $\beta$ iff \textbf{r} maps some string $\alpha$ to $\beta$.\\ \textbf{Note}: SFST considers the surface language as the upper language and the analysis language as the lower language! \end{minipage} \parbox[t]{1cm}{\textbf{\_r}} \begin{minipage}[t]{13cm} domain (extraction of the analysis/deep language)\\ maps $\alpha$ to $\alpha$ iff \textbf{r} maps $\alpha$ to some string $\beta$.\\ \end{minipage} \parbox[t]{1cm}{\textbf{\symbol{94}\_r}} \begin{minipage}[t]{13cm} inversion\\ maps $\alpha$ to $\beta$ iff \textbf{r} maps $\beta$ to $\alpha$.\\ \end{minipage} \parbox[t]{1cm}{\textbf{r{\small $<<$}x}} \begin{minipage}[t]{13cm} insertion\\ freely inserts the symbol pair \textbf{x} into the transducer \textbf{r}. The expression \verb#ab << #, for instance, is equivalent to \verb#*a*b*#.\\ \end{minipage} \noindent SFST supports two-level rules. However, the syntax differs slightly from that in \cite{Koskenniemi:83} and multiple contexts are not supported.\\ \parbox[t]{2.5cm}{\textbf{l a $<=$ b r}} \begin{minipage}[t]{11.5cm} obligatorily maps the symbol \textbf{a} to \textbf{b} if \textbf{l} precedes and \textbf{r} follows. (Elsewhere, the mapping of \textbf{a} to \textbf{b} is optional. \textbf{l} and \textbf{r} are arbitrary regular expressions.) This expression is identical to \textbf{!(.* l (a:. \& !a:b) r .*)}\\ Note that the alphabet must contain the pair a:b here. \end{minipage} \parbox[t]{2.5cm}{\textbf{l a $=>$ b r}} \begin{minipage}[t]{11.5cm} allows the mapping of symbol \textbf{a} to \textbf{b} only if \textbf{l} precedes and \textbf{r} follows. (The mapping of \textbf{a} to \textbf{b} is optional in this context.) The expression is equivalent to \textbf{!(!(.* l) a:b .* $|$ .* a:b !(r .*))}\\ \end{minipage} \parbox[t]{2.5cm}{\textbf{l a $<=>$ b r}} \begin{minipage}[t]{11.5cm} maps the symbol \textbf{a} to \textbf{b} if and only if \textbf{l} precedes and \textbf{r} follows. The expression is identical to \textbf{(l a $=>$ b r) \& (l a $<=$ b r)}\\ \end{minipage} The single characters \texttt{a} and \texttt{b} in a two-level rule may be replaced by character ranges such as \textbf{[a-z{\"a}{\"o}{\"u}]}. The left and right context of a two-level rule should be surrounded by parentheses in order to ensure correct interpretation by the compiler. The SFST formalism comprises replace operators similar to those described in \cite{Karttunen95}. (Note the two underscores between the left and right context!) \parbox[t]{2.5cm}{\textbf{c \symbol{94}--$>$ l\_\_r}} \begin{minipage}[t]{11.5cm} upward replacement\\ Each substring \textbf{s} of the input string which is in the analysis/deep language of the transducer \textbf{c} and whose left context is matched by the expression \textbf{.*l} and whose right context is matched by \textbf{r.*} is mapped to the respective surface strings defined by transducer \textbf{c}. Any other character is mapped to the characters specified in the alphabet. The left and right contexts must be automata (i.e.\ transducers which map strings onto themselves).\\ The rule \verb#{aa}:{bb} ^-> c__c#, for instance, maps the string \textbf{caacac} to \textbf{cbbcac} in generation mode.\\ Note that the alphabet must contain the characters \emph{a} and \textbf{b}, but not the pair \emph{a:b} (unless you want wo allow this replacement everywhere in the context). \end{minipage} \parbox[t]{2.5cm}{\textbf{c \_--$>$ l\_\_r}} \begin{minipage}[t]{11.5cm} downward replacement\\ Each substring \textbf{s} of the input string which is in the surface language of \textbf{c} and whose left context is matched by the expression \textbf{.*l} and whose right context is matched by \textbf{r.*} is mapped to the respective analysis strings defined by \textbf{c}. \end{minipage} \parbox[t]{2.5cm}{\textbf{c /--$>$ l\_\_r}} \begin{minipage}[t]{11.5cm} rightward replacement\\ The left context \textbf{l} must match the left surface context and the right context \textbf{r} must match the right analysis context. \end{minipage} \parbox[t]{2.5cm}{\textbf{c $\backslash$--$>$ l\_\_r}} \begin{minipage}[t]{11.5cm} leftward replacement\\ The left context \textbf{l} must match the left analysis context and the right context \textbf{r} must match the right surface context. \end{minipage}\\ If a replace operator is followed by a question mark (?), the replacement becomes optional. Note that replace operations (unlike the two-level rules) can only be combined by composition and not by intersection! Furthermore, the SFST tools support some of the restriction and coercion operators defined in \cite{Yli-Jyrae:04}. These operators can also be used with multiple contexts which are separated by commas. \parbox[t]{2.7cm}{\textbf{c $=>$ l\_\_r}} \begin{minipage}[t]{11.3cm} restriction operator\\ This operator allows any (substring) mapping defined by the transducer $c$ only if it occurs in the context $l$ and $r$. Symbols outside of the matching substrings are mapped to any symbol allowed by the alphabet. \end{minipage} \parbox[t]{2.7cm}{\textbf{c $<=$ l\_\_r}} \begin{minipage}[t]{11.3cm} coercion operator\\ This operator requires that one of the mappings defined by the transducer $c$ must occur in each context $l$ and $r$. \end{minipage} \parbox[t]{2.7cm}{\textbf{c $<=>$ l\_\_r}} \begin{minipage}[t]{11.3cm} restriction and coercion\\ This operator is equivalent to the intersection \verb#c => l__r & c <= l__r# and requires that the mappings defined by $c$ occur always and only in the given contexts. \end{minipage} \parbox[t]{2.7cm}{\textbf{c \symbol{94}$=>$ l\_\_r}} \begin{minipage}[t]{11.3cm} surface restriction operator\\ This operator specifies that a string from the analysis language of the transducer $c$ may only be mapped to one of its surface strings (according to transducer $c$) if it appears in the context $l$ and $r$. \end{minipage} \parbox[t]{2.7cm}{\textbf{c \symbol{94}$<=$ l\_\_r}} \begin{minipage}[t]{11.3cm} surface coercion operator\\ This operator specifies that a string from the source language of the transducer $c$ always has to the mapped to one of its target strings according to transducer $c$ if it appears in some context $l$ and $r$. \end{minipage} \parbox[t]{2.7cm}{\textbf{c \symbol{94}$<=>$ l\_\_r}} \begin{minipage}[t]{11.3cm} surface restriction and coercion\\ equivalent to the intersection \verb#c ^=> l__r & c ^<= l__r#. \end{minipage} \parbox[t]{2.7cm}{\textbf{c \_$=>$ l\_\_r}} \begin{minipage}[t]{11.3cm} deep restriction operator\\ This operator specifies that a string from the target language of the transducer $c$ may only be mapped (in analysis direction) to one of its source strings (according to transducer $c$) if it appears in the context $l$ and $r$. \end{minipage} \parbox[t]{2.7cm}{\textbf{c \_$<=$ l\_\_r}} \begin{minipage}[t]{11.3cm} deep coercion operator\\ This operator specifies that a string from the target language of the transducer $c$ always has to the mapped to one of its source strings according to transducer $c$ if it appears in the context $l$ and $r$. \end{minipage} \parbox[t]{2.7cm}{\textbf{c \_$<=>$ l\_\_r}} \begin{minipage}[t]{11.3cm} deep restriction and coercion\\ equivalent to the intersection \verb#c \_=> l__r & c \_<= l__r#. \end{minipage}\\ \noindent Finally, there are two commands which create transducers from files and one command which writes intermediate transducers to a file. \parbox[t]{2cm}{\textbf{''file''}} \begin{minipage}[t]{10cm} lexicon reader\\ reads a text file named \emph{file} and returns the union of the lines of the file (see below). Whitespace at the end of the line is ignored unless it is quoted. \end{minipage} \parbox[t]{2cm}{\textbf{''$<$file$>$''}} \begin{minipage}[t]{10cm} transducer reader\\ reads a precompiled transducer from a binary file named \emph{file} and returns it (see below). \end{minipage} \parbox[t]{2cm}{\textbf{t $>>$ ''file''}} \begin{minipage}[t]{10cm} output operator\\ writes the transducer ``t'' to the file named \emph{file}. \emph{t} is any valid transducer expression. \end{minipage} \textbf{Caveat:} The file names should only contain ASCII characters! \subsection*{The Alphabet} The alphabet contains a set of symbol pairs which is required for the interpretation of the wildcard symbol '.'. The following SFST program e.g.\ defines a transducer which maps a sequence of letters to the same sequence of letters, but with lower-case letters replaced by upper-case characters (in generation mode): \begin{verbatim} ALPHABET = [A-Z] [a-z]:[A-Z] .* \end{verbatim} The first line defines the alphabet. The right-hand side of this assignment is a transducer expression. The set of symbol pairs is obtained by (i) compiling the expression to a transducer and (ii) extracting the symbol pairs from all state transitions of the transducer. The definition of an alphabet is also required by the negation operator, the two-level rules, and Yli-Jyr{\"a}'s coercion and restriction operators. \subsection*{Comments} Comments in SFST programs start with a percent character (\verb#%#) and extend up to the end of the line. The following lines of code return the expression \verb#abc#. \begin{verbatim} % This is a comment abc % This is another comment % This comment also extends up to the end of the line % cde \end{verbatim} \subsection*{Lexica} The lexicon entries of morphological analyzers are usually stored in a separate file, one entry per line. SFST-PL provides the operator \verb#"lexicon"# to read lexicon entries from a file called \emph{lexicon}. The result of the operator is a union of all the lines from the file. If the file \emph{lexicon} contains the following entries \begin{verbatim} house mouse foot \end{verbatim} then the result of the operator \verb#"lexicon"# is the expression \verb#house|mouse|foot#. The file reader treats all characters literally except for :, $\backslash$, and angle brackets which are part of a multi-character symbol. Blanks and tab characters are deleted at the end of a lexicon line because such whitespace is usually added unintentionally. \subsection*{Include Command} Complex computer programs are usually stored in a set of files rather than a single file, and the compiler combines these files to a single program. The same can be done with SFST programs. The command \verb@#include "file.fst"@ instructs the compiler to insert the contents of the file \emph{file.fst} at the current position. SFST programs create complex transducers by combining simpler transducers. If the compilation of some component transducer is expensive and the respective source code is seldom modified, it is useful to \emph{pre-compile} this transducer. To this end, a separate SFST program has to be written which implements the component transducer. This program is compiled and the resulting transducer is stored e.g.\ in a file named \emph{inc.a}. The main program reads the precompiled transducer with the command \verb#""#. \subsection*{A Simple Example} The following very simple example shows the implementation of an inflectional component for English adjectives such as \emph{easy}, \emph{late}, or \emph{dark}. It will correctly analyze forms such as \emph{easier}, \emph{latest}, or \emph{darkest} and produce the analyses \verb#easy#, \verb#late#, and \verb#dark#. \begin{verbatim} % Define the set of valid symbol pairs for the two-level rules. % The symbol # is used to mark the boundary between the stem and % the inflectional suffix. It is deleted here. ALPHABET = [A-Za-z] y:i [e\#]:<> % Read the lexical items from a separate file % each line of which contains a form like "dark" $WORDS$ = "adj" % Define a rule which replaces y with i % if a morpheme boundary and an e follows % easy#er -> easier $R1$ = y<=>i (\#:<> e) % Define a rule which eliminates e before "#e" % late#er -> later $R2$ = e<=><> (\#:<> e) % Compute the intersection of the two rule transducers $R$ = $R1$ & $R2$ % Define a transducer for the inflectional endings $INFL$ = :<> (:<> | :{er} | :{est}) % Concatenate the lexical forms and the inflectional endings and % put a morpheme boundary in between which is not printed in the analysis $S$ = $WORDS$ <>:\# $INFL$ % Apply the two level rules % The result transducer is stored in the output file $S$ || $R$ \end{verbatim} \section{Compilation} The SFST compiler translates the SFST source code to a minimized\footnote{The minimization will not change the alignment between surface and analysis symbols. Therefore smaller transducers with different alignments may exist.} transducer which is stored in the output file. The compiler is quite efficient and was successfully used to compile SMOR, a large German computational morphology. The SFST tools support three different transducer formats which are optimized for flexibility, processing speed and start-up time/memory efficiency, respectively. The implementation of the SFST tools is based on a C++ class library which facilitates the development of new analysis tools. \section{Unicode} SFST supports UTF8 encoding or characters. In order to compile an SFST program with UTF8 encoding, you have to use the \emph{fst-compiler-utf8} rather than the \emph{fst-compiler} program. Both compilers store the type of encoding (8-Bit ASCII extension vs. UTF8) in the transducer file. Other programs such as fst-infl or fst-mor are therefore able to determine the appropriate character encoding. \section{Usage of the SFST Programs} The command \texttt{fst-compiler ex.fst ex.a} compiles the program stored in the file \emph{ex.fst} into a transducer which is written to the file \texttt{ex.a}. The command \texttt{fst-mor ex.a} reads the transducer from the file and prompts the user to enter words. Entering an empty line will switch fst-mor into generation mode. Entering another empty line will turn on the analysis mode, again. Entering \texttt{q} terminates the session. Here is a sample session: \begin{verbatim} > fst-compiler ex.fst ex.a > fst-mor ex.a reading transducer... finished. analyze> easy easy analyze> easier easy analyze> easiest easy analyze> generate> easy easiest generate> q \end{verbatim} \texttt{fst-infl} is a similar tool for batch mode analysis. It is used in one of the following ways: \begin{verbatim} > fst-infl ex.a file > echo easiest | fst-infl ex.a \end{verbatim} \texttt{fst-infl} has no generation mode. In order to use \texttt{fst-infl} for generation, you should compile the transducer using the option \texttt{-s} which tells the compiler to switch the surface and analysis symbols of the resulting transducer. \texttt{fst-infl} processes the input by converting each line into an automaton, composing the transducer with this automaton, extracting the domain of the resulting transducer and printing all strings generated by this automaton. \texttt{fst-infl2} has the same functionality as \texttt{fst-infl}, but uses a more compact binary transducer format and a different analysis algorithm (traversal of the transducer with backtracking) which is more efficient if the degree of ambiguity is low. Use the compiler option \texttt{-c} or the separate program called \emph{fst-compact} in order to generate the compact transducer format required by \texttt{fst-infl2}. \texttt{fst-infl3} is the third member of the fst-infl family which supports the ``lowmem'' transducer format generated either by the compiler switch \emph{-l} or by the separate conversion program \emph{fst-lowmem}. fst-infl3 avoids reading the transducer into memory by directly accessing it on disc. This program start very quickly but processing is slower than with the other programs. If you need information about the available options of one of the tools, just call it with the option \texttt{-h} or have a look at the man pages. \subsection{Other Tools} The command \texttt{fst-print} prints transducers in text form. \texttt{fst-compare} checks whether two transducers are equivalent. \texttt{fst-generate} enumerates the set of mappings of analysis to surface forms for the argument transducer. \texttt{fst-match} is similar to \texttt{fst-infl2} but treats the input as a sequence of words that are to be analyzed, rather than a single word. \texttt{fst-match} repeatedly determines the longest prefix of the input which can be analyzed by the transducer, returns the respective analysis\footnote{If there is more than one mapping for the longest match, only one of them is printed.} and continues processing after the match. \texttt{fst-parse} is able to compose several transducers at runtime. It converts the input into an automaton, composes the first argument transducer with it and then composes the second argument transducer with the result of the first composition and so on. Finally the analysis layer is extracted and the output is generated. \texttt{fst-parse} is typically used when the composition of two transducers cannot be computed offline. The transducer resulting from the composition of a two-level morphology and a finite-state grammar e.g.\ is usually too big to be computed with the compiler. The result of composing the input sentence with the morphological analyzer, on the other hand, is small enough to be composed with the transducer of the finite state grammar. \texttt{fst-text2bin} converts transducers from text form to binary format. The two commands \texttt{fst-print transducer.a > transducer.txt} and \texttt{fst-text2bin transducer.txt > transducer2.a} should produce a transducer \texttt{transducer2.a} which is equivalent to (but not necessarily identical with) \texttt{transducer.a}. Finally, there is a tool called \texttt{fst-infl2-daemon} which creates a daemon which communicates with application programs via sockets. It is used analogously to \texttt{fst-infl2} but reads and writes from/to a socket. The Perl script \texttt{socket-client.pl} in the directory \texttt{src} is an example application which communicates with \texttt{fst-infl2-daemon}: \begin{verbatim} > fst-infl2-daemon 7100 /corpora/mlex/smor.ca & > echo "schlief" | ./socket-client.pl > schlief schlafen<+V><1> schlafen<+V><3> \end{verbatim} See the man pages for more information on all these commands. \subsection{Tricks} The compiler prints the name of the file and the line number that it is currently processing. It issues a warning when an empty transducer is assigned to a variable. If some intermediate transducer is rarely changed and its compilation takes a long time, then it is a good idea to compile it separately and to include it in the main file by means of the \verb#""# command. During debugging, it can be useful to write intermediate results of the compilation to a file, e.g.\ by using the command \verb#x >> "file"# which stores the transducer x in a file named \emph{file}. \verb#fst-print#, \verb#fst-generate#, and \verb#fst-mor# can be used to examine the transducer. \subsection{Caveats} SFST operations sometimes produce other results than the user might have expected. This section discusses some typical examples. \subsubsection*{Problems with Negation} Consider the following SFST program \begin{verbatim} ALPHABET = [a-z] !(x) \end{verbatim} One might expect that this transducer fails to analyze the string \emph{abx}. But this is not the case. It only rejects the string \emph{x} but accepts any other letter sequence. Here is another example: \begin{verbatim} ALPHABET = a a:b a:<> b b:a b:<> <>:a <>:b !{ab}:{ba} \end{verbatim} Does this transducer generate the string \emph{ba} from \emph{ab}? Yes, it does! There are several ways in which the above transducer can map the string \emph{ab} to \emph{ba}, one of them consisting of the steps (i) mapping of \emph{a} to the empty symbol (ii) mapping of b onto itself, and (iii) insertion of \emph{a} after \emph{b}. The crucial point is that the negation operation here disallows one particular mapping of the analysis string to the surface string, but still allows many others which are equivalent. (The above transducer generates an infinite number of different surface forms for the string \emph{ab}. Therefore you will get an error message if you try to actually generate from the string \emph{ab}.) \subsubsection*{Conjunction of Replace Rules} Now, consider this example: \begin{verbatim} ALPHABET = a b c $Rule1$ = (a:b+) ^-> (b__b) $Rule2$ = (a:c+) ^-> (c__c) $Rule1$ & $Rule2$ \end{verbatim} The first rule generates \emph{bbb} from \emph{bab} and the second rules generates \emph{ccc} from \emph{cac}. It might be expected that the conjunction of the two rules performs both mappings. This is not the case, however. The transducer for the first rule maps \emph{bab} to \emph{bbb}, but \emph{cac} to \emph{cac}. The conjunction of the two rules therefore fails to generate from the string \emph{cac} and similarly from the string \emph{bab}. In order to obtain the intended mapping for both strings, the two rules have to be combined by composition rather than conjunction. \subsubsection*{Insertion With Replace Rules} Replace rules are used to exchange a string in a certain context for another string. The following rule maps an \emph{a} in between two \emph{b}'s to \emph{c}. \begin{verbatim} ALPHABET = a b c a:c ^-> (b__b) \end{verbatim} It might be expected that a similar replace rule could be used to insert a string in a certain context: \begin{verbatim} ALPHABET = a b c <>:c ^-> (b__b) \end{verbatim} This will not work! The replace operation is unable to replace the empty string. A slightly different rule will do the job, however: \begin{verbatim} ALPHABET = a b c b:{bc} ^-> (__b) \end{verbatim} \subsection{Compilation Efficiency} Sometimes intermediate transducers generated by the compiler are much bigger than the final transducer and the compilation becomes slow. In such cases, it often helps to change the order in which the final transducer is built. Assume for instance that you have a sequence of 10 phonological rules which are stored in the variables \texttt{\$rule1\$} up to \texttt{\$rule10\$}. These rules are applied to a set of wordforms stored in variable \texttt{\$lexicon\$} by a sequence of composition operations. This can be done as follows: \begin{verbatim} $lexicon$ || $rule1$ || $rule2$ || ... || $rule10$ \end{verbatim} This command will compose \texttt{\$lexicon\$} and \texttt{\$rule1\$}. Then it composes the result with \texttt{\$rule2\$} and so on. At the end, the transducer is minimised. The following sequence of commands does basically the same but minimises after each composition operation: \begin{verbatim} $tmp$ = $lexicon$ || $rule1$ $tmp$ = $tmp$ || $rule2$ ... $tmp$ = $tmp$ || $rule9$ $tmp$ || $rule10$ \end{verbatim} It is also possible to first compile all rules into a single transducer which is then applied to the wordforms. \begin{verbatim} $rules$ = $rule1$ || $rule2$ || ... || $rule10$ $lexicon$ || $rules$ \end{verbatim} The rules can also be applied in chunks: \begin{verbatim} $rulesA$ = $rule1$ || $rule2$ || $rule3$ $rulesB$ = $rule4$ || $rule5$ || $rule6$ $rulesC$ = $rule7$ || $rule8$ || $rule9$ || $rule10$ $tmp$ = $lexicon$ || $rulesA$ $tmp$ = $tmp$ || $rulesB$ $tmp$ || $rulesC$ \end{verbatim} The result transducer is always the same. Which version is most efficient depends on the circumstances. If all the rules can easily be compiled into a single transducer (version 3 above), this is often a good choice because the rules transducer can be precompiled and stored in a file. If the rules transducer gets too big, it is better to use version 4 where the rules are applied in chunks. Again the chunks can be precompiled and stored in files. \bibliographystyle{apalike} \bibliography{bibliography} \end{document} %%% Local Variables: %%% mode: latex %%% TeX-master: t %%% End: sfst-1.7.0/doc/SFST-Tutorial.pdf000066400000000000000000006616021470213725200163340ustar00rootroot00000000000000%PDF-1.5 % 3 0 obj << /Length 1911 /Filter /FlateDecode >> stream xuXKs6WVr&I\4tS+CL"jP Ҳ{_>@Jr,bK}qu相8K7ۻMM.Ͷ$Tgz$'mٱN+u{&HⰊ^*\l3~6M dY<|@z?)y]`M a$QePkқFE NsQȧy7@'W{9fS<}ě^,9OJPz?7 >GN??-+ONAdչA^?+b&Sx4'q*b8z k(?MUݖЏVlX?GzIgr0[Fl}Ӊ0<G_g=5~Byyt7_]&"EPVaQY>3NG OЭU = ==YI]AMr_=J  q.F q- c4 wgb U8X|4 |c "x4B ]"g@iJaB,.e硙9"x Jb #)z@M8jGr,{5#@J2bѶOU "o>Y z"2oߪ2ӀR>'dj V0Ty1Bӈ@Nup=b;ZIRjbH֙Ns<92ZZ,xu#viF(;)!F .%+!sH{*"'bA8B8%eFeϨ2:`)%cTBJ8m O.yĴqޕmƃRZbV*%V ng__EK8PRvIl,{t"&sWuat ?*ќ&s 4l%7|3jxVKWWXbDDG4@8>AỊUe`BzBiG!5B  ADHXNlQTaAvC?v"2 $vCo "3awFd2\|~~+uN}w UEðoB}U> stream xڭYK)1G)Q ]d `|KrPvl#;q$Eb1,dW/ۇOYI-.eUlUJ^m&z#e'OmNzL|j7ܮ+ u7/fW2UZI6*J֛,+RwkL$,x x?oa$֎\>85IH 뗩?SʷC3XޭZ`:9=SӁG5es<tmzlrzMFy CZCyD6Oc#b{?!9i;*.f e Ju|5?LjԺہ]j&/L#G/cjFppbdre] >-Y&-*D'ʲ[W :okB#AvJ4T\i^N_D)UG0%%|tnidn?.ʺj$=2@#( ۝^y-$:u$v=hO3ꌑ ?G/6_/MGӻ D ;85DiRO(- {$Gh1 nDy5 /Cb$&YҮ6ޒxte ypòJ(|eaZvoMCJ!B\AI;+nwe?Ù2K?D3X"SD >ɝF`@`TdU!IEQG0Z ypy`|y<61 C^2>_ SZ ]ZR8m4Bu6 fsxR`a!&%ܘ.KD s<~hR {<]!D r;ǀ")y#+C!opSvT2bVL\) "zƥNp>/5ĆHGAToWn,<~3pe݇ 񿎛3 0yۡ.Cw;~OKW'" er8[OX\gcTfiT^rZ*c*׳ϒyJk!S9)WP%@xxEE!y7**ދR@eeZl1_ bl%tU,-$9γ1̹!eEIP|,M CɉPipGvCp6liC bH#TlPᾱle M.K[;HR_;H\;ȹ"vv\p}t5 i`$!dy;ZF1Vct7 #h$n@J²~ ަ&\4ul^耮Rݴ )ERAwv9[ h>l `) (!+>yȱ]| ZwZbcj>; 2LpN${vUV(e'ĸ5&NZ=ZJe=ހmˡx0%I% vc]$N#Ί/@"! &R MDg/Yxv_NsH}XK!Po |E!Ȍ8jpwN8QydȢLWDK,{?)H{i] ~G,i9mqLI~+wJQi%;B `=5r9g0ʿ$eqg҈aj\_ω iT+r&-\F(. e`PZ֨mRUT^OG -#}2,UdIJw sߡjVD [[ lulv hɞMۦKɥB QsGxo:[LhG>8ܨ)*oK:duĈe\`k956AXvM5.y=P9ۊLWA;k ^&Mi''mjRVV7"cqG$?ا_.v FLK4Um$5%|}ci]0>R`B>r{[`K'O/Sa݂^:7FAӬ16K5BMHhoF;ap^O%*]J%LK(E5'ĤcRLE-)I ( ~,~R,n?bJuwllPihNQAșV$rhP{ֿEOݳKJ:6072襔u*19O.e endstream endobj 12 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./transducer.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 19 0 R /BBox [0 0 241 73] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << /R7 20 0 R >>/Font << /R8 21 0 R>> >> /Length 1352 /Filter /FlateDecode >> stream xXn\7 +LX, ]0M5R#Po12`3%ԊOlmw©h_A()K+z=A+"HJ ~:.bP`YBq ,cQa.[VuhUo;qw؜U0ՍkF]kҴTZ4kјh@^ *fu#&G5r"<'SU>:r/?F9vM ܃ɃJIhSai8[ 4z`݄(Ct)A/M`hP^ #@/*Y~5BK2I,=aƜ9,Jіb0ofEaWmAFgZW9O!r? i -;.20+QEJ-fjg԰D{vs:vr Lb_pqwJʠ:F#W[Zd܂RUe O9F.QkCWѴvB" /O qO\P.F1td4c0Sy9rgl=YuAl*9rPAkoz4d~Ƨѷ> vCUMaTAu1.cT~{N« }qKӌfϤu &1/# J0h) ;Y `v/r\d9;NQSYa}]6YL"ެ'Q"e}`+JyoNJR*8Qo($$N_\!ɛ Wŝ7R=)sb->>;Pk(HUn;m3^a endstream endobj 24 0 obj << /Length 1380 /Filter /FlateDecode >> stream xڕWKs6W0>3C+u!(^f\0ffsIc6<{'mubœL(3t էAj s&oHØ8 EdzNyid2dc@=v[ 3m; m9zbarBH,qѵ\ֆοA Lmق7XV4<: *k 79=܉٤@m)v}-oa Կ4Ǫ.i78TV۱q p>]McIt;e˜%عa;¢N-raQF~`j@P\ww6X965挣*#ql;qO,$ 61,~74;ahqVt辣3$5s?܏3Nɢ/=w9Q=!"Ew,1ˆ{& xdggAٕ7 "LoɌ]h5b> stream xڍXmo6_֬wK + C %*K.)I;)Kx<rumϸr?,OY$YGU9~u~a4_AZU8a~[EY"Ow;VuX[́qOݭ$B;nUXiTzRUV禝`EnS5՝ߒvh-Sɩx(Sy̽r7 cA2#ު)0'T&O/.m/€0m{BI"Qu6QW6ζ 0oq}cGs*;4Tj*W84EYcZK٠qy8C yqni4l \mrbFKhF4QJCt9I:s9˞Z `@b6m':8"[LDhjz_V gsk#7SI!ʾ<|x~L0V6BCeXb^Vm׍#o޻&KQC˸'jp. ]#UriJ<2}'m[{~9`Lֈ8hMþaz~C=_/Ơ$LXz,m[1b5pX2Iޏmm2Q3X܁w#)`M ]mw=Jv{Ҋ5UwVS|> 轮YCUD5S5%HG+V Ff#T-hJMG p;"|֬:18B &"(X lyҢ03đWibC}D[5eUNZ*̽N dABx0v S5jrlL|hYbC:R&' !˂f2,fmm;WGhTvbܭts(B4ԕqN- EUYB( P 瓺c-y.oQɦ(OGӽrd [ a>q .* $E^lOM:/by> )dc^ endstream endobj 31 0 obj << /Length 1748 /Filter /FlateDecode >> stream xڕXK6Q$0 -ER$9h%f K%eᐲ(E ,p曇["2)yʜIFY^,CzחobIr&S%DTo Mӵ|U2?oik[.$1 d(6Ӛ%$(/͖aƁ[iڲp܀Ng|Nx<ڪ2 ڙ,rN%6@*d.MCL){ m8OGs{/]Ce5(F\!'?=#eZ4C…z^[_"$8 F$QLK&dzlV;?A`Ƕw9L⊆z{>mxA q?B\WhE[WpŠFӁ)q _^q Spcb0i}۬4"[=NUD%z94m䭆 =^e$\nGr0qjx{?uƓp iLpwg3 tʜV=Հ@u@2H{Onf-r2U VAo4e٥}&NF却5aU]c Bzn#YKt78vV=i15WwwW6"-2d$>j \#'5'MR7*HI,O`ӣ޷`J^&l T|DB^g@Ϩk.tN Dk׫H'R}2CcR: sT_7":"H"Y' :e$XjrvAOQ ^Z#a&ݪ~0kkdK:,@_BɋeI$!ӆ@yF񌊐qY¢ WKB/l+f[8`~4"^O>Mѽ*]?%CW}߶'^{U zT=~~|E#xzrAULLE(O2h1%џwܽqY`3cQ0 լ`eI fE-9Y&UK}ț?8."TYB6YFs~O oO9co8H2m|K꾾T,|۽;Zwk \>@> stream xڽn8z1+jW`h1 0H9=06 rR\vloۨ7/U #QE niyQܬ>޼{VfsLqDLgh)-tTW>9(r(T`L刾iΤx% ڊ)4^ojXe2TQuRМ[iy;1zpEDeJ*.BUn ,E kT4YTk,JZI1JBuZkAufwҾS68>I$"99lK~NcēoъeQ :Pwڟ5L߬72P. :R/= Ǟa2 ;X.2Yug0}OE.Q`Пrĝe ,v/ŧ r*eQ(]*GlTfqhU\_unnU7OzF{N}^=֊*ٟqUyS 4à)Mw3"6W"Twfٚf"yEYCX=Ȋ)`F5^B4AOk4Y_N%,!k% Gxv)"8G*4 \ɨ3=;kHm ax(wz ~;=mOӓJ#2*EUj]/ C܉,^C˄vLR-V7)!R|!X\Aa]ZE`z~8mud#]y2SL] M Հ ͼmyqt6uRe_2v>_x?!`L6G2 _`2}`c͌6j_KV)D%2H,S,ǥ_?݃ 2L#qfYbnY>ݻlż-Q*q%6܍~u endstream endobj 40 0 obj << /Length 1941 /Filter /FlateDecode >> stream xڭX[۶~_'YQn6&MpZ)@<wFGufȑd9ڜe837C.HWgaL*SrW=u^mo_ݚG?~Y ,)Ѱ_g--y-n_m5_5pvf/og2 ]72^wn5ձ(ufV(S5twRx ?8Ľvͽ =2\?&=5nHhj٠%xx@Fs*}B6 7i ݪkp$v"H!^*r(t%KX<$f Ib_̭8!<\ 8VUSԏS , bg7TQ;cF#Uw&K!(@/7W|@UV|r0&V 淛WB,!p2>6+^`B`i1!S{d12׷k)hOdա`BAU1/<wvnK^"ҹ8p$H-JTK%"ڄ~ yg-"q h `Im btAT-CZxqnдqG{D%= b#48{Hg>yY2?ЇgI3/bqCFEa jKJʈq9}&HV& 0/˳#^ &<%O*,$ϰ.p@Բā?Ց9VƜEhg*~08I1K^u )A*HI'_A) *X[P3 6f@f}2K}X'# k3$W3M,P,FT?vD_F&wk* 2e8أ2v@ġq`Akx[1Egsg@S>S !aaofP\,wuƱ%̜/ٔDr(t\bhBmF*J<0?EgtR Xn e)ñ7 j`p[RYzV)MS*!xyE!'X6pGYp(VƜbxvc(ל 6X)h.}փ%`yzB8>OG t `VPlThNѮ* ڛ::{sF79c>3aw(g@ثҍ!r!˞:[ Z]  w=m|ϦeĶ(珧{}= K<Q$ .bfϲmM}Aa`w]8uכ;OQ ӻb{]!+))b$ $t旫Я[327x~:{MO: j1`D5DGȻws#VyP4Q뾇`c]oעx8ôwPNiW!9D_zfH35PܸU/^͙(T"Ci 8fm,\!:J9)Q brƠZc^YA`BՕX;rG-Y*c7Y<R(5 endstream endobj 44 0 obj << /Length 1612 /Filter /FlateDecode >> stream xڝWݏ6 _ܓ3,%[w[u>=(uLv.hI}%"ų/q~G(Y((ShnV'OtnU wk!iȢ4>y]~˫hu49v!ӱz\NrЇ`i UF x4)Jqƨ+m~oQ;1z_ݮ"ab .V&+VjcǼٺaDž#l P1&b:,~g:z3t6c"+ 4++g}~'׭*Eʬ+*B 3'{BV*ޱ~Nʽ86v"1 ?>f0g󩆿NJt s<✥&d~B2W%@"5qSKB5aEĤ/Wx"63Xڃo{ VyF"҆ѥWyC;B69zGYdXPxaZ$hrd;eḫp[_ڂE"xDrp)Om騊C( V!C1Kb73 McɽlZ56`*SiB:ڡ./(|QNa> %tv]qpnC+E!`ḯ K pݘ.[LUTR xaQz [hv =kvkѭ{b,ܴk',JaW&20u=ɴ%J lkN"a\ĭpn: Nm!hq?8%,< F/Hgs( ;ڗ4ͶuOᲙXѵQv &By^`Pl˦% /܈((&"agi 9c߄r u҈C}xBv1;HPIgiʁ'}Ҟ/-f  bWog'& ΜEn_*RH+W1zӛܤb¡^~(SfNۿTܫAU]~|HLiJPًųCl endstream endobj 47 0 obj << /Length 1347 /Filter /FlateDecode >> stream xڭn6_!>hEe>p=(b8ݥ6G{Jbn\Dr8KoWgo21)[ς,/I އ/.u&i2p[e$儻j-uMżSjP<N4w{XVᨄֲR<%yYa=+agń.ciw4 Vt$AJ>@q 'لMZxRN? :o:y?nDcԈ1IbN|z r$WXrk]-46H{ s]$. d$cΡ5ޔ;)B/h/Z'%2;iocnTfQ;UqF1|hRXABe8,OhX> GRfmFFKZٰQ0UBpZdN[b PڴPI͕tzI)dmO}.s[$3)XRο=z $D#m9;K{h<9{Sҗ\ ^qLTvawMcFldr)'Hr:{Ne4WV^ DI  ԇq' ,wo1)a6O33> stream xڍX[۶~_,A.jV[] )iOcgm խ6?3R6/69p8G^|6V2? V*KUd,j[nCW60 bxe>QŸZm0[nAi׫:5 YvzsDeLUk:o EԸC#fۖ(e8ewsC,tYfL&,hl(|o8Jj~Ko}^F.*U>ZW kYd˨ o'ЄkjI4o::pjư]q߷585^գ*땺kt̀÷xAG$Σha%m 30S6ǝ(O]Q=lĹÅK5V"icF\xZnvX$~MAٕU>mCV9_L?MDQ706+ G%VS* ͔?ȯ]eWK)D):rU5\(emc|Dlt`Hk$ %Uz,m{M/+b8wY_pu.l/~dWŵ(a_00zfAĸH]_5d@,-fxܿ`#uGZ,̌t&"hi(%% 1*YK\$mG1 (IX 1I&OqǀܱrctC,mLxG2pxJ$k\AVf!d;5./9Dzb]­ּW0`(_'t~<l-!w]j8g4+_(Oh#˜DQAm XDhӮכA7sD(3`CER$Qe3KG沌!td pB rU08~G_>+ě:%I҄nt1׍[_OO4oWH #sV ,H$DzZsQ\y^/<@s{>+QjJ:B[|Aݏ[7{!〰pg,Rm0| : O55~:M[r%?T_,N9F˱h)d7F7rge )6@A:`Q^F NK=)?=EAܬ'8-58ȍ0@<™4aIKM["m!]^4@nfZ@BRe!e05R \7HJ po@i@Z+5A\s< Ն uf)ޔۛkF.'0E=g+4a Yw #b%8+_w8 ;iߛwy\П-|}(w!\I-U&̷`xm{`RUtIot<۾;}i }iF˥s9jsW?WlOt߾/qgzttػ)!%pe<+$i|Y4g_tWe~I!}eHʨ$*ῆkI>Hl >t&mIf@"su*2I4'JKE41-=F]pb&KנړJɝ'8߱b&ugQpD愂2by4!7D `J7.*!`>LiP5Nn HMWJ:3>.isŞ)~ H G@ J%0pQaR~?R" endstream endobj 53 0 obj << /Length 2952 /Filter /FlateDecode >> stream xZ~b.6{p4@80=4l$މ-%$峋ٙC]"@9;;'۫~v!/w c"ͼH..+]}WF&nWͿ[ P iN|Vٲ>U[U[ӒmQ/NjS\d!{k\b s?/[c"GVi]&kI3alL! kj@  ۇ]0f! >GO7Ig_Sfo;?E{d Pa{40zvmo˙1*0O<~F#mY8bL #KM -D\U0EIA6x\D\miatp.-dH{+ي9A%TtH~ /M-Su³Jz3̳(D)> !(r`Q.\-G^3㐖nb0m 5!qH?f6F+Mb++9ę^y5LQA[T^΁nK,]`Jf`r+j0_fqPCN 8FRTry ,DM9:l,6Z@\F|CNGxҺlB ),"}JHυ)%wX6hhL-2uB oŞ4h8K=V8qs(|f6<ܨ.׍uZ ">s蹴@52v8v0ۋ5*괍+I/'ѡ>)&ʁd=3xOd)?+ 7N(%@ÿb5YB6 64@{~>l'|k+m< E->"<}\9w+EHJ!STˬ G^z*/dg 3p,⪃o0ǖDʡ~hbp֋l@ϓ\Mg ٱ,O JáBgu47tH*R-%1z7dlA%J(, J_9"& endstream endobj 56 0 obj << /Length 1867 /Filter /FlateDecode >> stream xڭXm8޿"fI`$630q,ͽ=vZNgr3߯JUrwp"JzJDa.f,O($̓$fPѯJxQ\D7O]lq+j9#_bvښOHeNikYmXruDR%/X˪MM,-V?J rrif([E8c7lvK|hnto:"ހi:@>~`J8C$He6+w@8Hā2XWI(%,3“$iqLh)(ݡbΔ%5{S}&x-@8x/`),k]^( 4gCNUQ2+4gK)L5s6x{J2L==Z(,Px-Ut:Z싖YvhaԯA2h2xyXl U?a- lnSYljg!:kT.N*JGq7m4R"2.7oוrx3<-??~>qCo&ԙ ]^ԫ Oכ5&V;::MR{_7Ow}RVA7U웮]2'dYܛ92548˟E yyz0Sr};Js~ӏA'moꛕ}mnJcFY7?p|/V^]56h39#H |eSEԑnլ*MB*h^bC]v̲o0tI0Si3)5e*F`YVLTp\80'_HCqmܴj;-qhbN0dZІIkF ܦ>†^p9 9ωn>B 6v9ndckI0Z]SC͞fв8ڃ-**ZuOeK@9& 26n_!s[:Yk$]:u*@ Є8N;Ѽzb{a}(uWƃE8N8#$PIP{px1;5 mcY PpԕTA2|7%+ d$=Ӕ,0I!سմ Ud*֭=u%i ,B!F +l@c_͓5w$@妬k frZK*݃}|BIqjOx3.X(VOBB@&S$ JU7+Z|F2\rNn{*]lv:= \7L(g#wr~W2 QgC wܓlIyz>/=8fKΕM{᧩˔kXԗEkSoJxpѴ}GMJCey4:D'ʹ>356=z&sj|R7,e< #<+X )׺q=߈k|ᳮ8:>+1oG(E2߈,Pf i<Lxk2q3"9"!g :p4@ xgޖq~N3JohMi]CUAӯM%ͪE*'إ{C.¹gj uϜ-+~j<chakyc:>zrSv/L7jW{jA2"\@a\7$ endstream endobj 59 0 obj << /Length 1740 /Filter /FlateDecode >> stream xڵWo6~_a}PJI )a=, Ʀcr7;%Kbw峗?| sXnyD1_$i$aX󏪹urSA4;5ty7U*FY9ɬWڗOm7Ѝj\%N|쪦ގmu) pFٴ;/g]؝ka\_7o#W_t3<^}UZV-lko)qfBÌ]|=0Qχ#a7_I0w|#|vPC/m|:z/dG"cq"Ff_VfUNusW͚mfGql )cu]he"<"&~%%?] ̳uEd z7Әe,Yn @bQ h#R4»"tKꝬc$RՂ6bw-O=񊲯~#XuDozCh^`?3 YdQ#^O DdqsYc, J\-WrM(i0\mNvovh2$"CSlԒ>}Q 1mDtj_HgsUYg-PHiljbY. TJEι:jdQoc,[3Y@(ڏ5F-@Ld0jjNŭ[QF5H4年7DDŽWjv~vx'vr.2p ¬}}RdBy˒@$Qg^}=Sغ8Ti9f< w&A:ldHw7$H|m +24aʙ478uOl*!t7q- ƷՆtqrڰQ 8CSӖV٨˞r*z;-KYvF&NSފU#l" %vf Z-9C]6@ ԢZ'98Z39 :^901Jvw!H2^FCMۭA R8':e4skpm?2?.\K.OTh['JQޗF׍Ed k{+0.T"%i>aiۢx\ _)<JZ꜅A9: MCc6i3躰tXGk{RfB<7;Kқ վ5z GYlhȾ0tyd97 rH $螽]>U& endstream endobj 63 0 obj << /Length 1831 /Filter /FlateDecode >> stream xڥko6{~YG7$p>yДD>bp6xћѫ_9 Н,V-f,ɵqTZӛW~L0' &,Zʩ-<*7Sۛ[j8VMՉ5|]*hVet/J\ዩ{}N'w.oo뎪>gת$=$2-HT2B prtBۥ㦒JL"&ಷ֕Ykl2JdKtbB<*-Jꐒ"$-"ۡ)ܪKMddFP *WC$\@r j*D@ ,N6nEE9*sCϘG' uL0ZCA%ѣNDbXjl'Ni"DT=;Fo;#pDVKZ%˅IyDf[UiDsZ~-6PWɮQHu!ŚȆP0#LY\a!z82{E͏N|jx hK*^ B*:)UјjI[H.0=,]F!%oqE-.W,L3<g‡y~>.32fz?˥pjeb(h:!ٻt=r8ݮ6(ZnTT/e`=v!t̄J̈́+m{Q=g35dFS7 # Zp|ha? Fk,yLe! OH ύ̠|\RF5S"uᬎnW;YjçXfX F|R5GTh> (^uLkJfƼ֌^"Qdc&̃׫V^Vwv%vZzC_yV>quI}%y:D ?ߩ;hvB?e-b<3V!.RRAvМ8d׳T$m24hE'U?x)GmVY w UA[hf6I_&,DŽM7rsQظɐ`uśߑM7o)턖gAe&ki˾ka?G2ezlN1]_neyA8 D/]v7z70:|m4EoӳL7T 6O;lo_FT~Bg|'>5ey0P7m?r?g& endstream endobj 66 0 obj << /Length 1479 /Filter /FlateDecode >> stream xڕVm6~%WyNTڪjdJ\#/5[ޥm8ؐly}fT d#xW/S?c>v7onW_zyO^O:pwPb,H:w 2IA3nF#דXaP 5l]^+gh$bh T sl̦ QU9q{Q# 7«FгX0B`V,k\%[B, Pٽ!SO /$N>?APJDLG$CFG)섀B`VoWsyW ~!X1pq[EM0Յub5 'hDIHԃ̫nQGbɰo-qZe͐|wUhI ]?Nc@s=l=bdl9-:X{X*44P5D'HG41Dnt73qRM"8(QGbs-XCp[ .lbMA"ɘB]WmBP][v-98PSZT= 轔I4҃^:TuVKu"oKĊ:*ewPjtX!Y2gSo0Ztْ xlpEU{ufX/NdoYlc꫱tˎX-ˣiL( \R[ܧx*!ꑳ/Tڤ&f9L!gUr5y[`Q̹\ vS^|t>%ΖknK ղis}(v Jv)Z8,Mo2tx>;!=xsގI_7BLSFkfޫ ~j ]~b; 0,^v2/`ȧSoڌԕkY8Xјݐ_$ V M1h0i8>nlX+QޜQ|آ1CK!zBƾP%߂}3X FqsJh|LtpDtcIAȼi "4\9pJ$3Lb~f*=W̟Z.ƋFƇU7- 5 C$xIa endstream endobj 69 0 obj << /Length 1690 /Filter /FlateDecode >> stream xڕXIoFW P@8 9\7E7)`=4=HbJ$"3݋5ۿ?^ɂsI)"KX8XDUӋX9~ȽXe]5 ,8,|3|(6~Ļ_SqrI# W nGp]lGI}_7Ni “߶/}5U-yEKݘkնrKtf22h`?O!,.K*/;хp ܩ ߕ5z\¥\({]oK@{r\O1KLJ BT6e]w?:[Σu[SouY/0,H4D!|ک}kb &pn+xҨlo t0/qo4U-kKߗUEΫՠB%6$Yi2 A #eY81с\yQ]3UKEetW#lTOq8T 9ferH#[5/Mu%ŷs{{hѧvO_h3|:T~A~C;J(d4.{ SV^|vP5.smN"N*zM,4*"=!] 20LJo2ȈR2Gܝ#YchU|1 h4SC-==^Ghn)PPfjMTqlyez,F  zFn5%^pH iT\]\&#ׁunu/LdƍAqui +/Mo+Th5!VY4ӱt$K¡;eP( HP& Q%uNS* Y<>"OKhF.簐c >ayyG,s8$b|&Q 2\8:뀲:#>,Þ*{ٺɶO'اqcS݌O 0.өOGMNUkjj@Un;m!- c>?l\ C>W"BT ڕ!9Ke z^'rB,Ik(q0g-tZpN%8Tk ƿ1sqdN;i>ɉUK8~w|xZk4XO1lzW@ht st{R1Ø}, UNjw_W:\U뿿pJoOA&|AsC8P{ 1y? endstream endobj 72 0 obj << /Length 1320 /Filter /FlateDecode >> stream xڝVKo6WJeI4E $ECa@hE>;á˫mHp͌~ZYeTƳjV!˒_$ϲE%w;Tp(+XOE4g1X܈)A0Q 8L ۽vRe\i|Zr2O[Gw' ]AڦB3NĚ-\S[2̒,.PJ 2,)=ՠZjRjͻNɵ[uFbo2\GToC[;JB_Ԏf_7wQ E3< ^q|wy7kQX5!b] Vzcʹt5XGO0[WqV w} '!Gb*mTyH9l#Vi!k[)ͣ0I+<Ї}8gk:5N0{B򺾿ZJj} ~uk'7f^T~ jP;OahŔ :䅰 TDZ%;xغ &tN${qZ sO'ݩ*WrȽIE~U0Iuâz݅+bN7~r7~m̽NB 30һgyB( !S=EnVTPnhٖϩm $zz1ۛn=c^ k#ig#Ѹ_aNeannnn ZHH8dEBd_N2z-zܿkNipxa*GAcQ.dnpӊY,n~^f=ڱ`yNn{u<:$ P(n^TEY>V. elT_}~Q&Ow/w\dKxՋyB@[?ޑ_cZr-,# )?J^U=yQBZWq|>^ ^[<6j¡3d75VJndՄ_I:!9wՆJ'+;ĕ tPA#!0q,>Wk'z&'c]t' $Iz90Nb'Αfq/g۸r endstream endobj 75 0 obj << /Length 985 /Filter /FlateDecode >> stream xڭVmo6_! WS bk}qB蘝,zk4#EJT}Nsϝxp  gv(Ό`3c>,d=]5ދU!"7:KFڋ!,;&2xa]g}Veb1Ӣeb-?~w#z ,D?!1irJ2intO&-"8hC*FëǪon~f1Ώ(fHĢ2!ru}cW\j;7lb+ROv{ 7XC8=>?_~Z{gcZ\/Ts׿;h>-pߺ|a tP= 0E3g-Љ;ޡڹu(b{:fNB  lJ]>}X{;ϸ hw"& [l[Ѽ8bcބƐ0:L(05̜6='F n5*n+m Q~(8!fcӚEK!IiгX|Ԇ23@cB o'(0B~$*Pׇ+UZtҪ(u/㶃MMQ}'%QfʬM*֭PYr}6ZS%ɇ\OjVń!7Ŵڨ2y͟~ ReB]ո!Ȧ;7 1%uB#S ԁ$8h:#@ze1Q]y*wYӖkZf q|l40h0 BQ W >VzV,> stream xڭX_o6 ϧ0 jYYh֡! yW˗4hGϾ9!DQ$#ER|y%WYf[,aRE^d,,Kы@$/w!WzՕMMfMߎXbvnW˟ұlXz!͋m1\ܩ^(&.*]64j65dVVv/݂4 s ̜ U]X}ҡaP dYR/aYũ˔&N,Y""R֤n'4c.oNMUS2ކ$aRh*k]wܔSۿٴPp9USk֝isSjg 4bPS4+'2b~ԖԆGUqŽ:؈z}ש"/7j'D~ -?ktm_/Ri;`U baZlߊ"؂|G6 ٞ8w˅J'J@΋;&g۔}EQַ-Bg# 2]$I$3Z !m%E֗8>0g~d8q4އPK )N4R(EV ŷ^|)%E_t _k588S=id0.X+HҵqI0]T|nQI1,@UnR&w5qby=zy2* XRrn=nj "דSNb  DNOYǒ^t: / ZDt/S0i5PNr[בhk;AFEr҉%t1TA\r0X1Ok0z,Y endstream endobj 82 0 obj << /Length 1265 /Filter /FlateDecode >> stream xڝ]o6ݿB #>,@ P[,y\wǣd+add-fxE!<f'^, coֺ߯׫o_^KߛH߼ "d> stream xڕX[4~XuAʠ&$v'hYU}@#>d''^c;͔Ri>ϟo߳*2.Q\QW ͧOWU(KKj%$_̝+XLǮ?ܖQY$Niw\KMK fTF5UL ' Syї,C)ۜo`#55 ؓʃ^.&34vEmۡyMZsj)x8tZD:,9K `p*J*յ[Av;m tv @j,748s/I;:箭!yܟK? RQXM[x3,r 8lqifD҃5/9)}y2'"xlvr44'0?HT^({4XRuc4Q=B$^ H}%)]K/;К\%/aV~)oUVTA4}߭c^̗$4b%}r )y)0k<>3b#kY=C Oﵯ>XW#wBO|(c v}cQ𭥒7c|F} IHV(gx}Lgz}Nm@-մVIjOdp>=t@Jz1b%zC`XΊY g%01u1Y!X|[afa.gA:nxpÃ@/ArH `7P\xh$b "@CJj-h )ƭvop%-->Rcwnoo=HV`@s. {"kH(yo i1`cVڝ_ZzE?AIm%v:<^D}jR0 WA F->)9L`Px$wJ}P?4h v0@"lv.F̀.{\-)|5p^yL\W=1 lc8&6p#ؐV݅/I4@D ["Džka&Jc2ӗӓh,< tg>ùo`E3_ls: Z $HR$qhuhMB hX@BoUrcsuE/Q?G)xޑ!7xhڌx!P4)t{D"?>Qۆk@3V<ӟ/rJ Rٗ@?b)Ӈ|T>G5}MnW?kG~O$Ū2!B;\7vbv>߯vk,bYT,c jz}/[ endstream endobj 88 0 obj << /Length 522 /Filter /FlateDecode >> stream xڵUO0W4=l %f۲Awc`W Ã|n.б!lvAv\t}/!^sI`Lf=Xг+"tU12>,&K^j%p˔(b023M"'D~5∔`%pl YN-k'd;샬t> stream xڝUmo0_J*LyMJDR4U[~YEPaJg&%|{qtLW1t]C flTz}WJx}r&H,^t.Gj'ޟtG2,r|U `Xc<Ƴ67nݣuHCQ^^ qm@M" w@J!@k{]$„r.I8Mf*2'.p^enmҕp4-M^#$iE[ztq"C :wT4M16gXN3/gM×mPwR3up Սa *"7, Ն #=T1HUN(%F!_xaz8IMA[;KAmn#?x.ъ4 HdBf>X%EML#"忧PK=TŒkeKEvê$-&;Q'N(f);Cu9?OMe[ZJ_߁eM2o/h"BQBOBk՝Tnj*25ZMA;A/}a endstream endobj 94 0 obj << /Length 1649 /Filter /FlateDecode >> stream xڭXK66@nkF|Ib CK=$9h%z-D6^r(Kr b17;)ցJ,EH">_,%a+k7(uljUu%dkΪ}Wv8nWQd T*x4/ ]^Wͫόga6˙53MSYl)+IS Wt]]j0bbȍd.},or[:u޴-tnfyuYߜ1mVwC~x痫oy5SNG#(`_~2[ i3w~3F 'WAIT((`xz,6T.RW.^{Ź^ YQyi#;*΍&}ߴd%Kf?_, zMܧJw(t~IA*涩:z11V2(&~[9ڸKi2,eê`[Y]1J"KNE-9ca{cW ])b) @킚^mN(Q; VF\K8Ra(׷%hYiIIc2Ԛ'WaA 뾬UN$#YREq^(Z>貇B ϳ#nSFÍ;x(.04Rta T@l:\xO0{Fd}_Y ajlJ 75k֬C55鮻黤T*8%rh׮V&]p;Aq[ƾ>@@bkQfX=͍r`25ezb]KC-^eXuU?LO4G_+ |BbZ$824JAOKzUk'jM*'MJ(eg0>6 Zc)`_"\ ٝCSi^i*IBϩjG(faO(:žVCw {Ynh94xOFVDu]p$JQr49 iq{bfS̈Rj8q!(d VgAGqRp5*(_M0u~I)I3`&r6wm4鼑Gm,uC-5;&$\7͉p2%2O *tK + 2t#!ַXᦥ ) !ST5D&^P8SH6ʠ˻3:If$ cۻ @AlZ[ +palNqfæY3X=@!?Vҵ+/4UYkq.9<8\IY୧ `Ca endstream endobj 97 0 obj << /Length 1694 /Filter /FlateDecode >> stream xڕWo6Bh]@^#V|Ud!V bѶZ=\Iaxbǻw/B^0 /N2[wW;/d2K=#&U p/WoxȲ0b5*C&([Qw˲ŻWoyt)&9Zb8? mL?l$"9{l\ ][ȇfecEirU9tA #L/zUVF+@*KgS`a+R*NQMHT2x,RDً;CݖCK#/Am(6e&zipTw{p$b -^,f|1'Ic[Cl-8ҙp45hS`I)}}'!ܺ3Jz.n_KPD%E$ <\D`#vQ2Cٗ SdB/*Mwu8ǜ*oֻ|iߔĶ)d\U_[]RQFx"lY97hWVЏ"\RkuK6Pc^o+0Hv.cxęRcH>eUuz8˵P(ER(v'7ˋyCYZ7<2q7 }S4=l;n9Xֆ ݭP{IQ%awS!=cX`ʛg!u_Be3yI~3S=4QLe2`Kě„6~}YUQE@J?b(H0Wc j0Lֺ1[Rl N*eңд{9pJp{ڞ˝D_Z~m 8U@4 f1#.x,6~pDT-M{'|EC5RgV>&+8ϤC3J؇^V;k`6Fhi8K,vTq;o` |VqN2"Pg.f3 Woׯ^__4~}{P8l9u'&?0n@JQs=bƄe߽6VmZ*1?8 L=mKkb|{V.L~0=3I;yP9> stream xڕXo6_!) +~c[;` l5Mje)8)GɒXjx;yxFY:|k޴?zS=߾3\&8!}%>yOF9NjlV444gSx&9ܗUVL?bdkX"NidMGm"Y\79rN R29a ZiHq?tK({MQX&y¢!DJ0mf1eu;F\} ;,=oᖙ4o(4'SOTx BȽ98jjeΌB4AG0EgLh`Q@Nm`uyVDz~ĀY'[8ܖi@ʙn*C7]Qdkj=-OdʰV׸fH֬J2a j Ki;2 #\ǧO|cUlwwn,ƘA̗#!l0<kG_%l@˖E 7wqEvӱ"~kY`4㐸48{|7!wgo åhlN VK?T2Ӄd>7mO匜S{9z#GH^prmMp,X~@23 *]|a,,kpO35Q{~ύZf #3#VT&A6/W4Q^ (*brP嚉Azf{I0 gf&`mm[i;+>5 6GZt]Vr-C8Vgz:+N<7m!ۮCCա׺G4b =n#̤0pk4w Sl" «MC;̙| H endstream endobj 104 0 obj << /Length 770 /Filter /FlateDecode >> stream xڝVn@}WH*XAj䡪*UbofS-;.!Md9=4BڴТ Bj\{2.K{6U5r 奜 YrZ[ݒڜM?kvdEZ/]Zț4 j;8~:]|&^_lū%bd{ցHuLPm@> =Zв`n/\lj;XJ?e6`1qRgy:i,A7hdKAWk%Y)j%7XB#EØupD.0>urqEAO_v-Z$1r#GVȁlZ˕rL{|܊~8#~ QﶤhMս{a_DT8 dMŠM2g|sZ@fXYLġ\[PSxE(l4[sh{/"PD#aev5xet؀Py8vHy"h:',PS&qHY*/Mq&AJvr45[[ %V~S&M5[ieR16ȁʕr31E3}!xMQF|d,k%'El. EO(k!5߅u>qЁe-F endstream endobj 118 0 obj << /Length1 1579 /Length2 10059 /Length3 0 /Length 11096 /Filter /FlateDecode >> stream xڍP-Kp\[pl,;  ,;-q{[ݫ{w^it9dl! E+[ !k `dÜAc0<`?r &=5 UOgGPGH-/"C 48WQw=O +GDDp ltha m] ,0(7' dexa2@5N FCbzg j <UQrEV{8N;D`?667/`v^)s|`D3τ?KejvA9`?z#\m .. W r}NoW!;mzq黂=A*sMك`nnn!Aaq=_7ПN?=Avmv~P` A`Wd6r?ˏ߿̟f qu+ґW6|wvB|~^n ?@#hXW;@r \g, SYBߊ=E.`g߿=oy\jkue!ζSwAcC> [-0/ecќ -v8=?gM=/jcxoxg$y^G[ϟ*pqB`!v?nTP%/$R7y}6F\,< ϒy .X? \?s)^ kP6şR~oX^؈;6wPxsOJ1fr-{|Z&tLHڮ˵ ͣi[jT{vǽe~ƗS2Tz!NmݪE8Z%J>U㑋ujU f! t(0*46>? ~Ө8K+3M[x^ !c 3!B&a=T%Yx)T 4ޟf@FE^!MSml`3 `biD`PK{O?RaO {M5}B?5T'p҅NW~ W5pFI9n~EՋ hBSbw7Q`.f>$ZZMGie#Dax]"ѻ0'o*$8êٛ D.PJ}i_Fg3R8s]URg 8LX J7!{cV}rR4S a`A"Zp‹}x anD:PĞ@ a[;8wEֈKsw麡dEUk#Z<Ւ\1N`zw4u՗3hsM;'c/O 3O*2'w"NT fEV%z;i/GNJ&%<Xh}ETYZ.xO;cُvTTĖ5KM4P|F2?aE/,jYcJɕw5θ :ɡU9LeaF=V.G6tȼ,p4/4b4qi`jv}.tN ԙg}P'qħupf=Gpf>WmTnR7aKު-ZkL͚r;GD[)dggT}I~wlwYd3{8:Jk+\k̵̬Dpv\E"];~c?Z(33f$7}K?1^ TözN5۶k>wL¿fv3"dɸu j |jFpb!IMLrsÁY8+tgკrH1ʱԦ'b{B@" U%(n@n`$IdFx-6gC &6L=U@FGP:n Fv/SF>u<-ɧqG4^ >Z[ UIQ`Cg8v xq|Ј+/SzKFqrT13PIThvtS%2Zoe,|$y[>Ã#"?n쓢x9!usiݓ/cԁD=U2(n\9x9BZWNzB R~8l a|ڨh~qS1"50e斐raQ|"jgs +FNlbcbBY I`aF>'B\6_!r5|G0.Dg|k;}3 |k &f2RP܏H;^l;&MSr]pMe媋8O/{JSTX0G!L4uߝطLJ!ҒK؛>-<[6P\0qpnyF! {*FS\۫\u\0+|ɦro }/w,VxKIW_[!sb]su֡Z*_&YDvevv5Ez~EhiMs2slW&_6ף)#`_ޯ%K$~$ҎDR۷oAR D%0*ߣὃ/{([=a^5:t$&<=-T_V\rnꭙqNo0n+- ަf.G?wfs9_e.%$n={A?]|Y@75%Gi>˶X Oa/hTj%RCpKʎc* [ٷ*.d^g1'XoϮ6YSpP$3%`&_sRށ(ߪTV1k]qEMa,(ͧaeZbm/FP@#WxcJ,}G}&dc J!ce>{}ԶT!ݴttꤥT!lL|8K-@e}aDy fÆ#z/HX`H_:؜;0 \>)bzbC-t'Mar_RwtS:)^.ר9%`k ļU r{Pfz[[D(}u߸@&=ZFO5Yy'T2zY5R.ב1jU!(7Gnvy)["#`Le<ڃ&(=V~϶)y( %;9~/g@O~"VqvW C-8GjR'[YbBNbXV0t}`he :Ŝs#(5ߩK}m|jn/~Թ"xc5|oA}| _R85Y08aRoLk͗x>b8#ol_R'3ʺpMc(|d6>q^:Ol<1R[|hVY )щזXB8&znm:ӴiN{b^At`̌f#JmM`{Rf$0:y83SE9U-EÎĖbS&Y9^iK!@rRnRcqw08SwBwofH#Ӯx-3U޼xK=\򁦬uw|GJLp\na}Tbl,QxRo\b|.8?ܜ֕Y&qء?^.:ϳ~k~V+& Yw\- dN%psyxG^:WYw;"]\ar=0PŘ!hӖwbI {,&$ٍpR)ޯ2§+}&i'rbgx4[Sō{C_[;ae>6t}饃0gHyTo#Wٗrb?O4W6^$quԫCվH3/]qii6XLgq]? !W=ְe%Ͳ˾Z+,Į_P 619ZtͿ g^JBBcdu%0 =tϢlxDj.Ցջ 1m}L(e!̊F;f,ީpJD\}rt"Y$4w9?l̃s{w{Z:G2fiN~exl Y]sW7洱, \bE`甚X[̯[u8c6MOkdܓ}{'5îfޡ@ 0Y?ZbV~<n:.p.OͧV"yZծ5yYޛ}#ҡdR#i6l>CpI}ZBcI:/?oWSmóҴ<(Yخ26}ҍT*dr^Pz$a fF˓ˬ;JdVV|DY)]4^SHUi~GrQ5)JM8#ķ$0K`>@rfb,߾Ҏ}-q3&Z)Tm%˧ࢇEiT??ti:Ӳ-g^/tsDice>zUP54v)C>H@MM5X^ieפ8 ;kMECM_mj5Pb ʈK<͓)UGxlπ7TyJP­ U^mB-3n:6qYƒTΰq C[UUƙ#Sә[Lu֏Kc2?ZoCR?5Y1tݞKSoؗ#JTLO<&hD.{oЬee~J'!iGd!5'MWdMN:A,'z2,~շ@K]5C/9fNtoNpUF-le]%yswDQ׍G/Sъ,S=RV7o]̛5\BbojZQ:[ݹ\֩[Uʓ~6~8Zj%p+ת7h{:?yoOF&K[Ֆewo֟ +*U$QukWCsTZ oNbF}Iw<ŧiM&%pOIU<LN^FTꘖ8L'&"!I"GtUX|^Zߵ<ζDtqsh+f^8#k_Ju8u 0f:UkfN MR7@N|Z,`T_ 4!4L&(vhi6ߓۥw9 _ #?#0a)'"끗CrERӰm΍V]:\-_nʆTL@-+kXxGwML80nw(BN@M--ظ|[ni]L븦|XWP~"TUG=,Ë\91tsyoJL%^?i黧:OI:cbj;Wԡ2T1ZnԱ6 7w8XsRzqAo]SoH$t"ءZ&L6\.%pYOi+OX7u_1"R#\vQǎr> /ײц`sLA!oȆmZbw JjF|mC1Rl~mBzak.xB`~ʪl+_v|_+PPEBlߣzH}G^k+n4)//S:rʝ߿e-lPzSQy6`dV~#jH9rZ>&M;=n1kl\sEUTåLz[Z"۰uHC-tyI֝Gxm)3Na}vC!11P: tbf!:N_TU-x4m۞V 0J25 ( !h )({&;kJ GHG(Jd?APl`"2Eα9dyxi6Odޜ d?[rUrUP~x+T_ٔB  f!%R̮ReRfgFSuk:ûcX',+GYŕmNu*Y@DY79CW37un4asln0wF!wDZ6=e=տ|gz+wE L${;7l|`kkj5´ԆM0ژF39"g}ujz iLߤgiH`ºw2ye*O jf{ 9`%I'mO:epn{`㕕iM/a wxm޹!6qkc9f /dp3LTr}1+1/F͐vsg6m Gh˂Y}cO*uWYdՍK\ͼK87N1l!"qv7+;x/ƀ\ŧ3B{YHgݝDg⛲C7LOWW n V !bu*\w}ɽdij\0OUx*H^pp=>|4^m)UۉĴ">D35-W8rG2C_ՊF0C|.AK[:6zmc 0#ULa.Cqw+!-[FH+k}Imwt0r)˝C T<~+GzSm2v®c2-`4s?BKA{5XjP \xP^kY!b[P[A Cp i+}&Φс9݆1Jq; i}]}[=vy 1l(n 7骍Xlíjإ,g|Y7M,<'3d@>78@:J.ۤ(w* 0:/kѽ^BSyW蕝R_g;pgY1n ŒW4!\mآg #dF:k!kZО gһTq{ap* z,}+U.шū-|3+fʟrlv_P5$ORjd(9 )_eȏ 1~P:%1æo"f__|E{] >AN/ڍi(I"< ɼbtlW )S,'UΒEչv>|X1"g =W麥J~Ck%:իJ'Y?fnj7Wcմ r5n+y.B_nD[A&rbs  ws`06  q V c(K{ZFY|Zd#Gc~gt;{ OMc.w4tz@?T1gf6[C}+$[51gov"ހ;T Ot [6䌹:1r.C0 ںk 9kʫ T[u7͋k`-w:[|ȇ,|㾰"vطҲǖ*ܧo/ 3:0 wPƱ(O7@ kʦ/k.Gp%)Y'>۰QS"}m80lpbݥ.o VL jr/\ZuĸE lQHYt US8b"2۶O>Y^8uM&qI>*ԥi8aTY9[/a)~zi?.Eƭ졐܉+jXB ,jnjc"JE Ny l-gL8RC>=6Go2?~bCjC|wr3P)ru]%ߥ < o DܩL%'@4zṞ!=m(b7 Vid&nƴ[!D!ِJ?཈ ؚq pTNc@:gn"C⍊$oC_uvoVxK vЅBYAcAC`7gs`?K8P2X24٬&{&}AJqʕC8 Wr%M}5I*+?H!30˻wv$ #LưReM!y{."_⒫A2shu`n/tǦU`ZV$%cy* MNcD䎜49!EuhOyOo$$?uR=:k֎)-4$RWz&~{B0g<ي^Vh5fvv GTj:,S,T endstream endobj 120 0 obj << /Length1 2080 /Length2 14357 /Length3 0 /Length 15612 /Filter /FlateDecode >> stream xڍTk <Ӹw'hwwwkp';\Μə׺wZݽvUz%#RP27vcg k01YaT-c%S3w0Cat X,L,&vn&nFF3##6܀/@g3C,=@L( L\\ Yٛ@GS#@K5utf`pqqZ9؛S\MJFFFZ=,@o a430vq64|T(Km&MpLLMY+h``ce v36Yd]i@kÿ@Kx3At @LH9؛::;Y#_i>YP/}_ >ݍߗkambdlfmhWN fvNF_099عFv#WS /[F^fF?@g#?`f}#3k??F7sh1~|LAFMTZN-),l cc11Xlͣ4?6~$;{( T%g1F?hyo:W@+3K3>&c dm>vRՍ^]aKt~삐APqۮעYY)8h112vX|<>>f_.ߒ6m3;hote%f66:k 6!6(;A/߈ qA\"F`?)}>rq~T JG?}S>q} Q]n_32 ?C _?6NA0h&?Z~h>Z)ѤǸ!濐#l?zXEt!ҙ>92r6OGՇGS{G.6}?ddjd`ch^P%B77KBElHUN(qyuGVp㸹:%^E^+dޱPm?'<:}W;O5? fN),;'ND>q_c {p/%3tQ~sdXPt0(Hsw(Ri`NX=47TI5oQƦ=0= b# uۑvD˼%[XGz~"%H;1dGʙX(Y3Lzs?,OCR{, o):Cٗsg(}/1g;ju{]N;8.&'ŭa~jݨ|=W&0e@};>4Pn[5 &m>V!+ @`EwQlsNe)pɰDh::͜[bT9Y9J+?CXE`L&K ˡi 1)W瞨. ;26,: u E(4")E=>+~lS}b7E[v?LgvI:yip=MKKinԶH>ڌ>^V{OgD9!+K=db`h7ceN߸mbdLgL,gt+Eza56BvuMR"`);ۑw pSn%D\OF7pm)uJ.LG g_Jc5V :KY=kY|8b%ڰA(0Bq6ڼ+^{sB>HMt|+OLXaIm`9`oԄ{wY،د2K m~}0+k]H<#+~/ _R_8AF([&Ps g:^Hm/P㉦Wj#|W^?VcuhݍԠRG>@YuPotm.'}ѤLHS_N?ijVqϿX?eB^F L'` 8* )#glx^~Z !PUJ(T\Ithz4s!PmVifL Չ'7gc VP$VF_nӊB[p'ߔ:s&f8( dEBF vO k5zʏJLVДCɀo+} ID$f:Ah1Xz榜ȯ<0^1Ǜ$G3uzm "Gq#v)VRZq{V#(] sԪ&ؙ]SWWfQ]/ja' >}q5O"lp*u^N2ߒd|K:9~Jw^q"B2&Eieq /m68FW4mq錐dcWNJn*-5\t TNհ]N4huGM2!*RPZܐe8/Aar-Urfg2bs p c 6czqUmߎ:e J yLJOEI b.>CFl:W>u] Cы C a x :p~I%,^*i+1]$C`13Y YtM뾫b.*_RFq[Ꞻq`vRLd(\J h=W$\k ok{(d=oʺyCjc,t"PU#`,(];I$@p!Wa|& U½v7y;{qX{htTaUYl;X ;J|. 19g&2DH:&S[pTeۚyEڮEYp&`ƍ0g<ad;]1aV2|{ ܒ'0#F{ ۲y!2nz#-{8L[Y4٭12)~~‰%2DwJmo3Zs|$z$@0(dk2 vbAN SÌţ>mq~,},sݘU\w"w{&m]HqI'qo^:etށe"'i@!r f!>-б rzJ9?3= stAS]'VPZ}X5= .'bD.#8V0etf̒|`'7 R8k =n? C::A}QPfO/6)OA#R,g)La_HXxyI G2)ǥE(lwz"1A _F^ĝZ˼ 9|9ȖZR|-%,( ]yDŽQ<ynX*EJA`yig'X # M${JFyiloF/c-3ڴ(oSVEvbI3:Q"_]s$BE[N[ɺiF|nXwb&ijc_^dxʟ ηLs.ԧJs-B$ؘi'ED2-_C$[Fo?CD|WHQ'˺!BGѧFmj? _7U)Uǥ_O j«2ȮM`@pT5MCc;6'uWbA+O_frY3nz&p`_ ^ 5bn5D@fZZ*Bʼn̥hmˑa+BL`DzGrXŽp/%=a3W+,\1gVMYZoS X\|Vc½zn^tS1@gzj0/~Ty$CNvʹfNy-TDB7A_ ,xP#Cu V)g[)s8Rohm,_YZ8FM,nm*׹##1L1&W_TsjA9KVut.$zӔx7Ϲ'R`˟U>%qՊ{'ځ Ouﰝ#\%MC۹3dp޼)Nn@9KEL)G$-70UnYÃcŎԷu0z5QDrCtF/ۺ=3nͷ2xD5d붛ivm1dտx:WԸ1A뗢AkBJאqLc #g%FJ^FJ"D"=:jY0œzv@أ`39,x&!;A~4yoNGrSF͟d"TGٞ}-z=&H~G}r1K%<>3\Md` qsBR[ (_%zx\P/p*ϋa&ˣpX$eB~UU!p\NG.hm!A֤WJ&$\LU 0q?GSߣ[J<ӄN}vhКBr~3_cn5tV# I5Ȓd#Ұʩk}[0$L}x$cj^TGE:Nwhúܮ 8qFGoCgroq <.76QJ #5Vu+8IN"iI+7>4eڈ&в]8G39p1t,1&5"p2fe" \\2Fa&`R;ЊגZ7n/} e;r_1MР^"7u ;_5@yb4l6_k2ID}@c"S9'}9ޕ?g0J'b#>Բl f*OV RߖB#&ݞmEqɎ^HiFfQ2uPg+m)O|!@.=K&mU1D ڍ0 _ZtGqt'= , yCܽaOR!\o+kH5l.$̿}1*iN:i'p}9,YO^^;)ÜBMy4z) OH>LN,4[>~xD1W57KZx7>S oKNHEדc}JW[),OC$J׷AV$}d5cwlgCbpOh_TKJHl:Úыe|%LQ3Bp7){P1Ӵ_MNJKy\hԓp}.xI5ݗL-Zk&ѸPݞ<3|P')m{q!`4k1JnI2vu-ٿsc^K,D-/R*w'˛TZChC{!~ٽhbן$@Nj쟆6:WPlqQ)2RHlJ[⼚aɁkdIG{]j~qbд3#w}fۻV?K/rH~Z*'Lj0r VtMffdCieP'Й Y׶ ^!ǭQ1{Xe3 un AZHHInuzVkl͉5h1٫0L1AJz@*VS"׼*&}:th#k-5\L s}lhSS -pj l*8*$_!@Ԇ6FvplYiitXYݩf4(]jN^uV.F'Aڬ=~$9&hh2q^)b]g&-6Qźx[]ԃd+HMtMG{ :P);'=A:^r YF!9ohH4[4"Pll7t\&\4n8P֡9idJ^B9x,埄5LW=WP&zR.|k&t`9$QKa%E,t6lXʩHKO(nԈScvQ&Ds-c  zLثmz;hx^dx iD[p^V E9W0Jz$ko(lrꅄJlSbr>.BwvGXzk&ΆPIvT09ϐfU#"A91{o*l`0*ȋ14-8yu`'оY 5,pSU[zMIm)5/F!]q;Ź3gCǘˈ.2y5< gt|/0/qysx+N |hms3TԲ6n)i%b٤ge.:9@0:yve%2\2VJoEyZv"ӱNX5|텞$s2Gx͑x]˘#$JV`,r|%KnH:/QO *_*i݉E?K"m?] or4K/k*O^JnVH5WK!aܹx]F1r,-VFʧaem'2;ϙ$VkvP;-j"ț\ހ2s/1S1,eaJx.h:aI45EHHqkUo W:d /0朞 {h$J~8Vc_ZxV%Z : @ @O.7W{0Hs'0wn\I7sfЙw*QzG4V56<0o!ɖBaϦg%]⸔,=;tT]I^ÊQSi$ZpQ3ܟLg_t^:7^>@Y>ƘZUV-x{2ջZAҲ6OU(;ZRC5j$M@@ϡt AN<t+tp /p+Stb6]W' ި@xP4󻁿災@n[xw3CIq&2qpw/qu@p{a3b!@o[9`5~Ꙏ޺ TJ.7 Q0YYw .3.2tf@ؕJ 9+K2 JW5ӂ|HS^D)xo!v! \XY<8== B676j( |NT~ H^7H' ܬщh䧬Iwf:L{xgΗjbw q<,+[*3e?KP;Kr.J>=!I"1g,s߾ n!ÅINJ&>ebx%@Hp:LM;r PgaS vؐ^յ O|d.8ԉyRZ\%mwLA<> LjI[ %Z &(*6C ;1]7ofȯ7t $h9A)i ^v[i4E~O=|mi\'s8mb3wka 6&K#f=wV=2%8v z!-3{ըA-*VO 3ƛS4,#gXIf Q_c`N@"&~1g(^!1B!6XgP]YWnL,zHBkK a?uX0u.EFBck^aΓT_s)F ѝI={9ǣKȈW[]O\Z 轪u+#Ȭ#DÛqXF[v= M_a9{7_jΕJ|M`{KyTD h993Ǯmf45Ӎц Uׇ <5~^^Om *a -OƢ"g ӹRs'$PdzUX1_C5 SKS~*N,pt]ueJ| CR _0-\wO ' ^_N['t&2U9C +eGіBW[C'U GT1DIY$:w\t :߷u"'3?b7 3fqhj'Le_^%2e0ḵQ1In\{^Jm򾖀Ʉ0~v.AS%d8a;r]q]*{c8Iqc[%hn]aP(ܱƻOZWd'6O{M})%c?ІKZmgM3ѕ4:o uu[QPsNW'H1Y@_o u]y9=!!30/#ߌ#Ilk:X eY~ݝCwuY3 1;CpmSLPc/أ8"#=Y;9@R'i-]0Eerj餭jPГ>~~.axt~-.wQ {VU@6 4{Tߐ2+7ǒ Foe].5#d 7d&Cpwu75pޭUHwj9jassyYA0zF.ƴ0`8')@<?r ÐBauX"vdJA' n Yc5 z,DϫgO#p%1Ge,"0l0QrSthO/&wmb 1"u W7ss ^`+vEyQzߣcM{7s*-7v8B& B>=@n}~@T> J U<&=d 3HӓG ʸx;5PܢzpDL׺fxT[DL:kWS6}}+ E޹&H_VR XH@s z%q0ZQGE`,mS'"":nj8ef\c,mL}34w\,~xAٝx*511jeiT)|_Ysrg!N/T ql-b-|mF aBäKk%D@x^ }yeJd&\-^a`NY &YNӏۛ~w4=N݇[ڲte@b9mt)Eٗ62[)hb#YyL0:/+uLD䬿,֡۴ǹe[ K7NN<7Ru[nĖApU[ AW0ķF퉭uu5׾aRo7PU!`%~_T;R97|L$bN~~RP\2PKJyMֶN\اF?Y 7+Qu ۥ2P~BpC-g= |d%gy:ȉ&^Ȏu< o&)bڜ,-=y}QQ"C0~cU]tX$|<&!~Ȯ/! MUY0Q)Fo|F?'YSβ dTxiR7SJȧ 0$-!¤$tozm?jB$W:_'@!gj̆wO #`Pq`ǁ엍l&>uרٲgz8Ti;.+RKGBK47x7Bk2uσֲΩ| /6HJ^&Q-ⱗxzo[)`#ysSG5rʨ <^PwΧTO[ h%d[JGڛYUwOhd/iUlc\C:iNbI{u?æ!QCX!x:}Ԧq$p~̈́ ŊS}3_l~fљEK'dFkZqޕi<}v19eeYQaIROtOgjT#C48Eb =Y }0g/I[k ]4IY6'p~o] ڞPx_vT[ ,T~J0 sX0hOhadۢs6;0vHY翱s,]!JP=cJ*rB˛[՚Hṽa2J\~>Vg b)ʼ ZEp(i;:[`<}~EAA@nhUB)X.] [NuSG \`1,^+=wZs({ A[1j'm˶(#+gz$t",}啕m;k#ⴟƛPFɩ;-m9U=yG(0Ť(6Տ~BZ2HmsH|ݮ* k9ۖ:jk+gd@dü.CЈwܖkI2֣QcySoPZH?`"/a8JOfg*U?}k9ެgƸ9˦ǵs:%38q$] -tV_wCGM0 &Ztl,5'әw"sdRQc[|{VZڗJgSalnE+cOIܗOݿD19M6C2؎ʑdkrޝ ݁/-w s/\C򝣭@ܱ(Y|sT4ȵuhf˷$5R\afzO]π=BݪQӮ.-.ۡWcɎBU|N 3cqժ5P|QωNtHōTCΜg+񋭢^zpCC(ShޘP8H*_J~|u)kZ/*UqRM#ȼ/0槝x'423.DAĦz|b+b&ndkRn%SrWym[q/&;ڼ[J8d?zyvEGP5xj oǾmьiO].!"| X:9nr\o&I{'I$&d (UgKoňv,.>8֜wHÓzW\}M`qKܳAI%X_"2;'9s40Cjoe #we ?e :_DCj-b.I|vf Ms`f,p<qE͞A3[tyb|2.G3AesmW^. k!ecicW9}̫oևkM]eE?i$?k6à[o@gf NS+Cy)bɭ f< euM:+"idnIk^m/EkmTD}1VD-RZn endstream endobj 122 0 obj << /Length1 1439 /Length2 6496 /Length3 0 /Length 7475 /Filter /FlateDecode >> stream xڍwT[.Ҥ"!IwPj! I{i"KS ET:R({׺wk3=󦾑=F $@IGG 0XGSq±8%JX8O)C|@1I]I0 K Dc%Pw=@D8*N%4 pt{ w\X @NpWŽ0(`!xv1 +:<x'!ǺJB]JQq Fh H \Xaw6@G s8pB~;Ca0+B$ {P/ CPjGN PU0@ "0x@QW1ЮpG+?e#溠(%W0&( AE n'I^o#䗚P8ʀ!~>o #`x':A wK&X  G^XPAW"ߟcTTD{|B`,"KX;>'嫁r@~/ Lt0, ~ |(OwFv@zAO4aP 55:p{jࡄqP@9(-E#pO>s6M~ q_W /a`.kG_&(0rߍ% C=0hTsMHaʰ4Vơp5Gef1(7gJnsaZ:/}5G >&4=2KSd|!gw1{CC]VΪmFV / v+Lw?/XFfҒn?J]蟡f{SgUXi:Sxgc,z;=ykt7nrtuMq|>b0(f` V9Hdp]Ws?hjyMMt.|a1ͯ$sVů-!NUݲ cφCpa/;:a&d!j,[:#`N',LȨ0,Xbɽ}ovE)hT,}BoV-:Xfuo碕v+wׅtq1hIGޓX&PKK{ Deώw[c7O7T:oפL: {e?mI qU 7L622,K-",_q:G`Ӫۜ3^2RkL H]aG;929,m86׾+ ^l6x!7t{}_R̹e/잲wĞ{[UCW;]&ص7h>ڶ;>{^̂ Ɯס# 'fB.~3 Ikd҆)m2Y`W{%!@Cm ȸwyS>vmCa<0ϕX(]8>V?/+xujθC?G$U8{6yJp2e%צ~!)[w! ~)K4I^#YQcg^pPҙ(t0ǰ*syŻ9pV+F;|}HPXoTƈw =䃠1 򽃘BU_u`-/]Kr{^hϷ =j2H,yPZLׂ4ُ8Y\3C4xg-euy8[{̌5B޹~$SI!YvYQD-Dl6<3w&l*4%&0/o壃=}o:2薲5hGq\RN BLML#fb>t}l t QTX< )?mwy-,л-m%[Aveca XZX0*d"`r=WK0 gHՒ](?{bͩK4ݓZѳs6 wVwo蠟)]'-HvbW|&7IV8wU9Ծ]Wr?hRY;fu?ZZdݷUqRh;&lm۝%ݯ8?3)=cӠ<(=Đ8?]‡!ŚO'NLJz:RY«+m\8bR^\A.eK?di9}IU#qE܏*Qd}{~A }|4IU=֕g\0Y9~p9=]n*eJHx=*k+A5ngN6x\*v㉇8뇞j0+LzaY9W.2ϴBoNWRꊊ?X\ jՇC/U6*vNͯnjeNdb,^>tbGۺ'-`c侌LTT8SF^dٌl6B^<ܯPAJg=JZR#odXwˬEUbgAsA(L|wbXuh[-3!5 5k ,K73ЖPt+C<+wn<0 P~aliCtgPJ/Zn]% mٞg'5{.YUIlIm Y/`kK$ekSCR? s5YQ0썳%|<53$ZT#:B%z=dfkwa.^6ZU7Dvٹ{GtӞQ\F̠x( 'n".TV#쨫1/ބSMo!qo%I&Ϝ̓ Ŀ%YR"In}ۨCr<u 3 d4)iJ>fZ2mqKmםH7d&m(kc܊'1TOYSzrW195#E }LlFĽ~'약rcf=2{3J0%Qmq]xY0Z"I6Rx9 6ǏTˎ2/~qDA/" ڡ{3<~K,CE_i+|SʎzJ:TsU@G#![aBcZ](XϖXzPwJqJkU 2؄Q۴msn!َL]8KZ 1 $ulektF2Zr*GZ,\|;EXK%}$Fh=GndĶX&}=^ J>屝<ʀogH01)5VŚ-So,bT$=rFU`]]2{둏5lN11ܚKZO M9ݦhQVg'lf,ִX"F5[w*%}S M6Çw`%ҌhN@ī j'v3/G#zv\t5+d =OӰ] B{qm \c-~yU/ƃC;ЂԞԩ;{|CwGl w 8` .Dqiq.f+n^c}싞29?F5eNV Nskg-9F?pQ5S*h'+NWl=JX>JkZETm9E*blH3l4١΀ +L;l'r^T oSiӒ泥#9g>vw|Ř & ^@'[@QyX9nQK[UuopҦ-D}Ge]ӵGtѢ%3jIhU& pu1} }\|P$x4edt(8] 5iن}y=4#7k&Mתm9iL -ܸ)H ;%iv/53^^6&2Xb6;oF⏊8S,OqLc2dhy2(=3}#xkp% d|֮Fݴ޷25^^ `X-[;|L9V_H4©umW$७~d'} ?/$2Z? bЙDGQʽ1T)Y 8{7t'FBؗ7'~ޤЦjrSlva[i@5prWyKD%0z?V~QgsJ"f)O /g%k֦ɻKW n!k?)#ۣCӽmxiW^i\ח#3]}1]  ʞoEX4h5_s# 2>Rq{RM xy>2-||LOx/6;L\0[}tP@a .6,`-UY'7HnThaP?h.䨰/:{ˋ~T1wkp%H)z gʘ{FAxw' sQRY$aGcY"'ڱYY∴W>VcLG w]xZu7b^s|X艮--!_b+Z2;*ײ_<9p󵒫IL%0-d.<]'[1^v<;/DEf+j[N]9{aoNfvLnYAA0 x<Ƥ=D_H;d8UsR8O~4Ri_SYv90Wq!7n,A_,[VqଅU7fi4Tl i$-X7T&r_}鑳˷-vuc UB߱YpIj?W4@_ X[` .+*kʪMeC[*#'x > stream xڌP\ -w`F5Cpw` :3s'{E.kP(1ٙ%lXyb ,ff6FffVx u+gk?bx M-b@cgLd`g uX8yYx7?e+cknZИb@qKZ 79MAXE$bm/Gmlce.ΠP6} @3+q6crr)[9Z͖ld`@epQ/t9M)akjgX98Ǝ%tf@H `bs@mě_'I70F&߈$/b0IF,&߈$d~#voE7"jQ@(FZEܠ|(oʧiF Z(ûA_V7X@Ʀ +aE2̯HAU;xfw(o e/LA<7/Ab2?f(ed{|\@oMm *7A?Ҁo .w>_v.dXAڢ% ̠AML#s\mAԻb@vQom?a^Ô/L 鏜 B.@1rhfbZ+W9 :EWo5ߧ,Lտf-~68 3܅5 owh}"pcԍXY L*w`/&s?A{\>e*df!8jPܘAvC| T|5zqQg&aB!KWl ,gبf/ OX /bݝ xSxYQBs0z?(skvu[Q!juhpQ&:ީ夔.% Q|= gBv.Jb.=UF_.#NAUM?{QAﳟ0vMk]=5b&j E2$aP[Q|5|2 m^Uz%}>tHxJmOQ/kn" K37d0l̘c'Ҁ25":׹[YıNzuk7z]BaGp{O9SRy*"vj(撲I'Ypju?.!2~kz ?K9Xr&G[F2!,RW'&;&\FY O9;u<;'=xT6,9oF*ɑvF]o??0i  s7l+ۡyCBڐZnzաlcBCxFB\)#Pɝ,`K(H|->r.,l??iAY}nv%{hJDpںǮJax'Ӛ 4-:aŕB6sH:nҜ}/1a)dRM7=԰qTv<25rUH/fj529fD .P[X~wa\E)T3-[G^;yXsFܸؒp;T6MAQ$ yvw~}U_'66Y{ՆB2Q\Dm$qxYaR`=8HAjWne ӟk_:Z&>6'`_EY{ p^W6v23ٯSBD[3^@7`bZ>_†}ɷ>6^ĨaE]1Gxl#'!L*('yg3-S?ƚڢ;kd*z|6e1 瑏 -͢撑"@|' [dnXB9lO<rG@WEH).ryD M[kNPYXI+~9cBaאDߵ)|{10@ʮ|f9 '&+8)8=b}"E9lW-[,".UY"㌺j &nIt3E[\KUo$Dw* е V9$GW r WZR6/D0&XV]]ζI.}=&)js!ӜеX$fR/6э7KhYdqSK]Co2:c6kU<9 ݕrM|P ;Wu4h/H xQ ηYdR< i=8/yFF9SW1T,QaFPJdrG$Z/yy\$[2<ωNO(8v҉bRɠ@R0y bj0%+z' 9Fjpk.RqV/$*SGyJ-\PJr$m:e"̰@(0DB^U+N5}Dױ(iPƩЧv(nA;T$DKŴ\`,tU] 3EkJfn) WeSmb-ޡ6̲qKw3Lɐy)u'>W5*zI6/_|0Y=}j$_Sl\) u\~}u/=K/S2fO:$mz@ݰͅ]W,q),Ηs=f[ ` '43rIۚ Jy~oЛQ1[>f4p<2|3(u $4 *: qt~3ܸo>e9mkWN[CMepDzՃae"qJ+ ASdRYĺnX;tp.S߲&6)맽Mi= ]{SS{r{AV.6F'&ȳ/?ܱT葝uG5sbR=xTX5E*S5 T5z^o;[ǡPRf}l<# ߷'oy$>kFIgZ~;s*ZȡKQFe |g .l*SP خ"u*=m;(B1#٦D Aa/[`&4~6">mE4MWȗƢ+h>5<*D70+%ZU b>S\de9.;[ˋ$pMws*ډdS"(PfHPcE`MQXJn$%j2+rqk=#iz֌#S6tZk]5|~Q $|r@2.;[:'Gq`Z$Q|B3C@tqDFO @v=݊f<"oYͰQØ-U6;G&@M$6vd0_$[xA!qNXX+){=Ks55yR(Sj>}јOHzf5 4 o˘ ISB'ڂqcgImk֖}6!h潜6%)pJ 0Wx d2a[O8^W61`FZi7(P_B;5-Oj{_6bp%6j}ݨ%mxʻV>JʇI;7>0@_tO824N?"%$Lp ^KeCVpz3:?+|[̻ e[?0I2mtM.q!w-i@_F"Z9E .pKZV]-lZ>}l_(lWLSJ~n RpÀ̡-e7ʇJ 2gaD; a4ZF; aC7ⲳީP|&K#qEq! }"Hns%>$BDK>R Ip|{HRa4s'k!f&V-ovL,$8zI訹߃]fi-桕an#Z=gXrّ4Y, Q^/ F x(|t0ûaf+a(E8^R+v[e"bqsS'?۠Qg^>k^#v;w'?[oִ$RMTEpmz ݹ=dȾKVud ވk78UCxZ\\&|SJPF;^7KBtpm+j z߭PF#2Ҏ1ͯj*GVKQa 畑6&=5fn$f<11iQ2ifxR|1DoS$۱~?X~_kfSڅۡAD-*xNIVITU>'mx)ۖ/v@EN _ l6oIY<;8u>)4N[UǦ5 *cz|#uA' WO9b{`tF|;sJ~1r\$;bkw0jݦ‡@8TխX[Avd+ł\κn o 4_uk/$t>Xu] k(s2vC|#-D.󹭬TöQi>¨v¤9:X3 F~]ԈdX>&fHV%b;׵K]׷&d?j٭L1 fl:#qXw*B--Bu[,;~(WR .'LӦ| fz}2:9L"1pzjUrTê?nu澷iq:盍_)On.usQ}=՛ؾdA^7ܧY:=y\]u+7Ȑv|_72pO{)/$T*=i0wc~LJ}!S۰}*?6߂`3 ^Y SXO\p++e#ec8j3\W wsPIH}-zUF i'ϽUr\O ]hL-eH?5M9|,E:w\1A%난[*a9zĨ*;H:tn egXa)VUJ OSAx8w0H0lz°0hZr#)[LcgkAAHspw#? qZܶwx k/9[7DWN"t 'ڃ{m R`Qd1n0JE,Gr׿1(%"Xm-#C䣧DX| X8;[@;=F}+Iif:z%m)Zr3> y~I&Z2H;`sHHFH\B@W/Cl=hx0>6Q]vW(1:xwFW\ {H$ Eq:U$o%B7Yeb/@N [)9AHFYH FWW!IDqrfKqj (udܙ0oRh-K],tUo_"y/2|B36: @" K,\)K:r܏st V+rGD|ȫHq7bNFkҎvW-cqƆ)C=F%4kE7m} h fWo-E3 e;:PR!n|9d itܑ ϦFڅѷ*v'0oBKQN޻V.ה \[g蒨}NR+1ͮDiG:R~@T8> ς9 } :5twPRT m ^+W(f`Fas;EY|nKa;pO$ kGu\V8W'xe}<13ɩA\m _ "oGA3 ?,![]UubGX.cտSd3JV c~{eD|%ێ DLdIpA;d}JT=KʼJ5]\:98']T8B1I kpIk^lƈm BY;0O=4?B}XMSjVrUrveW2V=-O^kmZlK iO b{}9S(^*aAZ6 M!6]'6S< : 3rO $Imv+S.6 ʙt> tp5##/h# &&J> jJ'_O y_ς^2^|_( O*C{= = P |oO}V)8t/&ٷycEj}Dv!&E( G(T S\D=g ס3Q C cM$C`͓55?!VR9utL9VYT[danO'4n47)cHdZ9RӋήP 077ʪ_\˵^]INm_R+,ZS(`rxe>kknM ÷++e|XY*ENv<>q};z!3,}Bس!iJ7cnn2*R=^Ttc3ᣖ}id$GY=1B1ɽ1VA-ps#7NXO9ӿ[ ,?9qIr:SJ$;ł$'XS=K"h2,'`b򍉸k;l]>Q:,J9zqLK:/*.<aW0)ѹ`*~+2w  k904ߐPOL=6MĔr( 2FBb۝6")2`BCrTY L8Ki7d:TQ،C=Bʩ^j"/d〔ELRWW!L}.uTZi@gv 7,*̤#<5uzlkoW?kzi״g1  mЪ?vajt̺lu5waZoWX'3.sLfQ6V!<i^Z tF5a:擺騦g/qjֲAw( KmmڇTH3l/d[m*wߚʷM=gx"M bS:S˂=&81+Dwޙ*1^o ifI'/|@B%[BAI|#6 ؊9YO~<[(;~FK#O-?y?чĈ8GYf6"vsprL\L:@% A#\ҧGn3!@DZ6Q,6ҋ˲fu,,5izÏsr[cSR#%ֈm}>kREBn4K1{%JI+0!!zG-:yL-%m ,zQ:~W1$4` :l|o/ RO^XMe,{qü';c-ۀHh԰jll 4mژ(a\ |AX?ϐں݉wfaё0NCb3E*oQ*pP?.$!u/˂.`AqX[_E󭍿,B\6^ﭏ@Iy}@5(t) 2p{V C%LsBh<>܇kme}U.a (Q !) dyݥR¼!lS춺|p]I;d23m]r\-km.9nѤ+wD/S_& G,t.k>e&1,9Va aIc&椄E" yqИ8 ~qjQ/IxL-xi:z+* "W/monM5K\17ݚ5C'l].iE`EO=DLY~RcX ѐtWT7-_]wS9h~*SM{iWZiJi㧈.rJ2W7+ons,))b(hbhFn\U O;r'K28;D]22̼ڽ$WY#ntes~! [X zndt|şyfarcd<#a'?jӊ;-- ۝d~CZo0ѭL xEΰgڠ~w( %q**Quu֦󵸬O}U\_z1CI@'X;FF#-VwHn-¤8!y'Nf0MCcõقa HU?Mo0G-Y,L 2sc\xBbo~2ßk74\ њwg$J ,&*Vټ?W[$8+f1J.TV880]^EO<_PGe)4ɴކR)0GOmg8[MU}:NǡI*/&qߕ&i UR2%( DEߕ@In1bRK| s]Bg~?2y''<*Jg8G)&t(r_-O- hgF_a $ޙ70&ewID|ě`W HRDQ =bQo~bJG\9H,0m߶fy8(U2%)IrD%l}œ:z\e+6Ud|6pE@(Z4%SPJ8-L6nҕsuΣ98WP|'BӜkm3?"!o޽JOlMQ<7[kyJU{Ϗ?Vul2 T&by1ȴ]? u6`Exa|Ta9=G㹍rʇ뷋&^мy[ąŋ 4%cX7ޡIXav4]oL,9ȶ GlyNJ)Ns|Hq {hrְCCO(~tt9Ң({ׇI9ǦIe*H^]UO:*| VFoCԚ#QtYW|]ZK tQÊ<^[ZNT9?q{2-+XD *x ;$7'y|,m.p33^#"&*m kKOT}hRmZe \DC&ݬð}w +4Trȟie_6ӜC\KC"C~3t?Bxۙ}ȡs0!ހ6C0,/K\\CʧD $e= cyQtޕ gmqlW lEI{}BKj Zjنwt&}Y8&Y(u'!/Y*(.@5֗廮`gۚeQ? 8~6:ջ\W"-&+rhPw1+2ulr'{8Y;nh&i;S^@Ga DfFc6 ClUZZsbgױP̠-'<^Dɲ{LTˈ[S<]qnžt\‚j™ߗF)dz$(kZ*_ i %gs4d2GDNEv[f`>`G753^"Nth ňb֣%&§ܬČ󤮞7XqZ͑jvOY"spxgPH i꒻ߵĉ g|-QݿBTŦK>9hloa3GvpXjBbʹ xzSPiZˑYښ珕]P ~HHئ?%٩&;bn*}-[cG}:)kVLr_ݻϘ5KKmEH\8t%%t`T:z<a[x \|&3ϑ=W/˹TIex}nLp-#u;9QY햷)S,ZݛnɀQcR .J4hA}U 9T;^ot {Py;$˭==_*-Z:㰒(C,e(<ٗC.H"ȊWDoBM tɗ4-uC-e\0)3}ȳq*>$>.\IozͮK֟OgoEp.|կ ~ڀ۞w G-~rp4NFz(~-]i r/'N8KKΖ9e:f8UR@+@r'c _ ]ZUļƸ莒D񸑍T4<ԖߢUbAjqrQ>U͟u <>^ҡLSRZdÇ"8Khe?:xJewB 2ף-q!Dt'AEDWU>偅(HPNFc ݳ!Ni)FΐB(”!IJZ"etW$!1g`fY%M ꃠ /:$Ip;˰([ t;nb^%TZ7W!r B?$FG-+4t*[ {]z\xly} 3wi ZLԋxr 9D-aY׳ eۭHW.p䀘VzUz:`V ߵ s7P{LBX2M~/kմ@048/NJGJ::'X2[SK{>hM.!(O iq?y.od+VcE6FR:e9 [QZ@\K1gCBj \HBH}1$22,|t 8^U] ʴW^:֤ SvU UTm AR&*n4] 3!HW>N+=l,*߸R;"bQ+E<\&B4]t}z-Do}kBT#bkWȘ6fgٵ%0ٟ~CY&GPB|mihf?-m]o٢r*|JpvNiEgěۨq`h9#f95b/KFWC es <&e icKnVzUQ[ݺZUDrLXs8[~<3Iu ҩ 󧓊?73X*xd! <5d`܍ džʼxlv6yͣBG}A)# Zxڠ&wv$ؒr s%QRa8S 9PTqVN jB/#@zbI6딀Gʰ??gfblyw1Kk__)<6'*SZCyB^Dxt LGJ<7ie& X~,mMsG*xG;eIϙe[*1!bZ7r&g9oIYyrmG>f*`2Rbl\VMeYD`?d 7cv f X ة#g#T8X-V!ONrW\#P.zl%dדBIۗ u."5j;S^6=Zp-lmQ"۰҇,N*jCqCMx-CRj'ђ"2Kvݭ7{k7Fn+ҥp'+·I/ 3Z^XQ-6owO${$|ϾKz#2qNmTRQ.TG g wJ V>R3kf$MzM&®&bs;1(j.y@65I5?+N6#јuu&}ǵ.7;ew@{eߎmyv4 L/Vzjڨt7g/N_ ުBy*&/ju#*qN!ף~y֮Wz7\:R~SNcNVo%:KzSx=EWvŶzS KeIĨbw(?ڧ>|&,`)ZX{-AEWPPF2諦*fM٣sW Mm PGL/o?SܵVEE*xgODc@^Ց}P)s/ܿ}Hk\ QrgTJ!boX ׸?c w<1׸w3s"Q qtU.qFs u"KTql|8vο.de%g2C;pWMlr7<͞ ;w! ܎ ^ UrjY:ࣺuR ֠=M_Zٍݘ]k^a Fւ3m6:\dW0Gp) F^78$:wN3CQV~k ]xMcTEUpZ.S~ ʳ?GxvZǮ0w#!윳x& 2gӵ_LO^Xked8pw!qXm {<|G3cJ:iT}&ۺuk/l7L|jG/\ƈт:;DbvŹLX</n4(p,xSNdkROS;KgRk<Ypt,-?_.<%tDyu7#ݤ I=-Ȇ?+[a U _,u+ /"`V0}nqU3cih v:RU6}x_=ŽQ=p;tM$x`@yc +?5|"V]Kǯ6\Ba6nC1/T*\(*>8ЕgDFoWy6ߒ7Sˆat5ArԚt{!?C fd2u>:"ܱ`+#Z];͒)ϩ* 1bGɝS2mhunqlRzWGWC]*])?# GMqVF:z-r 3@IE> T2N.YW13?n(6Y],Ԝqkw;Xu,4Aens1 ݳ=&?C[4TX'ыH"*SZg0Zy5kO~Q䭛GEe9wd8,ݖM{ G("*3] SV֍|hZ,y8t'N ";ƭ'00ܸQ1& z4Ш Z؁5^NǺ-W)v[Łj\XyJ-,TˆQhXm_{|=ۥ:;l *'.@]?WoW}q(ޚ@;SiLxyI>bHL(KFx4\ m0-K$h=ߋv!PŗOkU~!&?PQl|M`>Fۙ:iR]̼rv֔y^&I -m[2ڦގdG}U4 }jPҠG($+&rg?i~Ϲ̣<=s](oSVgM,,&H6gI+TNT(]=5T;\T*9TnEpK4s~m4U\lǬqϏ(ymH@W+Omp@Rx+i\g:,Bc$A^P-W qBPʃ %K|]sP}\"!d:=趡_T= ~.֤>5rovl~4c$Po0^c}(O4ZAt+DTN1:q&*ʊ-iw|O4S7Ⱦg[C(J$j*%NT аLߝ^`&!s7=]H{b,5CD&2G;P#3>9H~3q!؈Jƪ\4:ṰtǪL +? їCl.(5uL^ÖQn& n M)mY ׊'B{Ц$u|鱘f[Gukq{.-??h܉] .5EZozQ }eU f li'=/Mߤsf(Q4FJ,ҐoFU / ^$7*O$9r#˳B$쟯Ch.XntEA+j GE7Ԇ- >ỲUșfRXN=DѦUbHLR__6VT􃿗%4Z D-Ŷp(-nS "g!y=8Bf0 uQv2/+M<]b.I%i:b>d]"=ŖZ'I^9{6k=9ITEoHwd15a! .i Ē?|LB~9ӗUڇ{w8fJXƼUybZR,%ǂ-O='%E%]B@pyܞO>#*Q2:]Mprp)(ILi;,^rpIɋ_5AhU1ak˵VK(%@Y|,u k \:υ#{P!bڭ2o Oe _p]xr3g;uBtm&}~ u,{p3c( IhBfaE̖)U#mN]T]{XG%ܐh=NK\A ^PcRYJC I4b+@ҮjUq_-';$X딸oғss@^X,iڹ=CInj" 3LP ({g`qB@;R!&;|#jӕd<WZu/|.G3{ji3'g>΂eK|sQp]Z% %`Õ}F[z {|i=Z$5GW*4FuI OMT=$r ;9 G-&3@ yi^EHn!*oIf> stream xڍP-=?J/ck?/gEi:ND```ps8E \!&}S4%oJZ0s0bf.# GK??joW::_u TʁV[+|aFf/Kf \ 3ҽne*wJq ]_pgy]Ec˟01B^]yLxQN.? I `A&k nf?O`Ryq"<& W=q1Y_Av kKמL_3|MbOZ\m^?2 7_d k}]{&Nuk~dj__R_Kqp^Kq|-O_l2r{+yA ¬ѧ󺀎a"g;)4 v舉4~kv7‰}oĩIݏZ=c'wڑ(8$A"fPxPmȱuFWþst,[ QڭT6[6I|@r~Y<D[|T,9zbNMYo3%T ._NĽsNdT " Zm8mEJAĭcM;u%:ܳGl+rhJVNwY3Pۉ`gs vyĊKi%Sx.S隠_FD6ࢯQ{S1R(ߥ |I]@Gj4@ù1/ͅޡˀ$'d?ڒvOw8a+r3&8gZ tm:.n.3@yxN蒁wF]8Tޛ0qp`FVKl'(HkBvf:OJw[b:Y W_ݒɊΦR=^F zqkp֢vrM9VGİ^ZǍ8 "B;qlٔT_Gr:ԉںϱ eQB$)#NW܂nu6WIODޫxw%oO?V @9А5Y$9\/g$5TL"Ŏ"{NG 0Nj5eFeS1E4T'>)9ˆ)F›ݘ;CK~n3o}gn!t?C*j0`#6zYEm],foóKgݎX)kX)>=YyQ ravGw^cv?"" Hc/C;xg[+  7v5ZBrfJ$WΒl$>?u",[~F'le}FW۸vL RR&4ʶe!+x:U4fp+7= ;P. >6\ F I8۔R%'G'NɅm!H[͠hiJWN_w 3C $mUcrR|n@R^j`c24(9%H^  髂jvf2/]kH%dnsBsM>'P b v R;~LW+Rć*z\rfSM=iPfYG =(D1@ bt?4YRNJ+1 9'iđ8bjTV,yډig>ڈ nBٱ`uHԠg&sz@O7G0 A\L *a5v4WMT3/L>IgjFY=Up!,f/C#84X7@r:YDM;"S|h}đ^:k,Qpr,>W9 o4?o84f#Y!gtLչ>mO ]7v.a^C0ժ?GS]< "!Y"+RS>Afwy 38f fg/b+]ibs~Qn^&,EDap)h|tuv7 yso! <;n]dpECMv InMy$v5{]O#dy"np+lIo0x~'\l"$Sd 6GA]JNc0^W])紆xHrΣ>~ ;j&ـDv3v/:x!*zƚX?8}o &x}\trUGc1/oQ {<Ά*0m"n1i# dig0O8%oח RH[/b5Yн yc,쁐X$ K7yL9O4\Ǩ]|^Ľ.:pϾ]VHM? C $= :b C*cc>${o7AN4 UV>PȔa싶?ϑ]OĄ6޶U]|PVO“ "nTөWUYBF 'b!iyƷ:TZy7CQW_²#IBCf=vx(3:WM06|: YP%&0Nb|x?eGP1ޓJCjzs=߄wʋU\ hwVAaildg].$|qK8{!W < ;3Ŝm?=T"}7PQi҂Cer_{q.Zup@͍>!UpXc{bi?Y΄}>Q)>_Y b)V|ptz 4))fbT~- o4pQBתFn!84ܰa0O4sgCR0mFir {д>H*ԸGB7tձ-uijڵ>\1E= eq'*9$?"TpvI`Ar "}[C u tW2wla`8q:S; UZ?S\T!.tiq~9ȧ-YJKgڃ0j6n XdFtj6D^ {YY8r|BCQ"?6[i.gmJS-+Ak~g,Gb&mh#%?yWڭ"y1tYޠFn& (Mu<3zɓ%g~!%d>t o~8_5DOB*ƗrJ.n+g1MNhENl1VH+ u} 'J$'MlꧭE| :]h_֝-|Ka \,FR&溭K ʽ|j"fr>ưSKE2ݜN uEu}|'#i7V1v錏F"]jSG./TD_R E-v-4a,.`/j{^sI3s?*vgs,SX+QOJ2¾aa5xh*~M³y tS>(~WުQ'?'%`EhXtD5/K6lc-ɭ@94zFifxjd| (?wQVtD&'g~ :s Q\UN QhV4+A˸VϘPd[xs!KEBU7Xo_!IYnlsJ B*Qt"iro'b&2\k~΃0 R 唛~^-J~jlR9bD6E?AFFPMp/ק7+Jvu"` plX8:T,ߠV~ng" DoQ3}r/DW=~@E]f:Cw7(XcF>K bMD{P@m- ZY$-]R*!i,b&{ bۖ)/x3`%^ &Kލ=Y@ n'B(:qЩ83[X^69^ á+(s ;VA,X@2tEiF/ /ngN<ԑ<7ڒBjK.չ8[K9EH6:M#yDONm\|j͌ ~2~B\(Ue[AOvĝ(1 T!v;ls<zu/nʗq^tLܷAPakƠB3|[q`$‚~1-=ԅʃL PZυdi6ܧG?nʹi`FLa|j/+l'>y"SP`} ݒHv\xp2fH`ly4!Ю"8eזuL{@"L{A~'=lYm޺k4T q=n|36L͟5_1Y(1lljj;ΎhLQH|ij,*rnldU l)$-sjzCB&l#|c*ÙV1%m#0fh`G7rxSJwtZ%2o:c5#///4ѻT+8jVM=I9F5Ggey**xcx6Ljܞ=EJ&I#[e(9l :1^1~y ~rh$rz 6nBmMb}{g%+H87j(zzE`fš|d2Ο y~;r^^{{CHul,gv^9P N i{vZ\(8[_%؅Äq :/:Չ'Fދֶ.w" FG?9vA(tI%ă"v!t4!qw{Iψ9\M\N_ǀdu!nj[ J؁*GvT%9{>I^ 4/WAIY8 „G6:' & A2roՕ_!Cf".2ŕ{#dJ .9Vrٮ jJۈ=h̅0PdbB1wC?Y$e:5fU|gkU&1DkϞL~@dr/B@ 6:GVnͱVe*Y4l_=g86E1;+̌-}E|L&Ruyee7T(kxxw d82K?^ݶCtPoŘiuy3%OEUlŇODNCEҰ;}";d0iҾBt`Ck%6K5ߺS,Cmi_qS_kH],%d77 Bx:Z&$X^ i=5wJudoXY ϸ=gG/wQOG>[oul>`[3^!-?iq{G} n%Lh~$3J3c2X}V(?-MD$4+:a3)չi?Ou5fi+#+70-Co9BE|yC$) ݙ CB{]hh9/-]/< F%ܨz}Y]{\1~<\'忼&~GU_/R6Xqƶh1ubᦿ" N6nH*ɿu"VߋfҶ@fj.hE3'D%o՗(_$юBZIOk:/y~37 ڙR-Kк/ч3X;߹c:ձXD:"@_4oTCI;:AOXQCŢ슌E͈;@]EG+ʛB7y;:ˉȟo9O©:xflwZ3Hs0S[ٍ#TH,NMP~s:%f (D_YO0!Տ>-ʟP5Uz QEɮ[xel^>auZރsǯgoSM-?k Tl=iV5&Mj9+IqYPf'fUp#؟7 *=$fلKbK!ʮ Zɇ'G;v ̖Zj^ >H53>^1܂m>nl6z?j,`dg }W%]N}D>%BԤXx_ϟ'-QٔGo=esv/@5>.)]DP7EҶչ L%&̗|f ='ϥ:cj?F!(2xi zR(顙ϸ|kISGMqmtޕ| "NUzU추a(&CyIQ{5r8#:`=[)&_3fϵ)WvS͸B!=R#.8ZN$эw7B樞{.p5}fݥ~i#T;?=J߰!m#s+9'U=4}rC+B 9,TPE:roK!Cvk9xbê>\n([ CZ YQٌ+Jja/똌|rF%s&lTD)Sy#( y=~5ϚʏwHk)G ) ^ú5hߒd.h/ Bq78Ҙe c&ߑǘ; nwI{+V/H?=Z'-*-Pb*5J, N<엸OL.v b~ v⭁nuN&!92+ߚi \~{YQ }qz4m&ͅ8w6PD>]@"~<3YU|$I{@PO`r.XGW]'ҒБ/?v  zFc+zٿjcuH {ðs`q${ٖrx*Xm'x.=wBs!QMF=Ws L® %<B+Ddoǵ n<9wbkFPLcӭPsɈu&O"MyR6F@/d--{\I~h* d.~b_yQƎ=L:J!RpP*>Ø<*,3ƸKާ(W5Bx{r\Ղa}=|i1l50&Ͽ/R=S"؁Zۡ6o;XjA[L42*hZWXs*aߍq;C8Ht•ZG] Nrw<S(zM}HT|)G'anJ۟z'rE#C8'OʸݿM's5)'tu픡>^.,!K9Ae.PVVȉuqQol'ꃳq|s["V<Swծ.Gb\ Æc/0T#R [:K`\3mTBLJ*6xwɌivlK^uG?sZfe \`$P!dQ4qOR&=kd2If< 2'5 bxB*XuyT} ,\/eЂܦTV1qKNSL)c$l1K|2A;/!:c7),O )+]x`]VNTؾhiZVUrF6͜V I y6?ׅjNPQG*밿KEt66g-]3= |,ɦnlXL9Xh rJr_8{y<&PbKcj)®2~]Y3#c^[{t>,'33=rafX!_"Op Y'vt|Rrt-Q{y>ѱ+tjb:-c[aƜ^<i5`1E aR% psg޻ԽNA߀UP=a%*koDb0 fY %R Ljf x+M~Sa/*+8KCt>lw.׵4YiL g*tFݗD%'TmG|P{>+-jM1N%m솞؊,MJ}֟nY.㒞@N:3b Z~i21^k={8ϯ6!I~_ӕ ՠYq w?BǍTN(*+K^e~׬؍KjvL/l0l|HL.9[}+psK셣W *xH`ɡֳQ78`nîO;P> stream xڍP\.Lp < $wwin=@p 5wwGf̽_^u-_{}kסxL'h1AvtL\aY%&v## =##32 B hc e lԷ{۽B){  ;##?. K+gK L-6 C}0@VhP 1+#-=Ƅ3(m6@#r?;Gl+Cm}m/ʒ2y+ Oc? h pyoh;&c /&CodG 6Է;, ^ \ &il m@Vv -2rʢ`#a%lg> ؝9v Fƿ0bP큒"ll5dh;%oKV+K@w1V[ `2M@`ۀZ/c0B/#? %$,ώ At,,:f6F'+QAU$ؗSO͟ݠw,9 i8?\;[j?%/۽_5U@#j%_@lb1l@N@#dS{,@`V112e _nF,B~o3'32 L/htz0Ҟ;b{ ¿E"߈ zqAAo7bz0_%ɿK H,9 @r/ D6/l?_Z|)_0yX9qN@Ci!Y_M #Ŧz5MB,uiϲ͕`lº(ե<~}B`7{(Fٟ=9oTԼa_JQdXs)da8v;Uv T*$P8N;o" u =[D'˫ gR,+S.E*̶moa.> I͸ŨdzJ>FzGj6"ݎ rp K!}1}+O/T񬩑+҇&lZLEv~T-7_VzlcfYS94JkwskT ,׸Qŏ A7|7J8qէ.YwhLǛYJ:YI>`QqH+y$\ RЖ묡}XmPo =U"5E[P1'tIetG, %C]8DGܦګcȼo<'^ԞEPN_EMƫla,MKRzD&\gD ˁgђi5:R!ePM:#k}% 8YM7[&$  ug!.ڤ0SQ_zPsE]ܢ:}C5H֖"\hEbE8u̐HλLbƕkԿ52> ɲOYBsu։UlY$F'rG\AjIEv#jYxs)+10k%pY@UTY;@lX舭 |,yNفBa%ݫ|yq`mwB󕄠fp:K4wL= ς,|WXEes,p"):]Ax|Yn9ݯ..f Ҹ=}"b2VxeI>p#'icޮ*nbEVmTTNsr_XIHL\Rh1np~SiuMw=4jJ\ =*;161O]CcwݙiGڱYNϦl?< Y(r1Mh&k/T[;c)?KB}=^3iZ%v.L5YVM㭡;&y~%˗,{{T!f΍zmz^h[!z}g&MVz HJy? *S73tߟ`卓aTDŽE9+_K3.O~?A*V""3m\Dk]]lsS YJ1J3|H=w>dْVfCf5c f%?!{TǛj_kSYU{+0T;_k'dj]PE:[vǠQfpz\=8LFI% mjd(JG {DqШ0w|?=] 0z0GҜl#nu̞u_j:b G~ww7ayICW"ߩY>z5>/rT Vm"1h4vti{B MԺrqIkٽ,/[bl0Y[ƃd'bO *+v˯OWiGx zyK%jSz |.5sifےMzG szq6u hԅ4 sZ&U4ʋP緽M)Ѹ4@j@23)YCTFK3CLp#!e91ͤV3QGܵ#I1Brڔ)瘝ӏqNf>v7N)Fʅ';$eھ+kߙJ'-|gz{WNW1"Lm4a(yO4.K-i}.&ڻfQ b+TPH:UbtZdO$,]R_=wdSXU]edž&+^GFK LId,˫Aړ %]\TR9Ď Fm+=lOyZ >,cEoOBzUk0(!tۨ~1QH)=u>CA j1iW3jȯb{{XNN;|\Pc AcY/`؍Sa擀2ײ!`EO÷5@hk'kPxKg|_ X> xO(ƄjSu+Ly0>Ys$QVAXVFSI#h2Jt˥* ep̟?8"[C@>S* #BRC !>uX33Zq< 9z&`IymEH d#DֵpԵvM2VL^`!lIq  `_T<қ,$>ʍm ۜ~h;ppR88}cb_CeQ_e_pfKGO^"pfzoq>; 5^[<þz]PR rLq c^T+I~r̻|5sA< |Cp+I]tck% ֜5U+@"*#r~EÀ"u^kʯ/RWMM}5,ҾsZyfQ~w(V_ל~([:0t9Vikހ`d0iW0j Pч}e;ga1Q=9e#k.i"mSN. =!8hP=7YkC+ZJ}TU/ >1!g8l Բ XBz1. $3yeߤa+_Q㎜$:HSԒX eç&zf?FL7(d" 4P~`SsVMX(ȒeSxv"B˟d tj6D$^i-H森 !$*$=_ɭDQ{iӨ '(/ *8Z8 4ϻ{dȖK$ Qp.P q:6.59zhq$2~|" w-v|$V~DkJ_8f NǀJ>n^էqSs,_ q˽*`n)t9{=mkFՙT:uk WnYhZCjƍ"oz/2<ެ&x7D QI P¸="ypJ}b-|n\U M˝?*eN.As 'Q&CER HwdRUeY~P3zcOiHfJѳ\w%ҷJܸEs #2?Fz!`+ ]s,}`2 K{ _~Գ685'Yۇ.T<2I*QIF43> \ kd:!hCe&[V]MlqʼǓh!+ΩKRTobԿg{9dS;eP=Y: (`DOsDwsTq{7jjt!Txy} DQ__㚸*l^>Fan3쎊x43KBCsMgb[`;VS뾂 }4>iYs(4ٟ\J-:Fh} @!?Le9_p8+ߝ[m6g#;]N'EfaXN.jID[XǠ #W>|!/W6@ˠjCߙZKx8P~:W#xA*#@~Q!+]ޫVx'(h0Rg1e )dcQO. 8=5U:5-g׊#:duזZ3$:SAJ]WHt?'TQ;Ba]ဿ*}?+";Fa*ź|D.B:Bkd|;5.#mNɯJOP%*" hHEֽszjNS)9[J4nl&X4 J[tlB|; 5d1~>ڄFS?{ Y2'o(,ɕ7cƶ`:0jnJim <tK\KKRY6i`G0eJ/Wv;#F6SvߝO)i<LV7?{O]hO7S8oN38$$:ٵvAiUM#垇f)+;ٻhY⋧,)cB(xGx`Tl~{#b!C^l ~U hC@e' Ϧ+ vpL ZF;&֮ gHLuҽ#KQ#Ze0D3߂t\Yzsuk6ڐ j&6s?./oH!tٞhT!Ϫ]JT2HF "v;]E>MOu5WzR,6<5ڣ$BdUЦږ0cO?F9{`'c7Ŵ?Z})25wl=/yջ!xD3NwNs-]z KQE, Z?ghdq|3S^w~$A6y[=LoweG> Cl$<'P:fx}L= }~t>\%\Y<1 Å$1^}Sq>M))k,K_lKExݭ5+HvRњ y7Uc ]'F0nB&>Ѕf<#㦵m9 ѳ+ X\RAg$lbLk t#}rSX) *.4d3mfP.9[ S8TYN:0ؐ=SR/ V!&jEΊ*3 5a˦V.̈A:dmbÔ%ޯ =+FNJuIc{T@C]$R18TLS͗f}1Y>̹<akܗ )[{D!||n_Q&` VƗǑĞ:@mv=jMeVIҺԤUo ;?vnF %rAӅ;}K%CJ5(ŏP}< ׁ[ƄH]EU9F2_[uxR܄,O -2%<8W\,m'"X'PQʤ.{ٹ1#%}R$7&FB@SVB\GhJNEB1gd|WULˮri)_۳r'lKkRB.<+Òy/tλ(]wWDNQUJLbd0:u3tw Ǜcx]%eq/}^3{ -!᢭JuRky1%Yq ̨&q:.|&o4e- _7E7Z kYߊK6rG2ºorU3[CtK# A{t&fv} ^%a[E9UL'B֠*x5мxծmÝcŹIV0\cghLMF/=a"0>lVo\`XI!a=뽁eĉb5%l0ΕT81n<)]܏?b3U t8NT6j._8wk9q"2KL d8~>lFp:SڱF*vV8Oj3ccqqXAՎw]'$.۴KF OrU1?=1q^i&B/,oKxFK |'ЭNa+P _3TmȈ@l7鄑!ކ j1#6-,) wmĠQ\GHS .ߤi-2i!egLYDF(:x'b-ܾEͤ2/5dT>>LjT4qPL+gzXQۚOaYJA1+e#|&: zճmXS|f#5\h@D:7|)I|[wenFu-Y0Džxc^Znǔ8SgOWP]m89 n%B]0&uggzѻ4;#0'B]XkJv.__򝆁l ܾ??61$ޥhjAwuR j/p3G^ >I07k(Z } a1u7h;a2ByZ9;6(2LZq^ y2|lm*!h˴&]Ї*GH>#ư>_hU!Tr 6b1 &.S 50`J3@0yI [-%ᢩ[(&?1jdARG ;Iڶ݆(A,;8t/Zo_>>%w0uSӄ{{um=AQkWU:˓nvGM's'hH[=@7&5Mُüo jɋ }6\uo@DXQ 7t{CXT#Q"#pjU/#{{MnukXMuc;[a~(9:Lv}.Xf4NɒT@\u AtS+J_yPjbêyԆ:mW[`i"ULS, ?pNѧ%fcwXˊ|vǐIYnZ}A ?5NHq.[ǥ,t)-Dz;Zʸbv@uo0w°Wٮ< x(\ޘV1&hvoUeScl~d)= l/> stream xڍwTl7 #F)a l86"H "Rt#%R;w}OnQÐ| )@( J 4  {:;AaNKpDy OPM-00g %$'Ewpo)u`~<^o?%bAA# 8Ca!Nɘ#hCߋg,=8n 9`iQ|Pnnu[+ .65G(H0fann"S 8@.Q/Aa'K*Ẉ4Rw]Bb0!ƌ#1kAa0@Gb\Npy (o " S1@ ao8& &ACgjyN͟s#Qd\١+,r(|bii lM5|6hb-8mXюbDL6`wj$ μ{#f 7ŴI.&MCJ> sX|nqS?aJ!؍.\J8]0g{{B9<Lp4mg4AMNu=3֏G1)Nz:\jظVE{O^荾x^+ {{vV6&FUȄKq2nRΊ~6֗/ٖ?2y5㸆2,i>u$R3o3rY5FHn(oxBLKj w K}W>u%/CT5>':WiYIz /v Pkfq DjO]WpJxd|-(-niRQuϏ:at՞,8 ZmTNg.n4 >UGf)Rz6UÍ}oa"7GJ=|82 ?y ]_b{oH20fmtDȱV+4PV1^G8Ø C,E?ϭ)ӇQ:I7XY!sΡeeCsJ^^Pt^(@VKDy+ӎ3r 5R@CjIf4s|F LnX!mc5xeU8P^1LG­-gSeA$p,PM;ظ!w)d貲⨨Ó;{H5Z~UFDs(P]FOܳ37ʽG>%K.->Nĵw>KՈVu9@)DA&n׸ r67N_q'/&VoY&QFpolJ1w\SsegEkvWX2a{\׫B*mhz#m}3i&H Pˌw_;Ezko̰SsQ/gKhj9Xg3]DL%<>YE%s_eskgJr'diwH %xgJ =2vR^YCBVz( cyDQ:K^ZKszZZX #x'X%P o㥢y̩onz㹊wUtXSЍ,ֲ*DCŵfӾ 5 rO 𶩎J}8<ٍ۱M1JMhN:~Jef\0)=UZm=jm,<\aa}Zy%YmjqEacz*xoE3`Ë,(ϓ 剅G6͍ ?BS4v0Ö(^6'Bt ~Վ瀄bۜodk#on ,pDvvtֿݮ9/{ѸTmoWfsۍ7="KTxTP~:el ժ:|>sR+伲4Jew!,Q$Y%yUa%uxwxWњHgty3#$VaC!$ EgŐ m2ӮP`M@\'~ߚ*owSpaW.YAeA!C?#ν{#sgEU6\'@TYZrwVIG_LEGX5N+$]+b#[/ڲ'w+#kgZLOTOhqr}rlƷdH~'pqG{< W_(y/K~p}u8prܪ -%OG⨺Ӻ`ی>;nݖ ewR#TCI-%`wZf$O;" Kz4A6^eLhZקgGMbI!Jjy{w,fS~ Í 'DkZmV &!դuz1B5/1Ug>PyuyTڤ?b}cUKpLxL\݌7=Y) =ō'SLҨR_}D7cˢYLIZR%DsnB4-|2ZAоJꞁxLGkɧY#q[Luѵ˫X9]B@*F{`UF;WJNUBKk_ (2!lFI+Чmcz8f{-?qTU*~59kl7Tfipl\$P!tFJU&2_ho|ڟ'IkB.!LιWFs XCQw'}%| xk σQ Aѻ*ء/w37?-jE 578ȧ},.[z( l$UR:G^D7X*yEth֋U~49V@|]xPS(WjCS&y`HRi)Ys \u#pVgqڭrX'g^L;u,zYO&ʳE' 'į{7tu3=lGHb>dMyxķd_qz٨D*doB;͵WBK%h[k^1%Mk|{$ 8? 𐚶 -5RѓHkb>+ bWҩ5A//L.1 ^ԐR'j1s3=7P!*><'v#b ݀oOl -Vs($x#kYݗ^ؓE.%_F#-u女6Te&;S dDOF뾕G\IY{m? 5*s ݘqsNy\HM>ܙcT}f`>_;\uR~,gOpT)^r?/BQf߷+R;IcJMX+u|J>1+2tYfaZp9Ew_K5(<9(+Ym4$}iW& +{ŹT=@(h$4':VՉfBnјb+;;"Z#l[ 3+cpږ^5H}o㟗 e bdzF~;xE`޽7]@zU\Ŵ=Wc%zG -<̛ {[uM0ͼg½O]ɆOqVB16vea?ol~VD6rTYvwq"n*bKHqHh7>TjdvT$%SictrX7Xw#%HqY޴Bz>囟6Y]\ſ IW+/5"VLNHfbjQ)ezme-@S<*03.)ɥBƜ3-D <Ӡh" 95}LnHOhrh=Jͬ9뫾z49/^Co]Ѷk AHz~\h[adRsq`TT (g[\̚*pu e)ie(7yZp#c2|m.Ӌ/فcV~A+ǚ&sĆa74Li>Ū4]:+8V"WDH]H͂3x7O&LVnڅi;sldvFçTvyJn]hCd>C5jFn p4]-+bԆW串StrKG덏XH JOY'oRē",:S`7R"A y H\q,f<]*?XLf јl=˃QvRҥL0]>U{GE {5yRf{TΌ@wHyѓ$+a1]%"p*BݪtR?Jzg:B ГUwϑdllSLl-J&ԅJ .fRQoƇ~3 +[,c >W7Q=@u#݇/lV%!fšTn$~XK͚VgKzanxrc`Y!v!Ibw!5J_[ILK=o_Nv,Ӟ4o @4L}o'd)])᱈bwomߪhhﱗI͵eWU&`-{d3iDp4௎}+l/6ZF692)j#NZ?E>ҁx0 \:WxBVS2j~o~#cu u~$& G_*J׃;A6I QX ?Nam? c_b9jtQ49OHQTuq )zQa,m{mcK,q*h鴉7< |ǂӯ?SR7 endstream endobj 132 0 obj << /Length1 1408 /Length2 6424 /Length3 0 /Length 7385 /Filter /FlateDecode >> stream xڍt4ֶ-z A ^G/D]0Øa F'w$zѻ &{sk}ߚ˽˵oVf}^9+%X C$z!>ABVV 8L?)X fp@ @1IĿ I+ P΄pGw_Gs# @i v@ mHGI~~777> g>8' 聝WW- Y?>fÜ.0+0vk1w~;[@pG ;f@m% >$ Y2:%w%9]s! Hg>gW ;8aHg_)@`j_ g,-8`ǿ \@D4c( ;%(Z8@|uA GoM& ZUz`6пqVV:$U uΐ_ ( _:Vя3U`JEnkED;!zhI D~>vX)"ෆ ~a ?[Fi"FrA Л+D%^{0NOAR*_5Uѻ J=IF4\%p\@%~"q,;t/>^R72TP)~TNH3Uvgy)$z\/l-6u2+VY8 lcIQXz+ <Μ* R+lXЄA60 f;'@b>uxƙX E3 Coy Fdw^Ӆ4-R qM*_;f+aPrEy:Q4hprNnF)vP*mijpc-e9qvee5)swk-*7?=VnÉaD:??Ueb$"ڦd~HЌN&vs`Xmfӓ~]C&vy^.zTӁa z7dYw?N=c{<p~9~\ܮكNulvK>0vU ?г(ИG9L&ˡw5=҆_9j^br2sGRȭNI̙w,|RnCmρȩڨW …΅q4̸iUbD^>'sd<]:ZBn1CvV]…#Q52~b|y^~xv1ׅuϼ2Uv=t*F&UxFO|uS2+lMKޣ0]lARQ_wú`yDGjH`2 ػ|[_qCF/؆HmfD%p@T_3!\H)h@fTB ) Q:{4|ddfJbXv^*}x7? +SIg<*Aay͝3S8e_ӒWmu{zdD^QtAhʖiop݌3[+.xၠ\5>̌B7Ԩ ێ^or,TPc\ZU 3o5'+aƮ<` Bc'oq]ofՔ>[{]!&"`o'|}W;ɵK I̥ݶ#oTb{eFNyxy~߶T:A= l*i\9Rԉ7&)`wa3~nNZG ٮؚPgW#ܔ={S<9'.݌v1$UY$y'{f^¼^i܎l'v)ԫtO ]#͒b::"RgP?r[CVQqtoʥ܁)}_(|ou՛;߈(]ˬ,\ہh6. nU4rPo:UtfE}p`||̉tDѦ{Xv|N{i]9j+ݠg ?sxQ2?;7:aeϸ F13ڊD)\KaS{`og{Nߔ3pGigki*WT4|o2ɘ[{ efQP8L%F<&#z[Km3}Mn`Q̟'(k{.(5Y$| GtUmZHvs7S}钑&~ 6ޅt&ds/R _ۈvo:U)VrqVC02exP1jJG`0y|{=NeO$~_%˕Bkq)d/.;14Acr/'hpw̑j%N)mxjGo^ۻG[5dY'D9#(#Xɲ9Xk3'dp-xn5܂a)ī$F)W};2nj%9}Ƅ*v1]NfP3hxGT6箎Kg"S'To\|~7sIYla͒!,i5rbC<X+۵Ʈ T%M6G\IPqS?Ex;$֚FVcإڞٓSC9#w(]0=E~k~L="nq,x*W}7A4 *ؓz8E*ԯ>P4&n^Hf*+է$%[z瘊h}_ot1KC!|9E?{Zh>zb[o̓v>ő2lTdO&:MAÅ`Sb/E'r׸%cǷC/(YhYO0 _ؙ_ /Wݙ_- wk]/.}Tjӵ,v6'HuYNB|r`?F^ `J܈}8ɝ YI{ Sa{}YwCgjYzyxTݢ|5.[!jW{q^89f7yZ@p/ysr)<_+K:u}1.6f RH?k~>.8bQV2:fUi`|;JUs1wqL{xw5UFL/j6~fӕEFGU7,cPMS7#G"K?#DJ|fRU٣=y堕l;/ӭ'de%pEiR_|llya*Nq) ^Ews'QLGf>q C肠p/wo4no91|u3魰zxߺނpvV~C}ڨ@a#b֦˩vZZEKL 6Uϧtkx*;I_|%J8ff394f{. 3Pήt$aͧ0>)nFt3AFjH|QGKQ|l_= l =,50\?([n[]q]V#â4:])|EL5 _ ^ HEG'`v>_2~Ԋ+YrSъ, 懯1QIcE)ZQe4dU\Uҏk1.+E+=wa5џ5C3/#RGWs2cD_̥fwenupOY'9Jݹ`}PpO:6فj-T@D3i3om-ϸջfÔ;5z~0 w_R33[xR`mU__ Fv.sv@rn?^W/e|$agHS/UX,y!c٫mYy ]1$Z,߀M2|59;v'> stream xڍPX.\6 4.%w ݂oUcٓ*`7}Gwdܪw',qMUf9H*?fjrw dgI2|2x~;p[e(4]оIҸUx^J"C:ݿ:it,=. >~ m"BX7w3/s[av,/hwtH~F]֭6_]+8^:hKdI:1;zz0'9Z0'$OcN+ !r@bf9WO5ǞO+AT,"SaajТ.q aN*oͫcLj!n2ƤC;&$u#7V9/iYbj:~UJnTk+@\q|{5>i77'A2>Fyt.Vť$| 8ZsCAP$WK04%,F(Vqd ;y&,s~ϼ)9 ,!E|vT0斕8Yy\SMKjtribB=#'K7򏽀'[laoO* Utk o*`(ۼӫpjnȐ;V1JJ)'(`P3wn{mq/Wt!÷&/{Mw(ڕUxz:0:'|`LԸt'H=yy%iR^L)ΏzV܃/=>MdbYGuMQ6 kB*'l3-9%TuYAVCyC}s dI]]hoBA`mk2hfz53+v]+ŇC߭q[!"Brչ'1]|X.%r'46%n#3:M]1E#v_mRϐ}+JK%z>*cˏR u"7MK DhbMZ- Ց0o҂7x9RFWrB.*<WHs4}ZJ,%b9ה'.rB+y>QF}Yl'0曰rn6AU)e=v4B~^%0u7*ZїX(~-*٦xZUgKWd/l˥;e%f {sk ]^]^RXT=EK8P/{^d?96xY%c9,jzFn4y{jХ[>B' =a^pZ]=@&O@JeFzMbeTHŞknhx7u:{碾.(hƢ#[.KnX}'S+ _WTná<2Ōˠv~b͏q{glfӐYPNT6|%*Oxe d+ri4%ƪc"-W]zi`\ؒm=U)ԋ^xD rRK[R|}ԣV ʬ\ %1;ٱ$)LC`rF@DIR}IA] ZGjCM"qل}) $%SZQKpTvrA-{jrI)7;*=!ꃤl ohSK}RP W/zDd#LUāI8S0o(PZh'a% /Tvw͆R G"c|W_d ޛg㧍 U6=ͮ["'Ь^D@d ء}ԛm}\["g񸞅NbAޡ^$rj^0H {3BgdH4Nb2U{1;P{mPK'gA6wr =R{%j+lUn",6=\pU8pqq|kwr(;+HiLZ8֤&pLTJtju DB@!̥Fkk Y}+h tY3ZZ4<ĆcMKpp18V;$;ElP^KWJA՚#3%/d϶O\(::7;Lv|w;; +m'^4BT?еe:i5)҃-"i1ݻvwh3"<*-hiF/9P4O`~sz|y=a%`pte]376#.ѵ~sslwQ$=|Wʏ7o򉲟ȧU!6ع l.{7Pοqo=S߅Z>#R`\%}N|I->GqIy=pq'eɦ1:"% -VksaN̨^(ǹa7hB=자\]KGW ϯ헂K R/C01h;h] j[&_gN=}Ss߄#Ŕu,_Kʜϔh{Q v ),6|^M4Vt ] xfUŵ};heC`Tֆ##I,m!))XC wƂE)87 b DFJCIy<4cvrQ!Xwh-.yW#&JW]EA؛)USjI;. EX1*dBNYơ4OO)n  IJod] V(h[z`IPF?9iҽ/6": |c(7VUbҳ YGIϸSkʣaU/L%Dv%"PRgM9_z2Jyhc"7[4_MbdxȱcZ Td f NLqPQ=vq|Q"3iy@[9ޙܹ|b䀸bBxB, cX4CH`Im! A1Ф62IJ$ 2UrA[σrF5)k z'BWE&/98Gs m`Ȑ5(g҂eJ#wd捚BTtf ,Yrqj*AyP6*eTکVvR9wȌBT_eҠ}©3EtHZ c*Γvµь˜fPfy`Óڑ /gb8}!53kc!d71]~6_UN7ov!p4~ #0ev_MDqI@ف]6-zujPk%dvps jbU )R]e  4<.R $Ф2GKJ,M]G]T`?:ύDW"aB*iWAP1_J <чf쑈'6mJ]n.I;jGz(>Ӽ E.:_ p|'N9|P6I`Jߡ ׭ZUv3A =H75Zl(h[;_w*v;yvjA$A | OnKPgYeQFt8;M=rش(>=b3\Obs=~l240A4nEkP³:Z -7ptϨ 11$t7rpƟP#~2~EP^~t숃ǹ ؿf1 [O.7Y?Xmc)T.t(8Q#Y|p5 KO~Sϝ*`GeMUI@n 3#Pc=$G~-vӠ1$2jպy^L4f_ĞugX /wC>HF->QB=O+t04TO-%V]^Lm)Σ/qP d1f'2{]A6*M9(<_ck>> {]Üo: 0#£z[:deץx+xf )JDP59{Q ˉ=d.Dz<+p.$-m숅%טYrUgJtkg8[N"k+[M8¦P)B 0U.YIqMPm/W嫡Zt틗E0qejno7_aҔR^)A]?hOl )BDxtb;`};}FNh-8LiCBO T2v0&e {Dk]¢! *`ѓG4TB}# :k`RDxf.ӻM]PbP >Hփ} "m0ш^s:2୬?sIsg硿.\9]BNxsMe[e\%_wMr_VM8>| 1яh#t% 04J;/YZRN'fi@e7Vwyn?=a2jՖ\z.[(S[LYi2wWY("pn oNNCՃBEx$Gw6=ö0 ,lF cE:\sUHy!XO ɚ| ehʱ~dR/e+;lDШlB꟰ڶ1ʷ &o XcF,~A #gaEi#WT9\3 Bi{"*,<^"tU٥KOkz _jNm;,zW@Ҟ;9 Lb.'y Y/eqk%DFen?37ư儫^jɵ}+}w][]Cf=-Bla+Beݷu1ZJ ʴ:e0,lcԮy|$O2zmynJGy`w=] ^:0mIJc6\H o(8pOOy-63V~d6]h28 :YRKA9?z*?|L$/7f|XQҊܚ+!E>.^;s$+s_FhByj=` Axg_DkځY/G/4fN`p5pL$)$~v&=Ys6<$?8C=ocy8i?J-B뛯"Bm~ZG#L8*y~ofT*pT 5rϱ$!c`rp">jUFwb+Fuf-KD^+*VJ ڷP3)1x6Aީ*$䭉6/d/2Sԧ\>&]FhJ^c0 y o;qt&%n-/Tb;,&'GQҪWd.di[/FMURDc?qKF缼}fd")_U&w <%abh(k?1I寱^&)g1 Ŧs;dl:D#QV׳NLpUXc)7n,Nj2BP#wh+Azxu3eX X—W|I/e[#d;$!}qa%*_ k2]"q~ͣ6r?vvwe$@HBtZ0ﲼbKme#j6F^L8)ly=^ ԇ_ C6|Vi=o2[&.xbnHMԦs`r܆o  ]8ȎwnrE;1ݔH${X `.t[aR;&k.sԤWjppʅ}f ,y2( *kи,; 5Zƈ4<\o]^6޲agruU~FS;eCw=E(GC$ϗkP򾱀ʉC?qbrͫ~x4H pܩ&Qx7 YGA wT9I+>+1ͮ_m~[`b@'VQ$hnEnJ]*K'MvLWQ¾Mt8mr)^, \Qqo,3rW*Bz7_$Kwh/Vws =Ey60XMZ?"lF8ovs- q_^ */qH19Zқ@?` ~4bH-]8*QBy퐸F$%+2HMF(dΔIL\>~w#w)jeGlRsⷽl?Ra}-$opz޿iB?bA,A1ˏ>'-M'5eELѰfp̢obe- E۷zU%i|^,e@qh-tҙCo "ʊHJ-x(oȜK`Ia9h$ʞ\UJ-]{fWݒJR#B=>'A9|Z,(h5EH d.I@g8+x]Ni <(p̉l67oVHXZV#u lk?"B\6Xtl'-,:%m!dģDٹX^\=+;>9G bjC XTVUVP.4L6JΏVG^h*f7jO_ims'cZ8)- #(h*sD\v,$}Qh{ҎT AɝRkT Oi&j G8ְWOV)oy=2n\!& y/Hȴ&>.DYZۭPrjA)% XzHh`h{̔.taVP!ѩbFf\+]w2Tsl|QzdZX߉3/l~ׂ ay@VmoeMiEҊ_(nCMr6-kwƋ OW4uX9pvlc"Gj$'Dt8#hRv{ڒŸ{UB9*4Ldhriar `eN̙o<R[3lfWH*yN)[^P'7NUfQKF" ;.p4W>cDYs֪WH-F|c+TR3"VHjT:YZ\H"Lvq 6&71o(ˣ/RQCuGӥQ3yF]# ɜ5Kr<^M+CdCש0uE]f1 /"Iz0,4 tyм8bb9>'ɤa?ƻ?,#Hi/~2)j"Aw rr rwhƴ]NrBg<63bL45(QEVRI5( H0iufᙻ:-i($\o8*Qx 0N+Q8Q=RI=$o #}(\sU¸7wM;u_ ;1DAEfq*顉YOS#ӥw><CuK3\~1Nv?0["(=J^MIӧ@q,KJ '_SHek nvawk(mHM,*Hm[l`97PɬWɩDn='x?EIgIWGbUD.) -eky=lt>GML;ܡ,^"Pjx%? }(`ݐ* !щpa.;Y9nN"UG0s)1Ļ+"ڛ*l)/T=aݴw#V9MZ"]o Q^j>|MA@WpoB$#/;!5VY*"6ԫiU 1v_dyU@BxDԶ ],ّr=M?S{fgJvݶ;?\L|+WG.,<%7i]v[KEprZcYڥ ?RIS70Me<YE֫Lunv%f'}Dq呚y\&~oz.;PM q,!J#=K}-8fso N(# $mAQf&6\ilk_xy6V[Bt ȭ13SO3[_s_/σD$~q+<=N?q!Y$ƢD{S *^rf?. ԭW[5ۧ 3zuU Q-Nw.E%X#5)"+Q6U.+&+d@ -Ҟq!s\YDo^{tznwzk}dhrWgQ/`,)=3vB!RqM=a#/I$6uzd.!ېcx7.v!B a;ѹ{rf?y-xJ_0!4qѕdQ-&ۑ}궟-Jk#'&5fOfUi;oPtJm8b(pDX{|`= scwД )^ٴ?%7N axޝDlF G=AAM4rz[`f'CD}'q7睁S|}LtdHQPQ2FK ;6n Qyq {IGZlquhuӗIŲb-[h4" Npo?zpX2~w8y|13O[%S,ؗ$&LSdɵ6[sZa|ދ\bu ̅3qNpH6#u?򼚩`:9 A( %F$MXj|.A x7o&c}9Ěn^TK.@|lQ"0uFYaC|CR}WP)1sq8έ6H'?su nsR@rbi/{8rv JhW#y'*8#TqstZn4X/aedY #CS%sBMAz(bor˓;O`zD$VfqpW>sp\pWk&Du'90 [+p]|3@*dҴfvA-`+=3J f5v%d:|Als˟>b5+& UC+Y_xK庩B4=Q*a/q [םb%8}>^S)4e E )ah<{A^DHݎ^`s_f B۹%xvE% f'K;$7f)[ /PkƿHDqP?m8>n^_T&IԅyGOo!KUhC%1_֙35CHTz`L.4?6RE,79j}$ڂnp{<($~5UiX]_<ū K{ǮYj!Blz;]JUe3V|*x%id4N^w01PӈM0d ߔPجHv?\" e/JjB71{B~"`ZOsvzhxĥ_p`''W[UO KbS #7ƨ=79zn52}eJlxWVCmSȁG9ۥd- Q8w=r鱅"-_8[N˿wQjV4, rqDaCPɹMӖ?١W(_j.~}؁g;r[H:ڠÞٝ>CtRxM3rU9߰D*Yz \ eT&OBt5YVqzL_ ҅*BZ1jӝH0`Y3?bLםTL4؏G9é ZJ#tYpIt4 4 Vr!S&Ǫiϑ**lxvR LQi l쨻(R EaO!b9>GzȐ\ثjou21kcSݦ|(8`t2cz1_ֶI\r.}n`@$_<Ý)uI*=@+V9jb&E wU]h)͗`| Y6fFȚ޳>ky8ϊhER)dd&EZ,P}/NG`'LLZkTvG}lODLʐeJ C)H:dU ܹekƾY=Xm1* ,ӷq7wgf;hN`FyYFǦvD|ץϹJe{:| J8orԶOY%Zwcp9`:aλ0 \>6KnʆVS_Va߉y _+=_걢Ha |sXzu:lu*M\^ךʇV^A+U+9e/#IYzNJ,^űX3?|/E\dƺ1j\Kg?sya$g46<.)5a{ZN@@ e`bNS_+D%dQ~ȽWoDa*LϘƹUxQCvV+TLQtczo3zR&ߣY:`<4i6I endstream endobj 136 0 obj << /Length1 1506 /Length2 6683 /Length3 0 /Length 7687 /Filter /FlateDecode >> stream xڍxT[5E:{{MJ BI itޕ* ]4HAX{}[Y+y=sf9 D*z&V"aa1AaaQ"S(Na@Ap0T<@4Ʀ Dcz8@HHHJ D""<@/@OQD*G7 "%%pv&WnY4)-$-tG " "_fL HB" @{x {E$"pG3Nwt O '[œp_-W6RS@ee_@T %! HJ?|@ws+e?3 <G` p-{ ̛Y\*g ¹a`L3 Z ߨ%3F"wCQP! rv / 3d 7-HпUN?MT\azYE0S%f Ƹ05 );;zAn`mA$n@Ԅ1 DGQ_@)@L])`D43Ʉo9TbX_\jIGsN=w%T~ktqdِϽY! 9h,}ܾoGoNzaɧ1+_lpm-&/"$;_}~yنZ NYSЏ۶Z/?I42~}|Gwqzby:Tt7YzQX'*) lt 8 z{m~/,㍆w-Q=&걐֌z-j*)D=O|vxqN6as[Y)Ŕ:Vu+qrR*bWe˅6ȥ ~07Mh'jQ7<G}!QB;6kB}.mhvņXȾB {r ?~\%R:},h{VnjioFv:[R}4kOp5{auM*=1f6=@ݖBo"62wVCv_K+(ɸ#V9q̓TIޥ$ԆN\ uD0Ym Ny*F!^?)N~^b? YHUBW=^Ϡ׈mug("*~}ھ芽hbf?;-Ofɹ> qړÂqOV`,W4t)]D^1g;EHTls܄^ DdV.Ku)LĻͶWnd\ٶ=r0\Ġo1֍㯿jL=n! Sv }! Y+_ԋ`8)mGw}p^4-:ʗeYgF~4 3GT?jIR~"$Jn<xJai=ou)ƻx^*)YF.Dtٽ4Ydn4!u%3C;t '>M?7nЩXؾ~3CjP >xoЪ%wWhmMni]\tͰdJC/悼'{k\ ^Srs" dŗIvb)1kw!Mz_F2ac5_'::lGQ|<]OO_VNؚ <3p.,Wh b\FN79f0yCnyI% ̲MoC4MsƭR܅į֣9 %,/duIfFhBZMre7R.OCE#4<ͺQ:(h ps}Uj7:߉b 1t8Fʹ3M%v%;xhvqs,6SW3C㣺l@V)݃9׈]:(VS_2pg WM^9)WYRRqYEt[ZUPNt$X4垝 VqoƊ"ۄ!ߡ3Zk.}F?BA'j^$lO 0l#p.43*5^{l;${9ٶ"J oWr6O,j$Cu 7!<ޚ`pq| m6$aQME*'_wjeTuY㈅ -\#V`3Ҹɐ8^5O^"۪ȳQ:ф5A@{``9n|#didl*b].In€C$7w _CWoN3}-q_|f3*8qs+-}:TG-xŴr?>~Xla>~KuK1pW A16ɷ_2VDV}ZHa04xI1 `رڶ.ے!;|D) Lrcn32YûbӁ=g^7c}^i:|dFi9ݡER/vТK}i쳏 7̢2Ro7߆n7 < 70@eH2?\]K%bsF*W p-P :A%4#yঐzC_p^*8k)[LBONj:<ӎB(VV-\o).Qo+3?`ߗRkIp#zh(xWaO&.v<^}rjRQ)Rd,oF2GLyezIwJ s6o>V}D{s~5,8t"ڏmO@UrBXi {wmVyGjhUr=Bޒ{ _qFCjq6fq7ډD=mc߭ښ){"-}徃M7 Bڷa~]*Ԩ&O]4ն~$f)0,qN><]ލm}nEbg3͕xU3ۗĭ NՒ;z-SS/УNmlWP *GŞǐuR _ؠGg t`?g-wST–V>tkqW/P>}3?[FR^Re:=y{4(ńN:]Vڄ-9eϒAS5x_{CO:~g]E⚘>V5?4\yfOYyqçU_ ٚu"#J[ƬT ¥)'P' g7VZ q0W_d&?+jJ׼zd(\ܬklg5AGO]C̡9wiMuЎ(\ iC56 Z[*4~ ceS]\sVVj\gw4OJ0t(bY_ c 5LDɰO<5dt>ba۬9h:UABvXP:`:>1Gpa:QnBvi``@8~@q5_E~}Y &j3ThƫdӜ8 e3.rQO8*kc kN~E[絶J. [Y v3ml[܊0Nv'{|MHB_g\]-"TӤodY#=MrKON""W0D;Gwo(^'R2-{q8~{rCx|uWJryݑKΧ@'^ :l4;_R_V@?N713*5q8w+n {T@EF!kVzJ.u5E*F%O~ ueD-ŧ&YOw׿0νPݍN^t#RO~x#TǛj]$\ ɤ2:'+>1{|,lgoP,WXu'~Qt*KE@)j#5jpp޾k;.8/7JDeGS{pwЌ%6YUtڹ? _r%j.l j"'7 9vꙫS _ iZHCR#g]ub診ҫ\גȂš{ D9}6㺱.9؏(ynԋ?osh&/ 8FU|v5eu(VVw] o4ZK܊r_u1'ҾU_y/W[Y5V"~f hi?&˪ 32f6)*Z MG?4%馁ڝPYn`ہ߰X%As#]&A~쯌3%6y_VްI-|U-Y~02N;l.hK(;MRp}τQ"צNl%/DN*|>qIxHXV!oWa6 {vVtl=؎QlG$Uvw kN1iM'l2|&q"esnOv#|-W+}?w_5-KSS䟺/(Y coS,%P)wsuV gS.ϽjV95h;[^Mzrg"] `\ܸ6!KQ7ᱷHr˥esv&T ,qO*MwہGq"bs4Xg sS.φҸlaM -ZO45p_L%fUc״OF+M`9':z?/:,T:~oƆ_ҨmE(hT<7BA^Jћ͈6DOKf#k7hzfpu4&APÑ+Ia-mI'VkNo+cS.Ǧ/Q5MR Wu rc6eמ{z9V]Ue/"=`ZJsۜP@:bzWLI"`\( ُs3J<:oI *wh^_)@'p/9#g4JfGRqǾ X|<gdmS}$-~A798ѭ'ВX5G'D]jһC7>) /V.չ: @7ҒNW}s*x0uϋ# !D} щ{/s[ y-?Yb;e!}ʽLOph*; \ 0ӏ-]uҥ :OPyڤpK<c` ͒w'mz_NgJr̯tżKh`:_O+#"\͎ɍ[;љ߰!FܝJr1kq ڪ>zW4r[Z->*inOx0?yk+-2I,.! ,,ug;6LNva+gȉ2e Po }~<4o[-yF[llTzךqQ,7!RUjzlN(h[6}IPΞq:G64EmN>LcBÜD"Bnk9](C|Qkmgk+ 0]MTlg Ю&.ޜjY[Tl/u-}!#u tmw%8n,ӅЕD\;53BF|!X^K endstream endobj 138 0 obj << /Length1 2098 /Length2 16399 /Length3 0 /Length 17660 /Filter /FlateDecode >> stream xڌtZ Ƕ6m;iɉmv۶m4F&o}o]YF{f>$Jƶ@ ['zf&43B 9:ֆ@Ӈ @ `aab01qց fbn g(DmM͜>W5ow5 od8 jkdtrT|fNNv< ֎ tWs'3 4U2@(jfRښ88+s#㇋1q:@UZhܿ nW s l lmL&V@/C+Gs+S7H+ >*w}FvN VW6Z[mOhww_2?ۘ;m!#3:ؙX@{Ȍ+igk0(mnh898=_cf9 6p&w0w|e?f_1aƶ6VbF9y) _@`ffap~|8J6&ѧP7T]o:7# g+T2X[cr>@cl_+46wZi'm1hzf6&%݀JNFf?oV6@%[G^/&X2#ˏWc4V?v15kX9pwAO揭4=F[G[.(_`/qЇNqK\LF?j#0j?}`F%zhd0h#S?A?r0G̀!G8,3Gc`~dj쏞}l?+y?E@ǿB?i [' V?>T$Q? >r?7.޸>z?#{WcDn@#%[# Za|WS,l0.|O7+½ ?#vNYJ[,5,u"yV;!M fOY~|g16źhUuƦy,GZPevTt$4+XPpfWHB4Y"S Z9n m~v KS G\xqLOJraN0v~blEK`<;0~ε]bԘԓ \Ϯ3@p#3W}N/-7=lvĥL.њ ZwD57ݶO0Z=#*R#=sݤI||t}]PegXGŶ`jO}`yRíy)Ub\~:qr) uE%+Gs!hĔ7ZOA}'Q~A ]Ϗ:& hxD-eHe ֞si 4Gʹg4lxP(hL_ȧ5]h4O Vma4>1 sj̱y@˧yJ "'Y' aC-ʙUUH;ayg1(鄕U.)wgDMP"H׶}̪"(.BŪ~І؟_ 3^k6fʃ ~15gWLIJKNžŐp"mz@ۑyǞ"w2GB 0ũPen͜1XN͠H1K8vʹU 46ܖq4lFmSNd + qY6:XӬ]YuecMGIa҆}C賓f|M1ꜜhfddijyNrDY **Y׽卼S Ih38,5pfc[x ? #ͨT7h \ҔD%MeM+@;)줌r\wfkJA Q#asLNFc֯BI!y ozx-VehWlH"KtafOrtMyN7 1g-EױP{.嗨}k9TZ"n>BDjCbw^mee/0A )~MXq*1PSH "ݱ6E@o7{Q~UJs亀Ybk0f QNFedyb(;aM7VAj0Z(*uW7ڲnŨɔcG6 9G+A$]0`juhdQ^m;\(L >2GYVJìqd{ J^zO)/RQZWoC]ELլv7.l<#\nimD|\zlAxR qpλ?.k|'z;mĨz}g@W=_` n&YI@1nL|Kr8)U( 7V-r9/03a&ĕE;ȶ,W]7iWba> hOŜrwȇ)CM%3/7VlӾnaԥ@O2/- mz%DJNB:gn?cҮ4?td~:&7mDd2 h)er, 77:oOC3=ѐ?k(I AFrkB4H휧_Iַ*̥BTY-Nͻ*L!e.<{ME^HK.LIv"ʔy^z`F JF;Y'ZV(3^4C-!|!mK8!NDP#W/F~e6}{)hqB~l5mNh~ܳ0 ֫D ( 02{;ש0 2c!Rmhxx(`djRv"~[#t(טWv\i%44f]-Ƴzg MQ1;ɻף, 0z%2KW\xC%Uֱ#O#jط;ݳj+{Xf޺Z Z`0kCnymh|p|2cIJQ;mn:rMjUR7ƻ)gv!phW1Fʅ, %PF&"ML ^W_cTg,Lp++n'?@Xdv{d{ SV"WT%ÇIȖ@^c+L뒡Z6xJJ 3׵? @ a7nV_nM{8[_4uɄ-霺[ M˷Z $HIWK j^N.A 16.)aLu|HwAhgX'[G6^(} iXDD1}i`c^,Ӎ` w_vjU%4@x7ӦԲW"frgbr@J7I '[y PYY}Z`3S(5WW+Sjxn+ܩSۣp"Wi'p C|(>{1:΂3rÃ=;i,My>]Uwz}*F6+.䆧!j] kv}c/8P ެkuj[ 8iG!L6QOE=T[@O6R!?+~̲̕9?\RGmX/s'`[X:3䦐є}(iB JH Boܟ,:ZC^ Aزq1˫.9qhݩꂡl¯d:5-; ]vA+r #n?ݲ/1 ]TہwǦFcDҴX-$3ZzVE/5OVnL_YŒk Miv;sLEvS!udZ~{-Lc \BH5ctH)c`bml "0׽N3:vm%IE1) 5 V_6)31U|b5\EH n^lth]t\7x?|# ܉RۀDkdޤل3G-Mߵlʎ@Tg {ڀR:ZAnIkLȞ قn3&b5P C>osT׏Wi.I4Lp][&;voYԚ[W*.|pTN&Ug!4$ HT 1yNހ%lj67>pQhlnƞ42LAעx-j^P0^2A1avOQ0!ua^ <'dȲE0G- YXV8ADRҡ!,x0(cqQ*nRZH!pDjdЗz@ ͂d9D*''5.s%#)r/_:"AErp<dd%M N7lP(B3/].mae$};e=6̑Zt,e+2Seh@532\=BzDlF<[f7N;%mbg6 Ն.ËKF4SdT}F!BXiR~ztVRH(hPG ܢJ-a8lv:?틟P/q}Shqv}Y (6a dxުYP譔Q|$&|U`?tCc]<[j< gm ph=y #j;yy#pҡplr؅wh@w4;F-Om d6xoc,KhAj;P+p(9r fm.Gw~S1]X*&pʑJ&:am).ꫬ3gq^?sEKo^',_z6n:u'z"e)r>{* v$l%WdAY$㢌sxɞh:Q3M&y;#fs#x7%t\Yh.Ʉ7$VTd+`,6x5 F{kB} b:oq'!s y ҵrrDA976@ x#FdzY&,(޴~|鸽pm.!3ad)8?j!V5Xf.X}{JsI+?12(\JJKO;dlz)M m,߰ _ 18\{)&Wî]-*=(Wt@(jY0 \:Y(II1akP9/}Eyt>JeTeMB )f­-T2_z.x2i5@']2yZQ{:GN呿*NrBʯ#V U}4jvȫic|=}~B79pJMVZM0IP7mVL͸Eڻj#Vqg!!^w-_Wѻ v[P=3€ۜO#? ~ mp-[#EhX+j< f͸"jKt3Й_$;z=D cxc]|FznmsN[/"%X;Һ6㍠0!?Ye>0iZJy*S- 6 lXΆMnOm\`r* y4hBQuMB3½J pHRƠ0r[Pzयԉ+rl /=ϩ[E-=ʲH;3ʤb>'*'=Tv)NO~ PF=0xTry7YkLv˩3LBM6H)+D65}Hy.|)h*)2j(+'tfBV xV@Xڼ=EY* 5//4Xt?˒7I]-g!'CSfqzyH E$ȧҌWI(73kOTZq1ľt $^4@X`Ԏ;MӌJ\Jo_!8`23C=4;+\Y.-9{xmZf+bK8J vt@8"+&[8hu\~V Tq У>ş5{A~ $)̻(N;:Ճz"7ZE2NW(EӥwΔ,&ԀCc[Z<R $G/= ?}q\ߴu#)puSqx`ГK|UdIQPĆv E$eu?rޅwr 6ڒt~\r tq)^-R3~p5hj4QL!ʚ-i"KR :.Kb{cQ-beG`-WK,3ٯ GζKFf NQZ켿 6^uB6 gКo߼_NN0eHÏJ:ny,Iۇڔֈ !(kmuѡꓣ>GN) |־Ld\,Ү*%9%Ѳ m|Z >Atn*撠F*ܠ|./59Ja>ǡSvG'WGЎCSC>XGn5SpMeN jl5-7Sf)mtEN~l^_qk u0 ^yh: K^\εydejʂ-,C / 4 5ElJ㥌؟Fi~46bgNʖ'IHsE"+O8M6= T_c=Ϗ΁o3z( QykUi+P'>.͸R:lPJܑ)BU !3}2fUa9]nCU_Wx[PĄ4*[A7YR͖߇ P#'Z?iR5u&ER'=δ\$ޞp N7Bv>W< ؽG:zq7Bz-j}#om lh]ѱ,A"HX(v8Ȯ  + VWfSayLL.vE*(s`ٖ};q,)mIm)BUUt6 ^TߵeN4 v{b1:9oq7tي<;4 lbbqCelFiԪ 8oSێ6Qk d$kXh7s&/[UjlEҫhյ1wdd:nE=(G>3dMY CxwzL46a$^jfI#U  u2? JD HGj7B,dא2|tg7,AA`->@jo\EBH8Hϣo ܟ ₓ[*<\bl:! TTZX;>+Z՟"g/B!FfB%). KseC:U!]HEMKJ"l}jt>ѵk=_6y9uŝxwH*jY2l>< !0E^  tfW F,s4ʞ9&@,}Qe&n]'އ%k4נMy8%Jm\Ť)$kBj|xVLWjN:7t7XcG &s, ~q'BW&+ˏQ_^wa{r-ӉlOMNu)ҲILV~NEF |Q!vY^2 P|(ڲX[ؐqW~o<7掽ӫU-lv'FtRd/ǐIn'nbh>9Ul^䴳Y _ aeJ\D`SRB~o/n0d87Mߺ%5Z۩rc#I̝b#e'qIZZMfCrT^(`KWȤ¢ ) hɖvQQt'Y]y3۪B6TKvGTe']DrVSExgYۅ ,ʹUR '7oKdaN*!7AV#d˭Ia,QxIS>qA-"750DnBG17>GMLL~R/\8xI[|ZSx:&Αqk*αqiylWKYXɟÅ-޿CJS*:'~Jprƀ'@w1͑W4wLGq)]~%S# gcsL7NT):nAUe$YD6|.Lyv{hzw$'m꾪hOzeY oybnxBԄ֣5K]{'l`]/R>^0@dHr5D/+\/KָOLƢc2+yƎu?IM9*_]/ ?БeZ.$;8 c!&r&Θ~8%+ILI5!`if3ڈKs&靛9[ ZF167s<y $-Z' [M"Ht*z;E}qѨ"F*&K 8AroUE^`4\ /mzTc xpq͓;^>UAAKL Nu9d!=c/+2+ޯ.R dD[UyS? ',VK2Yczd8 $.:g/~ :!V8$t({걺wUZxu#.>d>bvӜ>*"HcW ZE˛6{<~Rfa2P>AH'YgsKhy.)ϻG:%ZvbV JAp06TSB)ݱ'N557`EK{%sבBƄI[;籀_F^ɣȓ3]R.o88j4'mj]{]bAXhF%3O_rOux۝ʳC4ZB&GՕuY>!% /]WXU+L}(xƒQvo@QQj%aV e}5< HRp4|%=\{]x]J Dp!yZ>S/GB5 { :(UT/R_Zwdqs )bF3l^p8J8 ?Gər6RyW8ޑBjTJwxHl#byZ#`T?odәрL~NqܻԤQ'^͛ިj!4 8EexF .)"E Ө{B\sZ԰K $.XP7Cns-q ǫiٌa7Jb c~)ڼƵo9Dk]^p< $vɠ` 26l]?w5hx_݇oz*bsWKU(j ^Ȓ?@][؊t &N\vq|߭q+ZC3.9G1jjPyeL} mAts..UIц+S϶Xq^i8 'CDUyK:/%SӍұ8r QAAH#W'} j#e$ 'ild5Z!w[P|I{̓JD>cK` dc9 Ri]? jSEwa꜐]8+ݠ]( ڏ| Kȸ$`a-ꔾ#U/h?F|2|#{O i7׾ l3Vz!o\>fars/z@-`}|NůpHƔuNW9 P6٭O)Ph5&q9D-8P_Su~ܮy |4Ai=nR 9{Jw6\| +Oޒ,>guD_a9( |.`g(9x/T=IkZKv!K}j.GY+ }5'?V?W@']I7A 4dqUjɸm.^7,AR_`',m{q!p!Pjx}Dl}?톃Q760_bCGԇy5/M^}"+Cͤ=w8r^(hpn*Dŗ5ży  *]2[ﱯ95&wmiʎL_Y]2C #KCV,HP~'9 &&܃wKZI# fBVgA õ3YVE^cx@5pmgYO3Oj&VKNm(:֨Lk"vP+oC2Eۅo|5gc4BBP_wg dN;9W|Lm/Yj{ƽ bkI5%Tm:aǭ~LlU&,4Y a&~/'_TKoC4Q/+@_vq[+3=ʤ>F0OExsHMX uw3>rW5R/f2\ NG0E9VƀLpxP N'.m_WᣥxkPSjjF5QčDj Ylvt ;kOtҞhgK4 P-OUi>*V.2plmk +o2.̃aEHᅪ8X@/r)vԥSzoXX7@)_ m_9(kiHԴ3Y`E;8 t Qfڴty][u"CmYR&PN3pj1Ly;"OVaSDʍjSYe#b#Ă^-~5 .W0⾷B3򜍼/v]?o1 }mk_9+#?KtxbCJ9%лz-g:qQJEXԡ|&ir;ٮ&띂.1_^2ξl={'..է&ܞ /lj$JZ;n_+ 0]Ebsu$ +>. Zj{*;ι>S o-{ endstream endobj 140 0 obj << /Length1 2645 /Length2 18652 /Length3 0 /Length 20180 /Filter /FlateDecode >> stream xڌT.LIw7Cww7HH00tIt#!HwH(  !}ǽzuyR]Ud9rqU99l\ȴڶnБi_ '?$@37M "r(;8|BB.B3[K @tE9{mm ~`gK Z9Tlf--L0ظ9 {zz9b,O[7&Z~ P5s2-@o @@'W% xh)(ԜN +-8N6ː_f Gg3'o['k&0s%h y:C '0dO~`[g7W6W[_92)4+>[0Rwoktu3;PA 7]@/ _19!9:V4V@vo pm[VcH^q8~}e0KoZ̮,.O2@^_V+77'o+fD񇦂 w*'`&`-Udncna</+1߈3-9:x#[w7 Whi\73.H:Y;[H[W9[/_7Yמ9:A. x岰\WHBv=:Y,-/ 6FL//@r @`_-K"R?]7Fv?]7x슿ăoASͧP6cTE Mv x0Q,Is_˔j~RK(.YVIL~;Uؽ2)˿Ģf;m;aܔKzW}qSDp0?/ Dv]^J75Z|*USAe6-סjnqk z"Z͝qE6 FH{PIџ_ҥ1Hއʢnn$ߞ3iv5gf88N~ϸ*ML^ͳ;zUi#bGhlmxg+_N?>F6~l?5%V(:f;\/.D%op(K}CZlWx97 %%Uѣ؄}y9l6Gؿ.g]+yr/GiJ5by8,_fyflb61u(u ![2#<{ M eG(zjX[ LRw~:1V82n?1g,ӺD+yG| `&TxbE{h+񜆿3H=95IֹO~#W(5[mM81 J;/ʅG9L_;)l=Kw00BuGəAWC>߇ ,)"Mёs=kj6*n45ʤ?JW> R_J3H.0H$ 3F@=IɗGSfl0BXÖaRevWjz*5ilJR9MqGD1F/-"-ϥ.g&z6k:>pi*@&ōIŽCYY7*bˍLZ-\E)sOʍ4ԑ/ACSP2_t](l=?'>!owwjk);| tm4MO)͠rUtQr=Ζy:%Gjw/iMH}CؤlG?txcؐ}2%܎rSlKo>l݅%5@-fOoIUFW(y@J2Le%;,  So[*zk;Pp#2I?#P !WxUeT8O} ]bpŞ9`8/ӎNY"0* gl)5F>gtC;eJRX}HWdnvo]P-Ufv}='km.a`K~ǹˆbyBcH~Tsv|M莧VXdAIAכRc~K9+O [_";[pEV{QZ[jIw&YmIdGC6iw2GvwaGj|W>!H}H^ MKt]R4tx81, 4N-Pz4'aݕWB/O:RP~jbM)Ti{eYLDdcB8-&eI-tv(3bY5N0gm[W*^&i/K?RԄ'\6nip"A`@_QO4}LW!Lwewn𳤡U},>},3ݜpEXbCGmw mJ6e2#?񺯊*k_U&ă([owjƙ}e 1y_(٭CW}&:gHKȸ0nYSp"ESEc\}EJv56] k쫴hƲ?^g 4urv=[R+*s4 PehtXY4MLڪQDĞ%U+imZ"KD ξt] Z?`hE}z+ 1?zӟ!e"y[ⶺDMa(k7ǛIAmɦ tg < yd-,dE虮0c].U ޿i%YnYّO+'ɕ1j^ut>wﯶO$˦mި5&˄;Շ<}82ºƃuttRPb;.?]}ЃH_%v"-z vB]t.+ r\ h<șTDFӽ7U _~`5LR&7bVs0XVYEI@,;N/LƉ  'ap%-濥3ԞH ItKyyS/LU2CdG]|'J(P$l2١\ʗܖJm C8"t|nnpMȪ5{i. k\r\jgd=%۾HSM u{[]mxCH1DLkm_&CmQrA<<:iDOg ɯjWneT̂_xf%n-Һw=yqaZyx2VM0ϮKȞ2g&3e+z_Uj%uF4;:~5ot~(sE# ޔ\jF O:(1k"#safs><.2avKbC]-yi2_P^Τ1\5mDzLgc5ƳݤcIc(,jesz$U7Ŀؕg0";̜c/=0I6񹔏D#_?-Pą" CqwoCj/}x@"5;0$4VMiX-@{a@?7^?)#ɶ6PȂnXDdam-v\G=->uᾠ4$LQ@׭ sI&ȭ\",hJW\/g|K]lnЁ&s'2 [[ N(<[w 2jO՟+WCѓX ;<[nMln,s?7w"\DaA_Ϩ޳cØ QϜ4t4$B X(@\ɳBL;9I]*oo1nX>[“6PS_j aO@}WcrFOfr|g e\uVјATObl 0-˳ S6i@e:Xʎ1+ D 8*;yGt8õPqolR_$)̈wM7E]z]%$Dn̠7F㪒oN }v鋤]`5nѐ#jkɱLzFNcq,-J?c?Wߩ*20X'SD2ŬsD^6^3s^~vb{3)h (i /0q(E-7B\W8nѕ{z & .8r C\ Dc#:cq8Wu X {TM&NlD $h3ӣ_~{0#3GlTϤ2I@`l-q⁚̒?x(8j̛)|*dԆCM%{9xحB8BtOI̐Y2}Nsgs5q9ԟ|Bj7kG8Ak㬗/Vr;ĝ7|$p9w1}"oI˕CA?X5{4Qˤ PeQ̆{2p*?L-yz-E1m$s?ԗDŽZ d?NȋでHrI3tJDveNr[\]YPK_o|Nz\cdsYdDc(N&^szj7vBe\n*:r`7^<;EPYk' lB:ziИ/M?1hXyI>&Ipr*=AJ UoTО7̓#mt @@r9Cs“Olk/680 {>JJs&IJ`} }3TV]0phdmeBue#([sb MN6v0_2֍}<Sښbmsxb -8>Tun[d2 Uy:Yz_5ک+,/r4t7@̯Lڪ/dM$֫0&NDշW^n$O!fp(Q5/֫ݲ%TR.#)6&i, q| !*k(ں/:eҎY .4=YbHmdc~2<> 3ʏ1Z<,ӷ;g(n)eKG!X6}z1E ֱDه(еr-@4;Y49?ݫ1Tsa (|Le֡Vwv _¬,}j M"g^ $Q>-WJ]sSf[Wo:`4/Tw7 d: 2H Q5mC}^KL GF!Inkua${E$EOIMcձN-T'RSg-rh,#N*p/n+W+D]j|jz׆fLp S xkn0aߦޭ<{UXp`\iL>Ro{Cʏʽ an2 u=bܪy؊A} M!53aW"3. ֒`tDԸ`ɸy$"|ۃ$ʳ򓞊vPw+$zˠ>+rIKJYE-qAMdi>ΉX\rMjӆ9c9*a!$ Kl}PQr-{q z$i/#VkͰ`<@w*fݬ͹[L*=ܲ}g9kx SB*+M]Q"l};E 'P464Mb"dJ0%E.AU,憯!eL_ԥ3VG(}*Rּ@R5bf~Wa~Ű'a=! V6痁nNT4rEON[y3^fLcJƇNVT]H:]2w ֬.} _H,`(XpŃֹvv1^._2WoQ6o48M:ZPt λd Z 0ƠV× \6 l($g:YQ݉8cq+>4)nH-:PJ9~7Gaz8.~l.Dc鍗|unmd*{&lI&g #,stc?Gd_0qϔ)͝J6,2+ia`PMn(96wJ2o< )VfzpH'(]"s H 5-y4'{hl"%,동D\[fV)X)Vxȁ[$T ˜}=-w ãg}֦#˼Vd&LCY\>xRh6 (y0iKH9=o9>RE=u(*#Ƚ?yx=-DHF>\X"Yթ)JMAsd3]΢`z]W:V8݂*鵸H퉦 ɂ?p1 KLEC2+g |Xƍ~yݒH|c2v+i$|8`" WtQm/>ky\=M쪃 0"#4Bd|eK~SBmO;OZDm\a9?JQ]ۥYNʋI ݌ |.C~BX_Zڳ] '|"3MHxfZ ĘGa| ٱi?fGrTМcӮ5^wkO5k  &exg qX Zu<1_KZmFG:Ŕܴy+K-?ԇhcueLT6DgҢw=PHjt Q,K=<̎^IZm(dY/վztv8rWxU\wQ"㽚7׿K7^#q*BA;;@+F{Q2}U*"*KuSQ6qi83I—2ufKQ6#)E~[+H DE k cԔnm(ߡ $JJ$aBjd^DkjK.pwܓm+eB2xw+'UQ{)$qƫA |NߖCvė,c|bHp韵2״iֳX8|Ğ26"%9xhq|,{9OAvh;'^%aG B|0w mEzZyBoQE:yM25XfF)Hb.[x5+ ڲV0jp%\L_)E hͼR/Síҹ%d5ɨ ZJ*A"c}AڈA$O22 L+R=q?lumPe1yyBpT)%ɍB9֋8jHF@dv"A3%k :ab0#Ϋa> 9q7#GbNmt:`2D1Q&I r([ER7vҩY.iͦq쪮CFj $S {n|IlyUEoԁdo:B}0'V0W~?0!oYh}ҙS0~ũuA]C4u ]$emն_w&aK#!k5k& B[ Ohј-ݛ.rnDzIq䵸E1Ib1}xVb{I r\TKȳf=f)ruW,j6̟Ws⡉7nZ}Yr=md=P@_ænM$j^L2>( a.N b.X,9w|ES?즖S)J^BnI>':?c? f48یň#ɧ7+`.%{n ✙ؚ0qzPQ]gTH'fVT6hMɠ3XF\&lZcIڡaZKH eI}IScJ k ;㩙k"13Wm3C–PgLM\)s/:z SX?x⤜iRKZ߯Y3FK t>w%PCxIRX)@[>*Wŝy%0kfԇH ^M "{l/s[/>cv i LFKZ 7|VD]{6;* Ɖv4XUYxdVcofAWv#O|,DflLKJQd!6n8`MkP~g/†g =cPK;&& 1;-51tk W&^uۋ3\L)YDxsVyTPܵAyKԎ]G1"`MLV1﷜Qw;Mb0^M֫wVy$A圌TvU.GY6ˑT:o7j8wF4I W9Cge*,(H*<]ZlsM'x48z2і*Vn} VؓϬ(z𴣾V#'WPT 3lPCSRO_DM74+$ޟ>|? UWncX_iHL?KDwGe fc4T!(i{>\2u1ѱ( NOl>7汞'z-0E- zR`4}ʏd^ +4.crLm Ӽdb|B%;1ȭ( 0NխɪS)Cv7Uy=UK~wǢ-/O_+2P@k %e,r(bCba Fgcl"H W"G?_x6 FB12/˨5UvdOWPoS})oSM$K#M87[L$45E_|!ZƗJoeaU5(c_^HnWWU+ƃ# \Z)6V1^C^Vqjծe3Ϛ˕I7B U‰a|FyXV9r\?a6YpvRJIHmQG1v$9B$͙p|Z-5ى$yG5Ц%9] 0G@`e*hDS~FQ"Sb^e܍9r{-yf^<ꈖs.pqmi#'k}롺b:3) [_nzR(q/a,R@\/?;YUOl眫i|N9,~b2UWΆwj~_G3J!Wa+Wڝյs[: $Ǎ(|(IQH |'5%]OD^.[7;%LWq:&9|D1GfS<~i/k>ʩ [ ʹ(JZ9"0=>uɩgY̩"])| /UĢs?EW%C2p?ǽ1S:΁B~F%Jt#-D7fS!8.΂C3IguN>7>HwU#7"J67X'/7ob|XՐSLYbdž֭ϲ:H^ᔀ2 frmW]J$[٥9QAgFMl%J.vYac5-nUDřNiz{BLdzzYiz7}F} R14Iܖ~~|c$bީeyS}c'Z]8Qez^/6zFPdsk9>itZkaOxPZS B ZŋF%I"[Y?K_yM|Sp01P-hs{Wwivh=3'h?&niZlGܠ k]e6bJ4@gG wS4E 99W RqpX2ZYv̋v<ߊzcW〥} ͮ፴HYT63r>̓:1h w`q!a.(Kdِ?YPLiؼo{b Ey#-yy7B9^Qaz{\Ƹ$^t"+*ojV> ]*yՏhEC-bijTI 8Nv'^z:+x܊Lٍz6j+4reD=]U q^KK,GkH`gq&~6!ol^1I>Ǯad Qcɽ#KWyI2@=nbc.շU)`vD}=_!|!7wX'oB=墾νe-qS0i]_썹!-iOo{SS =3-,)Y !,I撪9R*CU‘蛦ihf:/bs_%ͦZO >e^P& m\C1_*H:ҫ8pnž-CjxcC\)-ylU5 Ya^4^uyEWDF\Z%IuUϮqäJ$U$f;V;; כγO*[DZAbVςwy5H &{NOe#ܺ-ĘsELo8 6Κg4m x~j5˱Uhȡ9,prdF~bMw=e:}?>^nHjdme&)ZA :d#`M zsVv)ۛ5#%/#4&kƝۦ8TGMbKo6p*N3  Xy4qrqrC0%z:=/(˔?0%ֱUvOԼxyQ;D /J`M&Tv VW%ř}L:DkN[/ԇ&e(&0 Z?viʅ%4f倜PM`rQ5MSY\r5>;q/ls)HY[Dٯ/FUe%]×z66K5X(9{_]C7zҙ#&]7pw>ͱc+aT͸7;qRH̀sx_n-0 =o2li'_2| OnJjG@P >Mo/l3ye uTvqNo{wNf)*K4dfSx~;H.1Ԡ:)p;VV 9~Q Aœ>t be HUO3i'&Q8ťӈ.G3=#J XKaG[ `|M.:QyX7 Uw*$ӈT״ןKy?jJ~S SQ |Oӂ6}9nyr? b]t$O?2f-n@Pz鵊nzd;nmSNo%ߙXѰWQ'ZKI_G}GT U0k)破=VT-Pܮ5i|j8 ?#{T]0[H# S5[=)K.aݼ{D2Cjd 'ni+7̛՜f7/߸nM,$ IԵoR*#a&S&z/#8uΪ΍J04d+"sF͆!񞿩kdܚ.u^4# AJ_Ӈ;> > qf2bьғI,-ݟyx2VB"_*jkhBch;mi |~u9f,Gd.wT{͝$mSpϾ?k+~Gq@f`lT\ v%cZG{V_־~ t5 LX:,Y in@Xyj(IyOѕ 7>9%8/W{[P5!wg"a-1fjV rhkws-!Nun( 7߬T=_y8q5xP{q+]wɵ"P[j^Y; Tj̪yܙchBCȴ?LkT 1@<~5}Uqx\}X{ C>ڬbNlůri.iQfALژ.</Py_Y7BBƇ;PQۘ5ܣ϶w'p@սI)!5`4A'TF&lnqU "%8*Mea%g<Kkۓ|}] AxPH ZeRvieTyHV{pi2F4UV8&~@T%ۓ6Dօ<P*`}npƥ?CRsf) o!Z }7*@Hʈ8ɤwl֎Q֯(H~js侀{Ş%DcXXW !Ys2^r?3U&e-t)w awV@>Ҍ*\С>CO=sn%AX\kB2|` P,?;xmT#̸ z_gEK@gwMa|hNID]&o%dH\eQYbn= FA2 {? P/uZ-+vуrb%[EJ7=j[Y\gAgs{\B?$"(`c[d3ޖ(^0_|dmP2H)'TfEn7&*Z'KLPd7@P@B=]m\{Ҍ㏅%m,$Úmw On-0cmmÚDԳ@Ǡ\~dBWیp? ?(Ee.tyl3Bz惏e5UyDVIiI3pɓd_s-0 (ڇbX: P *09=*km>/TB7 6“YRyrCӤ#iO(vzL5:KTJR6el,Y y4.c ĺHW$p7#*iMOgz cq p$_kigV8N*+V(q(1ԔIDi&ZV;b~\iB9 hB_֫N?pmi-}#2W׿ F !P+Kx~O-⁥P_Rf!v'%gv*_h>CÀrBlYԹ"(Lj[c{#C&Ӿ_[ҜaMr]iz1o~6&hP.o5N̗h9ϱuΚݪ TZ_ƭU=T6Ʃ R %] #_ endstream endobj 142 0 obj << /Length1 1560 /Length2 7484 /Length3 0 /Length 8519 /Filter /FlateDecode >> stream xڍtTn.KJ ,*ݍHH,,tIHHww JI"%_s={3;33/!FFR@AA~AAa8H7.H0@( Oj@! PXPPo") TC@ PDx!!(1rr$xa`$jP`D[hQ^KrHܼ@hv#v_ u@0@#Ga!@ ؂n4bku]?d?^_ _ [[(ŏDAp_D  P rPE^4W{nH ʍ բ4)+0rO b%f_=ng ;#8 VWb`PLPPPRDv=m~7rv1z \&{0rQH4;  ( ؘGB< }g~4)h' ť$D#ԟZ1C^g.F` ׿"(&heI RAC\@"`$Fa䯍,VVlA۫a@g7'Nu-?_+z7ȯ7'$(_>^:c 7_%,&! / FFbb@o!"ځ=+(G0!@Lw@{B%jߖP%"`.p0ͿBl/.G;0(߿! lST()SDbo[{mf2!Nu!mg5|#rS? ? 3ݔk\'Y4$^\Zon-"6M+W@gf W$^͙G竾g3$e|яOqdNӱQxRLNRg^h|wE VcΧ~0vg7c=VNҠ.)Zǚw(Y  ٌcIqBaᜤr Dt.ޏJ?}i6H&V]V |l^ Vȓ,eflnD]*5 H5vaW!PUp".3nCd\֞d˕}mv?#=XaVD\(==Q}K{Vv'FN XlJ% [ nLJ*˒OՑ`x=Iqn.5ĘZVl|; tʸC:ƳdXqwJ]D'eaVr1[- BdjͰ'wm[F[t- f@﵅~<HV89P,7W9`4<1/&ևg럓j; Yix :kg bw g7ѭ M7?+ꖍ2R:㉤g>My290; Y%YsF8D}>O!ZBhIu,7zo\cل>H Ռ$i [LsAokw)/E}Q"~ 8ѱ*1Bwh^צҚN xWN p/h$Ao跹w-{[N/Tp|DH.#vb L y%e=-6Q;aDkΘm 2Cf7=zi-!_i\~Ed}WĤOY\4C-cmrjtOM}9Xz?xOz]%Et)إ(g : cq)#VzP?a.dW'n2?=eUdUw]b-^Z*Pfjf !y@qe_1ngא p> qM 2rYPqNvUlqzM]4q-CT%"; PҚ#EL.x#+4mKCk'A#\RѴ2zJC􊉤W8V[PQ4;T4g"KL?Eb_6:9v32g*XX&ds;|FFУ"G6yk3^J"}ef|R3}9z~4/!! k,ڵb)avWaےWi9{5ǵ$K1u+(#g">-R)sh3-g⏊;lx~D  &ћ<.{' Ky.,ԂhU%Lゖ}!c ԝSIO]etT҅~SRwU>Fj^'I>廓ʚ뙕`}Au W֖r+9UFMNXo ievdZh_W; %O<̲%qva[=b ?bXH=Zng+>xc7nT +?MLH s]~:rJTK䭦Dz/?u[6qppT9e_L&N9.5<_!2P`aKl}qveo}&w{Etp[P|ǚێcħ3rܲ.ob%$UW8724L> ӈƷ}s %o'%IF=a7DEyiڍ.4]  S<FLS)y~y*F#1n**,:~bWwDЌ(^)hG5@D`|q4rIdӯ1ea6x.W,DO5+:o~ӵ, Kي"cq,tQMrJ#ovHK uwWm78H#(otjG*~4g%3đXE&Zņ{{f%γJ1; +fxѿʭ Ss/ 8z>u~#OW?k=&{xYŗe^2/T %qe4]8>:D3>eU7dTni,a>~Y xJ[NĞ 3M#ach5ʬm}ENM74tpJ1͇R|Ď WQ1qpy>دf^^G-{1&X4cޱx2L/FB D ?;alL_,><ӊ?H|D魄!WѾsd}$S<#kYA(dI$Zdr@|=>u |)`0[Î-@G#虅"=NBgA\g8-d&ZQgGưJ"mGz_Ƽ7.,gi{ |j[v7:vrG[^⺎jPGU3$g9~֭)\:nN zyH =E=eUQjË:)SYAucǚrq )JNcYJmR@+c~'[,'&g'z\_5K'5 ro3bFjqM6L3zԡ ȳɫqU?1Gv7( œ+.&5xJ+4#1Q'-TUS^= xR,ŷʢ=hGƘuKT'WnI(8HW$JƾoG'惈MLdM"e9DIwPͣ9zZЀp|Iu:G'1尴C|4/dNx\3+~gtMtyg>Pngʠ=wnOZ)c1RD6pmܑyD:l6UG MaLtMfw:u'yvP %dϫ؀u"߃5Gu~́c|>ί3SV.tVFbbAFP 44-1<:oQ`?3Lw6ͮ.nLnđ!xFPT)1mfRRGdmL[Fq8nSxM I{=U^ƒ ^^|ě`ćҝ"0E2O&WgBCkU3Z}_NJb0؀}-O% F2ק[ kWhxbW{J0[-EwaY@ kY5R cWCeTx) &z !*dzye\LW3~TFBAjI#b@Ii]•)gR3rqYd8NS FFu: wҸ*F=3鲿|%~Шj\D^[qI}HYd JOS|%/CYNԈ8νؕ-l &O&Ueii;O5{l=/{W G% tMynDlJYm8ZdxLS5 ;G(j_\C[)A#;:p7 ,q 8*17԰,*9+6oRAlՌ/Kwot m Ng5OjF%֛<,N#uv}33˞4^ny>FmU=:0C6wGׯlWD~ɞiG>lD?-9eE,'w5J_Q$Ja?˛ j/\? v7ۄiOw=||HocU>ΌlXZ{fiaKtь.Ed(yton .Ù4%S.!~Pjxǻ̑w9ƒS+d9GQ7ًL= 8Ni$_&@<]5$ZB+b]ԨW*{MK*ѷzbNcϵC=#x]gͻf[*OĦ0IW*a  oJ$%›FÙo8Ê0U:!0-RO"ÊBWQR-ٕmgȃgqnA7 v oVNV4F;ܸ It qow:`[ޅUh +L_R8$YJ;BNX3KqZkntHp~qCㄕ1*(BN$Iw09a:4T`R~zX0r5ܰ8źmL)tMM*]V/GXG7H=r)wH|? J< )6!NtDю? !8>*8𴚨$k4-4\U3tvB8I;%nylfv4]uoV&ża03VCc}\5=<"-lٲNXuÃ~@א) mạ6)iaJʼW<n{lr~QRx)PQEon5.ODh\HU 8 o Ю?t~u'kt0>:И)g攌GnY!鲤ܧBMiJxij7Łi endstream endobj 10 0 obj << /Type /ObjStm /N 100 /First 837 /Length 3876 /Filter /FlateDecode >> stream x\[s9~#Q.mQSB$d00 I`;̯s8ہettNhQ%4V%4\B" 30hKNh#Bk:d}G{ 1BiMBiP(0X;+ ;k ! A ɧ9kPD(Ok hœڪ(9HСv.h+SFx`UTƒ:u-@cI(@eW`v"a "]TTAVBD "Vuwytu&{E:|'ia(.gy،#6:btl*/xUD uTJ  : F!yq"" IW.Hg@HJcQd]P>8 t@q8W*"JfZ!U"(iUD u$$NZg51Hm z$tY`f8N&6`1X΃樊 ΃^.IÇOG#r8UG*'qV} @8?v`֡L$'ÇBgL}= xGu"F]`(ƣq9@=!_ߦc-Z+kaְ$^ʱH<M޸i {m>i4NKqoߺ(BaFtt3qw8!A[g¥>-xB;] /@Xݾ^ wq?ϟ_?/WSqLݿo'SЮ#_Ut'%4,'^.zNtɔ.qP=d51&g0xe?%zh7BVff֮eĖ%~3K:/ ]m8meU3U,P3A?a֭VR3&ֆEkkMmR9JeyP:- ֶֺRY{oqnuo˺k;tkENݙן!iǙ)RKp+}6XSMWuǺ*]yvws} ~C\|{5FX-V0wWVnW4J3wP|-b#S~h b Fܕ3խ.=TLZu*J>9=h!L*ZSz}%rU(_lmVY mk[u03IXh) CVBY6isݸeYjyM`h8)=yoq3dP㊄>a>9s>uwV0CnhN¯8n /wP9@q֜-[-[j6pZ@W m0c_ܲl"*;@`8 6[RQfVBސ$zVDBG7H-в`" ԆB?Ys]p"03ul9J ,V @"Z9f v먵|}E}Fal[ OĜ\bAo@FN:E(’\#2@{7G]@2ePqEو,!rfzdӉB 1*B# ` YҒ6,h:+ (")5xXSԬOnc>kn6m3kYVN# ~{١Ł.әH<_{9qM"TI`JjSt\G"I_s6ƌ6=(G#T!' j =^=d)[! #j;3LAU_Nkd+MDjv.rpXg-y/ʓ2SlK`6 E>/U8OIWAJ;v'Ļ:O ]e. fU4~=mTyTpMj0tOl >sLb},X/&lխQO[em )XJV4yY7x捕ܟSYEaֻY۴L3(ڮ5ۊlTH%0@l@JdaX1*<ڒfp#} [26hxvK~k40jwztN01Oe=x2]!/in 3̝F,TO֤G`ҫe٢HX4ÇOKٖ;3<g ( 7w]MKٽLSٝL Eznrxڝ\Uw oAR3K[@.R}_Ïٔ{c jd~\Mg#Mӓ-/x%]q|gCȞ Ђ9ʿ2ίA]=}FX6ഥbTxTaqpxR9r\NY3fQ!s?5Wqг/_7lӭ8șAEAa74y 侣#4_o3JN0RL 8K JyɣwO(qI,zŝXږޏ>}%22Բ=GR>{qlP~˲&}i5=mVJz~u~a] d?> ݅XxRu'nrJχYpK*zDtJ ų=p嵎wTxcmg!ytGp/RTሦs:3GGOAg^Z ~>sR WZ͊}(өʮ^ϻy^ }r  xU۹<ϔv6('y6<֜lk ˸h\Tٕo{FX} C  eP f%XKβ֏)-޽7?LOpR^t _ |$.~zAViWsOVx(޴jXC~vqQkoJt􅻒EaQ:~ItQz x>Ṳե7;2Ng_Cv>^mn/;.Y.nN/n!_ŇvkWvSkd"lQ~ 3W?]MBY ޶PgeH 'ߢtstTO&N+<*ū$:mNVӫD#SpYq?7t,ٹ;~3#Fz ;!2<3̸F4( endstream endobj 147 0 obj << /Producer (pdfTeX-1.40.19) /Creator (TeX) /CreationDate (D:20240808093639+02'00') /ModDate (D:20240808093639+02'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2018) kpathsea version 6.3.0) >> endobj 145 0 obj << /Type /ObjStm /N 3 /First 20 /Length 123 /Filter /FlateDecode >> stream xڳP0P041Q07Rf@lecåRYZ̥_W`Y  A\ޙ) іf 6ѱ\vv22541Pf-sKsӹ TI0 endstream endobj 148 0 obj << /Type /XRef /Index [0 149] /Size 149 /W [1 3 1] /Root 146 0 R /Info 147 0 R /ID [<01D25FD7F53871EF285136E3715640C0> <01D25FD7F53871EF285136E3715640C0>] /Length 411 /Filter /FlateDecode >> stream x%9LaEPREQPUDA9C tTPQX h$ bcʎʄ{N63dP@6gbH<bQߤ/ ^GE bΗ8"DLjmeDsX"K 6IM$术DS>;-Nɘ%8E1Y 3"QHLf9_sY8O̤Eqx,슳Bs*QI|H:߈QM}V'jA%QO,r^"gh Vw qX5Du6ư)ZD%n6.:DH;.EG&;y'{?zzJۼ2z.1|;u׼d4~ >~ZDT endstream endobj startxref 221415 %%EOF sfst-1.7.0/doc/SFST-Tutorial.tex000066400000000000000000001427341470213725200163630ustar00rootroot00000000000000%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%% File: SFST-Tutorial.tex %%% %%% Author: Helmut Schmid %%% %%% Purpose: %%% %%% Created: Thu Mar 1 14:10:49 2007 %%% %%% Modified: Thu Aug 8 09:36:38 2024 (schmid) %%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \documentclass[11pt]{article} \usepackage[latin1]{inputenc} \usepackage{epsf} \usepackage[round]{natbib} \usepackage[]{graphicx} \addtolength{\oddsidemargin}{-1cm} \addtolength{\textwidth}{2cm} \addtolength{\topmargin}{-1cm} \addtolength{\textheight}{2cm} \parskip=\medskipamount \parindent=0mm \newenvironment{exercise}{ \hrulefill\nopagebreak \textbf{Exercise~}} { \nopagebreak\hrulefill\vspace{0.2cm} } \newenvironment{excursion}{ \hrulefill\nopagebreak \textbf{Excursion~}} { \nopagebreak\hrulefill\vspace{0.2cm} } \title{Developing Computational Morphologies\\Using the SFST Tools} \author{Helmut Schmid\\\\schmid@cis.lmu.de\\ Center for Information and Language Processing\\ Ludwig-Maximilians-Universit{\"a}t\\Munich, Germany} \date{} \begin{document} \maketitle \section{Introduction} This tutorial is intended as a hands-on introduction to the implementation of computational morphologies using the Stuttgart Finite State Transducer (SFST) tools. It assumes some basic knowledge of finite automata and formal languages on the reader's side. Although it is primarily concerned with morphology, it might nevertheless be also relevant for users working in other areas who want to learn how to write SFST programs. The tutorial is organized as follows: Section~\ref{fundamentals} gives a general answer to the question \emph{What is a finite state transducer?} Section~\ref{steps} introduces the most basic concepts and operators of the SFST programming language with simple examples. Section~\ref{morphology} is the largest section. It contains a step-by-step introduction to the implementation of a computational morphology using English as the example language. There is no intention to achieve full coverage of the English morphology, here. Only selected phenomena are picked out as instructive examples and implemented with finite state transducer programs, leaving other similar phenomena as an exercise. Nevertheless, I hope that the tutorial is comprehensive enough for the reader to learn all he/she needs to implement a computational morphology for English or a different language. This tutorial is preferably read in front of a computer so that the reader can immediately test the examples. Of course, the SFST tools have to be installed first. They are available at \texttt{http://www.ims.uni-stuttgart.de/projekte/gramotron/SOFTWARE/SFST.html}. The tutorial contains exercises as well as excursions where aspects of the SFST syntax and the usage of the SFST tools are addressed in more detail. A comprehensive description of the SFST syntax is contained in the SFST manual which is part of the SFST software package. \section{Finite State Transducers\label{fundamentals}} A finite state transducer (FST) is basically a finite state automaton where each transition is labeled with a symbol pair rather than a single symbol. Figure~\ref{fig:transducer} shows an example. Like finite automata, FSTs have a single start state and a set of final states. They can be applied in three different ways: \begin{figure}[htbp] \centerline{\includegraphics[width=7cm]{transducer}} \caption{Example transducer in graphical notation with a black start state and a grey end state} \label{fig:transducer} \end{figure} Analogously to a finite automaton, a FST \emph{accepts} a sequence s of symbol pairs (instead of symbols) if there is a path from the start state to some final state where the sequence of symbol pairs on the transitions is identical to s. The transducer shown in figure~\ref{fig:transducer}, for instance, accepts the two sequences \texttt{m:m o:o u:u s:s e:e} and \texttt{m:m o:i u: s:c e:e}. The second symbol of the symbol pair \texttt{u:} is the \emph{empty} symbol. FSTs are mainly used to map strings to other strings. A typical example is morphological analysis where an inflected word form is analyzed and the base form is returned with additional morphosyntactic information. The transducer in figure~\ref{fig:transducer} \emph{analyzes} the strings \texttt{mouse} and \texttt{mice} and returns the string \texttt{mouse} in both cases. In general, a FST maps a string s to a string t (in \emph{analysis} mode) if there is a path from the start state to some end state where the right-hand side symbols on the transitions are identical to s and the left-hand side symbols are identical to t. The mapping is reversible: In \emph{generation} mode, a transducer maps a string s to a string t if the left-hand side symbols on the transitions of some path from the start state to an end state are identical to s and the corresponding right-hand side symbols are identical to t. The transducer shown in figure~\ref{fig:transducer} generates the strings \texttt{mouse} and \texttt{mice} for the input string \texttt{mouse}. It is often helpful to think of a transducer as a (possibly infinite) set of aligned string pairs such as \texttt{m:m o:i u: s:c e:e}, which is formed by the set of symbol pair sequences that the transducer accepts. The disjunction (operator $|$) of two transducers is then equivalent to the union of the two sets of aligned string pairs; the conjunction (operator \&) is equivalent to the conjunction of the two sets, and the subtraction (operator --) of two transducers is equivalent to the set of string pairs appearing in the first set, but not in the second. The concatenation of two transducers includes any string pair $s=s_1s_2$ where $s_1$ is in the first set and $s_2$ is in the second set of string pairs. \section{First Steps\label{steps}} The SFST tools provide a programming language for the implementation of finite state transducers which is based on extended regular expressions. The basic concepts and operators of this language will be introduced in this section. More advanced operators will follow in section~\ref{morphology}. \subsection{Simple Regular Expressions} SFST programs are essentially (extended) regular expressions. The expression \begin{verbatim} Hello \end{verbatim} for instance, defines a transducer which accepts the string \emph{Hello} and returns the same string as the analysis. \begin{exercise} Store this expression in a file called \emph{foo.fst} and compile it with the command: \begin{verbatim} > fst-compiler foo.fst foo.a \end{verbatim} Start the analyzer program: \begin{verbatim} > fst-mor foo.a analyze> Hello Hello analyze> Hi no result for Hi \end{verbatim} In the same way, you can test the transducers presented in the following paragraphs. \end{exercise} The following transducer analyzes several strings, namely the strings ``John'', ``Mary'', and ``James'': \begin{verbatim} John | Mary | James \end{verbatim} This transducer expression uses the ``or'' operator ($|$) to build the disjunction of the three basic expressions. Blank and tab characters are ignored in SFST programs unless they are quoted by a preceding backslash. The next transducer shows the quotation of the blank symbol and the symbol ``!'' which is otherwise interpreted as an operator. The transducer accepts the string ``Hello world!''. \begin{verbatim} Hello\ world\! \end{verbatim} SFST supports many of the regular expression operators known from Unix tools such as \emph{egrep} or \emph{Perl}. Among them are the optionality operator ``?'' (for 0 or 1 repetition), the Kleene operators ``*'' (for 0 or more repetitions) and ``+'' (for 1 or more repetitions), and the square bracket notation for character ranges (including the negation operator \verb#^#). The following expression uses these operators. It defines a transducer which accepts numbers including fractional numbers with an optional sign. \begin{verbatim} [+\-]? [0-9]* (\. [0-9]+)? \end{verbatim} \subsection{The Colon Operator} So far, the transducers simply returned the input string as the ``analysis''. We will now see how transducers are implemented which map strings to other strings. The colon operator (:) is used to indicate the target symbol to which a single symbol is to be mapped. The transducer \verb#a:b#, for instance, returns an ``a'' in analysis mode if a single ``b'' is entered. In generation mode, it is the other way around and the ``a'' is mapped to a ``b''. \underline{Attention:} In the Xerox finite state tools, the direction of the colon operator is opposite: The Xerox transducer \verb#a:b# would analyze ``a'' as ``b''. The expression below defines a transducer which maps strings consisting of lower-case and upper-case characters to the corresponding string of upper-case characters: \begin{verbatim} [A-ZA-Z]:[A-Za-z]* \end{verbatim} The expression \verb#[A-ZA-Z]:[A-Za-z]# is equivalent to the disjunction\\ \verb#A:A | B:B | ... | Z:Z | A:a | B:b | ... | Z:z#. With a similar expression, we can implement a simple word encryptor which replaces each character of the input string by the next character in the alphabet: \begin{verbatim} [b-zaB-ZA]:[a-zA-Z]* \end{verbatim} Now assume we want to map each character to the next but one character in the alphabet. We could do that by applying the above transducer twice, mapping the string \emph{cat} first to \emph{dbu} and then to \emph{ecv}. This is exactly what the following transducer does: \begin{verbatim} [b-za]:[a-z]* || [b-za]:[a-z]* \end{verbatim} The \emph{composition} operator ``$||$'' applies its left and right argument transducers in sequence to the input. The transducer eventually generated by the compiler performs the mapping in one step. Thus ``a'' is directly mapped to ``c''. You can see that when you print the compiled transducer with the command \verb#fst-print foo.a# \begin{verbatim} final: 0 0 c:a 0 0 h:f 0 0 q:o 0 0 f:d 0 ... \end{verbatim} The output of the \emph{fst-print} command shows the list of state transitions with the source state, the symbol pair and the target state of each transition. The order in which the transitions are printed is random and could be different from the one shown above. \section{Developing a Morphology\label{morphology}} A computational morphology analyzes an inflected word form such as ``houses'' and usually returns (i) the base form (lemma) ``house'', (ii) the part of speech ``Noun'' and (iii) additional features such as the number ``plural''. The lemmatization of the word \emph{cats} to \emph{cat} is accomplished by the transducer: \begin{verbatim} cat<>:s \end{verbatim} The operator ':' is here used to map the final symbol ``s'' to the \emph{empty symbol} which is represented by ``\verb#<>#''. The above expression is an abbreviation of the expression\footnote{Similarly, our first transducer expression \texttt{Hello} was an abbreviation of \texttt{H:He:el:ll:lo:o}.}: \begin{verbatim} c:c a:a t:t <>:s \end{verbatim} The symbol on the left-hand side of a colon belongs to the analysis string, the symbol on the right-hand side to the surface string. In order to add information about the part of speech and the number feature to the analysis string, the transducer should be modified as follows: \begin{verbatim} cat :<> :s \end{verbatim} \verb#<#Noun\verb#># and \verb#<#plural\verb#># are \emph{multi-character symbols} which are treated like a single character. The above transducer analyzes the string \emph{cats} by (i) mapping the characters ``c'', ``a'', and ``t'' to themselves, (ii) inserting the multi-character symbol \verb#<#Noun\verb#>#, and (iii) mapping ``s'' to the symbol \verb#<#plural\verb#>#. \begin{exercise} Store the above expression in the file \emph{morph.fst}, compile it and start \emph{fst-mor}. Analyze the string \emph{cats}. Enter an empty line in order to switch to generation mode and generate the inflected word form for the string ``cat\verb#<#Noun\verb#>#\verb#<#plural\verb#>#''. \begin{verbatim} analyze> cats cat analyze> generate> cat cats \end{verbatim} \end{exercise} The next transducer produces exactly the same mapping as the previous transducer. Nevertheless the two transducers are different because the alignment of surface and analysis symbols is different. \begin{verbatim} cat :s :<> \end{verbatim} We are know ready to implement a simple computational morphology for English as shown below. \begin{verbatim} a:<>:<> |\ a\.m\.:<> |\ ... zymurgy:i<>:e<>:s:<>:<> |\ zymurgy:<>:<> \end{verbatim} The periods have to be quoted because they have a special meaning in SFST. The backslash at the end of the line tells the compiler that the expression continues in the following line. The compilation of this transducer is rather slow. A more efficient implementation of the same transducer is obtained by storing most of the relevant information in a separate \emph{lexicon} file which is processed much faster than regular SFST code because lexicon files use a restricted syntax: the only operators available are the colon and the backquote. Any other operator symbol and also the blank and tab characters are interpreted literally. Multi-character symbols such as \verb## are recognized and treated as a single symbol. The lexicon file for our simple English full-form morphology has the following content: \begin{verbatim} a:<>:<> a.m.:<> ... zymurgy:i<>:e<>:s:<>:<> zymurgy:<>:<> \end{verbatim} When the compiler reads the lexicon file, it converts each line into a transducer and combines the transducers with an ``or'' operation. This is the reason why the $|\backslash$ at the end of the line is missing. The main program of the transducer looks as follows: \begin{verbatim} "morph.lex" \end{verbatim} This command reads the lexicon file and returns the resulting transducer.\footnote{This example will only work with SFST version 1.3 or higher. Previous versions treated the multi-character symbols in the lexicon file literally as a sequence of characters because they were not seen before in the main program.} \begin{exercise} Store the above line in the file \emph{morph.fst} and create a file \emph{morph.lex} with lexicon entries. Compile \emph{morph.fst} and try to analyze different word forms using \emph{fst-mor}. \end{exercise} \textbf{Caveat:} The file names should only contain ASCII characters! Adding all the \verb#:<># character sequences in the lexicon file is cumbersome and makes the lexicon file less readable. We will later see how they can be inserted automatically. \subsection{The Period as a Wildcard Symbol} The period is a wildcard symbol which stands for any available symbol pair. The set of \emph{available} symbol pairs is listed in the \emph{alphabet}. The alphabet is defined by a command of the form \verb#ALPHABET = ...expression...# and changes whenever this command is used. The compiler computes the actual value of the alphabet by first compiling \emph{...expression...} to a transducer and then extracting all symbol pairs occurring on transitions of the resulting transducer. All of the following commands define the alphabet as the set \{a:a,b:b,c:b\}: \begin{verbatim} ALPHABET = a b c:b ALPHABET = a | b | c:b ALPHABET = [a-c]:[ab] \end{verbatim} The expression \verb#[a-c]:[ab]# is first expanded to \verb#[abc]:[ab]# and then to \verb#a:a|b:b|c:b#. The next transducer program replaces lower-case characters with upper-case characters. \begin{verbatim} ALPHABET = [A-Z] [A-Z]:[a-z] .* \end{verbatim} The alphabet is here defined as the set \{A:A, B:B, ..., Z:Z, A:a, B:b, ..., Z:z\}. The wildcard symbol ``.'' is replaced by the disjunction of all these character pairs. The resulting transducer is equivalent to the transducer \verb#[A-ZA-Z]:[A-Za-z]*# seen earlier. We are now ready to define a new version of our morphology which deletes the part-of-speech and feature symbols in the surface string of the transducer. \begin{verbatim} ALPHABET = [a-zA-Z\.] []:<> "morph.lex" || .* \end{verbatim} The corresponding lexicon file looks as follows: \begin{verbatim} a a.m. ... zymurgy:i<>:e<>:s zymurgy \end{verbatim} \subsection{Inflection Classes} In order to avoid an explicit enumeration of all the possible inflected word forms for a given lemma (such as \emph{walk}, \emph{walks}, \emph{walked}, \emph{walking} for the verb \emph{to walk}), we can put all lemmas belonging to the same inflection class into a separate lexicon file and add the different inflectional endings in the main program. The lexicon file \emph{verb-reg.lex} for regular verbs might contain the following entries: \begin{verbatim} walk gain mention \end{verbatim} These verbs are inflected by adding either \emph{s}, \emph{ed}, \emph{ing}, or nothing. The following transducer program reads the lexicon and adds the endings. \begin{verbatim} "verb-reg.lex" :<> (\ {<3s>}:{s} |\ {}:{ed} |\ {}:{ed} |\ {}:{ing} |\ {}:{} |\ {}:{}) \end{verbatim} The expression \verb#{}:{ed}# is equivalent to \verb#:e<>:d#. The symbols from the two symbol sequences which are enclosed in curly brackets are pairwise combined, adding empty symbols at the end as needed. The parentheses are needed to indicate that \verb#:<># is concatenated with the disjunction of all endings and not just with \verb#{<3s>}:{s}#. Similarly, we create a lexicon file \emph{noun-reg.lex} for nouns with regular nominal inflection: \begin{verbatim} cat house door \end{verbatim} and extend the transducer program. The transducer is now so complex, that it is better to build it in several steps, using the variables \verb#$verb-reg-infl$# and \verb#$noun-reg-infl$# to store intermediate transducers: \begin{verbatim} $verb-reg-infl$ = :<> (\ {<3s>}:{s} |\ {}:{ed} |\ {}:{ed} |\ {}:{ing} |\ {}:{} |\ {}:{}) $noun-reg-infl$ = :<> (\ {}:{} |\ {}:{s}) "verb-reg.lex" $verb-reg-infl$ |\ "noun-reg.lex" $noun-reg-infl$ \end{verbatim} \begin{exercise} Extend the above program with adjectival inflection. The transducer should be able to analyze the word forms \emph{quick/quicker/quickest}. \end{exercise} \begin{excursion} When a transducer program fails to produce the correct results, the following debugging strategies might be helpful: Store intermediate transducers \texttt{\$T\$} in a file using commands such as \verb#$T$ >> "file.a"# within the SFST program. Call \texttt{fst-generate file.a} in the shell to generate mappings from analysis strings to surface strings allowed by the intermediate transducer. Check whether the results are as expected. If the compilation of the transducer takes a long time because the lexicon is very large, replace the lexicon with a smaller one containing only entries which are relevant for debugging. \end{excursion} \subsection{Negation} SFST has two different complement (or negation) operators. The expression \verb#[^b]# represents the set of all symbols without ``b''. \emph{All symbols} means \emph{all symbols used in the program up to this point}. Therefore, the transducer \verb#a:[^b]# maps (in generation mode) the character ``a'' to any symbol encountered before except ``b''. ``!'' is the negation operator for transducers. \verb#!$T$# is equivalent to \verb#.* - $T$# which is the set of all mappings allowed by the alphabet (\verb#.*#) minus the set of mappings performed by the transducer which is stored in \verb#$T$#. Note that \verb#!a:b# is very different from \verb#a:[^b]#. \subsection{Orthographic and Phonological Rules} We can treat verbs such as \emph{to paste} as regular verbs if we add a rule \emph{delete-e} which deletes the final ``e'' when a vowel follows. The deletion rule is implemented with the two-level-rule operation \verb#e<=><> (:<> [ei])# which replaces ``e'' by the empty symbol if and only if the symbol \verb## and an ``e'' or an ``i'' follows. \begin{verbatim} $verb-reg-infl$ = ({<3s>}:{s} | {}:{ed} |\ {}:{ed} |{}:{ing} | {}:{} | {}:{}) $noun-reg-infl$ = ({}:{} | {}:{s}) $morph$ = "verb-reg.lex" $verb-reg-infl$ | "noun-reg.lex" $noun-reg-infl$ ALPHABET = [A-Za-z] []:<> e:<> $delete-e$ = e <=> <> (:<> [ei]) $morph$ || $delete-e$ \end{verbatim} In contrast to the previous version, the \verb## symbol is not immediately deleted at the surface level when the inflection transducer \verb#$verb-reg-infl$# is created. Instead it is preserved here to indicate the position where the deletion rule is to be applied. Without this marker, the rule would also delete an ``e'' in verbs such as \emph{to feel} or \emph{to unveil}. The deletion rule is applied by composing the morphology transducer stored in \verb#$morph$# with the rule transducer stored in \verb#$delete-e$#: \begin{exercise} Add the lemma \emph{paste} to the lexicon file \emph{verb-reg.lex}, compile the above transducer, and use it to analyze and generate word forms. Extend the program such that the word forms \emph{later} and \emph{latest} are correctly analyzed. \end{exercise} Two-level rules have to be preceded by the definition of an alphabet which comprises all symbol pairs that will appear in the two-level-rule transducer. The proper definition of the alphabet is very important. Omissions (or insertions) often have severe consequences. The above alphabet specifies that the \verb## symbol is to be deleted. Therefore, we have to write \verb#:<># rather than \verb## in the context part of the rule. Otherwise, the rule would never match because a two-level rule specifies both, the analysis and the surface layer of the rule context. \begin{excursion} The compiler translates two-level rules to complex transducer expressions. The rule \verb#L a<=>b R# (where L and R are some transducer expressions) is first replaced by a conjunction of two more basic rules: \verb#L a<=b R & L a=>b R#. The rule \verb#L a<=b R# means: \emph{Whenever ``a'' appears between ``L'' and ``R'', it has to be mapped to ``b''.} (This rule still allows ``a'' to be mapped to ``b'' in other contexts.) The rule \verb#L a=>b R# means: \emph{The mapping of ``a'' to ``b'' is only allowed if ``L'' precedes and ``R'' follows.} (It also allows that ``a'' is mapped to something else in the given context.) The rule \verb#L a<=b R# is equivalent to the expression \verb#!(.*L (a:. & !a:b) R.*)#. The sub-expression \verb#a:. & !a:b# represents the set of all mappings of ``a'' allowed by the alphabet except for the mapping ``a:b''\footnote{Note that the expression \texttt{a:. \& !a:b} is not equivalent to \texttt{a:[$\hat{~}$b]} because the latter expression includes symbol pairs which are not part of the alphabet.}. The expression\verb#.*L (a:. & !a:b) R.*# comprises all mappings of strings allowed by the alphabet that include an illicit mapping of ``a'' to a symbol other than ``b'' in the context \verb#L...R#. Its negation \verb#!(.*L (a:. & !a:b) R.*)# includes all string mappings without such an illicit substring mapping. The rule \verb#L a=>b R# is replaced by the expression \verb#!(!(.*L) a:b .* | .* a:b !(R.*))#. The sub-expression \verb#!(.*L) a:b .*# includes all string mappings where the mapping a:b occurs with a wrong left context. \verb#.* a:b !(R.*)# includes all mappings where the mapping a:b occurs with an incorrect right context. \verb#!(!(.*L) a:b .* | .* a:b !(R.*))#. \verb#!(.*L) a:b .*# therefore includes the set of string mappings allowed by the alphabet where the mapping a:b neither occurs with the wrong left context nor with the wrong right context. In other words, a:b only occurs with the correct left and right context. ``L'' and ``R'' are any transducer expressions. They should always be enclosed in parentheses in order to avoid problems with operator precedence. \end{excursion} We can write a rule which is similar to the \emph{delete-e} rule to replace ``y'' with ``i'' if ``e'' follows. This rule correctly maps the string \emph{applyed} to \emph{applied} (in generation mode). \begin{verbatim} $verb-reg-infl$ = ({<3s>}:{s} | {}:{ed} |\ {}:{ed} | {}:{ing} | {}:{} | {}:{}) $noun-reg-infl$ = ({}:{} | {}:{s}) $morph$ = "verb-reg.lex" $verb-reg-infl$ | "noun-reg.lex" $noun-reg-infl$ ALPHABET = [A-Za-z] [ e]:<> y:i $delete-e$ = e <=> <> (:<> [ei]) $y-to-i$ = y <=> i (:<> e) $morph$ || ($delete-e$ & $y-to-i$) \end{verbatim} The above transducer combines the two-level rules with a conjunction operation (\&). \begin{excursion} The conjunction (or intersection) of two transducers T1 and T2 maps a string ``s'' to a string ``t'' iff both T1 and T2 map ``s'' to ``t'' \emph{via the same alignment} of surface and analysis symbols. The last point is important. Although both of the following transducers produce the analysis \emph{cat$\langle$N$\rangle$$\langle$pl$\rangle$} for the string \emph{cats}, their conjunction is nevertheless empty: \begin{verbatim} $T1$ = cat<>:s:<>:<> $T2$ = cat:s:<> $T1$ & $T2$ \end{verbatim} \end{excursion} The combination of orthographic rules by conjunction often leads to unexpected interactions between the rules which are difficult to foresee, increase rapidly with the number of rules, and complicate the development process. Therefore it is usually better to combine two-level rules with composition (i.e.\ to apply them in sequence rather than in parallel). The following transducer composes the two-level rules and is otherwise equivalent to the previous transducer. The part-of-speech labels are deleted in a separate step. Note that the two rules now require different alphabet definitions. \begin{verbatim} $verb-reg-infl$ = ({<3s>}:{s} | {}:{ed} |\ {}:{ed} | {}:{ing} | {}:{} | {}:{}) $noun-reg-infl$ = ({}:{} | {}:{s}) $morph$ = "verb-reg.lex" $verb-reg-infl$ | "noun-reg.lex" $noun-reg-infl$ ALPHABET = [A-Za-z] e:<> $delete-e$ = e <=> <> ( [ei]) ALPHABET = [A-Za-z] y:i $y-to-i$ = y <=> i ( e) ALPHABET = [A-Za-z] []:<> $delete-POS$ = .* $morph$ || $delete-e$ || $y-to-i$ || $delete-POS$ \end{verbatim} This transducer still fails to produce the word form \emph{applies}. In order to generate it, we need to substitute ``y'' with ``ie''. A two-level rule can only substitute a single symbol with zero or one, but not with two symbols. Thus a more powerful \emph{string replacement operation} (shown in the next example) has to be used instead. \begin{verbatim} ... ALPHABET = [A-Za-z] $y-to-ie$ = {y}:{ie} ^-> (__ [] s) $morph$ || $delete-e$ || $y-to-i$ || $y-to-ie$ || $delete-POS$ \end{verbatim} The expression \verb#{y}:{ie} ^-> (__ [] s)# defines a transducer which maps the string ``y'' to the string ``ie'' iff it is followed by either \verb## or \verb## and an ``s''. Any other symbol than a ``y'' in this particular context is mapped according to the alphabet, i.e.\ mapped to itself. This rule will also produce the plural noun form \emph{hobbies} if we add the lemma \emph{hobby} to the lexicon file \emph{noun-reg.lex}. There are two important differences between the two-level rules and the replace rule: The context of the two-level rules specifies the symbols on the analysis level as well as on the surface level, whereas the replace operation only specifies the symbols on the analysis level. The other difference between the two types of rules concerns the definition of the alphabet. The two-level rule \verb#y <=> i ( e)# requires that the symbol pair y:i is added to the alphabet. The alphabet for the rule \verb#{y}:{ie} ^-> (__ [] s)#, on the other hand, only contains the symbol pairs appearing outside of the replaced substring(s). \begin{excursion} Replace operations have the general form \verb# T ^-> (L__R)#, where T is a transducer expression and L and R are automata, i.e.\ transducers which map strings only to themselves. A replace operation performs the following mapping: If T maps some string ``s'' to a string ``t'', then the replace transducer substitutes any substring ``s'' of the input string with ``t'' (in generation mode) if and only if it appears with the left context L and right context R. Any other substring is mapped according to the alphabet. The replace operator \verb#^-># matches the contexts L and R with the symbols on the analysis level. There are three other, less frequently used variants of the replace operator, namely (1) \verb#_->#, (2) \verb#/->#, and (3) \verb#\-># which match (1) the left and right contexts with the \emph{surface} symbols, (2) the left context with the surface symbols and the right context with the analysis symbols, and (3) the left context with the analysis symbols and the right context with the surface symbols. \end{excursion} Another orthographic rule is needed to duplicate the final consonant in the comparative and superlative forms of adjectives such as \emph{big}, \emph{red}, \emph{thin}, or \emph{flat}. The following partial program shows one possible implementation of such a rule. It includes comments which start with the character ``\%'' and extend up to the end of the line. \begin{verbatim} $verb-reg-infl$ = ({<3s>}:{s} | {}:{ed} | {}:{ed} |\ {}:{ing} | {}:{} | {}:{}) $noun-reg-infl$ = ({}:{} | {}:{s}) $adj-reg-infl$ = \ ({}:{} | {}:{er} | {}:{est}) $morph$ = "verb-reg.lex" $verb-reg-infl$ |\ "noun-reg.lex" $noun-reg-infl$ | "adj-reg.lex" $adj-reg-infl$ ALPHABET = [A-Za-z] e:<> $delete-e$ = e <=> <> ( [ei]) ALPHABET = [A-Za-z] y:i % also covers happy -> happily $y-to-i$ = y <=> i ([] [el]) ALPHABET = [A-Za-z] $y-to-ie$ = {y}:{ie} ^-> (__ [] s) ALPHABET = [A-Za-z] []:<> $delete-POS$ = .* % consonants $c$ = [bcdfghjklmnprstvwxz] % vowels $v$ = [aeiou] % duplication of the consonant $T$ = b<>:b | d<>:d | g<>:g | l<>:l | m<>:m | n<>:n | p<>:p | t<>:t ALPHABET = [A-Za-z] % the complete duplication rule $duplicate$ = $T$ ^-> ($c$$v$ __ e(r|st)) $R$ = $delete-e$ || $y-to-i$ || $y-to-ie$ || $duplicate$ || $delete-POS$ $morph$ || $R$ \end{verbatim} \begin{exercise} Add morpho-phonological rules for other phenomena such as the e-insertion in the plural forms of nouns ending with ``s'' or ``x''. \end{exercise} \subsection{Agreement Variables} Agreement variables are special \emph{synchronized} variables whose name starts with the symbol ``=''. All appearances of agreement variables in a regular expression are guaranteed to have identical values. The following program, for instance, defines a transducer which recognizes the strings \emph{bib}, \emph{did}, and \emph{gig} and nothing else. \begin{verbatim} $=1$ = [bdg] $=1$ i $=1$ \end{verbatim} The following transducer expression shows how agreement variables can \begin{verbatim} #=C# = bdglmnpt $T$ = {[#=C#]}:{[#=C#][#=C#]} \end{verbatim} be used to implement the duplication operation \verb#$T$ = b<>:b | d<>:d |...# which was previously used to generate word forms such as \emph{bigger}. We need a new type of variables here whose value is a set of symbols rather than a transducer. Such symbol set variables have to be enclosed with hash symbols. If the name begins with ``='', the variable is in addition an agreement variable. \subsection{Compounding} So far, we have only dealt with inflection. Another important morphological process is \emph{compounding}. It creates words such as \emph{whiteboard}, \emph{sunlight}, or \emph{workday} by concatenating two stems. Only the second stem is inflected. The following transducer will analyze these forms (if the missing stems are added to the respective lexicon files). \begin{verbatim} $noun-reg-infl$ = :<> ({}:{} | {}:{s}) $noun-reg$ = \ ("noun-reg.lex" | "verb-reg.lex" | "adj-reg.lex")? "noun-reg.lex" $noun-reg$ $noun-reg-infl$ \end{verbatim} \subsection{Derivation} Derivation is a third morphological process which generates new word forms by modifying a given stem usually with affixation. From the stem \emph{reach}, we can derive the word \emph{reachable} by adding the suffix \emph{able}. Further adding the prefix \emph{un}, we obtain \emph{unreachable}, and with the suffix \emph{ity}, we finally get \emph{unreachability}. The first two derivation steps are purely concatenative, whereas the third step requires the mapping of \emph{able} to \emph{abil}. The following transducer will correctly analyze the words \emph{reachable} and \emph{unreachable} if the stem \emph{reach} is added to the verb lexicon. \begin{verbatim} ... % lexicon entries are read from the lexicon files $verb-reg$ = "verb-reg.lex" $noun-reg$ = "noun-reg.lex" $adj-reg$ = "adj-reg.lex" % derivation of adjectives from verbs $adj-reg$ = $adj-reg$ | $verb-reg$ able % prefixation of adjectives $adj-reg$ = (un)? $adj-reg$ $morph$ = $noun-reg$ $noun-reg-infl$ |\ $verb-reg$ $verb-reg-infl$ |\ $adj-reg$ $adj-reg-infl$ $morph$ || $delete-e$ || $y-to-i$ || $y-to-ie$ || $duplicate$ || $delete-POS$ \end{verbatim} This SFST program will generate the incorrect form \emph{translateable} instead of \emph{translatable}. The verb-final ``e'' should be eliminated. We already have a rule which deletes ``e'' if the symbol \verb## and either ``e'' or ``i'' follows. We must add the vowel ``a'' to this list. Furthermore, we have to make sure that the symbol \verb## appears between \emph{translate} and \emph{able}, because the rule is not applicable, otherwise. To this end, we reorganize the program. The part-of-speech markers are added at a different location. As a side-effect, we get slightly different compound analyzes: The word \emph{whiteboards} will now be analyzed as \verb#whiteboards#. We also define variables for frequently used symbol sets which are then used throughout the program. This modification makes it easier to add new characters like {\'e} or {\~n}, or new part of speech symbols because it suffices to add them to the respective symbol set. \begin{verbatim} #cons# = bcdfghjklmnprstvwxz #vowel# = aeiou #letter# = a-z #LETTER# = A-Z #Letter# = #LETTER# #letter# #pos# = #sym# = #Letter# #pos# $verb-reg-infl$ = (\ {<3s>}:{s} |\ {}:{ed} |\ {}:{ed} |\ {}:{ing} |\ {}:{} |\ {}:{}) $noun-reg-infl$ = (\ {}:{} |\ {}:{s}) $adj-reg-infl$ = (\ {}:{} |\ {}:{er} |\ {}:{est}) % lexicon entries are read from the lexicon files $verb-reg$ = "verb-reg.lex" $noun-reg$ = "noun-reg.lex" $adj-reg$ = "adj-reg.lex" % noun compounds $noun-reg$ = ($noun-reg$ | $verb-reg$ | $adj-reg$)? $noun-reg$ % derivation of adjectives from verbs $adj-reg$ = $adj-reg$ | $verb-reg$ able % prefixation of adjectives $adj-reg$ = (un)? $adj-reg$ $morph$ = $noun-reg$ $noun-reg-infl$ |\ $verb-reg$ $verb-reg-infl$ |\ $adj-reg$ $adj-reg-infl$ ALPHABET = [#sym#] e:<> $delete-e$ = e <=> <> ( [aei]) ALPHABET = [#sym#] y:i $y-to-i$ = y <=> i ([] [el]) ALPHABET = [#sym#] $y-to-ie$ = {y}:{ie} ^-> (__ [] s) #=D# = bdglmnpt $T$ = {[#=D#]}:{[#=D#][#=D#]} ALPHABET = [#sym#] $duplicate$ = $T$ ^-> ([#cons#][#vowel#] __ e(r|st)) ALPHABET = [#Letter#] [#pos#]:<> $delete-POS$ = .* $R$ = $delete-e$ || $y-to-i$ || $y-to-ie$ || $duplicate$ || $delete-POS$ $morph$ || $R$ \end{verbatim} \begin{exercise} Extend the morphology with a rule for the derivation of adverbs (\emph{quickly}) from adjectives (\emph{quick}). \end{exercise} \subsection{Irregular Inflection} Thus far, the morphology covers regular inflection such as \emph{edit/edited/editing}, or \emph{paste/pasting/pasted}, but not irregular inflection such as \emph{throw/threw/thrown} or \emph{admit/admitting/admitted}. The inflection of the verb \emph{admit} can be handled with rules if stress information is encoded in the lexicon\footnote{The consonant has to be reduplicated if the last syllable is stressed.}. If not, a separate inflection class has to be defined, instead. The following fragment shows how to do it. \begin{verbatim} ... #pos# = #trigger# = #mcs# = #pos# #trigger# #sym# = #Letter# #mcs# ... $verb-dup-infl$ = (\ {<3s>}:{s} |\ {}:{ed} |\ {}:{ed} |\ {}:{ing} |\ {}:{} |\ {}:{}) ... $verb-dup$ = "verb-dup.lex" ... ALPHABET = [#sym#] $duplicate$ = $T$ ^-> ([#cons#][#vowel#] __ ( e(r|st) | )) ALPHABET = [#Letter#] [#mcs#]:<> $delete-POS$ = .* ... \end{verbatim} The inflection rules for the new verb class \emph{verb-dup} insert the symbol \texttt{} in the gerund, past tense, and past participle forms. This symbol triggers the application of the modified \texttt{duplicate} rule. It is later deleted by the \texttt{delete-pos} rule and doesn't appear in the result transducer. The insertion of trigger symbols is a frequently used trick in finite-state morphology. If some verb forms are completely irregular such as \emph{sit/sat/sat}, it is often easier to add special lexical entries for the irregular forms than to implement complex morpho-phonological rules. We could define two new inflection classes: a class \texttt{verb-pres-ger2} which derives \emph{sit/sits/sitting} from the lexicon entry \emph{sit} and another class \texttt{verb-past-part} with the entry \texttt{si:at} for the past tense and past participle forms. \begin{verbatim} ... $verb-pres-ger2-infl$ = (\ {<3s>}:{s} |\ {}:{ing} |\ {}:{} |\ {}:{}) $verb-past-part-infl$ = (\ {}:{} |\ {}:{}) ... $verb-pres-ger2$ = "verb-pres-ger2.lex" $verb-past-part$ = "verb-past-part.lex" ... $morph$ = ... $verb-pres-ger2$ $verb-pres-ger2-infl$ |\ $verb-past-part$ $verb-past-part-infl$ |\ ... \end{verbatim} \begin{exercise} Extend the morphology with two new inflection classes, one to generate the forms \emph{throw/throws/throwing/thrown}, \emph{see/sees/seeing/seen}, and \emph{fall/falls/falling/fallen} and another class for the past tense forms \emph{threw}, \emph{saw}, and \emph{fell}. You have to add a morpho-phonological rule to insert the ``e'' in \emph{fallen}. Note that you cannot use two-level rules and replace rules to replace the empty symbol with ``e''. Use a rule replacing \texttt{n} with \texttt{en}, instead. \end{exercise} \subsection{A Single Lexicon} Having a separate lexicon file for each inflection class is not ideal. A single lexicon file is easier to maintain. Therefore we merge all the sublexica and add a multi-character symbol to each entry which specifies the inflection class. The new lexicon \texttt{morph.lex} looks as follows: \begin{verbatim} board ... big ... apply ... admit ... sit ... si:at \end{verbatim} Now, the transducer program has to be modified. We split it into several smaller sections. The main file \texttt{morph.fst} includes the auxiliary file \texttt{symbols.fst} via the command \verb@#include "symbols.fst"@ which literally inserts the contents of \texttt{symbols.fst} at the current position. The other new files, \texttt{inflection.fst} and \texttt{phon.fst}, are separately compiled. The main file includes the compiled binary transducers with the expressions \verb#""# and \verb#""#. The separate compilation of different parts of the transducer program speeds up the whole compilation process if the recompilation of transducers whose source files are unchanged is avoided. The file \texttt{symbols.fst} contains the definitions of the symbol set variables. Corresponding transducer variables are also added. The new variable \texttt{\#infl\#} comprises the set of inflection class labels. The inflectional endings for each inflection class are defined in \texttt{inflection.fst}. The endings now include inflectional class labels such as \texttt{V-reg}. All endings are merged into a single transducer which is stored in the result file \texttt{inflection.a}. The main program \texttt{morph.fst} reads the lexicon from \texttt{morph.lex} and composes the resulting transducer with the expression \verb@$Letter$* <>:[#infl#]@ in order to delete the inflection class labels in the analysis layer. The next line concatenates the lexicon transducer and the pre-compiled inflection transducer which is read from \texttt{inflection.a}. The result includes many incorrect combinations of stems and endings such as \texttt{clean<>:<>::<>}. These will be eliminated by the inflection filter which is defined next. The filter transducer maps a sequence of letters followed by two identical inflectional class labels and arbitrary other symbols to a new string where the class labels have been deleted. The composition of the filter transducer with the previous transducer returns a new transducer containing only the correct combinations of stems and endings. The other combinations are rejected by the filter transducer. The last command composes the morphology transducer with the morpho-phonological rules and returns the result transducer. \begin{verbatim} %%%%%%%%%%%%%%% symbols.fst %%%%%%%%%%%%%%%% #cons# = bcdfghjklmnprstvwxz #vowel# = aeiou #letter# = a-z #LETTER# = A-Z #Letter# = #LETTER# #letter# #pos# = #infl# = #trigger# = #mcs# = #pos# #trigger# #sym# = #Letter# #mcs# #infl# $cons$ = [#cons#] $vowel$ = [#vowel#] $letter$ = [#letter#] $LETTER$ = [#LETTER#] $Letter$ = [#Letter#] $pos$ = [#pos#] $infl$ = [#infl#] $trigger$ = [#trigger#] $mcs$ = [#mcs#] $sym$ = [#sym#] %%%%%%%%%%%%%% inflection.fst %%%%%%%%%%%%%% $noun-reg-infl$ = <>: (\ {}:{} |\ {}:{s}) $adj-reg-infl$ = <>: (\ {}:{} |\ {}:{er} |\ {}:{est}) $verb-reg-infl$ = <>: (\ {<3s>}:{s} |\ {}:{ed} |\ {}:{ed} |\ {}:{ing} |\ {}:{} |\ {}:{}) $verb-dup-infl$ = <>: (\ {<3s>}:{s} |\ {}:{ed} |\ {}:{ed} |\ {}:{ing} |\ {}:{} |\ {}:{}) $verb-pres-ger2-infl$ = <>: (\ {<3s>}:{s} |\ {}:{ing} |\ {}:{} |\ {}:{}) $verb-past-part-infl$ = <>: (\ {}:{} |\ {}:{}) $noun-reg-infl$ | $adj-reg-infl$ | $verb-reg-infl$ |\ $verb-dup-infl$ | $verb-pres-ger2-infl$ | $verb-past-part-infl$ %%%%%%%%%%%%%%%% phon.fst %%%%%%%%%%%%%%%%%% #include "symbols.fst" ALPHABET = [#sym#] e:<> $delete-e$ = e <=> <> ( [aei]) ALPHABET = [#sym#] y:i $y-to-i$ = y <=> i ([] [el]) ALPHABET = [#sym#] $y-to-ie$ = {y}:{ie} ^-> (__ [] s) #=D# = bdglmnpt $T$ = {[#=D#]}:{[#=D#][#=D#]} ALPHABET = [#sym#] $duplicate$ = $T$ ^-> ([#cons#][#vowel#] __ ( e(r|st) | )) ALPHABET = [#Letter#] [#mcs#]:<> $delete-POS$ = .* $delete-e$ || $y-to-i$ || $y-to-ie$ || $duplicate$ || $delete-POS$ %%%%%%%%%%%%%%% morph.fst %%%%%%%%%%%%%%%%%% #include "symbols.fst" % Read the lexicon and % delete the inflection class on the analysis layer $lex$ = ($Letter$* <>:[#infl#]) || "morph.lex" % Concatenate stems with the inflectional endings $morph$ = $lex$ "" % Eliminate incorrect combinations with a filter transducer $=C$ = [#infl#]:<> $inflection-filter$ = $Letter$+ $=C$ $=C$ $sym$* $morph$ = $morph$ || $inflection-filter$ $morph$ || "" \end{verbatim} \begin{exercise} Store the above code in the files \texttt{symbols.fst}, \texttt{inflection.fst}, \texttt{phon.fst}, and \texttt{morph.fst}, respectively. Create a lexicon file \texttt{morph.lex} with entries as shown before. Use \texttt{fst-compiler} to create \texttt{inflection.a}, \texttt{phon.a}, and \texttt{morph.a}. Start \texttt{fst-mor morph.a} and try to analyze different word forms. \end{exercise} The Unix utility \texttt{make} can be used to determine automatically which transducers need to be recompiled. \texttt{make} needs a control file which looks as follows: \begin{verbatim} morph.a: symbols.fst inflection.a phon.a morph.lex phon.a: symbols.fst %.a: %.fst fst-compiler $< $@ \end{verbatim} The first command tells \texttt{make} that the file \texttt{morph.a} depends on the files \texttt{symbols.fst}, \texttt{inflection.a}, \texttt{morph.lex}, and \texttt{phon.a}. Whenever one of these files changes, \texttt{morph.a} needs to be recompiled. The second command adds the dependency of \texttt{phon.a} on \texttt{symbols.fst}. The third command consists of two lines and informs the \texttt{make} program that a file such as \texttt{foo.a} is produced from a corresponding file \texttt{foo.fst} by calling \texttt{fst-compiler foo.fst foo.a}. The new version of the morphology no longer covers derived word forms and compounds. This functionality will be added in the next section. \begin{exercise} Store the above control data in a file called \texttt{makefile} and call \texttt{make}. If all the files are up to date, nothing is done. Otherwise, \texttt{make} calls \texttt{fst-compiler} to update the compiled transducer files. \end{exercise} \subsection{Compounding Revisited} German is a language which is well-known for the complexity of its compounds. A moderate example is the word \emph{Bundesausbildungsf"orderungsgesetz} (federal education advancement law). English is less productive in this respect. Nevertheless, the compounding mechanism that we will implement next is able to produce English compounds of similar complexity. The compounds are generated by the following code which is stored in the file \texttt{compounding.fst}. The second command reads the lexicon, deletes the inflection labels in the surface layer, and replaces the inflection labels in the analysis layer with part-of-speech symbols. The following command extracts nouns and adjectives from the lexicon stored in \texttt{$lex$}. Compounds are created by concatenating one or more compounding stems (\texttt{\$T1\$+}) and a noun or adjective entry (\texttt{\$T2\$}). The compounds are then added to the other lexicon entries. The compounding code is included in \texttt{morph.fst} via an include command, as shown below. \begin{verbatim} %%%%%%%%%%%% compounding.fst %%%%%%%%%%%%%%% % generate compounding stems $T$ = : | : | :[] $T1$ = ($Letter$* $T$) || "morph.lex" || ($Letter$* [#infl#]:<>) % extract adjective and noun entries $T2$ = $lex$ || ($Letter$+ []) % produce the compounds $comp$ = $T1$+ $T2$ % add the compounds to the lexicon $lex$ = $lex$ | $comp$ %%%%%%%%%%%%%%% morph.fst %%%%%%%%%%%%%%%%%% ... $lex$ = ($Letter$* <>:[#infl#]) || "morph.lex" #include "compounding.fst" ... \end{verbatim} \begin{exercise} Extend the \texttt{makefile} such that \texttt{morph.a} is recompiled when \texttt{compounding.fst} is modified. Compile the morphology and try to analyze different compounds. \end{exercise} \subsection{Derivation Revisited} Many Germanic languages possess two different derivational mechanisms. The \emph{native} derivation of word forms is exemplified by the English noun \emph{darkness} which is obtained by adding the suffix \emph{-ness} to the adjective \emph{dark}. Similarly, the \emph{neo-classical} nominalization \emph{reality} is composed of the adjective \emph{real} and the suffix \emph{-ity}. Neo-classical word formation is mostly used with loan words of Latin origin. We have to make sure that our morphology only combines neo-classical affixes with neo-classical stems and native affixes with native stems. Thus, neither \emph{darkity} nor \emph{realness} should be generated. We add special entries for derivation stems and derivation suffixes as shown below. Derivation stems are annotated with their part of speech and origin. Lexicon entries for derivation suffixes start with the part of speech and the origin feature of the derivation stem that they combine with, and they end with the label of the inflectional class of the resulting word form. \begin{verbatim} ... dark real ness ity \end{verbatim} The morphology program is extended with the new source code file \texttt{derivation.fst} which is included in the main file \texttt{morph.fst} as shown below. \begin{verbatim} %%%%%%%%%%%%% derivation.fst %%%%%%%%%%%%%%% % extract derivation stems and suffixes $derivstems$ = $Letter$+ $pos$ <>:[#origin#] || "morph.lex" $suffixes$ = <>:[#pos#]<>:[#origin#] $Letter$+ <>:[#infl#] || "morph.lex" $suffixes$ = :<> $suffixes$ % concatenate derivation stems and suffixes and $deriv$ = $derivstems$ $suffixes$ % filter out incorrect combinations $=pos$ = [#pos#]:<> $=origin$ = [#origin#]:<> $filter$ = $sym$* $=pos$ $=origin$ $=pos$ $=origin$ $sym$* $infl$ $deriv$ = $deriv$ || $filter$ % add the derived stems to the lexicon $lex$ = $lex$ | $deriv$ %%%%%%%%%%%%%%% morph.fst %%%%%%%%%%%%%%%%%% ... #include "derivation.fst" #include "compounding.fst" ... \end{verbatim} \begin{exercise} Extend the morphology such that the word \emph{reachability} receives the analysis: \texttt{reachabelity} The lexicon entry for the first derivational suffix might look as follows: \texttt{ab<>:ile:<>} \end{exercise} \end{document} %%% Local Variables: %%% mode: latex %%% TeX-master: t %%% End: sfst-1.7.0/doc/bibliography.bib000066400000000000000000005472141470213725200164140ustar00rootroot00000000000000@STRING{cl = "Computational Linguistics"} @STRING{acl79 = "Proceedings of the 17th Annual Meeting of the Association for Computational Linguistics (ACL)"} @STRING{acl79o = "La Jolla, Cal."} @STRING{acl80 = "Proceedings of the 18th Annual Meeting of the Association for Computational Linguistics (ACL)"} @STRING{acl80o = "Philadelphia, Pa."} @STRING{acl81 = "Proceedings of the 19th Annual Meeting of the Association for Computational Linguistics (ACL)"} @STRING{acl81o = "Stanford, Cal."} @STRING{acl82 = "Proceedings of the 20th Annual Meeting of the Association for Computational Linguistics (ACL)"} @STRING{acl82o = "Toronto, Ont."} @STRING{acl83 = "Proceedings of the 21st Annual Meeting of the Association for Computational Linguistics (ACL)"} @STRING{acl83o = "Cambridge, Mass."} @STRING{acl84 = "Proceedings of the 22nd Annual Meeting of the Association for Computational Linguistics (ACL)"} @STRING{acl85 = "Proceedings of the 23rd Annual Meeting of the Association for Computational Linguistics (ACL)"} @STRING{acl85o = "Chicago, Ill."} @STRING{acl86 = "Proceedings of the 24th Annual Meeting of the Association for Computational Linguistics (ACL)"} @STRING{acl86o = "New York, N.Y."} @STRING{acl87 = "Proceedings of the 25th Annual Meeting of the Association for Computational Linguistics (ACL)"} @STRING{acl87o = "Stanford, Cal."} @STRING{acl88 = "Proceedings of the 26th Annual Meeting of the Association for Computational Linguistics (ACL)"} @STRING{acl88o = "Buffalo, New York"} @STRING{acl89 = "Proceedings of the 27th Annual Meeting of the Association for Computational Linguistics (ACL)"} @STRING{acl89o = "Vancouver, B.C., Canada"} @STRING{acl90 = "Proceedings of the 28th Annual Meeting of the Association for Computational Linguistics (ACL)"} @STRING{acl90o = "Pittsburgh, PA."} @STRING{acl91 = "Proceedings of the 29th Annual Meeting of the Association for Computational Linguistics (ACL)"} @STRING{acl91o = "Berkeley, California"} @STRING{acl92 = "Proceedings of the 30th Annual Meeting of the Association for Computational Linguistics (ACL)"} @STRING{acl92o = "Newark, Delaware"} @STRING{acl93 = "Proceedings of the 31st Annual Meeting of the Association for Computational Linguistics (ACL)"} @STRING{acl93o = "Columbus, Ohio"} @STRING{acl94 = "Proceedings of the 32nd Annual Meeting of the Association for Computational Linguistics (ACL)"} @STRING{acl94o = "Las Cruces, New Mexico"} @STRING{acl95 = "Proceedings of the 33rd Annual Meeting of the Association for Computational Linguistics (ACL)"} @STRING{acl95o = "Cambridge, Mass."} @STRING{acl96 = "Proceedings of the 34th Annual Meeting of the Association for Computational Linguistics (ACL)"} @STRING{acl96o = "Santa Cruz, Cal."} @STRING{acl97 = "Proceedings of the 35th Annual Meeting of the Association for Computational Linguistics (ACL)"} @STRING{acl97o = "Madrid, Spain"} @STRING{acl98 = "Proceedings of ACL-COLING"} @STRING{acl98o = "Montreal, Canada"} @STRING{acl99 = "Proceedings of the 37th Annual Meeting of the Association for Computational Linguistics (ACL)"} @STRING{acl99o = "College Park, MD"} @STRING{acl00 = "Proceedings of the 38th Annual Meeting of the Association for Computational Linguistics (ACL)"} @STRING{acl00o = "Hong Kong"} @STRING{acl01 = "Proceedings of the 39th Annual Meeting of the Association for Computational Linguistics (ACL)"} @STRING{acl01o = "Toulouse, France"} @STRING{acl02 = "Proceedings of the 40th Annual Meeting of the Association for Computational Linguistics (ACL)"} @STRING{acl02o = "Philadelphia, PA"} @STRING{acl03 = "Proceedings of the 41st Annual Meeting of the Association for Computational Linguistics (ACL)"} @STRING{acl03o = "Sapporo, Japan"} @STRING{acl04 = "Proceedings of the 42nd Annual Meeting of the Association for Computational Linguistics (ACL)"} @STRING{acl04o = "Barcelona, Spain"} @STRING{acl05 = "Proceedings of the 43rd Annual Meeting of the Association for Computational Linguistics (ACL)"} @STRING{acl05o = "Ann Arbor, Michigan"} @STRING{acl06 = "Proceedings of the 21st International Conference on Computational Linguistics and 44th Annual Meeting of the Association for Computational Linguistics (COLING-ACL)"} @STRING{acl06o = "Sydney, Australia"} @STRING{acl07 = "Proceedings of the 45th Annual Meeting of the Association for Computational Linguistics (ACL)"} @STRING{acl07o = "Prague, Czech Republic"} @STRING{acl08 = "Proceedings of the 46th Annual Meeting of the Association for Computational Linguistics: Human Language Technology (ACL-08:HLT)"} @STRING{acl08o = "Columbus, Ohio"} @STRING{acl09 = "Proceedings of the Joint conference of the 47th Annual Meeting of the Association for Computational Linguistics and the 4th International Joint Conference on Natural Language Processing of the Asian Federation of Natural Language Processing (ACL-IJCNLP)"} @STRING{acl09o = "Singapore"} @STRING{acl10 = "Proceedings of the 48th Annual Meeting of the Association for Computational Linguistics (ACL)"} @STRING{acl10o = "Uppsala, Sweden"} @STRING{acl11 = "Proceedings of the 49th Annual Meeting of the Association for Computational Linguistics: Human Language Technologies (ACL-HLT)"} @STRING{acl11o = "Portland, Oregon"} @STRING{eacl83 = "Proceedings of the 1st Conference of the European Chapter of the Association for Computational Linguistics"} @STRING{eacl83o= "Pisa, Italy"} @STRING{eacl85 = "Proceedings of the 2nd Conference of the European Chapter of the Association for Computational Linguistics"} @STRING{eacl85o= "Geneva, Switzerland"} @STRING{eacl87 = "Proceedings of the 3rd Conference of the European Chapter of the Association for Computational Linguistics"} @STRING{eacl87o= "Copenhagen, Denmark"} @STRING{eacl89 = "Proceedings of the 4th Conference of the European Chapter of the Association for Computational Linguistics"} @STRING{eacl89o= "Manchester, England"} @STRING{eacl91 = "Proceedings of the 5th Conference of the European Chapter of the Association for Computational Linguistics"} @STRING{eacl91o= "Berlin, Germany"} @STRING{eacl93 = "Proceedings of the 6th Conference of the European Chapter of the Association for Computational Linguistics"} @STRING{eacl93o= "Utrecht, The Netherlands"} @STRING{eacl95 = "Proceedings of the 7th Conference of the European Chapter of the Association for Computational Linguistics"} @STRING{eacl95o= "Dublin, Ireland"} @STRING{eacl03 = "Proceedings of the 10th Conference of the European Chapter of the Association for Computational Linguistics"} @STRING{eacl03o= "Budapest, Hungary"} @STRING{coling84 = "Proceedings of the 10th International Conference on Computational Linguistics (COLING)"} @STRING{coling84o= "Stanford, Cal."} @STRING{coling86 = "Proceedings of the 11th International Conference on Computational Linguistics (COLING)"} @STRING{coling86o= "Bonn, West Germany"} @STRING{coling88 = "Proceedings of the 12th International Conference on Computational Linguistics (COLING)"} @STRING{coling88o= "Budapest, Hungary"} @STRING{coling90 = "Proceedings of the 13th International Conference on Computational Linguistics (COLING)"} @STRING{coling90o= "Helsinki, Finland"} @STRING{coling92 = "Proceedings of the 14th International Conference on Computational Linguistics (COLING)"} @STRING{coling92o= "Nantes, France"} @STRING{coling96 = "Proceedings of the 16th International Conference on Computational Linguistics (COLING)"} @STRING{coling96o= "Copenhagen, Denmark"} @STRING{coling00 = "Proceedings of the 18th International Conference on Computational Linguistics (COLING)"} @STRING{coling00o= "Saarbr{\"u}cken, Germany"} @STRING{coling02 = "Proceedings of the 19th International Conference on Computational Linguistics (COLING)"} @STRING{coling02o= "Taipei, Taiwan"} @STRING{coling08 = "Proceedings of the 22th International Conference on Computational Linguistics (COLING)"} @STRING{coling08o= "Manchester, Great Britain"} @InProceedings{Durrani2013, author = {Nadir Durrani and Alexander Fraser and Helmut Schmid and Hieu Hoang and Philipp Koehn}, title = {Can {Markov} Models Over Minimal Translation Units Help Phrase-Based {SMT}?}, booktitle = {Proceedings of the 51st Annual Meeting of the Association for Computational Linguistics (ACL)}, year = 2013, pages = {399--405}, address = {Sofia, Bulgaria}} @Article{FraserSchmidetal, author = {Alexander Fraser and Helmut Schmid and Rich{\'a}rd Farkas, Renjing Wang, Hinrich Sch{\"u}tze}, title = {Knowledge Sources for Constituent Parsing of German, a Morphologically Rich and Less-Configurational Language}, journal = {Computational Linguistics}, year = 2013, volume = 39, number = 1} @InProceedings{Sajjad2012, author = {Hassan Sajjad, Alexander Fraser, Helmut Schmid}, title = {A Statistical Model for Unsupervised and Semi-supervised Transliteration Mining}, booktitle = {Proceedings of the 50th Annual Meeting of the Association for Computational Linguistics (ACL-12)}, year = 2012, address = {Jeju, Republic of Korea}} @InProceedings{SajjadDurrani2011, author = {Hassan Sajjad and Nadir Durrani and Helmut Schmid and Alexander Fraser}, title = {Comparing Two Techniques for Learning Transliteration Models Using a Parallel Corpus}, booktitle = {Proceedings of the 5th International Joint Conference on Natural Language Processing (IJCNLP)}, year = 2011, address = {Chiang Mai, Thailand}} @InProceedings{Durrani2011, author = {Nadir Durrani and Helmut Schmid and Alexander Fraser}, title = {A Joint Sequence Translation Model with Integrated Reordering}, booktitle = {Proceedings of the 49th Annual Meeting of the Association for Computational Linguistics: Human Language Technologies (ACL-HLT)}, year = 2011, address = {Portland, Oregon}} @InProceedings{Sajjad2011, author = {Hassan Sajjad and Alexander Fraser and Helmut Schmid}, title = {An Algorithm for Unsupervised Transliteration Mining with an Application to Word Alignment}, booktitle = {Proceedings of the 49th Annual Meeting of the Association for Computational Linguistics: Human Language Technologies (ACL-HLT)}, year = 2011, address = {Portland, Oregon}} @InProceedings{DurraniSajjad2010, author = {Nadir Durrani and Hassan Sajjad and Alexander Fraser and Helmut Schmid}, title = {Hindi-to-Urdu Machine Translation Through Transliteration}, booktitle = {Proceedings of the 48th Annual Meeting of the Association for Computational Linguistics (ACL)}, year = 2010, address = {Uppsala, Sweden}} @InProceedings{Faasz:2010, author = {Faa{\ss}, Gertrud and Heid, Ulrich and Schmid, Helmut}, title = {Design and {A}pplication of a {G}old {S}tandard for {M}orphological {A}nalysis: {SMOR} as an {E}xample of {M}orphological {E}valuation}, booktitle = {Proceedings of the Seventh conference on International Language Resources and Evaluation (LREC'10)}, year = {2010}, month = {may}, date = {19-21}, address = {Valletta, Malta}, editor = {Nicoletta Calzolari (Conference Chair), Khalid Choukri, Bente Maegaard, Joseph Mariani, Jan Odjik, Stelios Piperidis, Mike Rosner, Daniel Tapias}, publisher = {European Language Resources Association (ELRA)}, isbn = {2-9517408-6-7}, language = {english} } @InBook{Schmid:10, author = "Helmut Schmid", title = "The Handbook of Computational Linguistics and Natural Language Processing", chapter = "Decision Trees", publisher = "Wiley-Blackwell", year = "2010", editor = "Alexander Clark and Chris Fox and Shalom Lappin", series = "Blackwell Handbooks in Linguistics", address = "Chichester, Great Britain" } @InProceedings{SajjadSchmid:09, author = {Hassan Sajjad and Helmut Schmid}, title = {Tagging Urdu Text with Parts of Speech: A Tagger Comparison}, booktitle = {Proceedings of the 12th Conference of the European Chapter of the Association for Computational Linguistics (EACL)}, month = {March}, year = {2009}, address = {Athens, Greece}, pages = {692--700}} @InBook{Schmid:09, author = "Helmut Schmid", title = "Corpus Linguistics: An International Handbook", chapter = "Tokenizing and Part-of-Speech Tagging", publisher = "Walter de Gruyter", year = "2009", editor = "Anke L{\"u}deling and Merja Kyt{\"o} and Tony McEnery", series = "Handbooks of Linguistics and Communication Science", address = "Berlin" } @InProceedings{Wagner:09, author = {Wiebke Wagner and Helmut Schmid and Sabine {Schulte im Walde}}, title = {Verb Sense Disambiguation using a Predicate-Argument-Clustering Model}, booktitle = {Proceedings of the CogSci Workshop on Distributional Semantics beyond Concrete Concepts}, pages = {23--28}, year = {2009}, address = {Amsterdam, The Netherlands}, } @InProceedings{Schmid:08a, author = {Helmut Schmid and Florian Laws}, title = {Estimation of Conditional Probabilities With Decision Trees and an Application to Fine-Grained {POS} Tagging}, pages = {465--472}, booktitle = "Proceedings of the 22th International Conference on Computational Linguistics (COLING)", year = 2008, address = "Manchester, Great Britain"} @InProceedings{Schmid:08b, author = {Sabine {Schulte im Walde} and Christian Hying and Christian Scheible and Helmut Schmid}, title = {Combining {EM} Training and the {MDL} Principle for an Automatic Verb Classification Incorporating Selectional Preferences}, booktitle = "Proceedings of the 46th Annual Meeting of the Association for Computational Linguistics: Human Language Technology (ACL-08:HLT)", pages = {496--504}, year = 2008, address = "Columbus, Ohio" } @Article{EvalitaTagger, author = {Helmut Schmid and Marco Baroni and Eros Zanchetta and Achim Stein}, title = {Il sistema ``TreeTagger arricchito'' - The Enriched TreeTagger System}, journal = {Intelligenza Artificiale}, year = 2007, pages = {22-23} } @InProceedings{Schmid:94a, author = "Helmut Schmid", title = "Part-of-Speech Tagging with Neural Networks", pages = "172--176", booktitle = "Proceedings of the 15th International Conference on Computational Linguistics (COLING)", year = 1994, address = "Kyoto, Japan" } @InProceedings{Schmid:94b, author = "Helmut Schmid", title = "Probabilistic Part-of-Speech Tagging Using Decision Trees", pages = "44--49", booktitle = "Proceedings of the International Conference on New Methods in Language Processing", year = 1994, address = "Manchester, Great Britain" } @inproceedings{Schmid:95a, author = "Helmut Schmid", title = "Improvements in Part-of-Speech Tagging with an Application to {G}erman", booktitle = "Proceedings of the ACL SIGDAT-Workshop", pages = "47--50", year = 1995, Adress = "Dublin, Ireland" } @InCollection{Schmid:99, author = "Helmut Schmid", title = "Improvements in Part-of-Speech Tagging with an Application to German", booktitle = "Natural Language Processing Using Very Large Corpora", publisher = "Kluwer Academic Publishers", year = 1999, editor = "Susan Armstrong and Kenneth Church and Pierre Isabelle and Sandra Manzi and Evelyne Tzoukermann and David Yarowsky", volume = 11, series = "Text, Speech and Language Processing", address = "Dordrecht", pages = "13--26" } @TechReport{Schmid:95b, author = "Helmut Schmid", title = "Statistische Disambiguierung von Pr{\"a}positionen f{\"u}r den Transfer", institution = "Universit{\"a}t Stuttgart", year = 1995, type = "Verb{\it mobil} Memo", number = 87, month = "Februar" } @InProceedings{Schmid:97, author = "Helmut Schmid", title = "Parsing by Successive Approximation", booktitle = "Proceedings of the 5th International Workshop on Parsing Technologies (IWPT)", year = 1997, organization = "Massachusetts Institute of Technology", address = "Cambridge, Ma.", pages = "177--186" } @InCollection{Schmid:97a, author = "Helmut Schmid", title = "Probabilistic Part-of-Speech Tagging Using Decision Trees", booktitle = "New Methods in Language Processing", publisher = "UCL Press", year = 1997, editor = "Daniel Jones and Harold Somers", series = "Studies in Computational Linguistics", address = "London, GB", pages = "154--164" } @PhdThesis{Schmid:00, author = "Helmut Schmid", title = "{YAP}: Parsing and Disambiguation With Feature-Based Grammars", school = "Institute for Computational Linguistics, University of Stuttgart", year = 2000, address = "Germany" } @InCollection{Schmid:00b, author = "Helmut Schmid", title = "Parsing by successive approximation", booktitle = "Advances in Probabilistic and Other Parsing Technologies", publisher = "Kluwer Academic Publishers", year = 2000, editor = "Harry Bunt and Anton Hijholt", volume = 16, series = "Text, Speech and Language Technology", chapter = 13, address = "Dordrecht", pages = "243-262" } @Book{Schmid:00c, author = "Helmut Schmid", title = "{LoPar}: Design and Implementation", publisher = "Institute for Computational Linguistics, University of Stuttgart", year = 2000, number = 149, series = "Arbeitspapiere des Sonderforschungsbereiches 340" } @TechReport{Schmid:00d, author = "Helmut Schmid", title = "Unsupervised Learning of Period Disambiguation for Tokenisation", institution = "IMS, University of Stuttgart", year = 2000, pdf = "https://www.cis.lmu.de/~schmid/papers/tokeniser.pdf" } @InProceedings{Schmid:02a, author = "Helmut Schmid", title = "A Generative Probability Model for Unification-Based Grammars", booktitle = coling02, year = 2002, address = coling02o, pages = "884--890" } @InProceedings{Schmid:02b, author = "Helmut Schmid", title = "Lexicalization of Probabilistic Grammars", booktitle = coling02, year = 2002, address = coling02o, pages = "891--896" } @InProceedings{Schmid/Atterer:04, author = "Helmut Schmid and Michaela Atterer", title = "New Statistical Methods for Phrase Break Prediction", booktitle = "Proceedings of the 20th International Conference on Computational Linguistics (COLING)", volume = 1, year = 2004, address = "Geneva, Switzerland", pages = "659--665" } @InProceedings{Schmid:04b, author = "Helmut Schmid", title = "Efficient Parsing of Highly Ambiguous Context-Free Grammars with Bit Vectors", booktitle = "Proceedings of the 20th International Conference on Computational Linguistics (COLING)", volume = 1, year = 2004, address = "Geneva, Switzerland", pages = "162--168" } @Misc{Schmid:05c, author = "Helmut Schmid", title = "Review of the book: Data-Oriented Parsing by Rens Bod, Remko Scha and Khalil Sima'an", howpublished = "Journal of Logic, Language and Information", year = "to appear" } @InProceedings{Schmid:06, author = "Helmut Schmid", title = "A Programming Language for Finite State Transducers", booktitle = "Finite-State Methods and Natural Language Processing: 5th International Workshop (FSMNLP 2005)", editor = "Anssi Yli-Jyr{\"a}", volume = 4002, series = "Lecture Notes in Artificial Intelligence", year = 2006, publisher = "Springer, Heidelberg, Germany", pages = "308--309" } @InProceedings{Schmid:05e, author = "Helmut Schmid", title = "Disambiguation of Morphological Structure using a {PCFG}", booktitle = "Proceedings of the Human Language Technology Conference and Conference on Empirical Methods in Natural Language Processing (HLT/EMNLP 2005)", year = 2005, address = "Vancouver, Canada", pages = "515--522" } @InProceedings{Schmid:06b, author = "Helmut Schmid", title = "Trace Prediction and Recovery With Unlexicalized {PCFGs} and Slash Features", booktitle = "Proceedings of the 21st International Conference on Computational Linguistics and 44th Annual Meeting of the Association for Computational Linguistics (COLING-ACL)", pages = {177--184}, year = 2006, address = "Sydney, Australia" } @Manual{YAP-Manual, title = "The {YAP} Manual", author = "Helmut Schmid", organization = "Institute for Computational Linguistics, University of Stuttgart", address = "Germany" } @InCollection{Schmid/Kempe:96, author = "Helmut Schmid and Andr{\'e} Kempe", title = "{Tagging} von deutschen {Corpora} mit {HMM}, {Entscheidungsb{\"a}umen} und {Neuronalen} {Netzen}", booktitle = "Lexikon und Text: Wiederverwendbare Methoden und Resourcen zur linguistischen Erschlie{\ss}ung des Deutschen", publisher = "Niemeyer", year = 1996, editor = "Helmut Feldweg und Erhard W. Hinrichs", number = 73, series = "Lexicographica Series Maior", address = "T{\"u}bingen", pages = "231--244" } @article{Stein/Schmid:95, author = "Achim Stein and Helmut Schmid", year = 1995, title = "Etiquetage morphologique de textes fran\c{c}ais avec un arbre de d\'ecisions", journal = "Traitement Automatique des Langues", volume = "Num\'ero sp\'ecial: Traitements probabilistes et corpus", pages = "23--35" } @InProceedings{Demberg/Schmid:07, author = {Vera Demberg and Helmut Schmid and Gregor M{\"o}hler}, title = {Phonological Constraints and Morphological Preprocessing for Grapheme-to-Phoneme Conversion}, booktitle = "Proceedings of the 45th Annual Meeting of the Association for Computational Linguistics (ACL)", year = 2007, pages = {96--103}, address = "Prague, Czech Republic" } @InProceedings{Schmid/Moebius:07, author = {Helmut Schmid and Bernd M{\"o}bius and Julia Weidenkaff}, title = {Tagging Syllable Boundaries With Joint N-Gram Models}, booktitle = {Interspeech 2007}, pages = {2857--2860}, year = 2007, address = {Antwerp, Belgium} } @InProceedings{Schmid/etal:04, author = "Helmut Schmid and Arne Fitschen and Ulrich Heid", title = "{SMOR}: A {G}erman Computational Morphology Covering Derivation, Composition and Inflection", booktitle = "Proceedings of the 4th International Conference on Language Resources and Evaluation", volume = 4, year = 2004, address = "Lisbon, Portugal", pages = "1263--1266" } @InProceedings{Schmid/Schulte:00, author = "Helmut Schmid and Sabine {Schulte im Walde}", title = "Robust {G}erman Noun Chunking With a Probabilistic Context-Free Grammar", booktitle = "Proceedings of the 18th International Conference on Computational Linguistics (COLING)", year = 2000, address = "Saarbr{\"u}cken, Germany", pages = "726--732" } @InProceedings{Schmid/Rooth:01, author = "Helmut Schmid and Mats Rooth", title = "Parse Forest Computation of Expected Governors", booktitle = acl01, year = 2001, address = acl01o, pages = "458--465" } @InCollection{SchulteImWaldeEtAl:01, keywords = "Gramotron", author = "Sabine {Schulte im Walde} and Helmut Schmid and Mats Rooth and Stefan Riezler and Detlef Prescher", title = "Statistical Grammar Models and Lexicon Acquisition", booktitle = "Linguistic Form and its Computation", publisher = "CSLI Publications", year = 2001, editor = "Christian Rohrer and Antje Rossdeutscher and Hans Kamp", address = "Stanford, CA", pages = "389--440" } @TechReport{Schmid/Prescher, author = "Detlef Prescher and Helmut Schmid", title = "Using Pseudo-Disambiguation an Perplexity-Measures for Evalutation of Probabilistic Verb-Argument Models", institution = "IMS, University of Stuttgart", year = 2002, type = "internal report", address = "Stuttgart, Germany" } @InProceedings{Schmid/Baroni, author = {Helmut Schmid and Marco Baroni and Eros Zanchetta and Achim Stein}, title = {The Enriched TreeTagger System}, booktitle = {proceedings of the EVALITA 2007 workshop}, year = 2007 } @Misc{Schulte:08, author = {Sabine {Schulte im Walde}, Helmut Schmid, Christian Scheible, Christian Hying}, title = {Representing Underspecification by Semantic Verb Classes incorporating Selectional Preferences}, howpublished = {Poster at the Annual Meeting of the DGfS, Universit{\"a}t Bamberg}, year = 2008} @inProceedings{Li/Abe98, author = "Hang Li and Naoki Abe", title = "Word Clustering and Disambiguation Based on Co-occurence Data", booktitle = acl98, address = acl98o, pages = "749--755", year = 1998 } @Article{Li/Abe98b, author = "Hang Li and Naoki Abe", title = "Generalizing Case Frames Using a Thesaurus and the {MDL} Principle", journal = "Computational Linguistics", year = 1998, volume = 24, number = 2, pages = "217--244" } @InProceedings{Abe/Li96, author = "Naoki Abe and Hang Li", title = "Learning Word Association Norms Using Tree Cut Pair Models", booktitle = "Proceedings of the 13th International Conference on Machine Learning (ICML)", year = 1996, pages = "3--11" } @InCollection{Abney:91, author = "Steven Abney", title = "Parsing by Chunks", booktitle = "Principle-Based Parsing", crossref = "Berwick/Abney/Tenny:91" } @Article{Abney:97, author = "Steven Abney", title = "Stochastic Attribute-Value Grammars", journal = "Computational Linguistics", year = 1997, volume = 23, number = 4, month = "December", pages = "597--618" } @InProceedings{Abney:96b, author = "Steven Abney", title = "Partial Parsing via Finite-State Cascades", booktitle = "Proceedings of the {ESSLLI} Robust Parsing Workshop", year = 1999, address = "Prague, Czech Republic" } @InProceedings{Abney:99, author = "Steven Abney and Robert E. Schapire and Yoram Singer", title = "Boosting applied to tagging and {PP} attachment", booktitle = "Proceedings of the Joint {SIGDAT} Conference on Empirical Methods in Natural Language Processing and Very Large Corpora", year = 1999, address = acl99o } @Article{Alshawi/Carter:1994, author = "Hiyan Alshawi and David Carter", title = "Training and Scaling Preference Functions for Disambiguation", journal = "Computational Linguistics", year = 1994, volume = 20, number = 4, month = "December", pages = "635--648" } @Article{AndoLee03, author = {Rie Kubota Ando and Lillian Lee}, title = {Mostly-Unsupervised Statistical Segmentation of {Japanese} Kanji Sequences}, journal = {Journal of Natural Language Engineering}, volume=9, issue=2, pages={127--149}, year = 2003 } @InProceedings{Multext, author = "Susan Armstrong and Graham Russell and Dominique Petitpierre and Gilbert Robert", title = "An open architecture for multilingual text processing", booktitle = "Proceedings of the {EACL} {SIGDAT} Workshop", year = 1995, address = "Dublin, Ireland", pages = "30--34" } @Article{Bachenko/Fitzpatrick:1990, author = {Joan Bachenko and Eileen Fitzpatrick}, title = {A computational grammar of discourse-neutral prosodic phrasing in {English}}, journal = {Computational Linguistics}, year = 1990, volume = 16, number = 3, pages = {155--170} } @Article{Bahl:76, author = "Lalit R. Bahl and Robert L. Mercer", title = "Part-of-speech assignment by a statistical decision algorithm", journal = "{IEEE} International Symposium on Information Theory", year = 1976, pages = "88--89" } @InProceedings{Baker:82, author = "J. Baker", title = "Trainable Grammars for Speech Recognition", booktitle = "Speech Communication Papers for the 97th Meeting of the Acoustical Society of America", editor = "D. Klatt and J. Wolf", year = 1982, pages = "547--550" } @Book{Barwise/Etchemendy, author = "Jon Barwise and John Etchemendy", title = "The Liar: An Essay on Truth and Circularity", publisher = "Oxford University Press", year = 1988 } @Article{Baum:72, author = "Leonard E. Baum", title = "An inequality and association maximization technique in statistical estimation for probabilistic functions of a {M}arkov process", journal = "Inequalities", year = 1972, volume = 3, pages = "1--8" } @Article{Baum/Sell:68, author = "Leonard E. Baum and George R. Sell", title = "Growth Transformations on Functions on Manifolds", journal = "Pacific Journal of Mathematics", year = 1968, volume = 27 } @InProceedings{Beil:99, author = "Franz Beil and Glenn Carroll and Detlef Prescher and Stefan Riezler and Mats Rooth", title = "Inside-Outside Estimation of a Lexicalized {PCFG} for {G}erman", booktitle = "acl99", year = 1999, address = "acl99o", pages = "269--276" } @Article{Benello:89, author = "J. Benello and A. W. Mackie and J. A. Anderson", title = "Syntactic category disambiguation with neural networks", journal = "Computer Speech and Language", year = 1989, volume = 3, pages = "203--217" } @InProceedings{Berwick:81, author = "Robert C. Berwick", title = "Computational Complexity and Lexical Functional Grammar", volume = 19, pages = "7ff", booktitle = acl81, year = 1981, address = acl81o } @InProceedings{Billot/Lang:89, author = "Sylvie Billot and Bernard Lang", title = "The Structure of Shared Forests in Ambiguous Parsing", booktitle = acl89, year = 1989, address = acl89o } @InProceedings{Black:92, author = "Ezra Black and Frederick Jelinek and John Lafferty and David M. Magerman and Robert Mercer and Salim Roukos", title = "Towards History-based Grammars: Using Richer Models for Probabilistic Parsing", booktitle = "Proceedings of the {DARPA} Speech and Natural Language Workshop", year = 1992, pages = 6, note = "electronically available at http://xxx.lanl.gov/abs/cmp-lg/9405007" } @InProceedings{Black:92a, author = "Ezra Black and Frederick Jelinek and John Lafferty and Robert Mercer and Salim Roukos", title = "Decision tree models applied to the labeling of text with parts of speech", booktitle = "Proceedings of the {DARPA} Speech and Natural Language Workshop", pages = {117--121}, year = 1992, address = "Arden House, NY", month = "February" } @InProceedings{Parseval, author = "Ezra Black and Steven Abney and Dan Flickinger and C. Gdaniec and Ralph Grishman and P. Harrison and Donald M. Hindle and R. Ingria and Frederick Jelinek and J. Klavans and Mark Liberman and M. Marcus and Salim Roukos and Beatrice Santorini and Tomek Strzalkowski", title = "A procedure for quantitatively comparing the syntactic coverage of {English} grammars", booktitle = "Proceedings of the Speech and Natural Language Workshop", year = 1991, organization = "DARPA", publisher = "Morgan Kaufmann", address = "Pacific Grove, Calif.", pages = "306--311" } @Article{Taylor/Black:1998, author = "Paul Taylor and Alan W. Black", title = "Assigning phrase breaks from part-of-speech sequences", journal = "Computer, Speech and Language", year = 1998, volume = 12, number = 2, pages = "99--117" } @InProceedings{Black/Taylor:1997, author = "Alan W. Black and Paul Taylor", title = "Assigning phrase breaks from part-of-speech sequences", booktitle = "Eurospeech", year = 1997, pages = "995--998" } @inproceedings{Block/Schmid:92, author = "H. Ulrich Block and Ludwig A. Schmid", title = "Using Disjunctive Constraints in a Bottom-Up Parser", year = 1992, pages = "169--177", booktitle = "Proceedings of {KONVENS}", } @Book{Bod:95, author = "Rens Bod", title = "Enriching Linguistics with Statistics", publisher = "University of Amsterdam", year = 1995, series = "ILLC Dissertation Series 1995--14" } @InProceedings{Bod:93, author = "Rens Bod", title = "Using an Annotated Corpus as a Stochastic Grammar", booktitle = eacl93, year = 1993, address = eacl93o } @InProceedings{Bod:00, author = "Rens Bod", title = "Parsing with the Shortest Derivation", booktitle = "Proceedings of the 18th International Conference on Computational Linguistics (COLING)", year = 2000, address = "Saarbr{\"u}cken, Germany", pages = "69--75" } @InProceedings{Tiger, author = {Sabine Brants and Stefanie Dipper and Silvia Hansen and Wolfgang Lezius and George Smith}, year = {2002}, title = {The {TIGER} Treebank}, booktitle = "Proceedings of the Workshop on Treebanks and Linguistic Theories", address = {Sozopol}, pages = {24--41}, postscript = "http://www.ims.uni-stuttgart.de/projekte/TIGER/paper/treeling2002.ps.gz", pdf = "http://www.ims.uni-stuttgart.de/projekte/TIGER/paper/treeling2002.pdf", keywords = {Treebank,German,TIGER} } @InProceedings{Brants:95, author = "Thorsten Brants", title = "Tagset Reduction Without Information Loss", booktitle = eacl95, year = 1995, address = eacl95o } @InProceedings{Brants:98, author = "Wojciech Skut and Thorsten Brants", title = "Chunk Tagger: Statistical Recognition of Noun Phrases", booktitle = "{ESSLLI} Workshop on Automated Acquisition of Syntax and Parsing", year = 1998, organization = "Universit{\"a}t des Saarlandes", address = "Saarbr{\"u}cken, Germany" } @InProceedings{Brants:99, author = "Thorsten Brants", title = "Cascaded {M}arkov Models", booktitle = "Proceedings of the 9th Conference of the European Chapter of the Association for Computational Linguistics (EACL)", year = 1999, address = "Bergen, Norway" } @InProceedings{Brants:00, author = "Thorsten Brants", title = "{TnT} - A Statistical Part-of-Speech Tagger", booktitle = "Proceedings of the Sixth Applied Natural Language Processing Conference {ANLP}", year = 2000, address = "Seattle, WA" } @InProceedings{Brent91, author = "Michael Brent", title = "Automatic acquisition of subcategorization frames from untagged text", booktitle = acl91, year = 1991, address = acl91o } @InProceedings{Brew:95, author = "Chris Brew", title = "Stochastic {HPSG}", booktitle = eacl95, year = 1995, address = eacl95o } @InProceedings{Brill:92, author = "Eric Brill", title = "A simple rule-based part of speech tagger", booktitle = "Proceedings of the Third Conference on Applied Natural Language Processing", year = 1992, pages = {152--155}, address = "Trento, Italy" } @PhdThesis{Brill:93, author = "Eric Brill", title = "A Corpus-Based Approach To Language Learning", school = "Department of Computer and Information Science, University of Pennsylvania", year = 1993 } @InProceedings{Brill:96, author = "Eric Brill", title = "Unsupervised Learning of Disambiguation Rules for Part of Speech Tagging", booktitle = "Proceedings of the Third Workshop on Very Large Corpora", year = 1995, publisher = "Association for Computational Linguistics", address = "Somerset, New Jersey", pages = "1--13" } @InProceedings{Brill/Resnik:94, author = "Eric Brill and Philip Resnik", title = "A Rule-Based Approach To Prepositional Phrase Attachment Disambiguation", booktitle = "Proceedings of the 15th International Conference on Computational Linguistics (COLING)", year = 1994, address = "Kyoto, Japan", note = "electronically available at http://xxx.lanl.gov/abs/cmp-lg/9410026" } @InProceedings{Briscoe/Carroll97, author = "Ted Briscoe and John Carroll", title = "Automatic Extraction of Subcategorization from Corpora", booktitle = "Proceedings of the 5th Conference on Applied Natural Language Processing ({ANLP})", year = 1997, address = "Washington, DC" } @InProceedings{Briscoe/Carroll, author = "Ted Briscoe and John Carroll", title = "Developing and Evaluating a Probabilistic {LR} Parser of Part-of-Speech and Punctuation Labels", pages = "48--58", booktitle = "Proceedings of the 4th International Workshop on Parsing Technologies (IWPT)", year = 1995, address = "Prague / Karlovy Vary, Czech Republic" } @InProceedings{Briscoe/Waegner, author = "Ted Briscoe and Nick Waegner", title = "Robust Stochastic Parsing Using the Inside-Outside Algorithm", booktitle = "Proceedings of the AAAI92 Workshop on Probabilistically-Based Natural Language Processing Techniques", year = 1992, address = "San Jose, Ca.", pages = "39--53", note = "an extended version is electronically available at http://xxx.lanl.gov/abs/cmp-lg/9412006" } @PhdThesis{Buschbeck:94, author = "Bianka Buschbeck", title = "Topologische Pr{\"a}positionen und ihre Verarbeitung in der maschinellen Sprachverarbeitung", school = "Universit{\"a}t Stuttgart", year = 1994 } @Article{Caballo:98, author = "Sharon A. Caballo and Eugene Charniak", title = "New figures of merit for best-first probabilistic chart-parsing", journal = "Computational Linguistics", volume = 24, number = 2, pages = "275--298", year = 1998 } @InProceedings{Campbell:04, author = "Richard Campbell", title = "Using Linguistic Principles to Recover Empty Categories", booktitle = acl04, year = 2004, address = acl04o, pages = "645--652" } @Book{Carpenter:92, author = "Bob Carpenter", title = "The logic of typed feature structures", publisher = "Cambridge University Press, Cambridge", year = 1992, series = "Cambridge Tracts in Theoretical Computer Science" } @PhdThesis{Carroll:95, author = "Glenn Carroll", title = "Learning Probabilistic Grammars for Language Modelling", school = "Department of Computer Science, Brown University", year = 1995 } @InProceedings{Carroll/Rooth:98, author = "Glenn Carroll and Mats Rooth", title = "Valence Induction with a Head-Lexicalized {PCFG}", booktitle = "Proceedings of the Third Conference on Empirical Methods in Natural Language Processing (EMNLP)", year = 1998, address = "Granada, Spain" } @Book{Charniak:93, author = "Eugene Charniak", title = "Statistical Language Learning", publisher = "The MIT Press", year = 1993, address = "Cambridge, Massachusetts" } @InProceedings{Charniak:97, author = "Eugene Charniak", title = "Statistical Parsing with a Context-Free Grammar and Word Statistics", booktitle = "Proceedings of the 14th National Conference on Artificial Intelligence", year = 1997, address = "Menlo Parc" } @InProceedings{Charniak:98, author = "Eugene Charniak and Sharon Goldwater and Mark Johnson", title = "Edge-based best-first chart parsing", booktitle = "Proceedings of the Sixth Workshop on Very Larger Corpora", year = 1998, publisher = "Morgan Kaufmann", pages = "127--133" } @InProceedings{Charniak:00, author = "Eugene Charniak", title = "A Maximum-Entropy-Inspired Parser", booktitle = "Proceedings of the 1st Meeting of the North American Chapter of the Association for Computational Linguistics (ANLP-NAACL)", year = 2000, address = "Seattle, Washington", pages = "132--139" } @InProceedings{Charniak/Johnson:05, author = "Eugene Charniak and Mark Johnson", title = "Coarse-to-fine n-best parsing and {MaxEnt} discriminative reranking", booktitle = "Proceedings of the 43rd Annual Meeting of the Association for Computational Linguistics (ACL)", year = 2005, address = "Ann Arbor, Michigan", pages = "173--80" } @InProceedings{Chelba/Jelinek:98, author = "Ciprian Chelba and Frederick Jelinek", title = "Exploiting Syntactic Structure for Language Modeling", booktitle = acl98, year = 1998, address = acl-98o } @TechReport{Chen/Goodman:98, author = {Stanley F. Chen and Joshua Goodman}, title = {An Empirical Study of Smoothing Techniques for Language Modeling}, institution = {Computer Science Group, Harvard University}, year = 1998, number = {TR-10-98} } @InProceedings{Chen/Goodman, author = "Stanley F. Chen and Joshua Goodman", title = "An Empirical Study of Smoothing Techniques for Language Modeling", booktitle = "Proceedings of the Thirty-Fourth Annual Meeting of the Association for Computational Linguistics (ACL)", publisher = "Morgan Kaufmann", address = "San Francisco", editor = "Arivind Joshi and Martha Palmer", pages = "310--318", year = 1996 } @InProceedings{Choueka88, author = "Yaacov Choueka", title = "Looking for needles in a haystack or locating intersting collocational expressions in large textual databases", booktitle = "Proceedings of the {RIAO} Conference on user-oriented content-based text and image-handling", year = 1988, address = "Cambridge, MA", month = "March", pages = "1--15" } @Article{Church90, author = "Kenneth Ward Church and Patrick Hanks", title = "Word association norms, mutual information, and lexicography", journal = "Computational Linguistics", year = 1990, volume = 16, number = 1, pages = "22--29" } @InProceedings{Church:88, author = "Kenneth W. Church", title = "A stochastic parts program and noun phrase parser for unrestricted text", pages = "136--143", booktitle = "Proceedings of the Second Conference on Applied Natural Language Processing", year = 1988 } @TechReport{Church:89, author = "William A. Gale and Kenneth W. Church", title = "What's wrong with adding one?", institution = "AT\&T Bell Laboratories", year = 1989, type = "Statistical Research Reports", number = 90, address = "Murray Hill, NJ", month = "November" } @Article{Church:91, author = "Kenneth W. Church and William A. Gale", title = "A comparison of the enhanced {Good-Turing} and deleted estimation methods for estimating probabilities of {English} bigrams", journal = "Computer Speech and Language", year = 1991, volume = 5, pages = "19--54" } @InProceedings{ChurchGale:95, author = "Kenneth Church and William Gale", title = "Inverse Document Frequency {(IDF)}: a measure of deviations from {P}oisson", booktitle = "Third Workshop on very large corpora", year = 1995, editor = "David Yarowsky and Kenneth Church", organization = "Association for Computational Linguistics", address = "{MIT}", pages = "121--130" } @article{ChurchGale:95b, author = "Kenneth Church and William Gale", title = "{P}oisson Mixtures", year = 1995, journal = "Journal of Natural Language Engineering", volume = 1, number = 2, pages = "163--190" } @InProceedings{Ciaramita/Johnson, author = "Massimiliano Ciaramita and Mark Johnson", title = "Explaining away ambiguity: Learning verb selectional preference with Bayesian networks", booktitle = "Proceedings of the 18th International Conference on Computational Linguistics (COLING)", year = 2000, address = "Saarbr{\"u}cken, Germany", pages = "187--193" } @InProceedings{Clark/Weir, author = "Stephen Clark and David Weir", title = "A Class-Based Probabilistic Approach to Structural Disambiguation", booktitle = "Proceedings of the 18th International Conference on Computational Linguistics (COLING)", year = 2000, address = "Saarbr{\"u}cken, Germany", pages = "194--200" } @InProceedings{Koo/Collins:05, author = "Terry Koo and Michael Collins", title = "Hidden-Variable Models for Discriminative Reranking", booktitle = "Proceedings of the Human Language Technology Conference and Conference on Empirical Methods in Natural Language Processing (HLT/EMNLP 2005)", year = 2005, address = "Vancouver, Canada", pages = "507--514" } @Unpublished{Collins/Koo:05, author = "Michael Collins and Terry Koo", title = "Discriminative Reranking for Natural Language Parsing", year = 2005, note = "to appear in Computational Linguistics" } @InProceedings{Collins:02, author = "Michael Collins", title = "Discriminative Training Methods for Hidden {Markov} Models: Theory and Experiments with {Perceptron} Algorithms", booktitle = "Proceedings of the Third Conference on Empirical Methods in Natural Language Processing", year = 2002, address = "Philadelphia, PA", pages = "1--8" } @InProceedings{Collins:00, author = "Michael Collins", title = "Discriminative Reranking for Natural Language Parsing", booktitle = "Proceedings of the Seventeenth International Conference on Machine Learning", year = 2000, pages = "175--182" } @PhdThesis{Collins:99, author = "Michael Collins", title = "Head-Driven Statistical Models for Natural Language Parsing", school = "University of Pennsylvania", year = 1999 } @InProceedings{Collins:97, author = "Michael Collins", title = "Three Generative, Lexicalised Models for Statistical Parsing", booktitle = "Proceedings of the 35th Annual Meeting of the Association for Computational Linguistics (ACL)", year = 1997, address = "Madrid, Spain" } @InProceedings{Collins:96, author = "Michael Collins", title = "A New Statistical Parser Based on Bigram Lexical Dependencies", booktitle = acl96, year = 1996, address = acl96o, note = "electronically available at http://xxx.lanl.gov/abs/cmp-lg/9605012" } @Book{Cormen:94, author = "Thomas H. Cormen and Charles E. Leiserson and Ronald L. Rivest", title = "Introduction to Algorithms", publisher = "The MIT Press", year = 1994, address = "Cambridge, Massachusetts" } @InProceedings{Cutting:92, author = "Doug Cutting and Julian Kupiec and Jan Pedersen and Penelope Sibun", title = "A practical part-of-speech tagger", pages = "133--140", booktitle = "Proceedings of the Third Conference on Applied Natural Language Processing", year = 1992, address = "Trento, Italy" } @InProceedings{Dagan:90, author = "Ido Dagan and Alon Itai", title = "Automatic Acquisition of Constraints for the Resolution of Anaphora References and Syntactic Ambiguities", booktitle = coling90, year = 1990, address = coling90o } @InProceedings{Dagan:91, author = "Ido Dagan and Alon Itai and Ulricke Schwall", title = "Two Languages Are More Informative Than One", booktitle = acl91, year = 1991, address = acl91o } @InProceedings{Dagan/Pereira:94, author = "Ido Dagan and Fernando C. Pereira", title = "Similarity-Based Estimation of Word Cooccurrence Probabilities", booktitle = acl94, year = 1994, address = acl94o, note = "Also available electronically at http://xxx.lanl.gov/abs/cmp-lg/9405001" } @TechReport{Daille:95, author = "B{\'e}atrice Daille", title = "Combined Approach for Terminology Extraction: lexical statistics and linguistic filtering", institution = "{UCREL}, Lancaster University", year = 1995, number = 5 } @article{Darroch:72, author = "J.N. Darroch and D. Ratcliff", title = "Generalized Iterative Scaling for Log-Linear Models", journal = "The Annals of Mathematical Statistics", year = 1972, volume = 43, number = 5, pages = "1470--1480" } @InProceedings{DeLima:97, author = "Erika de Lima", title = "Assigning Grammatical Relations with a Backoff Model", booktitle = "Proceedings of the Second Conference on Empirical Methods in Natural Language Processing", year = 1997, note = "electronically available at http://xxx.lanl.gov/abs/cmp-lg/9706001" } @Article{Dempster:77, author = "A. P. Dempster and N. M. Laird and D. B. Rubin", journal = "Journal of the Royal Statistical Society", title = "Maximum Likelihood from Incomplete Data via the {EM} Algorithm", volume = 39, year = 1977 } @InProceedings{Derouault84, author = "Anne-Marie Derouault and Bernard Merialdo", title = "Language modelling at the syntactic level", booktitle = "Proceedings of the 7th International Conference on Pattern Recognition", year = 1984, address = "Montreal, Canada" } @Article{DeRose, author = "Steven J. DeRose", title = "Grammatical Category Disambiguation By Statistical Optimization", journal = "Computational Linguistics", year = 1988, volume = 14, number = 1, pages = "31--39" } @InProceedings{Dipper:00, author = "Stefanie Dipper", title = "Grammar-based Corpus Annotation", booktitle = "Proceedings of the Workshop on Linguistically Interpreted Corpora LINC", editor = "Anne Abeill{\'e} and Thorsten Brants and Hans Uszkoreit", year = 2000, address = "Luxembourg", pages = "56--64" } @Article{Wordmanager, author = "Marc Domenig and Alain Hsiung", title = "Concepts and tools for lexical knowledge acquisition", journal = "AI communications", year = 1996, volume = 9, number = 2, pages = "79--82" } @InProceedings{Doerre/Eisele:90, author = "Jochen D{\"o}rre and Andreas Eisele", title = "Feature Logic With Disjunctive Unification", booktitle = coling90, year = 1990, address = coling90o, pages = "100--105" } @Book{Doerre:93, author = "Jochen D{\"o}rre", title = "Feature-Logik und Semiunifikation", publisher = "Infix", year = 1993, volume = 128, series = "Dissertationen zur K{\"u}nstlichen Intelligenz", address = "Sankt Augustin, Germany" } @InProceedings{Doerre:97, author = "Jochen D{\"o}rre", title = "Efficient Construction of Underspecified Semantics under Massive Ambiguity", booktitle = "Proceedings of the 35th Annual Meeting of the Association for Computational Linguistics (ACL)", year = 1997, address = "Madrid, Spain" } @InProceedings{Dienes/Dubey:03a, author = "P{\'e}ter Dienes and Amit Dubey", title = "Deep Syntactic Processing by Combining Shallow Methods", booktitle = acl03, year = 2003, address = acl03o, pages = "431--438" } @InProceedings{Dienes/Dubey:03b, author = "P{\'e}ter Dienes and Amit Dubey", title = "Antecedent Recovery: Experiments with a Trace Tagger", booktitle = "Proceedings of the 2003 Conference on Empirical Methods in Natural Language Processing", year = 2003, address = "Sapporo, Japan" } @InProceedings{Dubey/Keller:03, author = "Amit Dubey and Frank Keller", title = "Probabilistic Parsing for {G}erman using Sister-Head Dependencies", booktitle = acl03, year = 2003, address = acl03o, pages = "96--103" } @PhdThesis{Dubey:04, author = "Amit Dubey", title = "Statistical Parsing for German: Modeling syntactic properties and annotation differences", school = "Saarland University, Germany", year = 2004 } @InProceedings{Dubey:05, author = {Amit Dubey}, title = {What to do when lexicalization fails: parsing {G}erman with suffix analysis and smoothing}, booktitle = acl05, year = 2005, address = acl05o} @TechReport{Dunning:94, author = "Ted Dunning", title = "Statistical Identification of Language", institution = "Computing Research Lab, New Mexico State University", year = 1994, key = "MCCS-94-273", month = "March" } @Article{Dunning:93, author = "Ted Dunning", title = "Accurate Methods for the Statistics of Surprise and Coincidence", journal = "Computational Linguistics", year = 1993, volume = 19, number = 1, pages = "61--74" } @Article{Earley:70, author = "Jay Earley", title = "An efficient context-free parsing algorithm", journal = "Communications of the ACM", year = 1970, volume = 13, number = 2, pages = "94--102" } @InProceedings{Eckle96, author = "Judith Eckle and Ulrich Heid", title = "Extracting raw material for a {G}erman subcategorization lexicon from newspaper text", booktitle = "Proceedings of the 4th International Conference on Computational Lexicography, COMPLEX", year = 1996, address = "Budapest, Hungary" } @InProceedings{Eckle98, author = "Jonas Kuhn and Judith Eckle-Kohler and Christian Rohrer", title = "Lexicon Acquisition with and for Symbolic {NLP}-Systems - a Bootstrapping Approach", booktitle = "Proceedings of LREC", year = 1998, address = "Granada, Spain" } @InCollection{Eisele:94, author = "Andreas Eisele", title = "Towards probabilistic extensions of constraint-based grammars", booktitle = "Computational Aspects of constraint-based linguistic Description II", publisher = "Institute for Computational Linguistics {(IMS-CL)}", year = 1994, editor = "Jochen D{\"o}rre", address = "Stuttgart", pages = "3--21", note = "{DYANA-2} Deliverable R1.2.B" } @TechReport{Eisner:96b, author = {Jason Eisner}, title = {An Empirical Comparison of Probability Models for Dependency Grammar}, year = 1996, institution = {Institute for Research in Cognitive Science, Univ. of Pennsylvania}, number = {IRCS-96-11}, note = {18 pages} } @InProceedings{Eisner:96, author = "Jason Eisner", title = "Three New Probabilistic Models for Dependency Parsing: An Exploration", booktitle = coling96, year = 1996, address = coling96o, pages = "340--345", note = "electronically available at http://xxx.lanl.gov/abs/cmp-lg/9706003" } @InProceedings{Elworthy, author = "David Elworthy", title = "Does {Baum-Welch} Re-estimation Help Taggers?", booktitle = "Proceedings of the 4th Conference on Applied Natural Language Processing", year = 1994, address = "Stuttgart, Germany", pages = "53--58" } @InProceedings{Emele:91, author = "Martin Emele", title = "Unification with lazy non-redundant Copying", booktitle = acl91, year = 1991, address = acl91o, pages = "323--330" } @Book{Emele:97, author = "Martin C. Emele", title = "Der {TFS}-Repr{\"a}sentationsformalismus", publisher = "Universit{\"a}t Stuttgart", year = 1997, volume = 3, number = 6, series = "Arbeitspapiere des Instituts f{\"u}r Maschinelle Sprachverarbeitung", address = "Stuttgart,Germany" } @Book{Erben, author = "Johannes Erben", title = "Einf{\"u}hrung in die deutsche Wortbildungslehre", publisher = "Erich Schmidt Verlag ", year = 2000, edition = 4, address = "Berlin, Germany" } @InProceedings{Evert01, author = "Stefan Evert and Brigitte Krenn", title = "Methods for the Qualitative Evaluation of Lexical Association Measures", booktitle = acl01, year = 2001, address = acl01o, } @InCollection{Federici:94, author = "Stefano Federici and Vito Pirrelli", title = "Context-sensitivity and linguistic structure in analogy-based parallel networks", booktitle = "Current Issues in Mathematical Linguistics", publisher = "North-Holland", year = 1994, editor = "Carlos Martin-Vide", address = "Amsterdam", pages = "353--362" } @TechReport{Feldweg:93, author = "Helmut Feldweg", title = "Stochastische {W}ortartendisambiguierung f{\"u}r das {D}eutsche", institution = "Seminar Sprachwissenschaft, Universit{\"a}t T{\"u}bingen", year = 1993, type = "SfS-report", number = "8--93" } @InCollection{Feldweg:96, author = "Helmut Feldweg", title = "Implementation and evaluation of a {G}erman {HMM} for {POS} disambiguation", booktitle = "Proceedings of the ACL SIGDAT-Workshop", pages = "41--46", year = 1995, Adress = "Dublin, Ireland" } @InProceedings{Fissaha:03, author = "Sisay Fissaha and Daniel Olejnik and Ralf Kornberger and Karin M{\"u}ller and Detlef Prescher", title = "Experiments in {G}erman Treebank Parsing", booktitle = "Proceedings of the 6th International Conference on Text, Speech and Dialogue (TSD)", year = 2003, address = "Ceske Budejovice, Czech Republic" } @InProceedings{Forst:07, author = {Martin Forst}, title = {Filling Statistics with Linguistics - Property Design for the Disambiguation of {G}erman {LFG} Parses}, booktitle = { Proceedings of the ACL Workshop on Deep Linguistic Processing}, year = 2007, address = {Prague, Czech Republic}} @InProceedings{Dreyer_et_al:06, author = {Markus Dreyer and David A. Smith and Noah A. Smith}, title = {Vine parsing and minimum risk reranking for speed and precision}, booktitle = {Proceedings of the 10th Conference on Computational Natural Language Learning (CONLL-X)}, pages = {201--205}, year = 2006, address = {New York City, New York}} @inproceedings{boosting, author = "Yoav Freund and Robert E. Schapire", title = "A decision-theoretic generalization of on-line learning and an application to boosting", booktitle = "European Conference on Computational Learning Theory", pages = "23-37", year = "1995" } @InBook{Garside:87, author = "Roger Garside", title = "The Computational Analysis of {English}: A Corpus-based Approach", chapter = "The CLAWS Word-tagging System", publisher = "Longman", year = 1987, editor = "Roger Garside and Geoffrey Leech and Geoffrey Sampson", address = "London" } @Book{GPSG85, author = "Gerald Gazdar and Ewan Klein and Geoffrey Pullum and Ivan Sag", title = "Generalized Phrase Structure Grammar", publisher = "Harvard University Press", year = 1985, address = "Cambridge, Mass." } @InProceedings{Gimenez:04, author = "Jes{\'u}s Gim{\'e}nez and Llu{\'i}s M{\`a}rquez", title = "{SVMTool}: A general {POS} tagger generator based on Support Vector Machines", booktitle = "Proceedings of the IV International Conference on Language Resources and Evaluation (LREC'04)", year = 2004, address = "Lisbon, Portugal", pages = "43--46" } @Article{Good:53, author = "I. Good", title = "The population frequencies of species and the estimation of population parameters", journal = "Biometrika", year = 1953, volume = 40, pages = "237--264" } @InProceedings{Goodman:96, author = "Joshua Goodman", title = "Parsing algorithms and metrics", booktitle = acl96, year = 1996, address = acl96o, pages = "177--183" } @InProceedings{Goodman:97, author = "Joshua Goodman", title = "Probabilistic Feature Grammars", booktitle = "Proceedings of the 5th International Workshop on Parsing Technologies (IWPT)", year = 1997, organization = "Massachusetts Institute of Technology", address = "Cambridge, Ma.", pages = "89--100" } @TechReport{Greene:71, author = "B.B. Greene and G.M. Rubin", title = "Automatic grammatical tagging of {English}", institution = "Department of Linguistics, Brown University", year = 1971, address = "Providence, Rhode Island" } @InProceedings{Grefenstette:94, author = "Gregory Grefenstette and Pasi Tapanainen", title = "What is a word, What is a sentence? Problems of Tokenization", booktitle = "Proceedings of the 3rd Conference on Computational Lexicography and Text Research (COMPLEX)", year = 1994, address = "Budapest" } @InProceedings{Comlex:94, author = "Ralph Grishman and Catherine Macleod and Adam Meyers", title = "Comlex Syntax: Building a Computational Lexicon", booktitle = "Proceedings of the 15th International Conference on Computational Linguistics (COLING)", year = 1994, address = "Kyoto, Japan" } @TechReport{Groenendijk:93, author = "Marius Groenendijk", title = "Xmfed User Guide", institution = "Commision of the European Community", year = 1993, } @InProceedings{GermaNet, author = "Birgit Hamp and Helmut Feldweg", title = "GermaNet - a Lexical-Semantic Net for {G}erman", booktitle = "Proceedings of the ACL workshop on Automatic Information Extraction and Building of Lexical Semantic Resources for NLP Applications", year = 1997, address = "Madrid" } @InProceedings{HeidSaeuberlichFitschen02, author = {Ulrich Heid and Bettina S{\"a}uberlich and Arne Fitschen}, title = {Using Descriptive Generalisations in the Acquisition of Lexical Data for Word Formation}, year = {2002}, booktitle = {Proceedings of the 3rd Conference on Language Resources and Evaluation}, volume = {IV}, pages = {86--92}, address = {Las Palmas de Gran Canaria, Spain}, keywords = {DeKo,CorpLex,Lexikographie} } @Article{Hindle/Rooth, author = "Donald M. Hindle and Mats Rooth", title = "Structural Ambiguity and Lexical Relations", journal = "Computational Linguistics", year = 1993, volume = 19, number = 1 } @TechReport{Gertwol, author = "Mariikka Haapalainen and Ari Majorin", title = "GERTWOL: {Ein} {System} zur automatischen {Wortformerkennung} deutscher {W{\"o}rter}", institution = "Lingsoft Inc.", year = 1994 } @InProceedings{Hirschberg:90, author = "Julia Hirschberg", title = "Accent and Discourse Context: Assigning pitch accent in synthetic speech", year = 1990, pages = "952--957", booktitle = "Proceedings of the Eighth National Conference", organization = "American Association for Artificial Intelligence", address = "Boston" } @Article{Hirschberg:1993, author = "Julia Hirschberg", title = "Pitch Accent in Context: Predicting Intonational Prominence from Text", journal = "Artificial Intelligence", year = 1993, volume = 63 } @Article{Hirschberg/Prieto:1996, author = "Julia Hirschberg and Pilar Prieto", title = "Training intonational phrasing automatically for {English} and Spanish Text-to-Speech", journal = "Speech Communication", year = 1996, volume = 18, pages = "281--290" } @Article{Hyafil:76, author = "L. Hyafil and Ronald L. Rivest", title = "Constructing optimal binary decision trees in {NP}-complete", journal = "Information Processing Letters", year = 1976, volume = 5, number = 1, pages = "15--17" } @InProceedings{Jelinek:80, author = "Frederick Jelinek and Robert L. Mercer", title = "Interpolated estimation of {M}arkov source parameters from sparse data", pages = "381--397", booktitle = "Workshop on Pattern Recognition in Practice", year = 1980, address = "Amsterdam" } @InCollection{Jelinek:85, author = "Fredrick Jelinek", title = "{M}arkov Source modeling of text generation", booktitle = "Impact of Processing Techniques on Communication", publisher = "Nijhoff", year = 1985, editor = "J. K. Skwirzinski ", address = "Dordrecht" } @PhdThesis{Joachims:01, author = "Thorsten Joachims", title = "Learning to Classify Text Using Support Vector Machines", school = "Universit{\"a}t Dortmund", year = 2001, month = "February" } @InProceedings{Johnson:88, author = "Mark Johnson", title = "Deductive Parsing with Multiple Levels of Representation", booktitle = acl88, year = 1988, address = acl88o, pages = "241--248" } @Article{Johnson:98, author = "Mark Johnson", title = "{PCFG} Models of Linguistic Tree Representations", journal = "Computational Linguistics", year = 1998, volume = 24, number = 4, pages = "613--632" } @InProceedings{Johnson:01, author = "Mark Johnson", title = "A simple pattern-matching algorithm for recovering empty nodes and their antecedents", booktitle = acl01, year = 2001, address = acl01o, pages = "136--143" } @InCollection{Kaplan/Bresnan:82, author = "Ronald M. Kaplan and Joan Bresnan", title = "{L}exical-{F}unctional {G}rammar : A formal system for grammatical representation", booktitle = "The mental representation of grammatical relations", publisher = "The MIT Press", year = 1982, editor = "Joan Bresnan", chapter = 4, pages = "173--281" } @InProceedings{Karp:92, author = "Daniel Karp and Yves Schabes and Martin Zaidel and Dania Egedi", title = "A Freely Available Wide Coverage Morphological Analyzer for {English}", booktitle = coling92, year = 1992, address = coling92o, pages = "950--954" } @InProceedings{Karttunen95, author = "Lauri Karttunen", title = "The replace operator", booktitle = acl95, year = 1995, address = acl95o, pages = "16--23" } @InCollection{Karttunen87, author = "Lauri Karttunen and Kimmo Koskenniemi and Ronald M. Kaplan", title = "A compiler for two-level phonological rules", booktitle = "Tools for Morphological Analysis", publisher = "Center for the Study of Language and Information, Stanford University", year = 1987, editor = "Mary Dalrymple and Ronald M. Kaplan and Lauri Karttunen and Kimmo Koskenniemi and Sami Shaio and Michael Wescoat", volume = "87-108", series = "CSLI Reports", address = "Palo Alto, CA", pages = "1-61" } @TechReport{Karttunen/Beesley92, author = "Lauri Karttunen and Kenneth R. Beesley", title = "Two-Level Rule Compiler", institution = "Xerox Palo Alto Research Center", year = 1992, number = "ISTL-92-2", address = "Palo Alto, California" } @InProceedings{Karttunen/Kay:85, author = "Lauri Karttunen and Martin Kay", title = "Structure sharing with binary trees", booktitle = acl85, year = 1985, address = acl85o, pages = "133--136" } @Article{Kaplan/Kay94, author = "Ronald Kaplan and Martin Kay", title = "Regular Models of phonological rule systems", journal = "Computational Linguistics", year = 1994, volume = 20, number = 3, pages = "331--379" } @InProceedings{Karlsson:90, author = "Fred Karlsson", title = "Constraint Grammar as a Framework for Parsing Running Text", booktitle = coling90, year = 1990, address = coling90o, pages = "168--173" } @TechReport{Kasami:65, author = "T. Kasami", title = "An efficient recognition and syntax analysis algorithm for context-free languages", institution = "Air Force Cambridge Research Laboratory", year = 1965, type = "Technical Report", number = "AFCRL-65-758" } @InProceedings{Kasper/Krieger:96, author = "Walter Kasper and Hans-Ulrich Krieger", title = "Modularizing Codescriptive Grammars for Efficient Parsing", booktitle = coling96, year = 1996, address = coling96o, pages = "628--633" } @InProceedings{Kasper:87, author = "Robert T. Kasper", title = "A Unification Method for Disjunctive Feature Descriptions", booktitle = acl87, year = 1987, address = acl87o, pages = "235--242" } @Article{Katz:87, author = "S. Katz", title = "Estimation of probabilities from sparse data for the language model component of a speech recognizer", journal = "IEEE Transactions on ASSP", year = 1987, volume = 34, number = 3, pages = "400--401" } @TechReport{Kempe:93, author = "Andr\'e Kempe", title = "A probabilistic tagger and an analysis of tagging errors", institution = "Institut {f\"ur} Maschinelle Sprachverarbeitung, {Universit{\"a}t} Stuttgart", year = 1993 } @InProceedings{Kempe:94, author = "Andr\'e Kempe", title = "Probabilistic tagging with feature structures", pages = "161--165", booktitle = "Proceedings of the 15th International Conference on Computational Linguistics (COLING)", year = 1994, address = "Kyoto, Japan" } @TechReport{Kiefer/Krieger/Prescher, author = "Bernd Kiefer and Hans-Ulrich Krieger and Detlef Prescher", title = "A novel disambiguation method for unification-based grammars using probabilistic context-free approximations", institution = "Language Technology Lab, DFKI GmbH", year = 2002, type = "internal report", address = "Saarbr{\"u}cken, Germany" } @InProceedings{Kim:99, author = "Jin-Dong Kim and Sang-Zoo Lee and Hae-Chang Rim", title = "HMM Specialization with Selective Lexicalization", booktitle = "Joint SIGDAT Conference on Empirical Methods in Natural Language Processing and Very Large Corpora", year = 1999, address = acl99o } @InProceedings{Klatt:02, author = "Stefan Klatt", title = "Combining a Rule-Based Tagger with a Statistical Tagger for Annotating {G}erman Texts", booktitle = "KONVENS 2002. 6. Konferenz zur Verarbeitung nat{\"u}rlicher Sprache", editor = "Stephan Buseman", year = 2002, address = "Saarbr{\"u}cken, Germany" } @Phdthesis{klatt:diss, author = {Stefan Klatt}, title = {{Kombinierbare Textanalyseverfahren f\"ur die Korpusannotation und Informationsextraktion}}, school = {Universit\"at Stuttgart}, year = 2005} @Inproceedings{klatt:04, author = {Stefan Klatt and Bernd Bohnet}, title = {{You don't have to think twice if you carefully tokenize}}, booktitle = {{Proceedings of the First International Joint Conference on Natural Language Processing (IJCNLP-04)}}, address = {Hainan (China)}, year = 2004 } @InProceedings{Toutanova:03, author = {Kristina Toutanova and Dan Klein and Christopher Manning and Yoram Singer}, title = {Feature-Rich Part-of-Speech Tagging with a Cyclic Dependency Network}, booktitle = {Proceedings of HLT-NAACL}, pages = {252--259}, year = 2003, address = {Edmonton, Canada}} @InProceedings{Klein/Manning:03a, author = {Dan Klein and Christopher D. Manning}, title = {Accurate Unlexicalized Parsing}, booktitle = acl03, year = 2003, address = acl03o, pages = "423--430" } @InProceedings{Klein/Manning, author = {Dan Klein and Christopher D. Manning}, title = {A* Parsing: Fast Exact Viterbi Parse Selection}, booktitle = {Proceedings of HLT-NAACL}, year = 2003, address = {Edmonton, Canada} } @inproceedings{Finkel:05, author = {Finkel, Jenny Rose and Grenager, Trond and Manning, Christopher}, title = {Incorporating non-local information into information extraction systems by {G}ibbs sampling}, booktitle = {Proceedings of the 43rd Annual Meeting on Association for Computational Linguistics (ACL)}, year = {2005}, pages = {363--370}, address = {Ann Arbor, Michigan} } @Article{Klein/Simmons, author = "S. Klein and R. Simmons", title = "A computational approach to grammatical coding of {English} words", journal = "JACM", year = 1963, volume = 10, pages = "334--337" } @Book{Knowles/etal:1996, author = "G. Knowles and B. Williams and L. Taylor", title = "A Corpus of Formal British {English} Speech: The Lancaster/IBM Spoken {English} Corpus", publisher = "Longman, London", year = 1996 } @InProceedings{Koehn/etal:2000, author = "Philipp Koehn and Steven Abney and Julia Hirschberg and Michael Collins", title = "Improving intonational phrasing with syntactic information", booktitle = "ICASSP 2000", year = 2000 } @InProceedings{Koehn/Knight:03, author = "Philipp Koehn and Kevin Knight", title = "Empirical Methods for Compound Splitting", booktitle = eacl03, year = 2003, address = eacl03o, pages = "431--438" } @Article{Koenig:99, author = "Esther K{\"o}nig-Baumer", title = "LexGram - a practical categorial grammar formalism", journal = "Journal of Language and Computation", year = 1999, volume = 1, number = 1, pages = "33--52" } @PhdThesis{Koskenniemi:83, author = "Kimmo Koskenniemi", title = "Two-Level Morphology: A General Computational Model for Word-Form Recognition and Production", school = "University of Helsinki", year = 1983 } @InProceedings{Krenn:97, author = "Brigitte Krenn", title = "Tagging Syllables", booktitle = "Proceedings of Eurospeech", year = 1997, address = "Rhodes, Greece" } @Misc{TIPSTER:93, author = "LDC", title = "{The {TIPSTER} Information Retrieval Text Research Collection}", howpublished = "Linguistic Data Consortium (LDC), CD-ROM LDC93T3-1.1--3.1", year = 1993, key = "TIPSTER" } @InProceedings{Lafferty:01, author = "John Lafferty and Andrew McCallum and Fernando Pereira", title = "Conditional random fields: Probabilistic models for segmenting and labeling sequence data", booktitle = "Proceedings of ICML", year = 2001, pages = "282--289" } @Article{Lari/Young:90, author = "K. Lari and S. Young", title = "The estimation of stochastic context-free grammars using the Inside-Outside algorithm", journal = "Computation Speech and Language Processing", year = 1990, volume = 4, pages = "35--56" } @InProceedings{Lauer:95, author = "Mark Lauer", title = "Corpus Statistics Meet the Noun Compound: Some Empirical Results", booktitle = acl95, year = 1995, address = acl95o, pages = "47--54", note = "electronically available at http://xxx.lanl.gov/abs/cmp-lg/9504033" } @InProceedings{Leech:94, author = "Geoffrey Leech and Roger Garside and Michael Bryant", title = "{CLAWS4}: The Tagging of the British National Corpus", pages = "622--628", booktitle = "Proceedings of the 15th International Conference on Computational Linguistics (COLING)", year = 1994, address = "Kyoto, Japan" } @book{Levin:93, author = "Beth Levin", title = "English Verb Classes and Alternations. A Preliminary Investigation", year = 1993, publisher = "The University of Chicago Press", address = "Chicago/London" } @InProceedings{Levy/Manning, author = "Roger Levy and Christopher D. Manning", title = "Deep Dependencies from Context-Free Statistical Parsers: Correcting the Surface Dependency Approximation", booktitle = acl04, year = 2004, address = acl04o, pages = "327--334" } @InProceedings{Light/Abney:99, author = "Steven Abney and Marc Light", title = "Hiding a Semantic Class Hierarchy in a {M}arkov Model", booktitle = "Proceedings of the ACL Workshop on Unsupervised Learning in Natural Language Processing", year = 1999, address = "College Park, MD" } @InProceedings{Lezius:00, author = "Wolfgang Lezius and Stefanie Dipper and Arne Fitschen", title = "{IMSLex} -- Representing Morphological and Syntactical Information in a Relational Database", booktitle = "Proceedings of the 9th EURALEX International Congress, Stuttgart, Germany", editor = "Ulrich Heid and Stefan Evert and Egbert Lehmann and Christian Rohrer", year = 2000, pages = "133--139", postscript= "http://www.ims.uni-stuttgart.de/projekte/IMSLex/euralex2000.ps.gz", pdf = "http://www.ims.uni-stuttgart.de/projekte/IMSLex/euralex2000.pdf" } @Article{Lippmann:89, author = "R. P. Lippmann", title = "Review of Neural Networks for Speech Recognition", journal = "Neural Computation", year = 1989, volume = 1, pages = "1--38" } @MastersThesis{Lorenz97 , author = "Oliver Lorenz", title = "Automatische {Wortformerkennung} f{\"ur} das {Deutsche} im {Rahmen} von {MALAGA}", school = "Friedrich-Alexander-Universit{\"a}t", year = 1997, address = "Erlangen, Germany" } @InProceedings{LuedelingFitschen02, author = "Anke L{\"u}deling and Arne Fitschen", title = "An Integrated Lexicon for the Automatic Analysis of Complex Words", booktitle = "Proceedings of the 10th EURALEX International Congress", volume = "I", address = "Copenhagen, Denmark", year = 2002, pages = "145--152" } @PhdThesis{Magerman:94, author = "David M. Magerman", title = "Natural Language Processing as Statistical Pattern Recognition", school = "Stanford University", year = 1994 } @Manual{ChaSen, title = "Japanese morphological analysis system ChaSen", key = "NAIST-IS-TR99009", author = "Yuji Matsumoto and A. Kitauchi and T. Yamashita and Y. Hirano and H. Matsuda and M. Asahara", organization = "Nara Institute of Science and Technology", address = "Nara, Japan", year = 1999 } @InProceedings{Manning93, author = "Christopher D. Manning", title = "Automatic Acquisition of a Large Subcategorization Dictionary from Corpora", booktitle = acl93, year = 1993, address = acl93o, pages = "235--242" } @Article{Marcus:93, author = "Mitchell P. Marcus and Beatrice Santorini and Mary Ann Marcinkiewicz", title = "Building a large annotated corpus of {E}nglish: the {P}enn {T}reebank", journal = "Computational Linguistics", year = 1993, volume = 19, number = 2, pages = "313--330", month = "June" } @InProceedings{Marquez:97, author = "Llu{\'i}s M{\`a}rquez and Llu{\'i}s Padr{\'o}", title = "A flexible {POS} tagger using an automatically acquired language model", booktitle = "Proceedings of the 35th Annual Meeting of the Association for Computational Linguistics (ACL)", year = 1997, address = "Madrid, Spain", pages = "238--245" } @PhdThesis{Marquez:99, author = {Llu{\'i}s M{\`a}rquez}, title = {POS Tagging : A Machine Learning Approach based on Decision Trees}, school = {Dep. LSI, Universitat Politecnica de Catalunya (UPC)}, year = 1999, address = {Barcelona, Spain}, month = {July}} @Article{Marshall83, author = "Ian Marshall", title = "Choice of Grammatical Word-class without Global Syntactic Analysis: Tagging Words in the {LOB} Corpus", journal = "Computers and the Humanities", year = 1983, volume = 17, pages = "139--150" } @InProceedings{Matsuzaki:05, author = "Takuya Matsuzaki and Yusuke Miyao and Jun'ichi Tsujii", title = "Probabilistic {CFG} with latent annotations", booktitle = acl05, year = 2005, address = acl05o } @InProceedings{Maxwell/Kaplan:89, author = "John T. {Maxwell~III} and Ronald M. Kaplan", title = "An Overview of Disjunctive Constraint Satisfaction", booktitle = "Proceedings of the International Workshop on Parsing Technologies", year = 1989, publisher = "Carnegie Mellon University", address = "Pittsburgh", pages = "18--27" } @Article{Maxwell/Kaplan:94, author = "John T. {Maxwell~III} and Ronald M. Kaplan", title = "The Interface between Phrasal and Functional Constraints", journal = "Computational Linguistics", year = 1994, volume = 19, number = 4, pages = "571--589" } @Misc{Maxwell/Kaplan:96, author = "John T. {Maxwell~III} and Ronald M. Kaplan", title = "Unification-based Parsers that Automatically Take Advantage of Context Freeness", howpublished = "Paper presented at the LFG96 Conference, Grenoble, France. Ms. Xerox PARC", year = 1996 } @inproceedings{McCarthy98, author = "Diana McCarthy and Anna Korhonen", title = "Detecting Verbal Participation in Diathesis Alternations", booktitle = acl98, address = acl98o, pages = "1493--1495", year = 1998 } @InProceedings{McCarthy00, author = "Diana McCarthy", title = "Using semantic preferences to identify verbal participation in role switching alternations", booktitle = "Proceedings of the 1st Meeting of the North American Chapter of the Association for Computational Linguistics (ANLP-NAACL)", year = 2000, address = "Seattle, Washington", pages = "256--263" } @Article{Merialdo:94, author = "Bernard Merialdo", title = "Tagging {English} text with a probabilistic model", journal = "Computational Linguistics", year = 1994, volume = 20, number = 2, pages = "155--171" } @InProceedings{Meteer:91, author = "Marie Meteer and Richard Schwartz and Ralph Weischedel", title = "Empirical studies in part-of-speech labelling", booktitle = "DARPA Speech and Natural Language Workshop", year = 1991, publisher = "Morgan Kaufmann" } @InProceedings{Mikheev:98, author = "Andrei Mikheev", title = "Feature Lattices for Maximum Entropy Modelling", booktitle = acl98, year = 1998, address = acl98o, pages = "845--848" } @InProceedings{Mikheev:99, author = "Andrei Mikheev", title = "A Knowledge-free Method for Capitalized Word Disambiguation", booktitle = acl99, year = 1999, address = acl99o, pages = "159--166" } @Article{Mikheev:02, author = "Andrei Mikheev", title = "Periods, Capitalized Words, etc.", journal = "Computational Linguistics", year = 2002, volume = 28, number = 3, month = "September", pages = "289--318" } Computational Linguistics archive Volume 28 , Issue 3 (September 2002) table of contents Pages: 289 - 318 Year of Publication: 2002 ISSN:0891-2017 Author Andrei Mikheev I @InProceedings{Mikheev:00, author = "Andrei Mikheev", title = "Tagging Sentence Boundaries", booktitle = "Proceedings of the 1st Meeting of the North American Chapter of the Association for Computational Linguistics (ANLP-NAACL)", year = 2000, address = "Seattle, Washington", pages = "264--271" } @InBook{Mikheev:03, author = "Andrei Mikheev", title = "The Oxford Handbook of Computational Linguistics", chapter = "Text Segmentation", publisher = "Oxford University Press", year = 2003, editor = "Ruslan Mitkov", series = "Oxford Handbooks in Linguistics", pages = "201-218" } @TechReport{Miller:93, author = "George A. Miller and Richard Beckwith and Christiane Fellbaum and Derek Gross and Katherine Miller", title = "Introduction to {WordNet}: An On-line Lexical Database", institution = "Cognitive Science Laboratory, Princeton University", year = 1993, annote = "(An earlier version appears in the {\em International Journal of Lexicography\/}, Vol. 3, Number 4, Winter 1990." } @InProceedings{Kiraz/Moebius, author = "George A. Kiraz and Bernd M{\"o}bius", title = "Multilingual syllabification using weighted finite-state transducers", booktitle = "Proceedings of the Third International Workshop on Speech Synthesis", year = 1998, address = "Jenolan Caves, Australia", pages = "71--76" } @inproceedings{Mohri/Sproat96, author = "Mehryar Mohri and Richard Sproat", title = "An Efficient Compiler for Weighted Rewrite Rules", pages = "231--238", booktitle = acl96, year = 1996, address = acl96o } @article{Mohri00, author = "Mehryar Mohri and Fernando Pereira and Michael Riley", title = "The design principles of a weighted finite-state transducer library", journal = "Theoretical Computer Science", volume = 231, number = 1, pages = "17--32", year = 2000 } @Article{Mueller:80, author = "Hans M{\"u}ller and V.Amerl and G. Natalis", title = "Worterkennungsverfahren als {G}rundlage einer {U}niversalmethode zur automatischen {S}egmentierung von {T}exten in {S}{\"a}tze. Ein {V}erfahren zur maschinellen {S}atzgrenzenbestimmung im {E}nglischen", journal = "Sprache und Datenverarbeitung", year = 1980, number = 1, pages = "46-63" } @InProceedings{Mueller01, author = "Karin M{\"u}ller", title = "Automatic Detection of Syllable Boundaries Combining the Advantages of Treebank and Bracketed Corpora Training", booktitle = acl01, year = 2001, address = acl01o, pages = "402--409" } @PhdThesis{Mueller02, author = "Karin M{\"u}ller", title = "Probabilistic Syllable Modeling Using Unsupervised and Supervised Learning Methods", school = "Institute of Natural Language Processing (IMS), University of Stuttgart", year = 2002, address = "Stuttgart, Germany" } @InProceedings{Mueller02b, author = "Karin M{\"u}ller", title = "Probabilistic Context-Free Grammars for Phonology", booktitle = "Proceedings of the ACL Workshop on Morphological and Phonological Learning", year = 2002, address = acl02o } @InProceedings{Nagata97, author = "Masaaki Nagata", title = "A self-organizing Japanese word segmenter using heuristic word identification and re-estimation", booktitle = "Proceedings of the 5th Workshop on Very Large Corpora", year = 1997, address = "Beijing, China", pages = "203-215" } @InProceedings{Nagata:92, author = "Masaaki Nagata", title = "An empirical study of rulegranularity and unification interleaving toward an efficient unification-based parsing system", booktitle = coling92, year = 1992, address = coling92o, pages = "177--183" } @InProceedings{Nakamura:90, author = "M. Nakamura and K. Maruyama and T. Kawabata and K. Shikano", title = "Neural network approach to word category prediction for {English} texts", editor = "H. Karlgren", pages = "213--218", booktitle = coling90, year = 1990, address = coling90o } @Article{Ney:94, author = "Hermann Ney and U. Essen and R. Kneser", title = "On structuring probabilistic dependencies in stochastic language modelling", journal = "Computer Speech and Language", year = "1994:", volume = 8, pages = "1--38" } @InProceedings{Kneser/Ney, author = "Reinhard Kneser and Hermann Ney", title = "Improved backing-off for ngram language modeling", booktitle = "Proceedings of the International Conference on Acoustics, Speech and Signal Processing", volume = 1, year = 1995, pages = "181--184" } @Book{Nespor/Vogel:1986, author = "Marina Nespor and Irenen Vogel", title = "Prosodic Phonology", publisher = "Foris publications", year = 1986 } @Article{Niu04, author = "Cheng Niu and Wei Li and Jihong Ding and Rohini K. Srihari", title = "Orthographic Case Restoration Using Supervised Learning Without Manual Annotation", journal = "International Journal on Artificial Intelligence Tools", year = 2004, volume = 13, number = 1, pages = "141--156" } @InProceedings{Noord/Gerdemann99, author = "Gertjan van Noord and Dale Gerdemann", title = "An Extendible Regular Expression Compiler for Finite-state Approaches in Natural Language Processing", booktitle = "Automata Implementation. 4th International Workshop on Implementing Automata, WIA", editor = "Oliver Boldt and Helmut J{\"u}rgensen", volume = 2214, series = "Lecture Notes in Computer Science", year = 2001, publisher = "Springer-Verlag", address = "London, Great Britain" } @InProceedings{Moses, author = {Philipp Koehn and Hieu Hoang and Alexandra Birch and Chris Callison-Burch and Marcello Federico and Nicola Bertoldi and Brooke Cowan and Wade Shen and Christine Moran and Richard Zens and Chris Dyer and Ondrej Bojar and Alexandra Constantin and Evan Herbst}, title = {Moses: Open Source Toolkit for Statistical Machine Translation}, booktitle = {Proceedings of the 45th Annual Meeting of the Association for Computational Linguistics (ACL), demonstration session}, year = 2007, address = {Prague, Czech Republic}} @article{Giza, author = {Franz Josef Och and Hermann Ney}, title = {A Systematic Comparison of Various Statistical Alignment Models}, journal= {Computational Linguistics}, number = 1, volume = 29, year = 2003, pages = {19--51}} @InProceedings{Osborne:00, author = "Miles Osborne", title = "Shallow Parsing as Part-of-Speech Tagging", booktitle = "Proceedings of CoNLL and LLL", year = 2000, address = "Lisbon, Portugal" } @InProceedings{Palmer:94, author = "David D. Palmer and Marti A. Hearst", title = "Adaptive Sentence Boundary Disambiguation", booktitle = "Proceedings of the 4th Conference on Applied Natural Language Processing", year = 1994, pages = "241-267", address = "Stuttgart, Germany" } @Article{Palmer:97, author = "David D. Palmer and Marti A. Hearst", title = "Adaptive Multilingual Sentence Boundary Disambiguation", journal = "Computational Linguistics", year = 1997, volume = 23, number = 2, pages = "241--269" } @InProceedings{Pereira/Tishby/Lee, author = "Fernando Pereira and Naftali Tishby and Lillian Lee", title = "Distributional clustering of {E}nglish words", booktitle = acl93, year = 1993, address = acl93o, pages = "183--190" } @InProceedings{Pereira/Warren:83, author = "Fernando C. Pereira and D.H.D. Warren", title = "Parsing as Deduction", booktitle = acl83, year = 1983, address = acl83o, pages = "137--144" } @Book{Pollard/Sag:94, author = "Carl Pollard and Ivan A. Sag", title = "Head-Driven Phrase Structure Grammar", publisher = "University of Chicago Press", year = 1994, address = "Chicago, London" } @PhdThesis{Prescher:02, author = "Detlef Prescher", title = "{EM}-basierte maschinelle {L}ernverfahren f{\"u}r nat{\"u}rliche {S}prachen", school = "Universit{\"a}t Stuttgart", year = 2002, address = "Germany", month = "January" } @InProceedings{Prescher:05, author = "Detlef Prescher", title = "Head-Driven {PCFG}s with Latent-Head Statistics", booktitle = "Proceedings of the 9th International Workshop on Parsing Technologies (IWPT)", year = 2005, address = "Vancouver, Canada" } @InProceedings{Prescher/Heid, author = "Detlef Prescher and Uli Heid", title = "Probabilistisches {C}lustering zur {I}dentifikation von {V}erb-{N}omen-{K}ollokationen", booktitle = "22. Jahrestagung der Deutschen Gesellschaft f{\"u}r Sprache (DGfS)", year = 2000, address = "Marburg, Germany" } @InProceedings{Prescher/Riezler/Rooth, author = {Detlef Prescher and Stefan Riezler and Mats Rooth}, title = {Using a Probabilistic Class-Based Lexicon for Lexical Ambiguity Resolution}, booktitle = {Proceedings of the 18th International Conference on Computational Linguistics (COLING)}, year = 2000, address = {Saarbrücken, Germany}} @InCollection{Quinlan:83, author = "J. Ross Quinlan", title = "Learning efficient classification procedures and their application to chess end games", booktitle = "Machine Learning: An artificial intelligence approach", publisher = "Morgan Kaufmann", year = 1983, editor = "R. Michalski and J. Carbonell and T. Mitchell", pages = "463--482", address = "San Mateo, CA" } @Article{Quinlan:87, author = {J. Ross Quinlan}, title = {Simplifying decision trees}, journal = {International Journal of Man-Machine Studies}, year = 1987, volume = 27, number = 3, pages = {221--234}} @Article{Quinlan:86, author = "J. Ross Quinlan", title = "Induction of Decision Trees", journal = "Machine Learning", year = 1986, volume = 1, pages = "81--106" } @Book{Quinlan:93, author = "J. Ross Quinlan", title = "C4.5 : Programs for Machine Learning", publisher = "Morgan Kaufmann", year = 1993, address = "San Mateo , CA" } @Article{Rabiner:89, author = "Lawrence R. Rabiner", title = "A Tutorial on Hidden {Markov} Models and Selected Applications in Speech Recognition", journal = "Proceedings of the IEEE", year = 1989, volume = 77, number = 2, pages = "257--286" } @PhdThesis{Rapp:1998, author = "Stefan Rapp", title = "Automatische Erstellung von Korpora f{\"u}r die Prosodieforschung", school = "Institute for Computational Linguistics, University of Stuttgart", year = 1998, address = "Stuttgart, Germany" } @InProceedings{Ribas95, author = "Francesc Ribas", title = "On learning more appropriate selectional restrictions", booktitle = eacl95, year = 1995, address = eacl95o, pages = "112--118" } @TechReport{Riezler:97, author = "Stefan Riezler", title = "Probabilistic Constraint Logic Programming", institution = "SfS, Universit{\"a}t T{\"u}bingen", year = 1997, note = "electronically available at http://xxx.lanl.gov/abs/cmp-lg/9711001" } @phdthesis{Riezler:99, author = "Stefan Riezler", title = "Probabilistic Constraint Logic Programming", school = "Seminar f{\"u}r Sprachwissenschaft, Universit{\"a}t T{\"u}bingen", year = 1999 } @inproceedings{Riezler:98, author = "Stefan Riezler", title = "Statistical Inference and Probabilistic Modelling for Constraint-Based {NLP}", booktitle = "Proceedings of {KONVENS 98}", year = 1998, address = "Bonn" } @InProceedings{Riezler/Johnson:99, author = "Mark Johnson and Stuart Geman and Stephen Canon and Chiyi Chi and Stefan Riezler", title = "Estimators for Stochastic ``Unification-Based'' Grammars", booktitle = acl99, year = 1999, address = acl99o } @InProceedings{Riezler/Johnson:00, author = "Stefan Riezler and Detlef Prescher and Jonas Kuhn and Mark Johnson", title = "Lexicalized Stochastic Modeling of Constraint-Based Grammars using Log-Linear Measures and {EM} Training", booktitle = {Proceedings of the 38th Annual Meeting of the Association for Computational Linguistics (ACL)}, year = 2000, address = {Hong Kong} } @InProceedings{Riezler/Johnson:02, author = "Stefan Riezler and Tracy H. King and Ronald M. Kaplan and Richard Crouch and John T. Maxwell III and Mark Johnson", title = "Parsing the Wall Street Journal using a Lexical-Functional Grammar and Discriminative Estimation Techniques", booktitle = acl02, year = 2002, address = acl02o } @InProceedings{Riley:89, author = "Michael D. Riley", title = "Some applications of tree-based modelling to speech and language indexing", pages = "339--352", booktitle = "Proceedings of the DARPA Speech and Natural Language Workshop", year = 1989, publisher = "Morgan Kaufmann" } @Misc{Riley:94, author = "Michael D. Riley and Richard Sproat", title = "Text Analysis Tools in Spoken Language Processing", howpublished = "Slides for ACL Tutorial", year = 1994, note = "available at http://xxx.lanl.gov/abs/cmp-lg/9406036" } @InProceedings{Ramshaw/Marcus:95, author = "L. Ramshaw and M. Marcus", title = "Text Chunking using transformation-based learning", booktitle = "Proceedings of the Third Workshop on Very Large Corpora", year = 1995, organization = "Association for Computational Linguistics", pages = "82--94" } @PhdThesis{Resnik:93, author = "Philip Resnik", title = "Selection and Information: A Class-Based Approach to Lexical Relationships", school = "University of Pennsylvania", year = 1993 } @InCollection{Resnik:06, author = {Philip Resnik}, title = {Word Sense Disambiguation in {NLP} Applications}, booktitle = {Word Sense Disambiguation: Algorithms and Applications}, publisher = {Kluwer}, year = 2006, editor = {Eneko Agirre and Philip Edmonds}} @InProceedings{Resnik:97, author = "Philip Resnik", title = "Selectional preference and sense disambiguation", booktitle = "Proceedings of the ANLP Workshop on Tagging Text with Lexical Semantics: Why, What, and How?", year = 1997, address = "Washington D.C." } @InProceedings{Ratnaparkhi:96, author = "Adwait Ratnaparkhi", title = "A maximum entropy model for part-of-speech tagging", booktitle = "Proceedings of the Conference on Empirical Methods in Natural Language Processing", year = 1996, organization = "University of Pennsylvania" } @InProceedings{Reynar:97, author = "Jeffrey C. Reynar and Adwait Ratnaparkhi", title = "A Maximum Entropy Approach to Identifying Sentence Boundaries", booktitle = "Proceedings of the Fifth Conference on Applied Natural Language Processing", year = 1997, address = "Washington, D.C." } @Article{Rissanen78, author = "J. Rissanen", title = "Modelling by shortest data description", journal = "Automatica", year = 1978, volume = 14, pages = "465--471" } @Book{RocheSchabes:97, author = "Emmanuel Roche and Yves Schabes", title = "Finite-State Language Processing", publisher = "MIT Press", year = 1997 } @InProceedings{Roth:98, author = "Dan Roth and Dmitry Zelenko", title = "Part of speech tagging using a network of linear separators", booktitle = acl98, year = 1998, address = acl98o, pages = "1136--1142" } @Unpublished{Rooth:92, author = "Mats Rooth", title = "Statistical {NP} Tagging", note = "unpublished manuscript", year = 1992 } @InCollection{Rooth:98, author = "Mats Rooth", title = "Two-Dimensional Clusters in Grammatical Relations", booktitle = "Inducing Lexicons with the {EM} Algorithm", publisher = "University of Stuttgart, Germany", year = 1998, volume = 4, series = "AIMS: Arbeitspapiere des Instituts f{\"ur} maschinelle Sprachverarbeitung" } @InProceedings{LSC:99, author = "Mats Rooth and Stefan Riezler and Detlef Prescher and Glenn Carroll and Franz Beil", title = "Inducing a Semantically Annotated Lexicon via {EM}-based Clustering", booktitle = acl99, year = 1999, address = acl99o } @Book{Rumelhart:84, author = "D. E. Rumelhart and J. L. McClelland", title = "Parallel Distributed Processing", publisher = "MIT-Press", year = 1984, address = "Cambridge, MA" } @Article{Graham/Harrison/Ruzzo, author = "S.L. Graham and M.A. Harrison and W.L. Ruzzo", title = "An Improved Context-Free Recognizer", journal = "ACM Transactions on Programming Languages and Systems", year = 1980, volume = 2, number = 3, pages = "415--462" } @InProceedings{Lee:00, author = "Sang-Zoo Lee and Jun-ichi Tsujii and Hae-Chang Rim", title = "Lexicalized Hidden {Markov} Models for Part-of-Speech Tagging", booktitle = "Proceedings of the 18th International Conference on Computational Linguistics (COLING)", year = 2000, address = "Saarbr{\"u}cken, Germany", pages = "481-487" } @TechReport{Schiller:95, author = "Anne Schiller", title = "{DMOR:} {B}enutzeranleitung", institution = "Institut {f\"ur} maschinelle {S}prach\-ver\-ar\-bei\-tung, {Universit{\"a}t} Stuttgart", note = "(in German)", year = 1995 } @InProceedings{Schiller:96, author = "Anne Schiller", title = "Deutsche {Flexions-} und {Kompositionsmorphologie} mit {PC-KIMMO}", editor = "Hausser, Roland", booktitle = "{Proceedings, 1. {M}orpholympics, Erlangen, 7./8. M{\"a}rz 1994}", publisher = "Niemeyer", address = "T{\"u}bingen", year = 1996, } @InProceedings{Schiehlen:96, author = "Michael Schiehlen", title = "Semantic Construction from Parse Forests", booktitle = coling96, year = 1996, address = coling96o } @InProceedings{Schiehlen:03, author = "Michael Schiehlen", title = "Combining Deep and Shallow Approaches in Parsing {G}erman", booktitle = acl03, year = 2003, address = acl03o, pages = "112--119" } @InProceedings{Schiehlen:04, author = "Michael Schiehlen", title = "Annotation Strategies for Probabilistic Parsing in {G}erman", booktitle = "Proceedings of the 20th International Conference on Computational Linguistics (COLING)", year = 2004, address = "Geneva, Switzerland", pages = "390--396" } @InProceedings{deko, author = "Tanja Schmid and Anke L{\"u}deling and Bettina S{\"a}uberlich and Ulrich Heid and Bernd M{\"o}bius", title = "{DeKo: Ein System zur Analyse komplexer W{\"o}rter}", booktitle = "GLDV - Jahrestagung 2001", pages = "49--57", keywords = "DeKo, intern, Phonetik", year = 2001 } @Book{Schuetze/Manning, author = "Christopher D. Manning and Hinrich Sch{\"u}tze", title = "Foundations of statistical natural language processing", publisher = "The MIT Press", year = 1999, address = "Cambridge, Ma" } @InProceedings{Schütze93wordspace, author = {Hinrich Sch{\"u}tze}, title = {Word Space}, booktitle = {Advances in Neural Information Processing Systems 5}, year = {1993}, pages = {895--902}, publisher = {Morgan Kaufmann} } @InProceedings{Schuetze:92, author = {Hinrich Sch{\"u}tze}, title = {Dimensions of Meaning}, booktitle = {Proceedings of the 1992 ACM/IEEE Conference on Supercomputing}, year = {1992}, pages = {787--796}, location = {Minneapolis, Minnesota}, publisher = {IEEE Computer Society Press}, address = {Los Alamitos, CA}, } @MastersThesis{Schulte:98, author = "Sabine {Schulte im Walde}", title = "Automatic semantic classification of verbs according to their alternation behaviour", school = "Institute for Computational Linguistics (IMS-CL), University of Stuttgart", year = 1998, address = "Stuttgart, Germany" } @InProceedings{SchulteImWalde:00, author = "Sabine {Schulte im Walde}", title = "Clustering Verbs Semantically According to their Alternation Behaviour", booktitle = "Proceedings of the 18th International Conference on Computational Linguistics (COLING)", year = 2000, address = "Saarbr{\"u}cken, Germany", pages = "747--753" } @Book{SchulteImWalde:00b, author = "Sabine {Schulte im Walde}", title = "The {G}erman Statistical Grammar Model: Development, Training and Linguistic Exploitation", publisher = "Institut f{\"u}r Maschinelle Sprachverarbeitung, Universit{\"a}t Stuttgart", year = 2000, number = 162, series = "Arbeitspapiere des {S}onderforschungsbereiches 340" } @InProceedings{SchulteImWalde:02, author = "Sabine {Schulte im Walde}", title = "A Subcategorisation Lexicon for {G}erman Verbs induced from a Lexicalised {PCFG}", booktitle = "Proceedings of the 3rd Conference on Language Resources and Evaluation", year = 2002, address = "Las Palmas de Gran Canaria, Spain", volume = "IV", pages = "1351--1357", } @InProceedings{SchulteImWalde:02b, author = "Sabine {Schulte im Walde} and Chris Brew", title = "Inducing {G}erman Semantic Verb Classes from Purely Syntactic Subcategorisation Information", booktitle = acl02, year = 2002, address = acl02o } @InProceedings{SchulteImWalde:02c, author = "Chris Brew and Sabine {Schulte im Walde}", title = "Spectral Clustering for {G}erman Verbs", booktitle = "Proceedings of the 2002 Conference on Empirical Methods in Natural Language Processing", year = 2002, address = "Philadelphia, PA", month = "July" } @InProceedings{PATR, author = "Stuart M. Shieber", title = "The Design of a Computer Language for Linguistic Information", booktitle = "Proceedings of the 10th International Conference on Computational Linguistics (ACL)", year = 1984, organization = "Stanford University", address = "Stanford, California" } @InProceedings{Shieber:85, author = "Stuart M. Shieber", title = {Using restriction to extend parsing algorithms for complex-feature-based formalisms}, booktitle = "acl85", year = 1985, address = "acl85o", pages = "145--152" } @CONFERENCE{Shieber88a, AUTHOR = "Stuart M. Shieber", TITLE = "A uniform architecture for parsing and generation", year = 1988, booktitle = coling88, address = coling88o, pages = "614--619" } @Book{Shieber:92, author = "Stuart M. Shieber", title = "Constraint-Based Grammar Formalisms: Parsing and Type Inference for Natural and Computer Language", publisher = "The MIT Press", year = 1992, address = "Cambridge, Ma." } @InProceedings{Simard98, author = "Michel Simard", title = "Automatic Insertion of Accents in {French} Texts", booktitle = "Proceedings of the Third Conference on Empirical Methods in Natural Language Processing (EMNLP)", year = 1998, address = "Granada, Spain" } @InProceedings{Singer:96, author = "Fernando C. Pereira and Yoram Singer and Naftali Tishby", title = "Beyond word {N}-grams", booktitle = "Proceedings of the Third Workshop on Very Large Corpora", editor = "K. Church, S.Armstrong, P. Isabelle, E. Tzoukermann, D. Yarowski", year = 1995, publisher = "Kluwer Academic Press" } @Article{Smadja93, author = "Frank Smadja", title = "Retrieving collocations from text: Xtract", journal = "Computational Linguistics", year = 1993, volume = 19, number = 1, month = "March", pages = "143--177" } @InProceedings{Stevenson/Merlo:99, author = "Suzanne Stevenson and Paola Merlo", title = "Automatic {V}erb {C}lassification {U}sing {D}istributions of {G}rammatical {F}eatures", booktitle = "Proceedings of the 9th Conference of the European Chapter of the Association for Computational Linguistics (EACL)", year = 1999, pages = "45--52" } @Manual{Alep2:94, title = "{ALEP}-2 User Guide", author = "Neil K. Simpkins", organization = "CEU", address = "Luxembourg", year = 1994, note = "This dokument is online available at http://www.anite-systems.lu/alep/doc/index.html" } @techreport{Stolcke:94, author = "Andreas Stolcke and Stephen M. Omohundro", title = "Best-first Model Merging for Hidden {M}arkov Model Induction", type = "ICSI Technical Report", number = "94--003", institution = "ICSI", address = "Berkeley, CA 94704", year = 1994 } @article{Stolcke:95, author = {Andreas Stolcke}, title = {An Efficient Probabilistic Context-Free Parsing Algorithm that Computes Prefix Probabilities}, journal = {Computational Linguistics}, year = {1995}, volume = {21}, pages = {165--201} } @InProceedings{Tapanainen:94, author = "Pasi Tapanainen and Atro Voutilainen", title = "Tagging accurately - Don't guess if you know", pages = "47--52", booktitle = "Proceedings of the 4th Conference on Applied Natural Language Processing", year = 1994, address = "Stuttgart, Germany", organization = "Association for Computational Linguistics", publisher = "Morgan Kaufmann" } @book{Tomita:86, author = "Masaru Tomita", title = "Efficient Parsing for Natural Languages", publisher = "Kluwer Academic Publishers", year = 1986, address = "Boston" } @article{Tomita:87, author = "Masaru Tomita", title = "An Efficient Augmented-Context-Free Parsing Algorithm", journal = "Computational Linguistics", volume = 13, number = "1--2", pages = "31--46", year = 1987 } @incollection{Tomita:91, author = "Masaru Tomita and See-Kiong Ng", title = "The Generalized {LR} Parsing Algorithm", editor = "Tomita, Masaru", booktitle = "Generalized LR Parsing", publisher = "Kluwer Academic Publishers", year = 1991, address = "Boston", pages = "1--16" } @Article{vanSanten:1994, author = "Jan P.H. van Santen", title = "Assignment of segmental duration in text-to-speech synthesis", journal = "Computer Speech and Language", year = 1994 } @Book{Vapnik:95, author = "Vladimir N. Vapnik", title = "The Nature of Statistical Learning Theory", publisher = "Springer-Verlag", address = "New York, NY", year = 1995 } @Article{Viterbi:67, author = "A. J. Viterbi", title = "Error bounds for convolutional codes and an asymptotically optimal decoding algorithm", journal = "IEEE Transactions on Information Theory", year = 1967, volume = 13, pages = "260--269", month = "April" } @Article{Weischedel:93, author = "Ralph Weischedel and Marie Meteer and Richard Schwartz and Lance Ramshaw and Jeff Palmucci", title = "Coping with Ambiguity and Unknown Words through Probabilistic Models", journal = "Computational Linguistics", year = 1993, volume = 19, number = 2, pages = "359--382" } @TechReport{Wothke:93, author = "Klaus Wothke and Ilona Weck-Ulm and Johannes Reinecke and Oliver Mertineit and Thomas Pachunke", title = "Statistically based automatic tagging of {G}erman text corpora with part-of-speech - some experiments", institution = "IBM Scientific Center", year = 1993, number = "TR 75.93.02", address = "Heidelberg, Germany" } Presented at the {C}hinese Language Processing Workshop, University of Pennsylvania, Philadelphia, 30 June to 2 July 1998. Current draft at http://www.cs.ust.hk/~dekai/papers/segmentation.html.) @Misc{Wu98, author = "Dekai Wu", title = "A Position Statement on {C}hinese Segmentation", howpublished = "Presented at the {C}hinese Language Processing Workshop, University of Pennsylvania, Philadelphia, 30 June to 2 July 1998. Current draft at http://www.cs.ust.hk/~dekai/papers/segmentation.html", year = 1998 } @Article{Younger:67, author = "D. H. Younger", title = "Recognition of context-free languages in time $n^3$", journal = "Information and Control", year = 1967, volume = 10, pages = "189--208" } @TechReport{Wahlster:93, author = "Wolfgang Wahlster", title = "{V}erbmobil-{T}ranslation of {F}ace-to-{F}ace {D}ialogs", institution = "German Research Centre for Artificial Intelligence (DFKI)", year = 1993, month = "July", note = "In Proceedings of MT Summit IV,Kobe,Japan" } @Article{Wang/Hirschberg:1992, author = {Wang and Hirschberg}, title = {Automatic classification of intonational phrase boundaries}, journal = {Computer Speech and Language}, year = 1992, volume = 6, pages = {175--196}, month = 6 } @InProceedings{Zeman:02, author = "Daniel Zeman", title = "Can subcategorization help a statistical dependency parser?", booktitle = coling02, year = 2002, address = "Taipei, Japan", pages = "1--7" } @InProceedings{EuroWordNet, author = "Piek Vossen", title = "EuroWordNet: a multilingual database for information retrieval", booktitle = "Proceedings of the Third DELOS Workshop on Cross-Language Information Retrieval", year = 1997, address = "Z{\"u}rich", month = "March" } @MastersThesis{Wurster, author = "Melvin Wurster", title = "Entwicklung einer {W}ortbildungsgrammatik f{\"u}r das {D}eutsche in {YAP}", school = "Institute for Computational Linguistics, University of Stuttgart", year = 2003, address = "Germany", type = "Diploma thesis", month = "January" } @PhdThesis{Veilleux:1994, author = "N.~M. Veilleux", title = "Computational Models of the Prosody/Syntax Mapping for Spoken Language Systems", school = "Boston University College of Engineering", year = 1994 } @InCollection{, author = {}, title = {}, booktitle = {}, OPTcrossref = {}, OPTkey = {}, OPTpages = {}, OPTpublisher = {}, OPTyear = {}, OPTeditor = {}, OPTvolume = {}, OPTnumber = {}, OPTseries = {}, OPTtype = {}, OPTchapter = {}, OPTaddress = {}, OPTedition = {}, OPTmonth = {}, OPTnote = {}, OPTannote = {} } @InCollection{Margineantu:02, author = {D. D. Margineantu and T. G. Dietterich}, title = {Improved class probability estimates from decision tree models}, booktitle = {Nonlinear Estimation and Classification}, pages = {169--184}, publisher = {Springer}, year = 2002, editor = {D. D. Denison and M. H. Hansen and C. C. Holmes and B. Mallick and B. Yu}, series = {Lecture Notes in Statistics}, volume = 171, address = {New York}} @Article{Ostendorf/Veilleux:1994, author = "M. Ostendorf and N. Veilleux", title = "A hierarchical stochastic model for automatic predictions of prosodic boundary location", journal = "Computational Linguistics", year = 1994, volume = 20, number = 1 } @InProceedings{Veilleux/etal:1990, author = "N. Veilleux and M. Ostendorf and P. Price and S. Shattuck-Hufnagel", title = "{M}arkov modeling of prosodic phrase structure", booktitle = "Proceedings of Acoustics, Speech, and Signal Processing (ICASSP)", year = 1990 } @InProceedings{Fordyce/Ostendorf:1998, author = "C. Fordyce and M. Ostendorf", title = "Prosody prediction for speech synthesis using transformational rule-based learning", booktitle = "Proceedings of the International Conference on Spoken Language Processing (ICSLP)", year = 1998 } @Article{Ross/Ostendorf:1996, author = "K. Ross and M. Ostendorf", title = "Prediction of abstract prosodic labels for speech synthesis", journal = "Computer Speech and Language", year = 1996 } @Book{Breiman:1984, author = "L. Breiman and J.~H. Friedman and R.~A. Olshen and C.~J. Stone", title = "Classification and Regression Trees", publisher = "Wadsworth and Brooks, Pacific Grove CA", year = 1984 } @article{Breiman96, author = "Leo Breiman", title = "Bagging Predictors", journal = "Machine Learning", volume = "24", number = "2", pages = "123-140", year = "1996" } @Article{Breiman:01, author = {Leo Breiman}, title = {Random Forests}, journal = {Machine Learning}, year = 2001, volume = 45, number = 1, pages = {5--32}} @MastersThesis{Fordyce:1998, author = "C.~S. Fordyce", title = "Prosody prediction for speech synthesis using transformational rule-based learning", school = "Boston University College of Engineering", year = 1998 } @Article{Lee/Oh:1999, author = "S. Lee and Y.-H. Oh", title = "Tree-based modeling of prosodic phrasing and segmental duration for Korean {TTS} systems", journal = "Speech Communication", year = 1999, volume = 28, pages = "283--300" } @InProceedings{Sun/Applebaum:2001, author = "X. Sun and T.~H. Applebaum", title = "Intonational phrase break prediction using decision tree and n-gram model", booktitle = "Proceedings of 7th European Conference on Speech Communication and Technology (Eurospeech)", year = 2001, address = "Aalborg, Denmark" } @InProceedings{Chen/etal:2001, author = "W. Chen and F. Lin and J. Li and B. Zhang", title = "A new prosodic phrasing model for {C}hinese {TTS} systems", booktitle = "Proceedings of the 6th natural language pprocessing pacific rim symposium", year = 2001, address = "Tokyo, Japan" } @Article{Chu/Qian:2001, author = "M. Chu and Y. Qian", title = "Locating boundaries for prosodic constituents in unrestricted mandarin texts", journal = "Computational Linguistics and {C}hinese Language Processing", year = 2001, volume = 6, number = 1, pages = "61--82" } @InProceedings{Daelemans:96, author = "Walter Daelemans and Jakub Zavrel and Peter Berck and Steven Gillis", title = "{MBT}: A Memory-Based Part of Speech Tagger-Generator", booktitle = "Proceedings of the Fourth Workshop on Very Large Corpora", editor = "Eva Ejerhed and Ido Dagan", year = 1996, address = "Copenhagen, Denmark", pages = "14--27" } @Article{daelemans:1999, author = "Walter Daelemans", title = "Introduction to the special issue on memory-based language processing", journal = "Journal of Experimental and Theoretical AI", year = 1999, volume = 11, number = 3, pages = "287--296" } @InProceedings{Marsi/etal:2003, author = "E. Marsi and M. Reynaert and A. van~den~Bosch and Walter Daelemans and V. Hoste", title = "Learning to predict pitch accents and prosodic boundaries in {D}utch", booktitle = acl03, year = 2003, address = acl03o, pages = "489--496" } @InProceedings{coeltekin2010, author = {\c{C}a\u{g}r{\i} \c{C}{\"o}ltekin}, title = {A Freely Available Morphological Analyzer for {Turkish}}, booktitle = {LREC}, year = 2010 } @InProceedings{Maragoudakis/etal:2003, author = "M. Maragoudakis and P. Zervas and N. Fakotakis and G. Kokkinakis", title = "A data-driven framework for intonational phrase break prediction", booktitle = "Proceedings of 6th International Conference on Text, Speech and Dialogue (TSD 2003)", year = 2003, address = "Ceske Budejovice, Czech Republic" } @Article{Roach:1994, author = {P. Roach and G. Knowles and T. Varadi and S. Arnfield}, title = {{MARSEC}: a Machine-Readable Spoken {English} Corpus}, journal = {Journal of the International Phonetic Association}, year = 1994, volume = 24, number = 24, pages = {47-53}, } @InCollection{tenHackenLued2002, author = "Pius ten Hacken and Anke L{\"u}deling", title = "Word Formation in Computational Linguistics", booktitle = "Proceedings of Traitement Automatique de Langue Naturelle", year = 2002, volume = 2, pages = "61-87", address = {Nancy, Frankreich}, } @TechReport{Mayer:1995, author = "J{\"o}rg Mayer", title = "Transcription of {G}erman Intonation -- The Stuttgart System", institution = "Institute for Computational Linguistics, University of Stuttgart", year = 1995 } @Misc{CELEX, author = "R.H. Baayen and R. Piepenbrock and L. Gulikers", title = "The {CELEX} Lexical Database (Release 2)", howpublished = "Linguistic Data Consortium, University of Pennsylvania (Distributor)", year = 1995 } @InProceedings{Negra, author = "Wojciech Skut and Thorsten Brants and Brigitte Krenn and Hans Uszkoreit", title = "A linguistically interpreted corpus of {G}erman newspaper text", booktitle = "Proceedings of the 10th European Summer School in Logic, Language and Information (ESSLLI), Workshop on Recent Advances in Corpus Annotation", year = 1998 } @InProceedings{Fu/Luke:03, author = "Guohong Fu and Kang-Kwong Luke", title = "A Two-stage Statistical Word Segmentation System for {C}hinese", booktitle = "Proceedings of the Second {SIGHAN} Workshop on {C}hinese Language Processing (ACL)", year = 2003, address = "Sapporo, Japan", pages = "156--159" } @InProceedings{Wu/Zhao/Xu:03, author = "Youzheng Wu and Jun Zhao and Bo Xu", title = "{C}hinese Named Entity Recognition Combining a Statistical Model with Human Knowledge", booktitle = "Proceedings of the ACL Workshop on Multilingual and Mixed-language Named Entity Recognition: Combining Statistical and Symbolic Models", year = 2003, address = "Sapporo, Japan", pages = "65--72" } @InProceedings{Sun:02, author = "Jian Sun and Jianfeng Gao and Lei Zhang and Ming Zhou and Changning Huang", title = "{C}hinese Named Entity Identification Using Class-based Language Model", booktitle = coling02, year = 2002, address = coling02o, pages = "967--973" } @InProceedings{Wei/Chen:03, author = "Wei-Yun Ma and Keh-Jiann Chen", title = "Introduction to {CKIP} {C}hinese Word Segmentation System for the First International {C}hinese Word Segmentation Bakeoff", booktitle = "Proceedings of the Second {SIGHAN} Workshop on {C}hinese Language Processing (ACL)", year = 2003, address = "Sapporo, Japan", pages = "168-171" } @InProceedings{Zhang:03, author = "Hua-Ping Zhang and Qun Liu and Xue-Qi Cheng and Hao Zhang and Hong-Kui Yu", title = "{C}hinese Lexical Analysis Using Hierarchical Hidden {Markov} Model", booktitle = "Proceedings of the Second {SIGHAN} Workshop on {C}hinese Language Processing (ACL)", year = 2003, address = "Sapporo, Japan", pages = "63--70" } @Article{Sproat:96, author = "Richard Sproat and William Gales and Chilin Shih and Nancy Chang", title = "A Stochastic Finite-State Word-Segmentation Algorithm for {C}hinese", journal = "Computational Linguistics", year = 1996, volume = 22, number = 3, month = "September", pages = "377-404" } @Book{Sproat:1998, title = {Multilingual Text-to-Speech Synthesis: The {B}ell {L}abs Approach}, editor = {Sproat, Richard}, publisher = {Kluwer}, year = 1998, address = {Dordrecht} } @InProceedings{Xue:03, author = "Nianwen Xue and Libin Shen", title = "{C}hinese Word Segmentation as {LMR} Tagging", booktitle = "Proceedings of the Second {SIGHAN} Workshop on {C}hinese Language Processing (ACL)", year = 2003, address = "Sapporo, Japan", pages = "176--179" } @inproceedings{Yarowsky95, author = {Yarowsky, David}, title = {Unsupervised word sense disambiguation rivaling supervised methods}, booktitle = {Proceedings of the 33rd Annual Meeting of the Association for Computational Linguistics (ACL)}, year = {1995}, pages = {189--196}, address = {Cambridge, Massachusetts} } @PhdThesis{Yli-Jyrae:05, author = "Anssi Yli-Jyr{\"a}", title = "Contributions to the Theory of Finite-State Based Grammars", school = "Department of General Linguistics, University of Helsinki", year = 2005, address = "Finland" } @InProceedings{Yli-Jyrae:04, author = "Anssi M. Yli-Jyr{\"a} And Kimmo Koskenniemi", title = "Compiling contextual restrictions on strings into finite-state automata", booktitle = "Proceedings of the Eindhoven {FASTAR} Days", editor = "Loek Cleophas and Bruce. W. Watson", volume = 04, series = "Computer Science Reports", year = 2004, publisher = "Technische Universiteit Eindhoven", address = "Eindhoven, Netherlands" } @InProceedings{Asahara:03, author = "Masayuki Asahara and Chooi-Ling Goh and Xiaojie Wang and Yuji Matsumoto", title = "Combining Segmenter and Chunker for {C}hinese Word Segmentation", booktitle = "Proceedings of the Second {SIGHAN} Workshop on {C}hinese Language Processing (ACL)", year = 2003, address = "Sapporo, Japan", pages = "144--147" } @InProceedings{Wu:03, author = "Andi Wu", title = "{C}hinese Word Segmentation in {MSR-NLP}", booktitle = "Proceedings of the Second {SIGHAN} Workshop on {C}hinese Language Processing (ACL)", year = 2003, address = "Sapporo, Japan", pages = "172--175" } @InProceedings{Goh:04, author = "Chooi-Ling Goh and Masayuki Asahara and Yuji Matsumoto", title = "{C}hinese Word Segmentation by Classification of Characters", booktitle = "Proceedings of the Third {SIGHAN} Workshop on {C}hinese Language Processing (ACL)", year = 2004, address = "Barcelona, Spain", pages = "57--64" } @InProceedings{Feng:04, author = "Feng Jiang and Hui Liu and Yuquan Chen and Ruzhan Lu", title = "An Enhanced Model for {C}hinese Word Segmentation and Part-of-Speech Tagging", booktitle = "Proceedings of the Third {SIGHAN} Workshop on {C}hinese Language Processing (ACL)", year = 2004, address = "Barcelona, Spain", pages = "28--32" } @InCollection{Blevins:1995, author = {Juliette Blevins}, title = {The syllable in phonological theory}, booktitle = {The Handbook of Phonological Theory}, editor = {Goldsmith, John~A.}, publisher = {Blackwell}, year = 1995, address = {Cambridge, MA; Oxford}, pages = {206--244} } @Article{Bouma:2003, author = {Gosse Bouma}, title = {Finite state methods for hyphenation}, journal = {Natural Language Engineering}, year = 2003, volume = 9, number = 1, pages = {5--20} } @InCollection{Clements:1990, author = {George Nick Clements}, title = {The role of the sonority cycle in core syllabification}, booktitle = {Papers in Laboratory Phonology {I}: {B}etween the Grammar and Physics of Speech}, publisher = {Cambridge University Press}, year = 1990, editor = {Kingston, John and Beckman, Mary~E.}, address = {Cambridge, Great Britain}, pages = {283--333} } @InCollection{Daelemans/Bosch:1992, author = {Walter Daelemans and Antal van den Bosch}, title = {Generalisation performance of back-propagation learning on a syllabification task}, booktitle = {TWLT3: Connectionism and Natural Language Processing}, pages = {27--37}, publisher = {Twente University}, year = 1992, editor = {Drossaers, M.~F.~J. and Nijholt, A.}, address = {Enschede, The Netherlands} } @Article{Greenberg:1999, author = {Steven Greenberg}, title = {Speaking in shorthand---A syllable-centric perspective for understanding pronunciation variation}, journal = {Speech Communication}, year = 1999, volume = 29, number = {2--4}, pages = {159--176} } @PhdThesis{Kahn:1976, author = {Daniel Kahn}, title = {Syllable-based generalizations in {E}nglish phonology}, school = {Massachusetts Institute of Technology}, year = 1976, address = {Cambridge, MA} } @Unpublished{Marchand/Damper:2006, author = {Yannick Marchand and Robert I. Damper }, title = {Can syllabification improve pronunciation by analogy of {English}?}, year = 2006, note = {Journal of Natural Language Engineering, published online 10 Jan 2006} } @Article{Mobius:1999, author = {Bernd M{\"o}bius}, title = {The {B}ell {L}abs {G}erman text-to-speech system}, journal = {Computer Speech and Language}, year = 1999, volume = 13, pages = {319--358} } @Book{CAC, author = {Barbora Vidov{\'a} Hladk{\'a} and Jan Hajic and Jir{\'i} Hana and Jaroslava Hlav{\'a}cov{\'a} and Jir{\'i} M{\'i}rovsk{\'y} and Jan Votrubec}, title = {Czech Academic Corpus 1.0 Guide}, publisher = {Karolinum Press}, year = 2007, address = {Prag, Czechia}} @InCollection{FrenchTB, author = {Anne Abeill{\'e} and L. Cl{\'e}ment and F. Toussenel}, title = {Building a treebank for {French}}, booktitle = {Treebanks}, publisher = {Kluwer}, year = 2003, editor = {Anne Abeill{\'e}}, address = {Dordrecht}} @InProceedings{Abeille/Barrier:2004, Author = {Abeillé, Anne and Barrier, Nicolas}, Title = {Enriching a {French} Treebank}, Booktitle = {Proceedings of the 4th International Conference on Language Resources and Evaluation (LREC)}, address = "Lisbon, Portugal", Year = 2004 } @Book{Cover/Thomas, author = {Thomas M. Cover and Joy A. Thomas}, title = {Elements of Information Theory}, publisher = {John Wiley \& Sons}, year = 1991} @Article{Mantaras:91, author = {R. L{\'o}pez De M{\'a}ntaras}, title = {A Distance-Based Attribute Selection Measure for Decision Tree Induction}, journal = {Machine Learning}, year = 1991, volume = 6, number = 1, pages = {81--92}} @Article{Mingers:87, author = {John Mingers}, title = {Expert Systems -- Rule Induction With Statistical Data}, journal = {Journal of the Operational Research Society}, year = 1987, volume = 38, pages = {39--47}} @Article{Mingers:89, author = {John Mingers}, title = {An Empirical Comparison of Pruning Methods for Decision Tree Induction}, journal = {Machine Learning}, year = 1989, volume = 4, pages = {227--243}} @Article{Provost:03, author = {Foster Provost and Pedro Domingos}, title = {Tree Induction for Probability-Based Ranking}, journal = {Machine Learning}, year = 2003, volume = 52, number = 3, pages = {199--215}} @InProceedings{Liang:06, author = {Han Liang and Harry Zhang and Yuhong Yan}, title = {Decision Trees for Probability Estimation: An Empirical Study}, booktitle = {Proceedings of the 18th IEEE International Conference on Tools with Artificial Intelligence (ICTAI06)}, year = 2006, pages = {756--764}, address = {Washington D.C.}} @InProceedings{Ferri:03, author = {C. Ferri and P. Flach and J. Hern{\'a}ndez-Orallo}, title = {Improving the {AUC} of Probabilistic Estimation Trees}, booktitle = {Proceedings of 14th European Conference on Machine Learning (ECML)}, pages = {121--132}, year = 2003} @InProceedings{McCarthy:95, author = {J. F. McCarthy and W. G. Lehnert}, title = {Using Decision Trees for Coreference Resolution}, booktitle = {Processings of the International Joint Conference on Artificial Intelligence (IJCAI)}, pages = {1050--1055}, year = 1995} @InProceedings{Bechet:00, author = {Fr\'{e}d\'{e}ric B\'{e}chet and Alexis Nasr and Franck Genet}, title = {Tagging unknown proper names using decision trees}, booktitle = {Proceedings of the 38th Annual Meeting of the Association for Computational Linguistics (ACL)}, pages = {77--84}, year = 2000, address = {Hong Kong}} @Misc{Festival, author = {Alan W. Black and Paul Taylor and R. Caley}, title = {The {Festival} speech synthesis system}, howpublished = {http://www.cstr.ed.ac.uk/projects/festival/}, year = 1998} @InProceedings{Black:98, author = {Alan W. Black and Kevin Lenzo and Vincent Pagel}, title = {Issues in Building General Letter to Sound Rules}, booktitle = {Proceedings of the ESCA Synthesis Workshop}, year = 1998, pages = {77--80}, address = {Jenolan Caves, Australia}} @InProceedings{Busser:98, author = {Bertjan Busser}, title = {TreeTalk-D: a machine learning approach to Dutch word pronunciation}, booktitle = {Proceedings of the Conference on Text Speech and Dialog (TSD)}, pages = {3--8}, year = 1998, editor = {P. Sojka and V. Matousek and K. Pala and I. Kopecek}, address = {Masaryk University, Czech Republic}} @InProceedings{Bosch:93, author = {Antal van den Bosch and Walter Daelemans}, title = {Data-oriented methods for grapheme-to-phoneme conversion}, booktitle = eacl93, year = 1993, pages = {45--53}, address = eacl93o} @inproceedings{Kim:00, author = {Byeongchang Kim and Geunbae Lee}, title = {Decision-tree based error correction for statistical phrase break prediction in {Korean}}, booktitle = "Proceedings of the 18th International Conference on Computational Linguistics (COLING)", year = {2000}, pages = {1051--1055}, address = "Saarbr{\"u}cken, Germany" } @InProceedings{Sun:01, author = {Xuejing Sun and Ted H. Applebaum}, title = {Intonational Phrase Break Prediction Using Decision Tree and N-Gram Model}, booktitle = {"Proceedings of the 7th European Conference on Speech Communication and Technology (Eurospeech)}, pages = {537--540}, year = 2001, address = {Aalborg, Denmark}} @InProceedings{Suontausta:00, author = {J. Suontausta and J. Hakkinenen}, title = {Decision Tree Based Text-to-Phoneme Mapping for Speech Recognition}, booktitle = {Proceedings of the International Conference on Spoken Language Processing (ICSLP)}, pages = {831--834}, year = 2000, address = {Beijing, China}} @InProceedings{Kienappel:01, author = {A. K. Kienappel and R. Kneser}, title = {Designing Very Compact Decision Trees for Grapheme-to-Phoneme Transcription}, booktitle = {Proceedings of the Eurospeech Conference}, pages = {1911--1914}, year = 2001} @Article{Bahl:89, author = {Lalit R. Bahl and Peter F. Brown and Peter V. de Souza and Robert L. Mercer}, title = {A Tree-Based Statistical Language Model for Natural Language Speech Recognition}, journal = {IEEE Transactions on Acoustics, Speech, and Signal Processing}, year = 1989, volume = 37, number = 7, pages = {1001--1008}} @Article{Xu:06, author = {Peng Xu and Frederick Jelinek}, title = {Random Forests and the data sparseness problem in language modeling}, journal = {Computer Speech and Language}, year = 2006, volume = 21, number = 1, pages = {105--152}} @inproceedings{Jelinek:94, author = {F. Jelinek and J. Lafferty and D. Magerman and R. Mercer and A. Ratnaparkhi and S. Roukos}, title = {Decision tree parsing using a hidden derivation model}, booktitle = {HLT: Proceedings of the workshop on Human Language Technology}, year = 1994, pages = {272--277}, address = {Plainsboro, NJ}, } @InProceedings{Rios:04, author = {Gordon Rios and Hongyuan Zha}, title = {Exploring support vector machines and random forests for spam detection}, booktitle = {Proceedings of the Conference on Email and Anti-Spam (CEAS)}, year = 2004, address = {Mountain View, Ca.}} @Article{Coussement:08, author = {Kristof Coussement and Dirk Van den Poel}, title = {Churn prediction in subscription services: An application of support vector machines while comparing two parameter-selection techniques}, journal = {Expert Systems with Applications}, volume = 34, number = 1, year = 2008, pages = {313--327}, publisher = {Pergamon Press, Inc.}, address = {Tarrytown, NY}} @InProceedings{Statnikov:07, author = {Alexander Statnikov and Constantin F. Aliferis}, title = {Are Random Forests Better than Support Vector Machines for Microarray-Based Cancer Classification?}, booktitle = {American Medical Informatics Association 2007 Proceedings}, pages = {686--690}, year = 2007, address = {Chicago, IL}} @Article{Bruce:07, author = {Craig L. Bruce and James L. Melville and Stephen D. Pickett and Jonathan D. Hirst}, title = {Contemporary {QSAR} Classifiers Compared}, journal = {Journal of Chemical Information and Modeling}, year = 2007, volume = 47, number = 1, pages = {219--227}} @InProceedings{Spoustova:07, author = {Drahom\'{i}ra Spoustov\'{a} and Jan Haji\v{c} and Jan Votrubec and Pavel Krbec and Pavel Kv\v{e}to\v{n}}, title = {The Best of Two Worlds: Cooperation of Statistical and Rule-Based Taggers for Czech}, booktitle = {Proceedings of the Workshop on Balto-Slavonic Natural Language Processing}, month = {June}, year = {2007}, address = {Prague, Czech Republic}, pages = {67--74}} @InProceedings{Hajic:01, author = {Jan Haji\v{c} and Pavel Krbec and Karel Oliva and Pavel Kv\v{e}to\v{n} and Vladim\'{i}r Petkevi\v{c}}, title = {Serial Combination of Rules and Statistics: A Case Study in Czech Tagging}, booktitle = acl01, year = 2001, address = acl01o} @InProceedings{Hajic:98, author = {Jan Haji\v{c} and Barbora Vidov\'{a}-Hladk\'{a}}, title = {Tagging Inflective Languages: Prediction of Morphological Categories for a Rich, Structured Tagset}, booktitle = acl98, year = 1998, address = acl98o} @InProceedings{Votrubec:06, author = {Jan Votrubec}, title = {Morphological Tagging Based on Averaged Perceptron}, booktitle = {Proceedings of the 15th Annual Conference of Doctoral Students (WDS)}, pages = {191--195}, year = 2006} @InProceedings{Haruno:98, author = {Haruno,, Masahiko and Shirai,, Satoshi and Ooyama,, Yoshifumi}, title = {Using decision trees to construct a practical parser}, booktitle = {Proceedings of ACL-COLING}, year = {1998}, pages = {505--511}, address = {Montreal, Quebec, Canada} } @InProceedings{Petrov:06, author = {Petrov, Slav and Barrett, Leon and Thibaux, Romain and Klein, Dan}, title = {Learning Accurate, Compact, and Interpretable Tree Annotation}, booktitle = {Proceedings of the 21st International Conference on Computational Linguistics and 44th Annual Meeting of the Association for Computational Linguistics (COLING-ACL)}, month = {July}, year = {2006}, address = {Sydney, Australia}, pages = {433--440}, } @InProceedings{PetrovKlein:07, author = {Petrov, Slav and Klein, Dan}, title = {Improved Inference for Unlexicalized Parsing}, booktitle = {Human Language Technologies 2007: The Conference of the North American Chapter of the Association for Computational Linguistics; Proceedings of the Main Conference}, month = {April}, year = {2007}, address = {Rochester, New York}, pages = {404--411} } @InProceedings{PetrovKlein:08, author = {Petrov, Slav and Klein, Dan}, title = {Parsing {German} with Latent Variable Grammars}, booktitle = {Proceedings of the ACL Workshop on Parsing German}, month = {June}, year = {2008}, address = {Columbus, Ohio}, pages = {33--39} } @ARTICLE{Bikel:04, author = {Daniel M. Bikel}, title = {Intricacies of {Collins}' parsing model}, journal = {Computational Linguistics}, year = {2004}, volume = {30}, pages = {479--511} } @InProceedings{Gildea:01, author = {Daniel Gildea}, title = {Corpus Variation and Parser Performance}, booktitle = {Proceedings of the Conference on Empirical Methods in Natural Language Processing (EMNLP)}, pages = {167--202}, year = 2001, address = {Pittsburgh, PA}} @Misc{Scheible:09, author = {Christian Scheible}, title = {Evaluating a Verb Clustering Model Using Pseudo Disambiguation}, howpublished = {Studienarbeit, IMS, University of Stuttgart}, year = 2009} @InProceedings{Huang:08, author = {Huang, Liang}, title = {Forest Reranking: Discriminative Parsing with Non-Local Features}, booktitle = "Proceedings of the 46th Annual Meeting of the Association for Computational Linguistics: Human Language Technology (ACL-08:HLT)", pages = {586--594}, year = 2008, address = {Columbus, Ohio} } @inproceedings{McClosky:06, author = {McClosky, David and Charniak, Eugene and Johnson, Mark}, title = {Reranking and self-training for parser adaptation}, booktitle = {Proceedings of the 21st International Conference on Computational Linguistics and the 44th Annual Meeting of the Association for Computational Linguistics (COLING-ACL)}, year = {2006}, pages = {337--344}, address = {Sydney, Australia}, } @InProceedings{Atterer:06, author = {Michaela Atterer and Hinrich Sch{\"u}tze}, title = {The Effect of Corpus Size in Combining Supervised and Unsupervised Training for Disambiguation}, booktitle = {Proceedings of the COLING/ACL Main Conference, Poster Sessions}, pages = {25--32}, year = 2006, address = {Sydney, Australia} } @inproceedings{Chen/Palmer:05, author = {Jinying Chen and Martha Stone Palmer}, title = {Towards Robust High Performance Word Sense Disambiguation of {English} Verbs Using Rich Linguistic Features}, booktitle = {{Proceedings of the Second International Joint Conference on Natural Language Processing (IJCNLP-05)}}, year = {2005}, pages = {933-944}, } @inproceedings{Chen/Palmer:04, author = {Chen, Jinying and Palmer, Martha}, title = {{C}hinese verb sense discrimination using an {EM} clustering model with rich linguistic features}, booktitle = {Proceedings of the 42nd Annual Meeting on Association for Computational Linguistics (ACL)}, year = {2004}, address = {Barcelona, Spain} } @inproceedings{Fung/Chen:06, author = {Pascale Fung and Benfeng Chen}, title = {Robust word sense translation by {EM} learning of frame semantics}, booktitle = {Proceedings of the COLING/ACL Main Conference, poster sessions}, year = {2006}, pages = {239--246}, address = {Sydney, Australia} } @Book{DOPbook, editor = {Rens Bod and Remko Scha and Khalil Sima'an}, title = {Data-Oriented Parsing}, publisher = {University of Chicago Press}, year = 2003} @Article{Navigli:09, author = {Roberto Navigli}, title = {Word Sense Disambiguation: a Survey}, journal = {ACM Computing Surveys}, year = 2009, volume = 41, number = 2, pages = {1--69}} @Article{BriemEtAl:09, author = {Daniela Briem and Britta Balliel and Brigitte Rockstroh and Miriam Butt and Sabine {Schulte im Walde} and Ramin Assadollahi}, title = {Distinct Processing of Function Verb Categories in the Human Brain}, journal = {Brain Research}, year = {2009}, volume = {1249}, pages = {173--180}, month = {January} } @Article{BoledaEtAl:08, author = {Gemma Boleda and Sabine {Schulte im Walde} and Toni Badia}, title = {An Analysis of Human Judgements on Semantic Classification of {C}atalan Adjectives}, journal = {Research on Language and Computation. Special Issue on Ambiguity and Semantic Judgements}, year = {2008}, volume = {6}, number = {3}, pages = {247--271} } @Article{CuloEtAl:08, author = {Oliver Culo and Katrin Erk and Sebastian Pad{\'o} and Sabine {Schulte im Walde}}, title = {Comparing and Combining Semantic Verb Classifications}, journal = {Language Resources and Evaluation}, year = {2008}, volume = {42}, number = {3}, pages = {265--291} } @InProceedings{ErkPado:08, author = {Katrin Erk and Sebastian Pad{\'o}}, title = {A structured vector space model for word meaning in context}, booktitle = {Proceedings of the Conference on Empirical Methods in Natural Language Processing (EMNLP)}, pages = {897--906}, year = 2008, address = {Honolulu, Hawaii} } @Book{HJCL:2008, editor = {Ron Artstein and Gemma Boleda and Frank Keller and Sabine {Schulte im Walde}}, title = {Proceedings of the {COLING} Workshop on Human Judgements in Computational Linguistics}, month = {August}, year = {2008}, address = {Manchester, Great Britain} } @Misc{Kilgarriff04, author = {Adam Kilgarriff and P. Rychl{\'y} and P. Smrz and D. Tugwell}, title = {The {S}ketch {E}ngine}, howpublished = {Paper presented at EURALEX, Lorient, France}, year = 2004} @InProceedings{IvanovaEtAl:08, author = {Kremena Ivanova and Ulrich Heid and Sabine {Schulte im Walde} and Adam Kilgarriff and Jan Pomik\'alek}, title = {Evaluating a {G}erman {S}ketch Grammar: A Case Study on Noun Phrase Case}, booktitle = {Proceedings of the 6th International Conference on Language Resources and Evaluation}, year = {2008}, address = {Marrakech, Morocco}, } @InProceedings{Roth/SchulteImWalde:08, author = {Michael Roth and Sabine {Schulte im Walde}}, title = {Corpus Co-Occurrence, Dictionary and {W}ikipedia Entries as Resources for Semantic Relatedness Information}, booktitle = {Proceedings of the 6th International Conference on Language Resources and Evaluation}, pages = {}, year = {2008}, address = {Marrakech, Morocco}, } @InProceedings{BoledaEtAl:07, author = {Gemma Boleda and Sabine {Schulte im Walde} and Toni Badia}, title = {Modelling Polysemy in Adjective Classes by Multi-Label Classification}, booktitle = {Proceedings of the Joint Conference on Empirical Methods in Natural Language Processing and Computational Natural Language Learning}, pages = {171--180}, year = {2007}, address = {Prague, Czech Republic}, } @Misc{Hartmann:08a, author = {Silvana Hartmann, Sabine {Schulte im Walde}, Hans Kamp}, title = {Predicting the Degree of Compositionality of {G}erman Particle Verbs based on Empirical Syntactic and Semantic Subcategorization Transfer Patterns}, howpublished = {Talk given at the KONVENS Workshop on Lexical-Semantic and Ontological Resources}, year = 2008} @Misc{Balabanov:09, author = {Alexandre Balabanov}, title = {Distinction of Argument and Adjunct Prepositional Phrases using the Predicate Argument Clustering Model}, howpublished = {Internal report, IMS, University of Stuttgart}, month = {July}, year = 2009} @Article{Dagan+Lee+Pereira:99a, author = {Ido Dagan and Lillian Lee and Fernando Pereira}, title = {Similarity-Based Models of Cooccurrence Probabilities}, journal = {Machine Learning}, year = 1999, volume={34}, number={1-3}, pages={43-69} } @article{Cimiano:05, title = {Learning Concept Hierarchies from Text Corpora using Formal Concept Analysis}, author = {P. Cimiano and A. Hotho and S. Staab}, journal = {Journal of Artificial Intelligence Research}, pages = {305--339}, publisher = {AAAI Press}, volume = {24}, year = {2005}, issn = {1076-9757} } @InProceedings{Caraballo:99, author = {Sharon A. Caraballo}, title = {Automatic construction of a hypernym-labeled noun hierarchy from text}, booktitle = {Proceedings of the 37th Conference of the Association for Computational Linguistics (ACL)}, pages = {120--126}, year = 1999, address = {College Park, MD} } @InProceedings{snow-jurafsky-ng:2006:COLACL, author = {Snow, Rion and Jurafsky, Daniel and Ng, Andrew Y.}, title = {Semantic Taxonomy Induction from Heterogenous Evidence}, booktitle = {Proceedings of the 21st International Conference on Computational Linguistics and 44th Annual Meeting of the Association for Computational Linguistics (COLING-ACL)}, year = {2006}, pages = {801--808}, address = {Sydney, Australia}, } @InProceedings{Fraser:09, author = {Alexander Fraser}, title = {Experiments in Morphosyntactic Processing for Translating to and from {German}}, booktitle = {Proceedings of the Fourth Workshop on Statistical Machine Translation (EACL)}, year = 2009, pages = {115--119}, address = {Athens, Greece}} @InProceedings{CarpuatWu:07, author = {Marine Carpuat and Dekai Wu}, title = {Context-Dependent Phrasal Translation Lexicons for Statistical Machine Translation}, booktitle = {Machine Translation Summit XI}, year = 2007, address = {Copenhagen, Denmark}} @InProceedings{ChanNgChiang:07, author = {Yee Seng Chan and Hwee Tou Ng and David Chiang}, title = {Word Sense Disambiguation Improves Statistical Machine Translation}, booktitle = {Proceedings of the 45th Annual Meeting of the Association for Computational Linguistics (ACL)}, pages = {33--40}, year = 2007, address = {Prague, Czech Republic}} @article{Scheible2010, title={{Pseudo-Disambiguation using Predicate Argument Clustering}}, author={Scheible, C.}, journal={Submitted on Nov 7, 2009, to the International Conference on Language Resources and Evaluation (LREC)}, year={2010} } @Article{Cahill:08, author = {Aoife Cahill and Michael Burke and Ruth O'Donovan and Stefan Riezler and Josef van Genabith and Andy Way}, title = {Wide-Coverage Deep Statistical Parsing using Automatic Dependency Structure Annotation}, journal = {Computational Linguistics}, year = 2008, volume = 34, number = 1, pages = {81--124} } @InProceedings{BrockmannLapata:03, author = "Carsten Brockmann and Mirella Lapata", title = "Evaluating and Combining Approaches to Selectional Preference Acquisition", booktitle = "Proceedings of the 10th Conference of the European Chapter of the Association for Computational Linguistics", year = "2003", address = "Budapest, Hungary", pages = "27--34", } @InProceedings{KrennEvert:01, author = "Brigitte Krenn and Stefan Evert", title = "Can we do better than Frequency? A Case Study on Extracting {PP}-Verb Collocations", booktitle = "Proceedings of the ACL Workshop on Collocations", year = "2001", address = "Toulouse, France", pages = "", } @Misc{Hartmann:08b, author = {Silvana Hartmann}, title = {Einfluss syntaktischer und semantischer {S}ubkategorisierung auf die {K}ompositionalit\"at von {P}artikelverben}, howpublished = {Studienarbeit}, note = {Institut f\"ur Maschinelle Sprachverarbeitung, Universit\"at Stuttgart}, year = {2008}, } @Misc{HartmannEtAl:08, author = {Silvana Hartmann and Sabine {Schulte im Walde} and Hans Kamp}, title = {Predicting the Degree of Compositionality of German Particle Verbs based on Empirical Syntactic and Semantic Subcategorization Transfer Patterns}, howpublished = {Talk at the Konvens Workshop 'Lexical-Semantic and Ontological Resources - Maintenance, Representation, and Standards'}, year = {2008}, } @Book{Stiebels:96, author = "Barbara Stiebels", title = {Lexikalische Argumente und Adjunkte. Zum semantischen Beitrag von verbalen Pr\"afixen und Partikeln}, publisher = "Akademie Verlag", year = "1996", address = {Berlin}, } @InProceedings{Aldinger:04, author = {Nadine Aldinger}, title = {Towards a Dynamic Lexicon: Predicting the Syntactic Argument Structure of Complex Verbs}, booktitle = {Proceedings of the 4th International Conference on Language Resources and Evaluation}, pages = {}, year = {2004}, address = {Lisbon, Portugal}, } @InCollection{Harris:68, author = "Zellig Harris", title = "Distributional {S}tructure", booktitle = "The Philosophy of Linguistics", publisher = "Oxford University Press", year = "1968", editor = "Jerold J. Katz", series = "Oxford Readings in Philosophy", pages = "26--47", } @Book{Pinker:89, author = {Steven Pinker}, title = {Learnability and Cognition: The Acquisition of Argument Structure}, publisher = {MIT Press}, year = {1989}, address = {Cambridge, MA}, } @inproceedings{GalleyManning:2010, author = {Galley, Michel and Manning, Christopher D.}, title = {Accurate non-hierarchical phrase-based translation}, booktitle = {Human Language Technologies: The 2010 Annual Conference of the North American Chapter of the Association for Computational Linguistics}, series = {HLT '10}, year = {2010}, location = {Los Angeles, California}, pages = {966--974}, numpages = {9}, url = {http://portal.acm.org/citation.cfm?id=1857999.1858138}, acmid = {1858138}, publisher = {Association for Computational Linguistics}, address = {Stroudsburg, PA, USA}, } @ARTICLE{Brown93, AUTHOR = {Peter F. Brown and Stephen A. {Della Pietra} and Vincent J. {Della Pietra} and R. L. Mercer}, TITLE = {The Mathematics of Statistical Machine Translation{:} Parameter Estimation}, JOURNAL = {Computational Linguistics}, YEAR = 1993, VOLUME = 19, NUMBER = 2, PAGES = {263--311}, URL = {http://acl.ldc.upenn.edu/J/J93/J93-2003.pdf}, } @ARTICLE{Och04, AUTHOR = {Franz J. Och and Hermann Ney}, TITLE = {The Alignment Template Approach to Statistical Machine Translation}, JOURNAL= {Computational Linguistics}, NUMBER = 1, VOLUME = 30, YEAR = 2004, PAGES = {417--449}, URL = {http://www.mitpressjournals.org/doi/pdf/10.1162/0891201042544884}, } @INPROCEEDINGS{Koehn03, AUTHOR = {Philipp Koehn and Franz J. Och and Daniel Marcu}, TITLE = {Statistical Phrase-Based Translation}, BOOKTITLE= {Proceedings of the Human Language Technology and North American Association for Computational Linguistics Conference}, YEAR = 2003, ADDRESS = {Edmonton, Canada}, pages = {127--133}, URL = {http://acl.ldc.upenn.edu/N/N03/N03-1017.pdf}, } @inproceedings{Hiero, author = {David Chiang}, title = {A hierarchical phrase-based model for statistical machine translation}, booktitle = ACL05, address = {Ann Arbor, MI}, year = {2005}, pages = {263--270}, } @inproceedings{Crego05, author = {Josep M. Crego and Jos\'e B. Mari\^no and Adri\`a de Gispert}, title = {Reordered Search and Unfolding Tuples for Ngram-based {SMT}}, year = 2005, booktitle = {Proceedings of the 10th Machine Translation Summit (MT Summit X)}, pages = {283--289}, address = {Phuket, Thailand} } @inproceedings{Tillmann04, author = {Tillmann, Christoph}, title = {A Unigram Orientation Model for Statistical Machine Translation}, booktitle = {HLT-NAACL 2004: Short Papers}, year = 2004, address = {Boston, Massachusetts}, pages = {101--104} } @INPROCEEDINGS{Yamada01, AUTHOR = {Kenji Yamada and Kevin Knight}, BOOKTITLE = ACL01, ADDRESS = {Toulouse, France}, YEAR = 2001, TITLE = {A Syntax-based Statistical Translation Model}, PAGES = {523-530}, URL = {http://www.isi.edu/natural-language/projects/rewrite/syntax.ps}, } @InProceedings{galley06, author = {Michel Galley and Jonathan Graehl and Kevin Knight and Daniel Marcu and Steve DeNeefe and Wei Wang and Ignacio Thayer}, title = {Scalable Inference and Training of Context-Rich Syntactic Translation Models}, booktitle = ACL06, year = {2006}, address = {Sydney, Australia}, publisher = {Association for Computational Linguistics}, pages = {961--968}, } @INPROCEEDINGS{huang06:amta, AUTHOR = {Liang Huang and Kevin Knight and Aravind Joshi}, TITLE = {Statistical Syntax-Directed Translation with Extended Domain of Locality}, BOOKTITLE = {Conference of the Association for Machine Translation in the Americas (AMTA)}, ADDRESS = {Cambridge, MA}, YEAR = 2006, } @inproceedings{ding05:acl, author = {Yuan Ding and Martha Palmer}, title = {Machine translation using probabilistic synchronous dependency insertion grammars}, booktitle = ACL05, year = 2005, pages = {541--548}, location = {Ann Arbor, Michigan}, } @inproceedings{lin04:coling, author = {Dekang Lin}, title = {A path-based transfer model for machine translation}, booktitle = "Proceedings of the 20th International Conference on Computational Linguistics (COLING)", year = {2004}, pages = {625--630}, location = {Geneva, Switzerland}, } @InProceedings{quirk05:acl, author = {Chris Quirk and Arul Menezes and Colin Cherry}, title = {Dependency Treelet Translation: Syntactically Informed Phrasal {SMT}}, booktitle = ACL05, address = {Ann Arbor, MI}, year = {2005}, pages = {271--279}, } @InProceedings{Genzel2010, author = {Dmitriy Genzel}, title = {Source-side Reordering Rules for Large Scale Machine Translation}, booktitle = {Proceedings of the 23rd International Conference on Computational Linguistics (COLING)}, year = 2010, address = {Beijing,China}} @InProceedings{collins05:acl, author = {Michael Collins and Philipp Koehn and Ivona Ku\v{c}erov\'a}, title = {Clause Restructuring for Statistical Machine Translation}, booktitle = ACL05, year = {2005}, address = {Ann Arbor, MI}, pages = {531--540}, url = {http://www.aclweb.org/anthology/P/P05/P05-1066}, } @inproceedings{crego05:mtsummit, author = {Josep M. Crego and Jos\'e B. Mari\^no and Adri\`a de Gispert}, title = {Reordered Search and Unfolding Tuples for Ngram-based {SMT}}, year = 2005, booktitle = {Proceedings of the 10th Machine Translation Summit (MT Summit X)}, pages = {283--289}, address = {Phuket, Thailand} } @Article{Crego06, author = {Jos{\'e} N. Mari{\~n}o and Rafael E. Banchs and Josep M. Crego and Adri{\`a} de Gispert and Patrik Lambert and Jos{\'e} A. R. Fonollosa and Marta R. Costa-juss{\`a}}, title = {N-gram-based machine translation}, journal = {Computational Linguistics}, year = 2006, volume = 32, number = 4, pages = {527--549}} @InProceedings{Versley/Rehbein:09, author = {Yannick Versley and Ines Rehbein}, title = {Scalable Discriminative Parsing for German. International Conference on Parsing Technology}, booktitle = "Proceedings of the 11th International Workshop on Parsing Technologies (IWPT)", year = 2009, address = {Paris, France} } @Book{PaGe:2008, editor = {Sandra K\"{u}bler and Gerald Penn}, title = {Proceedings of the Workshop on Parsing German}, month = {June}, year = {2008}, address = {Columbus, Ohio}, publisher = {Association for Computational Linguistics}, url = {http://www.aclweb.org/anthology/W/W08/W08-10} } @InProceedings{RaffertyManning08, author = {Rafferty, Anna and Manning, Christopher D.}, title = {Parsing Three {German} Treebanks: Lexicalized and Unlexicalized Baselines}, booktitle = {Proceedings of the Workshop on Parsing German}, month = {June}, year = {2008}, address = {Columbus, Ohio}, publisher = {Association for Computational Linguistics}, pages = {40--46}, url = {http://www.aclweb.org/anthology/W/W08/W08-1006} } @InProceedings{Menzel98, author = {Wolfgang Menzel and Ingo Schr{\"o}der}, title = {Decision procedures for dependency parsing using graded constraints}, booktitle = {Proceedings of the COLING-ACL '98 Workshop on Processing of Dependency-Based Grammars}, pages = {78--87}, year = 1998 } @InProceedings{NivreHall08, author = {Johan Hall and Joakim Nivre}, title = {A dependency-driven parser for German dependency and constituency representations}, booktitle = {Proceedings of the ACL Workshop on Parsing German}, year = 2008} @InProceedings{Duchier01, author = {Denys Duchier and Ralph Debusmann}, title = {Topological dependency trees: a constraint-based account of linear precedence}, booktitle = {Proceedings of the 39th Annual Meeting of the Association for Computational Linguistics (ACL)}, pages = {180--187}, year = 2001, address = {Morristown, NJ, USA} } @inproceedings{Henderson:08, author = {James Henderson and Paola Merlo and Gabriele Musillo and Ivan Titov}, title = {A latent variable model of synchronous parsing for syntactic and semantic dependencies}, booktitle = {Proceedings of the Twelfth Conference on Computational Natural Language Learning}, series = {CoNLL '08}, year = 2008, location = {Manchester, United Kingdom}, pages = {178--182} } @inproceedings{Seeker:10, author = {Wolfgang Seeker and Bernd Bohnet and Lilja {\O}vrelid and Jonas Kuhn}, title = {Informed ways of improving data-driven dependency parsing for German}, booktitle = {Proceedings of the 23rd International Conference on Computational Linguistics: Posters}, series = {COLING '10}, year = {2010}, location = {Beijing, China}, pages = {1122--1130} } @InProceedings{Hsu:10, author = {Hsu, Yu-Yin}, title = {Comparing Conversions of Discontinuity in PCFG Parsing}, booktitle = {Proceedings of the Ninth International Workshop on Treebanks and Linguistic Theories}, pages = {103--113}, year = 2010, editor = {Markus Dickinson, Kaili Müürisep and Marco Passarotti}, volume = 9, series = { NEALT Proceedings Series} } @InProceedings{Kuebler06, author = {K\"{u}bler, Sandra and Hinrichs, Erhard W. and Maier, Wolfgang}, title = {Is it really that difficult to parse German?}, booktitle = {Proceedings of the 2006 Conference on Empirical Methods in Natural Language Processing}, series = {EMNLP '06}, year = {2006}, location = {Sydney, Australia}, pages = {111--119} } @InProceedings{Eryigit/Adali, author = {Gül\c{s}en Eryi\u{g}it and E\c{s}ref Adal{\i}}, title = {An Affix Stripping Morphological Analyzer for Turkish}, booktitle = {Proceedings of the {IASTED} International Conference}, year = 2004, address = {Innsbruck, Austria}} @InProceedings{Cöltekin, author = {\c{C}a\u{g}r{\i} \c{C}öltekin}, title = {A Freely Available Morphological Analyzer for Turkish}, booktitle = {Proceedings of the Seventh International Conference on Language Resources and Evaluation (LREC'10)}, year = {2010}, month = {may}, date = {19-21}, address = {Valletta, Malta}, editor = {Nicoletta Calzolari (Conference Chair) and Khalid Choukri and Bente Maegaard and Joseph Mariani and Jan Odijk and Stelios Piperidis and Mike Rosner and Daniel Tapias}, publisher = {European Language Resources Association (ELRA)}, isbn = {2-9517408-6-7}, language = {english} } @Article{dipper11, author = {Stefanie Dipper}, title = {Morphological and Part-of-Speech Tagging of Historical Language Data: A Comparison}, journal = {Journal for Language Technology and Computational Linguistics, Special Issue}, year = 2011, volume = 26, number = 2, pages = {25--37}} @PhdThesis{Jurish11, author = {Bryan Jurish}, title = {Finite-state Canonicalization Techniques for Historical German}, school = {Universität Potsdam}, year = 2011} @inproceedings{Beesley:1996, author = {Beesley, Kenneth R.}, title = {Arabic Finite-state Morphological Analysis and Generation}, booktitle = {Proceedings of the 16th Conference on Computational Linguistics (COLING)}, volume = {1}, year = {1996}, location = {Copenhagen, Denmark}, pages = {89--94}, } @Book{Rubenbauer, author = {Karl Bayer and Rolf Heine and Hans Rubenbauer}, title = {Lateinische Grammatik}, publisher = {Oldenbourg Schulbuchverlag}, address = {Berlin, Germany}, year = 2007} @article{Schwenk2010, title={Continuous-space language models for statistical machine translation}, author={Schwenk, Holger}, journal={The Prague Bulletin of Mathematical Linguistics}, volume={93}, pages={137--146}, year={2010} } @inproceedings{Devlin2014, title={Fast and robust neural network joint models for statistical machine translation}, author={Devlin, Jacob and Zbib, Rabih and Huang, Zhongqiang and Lamar, Thomas and Schwartz, Richard and Makhoul, John}, booktitle={Proceedings of the 52nd Annual Meeting of the Association for Computational Linguistics}, volume={1}, pages={1370--1380}, year={2014} } @inproceedings{Sutskever2014, title={Sequence to sequence learning with neural networks}, author={Sutskever, Ilya and Vinyals, Oriol and Le, Quoc VV}, booktitle={Advances in neural information processing systems}, pages={3104--3112}, year={2014} } @article{Bahdanau2014, title={Neural machine translation by jointly learning to align and translate}, author={Bahdanau, Dzmitry and Cho, Kyunghyun and Bengio, Yoshua}, journal={arXiv preprint arXiv:1409.0473}, year={2014} } @Article{Luong2015, author = {Minh-Thang Luong and Hieu Pham and Christopher D. Manning}, title = { Effective Approaches to Attention-based Neural Machine Translation}, journal = {arXiv preprint arXiv:1508.04025}, year = 2015} @Article{Xu2015, author = {Kelvin Xu and Jimmy Ba and Ryan Kiros and Kyunghyun Cho and Aaron Courville and Ruslan Salakhutdinov and Richard Zemel and Yoshua Bengio}, title = {Show, Attend and Tell: Neural Image Caption Generation with Visual Attention}, journal = {arXiv preprint arXiv:1502.03044}, year = 2015} @inproceedings{Jean2015WMT, title={Montreal Neural Machine Translation Systems for {WMT15}}, author={Jean, S{\'e}bastien and Firat, Orhan and Cho, Kyunghyun and Memisevic, Roland and Bengio, Yoshua}, booktitle={Proceedings of the Tenth Workshop on Statistical Machine Translation}, pages={134--140}, year={2015} } @Article{DurraniCL, author = {Nadir Durrani and Helmut Schmid and Alexander Fraser and Philipp Koehn and Hinrich Schütze}, title = {The Operation Sequence Model – Combining N-Gram-based and Phrase-based Statistical Machine Translation}, journal = {Computational Linguistics}, year = 2015, volume = 41, number = 2, pages = {157-186}} @article{Cap2014, title={How to Produce Unseen Teddy Bears: Improved Morphological Processing of Compounds in {SMT}}, author={Cap, Fabienne and Fraser, Alexander and Weller, Marion and Cahill, Aoife}, journal={Proceedings of EACL 2014}, year={2014} } @article{Bengio2003, title={A neural probabilistic language model}, author={Bengio, Yoshua and Ducharme, R{\'e}jean and Vincent, Pascal and Janvin, Christian}, journal={The Journal of Machine Learning Research}, volume={3}, pages={1137--1155}, year={2003}, publisher={JMLR. org} } @inproceedings{Liang06, author = {P. Liang and B. Taskar and D. Klein}, booktitle = {North American Association for Computational Linguistics (NAACL)}, pages = {104--111}, title = {Alignment by Agreement}, year = {2006}, } @inproceedings{Graves2013, title={Speech recognition with deep recurrent neural networks}, author={Graves, Alan and Mohamed, Abdel-rahman and Hinton, Geoffrey}, booktitle={Acoustics, Speech and Signal Processing (ICASSP), 2013 IEEE International Conference on}, pages={6645--6649}, year={2013}, organization={IEEE} } @article{Kim2015, title={Character-Aware Neural Language Models}, author={Kim, Yoon and Jernite, Yacine and Sontag, David and Rush, Alexander M}, journal={arXiv preprint arXiv:1508.06615}, year={2015} } @article{Zaremba2015, author = {Wojciech Zaremba and Ilya Sutskever}, title = {Reinforcement Learning Neural Turing Machines}, year = {2015}, journal = {pre-print}, note = {http://arxiv.org/abs/1505.00521}, } @Article{Cohn:2016, author = {Cohn, T. and Hoang, C.~D.~V. and Vymolova, E. and Yao, K. and Dyer, C. and Haffari, G.}, title = "{Incorporating Structural Alignment Biases into an Attentional Neural Translation Model}", journal = {arXiv:1601.01085-prints}, year = 2016, } @InProceedings{Jean2015, author = {Jean, S\'{e}bastien and Cho, Kyunghyun and Memisevic, Roland and Bengio, Yoshua}, title = {On Using Very Large Target Vocabulary for Neural Machine Translation}, booktitle = {Proceedings of the 53rd Annual Meeting of the Association for Computational Linguistics and the 7th International Joint Conference on Natural Language Processing (Volume 1: Long Papers)}, month = {July}, year = {2015}, address = {Beijing, China}, publisher = {Association for Computational Linguistics}, pages = {1--10}, url = {http://www.aclweb.org/anthology/P15-1001} } @article{Shen2015, author = {Shiqi Shen and Yong Cheng and Zhongjun He and Wei He and Hua Wu and Maosong Sun and Yang Liu}, title = {Minimum Risk Training for Neural Machine Translation}, journal = {CoRR}, volume = {abs/1512.02433}, year = {2015}, ee = {http://arxiv.org/abs/1512.02433} } @inproceedings{Och2003MERT, author = {Och, Franz Josef}, title = {Minimum Error Rate Training in Statistical Machine Translation}, booktitle = {Proceedings of the 41st Annual Meeting on Association for Computational Linguistics - Volume 1}, series = {ACL '03}, year = {2003}, location = {Sapporo, Japan}, pages = {160--167}, numpages = {8}, publisher = {Association for Computational Linguistics}, address = {Stroudsburg, PA, USA}, } @InProceedings{MnihGregor, author = {Andriy Mnih and Karol Gregor}, title = {Neural Variational Inference and Learning in Belief Networks}, booktitle = {International Conference on Machine Learning (ICML)}, year = 2014, address = {Beijing, China}} @InProceedings{Bornschein2015, author = {J{\"o}rg Bornschein and Yoshua Bengio}, title = {Reweighted Wake-Sleep}, booktitle = {International Conference on Learning Representations (ICLR)}, year = 2015, address = {San Juan, Puerto Rico}} @Misc{Sennrich2015, author = {Rico Sennrich and Barry Haddow and Alexandra Birch}, title = {Improving neural machine translation models with monolingual data}, howpublished = {arXiv preprint arXiv:1511.06709}, year = 2015} @InBook{Ahmad1992, author = "Khurshid Ahmad and Andrea Davies and Heather Fulford and Margaret Rogers", title = "Translation studies -- an interdiscipline", chapter = "What is a term? The semi-automatic extraction of terms from text", publisher = "John Bejamins", year = "1992", editor = "Mary Snell-Horny and Franz Pöchhacker and Klaus Kaindl", address = "Amsterdam/Philadelphia" } @InProceedings{PiantaTonelli2010, author = {Emanuele Pianta and Sara Tonelli}, title = {{KX}: A flexible system for keyphrase extraction}, booktitle = {Proceedings of the 5th international workshop on semantic evaluation}, year = 2010, organization = {Association for Computational Linguistics}} @inproceedings{Joachims:2002, author = {Thorsten Joachims}, title = {Optimizing Search Engines Using Clickthrough Data}, booktitle = {Proceedings of the Eighth ACM SIGKDD International Conference on Knowledge Discovery and Data Mining}, series = {KDD '02}, year = {2002}, isbn = {1-58113-567-X}, location = {Edmonton, Alberta, Canada}, pages = {133--142}, numpages = {10}, url = {http://doi.acm.org/10.1145/775047.775067}, doi = {10.1145/775047.775067}, acmid = {775067}, publisher = {ACM}, address = {New York, NY, USA}, } @incollection{Goodfellow2014, title = {Generative Adversarial Nets}, author = {Goodfellow, Ian and Pouget-Abadie, Jean and Mirza, Mehdi and Xu, Bing and Warde-Farley, David and Ozair, Sherjil and Courville, Aaron and Bengio, Yoshua}, booktitle = {Advances in Neural Information Processing Systems 27}, editor = {Z. Ghahramani and M. Welling and C. Cortes and N. D. Lawrence and K. Q. Weinberger}, pages = {2672--2680}, year = {2014}, publisher = {Curran Associates, Inc.}, url = {http://papers.nips.cc/paper/5423-generative-adversarial-nets.pdf} } @incollection{Mikolov2013, title = {Distributed Representations of Words and Phrases and their Compositionality}, author = {Mikolov, Tomas and Sutskever, Ilya and Chen, Kai and Corrado, Greg S and Dean, Jeff}, booktitle = {Advances in Neural Information Processing Systems 26}, editor = {C. J. C. Burges and L. Bottou and M. Welling and Z. Ghahramani and K. Q. Weinberger}, pages = {3111--3119}, year = {2013}, publisher = {Curran Associates, Inc.}, url = {http://papers.nips.cc/paper/5021-distributed-representations-of-words-and-phrases-and-their-compositionality.pdf} } @article{Bojanowski2017, title = {Enriching Word Vectors with Subword Information}, author = {Bojanowski, Piotr and Grave, Edouard and Joulin, Armand and Mikolov, Tomas}, journal = {Transactions of the Association for Computational Linguistics}, pages = {135--146}, volume = 5, year = 2017 } @misc{Devlin2018, author = {Devlin, Jacob and Chang, Ming-Wei and Lee, Kenton and Toutanova, Kristina}, title = {BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding}, note = {arXiv preprint arXiv:1810.04805}, url = {http://arxiv.org/abs/1810.04805}, year = 2018 } @InProceedings{Gaddy2018, author = {David Gaddy and Mitchell Stern and Dan Klein}, title = {What's Going On in Neural Constituency Parsers? An Analysis}, booktitle = {Proceedings of NAACL-HLT}, year = 2018, pages = {999--1010}, address = {New Orleans, Louisiana}, organization = {Association for Computational Linguistics}} @TechReport{Hirschmann2010, author = {Hagen Hirschmann and Sonja Linde}, title = {Annotationsguidelines zur Deutschen Diachronen Baumbank Technical Report. .}, institution = {Humboldt-Universität zu Berlin}, year = 2010} @inproceedings{Akbik2018, title = "Contextual String Embeddings for Sequence Labeling", author = "Alan Akbik and Duncan Blythe and Roland Vollgraf", booktitle = "Proceedings of the 27th International Conference on Computational Linguistics", month = "August", year = "2018", address = "Santa Fe, New Mexico, USA", publisher = "Association for Computational Linguistics", url = "https://www.aclweb.org/anthology/C18-1139", pages = "1638--1649"} @Book{Koehn2010, author = {Philipp Koehn}, title = {Statistical Machine Translation}, publisher = {Cambridge University Press}, year = 2010} @InProceedings{Liu2016, author = {Lemao Liu and Masao Utiyama and Andrew Finch and Eiichiro Sumita}, title = {Neural machine translation with supervised attention}, booktitle = {Proceedings of the 26th International Conference on Computational Linguistics (COLING 2016): Technical Papers}, year = 2016, address = {Osaka, Japan}} @InProceedings{Chen2016, author = {Wenhu Chen and Evgeny Matusov and Shahram Khadivi and Jan-Thorsten Peter}, title = {Guided alignment training for topic-aware neural machine translation}, booktitle = {AMTA}, year = 2016} @InProceedings{Alkhouli2017, author = {Tamer Alkhouli and Hermann Ney}, title = {Biasing attention-based recurrent neural networks using external alignment information}, booktitle = {Proceedings of the Second Conference on Machine Translation}, year = 2017, address = {Copenhagen, Denmark}, organization = {Association for Computational Linguistics}} @InProceedings{Alkhouli2016, author = {Tamer Alkhouli and Gabriel Bretschner and Jan-Thorsten Peter and Mohammed Hethnawi and Andreas Guta and Hermann Ney}, title = {Alignment-based neural machine translation}, booktitle = {Proceedings of the First Conference on Machine Translation: Research Papers}, year = 2016, address = {Berlin, Germany}, organization = {Association for Computational Linguistics}} @InProceedings{Alkhouli2018, author = {Tamer Alkhouli and Gabriel Bretschner and Hermann Ney}, title = {On the alignment problem in multi-head attention-based neural machine translation}, booktitle = {Proceedings of the Third Conference on Machine Translation: Research Papers}, year = 2018, address = {Belgium, Brussels}, organization = {Association for Computational Linguistics}} @Misc{Press2018, author = {Ofir Press and Noah A Smith}, title = {You may not need attention}, howpublished = {arXiv preprint arXiv:1810.13409}, year = 2018} @InProceedings{Lewis2008, author = {William D. Lewis and Fei Xia}, title = {Automatically identifying computationally relevant typological features}, booktitle = {Proceedings of the Third International Joint Conference on Natural Language Processing: Volume-II}, year = 2008} @InProceedings{Oestling2015, author = {Robert {\"O}stling}, title = {Word order typology through multilingual word alignment}, booktitle = {Proceedings of the 53rd Annual Meeting of the Association for Computational Linguistics and the 7th International Joint Conference on Natural Language Processing: Short Papers}, year = 2015, address = {Beijing, China}, organization = {Association for Computational Linguistics}} @InProceedings{Yarowsky2001, author = {David Yarowsky and Grace Ngai and Richard Wicentowski}, title = {Inducing multilingual text analysis tools via robust projection across aligned corpora}, booktitle = {Proceedings of the First International Conference on Human Language Technology Research}, year = 2001} @InProceedings{Pado2009, author = {Sebastian Pad{\'o} and Mirella Lapata}, title = {Cross-lingual annotation projection for semantic roles}, booktitle = {Journal of Artificial Intelligence Research}, year = 2009, volume = 36} @InProceedings{Asgari2017, author = {Ehsaneddin Asgari and Hinrich Sch{\"u}tze}, title = {Past, present, future: A computational investigation of the typology of tense in 1000 languages}, booktitle = {Proceedings of the 2017 Conference on Empirical Methods in Natural Language Processing}, year = 2017, address = {Copenhagen, Denmark}, organization = {Association for Computational Linguistics}} @InProceedings{Huck2019, author = {Matthias Huck and Diana Dutka and Alexander Fraser}, title = {Cross-lingual annotation projection is effective for neural part-of-speech tagging}, booktitle = {Proceedings of the Sixth Workshop on NLP for Similar Languages, Varieties and Dialects}, year = 2019, pages = {223–-233}, address = {Ann Arbor, Michigan}, organization = {Association for Compu-tational Linguistics}} @InProceedings{Guo2016, author = {Jiang Guo and Wanxiang Che and David Yarowsky and Haifeng Wang and Ting Liu}, title = {A representation learning framework for multi-source transfer parsing}, booktitle = {Proceedings of the Thirtieth AAAI Conference on Artificial Intelligence}, year = 2016} @InProceedings{Ammar2016, author = {Waleed Ammar and George Mulcaire and Yulia Tsvetkov and Guillaume Lample and Chris Dyer and Noah A Smith}, title = {Massively multilingual word embeddings}, booktitle = {arXiv preprint arXiv:1602.01925}, year = 2016} , . @InProceedings{Dufter2018, author = {Philipp Dufter and Mengjie Zhao and Martin Schmitt and Alexander Fraser and Hinrich Sch{\"u}tze}, title = {Embedding learning through multilingual concept induction}, booktitle = {Proceedings of the 56th Annual Meeting of the Association for Computational Linguistics (Volume 1:Long Papers)}, year = 2018, address = {Melbourne, Australia}, organization = {Association for Computational Linguistics}} @InProceedings{Vogel1996, author = {Stephan Vogel and Hermann Ney and Christoph Tillmann}, title = {HMM-based word alignment in statistical translation}, booktitle = {Proceedings of the 16th International Conference on Computational Linguistics (COLING)}, year = 1996, volume = 2} @Article{Och2003, author = {Franz Josef Och and Hermann Ney}, title = {A systematic comparison of various statistical alignment models}, journal = {Computational Linguistics}, year = 2003, volume = 29, number = 1} @InProceedings{Dyer2013, author = {Chris Dyer and Victor Chahuneau and Noah A. Smith}, title = {A simple, fast, and effective reparameterization of IBM model 2}, booktitle = {Proceedings of the 2013 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies}, year = 2013, address = {Atlanta, Georgia}, organization = {Association for Computational Linguistics}} @Article{Oestling2016, author = {Robert {\"O}stling and J{\"o}rg Tiedemann}, title = {Efficient word alignment with Markov Chain Monte Carlo}, journal = {The Prague Bulletin of Mathematical Linguistics}, year = 2016, volume = 106, number = 1} @InProceedings{Cohn2016, author = {Trevor Cohn and Cong Duy Vu Hoang and Ekaterina Vymolova and Kaisheng Yao and Chris Dyer and Gholamreza Haffari}, title = {Incorporating structural alignment biases into an attentional neural translation model}, booktitle = {Proceedings of the 2016 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies}, year = 2016, pages = {876–-885}, address = {San Diego, California}, organization = {Association for Computational Linguistics}} @InProceedings{Koehn2017, author = {Philipp Koehn and Rebecca Knowles}, title = {Six challenges for neural machine translation}, booktitle = {Proceedings of the First Workshop on Neural Machine Translation}, year = 2017, address = {Vancouver, Canada}, organization = {Association for Computational Linguistics}} @InProceedings{Ghader2017, author = {Hamidreza Ghader and Christof Monz}, title = {What does attention in neural machine translation pay attention to?}, booktitle = {Proceedings of the Eighth International Joint Conference on Natural Language Processing (Volume 1: Long Papers)}, year = 2017, address = {Taipei, Taiwan}, organization = {Asian Federation of Natural Language Processing}} @Article{Peter2017, author = {Jan-Thorsten Peter and Arne Nix and Hermann Ney}, title = {Generating alignments using target foresight in attention-based neural machine translation}, journal = {The Prague Bulletin of Mathematical Linguistics}, year = 2017, volume = 108, number = 1} @Misc{Zenkel2019, author = {Thomas Zenkel and Joern Wuebker and John DeNero}, title = {Adding interpretable attention to neural translation models improves word alignment}, howpublished = {arXivpreprint arXiv:1901.11359}, year = 2019} @InProceedings{Garg2019, author = {Sarthak Garg and Stephan Peitz and Udhyakumar Nallasamy and Matthias Paulik}, title = {Jointly learning to align and translate with transformer models}, booktitle = {Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing and the 9th International Joint Conference on Natural Language Processing (EMNLP-IJCNLP)}, year = 2019, address = {Hong Kong, China}, organization = {Association for Computational Linguistics}} @article{Sabet2020, author = {Masoud Jalili Sabet and Philipp Dufter and Hinrich Sch\"utze}, title = {SimAlign: High Quality Word Alignments without Parallel Training Data using Static and Contextualized Embeddings}, year = 2020, journal = {Findings of ACL: EMNLP 2020}, publisher = {Association for Computational Linguistics}, } @InProceedings{Artetxe2018, author = {Mikel Artetxe and Gorka Labaka and Eneko Agirre}, title = {A robust self-learning method for fully unsupervised cross-lingual mappings of word embeddings}, booktitle = {Proceedings of the 56th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers)}, year = 2018, address = {Melbourne, Australia}, organization = {Association forComputational Linguistics}} @InProceedings{Conneau2018, author = {Alexis Conneau and Guillaume Lample and Marc’Aurelio Ranzato and Ludovic Denoyer and Herv{\'e}e J{\'e}gou}, title = {Word translation without parallel data}, booktitle = {Proceedings of the Sixth International Conference on Learning Representations}, year = 2018} @InProceedings{Devlin2019, author = {Jacob Devlin and Ming-Wei Chang and Kenton Lee and Kristina Toutanova}, title = {BERT: Pre-training of deep bidirectional transformers for language understanding}, booktitle = {Proceedings of the 2019 Conference ofthe North American Chapter of the Association forComputational Linguistics: Human Language Tech-nologies, Volume 1 (Long and Short Papers)}, year = 2019, address = {Minneapolis, Minnesota}, organization = {Association for ComputationalLinguistics}} @InProceedings{Conneau2020, author = {Alexis Conneau and Kartikay Khandelwal and Naman Goyal and Vishrav Chaudhary and Guillaume Wenzek and Francisco Guzm{\'a}n and Edouard Grave and Myle Ott and Luke Zettlemoyer and Veselin Stoyanov}, title = {Unsupervised cross-lingual representation learning at scale}, booktitle = {Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics}, year = 2020, address = {Online}, organization = {Association for Computational Linguistics}} sfst-1.7.0/doc/transducer.fig000066400000000000000000000033231470213725200161100ustar00rootroot00000000000000#FIG 3.2 Portrait Center Metric A4 100.00 Single -2 1200 2 1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 2160 3150 101 101 2160 3150 2250 3195 1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 2925 2745 101 101 2925 2745 3015 2790 1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 3600 2745 101 101 3600 2745 3690 2790 1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 2925 3600 101 101 2925 3600 3015 3645 1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 3600 3600 101 101 3600 3600 3690 3645 1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4230 3105 101 101 4230 3105 4320 3150 1 3 0 1 0 -1 50 -1 20 0.000 1 0.0000 1350 3150 101 101 1350 3150 1451 3150 1 3 0 1 0 -1 50 -1 10 0.000 1 0.0000 4950 3105 101 101 4950 3105 5051 3105 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 1 1 1.00 60.00 120.00 1440 3150 2025 3150 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 1 1 1.00 60.00 120.00 2250 3105 2835 2790 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 1 1 1.00 60.00 120.00 2250 3195 2835 3555 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 1 1 1.00 60.00 120.00 3015 3600 3465 3600 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 1 1 1.00 60.00 120.00 3015 2745 3465 2745 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 1 1 1.00 60.00 120.00 3690 2790 4140 3060 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 1 1 1.00 60.00 120.00 3690 3555 4140 3195 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 1 1 1.00 60.00 120.00 4320 3105 4815 3105 4 0 0 50 -1 0 12 0.0000 0 90 225 2385 2880 o:o\001 4 0 0 50 -1 0 12 0.0000 0 90 225 3150 2655 u:u\001 4 0 0 50 -1 0 12 0.0000 0 135 180 2520 3330 o:i\001 4 0 0 50 -1 0 12 0.0000 0 90 135 3195 3510 u:\001 4 0 0 50 -1 0 12 0.0000 0 90 195 3735 3330 s:c\001 4 0 0 50 -1 0 12 0.0000 0 90 195 3870 2790 s:s\001 4 0 0 50 -1 0 12 0.0000 0 90 195 4455 3015 e:e\001 4 0 0 50 -1 0 12 0.0000 0 90 315 1575 3060 m:m\001 sfst-1.7.0/doc/transducer.pdf000066400000000000000000000046141470213725200161200ustar00rootroot00000000000000%PDF-1.3 %쏢 5 0 obj <> stream xXn\7 +LX, ]0M5R#Po12`3%ԊOlmw©h_A()K+z=A+"HJ ~:.bP`YBq ,cQa.[VuhUo;qw؜U0ՍkF]kҴTZ4kјh@^ *fu#&G5r"<'SU>:r/?F9vM ܃ɃJIhSai8[ 4z`݄(Ct)A/M`hP^ #@/*Y~5BK2I,=aƜ9,Jіb0ofEaWmAFgZW9O!r? i -;.20+QEJ-fjg԰D{vs:vr Lb_pqwJʠ:F#W[Zd܂RUe O9F.QkCWѴvB" /O qO\P.F1td4c0Sy9rgl=YuAl*9rPAkoz4d~Ƨѷ> vCUMaTAu1.cT~{N« }qKӌfϤu &1/# J0h) ;Y `v/r\d9;NQSYa}]6YL"ެ'Q"e}`+JyoNJR*8Qo($$N_\!ɛ Wŝ7R=)sb->>;Pk(HUn;m3^aendstream endobj 6 0 obj 1352 endobj 4 0 obj <> /Contents 5 0 R >> endobj 3 0 obj << /Type /Pages /Kids [ 4 0 R ] /Count 1 >> endobj 1 0 obj <> endobj 7 0 obj <>endobj 9 0 obj <> endobj 10 0 obj <> endobj 8 0 obj <> endobj 2 0 obj <>endobj xref 0 11 0000000000 65535 f 0000001665 00000 n 0000001879 00000 n 0000001606 00000 n 0000001457 00000 n 0000000015 00000 n 0000001437 00000 n 0000001713 00000 n 0000001813 00000 n 0000001754 00000 n 0000001783 00000 n trailer << /Size 11 /Root 1 0 R /Info 2 0 R /ID [(DMxqkp)(DMxqkp)] >> startxref 2103 %%EOF sfst-1.7.0/pybind11/000077500000000000000000000000001470213725200141305ustar00rootroot00000000000000sfst-1.7.0/pyproject.toml000066400000000000000000000003331470213725200154140ustar00rootroot00000000000000[build-system] requires = [ "setuptools>=42", "wheel", "ninja; sys_platform != 'win32'", "cmake>=3.12", ] build-backend = "setuptools.build_meta" [tool.cibuildwheel] build = "*" skip = ["cp36-*","pp*"] sfst-1.7.0/python/000077500000000000000000000000001470213725200140225ustar00rootroot00000000000000sfst-1.7.0/python/CMakeLists.txt000066400000000000000000000006761470213725200165730ustar00rootroot00000000000000if(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE Release) endif() set(CMAKE_CXX_FLAGS "-O3 -Wall -std=c++17 -ansi") set(CMAKE_CXX_FLAGS_RELEASE "-O3") include(CTest) enable_testing() set(CPACK_PROJECT_NAME ${PROJECT_NAME}) set(CPACK_PROJECT_VERSION ${PROJECT_VERSION}) include(CPack) pybind11_add_module(sfst sfst.cpp ) target_compile_definitions(sfst PRIVATE VERSION_INFO=${VERSION_INFO}) target_link_libraries(sfst PRIVATE libsfststatic) sfst-1.7.0/python/README.md000066400000000000000000000017111470213725200153010ustar00rootroot00000000000000# Python bindings for SFST This is python binding for SFST. The `sfst` python library can be imported and can be used for analysis and generation as explained in the below examples: ## Installation `sfs` python library is available at pypi.org. It can be installed as follows: ```bash pip install sfst ``` ## Import and initialize ```python import sfst # Initialize with the compiled sfst. sfst.init('path/to/fst.a')) ``` Initialization is must before doing any operations. ## Analysis ```python import sfst # Initialize with the compiled sfst. sfst.init('path/to/fst.a')) # Analyse a string. results are a list of analysis. analysis_results = sfst.analyse("easier") # Returns ['easy'] for example. ``` ## Generation ```python import sfst # Initialize with the compiled sfst. sfst.init('path/to/fst.a')) # Generate a string. results are a list of analysis. generate_results = sfst.generate("easy") # Returns ['easier'] for example. ``` sfst-1.7.0/python/sfst.cpp000066400000000000000000000030051470213725200155030ustar00rootroot00000000000000#include #include #include #include "../src/fst.h" #define STRINGIFY(x) #x #define MACRO_STRINGIFY(x) STRINGIFY(x) using namespace SFST; const int GENERATE_MODE = 1; const int ANALYSE_MODE = 2; Transducer *transducer; /** * Initialize transducer. */ void init(char *transducer_filename) { if (transducer_filename == NULL) { printf("Please provide transducer file"); exit(1); } FILE *transducer_file; transducer_file = fopen(transducer_filename, "rb"); if (transducer_file != NULL) { transducer = new Transducer(transducer_file); fclose(transducer_file); } else { perror("Could not read transducer file"); exit(1); } } /* * Destroys the transducer object. * args: None */ void delete_transducer() { delete transducer; } const vector analyse(char *input) { return transducer->analyze_string(input, true); } const vector generate(char *input) { return transducer->generate_string(input, true); } namespace py = pybind11; PYBIND11_MODULE(sfst, m) { m.def("init", &init, R"pbdoc( Initialize transducer )pbdoc"); m.def("analyse", &analyse, R"pbdoc( Analyse a string )pbdoc"); m.def("generate", &generate, R"pbdoc( Generate a string )pbdoc"); m.def("delete", &delete_transducer, R"pbdoc( Delete the transducer instance )pbdoc"); #ifdef VERSION_INFO m.attr("__version__") = MACRO_STRINGIFY(VERSION_INFO); #else m.attr("__version__") = "dev"; #endif } sfst-1.7.0/python/tests/000077500000000000000000000000001470213725200151645ustar00rootroot00000000000000sfst-1.7.0/python/tests/easy.a000066400000000000000000000011331470213725200162650ustar00rootroot00000000000000a--,,!!0680#90 " !00 6 7)) 44--44%%%% ,0044""##))1144##**678090 33))44227"s)l6#r0e<>!t9y,i-h8w4a%p1d*k3b2c!"#,!!""##%%))**,,--00011223344678090sfst-1.7.0/python/tests/test.py000066400000000000000000000006661470213725200165250ustar00rootroot00000000000000import os import sfst import os CURR_DIR = os.path.abspath(os.path.dirname(os.path.realpath(__file__))) print("SFST version " + sfst.__version__) sfst.init(os.path.join(CURR_DIR, 'easy.a')) analysis_results = sfst.analyse("easy") assert len(analysis_results) == 1 assert analysis_results[0] == 'easy' generate_results = sfst.generate("easy") assert len(generate_results) == 1 assert generate_results[0] == 'easier' sfst-1.7.0/setup.py000066400000000000000000000130701470213725200142140ustar00rootroot00000000000000# -*- coding: utf-8 -*- import os import re import sys import subprocess from pathlib import Path from setuptools import setup, Extension from setuptools.command.build_ext import build_ext # Convert distutils Windows platform specifiers to CMake -A arguments PLAT_TO_CMAKE = { "win32": "Win32", "win-amd64": "x64", "win-arm32": "ARM", "win-arm64": "ARM64", } # A CMakeExtension needs a sourcedir instead of a file list. # The name must be the _single_ output extension from the CMake build. # If you need multiple extensions, see scikit-build. class CMakeExtension(Extension): def __init__(self, name: str, sourcedir: str = "") -> None: super().__init__(name, sources=[]) self.sourcedir = os.fspath(Path(sourcedir).resolve()) class CMakeBuild(build_ext): def build_extension(self, ext: CMakeExtension) -> None: # Must be in this form due to bug in .resolve() only fixed in Python 3.10+ ext_fullpath = Path.cwd() / self.get_ext_fullpath(ext.name) extdir = ext_fullpath.parent.resolve() # Using this requires trailing slash for auto-detection & inclusion of # auxiliary "native" libs debug = int(os.environ.get("DEBUG", 0)) if self.debug is None else self.debug cfg = "Debug" if debug else "Release" # CMake lets you override the generator - we need to check this. # Can be set with Conda-Build, for example. cmake_generator = os.environ.get("CMAKE_GENERATOR", "") cmake_args = [ f"-DCMAKE_LIBRARY_OUTPUT_DIRECTORY={extdir}{os.sep}", f"-DPYTHON_EXECUTABLE={sys.executable}", f"-DVERSION_INFO={self.distribution.get_version()}", f"-DCMAKE_BUILD_TYPE={cfg}", # not used on MSVC, but no harm ] build_args = [] # Adding CMake arguments set as environment variable # (needed e.g. to build for ARM OSx on conda-forge) if "CMAKE_ARGS" in os.environ: cmake_args += [item for item in os.environ["CMAKE_ARGS"].split(" ") if item] if self.compiler.compiler_type != "msvc": # Using Ninja-build since it a) is available as a wheel and b) # multithreads automatically. MSVC would require all variables be # exported for Ninja to pick it up, which is a little tricky to do. # Users can override the generator with CMAKE_GENERATOR in CMake # 3.15+. if not cmake_generator or cmake_generator == "Ninja": try: import ninja ninja_executable_path = Path(ninja.BIN_DIR) / "ninja" cmake_args += [ "-GNinja", f"-DCMAKE_MAKE_PROGRAM:FILEPATH={ninja_executable_path}", ] except ImportError: pass else: # Single config generators are handled "normally" single_config = any(x in cmake_generator for x in {"NMake", "Ninja"}) # CMake allows an arch-in-generator style for backward compatibility contains_arch = any(x in cmake_generator for x in {"ARM", "Win64"}) # Specify the arch if using MSVC generator, but only if it doesn't # contain a backward-compatibility arch spec already in the # generator name. if not single_config and not contains_arch: cmake_args += ["-A", PLAT_TO_CMAKE[self.plat_name]] # Multi-config generators have a different way to specify configs if not single_config: cmake_args += [ f"-DCMAKE_LIBRARY_OUTPUT_DIRECTORY_{cfg.upper()}={extdir}" ] build_args += ["--config", cfg] if sys.platform.startswith("darwin"): # Cross-compile support for macOS - respect ARCHFLAGS if set archs = re.findall(r"-arch (\S+)", os.environ.get("ARCHFLAGS", "")) if archs: cmake_args += ["-DCMAKE_OSX_ARCHITECTURES={}".format(";".join(archs))] # Set CMAKE_BUILD_PARALLEL_LEVEL to control the parallel build level # across all generators. if "CMAKE_BUILD_PARALLEL_LEVEL" not in os.environ: # self.parallel is a Python 3 only way to set parallel jobs by hand # using -j in the build_ext call, not supported by pip or PyPA-build. if hasattr(self, "parallel") and self.parallel: # CMake 3.12+ only. build_args += [f"-j{self.parallel}"] build_temp = Path(self.build_temp) / ext.name if not build_temp.exists(): build_temp.mkdir(parents=True) subprocess.run( ["cmake", ext.sourcedir, *cmake_args], cwd=build_temp, check=True ) subprocess.run( ["cmake", "--build", ".", *build_args], cwd=build_temp, check=True ) version = open('VERSION').read().strip() long_description = open('python/README.md').read() # The information here can also be placed in setup.cfg - better separation of # logic and declaration, and simpler if you include description/version in a file. setup( name="sfst", version=version, author="Santhosh Thottingal", author_email="santhosh.thottingal@gmail.com", description="Python binding for SFST", long_description=long_description, long_description_content_type="text/markdown", url="https://github.com/santhoshtr/sfst", license="GPLv2", ext_modules=[CMakeExtension("sfst")], cmdclass={"build_ext": CMakeBuild}, package_dir={"": "python"}, zip_safe=False, python_requires='>3.8.0', ) sfst-1.7.0/src/000077500000000000000000000000001470213725200132705ustar00rootroot00000000000000sfst-1.7.0/src/CMakeLists.txt000066400000000000000000000102141470213725200160260ustar00rootroot00000000000000cmake_minimum_required(VERSION 3.20) list(INSERT CMAKE_MODULE_PATH 0 "${PROJECT_SOURCE_DIR}/src/cmake") find_package(FLEX) find_package(BISON) find_package(readline) set(CMAKE_CXX_FLAGS "-O3 -Wall -std=c++17 -ansi") include_directories(${CMAKE_CURRENT_BINARY_DIR}) include_directories(.) if(BISON_FOUND) BISON_TARGET(sfst fst-compiler.yy ${CMAKE_CURRENT_BINARY_DIR}/fst-compiler.cpp DEFINES_FILE ${CMAKE_CURRENT_BINARY_DIR}/fst-compiler.h) else() message(STATUS "Bison not found, so executables won't be generated.") endif() if(FLEX_FOUND) FLEX_TARGET(sfst default-scanner.ll ${CMAKE_CURRENT_BINARY_DIR}/default-scanner.cpp COMPILE_FLAGS --nounput) FLEX_TARGET(sfst utf8-scanner.ll ${CMAKE_CURRENT_BINARY_DIR}/utf8-scanner.cpp COMPILE_FLAGS --nounput) else() message(STATUS "Flex not found, so executables won't be generated.") endif() if(NOT READLINE_FOUND) message(STATUS "Readline not found, so executables won't be generated.") endif() # Include dir include_directories(/usr/local/include) # Source files set (LIB_SOURCES basic.cpp utf8.cpp alphabet.cpp fst.cpp operators.cpp determinise.cpp hopcroft.cpp ) set(HEADERS alphabet.h basic.h fst.h interface.h mem.h utf8.h ${CMAKE_CURRENT_BINARY_DIR}/fst-compiler.h ) # Add library add_library(libsfst SHARED ${LIB_SOURCES}) set_target_properties(libsfst PROPERTIES POSITION_INDEPENDENT_CODE ON) # Have the output name libsfst.so set_target_properties(libsfst PROPERTIES OUTPUT_NAME "sfst") # Have a static library add_library(libsfststatic STATIC ${LIB_SOURCES}) set_target_properties(libsfststatic PROPERTIES POSITION_INDEPENDENT_CODE ON) set_target_properties(libsfststatic PROPERTIES OUTPUT_NAME "sfst.static") if(BISON_FOUND AND FLEX_FOUND) add_executable(fst-compiler compact.cpp make-compact.cpp interface.cpp default-scanner.cpp fst-compiler.cpp) target_link_libraries(fst-compiler libsfst) target_link_libraries(fst-compiler readline) add_executable(fst-compiler-utf8 compact.cpp make-compact.cpp interface.cpp utf8-scanner.cpp fst-compiler.cpp) target_link_libraries(fst-compiler-utf8 libsfst) target_link_libraries(fst-compiler-utf8 readline) add_executable(fst-mor fst-mor.cpp) target_link_libraries(fst-mor libsfst) add_executable(fst-text2bin fst-text2bin.cpp) target_link_libraries(fst-text2bin libsfst) add_executable(fst-infl2 fst-infl2.cpp compact.cpp robust.cpp) target_link_libraries(fst-infl2 libsfst) add_executable(fst-infl2-daemon fst-infl2-daemon.cpp compact.cpp robust.cpp) target_link_libraries(fst-infl2-daemon libsfst) add_executable(fst-infl3 fst-infl3.cpp lowmem.cpp) target_link_libraries(fst-infl3 libsfst) add_executable(fst-infl fst-infl.cpp) target_link_libraries(fst-infl libsfst) add_executable(fst-train fst-train.cpp compact.cpp) target_link_libraries(fst-train libsfst) add_executable(fst-match fst-match.cpp compact.cpp ) target_link_libraries(fst-match libsfst) add_executable(fst-generate fst-generate.cpp generate.cpp) target_link_libraries(fst-generate libsfst) add_executable(fst-compact fst-compact.cpp make-compact.cpp compact.cpp) target_link_libraries(fst-compact libsfst) add_executable(fst-parse fst-parse.cpp) target_link_libraries(fst-parse libsfst) add_executable(fst-print fst-print.cpp) target_link_libraries(fst-print libsfst) add_executable(fst-lattice fst-lattice.cpp) target_link_libraries(fst-lattice libsfst) add_executable(fst-lowmem fst-lowmem.cpp) target_link_libraries(fst-lowmem libsfst) # Install install(TARGETS fst-compact fst-generate fst-infl2 fst-lattice fst-match fst-parse fst-text2bin fst-compiler fst-compiler-utf8 fst-infl fst-infl3 fst-lowmem fst-mor fst-print fst-train RUNTIME DESTINATION bin) endif() install(TARGETS libsfst RUNTIME DESTINATION lib) # Install the headers install(FILES ${HEADERS} DESTINATION include/${PROJECT_NAME}) file(GLOB_RECURSE SOURCE_FILES *.cpp) find_program(CLANG_TIDY NAMES clang-tidy) if (CLANG_TIDY) add_custom_target( clang-tidy COMMAND ${CLANG_TIDY} ${SOURCE_FILES} -- -std=c++11 ) endif () sfst-1.7.0/src/Socket.h000066400000000000000000000035241470213725200146750ustar00rootroot00000000000000 /*******************************************************************/ /* */ /* File: Socket.h */ /* Author: Helmut Schmid */ /* Purpose: */ /* Created: Fri Aug 15 14:19:19 2008 */ /* Modified: Wed Sep 29 08:44:43 2010 (schmid) */ /* */ /*******************************************************************/ namespace SFST { /***************** class Socket **********************************/ class Socket { int portno; /* port address */ int sockfd; struct sockaddr_in serv_addr; struct sockaddr cli_addr; socklen_t clilen; public: int next_client() { return accept(sockfd, (struct sockaddr *)&serv_addr, &clilen); } Socket(int port = 7070) : portno(port) { /* create a socket */ sockfd = socket(AF_INET, SOCK_STREAM, 0); if (sockfd < 0) { fprintf(stderr, "ERROR opening socket\n"); exit(1); } /* initialise serv_addr with zeros */ bzero((char *)&serv_addr, sizeof(serv_addr)); serv_addr.sin_family = AF_INET; /* convert portno to network byte order and */ /* store it in serv_addr.sin_port */ serv_addr.sin_port = htons(portno); /* set the host IP address (available in INADDR_ANY) */ serv_addr.sin_addr.s_addr = INADDR_ANY; /* bind the socket to a host and port */ if (bind(sockfd, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) < 0) { fprintf(stderr, "ERROR on binding\n"); exit(1); } /* Listen to the socket; up to 5 connections at a time */ listen(sockfd, 5); clilen = sizeof(cli_addr); } }; } // namespace SFST sfst-1.7.0/src/alphabet.cpp000066400000000000000000000606441470213725200155660ustar00rootroot00000000000000 /*******************************************************************/ /* */ /* MODULE alphabet */ /* PROGRAM SFST */ /* AUTHOR Helmut Schmid, IMS, University of Stuttgart */ /* */ /* PURPOSE basic FST functions */ /* */ /*******************************************************************/ #include #include #include #include "alphabet.h" #include "utf8.h" #include using std::map; namespace SFST { using std::ostream; using std::vector; const int BUFFER_SIZE = 100000; char EpsilonString[] = "<>"; /*******************************************************************/ /* */ /* Alphabet::add */ /* */ /*******************************************************************/ void Alphabet::add(std::string symbol, Character c) { if (sm.find(symbol) != sm.end()) { std::cerr << "Duplicate insertion " << symbol << "\n"; } else { cm[c] = symbol; sm[symbol] = c; } } /*******************************************************************/ /* */ /* Alphabet::Alphabet */ /* */ /*******************************************************************/ Alphabet::Alphabet() { utf8 = false; add(EpsilonString, Label::epsilon); } /*******************************************************************/ /* */ /* Alphabet::clear */ /* */ /*******************************************************************/ void Alphabet::clear() { ls.clear(); sm.clear(); cm.clear(); } /*******************************************************************/ /* */ /* Alphabet::print */ /* */ /*******************************************************************/ void Alphabet::print(void) { for (LabelSet::const_iterator it = begin(); it != end(); it++) { Label l = *it; std::cerr << write_label(l) << "\n"; } } /*******************************************************************/ /* */ /* Alphabet::new_marker */ /* */ /*******************************************************************/ Character Alphabet::new_marker() { // find some unused character code for (Character i = 1; i != 0; i++) if (cm.find(i) == cm.end()) { // create a unique identifier string char symbol[100]; sprintf(symbol, ">%ld<", (long)i); add(symbol, i); return i; } throw "Error: too many symbols in transducer definition"; } /*******************************************************************/ /* */ /* is_marker_symbol */ /* */ /*******************************************************************/ static bool is_marker_symbol(std::string s) { // recognize strings matching the expression ">[0-9]+<" return std::regex_match(s, std::regex(">[0-9]+<")); } /*******************************************************************/ /* */ /* Alphabet::delete_markers */ /* */ /*******************************************************************/ void Alphabet::delete_markers() { vector sym; vector code; vector