[SCM] Gerris Flow Solver branch, debian-unstable, updated. gerris-20091109-dfsg.1-2-3-gbf20045

Drew Parsons dparsons at debian.org
Tue Apr 5 16:53:22 UTC 2011


The following commit has been merged in the debian-unstable branch:
commit e4c40d2cd803268009c0c67f57c170faaf55039e
Author: Drew Parsons <Drew.Parsons at anu.edu.au>
Date:   Wed Apr 6 01:26:32 2011 +1000

    copy new upstream tarball 20110329-dfsg.1
    
    copying from upstream branch.
    Upstream 2009-03-29 (tarball snapshot 110330)

diff --git a/AUTHORS b/AUTHORS
index c435447..4cfc2d1 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -1,14 +1,18 @@
 Original Authors
 ----------------
-Stéphane Popinet   <popinet at users.sf.net>
-Sébastien Delaux   <s.delaux at niwa.co.nz> : Moving solid boundaries
+Stéphane Popinet   <popinet at users.sf.net>
+Sébastien Delaux   <s.delaux at niwa.co.nz> : Moving solid boundaries
+Gaurav Tomar       <gaurav.tomar03 at gmail.com> : particulates module
+Andris Rudzītis    <andrisrudzitis at gmail.com> : df3 povray module
+Jose M. López-Herrera Sánchez <jose.lopez.herrera.s at gmail.com> : electrohydro module
+Kristján Gudmundsson <kristjang at gmail.com> : GfsSpatialSum
 
 Contributors
 ------------
 Marcelo E. Magallon, Ruben Molina, Drew Parsons: Debian packages
 Ruben Scardovelli: - author of the Fortran version of gfs_plane_alpha()
       		   - Mixed Youngs-Centered VOF normal calculation
-Ivan Adam Vari: RPM packages.
+Ivan Adam Vari, Matthieu Castellazzi: RPM packages.
 Daniel Fuster: gfsjoin script
 Rohallah Tavakoli: initial implementation of VTK and Tecplot output
 Norbert Beckmann: R*-tree implementation used in the terrain module
diff --git a/COPYING b/COPYING
index d60c31a..94a9ed0 100644
--- a/COPYING
+++ b/COPYING
@@ -1,285 +1,626 @@
-		    GNU GENERAL PUBLIC LICENSE
-		       Version 2, June 1991
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 3, 29 June 2007
 
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
  Everyone is permitted to copy and distribute verbatim copies
  of this license document, but changing it is not allowed.
 
-			    Preamble
+                            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
+  The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+  The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works.  By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users.  We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors.  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.
+them 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.
+  To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights.  Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
 
   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.
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received.  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.
+
+  Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+  For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software.  For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+  Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so.  This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software.  The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable.  Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products.  If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+  Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary.  To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
 
   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
+
+                       TERMS AND CONDITIONS
+
+  0. Definitions.
+
+  "This License" refers to version 3 of the GNU General Public License.
+
+  "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+  "The Program" refers to any copyrightable work licensed under this
+License.  Each licensee is addressed as "you".  "Licensees" and
+"recipients" may be individuals or organizations.
+
+  To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy.  The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+  A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+  To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy.  Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+  To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies.  Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+  An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License.  If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+  1. Source Code.
+
+  The "source code" for a work means the preferred form of the work
+for making modifications to it.  "Object code" means any non-source
+form of a work.
+
+  A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+  The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form.  A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+  The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities.  However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work.  For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+  The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+  The Corresponding Source for a work in source code form is that
+same work.
+
+  2. Basic Permissions.
+
+  All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met.  This License explicitly affirms your unlimited
+permission to run the unmodified Program.  The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work.  This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+  You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force.  You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright.  Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+  Conveying under any other circumstances is permitted solely under
+the conditions stated below.  Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+  3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+  No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+  When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+  4. Conveying Verbatim Copies.
+
+  You may convey 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;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+  You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+  5. Conveying Modified Source Versions.
+
+  You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+    a) The work must carry prominent notices stating that you modified
+    it, and giving a relevant date.
+
+    b) The work must carry prominent notices stating that it is
+    released under this License and any conditions added under section
+    7.  This requirement modifies the requirement in section 4 to
+    "keep intact all notices".
+
+    c) You must license the entire work, as a whole, under this
+    License to anyone who comes into possession of a copy.  This
+    License will therefore apply, along with any applicable section 7
+    additional terms, to the whole of the work, and all its parts,
+    regardless of how they are packaged.  This License gives no
+    permission to license the work in any other way, but it does not
+    invalidate such permission if you have separately received it.
+
+    d) If the work has interactive user interfaces, each must display
+    Appropriate Legal Notices; however, if the Program has interactive
+    interfaces that do not display Appropriate Legal Notices, your
+    work need not make them do so.
+
+  A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit.  Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+  6. Conveying Non-Source Forms.
+
+  You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+    a) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by the
+    Corresponding Source fixed on a durable physical medium
+    customarily used for software interchange.
+
+    b) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by a
+    written offer, valid for at least three years and valid for as
+    long as you offer spare parts or customer support for that product
+    model, to give anyone who possesses the object code either (1) a
+    copy of the Corresponding Source for all the software in the
+    product that is covered by this License, on a durable physical
+    medium customarily used for software interchange, for a price no
+    more than your reasonable cost of physically performing this
+    conveying of source, or (2) access to copy the
+    Corresponding Source from a network server at no charge.
+
+    c) Convey individual copies of the object code with a copy of the
+    written offer to provide the Corresponding Source.  This
+    alternative is allowed only occasionally and noncommercially, and
+    only if you received the object code with such an offer, in accord
+    with subsection 6b.
+
+    d) Convey the object code by offering access from a designated
+    place (gratis or for a charge), and offer equivalent access to the
+    Corresponding Source in the same way through the same place at no
+    further charge.  You need not require recipients to copy the
+    Corresponding Source along with the object code.  If the place to
+    copy the object code is a network server, the Corresponding Source
+    may be on a different server (operated by you or a third party)
+    that supports equivalent copying facilities, provided you maintain
+    clear directions next to the object code saying where to find the
+    Corresponding Source.  Regardless of what server hosts the
+    Corresponding Source, you remain obligated to ensure that it is
+    available for as long as needed to satisfy these requirements.
+
+    e) Convey the object code using peer-to-peer transmission, provided
+    you inform other peers where the object code and Corresponding
+    Source of the work are being offered to the general public at no
+    charge under subsection 6d.
+
+  A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+  A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling.  In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage.  For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product.  A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+  "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source.  The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+  If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information.  But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+  The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed.  Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+  Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+  7. Additional Terms.
+
+  "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law.  If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+  When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it.  (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.)  You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+  Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+    a) Disclaiming warranty or limiting liability differently from the
+    terms of sections 15 and 16 of this License; or
+
+    b) Requiring preservation of specified reasonable legal notices or
+    author attributions in that material or in the Appropriate Legal
+    Notices displayed by works containing it; or
+
+    c) Prohibiting misrepresentation of the origin of that material, or
+    requiring that modified versions of such material be marked in
+    reasonable ways as different from the original version; or
+
+    d) Limiting the use for publicity purposes of names of licensors or
+    authors of the material; or
+
+    e) Declining to grant rights under trademark law for use of some
+    trade names, trademarks, or service marks; or
+
+    f) Requiring indemnification of licensors and authors of that
+    material by anyone who conveys the material (or modified versions of
+    it) with contractual assumptions of liability to the recipient, for
+    any liability that these contractual assumptions directly impose on
+    those licensors and authors.
+
+  All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10.  If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term.  If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+  If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+  Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+  8. Termination.
+
+  You may not propagate or modify a covered work except as expressly
+provided under this License.  Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+  However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+  Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+  Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License.  If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+  9. Acceptance Not Required for Having Copies.
+
+  You are not required to accept this License in order to receive or
+run a copy of the Program.  Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance.  However,
+nothing other than this License grants you permission to propagate or
+modify any covered work.  These actions infringe copyright if you do
+not accept this License.  Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+  10. Automatic Licensing of Downstream Recipients.
+
+  Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License.  You are not responsible
+for enforcing compliance by third parties with this License.
+
+  An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations.  If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+  You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License.  For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+  11. Patents.
+
+  A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based.  The
+work thus licensed is called the contributor's "contributor version".
+
+  A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version.  For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
 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
+  Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+  In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement).  To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+  If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients.  "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+  If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+  A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License.  You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+  Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+  12. No Surrender of Others' Freedom.
+
+  If 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
+excuse you from the conditions of this License.  If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all.  For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+  13. Use with the GNU Affero General Public License.
+
+  Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work.  The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+  14. Revised Versions of this License.
+
+  The Free Software Foundation may publish revised and/or new versions of
+the GNU 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
-
-	    How to Apply These Terms to Your New Programs
+  Each version is given a distinguishing version number.  If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation.  If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+  If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+  Later license versions may give you additional or different
+permissions.  However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+  15. Disclaimer of Warranty.
+
+  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.
+
+  16. Limitation of Liability.
+
+  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+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.
+
+  17. Interpretation of Sections 15 and 16.
+
+  If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+                     END OF TERMS AND CONDITIONS
+
+            How to Apply These Terms to Your New Programs
 
   If you develop a new program, and you want it to be of the greatest
 possible use to the public, the best way to achieve this is to make it
@@ -287,15 +628,15 @@ free software which everyone can redistribute and change under these terms.
 
   To do so, attach the following notices to the program.  It is safest
 to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
+state the exclusion of warranty; and each file should have at least
 the "copyright" line and a pointer to where the full notice is found.
 
     <one line to give the program's name and a brief idea of what it does.>
     Copyright (C) <year>  <name of author>
 
-    This program is free software; you can redistribute it and/or modify
+    This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
+    the Free Software Foundation, either version 3 of the License, or
     (at your option) any later version.
 
     This program is distributed in the hope that it will be useful,
@@ -304,37 +645,30 @@ the "copyright" line and a pointer to where the full notice is found.
     GNU General Public License for more details.
 
     You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 Also add information on how to contact you by electronic and paper mail.
 
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
+  If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
 
-    Gnomovision version 69, Copyright (C) year  name of author
-    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    <program>  Copyright (C) <year>  <name of author>
+    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
     This is free software, and you are welcome to redistribute it
     under certain conditions; type `show c' for details.
 
 The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License.  Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
-  `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
-  <signature of Ty Coon>, 1 April 1989
-  Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs.  If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library.  If this is what you want to do, use the GNU Library General
-Public License instead of this License.
+parts of the General Public License.  Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+  You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<http://www.gnu.org/licenses/>.
+
+  The GNU General Public License does not permit incorporating your program
+into proprietary programs.  If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.  But first, please read
+<http://www.gnu.org/philosophy/why-not-lgpl.html>.
diff --git a/ChangeLog b/ChangeLog
index d785692..8337bb4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,256 +1,1738 @@
-Wed Nov 11 03:10:05 NZDT 2009  Stephane Popinet <s.popinet at niwa.co.nz>
-  tagged 2009-11-09
+Wed Mar 30 11:19:12 CEST 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  tagged 2011-03-29
 
-Tue Nov 10 02:32:04 NZDT 2009  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Mar 29 14:11:21 CEST 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  * changed web address in docs
+
+Tue Mar 29 02:25:47 CEST 2011  Daniel Fuster <dfuster at gmail.com>
+  * destroy object for FeedParticle + np is now a GfsFunction + assign forces
+
+Mon Mar 28 20:02:41 CEST 2011  Stephane Popinet <popinet at users.sf.net>
+  * Cosmetics for GfsFeedParticle
+
+Sat Mar 26 15:28:50 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  tagged 2011-03-25
+
+Fri Mar 25 16:00:01 CET 2011  Stephane Popinet <popinet at users.sf.net>
+  * Minor fixes for GfsParticulate
+
+Fri Mar 25 15:51:10 CET 2011  Stephane Popinet <popinet at users.sf.net>
+  * Minor fixes for GfsBubbleFraction
+
+Fri Mar 25 13:36:13 CET 2011  Daniel Fuster <dfuster at gmail.com>
+  * Corrections in GfsBubbleFractions. The kernel function and projection radius are user defined functions
+
+Thu Mar 24 11:13:13 CET 2011  Stephane Popinet <popinet at users.sf.net>
+  * Simplified GfsBubbleFraction implementation
+
+Mon Mar 21 15:39:32 CET 2011  Stephane Popinet <popinet at users.sf.net>
+  * New objects GfsBubbleFraction, GfsBubbleFractionDt
+
+Tue Mar 22 19:33:18 CET 2011  Daniel Fuster <dfuster at gmail.com>
+  * Particulates advect with fluid velocity when no force is specified
+
+Mon Mar 21 17:35:52 CET 2011  Daniel Fuster <fuster at dalembert.upmc.fr>
+  * feed particle object
+
+Mon Mar 21 17:31:42 CET 2011  Daniel Fuster <fuster at dalembert.upmc.fr>
+  * bug criteria bubble in cell + problem with L
+
+Sun Jan 30 20:58:05 CET 2011  Daniel Fuster <dfuster at gmail.com>
+  * bubble concentration field
+
+Sat Jan 29 18:12:12 CET 2011  Daniel Fuster <dfuster at gmail.com>
+  * new macro ftt_vector_dist
+
+Fri Jan 28 13:46:17 CET 2011  Daniel Fuster <dfuster at gmail.com>
+  * bug: units in GfsParticulateField
+
+Fri Dec 17 19:05:54 CET 2010  Daniel Fuster <dfuster at gmail.com>
+  * Temporal object bubbles2 to obtain dbdt at a given time
+
+Fri Mar 25 15:24:33 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  tagged 2011-03-17
+
+Thu Mar 17 15:08:59 CET 2011  Stephane Popinet <popinet at users.sf.net>
+  * Added JASON-1 profile for tsunami example
+
+Fri Mar 25 14:26:52 CET 2011  Stephane Popinet <popinet at users.sf.net>
+  * New wind-driven lake test case
+
+Fri Mar 25 14:16:17 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Turn off rank-deficient fix for GfsPoisson
+  
+  This seemed to degrade convergence for test cases.
+
+Mon Mar 21 10:29:24 CET 2011  Stephane Popinet <popinet at users.sf.net>
+  * gfs_get_poisson_problem() returns a linear system with a unique solution
+  
+  For Neumann bcs everywhere, the solution of the Poisson problem is
+  defined to within a constant. This causes convergence problems for
+  external linear solvers such as hypre. The solution is to remove the
+  extra degree of freedom by setting the value of the solution in a
+  single row. Note that the check for Neumann bcs assumes a simply
+  connected domain topology.
+
+Fri Mar 25 10:15:57 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Fix for summary.sh in parallel test suite
+
+Fri Mar 25 00:06:29 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Bug fix for automake version check
+
+Thu Mar 24 17:58:51 CET 2011  Stephane Popinet <popinet at users.sf.net>
+  * Fix for automake options and missing dep files
+
+Thu Mar 24 20:59:04 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Fix for dependencies in tests
+
+Tue Mar 22 15:46:32 CET 2011  Stephane Popinet <popinet at users.sf.net>
+  * Check for increasing order in CGD files
+
+Mon Mar 21 12:32:05 CET 2011  Stephane Popinet <popinet at users.sf.net>
+  * Bug fix for cost variable in GfsAdapt
+
+Thu Mar 17 11:18:19 CET 2011  Stephane Popinet <popinet at users.sf.net>
+  * "`%-style pattern rules are a GNU make extension" correction
+
+Thu Mar 17 11:12:26 CET 2011  Stephane Popinet <popinet at users.sf.net>
+  * Added warning when reading obsolete terrain databases
+
+Wed Mar 23 19:45:01 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  * darcs2dist also works with straight directories
+
+Wed Mar 23 13:27:11 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Various cosmetics for doc generation
+
+Mon Mar 21 21:15:43 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  * g_ptr_array_foreach() should not be used for compatibility with old glib
+
+Mon Mar 21 22:55:39 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Use doxygen to generate programming reference
+
+Sat Mar 19 00:25:33 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Simplified tolerance criterion for hypre, lis and agmg
+
+Fri Mar 18 23:23:19 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Added configuration summary
+
+Wed Mar 16 22:58:29 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Removed warning message from AGMG
+
+Wed Mar 16 22:58:16 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  * New agmg Poisson solver module
+
+Fri Mar 18 23:17:58 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  * New publish target for examples and tests docs
+
+Fri Mar 18 23:15:20 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Updated test cases references for 64-bit systems
+
+Fri Mar 18 21:43:43 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Support for parallel tests
+
+Wed Mar 16 09:24:43 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  * New lis module for Poisson solution
+
+Sun Feb 13 00:55:30 CET 2011  Stephane Popinet <popinet at users.sf.net>
+  * gfs_get_poisson_problem() does not construct stencils for boundary values (experimental)
+  
+  This reduces the size of the system, increases the minimum degree of
+  each row and leads to better convergence of hypre solvers in all cases
+  tested so far. Including convergence for some previously pathological
+  cases. It also simplifies the code.
+
+Thu Jan 20 21:13:10 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Support for parallel test suite
+
+Sun Feb 13 06:13:27 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  tagged 2011-02-12
+
+Sat Feb 12 15:32:20 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Updated Poisson test cases references
+
+Sat Feb 12 14:42:03 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Adaptivity can be used within GfsPoisson
+
+Sat Feb 12 14:39:42 CET 2011  Stephane Popinet <popinet at users.sf.net>
+  * OutputTime uses a global real and cpu timer
+
+Thu Feb 10 06:13:44 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  tagged 2011-02-09
+
+Wed Feb  9 10:02:40 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Bug fix and simplification of MetricStretch
+
+Wed Feb  9 09:45:09 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Fixed documentation
+
+Wed Feb  9 05:39:44 CET 2011  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * Doc for several functions
+
+Tue Feb  8 21:28:17 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Stretch metric does not need an extra variable
+
+Tue Feb  8 14:39:16 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Several fixes for weighted terrain database implementation
+
+Tue Jan 11 23:05:26 CET 2011  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * Weighting of databases for the terrain module 
+
+Tue Feb  8 13:18:29 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Made stretchlid a subcase of lid test case
+
+Tue Feb  8 13:00:03 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Several fixes for the gaussian test case + new lonlat version
+
+Mon Jan 10 03:27:31 CET 2011  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * New test case of a stretched lid-driven cavity
+
+Tue Feb  8 11:59:58 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Stretch metric uses the new face_scale_metric() interface
+
+Mon Jan 10 01:33:13 CET 2011  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * New stretch metric
+
+Tue Feb  8 10:57:25 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  * New test case harmonic/lonlat
+
+Tue Feb  8 10:45:11 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Cleanup and completion of harmonic test case
+
+Tue Feb  8 10:42:08 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Cosmetics for GfsPoisson
+
+Tue Feb  8 10:40:30 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Fixes for face_scale_metric() implementation.
+  
+  Also thoroughly checked the cubed metric and added implementation for lonlat metric.
+
+Mon Jan 10 00:08:48 CET 2011  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * Poisson solver works with the cubed metric
+
+Wed Feb  2 22:58:59 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Cosmetics
+
+Sun Jan  9 23:30:53 CET 2011  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * New test case Gaussian
+
+Sun Jan  9 23:28:58 CET 2011  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * New harmonic test case
+
+Fri Feb  4 05:41:43 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  tagged 2011-01-11
+
+Tue Jan 11 02:42:20 CET 2011  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * Bug fix for hypre and relax_dirichlet
+
+Wed Feb  2 22:42:16 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Cleanup of patches for Dirichlet/hypre
+
+Wed Nov 24 05:31:11 CET 2010  Sebastien Delaux <s.delauxs at niwa.co.nz>
+  * Poisson dirichlet test works with hypre
+
+Mon Nov 22 03:50:22 CET 2010  Sebastien Delaux <s.delauxs at niwa.co.nz>
+  * Poisson problem extraction works with Dirichlet BC
+
+Wed Feb  2 16:26:34 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  * New forced isotropic turbulence example
+
+Tue Feb  1 05:37:18 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  tagged 2011-01-31
+
+Mon Jan 31 21:30:25 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Cosmetics for hypre module
+
+Mon Jan 31 13:14:40 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Cosmetics
+
+Mon Jan 31 11:24:08 CET 2011  Kristjan Gudmundsson <kristjang at gmail.com>
+  * SpatialSum was missing factor L^dimension
+
+Mon Jan 31 12:51:24 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Important bug fix for diffusion. The scheme was not conservative in 3D
+  on adaptive meshes. This bug was introduced by this patch:
+  
+  Thu Nov  4 18:33:10 CET 2010  J.M. Lopez-Herrera <jose.lopez.herrera.s at gmail.com>
+    * New interface and implementation for gfs_cm_gradient()
+
+Sun Jan 30 20:57:52 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  * GfsConstant is an "init" event
+
+Sun Jan 30 05:39:24 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  tagged 2011-01-29
+
+Sat Jan 29 21:49:34 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Bug fix for automatic parallel partitioning
+
+Sat Jan 29 20:47:05 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  * support for automatic partitioning in parallel
+
+Sat Jan 29 09:22:28 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Updated reference for electro test
+
+Fri Jan 28 21:33:04 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Bug fix for deallocation of function cache
+
+Fri Jan 28 16:12:30 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Bug fix for BCs of AdaptError
+
+Fri Jan 28 12:06:19 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Added terrain path to test suite script
+
+Thu Jan 27 16:59:26 CET 2011  Stephane Popinet <popinet at users.sf.net>
+  * Added cache of already compiled GfsFunctions
+
+Thu Jan 27 16:23:58 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Need to be more careful when to update H for GfsRiver
+
+Thu Jan 27 10:07:05 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Fix for initialisation of variables in "leaf" boxes
+
+Wed Jan 26 17:17:14 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Bug fix for dependencies in BCs + load-balancing
+
+Tue Jan 25 15:02:53 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Option -s and -b/-p can be combined within a single gerris command
+
+Thu Jan 27 17:15:04 CET 2011  Stephane Popinet <popinet at users.sf.net>
+  * Added MPI build for Centos/rhel in RPM spec
+
+Sat Jan 22 11:48:20 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Fixed gfv file for geo test case
+
+Mon Jan 24 15:28:36 CET 2011  Stephane Popinet <popinet at users.sf.net>
+  * Bug fix for initialisation of dx() variables in parallel
+
+Thu Jan 20 15:27:44 CET 2011  Stephane Popinet <popinet at users.sf.net>
+  * New Indian Ocean tsunami example
+
+Sat Jan 22 05:38:26 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  tagged 2011-01-21
+
+Fri Jan 21 09:27:04 CET 2011  Stephane Popinet <popinet at users.sf.net>
+  * Added *.mp4 to examples dependencies
+
+Fri Jan 21 05:40:53 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  tagged 2011-01-20
+
+Thu Jan 20 21:59:28 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Fixed monai tsunami script
+
+Wed Nov 17 00:46:25 CET 2010  Sebastien Delaux <s.delauxs at niwa.co.nz>
+  * gfs2oogl now takes mapping and physical values into account
+
+Thu Jan 20 22:42:05 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Monai example also works in batch mode
+
+Thu Jan 20 15:27:09 CET 2011  Stephane Popinet <popinet at users.sf.net>
+  * New Monai tsunami example
+
+Thu Jan 20 12:07:53 CET 2011  Stephane Popinet <popinet at users.sf.net>
+  * Fixed inverse mapping when using several maps
+
+Thu Jan  6 17:14:10 CET 2011  Stephane Popinet <popinet at users.sf.net>
+  * Cleanup of map_cubed_transform()
+
+Mon Nov 29 20:37:43 CET 2010  Sebastien Delaux <s.delauxs at niwa.co.nz>
+  * map_cubed_transform works for all faces
+
+Sat Jan  8 05:36:25 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  tagged 2011-01-07
+
+Fri Jan  7 20:30:09 CET 2011  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Fix for column example
+
+Tue Jan  4 13:43:48 CET 2011  Stephane Popinet <popinet at users.sf.net>
+  * New utility 'cloneubuntu' for buildservice
+
+Thu Jan  6 14:51:33 CET 2011  Stephane Popinet <popinet at users.sf.net>
+  * New granular column collapse example
+
+Tue Jan  4 13:43:04 CET 2011  Stephane Popinet <popinet at users.sf.net>
+  * Fixed netcdf header dependency in fes2004
+
+Mon Dec 20 05:39:47 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  tagged 2010-12-19
+
+Sun Dec 19 14:48:22 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Simplified volume source implementation
+
+Fri Dec 17 17:25:13 CET 2010  Stephane Popinet <popinet at users.sf.net>
+  * SourceVolume is replaced with a modified GfsSource
+
+Fri Dec 17 16:51:59 CET 2010  Stephane Popinet <popinet at users.sf.net>
+  * Cleanup of SourceVolume
+
+Fri Dec 17 16:43:47 CET 2010  Stephane Popinet <popinet at users.sf.net>
+  * Cleanup of source test case
+
+Fri Dec 17 10:35:59 CET 2010  Daniel Fuster <dfuster at gmail.com>
+  * sourcevolume object
+
+Wed Dec 15 17:00:51 CET 2010  Daniel Fuster <dfuster at gmail.com>
+  * correction of units in particles and bubble modules
+
+Wed Dec 15 08:23:47 CET 2010  Daniel Fuster <dfuster at gmail.com>
+  * source mass
+
+Tue Dec  7 15:57:14 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Cleanup of particulates module
+
+Thu Dec  2 00:16:01 CET 2010  Daniel Fuster <dfuster at gmail.com>
+  * simplified method for gfsparticlefield
+
+Sat Nov 13 20:41:35 CET 2010  Daniel Fuster <dfuster at gmail.com>
+  * Generalization of GfsParticulate
+  
+  Now GfsParticulate has as arguments the functions to define the void fraction field
+  and the criteria for the cells where the function is applied.
+
+Wed Nov 10 14:20:30 CET 2010  Daniel Fuster <dfuster at gmail.com>
+  * new GfsParticulateField object
+  It allows to obtain the particle concentration field from a list of particles
+  
+
+Fri Dec 17 05:39:22 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  tagged 2010-12-16
+
+Thu Dec 16 16:47:49 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Bug fix for file flushing in GfsOutput
+
+Sat Dec  4 05:32:28 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  tagged 2010-12-03
+
+Fri Dec  3 21:50:55 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * GfsPoisson takes alpha into account
+
+Thu Dec  2 20:47:32 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Display diffusion statistics only for a positive number of iterations
+
+Thu Dec  2 21:28:15 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Bug fix for multiple module loading
+
+Fri Dec  3 17:25:40 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Minor cleanup of metric bug fix
+
+Fri Dec  3 09:29:19 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * MacOSX needs the "-module" libtool flag
+
+Wed Nov 24 18:46:54 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * InitVorticity should now work also in 3D
+
+Sun Nov 14 11:54:38 CET 2010  Daniel Fuster <dfuster at gmail.com>
+  * Initialization of multiple modules in the header of a simulation file
+
+Fri Nov 12 14:15:27 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Linearised Euler solver
+
+Tue Nov  9 21:56:03 CET 2010  Sebastien Delaux <s.delauxs at niwa.co.nz>
+  * Fix for problems related to the "date line" in the lonlat mapping
+
+Fri Nov 12 05:34:02 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  tagged 2010-11-11
+
+Thu Nov 11 21:00:30 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * lonlat test case uses gfsview module
+
+Tue Nov  9 15:32:00 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Fixed spec file for CentOS
+
+Tue Nov  9 15:31:36 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Updated AUTHORS
+
+Tue Nov  9 09:25:31 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * GfsDiffusion needs to maintain a consistent diffusion coefficient
+  
+  Even after the mesh has been adapted.
+
+Mon Nov  8 09:47:47 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Fixed GSL test in configure
+
+Sun Nov  7 18:22:41 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * GfsBubble now belongs to a separate module
+
+Sun Nov  7 13:14:40 CET 2010  Daniel Fuster <dfuster at gmail.com>
+  * GfsBubbles uses now the adaptive RK from GSL
+
+Fri Nov  5 14:05:24 CET 2010  J.M. Lopez-Herrera <jose.lopez.herrera.s at gmail.com>
+  * Potential needs to be centered
+
+Fri Nov  5 11:28:22 CET 2010  J.M. Lopez-Herrera <jose.lopez.herrera.s at gmail.com>
+  * New planar solid electrohydro test case
+
+Fri Nov  5 11:14:55 CET 2010  J.M. Lopez-Herrera <jose.lopez.herrera.s at gmail.com>
+  * SourceElectric should now work with solids
+
+Thu Nov  4 18:33:10 CET 2010  J.M. Lopez-Herrera <jose.lopez.herrera.s at gmail.com>
+  * New interface and implementation for gfs_cm_gradient()
+
+Wed Nov  3 17:56:27 CET 2010  J.M. Lopez-Herrera <jose.lopez.herrera.s at gmail.com>
+  * Planar electrohydro test case
+
+Thu Nov  4 12:24:38 CET 2010  jmlopezherrera at gmail.com
+  * gfs_cm_gradient
+
+Fri Jul 16 14:51:52 CEST 2010  jmlopezherrera at gmail.com
+  * planar capacitor case (incomplete)
+
+Thu Jul 15 15:40:31 CEST 2010  jmlopezherrera at gmail.com
+  * minus_gradient take into account mixed cells
+
+Fri Nov  5 23:25:01 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Fix for event() method of GfsBubble + cosmetics
+
+Tue Nov  2 11:50:08 CET 2010  Daniel Fuster <dfuster at gmail.com>
+  * Gfsbubble object
+  Now the particles can represent compressible spherical bubbles
+
+Thu Oct 28 13:10:00 CEST 2010  Daniel Fuster <dfuster at gmail.com>
+  * Adaptive 4/5 Runge Kutta method
+
+Fri Nov  5 22:10:59 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Cleanup of GfsSpatialSum
+
+Tue Jul 27 13:17:22 CEST 2010  kristjang at gmail.com
+  * Addition of EventSpatialSum
+
+Fri Nov  5 09:00:45 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Cosmetics for bump test case
+
+Fri Nov  5 08:37:08 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * GfsSourceCharge has been replaced with GfsSourceDiffusionExplicit
+
+Thu Nov  4 16:35:26 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Checks for boundaries for Poisson + dirichlet conditions
+
+Mon Jul 12 15:05:40 CEST 2010  jmlopezherrera at gmail.com
+  * popinet patch trasferred to electrohydro
+
+Wed Nov  3 16:29:56 CET 2010  J.M. Lopez-Herrera <jose.lopez.herrera.s at gmail.com>
+  * Cosmetics for electrohydro test cases
+
+Fri Nov  5 05:40:30 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Improved and simplified flushing for GfsOutput
+
+Fri Nov  5 05:32:02 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  tagged 2010-11-04
+
+Thu Nov  4 12:42:41 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * New tracer diffusion test case
+
+Thu Nov  4 12:41:09 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Explicit diffusion should now work together with GfsSolid
+
+Wed Nov  3 06:06:38 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Generalised SourceDiffusionExplicit
+  
+  This can be used e.g. to replace SourceCharge in electrohydro. This is also
+  a preliminary implementation for explicit diffusion with immersed solid
+  boundaries.
+
+Wed Oct 20 06:31:20 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  tagged 2010-10-19
+
+Tue Oct 19 11:35:12 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * CFL condition takes sinking velocity into account
+
+Fri Oct 15 02:19:53 CEST 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * Tracers can now have a sinking velocity
+
+Fri Jul 30 01:30:13 CEST 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * Fix for VOF with moving boundaries
+
+Tue Sep 21 07:29:54 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  tagged 2010-09-16
+
+Thu Sep 16 13:55:42 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Fix for kdt on 32-bits systems
+
+Wed Sep  8 14:47:08 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * More statistics in verbose mode for xyz2kdt
+
+Wed Sep  8 11:54:27 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Added options to xyz2kdt and made xyz2rsurface obsolete
+
+Wed Sep  8 07:29:00 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  tagged 2010-09-07
+
+Tue Sep  7 14:02:54 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Bug fix for kdt
+
+Tue Sep  7 07:29:53 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  tagged 2010-09-06
+
+Mon Sep  6 16:19:21 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Added progress indicator to kdtree
+
+Sun Aug 22 21:35:35 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * New "kdtree" implementation for terrain databases
+
+Thu Jul 22 07:29:29 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  tagged 2010-07-21
+
+Thu Jul 22 00:56:55 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Keyword generation for externally installed modules
+
+Wed Jul 21 06:20:10 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  tagged 2010-07-20
+
+Tue Jul 20 23:48:52 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Increased tolerance for Poisson test case runtimes
+
+Tue Jul 20 02:58:53 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * General functions for file-format string formatting
+
+Tue Jul 20 02:56:42 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Parallel cylinder example uses OutputView
+
+Tue Jul 20 00:15:42 CEST 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * Parallel restart from several simulation files
+
+Tue Jul 20 05:53:06 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  tagged 2010-07-17
+
+Mon Jul 19 08:18:19 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * New atomisation example
+
+Sat Jul 17 18:00:23 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  tagged 2010-07-17
+
+Sat Jul 17 09:25:20 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Fix for boundaries entirely contained within solids
+
+Sat Jul 17 08:51:27 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Improved error message when reading 2D file with 3D code
+
+Sat Jul 17 08:27:13 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Fix for inconsistent box positions when using periodic BC
+
+Sat Jul 17 06:09:29 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * OutputSolidForce should now work in parallel
+
+Fri Jul 16 01:48:57 CEST 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * OutputLocation should now work in parallel
+
+Fri Jul 16 02:47:02 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * It should now be possible to restart (large) parallel simulations
+
+Wed Jul 14 18:01:30 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  tagged 2010-07-14
+
+Wed Jul 14 06:34:35 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Bug fix for partitioning with '-d' option
+
+Wed Jul 14 05:21:10 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Cosmetics
+
+Wed Jul 14 05:19:55 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Added checks for consistency of partitioning
+
+Sat Jul 10 09:09:14 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Important bug fix for point location in parallel
+  
+  This fixes several VOF issues in parallel.
+
+Sat Jul 10 09:09:48 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  tagged 2010-07-10
+
+Sat Jul 10 02:29:51 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Gerris syntax highlighting for GeSHi
+
+Thu Jul  8 12:27:38 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * SourceControlField uses a relaxation timescale
+
+Fri Jul  9 06:10:22 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  tagged 2010-07-08
+
+Thu Jul  8 23:42:32 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Fixed formatting of poisson/dirichlet test case
+
+Thu Jul  8 08:05:48 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Added missing dependency for rpm spec
+
+Wed Jul  7 12:51:13 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * New Poisson test case with Dirichlet boundary conditions
+
+Wed Jul  7 11:52:35 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * GfsPoisson should now work with Dirichlet boundary conditions
+
+Wed Jul  7 05:23:58 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * GfsOutput takes an optional weight (only used by OutputScalarSum for now)
+
+Wed Jul  7 05:22:28 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * New functions dsx(), dsy(), dsz() and flux()
+
+Fri Jul  2 17:11:31 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  tagged 2010-07-02
+
+Fri Jul  2 10:23:33 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Simplified 3D Coriolis implementation
+
+Wed Jun 30 22:48:48 CEST 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * Generalisation of Coriolis to 3D
+
+Thu Jul  1 08:45:21 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  tagged 2010-06-30
+
+Wed Jun 30 11:51:56 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Added checks for bump and cylinder test cases
+
+Wed Jun 30 08:00:54 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Added comparison with reference for 'bump' test case
+
+Tue Jun 29 14:51:50 CEST 2010  "Jose Lopez-Herrera Sanchez"<jose.lopez.herrera.s at gmail.com>
+  * bump test modified
+
+Tue Jun 29 11:08:38 CEST 2010  "Jose Lopez-Herrera Sanchez"<jose.lopez.herrera.s at gmail.com>
+  * cylinder test
+
+Thu Jun 10 01:00:13 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Formatting fixes for new 'bump' test case
+
+Thu Jun 10 00:22:01 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Changed gfs_poisson_coefficients() interface to allow for zero coefficients
+
+Thu Jun 10 00:11:46 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Rolled back change for zero conductivity
+
+Wed Jun  9 18:05:13 CEST 2010  "Jose Lopez-Herrera Sanchez"<jose.lopez.herrera.s at gmail.com>
+  * Allows isolating mediums
+
+Mon Jun  7 19:11:41 CEST 2010  "Jose Lopez-Herrera Sanchez"<jose.lopez.herrera.s at gmail.com>
+  * another test case
+
+Tue Jun 29 18:03:43 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  tagged 2010-06-29
+
+Tue Jun 29 03:56:05 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * SourceControlField uses smooth forcing field
+
+Mon Jun 28 18:03:36 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  tagged 2010-06-27
+
+Sun Jun 27 03:07:14 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * New function gfs_enable_floating_point_exceptions()
+
+Fri Jun 25 10:26:12 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  tagged 2010-06-25
+
+Fri Jun 25 03:56:05 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Fixed typo in examples template
+
+Wed Jun 23 07:10:07 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Minor cleanup of coriolis test case
+
+Wed Jun 23 05:38:41 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Various fixes for GfsOutputObject
+
+Tue Jun 22 21:59:44 CEST 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * New Coriolis test case
+
+Fri Jun 18 01:26:40 CEST 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * Important fix in particulate module
+
+Fri Jun 18 00:47:48 CEST 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * New GfsOutputObject object
+
+Wed Jun 23 01:41:11 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Optimised movies for plateau examples
+
+Mon Jun 21 06:16:56 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  tagged 2010-06-20
+
+Sun Jun 20 23:23:31 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Fixes tex path for tests doc
+
+Sun Jun 20 12:14:55 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Added doc support for embedded videos
+
+Sun Jun 20 10:33:24 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * ogg video does not like some resolutions
+
+Sun Jun 20 04:11:54 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * CSS style for tests and examples matched wiki
+
+Sun Jun 20 04:04:10 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * plateau example uses embedded videos
+
+Sun Jun 20 04:03:50 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * replaced cortado with kaltura javascript
+
+Fri Jun 18 12:49:03 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * New 'video' tag for latex/hevea docs
+
+Thu Jun 17 18:06:09 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  tagged 2010-06-17
+
+Thu Jun 17 05:06:12 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Fixed wavewatch module for older POSIX systems
+
+Wed Jun 16 06:45:47 CEST 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * VOF and moving boundary can now work together
+
+Sun Jun 13 23:19:07 CEST 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * Bug fix for parallel moving boundaries
+
+Wed Jun 16 10:13:36 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Fix for units of variance in GfsEventHarmonic
+
+Wed Jun 16 10:11:22 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Fix for implicit GfsSourceCoriolis
+
+Wed Jun 16 10:07:04 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Fixes for NODATA values in gradient computations
+
+Wed Jun 16 01:39:27 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Fixes for better C99 compliance
+
+Thu Jun 10 17:10:48 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  tagged 2010-06-09
+
+Thu Jun 10 00:25:21 CEST 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * More solvers can be used in the Hypre module
+
+Wed Jun  9 23:33:19 CEST 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * Fix in hypre tolerance in parallel
+
+Wed Jun  9 17:16:54 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  tagged 2010-06-09
+
+Wed Jun  9 04:48:51 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Minor fixes related to hypre module
+
+Tue Jun  8 04:18:04 CEST 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * Hypre now works in Parallel
+
+Tue Jun  8 04:10:09 CEST 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * Bug fix with Hypre
+
+Thu May 27 02:55:23 CEST 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * Quick fix for moving boundaries in parallel
+
+Thu May 27 02:14:06 CEST 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * New numbered vertex class
+
+Mon Jun  7 17:15:59 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  tagged 2010-06-07
+
+Mon Jun  7 10:52:29 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Somehow fesetenv() lead to a large decrease in performance
+
+Sun Jun  6 10:09:12 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * gfs_restore_floating_point_exceptions() restores initial state
+
+Mon Jun  7 04:50:03 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * New 'plateau' example
+
+Wed Jun  2 18:25:21 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  tagged 2010-06-02
+
+Wed Jun  2 04:56:24 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Updated test cases references for optimised adaptivity
+
+Tue Jun  1 10:27:13 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Parallel versions for OutputPPM and OutputGRD
+
+Tue Jun  1 06:50:01 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Optimisation for adaptivity on parallel boundaries
+
+Tue Jun  1 05:01:15 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * GfsDischargeElevation replaces GfsBoundaryDischarge (and also works in parallel)
+
+Tue Jun  1 02:35:44 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * New object GfsDischargeElevation
+
+Mon May 31 12:14:16 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * New object GfsConstant
+
+Sat May 29 18:18:29 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  tagged 2010-05-29
+
+Sat May 29 11:36:12 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Important bug fix for adaptivity in parallel (initial conditions)
+
+Sat May 29 11:38:54 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Improved error checking for 'electro' test case
+
+Sat May 29 05:35:09 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * New object GfsOutputPotentialStats
+
+Sat May 29 08:11:31 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  tagged 2010-05-27
+
+Thu May 27 23:41:17 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * New electrohydrodynamics test case
+
+Thu May 27 11:24:36 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * ElectroHydro reuses gfs_poisson_solve()
+
+Thu May 27 11:18:37 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * New function gfs_poisson_compatibility()
+
+Thu May 27 11:17:25 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * New "relative" option for GfsEventStop
+
+Thu May 27 11:16:26 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Fixed GfsSourceCharge to make it conservative on non-regular meshes
+  
+  It is important to use gfs_face_weighted_gradient() rather than
+  just gfs_face_gradient() in this case.
+
+Thu May 27 11:11:13 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Fixed inconsistent timesteping for the potential in ElectroHydro
+
+Wed May 26 11:30:58 CEST 2010  Stephane Popinet <popinet at users.sf.net>
+  * Renamed electro_hydro to electrohydro for consistency
+
+Wed May 26 02:06:45 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Simplified GfsElectroHydroAxi
+  
+  This could also work with other orthogonal mappings.
+
+Tue May 25 10:05:12 CEST 2010  jose.lopez.herrera.s at gmail.com
+  * GfsElectroHydroAxi 
+
+Wed May 26 18:22:29 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  tagged 2010-05-25
+
+Wed May 26 00:07:12 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Fixed floating-point exceptions in wavewatch module and GfsOcean
+
+Wed May 26 00:06:40 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Updated AUTHORS
+
+Tue May 25 06:46:05 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Updated parabola test case reference
+
+Tue May 25 06:43:09 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Text-format GfsSimulation output takes "depth" option into account
+
+Tue May 25 06:42:06 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Interpolation functions ignore NODATA values
+
+Tue May 25 06:40:13 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Catch user-generated floating-point exceptions
+
+Tue May 25 05:52:26 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Fixed 3D terrain refinement
+
+Fri May 21 12:28:52 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Bug fixes for emacs mode
+
+Wed May 19 14:03:39 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Traps on FPE_INVALID as well as FE_DIVBYZERO (i.e. nan and inf)
+
+Fri May 21 07:00:58 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Improved initialisation of shallow refined cells for GfsRiver
+
+Fri May 21 06:06:36 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * New object GfsVariableAge
+
+Thu May 20 23:37:00 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * SourceCoriolis uses backward Euler scheme for GfsRiver
+
+Thu May 20 06:41:46 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Use new GFS_NODATA macro where appropriate
+
+Wed May 19 18:20:07 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  tagged 2010-05-19
+
+Wed May 19 07:30:02 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Updated test cases references for improved adaptivity
+
+Wed May 19 05:25:20 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Improved statistics for xyz2rsurface and rsurfaceinfo
+
+Tue May 18 05:01:20 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Added 'randomize' option to xyz2rsurface
+
+Tue May 18 03:54:28 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Added modules keywords to emacs mode
+
+Tue May 18 02:24:00 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Fix for comment handling in emacs mode
+
+Sat May 15 23:34:03 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Fixed rpm specfile for emacs mode
+
+Fri May 14 04:58:43 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Fixed redundant coarsening/refinement in gfs_simulation_adapt()
+  
+  Note also that ftt_refine_corner() works differently now.
+
+Sat May 15 18:20:49 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  tagged 2010-05-15
+
+Sat May 15 12:15:49 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Automatic keyword detection for modules
+
+Sat May 15 08:48:15 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * New gerris emacs mode
+
+Sat May 15 02:27:17 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * R*-tree files are properly closed in read-only mode
+  
+  This could cause "too many open files" obscure bugs when piping into GfsView.
+
+Fri May 14 16:30:22 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  tagged 2010-05-14
+
+Fri May 14 05:45:25 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Fixed scaling changes to electro_hydro module
+
+Tue May 11 17:13:09 CEST 2010  jose.lopez.herrera.s at gmail.com
+  * L dimension fixed unnecessary call removed
+
+Thu May 13 16:30:37 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  tagged 2010-05-13
+
+Thu May 13 06:52:33 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * New object GfsBoundaryDischarge
+
+Thu May 13 06:53:25 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Unified verbosity of xyz2rsurface and rsurfaceinfo
+
+Thu May 13 01:35:41 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Added stub for GfsElectroHydroAxi
+
+Wed May 12 23:42:00 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Improved error reporting for module loading
+
+Tue May 11 16:30:02 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  tagged 2010-05-11
+
+Tue May 11 06:55:55 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * gfs_domain_remove_ponds() uses FIFO rather than recursive function calls
+
+Sun May  9 16:35:21 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  tagged 2010-05-05
+
+Thu May  6 01:41:46 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * New object GfsMapTransform
+
+Thu May  6 01:39:43 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * OutputGRD computes xll,yll automatically
+
+Thu May  6 00:18:47 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * GfsVariableTerrain defines new "n", "dmax", "dmin" variables
+
+Tue May  4 17:35:55 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  tagged 2010-05-04
+
+Tue May  4 04:07:54 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * New GfsOutputGRD object
+
+Thu Apr 22 17:37:54 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  tagged 2010-04-21
+
+Wed Apr 21 04:03:30 CEST 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * Rescaling of the residual tolerance for hypre
+
+Fri Apr 16 17:36:09 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  tagged 2010-04-15
+
+Fri Apr 16 00:25:40 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * New "bagnold" test case
+
+Fri Apr 16 04:36:24 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  tagged 2010-04-15
+
+Thu Apr 15 06:59:29 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Pressure gradient should now balance source terms at Dirichlet boundaries
+
+Thu Apr 15 06:56:40 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Minor cleanup
+
+Thu Apr  8 08:19:12 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Fixed bug when splitting domains with periodic boundaries
+
+Wed Apr  7 23:26:36 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Added boundary conditions for "-e" option of gerris2D/3D
+
+Wed Apr  7 17:43:50 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  tagged 2010-04-07
+
+Wed Apr  7 04:02:11 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Pressures for small cells are merged for GfsOcean
+
+Sun Apr  4 17:42:56 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  tagged 2010-04-04
+
+Sun Apr  4 10:16:56 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Improvements for 'daily' snapshot script
+
+Sat Apr  3 10:55:45 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Fixed dimensioning for electro_hydro
+
+Sat Apr  3 10:55:33 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Minor cleanup of electro_hydro module
+
+Sat Apr  3 09:48:01 CEST 2010  Jose M. Lopez-Herrera Sanchez <jose.lopez.herrera.s at gmail.com>
+  * Module for electro-hydrodynamics
+
+Sun Apr  4 05:58:26 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  tagged 2010-04-03
+
+Sat Apr  3 23:11:47 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Fixed url in poisson test case
+
+Sat Apr  3 14:06:25 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Refactored GfsStencil/GfsStencilElement
+
+Fri Apr  2 11:09:23 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Updated poisson test cases
+
+Fri Apr  2 11:07:06 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Simplified GfsLinearProblem
+
+Fri Apr  2 09:35:54 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Further fixes to the hypre module
+
+Fri Apr  2 09:33:13 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Test cases do not need the "donotrun" variable being set anymore
+
+Thu Apr  1 05:25:27 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Fixed malloc for df3 module
+
+Wed Mar 31 03:20:03 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Fixed 'Tn' coarse->fine interpolation
+
+Wed Mar 31 01:21:45 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Cleanup and bug fixes for hypre module
+
+Wed Mar 31 01:00:46 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Bug fix for incorrect use of GPOINTER_TO_UINT
+  
+  This could cause crashes on 64 bits systems (e.g. when using
+  GfsEventHarmonic)
+
+Tue Mar 30 04:14:22 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Updated poisson test cases for hypre
+
+Thu Mar 25 01:45:02 CET 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * GArrays are passed as argument to hypre
+
+Thu Mar 25 00:00:18 CET 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * Upgrade of circle test case
+
+Wed Mar 24 23:57:33 CET 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * Upgrade of dumbell and poisson test cases
+
+Wed Mar 24 21:41:29 CET 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * Fix of bug with boundary conditions in gfs_get_poisson_problem
+
+Wed Mar 24 05:06:02 CET 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * Bug fix
+
+Wed Mar 24 00:52:53 CET 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * Cleaning plus documenting
+
+Tue Mar 23 21:57:33 CET 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * No more GfsStencil structure. Methods are kept as they improve the readability of the code
+
+Tue Mar 23 09:35:46 CET 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * Poisson solver iterations are now done within the gfs_poisson_solve function
+
+Tue Mar 23 04:49:16 CET 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * Change of structure for the methods of GfsLinearProblem and GfsStencil
+
+Tue Mar 23 03:00:34 CET 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * Cleaner of timer and renaming of functions in hypre module
+
+Tue Mar 23 02:36:39 CET 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * GfsLinearProblem and GfsStencil are now objects with methods
+
+Mon Mar 22 21:56:12 CET 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * New function that deals with the boundary stencils
+
+Mon Mar 22 21:30:12 CET 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * New methods to create a GfsLinearProblem
+
+Mon Mar 22 20:56:30 CET 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * merging of relax_coeff_stencil and relax_coeff_stencil_2D
+
+Mon Mar 22 20:54:42 CET 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * Change of name of functions used to extract the stencils associated with the poisson problem
+
+Mon Mar 22 05:56:50 CET 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * No more useless bc_stencil routines
+
+Mon Mar 22 05:44:31 CET 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * Change of name of hypre module
+
+Mon Mar 22 04:04:02 CET 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * Replace calloc by malloc in hypre module
+
+Mon Mar 22 04:02:00 CET 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * Change of name for the main structures associated with the extraction of the poisson problem
+
+Thu Mar 18 20:37:58 CET 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * Change of name of the hypre module
+
+Thu Mar 18 20:20:41 CET 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * Fix of hypre test case
+
+Thu Mar 18 20:10:06 CET 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * Small bug fix
+
+Thu Mar 11 21:44:02 CET 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * More simplify/cleaning in for get_poisson_problem
+
+Thu Mar 11 21:25:12 CET 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * Simplification of some the coefficient extraction routines
+
+Thu Mar 11 20:07:05 CET 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * HUGE PATCH: The whole hypre/poisson problem extraction has been rewritten
+
+Thu Feb  4 03:32:15 CET 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * poisson_cycle function can have their own internal convergence criterion
+
+Thu Feb  4 03:29:17 CET 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * Hypre module: Change of the read/write functions
+
+Wed Jan 27 05:46:39 CET 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * Separate loop for Gerris or other solvers for projection
+
+Wed Jan 27 04:08:54 CET 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * Bug fix + cleaning
+
+Wed Jan 27 04:08:02 CET 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * Homogeneous symmetry boundary conditions for poisson problem extraction
+
+Wed Jan 27 02:45:50 CET 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * Homogeneous Neumann boundary conditions for poisson problem extraction
+
+Wed Jan 27 02:37:18 CET 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * Homogeneous Dirichlet boundary conditions for poisson problem extraction
+
+Wed Jan 27 02:36:18 CET 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * New function gfs_add_boundary_element equivalent to add_diagonal_element for ghost cells
+
+Wed Jan 27 02:30:19 CET 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * Slight change in add_diagional_element
+
+Wed Jan 27 02:26:24 CET 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * Export of add_stencil_element function
+
+Fri Jan 22 05:36:39 CET 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * Poisson problem extraction: number of the ghost cells
+
+Fri Jan 22 04:55:06 CET 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * Poisson solver test for the hypre library. The only things that is working so far
+
+Fri Jan 22 04:47:35 CET 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * All the functions related to the native poisson solver are modified to extract the rest of the poisson solver on the fly
+
+Thu Jan 21 05:27:52 CET 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * A bit of cleaning
+
+Thu Jan 21 05:13:48 CET 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * Hyprepoissonsolvers: the hypre poisson cycle is put together
+
+Thu Jan 21 05:06:18 CET 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * Hyprepoissonsolvers: functions setting up and running Pre-Conjugate Gradient
+
+Thu Jan 21 05:02:47 CET 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * Hyprepoissonsolvers: functions setting up and running Boomer-AMG
+
+Thu Jan 21 05:01:16 CET 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * Hyprepoissonsolvers: main loop call the hypre solver
+
+Thu Jan 21 04:57:48 CET 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * Hyprepoissonsolvers: functions used to setup the hypre solver and extract the results
+
+Thu Jan 21 04:52:30 CET 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * Read and write methods for the hypre solvers in the hypre module
+
+Thu Jan 21 03:53:12 CET 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * Check is hypre is compiled and creates the new module file
+
+Thu Jan 21 03:29:13 CET 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * Hooks for the poisson_cycle + read/write methods for the parameters
+
+Wed Dec 23 00:17:01 CET 2009  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * Relax and Relax2D extract the diagonal of the problem if cp->id exists
+
+Wed Dec 23 00:06:52 CET 2009  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * Two functions are exported allowing to get and destroy the poisson problem
+  Get_poisson has a similar structure to the standard poisson_cycle
+  Prior to extraction all the leafs cell (i.e. diagonal elements) get
+  numbered according to their position in the quadtree
+
+Tue Dec 22 23:47:56 CET 2009  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * Creation of the main function used to extract the poisson problem
+  The poisson problem will be build as a list of DiagonalElements
+  Each DiagonalElement will have a stencil made of a list of StencilElement
+
+Tue Dec 22 23:35:40 CET 2009  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * Creation of new structures to extract the poisson problem created by Gerris
+
+Tue Mar 30 04:49:07 CEST 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Moved repositories to patch-tag.com
+
+Fri Mar 26 11:51:16 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  tagged 2010-03-25
+
+Thu Mar 25 02:10:04 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * New 'implicit' option for GfsSurface
+
+Tue Mar 23 21:10:14 CET 2010  Sebastien Delaux <s.delaux at niwa.co.nz>
+  * Test on viscosity in the particulate module
+
+Tue Mar 23 02:15:32 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * CFL limitation for GfsRiver
+
+Tue Mar 23 02:09:39 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Simplified 1D Saint-Venant examples
+
+Tue Mar 23 02:07:19 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Updated 'classes'
+
+Tue Mar 23 02:05:23 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Removed obsolete "2D3" version
+
+Mon Mar 22 22:15:44 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Added openmpi-devel dependency for RPM
+
+Sun Mar 21 22:43:12 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Fixed use of g_array_free() for compatibility with older glib
+
+Sat Jan 16 03:55:12 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * New keyword GfsInclude
+
+Sun Mar 21 14:56:56 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * old tag: 2010-03-21
+
+Sat Mar 20 14:55:51 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * old tag: 2010-03-20
+
+Fri Mar 19 14:55:10 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * old tag: 2010-02-23
+
+Thu Mar 18 14:57:41 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * old tag: 2010-03-18
+
+Wed Mar 17 14:18:06 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * old tag: 2010-03-17
+
+Sun Mar 21 08:34:58 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Added conflicts with default debian package
+
+Sat Mar 20 05:18:06 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Moved library files in devel package for RPMs
+
+Fri Mar 19 04:15:36 CET 2010  Stephane Popinet <popinet at users.sf.net>
+  * Fixed daily script for OSC
+
+Thu Mar 18 08:22:25 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Updated packaging rules for debian and buildservice
+
+Tue Mar 16 23:54:19 CET 2010  Stephane Popinet <popinet at users.sf.net>
+  * Updated conservation error for test/shear/curvature
+
+Wed Mar 17 08:21:32 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Updated logo example (uses 'condition' in OutputPPM)
+
+Tue Mar 16 04:12:51 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Switched from launchpad to buildservice
+
+Tue Mar 16 04:04:49 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Added buildservice-snapshot makefile target
+
+Tue Mar 16 00:45:39 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Updated test case references
+
+Fri Dec 18 09:20:19 CET 2009  Stephane Popinet <popinet at users.sf.net>
+  * Adaptivity is applied at the initialisation stage
+
+Sun Mar 14 01:07:39 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Fixed version info for debian symbols
+
+Sat Mar 13 06:09:24 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Changed RPM spec file for build service
+
+Sat Jan 30 19:34:22 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * old tag: 2010-01-29
+
+Thu Jan 14 15:29:46 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * old tag: 2010-01-14
+
+Sat Dec 19 15:15:16 CET 2009  Stephane Popinet <s.popinet at niwa.co.nz>
+  * old tag: 2009-12-18
+
+Wed Feb 24 23:59:08 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Fixed inconsistent (adaptive) H variable in GfsOcean
+
+Tue Feb 23 04:30:24 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * New superbee and Sweby limiters
+
+Tue Feb 23 04:28:23 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * OutputLocation takes optional "interpolate" parameter
+
+Mon Feb 15 23:04:42 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Fixed warning in vof.c for 2D3
+
+Mon Feb  8 10:54:08 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Height of adapted dry cells is set to zero for VariableTerrain
+
+Fri Feb  5 02:49:25 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * MPICH2 is picky about MPI_Allgather()
+
+Mon Feb  1 21:36:55 CET 2010  Andris Rudzitis <andrisrudzitis at gmail.com>
+  * New module df3 (GfsOutputPovrayDF3)
+
+Mon Dec 21 21:16:05 CET 2009  Stephane Popinet <popinet at users.sf.net>
+  * Open Dynamics Engine module
+
+Wed Feb  3 08:44:52 CET 2010  Stephane Popinet <popinet at users.sf.net>
+  * Changed ubuntu distribution to jaunty
+
+Mon Feb  1 22:21:39 CET 2010  Stephane Popinet <popinet at users.sf.net>
+  * OutputScalar takes an optional condition
+
+Mon Feb  1 08:37:41 CET 2010  Stephane Popinet <popinet at users.sf.net>
+  * New GfsFunction utility function "distance()"
+
+Tue Jan 26 03:25:54 CET 2010  Stephane Popinet <popinet at users.sf.net>
+  * New object GfsInitMask
+
+Fri Jan 29 11:37:37 CET 2010  Stephane Popinet <s.popinet at niwa.co.nz>
+  * OutputLocation takes 'precision' and 'label' options
+
+Thu Jan 28 02:41:20 CET 2010  Stephane Popinet <popinet at users.sf.net>
+  * New command rsurfaceinfo
+
+Wed Jan 27 09:45:34 CET 2010  Stephane Popinet <popinet at users.sf.net>
+  * Fix for terrain and longitude periodicity
+
+Tue Jan 26 03:15:19 CET 2010  Stephane Popinet <popinet at users.sf.net>
+  * Important bug fix for ftt_cell_coarsen()
+
+Tue Jan 26 01:06:05 CET 2010  Stephane Popinet <popinet at users.sf.net>
+  * xyz2rsurface is more verbose
+
+Thu Jan 21 03:25:07 CET 2010  Stephane Popinet <popinet at users.sf.net>
+  * ppm2video overwrites existing files by default
+
+Thu Jan 21 03:23:43 CET 2010  Stephane Popinet <popinet at users.sf.net>
+  * New object GfsVariableBoolean
+
+Wed Jan 20 22:53:37 CET 2010  Stephane Popinet <popinet at users.sf.net>
+  * Optimisations for okada module
+
+Fri Jan 15 08:58:11 CET 2010  Stephane Popinet <popinet at users.sf.net>
+  * Better warning for GfsEventScript
+
+Thu Jan 14 21:15:51 CET 2010  Stephane Popinet <popinet at users.sf.net>
+  * Made 'dry' parameter of GfsRiver dimensional
+
+Mon Dec 21 09:53:38 CET 2009  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Okada fault model module
+
+Thu Jan 14 02:16:08 CET 2010  Stephane Popinet <popinet at users.sf.net>
+  * Removed GFS_RIVER_DRY and turned it into a parameter
+
+Wed Jan 13 05:31:49 CET 2010  Stephane Popinet <popinet at users.sf.net>
+  * Removed useless dependency on g_array_sized_new()
+
+Fri Dec 18 01:59:37 CET 2009  Stephane Popinet <popinet at users.sf.net>
+  * Bug fix for "lake-at-rest" terrain reconstruction
+
+Fri Dec 11 15:24:05 CET 2009  Stephane Popinet <s.popinet at niwa.co.nz>
+  tagged 2009-12-10
+
+Thu Dec 10 05:01:23 CET 2009  Stephane Popinet <s.popinet at niwa.co.nz>
+  * GfsDropletToParticle is now part of the particulates module
+
+Thu Dec 10 04:43:06 CET 2009  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Review and bug fixes for GfsParticle
+
+Thu Dec 10 04:41:40 CET 2009  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Review of particulates.mod module
+
+Fri Nov 20 20:34:02 CET 2009  Gaurav Tomar <gaurav.tomar03 at gmail.com>
+  * DropletToParticlesMinorModifications
+
+Fri Nov 20 20:27:23 CET 2009  Gaurav Tomar <gaurav.tomar03 at gmail.com>
+  * DropletToParticlesObject
+
+Fri Nov 20 20:25:48 CET 2009  Gaurav Tomar <gaurav.tomar03 at gmail.com>
+  * ParticulateList with idlast variable for unique id specification
+
+Wed Nov 18 16:36:15 CET 2009  Gaurav Tomar <gaurav.tomar03 at gmail.com>
+  * particulateObjects
+
+Wed Nov 18 16:18:00 CET 2009  Gaurav Tomar <gaurav.tomar03 at gmail.com>
+  * particlemodifications
+
+Tue Nov 10 17:58:20 CET 2009  Gaurav Tomar <gaurav.tomar03 at gmail.com>
+  * ObjectParticleModifications
+
+Fri Nov  6 13:39:00 CET 2009  Gaurav Tomar <gaurav.tomar03 at gmail.com>
+  * Gfs(Event)Particle object
+
+Tue Nov 17 17:43:24 CET 2009  Gaurav Tomar <gaurav.tomar03 at gmail.com>
+  * bug fix HashTable event objects
+
+Mon Nov 16 19:15:37 CET 2009  Gaurav Tomar <gaurav.tomar03 at gmail.com>
+  * HashTable LookUp for Event objects
+
+Tue Nov 10 15:10:05 CET 2009  Stephane Popinet <s.popinet at niwa.co.nz>
+  * old tag: 2009-11-09
+
+Tue Nov  3 15:10:08 CET 2009  Stephane Popinet <s.popinet at niwa.co.nz>
+  * old tag: 2009-11-02
+
+Thu Nov  5 17:30:24 CET 2009  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Cyclone-generated wave field example
+
+Mon Nov  9 14:32:04 CET 2009  Stephane Popinet <s.popinet at niwa.co.nz>
   * wavewatch module supports version 3.12
 
-Sat Nov  7 03:10:06 NZDT 2009  Stephane Popinet <s.popinet at niwa.co.nz>
+Fri Nov  6 15:10:06 CET 2009  Stephane Popinet <s.popinet at niwa.co.nz>
   * New object GfsEventList
 
-Fri Nov  6 06:49:24 NZDT 2009  Stephane Popinet <s.popinet at niwa.co.nz>
+Thu Nov  5 18:49:24 CET 2009  Stephane Popinet <s.popinet at niwa.co.nz>
   * Wavewatch module supports versions 3.14 and 2.22
 
-Thu Nov  5 07:46:12 NZDT 2009  Stephane Popinet <s.popinet at niwa.co.nz>
+Wed Nov  4 19:46:12 CET 2009  Stephane Popinet <s.popinet at niwa.co.nz>
   * Fixed compiler warnings for FES2004
 
-Wed Nov  4 03:10:08 NZDT 2009  Stephane Popinet <s.popinet at niwa.co.nz>
-  tagged 2009-11-02
-
-Tue Nov  3 06:46:05 NZDT 2009  Stephane Popinet <s.popinet at niwa.co.nz>
+Mon Nov  2 18:46:05 CET 2009  Stephane Popinet <s.popinet at niwa.co.nz>
   * Updated spurious currents test cases
 
-Mon Nov  2 00:36:58 NZDT 2009  Stephane Popinet <s.popinet at niwa.co.nz>
+Sun Nov  1 12:36:58 CET 2009  Stephane Popinet <s.popinet at niwa.co.nz>
   * Updated advection test case
 
-Sun Nov  1 15:18:54 NZDT 2009  Stephane Popinet <s.popinet at niwa.co.nz>
+Sun Nov  1 03:18:54 CET 2009  Stephane Popinet <s.popinet at niwa.co.nz>
   * Metrics descend from GfsVariableMetric
 
-Sun Nov  1 15:15:55 NZDT 2009  Stephane Popinet <s.popinet at niwa.co.nz>
+Sun Nov  1 03:15:55 CET 2009  Stephane Popinet <s.popinet at niwa.co.nz>
   * Macros only work with gawk (i.e. not mawk)
 
-Thu Oct 29 18:36:51 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Sat Oct 24 16:57:09 CEST 2009  Stephane Popinet <s.popinet at niwa.co.nz>
+  * old tag: 2009-10-24
+
+Thu Oct 29 06:36:51 CET 2009  Stephane Popinet <popinet at users.sf.net>
   * New 'cosine bell' test case
 
-Thu Oct 29 16:55:08 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Thu Oct 29 04:55:08 CET 2009  Stephane Popinet <popinet at users.sf.net>
   * OutputScalarSum, OutputScalarNorm etc... take metric into account
 
-Thu Oct 29 11:48:18 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Wed Oct 28 23:48:18 CET 2009  Stephane Popinet <popinet at users.sf.net>
   * Godunov advection scheme takes metric into account
 
-Fri Aug  7 11:05:42 NZST 2009  Sebastien Delaux <s.delaux at niwa.co.nz>
+Fri Aug  7 01:05:42 CEST 2009  Sebastien Delaux <s.delaux at niwa.co.nz>
   * Update of the strouhal testcase
 
-Wed Oct 28 14:26:54 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Wed Oct 28 02:26:54 CET 2009  Stephane Popinet <popinet at users.sf.net>
   * coarse->fine and fine->coarse interpolations take metric into account
   
   in order to conserve quantities.
 
-Wed Oct 28 13:14:41 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Wed Oct 28 01:14:41 CET 2009  Stephane Popinet <popinet at users.sf.net>
   * MetricCubed takes an optional "level" parameter
 
-Tue Oct 27 11:59:14 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Mon Oct 26 23:59:14 CET 2009  Stephane Popinet <popinet at users.sf.net>
   * Extended "Cubed" metric to entire "expanded spherical cube"
 
-Sun Oct 25 03:57:09 NZDT 2009  Stephane Popinet <s.popinet at niwa.co.nz>
-  tagged 2009-10-24
-
-Sat Oct 24 21:09:27 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Sat Oct 24 10:09:27 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Updated test cases
 
-Fri Oct 23 16:46:58 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Fri Oct 23 05:46:58 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * gfs_domain_cfl() takes metric into account
 
-Fri Oct 16 16:57:51 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Tue Oct 20 15:51:19 CEST 2009  Stephane Popinet <s.popinet at niwa.co.nz>
+  * old tag: 2009-10-19
+
+Fri Sep 18 16:57:00 CEST 2009  Stephane Popinet <s.popinet at niwa.co.nz>
+  * old tag: 2009-09-18
+
+Wed Sep 16 16:56:02 CEST 2009  Stephane Popinet <s.popinet at niwa.co.nz>
+  * old tag: 2009-09-16
+
+Fri Oct 16 05:57:51 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Optimisation of GfsMetricLonLat and GfsMetricCubed
 
-Wed Oct 14 16:31:18 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Wed Oct 14 05:31:18 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * "Cubed sphere" metric
 
-Tue Oct 13 13:34:58 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Tue Oct 13 02:34:58 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Adaptivity takes "minlevel" into account properly
 
-Thu Oct  8 10:08:54 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Wed Oct  7 23:08:54 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * New object GfsMapFunction
 
-Wed Oct  7 15:43:27 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Wed Oct  7 04:43:27 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * CFL calculation for GfsRiver takes metric into account
 
-Wed Oct  7 14:43:44 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Wed Oct  7 03:43:44 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Hydrostatic balance for 2nd-order curvilinear scheme in GfsRiver
 
-Tue Sep 29 15:25:59 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Tue Sep 29 04:25:59 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * General Orthogonal Coordinates
 
-Fri Sep 25 22:36:30 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Fri Sep 25 12:36:30 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Longitude-latitude metric
 
-Thu Oct 22 16:22:34 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Thu Oct 22 05:22:34 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * New object GfsVariableStreamFunction
 
-Wed Oct 21 12:13:04 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Wed Oct 21 01:13:04 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Support for "rotated" periodic boundaries
 
-Tue Oct 20 13:28:15 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Tue Oct 20 02:28:15 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * New "relative" option for GfsOutputErrorNorm
 
-Wed Oct 21 02:51:19 NZDT 2009  Stephane Popinet <s.popinet at niwa.co.nz>
-  tagged 2009-10-19
-
-Tue Oct 20 09:39:11 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Mon Oct 19 22:39:11 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Fixed missing header in OutputSimulation
 
-Sat Sep 19 02:57:00 NZST 2009  Stephane Popinet <s.popinet at niwa.co.nz>
-  tagged 2009-09-18
-
-Fri Sep 18 16:18:17 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Fri Sep 18 06:18:17 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Support for "preloaded" modules
 
-Thu Sep 17 13:14:56 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Thu Sep 17 03:14:56 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Units of VariableTerrain are properly reset
 
-Thu Sep 17 02:56:02 NZST 2009  Stephane Popinet <s.popinet at niwa.co.nz>
-  tagged 2009-09-16
-
-Wed Sep 16 15:28:20 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Wed Sep 16 05:28:20 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for CGD/GTS files and multiple GfsFunctions
 
-Wed Sep 16 12:14:20 NZST 2009  Matthieu Castellazzi <m.castellazzi at niwa.co.nz>
+Wed Sep 16 02:14:20 CEST 2009  Matthieu Castellazzi <m.castellazzi at niwa.co.nz>
   * Some fixes to the rpm spec file
 
-Thu Sep 10 03:04:01 NZST 2009  Stephane Popinet <s.popinet at niwa.co.nz>
-  tagged 2009-09-08
+Wed Sep  9 17:04:01 CEST 2009  Stephane Popinet <s.popinet at niwa.co.nz>
+  * old tag: 2009-09-08
 
-Wed Sep  9 10:43:57 NZST 2009  Stephane Popinet <popinet at users.sf.net>
-  * RPM includes man pages
+Thu Sep  3 17:06:32 CEST 2009  Stephane Popinet <s.popinet at niwa.co.nz>
+  * old tag: 2009-09-02
+
+Wed Aug 26 17:00:40 CEST 2009  Stephane Popinet <s.popinet at niwa.co.nz>
+  * old tag: 2009-08-19
 
-Fri Sep  4 03:06:32 NZST 2009  Stephane Popinet <s.popinet at niwa.co.nz>
-  tagged 2009-09-02
+Wed Aug  5 17:38:44 CEST 2009  Stephane Popinet <s.popinet at niwa.co.nz>
+  * old tag: 2009-08-05
 
-Thu Sep  3 09:20:21 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Wed Sep  9 00:43:57 CEST 2009  Stephane Popinet <popinet at users.sf.net>
+  * RPM includes man pages
+
+Wed Sep  2 23:20:21 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Cosmetics
 
-Wed Sep  2 17:04:08 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Wed Sep  2 07:04:08 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * New object GfsSourceControlField
 
-Thu Aug 27 03:00:40 NZST 2009  Stephane Popinet <s.popinet at niwa.co.nz>
-  tagged 2009-08-19
-
-Thu Aug 20 11:26:34 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Thu Aug 20 01:26:34 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * New object GfsSourceFlux
 
-Wed Aug 26 16:47:18 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Wed Aug 26 06:47:18 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for gfs_streamline_new()
 
-Wed Aug 26 12:03:13 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Wed Aug 26 02:03:13 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Cosmetics for wave model
 
-Wed Aug 26 12:01:46 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Wed Aug 26 02:01:46 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * BcSubcritical now tolerates negative depths
 
-Thu Aug 20 11:25:31 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Thu Aug 20 01:25:31 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * H and P terrain reconstruction for GfsVariableTerrain is optional
 
-Thu Aug 20 11:21:42 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Thu Aug 20 01:21:42 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for gfs_function_expression()
   
   When specifying two GfsFunctions in a row.
 
-Thu Aug 20 09:55:25 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Wed Aug 19 23:55:25 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * GfsRefineTerrain defines two new variables "dmin" and "dmax"
 
-Thu Aug  6 03:38:44 NZST 2009  Stephane Popinet <s.popinet at niwa.co.nz>
-  tagged 2009-08-05
-
-Wed Aug  5 21:56:50 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Wed Aug  5 11:56:50 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Added stability correction for wind wave model
 
-Wed Aug  5 21:47:56 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Wed Aug  5 11:47:56 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * GSE alleviation for GfsWave wind wave model
 
-Thu Jul 30 15:23:48 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Thu Jul 30 05:23:48 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Removed obsolete GfsAdaptCurvature
 
-Thu Jul 30 15:23:13 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Thu Jul 30 05:23:13 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Important improvements to GfsAdaptError
 
-Thu Jul 30 12:16:36 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Thu Jul 30 02:16:36 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Minor optimisation of gfs_domain_solid_force()
 
-Tue Jul 28 16:37:09 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Tue Jul 28 06:37:09 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Fixed negative wave actions in wavewatch module
 
-Mon Jul 27 12:35:18 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Mon Jul 27 02:35:18 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * GfsOutputSolidForce can take an optional weight argument
 
-Mon Jul 27 11:03:55 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Mon Jul 27 01:03:55 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Fix for incorrect maxtag MPI value
 
-Fri Jul 24 13:22:56 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Fri Jul 24 03:22:56 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Added option to use "bubble partitioning"
 
-Fri Jul 24 11:21:32 NZST 2009  Stephane Popinet <s.popinet at niwa.co.nz>
+Fri Jul 24 01:21:32 CEST 2009  Stephane Popinet <s.popinet at niwa.co.nz>
   * Fixed debian changelog generation
 
-Fri Jul 24 09:17:59 NZST 2009  Stephane Popinet <s.popinet at niwa.co.nz>
-  tagged 2009-07-21
+Thu Jul 23 23:17:59 CEST 2009  Stephane Popinet <s.popinet at niwa.co.nz>
+  * old tag: 2009-07-21
+
+Wed Jul 22 01:54:01 CEST 2009  Stephane Popinet <popinet at users.sf.net>
+  * Improved parallel example graph
+
+Tue Jul 14 03:21:20 CEST 2009  Stephane Popinet <popinet at users.sf.net>
+  * New parallel vortex street example
 
-Wed Jul 22 10:49:22 NZST 2009  Sebastien Delaux <s.delaux at niwa.co.nz>
+Wed Jul 22 00:49:22 CEST 2009  Sebastien Delaux <s.delaux at niwa.co.nz>
   * Fix for moving second order bug with merged cells
 
-Thu Jul 23 16:55:44 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Thu Jul 23 06:55:44 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * New function gfs_traverse_and_bc()
   
   For overlapping computation and communications.
 
-Thu Jul 23 09:37:38 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Wed Jul 22 23:37:38 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * New interface for gfs_domain_locate() and gfs_domain_boundary_locate()
 
-Wed Jul 22 16:34:37 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Wed Jul 22 06:34:37 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Overlapping communications and computations
   
   Only using gfs_traverse_and_homogeneous_bc() for now.
 
-Wed Jul 22 11:57:30 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Wed Jul 22 01:57:30 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Daily script uses the parallel version
 
-Wed Jul 22 11:54:01 NZST 2009  Stephane Popinet <popinet at users.sf.net>
-  * Improved parallel example graph
-
-Tue Jul 14 13:21:20 NZST 2009  Stephane Popinet <popinet at users.sf.net>
-  * New parallel vortex street example
+Sat Jul 18 16:12:41 CEST 2009  Stephane Popinet <s.popinet at niwa.co.nz>
+  * old tag: 2009-07-17
 
-Tue Jul 21 20:41:01 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Tue Jul 21 10:41:01 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Simplified divergence redistribution of moving boundaries
 
-Tue Jul 21 11:59:16 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Tue Jul 21 01:59:16 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Moving cylinder test case
 
-Mon Jul 20 19:39:08 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Mon Jul 20 09:39:08 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Important bug fix for graph partitioning
   
   i.e. the "-p" option of gerris. Incorrect object casting between GtsWGnode and
   GfsBox were causing segfaults for some configurations.
 
-Mon Jun 29 11:24:01 NZST 2009  Sebastien Delaux <s.delaux at niwa.co.nz>
+Mon Jun 29 01:24:01 CEST 2009  Sebastien Delaux <s.delaux at niwa.co.nz>
   * Divergence redistribution between merged cells for moving boundaries
 
-Thu Jun 25 10:30:25 NZST 2009  Sebastien Delaux <s.delaux at niwa.co.nz>
+Thu Jun 25 00:30:25 CEST 2009  Sebastien Delaux <s.delaux at niwa.co.nz>
   * Fix for problem with small cells and moving solid interface in second 
   order method
 
-Tue Jun 16 10:16:36 NZST 2009  Sebastien Delaux <s.delaux at niwa.co.nz>
+Tue Jun 16 00:16:36 CEST 2009  Sebastien Delaux <s.delaux at niwa.co.nz>
   * Bug fix for dividing by zero in moving code
 
-Sun Jul 19 02:12:41 NZST 2009  Stephane Popinet <s.popinet at niwa.co.nz>
-  tagged 2009-07-17
-
-Sat Jul 18 10:28:40 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Sat Jul 18 00:28:40 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * GfsEventBalance flows can transfer more than one box at a time
 
-Fri Jul 17 14:55:08 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Fri Jul 17 04:55:08 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Various small fixes
 
-Thu Jul 16 12:13:49 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Thu Jul 16 02:13:49 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * gfs_domain_locate() uses a Cartesian array for fast indexing
   
   The previous systematic traversal of all the GfsBoxes was very slow 
@@ -258,42 +1740,42 @@ Thu Jul 16 12:13:49 NZST 2009  Stephane Popinet <popinet at users.sf.net>
   This was particularly noticeable for the VOF algorithm (which does
   many locate() calls to reconstruct local Cartesian stencils).
 
-Wed Jul 15 16:31:22 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Wed Jul 15 06:31:22 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * New option '--event' for gerris2D/3D
 
-Wed Jul 15 20:57:44 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Wed Jul 15 10:57:44 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Fixed GfsVariableCurvature timers
 
-Wed Jul 15 15:51:13 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Wed Jul 15 05:51:13 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * New '--pid' option for gerris2D/3D
 
-Tue Jul 14 19:18:56 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Tue Jul 14 09:18:56 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * A few fixes for OutputTiming
 
-Tue Jul 14 15:58:43 NZST 2009  Sebastien Delaux <s.delaux at niwa.co.nz>
+Tue Jul 14 05:58:43 CEST 2009  Sebastien Delaux <s.delaux at niwa.co.nz>
   * Output timing now outputs sorted timings
 
-Tue Jul 14 15:32:49 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Tue Jul 14 05:32:49 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Entirely solid boxes can be used
   
   They will be automatically removed from the simulation rather than 
   making the simulation abort with an error message.
 
-Tue Jul 14 13:36:51 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Tue Jul 14 03:36:51 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Dynamic parallel load-balancing (EventBalance)
 
-Mon Jul 13 17:30:59 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Mon Jul 13 07:30:59 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * daily script only generates launchpad snapshots
 
-Mon Jul 13 16:59:10 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Mon Jul 13 06:59:10 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Fixed header dependency for domain.c
 
-Sun Jul 12 13:45:49 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Sun Jul 12 03:45:49 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Added openmpi-bin as a dependency for debian package
   
   This is a workaround for the broken libopenmpi1 debian package.
 
-Sun Jun 28 23:05:55 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Sun Jun 28 13:05:55 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * GfsBoundaryMpi is included by default (even in the serial version)
   
   This simplifies the code and also means that the serial version can be used
@@ -301,50 +1783,50 @@ Sun Jun 28 23:05:55 NZST 2009  Stephane Popinet <popinet at users.sf.net>
   version of GfsView ran on a different system will now be able to visualise
   the results of a parallel run).
 
-Mon Jun 22 12:16:41 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Mon Jun 22 02:16:41 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Fixed Debian version numbering
 
-Mon Jun 22 10:36:09 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Mon Jun 22 00:36:09 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Automatically include aclocal m4 macros
 
-Wed May 13 14:09:17 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Wed May 13 04:09:17 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Debian packages are built with MPI support
 
-Wed May 13 11:52:23 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Wed May 13 01:52:23 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Added 'launchpad-snapshot' Makefile target
 
-Thu Jul  2 23:16:02 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Thu Jul  2 13:16:02 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * GfsOutputDropletSums and GfsRemoveDroplets should now work in parallel
   
   and also for periodic boundary conditions in serial and in parallel.
 
-Thu Jul  9 12:39:14 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Thu Jul  9 02:39:14 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * EventBalance implements dynamic load balancing on 2 PEs only
 
-Wed Jul  8 16:46:50 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Wed Jul  8 06:46:50 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * OutputTime reports average CPU time for parallel runs
 
-Wed Jul  8 12:24:53 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Wed Jul  8 02:24:53 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * OutputBalance ignores box pids for serial runs
 
-Mon Jul  6 10:14:36 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Mon Jul  6 00:14:36 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Box positions set in the parameter file are preserved
 
-Wed Jul  1 16:29:53 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Wed Jul  1 06:29:53 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * GfsInitFraction should now work also for parallel simulations
   
   It used to fail for domains containing disconnected GfsBoxes (which can
   happen for some domain decompositions in parallel).
 
-Sun Jun 28 21:54:13 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Sun Jun 28 11:54:13 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Added version info to read()/write() methods of GfsDomain
 
-Sun Jun 28 20:50:08 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Sun Jun 28 10:50:08 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * New functions gfs_send_boxes() and gfs_receive_boxes()
   
   To move GfsBoxes between processors in parallel.
 
-Thu Jun 25 21:57:17 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Thu Jun 25 11:57:17 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Major bug fix for GfsBoundaryPeriodic
   
   Amazingly the implementation of the match() method seems to have been wrong
@@ -353,911 +1835,911 @@ Thu Jun 25 21:57:17 NZST 2009  Stephane Popinet <popinet at users.sf.net>
   undetected for several years... The bug also affected parallel simulations
   through inheritance to BoundaryMpi.
 
-Tue Jun 23 21:25:28 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Tue Jun 23 11:25:28 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for file access test in parallel
 
-Tue Jun 23 21:24:16 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Tue Jun 23 11:24:16 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Improved error messages in parallel (includes processor name)
 
-Mon Jun 22 09:39:09 NZST 2009  Stephane Popinet <s.popinet at niwa.co.nz>
+Sun Jun 21 23:39:09 CEST 2009  Stephane Popinet <s.popinet at niwa.co.nz>
   tagged release_21_06_09
 
-Sun Jun 21 20:01:04 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Sun Jun 21 10:01:04 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Added configuration options to "--version" info
 
-Sun Jun 21 10:30:38 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Sun Jun 21 00:30:38 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * GfsOutputSimulation can write "joined" parallel simulation files
   
   Only for GFS and text formats.
 
-Sun Jun 21 09:46:04 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Sat Jun 20 23:46:04 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * GfsEventScript is only called for rank 0 PE in parallel
 
-Sat Jun 20 15:07:20 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Sat Jun 20 05:07:20 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Added MPI_Finalize() as required by MPI standard
 
-Fri Jun 19 12:40:54 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Fri Jun 19 02:40:54 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Added man pages for gfsjoin2D, gfsjoin3D
 
-Fri Jun 19 12:22:01 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Fri Jun 19 02:22:01 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * New 'keep' option for gfsjoin2D
 
-Fri Jun 19 12:19:42 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Fri Jun 19 02:19:42 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * GfsDomain automatically converts GfsBoundaryMPI into edges on read
 
-Fri Jun 19 12:18:27 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Fri Jun 19 02:18:27 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Updated test case references
 
-Fri Jun 19 11:27:50 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Fri Jun 19 01:27:50 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for GfsSolidMoving/GfsSurface write() method
 
-Thu Jun 18 20:14:25 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Thu Jun 18 10:14:25 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * New gfsjoin2D, gfsjoin3D tools
   
   These are replacing the gfsjoin script. Note however that they can only be used
   to join parallel files created using this and later versions of Gerris. Older
   parallel simulation files should still use the gfsjoin script.
 
-Thu Jun 18 15:18:40 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Thu Jun 18 05:18:40 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for write() method of GfsSurface
 
-Thu May 14 14:02:33 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Thu May 14 04:02:33 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * GfsVariableTerrain also reconstructs H and P of GfsRiver
 
-Wed May 13 21:38:58 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Wed May 13 11:38:58 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Adaptivity cannot coarsen by more than one level per timestep
 
-Wed May 13 10:44:30 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Wed May 13 00:44:30 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for incorrect generation of dependencies in tests docs
 
-Tue May 12 15:18:55 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Tue May 12 05:18:55 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Check that SolidMoving is used within SimulationMoving
 
-Tue May 12 15:04:30 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Tue May 12 05:04:30 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Renamed GfsMovingSimulation to GfsSimulationMoving
 
-Tue May 12 12:43:40 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Tue May 12 02:43:40 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Updated moving hexagon test case
 
-Tue May 12 12:26:58 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Tue May 12 02:26:58 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Split 2nd-order moving in moving2.c
 
-Tue May 12 11:20:11 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Tue May 12 01:20:11 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Fix for remeshing of moving solids
 
-Tue May 12 11:18:31 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Tue May 12 01:18:31 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Diffusion now works with moving boundaries
 
-Wed May  6 17:58:23 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Wed May  6 07:58:23 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Fix for SurfaceBc implementation of moving boundaries
 
-Tue May  5 23:12:14 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Tue May  5 13:12:14 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Solid motion is now specified through SurfaceBc
 
-Tue May  5 20:07:19 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Tue May  5 10:07:19 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Simplification of redistribute_destroyed_cells_content()
 
-Tue May  5 16:43:04 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Tue May  5 06:43:04 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Simplified moving_cell_fine_init and removed old_solid_coarse_fine
 
-Tue May  5 12:41:44 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Tue May  5 02:41:44 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Simplified moving_simulation_set_timestep()
 
-Mon May  4 21:06:17 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Mon May  4 11:06:17 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Fixes for memory leaks in initial moving boundary implementation
 
-Sun May  3 00:21:46 NZST 2009  Sebastien Delaux <s.delaux at niwa.co.nz>
+Sat May  2 14:21:46 CEST 2009  Sebastien Delaux <s.delaux at niwa.co.nz>
   * Translating hexagon test case
 
-Sun May  3 00:19:51 NZST 2009  Sebastien Delaux <s.delaux at niwa.co.nz>
+Sat May  2 14:19:51 CEST 2009  Sebastien Delaux <s.delaux at niwa.co.nz>
   * Initial moving solid boundary implementation
 
-Tue May 12 11:17:42 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Tue May 12 01:17:42 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for corner refinement bug fix
 
-Mon May 11 16:18:28 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Mon May 11 06:18:28 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for violation of 'corner refinement criterion'
 
-Sat May  9 11:39:30 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Sat May  9 01:39:30 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * autogen.sh copies missing files
 
-Fri May  8 13:02:22 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Fri May  8 03:02:22 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * New 'time_order' parameter for GfsRiver
 
-Mon May  4 21:23:46 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Mon May  4 11:23:46 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * More generic valgrind suppression file (ld.so.supp)
 
-Mon May  4 21:22:31 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Mon May  4 11:22:31 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Default boundary conditions can be set for each variable
 
-Sat May  2 23:16:28 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Sat May  2 13:16:28 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * New 'cleanup' method for GfsVariable
 
-Thu Apr 30 21:08:50 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Thu Apr 30 11:08:50 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Changed meaning of gfs_simulation_get_solids() (!!)
 
-Sat May  2 21:20:48 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Sat May  2 11:20:48 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Debian package must depend on libgts-snapshot-dev
 
-Sat May  2 19:18:34 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Sat May  2 09:18:34 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Bug fixes for 'daily' script
 
-Fri May  1 23:21:12 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Fri May  1 13:21:12 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * daily script properly signs debian repositories
 
-Fri May  1 20:23:08 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Fri May  1 10:23:08 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Divide-by-zero exceptions use <fenv.h>
 
-Sat May  2 11:25:23 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Sat May  2 01:25:23 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Man pages need to be distributed
 
-Fri May  1 16:28:27 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Fri May  1 06:28:27 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Updated debian package build (based on Drew Parson's)
 
-Fri May  1 16:13:55 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Fri May  1 06:13:55 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Added man pages from debian (thanks Ruben and Drew!)
 
-Thu Apr 30 20:56:19 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Thu Apr 30 10:56:19 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Advection merging updates can be parameterised
 
-Thu Apr 30 20:49:25 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Thu Apr 30 10:49:25 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * New function gfs_surface_transformation()
 
-Thu Apr 30 20:42:14 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Thu Apr 30 10:42:14 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * gfs_cell_traverse_cut() can traverse "destroyed" cells
 
-Thu Apr 30 20:38:18 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Thu Apr 30 10:38:18 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Projections can use an optional initial divergence field
 
-Thu Apr 30 20:35:23 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Thu Apr 30 10:35:23 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * New function gfs_advance_tracers()
 
-Thu Apr 30 20:32:37 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Thu Apr 30 10:32:37 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * New function gfs_cell_is_small()
 
-Tue Apr 21 09:45:49 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Mon Apr 20 23:45:49 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * New 'ppm2video' script
   
   Uses ffmpeg to convert PPM to (almost) any video format.
 
-Tue Apr 21 08:51:44 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Mon Apr 20 22:51:44 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Updated reference for 'reynolds' test case
 
-Sun Apr 19 19:24:50 NZST 2009  Stephane Popinet <popinet at users.sf.net>
+Sun Apr 19 09:24:50 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Fix for dimensioning of GfsSurfaceBc
 
-Fri Apr  3 10:02:10 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Thu Apr  2 23:02:10 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Fix for dependencies of examples
 
-Thu Apr  2 08:59:25 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Wed Apr  1 21:59:25 CEST 2009  Stephane Popinet <popinet at users.sf.net>
   * Fix for negative clock return values (thanks to G. McBain)
 
-Fri Mar 27 07:11:53 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Thu Mar 26 19:11:53 CET 2009  Stephane Popinet <popinet at users.sf.net>
   * gerris.dic is installed in $prefix/share/gerris/gerris.dic
 
-Mon Mar 16 05:02:16 NZDT 2009  Daniel Fuster <dfuster at gmail.com>
+Sun Mar 15 17:02:16 CET 2009  Daniel Fuster <dfuster at gmail.com>
   * vim dictionary
 
-Wed Mar 18 05:41:32 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Tue Mar 17 17:41:32 CET 2009  Stephane Popinet <popinet at users.sf.net>
   * Fix for compilation on Mac OSX 10.4, 10.5
 
-Mon Mar 16 10:34:31 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Sun Mar 15 22:34:31 CET 2009  Stephane Popinet <popinet at users.sf.net>
   * OutputDropletSums sorts droplets by volume
 
-Sun Mar 15 06:23:12 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Sat Mar 14 18:23:12 CET 2009  Stephane Popinet <popinet at users.sf.net>
   * Fixed dimensioning of GfsVariableCurvature
 
-Fri Mar 13 03:26:54 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Thu Mar 12 15:26:54 CET 2009  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for surface tension coefficient and dimensions
 
-Fri Feb 27 08:45:04 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Thu Feb 26 20:45:04 CET 2009  Stephane Popinet <popinet at users.sf.net>
   * Fix (again!) for module dependencies
 
-Thu Feb 26 15:28:02 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Thu Feb 26 03:28:02 CET 2009  Stephane Popinet <popinet at users.sf.net>
   * Fixed obsolete lseek() call in RStarTree
 
-Thu Feb 26 14:41:33 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Thu Feb 26 02:41:33 CET 2009  Stephane Popinet <popinet at users.sf.net>
   * Fix for hardcoded path in wavewatch module
 
-Wed Feb 25 13:20:51 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Wed Feb 25 01:20:51 CET 2009  Stephane Popinet <popinet at users.sf.net>
   * Fix for incorrect 'dist' dependency in wavewatch module
 
-Tue Feb 24 09:33:43 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Mon Feb 23 21:33:43 CET 2009  Stephane Popinet <popinet at users.sf.net>
   * Fix for 'listing' option of wavewatch
 
-Tue Feb 24 09:11:58 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Mon Feb 23 21:11:58 CET 2009  Stephane Popinet <popinet at users.sf.net>
   * Fixed changelog in gerris.spec
 
-Mon Feb 23 22:31:36 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Mon Feb 23 10:31:36 CET 2009  Stephane Popinet <popinet at users.sf.net>
   * Fix for wavewatch module makefile
 
-Mon Feb 23 22:13:58 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Mon Feb 23 10:13:58 CET 2009  Stephane Popinet <popinet at users.sf.net>
   * Automatic type checking for wavewatch C/Fortran linking
 
-Mon Feb 23 18:17:04 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Mon Feb 23 06:17:04 CET 2009  Stephane Popinet <popinet at users.sf.net>
   * Wavewatch initialisation files are created in the background
 
-Mon Feb 23 14:08:07 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Mon Feb 23 02:08:07 CET 2009  Stephane Popinet <popinet at users.sf.net>
   * New 'wavewatch' module
 
-Fri Feb 20 18:27:36 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Fri Feb 20 06:27:36 CET 2009  Stephane Popinet <popinet at users.sf.net>
   * Fix for energy calculation in GfsWave
 
-Tue Feb  3 13:00:35 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Tue Feb  3 01:00:35 CET 2009  Stephane Popinet <popinet at users.sf.net>
   * Applied patch by Laurent Roblou to FES2004 library
 
-Mon Feb  2 22:51:53 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Mon Feb  2 10:51:53 CET 2009  Stephane Popinet <popinet at users.sf.net>
   * New object GfsVariableFunction
   
   Used to efficiently refine adaptively a variable defined by a GfsFunction.
 
-Thu Jan 29 12:53:08 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Thu Jan 29 00:53:08 CET 2009  Stephane Popinet <popinet at users.sf.net>
   * Small optimisation for dry cells in GfsRiver
 
-Fri Jan 16 10:01:46 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Thu Jan 15 22:01:46 CET 2009  Stephane Popinet <popinet at users.sf.net>
   UNDO: New GfsBcValve BC for GfsRiver
 
-Thu Jan 29 12:45:25 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Thu Jan 29 00:45:25 CET 2009  Stephane Popinet <popinet at users.sf.net>
   * Cron script darcs pull from the correct repositories
 
-Thu Jan 29 12:44:08 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Thu Jan 29 00:44:08 CET 2009  Stephane Popinet <popinet at users.sf.net>
   * Added fortran dependency for new stokes module
 
-Wed Jan 28 19:26:03 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
-  * Small optimisation for gfs_domain_traverse_merged()
-
-Wed Jan 28 19:24:51 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
-  * Less strict check for parabola test case
-
-Tue Jan 27 14:28:46 NZDT 2009  Stephane Popinet <s.popinet at niwa.co.nz>
-  * Updated GfsView parameter files for updated GfsGlLinear object
-
-Wed Jan 21 09:34:30 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Tue Jan 20 21:34:30 CET 2009  Stephane Popinet <popinet at users.sf.net>
   * Fix for hardcoding of path in Terrain module
 
-Fri Jan 16 15:55:16 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Fri Jan 16 03:55:16 CET 2009  Stephane Popinet <popinet at users.sf.net>
   * New GfsVariableTerrain for adaptive refinement of GfsRiver
 
-Fri Jan 16 10:01:46 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Thu Jan 15 22:01:46 CET 2009  Stephane Popinet <popinet at users.sf.net>
   * New GfsBcValve BC for GfsRiver
 
-Fri Aug 22 16:18:05 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Fri Aug 22 06:18:05 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * New object GfsInitStokesWave
 
-Mon Jul 28 18:03:05 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Mon Jul 28 08:03:05 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Iterative Stokes wave solver of John Chaplin
 
-Tue May  6 11:11:31 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Tue May  6 01:11:31 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Added GFS_FES2004 environment variable
 
-Tue Sep 18 10:06:46 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Tue Sep 18 00:06:46 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * New EventBalance object for parallel load-balancing
 
-Sun Sep  2 19:11:05 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Sun Sep  2 09:11:05 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * New VariableDiagonal for Poisson solver diagonal dominance evaluation
 
-Thu Jan 15 16:19:18 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Wed Jan 28 07:26:03 CET 2009  Stephane Popinet <popinet at users.sf.net>
+  * Small optimisation for gfs_domain_traverse_merged()
+
+Wed Jan 28 07:24:51 CET 2009  Stephane Popinet <popinet at users.sf.net>
+  * Less strict check for parabola test case
+
+Tue Jan 27 02:28:46 CET 2009  Stephane Popinet <s.popinet at niwa.co.nz>
+  * Updated GfsView parameter files for updated GfsGlLinear object
+
+Thu Jan 15 04:19:18 CET 2009  Stephane Popinet <popinet at users.sf.net>
   * Updated GfsRiver examples
 
-Sat Jan 10 23:35:53 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Sat Jan 10 11:35:53 CET 2009  Stephane Popinet <popinet at users.sf.net>
   * New 'hump' GfsRiver example
 
-Fri Jan  9 16:54:59 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Fri Jan  9 04:54:59 CET 2009  Stephane Popinet <popinet at users.sf.net>
   * New dam break example
 
-Thu Jan 22 17:02:28 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Thu Jan 22 05:02:28 CET 2009  Stephane Popinet <popinet at users.sf.net>
   * Updated parabola test case
 
-Thu Jan 22 11:50:03 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Wed Jan 21 23:50:03 CET 2009  Stephane Popinet <popinet at users.sf.net>
   * SourceCoriolis properly takes friction term into account
 
-Thu Jan 22 11:33:18 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Wed Jan 21 23:33:18 CET 2009  Stephane Popinet <popinet at users.sf.net>
   * Friction for the River model is implemented using SourceCoriolis
 
-Thu Jan 22 11:32:50 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Wed Jan 21 23:32:50 CET 2009  Stephane Popinet <popinet at users.sf.net>
   * Fix for terrain module when refining an existing mesh
 
-Thu Jan 22 10:07:21 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Wed Jan 21 22:07:21 CET 2009  Stephane Popinet <popinet at users.sf.net>
   * Log timing statistics for events
 
-Fri Jan 16 12:56:08 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Fri Jan 16 00:56:08 CET 2009  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for ppmcombine
 
-Thu Jan 15 16:20:22 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Thu Jan 15 04:20:22 CET 2009  Stephane Popinet <popinet at users.sf.net>
   * Updated parabola test case
 
-Thu Jan 15 16:19:46 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Thu Jan 15 04:19:46 CET 2009  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for incorrect write() method of GfsRefineTerrain
 
-Thu Jan 15 16:08:30 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Thu Jan 15 04:08:30 CET 2009  Stephane Popinet <popinet at users.sf.net>
   * stderr and stdout are muted in parallel
 
-Thu Jan 15 16:07:15 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Thu Jan 15 04:07:15 CET 2009  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for gfs_all_reduce()
 
-Thu Jan 15 00:19:19 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Wed Jan 14 12:19:19 CET 2009  Stephane Popinet <popinet at users.sf.net>
   * Consistent descriptions and derived variables for GfsRiver
 
-Thu Jan 15 00:15:30 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Wed Jan 14 12:15:30 CET 2009  Stephane Popinet <popinet at users.sf.net>
   * Removed Riemann Roe solver from GfsRiver
 
-Thu Jan 15 00:14:54 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Wed Jan 14 12:14:54 CET 2009  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for overflow in gfscompare
 
-Thu Jan 15 00:14:08 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Wed Jan 14 12:14:08 CET 2009  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for GfsInit erasing variables' descriptions
 
-Wed Jan 14 20:56:35 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Wed Jan 14 08:56:35 CET 2009  Stephane Popinet <popinet at users.sf.net>
   * Added timers to GfsRiver
 
-Sun Jan 11 22:30:03 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Sun Jan 11 10:30:03 CET 2009  Stephane Popinet <popinet at users.sf.net>
   * Bathymetry reconstruction ensures hydrostatic balance
 
-Sat Jan 10 14:39:03 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Sat Jan 10 02:39:03 CET 2009  Stephane Popinet <popinet at users.sf.net>
   * New 'parabola' test case for GfsRiver
 
-Sat Jan 10 13:53:47 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Sat Jan 10 01:53:47 CET 2009  Stephane Popinet <popinet at users.sf.net>
   * Cleaned up GfsRiver code
 
-Fri Jan  9 20:48:46 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Fri Jan  9 08:48:46 CET 2009  Stephane Popinet <popinet at users.sf.net>
   * Topography source terms for GfsRiver are balanced also with adaptivity
 
-Fri Jan  9 20:48:25 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Fri Jan  9 08:48:25 CET 2009  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for gfs_remove_ponds()
 
-Wed Dec 17 15:01:10 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Wed Dec 17 03:01:10 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * Uses the standard definitions for H and Zb
 
-Wed Dec 10 17:21:25 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Wed Dec 10 05:21:25 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * Implementation of the Audusse et al scheme
 
-Wed Dec 10 14:53:56 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Wed Dec 10 02:53:56 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * Wetting-drying for GfsRiver
 
-Wed Dec 10 10:59:26 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Tue Dec  9 22:59:26 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * Topographic source terms for River model
 
-Wed Dec 10 09:43:48 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Tue Dec  9 21:43:48 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for HLLC riemann solver
 
-Tue Dec  9 11:16:40 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Mon Dec  8 23:16:40 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * 2nd-order non-linear shallow-water solver
 
-Tue Dec  9 10:58:37 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Mon Dec  8 22:58:37 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * BcSubcritical boundary condition
 
-Tue Dec  9 10:50:56 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Mon Dec  8 22:50:56 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * New function gfs_center_minmod_gradient
 
-Fri Nov 14 13:53:37 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Fri Nov 14 01:53:37 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * Added "none" option for gradient of AdvectionParams
   
   This means that the advection schemes can be made first-order in space.
 
-Fri Nov 14 13:51:23 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Fri Nov 14 01:51:23 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * Initial nonlinear shallow-water solver
   
   1D, first-order in space and time.
 
-Fri Jan  9 16:55:42 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Fri Jan  9 04:55:42 CET 2009  Stephane Popinet <popinet at users.sf.net>
   * Fix for hevea bug in gfs2doc
 
-Thu Dec 18 11:29:58 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Wed Dec 17 23:29:58 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * Parallel outputs are only done for files with '%d' format
 
-Wed Dec 17 15:02:55 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Wed Dec 17 03:02:55 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for OutputScalarSum in parallel
 
-Thu Jan  8 15:05:31 NZDT 2009  Stephane Popinet <popinet at users.sf.net>
+Thu Jan  8 03:05:31 CET 2009  Stephane Popinet <popinet at users.sf.net>
   * OutputTime also outputs real elapsed time
 
-Wed Dec 10 09:44:10 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Tue Dec  9 21:44:10 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * OutputSimulation was not talking dimensioning into account for text format
 
-Tue Dec  2 15:11:13 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Tue Dec  2 03:11:13 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for BC of diffusion equation
 
-Fri Nov 28 13:31:55 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Fri Nov 28 01:31:55 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * Gnuplot output from gfs2oogl takes mapping into account
 
-Fri Nov 28 13:29:57 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Fri Nov 28 01:29:57 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * OutputParticle now derives from OutputLocation
   
   Note also that the syntax has changed.
 
-Fri Nov  7 12:24:53 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Fri Nov  7 00:24:53 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * ASCII float conversion format option for OutputSimulation
 
-Fri Nov  7 11:08:52 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Thu Nov  6 23:08:52 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * Improved robustness of VOF volume computation
 
-Tue Nov  4 10:08:45 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Mon Nov  3 22:08:45 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * Slip length in BcNavier is now a GfsFunction
 
-Tue Nov  4 09:55:31 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Mon Nov  3 21:55:31 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for GfsRemoveDroplets (thanks to G. Tomar)
 
-Tue Nov  4 09:41:47 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Mon Nov  3 21:41:47 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * Fixed dimensioning of OutputSolidForce.
 
-Thu Oct 30 17:26:06 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Thu Oct 30 05:26:06 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * Dimensioning for AdaptGradient
 
-Tue Oct 28 16:54:01 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Tue Oct 28 04:54:01 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * Dimensioning of Flather boundary conditions
 
-Fri Oct 24 20:23:05 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Fri Oct 24 09:23:05 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * New 'ppm2theora' script
 
-Fri Oct 24 17:10:35 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Fri Oct 24 06:10:35 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * 'tides' example uses new 3D ocean code and scaling system
 
-Fri Oct 24 17:08:37 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Fri Oct 24 06:08:37 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * rsurfacedraw outputs aspect ratio statistics
 
-Thu Oct 23 09:52:22 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Wed Oct 22 22:52:22 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Fixed dimensioning of GfsEventHarmonic
 
-Wed Oct 22 15:31:41 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Wed Oct 22 04:31:41 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * GTS and CGD files take mapping into account
 
-Wed Oct 22 12:35:48 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Wed Oct 22 01:35:48 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Terrain databases were incompatible between 32 and 64 bits
   
   This is fixed but you will need to regenerate the databases...
 
-Thu Oct 16 14:46:30 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Thu Oct 16 03:46:30 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Dimensioning for 3D ocean model
 
-Tue Oct 21 13:12:06 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Tue Oct 21 02:12:06 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Increased significant digits of text export
 
-Thu Oct 16 14:47:01 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Thu Oct 16 03:47:01 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * New "dL" derived variable
 
-Thu Oct 16 14:46:17 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Thu Oct 16 03:46:17 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Consistent z-scaling of terrain
 
-Thu Oct 16 14:32:14 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Thu Oct 16 03:32:14 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Terrain module works only with relative bilinear coordinates
 
-Thu Oct 16 12:33:26 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Thu Oct 16 01:33:26 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Fixed access modes for Terrain module
 
-Thu Oct  9 13:09:37 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Thu Oct  9 02:09:37 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * New Terrain module uses relative sums
   
   This fixes round-off problems in the previous implementation of 
   the new version. Note that the terrain databases need to be regenerated.
 
-Thu Oct  9 12:12:15 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Thu Oct  9 01:12:15 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * New 'rsurfacedraw' command
 
-Mon Oct  6 10:43:15 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Sun Oct  5 23:43:15 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Added new "min" and "max" derived Terrain variables
 
-Thu Oct  2 14:55:47 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Thu Oct  2 03:55:47 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * New version of the terrain module using region_sum queries
   
   This patch contains both the old and the new version, for debugging purposes.
 
-Thu Oct  2 14:53:28 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Thu Oct  2 03:53:28 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * New function r_surface_query_region_sum()
   
   Efficiently computes the statistics for a given region using the hierarchical
   statistics stored in the R*-tree.
 
-Sun Oct  5 14:48:59 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Sun Oct  5 03:48:59 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Fixed headers for compilation on Mac OSX
 
-Sun Oct  5 12:49:42 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Sun Oct  5 01:49:42 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Fix for incorrect versioning of debian packages
 
-Mon Sep 29 16:41:14 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Mon Sep 29 05:41:14 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * darcs2dist uses sftp rather than ssh
 
-Tue Sep 23 15:30:12 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Tue Sep 23 05:30:12 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Updated URL for sourceforge server upgrade
 
-Thu Sep 18 13:10:31 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Thu Sep 18 03:10:31 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Fix for dimensioning of SourceTension when using reduced gravity
 
-Thu Sep 11 09:09:52 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Wed Sep 10 23:09:52 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Added missing required files for test cases
 
-Tue Sep  9 18:54:21 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Tue Sep  9 08:54:21 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Axisymmetric spurious currents test case
 
-Tue Sep  9 16:52:46 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Tue Sep  9 06:52:46 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Axisymmetric surface tension implementation
 
-Tue Sep  9 15:06:31 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Tue Sep  9 05:06:31 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Replaced GFS_VARIABLE() with GFS_VALUE() in tension.c, vof.c
 
-Tue Sep  9 16:05:13 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Tue Sep  9 06:05:13 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Updated test case references
 
-Mon Sep  8 10:10:27 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Mon Sep  8 00:10:27 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Fixes for missing dimensioning
   
   VariableCurvature, VariableDistance, VariableFiltered, SourceTension.
 
-Sat Sep  6 10:04:37 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Sat Sep  6 00:04:37 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Implicit viscosity now works for axisymmetric domains
   
   The explicit viscosity scheme has also been simplified.
 
-Sat Sep  6 09:30:55 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Fri Sep  5 23:30:55 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Axisymmetric viscous flow past a sphere test case
 
-Wed Aug  6 10:50:48 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Wed Aug  6 00:50:48 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * New object GfsAdaptError
   
   Uses an error estimate based on the norm of the Hessian matrix.
 
-Fri Aug  1 14:48:18 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Fri Aug  1 04:48:18 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Reimplementation of SourceVicosityExplicit
   
   Also works for axisymmetric flows (but for 3D flows yet).
 
-Fri Aug  1 14:47:02 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Fri Aug  1 04:47:02 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Explicit viscosity lid-driven cavity test case
 
-Thu Sep  4 16:15:05 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Thu Sep  4 06:15:05 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * gfs2oogl outputs dimensional values in mixed cells
 
-Wed Sep  3 16:56:36 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Wed Sep  3 06:56:36 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * VariableDistance now works also in 3D
 
-Thu Aug 21 13:20:26 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Thu Aug 21 03:20:26 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * New user function "correctness()" for complexity of VOF interfaces
 
-Fri Aug 22 16:04:47 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Fri Aug 22 06:04:47 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Spatial functions can now be time-dependent
 
-Tue Aug 19 09:19:33 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Mon Aug 18 23:19:33 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Updated test cases references
 
-Sun Aug 10 18:06:39 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Sun Aug 10 08:06:39 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * check.py is distributed in the tarball
 
-Sun Aug 10 18:29:44 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Sun Aug 10 08:29:44 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Computation of maximum interface curvature is more robust
 
-Thu Aug  7 21:02:21 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Thu Aug  7 11:02:21 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * VariableFiltered is initialised
   
   This is important if a filtered variable is used for the initial approximate
   projection (e.g. for the density).
 
-Tue Jul 29 09:29:57 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Mon Jul 28 23:29:57 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Removed left-over debugging message
 
-Mon Jul 28 09:40:22 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Sun Jul 27 23:40:22 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Updated test cases references
 
-Sat Jul 26 12:25:31 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Sat Jul 26 02:25:31 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * gfs_init_solid_fractions() always resets the old solids first
 
-Fri Jun 20 09:28:01 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Thu Jun 19 23:28:01 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Quick fix for surfaces exactly coincident with mesh
   
   i.e. it should not be necessary anymore to shift implicit surfaces by epsilon 
   to get the expected results.
 
-Thu May  1 12:09:32 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Thu May  1 02:09:32 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Robust treatment of border cases for gfs_line_center, gfs_plane_center
 
-Wed Jul 23 16:10:41 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Wed Jul 23 06:10:41 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Cleaner axi test case parameter file
 
-Sat Jul 26 10:44:14 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Sat Jul 26 00:44:14 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Restructured correct_normal_velocity()
   
   This also fixes a bug introduced by the new axisymmetric formulation.
 
-Sat Jul 26 10:43:15 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Sat Jul 26 00:43:15 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Fix for "corner refinement" topology violation
 
-Fri Jul 25 16:01:19 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Fri Jul 25 06:01:19 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Fixed incorrect L-dimensioning of force output
 
-Tue Jul 22 13:06:05 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Tue Jul 22 03:06:05 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Axisymmetric advection
 
-Tue Jul 22 12:58:42 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Tue Jul 22 02:58:42 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Removed obsolete charset option for html doc generation
 
-Sun Jul 20 10:38:43 NZST 2008  Stephane Popinet <s.popinet at niwa.co.nz>
+Sun Jul 20 00:38:43 CEST 2008  Stephane Popinet <s.popinet at niwa.co.nz>
   * Clean target for examples
 
-Sat Jul 19 13:31:26 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Sat Jul 19 03:31:26 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Axisymmetric Euler solver
 
-Fri Jul 18 12:38:12 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Fri Jul 18 02:38:12 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Axisymmetric potential flow around a sphere test case
 
-Sat Jul 19 13:30:19 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Sat Jul 19 03:30:19 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * L-dimensioning for OutputScalarSum, VTK and Tecplot
 
-Sat Jul 19 13:01:26 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Sat Jul 19 03:01:26 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * New function "area" for interfacial area density
 
-Mon Jun  9 10:22:44 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Mon Jun  9 00:22:44 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Wave model uses user-defined length units
 
-Sun Jun  8 11:29:51 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Sun Jun  8 01:29:51 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Solid flux correction for wave model
 
-Sun Jun  8 05:16:39 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Sat Jun  7 19:16:39 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * New 'garden sprinkler effect' example for wave model
 
-Fri Jul 18 22:00:35 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Fri Jul 18 12:00:35 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Several important fixes for L-dimensioning
 
-Wed Jul 16 15:10:40 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Wed Jul 16 05:10:40 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * gfs_domain_cfl() should now take source terms into account
 
-Wed Jul 16 14:29:38 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Wed Jul 16 04:29:38 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Minor fixed to RPM spec file (I. Vari)
 
-Sat Jun  7 20:08:55 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Sat Jun  7 10:08:55 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Maximum timestep is not limited
 
-Thu Jul 10 09:43:55 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Wed Jul  9 23:43:55 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for cgd files and face boundary conditions
 
-Sun Jun  8 05:00:53 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Sat Jun  7 19:00:53 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * New "Energy" derived variable for wave model
 
-Sat Jun  7 22:58:02 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Sat Jun  7 12:58:02 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * New object GfsInitWave
 
-Sat Jun  7 21:35:01 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Sat Jun  7 11:35:01 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * nk and ntheta are parameters for wave model
 
-Sat Jun  7 20:10:07 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Sat Jun  7 10:10:07 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Fixed scaling of energy for wave model
 
-Sun May 11 22:21:24 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Sun May 11 12:21:24 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Initial sub-cycling implementation for wave model
 
-Fri May  9 19:08:22 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Fri May  9 09:08:22 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Initial wave model
 
-Fri Jun 13 11:34:32 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Fri Jun 13 01:34:32 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for broken BcNavier
 
-Mon Jun  9 02:51:50 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Sun Jun  8 16:51:50 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Dimensional size of the unit box can be set
 
-Tue Jul  8 16:01:39 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Tue Jul  8 06:01:39 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Multigrid "tricks" for diffusion solver
 
-Mon Jul  7 19:03:24 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Mon Jul  7 09:03:24 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * darcs2dist puts tarballs in a tarballs/ directory
 
-Mon Jul  7 18:01:06 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Mon Jul  7 08:01:06 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Fixed typo in RefineHeight (thanks to G. McBain)
 
-Mon Jul  7 17:59:07 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Mon Jul  7 07:59:07 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Added missing gfsxref to tarball
 
-Fri Jun 20 10:44:41 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Fri Jun 20 00:44:41 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * More accurate streamlines
   
   Uses new function gfs_mixed_cell_interpolate().
 
-Fri Jul  4 15:20:11 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Fri Jul  4 05:20:11 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Scripts for automatic cross-reference generation
   
   For automatically linking keyword wiki documentation with the examples and 
   test cases.
 
-Wed Jul  2 13:13:01 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Wed Jul  2 03:13:01 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Updated test cases references
 
-Fri Jun 20 11:15:14 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Fri Jun 20 01:15:14 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * New object GfsBoundaryGradient
 
-Tue Jul  1 16:04:32 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Tue Jul  1 06:04:32 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * RPM spec update for Fedora (I. Vari)
 
-Tue Jul  1 15:51:19 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Tue Jul  1 05:51:19 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Several fixes for GfsCartesianGrid object
 
-Fri Jun 20 21:17:25 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Fri Jun 20 11:17:25 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * darcs2dist makes tarballs with consistent version numbers
 
-Tue Jul  1 14:08:59 NZST 2008  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Jul  1 04:08:59 CEST 2008  Stephane Popinet <s.popinet at niwa.co.nz>
   * Fix for doc generation with new gfs-highlight script
 
-Fri Jun 20 01:15:48 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Thu Jun 19 15:15:48 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for adaptive refinement (maxlevel was not always respected)
 
-Thu Jun 19 09:35:51 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Wed Jun 18 23:35:51 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * VariableFiltered defines values on all levels
   
   This should fix bugs when using a filtered variable within alpha (alpha needs 
   to be defined on all levels for the viscous terms).
 
-Thu Jun 19 01:21:21 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Wed Jun 18 15:21:21 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Updated spurious currents test case reference
 
-Fri Jun 13 00:06:05 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Thu Jun 12 14:06:05 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Fix for linking utility libraries with libtool
 
-Wed Jun 11 21:39:58 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Wed Jun 11 11:39:58 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Fix for OutputSimulation silly bug
 
-Wed Jun 11 00:57:31 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Tue Jun 10 14:57:31 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Fix for VTK/Tecplot output in parallel
 
-Wed Jun 11 00:49:55 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Tue Jun 10 14:49:55 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * New gfs-highlight script
   
   Uses GNU source-highlight for syntax highlighting of simulation files.
 
-Mon Jun  9 09:55:16 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Sun Jun  8 23:55:16 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * GfsAdaptGradient has been generalised to functions
 
-Fri May  9 19:06:54 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Fri May  9 09:06:54 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   UNDO: gfs_domain_add_variable() takes a class parameter
 
-Sat Jun  7 21:33:50 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Sat Jun  7 11:33:50 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * OutputSimulation really writes all the variables by default
 
-Sun May 11 22:20:44 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Sun May 11 12:20:44 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * New function gfs_event_redo()
 
-Fri May  9 19:06:54 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Fri May  9 09:06:54 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * gfs_domain_add_variable() takes a class parameter
 
-Fri May  9 19:04:50 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Fri May  9 09:04:50 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Generalised gfs_matrix_new() to non-square matrices
 
-Sun Jun  8 20:41:49 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Sun Jun  8 10:41:49 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Checks that density is not negative
 
-Fri Jun  6 22:42:04 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Fri Jun  6 12:42:04 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Fix for inconsistent treatment of maxlevel adaptive parameter
   
   This patch should ensure that cells are never more refined than maxlevel.
 
-Fri Jun  6 21:41:35 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Fri Jun  6 11:41:35 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Fix for automake/libtool object issue
 
-Wed Apr 23 09:30:46 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Tue Apr 22 23:30:46 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   UNDO: Use dolt instead of standard libtool
 
-Tue May 13 21:34:19 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Tue May 13 11:34:19 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Improved options for xyz2rsurface
 
-Tue May 13 14:58:24 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Tue May 13 04:58:24 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Improved path system for Terrain module
 
-Tue May 13 13:12:38 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Tue May 13 03:12:38 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Fix for hard-coded module names in parameter files
 
-Mon May 12 13:34:01 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Mon May 12 03:34:01 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * New dependencies for RPM packages (I. Vari)
 
-Sat May 10 15:54:50 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Sat May 10 05:54:50 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * cron script uses new "devel" branches
 
-Sat May 10 15:15:48 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Sat May 10 05:15:48 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Added cron job script in tools/
 
-Fri May  9 14:53:28 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Fri May  9 04:53:28 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Fixed missing dependency for Terrain module
 
-Tue May  6 10:59:25 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Tue May  6 00:59:25 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Added debian dependencies for Tide and Map modules
 
-Thu May  8 22:43:11 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Thu May  8 12:43:11 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * GFS_MODULES_DIR is defined in Makefile
   
   This should fix problems when using the --libdir option of configure
 
-Wed May  7 22:27:13 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Wed May  7 12:27:13 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Poiseuille flow test case
 
-Tue May  6 10:52:34 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Tue May  6 00:52:34 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Integrated FES2004 build within primary build
 
-Tue May  6 09:39:20 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Mon May  5 23:39:20 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Initial import of FES2004_distribution_soft-1.0.9
     
   A GPL-ed library to read FES2004 tidal atlas data.
 
-Tue May  6 09:14:02 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Mon May  5 23:14:02 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * New derived variables rx, ry and rz
 
-Thu May  1 12:04:43 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Thu May  1 02:04:43 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Improved robustness of solid fraction checks
 
-Thu Apr 24 17:02:49 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Thu Apr 24 07:02:49 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * New abstract class GfsGenericSurface
 
-Tue Apr 29 20:38:10 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Tue Apr 29 10:38:10 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Map module also scales z coordinate
 
-Tue Apr 29 17:00:27 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Tue Apr 29 07:00:27 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Solid boundary generation changes for Terrain module
 
-Tue Apr 29 16:58:43 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Tue Apr 29 06:58:43 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Extension of GfsRefineTerrain to 3D
 
-Tue Apr 29 13:14:58 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Tue Apr 29 03:14:58 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Removed "Writing new objects" section of tutorial
   
   This has been superseded by the wiki version in the Gerris programming course.
 
-Tue Apr 29 10:26:20 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Tue Apr 29 00:26:20 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Added missing awk script in debian package
 
-Thu Apr 24 17:07:58 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Thu Apr 24 07:07:58 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Thin solid cells are flagged and "fixed" before checks
 
-Thu Apr 24 17:02:20 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Thu Apr 24 07:02:20 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * New GfsTerrain class
 
-Wed Apr 23 09:31:04 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Tue Apr 22 23:31:04 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Terrain module uses R*-tree
 
-Wed Apr 23 09:30:46 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Tue Apr 22 23:30:46 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Use dolt instead of standard libtool
 
-Wed Apr 23 09:30:25 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Tue Apr 22 23:30:25 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Minor changes to RStarTree (updated header files etc...)
 
-Thu Apr 10 21:32:17 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Thu Apr 10 11:32:17 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Large file (> 2GiB) support for RStarTree
 
-Thu Apr 10 21:10:52 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Thu Apr 10 11:10:52 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Upgraded/integrated Makefile.am for RStarTree
 
-Thu Apr 10 20:32:54 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Thu Apr 10 10:32:54 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * R*-tree implementation of Norbert Beckmann
   
   This is the original implementation as unpacked from http://www.rtreeportal.org.
 
-Tue Apr  8 09:37:23 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Mon Apr  7 23:37:23 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * New terrain module for height-field databases
 
-Tue Apr  1 14:39:32 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Tue Apr  1 03:39:32 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * New module for FES2004 tidal boundary conditions
 
-Tue Apr  1 13:14:15 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Tue Apr  1 02:14:15 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * GModule can take parameters
 
-Fri Mar 28 15:26:35 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Fri Mar 28 03:26:35 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * New Map module for cartographic projections
 
-Tue Mar 25 16:57:21 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Tue Mar 25 04:57:21 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * Support for geometric "mapping" of domain coordinates
 
-Wed Jan 30 11:31:34 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Tue Jan 29 23:31:34 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * Single-layer ocean model can now use "3D" code rather than "2D3"
 
-Fri Apr 18 12:12:37 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Fri Apr 18 02:12:37 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Stricter checking when compiling user-defined GfsFunctions
 
-Fri Apr 18 12:07:41 NZST 2008  Stephane Popinet <popinet at users.sf.net>
+Fri Apr 18 02:07:41 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Need to make sure that all PEs use the same timestep!
   
   Important bug fix for the parallel version.
 
-Sat Apr  5 16:10:34 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Sat Apr  5 05:10:34 CEST 2008  Stephane Popinet <popinet at users.sf.net>
   * Check for unclosed statement in parameter files
 
-Tue Mar 25 11:35:46 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Mon Mar 24 23:35:46 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * Checks that variable names are not reserved keywords
 
-Tue Mar 18 12:49:03 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Tue Mar 18 00:49:03 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * Examples files are distributed only if they are version-controlled
 
-Thu Mar 13 12:25:11 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Thu Mar 13 00:25:11 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * Removed MRS acceleration
   
   While this accelerated convergence somewhat in some cases, it seemed to prevent
@@ -1265,10 +2747,10 @@ Thu Mar 13 12:25:11 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
   initial MRS implementation because it does not rollback other simple but 
   important changes to the Poisson solver which seem to really improve robustness.
 
-Thu Mar 13 10:54:50 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Wed Mar 12 22:54:50 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * Fix for MRS implementation in parallel
 
-Tue Mar 11 16:20:04 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Tue Mar 11 04:20:04 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * Minimal Residual Smoothing implementation
   
   This guarantees that the Poisson solver does not diverge (but does not
@@ -1276,46 +2758,46 @@ Tue Mar 11 16:20:04 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
   problem. Coupled with other smaller changes included in this patch ('minlevel'
   tuning in particular) this improves the robustness of the solver.
 
-Wed Mar 12 15:41:31 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Wed Mar 12 03:41:31 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * Series 60 ship waves example
 
-Mon Mar 10 19:39:25 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Mon Mar 10 07:39:25 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * SourceControl was broken by momentum source term patch
 
-Fri Mar  7 11:31:24 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Thu Mar  6 23:31:24 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * 'omega' relaxation parameter is written only if different from default
   
   This means that simulation files are backward-compatible with older versions of
   gerris/gfsview. 
 
-Thu Mar  6 20:29:16 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Thu Mar  6 08:29:16 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for sign error in new momentum source term implementation
 
-Thu Mar  6 13:22:02 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Thu Mar  6 01:22:02 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * GfsOutput pipes now know the pre-defined Gerris shell variables
 
-Thu Mar  6 09:41:40 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Wed Mar  5 21:41:40 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * gerris.spec version number fix
 
-Wed Mar  5 15:51:18 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Wed Mar  5 03:51:18 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * Optimised temporary variables usage for "gc" option
 
-Wed Mar  5 14:41:38 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Wed Mar  5 02:41:38 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * Cosmetics
 
-Wed Mar  5 12:55:54 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Wed Mar  5 00:55:54 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * Removed generation of Postscript docs
 
-Tue Mar  4 17:11:27 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Tue Mar  4 05:11:27 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for VOF patch introducing "_x", "_y" and "_alpha" variables
 
-Fri Feb 29 12:34:18 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Fri Feb 29 00:34:18 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * VOF interface normals and alpha values are named variables
   
   e.g. for a VOF tracer called "T" in 2D, three new variables are automatically 
   created "T_x", "T_y" and "T_alpha".
 
-Tue Mar  4 15:05:43 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Tue Mar  4 03:05:43 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * GfsSource terms for velocity components are consistent with projection
   
   i.e. they are computed in a manner consistent with the pressure gradient 
@@ -1323,22 +2805,22 @@ Tue Mar  4 15:05:43 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
   in particular to guarantee exact hydrostatic balance with non-linear pressure
   distributions (e.g. the 'hydrostatic/quadratic' test case).
 
-Thu Oct 18 17:30:51 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Thu Oct 18 06:30:51 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Added stability conditions for SourceDiffusionExplicit and SourceViscosityExplicit
 
-Tue Mar  4 13:35:16 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Tue Mar  4 01:35:16 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * New quadratic hydrostatic pressure test case
 
-Fri Feb 29 11:27:04 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Thu Feb 28 23:27:04 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for OutputDropletSums when using functions as volume fraction
 
-Wed Feb 27 12:03:50 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Wed Feb 27 00:03:50 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * New air/water capillary wave test case
 
-Wed Feb 27 11:20:27 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Tue Feb 26 23:20:27 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * Updated test cases for surface tension/advection bug fix
 
-Wed Feb 27 10:32:11 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Tue Feb 26 22:32:11 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * Pressure-correction in the Crank-Nicholson scheme is turned off by default
   
   This was degrading the results for a number of test cases (capillary waves in
@@ -1352,156 +2834,156 @@ Wed Feb 27 10:32:11 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
   The pressure-correction Crank-Nicholson scheme can be turned off explicitly 
   when required (e.g. "hydrostatic" test case).
 
-Fri Feb 22 12:28:45 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Fri Feb 22 00:28:45 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * Cleanup of GfsEventScript temporary files handling
 
-Fri Feb 22 10:35:36 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Thu Feb 21 22:35:36 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * Pressure term is included in RHS of viscosity solve
   
   This is an important change to the timestepping which should improve
   things significantly in particular when large source terms are included
   (e.g gravity + hydrostatic pressure).
 
-Fri Feb 22 10:01:09 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Thu Feb 21 22:01:09 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * Fix for initial timestep in Boussinesq example
 
-Tue Jan 22 11:32:56 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Mon Jan 21 23:32:56 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * New 'hydrostatic' test case
 
-Thu Feb 21 16:55:57 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Thu Feb 21 04:55:57 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * Bug fix when restarting simulations using SurfaceBc
 
-Thu Feb 21 11:48:23 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Wed Feb 20 23:48:23 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * Bug fixes for VTK/Tecplot output
 
-Wed Jan 30 09:51:03 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Tue Jan 29 21:51:03 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * Added 'omega' over-relaxation parameter
 
-Fri Jan 25 15:24:16 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Fri Jan 25 03:24:16 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * Removed gfs_get_from_below_extensive
 
-Wed Jan 16 14:53:41 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Wed Jan 16 02:53:41 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * GfsInit becomes a standard GfsEvent when either step or istep is specified 
 
-Mon Feb 11 18:36:08 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Mon Feb 11 06:36:08 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * VTK/Tecplot export
 
-Tue Jan 29 16:13:06 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Tue Jan 29 04:13:06 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * Improved robustness of checks for 'beta' and 'waves' test cases
 
-Wed Jan 16 17:36:38 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Wed Jan 16 05:36:38 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * Bug fix when using multiple GfsTime objects in parameter files
 
-Wed Jan 16 10:52:23 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Tue Jan 15 22:52:23 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * Various 'fixme' comments
 
-Wed Jan 16 10:07:47 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Tue Jan 15 22:07:47 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * New "dV" intrinsic domain variable
 
-Wed Jan 16 10:04:54 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Tue Jan 15 22:04:54 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * Renamed GfsOutputDropletStats to GfsOutputDropletSums
   
   Note that the syntax has changed, please check the doc.
 
-Wed Jan 16 10:04:24 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Tue Jan 15 22:04:24 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * Updated gfs_domain_remove_droplets() to use new GFS_VALUE macro
   
   Eventually this macro will replace GFS_VARIABLE.
 
-Wed Jan 16 09:55:55 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Tue Jan 15 21:55:55 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * RemoveDroplets takes an extra optional argument
   
   Which allows flexible selection of the "droplet" criterion.
 
-Tue Jan 15 13:12:36 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Tue Jan 15 01:12:36 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * Force reference of domain in Variable and DerivedVariable
 
-Mon Jan 14 17:13:25 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Mon Jan 14 05:13:25 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * Fix for missing variable descriptions
 
-Sun Jan 13 21:09:06 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Sun Jan 13 09:09:06 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * Deferred GfsFunction compilation
   
   Optionally, GfsFunctions are compiled only when they are used for the first
   time. This greatly improves the speed of GfsView when reading input piped from
   Gerris (when the simulation contains one or several GfsFunctions).
 
-Sun Jan 13 16:36:05 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Sun Jan 13 04:36:05 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * Updated test cases references
 
-Sat Jan 12 18:52:58 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Sat Jan 12 06:52:58 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * Timestep is set properly to guarantee CFL condition
   
   This should fix CFL problems when using the VOF scheme.
 
-Fri Jan 11 15:00:23 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Fri Jan 11 03:00:23 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * New object GfsOutputDropletStats
 
-Fri Jan 11 13:48:15 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Fri Jan 11 01:48:15 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * New function gfs_domain_tag_droplets()
   
   Used by GfsRemoveDroplets. This is more generic than the previous 
   implementation.
 
-Fri Jan 11 12:10:30 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Fri Jan 11 00:10:30 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * New intersection, union and difference predefined macros
 
-Thu Jan 10 13:10:48 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Thu Jan 10 01:10:48 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * 'error.gfs' dump files are indexed by PE number
 
-Thu Jan 10 12:20:30 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Thu Jan 10 00:20:30 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * Stricter syntax checking for read() method of Domain
 
-Tue Jan  8 09:46:09 NZDT 2008  Stephane Popinet <popinet at users.sf.net>
+Mon Jan  7 21:46:09 CET 2008  Stephane Popinet <popinet at users.sf.net>
   * RPM build fix (I. Vari)
   
   Removed %{?_smp_mflags} from make due to intermittent
   build errors on some SMP systems.
 
-Fri Dec 21 14:53:02 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Fri Dec 21 02:53:02 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * gfs_domain_cfl takes MAC velocities into account
 
-Thu Dec 20 23:45:56 NZDT 2007  Daniel Fuster <dfuster at gmail.com>
+Thu Dec 20 11:45:56 CET 2007  Daniel Fuster <dfuster at gmail.com>
   * gfsjoin201207
   Gfsjoin bug: fixed
 
-Wed Dec 19 17:44:14 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Wed Dec 19 05:44:14 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * New Cook Strait tides example
 
-Tue Dec 18 15:54:36 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Tue Dec 18 03:54:36 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Simplified regular expression in m4.awk
   
   Hopefully this will fix issues with POSIX regex etc...
 
-Thu Dec  6 09:42:42 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Wed Dec  5 21:42:42 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Updated debian package dependencies
   
   This should fix problems with recent Ubuntu versions (>= 7.10).
 
-Wed Dec  5 09:28:46 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Tue Dec  4 21:28:46 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for reading VariablePosition reference position
 
-Thu Nov 15 16:24:59 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Thu Nov 15 04:24:59 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * In VOF advection GfsAdvectionParams needs to be initialised properly
 
-Mon Nov 12 14:59:18 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Mon Nov 12 02:59:18 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * VOF advection should now work also with embedded solid boundaries
 
-Mon Nov 12 15:47:16 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Mon Nov 12 03:47:16 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Fixed package (install) dependencies
 
-Mon Nov 12 09:20:19 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Sun Nov 11 21:20:19 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for refinement of coarse VOF cells in parallel
   
   Thanks to Daniel Fuster for reporting the problem.
 
-Fri Nov  9 11:09:44 NZDT 2007  dfuster at gmail.com
+Thu Nov  8 23:09:44 CET 2007  dfuster at gmail.com
   * gfsjoin1108
   Some modifications are introduced to fix some problems which could appear with the older version
   Checking options are added
   Minor format changes
 
-Fri Nov  9 17:34:30 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Fri Nov  9 05:34:30 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * cell_init() is now a method of GfsDomain
   
   This simplifies applying a consistent initialisation when creating
@@ -1509,55 +2991,55 @@ Fri Nov  9 17:34:30 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
   occuring when refining interface cells between direction-sweeps during
   VOF advection.
 
-Tue Nov  6 12:56:45 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Tue Nov  6 00:56:45 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * New script gfsjoin (written by Daniel Fuster)
 
-Thu Nov  1 08:38:24 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Wed Oct 31 20:38:24 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for "classes" internal utility with MPI
 
-Tue Oct 30 15:52:48 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Tue Oct 30 03:52:48 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Added spec file for RPM packaging (thanks to Ivan Vari)
 
-Tue Oct 30 14:46:10 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Tue Oct 30 02:46:10 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for MPI version of gfs_domain_stats_balance()
 
-Wed Oct 24 11:26:43 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Wed Oct 24 00:26:43 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Boundary conditions are applied within Init events
   
   This is necessary e.g. when subsequent variables are derived from the gradients
   of previously initialised variables.
 
-Tue Oct 23 10:52:25 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Mon Oct 22 23:52:25 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Minimised round-off errors in face_fractions()
 
-Mon Oct 15 12:08:37 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Mon Oct 15 01:08:37 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Updated waves test case references
 
-Fri Oct 12 17:10:33 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Fri Oct 12 06:10:33 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for gfs_domain_boundary_locate()
   
   This is important only for VOF boundary conditions.
 
-Fri Oct 12 11:45:47 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Fri Oct 12 00:45:47 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Improved secant-bisection root-finding for implicit surfaces
 
-Wed Oct 10 13:57:32 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Wed Oct 10 02:57:32 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Refines cells which are too coarse for VOF advection
   
   Cells are too coarse when one of their neighboring cells is finer and
   contains and interface which will be advected in them at the next
   timestep.
 
-Thu Oct 11 12:50:12 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Thu Oct 11 01:50:12 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * New pre-defined implicit surface 'cube'
 
-Thu Oct 11 11:37:41 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Thu Oct 11 00:37:41 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Both GfsRefineSolid and GfsRefineSurface now work with implicit surfaces
 
-Wed Oct 10 12:06:14 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Wed Oct 10 01:06:14 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * New 'cfactor' parameter for GfsAdapt
 
-Tue Oct  9 13:45:45 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Tue Oct  9 02:45:45 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * New function gfs_domain_reshape()
   
   Quoting the doc: 
@@ -1565,61 +3047,61 @@ Tue Oct  9 13:45:45 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
   boundaries, recomputes merged cells and applies the boundary
   conditions for all variables."
 
-Fri Sep 28 16:05:17 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Fri Sep 28 06:05:17 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * gfs_cell_is_cut() is more clever when dealing with implicit surfaces
   
   This means in particular that GfsRefineSurface now also works with implicit 
   surfaces.
 
-Fri Oct  5 15:42:04 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Fri Oct  5 04:42:04 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Fix for compatibility with glib-1.2 series
 
-Wed Oct  3 09:48:45 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Tue Oct  2 22:48:45 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Miscellaneous doc/comments fixes
 
-Fri Sep 28 16:18:23 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Fri Sep 28 06:18:23 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * GfsNorm ignores values with a weight of zero for max norm
 
-Fri Sep 28 15:07:18 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Fri Sep 28 05:07:18 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for text macros within comments
 
-Fri Sep 28 14:59:13 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Fri Sep 28 04:59:13 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * New "w" option for GfsOutputErrorNorm
 
-Thu Sep 20 12:05:00 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Thu Sep 20 02:05:00 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Fixed incorrect label for capillary wave test case
 
-Tue Sep 18 12:26:19 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Tue Sep 18 02:26:19 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Added figure to capillary wave test case
 
-Tue Sep 18 10:48:09 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Tue Sep 18 00:48:09 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Updated Poisson test cases references
   
   The errors have been increased somewhat by using the more robust
   gradient_fine_coarse() implementation.
 
-Tue Sep 18 10:23:11 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Tue Sep 18 00:23:11 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Improved formatting of test suite doc header
 
-Tue Sep 18 10:04:51 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Tue Sep 18 00:04:51 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for gfs_domain_stats_balance() on serial parameter files
 
-Tue Sep 18 09:58:32 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Mon Sep 17 23:58:32 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Removed obsolete installation instructions from the tutorial
 
-Fri Sep 14 13:28:16 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Fri Sep 14 03:28:16 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * New option 'data' for gerris (when splitting or partitioning)
 
-Fri Sep 14 13:24:18 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Fri Sep 14 03:24:18 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * OutputBalance takes "pid" into account even for non-parallel simulations
 
-Fri Sep 14 11:39:03 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Fri Sep 14 01:39:03 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Fixed gfsview parameters for Boussinesq example
 
-Fri Sep 14 11:07:59 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Fri Sep 14 01:07:59 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Fix for domain splitting with periodic boundary conditions
 
-Fri Sep 14 10:10:22 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Fri Sep 14 00:10:22 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Domain traversal should now be deterministic
   
   ...as well as the rest of Gerris. This was not the case before because of the
@@ -1627,85 +3109,85 @@ Fri Sep 14 10:10:22 NZST 2007  Stephane Popinet <popinet at users.sf.net>
   graph nodes (i.e. the GfsBoxes). This was a pain for debugging and also caused
   boxes to "jump around" when visualising periodic domains with several boxes.
 
-Thu Sep 13 15:01:21 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Thu Sep 13 05:01:21 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * New "Id" and "Pid" derived variables
 
-Thu Sep 13 09:53:12 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Wed Sep 12 23:53:12 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Added clock start/stop to avoid harmless warnings
 
-Thu Sep 13 09:41:44 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Wed Sep 12 23:41:44 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Error message when trying to partition a domain composed of too few boxes
 
-Wed Sep 12 16:36:43 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Wed Sep 12 06:36:43 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for bad comment indentation in parameter files views
 
-Tue Sep 11 15:42:39 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Tue Sep 11 05:42:39 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for SourceControl divide by zero
 
-Fri Sep  7 16:33:50 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Fri Sep  7 06:33:50 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Minor maintenance (comments, valgrind stuff etc...)
 
-Sun Sep  9 09:46:51 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Sat Sep  8 23:46:51 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Automake 1.6 is OK (I guess 1.4 is not)
 
-Sat Sep  8 18:09:40 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Sat Sep  8 08:09:40 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Fixed boundary conditions for boussinesq example
   
   As pointed out by Phil Rubini, the previous boundary conditions were 
   misleading: they were equivalent to flow in a closed box rather than the
   expected vertical open channel.
 
-Sat Sep  8 15:11:44 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Sat Sep  8 05:11:44 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Fixed typo in oscillation.gfs
 
-Fri Sep  7 16:27:34 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Fri Sep  7 06:27:34 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Updated test cases references
 
-Fri Sep  7 13:12:54 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Fri Sep  7 03:12:54 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Test cases are run in the order they appear in the final report
 
-Fri Sep  7 12:04:09 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Fri Sep  7 02:04:09 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Added 'Define' to known classes
 
-Fri Sep  7 11:33:20 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Fri Sep  7 01:33:20 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Fixed formatting of gfs2tex parameter file view
 
-Fri Sep  7 10:57:16 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Fri Sep  7 00:57:16 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for uninitialised normal z-component in parabola_fit_init()
   
   ..or how 4 characters can lead to no end of trouble...
 
-Thu Sep  6 16:48:35 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Thu Sep  6 06:48:35 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Macro support needs to be turned on explicitly
   
   To avoid m4 problems when trying to apply macros to 
   binary simulation files.
 
-Thu Sep  6 14:07:39 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Thu Sep  6 04:07:39 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Fix for plotting style of reynolds test case
 
-Thu Sep  6 14:05:28 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Thu Sep  6 04:05:28 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * New inviscid droplet oscillation test case
 
-Wed Sep  5 18:07:29 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Wed Sep  5 08:07:29 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Updated spurious and capwave test cases
 
-Wed Sep  5 13:27:01 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Wed Sep  5 03:27:01 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * 'kinetic' test case uses a mollified volume fraction
 
-Wed Sep  5 12:30:59 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Wed Sep  5 02:30:59 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Macro support in parameter files
 
-Wed Sep  5 12:09:45 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Wed Sep  5 02:09:45 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Checks that automake version is >= 1.8
 
-Wed Sep  5 12:09:04 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Wed Sep  5 02:09:04 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Added assertions alpha > 0.
   
   Alpha (1/rho) is user defined and could take negative values if care is not
   taken.
 
-Thu Aug 30 14:08:31 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Thu Aug 30 04:08:31 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * gradient_fine_coarse() uses only directly neighbouring cells
   
   Using a third cell in the opposite direction, although nominally second-order
@@ -1713,31 +3195,31 @@ Thu Aug 30 14:08:31 NZST 2007  Stephane Popinet <popinet at users.sf.net>
   implementation does not seem to affect the convergence rates for the test cases
   in the test suite.
 
-Mon Sep  3 15:36:26 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Mon Sep  3 05:36:26 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Dependency fix for order of variables when writing simulation files
   
   Physical parameters can depend on defined variables. The incorrect order
   could prevent from restarting a simulation.
 
-Fri Aug 31 18:31:16 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Fri Aug 31 08:31:16 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Initial projection is skipped when restarting a simulation
 
-Fri Aug 31 14:42:54 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Fri Aug 31 04:42:54 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Constants can be expressions (not for all objects yet)
 
-Sun Aug 19 12:19:48 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Sun Aug 19 02:19:48 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * VariableFiltered was not taking the number of iterations into account
 
-Thu Aug 30 13:18:34 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Thu Aug 30 03:18:34 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Updated CSS stylesheet for consistency with wiki
 
-Wed Aug 29 11:33:14 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Wed Aug 29 01:33:14 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for adaptation with 'maxcells' set
 
-Wed Aug 29 10:59:38 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Wed Aug 29 00:59:38 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for memory corruption when trying to do "twisted" streamlines in 2D
 
-Wed Aug 22 12:58:07 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Wed Aug 22 02:58:07 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Major bug fix for VOF advection scheme
   
   The previous implementation did not take into account properly the
@@ -1745,190 +3227,190 @@ Wed Aug 22 12:58:07 NZST 2007  Stephane Popinet <popinet at users.sf.net>
   scheme. As a result the overall scheme had very poor mass
   conservation.
 
-Tue Jul 24 09:50:32 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Mon Jul 23 23:50:32 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * New test case for kinetic energy conservation in multiphase flows
 
-Thu May 24 15:10:02 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Thu May 24 05:10:02 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   UNDO: Refines cells which are too coarse for VOF advection
   
   Cells are too coarse when one of their neighboring cells is finer and
   contains and interface which will be advected in them at the next
   timestep.
 
-Thu May 24 15:10:02 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Thu May 24 05:10:02 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Refines cells which are too coarse for VOF advection
   
   Cells are too coarse when one of their neighboring cells is finer and
   contains and interface which will be advected in them at the next
   timestep.
 
-Wed Aug 22 16:14:41 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Wed Aug 22 06:14:41 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Updated spurious currents test case
 
-Wed Aug 22 15:26:02 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Wed Aug 22 05:26:02 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Updated 'shear' VOF advection test case
   
   Including test for mass conservation.
 
-Wed Aug 22 15:25:07 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Wed Aug 22 05:25:07 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * New VOF advection test case with adaptive refinement
 
-Wed Aug 22 12:43:09 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Wed Aug 22 02:43:09 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Ignore white spaces at the start of a parameter file
 
-Wed May 30 14:53:30 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Wed May 30 04:53:30 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Capillary wave test case uses a larger domain aspect ratio
   
   This improves the convergence significantly and the results
   compare well with those of Gerlach et al (added in the biblio).
 
-Wed May 23 16:36:26 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Wed May 23 06:36:26 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Face curvature does not use vof-weighted averaging anymore
 
-Wed Aug 15 17:06:45 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Wed Aug 15 07:06:45 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Automated darcs versioning ignores changes in the doc/ directory
 
-Fri May 25 12:28:28 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Fri May 25 02:28:28 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Kmax values for "nearly empty" interfacial cells are filtered
 
-Wed May 23 12:41:23 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Wed May 23 02:41:23 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * VariableCurvature optionally computes the maximum curvature
 
-Tue May 22 13:28:48 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Tue May 22 03:28:48 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Cleanup of HF curvature calculation
 
-Tue May 22 10:53:44 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Tue May 22 00:53:44 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Several improvements to height-function curvature calculation
   
   - Interface positions are taken into account only if they are far enough apart.
   - Nearest neighbour interpolation is used before resorting to facet-fitting.
   - Various options for circle-fitting and paraboloids of different degrees etc...
 
-Thu May 10 11:59:46 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Thu May 10 01:59:46 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Paraboloid fitting for curvature calculation in 3D
 
-Sat May  5 13:53:43 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Sat May  5 03:53:43 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Parabola fitting uses normal direction and local interface position
 
-Thu May  3 09:43:42 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Wed May  2 23:43:42 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Parabola fitting for gfs_height_curvature()
 
-Mon Apr 30 22:15:19 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Mon Apr 30 12:15:19 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * More robust implementation of gfs_height_curvature()
   
   Tries all directions of integration (based on normal orientation) rather than
   only the first guess.
 
-Sun Aug 12 19:31:36 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Sun Aug 12 09:31:36 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Fix for ffmpeg options and mktemp in ppm2mpeg
   
   Newer ffmpeg versions seem to have stricter syntax for the bitrate.
   
   Also mktemp does not seem to accept the "-t" option on all systems.
 
-Sat Jul 28 19:26:30 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Sat Jul 28 09:26:30 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * BcNavier for Navier slip condition
 
-Thu Jul 26 14:02:05 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Thu Jul 26 04:02:05 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Explicit message when trying to use implicit surfaces with RefineSolid
 
-Tue Aug  7 17:06:21 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Tue Aug  7 07:06:21 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Fixed comment formatting for logo example
 
-Tue Aug  7 17:03:38 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Tue Aug  7 07:03:38 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Testing framework now depends on bash
   
   So that we can use the "set -o pipefail" option to be sure to capture all
   errors when running a test command which is made of independent piped 
   commands (e.g. "gerris2D logo.gfs | gfsview2D logo.gfv").
 
-Thu Aug  2 15:32:28 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Thu Aug  2 05:32:28 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Improved error checking for ppm2mpeg
 
-Fri Jul  6 00:58:23 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Thu Jul  5 14:58:23 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Fix for corner case in face_bilinear()
 
-Sat Jun  9 22:05:22 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Sat Jun  9 12:05:22 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * New object GfsSourceViscosityExplicit
 
-Wed May 23 14:42:52 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Wed May 23 04:42:52 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for marginal case in myc (3D version)
 
-Wed May 23 11:18:42 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Wed May 23 01:18:42 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * GfsFunction does not use variable index anymore
   
   The index of a variable can vary during the simulation. Use the
   variable's address instead.
 
-Tue May 22 10:53:05 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Tue May 22 00:53:05 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Fix for degenerate case in gfs_domain_remove_droplets
 
-Sun May 20 21:51:55 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Sun May 20 11:51:55 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * G_MAXDOUBLE values are ignored by gfs_norm_add() and gts_range_add_value()
 
-Fri Apr 27 10:35:25 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Fri Apr 27 00:35:25 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Fix for inconsistent momentum diffusion
   
   When using SourceDiffusion for variable density flows
   (thanks to Shahriar Afkhami for reporting this).
 
-Fri Apr 27 09:58:03 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Thu Apr 26 23:58:03 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * New exported function gfs_multilevel_params_stats_write()
 
-Thu Apr 26 12:57:34 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Thu Apr 26 02:57:34 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Reformatted bibtex reference
 
-Wed Apr 25 10:21:24 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Wed Apr 25 00:21:24 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * More detailed versioning of test cases summary
 
-Wed Apr 25 10:15:42 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Wed Apr 25 00:15:42 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for GfsSurface transformations
 
-Tue Apr 24 19:09:50 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Tue Apr 24 09:09:50 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Moved 'shear' example to test cases
 
-Tue Apr 24 13:35:07 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Tue Apr 24 03:35:07 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Fix for gfs2doc when used on test cases
 
-Tue Apr 24 13:02:06 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Tue Apr 24 03:02:06 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Updated examples to use implicit surfaces
 
-Tue Apr 24 12:56:18 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Tue Apr 24 02:56:18 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Configure checks for linker flags required for module compilation
   
   This should fix issues on the various versions of Mac OSX.
 
-Tue Apr 24 18:48:25 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Tue Apr 24 08:48:25 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Rotations for GfsSurface are defined only via principal axis
 
-Tue Apr 24 11:09:40 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Tue Apr 24 01:09:40 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for Fedora tarball
 
-Mon Apr 23 19:10:49 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Mon Apr 23 09:10:49 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Minor bug fixes
 
-Fri Apr 20 17:47:10 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Fri Apr 20 07:47:10 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for expression parsing
 
-Fri Apr 20 17:35:50 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Fri Apr 20 07:35:50 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Updated wave tests to use implicit surfaces
 
-Fri Apr 20 16:53:56 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Fri Apr 20 06:53:56 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * New function gfs_surface_segment_normal()
 
-Fri Apr 20 16:53:29 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Fri Apr 20 06:53:29 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * New predefined spatial function 'sphere()'
 
-Fri Apr 20 15:44:55 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Fri Apr 20 05:44:55 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Updated tests with new implicit surfaces
 
-Fri Apr 20 15:44:00 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Fri Apr 20 05:44:00 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for "flattened" surfaces in RefineSurface
 
-Fri Apr 20 13:45:51 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Fri Apr 20 03:45:51 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Secant/bisection root-finding for implicit surfaces
 
-Wed Apr 18 17:39:26 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Wed Apr 18 07:39:26 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Solid boundaries can be defined using implicit surfaces
   
   # a cylinder of radius 0.0625
@@ -1936,45 +3418,45 @@ Wed Apr 18 17:39:26 NZST 2007  Stephane Popinet <popinet at users.sf.net>
   
   This can also be used to define volume fractions (using GfsInitFraction).
 
-Fri Apr 20 10:28:39 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Fri Apr 20 00:28:39 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Docs are not included in the distribution tarball anymore
 
-Tue Apr 17 12:17:48 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Tue Apr 17 02:17:48 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * All surfaces are now defined using a new GfsSurface object
   
   Note that this is a new object, the previous "GfsSurface" has been replaced with
   "GfsSolid".
 
-Mon Apr 16 11:29:55 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Mon Apr 16 01:29:55 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Detailed versioning based on darcs
 
-Mon Apr 16 11:08:28 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Mon Apr 16 01:08:28 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * darcs2dist checks that the tarball builds properly
 
-Mon Apr 16 11:07:10 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Mon Apr 16 01:07:10 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Added missing desktop files to tarball distribution
 
-Fri Apr 13 17:56:32 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Fri Apr 13 07:56:32 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * GfsSurface allows transformations of the input GTS surface
 
-Fri Apr 13 17:46:36 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Fri Apr 13 07:46:36 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * New GfsSurface class replaces GtsSurfaceFile and GtsSurface
   
   The GtsSurfaceFile keyword is still supported, however the GtsSurface keyword is
   not and should be replaced by "GfsSurface {}" in old simulation files.
 
-Fri Apr 13 14:00:20 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Fri Apr 13 04:00:20 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * New tool gfs2gfs to convert old simulations to the current format
 
-Fri Apr 13 13:00:37 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Fri Apr 13 03:00:37 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * First parameter block of GfsEvent is now optional
   
   Provided it is not followed by another parameter block.
 
-Thu Apr 12 14:33:04 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Thu Apr 12 04:33:04 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * curvature_coarse_fine() did not work when using a VariableDistance
 
-Thu Apr 12 12:02:04 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Thu Apr 12 02:02:04 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Simplified layered (2D3) GfsOcean implementation
   
   A first step towards a full 3D (non-layered) ocean model.
@@ -1983,208 +3465,208 @@ Thu Apr 12 12:02:04 NZST 2007  Stephane Popinet <popinet at users.sf.net>
   should be used instead (particularly for Flather BCs in parameter
   files).
 
-Thu Apr 12 11:42:54 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Thu Apr 12 01:42:54 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Updated nz test case
 
-Thu Apr 12 10:08:55 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Thu Apr 12 00:08:55 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Updated circle/refined test case for new fine/coarse gradient calculation
 
-Wed Apr 11 17:23:17 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Wed Apr 11 07:23:17 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Changed fine_coarse gradient calculation
   
   Fine cells on the left-hand-side of the fine-coarse boundary are taken
   into account only if they are not mixed. This is to ensure the
   stability of the GfsOcean model (the nz test case).
 
-Wed Apr 11 17:20:53 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Wed Apr 11 07:20:53 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * New adaptive coastally-trapped wave test case
 
-Wed Apr 11 17:19:25 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Wed Apr 11 07:19:25 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * New gravity waves in Cook strait test case
 
-Thu Apr  5 13:45:14 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Thu Apr  5 03:45:14 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Simplified Poisson coefficients calculation
 
-Thu Mar 29 12:45:42 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Thu Mar 29 02:45:42 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for gfs_domain_traverse_cut_2D()
 
-Thu Mar 29 11:20:41 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Thu Mar 29 01:20:41 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Merged advection fluxes redistribution is done differently
   
   This mitigates the appearance of negative values for positive tracers near
   solid boundaries.
 
-Tue Mar 27 16:16:21 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Tue Mar 27 06:16:21 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for non-initialised fractions in GfsOcean
 
-Tue Mar 27 12:24:42 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Tue Mar 27 02:24:42 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * New derived variables for surface fractions
 
-Tue Mar 27 12:23:04 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Tue Mar 27 02:23:04 CEST 2007  Stephane Popinet <popinet at users.sf.net>
   * Adaptivity along solid boundaries should now work (but not for 2D3 yet)
 
-Fri Mar 23 09:28:08 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Thu Mar 22 22:28:08 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Added check for positiveness of solid->s[0]
 
-Fri Mar 23 09:16:55 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Thu Mar 22 22:16:55 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * ftt_cell_locate() works for 2D3
 
-Tue Mar 20 13:06:56 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Tue Mar 20 02:06:56 CET 2007  Stephane Popinet <popinet at users.sf.net>
   UNDO: Source terms for non-advected variables are taken into account
 
-Tue Mar 20 13:06:56 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Tue Mar 20 02:06:56 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Source terms for non-advected variables are taken into account
 
-Tue Mar 20 12:57:58 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Tue Mar 20 01:57:58 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Improved error messages for Cartesian grid interpolation
 
-Mon Mar 19 12:39:13 NZST 2007  Cedric Penard <cedric.penard at ifremer.fr>
+Mon Mar 19 01:39:13 CET 2007  Cedric Penard <cedric.penard at ifremer.fr>
   * Cartesian functions
 
-Mon Mar 19 17:07:37 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Mon Mar 19 06:07:37 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * gfs_plane_center() works with any normal
   
   Not just with normals in the positive quadrant.
 
-Mon Mar 19 17:05:45 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Mon Mar 19 06:05:45 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * New functions gfs_vof_plane_facet() and gfs_vof_plane_center()
 
-Sun Mar 18 12:18:19 NZST 2007  Stephane Popinet <popinet at users.sf.net>
+Sun Mar 18 01:18:19 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Simplified circular wave test case (using GfsGlobal)
 
-Fri Mar 16 17:13:03 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Fri Mar 16 05:13:03 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * "Permanent" cells cannot be coarsened
   
   At the moment this is used to prevent coarsening of the initial
   embedded solid surface: a first step towards adaptivity of embedded
   solid surfaces.
 
-Fri Mar 16 15:03:01 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Fri Mar 16 03:03:01 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Special 2D3 case for interpolate_1D1 upwinding
 
-Fri Mar 16 14:32:20 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Fri Mar 16 02:32:20 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Initial timestep is set to zero (not one)
 
-Fri Mar 16 14:31:31 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Fri Mar 16 02:31:31 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Small fix for GfsCartesianGrid
 
-Thu Mar 15 16:14:21 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Thu Mar 15 04:14:21 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * New "twod" option for GfsRefineSurface
 
-Thu Mar 15 11:51:11 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Wed Mar 14 23:51:11 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Merged cells work for 2D3
 
-Thu Mar 15 11:47:58 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Wed Mar 14 23:47:58 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Small cells cannot be close to boundaries
 
-Thu Mar 15 11:03:13 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Wed Mar 14 23:03:13 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * New derived variable "dt" (timestep)
 
-Wed Mar 14 17:21:29 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Wed Mar 14 05:21:29 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * GfsOcean uses new variables "HU" and "HV" to store the barotropic velocity field
   
   This simplifies the implementation of Flather boundary conditions.
 
-Tue Mar 13 16:18:40 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Tue Mar 13 04:18:40 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Cleanup of GfsCartesianGrid
 
-Tue Mar 13 15:45:54 NZDT 2007  Cedric Penard <cedric.penard at ifremer.fr>
+Tue Mar 13 03:45:54 CET 2007  Cedric Penard <cedric.penard at ifremer.fr>
   * Fix for merge with stable branch
 
-Tue Mar 13 14:01:28 NZDT 2007  C[_\c3_][_\a9_]dric P[_\c3_][_\a9_]nard <cedric.penard at ifremer.fr>
+Tue Mar 13 02:01:28 CET 2007  C[_\c3_][_\a9_]dric P[_\c3_][_\a9_]nard <cedric.penard at ifremer.fr>
   * New object GfsCartesianGrid
 
-Tue Mar 13 15:25:43 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Tue Mar 13 03:25:43 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Updated couette.gfs
   
   Comments in functions must now use the C format ('/*' not '#').
 
-Fri Mar  9 16:37:42 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Fri Mar  9 04:37:42 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Further bug fixing for comments in GfsFunction expressions
 
-Fri Mar  9 10:00:43 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Thu Mar  8 22:00:43 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Updated examples doc
 
-Thu Mar  8 16:54:54 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Thu Mar  8 04:54:54 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for Dirichlet BC for VOF tracers
 
-Thu Mar  8 10:04:53 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Wed Mar  7 22:04:53 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * GfsVariablePosition takes an optional 'ref' argument
 
-Mon Mar  5 11:45:42 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Sun Mar  4 23:45:42 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Updated Rayleigh-Taylor example
 
-Sun Mar  4 21:03:24 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Sun Mar  4 09:03:24 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Fix for reseting 'status' when computing solid fractions
 
-Sun Mar  4 21:02:30 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Sun Mar  4 09:02:30 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Init events are turned into standard events when specifying 'step'
 
-Sun Mar  4 21:01:33 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Sun Mar  4 09:01:33 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Updated shear example
 
-Sat Dec  2 19:33:35 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Sat Dec  2 07:33:35 CET 2006  Stephane Popinet <popinet at users.sf.net>
   UNDO: Init events are also realised at half timesteps
 
-Fri Mar  2 14:51:18 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Fri Mar  2 02:51:18 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Fixed dependencies for gfsclasses.py
 
-Fri Mar  2 14:33:12 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Fri Mar  2 02:33:12 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Cleanup of Couette flow test case
 
-Fri Mar  2 14:29:57 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Fri Mar  2 02:29:57 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Fix for face interpolation of diffusion coefficients
 
-Fri Mar  2 14:25:30 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Fri Mar  2 02:25:30 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Unified script/code treatment for GfsGlobal, GfsEventScript and GfsOutput
   
   This fixes a bug in GfsOutput and GfsEventScript where "#!" were
   treated as comments.
 
-Fri Mar  2 09:14:32 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Thu Mar  1 21:14:32 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Debian package recommends various bits and bobs
 
-Fri Mar  2 09:10:36 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Thu Mar  1 21:10:36 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Updated surface tension test cases
 
-Fri Mar  2 16:42:49 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Fri Mar  2 04:42:49 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Added Gerris logo example
 
-Thu Mar  1 16:53:23 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Thu Mar  1 04:53:23 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Fixed face_bc() for GfsBcDirichlet
 
-Thu Mar  1 09:54:14 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Wed Feb 28 21:54:14 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * VOF normal is computed using "myc" in 2D (thanks to Ruben Scardovelli)
 
-Wed Feb 28 16:33:59 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Wed Feb 28 04:33:59 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Updated test cases
 
-Wed Feb 28 16:32:00 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Wed Feb 28 04:32:00 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Temporary bug fix for GfsEventStop
   
   For more "complex" variables (e.g. VariableTracerVOF) EventStop will
   not work properly if adaptivity is used. There is no simple solution
   to this problem.
 
-Wed Feb 28 16:29:55 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Wed Feb 28 04:29:55 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Added icons for mime types
 
-Tue Feb 27 15:15:31 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Tue Feb 27 03:15:31 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Fix for merge with CSF branch
 
-Tue Feb 27 14:59:13 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Tue Feb 27 02:59:13 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Added tolerance to avoid "missed" synchronised events
 
-Tue Feb 27 14:56:33 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Tue Feb 27 02:56:33 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Fix for overflow exception
 
-Thu Feb 22 10:34:27 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Wed Feb 21 22:34:27 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Updated gfs_classes()
 
-Mon Feb 12 14:46:56 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Mon Feb 12 02:46:56 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Mixed Youngs-Centered VOF normal calculation
 
-Fri Feb  9 17:24:41 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Fri Feb  9 05:24:41 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Symmetry boundary conditions for VOF
   
   These are approximate only, in particular the boundary conditions for
@@ -2194,39 +3676,39 @@ Fri Feb  9 17:24:41 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
   Also, not sure what the symmetry conditions actually do when combined
   with complex solid boundaries.
 
-Fri Feb  9 13:54:16 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Fri Feb  9 01:54:16 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for periodic boundary conditions
 
-Wed Feb  7 17:00:23 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Wed Feb  7 05:00:23 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Fix for small VOF fragments in vof_fine_coarse()
 
-Wed Jan 31 11:42:48 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Tue Jan 30 23:42:48 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Simplified and more robust Youngs stencil routine
 
-Tue Jan 30 16:59:30 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Tue Jan 30 04:59:30 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Removed obsolete AdaptNotBox stuff
 
-Sun Jan 28 21:02:01 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Sun Jan 28 09:02:01 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * VOF Tracers are now defined using GfsVariableTracerVOF
   
   Normal directions and alpha are pre-computed and stored together with the VOF 
   fraction.
 
-Sat Jan 27 10:33:46 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Fri Jan 26 22:33:46 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Stability criterion for gravity waves only takes into account interface cells
 
-Mon Dec 11 14:54:57 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Mon Dec 11 02:54:57 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * VariableCurvature uses either height-function method or levelset
   
   According to the arguments (i.e. the second argument specifies a 
   VariableTracer or a VariableDistance).
 
-Wed Dec  6 15:32:16 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Wed Dec  6 03:32:16 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * New object GfsVariablePosition
   
   For implementation of "reduced gravity".
 
-Sun Aug 13 19:34:40 NZST 2006  Stephane Popinet <popinet at users.sf.net>
+Sun Aug 13 09:34:40 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * Periodic boundary conditions do not use connectivity
   
   This made calculating geometric relationships difficult (e.g. distance between
@@ -2237,97 +3719,97 @@ Sun Aug 13 19:34:40 NZST 2006  Stephane Popinet <popinet at users.sf.net>
   This should fix the bug when using the diffusion solver with embedded solid 
   boundaries combined with periodic boundary conditions.
 
-Mon Aug 14 11:55:46 NZST 2006  Stephane Popinet <popinet at users.sf.net>
+Mon Aug 14 01:55:46 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * New function gfs_domain_filter()
 
-Sat Apr 22 14:07:37 NZST 2006  Stephane Popinet <popinet at users.sf.net>
+Sat Apr 22 04:07:37 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * New object GfsEventSumDirection
 
-Thu Feb 22 10:44:09 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Wed Feb 21 22:44:09 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * gfs_simulation_adapt() does not take a "stats" parameter anymore
 
-Tue Feb 13 16:22:44 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Tue Feb 13 04:22:44 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Removed warning for interpolation of GTS files in functions
 
-Thu Feb  1 10:27:33 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Wed Jan 31 22:27:33 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Merged advection fluxes were not correctly weighted
   
   For solid boundaries with a variable resolution.
 
-Sun Jan 28 21:11:17 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Sun Jan 28 09:11:17 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Updated SourceTensionCSS to reflect new staggered timestepping of tracers
 
-Sun Jan 28 20:52:57 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Sun Jan 28 08:52:57 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Initialisation of simulation is done using gfs_simulation_init()
 
-Sun Jan 21 18:48:29 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Sun Jan 21 06:48:29 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Optimised implementation of ftt_cell_locate()
 
-Sat Dec  2 19:33:35 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Sat Dec  2 07:33:35 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Init events are also realised at half timesteps
 
-Fri Jan 19 16:53:31 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Fri Jan 19 04:53:31 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * VOF works (as in "does not crash") with embedded solid boundaries
 
-Fri Jan 19 10:42:07 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Thu Jan 18 22:42:07 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * New gravity wave test case
 
-Fri Jan 19 09:32:43 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Thu Jan 18 21:32:43 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Updated capillary wave test cases
 
-Fri Jan 19 09:28:36 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Thu Jan 18 21:28:36 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Tracers are now defined at time n+1/2
   
   The resulting "leap-frog" time integration allows to recover second-order 
   accuracy for variable-density and surface-tension-driven flows.
 
-Thu Jan 18 10:47:30 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Wed Jan 17 22:47:30 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Fix for face coordinates calculation in GfsFunction
 
-Fri Dec 22 17:19:58 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Fri Dec 22 05:19:58 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * New test case for capillary wave with fluids of different densities
 
-Tue Dec 19 08:54:38 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Mon Dec 18 20:54:38 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * gfs_vof_facet() could fail for degenerate cases
 
-Tue Dec 19 08:52:43 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Mon Dec 18 20:52:43 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Changed the format used by gfs_write_mac_velocity() to gnuplot
 
-Tue Dec 19 08:48:40 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Mon Dec 18 20:48:40 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Default CFL for VOF advection has been set to 0.45
   
   To have some margin. Also a warning has been added in case the true
   CFL is larger than 0.5 (when doing the VOF advection proper).
 
-Thu Dec 14 14:30:56 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Thu Dec 14 02:30:56 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Density (and viscosity) is computed using face-interpolated volume fraction values
   
   This uses the new gfs_function_face_value(). Large density ratio flows
   can now be computed correctly. Needs further testing.
 
-Thu Dec 14 16:19:10 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Thu Dec 14 04:19:10 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Updated Rayleigh-Taylor example
   
   Now it really works, thanks to the new density calculation. The results
   compare well to other simulations (Surfer and Marker code results in my
   thesis).
 
-Thu Dec 14 13:03:31 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Thu Dec 14 01:03:31 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * gfs_function_face_value() uses the face-interpolated values of variables
 
-Mon Dec 11 15:22:30 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Mon Dec 11 03:22:30 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Added description for VariableDistance
 
-Mon Dec 11 15:03:53 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Mon Dec 11 03:03:53 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Fixed constant for stability constraint of surface tension
 
-Wed Dec  6 13:20:18 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Wed Dec  6 01:20:18 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Functions to compute cell/plane intersections have been moved from GfsView
   
   They are used to compute 3D VOF facets.
   Note also that the interface of gfs_vof_facet() has changed.
 
-Tue Dec  5 12:26:07 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Tue Dec  5 00:26:07 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * "Non-hydrostatic pressure" implementation
   
   This is useful for two-phase flows with a (flattish) interface, variable 
@@ -2336,449 +3818,449 @@ Tue Dec  5 12:26:07 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
   using the same technique as for surface tension. This guarantees an accurate 
   solution free of spurious (gravity) currents.
 
-Fri Dec  1 15:35:09 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Fri Dec  1 03:35:09 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for VOF boundary conditions
 
-Tue Nov 28 12:30:19 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Tue Nov 28 00:30:19 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * VOF plane is defined in full cells
   
   This prevents floating point exceptions when assigning undefined values to VOF
   plane variables.
 
-Tue Nov 28 12:28:36 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Tue Nov 28 00:28:36 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Code cleanup for tension coefficients
 
-Tue Nov 28 12:24:16 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Tue Nov 28 00:24:16 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Generic boundary conditions cannot be applied for VOF fractions
   
   A special case treatment has been added for symmetry and Dirichlet conditions.
 
-Fri Nov 24 16:13:31 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Fri Nov 24 04:13:31 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Multiple SourceTension terms are permitted
   
   For example a combination of surface tension and "reduced gravity".
 
-Thu Nov 23 14:56:30 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Thu Nov 23 02:56:30 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * SourceTension can be used to implement "reduced gravity"
 
-Thu Nov 23 10:54:20 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Wed Nov 22 22:54:20 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Maximum CFL is 0.5 for VOF
 
-Tue Nov  7 18:54:44 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Tue Nov  7 06:54:44 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * More robust algorithm for computation of local interface height
 
-Fri Nov  3 17:31:30 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Fri Nov  3 05:31:30 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Height-Function curvature calculation should now work in 3D
   
   and also on 3D adaptive grids.
 
-Fri Nov  3 13:26:59 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Fri Nov  3 01:26:59 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Limit on the size of the HF-curvature calculation "stencil"
 
-Thu Nov  2 17:27:08 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Thu Nov  2 05:27:08 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * 3D implementation of gfs_youngs_normal()
 
-Thu Nov  2 17:25:01 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Thu Nov  2 05:25:01 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * "Exact" implementation of gfs_plane_alpha() in 3D
   
   This replaces the Newton iterations version. It is much more accurate and
   hence ensures better volume conservation.
 
-Thu Nov  2 11:39:24 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Wed Nov  1 23:39:24 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Singular 3D VOF volume calculations use the 2D algorithm
   
   This guarantees exact volume representation.
 
-Wed Nov  1 15:24:50 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Wed Nov  1 03:24:50 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for VOF advection with periodic boundary conditions
 
-Mon Oct 23 18:00:48 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Mon Oct 23 07:00:48 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * Added missing variable descriptions
 
-Sun Oct 22 22:06:34 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Sun Oct 22 11:06:34 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * Important bug fix for boundary conditions on alpha
 
-Sat Oct 21 17:58:40 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Sat Oct 21 06:58:40 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * Fixed VOF-plane calculation for isolated interface fragments
   
   The zero-norm of the singular interface normal in this case was causing NaN
   problems.
 
-Fri Oct 20 17:00:04 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Fri Oct 20 06:00:04 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * Fixed VOF advection boundary conditions
 
-Fri Oct 20 16:59:51 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Fri Oct 20 05:59:51 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * Capillary wave test case took too long to run with 7 levels
 
-Fri Oct 20 14:40:04 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Fri Oct 20 03:40:04 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * Figure for PLIC height calculation
 
-Fri Oct 20 14:39:50 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Fri Oct 20 03:39:50 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * Updated spurious currents test case
 
-Thu Oct 19 17:16:31 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Thu Oct 19 06:16:31 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * Added warnings when HF-curvature fails
 
-Thu Oct 19 17:16:12 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Thu Oct 19 06:16:12 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * SourceTension and SourceTensionCSS are derived from a new SourceTensionGeneric object
   
   Also SourceTensionCSS "works" again thanks to the new function 
   gfs_youngs_gradient (actually a renamed version of the old 
   gfs_youngs_normal implementation).
 
-Wed Oct 18 17:27:32 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Wed Oct 18 06:27:32 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * GfsSourceTension takes an extra 'sigma' argument
 
-Wed Oct 18 17:02:13 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Wed Oct 18 06:02:13 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * Updated capillary wave test case
 
-Wed Oct 18 16:58:11 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Wed Oct 18 05:58:11 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * Cleanup of HF-curvature implementation
 
-Wed Oct 18 11:50:16 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Wed Oct 18 00:50:16 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * HF curvature calculation works on adaptive meshes!
   
   But in 2D only for the moment. This patch also contains various (unused) 
   routines implementing other ways of computing the curvature (based on VOF 
   interface reconstructions, mean-square parabola and circle fit  etc...)
 
-Sun Oct  8 21:26:16 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Sun Oct  8 10:26:16 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * New function gfs_vof_interpolate()
 
-Fri Oct  6 15:09:51 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Fri Oct  6 04:09:51 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * New functions gfs_fit_curvature() and gfs_shahriar_curvature()
 
-Fri Oct  6 15:07:56 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Fri Oct  6 04:07:56 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * New function gfs_domain_boundary_locate()
 
-Tue Aug 15 21:44:55 NZST 2006  Stephane Popinet <popinet at users.sf.net>
+Tue Aug 15 11:44:55 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * VariableCurvature uses height method rather than levelset
 
-Tue Aug 15 21:14:43 NZST 2006  Stephane Popinet <popinet at users.sf.net>
+Tue Aug 15 11:14:43 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * New function gfs_height_curvature()
   
   Only works in 2D and on non-refined grids for the moment.
 
-Tue Aug 15 21:13:48 NZST 2006  Stephane Popinet <popinet at users.sf.net>
+Tue Aug 15 11:13:48 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * Normal computation with the "column" method
 
-Tue Aug 15 21:02:12 NZST 2006  Stephane Popinet <popinet at users.sf.net>
+Tue Aug 15 11:02:12 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * Volume fraction weighting of surface tension term
 
-Tue Aug 15 20:58:51 NZST 2006  Stephane Popinet <popinet at users.sf.net>
+Tue Aug 15 10:58:51 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * Density is taken into account for surface tension term
 
-Mon Aug 14 13:05:09 NZST 2006  Stephane Popinet <popinet at users.sf.net>
+Mon Aug 14 03:05:09 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * New VOF advection implementation
   
   Works with variable interface resolution but not with solid boundaries yet.
   Uses "Eulerian" rather than "Lagrangian" PLIC advection.
 
-Mon Aug 14 12:56:01 NZST 2006  Stephane Popinet <popinet at users.sf.net>
+Mon Aug 14 02:56:01 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * GfsVariableCurvature has moved to levelset.c
 
-Mon Aug 14 12:54:30 NZST 2006  Stephane Popinet <popinet at users.sf.net>
+Mon Aug 14 02:54:30 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * Filtering of curvature along the interface
   
   For levelset curvature only and disabled by default.
 
-Mon Aug 14 12:15:29 NZST 2006  Stephane Popinet <popinet at users.sf.net>
+Mon Aug 14 02:15:29 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * New implementation of Youngs gradient
   
   Works on adaptive meshes but only in 2D for the moment.
 
-Mon Aug 14 12:11:29 NZST 2006  Stephane Popinet <popinet at users.sf.net>
+Mon Aug 14 02:11:29 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * Updated stability criterion for surface tension
 
-Mon Aug 14 11:57:14 NZST 2006  Stephane Popinet <popinet at users.sf.net>
+Mon Aug 14 01:57:14 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * Tracer advection does not save "half" values anymore
 
-Tue May 23 18:23:43 NZST 2006  Stephane Popinet <popinet at users.sf.net>
+Tue May 23 08:23:43 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * gfs_line_alpha() uses explicit formula
   
   ... rather than Newton iterations.
 
-Wed Feb 22 06:06:05 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Tue Feb 21 18:06:05 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * VOF should work across refinement levels
   
   Also gfs_plane_volume() and gfs_plane_alpha() now do their own
   symmetries (i.e. do not require m.x, m.y and m.z to be positive
   anymore).
 
-Tue Feb 21 05:18:27 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Mon Feb 20 17:18:27 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Simplification of gfs_plane_volume()
 
-Mon Feb  6 02:08:32 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Sun Feb  5 14:08:32 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * CSF uses volume-fraction-weighted tension terms
 
-Sun Feb  5 14:32:49 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Sun Feb  5 02:32:49 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * VariableCurvature must be interpolated with care on adaptive mesh
 
-Sun Feb  5 14:29:25 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Sun Feb  5 02:29:25 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Sigma and theta have nothing to do in VariableCurvature
   
   ...they will be back in a latter version of SourceTension.
 
-Sun Feb  5 02:43:22 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Sat Feb  4 14:43:22 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Updated spurious current test case
 
-Sun Feb  5 02:38:44 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Sat Feb  4 14:38:44 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for VariableCurvature computation near boundaries
 
-Sat Feb  4 22:37:47 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Sat Feb  4 10:37:47 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * VariableDistance computes the distance function only locally
   
   i.e. in a neighbourhood of the interface just large enough for
   VariableCurvature.
 
-Sat Feb  4 22:34:43 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Sat Feb  4 10:34:43 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * New functions gfs_center_gradient_stencil() and gfs_interpolate_stencil()
 
-Fri Feb  3 16:26:15 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Fri Feb  3 04:26:15 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * For curvature estimation, normals are computed using simple gradients
   
   ...rather than Youngs gradients. This stabilises the surface tension,
   improves the spurious currents and it is simpler.
 
-Fri Feb  3 14:43:15 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Fri Feb  3 02:43:15 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Renamed VariableLevelSet as VariableDistance
 
-Fri Feb  3 14:15:29 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Fri Feb  3 02:15:29 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Back to semi-implicit surface tension for capillary wave test case
   
   Although the explicit scheme appeared to be more accurate it was just
   by chance (i.e. the error increased when the timestep decreased).
 
-Fri Feb  3 14:13:12 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Fri Feb  3 02:13:12 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * VariableCurvature is defined only on the interface
   
   It now is defined as the curvature of the piece of interface cutting
   the cell. If the cell is not cut by the interface it is set to
   G_MAXDOUBLE.
 
-Fri Feb  3 14:01:19 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Fri Feb  3 02:01:19 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * VOF-based levelset function computation is back
   
   It works well with the new curvature calculation.
 
-Thu Feb  2 06:37:13 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Wed Feb  1 18:37:13 CET 2006  Stephane Popinet <popinet at users.sf.net>
   UNDO: Levelset function is computed using the VOF-reconstructed interface
 
-Thu Feb  2 23:39:56 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Thu Feb  2 11:39:56 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Youngs-averaging of normal divergence was unstable in some cases
 
-Thu Feb  2 23:38:10 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Thu Feb  2 11:38:10 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * The distance function value was not always correct for cells cut by the isoline
 
-Thu Feb  2 00:11:25 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Wed Feb  1 12:11:25 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Control of "implicitness" of VariableCurvature
 
-Wed Feb  1 03:34:46 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Tue Jan 31 15:34:46 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * "Semi-implicit" scheme for VariableCurvature
 
-Mon Jan 30 22:46:30 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Mon Jan 30 10:46:30 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * VariableCurvature uses Youngs divergence
   
   Rather than gfs_center_gradient(). This improves the spurious currents slightly.
 
-Thu Feb  2 10:06:42 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Wed Feb  1 22:06:42 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Stability condition for surface tension was still too restrictive
 
-Thu Feb  2 06:37:13 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Wed Feb  1 18:37:13 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Levelset function is computed using the VOF-reconstructed interface
 
-Thu Feb  2 03:17:26 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Wed Feb  1 15:17:26 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Updated spurious and capwave test cases
 
-Thu Feb  2 00:16:06 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Wed Feb  1 12:16:06 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Stability constraint for surface tension was too restrictive
 
-Mon Jan 30 22:42:31 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Mon Jan 30 10:42:31 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * K8 smoothing kernel doesn't work
   
   Bubbles appear to be unstable for all smoothing lengths larger than twice the
   grid size. For these lengths K8 does not improve over the default vertex filter.
 
-Mon Jan 30 22:40:57 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Mon Jan 30 10:40:57 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * VariableFiltered uses K8 smoothing kernel
 
-Mon Jan 30 11:28:39 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Sun Jan 29 23:28:39 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Levelset sign was not computed properly
 
-Mon Jan 30 09:07:20 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Sun Jan 29 21:07:20 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * VariableLevelSet computes the levelset function
 
-Sun Jan 29 01:46:09 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Sat Jan 28 13:46:09 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Stability criterion for CSF surface tension
 
-Sun Jan 29 00:36:29 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Sat Jan 28 12:36:29 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Source terms have a new generic stability() method
 
-Sun Jan 29 00:32:11 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Sat Jan 28 12:32:11 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * CSF surface tension implementation
   
   This is the default. The old CSS implementation (2D only) is still available as
   SourceTensionCSS.
 
-Tue Feb 27 11:13:06 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Mon Feb 26 23:13:06 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Added missing html doc titles
 
-Thu Feb 22 17:22:22 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Thu Feb 22 05:22:22 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Added mime-types
 
-Tue Feb 13 16:23:32 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Tue Feb 13 04:23:32 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for mixed-cells output in gfs2oogl
 
-Wed Feb 21 13:20:19 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Wed Feb 21 01:20:19 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * darcs2dist creates 'versioned' snapshots
 
-Wed Feb 21 10:28:12 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Tue Feb 20 22:28:12 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * MacOSX does not like nested functions
   
   They were used to implement dx(), dy(), dz() in GfsFunction. They have been
   replaced by using ugly (but portable) global variables.
 
-Wed Feb 21 09:52:17 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Tue Feb 20 21:52:17 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Fixed labels in tutorial
 
-Wed Feb 21 09:51:54 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Tue Feb 20 21:51:54 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Fix for darcs2dist
 
-Wed Feb 21 09:51:05 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Tue Feb 20 21:51:05 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Updated source doc templates
 
-Tue Feb 20 16:15:30 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Tue Feb 20 04:15:30 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Bigger fonts and thicker lines for lid test figures
 
-Tue Feb 20 16:14:52 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Tue Feb 20 04:14:52 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Added anchor points for some sections of the tutorial
 
-Tue Feb 20 16:14:13 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Tue Feb 20 04:14:13 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Workaround for character encoding bug in hevea 1.08
 
-Tue Feb 20 16:12:43 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Tue Feb 20 04:12:43 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * FAQ is now in the wiki not in the source doc
 
-Tue Feb 20 11:18:18 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Mon Feb 19 23:18:18 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * GfsOutputAdaptStats works again
 
-Mon Feb 19 16:23:30 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Mon Feb 19 04:23:30 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Option for color names in tests documentation
 
-Mon Feb 19 10:25:24 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Sun Feb 18 22:25:24 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Parameter files in docs now link to "Object Hierarchy" wiki
 
-Fri Feb 16 15:55:50 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Fri Feb 16 03:55:50 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Uses hevea rather than latex2html to generate HTML docs
 
-Thu Feb 15 11:23:02 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Wed Feb 14 23:23:02 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Poisson test cases were not reliable due to race conditions in command pipes
 
-Thu Feb 15 11:20:59 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Wed Feb 14 23:20:59 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Much simplified GfsOutput command pipe implementation
 
-Wed Feb 14 17:22:58 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Wed Feb 14 05:22:58 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Fix for variables in POSIX shells (for test suite)
 
-Wed Feb 14 14:52:27 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Wed Feb 14 02:52:27 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Fix for getopt_long and unknown arguments
 
-Wed Feb 14 14:21:35 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Wed Feb 14 02:21:35 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Updated Rayleigh-Taylor example
 
-Wed Feb 14 14:18:07 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Wed Feb 14 02:18:07 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * New ppm2mpeg helper script (uses ffmpeg)
   
   ffmpeg is better than mjpegtools and simpler to install (debian packages are
   readily available).
 
-Wed Jan 31 12:01:41 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Wed Jan 31 00:01:41 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Python test script works with dash
 
-Tue Jan 30 11:34:50 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Mon Jan 29 23:34:50 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * New GfsGlobal object defines "global" functions
 
-Fri Jan 19 14:22:41 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Fri Jan 19 02:22:41 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * Improved gfs_domain_remove_droplets()
 
-Thu Jan 18 10:49:19 NZDT 2007  Stephane Popinet <popinet at users.sf.net>
+Wed Jan 17 22:49:19 CET 2007  Stephane Popinet <popinet at users.sf.net>
   * GfsAdaptNotBox is deprecated
 
-Tue Dec 19 16:29:27 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Tue Dec 19 04:29:27 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Thin cells filled with fluid could create an incorrect topology
 
-Tue Dec 19 13:51:59 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Tue Dec 19 01:51:59 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Replaced assertion with warning in solid fractions calculation
 
-Mon Dec 11 14:52:40 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Mon Dec 11 02:52:40 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * "levelmin" is taken into account only for coarsening the mesh
 
-Wed Dec  6 16:22:46 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Wed Dec  6 04:22:46 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Fixed Tangaroa example doc
 
-Wed Dec  6 16:21:25 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Wed Dec  6 04:21:25 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Default boundary conditions for velocity diffusion were not applied properly
 
-Tue Dec  5 11:46:04 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Mon Dec  4 23:46:04 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Added Tangaroa example
 
-Thu Nov 23 14:12:03 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Thu Nov 23 02:12:03 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Aborts if the Poisson solver fails to converge
 
-Fri Nov 24 16:08:42 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Fri Nov 24 04:08:42 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Fixed function inlining mess
 
-Fri Nov 24 10:22:12 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Thu Nov 23 22:22:12 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * glib.h is not needed if gts.h is already included
 
-Fri Nov 24 09:44:13 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Thu Nov 23 21:44:13 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Updated merging test case for new adaptive algorithm
 
-Thu Nov 23 10:40:56 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Wed Nov 22 22:40:56 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Added "hysteresis" to adaptive algorithm
   
   This prevents cells being created and destroyed in quick succession.
 
-Thu Nov 23 09:36:29 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Wed Nov 22 21:36:29 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Standard error should be used rather than standard output in the examples
 
-Thu Nov 23 09:31:53 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Wed Nov 22 21:31:53 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * GfsVariableResidual wasn't scaled properly
 
-Wed Nov 22 20:25:39 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Wed Nov 22 08:25:39 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Adaptive algorithm uses a simpler technique by default
   
   The "global optimisation" technique is overkill when "maxcells" is not set.
   Also, it does not allow for the simple "boolean" combination of several 
   criteria which is possible with the simple algorithm.
 
-Sat Nov  4 19:30:25 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Sat Nov  4 07:30:25 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Improved error messages for non-closed solid surfaces
 
-Thu Nov  2 15:15:01 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Thu Nov  2 03:15:01 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Creeping Couette flow does not need advection terms
 
-Thu Nov  2 11:42:27 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Wed Nov  1 23:42:27 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * bat2gts sets higher output precision
 
-Thu Nov  2 11:41:33 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Wed Nov  1 23:41:33 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * gfs2oogl can output all variables in mixed cells
   
   Not just P and Vorticity.
 
-Wed Oct 25 13:45:14 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Wed Oct 25 02:45:14 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * Thin cells are replaced either with fluid cells or solid cells
   
   They were replaced blindly by solid cells which was a very bad
   approximation in some cases.
 
-Wed Oct 25 11:41:50 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Wed Oct 25 00:41:50 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * Removed non-standard C++-style comments
 
-Sat Oct 21 16:45:54 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Sat Oct 21 05:45:54 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * Gerris abort generates an error.gfs dump (for post-mortem debugging)
 
-Thu Oct 19 16:34:35 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Thu Oct 19 05:34:35 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for GfsEventStop
   
   EventStop was using a temporary variable to store the previous timestep values.
@@ -2789,132 +4271,132 @@ Thu Oct 19 16:34:35 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
   
   This meant allowing variables with a NULL name i.e. hidden permanent variables.
 
-Wed Sep 27 03:35:10 NZST 2006  Stephane Popinet <popinet at users.sf.net>
+Tue Sep 26 17:35:10 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * Inlined functions are defined once in a separate file
 
-Thu Oct 19 10:34:09 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Wed Oct 18 23:34:09 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * Simplified Debian package dependencies (again)
 
-Wed Oct 18 11:23:56 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Wed Oct 18 00:23:56 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * Simplified Debian package dependencies
   
   To make them compatible with Ubuntu. It's a bit messy though as I am not sure
   what the issues are with binary compatibility of Ubuntu/Debian libraries etc...
 
-Sat Oct 14 20:18:41 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Sat Oct 14 09:18:41 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for OutputPPM for 2D GfsOcean
 
-Sun Aug 13 20:15:12 NZST 2006  Stephane Popinet <popinet at users.sf.net>
+Sun Aug 13 10:15:12 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for error handling in gfs_domain_read()
 
-Sat Aug 12 14:21:25 NZST 2006  Stephane Popinet <popinet at users.sf.net>
+Sat Aug 12 04:21:25 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * Removed DX support (use GfsView instead!)
 
-Thu Oct 12 10:06:30 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Wed Oct 11 23:06:30 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * Updated test cases references for new timestep calculation
 
-Thu Oct 12 10:05:08 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Wed Oct 11 23:05:08 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * Fixed timestep calculation for 'infinite' events
 
-Wed Oct 11 17:08:25 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Wed Oct 11 06:08:25 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * Fixed stupid timestep calculation (thanks to Chris Johnson for the bug report)
 
-Tue Oct 10 14:35:15 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Tue Oct 10 03:35:15 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * Increased tolerance for capillary wave test case
 
-Mon Oct  9 10:59:49 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Sun Oct  8 23:59:49 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * Updated test cases references
 
-Mon Oct  9 10:51:37 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Sun Oct  8 23:51:37 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * Z-moments need to be computed in 2D for solid force
 
-Fri Oct  6 13:21:18 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Fri Oct  6 02:21:18 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * Fixed autogen.sh for Mac OSX
 
-Fri Oct  6 13:00:31 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Fri Oct  6 02:00:31 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * Fixed dependencies for Debian snapshots
 
-Tue Aug  8 11:30:06 NZST 2006  Stephane Popinet <popinet at users.sf.net>
+Tue Aug  8 01:30:06 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * Set the default minimum of iterations for multilevel solvers to one
 
-Thu Aug  3 11:30:21 NZST 2006  Stephane Popinet <popinet at users.sf.net>
+Thu Aug  3 01:30:21 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * Fixed obsolete simulation file in FAQ
 
-Wed Jul 19 12:18:59 NZST 2006  Stephane Popinet <popinet at users.sf.net>
+Wed Jul 19 02:18:59 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * Configure was not working properly with empty "modules" directory
   
   This was a problem only for systems not supporting dynamic modules.
 
-Tue Jul 18 17:31:23 NZST 2006  Stephane Popinet <popinet at users.sf.net>
+Tue Jul 18 07:31:23 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * Advection update using averaged values for momentum in mixed cells was ignored
   
   This caused the channel test case to fail. Ultimately however this average value
   hack should not be used at all.
 
-Fri May 12 13:29:04 NZST 2006  Stephane Popinet <popinet at users.sf.net>
+Fri May 12 03:29:04 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * Quirk's merged fluxes are used for tracer advection rather than averaging
   
   They should be used also for momentum advection but this needs testing.
 
-Mon Jul  3 16:14:40 NZST 2006  Stephane Popinet <popinet at users.sf.net>
+Mon Jul  3 06:14:40 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * Check for ensuring that solid fractions are positive
   
   Round-off errors could cause the solid fractions to be a small negative value. This could cause problems for
   algorithms assuming (correctly) that volume fraction is always positive.
 
-Sun Jun 18 11:51:00 NZST 2006  Stephane Popinet <popinet at users.sf.net>
+Sun Jun 18 01:51:00 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * Unbuffered python for test cases (to force "realtime" status)
 
-Sun Jun 11 18:31:39 NZST 2006  Stephane Popinet <popinet at users.sf.net>
+Sun Jun 11 08:31:39 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * Variables have a new "description" field
 
-Sun Jun 11 16:35:55 NZST 2006  Stephane Popinet <popinet at users.sf.net>
+Sun Jun 11 06:35:55 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * DerivedVariable is now a proper object
   
   ... and also has a new "description" field.
 
-Sun May 28 19:12:03 NZST 2006  Stephane Popinet <popinet at users.sf.net>
+Sun May 28 09:12:03 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * More explicit message for systems which do not support functions
 
-Fri May 12 13:35:21 NZST 2006  Stephane Popinet <popinet at users.sf.net>
+Fri May 12 03:35:21 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * Coarse cells on the Poisson hierarchy with only one neighbor are "turned off"
   
   these cells could cause poor convergence of the Poisson solver (see the dumbell
   test case).
 
-Tue Apr 25 18:14:22 NZST 2006  Stephane Popinet <popinet at users.sf.net>
+Tue Apr 25 08:14:22 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * Added "dumbbell" Poisson test case
 
-Sat Apr 22 14:08:47 NZST 2006  Stephane Popinet <popinet at users.sf.net>
+Sat Apr 22 04:08:47 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * GfsFunction understands dx(), dy() and dz()
 
-Mon Jun 12 13:02:23 NZST 2006  Stephane Popinet <popinet at users.sf.net>
+Mon Jun 12 03:02:23 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * Missing script in lid test case
 
-Mon Apr  3 10:26:22 NZST 2006  Stephane Popinet <popinet at users.sf.net>
+Mon Apr  3 00:26:22 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   tagged release_0_9_2
 
-Mon Apr  3 10:25:13 NZST 2006  Stephane Popinet <popinet at users.sf.net>
+Mon Apr  3 00:25:13 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * Updated docs
 
-Fri Mar 31 12:02:06 NZST 2006  Stephane Popinet <popinet at users.sf.net>
+Fri Mar 31 02:02:06 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * Removed obsolete pdflatex doc stuff
 
-Thu Mar 30 17:40:12 NZST 2006  Stephane Popinet <popinet at users.sf.net>
+Thu Mar 30 07:40:12 CEST 2006  Stephane Popinet <popinet at users.sf.net>
   * Cells with solid volume fraction of 0 are removed
 
-Fri Mar 24 16:40:02 NZST 2006  Stephane Popinet <popinet at users.sf.net>
+Fri Mar 24 05:40:02 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for relaxation on lowest level
 
-Fri Mar 24 12:13:50 NZST 2006  Stephane Popinet <popinet at users.sf.net>
+Fri Mar 24 01:13:50 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Implicit Coriolis should now work with the Navier-Stokes solver
 
-Fri Mar 24 12:10:56 NZST 2006  Stephane Popinet <popinet at users.sf.net>
+Fri Mar 24 01:10:56 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * RefineDistance uses a lower-bound for the distance...
   
   ... rather than the distance from the center of the cell.
 
-Wed Mar 15 17:20:29 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Wed Mar 15 05:20:29 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Thin cells are removed
   
   "Thin" cells are topologically complex cut cells which lead to
@@ -2922,19 +4404,19 @@ Wed Mar 15 17:20:29 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
   cases the presence of these cells could lead to instabilities in the
   projection. In all cases they would lead to inaccurate velocities.
 
-Wed Mar 15 08:43:33 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Tue Mar 14 20:43:33 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Updated tests for modified initial approx projection
 
-Tue Mar 14 16:17:14 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Tue Mar 14 04:17:14 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * RefineSolid defines a new derived variable "SolidCurvature"
 
-Tue Mar 14 16:15:46 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Tue Mar 14 04:15:46 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * New function gfs_solid_is_thin()
 
-Tue Mar 14 16:12:21 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Tue Mar 14 04:12:21 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * New interface for gfs_domain_add_derived_variable()
 
-Tue Mar 14 16:05:06 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Tue Mar 14 04:05:06 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Fix for gradient computation at coarse/fine solid boundaries
   
   The previous version could use information from the wrong side of the
@@ -2943,35 +4425,35 @@ Tue Mar 14 16:05:06 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
   surface. New weighting and checks with solid surface fractions should
   now avoid this.
 
-Tue Mar 14 16:02:42 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Tue Mar 14 04:02:42 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Merged cells can be formed using children cells at coarse/fine interfaces
 
-Fri Mar 10 17:51:08 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Fri Mar 10 05:51:08 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Time step is set before the first projection
   
   Previously the scaling for the tolerance on the divergence of the
   first projection was based on a timestep of unity (i.e. usually much
   larger than the subsequent timesteps).
 
-Fri Mar 10 10:42:39 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Thu Mar  9 22:42:39 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Debian snapshot packages were not correctly versioned
 
-Wed Mar  8 17:37:00 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Wed Mar  8 05:37:00 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Leave "specks" alone
 
-Wed Mar  8 17:33:41 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Wed Mar  8 05:33:41 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Updated boundaries and channel tests for weighted-centered pressure-gradient
 
-Wed Mar  8 17:32:45 NZDT 2006  Stephane Popinet <s.popinet at niwa.co.nz>
+Wed Mar  8 05:32:45 CET 2006  Stephane Popinet <s.popinet at niwa.co.nz>
   * Approximate projection uses fraction-weighted average pressure gradients
   
   The previous unweighted averages were unstable for the "thin plate"
   test case which has been added to the test suite.
 
-Wed Mar  8 16:45:26 NZDT 2006  Stephane Popinet <s.popinet at niwa.co.nz>
+Wed Mar  8 04:45:26 CET 2006  Stephane Popinet <s.popinet at niwa.co.nz>
   * Topology was not computed correctly for solid fractions computation in 3D
 
-Sun Mar  5 20:59:59 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Sun Mar  5 08:59:59 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Fix for special cases when computing solid fractions
   
   Solid fractions of cells cut more than once by the surface were not 
@@ -2980,37 +4462,37 @@ Sun Mar  5 20:59:59 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
   
   These cells (rare) are now treated using a simple approximation.
 
-Wed Mar  8 16:26:27 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Wed Mar  8 04:26:27 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Removed obsolete "GtsInterface" stuff
 
-Fri Mar  3 10:26:11 NZDT 2006  Stephane Popinet <s.popinet at niwa.co.nz>
+Thu Mar  2 22:26:11 CET 2006  Stephane Popinet <s.popinet at niwa.co.nz>
   * Updated test cases for changes in projection
 
-Fri Mar  3 12:12:59 NZDT 2006  Stephane Popinet <s.popinet at niwa.co.nz>
+Fri Mar  3 00:12:59 CET 2006  Stephane Popinet <s.popinet at niwa.co.nz>
   * Examples tarball did not include animations
 
-Tue Feb 14 21:01:54 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Tue Feb 14 09:01:54 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * gfs_domain_norm_residual() was not computing a dimensionless divergence
   
   It now returns the error in volume conservation per timestep relative
   to the volume of the cell.
 
-Thu Feb  9 02:53:10 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Wed Feb  8 14:53:10 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * OutputSimulation has an optional "text" format
 
-Thu Feb  9 02:52:41 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Wed Feb  8 14:52:41 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Updated Debian dependencies
 
-Mon Jan 30 14:47:49 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Mon Jan 30 02:47:49 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * New functions gfs_vof_plane() and gfs_vof_facet()
 
-Sun Feb  5 14:21:11 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Sun Feb  5 02:21:11 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for inconsistent calls for divergence calculation
 
-Sun Feb  5 14:20:02 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Sun Feb  5 02:20:02 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * OutputTiming also reports the maximum number of variables allocated
 
-Sun Feb  5 14:15:27 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Sun Feb  5 02:15:27 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for "Pmac"
   
   Pmac was allocated as a temporary variable and thus was not
@@ -3018,178 +4500,178 @@ Sun Feb  5 14:15:27 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
   refinement (causing trouble with the convergence rate of the Poisson
   solver). It is now a default variable.
 
-Sun Feb  5 14:10:24 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Sun Feb  5 02:10:24 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * GfsAdapts should be treated as standard events
   
   ... in particular to avoid problems due to a changed order of events
   in output files.
 
-Fri Feb  3 09:19:10 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Thu Feb  2 21:19:10 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * New "nitermin" param for multilevel solvers
   
   This is optional but useful in some cases to prevent noise building up in a 
   stationary solution (spurious currents test case for example).
 
-Wed Feb  1 03:33:01 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Tue Jan 31 15:33:01 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * OutputTiming computes the total running time
   
   i.e. does not exclude the time taken by Outputs and Events.
 
-Mon Jan 30 23:18:56 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Mon Jan 30 11:18:56 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for GfsVariable half-events
   
   Half-events were never processed for GfsVariables.
 
-Mon Jan 30 22:38:17 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Mon Jan 30 10:38:17 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * VariableFiltered works with odd numbers of iterations
 
-Fri Feb  3 23:50:52 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Fri Feb  3 11:50:52 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Updated macros for automake 1.8
 
-Sat Jan 28 06:43:49 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Fri Jan 27 18:43:49 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Generalised gfs_correct_normal_velocities() for CSF surface tension
 
-Sat Jan 28 14:23:57 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Sat Jan 28 02:23:57 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * New object GfsVariableCurvature
 
-Sat Jan 28 10:33:58 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Fri Jan 27 22:33:58 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * MAC pressure is saved
   
   Both the MAC and approximate projections thus have better initial guesses. When
   looking for stationary solutions this makes a big difference.
 
-Sat Jan 28 10:33:13 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Fri Jan 27 22:33:13 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Simplification of Boussinesq example
 
-Sat Jan 28 06:47:49 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Fri Jan 27 18:47:49 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Fixed typo in spurious currents test case description
 
-Sat Jan 28 06:46:55 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Fri Jan 27 18:46:55 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for GfsSourceDiffusionExplicit
 
-Sat Jan 28 11:06:45 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Fri Jan 27 23:06:45 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for generic coarse_fine() method for GfsVariable
 
-Fri Jan 27 23:08:33 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Fri Jan 27 11:08:33 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for special case of solid boundary
   
   When children mixed cells are all empty, a divide-by-zero would occur when
   computing the center of "mass" of the parent cell.
 
-Fri Jan 27 23:07:10 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Fri Jan 27 11:07:10 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Better checks for construction of merged cells lists
 
-Sat Jan 21 12:29:32 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Sat Jan 21 00:29:32 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * VOF tracers are adaptively refined consistently
 
-Sat Jan 21 10:45:13 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Fri Jan 20 22:45:13 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * Generic coarse_fine() method for GfsVariable
 
-Thu Jan 19 02:55:04 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Wed Jan 18 14:55:04 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * New criterion for "small" cells
   
   Each direction is tested independently and the presence or absence of 
   neighbors is taken into account.
 
-Tue Jan 17 03:42:08 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Mon Jan 16 15:42:08 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * S now returns normalised surface fraction
 
-Tue Jan 17 02:27:31 NZDT 2006  Stephane Popinet <popinet at users.sf.net>
+Mon Jan 16 14:27:31 CET 2006  Stephane Popinet <popinet at users.sf.net>
   * New object GfsOutputScalarMaxima
 
-Wed Dec  7 13:29:57 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Wed Dec  7 01:29:57 CET 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Fixed typo in tutorial
 
-Tue Dec  6 10:26:46 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Mon Dec  5 22:26:46 CET 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Updated test references
   
   GCC version 4 seems to produce slightly different results.
 
-Mon Dec  5 11:45:18 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Sun Dec  4 23:45:18 CET 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Updated debian packaging and docs
 
-Fri Dec  2 18:06:32 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Fri Dec  2 06:06:32 CET 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Debian package suggests gfsview
 
-Fri Dec  2 16:33:19 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Fri Dec  2 04:33:19 CET 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * cvs2dist user proper versioning
 
-Fri Dec  2 16:22:30 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Fri Dec  2 04:22:30 CET 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Debian package snapshots
 
-Wed Nov 30 22:01:47 NZDT 2005  Stephane Popinet <popinet at users.sf.net>
+Wed Nov 30 10:01:47 CET 2005  Stephane Popinet <popinet at users.sf.net>
   * Debian package stuff (from Marcelo's official debian archive)
 
-Tue Nov 29 10:35:08 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Mon Nov 28 22:35:08 CET 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Workaround for bug in latex2html
 
-Tue Nov 29 16:23:49 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Nov 29 04:23:49 CET 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Fix for use of uninitialised heap info in adaptive refinement
 
-Mon Nov 28 16:17:25 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Mon Nov 28 04:17:25 CET 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Updated release instructions
 
-Mon Oct 17 12:52:21 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Mon Oct 17 01:52:21 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   tagged 0.8.0
 
-Mon Oct 17 12:49:07 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Mon Oct 17 01:49:07 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Updated docs for release 0.8.0
 
-Fri Oct 14 15:06:14 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Fri Oct 14 04:06:14 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * OutputSolidForce also computes moments
 
-Fri Oct 14 11:03:59 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Fri Oct 14 00:03:59 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Added missing dependencies for building docs
 
-Thu Oct 13 14:58:19 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Thu Oct 13 03:58:19 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Couette test case uses RMS-norm rather than maximum
 
-Thu Oct 13 14:56:53 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Thu Oct 13 03:56:53 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * gfs_mixed_cell_gradient uses Dirichlet conditions if set
 
-Thu Oct 13 10:18:33 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Wed Oct 12 23:18:33 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Thin-wall and waves test fixes
 
-Wed Oct 12 12:14:34 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Wed Oct 12 01:14:34 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * GfsFunction aborts on user declaration of reserved variable names
 
-Wed Oct 12 09:56:25 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Oct 11 22:56:25 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Updated channel test reference
 
-Tue Oct 11 13:21:03 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Oct 11 02:21:03 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Couette flow test case
 
-Tue Oct 11 12:52:48 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Oct 11 01:52:48 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * New functions to compute 2nd invariant of shear strain rate tensor
 
-Mon Oct 10 17:33:53 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Mon Oct 10 06:33:53 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Multilevel diffusion params are defined as part of GfsDiffusion
 
-Fri Oct  7 17:59:35 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Fri Oct  7 06:59:35 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Variable viscosity needs to be defined on all levels
 
-Fri Oct  7 11:40:58 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Fri Oct  7 00:40:58 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * New parameter "beta" controls the implicitness of the diffusion solver
 
-Fri Oct  7 18:09:58 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Fri Oct  7 07:09:58 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Makefile.deps are cleaned (to force them to be updated)
 
-Thu Oct  6 11:48:58 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Thu Oct  6 00:48:58 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Variable viscosity coupled with variable density should now work
 
-Thu Oct  6 11:05:42 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Thu Oct  6 00:05:42 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Geometry is generated rather than stored in rt example
 
-Tue Oct  4 19:11:07 NZDT 2005  Stephane Popinet <popinet at users.sf.net>
+Tue Oct  4 08:11:07 CEST 2005  Stephane Popinet <popinet at users.sf.net>
   * Surface tension should work with variable density
 
-Wed Oct  5 13:48:12 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Wed Oct  5 02:48:12 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Moved lid-driven cavity example to test suite
 
-Wed Oct  5 13:47:24 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Wed Oct  5 02:47:24 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Added examples.tar.gz target
 
-Wed Oct  5 11:09:02 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Wed Oct  5 00:09:02 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Fix for upwinding of MAC velocities
   
   The "lid-driven cavity" test case was broken by patch "Face boundary
@@ -3200,211 +4682,211 @@ Wed Oct  5 11:09:02 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   condition but only for normal MAC velocities (in effect reverting to
   the old formulation in this case only).
 
-Tue Oct  4 17:54:58 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Oct  4 06:54:58 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Fix for type cast bothering gcc
 
-Tue Oct  4 18:16:14 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Oct  4 07:16:14 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Restructured test/ directory
 
-Tue Oct  4 17:37:52 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Oct  4 06:37:52 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Removed obsolete tests
 
-Tue Oct  4 16:19:31 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Oct  4 05:19:31 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Simple advection test case
 
-Tue Oct  4 16:19:00 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Oct  4 05:19:00 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Geostrophic adjustment test cases
 
-Tue Oct  4 11:17:58 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Oct  4 00:17:58 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * New Rayleigh-Taylor example
 
-Thu Sep 29 22:35:00 NZST 2005  Stephane Popinet <popinet at users.sf.net>
+Thu Sep 29 12:35:00 CEST 2005  Stephane Popinet <popinet at users.sf.net>
   * SourceControl does not need a timescale
 
-Thu Sep 29 15:47:56 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Thu Sep 29 05:47:56 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Updated capillary wave test
 
-Wed Sep 28 21:54:20 NZST 2005  Stephane Popinet <popinet at users.sf.net>
+Wed Sep 28 11:54:20 CEST 2005  Stephane Popinet <popinet at users.sf.net>
   * Capillary wave test case
 
-Wed Sep 28 12:45:44 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Wed Sep 28 02:45:44 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Solid fractions are matched at coarse/fine boundaries
 
-Wed Sep 28 11:18:36 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Wed Sep 28 01:18:36 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Updated channel test
 
-Tue Sep 27 11:10:59 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Sep 27 01:10:59 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Variable half-events for ocean models
 
-Mon Sep 26 21:15:20 NZST 2005  Stephane Popinet <popinet at users.sf.net>
+Mon Sep 26 11:15:20 CEST 2005  Stephane Popinet <popinet at users.sf.net>
   * New GfsVariableFiltered class
 
-Mon Sep 26 21:10:00 NZST 2005  Stephane Popinet <popinet at users.sf.net>
+Mon Sep 26 11:10:00 CEST 2005  Stephane Popinet <popinet at users.sf.net>
   * Variable density has been fixed
 
-Mon Sep 26 14:01:45 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Mon Sep 26 04:01:45 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Some derived variables can be used in GfsFunction even with cell = NULL
 
-Mon Sep 26 12:02:07 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Mon Sep 26 02:02:07 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * OutputHistogram can take an optional dependent variable
 
-Fri Sep 23 16:03:05 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Fri Sep 23 06:03:05 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Updated tests and examples for obsolete gfsview option
 
-Fri Sep 23 11:18:32 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Fri Sep 23 01:18:32 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * EventHarmonic can optionally compute the mean-squares error
 
-Wed Sep 21 10:29:02 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Wed Sep 21 00:29:02 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Unified implementation of 2D and 2D3 ocean models
   
   The 2D3 "baroclinic" model only works with a single layer for the moment.
   The results should be exactly identical to the 2D ocean model.
 
-Tue Sep 20 20:33:27 NZST 2005  Stephane Popinet <popinet at users.sf.net>
+Tue Sep 20 10:33:27 CEST 2005  Stephane Popinet <popinet at users.sf.net>
   * Pressure is centered in coastally-trapped waves test case
 
-Tue Sep 20 17:51:09 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Sep 20 07:51:09 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * New function gfs_set_2D_solid_fractions_from_surface
 
-Tue Sep 20 17:48:29 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Sep 20 07:48:29 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * New function gfs_cell_traverse_cut_2D
 
-Tue Sep 20 12:48:24 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Sep 20 02:48:24 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * RefineHeight uses same interpolation routine as GfsFunction
 
-Mon Sep 19 13:23:44 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Mon Sep 19 03:23:44 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Updated channel test reference
 
-Mon Sep 19 12:46:05 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Mon Sep 19 02:46:05 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Weaker criteria for Poisson test cases
 
-Fri Sep 16 15:20:32 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Fri Sep 16 05:20:32 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Removed obsolete gerris_dir stuff
 
-Fri Sep 16 10:47:38 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Fri Sep 16 00:47:38 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * OutputEnergy has been removed (it can be done better using functions)
 
-Fri Sep 16 10:06:11 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Fri Sep 16 00:06:11 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Removed old Poisson tests
 
-Fri Sep 16 09:21:46 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Thu Sep 15 23:21:46 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Updated Poisson test cases
 
-Thu Sep 15 16:47:48 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Thu Sep 15 06:47:48 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Updated channel and boundaries tests for "old" centered pressure gradient calculation
 
-Thu Sep 15 16:12:49 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Thu Sep 15 06:12:49 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * New circular waves shallow-water test case
 
-Wed Sep 14 17:32:59 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Wed Sep 14 07:32:59 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Weighted centered pressure gradient is now an option used only by the ocean models
 
-Wed Sep 14 14:34:25 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Wed Sep 14 04:34:25 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Cosmetics
 
-Wed Sep 14 13:25:43 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Wed Sep 14 03:25:43 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * EventFilter takes a time scale as extra argument
   
   Exponential filtering with the given timescale is used rather than
   discrete full filtering.
 
-Wed Sep 14 11:00:26 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Wed Sep 14 01:00:26 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Updated references for Poisson tests
 
-Fri Sep  9 18:37:09 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Fri Sep  9 08:37:09 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Updated tests for default erelax of one
 
-Fri Sep  9 10:30:48 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Fri Sep  9 00:30:48 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Coriolis source term takes an optional linear drag parameter
 
-Wed Sep  7 17:57:10 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Wed Sep  7 07:57:10 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Update of 'channel' and 'boundaries' test cases for centered error estimation
 
-Wed Sep  7 17:56:08 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Wed Sep  7 07:56:08 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * 'erelax' is one by default (rather than 2)
   
   In most cases this is more efficient.
 
-Wed Sep  7 17:54:48 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Wed Sep  7 07:54:48 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Bug fix for OutputCorrelation
 
-Tue Sep  6 18:11:01 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Sep  6 08:11:01 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * @ is replaced with # before compiling functions
   
   Lines starting with # are treated as comments and ignored, which is a
   problem if precompiler directives are used in the function. Using @
   instead of # allows the use of precompiler directives.
 
-Mon Sep  5 12:32:24 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Mon Sep  5 02:32:24 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Channel and boundaries test cases compare non-centered variables
 
-Fri Sep  2 11:47:51 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Fri Sep  2 01:47:51 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Variables are NOT centered by default
   
   All variables were set to centered by default. Not sure how this
   crept into the code but this could have potentially important follow
   up effects. Need to check on this.
 
-Tue Aug 30 18:12:52 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Aug 30 08:12:52 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Cleanup of ocean divergence calculation
 
-Tue Aug 30 16:22:58 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Aug 30 06:22:58 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Fix for missing params following changes in gfs_poisson_cycle
 
-Mon Aug 29 12:39:24 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Mon Aug 29 02:39:24 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * CFL is applicable only if some advection scheme is used
 
-Mon Aug 29 10:12:45 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Mon Aug 29 00:12:45 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Simplified center-of-mass checks
 
-Fri Aug 26 13:32:09 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Fri Aug 26 03:32:09 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Small fixes for pickier gcc-4.0 warnings
 
-Fri Aug 26 13:28:13 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Fri Aug 26 03:28:13 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * "Exponential" relaxation is controlable ("erelax" parameter)
 
-Fri Aug 26 13:27:27 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Fri Aug 26 03:27:27 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Fixed typos in FAQ
 
-Fri Aug 26 13:26:20 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Fri Aug 26 03:26:20 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Compilation of functions on MacOSX
 
-Thu Aug 18 13:10:31 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Thu Aug 18 03:10:31 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Fix for stupid bug in gfs_init_write
 
-Wed Aug 17 18:36:30 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Wed Aug 17 08:36:30 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Extrusion of closed profiles is done correctly (no duplicate vertices)
 
-Tue Aug 16 18:52:42 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Aug 16 08:52:42 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Bi-directional streamlines had duplicate vertices
 
-Mon Aug 15 16:09:40 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Mon Aug 15 06:09:40 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Bug fix for 2nd order streamline integration
   
   Streamline interval length is not constrained by cell size anymore.
 
-Mon Aug 15 16:04:26 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Mon Aug 15 06:04:26 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * New functions gfs_domain_cell_traverse_condition, gfs_domain_cell_point_distance2
   
   And also ftt_cell_box. gfs_domain_cell_traverse_condition is used
   as a generic replacement for gfs_domain_cell_traverse_box.
 
-Fri Aug 12 17:42:33 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Fri Aug 12 07:42:33 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Updated references for test cases (for the improved Poisson solver)
 
-Fri Aug 12 17:35:43 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Fri Aug 12 07:35:43 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Change to GFV files for new format
 
-Fri Aug 12 16:55:56 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Fri Aug 12 06:55:56 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Generalisation of streamline creation functions
 
-Wed Aug 10 21:40:52 NZST 2005  Stephane Popinet <popinet at users.sf.net>
+Wed Aug 10 11:40:52 CEST 2005  Stephane Popinet <popinet at users.sf.net>
   * Bug fix for environment variables in gfs2tex
 
-Tue Aug  9 17:46:34 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Aug  9 07:46:34 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Fix for incorrect merging test case reference
 
-Tue Aug  9 16:37:26 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Aug  9 06:37:26 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * New and updated Poisson test cases
   
   Rather than plotting residual vs multigrid cycles, we plot residual vs
@@ -3412,7 +4894,7 @@ Tue Aug  9 16:37:26 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   representative of pathological cases which did not work well with the
   former version of the multigrid Poisson solver.
 
-Tue Aug  9 16:29:26 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Aug  9 06:29:26 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Improvements to the Poisson solver
   
   After a full review of the Poisson solver: convergence tests with pre
@@ -3423,27 +4905,27 @@ Tue Aug  9 16:29:26 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   coarser levels. None of the more complex changes seemed to improve
   convergence.
 
-Tue Aug  9 11:51:00 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Aug  9 01:51:00 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * New GfsClock object replaces GTimer
   
   Times are now given as user CPU time rather than wall-clock time.
 
-Mon Aug  8 15:37:22 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Mon Aug  8 05:37:22 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Changes to GFV files for new GfsView file format
 
-Thu Aug  4 17:11:49 NZST 2005  Sebastien Delaux <s.delaux at niwa.co.nz>
+Thu Aug  4 07:11:49 CEST 2005  Sebastien Delaux <s.delaux at niwa.co.nz>
   * cell->data is set to NULL by gfs_cell_cleanup
 
-Thu Aug  4 17:10:44 NZST 2005  Sebastien Delaux <s.delaux at niwa.co.nz>
+Thu Aug  4 07:10:44 CEST 2005  Sebastien Delaux <s.delaux at niwa.co.nz>
   * Fix for incorrect error message in FTT I/O
 
-Thu Aug  4 17:09:35 NZST 2005  Sebastien Delaux <s.delaux at niwa.co.nz>
+Thu Aug  4 07:09:35 CEST 2005  Sebastien Delaux <s.delaux at niwa.co.nz>
   * Bug fix for stupid use of destroyed event
 
-Wed Aug  3 18:01:18 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Wed Aug  3 08:01:18 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * gfs_face_ca was failing in particular cases on 3D meshes
 
-Tue Aug  2 15:50:33 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Aug  2 05:50:33 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Introduced a new GFS_FLAG_GRADIENT_BOUNDARY cell flag to fix Flather ocean bc
   
   The Flather ocean bc do not like the centered pressure gradient
@@ -3451,50 +4933,50 @@ Tue Aug  2 15:50:33 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   the old "upwind" gradient interpolation a new flag has been
   introduced. This flag is set automatically by the Flather bc.
 
-Mon Aug  1 13:52:37 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Mon Aug  1 03:52:37 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * ca.z is initialised to zero in 2D
 
-Mon Aug  1 15:04:38 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Mon Aug  1 05:04:38 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Updated poisson test cases with solid boundaries
 
-Thu Jul 21 16:02:28 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Thu Jul 21 06:02:28 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Changed the way gfs2tex sets environment variables
 
-Thu Jul 21 15:59:36 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Thu Jul 21 05:59:36 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Added new-style Poisson test cases
 
-Wed Jul 20 22:37:10 NZST 2005  Stephane Popinet <popinet at users.sf.net>
+Wed Jul 20 12:37:10 CEST 2005  Stephane Popinet <popinet at users.sf.net>
   * New GfsPoisson solver
 
-Wed Jul 20 12:07:38 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Wed Jul 20 02:07:38 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * `shapes' has been moved to tools and is installed
 
-Mon Jul 18 15:57:47 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Mon Jul 18 05:57:47 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * gfs_function_value() can take NULL as cell argument
 
-Thu Jul 14 11:26:18 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Thu Jul 14 01:26:18 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Cosmetics
 
-Thu Jul 14 10:09:12 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Thu Jul 14 00:09:12 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Face function evaluation knows about mixed cells
   
   This means that boundary conditions dependent on spatial coordinates
   will correctly account for cell faces on the boundaries of the domain
   being cut by an embdedded surface.
 
-Thu Jul 14 10:08:47 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Thu Jul 14 00:08:47 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Fixed broken FAQ link
 
-Wed Jul 13 12:10:12 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Wed Jul 13 02:10:12 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Cleaned up darcs2dist script
 
-Wed Jul 13 11:27:02 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Wed Jul 13 01:27:02 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Added ChangeLog target
 
-Tue Jul 12 18:50:19 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Jul 12 08:50:19 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Added tarball target for tests docs
 
-Tue Jul 12 17:58:31 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Jul 12 07:58:31 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Changed computation of centered pressure gradients
   
   This influences only the pressure gradient in mixed cells. It is now
@@ -3506,25 +4988,25 @@ Tue Jul 12 17:58:31 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   rates of the test cases with boundaries (slightly improves the V
   component and slightly degrades the U component).
 
-Tue Jul 12 16:02:03 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Jul 12 06:02:03 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Version set to 0.8.0 prior to release
 
-Tue Jul 12 09:42:40 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Mon Jul 11 23:42:40 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Variable "P" is centered by default
 
-Mon Jul 11 14:58:07 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Mon Jul 11 04:58:07 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Merged Ocean1 model from 'ocean' branch
   
   This does not include the "fraction-weighted pressure correction" of
   centered velocities which means that some coastlines configurations
   will not be stable.
 
-Mon Jul 11 11:36:09 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Mon Jul 11 01:36:09 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Bug fix for VOF plane center calculation
   
   Assertions were too limiting when cells were completely full or empty.
 
-Fri Jul  8 16:51:20 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Fri Jul  8 06:51:20 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Restructuring of source terms class hierarchy
   
   Former "vector" source terms (coriolis, surface tension, viscosity...)
@@ -3533,137 +5015,137 @@ Fri Jul  8 16:51:20 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   in parameter files for these source terms has changed (no need to
   specify a variable anymore).
 
-Fri Jul  8 16:42:57 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Fri Jul  8 06:42:57 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Spurious currents test updated for new syntax
 
-Sat Jul  9 03:18:47 NZST 2005  Sebastien Delaux <s.delaux at niwa.co.nz>
+Fri Jul  8 17:18:47 CEST 2005  Sebastien Delaux <s.delaux at niwa.co.nz>
   * Fix for locale-independent parsing of parameter files
 
-Fri Jul  8 09:31:32 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Thu Jul  7 23:31:32 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Minor layout changes for merging test
 
-Fri Jul  8 09:25:01 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Thu Jul  7 23:25:01 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Updated channel test reference
 
-Thu Jul  7 19:02:10 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Thu Jul  7 09:02:10 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * New function gfs_function_expression()
 
-Thu Jul  7 13:01:07 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Thu Jul  7 03:01:07 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Removed obsolete "derived" variable stuff
 
-Thu Jul  7 12:17:27 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Thu Jul  7 02:17:27 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Fix for floating-point bug in calculation of 2D center of mass
   
   Also added checks for consistency of the center of mass and center of
   area positions.
 
-Thu Jul  7 09:28:09 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Wed Jul  6 23:28:09 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * gfs2tex test() method uses gfsview-batch instead of gfsview (tests are non-interactive)
 
-Wed Jul  6 12:55:04 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Wed Jul  6 02:55:04 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Updated reference for spurious current test
 
-Wed Jul  6 12:54:14 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Wed Jul  6 02:54:14 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Fix for merging conflict of speck removal stuff
 
-Wed Jul  6 12:53:25 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Wed Jul  6 02:53:25 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Fix for deprecated casts in gfs_object_simulation()
 
-Wed Jul  6 12:51:32 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Wed Jul  6 02:51:32 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Upgrade of EventFilter to new memory management
 
-Tue Mar  8 17:41:29 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Mar  8 05:41:29 CET 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Specks are removed automatically from the simulation
   
   "Specks" are tiny (less than one cell volume) solid domains.
 
-Tue Mar  8 17:34:25 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Mar  8 05:34:25 CET 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * New ocean test energy.sh, temporary modification of waves.sh
   
   waves.sh uses the Ocean1 2D model.
 
-Mon Feb 14 17:33:44 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Mon Feb 14 05:33:44 CET 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * New GfsEventFilter class
   
   Uses averages of corner values as a filter. This is very efficient to filter
   out grid-scale oscillations of crappy schemes...
 
-Wed Jul  6 10:33:33 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Wed Jul  6 00:33:33 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Updated boundaries test
 
-Wed Jul  6 09:52:21 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Jul  5 23:52:21 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Changed BC for boussinesq example
 
-Tue Jul  5 18:03:57 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Jul  5 08:03:57 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * New memory management changes for ocean model
 
-Tue Jul  5 14:32:46 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Jul  5 04:32:46 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * EventSum takes a function rather than a variable, EventSum2 has been removed
 
-Tue Jul  5 14:32:03 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Jul  5 04:32:03 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Replaced SourceViscosity with SourceDiffusion in examples for now
 
-Tue Jul  5 14:31:04 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Jul  5 04:31:04 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Cleanup of test script for doc/examples
 
-Tue Jul  5 10:51:33 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Jul  5 00:51:33 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Spurious currents convergence is computed for finer grids
 
-Tue Jul  5 10:51:04 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Jul  5 00:51:04 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * VOF scheme was not allocating temporary variable
 
-Tue Jul  5 10:30:09 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Jul  5 00:30:09 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * GfsFunction identifier-finding routine was too naive
 
-Mon Jul  4 16:11:14 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Mon Jul  4 06:11:14 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Updated tutorial
 
-Mon Jul  4 15:23:09 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Mon Jul  4 05:23:09 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Updated reference doc
 
-Mon Jul  4 15:01:40 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Mon Jul  4 05:01:40 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Fix for non-advected tracers with sources
 
-Thu Jun 30 21:48:14 NZST 2005  Stephane Popinet <popinet at users.sf.net>
+Thu Jun 30 11:48:14 CEST 2005  Stephane Popinet <popinet at users.sf.net>
   * Allows for "tracers" only governed by source terms
 
-Thu Jun 30 21:46:27 NZST 2005  Stephane Popinet <popinet at users.sf.net>
+Thu Jun 30 11:46:27 CEST 2005  Stephane Popinet <popinet at users.sf.net>
   * Updated reference manual
 
-Mon Jul  4 13:36:02 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Mon Jul  4 03:36:02 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * boussinesq example updated for new gfsview option
 
-Fri Jul  1 10:21:20 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Fri Jul  1 00:21:20 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Fix for expression parsing in GfsFunction
 
-Fri Jul  1 10:20:23 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Fri Jul  1 00:20:23 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Fix for I/O of GfsDomain
 
-Thu Jun 30 17:43:09 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Thu Jun 30 07:43:09 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Generalised parsing of GfsFunction
 
-Thu Jun 30 17:38:20 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Thu Jun 30 07:38:20 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Fixed bug in dynamic variable allocation
 
-Wed Jun 29 17:27:34 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Wed Jun 29 07:27:34 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * gfs_function_description() can return long or short descriptions
 
-Wed Jun 29 17:26:38 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Wed Jun 29 07:26:38 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Non-repetitive outputs are always overwritten
 
-Wed Jun 29 17:22:43 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Wed Jun 29 07:22:43 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Derived variables are associated with GfsDomain
 
-Tue Jun 28 16:07:16 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Jun 28 06:07:16 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * GfsInit creates unknown variables and preserves the order of initialisation
 
-Tue Jun 28 15:43:24 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Jun 28 05:43:24 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Fix for incorrect parsing of GfsFunction
 
-Tue Jun 28 13:27:16 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Jun 28 03:27:16 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Removed obsolete MPI tests
 
-Tue Jun 28 11:55:10 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Jun 28 01:55:10 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Restructured GfsVariable implementation
   
   All the variables are now dynamically allocated. Temporary variables are
@@ -3675,96 +5157,96 @@ Tue Jun 28 11:55:10 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   gradients used to correct the advective terms for the velocity. With the new
   temporary variable allocation scheme messes like that should be avoided.
 
-Mon Jun 27 18:11:24 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Mon Jun 27 08:11:24 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Removed obsolete gfs2other and unsupported gfs2vtk
 
-Thu Jun 23 09:39:21 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Wed Jun 22 23:39:21 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Removed Makefile for old-style surface tension test
 
-Wed Jun 22 18:55:00 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Wed Jun 22 08:55:00 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * New-style spurious current test case
 
-Tue Jun 21 12:11:19 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Jun 21 02:11:19 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * New-style channel test, old tests have been removed
 
-Tue Jun 21 11:05:27 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Jun 21 01:05:27 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * OutputScalarHistogram correctly uses new variable definition and computes instantaneous histograms
 
-Tue Jun 21 10:14:20 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Jun 21 00:14:20 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * gfscompare uses gfs_cell_interpolate() for error calculation of centred variables
 
-Tue Jun 21 10:13:58 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Jun 21 00:13:58 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Fixed FAQ broken link
 
-Tue Jun 21 10:12:53 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Jun 21 00:12:53 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Added 'boundaries' test case
 
-Tue Jul 12 15:45:54 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Jul 12 05:45:54 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   tagged 0.6.4
 
-Fri Jun 17 17:53:32 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Fri Jun 17 07:53:32 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * merging test uses batch-mode gfsview for figure generation
 
-Fri Jun 17 12:44:24 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Fri Jun 17 02:44:24 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * New 4-way vortex merging test case
 
-Thu Jun 16 16:00:25 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Thu Jun 16 06:00:25 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Added simple periodic test case
 
-Wed Jun 15 16:54:52 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Wed Jun 15 06:54:52 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Added biblio to tests doc and a few bug fixes
 
-Wed Jun 15 16:19:05 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Wed Jun 15 06:19:05 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Automated generation of summary for test docs
 
-Wed Jun 15 16:17:22 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Wed Jun 15 06:17:22 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Updated reference for 'reynolds/box' test case, removal of corresponding old tests
 
-Wed Jun 15 10:28:18 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Wed Jun 15 00:28:18 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Added PPM animate question to FAQ
 
-Tue Jun 14 18:23:15 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Jun 14 08:23:15 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Auto-documented Euler test cases replace old-style tests
   
   Only the equivalent test cases for reference2D/stationary1.xmgr and
   reference2D/stationary4box1.xmgr have been implemented at this point.
 
-Mon Jun 13 22:01:28 NZST 2005  Stephane Popinet <stephane.popinet at paradise.net.nz>
+Mon Jun 13 12:01:28 CEST 2005  Stephane Popinet <stephane.popinet at paradise.net.nz>
   * New 'Reynolds' test case, replacement for 'stationary'
   
   Using auto-documenting with gfs2doc.
 
-Mon Jun 13 17:42:21 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Mon Jun 13 07:42:21 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * cast fix for gfs2oogl
 
-Mon Jun 13 17:41:49 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Mon Jun 13 07:41:49 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * New macro ftt_vector_norm()
 
-Mon Jun 13 17:27:32 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Mon Jun 13 07:27:32 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Numbers are allowed in identifiers of macros and variables
 
-Mon Jun 13 17:26:29 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Mon Jun 13 07:26:29 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * "S" is a derived macro for solid area
 
-Mon Jun 13 17:23:10 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Mon Jun 13 07:23:10 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * OutputScalarHistogram takes weight as argument
 
-Fri Jun 10 18:43:58 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Fri Jun 10 08:43:58 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * OutputScalar takes the new GfsFunction as argument instead of a GfsVariable
 
-Fri Jun 10 17:04:31 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Fri Jun 10 07:04:31 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * GfsFunction now knows about "derived variables"
   
   This is the first step toward removing old-style derived variables
   altogether.
 
-Thu Jun  9 17:27:00 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Thu Jun  9 07:27:00 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * OutputScalarHistogram starts when specified and properly reopens static files
 
-Thu Jun  9 16:44:24 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Thu Jun  9 06:44:24 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * GfsFunction recognises domain variables directly
 
-Wed Jun  8 18:12:44 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Wed Jun  8 08:12:44 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Face boundary conditions modified for consistent upwinding
   
   The former face boundaries were not "upwind aware", this was causing
@@ -3772,176 +5254,176 @@ Wed Jun  8 18:12:44 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   condition on the left of the domain and at the same time a Dirichlet BC on a
   tracer.
 
-Tue Jun  7 10:12:24 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Jun  7 00:12:24 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * New object GfsOutputScalarHistogram
 
-Wed Jun  8 17:05:07 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Wed Jun  8 07:05:07 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Bug fix for tracer advection (thanks to David Sterling)
 
-Tue Jun  7 10:10:59 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Jun  7 00:10:59 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * New macro gfs_cell_volume()
 
-Thu Jun  2 18:05:49 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Thu Jun  2 08:05:49 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * New gfs_solid_normal() and gfs_pressure_force() functions
 
-Wed Jun  1 18:22:57 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Wed Jun  1 08:22:57 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Fixed FAQ icons (part 2)
 
-Wed Jun  1 18:17:44 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Wed Jun  1 08:17:44 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Fixed FAQ icons
 
-Wed Jun  1 17:54:12 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Wed Jun  1 07:54:12 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Restructuring of checks for interpolation in face_bilinear
 
-Wed Jun  1 17:52:57 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Wed Jun  1 07:52:57 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Added FAQ and updated links and style sheets
 
-Tue May 31 11:57:21 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue May 31 01:57:21 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * New SourceControl object
 
-Tue May 31 10:23:10 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue May 31 00:23:10 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * OutputSimulation uses binary format by default
 
-Fri May 27 14:16:26 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Fri May 27 04:16:26 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Preliminary restructuring of Euler test cases
 
-Fri May 27 10:35:57 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Fri May 27 00:35:57 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Cosmetics for advection tests
 
-Fri May 27 10:24:10 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Fri May 27 00:24:10 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Restructured advection order test cases
 
-Thu May 26 15:53:39 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Thu May 26 05:53:39 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Updated installation instructions
 
-Thu May 26 13:15:56 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Thu May 26 03:15:56 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Fix for GfsEventScript unused handling of error output
 
-Wed May 25 17:50:41 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Wed May 25 07:50:41 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Added boussinesq.gfv gfsview parameter file
 
-Sun Apr 24 06:29:11 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Sat Apr 23 20:29:11 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * InitVorticity takes vorticity function as argument
   
   Test cases have been updated and obsolete modules have been removed.
 
-Wed Apr 20 04:33:29 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Apr 19 18:33:29 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Bug fix for InitVorticity
 
-Thu Apr 14 04:53:16 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Wed Apr 13 18:53:16 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Update for xmgr -> xmgrace transition
 
-Thu Apr 14 04:51:11 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Wed Apr 13 18:51:11 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * VOF scheme has a CFL limit of one (not 0.5)
 
-Thu Apr 14 04:48:57 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Wed Apr 13 18:48:57 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * gerris can take parameter file on standard input
 
-Sun Apr 10 01:56:34 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Sat Apr  9 15:56:34 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Minor bugfix for gfs2tex
 
-Sun Apr 10 01:55:33 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Sat Apr  9 15:55:33 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Updated boussinesq example
 
-Sun Apr 10 01:24:46 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Sat Apr  9 15:24:46 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Boussinesq example now uses scripting mode of GfsView
 
-Fri Apr  8 12:30:11 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Fri Apr  8 02:30:11 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Updated examples Makefile.am dependencies
 
-Fri Apr  8 12:29:07 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Fri Apr  8 02:29:07 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Added Boussinesq example to doc
 
-Wed Apr  6 22:48:16 NZST 2005  Stephane Popinet <stephane.popinet at paradise.net.nz>
+Wed Apr  6 12:48:16 CEST 2005  Stephane Popinet <stephane.popinet at paradise.net.nz>
   * New Boussinesq example
 
-Thu Apr  7 16:08:10 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Thu Apr  7 06:08:10 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * More robust (hopefully) FPU exceptions control
 
-Thu Apr  7 16:06:51 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Thu Apr  7 06:06:51 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Decent autogen.sh script
 
-Mon Apr  4 12:03:56 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Mon Apr  4 02:03:56 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Automatic dependency of examples doc on files generated by examples
 
-Mon Apr  4 12:00:45 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Mon Apr  4 02:00:45 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Shear example updated for new C expressions in GfsFunction
 
-Mon Apr  4 11:56:21 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Mon Apr  4 01:56:21 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Fixed problems with C expressions in GfsFunction
   
   Also added check for pkg-config in configure. pkg-config is required for
   inlined functions in parameter files.
 
-Sun Apr  3 21:54:34 NZST 2005  Stephane Popinet <stephane.popinet at paradise.net.nz>
+Sun Apr  3 11:54:34 CEST 2005  Stephane Popinet <stephane.popinet at paradise.net.nz>
   * GfsInit and GfsOutputErrorNorm can use functions of variables
 
-Sun Apr  3 21:54:14 NZST 2005  Stephane Popinet <stephane.popinet at paradise.net.nz>
+Sun Apr  3 11:54:14 CEST 2005  Stephane Popinet <stephane.popinet at paradise.net.nz>
   * Fixed lid example typos
 
-Sun Apr  3 21:52:43 NZST 2005  Stephane Popinet <stephane.popinet at paradise.net.nz>
+Sun Apr  3 11:52:43 CEST 2005  Stephane Popinet <stephane.popinet at paradise.net.nz>
   * New time-reversed VOF advection example
 
-Fri Apr  1 18:04:31 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Fri Apr  1 08:04:31 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * New lid-driven cavity example
 
-Fri Apr  1 16:24:48 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Fri Apr  1 06:24:48 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Force flushing of OutputLocation
 
-Fri Apr  1 14:46:14 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Fri Apr  1 04:46:14 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * OutputLocation can now work with a list of several locations
 
-Fri Apr  1 11:21:36 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Fri Apr  1 01:21:36 CEST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * EventStop can now store the difference used as criterion
 
-Wed Mar 23 16:03:56 NZST 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Wed Mar 23 05:03:56 CET 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Added missing signal header in utils.c (for BSD)
 
-Fri Mar 18 17:34:14 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Fri Mar 18 05:34:14 CET 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * doc/examples/Makefile.deps is distributed to avoid a python dependency
 
-Tue Mar  8 17:40:36 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Mar  8 05:40:36 CET 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * bat2gts does not need to construct closed geometry anymore
 
-Tue Mar  8 13:06:58 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Mar  8 01:06:58 CET 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Removed obsolete CVS usermap file
 
-Thu Mar 17 18:23:45 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Thu Mar 17 06:23:45 CET 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Added automated testing of examples collection
 
-Thu Mar 17 17:30:45 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Thu Mar 17 05:30:45 CET 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * autogen.sh must not be distributed in tarballs
 
-Thu Mar 17 15:00:02 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Thu Mar 17 03:00:02 CET 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Added simple autogen.sh script
 
-Thu Mar 17 13:33:30 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Thu Mar 17 01:33:30 CET 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Automatic distribution of examples + improved gfs2tex code
 
-Thu Mar 17 12:18:00 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Thu Mar 17 00:18:00 CET 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * gfs2doc checks that the example runs
 
-Wed Mar 16 18:22:31 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Wed Mar 16 06:22:31 CET 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * gfs2doc script for automatically generated example documentation
   
   Also improved cross-links for colorised parameter files.
 
-Tue Mar 15 18:36:08 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Mar 15 06:36:08 CET 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Initial implementation of examples scripts
 
-Tue Feb 22 12:40:11 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Feb 22 00:40:11 CET 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Added scripts in tools to distribution
 
-Tue Feb 22 12:16:40 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Feb 22 00:16:40 CET 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Bug fix for boundary matching of solid fractions
 
-Tue Feb 22 12:13:39 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Feb 22 00:13:39 CET 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Mixed cell refinement fixes in 3D
   
   The advection fix could be improved (it does not currently take into account
   the solid fractions, unlike the 2D version of the fix).
 
-Tue Nov  9 15:15:59 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
+Tue Nov  9 03:15:59 CET 2004  Stephane Popinet <popinet at users.sourceforge.net>
   * Removed some of the "mixed cell refinement" constraints (gerris--ocean--0.7--patch-2)
   gerris--ocean--0.7--patch-2
   Keywords: 
@@ -3949,7 +5431,7 @@ Tue Nov  9 15:15:59 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
   Probably needs more careful review.
   
 
-Fri Feb 18 17:44:08 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Fri Feb 18 05:44:08 CET 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * GfsFunction can use C statements (instead of full functions)
   
   but modules are not supported anymore by GfsFunction (that was never used
@@ -3961,28 +5443,28 @@ Fri Feb 18 17:44:08 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   
   are now legal.
 
-Fri Feb 18 17:15:45 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Fri Feb 18 05:15:45 CET 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * GfsFunction can take a GTS surface as argument
   
   and interpolates the z-coordinate at location (x,y) to get the value of the
   function.
 
-Fri Feb 18 12:40:30 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Fri Feb 18 00:40:30 CET 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Added ChangeLog to distribution target
 
-Fri Feb 18 12:38:26 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Fri Feb 18 00:38:26 CET 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Removed arch obsolete garbage
 
-Tue Feb 15 12:03:56 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Feb 15 00:03:56 CET 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Spurious current test with adaptivity
 
-Tue Feb 15 12:03:04 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Feb 15 00:03:04 CET 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * gfs_object_simulation() does not work for GfsBc objects
 
-Tue Feb 15 09:45:54 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Mon Feb 14 21:45:54 CET 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Changed interface to gfs_function_read()
 
-Fri Feb 11 19:13:08 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Fri Feb 11 07:13:08 CET 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * New GfsAdaptFunction class
   
   Which uses the new GfsFunction to allow users to specify adaptive criteria
@@ -3991,118 +5473,118 @@ Fri Feb 11 19:13:08 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   This can be used for example to refine around an interface depending on the local
   value of the surface tension.
 
-Fri Feb 11 15:35:30 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Fri Feb 11 03:35:30 CET 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Cosmetics
 
-Fri Feb 11 15:26:48 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Fri Feb 11 03:26:48 CET 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * GfsFunction can now use model variables
   
   This can be used for example to define source terms dependent on other
   variables.
 
-Fri Feb 11 11:58:31 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Thu Feb 10 23:58:31 CET 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Cosmetics
 
-Thu Feb 10 14:38:54 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Thu Feb 10 02:38:54 CET 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Capillary wave test
 
-Thu Feb 10 13:07:37 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Thu Feb 10 01:07:37 CET 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Surface tension only works in 2D for now
 
-Wed Feb  9 12:07:03 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Wed Feb  9 00:07:03 CET 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Renamed _gfs_source_tension_ to _T
 
-Wed Feb  9 12:05:18 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Wed Feb  9 00:05:18 CET 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * gfs_cell_corner_interpolator now works for periodic BCs
   
   But only when the periodic BCs are not cut by a solid boundary.
 
-Tue Feb  8 17:05:32 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Feb  8 05:05:32 CET 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Added surface tension tests to configure
 
-Tue Feb  8 16:29:09 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Feb  8 04:29:09 CET 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Minimum timestep is 1e-9
   
   Several functions implicitly rely on the timestep being strictly positive.
 
-Tue Feb  8 16:28:23 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Feb  8 04:28:23 CET 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Spurious currents test
 
-Tue Feb  8 13:08:20 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Feb  8 01:08:20 CET 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Replaced gfs_youngs_gradient with gfs_youngs_normal
   
   Which computes the three components in one operation and should be about
   three times as fast as three calls to gfs_youngs_gradient.
 
-Tue Feb  8 12:30:22 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Feb  8 00:30:22 CET 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Proper scaling of surface tension terms
   
   The surface tension term also uses the volume fraction at time n+1 which
   improves the stability significantly.
 
-Fri Feb  4 16:39:22 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Fri Feb  4 04:39:22 CET 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Replaced "marker" surface tension implementation with tensorial-CSF formulation
 
-Sun Jan 30 20:07:21 NZDT 2005  Stephane Popinet <stephane.popinet at paradise.net.nz>
+Sun Jan 30 08:07:21 CET 2005  Stephane Popinet <stephane.popinet at paradise.net.nz>
   * Implementation of Young's normal calculation for VOF
 
-Sun Jan 30 20:04:00 NZDT 2005  Stephane Popinet <stephane.popinet at paradise.net.nz>
+Sun Jan 30 08:04:00 CET 2005  Stephane Popinet <stephane.popinet at paradise.net.nz>
   * Default adaptive maxlevel set to 5
   
   The previous default was infinite which was not too good for memory use...
 
-Sun Jan 30 20:02:45 NZDT 2005  Stephane Popinet <stephane.popinet at paradise.net.nz>
+Sun Jan 30 08:02:45 CET 2005  Stephane Popinet <stephane.popinet at paradise.net.nz>
   * VOF advection tests
 
-Sun Jan 30 16:28:09 NZDT 2005  Stephane Popinet <stephane.popinet at paradise.net.nz>
+Sun Jan 30 04:28:09 CET 2005  Stephane Popinet <stephane.popinet at paradise.net.nz>
   * Timestep is computed using minimum CFL of all variables
 
-Sun Jan 30 16:27:38 NZDT 2005  Stephane Popinet <stephane.popinet at paradise.net.nz>
+Sun Jan 30 04:27:38 CET 2005  Stephane Popinet <stephane.popinet at paradise.net.nz>
   * New GfsAdvection simulation class
 
-Sun Jan 30 16:26:21 NZDT 2005  Stephane Popinet <stephane.popinet at paradise.net.nz>
+Sun Jan 30 04:26:21 CET 2005  Stephane Popinet <stephane.popinet at paradise.net.nz>
   * Tracers now take advection/diffusion parameters
 
-Sun Jan 30 16:23:18 NZDT 2005  Stephane Popinet <stephane.popinet at paradise.net.nz>
+Sun Jan 30 04:23:18 CET 2005  Stephane Popinet <stephane.popinet at paradise.net.nz>
   * Graphic advection test restructured
   
   Uses gerris/gfsview rather than advection.c/gts2oogl/geomview etc...
 
-Fri Jan 28 00:23:13 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Thu Jan 27 12:23:13 CET 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Fix for cygwin built
 
-Wed Jan 19 18:57:30 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Wed Jan 19 06:57:30 CET 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * darcs2dist and bat2gts are installed
 
-Wed Jan 19 18:45:44 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Wed Jan 19 06:45:44 CET 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * darcs2dist takes URL argument
 
-Wed Jan 19 10:25:22 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Jan 18 22:25:22 CET 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Clearer error message for boundaries outside fluid domain
 
-Tue Jan 18 18:04:31 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Jan 18 06:04:31 CET 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Automatic ChangeLog generation and darcs2dist snapshot script
 
-Tue Jan 18 17:19:24 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Jan 18 05:19:24 CET 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Added GTS dependency to pkgconfig files
 
-Tue Jan 18 17:08:34 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Jan 18 05:08:34 CET 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Fixed test/mpi
 
-Tue Jan 18 17:05:24 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Jan 18 05:05:24 CET 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Fixed test/advection
   
   The results needs checking.
 
-Tue Jan 18 16:53:51 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Jan 18 04:53:51 CET 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Fixed test/poisson
   
   test/poisson/order still gives some inconsistent results.
 
-Tue Jan 18 16:53:18 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Jan 18 04:53:18 CET 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Updated test/poisson/convergence/reference2D
 
-Thu Dec  9 11:36:12 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
+Wed Dec  8 23:36:12 CET 2004  Stephane Popinet <popinet at users.sourceforge.net>
   * Matching of surface fractions for refined mixed cells (gerris--ocean--0.7--patch-27)
   gerris--ocean--0.7--patch-27
   Keywords: 
@@ -4111,7 +5593,7 @@ Thu Dec  9 11:36:12 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
   in error reporting for check_area_fractions().
   
 
-Tue Dec  7 16:33:05 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
+Tue Dec  7 04:33:05 CET 2004  Stephane Popinet <popinet at users.sourceforge.net>
   * Important bug fix for GfsEventHarmonic (gerris--ocean--0.7--patch-26)
   gerris--ocean--0.7--patch-26
   Keywords: 
@@ -4120,21 +5602,21 @@ Tue Dec  7 16:33:05 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
   properly computed.
   
 
-Tue Dec  7 11:11:25 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
+Mon Dec  6 23:11:25 CET 2004  Stephane Popinet <popinet at users.sourceforge.net>
   * isocube.h is added to distribution (gerris--ocean--0.7--patch-25)
   gerris--ocean--0.7--patch-25
   Keywords: 
   
   
 
-Tue Dec  7 11:10:26 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
+Mon Dec  6 23:10:26 CET 2004  Stephane Popinet <popinet at users.sourceforge.net>
   * gfs2oogl profile output now works without -c option (gerris--ocean--0.7--patch-24)
   gerris--ocean--0.7--patch-24
   Keywords: 
   
   
 
-Wed Dec  1 15:31:46 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
+Wed Dec  1 03:31:46 CET 2004  Stephane Popinet <popinet at users.sourceforge.net>
   * Changed the way "special cases" are handled in VOF (gerris--ocean--0.7--patch-23)
   gerris--ocean--0.7--patch-23
   Keywords: 
@@ -4143,7 +5625,7 @@ Wed Dec  1 15:31:46 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
   algorithm.
   
 
-Wed Dec  1 12:07:37 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
+Wed Dec  1 00:07:37 CET 2004  Stephane Popinet <popinet at users.sourceforge.net>
   * New function gfs_domain_combine_traverse() (gerris--ocean--0.7--patch-22)
   gerris--ocean--0.7--patch-22
   Keywords: 
@@ -4151,7 +5633,7 @@ Wed Dec  1 12:07:37 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
   For traversing two GfsDomain "simultaneously".
   
 
-Mon Nov 29 12:31:51 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
+Mon Nov 29 00:31:51 CET 2004  Stephane Popinet <popinet at users.sourceforge.net>
   * Made gfs_divergence() interface consistent with gfs_velocity_norm() etc... (gerris--ocean--0.7--patch-21)
   gerris--ocean--0.7--patch-21
   Keywords: 
@@ -4159,7 +5641,7 @@ Mon Nov 29 12:31:51 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
   i.e. it now takes an extra GfsVariable argument.
   
 
-Mon Nov 29 12:26:29 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
+Mon Nov 29 00:26:29 CET 2004  Stephane Popinet <popinet at users.sourceforge.net>
   * Replaced static cell_is_cut function with exported gfs_cell_is_cut (gerris--ocean--0.7--patch-20)
   gerris--ocean--0.7--patch-20
   Keywords: 
@@ -4167,14 +5649,14 @@ Mon Nov 29 12:26:29 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
   Used for new gfsview solid entity.
   
 
-Thu Nov 25 12:24:12 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
+Thu Nov 25 00:24:12 CET 2004  Stephane Popinet <popinet at users.sourceforge.net>
   * Added isocube.h to sources (gerris--ocean--0.7--patch-19)
   gerris--ocean--0.7--patch-19
   Keywords: 
   
   
 
-Mon Nov 22 16:55:09 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
+Mon Nov 22 04:55:09 CET 2004  Stephane Popinet <popinet at users.sourceforge.net>
   * Refinements interpolate existing values (gerris--ocean--0.7--patch-18)
   gerris--ocean--0.7--patch-18
   Keywords: 
@@ -4183,14 +5665,14 @@ Mon Nov 22 16:55:09 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
   some parts.
   
 
-Wed Nov 17 17:57:12 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
+Wed Nov 17 05:57:12 CET 2004  Stephane Popinet <popinet at users.sourceforge.net>
   * In 2D3 ftt_cell_child_corner() now works for all directions (gerris--ocean--0.7--patch-17)
   gerris--ocean--0.7--patch-17
   Keywords: 
   
   
 
-Wed Nov 17 14:35:45 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
+Wed Nov 17 02:35:45 CET 2004  Stephane Popinet <popinet at users.sourceforge.net>
   * New GfsEventHarmonic class (gerris--ocean--0.7--patch-16)
   gerris--ocean--0.7--patch-16
   Keywords: 
@@ -4198,28 +5680,28 @@ Wed Nov 17 14:35:45 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
   Does on-the-fly harmonic analysis of a variable.
   
 
-Tue Nov 16 17:53:23 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
+Tue Nov 16 05:53:23 CET 2004  Stephane Popinet <popinet at users.sourceforge.net>
   * New utility function gfs_matrix_inverse() (gerris--ocean--0.7--patch-14)
   gerris--ocean--0.7--patch-14
   Keywords: 
   
   
 
-Tue Nov 16 13:33:03 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
+Tue Nov 16 01:33:03 CET 2004  Stephane Popinet <popinet at users.sourceforge.net>
   * Option not to output solid surface in GfsOutputSimulation (gerris--ocean--0.7--patch-13)
   gerris--ocean--0.7--patch-13
   Keywords: 
   
   
 
-Tue Nov 16 10:57:45 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
+Mon Nov 15 22:57:45 CET 2004  Stephane Popinet <popinet at users.sourceforge.net>
   * Weaker solid fraction consistency checks to accomodate mixed cell refinement (gerris--ocean--0.7--patch-12)
   gerris--ocean--0.7--patch-12
   Keywords: 
   
   
 
-Tue Nov 16 10:27:08 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
+Mon Nov 15 22:27:08 CET 2004  Stephane Popinet <popinet at users.sourceforge.net>
   * Added tolerance on timestep calculation (gerris--ocean--0.7--patch-11)
   gerris--ocean--0.7--patch-11
   Keywords: 
@@ -4228,14 +5710,14 @@ Tue Nov 16 10:27:08 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
   on times of multiple simultaneous events.
   
 
-Tue Nov 16 10:23:00 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
+Mon Nov 15 22:23:00 CET 2004  Stephane Popinet <popinet at users.sourceforge.net>
   * Removed mixed cell refinement constraint for face traversal (gerris--ocean--0.7--patch-10)
   gerris--ocean--0.7--patch-10
   Keywords: 
   
   
 
-Tue Nov 16 09:07:48 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
+Mon Nov 15 21:07:48 CET 2004  Stephane Popinet <popinet at users.sourceforge.net>
   * bat2gts needs units specified (gerris--ocean--0.7--patch-7)
   gerris--ocean--0.7--patch-7
   Keywords: 
@@ -4245,7 +5727,7 @@ Tue Nov 16 09:07:48 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
   the defaults.
   
 
-Tue Nov  9 15:21:44 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
+Tue Nov  9 03:21:44 CET 2004  Stephane Popinet <popinet at users.sourceforge.net>
   * More robust GfsRefineHeight algorithm (gerris--ocean--0.7--patch-4)
   gerris--ocean--0.7--patch-4
   Keywords: 
@@ -4254,7 +5736,7 @@ Tue Nov  9 15:21:44 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
   one.
   
 
-Tue Nov  9 15:11:09 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
+Tue Nov  9 03:11:09 CET 2004  Stephane Popinet <popinet at users.sourceforge.net>
   * Uses g[0] rather than res for temporary storage in adaptive algorithm (gerris--ocean--0.7--patch-1)
   gerris--ocean--0.7--patch-1
   Keywords: 
@@ -4263,7 +5745,7 @@ Tue Nov  9 15:11:09 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
   poisson solver.
   
 
-Thu Nov  4 18:47:41 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
+Thu Nov  4 06:47:41 CET 2004  Stephane Popinet <popinet at users.sourceforge.net>
   * New class GfsRefineHeight (gerris--mainline--0.7--patch-29)
   gerris--mainline--0.7--patch-29
   Keywords: 
@@ -4271,7 +5753,7 @@ Thu Nov  4 18:47:41 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
   For height/depth dependent refinement in ocean model.
   
 
-Thu Nov  4 18:36:58 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
+Thu Nov  4 06:36:58 CET 2004  Stephane Popinet <popinet at users.sourceforge.net>
   * gfs_domain_remove_ponds() now matches boundaries (gerris--mainline--0.7--patch-28)
   gerris--mainline--0.7--patch-28
   Keywords: 
@@ -4279,14 +5761,14 @@ Thu Nov  4 18:36:58 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
   Only if ponds have been removed.
   
 
-Thu Nov  4 10:27:31 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
+Wed Nov  3 22:27:31 CET 2004  Stephane Popinet <popinet at users.sourceforge.net>
   * Added targets libdx2D3 and gerris2D3.pc (gerris--mainline--0.7--patch-27)
   gerris--mainline--0.7--patch-27
   Keywords: 
   
   
 
-Wed Nov  3 18:10:36 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
+Wed Nov  3 06:10:36 CET 2004  Stephane Popinet <popinet at users.sourceforge.net>
   * New function gfs_domain_remove_specks() (gerris--mainline--0.7--patch-26)
   gerris--mainline--0.7--patch-26
   Keywords: 
@@ -4300,7 +5782,7 @@ Wed Nov  3 18:10:36 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
   thickness is smaller than one grid cell).
   
 
-Wed Nov  3 16:06:02 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
+Wed Nov  3 04:06:02 CET 2004  Stephane Popinet <popinet at users.sourceforge.net>
   * New class GfsRemovePonds (gerris--mainline--0.7--patch-25)
   gerris--mainline--0.7--patch-25
   Keywords: 
@@ -4308,7 +5790,7 @@ Wed Nov  3 16:06:02 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
   Removes small "ponds" from the domain.
   
 
-Wed Nov  3 15:02:44 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
+Wed Nov  3 03:02:44 CET 2004  Stephane Popinet <popinet at users.sourceforge.net>
   * GfsVariable are now events (gerris--mainline--0.7--patch-24)
   gerris--mainline--0.7--patch-24
   Keywords: 
@@ -4326,7 +5808,7 @@ Wed Nov  3 15:02:44 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
   GfsVariableResidual.
   
 
-Wed Nov  3 12:36:57 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
+Wed Nov  3 00:36:57 CET 2004  Stephane Popinet <popinet at users.sourceforge.net>
   * Split GfsVariable in new variable.{ch} file (gerris--mainline--0.7--patch-23)
   gerris--mainline--0.7--patch-23
   Keywords: 
@@ -4334,7 +5816,7 @@ Wed Nov  3 12:36:57 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
   It was getting a bit too big and dispersed all over the place.
   
 
-Tue Nov  2 16:39:40 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
+Tue Nov  2 04:39:40 CET 2004  Stephane Popinet <popinet at users.sourceforge.net>
   * Fixes to solid fraction algorithm for 2D3 (gerris--mainline--0.7--patch-22)
   gerris--mainline--0.7--patch-22
   Keywords: 
@@ -4342,7 +5824,7 @@ Tue Nov  2 16:39:40 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
   Because the aspect ratios of the 2D3 cells are not constant.
   
 
-Tue Nov  2 15:07:33 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
+Tue Nov  2 03:07:33 CET 2004  Stephane Popinet <popinet at users.sourceforge.net>
   * New GfsRefineSurface class (gerris--mainline--0.7--patch-21)
   gerris--mainline--0.7--patch-21
   Keywords: 
@@ -4351,7 +5833,7 @@ Tue Nov  2 15:07:33 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
   reworked.
   
 
-Tue Nov  2 13:49:45 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
+Tue Nov  2 01:49:45 CET 2004  Stephane Popinet <popinet at users.sourceforge.net>
   * Fractions initialisation uses new solid fraction algorithm (gerris--mainline--0.7--patch-20)
   gerris--mainline--0.7--patch-20
   Keywords: 
@@ -4363,7 +5845,7 @@ Tue Nov  2 13:49:45 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
   The GfsInitFraction event has been changed accordingly.
   
 
-Tue Nov  2 12:32:17 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
+Tue Nov  2 00:32:17 CET 2004  Stephane Popinet <popinet at users.sourceforge.net>
   * New calculation of 3D center of mass of solid fractions (gerris--mainline--0.7--patch-19)
   gerris--mainline--0.7--patch-19
   Keywords: 
@@ -4371,7 +5853,7 @@ Tue Nov  2 12:32:17 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
   Uses the new 3D VOF gfs_plane_center() function.
   
 
-Mon Nov  1 18:35:18 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
+Mon Nov  1 06:35:18 CET 2004  Stephane Popinet <popinet at users.sourceforge.net>
   * Fixed bug when computing fractions of degenerate intersections (gerris--mainline--0.7--patch-18)
   gerris--mainline--0.7--patch-18
   Keywords: 
@@ -4381,7 +5863,7 @@ Mon Nov  1 18:35:18 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
   the "normal" part is zero) to compute the fraction.
   
 
-Mon Nov  1 12:08:09 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
+Mon Nov  1 00:08:09 CET 2004  Stephane Popinet <popinet at users.sourceforge.net>
   * Added VOF calculation of 3D solid fraction (gerris--mainline--0.7--patch-17)
   gerris--mainline--0.7--patch-17
   Keywords: 
@@ -4389,7 +5871,7 @@ Mon Nov  1 12:08:09 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
   The center of mass calculation is not done yet.
   
 
-Mon Nov  1 12:07:30 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
+Mon Nov  1 00:07:30 CET 2004  Stephane Popinet <popinet at users.sourceforge.net>
   * Changed 2D bounding boxes for cut cells traversal (gerris--mainline--0.7--patch-16)
   gerris--mainline--0.7--patch-16
   Keywords: 
@@ -4397,7 +5879,7 @@ Mon Nov  1 12:07:30 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
   Only the faces crossing the z=0 plane should be considered.
   
 
-Mon Nov  1 12:06:48 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
+Mon Nov  1 00:06:48 CET 2004  Stephane Popinet <popinet at users.sourceforge.net>
   * Removed upstream self-intersection checks (gerris--mainline--0.7--patch-15)
   gerris--mainline--0.7--patch-15
   Keywords: 
@@ -4412,7 +5894,7 @@ Mon Nov  1 12:06:48 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
   algorithm will proceed and should produce valid solid fractions.
   
 
-Mon Nov  1 12:06:09 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
+Mon Nov  1 00:06:09 CET 2004  Stephane Popinet <popinet at users.sourceforge.net>
   * Domain traversal for painting algorithm (gerris--mainline--0.7--patch-14)
   gerris--mainline--0.7--patch-14
   Keywords: 
@@ -4426,7 +5908,7 @@ Mon Nov  1 12:06:09 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
   check has been added to avoid that.
   
 
-Mon Nov  1 12:05:05 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
+Mon Nov  1 00:05:05 CET 2004  Stephane Popinet <popinet at users.sourceforge.net>
   * preliminary version of new 3D solid fraction computation (gerris--mainline--0.7--patch-13)
   gerris--mainline--0.7--patch-13
   Keywords: 
@@ -4435,7 +5917,7 @@ Mon Nov  1 12:05:05 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
   works fine unchanged from 2D).
   
 
-Mon Nov  1 12:03:11 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
+Mon Nov  1 00:03:11 CET 2004  Stephane Popinet <popinet at users.sourceforge.net>
   * Changed "temporary" to "permanent" for GfsVariable (gerris--mainline--0.7--patch-12)
   gerris--mainline--0.7--patch-12
   Keywords: temporary
@@ -4444,7 +5926,7 @@ Mon Nov  1 12:03:11 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
   temporary variable.
   
 
-Thu Oct 28 18:42:27 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
+Thu Oct 28 07:42:27 CEST 2004  Stephane Popinet <popinet at users.sourceforge.net>
   * New algorithm for 2D solid fractions computation (gerris--mainline--0.7--patch-11)
   gerris--mainline--0.7--patch-11
   Keywords: 
@@ -4461,7 +5943,7 @@ Thu Oct 28 18:42:27 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
   surface.
   
 
-Thu Oct 28 12:43:56 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
+Thu Oct 28 01:43:56 CEST 2004  Stephane Popinet <popinet at users.sourceforge.net>
   * Check for diffusion terms before warning (gerris--mainline--0.7--patch-10)
   gerris--mainline--0.7--patch-10
   Keywords: 
@@ -4470,7 +5952,7 @@ Thu Oct 28 12:43:56 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
   diffusion terms are present.
   
 
-Thu Oct 28 12:34:13 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
+Thu Oct 28 01:34:13 CEST 2004  Stephane Popinet <popinet at users.sourceforge.net>
   * Improved solid fractions computation (gerris--mainline--0.7--patch-9)
   gerris--mainline--0.7--patch-9
   Keywords: 
@@ -4486,14 +5968,14 @@ Thu Oct 28 12:34:13 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
   technique (no need for bounding-box tree).
   
 
-Thu Oct 28 12:01:04 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
+Thu Oct 28 01:01:04 CEST 2004  Stephane Popinet <popinet at users.sourceforge.net>
   * Added timers for initial refinement and solid fractions (gerris--mainline--0.7--patch-8)
   gerris--mainline--0.7--patch-8
   Keywords: 
   
   
 
-Wed Oct 27 15:09:37 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
+Wed Oct 27 04:09:37 CEST 2004  Stephane Popinet <popinet at users.sourceforge.net>
   * New function gfs_cell_traverse_cut (gerris--mainline--0.7--patch-7)
   gerris--mainline--0.7--patch-7
   Keywords: 
@@ -4502,7 +5984,7 @@ Wed Oct 27 15:09:37 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
   roughly like log(N) where N is the total number of cells traversed.
   
 
-Wed Oct 27 12:22:55 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
+Wed Oct 27 01:22:55 CEST 2004  Stephane Popinet <popinet at users.sourceforge.net>
   * Added bat2gts script (gerris--mainline--0.7--patch-6)
   gerris--mainline--0.7--patch-6
   Keywords: 
@@ -4510,10 +5992,10 @@ Wed Oct 27 12:22:55 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
   For generating ocean bathymetry files.
   
 
-Tue Jan 18 15:28:17 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Jan 18 03:28:17 CET 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Bumped micro version
 
-Thu Oct 21 15:51:33 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
+Thu Oct 21 04:51:33 CEST 2004  Stephane Popinet <popinet at users.sourceforge.net>
   * Automatically adds PS and Div variables to ocean model (gerris--mainline--0.7--patch-5)
   gerris--mainline--0.7--patch-5
   Keywords: 
@@ -4521,7 +6003,7 @@ Thu Oct 21 15:51:33 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
   Using a overloading of the read() method of GfsOcean.
   
 
-Wed Oct 20 17:56:25 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
+Wed Oct 20 06:56:25 CEST 2004  Stephane Popinet <popinet at users.sourceforge.net>
   * Replaced GfsOutputStreakline with GfsOutputParticle (gerris--mainline--0.7--patch-4)
   gerris--mainline--0.7--patch-4
   Keywords: 
@@ -4530,7 +6012,7 @@ Wed Oct 20 17:56:25 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
   tracer integrator.
   
 
-Wed Oct 20 17:08:17 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
+Wed Oct 20 06:08:17 CEST 2004  Stephane Popinet <popinet at users.sourceforge.net>
   * Fixed cloning of GfsVariable. (gerris--mainline--0.7--patch-3)
   gerris--mainline--0.7--patch-3
   Keywords: 
@@ -4540,14 +6022,14 @@ Wed Oct 20 17:08:17 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
   cloning surface_bc and source terms.
   
 
-Wed Oct 20 12:19:10 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
+Wed Oct 20 01:19:10 CEST 2004  Stephane Popinet <popinet at users.sourceforge.net>
   * Fixed DX modules (gerris--mainline--0.7--patch-2)
   gerris--mainline--0.7--patch-2
   Keywords: 
   
   
 
-Tue Oct 19 15:10:19 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
+Tue Oct 19 04:10:19 CEST 2004  Stephane Popinet <popinet at users.sourceforge.net>
   * Updates for release 0.6.0 (gerris--mainline--0.5--patch-8)
   gerris--mainline--0.5--patch-8
   Keywords: 0.6.0
@@ -4558,14 +6040,14 @@ Tue Oct 19 15:10:19 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
   Fix for branch "stable" in cvs2cl.pl
   
 
-Mon Oct 18 15:36:26 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
+Mon Oct 18 04:36:26 CEST 2004  Stephane Popinet <popinet at users.sourceforge.net>
   * GTS solid files can also be written in binary format. (gerris--mainline--0.5--patch-7)
   gerris--mainline--0.5--patch-7
   Keywords: 
   
   
 
-Thu Oct 14 16:31:51 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
+Thu Oct 14 05:31:51 CEST 2004  Stephane Popinet <popinet at users.sourceforge.net>
   * gfs_interpolate uses proper bi(tri)linear interpolation (gerris--mainline--0.5--patch-6)
   gerris--mainline--0.5--patch-6
   Keywords: 
@@ -4580,7 +6062,7 @@ Thu Oct 14 16:31:51 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
   the center (it is equal to the mean of the corner values).
   
 
-Thu Oct 14 11:12:50 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
+Thu Oct 14 00:12:50 CEST 2004  Stephane Popinet <popinet at users.sourceforge.net>
   * Support for binary simulation files (gerris--mainline--0.5--patch-5)
   gerris--mainline--0.5--patch-5
   Keywords: 
@@ -4589,7 +6071,7 @@ Thu Oct 14 11:12:50 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
   There is no consideration of endianess at this point.
   
 
-Wed Oct 13 09:01:45 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
+Tue Oct 12 22:01:45 CEST 2004  Stephane Popinet <popinet at users.sourceforge.net>
   * Checks for periodic bc in interpolations (gerris--mainline--0.5--patch-4)
   gerris--mainline--0.5--patch-4
   Keywords: 
@@ -4598,7 +6080,7 @@ Wed Oct 13 09:01:45 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
   solid boundary fluxes and for corner values.
   
 
-Mon Oct 11 14:39:00 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
+Mon Oct 11 03:39:00 CEST 2004  Stephane Popinet <popinet at users.sourceforge.net>
   * Control of diffusion bc on immersed boundaries (gerris--mainline--0.5--patch-3)
   gerris--mainline--0.5--patch-3
   Keywords: 
@@ -4607,12 +6089,12 @@ Mon Oct 11 14:39:00 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
   can now be set in parameter files.
   
 
-Fri Oct  8 17:35:00 NZDT 2004  Stephane Popinet <popinet at users.sourceforge.net>
+Fri Oct  8 06:35:00 CEST 2004  Stephane Popinet <popinet at users.sourceforge.net>
   * Conversion of .cvsignore to .arch-inventory (gerris--mainline--0.5--patch-1)
   gerris--mainline--0.5--patch-1
   Keywords: 
   
   
 
-Tue Jan 18 13:32:33 NZDT 2005  Stephane Popinet <s.popinet at niwa.co.nz>
+Tue Jan 18 01:32:33 CET 2005  Stephane Popinet <s.popinet at niwa.co.nz>
   * Initial commit (s.popinet at niwa.co.nz--2004/gerris--mainline--0.5)
diff --git a/INSTALL b/INSTALL
index 2550dab..7d1c323 100644
--- a/INSTALL
+++ b/INSTALL
@@ -4,8 +4,10 @@ Installation Instructions
 Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
 
-   This file is free documentation; the Free Software Foundation gives
-unlimited permission to copy, distribute and modify it.
+   Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.  This file is offered as-is,
+without warranty of any kind.
 
 Basic Installation
 ==================
@@ -13,7 +15,11 @@ Basic Installation
    Briefly, the shell commands `./configure; make; make install' should
 configure, build, and install this package.  The following
 more-detailed instructions are generic; see the `README' file for
-instructions specific to this package.
+instructions specific to this package.  Some packages provide this
+`INSTALL' file but do not implement all of the features documented
+below.  The lack of an optional feature in a given package is not
+necessarily a bug.  More recommendations for GNU packages can be found
+in *note Makefile Conventions: (standards)Makefile Conventions.
 
    The `configure' shell script attempts to guess correct values for
 various system-dependent variables used during compilation.  It uses
@@ -42,7 +48,7 @@ may remove or edit it.
 you want to change it or regenerate `configure' using a newer version
 of `autoconf'.
 
-The simplest way to compile this package is:
+   The simplest way to compile this package is:
 
   1. `cd' to the directory containing the package's source code and type
      `./configure' to configure the package for your system.
@@ -53,12 +59,22 @@ The simplest way to compile this package is:
   2. Type `make' to compile the package.
 
   3. Optionally, type `make check' to run any self-tests that come with
-     the package.
+     the package, generally using the just-built uninstalled binaries.
 
   4. Type `make install' to install the programs and any data files and
-     documentation.
-
-  5. You can remove the program binaries and object files from the
+     documentation.  When installing into a prefix owned by root, it is
+     recommended that the package be configured and built as a regular
+     user, and only the `make install' phase executed with root
+     privileges.
+
+  5. Optionally, type `make installcheck' to repeat any self-tests, but
+     this time using the binaries in their final installed location.
+     This target does not install anything.  Running this target as a
+     regular user, particularly if the prior `make install' required
+     root privileges, verifies that the installation completed
+     correctly.
+
+  6. You can remove the program binaries and object files from the
      source code directory by typing `make clean'.  To also remove the
      files that `configure' created (so you can compile the package for
      a different kind of computer), type `make distclean'.  There is
@@ -67,8 +83,15 @@ The simplest way to compile this package is:
      all sorts of other programs in order to regenerate files that came
      with the distribution.
 
-  6. Often, you can also type `make uninstall' to remove the installed
-     files again.
+  7. Often, you can also type `make uninstall' to remove the installed
+     files again.  In practice, not all packages have tested that
+     uninstallation works correctly, even though it is required by the
+     GNU Coding Standards.
+
+  8. Some packages, particularly those that use Automake, provide `make
+     distcheck', which can by used by developers to test that all other
+     targets like `make install' and `make uninstall' work correctly.
+     This target is generally not run by end users.
 
 Compilers and Options
 =====================
@@ -93,7 +116,8 @@ same time, by placing the object files for each architecture in their
 own directory.  To do this, you can use GNU `make'.  `cd' to the
 directory where you want the object files and executables to go and run
 the `configure' script.  `configure' automatically checks for the
-source code in the directory that `configure' is in and in `..'.
+source code in the directory that `configure' is in and in `..'.  This
+is known as a "VPATH" build.
 
    With a non-GNU `make', it is safer to compile the package for one
 architecture at a time in the source code directory.  After you have
@@ -120,7 +144,8 @@ Installation Names
    By default, `make install' installs the package's commands under
 `/usr/local/bin', include files under `/usr/local/include', etc.  You
 can specify an installation prefix other than `/usr/local' by giving
-`configure' the option `--prefix=PREFIX'.
+`configure' the option `--prefix=PREFIX', where PREFIX must be an
+absolute file name.
 
    You can specify separate installation prefixes for
 architecture-specific files and architecture-independent files.  If you
@@ -131,15 +156,46 @@ Documentation and other data files still use the regular prefix.
    In addition, if you use an unusual directory layout you can give
 options like `--bindir=DIR' to specify different values for particular
 kinds of files.  Run `configure --help' for a list of the directories
-you can set and what kinds of files go in them.
+you can set and what kinds of files go in them.  In general, the
+default for these options is expressed in terms of `${prefix}', so that
+specifying just `--prefix' will affect all of the other directory
+specifications that were not explicitly provided.
+
+   The most portable way to affect installation locations is to pass the
+correct locations to `configure'; however, many packages provide one or
+both of the following shortcuts of passing variable assignments to the
+`make install' command line to change installation locations without
+having to reconfigure or recompile.
+
+   The first method involves providing an override variable for each
+affected directory.  For example, `make install
+prefix=/alternate/directory' will choose an alternate location for all
+directory configuration variables that were expressed in terms of
+`${prefix}'.  Any directories that were specified during `configure',
+but not in terms of `${prefix}', must each be overridden at install
+time for the entire installation to be relocated.  The approach of
+makefile variable overrides for each directory variable is required by
+the GNU Coding Standards, and ideally causes no recompilation.
+However, some platforms have known limitations with the semantics of
+shared libraries that end up requiring recompilation when using this
+method, particularly noticeable in packages that use GNU Libtool.
+
+   The second method involves providing the `DESTDIR' variable.  For
+example, `make install DESTDIR=/alternate/directory' will prepend
+`/alternate/directory' before all installation names.  The approach of
+`DESTDIR' overrides is not required by the GNU Coding Standards, and
+does not work on platforms that have drive letters.  On the other hand,
+it does better at avoiding recompilation issues, and works well even
+when some directory options were not specified in terms of `${prefix}'
+at `configure' time.
+
+Optional Features
+=================
 
    If the package supports it, you can cause programs to be installed
 with an extra prefix or suffix on their names by giving `configure' the
 option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
 
-Optional Features
-=================
-
    Some packages pay attention to `--enable-FEATURE' options to
 `configure', where FEATURE indicates an optional part of the package.
 They may also pay attention to `--with-PACKAGE' options, where PACKAGE
@@ -152,6 +208,13 @@ find the X include and library files automatically, but if it doesn't,
 you can use the `configure' options `--x-includes=DIR' and
 `--x-libraries=DIR' to specify their locations.
 
+   Some packages offer the ability to configure how verbose the
+execution of `make' will be.  For these packages, running `./configure
+--enable-silent-rules' sets the default to minimal output, which can be
+overridden with `make V=1'; while running `./configure
+--disable-silent-rules' sets the default to verbose, which can be
+overridden with `make V=0'.
+
 Particular systems
 ==================
 
@@ -288,7 +351,7 @@ operates.
      `configure' can determine that directory automatically.
 
 `--prefix=DIR'
-     Use DIR as the installation prefix.  *Note Installation Names::
+     Use DIR as the installation prefix.  *note Installation Names::
      for more details, including other options available for fine-tuning
      the installation locations.
 
diff --git a/Makefile.am b/Makefile.am
index f407070..755ee10 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -2,7 +2,10 @@
 
 ACLOCAL_AMFLAGS = -I m4
 
-# changed this to your dput command
+# change this to your OSC directory
+OSC_DIR=$(HOME)/local/src/osc/home:popinet/$(PACKAGE)-snapshot
+
+# change this to your dput command
 DPUT = socksify dput
 
 # change this to your launchpad PPA
@@ -39,8 +42,21 @@ debian-snapshot: $(DARCS_CHANGELOG) config.h src/version.h
 
 launchpad-snapshot: $(DARCS_CHANGELOG) config.h src/version.h dist
 	tar xzf gerris-?.?.?.tar.gz
-	cd gerris-?.?.? && ./configure && sh debian/changelog.sh $(LOG) && dpkg-buildpackage -rfakeroot -k$(KEY) -S -sa
+	cd gerris-?.?.? && ./configure && sh debian/changelog.sh $(LOG) && chmod +x debian/rules && dpkg-buildpackage -rfakeroot -k$(KEY) -S -sa
 	rm -f gerris-?.?.?.tar.gz
 	rm -r -f gerris-?.?.?
 	$(DPUT) $(PPA) gerris-snapshot_*_source.changes
 	rm -f gerris-snapshot_*
+
+buildservice-snapshot: $(DARCS_CHANGELOG) config.h src/version.h dist
+	tar xzf $(PACKAGE)-?.?.?.tar.gz
+	rm -f $(PACKAGE)-?.?.?.tar.gz
+	mv -f $(PACKAGE)-?.?.? $(PACKAGE)-snapshot
+	cd $(PACKAGE)-snapshot && ./configure && sh debian/changelog.sh $(LOG) && chmod +x debian/rules && make distclean
+	tar czvf $(PACKAGE)-snapshot.tar.gz $(PACKAGE)-snapshot
+	dpkg-source -b $(PACKAGE)-snapshot
+	rm -r -f $(PACKAGE)-snapshot
+	cd $(OSC_DIR) && osc update && rm -f $(OSC_DIR)/*
+	cp -f rpm/$(PACKAGE).spec $(OSC_DIR)
+	mv -f $(PACKAGE)-snapshot.tar.gz $(PACKAGE)-snapshot_*.tar.gz $(PACKAGE)-snapshot_*.dsc $(OSC_DIR)
+	cd $(OSC_DIR) && osc addremove && osc commit -m "snapshot release"
diff --git a/Makefile.in b/Makefile.in
index a3c891c..7984135 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11 from Makefile.am.
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -130,9 +130,10 @@ ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
 F77 = @F77@
+FC = @FC@
+FCFLAGS = @FCFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
-GFS2D3_LIBS = @GFS2D3_LIBS@
 GFS2D_LIBS = @GFS2D_LIBS@
 GFS3D_LIBS = @GFS3D_LIBS@
 GFS_COMPILATION_FLAGS = @GFS_COMPILATION_FLAGS@
@@ -167,6 +168,7 @@ LT_RELEASE = @LT_RELEASE@
 LT_REVISION = @LT_REVISION@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MODULES = @MODULES@
 NM = @NM@
@@ -174,6 +176,8 @@ NMEDIT = @NMEDIT@
 NO_UNDEFINED = @NO_UNDEFINED@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
+ODE_CFLAGS = @ODE_CFLAGS@
+ODE_LIBS = @ODE_LIBS@
 OTOOL = @OTOOL@
 OTOOL64 = @OTOOL64@
 PACKAGE = @PACKAGE@
@@ -195,9 +199,11 @@ abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
 ac_ct_F77 = @ac_ct_F77@
+ac_ct_FC = @ac_ct_FC@
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
 am__quote = @am__quote@
@@ -234,9 +240,9 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
+ode = @ode@
 oldincludedir = @oldincludedir@
 pdfdir = @pdfdir@
 prefix = @prefix@
@@ -253,7 +259,10 @@ top_srcdir = @top_srcdir@
 use_mpicc = @use_mpicc@
 ACLOCAL_AMFLAGS = -I m4
 
-# changed this to your dput command
+# change this to your OSC directory
+OSC_DIR = $(HOME)/local/src/osc/home:popinet/$(PACKAGE)-snapshot
+
+# change this to your dput command
 DPUT = socksify dput
 
 # change this to your launchpad PPA
@@ -341,7 +350,7 @@ distclean-libtool:
 #     (which will cause the Makefiles to be regenerated when you run `make');
 # (2) otherwise, pass the desired values on the `make' command line.
 $(RECURSIVE_TARGETS):
-	@failcom='exit 1'; \
+	@fail= failcom='exit 1'; \
 	for f in x $$MAKEFLAGS; do \
 	  case $$f in \
 	    *=* | --[!k]*);; \
@@ -366,7 +375,7 @@ $(RECURSIVE_TARGETS):
 	fi; test -z "$$fail"
 
 $(RECURSIVE_CLEAN_TARGETS):
-	@failcom='exit 1'; \
+	@fail= failcom='exit 1'; \
 	for f in x $$MAKEFLAGS; do \
 	  case $$f in \
 	    *=* | --[!k]*);; \
@@ -530,7 +539,8 @@ distdir: $(DISTFILES)
 	  fi; \
 	done
 	-test -n "$(am__skip_mode_fix)" \
-	|| find "$(distdir)" -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
+	|| find "$(distdir)" -type d ! -perm -755 \
+		-exec chmod u+rwx,go+rx {} \; -o \
 	  ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
 	  ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
 	  ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
@@ -574,17 +584,17 @@ dist dist-all: distdir
 distcheck: dist
 	case '$(DIST_ARCHIVES)' in \
 	*.tar.gz*) \
-	  GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
+	  GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
 	*.tar.bz2*) \
-	  bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
+	  bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
 	*.tar.lzma*) \
-	  unlzma -c $(distdir).tar.lzma | $(am__untar) ;;\
+	  lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\
 	*.tar.xz*) \
 	  xz -dc $(distdir).tar.xz | $(am__untar) ;;\
 	*.tar.Z*) \
 	  uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
 	*.shar.gz*) \
-	  GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
+	  GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
 	*.zip*) \
 	  unzip $(distdir).zip ;;\
 	esac
@@ -777,12 +787,25 @@ debian-snapshot: $(DARCS_CHANGELOG) config.h src/version.h
 
 launchpad-snapshot: $(DARCS_CHANGELOG) config.h src/version.h dist
 	tar xzf gerris-?.?.?.tar.gz
-	cd gerris-?.?.? && ./configure && sh debian/changelog.sh $(LOG) && dpkg-buildpackage -rfakeroot -k$(KEY) -S -sa
+	cd gerris-?.?.? && ./configure && sh debian/changelog.sh $(LOG) && chmod +x debian/rules && dpkg-buildpackage -rfakeroot -k$(KEY) -S -sa
 	rm -f gerris-?.?.?.tar.gz
 	rm -r -f gerris-?.?.?
 	$(DPUT) $(PPA) gerris-snapshot_*_source.changes
 	rm -f gerris-snapshot_*
 
+buildservice-snapshot: $(DARCS_CHANGELOG) config.h src/version.h dist
+	tar xzf $(PACKAGE)-?.?.?.tar.gz
+	rm -f $(PACKAGE)-?.?.?.tar.gz
+	mv -f $(PACKAGE)-?.?.? $(PACKAGE)-snapshot
+	cd $(PACKAGE)-snapshot && ./configure && sh debian/changelog.sh $(LOG) && chmod +x debian/rules && make distclean
+	tar czvf $(PACKAGE)-snapshot.tar.gz $(PACKAGE)-snapshot
+	dpkg-source -b $(PACKAGE)-snapshot
+	rm -r -f $(PACKAGE)-snapshot
+	cd $(OSC_DIR) && osc update && rm -f $(OSC_DIR)/*
+	cp -f rpm/$(PACKAGE).spec $(OSC_DIR)
+	mv -f $(PACKAGE)-snapshot.tar.gz $(PACKAGE)-snapshot_*.tar.gz $(PACKAGE)-snapshot_*.dsc $(OSC_DIR)
+	cd $(OSC_DIR) && osc addremove && osc commit -m "snapshot release"
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/TODO b/TODO
index 56cfe58..4c75ddd 100644
--- a/TODO
+++ b/TODO
@@ -34,12 +34,9 @@ Future stuff:
 
 - GFS -> OpenDX file conversion (done 11/2002, DX module).
 
-- Optimize parallel code by overlapping communications and computations: 
+- Optimize parallel code by overlapping communications and
+   computations: (done 2009)
   This could be done relatively easily (in Poisson relaxation for
   example) by first relaxing the cells close to the boundaries, start
   the communications, relax the remaining bulk cells then synchronize
   the communications.
-
-== for 2D3 ==
-
-check on "FTT_CELLS/2" and "ftt_cell_children_direction"
diff --git a/aclocal.m4 b/aclocal.m4
index 2105a06..b0ac0f7 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1,4 +1,4 @@
-# generated automatically by aclocal 1.11 -*- Autoconf -*-
+# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
 
 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
 # 2005, 2006, 2007, 2008, 2009  Free Software Foundation, Inc.
@@ -13,8 +13,8 @@
 
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.65],,
-[m4_warning([this file was generated for autoconf 2.65.
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.67],,
+[m4_warning([this file was generated for autoconf 2.67.
 You have another version of autoconf.  It may work, but is not guaranteed to.
 If you have problems, you may need to regenerate the build system entirely.
 To do so, use the procedure documented by the package, typically `autoreconf'.])])
@@ -34,7 +34,7 @@ AC_DEFUN([AM_AUTOMAKE_VERSION],
 [am__api_version='1.11'
 dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
 dnl require some minimum version.  Point them to the right macro.
-m4_if([$1], [1.11], [],
+m4_if([$1], [1.11.1], [],
       [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
 ])
 
@@ -50,7 +50,7 @@ m4_define([_AM_AUTOCONF_VERSION], [])
 # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
 # This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.11])dnl
+[AM_AUTOMAKE_VERSION([1.11.1])dnl
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
 _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
@@ -691,6 +691,41 @@ AC_MSG_RESULT([$_am_result])
 rm -f confinc confmf
 ])
 
+# Copyright (C) 1999, 2000, 2001, 2003, 2004, 2005, 2008
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 6
+
+# AM_PROG_CC_C_O
+# --------------
+# Like AC_PROG_CC_C_O, but changed for automake.
+AC_DEFUN([AM_PROG_CC_C_O],
+[AC_REQUIRE([AC_PROG_CC_C_O])dnl
+AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([compile])dnl
+# FIXME: we rely on the cache variable name because
+# there is no other way.
+set dummy $CC
+am_cc=`echo $[2] | sed ['s/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/']`
+eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o
+if test "$am_t" != yes; then
+   # Losing compiler, so override with the script.
+   # FIXME: It is wrong to rewrite CC.
+   # But if we don't then we get into trouble of one sort or another.
+   # A longer-term fix would be to have automake use am__CC in this case,
+   # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+   CC="$am_aux_dir/compile $CC"
+fi
+dnl Make sure AC_PROG_CC is never called again, or it will override our
+dnl setting of CC.
+m4_define([AC_PROG_CC],
+          [m4_fatal([AC_PROG_CC cannot be called after AM_PROG_CC_C_O])])
+])
+
 # Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
 
 # Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008
diff --git a/compile b/compile
index a81e000..c0096a7 100755
--- a/compile
+++ b/compile
@@ -1,9 +1,10 @@
 #! /bin/sh
 # Wrapper for compilers which do not understand `-c -o'.
 
-scriptversion=2003-11-09.00
+scriptversion=2009-10-06.20; # UTC
 
-# Copyright (C) 1999, 2000, 2003 Free Software Foundation, Inc.
+# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009  Free Software
+# Foundation, Inc.
 # Written by Tom Tromey <tromey at cygnus.com>.
 #
 # This program is free software; you can redistribute it and/or modify
@@ -17,8 +18,7 @@ scriptversion=2003-11-09.00
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
@@ -47,45 +47,49 @@ right script to run: please start by reading the file `INSTALL'.
 
 Report bugs to <bug-automake at gnu.org>.
 EOF
-    exit 0
+    exit $?
     ;;
   -v | --v*)
     echo "compile $scriptversion"
-    exit 0
+    exit $?
     ;;
 esac
 
-
-prog=$1
-shift
-
 ofile=
 cfile=
-args=
-while test $# -gt 0; do
-  case "$1" in
-    -o)
-      # configure might choose to run compile as `compile cc -o foo foo.c'.
-      # So we do something ugly here.
-      ofile=$2
-      shift
-      case "$ofile" in
-	*.o | *.obj)
-	  ;;
-	*)
-	  args="$args -o $ofile"
-	  ofile=
-	  ;;
-      esac
-       ;;
-    *.c)
-      cfile=$1
-      args="$args $1"
-      ;;
-    *)
-      args="$args $1"
-      ;;
-  esac
+eat=
+
+for arg
+do
+  if test -n "$eat"; then
+    eat=
+  else
+    case $1 in
+      -o)
+	# configure might choose to run compile as `compile cc -o foo foo.c'.
+	# So we strip `-o arg' only if arg is an object.
+	eat=1
+	case $2 in
+	  *.o | *.obj)
+	    ofile=$2
+	    ;;
+	  *)
+	    set x "$@" -o "$2"
+	    shift
+	    ;;
+	esac
+	;;
+      *.c)
+	cfile=$1
+	set x "$@" "$1"
+	shift
+	;;
+      *)
+	set x "$@" "$1"
+	shift
+	;;
+    esac
+  fi
   shift
 done
 
@@ -95,36 +99,38 @@ if test -z "$ofile" || test -z "$cfile"; then
   # normal compilation that the losing compiler can handle.  If no
   # `.c' file was seen then we are probably linking.  That is also
   # ok.
-  exec "$prog" $args
+  exec "$@"
 fi
 
 # Name of file we expect compiler to create.
-cofile=`echo $cfile | sed -e 's|^.*/||' -e 's/\.c$/.o/'`
+cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
 
 # Create the lock directory.
-# Note: use `[/.-]' here to ensure that we don't use the same name
+# Note: use `[/\\:.-]' here to ensure that we don't use the same name
 # that we are using for the .o file.  Also, base the name on the expected
 # object file name, since that is what matters with a parallel build.
-lockdir=`echo $cofile | sed -e 's|[/.-]|_|g'`.d
+lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
 while true; do
-  if mkdir $lockdir > /dev/null 2>&1; then
+  if mkdir "$lockdir" >/dev/null 2>&1; then
     break
   fi
   sleep 1
 done
 # FIXME: race condition here if user kills between mkdir and trap.
-trap "rmdir $lockdir; exit 1" 1 2 15
+trap "rmdir '$lockdir'; exit 1" 1 2 15
 
 # Run the compile.
-"$prog" $args
-status=$?
+"$@"
+ret=$?
 
 if test -f "$cofile"; then
-  mv "$cofile" "$ofile"
+  test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
+elif test -f "${cofile}bj"; then
+  test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
 fi
 
-rmdir $lockdir
-exit $status
+rmdir "$lockdir"
+exit $ret
 
 # Local Variables:
 # mode: shell-script
@@ -132,5 +138,6 @@ exit $status
 # eval: (add-hook 'write-file-hooks 'time-stamp)
 # time-stamp-start: "scriptversion="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-end: "$"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
 # End:
diff --git a/config.guess b/config.guess
index e3a2116..dc84c68 100755
--- a/config.guess
+++ b/config.guess
@@ -4,7 +4,7 @@
 #   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
 #   Free Software Foundation, Inc.
 
-timestamp='2009-06-10'
+timestamp='2009-11-20'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -27,16 +27,16 @@ timestamp='2009-06-10'
 # the same distribution terms that you use for the rest of that program.
 
 
-# Originally written by Per Bothner <per at bothner.com>.
-# Please send patches to <config-patches at gnu.org>.  Submit a context
-# diff and a properly formatted ChangeLog entry.
+# Originally written by Per Bothner.  Please send patches (context
+# diff format) to <config-patches at gnu.org> and include a ChangeLog
+# entry.
 #
 # This script attempts to guess a canonical system name similar to
 # config.sub.  If it succeeds, it prints the system name on stdout, and
 # exits with 0.  Otherwise, it exits with 1.
 #
-# The plan is that this can be called by configure scripts if you
-# don't specify an explicit build system type.
+# You can get the latest version of this script from:
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
 
 me=`echo "$0" | sed -e 's,.*/,,'`
 
@@ -333,6 +333,9 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
     sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
 	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
 	exit ;;
+    i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
+	echo i386-pc-auroraux${UNAME_RELEASE}
+	exit ;;
     i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
 	eval $set_cc_for_build
 	SUN_ARCH="i386"
@@ -807,12 +810,12 @@ EOF
     i*:PW*:*)
 	echo ${UNAME_MACHINE}-pc-pw32
 	exit ;;
-    *:Interix*:[3456]*)
+    *:Interix*:*)
     	case ${UNAME_MACHINE} in
 	    x86)
 		echo i586-pc-interix${UNAME_RELEASE}
 		exit ;;
-	    EM64T | authenticamd | genuineintel)
+	    authenticamd | genuineintel | EM64T)
 		echo x86_64-unknown-interix${UNAME_RELEASE}
 		exit ;;
 	    IA64)
@@ -854,6 +857,20 @@ EOF
     i*86:Minix:*:*)
 	echo ${UNAME_MACHINE}-pc-minix
 	exit ;;
+    alpha:Linux:*:*)
+	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+	  EV5)   UNAME_MACHINE=alphaev5 ;;
+	  EV56)  UNAME_MACHINE=alphaev56 ;;
+	  PCA56) UNAME_MACHINE=alphapca56 ;;
+	  PCA57) UNAME_MACHINE=alphapca56 ;;
+	  EV6)   UNAME_MACHINE=alphaev6 ;;
+	  EV67)  UNAME_MACHINE=alphaev67 ;;
+	  EV68*) UNAME_MACHINE=alphaev68 ;;
+        esac
+	objdump --private-headers /bin/sh | grep -q ld.so.1
+	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
+	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+	exit ;;
     arm*:Linux:*:*)
 	eval $set_cc_for_build
 	if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
@@ -876,6 +893,17 @@ EOF
     frv:Linux:*:*)
     	echo frv-unknown-linux-gnu
 	exit ;;
+    i*86:Linux:*:*)
+	LIBC=gnu
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+	#ifdef __dietlibc__
+	LIBC=dietlibc
+	#endif
+EOF
+	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
+	echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
+	exit ;;
     ia64:Linux:*:*)
 	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
@@ -901,39 +929,18 @@ EOF
 	#endif
 	#endif
 EOF
-	eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
-	    /^CPU/{
-		s: ::g
-		p
-	    }'`"
+	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
 	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
 	;;
     or32:Linux:*:*)
 	echo or32-unknown-linux-gnu
 	exit ;;
-    ppc:Linux:*:*)
-	echo powerpc-unknown-linux-gnu
-	exit ;;
-    ppc64:Linux:*:*)
-	echo powerpc64-unknown-linux-gnu
-	exit ;;
-    alpha:Linux:*:*)
-	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
-	  EV5)   UNAME_MACHINE=alphaev5 ;;
-	  EV56)  UNAME_MACHINE=alphaev56 ;;
-	  PCA56) UNAME_MACHINE=alphapca56 ;;
-	  PCA57) UNAME_MACHINE=alphapca56 ;;
-	  EV6)   UNAME_MACHINE=alphaev6 ;;
-	  EV67)  UNAME_MACHINE=alphaev67 ;;
-	  EV68*) UNAME_MACHINE=alphaev68 ;;
-        esac
-	objdump --private-headers /bin/sh | grep -q ld.so.1
-	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
-	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
-	exit ;;
     padre:Linux:*:*)
 	echo sparc-unknown-linux-gnu
 	exit ;;
+    parisc64:Linux:*:* | hppa64:Linux:*:*)
+	echo hppa64-unknown-linux-gnu
+	exit ;;
     parisc:Linux:*:* | hppa:Linux:*:*)
 	# Look for CPU level
 	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
@@ -942,8 +949,11 @@ EOF
 	  *)    echo hppa-unknown-linux-gnu ;;
 	esac
 	exit ;;
-    parisc64:Linux:*:* | hppa64:Linux:*:*)
-	echo hppa64-unknown-linux-gnu
+    ppc64:Linux:*:*)
+	echo powerpc64-unknown-linux-gnu
+	exit ;;
+    ppc:Linux:*:*)
+	echo powerpc-unknown-linux-gnu
 	exit ;;
     s390:Linux:*:* | s390x:Linux:*:*)
 	echo ${UNAME_MACHINE}-ibm-linux
@@ -966,58 +976,6 @@ EOF
     xtensa*:Linux:*:*)
     	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
-    i*86:Linux:*:*)
-	# The BFD linker knows what the default object file format is, so
-	# first see if it will tell us. cd to the root directory to prevent
-	# problems with other programs or directories called `ld' in the path.
-	# Set LC_ALL=C to ensure ld outputs messages in English.
-	ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
-			 | sed -ne '/supported targets:/!d
-				    s/[ 	][ 	]*/ /g
-				    s/.*supported targets: *//
-				    s/ .*//
-				    p'`
-        case "$ld_supported_targets" in
-	  elf32-i386)
-		TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
-		;;
-	esac
-	# Determine whether the default compiler is a.out or elf
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-	#include <features.h>
-	#ifdef __ELF__
-	# ifdef __GLIBC__
-	#  if __GLIBC__ >= 2
-	LIBC=gnu
-	#  else
-	LIBC=gnulibc1
-	#  endif
-	# else
-	LIBC=gnulibc1
-	# endif
-	#else
-	#if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC)
-	LIBC=gnu
-	#else
-	LIBC=gnuaout
-	#endif
-	#endif
-	#ifdef __dietlibc__
-	LIBC=dietlibc
-	#endif
-EOF
-	eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
-	    /^LIBC/{
-		s: ::g
-		p
-	    }'`"
-	test x"${LIBC}" != x && {
-		echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
-		exit
-	}
-	test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; }
-	;;
     i*86:DYNIX/ptx:4*:*)
 	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
 	# earlier versions are messed up and put the nodename in both
@@ -1247,6 +1205,16 @@ EOF
     *:Darwin:*:*)
 	UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
 	case $UNAME_PROCESSOR in
+	    i386)
+		eval $set_cc_for_build
+		if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+		  if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
+		      (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+		      grep IS_64BIT_ARCH >/dev/null
+		  then
+		      UNAME_PROCESSOR="x86_64"
+		  fi
+		fi ;;
 	    unknown) UNAME_PROCESSOR=powerpc ;;
 	esac
 	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
diff --git a/config.h.in b/config.h.in
index 446b020..c7a9946 100644
--- a/config.h.in
+++ b/config.h.in
@@ -33,9 +33,15 @@
 /* Define to 1 if you have the `getopt_long' function. */
 #undef HAVE_GETOPT_LONG
 
+/* Define to 1 if you have the <HYPRE.h> header file. */
+#undef HAVE_HYPRE_H
+
 /* Define to 1 if you have the <inttypes.h> header file. */
 #undef HAVE_INTTYPES_H
 
+/* Define to 1 if you have the <lis.h> header file. */
+#undef HAVE_LIS_H
+
 /* Define to 1 if gawk and m4 are available. */
 #undef HAVE_M4
 
@@ -82,6 +88,9 @@
 /* Linking flags to build modules. */
 #undef MODULES_FLAGS
 
+/* Define to 1 if your C compiler doesn't accept -c and -o together. */
+#undef NO_MINUS_C_MINUS_O
+
 /* Define to the address where bug reports for this package should be sent. */
 #undef PACKAGE_BUGREPORT
 
diff --git a/config.sub b/config.sub
index eb0389a..2a55a50 100755
--- a/config.sub
+++ b/config.sub
@@ -4,7 +4,7 @@
 #   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
 #   Free Software Foundation, Inc.
 
-timestamp='2009-06-11'
+timestamp='2009-11-20'
 
 # This file is (in principle) common to ALL GNU software.
 # The presence of a machine in this file suggests that SOME GNU software
@@ -32,13 +32,16 @@ timestamp='2009-06-11'
 
 
 # Please send patches to <config-patches at gnu.org>.  Submit a context
-# diff and a properly formatted ChangeLog entry.
+# diff and a properly formatted GNU ChangeLog entry.
 #
 # Configuration subroutine to validate and canonicalize a configuration type.
 # Supply the specified configuration type as an argument.
 # If it is invalid, we print an error message on stderr and exit with code 1.
 # Otherwise, we print the canonical config type on stdout and succeed.
 
+# You can get the latest version of this script from:
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+
 # This file is supposed to be the same for all GNU packages
 # and recognize all the CPU types, system types and aliases
 # that are meaningful with *any* GNU software.
@@ -149,7 +152,7 @@ case $os in
 	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
 	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
 	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
-	-apple | -axis | -knuth | -cray)
+	-apple | -axis | -knuth | -cray | -microblaze)
 		os=
 		basic_machine=$1
 		;;
@@ -284,6 +287,7 @@ case $basic_machine in
 	| pdp10 | pdp11 | pj | pjl \
 	| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
 	| pyramid \
+	| rx \
 	| score \
 	| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
 	| sh64 | sh64le \
@@ -291,13 +295,14 @@ case $basic_machine in
 	| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
 	| spu | strongarm \
 	| tahoe | thumb | tic4x | tic80 | tron \
+	| ubicom32 \
 	| v850 | v850e \
 	| we32k \
 	| x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
 	| z8k | z80)
 		basic_machine=$basic_machine-unknown
 		;;
-	m6811 | m68hc11 | m6812 | m68hc12)
+	m6811 | m68hc11 | m6812 | m68hc12 | picochip)
 		# Motorola 68HC11/12.
 		basic_machine=$basic_machine-unknown
 		os=-none
@@ -340,7 +345,7 @@ case $basic_machine in
 	| lm32-* \
 	| m32c-* | m32r-* | m32rle-* \
 	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
-	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
+	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
 	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
 	| mips16-* \
 	| mips64-* | mips64el-* \
@@ -368,7 +373,7 @@ case $basic_machine in
 	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
 	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
 	| pyramid-* \
-	| romp-* | rs6000-* \
+	| romp-* | rs6000-* | rx-* \
 	| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
 	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
 	| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
@@ -377,6 +382,7 @@ case $basic_machine in
 	| tahoe-* | thumb-* \
 	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \
 	| tron-* \
+	| ubicom32-* \
 	| v850-* | v850e-* | vax-* \
 	| we32k-* \
 	| x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
@@ -726,6 +732,9 @@ case $basic_machine in
 		basic_machine=ns32k-utek
 		os=-sysv
 		;;
+        microblaze)
+		basic_machine=microblaze-xilinx
+		;;
 	mingw32)
 		basic_machine=i386-pc
 		os=-mingw32
@@ -1247,6 +1256,9 @@ case $os in
         # First match some system type aliases
         # that might get confused with valid system types.
 	# -solaris* is a basic system type, with this one exception.
+        -auroraux)
+	        os=-auroraux
+		;;
 	-solaris1 | -solaris1.*)
 		os=`echo $os | sed -e 's|solaris1|sunos4|'`
 		;;
@@ -1268,8 +1280,8 @@ case $os in
 	# -sysv* is not here because it comes later, after sysvr4.
 	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
 	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
-	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
-	      | -kopensolaris* \
+	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
+	      | -sym* | -kopensolaris* \
 	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
 	      | -aos* | -aros* \
 	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
@@ -1290,7 +1302,7 @@ case $os in
 	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
 	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
 	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
-	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops*)
+	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
 	# Remember, each alternative MUST END IN *, to match a version number.
 		;;
 	-qnx*)
diff --git a/configure b/configure
index 3ac344b..4e7a0b7 100755
--- a/configure
+++ b/configure
@@ -1,11 +1,11 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.65.
+# Generated by GNU Autoconf 2.67.
 #
 #
 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
-# Inc.
+# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
+# Foundation, Inc.
 #
 #
 # This configure script is free software; the Free Software Foundation
@@ -171,6 +171,14 @@ test x\$exitcode = x0 || exit 1"
   as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
   eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
   test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
+
+  test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || (
+    ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+    ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
+    ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
+    PATH=/empty FPATH=/empty; export PATH FPATH
+    test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\
+      || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1
 test \$(( 1 + 1 )) = 2 || exit 1"
   if (eval "$as_required") 2>/dev/null; then :
   as_have_required=yes
@@ -316,7 +324,7 @@ $as_echo X"$as_dir" |
       test -d "$as_dir" && break
     done
     test -z "$as_dirs" || eval "mkdir $as_dirs"
-  } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
+  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
 
 
 } # as_fn_mkdir_p
@@ -356,19 +364,19 @@ else
 fi # as_fn_arith
 
 
-# as_fn_error ERROR [LINENO LOG_FD]
-# ---------------------------------
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
 # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
 # provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with status $?, using 1 if that was 0.
+# script with STATUS, using 1 if that was 0.
 as_fn_error ()
 {
-  as_status=$?; test $as_status -eq 0 && as_status=1
-  if test "$3"; then
-    as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-    $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
+  as_status=$1; test $as_status -eq 0 && as_status=1
+  if test "$4"; then
+    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
   fi
-  $as_echo "$as_me: error: $1" >&2
+  $as_echo "$as_me: error: $2" >&2
   as_fn_exit $as_status
 } # as_fn_error
 
@@ -525,161 +533,14 @@ as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
 # Sed expression to map a string onto a valid variable name.
 as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
 
-
-
-# Check that we are running under the correct shell.
 SHELL=${CONFIG_SHELL-/bin/sh}
 
-case X$lt_ECHO in
-X*--fallback-echo)
-  # Remove one level of quotation (which was required for Make).
-  ECHO=`echo "$lt_ECHO" | sed 's,\\\\\$\\$0,'$0','`
-  ;;
-esac
-
-ECHO=${lt_ECHO-echo}
-if test "X$1" = X--no-reexec; then
-  # Discard the --no-reexec flag, and continue.
-  shift
-elif test "X$1" = X--fallback-echo; then
-  # Avoid inline document here, it may be left over
-  :
-elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then
-  # Yippee, $ECHO works!
-  :
-else
-  # Restart under the correct shell.
-  exec $SHELL "$0" --no-reexec ${1+"$@"}
-fi
-
-if test "X$1" = X--fallback-echo; then
-  # used as fallback echo
-  shift
-  cat <<_LT_EOF
-$*
-_LT_EOF
-  exit 0
-fi
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-if test -z "$lt_ECHO"; then
-  if test "X${echo_test_string+set}" != Xset; then
-    # find a string as large as possible, as long as the shell can cope with it
-    for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do
-      # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
-      if { echo_test_string=`eval $cmd`; } 2>/dev/null &&
-	 { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null
-      then
-        break
-      fi
-    done
-  fi
-
-  if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
-     echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
-     test "X$echo_testing_string" = "X$echo_test_string"; then
-    :
-  else
-    # The Solaris, AIX, and Digital Unix default echo programs unquote
-    # backslashes.  This makes it impossible to quote backslashes using
-    #   echo "$something" | sed 's/\\/\\\\/g'
-    #
-    # So, first we look for a working echo in the user's PATH.
-
-    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-    for dir in $PATH /usr/ucb; do
-      IFS="$lt_save_ifs"
-      if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
-         test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
-         echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
-         test "X$echo_testing_string" = "X$echo_test_string"; then
-        ECHO="$dir/echo"
-        break
-      fi
-    done
-    IFS="$lt_save_ifs"
-
-    if test "X$ECHO" = Xecho; then
-      # We didn't find a better echo, so look for alternatives.
-      if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' &&
-         echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` &&
-         test "X$echo_testing_string" = "X$echo_test_string"; then
-        # This shell has a builtin print -r that does the trick.
-        ECHO='print -r'
-      elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } &&
-	   test "X$CONFIG_SHELL" != X/bin/ksh; then
-        # If we have ksh, try running configure again with it.
-        ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
-        export ORIGINAL_CONFIG_SHELL
-        CONFIG_SHELL=/bin/ksh
-        export CONFIG_SHELL
-        exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"}
-      else
-        # Try using printf.
-        ECHO='printf %s\n'
-        if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
-	   echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
-	   test "X$echo_testing_string" = "X$echo_test_string"; then
-	  # Cool, printf works
-	  :
-        elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
-	     test "X$echo_testing_string" = 'X\t' &&
-	     echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
-	     test "X$echo_testing_string" = "X$echo_test_string"; then
-	  CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
-	  export CONFIG_SHELL
-	  SHELL="$CONFIG_SHELL"
-	  export SHELL
-	  ECHO="$CONFIG_SHELL $0 --fallback-echo"
-        elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
-	     test "X$echo_testing_string" = 'X\t' &&
-	     echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
-	     test "X$echo_testing_string" = "X$echo_test_string"; then
-	  ECHO="$CONFIG_SHELL $0 --fallback-echo"
-        else
-	  # maybe with a smaller string...
-	  prev=:
-
-	  for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do
-	    if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null
-	    then
-	      break
-	    fi
-	    prev="$cmd"
-	  done
-
-	  if test "$prev" != 'sed 50q "$0"'; then
-	    echo_test_string=`eval $prev`
-	    export echo_test_string
-	    exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"}
-	  else
-	    # Oops.  We lost completely, so just stick with echo.
-	    ECHO=echo
-	  fi
-        fi
-      fi
-    fi
-  fi
-fi
-
-# Copy echo and quote the copy suitably for passing to libtool from
-# the Makefile, instead of quoting the original, which is used later.
-lt_ECHO=$ECHO
-if test "X$lt_ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then
-   lt_ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo"
-fi
-
-
-
 
 test -n "$DJDIR" || exec 7<&0 </dev/null
 exec 6>&1
 
 # Name of the host.
-# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
+# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
 # so uname gets run too.
 ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
 
@@ -746,13 +607,26 @@ LTLIBOBJS
 LIBOBJS
 DARCS_CONTROLLED_FALSE
 DARCS_CONTROLLED_TRUE
-GFS2D3_LIBS
 GFS3D_LIBS
 GFS2D_LIBS
 MODULES
+BUILD_LIS_FALSE
+BUILD_LIS_TRUE
+BUILD_HYPRE_FALSE
+BUILD_HYPRE_TRUE
+BUILD_ODE_FALSE
+BUILD_ODE_TRUE
+ODE_LIBS
+ODE_CFLAGS
+ode
 W3INIT
 BUILD_WAVEWATCH_FALSE
 BUILD_WAVEWATCH_TRUE
+BUILD_AGMG_FALSE
+BUILD_AGMG_TRUE
+ac_ct_FC
+FCFLAGS
+FC
 BUILD_STOKES_FALSE
 BUILD_STOKES_TRUE
 ac_ct_F77
@@ -762,6 +636,8 @@ BUILD_TIDE_FALSE
 BUILD_TIDE_TRUE
 HAS_NETCDF_FALSE
 HAS_NETCDF_TRUE
+HAS_GSL_FALSE
+HAS_GSL_TRUE
 GSL_LIBS
 GSL_CFLAGS
 GSL_CONFIG
@@ -786,8 +662,9 @@ OTOOL
 LIPO
 NMEDIT
 DSYMUTIL
-lt_ECHO
+MANIFEST_TOOL
 RANLIB
+ac_ct_AR
 AR
 LN_S
 NM
@@ -912,6 +789,7 @@ enable_static
 with_pic
 enable_fast_install
 with_gnu_ld
+with_sysroot
 enable_libtool_lock
 enable_libtool_verbose
 enable_gts_check
@@ -922,6 +800,7 @@ enable_modules
 with_gsl_prefix
 with_gsl_exec_prefix
 enable_gsltest
+enable_agmg
 '
       ac_precious_vars='build_alias
 host_alias
@@ -933,7 +812,9 @@ LIBS
 CPPFLAGS
 CPP
 F77
-FFLAGS'
+FFLAGS
+FC
+FCFLAGS'
 
 
 # Initialize some variables set by options.
@@ -996,8 +877,9 @@ do
   fi
 
   case $ac_option in
-  *=*)	ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
-  *)	ac_optarg=yes ;;
+  *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+  *=)   ac_optarg= ;;
+  *)    ac_optarg=yes ;;
   esac
 
   # Accept the important Cygnus configure options, so we can diagnose typos.
@@ -1042,7 +924,7 @@ do
     ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error "invalid feature name: $ac_useropt"
+      as_fn_error $? "invalid feature name: $ac_useropt"
     ac_useropt_orig=$ac_useropt
     ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
@@ -1068,7 +950,7 @@ do
     ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error "invalid feature name: $ac_useropt"
+      as_fn_error $? "invalid feature name: $ac_useropt"
     ac_useropt_orig=$ac_useropt
     ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
@@ -1272,7 +1154,7 @@ do
     ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error "invalid package name: $ac_useropt"
+      as_fn_error $? "invalid package name: $ac_useropt"
     ac_useropt_orig=$ac_useropt
     ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
@@ -1288,7 +1170,7 @@ do
     ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error "invalid package name: $ac_useropt"
+      as_fn_error $? "invalid package name: $ac_useropt"
     ac_useropt_orig=$ac_useropt
     ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
@@ -1318,8 +1200,8 @@ do
   | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
     x_libraries=$ac_optarg ;;
 
-  -*) as_fn_error "unrecognized option: \`$ac_option'
-Try \`$0 --help' for more information."
+  -*) as_fn_error $? "unrecognized option: \`$ac_option'
+Try \`$0 --help' for more information"
     ;;
 
   *=*)
@@ -1327,7 +1209,7 @@ Try \`$0 --help' for more information."
     # Reject names that are not valid shell variable names.
     case $ac_envvar in #(
       '' | [0-9]* | *[!_$as_cr_alnum]* )
-      as_fn_error "invalid variable name: \`$ac_envvar'" ;;
+      as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
     esac
     eval $ac_envvar=\$ac_optarg
     export $ac_envvar ;;
@@ -1345,13 +1227,13 @@ done
 
 if test -n "$ac_prev"; then
   ac_option=--`echo $ac_prev | sed 's/_/-/g'`
-  as_fn_error "missing argument to $ac_option"
+  as_fn_error $? "missing argument to $ac_option"
 fi
 
 if test -n "$ac_unrecognized_opts"; then
   case $enable_option_checking in
     no) ;;
-    fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;;
+    fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
     *)     $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
   esac
 fi
@@ -1374,7 +1256,7 @@ do
     [\\/$]* | ?:[\\/]* )  continue;;
     NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
   esac
-  as_fn_error "expected an absolute directory name for --$ac_var: $ac_val"
+  as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
 done
 
 # There might be people who depend on the old broken behavior: `$host'
@@ -1388,8 +1270,8 @@ target=$target_alias
 if test "x$host_alias" != x; then
   if test "x$build_alias" = x; then
     cross_compiling=maybe
-    $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
-    If a cross compiler is detected then cross compile mode will be used." >&2
+    $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host.
+    If a cross compiler is detected then cross compile mode will be used" >&2
   elif test "x$build_alias" != "x$host_alias"; then
     cross_compiling=yes
   fi
@@ -1404,9 +1286,9 @@ test "$silent" = yes && exec 6>/dev/null
 ac_pwd=`pwd` && test -n "$ac_pwd" &&
 ac_ls_di=`ls -di .` &&
 ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
-  as_fn_error "working directory cannot be determined"
+  as_fn_error $? "working directory cannot be determined"
 test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
-  as_fn_error "pwd does not report name of working directory"
+  as_fn_error $? "pwd does not report name of working directory"
 
 
 # Find the source files, if location was not specified.
@@ -1445,11 +1327,11 @@ else
 fi
 if test ! -r "$srcdir/$ac_unique_file"; then
   test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
-  as_fn_error "cannot find sources ($ac_unique_file) in $srcdir"
+  as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
 fi
 ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
 ac_abs_confdir=`(
-	cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg"
+	cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
 	pwd)`
 # When building in place, set srcdir=.
 if test "$ac_abs_confdir" = "$ac_pwd"; then
@@ -1489,7 +1371,7 @@ Configuration:
       --help=short        display options specific to this package
       --help=recursive    display the short help of all the included packages
   -V, --version           display version information and exit
-  -q, --quiet, --silent   do not print \`checking...' messages
+  -q, --quiet, --silent   do not print \`checking ...' messages
       --cache-file=FILE   cache test results in FILE [disabled]
   -C, --config-cache      alias for \`--cache-file=config.cache'
   -n, --no-create         do not create output files
@@ -1566,6 +1448,7 @@ Optional Features:
   --disable-gtstest       Do not try to compile and run a test GTS program
   --disable-modules       link modules statically with the executables
   --disable-gsltest       Do not try to compile and run a test GSL program
+  --enable-agmg enable the AGMG module (beware of non-free license)
 
 Optional Packages:
   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
@@ -1574,6 +1457,8 @@ Optional Packages:
   --with-pic              try to use only PIC/non-PIC objects [default=use
                           both]
   --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
+  --with-sysroot=DIR Search for dependent libraries within DIR
+                        (or the compiler's sysroot if not specified).
   --with-gts-prefix=PFX   Prefix where GTS is installed (optional)
   --with-gts-exec-prefix=PFX Exec prefix where GTS is installed (optional)
   --with-gsl-prefix=PFX   Prefix where GSL is installed (optional)
@@ -1590,6 +1475,8 @@ Some influential environment variables:
   CPP         C preprocessor
   F77         Fortran 77 compiler command
   FFLAGS      Fortran 77 compiler flags
+  FC          Fortran compiler command
+  FCFLAGS     Fortran compiler flags
 
 Use these variables to override the choices made by `configure' or to help
 it to find libraries and programs with nonstandard names/locations.
@@ -1658,9 +1545,9 @@ test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
 configure
-generated by GNU Autoconf 2.65
+generated by GNU Autoconf 2.67
 
-Copyright (C) 2009 Free Software Foundation, Inc.
+Copyright (C) 2010 Free Software Foundation, Inc.
 This configure script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it.
 _ACEOF
@@ -1764,7 +1651,7 @@ ac_fn_c_check_header_compile ()
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
 $as_echo_n "checking for $2... " >&6; }
-if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$3+set}\"" = set; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -1807,7 +1694,7 @@ $as_echo "$ac_try_echo"; } >&5
     mv -f conftest.er1 conftest.err
   fi
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } >/dev/null && {
+  test $ac_status = 0; } > conftest.i && {
 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        }; then :
@@ -1873,7 +1760,7 @@ ac_fn_c_check_func ()
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
 $as_echo_n "checking for $2... " >&6; }
-if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$3+set}\"" = set; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -1940,10 +1827,10 @@ $as_echo "$ac_res" >&6; }
 ac_fn_c_check_header_mongrel ()
 {
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+  if eval "test \"\${$3+set}\"" = set; then :
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
 $as_echo_n "checking for $2... " >&6; }
-if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$3+set}\"" = set; then :
   $as_echo_n "(cached) " >&6
 fi
 eval ac_res=\$$3
@@ -1979,7 +1866,7 @@ if ac_fn_c_try_cpp "$LINENO"; then :
 else
   ac_header_preproc=no
 fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
 $as_echo "$ac_header_preproc" >&6; }
 
@@ -2006,7 +1893,7 @@ $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
 esac
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
 $as_echo_n "checking for $2... " >&6; }
-if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${$3+set}\"" = set; then :
   $as_echo_n "(cached) " >&6
 else
   eval "$3=\$ac_header_compiler"
@@ -2102,12 +1989,96 @@ fi
   as_fn_set_status $ac_retval
 
 } # ac_fn_f77_try_link
+
+# ac_fn_fc_try_compile LINENO
+# ---------------------------
+# Try to compile conftest.$ac_ext, and return whether this succeeded.
+ac_fn_fc_try_compile ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  rm -f conftest.$ac_objext
+  if { { ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compile") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && {
+	 test -z "$ac_fc_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_retval=1
+fi
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  as_fn_set_status $ac_retval
+
+} # ac_fn_fc_try_compile
+
+# ac_fn_fc_try_link LINENO
+# ------------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded.
+ac_fn_fc_try_link ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  rm -f conftest.$ac_objext conftest$ac_exeext
+  if { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && {
+	 test -z "$ac_fc_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_retval=1
+fi
+  # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
+  # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
+  # interfere with the next link command; also delete a directory that is
+  # left behind by Apple's compiler.  We do this before executing the actions.
+  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  as_fn_set_status $ac_retval
+
+} # ac_fn_fc_try_link
 cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
 It was created by $as_me, which was
-generated by GNU Autoconf 2.65.  Invocation command line was
+generated by GNU Autoconf 2.67.  Invocation command line was
 
   $ $0 $@
 
@@ -2217,11 +2188,9 @@ trap 'exit_status=$?
   {
     echo
 
-    cat <<\_ASBOX
-## ---------------- ##
+    $as_echo "## ---------------- ##
 ## Cache variables. ##
-## ---------------- ##
-_ASBOX
+## ---------------- ##"
     echo
     # The following way of writing the cache mishandles newlines in values,
 (
@@ -2255,11 +2224,9 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
 )
     echo
 
-    cat <<\_ASBOX
-## ----------------- ##
+    $as_echo "## ----------------- ##
 ## Output variables. ##
-## ----------------- ##
-_ASBOX
+## ----------------- ##"
     echo
     for ac_var in $ac_subst_vars
     do
@@ -2272,11 +2239,9 @@ _ASBOX
     echo
 
     if test -n "$ac_subst_files"; then
-      cat <<\_ASBOX
-## ------------------- ##
+      $as_echo "## ------------------- ##
 ## File substitutions. ##
-## ------------------- ##
-_ASBOX
+## ------------------- ##"
       echo
       for ac_var in $ac_subst_files
       do
@@ -2290,11 +2255,9 @@ _ASBOX
     fi
 
     if test -s confdefs.h; then
-      cat <<\_ASBOX
-## ----------- ##
+      $as_echo "## ----------- ##
 ## confdefs.h. ##
-## ----------- ##
-_ASBOX
+## ----------- ##"
       echo
       cat confdefs.h
       echo
@@ -2349,7 +2312,12 @@ _ACEOF
 ac_site_file1=NONE
 ac_site_file2=NONE
 if test -n "$CONFIG_SITE"; then
-  ac_site_file1=$CONFIG_SITE
+  # We do not want a PATH search for config.site.
+  case $CONFIG_SITE in #((
+    -*)  ac_site_file1=./$CONFIG_SITE;;
+    */*) ac_site_file1=$CONFIG_SITE;;
+    *)   ac_site_file1=./$CONFIG_SITE;;
+  esac
 elif test "x$prefix" != xNONE; then
   ac_site_file1=$prefix/share/config.site
   ac_site_file2=$prefix/etc/config.site
@@ -2364,7 +2332,11 @@ do
     { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
 $as_echo "$as_me: loading site script $ac_site_file" >&6;}
     sed 's/^/| /' "$ac_site_file" >&5
-    . "$ac_site_file"
+    . "$ac_site_file" \
+      || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "failed to load site script $ac_site_file
+See \`config.log' for more details" "$LINENO" 5 ; }
   fi
 done
 
@@ -2440,7 +2412,7 @@ if $ac_cache_corrupted; then
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
   { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
-  as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
+  as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
 fi
 ## -------------------- ##
 ## Main body of script. ##
@@ -2498,16 +2470,22 @@ am__api_version='1.11'
 
 ac_aux_dir=
 for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
-  for ac_t in install-sh install.sh shtool; do
-    if test -f "$ac_dir/$ac_t"; then
-      ac_aux_dir=$ac_dir
-      ac_install_sh="$ac_aux_dir/$ac_t -c"
-      break 2
-    fi
-  done
+  if test -f "$ac_dir/install-sh"; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install-sh -c"
+    break
+  elif test -f "$ac_dir/install.sh"; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install.sh -c"
+    break
+  elif test -f "$ac_dir/shtool"; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/shtool install -c"
+    break
+  fi
 done
 if test -z "$ac_aux_dir"; then
-  as_fn_error "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
+  as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
 fi
 
 # These three variables are undocumented and unsupported,
@@ -2623,11 +2601,11 @@ am_lf='
 '
 case `pwd` in
   *[\\\"\#\$\&\'\`$am_lf]*)
-    as_fn_error "unsafe absolute working directory name" "$LINENO" 5;;
+    as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5 ;;
 esac
 case $srcdir in
   *[\\\"\#\$\&\'\`$am_lf\ \	]*)
-    as_fn_error "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;;
+    as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5 ;;
 esac
 
 # Do `set' in a subshell so we don't clobber the current shell's
@@ -2649,7 +2627,7 @@ if (
       # if, for instance, CONFIG_SHELL is bash and it inherits a
       # broken ls alias from the environment.  This has actually
       # happened.  Such a system could not be considered "sane".
-      as_fn_error "ls -t appears to fail.  Make sure there is not a broken
+      as_fn_error $? "ls -t appears to fail.  Make sure there is not a broken
 alias in your environment" "$LINENO" 5
    fi
 
@@ -2659,7 +2637,7 @@ then
    # Ok.
    :
 else
-   as_fn_error "newly created file is older than distributed files!
+   as_fn_error $? "newly created file is older than distributed files!
 Check your system clock" "$LINENO" 5
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
@@ -2897,7 +2875,7 @@ done
 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
 set x ${MAKE-make}
 ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then :
   $as_echo_n "(cached) " >&6
 else
   cat >conftest.make <<\_ACEOF
@@ -2905,7 +2883,7 @@ SHELL = /bin/sh
 all:
 	@echo '@@@%%%=$(MAKE)=@@@%%%'
 _ACEOF
-# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
 case `${MAKE-make} -f conftest.make 2>/dev/null` in
   *@@@%%%=?*=@@@%%%*)
     eval ac_cv_prog_make_${ac_make}_set=yes;;
@@ -2939,7 +2917,7 @@ if test "`cd $srcdir && pwd`" != "`pwd`"; then
   am__isrc=' -I$(srcdir)'
   # test to see if srcdir already configured
   if test -f $srcdir/config.status; then
-    as_fn_error "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
+    as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
   fi
 fi
 
@@ -3428,8 +3406,8 @@ fi
 
 test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error "no acceptable C compiler found in \$PATH
-See \`config.log' for more details." "$LINENO" 5; }
+as_fn_error $? "no acceptable C compiler found in \$PATH
+See \`config.log' for more details" "$LINENO" 5 ; }
 
 # Provide some information about the compiler.
 $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
@@ -3543,9 +3521,8 @@ sed 's/^/| /' conftest.$ac_ext >&5
 
 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ as_fn_set_status 77
-as_fn_error "C compiler cannot create executables
-See \`config.log' for more details." "$LINENO" 5; }; }
+as_fn_error 77 "C compiler cannot create executables
+See \`config.log' for more details" "$LINENO" 5 ; }
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
@@ -3587,8 +3564,8 @@ done
 else
   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error "cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details." "$LINENO" 5; }
+as_fn_error $? "cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details" "$LINENO" 5 ; }
 fi
 rm -f conftest conftest$ac_cv_exeext
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
@@ -3645,9 +3622,9 @@ $as_echo "$ac_try_echo"; } >&5
     else
 	{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error "cannot run C compiled programs.
+as_fn_error $? "cannot run C compiled programs.
 If you meant to cross compile, use \`--host'.
-See \`config.log' for more details." "$LINENO" 5; }
+See \`config.log' for more details" "$LINENO" 5 ; }
     fi
   fi
 fi
@@ -3698,8 +3675,8 @@ sed 's/^/| /' conftest.$ac_ext >&5
 
 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error "cannot compute suffix of object files: cannot compile
-See \`config.log' for more details." "$LINENO" 5; }
+as_fn_error $? "cannot compute suffix of object files: cannot compile
+See \`config.log' for more details" "$LINENO" 5 ; }
 fi
 rm -f conftest.$ac_cv_objext conftest.$ac_ext
 fi
@@ -4110,12 +4087,12 @@ fi
 
 
 if test x$GCC = xyes ; then
-  CFLAGS="$CFLAGS -Wall -Werror-implicit-function-declaration -Wmissing-prototypes -Wmissing-declarations -pipe"
+  CFLAGS="$CFLAGS -Wall -Werror-implicit-function-declaration -Wmissing-prototypes -Wmissing-declarations -pipe -std=c99 -D_XOPEN_SOURCE=500"
 fi
 
 # Make sure we can run config.sub.
 $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
-  as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
+  as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
 $as_echo_n "checking build system type... " >&6; }
@@ -4126,16 +4103,16 @@ else
 test "x$ac_build_alias" = x &&
   ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
 test "x$ac_build_alias" = x &&
-  as_fn_error "cannot guess build type; you must specify one" "$LINENO" 5
+  as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
-  as_fn_error "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
+  as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
 
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
 $as_echo "$ac_cv_build" >&6; }
 case $ac_cv_build in
 *-*-*) ;;
-*) as_fn_error "invalid value of canonical build" "$LINENO" 5;;
+*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5 ;;
 esac
 build=$ac_cv_build
 ac_save_IFS=$IFS; IFS='-'
@@ -4160,7 +4137,7 @@ else
   ac_cv_host=$ac_cv_build
 else
   ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
-    as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
+    as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
 fi
 
 fi
@@ -4168,7 +4145,7 @@ fi
 $as_echo "$ac_cv_host" >&6; }
 case $ac_cv_host in
 *-*-*) ;;
-*) as_fn_error "invalid value of canonical host" "$LINENO" 5;;
+*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5 ;;
 esac
 host=$ac_cv_host
 ac_save_IFS=$IFS; IFS='-'
@@ -4187,7 +4164,7 @@ case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
 enable_win32_dll=yes
 
 case $host in
-*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*)
+*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
   if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args.
 set dummy ${ac_tool_prefix}as; ac_word=$2
@@ -4495,8 +4472,8 @@ esac
 
 
 
-macro_version='2.2.6b'
-macro_revision='1.3017'
+macro_version='2.4'
+macro_revision='1.3293'
 
 
 
@@ -4512,6 +4489,75 @@ macro_revision='1.3017'
 
 ltmain="$ac_aux_dir/ltmain.sh"
 
+# Backslashify metacharacters that are still active within
+# double-quoted strings.
+sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\(["`\\]\)/\\\1/g'
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to delay expansion of an escaped single quote.
+delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+
+ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
+$as_echo_n "checking how to print strings... " >&6; }
+# Test print first, because it will be a builtin if present.
+if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
+   test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
+  ECHO='print -r --'
+elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
+  ECHO='printf %s\n'
+else
+  # Use this function as a fallback that always works.
+  func_fallback_echo ()
+  {
+    eval 'cat <<_LTECHO_EOF
+$1
+_LTECHO_EOF'
+  }
+  ECHO='func_fallback_echo'
+fi
+
+# func_echo_all arg...
+# Invoke $ECHO with all args, space-separated.
+func_echo_all ()
+{
+    $ECHO ""
+}
+
+case "$ECHO" in
+  printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5
+$as_echo "printf" >&6; } ;;
+  print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5
+$as_echo "print -r" >&6; } ;;
+  *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5
+$as_echo "cat" >&6; } ;;
+esac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
 $as_echo_n "checking for a sed that does not truncate output... " >&6; }
 if test "${ac_cv_path_SED+set}" = set; then :
@@ -4569,7 +4615,7 @@ esac
   done
 IFS=$as_save_IFS
   if test -z "$ac_cv_path_SED"; then
-    as_fn_error "no acceptable sed could be found in \$PATH" "$LINENO" 5
+    as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5
   fi
 else
   ac_cv_path_SED=$SED
@@ -4645,7 +4691,7 @@ esac
   done
 IFS=$as_save_IFS
   if test -z "$ac_cv_path_GREP"; then
-    as_fn_error "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+    as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
   fi
 else
   ac_cv_path_GREP=$GREP
@@ -4711,7 +4757,7 @@ esac
   done
 IFS=$as_save_IFS
   if test -z "$ac_cv_path_EGREP"; then
-    as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+    as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
   fi
 else
   ac_cv_path_EGREP=$EGREP
@@ -4778,7 +4824,7 @@ esac
   done
 IFS=$as_save_IFS
   if test -z "$ac_cv_path_FGREP"; then
-    as_fn_error "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+    as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
   fi
 else
   ac_cv_path_FGREP=$FGREP
@@ -4894,7 +4940,7 @@ else
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
-test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5
+test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
 if test "${lt_cv_prog_gnu_ld+set}" = set; then :
@@ -4977,8 +5023,11 @@ if test "$lt_cv_path_NM" != "no"; then
   NM="$lt_cv_path_NM"
 else
   # Didn't find any BSD compatible name lister, look for dumpbin.
-  if test -n "$ac_tool_prefix"; then
-  for ac_prog in "dumpbin -symbols" "link -dump -symbols"
+  if test -n "$DUMPBIN"; then :
+    # Let the user override the test.
+  else
+    if test -n "$ac_tool_prefix"; then
+  for ac_prog in dumpbin "link -dump"
   do
     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
@@ -5022,7 +5071,7 @@ fi
 fi
 if test -z "$DUMPBIN"; then
   ac_ct_DUMPBIN=$DUMPBIN
-  for ac_prog in "dumpbin -symbols" "link -dump -symbols"
+  for ac_prog in dumpbin "link -dump"
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
@@ -5077,6 +5126,15 @@ esac
   fi
 fi
 
+    case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in
+    *COFF*)
+      DUMPBIN="$DUMPBIN -symbols"
+      ;;
+    *)
+      DUMPBIN=:
+      ;;
+    esac
+  fi
 
   if test "$DUMPBIN" != ":"; then
     NM="$DUMPBIN"
@@ -5096,13 +5154,13 @@ if test "${lt_cv_nm_interface+set}" = set; then :
 else
   lt_cv_nm_interface="BSD nm"
   echo "int some_variable = 0;" > conftest.$ac_ext
-  (eval echo "\"\$as_me:5099: $ac_compile\"" >&5)
+  (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5)
   (eval "$ac_compile" 2>conftest.err)
   cat conftest.err >&5
-  (eval echo "\"\$as_me:5102: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
+  (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
   (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
   cat conftest.err >&5
-  (eval echo "\"\$as_me:5105: output\"" >&5)
+  (eval echo "\"\$as_me:$LINENO: output\"" >&5)
   cat conftest.out >&5
   if $GREP 'External.*some_variable' conftest.out > /dev/null; then
     lt_cv_nm_interface="MS dumpbin"
@@ -5159,6 +5217,11 @@ else
     lt_cv_sys_max_cmd_len=8192;
     ;;
 
+  mint*)
+    # On MiNT this can take a long time and run out of memory.
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
   amigaos*)
     # On AmigaOS with pdksh, this test takes hours, literally.
     # So we just punt and use a minimum line length of 8192.
@@ -5223,8 +5286,8 @@ else
       # If test is not a shell built-in, we'll probably end up computing a
       # maximum length that is only half of the actual maximum length, but
       # we can't tell.
-      while { test "X"`$SHELL $0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \
-	         = "XX$teststring$teststring"; } >/dev/null 2>&1 &&
+      while { test "X"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \
+	         = "X$teststring$teststring"; } >/dev/null 2>&1 &&
 	      test $i != 17 # 1/2 MB should be enough
       do
         i=`expr $i + 1`
@@ -5266,8 +5329,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6;
 # Try some XSI features
 xsi_shell=no
 ( _lt_dummy="a/b/c"
-  test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \
-      = c,a/b,, \
+  test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
+      = c,a/b,b/c, \
     && eval 'test $(( 1 + 1 )) -eq 2 \
     && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
   && xsi_shell=yes
@@ -5316,6 +5379,80 @@ esac
 
 
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5
+$as_echo_n "checking how to convert $build file names to $host format... " >&6; }
+if test "${lt_cv_to_host_file_cmd+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $host in
+  *-*-mingw* )
+    case $build in
+      *-*-mingw* ) # actually msys
+        lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
+        ;;
+      *-*-cygwin* )
+        lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
+        ;;
+      * ) # otherwise, assume *nix
+        lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
+        ;;
+    esac
+    ;;
+  *-*-cygwin* )
+    case $build in
+      *-*-mingw* ) # actually msys
+        lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
+        ;;
+      *-*-cygwin* )
+        lt_cv_to_host_file_cmd=func_convert_file_noop
+        ;;
+      * ) # otherwise, assume *nix
+        lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
+        ;;
+    esac
+    ;;
+  * ) # unhandled hosts (and "normal" native builds)
+    lt_cv_to_host_file_cmd=func_convert_file_noop
+    ;;
+esac
+
+fi
+
+to_host_file_cmd=$lt_cv_to_host_file_cmd
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5
+$as_echo "$lt_cv_to_host_file_cmd" >&6; }
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5
+$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; }
+if test "${lt_cv_to_tool_file_cmd+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  #assume ordinary cross tools, or native build.
+lt_cv_to_tool_file_cmd=func_convert_file_noop
+case $host in
+  *-*-mingw* )
+    case $build in
+      *-*-mingw* ) # actually msys
+        lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
+        ;;
+    esac
+    ;;
+esac
+
+fi
+
+to_tool_file_cmd=$lt_cv_to_tool_file_cmd
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5
+$as_echo "$lt_cv_to_tool_file_cmd" >&6; }
+
+
+
+
+
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
 $as_echo_n "checking for $LD option to reload object files... " >&6; }
 if test "${lt_cv_ld_reload_flag+set}" = set; then :
@@ -5332,6 +5469,11 @@ case $reload_flag in
 esac
 reload_cmds='$LD$reload_flag -o $output$reload_objs'
 case $host_os in
+  cygwin* | mingw* | pw32* | cegcc*)
+    if test "$GCC" != yes; then
+      reload_cmds=false
+    fi
+    ;;
   darwin*)
     if test "$GCC" = yes; then
       reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
@@ -5492,16 +5634,18 @@ mingw* | pw32*)
   # Base MSYS/MinGW do not provide the 'file' command needed by
   # func_win32_libid shell function, so use a weaker test based on 'objdump',
   # unless we find 'file', for example because we are cross-compiling.
-  if ( file / ) >/dev/null 2>&1; then
+  # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin.
+  if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then
     lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
     lt_cv_file_magic_cmd='func_win32_libid'
   else
-    lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
+    # Keep this pattern in sync with the one in func_win32_libid.
+    lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
     lt_cv_file_magic_cmd='$OBJDUMP -f'
   fi
   ;;
 
-cegcc)
+cegcc*)
   # use the weaker test based on 'objdump'. See mingw*.
   lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
   lt_cv_file_magic_cmd='$OBJDUMP -f'
@@ -5531,6 +5675,10 @@ gnu*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
+haiku*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
 hpux10.20* | hpux11*)
   lt_cv_file_magic_cmd=/usr/bin/file
   case $host_cpu in
@@ -5539,11 +5687,11 @@ hpux10.20* | hpux11*)
     lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
     ;;
   hppa*64*)
-    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'
+    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'
     lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
     ;;
   *)
-    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library'
+    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library'
     lt_cv_file_magic_test_file=/usr/lib/libc.sl
     ;;
   esac
@@ -5569,7 +5717,7 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-netbsd* | netbsdelf*-gnu)
+netbsd*)
   if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
     lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
   else
@@ -5646,6 +5794,21 @@ esac
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
 $as_echo "$lt_cv_deplibs_check_method" >&6; }
+
+file_magic_glob=
+want_nocaseglob=no
+if test "$build" = "$host"; then
+  case $host_os in
+  mingw* | pw32*)
+    if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
+      want_nocaseglob=yes
+    else
+      file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"`
+    fi
+    ;;
+  esac
+fi
+
 file_magic_cmd=$lt_cv_file_magic_cmd
 deplibs_check_method=$lt_cv_deplibs_check_method
 test -z "$deplibs_check_method" && deplibs_check_method=unknown
@@ -5661,9 +5824,160 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
 
 
 
+
+
+
+
+
+
+
+
+
+
 if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ar; ac_word=$2
+  # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
+set dummy ${ac_tool_prefix}dlltool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_DLLTOOL+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$DLLTOOL"; then
+  ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+DLLTOOL=$ac_cv_prog_DLLTOOL
+if test -n "$DLLTOOL"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
+$as_echo "$DLLTOOL" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_DLLTOOL"; then
+  ac_ct_DLLTOOL=$DLLTOOL
+  # Extract the first word of "dlltool", so it can be a program name with args.
+set dummy dlltool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_DLLTOOL+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_DLLTOOL"; then
+  ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_ac_ct_DLLTOOL="dlltool"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
+if test -n "$ac_ct_DLLTOOL"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
+$as_echo "$ac_ct_DLLTOOL" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_DLLTOOL" = x; then
+    DLLTOOL="false"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    DLLTOOL=$ac_ct_DLLTOOL
+  fi
+else
+  DLLTOOL="$ac_cv_prog_DLLTOOL"
+fi
+
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5
+$as_echo_n "checking how to associate runtime and link libraries... " >&6; }
+if test "${lt_cv_sharedlib_from_linklib_cmd+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_sharedlib_from_linklib_cmd='unknown'
+
+case $host_os in
+cygwin* | mingw* | pw32* | cegcc*)
+  # two different shell functions defined in ltmain.sh
+  # decide which to use based on capabilities of $DLLTOOL
+  case `$DLLTOOL --help 2>&1` in
+  *--identify-strict*)
+    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
+    ;;
+  *)
+    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
+    ;;
+  esac
+  ;;
+*)
+  # fallback: assume linklib IS sharedlib
+  lt_cv_sharedlib_from_linklib_cmd="$ECHO"
+  ;;
+esac
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5
+$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; }
+sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
+test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
+
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+  for ac_prog in ar
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_AR+set}" = set; then :
@@ -5679,7 +5993,7 @@ do
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_AR="${ac_tool_prefix}ar"
+    ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
@@ -5699,11 +6013,15 @@ $as_echo "no" >&6; }
 fi
 
 
+    test -n "$AR" && break
+  done
 fi
-if test -z "$ac_cv_prog_AR"; then
+if test -z "$AR"; then
   ac_ct_AR=$AR
-  # Extract the first word of "ar", so it can be a program name with args.
-set dummy ar; ac_word=$2
+  for ac_prog in ar
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_ac_ct_AR+set}" = set; then :
@@ -5719,7 +6037,7 @@ do
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_AR="ar"
+    ac_cv_prog_ac_ct_AR="$ac_prog"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
@@ -5738,6 +6056,10 @@ else
 $as_echo "no" >&6; }
 fi
 
+
+  test -n "$ac_ct_AR" && break
+done
+
   if test "x$ac_ct_AR" = x; then
     AR="false"
   else
@@ -5749,16 +6071,72 @@ ac_tool_warned=yes ;;
 esac
     AR=$ac_ct_AR
   fi
-else
-  AR="$ac_cv_prog_AR"
 fi
 
-test -z "$AR" && AR=ar
-test -z "$AR_FLAGS" && AR_FLAGS=cru
+: ${AR=ar}
+: ${AR_FLAGS=cru}
+
+
+
+
+
+
+
 
 
 
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5
+$as_echo_n "checking for archiver @FILE support... " >&6; }
+if test "${lt_cv_ar_at_file+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_ar_at_file=no
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  echo conftest.$ac_objext > conftest.lst
+      lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5'
+      { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
+  (eval $lt_ar_try) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+      if test "$ac_status" -eq 0; then
+	# Ensure the archiver fails upon bogus file names.
+	rm -f conftest.$ac_objext libconftest.a
+	{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
+  (eval $lt_ar_try) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+	if test "$ac_status" -ne 0; then
+          lt_cv_ar_at_file=@
+        fi
+      fi
+      rm -f conftest.* libconftest.a
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5
+$as_echo "$lt_cv_ar_at_file" >&6; }
+
+if test "x$lt_cv_ar_at_file" = xno; then
+  archiver_list_spec=
+else
+  archiver_list_spec=$lt_cv_ar_at_file
+fi
 
 
 
@@ -5981,6 +6359,18 @@ if test -n "$RANLIB"; then
   old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
 fi
 
+case $host_os in
+  darwin*)
+    lock_old_archive_extraction=yes ;;
+  *)
+    lock_old_archive_extraction=no ;;
+esac
+
+
+
+
+
+
 
 
 
@@ -6088,8 +6478,8 @@ esac
 lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
 
 # Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"\2\", (void *) \&\2},/p'"
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"lib\2\", (void *) \&\2},/p'"
+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"\2\", (void *) \&\2},/p'"
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"lib\2\", (void *) \&\2},/p'"
 
 # Handle CRLF in mingw tool chain
 opt_cr=
@@ -6125,6 +6515,7 @@ for ac_symprfx in "" "_"; do
   else
     lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[	 ]\($symcode$symcode*\)[	 ][	 ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
   fi
+  lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
 
   # Check to see that the pipe works correctly.
   pipe_works=no
@@ -6150,8 +6541,8 @@ _LT_EOF
   test $ac_status = 0; }; then
     # Now try to grab the symbols.
     nlist=conftest.nm
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\""; } >&5
-  (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5
+    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5
+  (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; } && test -s "$nlist"; then
@@ -6166,6 +6557,18 @@ _LT_EOF
       if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
 	if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
 	  cat <<_LT_EOF > conftest.$ac_ext
+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
+#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
+/* DATA imports from DLLs on WIN32 con't be const, because runtime
+   relocations are performed -- see ld's documentation on pseudo-relocs.  */
+# define LT_DLSYM_CONST
+#elif defined(__osf__)
+/* This system does not cope well with relocations in const data.  */
+# define LT_DLSYM_CONST
+#else
+# define LT_DLSYM_CONST const
+#endif
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -6177,7 +6580,7 @@ _LT_EOF
 	  cat <<_LT_EOF >> conftest.$ac_ext
 
 /* The mapping between symbol names and symbols.  */
-const struct {
+LT_DLSYM_CONST struct {
   const char *name;
   void       *address;
 }
@@ -6203,8 +6606,8 @@ static const void *lt_preloaded_setup() {
 _LT_EOF
 	  # Now try linking the two files.
 	  mv conftest.$ac_objext conftstm.$ac_objext
-	  lt_save_LIBS="$LIBS"
-	  lt_save_CFLAGS="$CFLAGS"
+	  lt_globsym_save_LIBS=$LIBS
+	  lt_globsym_save_CFLAGS=$CFLAGS
 	  LIBS="conftstm.$ac_objext"
 	  CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
 	  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
@@ -6214,8 +6617,8 @@ _LT_EOF
   test $ac_status = 0; } && test -s conftest${ac_exeext}; then
 	    pipe_works=yes
 	  fi
-	  LIBS="$lt_save_LIBS"
-	  CFLAGS="$lt_save_CFLAGS"
+	  LIBS=$lt_globsym_save_LIBS
+	  CFLAGS=$lt_globsym_save_CFLAGS
 	else
 	  echo "cannot find nm_test_func in $nlist" >&5
 	fi
@@ -6252,6 +6655,13 @@ else
 $as_echo "ok" >&6; }
 fi
 
+# Response file support.
+if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+  nm_file_list_spec='@'
+elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then
+  nm_file_list_spec='@'
+fi
+
 
 
 
@@ -6274,6 +6684,47 @@ fi
 
 
 
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
+$as_echo_n "checking for sysroot... " >&6; }
+
+# Check whether --with-sysroot was given.
+if test "${with_sysroot+set}" = set; then :
+  withval=$with_sysroot;
+else
+  with_sysroot=no
+fi
+
+
+lt_sysroot=
+case ${with_sysroot} in #(
+ yes)
+   if test "$GCC" = yes; then
+     lt_sysroot=`$CC --print-sysroot 2>/dev/null`
+   fi
+   ;; #(
+ /*)
+   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
+   ;; #(
+ no|'')
+   ;; #(
+ *)
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5
+$as_echo "${with_sysroot}" >&6; }
+   as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5
+   ;;
+esac
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5
+$as_echo "${lt_sysroot:-no}" >&6; }
+
+
+
+
+
 # Check whether --enable-libtool-lock was given.
 if test "${enable_libtool_lock+set}" = set; then :
   enableval=$enable_libtool_lock;
@@ -6305,7 +6756,7 @@ ia64-*-hpux*)
   ;;
 *-*-irix6*)
   # Find out which ABI we are using.
-  echo '#line 6308 "configure"' > conftest.$ac_ext
+  echo '#line '$LINENO' "configure"' > conftest.$ac_ext
   if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
@@ -6467,6 +6918,123 @@ esac
 
 need_locks="$enable_libtool_lock"
 
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args.
+set dummy ${ac_tool_prefix}mt; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_MANIFEST_TOOL+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$MANIFEST_TOOL"; then
+  ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL
+if test -n "$MANIFEST_TOOL"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5
+$as_echo "$MANIFEST_TOOL" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_MANIFEST_TOOL"; then
+  ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL
+  # Extract the first word of "mt", so it can be a program name with args.
+set dummy mt; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_MANIFEST_TOOL+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_MANIFEST_TOOL"; then
+  ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_ac_ct_MANIFEST_TOOL="mt"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL
+if test -n "$ac_ct_MANIFEST_TOOL"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5
+$as_echo "$ac_ct_MANIFEST_TOOL" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_MANIFEST_TOOL" = x; then
+    MANIFEST_TOOL=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL
+  fi
+else
+  MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL"
+fi
+
+test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5
+$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; }
+if test "${lt_cv_path_mainfest_tool+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_path_mainfest_tool=no
+  echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5
+  $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
+  cat conftest.err >&5
+  if $GREP 'Manifest Tool' conftest.out > /dev/null; then
+    lt_cv_path_mainfest_tool=yes
+  fi
+  rm -f conftest*
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
+$as_echo "$lt_cv_path_mainfest_tool" >&6; }
+if test "x$lt_cv_path_mainfest_tool" != xyes; then
+  MANIFEST_TOOL=:
+fi
+
+
+
+
+
 
   case $host_os in
     rhapsody* | darwin*)
@@ -7017,6 +7585,38 @@ rm -f core conftest.err conftest.$ac_objext \
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
 $as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5
+$as_echo_n "checking for -force_load linker flag... " >&6; }
+if test "${lt_cv_ld_force_load+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_ld_force_load=no
+      cat > conftest.c << _LT_EOF
+int forced_loaded() { return 2;}
+_LT_EOF
+      echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5
+      $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
+      echo "$AR cru libconftest.a conftest.o" >&5
+      $AR cru libconftest.a conftest.o 2>&5
+      echo "$RANLIB libconftest.a" >&5
+      $RANLIB libconftest.a 2>&5
+      cat > conftest.c << _LT_EOF
+int main() { return 0;}
+_LT_EOF
+      echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5
+      $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
+      _lt_result=$?
+      if test -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; then
+	lt_cv_ld_force_load=yes
+      else
+	cat conftest.err >&5
+      fi
+        rm -f conftest.err libconftest.a conftest conftest.c
+        rm -rf conftest.dSYM
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5
+$as_echo "$lt_cv_ld_force_load" >&6; }
     case $host_os in
     rhapsody* | darwin1.[012])
       _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
@@ -7044,7 +7644,7 @@ $as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
     else
       _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
     fi
-    if test "$DSYMUTIL" != ":"; then
+    if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then
       _lt_dsymutil='~$DSYMUTIL $lib || :'
     else
       _lt_dsymutil=
@@ -7094,7 +7694,7 @@ else
   # Broken: fails on valid input.
 continue
 fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
 
   # OK, works on sane cases.  Now check whether nonexistent headers
   # can be detected and how.
@@ -7110,11 +7710,11 @@ else
 ac_preproc_ok=:
 break
 fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
 
 done
 # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.i conftest.err conftest.$ac_ext
 if $ac_preproc_ok; then :
   break
 fi
@@ -7153,7 +7753,7 @@ else
   # Broken: fails on valid input.
 continue
 fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
 
   # OK, works on sane cases.  Now check whether nonexistent headers
   # can be detected and how.
@@ -7169,18 +7769,18 @@ else
 ac_preproc_ok=:
 break
 fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
 
 done
 # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.i conftest.err conftest.$ac_ext
 if $ac_preproc_ok; then :
 
 else
   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error "C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." "$LINENO" 5; }
+as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details" "$LINENO" 5 ; }
 fi
 
 ac_ext=c
@@ -7309,8 +7909,7 @@ do :
   as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
 ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
 "
-eval as_val=\$$as_ac_Header
-   if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
@@ -7335,6 +7934,8 @@ done
 
 
 
+
+
 # Set options
 
 
@@ -7485,6 +8086,7 @@ LIBTOOL='$(SHELL) $(top_builddir)/libtool'
 
 
 
+
 test -z "$LN_S" && LN_S="ln -s"
 
 
@@ -7534,19 +8136,6 @@ _ACEOF
 
 
 
-
-
-
-
-
-
-
-
-
-
-
-
-
 case $host_os in
 aix3*)
   # AIX sometimes has problems with the GCC collect2 program.  For some
@@ -7559,23 +8148,6 @@ aix3*)
   ;;
 esac
 
-# Sed substitution that helps us do robust quoting.  It backslashifies
-# metacharacters that are still active within double-quoted strings.
-sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\(["`\\]\)/\\\1/g'
-
-# Sed substitution to delay expansion of an escaped shell variable in a
-# double_quote_subst'ed string.
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
-
-# Sed substitution to delay expansion of an escaped single quote.
-delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
-
-# Sed substitution to avoid accidental globbing in evaled expressions
-no_glob_subst='s/\*/\\\*/g'
-
 # Global variables:
 ofile=libtool
 can_build_shared=yes
@@ -7604,7 +8176,7 @@ for cc_temp in $compiler""; do
     *) break;;
   esac
 done
-cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
 
 
 # Only perform the check for file, if the check method requires it
@@ -7813,7 +8385,12 @@ if test -n "$compiler"; then
 lt_prog_compiler_no_builtin_flag=
 
 if test "$GCC" = yes; then
-  lt_prog_compiler_no_builtin_flag=' -fno-builtin'
+  case $cc_basename in
+  nvcc*)
+    lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;;
+  *)
+    lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;;
+  esac
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
 $as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
@@ -7833,15 +8410,15 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:7836: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:7840: \$? = $ac_status" >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
      $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
      if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
        lt_cv_prog_compiler_rtti_exceptions=yes
@@ -7870,8 +8447,6 @@ fi
 lt_prog_compiler_pic=
 lt_prog_compiler_static=
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
-$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
 
   if test "$GCC" = yes; then
     lt_prog_compiler_wl='-Wl,'
@@ -7919,6 +8494,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
       lt_prog_compiler_pic='-fno-common'
       ;;
 
+    haiku*)
+      # PIC is the default for Haiku.
+      # The "-static" flag exists, but is broken.
+      lt_prog_compiler_static=
+      ;;
+
     hpux*)
       # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
       # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
@@ -7961,6 +8542,13 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
       lt_prog_compiler_pic='-fPIC'
       ;;
     esac
+
+    case $cc_basename in
+    nvcc*) # Cuda Compiler Driver 2.2
+      lt_prog_compiler_wl='-Xlinker '
+      lt_prog_compiler_pic='-Xcompiler -fPIC'
+      ;;
+    esac
   else
     # PORTME Check for flag to pass linker flags through the system compiler.
     case $host_os in
@@ -8023,7 +8611,13 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
 	lt_prog_compiler_pic='--shared'
 	lt_prog_compiler_static='--static'
 	;;
-      pgcc* | pgf77* | pgf90* | pgf95*)
+      nagfor*)
+	# NAG Fortran compiler
+	lt_prog_compiler_wl='-Wl,-Wl,,'
+	lt_prog_compiler_pic='-PIC'
+	lt_prog_compiler_static='-Bstatic'
+	;;
+      pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
         # Portland Group compilers (*not* the Pentium gcc compiler,
 	# which looks to be a dead project)
 	lt_prog_compiler_wl='-Wl,'
@@ -8035,25 +8629,25 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
         # All Alpha code is PIC.
         lt_prog_compiler_static='-non_shared'
         ;;
-      xl*)
-	# IBM XL C 8.0/Fortran 10.1 on PPC
+      xl* | bgxl* | bgf* | mpixl*)
+	# IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
 	lt_prog_compiler_wl='-Wl,'
 	lt_prog_compiler_pic='-qpic'
 	lt_prog_compiler_static='-qstaticlink'
 	;;
       *)
 	case `$CC -V 2>&1 | sed 5q` in
-	*Sun\ C*)
-	  # Sun C 5.9
+	*Sun\ F* | *Sun*Fortran*)
+	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
 	  lt_prog_compiler_pic='-KPIC'
 	  lt_prog_compiler_static='-Bstatic'
-	  lt_prog_compiler_wl='-Wl,'
+	  lt_prog_compiler_wl=''
 	  ;;
-	*Sun\ F*)
-	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
+	*Sun\ C*)
+	  # Sun C 5.9
 	  lt_prog_compiler_pic='-KPIC'
 	  lt_prog_compiler_static='-Bstatic'
-	  lt_prog_compiler_wl=''
+	  lt_prog_compiler_wl='-Wl,'
 	  ;;
 	esac
 	;;
@@ -8085,7 +8679,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
       lt_prog_compiler_pic='-KPIC'
       lt_prog_compiler_static='-Bstatic'
       case $cc_basename in
-      f77* | f90* | f95*)
+      f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
 	lt_prog_compiler_wl='-Qoption ld ';;
       *)
 	lt_prog_compiler_wl='-Wl,';;
@@ -8142,13 +8736,17 @@ case $host_os in
     lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
     ;;
 esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5
-$as_echo "$lt_prog_compiler_pic" >&6; }
-
-
-
-
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
+$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+if test "${lt_cv_prog_compiler_pic+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_prog_compiler_pic=$lt_prog_compiler_pic
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5
+$as_echo "$lt_cv_prog_compiler_pic" >&6; }
+lt_prog_compiler_pic=$lt_cv_prog_compiler_pic
 
 #
 # Check to make sure the PIC flag actually works.
@@ -8172,15 +8770,15 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:8175: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:8179: \$? = $ac_status" >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
      $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
      if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
        lt_cv_prog_compiler_pic_works=yes
@@ -8209,6 +8807,11 @@ fi
 
 
 
+
+
+
+
+
 #
 # Check to make sure the static flag actually works.
 #
@@ -8228,7 +8831,7 @@ else
      if test -s conftest.err; then
        # Append any errors to the config.log.
        cat conftest.err 1>&5
-       $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
+       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
        $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
        if diff conftest.exp conftest.er2 >/dev/null; then
          lt_cv_prog_compiler_static_works=yes
@@ -8277,16 +8880,16 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:8280: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:8284: \$? = $ac_status" >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
      $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
      if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
        lt_cv_prog_compiler_c_o=yes
@@ -8332,16 +8935,16 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:8335: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:8339: \$? = $ac_status" >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
      $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
      if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
        lt_cv_prog_compiler_c_o=yes
@@ -8451,13 +9054,36 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
   openbsd*)
     with_gnu_ld=no
     ;;
-  linux* | k*bsd*-gnu)
-    link_all_deplibs=no
-    ;;
   esac
 
   ld_shlibs=yes
+
+  # On some targets, GNU ld is compatible enough with the native linker
+  # that we're better off using the native interface for both.
+  lt_use_gnu_ld_interface=no
   if test "$with_gnu_ld" = yes; then
+    case $host_os in
+      aix*)
+	# The AIX port of GNU ld has always aspired to compatibility
+	# with the native linker.  However, as the warning in the GNU ld
+	# block says, versions before 2.19.5* couldn't really create working
+	# shared libraries, regardless of the interface used.
+	case `$LD -v 2>&1` in
+	  *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
+	  *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;;
+	  *\ \(GNU\ Binutils\)\ [3-9]*) ;;
+	  *)
+	    lt_use_gnu_ld_interface=yes
+	    ;;
+	esac
+	;;
+      *)
+	lt_use_gnu_ld_interface=yes
+	;;
+    esac
+  fi
+
+  if test "$lt_use_gnu_ld_interface" = yes; then
     # If archive_cmds runs LD, not CC, wlarc should be empty
     wlarc='${wl}'
 
@@ -8491,11 +9117,12 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
 	ld_shlibs=no
 	cat <<_LT_EOF 1>&2
 
-*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** Warning: the GNU linker, at least up to release 2.19, is reported
 *** to be unable to reliably create shared libraries on AIX.
 *** Therefore, libtool is disabling shared libraries support.  If you
-*** really care for shared libraries, you may want to modify your PATH
-*** so that a non-GNU linker is found, and then restart.
+*** really care for shared libraries, you may want to install binutils
+*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
+*** You will then need to restart the configuration process.
 
 _LT_EOF
       fi
@@ -8531,10 +9158,12 @@ _LT_EOF
       # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
       # as there is no search path for DLLs.
       hardcode_libdir_flag_spec='-L$libdir'
+      export_dynamic_flag_spec='${wl}--export-all-symbols'
       allow_undefined_flag=unsupported
       always_export_symbols=no
       enable_shared_with_static_runtimes=yes
-      export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
+      export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
+      exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
 
       if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
         archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
@@ -8552,6 +9181,11 @@ _LT_EOF
       fi
       ;;
 
+    haiku*)
+      archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+      link_all_deplibs=yes
+      ;;
+
     interix[3-9]*)
       hardcode_direct=no
       hardcode_shlibpath_var=no
@@ -8577,15 +9211,16 @@ _LT_EOF
       if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
 	 && test "$tmp_diet" = no
       then
-	tmp_addflag=
+	tmp_addflag=' $pic_flag'
 	tmp_sharedflag='-shared'
 	case $cc_basename,$host_cpu in
         pgcc*)				# Portland Group C compiler
-	  whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+	  whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
 	  tmp_addflag=' $pic_flag'
 	  ;;
-	pgf77* | pgf90* | pgf95*)	# Portland Group f77 and f90 compilers
-	  whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+	pgf77* | pgf90* | pgf95* | pgfortran*)
+					# Portland Group f77 and f90 compilers
+	  whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
 	  tmp_addflag=' $pic_flag -Mnomain' ;;
 	ecc*,ia64* | icc*,ia64*)	# Intel C compiler on ia64
 	  tmp_addflag=' -i_dynamic' ;;
@@ -8596,13 +9231,17 @@ _LT_EOF
 	lf95*)				# Lahey Fortran 8.1
 	  whole_archive_flag_spec=
 	  tmp_sharedflag='--shared' ;;
-	xl[cC]*)			# IBM XL C 8.0 on PPC (deal with xlf below)
+	xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
 	  tmp_sharedflag='-qmkshrobj'
 	  tmp_addflag= ;;
+	nvcc*)	# Cuda Compiler Driver 2.2
+	  whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+	  compiler_needs_object=yes
+	  ;;
 	esac
 	case `$CC -V 2>&1 | sed 5q` in
 	*Sun\ C*)			# Sun C 5.9
-	  whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+	  whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
 	  compiler_needs_object=yes
 	  tmp_sharedflag='-G' ;;
 	*Sun\ F*)			# Sun Fortran 8.3
@@ -8618,17 +9257,17 @@ _LT_EOF
         fi
 
 	case $cc_basename in
-	xlf*)
+	xlf* | bgf* | bgxlf* | mpixlf*)
 	  # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
 	  whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
 	  hardcode_libdir_flag_spec=
 	  hardcode_libdir_flag_spec_ld='-rpath $libdir'
-	  archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib'
+	  archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
 	  if test "x$supports_anon_versioning" = xyes; then
 	    archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
 	      cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
 	      echo "local: *; };" >> $output_objdir/$libname.ver~
-	      $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+	      $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
 	  fi
 	  ;;
 	esac
@@ -8637,13 +9276,13 @@ _LT_EOF
       fi
       ;;
 
-    netbsd* | netbsdelf*-gnu)
+    netbsd*)
       if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
 	archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
 	wlarc=
       else
-	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+	archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
       fi
       ;;
 
@@ -8661,8 +9300,8 @@ _LT_EOF
 
 _LT_EOF
       elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+	archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
       else
 	ld_shlibs=no
       fi
@@ -8708,8 +9347,8 @@ _LT_EOF
 
     *)
       if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+	archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
       else
 	ld_shlibs=no
       fi
@@ -8749,8 +9388,10 @@ _LT_EOF
       else
 	# If we're using GNU nm, then we don't want the "-C" option.
 	# -C means demangle to AIX nm, but means don't demangle with GNU nm
+	# Also, AIX nm treats weak defined symbols like other global
+	# defined symbols, whereas GNU nm marks them as "W".
 	if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
-	  export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+	  export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
 	else
 	  export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
 	fi
@@ -8812,7 +9453,6 @@ _LT_EOF
 	if test "$aix_use_runtimelinking" = yes; then
 	  shared_flag="$shared_flag "'${wl}-G'
 	fi
-	link_all_deplibs=no
       else
 	# not using gcc
 	if test "$host_cpu" = ia64; then
@@ -8838,7 +9478,13 @@ _LT_EOF
 	allow_undefined_flag='-berok'
         # Determine the default libpath from the value encoded in an
         # empty executable.
-        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+        if test "${lt_cv_aix_libpath+set}" = set; then
+  aix_libpath=$lt_cv_aix_libpath
+else
+  if test "${lt_cv_aix_libpath_+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -8851,25 +9497,32 @@ main ()
 _ACEOF
 if ac_fn_c_try_link "$LINENO"; then :
 
-lt_aix_libpath_sed='
-    /Import File Strings/,/^$/ {
-	/^0/ {
-	    s/^0  *\(.*\)$/\1/
-	    p
-	}
-    }'
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then
-  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-fi
+  lt_aix_libpath_sed='
+      /Import File Strings/,/^$/ {
+	  /^0/ {
+	      s/^0  *\([^ ]*\) *$/\1/
+	      p
+	  }
+      }'
+  lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  # Check for a 64-bit object if we didn't find anything.
+  if test -z "$lt_cv_aix_libpath_"; then
+    lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  fi
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+  if test -z "$lt_cv_aix_libpath_"; then
+    lt_cv_aix_libpath_="/usr/lib:/lib"
+  fi
+
+fi
+
+  aix_libpath=$lt_cv_aix_libpath_
+fi
 
         hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
-        archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+        archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
       else
 	if test "$host_cpu" = ia64; then
 	  hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
@@ -8878,7 +9531,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 	else
 	 # Determine the default libpath from the value encoded in an
 	 # empty executable.
-	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+	 if test "${lt_cv_aix_libpath+set}" = set; then
+  aix_libpath=$lt_cv_aix_libpath
+else
+  if test "${lt_cv_aix_libpath_+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -8891,30 +9550,42 @@ main ()
 _ACEOF
 if ac_fn_c_try_link "$LINENO"; then :
 
-lt_aix_libpath_sed='
-    /Import File Strings/,/^$/ {
-	/^0/ {
-	    s/^0  *\(.*\)$/\1/
-	    p
-	}
-    }'
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then
-  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-fi
+  lt_aix_libpath_sed='
+      /Import File Strings/,/^$/ {
+	  /^0/ {
+	      s/^0  *\([^ ]*\) *$/\1/
+	      p
+	  }
+      }'
+  lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  # Check for a 64-bit object if we didn't find anything.
+  if test -z "$lt_cv_aix_libpath_"; then
+    lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  fi
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+  if test -z "$lt_cv_aix_libpath_"; then
+    lt_cv_aix_libpath_="/usr/lib:/lib"
+  fi
+
+fi
+
+  aix_libpath=$lt_cv_aix_libpath_
+fi
 
 	 hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
 	  # Warning - without using the other run time loading flags,
 	  # -berok will link without error, but may produce a broken library.
 	  no_undefined_flag=' ${wl}-bernotok'
 	  allow_undefined_flag=' ${wl}-berok'
-	  # Exported symbols can be pulled into shared objects from archives
-	  whole_archive_flag_spec='$convenience'
+	  if test "$with_gnu_ld" = yes; then
+	    # We only use this code for GNU lds that support --whole-archive.
+	    whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+	  else
+	    # Exported symbols can be pulled into shared objects from archives
+	    whole_archive_flag_spec='$convenience'
+	  fi
 	  archive_cmds_need_lc=yes
 	  # This is similar to how AIX traditionally builds its shared libraries.
 	  archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
@@ -8946,20 +9617,63 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       # Microsoft Visual C++.
       # hardcode_libdir_flag_spec is actually meaningless, as there is
       # no search path for DLLs.
-      hardcode_libdir_flag_spec=' '
-      allow_undefined_flag=unsupported
-      # Tell ltmain to make .lib files, not .a files.
-      libext=lib
-      # Tell ltmain to make .dll files, not .so files.
-      shrext_cmds=".dll"
-      # FIXME: Setting linknames here is a bad hack.
-      archive_cmds='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames='
-      # The linker will automatically build a .lib file if we build a DLL.
-      old_archive_from_new_cmds='true'
-      # FIXME: Should let the user specify the lib program.
-      old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
-      fix_srcfile_path='`cygpath -w "$srcfile"`'
-      enable_shared_with_static_runtimes=yes
+      case $cc_basename in
+      cl*)
+	# Native MSVC
+	hardcode_libdir_flag_spec=' '
+	allow_undefined_flag=unsupported
+	always_export_symbols=yes
+	file_list_spec='@'
+	# Tell ltmain to make .lib files, not .a files.
+	libext=lib
+	# Tell ltmain to make .dll files, not .so files.
+	shrext_cmds=".dll"
+	# FIXME: Setting linknames here is a bad hack.
+	archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
+	archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	    sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
+	  else
+	    sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
+	  fi~
+	  $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+	  linknames='
+	# The linker will not automatically build a static lib if we build a DLL.
+	# _LT_TAGVAR(old_archive_from_new_cmds, )='true'
+	enable_shared_with_static_runtimes=yes
+	export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
+	# Don't use ranlib
+	old_postinstall_cmds='chmod 644 $oldlib'
+	postlink_cmds='lt_outputfile="@OUTPUT@"~
+	  lt_tool_outputfile="@TOOL_OUTPUT@"~
+	  case $lt_outputfile in
+	    *.exe|*.EXE) ;;
+	    *)
+	      lt_outputfile="$lt_outputfile.exe"
+	      lt_tool_outputfile="$lt_tool_outputfile.exe"
+	      ;;
+	  esac~
+	  if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
+	    $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+	    $RM "$lt_outputfile.manifest";
+	  fi'
+	;;
+      *)
+	# Assume MSVC wrapper
+	hardcode_libdir_flag_spec=' '
+	allow_undefined_flag=unsupported
+	# Tell ltmain to make .lib files, not .a files.
+	libext=lib
+	# Tell ltmain to make .dll files, not .so files.
+	shrext_cmds=".dll"
+	# FIXME: Setting linknames here is a bad hack.
+	archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
+	# The linker will automatically build a .lib file if we build a DLL.
+	old_archive_from_new_cmds='true'
+	# FIXME: Should let the user specify the lib program.
+	old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
+	enable_shared_with_static_runtimes=yes
+	;;
+      esac
       ;;
 
     darwin* | rhapsody*)
@@ -8969,7 +9683,11 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
   hardcode_direct=no
   hardcode_automatic=yes
   hardcode_shlibpath_var=unsupported
-  whole_archive_flag_spec=''
+  if test "$lt_cv_ld_force_load" = "yes"; then
+    whole_archive_flag_spec='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
+  else
+    whole_archive_flag_spec=''
+  fi
   link_all_deplibs=yes
   allow_undefined_flag="$_lt_dar_allow_undefined"
   case $cc_basename in
@@ -8977,7 +9695,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
      *) _lt_dar_can_shared=$GCC ;;
   esac
   if test "$_lt_dar_can_shared" = "yes"; then
-    output_verbose_link_cmd=echo
+    output_verbose_link_cmd=func_echo_all
     archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
     module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
     archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
@@ -9020,7 +9738,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 
     # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
     freebsd* | dragonfly*)
-      archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+      archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
       hardcode_libdir_flag_spec='-R$libdir'
       hardcode_direct=yes
       hardcode_shlibpath_var=no
@@ -9028,7 +9746,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 
     hpux9*)
       if test "$GCC" = yes; then
-	archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+	archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
       else
 	archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
       fi
@@ -9043,8 +9761,8 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       ;;
 
     hpux10*)
-      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
-	archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
+	archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
       else
 	archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
       fi
@@ -9062,16 +9780,16 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       ;;
 
     hpux11*)
-      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
 	case $host_cpu in
 	hppa*64*)
 	  archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
 	  ;;
 	ia64*)
-	  archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
 	  ;;
 	*)
-	  archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+	  archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
 	  ;;
 	esac
       else
@@ -9083,7 +9801,46 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 	  archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
 	  ;;
 	*)
-	  archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+
+	  # Older versions of the 11.00 compiler do not understand -b yet
+	  # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
+	  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5
+$as_echo_n "checking if $CC understands -b... " >&6; }
+if test "${lt_cv_prog_compiler__b+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_prog_compiler__b=no
+   save_LDFLAGS="$LDFLAGS"
+   LDFLAGS="$LDFLAGS -b"
+   echo "$lt_simple_link_test_code" > conftest.$ac_ext
+   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+     # The linker can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test -s conftest.err; then
+       # Append any errors to the config.log.
+       cat conftest.err 1>&5
+       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
+       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+       if diff conftest.exp conftest.er2 >/dev/null; then
+         lt_cv_prog_compiler__b=yes
+       fi
+     else
+       lt_cv_prog_compiler__b=yes
+     fi
+   fi
+   $RM -r conftest*
+   LDFLAGS="$save_LDFLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5
+$as_echo "$lt_cv_prog_compiler__b" >&6; }
+
+if test x"$lt_cv_prog_compiler__b" = xyes; then
+    archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+else
+    archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+fi
+
 	  ;;
 	esac
       fi
@@ -9111,26 +9868,39 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 
     irix5* | irix6* | nonstopux*)
       if test "$GCC" = yes; then
-	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
 	# Try to use the -exported_symbol ld option, if it does not
 	# work, assume that -exports_file does not work either and
 	# implicitly export all symbols.
-        save_LDFLAGS="$LDFLAGS"
-        LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
-        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+	# This should be the same for all languages, so no per-tag cache variable.
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5
+$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; }
+if test "${lt_cv_irix_exported_symbol+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  save_LDFLAGS="$LDFLAGS"
+	   LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
+	   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-int foo(void) {}
+int foo (void) { return 0; }
 _ACEOF
 if ac_fn_c_try_link "$LINENO"; then :
-  archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
-
+  lt_cv_irix_exported_symbol=yes
+else
+  lt_cv_irix_exported_symbol=no
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
-        LDFLAGS="$save_LDFLAGS"
+           LDFLAGS="$save_LDFLAGS"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
+$as_echo "$lt_cv_irix_exported_symbol" >&6; }
+	if test "$lt_cv_irix_exported_symbol" = yes; then
+          archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
+	fi
       else
-	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
-	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
+	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
       fi
       archive_cmds_need_lc='no'
       hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
@@ -9139,7 +9909,7 @@ rm -f core conftest.err conftest.$ac_objext \
       link_all_deplibs=yes
       ;;
 
-    netbsd* | netbsdelf*-gnu)
+    netbsd*)
       if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
 	archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
       else
@@ -9192,17 +9962,17 @@ rm -f core conftest.err conftest.$ac_objext \
       hardcode_libdir_flag_spec='-L$libdir'
       hardcode_minus_L=yes
       allow_undefined_flag=unsupported
-      archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+      archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
       old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
       ;;
 
     osf3*)
       if test "$GCC" = yes; then
 	allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
-	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
       else
 	allow_undefined_flag=' -expect_unresolved \*'
-	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
       fi
       archive_cmds_need_lc='no'
       hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
@@ -9212,13 +9982,13 @@ rm -f core conftest.err conftest.$ac_objext \
     osf4* | osf5*)	# as osf3* with the addition of -msym flag
       if test "$GCC" = yes; then
 	allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
-	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
 	hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
       else
 	allow_undefined_flag=' -expect_unresolved \*'
-	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
 	archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
-	$CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
+	$CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
 
 	# Both c and cxx compiler support -rpath directly
 	hardcode_libdir_flag_spec='-rpath $libdir'
@@ -9231,9 +10001,9 @@ rm -f core conftest.err conftest.$ac_objext \
       no_undefined_flag=' -z defs'
       if test "$GCC" = yes; then
 	wlarc='${wl}'
-	archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
 	archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-	  $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+	  $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
       else
 	case `$CC -V 2>&1` in
 	*"Compilers 5.0"*)
@@ -9421,44 +10191,50 @@ x|xyes)
       # to ld, don't add -lc before -lgcc.
       { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
-      $RM conftest*
-      echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+if test "${lt_cv_archive_cmds_need_lc+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  $RM conftest*
+	echo "$lt_simple_compile_test_code" > conftest.$ac_ext
 
-      if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+	if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; } 2>conftest.err; then
-        soname=conftest
-        lib=conftest
-        libobjs=conftest.$ac_objext
-        deplibs=
-        wl=$lt_prog_compiler_wl
-	pic_flag=$lt_prog_compiler_pic
-        compiler_flags=-v
-        linker_flags=-v
-        verstring=
-        output_objdir=.
-        libname=conftest
-        lt_save_allow_undefined_flag=$allow_undefined_flag
-        allow_undefined_flag=
-        if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
+	  soname=conftest
+	  lib=conftest
+	  libobjs=conftest.$ac_objext
+	  deplibs=
+	  wl=$lt_prog_compiler_wl
+	  pic_flag=$lt_prog_compiler_pic
+	  compiler_flags=-v
+	  linker_flags=-v
+	  verstring=
+	  output_objdir=.
+	  libname=conftest
+	  lt_save_allow_undefined_flag=$allow_undefined_flag
+	  allow_undefined_flag=
+	  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
   (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }
-        then
-	  archive_cmds_need_lc=no
-        else
-	  archive_cmds_need_lc=yes
-        fi
-        allow_undefined_flag=$lt_save_allow_undefined_flag
-      else
-        cat conftest.err 1>&5
-      fi
-      $RM conftest*
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc" >&5
-$as_echo "$archive_cmds_need_lc" >&6; }
+	  then
+	    lt_cv_archive_cmds_need_lc=no
+	  else
+	    lt_cv_archive_cmds_need_lc=yes
+	  fi
+	  allow_undefined_flag=$lt_save_allow_undefined_flag
+	else
+	  cat conftest.err 1>&5
+	fi
+	$RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5
+$as_echo "$lt_cv_archive_cmds_need_lc" >&6; }
+      archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc
       ;;
     esac
   fi
@@ -9629,16 +10405,23 @@ if test "$GCC" = yes; then
     darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
     *) lt_awk_arg="/^libraries:/" ;;
   esac
-  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-  if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then
+  case $host_os in
+    mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;;
+    *) lt_sed_strip_eq="s,=/,/,g" ;;
+  esac
+  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
+  case $lt_search_path_spec in
+  *\;*)
     # if the path contains ";" then we assume it to be the separator
     # otherwise default to the standard path separator (i.e. ":") - it is
     # assumed that no part of a normal pathname contains ";" but that should
     # okay in the real world where ";" in dirpaths is itself problematic.
-    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'`
-  else
-    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-  fi
+    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
+    ;;
+  *)
+    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
+    ;;
+  esac
   # Ok, now we have the path, separated by spaces, we can step through it
   # and add multilib dir if necessary.
   lt_tmp_lt_search_path_spec=
@@ -9651,7 +10434,7 @@ if test "$GCC" = yes; then
 	lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
     fi
   done
-  lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk '
+  lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
 BEGIN {RS=" "; FS="/|\n";} {
   lt_foo="";
   lt_count=0;
@@ -9671,7 +10454,13 @@ BEGIN {RS=" "; FS="/|\n";} {
   if (lt_foo != "") { lt_freq[lt_foo]++; }
   if (lt_freq[lt_foo] == 1) { print lt_foo; }
 }'`
-  sys_lib_search_path_spec=`$ECHO $lt_search_path_spec`
+  # AWK program above erroneously prepends '/' to C:/dos/paths
+  # for these hosts.
+  case $host_os in
+    mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
+      $SED 's,/\([A-Za-z]:\),\1,g'` ;;
+  esac
+  sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
 else
   sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
 fi
@@ -9759,7 +10548,7 @@ amigaos*)
   m68k)
     library_names_spec='$libname.ixlibrary $libname.a'
     # Create ${libname}_ixlibrary.a entries in /sys/libs.
-    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
     ;;
   esac
   ;;
@@ -9790,8 +10579,9 @@ cygwin* | mingw* | pw32* | cegcc*)
   need_version=no
   need_lib_prefix=no
 
-  case $GCC,$host_os in
-  yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
+  case $GCC,$cc_basename in
+  yes,*)
+    # gcc
     library_names_spec='$libname.dll.a'
     # DLL is installed to $(libdir)/../bin by postinstall_cmds
     postinstall_cmds='base_file=`basename \${file}`~
@@ -9812,36 +10602,83 @@ cygwin* | mingw* | pw32* | cegcc*)
     cygwin*)
       # Cygwin DLLs use 'cyg' prefix rather than 'lib'
       soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+
+      sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"
       ;;
     mingw* | cegcc*)
       # MinGW DLLs use traditional 'lib' prefix
       soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-      if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
-        # It is most probably a Windows format PATH printed by
-        # mingw gcc, but we are running on Cygwin. Gcc prints its search
-        # path with ; separators, and with drive letters. We can handle the
-        # drive letters (cygwin fileutils understands them), so leave them,
-        # especially as we might pass files found there to a mingw objdump,
-        # which wouldn't understand a cygwinified path. Ahh.
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-      else
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-      fi
       ;;
     pw32*)
       # pw32 DLLs use 'pw' prefix rather than 'lib'
       library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
       ;;
     esac
+    dynamic_linker='Win32 ld.exe'
+    ;;
+
+  *,cl*)
+    # Native MSVC
+    libname_spec='$name'
+    soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+    library_names_spec='${libname}.dll.lib'
+
+    case $build_os in
+    mingw*)
+      sys_lib_search_path_spec=
+      lt_save_ifs=$IFS
+      IFS=';'
+      for lt_path in $LIB
+      do
+        IFS=$lt_save_ifs
+        # Let DOS variable expansion print the short 8.3 style file name.
+        lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
+        sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
+      done
+      IFS=$lt_save_ifs
+      # Convert to MSYS style.
+      sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
+      ;;
+    cygwin*)
+      # Convert to unix form, then to dos form, then back to unix form
+      # but this time dos style (no spaces!) so that the unix form looks
+      # like /cygdrive/c/PROGRA~1:/cygdr...
+      sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
+      sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
+      sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+      ;;
+    *)
+      sys_lib_search_path_spec="$LIB"
+      if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
+        # It is most probably a Windows format PATH.
+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+      else
+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+      fi
+      # FIXME: find the short name or the path components, as spaces are
+      # common. (e.g. "Program Files" -> "PROGRA~1")
+      ;;
+    esac
+
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $RM \$dlpath'
+    shlibpath_overrides_runpath=yes
+    dynamic_linker='Win32 link.exe'
     ;;
 
   *)
+    # Assume MSVC wrapper
     library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    dynamic_linker='Win32 ld.exe'
     ;;
   esac
-  dynamic_linker='Win32 ld.exe'
   # FIXME: first we should search . and the directory the executable is in
   shlibpath_var=PATH
   ;;
@@ -9928,6 +10765,19 @@ gnu*)
   hardcode_into_libs=yes
   ;;
 
+haiku*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  dynamic_linker="$host_os runtime_loader"
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
+  hardcode_into_libs=yes
+  ;;
+
 hpux9* | hpux10* | hpux11*)
   # Give a soname corresponding to the major version so that dld.sl refuses to
   # link against other versions.
@@ -9970,8 +10820,10 @@ hpux9* | hpux10* | hpux11*)
     soname_spec='${libname}${release}${shared_ext}$major'
     ;;
   esac
-  # HP-UX runs *really* slowly unless shared libraries are mode 555.
+  # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
   postinstall_cmds='chmod 555 $lib'
+  # or fails outright, so override atomically:
+  install_override_mode=555
   ;;
 
 interix[3-9]*)
@@ -10038,12 +10890,17 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu)
   finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=no
+
   # Some binutils ld are patched to set DT_RUNPATH
-  save_LDFLAGS=$LDFLAGS
-  save_libdir=$libdir
-  eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
-       LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  if test "${lt_cv_shlibpath_overrides_runpath+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_shlibpath_overrides_runpath=no
+    save_LDFLAGS=$LDFLAGS
+    save_libdir=$libdir
+    eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
+	 LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -10056,13 +10913,17 @@ main ()
 _ACEOF
 if ac_fn_c_try_link "$LINENO"; then :
   if  ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
-  shlibpath_overrides_runpath=yes
+  lt_cv_shlibpath_overrides_runpath=yes
 fi
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
-  LDFLAGS=$save_LDFLAGS
-  libdir=$save_libdir
+    LDFLAGS=$save_LDFLAGS
+    libdir=$save_libdir
+
+fi
+
+  shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
 
   # This implies no fast_install, which is unacceptable.
   # Some rework will be needed to allow for fast_install
@@ -10071,7 +10932,7 @@ rm -f core conftest.err conftest.$ac_objext \
 
   # Append ld.so.conf contents to the search path
   if test -f /etc/ld.so.conf; then
-    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
     sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
   fi
 
@@ -10084,18 +10945,6 @@ rm -f core conftest.err conftest.$ac_objext \
   dynamic_linker='GNU/Linux ld.so'
   ;;
 
-netbsdelf*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='NetBSD ld.elf_so'
-  ;;
-
 netbsd*)
   version_type=sunos
   need_lib_prefix=no
@@ -10386,6 +11235,11 @@ fi
 
 
 
+
+
+
+
+
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
 $as_echo_n "checking how to hardcode library paths into programs... " >&6; }
 hardcode_action=
@@ -10716,7 +11570,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 10719 "configure"
+#line $LINENO "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -10757,7 +11611,13 @@ else
 #  endif
 #endif
 
-void fnord() { int i=42;}
+/* When -fvisbility=hidden is used, assume the code has been annotated
+   correspondingly for the symbols needed.  */
+#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+int fnord () __attribute__((visibility("default")));
+#endif
+
+int fnord () { return 42; }
 int main ()
 {
   void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
@@ -10766,7 +11626,11 @@ int main ()
   if (self)
     {
       if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+      else
+        {
+	  if (dlsym( self,"_fnord"))  status = $lt_dlneed_uscore;
+          else puts (dlerror ());
+	}
       /* dlclose (self); */
     }
   else
@@ -10812,7 +11676,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 10815 "configure"
+#line $LINENO "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -10853,7 +11717,13 @@ else
 #  endif
 #endif
 
-void fnord() { int i=42;}
+/* When -fvisbility=hidden is used, assume the code has been annotated
+   correspondingly for the symbols needed.  */
+#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+int fnord () __attribute__((visibility("default")));
+#endif
+
+int fnord () { return 42; }
 int main ()
 {
   void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
@@ -10862,7 +11732,11 @@ int main ()
   if (self)
     {
       if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+      else
+        {
+	  if (dlsym( self,"_fnord"))  status = $lt_dlneed_uscore;
+          else puts (dlerror ());
+	}
       /* dlclose (self); */
     }
   else
@@ -11039,6 +11913,132 @@ CC="$lt_save_CC"
 # Only expand once:
 
 
+if test "x$CC" != xcc; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC and cc understand -c and -o together" >&5
+$as_echo_n "checking whether $CC and cc understand -c and -o together... " >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cc understands -c and -o together" >&5
+$as_echo_n "checking whether cc understands -c and -o together... " >&6; }
+fi
+set dummy $CC; ac_cc=`$as_echo "$2" |
+		      sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'`
+if eval "test \"\${ac_cv_prog_cc_${ac_cc}_c_o+set}\"" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+# Make sure it works both with $CC and with simple cc.
+# We do the test twice because some compilers refuse to overwrite an
+# existing .o file with -o, though they will create one.
+ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
+rm -f conftest2.*
+if { { case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } &&
+   test -f conftest2.$ac_objext && { { case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; };
+then
+  eval ac_cv_prog_cc_${ac_cc}_c_o=yes
+  if test "x$CC" != xcc; then
+    # Test first that cc exists at all.
+    if { ac_try='cc -c conftest.$ac_ext >&5'
+  { { case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }; then
+      ac_try='cc -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
+      rm -f conftest2.*
+      if { { case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } &&
+	 test -f conftest2.$ac_objext && { { case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; };
+      then
+	# cc works too.
+	:
+      else
+	# cc exists but doesn't like -o.
+	eval ac_cv_prog_cc_${ac_cc}_c_o=no
+      fi
+    fi
+  fi
+else
+  eval ac_cv_prog_cc_${ac_cc}_c_o=no
+fi
+rm -f core conftest*
+
+fi
+if eval test \$ac_cv_prog_cc_${ac_cc}_c_o = yes; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+$as_echo "#define NO_MINUS_C_MINUS_O 1" >>confdefs.h
+
+fi
+
+# FIXME: we rely on the cache variable name because
+# there is no other way.
+set dummy $CC
+am_cc=`echo $2 | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'`
+eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o
+if test "$am_t" != yes; then
+   # Losing compiler, so override with the script.
+   # FIXME: It is wrong to rewrite CC.
+   # But if we don't then we get into trouble of one sort or another.
+   # A longer-term fix would be to have automake use am__CC in this case,
+   # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+   CC="$am_aux_dir/compile $CC"
+fi
+
+
 
 # Check whether --enable-libtool-verbose was given.
 if test "${enable_libtool_verbose+set}" = set; then :
@@ -11298,7 +12298,7 @@ fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_store_pointers" >&5
 $as_echo "$can_store_pointers" >&6; }
 if test x$can_store_pointers = xno ; then
-  as_fn_error "
+  as_fn_error $? "
 *** Pointers cannot be stored in doubles on this architecture." "$LINENO" 5
 fi
 
@@ -11312,7 +12312,7 @@ fi
 
 
 if test x$with_gts = xyes ; then
-  as_fn_error "
+  as_fn_error $? "
 *** Directory must be specified for --with-gts" "$LINENO" 5
 fi
 
@@ -11580,7 +12580,7 @@ rm -f core conftest.err conftest.$ac_objext \
      fi
      GTS_CFLAGS=""
      GTS_LIBS=""
-     as_fn_error "
+     as_fn_error $? "
 *** GTS 0.7.4 or better is required. The latest version of GTS
 *** is always available from http://gts.sourceforge.net." "$LINENO" 5
   fi
@@ -11600,7 +12600,7 @@ else
   if test -x $GTS_CONFIG ; then
     :
   else
-    as_fn_error "GTS directory ($with_gts) not present or not configured" "$LINENO" 5
+    as_fn_error $? "GTS directory ($with_gts) not present or not configured" "$LINENO" 5
   fi
 
   # For use in gfs-config
@@ -11903,7 +12903,7 @@ fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_proj_pj_fwd" >&5
 $as_echo "$ac_cv_lib_proj_pj_fwd" >&6; }
 if test "x$ac_cv_lib_proj_pj_fwd" = x""yes; then :
-  proj="true"
+  proj="yes"
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libproj not found. Map module will not be available." >&5
 $as_echo "$as_me: WARNING: libproj not found. Map module will not be available." >&2;}
@@ -11916,14 +12916,14 @@ if test "x$ac_cv_header_proj_api_h" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_PROJ_API_H 1
 _ACEOF
- proj="true"
+ proj="yes"
 else
-  proj="false"
+  proj="no"
 fi
 
 done
 
- if test x$proj = xtrue; then
+ if test x$proj = xyes; then
   HAS_LIBPROJ_TRUE=
   HAS_LIBPROJ_FALSE='#'
 else
@@ -12184,6 +13184,14 @@ rm -f core conftest.err conftest.$ac_objext \
 
   rm -f conf.gsltest
 
+ if test x$no_gsl != xyes; then
+  HAS_GSL_TRUE=
+  HAS_GSL_FALSE='#'
+else
+  HAS_GSL_TRUE='#'
+  HAS_GSL_FALSE=
+fi
+
 
 # checks for netCDF
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nc_open in -lnetcdf" >&5
@@ -12255,6 +13263,9 @@ fi
 if test x$netcdf = xfalse -o x$no_gsl = xyes; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: GSL and/or netCDF not found. Tide module will not be available." >&5
 $as_echo "$as_me: WARNING: GSL and/or netCDF not found. Tide module will not be available." >&2;}
+   tide=no
+else
+   tide=yes
 fi
  if test x$netcdf = xtrue -a x$no_gsl = x; then
   BUILD_TIDE_TRUE=
@@ -12271,7 +13282,7 @@ ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5'
 ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_f77_compiler_gnu
 if test -n "$ac_tool_prefix"; then
-  for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn
+  for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort ifc efc pgfortran pgf95 lf95 ftn
   do
     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
@@ -12315,7 +13326,7 @@ fi
 fi
 if test -z "$F77"; then
   ac_ct_F77=$F77
-  for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn
+  for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort ifc efc pgfortran pgf95 lf95 ftn
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
@@ -12477,230 +13488,15 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
-
-ac_ext=f
+      ac_ext=f
 ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5'
 ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_f77_compiler_gnu
-if test -n "$ac_tool_prefix"; then
-  for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_F77+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$F77"; then
-  ac_cv_prog_F77="$F77" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_F77="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-F77=$ac_cv_prog_F77
-if test -n "$F77"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $F77" >&5
-$as_echo "$F77" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    test -n "$F77" && break
-  done
-fi
-if test -z "$F77"; then
-  ac_ct_F77=$F77
-  for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_F77+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_F77"; then
-  ac_cv_prog_ac_ct_F77="$ac_ct_F77" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_F77="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_F77=$ac_cv_prog_ac_ct_F77
-if test -n "$ac_ct_F77"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_F77" >&5
-$as_echo "$ac_ct_F77" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$ac_ct_F77" && break
-done
-
-  if test "x$ac_ct_F77" = x; then
-    F77=""
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    F77=$ac_ct_F77
-  fi
-fi
-
-
-# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for Fortran 77 compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
-  { { ac_try="$ac_compiler $ac_option >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    sed '10a\
-... rest of stderr output deleted ...
-         10q' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-  fi
-  rm -f conftest.er1 conftest.err
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-done
-rm -f a.out
-
-# If we don't use `.F' as extension, the preprocessor is not run on the
-# input file.  (Note that this only needs to work for GNU compilers.)
-ac_save_ext=$ac_ext
-ac_ext=F
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU Fortran 77 compiler" >&5
-$as_echo_n "checking whether we are using the GNU Fortran 77 compiler... " >&6; }
-if test "${ac_cv_f77_compiler_gnu+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat > conftest.$ac_ext <<_ACEOF
-      program main
-#ifndef __GNUC__
-       choke me
-#endif
-
-      end
-_ACEOF
-if ac_fn_f77_try_compile "$LINENO"; then :
-  ac_compiler_gnu=yes
-else
-  ac_compiler_gnu=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_f77_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_f77_compiler_gnu" >&5
-$as_echo "$ac_cv_f77_compiler_gnu" >&6; }
-ac_ext=$ac_save_ext
-ac_test_FFLAGS=${FFLAGS+set}
-ac_save_FFLAGS=$FFLAGS
-FFLAGS=
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $F77 accepts -g" >&5
-$as_echo_n "checking whether $F77 accepts -g... " >&6; }
-if test "${ac_cv_prog_f77_g+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  FFLAGS=-g
-cat > conftest.$ac_ext <<_ACEOF
-      program main
-
-      end
-_ACEOF
-if ac_fn_f77_try_compile "$LINENO"; then :
-  ac_cv_prog_f77_g=yes
-else
-  ac_cv_prog_f77_g=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_f77_g" >&5
-$as_echo "$ac_cv_prog_f77_g" >&6; }
-if test "$ac_test_FFLAGS" = set; then
-  FFLAGS=$ac_save_FFLAGS
-elif test $ac_cv_prog_f77_g = yes; then
-  if test "x$ac_cv_f77_compiler_gnu" = xyes; then
-    FFLAGS="-g -O2"
-  else
-    FFLAGS="-g"
-  fi
-else
-  if test "x$ac_cv_f77_compiler_gnu" = xyes; then
-    FFLAGS="-O2"
-  else
-    FFLAGS=
-  fi
-fi
-
-if test $ac_compiler_gnu = yes; then
-  G77=yes
-else
-  G77=
-fi
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 if test -z "$F77" || test "X$F77" = "Xno"; then
   _lt_disable_F77=yes
 fi
 
-
-
-      ac_ext=f
-ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5'
-ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_f77_compiler_gnu
-
-
 archive_cmds_need_lc_F77=no
 allow_undefined_flag_F77=
 always_export_symbols_F77=no
@@ -12718,6 +13514,8 @@ module_cmds_F77=
 module_expsym_cmds_F77=
 link_all_deplibs_F77=unknown
 old_archive_cmds_F77=$old_archive_cmds
+reload_flag_F77=$reload_flag
+reload_cmds_F77=$reload_cmds
 no_undefined_flag_F77=
 whole_archive_flag_spec_F77=
 enable_shared_with_static_runtimes_F77=no
@@ -12781,7 +13579,9 @@ $RM -r conftest*
   # Allow CC to be a program name with arguments.
   lt_save_CC="$CC"
   lt_save_GCC=$GCC
+  lt_save_CFLAGS=$CFLAGS
   CC=${F77-"f77"}
+  CFLAGS=$FFLAGS
   compiler=$CC
   compiler_F77=$CC
   for cc_temp in $compiler""; do
@@ -12792,7 +13592,7 @@ $RM -r conftest*
     *) break;;
   esac
 done
-cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
 
   GCC=$G77
   if test -n "$compiler"; then
@@ -12842,8 +13642,6 @@ $as_echo "$enable_static" >&6; }
 lt_prog_compiler_pic_F77=
 lt_prog_compiler_static_F77=
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
-$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
 
   if test "$GCC" = yes; then
     lt_prog_compiler_wl_F77='-Wl,'
@@ -12891,6 +13689,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
       lt_prog_compiler_pic_F77='-fno-common'
       ;;
 
+    haiku*)
+      # PIC is the default for Haiku.
+      # The "-static" flag exists, but is broken.
+      lt_prog_compiler_static_F77=
+      ;;
+
     hpux*)
       # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
       # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
@@ -12933,6 +13737,13 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
       lt_prog_compiler_pic_F77='-fPIC'
       ;;
     esac
+
+    case $cc_basename in
+    nvcc*) # Cuda Compiler Driver 2.2
+      lt_prog_compiler_wl_F77='-Xlinker '
+      lt_prog_compiler_pic_F77='-Xcompiler -fPIC'
+      ;;
+    esac
   else
     # PORTME Check for flag to pass linker flags through the system compiler.
     case $host_os in
@@ -12995,7 +13806,13 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
 	lt_prog_compiler_pic_F77='--shared'
 	lt_prog_compiler_static_F77='--static'
 	;;
-      pgcc* | pgf77* | pgf90* | pgf95*)
+      nagfor*)
+	# NAG Fortran compiler
+	lt_prog_compiler_wl_F77='-Wl,-Wl,,'
+	lt_prog_compiler_pic_F77='-PIC'
+	lt_prog_compiler_static_F77='-Bstatic'
+	;;
+      pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
         # Portland Group compilers (*not* the Pentium gcc compiler,
 	# which looks to be a dead project)
 	lt_prog_compiler_wl_F77='-Wl,'
@@ -13007,25 +13824,25 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
         # All Alpha code is PIC.
         lt_prog_compiler_static_F77='-non_shared'
         ;;
-      xl*)
-	# IBM XL C 8.0/Fortran 10.1 on PPC
+      xl* | bgxl* | bgf* | mpixl*)
+	# IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
 	lt_prog_compiler_wl_F77='-Wl,'
 	lt_prog_compiler_pic_F77='-qpic'
 	lt_prog_compiler_static_F77='-qstaticlink'
 	;;
       *)
 	case `$CC -V 2>&1 | sed 5q` in
-	*Sun\ C*)
-	  # Sun C 5.9
+	*Sun\ F* | *Sun*Fortran*)
+	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
 	  lt_prog_compiler_pic_F77='-KPIC'
 	  lt_prog_compiler_static_F77='-Bstatic'
-	  lt_prog_compiler_wl_F77='-Wl,'
+	  lt_prog_compiler_wl_F77=''
 	  ;;
-	*Sun\ F*)
-	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
+	*Sun\ C*)
+	  # Sun C 5.9
 	  lt_prog_compiler_pic_F77='-KPIC'
 	  lt_prog_compiler_static_F77='-Bstatic'
-	  lt_prog_compiler_wl_F77=''
+	  lt_prog_compiler_wl_F77='-Wl,'
 	  ;;
 	esac
 	;;
@@ -13057,7 +13874,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
       lt_prog_compiler_pic_F77='-KPIC'
       lt_prog_compiler_static_F77='-Bstatic'
       case $cc_basename in
-      f77* | f90* | f95*)
+      f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
 	lt_prog_compiler_wl_F77='-Qoption ld ';;
       *)
 	lt_prog_compiler_wl_F77='-Wl,';;
@@ -13114,10 +13931,17 @@ case $host_os in
     lt_prog_compiler_pic_F77="$lt_prog_compiler_pic_F77"
     ;;
 esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic_F77" >&5
-$as_echo "$lt_prog_compiler_pic_F77" >&6; }
-
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
+$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+if test "${lt_cv_prog_compiler_pic_F77+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_prog_compiler_pic_F77=$lt_prog_compiler_pic_F77
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_F77" >&5
+$as_echo "$lt_cv_prog_compiler_pic_F77" >&6; }
+lt_prog_compiler_pic_F77=$lt_cv_prog_compiler_pic_F77
 
 #
 # Check to make sure the PIC flag actually works.
@@ -13141,15 +13965,15 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:13144: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:13148: \$? = $ac_status" >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
      $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
      if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
        lt_cv_prog_compiler_pic_works_F77=yes
@@ -13175,6 +13999,8 @@ fi
 
 
 
+
+
 #
 # Check to make sure the static flag actually works.
 #
@@ -13194,7 +14020,7 @@ else
      if test -s conftest.err; then
        # Append any errors to the config.log.
        cat conftest.err 1>&5
-       $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
+       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
        $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
        if diff conftest.exp conftest.er2 >/dev/null; then
          lt_cv_prog_compiler_static_works_F77=yes
@@ -13240,16 +14066,16 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:13243: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:13247: \$? = $ac_status" >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
      $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
      if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
        lt_cv_prog_compiler_c_o_F77=yes
@@ -13292,16 +14118,16 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:13295: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:13299: \$? = $ac_status" >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
      $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
      if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
        lt_cv_prog_compiler_c_o_F77=yes
@@ -13408,13 +14234,36 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
   openbsd*)
     with_gnu_ld=no
     ;;
-  linux* | k*bsd*-gnu)
-    link_all_deplibs_F77=no
-    ;;
   esac
 
   ld_shlibs_F77=yes
+
+  # On some targets, GNU ld is compatible enough with the native linker
+  # that we're better off using the native interface for both.
+  lt_use_gnu_ld_interface=no
   if test "$with_gnu_ld" = yes; then
+    case $host_os in
+      aix*)
+	# The AIX port of GNU ld has always aspired to compatibility
+	# with the native linker.  However, as the warning in the GNU ld
+	# block says, versions before 2.19.5* couldn't really create working
+	# shared libraries, regardless of the interface used.
+	case `$LD -v 2>&1` in
+	  *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
+	  *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;;
+	  *\ \(GNU\ Binutils\)\ [3-9]*) ;;
+	  *)
+	    lt_use_gnu_ld_interface=yes
+	    ;;
+	esac
+	;;
+      *)
+	lt_use_gnu_ld_interface=yes
+	;;
+    esac
+  fi
+
+  if test "$lt_use_gnu_ld_interface" = yes; then
     # If archive_cmds runs LD, not CC, wlarc should be empty
     wlarc='${wl}'
 
@@ -13448,11 +14297,12 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
 	ld_shlibs_F77=no
 	cat <<_LT_EOF 1>&2
 
-*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** Warning: the GNU linker, at least up to release 2.19, is reported
 *** to be unable to reliably create shared libraries on AIX.
 *** Therefore, libtool is disabling shared libraries support.  If you
-*** really care for shared libraries, you may want to modify your PATH
-*** so that a non-GNU linker is found, and then restart.
+*** really care for shared libraries, you may want to install binutils
+*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
+*** You will then need to restart the configuration process.
 
 _LT_EOF
       fi
@@ -13488,10 +14338,12 @@ _LT_EOF
       # _LT_TAGVAR(hardcode_libdir_flag_spec, F77) is actually meaningless,
       # as there is no search path for DLLs.
       hardcode_libdir_flag_spec_F77='-L$libdir'
+      export_dynamic_flag_spec_F77='${wl}--export-all-symbols'
       allow_undefined_flag_F77=unsupported
       always_export_symbols_F77=no
       enable_shared_with_static_runtimes_F77=yes
-      export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
+      export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
+      exclude_expsyms_F77='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
 
       if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
         archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
@@ -13509,6 +14361,11 @@ _LT_EOF
       fi
       ;;
 
+    haiku*)
+      archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+      link_all_deplibs_F77=yes
+      ;;
+
     interix[3-9]*)
       hardcode_direct_F77=no
       hardcode_shlibpath_var_F77=no
@@ -13534,15 +14391,16 @@ _LT_EOF
       if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
 	 && test "$tmp_diet" = no
       then
-	tmp_addflag=
+	tmp_addflag=' $pic_flag'
 	tmp_sharedflag='-shared'
 	case $cc_basename,$host_cpu in
         pgcc*)				# Portland Group C compiler
-	  whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+	  whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
 	  tmp_addflag=' $pic_flag'
 	  ;;
-	pgf77* | pgf90* | pgf95*)	# Portland Group f77 and f90 compilers
-	  whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+	pgf77* | pgf90* | pgf95* | pgfortran*)
+					# Portland Group f77 and f90 compilers
+	  whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
 	  tmp_addflag=' $pic_flag -Mnomain' ;;
 	ecc*,ia64* | icc*,ia64*)	# Intel C compiler on ia64
 	  tmp_addflag=' -i_dynamic' ;;
@@ -13553,13 +14411,17 @@ _LT_EOF
 	lf95*)				# Lahey Fortran 8.1
 	  whole_archive_flag_spec_F77=
 	  tmp_sharedflag='--shared' ;;
-	xl[cC]*)			# IBM XL C 8.0 on PPC (deal with xlf below)
+	xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
 	  tmp_sharedflag='-qmkshrobj'
 	  tmp_addflag= ;;
+	nvcc*)	# Cuda Compiler Driver 2.2
+	  whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+	  compiler_needs_object_F77=yes
+	  ;;
 	esac
 	case `$CC -V 2>&1 | sed 5q` in
 	*Sun\ C*)			# Sun C 5.9
-	  whole_archive_flag_spec_F77='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+	  whole_archive_flag_spec_F77='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
 	  compiler_needs_object_F77=yes
 	  tmp_sharedflag='-G' ;;
 	*Sun\ F*)			# Sun Fortran 8.3
@@ -13575,17 +14437,17 @@ _LT_EOF
         fi
 
 	case $cc_basename in
-	xlf*)
+	xlf* | bgf* | bgxlf* | mpixlf*)
 	  # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
 	  whole_archive_flag_spec_F77='--whole-archive$convenience --no-whole-archive'
 	  hardcode_libdir_flag_spec_F77=
 	  hardcode_libdir_flag_spec_ld_F77='-rpath $libdir'
-	  archive_cmds_F77='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib'
+	  archive_cmds_F77='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
 	  if test "x$supports_anon_versioning" = xyes; then
 	    archive_expsym_cmds_F77='echo "{ global:" > $output_objdir/$libname.ver~
 	      cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
 	      echo "local: *; };" >> $output_objdir/$libname.ver~
-	      $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+	      $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
 	  fi
 	  ;;
 	esac
@@ -13594,13 +14456,13 @@ _LT_EOF
       fi
       ;;
 
-    netbsd* | netbsdelf*-gnu)
+    netbsd*)
       if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
 	archive_cmds_F77='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
 	wlarc=
       else
-	archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+	archive_cmds_F77='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds_F77='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
       fi
       ;;
 
@@ -13618,8 +14480,8 @@ _LT_EOF
 
 _LT_EOF
       elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+	archive_cmds_F77='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds_F77='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
       else
 	ld_shlibs_F77=no
       fi
@@ -13665,8 +14527,8 @@ _LT_EOF
 
     *)
       if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+	archive_cmds_F77='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds_F77='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
       else
 	ld_shlibs_F77=no
       fi
@@ -13706,8 +14568,10 @@ _LT_EOF
       else
 	# If we're using GNU nm, then we don't want the "-C" option.
 	# -C means demangle to AIX nm, but means don't demangle with GNU nm
+	# Also, AIX nm treats weak defined symbols like other global
+	# defined symbols, whereas GNU nm marks them as "W".
 	if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
-	  export_symbols_cmds_F77='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+	  export_symbols_cmds_F77='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
 	else
 	  export_symbols_cmds_F77='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
 	fi
@@ -13769,7 +14633,6 @@ _LT_EOF
 	if test "$aix_use_runtimelinking" = yes; then
 	  shared_flag="$shared_flag "'${wl}-G'
 	fi
-	link_all_deplibs_F77=no
       else
 	# not using gcc
 	if test "$host_cpu" = ia64; then
@@ -13795,32 +14658,45 @@ _LT_EOF
 	allow_undefined_flag_F77='-berok'
         # Determine the default libpath from the value encoded in an
         # empty executable.
-        cat > conftest.$ac_ext <<_ACEOF
+        if test "${lt_cv_aix_libpath+set}" = set; then
+  aix_libpath=$lt_cv_aix_libpath
+else
+  if test "${lt_cv_aix_libpath__F77+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat > conftest.$ac_ext <<_ACEOF
       program main
 
       end
 _ACEOF
 if ac_fn_f77_try_link "$LINENO"; then :
 
-lt_aix_libpath_sed='
-    /Import File Strings/,/^$/ {
-	/^0/ {
-	    s/^0  *\(.*\)$/\1/
-	    p
-	}
-    }'
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then
-  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-fi
+  lt_aix_libpath_sed='
+      /Import File Strings/,/^$/ {
+	  /^0/ {
+	      s/^0  *\([^ ]*\) *$/\1/
+	      p
+	  }
+      }'
+  lt_cv_aix_libpath__F77=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  # Check for a 64-bit object if we didn't find anything.
+  if test -z "$lt_cv_aix_libpath__F77"; then
+    lt_cv_aix_libpath__F77=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  fi
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+  if test -z "$lt_cv_aix_libpath__F77"; then
+    lt_cv_aix_libpath__F77="/usr/lib:/lib"
+  fi
+
+fi
+
+  aix_libpath=$lt_cv_aix_libpath__F77
+fi
 
         hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath"
-        archive_expsym_cmds_F77='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+        archive_expsym_cmds_F77='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
       else
 	if test "$host_cpu" = ia64; then
 	  hardcode_libdir_flag_spec_F77='${wl}-R $libdir:/usr/lib:/lib'
@@ -13829,37 +14705,55 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 	else
 	 # Determine the default libpath from the value encoded in an
 	 # empty executable.
-	 cat > conftest.$ac_ext <<_ACEOF
+	 if test "${lt_cv_aix_libpath+set}" = set; then
+  aix_libpath=$lt_cv_aix_libpath
+else
+  if test "${lt_cv_aix_libpath__F77+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat > conftest.$ac_ext <<_ACEOF
       program main
 
       end
 _ACEOF
 if ac_fn_f77_try_link "$LINENO"; then :
 
-lt_aix_libpath_sed='
-    /Import File Strings/,/^$/ {
-	/^0/ {
-	    s/^0  *\(.*\)$/\1/
-	    p
-	}
-    }'
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then
-  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-fi
+  lt_aix_libpath_sed='
+      /Import File Strings/,/^$/ {
+	  /^0/ {
+	      s/^0  *\([^ ]*\) *$/\1/
+	      p
+	  }
+      }'
+  lt_cv_aix_libpath__F77=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  # Check for a 64-bit object if we didn't find anything.
+  if test -z "$lt_cv_aix_libpath__F77"; then
+    lt_cv_aix_libpath__F77=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  fi
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+  if test -z "$lt_cv_aix_libpath__F77"; then
+    lt_cv_aix_libpath__F77="/usr/lib:/lib"
+  fi
+
+fi
+
+  aix_libpath=$lt_cv_aix_libpath__F77
+fi
 
 	 hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath"
 	  # Warning - without using the other run time loading flags,
 	  # -berok will link without error, but may produce a broken library.
 	  no_undefined_flag_F77=' ${wl}-bernotok'
 	  allow_undefined_flag_F77=' ${wl}-berok'
-	  # Exported symbols can be pulled into shared objects from archives
-	  whole_archive_flag_spec_F77='$convenience'
+	  if test "$with_gnu_ld" = yes; then
+	    # We only use this code for GNU lds that support --whole-archive.
+	    whole_archive_flag_spec_F77='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+	  else
+	    # Exported symbols can be pulled into shared objects from archives
+	    whole_archive_flag_spec_F77='$convenience'
+	  fi
 	  archive_cmds_need_lc_F77=yes
 	  # This is similar to how AIX traditionally builds its shared libraries.
 	  archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
@@ -13891,20 +14785,63 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       # Microsoft Visual C++.
       # hardcode_libdir_flag_spec is actually meaningless, as there is
       # no search path for DLLs.
-      hardcode_libdir_flag_spec_F77=' '
-      allow_undefined_flag_F77=unsupported
-      # Tell ltmain to make .lib files, not .a files.
-      libext=lib
-      # Tell ltmain to make .dll files, not .so files.
-      shrext_cmds=".dll"
-      # FIXME: Setting linknames here is a bad hack.
-      archive_cmds_F77='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames='
-      # The linker will automatically build a .lib file if we build a DLL.
-      old_archive_from_new_cmds_F77='true'
-      # FIXME: Should let the user specify the lib program.
-      old_archive_cmds_F77='lib -OUT:$oldlib$oldobjs$old_deplibs'
-      fix_srcfile_path_F77='`cygpath -w "$srcfile"`'
-      enable_shared_with_static_runtimes_F77=yes
+      case $cc_basename in
+      cl*)
+	# Native MSVC
+	hardcode_libdir_flag_spec_F77=' '
+	allow_undefined_flag_F77=unsupported
+	always_export_symbols_F77=yes
+	file_list_spec_F77='@'
+	# Tell ltmain to make .lib files, not .a files.
+	libext=lib
+	# Tell ltmain to make .dll files, not .so files.
+	shrext_cmds=".dll"
+	# FIXME: Setting linknames here is a bad hack.
+	archive_cmds_F77='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
+	archive_expsym_cmds_F77='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	    sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
+	  else
+	    sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
+	  fi~
+	  $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+	  linknames='
+	# The linker will not automatically build a static lib if we build a DLL.
+	# _LT_TAGVAR(old_archive_from_new_cmds, F77)='true'
+	enable_shared_with_static_runtimes_F77=yes
+	export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
+	# Don't use ranlib
+	old_postinstall_cmds_F77='chmod 644 $oldlib'
+	postlink_cmds_F77='lt_outputfile="@OUTPUT@"~
+	  lt_tool_outputfile="@TOOL_OUTPUT@"~
+	  case $lt_outputfile in
+	    *.exe|*.EXE) ;;
+	    *)
+	      lt_outputfile="$lt_outputfile.exe"
+	      lt_tool_outputfile="$lt_tool_outputfile.exe"
+	      ;;
+	  esac~
+	  if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
+	    $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+	    $RM "$lt_outputfile.manifest";
+	  fi'
+	;;
+      *)
+	# Assume MSVC wrapper
+	hardcode_libdir_flag_spec_F77=' '
+	allow_undefined_flag_F77=unsupported
+	# Tell ltmain to make .lib files, not .a files.
+	libext=lib
+	# Tell ltmain to make .dll files, not .so files.
+	shrext_cmds=".dll"
+	# FIXME: Setting linknames here is a bad hack.
+	archive_cmds_F77='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
+	# The linker will automatically build a .lib file if we build a DLL.
+	old_archive_from_new_cmds_F77='true'
+	# FIXME: Should let the user specify the lib program.
+	old_archive_cmds_F77='lib -OUT:$oldlib$oldobjs$old_deplibs'
+	enable_shared_with_static_runtimes_F77=yes
+	;;
+      esac
       ;;
 
     darwin* | rhapsody*)
@@ -13914,7 +14851,11 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
   hardcode_direct_F77=no
   hardcode_automatic_F77=yes
   hardcode_shlibpath_var_F77=unsupported
-  whole_archive_flag_spec_F77=''
+  if test "$lt_cv_ld_force_load" = "yes"; then
+    whole_archive_flag_spec_F77='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
+  else
+    whole_archive_flag_spec_F77=''
+  fi
   link_all_deplibs_F77=yes
   allow_undefined_flag_F77="$_lt_dar_allow_undefined"
   case $cc_basename in
@@ -13922,7 +14863,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
      *) _lt_dar_can_shared=$GCC ;;
   esac
   if test "$_lt_dar_can_shared" = "yes"; then
-    output_verbose_link_cmd=echo
+    output_verbose_link_cmd=func_echo_all
     archive_cmds_F77="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
     module_cmds_F77="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
     archive_expsym_cmds_F77="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
@@ -13965,7 +14906,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 
     # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
     freebsd* | dragonfly*)
-      archive_cmds_F77='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+      archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
       hardcode_libdir_flag_spec_F77='-R$libdir'
       hardcode_direct_F77=yes
       hardcode_shlibpath_var_F77=no
@@ -13973,7 +14914,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 
     hpux9*)
       if test "$GCC" = yes; then
-	archive_cmds_F77='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+	archive_cmds_F77='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
       else
 	archive_cmds_F77='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
       fi
@@ -13988,8 +14929,8 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       ;;
 
     hpux10*)
-      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
-	archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
+	archive_cmds_F77='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
       else
 	archive_cmds_F77='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
       fi
@@ -14007,16 +14948,16 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       ;;
 
     hpux11*)
-      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
 	case $host_cpu in
 	hppa*64*)
 	  archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
 	  ;;
 	ia64*)
-	  archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  archive_cmds_F77='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
 	  ;;
 	*)
-	  archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+	  archive_cmds_F77='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
 	  ;;
 	esac
       else
@@ -14028,7 +14969,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 	  archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
 	  ;;
 	*)
-	  archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+	archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
 	  ;;
 	esac
       fi
@@ -14056,25 +14997,40 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 
     irix5* | irix6* | nonstopux*)
       if test "$GCC" = yes; then
-	archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	archive_cmds_F77='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
 	# Try to use the -exported_symbol ld option, if it does not
 	# work, assume that -exports_file does not work either and
 	# implicitly export all symbols.
-        save_LDFLAGS="$LDFLAGS"
-        LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
-        cat > conftest.$ac_ext <<_ACEOF
-int foo(void) {}
+	# This should be the same for all languages, so no per-tag cache variable.
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5
+$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; }
+if test "${lt_cv_irix_exported_symbol+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  save_LDFLAGS="$LDFLAGS"
+	   LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
+	   cat > conftest.$ac_ext <<_ACEOF
+
+      subroutine foo
+      end
 _ACEOF
 if ac_fn_f77_try_link "$LINENO"; then :
-  archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
-
+  lt_cv_irix_exported_symbol=yes
+else
+  lt_cv_irix_exported_symbol=no
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
-        LDFLAGS="$save_LDFLAGS"
+           LDFLAGS="$save_LDFLAGS"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
+$as_echo "$lt_cv_irix_exported_symbol" >&6; }
+	if test "$lt_cv_irix_exported_symbol" = yes; then
+          archive_expsym_cmds_F77='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
+	fi
       else
-	archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
-	archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
+	archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+	archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
       fi
       archive_cmds_need_lc_F77='no'
       hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir'
@@ -14083,7 +15039,7 @@ rm -f core conftest.err conftest.$ac_objext \
       link_all_deplibs_F77=yes
       ;;
 
-    netbsd* | netbsdelf*-gnu)
+    netbsd*)
       if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
 	archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
       else
@@ -14136,17 +15092,17 @@ rm -f core conftest.err conftest.$ac_objext \
       hardcode_libdir_flag_spec_F77='-L$libdir'
       hardcode_minus_L_F77=yes
       allow_undefined_flag_F77=unsupported
-      archive_cmds_F77='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+      archive_cmds_F77='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
       old_archive_from_new_cmds_F77='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
       ;;
 
     osf3*)
       if test "$GCC" = yes; then
 	allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*'
-	archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
       else
 	allow_undefined_flag_F77=' -expect_unresolved \*'
-	archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+	archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
       fi
       archive_cmds_need_lc_F77='no'
       hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir'
@@ -14156,13 +15112,13 @@ rm -f core conftest.err conftest.$ac_objext \
     osf4* | osf5*)	# as osf3* with the addition of -msym flag
       if test "$GCC" = yes; then
 	allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*'
-	archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	archive_cmds_F77='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
 	hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir'
       else
 	allow_undefined_flag_F77=' -expect_unresolved \*'
-	archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+	archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
 	archive_expsym_cmds_F77='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
-	$CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
+	$CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
 
 	# Both c and cxx compiler support -rpath directly
 	hardcode_libdir_flag_spec_F77='-rpath $libdir'
@@ -14175,9 +15131,9 @@ rm -f core conftest.err conftest.$ac_objext \
       no_undefined_flag_F77=' -z defs'
       if test "$GCC" = yes; then
 	wlarc='${wl}'
-	archive_cmds_F77='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_cmds_F77='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
 	archive_expsym_cmds_F77='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-	  $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+	  $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
       else
 	case `$CC -V 2>&1` in
 	*"Compilers 5.0"*)
@@ -14356,44 +15312,50 @@ x|xyes)
       # to ld, don't add -lc before -lgcc.
       { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
-      $RM conftest*
-      echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+if test "${lt_cv_archive_cmds_need_lc_F77+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  $RM conftest*
+	echo "$lt_simple_compile_test_code" > conftest.$ac_ext
 
-      if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+	if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; } 2>conftest.err; then
-        soname=conftest
-        lib=conftest
-        libobjs=conftest.$ac_objext
-        deplibs=
-        wl=$lt_prog_compiler_wl_F77
-	pic_flag=$lt_prog_compiler_pic_F77
-        compiler_flags=-v
-        linker_flags=-v
-        verstring=
-        output_objdir=.
-        libname=conftest
-        lt_save_allow_undefined_flag=$allow_undefined_flag_F77
-        allow_undefined_flag_F77=
-        if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_F77 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
+	  soname=conftest
+	  lib=conftest
+	  libobjs=conftest.$ac_objext
+	  deplibs=
+	  wl=$lt_prog_compiler_wl_F77
+	  pic_flag=$lt_prog_compiler_pic_F77
+	  compiler_flags=-v
+	  linker_flags=-v
+	  verstring=
+	  output_objdir=.
+	  libname=conftest
+	  lt_save_allow_undefined_flag=$allow_undefined_flag_F77
+	  allow_undefined_flag_F77=
+	  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_F77 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
   (eval $archive_cmds_F77 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }
-        then
-	  archive_cmds_need_lc_F77=no
-        else
-	  archive_cmds_need_lc_F77=yes
-        fi
-        allow_undefined_flag_F77=$lt_save_allow_undefined_flag
-      else
-        cat conftest.err 1>&5
-      fi
-      $RM conftest*
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc_F77" >&5
-$as_echo "$archive_cmds_need_lc_F77" >&6; }
+	  then
+	    lt_cv_archive_cmds_need_lc_F77=no
+	  else
+	    lt_cv_archive_cmds_need_lc_F77=yes
+	  fi
+	  allow_undefined_flag_F77=$lt_save_allow_undefined_flag
+	else
+	  cat conftest.err 1>&5
+	fi
+	$RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc_F77" >&5
+$as_echo "$lt_cv_archive_cmds_need_lc_F77" >&6; }
+      archive_cmds_need_lc_F77=$lt_cv_archive_cmds_need_lc_F77
       ;;
     esac
   fi
@@ -14550,7 +15512,7 @@ amigaos*)
   m68k)
     library_names_spec='$libname.ixlibrary $libname.a'
     # Create ${libname}_ixlibrary.a entries in /sys/libs.
-    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
     ;;
   esac
   ;;
@@ -14581,8 +15543,9 @@ cygwin* | mingw* | pw32* | cegcc*)
   need_version=no
   need_lib_prefix=no
 
-  case $GCC,$host_os in
-  yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
+  case $GCC,$cc_basename in
+  yes,*)
+    # gcc
     library_names_spec='$libname.dll.a'
     # DLL is installed to $(libdir)/../bin by postinstall_cmds
     postinstall_cmds='base_file=`basename \${file}`~
@@ -14603,36 +15566,82 @@ cygwin* | mingw* | pw32* | cegcc*)
     cygwin*)
       # Cygwin DLLs use 'cyg' prefix rather than 'lib'
       soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+
       ;;
     mingw* | cegcc*)
       # MinGW DLLs use traditional 'lib' prefix
       soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-      if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
-        # It is most probably a Windows format PATH printed by
-        # mingw gcc, but we are running on Cygwin. Gcc prints its search
-        # path with ; separators, and with drive letters. We can handle the
-        # drive letters (cygwin fileutils understands them), so leave them,
-        # especially as we might pass files found there to a mingw objdump,
-        # which wouldn't understand a cygwinified path. Ahh.
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-      else
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-      fi
       ;;
     pw32*)
       # pw32 DLLs use 'pw' prefix rather than 'lib'
       library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
       ;;
     esac
+    dynamic_linker='Win32 ld.exe'
+    ;;
+
+  *,cl*)
+    # Native MSVC
+    libname_spec='$name'
+    soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+    library_names_spec='${libname}.dll.lib'
+
+    case $build_os in
+    mingw*)
+      sys_lib_search_path_spec=
+      lt_save_ifs=$IFS
+      IFS=';'
+      for lt_path in $LIB
+      do
+        IFS=$lt_save_ifs
+        # Let DOS variable expansion print the short 8.3 style file name.
+        lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
+        sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
+      done
+      IFS=$lt_save_ifs
+      # Convert to MSYS style.
+      sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
+      ;;
+    cygwin*)
+      # Convert to unix form, then to dos form, then back to unix form
+      # but this time dos style (no spaces!) so that the unix form looks
+      # like /cygdrive/c/PROGRA~1:/cygdr...
+      sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
+      sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
+      sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+      ;;
+    *)
+      sys_lib_search_path_spec="$LIB"
+      if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
+        # It is most probably a Windows format PATH.
+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+      else
+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+      fi
+      # FIXME: find the short name or the path components, as spaces are
+      # common. (e.g. "Program Files" -> "PROGRA~1")
+      ;;
+    esac
+
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $RM \$dlpath'
+    shlibpath_overrides_runpath=yes
+    dynamic_linker='Win32 link.exe'
     ;;
 
   *)
+    # Assume MSVC wrapper
     library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    dynamic_linker='Win32 ld.exe'
     ;;
   esac
-  dynamic_linker='Win32 ld.exe'
   # FIXME: first we should search . and the directory the executable is in
   shlibpath_var=PATH
   ;;
@@ -14718,6 +15727,19 @@ gnu*)
   hardcode_into_libs=yes
   ;;
 
+haiku*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  dynamic_linker="$host_os runtime_loader"
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
+  hardcode_into_libs=yes
+  ;;
+
 hpux9* | hpux10* | hpux11*)
   # Give a soname corresponding to the major version so that dld.sl refuses to
   # link against other versions.
@@ -14760,8 +15782,10 @@ hpux9* | hpux10* | hpux11*)
     soname_spec='${libname}${release}${shared_ext}$major'
     ;;
   esac
-  # HP-UX runs *really* slowly unless shared libraries are mode 555.
+  # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
   postinstall_cmds='chmod 555 $lib'
+  # or fails outright, so override atomically:
+  install_override_mode=555
   ;;
 
 interix[3-9]*)
@@ -14828,25 +15852,34 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu)
   finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=no
+
   # Some binutils ld are patched to set DT_RUNPATH
-  save_LDFLAGS=$LDFLAGS
-  save_libdir=$libdir
-  eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_F77\"; \
-       LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_F77\""
-  cat > conftest.$ac_ext <<_ACEOF
+  if test "${lt_cv_shlibpath_overrides_runpath+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_shlibpath_overrides_runpath=no
+    save_LDFLAGS=$LDFLAGS
+    save_libdir=$libdir
+    eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_F77\"; \
+	 LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_F77\""
+    cat > conftest.$ac_ext <<_ACEOF
       program main
 
       end
 _ACEOF
 if ac_fn_f77_try_link "$LINENO"; then :
   if  ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
-  shlibpath_overrides_runpath=yes
+  lt_cv_shlibpath_overrides_runpath=yes
 fi
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
-  LDFLAGS=$save_LDFLAGS
-  libdir=$save_libdir
+    LDFLAGS=$save_LDFLAGS
+    libdir=$save_libdir
+
+fi
+
+  shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
 
   # This implies no fast_install, which is unacceptable.
   # Some rework will be needed to allow for fast_install
@@ -14855,7 +15888,7 @@ rm -f core conftest.err conftest.$ac_objext \
 
   # Append ld.so.conf contents to the search path
   if test -f /etc/ld.so.conf; then
-    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
     sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
   fi
 
@@ -14868,18 +15901,6 @@ rm -f core conftest.err conftest.$ac_objext \
   dynamic_linker='GNU/Linux ld.so'
   ;;
 
-netbsdelf*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='NetBSD ld.elf_so'
-  ;;
-
 netbsd*)
   version_type=sunos
   need_lib_prefix=no
@@ -15119,6 +16140,8 @@ fi
 
 
 
+
+
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
 $as_echo_n "checking how to hardcode library paths into programs... " >&6; }
 hardcode_action_F77=
@@ -15167,6 +16190,7 @@ fi
 
   GCC=$lt_save_GCC
   CC="$lt_save_CC"
+  CFLAGS="$lt_save_CFLAGS"
 fi # test "$_lt_disable_F77" != yes
 
 ac_ext=c
@@ -15185,6 +16209,3162 @@ else
 fi
 
 
+# Enable the AGMG module (disabled by default due to non-free license)
+# Check whether --enable-agmg was given.
+if test "${enable_agmg+set}" = set; then :
+  enableval=$enable_agmg; with_agmg=$enableval
+else
+  with_agmg="no"
+fi
+
+
+# AGMG module requires the gfortran compiler and lapack/blas
+if test x$with_agmg != xno; then
+   ac_ext=${ac_fc_srcext-f}
+ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5'
+ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_fc_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+  for ac_prog in gfortran f90 xlf90
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_FC+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$FC"; then
+  ac_cv_prog_FC="$FC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_FC="$ac_tool_prefix$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+FC=$ac_cv_prog_FC
+if test -n "$FC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FC" >&5
+$as_echo "$FC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+    test -n "$FC" && break
+  done
+fi
+if test -z "$FC"; then
+  ac_ct_FC=$FC
+  for ac_prog in gfortran f90 xlf90
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_FC+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_FC"; then
+  ac_cv_prog_ac_ct_FC="$ac_ct_FC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_ac_ct_FC="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_FC=$ac_cv_prog_ac_ct_FC
+if test -n "$ac_ct_FC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_FC" >&5
+$as_echo "$ac_ct_FC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$ac_ct_FC" && break
+done
+
+  if test "x$ac_ct_FC" = x; then
+    FC=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    FC=$ac_ct_FC
+  fi
+fi
+
+
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for Fortran compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+  { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    sed '10a\
+... rest of stderr output deleted ...
+         10q' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+  fi
+  rm -f conftest.er1 conftest.err
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+done
+rm -f a.out
+
+# If we don't use `.F' as extension, the preprocessor is not run on the
+# input file.  (Note that this only needs to work for GNU compilers.)
+ac_save_ext=$ac_ext
+ac_ext=F
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU Fortran compiler" >&5
+$as_echo_n "checking whether we are using the GNU Fortran compiler... " >&6; }
+if test "${ac_cv_fc_compiler_gnu+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat > conftest.$ac_ext <<_ACEOF
+      program main
+#ifndef __GNUC__
+       choke me
+#endif
+
+      end
+_ACEOF
+if ac_fn_fc_try_compile "$LINENO"; then :
+  ac_compiler_gnu=yes
+else
+  ac_compiler_gnu=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_fc_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_fc_compiler_gnu" >&5
+$as_echo "$ac_cv_fc_compiler_gnu" >&6; }
+ac_ext=$ac_save_ext
+ac_test_FCFLAGS=${FCFLAGS+set}
+ac_save_FCFLAGS=$FCFLAGS
+FCFLAGS=
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $FC accepts -g" >&5
+$as_echo_n "checking whether $FC accepts -g... " >&6; }
+if test "${ac_cv_prog_fc_g+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  FCFLAGS=-g
+cat > conftest.$ac_ext <<_ACEOF
+      program main
+
+      end
+_ACEOF
+if ac_fn_fc_try_compile "$LINENO"; then :
+  ac_cv_prog_fc_g=yes
+else
+  ac_cv_prog_fc_g=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_fc_g" >&5
+$as_echo "$ac_cv_prog_fc_g" >&6; }
+if test "$ac_test_FCFLAGS" = set; then
+  FCFLAGS=$ac_save_FCFLAGS
+elif test $ac_cv_prog_fc_g = yes; then
+  if test "x$ac_cv_fc_compiler_gnu" = xyes; then
+    FCFLAGS="-g -O2"
+  else
+    FCFLAGS="-g"
+  fi
+else
+  if test "x$ac_cv_fc_compiler_gnu" = xyes; then
+    FCFLAGS="-O2"
+  else
+    FCFLAGS=
+  fi
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+func_stripname_cnf ()
+{
+  case ${2} in
+  .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
+  *)  func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
+  esac
+} # func_stripname_cnf
+
+
+      ac_ext=${ac_fc_srcext-f}
+ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5'
+ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_fc_compiler_gnu
+
+
+if test -z "$FC" || test "X$FC" = "Xno"; then
+  _lt_disable_FC=yes
+fi
+
+archive_cmds_need_lc_FC=no
+allow_undefined_flag_FC=
+always_export_symbols_FC=no
+archive_expsym_cmds_FC=
+export_dynamic_flag_spec_FC=
+hardcode_direct_FC=no
+hardcode_direct_absolute_FC=no
+hardcode_libdir_flag_spec_FC=
+hardcode_libdir_flag_spec_ld_FC=
+hardcode_libdir_separator_FC=
+hardcode_minus_L_FC=no
+hardcode_automatic_FC=no
+inherit_rpath_FC=no
+module_cmds_FC=
+module_expsym_cmds_FC=
+link_all_deplibs_FC=unknown
+old_archive_cmds_FC=$old_archive_cmds
+reload_flag_FC=$reload_flag
+reload_cmds_FC=$reload_cmds
+no_undefined_flag_FC=
+whole_archive_flag_spec_FC=
+enable_shared_with_static_runtimes_FC=no
+
+# Source file extension for fc test sources.
+ac_ext=${ac_fc_srcext-f}
+
+# Object file extension for compiled fc test sources.
+objext=o
+objext_FC=$objext
+
+# No sense in running all these tests if we already determined that
+# the FC compiler isn't working.  Some variables (like enable_shared)
+# are currently assumed to apply to all compilers on this platform,
+# and will be corrupted by setting them based on a non-working compiler.
+if test "$_lt_disable_FC" != yes; then
+  # Code to be used in simple compile tests
+  lt_simple_compile_test_code="\
+      subroutine t
+      return
+      end
+"
+
+  # Code to be used in simple link tests
+  lt_simple_link_test_code="\
+      program t
+      end
+"
+
+  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
+
+
+
+
+
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+  # save warnings/boilerplate of simple test code
+  ac_outfile=conftest.$ac_objext
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$RM conftest*
+
+  ac_outfile=conftest.$ac_objext
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$RM -r conftest*
+
+
+  # Allow CC to be a program name with arguments.
+  lt_save_CC="$CC"
+  lt_save_GCC=$GCC
+  lt_save_CFLAGS=$CFLAGS
+  CC=${FC-"f95"}
+  CFLAGS=$FCFLAGS
+  compiler=$CC
+  GCC=$ac_cv_fc_compiler_gnu
+
+  compiler_FC=$CC
+  for cc_temp in $compiler""; do
+  case $cc_temp in
+    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+    \-*) ;;
+    *) break;;
+  esac
+done
+cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
+
+
+  if test -n "$compiler"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
+$as_echo_n "checking if libtool supports shared libraries... " >&6; }
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
+$as_echo "$can_build_shared" >&6; }
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
+$as_echo_n "checking whether to build shared libraries... " >&6; }
+    test "$can_build_shared" = "no" && enable_shared=no
+
+    # On AIX, shared libraries and static libraries use the same namespace, and
+    # are all built from PIC.
+    case $host_os in
+      aix3*)
+        test "$enable_shared" = yes && enable_static=no
+        if test -n "$RANLIB"; then
+          archive_cmds="$archive_cmds~\$RANLIB \$lib"
+          postinstall_cmds='$RANLIB $lib'
+        fi
+        ;;
+      aix[4-9]*)
+	if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+	  test "$enable_shared" = yes && enable_static=no
+	fi
+        ;;
+    esac
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5
+$as_echo "$enable_shared" >&6; }
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
+$as_echo_n "checking whether to build static libraries... " >&6; }
+    # Make sure either enable_shared or enable_static is yes.
+    test "$enable_shared" = yes || enable_static=yes
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
+$as_echo "$enable_static" >&6; }
+
+    GCC_FC="$ac_cv_fc_compiler_gnu"
+    LD_FC="$LD"
+
+    ## CAVEAT EMPTOR:
+    ## There is no encapsulation within the following macros, do not change
+    ## the running order or otherwise move them around unless you know exactly
+    ## what you are doing...
+    # Dependencies to place before and after the object being linked:
+predep_objects_FC=
+postdep_objects_FC=
+predeps_FC=
+postdeps_FC=
+compiler_lib_search_path_FC=
+
+cat > conftest.$ac_ext <<_LT_EOF
+      subroutine foo
+      implicit none
+      integer a
+      a=0
+      return
+      end
+_LT_EOF
+
+
+_lt_libdeps_save_CFLAGS=$CFLAGS
+case "$CC $CFLAGS " in #(
+*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;;
+*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;;
+esac
+
+if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  # Parse the compiler output and extract the necessary
+  # objects, libraries and library flags.
+
+  # Sentinel used to keep track of whether or not we are before
+  # the conftest object file.
+  pre_test_object_deps_done=no
+
+  for p in `eval "$output_verbose_link_cmd"`; do
+    case ${prev}${p} in
+
+    -L* | -R* | -l*)
+       # Some compilers place space between "-{L,R}" and the path.
+       # Remove the space.
+       if test $p = "-L" ||
+          test $p = "-R"; then
+	 prev=$p
+	 continue
+       fi
+
+       # Expand the sysroot to ease extracting the directories later.
+       if test -z "$prev"; then
+         case $p in
+         -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;;
+         -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;;
+         -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;;
+         esac
+       fi
+       case $p in
+       =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;;
+       esac
+       if test "$pre_test_object_deps_done" = no; then
+	 case ${prev} in
+	 -L | -R)
+	   # Internal compiler library paths should come after those
+	   # provided the user.  The postdeps already come after the
+	   # user supplied libs so there is no need to process them.
+	   if test -z "$compiler_lib_search_path_FC"; then
+	     compiler_lib_search_path_FC="${prev}${p}"
+	   else
+	     compiler_lib_search_path_FC="${compiler_lib_search_path_FC} ${prev}${p}"
+	   fi
+	   ;;
+	 # The "-l" case would never come before the object being
+	 # linked, so don't bother handling this case.
+	 esac
+       else
+	 if test -z "$postdeps_FC"; then
+	   postdeps_FC="${prev}${p}"
+	 else
+	   postdeps_FC="${postdeps_FC} ${prev}${p}"
+	 fi
+       fi
+       prev=
+       ;;
+
+    *.lto.$objext) ;; # Ignore GCC LTO objects
+    *.$objext)
+       # This assumes that the test object file only shows up
+       # once in the compiler output.
+       if test "$p" = "conftest.$objext"; then
+	 pre_test_object_deps_done=yes
+	 continue
+       fi
+
+       if test "$pre_test_object_deps_done" = no; then
+	 if test -z "$predep_objects_FC"; then
+	   predep_objects_FC="$p"
+	 else
+	   predep_objects_FC="$predep_objects_FC $p"
+	 fi
+       else
+	 if test -z "$postdep_objects_FC"; then
+	   postdep_objects_FC="$p"
+	 else
+	   postdep_objects_FC="$postdep_objects_FC $p"
+	 fi
+       fi
+       ;;
+
+    *) ;; # Ignore the rest.
+
+    esac
+  done
+
+  # Clean up.
+  rm -f a.out a.exe
+else
+  echo "libtool.m4: error: problem compiling FC test program"
+fi
+
+$RM -f confest.$objext
+CFLAGS=$_lt_libdeps_save_CFLAGS
+
+# PORTME: override above test on systems where it is broken
+
+
+case " $postdeps_FC " in
+*" -lc "*) archive_cmds_need_lc_FC=no ;;
+esac
+ compiler_lib_search_dirs_FC=
+if test -n "${compiler_lib_search_path_FC}"; then
+ compiler_lib_search_dirs_FC=`echo " ${compiler_lib_search_path_FC}" | ${SED} -e 's! -L! !g' -e 's!^ !!'`
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    lt_prog_compiler_wl_FC=
+lt_prog_compiler_pic_FC=
+lt_prog_compiler_static_FC=
+
+
+  if test "$GCC" = yes; then
+    lt_prog_compiler_wl_FC='-Wl,'
+    lt_prog_compiler_static_FC='-static'
+
+    case $host_os in
+      aix*)
+      # All AIX code is PIC.
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	lt_prog_compiler_static_FC='-Bstatic'
+      fi
+      ;;
+
+    amigaos*)
+      case $host_cpu in
+      powerpc)
+            # see comment about AmigaOS4 .so support
+            lt_prog_compiler_pic_FC='-fPIC'
+        ;;
+      m68k)
+            # FIXME: we need at least 68020 code to build shared libraries, but
+            # adding the `-m68020' flag to GCC prevents building anything better,
+            # like `-m68040'.
+            lt_prog_compiler_pic_FC='-m68020 -resident32 -malways-restore-a4'
+        ;;
+      esac
+      ;;
+
+    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
+
+    mingw* | cygwin* | pw32* | os2* | cegcc*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      # Although the cygwin gcc ignores -fPIC, still need this for old-style
+      # (--disable-auto-import) libraries
+      lt_prog_compiler_pic_FC='-DDLL_EXPORT'
+      ;;
+
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      lt_prog_compiler_pic_FC='-fno-common'
+      ;;
+
+    haiku*)
+      # PIC is the default for Haiku.
+      # The "-static" flag exists, but is broken.
+      lt_prog_compiler_static_FC=
+      ;;
+
+    hpux*)
+      # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
+      # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
+      # sets the default TLS model and affects inlining.
+      case $host_cpu in
+      hppa*64*)
+	# +Z the default
+	;;
+      *)
+	lt_prog_compiler_pic_FC='-fPIC'
+	;;
+      esac
+      ;;
+
+    interix[3-9]*)
+      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+      # Instead, we relocate shared libraries at runtime.
+      ;;
+
+    msdosdjgpp*)
+      # Just because we use GCC doesn't mean we suddenly get shared libraries
+      # on systems that don't support them.
+      lt_prog_compiler_can_build_shared_FC=no
+      enable_shared=no
+      ;;
+
+    *nto* | *qnx*)
+      # QNX uses GNU C++, but need to define -shared option too, otherwise
+      # it will coredump.
+      lt_prog_compiler_pic_FC='-fPIC -shared'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	lt_prog_compiler_pic_FC=-Kconform_pic
+      fi
+      ;;
+
+    *)
+      lt_prog_compiler_pic_FC='-fPIC'
+      ;;
+    esac
+
+    case $cc_basename in
+    nvcc*) # Cuda Compiler Driver 2.2
+      lt_prog_compiler_wl_FC='-Xlinker '
+      lt_prog_compiler_pic_FC='-Xcompiler -fPIC'
+      ;;
+    esac
+  else
+    # PORTME Check for flag to pass linker flags through the system compiler.
+    case $host_os in
+    aix*)
+      lt_prog_compiler_wl_FC='-Wl,'
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	lt_prog_compiler_static_FC='-Bstatic'
+      else
+	lt_prog_compiler_static_FC='-bnso -bI:/lib/syscalls.exp'
+      fi
+      ;;
+
+    mingw* | cygwin* | pw32* | os2* | cegcc*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      lt_prog_compiler_pic_FC='-DDLL_EXPORT'
+      ;;
+
+    hpux9* | hpux10* | hpux11*)
+      lt_prog_compiler_wl_FC='-Wl,'
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case $host_cpu in
+      hppa*64*|ia64*)
+	# +Z the default
+	;;
+      *)
+	lt_prog_compiler_pic_FC='+Z'
+	;;
+      esac
+      # Is there a better lt_prog_compiler_static that works with the bundled CC?
+      lt_prog_compiler_static_FC='${wl}-a ${wl}archive'
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      lt_prog_compiler_wl_FC='-Wl,'
+      # PIC (with -KPIC) is the default.
+      lt_prog_compiler_static_FC='-non_shared'
+      ;;
+
+    linux* | k*bsd*-gnu | kopensolaris*-gnu)
+      case $cc_basename in
+      # old Intel for x86_64 which still supported -KPIC.
+      ecc*)
+	lt_prog_compiler_wl_FC='-Wl,'
+	lt_prog_compiler_pic_FC='-KPIC'
+	lt_prog_compiler_static_FC='-static'
+        ;;
+      # icc used to be incompatible with GCC.
+      # ICC 10 doesn't accept -KPIC any more.
+      icc* | ifort*)
+	lt_prog_compiler_wl_FC='-Wl,'
+	lt_prog_compiler_pic_FC='-fPIC'
+	lt_prog_compiler_static_FC='-static'
+        ;;
+      # Lahey Fortran 8.1.
+      lf95*)
+	lt_prog_compiler_wl_FC='-Wl,'
+	lt_prog_compiler_pic_FC='--shared'
+	lt_prog_compiler_static_FC='--static'
+	;;
+      nagfor*)
+	# NAG Fortran compiler
+	lt_prog_compiler_wl_FC='-Wl,-Wl,,'
+	lt_prog_compiler_pic_FC='-PIC'
+	lt_prog_compiler_static_FC='-Bstatic'
+	;;
+      pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
+        # Portland Group compilers (*not* the Pentium gcc compiler,
+	# which looks to be a dead project)
+	lt_prog_compiler_wl_FC='-Wl,'
+	lt_prog_compiler_pic_FC='-fpic'
+	lt_prog_compiler_static_FC='-Bstatic'
+        ;;
+      ccc*)
+        lt_prog_compiler_wl_FC='-Wl,'
+        # All Alpha code is PIC.
+        lt_prog_compiler_static_FC='-non_shared'
+        ;;
+      xl* | bgxl* | bgf* | mpixl*)
+	# IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
+	lt_prog_compiler_wl_FC='-Wl,'
+	lt_prog_compiler_pic_FC='-qpic'
+	lt_prog_compiler_static_FC='-qstaticlink'
+	;;
+      *)
+	case `$CC -V 2>&1 | sed 5q` in
+	*Sun\ F* | *Sun*Fortran*)
+	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
+	  lt_prog_compiler_pic_FC='-KPIC'
+	  lt_prog_compiler_static_FC='-Bstatic'
+	  lt_prog_compiler_wl_FC=''
+	  ;;
+	*Sun\ C*)
+	  # Sun C 5.9
+	  lt_prog_compiler_pic_FC='-KPIC'
+	  lt_prog_compiler_static_FC='-Bstatic'
+	  lt_prog_compiler_wl_FC='-Wl,'
+	  ;;
+	esac
+	;;
+      esac
+      ;;
+
+    newsos6)
+      lt_prog_compiler_pic_FC='-KPIC'
+      lt_prog_compiler_static_FC='-Bstatic'
+      ;;
+
+    *nto* | *qnx*)
+      # QNX uses GNU C++, but need to define -shared option too, otherwise
+      # it will coredump.
+      lt_prog_compiler_pic_FC='-fPIC -shared'
+      ;;
+
+    osf3* | osf4* | osf5*)
+      lt_prog_compiler_wl_FC='-Wl,'
+      # All OSF/1 code is PIC.
+      lt_prog_compiler_static_FC='-non_shared'
+      ;;
+
+    rdos*)
+      lt_prog_compiler_static_FC='-non_shared'
+      ;;
+
+    solaris*)
+      lt_prog_compiler_pic_FC='-KPIC'
+      lt_prog_compiler_static_FC='-Bstatic'
+      case $cc_basename in
+      f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
+	lt_prog_compiler_wl_FC='-Qoption ld ';;
+      *)
+	lt_prog_compiler_wl_FC='-Wl,';;
+      esac
+      ;;
+
+    sunos4*)
+      lt_prog_compiler_wl_FC='-Qoption ld '
+      lt_prog_compiler_pic_FC='-PIC'
+      lt_prog_compiler_static_FC='-Bstatic'
+      ;;
+
+    sysv4 | sysv4.2uw2* | sysv4.3*)
+      lt_prog_compiler_wl_FC='-Wl,'
+      lt_prog_compiler_pic_FC='-KPIC'
+      lt_prog_compiler_static_FC='-Bstatic'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec ;then
+	lt_prog_compiler_pic_FC='-Kconform_pic'
+	lt_prog_compiler_static_FC='-Bstatic'
+      fi
+      ;;
+
+    sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+      lt_prog_compiler_wl_FC='-Wl,'
+      lt_prog_compiler_pic_FC='-KPIC'
+      lt_prog_compiler_static_FC='-Bstatic'
+      ;;
+
+    unicos*)
+      lt_prog_compiler_wl_FC='-Wl,'
+      lt_prog_compiler_can_build_shared_FC=no
+      ;;
+
+    uts4*)
+      lt_prog_compiler_pic_FC='-pic'
+      lt_prog_compiler_static_FC='-Bstatic'
+      ;;
+
+    *)
+      lt_prog_compiler_can_build_shared_FC=no
+      ;;
+    esac
+  fi
+
+case $host_os in
+  # For platforms which do not support PIC, -DPIC is meaningless:
+  *djgpp*)
+    lt_prog_compiler_pic_FC=
+    ;;
+  *)
+    lt_prog_compiler_pic_FC="$lt_prog_compiler_pic_FC"
+    ;;
+esac
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
+$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+if test "${lt_cv_prog_compiler_pic_FC+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_prog_compiler_pic_FC=$lt_prog_compiler_pic_FC
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_FC" >&5
+$as_echo "$lt_cv_prog_compiler_pic_FC" >&6; }
+lt_prog_compiler_pic_FC=$lt_cv_prog_compiler_pic_FC
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$lt_prog_compiler_pic_FC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_FC works" >&5
+$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_FC works... " >&6; }
+if test "${lt_cv_prog_compiler_pic_works_FC+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_prog_compiler_pic_works_FC=no
+   ac_outfile=conftest.$ac_objext
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+   lt_compiler_flag="$lt_prog_compiler_pic_FC"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   # The option is referenced via a variable to avoid confusing sed.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>conftest.err)
+   ac_status=$?
+   cat conftest.err >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s "$ac_outfile"; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings other than the usual output.
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
+     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+       lt_cv_prog_compiler_pic_works_FC=yes
+     fi
+   fi
+   $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works_FC" >&5
+$as_echo "$lt_cv_prog_compiler_pic_works_FC" >&6; }
+
+if test x"$lt_cv_prog_compiler_pic_works_FC" = xyes; then
+    case $lt_prog_compiler_pic_FC in
+     "" | " "*) ;;
+     *) lt_prog_compiler_pic_FC=" $lt_prog_compiler_pic_FC" ;;
+     esac
+else
+    lt_prog_compiler_pic_FC=
+     lt_prog_compiler_can_build_shared_FC=no
+fi
+
+fi
+
+
+
+
+
+#
+# Check to make sure the static flag actually works.
+#
+wl=$lt_prog_compiler_wl_FC eval lt_tmp_static_flag=\"$lt_prog_compiler_static_FC\"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
+if test "${lt_cv_prog_compiler_static_works_FC+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_prog_compiler_static_works_FC=no
+   save_LDFLAGS="$LDFLAGS"
+   LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
+   echo "$lt_simple_link_test_code" > conftest.$ac_ext
+   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+     # The linker can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test -s conftest.err; then
+       # Append any errors to the config.log.
+       cat conftest.err 1>&5
+       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
+       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+       if diff conftest.exp conftest.er2 >/dev/null; then
+         lt_cv_prog_compiler_static_works_FC=yes
+       fi
+     else
+       lt_cv_prog_compiler_static_works_FC=yes
+     fi
+   fi
+   $RM -r conftest*
+   LDFLAGS="$save_LDFLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works_FC" >&5
+$as_echo "$lt_cv_prog_compiler_static_works_FC" >&6; }
+
+if test x"$lt_cv_prog_compiler_static_works_FC" = xyes; then
+    :
+else
+    lt_prog_compiler_static_FC=
+fi
+
+
+
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if test "${lt_cv_prog_compiler_c_o_FC+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_prog_compiler_c_o_FC=no
+   $RM -r conftest 2>/dev/null
+   mkdir conftest
+   cd conftest
+   mkdir out
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+   lt_compiler_flag="-o out/conftest2.$ac_objext"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>out/conftest.err)
+   ac_status=$?
+   cat out/conftest.err >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s out/conftest2.$ac_objext
+   then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
+     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+       lt_cv_prog_compiler_c_o_FC=yes
+     fi
+   fi
+   chmod u+w . 2>&5
+   $RM conftest*
+   # SGI C++ compiler will create directory out/ii_files/ for
+   # template instantiation
+   test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+   $RM out/* && rmdir out
+   cd ..
+   $RM -r conftest
+   $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_FC" >&5
+$as_echo "$lt_cv_prog_compiler_c_o_FC" >&6; }
+
+
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if test "${lt_cv_prog_compiler_c_o_FC+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_prog_compiler_c_o_FC=no
+   $RM -r conftest 2>/dev/null
+   mkdir conftest
+   cd conftest
+   mkdir out
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+   lt_compiler_flag="-o out/conftest2.$ac_objext"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>out/conftest.err)
+   ac_status=$?
+   cat out/conftest.err >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s out/conftest2.$ac_objext
+   then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
+     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+       lt_cv_prog_compiler_c_o_FC=yes
+     fi
+   fi
+   chmod u+w . 2>&5
+   $RM conftest*
+   # SGI C++ compiler will create directory out/ii_files/ for
+   # template instantiation
+   test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+   $RM out/* && rmdir out
+   cd ..
+   $RM -r conftest
+   $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_FC" >&5
+$as_echo "$lt_cv_prog_compiler_c_o_FC" >&6; }
+
+
+
+
+hard_links="nottested"
+if test "$lt_cv_prog_compiler_c_o_FC" = no && test "$need_locks" != no; then
+  # do not overwrite the value of need_locks provided by the user
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
+$as_echo_n "checking if we can lock with hard links... " >&6; }
+  hard_links=yes
+  $RM conftest*
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  touch conftest.a
+  ln conftest.a conftest.b 2>&5 || hard_links=no
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
+$as_echo "$hard_links" >&6; }
+  if test "$hard_links" = no; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+    need_locks=warn
+  fi
+else
+  need_locks=no
+fi
+
+
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
+
+  runpath_var=
+  allow_undefined_flag_FC=
+  always_export_symbols_FC=no
+  archive_cmds_FC=
+  archive_expsym_cmds_FC=
+  compiler_needs_object_FC=no
+  enable_shared_with_static_runtimes_FC=no
+  export_dynamic_flag_spec_FC=
+  export_symbols_cmds_FC='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  hardcode_automatic_FC=no
+  hardcode_direct_FC=no
+  hardcode_direct_absolute_FC=no
+  hardcode_libdir_flag_spec_FC=
+  hardcode_libdir_flag_spec_ld_FC=
+  hardcode_libdir_separator_FC=
+  hardcode_minus_L_FC=no
+  hardcode_shlibpath_var_FC=unsupported
+  inherit_rpath_FC=no
+  link_all_deplibs_FC=unknown
+  module_cmds_FC=
+  module_expsym_cmds_FC=
+  old_archive_from_new_cmds_FC=
+  old_archive_from_expsyms_cmds_FC=
+  thread_safe_flag_spec_FC=
+  whole_archive_flag_spec_FC=
+  # include_expsyms should be a list of space-separated symbols to be *always*
+  # included in the symbol list
+  include_expsyms_FC=
+  # exclude_expsyms can be an extended regexp of symbols to exclude
+  # it will be wrapped by ` (' and `)$', so one must not match beginning or
+  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+  # as well as any symbol that contains `d'.
+  exclude_expsyms_FC='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
+  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+  # platforms (ab)use it in PIC code, but their linkers get confused if
+  # the symbol is explicitly referenced.  Since portable code cannot
+  # rely on this symbol name, it's probably fine to never include it in
+  # preloaded symbol tables.
+  # Exclude shared library initialization/finalization symbols.
+  extract_expsyms_cmds=
+
+  case $host_os in
+  cygwin* | mingw* | pw32* | cegcc*)
+    # FIXME: the MSVC++ port hasn't been tested in a loooong time
+    # When not using gcc, we currently assume that we are using
+    # Microsoft Visual C++.
+    if test "$GCC" != yes; then
+      with_gnu_ld=no
+    fi
+    ;;
+  interix*)
+    # we just hope/assume this is gcc and not c89 (= MSVC++)
+    with_gnu_ld=yes
+    ;;
+  openbsd*)
+    with_gnu_ld=no
+    ;;
+  esac
+
+  ld_shlibs_FC=yes
+
+  # On some targets, GNU ld is compatible enough with the native linker
+  # that we're better off using the native interface for both.
+  lt_use_gnu_ld_interface=no
+  if test "$with_gnu_ld" = yes; then
+    case $host_os in
+      aix*)
+	# The AIX port of GNU ld has always aspired to compatibility
+	# with the native linker.  However, as the warning in the GNU ld
+	# block says, versions before 2.19.5* couldn't really create working
+	# shared libraries, regardless of the interface used.
+	case `$LD -v 2>&1` in
+	  *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
+	  *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;;
+	  *\ \(GNU\ Binutils\)\ [3-9]*) ;;
+	  *)
+	    lt_use_gnu_ld_interface=yes
+	    ;;
+	esac
+	;;
+      *)
+	lt_use_gnu_ld_interface=yes
+	;;
+    esac
+  fi
+
+  if test "$lt_use_gnu_ld_interface" = yes; then
+    # If archive_cmds runs LD, not CC, wlarc should be empty
+    wlarc='${wl}'
+
+    # Set some defaults for GNU ld with shared library support. These
+    # are reset later if shared libraries are not supported. Putting them
+    # here allows them to be overridden if necessary.
+    runpath_var=LD_RUN_PATH
+    hardcode_libdir_flag_spec_FC='${wl}-rpath ${wl}$libdir'
+    export_dynamic_flag_spec_FC='${wl}--export-dynamic'
+    # ancient GNU ld didn't support --whole-archive et. al.
+    if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
+      whole_archive_flag_spec_FC="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+    else
+      whole_archive_flag_spec_FC=
+    fi
+    supports_anon_versioning=no
+    case `$LD -v 2>&1` in
+      *GNU\ gold*) supports_anon_versioning=yes ;;
+      *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
+      *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+      *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+      *\ 2.11.*) ;; # other 2.11 versions
+      *) supports_anon_versioning=yes ;;
+    esac
+
+    # See if GNU ld supports shared libraries.
+    case $host_os in
+    aix[3-9]*)
+      # On AIX/PPC, the GNU linker is very broken
+      if test "$host_cpu" != ia64; then
+	ld_shlibs_FC=no
+	cat <<_LT_EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.19, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support.  If you
+*** really care for shared libraries, you may want to install binutils
+*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
+*** You will then need to restart the configuration process.
+
+_LT_EOF
+      fi
+      ;;
+
+    amigaos*)
+      case $host_cpu in
+      powerpc)
+            # see comment about AmigaOS4 .so support
+            archive_cmds_FC='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+            archive_expsym_cmds_FC=''
+        ;;
+      m68k)
+            archive_cmds_FC='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+            hardcode_libdir_flag_spec_FC='-L$libdir'
+            hardcode_minus_L_FC=yes
+        ;;
+      esac
+      ;;
+
+    beos*)
+      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+	allow_undefined_flag_FC=unsupported
+	# Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
+	# support --undefined.  This deserves some investigation.  FIXME
+	archive_cmds_FC='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+      else
+	ld_shlibs_FC=no
+      fi
+      ;;
+
+    cygwin* | mingw* | pw32* | cegcc*)
+      # _LT_TAGVAR(hardcode_libdir_flag_spec, FC) is actually meaningless,
+      # as there is no search path for DLLs.
+      hardcode_libdir_flag_spec_FC='-L$libdir'
+      export_dynamic_flag_spec_FC='${wl}--export-all-symbols'
+      allow_undefined_flag_FC=unsupported
+      always_export_symbols_FC=no
+      enable_shared_with_static_runtimes_FC=yes
+      export_symbols_cmds_FC='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
+      exclude_expsyms_FC='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
+
+      if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+        archive_cmds_FC='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+	# If the export-symbols file already is a .def file (1st line
+	# is EXPORTS), use it as is; otherwise, prepend...
+	archive_expsym_cmds_FC='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	  cp $export_symbols $output_objdir/$soname.def;
+	else
+	  echo EXPORTS > $output_objdir/$soname.def;
+	  cat $export_symbols >> $output_objdir/$soname.def;
+	fi~
+	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+      else
+	ld_shlibs_FC=no
+      fi
+      ;;
+
+    haiku*)
+      archive_cmds_FC='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+      link_all_deplibs_FC=yes
+      ;;
+
+    interix[3-9]*)
+      hardcode_direct_FC=no
+      hardcode_shlibpath_var_FC=no
+      hardcode_libdir_flag_spec_FC='${wl}-rpath,$libdir'
+      export_dynamic_flag_spec_FC='${wl}-E'
+      # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+      # Instead, shared libraries are loaded at an image base (0x10000000 by
+      # default) and relocated if they conflict, which is a slow very memory
+      # consuming and fragmenting process.  To avoid this, we pick a random,
+      # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+      # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
+      archive_cmds_FC='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      archive_expsym_cmds_FC='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      ;;
+
+    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
+      tmp_diet=no
+      if test "$host_os" = linux-dietlibc; then
+	case $cc_basename in
+	  diet\ *) tmp_diet=yes;;	# linux-dietlibc with static linking (!diet-dyn)
+	esac
+      fi
+      if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
+	 && test "$tmp_diet" = no
+      then
+	tmp_addflag=' $pic_flag'
+	tmp_sharedflag='-shared'
+	case $cc_basename,$host_cpu in
+        pgcc*)				# Portland Group C compiler
+	  whole_archive_flag_spec_FC='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+	  tmp_addflag=' $pic_flag'
+	  ;;
+	pgf77* | pgf90* | pgf95* | pgfortran*)
+					# Portland Group f77 and f90 compilers
+	  whole_archive_flag_spec_FC='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+	  tmp_addflag=' $pic_flag -Mnomain' ;;
+	ecc*,ia64* | icc*,ia64*)	# Intel C compiler on ia64
+	  tmp_addflag=' -i_dynamic' ;;
+	efc*,ia64* | ifort*,ia64*)	# Intel Fortran compiler on ia64
+	  tmp_addflag=' -i_dynamic -nofor_main' ;;
+	ifc* | ifort*)			# Intel Fortran compiler
+	  tmp_addflag=' -nofor_main' ;;
+	lf95*)				# Lahey Fortran 8.1
+	  whole_archive_flag_spec_FC=
+	  tmp_sharedflag='--shared' ;;
+	xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
+	  tmp_sharedflag='-qmkshrobj'
+	  tmp_addflag= ;;
+	nvcc*)	# Cuda Compiler Driver 2.2
+	  whole_archive_flag_spec_FC='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+	  compiler_needs_object_FC=yes
+	  ;;
+	esac
+	case `$CC -V 2>&1 | sed 5q` in
+	*Sun\ C*)			# Sun C 5.9
+	  whole_archive_flag_spec_FC='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+	  compiler_needs_object_FC=yes
+	  tmp_sharedflag='-G' ;;
+	*Sun\ F*)			# Sun Fortran 8.3
+	  tmp_sharedflag='-G' ;;
+	esac
+	archive_cmds_FC='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+
+        if test "x$supports_anon_versioning" = xyes; then
+          archive_expsym_cmds_FC='echo "{ global:" > $output_objdir/$libname.ver~
+	    cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+	    echo "local: *; };" >> $output_objdir/$libname.ver~
+	    $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+        fi
+
+	case $cc_basename in
+	xlf* | bgf* | bgxlf* | mpixlf*)
+	  # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
+	  whole_archive_flag_spec_FC='--whole-archive$convenience --no-whole-archive'
+	  hardcode_libdir_flag_spec_FC=
+	  hardcode_libdir_flag_spec_ld_FC='-rpath $libdir'
+	  archive_cmds_FC='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
+	  if test "x$supports_anon_versioning" = xyes; then
+	    archive_expsym_cmds_FC='echo "{ global:" > $output_objdir/$libname.ver~
+	      cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+	      echo "local: *; };" >> $output_objdir/$libname.ver~
+	      $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+	  fi
+	  ;;
+	esac
+      else
+        ld_shlibs_FC=no
+      fi
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+	archive_cmds_FC='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+	wlarc=
+      else
+	archive_cmds_FC='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds_FC='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      fi
+      ;;
+
+    solaris*)
+      if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
+	ld_shlibs_FC=no
+	cat <<_LT_EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+      elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+	archive_cmds_FC='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds_FC='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	ld_shlibs_FC=no
+      fi
+      ;;
+
+    sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+      case `$LD -v 2>&1` in
+        *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
+	ld_shlibs_FC=no
+	cat <<_LT_EOF 1>&2
+
+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
+*** reliably create shared libraries on SCO systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.16.91.0.3 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+	;;
+	*)
+	  # For security reasons, it is highly recommended that you always
+	  # use absolute paths for naming shared libraries, and exclude the
+	  # DT_RUNPATH tag from executables and libraries.  But doing so
+	  # requires that you compile everything twice, which is a pain.
+	  if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+	    hardcode_libdir_flag_spec_FC='${wl}-rpath ${wl}$libdir'
+	    archive_cmds_FC='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	    archive_expsym_cmds_FC='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+	  else
+	    ld_shlibs_FC=no
+	  fi
+	;;
+      esac
+      ;;
+
+    sunos4*)
+      archive_cmds_FC='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      wlarc=
+      hardcode_direct_FC=yes
+      hardcode_shlibpath_var_FC=no
+      ;;
+
+    *)
+      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+	archive_cmds_FC='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds_FC='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	ld_shlibs_FC=no
+      fi
+      ;;
+    esac
+
+    if test "$ld_shlibs_FC" = no; then
+      runpath_var=
+      hardcode_libdir_flag_spec_FC=
+      export_dynamic_flag_spec_FC=
+      whole_archive_flag_spec_FC=
+    fi
+  else
+    # PORTME fill in a description of your system's linker (not GNU ld)
+    case $host_os in
+    aix3*)
+      allow_undefined_flag_FC=unsupported
+      always_export_symbols_FC=yes
+      archive_expsym_cmds_FC='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+      # Note: this linker hardcodes the directories in LIBPATH if there
+      # are no directories specified by -L.
+      hardcode_minus_L_FC=yes
+      if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
+	# Neither direct hardcoding nor static linking is supported with a
+	# broken collect2.
+	hardcode_direct_FC=unsupported
+      fi
+      ;;
+
+    aix[4-9]*)
+      if test "$host_cpu" = ia64; then
+	# On IA64, the linker does run time linking by default, so we don't
+	# have to do anything special.
+	aix_use_runtimelinking=no
+	exp_sym_flag='-Bexport'
+	no_entry_flag=""
+      else
+	# If we're using GNU nm, then we don't want the "-C" option.
+	# -C means demangle to AIX nm, but means don't demangle with GNU nm
+	# Also, AIX nm treats weak defined symbols like other global
+	# defined symbols, whereas GNU nm marks them as "W".
+	if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
+	  export_symbols_cmds_FC='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+	else
+	  export_symbols_cmds_FC='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+	fi
+	aix_use_runtimelinking=no
+
+	# Test if we are trying to use run time linking or normal
+	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
+	# need to do runtime linking.
+	case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
+	  for ld_flag in $LDFLAGS; do
+	  if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+	    aix_use_runtimelinking=yes
+	    break
+	  fi
+	  done
+	  ;;
+	esac
+
+	exp_sym_flag='-bexport'
+	no_entry_flag='-bnoentry'
+      fi
+
+      # When large executables or shared objects are built, AIX ld can
+      # have problems creating the table of contents.  If linking a library
+      # or program results in "error TOC overflow" add -mminimal-toc to
+      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+      archive_cmds_FC=''
+      hardcode_direct_FC=yes
+      hardcode_direct_absolute_FC=yes
+      hardcode_libdir_separator_FC=':'
+      link_all_deplibs_FC=yes
+      file_list_spec_FC='${wl}-f,'
+
+      if test "$GCC" = yes; then
+	case $host_os in aix4.[012]|aix4.[012].*)
+	# We only want to do this on AIX 4.2 and lower, the check
+	# below for broken collect2 doesn't work under 4.3+
+	  collect2name=`${CC} -print-prog-name=collect2`
+	  if test -f "$collect2name" &&
+	   strings "$collect2name" | $GREP resolve_lib_name >/dev/null
+	  then
+	  # We have reworked collect2
+	  :
+	  else
+	  # We have old collect2
+	  hardcode_direct_FC=unsupported
+	  # It fails to find uninstalled libraries when the uninstalled
+	  # path is not listed in the libpath.  Setting hardcode_minus_L
+	  # to unsupported forces relinking
+	  hardcode_minus_L_FC=yes
+	  hardcode_libdir_flag_spec_FC='-L$libdir'
+	  hardcode_libdir_separator_FC=
+	  fi
+	  ;;
+	esac
+	shared_flag='-shared'
+	if test "$aix_use_runtimelinking" = yes; then
+	  shared_flag="$shared_flag "'${wl}-G'
+	fi
+      else
+	# not using gcc
+	if test "$host_cpu" = ia64; then
+	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+	# chokes on -Wl,-G. The following line is correct:
+	  shared_flag='-G'
+	else
+	  if test "$aix_use_runtimelinking" = yes; then
+	    shared_flag='${wl}-G'
+	  else
+	    shared_flag='${wl}-bM:SRE'
+	  fi
+	fi
+      fi
+
+      export_dynamic_flag_spec_FC='${wl}-bexpall'
+      # It seems that -bexpall does not export symbols beginning with
+      # underscore (_), so it is better to generate a list of symbols to export.
+      always_export_symbols_FC=yes
+      if test "$aix_use_runtimelinking" = yes; then
+	# Warning - without using the other runtime loading flags (-brtl),
+	# -berok will link without error, but may produce a broken library.
+	allow_undefined_flag_FC='-berok'
+        # Determine the default libpath from the value encoded in an
+        # empty executable.
+        if test "${lt_cv_aix_libpath+set}" = set; then
+  aix_libpath=$lt_cv_aix_libpath
+else
+  if test "${lt_cv_aix_libpath__FC+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat > conftest.$ac_ext <<_ACEOF
+      program main
+
+      end
+_ACEOF
+if ac_fn_fc_try_link "$LINENO"; then :
+
+  lt_aix_libpath_sed='
+      /Import File Strings/,/^$/ {
+	  /^0/ {
+	      s/^0  *\([^ ]*\) *$/\1/
+	      p
+	  }
+      }'
+  lt_cv_aix_libpath__FC=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  # Check for a 64-bit object if we didn't find anything.
+  if test -z "$lt_cv_aix_libpath__FC"; then
+    lt_cv_aix_libpath__FC=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+  if test -z "$lt_cv_aix_libpath__FC"; then
+    lt_cv_aix_libpath__FC="/usr/lib:/lib"
+  fi
+
+fi
+
+  aix_libpath=$lt_cv_aix_libpath__FC
+fi
+
+        hardcode_libdir_flag_spec_FC='${wl}-blibpath:$libdir:'"$aix_libpath"
+        archive_expsym_cmds_FC='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+      else
+	if test "$host_cpu" = ia64; then
+	  hardcode_libdir_flag_spec_FC='${wl}-R $libdir:/usr/lib:/lib'
+	  allow_undefined_flag_FC="-z nodefs"
+	  archive_expsym_cmds_FC="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+	else
+	 # Determine the default libpath from the value encoded in an
+	 # empty executable.
+	 if test "${lt_cv_aix_libpath+set}" = set; then
+  aix_libpath=$lt_cv_aix_libpath
+else
+  if test "${lt_cv_aix_libpath__FC+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat > conftest.$ac_ext <<_ACEOF
+      program main
+
+      end
+_ACEOF
+if ac_fn_fc_try_link "$LINENO"; then :
+
+  lt_aix_libpath_sed='
+      /Import File Strings/,/^$/ {
+	  /^0/ {
+	      s/^0  *\([^ ]*\) *$/\1/
+	      p
+	  }
+      }'
+  lt_cv_aix_libpath__FC=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  # Check for a 64-bit object if we didn't find anything.
+  if test -z "$lt_cv_aix_libpath__FC"; then
+    lt_cv_aix_libpath__FC=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+  if test -z "$lt_cv_aix_libpath__FC"; then
+    lt_cv_aix_libpath__FC="/usr/lib:/lib"
+  fi
+
+fi
+
+  aix_libpath=$lt_cv_aix_libpath__FC
+fi
+
+	 hardcode_libdir_flag_spec_FC='${wl}-blibpath:$libdir:'"$aix_libpath"
+	  # Warning - without using the other run time loading flags,
+	  # -berok will link without error, but may produce a broken library.
+	  no_undefined_flag_FC=' ${wl}-bernotok'
+	  allow_undefined_flag_FC=' ${wl}-berok'
+	  if test "$with_gnu_ld" = yes; then
+	    # We only use this code for GNU lds that support --whole-archive.
+	    whole_archive_flag_spec_FC='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+	  else
+	    # Exported symbols can be pulled into shared objects from archives
+	    whole_archive_flag_spec_FC='$convenience'
+	  fi
+	  archive_cmds_need_lc_FC=yes
+	  # This is similar to how AIX traditionally builds its shared libraries.
+	  archive_expsym_cmds_FC="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+	fi
+      fi
+      ;;
+
+    amigaos*)
+      case $host_cpu in
+      powerpc)
+            # see comment about AmigaOS4 .so support
+            archive_cmds_FC='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+            archive_expsym_cmds_FC=''
+        ;;
+      m68k)
+            archive_cmds_FC='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+            hardcode_libdir_flag_spec_FC='-L$libdir'
+            hardcode_minus_L_FC=yes
+        ;;
+      esac
+      ;;
+
+    bsdi[45]*)
+      export_dynamic_flag_spec_FC=-rdynamic
+      ;;
+
+    cygwin* | mingw* | pw32* | cegcc*)
+      # When not using gcc, we currently assume that we are using
+      # Microsoft Visual C++.
+      # hardcode_libdir_flag_spec is actually meaningless, as there is
+      # no search path for DLLs.
+      case $cc_basename in
+      cl*)
+	# Native MSVC
+	hardcode_libdir_flag_spec_FC=' '
+	allow_undefined_flag_FC=unsupported
+	always_export_symbols_FC=yes
+	file_list_spec_FC='@'
+	# Tell ltmain to make .lib files, not .a files.
+	libext=lib
+	# Tell ltmain to make .dll files, not .so files.
+	shrext_cmds=".dll"
+	# FIXME: Setting linknames here is a bad hack.
+	archive_cmds_FC='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
+	archive_expsym_cmds_FC='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	    sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
+	  else
+	    sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
+	  fi~
+	  $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+	  linknames='
+	# The linker will not automatically build a static lib if we build a DLL.
+	# _LT_TAGVAR(old_archive_from_new_cmds, FC)='true'
+	enable_shared_with_static_runtimes_FC=yes
+	export_symbols_cmds_FC='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
+	# Don't use ranlib
+	old_postinstall_cmds_FC='chmod 644 $oldlib'
+	postlink_cmds_FC='lt_outputfile="@OUTPUT@"~
+	  lt_tool_outputfile="@TOOL_OUTPUT@"~
+	  case $lt_outputfile in
+	    *.exe|*.EXE) ;;
+	    *)
+	      lt_outputfile="$lt_outputfile.exe"
+	      lt_tool_outputfile="$lt_tool_outputfile.exe"
+	      ;;
+	  esac~
+	  if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
+	    $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+	    $RM "$lt_outputfile.manifest";
+	  fi'
+	;;
+      *)
+	# Assume MSVC wrapper
+	hardcode_libdir_flag_spec_FC=' '
+	allow_undefined_flag_FC=unsupported
+	# Tell ltmain to make .lib files, not .a files.
+	libext=lib
+	# Tell ltmain to make .dll files, not .so files.
+	shrext_cmds=".dll"
+	# FIXME: Setting linknames here is a bad hack.
+	archive_cmds_FC='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
+	# The linker will automatically build a .lib file if we build a DLL.
+	old_archive_from_new_cmds_FC='true'
+	# FIXME: Should let the user specify the lib program.
+	old_archive_cmds_FC='lib -OUT:$oldlib$oldobjs$old_deplibs'
+	enable_shared_with_static_runtimes_FC=yes
+	;;
+      esac
+      ;;
+
+    darwin* | rhapsody*)
+
+
+  archive_cmds_need_lc_FC=no
+  hardcode_direct_FC=no
+  hardcode_automatic_FC=yes
+  hardcode_shlibpath_var_FC=unsupported
+  if test "$lt_cv_ld_force_load" = "yes"; then
+    whole_archive_flag_spec_FC='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
+  else
+    whole_archive_flag_spec_FC=''
+  fi
+  link_all_deplibs_FC=yes
+  allow_undefined_flag_FC="$_lt_dar_allow_undefined"
+  case $cc_basename in
+     ifort*) _lt_dar_can_shared=yes ;;
+     *) _lt_dar_can_shared=$GCC ;;
+  esac
+  if test "$_lt_dar_can_shared" = "yes"; then
+    output_verbose_link_cmd=func_echo_all
+    archive_cmds_FC="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
+    module_cmds_FC="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
+    archive_expsym_cmds_FC="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
+    module_expsym_cmds_FC="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
+
+  else
+  ld_shlibs_FC=no
+  fi
+
+      ;;
+
+    dgux*)
+      archive_cmds_FC='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_libdir_flag_spec_FC='-L$libdir'
+      hardcode_shlibpath_var_FC=no
+      ;;
+
+    freebsd1*)
+      ld_shlibs_FC=no
+      ;;
+
+    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+    # support.  Future versions do this automatically, but an explicit c++rt0.o
+    # does not break anything, and helps significantly (at the cost of a little
+    # extra space).
+    freebsd2.2*)
+      archive_cmds_FC='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+      hardcode_libdir_flag_spec_FC='-R$libdir'
+      hardcode_direct_FC=yes
+      hardcode_shlibpath_var_FC=no
+      ;;
+
+    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+    freebsd2*)
+      archive_cmds_FC='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_direct_FC=yes
+      hardcode_minus_L_FC=yes
+      hardcode_shlibpath_var_FC=no
+      ;;
+
+    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+    freebsd* | dragonfly*)
+      archive_cmds_FC='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+      hardcode_libdir_flag_spec_FC='-R$libdir'
+      hardcode_direct_FC=yes
+      hardcode_shlibpath_var_FC=no
+      ;;
+
+    hpux9*)
+      if test "$GCC" = yes; then
+	archive_cmds_FC='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      else
+	archive_cmds_FC='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      fi
+      hardcode_libdir_flag_spec_FC='${wl}+b ${wl}$libdir'
+      hardcode_libdir_separator_FC=:
+      hardcode_direct_FC=yes
+
+      # hardcode_minus_L: Not really in the search PATH,
+      # but as the default location of the library.
+      hardcode_minus_L_FC=yes
+      export_dynamic_flag_spec_FC='${wl}-E'
+      ;;
+
+    hpux10*)
+      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
+	archive_cmds_FC='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds_FC='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      if test "$with_gnu_ld" = no; then
+	hardcode_libdir_flag_spec_FC='${wl}+b ${wl}$libdir'
+	hardcode_libdir_flag_spec_ld_FC='+b $libdir'
+	hardcode_libdir_separator_FC=:
+	hardcode_direct_FC=yes
+	hardcode_direct_absolute_FC=yes
+	export_dynamic_flag_spec_FC='${wl}-E'
+	# hardcode_minus_L: Not really in the search PATH,
+	# but as the default location of the library.
+	hardcode_minus_L_FC=yes
+      fi
+      ;;
+
+    hpux11*)
+      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
+	case $host_cpu in
+	hppa*64*)
+	  archive_cmds_FC='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	ia64*)
+	  archive_cmds_FC='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+	  archive_cmds_FC='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	esac
+      else
+	case $host_cpu in
+	hppa*64*)
+	  archive_cmds_FC='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	ia64*)
+	  archive_cmds_FC='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+	archive_cmds_FC='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	esac
+      fi
+      if test "$with_gnu_ld" = no; then
+	hardcode_libdir_flag_spec_FC='${wl}+b ${wl}$libdir'
+	hardcode_libdir_separator_FC=:
+
+	case $host_cpu in
+	hppa*64*|ia64*)
+	  hardcode_direct_FC=no
+	  hardcode_shlibpath_var_FC=no
+	  ;;
+	*)
+	  hardcode_direct_FC=yes
+	  hardcode_direct_absolute_FC=yes
+	  export_dynamic_flag_spec_FC='${wl}-E'
+
+	  # hardcode_minus_L: Not really in the search PATH,
+	  # but as the default location of the library.
+	  hardcode_minus_L_FC=yes
+	  ;;
+	esac
+      fi
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      if test "$GCC" = yes; then
+	archive_cmds_FC='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	# Try to use the -exported_symbol ld option, if it does not
+	# work, assume that -exports_file does not work either and
+	# implicitly export all symbols.
+	# This should be the same for all languages, so no per-tag cache variable.
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5
+$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; }
+if test "${lt_cv_irix_exported_symbol+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  save_LDFLAGS="$LDFLAGS"
+	   LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
+	   cat > conftest.$ac_ext <<_ACEOF
+
+      subroutine foo
+      end
+_ACEOF
+if ac_fn_fc_try_link "$LINENO"; then :
+  lt_cv_irix_exported_symbol=yes
+else
+  lt_cv_irix_exported_symbol=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+           LDFLAGS="$save_LDFLAGS"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
+$as_echo "$lt_cv_irix_exported_symbol" >&6; }
+	if test "$lt_cv_irix_exported_symbol" = yes; then
+          archive_expsym_cmds_FC='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
+	fi
+      else
+	archive_cmds_FC='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+	archive_expsym_cmds_FC='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
+      fi
+      archive_cmds_need_lc_FC='no'
+      hardcode_libdir_flag_spec_FC='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator_FC=:
+      inherit_rpath_FC=yes
+      link_all_deplibs_FC=yes
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+	archive_cmds_FC='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
+      else
+	archive_cmds_FC='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
+      fi
+      hardcode_libdir_flag_spec_FC='-R$libdir'
+      hardcode_direct_FC=yes
+      hardcode_shlibpath_var_FC=no
+      ;;
+
+    newsos6)
+      archive_cmds_FC='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_direct_FC=yes
+      hardcode_libdir_flag_spec_FC='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator_FC=:
+      hardcode_shlibpath_var_FC=no
+      ;;
+
+    *nto* | *qnx*)
+      ;;
+
+    openbsd*)
+      if test -f /usr/libexec/ld.so; then
+	hardcode_direct_FC=yes
+	hardcode_shlibpath_var_FC=no
+	hardcode_direct_absolute_FC=yes
+	if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+	  archive_cmds_FC='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	  archive_expsym_cmds_FC='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
+	  hardcode_libdir_flag_spec_FC='${wl}-rpath,$libdir'
+	  export_dynamic_flag_spec_FC='${wl}-E'
+	else
+	  case $host_os in
+	   openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+	     archive_cmds_FC='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+	     hardcode_libdir_flag_spec_FC='-R$libdir'
+	     ;;
+	   *)
+	     archive_cmds_FC='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	     hardcode_libdir_flag_spec_FC='${wl}-rpath,$libdir'
+	     ;;
+	  esac
+	fi
+      else
+	ld_shlibs_FC=no
+      fi
+      ;;
+
+    os2*)
+      hardcode_libdir_flag_spec_FC='-L$libdir'
+      hardcode_minus_L_FC=yes
+      allow_undefined_flag_FC=unsupported
+      archive_cmds_FC='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+      old_archive_from_new_cmds_FC='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+      ;;
+
+    osf3*)
+      if test "$GCC" = yes; then
+	allow_undefined_flag_FC=' ${wl}-expect_unresolved ${wl}\*'
+	archive_cmds_FC='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      else
+	allow_undefined_flag_FC=' -expect_unresolved \*'
+	archive_cmds_FC='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+      fi
+      archive_cmds_need_lc_FC='no'
+      hardcode_libdir_flag_spec_FC='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator_FC=:
+      ;;
+
+    osf4* | osf5*)	# as osf3* with the addition of -msym flag
+      if test "$GCC" = yes; then
+	allow_undefined_flag_FC=' ${wl}-expect_unresolved ${wl}\*'
+	archive_cmds_FC='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	hardcode_libdir_flag_spec_FC='${wl}-rpath ${wl}$libdir'
+      else
+	allow_undefined_flag_FC=' -expect_unresolved \*'
+	archive_cmds_FC='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+	archive_expsym_cmds_FC='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
+	$CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
+
+	# Both c and cxx compiler support -rpath directly
+	hardcode_libdir_flag_spec_FC='-rpath $libdir'
+      fi
+      archive_cmds_need_lc_FC='no'
+      hardcode_libdir_separator_FC=:
+      ;;
+
+    solaris*)
+      no_undefined_flag_FC=' -z defs'
+      if test "$GCC" = yes; then
+	wlarc='${wl}'
+	archive_cmds_FC='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_FC='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+	  $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+      else
+	case `$CC -V 2>&1` in
+	*"Compilers 5.0"*)
+	  wlarc=''
+	  archive_cmds_FC='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  archive_expsym_cmds_FC='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+	  $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
+	  ;;
+	*)
+	  wlarc='${wl}'
+	  archive_cmds_FC='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags'
+	  archive_expsym_cmds_FC='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+	  $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+	  ;;
+	esac
+      fi
+      hardcode_libdir_flag_spec_FC='-R$libdir'
+      hardcode_shlibpath_var_FC=no
+      case $host_os in
+      solaris2.[0-5] | solaris2.[0-5].*) ;;
+      *)
+	# The compiler driver will combine and reorder linker options,
+	# but understands `-z linker_flag'.  GCC discards it without `$wl',
+	# but is careful enough not to reorder.
+	# Supported since Solaris 2.6 (maybe 2.5.1?)
+	if test "$GCC" = yes; then
+	  whole_archive_flag_spec_FC='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+	else
+	  whole_archive_flag_spec_FC='-z allextract$convenience -z defaultextract'
+	fi
+	;;
+      esac
+      link_all_deplibs_FC=yes
+      ;;
+
+    sunos4*)
+      if test "x$host_vendor" = xsequent; then
+	# Use $CC to link under sequent, because it throws in some extra .o
+	# files that make .init and .fini sections work.
+	archive_cmds_FC='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds_FC='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      hardcode_libdir_flag_spec_FC='-L$libdir'
+      hardcode_direct_FC=yes
+      hardcode_minus_L_FC=yes
+      hardcode_shlibpath_var_FC=no
+      ;;
+
+    sysv4)
+      case $host_vendor in
+	sni)
+	  archive_cmds_FC='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  hardcode_direct_FC=yes # is this really true???
+	;;
+	siemens)
+	  ## LD is ld it makes a PLAMLIB
+	  ## CC just makes a GrossModule.
+	  archive_cmds_FC='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+	  reload_cmds_FC='$CC -r -o $output$reload_objs'
+	  hardcode_direct_FC=no
+        ;;
+	motorola)
+	  archive_cmds_FC='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  hardcode_direct_FC=no #Motorola manual says yes, but my tests say they lie
+	;;
+      esac
+      runpath_var='LD_RUN_PATH'
+      hardcode_shlibpath_var_FC=no
+      ;;
+
+    sysv4.3*)
+      archive_cmds_FC='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_shlibpath_var_FC=no
+      export_dynamic_flag_spec_FC='-Bexport'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	archive_cmds_FC='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	hardcode_shlibpath_var_FC=no
+	runpath_var=LD_RUN_PATH
+	hardcode_runpath_var=yes
+	ld_shlibs_FC=yes
+      fi
+      ;;
+
+    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
+      no_undefined_flag_FC='${wl}-z,text'
+      archive_cmds_need_lc_FC=no
+      hardcode_shlibpath_var_FC=no
+      runpath_var='LD_RUN_PATH'
+
+      if test "$GCC" = yes; then
+	archive_cmds_FC='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_FC='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds_FC='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_FC='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
+      ;;
+
+    sysv5* | sco3.2v5* | sco5v6*)
+      # Note: We can NOT use -z defs as we might desire, because we do not
+      # link with -lc, and that would cause any symbols used from libc to
+      # always be unresolved, which means just about no library would
+      # ever link correctly.  If we're not using GNU ld we use -z text
+      # though, which does catch some bad symbols but isn't as heavy-handed
+      # as -z defs.
+      no_undefined_flag_FC='${wl}-z,text'
+      allow_undefined_flag_FC='${wl}-z,nodefs'
+      archive_cmds_need_lc_FC=no
+      hardcode_shlibpath_var_FC=no
+      hardcode_libdir_flag_spec_FC='${wl}-R,$libdir'
+      hardcode_libdir_separator_FC=':'
+      link_all_deplibs_FC=yes
+      export_dynamic_flag_spec_FC='${wl}-Bexport'
+      runpath_var='LD_RUN_PATH'
+
+      if test "$GCC" = yes; then
+	archive_cmds_FC='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_FC='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds_FC='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_FC='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
+      ;;
+
+    uts4*)
+      archive_cmds_FC='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_libdir_flag_spec_FC='-L$libdir'
+      hardcode_shlibpath_var_FC=no
+      ;;
+
+    *)
+      ld_shlibs_FC=no
+      ;;
+    esac
+
+    if test x$host_vendor = xsni; then
+      case $host in
+      sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+	export_dynamic_flag_spec_FC='${wl}-Blargedynsym'
+	;;
+      esac
+    fi
+  fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_FC" >&5
+$as_echo "$ld_shlibs_FC" >&6; }
+test "$ld_shlibs_FC" = no && can_build_shared=no
+
+with_gnu_ld_FC=$with_gnu_ld
+
+
+
+
+
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$archive_cmds_need_lc_FC" in
+x|xyes)
+  # Assume -lc should be added
+  archive_cmds_need_lc_FC=yes
+
+  if test "$enable_shared" = yes && test "$GCC" = yes; then
+    case $archive_cmds_FC in
+    *'~'*)
+      # FIXME: we may have to deal with multi-command sequences.
+      ;;
+    '$CC '*)
+      # Test whether the compiler implicitly links with -lc since on some
+      # systems, -lgcc has to come before -lc. If gcc already passes -lc
+      # to ld, don't add -lc before -lgcc.
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
+$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
+if test "${lt_cv_archive_cmds_need_lc_FC+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  $RM conftest*
+	echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+	if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } 2>conftest.err; then
+	  soname=conftest
+	  lib=conftest
+	  libobjs=conftest.$ac_objext
+	  deplibs=
+	  wl=$lt_prog_compiler_wl_FC
+	  pic_flag=$lt_prog_compiler_pic_FC
+	  compiler_flags=-v
+	  linker_flags=-v
+	  verstring=
+	  output_objdir=.
+	  libname=conftest
+	  lt_save_allow_undefined_flag=$allow_undefined_flag_FC
+	  allow_undefined_flag_FC=
+	  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_FC 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
+  (eval $archive_cmds_FC 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+	  then
+	    lt_cv_archive_cmds_need_lc_FC=no
+	  else
+	    lt_cv_archive_cmds_need_lc_FC=yes
+	  fi
+	  allow_undefined_flag_FC=$lt_save_allow_undefined_flag
+	else
+	  cat conftest.err 1>&5
+	fi
+	$RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc_FC" >&5
+$as_echo "$lt_cv_archive_cmds_need_lc_FC" >&6; }
+      archive_cmds_need_lc_FC=$lt_cv_archive_cmds_need_lc_FC
+      ;;
+    esac
+  fi
+  ;;
+esac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
+$as_echo_n "checking dynamic linker characteristics... " >&6; }
+
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+  shlibpath_var=LIBPATH
+
+  # AIX 3 has no versioning support, so we append a major version to the name.
+  soname_spec='${libname}${release}${shared_ext}$major'
+  ;;
+
+aix[4-9]*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  hardcode_into_libs=yes
+  if test "$host_cpu" = ia64; then
+    # AIX 5 supports IA64
+    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+    shlibpath_var=LD_LIBRARY_PATH
+  else
+    # With GCC up to 2.95.x, collect2 would create an import file
+    # for dependence libraries.  The import file would start with
+    # the line `#! .'.  This would cause the generated library to
+    # depend on `.', always an invalid library.  This was fixed in
+    # development snapshots of GCC prior to 3.0.
+    case $host_os in
+      aix4 | aix4.[01] | aix4.[01].*)
+      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+	   echo ' yes '
+	   echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
+	:
+      else
+	can_build_shared=no
+      fi
+      ;;
+    esac
+    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+    # soname into executable. Probably we can add versioning support to
+    # collect2, so additional links can be useful in future.
+    if test "$aix_use_runtimelinking" = yes; then
+      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+      # instead of lib<name>.a to let people know that these are not
+      # typical AIX shared libraries.
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    else
+      # We preserve .a as extension for shared libraries through AIX4.2
+      # and later when we are not doing run time linking.
+      library_names_spec='${libname}${release}.a $libname.a'
+      soname_spec='${libname}${release}${shared_ext}$major'
+    fi
+    shlibpath_var=LIBPATH
+  fi
+  ;;
+
+amigaos*)
+  case $host_cpu in
+  powerpc)
+    # Since July 2007 AmigaOS4 officially supports .so libraries.
+    # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    ;;
+  m68k)
+    library_names_spec='$libname.ixlibrary $libname.a'
+    # Create ${libname}_ixlibrary.a entries in /sys/libs.
+    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+    ;;
+  esac
+  ;;
+
+beos*)
+  library_names_spec='${libname}${shared_ext}'
+  dynamic_linker="$host_os ld.so"
+  shlibpath_var=LIBRARY_PATH
+  ;;
+
+bsdi[45]*)
+  version_type=linux
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+  # the default ld.so.conf also contains /usr/contrib/lib and
+  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+  # libtool to hard-code these into programs
+  ;;
+
+cygwin* | mingw* | pw32* | cegcc*)
+  version_type=windows
+  shrext_cmds=".dll"
+  need_version=no
+  need_lib_prefix=no
+
+  case $GCC,$cc_basename in
+  yes,*)
+    # gcc
+    library_names_spec='$libname.dll.a'
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname~
+      chmod a+x \$dldir/$dlname~
+      if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+        eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+      fi'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $RM \$dlpath'
+    shlibpath_overrides_runpath=yes
+
+    case $host_os in
+    cygwin*)
+      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+
+      ;;
+    mingw* | cegcc*)
+      # MinGW DLLs use traditional 'lib' prefix
+      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      ;;
+    pw32*)
+      # pw32 DLLs use 'pw' prefix rather than 'lib'
+      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      ;;
+    esac
+    dynamic_linker='Win32 ld.exe'
+    ;;
+
+  *,cl*)
+    # Native MSVC
+    libname_spec='$name'
+    soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+    library_names_spec='${libname}.dll.lib'
+
+    case $build_os in
+    mingw*)
+      sys_lib_search_path_spec=
+      lt_save_ifs=$IFS
+      IFS=';'
+      for lt_path in $LIB
+      do
+        IFS=$lt_save_ifs
+        # Let DOS variable expansion print the short 8.3 style file name.
+        lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
+        sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
+      done
+      IFS=$lt_save_ifs
+      # Convert to MSYS style.
+      sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
+      ;;
+    cygwin*)
+      # Convert to unix form, then to dos form, then back to unix form
+      # but this time dos style (no spaces!) so that the unix form looks
+      # like /cygdrive/c/PROGRA~1:/cygdr...
+      sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
+      sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
+      sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+      ;;
+    *)
+      sys_lib_search_path_spec="$LIB"
+      if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
+        # It is most probably a Windows format PATH.
+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+      else
+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+      fi
+      # FIXME: find the short name or the path components, as spaces are
+      # common. (e.g. "Program Files" -> "PROGRA~1")
+      ;;
+    esac
+
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $RM \$dlpath'
+    shlibpath_overrides_runpath=yes
+    dynamic_linker='Win32 link.exe'
+    ;;
+
+  *)
+    # Assume MSVC wrapper
+    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    dynamic_linker='Win32 ld.exe'
+    ;;
+  esac
+  # FIXME: first we should search . and the directory the executable is in
+  shlibpath_var=PATH
+  ;;
+
+darwin* | rhapsody*)
+  dynamic_linker="$host_os dyld"
+  version_type=darwin
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+  soname_spec='${libname}${release}${major}$shared_ext'
+  shlibpath_overrides_runpath=yes
+  shlibpath_var=DYLD_LIBRARY_PATH
+  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+
+  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+  ;;
+
+dgux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+freebsd1*)
+  dynamic_linker=no
+  ;;
+
+freebsd* | dragonfly*)
+  # DragonFly does not have aout.  When/if they implement a new
+  # versioning mechanism, adjust this.
+  if test -x /usr/bin/objformat; then
+    objformat=`/usr/bin/objformat`
+  else
+    case $host_os in
+    freebsd[123]*) objformat=aout ;;
+    *) objformat=elf ;;
+    esac
+  fi
+  version_type=freebsd-$objformat
+  case $version_type in
+    freebsd-elf*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+      need_version=no
+      need_lib_prefix=no
+      ;;
+    freebsd-*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+      need_version=yes
+      ;;
+  esac
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_os in
+  freebsd2*)
+    shlibpath_overrides_runpath=yes
+    ;;
+  freebsd3.[01]* | freebsdelf3.[01]*)
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
+  freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
+    shlibpath_overrides_runpath=no
+    hardcode_into_libs=yes
+    ;;
+  *) # from 4.6 on, and DragonFly
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  esac
+  ;;
+
+gnu*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  hardcode_into_libs=yes
+  ;;
+
+haiku*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  dynamic_linker="$host_os runtime_loader"
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
+  hardcode_into_libs=yes
+  ;;
+
+hpux9* | hpux10* | hpux11*)
+  # Give a soname corresponding to the major version so that dld.sl refuses to
+  # link against other versions.
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  case $host_cpu in
+  ia64*)
+    shrext_cmds='.so'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.so"
+    shlibpath_var=LD_LIBRARY_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    if test "X$HPUX_IA64_MODE" = X32; then
+      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+    else
+      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+    fi
+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+    ;;
+  hppa*64*)
+    shrext_cmds='.sl'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+    ;;
+  *)
+    shrext_cmds='.sl'
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=SHLIB_PATH
+    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    ;;
+  esac
+  # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
+  postinstall_cmds='chmod 555 $lib'
+  # or fails outright, so override atomically:
+  install_override_mode=555
+  ;;
+
+interix[3-9]*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $host_os in
+    nonstopux*) version_type=nonstopux ;;
+    *)
+	if test "$lt_cv_prog_gnu_ld" = yes; then
+		version_type=linux
+	else
+		version_type=irix
+	fi ;;
+  esac
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+  case $host_os in
+  irix5* | nonstopux*)
+    libsuff= shlibsuff=
+    ;;
+  *)
+    case $LD in # libtool.m4 will add one of these switches to LD
+    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+      libsuff= shlibsuff= libmagic=32-bit;;
+    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+      libsuff=32 shlibsuff=N32 libmagic=N32;;
+    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+      libsuff=64 shlibsuff=64 libmagic=64-bit;;
+    *) libsuff= shlibsuff= libmagic=never-match;;
+    esac
+    ;;
+  esac
+  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+  shlibpath_overrides_runpath=no
+  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+  hardcode_into_libs=yes
+  ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+  dynamic_linker=no
+  ;;
+
+# This must be Linux ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+
+  # Some binutils ld are patched to set DT_RUNPATH
+  if test "${lt_cv_shlibpath_overrides_runpath+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_shlibpath_overrides_runpath=no
+    save_LDFLAGS=$LDFLAGS
+    save_libdir=$libdir
+    eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_FC\"; \
+	 LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_FC\""
+    cat > conftest.$ac_ext <<_ACEOF
+      program main
+
+      end
+_ACEOF
+if ac_fn_fc_try_link "$LINENO"; then :
+  if  ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
+  lt_cv_shlibpath_overrides_runpath=yes
+fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+    LDFLAGS=$save_LDFLAGS
+    libdir=$save_libdir
+
+fi
+
+  shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
+
+  # This implies no fast_install, which is unacceptable.
+  # Some rework will be needed to allow for fast_install
+  # before this can be enabled.
+  hardcode_into_libs=yes
+
+  # Append ld.so.conf contents to the search path
+  if test -f /etc/ld.so.conf; then
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
+    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+  fi
+
+  # We used to test for /lib/ld.so.1 and disable shared libraries on
+  # powerpc, because MkLinux only supported shared libraries with the
+  # GNU dynamic linker.  Since this was broken with cross compilers,
+  # most powerpc-linux boxes support dynamic linking these days and
+  # people can always --disable-shared, the test was removed, and we
+  # assume the GNU/Linux dynamic linker is in use.
+  dynamic_linker='GNU/Linux ld.so'
+  ;;
+
+netbsd*)
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+    dynamic_linker='NetBSD (a.out) ld.so'
+  else
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    dynamic_linker='NetBSD ld.elf_so'
+  fi
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  ;;
+
+newsos6)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+*nto* | *qnx*)
+  version_type=qnx
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='ldqnx.so'
+  ;;
+
+openbsd*)
+  version_type=sunos
+  sys_lib_dlsearch_path_spec="/usr/lib"
+  need_lib_prefix=no
+  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
+  case $host_os in
+    openbsd3.3 | openbsd3.3.*)	need_version=yes ;;
+    *)				need_version=no  ;;
+  esac
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    case $host_os in
+      openbsd2.[89] | openbsd2.[89].*)
+	shlibpath_overrides_runpath=no
+	;;
+      *)
+	shlibpath_overrides_runpath=yes
+	;;
+      esac
+  else
+    shlibpath_overrides_runpath=yes
+  fi
+  ;;
+
+os2*)
+  libname_spec='$name'
+  shrext_cmds=".dll"
+  need_lib_prefix=no
+  library_names_spec='$libname${shared_ext} $libname.a'
+  dynamic_linker='OS/2 ld.exe'
+  shlibpath_var=LIBPATH
+  ;;
+
+osf3* | osf4* | osf5*)
+  version_type=osf
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+  ;;
+
+rdos*)
+  dynamic_linker=no
+  ;;
+
+solaris*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  # ldd complains unless libraries are executable
+  postinstall_cmds='chmod +x $lib'
+  ;;
+
+sunos4*)
+  version_type=sunos
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  if test "$with_gnu_ld" = yes; then
+    need_lib_prefix=no
+  fi
+  need_version=yes
+  ;;
+
+sysv4 | sysv4.3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_vendor in
+    sni)
+      shlibpath_overrides_runpath=no
+      need_lib_prefix=no
+      runpath_var=LD_RUN_PATH
+      ;;
+    siemens)
+      need_lib_prefix=no
+      ;;
+    motorola)
+      need_lib_prefix=no
+      need_version=no
+      shlibpath_overrides_runpath=no
+      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+      ;;
+  esac
+  ;;
+
+sysv4*MP*)
+  if test -d /usr/nec ;then
+    version_type=linux
+    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+    soname_spec='$libname${shared_ext}.$major'
+    shlibpath_var=LD_LIBRARY_PATH
+  fi
+  ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+  version_type=freebsd-elf
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  if test "$with_gnu_ld" = yes; then
+    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+  else
+    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+    case $host_os in
+      sco3.2v5*)
+        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+	;;
+    esac
+  fi
+  sys_lib_dlsearch_path_spec='/usr/lib'
+  ;;
+
+tpf*)
+  # TPF is a cross-target only.  Preferred cross-host = GNU/Linux.
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
+uts4*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+*)
+  dynamic_linker=no
+  ;;
+esac
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
+$as_echo "$dynamic_linker" >&6; }
+test "$dynamic_linker" = no && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
+  sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+fi
+if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
+  sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
+$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
+hardcode_action_FC=
+if test -n "$hardcode_libdir_flag_spec_FC" ||
+   test -n "$runpath_var_FC" ||
+   test "X$hardcode_automatic_FC" = "Xyes" ; then
+
+  # We can hardcode non-existent directories.
+  if test "$hardcode_direct_FC" != no &&
+     # If the only mechanism to avoid hardcoding is shlibpath_var, we
+     # have to relink, otherwise we might link with an installed library
+     # when we should be linking with a yet-to-be-installed one
+     ## test "$_LT_TAGVAR(hardcode_shlibpath_var, FC)" != no &&
+     test "$hardcode_minus_L_FC" != no; then
+    # Linking always hardcodes the temporary library directory.
+    hardcode_action_FC=relink
+  else
+    # We can link without hardcoding, and we can hardcode nonexisting dirs.
+    hardcode_action_FC=immediate
+  fi
+else
+  # We cannot hardcode anything, or else we can only hardcode existing
+  # directories.
+  hardcode_action_FC=unsupported
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action_FC" >&5
+$as_echo "$hardcode_action_FC" >&6; }
+
+if test "$hardcode_action_FC" = relink ||
+   test "$inherit_rpath_FC" = yes; then
+  # Fast installation is not supported
+  enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+     test "$enable_shared" = no; then
+  # Fast installation is not necessary
+  enable_fast_install=needless
+fi
+
+
+
+
+
+
+
+  fi # test -n "$compiler"
+
+  GCC=$lt_save_GCC
+  CC=$lt_save_CC
+  CFLAGS=$lt_save_CFLAGS
+fi # test "$_lt_disable_FC" != yes
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sorg2l_ in -llapack" >&5
+$as_echo_n "checking for sorg2l_ in -llapack... " >&6; }
+if test "${ac_cv_lib_lapack_sorg2l_+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-llapack -lblas -lm $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char sorg2l_ ();
+int
+main ()
+{
+return sorg2l_ ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_lapack_sorg2l_=yes
+else
+  ac_cv_lib_lapack_sorg2l_=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lapack_sorg2l_" >&5
+$as_echo "$ac_cv_lib_lapack_sorg2l_" >&6; }
+if test "x$ac_cv_lib_lapack_sorg2l_" = x""yes; then :
+  lapack="true"
+else
+  lapack="false"
+fi
+
+fi
+ if test x$FC = xgfortran -a x$lapack = xtrue -a x$with_agmg != xno; then
+  BUILD_AGMG_TRUE=
+  BUILD_AGMG_FALSE='#'
+else
+  BUILD_AGMG_TRUE='#'
+  BUILD_AGMG_FALSE=
+fi
+
+
 # Build wavewatch module if wavewatch is installed
  if test -r $HOME/.wwatch3.env; then
   BUILD_WAVEWATCH_TRUE=
@@ -15208,6 +19388,209 @@ _ACEOF
 
 fi
 
+# Build ode module if ODE is installed
+# Extract the first word of "ode-config", so it can be a program name with args.
+set dummy ode-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ode+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ode"; then
+  ac_cv_prog_ode="$ode" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_ode="yes"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  test -z "$ac_cv_prog_ode" && ac_cv_prog_ode="no"
+fi
+fi
+ode=$ac_cv_prog_ode
+if test -n "$ode"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ode" >&5
+$as_echo "$ode" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+if test x$ode = xyes; then
+  ODE_CFLAGS=`ode-config --cflags`
+  ODE_LIBS="`ode-config --libs` -lstdc++"
+
+
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ODE not found. ode module will not be available." >&5
+$as_echo "$as_me: WARNING: ODE not found. ode module will not be available." >&2;}
+fi
+ if test x$ode = xyes; then
+  BUILD_ODE_TRUE=
+  BUILD_ODE_FALSE='#'
+else
+  BUILD_ODE_TRUE='#'
+  BUILD_ODE_FALSE=
+fi
+
+
+# Build hypre module if HYPRE is installed
+if test "x$use_mpicc" = "xyes" ; then # HYPRE needs MPI
+   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for HYPRE_IJMatrixCreate in -lHYPRE" >&5
+$as_echo_n "checking for HYPRE_IJMatrixCreate in -lHYPRE... " >&6; }
+if test "${ac_cv_lib_HYPRE_HYPRE_IJMatrixCreate+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lHYPRE -lm $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char HYPRE_IJMatrixCreate ();
+int
+main ()
+{
+return HYPRE_IJMatrixCreate ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_HYPRE_HYPRE_IJMatrixCreate=yes
+else
+  ac_cv_lib_HYPRE_HYPRE_IJMatrixCreate=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_HYPRE_HYPRE_IJMatrixCreate" >&5
+$as_echo "$ac_cv_lib_HYPRE_HYPRE_IJMatrixCreate" >&6; }
+if test "x$ac_cv_lib_HYPRE_HYPRE_IJMatrixCreate" = x""yes; then :
+  hypre="yes"
+else
+  hypre="no"
+fi
+
+   if test x$hypre = xyes; then
+      for ac_header in HYPRE.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "HYPRE.h" "ac_cv_header_HYPRE_h" "$ac_includes_default"
+if test "x$ac_cv_header_HYPRE_h" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_HYPRE_H 1
+_ACEOF
+ hypre="yes"
+else
+  hypre="no"
+fi
+
+done
+
+   fi
+   if test x$hypre = xno; then
+      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: HYPRE not found. hypre Module won't be available." >&5
+$as_echo "$as_me: WARNING: HYPRE not found. hypre Module won't be available." >&2;}
+   fi
+fi
+ if test x$hypre = xyes; then
+  BUILD_HYPRE_TRUE=
+  BUILD_HYPRE_FALSE='#'
+else
+  BUILD_HYPRE_TRUE='#'
+  BUILD_HYPRE_FALSE=
+fi
+
+
+# Build lis module if lis is installed
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for lis_initialize in -llis" >&5
+$as_echo_n "checking for lis_initialize in -llis... " >&6; }
+if test "${ac_cv_lib_lis_lis_initialize+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-llis -lgfortran -lm $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char lis_initialize ();
+int
+main ()
+{
+return lis_initialize ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_lis_lis_initialize=yes
+else
+  ac_cv_lib_lis_lis_initialize=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lis_lis_initialize" >&5
+$as_echo "$ac_cv_lib_lis_lis_initialize" >&6; }
+if test "x$ac_cv_lib_lis_lis_initialize" = x""yes; then :
+  lis="yes"
+else
+  lis="no"
+fi
+
+if test x$lis = xyes; then
+   for ac_header in lis.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "lis.h" "ac_cv_header_lis_h" "$ac_includes_default"
+if test "x$ac_cv_header_lis_h" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIS_H 1
+_ACEOF
+ lis="yes"
+else
+  lis="no"
+fi
+
+done
+
+fi
+if test x$lis = xno; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: lis not found. lis Module won't be available." >&5
+$as_echo "$as_me: WARNING: lis not found. lis Module won't be available." >&2;}
+fi
+ if test x$lis = xyes; then
+  BUILD_LIS_TRUE=
+  BUILD_LIS_FALSE='#'
+else
+  BUILD_LIS_TRUE='#'
+  BUILD_LIS_FALSE=
+fi
+
+
 for ac_header in fenv.h
 do :
   ac_fn_c_check_header_mongrel "$LINENO" "fenv.h" "ac_cv_header_fenv_h" "$ac_includes_default"
@@ -15276,8 +19659,6 @@ fi
 
 GFS2D_LIBS="\$(top_builddir)/src/libgfs2D.la $GTS_LIBS $MODULES"
 GFS3D_LIBS="\$(top_builddir)/src/libgfs3D.la $GTS_LIBS $MODULES"
-GFS2D3_LIBS="\$(top_builddir)/src/libgfs2D3.la $GTS_LIBS $MODULES"
-
 
 
 
@@ -15292,7 +19673,9 @@ else
 fi
 
 
-ac_config_files="$ac_config_files Makefile src/Makefile src/gfs-config src/gerris2D.pc src/gerris2D3.pc src/gerris3D.pc tools/Makefile modules/Makefile modules/wavewatch/Makefile test/Makefile doc/Makefile doc/tutorial/Makefile doc/examples/Makefile doc/manpages/Makefile doc/examples/gfs2doc doc/examples/gfs-highlight doc/examples/crossref.sh desktop/Makefile"
+ac_config_files="$ac_config_files Makefile src/Makefile src/gfs-config src/gerris2D.pc src/gerris3D.pc tools/Makefile modules/Makefile modules/kdt/Makefile modules/wavewatch/Makefile test/Makefile doc/Makefile doc/tutorial/Makefile doc/examples/Makefile doc/manpages/Makefile doc/examples/gfs2doc doc/examples/gfs-highlight doc/examples/crossref.sh desktop/Makefile"
+
+
 
 cat >confcache <<\_ACEOF
 # This file is a shell script that caches the results of configure
@@ -15377,6 +19760,7 @@ DEFS=-DHAVE_CONFIG_H
 
 ac_libobjs=
 ac_ltlibobjs=
+U=
 for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
   # 1. Remove the extension, and $U if already installed.
   ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
@@ -15400,43 +19784,63 @@ else
 fi
 
 if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
-  as_fn_error "conditional \"MAINTAINER_MODE\" was never defined.
+  as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
-  as_fn_error "conditional \"AMDEP\" was never defined.
+  as_fn_error $? "conditional \"AMDEP\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
-  as_fn_error "conditional \"am__fastdepCC\" was never defined.
+  as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${HAVE_MODULES_TRUE}" && test -z "${HAVE_MODULES_FALSE}"; then
-  as_fn_error "conditional \"HAVE_MODULES\" was never defined.
+  as_fn_error $? "conditional \"HAVE_MODULES\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${HAS_LIBPROJ_TRUE}" && test -z "${HAS_LIBPROJ_FALSE}"; then
-  as_fn_error "conditional \"HAS_LIBPROJ\" was never defined.
+  as_fn_error $? "conditional \"HAS_LIBPROJ\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${HAS_GSL_TRUE}" && test -z "${HAS_GSL_FALSE}"; then
+  as_fn_error $? "conditional \"HAS_GSL\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${HAS_NETCDF_TRUE}" && test -z "${HAS_NETCDF_FALSE}"; then
-  as_fn_error "conditional \"HAS_NETCDF\" was never defined.
+  as_fn_error $? "conditional \"HAS_NETCDF\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${BUILD_TIDE_TRUE}" && test -z "${BUILD_TIDE_FALSE}"; then
-  as_fn_error "conditional \"BUILD_TIDE\" was never defined.
+  as_fn_error $? "conditional \"BUILD_TIDE\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${BUILD_STOKES_TRUE}" && test -z "${BUILD_STOKES_FALSE}"; then
-  as_fn_error "conditional \"BUILD_STOKES\" was never defined.
+  as_fn_error $? "conditional \"BUILD_STOKES\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${BUILD_AGMG_TRUE}" && test -z "${BUILD_AGMG_FALSE}"; then
+  as_fn_error $? "conditional \"BUILD_AGMG\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${BUILD_WAVEWATCH_TRUE}" && test -z "${BUILD_WAVEWATCH_FALSE}"; then
-  as_fn_error "conditional \"BUILD_WAVEWATCH\" was never defined.
+  as_fn_error $? "conditional \"BUILD_WAVEWATCH\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${BUILD_ODE_TRUE}" && test -z "${BUILD_ODE_FALSE}"; then
+  as_fn_error $? "conditional \"BUILD_ODE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${BUILD_HYPRE_TRUE}" && test -z "${BUILD_HYPRE_FALSE}"; then
+  as_fn_error $? "conditional \"BUILD_HYPRE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${BUILD_LIS_TRUE}" && test -z "${BUILD_LIS_FALSE}"; then
+  as_fn_error $? "conditional \"BUILD_LIS\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${DARCS_CONTROLLED_TRUE}" && test -z "${DARCS_CONTROLLED_FALSE}"; then
-  as_fn_error "conditional \"DARCS_CONTROLLED\" was never defined.
+  as_fn_error $? "conditional \"DARCS_CONTROLLED\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 
@@ -15586,19 +19990,19 @@ export LANGUAGE
 (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
 
 
-# as_fn_error ERROR [LINENO LOG_FD]
-# ---------------------------------
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
 # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
 # provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with status $?, using 1 if that was 0.
+# script with STATUS, using 1 if that was 0.
 as_fn_error ()
 {
-  as_status=$?; test $as_status -eq 0 && as_status=1
-  if test "$3"; then
-    as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-    $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
+  as_status=$1; test $as_status -eq 0 && as_status=1
+  if test "$4"; then
+    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
   fi
-  $as_echo "$as_me: error: $1" >&2
+  $as_echo "$as_me: error: $2" >&2
   as_fn_exit $as_status
 } # as_fn_error
 
@@ -15794,7 +20198,7 @@ $as_echo X"$as_dir" |
       test -d "$as_dir" && break
     done
     test -z "$as_dirs" || eval "mkdir $as_dirs"
-  } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
+  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
 
 
 } # as_fn_mkdir_p
@@ -15848,7 +20252,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # values after options handling.
 ac_log="
 This file was extended by $as_me, which was
-generated by GNU Autoconf 2.65.  Invocation command line was
+generated by GNU Autoconf 2.67.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
   CONFIG_HEADERS  = $CONFIG_HEADERS
@@ -15914,10 +20318,10 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
 config.status
-configured by $0, generated by GNU Autoconf 2.65,
+configured by $0, generated by GNU Autoconf 2.67,
   with options \\"\$ac_cs_config\\"
 
-Copyright (C) 2009 Free Software Foundation, Inc.
+Copyright (C) 2010 Free Software Foundation, Inc.
 This config.status script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it."
 
@@ -15935,11 +20339,16 @@ ac_need_defaults=:
 while test $# != 0
 do
   case $1 in
-  --*=*)
+  --*=?*)
     ac_option=`expr "X$1" : 'X\([^=]*\)='`
     ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
     ac_shift=:
     ;;
+  --*=)
+    ac_option=`expr "X$1" : 'X\([^=]*\)='`
+    ac_optarg=
+    ac_shift=:
+    ;;
   *)
     ac_option=$1
     ac_optarg=$2
@@ -15961,6 +20370,7 @@ do
     $ac_shift
     case $ac_optarg in
     *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    '') as_fn_error $? "missing file argument" ;;
     esac
     as_fn_append CONFIG_FILES " '$ac_optarg'"
     ac_need_defaults=false;;
@@ -15973,7 +20383,7 @@ do
     ac_need_defaults=false;;
   --he | --h)
     # Conflict between --help and --header
-    as_fn_error "ambiguous option: \`$1'
+    as_fn_error $? "ambiguous option: \`$1'
 Try \`$0 --help' for more information.";;
   --help | --hel | -h )
     $as_echo "$ac_cs_usage"; exit ;;
@@ -15982,7 +20392,7 @@ Try \`$0 --help' for more information.";;
     ac_cs_silent=: ;;
 
   # This is an error.
-  -*) as_fn_error "unrecognized option: \`$1'
+  -*) as_fn_error $? "unrecognized option: \`$1'
 Try \`$0 --help' for more information." ;;
 
   *) as_fn_append ac_config_targets " $1"
@@ -16036,174 +20446,261 @@ AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
 sed_quote_subst='$sed_quote_subst'
 double_quote_subst='$double_quote_subst'
 delay_variable_subst='$delay_variable_subst'
-AS='`$ECHO "X$AS" | $Xsed -e "$delay_single_quote_subst"`'
-DLLTOOL='`$ECHO "X$DLLTOOL" | $Xsed -e "$delay_single_quote_subst"`'
-OBJDUMP='`$ECHO "X$OBJDUMP" | $Xsed -e "$delay_single_quote_subst"`'
-macro_version='`$ECHO "X$macro_version" | $Xsed -e "$delay_single_quote_subst"`'
-macro_revision='`$ECHO "X$macro_revision" | $Xsed -e "$delay_single_quote_subst"`'
-enable_shared='`$ECHO "X$enable_shared" | $Xsed -e "$delay_single_quote_subst"`'
-enable_static='`$ECHO "X$enable_static" | $Xsed -e "$delay_single_quote_subst"`'
-pic_mode='`$ECHO "X$pic_mode" | $Xsed -e "$delay_single_quote_subst"`'
-enable_fast_install='`$ECHO "X$enable_fast_install" | $Xsed -e "$delay_single_quote_subst"`'
-host_alias='`$ECHO "X$host_alias" | $Xsed -e "$delay_single_quote_subst"`'
-host='`$ECHO "X$host" | $Xsed -e "$delay_single_quote_subst"`'
-host_os='`$ECHO "X$host_os" | $Xsed -e "$delay_single_quote_subst"`'
-build_alias='`$ECHO "X$build_alias" | $Xsed -e "$delay_single_quote_subst"`'
-build='`$ECHO "X$build" | $Xsed -e "$delay_single_quote_subst"`'
-build_os='`$ECHO "X$build_os" | $Xsed -e "$delay_single_quote_subst"`'
-SED='`$ECHO "X$SED" | $Xsed -e "$delay_single_quote_subst"`'
-Xsed='`$ECHO "X$Xsed" | $Xsed -e "$delay_single_quote_subst"`'
-GREP='`$ECHO "X$GREP" | $Xsed -e "$delay_single_quote_subst"`'
-EGREP='`$ECHO "X$EGREP" | $Xsed -e "$delay_single_quote_subst"`'
-FGREP='`$ECHO "X$FGREP" | $Xsed -e "$delay_single_quote_subst"`'
-LD='`$ECHO "X$LD" | $Xsed -e "$delay_single_quote_subst"`'
-NM='`$ECHO "X$NM" | $Xsed -e "$delay_single_quote_subst"`'
-LN_S='`$ECHO "X$LN_S" | $Xsed -e "$delay_single_quote_subst"`'
-max_cmd_len='`$ECHO "X$max_cmd_len" | $Xsed -e "$delay_single_quote_subst"`'
-ac_objext='`$ECHO "X$ac_objext" | $Xsed -e "$delay_single_quote_subst"`'
-exeext='`$ECHO "X$exeext" | $Xsed -e "$delay_single_quote_subst"`'
-lt_unset='`$ECHO "X$lt_unset" | $Xsed -e "$delay_single_quote_subst"`'
-lt_SP2NL='`$ECHO "X$lt_SP2NL" | $Xsed -e "$delay_single_quote_subst"`'
-lt_NL2SP='`$ECHO "X$lt_NL2SP" | $Xsed -e "$delay_single_quote_subst"`'
-reload_flag='`$ECHO "X$reload_flag" | $Xsed -e "$delay_single_quote_subst"`'
-reload_cmds='`$ECHO "X$reload_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-deplibs_check_method='`$ECHO "X$deplibs_check_method" | $Xsed -e "$delay_single_quote_subst"`'
-file_magic_cmd='`$ECHO "X$file_magic_cmd" | $Xsed -e "$delay_single_quote_subst"`'
-AR='`$ECHO "X$AR" | $Xsed -e "$delay_single_quote_subst"`'
-AR_FLAGS='`$ECHO "X$AR_FLAGS" | $Xsed -e "$delay_single_quote_subst"`'
-STRIP='`$ECHO "X$STRIP" | $Xsed -e "$delay_single_quote_subst"`'
-RANLIB='`$ECHO "X$RANLIB" | $Xsed -e "$delay_single_quote_subst"`'
-old_postinstall_cmds='`$ECHO "X$old_postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-old_postuninstall_cmds='`$ECHO "X$old_postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-old_archive_cmds='`$ECHO "X$old_archive_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-CC='`$ECHO "X$CC" | $Xsed -e "$delay_single_quote_subst"`'
-CFLAGS='`$ECHO "X$CFLAGS" | $Xsed -e "$delay_single_quote_subst"`'
-compiler='`$ECHO "X$compiler" | $Xsed -e "$delay_single_quote_subst"`'
-GCC='`$ECHO "X$GCC" | $Xsed -e "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_pipe='`$ECHO "X$lt_cv_sys_global_symbol_pipe" | $Xsed -e "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_cdecl='`$ECHO "X$lt_cv_sys_global_symbol_to_cdecl" | $Xsed -e "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address" | $Xsed -e "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`'
-objdir='`$ECHO "X$objdir" | $Xsed -e "$delay_single_quote_subst"`'
-SHELL='`$ECHO "X$SHELL" | $Xsed -e "$delay_single_quote_subst"`'
-ECHO='`$ECHO "X$ECHO" | $Xsed -e "$delay_single_quote_subst"`'
-MAGIC_CMD='`$ECHO "X$MAGIC_CMD" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_no_builtin_flag='`$ECHO "X$lt_prog_compiler_no_builtin_flag" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_wl='`$ECHO "X$lt_prog_compiler_wl" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_pic='`$ECHO "X$lt_prog_compiler_pic" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_static='`$ECHO "X$lt_prog_compiler_static" | $Xsed -e "$delay_single_quote_subst"`'
-lt_cv_prog_compiler_c_o='`$ECHO "X$lt_cv_prog_compiler_c_o" | $Xsed -e "$delay_single_quote_subst"`'
-need_locks='`$ECHO "X$need_locks" | $Xsed -e "$delay_single_quote_subst"`'
-DSYMUTIL='`$ECHO "X$DSYMUTIL" | $Xsed -e "$delay_single_quote_subst"`'
-NMEDIT='`$ECHO "X$NMEDIT" | $Xsed -e "$delay_single_quote_subst"`'
-LIPO='`$ECHO "X$LIPO" | $Xsed -e "$delay_single_quote_subst"`'
-OTOOL='`$ECHO "X$OTOOL" | $Xsed -e "$delay_single_quote_subst"`'
-OTOOL64='`$ECHO "X$OTOOL64" | $Xsed -e "$delay_single_quote_subst"`'
-libext='`$ECHO "X$libext" | $Xsed -e "$delay_single_quote_subst"`'
-shrext_cmds='`$ECHO "X$shrext_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-extract_expsyms_cmds='`$ECHO "X$extract_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-archive_cmds_need_lc='`$ECHO "X$archive_cmds_need_lc" | $Xsed -e "$delay_single_quote_subst"`'
-enable_shared_with_static_runtimes='`$ECHO "X$enable_shared_with_static_runtimes" | $Xsed -e "$delay_single_quote_subst"`'
-export_dynamic_flag_spec='`$ECHO "X$export_dynamic_flag_spec" | $Xsed -e "$delay_single_quote_subst"`'
-whole_archive_flag_spec='`$ECHO "X$whole_archive_flag_spec" | $Xsed -e "$delay_single_quote_subst"`'
-compiler_needs_object='`$ECHO "X$compiler_needs_object" | $Xsed -e "$delay_single_quote_subst"`'
-old_archive_from_new_cmds='`$ECHO "X$old_archive_from_new_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-old_archive_from_expsyms_cmds='`$ECHO "X$old_archive_from_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-archive_cmds='`$ECHO "X$archive_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-archive_expsym_cmds='`$ECHO "X$archive_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-module_cmds='`$ECHO "X$module_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-module_expsym_cmds='`$ECHO "X$module_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-with_gnu_ld='`$ECHO "X$with_gnu_ld" | $Xsed -e "$delay_single_quote_subst"`'
-allow_undefined_flag='`$ECHO "X$allow_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`'
-no_undefined_flag='`$ECHO "X$no_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_libdir_flag_spec='`$ECHO "X$hardcode_libdir_flag_spec" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_libdir_flag_spec_ld='`$ECHO "X$hardcode_libdir_flag_spec_ld" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_libdir_separator='`$ECHO "X$hardcode_libdir_separator" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_direct='`$ECHO "X$hardcode_direct" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_direct_absolute='`$ECHO "X$hardcode_direct_absolute" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_minus_L='`$ECHO "X$hardcode_minus_L" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_shlibpath_var='`$ECHO "X$hardcode_shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_automatic='`$ECHO "X$hardcode_automatic" | $Xsed -e "$delay_single_quote_subst"`'
-inherit_rpath='`$ECHO "X$inherit_rpath" | $Xsed -e "$delay_single_quote_subst"`'
-link_all_deplibs='`$ECHO "X$link_all_deplibs" | $Xsed -e "$delay_single_quote_subst"`'
-fix_srcfile_path='`$ECHO "X$fix_srcfile_path" | $Xsed -e "$delay_single_quote_subst"`'
-always_export_symbols='`$ECHO "X$always_export_symbols" | $Xsed -e "$delay_single_quote_subst"`'
-export_symbols_cmds='`$ECHO "X$export_symbols_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-exclude_expsyms='`$ECHO "X$exclude_expsyms" | $Xsed -e "$delay_single_quote_subst"`'
-include_expsyms='`$ECHO "X$include_expsyms" | $Xsed -e "$delay_single_quote_subst"`'
-prelink_cmds='`$ECHO "X$prelink_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-file_list_spec='`$ECHO "X$file_list_spec" | $Xsed -e "$delay_single_quote_subst"`'
-variables_saved_for_relink='`$ECHO "X$variables_saved_for_relink" | $Xsed -e "$delay_single_quote_subst"`'
-need_lib_prefix='`$ECHO "X$need_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`'
-need_version='`$ECHO "X$need_version" | $Xsed -e "$delay_single_quote_subst"`'
-version_type='`$ECHO "X$version_type" | $Xsed -e "$delay_single_quote_subst"`'
-runpath_var='`$ECHO "X$runpath_var" | $Xsed -e "$delay_single_quote_subst"`'
-shlibpath_var='`$ECHO "X$shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`'
-shlibpath_overrides_runpath='`$ECHO "X$shlibpath_overrides_runpath" | $Xsed -e "$delay_single_quote_subst"`'
-libname_spec='`$ECHO "X$libname_spec" | $Xsed -e "$delay_single_quote_subst"`'
-library_names_spec='`$ECHO "X$library_names_spec" | $Xsed -e "$delay_single_quote_subst"`'
-soname_spec='`$ECHO "X$soname_spec" | $Xsed -e "$delay_single_quote_subst"`'
-postinstall_cmds='`$ECHO "X$postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-postuninstall_cmds='`$ECHO "X$postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-finish_cmds='`$ECHO "X$finish_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-finish_eval='`$ECHO "X$finish_eval" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_into_libs='`$ECHO "X$hardcode_into_libs" | $Xsed -e "$delay_single_quote_subst"`'
-sys_lib_search_path_spec='`$ECHO "X$sys_lib_search_path_spec" | $Xsed -e "$delay_single_quote_subst"`'
-sys_lib_dlsearch_path_spec='`$ECHO "X$sys_lib_dlsearch_path_spec" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_action='`$ECHO "X$hardcode_action" | $Xsed -e "$delay_single_quote_subst"`'
-enable_dlopen='`$ECHO "X$enable_dlopen" | $Xsed -e "$delay_single_quote_subst"`'
-enable_dlopen_self='`$ECHO "X$enable_dlopen_self" | $Xsed -e "$delay_single_quote_subst"`'
-enable_dlopen_self_static='`$ECHO "X$enable_dlopen_self_static" | $Xsed -e "$delay_single_quote_subst"`'
-old_striplib='`$ECHO "X$old_striplib" | $Xsed -e "$delay_single_quote_subst"`'
-striplib='`$ECHO "X$striplib" | $Xsed -e "$delay_single_quote_subst"`'
-LD_F77='`$ECHO "X$LD_F77" | $Xsed -e "$delay_single_quote_subst"`'
-old_archive_cmds_F77='`$ECHO "X$old_archive_cmds_F77" | $Xsed -e "$delay_single_quote_subst"`'
-compiler_F77='`$ECHO "X$compiler_F77" | $Xsed -e "$delay_single_quote_subst"`'
-GCC_F77='`$ECHO "X$GCC_F77" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_no_builtin_flag_F77='`$ECHO "X$lt_prog_compiler_no_builtin_flag_F77" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_wl_F77='`$ECHO "X$lt_prog_compiler_wl_F77" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_pic_F77='`$ECHO "X$lt_prog_compiler_pic_F77" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_static_F77='`$ECHO "X$lt_prog_compiler_static_F77" | $Xsed -e "$delay_single_quote_subst"`'
-lt_cv_prog_compiler_c_o_F77='`$ECHO "X$lt_cv_prog_compiler_c_o_F77" | $Xsed -e "$delay_single_quote_subst"`'
-archive_cmds_need_lc_F77='`$ECHO "X$archive_cmds_need_lc_F77" | $Xsed -e "$delay_single_quote_subst"`'
-enable_shared_with_static_runtimes_F77='`$ECHO "X$enable_shared_with_static_runtimes_F77" | $Xsed -e "$delay_single_quote_subst"`'
-export_dynamic_flag_spec_F77='`$ECHO "X$export_dynamic_flag_spec_F77" | $Xsed -e "$delay_single_quote_subst"`'
-whole_archive_flag_spec_F77='`$ECHO "X$whole_archive_flag_spec_F77" | $Xsed -e "$delay_single_quote_subst"`'
-compiler_needs_object_F77='`$ECHO "X$compiler_needs_object_F77" | $Xsed -e "$delay_single_quote_subst"`'
-old_archive_from_new_cmds_F77='`$ECHO "X$old_archive_from_new_cmds_F77" | $Xsed -e "$delay_single_quote_subst"`'
-old_archive_from_expsyms_cmds_F77='`$ECHO "X$old_archive_from_expsyms_cmds_F77" | $Xsed -e "$delay_single_quote_subst"`'
-archive_cmds_F77='`$ECHO "X$archive_cmds_F77" | $Xsed -e "$delay_single_quote_subst"`'
-archive_expsym_cmds_F77='`$ECHO "X$archive_expsym_cmds_F77" | $Xsed -e "$delay_single_quote_subst"`'
-module_cmds_F77='`$ECHO "X$module_cmds_F77" | $Xsed -e "$delay_single_quote_subst"`'
-module_expsym_cmds_F77='`$ECHO "X$module_expsym_cmds_F77" | $Xsed -e "$delay_single_quote_subst"`'
-with_gnu_ld_F77='`$ECHO "X$with_gnu_ld_F77" | $Xsed -e "$delay_single_quote_subst"`'
-allow_undefined_flag_F77='`$ECHO "X$allow_undefined_flag_F77" | $Xsed -e "$delay_single_quote_subst"`'
-no_undefined_flag_F77='`$ECHO "X$no_undefined_flag_F77" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_libdir_flag_spec_F77='`$ECHO "X$hardcode_libdir_flag_spec_F77" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_libdir_flag_spec_ld_F77='`$ECHO "X$hardcode_libdir_flag_spec_ld_F77" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_libdir_separator_F77='`$ECHO "X$hardcode_libdir_separator_F77" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_direct_F77='`$ECHO "X$hardcode_direct_F77" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_direct_absolute_F77='`$ECHO "X$hardcode_direct_absolute_F77" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_minus_L_F77='`$ECHO "X$hardcode_minus_L_F77" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_shlibpath_var_F77='`$ECHO "X$hardcode_shlibpath_var_F77" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_automatic_F77='`$ECHO "X$hardcode_automatic_F77" | $Xsed -e "$delay_single_quote_subst"`'
-inherit_rpath_F77='`$ECHO "X$inherit_rpath_F77" | $Xsed -e "$delay_single_quote_subst"`'
-link_all_deplibs_F77='`$ECHO "X$link_all_deplibs_F77" | $Xsed -e "$delay_single_quote_subst"`'
-fix_srcfile_path_F77='`$ECHO "X$fix_srcfile_path_F77" | $Xsed -e "$delay_single_quote_subst"`'
-always_export_symbols_F77='`$ECHO "X$always_export_symbols_F77" | $Xsed -e "$delay_single_quote_subst"`'
-export_symbols_cmds_F77='`$ECHO "X$export_symbols_cmds_F77" | $Xsed -e "$delay_single_quote_subst"`'
-exclude_expsyms_F77='`$ECHO "X$exclude_expsyms_F77" | $Xsed -e "$delay_single_quote_subst"`'
-include_expsyms_F77='`$ECHO "X$include_expsyms_F77" | $Xsed -e "$delay_single_quote_subst"`'
-prelink_cmds_F77='`$ECHO "X$prelink_cmds_F77" | $Xsed -e "$delay_single_quote_subst"`'
-file_list_spec_F77='`$ECHO "X$file_list_spec_F77" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_action_F77='`$ECHO "X$hardcode_action_F77" | $Xsed -e "$delay_single_quote_subst"`'
+AS='`$ECHO "$AS" | $SED "$delay_single_quote_subst"`'
+DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`'
+OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'
+macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`'
+macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`'
+enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`'
+enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`'
+pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`'
+enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`'
+SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`'
+ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`'
+host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`'
+host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`'
+host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`'
+build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`'
+build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`'
+build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`'
+SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`'
+Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`'
+GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`'
+EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`'
+FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`'
+LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`'
+NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`'
+LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`'
+max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`'
+ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`'
+exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
+lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
+lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
+lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
+lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`'
+lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`'
+reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
+reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'
+deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'
+file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'
+file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`'
+want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`'
+sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`'
+AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'
+AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'
+archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`'
+STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
+RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
+old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
+old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
+old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`'
+lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`'
+CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`'
+CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`'
+compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`'
+GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
+nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`'
+lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`'
+objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`'
+MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`'
+lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`'
+need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`'
+MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`'
+DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
+NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
+LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
+OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`'
+OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`'
+libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`'
+shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`'
+extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
+archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`'
+enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`'
+export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`'
+whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`'
+compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`'
+old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`'
+old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
+archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`'
+archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`'
+module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`'
+module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`'
+with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`'
+allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`'
+no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_flag_spec_ld='`$ECHO "$hardcode_libdir_flag_spec_ld" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`'
+hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`'
+hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`'
+hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`'
+hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`'
+hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
+inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
+link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
+always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`'
+export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`'
+exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`'
+include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`'
+prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`'
+postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`'
+file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
+variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
+need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
+need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`'
+version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`'
+runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`'
+shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`'
+shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`'
+libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`'
+library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`'
+soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`'
+install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`'
+postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`'
+postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
+finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`'
+finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`'
+hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`'
+sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`'
+sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`'
+hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`'
+enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`'
+enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`'
+enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`'
+old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`'
+striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`'
+compiler_lib_search_dirs='`$ECHO "$compiler_lib_search_dirs" | $SED "$delay_single_quote_subst"`'
+predep_objects='`$ECHO "$predep_objects" | $SED "$delay_single_quote_subst"`'
+postdep_objects='`$ECHO "$postdep_objects" | $SED "$delay_single_quote_subst"`'
+predeps='`$ECHO "$predeps" | $SED "$delay_single_quote_subst"`'
+postdeps='`$ECHO "$postdeps" | $SED "$delay_single_quote_subst"`'
+compiler_lib_search_path='`$ECHO "$compiler_lib_search_path" | $SED "$delay_single_quote_subst"`'
+LD_F77='`$ECHO "$LD_F77" | $SED "$delay_single_quote_subst"`'
+LD_FC='`$ECHO "$LD_FC" | $SED "$delay_single_quote_subst"`'
+reload_flag_F77='`$ECHO "$reload_flag_F77" | $SED "$delay_single_quote_subst"`'
+reload_flag_FC='`$ECHO "$reload_flag_FC" | $SED "$delay_single_quote_subst"`'
+reload_cmds_F77='`$ECHO "$reload_cmds_F77" | $SED "$delay_single_quote_subst"`'
+reload_cmds_FC='`$ECHO "$reload_cmds_FC" | $SED "$delay_single_quote_subst"`'
+old_archive_cmds_F77='`$ECHO "$old_archive_cmds_F77" | $SED "$delay_single_quote_subst"`'
+old_archive_cmds_FC='`$ECHO "$old_archive_cmds_FC" | $SED "$delay_single_quote_subst"`'
+compiler_F77='`$ECHO "$compiler_F77" | $SED "$delay_single_quote_subst"`'
+compiler_FC='`$ECHO "$compiler_FC" | $SED "$delay_single_quote_subst"`'
+GCC_F77='`$ECHO "$GCC_F77" | $SED "$delay_single_quote_subst"`'
+GCC_FC='`$ECHO "$GCC_FC" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_no_builtin_flag_F77='`$ECHO "$lt_prog_compiler_no_builtin_flag_F77" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_no_builtin_flag_FC='`$ECHO "$lt_prog_compiler_no_builtin_flag_FC" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_pic_F77='`$ECHO "$lt_prog_compiler_pic_F77" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_pic_FC='`$ECHO "$lt_prog_compiler_pic_FC" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_wl_F77='`$ECHO "$lt_prog_compiler_wl_F77" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_wl_FC='`$ECHO "$lt_prog_compiler_wl_FC" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_static_F77='`$ECHO "$lt_prog_compiler_static_F77" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_static_FC='`$ECHO "$lt_prog_compiler_static_FC" | $SED "$delay_single_quote_subst"`'
+lt_cv_prog_compiler_c_o_F77='`$ECHO "$lt_cv_prog_compiler_c_o_F77" | $SED "$delay_single_quote_subst"`'
+lt_cv_prog_compiler_c_o_FC='`$ECHO "$lt_cv_prog_compiler_c_o_FC" | $SED "$delay_single_quote_subst"`'
+archive_cmds_need_lc_F77='`$ECHO "$archive_cmds_need_lc_F77" | $SED "$delay_single_quote_subst"`'
+archive_cmds_need_lc_FC='`$ECHO "$archive_cmds_need_lc_FC" | $SED "$delay_single_quote_subst"`'
+enable_shared_with_static_runtimes_F77='`$ECHO "$enable_shared_with_static_runtimes_F77" | $SED "$delay_single_quote_subst"`'
+enable_shared_with_static_runtimes_FC='`$ECHO "$enable_shared_with_static_runtimes_FC" | $SED "$delay_single_quote_subst"`'
+export_dynamic_flag_spec_F77='`$ECHO "$export_dynamic_flag_spec_F77" | $SED "$delay_single_quote_subst"`'
+export_dynamic_flag_spec_FC='`$ECHO "$export_dynamic_flag_spec_FC" | $SED "$delay_single_quote_subst"`'
+whole_archive_flag_spec_F77='`$ECHO "$whole_archive_flag_spec_F77" | $SED "$delay_single_quote_subst"`'
+whole_archive_flag_spec_FC='`$ECHO "$whole_archive_flag_spec_FC" | $SED "$delay_single_quote_subst"`'
+compiler_needs_object_F77='`$ECHO "$compiler_needs_object_F77" | $SED "$delay_single_quote_subst"`'
+compiler_needs_object_FC='`$ECHO "$compiler_needs_object_FC" | $SED "$delay_single_quote_subst"`'
+old_archive_from_new_cmds_F77='`$ECHO "$old_archive_from_new_cmds_F77" | $SED "$delay_single_quote_subst"`'
+old_archive_from_new_cmds_FC='`$ECHO "$old_archive_from_new_cmds_FC" | $SED "$delay_single_quote_subst"`'
+old_archive_from_expsyms_cmds_F77='`$ECHO "$old_archive_from_expsyms_cmds_F77" | $SED "$delay_single_quote_subst"`'
+old_archive_from_expsyms_cmds_FC='`$ECHO "$old_archive_from_expsyms_cmds_FC" | $SED "$delay_single_quote_subst"`'
+archive_cmds_F77='`$ECHO "$archive_cmds_F77" | $SED "$delay_single_quote_subst"`'
+archive_cmds_FC='`$ECHO "$archive_cmds_FC" | $SED "$delay_single_quote_subst"`'
+archive_expsym_cmds_F77='`$ECHO "$archive_expsym_cmds_F77" | $SED "$delay_single_quote_subst"`'
+archive_expsym_cmds_FC='`$ECHO "$archive_expsym_cmds_FC" | $SED "$delay_single_quote_subst"`'
+module_cmds_F77='`$ECHO "$module_cmds_F77" | $SED "$delay_single_quote_subst"`'
+module_cmds_FC='`$ECHO "$module_cmds_FC" | $SED "$delay_single_quote_subst"`'
+module_expsym_cmds_F77='`$ECHO "$module_expsym_cmds_F77" | $SED "$delay_single_quote_subst"`'
+module_expsym_cmds_FC='`$ECHO "$module_expsym_cmds_FC" | $SED "$delay_single_quote_subst"`'
+with_gnu_ld_F77='`$ECHO "$with_gnu_ld_F77" | $SED "$delay_single_quote_subst"`'
+with_gnu_ld_FC='`$ECHO "$with_gnu_ld_FC" | $SED "$delay_single_quote_subst"`'
+allow_undefined_flag_F77='`$ECHO "$allow_undefined_flag_F77" | $SED "$delay_single_quote_subst"`'
+allow_undefined_flag_FC='`$ECHO "$allow_undefined_flag_FC" | $SED "$delay_single_quote_subst"`'
+no_undefined_flag_F77='`$ECHO "$no_undefined_flag_F77" | $SED "$delay_single_quote_subst"`'
+no_undefined_flag_FC='`$ECHO "$no_undefined_flag_FC" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_flag_spec_F77='`$ECHO "$hardcode_libdir_flag_spec_F77" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_flag_spec_FC='`$ECHO "$hardcode_libdir_flag_spec_FC" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_flag_spec_ld_F77='`$ECHO "$hardcode_libdir_flag_spec_ld_F77" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_flag_spec_ld_FC='`$ECHO "$hardcode_libdir_flag_spec_ld_FC" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_separator_F77='`$ECHO "$hardcode_libdir_separator_F77" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_separator_FC='`$ECHO "$hardcode_libdir_separator_FC" | $SED "$delay_single_quote_subst"`'
+hardcode_direct_F77='`$ECHO "$hardcode_direct_F77" | $SED "$delay_single_quote_subst"`'
+hardcode_direct_FC='`$ECHO "$hardcode_direct_FC" | $SED "$delay_single_quote_subst"`'
+hardcode_direct_absolute_F77='`$ECHO "$hardcode_direct_absolute_F77" | $SED "$delay_single_quote_subst"`'
+hardcode_direct_absolute_FC='`$ECHO "$hardcode_direct_absolute_FC" | $SED "$delay_single_quote_subst"`'
+hardcode_minus_L_F77='`$ECHO "$hardcode_minus_L_F77" | $SED "$delay_single_quote_subst"`'
+hardcode_minus_L_FC='`$ECHO "$hardcode_minus_L_FC" | $SED "$delay_single_quote_subst"`'
+hardcode_shlibpath_var_F77='`$ECHO "$hardcode_shlibpath_var_F77" | $SED "$delay_single_quote_subst"`'
+hardcode_shlibpath_var_FC='`$ECHO "$hardcode_shlibpath_var_FC" | $SED "$delay_single_quote_subst"`'
+hardcode_automatic_F77='`$ECHO "$hardcode_automatic_F77" | $SED "$delay_single_quote_subst"`'
+hardcode_automatic_FC='`$ECHO "$hardcode_automatic_FC" | $SED "$delay_single_quote_subst"`'
+inherit_rpath_F77='`$ECHO "$inherit_rpath_F77" | $SED "$delay_single_quote_subst"`'
+inherit_rpath_FC='`$ECHO "$inherit_rpath_FC" | $SED "$delay_single_quote_subst"`'
+link_all_deplibs_F77='`$ECHO "$link_all_deplibs_F77" | $SED "$delay_single_quote_subst"`'
+link_all_deplibs_FC='`$ECHO "$link_all_deplibs_FC" | $SED "$delay_single_quote_subst"`'
+always_export_symbols_F77='`$ECHO "$always_export_symbols_F77" | $SED "$delay_single_quote_subst"`'
+always_export_symbols_FC='`$ECHO "$always_export_symbols_FC" | $SED "$delay_single_quote_subst"`'
+export_symbols_cmds_F77='`$ECHO "$export_symbols_cmds_F77" | $SED "$delay_single_quote_subst"`'
+export_symbols_cmds_FC='`$ECHO "$export_symbols_cmds_FC" | $SED "$delay_single_quote_subst"`'
+exclude_expsyms_F77='`$ECHO "$exclude_expsyms_F77" | $SED "$delay_single_quote_subst"`'
+exclude_expsyms_FC='`$ECHO "$exclude_expsyms_FC" | $SED "$delay_single_quote_subst"`'
+include_expsyms_F77='`$ECHO "$include_expsyms_F77" | $SED "$delay_single_quote_subst"`'
+include_expsyms_FC='`$ECHO "$include_expsyms_FC" | $SED "$delay_single_quote_subst"`'
+prelink_cmds_F77='`$ECHO "$prelink_cmds_F77" | $SED "$delay_single_quote_subst"`'
+prelink_cmds_FC='`$ECHO "$prelink_cmds_FC" | $SED "$delay_single_quote_subst"`'
+postlink_cmds_F77='`$ECHO "$postlink_cmds_F77" | $SED "$delay_single_quote_subst"`'
+postlink_cmds_FC='`$ECHO "$postlink_cmds_FC" | $SED "$delay_single_quote_subst"`'
+file_list_spec_F77='`$ECHO "$file_list_spec_F77" | $SED "$delay_single_quote_subst"`'
+file_list_spec_FC='`$ECHO "$file_list_spec_FC" | $SED "$delay_single_quote_subst"`'
+hardcode_action_F77='`$ECHO "$hardcode_action_F77" | $SED "$delay_single_quote_subst"`'
+hardcode_action_FC='`$ECHO "$hardcode_action_FC" | $SED "$delay_single_quote_subst"`'
+compiler_lib_search_dirs_F77='`$ECHO "$compiler_lib_search_dirs_F77" | $SED "$delay_single_quote_subst"`'
+compiler_lib_search_dirs_FC='`$ECHO "$compiler_lib_search_dirs_FC" | $SED "$delay_single_quote_subst"`'
+predep_objects_F77='`$ECHO "$predep_objects_F77" | $SED "$delay_single_quote_subst"`'
+predep_objects_FC='`$ECHO "$predep_objects_FC" | $SED "$delay_single_quote_subst"`'
+postdep_objects_F77='`$ECHO "$postdep_objects_F77" | $SED "$delay_single_quote_subst"`'
+postdep_objects_FC='`$ECHO "$postdep_objects_FC" | $SED "$delay_single_quote_subst"`'
+predeps_F77='`$ECHO "$predeps_F77" | $SED "$delay_single_quote_subst"`'
+predeps_FC='`$ECHO "$predeps_FC" | $SED "$delay_single_quote_subst"`'
+postdeps_F77='`$ECHO "$postdeps_F77" | $SED "$delay_single_quote_subst"`'
+postdeps_FC='`$ECHO "$postdeps_FC" | $SED "$delay_single_quote_subst"`'
+compiler_lib_search_path_F77='`$ECHO "$compiler_lib_search_path_F77" | $SED "$delay_single_quote_subst"`'
+compiler_lib_search_path_FC='`$ECHO "$compiler_lib_search_path_FC" | $SED "$delay_single_quote_subst"`'
 
 LTCC='$LTCC'
 LTCFLAGS='$LTCFLAGS'
 compiler='$compiler_DEFAULT'
 
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+  eval 'cat <<_LTECHO_EOF
+\$1
+_LTECHO_EOF'
+}
+
 # Quote evaled strings.
-for var in SED \
+for var in AS \
+DLLTOOL \
+OBJDUMP \
+SHELL \
+ECHO \
+SED \
 GREP \
 EGREP \
 FGREP \
@@ -16215,8 +20712,12 @@ lt_NL2SP \
 reload_flag \
 deplibs_check_method \
 file_magic_cmd \
+file_magic_glob \
+want_nocaseglob \
+sharedlib_from_linklib_cmd \
 AR \
 AR_FLAGS \
+archiver_list_spec \
 STRIP \
 RANLIB \
 CC \
@@ -16226,14 +20727,14 @@ lt_cv_sys_global_symbol_pipe \
 lt_cv_sys_global_symbol_to_cdecl \
 lt_cv_sys_global_symbol_to_c_name_address \
 lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
-SHELL \
-ECHO \
+nm_file_list_spec \
 lt_prog_compiler_no_builtin_flag \
-lt_prog_compiler_wl \
 lt_prog_compiler_pic \
+lt_prog_compiler_wl \
 lt_prog_compiler_static \
 lt_cv_prog_compiler_c_o \
 need_locks \
+MANIFEST_TOOL \
 DSYMUTIL \
 NMEDIT \
 LIPO \
@@ -16249,7 +20750,6 @@ no_undefined_flag \
 hardcode_libdir_flag_spec \
 hardcode_libdir_flag_spec_ld \
 hardcode_libdir_separator \
-fix_srcfile_path \
 exclude_expsyms \
 include_expsyms \
 file_list_spec \
@@ -16257,32 +20757,71 @@ variables_saved_for_relink \
 libname_spec \
 library_names_spec \
 soname_spec \
+install_override_mode \
 finish_eval \
 old_striplib \
 striplib \
+compiler_lib_search_dirs \
+predep_objects \
+postdep_objects \
+predeps \
+postdeps \
+compiler_lib_search_path \
 LD_F77 \
+LD_FC \
+reload_flag_F77 \
+reload_flag_FC \
 compiler_F77 \
+compiler_FC \
 lt_prog_compiler_no_builtin_flag_F77 \
-lt_prog_compiler_wl_F77 \
+lt_prog_compiler_no_builtin_flag_FC \
 lt_prog_compiler_pic_F77 \
+lt_prog_compiler_pic_FC \
+lt_prog_compiler_wl_F77 \
+lt_prog_compiler_wl_FC \
 lt_prog_compiler_static_F77 \
+lt_prog_compiler_static_FC \
 lt_cv_prog_compiler_c_o_F77 \
+lt_cv_prog_compiler_c_o_FC \
 export_dynamic_flag_spec_F77 \
+export_dynamic_flag_spec_FC \
 whole_archive_flag_spec_F77 \
+whole_archive_flag_spec_FC \
 compiler_needs_object_F77 \
+compiler_needs_object_FC \
 with_gnu_ld_F77 \
+with_gnu_ld_FC \
 allow_undefined_flag_F77 \
+allow_undefined_flag_FC \
 no_undefined_flag_F77 \
+no_undefined_flag_FC \
 hardcode_libdir_flag_spec_F77 \
+hardcode_libdir_flag_spec_FC \
 hardcode_libdir_flag_spec_ld_F77 \
+hardcode_libdir_flag_spec_ld_FC \
 hardcode_libdir_separator_F77 \
-fix_srcfile_path_F77 \
+hardcode_libdir_separator_FC \
 exclude_expsyms_F77 \
+exclude_expsyms_FC \
 include_expsyms_F77 \
-file_list_spec_F77; do
-    case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
+include_expsyms_FC \
+file_list_spec_F77 \
+file_list_spec_FC \
+compiler_lib_search_dirs_F77 \
+compiler_lib_search_dirs_FC \
+predep_objects_F77 \
+predep_objects_FC \
+postdep_objects_F77 \
+postdep_objects_FC \
+predeps_F77 \
+predeps_FC \
+postdeps_F77 \
+postdeps_FC \
+compiler_lib_search_path_F77 \
+compiler_lib_search_path_FC; do
+    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
     *[\\\\\\\`\\"\\\$]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
       ;;
     *)
       eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
@@ -16304,23 +20843,37 @@ module_cmds \
 module_expsym_cmds \
 export_symbols_cmds \
 prelink_cmds \
+postlink_cmds \
 postinstall_cmds \
 postuninstall_cmds \
 finish_cmds \
 sys_lib_search_path_spec \
 sys_lib_dlsearch_path_spec \
+reload_cmds_F77 \
+reload_cmds_FC \
 old_archive_cmds_F77 \
+old_archive_cmds_FC \
 old_archive_from_new_cmds_F77 \
+old_archive_from_new_cmds_FC \
 old_archive_from_expsyms_cmds_F77 \
+old_archive_from_expsyms_cmds_FC \
 archive_cmds_F77 \
+archive_cmds_FC \
 archive_expsym_cmds_F77 \
+archive_expsym_cmds_FC \
 module_cmds_F77 \
+module_cmds_FC \
 module_expsym_cmds_F77 \
+module_expsym_cmds_FC \
 export_symbols_cmds_F77 \
-prelink_cmds_F77; do
-    case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
+export_symbols_cmds_FC \
+prelink_cmds_F77 \
+prelink_cmds_FC \
+postlink_cmds_F77 \
+postlink_cmds_FC; do
+    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
     *[\\\\\\\`\\"\\\$]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
       ;;
     *)
       eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
@@ -16328,12 +20881,6 @@ prelink_cmds_F77; do
     esac
 done
 
-# Fix-up fallback echo if it was mangled by the above quoting rules.
-case \$lt_ECHO in
-*'\\\$0 --fallback-echo"')  lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\$0 --fallback-echo"\$/\$0 --fallback-echo"/'\`
-  ;;
-esac
-
 ac_aux_dir='$ac_aux_dir'
 xsi_shell='$xsi_shell'
 lt_shell_append='$lt_shell_append'
@@ -16356,6 +20903,8 @@ fi
 
 
 
+
+
 	build="$build"
 	have_gmodule="$have_gmodule"
 
@@ -16380,10 +20929,10 @@ do
     "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
     "src/gfs-config") CONFIG_FILES="$CONFIG_FILES src/gfs-config" ;;
     "src/gerris2D.pc") CONFIG_FILES="$CONFIG_FILES src/gerris2D.pc" ;;
-    "src/gerris2D3.pc") CONFIG_FILES="$CONFIG_FILES src/gerris2D3.pc" ;;
     "src/gerris3D.pc") CONFIG_FILES="$CONFIG_FILES src/gerris3D.pc" ;;
     "tools/Makefile") CONFIG_FILES="$CONFIG_FILES tools/Makefile" ;;
     "modules/Makefile") CONFIG_FILES="$CONFIG_FILES modules/Makefile" ;;
+    "modules/kdt/Makefile") CONFIG_FILES="$CONFIG_FILES modules/kdt/Makefile" ;;
     "modules/wavewatch/Makefile") CONFIG_FILES="$CONFIG_FILES modules/wavewatch/Makefile" ;;
     "test/Makefile") CONFIG_FILES="$CONFIG_FILES test/Makefile" ;;
     "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
@@ -16395,7 +20944,7 @@ do
     "doc/examples/crossref.sh") CONFIG_FILES="$CONFIG_FILES doc/examples/crossref.sh" ;;
     "desktop/Makefile") CONFIG_FILES="$CONFIG_FILES desktop/Makefile" ;;
 
-  *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
+  *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;;
   esac
 done
 
@@ -16433,7 +20982,7 @@ $debug ||
 {
   tmp=./conf$$-$RANDOM
   (umask 077 && mkdir "$tmp")
-} || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5
+} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
 
 # Set up the scripts for CONFIG_FILES section.
 # No need to generate them if there are no CONFIG_FILES.
@@ -16450,7 +20999,7 @@ if test "x$ac_cr" = x; then
 fi
 ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
 if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
-  ac_cs_awk_cr='\r'
+  ac_cs_awk_cr='\\r'
 else
   ac_cs_awk_cr=$ac_cr
 fi
@@ -16464,18 +21013,18 @@ _ACEOF
   echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
   echo "_ACEOF"
 } >conf$$subs.sh ||
-  as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
-ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'`
+  as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
 ac_delim='%!_!# '
 for ac_last_try in false false false false false :; do
   . ./conf$$subs.sh ||
-    as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
+    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
 
   ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
   if test $ac_delim_n = $ac_delim_num; then
     break
   elif $ac_last_try; then
-    as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
+    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
   else
     ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
   fi
@@ -16564,20 +21113,28 @@ if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
 else
   cat
 fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
-  || as_fn_error "could not setup config files machinery" "$LINENO" 5
+  || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
 _ACEOF
 
-# VPATH may cause trouble with some makes, so we remove $(srcdir),
-# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
+# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
+# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
 # trailing colons and then remove the whole line if VPATH becomes empty
 # (actually we leave an empty line to preserve line numbers).
 if test "x$srcdir" = x.; then
-  ac_vpsub='/^[	 ]*VPATH[	 ]*=/{
-s/:*\$(srcdir):*/:/
-s/:*\${srcdir}:*/:/
-s/:*@srcdir@:*/:/
-s/^\([^=]*=[	 ]*\):*/\1/
+  ac_vpsub='/^[	 ]*VPATH[	 ]*=[	 ]*/{
+h
+s///
+s/^/:/
+s/[	 ]*$/:/
+s/:\$(srcdir):/:/g
+s/:\${srcdir}:/:/g
+s/:@srcdir@:/:/g
+s/^:*//
 s/:*$//
+x
+s/\(=[	 ]*\).*/\1/
+G
+s/\n//
 s/^[^=]*=[	 ]*$//
 }'
 fi
@@ -16605,7 +21162,7 @@ for ac_last_try in false false :; do
   if test -z "$ac_t"; then
     break
   elif $ac_last_try; then
-    as_fn_error "could not make $CONFIG_HEADERS" "$LINENO" 5
+    as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
   else
     ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
   fi
@@ -16690,7 +21247,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 _ACAWK
 _ACEOF
 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-  as_fn_error "could not setup config headers machinery" "$LINENO" 5
+  as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
 fi # test -n "$CONFIG_HEADERS"
 
 
@@ -16703,7 +21260,7 @@ do
   esac
   case $ac_mode$ac_tag in
   :[FHL]*:*);;
-  :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;;
+  :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;;
   :[FH]-) ac_tag=-:-;;
   :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
   esac
@@ -16731,7 +21288,7 @@ do
 	   [\\/$]*) false;;
 	   *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
 	   esac ||
-	   as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;;
+	   as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;;
       esac
       case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
       as_fn_append ac_file_inputs " '$ac_f'"
@@ -16758,7 +21315,7 @@ $as_echo "$as_me: creating $ac_file" >&6;}
 
     case $ac_tag in
     *:-:* | *:-) cat >"$tmp/stdin" \
-      || as_fn_error "could not create $ac_file" "$LINENO" 5 ;;
+      || as_fn_error $? "could not create $ac_file" "$LINENO" 5  ;;
     esac
     ;;
   esac
@@ -16895,22 +21452,22 @@ s&@MKDIR_P@&$ac_MKDIR_P&;t t
 $ac_datarootdir_hack
 "
 eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
-  || as_fn_error "could not create $ac_file" "$LINENO" 5
+  || as_fn_error $? "could not create $ac_file" "$LINENO" 5
 
 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
   { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
   { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined.  Please make sure it is defined." >&5
+which seems to be undefined.  Please make sure it is defined" >&5
 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined.  Please make sure it is defined." >&2;}
+which seems to be undefined.  Please make sure it is defined" >&2;}
 
   rm -f "$tmp/stdin"
   case $ac_file in
   -) cat "$tmp/out" && rm -f "$tmp/out";;
   *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
   esac \
-  || as_fn_error "could not create $ac_file" "$LINENO" 5
+  || as_fn_error $? "could not create $ac_file" "$LINENO" 5
  ;;
   :H)
   #
@@ -16921,19 +21478,19 @@ which seems to be undefined.  Please make sure it is defined." >&2;}
       $as_echo "/* $configure_input  */" \
       && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
     } >"$tmp/config.h" \
-      || as_fn_error "could not create $ac_file" "$LINENO" 5
+      || as_fn_error $? "could not create $ac_file" "$LINENO" 5
     if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
       { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
 $as_echo "$as_me: $ac_file is unchanged" >&6;}
     else
       rm -f "$ac_file"
       mv "$tmp/config.h" "$ac_file" \
-	|| as_fn_error "could not create $ac_file" "$LINENO" 5
+	|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
     fi
   else
     $as_echo "/* $configure_input  */" \
       && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
-      || as_fn_error "could not create -" "$LINENO" 5
+      || as_fn_error $? "could not create -" "$LINENO" 5
   fi
 # Compute "$ac_file"'s index in $config_headers.
 _am_arg="$ac_file"
@@ -17094,7 +21651,8 @@ $as_echo X"$file" |
 # NOTE: Changes made to this file will be lost: look at ltmain.sh.
 #
 #   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008 Free Software Foundation, Inc.
+#                 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
+#                 Inc.
 #   Written by Gordon Matzigkeit, 1996
 #
 #   This file is part of GNU Libtool.
@@ -17122,18 +21680,18 @@ $as_echo X"$file" |
 
 
 # The names of the tagged configurations supported by this script.
-available_tags="F77 "
+available_tags="F77 FC "
 
 # ### BEGIN LIBTOOL CONFIG
 
 # Assembler program.
-AS=$AS
+AS=$lt_AS
 
 # DLL creation program.
-DLLTOOL=$DLLTOOL
+DLLTOOL=$lt_DLLTOOL
 
 # Object dumper program.
-OBJDUMP=$OBJDUMP
+OBJDUMP=$lt_OBJDUMP
 
 # Which release of libtool.m4 was used?
 macro_version=$macro_version
@@ -17151,6 +21709,12 @@ pic_mode=$pic_mode
 # Whether or not to optimize for fast installation.
 fast_install=$enable_fast_install
 
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# An echo program that protects backslashes.
+ECHO=$lt_ECHO
+
 # The host system.
 host_alias=$host_alias
 host=$host
@@ -17200,20 +21764,36 @@ SP2NL=$lt_lt_SP2NL
 # turn newlines into spaces.
 NL2SP=$lt_lt_NL2SP
 
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag
-reload_cmds=$lt_reload_cmds
+# convert \$build file names to \$host format.
+to_host_file_cmd=$lt_cv_to_host_file_cmd
+
+# convert \$build files to toolchain format.
+to_tool_file_cmd=$lt_cv_to_tool_file_cmd
 
 # Method to check whether dependent libraries are shared objects.
 deplibs_check_method=$lt_deplibs_check_method
 
-# Command to use when deplibs_check_method == "file_magic".
+# Command to use when deplibs_check_method = "file_magic".
 file_magic_cmd=$lt_file_magic_cmd
 
+# How to find potential files when deplibs_check_method = "file_magic".
+file_magic_glob=$lt_file_magic_glob
+
+# Find potential files using nocaseglob when deplibs_check_method = "file_magic".
+want_nocaseglob=$lt_want_nocaseglob
+
+# Command to associate shared and link libraries.
+sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd
+
 # The archiver.
 AR=$lt_AR
+
+# Flags to create an archive.
 AR_FLAGS=$lt_AR_FLAGS
 
+# How to feed a file listing to the archiver.
+archiver_list_spec=$lt_archiver_list_spec
+
 # A symbol stripping program.
 STRIP=$lt_STRIP
 
@@ -17222,6 +21802,9 @@ RANLIB=$lt_RANLIB
 old_postinstall_cmds=$lt_old_postinstall_cmds
 old_postuninstall_cmds=$lt_old_postuninstall_cmds
 
+# Whether to use a lock for old archive extraction.
+lock_old_archive_extraction=$lock_old_archive_extraction
+
 # A C compiler.
 LTCC=$lt_CC
 
@@ -17240,14 +21823,14 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
 # Transform the output of nm in a C name address pair when lib prefix is needed.
 global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
 
-# The name of the directory that contains temporary libtool files.
-objdir=$objdir
+# Specify filename containing input files for \$NM.
+nm_file_list_spec=$lt_nm_file_list_spec
 
-# Shell to use when invoking shell scripts.
-SHELL=$lt_SHELL
+# The root where to search for dependent libraries,and in which our libraries should be installed.
+lt_sysroot=$lt_sysroot
 
-# An echo program that does not interpret backslashes.
-ECHO=$lt_ECHO
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
 
 # Used to examine libraries when file_magic_cmd begins with "file".
 MAGIC_CMD=$MAGIC_CMD
@@ -17255,6 +21838,9 @@ MAGIC_CMD=$MAGIC_CMD
 # Must we lock files when doing compilation?
 need_locks=$lt_need_locks
 
+# Manifest tool.
+MANIFEST_TOOL=$lt_MANIFEST_TOOL
+
 # Tool to manipulate archived DWARF debug symbol files on Mac OS X.
 DSYMUTIL=$lt_DSYMUTIL
 
@@ -17311,6 +21897,9 @@ library_names_spec=$lt_library_names_spec
 # The coded name of the library, if different from the real name.
 soname_spec=$lt_soname_spec
 
+# Permission mode override for installation of shared libraries.
+install_override_mode=$lt_install_override_mode
+
 # Command to use after installation of a shared archive.
 postinstall_cmds=$lt_postinstall_cmds
 
@@ -17350,6 +21939,10 @@ striplib=$lt_striplib
 # The linker used to build libraries.
 LD=$lt_LD
 
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
 # Commands used to build an old-style archive.
 old_archive_cmds=$lt_old_archive_cmds
 
@@ -17362,12 +21955,12 @@ with_gcc=$GCC
 # Compiler flag to turn off builtin functions.
 no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
 
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl
-
 # Additional compiler flags for building library objects.
 pic_flag=$lt_lt_prog_compiler_pic
 
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl
+
 # Compiler flag to prevent dynamic linking.
 link_static_flag=$lt_lt_prog_compiler_static
 
@@ -17454,9 +22047,6 @@ inherit_rpath=$inherit_rpath
 # Whether libtool must link a program against all its dependency libraries.
 link_all_deplibs=$link_all_deplibs
 
-# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path=$lt_fix_srcfile_path
-
 # Set to "yes" if exported symbols are required.
 always_export_symbols=$always_export_symbols
 
@@ -17472,12 +22062,29 @@ include_expsyms=$lt_include_expsyms
 # Commands necessary for linking programs (against libraries) with templates.
 prelink_cmds=$lt_prelink_cmds
 
+# Commands necessary for finishing linking programs.
+postlink_cmds=$lt_postlink_cmds
+
 # Specify filename containing input files.
 file_list_spec=$lt_file_list_spec
 
 # How to hardcode a shared library path into an executable.
 hardcode_action=$hardcode_action
 
+# The directories searched by this compiler when creating a shared library.
+compiler_lib_search_dirs=$lt_compiler_lib_search_dirs
+
+# Dependencies to place before and after the objects being linked to
+# create a shared library.
+predep_objects=$lt_predep_objects
+postdep_objects=$lt_postdep_objects
+predeps=$lt_predeps
+postdeps=$lt_postdeps
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_compiler_lib_search_path
+
 # ### END LIBTOOL CONFIG
 
 _LT_EOF
@@ -17504,212 +22111,169 @@ ltmain="$ac_aux_dir/ltmain.sh"
   # if finds mixed CR/LF and LF-only lines.  Since sed operates in
   # text mode, it properly converts lines to CR/LF.  This bash problem
   # is reportedly fixed, but why not run on old versions too?
-  sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \
-    || (rm -f "$cfgfile"; exit 1)
-
-  case $xsi_shell in
-  yes)
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_dirname file append nondir_replacement
-# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
-# otherwise set result to NONDIR_REPLACEMENT.
-func_dirname ()
-{
-  case ${1} in
-    */*) func_dirname_result="${1%/*}${2}" ;;
-    *  ) func_dirname_result="${3}" ;;
-  esac
-}
-
-# func_basename file
-func_basename ()
-{
-  func_basename_result="${1##*/}"
-}
-
-# func_dirname_and_basename file append nondir_replacement
-# perform func_basename and func_dirname in a single function
-# call:
-#   dirname:  Compute the dirname of FILE.  If nonempty,
-#             add APPEND to the result, otherwise set result
-#             to NONDIR_REPLACEMENT.
-#             value returned in "$func_dirname_result"
-#   basename: Compute filename of FILE.
-#             value retuned in "$func_basename_result"
-# Implementation must be kept synchronized with func_dirname
-# and func_basename. For efficiency, we do not delegate to
-# those functions but instead duplicate the functionality here.
-func_dirname_and_basename ()
-{
-  case ${1} in
-    */*) func_dirname_result="${1%/*}${2}" ;;
-    *  ) func_dirname_result="${3}" ;;
-  esac
-  func_basename_result="${1##*/}"
-}
-
-# func_stripname prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-func_stripname ()
-{
-  # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
-  # positional parameters, so assign one to ordinary parameter first.
-  func_stripname_result=${3}
-  func_stripname_result=${func_stripname_result#"${1}"}
-  func_stripname_result=${func_stripname_result%"${2}"}
-}
-
-# func_opt_split
-func_opt_split ()
-{
-  func_opt_split_opt=${1%%=*}
-  func_opt_split_arg=${1#*=}
-}
-
-# func_lo2o object
-func_lo2o ()
-{
-  case ${1} in
-    *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
-    *)    func_lo2o_result=${1} ;;
-  esac
-}
-
-# func_xform libobj-or-source
-func_xform ()
-{
-  func_xform_result=${1%.*}.lo
-}
-
-# func_arith arithmetic-term...
-func_arith ()
-{
-  func_arith_result=$(( $* ))
-}
-
-# func_len string
-# STRING may not start with a hyphen.
-func_len ()
-{
-  func_len_result=${#1}
-}
-
-_LT_EOF
-    ;;
-  *) # Bourne compatible functions.
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_dirname file append nondir_replacement
-# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
-# otherwise set result to NONDIR_REPLACEMENT.
-func_dirname ()
-{
-  # Extract subdirectory from the argument.
-  func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"`
-  if test "X$func_dirname_result" = "X${1}"; then
-    func_dirname_result="${3}"
-  else
-    func_dirname_result="$func_dirname_result${2}"
-  fi
-}
-
-# func_basename file
-func_basename ()
-{
-  func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"`
-}
-
-
-# func_stripname prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-# func_strip_suffix prefix name
-func_stripname ()
-{
-  case ${2} in
-    .*) func_stripname_result=`$ECHO "X${3}" \
-           | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;;
-    *)  func_stripname_result=`$ECHO "X${3}" \
-           | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;;
-  esac
-}
-
-# sed scripts:
-my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q'
-my_sed_long_arg='1s/^-[^=]*=//'
-
-# func_opt_split
-func_opt_split ()
-{
-  func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"`
-  func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"`
-}
-
-# func_lo2o object
-func_lo2o ()
-{
-  func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"`
-}
-
-# func_xform libobj-or-source
-func_xform ()
-{
-  func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[^.]*$/.lo/'`
-}
-
-# func_arith arithmetic-term...
-func_arith ()
-{
-  func_arith_result=`expr "$@"`
-}
-
-# func_len string
-# STRING may not start with a hyphen.
-func_len ()
-{
-  func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len`
-}
-
-_LT_EOF
-esac
-
-case $lt_shell_append in
-  yes)
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_append var value
-# Append VALUE to the end of shell variable VAR.
-func_append ()
-{
-  eval "$1+=\$2"
-}
-_LT_EOF
-    ;;
-  *)
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_append var value
-# Append VALUE to the end of shell variable VAR.
-func_append ()
-{
-  eval "$1=\$$1\$2"
-}
-
-_LT_EOF
-    ;;
-  esac
-
-
-  sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \
-    || (rm -f "$cfgfile"; exit 1)
-
-  mv -f "$cfgfile" "$ofile" ||
+  sed '$q' "$ltmain" >> "$cfgfile" \
+     || (rm -f "$cfgfile"; exit 1)
+
+  if test x"$xsi_shell" = xyes; then
+  sed -e '/^func_dirname ()$/,/^} # func_dirname /c\
+func_dirname ()\
+{\
+\    case ${1} in\
+\      */*) func_dirname_result="${1%/*}${2}" ;;\
+\      *  ) func_dirname_result="${3}" ;;\
+\    esac\
+} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_basename ()$/,/^} # func_basename /c\
+func_basename ()\
+{\
+\    func_basename_result="${1##*/}"\
+} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\
+func_dirname_and_basename ()\
+{\
+\    case ${1} in\
+\      */*) func_dirname_result="${1%/*}${2}" ;;\
+\      *  ) func_dirname_result="${3}" ;;\
+\    esac\
+\    func_basename_result="${1##*/}"\
+} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_stripname ()$/,/^} # func_stripname /c\
+func_stripname ()\
+{\
+\    # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\
+\    # positional parameters, so assign one to ordinary parameter first.\
+\    func_stripname_result=${3}\
+\    func_stripname_result=${func_stripname_result#"${1}"}\
+\    func_stripname_result=${func_stripname_result%"${2}"}\
+} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\
+func_split_long_opt ()\
+{\
+\    func_split_long_opt_name=${1%%=*}\
+\    func_split_long_opt_arg=${1#*=}\
+} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\
+func_split_short_opt ()\
+{\
+\    func_split_short_opt_arg=${1#??}\
+\    func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\
+} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\
+func_lo2o ()\
+{\
+\    case ${1} in\
+\      *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\
+\      *)    func_lo2o_result=${1} ;;\
+\    esac\
+} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_xform ()$/,/^} # func_xform /c\
+func_xform ()\
+{\
+    func_xform_result=${1%.*}.lo\
+} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_arith ()$/,/^} # func_arith /c\
+func_arith ()\
+{\
+    func_arith_result=$(( $* ))\
+} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_len ()$/,/^} # func_len /c\
+func_len ()\
+{\
+    func_len_result=${#1}\
+} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+fi
+
+if test x"$lt_shell_append" = xyes; then
+  sed -e '/^func_append ()$/,/^} # func_append /c\
+func_append ()\
+{\
+    eval "${1}+=\\${2}"\
+} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\
+func_append_quoted ()\
+{\
+\    func_quote_for_eval "${2}"\
+\    eval "${1}+=\\\\ \\$func_quote_for_eval_result"\
+} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  # Save a `func_append' function call where possible by direct use of '+='
+  sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \
+    && mv -f "$cfgfile.tmp" "$cfgfile" \
+      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+  test 0 -eq $? || _lt_function_replace_fail=:
+else
+  # Save a `func_append' function call even when '+=' is not available
+  sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \
+    && mv -f "$cfgfile.tmp" "$cfgfile" \
+      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+  test 0 -eq $? || _lt_function_replace_fail=:
+fi
+
+if test x"$_lt_function_replace_fail" = x":"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5
+$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;}
+fi
+
+
+   mv -f "$cfgfile" "$ofile" ||
     (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
   chmod +x "$ofile"
 
@@ -17721,6 +22285,10 @@ _LT_EOF
 # The linker used to build libraries.
 LD=$lt_LD_F77
 
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag_F77
+reload_cmds=$lt_reload_cmds_F77
+
 # Commands used to build an old-style archive.
 old_archive_cmds=$lt_old_archive_cmds_F77
 
@@ -17733,12 +22301,12 @@ with_gcc=$GCC_F77
 # Compiler flag to turn off builtin functions.
 no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_F77
 
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl_F77
-
 # Additional compiler flags for building library objects.
 pic_flag=$lt_lt_prog_compiler_pic_F77
 
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl_F77
+
 # Compiler flag to prevent dynamic linking.
 link_static_flag=$lt_lt_prog_compiler_static_F77
 
@@ -17825,9 +22393,6 @@ inherit_rpath=$inherit_rpath_F77
 # Whether libtool must link a program against all its dependency libraries.
 link_all_deplibs=$link_all_deplibs_F77
 
-# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path=$lt_fix_srcfile_path_F77
-
 # Set to "yes" if exported symbols are required.
 always_export_symbols=$always_export_symbols_F77
 
@@ -17843,15 +22408,189 @@ include_expsyms=$lt_include_expsyms_F77
 # Commands necessary for linking programs (against libraries) with templates.
 prelink_cmds=$lt_prelink_cmds_F77
 
+# Commands necessary for finishing linking programs.
+postlink_cmds=$lt_postlink_cmds_F77
+
 # Specify filename containing input files.
 file_list_spec=$lt_file_list_spec_F77
 
 # How to hardcode a shared library path into an executable.
 hardcode_action=$hardcode_action_F77
 
+# The directories searched by this compiler when creating a shared library.
+compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_F77
+
+# Dependencies to place before and after the objects being linked to
+# create a shared library.
+predep_objects=$lt_predep_objects_F77
+postdep_objects=$lt_postdep_objects_F77
+predeps=$lt_predeps_F77
+postdeps=$lt_postdeps_F77
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_compiler_lib_search_path_F77
+
 # ### END LIBTOOL TAG CONFIG: F77
 _LT_EOF
 
+
+    cat <<_LT_EOF >> "$ofile"
+
+# ### BEGIN LIBTOOL TAG CONFIG: FC
+
+# The linker used to build libraries.
+LD=$lt_LD_FC
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag_FC
+reload_cmds=$lt_reload_cmds_FC
+
+# Commands used to build an old-style archive.
+old_archive_cmds=$lt_old_archive_cmds_FC
+
+# A language specific compiler.
+CC=$lt_compiler_FC
+
+# Is the compiler the GNU compiler?
+with_gcc=$GCC_FC
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_FC
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic_FC
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl_FC
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static_FC
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o_FC
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc_FC
+
+# Whether or not to disallow shared libs when runtime libs are static.
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_FC
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_FC
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec_FC
+
+# Whether the compiler copes with passing no objects directly.
+compiler_needs_object=$lt_compiler_needs_object_FC
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_FC
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_FC
+
+# Commands used to build a shared archive.
+archive_cmds=$lt_archive_cmds_FC
+archive_expsym_cmds=$lt_archive_expsym_cmds_FC
+
+# Commands used to build a loadable module if different from building
+# a shared archive.
+module_cmds=$lt_module_cmds_FC
+module_expsym_cmds=$lt_module_expsym_cmds_FC
+
+# Whether we are building with GNU ld or not.
+with_gnu_ld=$lt_with_gnu_ld_FC
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag_FC
+
+# Flag that enforces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag_FC
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_FC
+
+# If ld is used when linking, flag to hardcode \$libdir into a binary
+# during linking.  This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_FC
+
+# Whether we need a single "-rpath" flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator_FC
+
+# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
+# DIR into the resulting binary.
+hardcode_direct=$hardcode_direct_FC
+
+# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
+# DIR into the resulting binary and the resulting library dependency is
+# "absolute",i.e impossible to change by setting \${shlibpath_var} if the
+# library is relocated.
+hardcode_direct_absolute=$hardcode_direct_absolute_FC
+
+# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
+# into the resulting binary.
+hardcode_minus_L=$hardcode_minus_L_FC
+
+# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
+# into the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var_FC
+
+# Set to "yes" if building a shared library automatically hardcodes DIR
+# into the library and all subsequent libraries and executables linked
+# against it.
+hardcode_automatic=$hardcode_automatic_FC
+
+# Set to yes if linker adds runtime paths of dependent libraries
+# to runtime path list.
+inherit_rpath=$inherit_rpath_FC
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs_FC
+
+# Set to "yes" if exported symbols are required.
+always_export_symbols=$always_export_symbols_FC
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds_FC
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms_FC
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms_FC
+
+# Commands necessary for linking programs (against libraries) with templates.
+prelink_cmds=$lt_prelink_cmds_FC
+
+# Commands necessary for finishing linking programs.
+postlink_cmds=$lt_postlink_cmds_FC
+
+# Specify filename containing input files.
+file_list_spec=$lt_file_list_spec_FC
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action_FC
+
+# The directories searched by this compiler when creating a shared library.
+compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_FC
+
+# Dependencies to place before and after the objects being linked to
+# create a shared library.
+predep_objects=$lt_predep_objects_FC
+postdep_objects=$lt_postdep_objects_FC
+predeps=$lt_predeps_FC
+postdeps=$lt_postdeps_FC
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_compiler_lib_search_path_FC
+
+# ### END LIBTOOL TAG CONFIG: FC
+_LT_EOF
+
  ;;
     "default-1":C)
 	echo creating src/gfsconfig.h
@@ -17954,7 +22693,7 @@ _ACEOF
 ac_clean_files=$ac_clean_files_save
 
 test $ac_write_fail = 0 ||
-  as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5
+  as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
 
 
 # configure is writing to config.log, and then calls config.status.
@@ -17975,10 +22714,52 @@ if test "$no_create" != yes; then
   exec 5>>config.log
   # Use ||, not &&, to avoid exiting from the if with $? = 1, which
   # would make configure fail if this is the last instruction.
-  $ac_cs_success || as_fn_exit $?
+  $ac_cs_success || as_fn_exit 1
 fi
 if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
 fi
 
+
+echo
+echo "Configuration summary"
+echo
+echo "  System            = $build"
+echo "  C   Compiler      = $CC"
+echo "  C   Flags         = $CFLAGS"
+echo "  MPI enabled       = $use_mpicc"
+echo "  GModule support   = $have_gmodule"
+echo "  pkg-config        = $have_pkg_config"
+echo "  gawk              = $have_awk"
+echo "  m4                = $have_m4"
+echo
+echo "Modules"
+echo
+echo "  map               = $proj"
+echo "  tide              = $tide"
+if test x$F77 != x; then
+echo "  stokes            = yes"
+else
+echo "  stokes            = no"
+fi
+if test -r $HOME/.wwatch3.env; then
+echo "  wavewatch         = yes"
+echo "  wavewatch version = $ww3_version"
+else
+echo "  wavewatch         = no"
+fi
+echo "  hypre             = $hypre"
+echo "  lis               = $lis"
+if test x$FC = xgfortran -a x$lapack = xtrue -a x$with_agmg != xno; then
+echo "  agmg              = yes"
+else
+echo "  agmg              = no"
+fi
+echo "  ode               = $ode"
+if test x$no_gsl != xyes; then
+echo "  bubbles           = yes"
+else
+echo "  bubbles           = no"
+fi
+echo
diff --git a/configure.in b/configure.in
index 2a22228..9c3d023 100644
--- a/configure.in
+++ b/configure.in
@@ -94,12 +94,13 @@ fi
 AC_PROG_CC
 
 if test x$GCC = xyes ; then
-  CFLAGS="$CFLAGS -Wall -Werror-implicit-function-declaration -Wmissing-prototypes -Wmissing-declarations -pipe"
+  CFLAGS="$CFLAGS -Wall -Werror-implicit-function-declaration -Wmissing-prototypes -Wmissing-declarations -pipe -std=c99 -D_XOPEN_SOURCE=500"
 fi
 
 dnl Initialize libtool
 AC_LIBTOOL_WIN32_DLL
 AM_PROG_LIBTOOL
+AM_PROG_CC_C_O
 
 dnl Enable verbose output from libtool (enable libtool's default)
 AC_ARG_ENABLE(libtool-verbose,
@@ -288,13 +289,14 @@ AC_SUBST(CPPFLAGS)
 AC_SUBST(LDFLAGS)
 
 # checks for libproj
-AC_CHECK_LIB(proj, pj_fwd, proj="true",
+AC_CHECK_LIB(proj, pj_fwd, proj="yes",
   AC_MSG_WARN([libproj not found. Map module will not be available.]), [-lm])
-AC_CHECK_HEADERS(proj_api.h, proj="true", proj="false")
-AM_CONDITIONAL(HAS_LIBPROJ, test x$proj = xtrue)
+AC_CHECK_HEADERS(proj_api.h, proj="yes", proj="no")
+AM_CONDITIONAL(HAS_LIBPROJ, test x$proj = xyes)
 
 # checks for GNU Scientific Library
 AM_PATH_GSL
+AM_CONDITIONAL(HAS_GSL, test x$no_gsl != xyes)
 
 # checks for netCDF
 AC_CHECK_LIB(netcdf, nc_open, netcdf="true", netcdf="false", [-lm])
@@ -304,6 +306,9 @@ AM_CONDITIONAL(HAS_NETCDF, test x$netcdf = xtrue)
 # Tide module requires both netCDF and GSL
 if test x$netcdf = xfalse -o x$no_gsl = xyes; then
    AC_MSG_WARN([GSL and/or netCDF not found. Tide module will not be available.])
+   tide=no
+else
+   tide=yes
 fi
 AM_CONDITIONAL(BUILD_TIDE, test x$netcdf = xtrue -a x$no_gsl = x)
 
@@ -311,6 +316,19 @@ AM_CONDITIONAL(BUILD_TIDE, test x$netcdf = xtrue -a x$no_gsl = x)
 AC_PROG_F77
 AM_CONDITIONAL(BUILD_STOKES, test x$F77 != x)
 
+# Enable the AGMG module (disabled by default due to non-free license)
+AC_ARG_ENABLE(agmg,
+	      [  --enable-agmg enable the AGMG module (beware of non-free license)],
+	      [with_agmg=$enableval],
+	      [with_agmg="no"])
+
+# AGMG module requires the gfortran compiler and lapack/blas
+if test x$with_agmg != xno; then
+   AC_PROG_FC([gfortran f90 xlf90],90)
+   AC_CHECK_LIB(lapack, sorg2l_, lapack="true", lapack="false", [-lblas -lm])
+fi
+AM_CONDITIONAL(BUILD_AGMG, test x$FC = xgfortran -a x$lapack = xtrue -a x$with_agmg != xno)
+
 # Build wavewatch module if wavewatch is installed
 AM_CONDITIONAL(BUILD_WAVEWATCH, test -r $HOME/.wwatch3.env)
 if test -r $HOME/.wwatch3.env; then
@@ -323,6 +341,40 @@ if test -r $HOME/.wwatch3.env; then
    AC_DEFINE_UNQUOTED(WW3_VERSION, $ww3_version, [WaveWatch III version number])
 fi
 
+# Build ode module if ODE is installed
+AC_CHECK_PROG(ode, ode-config, yes, no)
+if test x$ode = xyes; then
+  ODE_CFLAGS=`ode-config --cflags`
+  ODE_LIBS="`ode-config --libs` -lstdc++"
+  AC_SUBST(ODE_CFLAGS)
+  AC_SUBST(ODE_LIBS)
+else
+  AC_MSG_WARN([ODE not found. ode module will not be available.])
+fi
+AM_CONDITIONAL(BUILD_ODE, test x$ode = xyes)
+
+# Build hypre module if HYPRE is installed
+if test "x$use_mpicc" = "xyes" ; then # HYPRE needs MPI
+   AC_CHECK_LIB(HYPRE, HYPRE_IJMatrixCreate, hypre="yes", hypre="no", [-lm])
+   if test x$hypre = xyes; then
+      AC_CHECK_HEADERS(HYPRE.h, hypre="yes", hypre="no")
+   fi
+   if test x$hypre = xno; then
+      AC_MSG_WARN([HYPRE not found. hypre Module won't be available.])
+   fi
+fi
+AM_CONDITIONAL(BUILD_HYPRE, test x$hypre = xyes)
+
+# Build lis module if lis is installed
+AC_CHECK_LIB(lis, lis_initialize, lis="yes", lis="no", [-lgfortran -lm])
+if test x$lis = xyes; then
+   AC_CHECK_HEADERS(lis.h, lis="yes", lis="no")
+fi
+if test x$lis = xno; then
+   AC_MSG_WARN([lis not found. lis Module won't be available.])
+fi
+AM_CONDITIONAL(BUILD_LIS, test x$lis = xyes)
+
 dnl header file checks
 AC_CHECK_HEADERS(fenv.h, AC_DEFINE(HAVE_FENV_H))
 AC_CHECK_HEADERS(unistd.h, AC_DEFINE(HAVE_UNISTD_H))
@@ -442,24 +494,22 @@ fi
 AC_SUBST(MODULES)
 GFS2D_LIBS="\$(top_builddir)/src/libgfs2D.la $GTS_LIBS $MODULES"
 GFS3D_LIBS="\$(top_builddir)/src/libgfs3D.la $GTS_LIBS $MODULES"
-GFS2D3_LIBS="\$(top_builddir)/src/libgfs2D3.la $GTS_LIBS $MODULES"
 AC_SUBST(GFS2D_LIBS)
 AC_SUBST(GFS3D_LIBS)
-AC_SUBST(GFS2D3_LIBS)
 
 # check whether the code is under darcs
 
 AM_CONDITIONAL(DARCS_CONTROLLED, test -d _darcs)
 
-AC_OUTPUT([
+AC_CONFIG_FILES([
 Makefile
 src/Makefile
 src/gfs-config
 src/gerris2D.pc
-src/gerris2D3.pc
 src/gerris3D.pc
 tools/Makefile
 modules/Makefile
+modules/kdt/Makefile
 modules/wavewatch/Makefile
 test/Makefile
 doc/Makefile
@@ -471,3 +521,48 @@ doc/examples/gfs-highlight
 doc/examples/crossref.sh
 desktop/Makefile
 ])
+
+
+AC_OUTPUT()
+
+echo
+echo "Configuration summary"
+echo
+echo "  System            = $build"
+echo "  C   Compiler      = $CC"
+echo "  C   Flags         = $CFLAGS"
+echo "  MPI enabled       = $use_mpicc"
+echo "  GModule support   = $have_gmodule"
+echo "  pkg-config        = $have_pkg_config"
+echo "  gawk              = $have_awk"
+echo "  m4                = $have_m4"
+echo
+echo "Modules"
+echo
+echo "  map               = $proj"
+echo "  tide              = $tide"
+if test x$F77 != x; then
+echo "  stokes            = yes"
+else
+echo "  stokes            = no"
+fi
+if test -r $HOME/.wwatch3.env; then
+echo "  wavewatch         = yes"
+echo "  wavewatch version = $ww3_version"
+else
+echo "  wavewatch         = no"
+fi
+echo "  hypre             = $hypre"
+echo "  lis               = $lis"
+if test x$FC = xgfortran -a x$lapack = xtrue -a x$with_agmg != xno; then
+echo "  agmg              = yes"
+else
+echo "  agmg              = no"
+fi
+echo "  ode               = $ode"
+if test x$no_gsl != xyes; then
+echo "  bubbles           = yes"
+else
+echo "  bubbles           = no"
+fi
+echo
diff --git a/desktop/Makefile.in b/desktop/Makefile.in
index 6080bf3..2ef6a0b 100644
--- a/desktop/Makefile.in
+++ b/desktop/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11 from Makefile.am.
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -98,9 +98,10 @@ ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
 F77 = @F77@
+FC = @FC@
+FCFLAGS = @FCFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
-GFS2D3_LIBS = @GFS2D3_LIBS@
 GFS2D_LIBS = @GFS2D_LIBS@
 GFS3D_LIBS = @GFS3D_LIBS@
 GFS_COMPILATION_FLAGS = @GFS_COMPILATION_FLAGS@
@@ -135,6 +136,7 @@ LT_RELEASE = @LT_RELEASE@
 LT_REVISION = @LT_REVISION@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MODULES = @MODULES@
 NM = @NM@
@@ -142,6 +144,8 @@ NMEDIT = @NMEDIT@
 NO_UNDEFINED = @NO_UNDEFINED@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
+ODE_CFLAGS = @ODE_CFLAGS@
+ODE_LIBS = @ODE_LIBS@
 OTOOL = @OTOOL@
 OTOOL64 = @OTOOL64@
 PACKAGE = @PACKAGE@
@@ -163,9 +167,11 @@ abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
 ac_ct_F77 = @ac_ct_F77@
+ac_ct_FC = @ac_ct_FC@
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
 am__quote = @am__quote@
@@ -202,9 +208,9 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
+ode = @ode@
 oldincludedir = @oldincludedir@
 pdfdir = @pdfdir@
 prefix = @prefix@
diff --git a/doc/Makefile.am b/doc/Makefile.am
index 60c58c8..fae6595 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -2,44 +2,32 @@
 
 SUBDIRS = tutorial examples manpages
 
-# The name of the module.
-DOC_MODULE=gfs
+WEBROOT = /var/www/gerris
 
-# The top-level SGML file.
-DOC_MAIN_SGML_FILE=gfs-docs.sgml
+EXTRA_DIST = figures share doxy.conf
 
-# The directory containing the source code (if it contains documentation).
-DOC_SOURCE_DIR=../src
+noinst_PROGRAMS = autoclass
 
-TARGET_DIR=html/$(DOC_MODULE)
+INCLUDES = -I$(top_srcdir)/src -I$(includedir) -DG_LOG_DOMAIN=\"Gfs-tools\"\
+            $(GTS_CFLAGS)
 
-EXTRA_DIST=figures share
+autoclass: autoclass.c $(top_srcdir)/src/init.c
+	$(LIBTOOL) --mode=link $(CC) $(AM_CFLAGS) $(INCLUDES) -DFTT_2D=1 \
+	autoclass.c -o autoclass $(GFS2D_LIBS)
 
-scan:
-	gtkdoc-scan --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --ignore-headers=""
+reference: Makefile.am autoclass share/autoclass.sh share/doxfilter share/renamemodules doxy.conf
+	sh share/autoclass.sh | sort -k2,3 | ./autoclass > hierarchy.c
+	@chmod +x share/doxfilter
+	doxygen doxy.conf 2>&1 | grep -v 'explicit link request to .* could not be resolved' > doxy.log
+	cd reference && sh ../share/renamemodules
+	if grep [wW]arning doxy.log; then exit 1; fi
 
-templates: scan
-	gtkdoc-mktmpl --module=$(DOC_MODULE)
-	sort -f $(DOC_MODULE)-unused.txt > /tmp/toto; mv -f /tmp/toto $(DOC_MODULE)-unused.txt
+publish: reference
+	tar czf reference.tgz reference
+	mv -f reference.tgz $(WEBROOT)
+	cd $(WEBROOT) && tar xzf reference.tgz && rm -f reference.tgz
 
-sgml: templates
-	gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR)
-	sort -f $(DOC_MODULE)-undocumented.txt > /tmp/toto; mv -f /tmp/toto $(DOC_MODULE)-undocumented.txt
+Makefile.deps: Makefile.am ../src/Makefile.am
+	ls ../src/*.[ch] | awk 'BEGIN{print "reference: \\"}{ print "\t" $$1 " \\"}' > Makefile.deps
 
-html: sgml
-	if ! test -d html ; then mkdir html ; fi
-	-cd html && gtkdoc-mkhtml $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
-
-clean-local:
-	rm -f *~ *.bak *.hierarchy *.signals *.args *-unused.txt
-
-maintainer-clean-local: clean
-	rm -rf sgml html $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt 
-
-## install-data-local:
-##	install -d -m 0755 $(TARGET_DIR)
-##	install -m 0644 html/*.html $(TARGET_DIR)
-##	install -m 0644 html/index.sgml $(TARGET_DIR)
-##	gtkdoc-fixxref --module=$(DOC_MODULE) --html-dir=$(HTML_DIR)
-
-.PHONY : html sgml templates scan
+-include Makefile.deps
diff --git a/doc/Makefile.in b/doc/Makefile.in
index 30cee1a..d9387b3 100644
--- a/doc/Makefile.in
+++ b/doc/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11 from Makefile.am.
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -14,6 +14,7 @@
 # PARTICULAR PURPOSE.
 
 @SET_MAKE@
+
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
@@ -33,6 +34,7 @@ PRE_UNINSTALL = :
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
+noinst_PROGRAMS = autoclass$(EXEEXT)
 subdir = doc
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -46,8 +48,25 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
-SOURCES =
-DIST_SOURCES =
+PROGRAMS = $(noinst_PROGRAMS)
+autoclass_SOURCES = autoclass.c
+autoclass_OBJECTS = autoclass.$(OBJEXT)
+autoclass_LDADD = $(LDADD)
+DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+	$(LDFLAGS) -o $@
+SOURCES = autoclass.c
+DIST_SOURCES = autoclass.c
 RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
 	html-recursive info-recursive install-data-recursive \
 	install-dvi-recursive install-exec-recursive \
@@ -114,9 +133,10 @@ ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
 F77 = @F77@
+FC = @FC@
+FCFLAGS = @FCFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
-GFS2D3_LIBS = @GFS2D3_LIBS@
 GFS2D_LIBS = @GFS2D_LIBS@
 GFS3D_LIBS = @GFS3D_LIBS@
 GFS_COMPILATION_FLAGS = @GFS_COMPILATION_FLAGS@
@@ -151,6 +171,7 @@ LT_RELEASE = @LT_RELEASE@
 LT_REVISION = @LT_REVISION@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MODULES = @MODULES@
 NM = @NM@
@@ -158,6 +179,8 @@ NMEDIT = @NMEDIT@
 NO_UNDEFINED = @NO_UNDEFINED@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
+ODE_CFLAGS = @ODE_CFLAGS@
+ODE_LIBS = @ODE_LIBS@
 OTOOL = @OTOOL@
 OTOOL64 = @OTOOL64@
 PACKAGE = @PACKAGE@
@@ -179,9 +202,11 @@ abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
 ac_ct_F77 = @ac_ct_F77@
+ac_ct_FC = @ac_ct_FC@
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
 am__quote = @am__quote@
@@ -218,9 +243,9 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
+ode = @ode@
 oldincludedir = @oldincludedir@
 pdfdir = @pdfdir@
 prefix = @prefix@
@@ -236,20 +261,15 @@ top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 use_mpicc = @use_mpicc@
 SUBDIRS = tutorial examples manpages
+WEBROOT = /var/www/gerris
+EXTRA_DIST = figures share doxy.conf
+INCLUDES = -I$(top_srcdir)/src -I$(includedir) -DG_LOG_DOMAIN=\"Gfs-tools\"\
+            $(GTS_CFLAGS)
 
-# The name of the module.
-DOC_MODULE = gfs
-
-# The top-level SGML file.
-DOC_MAIN_SGML_FILE = gfs-docs.sgml
-
-# The directory containing the source code (if it contains documentation).
-DOC_SOURCE_DIR = ../src
-TARGET_DIR = html/$(DOC_MODULE)
-EXTRA_DIST = figures share
 all: all-recursive
 
 .SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
@@ -281,6 +301,44 @@ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
 
+clean-noinstPROGRAMS:
+	@list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \
+	echo " rm -f" $$list; \
+	rm -f $$list || exit $$?; \
+	test -n "$(EXEEXT)" || exit 0; \
+	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+	echo " rm -f" $$list; \
+	rm -f $$list
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/autoclass.Po at am__quote@
+
+.c.o:
+ at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(COMPILE) -c $<
+
+.c.obj:
+ at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+ at am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+
 mostlyclean-libtool:
 	-rm -f *.lo
 
@@ -294,7 +352,7 @@ clean-libtool:
 #     (which will cause the Makefiles to be regenerated when you run `make');
 # (2) otherwise, pass the desired values on the `make' command line.
 $(RECURSIVE_TARGETS):
-	@failcom='exit 1'; \
+	@fail= failcom='exit 1'; \
 	for f in x $$MAKEFLAGS; do \
 	  case $$f in \
 	    *=* | --[!k]*);; \
@@ -319,7 +377,7 @@ $(RECURSIVE_TARGETS):
 	fi; test -z "$$fail"
 
 $(RECURSIVE_CLEAN_TARGETS):
-	@failcom='exit 1'; \
+	@fail= failcom='exit 1'; \
 	for f in x $$MAKEFLAGS; do \
 	  case $$f in \
 	    *=* | --[!k]*);; \
@@ -482,7 +540,7 @@ distdir: $(DISTFILES)
 	done
 check-am: all-am
 check: check-recursive
-all-am: Makefile
+all-am: Makefile $(PROGRAMS)
 installdirs: installdirs-recursive
 installdirs-am:
 install: install-recursive
@@ -512,16 +570,21 @@ maintainer-clean-generic:
 	@echo "it deletes files that may require special tools to rebuild."
 clean: clean-recursive
 
-clean-am: clean-generic clean-libtool clean-local mostlyclean-am
+clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \
+	mostlyclean-am
 
 distclean: distclean-recursive
+	-rm -rf ./$(DEPDIR)
 	-rm -f Makefile
-distclean-am: clean-am distclean-generic distclean-tags
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-tags
 
 dvi: dvi-recursive
 
 dvi-am:
 
+html: html-recursive
+
 html-am:
 
 info: info-recursive
@@ -557,13 +620,14 @@ install-ps-am:
 installcheck-am:
 
 maintainer-clean: maintainer-clean-recursive
+	-rm -rf ./$(DEPDIR)
 	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic \
-	maintainer-clean-local
+maintainer-clean-am: distclean-am maintainer-clean-generic
 
 mostlyclean: mostlyclean-recursive
 
-mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool
 
 pdf: pdf-recursive
 
@@ -580,41 +644,40 @@ uninstall-am:
 
 .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
 	all all-am check check-am clean clean-generic clean-libtool \
-	clean-local ctags ctags-recursive distclean distclean-generic \
-	distclean-libtool distclean-tags distdir dvi dvi-am html \
-	html-am info info-am install install-am install-data \
-	install-data-am install-dvi install-dvi-am install-exec \
-	install-exec-am install-html install-html-am install-info \
-	install-info-am install-man install-pdf install-pdf-am \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs installdirs-am maintainer-clean \
-	maintainer-clean-generic maintainer-clean-local mostlyclean \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags tags-recursive uninstall uninstall-am
-
-
-scan:
-	gtkdoc-scan --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --ignore-headers=""
-
-templates: scan
-	gtkdoc-mktmpl --module=$(DOC_MODULE)
-	sort -f $(DOC_MODULE)-unused.txt > /tmp/toto; mv -f /tmp/toto $(DOC_MODULE)-unused.txt
-
-sgml: templates
-	gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR)
-	sort -f $(DOC_MODULE)-undocumented.txt > /tmp/toto; mv -f /tmp/toto $(DOC_MODULE)-undocumented.txt
-
-html: sgml
-	if ! test -d html ; then mkdir html ; fi
-	-cd html && gtkdoc-mkhtml $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
-
-clean-local:
-	rm -f *~ *.bak *.hierarchy *.signals *.args *-unused.txt
-
-maintainer-clean-local: clean
-	rm -rf sgml html $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt 
-
-.PHONY : html sgml templates scan
+	clean-noinstPROGRAMS ctags ctags-recursive distclean \
+	distclean-compile distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	installdirs-am maintainer-clean maintainer-clean-generic \
+	mostlyclean mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
+	uninstall uninstall-am
+
+
+autoclass: autoclass.c $(top_srcdir)/src/init.c
+	$(LIBTOOL) --mode=link $(CC) $(AM_CFLAGS) $(INCLUDES) -DFTT_2D=1 \
+	autoclass.c -o autoclass $(GFS2D_LIBS)
+
+reference: Makefile.am autoclass share/autoclass.sh share/doxfilter share/renamemodules doxy.conf
+	sh share/autoclass.sh | sort -k2,3 | ./autoclass > hierarchy.c
+	@chmod +x share/doxfilter
+	doxygen doxy.conf 2>&1 | grep -v 'explicit link request to .* could not be resolved' > doxy.log
+	cd reference && sh ../share/renamemodules
+	if grep [wW]arning doxy.log; then exit 1; fi
+
+publish: reference
+	tar czf reference.tgz reference
+	mv -f reference.tgz $(WEBROOT)
+	cd $(WEBROOT) && tar xzf reference.tgz && rm -f reference.tgz
+
+Makefile.deps: Makefile.am ../src/Makefile.am
+	ls ../src/*.[ch] | awk 'BEGIN{print "reference: \\"}{ print "\t" $$1 " \\"}' > Makefile.deps
+
+-include Makefile.deps
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/doc/autoclass.c b/doc/autoclass.c
new file mode 100644
index 0000000..ad54149
--- /dev/null
+++ b/doc/autoclass.c
@@ -0,0 +1,32 @@
+#include <string.h>
+#include "init.h"
+
+int main (int argc, char * argv[])
+{
+  GtsObjectClass ** klass;
+  int status = 0;
+
+  klass = gfs_classes ();
+
+  printf ("/** \\file\n"
+	  " * \\brief Class hierarchy definition for doxygen */\n");
+
+  char s[80];
+  while (fgets (s, 80, stdin)) {
+    char * file = strtok (s, " ");
+    char * name = strtok (NULL, "\n");
+    GtsObjectClass * klass = gts_object_class_from_name (name);
+    if (klass == NULL) {
+      fprintf (stderr, "autoclass:%s: unknown class '%s'\n", file, name);
+      status = 1;
+    }
+    else
+      printf ("/** \n"
+	      " * \\defgroup %s %s\n"
+	      " * \\ingroup %s\n"
+	      " */\n", 
+	      klass->info.name, klass->info.name, klass->parent_class->info.name);
+  }
+
+  return status;
+}
diff --git a/doc/doxy.conf b/doc/doxy.conf
new file mode 100644
index 0000000..a0d368d
--- /dev/null
+++ b/doc/doxy.conf
@@ -0,0 +1,1632 @@
+# Doxyfile 1.7.1
+
+# This file describes the settings to be used by the documentation system
+# doxygen (www.doxygen.org) for a project
+#
+# All text after a hash (#) is considered a comment and will be ignored
+# The format is:
+#       TAG = value [value, ...]
+# For lists items can also be appended using:
+#       TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (" ")
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+
+# This tag specifies the encoding used for all characters in the config file
+# that follow. The default is UTF-8 which is also the encoding used for all
+# text before the first occurrence of this tag. Doxygen uses libiconv (or the
+# iconv built into libc) for the transcoding. See
+# http://www.gnu.org/software/libiconv for the list of possible encodings.
+
+DOXYFILE_ENCODING      = UTF-8
+
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
+# by quotes) that should identify the project.
+
+PROJECT_NAME           = Gerris
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number.
+# This could be handy for archiving the generated documentation or
+# if some version control system is used.
+
+PROJECT_NUMBER         =
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
+# base path where the generated documentation will be put.
+# If a relative path is entered, it will be relative to the location
+# where doxygen was started. If left blank the current directory will be used.
+
+OUTPUT_DIRECTORY       =
+
+# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
+# 4096 sub-directories (in 2 levels) under the output directory of each output
+# format and will distribute the generated files over these directories.
+# Enabling this option can be useful when feeding doxygen a huge amount of
+# source files, where putting all generated files in the same directory would
+# otherwise cause performance problems for the file system.
+
+CREATE_SUBDIRS         = NO
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all
+# documentation generated by doxygen is written. Doxygen will use this
+# information to generate all constant output in the proper language.
+# The default language is English, other supported languages are:
+# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
+# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German,
+# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English
+# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian,
+# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak,
+# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.
+
+OUTPUT_LANGUAGE        = English
+
+# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
+# include brief member descriptions after the members that are listed in
+# the file and class documentation (similar to JavaDoc).
+# Set to NO to disable this.
+
+BRIEF_MEMBER_DESC      = YES
+
+# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
+# the brief description of a member or function before the detailed description.
+# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
+# brief descriptions will be completely suppressed.
+
+REPEAT_BRIEF           = YES
+
+# This tag implements a quasi-intelligent brief description abbreviator
+# that is used to form the text in various listings. Each string
+# in this list, if found as the leading text of the brief description, will be
+# stripped from the text and the result after processing the whole list, is
+# used as the annotated text. Otherwise, the brief description is used as-is.
+# If left blank, the following values are used ("$name" is automatically
+# replaced with the name of the entity): "The $name class" "The $name widget"
+# "The $name file" "is" "provides" "specifies" "contains"
+# "represents" "a" "an" "the"
+
+ABBREVIATE_BRIEF       =
+
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
+# Doxygen will generate a detailed section even if there is only a brief
+# description.
+
+ALWAYS_DETAILED_SEC    = NO
+
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
+# inherited members of a class in the documentation of that class as if those
+# members were ordinary class members. Constructors, destructors and assignment
+# operators of the base classes will not be shown.
+
+INLINE_INHERITED_MEMB  = NO
+
+# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
+# path before files name in the file list and in the header files. If set
+# to NO the shortest path that makes the file name unique will be used.
+
+FULL_PATH_NAMES        = NO
+
+# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
+# can be used to strip a user-defined part of the path. Stripping is
+# only done if one of the specified strings matches the left-hand part of
+# the path. The tag can be used to show relative paths in the file list.
+# If left blank the directory from which doxygen is run is used as the
+# path to strip.
+
+STRIP_FROM_PATH        =
+
+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
+# the path mentioned in the documentation of a class, which tells
+# the reader which header file to include in order to use a class.
+# If left blank only the name of the header file containing the class
+# definition is used. Otherwise one should specify the include paths that
+# are normally passed to the compiler using the -I flag.
+
+STRIP_FROM_INC_PATH    =
+
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
+# (but less readable) file names. This can be useful is your file systems
+# doesn't support long names like on DOS, Mac, or CD-ROM.
+
+SHORT_NAMES            = NO
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
+# will interpret the first line (until the first dot) of a JavaDoc-style
+# comment as the brief description. If set to NO, the JavaDoc
+# comments will behave just like regular Qt-style comments
+# (thus requiring an explicit @brief command for a brief description.)
+
+JAVADOC_AUTOBRIEF      = NO
+
+# If the QT_AUTOBRIEF tag is set to YES then Doxygen will
+# interpret the first line (until the first dot) of a Qt-style
+# comment as the brief description. If set to NO, the comments
+# will behave just like regular Qt-style comments (thus requiring
+# an explicit \brief command for a brief description.)
+
+QT_AUTOBRIEF           = NO
+
+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
+# treat a multi-line C++ special comment block (i.e. a block of //! or ///
+# comments) as a brief description. This used to be the default behaviour.
+# The new default is to treat a multi-line C++ comment block as a detailed
+# description. Set this tag to YES if you prefer the old behaviour instead.
+
+MULTILINE_CPP_IS_BRIEF = NO
+
+# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
+# member inherits the documentation from any documented member that it
+# re-implements.
+
+INHERIT_DOCS           = YES
+
+# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
+# a new page for each member. If set to NO, the documentation of a member will
+# be part of the file/class/namespace that contains it.
+
+SEPARATE_MEMBER_PAGES  = NO
+
+# The TAB_SIZE tag can be used to set the number of spaces in a tab.
+# Doxygen uses this value to replace tabs by spaces in code fragments.
+
+TAB_SIZE               = 8
+
+# This tag can be used to specify a number of aliases that acts
+# as commands in the documentation. An alias has the form "name=value".
+# For example adding "sideeffect=\par Side Effects:\n" will allow you to
+# put the command \sideeffect (or @sideeffect) in the documentation, which
+# will result in a user-defined paragraph with heading "Side Effects:".
+# You can put \n's in the value part of an alias to insert newlines.
+
+ALIASES += instance{1}="\brief \1 instance.\n\ingroup \1\n"
+ALIASES += beginobject{1}="\see <p><a href=http://gfs.sf.net/wiki/index.php/\1>Syntax reference</a>\n\addtogroup \1\n@{"
+ALIASES += endobject{1}="@}"
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
+# sources only. Doxygen will then generate output that is more tailored for C.
+# For instance, some of the names that are used will be different. The list
+# of all members will be omitted, etc.
+
+OPTIMIZE_OUTPUT_FOR_C  = YES
+
+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java
+# sources only. Doxygen will then generate output that is more tailored for
+# Java. For instance, namespaces will be presented as packages, qualified
+# scopes will look different, etc.
+
+OPTIMIZE_OUTPUT_JAVA   = NO
+
+# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
+# sources only. Doxygen will then generate output that is more tailored for
+# Fortran.
+
+OPTIMIZE_FOR_FORTRAN   = NO
+
+# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
+# sources. Doxygen will then generate output that is tailored for
+# VHDL.
+
+OPTIMIZE_OUTPUT_VHDL   = NO
+
+# Doxygen selects the parser to use depending on the extension of the files it
+# parses. With this tag you can assign which parser to use for a given extension.
+# Doxygen has a built-in mapping, but you can override or extend it using this
+# tag. The format is ext=language, where ext is a file extension, and language
+# is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C,
+# C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make
+# doxygen treat .inc files as Fortran files (default is PHP), and .f files as C
+# (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions
+# you also need to set FILE_PATTERNS otherwise the files are not read by doxygen.
+
+EXTENSION_MAPPING      =
+
+# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
+# to include (a tag file for) the STL sources as input, then you should
+# set this tag to YES in order to let doxygen match functions declarations and
+# definitions whose arguments contain STL classes (e.g. func(std::string); v.s.
+# func(std::string) {}). This also make the inheritance and collaboration
+# diagrams that involve STL classes more complete and accurate.
+
+BUILTIN_STL_SUPPORT    = NO
+
+# If you use Microsoft's C++/CLI language, you should set this option to YES to
+# enable parsing support.
+
+CPP_CLI_SUPPORT        = NO
+
+# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only.
+# Doxygen will parse them like normal C++ but will assume all classes use public
+# instead of private inheritance when no explicit protection keyword is present.
+
+SIP_SUPPORT            = NO
+
+# For Microsoft's IDL there are propget and propput attributes to indicate getter
+# and setter methods for a property. Setting this option to YES (the default)
+# will make doxygen to replace the get and set methods by a property in the
+# documentation. This will only work if the methods are indeed getting or
+# setting a simple type. If this is not the case, or you want to show the
+# methods anyway, you should set this option to NO.
+
+IDL_PROPERTY_SUPPORT   = YES
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
+# tag is set to YES, then doxygen will reuse the documentation of the first
+# member in the group (if any) for the other members of the group. By default
+# all members of a group must be documented explicitly.
+
+DISTRIBUTE_GROUP_DOC   = NO
+
+# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
+# the same type (for instance a group of public functions) to be put as a
+# subgroup of that type (e.g. under the Public Functions section). Set it to
+# NO to prevent subgrouping. Alternatively, this can be done per class using
+# the \nosubgrouping command.
+
+SUBGROUPING            = YES
+
+# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum
+# is documented as struct, union, or enum with the name of the typedef. So
+# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
+# with name TypeT. When disabled the typedef will appear as a member of a file,
+# namespace, or class. And the struct will be named TypeS. This can typically
+# be useful for C code in case the coding convention dictates that all compound
+# types are typedef'ed and only the typedef is referenced, never the tag name.
+
+TYPEDEF_HIDES_STRUCT   = YES
+
+# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to
+# determine which symbols to keep in memory and which to flush to disk.
+# When the cache is full, less often used symbols will be written to disk.
+# For small to medium size projects (<1000 input files) the default value is
+# probably good enough. For larger projects a too small cache size can cause
+# doxygen to be busy swapping symbols to and from disk most of the time
+# causing a significant performance penality.
+# If the system has enough physical memory increasing the cache will improve the
+# performance by keeping more symbols in memory. Note that the value works on
+# a logarithmic scale so increasing the size by one will rougly double the
+# memory usage. The cache size is given by this formula:
+# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0,
+# corresponding to a cache size of 2^16 = 65536 symbols
+
+SYMBOL_CACHE_SIZE      = 0
+
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+
+# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
+# documentation are documented, even if no documentation was available.
+# Private class members and static file members will be hidden unless
+# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
+
+EXTRACT_ALL            = NO
+
+# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
+# will be included in the documentation.
+
+EXTRACT_PRIVATE        = NO
+
+# If the EXTRACT_STATIC tag is set to YES all static members of a file
+# will be included in the documentation.
+
+EXTRACT_STATIC         = NO
+
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
+# defined locally in source files will be included in the documentation.
+# If set to NO only classes defined in header files are included.
+
+EXTRACT_LOCAL_CLASSES  = NO
+
+# This flag is only useful for Objective-C code. When set to YES local
+# methods, which are defined in the implementation section but not in
+# the interface are included in the documentation.
+# If set to NO (the default) only methods in the interface are included.
+
+EXTRACT_LOCAL_METHODS  = NO
+
+# If this flag is set to YES, the members of anonymous namespaces will be
+# extracted and appear in the documentation as a namespace called
+# 'anonymous_namespace{file}', where file will be replaced with the base
+# name of the file that contains the anonymous namespace. By default
+# anonymous namespace are hidden.
+
+EXTRACT_ANON_NSPACES   = NO
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
+# undocumented members of documented classes, files or namespaces.
+# If set to NO (the default) these members will be included in the
+# various overviews, but no documentation section is generated.
+# This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_MEMBERS     = YES
+
+# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
+# undocumented classes that are normally visible in the class hierarchy.
+# If set to NO (the default) these classes will be included in the various
+# overviews. This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_CLASSES     = YES
+
+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
+# friend (class|struct|union) declarations.
+# If set to NO (the default) these declarations will be included in the
+# documentation.
+
+HIDE_FRIEND_COMPOUNDS  = YES
+
+# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
+# documentation blocks found inside the body of a function.
+# If set to NO (the default) these blocks will be appended to the
+# function's detailed documentation block.
+
+HIDE_IN_BODY_DOCS      = NO
+
+# The INTERNAL_DOCS tag determines if documentation
+# that is typed after a \internal command is included. If the tag is set
+# to NO (the default) then the documentation will be excluded.
+# Set it to YES to include the internal documentation.
+
+INTERNAL_DOCS          = NO
+
+# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
+# file names in lower-case letters. If set to YES upper-case letters are also
+# allowed. This is useful if you have classes or files whose names only differ
+# in case and if your file system supports case sensitive file names. Windows
+# and Mac users are advised to set this option to NO.
+
+CASE_SENSE_NAMES       = YES
+
+# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
+# will show members with their full class and namespace scopes in the
+# documentation. If set to YES the scope will be hidden.
+
+HIDE_SCOPE_NAMES       = NO
+
+# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
+# will put a list of the files that are included by a file in the documentation
+# of that file.
+
+SHOW_INCLUDE_FILES     = NO
+
+# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen
+# will list include files with double quotes in the documentation
+# rather than with sharp brackets.
+
+FORCE_LOCAL_INCLUDES   = NO
+
+# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
+# is inserted in the documentation for inline members.
+
+INLINE_INFO            = YES
+
+# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
+# will sort the (detailed) documentation of file and class members
+# alphabetically by member name. If set to NO the members will appear in
+# declaration order.
+
+SORT_MEMBER_DOCS       = YES
+
+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
+# brief documentation of file, namespace and class members alphabetically
+# by member name. If set to NO (the default) the members will appear in
+# declaration order.
+
+SORT_BRIEF_DOCS        = NO
+
+# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen
+# will sort the (brief and detailed) documentation of class members so that
+# constructors and destructors are listed first. If set to NO (the default)
+# the constructors will appear in the respective orders defined by
+# SORT_MEMBER_DOCS and SORT_BRIEF_DOCS.
+# This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO
+# and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO.
+
+SORT_MEMBERS_CTORS_1ST = NO
+
+# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the
+# hierarchy of group names into alphabetical order. If set to NO (the default)
+# the group names will appear in their defined order.
+
+SORT_GROUP_NAMES       = NO
+
+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
+# sorted by fully-qualified names, including namespaces. If set to
+# NO (the default), the class list will be sorted only by class name,
+# not including the namespace part.
+# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
+# Note: This option applies only to the class list, not to the
+# alphabetical list.
+
+SORT_BY_SCOPE_NAME     = NO
+
+# The GENERATE_TODOLIST tag can be used to enable (YES) or
+# disable (NO) the todo list. This list is created by putting \todo
+# commands in the documentation.
+
+GENERATE_TODOLIST      = YES
+
+# The GENERATE_TESTLIST tag can be used to enable (YES) or
+# disable (NO) the test list. This list is created by putting \test
+# commands in the documentation.
+
+GENERATE_TESTLIST      = YES
+
+# The GENERATE_BUGLIST tag can be used to enable (YES) or
+# disable (NO) the bug list. This list is created by putting \bug
+# commands in the documentation.
+
+GENERATE_BUGLIST       = YES
+
+# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
+# disable (NO) the deprecated list. This list is created by putting
+# \deprecated commands in the documentation.
+
+GENERATE_DEPRECATEDLIST= YES
+
+# The ENABLED_SECTIONS tag can be used to enable conditional
+# documentation sections, marked by \if sectionname ... \endif.
+
+ENABLED_SECTIONS       =
+
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
+# the initial value of a variable or define consists of for it to appear in
+# the documentation. If the initializer consists of more lines than specified
+# here it will be hidden. Use a value of 0 to hide initializers completely.
+# The appearance of the initializer of individual variables and defines in the
+# documentation can be controlled using \showinitializer or \hideinitializer
+# command in the documentation regardless of this setting.
+
+MAX_INITIALIZER_LINES  = 30
+
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
+# at the bottom of the documentation of classes and structs. If set to YES the
+# list will mention the files that were used to generate the documentation.
+
+SHOW_USED_FILES        = YES
+
+# If the sources in your project are distributed over multiple directories
+# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy
+# in the documentation. The default is NO.
+
+SHOW_DIRECTORIES       = NO
+
+# Set the SHOW_FILES tag to NO to disable the generation of the Files page.
+# This will remove the Files entry from the Quick Index and from the
+# Folder Tree View (if specified). The default is YES.
+
+SHOW_FILES             = YES
+
+# Set the SHOW_NAMESPACES tag to NO to disable the generation of the
+# Namespaces page.
+# This will remove the Namespaces entry from the Quick Index
+# and from the Folder Tree View (if specified). The default is YES.
+
+SHOW_NAMESPACES        = YES
+
+# The FILE_VERSION_FILTER tag can be used to specify a program or script that
+# doxygen should invoke to get the current version for each file (typically from
+# the version control system). Doxygen will invoke the program by executing (via
+# popen()) the command <command> <input-file>, where <command> is the value of
+# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file
+# provided by doxygen. Whatever the program writes to standard output
+# is used as the file version. See the manual for examples.
+
+FILE_VERSION_FILTER    =
+
+# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
+# by doxygen. The layout file controls the global structure of the generated
+# output files in an output format independent way. The create the layout file
+# that represents doxygen's defaults, run doxygen with the -l option.
+# You can optionally specify a file name after the option, if omitted
+# DoxygenLayout.xml will be used as the name of the layout file.
+
+LAYOUT_FILE            =
+
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+
+# The QUIET tag can be used to turn on/off the messages that are generated
+# by doxygen. Possible values are YES and NO. If left blank NO is used.
+
+QUIET                  = NO
+
+# The WARNINGS tag can be used to turn on/off the warning messages that are
+# generated by doxygen. Possible values are YES and NO. If left blank
+# NO is used.
+
+WARNINGS               = YES
+
+# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
+# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
+# automatically be disabled.
+
+WARN_IF_UNDOCUMENTED   = YES
+
+# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
+# potential errors in the documentation, such as not documenting some
+# parameters in a documented function, or documenting parameters that
+# don't exist or using markup commands wrongly.
+
+WARN_IF_DOC_ERROR      = YES
+
+# This WARN_NO_PARAMDOC option can be abled to get warnings for
+# functions that are documented, but have no documentation for their parameters
+# or return value. If set to NO (the default) doxygen will only warn about
+# wrong or incomplete parameter documentation, but not about the absence of
+# documentation.
+
+WARN_NO_PARAMDOC       = NO
+
+# The WARN_FORMAT tag determines the format of the warning messages that
+# doxygen can produce. The string should contain the $file, $line, and $text
+# tags, which will be replaced by the file and line number from which the
+# warning originated and the warning text. Optionally the format may contain
+# $version, which will be replaced by the version of the file (if it could
+# be obtained via FILE_VERSION_FILTER)
+
+WARN_FORMAT            = "$file:$line: $text"
+
+# The WARN_LOGFILE tag can be used to specify a file to which warning
+# and error messages should be written. If left blank the output is written
+# to stderr.
+
+WARN_LOGFILE           =
+
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+
+# The INPUT tag can be used to specify the files and/or directories that contain
+# documented source files. You may enter file names like "myfile.cpp" or
+# directories like "/usr/src/myproject". Separate the files or directories
+# with spaces.
+
+INPUT                  = hierarchy.c ../src
+
+# This tag can be used to specify the character encoding of the source files
+# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
+# also the default input encoding. Doxygen uses libiconv (or the iconv built
+# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for
+# the list of possible encodings.
+
+INPUT_ENCODING         = UTF-8
+
+# If the value of the INPUT tag contains directories, you can use the
+# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
+# and *.h) to filter out the source-files in the directories. If left
+# blank the following patterns are tested:
+# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx
+# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90
+
+FILE_PATTERNS          =
+
+# The RECURSIVE tag can be used to turn specify whether or not subdirectories
+# should be searched for input files as well. Possible values are YES and NO.
+# If left blank NO is used.
+
+RECURSIVE              = NO
+
+# The EXCLUDE tag can be used to specify files and/or directories that should
+# excluded from the INPUT source files. This way you can easily exclude a
+# subdirectory from a directory tree whose root is specified with the INPUT tag.
+
+EXCLUDE                =
+
+# The EXCLUDE_SYMLINKS tag can be used select whether or not files or
+# directories that are symbolic links (a Unix filesystem feature) are excluded
+# from the input.
+
+EXCLUDE_SYMLINKS       = NO
+
+# If the value of the INPUT tag contains directories, you can use the
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
+# certain files from those directories. Note that the wildcards are matched
+# against the file with absolute path, so to exclude all test directories
+# for example use the pattern */test/*
+
+EXCLUDE_PATTERNS       =
+
+# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
+# (namespaces, classes, functions, etc.) that should be excluded from the
+# output. The symbol name can be a fully qualified name, a word, or if the
+# wildcard * is used, a substring. Examples: ANamespace, AClass,
+# AClass::ANamespace, ANamespace::*Test
+
+EXCLUDE_SYMBOLS        =
+
+# The EXAMPLE_PATH tag can be used to specify one or more files or
+# directories that contain example code fragments that are included (see
+# the \include command).
+
+EXAMPLE_PATH           =
+
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
+# and *.h) to filter out the source-files in the directories. If left
+# blank all files are included.
+
+EXAMPLE_PATTERNS       =
+
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
+# searched for input files to be used with the \include or \dontinclude
+# commands irrespective of the value of the RECURSIVE tag.
+# Possible values are YES and NO. If left blank NO is used.
+
+EXAMPLE_RECURSIVE      = NO
+
+# The IMAGE_PATH tag can be used to specify one or more files or
+# directories that contain image that are included in the documentation (see
+# the \image command).
+
+IMAGE_PATH             =
+
+# The INPUT_FILTER tag can be used to specify a program that doxygen should
+# invoke to filter for each input file. Doxygen will invoke the filter program
+# by executing (via popen()) the command <filter> <input-file>, where <filter>
+# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
+# input file. Doxygen will then use the output that the filter program writes
+# to standard output.
+# If FILTER_PATTERNS is specified, this tag will be
+# ignored.
+
+INPUT_FILTER           = share/doxfilter
+
+# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
+# basis.
+# Doxygen will compare the file name with each pattern and apply the
+# filter if there is a match.
+# The filters are a list of the form:
+# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
+# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER
+# is applied to all files.
+
+FILTER_PATTERNS        =
+
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
+# INPUT_FILTER) will be used to filter the input files when producing source
+# files to browse (i.e. when SOURCE_BROWSER is set to YES).
+
+FILTER_SOURCE_FILES    = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will
+# be generated. Documented entities will be cross-referenced with these sources.
+# Note: To get rid of all source code in the generated output, make sure also
+# VERBATIM_HEADERS is set to NO.
+
+SOURCE_BROWSER         = NO
+
+# Setting the INLINE_SOURCES tag to YES will include the body
+# of functions and classes directly in the documentation.
+
+INLINE_SOURCES         = NO
+
+# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
+# doxygen to hide any special comment blocks from generated source code
+# fragments. Normal C and C++ comments will always remain visible.
+
+STRIP_CODE_COMMENTS    = YES
+
+# If the REFERENCED_BY_RELATION tag is set to YES
+# then for each documented function all documented
+# functions referencing it will be listed.
+
+REFERENCED_BY_RELATION = NO
+
+# If the REFERENCES_RELATION tag is set to YES
+# then for each documented function all documented entities
+# called/used by that function will be listed.
+
+REFERENCES_RELATION    = NO
+
+# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
+# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
+# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
+# link to the source code.
+# Otherwise they will link to the documentation.
+
+REFERENCES_LINK_SOURCE = YES
+
+# If the USE_HTAGS tag is set to YES then the references to source code
+# will point to the HTML generated by the htags(1) tool instead of doxygen
+# built-in source browser. The htags tool is part of GNU's global source
+# tagging system (see http://www.gnu.org/software/global/global.html). You
+# will need version 4.8.6 or higher.
+
+USE_HTAGS              = NO
+
+# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
+# will generate a verbatim copy of the header file for each class for
+# which an include is specified. Set to NO to disable this.
+
+VERBATIM_HEADERS       = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
+# of all compounds will be generated. Enable this if the project
+# contains a lot of classes, structs, unions or interfaces.
+
+ALPHABETICAL_INDEX     = YES
+
+# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
+# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
+# in which this list will be split (can be a number in the range [1..20])
+
+COLS_IN_ALPHA_INDEX    = 5
+
+# In case all classes in a project start with a common prefix, all
+# classes will be put under the same header in the alphabetical index.
+# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
+# should be ignored while generating the index headers.
+
+IGNORE_PREFIX          = ftt_ Ftt gfs_ Gfs
+
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
+# generate HTML output.
+
+GENERATE_HTML          = YES
+
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `html' will be used as the default path.
+
+HTML_OUTPUT            = reference
+
+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
+# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
+# doxygen will generate files with .html extension.
+
+HTML_FILE_EXTENSION    = .html
+
+# The HTML_HEADER tag can be used to specify a personal HTML header for
+# each generated HTML page. If it is left blank doxygen will generate a
+# standard header.
+
+HTML_HEADER            =
+
+# The HTML_FOOTER tag can be used to specify a personal HTML footer for
+# each generated HTML page. If it is left blank doxygen will generate a
+# standard footer.
+
+HTML_FOOTER            =
+
+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
+# style sheet that is used by each HTML page. It can be used to
+# fine-tune the look of the HTML output. If the tag is left blank doxygen
+# will generate a default style sheet. Note that doxygen will try to copy
+# the style sheet file to the HTML output directory, so don't put your own
+# stylesheet in the HTML output directory as well, or it will be erased!
+
+HTML_STYLESHEET        =
+
+# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output.
+# Doxygen will adjust the colors in the stylesheet and background images
+# according to this color. Hue is specified as an angle on a colorwheel,
+# see http://en.wikipedia.org/wiki/Hue for more information.
+# For instance the value 0 represents red, 60 is yellow, 120 is green,
+# 180 is cyan, 240 is blue, 300 purple, and 360 is red again.
+# The allowed range is 0 to 359.
+
+HTML_COLORSTYLE_HUE    = 220
+
+# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of
+# the colors in the HTML output. For a value of 0 the output will use
+# grayscales only. A value of 255 will produce the most vivid colors.
+
+HTML_COLORSTYLE_SAT    = 100
+
+# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to
+# the luminance component of the colors in the HTML output. Values below
+# 100 gradually make the output lighter, whereas values above 100 make
+# the output darker. The value divided by 100 is the actual gamma applied,
+# so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2,
+# and 100 does not change the gamma.
+
+HTML_COLORSTYLE_GAMMA  = 80
+
+# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
+# page will contain the date and time when the page was generated. Setting
+# this to NO can help when comparing the output of multiple runs.
+
+HTML_TIMESTAMP         = YES
+
+# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
+# files or namespaces will be aligned in HTML using tables. If set to
+# NO a bullet list will be used.
+
+HTML_ALIGN_MEMBERS     = YES
+
+# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
+# documentation will contain sections that can be hidden and shown after the
+# page has loaded. For this to work a browser that supports
+# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox
+# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari).
+
+HTML_DYNAMIC_SECTIONS  = NO
+
+# If the GENERATE_DOCSET tag is set to YES, additional index files
+# will be generated that can be used as input for Apple's Xcode 3
+# integrated development environment, introduced with OSX 10.5 (Leopard).
+# To create a documentation set, doxygen will generate a Makefile in the
+# HTML output directory. Running make will produce the docset in that
+# directory and running "make install" will install the docset in
+# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find
+# it at startup.
+# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
+# for more information.
+
+GENERATE_DOCSET        = NO
+
+# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the
+# feed. A documentation feed provides an umbrella under which multiple
+# documentation sets from a single provider (such as a company or product suite)
+# can be grouped.
+
+DOCSET_FEEDNAME        = "Doxygen generated docs"
+
+# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that
+# should uniquely identify the documentation set bundle. This should be a
+# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen
+# will append .docset to the name.
+
+DOCSET_BUNDLE_ID       = org.doxygen.Project
+
+# When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify
+# the documentation publisher. This should be a reverse domain-name style
+# string, e.g. com.mycompany.MyDocSet.documentation.
+
+DOCSET_PUBLISHER_ID    = org.doxygen.Publisher
+
+# The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher.
+
+DOCSET_PUBLISHER_NAME  = Publisher
+
+# If the GENERATE_HTMLHELP tag is set to YES, additional index files
+# will be generated that can be used as input for tools like the
+# Microsoft HTML help workshop to generate a compiled HTML help file (.chm)
+# of the generated HTML documentation.
+
+GENERATE_HTMLHELP      = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
+# be used to specify the file name of the resulting .chm file. You
+# can add a path in front of the file if the result should not be
+# written to the html output directory.
+
+CHM_FILE               =
+
+# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
+# be used to specify the location (absolute path including file name) of
+# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
+# the HTML help compiler on the generated index.hhp.
+
+HHC_LOCATION           =
+
+# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
+# controls if a separate .chi index file is generated (YES) or that
+# it should be included in the master .chm file (NO).
+
+GENERATE_CHI           = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING
+# is used to encode HtmlHelp index (hhk), content (hhc) and project file
+# content.
+
+CHM_INDEX_ENCODING     =
+
+# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
+# controls whether a binary table of contents is generated (YES) or a
+# normal table of contents (NO) in the .chm file.
+
+BINARY_TOC             = NO
+
+# The TOC_EXPAND flag can be set to YES to add extra items for group members
+# to the contents of the HTML help documentation and to the tree view.
+
+TOC_EXPAND             = NO
+
+# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
+# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated
+# that can be used as input for Qt's qhelpgenerator to generate a
+# Qt Compressed Help (.qch) of the generated HTML documentation.
+
+GENERATE_QHP           = NO
+
+# If the QHG_LOCATION tag is specified, the QCH_FILE tag can
+# be used to specify the file name of the resulting .qch file.
+# The path specified is relative to the HTML output folder.
+
+QCH_FILE               =
+
+# The QHP_NAMESPACE tag specifies the namespace to use when generating
+# Qt Help Project output. For more information please see
+# http://doc.trolltech.com/qthelpproject.html#namespace
+
+QHP_NAMESPACE          = org.doxygen.Project
+
+# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating
+# Qt Help Project output. For more information please see
+# http://doc.trolltech.com/qthelpproject.html#virtual-folders
+
+QHP_VIRTUAL_FOLDER     = doc
+
+# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to
+# add. For more information please see
+# http://doc.trolltech.com/qthelpproject.html#custom-filters
+
+QHP_CUST_FILTER_NAME   =
+
+# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the
+# custom filter to add. For more information please see
+# <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters">
+# Qt Help Project / Custom Filters</a>.
+
+QHP_CUST_FILTER_ATTRS  =
+
+# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
+# project's
+# filter section matches.
+# <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes">
+# Qt Help Project / Filter Attributes</a>.
+
+QHP_SECT_FILTER_ATTRS  =
+
+# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can
+# be used to specify the location of Qt's qhelpgenerator.
+# If non-empty doxygen will try to run qhelpgenerator on the generated
+# .qhp file.
+
+QHG_LOCATION           =
+
+# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files
+#  will be generated, which together with the HTML files, form an Eclipse help
+# plugin. To install this plugin and make it available under the help contents
+# menu in Eclipse, the contents of the directory containing the HTML and XML
+# files needs to be copied into the plugins directory of eclipse. The name of
+# the directory within the plugins directory should be the same as
+# the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before
+# the help appears.
+
+GENERATE_ECLIPSEHELP   = NO
+
+# A unique identifier for the eclipse help plugin. When installing the plugin
+# the directory name containing the HTML and XML files should also have
+# this name.
+
+ECLIPSE_DOC_ID         = org.doxygen.Project
+
+# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
+# top of each HTML page. The value NO (the default) enables the index and
+# the value YES disables it.
+
+DISABLE_INDEX          = NO
+
+# This tag can be used to set the number of enum values (range [1..20])
+# that doxygen will group on one line in the generated HTML documentation.
+
+ENUM_VALUES_PER_LINE   = 4
+
+# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
+# structure should be generated to display hierarchical information.
+# If the tag value is set to YES, a side panel will be generated
+# containing a tree-like index structure (just like the one that
+# is generated for HTML Help). For this to work a browser that supports
+# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser).
+# Windows users are probably better off using the HTML help feature.
+
+GENERATE_TREEVIEW      = NO
+
+# By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories,
+# and Class Hierarchy pages using a tree view instead of an ordered list.
+
+USE_INLINE_TREES       = NO
+
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
+# used to set the initial width (in pixels) of the frame in which the tree
+# is shown.
+
+TREEVIEW_WIDTH         = 250
+
+# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open
+# links to external symbols imported via tag files in a separate window.
+
+EXT_LINKS_IN_WINDOW    = NO
+
+# Use this tag to change the font size of Latex formulas included
+# as images in the HTML documentation. The default is 10. Note that
+# when you change the font size after a successful doxygen run you need
+# to manually remove any form_*.png images from the HTML output directory
+# to force them to be regenerated.
+
+FORMULA_FONTSIZE       = 10
+
+# Use the FORMULA_TRANPARENT tag to determine whether or not the images
+# generated for formulas are transparent PNGs. Transparent PNGs are
+# not supported properly for IE 6.0, but are supported on all modern browsers.
+# Note that when changing this option you need to delete any form_*.png files
+# in the HTML output before the changes have effect.
+
+FORMULA_TRANSPARENT    = YES
+
+# When the SEARCHENGINE tag is enabled doxygen will generate a search box
+# for the HTML output. The underlying search engine uses javascript
+# and DHTML and should work on any modern browser. Note that when using
+# HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets
+# (GENERATE_DOCSET) there is already a search function so this one should
+# typically be disabled. For large projects the javascript based search engine
+# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution.
+
+SEARCHENGINE           = YES
+
+# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
+# implemented using a PHP enabled web server instead of at the web client
+# using Javascript. Doxygen will generate the search PHP script and index
+# file to put on the web server. The advantage of the server
+# based approach is that it scales better to large projects and allows
+# full text search. The disadvances is that it is more difficult to setup
+# and does not have live searching capabilities.
+
+SERVER_BASED_SEARCH    = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
+# generate Latex output.
+
+GENERATE_LATEX         = NO
+
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `latex' will be used as the default path.
+
+LATEX_OUTPUT           = latex
+
+# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
+# invoked. If left blank `latex' will be used as the default command name.
+# Note that when enabling USE_PDFLATEX this option is only used for
+# generating bitmaps for formulas in the HTML output, but not in the
+# Makefile that is written to the output directory.
+
+LATEX_CMD_NAME         = latex
+
+# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
+# generate index for LaTeX. If left blank `makeindex' will be used as the
+# default command name.
+
+MAKEINDEX_CMD_NAME     = makeindex
+
+# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
+# LaTeX documents. This may be useful for small projects and may help to
+# save some trees in general.
+
+COMPACT_LATEX          = NO
+
+# The PAPER_TYPE tag can be used to set the paper type that is used
+# by the printer. Possible values are: a4, a4wide, letter, legal and
+# executive. If left blank a4wide will be used.
+
+PAPER_TYPE             = a4wide
+
+# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
+# packages that should be included in the LaTeX output.
+
+EXTRA_PACKAGES         =
+
+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
+# the generated latex document. The header should contain everything until
+# the first chapter. If it is left blank doxygen will generate a
+# standard header. Notice: only use this tag if you know what you are doing!
+
+LATEX_HEADER           =
+
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
+# is prepared for conversion to pdf (using ps2pdf). The pdf file will
+# contain links (just like the HTML output) instead of page references
+# This makes the output suitable for online browsing using a pdf viewer.
+
+PDF_HYPERLINKS         = YES
+
+# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
+# plain latex in the generated Makefile. Set this option to YES to get a
+# higher quality PDF documentation.
+
+USE_PDFLATEX           = YES
+
+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
+# command to the generated LaTeX files. This will instruct LaTeX to keep
+# running if errors occur, instead of asking the user for help.
+# This option is also used when generating formulas in HTML.
+
+LATEX_BATCHMODE        = NO
+
+# If LATEX_HIDE_INDICES is set to YES then doxygen will not
+# include the index chapters (such as File Index, Compound Index, etc.)
+# in the output.
+
+LATEX_HIDE_INDICES     = NO
+
+# If LATEX_SOURCE_CODE is set to YES then doxygen will include
+# source code with syntax highlighting in the LaTeX output.
+# Note that which sources are shown also depends on other settings
+# such as SOURCE_BROWSER.
+
+LATEX_SOURCE_CODE      = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
+# The RTF output is optimized for Word 97 and may not look very pretty with
+# other RTF readers or editors.
+
+GENERATE_RTF           = NO
+
+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `rtf' will be used as the default path.
+
+RTF_OUTPUT             = rtf
+
+# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
+# RTF documents. This may be useful for small projects and may help to
+# save some trees in general.
+
+COMPACT_RTF            = NO
+
+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
+# will contain hyperlink fields. The RTF file will
+# contain links (just like the HTML output) instead of page references.
+# This makes the output suitable for online browsing using WORD or other
+# programs which support those fields.
+# Note: wordpad (write) and others do not support links.
+
+RTF_HYPERLINKS         = NO
+
+# Load stylesheet definitions from file. Syntax is similar to doxygen's
+# config file, i.e. a series of assignments. You only have to provide
+# replacements, missing definitions are set to their default value.
+
+RTF_STYLESHEET_FILE    =
+
+# Set optional variables used in the generation of an rtf document.
+# Syntax is similar to doxygen's config file.
+
+RTF_EXTENSIONS_FILE    =
+
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
+# generate man pages
+
+GENERATE_MAN           = NO
+
+# The MAN_OUTPUT tag is used to specify where the man pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `man' will be used as the default path.
+
+MAN_OUTPUT             = man
+
+# The MAN_EXTENSION tag determines the extension that is added to
+# the generated man pages (default is the subroutine's section .3)
+
+MAN_EXTENSION          = .3
+
+# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
+# then it will generate one additional man file for each entity
+# documented in the real man page(s). These additional files
+# only source the real man page, but without them the man command
+# would be unable to find the correct page. The default is NO.
+
+MAN_LINKS              = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_XML tag is set to YES Doxygen will
+# generate an XML file that captures the structure of
+# the code including all documentation.
+
+GENERATE_XML           = NO
+
+# The XML_OUTPUT tag is used to specify where the XML pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `xml' will be used as the default path.
+
+XML_OUTPUT             = xml
+
+# The XML_SCHEMA tag can be used to specify an XML schema,
+# which can be used by a validating XML parser to check the
+# syntax of the XML files.
+
+XML_SCHEMA             =
+
+# The XML_DTD tag can be used to specify an XML DTD,
+# which can be used by a validating XML parser to check the
+# syntax of the XML files.
+
+XML_DTD                =
+
+# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
+# dump the program listings (including syntax highlighting
+# and cross-referencing information) to the XML output. Note that
+# enabling this will significantly increase the size of the XML output.
+
+XML_PROGRAMLISTING     = YES
+
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
+# generate an AutoGen Definitions (see autogen.sf.net) file
+# that captures the structure of the code including all
+# documentation. Note that this feature is still experimental
+# and incomplete at the moment.
+
+GENERATE_AUTOGEN_DEF   = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_PERLMOD tag is set to YES Doxygen will
+# generate a Perl module file that captures the structure of
+# the code including all documentation. Note that this
+# feature is still experimental and incomplete at the
+# moment.
+
+GENERATE_PERLMOD       = NO
+
+# If the PERLMOD_LATEX tag is set to YES Doxygen will generate
+# the necessary Makefile rules, Perl scripts and LaTeX code to be able
+# to generate PDF and DVI output from the Perl module output.
+
+PERLMOD_LATEX          = NO
+
+# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
+# nicely formatted so it can be parsed by a human reader.
+# This is useful
+# if you want to understand what is going on.
+# On the other hand, if this
+# tag is set to NO the size of the Perl module output will be much smaller
+# and Perl will parse it just the same.
+
+PERLMOD_PRETTY         = YES
+
+# The names of the make variables in the generated doxyrules.make file
+# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.
+# This is useful so different doxyrules.make files included by the same
+# Makefile don't overwrite each other's variables.
+
+PERLMOD_MAKEVAR_PREFIX =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor
+#---------------------------------------------------------------------------
+
+# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
+# evaluate all C-preprocessor directives found in the sources and include
+# files.
+
+ENABLE_PREPROCESSING   = NO
+
+# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
+# names in the source code. If set to NO (the default) only conditional
+# compilation will be performed. Macro expansion can be done in a controlled
+# way by setting EXPAND_ONLY_PREDEF to YES.
+
+MACRO_EXPANSION        = NO
+
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
+# then the macro expansion is limited to the macros specified with the
+# PREDEFINED and EXPAND_AS_DEFINED tags.
+
+EXPAND_ONLY_PREDEF     = NO
+
+# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
+# in the INCLUDE_PATH (see below) will be search if a #include is found.
+
+SEARCH_INCLUDES        = YES
+
+# The INCLUDE_PATH tag can be used to specify one or more directories that
+# contain include files that are not input files but should be processed by
+# the preprocessor.
+
+INCLUDE_PATH           =
+
+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
+# patterns (like *.h and *.hpp) to filter out the header-files in the
+# directories. If left blank, the patterns specified with FILE_PATTERNS will
+# be used.
+
+INCLUDE_FILE_PATTERNS  =
+
+# The PREDEFINED tag can be used to specify one or more macro names that
+# are defined before the preprocessor is started (similar to the -D option of
+# gcc). The argument of the tag is a list of macros of the form: name
+# or name=definition (no spaces). If the definition and the = are
+# omitted =1 is assumed. To prevent a macro definition from being
+# undefined via #undef or recursively expanded use the := operator
+# instead of the = operator.
+
+PREDEFINED             =
+
+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
+# this tag can be used to specify a list of macro names that should be expanded.
+# The macro definition that is found in the sources will be used.
+# Use the PREDEFINED tag if you want to use a different macro definition.
+
+EXPAND_AS_DEFINED      =
+
+# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
+# doxygen's preprocessor will remove all function-like macros that are alone
+# on a line, have an all uppercase name, and do not end with a semicolon. Such
+# function macros are typically used for boiler-plate code, and will confuse
+# the parser if not removed.
+
+SKIP_FUNCTION_MACROS   = YES
+
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references
+#---------------------------------------------------------------------------
+
+# The TAGFILES option can be used to specify one or more tagfiles.
+# Optionally an initial location of the external documentation
+# can be added for each tagfile. The format of a tag file without
+# this location is as follows:
+#
+# TAGFILES = file1 file2 ...
+# Adding location for the tag files is done as follows:
+#
+# TAGFILES = file1=loc1 "file2 = loc2" ...
+# where "loc1" and "loc2" can be relative or absolute paths or
+# URLs. If a location is present for each tag, the installdox tool
+# does not have to be run to correct the links.
+# Note that each tag file must have a unique name
+# (where the name does NOT include the path)
+# If a tag file is not located in the directory in which doxygen
+# is run, you must also specify the path to the tagfile here.
+
+TAGFILES               =
+
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create
+# a tag file that is based on the input files it reads.
+
+GENERATE_TAGFILE       =
+
+# If the ALLEXTERNALS tag is set to YES all external classes will be listed
+# in the class index. If set to NO only the inherited external classes
+# will be listed.
+
+ALLEXTERNALS           = NO
+
+# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
+# in the modules index. If set to NO, only the current project's groups will
+# be listed.
+
+EXTERNAL_GROUPS        = YES
+
+# The PERL_PATH should be the absolute path and name of the perl script
+# interpreter (i.e. the result of `which perl').
+
+PERL_PATH              = /usr/bin/perl
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool
+#---------------------------------------------------------------------------
+
+# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
+# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base
+# or super classes. Setting the tag to NO turns the diagrams off. Note that
+# this option is superseded by the HAVE_DOT option below. This is only a
+# fallback. It is recommended to install and use dot, since it yields more
+# powerful graphs.
+
+CLASS_DIAGRAMS         = YES
+
+# You can define message sequence charts within doxygen comments using the \msc
+# command. Doxygen will then run the mscgen tool (see
+# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the
+# documentation. The MSCGEN_PATH tag allows you to specify the directory where
+# the mscgen tool resides. If left empty the tool is assumed to be found in the
+# default search path.
+
+MSCGEN_PATH            =
+
+# If set to YES, the inheritance and collaboration graphs will hide
+# inheritance and usage relations if the target is undocumented
+# or is not a class.
+
+HIDE_UNDOC_RELATIONS   = YES
+
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
+# available from the path. This tool is part of Graphviz, a graph visualization
+# toolkit from AT&T and Lucent Bell Labs. The other options in this section
+# have no effect if this option is set to NO (the default)
+
+HAVE_DOT               = YES
+
+# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is
+# allowed to run in parallel. When set to 0 (the default) doxygen will
+# base this on the number of processors available in the system. You can set it
+# explicitly to a value larger than 0 to get control over the balance
+# between CPU load and processing speed.
+
+DOT_NUM_THREADS        = 0
+
+# By default doxygen will write a font called FreeSans.ttf to the output
+# directory and reference it in all dot files that doxygen generates. This
+# font does not include all possible unicode characters however, so when you need
+# these (or just want a differently looking font) you can specify the font name
+# using DOT_FONTNAME. You need need to make sure dot is able to find the font,
+# which can be done by putting it in a standard location or by setting the
+# DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory
+# containing the font.
+
+DOT_FONTNAME           = FreeSans.ttf
+
+# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs.
+# The default size is 10pt.
+
+DOT_FONTSIZE           = 10
+
+# By default doxygen will tell dot to use the output directory to look for the
+# FreeSans.ttf font (which doxygen will put there itself). If you specify a
+# different font using DOT_FONTNAME you can set the path where dot
+# can find it using this tag.
+
+DOT_FONTPATH           =
+
+# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for each documented class showing the direct and
+# indirect inheritance relations. Setting this tag to YES will force the
+# the CLASS_DIAGRAMS tag to NO.
+
+CLASS_GRAPH            = YES
+
+# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for each documented class showing the direct and
+# indirect implementation dependencies (inheritance, containment, and
+# class references variables) of the class with other documented classes.
+
+COLLABORATION_GRAPH    = YES
+
+# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for groups, showing the direct groups dependencies
+
+GROUP_GRAPHS           = YES
+
+# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
+# collaboration diagrams in a style similar to the OMG's Unified Modeling
+# Language.
+
+UML_LOOK               = NO
+
+# If set to YES, the inheritance and collaboration graphs will show the
+# relations between templates and their instances.
+
+TEMPLATE_RELATIONS     = NO
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
+# tags are set to YES then doxygen will generate a graph for each documented
+# file showing the direct and indirect include dependencies of the file with
+# other documented files.
+
+INCLUDE_GRAPH          = YES
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
+# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
+# documented header file showing the documented files that directly or
+# indirectly include this file.
+
+INCLUDED_BY_GRAPH      = YES
+
+# If the CALL_GRAPH and HAVE_DOT options are set to YES then
+# doxygen will generate a call dependency graph for every global function
+# or class method. Note that enabling this option will significantly increase
+# the time of a run. So in most cases it will be better to enable call graphs
+# for selected functions only using the \callgraph command.
+
+CALL_GRAPH             = YES
+
+# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then
+# doxygen will generate a caller dependency graph for every global function
+# or class method. Note that enabling this option will significantly increase
+# the time of a run. So in most cases it will be better to enable caller
+# graphs for selected functions only using the \callergraph command.
+
+CALLER_GRAPH           = YES
+
+# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
+# will graphical hierarchy of all classes instead of a textual one.
+
+GRAPHICAL_HIERARCHY    = YES
+
+# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES
+# then doxygen will show the dependencies a directory has on other directories
+# in a graphical way. The dependency relations are determined by the #include
+# relations between the files in the directories.
+
+DIRECTORY_GRAPH        = YES
+
+# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
+# generated by dot. Possible values are png, jpg, or gif
+# If left blank png will be used.
+
+DOT_IMAGE_FORMAT       = png
+
+# The tag DOT_PATH can be used to specify the path where the dot tool can be
+# found. If left blank, it is assumed the dot tool can be found in the path.
+
+DOT_PATH               =
+
+# The DOTFILE_DIRS tag can be used to specify one or more directories that
+# contain dot files that are included in the documentation (see the
+# \dotfile command).
+
+DOTFILE_DIRS           =
+
+# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of
+# nodes that will be shown in the graph. If the number of nodes in a graph
+# becomes larger than this value, doxygen will truncate the graph, which is
+# visualized by representing a node as a red box. Note that doxygen if the
+# number of direct children of the root node in a graph is already larger than
+# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note
+# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
+
+DOT_GRAPH_MAX_NODES    = 50
+
+# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
+# graphs generated by dot. A depth value of 3 means that only nodes reachable
+# from the root by following a path via at most 3 edges will be shown. Nodes
+# that lay further from the root node will be omitted. Note that setting this
+# option to 1 or 2 may greatly reduce the computation time needed for large
+# code bases. Also note that the size of a graph can be further restricted by
+# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
+
+MAX_DOT_GRAPH_DEPTH    = 0
+
+# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
+# background. This is disabled by default, because dot on Windows does not
+# seem to support this out of the box. Warning: Depending on the platform used,
+# enabling this option may lead to badly anti-aliased labels on the edges of
+# a graph (i.e. they become hard to read).
+
+DOT_TRANSPARENT        = NO
+
+# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
+# files in one run (i.e. multiple -o and -T options on the command line). This
+# makes dot run faster, but since only newer versions of dot (>1.8.10)
+# support this, this feature is disabled by default.
+
+DOT_MULTI_TARGETS      = YES
+
+# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
+# generate a legend page explaining the meaning of the various boxes and
+# arrows in the dot generated graphs.
+
+GENERATE_LEGEND        = YES
+
+# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
+# remove the intermediate dot files that are used to generate
+# the various graphs.
+
+DOT_CLEANUP            = YES
diff --git a/doc/examples/Makefile.am b/doc/examples/Makefile.am
index d891767..1377926 100644
--- a/doc/examples/Makefile.am
+++ b/doc/examples/Makefile.am
@@ -1,49 +1,81 @@
 ## Process this file with automake to produce Makefile.in
 
+AUTOMAKE_OPTIONS = parallel-tests
+
 EXAMPLES = \
 	cylinder \
 	rt \
 	boussinesq \
 	tangaroa \
 	logo \
+	column \
 	tides \
 	ship \
+	forcedturbulence \
 	garden \
 	dam \
-	hump
+	hump \
+	monai \
+	tsunami \
+	cyclone \
+	plateau \
+	atomisation
+
+WEBROOT = /var/www/gerris
 
 EXTRA_DIST = \
 	template.tex \
+	examples.bib \
 	gfs2tex.py \
 	gfs2tex \
 	depend.py \
 	test.py \
 	Makefile.deps \
 	crossref.sh.in \
-	gfsxref
-
-TESTS = test.sh
-
-test.sh: $(EXAMPLES)
-	@echo "python test.py $(EXAMPLES)" > test.sh
-	@chmod +x test.sh
+	gfsxref \
+	gfs-mode.el \
+	modulesyms.sh \
+	gfs.sty gfs.hva kaltura.sh \
+	gfs.php.sh
 
 bin_SCRIPTS = \
 	gfs2doc gfs-highlight gfsxref
 
 BUILT_SOURCES= \
-	gfs2doc gfs-highlight gfs.lang gerris.dic
+	gfs2doc gfs-highlight gfs.lang gerris.dic gfs-keywords.el gfs.php
 
 CLEANFILES = $(BUILT_SOURCES) Makefile.deps
 
 pkglib_DATA = gfs2tex.py
-pkgdata_DATA = gfs.lang gerris.dic
-
-gfs.lang: classes
-	$(srcdir)/classes > gfs.lang
-
-gerris.dic: classes
-	$(srcdir)/classes | awk '$$1 ~ /gfs_keyword/ {print $$3}' | sed 's/"//g' > gerris.dic
+pkgdata_DATA = gfs.lang gerris.dic gfs-keywords.el gfs-mode.el gfs.sty gfs.hva kaltura.sh gfs.php
+
+gerris.dic: classes modulesyms.sh $(top_srcdir)/modules/Makefile.am modules.list
+	($(srcdir)/classes && sh $(srcdir)/modulesyms.sh $(top_srcdir)/modules $(pkglibdir)) | sort > gerris.dic
+
+gfs.lang: gerris.dic
+	echo "# Language file for source-highlight" > gfs.lang
+	echo "# Generated automatically by classes.c" >> gfs.lang
+	awk '{ printf ("gfs_keyword = \"%s\"\n", $$1) }' < gerris.dic >> gfs.lang
+	echo "include \"cpp.lang\"" >> gfs.lang
+	echo "comment start \"#\"" >> gfs.lang
+	echo "redef preproc = \"C preprocessor command is not compatible with the use of # as comment character in GTS\"" >> gfs.lang
+
+modules.list: modules $(top_srcdir)/modules/Makefile.am
+	$(srcdir)/modules $(top_srcdir)/modules/*.la $(pkglibdir)/*.so | sort | uniq > modules.list
+
+gfs-keywords.el: gerris.dic modules.list
+	echo "(defvar gfs-abbrevs '(" > gfs-keywords.el
+	awk '{ printf ("\"%s\"\n", $$1) }' < gerris.dic >> gfs-keywords.el
+	echo ")" >> gfs-keywords.el
+	echo "\"Gerris keywords automatically generated by classes.c.\")" >> gfs-keywords.el
+	echo "(defvar gfs-modules '(" >> gfs-keywords.el
+	awk '{ printf ("\"%s\"\n", $$1) }' < modules.list >> gfs-keywords.el
+	echo ")" >> gfs-keywords.el
+	echo "\"Gerris modules automatically generated by modules.c.\")" >> gfs-keywords.el
+	echo "(provide 'gfs-keywords)" >> gfs-keywords.el
+
+gfs.php: gerris.dic modules.list gfs.php.sh
+	sh gfs.php.sh > gfs.php
 
 gfs2doc: gfs2doc.in
 
@@ -65,15 +97,17 @@ examples: examples.dvi crossref.sh
 ##	for f in *.html; do konwert iso1-utf8 < $$f > $(DOC)/$$f; rm -f $$f; done
 	mv -f *.html $(DOC)
 	cat $(DOC).css ../share/darcs.css > $(DOC)/$(DOC).css
+	for f in $(DOC)/*.html; do sh kaltura.sh $$f; done
 	sh ../share/fixnav.sh $(DOC)
 	cp -f ../share/contents.png ../share/next.png ../share/prev.png $(DOC)
 	rm -f *_motif.gif $(DOC).h{tml,aux,ind,toc} $(DOC).image.tex $(DOC).css
-	sh ./crossref.sh --url=http://gfs.sourceforge.net/examples/examples $(EXAMPLES)
+	sh ./crossref.sh --url=http://gerris.dalembert.upmc.fr/gerris/examples/examples $(EXAMPLES)
 	mv references examples
 
-examples.dvi: examples.tex
-	latex -interaction=nonstopmode examples.tex > /dev/null 2>&1
-	latex -interaction=nonstopmode examples.tex > /dev/null 2>&1
+examples.dvi: examples.tex examples.bib
+	- latex -interaction=nonstopmode examples.tex > /dev/null 2>&1
+	bibtex examples
+	- latex -interaction=nonstopmode examples.tex > /dev/null 2>&1
 	latex -interaction=nonstopmode examples.tex
 
 examples.pdf: examples.dvi
@@ -84,21 +118,30 @@ examples.pdf: examples.dvi
 examples.tex: template.tex Makefile.deps gfs2tex gfs2tex.py
 	rm -r -f examples
 	python gfs2tex $(EXAMPLES)
-	sed "s/GFS_VERSION/`$(top_srcdir)/src/gerris2D -V 2>&1 | awk '{ if ($$5 == "version") print $$6}'`/g" < template.tex | sed 's/\\today/'"`date +\"%B %e, %Y\"`/g" > examples.tex
+	sed "s/GFS_VERSION/`$(top_srcdir)/src/gerris2D -V 2>&1 | head -1 | cut -d' ' -f6-`/g" < template.tex | sed 's/\\today/'"`date +\"%B %e, %Y\"`/g" > examples.tex
 
-Makefile.deps: Makefile depend.py
+Makefile.deps: depend.py Makefile.am
 	python depend.py $(EXAMPLES) > Makefile.deps
 
--include Makefile.deps
+include Makefile.deps
 
 examples.tar.gz: examples.pdf examples $(DOCS)
 	tar czf examples.tar.gz examples $(DOCS)
+	rm -r -f examples
 
 INCLUDES = -I$(top_srcdir)/src -I$(includedir) -DG_LOG_DOMAIN=\"Gfs-tools\"\
             $(GTS_CFLAGS)
 
-noinst_PROGRAMS = classes
+noinst_PROGRAMS = classes modules
 
 classes: classes.c $(top_srcdir)/src/init.c
 	$(LIBTOOL) --mode=link $(CC) $(AM_CFLAGS) $(INCLUDES) -DFTT_2D=1 \
 	classes.c -o classes $(GFS2D_LIBS)
+
+modules: modules.c
+	$(LIBTOOL) --mode=link $(CC) $(AM_CFLAGS) $(INCLUDES) -DFTT_2D=1 \
+	modules.c -o modules $(GFS2D_LIBS)
+
+publish: examples.tar.gz
+	cp examples.tar.gz $(WEBROOT)/examples
+	cd $(WEBROOT)/examples && tar xzf examples.tar.gz && rm -f examples.tar.gz
diff --git a/doc/examples/Makefile.deps b/doc/examples/Makefile.deps
index 913b020..b50167e 100644
--- a/doc/examples/Makefile.deps
+++ b/doc/examples/Makefile.deps
@@ -2,10 +2,10 @@ DOCS = \
 	cylinder/cylinder.gfs.html\
 	cylinder/t.mpg\
 	cylinder/vort.mpg\
-	cylinder/heated/heated.gfs.html\
-	cylinder/heated/t.mpg\
 	cylinder/parallel/parallel.gfs.html\
 	cylinder/parallel/pid.mpg\
+	cylinder/heated/heated.gfs.html\
+	cylinder/heated/t.mpg\
 	rt/rt.gfs.html\
 	rt/t.mpg\
 	rt/vort.mpg\
@@ -15,39 +15,218 @@ DOCS = \
 	tangaroa/sections.mpg\
 	logo/logo.gfs.html\
 	logo/logo.mpg\
+	logo/logo.png\
+	column/column.gfs.html\
+	column/movie.ogv\
 	tides/tides.gfs.html\
 	ship/ship.gfs.html\
 	ship/closeup.mpg\
+	forcedturbulence/forcedturbulence.gfs.html\
+	forcedturbulence/multiview.mpg\
 	garden/garden.gfs.html\
 	dam/dam.gfs.html\
 	hump/hump.gfs.html\
 	hump/hump.mpg\
+	monai/monai.gfs.html\
+	monai/monai.mpg\
+	monai/comparison.mp4\
+	tsunami/tsunami.gfs.html\
+	tsunami/h.mpg\
+	tsunami/level.mpg\
+	cyclone/cyclone.gfs.html\
+	plateau/plateau.gfs.html\
+	plateau/plateau.ogv\
+	plateau/white.ogv\
+	plateau/closeup.ogv\
+	plateau/plateau.png\
+	plateau/white.png\
+	plateau/closeup.png\
+	atomisation/atomisation.gfs.html\
+	atomisation/jet.ogv\
+	atomisation/back.ogv\
+	atomisation/jet.png\
+	atomisation/back.png\
 	cylinder/cylinder.gfs\
-	cylinder/heated/heated.gfs\
 	cylinder/parallel/parallel.gfs\
+	cylinder/parallel/parallel.sh\
+	cylinder/parallel/pid.gfv\
+	cylinder/heated/heated.gfs\
 	rt/rt.gfs\
+	rt/rt.gfv\
 	boussinesq/boussinesq.gfs\
+	boussinesq/boussinesq.gfv\
 	tangaroa/tangaroa.gfs\
+	tangaroa/tangaroa.gts\
+	tangaroa/sections.gfv\
 	logo/logo.gfs\
+	logo/logo.gfv\
+	column/column.gfs\
+	column/comparison.plot\
+	column/column.gfv\
+	column/grains.tgz\
+	column/movie.gfv\
 	tides/tides.gfs\
+	tides/tides.sh\
+	tides/bathymetry\
+	tides/coefficients\
+	tides/amplitude.gfv\
+	tides/ellipses.gfv\
+	tides/phase.gfv\
+	tides/residual.gfv\
+	tides/tides.gfv\
 	ship/ship.gfs\
+	ship/closeup.gfv\
+	ship/front.gfv\
+	ship/comparison.gfv\
+	ship/tank-data.png\
+	forcedturbulence/forcedturbulence.gfs\
+	forcedturbulence/spectral.dat\
+	forcedturbulence/multiview.gfv\
 	garden/garden.gfs\
+	garden/garden.sh\
+	garden/end.gfv\
+	garden/mesh.gfv\
 	dam/dam.gfs\
-	hump/hump.gfs
+	dam/dam.plot\
+	hump/hump.gfs\
+	hump/hump.gfv\
+	hump/isolines.gfv\
+	hump/cells.gfv\
+	monai/monai.gfs\
+	monai/monai.sh\
+	monai/3D.gfv\
+	monai/leveque.gfv\
+	monai/mesh.gfv\
+	monai/overhead.gfv\
+	monai/probe.gfv\
+	tsunami/tsunami.gfs\
+	tsunami/output.gfs\
+	tsunami/tsunami.gfv\
+	tsunami/h.gfv\
+	tsunami/level.gfv\
+	tsunami/hmax.gfv\
+	tsunami/hmax-detail.gfv\
+	tsunami/hanires.txt\
+	tsunami/diegres.txt\
+	tsunami/maleres.txt\
+	tsunami/colores.txt\
+	tsunami/ganares.txt\
+	tsunami/jason.xy\
+	tsunami/jasonres.txt\
+	cyclone/cyclone.gfs\
+	cyclone/cyclone.gfv\
+	cyclone/hs.gfv\
+	cyclone/mesh.gfv\
+	cyclone/shifted.gfv\
+	plateau/plateau.gfs\
+	plateau/plateau.gfv\
+	plateau/white.gfv\
+	plateau/closeup.gfv\
+	atomisation/atomisation.gfs\
+	atomisation/atomisation.sh\
+	atomisation/jet.gfv\
+	atomisation/back.gfv
 
 EXTRA_DIST += \
 	cylinder/cylinder.gfs\
-	cylinder/heated/heated.gfs\
 	cylinder/parallel/parallel.gfs\
+	cylinder/parallel/parallel.sh\
+	cylinder/parallel/pid.gfv\
+	cylinder/heated/heated.gfs\
 	rt/rt.gfs\
+	rt/rt.gfv\
 	boussinesq/boussinesq.gfs\
+	boussinesq/boussinesq.gfv\
 	tangaroa/tangaroa.gfs\
+	tangaroa/tangaroa.gts\
+	tangaroa/sections.gfv\
 	logo/logo.gfs\
+	logo/logo.gfv\
+	column/column.gfs\
+	column/comparison.plot\
+	column/column.gfv\
+	column/grains.tgz\
+	column/movie.gfv\
 	tides/tides.gfs\
+	tides/tides.sh\
+	tides/bathymetry\
+	tides/coefficients\
+	tides/amplitude.gfv\
+	tides/ellipses.gfv\
+	tides/phase.gfv\
+	tides/residual.gfv\
+	tides/tides.gfv\
 	ship/ship.gfs\
+	ship/closeup.gfv\
+	ship/front.gfv\
+	ship/comparison.gfv\
+	ship/tank-data.png\
+	forcedturbulence/forcedturbulence.gfs\
+	forcedturbulence/spectral.dat\
+	forcedturbulence/multiview.gfv\
 	garden/garden.gfs\
+	garden/garden.sh\
+	garden/end.gfv\
+	garden/mesh.gfv\
 	dam/dam.gfs\
-	hump/hump.gfs
+	dam/dam.plot\
+	hump/hump.gfs\
+	hump/hump.gfv\
+	hump/isolines.gfv\
+	hump/cells.gfv\
+	monai/monai.gfs\
+	monai/monai.sh\
+	monai/3D.gfv\
+	monai/leveque.gfv\
+	monai/mesh.gfv\
+	monai/overhead.gfv\
+	monai/probe.gfv\
+	tsunami/tsunami.gfs\
+	tsunami/output.gfs\
+	tsunami/tsunami.gfv\
+	tsunami/h.gfv\
+	tsunami/level.gfv\
+	tsunami/hmax.gfv\
+	tsunami/hmax-detail.gfv\
+	tsunami/hanires.txt\
+	tsunami/diegres.txt\
+	tsunami/maleres.txt\
+	tsunami/colores.txt\
+	tsunami/ganares.txt\
+	tsunami/jason.xy\
+	tsunami/jasonres.txt\
+	cyclone/cyclone.gfs\
+	cyclone/cyclone.gfv\
+	cyclone/hs.gfv\
+	cyclone/mesh.gfv\
+	cyclone/shifted.gfv\
+	plateau/plateau.gfs\
+	plateau/plateau.gfv\
+	plateau/white.gfv\
+	plateau/closeup.gfv\
+	atomisation/atomisation.gfs\
+	atomisation/atomisation.sh\
+	atomisation/jet.gfv\
+	atomisation/back.gfv
+
+TESTS = \
+	cylinder.sh\
+	rt.sh\
+	boussinesq.sh\
+	tangaroa.sh\
+	logo.sh\
+	column.sh\
+	tides.sh\
+	ship.sh\
+	forcedturbulence.sh\
+	garden.sh\
+	dam.sh\
+	hump.sh\
+	monai.sh\
+	tsunami.sh\
+	cyclone.sh\
+	plateau.sh\
+	atomisation.sh
 
 examples.tex: \
 	cylinder/cylinder.gfs\
@@ -55,13 +234,13 @@ examples.tex: \
 	cylinder/vort.mpg\
 	cylinder/t.eps\
 	cylinder/vort.eps\
-	cylinder/heated/heated.gfs\
-	cylinder/heated/t.mpg\
-	cylinder/heated/t.eps\
 	cylinder/parallel/parallel.gfs\
 	cylinder/parallel/pid.mpg\
 	cylinder/parallel/pid.eps\
 	cylinder/parallel/balance.eps\
+	cylinder/heated/heated.gfs\
+	cylinder/heated/t.mpg\
+	cylinder/heated/t.eps\
 	rt/rt.gfs\
 	rt/t.mpg\
 	rt/vort.mpg\
@@ -82,6 +261,15 @@ examples.tex: \
 	logo/logo.mpg\
 	logo/logo.png\
 	logo/logo.eps\
+	column/column.gfs\
+	column/comparison-0.eps\
+	column/comparison-0.66.eps\
+	column/comparison-0.95.eps\
+	column/comparison-1.24.eps\
+	column/comparison-1.52.eps\
+	column/comparison-2.28.eps\
+	column/movie.eps\
+	column/movie.ogv\
 	tides/tides.gfs\
 	tides/a0.eps\
 	tides/amplitude.eps\
@@ -95,6 +283,13 @@ examples.tex: \
 	ship/front.eps\
 	ship/f.eps\
 	ship/comparison.eps\
+	forcedturbulence/forcedturbulence.gfs\
+	forcedturbulence/multiview.mpg\
+	forcedturbulence/multiview.eps\
+	forcedturbulence/Energy.eps\
+	forcedturbulence/Dissipation.eps\
+	forcedturbulence/Reynolds.eps\
+	forcedturbulence/size.eps\
 	garden/garden.gfs\
 	garden/end.eps\
 	garden/mesh.eps\
@@ -113,4 +308,67 @@ examples.tex: \
 	hump/iso-1.2.eps\
 	hump/iso-1.8.eps\
 	hump/hump.eps\
-	hump/hump.mpg
+	hump/hump.mpg\
+	monai/monai.gfs\
+	monai/monai.mpg\
+	monai/monai.eps\
+	monai/fig4-10.eps\
+	monai/mesh-10.eps\
+	monai/fig4-12.eps\
+	monai/mesh-12.eps\
+	monai/fig4-14.eps\
+	monai/mesh-14.eps\
+	monai/fig4-16.eps\
+	monai/mesh-16.eps\
+	monai/fig4-18.eps\
+	monai/mesh-18.eps\
+	monai/fig4-20.eps\
+	monai/mesh-20.eps\
+	monai/p5.eps\
+	monai/p7.eps\
+	monai/p9.eps\
+	monai/comparison.eps\
+	monai/comparison.mp4\
+	tsunami/tsunami.gfs\
+	tsunami/h.eps\
+	tsunami/level.eps\
+	tsunami/h.mpg\
+	tsunami/level.mpg\
+	tsunami/hmax.eps\
+	tsunami/hmax-detail.eps\
+	tsunami/hani.eps\
+	tsunami/dieg.eps\
+	tsunami/male.eps\
+	tsunami/colo.eps\
+	tsunami/gana.eps\
+	tsunami/jason.eps\
+	cyclone/cyclone.gfs\
+	cyclone/hs-12.eps\
+	cyclone/hs-36.eps\
+	cyclone/mesh-12.eps\
+	cyclone/mesh-36.eps\
+	cyclone/hs-24.eps\
+	cyclone/hs-48.eps\
+	cyclone/mesh-24.eps\
+	cyclone/mesh-48.eps\
+	cyclone/hsmax.eps\
+	cyclone/shifted.eps\
+	plateau/plateau.gfs\
+	plateau/plateau.ogv\
+	plateau/white.ogv\
+	plateau/closeup.ogv\
+	plateau/plateau.png\
+	plateau/white.png\
+	plateau/closeup.png\
+	plateau/plateau.eps\
+	plateau/white.eps\
+	plateau/closeup.eps\
+	plateau/size.eps\
+	atomisation/atomisation.gfs\
+	atomisation/jet.ogv\
+	atomisation/back.ogv\
+	atomisation/jet.eps\
+	atomisation/jet.png\
+	atomisation/back.eps\
+	atomisation/back.png\
+	atomisation/balance.eps
diff --git a/doc/examples/Makefile.in b/doc/examples/Makefile.in
index 8782150..6bca784 100644
--- a/doc/examples/Makefile.in
+++ b/doc/examples/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11 from Makefile.am.
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -36,11 +36,11 @@ PRE_UNINSTALL = :
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
-noinst_PROGRAMS = classes$(EXEEXT)
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.deps \
+	$(srcdir)/Makefile.in $(srcdir)/crossref.sh.in \
+	$(srcdir)/gfs-highlight.in $(srcdir)/gfs2doc.in
+noinst_PROGRAMS = classes$(EXEEXT) modules$(EXEEXT)
 subdir = doc/examples
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-	$(srcdir)/crossref.sh.in $(srcdir)/gfs-highlight.in \
-	$(srcdir)/gfs2doc.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
 	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
@@ -53,13 +53,12 @@ CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES = gfs2doc gfs-highlight crossref.sh
 CONFIG_CLEAN_VPATH_FILES =
 PROGRAMS = $(noinst_PROGRAMS)
-am_classes_OBJECTS = classes-classes.$(OBJEXT) classes-init.$(OBJEXT)
-classes_OBJECTS = $(am_classes_OBJECTS)
-am__DEPENDENCIES_1 =
-classes_DEPENDENCIES = $(am__DEPENDENCIES_1)
-classes_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=link $(CCLD) $(classes_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
-	$(LDFLAGS) -o $@
+classes_SOURCES = classes.c
+classes_OBJECTS = classes.$(OBJEXT)
+classes_LDADD = $(LDADD)
+modules_SOURCES = modules.c
+modules_OBJECTS = modules.$(OBJEXT)
+modules_LDADD = $(LDADD)
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
 am__vpath_adj = case $$p in \
     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
@@ -97,13 +96,62 @@ CCLD = $(CC)
 LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
 	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
 	$(LDFLAGS) -o $@
-SOURCES = $(classes_SOURCES)
-DIST_SOURCES = $(classes_SOURCES)
+SOURCES = classes.c modules.c
+DIST_SOURCES = classes.c modules.c
 DATA = $(pkgdata_DATA) $(pkglib_DATA)
 ETAGS = etags
 CTAGS = ctags
 am__tty_colors = \
 red=; grn=; lgn=; blu=; std=
+# Restructured Text title and section.
+am__rst_title = sed 's/.*/   &   /;h;s/./=/g;p;x;p;g;p;s/.*//'
+am__rst_section = sed 'p;s/./=/g;p;g'
+# Put stdin (possibly several lines separated by ".  ") in a box.
+am__text_box = $(AWK) '{				\
+  n = split($$0, lines, "\\.  "); max = 0;		\
+  for (i = 1; i <= n; ++i)				\
+    if (max < length(lines[i]))				\
+      max = length(lines[i]);				\
+  for (i = 0; i < max; ++i) line = line "=";		\
+  print line;						\
+  for (i = 1; i <= n; ++i) if (lines[i]) print lines[i];\
+  print line;						\
+}'
+# Solaris 10 'make', and several other traditional 'make' implementations,
+# pass "-e" to $(SHELL).  This contradicts POSIX.  Work around the problem
+# by disabling -e (using the XSI extension "set +e") if it's set.
+am__sh_e_setup = case $$- in *e*) set +e;; esac
+# To be inserted before the command running the test.  Creates the
+# directory for the log if needed.  Stores in $dir the directory
+# containing $f, in $tst the test, in $log the log, and passes
+# TESTS_ENVIRONMENT.  Save and restore TERM around use of
+# TESTS_ENVIRONMENT, in case that unsets it.
+am__check_pre = \
+$(am__sh_e_setup);					\
+$(am__vpath_adj_setup) $(am__vpath_adj)			\
+srcdir=$(srcdir); export srcdir;			\
+rm -f $@-t;						\
+trap 'st=$$?; rm -f '\''$(abs_builddir)/$@-t'\''; (exit $$st); exit $$st' \
+  1 2 13 15;						\
+am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;		\
+test "x$$am__odir" = x. || $(MKDIR_P) "$$am__odir" || exit $$?;	\
+if test -f "./$$f"; then dir=./;			\
+elif test -f "$$f"; then dir=;				\
+else dir="$(srcdir)/"; fi;				\
+tst=$$dir$$f; log='$@'; __SAVED_TERM=$$TERM;		\
+$(TESTS_ENVIRONMENT)
+RECHECK_LOGS = $(TEST_LOGS)
+AM_RECURSIVE_TARGETS = check check-html recheck recheck-html
+TEST_SUITE_LOG = test-suite.log
+TEST_SUITE_HTML = $(TEST_SUITE_LOG:.log=.html)
+TEST_EXTENSIONS = @EXEEXT@ .test
+LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS)
+am__test_logs1 = $(TESTS:=.log)
+am__test_logs2 = $(am__test_logs1:@EXEEXT at .log=.log)
+TEST_LOGS = $(am__test_logs2:.test.log=.log)
+TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
+	$(TEST_LOG_FLAGS)
+TEST_LOGS_TMP = $(TEST_LOGS:.log=.log-t)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
@@ -130,9 +178,10 @@ ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
 F77 = @F77@
+FC = @FC@
+FCFLAGS = @FCFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
-GFS2D3_LIBS = @GFS2D3_LIBS@
 GFS2D_LIBS = @GFS2D_LIBS@
 GFS3D_LIBS = @GFS3D_LIBS@
 GFS_COMPILATION_FLAGS = @GFS_COMPILATION_FLAGS@
@@ -167,6 +216,7 @@ LT_RELEASE = @LT_RELEASE@
 LT_REVISION = @LT_REVISION@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MODULES = @MODULES@
 NM = @NM@
@@ -174,6 +224,8 @@ NMEDIT = @NMEDIT@
 NO_UNDEFINED = @NO_UNDEFINED@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
+ODE_CFLAGS = @ODE_CFLAGS@
+ODE_LIBS = @ODE_LIBS@
 OTOOL = @OTOOL@
 OTOOL64 = @OTOOL64@
 PACKAGE = @PACKAGE@
@@ -195,9 +247,11 @@ abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
 ac_ct_F77 = @ac_ct_F77@
+ac_ct_FC = @ac_ct_FC@
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
 am__quote = @am__quote@
@@ -234,9 +288,9 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
+ode = @ode@
 oldincludedir = @oldincludedir@
 pdfdir = @pdfdir@
 prefix = @prefix@
@@ -251,52 +305,226 @@ top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 use_mpicc = @use_mpicc@
+AUTOMAKE_OPTIONS = parallel-tests
 EXAMPLES = \
 	cylinder \
 	rt \
 	boussinesq \
 	tangaroa \
 	logo \
+	column \
 	tides \
 	ship \
+	forcedturbulence \
 	garden \
 	dam \
-	hump
-
-EXTRA_DIST = \
-	template.tex \
-	gfs2tex.py \
-	gfs2tex \
-	depend.py \
-	test.py \
-	Makefile.deps \
-	crossref.sh.in \
-	gfsxref
-
-TESTS = test.sh
+	hump \
+	monai \
+	tsunami \
+	cyclone \
+	plateau \
+	atomisation
+
+WEBROOT = /var/www/gerris
+EXTRA_DIST = template.tex examples.bib gfs2tex.py gfs2tex depend.py \
+	test.py Makefile.deps crossref.sh.in gfsxref gfs-mode.el \
+	modulesyms.sh gfs.sty gfs.hva kaltura.sh gfs.php.sh \
+	cylinder/cylinder.gfs cylinder/parallel/parallel.gfs \
+	cylinder/parallel/parallel.sh cylinder/parallel/pid.gfv \
+	cylinder/heated/heated.gfs rt/rt.gfs rt/rt.gfv \
+	boussinesq/boussinesq.gfs boussinesq/boussinesq.gfv \
+	tangaroa/tangaroa.gfs tangaroa/tangaroa.gts \
+	tangaroa/sections.gfv logo/logo.gfs logo/logo.gfv \
+	column/column.gfs column/comparison.plot column/column.gfv \
+	column/grains.tgz column/movie.gfv tides/tides.gfs \
+	tides/tides.sh tides/bathymetry tides/coefficients \
+	tides/amplitude.gfv tides/ellipses.gfv tides/phase.gfv \
+	tides/residual.gfv tides/tides.gfv ship/ship.gfs \
+	ship/closeup.gfv ship/front.gfv ship/comparison.gfv \
+	ship/tank-data.png forcedturbulence/forcedturbulence.gfs \
+	forcedturbulence/spectral.dat forcedturbulence/multiview.gfv \
+	garden/garden.gfs garden/garden.sh garden/end.gfv \
+	garden/mesh.gfv dam/dam.gfs dam/dam.plot hump/hump.gfs \
+	hump/hump.gfv hump/isolines.gfv hump/cells.gfv monai/monai.gfs \
+	monai/monai.sh monai/3D.gfv monai/leveque.gfv monai/mesh.gfv \
+	monai/overhead.gfv monai/probe.gfv tsunami/tsunami.gfs \
+	tsunami/output.gfs tsunami/tsunami.gfv tsunami/h.gfv \
+	tsunami/level.gfv tsunami/hmax.gfv tsunami/hmax-detail.gfv \
+	tsunami/hanires.txt tsunami/diegres.txt tsunami/maleres.txt \
+	tsunami/colores.txt tsunami/ganares.txt tsunami/jason.xy \
+	tsunami/jasonres.txt cyclone/cyclone.gfs cyclone/cyclone.gfv \
+	cyclone/hs.gfv cyclone/mesh.gfv cyclone/shifted.gfv \
+	plateau/plateau.gfs plateau/plateau.gfv plateau/white.gfv \
+	plateau/closeup.gfv atomisation/atomisation.gfs \
+	atomisation/atomisation.sh atomisation/jet.gfv \
+	atomisation/back.gfv
 bin_SCRIPTS = \
 	gfs2doc gfs-highlight gfsxref
 
 BUILT_SOURCES = \
-	gfs2doc gfs-highlight gfs.lang gerris.dic
+	gfs2doc gfs-highlight gfs.lang gerris.dic gfs-keywords.el gfs.php
 
 CLEANFILES = $(BUILT_SOURCES) Makefile.deps
 pkglib_DATA = gfs2tex.py
-pkgdata_DATA = gfs.lang gerris.dic
+pkgdata_DATA = gfs.lang gerris.dic gfs-keywords.el gfs-mode.el gfs.sty gfs.hva kaltura.sh gfs.php
 DOC = examples
+DOCS = \
+	cylinder/cylinder.gfs.html\
+	cylinder/t.mpg\
+	cylinder/vort.mpg\
+	cylinder/parallel/parallel.gfs.html\
+	cylinder/parallel/pid.mpg\
+	cylinder/heated/heated.gfs.html\
+	cylinder/heated/t.mpg\
+	rt/rt.gfs.html\
+	rt/t.mpg\
+	rt/vort.mpg\
+	boussinesq/boussinesq.gfs.html\
+	boussinesq/t.mpg\
+	tangaroa/tangaroa.gfs.html\
+	tangaroa/sections.mpg\
+	logo/logo.gfs.html\
+	logo/logo.mpg\
+	logo/logo.png\
+	column/column.gfs.html\
+	column/movie.ogv\
+	tides/tides.gfs.html\
+	ship/ship.gfs.html\
+	ship/closeup.mpg\
+	forcedturbulence/forcedturbulence.gfs.html\
+	forcedturbulence/multiview.mpg\
+	garden/garden.gfs.html\
+	dam/dam.gfs.html\
+	hump/hump.gfs.html\
+	hump/hump.mpg\
+	monai/monai.gfs.html\
+	monai/monai.mpg\
+	monai/comparison.mp4\
+	tsunami/tsunami.gfs.html\
+	tsunami/h.mpg\
+	tsunami/level.mpg\
+	cyclone/cyclone.gfs.html\
+	plateau/plateau.gfs.html\
+	plateau/plateau.ogv\
+	plateau/white.ogv\
+	plateau/closeup.ogv\
+	plateau/plateau.png\
+	plateau/white.png\
+	plateau/closeup.png\
+	atomisation/atomisation.gfs.html\
+	atomisation/jet.ogv\
+	atomisation/back.ogv\
+	atomisation/jet.png\
+	atomisation/back.png\
+	cylinder/cylinder.gfs\
+	cylinder/parallel/parallel.gfs\
+	cylinder/parallel/parallel.sh\
+	cylinder/parallel/pid.gfv\
+	cylinder/heated/heated.gfs\
+	rt/rt.gfs\
+	rt/rt.gfv\
+	boussinesq/boussinesq.gfs\
+	boussinesq/boussinesq.gfv\
+	tangaroa/tangaroa.gfs\
+	tangaroa/tangaroa.gts\
+	tangaroa/sections.gfv\
+	logo/logo.gfs\
+	logo/logo.gfv\
+	column/column.gfs\
+	column/comparison.plot\
+	column/column.gfv\
+	column/grains.tgz\
+	column/movie.gfv\
+	tides/tides.gfs\
+	tides/tides.sh\
+	tides/bathymetry\
+	tides/coefficients\
+	tides/amplitude.gfv\
+	tides/ellipses.gfv\
+	tides/phase.gfv\
+	tides/residual.gfv\
+	tides/tides.gfv\
+	ship/ship.gfs\
+	ship/closeup.gfv\
+	ship/front.gfv\
+	ship/comparison.gfv\
+	ship/tank-data.png\
+	forcedturbulence/forcedturbulence.gfs\
+	forcedturbulence/spectral.dat\
+	forcedturbulence/multiview.gfv\
+	garden/garden.gfs\
+	garden/garden.sh\
+	garden/end.gfv\
+	garden/mesh.gfv\
+	dam/dam.gfs\
+	dam/dam.plot\
+	hump/hump.gfs\
+	hump/hump.gfv\
+	hump/isolines.gfv\
+	hump/cells.gfv\
+	monai/monai.gfs\
+	monai/monai.sh\
+	monai/3D.gfv\
+	monai/leveque.gfv\
+	monai/mesh.gfv\
+	monai/overhead.gfv\
+	monai/probe.gfv\
+	tsunami/tsunami.gfs\
+	tsunami/output.gfs\
+	tsunami/tsunami.gfv\
+	tsunami/h.gfv\
+	tsunami/level.gfv\
+	tsunami/hmax.gfv\
+	tsunami/hmax-detail.gfv\
+	tsunami/hanires.txt\
+	tsunami/diegres.txt\
+	tsunami/maleres.txt\
+	tsunami/colores.txt\
+	tsunami/ganares.txt\
+	tsunami/jason.xy\
+	tsunami/jasonres.txt\
+	cyclone/cyclone.gfs\
+	cyclone/cyclone.gfv\
+	cyclone/hs.gfv\
+	cyclone/mesh.gfv\
+	cyclone/shifted.gfv\
+	plateau/plateau.gfs\
+	plateau/plateau.gfv\
+	plateau/white.gfv\
+	plateau/closeup.gfv\
+	atomisation/atomisation.gfs\
+	atomisation/atomisation.sh\
+	atomisation/jet.gfv\
+	atomisation/back.gfv
+
+TESTS = \
+	cylinder.sh\
+	rt.sh\
+	boussinesq.sh\
+	tangaroa.sh\
+	logo.sh\
+	column.sh\
+	tides.sh\
+	ship.sh\
+	forcedturbulence.sh\
+	garden.sh\
+	dam.sh\
+	hump.sh\
+	monai.sh\
+	tsunami.sh\
+	cyclone.sh\
+	plateau.sh\
+	atomisation.sh
+
 INCLUDES = -I$(top_srcdir)/src -I$(includedir) -DG_LOG_DOMAIN=\"Gfs-tools\"\
             $(GTS_CFLAGS)
 
-classes_SOURCES = classes.c $(top_srcdir)/src/init.c
-classes_CFLAGS = $(AM_CFLAGS) -DFTT_2D=1
-classes_CPPFLAGS = $(INCLUDES) -I$(top_builddir)/src
-classes_LDADD = $(GFS2D_LIBS)
 all: $(BUILT_SOURCES)
 	$(MAKE) $(AM_MAKEFLAGS) all-am
 
 .SUFFIXES:
-.SUFFIXES: .c .lo .o .obj
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+.SUFFIXES: .c .html .lo .log .o .obj .test .test$(EXEEXT)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/Makefile.deps $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
@@ -341,9 +569,6 @@ clean-noinstPROGRAMS:
 	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
 	echo " rm -f" $$list; \
 	rm -f $$list
-classes$(EXEEXT): $(classes_OBJECTS) $(classes_DEPENDENCIES) 
-	@rm -f classes$(EXEEXT)
-	$(classes_LINK) $(classes_OBJECTS) $(classes_LDADD) $(LIBS)
 install-binSCRIPTS: $(bin_SCRIPTS)
 	@$(NORMAL_INSTALL)
 	test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
@@ -385,8 +610,8 @@ mostlyclean-compile:
 distclean-compile:
 	-rm -f *.tab.c
 
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/classes-classes.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/classes-init.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/classes.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/modules.Po at am__quote@
 
 .c.o:
 @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@@ -409,34 +634,6 @@ distclean-compile:
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
 
-classes-classes.o: classes.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(classes_CPPFLAGS) $(CPPFLAGS) $(classes_CFLAGS) $(CFLAGS) -MT classes-classes.o -MD -MP -MF $(DEPDIR)/classes-classes.Tpo -c -o classes-classes.o `test -f 'classes.c' || echo '$(srcdir)/'`classes.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/classes-classes.Tpo $(DEPDIR)/classes-classes.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='classes.c' object='classes-classes.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(classes_CPPFLAGS) $(CPPFLAGS) $(classes_CFLAGS) $(CFLAGS) -c -o classes-classes.o `test -f 'classes.c' || echo '$(srcdir)/'`classes.c
-
-classes-classes.obj: classes.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(classes_CPPFLAGS) $(CPPFLAGS) $(classes_CFLAGS) $(CFLAGS) -MT classes-classes.obj -MD -MP -MF $(DEPDIR)/classes-classes.Tpo -c -o classes-classes.obj `if test -f 'classes.c'; then $(CYGPATH_W) 'classes.c'; else $(CYGPATH_W) '$(srcdir)/classes.c'; fi`
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/classes-classes.Tpo $(DEPDIR)/classes-classes.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='classes.c' object='classes-classes.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(classes_CPPFLAGS) $(CPPFLAGS) $(classes_CFLAGS) $(CFLAGS) -c -o classes-classes.obj `if test -f 'classes.c'; then $(CYGPATH_W) 'classes.c'; else $(CYGPATH_W) '$(srcdir)/classes.c'; fi`
-
-classes-init.o: $(top_srcdir)/src/init.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(classes_CPPFLAGS) $(CPPFLAGS) $(classes_CFLAGS) $(CFLAGS) -MT classes-init.o -MD -MP -MF $(DEPDIR)/classes-init.Tpo -c -o classes-init.o `test -f '$(top_srcdir)/src/init.c' || echo '$(srcdir)/'`$(top_srcdir)/src/init.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/classes-init.Tpo $(DEPDIR)/classes-init.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/src/init.c' object='classes-init.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(classes_CPPFLAGS) $(CPPFLAGS) $(classes_CFLAGS) $(CFLAGS) -c -o classes-init.o `test -f '$(top_srcdir)/src/init.c' || echo '$(srcdir)/'`$(top_srcdir)/src/init.c
-
-classes-init.obj: $(top_srcdir)/src/init.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(classes_CPPFLAGS) $(CPPFLAGS) $(classes_CFLAGS) $(CFLAGS) -MT classes-init.obj -MD -MP -MF $(DEPDIR)/classes-init.Tpo -c -o classes-init.obj `if test -f '$(top_srcdir)/src/init.c'; then $(CYGPATH_W) '$(top_srcdir)/src/init.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/src/init.c'; fi`
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/classes-init.Tpo $(DEPDIR)/classes-init.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/src/init.c' object='classes-init.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(classes_CPPFLAGS) $(CPPFLAGS) $(classes_CFLAGS) $(CFLAGS) -c -o classes-init.obj `if test -f '$(top_srcdir)/src/init.c'; then $(CYGPATH_W) '$(top_srcdir)/src/init.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/src/init.c'; fi`
-
 mostlyclean-libtool:
 	-rm -f *.lo
 
@@ -535,97 +732,196 @@ GTAGS:
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
-check-TESTS: $(TESTS)
-	@failed=0; all=0; xfail=0; xpass=0; skip=0; \
-	srcdir=$(srcdir); export srcdir; \
-	list=' $(TESTS) '; \
-	$(am__tty_colors); \
-	if test -n "$$list"; then \
-	  for tst in $$list; do \
-	    if test -f ./$$tst; then dir=./; \
-	    elif test -f $$tst; then dir=; \
-	    else dir="$(srcdir)/"; fi; \
-	    if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
-	      all=`expr $$all + 1`; \
-	      case " $(XFAIL_TESTS) " in \
-	      *[\ \	]$$tst[\ \	]*) \
-		xpass=`expr $$xpass + 1`; \
-		failed=`expr $$failed + 1`; \
-		col=$$red; res=XPASS; \
-	      ;; \
-	      *) \
-		col=$$grn; res=PASS; \
-	      ;; \
-	      esac; \
-	    elif test $$? -ne 77; then \
-	      all=`expr $$all + 1`; \
-	      case " $(XFAIL_TESTS) " in \
-	      *[\ \	]$$tst[\ \	]*) \
-		xfail=`expr $$xfail + 1`; \
-		col=$$lgn; res=XFAIL; \
-	      ;; \
-	      *) \
-		failed=`expr $$failed + 1`; \
-		col=$$red; res=FAIL; \
-	      ;; \
-	      esac; \
-	    else \
-	      skip=`expr $$skip + 1`; \
-	      col=$$blu; res=SKIP; \
-	    fi; \
-	    echo "$${col}$$res$${std}: $$tst"; \
-	  done; \
-	  if test "$$all" -eq 1; then \
-	    tests="test"; \
-	    All=""; \
-	  else \
-	    tests="tests"; \
-	    All="All "; \
-	  fi; \
-	  if test "$$failed" -eq 0; then \
-	    if test "$$xfail" -eq 0; then \
-	      banner="$$All$$all $$tests passed"; \
-	    else \
-	      if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \
-	      banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \
-	    fi; \
-	  else \
-	    if test "$$xpass" -eq 0; then \
-	      banner="$$failed of $$all $$tests failed"; \
-	    else \
-	      if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \
-	      banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \
-	    fi; \
-	  fi; \
-	  dashes="$$banner"; \
-	  skipped=""; \
-	  if test "$$skip" -ne 0; then \
-	    if test "$$skip" -eq 1; then \
-	      skipped="($$skip test was not run)"; \
-	    else \
-	      skipped="($$skip tests were not run)"; \
-	    fi; \
-	    test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \
-	      dashes="$$skipped"; \
-	  fi; \
-	  report=""; \
-	  if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
-	    report="Please report to $(PACKAGE_BUGREPORT)"; \
-	    test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \
-	      dashes="$$report"; \
-	  fi; \
-	  dashes=`echo "$$dashes" | sed s/./=/g`; \
-	  if test "$$failed" -eq 0; then \
-	    echo "$$grn$$dashes"; \
-	  else \
-	    echo "$$red$$dashes"; \
-	  fi; \
-	  echo "$$banner"; \
-	  test -z "$$skipped" || echo "$$skipped"; \
-	  test -z "$$report" || echo "$$report"; \
-	  echo "$$dashes$$std"; \
-	  test "$$failed" -eq 0; \
-	else :; fi
+# To be appended to the command running the test.  Handle the stdout
+# and stderr redirection, and catch the exit status.
+am__check_post =					\
+>$@-t 2>&1;						\
+estatus=$$?;						\
+if test -n '$(DISABLE_HARD_ERRORS)'			\
+   && test $$estatus -eq 99; then			\
+  estatus=1;						\
+fi;							\
+TERM=$$__SAVED_TERM; export TERM;			\
+$(am__tty_colors);					\
+xfailed=PASS;						\
+case " $(XFAIL_TESTS) " in				\
+  *[\ \	]$$f[\ \	]* | *[\ \	]$$dir$$f[\ \	]*) \
+    xfailed=XFAIL;;					\
+esac;							\
+case $$estatus:$$xfailed in				\
+    0:XFAIL) col=$$red; res=XPASS;;			\
+    0:*)     col=$$grn; res=PASS ;;			\
+    77:*)    col=$$blu; res=SKIP ;;			\
+    99:*)    col=$$red; res=FAIL ;;			\
+    *:XFAIL) col=$$lgn; res=XFAIL;;			\
+    *:*)     col=$$red; res=FAIL ;;			\
+esac;							\
+echo "$${col}$$res$${std}: $$f";			\
+echo "$$res: $$f (exit: $$estatus)" |			\
+  $(am__rst_section) >$@;				\
+cat $@-t >>$@;						\
+rm -f $@-t
+
+$(TEST_SUITE_LOG): $(TEST_LOGS)
+	@$(am__sh_e_setup);						\
+	list='$(TEST_LOGS)';						\
+	results=`for f in $$list; do					\
+		   read line < $$f && echo "$$line" || echo FAIL;	\
+		 done`;							\
+	all=`echo "$$results" | sed '/^$$/d' | wc -l | sed -e 's/^[	 ]*//'`; \
+	fail=`echo "$$results" | grep -c '^FAIL'`;			\
+	pass=`echo "$$results" | grep -c '^PASS'`;			\
+	skip=`echo "$$results" | grep -c '^SKIP'`;			\
+	xfail=`echo "$$results" | grep -c '^XFAIL'`;			\
+	xpass=`echo "$$results" | grep -c '^XPASS'`;			\
+	failures=`expr $$fail + $$xpass`;				\
+	all=`expr $$all - $$skip`;					\
+	if test "$$all" -eq 1; then tests=test; All=;			\
+	else tests=tests; All="All "; fi;				\
+	case fail=$$fail:xpass=$$xpass:xfail=$$xfail in			\
+	  fail=0:xpass=0:xfail=0)					\
+	    msg="$$All$$all $$tests passed.  ";				\
+	    exit=true;;							\
+	  fail=0:xpass=0:xfail=*)					\
+	    msg="$$All$$all $$tests behaved as expected";		\
+	    if test "$$xfail" -eq 1; then xfailures=failure;		\
+	    else xfailures=failures; fi;				\
+	    msg="$$msg ($$xfail expected $$xfailures).  ";		\
+	    exit=true;;							\
+	  fail=*:xpass=0:xfail=*)					\
+	    msg="$$fail of $$all $$tests failed.  ";			\
+	    exit=false;;						\
+	  fail=*:xpass=*:xfail=*)					\
+	    msg="$$failures of $$all $$tests did not behave as expected"; \
+	    if test "$$xpass" -eq 1; then xpasses=pass;			\
+	    else xpasses=passes; fi;					\
+	    msg="$$msg ($$xpass unexpected $$xpasses).  ";		\
+	    exit=false;;						\
+	  *)								\
+	    echo >&2 "incorrect case"; exit 4;;				\
+	esac;								\
+	if test "$$skip" -ne 0; then					\
+	  if test "$$skip" -eq 1; then					\
+	    msg="$$msg($$skip test was not run).  ";			\
+	  else								\
+	    msg="$$msg($$skip tests were not run).  ";			\
+	  fi;								\
+	fi;								\
+	{								\
+	  echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" |	\
+	    $(am__rst_title);						\
+	  echo "$$msg";							\
+	  echo;								\
+	  echo ".. contents:: :depth: 2";				\
+	  echo;								\
+	  for f in $$list; do						\
+	    read line < $$f;						\
+	    case $$line in						\
+	      PASS:*|XFAIL:*);;						\
+	      *) echo; cat $$f;;					\
+	    esac;							\
+	  done;								\
+	} >$(TEST_SUITE_LOG).tmp;					\
+	mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG);			\
+	if test "$$failures" -ne 0; then				\
+	  msg="$${msg}See $(subdir)/$(TEST_SUITE_LOG).  ";		\
+	  if test -n "$(PACKAGE_BUGREPORT)"; then			\
+	    msg="$${msg}Please report to $(PACKAGE_BUGREPORT).  ";	\
+	  fi;								\
+	fi;								\
+	test x"$$VERBOSE" = x || $$exit || cat $(TEST_SUITE_LOG);	\
+	$(am__tty_colors);						\
+	if $$exit; then							\
+	  echo $(ECHO_N) "$$grn$(ECHO_C)";				\
+	 else								\
+	  echo $(ECHO_N) "$$red$(ECHO_C)";				\
+	fi;								\
+	echo "$$msg" | $(am__text_box);					\
+	echo $(ECHO_N) "$$std$(ECHO_C)";				\
+	$$exit
+
+# Run all the tests.
+check-TESTS:
+	@list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list
+	@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+	@list='$(TEST_LOGS)';						\
+	list=`for f in $$list; do					\
+	  test .log = $$f || echo $$f;					\
+	done | tr '\012\015' '  '`;					\
+	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$list"
+
+.log.html:
+	@list='$(RST2HTML) $$RST2HTML rst2html rst2html.py';		\
+	for r2h in $$list; do						\
+	  if ($$r2h --version) >/dev/null 2>&1; then			\
+	    R2H=$$r2h;							\
+	  fi;								\
+	done;								\
+	if test -z "$$R2H"; then					\
+	  echo >&2 "cannot find rst2html, cannot create $@";		\
+	  exit 2;							\
+	fi;								\
+	$$R2H $< >$@.tmp
+	@mv $@.tmp $@
+
+# Be sure to run check first, and then to convert the result.
+# Beware of concurrent executions.  Run "check" not "check-TESTS", as
+# check-SCRIPTS and other dependencies are rebuilt by the former only.
+# And expect check to fail.
+check-html:
+	@if $(MAKE) $(AM_MAKEFLAGS) check; then			\
+	  rv=0; else rv=$$?;					\
+	fi;							\
+	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_HTML) || exit 4;	\
+	exit $$rv
+recheck recheck-html:
+	@target=`echo $@ | sed 's,^re,,'`;				\
+	list='$(TEST_LOGS)';						\
+	list=`for f in $$list; do					\
+	        test -f $$f || continue;				\
+	        if read line < $$f; then				\
+	          case $$line in FAIL*|XPASS*) echo $$f;; esac;		\
+	        else echo $$f; fi;					\
+	      done | tr '\012\015' '  '`;				\
+	$(MAKE) $(AM_MAKEFLAGS) $$target AM_MAKEFLAGS='$(AM_MAKEFLAGS) TEST_LOGS="'"$$list"'"'
+cylinder.sh.log: cylinder.sh
+	@p='cylinder.sh'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post)
+rt.sh.log: rt.sh
+	@p='rt.sh'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post)
+boussinesq.sh.log: boussinesq.sh
+	@p='boussinesq.sh'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post)
+tangaroa.sh.log: tangaroa.sh
+	@p='tangaroa.sh'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post)
+logo.sh.log: logo.sh
+	@p='logo.sh'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post)
+column.sh.log: column.sh
+	@p='column.sh'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post)
+tides.sh.log: tides.sh
+	@p='tides.sh'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post)
+ship.sh.log: ship.sh
+	@p='ship.sh'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post)
+forcedturbulence.sh.log: forcedturbulence.sh
+	@p='forcedturbulence.sh'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post)
+garden.sh.log: garden.sh
+	@p='garden.sh'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post)
+dam.sh.log: dam.sh
+	@p='dam.sh'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post)
+hump.sh.log: hump.sh
+	@p='hump.sh'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post)
+monai.sh.log: monai.sh
+	@p='monai.sh'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post)
+tsunami.sh.log: tsunami.sh
+	@p='tsunami.sh'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post)
+cyclone.sh.log: cyclone.sh
+	@p='cyclone.sh'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post)
+plateau.sh.log: plateau.sh
+	@p='plateau.sh'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post)
+atomisation.sh.log: atomisation.sh
+	@p='atomisation.sh'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post)
+.test.log:
+	@p='$<'; $(am__check_pre) $(TEST_LOG_COMPILE) "$$tst" $(am__check_post)
+ at am__EXEEXT_TRUE@.test$(EXEEXT).log:
+ at am__EXEEXT_TRUE@	@p='$<'; $(am__check_pre) $(TEST_LOG_COMPILE) "$$tst" $(am__check_post)
 
 distdir: $(DISTFILES)
 	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
@@ -682,6 +978,10 @@ install-strip:
 	  `test -z '$(STRIP)' || \
 	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
 mostlyclean-generic:
+	-test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
+	-test -z "$(TEST_LOGS_TMP)" || rm -f $(TEST_LOGS_TMP)
+	-test -z "$(TEST_SUITE_HTML)" || rm -f $(TEST_SUITE_HTML)
+	-test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
@@ -763,10 +1063,11 @@ ps-am:
 uninstall-am: uninstall-binSCRIPTS uninstall-pkgdataDATA \
 	uninstall-pkglibDATA
 
-.MAKE: all check check-am install install-am install-strip
+.MAKE: all check check-am check-html install install-am install-strip \
+	recheck recheck-html
 
-.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \
-	clean-generic clean-libtool clean-noinstPROGRAMS ctags \
+.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am check-html \
+	clean clean-generic clean-libtool clean-noinstPROGRAMS ctags \
 	distclean distclean-compile distclean-generic \
 	distclean-libtool distclean-tags distdir dvi dvi-am html \
 	html-am info info-am install install-am install-binSCRIPTS \
@@ -778,19 +1079,38 @@ uninstall-am: uninstall-binSCRIPTS uninstall-pkgdataDATA \
 	installcheck-am installdirs maintainer-clean \
 	maintainer-clean-generic mostlyclean mostlyclean-compile \
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags uninstall uninstall-am uninstall-binSCRIPTS \
-	uninstall-pkgdataDATA uninstall-pkglibDATA
+	recheck recheck-html tags uninstall uninstall-am \
+	uninstall-binSCRIPTS uninstall-pkgdataDATA \
+	uninstall-pkglibDATA
+
 
+gerris.dic: classes modulesyms.sh $(top_srcdir)/modules/Makefile.am modules.list
+	($(srcdir)/classes && sh $(srcdir)/modulesyms.sh $(top_srcdir)/modules $(pkglibdir)) | sort > gerris.dic
 
-test.sh: $(EXAMPLES)
-	@echo "python test.py $(EXAMPLES)" > test.sh
-	@chmod +x test.sh
+gfs.lang: gerris.dic
+	echo "# Language file for source-highlight" > gfs.lang
+	echo "# Generated automatically by classes.c" >> gfs.lang
+	awk '{ printf ("gfs_keyword = \"%s\"\n", $$1) }' < gerris.dic >> gfs.lang
+	echo "include \"cpp.lang\"" >> gfs.lang
+	echo "comment start \"#\"" >> gfs.lang
+	echo "redef preproc = \"C preprocessor command is not compatible with the use of # as comment character in GTS\"" >> gfs.lang
 
-gfs.lang: classes
-	$(builddir)/classes > gfs.lang
+modules.list: modules $(top_srcdir)/modules/Makefile.am
+	$(srcdir)/modules $(top_srcdir)/modules/*.la $(pkglibdir)/*.so | sort | uniq > modules.list
 
-gerris.dic: classes
-	$(builddir)/classes | awk '$$1 ~ /gfs_keyword/ {print $$3}' | sed 's/"//g' > gerris.dic
+gfs-keywords.el: gerris.dic modules.list
+	echo "(defvar gfs-abbrevs '(" > gfs-keywords.el
+	awk '{ printf ("\"%s\"\n", $$1) }' < gerris.dic >> gfs-keywords.el
+	echo ")" >> gfs-keywords.el
+	echo "\"Gerris keywords automatically generated by classes.c.\")" >> gfs-keywords.el
+	echo "(defvar gfs-modules '(" >> gfs-keywords.el
+	awk '{ printf ("\"%s\"\n", $$1) }' < modules.list >> gfs-keywords.el
+	echo ")" >> gfs-keywords.el
+	echo "\"Gerris modules automatically generated by modules.c.\")" >> gfs-keywords.el
+	echo "(provide 'gfs-keywords)" >> gfs-keywords.el
+
+gfs.php: gerris.dic modules.list gfs.php.sh
+	sh gfs.php.sh > gfs.php
 
 gfs2doc: gfs2doc.in
 
@@ -808,15 +1128,17 @@ examples: examples.dvi crossref.sh
 	mv -f $(DOC)[0-9][0-9][0-9].png $(DOC)
 	mv -f *.html $(DOC)
 	cat $(DOC).css ../share/darcs.css > $(DOC)/$(DOC).css
+	for f in $(DOC)/*.html; do sh kaltura.sh $$f; done
 	sh ../share/fixnav.sh $(DOC)
 	cp -f ../share/contents.png ../share/next.png ../share/prev.png $(DOC)
 	rm -f *_motif.gif $(DOC).h{tml,aux,ind,toc} $(DOC).image.tex $(DOC).css
-	sh ./crossref.sh --url=http://gfs.sourceforge.net/examples/examples $(EXAMPLES)
+	sh ./crossref.sh --url=http://gerris.dalembert.upmc.fr/gerris/examples/examples $(EXAMPLES)
 	mv references examples
 
-examples.dvi: examples.tex
-	latex -interaction=nonstopmode examples.tex > /dev/null 2>&1
-	latex -interaction=nonstopmode examples.tex > /dev/null 2>&1
+examples.dvi: examples.tex examples.bib
+	- latex -interaction=nonstopmode examples.tex > /dev/null 2>&1
+	bibtex examples
+	- latex -interaction=nonstopmode examples.tex > /dev/null 2>&1
 	latex -interaction=nonstopmode examples.tex
 
 examples.pdf: examples.dvi
@@ -827,15 +1149,171 @@ examples.pdf: examples.dvi
 examples.tex: template.tex Makefile.deps gfs2tex gfs2tex.py
 	rm -r -f examples
 	python gfs2tex $(EXAMPLES)
-	sed "s/GFS_VERSION/`$(top_srcdir)/src/gerris2D -V 2>&1 | awk '{ if ($$5 == "version") print $$6}'`/g" < template.tex | sed 's/\\today/'"`date +\"%B %e, %Y\"`/g" > examples.tex
-
-Makefile.deps: Makefile depend.py
-	python $(srcdir)/depend.py $(EXAMPLES) > Makefile.deps
-
--include Makefile.deps
+	sed "s/GFS_VERSION/`$(top_srcdir)/src/gerris2D -V 2>&1 | head -1 | cut -d' ' -f6-`/g" < template.tex | sed 's/\\today/'"`date +\"%B %e, %Y\"`/g" > examples.tex
+
+Makefile.deps: depend.py Makefile.am
+	python depend.py $(EXAMPLES) > Makefile.deps
+
+examples.tex: \
+	cylinder/cylinder.gfs\
+	cylinder/t.mpg\
+	cylinder/vort.mpg\
+	cylinder/t.eps\
+	cylinder/vort.eps\
+	cylinder/parallel/parallel.gfs\
+	cylinder/parallel/pid.mpg\
+	cylinder/parallel/pid.eps\
+	cylinder/parallel/balance.eps\
+	cylinder/heated/heated.gfs\
+	cylinder/heated/t.mpg\
+	cylinder/heated/t.eps\
+	rt/rt.gfs\
+	rt/t.mpg\
+	rt/vort.mpg\
+	rt/t.eps\
+	rt/vort.eps\
+	rt/t-0.eps\
+	rt/t-0.7.eps\
+	rt/t-0.8.eps\
+	rt/t-0.9.eps\
+	rt/t-1.eps\
+	boussinesq/boussinesq.gfs\
+	boussinesq/t.mpg\
+	boussinesq/t.eps\
+	tangaroa/tangaroa.gfs\
+	tangaroa/sections.mpg\
+	tangaroa/sections.eps\
+	logo/logo.gfs\
+	logo/logo.mpg\
+	logo/logo.png\
+	logo/logo.eps\
+	column/column.gfs\
+	column/comparison-0.eps\
+	column/comparison-0.66.eps\
+	column/comparison-0.95.eps\
+	column/comparison-1.24.eps\
+	column/comparison-1.52.eps\
+	column/comparison-2.28.eps\
+	column/movie.eps\
+	column/movie.ogv\
+	tides/tides.gfs\
+	tides/a0.eps\
+	tides/amplitude.eps\
+	tides/ellipses.eps\
+	tides/phase.eps\
+	tides/pv.eps\
+	tides/residual.eps\
+	ship/ship.gfs\
+	ship/closeup.mpg\
+	ship/closeup.eps\
+	ship/front.eps\
+	ship/f.eps\
+	ship/comparison.eps\
+	forcedturbulence/forcedturbulence.gfs\
+	forcedturbulence/multiview.mpg\
+	forcedturbulence/multiview.eps\
+	forcedturbulence/Energy.eps\
+	forcedturbulence/Dissipation.eps\
+	forcedturbulence/Reynolds.eps\
+	forcedturbulence/size.eps\
+	garden/garden.gfs\
+	garden/end.eps\
+	garden/mesh.eps\
+	garden/cpu.tex\
+	dam/dam.gfs\
+	dam/dam.gif\
+	hump/hump.gfs\
+	hump/cells-0.6.eps\
+	hump/cells-1.2.eps\
+	hump/cells-1.8.eps\
+	hump/iso-0.9.eps\
+	hump/iso-1.5.eps\
+	hump/cells-0.9.eps\
+	hump/cells-1.5.eps\
+	hump/iso-0.6.eps\
+	hump/iso-1.2.eps\
+	hump/iso-1.8.eps\
+	hump/hump.eps\
+	hump/hump.mpg\
+	monai/monai.gfs\
+	monai/monai.mpg\
+	monai/monai.eps\
+	monai/fig4-10.eps\
+	monai/mesh-10.eps\
+	monai/fig4-12.eps\
+	monai/mesh-12.eps\
+	monai/fig4-14.eps\
+	monai/mesh-14.eps\
+	monai/fig4-16.eps\
+	monai/mesh-16.eps\
+	monai/fig4-18.eps\
+	monai/mesh-18.eps\
+	monai/fig4-20.eps\
+	monai/mesh-20.eps\
+	monai/p5.eps\
+	monai/p7.eps\
+	monai/p9.eps\
+	monai/comparison.eps\
+	monai/comparison.mp4\
+	tsunami/tsunami.gfs\
+	tsunami/h.eps\
+	tsunami/level.eps\
+	tsunami/h.mpg\
+	tsunami/level.mpg\
+	tsunami/hmax.eps\
+	tsunami/hmax-detail.eps\
+	tsunami/hani.eps\
+	tsunami/dieg.eps\
+	tsunami/male.eps\
+	tsunami/colo.eps\
+	tsunami/gana.eps\
+	tsunami/jason.eps\
+	cyclone/cyclone.gfs\
+	cyclone/hs-12.eps\
+	cyclone/hs-36.eps\
+	cyclone/mesh-12.eps\
+	cyclone/mesh-36.eps\
+	cyclone/hs-24.eps\
+	cyclone/hs-48.eps\
+	cyclone/mesh-24.eps\
+	cyclone/mesh-48.eps\
+	cyclone/hsmax.eps\
+	cyclone/shifted.eps\
+	plateau/plateau.gfs\
+	plateau/plateau.ogv\
+	plateau/white.ogv\
+	plateau/closeup.ogv\
+	plateau/plateau.png\
+	plateau/white.png\
+	plateau/closeup.png\
+	plateau/plateau.eps\
+	plateau/white.eps\
+	plateau/closeup.eps\
+	plateau/size.eps\
+	atomisation/atomisation.gfs\
+	atomisation/jet.ogv\
+	atomisation/back.ogv\
+	atomisation/jet.eps\
+	atomisation/jet.png\
+	atomisation/back.eps\
+	atomisation/back.png\
+	atomisation/balance.eps
 
 examples.tar.gz: examples.pdf examples $(DOCS)
 	tar czf examples.tar.gz examples $(DOCS)
+	rm -r -f examples
+
+classes: classes.c $(top_srcdir)/src/init.c
+	$(LIBTOOL) --mode=link $(CC) $(AM_CFLAGS) $(INCLUDES) -DFTT_2D=1 \
+	classes.c -o classes $(GFS2D_LIBS)
+
+modules: modules.c
+	$(LIBTOOL) --mode=link $(CC) $(AM_CFLAGS) $(INCLUDES) -DFTT_2D=1 \
+	modules.c -o modules $(GFS2D_LIBS)
+
+publish: examples.tar.gz
+	cp examples.tar.gz $(WEBROOT)/examples
+	cd $(WEBROOT)/examples && tar xzf examples.tar.gz && rm -f examples.tar.gz
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/doc/examples/atomisation/atomisation.gfs b/doc/examples/atomisation/atomisation.gfs
new file mode 100644
index 0000000..4aab965
--- /dev/null
+++ b/doc/examples/atomisation/atomisation.gfs
@@ -0,0 +1,153 @@
+# Title: Atomisation of a pulsed liquid jet
+#
+# Description:
+#
+# A dense cylindrical liquid jet is injected into a stagnant lighter
+# phase (density ratio 1/27.84). The inflow velocity is modulated
+# sinusoidally to promote the growth of primary shear
+# instabilities. Surface tension is included and ultimately controls
+# the characteristic scale of the smallest droplets.
+#
+# Animations \ref{jet} and \ref{back} illustrate the atomisation process
+# from two different view points.
+#
+# \begin{figure}[htbp]
+# \caption{\label{jet}Atomisation of a pulsed liquid jet.}
+# \begin{center}
+# \video{atomisation/jet}{640}{480}
+# \end{center}
+# \end{figure}
+#
+# \begin{figure}[htbp]
+# \caption{\label{back}Atomisation of a pulsed liquid jet.}
+# \begin{center}
+# \video{atomisation/back}{640}{480}
+# \end{center}
+# \end{figure}
+#
+# The simulation and visualisation are computed in parallel on 4
+# processors. Dynamic load-balancing is used to distribute the charge
+# between the processors (Figure \ref{balance}).
+#
+# \begin{figure}[htbp]
+# \caption{\label{balance}Number of cells per processor as a
+# function of time illustrating the effect of dynamic load-balancing.}
+# \begin{center}
+# \includegraphics[width=0.8\hsize]{balance.eps}
+# \end{center}
+# \end{figure}
+#
+# Author: St\'ephane Popinet
+# Command: sh atomisation.sh
+# Version: 100715
+# Required files: atomisation.sh jet.gfv back.gfv
+# Running time: 2 days on 4 processors
+# Generated files: jet.ogv back.ogv jet.eps jet.png back.eps back.png balance.eps
+3 2 GfsSimulation GfsBox GfsGEdge {} {
+    Global {
+	#define radius 1./12.
+	#define length 0.025
+	#define level 9
+	#define Re 5800
+	#define R2(y,z) ((y)*(y) + (z)*(z))
+	#define rho(T) (T + 1./27.84*(1. - T))
+	/* Weber = rhoV^2D/sigma = 5555 */
+    }
+    Time { end = 1.6 }
+    # Initial refinement of the inlet
+    Refine (x < -0.5 + length && R2(y,z) < 2.*radius*radius ? level : 5)
+
+    # Define a static field used to enforce the boundary conditions
+    # for volume fraction corresponding to a cylindrical jet
+    Variable T0
+    InitFraction T0 (radius*radius - R2(y,z))
+
+    VariableTracerVOF T
+    VariableCurvature K T Kmax
+    SourceTension T 0.00003 K
+    SourceViscosity 2.*radius/Re*rho(T)
+    PhysicalParams { alpha = 1./rho(T) }
+    
+    # Use constant (maximum) resolution on the interface
+    AdaptFunction { istep = 1 } {
+	minlevel = 0
+	maxlevel = level 
+    } (T > 0 && T < 1)
+
+    # Initialise a short jet
+    Init {} {
+	T = (x < -0.5 + length ? T0 : 0)
+	U = T
+    }
+
+    # Dynamic load-balancing
+    EventBalance { istep = 1 } 0.1
+
+    OutputTime { istep = 1 } log
+    OutputBalance { istep = 1 } log
+    OutputProjectionStats { istep = 1 } log
+    OutputTiming { istep = 100 } log
+
+    # Use the gfsview module to generate movies on-the-fly and in parallel
+    GModule gfsview
+    OutputView { step = 4e-3 } { ppm2theora -s 640x480 > jet.ogv } {
+	format = PPM width = 1280 height = 960 
+    } jet.gfv
+    OutputView { step = 4e-3 } { ppm2theora -s 640x480 > back.ogv } {
+	format = PPM width = 1280 height = 960 
+    } back.gfv
+
+    # Save a (single) snapshot every 100 timesteps
+    EventScript { istep = 100 } { rm -f snapshot-*.gfs }
+    OutputSimulation { istep = 100 } snapshot-%ld.gfs { }
+
+    # Generate figures
+    OutputView { start = end } jet.ppm { format = PPM width = 1280 height = 960 } jet.gfv
+    OutputView { start = end } back.ppm { format = PPM width = 1280 height = 960 } back.gfv
+    EventScript { start = end } {
+	for f in jet back; do
+	    convert $f.ppm -geometry 640x480 $f.png
+	    convert $f.png $f.eps
+	    rm -f $f.ppm
+	done
+	awk '{if ($1 == "step:") t = $4; 
+              else if ($1 == "domain") print t,$3,$5,$9;}' < log > balance
+	cat <<EOF | gnuplot
+        set term postscript eps color lw 2 20 solid
+        set output 'balance.eps'
+        set xlabel 'Time'
+        set ylabel 'Number of cells per processor'
+        plot [0:1.6]'balance' u 1:2 w l t 'Minimum', \
+                    'balance' u 1:3 w l t 'Average', \
+                    'balance' u 1:4 w l t 'Maximum'
+EOF
+    }
+}
+GfsBox { pid = 0 
+    top = Boundary
+    bottom = Boundary
+    back = Boundary
+    front = Boundary
+    left = Boundary {
+	# Pulsed jet on inflow
+	BcDirichlet U T0*(1. + 0.05*sin (10.*2.*M_PI*t))
+	BcDirichlet T T0
+	BcDirichlet V 0
+	BcDirichlet W 0
+    }
+}
+GfsBox { pid = 0
+    top = Boundary
+    bottom = Boundary
+    back = Boundary
+    front = Boundary
+}
+GfsBox { pid = 1
+    top = Boundary
+    bottom = Boundary
+    back = Boundary
+    front = Boundary
+    right = BoundaryOutflow
+}
+1 2 right
+2 3 right
diff --git a/doc/examples/atomisation/atomisation.sh b/doc/examples/atomisation/atomisation.sh
new file mode 100644
index 0000000..67268a0
--- /dev/null
+++ b/doc/examples/atomisation/atomisation.sh
@@ -0,0 +1,5 @@
+# split three times and partition on 4 processors
+gerris3D -s 3 atomisation.gfs | gerris3D -p2 - > atomisation-s3-p2.gfs
+
+# run the parallel simulation
+mpirun -np 4 gerris3D atomisation-s3-p2.gfs < /dev/null
diff --git a/doc/examples/atomisation/back.gfv b/doc/examples/atomisation/back.gfv
new file mode 100644
index 0000000..88ba6f5
--- /dev/null
+++ b/doc/examples/atomisation/back.gfv
@@ -0,0 +1,30 @@
+# GfsView 3D
+View {
+  tx = -0.192893 ty = -0.0962427
+  sx = 1 sy = 1 sz = 1
+  q0 = 0.618864 q1 = -0.08861 q2 = -0.386315 q3 = 0.678171
+  fov = 9.00967
+  r = 0.3 g = 0.4 b = 0.6
+  res = 1
+  lc = 0.001
+  reactivity = 0.1
+}
+VOF {
+  r = 1 g = 1 b = 1
+  shading = Constant
+  maxlevel = -1
+  font_size = 1
+  raster_font = 1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} z {
+  amin = 1
+  amax = 1
+  cmap = Jet
+} T {
+  reversed = 0
+  use_scalar = 0
+  draw_edges = 0
+  interpolate = 1
+}
diff --git a/doc/examples/atomisation/jet.gfv b/doc/examples/atomisation/jet.gfv
new file mode 100644
index 0000000..18fb361
--- /dev/null
+++ b/doc/examples/atomisation/jet.gfv
@@ -0,0 +1,28 @@
+# GfsView 3D
+View {
+  tx = -0.268399 ty = 0.141883
+  sx = 1 sy = 1 sz = 1
+  q0 = -0.280401 q1 = 0.348682 q2 = 0.126751 q3 = 0.885286
+  fov = 10.4626
+  r = 0.3 g = 0.4 b = 0.6
+  res = 1
+  lc = 0.001
+  reactivity = 0.1
+}
+VOF {
+  r = 1 g = 1 b = 1
+  shading = Constant
+  maxlevel = -1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} P {
+  amin = 1
+  amax = 1
+  cmap = Jet
+} T {
+  reversed = 0
+  use_scalar = 0
+  draw_edges = 0
+  interpolate = 0
+}
diff --git a/doc/examples/boussinesq/boussinesq.gfv b/doc/examples/boussinesq/boussinesq.gfv
new file mode 100644
index 0000000..b55c6a2
--- /dev/null
+++ b/doc/examples/boussinesq/boussinesq.gfv
@@ -0,0 +1,26 @@
+# GfsView 2D
+View {
+  tx = 0 ty = -0.55
+  sx = 1 sy = 1 sz = 1
+  q0 = 0 q1 = 0 q2 = 0 q3 = 1
+  fov = 18.5
+  r = 0.3 g = 0.4 b = 0.6
+  res = 1
+  lc = 0.001
+  reactivity = 0.1
+}
+Linear {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = 8
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} T {
+  amin = 0 min = 0
+  amax = 0 max = 1
+  cmap = Jet
+} 0 {
+  reversed = 0
+  use_scalar = 1
+}
diff --git a/doc/examples/classes.c b/doc/examples/classes.c
index d8ba6fb..f55ef12 100644
--- a/doc/examples/classes.c
+++ b/doc/examples/classes.c
@@ -1,13 +1,12 @@
 #include <string.h>
 #include "init.h"
-#define WIKI "http\\://gfs.sf.net/wiki/index.php/"
 
-static void key_value_pair (const char * key, FILE * lang)
+static void key_value_pair (const char * key)
 {
-  fprintf (lang, "gfs_keyword = \"%s\"\n", key);
+  printf ("%s\n", key);
   /* keywords must start with Gfs */
   g_assert (strstr (key, "Gfs") == key);
-  fprintf (lang, "gfs_keyword = \"%s\"\n", &(key[3]));
+  printf ("%s\n", &(key[3]));
 }
 
 int main (int argc, char * argv[])
@@ -16,28 +15,18 @@ int main (int argc, char * argv[])
 
   klass = gfs_classes ();
 
-  printf ("# Language file for source-highlight\n"
-	  "# Generated automatically by classes.c\n"
-	  "\n");
-
-  key_value_pair ("GfsDefine", stdout);
-  key_value_pair ("GfsProjectionParams", stdout);
-  key_value_pair ("GfsApproxProjectionParams", stdout);
-
-  /* Map module  */
-  key_value_pair ("GfsMapProjection", stdout);
+  key_value_pair ("GfsDefine");
+  key_value_pair ("GfsTime");
+  key_value_pair ("GfsDeferredCompilation");
+  key_value_pair ("GfsProjectionParams");
+  key_value_pair ("GfsApproxProjectionParams");
+  key_value_pair ("GfsPhysicalParams");
+  key_value_pair ("GfsAdvectionParams");
 
   while (*klass) {
-    key_value_pair ((*klass)->info.name, stdout);
+    key_value_pair ((*klass)->info.name);
     klass++;
   }
   
-  printf ("\n"
-	  "include \"cpp.lang\"\n"
-	  "\n"
-	  "comment start \"#\"\n"
-	  "\n"
-	  "redef preproc = \"C preprocessor command is not compatible with"
-	  " the use of # as comment character in GTS\"\n");
   return 0;
 }
diff --git a/doc/examples/column/column.gfs b/doc/examples/column/column.gfs
new file mode 100644
index 0000000..cb57309
--- /dev/null
+++ b/doc/examples/column/column.gfs
@@ -0,0 +1,252 @@
+# Title: Collapse of a column of grains
+#
+# Description:
+#
+# Granular materials such as sand, rice, rocks etc... often exhibit
+# ``fluid-like'' collective behaviour. It is thus tempting to try to
+# describe the motion of granular matter using equations similar to
+# those used to describe fluid motion (e.g. the Navier-Stokes
+# equations).
+# Things are not that simple however. The dissipative properties of
+# granular matter are in particular quite different from those of
+# simple fluids (i.e. Newtonian fluids which are characterised by a
+# constant viscosity coefficient).
+#
+# The search for constitutive equations (i.e. rheologies) able to
+# describe flowing granular matter has been unsucessful for many
+# years, so that the modelling of even simple granular flows (e.g. the
+# flow of sand in an hourglass) was impossible up until very recently.
+# In this example, we show how the recently proposed $\mu(I)$ rheology
+# is able to describe very satisfactorily a complex granular flow: the
+# collapse under its own weight of a column of grains. The aspect
+# ratio of the column $a$ is an important parameter and is set to 6.26
+# for this particular example. The animation in Figure \ref{movie}
+# illustrates the evolution of the shape of the column as it collapses
+# and spreads onto the horizontal surface (in black). The red line is
+# a passive internal tracer which helps to visualise the deformation
+# of the bulk.
+#
+# Figure \ref{comparison} compares the results of the continuum
+# $\mu(I)$ model with a Contact Dynamics simulation \cite{staron2005}
+# where the motion of individual grains is computed explicitly. The
+# shapes of both the surface and bulk deformations are very well
+# captured by the continuum model.
+#
+# A detailed analysis of this example is given in \cite{lagree2011}.
+#
+# \begin{figure}[htbp]
+# \caption{\label{movie}Evolution of the outer (black) and inner (red)
+# shape of the granular column.}
+# \begin{center}
+# \video{column/movie}{640}{240}
+# \end{center}
+# \end{figure}
+#
+# \begin{figure}[htbp]
+# \caption{\label{comparison}Comparison between the $\mu(I)$ continuum
+# model (red line) and discrete simulation (grains). $a=6.26$,
+# $\mu_s=0.32$, $\Delta\mu=0.28$, $I_0=0.4$. The non-dimensional time
+# is $t_\star=t\sqrt{g/H_0}$, with $g$ the acceleration of gravity and
+# $H_0$ the initial height of the column.}
+# \begin{center}
+# \begin{tabular}{cc}
+# \includegraphics[width=0.45\hsize]{comparison-0.eps} &
+# \includegraphics[width=0.45\hsize]{comparison-0.66.eps} \\
+# $t_\star=0$ & $t_\star=0.66$ \\
+# \includegraphics[width=0.45\hsize]{comparison-0.95.eps} &
+# \includegraphics[width=0.45\hsize]{comparison-1.24.eps} \\
+# $t_\star=0.95$ & $t_\star=1.24$ \\
+# \multicolumn{2}{c}{\includegraphics[width=0.9\hsize]{comparison-1.52.eps}} \\
+# \multicolumn{2}{c}{$t_\star=1.52$} \\
+# \multicolumn{2}{c}{\includegraphics[width=0.9\hsize]{comparison-2.28.eps}} \\
+# \multicolumn{2}{c}{$t_\star=2.28$}
+# \end{tabular}
+# \end{center}
+# \end{figure}
+#
+# Author: St\'ephane Popinet, Pierre-Yves Lagr\'ee, Lydie Staron
+# Command: gerris2D -m column.gfs | gfsview2D movie.gfv
+# Version: 110104
+# Required files: comparison.plot column.gfv grains.tgz movie.gfv
+# Running time: 10 minutes
+# Generated files: comparison-0.eps comparison-0.66.eps comparison-0.95.eps comparison-1.24.eps comparison-1.52.eps comparison-2.28.eps movie.eps movie.ogv
+
+# Grain size
+Define D 0.04623
+
+# Density
+Define RHOF 0.001
+Define RHO(T) (T + RHOF*(1. - T))
+
+# Viscosity of light phase
+Define MUF 0.0001
+
+# Domain extent
+Define LDOMAIN 32.
+
+# Initial conditions
+Define H0 6.26
+Define R0 1.
+
+# Maximum refinement
+Define LEVEL 10
+
+1 0 GfsSimulation GfsBox GfsGEdge { 
+    # shift origin of the domain
+    x = 0.5 y = 0.5 
+} {
+    PhysicalParams { L = LDOMAIN }
+
+    Time { end = 5.8 dtmax = 1e-2 }
+
+    # We need to tune the solver
+    AdvectionParams { gc = 1 }
+    ApproxProjectionParams { tolerance = 1e-4 }
+    ProjectionParams { tolerance = 1e-4 }
+
+    # VOF tracer and interface positions
+    VariableTracerVOF T
+    VariablePosition X T x
+    VariablePosition Y T y
+
+    # "internal" tracer
+    VariableTracerVOF Ti
+    InitFraction Ti ({
+	    double diametre = 5e-3;
+	    double r0 = 0.677/6.26;
+	    double centre = x - 4.*diametre/r0;
+	    double top = y - H0 + 9.*diametre/r0;
+	    double side = x - R0 + 5.*diametre/r0;
+	    return union (union (-top, -side), centre);
+    })
+
+    # mu(I) granular rheology
+    SourceViscosity {} {
+	double Eta = MUF;
+	if (P > 0. && D2 > 0.) {
+	   double In = sqrt(2.)*D*D2/sqrt(P);
+	   double muI = .32 + (.28)*In/(.4 + In);
+	   double Etamin = sqrt(pow(D,3));
+	   Eta = MAX((muI*P)/(sqrt(2.)*D2), Etamin);
+	   Eta = MIN(Eta,10);
+	}
+	// Classic trick: use harmonic mean for the dynamic viscosity
+	return 1./(T/Eta + (1. - T)/MUF);
+    } {
+	beta = 1 
+	tolerance = 1e-4
+    }
+
+    # Track a "band" around the interface to resolve surface gradients
+    # properly
+    AdaptGradient { istep = 1 } {
+	cmax = 0
+	maxlevel = LEVEL
+    } T
+
+    # Use constant resolution inside the granular material
+    AdaptFunction { istep = 1 } {
+	cmax = 0
+	maxlevel = LEVEL
+    } T
+
+    # density
+    PhysicalParams { alpha = 1./RHO(T) }
+
+    # gravity
+    Source V -1
+
+    # initial conditions
+    Refine 6
+    InitFraction T (union(H0 - y, R0 - x))
+
+    OutputTime { istep = 10 } stderr
+    OutputProjectionStats { istep = 10 } stderr
+    OutputDiffusionStats { istep = 10 } stderr
+
+    EventSum { istep = 1 } U SU
+    EventSum { istep = 1 } V SV
+
+    # remove ejected droplets (just in case)
+    RemoveDroplets { istep = 1 } T -1
+
+    # stop when the acceleration of any cell full of granular material
+    # is less than 1e-2/0.1
+    # Init { istep = 1 } { UT = U*(T == 1.) }
+    # EventStop { start = 0.1 step = 0.1 } UT 1e-2 DU
+    # OutputScalarNorm { istep = 10 } du-LEVEL { v = DU }
+
+    # check mass conservation
+    OutputScalarSum { istep = 10 } t-LEVEL { v = T }
+
+    OutputSimulation { istep = 10 } stdout
+
+    # generate profiles
+    OutputSimulation { start = 0 } snapshot-%g.gfs
+    OutputSimulation { start = 1.65132 } snapshot-%g.gfs
+    OutputSimulation { start = 2.3769 } snapshot-%g.gfs
+    OutputSimulation { start = 3.10248 } snapshot-%g.gfs
+    OutputSimulation { start = 3.80304 } snapshot-%g.gfs
+    OutputSimulation { start = 5.70456 } snapshot-%g.gfs
+
+    # interface positions
+    OutputScalarNorm { istep = 10 } X-H0-LEVEL { v = (T > 0.1 ? X : G_MAXDOUBLE) }
+    OutputScalarNorm { istep = 10 } Y-H0-LEVEL { v = (T > 0.1 ? Y : G_MAXDOUBLE) }
+    # position of the "center" of the column
+    OutputScalarNorm { istep = 10 } Yc-H0-LEVEL { v = (x < 0.1 ? Y : G_MAXDOUBLE) }
+
+    # center of mass
+    OutputScalarSum { istep = 10 } {
+	awk '{
+          print $3,$5/(H0*R0);
+          fflush (stdout);
+        }' > xg-H0-LEVEL
+    } { v = T*x }
+    OutputScalarSum { istep = 10 } {
+	awk '{
+          print $3,$5/(H0*R0);
+          fflush (stdout);
+        }' > yg-H0-LEVEL
+    } { v = T*y }
+
+    # movie
+    GModule gfsview
+    OutputView { step = 5e-2 } { ppm2theora -s 640x240 > movie.ogv } {
+	width = 1280 height = 480
+    } movie.gfv
+
+    # generate figures
+    EventScript { start = end } {
+	for t in 0 1.65132 2.3769 3.10248 3.80304 5.70456; do
+	    echo "Save snapshot-$t.gnu { format = Gnuplot }" | \
+     		gfsview-batch2D column.gfv snapshot-$t.gfs
+	done
+	echo "Save movie.ppm { format = PPM width = 1280 height = 480 }" | \
+	    gfsview-batch2D movie.gfv snapshot-0.gfs
+	convert movie.ppm -geometry 640x240 movie.png
+	convert movie.png movie.eps
+	rm -f movie.ppm
+	tar xzf grains.tgz
+	gnuplot comparison.plot
+    }
+}
+GfsBox {
+    top = Boundary {
+	# shift the reference pressure by the hydrostatic pressure of
+	# the light phase, i.e. P = 0 at the bottom boundary in the
+	# light phase. I am not sure whether this makes a real
+	# difference.
+	BcDirichlet P -RHOF*LDOMAIN
+	BcNeumann V 0
+    }
+    bottom = Boundary {
+	# no-slip at the bottom
+	BcDirichlet U 0
+    }
+    # lateral symmetry
+    left = Boundary
+    # no slip wall on the right-hand-side
+    right = Boundary {
+	BcDirichlet V 0
+    }
+}
diff --git a/doc/examples/column/column.gfv b/doc/examples/column/column.gfv
new file mode 100644
index 0000000..9bb1277
--- /dev/null
+++ b/doc/examples/column/column.gfv
@@ -0,0 +1,59 @@
+# GfsView 2D
+View {
+  tx = -0.00187102 ty = -0.00343183
+  sx = 1 sy = 1 sz = 1
+  q0 = 0 q1 = 0 q2 = 0 q3 = 1
+  fov = 12.2885
+  r = 0.3 g = 0.4 b = 0.6
+  res = 1
+  lc = 0.001
+  reactivity = 0.1
+}
+VOF {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+  font_size = 1
+  raster_font = 1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} P {
+  amin = 1
+  amax = 1
+  cmap = Jet
+} T {
+  reversed = 0
+  use_scalar = 0
+  draw_edges = 0
+  interpolate = 0
+}
+VOF {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+  font_size = 1
+  raster_font = 1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} P {
+  amin = 1
+  amax = 1
+  cmap = Jet
+} Ti {
+  reversed = 0
+  use_scalar = 0
+  draw_edges = 0
+  interpolate = 0
+}
+Symmetry {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+  font_size = 1
+  raster_font = 1
+} {
+  n.x = 1 n.y = 0 n.z = 0
+  pos = 0
+}
diff --git a/doc/examples/column/comparison.plot b/doc/examples/column/comparison.plot
new file mode 100644
index 0000000..c2f2e9a
--- /dev/null
+++ b/doc/examples/column/comparison.plot
@@ -0,0 +1,36 @@
+r0=0.677/6.26
+unset xtics
+unset ytics
+unset border
+set size ratio -1
+unset key
+
+set term postscript eps color lw 2 enhanced size 5,3.5
+set xrange [-5:5]
+set yrange [0:7]
+
+set output 'comparison-0.eps'
+plot "< awk '{if ($4 > 0) print $0;}' < grains-0.dat" u ($1/r0):($2/r0):($3/r0) w circles lc rgb "#8f8f8f" fs solid 1 noborder, "< awk '{if ($4 == 0) print $0;}' < grains-0.dat" u ($1/r0):($2/r0):($3/r0) w circles lc rgb "black" fs solid 1 noborder, 'snapshot-0.gnu' w l lw 2 lt 1
+
+set output 'comparison-0.66.eps'
+plot "< awk '{if ($4 > 0) print $0;}' < grains-0.66.dat" u ($1/r0):($2/r0):($3/r0) w circles lc rgb "#8f8f8f" fs solid 1 noborder, "< awk '{if ($4 == 0) print $0;}' < grains-0.66.dat" u ($1/r0):($2/r0):($3/r0) w circles lc rgb "black" fs solid 1 noborder, 'snapshot-1.65132.gnu' w l lw 2 lt 1
+
+set term postscript eps color lw 2 enhanced size 5,1.75
+set xrange [-5:5]
+set yrange [0:3.5]
+
+set output 'comparison-0.95.eps'
+plot "< awk '{if ($4 > 0) print $0;}' < grains-0.95.dat" u ($1/r0):($2/r0):($3/r0) w circles lc rgb "#8f8f8f" fs solid 1 noborder, "< awk '{if ($4 == 0) print $0;}' < grains-0.95.dat" u ($1/r0):($2/r0):($3/r0) w circles lc rgb "black" fs solid 1 noborder, 'snapshot-2.3769.gnu' w l lw 2 lt 1
+
+set output 'comparison-1.24.eps'
+plot "< awk '{if ($4 > 0) print $0;}' < grains-1.24.dat" u ($1/r0):($2/r0):($3/r0) w circles lc rgb "#8f8f8f" fs solid 1 noborder, "< awk '{if ($4 == 0) print $0;}' < grains-1.24.dat" u ($1/r0):($2/r0):($3/r0) w circles lc rgb "black" fs solid 1 noborder, 'snapshot-3.10248.gnu' w l lw 2 lt 1
+
+set term postscript eps color lw 2 enhanced size 10,1
+set xrange [-10:10]
+set yrange [0:2]
+
+set output 'comparison-1.52.eps'
+plot "< awk '{if ($4 > 0) print $0;}' < grains-1.52.dat" u ($1/r0):($2/r0):($3/r0) w circles lc rgb "#8f8f8f" fs solid 1 noborder, "< awk '{if ($4 == 0) print $0;}' < grains-1.52.dat" u ($1/r0):($2/r0):($3/r0) w circles lc rgb "black" fs solid 1 noborder, 'snapshot-3.80304.gnu' w l lw 2 lt 1
+
+set output 'comparison-2.28.eps'
+plot "< awk '{if ($4 > 0) print $0;}' < grains-2.28.dat" u ($1/r0):($2/r0):($3/r0) w circles lc rgb "#8f8f8f" fs solid 1 noborder, "< awk '{if ($4 == 0) print $0;}' < grains-2.28.dat" u ($1/r0):($2/r0):($3/r0) w circles lc rgb "black" fs solid 1 noborder, 'snapshot-5.70456.gnu' w l lw 2 lt 1
diff --git a/doc/examples/column/grains.tgz b/doc/examples/column/grains.tgz
new file mode 100644
index 0000000..0263627
Binary files /dev/null and b/doc/examples/column/grains.tgz differ
diff --git a/doc/examples/column/movie.gfv b/doc/examples/column/movie.gfv
new file mode 100644
index 0000000..b5b3217
--- /dev/null
+++ b/doc/examples/column/movie.gfv
@@ -0,0 +1,66 @@
+# GfsView 2D
+View {
+  tx = -0.00133694 ty = -0.102068
+  sx = 1 sy = 1 sz = 1
+  q0 = 0 q1 = 0 q2 = 0 q3 = 1
+  fov = 3.64804
+  r = 1 g = 1 b = 1
+  res = 1
+  lc = 0.001
+  reactivity = 0.1
+}
+VOF {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+  font_size = 1
+  raster_font = 1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} P {
+  amin = 1
+  amax = 1
+  cmap = Jet
+} T {
+  reversed = 0
+  use_scalar = 0
+  draw_edges = 0
+  interpolate = 0
+}
+VOF {
+  r = 1 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+  font_size = 1
+  raster_font = 1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} P {
+  amin = 1
+  amax = 1
+  cmap = Jet
+} Ti {
+  reversed = 0
+  use_scalar = 0
+  draw_edges = 0
+  interpolate = 0
+}
+Symmetry {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+  font_size = 1
+  raster_font = 1
+} {
+  n.x = 1 n.y = 0 n.z = 0
+  pos = 0
+}
+Boundaries {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+  font_size = 1
+  raster_font = 1
+}
diff --git a/doc/examples/cyclone/cyclone.gfs b/doc/examples/cyclone/cyclone.gfs
new file mode 100644
index 0000000..885ddf5
--- /dev/null
+++ b/doc/examples/cyclone/cyclone.gfs
@@ -0,0 +1,180 @@
+# Title: Cyclone-generated wave field
+#
+# Description:
+#
+# The wave model is used to simulate the evolution of the wave field
+# generated by a model cyclone. See Popinet et al, 2009, Ocean
+# Modelling for a detailed description.
+#
+# The simulation domain is $3328\times 3328$ km and the evolution is
+# simulated for 48 hours, during which the maximum wind velocity
+# increases from 0 to 50 m/s.
+#
+# The evolution of the significant wave height and corresponding
+# adaptive mesh is illustrated in Figure \ref{hs}. The maximum
+# significant wave height and wind speed evolutions are illustrated in
+# Figure \ref{hsmax}.
+#
+# Interestingly the extrema of significant wave height are shifted
+# compared to the wind speed extrema (Figure \ref{shifted}). This
+# shift has also been observed in real cyclone-generated wave fields.
+#
+# \begin{figure}
+# \caption{\label{hs}Evolution of the significant wave height (left
+# column) and adaptive mesh (right column).}
+# \begin{center}
+# \begin{tabular}{cc}
+# \includegraphics*[width=0.45\hsize]{hs-12.eps} &
+# \includegraphics*[width=0.45\hsize]{mesh-12.eps} \\
+# \multicolumn{2}{c}{$t=12$ hours} \\
+# \\
+# \includegraphics*[width=0.45\hsize]{hs-24.eps} &
+# \includegraphics*[width=0.45\hsize]{mesh-24.eps} \\
+# \multicolumn{2}{c}{$t=24$ hours} \\
+# \\
+# \includegraphics*[width=0.45\hsize]{hs-36.eps} &
+# \includegraphics*[width=0.45\hsize]{mesh-36.eps} \\
+# \multicolumn{2}{c}{$t=36$ hours} \\
+# \\
+# \includegraphics*[width=0.45\hsize]{hs-48.eps} &
+# \includegraphics*[width=0.45\hsize]{mesh-48.eps} \\
+# \multicolumn{2}{c}{$t=48$ hours}
+# \end{tabular}
+# \end{center}
+# \end{figure}
+#
+# \begin{figure}
+# \caption{\label{hsmax}Evolution of the maximum significant wave
+# height and maximum wind speed.}
+# \begin{center}
+# \includegraphics*[width=\hsize]{hsmax.eps}
+# \end{center}
+# \end{figure}
+#
+# \begin{figure}
+# \caption{\label{shifted}Significant wave height (colours) and wind field.}
+# \begin{center}
+# \includegraphics*[width=0.8\hsize]{shifted.eps}
+# \end{center}
+# \end{figure}
+#
+# Author: St\'ephane Popinet
+# Command: gerris2D -DLEVEL=7 -DALPHA=3. cyclone.gfs | gfsview2D cyclone.gfv
+# Version: 20091105
+# Required files: cyclone.gfv hs.gfv mesh.gfv shifted.gfv
+# Running time: 15 minutes
+# Generated files: hs-12.eps hs-36.eps mesh-12.eps mesh-36.eps hs-24.eps hs-48.eps mesh-24.eps mesh-48.eps hsmax.eps shifted.eps
+#
+# Use the spectral wave model 'GfsWave'
+1 0 GfsWave GfsBox GfsGEdge {} {
+    Refine 4
+
+    # Run for 48 hours
+    Time { end = 48 }
+
+    # Domain size is 3328 km
+    PhysicalParams { L = 3328 }
+
+    # Define some useful functions
+    Global {
+        /* gaussian distribution */
+        static double gaussian (double f, double fmean, double fsigma) {
+            return exp (-((f - fmean)*(f - fmean))/(fsigma*fsigma));
+        }
+        /* cos(theta)^n distribution */
+        static double costheta (double theta, double thetam, double thetapower) {
+            double a = cos (theta - thetam);
+            return a > 0. ? pow (a, thetapower) : 0.;
+        }
+        /* Holland cyclone model */
+        static double holland(double r, double Rmax, double Vmax) {
+            if (r < Rmax/1e3) return 0.;
+            return Vmax*pow(Rmax/r, 2)*exp(2.*(1. - Rmax/r));
+        }
+        /* Position of the center of the cyclone */
+        double ut = 555./24.; /* km/h */
+        static double xc (double t) {
+            return 0.;
+        }
+        static double yc (double t) {
+            return 1110. - ut*t;
+        }
+        /* Intensity of the cyclone as a function of time */
+        static double vmax (double t) {
+            return 50.*(t < 25. ? t/25. : 1.);
+        }
+        /* velocity components */
+        static double ur (double x, double y, double t) {
+            x -= xc (t);
+            y -= yc (t);
+            double r = sqrt (x*x + y*y);
+            return holland (r, 100., vmax (t))*y/r;
+        }
+        static double vr (double x, double y, double t) {
+            x -= xc (t);
+            y -= yc (t);
+            double r = sqrt (x*x + y*y);
+            return - holland (r, 100., vmax (t))*x/r;
+        }
+    }
+
+    # Use source terms from WaveWatch III
+    GModule wavewatch
+
+    Init { istep = 1 } {
+        # Wind at 10 metres
+        U10 = ur(x, y, t)
+        V10 = vr(x, y, t)
+    }
+
+    # Adapt the mesh according to the error in significant wave height
+    AdaptError { istep = 1 } { cmax = 0.1 minlevel = 4 maxlevel = LEVEL c = Hse } Hs
+    # Adapt the mesh according to the error in the norm of the forcing wind field
+    AdaptError { istep = 1 } { 
+        cmax = 0.2 minlevel = 4 maxlevel = LEVEL c = Ve 
+    } sqrt(U10*U10 + V10*V10)
+
+    # Output time at every timestep
+    OutputTime { istep = 1 } stderr
+    # Output simulation size
+    OutputBalance { istep = 1 } stderr
+    # Output timing statistics every 100 timesteps
+    OutputTiming { istep = 100 } stderr
+
+    # Output significant wave height to file hs, every quarter of an hour
+    OutputScalarStats { step = 0.25 } hs { v = Hs }
+    # Output norm of wind velocity to file vr, every quarter of an hour
+    OutputScalarStats { step = 0.25 } vr { v = sqrt(U10*U10 + V10*V10) }
+
+    # Output simulation to standard output for visualisation with GfsView
+    OutputSimulation { istep = 10 } stdout
+    # Output simulation results every 4 hours
+    OutputSimulation { step = 4 } sim-%g.gfs
+    # Compress the files to save disk space
+    EventScript { step = 4 } { gzip -f sim-*.gfs }
+    # Create movies of significant wave height and level of refinement
+    OutputPPM { istep = 1 } { ppm2mpeg > hs.mpg } { v = Hs maxlevel = 9 }
+    OutputPPM { istep = 1 } { ppm2mpeg > level.mpg } { v = Level min = 4 max = LEVEL maxlevel = 9 }
+
+    # Create figures at the end of the simulation
+    EventScript { start = end } {
+	for i in 12 24 36 48; do
+	    echo "Save hs-$i.eps { format = EPS }" | gfsview-batch2D sim-$i.gfs.gz hs.gfv
+	    echo "Save mesh-$i.eps { format = EPS }" | gfsview-batch2D sim-$i.gfs.gz mesh.gfv
+	done
+	echo "Save shifted.eps { format = EPS }" | gfsview-batch2D sim-48.gfs.gz shifted.gfv
+	cat <<EOF | gnuplot
+        set term postscript eps color lw 2 18
+        set output 'hsmax.eps'
+        set xlabel 'Time (hours)'
+        set ylabel 'Amplitude (m or m/s)'
+        set xtics 0,12,48
+        set grid
+        plot 'hs' u 3:11 w l t 'max(Hs)', 'vr' u 3:11 w l t 'max(|U10|)'
+EOF
+    }
+} {
+    # Garden Sprinkler Effect alleviation parameter
+    alpha_s = ALPHA
+}
+GfsBox {}
diff --git a/doc/examples/cyclone/cyclone.gfv b/doc/examples/cyclone/cyclone.gfv
new file mode 100644
index 0000000..8d85f98
--- /dev/null
+++ b/doc/examples/cyclone/cyclone.gfv
@@ -0,0 +1,51 @@
+# GfsView 2D
+View {
+  tx = -0.0188795 ty = 0.00156528
+  sx = 1 sy = 1 sz = 1
+  q0 = 0 q1 = 0 q2 = 0 q3 = 1
+  fov = 24.5824
+  r = 0.3 g = 0.4 b = 0.6
+  res = 1
+  lc = 0.001
+  reactivity = 0.1
+}
+Cells {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+}
+Linear {
+  r = 1 g = 1 b = 1
+  shading = Constant
+  maxlevel = -1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} Hs {
+  amin = 1
+  amax = 1
+  cmap = Jet
+} 0 {
+  reversed = 0
+  use_scalar = 1
+}
+Isoline {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} Hs {
+  amin = 0 min = 3.57074e-10
+  amax = 0 max = 19
+  cmap = Jet
+} 0 {
+  reversed = 0
+  use_scalar = 1
+} {
+  n = 18
+}
diff --git a/doc/examples/cyclone/hs.gfv b/doc/examples/cyclone/hs.gfv
new file mode 100644
index 0000000..f75fb9c
--- /dev/null
+++ b/doc/examples/cyclone/hs.gfv
@@ -0,0 +1,43 @@
+# GfsView 2D
+View {
+  tx = -0.0188795 ty = 0.00156528
+  sx = 1 sy = 1 sz = 1
+  q0 = 0 q1 = 0 q2 = 0 q3 = 1
+  fov = 24.5824
+  r = 0.3 g = 0.4 b = 0.6
+  res = 1
+  lc = 0.001
+  reactivity = 0.1
+}
+Linear {
+  r = 1 g = 1 b = 1
+  shading = Constant
+  maxlevel = -1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} Hs {
+  amin = 1
+  amax = 1
+  cmap = Jet
+} 0 {
+  reversed = 0
+  use_scalar = 1
+}
+Isoline {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} Hs {
+  amin = 0 min = 3.57074e-10
+  amax = 0 max = 19
+  cmap = Jet
+} 0 {
+  reversed = 0
+  use_scalar = 1
+} {
+  n = 18
+}
diff --git a/doc/examples/cyclone/mesh.gfv b/doc/examples/cyclone/mesh.gfv
new file mode 100644
index 0000000..dca89b5
--- /dev/null
+++ b/doc/examples/cyclone/mesh.gfv
@@ -0,0 +1,19 @@
+# GfsView 2D
+View {
+  tx = -0.0188795 ty = 0.00156528
+  sx = 1 sy = 1 sz = 1
+  q0 = 0 q1 = 0 q2 = 0 q3 = 1
+  fov = 24.5824
+  r = 0.3 g = 0.4 b = 0.6
+  res = 1
+  lc = 0.001
+  reactivity = 0.1
+}
+Cells {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+}
diff --git a/doc/examples/cyclone/shifted.gfv b/doc/examples/cyclone/shifted.gfv
new file mode 100644
index 0000000..4564785
--- /dev/null
+++ b/doc/examples/cyclone/shifted.gfv
@@ -0,0 +1,41 @@
+# GfsView 2D
+View {
+  tx = -0.0022794 ty = 0.000849583
+  sx = 1 sy = 1 sz = 1
+  q0 = 0 q1 = 0 q2 = 0 q3 = 1
+  fov = 3.14988
+  r = 0.3 g = 0.4 b = 0.6
+  res = 1
+  lc = 0.001
+  reactivity = 0.1
+}
+Linear {
+  r = 1 g = 1 b = 1
+  shading = Constant
+  maxlevel = -1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} Hs {
+  amin = 0 min = 2
+  amax = 0 max = 20
+  cmap = Jet
+} 0 {
+  reversed = 0
+  use_scalar = 1
+}
+Vectors {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} P {
+  amin = 1
+  amax = 1
+  cmap = Jet
+} U10/100 V10/100 {
+  scale = 0.03
+  use_scalar = 0
+}
diff --git a/doc/examples/cylinder/parallel/parallel.gfs b/doc/examples/cylinder/parallel/parallel.gfs
index 55c7f91..e3d82ab 100644
--- a/doc/examples/cylinder/parallel/parallel.gfs
+++ b/doc/examples/cylinder/parallel/parallel.gfs
@@ -78,13 +78,11 @@
   # Writes info about the convergence of the Poisson solver on standard error
   OutputProjectionStats { istep = 10 } stderr
 
-  # Outputs the simulation to standard output every 0.05 time unit
-  OutputSimulation { step = 0.05 } stdout
-  
-  # Sends a command to gfsview on standard output to save PPM images
-  EventScript { step = 0.05 } {
-      echo "Save stdout { width = 1600 height = 200 }" 
-  }
+  # Save MPEG movie using GfsView module
+  GModule gfsview
+  OutputView { step = 0.05 } { 
+      ppm2mpeg -s 800x100 > pid.mpg 
+  } { width = 1600 height = 200 } pid.gfv
 
   # Outputs profiling information at the end of the simulation to standard error
   OutputTiming { start = end } stderr
@@ -93,7 +91,7 @@
   OutputSimulation { start = end } end.gfs
   EventScript { start = end } {
       echo "Save pid.eps { format = EPS width = 800 height = 100 line_width = 0.2 }" | \
-	  gfsview-batch2D end.gfs pid.gfv
+	  gfsview-batch2D pid.gfv end.gfs
       awk '{
         if ($1 == "step:")
           t = $4;
diff --git a/doc/examples/cylinder/parallel/parallel.sh b/doc/examples/cylinder/parallel/parallel.sh
new file mode 100644
index 0000000..ac5507b
--- /dev/null
+++ b/doc/examples/cylinder/parallel/parallel.sh
@@ -0,0 +1,11 @@
+# !/bin/sh
+
+# split the domain twice to get enough boxes to redistribute
+gerris2D -s 2 parallel.gfs > parallel-s2.gfs
+
+# create the initial partition into 2^2=4 subdomains
+gerris2D -p 2 parallel-s2.gfs > parallel-p2.gfs
+
+# run the parallel simulation on 4 processors, pipe the output to
+# gfsview and ppm2mpeg to generate the pid movie
+mpirun -np 4 gerris2D parallel-p2.gfs
diff --git a/doc/examples/cylinder/parallel/pid.gfv b/doc/examples/cylinder/parallel/pid.gfv
new file mode 100644
index 0000000..ed18cbd
--- /dev/null
+++ b/doc/examples/cylinder/parallel/pid.gfv
@@ -0,0 +1,40 @@
+# GfsView 2D
+View {
+  tx = -3.50148 ty = -0.000614477
+  sx = 1 sy = 1 sz = 1
+  q0 = 0 q1 = 0 q2 = 0 q3 = 1
+  fov = 3.57418
+  r = 0.3 g = 0.4 b = 0.6
+  res = 1
+  lc = 0.001
+  reactivity = 0.1
+}
+Isoline {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} Vorticity {
+  amin = 0 min = -20
+  amax = 0 max = 20
+  cmap = Jet
+} 0 {
+  reversed = 0
+  use_scalar = 1
+} {
+  n = 20
+}
+Squares {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} Pid {
+  amin = 1
+  amax = 1
+  cmap = Jet
+}
diff --git a/doc/examples/dam/dam.gfs b/doc/examples/dam/dam.gfs
index f251b24..d01264a 100644
--- a/doc/examples/dam/dam.gfs
+++ b/doc/examples/dam/dam.gfs
@@ -32,7 +32,7 @@
 
     # Set a solid boundary close to the top boundary to limit the
     # domain width to one cell (i.e. a 1D domain)
-    Solid (y/8. + 1./pow(2,9) - 1e-6 - 0.5)
+    Solid (y - 3.9999)
 
     # Set the topography Zb and the initial water surface elevation P
     Init {} {
diff --git a/doc/examples/dam/dam.plot b/doc/examples/dam/dam.plot
new file mode 100644
index 0000000..ab043dc
--- /dev/null
+++ b/doc/examples/dam/dam.plot
@@ -0,0 +1,146 @@
+#!/usr/local/bin/gnuplot -persist
+#
+#    
+#    	G N U P L O T
+#    	Version 4.2 patchlevel 2 
+#    	last modified 31 Aug 2007
+#    	System: Linux 2.6.22-16-386
+#    
+#    	Copyright (C) 1986 - 1993, 1998, 2004, 2007
+#    	Thomas Williams, Colin Kelley and many others
+#    
+#    	Type `help` to access the on-line reference manual.
+#    	The gnuplot FAQ is available from http://www.gnuplot.info/faq/
+#    
+#    	Send bug reports and suggestions to <http://sourceforge.net/projects/gnuplot>
+#    
+# set terminal x11 
+# set output
+unset clip points
+set clip one
+unset clip two
+set bar 1.000000
+set border 31 front linetype -1 linewidth 1.000
+set xdata
+set ydata
+set zdata
+set x2data
+set y2data
+set timefmt x "%d/%m/%y,%H:%M"
+set timefmt y "%d/%m/%y,%H:%M"
+set timefmt z "%d/%m/%y,%H:%M"
+set timefmt x2 "%d/%m/%y,%H:%M"
+set timefmt y2 "%d/%m/%y,%H:%M"
+set timefmt cb "%d/%m/%y,%H:%M"
+set boxwidth
+set style fill  empty border
+set style rectangle back fc lt -3 fillstyle  solid 1.00 border -1
+set dummy x,y
+set format x "% g"
+set format y "% g"
+set format x2 "% g"
+set format y2 "% g"
+set format z "% g"
+set format cb "% g"
+set angles radians
+unset grid
+set key title ""
+unset key
+unset label
+unset arrow
+set style increment default
+unset style line
+unset style arrow
+set style histogram clustered gap 2 title  offset character 0, 0, 0
+unset logscale
+set offsets 0, 0, 0, 0
+set pointsize 1
+set encoding default
+unset polar
+unset parametric
+unset decimalsign
+set view 60, 30, 1, 1
+set samples 100, 100
+set isosamples 10, 10
+set surface
+unset contour
+set clabel '%8.3g'
+set mapping cartesian
+set datafile separator whitespace
+unset hidden3d
+set cntrparam order 4
+set cntrparam linear
+set cntrparam levels auto 5
+set cntrparam points 5
+set size ratio -1 1,1
+set origin 0,0
+set style data points
+set style function lines
+set xzeroaxis linetype -2 linewidth 1.000
+set yzeroaxis linetype -2 linewidth 1.000
+set zzeroaxis linetype -2 linewidth 1.000
+set x2zeroaxis linetype -2 linewidth 1.000
+set y2zeroaxis linetype -2 linewidth 1.000
+set ticslevel 0.5
+set mxtics default
+set mytics default
+set mztics default
+set mx2tics default
+set my2tics default
+set mcbtics default
+set xtics border in scale 1,0.5 mirror norotate  offset character 0, 0, 0
+set xtics autofreq 
+set ytics border in scale 1,0.5 mirror norotate  offset character 0, 0, 0
+set ytics autofreq 
+set ztics border in scale 1,0.5 nomirror norotate  offset character 0, 0, 0
+set ztics autofreq 
+set nox2tics
+set noy2tics
+set cbtics border in scale 1,0.5 mirror norotate  offset character 0, 0, 0
+set cbtics autofreq 
+set title "" 
+set title  offset character 0, 0, 0 font "" norotate
+set timestamp bottom 
+set timestamp "" 
+set timestamp  offset character 0, 0, 0 font "" norotate
+set rrange [ * : * ] noreverse nowriteback  # (currently [0.00000:10.0000] )
+set trange [ * : * ] noreverse nowriteback  # (currently [-5.00000:5.00000] )
+set urange [ * : * ] noreverse nowriteback  # (currently [-5.00000:5.00000] )
+set vrange [ * : * ] noreverse nowriteback  # (currently [-5.00000:5.00000] )
+set xlabel "x" 
+set xlabel  offset character 0, 0, 0 font "" textcolor lt -1 norotate
+set x2label "" 
+set x2label  offset character 0, 0, 0 font "" textcolor lt -1 norotate
+set xrange [ * : * ] noreverse nowriteback  # (currently [-2.77390:0.697413] )
+set x2range [ * : * ] noreverse nowriteback  # (currently [-2.77390:0.697413] )
+set ylabel "z" 
+set ylabel  offset character 0, 0, 0 font "" textcolor lt -1 rotate by 90
+set y2label "" 
+set y2label  offset character 0, 0, 0 font "" textcolor lt -1 rotate by 90
+set yrange [ * : * ] noreverse nowriteback  # (currently [-1.40832:2.01706] )
+set y2range [ * : * ] noreverse nowriteback  # (currently [-1.25079:2.02955] )
+set zlabel "" 
+set zlabel  offset character 0, 0, 0 font "" textcolor lt -1 norotate
+set zrange [ * : * ] noreverse nowriteback  # (currently [-10.0000:10.0000] )
+set cblabel "" 
+set cblabel  offset character 0, 0, 0 font "" textcolor lt -1 norotate
+set cbrange [ * : * ] noreverse nowriteback  # (currently [-10.0000:10.0000] )
+set zero 1e-08
+set lmargin -1
+set bmargin -1
+set rmargin -1
+set tmargin -1
+set locale "C"
+set pm3d explicit at s
+set pm3d scansautomatic
+set pm3d interpolate 1,1 flush begin noftriangles nohidden3d corners2color mean
+set palette positive nops_allcF maxcolors 0 gamma 1.5 color model RGB 
+set palette rgbformulae 7, 5, 15
+set colorbox default
+set colorbox vertical origin screen 0.9, 0.2, 0 size screen 0.05, 0.6, 0 bdefault
+set loadpath 
+set fontpath 
+set fit noerrorvariables
+# GNUTERM = "x11"
+# plot [-4.:4.]'sim-9.txt' u 1:8:($4+$8) w filledcu lc 3, 'sim-0.txt' u 1:8 w l lw 2 lc 1
+#    EOF
diff --git a/doc/examples/depend.py b/doc/examples/depend.py
index dc18220..42ab4f9 100644
--- a/doc/examples/depend.py
+++ b/doc/examples/depend.py
@@ -8,8 +8,13 @@ import gfs2tex
 dists = ""
 depends = ""
 docs = ""
-
+tests = ""
 for start in sys.argv[1:]:
+    tests += "\\\n\t" + start + ".sh"
+    f = open(start + ".sh", "w")
+    f.write("python -u test.py " + start + "\n")
+    f.close()
+    os.chmod(start + ".sh",0755)
     for root, dirs, files in os.walk(start,topdown=True):
         if not ".xvpics" in root:
             example = gfs2tex.Example(root)
@@ -18,15 +23,17 @@ for start in sys.argv[1:]:
             dists += "\\\n\t" + name
             depends += "\\\n\t" + name
             for f in example.required:
-                if os.path.exists("../../_darcs/current/doc/examples/" + example.path + "/" + f):
+                if f != "S60-scaled.gts":
                     dists += "\\\n\t" + example.path + "/" + f
             for f in example.generated:
                 depends += "\\\n\t" + example.path + "/" + f
-                if f[-4:] == ".mpg":
+                if f[-4:] == ".mpg" or f[-4:] == ".ogv" or f[-4:] == ".png" or f[-4:] == ".mp4":
                     docs += "\\\n\t" + example.path + "/" + f
 
 print "DOCS = " + docs + dists
 print ""
 print "EXTRA_DIST += " + dists
 print ""
+print "TESTS = " + tests
+print ""
 print "examples.tex: " + depends
diff --git a/doc/examples/examples.bib b/doc/examples/examples.bib
new file mode 100644
index 0000000..147ef76
--- /dev/null
+++ b/doc/examples/examples.bib
@@ -0,0 +1,58 @@
+ at Article{grilli2007,
+  title =   {{Source constraints and model simulation of the December
+                  26, 2004, Indian Ocean Tsunami}},
+  author =  {Grilli, S.T. and Ioualalen, M. and Asavanant, J. and Shi,
+                  F. and Kirby, J.T. and Watts, P.},
+  journal = {Journal of Waterway, Port, Coastal, and Ocean Engineering},
+  volume =  {133},
+  pages =   {414--428},
+  year =    {2007}
+}
+
+ at Article{lagree2011,
+  author = 	 {P.-Y. Lagr\'ee and L. Staron and S. Popinet},
+  title = 	 {The granular column collapse as a continuum: testing
+                  the $\mu(I)$ rheology in a Navier-Stokes solver},
+  journal = 	 {Journal of Fluid Mechanics},
+  year = 	 2011,
+  note = 	 {submitted}
+}
+
+ at Article{leveque2006,
+  title =   {High-resolution finite volume methods for the shallow
+                  water equations with bathymetry and dry states},
+  author =  {LeVeque, R.J. and George, D.L.},
+  journal = {Advanced numerical models for simulating tsunami waves and runup},
+  volume =  {10},
+  pages =   {43--73},
+  year =    {2006}
+}
+
+ at Article{popinet2011,
+  author = 	 {S. Popinet},
+  title = 	 {Quadtree-adaptive tsunami modelling},
+  journal = 	 {Ocean Dynamics},
+  year = 	 {2011}
+}
+
+ at Article{rosales2005,
+  title   = {{Linear forcing in numerical simulations of isotropic
+                  turbulence: Physical space implementations and
+                  convergence properties}},
+  author  = {Rosales, C. and Meneveau, C.},
+  journal = {Physics of Fluids},
+  volume  = {17},
+  pages   = {095106},
+  year    = {2005}
+}
+
+ at Article{staron2005,
+  title   = {Study of the collapse of granular columns using
+                  two-dimensional discrete-grain simulation},
+  author  = {Staron, L. and Hinch, E. J.},
+  journal = {Journal of Fluid Mechanics},
+  volume  = {545},
+  pages   = {1--27},
+  issn    = {0022-1120},
+  year    = {2005}
+}
diff --git a/doc/examples/forcedturbulence/forcedturbulence.gfs b/doc/examples/forcedturbulence/forcedturbulence.gfs
new file mode 100644
index 0000000..cd9c430
--- /dev/null
+++ b/doc/examples/forcedturbulence/forcedturbulence.gfs
@@ -0,0 +1,190 @@
+# Title: Forced isotropic turbulence in a triply-periodic box
+#
+# Description:
+#
+# We compute the evolution of forced isotropic turbulence (see
+# \cite{rosales2005}) and compare Gerris' solution to that of the
+# \htmladdnormallinkfoot{hit3d}{http://code.google.com/p/hit3d/}
+# pseudo-spectral code. The initial condition is an unstable solution
+# to the incompressible Euler equations. Numerical noise in the
+# solution eventually leads to the destabilisation of the base
+# solution into a fully turbulent flow where turbulent dissipation
+# balances the linear input of energy (as illustrated graphically in
+# the animation of Figure \ref{vorticity}).
+#
+# The two codes agree at early time, or until the solution transitions
+# to a turbulent state. This happens earlier in Gerris as the symmetry
+# of the base state is not preserved with the same accuracy as in the
+# pseudo-spectral code (the main reason being the tolerance on
+# non-divergence of the incompressible velocity field). Note however
+# that the statistics produced by the two codes agree well after
+# transition to turbulence.
+#
+# Adaptivity is used in Gerris to reduce the computational
+# cost. Figure \ref{size} illustrates the number of grid points as a
+# function of time.
+#
+# \begin{figure}[htbp]
+# \caption{\label{vorticity}Animation of the evolution of the
+# $\lambda_2$ isosurface (a way to characterise vortices),
+# cross-sections of the level of refinement (bottom plane), of the
+# magnitude of vorticity (right plane) and pressure (left plane).}
+# \begin{center}
+# \htmladdnormallinkfoot{\includegraphics[width=0.8\hsize]{multiview.eps}}{multiview.mpg}
+# \end{center}
+# \end{figure}
+#
+# \begin{figure}[htbp]
+# \caption{\label{energy}Evolution of kinetic energy as computed via
+# Gerris and a pseudo-spectral code. Note how the energy grows
+# exponentially before the flow finally transitions to
+# turbulence. This is because the laminar solution is relatively
+# smooth and its dissipation is unable to balance the energy input.}
+# \begin{center}
+# \includegraphics[width=0.8\hsize]{Energy.eps}
+# \end{center}
+# \end{figure}
+#
+# \begin{figure}[htbp]
+# \caption{\label{dissipation}The dissipation function. The
+# dissipation increases exponentially during the laminar stage as it
+# is proportional to energy at this stage. During transition the
+# dissipation increases drastically as the flow gains energy at higher
+# wavenumbers.}
+# \begin{center}
+# \includegraphics[width=0.8\hsize]{Dissipation.eps}
+# \end{center}
+# \end{figure}
+#
+# \begin{figure}[htbp]
+# \caption{\label{reynolds}The microscale Reynolds number.}
+# \begin{center}
+# \includegraphics[width=0.8\hsize]{Reynolds.eps}
+# \end{center}
+# \end{figure}
+#
+# \begin{figure}[htbp]
+# \caption{\label{size}Number of grid points as a function of time for
+# Gerris and the spectral code.}
+# \begin{center}
+# \includegraphics[width=0.8\hsize]{size.eps}
+# \end{center}
+# \end{figure}
+#
+# Author: Kristjan Gudmundsson
+# Command: mpirun -np 8 gerris3D -m -s1 forcedturbulence.gfs
+# Version: 110131
+# Required files: spectral.dat multiview.gfv
+# Running time: 22 hours on 8 AMD Opteron 2GHz
+# Generated files: multiview.mpg multiview.eps Energy.eps Dissipation.eps Reynolds.eps size.eps
+
+Define MU 0.01
+Define VOLUME (8.*M_PI*M_PI*M_PI)
+Define Ubar (SU/VOLUME)
+Define Vbar (SV/VOLUME)
+Define Wbar (SW/VOLUME)
+Define Unbar (Un/VOLUME)
+
+1 3 GfsSimulation GfsBox GfsGEdge {} {
+
+  Time { end = 300 }
+
+  Refine 4
+  PhysicalParams{ L = 2.*M_PI }
+
+  # The initial condition is "ABC" flow. This is a laminar base flow that 
+  # is easy to implement in both Gerris and a spectral code. 
+  Init {} {
+      U = cos(y) + sin(z)
+      V = sin(x) + cos(z)
+      W = cos(x) + sin(y)
+  }
+
+  # Set the viscosity mu
+  SourceViscosity MU
+
+  # Calculate the mean flow
+  SpatialSum { istep = 1 } SU U
+  SpatialSum { istep = 1 } SV V
+  SpatialSum { istep = 1 } SW W
+  SpatialSum { istep = 1 } Un Velocity
+
+  # Adapt according to the relative error on the velocity field (with
+  # a 5% threshold)
+  AdaptError { istep = 1 } { cmax = 5e-2 maxlevel = 7 } U/Unbar
+  AdaptError { istep = 1 } { cmax = 5e-2 maxlevel = 7 } V/Unbar
+  AdaptError { istep = 1 } { cmax = 5e-2 maxlevel = 7 } W/Unbar
+
+  # Calculate -eps = mu * sum_{ij} (partial_j u_i)^2
+  SpatialSum { istep = 1 } Dissipation { 
+      return MU*(dx("U")*dx("U") + dy("U")*dy("U") + dz("U")*dz("U") + 
+                 dx("V")*dx("V") + dy("V")*dy("V") + dz("V")*dz("V") +
+                 dx("W")*dx("W") + dy("W")*dy("W") + dz("W")*dz("W"));
+  } 
+
+  # The mean fluctuating kinetic energy
+  SpatialSum { istep = 1 } FluctKinEn {
+      return 0.5*((U - Ubar)*(U - Ubar) + 
+                  (V - Vbar)*(V - Vbar) +
+                  (W - Wbar)*(W - Wbar));
+  } 
+
+  # Add the linear forcing, subtracting the mean
+  Source U 0.1*(U - Ubar)
+  Source V 0.1*(V - Vbar)
+  Source W 0.1*(W - Wbar)
+
+  # Output
+  OutputTime { istep = 1 } log
+  OutputBalance { istep = 1 } log
+  OutputScalarStats { istep = 1 } log { v = Unbar }
+  OutputScalarStats { istep = 1 } log { v = U }
+  OutputScalarStats { istep = 1 } Reynolds.dat { 
+      v = 2./3.*FluctKinEn/VOLUME/MU*sqrt(15*MU/(Dissipation/VOLUME))
+  }
+  OutputScalarStats { istep = 1 } Dissipation.dat { v = Dissipation/VOLUME }
+  OutputScalarStats { istep = 1 } Energy.dat { v = FluctKinEn/VOLUME }
+  OutputScalarStats { istep = 1 } Vorticity.dat { v = Vorticity }  
+  EventScript { istep = 100 } { rm -f snapshot-*.gfs }
+  OutputSimulation { istep = 100 } snapshot-%ld.gfs
+  OutputSimulation { start = end } end.gfs
+  
+  # Generate graphics
+  GModule gfsview
+  OutputView { step = 0.1 end = 150 } { ppm2mpeg > multiview.mpg } {
+      width = 512 height = 512
+  } multiview.gfv
+  OutputView { start = end } { convert ppm:- multiview.eps } {
+      width = 512 height = 512
+  } multiview.gfv
+
+  EventScript { start = end } {
+      gnuplot <<EOF
+        set term postscript eps lw 3 solid 20 colour
+
+        set output 'Energy.eps'
+        set xrange [0:300]
+        set xlabel 'Time'
+        set ylabel 'Kinetic energy'
+        set logscale y
+        plot 'Energy.dat' u 3:7 w l t 'Gerris', 'spectral.dat' u 1:(\$3*3/2) w l t 'Spectral'
+
+        set output 'Reynolds.eps'
+        set ylabel 'Microscale Reynolds number'
+        plot 'Reynolds.dat' u 3:7 w l t 'Gerris', 'spectral.dat' u 1:4 w l t 'Spectral'
+
+        set output 'Dissipation.eps'
+        set ylabel 'Dissipation function'
+        plot 'Dissipation.dat' u 3:7 w l t 'Gerris', 'spectral.dat' u 1:2 w l t 'Spectral'
+
+        set output 'size.eps'
+        set ylabel 'Total number of grid points'
+        unset logscale
+        plot "< awk '{ if (\$1 == \"step:\") t = \$4; else if (\$1 == \"domain\") print t,\$5*8.;}' < log" w l t 'Gerris', 128**3 t 'spectral'
+EOF
+  }
+}
+GfsBox {}
+1 1 right
+1 1 top
+1 1 front
diff --git a/doc/examples/forcedturbulence/multiview.gfv b/doc/examples/forcedturbulence/multiview.gfv
new file mode 100644
index 0000000..73601ab
--- /dev/null
+++ b/doc/examples/forcedturbulence/multiview.gfv
@@ -0,0 +1,77 @@
+# GfsView 3D
+View {
+  tx = -0.0122112 ty = 0.0872253
+  sx = 1 sy = 1 sz = 1
+  q0 = -0.284161 q1 = 0.347884 q2 = 0.111265 q3 = 0.886482
+  fov = 35.6081
+  r = 0.3 g = 0.4 b = 0.6
+  res = 1
+  lc = 0.001
+  reactivity = 0.1
+}
+Linear {
+  r = 1 g = 1 b = 1
+  shading = Constant
+  maxlevel = -1
+  font_size = 1
+  raster_font = 1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = -0.5
+} Vorticity {
+  amin = 0 min = 0
+  amax = 0 max = 5
+  cmap = Jet
+} 0 {
+  reversed = 0
+  use_scalar = 1
+}
+Linear {
+  r = 1 g = 1 b = 1
+  shading = Constant
+  maxlevel = -1
+  font_size = 1
+  raster_font = 1
+} {
+  n.x = 1 n.y = 0 n.z = 0
+  pos = -0.5
+} P {
+  amin = 0 min = -0.1
+  amax = 0 max = 0.7
+  cmap = Jet
+} 0 {
+  reversed = 0
+  use_scalar = 1
+}
+Squares {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+  font_size = 1
+  raster_font = 1
+} {
+  n.x = 0 n.y = 1 n.z = 0
+  pos = -0.5
+} Level {
+  amin = 0 min = 4
+  amax = 0 max = 7
+  cmap = Jet
+}
+Isosurface {
+  r = 1 g = 1 b = 1
+  shading = Constant
+  maxlevel = -1
+  font_size = 1
+  raster_font = 1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} P {
+  amin = 1
+  amax = 1
+  cmap = Jet
+} Lambda2 {
+  level = -0.0003
+  reversed = 0
+  use_scalar = 0
+}
diff --git a/doc/examples/forcedturbulence/spectral.dat b/doc/examples/forcedturbulence/spectral.dat
new file mode 100644
index 0000000..2b46f2b
--- /dev/null
+++ b/doc/examples/forcedturbulence/spectral.dat
@@ -0,0 +1,1438 @@
+0.000000 3.000000E-02 1.000000E+00 2.236068E+02
+0.186499 3.102432E-02 1.034144E+00 2.273922E+02
+0.366341 3.204507E-02 1.068169E+00 2.311027E+02
+0.543314 3.308237E-02 1.102746E+00 2.348133E+02
+0.717507 3.413609E-02 1.137870E+00 2.385236E+02
+0.889007 3.520635E-02 1.173545E+00 2.422339E+02
+1.057897 3.629302E-02 1.209767E+00 2.459438E+02
+1.224254 3.739617E-02 1.246539E+00 2.496537E+02
+1.388154 3.851588E-02 1.283863E+00 2.533636E+02
+1.549667 3.965200E-02 1.321733E+00 2.570733E+02
+1.708863 4.080462E-02 1.360154E+00 2.607829E+02
+1.865805 4.197382E-02 1.399127E+00 2.644927E+02
+2.020561 4.315956E-02 1.438652E+00 2.682025E+02
+2.173187 4.436175E-02 1.478725E+00 2.719122E+02
+2.323741 4.558037E-02 1.519346E+00 2.756216E+02
+2.472281 4.681541E-02 1.560514E+00 2.793307E+02
+2.618858 4.806704E-02 1.602235E+00 2.830402E+02
+2.763524 4.933510E-02 1.644503E+00 2.867494E+02
+2.906327 5.061973E-02 1.687324E+00 2.904586E+02
+3.047316 5.192084E-02 1.730695E+00 2.941679E+02
+3.186535 5.323837E-02 1.774612E+00 2.978768E+02
+3.324029 5.457244E-02 1.819081E+00 3.015859E+02
+3.459844 5.592304E-02 1.864101E+00 3.052950E+02
+3.594017 5.728995E-02 1.909665E+00 3.090036E+02
+3.726584 5.867349E-02 1.955783E+00 3.127126E+02
+3.857586 6.007355E-02 2.002452E+00 3.164216E+02
+3.987062 6.149001E-02 2.049667E+00 3.201302E+02
+4.115045 6.292306E-02 2.097435E+00 3.238391E+02
+4.241573 6.437245E-02 2.145748E+00 3.275476E+02
+4.366672 6.583846E-02 2.194616E+00 3.312564E+02
+4.490373 6.732087E-02 2.244029E+00 3.349648E+02
+4.612715 6.881974E-02 2.293991E+00 3.386732E+02
+4.733712 7.033487E-02 2.344496E+00 3.423810E+02
+4.853413 7.186675E-02 2.395558E+00 3.460894E+02
+4.971835 7.341504E-02 2.447168E+00 3.497977E+02
+5.089008 7.497985E-02 2.499328E+00 3.535059E+02
+5.204956 7.656121E-02 2.552040E+00 3.572143E+02
+5.319707 7.815897E-02 2.605299E+00 3.609224E+02
+5.433280 7.977334E-02 2.659111E+00 3.646307E+02
+5.545704 8.140417E-02 2.713472E+00 3.683390E+02
+5.657007 8.305132E-02 2.768377E+00 3.720468E+02
+5.767204 8.471503E-02 2.823834E+00 3.757549E+02
+5.876305 8.639520E-02 2.879840E+00 3.794628E+02
+5.984356 8.809190E-02 2.936397E+00 3.831707E+02
+6.091368 8.980521E-02 2.993507E+00 3.868790E+02
+6.197350 9.153487E-02 3.051162E+00 3.905869E+02
+6.302335 9.328069E-02 3.109356E+00 3.942940E+02
+6.406333 9.504326E-02 3.168109E+00 3.980018E+02
+6.509373 9.682250E-02 3.227417E+00 4.017098E+02
+6.611464 9.861808E-02 3.287269E+00 4.054176E+02
+6.712620 1.004303E-01 3.347677E+00 4.091257E+02
+6.812860 1.022587E-01 3.408624E+00 4.128331E+02
+6.912205 1.041040E-01 3.470132E+00 4.165413E+02
+7.010672 1.059657E-01 3.532188E+00 4.202492E+02
+7.108271 1.078436E-01 3.594788E+00 4.239568E+02
+7.205021 1.097382E-01 3.657940E+00 4.276646E+02
+7.300937 1.116489E-01 3.721629E+00 4.313716E+02
+7.396023 1.135762E-01 3.785872E+00 4.350788E+02
+7.490303 1.155202E-01 3.850672E+00 4.387865E+02
+7.583792 1.174806E-01 3.916021E+00 4.424942E+02
+7.676494 1.194576E-01 3.981920E+00 4.462018E+02
+7.768433 1.214510E-01 4.048368E+00 4.499093E+02
+7.859618 1.234606E-01 4.115355E+00 4.536163E+02
+7.950060 1.254871E-01 4.182904E+00 4.573240E+02
+8.039766 1.275301E-01 4.251003E+00 4.610316E+02
+8.128744 1.295896E-01 4.319654E+00 4.647394E+02
+8.217016 1.316652E-01 4.388840E+00 4.684464E+02
+8.304611 1.337577E-01 4.458591E+00 4.721542E+02
+8.391510 1.358660E-01 4.528867E+00 4.758607E+02
+8.477732 1.379911E-01 4.599703E+00 4.795677E+02
+8.563295 1.401327E-01 4.671090E+00 4.832747E+02
+8.648201 1.422906E-01 4.743020E+00 4.869814E+02
+8.732458 1.444648E-01 4.815494E+00 4.906880E+02
+8.816076 1.466562E-01 4.888540E+00 4.943955E+02
+8.899075 1.488634E-01 4.962113E+00 4.981021E+02
+8.981462 1.510872E-01 5.036241E+00 5.018088E+02
+9.063250 1.533275E-01 5.110917E+00 5.055154E+02
+9.144426 1.555841E-01 5.186135E+00 5.092216E+02
+9.225021 1.578573E-01 5.261908E+00 5.129283E+02
+9.305035 1.601469E-01 5.338229E+00 5.166348E+02
+9.384476 1.624533E-01 5.415109E+00 5.203417E+02
+9.463345 1.647763E-01 5.492544E+00 5.240489E+02
+9.541660 1.671157E-01 5.570522E+00 5.277557E+02
+9.619432 1.694716E-01 5.649052E+00 5.314626E+02
+9.696661 1.718439E-01 5.728130E+00 5.351696E+02
+9.773355 1.742328E-01 5.807761E+00 5.388766E+02
+9.849525 1.766381E-01 5.887936E+00 5.425835E+02
+9.925180 1.790599E-01 5.968665E+00 5.462904E+02
+10.000330 1.814988E-01 6.049961E+00 5.499983E+02
+10.074955 1.839538E-01 6.131793E+00 5.537053E+02
+10.149103 1.864247E-01 6.214155E+00 5.574115E+02
+10.222727 1.889124E-01 6.297075E+00 5.611182E+02
+10.295874 1.914167E-01 6.380553E+00 5.648251E+02
+10.368544 1.939370E-01 6.464561E+00 5.685312E+02
+10.440737 1.964734E-01 6.549108E+00 5.722369E+02
+10.512463 1.990264E-01 6.634207E+00 5.759427E+02
+10.583750 2.015966E-01 6.719876E+00 5.796493E+02
+10.654560 2.041829E-01 6.806085E+00 5.833555E+02
+10.724941 2.067856E-01 6.892843E+00 5.870618E+02
+10.794865 2.094049E-01 6.980146E+00 5.907677E+02
+10.864349 2.120405E-01 7.067999E+00 5.944737E+02
+10.933405 2.146919E-01 7.156376E+00 5.981787E+02
+11.002031 2.173605E-01 7.245325E+00 6.018845E+02
+11.070238 2.200450E-01 7.334800E+00 6.055893E+02
+11.138025 2.227466E-01 7.424854E+00 6.092955E+02
+11.205402 2.254649E-01 7.515457E+00 6.130015E+02
+11.272369 2.281996E-01 7.606605E+00 6.167073E+02
+11.338936 2.309509E-01 7.698307E+00 6.204131E+02
+11.405102 2.337186E-01 7.790557E+00 6.241191E+02
+11.470877 2.365027E-01 7.883352E+00 6.278248E+02
+11.536270 2.393032E-01 7.976697E+00 6.315307E+02
+11.601273 2.421203E-01 8.070589E+00 6.352362E+02
+11.665894 2.449539E-01 8.165033E+00 6.389419E+02
+11.730143 2.478031E-01 8.259997E+00 6.426465E+02
+11.794029 2.506701E-01 8.355552E+00 6.463526E+02
+11.857553 2.535528E-01 8.451629E+00 6.500576E+02
+11.920725 2.564531E-01 8.548293E+00 6.537641E+02
+11.983534 2.593682E-01 8.645451E+00 6.574685E+02
+12.045990 2.623006E-01 8.743180E+00 6.611736E+02
+12.108084 2.652501E-01 8.841487E+00 6.648798E+02
+12.169844 2.682149E-01 8.940303E+00 6.685846E+02
+12.231251 2.711954E-01 9.039639E+00 6.722883E+02
+12.292324 2.741927E-01 9.139531E+00 6.759921E+02
+12.353064 2.772067E-01 9.239980E+00 6.796962E+02
+12.413479 2.802370E-01 9.340976E+00 6.834003E+02
+12.473560 2.832834E-01 9.442507E+00 6.871038E+02
+12.533327 2.863461E-01 9.544579E+00 6.908071E+02
+12.592770 2.894285E-01 9.647300E+00 6.945136E+02
+12.651897 2.925268E-01 9.750553E+00 6.982197E+02
+12.710711 2.956408E-01 9.854325E+00 7.019244E+02
+12.769199 2.987703E-01 9.958609E+00 7.056277E+02
+12.827393 3.019173E-01 1.006347E+01 7.093320E+02
+12.885271 3.050801E-01 1.016886E+01 7.130349E+02
+12.942844 3.082590E-01 1.027477E+01 7.167371E+02
+13.000122 3.114557E-01 1.038126E+01 7.204399E+02
+13.057095 3.146677E-01 1.048826E+01 7.241407E+02
+13.113781 3.178968E-01 1.059581E+01 7.278415E+02
+13.170172 3.211427E-01 1.070392E+01 7.315419E+02
+13.226276 3.244049E-01 1.081254E+01 7.352408E+02
+13.282095 3.276848E-01 1.092173E+01 7.389395E+02
+13.337627 3.309812E-01 1.103146E+01 7.426375E+02
+13.392883 3.342934E-01 1.114170E+01 7.463342E+02
+13.447863 3.376230E-01 1.125248E+01 7.500287E+02
+13.502556 3.409698E-01 1.136382E+01 7.537234E+02
+13.556992 3.443345E-01 1.147571E+01 7.574169E+02
+13.611160 3.477168E-01 1.158816E+01 7.611100E+02
+13.665071 3.511158E-01 1.170115E+01 7.648017E+02
+13.718716 3.545336E-01 1.181470E+01 7.684924E+02
+13.772121 3.579682E-01 1.192879E+01 7.721820E+02
+13.825241 3.614208E-01 1.204343E+01 7.758707E+02
+13.878122 3.648904E-01 1.215860E+01 7.795572E+02
+13.930765 3.683774E-01 1.227429E+01 7.832415E+02
+13.983122 3.718818E-01 1.239054E+01 7.869252E+02
+14.035240 3.754041E-01 1.250734E+01 7.906080E+02
+14.087120 3.789444E-01 1.262470E+01 7.942897E+02
+14.138762 3.825027E-01 1.274263E+01 7.979714E+02
+14.190165 3.860781E-01 1.286109E+01 8.016517E+02
+14.241329 3.896706E-01 1.298011E+01 8.053322E+02
+14.292255 3.932811E-01 1.309969E+01 8.090125E+02
+14.342981 3.969070E-01 1.321979E+01 8.126916E+02
+14.393478 4.005510E-01 1.334047E+01 8.163716E+02
+14.443737 4.042099E-01 1.346164E+01 8.200493E+02
+14.493757 4.078867E-01 1.358339E+01 8.237283E+02
+14.543558 4.115796E-01 1.370569E+01 8.274078E+02
+14.593149 4.152896E-01 1.382852E+01 8.310857E+02
+14.642502 4.190171E-01 1.395193E+01 8.347646E+02
+14.691664 4.227617E-01 1.407587E+01 8.384418E+02
+14.740587 4.265240E-01 1.420032E+01 8.421162E+02
+14.789272 4.303062E-01 1.432533E+01 8.457879E+02
+14.837767 4.341083E-01 1.445086E+01 8.494548E+02
+14.886023 4.379314E-01 1.457689E+01 8.531149E+02
+14.934040 4.417781E-01 1.470347E+01 8.567681E+02
+14.981857 4.456500E-01 1.483053E+01 8.604099E+02
+15.029446 4.495492E-01 1.495810E+01 8.640392E+02
+15.076805 4.534794E-01 1.508618E+01 8.676530E+02
+15.123964 4.574437E-01 1.521473E+01 8.712463E+02
+15.170904 4.614462E-01 1.534379E+01 8.748182E+02
+15.217644 4.654920E-01 1.547339E+01 8.783651E+02
+15.264183 4.695851E-01 1.560353E+01 8.818837E+02
+15.310522 4.737274E-01 1.573415E+01 8.853696E+02
+15.356651 4.779249E-01 1.586528E+01 8.888197E+02
+15.402571 4.821795E-01 1.599690E+01 8.922304E+02
+15.448290 4.864962E-01 1.612903E+01 8.955999E+02
+15.493809 4.908770E-01 1.626161E+01 8.989237E+02
+15.539127 4.953233E-01 1.639469E+01 9.022033E+02
+15.584255 4.998378E-01 1.652827E+01 9.054378E+02
+15.629183 5.044199E-01 1.666236E+01 9.086281E+02
+15.673910 5.090643E-01 1.679690E+01 9.117767E+02
+15.718447 5.137691E-01 1.693191E+01 9.148871E+02
+15.762783 5.185300E-01 1.706741E+01 9.179653E+02
+15.806929 5.233391E-01 1.720335E+01 9.210157E+02
+15.850883 5.281920E-01 1.733978E+01 9.240455E+02
+15.894648 5.330779E-01 1.747666E+01 9.270616E+02
+15.938240 5.379915E-01 1.761406E+01 9.300739E+02
+15.981651 5.429227E-01 1.775191E+01 9.330858E+02
+16.024883 5.478655E-01 1.789028E+01 9.361075E+02
+16.067932 5.528154E-01 1.802913E+01 9.391398E+02
+16.110809 5.577729E-01 1.816853E+01 9.421860E+02
+16.153534 5.627401E-01 1.830843E+01 9.452416E+02
+16.196106 5.677261E-01 1.844886E+01 9.483000E+02
+16.238506 5.727426E-01 1.858978E+01 9.513494E+02
+16.280754 5.778130E-01 1.873119E+01 9.543714E+02
+16.322849 5.829651E-01 1.887321E+01 9.573488E+02
+16.364792 5.882351E-01 1.901576E+01 9.602487E+02
+16.406601 5.936679E-01 1.915884E+01 9.630373E+02
+16.448277 5.993209E-01 1.930253E+01 9.656729E+02
+16.489780 6.052552E-01 1.944669E+01 9.681043E+02
+16.531094 6.115394E-01 1.959125E+01 9.702764E+02
+16.572216 6.182445E-01 1.973607E+01 9.721342E+02
+16.613129 6.254495E-01 1.988118E+01 9.736251E+02
+16.653831 6.332299E-01 2.002658E+01 9.747016E+02
+16.694344 6.416610E-01 2.017223E+01 9.753188E+02
+16.734665 6.508111E-01 2.031809E+01 9.754409E+02
+16.774776 6.607476E-01 2.046416E+01 9.750383E+02
+16.814697 6.715316E-01 2.061038E+01 9.740884E+02
+16.854427 6.832224E-01 2.075674E+01 9.725765E+02
+16.893967 6.958799E-01 2.090326E+01 9.704933E+02
+16.933315 7.095501E-01 2.104990E+01 9.678414E+02
+16.972473 7.242677E-01 2.119658E+01 9.646323E+02
+17.011345 7.400240E-01 2.134295E+01 9.608975E+02
+17.049911 7.568290E-01 2.148886E+01 9.566657E+02
+17.088192 7.747345E-01 2.163437E+01 9.519484E+02
+17.126148 7.938348E-01 2.177921E+01 9.467225E+02
+17.163818 8.142824E-01 2.192361E+01 9.409578E+02
+17.201221 8.362421E-01 2.206750E+01 9.346149E+02
+17.238415 8.598971E-01 2.221112E+01 9.276685E+02
+17.275436 8.854153E-01 2.235443E+01 9.201015E+02
+17.312191 9.128780E-01 2.249718E+01 9.119422E+02
+17.348145 9.419187E-01 2.263703E+01 9.033547E+02
+17.383240 9.724787E-01 2.277392E+01 8.944237E+02
+17.417648 1.004589E+00 2.290836E+01 8.852083E+02
+17.451714 1.038579E+00 2.304165E+01 8.756682E+02
+17.486122 1.075485E+00 2.317637E+01 8.655436E+02
+17.520550 1.115613E+00 2.331106E+01 8.547731E+02
+17.554176 1.157969E+00 2.344263E+01 8.437298E+02
+17.586926 1.202062E+00 2.357070E+01 8.326349E+02
+17.618416 1.247373E+00 2.369365E+01 8.216361E+02
+17.648647 1.294062E+00 2.381161E+01 8.106935E+02
+17.678116 1.342902E+00 2.392628E+01 7.996478E+02
+17.707508 1.394631E+00 2.404038E+01 7.884194E+02
+17.737740 1.450584E+00 2.415714E+01 7.768190E+02
+17.768963 1.511708E+00 2.427733E+01 7.647379E+02
+17.800568 1.577266E+00 2.439850E+01 7.524128E+02
+17.831734 1.645743E+00 2.451728E+01 7.401792E+02
+17.862156 1.716455E+00 2.463231E+01 7.281730E+02
+17.891548 1.789193E+00 2.474290E+01 7.164201E+02
+17.920368 1.865216E+00 2.485041E+01 7.047169E+02
+17.949074 1.946322E+00 2.495649E+01 6.928221E+02
+17.977875 2.034450E+00 2.506208E+01 6.805173E+02
+18.006695 2.130168E+00 2.516649E+01 6.678229E+02
+18.035038 2.231987E+00 2.526777E+01 6.550382E+02
+18.062962 2.340960E+00 2.536626E+01 6.421036E+02
+18.090637 2.458961E+00 2.546222E+01 6.288776E+02
+18.118237 2.588712E+00 2.555605E+01 6.151733E+02
+18.145836 2.732177E+00 2.564795E+01 6.009576E+02
+18.173512 2.890060E+00 2.573780E+01 5.863591E+02
+18.200901 3.057910E+00 2.582431E+01 5.719551E+02
+18.227985 3.232069E+00 2.590708E+01 5.581151E+02
+18.253754 3.404347E+00 2.598329E+01 5.454097E+02
+18.278587 3.575612E+00 2.605417E+01 5.336390E+02
+18.302696 3.751822E+00 2.612050E+01 5.222831E+02
+18.326138 3.935824E+00 2.618233E+01 5.111355E+02
+18.348854 4.123412E+00 2.623975E+01 5.004687E+02
+18.370903 4.311377E+00 2.629288E+01 4.904285E+02
+18.392208 4.497592E+00 2.634181E+01 4.810622E+02
+18.412846 4.681971E+00 2.638673E+01 4.722988E+02
+18.433006 4.864878E+00 2.642842E+01 4.640671E+02
+18.453129 5.048727E+00 2.646757E+01 4.562142E+02
+18.473728 5.240495E+00 2.650519E+01 4.484255E+02
+18.495758 5.451755E+00 2.654264E+01 4.402725E+02
+18.517941 5.669609E+00 2.657718E+01 4.322928E+02
+18.539246 5.886019E+00 2.660744E+01 4.247544E+02
+18.560646 6.110991E+00 2.663472E+01 4.172899E+02
+18.581417 6.335902E+00 2.665807E+01 4.101759E+02
+18.601730 6.563911E+00 2.667810E+01 4.032917E+02
+18.621929 6.798356E+00 2.669492E+01 3.965266E+02
+18.642071 7.030143E+00 2.670851E+01 3.901335E+02
+18.660744 7.231638E+00 2.671848E+01 3.848035E+02
+18.679436 7.436515E+00 2.672590E+01 3.795713E+02
+18.698128 7.661125E+00 2.673057E+01 3.740310E+02
+18.716934 7.911631E+00 2.673223E+01 3.680847E+02
+18.736332 8.208013E+00 2.673046E+01 3.613541E+02
+18.756836 8.563861E+00 2.672411E+01 3.536829E+02
+18.778160 8.967609E+00 2.671192E+01 3.454716E+02
+18.798321 9.369312E+00 2.669482E+01 3.377682E+02
+18.817261 9.760816E+00 2.667362E+01 3.306621E+02
+18.835838 1.014213E+01 2.664786E+01 3.240734E+02
+18.854836 1.051474E+01 2.661656E+01 3.179057E+02
+18.874119 1.088423E+01 2.657981E+01 3.120316E+02
+18.893459 1.124890E+01 2.653789E+01 3.064481E+02
+18.913372 1.162846E+01 2.648970E+01 3.008579E+02
+18.932789 1.201319E+01 2.643755E+01 2.954185E+02
+18.952339 1.242969E+01 2.637957E+01 2.897899E+02
+18.971889 1.288149E+01 2.631570E+01 2.839732E+02
+18.990829 1.335543E+01 2.624759E+01 2.781673E+02
+19.009598 1.384145E+01 2.617390E+01 2.724729E+02
+19.026974 1.430799E+01 2.609980E+01 2.672350E+02
+19.044216 1.478419E+01 2.602042E+01 2.620965E+02
+19.061440 1.526632E+01 2.593530E+01 2.570808E+02
+19.079178 1.576920E+01 2.584127E+01 2.520314E+02
+19.097107 1.629853E+01 2.573979E+01 2.469314E+02
+19.115513 1.686281E+01 2.562860E+01 2.417161E+02
+19.133919 1.743871E+01 2.550995E+01 2.365909E+02
+19.151428 1.797731E+01 2.539012E+01 2.319252E+02
+19.168480 1.851548E+01 2.526675E+01 2.274194E+02
+19.185570 1.906820E+01 2.513642E+01 2.229432E+02
+19.203346 1.964350E+01 2.499345E+01 2.184049E+02
+19.222095 2.022772E+01 2.483495E+01 2.138629E+02
+19.239891 2.077519E+01 2.467690E+01 2.096833E+02
+19.255360 2.123886E+01 2.453386E+01 2.061797E+02
+19.270561 2.169794E+01 2.438791E+01 2.027734E+02
+19.286621 2.217457E+01 2.422819E+01 1.992686E+02
+19.303196 2.265688E+01 2.405758E+01 1.957481E+02
+19.319561 2.309948E+01 2.388306E+01 1.924573E+02
+19.337452 2.352645E+01 2.368658E+01 1.891341E+02
+19.355610 2.391716E+01 2.348125E+01 1.859568E+02
+19.373692 2.426899E+01 2.327145E+01 1.829545E+02
+19.392174 2.462438E+01 2.305209E+01 1.799175E+02
+19.411037 2.493955E+01 2.282309E+01 1.770010E+02
+19.429901 2.516280E+01 2.258937E+01 1.744096E+02
+19.450005 2.538232E+01 2.233614E+01 1.717070E+02
+19.469173 2.555632E+01 2.209116E+01 1.692447E+02
+19.487865 2.568955E+01 2.184919E+01 1.669563E+02
+19.507645 2.574772E+01 2.159108E+01 1.647975E+02
+19.526012 2.573732E+01 2.135019E+01 1.629918E+02
+19.543694 2.570905E+01 2.111760E+01 1.613047E+02
+19.562424 2.565885E+01 2.087076E+01 1.595751E+02
+19.581879 2.557430E+01 2.061415E+01 1.578735E+02
+19.601734 2.540926E+01 2.035317E+01 1.563802E+02
+19.621990 2.520537E+01 2.008842E+01 1.549690E+02
+19.642323 2.498317E+01 1.982479E+01 1.536139E+02
+19.662197 2.472819E+01 1.956885E+01 1.524104E+02
+19.682472 2.439715E+01 1.931085E+01 1.514180E+02
+19.701832 2.410320E+01 1.906756E+01 1.504192E+02
+19.720314 2.387925E+01 1.883757E+01 1.493002E+02
+19.738625 2.367523E+01 1.861175E+01 1.481446E+02
+19.757145 2.347779E+01 1.838481E+01 1.469523E+02
+19.776180 2.329965E+01 1.815331E+01 1.456554E+02
+19.795120 2.314788E+01 1.792413E+01 1.442873E+02
+19.813965 2.302240E+01 1.769707E+01 1.428472E+02
+19.833839 2.285113E+01 1.745868E+01 1.414501E+02
+19.855812 2.263150E+01 1.719686E+01 1.400033E+02
+19.878738 2.240823E+01 1.692627E+01 1.384852E+02
+19.901817 2.223216E+01 1.665595E+01 1.368120E+02
+19.924915 2.207183E+01 1.638658E+01 1.350874E+02
+19.948357 2.187582E+01 1.611503E+01 1.334426E+02
+19.971073 2.166705E+01 1.585356E+01 1.319084E+02
+19.993275 2.146739E+01 1.560003E+01 1.304012E+02
+20.015820 2.125057E+01 1.534447E+01 1.289176E+02
+20.038441 2.103640E+01 1.509023E+01 1.274253E+02
+20.061634 2.085048E+01 1.483189E+01 1.258010E+02
+20.085323 2.068106E+01 1.456978E+01 1.240829E+02
+20.109814 2.047614E+01 1.430069E+01 1.223992E+02
+20.133904 2.023810E+01 1.403806E+01 1.208559E+02
+20.157383 1.999369E+01 1.378476E+01 1.193984E+02
+20.181358 1.978195E+01 1.352825E+01 1.178020E+02
+20.205315 1.955930E+01 1.327429E+01 1.162466E+02
+20.230492 1.932084E+01 1.300999E+01 1.146330E+02
+20.256603 1.907013E+01 1.273867E+01 1.129777E+02
+20.282810 1.882027E+01 1.246944E+01 1.113216E+02
+20.309284 1.856385E+01 1.220053E+01 1.096706E+02
+20.335358 1.829144E+01 1.193898E+01 1.081157E+02
+20.360420 1.801065E+01 1.169078E+01 1.066901E+02
+20.385654 1.772340E+01 1.144444E+01 1.052851E+02
+20.411842 1.738956E+01 1.119332E+01 1.039586E+02
+20.437363 1.704578E+01 1.095319E+01 1.027490E+02
+20.462807 1.671258E+01 1.071828E+01 1.015427E+02
+20.489147 1.637662E+01 1.047978E+01 1.002965E+02
+20.514572 1.604797E+01 1.025408E+01 9.913622E+01
+20.540321 1.573609E+01 1.003004E+01 9.792644E+01
+20.566757 1.542793E+01 9.804478E+00 9.667547E+01
+20.593594 1.514838E+01 9.579671E+00 9.532639E+01
+20.620773 1.489168E+01 9.355659E+00 9.389622E+01
+20.646885 1.463798E+01 9.143716E+00 9.256093E+01
+20.672367 1.436333E+01 8.940295E+00 9.136289E+01
+20.697964 1.409225E+01 8.739632E+00 9.016721E+01
+20.724552 1.383530E+01 8.535023E+00 8.887018E+01
+20.752399 1.356771E+01 8.324290E+00 8.752650E+01
+20.780991 1.328625E+01 8.112247E+00 8.619569E+01
+20.809277 1.301019E+01 7.906528E+00 8.489647E+01
+20.837582 1.274632E+01 7.704721E+00 8.358151E+01
+20.866421 1.248418E+01 7.503023E+00 8.224355E+01
+20.895107 1.220758E+01 7.306592E+00 8.099266E+01
+20.923508 1.193653E+01 7.116173E+00 7.977248E+01
+20.952995 1.168477E+01 6.922606E+00 7.843415E+01
+20.983608 1.142627E+01 6.725795E+00 7.706143E+01
+21.012390 1.116362E+01 6.544707E+00 7.586356E+01
+21.037815 1.092544E+01 6.388136E+00 7.485148E+01
+21.064556 1.068082E+01 6.227074E+00 7.379507E+01
+21.095322 1.040421E+01 6.046097E+00 7.259657E+01
+21.128548 1.011962E+01 5.855871E+00 7.129432E+01
+21.163185 9.824087E+00 5.662951E+00 6.997491E+01
+21.199863 9.505878E+00 5.464843E+00 6.864790E+01
+21.237648 9.172317E+00 5.267516E+00 6.736153E+01
+21.276672 8.835261E+00 5.071086E+00 6.607497E+01
+21.317051 8.490197E+00 4.875459E+00 6.480406E+01
+21.357124 8.149314E+00 4.689029E+00 6.361625E+01
+21.392200 7.860242E+00 4.532040E+00 6.260678E+01
+21.426399 7.575761E+00 4.384432E+00 6.169442E+01
+21.464413 7.255625E+00 4.226930E+00 6.077616E+01
+21.503265 6.952504E+00 4.073121E+00 5.982771E+01
+21.544064 6.653203E+00 3.918551E+00 5.883771E+01
+21.585968 6.344527E+00 3.767174E+00 5.792441E+01
+21.627949 6.041219E+00 3.622974E+00 5.708848E+01
+21.668804 5.757555E+00 3.489626E+00 5.632555E+01
+21.709984 5.479187E+00 3.361975E+00 5.562653E+01
+21.753109 5.208261E+00 3.235176E+00 5.490314E+01
+21.798370 4.942015E+00 3.109106E+00 5.416629E+01
+21.844070 4.687723E+00 2.988737E+00 5.346288E+01
+21.891201 4.442632E+00 2.871477E+00 5.276316E+01
+21.939495 4.210161E+00 2.758005E+00 5.205846E+01
+21.988934 3.990257E+00 2.648291E+00 5.134651E+01
+22.040279 3.771603E+00 2.540800E+00 5.067025E+01
+22.095001 3.547220E+00 2.433264E+00 5.003695E+01
+22.151478 3.333276E+00 2.329443E+00 4.941538E+01
+22.208221 3.137823E+00 2.231803E+00 4.879634E+01
+22.264793 2.965176E+00 2.140348E+00 4.813987E+01
+22.319324 2.812308E+00 2.057267E+00 4.751216E+01
+22.373741 2.669054E+00 1.978923E+00 4.691329E+01
+22.429626 2.529400E+00 1.902915E+00 4.634003E+01
+22.487877 2.390848E+00 1.828269E+00 4.579412E+01
+22.549732 2.251507E+00 1.753868E+00 4.526952E+01
+22.613228 2.122092E+00 1.682309E+00 4.472693E+01
+22.677448 2.005599E+00 1.614249E+00 4.414629E+01
+22.743443 1.893695E+00 1.548469E+00 4.358059E+01
+22.810829 1.783991E+00 1.485475E+00 4.307393E+01
+22.878445 1.680088E+00 1.426322E+00 4.261842E+01
+22.949360 1.580250E+00 1.368323E+00 4.215717E+01
+23.024300 1.486328E+00 1.311019E+00 4.164829E+01
+23.101013 1.399213E+00 1.256127E+00 4.112798E+01
+23.179558 1.316014E+00 1.203583E+00 4.063417E+01
+23.259647 1.236444E+00 1.153556E+00 4.017881E+01
+23.341759 1.160914E+00 1.105706E+00 3.974524E+01
+23.423679 1.090819E+00 1.061198E+00 3.935189E+01
+23.501785 1.028425E+00 1.021590E+00 3.901537E+01
+23.578957 9.704939E-01 9.849797E-01 3.872367E+01
+23.659351 9.147912E-01 9.493444E-01 3.844222E+01
+23.746212 8.608781E-01 9.134336E-01 3.812868E+01
+23.839596 8.078737E-01 8.775026E-01 3.781136E+01
+23.938320 7.561372E-01 8.422701E-01 3.751429E+01
+24.041622 7.084379E-01 8.081391E-01 3.718612E+01
+24.145668 6.655980E-01 7.762260E-01 3.684918E+01
+24.251411 6.258597E-01 7.460664E-01 3.652452E+01
+24.359959 5.894900E-01 7.172351E-01 3.618003E+01
+24.469154 5.575228E-01 6.901185E-01 3.579629E+01
+24.579208 5.294695E-01 6.644263E-01 3.536486E+01
+24.689854 5.041442E-01 6.400097E-01 3.491040E+01
+24.803474 4.794737E-01 6.162765E-01 3.446981E+01
+24.921806 4.548179E-01 5.929283E-01 3.405094E+01
+25.042675 4.311356E-01 5.704833E-01 3.364973E+01
+25.166920 4.088179E-01 5.488059E-01 3.324294E+01
+25.296181 3.880324E-01 5.276046E-01 3.280350E+01
+25.428932 3.684055E-01 5.071230E-01 3.235906E+01
+25.568264 3.493348E-01 4.869044E-01 3.190570E+01
+25.712307 3.307873E-01 4.672488E-01 3.146439E+01
+25.860107 3.123314E-01 4.483284E-01 3.106948E+01
+26.012695 2.942632E-01 4.300788E-01 3.070618E+01
+26.170624 2.767700E-01 4.125116E-01 3.036842E+01
+26.328266 2.607042E-01 3.962342E-01 3.005548E+01
+26.486671 2.460223E-01 3.810337E-01 2.975239E+01
+26.649235 2.321639E-01 3.665414E-01 2.946261E+01
+26.813171 2.194613E-01 3.529797E-01 2.918209E+01
+26.972511 2.081321E-01 3.407145E-01 2.892455E+01
+27.129505 1.977276E-01 3.294334E-01 2.869325E+01
+27.289761 1.878075E-01 3.186814E-01 2.848038E+01
+27.454174 1.784943E-01 3.083996E-01 2.827140E+01
+27.622593 1.697619E-01 2.985889E-01 2.806720E+01
+27.797707 1.614480E-01 2.890940E-01 2.786559E+01
+27.985294 1.532516E-01 2.796474E-01 2.766648E+01
+28.181427 1.454705E-01 2.704819E-01 2.746606E+01
+28.379829 1.382984E-01 2.618589E-01 2.727120E+01
+28.570335 1.318266E-01 2.541303E-01 2.710820E+01
+28.755463 1.259455E-01 2.470900E-01 2.696556E+01
+28.938454 1.204502E-01 2.405533E-01 2.684437E+01
+29.124001 1.152425E-01 2.343332E-01 2.673456E+01
+29.314735 1.103823E-01 2.283417E-01 2.661834E+01
+29.513691 1.057471E-01 2.224906E-01 2.649860E+01
+29.721230 1.012180E-01 2.167916E-01 2.639120E+01
+29.933403 9.698412E-02 2.113641E-01 2.628612E+01
+30.146130 9.324245E-02 2.062871E-01 2.616440E+01
+30.360973 8.987261E-02 2.014865E-01 2.603022E+01
+30.579117 8.668537E-02 1.969107E-01 2.590252E+01
+30.794285 8.374980E-02 1.926658E-01 2.578447E+01
+31.008537 8.102728E-02 1.886824E-01 2.567210E+01
+31.230591 7.838121E-02 1.847921E-01 2.556366E+01
+31.466282 7.567617E-02 1.809151E-01 2.547071E+01
+31.703022 7.307426E-02 1.772746E-01 2.539861E+01
+31.932972 7.071982E-02 1.739697E-01 2.533662E+01
+32.162895 6.845905E-02 1.708766E-01 2.529373E+01
+32.397194 6.618939E-02 1.679292E-01 2.528003E+01
+32.639122 6.400643E-02 1.650915E-01 2.527310E+01
+32.887993 6.204024E-02 1.623766E-01 2.524832E+01
+33.135223 6.037098E-02 1.598656E-01 2.519918E+01
+33.382607 5.882839E-02 1.575255E-01 2.515377E+01
+33.635139 5.720805E-02 1.553098E-01 2.514873E+01
+33.890724 5.550239E-02 1.532450E-01 2.519278E+01
+34.144135 5.387743E-02 1.513689E-01 2.525683E+01
+34.397125 5.243277E-02 1.496532E-01 2.531222E+01
+34.650307 5.117652E-02 1.480811E-01 2.535186E+01
+34.903603 4.997718E-02 1.466516E-01 2.540660E+01
+35.157738 4.873477E-02 1.453706E-01 2.550367E+01
+35.414314 4.747903E-02 1.442383E-01 2.563748E+01
+35.675430 4.625598E-02 1.432516E-01 2.579652E+01
+35.942383 4.510343E-02 1.424089E-01 2.597036E+01
+36.206856 4.406969E-02 1.417285E-01 2.614766E+01
+36.465340 4.315192E-02 1.411998E-01 2.632569E+01
+36.721992 4.232986E-02 1.407978E-01 2.650440E+01
+36.979980 4.162964E-02 1.405041E-01 2.667063E+01
+37.241974 4.108940E-02 1.403020E-01 2.680678E+01
+37.509537 4.069095E-02 1.401758E-01 2.691348E+01
+37.776489 4.036934E-02 1.401115E-01 2.700807E+01
+38.044586 4.006683E-02 1.400974E-01 2.710710E+01
+38.316689 3.979814E-02 1.401328E-01 2.720534E+01
+38.593788 3.959031E-02 1.402193E-01 2.729349E+01
+38.873367 3.943738E-02 1.403539E-01 2.737260E+01
+39.150887 3.932310E-02 1.405299E-01 2.744672E+01
+39.429283 3.924291E-02 1.407470E-01 2.751719E+01
+39.708748 3.919724E-02 1.410058E-01 2.758384E+01
+39.989090 3.911672E-02 1.413108E-01 2.767194E+01
+40.267830 3.891033E-02 1.416690E-01 2.781557E+01
+40.543938 3.859270E-02 1.420914E-01 2.801308E+01
+40.817642 3.821467E-02 1.425885E-01 2.824978E+01
+41.089706 3.781577E-02 1.431684E-01 2.851388E+01
+41.361961 3.742414E-02 1.438410E-01 2.879735E+01
+41.636200 3.708651E-02 1.446143E-01 2.908364E+01
+41.912613 3.687645E-02 1.454823E-01 2.934143E+01
+42.191048 3.683298E-02 1.464235E-01 2.954868E+01
+42.469635 3.692306E-02 1.474045E-01 2.971034E+01
+42.748375 3.710221E-02 1.484013E-01 2.983894E+01
+43.018837 3.736362E-02 1.493662E-01 2.992770E+01
+43.286018 3.770402E-02 1.503048E-01 2.997953E+01
+43.557358 3.813548E-02 1.512288E-01 2.999270E+01
+43.829422 3.871816E-02 1.521017E-01 2.993797E+01
+44.099846 3.946732E-02 1.528840E-01 2.980497E+01
+44.368095 4.031913E-02 1.535439E-01 2.961575E+01
+44.632645 4.119882E-02 1.540612E-01 2.939655E+01
+44.891891 4.205777E-02 1.544299E-01 2.916446E+01
+45.148964 4.287295E-02 1.546612E-01 2.892913E+01
+45.411110 4.365705E-02 1.547659E-01 2.868757E+01
+45.677795 4.441306E-02 1.547431E-01 2.843817E+01
+45.936737 4.512750E-02 1.545928E-01 2.818476E+01
+46.183662 4.579450E-02 1.543267E-01 2.793058E+01
+46.421509 4.640379E-02 1.539553E-01 2.767983E+01
+46.652336 4.693322E-02 1.534913E-01 2.744032E+01
+46.877861 4.737120E-02 1.529468E-01 2.721628E+01
+47.104301 4.771322E-02 1.523178E-01 2.700704E+01
+47.338104 4.795051E-02 1.515917E-01 2.681170E+01
+47.582436 4.809378E-02 1.507610E-01 2.662504E+01
+47.834854 4.816704E-02 1.498367E-01 2.644167E+01
+48.087845 4.817039E-02 1.488529E-01 2.626714E+01
+48.342857 4.812853E-02 1.478071E-01 2.609394E+01
+48.600693 4.810894E-02 1.466929E-01 2.590251E+01
+48.857841 4.813819E-02 1.455211E-01 2.568778E+01
+49.111214 4.817733E-02 1.443071E-01 2.546314E+01
+49.363022 4.817183E-02 1.430463E-01 2.524212E+01
+49.615784 4.806935E-02 1.417391E-01 2.503810E+01
+49.872017 4.786163E-02 1.403900E-01 2.485353E+01
+50.134888 4.759237E-02 1.389959E-01 2.467623E+01
+50.399704 4.732157E-02 1.375858E-01 2.449569E+01
+50.662956 4.705166E-02 1.361763E-01 2.431419E+01
+50.929909 4.674876E-02 1.347382E-01 2.413522E+01
+51.206512 4.637364E-02 1.332458E-01 2.396424E+01
+51.491356 4.587355E-02 1.317248E-01 2.381947E+01
+51.777267 4.525150E-02 1.302408E-01 2.371243E+01
+52.062378 4.451660E-02 1.288287E-01 2.364815E+01
+52.345543 4.369114E-02 1.275127E-01 2.362666E+01
+52.628479 4.277350E-02 1.263008E-01 2.365182E+01
+52.916260 4.171760E-02 1.251921E-01 2.373903E+01
+53.204842 4.062436E-02 1.242245E-01 2.387040E+01
+53.496246 3.963964E-02 1.233942E-01 2.400355E+01
+53.786392 3.883096E-02 1.226960E-01 2.411498E+01
+54.064407 3.813543E-02 1.221331E-01 2.422226E+01
+54.334679 3.748302E-02 1.216789E-01 2.434130E+01
+54.601402 3.686025E-02 1.213120E-01 2.447205E+01
+54.866638 3.627542E-02 1.210206E-01 2.460926E+01
+55.136414 3.571773E-02 1.207995E-01 2.475534E+01
+55.416069 3.516870E-02 1.206582E-01 2.491864E+01
+55.708885 3.460022E-02 1.206168E-01 2.511388E+01
+56.004143 3.400046E-02 1.206982E-01 2.535152E+01
+56.297646 3.339016E-02 1.209138E-01 2.562786E+01
+56.591568 3.281624E-02 1.212719E-01 2.592755E+01
+56.888962 3.228896E-02 1.217836E-01 2.624867E+01
+57.195663 3.178377E-02 1.224716E-01 2.660591E+01
+57.499008 3.131974E-02 1.233091E-01 2.698557E+01
+57.791977 3.094749E-02 1.242543E-01 2.735547E+01
+58.080826 3.070802E-02 1.252965E-01 2.769226E+01
+58.371620 3.062323E-02 1.264313E-01 2.798174E+01
+58.661766 3.067734E-02 1.276271E-01 2.822147E+01
+58.942299 3.082633E-02 1.288293E-01 2.841838E+01
+59.215927 3.103075E-02 1.300375E-01 2.859025E+01
+59.484177 3.126663E-02 1.312506E-01 2.874793E+01
+59.748688 3.155925E-02 1.324682E-01 2.887978E+01
+60.011292 3.192836E-02 1.336894E-01 2.897705E+01
+60.273895 3.233354E-02 1.349143E-01 2.905875E+01
+60.540276 3.272353E-02 1.361551E-01 2.915073E+01
+60.809288 3.308703E-02 1.374049E-01 2.925627E+01
+61.076508 3.344562E-02 1.386393E-01 2.936043E+01
+61.344986 3.384351E-02 1.398643E-01 2.944521E+01
+61.616783 3.431315E-02 1.410787E-01 2.949692E+01
+61.892624 3.488691E-02 1.422692E-01 2.950022E+01
+62.173119 3.558758E-02 1.434138E-01 2.944335E+01
+62.457123 3.640147E-02 1.444775E-01 2.932826E+01
+62.741318 3.729932E-02 1.454182E-01 2.916177E+01
+63.026085 3.829530E-02 1.462080E-01 2.893638E+01
+63.312988 3.941215E-02 1.468234E-01 2.864349E+01
+63.595772 4.060422E-02 1.472308E-01 2.829819E+01
+63.869438 4.177012E-02 1.474221E-01 2.793671E+01
+64.142670 4.285074E-02 1.474103E-01 2.758001E+01
+64.411835 4.379442E-02 1.472087E-01 2.724393E+01
+64.677490 4.461624E-02 1.468389E-01 2.692404E+01
+64.941010 4.535372E-02 1.463136E-01 2.660871E+01
+65.205521 4.604609E-02 1.456288E-01 2.628431E+01
+65.475754 4.672761E-02 1.447603E-01 2.593631E+01
+65.755066 4.742589E-02 1.436743E-01 2.555153E+01
+66.039642 4.811428E-02 1.423658E-01 2.513706E+01
+66.319641 4.868370E-02 1.408857E-01 2.472982E+01
+66.592087 4.900571E-02 1.392899E-01 2.436924E+01
+66.859879 4.901551E-02 1.376094E-01 2.407281E+01
+67.125305 4.873893E-02 1.358777E-01 2.383723E+01
+67.386154 4.826088E-02 1.341484E-01 2.365014E+01
+67.643265 4.768587E-02 1.324426E-01 2.348976E+01
+67.899002 4.710117E-02 1.307516E-01 2.333334E+01
+68.156952 4.653222E-02 1.290511E-01 2.317023E+01
+68.420547 4.593770E-02 1.273184E-01 2.300659E+01
+68.691925 4.526472E-02 1.255521E-01 2.285544E+01
+68.967804 4.450559E-02 1.237944E-01 2.272686E+01
+69.249939 4.367381E-02 1.220583E-01 2.262050E+01
+69.530014 4.281775E-02 1.204095E-01 2.253692E+01
+69.805511 4.196873E-02 1.188628E-01 2.247133E+01
+70.082535 4.113191E-02 1.173772E-01 2.241506E+01
+70.366196 4.029847E-02 1.159218E-01 2.236488E+01
+70.658173 3.947441E-02 1.144936E-01 2.231870E+01
+70.953735 3.869800E-02 1.131225E-01 2.227155E+01
+71.249374 3.800312E-02 1.118274E-01 2.221693E+01
+71.544708 3.741191E-02 1.106033E-01 2.214668E+01
+71.841568 3.693307E-02 1.094296E-01 2.205326E+01
+72.141556 3.652956E-02 1.082849E-01 2.194277E+01
+72.446198 3.616368E-02 1.071522E-01 2.182280E+01
+72.756714 3.579430E-02 1.060222E-01 2.170379E+01
+73.074326 3.539068E-02 1.048878E-01 2.159365E+01
+73.402237 3.495276E-02 1.037378E-01 2.149028E+01
+73.735947 3.449434E-02 1.025890E-01 2.139303E+01
+74.068665 3.398540E-02 1.014684E-01 2.131721E+01
+74.406342 3.336581E-02 1.003743E-01 2.128225E+01
+74.749588 3.262963E-02 9.933708E-02 2.129859E+01
+75.087418 3.184877E-02 9.841701E-02 2.135844E+01
+75.416168 3.113787E-02 9.762824E-02 2.142775E+01
+75.739731 3.054944E-02 9.694964E-02 2.148277E+01
+76.062225 3.005789E-02 9.636172E-02 2.152638E+01
+76.390137 2.960511E-02 9.585220E-02 2.157567E+01
+76.731781 2.912373E-02 9.542045E-02 2.165527E+01
+77.084335 2.857585E-02 9.508890E-02 2.178592E+01
+77.430405 2.802026E-02 9.488057E-02 2.195265E+01
+77.768997 2.749291E-02 9.478951E-02 2.214091E+01
+78.101562 2.700046E-02 9.480647E-02 2.234591E+01
+78.431152 2.654354E-02 9.492242E-02 2.256498E+01
+78.757462 2.615725E-02 9.512759E-02 2.278012E+01
+79.079422 2.588109E-02 9.541056E-02 2.296946E+01
+79.395355 2.571198E-02 9.575794E-02 2.312877E+01
+79.705566 2.562566E-02 9.615890E-02 2.326471E+01
+80.011887 2.559392E-02 9.660661E-02 2.338751E+01
+80.316833 2.559785E-02 9.709811E-02 2.350470E+01
+80.622314 2.561981E-02 9.763364E-02 2.362420E+01
+80.930542 2.563406E-02 9.821685E-02 2.375871E+01
+81.242584 2.562319E-02 9.885385E-02 2.391788E+01
+81.559052 2.558035E-02 9.955197E-02 2.410695E+01
+81.878571 2.551854E-02 1.003142E-01 2.432094E+01
+82.197098 2.547308E-02 1.011332E-01 2.454135E+01
+82.514557 2.545992E-02 1.020039E-01 2.475903E+01
+82.827744 2.548141E-02 1.029134E-01 2.496927E+01
+83.128189 2.553869E-02 1.038300E-01 2.516339E+01
+83.415512 2.562200E-02 1.047424E-01 2.534322E+01
+83.696884 2.571427E-02 1.056646E-01 2.552044E+01
+83.977112 2.580922E-02 1.066099E-01 2.570134E+01
+84.263138 2.591672E-02 1.076025E-01 2.588677E+01
+84.562439 2.605589E-02 1.086686E-01 2.607334E+01
+84.874481 2.624064E-02 1.098057E-01 2.625327E+01
+85.184158 2.645999E-02 1.109536E-01 2.641753E+01
+85.492538 2.669267E-02 1.121112E-01 2.657655E+01
+85.800156 2.692014E-02 1.132776E-01 2.673935E+01
+86.104950 2.717299E-02 1.144414E-01 2.688809E+01
+86.407303 2.748717E-02 1.155987E-01 2.700434E+01
+86.706604 2.787520E-02 1.167375E-01 2.707990E+01
+87.001785 2.834750E-02 1.178398E-01 2.710694E+01
+87.292847 2.888143E-02 1.188910E-01 2.709476E+01
+87.580475 2.943534E-02 1.198834E-01 2.706264E+01
+87.865814 2.998548E-02 1.208153E-01 2.702166E+01
+88.149857 3.053498E-02 1.216883E-01 2.697091E+01
+88.434280 3.108028E-02 1.225074E-01 2.691321E+01
+88.721069 3.161150E-02 1.232814E-01 2.685473E+01
+89.012817 3.212279E-02 1.240219E-01 2.680017E+01
+89.311966 3.259143E-02 1.247396E-01 2.676075E+01
+89.611649 3.295690E-02 1.254250E-01 2.675818E+01
+89.903931 3.321406E-02 1.260739E-01 2.679229E+01
+90.198959 3.341966E-02 1.267220E-01 2.684705E+01
+90.499863 3.358697E-02 1.273903E-01 2.692133E+01
+90.806717 3.372863E-02 1.280920E-01 2.701272E+01
+91.109833 3.385611E-02 1.288146E-01 2.711391E+01
+91.410355 3.398751E-02 1.295666E-01 2.721942E+01
+91.705917 3.411148E-02 1.303412E-01 2.733237E+01
+91.999115 3.422287E-02 1.311361E-01 2.745426E+01
+92.293381 3.434156E-02 1.319481E-01 2.757648E+01
+92.590622 3.445028E-02 1.327754E-01 2.770555E+01
+92.878326 3.448629E-02 1.335912E-01 2.786123E+01
+93.154739 3.445774E-02 1.344062E-01 2.804281E+01
+93.430084 3.442411E-02 1.352594E-01 2.823461E+01
+93.707870 3.445490E-02 1.361549E-01 2.840883E+01
+93.991074 3.459096E-02 1.370832E-01 2.854622E+01
+94.282516 3.485667E-02 1.380312E-01 2.863386E+01
+94.559540 3.522158E-02 1.389089E-01 2.866628E+01
+94.823364 3.563106E-02 1.397141E-01 2.866629E+01
+95.077805 3.602853E-02 1.404596E-01 2.865984E+01
+95.322479 3.639284E-02 1.411491E-01 2.865602E+01
+95.557236 3.675188E-02 1.417866E-01 2.864448E+01
+95.783600 3.712669E-02 1.423755E-01 2.861790E+01
+96.005692 3.751152E-02 1.429275E-01 2.858111E+01
+96.226639 3.787618E-02 1.434516E-01 2.854750E+01
+96.449112 3.818966E-02 1.439578E-01 2.853040E+01
+96.675552 3.845312E-02 1.444561E-01 2.853091E+01
+96.908478 3.868800E-02 1.449554E-01 2.854249E+01
+97.150787 3.888711E-02 1.454668E-01 2.856977E+01
+97.404770 3.902199E-02 1.460030E-01 2.862548E+01
+97.661728 3.906699E-02 1.465570E-01 2.871754E+01
+97.912735 3.902057E-02 1.471204E-01 2.884508E+01
+98.162216 3.891723E-02 1.477099E-01 2.899908E+01
+98.414749 3.884753E-02 1.483385E-01 2.914860E+01
+98.672394 3.888128E-02 1.490076E-01 2.926737E+01
+98.929199 3.898992E-02 1.496974E-01 2.936187E+01
+99.185242 3.911674E-02 1.504054E-01 2.945288E+01
+99.441818 3.926475E-02 1.511310E-01 2.953914E+01
+99.687866 3.945980E-02 1.518295E-01 2.960223E+01
+99.928955 3.972201E-02 1.525012E-01 2.963488E+01
+100.170807 4.004196E-02 1.531492E-01 2.964167E+01
+100.418915 4.040479E-02 1.537763E-01 2.962911E+01
+100.677322 4.079213E-02 1.543821E-01 2.960426E+01
+100.938858 4.114800E-02 1.549450E-01 2.958345E+01
+101.196960 4.139696E-02 1.554609E-01 2.959257E+01
+101.456512 4.150617E-02 1.559608E-01 2.964863E+01
+101.721100 4.150942E-02 1.564756E-01 2.974533E+01
+101.992172 4.151281E-02 1.570237E-01 2.984830E+01
+102.261261 4.162366E-02 1.575834E-01 2.991478E+01
+102.519669 4.184555E-02 1.581188E-01 2.993674E+01
+102.772202 4.211063E-02 1.586258E-01 2.993805E+01
+103.021454 4.237889E-02 1.591016E-01 2.993267E+01
+103.267273 4.264069E-02 1.595408E-01 2.992302E+01
+103.509735 4.289580E-02 1.599413E-01 2.990879E+01
+103.750290 4.312973E-02 1.603103E-01 2.989639E+01
+103.991837 4.332276E-02 1.606616E-01 2.989507E+01
+104.237198 4.348566E-02 1.610072E-01 2.990322E+01
+104.488358 4.367509E-02 1.613506E-01 2.990193E+01
+104.734787 4.394173E-02 1.616698E-01 2.987005E+01
+104.983505 4.432475E-02 1.619616E-01 2.979440E+01
+105.243896 4.482609E-02 1.622165E-01 2.967395E+01
+105.503754 4.540602E-02 1.624007E-01 2.951732E+01
+105.763840 4.605575E-02 1.625003E-01 2.932634E+01
+106.021942 4.673330E-02 1.625062E-01 2.911402E+01
+106.284241 4.737723E-02 1.624119E-01 2.889873E+01
+106.543716 4.787214E-02 1.622232E-01 2.871556E+01
+106.801590 4.818660E-02 1.619556E-01 2.857449E+01
+107.062744 4.838968E-02 1.616185E-01 2.845512E+01
+107.329391 4.857979E-02 1.612152E-01 2.832851E+01
+107.600998 4.882387E-02 1.607441E-01 2.817504E+01
+107.871307 4.915394E-02 1.602079E-01 2.798662E+01
+108.133606 4.957275E-02 1.596109E-01 2.776430E+01
+108.392853 5.002470E-02 1.589324E-01 2.752111E+01
+108.652557 5.045025E-02 1.581533E-01 2.727045E+01
+108.912720 5.082955E-02 1.572610E-01 2.701522E+01
+109.170898 5.117742E-02 1.562528E-01 2.675065E+01
+109.432205 5.149278E-02 1.550976E-01 2.647144E+01
+109.697021 5.174468E-02 1.537897E-01 2.618424E+01
+109.961456 5.187330E-02 1.523509E-01 2.590709E+01
+110.233521 5.186109E-02 1.507460E-01 2.563720E+01
+110.517181 5.172480E-02 1.489617E-01 2.536710E+01
+110.809998 5.146211E-02 1.470329E-01 2.510246E+01
+111.098618 5.107139E-02 1.450803E-01 2.486367E+01
+111.381134 5.057681E-02 1.431523E-01 2.465291E+01
+111.659836 4.997437E-02 1.412625E-01 2.447366E+01
+111.933197 4.927163E-02 1.394413E-01 2.432979E+01
+112.205261 4.852672E-02 1.376720E-01 2.420476E+01
+112.480225 4.780583E-02 1.359325E-01 2.407845E+01
+112.757095 4.711339E-02 1.342355E-01 2.395195E+01
+113.038773 4.638016E-02 1.325780E-01 2.384245E+01
+113.326019 4.552525E-02 1.309842E-01 2.377598E+01
+113.617004 4.450105E-02 1.294977E-01 2.377510E+01
+113.919586 4.336651E-02 1.281076E-01 2.382556E+01
+114.224075 4.235440E-02 1.268617E-01 2.387408E+01
+114.527649 4.152181E-02 1.257393E-01 2.389893E+01
+114.831146 4.076871E-02 1.247110E-01 2.392142E+01
+115.134567 4.001158E-02 1.237686E-01 2.396421E+01
+115.439743 3.920225E-02 1.229162E-01 2.404358E+01
+115.745148 3.839485E-02 1.221705E-01 2.414769E+01
+116.049866 3.770147E-02 1.215299E-01 2.424094E+01
+116.348633 3.717220E-02 1.209801E-01 2.430247E+01
+116.639160 3.682768E-02 1.204927E-01 2.431751E+01
+116.928772 3.663386E-02 1.200329E-01 2.428872E+01
+117.216019 3.652212E-02 1.195947E-01 2.423703E+01
+117.501205 3.641870E-02 1.191777E-01 2.418679E+01
+117.787460 3.627659E-02 1.187835E-01 2.415398E+01
+118.078979 3.605887E-02 1.184173E-01 2.415209E+01
+118.381714 3.574676E-02 1.180884E-01 2.418993E+01
+118.696121 3.537443E-02 1.178125E-01 2.426007E+01
+119.020294 3.497301E-02 1.175990E-01 2.435470E+01
+119.346527 3.455731E-02 1.174523E-01 2.447019E+01
+119.673065 3.417569E-02 1.173661E-01 2.458837E+01
+119.996323 3.390199E-02 1.173286E-01 2.467952E+01
+120.323853 3.377632E-02 1.173207E-01 2.472373E+01
+120.661911 3.379862E-02 1.173187E-01 2.471514E+01
+121.006836 3.392460E-02 1.173000E-01 2.466528E+01
+121.346344 3.404643E-02 1.172582E-01 2.461234E+01
+121.671051 3.412991E-02 1.171991E-01 2.456984E+01
+121.984695 3.420407E-02 1.171246E-01 2.452758E+01
+122.293381 3.427354E-02 1.170317E-01 2.448328E+01
+122.600464 3.429585E-02 1.169240E-01 2.445280E+01
+122.893814 3.425251E-02 1.168213E-01 2.444678E+01
+123.171677 3.415243E-02 1.167400E-01 2.446553E+01
+123.436798 3.400310E-02 1.166895E-01 2.450858E+01
+123.691925 3.380539E-02 1.166768E-01 2.457746E+01
+123.939957 3.355859E-02 1.167076E-01 2.467419E+01
+124.184174 3.328075E-02 1.167869E-01 2.479381E+01
+124.427551 3.300336E-02 1.169180E-01 2.492573E+01
+124.672379 3.274108E-02 1.171022E-01 2.506480E+01
+124.920181 3.248421E-02 1.173414E-01 2.521510E+01
+125.175537 3.222101E-02 1.176442E-01 2.538321E+01
+125.446762 3.196703E-02 1.180288E-01 2.556715E+01
+125.740570 3.177048E-02 1.185128E-01 2.575129E+01
+126.047501 3.169901E-02 1.190776E-01 2.590317E+01
+126.349625 3.178255E-02 1.196678E-01 2.599732E+01
+126.645035 3.201094E-02 1.202483E-01 2.603008E+01
+126.932281 3.234582E-02 1.207897E-01 2.601156E+01
+127.213577 3.272823E-02 1.212772E-01 2.596352E+01
+127.494797 3.311526E-02 1.217087E-01 2.590318E+01
+127.782883 3.349801E-02 1.220845E-01 2.583430E+01
+128.084320 3.386758E-02 1.224020E-01 2.575976E+01
+128.404297 3.418693E-02 1.226595E-01 2.569312E+01
+128.729919 3.439790E-02 1.228567E-01 2.565538E+01
+129.054932 3.448480E-02 1.230169E-01 2.565645E+01
+129.373230 3.451240E-02 1.231625E-01 2.567655E+01
+129.682526 3.459729E-02 1.232981E-01 2.567327E+01
+129.982361 3.481464E-02 1.234107E-01 2.561637E+01
+130.277313 3.512801E-02 1.234838E-01 2.551695E+01
+130.573639 3.545595E-02 1.235058E-01 2.540321E+01
+130.874695 3.575974E-02 1.234722E-01 2.528817E+01
+131.180939 3.602348E-02 1.233831E-01 2.517726E+01
+131.489014 3.621903E-02 1.232450E-01 2.508109E+01
+131.794647 3.630848E-02 1.230723E-01 2.501508E+01
+132.101044 3.627692E-02 1.228825E-01 2.498737E+01
+132.413544 3.617416E-02 1.226904E-01 2.498371E+01
+132.731232 3.611028E-02 1.225002E-01 2.496703E+01
+133.043121 3.615176E-02 1.223062E-01 2.491319E+01
+133.353485 3.625278E-02 1.220924E-01 2.483497E+01
+133.664917 3.630683E-02 1.218548E-01 2.476819E+01
+133.970703 3.622883E-02 1.216138E-01 2.474580E+01
+134.270996 3.602379E-02 1.213917E-01 2.477078E+01
+134.561523 3.571803E-02 1.212108E-01 2.483952E+01
+134.844116 3.530945E-02 1.210864E-01 2.495718E+01
+135.124878 3.479256E-02 1.210335E-01 2.513089E+01
+135.404419 3.422804E-02 1.210669E-01 2.534429E+01
+135.685333 3.373325E-02 1.211906E-01 2.555556E+01
+135.966553 3.336491E-02 1.213951E-01 2.573960E+01
+136.245636 3.310953E-02 1.216641E-01 2.589593E+01
+136.523346 3.291298E-02 1.219876E-01 2.604219E+01
+136.803497 3.274013E-02 1.223657E-01 2.619179E+01
+137.092041 3.260339E-02 1.228065E-01 2.634121E+01
+137.397675 3.253450E-02 1.233213E-01 2.647961E+01
+137.706055 3.251562E-02 1.238809E-01 2.660750E+01
+138.008942 3.248135E-02 1.244664E-01 2.674736E+01
+138.309845 3.242474E-02 1.250912E-01 2.690508E+01
+138.611359 3.236700E-02 1.257764E-01 2.707657E+01
+138.916534 3.228805E-02 1.265427E-01 2.727482E+01
+139.226746 3.218578E-02 1.274040E-01 2.750405E+01
+139.530090 3.211639E-02 1.283235E-01 2.773247E+01
+139.829163 3.213600E-02 1.292962E-01 2.793416E+01
+140.122131 3.222476E-02 1.303046E-01 2.811323E+01
+140.405945 3.234966E-02 1.313285E-01 2.827937E+01
+140.682892 3.248882E-02 1.323641E-01 2.844127E+01
+140.951599 3.261571E-02 1.333972E-01 2.860743E+01
+141.214813 3.274438E-02 1.344317E-01 2.877258E+01
+141.472229 3.288458E-02 1.354607E-01 2.893096E+01
+141.723236 3.304056E-02 1.364804E-01 2.907985E+01
+141.968750 3.320854E-02 1.374923E-01 2.922128E+01
+142.209229 3.336379E-02 1.385001E-01 2.936689E+01
+142.445892 3.349598E-02 1.395095E-01 2.952250E+01
+142.680115 3.360490E-02 1.405283E-01 2.968985E+01
+142.914032 3.370412E-02 1.415653E-01 2.986490E+01
+143.149323 3.382651E-02 1.426272E-01 3.003442E+01
+143.389343 3.402192E-02 1.437232E-01 3.017819E+01
+143.636536 3.431000E-02 1.448586E-01 3.028863E+01
+143.891357 3.467261E-02 1.460299E-01 3.037345E+01
+144.150757 3.510034E-02 1.472162E-01 3.043305E+01
+144.411530 3.558210E-02 1.483931E-01 3.046797E+01
+144.671539 3.611267E-02 1.495429E-01 3.047766E+01
+144.930328 3.669414E-02 1.506533E-01 3.045971E+01
+145.189117 3.732494E-02 1.517182E-01 3.041472E+01
+145.448822 3.799303E-02 1.527295E-01 3.034706E+01
+145.708069 3.866855E-02 1.536728E-01 3.026660E+01
+145.970825 3.930913E-02 1.545588E-01 3.019205E+01
+146.239532 3.986634E-02 1.553995E-01 3.014339E+01
+146.515717 4.035974E-02 1.562057E-01 3.011399E+01
+146.798462 4.085590E-02 1.569783E-01 3.007862E+01
+147.086090 4.133436E-02 1.577179E-01 3.004491E+01
+147.382111 4.171823E-02 1.584493E-01 3.004506E+01
+147.684235 4.195510E-02 1.591953E-01 3.010119E+01
+147.982697 4.211506E-02 1.599573E-01 3.018776E+01
+148.271393 4.223514E-02 1.607272E-01 3.028991E+01
+148.554596 4.227374E-02 1.615167E-01 3.042480E+01
+148.832916 4.219162E-02 1.623331E-01 3.060833E+01
+149.099792 4.202087E-02 1.631651E-01 3.082764E+01
+149.358887 4.184169E-02 1.640289E-01 3.105714E+01
+149.607605 4.174384E-02 1.649095E-01 3.126045E+01
+149.843353 4.177901E-02 1.657775E-01 3.141175E+01
+150.067352 4.198281E-02 1.666157E-01 3.149386E+01
+150.279449 4.234145E-02 1.674032E-01 3.150840E+01
+150.482544 4.277227E-02 1.681414E-01 3.148756E+01
+150.680145 4.318690E-02 1.688394E-01 3.146613E+01
+150.875000 4.354529E-02 1.695097E-01 3.146079E+01
+151.069855 4.387238E-02 1.701658E-01 3.146461E+01
+151.266846 4.421885E-02 1.708172E-01 3.146107E+01
+151.466888 4.459577E-02 1.714687E-01 3.144733E+01
+151.670898 4.497008E-02 1.721204E-01 3.143520E+01
+151.879181 4.528846E-02 1.727720E-01 3.144308E+01
+152.091583 4.553911E-02 1.734277E-01 3.147544E+01
+152.308563 4.571612E-02 1.740976E-01 3.153580E+01
+152.531189 4.579920E-02 1.747977E-01 3.163387E+01
+152.757019 4.580224E-02 1.755362E-01 3.176648E+01
+152.981934 4.579245E-02 1.763083E-01 3.190961E+01
+153.208221 4.587836E-02 1.771172E-01 3.202598E+01
+153.437103 4.614515E-02 1.779469E-01 3.208286E+01
+153.668121 4.662201E-02 1.787649E-01 3.206508E+01
+153.897614 4.720657E-02 1.795375E-01 3.200365E+01
+154.123596 4.774428E-02 1.802515E-01 3.194949E+01
+154.346375 4.820116E-02 1.809100E-01 3.191387E+01
+154.567322 4.862154E-02 1.815207E-01 3.188287E+01
+154.788574 4.904146E-02 1.820889E-01 3.184544E+01
+155.012573 4.950652E-02 1.826131E-01 3.178676E+01
+155.235504 5.009968E-02 1.830692E-01 3.167696E+01
+155.459808 5.082442E-02 1.834397E-01 3.151395E+01
+155.689301 5.160750E-02 1.837076E-01 3.131961E+01
+155.927795 5.240725E-02 1.838572E-01 3.110502E+01
+156.169495 5.321915E-02 1.838738E-01 3.086964E+01
+156.413483 5.407635E-02 1.837532E-01 3.060390E+01
+156.661285 5.493112E-02 1.834890E-01 3.032121E+01
+156.904816 5.562057E-02 1.830959E-01 3.006815E+01
+157.150024 5.607522E-02 1.825863E-01 2.986265E+01
+157.396454 5.629201E-02 1.819863E-01 2.970716E+01
+157.637390 5.634430E-02 1.813381E-01 2.958759E+01
+157.871765 5.633818E-02 1.806623E-01 2.947893E+01
+158.103241 5.631265E-02 1.799566E-01 2.937043E+01
+158.335175 5.627358E-02 1.792074E-01 2.925832E+01
+158.569397 5.625027E-02 1.784032E-01 2.913306E+01
+158.809113 5.625408E-02 1.775259E-01 2.898881E+01
+159.053558 5.627486E-02 1.765676E-01 2.882700E+01
+159.296936 5.628530E-02 1.755527E-01 2.865863E+01
+159.535736 5.625441E-02 1.745094E-01 2.849615E+01
+159.771179 5.616048E-02 1.734467E-01 2.834630E+01
+160.011505 5.595256E-02 1.723408E-01 2.821783E+01
+160.262665 5.562317E-02 1.711750E-01 2.810982E+01
+160.499634 5.530847E-02 1.700765E-01 2.800878E+01
+160.726532 5.504905E-02 1.690210E-01 2.790046E+01
+160.953735 5.480170E-02 1.679569E-01 2.778731E+01
+161.184601 5.448233E-02 1.668687E-01 2.768807E+01
+161.420197 5.403871E-02 1.657616E-01 2.761704E+01
+161.659454 5.350351E-02 1.646573E-01 2.756992E+01
+161.904663 5.294687E-02 1.635582E-01 2.752948E+01
+162.158875 5.243095E-02 1.624558E-01 2.747812E+01
+162.415680 5.200417E-02 1.613719E-01 2.740656E+01
+162.675690 5.165938E-02 1.602923E-01 2.731390E+01
+162.935242 5.138917E-02 1.592208E-01 2.720255E+01
+163.195862 5.113420E-02 1.581491E-01 2.708673E+01
+163.450378 5.088548E-02 1.571126E-01 2.697488E+01
+163.699402 5.068486E-02 1.561034E-01 2.685460E+01
+163.946899 5.052802E-02 1.550934E-01 2.672224E+01
+164.192413 5.038330E-02 1.540731E-01 2.658453E+01
+164.442047 5.019597E-02 1.530153E-01 2.645124E+01
+164.697174 4.988138E-02 1.519222E-01 2.634497E+01
+164.952759 4.938872E-02 1.508332E-01 2.628625E+01
+165.209259 4.872027E-02 1.497716E-01 2.627969E+01
+165.468658 4.793414E-02 1.487635E-01 2.631597E+01
+165.734619 4.710825E-02 1.478244E-01 2.637809E+01
+166.003784 4.639358E-02 1.469734E-01 2.642745E+01
+166.267914 4.581527E-02 1.462228E-01 2.645791E+01
+166.534180 4.528680E-02 1.455397E-01 2.648751E+01
+166.804718 4.480093E-02 1.449136E-01 2.651620E+01
+167.080444 4.435118E-02 1.443374E-01 2.654435E+01
+167.363037 4.389584E-02 1.438091E-01 2.658399E+01
+167.650208 4.340294E-02 1.433395E-01 2.664722E+01
+167.935852 4.291546E-02 1.429457E-01 2.672452E+01
+168.213104 4.244981E-02 1.426392E-01 2.681308E+01
+168.487457 4.193931E-02 1.424189E-01 2.693410E+01
+168.767151 4.140726E-02 1.422880E-01 2.708169E+01
+169.057373 4.096576E-02 1.422493E-01 2.721982E+01
+169.352631 4.066176E-02 1.422875E-01 2.732872E+01
+169.634918 4.047341E-02 1.423689E-01 2.740790E+01
+169.902557 4.036987E-02 1.424682E-01 2.746217E+01
+170.158142 4.033995E-02 1.425717E-01 2.749231E+01
+170.404724 4.035863E-02 1.426715E-01 2.750520E+01
+170.646576 4.039537E-02 1.427635E-01 2.751040E+01
+170.889648 4.044111E-02 1.428457E-01 2.751068E+01
+171.135315 4.048565E-02 1.429170E-01 2.750927E+01
+171.370300 4.051666E-02 1.429728E-01 2.750946E+01
+171.588806 4.055575E-02 1.430122E-01 2.750379E+01
+171.799683 4.063058E-02 1.430349E-01 2.748281E+01
+172.008423 4.074729E-02 1.430381E-01 2.744403E+01
+172.219757 4.090003E-02 1.430181E-01 2.738892E+01
+172.435974 4.107968E-02 1.429719E-01 2.732014E+01
+172.656464 4.127520E-02 1.428979E-01 2.724124E+01
+172.881073 4.147907E-02 1.427955E-01 2.715474E+01
+173.111481 4.168822E-02 1.426634E-01 2.706148E+01
+173.344025 4.189757E-02 1.425032E-01 2.696348E+01
+173.577942 4.207371E-02 1.423172E-01 2.687186E+01
+173.815216 4.218549E-02 1.421078E-01 2.679675E+01
+174.056915 4.223828E-02 1.418782E-01 2.673672E+01
+174.303040 4.226302E-02 1.416305E-01 2.668223E+01
+174.548553 4.229156E-02 1.413668E-01 2.662356E+01
+174.790405 4.233470E-02 1.410854E-01 2.655702E+01
+175.031952 4.238676E-02 1.407791E-01 2.648309E+01
+175.278839 4.244112E-02 1.404400E-01 2.640237E+01
+175.530762 4.249881E-02 1.400672E-01 2.631441E+01
+175.789246 4.253514E-02 1.396573E-01 2.622620E+01
+176.047729 4.249542E-02 1.392232E-01 2.615690E+01
+176.307129 4.235554E-02 1.387761E-01 2.611590E+01
+176.570801 4.214543E-02 1.383246E-01 2.609575E+01
+176.833252 4.195500E-02 1.378849E-01 2.607177E+01
+177.081512 4.185261E-02 1.374750E-01 2.602604E+01
+177.323212 4.180791E-02 1.370762E-01 2.596442E+01
+177.563995 4.176935E-02 1.366786E-01 2.590105E+01
+177.807068 4.171586E-02 1.362773E-01 2.584154E+01
+178.053040 4.164696E-02 1.358686E-01 2.578535E+01
+178.302368 4.155648E-02 1.354510E-01 2.573406E+01
+178.553833 4.143973E-02 1.350254E-01 2.568933E+01
+178.806824 4.130118E-02 1.345959E-01 2.565053E+01
+179.062256 4.115886E-02 1.341612E-01 2.561184E+01
+179.315094 4.103844E-02 1.337284E-01 2.556666E+01
+179.564880 4.093364E-02 1.332947E-01 2.551632E+01
+179.813599 4.083199E-02 1.328524E-01 2.546331E+01
+180.058044 4.073749E-02 1.324064E-01 2.540723E+01
+180.300354 4.065292E-02 1.319555E-01 2.534705E+01
+180.539612 4.055814E-02 1.315069E-01 2.529037E+01
+180.774597 4.043985E-02 1.310660E-01 2.524242E+01
+181.007904 4.030110E-02 1.306274E-01 2.520122E+01
+181.243652 4.014624E-02 1.301817E-01 2.516361E+01
+181.485504 3.998977E-02 1.297211E-01 2.512360E+01
+181.736053 3.984736E-02 1.292399E-01 2.507509E+01
+181.995300 3.971378E-02 1.287406E-01 2.502019E+01
+182.262329 3.957340E-02 1.282308E-01 2.496527E+01
+182.535309 3.944228E-02 1.277186E-01 2.490685E+01
+182.802490 3.933546E-02 1.272256E-01 2.484436E+01
+183.062958 3.922273E-02 1.267493E-01 2.478690E+01
+183.317322 3.909335E-02 1.262830E-01 2.473654E+01
+183.567108 3.897926E-02 1.258167E-01 2.468125E+01
+183.816284 3.889225E-02 1.253362E-01 2.461448E+01
+184.068817 3.881161E-02 1.248301E-01 2.454054E+01
+184.326538 3.870731E-02 1.242972E-01 2.446867E+01
+184.589142 3.855228E-02 1.237450E-01 2.440890E+01
+184.858002 3.834155E-02 1.231794E-01 2.436402E+01
+185.136322 3.812075E-02 1.226019E-01 2.431992E+01
+185.409302 3.794830E-02 1.220439E-01 2.426418E+01
+185.672211 3.781302E-02 1.215125E-01 2.420171E+01
+185.928864 3.767570E-02 1.209981E-01 2.414313E+01
+186.183380 3.749512E-02 1.204947E-01 2.410051E+01
+186.440338 3.723298E-02 1.200031E-01 2.408654E+01
+186.704163 3.688701E-02 1.195270E-01 2.410321E+01
+186.980652 3.647693E-02 1.190702E-01 2.414570E+01
+187.276367 3.600845E-02 1.186387E-01 2.421418E+01
+187.584442 3.553381E-02 1.182601E-01 2.429759E+01
+187.898010 3.513921E-02 1.179479E-01 2.436911E+01
+188.211121 3.486664E-02 1.176966E-01 2.441207E+01
+188.523163 3.466580E-02 1.174910E-01 2.443991E+01
+188.833527 3.445454E-02 1.173219E-01 2.447943E+01
+189.141602 3.421265E-02 1.171880E-01 2.453779E+01
+189.447083 3.399736E-02 1.170858E-01 2.459389E+01
+189.745239 3.386513E-02 1.170030E-01 2.462443E+01
+190.040649 3.379743E-02 1.169239E-01 2.463242E+01
+190.339264 3.374778E-02 1.168411E-01 2.463307E+01
+190.636658 3.371662E-02 1.167544E-01 2.462617E+01
+190.928864 3.372107E-02 1.166620E-01 2.460505E+01
+191.217865 3.375838E-02 1.165605E-01 2.457005E+01
+191.505035 3.378904E-02 1.164512E-01 2.453588E+01
+191.789612 3.376434E-02 1.163407E-01 2.452156E+01
+192.073120 3.366112E-02 1.162372E-01 2.453728E+01
+192.358917 3.349543E-02 1.161481E-01 2.457904E+01
+192.652649 3.330574E-02 1.160789E-01 2.463426E+01
+192.950195 3.314928E-02 1.160370E-01 2.468341E+01
+193.252625 3.306558E-02 1.160228E-01 2.471161E+01
+193.557800 3.304457E-02 1.160301E-01 2.472100E+01
+193.854584 3.304251E-02 1.160502E-01 2.472606E+01
+194.144806 3.301282E-02 1.160792E-01 2.474337E+01
+194.430450 3.295391E-02 1.161165E-01 2.477342E+01
+194.715637 3.288465E-02 1.161630E-01 2.480943E+01
+195.006622 3.283368E-02 1.162219E-01 2.484126E+01
+195.308136 3.282764E-02 1.162928E-01 2.485870E+01
+195.620026 3.289504E-02 1.163664E-01 2.484896E+01
+195.921539 3.304733E-02 1.164209E-01 2.480323E+01
+196.211151 3.326834E-02 1.164416E-01 2.472511E+01
+196.493134 3.350504E-02 1.164235E-01 2.463378E+01
+196.770538 3.370406E-02 1.163676E-01 2.454915E+01
+197.046112 3.384289E-02 1.162804E-01 2.448040E+01
+197.321075 3.391292E-02 1.161708E-01 2.443206E+01
+197.589630 3.392018E-02 1.160507E-01 2.440418E+01
+197.852844 3.389517E-02 1.159266E-01 2.438708E+01
+198.113770 3.384805E-02 1.158009E-01 2.437759E+01
+198.376526 3.377714E-02 1.156734E-01 2.437630E+01
+198.644775 3.371008E-02 1.155420E-01 2.437281E+01
+198.922028 3.367493E-02 1.154026E-01 2.435610E+01
+199.211792 3.367645E-02 1.152479E-01 2.432291E+01
+199.516968 3.369279E-02 1.150694E-01 2.427934E+01
+199.825653 3.370359E-02 1.148700E-01 2.423339E+01
+200.136475 3.370469E-02 1.146530E-01 2.418721E+01
+200.453552 3.369166E-02 1.144219E-01 2.414313E+01
+200.776428 3.365894E-02 1.141829E-01 2.410440E+01
+201.100677 3.358826E-02 1.139428E-01 2.407901E+01
+201.424622 3.346529E-02 1.137099E-01 2.407391E+01
+201.747650 3.330459E-02 1.134929E-01 2.408587E+01
+202.064575 3.311464E-02 1.132988E-01 2.411353E+01
+202.365631 3.289772E-02 1.131363E-01 2.415821E+01
+202.655548 3.267933E-02 1.130078E-01 2.421126E+01
+202.938446 3.249608E-02 1.129143E-01 2.425934E+01
+203.217987 3.239140E-02 1.128493E-01 2.428453E+01
+203.498444 3.236911E-02 1.127993E-01 2.428213E+01
+203.783478 3.240338E-02 1.127504E-01 2.425875E+01
+204.076294 3.248320E-02 1.126920E-01 2.421639E+01
+204.366516 3.260121E-02 1.126200E-01 2.415708E+01
+204.652618 3.272963E-02 1.125309E-01 2.409055E+01
+204.939789 3.283630E-02 1.124208E-01 2.402786E+01
+205.232910 3.290582E-02 1.122869E-01 2.397388E+01
+205.535797 3.290906E-02 1.121285E-01 2.393888E+01
+205.851196 3.279164E-02 1.119555E-01 2.394472E+01
+206.176361 3.254784E-02 1.117930E-01 2.399934E+01
+206.495880 3.226311E-02 1.116704E-01 2.407855E+01
+206.803497 3.201246E-02 1.115933E-01 2.415596E+01
+207.105011 3.180625E-02 1.115536E-01 2.422552E+01
+207.406067 3.163284E-02 1.115460E-01 2.429016E+01
+207.712158 3.146302E-02 1.115740E-01 2.436174E+01
+208.025269 3.124759E-02 1.116491E-01 2.446203E+01
+208.332581 3.097962E-02 1.117814E-01 2.459671E+01
+208.636078 3.069642E-02 1.119796E-01 2.475372E+01
+208.940338 3.044192E-02 1.122494E-01 2.491688E+01
+209.251007 3.025082E-02 1.125927E-01 2.507190E+01
+209.560760 3.013839E-02 1.129927E-01 2.520787E+01
+209.862885 3.008213E-02 1.134304E-01 2.532916E+01
+210.160889 3.005008E-02 1.139038E-01 2.544842E+01
+210.459045 3.002882E-02 1.144186E-01 2.557249E+01
+210.760712 2.999174E-02 1.149856E-01 2.571509E+01
+211.068939 2.991620E-02 1.156178E-01 2.588912E+01
+211.384186 2.981320E-02 1.163261E-01 2.609267E+01
+211.705383 2.973811E-02 1.171141E-01 2.630256E+01
+212.021393 2.974748E-02 1.179492E-01 2.648594E+01
+212.324127 2.984109E-02 1.187942E-01 2.663383E+01
+212.622742 2.996469E-02 1.196596E-01 2.677247E+01
+212.922119 3.005996E-02 1.205568E-01 2.693041E+01
+213.223938 3.010732E-02 1.215003E-01 2.711983E+01
+213.531708 3.012593E-02 1.225114E-01 2.733707E+01
+213.848480 3.015655E-02 1.236113E-01 2.756849E+01
+214.163574 3.023397E-02 1.247616E-01 2.778940E+01
+214.473785 3.039555E-02 1.259377E-01 2.797669E+01
+214.774384 3.065750E-02 1.270991E-01 2.811380E+01
+215.069336 3.100936E-02 1.282399E-01 2.820476E+01
+215.362457 3.143170E-02 1.293569E-01 2.825864E+01
+215.656189 3.189104E-02 1.304480E-01 2.829102E+01
+215.950073 3.237009E-02 1.315065E-01 2.830877E+01
+216.241821 3.288001E-02 1.325187E-01 2.830459E+01
+216.527771 3.341782E-02 1.334623E-01 2.827581E+01
+216.804718 3.398691E-02 1.343151E-01 2.821724E+01
+217.076782 3.461281E-02 1.350821E-01 2.812063E+01
+217.352203 3.531417E-02 1.357780E-01 2.798340E+01
+217.624725 3.605754E-02 1.363757E-01 2.781534E+01
+217.898315 3.682720E-02 1.368734E-01 2.762361E+01
+218.172668 3.754593E-02 1.372616E-01 2.743552E+01
+218.439240 3.810981E-02 1.375365E-01 2.728634E+01
+218.701233 3.852453E-02 1.377254E-01 2.717633E+01
+218.961700 3.882812E-02 1.378517E-01 2.709472E+01
+219.225067 3.904810E-02 1.379326E-01 2.703413E+01
+219.493011 3.922077E-02 1.379767E-01 2.698319E+01
+219.766754 3.940896E-02 1.379828E-01 2.691988E+01
+220.040649 3.965460E-02 1.379403E-01 2.682811E+01
+220.312256 3.998032E-02 1.378366E-01 2.669851E+01
+220.585693 4.038957E-02 1.376537E-01 2.652765E+01
+220.864471 4.084400E-02 1.373681E-01 2.632493E+01
+221.151947 4.129698E-02 1.369580E-01 2.610200E+01
+221.450714 4.172577E-02 1.364066E-01 2.586300E+01
+221.758484 4.212191E-02 1.357124E-01 2.561008E+01
+222.057861 4.248893E-02 1.349210E-01 2.535054E+01
+222.349457 4.282906E-02 1.340415E-01 2.508509E+01
+222.646240 4.316206E-02 1.330303E-01 2.479963E+01
+222.949280 4.348500E-02 1.318719E-01 2.449223E+01
+223.254150 4.376470E-02 1.305732E-01 2.417339E+01
+223.542389 4.394378E-02 1.292316E-01 2.387622E+01
+223.816895 4.400045E-02 1.278664E-01 2.360878E+01
+224.087433 4.390723E-02 1.264607E-01 2.337401E+01
+224.363770 4.365756E-02 1.249840E-01 2.316703E+01
+224.654144 4.328072E-02 1.234069E-01 2.297407E+01
+224.955658 4.280088E-02 1.217610E-01 2.279437E+01
+225.254425 4.225744E-02 1.201372E-01 2.263453E+01
+225.555176 4.163749E-02 1.185262E-01 2.249664E+01
+225.861725 4.089094E-02 1.169384E-01 2.239697E+01
+226.173462 4.001869E-02 1.154119E-01 2.234420E+01
+226.484894 3.909093E-02 1.140035E-01 2.233190E+01
+226.797699 3.818393E-02 1.127219E-01 2.234157E+01
+227.108673 3.738584E-02 1.115752E-01 2.234909E+01
+227.415070 3.667033E-02 1.105563E-01 2.235999E+01
+227.717041 3.596650E-02 1.096526E-01 2.239317E+01
+228.013672 3.526683E-02 1.088615E-01 2.245105E+01
+228.306488 3.462890E-02 1.081685E-01 2.251267E+01
+228.598846 3.409905E-02 1.075495E-01 2.255709E+01
+228.893494 3.365060E-02 1.069845E-01 2.258760E+01
+229.191345 3.323185E-02 1.064650E-01 2.261910E+01
+229.486755 3.282145E-02 1.060007E-01 2.266082E+01
+229.781250 3.241996E-02 1.055892E-01 2.271218E+01
+230.077881 3.204218E-02 1.052254E-01 2.276696E+01
+230.372375 3.169994E-02 1.049116E-01 2.282127E+01
+230.663513 3.137312E-02 1.046442E-01 2.288136E+01
+230.959534 3.102367E-02 1.044179E-01 2.296012E+01
+231.262726 3.064692E-02 1.042409E-01 2.306165E+01
+231.564545 3.026733E-02 1.041275E-01 2.318056E+01
+231.863922 2.992020E-02 1.040772E-01 2.330339E+01
+232.170624 2.963278E-02 1.040811E-01 2.341701E+01
+232.473358 2.941254E-02 1.041279E-01 2.351507E+01
+232.769531 2.923376E-02 1.042058E-01 2.360452E+01
+233.067078 2.907228E-02 1.043115E-01 2.369398E+01
+233.374847 2.891640E-02 1.044504E-01 2.378941E+01
+233.705963 2.876081E-02 1.046377E-01 2.389645E+01
+234.057831 2.862253E-02 1.048847E-01 2.401064E+01
+234.407410 2.852322E-02 1.051816E-01 2.412049E+01
+234.758820 2.847994E-02 1.055321E-01 2.421926E+01
+235.098328 2.853013E-02 1.059112E-01 2.428486E+01
+235.431427 2.868289E-02 1.063015E-01 2.430936E+01
+235.766205 2.890438E-02 1.066882E-01 2.430414E+01
+236.109070 2.915593E-02 1.070600E-01 2.428339E+01
+236.457886 2.938821E-02 1.074065E-01 2.426553E+01
+236.799530 2.956221E-02 1.077216E-01 2.426499E+01
+237.126831 2.971458E-02 1.080076E-01 2.426695E+01
+237.440857 2.988570E-02 1.082693E-01 2.425599E+01
+237.743744 3.005005E-02 1.085093E-01 2.424321E+01
+238.042358 3.017087E-02 1.087352E-01 2.424497E+01
+238.346466 3.024771E-02 1.089572E-01 2.426360E+01
+238.651031 3.030382E-02 1.091767E-01 2.428996E+01
+238.941864 3.036616E-02 1.093856E-01 2.431146E+01
+239.224609 3.044802E-02 1.095866E-01 2.432335E+01
+239.507355 3.056517E-02 1.097806E-01 2.431968E+01
+239.797119 3.072234E-02 1.099661E-01 2.429838E+01
+240.091766 3.091272E-02 1.101331E-01 2.426022E+01
+240.387482 3.113677E-02 1.102687E-01 2.420254E+01
+240.683502 3.140049E-02 1.103609E-01 2.412085E+01
+240.979675 3.168261E-02 1.103996E-01 2.402165E+01
+241.277679 3.195960E-02 1.103777E-01 2.391258E+01
+241.580414 3.221231E-02 1.102887E-01 2.379938E+01
+241.874603 3.242191E-02 1.101369E-01 2.368968E+01
+242.163147 3.258391E-02 1.099283E-01 2.358596E+01
+242.451080 3.271219E-02 1.096681E-01 2.348394E+01
+242.739777 3.281740E-02 1.093646E-01 2.338139E+01
+243.031372 3.287943E-02 1.090281E-01 2.328745E+01
+243.327240 3.286882E-02 1.086720E-01 2.321513E+01
+243.622345 3.277943E-02 1.083157E-01 2.317054E+01
+243.910583 3.263005E-02 1.079717E-01 2.314977E+01
+244.199280 3.246238E-02 1.076297E-01 2.313596E+01
+244.494080 3.231417E-02 1.072795E-01 2.311351E+01
+244.798492 3.219905E-02 1.069158E-01 2.307629E+01
+245.109619 3.212154E-02 1.065428E-01 2.302351E+01
+245.417084 3.207162E-02 1.061719E-01 2.296122E+01
+245.717834 3.201941E-02 1.058058E-01 2.290068E+01
+246.019196 3.195223E-02 1.054355E-01 2.284452E+01
+246.326965 3.187354E-02 1.050532E-01 2.278975E+01
+246.642670 3.177682E-02 1.046566E-01 2.273825E+01
+246.961578 3.166956E-02 1.042527E-01 2.268883E+01
+247.282928 3.155706E-02 1.038495E-01 2.264132E+01
+247.602600 3.141409E-02 1.034615E-01 2.260799E+01
+247.927917 3.123018E-02 1.030910E-01 2.259327E+01
+248.259949 3.103209E-02 1.027456E-01 2.258933E+01
+248.591522 3.085420E-02 1.024317E-01 2.258515E+01
+248.919586 3.073946E-02 1.021437E-01 2.256364E+01
+249.243378 3.068439E-02 1.018709E-01 2.252355E+01
+249.565491 3.066552E-02 1.016029E-01 2.247122E+01
+249.873718 3.066583E-02 1.013451E-01 2.241409E+01
+250.165771 3.064035E-02 1.011009E-01 2.236937E+01
+250.447296 3.055468E-02 1.008709E-01 2.234975E+01
+250.724548 3.039703E-02 1.006573E-01 2.236019E+01
+251.004089 3.017004E-02 1.004655E-01 2.240136E+01
+251.290649 2.988328E-02 1.003041E-01 2.247244E+01
+251.588501 2.954393E-02 1.001848E-01 2.257426E+01
+251.900391 2.916494E-02 1.001233E-01 2.270650E+01
+252.227081 2.874078E-02 1.001410E-01 2.287750E+01
+252.560638 2.826329E-02 1.002602E-01 2.309740E+01
+252.892670 2.776127E-02 1.004933E-01 2.335947E+01
+253.226074 2.726070E-02 1.008528E-01 2.365731E+01
+253.557800 2.680399E-02 1.013420E-01 2.397372E+01
+253.888763 2.641356E-02 1.019600E-01 2.429753E+01
+254.226288 2.607007E-02 1.027191E-01 2.463915E+01
+254.558014 2.576520E-02 1.035843E-01 2.499326E+01
+254.884552 2.549227E-02 1.045462E-01 2.536003E+01
+255.206360 2.528113E-02 1.055987E-01 2.572207E+01
+255.522675 2.516126E-02 1.067318E-01 2.605992E+01
+255.831512 2.513487E-02 1.079300E-01 2.636631E+01
+256.130737 2.517662E-02 1.091689E-01 2.664685E+01
+256.420654 2.527985E-02 1.104311E-01 2.689985E+01
+256.704163 2.545304E-02 1.117155E-01 2.711996E+01
+256.987061 2.567662E-02 1.130330E-01 2.732007E+01
+257.274231 2.591681E-02 1.143984E-01 2.752166E+01
+257.570862 2.615620E-02 1.158319E-01 2.773873E+01
+257.869324 2.638243E-02 1.172989E-01 2.796934E+01
+258.166260 2.661502E-02 1.187832E-01 2.819922E+01
+258.465942 2.687231E-02 1.203073E-01 2.842400E+01
+258.771118 2.714443E-02 1.218891E-01 2.865299E+01
+259.083008 2.745089E-02 1.235350E-01 2.887735E+01
+259.399780 2.782026E-02 1.252327E-01 2.907922E+01
+259.710754 2.823421E-02 1.269181E-01 2.925374E+01
+260.002502 2.864667E-02 1.285067E-01 2.940589E+01
+260.281738 2.904471E-02 1.300335E-01 2.955068E+01
+260.555786 2.946189E-02 1.315359E-01 2.967970E+01
+260.827087 2.989903E-02 1.330264E-01 2.979580E+01
+261.094421 3.033761E-02 1.344992E-01 2.990713E+01
+261.359924 3.079013E-02 1.359568E-01 3.000826E+01
+261.624817 3.127888E-02 1.374025E-01 3.008948E+01
+261.890320 3.183193E-02 1.388313E-01 3.013711E+01
+262.156738 3.244593E-02 1.402342E-01 3.015223E+01
+262.424683 3.309288E-02 1.416015E-01 3.014715E+01
+262.694763 3.376226E-02 1.429272E-01 3.012622E+01
+262.964844 3.442564E-02 1.441948E-01 3.009914E+01
+263.235535 3.501457E-02 1.454155E-01 3.009761E+01
+263.511108 3.546933E-02 1.466174E-01 3.015120E+01
+263.791565 3.580086E-02 1.478160E-01 3.025661E+01
+264.066528 3.606741E-02 1.489791E-01 3.038179E+01
+264.334778 3.632825E-02 1.501101E-01 3.050234E+01
+264.601196 3.658839E-02 1.512313E-01 3.062074E+01
+264.878601 3.682273E-02 1.524060E-01 3.076024E+01
+265.166077 3.699008E-02 1.536382E-01 3.093870E+01
+265.443787 3.707745E-02 1.548681E-01 3.114963E+01
+265.720581 3.714053E-02 1.561498E-01 3.138073E+01
+266.002869 3.723248E-02 1.575253E-01 3.161804E+01
+266.289429 3.742692E-02 1.589852E-01 3.182807E+01
+266.572632 3.780878E-02 1.604686E-01 3.196239E+01
+266.848816 3.840770E-02 1.619153E-01 3.199811E+01
+267.120422 3.920280E-02 1.632984E-01 3.194250E+01
+267.389587 4.017499E-02 1.645842E-01 3.180211E+01
+267.657532 4.135435E-02 1.657355E-01 3.156462E+01
+267.916321 4.269514E-02 1.666811E-01 3.124228E+01
+268.164429 4.410470E-02 1.673987E-01 3.087132E+01
+268.404297 4.548206E-02 1.678955E-01 3.049051E+01
+268.635315 4.673595E-02 1.681903E-01 3.013152E+01
+268.866028 4.788287E-02 1.683112E-01 2.978986E+01
+269.097961 4.893992E-02 1.682658E-01 2.945845E+01
+269.329895 4.992636E-02 1.680548E-01 2.912940E+01
+269.562744 5.084369E-02 1.676749E-01 2.880017E+01
+269.800781 5.168981E-02 1.671147E-01 2.846805E+01
+270.047058 5.247795E-02 1.663598E-01 2.812585E+01
+270.297607 5.317946E-02 1.654266E-01 2.778300E+01
+270.548462 5.378478E-02 1.643424E-01 2.744514E+01
+270.790466 5.428420E-02 1.631645E-01 2.712280E+01
+271.027893 5.466269E-02 1.618931E-01 2.681812E+01
+271.276917 5.487071E-02 1.604608E-01 2.653043E+01
+271.537537 5.484413E-02 1.588798E-01 2.627538E+01
+271.805481 5.455162E-02 1.572022E-01 2.606756E+01
+272.075867 5.395982E-02 1.554992E-01 2.592618E+01
+272.350220 5.313928E-02 1.537986E-01 2.583987E+01
+272.622131 5.228111E-02 1.521581E-01 2.577320E+01
+272.894348 5.147425E-02 1.505683E-01 2.570302E+01
+273.169312 5.075669E-02 1.490020E-01 2.561480E+01
+273.446716 5.021245E-02 1.474383E-01 2.548299E+01
+273.721375 4.986703E-02 1.458798E-01 2.530078E+01
+273.987793 4.961758E-02 1.443348E-01 2.509567E+01
+274.250549 4.934768E-02 1.427784E-01 2.489285E+01
+274.513916 4.898065E-02 1.412005E-01 2.470982E+01
+274.782471 4.849084E-02 1.395932E-01 2.455161E+01
+275.058960 4.792366E-02 1.379601E-01 2.440754E+01
+275.340332 4.736857E-02 1.363255E-01 2.425926E+01
+275.630249 4.683603E-02 1.346671E-01 2.410000E+01
+275.922302 4.630645E-02 1.330218E-01 2.394130E+01
+276.221069 4.575835E-02 1.313647E-01 2.378423E+01
+276.515869 4.521918E-02 1.297600E-01 2.363335E+01
+276.805176 4.468093E-02 1.282248E-01 2.349397E+01
+277.087463 4.411202E-02 1.267628E-01 2.337539E+01
+277.362427 4.349503E-02 1.253777E-01 2.328338E+01
+277.631592 4.281344E-02 1.240625E-01 2.322182E+01
+277.895874 4.209128E-02 1.228164E-01 2.318494E+01
+278.158325 4.138993E-02 1.216300E-01 2.315470E+01
+278.421997 4.075621E-02 1.204828E-01 2.311394E+01
+278.692993 4.021107E-02 1.193440E-01 2.305013E+01
+278.977417 3.978215E-02 1.181759E-01 2.294724E+01
+279.268860 3.949722E-02 1.169858E-01 2.279794E+01
+279.552673 3.931936E-02 1.158087E-01 2.261953E+01
+279.830994 3.917491E-02 1.146191E-01 2.242842E+01
+280.107788 3.901232E-02 1.133947E-01 2.223502E+01
+280.390076 3.879934E-02 1.121109E-01 2.204354E+01
+280.682129 3.854768E-02 1.107444E-01 2.184581E+01
+280.989136 3.830809E-02 1.092639E-01 2.162107E+01
+281.314148 3.809943E-02 1.076423E-01 2.135843E+01
+281.639771 3.789573E-02 1.059547E-01 2.108001E+01
+281.970886 3.760919E-02 1.041861E-01 2.080695E+01
+282.309631 3.716412E-02 1.023510E-01 2.056249E+01
+282.651123 3.658191E-02 1.005110E-01 2.035289E+01
+282.981628 3.594454E-02 9.876189E-02 2.017523E+01
+283.313049 3.524476E-02 9.704941E-02 2.002125E+01
+283.655457 3.447877E-02 9.533084E-02 1.988397E+01
+284.009155 3.371536E-02 9.361020E-02 1.974489E+01
+284.368042 3.302273E-02 9.191993E-02 1.959065E+01
+284.732727 3.234895E-02 9.026400E-02 1.943704E+01
+285.094055 3.160743E-02 8.869553E-02 1.932203E+01
+285.439819 3.080642E-02 8.728578E-02 1.926054E+01
+285.779480 2.996963E-02 8.600625E-02 1.924132E+01
+286.120972 2.913270E-02 8.483367E-02 1.924968E+01
+286.465820 2.834094E-02 8.376723E-02 1.927137E+01
+286.797852 2.766234E-02 8.284240E-02 1.929096E+01
+287.140564 2.705965E-02 8.197961E-02 1.930147E+01
+287.513489 2.648406E-02 8.112957E-02 1.930779E+01
+287.885803 2.594768E-02 8.036678E-02 1.932293E+01
+288.253235 2.544240E-02 7.969614E-02 1.935102E+01
+288.613342 2.498890E-02 7.911758E-02 1.938408E+01
+288.971008 2.459646E-02 7.861421E-02 1.941379E+01
+289.332336 2.425748E-02 7.816800E-02 1.943801E+01
+289.690002 2.395421E-02 7.777721E-02 1.946288E+01
+290.041260 2.364971E-02 7.743967E-02 1.950276E+01
+290.396484 2.330143E-02 7.715341E-02 1.957535E+01
+290.759033 2.291026E-02 7.693049E-02 1.968471E+01
+291.112427 2.252804E-02 7.679195E-02 1.981525E+01
+291.459717 2.217781E-02 7.673771E-02 1.995700E+01
+291.810669 2.187830E-02 7.676557E-02 2.010043E+01
+292.167419 2.165572E-02 7.687159E-02 2.023137E+01
+292.530579 2.152007E-02 7.704525E-02 2.034088E+01
+292.901062 2.147140E-02 7.726886E-02 2.042302E+01
+293.264832 2.150027E-02 7.751082E-02 2.047321E+01
+293.612732 2.157312E-02 7.774595E-02 2.050061E+01
+293.951782 2.165205E-02 7.796980E-02 2.052213E+01
+294.289612 2.170310E-02 7.818710E-02 2.055511E+01
+294.628357 2.170843E-02 7.840338E-02 2.060944E+01
+294.961609 2.168076E-02 7.862264E-02 2.068026E+01
+295.296997 2.162956E-02 7.886043E-02 2.076734E+01
+295.640015 2.154001E-02 7.913524E-02 2.088299E+01
+295.984253 2.139531E-02 7.945792E-02 2.103893E+01
+296.330017 2.119818E-02 7.984299E-02 2.123896E+01
+296.671509 2.097091E-02 8.029623E-02 2.147495E+01
+297.009033 2.072960E-02 8.082634E-02 2.174218E+01
+297.343201 2.048709E-02 8.144173E-02 2.203700E+01
+297.675842 2.026348E-02 8.214965E-02 2.235086E+01
+298.008484 2.007012E-02 8.295778E-02 2.267920E+01
+298.341125 1.990860E-02 8.386537E-02 2.302014E+01
+298.663391 1.977959E-02 8.483642E-02 2.336250E+01
+298.978333 1.968145E-02 8.586713E-02 2.370522E+01
+299.287781 1.961590E-02 8.695528E-02 2.404570E+01
+299.592957 1.957289E-02 8.810072E-02 2.438920E+01
+299.896606 1.953906E-02 8.931435E-02 2.474657E+01
diff --git a/doc/examples/garden/end.gfv b/doc/examples/garden/end.gfv
new file mode 100644
index 0000000..8354bc9
--- /dev/null
+++ b/doc/examples/garden/end.gfv
@@ -0,0 +1,28 @@
+# GfsView 2D
+View {
+  tx = 0 ty = 0
+  sx = 1 sy = 1 sz = 1
+  q0 = 0 q1 = 0 q2 = 0 q3 = 1
+  fov = 24.9119
+  r = 0.3 g = 0.4 b = 0.6
+  res = 1
+  lc = 0.001
+  reactivity = 0.1
+}
+Isoline {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} Hs {
+  amin = 1
+  amax = 1
+  cmap = Jet
+} 0 {
+  reversed = 0
+  use_scalar = 1
+} {
+  n = 0 levels = .1,.2,.3,.4,.5,.6,.7,.8,.9,1
+}
diff --git a/doc/examples/garden/garden.sh b/doc/examples/garden/garden.sh
new file mode 100644
index 0000000..698f43f
--- /dev/null
+++ b/doc/examples/garden/garden.sh
@@ -0,0 +1,79 @@
+#!/bin/sh
+
+if  gerris2D -DMINLEVEL=6 -DNTHETA=24  garden.gfs &&
+    gerris2D -DMINLEVEL=0 -DNTHETA=24  garden.gfs &&
+    gerris2D -DMINLEVEL=0 -DNTHETA=60  garden.gfs &&
+    gerris2D -DMINLEVEL=0 -DNTHETA=120 garden.gfs; then :
+else
+    exit 1
+fi
+
+for i in 6-24 0-24 0-60 0-120; do
+    echo "Save end-$i.gnu { format = Gnuplot }" | gfsview-batch2D end-$i.gfs.gz end.gfv
+done
+
+for i in 0 24 72 120; do
+    echo "Save mesh-$i.gnu { format = Gnuplot }" | gfsview-batch2D sim-0-120-$i.gfs.gz mesh.gfv
+done
+
+cat <<EOF | gnuplot
+set term postscript eps lw 1 solid 10
+
+set output 'end.eps'
+set multiplot
+set size 0.5,0.5
+set origin 0,0.5
+unset key
+set xtics 0,1000,4000
+set ytics 0,1000,3000
+set title 'Non-adaptive 24 directions'
+plot [-500:4000][-500:3000]'end-6-24.gnu' u (\$1+2000.):(\$2+2000.) w l
+set origin 0.5,0.5
+set title 'Adaptive 24 directions'
+plot [-500:4000][-500:3000]'end-0-24.gnu' u (\$1+2000.):(\$2+2000.) w l
+set origin 0,0
+set title 'Adaptive 60 directions'
+plot [-500:4000][-500:3000]'end-0-60.gnu' u (\$1+2000.):(\$2+2000.) w l
+set origin 0.5,0
+set title 'Adaptive 120 directions'
+plot [-500:4000][-500:3000]'end-0-120.gnu' u (\$1+2000.):(\$2+2000.) w l
+unset multiplot
+
+set output 'mesh.eps'
+set size 1,1
+set origin 0,0
+set multiplot
+set size 0.5,0.5
+set origin 0,0.5
+unset key
+set xtics 0,1000,4000
+set ytics 0,1000,3000
+set title 't = 0'
+plot [-500:4000][-500:3000]'mesh-0.gnu' u (\$1+2000.):(\$2+2000.) w l
+set origin 0.5,0.5
+set title 't = 1 day'
+plot [-500:4000][-500:3000]'mesh-24.gnu' u (\$1+2000.):(\$2+2000.) w l
+set origin 0,0
+set title 't = 3 days'
+plot [-500:4000][-500:3000]'mesh-72.gnu' u (\$1+2000.):(\$2+2000.) w l
+set origin 0.5,0
+set title 't = 5 days'
+plot [-500:4000][-500:3000]'mesh-120.gnu' u (\$1+2000.):(\$2+2000.) w l
+unset multiplot
+
+EOF
+
+cpu_6_24=`awk '{cpu=$8}END{printf ("%.0f", cpu);}' < log-6-24`
+cpu_0_24=`awk '{cpu=$8}END{printf ("%.0f", cpu);}' < log-0-24`
+cpu_0_60=`awk '{cpu=$8}END{printf ("%.0f", cpu);}' < log-0-60`
+cpu_0_120=`awk '{cpu=$8}END{printf ("%.0f", cpu);}' < log-0-120`
+
+cat <<EOF > cpu.tex
+\\begin{tabular}{c|c|c}
+Adaptivity & \\# directions & CPU time (seconds)\\\\\\hline
+No & 24 & $cpu_6_24 \\\\
+Yes & 24 & $cpu_0_24 \\\\
+Yes & 60 & $cpu_0_60 \\\\
+Yes & 120 & $cpu_0_120
+\\end{tabular}
+EOF
diff --git a/doc/examples/garden/mesh.gfv b/doc/examples/garden/mesh.gfv
new file mode 100644
index 0000000..83b64cb
--- /dev/null
+++ b/doc/examples/garden/mesh.gfv
@@ -0,0 +1,36 @@
+# GfsView 2D
+View {
+  tx = 0 ty = 0
+  sx = 1 sy = 1 sz = 1
+  q0 = 0 q1 = 0 q2 = 0 q3 = 1
+  fov = 24.9119
+  r = 0.3 g = 0.4 b = 0.6
+  res = 1
+  lc = 0.001
+  reactivity = 0.1
+}
+Isoline {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} Hs {
+  amin = 1
+  amax = 1
+  cmap = Jet
+} 0 {
+  reversed = 0
+  use_scalar = 1
+} {
+  n = 7
+}
+Cells {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+}
diff --git a/doc/examples/gfs-mode.el b/doc/examples/gfs-mode.el
new file mode 100644
index 0000000..79a2aa3
--- /dev/null
+++ b/doc/examples/gfs-mode.el
@@ -0,0 +1,131 @@
+;;; gfs-mode.el
+
+;;; Copyright: (C) 2010 Stephane Popinet
+;; 
+;;     This program is free software; you can redistribute it and/or
+;;     modify it under the terms of the GNU General Public License as
+;;     published by the Free Software Foundation; either version 2 of
+;;     the License, or (at your option) any later version.
+;;     
+;;     This program is distributed in the hope that it will be useful,
+;;     but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;     GNU General Public License for more details.
+;;     
+;;     You should have received a copy of the GNU General Public License
+;;     along with GNU Emacs; if not, write to the Free Software
+;;     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+;;     02110-1301 USA
+;;
+;; To use this package, you can save this file somewhere in your
+;; load-path and put the following in your .emacs at a minimum:
+;;
+;; (require 'gfs-mode)
+
+(define-derived-mode gfs-mode shell-script-mode "Gerris"
+  "Major mode for editing Gerris simulation files."
+  
+  (require 'gfs-keywords)
+
+  (defvar gfs-browse-base "http://gfs.sourceforge.net/wiki/index.php/"
+    "First part of URL used to display documentation on the Gerris website.")
+
+  (defvar gfs-ref-regexp
+    (eval-when-compile
+      (concat "\\<" (regexp-opt gfs-abbrevs t) "\\>"))
+    "Regular expression compiled Gerris keywords.")
+
+  (defvar gfs-modules-regexp
+    (eval-when-compile
+      (concat "\\<" (regexp-opt gfs-modules t) "\\>"))
+    "Regular expression compiled Gerris modules.")
+  
+  (define-key gfs-mode-map [mouse-2] 'gfs-mode-mouse-2)
+  (define-key gfs-mode-map [follow-link] 'mouse-face)
+
+  (defun gfs-clickable-refs (limit)
+    "Font-lock function which finds Gerris keywords and makes them clickable."
+    (if	(re-search-forward (eval gfs-ref-regexp) limit t)
+	(progn
+	  (add-text-properties (match-beginning 0) (match-end 0)
+			       (list 'mouse-face 'highlight
+				     'gfs-keyword (match-string 0)
+				     'help-echo "mouse-2: documentation"
+				     'rear-nonsticky '(mouse-face gfs-keyword help-echo)))
+	  t)))
+
+  (defun gfs-clickable-modules (limit)
+    "Font-lock function which finds Gerris modules and makes them clickable."
+    (if	(re-search-forward (eval gfs-modules-regexp) limit t)
+	(progn
+	  (add-text-properties (match-beginning 0) (match-end 0)
+			       (list 'mouse-face 'highlight
+				     'gfs-module (match-string 0)
+				     'help-echo "mouse-2: documentation"
+				     'rear-nonsticky '(mouse-face gfs-module help-echo)))
+	  t)))
+
+  (defun gfs-comments (limit)
+    "Font-lock function which finds Gerris comments."
+    (re-search-forward "#.*$" limit t))
+
+  (defconst gfs-font-lock-keywords
+    (list 
+     '(gfs-clickable-refs (0 'font-lock-function-name-face t))
+     '(gfs-clickable-modules (0 'font-lock-type-face t))
+     '(gfs-comments (0 'font-lock-comment-face t)))
+    "Font-lock-keywords to be added when gfs-mode is active.")
+
+  (defun gfs-url-create (ref-string module)
+    "Returns REF-STRING without carriage returns and with spaces converted
+to + signs, useful when creating a URL to lookup on the Gerris website."
+    (with-temp-buffer
+      (insert gfs-browse-base)
+      (if module
+	  (progn 
+	    (insert "Object_hierarchy#")
+	    (insert (capitalize ref-string)))
+	(progn 
+	  (unless (string= (substring ref-string 0 3) "Gfs")
+	    (insert "Gfs"))
+	  (insert ref-string)))
+      (buffer-string)))
+
+  (defun gfs-browse-reference (reference &optional module)
+    "Wrapper function to call standard Emacs browser function for REFERENCE."
+    (message "Linking to Gerris website for %s..." reference)
+    (browse-url (gfs-url-create reference module)))
+  
+  (defun gfs-mode-mouse-2 (event arg)
+    "Fetch documentation for keyword under the mouse click."
+    (interactive "e\nP")
+    (let (my-keyword)
+      (save-excursion
+	(set-buffer (window-buffer (posn-window (event-end event))))
+	(goto-char (posn-point (event-end event)))
+	(setq my-keyword (get-text-property (point) 'gfs-keyword)))
+      (if my-keyword
+	  (progn
+	    (select-window (posn-window (event-end event)))
+	    (gfs-browse-reference my-keyword))
+	(progn
+	  (setq my-keyword (get-text-property (point) 'gfs-module))
+	  (if my-keyword
+	      (progn
+		(select-window (posn-window (event-end event)))
+		(gfs-browse-reference my-keyword t))
+	    (mouse-yank-at-click event arg)
+	    )))))
+
+  (font-lock-add-keywords nil gfs-font-lock-keywords)
+
+  ;; load keywords for autocompletion with dabbrev
+  (find-file-noselect (locate-file "gfs-keywords.el" load-path) t)
+  (setq case-fold-search nil)
+
+  (column-number-mode 1)
+)
+
+(add-to-list 'auto-mode-alist '("\\.gfs\\'" . gfs-mode))
+
+(provide 'gfs-mode)
diff --git a/doc/examples/gfs.hva b/doc/examples/gfs.hva
new file mode 100644
index 0000000..11b9576
--- /dev/null
+++ b/doc/examples/gfs.hva
@@ -0,0 +1,17 @@
+
+%% (-*-LaTeX-*-)
+
+\newcommand{\gfsweb}{http://gfs.sf.net}
+\newcommand{\htmladdnormallinkfoot}[2]{\footahref{#2}{#1}}
+\newcommand{\htmladdnormallink}[2]{\ahref{#2}{#1}}
+\newcommand{\video}[3]{
+  \@print{<center>}
+  \@print{<video type="video/ogg" src="}\@getprint{#1}\@print{.ogv"}
+  \@print{       width="}\@getprint{#2}\@print{" height="}\@getprint{#3}\@print{"}
+  \@print{       poster="}\@getprint{#1}\@print{.png"}
+  \@print{       controls>}
+  \@print{  video tag not supported on this browser}
+  \@print{</video>}
+  \@print{</center>}
+}
+
diff --git a/doc/examples/gfs.php.sh b/doc/examples/gfs.php.sh
new file mode 100644
index 0000000..044b13b
--- /dev/null
+++ b/doc/examples/gfs.php.sh
@@ -0,0 +1,140 @@
+#!/bin/sh
+
+list()
+{
+  awk "BEGIN{started=0} {
+    if (started)
+      print \", \";
+    else
+      started = 1;
+    printf \"'%s'\", \$1;
+  }"
+}
+
+cat <<EOF
+<?php
+/*************************************************************************************
+ * gfs.php
+ * --------
+ * Author: Stephane Popinet (s.popinet at gmail.com)
+ * Copyright: (c) 2010 Stephane Popinet (http://gfs.sf.net)
+ * Release Version: 1.0.8.1
+ * Date Started: 2010/07/10
+ *
+ * Gerris language file for GeSHi.
+ *
+ * Generated automatically by gerris/doc/examples/gfs.php.sh
+ *
+ * CHANGES
+ * -------
+ * 2010/07/10 (0.0.1)
+ *  -  First Release
+ *
+ * TODO (updated 2010/07/10)
+ * -------------------------
+ *
+ *************************************************************************************
+ *
+ *     This file is part of GeSHi.
+ *
+ *   GeSHi is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   GeSHi is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with GeSHi; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ ************************************************************************************/
+
+\$language_data = array (
+    'LANG_NAME' => 'Gerris',
+    'COMMENT_SINGLE' => array(1 => '//', 2 => '#'),
+    'COMMENT_MULTI' => array('/*' => '*/'),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array('"'),
+    'ESCAPE_CHAR' => '\\\\',
+    'KEYWORDS' => array(
+EOF
+
+echo "        1 => array("
+grep "^Gfs" gerris.dic | list
+echo "            ),"
+
+echo "        2 => array("
+grep -v "^Gfs" gerris.dic | list
+echo "            ),"
+
+echo "        3 => array("
+list < modules.list
+echo "            )"
+
+cat <<EOF
+        ),
+    'SYMBOLS' => array(
+	    '(', ')', '{', '}', '[', ']', '=', '+', '-', '*', '/', '!', '%', '^', '&', ':'
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => true,
+        1 => true,
+        2 => true,
+        3 => true
+        ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #002bb8;',
+            2 => 'color: #002bb8;',
+            3 => 'color: #b1b100; font-weight: bold;'
+            ),
+        'COMMENTS' => array(
+            1 => 'color: #808080; font-style: italic;',
+            2 => 'color: #808080; font-style: italic;',
+            'MULTI' => 'color: #808080; font-style: italic;'
+            ),
+        'ESCAPE_CHAR' => array(
+            0 => 'color: #000099; font-weight: bold;'
+            ),
+        'BRACKETS' => array(
+            0 => 'color: #66cc66;'
+            ),
+        'STRINGS' => array(
+            0 => 'color: #ff0000;'
+            ),
+        'NUMBERS' => array(
+            0 => 'color: #cc66cc;'
+            ),
+        'METHODS' => array(
+            1 => 'color: #006600;',
+            2 => 'color: #006600;'
+            ),
+        'SYMBOLS' => array(
+            0 => 'color: #66cc66;'
+            ),
+        'REGEXPS' => array(
+            0 => 'color: #0000ff;',
+            1 => 'color: #ff0000'
+            ),
+        'SCRIPT' => array(
+            0 => '',
+            1 => '',
+            2 => '',
+            3 => ''
+            )
+        ),
+    'URLS' => array(
+        1 => 'http://gfs.sf.net/wiki/index.php/{FNAME}',
+        2 => 'http://gfs.sf.net/wiki/index.php/Gfs{FNAME}',
+        3 => 'http://gfs.sourceforge.net/wiki/index.php/Object_hierarchy#{FNAME}'
+        ),
+    'OOLANG' => false,
+    'TAB_WIDTH' => 4
+);
+
+?>
+EOF
diff --git a/doc/examples/gfs.sty b/doc/examples/gfs.sty
new file mode 100644
index 0000000..ff0721b
--- /dev/null
+++ b/doc/examples/gfs.sty
@@ -0,0 +1,4 @@
+\newcommand{\gfsweb}{http://gfs.sf.net}
+\newcommand{\htmladdnormallinkfoot}[2]{\footahref{#2}{#1}}
+\newcommand{\htmladdnormallink}[2]{\ahref{#2}{#1}}
+\newcommand{\video}[3]{\includegraphics[scale=0.5]{#1.eps}}
diff --git a/doc/examples/gfs2doc.in b/doc/examples/gfs2doc.in
index 469b410..f807b1f 100644
--- a/doc/examples/gfs2doc.in
+++ b/doc/examples/gfs2doc.in
@@ -27,6 +27,7 @@ for d in sys.argv[1:]:
     \usepackage{hevea}
     \usepackage[usenames]{color}
     \usepackage{graphicx}
+    \usepackage{gfs}
     
     \oddsidemargin=4mm
     \evensidemargin=-1mm
@@ -34,9 +35,6 @@ for d in sys.argv[1:]:
     \textwidth=15.42cm
     \textheight=23.2cm
 
-    \newcommand{\htmladdnormallinkfoot}[2]{\footahref{#2}{#1}}
-    \newcommand{\htmladdnormallink}[2]{\ahref{#2}{#1}}
-    
     \begin{document}
     \section{Examples}
     """)
@@ -44,7 +42,8 @@ for d in sys.argv[1:]:
     tex.write("\\end{document}\n")
     tex.close()
     os.symlink(os.getcwd() + "/" + example.name, wdname + "/" + example.name)
-    if os.system("rm -r -f " + example.name + ".pdf " + example.name + "_html" +\
+    if os.system("export TEXINPUTS=\".:@prefix@/share/gerris:\" " +\
+              "&& rm -r -f " + example.name + ".pdf " + example.name + "_html" +\
               "&& cd " + wdname + \
               "&& latex -interaction=nonstopmode 2>&1 " + example.name + ".tex" +\
               "&& latex -interaction=nonstopmode " + example.name + ".tex") or \
@@ -60,11 +59,14 @@ for d in sys.argv[1:]:
     os.mkdir(hname)
     os.symlink("../" + example.name, hname + "/" + example.name)
     wdir = os.getcwd()
-    if os.system("cd " + wdname + \
-		 "&& hevea -fix " + example.name + ".tex"):
+    if os.system("export TEXINPUTS=\".:@prefix@/share/gerris:\" " +\
+                 "&& cd " + wdname + \
+		 "&& hevea -fix -I @prefix@/share/gerris " + example.name + ".tex" + \
+                 "&& sh @prefix@/share/gerris/kaltura.sh " + example.name):
         print "\n\n**** Errors occured while generating directory ****: " + example.name + "_html"
         myexit(1)
-    os.system("cd " + wdname + \
+    os.system("export TEXINPUTS=\".:@prefix@/share/gerris:\" " +\
+                  "&& cd " + wdname + \
                   "; imagen -res 600 -extra \"pnmscale 0.24\" " + example.name + " " + \
                   "; mv -f " + example.name + "[0-9][0-9][0-9].png " + example.name + ".html " + \
                   hname + \
diff --git a/doc/examples/gfs2tex.py b/doc/examples/gfs2tex.py
index fd3c479..e0da406 100644
--- a/doc/examples/gfs2tex.py
+++ b/doc/examples/gfs2tex.py
@@ -135,7 +135,7 @@ class Example:
         for f in self.required:
             files += " " + path + f
         command = self.command
-        for v in ["2D","2D3","3D"]:
+        for v in ["2D","3D"]:
             command = command.replace("gfsview" + v, "gfsview-batch" + v)
         out = os.popen("cd " + wdname + " && " +\
                        "mkdir test && cd test && " +\
diff --git a/doc/examples/hump/cells.gfv b/doc/examples/hump/cells.gfv
new file mode 100644
index 0000000..cd4d75e
--- /dev/null
+++ b/doc/examples/hump/cells.gfv
@@ -0,0 +1,19 @@
+# GfsView 2D
+View {
+  tx = -1.10977 ty = -0.473248
+  sx = 1 sy = 1 sz = 1
+  q0 = 0 q1 = 0 q2 = 0 q3 = 1
+  fov = 17.1233
+  r = 0.3 g = 0.4 b = 0.6
+  res = 1
+  lc = 0.001
+  reactivity = 0.1
+}
+Cells {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+}
diff --git a/doc/examples/hump/hump.gfv b/doc/examples/hump/hump.gfv
new file mode 100644
index 0000000..84a6fcd
--- /dev/null
+++ b/doc/examples/hump/hump.gfv
@@ -0,0 +1,41 @@
+# GfsView 2D
+View {
+  tx = -1.12721 ty = 0.409038
+  sx = 1 sy = 1 sz = 1
+  q0 = 0.44512 q1 = 0.14796 q2 = 0.310734 q3 = 0.826693
+  fov = 16.0939
+  r = 0.3 g = 0.4 b = 0.6
+  res = 1
+  lc = 0.001
+  reactivity = 0.1
+}
+Linear {
+  r = 1 g = 1 b = 1
+  shading = Constant
+  maxlevel = -1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} P {
+  amin = 1
+  amax = 1
+  cmap = Jet
+} (P+Zb-1)*20 {
+  reversed = 0
+  use_scalar = 0
+}
+Linear {
+  r = 1 g = 1 b = 1
+  shading = Constant
+  maxlevel = -1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} Zb {
+  amin = 1
+  amax = 1
+  cmap = Jet
+} Zb/2-0.9 {
+  reversed = 0
+  use_scalar = 1
+}
diff --git a/doc/examples/hump/isolines.gfv b/doc/examples/hump/isolines.gfv
new file mode 100644
index 0000000..7708f1e
--- /dev/null
+++ b/doc/examples/hump/isolines.gfv
@@ -0,0 +1,33 @@
+# GfsView 2D
+View {
+  tx = -1.10977 ty = -0.473248
+  sx = 1 sy = 1 sz = 1
+  q0 = 0 q1 = 0 q2 = 0 q3 = 1
+  fov = 17.1233
+  r = 0.3 g = 0.4 b = 0.6
+  res = 1
+  lc = 0.001
+  reactivity = 0.1
+}
+Isoline {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} P+Zb {
+  amin = 1
+  amax = 1
+  cmap = Jet
+} 0 {
+  reversed = 0
+  use_scalar = 1
+} {
+  n = 30
+}
+Boundaries {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+}
diff --git a/doc/examples/kaltura.sh b/doc/examples/kaltura.sh
new file mode 100644
index 0000000..912e535
--- /dev/null
+++ b/doc/examples/kaltura.sh
@@ -0,0 +1,9 @@
+# insert the Kaltura.org javascript for HTML5 video
+# http://www.kaltura.org/project/HTML5_Video_Media_JavaScript_Library
+
+f=`echo $1 | sed 's/\.html$//'`
+if grep -q "</video>" $f.html; then
+    tmp=`mktemp /tmp/kaltura.XXXXXXXXXX`
+    sed 's/<\/HEAD>/<script type="text\/javascript" src="http:\/\/html5.kaltura.org\/js"><\/script>\n<\/HEAD>/' < $f.html > $tmp
+    mv -f $tmp $f.html
+fi
diff --git a/doc/examples/logo/logo.gfs b/doc/examples/logo/logo.gfs
index 0942084..d4fd949 100644
--- a/doc/examples/logo/logo.gfs
+++ b/doc/examples/logo/logo.gfs
@@ -18,16 +18,13 @@
 # Author: St\'ephane Popinet
 # Command: gerris2D logo.gfs | gfsview2D logo.gfv
 # Required files: logo.gfv
-# Version: 1.0.0
+# Version: 100317
 # Running time: 5 minutes
 # Generated files: logo.mpg logo.png logo.eps
 #
 1 0 GfsSimulation GfsBox GfsGEdge {} {
     Time { end = 4 }
     Refine 6
-    # Take a large domain to minimise the influence of boundaries but
-    # refine only in a small central disk.
-    Refine (sqrt(x*x + y*y) < 0.0625 ? 12 : 6)
     # Initialise a vorticity field given by two gaussian distributions
     InitVorticity {} {
         /* We use nested functions for simplicity (this will not work on MACOSX) */
@@ -39,15 +36,19 @@
         return vortex (-r*sin(theta), r*cos(theta), 0.01) + 
                vortex (r*sin(theta), -r*cos(theta), 0.01);
     }
-    AdaptVorticity { istep = 1 } { cmax = 1e-2 maxlevel = 12 }
+    AdaptVorticity { istep = 1 } { cmax = 1e-2 maxlevel = 12 minlevel = 6 }
     OutputTime { istep = 1 } stderr
     OutputProjectionStats { istep = 1 } stderr
     OutputSimulation { istep = 10 } stdout
     OutputPPM { istep = 2 } { ppm2mpeg > logo.mpg } {
         v = Vorticity
         min = -0.1348 max = 6.22219
-        # Only generate the movie in a small box centered on the origin
-        box = -0.025,-0.025,0.025,0.025
+        # Only generate the movie in a small box centered on the
+	# origin. We also need to make sure that box size is a multiple
+	# of 1./64. so that the PPM image size stays constant (ffmpeg
+	# crashes on variable image sizes).
+        condition = (Level < 6 || 
+                     (x >= -3./128. && x <= 3./128. && y >= -3./128. && y <= 3./128.))
     }
     EventScript { start = end } {
         echo "Save logo.ppm { width = 1024 height = 1024 }"
diff --git a/doc/examples/logo/logo.gfv b/doc/examples/logo/logo.gfv
new file mode 100644
index 0000000..934a82a
--- /dev/null
+++ b/doc/examples/logo/logo.gfv
@@ -0,0 +1,40 @@
+# GfsView 2D
+View {
+  tx = 0 ty = 0
+  sx = 1 sy = 1 sz = 1
+  q0 = 0 q1 = 0 q2 = 0 q3 = 1
+  fov = 1.37889
+  r = 0.3 g = 0.4 b = 0.6
+  res = 1
+  lc = 0.001
+  reactivity = 0.1
+}
+Isoline {
+  r = 0 g = 0 b = 1
+  shading = Constant
+  maxlevel = -1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} Vorticity {
+  amin = 1
+  amax = 1
+  cmap = Jet
+} 0 {
+  reversed = 0
+  use_scalar = 1
+} {
+  n = 0 levels = 0.555
+}
+Squares {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} Vorticity > 0.55 ? Vorticity : 0.55 {
+  amin = 0 min = -0.1348
+  amax = 0 max = 6.22219
+  cmap = Jet
+}
diff --git a/doc/examples/modules.c b/doc/examples/modules.c
new file mode 100644
index 0000000..8e5e35a
--- /dev/null
+++ b/doc/examples/modules.c
@@ -0,0 +1,19 @@
+#include <gmodule.h>
+#include <stdio.h>
+
+int main (int argc, char * argv[])
+{
+  if (g_module_supported ()) {
+    guint i;
+    for (i = 1; i < argc; i++) {
+      GModule * module = g_module_open (argv[i], 0);
+      if (module) {
+	gpointer name = NULL;
+	if (g_module_symbol (module, "gfs_module_name", &name))
+	  printf ("%s\n", (gchar *) name);
+	g_module_close (module);
+      }
+    }
+  }
+  return 0;
+}
diff --git a/doc/examples/modulesyms.sh b/doc/examples/modulesyms.sh
new file mode 100644
index 0000000..7bed10e
--- /dev/null
+++ b/doc/examples/modulesyms.sh
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+for module in `cat modules.list`; do
+    for dim in 2D 3D; do
+	lib=$1/.libs/lib"$module""$dim".so
+	if test ! -f $lib; then
+	    lib=$2/lib"$module""$dim".so
+	fi
+	if test -f $lib; then
+	    nm -fb $lib | grep ".* T gfs_.*_class$" | grep -v "gfs_gl" | cut -d" " -f3-4
+	fi
+    done
+done | sort | uniq | sed -e 's/_class//g' -e 's/^./\U&/' -e 's/_./\U&/g' -e 's/_//g' | \
+awk '{ print $0; gsub ("^Gfs", ""); print $0; }'
diff --git a/doc/examples/monai/3D.gfv b/doc/examples/monai/3D.gfv
new file mode 100644
index 0000000..978a83c
--- /dev/null
+++ b/doc/examples/monai/3D.gfv
@@ -0,0 +1,55 @@
+# GfsView 2D
+View {
+  tx = 1.2559 ty = -0.110427
+  sx = 1 sy = 1 sz = 1
+  q0 = 0.19799 q1 = -0.447281 q2 = -0.819559 q3 = 0.298433
+  fov = 6.89543
+  r = 0.3 g = 0.4 b = 0.6
+  res = 1
+  lc = 0.001
+  reactivity = 0.1
+}
+ClipPlane {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+  font_size = 1
+  raster_font = 1
+} {
+  n.x = 1 n.y = 0 n.z = 0
+  pos = 1.576
+}
+Linear {
+  r = 1 g = 1 b = 1
+  shading = Constant
+  maxlevel = -1
+  font_size = 1
+  raster_font = 1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} Zb {
+  amin = 1
+  amax = 0 max = 0.15
+  cmap = Jet
+} Zb/2 {
+  reversed = 0
+  use_scalar = 0
+}
+Linear {
+  r = 0.41709 g = 0.801862 b = 1
+  shading = Constant
+  maxlevel = -1
+  font_size = 1
+  raster_font = 1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} P + Zb - 1e-3 {
+  amin = 0 min = -0.03
+  amax = 0 max = 0.05
+  cmap = Jet
+} (P + Zb - 1e-3)/2 {
+  reversed = 0
+  use_scalar = 0
+}
diff --git a/doc/examples/monai/leveque.gfv b/doc/examples/monai/leveque.gfv
new file mode 100644
index 0000000..f990bc3
--- /dev/null
+++ b/doc/examples/monai/leveque.gfv
@@ -0,0 +1,58 @@
+# GfsView 2D
+View {
+  tx = -1.10519 ty = -0.502068
+  sx = 1 sy = 1 sz = 1
+  q0 = 0 q1 = 0 q2 = 0 q3 = 1
+  fov = 9.96845
+  r = 0.3 g = 0.4 b = 0.6
+  res = 1
+  lc = 0.001
+  reactivity = 0.1
+}
+Isoline {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} Zb {
+  amin = 1
+  amax = 1
+  cmap = Jet
+} Zb/10. {
+  reversed = 0
+  use_scalar = 1
+} {
+  n = 0 levels = 9e-3,18e-3,27e-3,36e-3,45e-3,54e-3,63e-3,72e-3,81e-3,90e-3,99e-3,108e-3,117e-3
+}
+Linear {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} (P+Zb-1e-3) {
+  amin = 0 min = -0.05
+  amax = 0 max = 0.05
+  cmap = Jet
+} (P+Zb-1e-3)/10. {
+  reversed = 0
+  use_scalar = 1
+}
+Linear {
+  r = 1 g = 1 b = 1
+  shading = Constant
+  maxlevel = -1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} P {
+  amin = 1
+  amax = 1
+  cmap = Jet
+} Zb/10. {
+  reversed = 0
+  use_scalar = 0
+}
diff --git a/doc/examples/monai/mesh.gfv b/doc/examples/monai/mesh.gfv
new file mode 100644
index 0000000..e9eeae0
--- /dev/null
+++ b/doc/examples/monai/mesh.gfv
@@ -0,0 +1,19 @@
+# GfsView 2D
+View {
+  tx = -1.10519 ty = -0.502068
+  sx = 1 sy = 1 sz = 1
+  q0 = 0 q1 = 0 q2 = 0 q3 = 1
+  fov = 9.96845
+  r = 1 g = 1 b = 1
+  res = 1
+  lc = 0.001
+  reactivity = 0.1
+}
+Cells {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+}
diff --git a/doc/examples/monai/monai.gfs b/doc/examples/monai/monai.gfs
new file mode 100644
index 0000000..a23f53b
--- /dev/null
+++ b/doc/examples/monai/monai.gfs
@@ -0,0 +1,208 @@
+# Title: Tsunami runup onto a complex three-dimensional beach
+#
+# Description:
+#
+# This example is a classical validation test case for tsunami
+# models. It was proposed at the \htmladdnormallinkfoot{"Third
+# international workshop on long-wave runup
+# models"}{http://isec.nacse.org/workshop/2004\_cornell/bmark2.html}. It
+# is based on experimental data obtained in a wave tank in order to
+# understand the extreme runups observed near the village of Monai
+# during the 1993 Okushiri tsunami.
+#
+# The animation in Figure \ref{monai} gives a general idea of the
+# geometry and time evolution of the modelled tsunami. The bathymetry
+# data and channel geometry matches that used in the experimental wave
+# tank. The water surface is forced on the open boundary with the
+# experimentally-imposed waveform (outside the field of view on the
+# right-hand-side in the animation). The initial dryout as well as
+# extreme runup in the narrow central valley are clearly visible in
+# the animation, as well as wave reflections from the boundaries and
+# dimples in the water surface caused by underwater vortices.
+#
+# \begin{figure}[htbp]
+# \caption{\label{monai}Animation of the water surface (light blue)
+# and bathymetry (white) for the Monai tsunami.}
+# \begin{center}
+# \htmladdnormallinkfoot{\includegraphics[width=0.8\hsize]{monai.eps}}{monai.mpg}
+# \end{center}
+# \end{figure}
+#
+# Another view of the process together with the adaptive mesh used to
+# resolve the flow is given in Figure \ref{topview}. This figure can
+# be compared with that of LeVeque and George (Figure 4 of
+# \cite{leveque2006}).
+#
+# \begin{figure}[htbp]
+# \caption{\label{topview}Evolution of the free surface elevation
+# (left column) and corresponding adaptive mesh (right
+# column). Contour lines of the topography are represented. The areas
+# in white in the left column are dry. The wet areas are coloured
+# according to free surface elevation relative to the unperturbed
+# water surface. A ``jet'' colour scale is used with a maximum value
+# (dark red) of $+5$ cm and a minimum value (dark blue) of $-5$ cm.}
+# \begin{center}
+# \begin{tabular}{cc}
+# \includegraphics[width=0.5\hsize]{fig4-10.eps} &
+# \includegraphics[width=0.5\hsize]{mesh-10.eps} \\
+# \multicolumn{2}{c}{$t = 10$ s} \\
+# \includegraphics[width=0.5\hsize]{fig4-12.eps} &
+# \includegraphics[width=0.5\hsize]{mesh-12.eps} \\
+# \multicolumn{2}{c}{$t = 12$ s} \\
+# \includegraphics[width=0.5\hsize]{fig4-14.eps} &
+# \includegraphics[width=0.5\hsize]{mesh-14.eps} \\
+# \multicolumn{2}{c}{$t = 14$ s} \\
+# \includegraphics[width=0.5\hsize]{fig4-16.eps} &
+# \includegraphics[width=0.5\hsize]{mesh-16.eps} \\
+# \multicolumn{2}{c}{$t = 16$ s} \\
+# \includegraphics[width=0.5\hsize]{fig4-18.eps} &
+# \includegraphics[width=0.5\hsize]{mesh-18.eps} \\
+# \multicolumn{2}{c}{$t = 18$ s} \\
+# \includegraphics[width=0.5\hsize]{fig4-20.eps} &
+# \includegraphics[width=0.5\hsize]{mesh-20.eps} \\
+# \multicolumn{2}{c}{$t = 20$ s}
+# \end{tabular}
+# \end{center}
+# \end{figure}
+#
+# Experimental data includes free-surface elevation timeseries at
+# several locations (see Figure \ref{topview}, $t = 18$ s). Figures
+# \ref{p5}, \ref{p7} and \ref{p9} give comparisons of the experimental
+# and numerical timeseries.
+#
+# \begin{figure}[htbp]
+# \caption{\label{p5}Time-series of free-surface elevation measured
+# and calculated at the location of probe 5.}
+# \begin{center}
+# \includegraphics[width=0.8\hsize]{p5.eps}
+# \end{center}
+# \end{figure}
+#
+# \begin{figure}[htbp]
+# \caption{\label{p7}Time-series of free-surface elevation measured
+# and calculated at the location of probe 7.}
+# \begin{center}
+# \includegraphics[width=0.8\hsize]{p7.eps}
+# \end{center}
+# \end{figure}
+#
+# \begin{figure}[htbp]
+# \caption{\label{p9}Time-series of free-surface elevation measured
+# and calculated at the location of probe 9.}
+# \begin{center}
+# \includegraphics[width=0.8\hsize]{p9.eps}
+# \end{center}
+# \end{figure}
+#
+# Finally, the animation in Figure \ref{comparison} gives a comparison
+# between the overhead video of the experiment and the corresponding
+# view of the simulation.
+#
+# \begin{figure}[htbp]
+# \caption{\label{comparison}Comparison between the video of the
+# experiment (left) and the simulation results (right).}
+# \begin{center}
+# \htmladdnormallinkfoot{\includegraphics[width=0.8\hsize]{comparison.eps}}{comparison.mp4}
+# \end{center}
+# \end{figure}
+#
+# More details on this simulation and the method used is given in
+# \cite{popinet2011}.
+#
+# Author: St\'ephane Popinet
+# Command: sh monai.sh
+# Required files: monai.sh 3D.gfv leveque.gfv mesh.gfv overhead.gfv probe.gfv
+# Version: 110107
+# Running time: 50 minutes
+# Generated files: monai.mpg monai.eps fig4-10.eps mesh-10.eps fig4-12.eps mesh-12.eps fig4-14.eps mesh-14.eps fig4-16.eps mesh-16.eps fig4-18.eps mesh-18.eps fig4-20.eps mesh-20.eps p5.eps p7.eps p9.eps comparison.eps comparison.mp4
+
+# below this depth the flow is considered "dry"
+Define DRY 1e-4
+
+# use the GfsRiver Saint-Venant solver
+# shift the origin of the reference box to (0,0)
+2 1 GfsRiver GfsBox GfsGEdge { x = 0.5 y = 0.5 } {
+    # the domain is 3.402 m X 6.804 m
+    # units for time are seconds
+    PhysicalParams { L = 3.402 g = 9.81 }
+    Refine 6
+
+    # maintain the Zb1 variable using the GTS surface
+    VariableFunction Zb1 bathy.gts
+
+    # the initial water level is at z = 0, so the depth P is...
+    Init {} {
+        P = MAX (0., -Zb1)
+    }
+
+    # use a Sweby limiter rather than the default minmod which is too
+    # dissipative
+    AdvectionParams { gradient = gfs_center_sweby_gradient }
+
+    # adapt down to 9 levels based on the slope of the (wet)
+    # free-surface and with a tolerance of 1 mm
+    AdaptGradient { istep = 1 } {
+        cmax = 1e-3
+        cfactor = 2
+        maxlevel = 9
+        minlevel = 6
+    } (P < DRY ? 0. : P + Zb)
+
+    # at each timestep
+    Init { istep = 1 } {
+	# Add a "shelf" to simulate the wall on the right-hand-side boundary
+	Zb = (x > 5.448 ? 0.13535 : Zb1)
+        # read in the experimental timeseries in variable 'input'
+	input = input.cgd
+        # implicit quadratic bottom friction with coefficient 1e-3
+	U = (P > DRY ? U/(1. + dt*1e-3*Velocity/P) : 0.)
+	V = (P > DRY ? V/(1. + dt*1e-3*Velocity/P) : 0.)
+        P = (P > DRY ? P : 0.)
+    }
+
+    Time { end = 22.5 }
+    OutputTime { istep = 10 } stderr
+    OutputTiming { start = end } stderr
+    OutputSimulation { step = 1 } stdout
+    OutputSimulation { step = 1 } sim-%g.gfs
+    EventScript { step = 1 } { gzip -f sim-*.gfs }
+
+    # output data at probe locations
+    OutputLocation { istep = 1 } input 1e-3 1.7 0
+    OutputLocation { istep = 1 } p5 4.521 1.196 0
+    OutputLocation { istep = 1 } p7 4.521 1.696 0
+    OutputLocation { istep = 1 } p9 4.521 2.196 0
+
+    # kinetic energy
+    OutputScalarSum { istep = 1 } ke { v = (P > 0. ? Velocity2*P : 0.) }
+    # free-surface elevation
+    OutputScalarStats { istep = 1 } p { v = (Zb > 0. ? P : P + Zb) }
+    OutputScalarNorm { istep = 1 } u { v = Velocity }
+    OutputTime { istep = 1 } balance
+    OutputBalance { istep = 1 } balance
+
+    # generate movies
+    GModule gfsview
+    OutputView { start = 9 step = 0.0416 } { ppm2mpeg -s 640x480 > monai.mpg } { 
+	width = 1280 height = 960
+    } 3D.gfv
+    OutputView { start = 14.63 end = 19.5 step = 0.033333333 } { 
+	ppm2mpeg -s 400x600 > overhead.mpg 
+    } { 
+	width = 800 height = 1200
+    } overhead.gfv
+} {
+    dry = DRY
+}
+GfsBox {
+    # use 'subcritical' boundary condition to impose the experimental
+    # water level on the left boundary
+    left = Boundary { BcSubcritical U (input - Zb) }
+    top = Boundary
+    bottom = Boundary
+}
+GfsBox {
+    top = Boundary
+    bottom = Boundary
+}
+1 2 right
diff --git a/doc/examples/monai/monai.sh b/doc/examples/monai/monai.sh
new file mode 100644
index 0000000..b06442f
--- /dev/null
+++ b/doc/examples/monai/monai.sh
@@ -0,0 +1,102 @@
+# get bathymetry data
+if test ! -f Benchmark_2_Bathymetry.txt; then
+    wget http://isec.nacse.org/workshop/2004_cornell/data/Benchmark_2_Bathymetry.txt
+fi
+
+# number of lines in the file (ignoring the first line which is a header)
+np=`awk 'FNR>1 && NF == 3' Benchmark_2_Bathymetry.txt | wc -l`
+
+# triangulate the data points
+(echo "$np 0 0" && awk 'FNR>1 && NF == 3 { print $1,$2,-$3 }' Benchmark_2_Bathymetry.txt) | delaunay -r -v > bathy.gts
+
+# get input data
+if test ! -f Benchmark_2_input.txt; then
+    wget http://isec.nacse.org/workshop/2004_cornell/data/Benchmark_2_input.txt
+fi
+
+# number of lines in the file (ignoring the first line which is a header)
+np=`awk 'FNR>1 && NF == 2' Benchmark_2_input.txt | wc -l`
+
+# create CGD input file
+cat <<EOF > input.cgd
+1 t
+$np
+EOF
+awk 'FNR>1 && NF == 2 { printf ("%s ",$1) }' Benchmark_2_input.txt >> input.cgd
+awk 'FNR>1 && NF == 2 { print $2 }' Benchmark_2_input.txt >> input.cgd
+
+# run the simulation
+if xdpyinfo > /dev/null 2>&1; then 
+    GFSVIEW=gfsview2D
+else 
+    GFSVIEW=gfsview-batch2D
+fi
+
+if gerris2D -m monai.gfs | $GFSVIEW 3D.gfv; then :
+else
+    exit 1
+fi
+
+# generate graphics
+for i in 10 12 14 16 18 20; do
+    if test $i = 18; then
+	probe=probe.gfv
+    else
+	probe=""
+    fi
+    echo "Save stdout { width = 602 height = 582 }" | \
+	gfsview-batch2D sim-$i.gfs.gz leveque.gfv $probe | convert ppm:- eps2:fig4-$i.eps
+    echo "Save stdout { width = 602 height = 582 }" | \
+	gfsview-batch2D sim-$i.gfs.gz mesh.gfv | convert ppm:- eps2:mesh-$i.eps
+done
+echo "Save stdout { width = 1280 height = 960 }" | \
+    gfsview-batch2D sim-18.gfs.gz 3D.gfv | convert ppm:- eps2:monai.eps
+
+# get experimental probe data
+if test ! -f output_ch5-7-9.xls; then
+    wget http://isec.nacse.org/workshop/2004_cornell/data/benchmark2/output_ch5-7-9.xls
+fi
+
+# convert excel crap to plain text (requires catdoc, install with 'sudo apt-get install catdoc')
+xls2csv -c' ' output_ch5-7-9.xls | sed 's/"//g' | awk 'FNR>1' > output_ch5-7-9.txt
+
+gnuplot <<EOF
+set term postscript eps color lw 2 20 solid
+set xlabel "Time (s)"
+set ylabel "Elevation (cm)" 
+set key top left
+set output 'p5.eps'
+plot [0:22.5]'output_ch5-7-9.txt' u 1:2 pt 6 ps 0.5 t 'Experiment', 'p5' u 1:((\$9)*100.) w l t 'Gerris'
+set output 'p7.eps'
+plot [0:22.5]'output_ch5-7-9.txt' u 1:3 pt 6 ps 0.5 t 'Experiment', 'p7' u 1:((\$9)*100.) w l t 'Gerris'
+set output 'p9.eps'
+plot [0:22.5]'output_ch5-7-9.txt' u 1:4 pt 6 ps 0.5 t 'Experiment', 'p9' u 1:((\$9)*100.) w l t 'Gerris'
+EOF
+
+# generate overhead comparison movie
+# this link is broken
+# wget http://isec.nacse.org/workshop/2004_cornell/data/benchmark2/overhead.avi
+# use this one instead
+if test ! -f experiment.mpg; then
+    wget -O experiment.mpg http://www.amath.washington.edu/~rjl/catalina04/overhead.mpg
+fi
+
+# extract individual frames and change contrast of experimental movie
+ffmpeg -i experiment.mpg frame-%03d.png
+mogrify -modulate 300,100,100 -contrast -rotate 90 -chop 0x10 -geometry x600 frame-*.png
+
+# extract individual frames of simulation
+ffmpeg -i overhead.mpg sframe-%03d.png
+
+# combine frames
+for f in frame-*.png; do
+    montage -geometry +0+0 $f s$f -resize 400x600! -depth 8 png:m$f
+    echo -n -e '\r'$f
+done
+echo ""
+ffmpeg -r 10 -f image2 -i mframe-%03d.png -b 1800K comparison.mp4
+
+convert mframe-050.png eps2:comparison.eps
+
+# cleanup
+rm -f frame-*.png sframe-*.png mframe-*.png
diff --git a/doc/examples/monai/overhead.gfv b/doc/examples/monai/overhead.gfv
new file mode 100644
index 0000000..9d2e358
--- /dev/null
+++ b/doc/examples/monai/overhead.gfv
@@ -0,0 +1,58 @@
+# GfsView 2D
+View {
+  tx = -1.47037 ty = -0.548418
+  sx = 1 sy = 1 sz = 1
+  q0 = 0 q1 = 0 q2 = 0 q3 = 1
+  fov = 2.90873
+  r = 0.3 g = 0.4 b = 0.6
+  res = 1
+  lc = 0.001
+  reactivity = 0.1
+}
+Linear {
+  r = 0.199145 g = 0.782971 b = 1
+  shading = Constant
+  maxlevel = -1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} P {
+  amin = 1
+  amax = 1
+  cmap = Jet
+} (Zb+P-1e-3)/2. {
+  reversed = 0
+  use_scalar = 0
+}
+Linear {
+  r = 1 g = 1 b = 1
+  shading = Constant
+  maxlevel = -1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} P {
+  amin = 1
+  amax = 1
+  cmap = Jet
+} Zb/2. {
+  reversed = 0
+  use_scalar = 0
+}
+Isoline {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} Zb {
+  amin = 0 min = 0.009
+  amax = 0 max = 0.126
+  cmap = Jet
+} Zb/2. {
+  reversed = 0
+  use_scalar = 1
+} {
+  n = 0 levels = 9e-3,18e-3,27e-3,36e-3,45e-3,54e-3,63e-3,72e-3,81e-3,90e-3,99e-3,108e-3,117e-3
+}
diff --git a/doc/examples/monai/probe.gfv b/doc/examples/monai/probe.gfv
new file mode 100644
index 0000000..39c27d6
--- /dev/null
+++ b/doc/examples/monai/probe.gfv
@@ -0,0 +1,21 @@
+# GfsView 2D
+View {
+  tx = -1.10519 ty = -0.502068
+  sx = 1 sy = 1 sz = 1
+  q0 = 0 q1 = 0 q2 = 0 q3 = 1
+  fov = 9.96845
+  r = 0.3 g = 0.4 b = 0.6
+  res = 1
+  lc = 0.001
+  reactivity = 0.1
+}
+Location {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = 5
+  font_size = 2
+  raster_font = 1
+} {
+  size = 0.6
+  label = 1
+}
diff --git a/doc/examples/plateau/closeup.gfv b/doc/examples/plateau/closeup.gfv
new file mode 100644
index 0000000..219740d
--- /dev/null
+++ b/doc/examples/plateau/closeup.gfv
@@ -0,0 +1,50 @@
+# GfsView 3D
+View {
+  tx = 0.304638 ty = 0.282965
+  sx = 1 sy = 1 sz = 1
+  q0 = -0.217532 q1 = -0.386273 q2 = -0.14609 q3 = 0.884381
+  fov = 3.13678
+  r = 1 g = 1 b = 1
+  res = 1
+  lc = 0.001
+  reactivity = 0.1
+}
+VOF {
+  r = 1 g = 1 b = 1
+  shading = Constant
+  maxlevel = -1
+  font_size = 1
+  raster_font = 1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} Level {
+  amin = 0 min = 2
+  amax = 0 max = 10
+  cmap = Jet
+} T {
+  reversed = 0
+  use_scalar = 1
+  draw_edges = 1
+  interpolate = 0
+}
+Symmetry {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+  font_size = 1
+  raster_font = 1
+} {
+  n.x = 0 n.y = 1 n.z = 0
+  pos = -0.5
+}
+Symmetry {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+  font_size = 1
+  raster_font = 1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = -0.5
+}
diff --git a/doc/examples/plateau/plateau.gfs b/doc/examples/plateau/plateau.gfs
new file mode 100644
index 0000000..1181cad
--- /dev/null
+++ b/doc/examples/plateau/plateau.gfs
@@ -0,0 +1,185 @@
+# Title: Savart--Plateau--Rayleigh instability of a water column
+#
+# Description:
+#
+# As observed by F\'elix Savart and Joseph Plateau, and confirmed
+# theoretically by Lord Rayleigh, a column of liquid spontaneously
+# breaks up into droplets under the influence of surface tension. An
+# example of this process is given in the animation of Figure
+# \ref{white} for a column of water in air. The solution is computed
+# using a 3D Volume-Of-Fluid (VOF) representation of the
+# interface. The interface in Figure \ref{white} is represented using
+# the VOF-reconstructed fragments. This explains the narrow gaps which
+# can sometimes be seen between fragments in the animation.
+#
+# \begin{figure}[htbp]
+# \caption{\label{white}Evolving interface for a
+# Savart--Plateau--Rayleigh instability.}
+# \begin{center}
+# \video{plateau/white}{480}{480}
+# \end{center}
+# \end{figure}
+#
+# Adaptivity is used to track the regions with high curvature which
+# are created during breakup. The evolution of spatial resolution
+# along the interface is illustrated in Figure \ref{plateau} where the
+# resolution doubles for each change in colour. A detail of the
+# adaptive mesh close to the point of breakup is shown in Figure
+# \ref{closeup}.
+#
+# \begin{figure}[htbp]
+# \caption{\label{plateau}Evolving interface coloured according to the local spatial resolution.}
+# \begin{center}
+# \video{plateau/plateau}{480}{480}
+# \end{center}
+# \end{figure}
+#
+# \begin{figure}[htbp]
+# \caption{\label{closeup}Detail of the interface reconnection.}
+# \begin{center}
+# \video{plateau/closeup}{480}{480}
+# \end{center}
+# \end{figure}
+#
+# For this particular example, using adaptivity leads to
+# orders-of-magnitude gains compared to an equivalent simulation on a
+# regular Cartesian mesh (Figure \ref{size}).
+#
+# \begin{figure}[htbp]
+# \caption{\label{size}Total number of grid points as a function of
+# time. A regular Cartesian grid with an equivalent maximum spatial
+# resolution would require $2^{30}\approx$ one billion grid points.}
+# \begin{center}
+# \includegraphics[width=0.8\hsize]{size.eps}
+# \end{center}
+# \end{figure}
+#
+# A more detailed study of these simulations is given in Popinet
+# (2009), Journal of Computational Physics, 228.
+#
+# Author: St\'ephane Popinet
+# Command: gerris3D -m plateau.gfs | gfsview-batch3D
+# Version: 100529
+# Required files: plateau.gfv white.gfv closeup.gfv
+# Running time: 2 hours
+# Generated files: plateau.ogv white.ogv closeup.ogv plateau.png white.png closeup.png plateau.eps white.eps closeup.eps size.eps
+
+# Air/water physical parameters
+Define RHO_L            998.
+Define RHO_G            1.2
+Define MU_L             1.003e-3
+Define MU_G             1.8e-5
+
+# Initial conditions
+Define RADIUS 0.2
+Define EPSILON 0.02
+
+# Make sure that volume fraction is between [0:1]
+Define VAR(T,min,max)   (min + CLAMP(T,0,1)*(max - min))
+Define RHO(T)           VAR(T, RHO_G/RHO_L, 1.)
+Define MUR(T)           VAR(T, MU_G/MU_L, 1.)
+
+1 0 GfsSimulation GfsBox GfsGEdge {} {
+    Time { end = 1.7 }
+    Refine 5
+
+    VariableTracerVOF T
+    # Filter the volume fraction for smoother density transition for
+    # high density ratios: this helps the Poisson solver
+    VariableFiltered T1 T 1
+    PhysicalParams { alpha = 1./RHO(T1) }
+
+    # We need Kmax as well as K(mean) for adaptivity
+    VariableCurvature K T Kmax
+    SourceTension T 1 K
+    VariablePosition Y T y
+    VariablePosition Z T z
+#    SourceViscosityExplicit 1e-2*MUR(T1)
+    SourceViscosity 1e-2*MUR(T1)
+
+    # Initial deformed tube (only a quarter of it)
+    InitFraction {} T ({
+	    x -= 0.5; 
+	    y += 0.5; z += 0.5;
+	    double r = RADIUS*(1. + EPSILON*cos(M_PI*x));
+	    return r*r - y*y - z*z;
+    })
+
+    # Adapt according to interface curvature. Make sure we have at
+    # least 5 grid points per radius of curvature, up to level
+    # 10. Only start after 5 timesteps to ignore transients due to
+    # initialisation
+    AdaptFunction { istart = 5 istep = 10 } {
+	cmax = 0.2
+	maxlevel = 10
+	cfactor = 2
+    } (T > 0 && T < 1 ? dL*Kmax : 0)
+
+    # Remove small satellite droplets (only keep the two largest pieces)
+    RemoveDroplets { istep = 10 } T -2
+
+    OutputTime { istep = 1 } stderr
+    OutputProjectionStats { istep = 1 } stderr
+    OutputSimulation { istep = 1000 } plateau-%ld.gfs
+    EventScript { istep = 1000 } { gzip -f -q plateau-*.gfs }
+
+    # Generate three movies on the fly
+    EventScript { start = 0 } {
+	movies="plateau closeup white"
+	rm -f $movies
+	mkfifo $movies
+	for movie in $movies; do
+	    ppm2theora -s 480x480 < $movie > $movie.ogv &
+	done
+    }
+    OutputSimulation { istep = 7 } stdout
+    EventScript { istep = 7 } {
+	movies="plateau closeup white"
+	for movie in $movies; do
+	    echo "Clear"
+	    cat $movie.gfv
+	    echo "Append $movie { width = 960 height = 960 }"
+	done
+    }
+
+    # Generate figures
+    EventScript { start = end } {
+	for f in white plateau closeup; do
+	    echo "Save $f.ppm { format = PPM width = 960 height = 960 }" | \
+		gfsview-batch3D $f.gfv plateau-1000.gfs.gz
+	    convert $f.ppm -geometry 480x480 $f.png
+	    convert $f.png $f.eps
+	    rm -f $f.ppm
+	done
+	cat <<EOF | gnuplot
+        set term postscript eps color lw 2 20
+        set output 'size.eps'
+        set xlabel 'Timestep'
+        set ylabel 'Total number of cells'
+        unset key
+        plot [10:]'< grep domain size' u 3 w l
+EOF
+    }
+
+    OutputTiming { istep = 100 } stderr
+
+    OutputScalarNorm { istep = 1 } v { v = Velocity }
+
+    # Evolution of the minimum and maximum interface radii
+    OutputScalarStats { istep = 1 } r {
+	v = (T > 1e-2 && T < 1. - 1e-2 ? 
+	    (sqrt((Y + 0.5)*(Y + 0.5) + (Z + 0.5)*(Z + 0.5))/RADIUS - 1.)/EPSILON : 0)
+    }
+    OutputScalarStats { istep = 1 } k { v = K }
+    OutputScalarStats { istep = 1 } kmax { v = Kmax }
+    OutputScalarSum { istep = 1 } t { v = T }
+    OutputBalance { istep = 1 } size
+}
+GfsBox {
+    top = BoundaryOutflow
+    bottom = Boundary
+    back = Boundary
+    front = BoundaryOutflow
+    left = Boundary
+    right = Boundary
+}
diff --git a/doc/examples/plateau/plateau.gfv b/doc/examples/plateau/plateau.gfv
new file mode 100644
index 0000000..b29b40c
--- /dev/null
+++ b/doc/examples/plateau/plateau.gfv
@@ -0,0 +1,80 @@
+# GfsView 3D
+View {
+  tx = 0.148278 ty = -0.0245565
+  sx = 1 sy = 1 sz = 1
+  q0 = -0.299159 q1 = -0.414757 q2 = -0.180034 q3 = 0.840279
+  fov = 10.4194
+  r = 1 g = 1 b = 1
+  res = 1
+  lc = 0.001
+  reactivity = 0.1
+}
+VOF {
+  r = 0.554589 g = 0.869902 b = 1
+  shading = Constant
+  maxlevel = -1
+  font_size = 1
+  raster_font = 1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} Level {
+  amin = 0 min = 2
+  amax = 0 max = 10
+  cmap = Jet
+} T {
+  reversed = 0
+  use_scalar = 1
+  draw_edges = 0
+  interpolate = 0
+}
+Symmetry {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+  font_size = 1
+  raster_font = 1
+} {
+  n.x = 0 n.y = 1 n.z = 0
+  pos = -0.5
+}
+Symmetry {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+  font_size = 1
+  raster_font = 1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = -0.5
+}
+Symmetry {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+  font_size = 1
+  raster_font = 1
+} {
+  n.x = 1 n.y = 0 n.z = 0
+  pos = 0.5
+}
+Symmetry {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+  font_size = 1
+  raster_font = 1
+} {
+  n.x = 1 n.y = 0 n.z = 0
+  pos = -0.5
+}
+Symmetry {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+  font_size = 1
+  raster_font = 1
+} {
+  n.x = 1 n.y = 0 n.z = 0
+  pos = 0.5
+}
diff --git a/doc/examples/plateau/white.gfv b/doc/examples/plateau/white.gfv
new file mode 100644
index 0000000..594ea20
--- /dev/null
+++ b/doc/examples/plateau/white.gfv
@@ -0,0 +1,80 @@
+# GfsView 3D
+View {
+  tx = 0.148278 ty = -0.0245565
+  sx = 1 sy = 1 sz = 1
+  q0 = -0.299159 q1 = -0.414757 q2 = -0.180034 q3 = 0.840279
+  fov = 10.4194
+  r = 1 g = 1 b = 1
+  res = 1
+  lc = 0.001
+  reactivity = 0.1
+}
+VOF {
+  r = 0.554589 g = 0.869902 b = 1
+  shading = Constant
+  maxlevel = -1
+  font_size = 1
+  raster_font = 1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} Level {
+  amin = 0 min = 2
+  amax = 0 max = 10
+  cmap = Jet
+} T {
+  reversed = 0
+  use_scalar = 0
+  draw_edges = 0
+  interpolate = 0
+}
+Symmetry {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+  font_size = 1
+  raster_font = 1
+} {
+  n.x = 0 n.y = 1 n.z = 0
+  pos = -0.5
+}
+Symmetry {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+  font_size = 1
+  raster_font = 1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = -0.5
+}
+Symmetry {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+  font_size = 1
+  raster_font = 1
+} {
+  n.x = 1 n.y = 0 n.z = 0
+  pos = 0.5
+}
+Symmetry {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+  font_size = 1
+  raster_font = 1
+} {
+  n.x = 1 n.y = 0 n.z = 0
+  pos = -0.5
+}
+Symmetry {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+  font_size = 1
+  raster_font = 1
+} {
+  n.x = 1 n.y = 0 n.z = 0
+  pos = 0.5
+}
diff --git a/doc/examples/rt/rt.gfv b/doc/examples/rt/rt.gfv
new file mode 100644
index 0000000..4edfb6c
--- /dev/null
+++ b/doc/examples/rt/rt.gfv
@@ -0,0 +1,31 @@
+# GfsView 2D
+View {
+  tx = -0.0838119 ty = -0.501667
+  sx = 1 sy = 1 sz = 1
+  q0 = 0 q1 = 0 q2 = 0 q3 = 1
+  fov = 55.2206
+  r = 0.3 g = 0.4 b = 0.6
+  res = 1
+  lc = 0.001
+  reactivity = 0.1
+}
+VOF {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} P {
+  amin = 1
+  amax = 1
+  cmap = Jet
+} T {
+  reversed = 0
+  use_scalar = 0
+}
+Boundaries {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+}
diff --git a/doc/examples/ship/closeup.gfv b/doc/examples/ship/closeup.gfv
new file mode 100644
index 0000000..979e713
--- /dev/null
+++ b/doc/examples/ship/closeup.gfv
@@ -0,0 +1,50 @@
+# GfsView 3D
+View {
+  tx = 0.602996 ty = 0.0177882
+  sx = 1 sy = 1 sz = 3
+  q0 = 0.295761 q1 = -0.442959 q2 = -0.745831 q3 = 0.400062
+  fov = 4.00361
+  r = 0.3 g = 0.4 b = 0.6
+  res = 1
+  lc = 0.001
+  reactivity = 0.1
+}
+VOF {
+  r = 1 g = 1 b = 1
+  shading = Constant
+  maxlevel = -1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} Z {
+  amin = 0 min = -0.005
+  amax = 0 max = 0.005
+  cmap = Jet
+} T {
+  reversed = 0
+  use_scalar = 1
+  draw_edges = 0
+}
+Solid {
+  r = 1 g = 1 b = 1
+  shading = Constant
+  maxlevel = -1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} Velocity {
+  amin = 1
+  amax = 1
+  cmap = Jet
+} {
+  reversed = 0
+  use_scalar = 0
+}
+Symmetry {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+} {
+  n.x = 0 n.y = 1 n.z = 0
+  pos = 0.5
+}
diff --git a/doc/examples/ship/comparison.gfv b/doc/examples/ship/comparison.gfv
new file mode 100644
index 0000000..7fe0f51
--- /dev/null
+++ b/doc/examples/ship/comparison.gfv
@@ -0,0 +1,42 @@
+# GfsView 3D
+View {
+  tx = -0.373912 ty = -0.501871
+  sx = 1 sy = 1 sz = 3
+  q0 = 0 q1 = 0 q2 = 0 q3 = 1
+  fov = 5.77964
+  r = 1 g = 1 b = 1
+  res = 1
+  lc = 0.001
+  reactivity = 0.1
+}
+VOF {
+  r = 1 g = 1 b = 1
+  shading = Constant
+  maxlevel = -1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} Z {
+  amin = 0 min = -0.005
+  amax = 0 max = 0.005
+  cmap = Jet
+} T {
+  reversed = 0
+  use_scalar = 1
+  draw_edges = 0
+}
+Solid {
+  r = 1 g = 1 b = 1
+  shading = Constant
+  maxlevel = -1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} Velocity {
+  amin = 1
+  amax = 1
+  cmap = Jet
+} {
+  reversed = 0
+  use_scalar = 0
+}
diff --git a/doc/examples/ship/front.gfv b/doc/examples/ship/front.gfv
new file mode 100644
index 0000000..c5095c9
--- /dev/null
+++ b/doc/examples/ship/front.gfv
@@ -0,0 +1,50 @@
+# GfsView 3D
+View {
+  tx = -0.692077 ty = -0.492648
+  sx = 1 sy = 1 sz = 3
+  q0 = 0 q1 = 0 q2 = 0 q3 = 1
+  fov = 10.2648
+  r = 1 g = 1 b = 1
+  res = 1
+  lc = 0.001
+  reactivity = 0.1
+}
+VOF {
+  r = 1 g = 1 b = 1
+  shading = Constant
+  maxlevel = -1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} Z {
+  amin = 0 min = -0.005
+  amax = 0 max = 0.005
+  cmap = Jet
+} T {
+  reversed = 0
+  use_scalar = 1
+  draw_edges = 0
+}
+Solid {
+  r = 1 g = 1 b = 1
+  shading = Constant
+  maxlevel = -1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} Velocity {
+  amin = 1
+  amax = 1
+  cmap = Jet
+} {
+  reversed = 0
+  use_scalar = 0
+}
+Symmetry {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+} {
+  n.x = 0 n.y = 1 n.z = 0
+  pos = 0.5
+}
diff --git a/doc/examples/ship/tank-data.png b/doc/examples/ship/tank-data.png
new file mode 100644
index 0000000..c280857
Binary files /dev/null and b/doc/examples/ship/tank-data.png differ
diff --git a/doc/examples/tangaroa/sections.gfv b/doc/examples/tangaroa/sections.gfv
new file mode 100644
index 0000000..88ca4ed
--- /dev/null
+++ b/doc/examples/tangaroa/sections.gfv
@@ -0,0 +1,65 @@
+# GfsView 3D
+View {
+  tx = -0.0744286 ty = 0.395904
+  q0 = 0.492695 q1 = -0.182743 q2 = -0.271398 q3 = 0.806349
+  fov = 8.17065
+  r = 0.3 g = 0.4 b = 0.6
+  res = 1
+  lc = 0.001
+  reactivity = 0.1
+}
+Squares {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = -0.499
+} Velocity {
+  amin = 0 min = 0
+  amax = 0 max = 2
+  cmap = Jet
+}
+Solid {
+  r = 1 g = 1 b = 1
+  shading = Constant
+  maxlevel = -1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} P {
+  amin = 1
+  amax = 1
+  cmap = Jet
+} {
+  reversed = 0
+  use_scalar = 0
+}
+Squares {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+} {
+  n.x = 0 n.y = -1 n.z = 0
+  pos = 0
+} Velocity {
+  amin = 0 min = 0
+  amax = 0 max = 2
+  cmap = Jet
+}
+Cells {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = -0.499
+}
+Cells {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+} {
+  n.x = 0 n.y = -1 n.z = 0
+  pos = 0.001
+}
diff --git a/doc/examples/tangaroa/tangaroa.gts b/doc/examples/tangaroa/tangaroa.gts
new file mode 100644
index 0000000..d72de0b
--- /dev/null
+++ b/doc/examples/tangaroa/tangaroa.gts
@@ -0,0 +1,8001 @@
+1330 4002 2668 GtsSurface GtsFace GtsEdge GtsVertex
+-0.1450002463 -0.06253729341 -0.4902389281
+-0.1458060068 -0.06931420479 -0.4865235662
+-0.1441484612 -0.06791941383 -0.4839428851
+-0.1464225248 -0.05595360104 -0.4997669248
+-0.1432678441 -0.0622459954 -0.4859736201
+-0.1435036491 -0.05611011464 -0.491643726
+-0.168209736 0.09785989596 -0.5064382871
+-0.162639909 0.1016277667 -0.505616286
+-0.1579128557 0.1011540356 -0.505705854
+-0.1827578639 0.01500498592 -0.5175305286
+-0.1793496536 0.008960269149 -0.5176854997
+-0.1801446249 0.01589519181 -0.5179159136
+-0.1478061054 0.09608532192 -0.4884030561
+-0.1468052443 0.0950844609 -0.4793332972
+-0.1468052443 0.0950844609 -0.4884030561
+-0.139726176 -0.01655555591 -0.5058465449
+-0.139869409 -0.02645745394 -0.5002086349
+-0.139079621 -0.0186606994 -0.5014372249
+-0.1704543888 0.1113698722 -0.4376208089
+-0.1725793884 0.111386209 -0.435000251
+-0.1527660597 0.1113792523 -0.4350044853
+-0.1876301664 0.05498718391 -0.5042690181
+-0.1874593763 0.05347608073 -0.5065834823
+-0.1874282986 0.06519919275 -0.5038543775
+-0.1527865136 0.01798933573 -0.4428021661
+-0.1528444052 0.01511076874 -0.4428694683
+-0.1620727937 0.0159295558 -0.442831665
+-0.1474335188 0.05949446087 -0.5140942256
+-0.1466990675 0.05195706049 -0.5153491106
+-0.1521563813 0.05634513369 -0.5159321851
+-0.1469459805 0.1071297242 -0.5022012903
+-0.1467854604 0.1023464085 -0.5029468887
+-0.1504465515 0.1034744769 -0.5037045774
+-0.1767933365 -0.06660398125 -0.4952794574
+-0.1780401695 -0.07061512362 -0.4887908453
+-0.1750450052 -0.07156761628 -0.4943603312
+-0.161381664 0.01566289163 -0.434814451
+-0.1608810056 0.01751360515 -0.4352086888
+-0.1632230701 0.01784268862 -0.4345207724
+-0.157708065 -0.03775445291 -0.5179496179
+-0.1532120699 -0.02863836308 -0.5171292177
+-0.1546790563 -0.03615922707 -0.5170181323
+-0.160479803 -0.01231004781 -0.4325411133
+-0.160479803 -0.01231004684 -0.4304309904
+-0.1612523885 -0.02228342264 -0.4310312836
+-0.1806812032 0.06395200573 -0.4793342029
+-0.1806813678 0.05929470473 -0.4793343041
+-0.1813940452 0.06329538216 -0.4749928573
+-0.1875680829 -0.03501698 -0.4767800973
+-0.1876554905 -0.0282492137 -0.4784590254
+-0.1870712067 -0.02862921891 -0.4860763251
+-0.1627073069 -0.06434508306 -0.518602171
+-0.1603282454 -0.05441226807 -0.5182197824
+-0.1605115845 -0.06263442453 -0.5180128767
+-0.170247133 0.03328469869 -0.4793332965
+-0.187776901 0.03332103238 -0.479333388
+-0.1819526645 0.03332087284 -0.4793333569
+-0.1609133239 -0.01680300721 -0.4463526614
+-0.1377063842 -0.03167897009 -0.4463526614
+-0.151022654 -0.03963625331 -0.4463526614
+-0.163461295 -0.09818855178 -0.5131153305
+-0.1627334055 -0.09317053762 -0.5155341573
+-0.1625025428 -0.0987819977 -0.5135477133
+-0.1517917777 0.01486215768 -0.479333345
+-0.1559500269 0.0214560828 -0.4793332969
+-0.1401549159 0.01486941086 -0.4793334921
+-0.1853861192 0.05929431637 -0.4793367029
+-0.1877661939 0.05836441416 -0.4793323641
+-0.1874780873 0.04058634546 -0.5087143185
+-0.1871935352 0.04317349994 -0.510449713
+-0.1842560854 -0.02920234801 -0.5033179306
+-0.1847740124 -0.01804397745 -0.5079762665
+-0.1835180049 -0.02706369024 -0.5066717542
+-0.1791844966 -0.04547308656 -0.5063612871
+-0.172404669 -0.06174610736 -0.5110018811
+-0.1772957903 -0.04761353045 -0.5088491038
+-0.1377214667 -0.05395598771 -0.4703262593
+-0.1388211812 -0.04463579969 -0.4809016707
+-0.1380332841 -0.04563010493 -0.4751374093
+-0.1570740199 -0.03654797421 -0.4613130272
+-0.1748788434 -0.03601057699 -0.4613114451
+-0.1877117029 -0.03881951506 -0.4613130261
+-0.1743080208 0.1114319026 -0.4401465497
+-0.1877081473 0.1114650475 -0.4669245782
+-0.1796578873 0.09508446119 -0.4793332972
+-0.1796842971 0.09633920189 -0.4793333186
+-0.1796830083 0.1134955752 -0.4793333016
+-0.1877235931 -0.03167897009 -0.4463526614
+-0.1842848366 -0.02979954016 -0.4553468063
+-0.1743261266 -0.03963625334 -0.4463526614
+-0.1761727139 -0.03782891531 -0.5135524266
+-0.176906505 -0.031818448 -0.5142676949
+-0.1745780419 -0.03503617005 -0.5153130203
+-0.1808098621 0.1377661842 -0.497414414
+-0.1841990099 0.1377662507 -0.4951894053
+-0.1810133764 0.1354467034 -0.4978933753
+-0.1864459498 0.04092186495 -0.4732425782
+-0.1833747671 0.04093769908 -0.4732192777
+-0.1864459498 0.03990871672 -0.4714608688
+-0.1378994302 -0.03439666803 -0.4783026067
+-0.1376481325 -0.04227792109 -0.4713553182
+-0.13765613 -0.034761286 -0.4736320984
+-0.1649046104 -0.007009802377 -0.4397591494
+-0.1649046104 -0.00437348734 -0.4376490265
+-0.1649046104 -0.01231004687 -0.4376490265
+-0.1384094733 0.0680961767 -0.5050696107
+-0.1389349461 0.05966170205 -0.5084934961
+-0.1381063495 0.05699776373 -0.5071616052
+-0.1645868857 0.0176942811 -0.4410866382
+-0.1643561534 0.0189029764 -0.4363790337
+-0.1653416848 0.01751873504 -0.4361737608
+-0.1413555292 -0.02411665658 -0.5070018044
+-0.1431454545 -0.0350833852 -0.5054565069
+-0.140976944 -0.02737229577 -0.5039847831
+-0.1876790846 0.0144382421 -0.5050585933
+-0.1876802403 0.01495267012 -0.5008522264
+-0.1876763356 0.01495962771 -0.49934514
+-0.1813891871 -0.02439123406 -0.5116702282
+-0.1787798716 -0.03100413513 -0.5127509866
+-0.1797871574 -0.02290020872 -0.5138068728
+-0.1532171537 -0.07621816772 -0.4960991613
+-0.1508597876 -0.07030282503 -0.4971631085
+-0.1503342342 -0.07157408909 -0.4943586656
+-0.147805933 0.1134957906 -0.479330298
+-0.1796818072 0.1134955347 -0.4746844267
+-0.1456557998 0.113495531 -0.47468438
+-0.1670135951 -0.08611800173 -0.4703373211
+-0.1728333667 -0.1068525434 -0.4703019842
+-0.1784520583 -0.09896065699 -0.47031614
+-0.1602440911 -0.04429178776 -0.5184522234
+-0.157855338 -0.04496695316 -0.5176583399
+-0.1610936163 -0.1119338111 -0.4704611754
+-0.1636993615 -0.1122234272 -0.4702936888
+-0.1631337082 -0.1066438517 -0.475511478
+-0.1650279248 -0.1007969356 -0.508045623
+-0.1626359304 -0.1050396078 -0.5066071801
+-0.1627150952 -0.1042563917 -0.5088133829
+-0.1375593588 0.007272967669 -0.4793695659
+-0.1878178563 0.007278217886 -0.4793694936
+-0.1686125125 0.0149547421 -0.4793683305
+-0.1585086948 0.132696695 -0.5011486085
+-0.1592272217 0.1196623367 -0.5027096634
+-0.1626629463 0.1149367681 -0.5036569107
+-0.1478061053 0.0960853221 -0.4793332965
+-0.1455869456 0.0950935096 -0.4793341389
+-0.1456539714 0.09638195309 -0.4793332983
+-0.187801967 0.03956680255 -0.4793323898
+-0.1878018088 0.03332087154 -0.4714608688
+-0.1641263931 -0.01483703082 -0.4161538953
+-0.161186609 -0.01483702749 -0.4161538888
+-0.1643821417 -0.01586860352 -0.4161538888
+-0.1868663429 0.04976499541 -0.5099460054
+-0.1387118137 0.00134423955 -0.5101256913
+-0.1387326567 0.01323268342 -0.5140245383
+-0.1379849272 0.01134138476 -0.5111534924
+-0.1850920182 0.08438716384 -0.5030010933
+-0.1858893946 0.06746126549 -0.5070638601
+-0.184086697 0.07895557025 -0.5054589628
+-0.1810706717 0.05815038846 -0.488403658
+-0.1810706718 0.04086028545 -0.4884036577
+-0.181070672 0.05815038712 -0.4793332969
+-0.1831781123 0.08788482981 -0.5037586634
+-0.1809566966 0.08463350151 -0.5059922448
+-0.1809788576 0.09179024745 -0.5041175799
+-0.187349251 0.01058463852 -0.5110171284
+-0.1871877059 0.003974278447 -0.5078290799
+-0.1867281341 0.002277684704 -0.5102303091
+-0.1456231064 0.09633663288 -0.479333298
+-0.1376547735 0.09633667398 -0.4793330839
+-0.1521663068 -0.04976377112 -0.5135586334
+-0.1528920107 -0.05664904295 -0.5127002144
+-0.151065517 -0.05241064197 -0.511533803
+-0.1388402966 0.07853756002 -0.5027320351
+-0.1390141596 0.08909787204 -0.5002631497
+-0.138179922 0.08732968961 -0.4987752723
+-0.1614187791 -0.01383032898 -0.4238511043
+-0.1394440872 0.06625031495 -0.507466525
+-0.1376109243 0.103737928 -0.4827089686
+-0.1376074766 0.1137115069 -0.4791985275
+-0.1376011962 0.07637638471 -0.4846781074
+-0.1703190295 -0.04040343993 -0.4612792984
+-0.173415067 -0.03654797421 -0.4612792984
+-0.1877142109 -0.02954379204 -0.4612792984
+-0.1470539439 -0.01397729528 -0.5162697451
+-0.1496482076 -0.01788101118 -0.5168762961
+-0.1474751523 -0.02033582636 -0.5156166237
+-0.1549946787 0.07789513084 -0.4884030561
+-0.1550451466 0.03328467627 -0.4884030561
+-0.1550451468 0.03328468275 -0.4793332965
+-0.1514067368 0.1377661809 -0.4993041566
+-0.1442990015 0.1377664131 -0.4973307314
+-0.1626251676 0.1377659537 -0.500857264
+-0.1609293903 -0.01586860352 -0.4161538888
+-0.164585592 -0.09497657301 -0.5127616757
+-0.1656900569 -0.09247791791 -0.5125692679
+-0.1796578873 0.0950844609 -0.4884030561
+-0.1774861748 0.09608532192 -0.4793332972
+-0.1774861748 0.09608532192 -0.4884030561
+-0.1877011112 0.05105271761 -0.4922072394
+-0.1877184659 0.01495226455 -0.4933316147
+-0.1877184321 0.08003818688 -0.4933333663
+-0.1407073356 0.03229004121 -0.5155080499
+-0.1404807537 0.0217482696 -0.5160874664
+-0.1390768785 0.02520434093 -0.5144355637
+-0.160479803 -0.01231004687 -0.4397591494
+-0.160479803 -0.01231004684 -0.4376490265
+-0.160479803 -0.00437348734 -0.4376490265
+-0.1647316607 0.01478621426 -0.4365866737
+-0.1633440692 0.01399234217 -0.4368144553
+-0.1629917741 0.01477952608 -0.4349794249
+-0.1544301028 -0.07640867296 -0.502755858
+-0.1529905413 -0.07164890352 -0.5035616389
+-0.1540522079 -0.07655177567 -0.4985387911
+-0.1650437043 -0.01222842142 -0.4242369492
+-0.1626922068 -0.01039337189 -0.424218874
+-0.1643933814 -0.01039337189 -0.424218874
+-0.1650450805 -0.00561649099 -0.424218874
+-0.1643933814 -0.00788523936 -0.424218874
+-0.1456496087 0.0994946845 -0.4668299444
+-0.1874374158 0.09410904658 -0.4960872376
+-0.1871522254 0.09362479058 -0.4973964422
+-0.1871469927 0.1147070517 -0.4939268536
+-0.1583821807 -0.09306470562 -0.5053499303
+-0.159379074 -0.0980838033 -0.5066429888
+-0.1594143881 -0.09699555601 -0.5037185228
+-0.1551655059 -0.0738063615 -0.5099033334
+-0.156508115 -0.07635936298 -0.5117858475
+-0.1562505807 -0.08046544815 -0.5088428565
+-0.1413298799 0.0116130912 -0.4614940055
+-0.1377623236 -0.04438617597 -0.4614940033
+-0.1413299561 -0.04538786986 -0.4614938027
+-0.1377635945 -0.04440287358 -0.4613129835
+-0.1550835858 -0.0487397166 -0.4613125156
+-0.1468871081 -0.06241130888 -0.4950471826
+-0.1461074551 -0.07552873442 -0.4825557882
+-0.1474651355 -0.0708365037 -0.4888733771
+-0.1825313767 0.03505188903 -0.5163783673
+-0.1823169017 0.0414426592 -0.515801683
+-0.1795307415 0.03750896043 -0.5169569212
+-0.162713509 -0.1014379879 -0.5120363359
+-0.1609114411 -0.1010965849 -0.5096777451
+-0.1502572095 0.01090757692 -0.5183259013
+-0.1561674817 -0.003346828484 -0.5187154208
+-0.1554023703 -0.0120209083 -0.5184223778
+-0.1665466985 0.1056613578 -0.5048149075
+-0.1745060157 0.1037214237 -0.5037258435
+-0.1674141205 0.1011878983 -0.5056972683
+-0.1456725821 0.1114471788 -0.4667557582
+-0.1456539106 0.1136598156 -0.4746846031
+-0.1787184397 0.08949059919 -0.5057230337
+-0.1749455826 0.09301429156 -0.5061094939
+-0.1751411224 0.08775903491 -0.5075079425
+-0.1730444806 -0.07648054729 -0.4936082412
+-0.1721540652 -0.07624067058 -0.4960990221
+-0.1725772783 0.002931760408 -0.4703244263
+-0.1794953679 0.002926237559 -0.4703303652
+-0.1725679895 0.002926237559 -0.4614940033
+-0.1735215691 -0.08461218886 -0.4851341421
+-0.1750975627 -0.08714528773 -0.4810731577
+-0.1708368354 -0.0884382296 -0.485976572
+-0.1836848085 -0.0856664428 -0.4703300977
+-0.1853754263 -0.07844977448 -0.4703301765
+-0.1828603755 -0.08107404118 -0.4733497423
+-0.1384155764 0.04810319983 -0.5102969975
+-0.1576240405 -0.08776690462 -0.5042288334
+-0.1578929599 -0.08731216051 -0.5021848229
+-0.1591937043 -0.09056067699 -0.5010818637
+-0.1626922068 -0.01192854228 -0.4325411133
+-0.1643933814 -0.01192854228 -0.4325411133
+-0.1626922068 -0.01287077869 -0.4376490265
+-0.1663607727 -0.0920242429 -0.5110190799
+-0.1675704526 -0.0879464091 -0.5092117148
+-0.1670738866 -0.0840323266 -0.5124959552
+-0.1782234981 0.1152832881 -0.5011928298
+-0.1780129561 0.1258573406 -0.5000153941
+-0.1739192224 0.1245640135 -0.5009788388
+-0.1751445822 -0.04602366877 -0.5124374704
+-0.1775282487 -0.04049728205 -0.5112907553
+-0.1546118438 0.07854914715 -0.4884030561
+-0.1549946787 0.07789513091 -0.4793332972
+-0.1375567925 0.1136552304 -0.474684849
+-0.1376499892 0.1114459089 -0.4669331302
+-0.1558469887 -0.106881648 -0.4726825073
+-0.1563948526 -0.103595548 -0.4758694397
+-0.1538714915 -0.1037183645 -0.4735367488
+-0.1619404663 -0.01928550182 -0.435409311
+-0.1612174706 -0.02065619007 -0.4346708711
+-0.1630054968 -0.01927060171 -0.4341014242
+-0.16066553 -0.0949707639 -0.5126453297
+-0.1591417183 -0.09495148089 -0.5088026884
+-0.1591066688 -0.0922764476 -0.5111458713
+-0.1603393714 -0.005616491026 -0.424218874
+-0.1626922068 -0.00788523936 -0.424218874
+-0.174190657 0.1086324557 -0.5029313402
+-0.1784287362 0.1079251389 -0.5020850514
+-0.1519209744 -0.1011001897 -0.4736612705
+-0.1553605136 -0.09393627391 -0.4826781013
+-0.1523292829 -0.09604006299 -0.4776805008
+-0.1480995705 0.006402313983 -0.4463526614
+-0.1410833814 -0.005067979603 -0.4553468063
+-0.1377063842 -0.003990872301 -0.4463526614
+-0.156213706 -0.06357968296 -0.5147763265
+-0.1552790503 -0.06509794362 -0.5133676421
+-0.1534543642 -0.06106603195 -0.5120814465
+-0.186617057 0.0127709254 -0.5139704729
+-0.186398502 0.0152785451 -0.5147215365
+-0.1849694933 0.01497144094 -0.5163189223
+-0.1842836381 -0.02955405621 -0.4613129751
+-0.1842848366 -0.02954379204 -0.4570078367
+-0.16094448 0.01545822659 -0.4410984701
+-0.1618434783 0.01467662944 -0.4410888812
+-0.1603174356 0.01518846654 -0.4365455641
+-0.1456539715 0.11349557 -0.4793332991
+-0.1500097801 -0.1004208271 -0.4723557857
+-0.1375393175 0.007272242832 -0.4703307955
+-0.1413298814 -0.04949126237 -0.4703303652
+-0.1375429849 -0.01946413446 -0.4703300196
+-0.1443332354 -0.03594328737 -0.5075997791
+-0.1617925781 -0.09274640949 -0.4963642954
+-0.1617953565 -0.09500052789 -0.497671734
+-0.1626617087 -0.0930882891 -0.4935089158
+-0.1626922068 -0.00788523936 -0.4304309904
+-0.1524190075 -0.01947854719 -0.5175686837
+-0.1549343214 -0.01972347712 -0.5180899639
+-0.1491981185 -0.0105970309 -0.5172763511
+-0.1878402916 0.007274204328 -0.4703294943
+-0.1725679583 0.007273069368 -0.4703539017
+-0.1550840597 -0.05292590828 -0.4703303649
+-0.170286059 -0.04874526996 -0.4613267886
+-0.1702860454 -0.05292590871 -0.4703303652
+-0.1754865202 -0.0996922059 -0.4727481328
+-0.1753143903 -0.1037713942 -0.4702884914
+-0.1731513776 -0.06880219553 -0.4703305218
+-0.1738548657 -0.06481195244 -0.4660454126
+-0.1738563636 -0.06799306484 -0.4660459097
+-0.1869969898 0.08806136463 -0.4989788193
+-0.1865229601 0.08231786251 -0.5015537198
+-0.186447021 0.09259076086 -0.4992063522
+-0.1869364776 -0.01644737069 -0.498120158
+-0.1865658216 -0.009291093118 -0.5053121002
+-0.1870052617 0.03133698195 -0.5125752159
+-0.1862239945 0.0281903154 -0.5142893713
+-0.1858616652 0.03897583982 -0.5136618934
+-0.1823145843 -0.0555130641 -0.4908130604
+-0.1844034038 -0.06073678596 -0.4806842994
+-0.1828871308 -0.06143989992 -0.4845151349
+-0.1536212197 0.07778047028 -0.5114354154
+-0.1501246106 0.0781571795 -0.5102414082
+-0.1543329949 0.08404420686 -0.5098902075
+-0.1762612574 -0.08116851363 -0.4835999299
+-0.1750234652 -0.0796134355 -0.4869176349
+-0.1630520338 0.01888309314 -0.4411223927
+-0.1631390719 0.01759903103 -0.4412997756
+-0.1675171266 -0.08492830599 -0.496152525
+-0.1641209791 -0.09093364492 -0.4941119097
+-0.1656216377 -0.0887253113 -0.497203098
+-0.146562753 -0.007129825442 -0.5167448229
+-0.1600497723 -0.02270512416 -0.5188378001
+-0.1712887813 0.08166443987 -0.5104850167
+-0.1708329955 0.08516042515 -0.5096081783
+-0.1529145229 -0.0376213844 -0.5161124917
+-0.1505794016 -0.03197773307 -0.5156646479
+-0.1701902924 -0.08080812104 -0.494986705
+-0.1606331206 -0.06886289065 -0.5177987126
+-0.1585103491 -0.06454349872 -0.5167105738
+-0.1590714313 -0.072718705 -0.5162079469
+-0.1375618686 0.04527486574 -0.4817142535
+-0.1375899482 0.01168031864 -0.4836479068
+-0.174515602 -0.07031137753 -0.4971544932
+-0.1765904526 -0.06349019984 -0.4989645416
+-0.1845573771 0.009234008556 -0.5157517737
+-0.1626674331 0.1358387348 -0.5012921884
+-0.1857468231 0.0555886569 -0.5104226924
+-0.1864923366 0.05825868973 -0.5087193717
+-0.1850358809 0.06585153606 -0.5085159787
+-0.1838483505 -0.06705002174 -0.4783022774
+-0.1820957058 -0.06418379015 -0.4845494639
+-0.1773025973 -0.08404280256 -0.4800234379
+-0.179384646 -0.07985500358 -0.479535897
+-0.1504960787 0.1114289815 -0.4401407499
+-0.1506010543 0.1151402271 -0.4401499589
+-0.1798923626 -0.05210999931 -0.5003210629
+-0.176524044 -0.05853772975 -0.5039164917
+-0.1781435983 -0.05254150936 -0.5043514867
+-0.1626922068 -0.00788523936 -0.4376490265
+-0.1378216392 0.06212107316 -0.5042025409
+-0.1377956531 0.05012171099 -0.5064346602
+-0.1376843317 0.05039684353 -0.5049024093
+-0.152808218 0.06833646368 -0.5136723428
+-0.1525138726 0.06349066195 -0.5146736956
+-0.148370372 0.06665504369 -0.5127278619
+-0.1846073227 0.06329623068 -0.4749933634
+-0.1853858229 0.06395221831 -0.4793337553
+-0.1389232884 0.0151041503 -0.5147289881
+-0.1380807678 0.01524634195 -0.5131141533
+-0.169384862 0.03116764378 -0.4793332904
+-0.169342249 0.02145613641 -0.4793332933
+-0.1693848618 0.03116764443 -0.4884030561
+-0.1857945434 0.09254213812 -0.500054914
+-0.186050805 0.1125971043 -0.4965302188
+-0.1852622715 0.112154125 -0.4976133204
+-0.1658207881 -0.01361788982 -0.4161538888
+-0.1401163963 -0.07887700485 -0.4703303652
+-0.1407097797 -0.07214576516 -0.4740223706
+-0.1402100758 -0.07929643612 -0.4703302799
+-0.1865201764 -0.02459493905 -0.4953580937
+-0.1673282586 -0.05203869085 -0.5173619827
+-0.1670995517 -0.05811221362 -0.5171177636
+-0.1650494231 -0.05439503933 -0.5182199874
+-0.1741283275 0.01488373762 -0.4793333124
+-0.1877520395 0.01486895356 -0.4793335283
+-0.1400667678 0.1137651644 -0.4974076739
+-0.1401881135 0.09694276599 -0.5001181642
+-0.1389248416 0.09745545327 -0.4984283377
+-0.1796578873 0.08101543579 -0.4884030561
+-0.1796578873 0.08101543579 -0.4793332972
+-0.1783638014 -0.06067210606 -0.4970323587
+-0.1877003493 -0.04437962872 -0.4613131866
+-0.1626910291 -0.1002046231 -0.4995594172
+-0.1648582094 -0.1003544406 -0.5035768066
+-0.1626526992 -0.1029375786 -0.5019932578
+-0.1626922068 -0.00788523936 -0.4325411133
+-0.160479803 -0.007009802377 -0.4325411133
+-0.181070672 0.04086028794 -0.4793332972
+-0.1719057847 0.06538715367 -0.4793332972
+-0.1877162171 0.1136058911 -0.4793049238
+-0.1876740501 0.1121491006 -0.4735924581
+-0.1704702701 -0.1014515765 -0.476277315
+-0.1705367721 -0.0957910169 -0.4807490257
+-0.1681706462 -0.0954327054 -0.4838013591
+-0.1376025541 0.048016685 -0.4939728558
+-0.1376209801 0.05224744736 -0.4923293927
+-0.1376178323 0.01228228653 -0.4915088135
+-0.1395722034 0.05566642838 -0.5103997513
+-0.1559500269 0.02145608276 -0.4884030561
+-0.1566739308 0.02018925019 -0.4884030561
+-0.1559074184 0.03116764443 -0.4884030561
+-0.1811024307 -0.007690722224 -0.5156204559
+-0.178501378 -0.01177611275 -0.5164047929
+-0.1784782949 -0.00690590469 -0.5168668438
+-0.1472726325 -0.03671137005 -0.5118252441
+-0.1483304399 -0.04345827536 -0.5108804794
+-0.1454880641 -0.03456075158 -0.5102044816
+-0.1719057845 0.06915119965 -0.4781510004
+-0.1719057845 0.07698274201 -0.4793332976
+-0.1523269666 0.05992144037 -0.5153386031
+-0.1814072146 0.06538715902 -0.4793332954
+-0.1814072147 0.06915119965 -0.4781510004
+-0.1412824231 0.06409090653 -0.5099876273
+-0.1404510224 0.05352529147 -0.511961919
+-0.174261992 0.111418078 -0.4417902579
+-0.1751266892 0.08179412447 -0.5092357893
+-0.160479803 -0.007009802377 -0.4397591494
+-0.1667311701 -0.1042439042 -0.4768743208
+-0.1655620947 -0.1069541731 -0.4748662781
+-0.1637603855 -0.1016918019 -0.4804198048
+-0.1846087335 0.06011523998 -0.4749927018
+-0.1813955554 0.06011426102 -0.474993362
+-0.1583707564 -0.08250816767 -0.4631180189
+-0.1669960742 -0.08250816764 -0.4631180189
+-0.157338668 -0.08128065835 -0.4630541671
+-0.1877746849 0.08231340065 -0.4793331555
+-0.187676272 0.09635180804 -0.4793323869
+-0.1400859592 0.1332081088 -0.4950086107
+-0.1392950647 0.1357022571 -0.4936694339
+-0.1877706562 0.01491096524 -0.4793694531
+-0.1376149713 0.0399890237 -0.4877015257
+-0.1698865275 -0.04489508754 -0.5166239584
+-0.1680772702 -0.04296143581 -0.51753885
+-0.1647253043 -0.09472242731 -0.4994637885
+-0.162687536 -0.09614002142 -0.4970711103
+-0.1862391503 -0.01971264365 -0.5010201266
+-0.1390838818 -0.02607967082 -0.4959016432
+-0.1388627978 -0.03218027772 -0.4891069245
+-0.138315975 -0.0301062971 -0.4853620243
+-0.1877010594 0.09513327579 -0.4892017849
+-0.1877085432 0.05836302418 -0.4884035217
+-0.1877304633 0.08304916854 -0.4831739581
+-0.1796711861 0.1114349239 -0.4667464918
+-0.1375960974 0.1070515716 -0.4895117141
+-0.1376202408 0.1047207927 -0.4874463023
+-0.1376243845 0.1334101831 -0.4838248688
+-0.1644423565 -0.01680300721 -0.4463526614
+-0.1618202051 0.01641016458 -0.4413782687
+-0.1724992511 0.01513043132 -0.442855956
+-0.1702363394 0.0144508528 -0.4449746317
+-0.1644430219 -0.007437843193 -0.4398564021
+-0.1644423565 -0.005500749956 -0.4463526614
+-0.1416779525 -0.0599169014 -0.4833884303
+-0.1424894795 -0.04971609755 -0.4933130955
+-0.161665891 0.01925164654 -0.4359810782
+-0.1796830975 0.1136598042 -0.4746846031
+-0.1876376535 0.03456317808 -0.5061962744
+-0.1876780861 0.05417937465 -0.5009882054
+-0.1496776772 -0.05335629092 -0.5090056461
+-0.1468125837 -0.04700492452 -0.5067958876
+-0.1477819719 -0.05308076862 -0.5053067574
+-0.1563297872 -0.08187500943 -0.4971216251
+-0.155834033 -0.08230679685 -0.4945239794
+-0.1456382064 -0.02293206024 -0.5138531905
+-0.1464687455 -0.03071745853 -0.5126910134
+-0.1441296533 -0.02528180307 -0.5115745163
+-0.1774287257 -0.02614434241 -0.5149777911
+-0.1648542081 0.01623096234 -0.4411154817
+-0.165436906 0.01633400301 -0.436767422
+-0.1846670895 -0.04388609379 -0.4908501414
+-0.18647353 -0.05288617498 -0.4775013092
+-0.1850115621 -0.04977530582 -0.4856615706
+-0.1499593563 -0.058762418 -0.5064994263
+-0.1488089826 -0.05947877559 -0.5029044462
+-0.1720429105 -0.06599839261 -0.5097602415
+-0.1748541064 -0.05834063278 -0.5080541772
+-0.1599407208 0.01667885077 -0.4364095985
+-0.1602701966 0.01800180681 -0.4366777865
+-0.1438266017 0.128547396 -0.474686354
+-0.1485277421 0.1285459572 -0.4746842376
+-0.1445372937 0.1293631174 -0.467706661
+-0.1385780163 0.1377765725 -0.4911650962
+-0.1379999595 0.1377682948 -0.4883778251
+-0.1397435155 0.1377641326 -0.493539487
+-0.1654060145 -0.01310687952 -0.4152274156
+-0.1641561964 -0.01506217764 -0.4152274156
+-0.161189803 -0.01509077305 -0.4152302391
+-0.1614191748 -0.01867701639 -0.4304309904
+-0.1621327176 -0.01946024831 -0.426843319
+-0.1614191748 -0.02113315912 -0.4304309904
+-0.1690077624 -0.1102673103 -0.4703135825
+-0.1695889236 -0.1067619253 -0.472729743
+-0.1458988863 0.003853652562 -0.5173655561
+-0.1438437152 -0.002256186909 -0.5161553015
+-0.1513597008 0.1256417387 -0.5008562969
+-0.1512471564 0.1181938253 -0.5016778699
+-0.160479803 -0.00437348734 -0.4382493201
+-0.1649046104 -0.00437348734 -0.4382493201
+-0.1418841539 -0.08575383163 -0.4705509885
+-0.1425368948 -0.0885822446 -0.4703311819
+-0.1876393847 0.01458625341 -0.5113040383
+-0.1574934441 -0.0730399943 -0.5143638529
+-0.1840402248 -0.04949126685 -0.4703303652
+-0.1873720933 -0.0615950514 -0.4703296049
+-0.1871738986 -0.06449114655 -0.4703303652
+-0.1626884149 -0.05348434465 -0.5187169978
+-0.1651324103 -0.04429159206 -0.5184522278
+-0.1626851693 -0.04100821719 -0.5188507668
+-0.1838525618 -0.04617130117 -0.4924640142
+-0.183964572 -0.03850917363 -0.4978661403
+-0.1864495054 0.04090933527 -0.4793666772
+-0.1878018088 0.03956600595 -0.4732425782
+-0.1819644741 0.00559252736 -0.5168630022
+-0.1793325663 0.0005170006501 -0.5171592958
+-0.1644423565 -0.0155462695 -0.4392692308
+-0.1551155223 -0.04040343993 -0.4612792984
+-0.1551155225 -0.04040343993 -0.4570078367
+-0.1643933814 -0.01153929626 -0.4304309904
+-0.1518201214 0.01496189217 -0.5185821754
+-0.1874561724 0.1320934326 -0.4904609093
+-0.1874363794 0.1164748784 -0.4925045257
+-0.1513228928 -0.03971237399 -0.5148641085
+-0.1733053811 0.05336733659 -0.5163793399
+-0.152029162 0.05276152198 -0.5164561103
+-0.1519203723 0.04890131841 -0.5169415965
+-0.138457912 0.03714211658 -0.5122368641
+-0.1389025711 0.04613870934 -0.5116567697
+-0.138006656 0.03837860045 -0.5107402802
+-0.1410359706 -0.04362569972 -0.4925123493
+-0.1395605079 -0.05010074928 -0.4819522412
+-0.1395190093 -0.045250514 -0.4845178262
+-0.1863511013 0.07586882397 -0.5037698482
+-0.1876747212 -0.03605958079 -0.4570078367
+-0.1703190294 -0.04040343993 -0.4570078367
+-0.1649751258 -0.01013275505 -0.4231480866
+-0.16545051 -0.009700568823 -0.4154088646
+-0.1653146608 -0.01295389329 -0.4161503642
+-0.1874361724 0.07722046848 -0.5001186013
+-0.1438262651 0.133197615 -0.4746854878
+-0.1377072859 0.1360965022 -0.4746956906
+-0.1379479599 0.1377632561 -0.474691102
+-0.1379345454 -0.06024572967 -0.4703289809
+-0.1381837834 -0.0644278416 -0.4703285919
+-0.1876345107 0.0846550621 -0.4966223439
+-0.1875703498 0.07401221241 -0.4994464867
+-0.1876739251 0.06036615563 -0.4993391121
+-0.1643933814 -0.01287077869 -0.4376490265
+-0.1614448574 -0.01870723193 -0.4376490265
+-0.1598332761 0.01495303205 -0.5193564986
+-0.1626850085 0.01495247001 -0.5195202332
+-0.1599156872 -0.001271702637 -0.5191424845
+-0.1735342416 0.04106338382 -0.5176455608
+-0.1734720481 0.04545773692 -0.51729035
+-0.1517969391 0.04143017044 -0.517617397
+-0.1854328623 0.04618047297 -0.5130122469
+-0.1848718059 0.05352359588 -0.5119621381
+-0.1835944738 0.04851203207 -0.5140174122
+-0.1873576662 0.1377659016 -0.4746852296
+-0.1485226173 0.1331978794 -0.4746898189
+-0.1628612888 0.1079741243 -0.5045475673
+-0.1799480952 0.06704575002 -0.5115268124
+-0.1766136977 0.06875389275 -0.5123092054
+-0.1777038135 0.06104697747 -0.5138110496
+-0.1527973692 0.01613385012 -0.4614940033
+-0.1528025132 0.01585577225 -0.470351384
+-0.151527674 -0.06401890917 -0.5066449523
+-0.1505023159 -0.06503890584 -0.5023360413
+-0.1735982207 0.01937790818 -0.5185021472
+-0.1735945456 0.01495518067 -0.5185828966
+-0.1377244501 0.1352386584 -0.4890164415
+-0.1376933903 0.1182731453 -0.4908133048
+-0.1376047275 0.1350761516 -0.4862916562
+-0.1429716503 -0.01593253038 -0.5129116121
+-0.1417092656 -0.01781718942 -0.5104244541
+-0.159490744 -0.01361788968 -0.4161538888
+-0.1599616144 -0.01295883238 -0.4161505287
+-0.1598837426 -0.009710449444 -0.4153618928
+-0.1768298213 0.001215860483 -0.5177477361
+-0.1755001739 -0.006071332277 -0.5176895409
+-0.1690301894 -0.02056151884 -0.5183083861
+-0.1403748523 0.01518544524 -0.5163309075
+-0.1497913568 -0.04206722485 -0.5130570741
+-0.1858567734 -0.05643126222 -0.4784085879
+-0.1851482153 -0.05827652461 -0.4799092314
+-0.1434065844 0.04907598645 -0.5148091884
+-0.147281484 0.1261129648 -0.4999790756
+-0.144381624 0.1353272874 -0.4979415648
+-0.1443305384 0.1178410336 -0.4999578883
+-0.1843669684 0.0384083793 -0.5150921475
+-0.1431845151 0.01041888654 -0.5172647802
+-0.1408902934 0.008308577682 -0.5156612375
+-0.1603886526 -0.01222235215 -0.4242285175
+-0.1609133239 -0.005500749992 -0.4463526614
+-0.1407540336 -0.0323618569 -0.4999178923
+-0.1401434253 -0.03931278997 -0.4916734813
+-0.1725365767 0.01797669094 -0.4428529235
+-0.1624789411 0.01763974604 -0.442818127
+-0.1730361116 -0.05133810637 -0.5133817354
+-0.1740038466 -0.04179061766 -0.5145646631
+-0.1527972641 0.01613385066 -0.4613130272
+-0.1528007066 0.01148710765 -0.4613131002
+-0.1873464428 0.1377665174 -0.487924221
+-0.1876282915 0.135690178 -0.4886531584
+-0.18766738 0.1358323961 -0.4746976172
+-0.1635602441 -0.09521867651 -0.4977007036
+-0.1396974658 -0.03095239215 -0.4958893334
+-0.1410833814 -0.02980795018 -0.4553468063
+-0.1719057845 0.0754589145 -0.4785177282
+-0.1754540501 -0.02254717481 -0.5165187122
+-0.1779872216 -0.01935878352 -0.5157308858
+-0.175665532 -0.01775855677 -0.5169095882
+-0.1792172905 0.04479319202 -0.516305128
+-0.1518432788 -0.06079011597 -0.5094097412
+-0.1878147406 0.007272754039 -0.476448025
+-0.1550994768 0.01445237428 -0.444973524
+-0.1551304328 0.01161614058 -0.4613020937
+-0.1551046512 0.01148772594 -0.4613130854
+-0.1382506582 0.1356362414 -0.4915423027
+-0.1378694929 0.1319875698 -0.4905001671
+-0.1877117089 -0.001175877945 -0.4614940033
+-0.1877117089 -0.001175877945 -0.4613130272
+-0.1878173773 0.0149527216 -0.4801933934
+-0.153539688 -0.06948164145 -0.5081611385
+-0.1541742214 -0.07386508388 -0.5065779237
+-0.1808655404 -0.08692216987 -0.4733943153
+-0.1794312483 -0.08290397393 -0.4775774538
+-0.1401519932 -0.01433111036 -0.5083974917
+-0.1390910813 -0.01027730338 -0.5063042144
+-0.1635047684 -0.09275154192 -0.4960015167
+-0.178685652 0.09602725786 -0.5041518026
+-0.1807112785 0.09871287355 -0.5027928648
+-0.1786113041 0.1017648252 -0.5030242907
+-0.1566767594 0.01495345631 -0.4793674227
+-0.1686183496 0.01495222543 -0.4884030561
+-0.1429145359 -0.02657261912 -0.5091371515
+-0.1682084355 -0.08212204963 -0.5107842896
+-0.167470918 -0.079126309 -0.5133772665
+-0.155984108 -0.07175217832 -0.512471649
+-0.1877006668 0.1323889148 -0.4839749299
+-0.1877230276 0.1323755579 -0.4864941056
+-0.1877264559 0.1072609077 -0.4894603182
+-0.1609133239 -0.0155462695 -0.4392692308
+-0.1612523884 -0.02228342264 -0.4382493201
+-0.1853436323 -0.002287130293 -0.5123311468
+-0.1376289158 0.04694253725 -0.4979965391
+-0.1376441113 0.01320360472 -0.4994251888
+-0.1376042992 0.01377630349 -0.4944884263
+-0.1452496427 0.06665187048 -0.5115772448
+-0.1442704312 0.05829730889 -0.5132018731
+-0.1718624152 -0.09035911072 -0.4830521978
+-0.1860819826 0.1351234108 -0.4936583413
+-0.1870843454 0.1355269419 -0.4915276147
+-0.1860357524 0.1377659719 -0.4926466927
+-0.1567588253 -0.08759454522 -0.489947517
+-0.1578957325 -0.09131390721 -0.4881339932
+-0.1537779996 -0.088387416 -0.4849247752
+-0.1877142109 -0.02954379204 -0.4570078367
+-0.1608286689 -0.0928675694 -0.4905838395
+-0.1560138024 -0.0929327062 -0.4843169429
+-0.1827996765 0.11154391 -0.4996929559
+-0.1810332026 0.1244567909 -0.4991535825
+-0.1810521834 0.1068568565 -0.5013330792
+-0.1378250836 -0.005582743449 -0.4952303402
+-0.1377280109 0.01033195657 -0.5027646866
+-0.1377223391 -0.001244218762 -0.494593952
+-0.1836707452 -0.07543801468 -0.4744416563
+-0.1608595456 -0.07974834711 -0.5169460564
+-0.1609063782 -0.08472600368 -0.5162010994
+-0.1592671567 -0.07946899563 -0.5152764133
+-0.1539617291 -0.06668030989 -0.510817559
+-0.1779847327 0.1352711785 -0.4989693753
+-0.1873290366 -0.01001508158 -0.4972770503
+-0.1865277363 -0.04058054687 -0.4833040684
+-0.1860476269 -0.03534577551 -0.4900436414
+-0.1855268806 -0.03939774883 -0.4900002318
+-0.1508915416 0.1114732134 -0.5024911519
+-0.1505950888 0.1073118499 -0.5030522683
+-0.1871544841 0.05409510351 -0.508019294
+-0.187009041 0.06918102485 -0.5044291822
+-0.1800313557 -0.03346645014 -0.5104122365
+-0.1877207375 -0.003794936401 -0.4859413269
+-0.1877559533 0.006506733794 -0.4875292188
+-0.1877149657 0.003456962938 -0.4946731382
+-0.1573464491 -0.06875803689 -0.4624027752
+-0.157346429 -0.06655600685 -0.4703303645
+-0.1778364022 -0.06416386944 -0.4703309238
+-0.1778368795 -0.06880250735 -0.4703305872
+-0.1580479274 -0.05201708453 -0.5173629877
+-0.1582700257 -0.05806774768 -0.5171168485
+-0.155882734 -0.05247945716 -0.5161127408
+-0.1597867768 -0.0983244947 -0.5089622618
+-0.1601131022 -0.1005151587 -0.5066989415
+-0.1614448574 -0.02109958627 -0.4376490265
+-0.1617553343 -0.02071177763 -0.4361280146
+-0.1814072147 0.0754589145 -0.4785177282
+-0.1870418456 -0.05180362748 -0.4749863522
+-0.1642424303 -0.1009746496 -0.5101446027
+-0.1663945771 -0.07450932022 -0.5158903265
+-0.1660198399 -0.08151227982 -0.514950782
+-0.1645231555 -0.07884556992 -0.5170712093
+-0.1392164907 -0.03863208411 -0.4868417925
+-0.1407566795 -0.04888731649 -0.4876756374
+-0.1375545238 0.08537395943 -0.4793333638
+-0.1431343715 0.06573088082 -0.5107643916
+-0.1424877282 0.05819929153 -0.5123000882
+-0.1686183493 0.02018925023 -0.4793332911
+-0.1377623239 0.0003281998188 -0.4613130276
+-0.1508633432 0.01173855255 -0.4613130272
+-0.1377623236 0.01173855255 -0.4613130272
+-0.1594858141 0.1146469817 -0.5034077777
+-0.1851079456 -0.06543908455 -0.476053196
+-0.1667152783 0.1324292718 -0.5011920188
+-0.166079207 0.1186607499 -0.5028300637
+-0.1385717468 -0.05618455007 -0.4746341649
+-0.1408383866 0.07956499338 -0.5049011953
+-0.1415833186 0.09011593614 -0.5027502846
+-0.1402543733 0.08983509908 -0.5016448511
+-0.1755165733 0.1377518475 -0.4990634711
+-0.173113321 -0.1001730441 -0.4747027387
+-0.1718968318 -0.1046954431 -0.4725100923
+-0.1549792115 -0.09944457409 -0.4780009668
+-0.157456224 -0.09506841621 -0.4843990745
+-0.1643933814 -0.00788523936 -0.4325411133
+-0.1872635598 -0.02513086132 -0.4860174574
+-0.1618131829 -0.09928475608 -0.4831877455
+-0.1631589645 -0.0962388622 -0.4873745897
+-0.1609360799 -0.09710807329 -0.485545431
+-0.1702362245 0.0176147597 -0.4449747789
+-0.1702326694 0.01148448899 -0.4613115572
+-0.1702348559 0.01161360768 -0.4615285634
+-0.1457749606 0.03744862938 -0.5169583124
+-0.1518408116 0.03474252468 -0.5180159208
+-0.145406226 0.02955335712 -0.5174057386
+-0.1868930499 -0.06774696965 -0.4703304267
+-0.1854754316 -0.06895498425 -0.4735351237
+-0.1787889482 -0.09016288202 -0.474405298
+-0.1768728193 -0.08873119561 -0.4777090391
+-0.1750957245 -0.09279349911 -0.4773594509
+-0.1686304449 -0.08465166767 -0.5055816974
+-0.1675550138 -0.08871758122 -0.5041030109
+-0.1682386984 -0.08591229041 -0.507492978
+-0.1877377406 0.1320910209 -0.4746841328
+-0.1877109402 0.1323412766 -0.4789657698
+-0.1409423371 -0.06323571466 -0.4791224433
+-0.1421564507 -0.06623259517 -0.4804166277
+-0.1396393842 -0.06683000208 -0.4737575239
+-0.1519395201 -0.03654797421 -0.4553468063
+-0.1658760964 -0.08700063553 -0.5137885799
+-0.164502112 -0.08455698441 -0.5162227169
+-0.1557039776 -0.04603575728 -0.5166394668
+-0.1536472636 -0.04730963048 -0.5152946743
+-0.1877634165 0.0145847895 -0.4881415131
+-0.1793428267 -0.07472005572 -0.4830021396
+-0.1774526877 -0.07819923496 -0.483848179
+-0.1872579032 0.01592734947 -0.513050713
+-0.1478061053 0.1135728841 -0.4884030561
+-0.182516412 0.0959985601 -0.5023370738
+-0.1426864897 0.03157842367 -0.5166679751
+-0.1425025723 0.01562024636 -0.5175283319
+-0.1831780896 -0.008468147168 -0.5138011927
+-0.1824525457 -0.01588117568 -0.5128714584
+-0.180468359 -0.01465201896 -0.5149829223
+-0.1842848366 -0.02979954016 -0.4570078367
+-0.1842848366 -0.004895492148 -0.4553468063
+-0.1877580963 0.1136575433 -0.4746847343
+-0.1734079626 0.04877295977 -0.5169562159
+-0.16008583 -0.02961636677 -0.5187222459
+-0.1566992041 -0.02829218485 -0.5180834516
+-0.1876747212 -0.03605958079 -0.4612792984
+-0.1503762055 0.100211402 -0.5043662343
+-0.1465512528 0.09639057557 -0.5040414903
+-0.173415067 -0.03654797421 -0.4570078367
+-0.1659247788 0.1116093347 -0.5038380459
+-0.1626920111 -0.01211754044 -0.5191729226
+-0.1627304864 -0.02816891446 -0.5189918051
+-0.1599247736 -0.01345648418 -0.5189691016
+-0.1398842855 -0.0004303236437 -0.5125443767
+-0.1408112929 -0.01000577764 -0.5114145022
+-0.1394759598 -0.007444208197 -0.509224547
+-0.1748723893 -0.06503986083 -0.5023410846
+-0.1725787506 -0.06948303794 -0.5057097918
+-0.1718326262 -0.06949289795 -0.5081645879
+-0.184080121 0.06425330902 -0.5099154563
+-0.1828348698 0.05819929847 -0.5123000875
+-0.1821750992 0.06573130385 -0.5107729574
+-0.1670522373 -0.0924651263 -0.5077199393
+-0.1478061054 0.113572884 -0.4793303529
+-0.1521495273 0.1179173757 -0.4793303511
+-0.1859778937 -0.01335359973 -0.5061651631
+-0.1857408051 -0.00926306669 -0.5090198008
+-0.1423590065 0.07881194508 -0.5064119592
+-0.1443547815 0.08214234584 -0.5067000586
+-0.1651933707 -0.03717364091 -0.518591966
+-0.1688585118 -0.02789555585 -0.5180581793
+-0.1652906416 -0.02961638503 -0.5187222495
+-0.1790327173 0.007485615753 -0.4613130272
+-0.1790327173 0.007485615753 -0.4614940033
+-0.1554452799 -0.08415471576 -0.4912369328
+-0.150458339 -0.0796447034 -0.4870487336
+-0.1523382665 -0.08394173318 -0.4864237618
+-0.1615931706 0.01406801094 -0.4364884307
+-0.1552842635 -0.07810454588 -0.5067601862
+-0.1558465246 -0.08108001775 -0.5035250532
+-0.1461764604 0.04512941567 -0.5162835036
+-0.1430054099 0.04144211191 -0.5158016269
+-0.1645985736 -0.0980800794 -0.511467628
+-0.1658649001 -0.0950135746 -0.509892919
+-0.1391961867 -0.07349823215 -0.4703303652
+-0.139471799 -0.07529407463 -0.4703303652
+-0.1380945821 0.07602321996 -0.501412743
+-0.1640145666 -0.01867701639 -0.4304309904
+-0.1631931774 -0.02003840323 -0.4262699571
+-0.1612523884 -0.02228342264 -0.4376490265
+-0.164132025 -0.02228342264 -0.4376490265
+-0.164132025 -0.02228342264 -0.4382493201
+-0.1870394653 -0.05840150939 -0.4727036592
+-0.142976159 -0.08355349916 -0.4728668652
+-0.1418012372 -0.07935688995 -0.4729011725
+-0.1730911803 0.05806798842 -0.5156546819
+-0.1729010663 0.0616238805 -0.5150348684
+-0.1654601548 -0.005272372733 -0.519088966
+-0.1652448338 -0.02185379896 -0.5188650051
+-0.1445519733 -0.01171773751 -0.5152014642
+-0.1448735541 -0.01595918331 -0.5147011942
+-0.1680240197 -0.0665560054 -0.4703303645
+-0.1680240112 -0.08508824941 -0.4703303678
+-0.1417390133 0.04852672043 -0.5140218149
+-0.1877102305 0.01495354452 -0.4876649946
+-0.18771147 0.04084970446 -0.4856634552
+-0.1821220389 -0.03586502895 -0.5052853608
+-0.1813705125 -0.03362317674 -0.508069397
+-0.1596423114 -0.09251411491 -0.5124414895
+-0.1595159394 -0.08700623105 -0.5137861717
+-0.1656335274 0.01486607814 -0.5193520846
+-0.1863906343 -0.07219023287 -0.4703310586
+-0.1421287539 -0.007232988421 -0.5139879877
+-0.1415051074 0.0004769171722 -0.5148644306
+-0.1725679134 0.0108760126 -0.4703545229
+-0.1725638678 0.01148696441 -0.4613207308
+-0.1840402248 -0.001417187308 -0.4614940033
+-0.1794953679 0.002926237559 -0.4614940033
+-0.148893338 0.002838794429 -0.4613130272
+-0.1410833831 -0.005067980036 -0.4613130287
+-0.1746248653 -0.07666085655 -0.490243961
+-0.1716366413 -0.08062915528 -0.4918586298
+-0.1863068947 0.04771936964 -0.5114633945
+-0.1649046104 -0.007009802377 -0.4325411133
+-0.1649046104 -0.00437348734 -0.4310312836
+-0.1842848366 -0.004895492148 -0.4613130272
+-0.147749095 0.1325450774 -0.4677066715
+-0.1566231922 -0.06067576008 -0.5156731244
+-0.1877117089 -0.04437527344 -0.4614940033
+-0.1847763559 -0.07271593902 -0.4734589079
+-0.1381812077 0.1147582492 -0.493935965
+-0.137887857 0.1081508809 -0.4937301826
+-0.1710868933 -0.08361949291 -0.4898354476
+-0.1819521994 0.04894747426 -0.514816594
+-0.1664444539 -0.09271684051 -0.5027465467
+-0.1674900943 -0.08993574612 -0.5060547217
+-0.1669385348 -0.09318986162 -0.5054064125
+-0.1653442796 -0.09499915739 -0.4873135612
+-0.1652189209 -0.09291166849 -0.4896256324
+-0.1863720034 -0.06237203686 -0.4736772
+-0.1469977592 0.01043091745 -0.5178933467
+-0.1377632855 -0.01418752442 -0.484972999
+-0.1379185078 -0.0205254439 -0.4858210995
+-0.1376671116 -0.02505456595 -0.4787582213
+-0.1612790654 -0.09096572681 -0.4940670734
+-0.1605912155 -0.090347445 -0.496792337
+-0.138166346 0.01485989611 -0.4793694921
+-0.1876280328 -0.002991798333 -0.49464964
+-0.1508633432 0.01173855255 -0.4614940033
+-0.1503798499 0.01724809795 -0.4614035214
+-0.1376631607 0.09947880424 -0.4669296114
+-0.1874515717 0.0001714022413 -0.5012743612
+-0.1641245607 -0.0929168447 -0.4912214668
+-0.1626974667 -0.09297253552 -0.4926278334
+-0.1502003866 0.09417227984 -0.5057473612
+-0.1502380425 0.08921908238 -0.5071086927
+-0.1466725539 0.09007375971 -0.5055876728
+-0.1413471858 0.1124519427 -0.4987397737
+-0.1414303692 0.1355355212 -0.496018299
+-0.1377598306 -0.03605958079 -0.4570078367
+-0.1377598306 -0.03605958079 -0.4612792984
+-0.1709499253 -0.07641521804 -0.5027523026
+-0.1712066971 -0.07385980937 -0.5065755785
+-0.1701096193 -0.07808034917 -0.5067471674
+-0.1599068151 -0.01310687952 -0.4152274156
+-0.1384042823 -0.0515534564 -0.4754561624
+-0.158993641 -0.09294251289 -0.5022546772
+-0.1589075047 -0.09260845269 -0.5027680687
+-0.1477498144 0.1293636904 -0.4677048023
+-0.1445358104 0.1325442082 -0.4677056226
+-0.1651644968 -0.0912797365 -0.4915057162
+-0.1376429384 0.05193990694 -0.5010290792
+-0.1376420341 0.01495547923 -0.5008204736
+-0.1648614893 -0.06270799023 -0.5180116417
+-0.1724317841 0.06897043808 -0.5135203681
+-0.172694601 0.06520169883 -0.5143331555
+-0.1820056769 0.03961901784 -0.4793333095
+-0.182005677 0.03961901781 -0.4732425782
+-0.1791081103 -0.06628265472 -0.4900961602
+-0.1803298223 -0.06243415096 -0.4904425138
+-0.1874635581 -0.02095695767 -0.4853619628
+-0.1393303379 -0.06157068126 -0.4751088775
+-0.1569808725 -0.08434820885 -0.5022336884
+-0.1590404231 -0.08746308383 -0.4979486465
+-0.1680252579 -0.06875811166 -0.4624027814
+-0.1474433891 0.137766173 -0.4984236157
+-0.1626460317 0.0295490919 -0.5182445398
+-0.1736210695 0.02606337144 -0.5183388232
+-0.1626180286 0.02217562575 -0.5184902498
+-0.1639888838 -0.01870723193 -0.4376490265
+-0.1376313216 0.005579571323 -0.4935599444
+-0.1688600654 -0.00861052027 -0.5186541407
+-0.1829707472 -0.03688005942 -0.5024618099
+-0.1612523884 -0.02228342264 -0.4304309904
+-0.1702471268 0.07751621934 -0.4884030561
+-0.1713412365 0.07892015557 -0.4884030561
+-0.1702471268 0.07751621934 -0.4793332972
+-0.1375711869 -0.0228736021 -0.4759859672
+-0.1583724458 -0.0861123941 -0.4703304032
+-0.1573464287 -0.08508823405 -0.4703303529
+-0.1587609949 0.1056133762 -0.5048226743
+-0.1550999452 0.01585577225 -0.470351384
+-0.1550999031 0.01161306036 -0.4703538338
+-0.1528024699 0.01161309033 -0.470351414
+-0.1565049578 -0.03851078024 -0.461268213
+-0.1410809555 -0.02953057165 -0.4613114853
+-0.1377623236 0.01173855255 -0.4614940033
+-0.1382980834 -0.03810046235 -0.4804457936
+-0.1376647768 0.02801531873 -0.5048330882
+-0.1719432073 0.07508040633 -0.51208656
+-0.1626970753 -0.09475165862 -0.489703564
+-0.138136041 0.003650459901 -0.5070124509
+-0.1869224716 -0.03517183285 -0.4834681823
+-0.1873690944 -0.04108214918 -0.4766797127
+-0.1774861749 0.113572884 -0.4884030561
+-0.1731427542 0.1179173758 -0.4793303493
+-0.1774861748 0.113572884 -0.4793303529
+-0.1452919559 0.01577325649 -0.5179320629
+-0.1656834336 -0.09962689639 -0.5058549422
+-0.1656459795 -0.0981695879 -0.5088898062
+-0.1375842843 -0.03609707526 -0.4703297897
+-0.1380285806 -0.009074917775 -0.4976500167
+-0.1378990807 0.003225306756 -0.5027271526
+-0.1827579924 -0.06905007413 -0.4797346494
+-0.1816247154 -0.07290311161 -0.4798351071
+-0.164132025 -0.02228342264 -0.4310312836
+-0.1676481967 -0.08647880444 -0.49307367
+-0.1376892261 0.09255731723 -0.4948278167
+-0.1378471746 0.08878938668 -0.4970422426
+-0.1377655288 0.07133227937 -0.5006443352
+-0.1730685471 -0.09601180269 -0.4776805102
+-0.1707424821 -0.09289300269 -0.4825737264
+-0.1426139391 -0.03656009388 -0.5031727347
+-0.1590355217 0.1097525508 -0.5041079765
+-0.1841400089 -0.01391942301 -0.5109296381
+-0.182986479 -0.02265781439 -0.5098051739
+-0.170236225 0.01161308719 -0.470351384
+-0.1444331647 0.1067379511 -0.5014278431
+-0.1445323751 0.09768009716 -0.5029200897
+-0.1548936804 0.1071334954 -0.4376228562
+-0.1527682956 0.1078297665 -0.4349985587
+-0.1877775258 0.01496398143 -0.4950101006
+-0.1603392249 -0.01013241701 -0.4231481263
+-0.161352124 -0.007955481442 -0.4231480573
+-0.1410833814 -0.02954379208 -0.457007837
+-0.1840402248 -0.00141718767 -0.4703303649
+-0.1725339839 0.01585576477 -0.4703491165
+-0.170236225 0.01585577225 -0.470351384
+-0.1589609937 -0.0994688691 -0.4817319198
+-0.1571578368 -0.09983101971 -0.4799249755
+-0.1382516776 0.0285309753 -0.5126607441
+-0.137779538 0.02596413959 -0.511124444
+-0.1770695344 -0.06799210016 -0.4660452593
+-0.1588486552 -0.1027251216 -0.4784607622
+-0.1600974337 -0.0951650237 -0.5008137849
+-0.1603435134 -0.1001737229 -0.5037909661
+-0.1800424033 0.02253693627 -0.5177199895
+-0.1848517035 0.02449781389 -0.5159380506
+-0.1413290445 -0.002344182426 -0.4703285229
+-0.181504629 -0.001870593092 -0.5161809295
+-0.142656556 0.1332682997 -0.4971804755
+-0.1638969459 -0.01382499966 -0.4238534141
+-0.1566739321 0.01495222453 -0.4884030561
+-0.1686183492 0.02018925044 -0.4884030561
+-0.1649046104 -0.01231004724 -0.4325411133
+-0.1856011326 -0.02836089472 -0.498449709
+-0.174415345 0.01054609926 -0.5184084646
+-0.1695363449 0.004189244391 -0.5188109942
+-0.1774861749 0.1134955509 -0.4793332976
+-0.1702471335 0.03328467635 -0.4884030561
+-0.1878018088 0.03855285768 -0.4714608688
+-0.1702155434 -0.0737940533 -0.5099038384
+-0.140154479 0.08109947032 -0.5038202253
+-0.1799164094 0.02955769627 -0.5174055025
+-0.1877032437 0.07457309393 -0.4960341302
+-0.1833131633 -0.04974599614 -0.4918207379
+-0.1386715023 -0.02208226172 -0.4958603034
+-0.1381489523 -0.02518185882 -0.4865418855
+-0.137591707 0.13322441 -0.4746860586
+-0.1875415195 0.008724223307 -0.5053487593
+-0.1708230432 -0.06236268133 -0.5131281808
+-0.1709284026 -0.0564723872 -0.5144218236
+-0.1796899693 0.09951610901 -0.4667974715
+-0.1376470842 0.01515915645 -0.5084890026
+-0.1376677209 0.01488016976 -0.5034782195
+-0.1487380269 -0.06332094706 -0.4990104534
+-0.1877235931 -0.003828478773 -0.4463526614
+-0.1774928004 0.006402313946 -0.4463526614
+-0.1440928969 -0.07895137292 -0.4767870872
+-0.1426326322 -0.07604022199 -0.4758718844
+-0.1717660536 0.111390498 -0.4418230562
+-0.1639888838 -0.02109958627 -0.4376490265
+-0.1536975351 -0.08047491529 -0.4919060261
+-0.1523247107 -0.0764556931 -0.4936065554
+-0.150753077 -0.07664396005 -0.4902501486
+-0.148718848 -0.07467114502 -0.4880746345
+-0.1481985874 -0.08003245886 -0.4829802925
+-0.1375965298 0.08437906626 -0.4939918421
+-0.176519144 0.002838794429 -0.4553468063
+-0.148893338 0.002838794429 -0.4553468063
+-0.1376623712 0.06988384416 -0.4978354675
+-0.1810521681 0.05829730903 -0.5132018731
+-0.1527934302 -0.06947255168 -0.5057053142
+-0.1520564023 -0.07111907637 -0.4998800868
+-0.1605364812 0.01653057004 -0.4410870782
+-0.1393214954 0.03511453712 -0.5139433428
+-0.1546118438 0.07854914715 -0.4793332972
+-0.181584223 -0.09181730092 -0.4703303681
+-0.1769250451 -0.09566668722 -0.4736222994
+-0.1414730207 0.09724619853 -0.5011986143
+-0.1840401612 -0.04538799068 -0.4614938041
+-0.1642043305 0.01583089759 -0.4348065818
+-0.1694498766 -0.08102331019 -0.4972319979
+-0.1713280988 -0.07655756237 -0.4985359718
+-0.1550988595 0.01760533461 -0.4449722066
+-0.1664614701 -0.09492233411 -0.5074352748
+-0.1385308698 -0.01095146329 -0.5022925629
+-0.1649046104 -0.01231004687 -0.4397591494
+-0.1622478479 -0.02048521017 -0.4270171404
+-0.1517083073 0.01908144441 -0.5185084975
+-0.1741654622 0.1163071757 -0.5018915579
+-0.1460994882 -0.08680736572 -0.4755583518
+-0.1783262684 0.05578674005 -0.514709564
+-0.1500582761 0.0008358570849 -0.5179994277
+-0.1443955596 0.0899295151 -0.5045952408
+-0.1877154056 0.01495205895 -0.4950246884
+-0.1437003399 0.0754589145 -0.478481533
+-0.1437003399 0.06915119965 -0.4781148052
+-0.1532017701 0.06915119965 -0.4781148052
+-0.1555111462 0.09097405291 -0.5080934986
+-0.1609125188 -0.007430589831 -0.4398799303
+-0.1626922068 -0.01153929626 -0.4304309904
+-0.1685517486 -0.03470569099 -0.5178237498
+-0.1489200459 -0.08467858249 -0.480798696
+-0.1503511851 -0.08949895563 -0.4795858822
+-0.1726002101 0.007485615753 -0.4613130272
+-0.1535774859 0.1114111336 -0.4418008989
+-0.1608077355 -0.0980767896 -0.5115358587
+-0.1517011466 0.02602907979 -0.518340025
+-0.1726002101 0.007485615753 -0.4614940033
+-0.1626896333 -0.08187473026 -0.5180008973
+-0.1626737703 -0.07744709129 -0.5183063916
+-0.1532017701 0.07705036888 -0.4793332972
+-0.153201555 0.06527214517 -0.4793333077
+-0.1826569579 0.1351244896 -0.4969657256
+-0.1840212234 0.1122136508 -0.4987288504
+-0.1874908463 -0.007340114343 -0.4956773797
+-0.1693422533 0.02145608276 -0.4884030561
+-0.1437003384 0.07705036631 -0.4793332947
+-0.1532017701 0.0754589145 -0.478481533
+-0.1411655782 0.0411728225 -0.5148399328
+-0.1397458399 0.04455152185 -0.5131989049
+-0.1872519955 0.07305277307 -0.5022483663
+-0.1506010543 0.1151402271 -0.4407821762
+-0.1643933814 -0.00788523936 -0.4304309904
+-0.1375624069 0.06923576202 -0.4793332882
+-0.1375612541 0.03079816182 -0.4793327119
+-0.1739249939 -0.06383686463 -0.5065658771
+-0.1763829008 -0.07408375149 -0.4891691711
+-0.1770681356 -0.06481111716 -0.4660459111
+-0.1599805825 -0.09510236451 -0.487125482
+-0.156779212 0.09666212225 -0.5067081316
+-0.1725327102 0.01161308719 -0.4695654003
+-0.1603498401 -0.003899113805 -0.4231570627
+-0.16270358 -0.09281304452 -0.5160342506
+-0.1611019872 -0.09291161162 -0.514526231
+-0.1868147221 0.1377658899 -0.4909737542
+-0.1377541563 -0.03045533387 -0.4779058735
+-0.1481724336 -0.02828881319 -0.514745308
+-0.1591402813 -0.08723800021 -0.4953914892
+-0.1584164159 -0.08753735172 -0.4929907904
+-0.1610797556 0.01820106556 -0.4411209705
+-0.1682196552 -0.07108134987 -0.5144091472
+-0.1573844535 -0.08403095726 -0.4989873175
+-0.1491462972 -0.09746374849 -0.4733267011
+-0.1466240469 -0.09849303859 -0.470323892
+-0.1493229999 -0.1027254792 -0.4703072333
+-0.1601831368 -0.03717383556 -0.5185919635
+-0.1829061352 -0.04665748591 -0.4954804831
+-0.1456343929 0.08101543579 -0.4884030561
+-0.1734991909 0.03451991474 -0.5180262155
+-0.1410833814 -0.02980795018 -0.4570078367
+-0.1377598306 -0.02954379204 -0.4570078367
+-0.1610902398 -0.007862159172 -0.4154370204
+-0.1642821137 -0.007844617596 -0.4154304557
+-0.1877052204 0.01072567374 -0.5003326794
+-0.1678068607 -0.08610756521 -0.5019274115
+-0.1678812176 -0.084332083 -0.4990252224
+-0.1695433561 -0.08108767014 -0.5035198547
+-0.1452488404 -0.0954101776 -0.4703223399
+-0.1663188333 -0.0897735369 -0.5008811378
+-0.1644562651 -0.09289812619 -0.4986132256
+-0.1877530112 -0.04061080381 -0.4712508457
+-0.1417443659 -0.06869235869 -0.4780096187
+-0.1583179927 -0.08401873123 -0.5124938424
+-0.1385821556 -0.002498164566 -0.5074479133
+-0.1376820507 0.01500432138 -0.5112001273
+-0.1437354837 -0.07222375008 -0.4802173117
+-0.174261992 0.1151402271 -0.4401499589
+-0.174261992 0.1151402271 -0.4407821762
+-0.1878250681 -0.02588138941 -0.4703299289
+-0.1877183576 0.01495218718 -0.4859232911
+-0.1452723171 0.0225217226 -0.5177195662
+-0.1748784423 -0.02941504884 -0.515976047
+-0.1720653753 -0.03458046044 -0.5166702455
+-0.1566780091 -0.08420437537 -0.5057551765
+-0.1435142145 0.003876649633 -0.5167000456
+-0.1720397647 -0.04584597181 -0.5152920904
+-0.1721771578 -0.03905228787 -0.5161081515
+-0.1392727331 -0.05850938643 -0.4763028106
+-0.1456343929 0.08101543579 -0.4793332972
+-0.1671127227 -0.09889240279 -0.4818571826
+-0.1645277783 -0.09908767828 -0.483080914
+-0.15193952 -0.03654797421 -0.4570078367
+-0.173415067 -0.03654797421 -0.4553468063
+-0.1839195277 0.001169792298 -0.5149430181
+-0.1747213581 0.09707306545 -0.5051368001
+-0.1543559101 -0.05468491121 -0.5146578532
+-0.173926085 0.1355060966 -0.4998045058
+-0.1427400698 0.0905148301 -0.5034455517
+-0.1713412365 0.07892015553 -0.4793332972
+-0.1876202564 -0.05546160737 -0.4703303743
+-0.1837843916 0.09578621968 -0.5015049028
+-0.1877110494 0.03954221076 -0.4963092029
+-0.1723881318 -0.07164386624 -0.5035624028
+-0.1669599813 -0.06564829333 -0.5165603127
+-0.1665914604 -0.0929096438 -0.5027944932
+-0.1401851799 -0.05855473477 -0.4796091422
+-0.1686048398 -0.0874857142 -0.4901047759
+-0.1690607851 -0.06129986626 -0.5153389924
+-0.137729554 0.03405272522 -0.5082015911
+-0.1878102411 0.0001023661604 -0.4801678934
+-0.1877845315 -0.0121470664 -0.4794625059
+-0.1828973894 0.07975042249 -0.5061818923
+-0.1607413394 -0.0751212444 -0.5174093952
+-0.1548938761 0.1113698722 -0.4376208089
+-0.1704546169 0.1071403437 -0.4376234734
+-0.1626272736 0.01940946895 -0.4369476241
+-0.1765191441 0.002838794429 -0.4613130272
+-0.1415030971 -0.03688172569 -0.499431935
+-0.1864495428 0.1141381545 -0.4956007162
+-0.1448776979 -0.04435205334 -0.5040649867
+-0.1382154961 -0.01542221238 -0.496114764
+-0.1376218347 0.08426661388 -0.4914682784
+-0.1853275564 -0.02191320044 -0.5039912668
+-0.160479803 -0.00437348734 -0.4310312836
+-0.1375714237 -0.003898375736 -0.4792611038
+-0.1560483068 -0.08097014736 -0.49970232
+-0.1413298653 0.01161309857 -0.4701738244
+-0.1413298272 0.007273076563 -0.4702738244
+-0.1397776777 -0.07708717726 -0.4703303652
+-0.1731512794 -0.06416384398 -0.4703305767
+-0.149988884 -0.02379387932 -0.5164163207
+-0.1755036942 -0.04875676783 -0.5111126967
+-0.1627000968 -0.1047535503 -0.504977807
+-0.1640145666 -0.02113315912 -0.4304309904
+-0.1382033556 0.1018610068 -0.4960758504
+-0.1688807753 -0.07631195546 -0.5117913044
+-0.1626989402 -0.08742516141 -0.5172489461
+-0.1486379222 -0.03367743647 -0.5140079715
+-0.1878271107 -0.01980674958 -0.4737602217
+-0.1877719298 -0.0313846979 -0.473521649
+-0.1634759005 -0.02046784437 -0.4355260703
+-0.1867195749 0.04097007735 -0.5120075148
+-0.1851074314 0.09425252409 -0.5006162047
+-0.1426015661 0.1158733758 -0.4992163305
+-0.1376297189 0.003231142078 -0.487537525
+-0.1691400913 -0.08047444736 -0.5088368626
+-0.1642782654 -0.09292455381 -0.5145199917
+-0.1813622741 -0.0584012073 -0.4911754805
+-0.1506010543 0.111418078 -0.4417902579
+-0.1588112416 -0.1053996448 -0.4759314979
+-0.1564379007 -0.1103553868 -0.4702934386
+-0.1376383118 -0.006205758741 -0.4836735409
+-0.160479803 -0.00437348734 -0.4304309904
+-0.1649046104 -0.00437348734 -0.4304309904
+-0.1579065255 -0.07908210965 -0.5133744443
+-0.1571793514 -0.08208974266 -0.5107845156
+-0.152799306 0.01161306925 -0.4614935597
+-0.1819536499 0.03332120288 -0.471461208
+-0.1643933814 -0.00788523936 -0.4376490265
+-0.1472786425 0.1353984185 -0.4989272596
+-0.1512832915 0.135515239 -0.4997857542
+-0.163998233 -0.007955433178 -0.4231481028
+-0.1696670885 -0.05254464968 -0.5160053052
+-0.1733219357 -0.07111321339 -0.4998826638
+-0.1626761604 -0.07158479047 -0.5185217043
+-0.1876850587 0.0272719855 -0.4906011577
+-0.1378618548 0.00995071828 -0.5078392799
+-0.1626431714 0.01495214011 -0.5186488066
+-0.1833175269 0.04086053823 -0.479331362
+-0.1650377626 -0.004017412576 -0.4231637098
+-0.1873288136 -0.04568177214 -0.4753568287
+-0.1631282821 0.015851975 -0.4414234647
+-0.1635390837 0.01456468273 -0.4410564369
+-0.1877025955 0.01493831495 -0.497593461
+-0.1699771326 0.09017768896 -0.5082984498
+-0.1876066962 -0.05146527365 -0.4711417123
+-0.1583532424 -0.0925853528 -0.5078078742
+-0.1788521837 -0.05621849898 -0.4997878934
+-0.1814116964 -0.0466417884 -0.5001735669
+-0.180278917 -0.04545769018 -0.5038752846
+-0.1877713191 -0.02214020048 -0.478151444
+-0.1847343709 -0.0333226411 -0.4986893916
+-0.1680240194 -0.08147076974 -0.4630640558
+-0.1449510191 -0.05035494187 -0.5002082065
+-0.1734360806 0.001396900938 -0.518310799
+-0.1433943375 -0.04318411014 -0.500992342
+-0.182005677 0.03860586958 -0.4714608688
+-0.1833834851 0.03990871672 -0.4714608688
+-0.1877100496 0.04086101469 -0.4884035818
+-0.1814072147 0.07698273637 -0.4793332947
+-0.1876202263 -0.01322685645 -0.485695615
+-0.1518688302 0.04554413161 -0.5172854953
+-0.1874533897 0.0324436044 -0.51093629
+-0.1463992692 -0.0903921066 -0.4740526823
+-0.1472334682 -0.09359560902 -0.4733047322
+-0.1877721023 -0.04457910308 -0.4703303566
+-0.1437001572 0.06527018234 -0.4793333822
+-0.157817765 -0.08792369023 -0.5092135105
+-0.1579020843 -0.08998428983 -0.506101487
+-0.1471889607 0.1148636557 -0.5012682878
+-0.1827860286 0.02623483203 -0.5169723406
+-0.1732506715 -0.01829829387 -0.5175702488
+-0.1649046104 -0.01231004687 -0.4304309904
+-0.1610864707 -0.1033317556 -0.4786054003
+-0.1523358984 -0.1066413764 -0.4703021816
+-0.1731427501 0.1179173752 -0.4884030561
+-0.1426460298 0.1079267219 -0.5003320879
+-0.1559074183 0.03116764443 -0.4793332907
+-0.1571632853 -0.08596316818 -0.5074771794
+-0.1876190947 0.1114013962 -0.4918149823
+-0.1388781306 0.1148305692 -0.4955147817
+-0.1427296872 0.09919750811 -0.5017577907
+-0.1415774729 0.1377662022 -0.4954570181
+-0.1867239525 -0.02938768731 -0.489325986
+-0.1377598305 -0.0295437911 -0.4612792984
+-0.1486328918 -0.06669555356 -0.4953074151
+-0.183956054 0.1350873288 -0.4960124039
+-0.1746357974 0.1004403332 -0.5043803818
+-0.1876011385 0.09950493237 -0.4667447839
+-0.1725755251 0.1078242731 -0.4349899618
+-0.1860833914 -0.04559940203 -0.4832561689
+-0.1457729359 -0.08179036674 -0.4778934516
+-0.1690731834 0.09423720855 -0.5072902893
+-0.1666784695 -0.1115614335 -0.4702939632
+-0.1852113886 0.1348834067 -0.4948224816
+-0.169389981 -0.07176107778 -0.5124733952
+-0.1728287871 -0.02635330969 -0.5171031331
+-0.164132025 -0.02228342264 -0.4304309904
+-0.1487430718 -0.003052646995 -0.5175873688
+-0.158821445 -0.1115514878 -0.4702864585
+-0.1817610996 -0.0781425004 -0.4765773204
+-0.1634925142 0.01653113537 -0.4428295793
+-0.1681498981 -0.1024587131 -0.4775615196
+-0.1786672978 0.05082453138 -0.5155243619
+-0.1598209449 -0.09021007019 -0.4921302878
+-0.1500772562 -0.09237016282 -0.4773803283
+-0.1659531839 -0.09496964351 -0.5021385402
+-0.1389484481 -0.07170012933 -0.4703303652
+-0.1806405461 -0.06954819618 -0.4841025261
+-0.169338711 -0.0809821205 -0.4996974509
+-0.1800788448 -0.095607252 -0.4703202828
+-0.1521495302 0.1179173752 -0.4884030561
+-0.1877715582 0.04088554054 -0.4793976346
+-0.1637435418 -0.02061733634 -0.4342961079
+-0.1376547399 0.1134955762 -0.4793333103
+-0.1566739303 0.02018924733 -0.4793332947
+-0.1455876069 0.0950844609 -0.4884030561
+-0.1647815937 -0.06994496531 -0.5177065709
+-0.1393179093 0.1124859189 -0.4966082405
+1 2
+3 2
+3 1
+4 5
+5 6
+4 6
+7 8
+7 9
+9 8
+10 11
+11 12
+10 12
+13 14
+15 14
+15 13
+16 17
+17 18
+16 18
+19 20
+21 19
+21 20
+22 23
+23 24
+24 22
+25 26
+26 27
+27 25
+28 29
+28 30
+29 30
+31 32
+31 33
+32 33
+34 35
+35 36
+36 34
+37 38
+37 39
+39 38
+40 41
+42 40
+42 41
+43 44
+45 43
+45 44
+46 47
+47 48
+46 48
+49 50
+49 51
+50 51
+52 53
+54 52
+53 54
+55 56
+57 56
+57 55
+58 59
+60 59
+58 60
+61 62
+63 61
+62 63
+64 65
+65 66
+66 64
+67 68
+47 67
+47 68
+69 23
+69 70
+23 70
+71 72
+73 71
+72 73
+74 75
+75 76
+74 76
+77 78
+79 77
+78 79
+80 81
+80 82
+81 82
+83 20
+84 20
+84 83
+85 86
+87 86
+87 85
+88 89
+88 90
+90 89
+91 92
+93 91
+93 92
+94 95
+95 96
+96 94
+97 98
+98 99
+99 97
+100 101
+102 101
+102 100
+103 104
+104 105
+105 103
+106 107
+108 107
+106 108
+109 110
+110 111
+109 111
+112 113
+114 113
+114 112
+115 116
+116 117
+115 117
+118 119
+119 120
+118 120
+121 122
+123 121
+122 123
+124 125
+126 125
+124 126
+127 128
+129 128
+127 129
+53 130
+53 131
+130 131
+132 133
+132 134
+134 133
+135 136
+136 137
+135 137
+138 139
+139 140
+138 140
+141 142
+141 143
+143 142
+144 145
+144 146
+145 146
+147 56
+147 148
+56 148
+149 150
+151 149
+150 151
+70 152
+23 152
+153 154
+153 155
+154 155
+156 157
+157 158
+156 158
+159 160
+159 161
+161 160
+162 163
+163 164
+164 162
+165 166
+166 167
+167 165
+168 145
+169 168
+169 145
+170 171
+171 172
+172 170
+173 174
+173 175
+174 175
+150 176
+176 149
+177 173
+106 177
+173 106
+178 179
+180 178
+180 179
+181 182
+182 183
+181 183
+184 185
+185 186
+186 184
+187 188
+189 187
+188 189
+190 191
+192 191
+192 190
+193 151
+193 150
+194 62
+195 62
+195 194
+196 197
+197 198
+198 196
+199 200
+201 200
+201 199
+202 203
+203 204
+204 202
+205 206
+207 206
+205 207
+208 209
+208 210
+209 210
+211 212
+213 211
+212 213
+214 215
+216 215
+216 214
+217 218
+217 214
+214 218
+145 219
+168 219
+220 221
+222 221
+220 222
+223 224
+225 224
+223 225
+226 227
+228 227
+226 228
+229 230
+229 231
+231 230
+232 233
+231 232
+231 233
+234 2
+1 234
+235 236
+235 2
+2 236
+237 238
+239 237
+238 239
+240 241
+137 240
+137 241
+242 243
+244 243
+242 244
+245 246
+247 246
+247 245
+248 126
+126 249
+248 249
+250 251
+252 250
+251 252
+253 36
+254 253
+36 254
+255 256
+255 257
+256 257
+258 259
+260 259
+258 260
+261 262
+263 261
+262 263
+264 107
+108 264
+265 266
+265 267
+267 266
+268 269
+268 270
+270 269
+271 272
+273 271
+272 273
+274 275
+276 274
+276 275
+277 278
+91 277
+91 278
+279 280
+187 280
+187 279
+281 248
+282 281
+248 282
+283 284
+285 283
+284 285
+286 287
+287 288
+286 288
+289 290
+291 290
+291 289
+292 293
+217 292
+217 293
+294 295
+294 274
+274 295
+296 297
+298 296
+297 298
+299 300
+300 301
+301 299
+302 303
+303 304
+304 302
+305 306
+307 305
+306 307
+308 183
+309 308
+309 183
+310 311
+311 312
+310 312
+144 313
+144 124
+313 124
+296 314
+314 298
+315 316
+315 317
+316 317
+318 112
+113 318
+319 320
+321 320
+319 321
+218 322
+322 293
+293 218
+323 324
+325 323
+324 325
+326 255
+327 326
+255 327
+328 329
+330 328
+329 330
+331 332
+128 332
+128 331
+333 334
+333 335
+334 335
+336 337
+338 337
+336 338
+339 166
+339 340
+340 166
+341 342
+342 343
+343 341
+344 345
+346 345
+344 346
+347 348
+349 348
+349 347
+258 350
+258 351
+351 350
+352 353
+352 109
+353 109
+354 355
+356 355
+354 356
+357 325
+325 184
+184 357
+244 358
+358 324
+244 324
+359 360
+359 349
+360 349
+42 361
+362 361
+42 362
+253 363
+363 254
+364 365
+366 364
+365 366
+281 249
+367 180
+368 180
+368 367
+185 325
+59 301
+301 58
+34 369
+369 370
+370 34
+305 371
+307 371
+372 143
+372 141
+373 374
+375 373
+374 375
+376 346
+377 376
+377 346
+378 379
+350 378
+379 350
+83 380
+83 381
+381 380
+382 383
+383 384
+384 382
+270 385
+268 385
+386 387
+388 387
+386 388
+389 390
+391 390
+389 391
+392 393
+393 46
+46 392
+394 204
+395 394
+204 395
+396 397
+396 398
+398 397
+399 400
+401 399
+401 400
+402 149
+151 402
+403 404
+404 405
+405 403
+51 339
+406 51
+339 406
+407 408
+408 409
+409 407
+410 397
+410 411
+411 397
+281 179
+282 179
+412 413
+413 414
+412 414
+415 416
+416 196
+415 196
+34 417
+370 417
+82 233
+233 418
+82 418
+419 420
+419 421
+420 421
+43 422
+423 43
+423 422
+424 425
+161 424
+161 425
+84 426
+84 427
+427 426
+428 429
+428 430
+429 430
+431 432
+431 433
+433 432
+434 107
+264 434
+435 436
+436 437
+437 435
+438 439
+439 440
+440 438
+441 442
+442 443
+441 443
+444 425
+444 445
+445 425
+28 446
+446 30
+447 444
+447 448
+444 448
+449 450
+434 450
+434 449
+84 451
+451 83
+452 360
+359 452
+207 453
+453 205
+454 455
+456 455
+456 454
+457 48
+48 458
+458 457
+459 460
+461 460
+461 459
+462 463
+462 426
+463 426
+464 412
+412 465
+465 464
+466 139
+140 466
+467 432
+433 467
+407 468
+469 407
+468 469
+470 471
+471 420
+420 470
+472 339
+472 340
+473 474
+474 475
+475 473
+476 477
+476 478
+478 477
+479 87
+86 479
+480 481
+481 482
+482 480
+483 60
+90 60
+483 90
+484 310
+310 352
+484 352
+127 459
+127 460
+485 486
+26 485
+486 26
+483 487
+488 483
+488 487
+6 489
+490 489
+6 490
+38 491
+491 39
+492 249
+281 492
+493 116
+494 493
+494 116
+495 496
+495 497
+496 497
+498 213
+498 499
+213 499
+211 498
+500 501
+501 502
+500 502
+119 92
+92 503
+503 119
+109 504
+109 505
+504 505
+506 507
+507 508
+506 508
+509 510
+510 4
+4 509
+511 512
+511 75
+75 512
+513 514
+513 38
+38 514
+374 157
+375 157
+515 516
+516 517
+515 517
+518 519
+519 520
+518 520
+68 393
+67 393
+521 522
+523 521
+523 522
+524 525
+524 526
+526 525
+527 528
+454 527
+528 454
+357 529
+530 357
+530 529
+142 531
+532 142
+531 532
+533 103
+534 533
+534 103
+405 535
+536 535
+536 405
+115 537
+537 493
+493 115
+538 302
+303 538
+539 540
+539 541
+541 540
+542 543
+544 542
+543 544
+506 545
+546 545
+506 546
+147 547
+547 548
+548 147
+549 550
+550 11
+549 11
+551 483
+58 551
+483 58
+552 553
+181 552
+553 181
+554 215
+554 216
+243 555
+242 555
+556 222
+557 556
+222 557
+361 558
+558 362
+559 560
+559 561
+560 561
+562 563
+562 564
+564 563
+565 566
+566 567
+567 565
+374 568
+157 568
+181 569
+569 570
+570 181
+332 129
+129 331
+571 572
+572 573
+573 571
+221 336
+574 221
+336 574
+575 576
+575 577
+577 576
+578 316
+578 579
+579 316
+580 581
+580 582
+582 581
+105 583
+584 583
+584 105
+585 586
+587 586
+587 585
+588 589
+590 588
+590 589
+591 592
+593 591
+592 593
+577 594
+577 595
+595 594
+596 245
+245 8
+8 596
+597 598
+597 599
+599 598
+25 600
+25 601
+601 600
+602 510
+603 602
+510 603
+604 605
+12 604
+12 605
+606 607
+607 608
+606 608
+502 609
+502 610
+609 610
+611 612
+613 611
+613 612
+614 615
+615 616
+616 614
+203 617
+617 394
+394 203
+250 163
+250 164
+558 170
+170 618
+618 558
+619 540
+540 620
+620 619
+621 29
+28 621
+622 623
+622 624
+623 624
+462 478
+478 426
+625 342
+625 343
+626 617
+627 626
+617 627
+628 613
+612 628
+58 629
+301 629
+467 368
+467 180
+630 565
+565 631
+630 631
+632 633
+632 25
+25 633
+634 277
+635 634
+277 635
+413 174
+414 174
+25 636
+636 637
+637 25
+638 639
+640 638
+640 639
+321 641
+471 321
+471 641
+631 642
+642 630
+402 572
+402 573
+60 643
+643 59
+448 644
+644 444
+545 508
+114 16
+16 112
+645 646
+647 645
+647 646
+648 238
+239 648
+649 495
+497 649
+326 650
+650 327
+651 652
+651 653
+653 652
+654 655
+606 655
+654 606
+656 657
+657 82
+656 82
+466 658
+139 658
+226 659
+226 660
+659 660
+501 441
+501 443
+263 661
+661 662
+662 263
+207 534
+207 104
+104 534
+663 16
+16 664
+664 663
+355 665
+355 321
+665 321
+666 667
+668 666
+668 667
+206 270
+385 206
+669 670
+669 140
+140 670
+443 502
+671 443
+502 671
+273 672
+673 273
+672 673
+270 584
+584 206
+227 674
+226 674
+675 676
+677 675
+676 677
+205 678
+678 679
+679 205
+167 305
+680 167
+305 680
+681 682
+683 682
+681 683
+684 28
+685 28
+685 684
+686 259
+686 260
+40 130
+131 40
+687 688
+689 687
+689 688
+690 691
+691 692
+692 690
+693 309
+183 693
+555 587
+587 243
+371 549
+10 549
+371 10
+694 691
+695 694
+695 691
+696 697
+698 696
+698 697
+699 700
+701 699
+700 701
+262 702
+263 702
+567 631
+567 78
+78 631
+703 704
+704 705
+703 705
+304 706
+706 649
+649 304
+110 39
+39 111
+697 96
+697 707
+96 707
+708 166
+339 708
+709 710
+711 709
+711 710
+425 47
+46 425
+712 713
+713 31
+31 712
+714 715
+374 714
+715 374
+3 5
+1 5
+716 278
+278 119
+716 119
+717 718
+717 719
+718 719
+706 303
+720 721
+461 721
+461 720
+539 722
+723 722
+723 539
+724 725
+725 726
+726 724
+224 727
+727 728
+224 728
+729 286
+729 730
+730 286
+445 731
+445 644
+644 731
+732 507
+732 506
+733 135
+137 733
+734 735
+735 736
+734 736
+737 78
+631 737
+259 378
+378 258
+490 565
+490 738
+565 738
+739 145
+169 739
+740 685
+685 741
+741 740
+742 397
+410 742
+743 744
+744 745
+745 743
+532 746
+746 142
+345 747
+376 747
+345 376
+748 276
+749 276
+749 748
+750 738
+566 750
+566 738
+751 752
+753 751
+752 753
+707 754
+754 94
+94 707
+755 128
+128 756
+756 755
+82 308
+81 308
+757 758
+757 695
+695 758
+462 68
+393 462
+385 759
+385 422
+759 422
+760 708
+339 760
+343 591
+591 625
+761 762
+763 761
+763 762
+764 765
+764 766
+766 765
+767 768
+769 768
+767 769
+747 770
+771 770
+747 771
+772 773
+774 772
+773 774
+564 264
+564 108
+775 776
+776 777
+775 777
+778 639
+779 778
+779 639
+780 781
+781 782
+780 782
+60 783
+90 783
+735 784
+784 785
+735 785
+143 746
+786 726
+726 787
+787 786
+788 139
+139 718
+788 718
+353 484
+789 35
+789 790
+790 35
+306 791
+305 791
+792 144
+124 792
+667 793
+667 696
+696 793
+66 189
+65 189
+395 154
+394 154
+794 795
+795 203
+794 203
+796 797
+797 798
+796 798
+693 799
+309 799
+800 309
+89 800
+89 309
+594 801
+778 801
+778 594
+559 802
+561 802
+312 513
+312 37
+37 513
+324 803
+803 804
+804 324
+805 693
+693 569
+569 805
+32 806
+806 807
+807 32
+570 808
+808 569
+749 809
+809 143
+143 749
+810 811
+811 812
+810 812
+813 814
+814 815
+813 815
+816 817
+817 818
+816 818
+819 820
+820 821
+819 821
+333 328
+333 330
+822 272
+271 822
+823 824
+823 792
+792 824
+409 469
+340 825
+826 825
+826 340
+827 828
+828 740
+740 827
+829 830
+831 829
+831 830
+832 833
+832 657
+657 833
+804 323
+834 835
+836 834
+836 835
+22 69
+22 493
+69 493
+209 837
+210 837
+33 9
+806 9
+806 33
+128 528
+527 128
+838 211
+838 839
+211 839
+840 767
+767 841
+841 840
+4 1
+24 714
+715 24
+842 843
+194 842
+843 194
+844 845
+316 845
+316 844
+108 846
+108 386
+846 386
+847 848
+525 847
+848 525
+849 850
+849 851
+850 851
+358 812
+812 244
+540 852
+852 619
+853 854
+853 535
+854 535
+446 855
+856 446
+855 856
+857 858
+858 810
+810 857
+250 666
+164 666
+859 184
+860 184
+859 860
+262 861
+861 862
+262 862
+863 741
+450 863
+450 741
+788 864
+864 865
+788 865
+74 866
+867 74
+866 867
+868 869
+291 868
+869 291
+808 89
+799 808
+799 89
+870 586
+586 605
+605 870
+752 413
+753 413
+855 30
+723 871
+262 723
+262 871
+872 873
+872 813
+873 813
+257 874
+874 875
+875 257
+876 656
+876 877
+656 877
+743 878
+743 879
+879 878
+351 880
+351 881
+881 880
+640 778
+594 640
+70 882
+882 152
+883 884
+423 883
+423 884
+800 308
+308 885
+885 800
+595 886
+595 575
+575 886
+725 365
+365 887
+725 887
+509 497
+4 497
+82 888
+656 888
+262 889
+889 702
+675 476
+675 779
+779 476
+520 654
+520 465
+654 465
+655 890
+890 891
+891 655
+258 892
+892 351
+667 698
+668 698
+593 238
+238 893
+893 593
+894 895
+894 896
+896 895
+897 430
+898 897
+898 430
+899 620
+345 899
+345 620
+900 795
+626 900
+795 626
+901 902
+902 903
+901 903
+904 905
+319 905
+904 319
+66 669
+66 906
+906 669
+907 717
+907 719
+908 909
+600 909
+600 908
+168 910
+910 219
+165 911
+166 911
+899 540
+189 280
+500 609
+912 897
+913 897
+912 913
+914 915
+915 916
+916 914
+917 918
+412 917
+412 918
+919 920
+920 552
+552 919
+55 424
+425 55
+921 922
+923 921
+922 923
+924 523
+613 523
+613 924
+214 573
+214 571
+750 925
+925 566
+926 319
+927 319
+927 926
+928 929
+928 886
+929 886
+922 817
+818 922
+795 617
+912 930
+355 912
+355 930
+931 388
+388 932
+932 931
+625 593
+238 625
+933 408
+409 933
+323 185
+934 598
+598 935
+935 934
+936 98
+937 936
+98 937
+860 500
+860 609
+938 939
+417 938
+939 417
+708 940
+940 760
+782 941
+579 782
+579 941
+266 942
+266 943
+942 943
+904 321
+694 321
+694 904
+461 944
+720 944
+945 191
+945 623
+623 191
+76 867
+192 638
+689 638
+689 192
+855 559
+559 30
+946 947
+948 947
+948 946
+850 949
+850 105
+105 949
+932 682
+950 932
+682 950
+858 951
+857 951
+952 71
+866 952
+866 71
+953 524
+524 44
+44 953
+810 587
+812 587
+954 955
+956 954
+956 955
+102 903
+102 957
+903 957
+958 959
+536 959
+536 958
+8 960
+960 9
+320 471
+442 495
+495 443
+961 962
+962 963
+963 961
+964 81
+964 80
+743 965
+965 879
+229 966
+908 966
+229 908
+737 474
+737 967
+967 474
+932 968
+388 968
+359 969
+452 969
+61 240
+240 63
+970 897
+913 970
+971 153
+155 971
+49 972
+973 49
+973 972
+974 975
+976 974
+976 975
+977 795
+977 900
+135 978
+979 135
+978 979
+980 101
+980 102
+13 187
+13 279
+971 981
+981 982
+982 971
+889 983
+984 889
+984 983
+953 45
+985 45
+953 985
+881 892
+892 986
+986 881
+842 733
+733 61
+842 61
+987 988
+989 988
+987 989
+220 557
+429 990
+429 991
+991 990
+992 114
+992 630
+114 630
+993 712
+713 993
+664 18
+994 72
+72 995
+994 995
+874 996
+874 962
+996 962
+997 32
+32 998
+997 998
+737 642
+474 642
+999 219
+1000 999
+1000 219
+512 74
+984 379
+379 789
+789 984
+597 163
+250 597
+1001 200
+788 200
+1001 788
+512 384
+384 74
+1002 1003
+1002 613
+613 1003
+405 721
+721 536
+965 1004
+879 1004
+77 101
+79 101
+1005 876
+1005 877
+632 1006
+1007 1006
+632 1007
+232 82
+1008 284
+284 1009
+1009 1008
+1010 562
+1010 1011
+562 1011
+722 1012
+723 1012
+1013 283
+284 1013
+1014 225
+1015 225
+1015 1014
+918 465
+520 918
+499 121
+121 213
+770 899
+899 747
+12 1016
+1016 604
+307 1017
+1017 306
+1018 229
+1018 316
+316 229
+895 822
+272 895
+814 663
+663 815
+438 1019
+1019 440
+623 1020
+1020 918
+918 623
+577 192
+519 192
+519 577
+573 1021
+214 1021
+1022 1023
+1023 436
+436 1022
+45 1024
+1024 985
+544 829
+544 831
+711 1025
+506 711
+506 1025
+126 313
+950 701
+950 700
+127 958
+958 459
+1020 624
+1026 1027
+1027 605
+1026 605
+1028 197
+198 1028
+1029 396
+398 1029
+1030 548
+148 1030
+548 148
+1031 818
+511 1031
+511 818
+614 550
+11 614
+751 1032
+177 751
+177 1032
+630 17
+17 642
+83 19
+251 666
+1016 1033
+1016 947
+947 1033
+580 677
+1034 677
+1034 580
+914 807
+916 807
+91 119
+639 688
+638 688
+778 426
+426 801
+583 270
+969 934
+598 969
+1035 345
+344 1035
+1036 475
+475 1037
+1037 1036
+576 1038
+1038 575
+1039 907
+719 1039
+895 776
+895 777
+643 300
+643 301
+110 491
+634 1040
+1040 1041
+1041 634
+865 56
+56 466
+466 865
+479 1042
+1042 86
+947 604
+1043 968
+1043 1044
+968 1044
+1045 603
+510 1045
+29 561
+29 560
+1046 800
+800 1047
+1046 1047
+1048 1049
+854 1048
+1049 854
+1050 19
+83 1050
+899 541
+576 519
+625 237
+829 543
+674 706
+706 226
+850 1051
+729 1051
+850 729
+1052 1053
+1052 1054
+1053 1054
+160 477
+477 159
+1055 1056
+235 1056
+235 1055
+134 455
+134 456
+1057 432
+431 1057
+854 404
+1049 404
+1058 878
+878 1059
+1058 1059
+1060 681
+681 1057
+1060 1057
+820 893
+893 1061
+1061 820
+603 1062
+1063 1062
+603 1063
+310 1064
+312 1064
+1065 202
+204 1065
+1066 279
+280 1066
+791 341
+791 342
+519 608
+519 606
+1067 1068
+772 1068
+1067 772
+413 917
+917 1069
+413 1069
+823 124
+888 876
+1070 888
+1070 876
+367 739
+739 180
+996 1006
+996 1007
+1071 210
+39 1071
+39 210
+186 860
+1072 1073
+921 1072
+1073 921
+1074 632
+632 764
+764 1074
+659 602
+603 659
+928 516
+517 928
+979 1075
+843 979
+1075 843
+1076 971
+981 1076
+1077 551
+487 551
+487 1077
+525 1078
+848 1078
+977 555
+977 1079
+1079 555
+1080 749
+1080 809
+1081 853
+1081 535
+1082 893
+1061 1082
+243 812
+207 533
+885 82
+682 931
+242 900
+242 1083
+1083 900
+130 542
+53 542
+798 646
+646 439
+439 798
+234 510
+4 234
+931 681
+1060 931
+660 1062
+1062 659
+1084 916
+828 916
+1084 828
+870 1027
+688 222
+556 688
+965 80
+232 965
+80 232
+1001 1085
+200 1085
+1086 1087
+1087 1088
+1086 1088
+977 242
+568 715
+73 995
+1089 349
+1089 360
+683 433
+431 683
+487 629
+629 1090
+1090 487
+847 44
+1091 847
+44 1091
+718 1001
+1001 719
+1014 319
+320 1014
+787 361
+787 558
+543 1092
+829 1092
+692 1093
+692 1094
+1093 1094
+1095 765
+875 1095
+765 875
+972 51
+248 1096
+1096 999
+999 248
+1097 727
+1097 241
+241 727
+1098 768
+768 946
+1098 946
+1099 1095
+1099 875
+736 1100
+1100 1101
+736 1101
+1102 1103
+189 1103
+1102 189
+1104 696
+1105 1104
+1105 696
+1106 940
+1106 708
+50 760
+51 760
+144 13
+14 144
+398 1107
+1107 397
+1108 1109
+1086 1108
+1109 1086
+1110 863
+1111 1110
+863 1111
+1112 336
+337 1112
+486 764
+486 765
+1113 381
+380 1113
+849 729
+721 959
+461 959
+1114 218
+322 1114
+393 457
+67 457
+1115 189
+1116 1115
+189 1116
+73 866
+867 73
+700 1044
+700 932
+932 1044
+818 1117
+511 1117
+213 1063
+1063 212
+416 85
+85 196
+837 312
+837 37
+1118 35
+1118 36
+722 1119
+1012 1119
+724 786
+694 758
+694 1120
+758 1120
+318 495
+443 318
+302 171
+171 304
+9 1121
+1121 7
+220 574
+582 116
+117 582
+485 1122
+1122 632
+632 485
+765 485
+485 875
+855 1082
+1082 559
+825 472
+217 1123
+292 1123
+457 392
+48 392
+1124 868
+1125 868
+1125 1124
+348 391
+348 389
+1126 689
+638 1126
+903 1127
+1127 102
+1128 186
+1128 500
+500 186
+1129 499
+1129 1130
+1130 499
+610 112
+112 663
+610 663
+1064 1131
+310 1131
+1065 1111
+562 1065
+1111 562
+304 495
+495 171
+986 363
+363 881
+419 1015
+419 471
+1015 471
+949 584
+1132 673
+673 734
+734 1132
+290 224
+223 290
+1133 943
+1133 942
+1057 987
+1057 480
+480 987
+957 980
+69 537
+793 164
+164 667
+1134 1135
+1136 1134
+1135 1136
+130 1137
+1137 40
+508 1138
+1138 545
+450 563
+563 434
+1139 13
+1139 279
+239 588
+1140 239
+1140 588
+1141 1004
+1004 1142
+1142 1141
+273 735
+735 673
+613 1143
+613 1144
+1143 1144
+981 699
+699 982
+1145 537
+1039 1145
+537 1039
+1146 1147
+1148 1146
+1147 1148
+406 472
+1025 406
+1025 472
+727 290
+127 1149
+1149 128
+1150 1151
+1151 894
+894 1150
+582 494
+555 585
+1152 49
+973 1152
+1153 3
+1153 781
+3 781
+1154 869
+291 1154
+1155 1076
+971 1155
+710 406
+710 1025
+1011 1156
+1156 1043
+1043 1011
+1153 1157
+1157 404
+404 1153
+1158 1159
+83 1158
+1159 83
+1160 326
+326 1005
+1005 1160
+1138 546
+952 1138
+952 546
+991 430
+991 898
+1146 775
+775 1148
+777 272
+466 1161
+788 466
+788 1161
+741 621
+621 863
+1037 902
+903 1037
+755 429
+755 428
+575 281
+281 1038
+1122 1006
+515 575
+515 929
+575 929
+1162 977
+795 1162
+728 225
+1015 728
+805 183
+805 181
+30 560
+1163 93
+93 1164
+1164 1163
+228 838
+1165 228
+1165 838
+52 542
+1115 739
+1115 367
+538 674
+674 303
+744 637
+636 744
+337 568
+568 399
+337 399
+626 529
+1166 529
+626 1166
+1167 1168
+468 1167
+1168 468
+1169 579
+941 1169
+739 1170
+1115 1170
+1171 454
+454 1172
+1172 1171
+764 996
+996 766
+368 433
+317 980
+317 957
+10 1016
+689 94
+689 95
+26 637
+1102 1066
+280 1102
+519 654
+518 654
+1173 783
+1173 1174
+783 1174
+1175 305
+371 1175
+1166 627
+621 841
+863 841
+706 509
+649 509
+1059 299
+1058 299
+889 771
+376 889
+771 376
+1039 165
+537 165
+1176 666
+1176 251
+681 431
+1173 808
+1174 808
+24 581
+24 1112
+1112 581
+1177 787
+1177 170
+170 787
+754 1178
+707 1178
+669 1022
+670 1022
+1172 456
+456 761
+761 1172
+453 1090
+453 487
+998 1084
+1179 1084
+1179 998
+956 1180
+445 956
+1180 445
+89 1174
+929 517
+891 987
+891 988
+936 57
+57 937
+539 1181
+1181 540
+584 286
+286 949
+516 595
+595 928
+1092 469
+469 543
+1105 401
+401 1182
+1182 1105
+733 240
+814 610
+218 554
+554 1114
+1095 833
+1095 832
+200 1183
+1085 1183
+452 598
+219 248
+146 219
+146 248
+861 328
+333 861
+993 960
+960 713
+1184 922
+817 1184
+1156 154
+395 1156
+505 208
+505 1071
+1071 208
+408 1185
+1185 933
+1186 896
+1186 894
+383 511
+512 383
+202 1110
+1110 1065
+738 1187
+1169 1187
+738 1169
+590 840
+767 590
+260 1188
+1188 258
+499 1052
+499 834
+834 1052
+1185 1189
+408 1189
+305 165
+452 250
+452 252
+757 285
+296 285
+757 296
+387 564
+1190 564
+1190 387
+152 374
+152 373
+874 1122
+485 874
+1191 650
+650 1192
+1192 1191
+1193 821
+821 163
+163 1193
+364 1194
+1194 366
+388 1060
+603 122
+122 1045
+999 1195
+1195 1196
+1196 999
+1116 66
+1116 906
+955 1180
+774 331
+331 990
+774 990
+1197 352
+1197 110
+352 110
+581 574
+1112 574
+1175 796
+796 438
+438 1175
+721 328
+721 861
+758 1009
+1009 757
+878 1198
+1058 1198
+902 699
+901 699
+634 1167
+635 1167
+1103 1088
+1102 1088
+1062 212
+490 1199
+565 1199
+713 33
+1200 688
+687 1200
+684 391
+391 28
+113 1201
+992 1201
+992 113
+785 736
+785 1100
+464 918
+108 387
+58 1090
+678 58
+678 1090
+1076 1036
+1036 1202
+1076 1202
+1175 1019
+1019 549
+1175 549
+982 700
+302 1177
+171 1177
+481 180
+1203 481
+180 1203
+71 1204
+72 1204
+884 1205
+423 1205
+708 911
+182 81
+182 964
+1189 1132
+1132 1185
+970 763
+1120 763
+970 1120
+1206 957
+317 1206
+1207 1133
+498 1133
+1207 498
+670 1023
+803 544
+1137 544
+1137 803
+1018 1208
+1209 1208
+1209 1018
+474 100
+100 475
+1147 354
+1147 356
+613 521
+1210 403
+1210 404
+193 611
+150 611
+652 962
+652 766
+962 766
+145 1170
+1035 620
+619 1035
+223 926
+225 926
+1035 1138
+344 1138
+158 162
+158 1193
+162 1193
+1211 333
+1211 334
+323 1212
+1212 185
+18 1076
+1076 664
+704 1125
+1125 869
+704 869
+570 553
+1173 570
+1173 553
+76 1213
+1213 278
+76 278
+479 451
+1050 479
+1050 451
+1214 421
+420 1214
+1187 490
+1215 848
+526 848
+526 1215
+942 265
+1111 450
+563 1111
+1216 988
+891 1216
+673 1217
+1217 1132
+1057 481
+1117 383
+478 68
+458 47
+835 1054
+835 1055
+1054 1055
+743 637
+138 1206
+315 1206
+138 315
+52 409
+409 542
+704 1218
+1218 1125
+354 986
+354 363
+857 1027
+870 857
+706 602
+602 509
+1218 785
+1100 1218
+1128 1219
+1219 501
+501 1128
+1110 794
+202 794
+1160 1220
+1160 1221
+1221 1220
+989 846
+988 846
+729 1222
+730 1222
+416 445
+416 1180
+216 218
+816 369
+370 816
+1032 174
+173 1032
+882 1223
+591 1223
+591 882
+1055 123
+1055 236
+236 123
+94 192
+754 192
+705 366
+538 705
+366 538
+399 1224
+401 1224
+1020 917
+1225 1020
+917 1225
+868 289
+1124 289
+728 241
+449 740
+827 449
+948 1098
+262 333
+979 842
+650 1220
+1220 1192
+46 447
+447 393
+221 338
+950 1226
+433 1226
+950 433
+1227 672
+672 1217
+1217 1227
+628 1002
+27 484
+633 484
+633 27
+1124 1228
+62 1228
+1124 62
+179 1038
+178 1038
+1178 276
+1178 275
+346 1229
+1229 344
+596 960
+187 954
+13 954
+348 915
+348 916
+1230 1096
+1230 248
+305 537
+1222 286
+907 911
+911 1039
+599 935
+599 856
+856 935
+1231 1232
+283 1232
+283 1231
+543 409
+85 197
+1206 1233
+957 1233
+697 275
+274 697
+1234 1235
+1234 322
+1235 322
+913 694
+913 1120
+593 820
+820 592
+1154 1236
+1237 1154
+1236 1237
+229 1208
+229 1238
+1238 1208
+1239 99
+148 1239
+99 148
+1131 514
+514 491
+491 1131
+1199 992
+1199 630
+838 660
+211 660
+759 583
+1240 583
+1240 759
+333 723
+723 335
+1241 1242
+190 1241
+190 1242
+1144 1243
+1243 1143
+418 329
+233 329
+1189 1244
+408 1244
+1013 761
+1008 1013
+1008 761
+846 175
+988 175
+254 369
+1245 254
+369 1245
+257 833
+877 833
+877 257
+721 403
+349 915
+1246 52
+364 1246
+364 52
+788 1247
+1247 200
+155 1248
+1248 1043
+1043 155
+1079 1249
+1079 948
+1249 948
+1196 1050
+1196 19
+608 576
+830 616
+831 616
+643 879
+643 1004
+774 686
+686 773
+948 604
+604 1249
+186 1212
+160 1250
+1250 865
+865 160
+1160 1152
+1152 1221
+441 1219
+1144 572
+1144 521
+572 521
+1024 268
+43 1024
+43 268
+214 1251
+1251 571
+1041 1167
+661 261
+1067 261
+1067 661
+1252 973
+709 1252
+973 709
+281 516
+492 516
+782 1153
+944 861
+721 944
+1253 353
+353 1254
+1253 1254
+635 1168
+244 1083
+1255 117
+115 1255
+1168 1164
+469 1168
+1164 469
+1055 1053
+1202 1037
+252 1256
+360 252
+1256 360
+1181 1257
+732 1181
+732 1257
+536 127
+1149 536
+223 1258
+1258 290
+939 1229
+1259 939
+1259 1229
+960 33
+271 843
+822 843
+1254 310
+1254 311
+1226 1206
+368 1206
+368 1226
+381 1158
+896 822
+1075 896
+822 1075
+1195 19
+425 956
+356 1146
+93 635
+1168 93
+1260 382
+382 1261
+1261 1260
+816 1245
+1166 530
+530 873
+873 1166
+479 84
+765 653
+765 652
+125 479
+492 479
+125 492
+655 607
+547 1250
+98 1250
+98 547
+665 1150
+665 1151
+1221 1262
+1221 50
+1262 50
+329 539
+1070 539
+1070 329
+609 872
+609 814
+872 814
+617 154
+417 1259
+383 417
+383 1259
+597 452
+1263 506
+1263 1025
+311 837
+1264 861
+1264 862
+44 423
+1265 4
+6 1265
+616 1266
+614 1266
+1267 992
+1267 1199
+937 1268
+1269 1268
+937 1269
+473 1036
+385 207
+726 1177
+68 159
+68 161
+1045 234
+835 1056
+160 1270
+1270 477
+586 1249
+585 1249
+989 388
+989 386
+963 601
+601 961
+664 1155
+449 741
+1271 445
+731 1271
+398 1023
+1107 1023
+873 154
+154 813
+1266 11
+1266 1026
+1026 11
+717 1192
+1192 1272
+1272 717
+289 1097
+727 289
+103 453
+487 103
+1273 840
+1273 590
+87 1028
+87 197
+704 1100
+21 1000
+1000 20
+383 816
+816 1117
+1274 341
+341 1223
+1274 1223
+792 198
+792 13
+13 198
+1190 388
+1255 1085
+1255 1183
+1275 1276
+536 1276
+1275 536
+1189 1040
+1041 1189
+1252 1277
+1257 1277
+1257 1252
+231 316
+272 672
+215 293
+322 215
+96 1104
+95 1104
+1015 421
+1087 1278
+1103 1278
+1087 1103
+195 271
+784 195
+271 784
+1274 537
+537 791
+1274 791
+883 269
+269 759
+883 759
+1258 1279
+1280 1258
+1280 1279
+841 794
+1110 841
+1249 555
+306 342
+1187 780
+780 941
+1187 941
+584 729
+849 584
+68 477
+342 1017
+622 1281
+624 1281
+448 731
+731 447
+1114 1235
+1017 1282
+1017 10
+1282 10
+662 773
+773 378
+662 378
+1283 830
+1283 616
+709 972
+609 859
+1284 1024
+1284 985
+282 380
+282 21
+380 21
+1285 1231
+1013 1231
+1285 1013
+1126 688
+318 671
+962 651
+245 809
+809 294
+245 294
+133 1232
+1286 133
+1286 1232
+1029 954
+398 954
+546 1263
+1263 952
+761 1285
+1094 1081
+1081 1093
+1234 1205
+1234 884
+974 1287
+1287 198
+198 974
+1244 1041
+1167 1244
+1069 1288
+917 1288
+269 583
+1260 952
+1261 952
+55 956
+930 986
+355 986
+436 669
+995 867
+867 716
+716 995
+376 983
+983 377
+191 918
+53 724
+725 53
+1289 65
+1289 189
+955 198
+954 198
+768 590
+588 768
+1237 227
+228 1237
+141 1242
+1242 372
+156 568
+156 399
+1279 1237
+1290 1279
+1290 1237
+1128 1212
+702 984
+532 712
+712 1281
+532 1281
+849 679
+679 851
+611 924
+846 173
+208 1254
+1254 209
+383 370
+436 398
+398 437
+781 5
+5 780
+1212 42
+362 1212
+1068 774
+331 1068
+564 1011
+1278 1108
+1278 1086
+71 1263
+1025 71
+1283 440
+615 1283
+440 615
+635 91
+1094 695
+691 1094
+1008 1120
+1120 1009
+460 1264
+1264 461
+47 161
+481 178
+482 178
+1241 622
+1241 623
+1233 903
+901 1233
+900 529
+769 1162
+1162 794
+794 769
+424 936
+1250 936
+1250 424
+1291 639
+556 1291
+639 556
+1242 192
+998 916
+1064 513
+490 1267
+1198 832
+657 1198
+1216 1292
+1292 414
+414 1216
+1028 976
+974 1028
+503 646
+503 645
+1178 748
+1007 764
+661 773
+1051 949
+949 1222
+1051 1222
+90 1174
+523 151
+151 522
+488 1047
+1046 488
+415 1180
+648 802
+589 648
+802 589
+1288 1293
+1069 1293
+1294 520
+520 191
+191 1294
+235 1048
+1157 1048
+235 1157
+528 756
+686 912
+930 686
+88 483
+1058 800
+1047 1058
+968 1190
+140 742
+742 670
+753 1032
+174 753
+1163 92
+1163 503
+395 1011
+521 402
+1295 51
+406 1295
+1200 221
+222 1200
+854 405
+811 358
+811 803
+803 358
+1281 31
+31 624
+195 1228
+1228 784
+1220 326
+798 438
+422 268
+927 267
+319 267
+1296 1004
+965 1296
+498 1129
+824 124
+589 561
+919 553
+492 126
+1131 352
+1200 399
+1200 338
+338 399
+1284 1091
+1284 847
+1128 362
+809 596
+596 143
+1083 324
+763 1008
+1081 1275
+1275 535
+807 998
+1063 121
+122 1063
+907 1272
+1106 1272
+907 1106
+389 347
+347 969
+389 969
+1230 282
+1201 318
+777 1227
+672 777
+1297 122
+1297 1045
+167 340
+57 424
+315 1018
+1298 1104
+1298 1105
+105 1240
+888 418
+289 62
+380 1050
+1096 380
+1050 1096
+665 356
+1150 356
+705 1236
+705 1154
+889 871
+385 1240
+485 27
+104 385
+1299 246
+1299 247
+573 149
+154 627
+84 801
+191 519
+1300 1196
+1300 1301
+1301 1196
+65 435
+436 65
+105 1077
+103 1077
+1171 430
+1171 897
+714 152
+1302 1252
+1302 709
+845 1210
+845 404
+1270 864
+865 1270
+647 439
+440 647
+743 653
+743 765
+456 1285
+1129 943
+1133 1129
+1253 310
+265 1165
+1165 942
+686 991
+912 991
+138 327
+138 650
+476 201
+476 199
+1245 817
+978 1075
+927 223
+1271 447
+1141 643
+1296 1142
+1080 274
+1080 294
+1056 1303
+1303 235
+1145 115
+192 594
+883 1024
+1024 269
+621 685
+826 680
+826 994
+680 994
+1304 1256
+1256 1089
+1304 1089
+1132 1040
+331 755
+592 882
+403 316
+721 316
+610 671
+671 112
+651 1074
+764 651
+950 683
+1053 499
+1221 49
+437 65
+628 292
+292 1002
+1299 1176
+668 1299
+668 1176
+1011 1190
+1043 1190
+527 455
+1305 527
+455 1305
+121 1053
+1251 1243
+1123 1251
+1123 1243
+1302 732
+506 1302
+1092 1164
+1027 1266
+326 256
+687 1306
+95 1306
+95 687
+862 261
+1014 926
+1057 1203
+432 1203
+1307 75
+1307 1040
+75 1040
+801 492
+492 84
+826 167
+526 1078
+1183 582
+1255 582
+277 1213
+1213 634
+851 105
+935 390
+856 390
+291 1258
+1053 123
+529 1083
+1277 1160
+1160 539
+539 1277
+921 1184
+415 955
+973 1277
+1198 1095
+473 18
+1036 18
+912 898
+1026 12
+228 1290
+838 226
+839 1207
+1207 211
+967 100
+1308 1092
+1092 830
+830 1308
+828 1179
+1247 1270
+1247 199
+1270 199
+368 138
+1127 475
+1037 1127
+1161 865
+847 524
+377 1229
+939 377
+940 50
+1262 940
+796 680
+680 1175
+504 1254
+208 504
+819 592
+773 259
+401 1306
+401 687
+1254 837
+1191 717
+774 991
+1121 1089
+914 1089
+914 1121
+629 488
+1112 715
+715 337
+463 427
+1276 1149
+1276 1135
+1135 1149
+128 133
+128 1286
+883 422
+921 1148
+1148 923
+1309 1215
+1309 847
+1215 847
+1202 981
+1276 1134
+1046 483
+324 1310
+325 1310
+1282 1033
+1282 1016
+1285 132
+132 1311
+1311 1285
+1010 204
+395 1010
+466 411
+411 140
+702 1312
+1312 984
+914 806
+241 63
+580 1291
+1291 677
+705 1194
+494 22
+1029 55
+55 954
+737 79
+79 967
+1214 978
+1214 136
+136 978
+1191 139
+718 1191
+400 1200
+55 396
+1059 300
+879 1059
+300 879
+935 389
+893 648
+755 990
+784 273
+859 872
+1047 299
+15 1139
+804 1137
+61 194
+719 1145
+1145 1001
+234 1297
+455 133
+522 402
+428 1171
+712 746
+1313 1253
+1313 353
+874 1006
+1213 75
+67 458
+210 37
+531 141
+1141 1173
+643 1173
+1151 1186
+296 1136
+314 1136
+508 619
+1138 619
+690 836
+690 1093
+1093 836
+1139 1066
+1170 1139
+1170 1066
+485 1313
+27 1313
+400 687
+120 503
+1081 1303
+1303 1093
+1056 1093
+815 153
+1155 815
+153 1155
+489 1187
+1224 156
+156 162
+1224 162
+54 725
+365 54
+669 138
+906 138
+1048 853
+605 1249
+1309 526
+953 526
+953 1309
+925 567
+330 539
+380 1230
+1230 1113
+706 659
+201 1183
+576 482
+1038 482
+1017 625
+195 843
+1298 401
+1306 1298
+582 1034
+139 650
+728 136
+1015 136
+366 302
+365 302
+651 486
+26 651
+1314 528
+454 1314
+1290 1280
+79 100
+440 550
+615 550
+198 415
+840 621
+733 979
+1005 256
+256 877
+1211 539
+722 1211
+162 793
+1294 918
+1121 1304
+7 1304
+114 17
+1216 175
+1271 416
+1225 624
+698 274
+1072 354
+363 1072
+619 507
+883 1235
+1284 1235
+1284 883
+89 1046
+1297 236
+236 234
+192 1178
+257 1099
+833 1099
+367 1116
+138 367
+138 1116
+639 675
+676 639
+308 182
+648 1315
+1315 802
+881 253
+253 880
+1316 1130
+1316 690
+690 1130
+551 678
+1277 1181
+1317 298
+297 1317
+951 616
+1266 951
+1318 978
+978 1186
+1318 1186
+654 890
+1222 287
+1264 944
+744 908
+744 966
+1105 793
+149 1021
+1028 124
+1028 125
+1319 844
+316 1319
+530 872
+618 441
+442 618
+316 328
+316 233
+997 31
+1171 762
+897 762
+833 656
+567 77
+297 757
+1243 1003
+1003 1143
+1179 752
+751 1179
+677 201
+476 677
+993 746
+143 993
+669 64
+420 978
+1089 915
+839 1165
+942 839
+963 600
+1317 1275
+1276 1317
+846 106
+150 612
+770 541
+751 827
+449 751
+1316 694
+904 1316
+994 796
+1080 276
+461 958
+1109 1088
+887 726
+910 169
+175 414
+289 63
+1097 63
+356 776
+776 1146
+1283 647
+1129 904
+904 1130
+1001 115
+756 428
+665 1186
+811 858
+180 432
+25 1074
+983 1320
+1320 377
+335 1012
+7 247
+1299 7
+247 8
+1321 354
+1072 1321
+962 1074
+961 1074
+677 639
+586 810
+857 586
+1115 1278
+1108 1115
+284 757
+1231 1311
+1232 1311
+1315 1082
+893 1315
+572 1243
+95 1298
+695 1317
+1317 1094
+129 1322
+129 1068
+1322 1068
+1157 3
+691 1316
+637 653
+653 26
+190 945
+821 1061
+1061 597
+597 821
+497 1201
+1201 496
+177 449
+434 177
+201 1034
+1091 322
+215 1091
+975 1323
+975 824
+824 1323
+1152 1277
+404 1319
+844 404
+662 1312
+662 379
+1312 379
+865 1324
+1324 56
+665 641
+641 470
+470 665
+972 1295
+1324 547
+1324 1250
+1319 579
+782 1319
+1140 946
+1140 947
+1252 732
+130 544
+1271 393
+462 1271
+1240 104
+710 972
+1311 133
+123 1297
+1251 217
+1159 1050
+451 1159
+472 1204
+1204 825
+425 447
+588 648
+327 315
+608 482
+55 397
+411 55
+550 1019
+690 834
+40 804
+1313 633
+632 1313
+612 176
+176 628
+192 372
+470 1186
+633 353
+1123 1003
+321 913
+321 912
+538 227
+554 1091
+491 1197
+1131 1197
+993 596
+1295 710
+1239 57
+57 148
+1195 21
+380 1195
+288 1222
+1325 288
+1222 1325
+1179 1069
+1069 752
+1094 1275
+84 463
+1309 1284
+985 1309
+772 661
+1326 179
+282 1326
+1070 418
+762 970
+797 118
+120 797
+411 56
+350 790
+351 790
+964 181
+995 797
+797 994
+643 783
+1123 1002
+64 1327
+669 1327
+984 1320
+1048 1303
+853 1303
+836 1056
+1290 1165
+1290 265
+1261 384
+74 1261
+1183 1034
+945 1241
+923 775
+775 1227
+923 1227
+976 124
+1264 127
+353 504
+1138 1260
+1304 251
+1304 1176
+281 515
+852 507
+592 373
+819 373
+248 313
+786 361
+1136 1286
+1286 296
+1194 703
+453 533
+1289 437
+885 657
+1198 885
+1328 14
+145 14
+1328 145
+125 87
+1227 1031
+923 1031
+919 1142
+920 1142
+344 1260
+1214 1015
+966 232
+230 966
+230 232
+146 313
+539 1005
+1005 1070
+1031 1217
+1217 1307
+1031 1307
+1064 514
+1323 792
+1287 792
+1287 1323
+98 1269
+1269 99
+776 894
+732 852
+966 743
+966 745
+1090 205
+1185 734
+734 1329
+1329 1185
+1274 69
+70 1274
+871 771
+815 664
+859 357
+530 859
+607 480
+607 987
+1173 919
+437 188
+398 188
+206 849
+835 1052
+1256 251
+920 1296
+1021 176
+214 176
+927 265
+622 1242
+382 1259
+220 1291
+220 580
+1162 1079
+1162 1098
+1098 1079
+768 1140
+2 1157
+302 887
+473 642
+790 379
+1164 1308
+1163 1308
+285 1286
+1096 1195
+72 825
+1242 531
+980 77
+77 316
+980 316
+963 1238
+1208 963
+1101 1329
+1101 1246
+1329 1246
+849 205
+1194 1101
+703 1101
+1330 414
+1330 1292
+890 1216
+890 1292
+1073 363
+254 1073
+1208 327
+1208 962
+962 327
+373 882
+1196 1042
+1300 1042
+563 264
+557 1291
+625 1282
+547 97
+1248 700
+700 1043
+982 1248
+801 595
+933 52
+1172 762
+1322 127
+559 1315
+1228 785
+646 120
+1273 589
+943 904
+1278 189
+949 288
+465 1292
+1292 654
+1194 1246
+179 739
+169 179
+1226 701
+1328 15
+1328 1139
+975 124
+404 782
+1255 1001
+1012 334
+220 581
+999 1301
+1000 1301
+594 638
+1287 975
+1286 283
+160 424
+416 462
+1060 987
+707 275
+916 684
+828 684
+1321 1147
+1148 1321
+701 1233
+1226 1233
+1158 1113
+1118 253
+1061 599
+1228 1218
+874 255
+327 874
+1293 1179
+723 770
+871 770
+232 743
+1310 357
+1030 99
+97 1030
+878 1095
+600 636
+636 909
+964 965
+964 1296
+369 36
+1330 465
+241 136
+839 1133
+1204 1025
+892 1188
+28 390
+1310 1083
+343 1223
+813 153
+1154 1279
+347 359
+852 1181
+618 172
+1104 697
+896 978
+1134 298
+1317 1134
+375 158
+1193 375
+703 1100
+140 410
+1196 479
+1273 561
+840 561
+22 581
+1284 554
+412 1330
+1219 558
+1219 618
+21 910
+1000 910
+1314 428
+1314 1171
+389 934
+1102 1170
+133 1305
+118 716
+995 118
+1329 52
+212 660
+29 840
+462 85
+981 902
+1033 1140
+1219 362
+1211 1119
+334 1119
+925 77
+322 44
+1265 1201
+1267 1265
+1267 1201
+233 328
+511 1307
+1329 736
+44 1234
+1234 423
+1280 265
+927 1280
+390 446
+1324 147
+344 382
+1229 382
+1121 806
+22 582
+529 1310
+819 375
+1193 819
+804 41
+299 488
+1239 1268
+1269 1239
+1049 1157
+77 750
+426 779
+622 532
+470 1318
+1312 263
+1302 711
+295 668
+698 295
+578 77
+869 705
+964 552
+1102 1108
+1108 1170
+1220 1262
+1262 1192
+678 851
+1149 1286
+1286 1135
+1301 20
+1301 84
+740 684
+599 855
+172 495
+1236 538
+227 1236
+716 76
+695 297
+1065 1010
+477 199
+505 111
+998 1288
+998 1293
+793 1182
+1177 887
+808 693
+1325 287
+943 905
+1211 330
+750 578
+1178 372
+1202 902
+428 528
+10 307
+790 1118
+930 260
+1188 930
+316 1210
+905 267
+905 266
+54 364
+1288 1225
+924 193
+645 1163
+1308 645
+548 97
+971 1248
+131 724
+786 131
+473 17
+864 1247
+668 246
+866 1261
+1321 921
+1238 600
+1272 1262
+940 1272
+516 801
+742 1107
+1244 468
+107 177
+1285 134
+880 1118
+188 954
+938 34
+858 831
+616 858
+1212 41
+1235 884
+407 1244
+1073 1245
+794 767
+986 1188
+911 1106
+1082 599
+23 714
+901 701
+523 193
+1169 750
+723 541
+1223 70
+552 1296
+5 489
+658 788
+885 1058
+1179 827
+42 786
+1279 291
+1015 320
+292 215
+111 1071
+744 909
+86 463
+463 1042
+1288 997
+100 1127
+41 323
+878 765
+951 1027
+155 1156
+624 997
+624 1288
+86 462
+789 1320
+1320 35
+578 1169
+42 131
+1209 327
+496 318
+628 214
+1322 1067
+834 1130
+294 246
+1176 7
+922 1031
+315 1209
+299 629
+215 628
+1320 938
+35 938
+627 873
+748 372
+143 748
+910 282
+1060 989
+776 1150
+1142 1173
+497 1265
+169 282
+223 1280
+831 811
+608 480
+780 489
+933 1329
+72 826
+1224 1182
+162 1182
+463 1300
+27 1253
+554 1235
+1253 484
+1326 169
+88 1046
+1098 769
+1327 436
+1300 84
+1040 1213
+1113 1159
+25 961
+1132 1307
+1282 237
+239 1282
+420 1318
+1067 127
+862 1067
+127 862
+426 476
+851 1077
+551 851
+1023 742
+645 1283
+133 527
+1308 1283
+172 442
+65 1327
+1118 351
+348 684
+314 1134
+120 798
+145 1139
+246 295
+1239 937
+1238 908
+1109 1102
+1033 239
+1245 1184
+1243 571
+6 1267
+1218 1124
+188 1289
+1320 939
+1184 1073
+607 891
+622 531
+811 544
+1159 1230
+1159 1096
+1 2 3
+4 5 6
+7 8 9
+10 11 12
+13 14 15
+16 17 18
+19 20 21
+22 23 24
+25 26 27
+28 29 30
+31 32 33
+34 35 36
+37 38 39
+40 41 42
+43 44 45
+46 47 48
+49 50 51
+52 53 54
+55 56 57
+58 59 60
+61 62 63
+64 65 66
+67 68 69
+70 71 72
+73 74 75
+76 77 78
+79 80 81
+82 83 84
+85 86 87
+88 89 90
+91 92 93
+94 95 96
+97 98 99
+100 101 102
+103 104 105
+106 107 108
+109 110 111
+112 113 114
+115 116 117
+118 119 120
+121 122 123
+124 125 126
+127 128 129
+130 131 132
+133 134 135
+136 137 138
+139 140 141
+142 143 144
+145 146 147
+148 149 150
+151 152 153
+154 155 156
+72 157 158
+159 160 161
+162 163 164
+165 166 167
+168 169 170
+171 172 173
+174 175 176
+177 178 179
+180 181 182
+154 183 184
+185 186 187
+188 189 190
+191 192 193
+194 195 196
+197 198 199
+200 201 202
+203 204 156
+205 206 207
+208 209 210
+211 212 213
+214 215 216
+217 218 219
+220 221 222
+223 224 225
+226 227 228
+229 230 231
+232 233 174
+234 235 236
+237 238 239
+240 241 242
+243 244 245
+246 247 248
+249 1 250
+251 252 253
+254 255 256
+257 258 259
+260 261 262
+263 264 265
+266 267 268
+269 270 271
+272 273 274
+275 276 277
+278 279 280
+281 282 283
+284 285 110
+286 287 288
+289 290 291
+292 293 294
+295 296 297
+298 299 300
+301 302 303
+304 305 306
+307 308 309
+310 311 312
+313 314 315
+316 317 318
+319 320 321
+322 323 324
+325 326 327
+328 329 330
+331 332 333
+334 335 336
+337 338 339
+340 341 342
+323 343 344
+345 346 347
+348 349 115
+350 351 352
+353 354 355
+356 357 358
+359 360 361
+362 363 364
+365 366 367
+368 369 370
+371 372 373
+374 375 376
+377 378 379
+380 381 382
+383 384 385
+386 387 388
+389 390 391
+392 393 394
+395 396 397
+398 399 400
+401 402 403
+404 405 406
+407 408 273
+409 410 411
+268 412 304
+413 414 415
+416 194 396
+417 58 418
+419 420 421
+422 423 332
+424 146 425
+426 427 428
+429 430 431
+432 433 434
+435 436 437
+438 439 440
+441 290 442
+443 444 445
+446 447 448
+449 450 451
+452 453 454
+455 456 457
+458 459 460
+461 462 155
+463 464 465
+466 467 468
+469 470 471
+472 473 474
+475 476 305
+477 478 479
+480 481 482
+483 421 484
+485 486 487
+488 489 490
+491 492 493
+494 495 496
+497 498 499
+500 501 502
+503 504 505
+506 507 284
+508 509 510
+511 512 513
+514 515 516
+517 518 519
+29 520 521
+522 523 524
+525 526 527
+87 528 529
+530 531 401
+532 533 219
+534 535 536
+537 538 539
+540 541 542
+543 544 545
+546 547 548
+143 549 550
+551 505 552
+553 554 555
+556 557 558
+375 559 560
+561 562 563
+564 565 566
+567 89 568
+569 570 571
+572 573 574
+575 576 577
+540 578 579
+580 581 582
+583 584 585
+586 587 588
+589 39 590
+591 592 412
+593 594 595
+596 597 598
+599 600 601
+602 599 224
+603 604 605
+606 607 608
+609 610 611
+612 613 614
+615 616 617
+618 619 620
+621 622 623
+624 428 625
+626 627 628
+629 630 631
+632 633 67
+634 635 636
+637 638 639
+640 641 642
+643 644 645
+646 647 648
+649 650 651
+652 653 654
+655 656 657
+658 659 328
+660 661 662
+663 664 665
+666 667 668
+669 670 671
+672 673 674
+675 676 677
+678 679 680
+681 682 227
+683 260 684
+685 686 687
+405 688 689
+690 691 692
+693 694 695
+696 697 698
+699 624 700
+701 702 703
+704 365 705
+706 707 708
+709 710 711
+712 713 714
+715 716 717
+718 719 720
+721 722 723
+724 725 726
+727 728 729
+730 731 732
+733 734 735
+736 737 738
+739 740 741
+742 743 744
+745 746 747
+748 749 750
+751 752 753
+754 755 756
+757 758 759
+760 761 762
+763 764 765
+169 766 767
+768 769 770
+771 772 773
+774 775 28
+776 777 778
+779 780 544
+572 677 60
+378 781 782
+783 784 785
+786 787 759
+788 789 418
+790 414 791
+792 793 794
+795 796 797
+798 799 800
+801 802 478
+803 804 805
+806 807 808
+809 810 811
+794 812 813
+707 814 815
+816 59 817
+524 818 819
+614 820 666
+117 821 822
+823 824 825
+826 256 827
+828 829 597
+830 831 360
+832 833 834
+835 836 837
+838 839 840
+841 549 842
+843 844 845
+846 516 847
+848 849 850
+851 852 853
+854 855 856
+857 858 859
+860 861 862
+863 441 864
+865 866 867
+868 869 870
+871 872 873
+874 863 875
+876 240 877
+878 879 880
+881 882 883
+884 885 886
+887 888 889
+890 891 892
+893 894 279
+895 135 896
+897 898 899
+900 901 902
+903 904 336
+905 906 683
+907 908 909
+910 911 912
+913 914 915
+916 917 918
+919 283 920
+921 922 923
+924 925 926
+927 928 929
+930 931 113
+932 933 934
+935 936 374
+937 938 939
+940 46 941
+942 943 944
+945 946 947
+3 948 949
+950 951 952
+953 954 955
+329 956 927
+957 958 959
+960 961 962
+963 964 965
+966 967 968
+969 970 971
+972 973 974
+975 612 976
+977 141 978
+979 980 981
+923 982 983
+984 278 985
+986 987 988
+989 176 990
+991 992 993
+994 995 472
+996 997 998
+999 647 1000
+1001 1002 1003
+1004 1005 1006
+1007 1008 1009
+1010 1011 1012
+1013 1014 1015
+1016 1017 1018
+1019 1020 84
+1021 1022 1023
+632 1024 1025
+1026 1027 1028
+1029 1030 936
+1031 782 1032
+1033 1034 1035
+1036 1037 1038
+1039 1040 1041
+1042 1043 1044
+1045 1046 1047
+285 1048 1049
+1050 1051 1052
+1053 1054 1055
+1056 1057 1058
+1059 1060 573
+1061 1062 1063
+147 1064 1000
+1065 1066 1067
+1068 1069 1070
+1071 577 389
+1072 1073 1074
+1075 1076 331
+341 1077 1078
+1079 1080 1081
+1082 65 1083
+1084 453 1085
+1086 1087 1088
+1089 1090 1091
+1092 903 1093
+1094 1095 1096
+1097 1098 1099
+691 1100 1101
+1102 1103 1104
+1105 1106 1107
+1108 1109 1110
+1111 1112 1113
+1114 702 1115
+1116 1117 1118
+1119 1120 1121
+1122 1123 1124
+1125 1126 1127
+1128 1129 1130
+1131 1132 363
+1133 1134 292
+1135 1136 1137
+554 471 1138
+1139 1140 1141
+1142 1143 1144
+1145 1146 1147
+1148 1149 1150
+1107 1151 356
+1152 1153 1154
+1155 1156 1157
+1158 222 1159
+1160 1161 1162
+1163 1164 640
+1165 1166 1167
+1168 1169 1170
+1171 949 4
+1172 945 1173
+1174 1175 1176
+1177 1178 1179
+1180 1181 1182
+1183 1184 1185
+1186 1187 1188
+1189 398 1190
+1191 771 1192
+1193 1194 1195
+1196 1197 1198
+1199 1200 1201
+767 1202 1203
+1204 1205 1206
+1207 1208 1209
+1210 1211 1212
+1213 1214 1215
+1216 1217 1218
+1219 1220 1221
+1222 1223 1224
+1225 1226 1227
+1228 1012 1229
+521 1196 1230
+1231 1232 1233
+1234 1235 1236
+1237 1238 1239
+1240 1241 1242
+1243 1244 1245
+1246 1247 1248
+1099 1249 1250
+157 1251 1252
+1253 1254 1255
+1256 1257 1258
+1259 1260 1261
+1262 1263 1264
+1265 617 1266
+1267 1268 840
+1269 919 1270
+1271 1272 1273
+1274 1275 1276
+1277 1278 1279
+387 1280 1281
+1282 862 1283
+1284 1285 1286
+1287 1288 1289
+1290 1291 1292
+1293 1294 1295
+1296 1297 1298
+1299 1300 1301
+1302 1303 1304
+1305 1306 1307
+954 1308 1309
+1310 1311 1312
+1313 233 1314
+1315 1316 171
+1317 1293 772
+302 1318 198
+1319 605 754
+1320 1321 1322
+1323 1324 1325
+1326 1327 1328
+1329 1330 1331
+1332 494 1333
+1334 1335 1336
+1337 1338 1339
+1340 1341 708
+1008 1342 1343
+1344 1345 1346
+1347 1348 1349
+1350 1351 1126
+1087 1352 763
+1353 1354 1355
+1356 1357 1358
+1359 1360 1284
+1361 1362 470
+357 1363 416
+1364 1365 1366
+1367 1368 1369
+1370 1319 1371
+1372 1373 1374
+1375 1376 1029
+1377 1378 1379
+1380 1381 1382
+1383 1384 1385
+1386 1387 959
+1388 1389 1390
+1217 78 1391
+1392 1393 1394
+1395 1396 1230
+1397 1398 1399
+1400 1401 1402
+1403 1404 1405
+1406 1199 1407
+1408 1409 1410
+1411 1412 1413
+1414 1121 1415
+1416 1417 1418
+1419 1420 1421
+1422 1423 1424
+1425 9 1426
+1427 810 351
+515 1428 1429
+1430 1431 1432
+1433 1434 82
+1435 1436 1244
+1437 1438 1439
+1440 1441 1442
+1443 1357 1444
+1445 531 1446
+1447 1448 62
+1449 1450 1321
+160 1451 1452
+1453 1454 1455
+1456 1457 1458
+1296 1459 1460
+698 921 793
+1461 1462 1463
+104 1464 1465
+303 1466 1467
+1468 1469 1470
+1471 1472 1473
+1474 1475 1476
+1477 1478 1479
+1480 1481 1482
+1483 1484 1485
+236 687 1486
+1487 1488 1489
+1490 1491 1492
+1493 1494 942
+855 18 1495
+1496 1497 1498
+1499 1500 1501
+1502 1503 1504
+1505 1440 1506
+1507 1508 1509
+1510 620 76
+1511 1512 1513
+988 1009 696
+766 1514 1515
+1516 1517 1518
+1519 1510 1520
+1521 1522 1523
+1524 654 1525
+1436 1526 1527
+1528 1529 80
+1241 1530 1531
+1532 1533 1534
+1535 246 485
+1536 1537 1538
+1539 1540 1541
+1542 1543 961
+1544 307 1545
+1546 1547 1548
+1549 1275 1550
+601 1551 1552
+1553 1042 1554
+1555 749 1556
+333 1557 1558
+1559 1560 1561
+1562 1133 1563
+1564 1565 1123
+1566 513 1567
+1568 1569 1570
+1571 1572 1573
+1340 1574 1575
+1576 1577 1578
+1475 1579 1580
+1146 1581 1582
+1583 1584 1585
+129 1586 342
+918 1587 1588
+1589 578 1590
+778 1591 1568
+1592 1593 1594
+1595 1596 209
+456 1597 1598
+1599 1600 1601
+1602 1603 1604
+673 1605 1606
+1607 1608 1609
+1610 813 1611
+85 1612 19
+1202 269 1613
+1614 1615 1616
+1617 1618 1619
+1620 1325 1621
+1622 94 606
+1623 1624 806
+1625 1098 1626
+1627 874 722
+1628 1629 1364
+1630 380 1631
+1632 1633 1634
+1635 1636 712
+1309 1637 1638
+1639 1640 1051
+1641 1642 326
+1643 590 930
+1644 1645 1646
+1647 1648 1649
+1650 568 1651
+1652 1615 1556
+1653 1654 1655
+747 1656 1657
+1658 1659 692
+1660 1661 1662
+1663 1664 1665
+1666 1612 1667
+662 1668 1317
+714 1573 1669
+1670 254 1360
+1671 665 1581
+1672 877 1673
+1674 1675 1676
+1677 1678 1679
+165 1680 1681
+1682 1683 1684
+535 1685 1686
+503 1687 1688
+1665 1689 1690
+1691 1692 1693
+1694 1695 1696
+1697 1698 1699
+1700 1701 1702
+1703 339 1704
+1705 216 1706
+1707 1708 301
+1709 1710 377
+753 1711 1712
+1713 1714 1715
+1716 1717 1718
+1078 1136 1719
+1720 1721 1722
+413 1723 1724
+1725 1726 1533
+1727 1728 1729
+196 1730 1205
+1731 1732 1733
+1734 1735 1736
+1737 1738 746
+627 1739 1740
+1741 1742 1743
+1744 1745 1468
+1746 1747 1748
+1053 808 1249
+1185 1749 1750
+1751 1752 1753
+1116 1754 1755
+1756 1757 1194
+1698 1758 1759
+1760 1190 261
+1761 851 650
+1257 1019 1762
+1403 1763 1358
+1764 1765 1766
+1767 1768 133
+1769 1770 1771
+1772 1773 616
+1774 1694 1775
+845 1776 1777
+1778 1779 1780
+1593 1781 1227
+685 1782 1783
+1784 1785 1786
+1787 1788 1516
+1789 1790 1791
+1764 1460 1792
+947 699 1793
+75 1794 1497
+1795 1796 403
+1797 504 1798
+1799 1800 1801
+1802 1803 1804
+1805 955 1806
+1807 1808 350
+1809 1810 688
+1811 1671 1812
+1813 1814 1815
+1816 1817 1818
+50 1453 1819
+1820 1821 1822
+1823 1824 1825
+1826 1827 1828
+1829 1830 1817
+1831 1832 1833
+1834 1835 1836
+1837 1838 1839
+1840 1375 1841
+1842 51 1843
+13 1844 1845
+457 1846 1847
+1848 1849 1850
+1851 1852 1853
+1854 1855 371
+1856 1036 1857
+1858 1859 437
+1676 1860 1186
+1861 1862 958
+353 1863 1864
+633 1865 1866
+1867 1868 1869
+1870 1218 1871
+1872 1873 1874
+1875 1604 1876
+225 1877 1878
+1879 1880 481
+1881 1882 1103
+1883 1884 35
+1542 1885 1886
+1887 965 1065
+1888 1889 1890
+1429 1891 1892
+1893 330 1894
+1895 8 1896
+1897 710 234
+1898 1899 119
+1900 1901 1902
+1903 1818 1904
+1395 1905 1906
+560 1907 1139
+1908 317 1909
+537 1910 1911
+1912 1913 1914
+1915 1916 448
+1917 1393 1918
+1919 1920 1419
+1921 1922 1923
+1924 1925 1926
+1927 1928 1929
+1703 1930 1931
+1874 1443 1655
+1932 1933 1934
+1894 1935 1936
+1479 1937 1938
+1939 1940 1941
+723 1942 1402
+1943 1944 1945
+1946 237 1947
+1382 1948 1949
+1950 1951 1952
+1420 1465 1953
+656 1954 1157
+1955 1956 1079
+1957 1958 1959
+1960 895 1961
+820 1962 1963
+526 1964 1965
+1966 1967 1467
+1968 1969 1970
+1971 1972 1973
+872 1974 1975
+1976 1977 1978
+1469 1979 1980
+1981 1982 1983
+1984 1985 1986
+1281 1477 1247
+1987 1988 1989
+1990 966 1946
+1991 1992 130
+1993 1994 1995
+1996 1898 595
+726 905 1997
+1998 1999 1454
+2000 2001 2002
+2003 1221 2004
+2005 1744 2006
+2007 2008 1988
+2009 2010 2011
+2012 2013 2014
+2015 2016 2017
+2018 2019 2020
+2021 2022 2023
+2024 1292 2025
+1985 2026 2027
+1640 1563 2028
+667 1963 2021
+2029 2030 2031
+2032 2033 1210
+2034 2035 1300
+2036 2037 500
+2038 1636 2039
+1901 2040 1532
+2041 2042 2043
+2044 1459 2045
+2046 2047 1547
+2048 2049 193
+2050 1659 30
+2051 2052 2053
+2054 2055 2056
+2057 52 1768
+2058 1723 2059
+659 2060 2061
+2062 804 2063
+2064 2065 2066
+2067 2068 2069
+2070 2071 2072
+2073 2074 1379
+2075 2058 2076
+2077 2078 2079
+1037 2080 2081
+2082 790 552
+1953 2083 2084
+2085 12 1555
+97 2086 2087
+2088 25 805
+2089 2090 1708
+2091 629 2092
+2093 2094 2095
+2096 2097 422
+2069 2098 784
+2099 2100 2033
+928 2101 2102
+2103 2104 1693
+2105 2106 2107
+1535 83 1786
+1983 2108 2109
+2110 1613 2111
+1798 2112 889
+2094 2113 2114
+2115 2116 2117
+2118 2119 2120
+2121 1013 2122
+2123 865 2124
+2125 2126 2127
+2128 2129 1801
+2130 2131 2132
+2133 2134 2135
+1222 2136 2114
+2042 628 2137
+2138 2139 1483
+2140 2141 1368
+2142 660 2143
+2144 2145 1942
+2146 2147 1739
+2148 2149 1811
+2150 2151 2152
+1481 2153 1447
+2154 1929 1564
+1863 2155 2156
+2157 2158 1148
+2159 1788 2160
+2161 1629 1446
+2162 2163 2164
+2165 2166 1131
+215 765 452
+2167 2168 1494
+2169 1350 2170
+1084 2171 2172
+2173 2174 2175
+2176 2177 1361
+2178 1288 2179
+2180 618 2181
+2182 1705 2183
+2184 2185 2186
+2187 2188 1168
+280 2189 2190
+2191 2192 2193
+2194 2176 2195
+173 884 2196
+270 2197 2198
+2199 2200 2201
+2202 2203 2204
+2205 2206 426
+2207 1900 2208
+2209 2210 2211
+2212 2213 2214
+2215 2216 410
+1356 1775 2217
+2218 2219 1656
+2220 2221 2222
+1306 2223 2224
+2225 1418 2133
+2226 2227 2228
+2229 2230 2231
+2232 2117 2233
+2234 2235 2236
+2237 2238 2165
+2239 2240 1021
+2241 1691 2242
+2243 1299 2244
+799 2245 2246
+2247 1834 2248
+2249 1878 1701
+2250 986 2251
+2252 32 943
+2253 2254 897
+890 2255 2256
+2257 2258 2259
+2260 2261 1831
+1328 546 2262
+1181 2263 443
+2264 2265 2266
+2267 2268 2269
+2270 2271 2272
+1980 916 2273
+2274 1893 2275
+2276 2277 2278
+2279 73 2280
+2281 1255 2282
+2283 935 1316
+2284 2285 1433
+2286 2287 2194
+2288 2289 2290
+2291 2084 2292
+2293 2294 2295
+1576 2124 2296
+2297 2298 2299
+2300 2301 2302
+562 2303 2304
+2305 394 2306
+2307 1338 635
+2308 2309 463
+204 2310 2311
+2312 2313 2314
+2315 989 2075
+773 2316 2317
+2318 239 2319
+2320 1631 2321
+2322 2323 2324
+2325 368 2326
+1363 2327 2328
+1495 2329 2330
+2331 2332 2333
+2334 2335 2336
+2337 2338 2339
+2340 2341 2342
+490 2343 2344
+2345 2184 987
+2346 2347 2348
+2349 286 1380
+1094 335 1256
+2350 2351 1964
+2352 2139 2353
+1347 2137 1740
+2354 1943 2355
+569 1951 2356
+2357 1876 2180
+1024 2358 779
+47 2359 538
+2360 2361 2362
+2062 996 2363
+2364 2365 2366
+2367 2057 2368
+2369 2370 2331
+1937 2371 2372
+2373 2374 1781
+2101 2375 2376
+2377 2378 2261
+2233 1854 711
+2379 2380 2381
+2382 2383 2182
+1554 1001 1294
+2384 2385 2386
+2387 1484 2388
+970 2389 2390
+2135 2391 2392
+228 2393 231
+420 2394 2395
+2396 2397 180
+2398 2399 2400
+2401 2402 2403
+2404 1014 2405
+2406 2407 2408
+459 2409 2410
+2411 2412 2413
+2414 1912 2415
+1825 2416 967
+2417 2418 1144
+1399 2419 1828
+2166 1207 2420
+1742 2421 1174
+1211 1853 2350
+2422 2423 2210
+2424 450 2425
+373 2426 709
+2427 2428 2429
+2430 2431 2432
+1522 2433 786
+2434 2435 2436
+2437 2438 2439
+2440 2441 188
+2442 2443 297
+382 2444 2445
+738 1425 2446
+2447 2448 1466
+2449 2450 1324
+557 1940 488
+2451 1820 2452
+2109 2196 2453
+971 2390 2454
+1637 2455 2456
+2457 2458 2459
+2460 2461 2462
+1138 2463 2149
+208 1880 2464
+2465 2466 2291
+2467 2468 295
+2469 2470 2471
+1889 2472 2473
+732 2474 2475
+2476 2477 2478
+713 1260 734
+2479 2480 2481
+2482 2483 2484
+2485 2486 2487
+2488 2489 1491
+2490 1165 2491
+2492 2493 2494
+369 2495 2496
+2497 2498 2499
+1978 2500 2501
+2502 486 2503
+2504 2195 2505
+2506 2507 2508
+2509 2388 2510
+2511 2512 2513
+2514 2515 2516
+465 1524 2517
+2518 384 2449
+2519 2520 2521
+2522 1517 2523
+2524 2525 2526
+2527 2528 2529
+1666 2530 2531
+2532 1669 1711
+2533 1147 2534
+2535 1527 2536
+1047 2537 2538
+2529 2539 2540
+2328 2541 195
+2542 2543 2544
+2385 2545 2546
+2380 2547 846
+2548 2549 2550
+2551 2552 2553
+1341 2554 2555
+1646 2556 2245
+2557 2558 2559
+2560 2561 2562
+2563 592 2564
+2001 2565 1057
+2566 2238 2567
+2568 2569 2570
+390 2231 112
+2246 2070 2571
+262 2572 1765
+2573 2574 120
+2575 2576 2577
+1679 2362 2578
+2268 1634 2579
+2580 2581 2582
+2583 2584 2585
+1991 2586 2587
+1947 2588 2589
+2590 2591 2592
+1160 2593 1426
+2594 1134 2595
+2596 2597 337
+2598 2599 2600
+2016 2601 436
+2602 2603 2604
+2531 2221 2605
+519 2134 2606
+2306 2607 1984
+2608 2571 2609
+1413 45 1474
+2610 2611 2612
+2394 2513 2613
+2614 2615 2616
+2340 528 2617
+2618 2619 834
+2620 2621 2622
+836 2623 751
+2624 2625 2626
+1993 2627 2628
+2629 2630 2631
+2632 2633 2634
+2635 2636 2637
+1085 764 2638
+2639 2640 2641
+2161 2642 739
+1585 2643 2644
+2645 1881 338
+2646 2647 1208
+2648 492 43
+2649 6 2650
+762 2651 2652
+2653 2654 2488
+2655 2656 2657
+2658 563 1632
+864 2659 218
+1066 2660 2118
+166 2661 2662
+1657 2663 1772
+2664 1682 2361
+2665 2666 1680
+2539 1398 1652
+2667 724 2668
+2376 745 615
+2669 2670 445
+1432 2671 2672
+2673 2330 2005
+993 2674 2417
+2675 972 2676
+1846 2677 2678
+2679 1236 2680
+2681 2682 2683
+2684 2685 2686
+2687 1823 2688
+2129 2689 2690
+2187 2691 2692
+2693 1595 2694
+2378 2369 2695
+2696 2697 21
+2698 2699 2357
+2050 1396 690
+2700 2701 2702
+2703 2704 2705
+2204 2706 444
+2160 2707 2708
+2709 2710 2711
+2712 2713 1645
+2714 2715 2716
+244 1561 2717
+2718 294 871
+2719 354 2720
+2721 98 2722
+2723 489 1939
+2724 2725 2726
+2727 2728 2729
+2730 2731 2732
+2733 2734 2735
+2736 2737 2738
+2739 2382 2740
+1753 2527 2741
+1075 2742 1710
+2743 2744 2745
+2746 2747 1860
+2732 1709 2700
+2748 566 2358
+2742 1558 2749
+2750 2751 777
+2752 523 2753
+2471 1864 2754
+2755 2756 2757
+2758 2759 2760
+2761 2533 2762
+1455 2562 2763
+1206 1371 2764
+2765 2766 1580
+2767 2768 2769
+2770 2771 2772
+2334 680 703
+899 1917 2773
+869 1892 2774
+2312 2775 832
+2776 2777 2778
+2779 2780 2781
+580 1857 1903
+1598 2782 2783
+2784 2023 2785
+2786 2772 2506
+1815 2787 2788
+2789 2790 2281
+2791 2792 2793
+2556 2794 2795
+2796 1717 2797
+2734 2798 2492
+2799 2612 2800
+2606 2801 1333
+2802 1355 2803
+2804 2123 1578
+2805 2806 2807
+2808 2809 430
+1570 2810 1390
+2811 2812 963
+2813 2814 1083
+1416 2815 2816
+2817 728 2818
+2819 2820 241
+425 2821 2822
+2065 2823 2824
+2825 2826 2827
+2541 2828 1921
+1270 2829 1472
+2830 2831 2832
+2833 2834 1187
+1339 758 2835
+181 2836 2509
+2837 220 2838
+2395 2698 2839
+509 2840 2841
+2842 1056 2843
+2844 406 2845
+2846 2847 2226
+694 1541 2848
+2849 2850 1849
+2644 2851 2852
+2853 2854 2855
+2856 2608 95
+912 2857 2858
+1032 1359 731
+2859 1538 2860
+541 2861 2862
+69 2863 2662
+570 2864 2865
+2866 776 2867
+1977 2307 2549
+1301 2868 2869
+2870 2067 1297
+2198 530 2581
+2871 2872 2873
+2874 2875 2876
+2877 2878 2879
+2499 202 2880
+2881 1778 2130
+1704 1102 2882
+2883 2250 2654
+1149 2884 2885
+2886 2887 2888
+2889 1457 2890
+2891 2892 823
+2442 1004 2893
+1735 1534 2894
+849 2895 2758
+2896 2897 2898
+1060 2095 2899
+636 2900 2901
+1662 2902 2903
+2392 480 2904
+2905 2906 2907
+2908 2909 2796
+2910 2911 2912
+2913 2914 2915
+2803 392 2371
+1017 1163 2916
+2917 1353 2918
+1609 185 2397
+574 92 2919
+1661 2920 2921
+1444 2706 2922
+867 2923 2924
+2925 2396 2926
+607 2927 2928
+2929 2172 2009
+2930 814 2550
+2931 2932 467
+2933 2934 235
+1689 2935 464
+2936 2937 2938
+2402 1684 251
+2939 2940 2751
+2557 848 282
+2728 2941 2942
+830 2943 2422
+1091 2944 2235
+491 2945 2553
+2431 873 2354
+2946 1345 2947
+2948 1526 2949
+2950 1924 600
+2951 1719 1135
+442 2945 1027
+2907 2952 1101
+2953 1331 678
+2622 2954 128
+576 1931 2955
+2956 2957 2958
+2959 1803 2960
+2845 2961 2828
+1117 2962 2963
+1104 37 622
+2572 400 2964
+1034 2508 2965
+2868 1421 2466
+2966 2967 1757
+1113 2968 1503
+2969 124 2970
+2971 2972 2973
+2974 2975 2976
+306 2977 2452
+349 2978 2257
+2979 2980 2430
+2219 2981 2982
+376 2983 172
+2874 2984 2140
+1865 449 1910
+1560 2985 345
+2986 2987 1838
+721 2988 2493
+1267 487 2989
+2990 2415 2439
+1871 2805 1794
+2991 2992 2993
+2994 2627 2995
+2996 2997 2476
+1233 1269 2998
+1836 1318 2090
+1026 2494 2999
+2389 1675 2898
+26 581 3000
+852 2659 3001
+3002 3003 264
+815 461 3004
+785 3005 2638
+1997 2741 2668
+3006 497 1626
+201 3007 1572
+3008 3009 3010
+3011 3012 508
+3013 3014 108
+1290 3015 3016
+2567 957 1387
+3017 2205 946
+2561 3018 3019
+3020 3021 2309
+3022 3023 1214
+3024 3025 512
+3026 3027 2618
+2126 3028 2786
+1948 3029 3030
+2570 2596 3031
+3032 2349 3033
+3034 3035 2917
+3036 831 3037
+3038 3039 213
+2479 2300 1559
+2613 3040 1125
+3041 1463 1741
+1346 3042 2318
+2676 2753 3043
+2536 1971 3044
+2948 3045 1972
+3046 320 3047
+3048 3049 1683
+655 3050 1981
+1571 733 3051
+2733 3052 3053
+3054 2032 992
+3055 3056 3057
+3058 3059 3060
+3061 2286 2712
+2045 1086 2872
+367 1016 3062
+2400 730 3063
+3064 2517 3065
+3066 3067 1927
+3030 2950 2294
+3068 1736 3069
+1405 3070 888
+3071 2191 1677
+2630 3072 49
+3011 510 3073
+2097 2272 907
+3074 2433 3075
+3076 3077 3078
+3079 2011 3080
+3081 3082 3083
+1551 3071 3084
+3085 3086 3087
+3088 976 3089
+2577 2148 3090
+652 2935 1195
+2682 3091 1592
+3092 359 275
+3093 3094 3095
+1209 3096 281
+2319 1546 3097
+3098 1687 3099
+2704 1077 1844
+3100 3101 3102
+3103 3104 3006
+2983 1141 3105
+2347 1750 3106
+3107 2708 3108
+3109 3110 798
+3111 1401 1188
+3112 2459 3113
+314 2589 3114
+125 3084 3115
+1766 3116 2870
+3117 3118 3119
+3120 1334 2169
+2904 3121 2225
+3122 2714 2560
+3123 2884 2158
+2262 548 1549
+3124 2658 3125
+3126 3035 2025
+1594 750 3127
+1229 2926 801
+2820 2827 3128
+242 2054 3129
+1167 3130 3131
+1442 3132 2303
+3133 3134 3135
+2899 2136 93
+1780 3136 2131
+3137 3138 3139
+3140 2599 2364
+914 1080 1282
+1633 3141 3142
+1215 3143 2031
+1412 3144 1802
+3145 3146 2590
+2631 3147 3148
+3149 2234 3150
+2489 2251 792
+3151 3152 2837
+3153 2475 1128
+3154 2538 893
+3155 3093 3156
+2838 1158 3157
+1003 429 381
+2211 2684 3158
+2228 1489 3159
+3160 3161 3162
+585 3163 1799
+3164 3165 1855
+1869 2223 1082
+3166 545 499
+3167 3168 3169
+3170 3171 2780
+1028 3172 2735
+3167 2587 2710
+3173 3174 1335
+3175 3176 3177
+2269 3178 1745
+1957 3168 3179
+584 3180 2903
+3181 358 3182
+3183 3184 1614
+3185 3186 3187
+3188 454 3189
+3190 3191 550
+3192 3193 2829
+1620 1112 3194
+1448 257 3195
+1394 2086 2404
+1617 3196 3197
+1096 1224 1093
+2216 3198 2406
+3199 594 1156
+2782 3200 3201
+3202 3203 1441
+3204 3205 3206
+3207 3208 1069
+3209 2956 458
+3200 1597 3210
+3211 3212 3213
+3214 3112 446
+1111 33 1162
+1285 826 3215
+3216 2036 1487
+22 1155 70
+3217 1061 1974
+3218 2764 2635
+2104 3219 2921
+3220 1966 15
+2299 3221 1106
+1175 1482 3222
+1806 3223 3224
+433 985 386
+2982 3225 2663
+1685 3226 138
+3070 2429 1797
+451 48 1911
+634 3227 2930
+501 3228 3015
+2830 999 3229
+2568 3230 3231
+2040 2207 3232
+77 3233 2337
+3234 1866 539
+1159 3235 1882
+646 3236 145
+3044 3237 3238
+1994 3239 2179
+343 3240 3241
+3242 3243 1962
+3244 3245 3246
+3095 2087 898
+3247 3248 3249
+3000 3250 3251
+3156 3252 460
+122 608 3253
+2788 3254 3255
+3256 3255 3048
+3257 3258 3259
+587 3260 2345
+3261 3262 3263
+3264 3265 1262
+3266 1307 3267
+3268 1193 1664
+3269 1226 2667
+3270 3271 3272
+2175 1727 221
+697 1343 3273
+3274 2632 364
+3275 1859 3276
+1673 843 3277
+3278 212 2159
+3279 3280 1635
+2776 736 2962
+2749 3281 781
+1176 207 3282
+3155 3283 3284
+1619 3285 719
+3207 3286 2209
+3287 3288 2047
+411 3289 3290
+3291 582 3292
+3293 642 3294
+2826 2738 3295
+3203 3296 3132
+3297 2855 3298
+2815 3121 3299
+1170 2099 3300
+3301 1480 2421
+1531 3302 3303
+960 3304 3305
+1873 1588 1404
+3306 170 1955
+106 651 853
+3307 1550 2910
+3308 1896 3309
+2338 3109 298
+3298 760 1605
+1492 1610 3310
+982 81 3202
+2510 2352 3311
+3312 2391 2675
+3313 2412 1591
+915 3314 2468
+2372 3315 3316
+613 3317 3242
+3318 3319 3320
+1095 1660 3321
+3322 3323 3225
+3324 2405 2121
+3325 3326 2514
+3327 3328 3329
+3330 878 3331
+192 3332 334
+3333 2905 3334
+150 2163 232
+1627 2798 291
+1248 3335 3336
+3097 1807 1344
+3337 3338 3339
+3340 2265 676
+969 2144 2746
+3119 2142 3341
+3342 3343 324
+2651 3344 3345
+3346 3347 3348
+835 3349 1277
+2454 3350 310
+2862 3351 1386
+3352 1438 3353
+1839 3354 1081
+3004 3355 1574
+1298 783 1352
+3356 3357 127
+3358 1179 3359
+837 1712 2091
+821 3310 16
+2615 3360 1234
+3361 3362 514
+2237 3363 3065
+3364 248 2717
+31 1502 3365
+3016 3366 3367
+838 3368 1150
+922 3369 79
+2201 322 3370
+2501 3371 3372
+3373 3374 1010
+3038 3375 3376
+3377 1064 3378
+3379 66 1305
+3380 2344 3204
+1702 2970 2218
+3161 3381 1323
+3382 3033 3383
+2671 3384 744
+3385 3386 2709
+111 1180 3387
+757 3388 2311
+3389 1553 1668
+3390 2418 3391
+1385 3392 3393
+3057 3394 3149
+3395 296 3046
+542 3396 1590
+1850 1791 3397
+2168 2593 2252
+964 1264 3398
+3399 175 1313
+3400 3311 2888
+3401 3402 2687
+2607 3403 3404
+3025 3405 2853
+3406 3407 1925
+2757 2085 3184
+63 3401 2990
+3408 3224 3050
+1018 3409 2037
+2628 3410 3239
+2854 2762 761
+3411 1119 1200
+791 3412 551
+796 1734 3413
+2809 3414 3415
+829 2102 1265
+2351 1934 693
+2496 1543 3416
+3417 3003 3418
+265 3419 737
+1714 2846 1046
+475 2039 2440
+1579 44 2552
+3315 3420 3421
+2934 2253 1782
+3422 1430 3423
+3331 880 3424
+1755 3047 2777
+1201 3425 3426
+96 2051 2927
+3427 2849 3428
+1537 3429 2240
+3430 3431 2460
+3432 1758 3433
+3434 2500 2548
+2722 3435 2986
+3115 2578 2401
+2857 3436 3437
+593 118 657
+3438 3439 3440
+3441 2012 2000
+3338 3442 900
+3443 3444 2088
+200 3445 1388
+3446 3447 3448
+598 3449 3450
+3451 527 3452
+3453 1618 3375
+2720 3454 3455
+1621 2881 2968
+3456 3457 3458
+3117 3459 2545
+3358 3460 3461
+267 2954 591
+2939 2831 944
+2686 2971 1308
+2147 1259 1348
+3462 3463 3464
+3465 3466 1647
+3467 3468 3469
+1819 3470 2931
+3471 3472 2624
+3473 1378 3474
+1397 3475 3476
+2716 2585 3477
+2298 3478 1960
+3479 1025 3480
+2988 107 3481
+2763 937 3482
+2314 2081 1501
+2316 1295 1630
+3138 2523 211
+2957 2933 2426
+3431 3483 2779
+2981 126 3484
+3485 1908 3086
+2342 3486 3487
+1907 3488 3489
+3243 2317 2320
+941 2424 3490
+3289 2408 658
+827 1968 3491
+2748 2661 1681
+3036 2366 3492
+2532 3493 3279
+3494 474 3495
+2271 3496 672
+1695 2112 1688
+3497 3244 1153
+3221 1961 3498
+3499 3500 795
+3501 787 3502
+1235 2637 1122
+2822 2880 3503
+3469 3504 3410
+3231 3499 3505
+3087 3506 3371
+3507 3508 1322
+2060 3509 876
+3510 681 3455
+2487 3511 3512
+2554 230 3485
+2167 3513 2446
+2116 1173 3164
+2932 3514 2007
+3515 3516 2483
+3517 3518 2769
+3519 3520 3521
+3522 3373 3523
+1240 1268 1720
+3437 3385 3524
+498 3525 3166
+671 1601 152
+3444 833 3292
+3526 3527 2766
+3528 1045 2895
+2290 2473 1450
+3529 3530 476
+2535 1641 3213
+2634 3531 2502
+3323 253 249
+3463 2760 432
+3367 3532 1449
+3533 123 3534
+1242 2515 3368
+2072 555 2576
+1773 250 1171
+415 3140 3328
+2324 2214 168
+1648 3535 3190
+3536 388 3537
+3538 2285 191
+1498 3539 3540
+3541 1059 816
+2264 1800 788
+637 1184 3144
+3075 3542 1909
+2801 1417 3201
+2068 645 2614
+1070 1805 1518
+741 2457 1365
+3543 3379 3544
+1473 3545 3414
+3546 3547 3268
+1154 3548 2664
+3549 3550 3032
+2674 1212 525
+3254 1756 3547
+3551 1520 3552
+3222 61 205
+3285 3553 3107
+2867 1389 3554
+2441 3280 2865
+3555 3556 3557
+3053 2551 289
+3356 3558 2889
+1770 825 3024
+579 3559 2861
+2569 3560 3151
+2597 3157 2645
+3176 3526 2960
+2022 3561 2799
+2111 3562 3563
+901 2858 1814
+2563 626 3564
+3565 1192 3317
+3566 3153 3567
+3568 1586 266
+3569 1067 1809
+3570 3240 3571
+3572 926 3198
+649 2689 3573
+2643 668 2784
+3073 3574 2813
+3575 2885 3576
+3577 3578 3579
+2620 3580 567
+3532 1035 2288
+325 2103 3211
+493 1254 3172
+3557 3581 3582
+3583 3584 1329
+2321 3585 3561
+1462 977 3301
+439 2181 1519
+3586 2343 2723
+3587 3588 3589
+3568 2164 3590
+3591 3592 2633
+3593 3594 3595
+2882 621 3596
+3597 3598 3599
+3600 3601 101
+2967 2711 653
+2365 2292 346
+3602 1287 1639
+3603 3565 975
+391 609 3560
+3604 998 3605
+3606 533 2128
+3607 3608 3609
+3610 3611 71
+3612 2998 2105
+638 1411 3271
+3613 2673 3258
+644 3614 3615
+3616 3617 1952
+2336 3618 2953
+3619 2841 3620
+2747 875 3621
+2193 1152 3622
+271 2580 3623
+2879 1783 1623
+3045 3624 3584
+3259 2006 1451
+1575 3625 3626
+3627 2946 287
+2774 348 3067
+2497 3628 2866
+1515 2642 2197
+2236 1566 2270
+74 1410 1870
+1127 1875 2699
+2056 3382 1166
+3629 2641 438
+3630 3196 3631
+3632 3633 3634
+3475 1827 3635
+2958 372 2066
+252 2915 3636
+3282 2727 2594
+1263 3290 3637
+1506 561 3638
+3639 434 3536
+3235 1729 38
+3327 1868 2059
+2053 3640 3641
+3642 3571 2200
+3518 3643 2992
+3615 3218 3360
+3489 2280 3644
+2038 3564 2041
+2821 3236 3645
+3646 3647 3648
+2481 3649 3650
+3651 3652 3653
+3654 883 2833
+3655 3656 3572
+3657 2887 3658
+859 809 3467
+2886 3659 3660
+2688 1990 313
+408 3661 3662
+3663 3664 3665
+3666 3063 3566
+3667 3668 3008
+164 2322 3262
+1965 3669 507
+3670 686 2878
+3281 2755 3671
+2626 100 3672
+2525 3673 3674
+3675 2273 3673
+3484 2403 3322
+3676 1097 735
+1763 887 1774
+1362 3677 2367
+3678 2127 1033
+132 3438 3679
+1232 2495 2420
+2029 3143 1649
+1100 3680 3334
+2890 2793 1596
+2942 3681 1062
+3253 2891 3682
+1902 3500 3250
+2692 3683 729
+2227 3062 3216
+3684 3406 3029
+3685 3427 1867
+1743 2595 2604
+3519 2897 3686
+3687 3688 1276
+3652 3655 3689
+886 3150 2096
+3690 990 3691
+3470 3482 3514
+1587 3692 2427
+3693 3694 3220
+397 1204 3614
+3333 3433 3215
+1956 1203 860
+2119 2275 177
+3402 3195 1824
+3695 2951 3457
+1888 1023 911
+1678 3622 2360
+2014 3696 2565
+3189 2929 1540
+2707 1787 3697
+3698 370 3416
+718 3699 3631
+1508 3700 3701
+3702 1250 807
+3703 3456 3599
+2461 2781 3704
+2542 3705 2876
+3706 3312 3480
+3707 1696 1950
+3708 933 2467
+3709 3710 1779
+3711 1986 3712
+3299 482 210
+3713 3714 3692
+2601 3715 1858
+1884 3716 272
+3447 3717 740
+3400 802 182
+727 2906 3491
+3175 2348 3270
+3681 3718 2377
+3719 361 3720
+3721 3522 2909
+3722 1231 3723
+3587 3724 3604
+3182 395 3725
+102 3726 3727
+3728 2241 3123
+3377 1493 3229
+2573 1899 3108
+2093 3541 3238
+3669 695 1048
+3288 3205 3586
+803 742 3729
+1311 3730 3729
+3731 3732 2949
+274 2511 3733
+3687 3734 3658
+2277 2356 3098
+36 3733 419
+1415 1760 906
+259 140 3735
+3383 1949 3736
+1989 3737 3488
+2190 3738 1280
+447 3739 2256
+2964 3181 3740
+1730 1923 1370
+3741 1031 2399
+1796 3059 2582
+1124 3257 3742
+2477 3743 2825
+385 402 3744
+2143 1191 3745
+769 179 3746
+940 496 2863
+913 3747 1837
+2061 1672 956
+3347 3748 2178
+3636 3441 2
+3749 3750 3342
+1970 3635 2818
+908 674 10
+3751 3752 2323
+3753 2695 924
+3191 473 3754
+3667 3755 1650
+3756 2691 3757
+3758 24 2115
+3510 2959 3759
+479 3657 3760
+3761 770 3762
+2696 3763 3764
+3228 3765 3766
+1628 3767 2976
+3249 3768 2089
+3226 3083 3769
+2965 2859 2289
+1916 383 2974
+682 2155 2393
+2807 3770 3771
+3653 2519 3772
+1776 3773 2249
+1030 1843 466
+3300 774 3774
+2232 1897 3699
+1879 3706 3775
+3776 2243 1979
+3777 1616 3476
+3104 2621 2617
+1707 1967 3247
+689 3761 3778
+153 3516 56
+3142 1919 2035
+1589 1424 2586
+11 2683 3127
+3779 2326 3780
+3273 3781 3369
+3245 902 1813
+2701 379 3741
+1804 3454 3782
+3783 3784 3785
+604 847 868
+2503 3786 362
+3284 3435 3094
+1747 675 583
+1603 3595 3787
+3788 1833 3651
+2648 3789 3790
+3791 3792 3627
+1197 3793 3113
+3745 3603 2584
+3794 151 3466
+3795 2445 3796
+2472 1384 3507
+3797 1161 1895
+1606 2652 2681
+3798 1996 3199
+3740 3799 3116
+3800 3801 3752
+3686 2145 312
+3501 183 3388
+3498 40 3802
+2902 3219 3803
+2656 3804 3805
+2914 1663 3806
+3807 3781 1342
+3808 1054 1625
+2832 2750 3809
+2989 3531 1721
+3504 3810 3348
+920 3811 3192
+2625 2875 1367
+2222 3010 3700
+3789 3782 2470
+3661 3316 1731
+3812 3089 1584
+1283 3813 3814
+3197 2877 3424
+3647 3815 715
+3816 2003 2997
+1434 3731 1784
+3817 3538 679
+3818 3768 3819
+3724 1785 1435
+2423 3820 3821
+1945 3607 2287
+3396 1862 1422
+2834 882 3822
+54 3264 2812
+2546 1998 3072
+1320 3126 1291
+1237 276 3719
+3823 3169 3824
+3825 3826 86
+611 2173 3152
+3827 1143 3710
+2715 3341 2583
+2458 3828 1198
+2259 1490 116
+2386 2629 3820
+3391 3451 1608
+178 1936 3829
+3830 3831 3509
+2600 2082 2428
+1391 3832 2806
+3814 321 3314
+639 3106 1749
+3436 3833 3343
+3811 850 3462
+3465 2543 3472
+1933 3834 1539
+2912 2810 3307
+3548 3246 3256
+90 2694 2464
+3039 564 3835
+355 318 229
+114 3836 610
+3837 3838 2908
+2363 3026 3443
+2419 2528 3634
+3354 2152 3839
+3398 3840 2660
+939 1583 2008
+3105 3055 885
+3841 1092 1223
+3693 14 3577
+3842 3520 311
+3843 1302 3684
+3134 1812 1145
+1383 1304 352
+2325 3844 1132
+3807 3845 3815
+3503 3324 3846
+2579 2034 3847
+3409 2916 3848
+423 909 3849
+3737 2852 2279
+1074 3850 1883
+315 1220 2414
+2189 3851 3852
+3080 1653 2922
+844 3129 2490
+3223 1638 1982
+1954 2730 3610
+3459 3122 1999
+3020 3853 1178
+3854 3855 288
+55 3495 3535
+3856 409 3265
+1445 2975 3744
+619 3787 3100
+3494 3210 455
+3857 2797 2413
+2835 2310 3858
+3859 3641 3860
+1437 243 3588
+1431 3664 3650
+2329 3125 2267
+1674 1400 2896
+3363 3786 3364
+3796 2592 3629
+3179 3386 3750
+3861 3727 1599
+2771 2462 1544
+2150 2987 3283
+1452 3862 2524
+2848 3079 2203
+3295 3791 3550
+1930 3596 2485
+2100 2740 1851
+2752 974 818
+1076 2731 2453
+3863 1887 3864
+1754 1005 3395
+3232 1499 1725
+1611 3638 3865
+3366 2079 3678
+3866 3137 3022
+2411 1326 1569
+2817 1039 2188
+3002 3867 3077
+3404 1050 2026
+2961 3778 2379
+3868 3552 1216
+3355 184 3625
+3372 1523 1976
+1732 3421 3869
+3131 2295 602
+3870 3384 3649
+3871 3148 3872
+2680 3742 159
+3702 1392 3051
+1922 2381 603
+904 1108 2048
+3676 2146 3873
+3874 994 1847
+630 3007 2911
+17 3865 3124
+925 2333 3816
+2332 1913 1219
+3060 3160 3308
+2795 3875 2071
+2522 3866 1213
+3452 506 3876
+3714 2465 2598
+1686 3877 3028
+3474 3696 3460
+2759 3154 984
+1565 856 3613
+206 2438 2941
+3118 2020 3591
+3878 3336 3716
+3620 2783 3879
+2972 3872 1840
+1706 3188 3834
+1373 3880 483
+3793 520 3739
+3171 1992 3823
+2534 3881 3882
+42 2844 3883
+2790 2469 3884
+2505 469 3885
+1182 2670 2387
+1274 2092 631
+3695 1458 3558
+2512 3662 3886
+2636 756 2154
+3887 2739 1169
+1271 3376 879
+3852 2802 3888
+3873 2564 3103
+3511 1643 2230
+2973 3889 2455
+2346 3177 1183
+3890 3717 1759
+2212 3801 1130
+23 3891 1172
+3892 2869 3713
+1577 2677 2840
+1337 3858 3893
+2186 3894 1007
+661 962 3895
+2611 440 3551
+1114 2113 2335
+1861 1525 1423
+3630 1486 3670
+3611 2702 3896
+1044 2107 1002
+1109 3841 1115
+3897 1330 3624
+2540 748 3269
+1658 3757 3774
+5 3898 586
+3165 1793 2064
+3899 842 1068
+3576 2242 3900
+1464 1528 3646
+3351 2646 2566
+3420 2305 3711
+3473 3359 717
+3136 1142 3901
+3902 3569 404
+2004 3903 3743
+1808 1548 3904
+316 2719 3905
+3762 3361 2547
+3836 3906 2174
+3907 2063 3730
+1790 2726 2247
+3562 3623 3058
+1651 3908 3909
+1504 3837 3910
+1852 2183 1932
+3770 952 121
+393 857 2994
+3835 2666 3139
+2409 2824 3261
+1716 477 1327
+3840 3637 2274
+1810 2120 768
+2304 3911 3141
+2792 3598 2703
+3296 1529 103
+3912 3883 2327
+1243 3913 3027
+2944 1771 511
+3468 811 556
+3914 1407 2373
+3158 953 3208
+161 3915 2171
+948 2002 2842
+3916 3910 3917
+3901 3390 3374
+3425 1414 725
+2690 3014 1748
+3621 217 3654
+3353 3605 997
+3775 3918 88
+1409 2800 3868
+2308 3064 3853
+3919 1072 3920
+716 3921 2073
+896 3922 41
+2301 3663 3923
+3903 3114 2736
+1891 596 3924
+3502 3925 3626
+2019 3092 3302
+3862 1470 3675
+1975 979 1944
+3674 1872 1654
+2456 1315 2108
+3335 1938 407
+3019 3812 938
+3701 3825 2697
+2591 1374 2639
+1713 3926 3440
+3927 3339 3497
+701 2049 1110
+3928 263 2778
+1795 2518 3381
+2745 2074 2185
+1120 2936 1189
+3929 3563 3309
+1351 3930 1602
+3601 3805 2482
+3893 203 2900
+2787 3524 2966
+1832 3753 3656
+819 973 518
+3931 2985 2302
+1514 2213 3448
+3831 2478 2819
+1289 2602 1562
+1063 2260 980
+1935 929 828
+3147 1842 1376
+543 3908 3918
+3932 327 789
+3785 2653 2258
+3896 2398 1251
+2474 1286 1697
+226 3925 3933
+1829 2157 3326
+3934 3920 3935
+1261 2043 1349
+2952 3683 3756
+1058 1377 2744
+1959 3570 3824
+1354 3508 858
+3832 2339 950
+1856 3291 3069
+812 983 1505
+978 258 2153
+3936 2679 3005
+2724 1789 2850
+2027 3555 3174
+3937 3938 424
+1238 2208 1904
+53 2521 3856
+3939 3763 2768
+2669 2217 3940
+187 3387 2836
+2603 3748 3041
+3875 3885 553
+1500 3720 3665
+3924 3450 2978
+3941 3403 2995
+3237 1973 3942
+3672 3861 670
+3449 3943 3783
+1885 3305 3779
+1041 2873 3887
+3944 3399 3939
+2588 3945 2737
+27 2436 797
+892 991 3827
+3881 3946 3411
+1258 3900 2920
+3806 1690 2013
+571 3493 3947
+2078 536 2125
+623 589 2486
+894 2918 3851
+3193 3464 1511
+1049 2202 2263
+3948 2743 3260
+3052 3320 2765
+3609 3949 2177
+2359 68 3234
+3950 1496 3056
+3898 2843 3948
+245 247 3589
+2943 2018 2384
+3799 3725 643
+3889 1841 2283
+3951 3263 3952
+3909 3953 3668
+3954 3251 3230
+2754 2156 3955
+3911 105 1920
+3956 2434 3954
+839 3575 1762
+2407 2996 3830
+2977 2767 3275
+1140 3644 3950
+3318 1253 3884
+3759 3319 3955
+3349 3688 3660
+3490 522 517
+3529 3691 3957
+3760 3734 547
+2919 3958 3180
+1151 3802 3912
+684 1792 1751
+3345 3914 3091
+1738 1777 1700
+299 800 2856
+134 2811 3863
+3959 3633 2871
+3848 3293 3765
+3540 1089 3394
+3846 2893 3937
+3821 3871 2685
+3923 3492 3931
+3544 2804 3960
+3961 3953 3525
+3962 1644 3110
+3915 2526 2010
+3826 3009 3961
+3876 109 186
+2015 3963 3715
+3640 3090 3133
+144 866 3266
+3964 2672 743
+3001 2999 3481
+3597 3458 1137
+3594 2355 3965
+3966 3967 255
+558 3968 3810
+2162 1822 1507
+3969 3970 3971
+3096 3970 2558
+1642 817 417
+3128 3549 2055
+2955 3512 2229
+238 968 2046
+3771 3533 3539
+148 3578 1845
+3671 3966 1670
+3412 2278 3099
+565 3972 780
+3973 3974 1746
+1557 3849 2756
+2678 3975 3874
+3523 1228 1718
+1366 3214 3767
+3392 910 3442
+1724 3690 190
+3869 3712 3173
+502 2024 1488
+824 3976 3405
+3822 3340 3974
+2864 2276 189
+3726 2484 1600
+136 3483 3186
+3606 2266 881
+2559 1715 3528
+3194 3797 3162
+2463 2368 663
+917 2244 3892
+197 3879 2447
+3952 3306 3839
+1006 1118 3938
+3882 1406 3344
+1164 3170 3977
+3506 3542 1521
+3978 3135 2761
+2775 3422 3068
+431 3145 2444
+3723 3612 1043
+3746 3979 3362
+3957 3944 3530
+3728 1816 3913
+3543 3980 64
+3904 1941 1427
+2374 3426 1225
+3917 3857 3313
+3286 142 3037
+2507 1545 1536
+3850 3537 3981
+1530 1722 3592
+3429 309 2199
+2224 3329 3267
+2255 3982 1915
+293 2729 3217
+2860 2239 1890
+755 870 3066
+1567 3297 3496
+3428 3819 2076
+641 3081 534
+3082 3977 3769
+3357 2693 3580
+3958 91 3321
+3505 2435 1071
+2938 1105 399
+3971 2647 3559
+3933 3074 3905
+3949 3772 3677
+1273 3808 3972
+700 162 2823
+2851 2785 1408
+1826 3959 1040
+3929 3418 3076
+344 3983 3749
+1252 3666 2206
+1239 1830 3325
+2609 2575 2052
+3477 3088 3018
+3956 3031 575
+3534 3984 1090
+3248 3985 2315
+2416 3735 3287
+1512 3639 1073
+2110 3078 861
+3178 3847 3776
+319 3986 3928
+2940 3365 3916
+2141 3515 3987
+1177 3461 3021
+625 3751 163
+3241 1958 3983
+347 2083 3648
+932 2721 3747
+705 2847 3439
+1926 3927 2192
+2028 2718 2980
+1877 1552 2969
+3979 3829 1428
+3794 3471 669
+664 1767 3478
+3278 3553 3453
+2254 3209 3252
+1439 3988 2480
+366 704 131
+951 300 1622
+3101 3965 3061
+1022 3370 3833
+2791 1456 3703
+3736 2293 3130
+3818 1848 3989
+57 2984 1332
+3967 3183 3990
+1052 2979 3556
+3618 3942 3583
+3991 2170 3040
+2448 2816 2705
+1272 3330 1055
+3940 3707 1485
+3698 1886 3780
+3350 3521 3842
+981 3788 3608
+1905 3828 3890
+3975 2296 2924
+2353 1278 3659
+1835 2725 3685
+1369 2657 3600
+2894 1726 2080
+2443 2122 3708
+3434 706 3992
+3984 3682 1769
+3272 1476 3527
+2106 1471 2808
+3993 588 2883
+3994 1914 2370
+3585 3795 2610
+931 1728 3906
+1761 3573 532
+3705 167 495
+7 3419 3417
+891 775 3054
+3616 3947 752
+3619 3995 3574
+3891 158 3017
+427 3567 3800
+3894 3921 3845
+3981 1246 3878
+2383 1088 214
+3922 3864 3902
+3951 2151 2410
+3996 3934 1372
+3932 3163 3803
+1312 3870 3988
+2640 484 2839
+3423 3964 3413
+20 2605 3517
+3886 3997 3991
+3187 3430 2770
+1279 3998 2623
+1995 3602 3941
+3895 3722 3389
+1381 3855 3843
+648 3809 3999
+3233 3102 3962
+1692 1245 3212
+149 340 3590
+1582 4000 3946
+3694 3579 3985
+468 1987 559
+720 3798 3758
+2947 1303 3854
+1667 435 2991
+3617 3998 2138
+2789 2282 3790
+1129 1699 3446
+3997 1733 3120
+2516 3303 277
+2375 3277 1737
+2341 3755 2530
+3838 2132 3721
+3804 2655 3987
+3969 3679 3926
+3632 1752 2044
+2713 2504 2794
+2928 3859 2892
+3813 3867 3986
+2313 2619 1038
+2017 529 3487
+1928 822 854
+3408 2574 3697
+3935 34 3880
+3111 3973 3013
+3642 308 3704
+2537 3159 3034
+3479 3043 2425
+3995 199 2814
+3766 3294 2077
+3432 3680 1906
+2773 1918 1624
+2451 4001 4002
+3415 3996 3146
+2437 3994 3718
+2650 3993 3784
+2220 1821 3643
+3773 2491 223
+3513 3378 2963
+3407 3393 3337
+2248 3989 3397
+2665 2544 3023
+2901 462 3227
+3352 3907 1310
+2284 1020 3332
+1461 3206 139
+3085 3992 2555
+3990 3777 1969
+3943 1266 2649
+2923 3754 995
+137 3185 3877
+3860 3978 3976
+3274 3844 3304
+3738 3888 1478
+3792 3945 3042
+3960 3012 3980
+3554 3445 2498
+2098 2616 3936
+4001 3276 3963
+1336 3582 3930
+3581 2432 3593
+2993 4002 3486
+4000 2297 2937
+3764 1314 1509
+2520 3689 2215
+3545 1513 3919
+934 1015 99
+2450 3982 3709
+841 3899 2030
+3968 3380 3346
+3897 3732 3817
+2925 1011 1607
+3049 3546 2913
+3645 3999 3628
diff --git a/doc/examples/template.tex b/doc/examples/template.tex
index 100fc70..1b98e2b 100644
--- a/doc/examples/template.tex
+++ b/doc/examples/template.tex
@@ -2,6 +2,7 @@
 \usepackage{hevea}
 \usepackage{color}
 \usepackage{graphicx}
+\usepackage{gfs}
 
 \oddsidemargin=4mm
 \evensidemargin=-1mm
@@ -9,9 +10,6 @@
 \textwidth=15.42cm
 \textheight=23.2cm
 
-\newcommand{\gfsweb}{http://gfs.sf.net}
-\newcommand{\htmladdnormallinkfoot}[2]{\footahref{#2}{#1}}
-\newcommand{\htmladdnormallink}[2]{\ahref{#2}{#1}}
 \renewcommand{\cuttingunit}{subsection}
 
 \title{Gerris examples}
@@ -21,9 +19,7 @@
 \mbox{}\vspace{1cm}
 \begin{center}
 {\huge Gerris examples}\\
-{\large Version GFS_VERSION}\\
-\vspace{5mm}
-{\large St\'ephane Popinet\\
+{\large Version GFS_VERSION\\
 \vspace{5mm}
 \today}
 \vspace{1cm}
@@ -51,11 +47,15 @@ The usefulness and quality of this document very much depend on the contribution
 \input{rt/rt.tex}
 \input{boussinesq/boussinesq.tex}
 \input{logo/logo.tex}
+\input{column/column.tex}
 
 \section{3D}
 
 \input{tangaroa/tangaroa.tex}
+\input{plateau/plateau.tex}
+\input{atomisation/atomisation.tex}
 \input{ship/ship.tex}
+\input{forcedturbulence/forcedturbulence.tex}
 
 \section{Shallow-water}
 
@@ -65,10 +65,13 @@ The usefulness and quality of this document very much depend on the contribution
 
 \input{dam/dam.tex}
 \input{hump/hump.tex}
+\input{monai/monai.tex}
+\input{tsunami/tsunami.tex}
 
 \section{Waves}
 
 \input{garden/garden.tex}
+\input{cyclone/cyclone.tex}
 
 \section{\label{howto}How to write examples}
 
@@ -104,4 +107,7 @@ Note that this script requires \footahref{http://pauillac.inria.fr/\~maranget/he
 \item Send me ({\tt s.popinet at niwa.cri.nz}) your example ({\tt myexample.tgz} as an attachment). Tell me which section, subsection you think it would most naturally fit in (or request a new section). I will then review it and integrate it in this document.
 \end{enumerate}
 
+\bibliographystyle{plain}
+\bibliography{examples}
+
 \end{document}
diff --git a/doc/examples/tides/amplitude.gfv b/doc/examples/tides/amplitude.gfv
new file mode 100644
index 0000000..e9282b8
--- /dev/null
+++ b/doc/examples/tides/amplitude.gfv
@@ -0,0 +1,23 @@
+# GfsView 3D
+View {
+  tx = 0 ty = 0
+  sx = 1 sy = 1 sz = 1
+  q0 = 0 q1 = 0 q2 = 0 q3 = 1
+  fov = 19.1745
+  r = 0.3 g = 0.4 b = 0.6
+  res = 1
+  lc = 0.001
+  reactivity = 0.1
+}
+Squares {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} sqrt(A0*A0+B0*B0)/9.81 {
+  amin = 1
+  amax = 1
+  cmap = Jet
+}
diff --git a/doc/examples/tides/bathymetry b/doc/examples/tides/bathymetry
new file mode 100644
index 0000000..b6f1c33
--- /dev/null
+++ b/doc/examples/tides/bathymetry
@@ -0,0 +1,31800 @@
+156.75 -58 -3725.55
+156.75 -58.4398 -3130.63
+156.75 -58.8734 -3190.48
+156.75 -59.2987 -3035.08
+156.75 -59.7468 -3152.65
+156.75 -60.1725 -3100.64
+156.75 -60.6202 -2997
+156.75 -61.0592 -2997
+156.75 -61.4937 -2997
+156.75 -61.9098 -2497
+156.75 -62.3671 -1997.01
+156.75 -62.8059 -2372
+156.75 -63.2405 -2747
+156.75 -63.6928 -2872
+156.75 -64.1541 -2997
+156.75 -64.5795 -3036.33
+156.75 -65 -3075.2
+157.774 -65 -3049.74
+158.805 -65 -3024.11
+159.896 -65 -2997
+160.792 -65 -2997
+161.69 -65 -2997
+162.475 -65 -2997
+163.248 -65 -2997
+164.305 -65 -2997
+165.704 -65 -2997
+166.975 -65 -2997
+168.28 -65 -2997
+169.544 -65 -2997
+171.144 -65 -2497.01
+172.429 -65 -2997
+173.84 -65 -2997
+175.364 -65 -2997
+176.593 -65 -2997
+177.47 -65 -2493.85
+178.335 -65 -1997.01
+179.38 -65 -1997
+180.341 -65 -1997
+181.199 -65 -2456.31
+182.209 -65 -2997
+183.064 -65 -2997
+183.855 -65 -2997
+184.891 -65 -2997
+185.961 -65 -2997
+186.741 -65 -2997
+187.373 -65 -2997
+188.061 -65 -2997
+188.836 -65 -2997
+189.683 -65 -2997
+190.42 -65 -2997
+191.231 -65 -2997
+191.972 -65 -2997
+192.687 -65 -2997
+193.441 -65 -2997
+194.34 -65 -2997
+195.157 -65 -2997
+196.068 -65 -2997
+196.953 -65 -2997
+198.054 -65 -3542.24
+198.973 -65 -3997
+199.768 -65 -3997
+200.516 -65 -3997
+201.239 -65 -3997
+201.941 -65 -3997
+202.908 -65 -3997
+203.888 -65 -3997
+205.092 -65 -3997
+206.239 -65 -3997
+207.699 -65 -3997
+208.883 -65 -3997
+210 -65 -3997
+210 -64.5455 -3997
+210 -64.1541 -3997
+210 -63.6714 -3468.69
+210 -63.2405 -2997.01
+210 -62.7973 -2997
+210 -62.3671 -2997
+210 -61.9232 -2997
+210 -61.4937 -2997
+210 -61.0239 -2997
+210 -60.6202 -2997
+210 -60.1546 -2997
+210 -59.7468 -2997
+210 -59.293 -2997
+210 -58.8734 -2997
+210 -58.4188 -2972.56
+210 -58 -2950.05
+210 -57.6891 -2981.57
+210 -57.3927 -3011.61
+210 -57.1325 -3038
+210 -56.879 -3063.69
+210 -56.5115 -3229.41
+210 -56.2065 -3366.91
+210 -55.912 -3499.69
+210 -55.588 -3645.79
+210 -55.1451 -3810.47
+210 -54.7371 -3962.21
+210 -54.3421 -4109.08
+210 -53.995 -4238.09
+210 -53.4898 -4159.06
+210 -52.9864 -4057.29
+210 -52.454 -3997
+210 -51.9265 -4039.19
+210 -51.4447 -4077.69
+210 -50.959 -4116.54
+210 -50.4211 -4200.34
+210 -49.9285 -4277.07
+210 -49.45 -4351.58
+210 -48.566 -4256.36
+210 -47.9089 -4346.04
+210 -47.3737 -4419.11
+210 -46.803 -4497.02
+210 -46.2601 -4565.15
+210 -45.7462 -4628.77
+210 -45.298 -4684.06
+210 -44.6743 -4851.3
+210 -44.13 -4997
+210 -43.5714 -4997
+210 -42.973 -4997
+210 -42.2961 -4997
+210 -41.729 -4997
+210 -41.0543 -4975.38
+210 -40.3369 -4952.38
+210 -39.581 -4928.15
+210 -38.7562 -5212.58
+210 -38.1354 -5302.61
+210 -37.385 -5496.99
+210 -36.6726 -5367.51
+210 -36.0302 -5293.49
+210 -35.281 -5181.15
+210 -34.5419 -5129.04
+210 -33.889 -5072.27
+210 -33.222 -5035.97
+210 -32.5707 -5052.16
+210 -31.9712 -5067.11
+210 -31.376 -5081.99
+210 -30.7933 -4944.6
+210 -30.1617 -4900.44
+210 -29.538 -4807.19
+210 -28.8812 -4698.89
+210 -28.2709 -4598.42
+210 -27.654 -4497
+210 -27.093 -4524.65
+210 -26.5044 -4553.69
+210 -25.914 -4582.78
+210 -25.4094 -4756.52
+210 -24.9063 -4811.36
+210 -24.387 -4930.2
+210 -23.75 -4797
+209.22 -23.75 -4797
+208.457 -23.75 -4797
+207.679 -23.75 -4797
+207.227 -23.75 -4797
+206.708 -23.75 -4797
+205.929 -23.75 -4797
+205.081 -23.75 -4797
+204.577 -23.75 -4797
+204.049 -23.75 -4797
+203.419 -23.75 -4797
+202.847 -23.75 -4797
+202.149 -23.75 -4797
+201.392 -23.75 -4797
+200.814 -23.75 -4797
+200.164 -23.75 -4797
+199.381 -23.75 -4738.84
+198.585 -23.75 -4679.68
+197.773 -23.75 -4736.87
+196.919 -23.75 -4797
+196.246 -23.75 -4517.78
+195.532 -23.75 -4221.66
+194.815 -23.75 -4844.12
+194.063 -23.75 -5497
+193.557 -23.75 -5498.33
+193.01 -23.75 -5499.76
+192.467 -23.75 -5565.35
+191.873 -23.75 -5640.08
+191.022 -23.75 -5747
+190.293 -23.75 -5747
+189.564 -23.75 -5747
+188.835 -23.75 -4797
+188.106 -23.75 -5497
+187.376 -23.75 -5497
+186.647 -23.75 -5497.01
+185.918 -23.75 -5747.06
+185.189 -23.75 -7996.93
+184.46 -23.75 -5497
+184.092 -23.75 -3229.03
+183.73 -23.75 -997.03
+183.384 -23.75 -1472.04
+183.001 -23.75 -1997
+182.652 -23.75 -1997
+182.272 -23.75 -1997
+181.942 -23.75 -1997
+181.543 -23.75 -1996.99
+181.175 -23.75 -1744.53
+180.814 -23.75 -1497.02
+180.454 -23.75 -1989.76
+180.084 -23.75 -2497.03
+179.763 -23.75 -2937.34
+179.355 -23.75 -3497.01
+179.016 -23.75 -3729.72
+178.626 -23.75 -3997.01
+177.897 -23.75 -4247
+177.168 -23.75 -4247.01
+176.438 -23.75 -4497
+176.107 -23.75 -4497
+175.709 -23.75 -4497
+175.346 -23.75 -4497
+174.98 -23.75 -4496.99
+174.638 -23.75 -4379.57
+174.251 -23.75 -4247
+173.901 -23.75 -4247
+173.522 -23.75 -4247
+173.18 -23.75 -4129.74
+172.792 -23.75 -3997
+172.443 -23.75 -3997
+172.063 -23.75 -3997
+171.722 -23.75 -3997
+171.334 -23.75 -3996.98
+171.004 -23.75 -3657.67
+170.605 -23.75 -3246.98
+170.283 -23.75 -2915.92
+169.876 -23.75 -2496.99
+169.548 -23.75 -2272.53
+169.146 -23.75 -1997
+168.797 -23.75 -1997
+168.417 -23.75 -1996.99
+168.084 -23.75 -1768.46
+167.688 -23.75 -1497.03
+167.34 -23.75 -2212.46
+166.959 -23.75 -2997
+166.63 -23.75 -2997
+166.23 -23.75 -2997.01
+165.882 -23.75 -3235.08
+165.5 -23.75 -3497
+165.17 -23.75 -3497
+164.771 -23.75 -3496.98
+164.413 -23.75 -3128.96
+164.042 -23.75 -2746.99
+163.691 -23.75 -2626.8
+163.313 -23.75 -2496.99
+162.946 -23.75 -2245.62
+162.584 -23.75 -1996.97
+162.216 -23.75 -1492.88
+161.854 -23.75 -997.01
+161.525 -23.75 -1448.73
+161.125 -23.75 -1997
+160.786 -23.75 -1997
+160.396 -23.75 -1997.01
+160.057 -23.75 -2229.66
+159.667 -23.75 -2497
+159.295 -23.75 -2497
+158.938 -23.75 -2497
+158.56 -23.75 -2497
+158.208 -23.75 -2497
+157.833 -23.75 -2497
+157.479 -23.75 -2497
+157.119 -23.75 -2497
+156.75 -23.75 -2497
+156.75 -24.0711 -2497
+156.75 -24.429 -2497
+156.75 -24.7595 -3144.87
+156.75 -25.108 -3727
+156.75 -25.4381 -4521.78
+156.75 -25.788 -4616.48
+156.75 -26.1179 -4683.47
+156.75 -26.467 -4729.7
+156.75 -26.7965 -4683.4
+156.75 -27.146 -4806.83
+156.75 -27.4651 -4578.21
+156.75 -27.825 -4518.5
+156.75 -28.1535 -4642.03
+156.75 -28.504 -4632.45
+156.75 -28.8479 -4618.64
+156.75 -29.184 -4628.01
+156.75 -29.5265 -4708.36
+156.75 -29.863 -4831.02
+156.75 -30.205 -4776.25
+156.75 -30.542 -4560.52
+156.75 -30.854 -4423.76
+156.75 -31.221 -4545.54
+156.75 -31.5684 -4560.61
+156.75 -31.9 -4486.62
+156.75 -32.2273 -4600.16
+156.75 -32.58 -4540.46
+156.75 -32.9058 -4752.16
+156.75 -33.259 -4739.81
+156.75 -33.5943 -4839.79
+156.75 -33.938 -4740.68
+156.75 -34.2445 -4714.94
+156.75 -34.617 -4624.96
+156.75 -34.9526 -4592.94
+156.75 -35.296 -4676.02
+156.75 -35.6509 -4620.2
+156.75 -35.976 -4639.38
+156.75 -36.3096 -4651
+156.75 -36.655 -4502.89
+156.75 -37.008 -4593.6
+156.75 -37.334 -4644.42
+156.75 -37.652 -4571.03
+156.75 -38.013 -4559.06
+156.75 -38.3578 -4740.84
+156.75 -38.692 -4682.94
+156.75 -39.0393 -4775.23
+156.75 -39.372 -4784.23
+156.75 -39.7114 -4877.75
+156.75 -40.051 -4546.21
+156.75 -40.402 -4602.25
+156.75 -40.73 -4481.06
+156.75 -41.066 -4526.2
+156.75 -41.409 -4417.56
+156.75 -41.7381 -4469.51
+156.75 -42.088 -4643.66
+156.75 -42.4195 -4776.83
+156.75 -42.768 -4691.59
+156.75 -43.1196 -4658.47
+156.75 -43.447 -4878.57
+156.75 -43.7974 -5002.07
+156.75 -44.126 -4671.1
+156.75 -44.4601 -4584.23
+156.75 -44.805 -4687.98
+156.75 -45.1416 -4557.73
+156.75 -45.484 -4956.78
+156.75 -45.8323 -4650.78
+156.75 -46.164 -4627.06
+156.75 -46.4962 -4634.92
+156.75 -46.843 -4790.89
+156.75 -47.1869 -4684.25
+156.75 -47.522 -4637.72
+156.75 -47.8684 -4695.77
+156.75 -48.201 -4578.35
+156.75 -48.5311 -4729.45
+156.75 -48.88 -4684.75
+156.75 -49.2418 -4751.12
+156.75 -49.56 -4547.7
+156.75 -49.8951 -4522.25
+156.75 -50.239 -4371.93
+156.75 -50.5671 -4397.55
+156.75 -50.918 -4470.87
+156.75 -51.2672 -4537.39
+156.75 -51.597 -4532.24
+156.75 -51.936 -4280.34
+156.75 -52.276 -4432.12
+156.75 -52.6266 -4471.85
+156.75 -52.956 -4397.02
+156.75 -53.336 -4116.72
+156.75 -53.635 -4044.86
+156.75 -53.9707 -4186.02
+156.75 -54.314 -4242.03
+156.75 -54.644 -4017.41
+156.75 -54.993 -4019.91
+156.75 -55.3443 -4158.7
+156.75 -55.672 -3958.87
+156.75 -56.0163 -3633.15
+156.75 -56.36 -3657.1
+156.75 -56.6884 -3569.28
+156.75 -57.009 -3412.77
+156.75 -57.3476 -3587.77
+156.75 -57.713 -3831.02
+173.052 -35.19 2.99
+173.065 -35.165 2.99
+173.095 -35.174 3
+173.124 -35.182 3
+173.151 -35.164 3
+173.168 -35.133 2.98
+173.172 -35.06 2.98
+173.146 -34.993 2.98
+173.111 -34.9432 3
+173.077 -34.8971 3
+173.039 -34.845 2.98
+172.997 -34.7977 2.99
+172.956 -34.7544 1.08
+172.903 -34.693 2.99
+172.849 -34.63 2.99
+172.797 -34.5867 1.51
+172.741 -34.538 2.99
+172.702 -34.525 3
+172.688 -34.492 2.99
+172.641 -34.478 2.97
+172.673 -34.467 3
+172.676 -34.423 3
+172.738 -34.4383 3
+172.804 -34.456 3
+172.846 -34.44 3
+172.857 -34.43 3
+172.854 -34.417 2.99
+172.916 -34.4209 3
+172.965 -34.428 3
+173.002 -34.398 2.96
+173.021 -34.398 3
+173.046 -34.413 3
+173.024 -34.417 3
+173.005 -34.434 3
+173.001 -34.466 3
+172.998 -34.487 3
+173.004 -34.513 3
+172.989 -34.53 3
+172.999 -34.5791 3
+173.011 -34.629 3
+173.034 -34.672 3
+173.058 -34.703 3
+173.086 -34.725 3
+173.112 -34.735 3
+173.128 -34.762 3
+173.139 -34.769 3
+173.151 -34.767 3
+173.145 -34.783 3
+173.164 -34.791 3
+173.172 -34.803 3
+173.163 -34.805 3
+173.161 -34.813 3
+173.167 -34.823 3
+173.162 -34.851 3
+173.205 -34.876 3
+173.266 -34.884 3
+173.285 -34.878 3
+173.287 -34.857 2.99
+173.307 -34.863 3
+173.349 -34.856 2.99
+173.389 -34.839 2.99
+173.396 -34.816 3
+173.384 -34.811 2.99
+173.387 -34.8 3
+173.397 -34.799 3
+173.397 -34.783 2.98
+173.411 -34.795 3
+173.407 -34.807 3
+173.416 -34.818 3
+173.407 -34.823 3
+173.423 -34.835 3
+173.425 -34.827 3
+173.45 -34.825 2.99
+173.441 -34.838 3
+173.467 -34.847 3
+173.459 -34.861 3
+173.437 -34.863 3
+173.412 -34.881 3
+173.376 -34.876 3
+173.369 -34.911 3
+173.388 -34.95 3
+173.408 -34.971 3
+173.43 -34.987 3
+173.452 -34.985 3
+173.505 -34.992 3
+173.524 -34.982 2.99
+173.528 -34.98 2.99
+173.538 -34.97 2.99
+173.524 -34.949 2.99
+173.556 -34.928 2.98
+173.555 -34.915 2.77
+173.572 -34.925 3
+173.567 -34.928 3
+173.572 -34.944 3
+173.59 -34.937 2.98
+173.598 -34.933 2.98
+173.619 -34.939 3
+173.619 -34.951 3
+173.639 -34.953 3
+173.647 -34.966 3
+173.675 -34.96 3
+173.682 -34.948 2.95
+173.702 -34.954 3
+173.7 -34.967 3
+173.714 -34.979 3
+173.711 -34.993 3
+173.755 -35.002 3
+173.801 -35.001 3
+173.812 -34.992 3
+173.843 -35 3
+173.866 -35.021 3
+173.885 -35.022 3
+173.894 -35.008 2.97
+173.901 -35.021 3
+173.918 -35.027 3
+173.937 -35.054 3
+173.931 -35.06 3
+173.928 -35.072 3
+173.942 -35.096 3
+173.938 -35.104 3
+173.963 -35.119 3
+173.979 -35.124 3
+173.993 -35.116 2.97
+174.004 -35.123 3
+174.037 -35.1164 3
+174.074 -35.116 3
+174.088 -35.127 3
+174.097 -35.15 -2
+174.131 -35.156 2.99
+174.118 -35.171 2.95
+174.102 -35.1687 3
+174.088 -35.1743 3
+174.074 -35.1799 3
+174.065 -35.1906 -7
+174.054 -35.1746 2
+174.052 -35.1476 2
+174.037 -35.1645 2
+174.017 -35.1472 2
+173.991 -35.1452 2
+174.01 -35.1679 2
+174.029 -35.1836 2
+174.046 -35.1945 2
+174.031 -35.198 2
+174.019 -35.1935 2
+174.002 -35.1937 2
+173.989 -35.2069 2
+174.005 -35.2104 2
+174.021 -35.2096 2
+174.034 -35.2095 2
+174.047 -35.2068 2
+174.054 -35.2138 -7
+174.062 -35.2154 -7
+174.07 -35.2133 0
+174.063 -35.2196 3
+174.056 -35.2288 3
+174.065 -35.2365 3
+174.077 -35.2426 3
+174.071 -35.2579 3
+174.082 -35.2626 -2
+174.085 -35.2799 3
+174.1 -35.2903 3
+174.103 -35.3006 -7
+174.101 -35.307 3
+174.107 -35.3052 -7
+174.114 -35.3105 -2
+174.121 -35.3147 1
+174.118 -35.32 2
+174.11 -35.3257 2
+174.104 -35.3264 2
+174.101 -35.3307 2
+174.106 -35.3313 2
+174.111 -35.3318 2
+174.116 -35.3333 2
+174.112 -35.3369 2
+174.107 -35.3386 2
+174.102 -35.3419 2
+174.103 -35.3462 2
+174.107 -35.3471 2
+174.107 -35.3439 2
+174.111 -35.3422 2
+174.116 -35.34 2
+174.121 -35.3375 2
+174.122 -35.3313 2
+174.123 -35.326 2
+174.126 -35.32 2
+174.129 -35.3262 2
+174.131 -35.3184 2
+174.138 -35.318 2
+174.136 -35.3255 2
+174.135 -35.3347 2
+174.134 -35.3417 2
+174.14 -35.3388 2
+174.143 -35.3306 2
+174.147 -35.3357 2
+174.152 -35.3349 2
+174.157 -35.3355 2
+174.161 -35.3391 2
+174.163 -35.3344 2
+174.168 -35.3365 2
+174.167 -35.3321 2
+174.172 -35.3301 2
+174.168 -35.3274 2
+174.164 -35.3283 2
+174.159 -35.3304 2
+174.155 -35.3307 2
+174.148 -35.3283 2
+174.144 -35.3211 2
+174.151 -35.3176 2
+174.162 -35.3172 2
+174.171 -35.3142 2
+174.178 -35.3141 2
+174.18 -35.3227 2
+174.188 -35.3199 2
+174.196 -35.3209 2
+174.206 -35.3232 2
+174.213 -35.3273 2
+174.213 -35.3176 2
+174.204 -35.3132 2
+174.194 -35.3132 2
+174.188 -35.3079 2
+174.189 -35.299 2
+174.181 -35.3041 2
+174.175 -35.3053 2
+174.168 -35.2929 2
+174.164 -35.3042 2
+174.154 -35.3064 2
+174.144 -35.3104 2
+174.135 -35.3088 2
+174.127 -35.3109 1
+174.122 -35.3087 -2
+174.116 -35.3046 -7
+174.124 -35.3036 -2
+174.118 -35.2965 -7
+174.114 -35.2923 -7
+174.11 -35.2855 -7
+174.124 -35.2812 1
+174.131 -35.2883 2
+174.139 -35.2925 2.5
+174.149 -35.2908 3
+174.144 -35.2826 2.5
+174.135 -35.2833 2
+174.132 -35.2739 1
+174.121 -35.2684 1
+174.113 -35.2597 -2
+174.12 -35.2442 -2
+174.135 -35.2544 -2
+174.134 -35.2628 3
+174.144 -35.2616 -2
+174.161 -35.2694 -2
+174.17 -35.2789 1
+174.181 -35.2782 2
+174.175 -35.2663 -2
+174.185 -35.2673 -2
+174.195 -35.2733 -2
+174.201 -35.282 1
+174.206 -35.2855 2
+174.212 -35.2832 3
+174.208 -35.2789 2
+174.204 -35.2739 0
+174.212 -35.2743 2
+174.218 -35.2693 3
+174.211 -35.2669 1
+174.203 -35.2621 -2
+174.209 -35.2625 2
+174.208 -35.2561 2
+174.201 -35.2542 -2
+174.194 -35.2572 -2
+174.188 -35.25 0.72
+174.195 -35.2532 2.65
+174.198 -35.2477 -0.37
+174.202 -35.2523 2.28
+174.209 -35.2528 -2
+174.217 -35.247 0.67
+174.23 -35.2485 -5
+174.229 -35.2609 3
+174.238 -35.2554 -2
+174.247 -35.2586 0
+174.255 -35.2621 2.5
+174.263 -35.258 3
+174.255 -35.2549 2.5
+174.249 -35.2518 -2
+174.238 -35.2455 -2
+174.245 -35.2441 3
+174.242 -35.2382 -1.5
+174.255 -35.24 1
+174.26 -35.2347 1.56
+174.254 -35.2316 -2.45
+174.261 -35.2277 -5.16
+174.252 -35.2201 -18.22
+174.269 -35.2219 -7.11
+174.264 -35.2313 0.85
+174.276 -35.2319 -2
+174.287 -35.2238 1.5
+174.289 -35.204 2.97
+174.3 -35.2047 -12
+174.305 -35.1955 2.99
+174.293 -35.1887 2.67
+174.314 -35.1805 3
+174.326 -35.186 3
+174.331 -35.1704 -18.36
+174.332 -35.1831 3
+174.34 -35.1934 -11.83
+174.319 -35.1968 3
+174.319 -35.2141 2.57
+174.316 -35.2216 -12.2
+174.306 -35.2182 3
+174.305 -35.2267 -6.37
+174.291 -35.2343 3
+174.301 -35.2421 3
+174.313 -35.2385 -3.98
+174.322 -35.2562 -10.88
+174.296 -35.2579 3
+174.31 -35.2882 -6.88
+174.318 -35.3091 3
+174.375 -35.318 -9.32
+174.352 -35.331 3
+174.356 -35.349 3
+174.381 -35.359 1.18
+174.372 -35.368 3
+174.376 -35.377 0.92
+174.333 -35.333 3
+174.326 -35.339 3
+174.326 -35.346 1.89
+174.316 -35.354 3
+174.319 -35.359 3
+174.33 -35.356 3
+174.357 -35.415 3
+174.368 -35.411 -0.48
+174.362 -35.423 3
+174.362 -35.435 3
+174.393 -35.429 0.96
+174.394 -35.44 3
+174.408 -35.442 3
+174.423 -35.432 3
+174.418 -35.424 -0.57
+174.43 -35.455 3
+174.455 -35.486 3
+174.467 -35.5 3
+174.48 -35.512 2.87
+174.478 -35.517 1.72
+174.473 -35.51 3
+174.467 -35.513 3
+174.46 -35.529 3
+174.473 -35.551 3
+174.494 -35.56 3
+174.51 -35.554 -0.01
+174.508 -35.564 3
+174.52 -35.563 1.08
+174.538 -35.583 1.96
+174.542 -35.597 -0.92
+174.527 -35.609 3
+174.53 -35.619 3
+174.536 -35.64 0.48
+174.509 -35.635 3
+174.501 -35.647 3
+174.509 -35.676 3
+174.523 -35.71 3
+174.539 -35.712 3
+174.568 -35.716 3
+174.553 -35.727 3
+174.561 -35.741 -2.38
+174.552 -35.742 3
+174.553 -35.762 3
+174.55 -35.793 3
+174.567 -35.829 3
+174.59 -35.856 3
+174.555 -35.864 -0.18
+174.536 -35.858 3
+174.504 -35.8298 3
+174.5 -35.842 0.94
+174.479 -35.861 3
+174.454 -35.903 3
+174.467 -35.9526 0.93
+174.479 -35.996 3
+174.507 -36.029 3
+174.538 -36.049 3
+174.569 -36.05 3
+174.578 -36.043 0.15
+174.63 -36.1331 -0.4
+174.703 -36.226 3
+174.748 -36.259 3
+174.808 -36.289 3
+174.809 -36.297 -0.15
+174.796 -36.306 3
+174.799 -36.324 -6.67
+174.781 -36.3252 1.71
+174.788 -36.35 3
+174.805 -36.349 1.98
+174.839 -36.371 3
+174.868 -36.369 -3.56
+174.794 -36.38 3
+174.778 -36.387 3
+174.747 -36.438 3
+174.765 -36.442 3
+174.78 -36.442 -7.3
+174.765 -36.449 3
+174.739 -36.495 1
+174.737 -36.4886 2.87
+174.748 -36.4834 3
+174.748 -36.4773 2.8
+174.744 -36.4719 2.5
+174.746 -36.4641 3
+174.74 -36.4651 2.8
+174.737 -36.4701 2.8
+174.724 -36.4821 0.47
+174.734 -36.4669 1
+174.731 -36.4592 2
+174.731 -36.4491 2
+174.727 -36.4343 3
+174.717 -36.4316 2.8
+174.72 -36.4227 3
+174.709 -36.4285 2.5
+174.7 -36.4254 2.8
+174.689 -36.4191 3
+174.694 -36.4299 2.8
+174.692 -36.4361 3
+174.709 -36.4456 2.5
+174.697 -36.4467 3
+174.701 -36.4612 2.8
+174.695 -36.4659 3
+174.699 -36.4682 2.8
+174.706 -36.4671 2.8
+174.707 -36.4735 3
+174.709 -36.4805 2
+174.71 -36.4764 3
+174.705 -36.4754 3
+174.698 -36.4752 2.8
+174.693 -36.4777 2.8
+174.687 -36.4825 2.8
+174.683 -36.4846 3
+174.687 -36.4866 2.9
+174.694 -36.4891 3
+174.706 -36.4965 3
+174.721 -36.5087 -2
+174.729 -36.517 3
+174.721 -36.5159 2
+174.716 -36.5115 2.5
+174.709 -36.5114 3
+174.714 -36.5176 2
+174.72 -36.5256 2.99
+174.711 -36.5243 1
+174.705 -36.5291 2
+174.702 -36.5247 2.8
+174.694 -36.5251 2.8
+174.688 -36.5262 2.8
+174.685 -36.5268 2.8
+174.68 -36.526 2.8
+174.676 -36.5214 3
+174.675 -36.529 2.9
+174.684 -36.5321 2.9
+174.687 -36.5293 3
+174.691 -36.5291 2.8
+174.699 -36.5311 2
+174.707 -36.5363 2
+174.713 -36.5296 -2
+174.708 -36.5412 2
+174.703 -36.5389 2.5
+174.695 -36.5398 2.8
+174.689 -36.5382 2.5
+174.684 -36.5386 3
+174.685 -36.542 2.9
+174.692 -36.544 2.8
+174.7 -36.543 2.5
+174.705 -36.5437 2
+174.71 -36.545 1
+174.708 -36.563 3
+174.695 -36.564 3
+174.691 -36.577 3
+174.706 -36.601 3
+174.736 -36.624 3
+174.749 -36.62 2.64
+174.761 -36.629 3
+174.841 -36.608 3
+174.807 -36.61 3
+174.806 -36.627 3
+174.791 -36.6298 2.16
+174.774 -36.626 3
+174.745 -36.661 2.99
+174.749 -36.683 3
+174.761 -36.697 3
+174.75 -36.715 3
+174.754 -36.736 3
+174.777 -36.777 3
+174.776 -36.788 3
+174.796 -36.81 3
+174.814 -36.829 -2.58
+174.794 -36.8305 -5
+174.774 -36.8269 0.75
+174.79 -36.8241 3
+174.782 -36.8167 3
+174.767 -36.8204 2
+174.779 -36.8083 3
+174.77 -36.7983 3
+174.752 -36.8168 2
+174.747 -36.8268 -1.8
+174.743 -36.818 3
+174.732 -36.8227 -7
+174.697 -36.8205 -5
+174.681 -36.7935 2.8
+174.684 -36.7883 3
+174.688 -36.7863 3
+174.695 -36.784 3
+174.703 -36.7829 3
+174.697 -36.7793 3
+174.69 -36.7816 3
+174.685 -36.7833 3
+174.68 -36.7872 2.8
+174.672 -36.785 2.8
+174.665 -36.7804 2.8
+174.663 -36.7732 3
+174.664 -36.7681 3
+174.669 -36.7662 3
+174.68 -36.7614 3
+174.678 -36.7492 3
+174.668 -36.7577 3
+174.663 -36.7644 3
+174.66 -36.7687 3
+174.653 -36.7717 3
+174.644 -36.7697 3
+174.636 -36.7709 3
+174.634 -36.7668 3
+174.635 -36.7619 3
+174.636 -36.759 3
+174.633 -36.759 3
+174.631 -36.7628 3
+174.63 -36.7674 3
+174.627 -36.7721 3
+174.623 -36.7745 3
+174.617 -36.7738 3
+174.613 -36.7728 3
+174.61 -36.7721 3
+174.606 -36.7658 3
+174.598 -36.7604 3
+174.598 -36.7687 3
+174.605 -36.7727 3
+174.602 -36.7784 3
+174.599 -36.7833 3
+174.596 -36.7894 3
+174.601 -36.7946 3
+174.603 -36.7883 3
+174.604 -36.7829 3
+174.606 -36.7791 3
+174.61 -36.7755 3
+174.614 -36.7755 3
+174.617 -36.779 3
+174.622 -36.7775 3
+174.626 -36.7762 3
+174.632 -36.7764 3
+174.64 -36.7753 3
+174.645 -36.775 3
+174.646 -36.7806 3
+174.653 -36.7779 3
+174.661 -36.7776 3
+174.657 -36.7812 3
+174.649 -36.7837 3
+174.642 -36.7867 3
+174.641 -36.7953 3
+174.649 -36.7912 3
+174.656 -36.7872 3
+174.666 -36.788 2.8
+174.673 -36.7904 2.8
+174.673 -36.8103 2.29
+174.653 -36.803 2.8
+174.637 -36.8231 3
+174.64 -36.8336 3
+174.645 -36.8261 3
+174.661 -36.8323 2.8
+174.657 -36.8554 2.8
+174.656 -36.8779 3
+174.673 -36.8831 3
+174.667 -36.8647 2.8
+174.693 -36.8807 2.8
+174.704 -36.8511 0.89
+174.716 -36.8583 3
+174.749 -36.8442 3
+174.757 -36.8368 -4.27
+174.769 -36.8444 -5
+174.785 -36.8425 -7
+174.793 -36.8565 2
+174.801 -36.8638 3
+174.814 -36.8613 3
+174.854 -36.851 3
+174.9 -36.848 2.71
+174.915 -36.877 3
+175.019 -36.884 3
+175.069 -36.905 3
+175.077 -36.917 3
+175.131 -36.941 3
+175.154 -36.95 3
+175.17 -36.949 3
+175.213 -36.946 3
+175.287 -37.02 3
+175.34 -37.209 3
+175.403 -37.223 3
+175.447 -37.216 3
+175.515 -37.186 3
+175.55 -37.151 3
+175.524 -37.057 3
+175.5 -36.978 3
+175.416 -36.874 1.51
+175.425 -36.822 2.98
+175.444 -36.809 1.9
+175.48 -36.803 1.48
+175.491 -36.809 3
+175.504 -36.798 2.99
+175.504 -36.781 3
+175.498 -36.774 3
+175.494 -36.763 3
+175.475 -36.754 2.99
+175.478 -36.734 2.99
+175.459 -36.725 3
+175.439 -36.729 2.99
+175.446 -36.657 2.98
+175.427 -36.607 1.13
+175.419 -36.59 2.99
+175.384 -36.5734 2.99
+175.344 -36.554 0.98
+175.328 -36.481 -1.04
+175.343 -36.484 3
+175.344 -36.472 2.17
+175.39 -36.476 3
+175.416 -36.473 -15.43
+175.409 -36.478 3
+175.425 -36.497 -7.9
+175.458 -36.526 3
+175.476 -36.532 3
+175.509 -36.521 -5.51
+175.536 -36.545 3
+175.519 -36.556 3
+175.528 -36.565 3
+175.521 -36.594 0
+175.535 -36.605 3
+175.563 -36.614 3
+175.582 -36.629 3
+175.572 -36.646 3
+175.606 -36.684 -2.83
+175.61 -36.709 3
+175.63 -36.728 1.99
+175.668 -36.726 -1.46
+175.721 -36.72 1.35
+175.736 -36.705 -4.85
+175.78 -36.692 -7.8
+175.787 -36.693 -3.52
+175.794 -36.717 1.38
+175.818 -36.717 -7
+175.824 -36.731 -1.7
+175.818 -36.74 2.99
+175.804 -36.737 3
+175.751 -36.758 -5
+175.74 -36.792 3
+175.726 -36.789 2
+175.72 -36.806 -2
+175.701 -36.8068 1
+175.702 -36.834 1
+175.693 -36.8438 1
+175.681 -36.8406 2.5
+175.669 -36.8348 3
+175.669 -36.8453 2.5
+175.668 -36.8543 3
+175.681 -36.8506 2
+175.681 -36.8637 2
+175.668 -36.87 2.5
+175.669 -36.8816 2.5
+175.685 -36.8914 3
+175.703 -36.8968 2.5
+175.71 -36.9006 2.5
+175.715 -36.8954 3
+175.71 -36.89 2.5
+175.716 -36.8709 3
+175.707 -36.8675 2.5
+175.714 -36.834 1
+175.727 -36.8267 -2.67
+175.74 -36.8347 -0.7
+175.752 -36.8478 2.5
+175.764 -36.8598 2.5
+175.774 -36.8468 3
+175.764 -36.847 2.5
+175.76 -36.8409 2.5
+175.763 -36.835 2.5
+175.758 -36.824 2.06
+175.781 -36.823 -2.12
+175.817 -36.842 -5.11
+175.816 -36.879 3
+175.835 -36.891 -2.54
+175.856 -36.922 -0.65
+175.843 -36.944 3
+175.84 -36.956 3
+175.871 -36.998 1.77
+175.886 -37.028 -2.3
+175.89 -37.112 -0.02
+175.877 -37.141 3
+175.89 -37.193 2.23
+175.887 -37.231 0.69
+175.943 -37.346 2.05
+175.944 -37.3786 0.4
+175.978 -37.4645 -7
+175.966 -37.4439 3
+175.952 -37.4485 3
+175.942 -37.4551 3
+175.936 -37.4641 3
+175.933 -37.4863 3
+175.931 -37.4996 3
+175.944 -37.4952 3
+175.946 -37.5236 2
+175.919 -37.5304 3
+175.93 -37.5565 3
+175.921 -37.5819 3
+175.974 -37.5917 2.8
+175.953 -37.6064 3
+175.963 -37.631 3
+176.014 -37.648 3
+176.048 -37.6267 0.64
+176.035 -37.6447 3
+176.034 -37.6626 3
+176.047 -37.649 1.95
+176.044 -37.6724 3
+176.039 -37.679 3
+176.047 -37.6829 3
+176.055 -37.673 3
+176.063 -37.6659 3
+176.064 -37.6569 0.29
+176.093 -37.6796 3
+176.088 -37.6863 3
+176.089 -37.694 3
+176.125 -37.6756 3
+176.169 -37.6749 0
+176.165 -37.6922 2
+176.163 -37.7088 3
+176.15 -37.7164 3
+176.153 -37.7284 3
+176.164 -37.7209 3
+176.178 -37.7105 2
+176.189 -37.7105 2
+176.179 -37.7231 3
+176.196 -37.7236 3
+176.202 -37.7115 2
+176.211 -37.7112 2
+176.229 -37.7152 3
+176.227 -37.7038 3
+176.234 -37.6967 3
+176.224 -37.6923 3
+176.211 -37.6877 3
+176.205 -37.7027 2
+176.196 -37.7047 2
+176.184 -37.7022 2
+176.183 -37.6891 2
+176.202 -37.6905 3
+176.206 -37.6769 3
+176.196 -37.6748 3
+176.181 -37.6644 -5.47
+176.182 -37.6393 -2
+176.172 -37.624 -4.56
+176.215 -37.6548 -0.03
+176.254 -37.682 1.43
+176.341 -37.7146 1.49
+176.408 -37.742 2.38
+176.409 -37.751 3
+176.427 -37.763 2.17
+176.455 -37.756 1.1
+176.465 -37.74 0.48
+176.483 -37.76 0.55
+176.518 -37.7804 1.22
+176.599 -37.829 3
+176.681 -37.8588 -1.11
+176.787 -37.895 3
+176.826 -37.897 3
+176.941 -37.921 3
+176.998 -37.944 2.61
+177.029 -37.962 3
+177.109 -37.9818 2.56
+177.139 -37.988 3
+177.13 -37.9909 3
+177.119 -37.9886 3
+177.108 -37.9858 1.84
+177.096 -37.9828 3
+177.081 -37.9797 3
+177.07 -37.9815 3
+177.062 -37.9822 3
+177.063 -37.9894 3
+177.055 -37.995 3
+177.06 -37.9997 3
+177.062 -38.0065 3
+177.065 -38.0128 3
+177.071 -38.0096 3
+177.067 -37.9979 3
+177.077 -38.0033 3
+177.085 -38.0084 3
+177.086 -38.0172 3
+177.096 -38.0125 3
+177.113 -38.0077 3
+177.107 -38.0148 3
+177.102 -38.0223 3
+177.121 -38.0208 3
+177.128 -38.0361 3
+177.143 -38.0446 3
+177.155 -38.0471 3
+177.156 -38.0374 3
+177.145 -38.032 3
+177.146 -38.0205 3
+177.156 -38.013 3
+177.163 -38.0026 3
+177.161 -37.99 3
+177.189 -38.0035 3
+177.617 -37.824 2.99
+177.658 -37.801 3
+177.699 -37.724 3
+177.728 -37.679 2.24
+177.753 -37.673 2.75
+177.885 -37.637 2.99
+177.903 -37.607 1.4
+177.997 -37.571 2.99
+178.005 -37.551 3
+178.039 -37.54 1.79
+178.102 -37.5451 -7.04
+178.158 -37.553 3
+178.171 -37.534 -28.99
+178.227 -37.55 3
+178.309 -37.557 3
+178.289 -37.571 3
+178.292 -37.584 3
+178.302 -37.595 3
+178.322 -37.591 3
+178.318 -37.603 3
+178.353 -37.63 3
+178.42 -37.6356 2.24
+178.48 -37.642 3
+178.514 -37.669 3
+178.538 -37.677 3
+178.549 -37.693 3
+178.525 -37.713 3
+178.519 -37.735 3
+178.483 -37.774 3
+178.465 -37.7906 3
+178.448 -37.809 3
+178.447 -37.837 3
+178.428 -37.846 3
+178.405 -37.87 3
+178.4 -37.904 3
+178.388 -37.923 3
+178.395 -37.95 3
+178.365 -37.988 3
+178.335 -38.02 3
+178.337 -38.039 3
+178.355 -38.046 3
+178.371 -38.052 3
+178.363 -38.07 3
+178.374 -38.082 3
+178.366 -38.106 2.98
+178.325 -38.119 3
+178.322 -38.152 3
+178.364 -38.176 3
+178.341 -38.191 3
+178.336 -38.22 3
+178.319 -38.222 3
+178.311 -38.233 3
+178.315 -38.247 3
+178.334 -38.263 3
+178.333 -38.282 3
+178.359 -38.288 3
+178.324 -38.313 2.99
+178.333 -38.333 3
+178.326 -38.34 3
+178.329 -38.354 3
+178.307 -38.365 3
+178.31 -38.383 3
+178.338 -38.384 3
+178.345 -38.419 3
+178.31 -38.436 3
+178.282 -38.474 3
+178.282 -38.507 3
+178.294 -38.53 3
+178.258 -38.5535 2.14
+178.215 -38.579 3
+178.199 -38.605 3
+178.162 -38.631 3
+178.147 -38.651 3
+178.12 -38.658 2.11
+178.08 -38.68 3
+178.072 -38.707 3
+178.049 -38.699 2.99
+178.025 -38.672 3
+178 -38.672 3
+177.969 -38.684 3
+177.94 -38.717 3
+177.934 -38.749 3
+177.97 -38.757 3
+177.946 -38.7711 2.41
+177.931 -38.787 3
+177.919 -38.8216 2.79
+177.913 -38.825 2.78
+177.919 -38.863 3
+177.903 -38.887 3
+177.91 -38.915 2.99
+177.9 -38.9642 3
+177.887 -39.021 3
+177.9 -39.069 3
+177.914 -39.087 3
+177.947 -39.097 3
+177.959 -39.093 2.99
+178.003 -39.111 3
+177.955 -39.141 3
+177.932 -39.166 3
+177.926 -39.168 3
+177.924 -39.191 3
+177.91 -39.223 3
+177.863 -39.264 2.97
+177.857 -39.239 2.97
+177.847 -39.236 2.95
+177.851 -39.215 2.94
+177.839 -39.182 2.98
+177.819 -39.1662 2.96
+177.839 -39.145 3
+177.851 -39.132 2.99
+177.859 -39.104 2.99
+177.863 -39.09 2.98
+177.871 -39.083 3
+177.86 -39.07 3
+177.84 -39.062 3
+177.825 -39.078 3
+177.814 -39.076 3
+177.77 -39.0673 2.36
+177.716 -39.055 3
+177.661 -39.0565 0.05
+177.607 -39.0543 3
+177.559 -39.0555 2.88
+177.513 -39.056 3
+177.453 -39.0637 -1.72
+177.391 -39.069 3
+177.336 -39.0818 3
+177.274 -39.097 3
+177.223 -39.1163 2.12
+177.17 -39.1345 2.85
+177.118 -39.153 3
+177.077 -39.1745 3
+177.04 -39.201 3
+177.034 -39.237 3
+177.017 -39.263 3
+176.98 -39.2987 2.52
+176.938 -39.338 3
+176.917 -39.3486 3
+176.891 -39.384 3
+176.874 -39.434 3
+176.875 -39.466 3
+176.889 -39.481 3
+176.922 -39.478 3
+176.922 -39.556 3
+176.961 -39.622 3
+177.025 -39.651 3
+177.076 -39.637 3
+177.096 -39.646 3
+177.074 -39.6649 3
+177.052 -39.6889 3
+177.011 -39.7312 3
+176.995 -39.7876 3
+177.003 -39.841 3
+176.979 -39.863 3
+176.965 -39.883 3
+176.959 -39.91 3
+176.931 -39.938 3
+176.907 -39.9855 3
+176.887 -40.0275 3
+176.878 -40.062 3
+176.892 -40.079 3
+176.869 -40.1 3
+176.87 -40.132 2.99
+176.845 -40.144 3
+176.83 -40.176 -0.71
+176.787 -40.22 3
+176.74 -40.229 3
+176.708 -40.247 3
+176.682 -40.2806 2.1
+176.665 -40.313 3
+176.67 -40.326 3
+176.638 -40.384 3
+176.633 -40.415 3
+176.623 -40.431 3
+176.631 -40.454 3
+176.622 -40.49 3
+176.556 -40.498 3
+176.492 -40.531 3
+176.472 -40.557 3
+176.469 -40.575 3
+176.42 -40.6109 0.48
+176.39 -40.64 3
+176.367 -40.677 3
+176.311 -40.717 3
+176.288 -40.75 3
+176.285 -40.768 3
+176.269 -40.782 3
+176.256 -40.8186 3
+176.242 -40.859 3
+176.222 -40.88 3
+176.219 -40.899 3
+176.227 -40.905 3
+176.19 -40.9306 1.61
+176.145 -40.96 3
+176.125 -41.002 3
+176.105 -41.022 3
+176.098 -41.057 3
+176.068 -41.103 3
+176.062 -41.13 3
+176.031 -41.1542 2.32
+175.995 -41.178 3
+175.985 -41.2056 3
+175.962 -41.245 3
+175.912 -41.256 3
+175.88 -41.275 3
+175.862 -41.317 3
+175.808 -41.36 3
+175.741 -41.391 3
+175.675 -41.415 3
+175.636 -41.4454 3
+175.598 -41.478 3
+175.513 -41.508 3
+175.469 -41.5417 3
+175.43 -41.573 3
+175.365 -41.572 3
+175.358 -41.586 3
+175.293 -41.614 2.99
+175.236 -41.6086 2.99
+175.218 -41.5431 2.98
+175.193 -41.5264 2.98
+175.208 -41.5004 2.98
+175.207 -41.4754 2.98
+175.221 -41.4552 2.98
+175.218 -41.4488 2.99
+175.216 -41.4344 2.99
+175.201 -41.4224 3
+175.116 -41.3892 2.99
+175.047 -41.3745 3
+175.014 -41.3912 3
+174.991 -41.3932 3
+174.918 -41.4399 2.95
+174.902 -41.4211 2.98
+174.867 -41.4089 2.99
+174.875 -41.3882 2.98
+174.849 -41.3585 2.96
+174.858 -41.3374 2.97
+174.874 -41.327 2.99
+174.89 -41.3061 2.98
+174.904 -41.2838 2.93
+174.912 -41.2592 3
+174.901 -41.255 3
+174.9 -41.2378 2.99
+174.879 -41.2297 3
+174.842 -41.2297 3
+174.787 -41.2652 3
+174.789 -41.2826 3
+174.804 -41.2879 3
+174.804 -41.3044 3
+174.796 -41.3139 3
+174.801 -41.318 3
+174.81 -41.3137 2.99
+174.825 -41.2863 2.97
+174.833 -41.2917 3
+174.827 -41.3158 3
+174.833 -41.3317 3
+174.809 -41.3472 2.98
+174.802 -41.3303 3
+174.796 -41.3301 3
+174.791 -41.3483 3
+174.786 -41.3435 3
+174.766 -41.3509 3
+174.744 -41.3484 3
+174.716 -41.363 2.99
+174.693 -41.348 3
+174.66 -41.3423 2.98
+174.631 -41.321 -3.93
+174.613 -41.278 2.94
+174.641 -41.2409 2.95
+174.662 -41.2482 3
+174.693 -41.2216 2.95
+174.714 -41.2191 3
+174.739 -41.1732 2.96
+174.78 -41.1424 1.49
+174.804 -41.1151 3
+174.832 -41.1074 2.99
+174.838 -41.0942 2.97
+174.852 -41.091 0
+174.859 -41.0952 2
+174.861 -41.102 1
+174.854 -41.1076 1.5
+174.85 -41.1133 2.5
+174.84 -41.1154 2.5
+174.837 -41.1203 2.5
+174.837 -41.1247 2.5
+174.84 -41.1277 2.97
+174.842 -41.1247 2.5
+174.848 -41.1203 2.5
+174.855 -41.1156 2
+174.861 -41.1084 1
+174.867 -41.1032 1.5
+174.865 -41.0979 1.5
+174.866 -41.0917 2
+174.864 -41.0836 2.5
+174.861 -41.075 2.96
+174.855 -41.0721 1
+174.851 -41.0656 0.5
+174.838 -41.0638 2.91
+174.841 -41.0556 2.91
+174.853 -41.0449 2.73
+174.87 -41.0306 2.99
+174.896 -41.0297 3
+174.912 -41.0178 2.98
+174.94 -40.9974 2.99
+174.966 -40.9614 2.99
+174.973 -40.9242 2.87
+174.982 -40.8844 2.95
+175.035 -40.8512 2.99
+175.058 -40.8277 2.99
+175.086 -40.7801 2.05
+175.113 -40.7356 1.92
+175.142 -40.6919 2.99
+175.162 -40.6433 2.91
+175.182 -40.5966 2.99
+175.198 -40.5375 2.81
+175.214 -40.4793 2.99
+175.223 -40.4254 3
+175.228 -40.372 2.99
+175.226 -40.321 2.98
+175.217 -40.274 2.98
+175.2 -40.188 2.98
+175.183 -40.143 2.99
+175.151 -40.09 3
+175.099 -40.0406 2.11
+175.046 -39.985 3
+174.978 -39.945 2.99
+174.953 -39.915 3
+174.927 -39.899 3
+174.864 -39.873 3
+174.794 -39.857 3
+174.763 -39.865 3
+174.709 -39.865 3
+174.651 -39.836 3
+174.554 -39.817 2.99
+174.504 -39.778 2.99
+174.429 -39.741 3
+174.388 -39.699 2.85
+174.346 -39.655 3
+174.292 -39.624 3
+174.254 -39.615 2.99
+174.177 -39.5873 2.64
+174.085 -39.578 3
+174.048 -39.563 3
+173.987 -39.553 3
+173.95 -39.539 2.99
+173.933 -39.523 3
+173.901 -39.502 3
+173.857 -39.459 3
+173.846 -39.458 2.99
+173.819 -39.429 2.99
+173.797 -39.418 2.99
+173.778 -39.388 2.99
+173.764 -39.3338 2.88
+173.75 -39.277 2.98
+173.77 -39.249 2.99
+173.77 -39.23 2.99
+173.802 -39.1864 2.1
+173.849 -39.15 2.99
+173.912 -39.12 3
+173.938 -39.116 3
+173.995 -39.086 2.99
+174.024 -39.054 2.99
+174.045 -39.06 3
+174.079 -39.051 3
+174.135 -39.0217 3
+174.183 -38.994 2.99
+174.238 -38.983 3
+174.305 -38.983 3
+174.339 -38.994 3
+174.403 -38.984 3
+174.452 -38.943 2.99
+174.501 -38.888 2.99
+174.52 -38.887 3
+174.561 -38.855 3
+174.588 -38.804 2.99
+174.602 -38.7517 2.99
+174.615 -38.701 3
+174.623 -38.6383 2.9
+174.63 -38.58 2.98
+174.633 -38.529 3
+174.627 -38.501 2.98
+174.637 -38.454 3
+174.631 -38.387 2.96
+174.674 -38.353 2.99
+174.708 -38.309 3
+174.706 -38.2509 1.36
+174.708 -38.195 2.99
+174.692 -38.1574 1.39
+174.682 -38.1324 0.9
+174.68 -38.11 2.99
+174.689 -38.12 3
+174.736 -38.122 3
+174.755 -38.108 2.99
+174.77 -38.079 3
+174.778 -38.04 2.99
+174.798 -38.019 3
+174.779 -37.972 2.98
+174.779 -37.938 2.98
+174.756 -37.892 2.98
+174.763 -37.878 3
+174.757 -37.864 2.99
+174.774 -37.836 2.99
+174.825 -37.822 2.99
+174.833 -37.786 2.99
+174.82 -37.7342 2.56
+174.808 -37.679 2.99
+174.794 -37.634 3
+174.77 -37.6 3
+174.764 -37.552 2.99
+174.731 -37.4937 2.66
+174.7 -37.433 2.99
+174.704 -37.381 3
+174.677 -37.3326 2.7
+174.653 -37.2871 3
+174.613 -37.2136 2.99
+174.576 -37.1423 3
+174.533 -37.068 3
+174.496 -37.051 3
+174.486 -37.043 3
+174.483 -37.018 2.99
+174.46 -36.964 2.98
+174.465 -36.946 3
+174.449 -36.929 2.98
+174.455 -36.92 2.99
+174.442 -36.912 2.99
+174.442 -36.891 2.99
+174.431 -36.88 2.98
+174.434 -36.86 3
+174.422 -36.821 2.99
+174.37 -36.7424 3
+174.325 -36.6799 2.99
+174.279 -36.618 2.99
+174.228 -36.566 2.99
+174.218 -36.552 3
+174.168 -36.5 2.99
+174.155 -36.476 3
+174.079 -36.4236 3
+174.039 -36.397 3
+174.025 -36.332 3
+174.004 -36.28 3
+173.971 -36.222 2.99
+173.913 -36.146 2.99
+173.865 -36.0934 1.95
+173.82 -36.0393 2.99
+173.778 -35.9914 2.7
+173.735 -35.9421 2.99
+173.666 -35.866 2.99
+173.617 -35.8168 2.99
+173.563 -35.766 2.99
+173.486 -35.678 2.99
+173.447 -35.646 2.99
+173.424 -35.607 2.98
+173.375 -35.564 3
+173.364 -35.5421 -2
+173.378 -35.538 -1
+173.389 -35.522 -1
+173.39 -35.5076 -1.5
+173.402 -35.5021 -3.5
+173.408 -35.4906 -1.5
+173.413 -35.4803 3
+173.401 -35.4737 -3.5
+173.416 -35.4721 3
+173.413 -35.4557 -2
+173.426 -35.448 -3.5
+173.423 -35.4221 -7
+173.433 -35.4215 1
+173.436 -35.4376 3
+173.444 -35.4462 3
+173.453 -35.4491 3
+173.448 -35.4396 3
+173.443 -35.4258 3
+173.438 -35.4165 -2
+173.446 -35.4155 0
+173.456 -35.414 -3
+173.466 -35.4218 3
+173.463 -35.4097 -5
+173.468 -35.4051 -5
+173.476 -35.4113 -5
+173.488 -35.417 3
+173.495 -35.4282 3
+173.501 -35.4166 3
+173.499 -35.4035 0
+173.504 -35.3942 -2
+173.517 -35.4073 3
+173.52 -35.4154 3
+173.518 -35.4245 3
+173.522 -35.4281 3
+173.527 -35.4277 3
+173.532 -35.4283 3
+173.531 -35.4338 3
+173.536 -35.431 3
+173.54 -35.4345 3
+173.54 -35.4307 3
+173.545 -35.4248 3
+173.546 -35.4179 3
+173.549 -35.4152 3
+173.554 -35.4214 3
+173.555 -35.4157 3
+173.552 -35.4094 3
+173.546 -35.4102 3
+173.543 -35.4142 3
+173.541 -35.4211 3
+173.537 -35.4265 3
+173.531 -35.4221 3
+173.523 -35.4217 3
+173.526 -35.4159 3
+173.526 -35.4088 3
+173.531 -35.3964 2
+173.536 -35.3855 -2
+173.539 -35.3813 -2
+173.548 -35.3866 3
+173.554 -35.3882 3
+173.555 -35.3819 3
+173.558 -35.372 3
+173.555 -35.3623 1
+173.565 -35.3551 2.5
+173.582 -35.3611 3
+173.598 -35.3552 3
+173.611 -35.3459 3
+173.607 -35.3362 3
+173.617 -35.3257 3
+173.618 -35.3169 3
+173.612 -35.3101 3
+173.606 -35.3238 3
+173.598 -35.3257 3
+173.588 -35.3328 3
+173.598 -35.3416 3
+173.585 -35.3413 3
+173.573 -35.3428 2
+173.568 -35.3362 3
+173.573 -35.3341 3
+173.576 -35.3314 3
+173.58 -35.3299 3
+173.576 -35.3265 3
+173.578 -35.3216 3
+173.574 -35.3217 3
+173.568 -35.3179 3
+173.564 -35.3158 3
+173.563 -35.3124 3
+173.562 -35.3083 3
+173.559 -35.3111 3
+173.56 -35.3155 3
+173.563 -35.32 3
+173.567 -35.3229 3
+173.571 -35.3262 3
+173.571 -35.33 3
+173.568 -35.3314 3
+173.564 -35.3335 3
+173.564 -35.3424 3
+173.55 -35.3405 3
+173.552 -35.3332 3
+173.545 -35.3304 3
+173.54 -35.3263 3
+173.536 -35.3194 3
+173.534 -35.3129 3
+173.538 -35.3073 3
+173.539 -35.2965 3
+173.531 -35.285 3
+173.526 -35.279 3
+173.53 -35.2728 3
+173.537 -35.2703 3
+173.53 -35.2672 3
+173.525 -35.2719 3
+173.521 -35.2762 3
+173.522 -35.285 3
+173.526 -35.2943 3
+173.53 -35.3045 3
+173.523 -35.3048 3
+173.527 -35.312 3
+173.529 -35.3188 3
+173.535 -35.3281 3
+173.541 -35.3316 3
+173.544 -35.3366 3
+173.544 -35.3431 3
+173.547 -35.3505 2
+173.544 -35.3629 0
+173.54 -35.376 -2
+173.535 -35.3785 -2
+173.532 -35.3819 -2
+173.529 -35.3865 -5
+173.517 -35.3847 2
+173.508 -35.3749 1
+173.493 -35.378 2
+173.487 -35.3908 -2
+173.485 -35.379 3
+173.478 -35.3774 3
+173.466 -35.3702 3
+173.468 -35.3821 3
+173.48 -35.3856 3
+173.479 -35.399 -5
+173.468 -35.3946 -3
+173.462 -35.4004 -5
+173.452 -35.4039 -3
+173.439 -35.4036 -2
+173.441 -35.393 3
+173.432 -35.4006 1
+173.422 -35.4072 1
+173.42 -35.3858 3
+173.404 -35.4086 3
+173.39 -35.4011 3
+173.39 -35.4144 3
+173.402 -35.4204 3
+173.408 -35.4335 -4.5
+173.389 -35.4318 3
+173.378 -35.4424 3
+173.388 -35.4505 -0.5
+173.377 -35.4526 3
+173.381 -35.4686 -2.5
+173.373 -35.482 3
+173.386 -35.4887 -2.5
+173.369 -35.4984 -1
+173.375 -35.519 -1
+173.351 -35.52 3
+173.301 -35.4659 2.95
+173.249 -35.41 2.99
+173.219 -35.387 3
+173.167 -35.317 2.97
+173.154 -35.287 2.98
+173.112 -35.2478 2.98
+173.07 -35.208 2.99
+176.093 -37.58 2.91
+176.138 -37.6166 2.98
+176.157 -37.6307 0.77
+176.15 -37.639 -1
+176.134 -37.6296 2.5
+176.126 -37.6206 2.5
+176.12 -37.6116 2.5
+176.107 -37.6047 2.5
+176.098 -37.5963 3
+176.087 -37.5931 3
+176.075 -37.5964 3
+176.073 -37.6188 2
+176.062 -37.6054 1
+176.031 -37.5988 0
+176.045 -37.5692 3
+176.057 -37.5725 3
+176.066 -37.5785 3
+176.065 -37.567 3
+176.054 -37.5643 3
+176.043 -37.5575 2.8
+176.03 -37.5464 2.5
+176.009 -37.5256 2
+175.995 -37.507 -1
+175.983 -37.4718 -1.57
+175.992 -37.4704 -7.01
+174.872 -36.409 0.77
+174.878 -36.449 3
+174.859 -36.442 3
+174.831 -36.448 2.73
+174.839 -36.442 3
+174.828 -36.411 3
+174.84 -36.394 -6.63
+174.897 -36.776 3
+174.934 -36.74 -5.37
+174.93 -36.748 3
+174.912 -36.797 3
+174.851 -36.809 2.99
+174.834 -36.769 -1.52
+174.864 -36.764 1.35
+175.095 -36.837 3
+175.014 -36.791 3
+174.989 -36.794 2.97
+174.981 -36.784 2.45
+174.991 -36.782 2.99
+175.006 -36.769 1.12
+175.016 -36.775 3
+175.011 -36.782 3
+175.019 -36.784 3
+175.043 -36.78 3
+175.061 -36.767 -0.12
+175.065 -36.785 3
+175.084 -36.789 3
+175.168 -36.75 2.99
+175.203 -36.766 0.94
+175.18 -36.774 3
+175.154 -36.786 3
+175.145 -36.835 3
+175.152 -36.842 -0.89
+175.177 -36.86 3
+175.213 -36.834 3
+175.194 -36.858 3
+175.207 -36.88 3
+175.203 -36.896 -1.5
+175.167 -36.873 3
+175.115 -36.184 -1.38
+175.104 -36.231 3
+175.148 -35.935 2.46
+175.155 -35.947 -16.17
+175.141 -35.945 0.21
+175.539 -36.323 3
+175.475 -36.333 -8.24
+175.482 -36.322 -2.75
+175.493 -36.322 3
+175.486 -36.306 3
+175.47 -36.305 3
+175.454 -36.311 3
+175.431 -36.31 2.96
+175.43 -36.28 -0.21
+175.441 -36.271 2.99
+175.439 -36.264 2.99
+175.362 -36.246 0.85
+175.313 -36.208 2.97
+175.306 -36.203 1.67
+175.32 -36.2 2.99
+175.359 -36.209 3
+175.35 -36.178 2.99
+175.36 -36.176 2.99
+175.36 -36.167 3
+175.339 -36.16 1.62
+175.35 -36.151 2.97
+175.328 -36.141 3
+175.318 -36.148 0.22
+175.316 -36.128 -0.26
+175.332 -36.136 3
+175.343 -36.128 -0.72
+175.363 -36.13 3
+175.371 -36.122 2.99
+175.341 -36.0977 2.81
+175.347 -36.082 2.93
+175.343 -36.07 -6.03
+175.413 -36.065 -2.37
+175.402 -36.083 3
+175.406 -36.093 3
+175.423 -36.088 -6.75
+175.425 -36.109 3
+175.427 -36.116 3
+175.426 -36.138 2.82
+175.465 -36.163 3
+175.475 -36.16 0.19
+175.48 -36.17 3
+175.505 -36.175 3
+175.482 -36.199 3
+175.48 -36.212 3
+175.487 -36.223 -0.17
+175.477 -36.243 3
+175.501 -36.271 3
+175.545 -36.301 3
+175.774 -36.632 -9.51
+175.783 -36.608 2.99
+175.767 -36.599 3
+175.759 -36.604 2.97
+175.75 -36.589 1.62
+175.784 -36.576 -22.85
+175.779 -36.59 3
+175.791 -36.593 -2.13
+175.791 -36.606 3
+175.816 -36.612 -17.56
+174.154 -41.5921 3
+174.166 -41.6076 3
+174.163 -41.6375 2.39
+174.158 -41.667 3
+174.179 -41.7087 3
+174.213 -41.7292 3
+174.253 -41.7338 3
+174.276 -41.7294 3
+174.273 -41.7473 3
+174.218 -41.7938 3
+174.195 -41.8376 3
+174.163 -41.8732 3
+174.105 -41.9148 3
+174.083 -41.947 3
+174.017 -41.9943 3
+173.964 -42.05 3
+173.946 -42.0786 3
+173.922 -42.127 3
+173.938 -42.166 3
+173.897 -42.186 3
+173.854 -42.2291 1.3
+173.805 -42.265 3
+173.759 -42.284 3
+173.749 -42.32 3
+173.692 -42.358 3
+173.68 -42.399 3
+173.716 -42.425 3
+173.692 -42.433 2.98
+173.632 -42.417 3
+173.582 -42.448 3
+173.537 -42.469 3
+173.501 -42.529 3
+173.516 -42.555 3
+173.482 -42.586 3
+173.448 -42.6416 3
+173.417 -42.6985 3
+173.386 -42.7554 2.65
+173.367 -42.799 3
+173.339 -42.8262 3
+173.312 -42.854 3
+173.316 -42.885 3
+173.266 -42.927 3
+173.223 -42.962 3
+173.132 -42.99 3
+173.073 -43.053 2.99
+173.039 -43.048 3
+172.982 -43.076 3
+172.927 -43.0887 3
+172.875 -43.102 3
+172.828 -43.136 3
+172.807 -43.134 3
+172.767 -43.1785 3
+172.741 -43.2255 3
+172.717 -43.279 3
+172.713 -43.336 3
+172.714 -43.4 3
+172.713 -43.445 3
+172.72 -43.4992 3
+172.748 -43.554 3
+172.775 -43.57 3
+172.773 -43.581 3
+172.78 -43.585 3
+172.796 -43.581 2.99
+172.803 -43.588 3
+172.777 -43.595 1.94
+172.753 -43.6009 1.73
+172.723 -43.607 3
+172.711 -43.603 3
+172.703 -43.61 3
+172.672 -43.607 3
+172.65 -43.62 3
+172.643 -43.637 3
+172.653 -43.64 3
+172.662 -43.631 2.99
+172.654 -43.65 3
+172.67 -43.662 3
+172.678 -43.636 3
+172.684 -43.638 3
+172.685 -43.651 3
+172.694 -43.653 3
+172.711 -43.625 2.99
+172.735 -43.622 3
+172.746 -43.624 3
+172.759 -43.617 3
+172.781 -43.62 3
+172.8 -43.611 2.99
+172.812 -43.616 3
+172.822 -43.604 2.98
+172.826 -43.611 3
+172.821 -43.6278 3
+172.817 -43.645 3
+172.815 -43.66 3
+172.829 -43.649 3
+172.83 -43.6335 -2.49
+172.834 -43.6207 -7.99
+172.842 -43.6108 -2.5
+172.852 -43.601 2.98
+172.863 -43.612 3
+172.873 -43.61 3
+172.869 -43.617 3
+172.877 -43.621 3
+172.887 -43.614 2.99
+172.899 -43.619 3
+172.898 -43.628 3
+172.907 -43.624 2.99
+172.892 -43.647 3
+172.893 -43.661 3
+172.881 -43.671 3
+172.888 -43.68 3
+172.896 -43.682 3
+172.899 -43.665 2.99
+172.913 -43.6432 -5.5
+172.927 -43.622 3
+172.942 -43.637 3
+172.958 -43.639 3
+172.974 -43.634 2.99
+172.996 -43.646 3
+173.004 -43.654 3
+173.019 -43.65 2.99
+173.043 -43.653 3
+173.031 -43.662 3
+173.067 -43.677 3
+173.056 -43.691 3
+173.072 -43.697 3
+173.082 -43.683 2.99
+173.104 -43.702 3
+173.097 -43.719 3
+173.125 -43.74 3
+173.123 -43.776 3
+173.1 -43.775 3
+173.109 -43.798 3
+173.091 -43.81 3
+173.101 -43.817 3
+173.09 -43.824 3
+173.099 -43.832 3
+173.078 -43.833 3
+173.071 -43.852 2.98
+173.058 -43.849 3
+173.039 -43.865 3
+173.016 -43.874 3
+172.995 -43.885 3
+172.977 -43.889 2.98
+172.964 -43.883 2.99
+172.96 -43.869 3
+172.941 -43.864 2.99
+172.937 -43.854 2.99
+172.942 -43.815 2.99
+172.963 -43.799 3
+172.94 -43.797 2.99
+172.937 -43.79 2.98
+172.96 -43.783 3
+172.944 -43.773 2.99
+172.955 -43.765 3
+172.926 -43.759 3
+172.922 -43.774 2.98
+172.915 -43.76 3
+172.905 -43.777 3
+172.915 -43.781 3
+172.92 -43.793 3
+172.912 -43.795 3
+172.916 -43.803 3
+172.898 -43.82 3
+172.91 -43.849 3
+172.907 -43.861 3
+172.938 -43.88 3
+172.943 -43.893 3
+172.93 -43.899 2.99
+172.899 -43.888 3
+172.867 -43.893 3
+172.858 -43.889 2.99
+172.853 -43.875 3
+172.831 -43.888 2.98
+172.821 -43.885 2.95
+172.83 -43.875 3
+172.807 -43.875 2.99
+172.804 -43.869 3
+172.793 -43.867 2.95
+172.794 -43.861 3
+172.78 -43.8663 3
+172.756 -43.848 3
+172.738 -43.852 2.99
+172.736 -43.831 3
+172.704 -43.826 3
+172.633 -43.8297 2.89
+172.562 -43.833 3
+172.507 -43.8386 3
+172.423 -43.8478 3
+172.317 -43.864 3
+172.228 -43.8906 3
+172.133 -43.9205 3
+172.074 -43.9387 2.96
+172.01 -43.958 3
+171.929 -43.9949 3
+171.836 -44.0377 3
+171.737 -44.0729 3
+171.643 -44.113 3
+171.579 -44.1466 2.88
+171.51 -44.1829 2.86
+171.426 -44.226 3
+171.374 -44.2613 2.84
+171.318 -44.299 3
+171.284 -44.3409 1.57
+171.252 -44.383 3
+171.258 -44.442 3
+171.207 -44.508 3
+171.174 -44.561 3
+171.157 -44.621 3
+171.163 -44.684 3
+171.169 -44.706 3
+171.173 -44.7612 2.75
+171.175 -44.819 3
+171.167 -44.8732 2.75
+171.155 -44.932 3
+171.109 -44.996 3
+171.076 -45.029 3
+171.02 -45.0663 3
+170.983 -45.112 3
+170.979 -45.122 3
+170.951 -45.13 3
+170.908 -45.167 3
+170.906 -45.185 3
+170.889 -45.2 3
+170.884 -45.218 3
+170.864 -45.234 3
+170.857 -45.274 3
+170.837 -45.293 3
+170.826 -45.318 3
+170.826 -45.346 3
+170.841 -45.359 3
+170.863 -45.36 3
+170.865 -45.382 3
+170.831 -45.408 3
+170.81 -45.439 3
+170.81 -45.457 3
+170.829 -45.471 3
+170.811 -45.481 3
+170.788 -45.502 3
+170.779 -45.512 3
+170.756 -45.5335 3
+170.732 -45.556 3
+170.731 -45.57 3
+170.727 -45.587 3
+170.701 -45.61 3
+170.684 -45.605 3
+170.664 -45.628 3
+170.676 -45.636 3
+170.66 -45.643 3
+170.652 -45.664 3
+170.617 -45.69 3
+170.599 -45.724 3
+170.616 -45.732 3
+170.625 -45.739 3
+170.635 -45.734 3
+170.659 -45.759 3
+170.692 -45.755 3
+170.71 -45.7784 -2
+170.693 -45.7813 1.34
+170.674 -45.7811 1.16
+170.656 -45.79 0.77
+170.649 -45.7843 3
+170.643 -45.794 3
+170.628 -45.7931 2
+170.627 -45.8133 2.58
+170.618 -45.823 2.99
+170.61 -45.8135 2.5
+170.603 -45.8222 0
+170.589 -45.8281 1
+170.583 -45.8404 1.5
+170.562 -45.8603 3
+170.547 -45.8638 0.5
+170.536 -45.8669 0.5
+170.524 -45.869 0.5
+170.516 -45.8708 1
+170.509 -45.8753 2.4
+170.508 -45.8837 2.4
+170.519 -45.8896 2.4
+170.53 -45.8757 3
+170.539 -45.8746 0.5
+170.551 -45.8757 0.5
+170.565 -45.876 3
+170.582 -45.8708 1
+170.599 -45.8586 1.5
+170.603 -45.841 1
+170.617 -45.8432 2.81
+170.634 -45.8413 3
+170.649 -45.835 3
+170.641 -45.8211 2.83
+170.656 -45.8328 0
+170.671 -45.8295 0
+170.67 -45.81 2.99
+170.689 -45.8013 -0.23
+170.706 -45.7953 -0.4
+170.723 -45.792 2.99
+170.729 -45.772 2.98
+170.741 -45.777 3
+170.744 -45.8011 3
+170.732 -45.815 3
+170.725 -45.837 3
+170.744 -45.845 3
+170.739 -45.858 3
+170.746 -45.866 3
+170.726 -45.878 2.98
+170.711 -45.87 3
+170.687 -45.876 3
+170.679 -45.869 3
+170.688 -45.859 3
+170.661 -45.848 3
+170.66 -45.86 3
+170.682 -45.891 3
+170.669 -45.897 3
+170.619 -45.893 3
+170.568 -45.911 3
+170.49 -45.915 3
+170.433 -45.934 2.99
+170.372 -45.936 3
+170.296 -45.965 3
+170.237 -46.016 3
+170.21 -46.054 3
+170.201 -46.093 3
+170.172 -46.156 3
+170.156 -46.16 3
+170.116 -46.191 3
+170.066 -46.2146 2.28
+170.014 -46.236 3
+169.974 -46.273 3
+169.935 -46.285 3
+169.905 -46.308 3
+169.828 -46.336 3
+169.792 -46.359 3
+169.779 -46.398 3
+169.798 -46.414 3
+169.793 -46.432 3
+169.815 -46.449 3
+169.781 -46.454 3
+169.78 -46.465 3
+169.756 -46.469 3
+169.75 -46.482 2.99
+169.744 -46.476 3
+169.719 -46.49 3
+169.71 -46.502 3
+169.7 -46.508 3
+169.698 -46.519 3
+169.661 -46.528 3
+169.654 -46.538 3
+169.614 -46.54 3
+169.612 -46.558 3
+169.588 -46.565 3
+169.577 -46.577 3
+169.574 -46.564 3
+169.558 -46.559 3
+169.541 -46.564 3
+169.52 -46.557 3
+169.477 -46.561 3
+169.466 -46.58 3
+169.449 -46.578 3
+169.427 -46.599 3
+169.405 -46.612 3
+169.38 -46.609 3
+169.359 -46.623 3
+169.361 -46.637 2.99
+169.32 -46.627 3
+169.312 -46.635 2.98
+169.301 -46.623 3
+169.285 -46.62 3
+169.251 -46.634 3
+169.255 -46.642 3
+169.24 -46.637 3
+169.233 -46.649 3
+169.203 -46.662 3
+169.194 -46.653 3
+169.168 -46.658 2.98
+169.137 -46.647 3
+169.108 -46.648 3
+169.105 -46.664 3
+169.056 -46.672 3
+169.053 -46.663 3
+169.029 -46.667 3
+168.998 -46.675 3
+168.989 -46.665 3
+168.967 -46.672 2.99
+168.934 -46.656 3
+168.846 -46.659 3
+168.823 -46.627 2.98
+168.83 -46.607 3
+168.805 -46.595 3
+168.783 -46.568 3
+168.741 -46.57 3
+168.694 -46.568 3
+168.62 -46.579 3
+168.513 -46.609 3
+168.476 -46.609 3
+168.43 -46.608 3
+168.389 -46.595 3
+168.363 -46.6014 2.99
+168.376 -46.583 2.99
+168.405 -46.581 3
+168.412 -46.572 3
+168.417 -46.585 3
+168.455 -46.582 3
+168.454 -46.587 3
+168.481 -46.5899 3
+168.522 -46.597 3
+168.525 -46.59 3
+168.517 -46.577 3
+168.48 -46.5636 3
+168.452 -46.561 3
+168.413 -46.56 3
+168.374 -46.572 3
+168.364 -46.557 3
+168.371 -46.548 3
+168.349 -46.536 3
+168.333 -46.55 3
+168.328 -46.545 3
+168.303 -46.55 3
+168.3 -46.572 3
+168.308 -46.577 3
+168.275 -46.584 3
+168.271 -46.56 3
+168.229 -46.552 2.97
+168.238 -46.544 2.98
+168.224 -46.519 2.97
+168.286 -46.512 3
+168.279 -46.54 3
+168.295 -46.534 3
+168.288 -46.524 3
+168.294 -46.51 3
+168.313 -46.512 3
+168.357 -46.497 3
+168.357 -46.491 3
+168.378 -46.486 3
+168.377 -46.479 3
+168.366 -46.48 3
+168.353 -46.469 3
+168.346 -46.474 3
+168.347 -46.457 3
+168.345 -46.451 3
+168.345 -46.443 3
+168.347 -46.427 3
+168.337 -46.42 3
+168.324 -46.428 3
+168.323 -46.454 3
+168.275 -46.461 3
+168.265 -46.464 3
+168.295 -46.467 3
+168.306 -46.494 3
+168.266 -46.501 3
+168.241 -46.4591 2.99
+168.213 -46.413 2.99
+168.159 -46.365 3
+168.092 -46.339 3
+168.046 -46.344 3
+168.028 -46.358 3
+168.023 -46.3631 3
+168.04 -46.382 3
+168.037 -46.387 3
+167.921 -46.357 3
+167.879 -46.368 3
+167.887 -46.382 3
+167.883 -46.392 2.99
+167.832 -46.368 3
+167.81 -46.371 3
+167.805 -46.384 3
+167.784 -46.39 2.99
+167.745 -46.364 2.99
+167.733 -46.355 2.99
+167.738 -46.343 3
+167.725 -46.339 2.99
+167.725 -46.329 3
+167.699 -46.33 3
+167.685 -46.322 2.99
+167.693 -46.304 2.99
+167.725 -46.296 2.99
+167.728 -46.272 2.99
+167.621 -46.195 3
+167.492 -46.149 3
+167.428 -46.145 3
+167.396 -46.153 3
+167.387 -46.177 3
+167.35 -46.193 3
+167.362 -46.215 3
+167.359 -46.232 3
+167.336 -46.25 3
+167.318 -46.252 3
+167.288 -46.242 3
+167.255 -46.245 3
+167.22 -46.258 3
+167.129 -46.247 3
+167.107 -46.254 2.99
+167.039 -46.231 3
+166.934 -46.222 3
+166.915 -46.217 3
+166.889 -46.216 3
+166.845 -46.205 3
+166.807 -46.212 3
+166.781 -46.228 2.98
+166.767 -46.212 3
+166.73 -46.21 2.99
+166.72 -46.202 3
+166.695 -46.211 2.99
+166.674 -46.2 3
+166.66 -46.202 2.99
+166.643 -46.193 2.97
+166.644 -46.177 2.97
+166.629 -46.16 3
+166.613 -46.156 2.96
+166.617 -46.146 3
+166.656 -46.1277 3
+166.686 -46.113 2.99
+166.697 -46.117 3
+166.713 -46.111 2.96
+166.71 -46.093 2.89
+166.722 -46.0817 2.91
+166.729 -46.091 3
+166.739 -46.089 2.99
+166.734 -46.067 2.95
+166.754 -46.064 2.97
+166.769 -46.058 2.95
+166.778 -46.048 2.9
+166.767 -46.018 2.93
+166.775 -46.004 2.95
+166.807 -45.9964 2.98
+166.856 -45.98 2.98
+166.919 -45.93 2.93
+166.915 -45.924 2.99
+166.881 -45.947 3
+166.873 -45.946 3
+166.849 -45.97 2.99
+166.787 -45.986 2.96
+166.775 -45.979 3
+166.757 -45.995 2.98
+166.74 -46.0187 3
+166.761 -46.037 2.99
+166.765 -46.05 3
+166.746 -46.0592 -40.88
+166.748 -46.043 3
+166.735 -46.042 3
+166.724 -46.054 3
+166.715 -46.0693 3
+166.706 -46.073 2.96
+166.707 -46.059 2.99
+166.698 -46.054 3
+166.731 -46.0252 2.99
+166.72 -46.021 3
+166.69 -46.046 3
+166.688 -46.059 2.98
+166.676 -46.052 2.99
+166.647 -46.08 3
+166.641 -46.078 2.99
+166.643 -46.071 2.99
+166.616 -46.06 3
+166.605 -46.074 3
+166.588 -46.079 3
+166.589 -46.088 3
+166.573 -46.091 2.97
+166.567 -46.074 2.96
+166.584 -46.061 3
+166.586 -46.037 2.87
+166.608 -46.054 3
+166.601 -46.013 2.87
+166.613 -46.007 2.93
+166.626 -45.983 2.88
+166.683 -45.969 2.94
+166.72 -45.9691 3
+166.746 -45.9712 3
+166.764 -45.971 3
+166.767 -45.966 2.89
+166.753 -45.958 2.86
+166.769 -45.95 2.93
+166.742 -45.946 2.99
+166.701 -45.959 2.97
+166.67 -45.9517 3
+166.649 -45.948 2.85
+166.655 -45.93 2.8
+166.68 -45.908 2.94
+166.688 -45.881 2.93
+166.705 -45.872 2.96
+166.708 -45.865 3
+166.702 -45.863 2.99
+166.681 -45.872 3
+166.667 -45.899 3
+166.645 -45.912 3
+166.618 -45.955 2.99
+166.595 -45.972 3
+166.563 -46.0098 -50.88
+166.528 -45.997 3
+166.516 -45.994 3
+166.492 -46.003 2.99
+166.475 -45.997 3
+166.47 -46 3
+166.474 -46.008 3
+166.454 -46 2.99
+166.45 -45.931 2.97
+166.437 -45.913 2.97
+166.429 -45.904 2.96
+166.44 -45.883 2.98
+166.432 -45.854 2.97
+166.451 -45.817 2.97
+166.471 -45.817 3
+166.487 -45.804 2.92
+166.517 -45.8 2.97
+166.521 -45.793 2.84
+166.546 -45.797 3
+166.572 -45.788 3
+166.577 -45.797 3
+166.589 -45.795 3
+166.592 -45.8 3
+166.632 -45.7922 -72.01
+166.676 -45.785 -72.01
+166.723 -45.7748 -72.03
+166.765 -45.7674 -72.03
+166.795 -45.762 2.94
+166.82 -45.761 2.99
+166.835 -45.774 3
+166.855 -45.772 2.98
+166.837 -45.763 2.63
+166.867 -45.745 2.97
+166.881 -45.7403 2.9
+166.894 -45.736 2.9
+166.951 -45.732 2.99
+166.96 -45.7249 2.93
+166.967 -45.7132 3
+166.947 -45.718 2.97
+166.96 -45.696 2.97
+166.955 -45.694 3
+166.932 -45.723 2.87
+166.905 -45.725 3
+166.865 -45.7108 2.87
+166.821 -45.702 3
+166.801 -45.714 3
+166.768 -45.7191 3
+166.736 -45.728 2.89
+166.729 -45.711 -72.13
+166.735 -45.6935 -72.34
+166.742 -45.674 -72.09
+166.751 -45.667 2.49
+166.807 -45.6581 -96.98
+166.852 -45.649 2.9
+166.857 -45.642 2.86
+166.905 -45.64 3
+166.938 -45.628 2.96
+166.971 -45.6 3
+166.93 -45.624 2.99
+166.878 -45.633 3
+166.851 -45.629 3
+166.796 -45.65 -97
+166.738 -45.657 -67
+166.733 -45.664 -67
+166.728 -45.615 2.62
+166.721 -45.606 2.7
+166.728 -45.595 2.57
+166.763 -45.594 2.99
+166.794 -45.574 3
+166.835 -45.56 2.9
+166.87 -45.551 2.82
+166.905 -45.561 3
+166.933 -45.557 2.96
+166.954 -45.552 2.95
+166.985 -45.564 3
+166.997 -45.553 3
+166.981 -45.555 2.87
+166.964 -45.544 2.96
+166.936 -45.5464 3
+166.91 -45.555 2.94
+166.887 -45.548 2.82
+166.882 -45.538 2.93
+166.942 -45.524 -47
+166.975 -45.5093 -47.03
+167 -45.497 -27.01
+167.013 -45.484 3
+166.97 -45.4946 -47
+166.926 -45.5099 -47
+166.888 -45.526 2.95
+166.866 -45.519 -47
+166.872 -45.531 2.86
+166.868 -45.539 3
+166.817 -45.552 -97.18
+166.807 -45.547 -97.07
+166.792 -45.559 -97.02
+166.773 -45.558 -97.01
+166.765 -45.57 -97
+166.731 -45.576 -97.03
+166.703 -45.5708 -81.76
+166.671 -45.564 -46.97
+166.686 -45.513 2.94
+166.726 -45.495 2.96
+166.711 -45.469 2.86
+166.728 -45.449 2.91
+166.725 -45.44 2.82
+166.75 -45.399 2.77
+166.774 -45.39 2.93
+166.791 -45.392 3
+166.826 -45.4074 3
+166.85 -45.419 3
+166.871 -45.419 3
+166.881 -45.4287 3
+166.891 -45.438 3
+166.905 -45.428 3
+166.884 -45.4231 2.88
+166.87 -45.408 3
+166.865 -45.399 3
+166.85 -45.408 3
+166.843 -45.402 2.92
+166.819 -45.3897 2.98
+166.791 -45.3815 2.84
+166.774 -45.375 2.95
+166.77 -45.36 2.79
+166.808 -45.31 2.79
+166.834 -45.296 2.9
+166.84 -45.278 2.79
+166.855 -45.276 2.97
+166.867 -45.29 2.98
+166.905 -45.301 2.98
+166.947 -45.312 3
+166.91 -45.333 3
+166.893 -45.335 3
+166.896 -45.342 3
+166.917 -45.34 2.96
+166.963 -45.319 2.85
+166.994 -45.3317 3
+167.028 -45.346 3
+167.017 -45.364 3
+167.001 -45.368 3
+167.013 -45.373 3
+167.022 -45.4 2.97
+166.981 -45.394 3
+166.944 -45.403 3
+166.917 -45.415 2.99
+166.917 -45.421 2.99
+166.952 -45.4118 2.98
+166.984 -45.403 2.91
+167.023 -45.409 2.99
+167.032 -45.397 2.97
+167.021 -45.376 3
+167.03 -45.355 2.99
+167.04 -45.352 2.89
+167.068 -45.361 3
+167.095 -45.3965 3
+167.119 -45.428 3
+167.115 -45.446 3
+167.077 -45.472 3
+167.057 -45.503 3
+167.077 -45.494 3
+167.086 -45.472 3
+167.119 -45.455 2.96
+167.132 -45.44 2.96
+167.166 -45.463 3
+167.136 -45.431 2.96
+167.133 -45.413 3
+167.097 -45.372 3
+167.078 -45.354 2.94
+167.039 -45.342 2.72
+167.008 -45.313 2.62
+167.039 -45.288 2.78
+167.068 -45.291 3
+167.093 -45.285 2.93
+167.116 -45.279 2.93
+167.138 -45.285 3
+167.149 -45.303 3
+167.171 -45.316 3
+167.194 -45.316 3
+167.195 -45.309 2.98
+167.169 -45.3064 2.95
+167.156 -45.291 2.92
+167.142 -45.275 2.88
+167.158 -45.266 2.93
+167.168 -45.25 2.99
+167.156 -45.249 3
+167.144 -45.263 2.98
+167.123 -45.259 3
+167.112 -45.272 3
+167.083 -45.2731 -0.72
+167.047 -45.274 3
+167.025 -45.281 3
+167.007 -45.262 2.83
+167.004 -45.244 2.81
+166.982 -45.225 2.8
+166.967 -45.191 2.84
+166.977 -45.185 2.86
+166.982 -45.167 2.87
+166.991 -45.165 3
+166.987 -45.155 2.86
+166.972 -45.139 2.94
+166.988 -45.1281 1.34
+167.003 -45.118 2.85
+167.012 -45.102 2.5
+167.042 -45.113 3
+167.1 -45.181 3
+167.108 -45.174 2.97
+167.057 -45.111 2.92
+167.025 -45.098 3
+167.024 -45.091 2.84
+167.05 -45.0695 2.19
+167.075 -45.049 2.76
+167.084 -45.053 2.95
+167.095 -45.076 3
+167.127 -45.096 3
+167.13 -45.126 3
+167.151 -45.143 3
+167.168 -45.144 3
+167.14 -45.126 3
+167.14 -45.096 3
+167.172 -45.0998 3
+167.211 -45.104 3
+167.206 -45.097 2.97
+167.168 -45.0898 3
+167.132 -45.089 2.84
+167.104 -45.062 3
+167.091 -45.042 2.91
+167.102 -45.026 3
+167.091 -45.023 2.87
+167.123 -45.001 2.95
+167.143 -45.015 3
+167.185 -45.02 3
+167.213 -45.0303 3
+167.24 -45.04 3
+167.304 -45.048 3
+167.304 -45.041 2.98
+167.231 -45.029 3
+167.206 -45.015 3
+167.177 -45.003 3
+167.144 -45.003 2.41
+167.136 -44.987 2.94
+167.176 -44.9562 2.78
+167.212 -44.92 2.72
+167.238 -44.8954 -40.9
+167.27 -44.868 2.96
+167.333 -44.8427 2.96
+167.342 -44.87 3
+167.365 -44.886 3
+167.376 -44.91 3
+167.366 -44.924 3
+167.365 -44.942 3
+167.392 -44.95 3
+167.404 -44.96 3
+167.378 -44.984 3
+167.38 -44.99 3
+167.387 -44.992 3
+167.407 -44.972 2.94
+167.422 -44.974 3
+167.43 -44.983 3
+167.44 -44.98 2.99
+167.431 -44.965 2.91
+167.41 -44.9475 3
+167.385 -44.931 2.88
+167.408 -44.928 2.97
+167.394 -44.916 2.67
+167.385 -44.886 2.49
+167.354 -44.845 2.85
+167.356 -44.825 2.93
+167.392 -44.8 2.72
+167.414 -44.795 2.93
+167.439 -44.774 2.94
+167.486 -44.777 3
+167.52 -44.798 3
+167.532 -44.7992 3
+167.486 -44.843 3
+167.494 -44.864 3
+167.529 -44.88 3
+167.504 -44.8559 2.81
+167.512 -44.844 2.92
+167.548 -44.7976 2.78
+167.516 -44.7734 3
+167.493 -44.753 2.86
+167.518 -44.731 2.95
+167.565 -44.733 3
+167.58 -44.7375 -27.62
+167.592 -44.7413 -33.15
+167.608 -44.761 -14.57
+167.624 -44.781 3
+167.633 -44.774 2.93
+167.618 -44.746 3
+167.587 -44.733 3
+167.562 -44.713 3
+167.568 -44.694 3
+167.561 -44.688 2.89
+167.589 -44.666 2.98
+167.611 -44.657 2.99
+167.652 -44.683 3
+167.663 -44.681 3
+167.661 -44.668 2.98
+167.635 -44.64 2.97
+167.667 -44.633 3
+167.705 -44.606 2.96
+167.734 -44.602 3
+167.75 -44.579 3
+167.778 -44.571 3
+167.803 -44.598 3
+167.841 -44.607 3
+167.869 -44.625 3
+167.894 -44.649 3
+167.909 -44.679 3
+167.928 -44.667 2.92
+167.914 -44.624 3
+167.9 -44.629 3
+167.863 -44.603 3
+167.838 -44.5955 2.95
+167.823 -44.5914 2.92
+167.825 -44.55 2.89
+167.831 -44.544 2.97
+167.831 -44.511 2.99
+167.82 -44.498 2.94
+167.844 -44.482 2.99
+167.879 -44.432 2.93
+167.941 -44.386 2.99
+167.989 -44.378 3
+168.005 -44.357 2.99
+168.004 -44.328 2.93
+168.06 -44.323 3
+168.089 -44.33 3
+168.1 -44.324 3
+168.118 -44.286 2.99
+168.056 -44.257 2.99
+168.08 -44.243 2.99
+168.108 -44.24 3
+168.158 -44.199 2.99
+168.258 -44.146 2.98
+168.289 -44.097 2.99
+168.326 -44.081 3
+168.332 -44.045 2.96
+168.37 -44.005 2.93
+168.444 -44.0015 1.58
+168.508 -43.999 3
+168.551 -43.989 2.98
+168.585 -43.9731 2.99
+168.625 -43.957 3
+168.618 -43.968 3
+168.623 -43.978 3
+168.658 -43.992 3
+168.728 -43.988 3
+168.823 -43.96 2.99
+168.902 -43.897 3
+168.971 -43.876 3
+169.046 -43.8305 2.66
+169.12 -43.776 1.42
+169.203 -43.718 2.99
+169.281 -43.6913 2.98
+169.351 -43.665 2.98
+169.384 -43.635 2.99
+169.477 -43.621 3
+169.5 -43.628 3
+169.547 -43.597 2.99
+169.553 -43.585 3
+169.564 -43.602 3
+169.606 -43.593 3
+169.643 -43.557 3
+169.702 -43.5283 2.51
+169.739 -43.4861 2.51
+169.777 -43.442 2.99
+169.807 -43.419 3
+169.844 -43.393 2.99
+169.879 -43.394 3
+169.942 -43.377 3
+170.007 -43.335 3
+170.049 -43.289 2.99
+170.119 -43.245 3
+170.161 -43.22 3
+170.21 -43.175 2.99
+170.241 -43.139 3
+170.26 -43.11 3
+170.341 -43.098 3
+170.42 -43.036 2.99
+170.488 -43.016 3
+170.562 -43.002 3
+170.65 -42.962 3
+170.724 -42.927 3
+170.793 -42.884 3
+170.848 -42.8383 3
+170.894 -42.7834 1.6
+170.935 -42.733 3
+170.978 -42.6962 2.59
+171.019 -42.663 2.99
+171.046 -42.651 3
+171.093 -42.604 3
+171.124 -42.5648 3
+171.153 -42.527 2.99
+171.175 -42.4824 1.71
+171.19 -42.443 3
+171.208 -42.421 3
+171.217 -42.383 2.98
+171.238 -42.378 3
+171.27 -42.3192 1.8
+171.304 -42.267 3
+171.309 -42.2138 2.24
+171.317 -42.1618 2.12
+171.327 -42.114 2.99
+171.341 -42.087 2.99
+171.363 -42.065 2.99
+171.366 -42.036 2.99
+171.392 -42.022 3
+171.397 -41.996 2.99
+171.409 -41.9556 1.96
+171.417 -41.919 3
+171.452 -41.89 3
+171.456 -41.807 3
+171.451 -41.777 2.99
+171.468 -41.748 2.99
+171.548 -41.75 3
+171.586 -41.731 2.99
+171.621 -41.743 3
+171.659 -41.742 3
+171.715 -41.721 3
+171.767 -41.686 2.73
+171.807 -41.6604 2.99
+171.86 -41.624 3
+171.901 -41.5748 2.93
+171.929 -41.5321 1.95
+171.957 -41.4893 2.59
+171.985 -41.446 3
+172.021 -41.4215 2.83
+172.063 -41.386 3
+172.08 -41.335 2.99
+172.088 -41.2667 1.79
+172.095 -41.2125 1.97
+172.101 -41.1508 2.99
+172.097 -41.098 3
+172.109 -41.032 3
+172.1 -40.975 2.74
+172.091 -40.916 2.98
+172.107 -40.886 3
+172.132 -40.85 2.98
+172.175 -40.81 2.99
+172.214 -40.777 2.99
+172.25 -40.768 3
+172.286 -40.751 2.99
+172.325 -40.719 2.97
+172.364 -40.701 2.99
+172.394 -40.667 2.98
+172.441 -40.631 2.98
+172.496 -40.6038 1.67
+172.548 -40.569 2.99
+172.589 -40.546 3
+172.643 -40.506 3
+172.695 -40.499 3
+172.735 -40.51 3
+172.813 -40.504 3
+172.868 -40.5104 3
+172.927 -40.517 3
+172.985 -40.531 3
+173.005 -40.543 3
+173.017 -40.553 3
+172.975 -40.537 3
+172.898 -40.52 3
+172.838 -40.5166 3
+172.777 -40.513 3
+172.733 -40.525 3
+172.721 -40.548 3
+172.685 -40.585 3
+172.678 -40.626 3
+172.682 -40.6675 3
+172.686 -40.71 3
+172.7 -40.735 3
+172.732 -40.774 3
+172.768 -40.795 3
+172.794 -40.815 3
+172.838 -40.833 3
+172.89 -40.833 3
+172.91 -40.815 3
+172.919 -40.801 2.99
+172.94 -40.813 3
+172.956 -40.812 3
+172.954 -40.789 2.99
+172.985 -40.782 3
+172.995 -40.795 3
+173.014 -40.816 3
+173.015 -40.851 3
+173.042 -40.854 2.97
+173.056 -40.859 3
+173.064 -40.879 3
+173.045 -40.889 3
+173.062 -40.912 3
+173.053 -40.9336 2.93
+173.066 -40.95 3
+173.067 -40.963 3
+173.051 -40.967 3
+173.033 -40.991 3
+173.007 -40.993 3
+173.008 -41.01 3
+173.018 -41.017 3
+173.02 -41.046 3
+173.004 -41.052 3
+172.998 -41.065 3
+173.03 -41.09 3
+173.02 -41.139 3
+173.076 -41.205 3
+173.089 -41.2372 2.69
+173.088 -41.239 2.65
+173.117 -41.256 3
+173.184 -41.277 3
+173.203 -41.299 3
+173.232 -41.28 3
+173.249 -41.28 3
+173.275 -41.257 3
+173.283 -41.266 3
+173.303 -41.253 3
+173.327 -41.221 3
+173.321 -41.204 2.95
+173.361 -41.18 0.36
+173.401 -41.158 2.98
+173.414 -41.16 3
+173.409 -41.142 2.86
+173.415 -41.137 3
+173.434 -41.142 3
+173.437 -41.162 3
+173.48 -41.158 3
+173.505 -41.135 2.99
+173.512 -41.106 2.98
+173.544 -41.098 2.99
+173.571 -41.065 2.98
+173.584 -41.066 3
+173.593 -41.052 2.99
+173.614 -41.07 3
+173.632 -41.075 3
+173.624 -41.09 3
+173.628 -41.097 3
+173.638 -41.099 3
+173.647 -41.091 3
+173.657 -41.1 3
+173.65 -41.11 3
+173.665 -41.112 3
+173.673 -41.097 2.99
+173.659 -41.09 2.88
+173.663 -41.079 2.92
+173.693 -41.0763 3
+173.721 -41.07 3
+173.722 -41.061 2.96
+173.751 -41.056 2.99
+173.746 -41.0523 3
+173.739 -41.048 3
+173.751 -41.037 2.99
+173.744 -41.034 3
+173.726 -41.048 2.97
+173.718 -41.039 3
+173.71 -41.051 3
+173.689 -41.057 2.99
+173.672 -41.035 2.99
+173.715 -41.007 2.97
+173.724 -41.015 3
+173.733 -41.011 3
+173.734 -41.001 2.99
+173.748 -41.006 3
+173.765 -40.975 2.95
+173.776 -40.991 3
+173.797 -40.985 2.98
+173.785 -40.968 2.97
+173.794 -40.964 2.95
+173.804 -40.973 3
+173.81 -40.963 2.95
+173.805 -40.955 2.94
+173.835 -40.942 2.98
+173.834 -40.9264 -1.94
+173.856 -40.931 3
+173.844 -40.945 3
+173.844 -40.959 3
+173.834 -40.963 3
+173.84 -40.975 3
+173.833 -40.984 3
+173.846 -40.992 3
+173.868 -40.985 3
+173.884 -40.958 2.99
+173.897 -40.961 3
+173.915 -40.945 2.99
+173.905 -40.93 2.93
+173.915 -40.925 2.94
+173.931 -40.9254 3
+173.951 -40.9089 3
+173.978 -40.8887 2.94
+173.979 -40.9043 3
+174.001 -40.9062 3
+174.022 -40.9107 3
+174.012 -40.9182 3
+174.018 -40.9243 3
+174.011 -40.9295 3
+174.013 -40.9371 3
+173.998 -40.9459 2.97
+174.001 -40.9338 2.98
+173.982 -40.9078 3
+173.973 -40.9241 3
+173.975 -40.9379 3
+173.97 -40.9468 2.98
+173.966 -40.9363 3
+173.95 -40.9404 3
+173.958 -40.958 3
+173.95 -40.971 2.98
+173.945 -40.9637 3
+173.917 -40.9646 3
+173.904 -40.969 3
+173.898 -40.979 3
+173.901 -40.99 3
+173.914 -40.985 3
+173.929 -40.9848 3
+173.917 -40.9952 3
+173.892 -41.002 3
+173.888 -41.01 3
+173.878 -41.003 3
+173.869 -41.019 3
+173.85 -41.024 2.99
+173.814 -41.019 2.91
+173.836 -40.995 3
+173.815 -40.993 3
+173.803 -41.014 2.98
+173.783 -41.008 3
+173.78 -41.012 3
+173.787 -41.014 3
+173.77 -41.024 3
+173.792 -41.033 3
+173.806 -41.028 2.97
+173.809 -41.035 3
+173.795 -41.038 3
+173.791 -41.046 2.98
+173.783 -41.041 3
+173.776 -41.047 3
+173.78 -41.05 3
+173.767 -41.054 3
+173.786 -41.062 3
+173.774 -41.071 3
+173.781 -41.083 3
+173.771 -41.095 3
+173.752 -41.099 3
+173.756 -41.103 3
+173.754 -41.113 3
+173.76 -41.12 3
+173.772 -41.106 2.96
+173.778 -41.115 3
+173.785 -41.112 3
+173.79 -41.103 2.99
+173.778 -41.1 2.94
+173.791 -41.094 2.98
+173.791 -41.086 2.99
+173.796 -41.086 3
+173.796 -41.095 3
+173.806 -41.094 3
+173.813 -41.074 2.99
+173.822 -41.073 2.99
+173.816 -41.064 3
+173.83 -41.055 2.99
+173.855 -41.066 3
+173.864 -41.055 3
+173.882 -41.064 3
+173.915 -41.058 3
+173.95 -41.0632 2.96
+173.917 -41.0664 3
+173.905 -41.072 3
+173.91 -41.081 3
+173.902 -41.086 2.99
+173.885 -41.077 3
+173.878 -41.079 3
+173.88 -41.086 2.99
+173.868 -41.082 3
+173.868 -41.092 3
+173.857 -41.1 3
+173.873 -41.1 3
+173.887 -41.103 3
+173.883 -41.123 3
+173.876 -41.125 2.95
+173.863 -41.113 3
+173.844 -41.116 3
+173.855 -41.126 3
+173.851 -41.136 3
+173.83 -41.139 3
+173.837 -41.147 3
+173.827 -41.149 3
+173.823 -41.142 3
+173.817 -41.155 3
+173.801 -41.151 3
+173.791 -41.156 3
+173.781 -41.148 3
+173.775 -41.155 3
+173.783 -41.159 3
+173.775 -41.158 3
+173.779 -41.164 3
+173.772 -41.174 3
+173.784 -41.179 3
+173.796 -41.165 2.99
+173.819 -41.1665 3
+173.847 -41.155 2.99
+173.85 -41.163 3
+173.829 -41.175 3
+173.857 -41.171 2.99
+173.865 -41.193 3
+173.858 -41.208 3
+173.849 -41.21 3
+173.851 -41.217 3
+173.84 -41.22 3
+173.847 -41.226 3
+173.849 -41.243 3
+173.824 -41.253 2.99
+173.796 -41.243 3
+173.801 -41.257 3
+173.766 -41.257 3
+173.757 -41.27 3
+173.774 -41.285 3
+173.782 -41.274 3
+173.772 -41.267 2.99
+173.784 -41.266 3
+173.806 -41.289 3
+173.823 -41.295 3
+173.845 -41.293 3
+173.847 -41.284 3
+173.824 -41.287 2.99
+173.81 -41.279 2.99
+173.809 -41.265 3
+173.834 -41.2623 3
+173.868 -41.259 3
+173.915 -41.233 3
+173.859 -41.229 2.95
+173.86 -41.222 3
+173.88 -41.223 3
+173.911 -41.211 2.99
+173.917 -41.2107 3
+173.946 -41.2019 3
+173.937 -41.2206 3
+173.955 -41.2103 2.99
+173.97 -41.2185 3
+173.97 -41.2113 3
+173.997 -41.2109 3
+174.013 -41.2003 3
+174.032 -41.2033 3
+174.032 -41.1926 3
+174.016 -41.1907 2.95
+174.023 -41.1863 2.99
+174.047 -41.1971 3
+174.053 -41.1915 2.99
+174.074 -41.1961 3
+174.081 -41.1896 2.99
+174.11 -41.1804 3
+174.12 -41.168 3
+174.08 -41.1728 3
+174.053 -41.1789 3
+174.041 -41.1749 2.99
+174.05 -41.165 2.99
+174.046 -41.1589 3
+174.002 -41.1711 3
+174.01 -41.1797 3
+173.986 -41.1828 3
+174.001 -41.1952 3
+173.982 -41.1876 3
+173.978 -41.1942 3
+173.965 -41.1902 2.97
+173.973 -41.1849 3
+173.966 -41.1729 3
+173.929 -41.1985 3
+173.915 -41.201 3
+173.889 -41.2017 3
+173.873 -41.212 2.97
+173.887 -41.192 2.94
+173.88 -41.182 2.97
+173.895 -41.172 3
+173.875 -41.169 2.85
+173.867 -41.156 2.96
+173.884 -41.159 3
+173.885 -41.1521 2.99
+173.866 -41.146 2.9
+173.872 -41.139 3
+173.894 -41.139 3
+173.915 -41.126 3
+173.901 -41.125 2.96
+173.908 -41.112 2.92
+173.931 -41.113 3
+173.934 -41.1023 2.95
+173.927 -41.0972 3
+173.933 -41.0846 2.95
+173.944 -41.09 3
+173.954 -41.0807 2.99
+173.966 -41.0854 3
+173.976 -41.0782 2.95
+173.978 -41.0857 3
+173.964 -41.0983 3
+173.951 -41.1149 3
+173.957 -41.1478 3
+173.968 -41.151 3
+173.963 -41.1374 2.96
+173.975 -41.1295 2.99
+173.993 -41.1364 3
+173.985 -41.1231 2.93
+173.994 -41.1059 3
+173.986 -41.1001 2.95
+174.013 -41.0954 2.99
+174.037 -41.1138 3
+174.047 -41.1063 2.99
+174.032 -41.0946 2.96
+174.023 -41.0717 3
+174.015 -41.075 3
+174.018 -41.0639 2.97
+174.01 -41.0584 2.92
+174.017 -41.0594 3
+174.032 -41.062 3
+174.048 -41.0549 2.96
+174.054 -41.0282 2.98
+174.049 -41.0215 3
+174.035 -41.0269 3
+174.038 -41.0196 3
+174.021 -41.0174 3
+174.009 -41.0172 3
+173.998 -41.0401 3
+173.978 -41.0569 2.86
+173.991 -41.0367 2.98
+173.984 -41.032 3
+173.96 -41.0451 2.96
+173.95 -41.0375 3
+173.935 -41.0411 2.76
+173.938 -41.0347 2.84
+173.953 -41.0331 3
+173.937 -41.0194 2.87
+173.95 -41.0134 2.95
+173.955 -41.0225 3
+173.966 -41.0175 2.99
+173.972 -41.0226 3
+173.989 -41.0151 2.99
+173.969 -41.0037 2.96
+173.97 -40.9844 3
+173.983 -40.9961 3
+173.996 -40.9953 3
+174.003 -40.9853 2.99
+173.991 -40.9831 2.99
+173.993 -40.9705 2.83
+174.014 -40.965 2.98
+174.023 -40.9763 3
+174.013 -40.9887 3
+174.009 -41.0104 3
+174.017 -41.0087 2.99
+174.022 -41.0157 3
+174.033 -41.0097 3
+174.048 -41.0134 3
+174.051 -41.0033 3
+174.056 -41.0071 3
+174.067 -40.9969 2.98
+174.071 -41.0068 3
+174.066 -41.0142 3
+174.082 -41.0193 3
+174.104 -41.0521 3
+174.109 -41.0518 3
+174.103 -41.0248 2.96
+174.096 -40.9999 2.98
+174.1 -40.9935 2.98
+174.124 -41.0069 3
+174.131 -41.0187 3
+174.142 -41.0192 3
+174.147 -41.0109 2.99
+174.143 -40.9974 2.92
+174.152 -40.9996 3
+174.162 -40.9828 2.96
+174.149 -40.9803 2.89
+174.148 -40.9736 2.96
+174.164 -40.9692 2.97
+174.171 -40.9882 3
+174.173 -41.0084 3
+174.183 -41.0109 3
+174.195 -41.0018 2.95
+174.207 -41.0038 3
+174.231 -40.9854 3
+174.216 -41.0086 3
+174.195 -41.0104 3
+174.198 -41.0417 3
+174.19 -41.0427 2.99
+174.184 -41.0289 3
+174.166 -41.043 3
+174.182 -41.0592 3
+174.215 -41.0711 3
+174.225 -41.0692 2.99
+174.224 -41.0559 2.95
+174.239 -41.0495 3
+174.242 -41.0412 2.89
+174.258 -41.0442 3
+174.27 -41.029 2.94
+174.288 -41.0345 3
+174.312 -41.0004 -59.82
+174.298 -41.0345 3
+174.285 -41.0383 3
+174.273 -41.0423 3
+174.272 -41.0684 3
+174.249 -41.0772 3
+174.248 -41.0883 3
+174.234 -41.0897 3
+174.237 -41.1031 3
+174.249 -41.1057 3
+174.242 -41.1261 2.99
+174.225 -41.1118 3
+174.208 -41.1181 3
+174.211 -41.1281 3
+174.222 -41.1322 3
+174.22 -41.1425 2.85
+174.209 -41.1333 3
+174.188 -41.1408 2.99
+174.197 -41.1239 3
+174.183 -41.1237 3
+174.188 -41.0965 2.94
+174.18 -41.0875 3
+174.164 -41.1156 2.98
+174.149 -41.1091 3
+174.149 -41.128 3
+174.167 -41.1364 3
+174.16 -41.1506 3
+174.182 -41.1586 3
+174.2 -41.1548 2.94
+174.199 -41.1732 3
+174.203 -41.1833 3
+174.191 -41.1841 3
+174.186 -41.1951 3
+174.17 -41.203 2.99
+174.171 -41.1858 2.94
+174.158 -41.1779 2.99
+174.155 -41.1808 2.99
+174.149 -41.1825 3
+174.155 -41.1953 3
+174.148 -41.2075 3
+174.156 -41.2144 3
+174.145 -41.2167 2.88
+174.145 -41.2089 2.99
+174.126 -41.205 2.88
+174.125 -41.1931 3
+174.112 -41.2061 2.99
+174.119 -41.2217 3
+174.102 -41.2212 2.86
+174.106 -41.2124 2.94
+174.094 -41.2033 3
+174.085 -41.2148 3
+174.086 -41.2254 3
+174.077 -41.2305 2.74
+174.077 -41.2237 3
+174.065 -41.2248 2.89
+174.074 -41.212 2.96
+174.061 -41.2066 3
+174.056 -41.2171 3
+174.048 -41.2097 3
+174.044 -41.2132 3
+174.04 -41.2301 2.98
+174.031 -41.2109 3
+174.02 -41.2244 3
+174.029 -41.2288 2.99
+174.03 -41.24 3
+174.018 -41.24 3
+174.02 -41.23 3
+174.014 -41.2339 3
+174.008 -41.2405 2.92
+174.008 -41.2247 2.99
+173.991 -41.2206 3
+173.995 -41.2443 2.98
+173.986 -41.2436 3
+173.982 -41.2514 3
+173.982 -41.2374 2.96
+173.975 -41.2348 2.99
+173.979 -41.229 2.98
+173.97 -41.224 3
+173.969 -41.2316 2.87
+173.965 -41.2244 3
+173.96 -41.2273 3
+173.971 -41.2533 3
+173.939 -41.2542 3
+173.917 -41.2651 3
+173.944 -41.2691 3
+173.964 -41.2668 3
+174.008 -41.2598 2.99
+173.994 -41.2791 3
+174.009 -41.2728 2.94
+174.004 -41.2848 3
+174.01 -41.2857 3
+174.039 -41.2689 3
+174.065 -41.2527 2.94
+174.075 -41.2694 3
+174.086 -41.2695 3
+174.074 -41.2547 3
+174.082 -41.2473 3
+174.106 -41.2413 2.98
+174.111 -41.25 3
+174.114 -41.2373 2.99
+174.132 -41.2426 3
+174.14 -41.2349 2.9
+174.146 -41.2334 2.97
+174.145 -41.24 3
+174.15 -41.2499 3
+174.157 -41.2535 3
+174.157 -41.2661 3
+174.176 -41.2528 2.99
+174.179 -41.2668 3
+174.202 -41.2787 3
+174.213 -41.2722 3
+174.21 -41.2675 2.99
+174.185 -41.2592 2.99
+174.186 -41.2515 2.98
+174.196 -41.2463 2.98
+174.207 -41.2469 3
+174.21 -41.2571 3
+174.22 -41.2544 2.99
+174.219 -41.2467 2.95
+174.226 -41.2531 3
+174.23 -41.247 3
+174.243 -41.2524 3
+174.247 -41.2464 2.95
+174.254 -41.2512 3
+174.253 -41.2609 3
+174.266 -41.2541 2.99
+174.256 -41.2457 2.93
+174.277 -41.245 3
+174.271 -41.2366 2.97
+174.303 -41.219 3
+174.314 -41.2142 3
+174.289 -41.2342 3
+174.292 -41.2513 3
+174.274 -41.2576 3
+174.268 -41.2759 2.99
+174.256 -41.2699 3
+174.257 -41.2878 2.97
+174.25 -41.2829 3
+174.224 -41.2942 3
+174.243 -41.3104 3
+174.237 -41.3204 2.99
+174.22 -41.3182 3
+174.214 -41.3266 2.97
+174.208 -41.3134 3
+174.201 -41.3119 3
+174.191 -41.3191 3
+174.197 -41.3333 3
+174.191 -41.3391 2.98
+174.18 -41.335 3
+174.166 -41.3384 3
+174.153 -41.342 3
+174.156 -41.3531 3
+174.123 -41.3541 -6.14
+174.146 -41.337 3
+174.132 -41.3342 2.93
+174.139 -41.3291 2.94
+174.158 -41.3302 3
+174.159 -41.3214 2.97
+174.174 -41.3169 2.99
+174.166 -41.3096 2.98
+174.178 -41.3063 3
+174.176 -41.2992 2.97
+174.189 -41.2968 3
+174.181 -41.2882 3
+174.16 -41.2899 3
+174.161 -41.3013 3
+174.139 -41.3169 2.99
+174.15 -41.2944 2.97
+174.148 -41.2855 3
+174.114 -41.301 3
+174.113 -41.3064 3
+174.122 -41.3085 3
+174.109 -41.321 3
+174.11 -41.331 3
+174.098 -41.3361 3
+174.104 -41.3419 3
+174.093 -41.3462 3
+174.088 -41.3608 3
+174.071 -41.3588 3
+174.076 -41.366 3
+174.069 -41.3803 3
+174.066 -41.3901 3
+174.056 -41.3885 3
+174.041 -41.4042 3
+174.034 -41.4367 3
+174.028 -41.4671 3
+174.043 -41.4936 3
+174.061 -41.4982 3
+174.067 -41.5106 3
+174.108 -41.5345 2.92
+174.148 -41.5584 3
+168.321 -46.589 3
+168.328 -46.588 3
+168.343 -46.5986 3
+168.359 -46.61 3
+168.341 -46.627 2.99
+168.32 -46.621 3
+168.31 -46.595 2.99
+174.251 -41.1779 3
+174.241 -41.1795 3
+174.224 -41.1905 2.91
+174.233 -41.1628 2.6
+174.245 -41.1597 2.88
+174.247 -41.1669 3
+174.29 -41.1567 2.99
+174.286 -41.1613 3
+174.273 -41.1642 2.96
+174.275 -41.157 2.9
+174.284 -41.1583 3
+174.302 -41.1059 2.98
+174.292 -41.1153 3
+174.28 -41.1173 2.89
+174.28 -41.1143 2.94
+174.227 -41.2046 3
+174.235 -41.2149 3
+174.255 -41.2043 2.96
+174.265 -41.1976 2.97
+174.25 -41.1928 2.86
+174.258 -41.1836 2.93
+174.284 -41.177 2.95
+174.29 -41.1768 3
+174.292 -41.1676 2.92
+174.32 -41.1613 2.97
+174.312 -41.1779 3
+174.34 -41.1775 3
+174.333 -41.1675 2.76
+174.362 -41.1564 2.98
+174.376 -41.1345 3
+174.371 -41.1245 3
+174.344 -41.1461 3
+174.33 -41.1473 2.92
+174.329 -41.1333 2.99
+174.321 -41.1307 2.99
+174.293 -41.1358 2.92
+174.303 -41.1272 3
+174.318 -41.1256 3
+174.317 -41.1184 2.98
+174.325 -41.129 2.99
+174.336 -41.1288 3
+174.36 -41.108 -16.22
+174.38 -41.0896 3
+174.391 -41.095 2.99
+174.391 -41.1183 3
+174.378 -41.1474 3
+174.367 -41.1738 3
+174.375 -41.1831 3
+174.364 -41.2012 2.98
+174.343 -41.193 3
+174.324 -41.2121 2.99
+174.311 -41.2024 3
+174.296 -41.2108 2.96
+174.282 -41.2097 3
+174.279 -41.217 3
+174.261 -41.2271 3
+174.259 -41.2307 3
+174.252 -41.2384 3
+174.231 -41.2371 2.96
+174.231 -41.2232 3
+174.215 -41.2275 2.99
+174.219 -41.2334 3
+174.209 -41.2379 2.99
+174.19 -41.2357 3
+174.185 -41.2426 3
+174.163 -41.2456 2.85
+174.166 -41.2306 3
+174.184 -41.2182 2.95
+174.195 -41.2206 3
+174.195 -41.2106 2.92
+174.215 -41.2076 2.93
+174.073 -40.9583 2.98
+174.064 -40.9509 3
+174.051 -40.9519 2.95
+174.056 -40.9467 3
+174.08 -40.9393 2.96
+174.077 -40.9572 3
+174.088 -40.9645 3
+174.073 -40.9718 3
+174.073 -40.9854 3
+174.061 -40.9948 2.95
+174.049 -40.9794 2.97
+174.089 -40.8956 3
+174.079 -40.9034 2.92
+174.056 -40.9092 2.89
+174.061 -40.8983 2.94
+174.083 -40.8911 2.99
+174.779 -41.0788 2.88
+174.8 -41.077 -30.19
+174.789 -41.0921 3
+174.773 -41.0983 2.94
+174.951 -40.827 3
+174.913 -40.8697 3
+174.885 -40.8891 2.98
+174.868 -40.8863 2.86
+174.869 -40.8747 2.73
+174.906 -40.8477 2.97
+174.921 -40.8208 2.89
+168.526 -46.778 3
+168.509 -46.8 2.98
+168.506 -46.782 3
+168.481 -46.781 2.99
+168.472 -46.77 2.97
+168.486 -46.773 3
+168.494 -46.763 2.99
+168.479 -46.754 2.98
+168.493 -46.754 3
+168.497 -46.761 3
+168.509 -46.758 2.99
+168.525 -46.741 2.98
+168.53 -46.737 2.97
+168.548 -46.754 3
+168.538 -46.761 3
+168.543 -46.772 3
+168.129 -46.927 3
+168.157 -46.938 3
+168.128 -46.94 3
+168.111 -46.928 2.98
+167.768 -46.924 2.99
+167.769 -46.905 2.98
+167.763 -46.883 2.99
+167.752 -46.877 2.96
+167.759 -46.867 2.98
+167.75 -46.855 3
+167.725 -46.826 2.99
+167.721 -46.806 3
+167.702 -46.795 3
+167.705 -46.787 2.98
+167.719 -46.784 3
+167.703 -46.754 2.99
+167.719 -46.738 2.99
+167.72 -46.712 2.99
+167.733 -46.71 3
+167.75 -46.699 3
+167.786 -46.688 3
+167.837 -46.704 3
+167.86 -46.695 3
+167.867 -46.684 2.99
+167.891 -46.696 3
+167.929 -46.702 3
+167.958 -46.721 3
+167.978 -46.723 3
+167.985 -46.762 3
+168.003 -46.775 3
+167.997 -46.782 3
+168.01 -46.796 3
+168.02 -46.803 3
+168.034 -46.801 2.99
+168.041 -46.82 3
+168.092 -46.835 2.99
+168.097 -46.853 2.99
+168.111 -46.864 3
+168.124 -46.864 3
+168.129 -46.857 2.97
+168.142 -46.864 3
+168.142 -46.874 3
+168.128 -46.878 3
+168.133 -46.884 3
+168.151 -46.883 3
+168.129 -46.8924 3
+168.133 -46.902 3
+168.165 -46.897 3
+168.145 -46.905 3
+168.142 -46.914 2.99
+168.11 -46.905 3
+168.073 -46.909 3
+168.076 -46.901 3
+168.064 -46.899 3
+168.068 -46.909 3
+168.045 -46.904 3
+168.041 -46.912 3
+168.063 -46.92 3
+168.045 -46.922 2.98
+168.012 -46.904 2.99
+168.025 -46.906 3
+168.032 -46.9 3
+168.018 -46.895 2.99
+168.017 -46.882 3
+168.005 -46.871 3
+167.992 -46.873 3
+168.001 -46.8788 3
+167.996 -46.889 3
+168.003 -46.897 3
+167.979 -46.892 3
+167.98 -46.9 3
+167.971 -46.904 3
+167.965 -46.911 3
+167.976 -46.918 3
+167.976 -46.934 3
+167.952 -46.939 3
+167.928 -46.962 3
+167.979 -46.944 3
+167.989 -46.931 2.98
+168.014 -46.927 2.99
+168.027 -46.94 3
+168.024 -46.953 3
+168.039 -46.947 2.99
+168.098 -46.962 3
+168.131 -46.961 3
+168.073 -46.987 3
+168.126 -46.996 3
+168.138 -46.991 3
+168.144 -46.972 2.97
+168.173 -46.973 3
+168.17 -46.943 2.97
+168.194 -46.924 2.99
+168.191 -46.94 3
+168.18 -46.9509 -0.65
+168.185 -46.9763 -4.18
+168.215 -46.996 3
+168.202 -47.006 3
+168.21 -47.017 3
+168.228 -47.016 3
+168.201 -47.03 3
+168.216 -47.036 3
+168.208 -47.037 3
+168.203 -47.0638 2.37
+168.174 -47.054 3
+168.17 -47.069 3
+168.183 -47.082 3
+168.207 -47.083 3
+168.216 -47.095 3
+168.201 -47.098 2.98
+168.187 -47.085 3
+168.164 -47.082 3
+168.137 -47.082 3
+168.155 -47.099 3
+168.149 -47.118 3
+168.133 -47.117 3
+168.121 -47.124 2.99
+168.073 -47.105 3
+168.059 -47.109 3
+168.058 -47.122 2.98
+168.039 -47.114 3
+168.043 -47.129 3
+168.019 -47.127 2.85
+168.016 -47.12 3
+167.991 -47.114 3
+167.994 -47.127 3
+167.98 -47.135 3
+167.961 -47.14 2.94
+167.95 -47.129 3
+167.935 -47.137 3
+167.927 -47.153 3
+167.909 -47.154 3
+167.903 -47.167 3
+167.88 -47.176 2.99
+167.865 -47.17 3
+167.864 -47.183 2.97
+167.848 -47.18 3
+167.818 -47.194 3
+167.794 -47.188 2.99
+167.773 -47.185 2.99
+167.76 -47.172 3
+167.721 -47.182 2.97
+167.711 -47.155 2.99
+167.696 -47.151 3
+167.691 -47.165 3
+167.677 -47.169 3
+167.675 -47.191 3
+167.664 -47.2 3
+167.645 -47.203 3
+167.635 -47.206 3
+167.629 -47.212 3
+167.598 -47.211 3
+167.605 -47.225 3
+167.583 -47.226 3
+167.574 -47.2317 3
+167.555 -47.229 3
+167.563 -47.244 3
+167.597 -47.234 3
+167.618 -47.244 3
+167.631 -47.229 3
+167.633 -47.223 3
+167.654 -47.224 3
+167.655 -47.234 3
+167.655 -47.247 3
+167.642 -47.2607 3
+167.612 -47.269 2.94
+167.607 -47.255 3
+167.593 -47.245 3
+167.575 -47.256 3
+167.584 -47.264 3
+167.563 -47.273 3
+167.57 -47.279 3
+167.544 -47.282 3
+167.539 -47.29 3
+167.493 -47.284 2.98
+167.487 -47.27 3
+167.478 -47.281 3
+167.454 -47.279 2.98
+167.448 -47.263 2.99
+167.459 -47.255 2.99
+167.464 -47.217 2.97
+167.491 -47.199 2.98
+167.518 -47.204 3
+167.522 -47.188 2.97
+167.571 -47.171 3
+167.571 -47.147 3
+167.563 -47.157 3
+167.552 -47.154 2.99
+167.578 -47.136 3
+167.571 -47.13 2.98
+167.583 -47.115 2.99
+167.567 -47.109 2.99
+167.556 -47.09 2.97
+167.594 -47.069 3
+167.608 -47.049 2.99
+167.647 -47.035 3
+167.69 -47.049 3
+167.711 -47.046 3
+167.703 -47.032 3
+167.692 -47.032 2.99
+167.692 -47.021 3
+167.685 -47.017 2.92
+167.699 -47.003 3
+167.68 -46.994 3
+167.672 -46.975 2.98
+167.662 -46.952 2.98
+167.666 -46.948 3
+167.695 -46.965 3
+167.72 -46.961 3
+167.746 -46.947 2.99
+166.622 -46.1362 1.43
+166.607 -46.139 2.98
+166.605 -46.117 2.99
+166.628 -46.095 2.97
+166.656 -46.107 3
+167.637 -46.794 3
+167.606 -46.787 2.98
+167.613 -46.779 2.98
+167.596 -46.764 2.98
+167.607 -46.747 2.88
+167.622 -46.754 3
+167.639 -46.751 3
+167.64 -46.761 3
+167.66 -46.765 3
+167.659 -46.781 3
+167.379 -47.255 2.93
+167.397 -47.23 2.98
+167.419 -47.224 3
+167.439 -47.23 3
+167.396 -47.261 2.99
+167.723 -47.191 3
+167.705 -47.209 3
+167.696 -47.207 2.95
+167.701 -47.199 2.99
+167.688 -47.187 3
+167.699 -47.179 3
+183.243 -43.827 2.98
+183.205 -43.816 3
+183.21 -43.834 3
+183.18 -43.84 3
+183.152 -43.841 2.99
+183.117 -43.836 2.97
+183.112 -43.825 2.88
+183.107 -43.817 2.98
+183.124 -43.814 3
+183.121 -43.794 2.93
+183.132 -43.783 2.99
+183.186 -43.78 3
+183.19 -43.762 2.99
+183.174 -43.75 3
+183.189 -43.737 3
+183.223 -43.757 3
+183.25 -43.759 3
+183.349 -43.736 3
+183.364 -43.711 2.98
+183.357 -43.696 3
+183.371 -43.693 3
+183.371 -43.683 2.99
+183.391 -43.696 3
+183.418 -43.696 3
+183.465 -43.714 3
+183.506 -43.712 3
+183.501 -43.719 3
+183.511 -43.731 3
+183.548 -43.738 3
+183.633 -43.737 3
+183.651 -43.725 3
+183.659 -43.73 3
+183.678 -43.739 3
+183.704 -43.739 3
+183.727 -43.73 2.99
+183.727 -43.721 2.97
+183.753 -43.717 2.99
+183.771 -43.727 3
+183.796 -43.721 2.99
+183.802 -43.727 3
+183.766 -43.741 3
+183.757 -43.753 3
+183.76 -43.767 2.99
+183.743 -43.755 3
+183.726 -43.755 3
+183.664 -43.778 3
+183.611 -43.842 3
+183.589 -43.889 3
+183.58 -43.928 3
+183.596 -43.994 3
+183.624 -44.023 3
+183.674 -44.032 3
+183.674 -44.048 3
+183.545 -44.066 3
+183.519 -44.075 3
+183.508 -44.088 3
+183.473 -44.098 3
+183.461 -44.113 3
+183.422 -44.13 3
+183.367 -44.111 2.99
+183.353 -44.105 2.96
+183.351 -44.075 3
+183.342 -44.041 3
+183.33 -44.036 2.99
+183.314 -44.01 2.96
+183.414 -43.964 3
+183.427 -43.94 2.98
+183.443 -43.952 3
+183.467 -43.93 2.99
+183.466 -43.907 2.99
+183.456 -43.899 2.99
+183.457 -43.883 2.99
+183.431 -43.846 3
+183.387 -43.804 3
+183.358 -43.804 3
+183.346 -43.803 3
+183.323 -43.801 3
+183.309 -43.81 3
+183.297 -43.817 3
+183.288 -43.822 3
+183.832 -44.261 3
+183.845 -44.261 3
+183.843 -44.273 3
+183.812 -44.288 3
+183.802 -44.3 3
+183.796 -44.326 3
+183.773 -44.334 3
+183.76 -44.351 2.99
+183.746 -44.345 2.95
+183.754 -44.328 3
+183.733 -44.325 2.97
+183.747 -44.311 2.99
+183.739 -44.3 2.95
+183.746 -44.289 2.97
+183.732 -44.284 2.97
+183.758 -44.273 3
+183.761 -44.265 3
+183.725 -44.238 2.93
+183.741 -44.244 3
+183.763 -44.239 2.99
+183.777 -44.224 2.99
+183.787 -44.223 3
+183.807 -44.234 3
+166.983 -45.249 2.93
+167.002 -45.294 3
+166.974 -45.301 2.92
+166.951 -45.294 2.89
+166.946 -45.285 2.83
+166.906 -45.2598 2.99
+166.872 -45.239 2.67
+166.888 -45.2179 2.62
+166.907 -45.189 2.53
+166.933 -45.1655 -16.64
+166.959 -45.144 2.61
+166.95 -45.204 3
+166.971 -45.241 3
+166.714 -45.66 -67
+166.719 -45.669 -67
+166.715 -45.685 -72
+166.724 -45.7023 -108.92
+166.718 -45.719 -72.08
+166.695 -45.741 -97
+166.675 -45.748 -97.01
+166.663 -45.747 -96.99
+166.648 -45.714 3
+166.647 -45.736 -97
+166.626 -45.747 -47
+166.599 -45.753 2.84
+166.593 -45.744 2.99
+166.582 -45.743 2.92
+166.583 -45.731 2.94
+166.593 -45.728 3
+166.59 -45.72 2.96
+166.563 -45.714 2.93
+166.576 -45.71 3
+166.572 -45.702 2.97
+166.545 -45.696 2.98
+166.557 -45.683 2.99
+166.554 -45.672 2.99
+166.551 -45.665 3
+166.528 -45.688 3
+166.506 -45.7033 1.23
+166.481 -45.719 3
+166.455 -45.741 3
+166.445 -45.741 3
+166.452 -45.718 3
+166.522 -45.656 2.99
+166.522 -45.643 2.77
+166.535 -45.637 2.86
+166.54 -45.623 3
+166.567 -45.62 2.91
+166.581 -45.61 2.85
+166.596 -45.613 3
+166.605 -45.601 2.89
+166.625 -45.608 3
+166.671 -45.605 3
+166.678 -45.598 -46.94
+166.707 -45.612 2.96
+166.717 -45.631 2.91
+166.524 -45.753 3
+166.538 -45.744 3
+166.567 -45.751 2.97
+166.549 -45.7553 3
+166.528 -45.763 3
+166.505 -45.77 3
+166.484 -45.768 3
+166.492 -45.749 3
+166.637 -45.771 -71.99
+166.651 -45.76 -72.02
+166.687 -45.758 -97
+166.709 -45.745 -72.23
+166.764 -45.745 2.97
+166.74 -45.76 -77
+166.716 -45.762 -72
+166.702 -45.7655 -97
+166.669 -45.7726 -72
+166.626 -45.782 -77.06
+166.611 -45.774 -47.08
+166.807 -45.742 3
+166.79 -45.732 2.92
+166.829 -45.719 2.91
+166.874 -45.724 3
+166.873 -45.73 2.99
+166.88 -45.7337 2.99
+166.867 -45.7379 -25.96
+166.846 -45.7427 -21.28
+166.814 -45.75 2.94
+166.792 -45.746 2.89
+173.903 -40.852 3
+173.912 -40.862 3
+173.906 -40.875 3
+173.9 -40.858 3
+173.883 -40.862 3
+173.872 -40.873 3
+173.875 -40.879 2.99
+173.852 -40.901 3
+173.837 -40.905 3
+173.832 -40.921 3
+173.819 -40.928 -2.42
+173.803 -40.929 3
+173.787 -40.943 3
+173.771 -40.943 2.73
+173.777 -40.938 2.98
+173.773 -40.93 2.96
+173.788 -40.917 3
+173.786 -40.91 2.97
+173.794 -40.91 3
+173.788 -40.896 3
+173.797 -40.891 3
+173.783 -40.882 3
+173.771 -40.891 2.89
+173.777 -40.876 2.98
+173.771 -40.86 2.83
+173.781 -40.835 3
+173.787 -40.834 2.99
+173.791 -40.858 3
+173.817 -40.857 3
+173.83 -40.87 3
+173.843 -40.865 3
+173.834 -40.858 3
+173.828 -40.858 3
+173.809 -40.849 3
+173.814 -40.834 2.99
+173.805 -40.83 2.98
+173.809 -40.819 3
+173.804 -40.812 3
+173.795 -40.816 2.9
+173.833 -40.772 2.97
+173.83 -40.755 2.93
+173.838 -40.769 3
+173.841 -40.75 2.97
+173.854 -40.747 3
+173.865 -40.731 3
+173.881 -40.737 2.99
+173.86 -40.769 3
+173.861 -40.775 3
+173.872 -40.776 3
+173.866 -40.808 3
+173.887 -40.789 2.95
+173.887 -40.78 2.99
+173.903 -40.803 3
+173.909 -40.782 2.92
+173.932 -40.7688 3
+173.884 -40.7693 -9.04
+173.939 -40.7454 2.98
+173.943 -40.7334 2.97
+173.937 -40.7257 2.97
+173.956 -40.721 2.99
+173.96 -40.7094 2.98
+173.952 -40.6926 2.93
+173.968 -40.7058 3
+173.956 -40.7426 3
+173.962 -40.7562 3
+173.94 -40.7842 3
+173.946 -40.794 3
+173.936 -40.8057 3
+173.94 -40.8131 3
+173.929 -40.8177 3
+173.939 -40.8235 3
+173.917 -40.8373 3
+168.414 -46.6572 2.97
+168.398 -46.6482 2.99
+168.407 -46.6393 2.99
+168.42 -46.6452 3
+176.119 -37.636 1
+176.106 -37.6212 3
+176.117 -37.6208 2.75
+174.202 -35.2166 -17.7
+174.207 -35.2193 -16.2
+174.207 -35.2234 -13.88
+174.199 -35.2196 -16.01
+174.197 -35.2156 -18.31
+174.184 -35.22 -16.1
+174.193 -35.2181 -16.99
+174.196 -35.2248 -13.18
+174.202 -35.2275 -11.6
+174.196 -35.2296 -10.53
+174.195 -35.2342 -7.99
+174.185 -35.2278 -11.72
+174.179 -35.2193 -17.15
+174.156 -35.2305 -14.13
+174.162 -35.233 -10.82
+174.168 -35.2323 -9.88
+174.176 -35.2338 -8.6
+174.176 -35.2382 -6.13
+174.169 -35.2343 -8.46
+174.166 -35.2378 -6.56
+174.157 -35.2364 -9.39
+174.219 -35.2298 -9.42
+174.225 -35.2256 -11.21
+174.229 -35.2187 -15.2
+174.224 -35.2174 -16.26
+174.228 -35.2143 -17.95
+174.222 -35.2142 -18.51
+174.215 -35.2149 -18.66
+174.219 -35.2125 -19.89
+174.224 -35.2101 -20.71
+174.229 -35.2085 -22.17
+174.233 -35.2046 -30.71
+174.235 -35.2141 -21.11
+174.239 -35.2145 -24.33
+174.244 -35.2225 -16.46
+174.236 -35.2206 -14.19
+174.236 -35.2303 -7.67
+174.23 -35.2275 -9.76
+174.231 -35.2225 -12.72
+174.227 -35.2251 -11.32
+174.225 -35.228 -9.81
+174.226 -35.2324 -7.02
+174.204 -35.1977 -29.21
+174.215 -35.1985 -28.48
+174.216 -35.2046 -24.44
+174.222 -35.2058 -23.53
+174.22 -35.2089 -21.88
+174.216 -35.2087 -22.1
+174.21 -35.2082 -22.41
+174.213 -35.2017 -26.02
+174.205 -35.2046 -24.44
+174.107 -35.2131 3
+174.096 -35.2155 -7
+174.082 -35.215 -5
+174.075 -35.211 0
+174.078 -35.2075 -2
+174.085 -35.2097 -2
+174.099 -35.2075 -2
+173.98 -41.1064 2.98
+173.894 -40.879 2.72
+168.346 -46.5859 -0.77
+170.549 -36.3871 -2134.16
+170.582 -36.6501 -2078.51
+170.832 -36.18 -2128.94
+170.557 -36.9104 -1986.06
+170.655 -35.9098 -1976.63
+170.865 -36.4872 -2134.63
+170.496 -37.172 -1944.65
+171.172 -36.596 -1969.76
+171.178 -36.1074 -1841
+171.215 -36.7896 -2067.48
+170.912 -36.78 -2027.23
+171.126 -36.971 -1933.71
+170.635 -35.079 -1939.61
+170.822 -37.0695 -1893.82
+170.993 -35.9101 -1997.92
+171.129 -35.2812 -1875.81
+171.102 -37.2397 -1855.21
+170.756 -37.3286 -1861.42
+171.464 -36.0946 -1730.47
+170.49 -35.2773 -1809.77
+171.398 -36.4561 -1883.9
+171.468 -37.2501 -1832.52
+171.216 -35.4994 -1914.04
+170.976 -37.4741 -1808.22
+171.16 -35.068 -1768.2
+171.468 -36.6974 -2075.89
+170.65 -35.4786 -1791.61
+170.712 -37.6174 -1823.17
+170.504 -35.686 -1424.94
+171.121 -35.688 -1624.27
+171.76 -37.0977 -1837.32
+171.061 -37.6992 -1775.14
+171.776 -37.6608 -1744.34
+171.597 -36.3003 -1575.08
+171.298 -35.8917 -1681.82
+171.404 -35.1263 -1617.15
+170.816 -37.8492 -1599.3
+171.408 -35.3881 -1636.28
+171.726 -37.8303 -1702.95
+171.678 -36.5179 -1581.67
+172.021 -37.5877 -1550.38
+171.049 -37.9849 -1513.12
+171.531 -37.9654 -1708.86
+172.294 -36.7055 -1732.67
+171.433 -35.6472 -1665.45
+172.287 -37.4763 -1269.43
+172.513 -36.6802 -1672.01
+172.489 -36.8792 -1738.71
+172.021 -35.9911 -1549.99
+172.658 -37.1018 -1692.72
+172.401 -36.5218 -1630.53
+171.985 -37.8093 -1699.98
+171.763 -35.6863 -1489.03
+171.435 -38.2019 -1532.09
+172.7 -36.7487 -1685.47
+172.684 -36.5382 -1598.83
+171.812 -37.9882 -1612.43
+172.246 -36.3104 -1598.36
+172.912 -37.1963 -1595.64
+172.009 -35.7917 -1343.17
+172.013 -35.3927 -1486.53
+172.251 -36.088 -1531.33
+172.914 -36.6535 -1508.56
+173.162 -37.2501 -1532.35
+172.238 -37.7001 -1728.33
+172.004 -35.5969 -1367.86
+172.586 -37.4876 -1568.21
+172.333 -38.2033 -1429.4
+172.704 -37.6384 -1552.27
+171.209 -38.3469 -1140.8
+171.471 -38.4705 -1137.78
+172.483 -37.6531 -1693.58
+172.937 -37.7274 -1482.34
+172.572 -38.2805 -1320.26
+170.552 -37.8724 -1312.47
+173.251 -37.737 -1389.68
+173.116 -37.9067 -1375.82
+172.24 -35.8817 -1388.77
+173.464 -37.0215 -1361.84
+173.374 -36.6998 -1286.5
+172.921 -38.2496 -1271.63
+173.528 -37.4753 -1292.68
+171.924 -38.6181 -1048.41
+173.635 -37.1716 -1198.55
+170.971 -38.4572 -931.44
+172.935 -36.1867 -1215.89
+173.515 -37.6778 -1282.99
+172.739 -38.3146 -1029.66
+170.73 -38.0827 -1150.54
+171.655 -38.6723 -1107.8
+173.13 -36.2478 -1305.67
+173.718 -37.3687 -1136.55
+171.844 -38.7691 -965.75
+173.718 -37.5623 -1089.06
+172.651 -38.4417 -1075.01
+171.397 -38.6912 -939.89
+172.491 -38.5757 -974.55
+173.328 -36.316 -1218.73
+172.43 -35.7654 -1126.85
+173.287 -38.0786 -1218.38
+173.121 -38.3257 -1096.89
+170.754 -38.3241 -925.26
+171.536 -38.827 -961.42
+171.89 -38.9333 -797.37
+172.257 -35.0198 -643.74
+171.35 -38.8459 -896.36
+170.874 -38.6126 -833.13
+171.159 -38.7672 -871.47
+173.27 -38.2631 -936.69
+172.531 -35.6231 -802.2
+173.895 -37.6452 -953.65
+173.266 -38.4092 -746.91
+172.454 -38.7575 -749.59
+170.566 -38.2515 -874.97
+170.732 -38.5206 -823.05
+171.219 -38.9641 -867.07
+172.254 -39.0774 -868.66
+172.836 -38.4036 -693.3
+171.441 -38.9757 -900.26
+173.123 -36.1059 -1040.01
+170.921 -38.7536 -822.1
+170.547 -38.4241 -815.76
+172.03 -39.1138 -683.74
+170.964 -38.9429 -828.35
+173.552 -36.5691 -916.81
+171.319 -39.1259 -855.24
+171.798 -39.1079 -810.69
+172.431 -35.3164 -744.91
+173.281 -36.1591 -1060.68
+170.783 -38.8598 -783.13
+171.072 -39.1432 -847.12
+171.556 -39.141 -821.12
+170.71 -38.7114 -774.44
+171.402 -39.2697 -821.29
+173.62 -36.4323 -704.8
+170.733 -39.0049 -764.61
+172.695 -38.599 -405.57
+173.718 -36.6333 -610.61
+170.529 -38.6005 -740.95
+174.053 -37.1594 -300.97
+170.588 -38.8863 -723.35
+171.221 -39.2615 -846.28
+171.561 -39.2969 -677.26
+171.475 -39.4093 -727.4
+170.512 -38.7529 -707.62
+172.418 -39.1046 -425.86
+170.56 -39.0315 -711.98
+170.551 -39.7481 -821.43
+170.556 -39.3557 -758.28
+170.632 -39.8563 -796.75
+170.856 -39.9088 -771.6
+170.585 -39.6121 -856.26
+170.634 -39.1874 -736.3
+171.057 -39.8514 -760.57
+171.386 -39.5413 -745.34
+171.188 -39.5506 -799.14
+170.62 -39.4716 -812.71
+171.017 -39.582 -824.95
+170.812 -39.5535 -835.84
+170.752 -39.3658 -820.29
+171.028 -39.3875 -845.49
+171.282 -39.3992 -827.39
+171.319 -39.6914 -750.31
+171.125 -39.7136 -783.7
+170.935 -39.7257 -816.48
+170.73 -39.7353 -832.11
+171.265 -39.8704 -711.49
+174.087 -37.0827 -167.25
+172.885 -35.8352 -699.3
+171.46 -39.8081 -655.29
+174.045 -37.2518 -229.99
+172.421 -35.4776 -769.68
+171.719 -39.2619 -531.68
+171.665 -39.4159 -450.37
+172.994 -38.4023 -841.04
+171.497 -39.6644 -675.23
+173.261 -36.0307 -607.08
+171.559 -39.5359 -598.45
+172.339 -39.1828 -584.84
+174.038 -37.8745 -245.95
+172.495 -39.0397 -179.48
+172.626 -35.521 -562.51
+173.126 -38.4394 -534.23
+171.448 -39.9367 -633.62
+171.623 -39.761 -545.96
+173.961 -38.042 -237.48
+171.904 -39.2429 -456.56
+172.052 -39.2571 -335.67
+172.199 -39.2285 -466.36
+171.654 -39.6405 -446.16
+173.257 -35.9161 -373.82
+172.517 -38.8683 -242.32
+172.623 -38.7065 -298.5
+172.587 -35.398 -563.12
+171.624 -39.9102 -573.95
+173.697 -38.1323 -526.01
+171.765 -39.8184 -393.01
+171.833 -39.3697 -297.51
+171.742 -39.7176 -365.39
+171.816 -39.9356 -410.1
+174.046 -37.3787 -462.79
+172.824 -35.7156 -504.67
+172.581 -35.2758 -326.74
+171.975 -39.9498 -308.79
+171.805 -39.6219 -273
+172.754 -35.5404 -459.72
+171.922 -39.8409 -259.04
+172.75 -35.4428 -384.93
+171.811 -39.4956 -289.93
+172.477 -39.2139 -217.41
+172.839 -35.6005 -427.22
+171.867 -39.735 -265.77
+174.108 -37.7381 -191.96
+172.598 -35.1734 -233.14
+172.975 -35.7506 -575.73
+172.387 -34.995 -302.13
+171.987 -39.3511 -263.14
+172.102 -39.9658 -280.85
+171.698 -39.5421 -368.97
+172.811 -38.5237 -352.07
+172.707 -35.3305 -284.75
+172.348 -39.2856 -383.1
+171.938 -39.6542 -250.85
+172.083 -39.8584 -259.27
+173.386 -35.9631 -242.51
+172.027 -39.7361 -257.65
+172.127 -39.3407 -258.37
+172.829 -35.3569 -252.29
+174.071 -37.9638 -144.5
+173.691 -36.3215 -322.07
+172.946 -35.6527 -304.95
+174.136 -37.1439 -149.15
+174.246 -37.3166 -143.98
+171.929 -39.5605 -250.36
+172.203 -39.9162 -271.19
+171.941 -39.4559 -250.07
+173.362 -35.8693 -209.21
+172.062 -39.6112 -268.5
+172.151 -39.7738 -266.16
+172.207 -39.834 -266.82
+173.704 -38.2572 -177.4
+172.551 -39.1118 -194.84
+172.247 -39.3383 -317.45
+174.052 -37.0053 -173.02
+172.07 -39.4357 -239.99
+172.166 -39.6928 -277.56
+172.291 -39.9549 -259.43
+173.552 -36.0094 -183.18
+172.027 -39.5172 -251.36
+172.215 -39.6036 -266.28
+172.148 -39.5179 -250.05
+172.498 -39.4239 -190.17
+172.32 -39.869 -252.43
+172.207 -39.4258 -248.79
+172.274 -39.7625 -263.2
+172.381 -39.7014 -243.75
+172.442 -39.554 -224.53
+172.478 -39.3321 -182.45
+172.416 -39.7903 -241.66
+172.277 -39.675 -267.17
+172.358 -39.3995 -267.07
+172.348 -39.6146 -247.65
+172.476 -39.6411 -213.27
+172.306 -39.5137 -243.75
+172.507 -38.956 -126.04
+172.392 -39.9519 -226.01
+172.428 -39.479 -240.11
+172.458 -39.8782 -221.07
+172.921 -38.488 -195.7
+172.761 -38.7035 -143.84
+172.613 -38.8172 -173.18
+172.834 -38.6284 -95.56
+172.928 -38.5745 -165.6
+173.416 -38.431 -233.01
+172.715 -38.7799 -146.62
+173.623 -36.055 -134.08
+172.619 -39.1903 -157.46
+172.621 -38.9169 -164.32
+172.618 -39.0193 -149.52
+172.591 -39.2818 -168.13
+172.867 -38.7078 -143.19
+172.695 -35.2351 -205.61
+172.532 -39.5013 -191.44
+172.593 -39.3707 -174.67
+173.045 -38.5259 -170.85
+172.596 -39.4444 -176.84
+174.146 -37.2996 -168.96
+173.349 -38.5308 -170.76
+172.942 -38.6622 -144.44
+172.84 -38.7891 -143.75
+173.376 -38.3359 -197
+172.679 -39.109 -147.95
+172.745 -38.8701 -143.55
+172.918 -35.3677 -196.42
+173.018 -38.6153 -148.01
+172.715 -38.9591 -149.4
+173.498 -35.9546 -174.97
+172.51 -39.7278 -214.89
+172.543 -39.8145 -201.47
+172.567 -39.5807 -187.98
+172.957 -38.7451 -141.89
+172.571 -39.8989 -173.59
+172.718 -39.1773 -144.52
+173.509 -38.3455 -170.35
+172.658 -39.5102 -167.44
+172.691 -39.3274 -154.03
+172.504 -39.9609 -186.68
+172.871 -38.8724 -142.88
+173.531 -38.4515 -148.04
+173.303 -35.6587 -103.37
+172.755 -39.0355 -146.37
+172.697 -39.2481 -149.94
+173.05 -38.692 -144.17
+172.963 -38.8302 -140.64
+173.382 -38.6347 -142.13
+172.838 -38.9539 -141.59
+172.703 -39.4144 -155.06
+172.806 -39.1268 -143.14
+172.683 -39.6009 -166.07
+173.72 -38.3572 -140.52
+173.125 -38.6184 -148.24
+173.195 -38.5251 -158.35
+172.598 -39.9665 -149.5
+172.796 -39.219 -139.42
+173.069 -38.7814 -139.63
+172.77 -39.286 -142.98
+172.797 -35.2745 -185.78
+172.873 -39.045 -137.8
+173.917 -36.4612 -72.55
+172.761 -39.4761 -147.93
+172.956 -38.9117 -139.55
+172.602 -39.6649 -189.11
+173.806 -38.2066 -174.93
+172.643 -39.7546 -175.22
+174.06 -38.0404 -135.36
+173.468 -35.8871 -172.89
+172.767 -39.5451 -148.97
+174.167 -37.4739 -283.29
+172.654 -39.8446 -152.91
+172.795 -39.351 -142.45
+172.912 -39.1114 -138.85
+173.073 -38.8781 -137.49
+172.956 -38.9877 -137.56
+173.943 -36.6391 -176.8
+173.803 -38.2958 -137.57
+173.546 -38.5344 -143.49
+172.791 -39.6208 -148.95
+172.91 -39.1906 -135.94
+172.877 -39.2853 -134.67
+173.183 -38.7189 -140.83
+173.402 -38.7014 -137.34
+173.623 -38.3196 -168.29
+172.825 -39.4241 -141.8
+173.62 -38.4029 -143.25
+172.503 -35.0162 -188.84
+172.716 -39.6817 -162.28
+172.672 -39.9261 -131.48
+172.978 -39.0623 -135.62
+173.18 -38.8232 -136.34
+172.849 -39.4944 -141.51
+173.462 -38.5068 -152.13
+173.033 -38.9476 -136.15
+173.258 -38.6232 -146.8
+173.049 -35.4196 -156.11
+174.117 -37.8212 -149.08
+172.997 -39.1333 -132.52
+172.865 -39.5669 -142.24
+172.624 -35.0738 -163.45
+172.703 -35.1483 -162.49
+172.97 -39.255 -130.29
+172.879 -39.6314 -141.9
+173.957 -38.1343 -156.39
+173.024 -39.2041 -127.86
+172.904 -39.3698 -134.5
+173.63 -38.4883 -138.25
+173.465 -38.755 -133.41
+172.834 -39.6988 -140.91
+173.284 -38.7832 -135.08
+173.313 -38.704 -140.46
+173.181 -38.8996 -134.43
+173.464 -38.5795 -144.94
+172.909 -35.297 -153.7
+173.052 -39.0099 -134.38
+172.729 -39.8018 -132.7
+173.122 -38.9545 -133.84
+172.751 -39.7457 -135.66
+172.984 -39.3204 -128.61
+173.283 -38.8776 -134.25
+172.929 -39.4438 -134.51
+173.073 -39.0793 -132.42
+172.949 -39.5155 -134.98
+174.033 -36.924 -144.74
+173.897 -38.1848 -158.16
+173.095 -39.1484 -128.38
+172.97 -39.5958 -134.13
+173.78 -38.4119 -132.2
+174.034 -38.0977 -131.05
+172.769 -39.8722 -116.85
+173.149 -39.0278 -131.14
+172.768 -39.956 -113.9
+173.811 -38.3674 -131.03
+174.276 -37.4918 -149.68
+172.784 -35.1971 -138.98
+172.945 -39.6738 -136.44
+174.124 -37.8896 -113.11
+173.645 -38.5739 -133.17
+174.216 -37.6275 -118.99
+172.833 -39.7917 -126.92
+173.057 -39.2708 -125.99
+173.494 -38.8322 -131.4
+173.237 -38.9705 -129.14
+173.123 -39.2175 -123.21
+173.711 -38.4417 -136.55
+174.163 -37.0846 -101.18
+173.009 -39.3931 -127.92
+173.166 -39.0979 -128.93
+172.932 -39.7452 -132.49
+173.891 -38.2531 -131.67
+173.032 -39.4654 -127.77
+173.368 -38.7535 -136.5
+173.037 -39.6549 -128.9
+173.549 -38.5992 -138
+173.489 -38.6629 -135.56
+173.344 -38.9522 -131.75
+173.051 -39.5375 -127.29
+173.377 -38.8952 -130.96
+173.084 -39.3411 -125.05
+174.029 -36.8287 -136.05
+174.214 -37.7058 -114.91
+173.386 -38.8247 -132.13
+173.24 -39.0563 -129.17
+173.069 -39.5991 -126.85
+173 -35.3472 -141.82
+172.871 -39.8614 -119.88
+173.017 -39.7166 -130.42
+173.187 -39.1625 -127.03
+173.519 -38.8969 -130.71
+174.22 -37.2398 -105.03
+173.155 -39.2866 -126.07
+173.327 -39.0266 -129.89
+172.844 -39.983 -112.92
+173.221 -39.2287 -123.56
+173.553 -38.7881 -131.84
+173.242 -39.1168 -126.21
+173.729 -38.5165 -129.95
+173.188 -39.3579 -122.55
+173.112 -39.4141 -123.47
+173.568 -38.7243 -133.22
+172.735 -35.0757 -131.32
+173.863 -38.4237 -117.81
+172.793 -35.1278 -115.15
+173.008 -39.7715 -127.41
+172.853 -39.9235 -114.29
+174.136 -37.0207 -107.35
+173.134 -39.4888 -124.57
+173.602 -38.6524 -132.02
+173.577 -35.9544 -83.58
+172.954 -39.8229 -123.45
+173.32 -39.098 -125.66
+173.155 -39.5677 -122.81
+173.896 -38.3419 -125.8
+173.401 -39.0015 -130.05
+173.441 -38.9421 -131.08
+173.088 -39.699 -125.32
+173.136 -39.6486 -122.19
+173.291 -39.1714 -122.92
+173.699 -38.6458 -124.77
+173.937 -36.5577 -99.71
+173.267 -39.2977 -121
+174.201 -37.1358 -95.77
+174.191 -37.779 -126.56
+173.303 -39.2364 -120.91
+173.758 -38.589 -120.86
+173.524 -38.9561 -130.62
+173.045 -39.8129 -126.1
+172.697 -35.0147 -126.17
+174.05 -36.7495 -94.15
+173.417 -39.0703 -127.71
+173.09 -39.7617 -122.74
+173.66 -38.7084 -127.53
+173.287 -39.3732 -119.93
+173.443 -38.8781 -131.98
+173.225 -39.4348 -121
+174.027 -38.1567 -120.62
+172.943 -39.9015 -116.33
+172.92 -39.9689 -112.91
+173.796 -38.4694 -125.82
+173.231 -39.5134 -119.75
+173.359 -39.2718 -117.64
+173.392 -39.1466 -125.36
+173.214 -39.6209 -116.85
+173.978 -38.2096 -126.37
+173.609 -38.9318 -128.79
+173.543 -35.9065 -112.14
+173.042 -39.8779 -121.15
+173.571 -39.0034 -129.16
+173.824 -36.3402 -123
+173.973 -38.2884 -118.45
+174.303 -37.4382 -93.94
+173.316 -39.4273 -116.92
+173.257 -39.576 -115.52
+173.645 -38.7807 -129.07
+173.596 -38.851 -130.63
+173.792 -38.653 -113.93
+173.378 -39.2126 -118.81
+173.163 -39.7192 -117.1
+173.479 -39.0084 -128.86
+173.357 -39.331 -117.22
+173.867 -38.485 -113.56
+172.869 -35.2266 -120.87
+173.009 -39.9502 -113.43
+173.742 -38.7031 -117.79
+173.117 -39.8292 -115.51
+173.47 -39.1286 -124.04
+173.31 -39.4816 -115.44
+173.833 -38.5368 -116.15
+173.71 -38.7475 -120.6
+173.225 -39.679 -113.95
+173.439 -39.2585 -121.5
+173.244 -39.7432 -110.13
+173.306 -39.535 -113.9
+173.181 -39.7848 -111.81
+173.531 -39.0753 -127.08
+173.9 -36.4171 -75.5
+174.261 -37.7581 -95.14
+173.416 -39.3051 -120.27
+173.374 -39.3923 -116.8
+173.761 -36.1377 -96.69
+173.298 -39.6375 -109.37
+173.474 -39.1964 -123.8
+173.341 -39.5813 -109.71
+173.827 -38.7171 -107.17
+173.138 -39.8916 -111.71
+173.67 -38.8871 -126.78
+174.229 -37.0887 -83.97
+173.683 -38.8393 -125.77
+173.084 -35.3581 -91.78
+173.198 -39.8478 -108.62
+174.116 -36.9513 -110.82
+173.768 -38.7484 -114.75
+173.625 -39.0544 -125.89
+173.788 -36.2555 -133.29
+173.308 -39.7053 -106.95
+173.121 -35.4554 -112.65
+173.003 -35.2719 -85.36
+172.816 -35.0692 -96.95
+173.086 -39.9359 -112.93
+173.547 -39.1512 -122.48
+173.432 -39.3541 -118.34
+173.261 -39.807 -105.84
+173.384 -39.4544 -115.09
+173.852 -38.605 -109.45
+173.377 -39.6268 -107.04
+173.955 -38.4089 -104.06
+173.662 -38.9952 -125.4
+173.454 -39.4166 -113.47
+173.994 -38.3537 -102.71
+173.51 -39.257 -118.05
+174.126 -38.0218 -96.92
+173.213 -35.5199 -85.12
+173.378 -39.6771 -105.99
+173.743 -38.7995 -121.4
+173.49 -39.3143 -116.57
+173.155 -39.9543 -109.16
+173.386 -39.5247 -110.38
+173.822 -38.7761 -111.43
+173.215 -39.9078 -105.87
+173.671 -39.0911 -118.86
+173.906 -38.5169 -104.95
+173.323 -39.7678 -105.3
+173.494 -39.3719 -114.14
+173.457 -39.4825 -109.04
+173.575 -39.2258 -112.87
+174.24 -37.18 -92.45
+174.001 -36.6996 -101.88
+172.859 -35.1649 -97
+173.42 -39.5901 -107.4
+173.613 -39.1129 -121.75
+172.775 -35.0207 -104.31
+173.711 -38.9365 -123.9
+173.932 -38.4713 -103.15
+173.682 -39.1346 -113.34
+173.275 -39.8674 -103.83
+173.528 -39.4125 -109.11
+173.385 -39.7365 -104.18
+173.754 -38.8732 -119.74
+173.751 -38.9941 -121.46
+174.299 -37.5489 -95.98
+174.242 -37.8042 -94.81
+174.035 -38.2561 -105.63
+173.63 -39.1733 -113.31
+173.712 -39.0521 -119.08
+174.289 -37.6011 -97.88
+174.109 -38.0804 -99.42
+172.939 -35.2376 -102.86
+173.23 -39.965 -102.96
+173.876 -38.6648 -102.58
+173.687 -36.105 -114.49
+174.287 -37.6623 -97.75
+173.53 -35.8717 -104.03
+173.507 -39.4522 -108.5
+173.481 -39.5474 -107.64
+173.288 -39.9248 -100.02
+173.877 -38.7558 -101.56
+173.568 -39.2959 -111.67
+173.823 -38.8306 -115.27
+173.387 -39.7872 -99.99
+173.449 -39.6494 -107
+173.812 -36.1873 -89.19
+174.073 -38.2032 -101.46
+173.562 -39.3632 -108.72
+173.345 -39.831 -102.54
+173.915 -38.5669 -100.53
+174.146 -37.9331 -94.56
+173.702 -39.1859 -81.53
+173.483 -39.6048 -107.19
+174.194 -37.847 -96.16
+173.134 -35.4004 -81.32
+173.584 -39.4153 -103.13
+173.451 -39.712 -101.27
+173.661 -39.2295 -87.73
+173.834 -38.8798 -112.66
+174.052 -38.3119 -96.36
+173.398 -35.728 -87.32
+173.818 -38.9377 -114.59
+173.926 -38.6238 -97
+173.528 -39.4979 -106
+173.783 -39.0419 -107.78
+173.295 -39.9739 -98.21
+174.105 -36.8828 -93.82
+174.289 -37.7142 -93.66
+173.72 -39.1016 -112.52
+174.156 -37.9753 -91.84
+173.564 -39.4555 -103.87
+174.091 -38.1388 -104.82
+173.634 -39.2814 -94.8
+174.112 -36.8331 -91.14
+173.552 -39.5426 -106.51
+173.338 -39.8893 -98.74
+173.885 -38.8016 -102.62
+173.46 -39.7762 -95.57
+173.908 -38.7165 -97
+173.526 -39.6407 -102.51
+174.031 -36.641 -74.14
+173.63 -39.3366 -95.07
+173.42 -39.8244 -97.42
+174.022 -38.4023 -95.04
+173.541 -39.5879 -106.95
+173.688 -39.7533 -91.32
+173.65 -39.6514 -96.18
+173.526 -39.7343 -93.26
+173.678 -39.4876 -90.95
+173.674 -39.7985 -88.07
+173.682 -39.7009 -85.16
+173.748 -39.826 -86.01
+173.833 -39.8955 -88.67
+173.728 -39.7759 -86.27
+173.982 -38.5278 -97
+173.538 -39.787 -82.67
+173.597 -39.8226 -79.54
+173.775 -39.0871 -94.28
+173.753 -39.9074 -88.91
+173.661 -39.9128 -93.1
+173.61 -39.9402 -77.67
+173.371 -39.9487 -95.26
+173.683 -39.9743 -84.95
+173.605 -39.5677 -102.53
+173.528 -39.9378 -82.58
+173.451 -39.9174 -89.84
+173.453 -39.9664 -87.77
+173.845 -39.948 -93.53
+173.596 -39.6242 -101.6
+173.632 -39.3946 -97
+174.018 -38.4587 -93.63
+173.593 -39.8866 -75.95
+173.507 -39.6857 -99
+173.585 -39.6863 -92.01
+173.604 -39.5069 -102.28
+173.828 -39.008 -110.66
+173.889 -38.9795 -101.05
+173.592 -39.9947 -77.07
+173.878 -38.9001 -103.62
+173.612 -39.7547 -84.05
+173.625 -39.4498 -98.05
+173.983 -38.5931 -95.6
+173.885 -39.0281 -97.71
+173.848 -39.0682 -89.08
+173.888 -38.8551 -101.65
+173.67 -39.5427 -96.13
+173.499 -39.8518 -85.81
+173.981 -38.639 -94.86
+173.67 -39.8582 -96.03
+173.406 -39.8766 -96.19
+173.778 -39.9853 -101.78
+173.946 -38.6736 -96.24
+173.898 -38.9331 -100.17
+174.29 -37.3825 -167.89
+173.946 -38.8929 -95.48
+173.67 -39.6005 -93.02
+173.807 -39.859 -82.66
+174.282 -37.213 -84.38
+173.951 -36.5003 -67.32
+174.065 -38.5146 -89.1
+173.764 -39.145 -69.23
+174.069 -38.3671 -93.53
+172.868 -35.1089 -50.42
+174.104 -38.2674 -93.97
+174.179 -37.8993 -93.13
+174.049 -38.5725 -89.58
+173.899 -39.979 -87.58
+173.936 -38.765 -94.22
+174.183 -38.015 -88.73
+174.135 -38.1754 -94.55
+174.079 -38.4188 -91.2
+173.057 -35.3138 -88.91
+173.622 -35.994 -81.66
+174.136 -38.3275 -90.3
+174.172 -36.906 -83.03
+174.176 -38.0609 -89.86
+173.976 -38.7209 -90.04
+174.268 -37.8436 -87.39
+174.296 -37.7971 -85.86
+174.201 -37.9374 -88.1
+174.011 -38.6765 -88.88
+174.17 -38.1238 -90.65
+174.036 -38.6283 -88.87
+174.104 -36.785 -84.32
+174.206 -37.0354 -83.84
+173.728 -39.235 -28.58
+173.668 -36.0149 -69.79
+174.149 -38.2228 -91.68
+174.348 -37.5217 -86.11
+174.351 -37.5755 -83.93
+174.259 -37.132 -82.41
+174.1 -38.4678 -88.32
+174.351 -37.6308 -83.38
+174.325 -37.7499 -84.49
+174.238 -37.892 -87.45
+174.128 -38.5078 -85.7
+174.224 -37.9829 -84.85
+174.133 -38.3889 -88.56
+174.178 -38.2714 -88.73
+173.746 -39.7344 -81.04
+174.197 -38.1822 -88.93
+174.198 -36.9694 -81.53
+174.357 -37.6923 -79.29
+174.235 -38.0332 -84.8
+174.134 -38.4336 -87.53
+173.787 -39.7727 -71.45
+172.848 -35.0181 -80.42
+174.326 -37.8335 -77.92
+173.895 -36.3705 -67.58
+174.237 -38.0864 -85.29
+174.318 -37.3263 -95.8
+174.07 -36.6888 -76.19
+174.119 -38.5541 -82.72
+174.271 -37.9395 -80.35
+173.891 -39.908 -73.15
+174.351 -37.4674 -84.62
+174.04 -38.7219 -82.51
+174.248 -38.1407 -84.75
+173.715 -39.6435 -85.69
+174.298 -37.1694 -76.31
+173.907 -39.9469 -81.7
+174.076 -38.6732 -80.82
+172.887 -35.0598 -74.24
+173.719 -39.5685 -83.49
+174.355 -37.4138 -84.69
+173.689 -39.4321 -72.42
+174.113 -38.6165 -79.14
+173.959 -38.823 -93.73
+174.221 -38.318 -83.41
+174.211 -38.2276 -87.25
+174.359 -37.7922 -75.23
+173.954 -38.9543 -93.2
+174.278 -37.0935 -73.72
+173.827 -39.8117 -68.88
+173.733 -39.602 -80.16
+174.309 -37.2657 -81.52
+174.317 -37.8858 -77.56
+174.174 -38.4729 -85.41
+174.198 -38.3699 -86.29
+174.161 -36.8547 -77.72
+174.3 -37.996 -79.2
+173.773 -39.6767 -72.74
+174.19 -38.5313 -78.97
+174.113 -36.7271 -70.41
+174.272 -38.1982 -83.23
+174.298 -38.0546 -80.2
+174.364 -37.3611 -90.12
+174.251 -37.0016 -71.05
+174.391 -37.8414 -73.21
+173.946 -39.0157 -79.52
+174.261 -38.2643 -82.86
+174.004 -38.7699 -87.57
+173.742 -39.5227 -73.98
+174.187 -38.4203 -85.83
+174.302 -38.1045 -80.46
+174.343 -37.9428 -75.94
+174.18 -38.5838 -75.87
+174.315 -38.15 -79.72
+174.16 -36.807 -74.27
+174.41 -37.5487 -72.34
+174.413 -37.6005 -71.36
+174.418 -37.6521 -70.69
+174.291 -38.3174 -76.57
+174.108 -38.7223 -75
+174.392 -37.744 -72.02
+173.173 -35.4866 -95.02
+173.875 -39.8544 -67.19
+174.147 -38.6745 -72.52
+174.409 -37.4963 -73.44
+174.24 -36.9131 -67.9
+174.19 -38.6316 -71.38
+174.392 -37.9005 -72.82
+173.951 -39.9714 -79.47
+174.432 -37.7001 -67.76
+174.266 -38.3598 -77.16
+174.069 -38.7692 -79.33
+173.97 -36.4579 -36.27
+174.017 -38.8628 -89.63
+174.242 -38.4523 -81.47
+174.376 -37.985 -74.13
+174.25 -38.4056 -80.12
+174.348 -38.1868 -77.62
+174.424 -37.7859 -68.12
+174.242 -38.4985 -77.86
+174.334 -38.2353 -77.59
+174.361 -38.0308 -75.75
+174.334 -38.2855 -74.44
+174.356 -38.077 -76.68
+174.345 -37.2078 -66.39
+174.251 -38.5347 -73.93
+173.817 -39.7216 -62.27
+173.705 -39.3682 -39.54
+174.357 -38.1184 -76.76
+174.41 -37.9453 -71.96
+173.637 -35.9508 -57.66
+174.365 -38.1516 -76.31
+173.525 -35.831 -79.16
+174.237 -38.5675 -72.33
+174.006 -36.5843 -67.23
+174.341 -38.3227 -71.32
+174.465 -37.821 -65.73
+174.452 -37.8707 -69.14
+174.274 -37.048 -70.18
+174.411 -37.4422 -73.44
+174.216 -36.866 -67.36
+174.345 -37.1595 -62.73
+174.316 -37.1208 -66.91
+174.136 -38.771 -70.9
+173.695 -39.2763 -49.82
+172.995 -35.2049 -61.21
+173.936 -36.3925 -51.59
+174.325 -38.3541 -70.9
+174.313 -38.3939 -71.7
+174.274 -36.957 -62.17
+174.183 -38.7266 -66.52
+174.215 -38.6776 -65.24
+173.855 -39.7601 -60.44
+172.916 -35.0159 -62.23
+174.38 -37.3035 -71
+174.303 -38.4368 -73.27
+173.948 -39.9241 -68
+173.701 -36.047 -63.43
+174.439 -37.9798 -70.37
+174.405 -38.1721 -72.01
+174.413 -37.3913 -71.63
+174.453 -37.9143 -69.27
+174.397 -38.2143 -71.6
+174.452 -37.7408 -64.16
+173.777 -39.6225 -70.17
+174.416 -38.0132 -71.92
+174.23 -38.6039 -69.99
+173.481 -35.7863 -70.62
+174.2 -36.8272 -66.44
+173.895 -39.7972 -55.93
+174.397 -38.2648 -69.75
+174.311 -37.0775 -64.55
+174.036 -38.8143 -85.93
+174.298 -38.4801 -72.15
+172.925 -35.1886 -67.95
+174.424 -38.0577 -71.95
+173.779 -39.5706 -66.84
+174.298 -38.5199 -69.15
+174.477 -37.5714 -61.19
+174.401 -38.0984 -73.69
+174.094 -36.6378 -55.07
+174.384 -38.3095 -68.14
+174.465 -37.6223 -63.43
+174.378 -38.3465 -66.28
+174.162 -36.7572 -62.1
+174.025 -38.9203 -86.71
+174.374 -37.2528 -63.5
+174.459 -37.9486 -69.05
+173.948 -36.4248 -49.31
+174.457 -37.5215 -63.23
+174.407 -38.1328 -72.9
+174.485 -37.6661 -60.11
+174.483 -37.7734 -61.61
+174.37 -38.3837 -64.69
+174.292 -38.5586 -67.09
+174.423 -37.3443 -63.64
+173.937 -39.8776 -58.6
+174.017 -38.988 -55.63
+174.48 -37.7083 -61.11
+173.742 -39.4678 -58.46
+174.201 -38.7785 -61.95
+173.822 -39.6403 -59.77
+174.262 -38.6398 -63.54
+174.281 -38.5967 -65.24
+174.474 -37.4702 -57.86
+174.363 -38.4234 -65.01
+174.519 -37.8492 -59.77
+174.497 -37.894 -63.29
+173.676 -39.3161 -68.62
+174.249 -38.7145 -60.16
+174.438 -38.3023 -63.52
+174.099 -38.8133 -77.97
+173.998 -36.5272 -42.05
+174.269 -38.6814 -59.47
+174.458 -38.1534 -66.58
+174.515 -37.8009 -58.41
+174.358 -38.4645 -64.94
+174.454 -38.1946 -65.81
+174.496 -37.9703 -64.18
+173.611 -35.911 -51.83
+174.45 -38.2363 -65.08
+174.422 -38.3338 -62.95
+174.128 -36.6756 -56.25
+174.456 -38.2706 -63.51
+172.922 -35.1398 -31.01
+173.428 -35.6886 -51.53
+174.48 -38.016 -66.85
+174.012 -39.9473 -64.43
+174.235 -38.7493 -59.85
+174.463 -37.4138 -56.08
+174.054 -39.983 -60.69
+174.498 -38.0653 -63.54
+174.393 -37.1707 -53.22
+174.46 -38.1064 -67.8
+174.309 -36.9979 -58.14
+174.502 -37.9308 -62.93
+174.309 -36.9093 -50.28
+173.849 -39.674 -54.38
+173.835 -36.1389 -44.74
+174.353 -38.5052 -63.29
+174.432 -38.3726 -59.55
+173.796 -39.4883 -44.43
+174.498 -37.7356 -58.33
+174.347 -38.5467 -61.15
+173.398 -35.651 -45.3
+174.068 -38.8458 -82.26
+174.276 -36.8687 -53.76
+173.051 -35.2326 -35.98
+172.943 -35.0519 -55.46
+173.916 -39.0684 -53.74
+174.412 -38.4094 -58.96
+174.163 -38.8186 -66.78
+174.375 -37.1254 -53.15
+173.992 -39.8931 -50.48
+174.457 -37.3724 -54
+174.258 -38.7812 -55.12
+173.941 -39.8293 -50.46
+174.249 -36.8261 -54.37
+173.081 -35.2775 -49.39
+173.676 -35.9759 -52.24
+174.529 -38.1035 -57.55
+174.334 -38.5861 -60.12
+174.168 -36.7073 -50.12
+174.215 -36.7811 -54.44
+174.495 -38.2939 -58.5
+173.998 -39.0303 -32.18
+173.884 -39.7097 -52.62
+174.07 -36.5942 -45.21
+174.507 -38.137 -60.65
+174.423 -38.4492 -56.66
+174.306 -38.7069 -54.16
+174.548 -37.9509 -56.57
+174.518 -38.1808 -58.58
+174.541 -37.7561 -53.32
+174.323 -38.6248 -56.97
+174.496 -38.219 -60.43
+174.48 -38.3382 -57.26
+174.066 -38.8802 -81.74
+174.501 -38.2546 -58.94
+173.187 -35.4344 -64.31
+174.542 -37.9928 -57.84
+174.55 -37.5637 -50.11
+174.527 -37.621 -54.05
+173.921 -39.7449 -47.44
+173.75 -39.4209 -33.4
+174.59 -37.847 -50.24
+174.404 -38.4886 -58.18
+174.513 -37.5189 -54.82
+174.555 -37.8999 -55.53
+174.409 -37.2181 -56.62
+174.545 -38.035 -58.46
+172.971 -35.1614 -41.54
+174.317 -38.6661 -55.81
+174.553 -38.0712 -56.77
+174.234 -38.8242 -55.4
+174.53 -37.6615 -52.92
+174.439 -37.3043 -54.71
+174.563 -37.804 -52.24
+174.285 -38.7455 -53.71
+174.487 -38.3785 -53.83
+173.907 -36.3222 -50.4
+174.531 -37.6997 -52.87
+174.52 -37.4246 -47.4
+174.426 -37.2643 -52.63
+174.47 -38.4136 -53.07
+174.08 -38.958 -55.68
+173.978 -39.8542 -47.36
+174.413 -38.5318 -53.99
+173.835 -39.5991 -55.1
+174.356 -37.0837 -49.03
+174.551 -38.28 -51.7
+173.807 -36.0967 -36.31
+174.544 -37.4716 -47.62
+174.391 -38.5783 -53.78
+172.978 -35.0208 -45.36
+174.368 -38.6115 -53.99
+173.144 -35.3551 -43.5
+174.544 -38.3254 -51.6
+174.203 -36.7342 -46.44
+174.314 -38.7801 -49.09
+174.337 -37.0406 -54.95
+174.631 -37.8881 -44.92
+173.803 -39.5276 -51.26
+174.605 -37.9366 -48.7
+174.482 -38.4529 -49.57
+174.343 -36.9493 -45.44
+174.591 -38.0953 -50.57
+173.755 -36.0762 -51.46
+174.571 -38.1426 -50.02
+174.501 -37.3795 -44.57
+174.581 -38.1889 -49.16
+173.96 -39.7808 -46.71
+174.554 -38.2296 -52.44
+173.753 -39.1965 -30.55
+173.829 -39.1146 -58.5
+174.12 -38.8611 -72.57
+174.464 -38.4936 -51.58
+174.588 -37.974 -51.18
+174.286 -38.81 -48.76
+174.622 -37.8 -44.28
+174.337 -36.867 -39.83
+174.535 -38.368 -49.7
+174.596 -38.0104 -51.02
+174.053 -39.8991 -42.1
+174.363 -38.6923 -47.89
+174.574 -37.5151 -43.6
+174.483 -37.332 -43.85
+174.594 -37.765 -46.72
+174.6 -38.0534 -51.68
+173.719 -36.0018 -39.22
+173.462 -35.7368 -43.91
+174.437 -37.1257 -31.79
+174.519 -38.4002 -49.27
+174.106 -39.9873 -47
+173.866 -36.2823 -73.27
+174.457 -39.9846 -44.19
+174.352 -38.7404 -45.54
+174.371 -38.6482 -49.31
+174.396 -39.9701 -47.72
+173.114 -35.3169 -45.03
+174.449 -38.5739 -47
+173.877 -39.628 -46.89
+174.467 -37.2279 -47.86
+174.423 -38.6202 -47
+174.45 -37.1807 -45.15
+174.47 -38.5377 -47.78
+174.159 -39.9935 -47
+174.079 -39.9457 -42.29
+174.616 -38.2198 -41.86
+173.845 -39.5519 -48.77
+174.657 -38.0789 -33.55
+174.606 -38.2635 -43.01
+174.096 -38.9111 -75.68
+174.658 -37.8383 -40.71
+172.998 -35.0684 -45.04
+173.949 -39.6959 -40.18
+174.289 -38.8397 -45.37
+172.983 -35.1198 -46.44
+174.605 -38.3133 -41.6
+174.308 -36.8284 -41.51
+174.482 -37.2768 -41.38
+173.914 -39.6619 -43.28
+174.191 -38.8648 -60.56
+174.599 -37.7133 -44.13
+174.027 -39.8531 -39.79
+174.365 -38.7816 -42.51
+174.339 -39.9839 -46.24
+174.601 -37.603 -42.92
+174.524 -38.4338 -44.97
+174.426 -38.6743 -43.29
+174.524 -38.4758 -44.49
+174.573 -37.6592 -46.37
+174.138 -39.9511 -44.62
+173.996 -39.8149 -43.63
+173.985 -39.7306 -39.21
+174.275 -39.9747 -27
+174.602 -37.5522 -40.1
+174.653 -38.0273 -42.52
+174.646 -37.7517 -39.22
+174.503 -38.5669 -41.16
+174.577 -37.4292 -38.38
+174.596 -38.3588 -35.9
+174.258 -38.8728 -48.33
+174.142 -36.6332 -43.57
+174.404 -37.0899 -34.42
+174.532 -39.9749 -34.05
+174.402 -38.717 -41.58
+174.156 -38.9039 -62.57
+174.645 -37.976 -42.22
+173.99 -36.4247 -13.76
+173.859 -36.1729 -42.37
+174.278 -36.7825 -39.86
+172.933 -35.0916 -37.25
+174.52 -38.5222 -43.17
+174.386 -36.901 -27.59
+173.028 -35.0301 -39.22
+174.338 -38.8192 -40.11
+173.718 -39.3143 -30.28
+174.021 -39.7678 -37.08
+174.379 -36.9906 -36.68
+174.639 -39.9812 -37.37
+174.636 -38.1216 -28.82
+174.552 -37.3858 -35.75
+174.587 -39.9693 -37.51
+174.223 -39.9976 -51.67
+174.683 -37.7888 -35.51
+174.667 -37.9269 -37.65
+174.71 -37.8799 -28.5
+174.482 -38.6081 -38.82
+173.996 -36.4843 -24.75
+174.644 -38.1717 -31.67
+174.421 -39.9423 -40.58
+174.079 -39.0054 -21.62
+173.229 -35.4722 -54.96
+174.637 -37.6562 -37.14
+174.467 -38.6449 -37.98
+174.098 -39.8496 -32.53
+173.063 -35.0588 -35.88
+174.054 -36.5436 -24.94
+174.604 -37.4735 -34.07
+174.248 -36.7343 -36.14
+174.416 -38.759 -36.42
+174.136 -38.9417 -43.22
+174.119 -39.9052 -35.41
+173.969 -39.0622 -31.14
+174.217 -38.9094 -36.8
+174.729 -37.8262 -28.58
+174.531 -37.3484 -34.59
+174.401 -38.8072 -34.19
+173.957 -36.3561 -20.6
+174.671 -37.7016 -34.18
+173.048 -35.1048 -32.93
+174.178 -36.6571 -36.37
+174.215 -36.6918 -36.56
+173.98 -39.6463 -32.06
+174.487 -38.6829 -30.95
+174.124 -36.596 -28.81
+174.056 -39.8063 -34.73
+173.978 -36.3942 -14.16
+174.359 -36.8335 -31.24
+174.696 -37.9584 -34.16
+174.703 -39.9838 -31.95
+173.665 -35.923 -30.48
+174.701 -37.9969 -32.84
+174.327 -38.8718 -35.04
+174.454 -38.7191 -35.83
+174.015 -39.6814 -31.29
+174.481 -39.9282 -23.81
+174.67 -37.6067 -31.95
+174.615 -39.9475 -31.52
+174.706 -37.7399 -30.8
+173.933 -36.2726 -33.96
+174.496 -37.1931 -35.37
+174.186 -39.9609 -39.18
+174.405 -36.9405 -26.25
+174.342 -36.7902 -29.94
+174.719 -38.0464 -29.4
+174.38 -38.8441 -30.49
+174.051 -39.7188 -29.41
+173.902 -39.5776 -36.25
+174.541 -37.3017 -30.26
+173.076 -35.0146 -32.73
+173.94 -39.6142 -34.12
+174.084 -39.7584 -27.99
+174.631 -37.5181 -30.33
+174.568 -38.5594 -29.33
+174.649 -37.5618 -30.58
+173.677 -35.9485 -37.87
+174.649 -38.2483 -31.79
+174.29 -38.9246 -27.3
+174.665 -38.2167 -26.42
+174.4 -37.0441 -24.68
+174.529 -38.5982 -34.05
+174.532 -37.2357 -29.96
+173.878 -36.22 -41.48
+173.85 -39.5029 -26.15
+174.7 -37.6505 -28.75
+174.363 -39.9286 -27.67
+174.741 -37.775 -27.26
+174.394 -36.8605 -23.2
+174.658 -38.29 -29.42
+173.897 -39.5328 -13.69
+174.471 -38.7547 -30.63
+174.117 -39.7958 -24.07
+174.181 -38.9348 -32.88
+173.031 -35.1551 -20.32
+174.767 -39.9826 -27.06
+174.461 -38.7936 -28.37
+174.583 -38.4995 -31.04
+173.582 -35.8661 -49.82
+174.724 -37.9258 -28.94
+174.606 -37.3897 -27.72
+174.18 -39.9195 -22.63
+174.666 -39.9464 -29.96
+173.115 -35.0431 -28.37
+174.634 -37.4328 -24.26
+174.734 -37.6914 -25.1
+174.577 -37.3462 -25
+174.491 -37.1493 -25.38
+174.522 -38.6426 -28.12
+174.563 -39.9279 -25.94
+174.686 -39.9081 -17
+174.293 -39.9338 -27.45
+174.232 -39.9445 -27.08
+174.047 -39.6321 -20.91
+173.111 -35.0905 -25.9
+174.832 -39.9821 -24.6
+174.367 -39.8804 -23.64
+174.728 -39.9435 -23.77
+174.084 -39.6688 -22.24
+174.443 -38.8428 -23.91
+174.125 -39.7082 -19.18
+174.432 -36.9619 -19.19
+174.574 -38.4077 -32.57
+174.103 -36.559 -21.87
+174.627 -39.9136 -25.99
+173.965 -36.3115 -21.46
+173.791 -39.4472 -19.75
+174.39 -38.8812 -23.56
+174.766 -37.7307 -21.1
+174.152 -39.8243 -18.86
+174.17 -38.962 -17.41
+174.893 -39.9842 -21.79
+174.165 -39.8679 -17.04
+174.434 -37.0022 -17.25
+174.518 -38.7741 -21.57
+174.306 -36.7351 -23.22
+174.138 -39.7542 -18.18
+174.781 -37.8016 -18.72
+174.042 -36.4898 -13.21
+174.007 -39.5947 -16.22
+174.267 -36.6824 -23.75
+174.35 -38.9123 -21.94
+174.727 -37.6033 -16.27
+173.755 -36.0313 -29.03
+174.739 -37.9662 -26.69
+174.313 -39.8841 -22.27
+174.521 -39.8897 -17
+174.799 -39.937 -17.15
+174.756 -37.6433 -11.54
+174.7 -37.5701 -18.5
+174.341 -39.8423 -17
+174.416 -39.9 -17
+174.582 -39.8725 -17.4
+174.514 -38.8221 -16.21
+174.788 -37.7655 -18.14
+174.225 -36.6357 -23.6
+174.599 -37.3101 -18.61
+174.753 -38.0068 -17.07
+174.019 -36.4465 -10.56
+174.182 -36.599 -20.13
+174.748 -39.9017 -14.91
+174.651 -39.8789 -17
+174.664 -37.4789 -15.29
+174.569 -38.4539 -29.26
+174.447 -38.8912 -16.43
+174.466 -39.8735 -17
+174.405 -39.8476 -17
+174.574 -38.6127 -24.4
+174.452 -37.0688 -4.56
+174.956 -39.9878 -17
+174.489 -37.0974 -6.87
+174.398 -38.9278 -14.3
+173.958 -39.576 -12.06
+174.715 -38.0951 -11.41
+174.462 -39.8281 -17
+174.251 -39.7759 -17
+174.194 -39.7267 -17
+174.321 -39.7972 -17
+174.422 -39.797 -13.44
+174.515 -39.8431 -17
+174.209 -39.8287 -27.24
+174.18 -39.6801 -17
+174.147 -39.6516 -15.94
+174.278 -39.8354 -17
+174.239 -39.8872 -27.55
+174.372 -39.8109 -17
+174.267 -39.7148 -17
+174.803 -39.8904 -10.72
+174.872 -39.9428 -12.85
+174.37 -39.7706 -13.58
+174.176 -39.7835 -19.48
+174.316 -39.7484 -17
+174.231 -39.6739 -14.2
+174.15 -36.5522 -12.48
+174.639 -37.3487 -12.04
+174.563 -38.7423 -13.56
+173.096 -35.1409 -13.54
+174.69 -37.5288 -15.54
+174.929 -39.9457 -11.65
+174.539 -37.176 -18
+174.13 -38.9807 -19.32
+174.327 -39.7017 -10.77
+174.657 -37.3971 -12.44
+174.108 -36.5072 -9.92
+174.108 -39.6236 -14.8
+174.198 -39.6416 -11.77
+174.852 -39.9089 -7.73
+174.587 -37.2689 -18.42
+174.286 -39.6641 -9.66
+174.347 -38.9547 -13.64
+174.039 -39.0316 -14.95
+174.498 -38.8644 -9.94
+174.226 -38.9563 -12.89
+174.366 -39.7319 -9.51
+174.451 -37.0348 -5.46
+174.575 -38.6576 -17.03
+174.526 -37.1261 -11.15
+173.998 -36.3699 -6.62
+177.65 -36.0632 -2698.54
+178.179 -35.9995 -2425.47
+178.234 -35.0886 -2633.03
+177.642 -36.2939 -2517.91
+177.398 -36.1251 -2115.75
+177.83 -35.8938 -1936.81
+177.475 -35.8563 -2568.94
+176.606 -35.3251 -2394.21
+178.284 -36.4526 -2425.46
+177.934 -36.4524 -2346.77
+177.695 -35.6189 -2265.21
+177.073 -36.1786 -2497
+176.481 -35.5347 -2130.37
+177.547 -36.7693 -2273.11
+176.851 -36.3285 -2247
+178.132 -36.7178 -2365.13
+176.881 -36.4834 -1641.73
+176.471 -35.0934 -2277.01
+178.455 -37.0687 -2242.25
+176.904 -35.8897 -2207.66
+176.281 -35.3348 -1997
+177.197 -35.2022 -1843.9
+176.663 -35.7026 -2247
+176.249 -35.5801 -1833.26
+177.074 -36.9496 -1801.29
+177.281 -36.8174 -1997
+175.679 -35.046 -1639.23
+176.747 -36.1262 -1441.13
+176.619 -36.2955 -1497
+176.899 -37.0692 -1343.66
+176.71 -36.7195 -1567.97
+175.656 -35.2737 -1212.47
+176.068 -35.6565 -747
+176.467 -36.1145 -1143.14
+175.773 -35.574 -497
+175.277 -35.1546 -1015.28
+176.123 -35.787 -497
+175.592 -35.468 -747
+175.429 -35.311 -861.11
+174.785 -35.0609 -528.55
+175.23 -35.3348 -672.57
+175.354 -35.4772 -537.4
+177.149 -37.6098 -237.49
+175.098 -35.2345 -613.9
+175.639 -35.6292 -497
+175.9 -35.68 -468.89
+176.994 -37.4685 -497
+175.487 -35.6036 -507.39
+176.278 -36.0367 -526.32
+175.181 -35.4643 -431.61
+177.078 -37.5472 -247
+175.662 -35.7296 -375.38
+176.286 -36.176 -511.83
+175.762 -35.7026 -432.18
+176.974 -37.576 -247
+175.078 -35.3702 -420.57
+176.004 -35.7893 -420.42
+176.135 -36.2966 -359.65
+175.729 -35.8073 -317.12
+177.338 -39.8116 -236.24
+176.232 -35.8785 -436.98
+175.861 -35.8008 -367.84
+177.579 -39.6698 -154.31
+175.559 -35.715 -343.45
+175.047 -35.4826 -304.83
+176.162 -36.2066 -283.93
+174.965 -35.2978 -369.99
+175.245 -35.5564 -349.28
+175.617 -35.805 -245.58
+177.704 -37.6191 -127.32
+175.343 -35.6216 -283.99
+177.43 -39.7558 -231.8
+176.088 -35.8786 -307.76
+175.802 -35.9013 -268.59
+175.954 -35.931 -266.47
+177.757 -37.5765 -160.15
+176.057 -36.3626 -275.6
+175.135 -35.5662 -303.64
+177.63 -39.612 -131.89
+177.262 -39.8573 -226.4
+176.182 -36.1069 -252.91
+176.043 -36.2471 -211.42
+175.021 -35.5825 -247
+174.955 -35.41 -240.12
+176.117 -36.0024 -246.43
+176.189 -37.1936 -246.09
+175.846 -35.9869 -223.72
+175.674 -35.9066 -199.63
+175.432 -35.7222 -225.99
+174.935 -35.5087 -215.74
+175.1 -35.6577 -200.18
+177.481 -39.6773 -172.98
+176.004 -36.0418 -209.4
+176.068 -36.1263 -211.34
+175.91 -36.0447 -197
+176.147 -37.2331 -138.3
+174.86 -35.3506 -216.79
+175.219 -35.6552 -215.42
+175.32 -35.7198 -197
+177.059 -37.6264 -174
+178.139 -39.0388 -74.84
+178.575 -37.5456 -197
+175.513 -35.8032 -187.19
+176.08 -36.6409 -157.48
+175.749 -35.9857 -190.78
+174.852 -35.448 -165.2
+175.968 -36.1037 -196.14
+175.371 -35.7816 -132.26
+174.622 -35.3281 -145.41
+175.808 -36.0699 -179.65
+175.239 -35.7431 -153.86
+174.993 -35.6828 -165.84
+176.983 -37.6526 -140.41
+175.967 -36.1766 -176.2
+177.641 -37.6415 -123.41
+176.08 -36.7117 -149.67
+174.834 -35.5365 -147.28
+176.792 -37.6239 -320.67
+175.564 -35.8875 -171.35
+175.158 -35.732 -151.95
+175.073 -35.7273 -157.03
+175.941 -36.3998 -159.27
+177.474 -39.4716 -104.62
+175.43 -35.8109 -140.83
+175.949 -36.4832 -138.31
+175.891 -36.1264 -173.81
+175.717 -36.0509 -157.94
+178.372 -38.7545 -53.9
+175.296 -35.7963 -103.95
+174.758 -35.3975 -139.2
+175.811 -36.1611 -153.24
+176.86 -37.6596 -171.45
+174.891 -35.6778 -152.23
+174.774 -35.5978 -126.33
+177.703 -39.5546 -111
+175.457 -35.8863 -133.78
+174.777 -35.4751 -79.19
+174.931 -35.7526 -145.67
+175.731 -36.1221 -143.11
+174.806 -35.6667 -133.17
+175.659 -36.0014 -151.06
+175.015 -35.7704 -128.94
+175.881 -36.2026 -151.24
+176.923 -37.688 -98.1
+175.887 -36.3441 -132.56
+174.737 -35.5301 -100.41
+174.964 -35.8119 -93.63
+175.202 -35.8122 -71.02
+175.103 -35.802 -93.91
+177.569 -37.6775 -97.83
+174.538 -35.3441 -115.99
+175.363 -35.8547 -130.98
+175.815 -36.2251 -135.19
+174.834 -35.7458 -116.27
+175.598 -35.9581 -148.62
+176.023 -36.7323 -118.69
+174.696 -35.4637 -107.77
+176.093 -37.1345 -120.72
+175.273 -35.8667 -122.69
+175.736 -36.2077 -123.37
+175.026 -35.8371 -94.69
+174.755 -35.7138 -105.19
+175.509 -35.9678 -122.1
+175.384 -35.9168 -127.03
+174.582 -35.3917 -109.58
+174.887 -35.8247 -105.08
+174.727 -35.6499 -110.56
+177.272 -39.6683 -117.19
+175.868 -36.2776 -128.49
+177.308 -39.5652 -97.23
+178.61 -37.8161 -85.72
+175.663 -36.1582 -112.77
+175.647 -36.0824 -119.09
+177.428 -39.5226 -113.96
+177.997 -39.3344 -89.38
+174.767 -35.7664 -95.09
+175.878 -36.4582 -104.01
+175.195 -35.8887 -95.71
+177.761 -37.6331 -76.5
+176.859 -37.7287 -72.76
+175.146 -35.8564 -97.61
+177.606 -39.4474 -108.57
+174.956 -35.867 -120.15
+175.424 -35.9609 -116.88
+175.885 -36.5248 -90.13
+174.606 -35.455 -101.72
+174.794 -35.817 -99.48
+177.067 -39.876 -89.37
+177.703 -37.664 -62.26
+175.087 -35.876 -90
+177.73 -39.4777 -101.35
+177.961 -39.3894 -96.59
+176.084 -36.8263 -109.08
+174.642 -35.5256 -99.76
+175.779 -36.2766 -112.25
+175.849 -36.3946 -98.86
+176.086 -37.2239 -85.27
+174.517 -35.397 -89.06
+178.587 -37.6271 -51.27
+174.692 -35.5883 -99.71
+174.675 -35.6997 -86.18
+177.225 -39.7309 -118.78
+175.32 -35.9165 -122.54
+175.654 -36.2232 -96.12
+177.27 -39.6055 -94.83
+177.111 -39.7895 -69.1
+176.98 -37.7053 -110.14
+174.712 -35.7565 -96.68
+177.535 -39.4368 -103.19
+175.699 -36.2818 -97
+177.351 -39.5191 -92.41
+175.819 -36.3355 -103.27
+178.126 -37.5111 -98.5
+174.832 -35.8764 -103.22
+174.896 -35.887 -111.9
+175.245 -35.9317 -109.18
+178.465 -38.5182 -89.55
+175.576 -36.0293 -106.31
+175.75 -36.3334 -97
+175.019 -35.8987 -108.39
+175.579 -36.0911 -97
+175.503 -36.0317 -78.98
+174.945 -35.9377 -103.08
+175.607 -36.1301 -97
+175.979 -36.7527 -95.18
+177.015 -37.7486 -97
+177.647 -39.4117 -93.4
+177.582 -39.4002 -97.62
+176.212 -37.2967 -54.45
+178.232 -38.8649 -87.92
+177.246 -37.7132 -153.24
+174.549 -35.4313 -93.75
+177.391 -39.4725 -86.34
+174.738 -35.7966 -94.26
+177.776 -39.4303 -77.99
+175.297 -35.9623 -100.03
+177.48 -39.4231 -88.26
+177.516 -39.3893 -85.02
+175.139 -35.9034 -54.16
+175.599 -36.1804 -84.28
+177.624 -39.3707 -85.04
+178.539 -37.9674 -83.73
+178.432 -38.5684 -83.28
+177.999 -39.2729 -69.07
+176.736 -37.6731 -149.15
+178.42 -38.6328 -50.13
+175.032 -35.9544 -94.93
+178.509 -38.0165 -70.56
+178.55 -37.9058 -84.75
+176.115 -37.2604 -87.25
+177.64 -37.7022 -62.71
+176.245 -37.3322 -50.8
+174.986 -35.9922 -86.48
+178.351 -37.5225 -105.03
+177.205 -37.7592 -87.3
+174.86 -35.9291 -93.54
+178.523 -38.0672 -69.64
+177.28 -39.5149 -73.17
+177.576 -37.7347 -57.11
+174.574 -35.5053 -71.9
+177.711 -39.4222 -81.58
+177.425 -39.4277 -79.45
+174.396 -35.2722 -73.58
+174.465 -35.3611 -75.59
+174.649 -35.7537 -68.11
+177.314 -37.7266 -108.55
+176.062 -37.1744 -86.33
+174.614 -35.5901 -72.31
+177.564 -39.3435 -78.79
+175.035 -35.9992 -83.26
+175.692 -36.3459 -88.32
+178.479 -38.4433 -75.46
+177.32 -39.4699 -73.32
+174.882 -35.9718 -88.04
+177.358 -39.425 -72.3
+175.633 -36.2705 -78.06
+174.651 -35.6389 -83.03
+175.836 -36.4949 -75.83
+177.886 -39.3981 -71.35
+175.586 -36.2372 -67.97
+175.442 -36.0216 -54.46
+174.926 -35.9976 -84.86
+178.599 -37.7647 -55.04
+175.803 -36.4496 -18.15
+177.452 -39.3835 -71.6
+176.102 -37.2962 -70.17
+175.255 -35.9883 -91.15
+178.486 -37.9779 -61.21
+177.484 -39.3404 -68.74
+178.551 -37.8467 -63.4
+176.034 -37.13 -74.66
+175.014 -36.026 -77.41
+177.642 -39.3235 -65.85
+177.691 -39.3713 -68.74
+178.215 -38.8207 -64.22
+177.391 -39.3813 -67.59
+177.232 -39.5583 -71.1
+175.316 -36.0083 -87.51
+175.634 -36.3205 -71.58
+178.405 -38.5124 -52.23
+176.031 -37.206 -69.11
+178.476 -37.5537 -69.49
+177.516 -39.2934 -65.82
+174.913 -36.0352 -75.31
+175.465 -36.0636 -78.59
+176.938 -37.7475 -74.09
+177.75 -39.3922 -63.79
+176.476 -37.5316 -97.71
+177.245 -39.4637 -60.02
+177.812 -39.386 -53.71
+177.369 -37.748 -84.4
+175.077 -35.9877 -83.3
+177.325 -37.779 -78.28
+175.524 -36.0761 -81.83
+178.476 -38.0919 -55.76
+177.329 -39.3767 -64.33
+176.135 -37.3289 -67.06
+177.198 -39.6166 -70.76
+175.54 -36.137 -57.69
+174.615 -35.6729 -54.7
+177.293 -39.4199 -64.09
+175.063 -36.0358 -72.64
+174.966 -36.0382 -75.06
+178.449 -38.4772 -76.98
+176.974 -37.7846 -71.94
+174.791 -35.9211 -75.01
+177.954 -39.2977 -48.54
+175.267 -36.0364 -84.72
+178.469 -38.1567 -54.49
+177.223 -39.5099 -61.53
+177.986 -39.2073 -45.89
+174.869 -36.0137 -77.38
+177.584 -39.2869 -63.02
+176.798 -37.6933 -92.94
+174.682 -35.8078 -72.22
+178.457 -38.009 -50.96
+178.504 -38.3163 -70.24
+177.193 -37.8062 -68.96
+174.56 -35.5557 -52.74
+175.312 -36.0534 -75.62
+177.054 -39.8286 -44.86
+176.504 -37.5751 -83.84
+177.42 -39.3385 -63.79
+177.917 -39.3379 -51.42
+174.877 -36.0588 -64.02
+177.364 -39.3344 -63.43
+174.927 -36.0683 -67.37
+174.733 -35.8336 -84.83
+176.685 -37.7098 -113.24
+175.544 -36.1956 -60.18
+174.42 -35.3165 -69.65
+175.065 -36.0852 -67.54
+178.474 -37.9271 -52.68
+177.442 -37.7421 -76.53
+178.395 -38.4714 -54.08
+177.976 -39.1768 -28.48
+177.004 -39.8935 -45.13
+177.284 -37.8051 -66.63
+176.023 -37.0456 -56.08
+177.446 -39.2898 -60.53
+174.617 -35.7945 -49.89
+178.169 -38.8491 -51.14
+175.321 -36.0818 -66.35
+177.64 -39.2754 -50.25
+177.394 -39.3021 -61.14
+174.539 -35.4736 -65.85
+175.82 -36.5414 -63.01
+177.017 -37.8013 -72.57
+178.586 -37.7177 -25.89
+174.807 -36.0425 -62.07
+174.465 -35.4144 -46.28
+177.705 -39.327 -50.52
+178.355 -38.5455 -62.32
+177.27 -39.3697 -59.55
+177.485 -39.2561 -52.92
+177.306 -39.3262 -59.56
+174.936 -36.1007 -61.07
+177.328 -37.8225 -58.35
+176.971 -39.9871 -50.69
+175.793 -36.5004 -52.24
+175.197 -35.9694 -87.89
+174.899 -36.0909 -58.46
+176.051 -37.004 -47
+176.325 -37.4988 -69.69
+177.233 -39.4071 -56.58
+177.967 -39.2319 -38.71
+175.351 -36.0441 -69.11
+177.189 -39.4331 -51.4
+177.021 -39.8612 -34.21
+174.502 -35.4445 -59.89
+178.467 -38.0531 -57.37
+177.176 -39.4824 -47.54
+178.464 -38.3483 -58.14
+178.473 -38.399 -65.05
+176.043 -37.2465 -65.78
+178.499 -38.2684 -72.65
+175.304 -36.1086 -60.21
+177.952 -37.5284 -115.77
+177.248 -39.32 -54.56
+178.362 -38.5992 -70.71
+177.833 -37.619 -38.85
+174.814 -35.9768 -79.23
+177.693 -37.7022 -21.31
+174.763 -35.8732 -55.07
+178.451 -38.1245 -46.85
+177.215 -39.361 -52.08
+177.345 -39.2811 -54.89
+177.61 -39.2404 -48.73
+177.759 -39.3483 -47.34
+178.227 -38.7714 -51.86
+178.45 -37.9698 -51.65
+177.541 -39.2422 -48.46
+177.813 -39.3422 -44.29
+175.684 -36.3937 -65.38
+174.909 -36.1228 -54.88
+178.172 -38.7988 -50.75
+174.629 -35.8398 -50.48
+178.452 -37.5999 -30.26
+174.965 -36.134 -52.47
+174.514 -35.5198 -30.11
+178.358 -38.6997 -52.71
+177.162 -39.5654 -48.05
+176.38 -37.4894 -84.7
+175.954 -36.9267 -58.66
+178.451 -38.1952 -49.67
+174.592 -35.7513 -43.2
+177.689 -39.2873 -45.22
+177.388 -37.8001 -58.87
+177.398 -39.2671 -55.29
+177.516 -37.7685 -48.54
+177.099 -39.6723 -20.5
+177.436 -39.2336 -46.72
+175.292 -36.1393 -50.55
+178.548 -37.7957 -38.71
+177.188 -39.3937 -49.22
+178.494 -37.8688 -46.79
+176.989 -39.9367 -51.67
+175.821 -36.5844 -47.29
+174.844 -36.105 -51.38
+174.56 -35.5982 -42.91
+177.856 -39.3544 -46.71
+177.632 -37.7577 -32.33
+177.281 -39.2772 -50.66
+177.184 -39.5286 -53.59
+175.597 -36.3639 -64.41
+175.732 -36.427 -50.21
+174.879 -36.1451 -58.09
+177.371 -39.2315 -47.11
+175.98 -37.0605 -50.46
+178.421 -38.4308 -49.37
+174.92 -36.1623 -46.55
+177.948 -39.261 -33.96
+174.774 -36.0856 -54.36
+175.02 -36.3944 -48.15
+178.411 -38.0433 -37
+175.18 -36.4527 -45
+175.035 -36.2738 -45.17
+174.974 -36.2848 -50.5
+175.532 -36.36 -48.87
+175.118 -36.3792 -46.38
+175.565 -36.4027 -59.27
+175.124 -36.43 -38.77
+174.747 -35.9539 -53.9
+175.526 -36.4426 -51.05
+178.228 -38.6788 -52.68
+175.234 -36.4277 -45.14
+175.966 -37.0875 -45.18
+174.88 -36.1756 -54.21
+174.835 -36.1604 -55.29
+175.587 -36.4432 -50.09
+174.689 -35.8738 -47.57
+175.511 -36.3997 -50.14
+174.748 -36.0028 -62.72
+175.292 -36.4896 -47.27
+175.404 -36.4079 -52.32
+175.263 -36.3485 -42.97
+175.101 -36.3395 -47.12
+175.238 -36.4801 -45
+175.347 -36.3805 -46.66
+175.309 -36.3556 -43.99
+178.197 -38.7187 -47.33
+174.735 -36.0512 -55.21
+175.286 -36.3963 -43.5
+178.298 -38.7666 -44.07
+175.875 -36.6448 -7
+175.136 -36.3417 -47.53
+175.223 -36.3802 -45.05
+175.631 -36.4484 -48.98
+178.26 -38.7225 -40.77
+175 -36.3619 -49.9
+178.316 -38.7236 -29.09
+175.673 -36.4363 -48.46
+175.461 -36.3734 -44.79
+175.213 -36.0188 -86.26
+178.304 -38.5744 -53.52
+175.635 -36.5193 -47
+174.578 -35.6337 -47
+174.737 -35.9117 -54.19
+174.695 -35.9327 -47.1
+175.609 -36.4799 -47.97
+175.862 -36.5728 -63.87
+176.359 -37.5348 -62.3
+175.585 -36.557 -47
+175.639 -36.5625 -47
+174.704 -35.9749 -46.24
+176.159 -37.2862 -91.33
+176.576 -37.6374 -65
+175.467 -36.4223 -45.88
+175.295 -36.4524 -47.53
+174.983 -36.4244 -48.31
+175.56 -36.4795 -48.97
+175.659 -36.4755 -47.18
+178.356 -38.651 -41.21
+174.681 -36.0176 -47
+178.251 -38.6375 -50.65
+174.965 -36.4588 -47.51
+176.006 -37.0066 -47
+174.917 -36.2804 -49.08
+175.248 -36.3091 -47.9
+175.348 -36.2982 -40.45
+175.3 -36.3148 -43.94
+177.367 -37.8497 -44.28
+174.629 -35.8758 -46.57
+175.018 -36.3207 -47.37
+175.069 -36.3114 -39.97
+175.979 -37.1228 -47
+174.887 -36.3235 -45.72
+174.91 -36.2033 -49.09
+174.852 -36.2078 -51.46
+174.556 -35.6806 -25.94
+175.889 -36.7174 -44.43
+174.891 -36.2434 -49.62
+178.07 -38.9549 -39.59
+178.169 -38.7551 -46.22
+175.056 -36.3592 -46.16
+175.348 -36.3379 -40.78
+175.993 -37.2305 -51.18
+175.973 -37.0276 -47
+177.582 -39.201 -33.14
+174.982 -36.4884 -45.11
+177.287 -37.8399 -51.83
+175.27 -36.5164 -44.11
+175.123 -36.305 -45.76
+177.492 -39.2224 -36.92
+175.178 -36.4982 -44.55
+176.006 -37.2708 -47.9
+177.191 -39.3137 -48.19
+177.225 -39.2726 -42.14
+177.137 -39.3046 -38.64
+178.41 -37.99 -29.89
+175.702 -36.4647 -47
+177.747 -39.2978 -39.5
+177.793 -39.3165 -39.68
+177.154 -39.3564 -47.46
+174.72 -36.0933 -48.38
+175.517 -36.4876 -50.99
+175.291 -36.5459 -38.73
+175.478 -36.1034 -63.19
+174.643 -35.9138 -38.95
+178.421 -37.944 -24.11
+178.335 -38.4889 -35.27
+175.849 -36.609 -46.17
+178.434 -38.2461 -40.54
+174.769 -36.1356 -50.22
+176.692 -37.761 -51.06
+176.389 -37.5796 -41.11
+175.753 -36.5323 -47
+177.677 -39.239 -39.55
+178.422 -38.0896 -40.77
+177.725 -39.2608 -37.59
+178.414 -38.1603 -34.6
+175.699 -36.5034 -47
+175.674 -36.5936 -46.13
+178.122 -38.8207 -43.6
+178.45 -38.2991 -49.51
+177.311 -39.2331 -43.72
+177.147 -39.4064 -44.69
+175.218 -36.5666 -41.47
+174.609 -35.7124 -47
+175.261 -36.5673 -41.01
+177.046 -39.7815 -30.82
+176.976 -37.8635 2.16
+177.641 -39.1977 -35.08
+177.169 -39.2676 -33.08
+178.119 -38.8592 -37.84
+177.464 -37.805 -44.34
+177.401 -39.1888 -35.8
+178.573 -37.6743 -13.96
+175.892 -36.6059 -47
+178.052 -38.9207 -44.91
+175.748 -36.4802 -47
+177.145 -39.445 -41.5
+174.654 -35.9643 -43.41
+177.426 -37.8451 -38.18
+178.088 -38.8882 -41.55
+175.25 -36.6004 -40.45
+176.206 -37.2495 -169.63
+177.847 -39.3057 -15.1
+178.295 -38.6765 -57.62
+175.028 -36.1609 -54.18
+176.024 -37.3092 -43.07
+177.097 -39.3321 -36.76
+177.989 -38.9157 -45.43
+177.774 -39.2566 -35
+177.796 -39.2869 -36.89
+177.254 -39.23 -35.3
+174.595 -35.8926 -40.26
+177.131 -39.5217 -34.47
+175.161 -36.6226 -41.33
+174.688 -36.0618 -46.76
+177.137 -39.6011 -42.19
+175.205 -36.6073 -40.24
+178.169 -38.6759 -37.4
+178.073 -38.798 -36.35
+178.197 -38.6418 -29.8
+177.115 -39.2625 -25.57
+176.637 -37.7428 -45.8
+177.135 -39.6444 -42.51
+177.101 -39.3801 -39.44
+177.527 -39.1961 -28.68
+175.689 -36.5472 -47
+176.929 -37.8006 -48.24
+177.741 -39.223 -34.11
+178.387 -38.2046 -29.71
+174.347 -35.2818 -46.71
+174.402 -35.3546 -46.61
+174.79 -36.1902 -43.83
+177.704 -39.1902 -33.36
+174.803 -36.2336 -42.67
+177.612 -39.1639 -28.85
+174.574 -35.782 -22.84
+175.198 -36.6434 -39.62
+178.352 -37.5818 -33.01
+175.13 -36.6462 -39.57
+176.351 -37.6048 -37.97
+177.47 -39.1838 -28.19
+177.582 -37.7921 -29.84
+178.363 -38.4415 -38.08
+174.601 -35.9392 -38.05
+178.031 -38.8778 -45.84
+175.941 -37.2107 -32.61
+178.124 -38.7725 -37.85
+177.667 -39.1545 -29.7
+177.092 -39.2933 -30.86
+178.075 -38.8454 -43.81
+177.826 -39.257 -29.63
+176.58 -37.7308 -38.34
+175.1 -36.6644 -38.18
+175.439 -36.3336 -32.8
+177.101 -39.4266 -34.03
+175.13 -36.6769 -36.27
+178.224 -38.6114 -27.71
+178.518 -37.6041 -43.66
+175.943 -37.1622 -37.84
+175.163 -36.6612 -39.28
+177.078 -39.7377 -46
+177.975 -38.8669 -42.25
+178.389 -38.2845 -28.04
+177.923 -37.5673 -43.78
+177.398 -37.8849 -29.24
+177.808 -39.2143 -31.22
+178.004 -39 -36.44
+174.489 -35.4864 -24.51
+176.694 -37.8099 -30.27
+178.014 -38.8259 -37.81
+178.404 -38.124 -31.87
+175.074 -36.6862 -33.79
+175.73 -36.574 -47
+174.604 -36.0048 -28.9
+177.336 -39.185 -30.38
+177.94 -38.8962 -29.03
+175.16 -36.6981 -35.34
+177.197 -39.2269 -25.95
+177.529 -37.8204 -28.23
+175.103 -36.6894 -35.17
+175.608 -36.5978 -31.84
+177.112 -39.4732 -31.47
+176.521 -37.6666 -45.5
+177.429 -39.1463 -23.79
+177.487 -37.8513 -27.97
+177.628 -39.1246 -24.99
+177.766 -39.1798 -29.24
+177.095 -39.5646 -25.24
+178.075 -38.7491 -26.52
+174.727 -36.1799 -41.43
+175.85 -36.7347 -29.62
+175.731 -36.6105 -20.69
+175.09 -36.7176 -28.84
+177.727 -39.1446 -29.36
+177.561 -39.1658 -25.7
+175.951 -37.254 -31.3
+177.376 -39.1536 -27.37
+176.929 -37.8463 -13.47
+175.356 -36.7924 -29.87
+175.376 -36.831 -30.61
+177.949 -38.8254 -26.28
+175.326 -36.8184 -26.33
+175.405 -36.7098 -15.1
+175.108 -36.7465 -24.77
+175.298 -36.7484 -34.07
+175.33 -36.8559 -25.68
+175.375 -36.8708 -29.69
+175.37 -36.6894 -26.5
+178.267 -37.519 -80.3
+177.048 -39.3544 -28.41
+176.883 -37.8749 -17
+177.142 -39.226 -18.06
+175.351 -36.2595 -34.26
+177.982 -39.0438 -25.39
+175.39 -36.285 -37.81
+173.953 -35.0161 -24.51
+178.367 -38.2446 -21.82
+175.926 -37.106 -25.12
+174.919 -36.649 -29.86
+177.683 -39.1036 -25.49
+178.491 -37.8172 -15.8
+177.05 -39.4016 -27.62
+177.518 -39.1631 -23.9
+177.944 -39.0078 -28.86
+174.637 -36.0519 -41.17
+178.126 -38.7141 -29.84
+176.471 -37.6886 -22.7
+175.999 -37.3431 -27.44
+175.38 -36.6025 -15.86
+175.477 -36.1426 -5.31
+175.334 -36.9012 -24.74
+175.742 -36.6536 -16.36
+175.924 -37.0116 -9.83
+177.586 -39.1373 -24.01
+178.365 -38.357 -21.18
+174.553 -35.9568 -25.25
+177.629 -37.7953 -13.58
+177.053 -39.4519 -25.04
+175.664 -36.6998 -18.24
+177.49 -39.1371 -21.99
+174.917 -36.6873 -24.06
+177.371 -37.9179 -19.92
+177.949 -39.1992 -17
+177.281 -39.1955 -27.5
+176.32 -37.6674 -17.08
+176.994 -39.3739 -21.23
+178.536 -37.6492 -17.9
+177.748 -39.1009 -22.75
+177.065 -39.2632 -20.44
+176.235 -37.6326 -19.28
+176.994 -39.4234 -20.39
+178.007 -39.072 -24.34
+175.503 -36.2067 -29.23
+175.387 -36.9054 -24.71
+176.425 -37.6566 -12.05
+177.545 -39.1335 -21.77
+176.739 -37.8367 -21.38
+177.044 -39.3052 -22.68
+177.061 -39.5076 -22.31
+174.754 -36.2183 -35.8
+174.557 -35.9053 -29.04
+177.632 -39.0876 -18.03
+177.93 -39.0536 -16.83
+177.542 -37.8594 -15.1
+177.454 -39.0982 -17.71
+176.993 -39.4774 -18.08
+177.509 -37.8898 -14.17
+177.224 -39.1771 -15.99
+175.087 -36.7688 -18.13
+175.407 -36.6449 -14.74
+177.002 -39.3338 -19.71
+177.386 -39.1135 -17.17
+177.04 -39.5485 -18.17
+176.542 -37.7623 -17.51
+177.331 -39.1303 -15.44
+177.584 -39.0988 -17.86
+175.402 -36.7968 -17.33
+175.22 -36.7917 -17
+178.031 -38.7313 -19.73
+175.281 -36.9575 -8.61
+177.084 -39.2223 -12.33
+176.518 -37.72 -22.24
+175.935 -37.0537 -14.97
+177.525 -39.0969 -17.76
+177.907 -39.2825 -17
+178.442 -37.8764 -22.38
+177.997 -38.7047 -15.34
+176.655 -37.8224 -17.59
+178.366 -38.1396 -26.49
+177.011 -39.5207 -17.37
+176.414 -37.7018 -17.54
+177.342 -37.9523 -13.72
+174.538 -36.0064 -14.19
+176.935 -39.3923 -12.49
+176.933 -39.4449 -10.07
+175.377 -36.9774 -18.2
+177.045 -39.5951 -12.94
+177.161 -39.1849 -12.04
+175.24 -36.8574 -20.93
+175.408 -36.9405 -17.19
+178.37 -38.0251 -21.42
+177.396 -37.9462 -11.98
+174.507 -35.9154 -17.22
+174.799 -36.7046 -13.5
+175.349 -37.0198 -13.35
+177.024 -39.8097 -17.12
+176.968 -39.5174 -13.64
+176.784 -37.863 -10.99
+177.097 -39.6144 -15.66
+174.973 -36.7546 -15.3
+176.996 -39.5556 -12.41
+177.279 -39.151 -13.22
+177.117 -39.192 -6.36
+175.431 -36.9768 -10.76
+174.509 -35.9663 -15.74
+175.971 -37.3006 -30.05
+174.794 -36.7527 -8.31
+175.322 -36.9796 -17.65
+175.481 -37.0512 -3.2
+175.351 -37.1365 -1.49
+176.989 -39.5958 -7
+182.94 -35.3188 -5607.56
+183.067 -35.6868 -5698.48
+183.2 -36.1283 -5668.68
+183.323 -35.4352 -5665.89
+183.539 -35.7521 -5607.84
+183.87 -36.2162 -5605.99
+183.774 -35.3203 -5579.08
+184.612 -35.1879 -5612.39
+184.46 -36.5411 -5623.79
+184.718 -36.9094 -5612.45
+184.226 -36.9613 -5493.8
+184.118 -35.7328 -5647.72
+184.44 -36.0824 -5679.58
+183.34 -35.1182 -5513.33
+183.928 -36.6601 -5531.64
+184.298 -35.3593 -5171.26
+184.647 -37.2664 -5531.35
+183.455 -36.571 -5489.76
+184.777 -35.6537 -5593.9
+184.6 -37.718 -5322.12
+183.685 -36.9794 -5365.59
+183.142 -36.9093 -5235.88
+184.014 -37.4183 -5385.4
+183.355 -37.3447 -5116.26
+183.57 -37.7702 -5057.32
+184.597 -38.1455 -5059.41
+184.102 -37.9196 -4998.26
+183.706 -38.1714 -4811.06
+184.159 -38.3214 -4736.69
+184.482 -39.1691 -4775.78
+184.653 -39.5062 -4771.93
+183.811 -38.525 -4627.36
+183.016 -37.6886 -4339.75
+184.201 -38.6712 -4805.42
+184.169 -38.9903 -4802.7
+183.899 -38.802 -4586.52
+184.102 -39.3571 -4574.01
+182.734 -37.2452 -4440.37
+183.767 -39.0694 -4277.27
+183.547 -38.7679 -4279.48
+183.517 -39.4003 -4110.79
+183.229 -38.0789 -4289.94
+183.336 -39.0631 -4139.27
+182.697 -39.422 -3958.29
+182.744 -38.0293 -3697.57
+182.499 -37.6629 -3973.5
+183.396 -38.4405 -3929.48
+182.218 -37.342 -4142.76
+182.921 -39.0478 -3947.43
+181.828 -37.3894 -3691.51
+182.954 -38.3814 -4105.46
+182.018 -37.6791 -3771.35
+181.726 -39.0385 -3611.87
+181.019 -39.7236 -3429.13
+180.872 -37.7256 -3529.52
+181.863 -38.7036 -3516.66
+182.264 -38.0147 -3387.66
+181.598 -37.6637 -3490.89
+181.237 -37.5546 -3312.55
+181.425 -38.2166 -3590.07
+181.246 -37.9328 -3543.52
+181.34 -38.4657 -3539.43
+181.752 -38.0305 -3403.43
+181.679 -38.3983 -3102.25
+186.918 -36.1183 -5324
+187.1 -36.4815 -5181.96
+187.528 -36.1277 -5236.64
+186.547 -35.0157 -5593.3
+186.167 -35.2441 -5627.62
+187.041 -35.7288 -5234.02
+185.662 -35.2649 -5637.29
+186.563 -35.4563 -5580.19
+185.08 -35.1887 -5594.76
+186.078 -35.5831 -5610.34
+188.188 -35.163 -5169.29
+187.689 -35.5208 -5256.5
+187.26 -36.8229 -5368.24
+187.167 -37.1897 -5251.41
+187.086 -35.2344 -5614.5
+185.309 -35.5385 -5629.97
+188.273 -35.5287 -5067.58
+188.18 -35.9249 -4889.61
+186.495 -35.8704 -5434.87
+185.765 -37.1084 -5264.54
+186.148 -36.8437 -5495.23
+185.228 -37.1031 -5548.17
+185.57 -36.8235 -5699.19
+186.432 -36.3592 -5517.39
+186.155 -37.7238 -5169.19
+186.749 -37.5728 -5324.35
+188.669 -35.7349 -4921.67
+187.327 -37.6284 -5286.83
+189.132 -35.9534 -4902.99
+188.668 -35.3397 -4440.23
+186.623 -37.1467 -5390.07
+187.631 -36.6482 -5230.65
+189.065 -35.2264 -5354.82
+189.088 -35.5535 -5058.41
+185.677 -37.4458 -5355.48
+185.665 -35.6608 -5716.28
+188.703 -36.1545 -5039.46
+185.141 -37.5618 -5471.48
+187.583 -37.0043 -5269.5
+185.097 -36.6765 -5527.86
+186.607 -38.0616 -5085.05
+185.617 -37.863 -5223.24
+186.071 -38.1682 -5204.45
+188.219 -36.4825 -5202.99
+188.036 -36.9775 -5197.87
+187.171 -38.0103 -5160.32
+189.158 -36.3064 -4613.85
+185.563 -38.2823 -5280.19
+184.954 -36.2195 -5629.59
+187.793 -37.4171 -5270.85
+186.8 -36.8038 -5339.46
+185.097 -37.9963 -5254.99
+188.879 -36.585 -4517.08
+185.94 -35.9768 -5510.92
+187.762 -37.9689 -5255.61
+188.596 -36.9476 -4912.12
+186.508 -38.5162 -5305.86
+185.374 -35.914 -5682.46
+187.034 -38.4512 -5094.74
+186.922 -38.8966 -5100.47
+185.993 -38.6031 -5033.8
+187.546 -38.3969 -5190.07
+187.451 -38.8431 -5064.24
+188.403 -37.358 -5224.67
+189.49 -36.6789 -5188.41
+189.128 -36.9834 -4769.44
+188.277 -37.7931 -5087.85
+186.407 -38.9475 -5164.64
+185.503 -38.6909 -5152.08
+185.064 -38.402 -5190.9
+188.913 -37.3136 -5081.92
+189.592 -36.2211 -4980.83
+185.906 -39.0137 -5057.6
+187.963 -38.3815 -5025.97
+187.929 -38.7217 -4899.36
+189.387 -35.3709 -3828.55
+186.827 -39.3425 -4894.09
+185.012 -38.7785 -5046.33
+185.636 -36.4057 -5721.28
+188.808 -37.7159 -4942.68
+185.788 -39.4191 -4923.54
+188.268 -38.2075 -4824.33
+189.541 -37.0679 -5221.42
+186.301 -39.3754 -4882.21
+188.317 -38.5623 -4818.4
+185.4 -39.077 -5055.95
+185.243 -39.4522 -4979.93
+184.9 -39.1362 -4906.47
+189.359 -37.3186 -4963.19
+186.706 -39.7597 -4793.39
+189.214 -37.6114 -4826.9
+185.624 -39.7942 -4663.92
+188.713 -38.1131 -4492.88
+187.36 -39.3058 -4887.34
+187.233 -39.7368 -4777.91
+189.725 -37.3133 -5224.76
+188.38 -38.9655 -4652.69
+186.173 -39.7697 -4772.74
+187.769 -39.691 -4721.95
+188.606 -38.4108 -4664.36
+189.583 -35.7501 -4479.25
+189.744 -38.3554 -4746.35
+188.286 -39.6912 -4582.02
+189.727 -35.4006 -2870.45
+189.431 -38.4966 -4642.63
+188.698 -39.7076 -4490.23
+189.326 -38.058 -4853.6
+188.731 -38.7315 -4624.94
+185.063 -39.8338 -4772.49
+189.008 -38.4495 -4712.72
+189.631 -37.6361 -5163.49
+186.186 -37.3069 -4751.41
+192.835 -34.9871 -5241.58
+190.06 -36.0828 -4946.53
+192.689 -35.4077 -5187.14
+192.247 -35.002 -5129.45
+190.113 -35.2572 -4969.41
+191.187 -35.1092 -5015.54
+193.123 -35.7809 -5141.32
+191.705 -35.0864 -5027.77
+193.021 -36.1576 -4904.31
+193.263 -35.3356 -5216.26
+192.517 -35.8876 -4960.47
+190.664 -35.1654 -5162.64
+191.155 -35.5098 -5078.98
+192.664 -36.2616 -4798.61
+194.748 -39.4882 -5089.4
+193.999 -36.7534 -4675.21
+194.221 -37.538 -5103.99
+194.683 -37.5138 -5266.22
+194.269 -38.7369 -5342.56
+193.229 -38.6681 -5305.47
+194.682 -38.6576 -5043.87
+192.824 -38.7416 -4761.88
+191.366 -36.2227 -4898.24
+193.488 -36.137 -4385.71
+192.968 -38.3995 -5112.39
+194.827 -38.4043 -5095.81
+193.893 -38.3585 -5318.97
+194.397 -38.3425 -5097.08
+194.73 -39.0184 -4672.35
+193.41 -38.3703 -5271.1
+194.647 -37.9519 -5310.92
+193.558 -37.9849 -5181.7
+194.067 -37.9456 -5222.05
+193.079 -38.0374 -5032.21
+193.312 -36.4005 -4454.16
+194.731 -36.2156 -5161.9
+194.065 -36.2591 -4788.43
+194.98 -35.2135 -5239.94
+193.692 -37.5686 -5052.09
+194.435 -35.2345 -5277.95
+193.859 -35.2729 -5091.62
+193.655 -36.4619 -4321.28
+194.707 -39.8836 -5241.76
+190.86 -36.0848 -4822.18
+194.211 -39.1771 -5071.3
+194.582 -36.7241 -5041.77
+191.258 -36.9106 -4907.11
+194.401 -37.1521 -5161.39
+191.054 -36.4899 -5037.11
+190.721 -36.7377 -4946.88
+193.84 -37.1569 -4787.01
+192.969 -36.4842 -4722.5
+191.4 -37.3196 -4814.39
+191.141 -35.8627 -5067.13
+193.695 -35.7575 -4812.82
+193.701 -38.8057 -5011.46
+190.625 -35.6413 -4910.68
+190.54 -36.3278 -4558.55
+190.896 -38.2618 -4869.28
+190.885 -37.1327 -4776.13
+192.643 -38.4627 -4486.14
+191.74 -35.8736 -4909.94
+193.411 -36.7595 -3589.16
+192.082 -35.446 -4960.51
+191.824 -36.3376 -4731.09
+190.506 -38.414 -4849.82
+190.624 -38.0739 -4989.7
+192.575 -36.5128 -4620.38
+191.575 -35.4068 -5035.69
+194.186 -39.6392 -4814.82
+190.121 -36.5789 -4633.82
+190.079 -38.4487 -4768.12
+192.251 -36.2606 -4666.13
+190.085 -37.5098 -5205.7
+191.59 -36.6356 -4630.11
+190.986 -38.5743 -4777.75
+193.197 -37.6362 -4694.7
+190.567 -37.7317 -4585.76
+189.988 -37.063 -4712.56
+192.185 -36.6902 -4704.93
+192.81 -36.8644 -4724.51
+190.067 -38.0299 -5015.33
+190.633 -38.8202 -4695.56
+190.499 -37.3227 -4058.91
+192.395 -37.079 -4630.39
+191.151 -38.9868 -4781.62
+191.471 -37.7036 -4748.72
+191.866 -37.0931 -4722.69
+191.13 -39.4464 -4776.77
+191.866 -37.5319 -4658.42
+191.58 -39.2588 -4659.9
+192.322 -37.4249 -4547.9
+190.433 -35.9644 -3166.15
+193.051 -39.7284 -4764.13
+192.794 -37.3222 -4354.13
+191.279 -38.3151 -4084.96
+192.581 -38.1397 -4570.47
+191.633 -39.7375 -4788.1
+192.237 -37.8042 -4482.6
+191.852 -37.8479 -3658.94
+192.762 -39.8724 -4998.33
+191.065 -37.949 -4508.15
+190.983 -37.5279 -2840.33
+193.593 -39.8061 -3696.64
+192.302 -39.8212 -5078.07
+193.15 -39.4119 -4359.67
+191.585 -38.9238 -3876.13
+193.674 -39.3111 -4784.57
+193.29 -37.2123 -3214.77
+192.704 -37.7267 -4159.09
+191.43 -38.6481 -4448.01
+192.441 -38.6386 -3740.42
+191.58 -38.0584 -3146.41
+192.058 -39.4076 -4561.49
+192.632 -39.4972 -3409.3
+193.217 -39.0178 -3830.69
+192.763 -39.1146 -2274.28
+192.068 -38.1636 -2520.85
+192.193 -38.8192 -3674.54
+192.509 -38.8896 -3409.37
+191.719 -38.399 -2692.29
+190.087 -35.6776 -4304.46
+190.443 -36.967 -3942.42
+191.925 -39.0341 -3785.24
+191.826 -38.7238 -2772.17
+192.369 -38.3837 -2166.34
+192.105 -38.5187 -873.62
+192.338 -39.124 -2535.18
+199.807 -36.7365 -4997
+198.37 -36.5876 -4997
+198.013 -37.9154 -4997
+198.739 -36.9571 -4997
+197.472 -37.7762 -4997
+196.258 -39.3815 -4997
+195.553 -37.9503 -4997
+198.17 -37.048 -4997
+195.828 -38.2923 -4997
+195.798 -35.8707 -4997
+197.917 -36.6118 -4997
+195.284 -39.2854 -4363.71
+196.528 -38.0145 -4997
+195.895 -39.5623 -4997
+197.474 -36.392 -4997
+195.113 -37.7348 -5402.72
+195.843 -39.0651 -4997
+195.245 -38.2551 -5063.38
+197.099 -36.6703 -4997
+196.347 -38.3222 -4997
+199.424 -38.7569 -4997
+196.436 -39.0964 -4997
+199.808 -39.6946 -4997
+196.774 -38.297 -4997
+197.597 -36.8693 -4997
+197.014 -37.9614 -4997
+199.77 -39.2142 -4997
+198.853 -36.5738 -4997
+199.739 -37.3479 -4997
+196.488 -39.7387 -4997
+199.169 -37.6504 -4997
+197.11 -39.7154 -4997
+199.184 -38.4242 -4997
+196.496 -36.5593 -4997
+198.597 -39.0917 -4997
+199.399 -39.4794 -4997
+197.665 -39.8466 -4997
+199.12 -37.2496 -4997
+195.935 -35.2354 -4997
+196.142 -38.6989 -4997
+198.679 -37.3847 -4997
+199.331 -39.8446 -4997
+195.645 -38.6231 -4997
+195.183 -38.765 -4839.72
+196.298 -36.0371 -4997
+195.974 -36.2723 -4997
+199.673 -37.9447 -4997
+198.238 -37.5192 -4997
+196.891 -36.1371 -4997
+196.038 -37.8899 -4997
+198.856 -38.2657 -4997
+198.451 -38.2839 -4997
+199.183 -38.0855 -4997
+197.593 -38.1838 -4997
+198.028 -38.3366 -4997
+198.86 -38.6571 -4997
+199.592 -38.3835 -4927.71
+197.222 -38.4595 -4997
+197.755 -38.6177 -4997
+195.95 -37.4663 -4997
+196.451 -37.5743 -4997
+195.552 -37.5648 -4997
+197.037 -37.4018 -4997
+197.68 -37.3733 -4997
+195.032 -37.2114 -5363.15
+198.647 -37.8745 -4997
+195.332 -39.8681 -5153.44
+196.659 -39.4309 -4997
+197.65 -39.439 -4997
+198.322 -39.4838 -4997
+198.924 -39.5132 -4997
+197 -39.2224 -4997
+198.001 -39.0414 -4997
+198.07 -39.7827 -4997
+197.397 -38.9204 -4997
+198.29 -38.6756 -4997
+196.76 -38.7272 -4997
+199.168 -39.1135 -4997
+198.204 -35.5714 -4997
+197.7 -35.6805 -4997
+198.967 -35.6456 -4997
+197.34 -35.5253 -4997
+196.91 -35.587 -4997
+195.366 -35.6071 -5083.43
+200.029 -35.771 -4997
+195.731 -35.5045 -4997
+199.529 -35.8683 -4997
+196.529 -35.7532 -4997
+196.116 -35.6289 -4997
+197.954 -36.1458 -4997
+198.608 -36.1484 -4997
+195.395 -36.1667 -5276.74
+199.872 -36.238 -4997
+199.271 -36.2967 -4997
+197.384 -35.9177 -4997
+198.025 -35.0551 -4997
+197.608 -35.2343 -4997
+198.561 -35.0623 -4997
+197.099 -35.2072 -4997
+196.697 -35.1763 -4997
+195.477 -35.1976 -4997
+200.021 -35.2639 -4997
+199.118 -35.1282 -4997
+196.408 -35.3723 -4997
+199.533 -35.4161 -4997
+196.081 -37.1852 -4997
+195.623 -37.1457 -4997
+196.481 -37.0676 -4997
+195.209 -36.7014 -5051.42
+196.874 -36.9533 -4997
+199.26 -36.8665 -4997
+197.257 -37.0536 -4997
+195.884 -36.7278 -4997
+202.306 -39.5197 -4997
+204.706 -36.3452 -4997
+203.109 -39.499 -4997
+202.444 -36.476 -4997
+204.667 -38.6677 -4997
+203.644 -36.3343 -4997
+203.073 -36.4273 -4997
+204.197 -36.3757 -4997
+202.452 -38.9808 -4997
+202.941 -36.8158 -4997
+204.07 -38.4814 -4997
+204.037 -36.7312 -4997
+204.628 -36.8524 -4997
+203.53 -36.8691 -4997
+202.712 -39.6995 -4997
+203.187 -36.0463 -4997
+202.7 -36.0146 -4997
+203.909 -36.0477 -4997
+204.713 -35.962 -4997
+202.945 -39.0711 -4997
+202.132 -35.982 -4997
+204.299 -36.0011 -4997
+202.589 -39.3301 -4997
+203.522 -35.8617 -4997
+203.724 -37.335 -4997
+204.801 -37.4834 -4997
+202.317 -39.8103 -4997
+200.802 -37.3702 -4997
+200.251 -39.973 -4997
+200.387 -37.4969 -4997
+204.607 -39.878 -4997
+204.174 -37.6276 -4997
+204.094 -38.0288 -4997
+204.152 -37.1602 -4997
+203.139 -37.2799 -4997
+203.616 -37.7178 -4997
+204.646 -37.9321 -4997
+201.237 -37.6408 -4997
+200.837 -37.8523 -4881.37
+201.879 -39.5855 -4997
+201.203 -37.2788 -4997
+204.524 -38.2865 -4997
+202.639 -38.584 -4997
+204.937 -35.672 -4997
+203.428 -39.2681 -4997
+201.445 -35.2713 -4997
+204.384 -35.6095 -4997
+201.804 -35.5676 -4997
+202.355 -35.5511 -4997
+204.596 -35.1349 -4997
+203.85 -39.2176 -4997
+201.93 -35.0801 -4997
+201.075 -35.2258 -4997
+202.622 -35.0481 -4997
+203.503 -35.4929 -4997
+203.017 -35.5915 -4997
+203.913 -35.7031 -4997
+203.227 -35.1259 -4997
+203.863 -35.2056 -4997
+204.894 -39.4959 -4997
+201.676 -35.9224 -4997
+204.816 -39.1169 -4997
+203.18 -39.8635 -4997
+202.033 -39.1732 -4997
+201.403 -38.0467 -4997
+203.548 -38.1982 -4997
+201.34 -39.1839 -4685.68
+200.759 -39.8659 -4997
+203.784 -39.6949 -4997
+201.986 -38.2066 -4997
+203.041 -38.2835 -4997
+201.322 -39.7346 -4997
+204.359 -39.3919 -4997
+200.289 -39.1461 -4943.19
+202.538 -38.0502 -4997
+203.005 -37.7952 -4997
+201.657 -37.8291 -4997
+202.049 -37.7487 -4997
+202.471 -37.6467 -4997
+202.048 -38.7176 -4997
+203.463 -38.7785 -4997
+199.969 -38.7762 -4997
+200.286 -39.5454 -4997
+200.768 -39.3826 -4399.87
+204.206 -38.9482 -4997
+200.615 -38.8197 -4122.84
+201.555 -38.4578 -4997
+200.309 -36.1755 -4997
+201.775 -36.331 -4997
+201.277 -36.3483 -4997
+200.782 -36.3864 -4997
+201.392 -36.0535 -4997
+200.996 -36.0143 -4997
+202.541 -37.0008 -4997
+200.325 -36.586 -4997
+201.98 -36.7893 -4997
+201.186 -36.6582 -4997
+201.541 -36.6267 -4997
+200.872 -36.9079 -4997
+200.769 -35.3793 -4997
+200.427 -35.5372 -4997
+201.237 -35.6374 -4997
+200.42 -35.1984 -4997
+200.548 -35.9252 -4997
+200.789 -35.6956 -4997
+201.614 -37.4683 -4997
+202.651 -37.4017 -4997
+202.113 -37.2946 -4997
+201.489 -37.0069 -4997
+200.328 -37.0655 -4997
+200.24 -37.8787 -4590.23
+201.118 -38.2551 -4715.79
+201.622 -38.8427 -4708.9
+201.153 -38.6463 -4482.81
+200.123 -38.3371 -4232.36
+200.679 -38.2932 -4189.13
+209.41 -37.4115 -5226.93
+209.546 -37.8223 -5368.79
+209.45 -37.0153 -5130.07
+209.075 -37.6289 -5132.86
+209.169 -38.0228 -5292.76
+209.36 -36.5933 -4997
+208.742 -37.905 -5056.96
+209.523 -38.3431 -5233.12
+209.002 -37.2012 -4997
+209.451 -36.1953 -4997
+208.961 -38.4148 -5196.12
+208.485 -38.6036 -5119.32
+209.388 -35.6404 -4997
+208.423 -38.1826 -4997
+209.317 -35.1358 -4997
+209.444 -38.9042 -5085.18
+208.981 -36.776 -4997
+208.524 -37.4063 -4997
+208.887 -38.9221 -5062.25
+208.111 -38.7222 -4999.21
+208.041 -38.3714 -4997
+208.445 -38.9869 -5030.96
+208.003 -39.042 -4997
+208.555 -36.9348 -4997
+207.516 -39.0993 -4997
+208.902 -36.2986 -4997
+208.232 -37.7717 -4997
+207.056 -38.8238 -4997
+205.24 -36.1823 -4997
+205.312 -38.8626 -4997
+207.553 -38.595 -4997
+209.039 -35.9113 -4997
+208.017 -38.0221 -4997
+207.607 -38.0832 -4997
+207.072 -38.1322 -4997
+208.077 -37.0296 -4997
+206.968 -38.4659 -4997
+205.215 -36.6938 -4997
+208.567 -36.5578 -4997
+206.553 -38.5679 -4997
+207.743 -37.7151 -4997
+207.944 -37.3989 -4997
+205.796 -35.508 -4997
+205.278 -35.3472 -4997
+207.419 -39.4974 -4997
+207.114 -39.1728 -4997
+206.945 -39.4078 -4997
+205.65 -35.0936 -4997
+207.868 -39.9646 -4997
+207.505 -37.4091 -4997
+205.739 -40.0596 -4997
+205.509 -35.8026 -4997
+205.947 -39.1432 -4997
+206.584 -39.0246 -4997
+206.159 -38.284 -4997
+207.172 -37.6638 -4997
+206.572 -38.1976 -4997
+205.151 -37.904 -4997
+207.084 -39.8603 -4997
+205.659 -38.1152 -4997
+206.323 -39.935 -4997
+205.124 -38.3398 -4997
+206.578 -37.7749 -4997
+206.067 -37.9154 -4997
+205.503 -37.6666 -4997
+208.839 -39.6218 -4997
+208.398 -39.7791 -4997
+205.744 -39.7344 -4997
+205.268 -39.7932 -4997
+205.984 -39.534 -4997
+208.406 -39.3651 -4997
+206.484 -39.4785 -4997
+207.935 -39.4579 -4997
+205.422 -39.379 -4997
+205.913 -38.6108 -4997
+208.154 -35.6879 -4997
+207.733 -35.7728 -4997
+208.596 -35.8481 -4997
+207.276 -35.8384 -4997
+205.953 -35.8535 -4997
+208.85 -35.5624 -4997
+206.849 -35.5732 -4997
+206.325 -35.6651 -4997
+209.034 -35.3242 -4997
+207.594 -36.2869 -4997
+208.252 -36.1546 -4997
+206.845 -36.1069 -4997
+205.855 -36.1888 -4997
+206.277 -36.079 -4997
+206.061 -35.2858 -4997
+206.458 -35.2197 -4997
+208.931 -35.0565 -4997
+207.807 -35.2787 -4997
+207.304 -35.4338 -4997
+208.382 -35.4307 -4997
+206.887 -35.1751 -4997
+208.669 -35.2088 -4997
+205.305 -37.1805 -4997
+205.686 -36.9725 -4997
+207.579 -37.0838 -4997
+207.109 -37.1972 -4997
+206.683 -36.9451 -4997
+206.183 -36.9626 -4997
+207.704 -36.7459 -4997
+207.131 -36.7042 -4997
+205.756 -36.6004 -4997
+206.608 -37.3299 -4997
+205.979 -37.4105 -4997
+206.388 -36.5171 -4997
+208.125 -36.6183 -4997
+190.256 -38.6889 -4629.54
+189.827 -38.7159 -4636.04
+188.87 -39.1352 -4609.87
+189.279 -38.8618 -4605.27
+188.983 -39.531 -4604.83
+190.229 -39.005 -4570.1
+191.092 -39.8223 -4727.32
+190.67 -39.2196 -4578.69
+189.779 -39.144 -4644.29
+190.664 -39.6247 -4620.5
+190.221 -39.389 -4632.78
+189.349 -39.3244 -4472.07
+189.792 -39.5389 -4600.45
+190.203 -39.7761 -4607.75
+189.419 -39.7105 -4644.2
+189.805 -39.8507 -4606.58
+180.243 -37.1097 -4590.56
+179.866 -37.687 -3855.76
+179.972 -37.2481 -3720.78
+179.941 -36.9661 -3361.07
+180.071 -37.967 -3588.31
+179.704 -37.4316 -2848.4
+178.545 -35.5039 -2722.44
+178.239 -35.4273 -2741.45
+178.568 -35.247 -2672.58
+179.57 -36.9251 -2256.92
+179.36 -36.2286 -2649.31
+179.348 -35.1043 -1944.67
+178.92 -38.0248 -648.81
+179.271 -35.9068 -2564.25
+178.83 -35.4121 -2227.98
+179.103 -35.6053 -2567.04
+178.593 -36.0057 -2468.17
+179.034 -36.441 -2495.04
+179.117 -35.3243 -2134.39
+178.96 -36.1368 -2504.53
+178.643 -36.3746 -2483.17
+178.799 -36.6697 -2394.33
+178.916 -36.9049 -2229.83
+178.932 -35.1007 -2082.5
+178.708 -37.1116 -1805.01
+179.032 -37.1455 -1706.33
+179.666 -37.162 -2105.7
+179.388 -37.4859 -1296.89
+179.221 -37.3218 -1392.95
+178.973 -37.3572 -707.98
+179.11 -37.5158 -829.46
+179.09 -37.6811 -975.65
+178.837 -37.9407 -617.44
+178.797 -38.039 -329.18
+178.959 -37.7577 -741.29
+178.754 -37.8778 -302.86
+178.724 -37.9672 -164.11
+178.596 -38.5547 -150.53
+178.747 -37.7857 -153.7
+178.702 -38.0505 -214.14
+178.667 -38.3691 -161.96
+178.679 -37.9019 -138.18
+178.747 -38.1189 -241.31
+178.954 -37.6188 -119.17
+178.68 -37.6059 -154.2
+178.654 -38.0099 -131.27
+178.863 -37.6814 -213.36
+178.686 -38.1799 -148.65
+178.809 -37.5957 -96.44
+178.584 -38.0909 -94.03
+178.581 -38.0227 -97
+178.53 -38.484 -104.69
+178.753 -37.6889 -126.56
+178.59 -38.1629 -126.85
+178.621 -37.9501 -108.98
+178.648 -38.3061 -129.16
+178.595 -38.4165 -103.26
+178.688 -37.7337 -91.88
+178.627 -38.2385 -125.28
+178.603 -38.3506 -102.97
+178.615 -37.8764 -111.65
+178.643 -37.6834 -62.98
+178.51 -38.1818 -75.32
+178.522 -38.4218 -83.44
+178.569 -38.2966 -96.35
+178.514 -38.1239 -75.28
+178.533 -38.3649 -80.55
+178.636 -37.735 -69.3
+163.886 -39.8251 -3520.55
+164.007 -38.7019 -3171.71
+163.977 -38.9709 -3678.99
+164.058 -39.2774 -3392.08
+163.927 -38.4193 -3166.65
+163.659 -37.813 -2351.28
+164.172 -39.5592 -2955
+163.945 -38.0648 -2298.69
+163.763 -39.5151 -2597.09
+163.654 -36.5951 -2758.89
+163.677 -36.8731 -2474.53
+163.655 -37.5327 -1693.05
+163.732 -37.1261 -1907.04
+163.98 -36.4683 -1868.72
+163.973 -36.7449 -1685.64
+163.993 -36.9932 -1701.05
+164.038 -37.8039 -1610.35
+164.044 -36.2087 -1688.95
+164.019 -37.1978 -1470.35
+163.854 -35.9997 -1619.93
+163.85 -37.3579 -1404.67
+163.963 -37.5927 -1328.79
+164.17 -35.9984 -1411.51
+163.739 -35.7606 -1548.1
+164.055 -35.8022 -1610.99
+163.966 -35.5915 -1681.52
+163.931 -35.4217 -1560.3
+164.155 -35.4513 -1367.96
+163.826 -35.2707 -1545.47
+164.061 -35.3079 -1421.81
+163.778 -35.0571 -1358.79
+164.093 -35.1157 -1087.96
+157.108 -36.5192 -4609.3
+157.104 -36.1528 -4526.71
+157.091 -36.9691 -4722.94
+158.69 -39.8009 -4922.47
+159.264 -36.5756 -4897.27
+158.913 -36.8852 -4917.17
+158.432 -37.5585 -4926.7
+158.98 -37.8497 -5046.99
+158.86 -38.1361 -4866.27
+158.512 -37.9254 -4854.33
+159.205 -36.1622 -5043.98
+159.364 -36.9039 -4978.07
+158.859 -37.5608 -4923.33
+159.168 -39.6797 -4941.77
+159.047 -38.4405 -4861.92
+158.745 -39.5115 -4874.32
+158.371 -39.631 -4965.41
+159.277 -38.0456 -5047.75
+158.457 -36.9312 -4777.56
+160.778 -37.959 -4923.61
+157.688 -38.4263 -4860.15
+158.023 -36.8001 -4672.76
+160.849 -37.4469 -4788.25
+159.82 -39.7495 -4927.33
+159.389 -37.5928 -4930.41
+159.646 -37.1552 -4941.53
+159.136 -37.2198 -4958.05
+159.018 -39.2313 -5005.27
+158.647 -37.2346 -4992.62
+158.755 -35.7166 -4740.99
+158.736 -38.8497 -4903.71
+159.91 -38.7514 -4975.9
+158.612 -36.4461 -4846.96
+158.105 -37.2932 -4798.31
+158.499 -39.2564 -4917.69
+157.23 -38.4999 -4883.02
+159.687 -35.9113 -5021.03
+160.024 -36.0638 -4966.48
+159.213 -35.7095 -4810.37
+159.34 -38.8155 -4754.65
+160.122 -39.4399 -4903.34
+157.979 -38.5538 -4911.27
+160.191 -39.11 -4836.19
+160.152 -35.7672 -4269.39
+160.332 -37.7301 -4850.33
+158.915 -35.4605 -4857.2
+160.218 -38.2659 -4719.16
+159.954 -37.4606 -4792.78
+160.795 -38.4255 -4878.23
+159.829 -36.7114 -5022.39
+160.165 -37.0583 -5014.41
+158.815 -35.9964 -4813.41
+157.143 -38.9967 -4697.63
+158.038 -37.7786 -4739.61
+157.547 -38.0706 -4710.81
+158.135 -38.9208 -4855.78
+160.677 -37.0415 -4944.66
+159.792 -37.9099 -4966.81
+157.64 -38.7694 -4795.71
+160.434 -38.7567 -4849.9
+159.833 -35.4721 -4428.85
+158.803 -35.1448 -4930
+160.401 -37.3385 -4779.3
+159.662 -39.2474 -4844.91
+157.086 -38.1531 -4728.55
+157.617 -39.1854 -4680.92
+158.02 -39.397 -4788.83
+159.337 -35.2212 -4787.38
+158.29 -35.9225 -4675.27
+160.455 -36.6764 -4895.01
+157.994 -39.7623 -4813.14
+159.6 -38.3594 -4694.01
+158.036 -38.2025 -4816.37
+158.453 -38.4338 -4680.64
+157.581 -37.1298 -4616.79
+157.174 -39.4606 -4681.98
+157.433 -36.3303 -4666.92
+157.156 -37.4266 -4685.1
+157.602 -37.598 -4723.12
+157.08 -35.8403 -4643.04
+158.491 -35.4749 -4806.11
+157.523 -36.6852 -4628.75
+160.2 -36.3368 -4801.31
+158.267 -35.0715 -4695.75
+157.143 -34.9491 -4596.19
+157.573 -35.9413 -4665
+157.929 -35.5042 -4721.42
+157.15 -37.8244 -4549.86
+157.688 -35.086 -4522.9
+157.27 -35.479 -4699.24
+157.909 -36.3543 -4676.73
+159.844 -35.0999 -4236.57
+160.414 -36.0123 -3436.9
+160.365 -35.4656 -3549.52
+160.778 -36.2641 -3204.43
+160.614 -35.7016 -2563.95
+159.697 -36.2927 -4437.14
+160.289 -35.1304 -3040.91
+160.787 -35.9526 -2852.73
+161.27 -37.718 -5001.83
+161.219 -38.162 -4861.9
+161.388 -37.303 -4936.69
+161.662 -37.94 -4846.77
+161.193 -38.522 -4775.35
+161.102 -37.0763 -4838.5
+161.631 -38.4019 -4820.23
+162.076 -38.0933 -4776.6
+161.507 -36.921 -4348.42
+162.148 -38.547 -4849.07
+162.283 -39.2621 -4737.67
+162.594 -38.4593 -4833.64
+162.718 -39.2705 -4511.51
+162.342 -39.6716 -4665.12
+162.444 -38.2007 -4728.51
+162.519 -38.8734 -4809.77
+161.99 -39.0228 -4789.65
+162.98 -38.9424 -4430.75
+161.731 -37.5446 -4614.38
+162.034 -37.749 -4482.4
+162.987 -39.6424 -3795.15
+161.077 -36.681 -4601.2
+162.988 -38.57 -3929.82
+161.846 -37.1662 -3946.27
+162.883 -38.1247 -4651.54
+162.515 -37.779 -4247.01
+163.453 -39.7732 -3109.34
+163.208 -39.2186 -2748
+162.966 -37.7866 -4185.3
+163.245 -37.9068 -4015.87
+162.178 -37.434 -3730.53
+163.514 -38.7805 -3788.47
+163.437 -38.2399 -3369.16
+162.894 -37.5533 -4008.09
+161.64 -36.5562 -3440.69
+161.377 -36.2316 -3249.92
+161.961 -36.7895 -3158.35
+163.285 -37.5946 -3612.01
+163.652 -39.2041 -3048.2
+162.307 -37.0363 -3050.12
+162.632 -37.3289 -3357.51
+161.416 -35.8792 -2929.93
+161.872 -36.241 -3049.22
+162.035 -36.496 -3015.69
+161.444 -35.5425 -2932.7
+163.409 -39.465 -2496.04
+161.731 -35.9953 -2901.25
+161.814 -35.7211 -2910.67
+161.081 -36.0116 -2756.15
+162.146 -35.9313 -2969.81
+161.484 -35.2512 -2737.51
+162.288 -36.2649 -3009.02
+161.048 -35.7305 -2940.06
+162.633 -36.3387 -2701.42
+162.648 -36.0089 -2972.8
+162.495 -35.6798 -2715.34
+162.972 -36.2443 -2937.61
+163.309 -36.1762 -2697.8
+161.934 -35.3441 -2579.01
+162.414 -36.6285 -2821.5
+162.163 -35.6183 -2816.2
+163.073 -37.2775 -2745.26
+162.865 -36.5571 -2652.87
+160.927 -35.297 -3121.62
+163.122 -35.9216 -2249.13
+163.279 -36.4733 -2835.34
+163.404 -36.7376 -2597.75
+161.375 -35.0136 -2754.3
+163.129 -36.7403 -2698.95
+163.324 -37.0032 -2590.67
+162.813 -36.9335 -2948.49
+161.73 -35.0519 -2697.92
+162.878 -35.6961 -2372.44
+162.064 -35.0087 -2028.84
+162.403 -35.4088 -2353.44
+163.486 -37.3154 -2132.68
+163.658 -36.2696 -2316.63
+163.512 -35.9725 -1775.48
+162.758 -35.4539 -1962.31
+163.171 -35.6606 -1700.48
+162.358 -35.1328 -1759.85
+163.425 -35.7197 -1649.22
+162.689 -35.2028 -1622.3
+163.092 -35.4621 -1603.48
+163.354 -35.5119 -1547.9
+163.011 -35.2479 -1557.73
+163.426 -35.2226 -1422.92
+162.931 -35.0349 -1422.24
+163.666 -35.4992 -1557.54
+163.175 -35.0686 -1392.06
+160.529 -39.7486 -4911.98
+160.446 -39.3377 -4721.14
+160.564 -39.0803 -4858.92
+160.828 -39.2969 -4844.55
+161.377 -38.7543 -4766.4
+160.941 -38.8662 -4901.47
+161.08 -39.5697 -4642
+161.713 -38.7897 -4777.78
+161.406 -39.1791 -4716.78
+161.872 -39.4354 -4767.68
+161.761 -39.8535 -4820.04
+161.46 -39.6104 -4684.55
+176.925 -30.2025 -4259.63
+176.456 -30.2366 -4397.13
+177.233 -30.5506 -4230.54
+177.416 -30.143 -3998.72
+177.106 -30.9646 -4217.07
+176.769 -30.5985 -4320.17
+175.996 -30.2864 -4190.06
+176.293 -30.6494 -4231.35
+175.82 -30.6865 -4159.23
+175.627 -30.3454 -4160.56
+175.277 -30.2449 -4183.57
+176.596 -31.0739 -4190.04
+177.563 -30.8883 -4117.34
+177.462 -31.2826 -4040.63
+176.116 -31.0255 -4126.76
+177.012 -31.3782 -4061.46
+175.758 -31.045 -4092.35
+177.686 -30.5213 -4034.7
+175.515 -30.8942 -4121.05
+176.275 -31.3258 -3988.82
+175.398 -30.5995 -4181.73
+175.891 -31.361 -4040.56
+175.45 -31.2439 -4089.23
+176.587 -31.5739 -3987.71
+176.183 -31.5946 -3992.08
+177.335 -31.6537 -3968.87
+175.587 -31.5528 -3773.03
+175.869 -31.7297 -3960.56
+175.007 -30.5314 -3999.91
+176.97 -31.7168 -3926.77
+175.125 -30.9294 -4031.09
+174.871 -30.1946 -3989.45
+176.297 -31.9472 -3882.21
+176.745 -31.9246 -3888.97
+175.799 -32.0764 -3851.71
+174.731 -30.7841 -3902.83
+177.565 -31.8981 -3819.16
+175.711 -32.4281 -3895.98
+177.158 -32.0262 -3876.68
+176.164 -32.3486 -3698.23
+174.684 -30.4672 -3957.67
+175.332 -32.1892 -3875.58
+175.284 -31.5628 -3410.16
+174.485 -30.1979 -3843.59
+176.712 -32.2967 -3803.54
+175.709 -32.7286 -3713.65
+175.457 -31.8322 -3861
+174.791 -31.0989 -3790.14
+175.232 -32.6481 -3699.92
+176.009 -32.6356 -3759.4
+175.547 -32.9946 -3663.55
+176.441 -32.7169 -3669.99
+174.939 -32.2912 -3746.76
+176.011 -32.9622 -3718.35
+177.227 -32.4195 -3770.74
+174.453 -31.0297 -3691.65
+174.347 -30.6081 -3768.27
+175.4 -33.2983 -3283.12
+175.132 -33.0669 -3619.18
+176.954 -32.6973 -3545.5
+174.85 -32.9001 -3630.2
+174.871 -31.8367 -3860.04
+174.618 -31.3848 -3407.2
+174.39 -31.6405 -3836.71
+174.587 -32.2269 -3742.2
+174.649 -32.5931 -3621.45
+175.776 -33.2835 -3637.13
+176.395 -33.0739 -3579.82
+174.171 -31.3258 -3675.09
+177.572 -32.2034 -3723.1
+175.047 -33.3932 -3142.11
+175.03 -31.3444 -3401.13
+174.717 -33.2194 -3596.89
+174.063 -30.9225 -3304.46
+174.297 -32.3904 -3684.51
+174.08 -31.6512 -3611.13
+177.326 -32.7236 -3538.08
+174.469 -32.9619 -3455.75
+177.612 -32.5581 -3490.05
+176.765 -33.0344 -3359.5
+174.175 -32.7143 -3500.22
+174.053 -30.2312 -3497.22
+177.19 -33.0036 -3617.27
+173.889 -32.3955 -3419.06
+176.181 -33.3134 -3034.08
+177.431 -33.2483 -3116.92
+177.622 -32.9448 -3149.82
+173.97 -30.5901 -3164.95
+175.587 -33.5075 -3054.29
+173.779 -32.0708 -3301.78
+175.035 -33.6416 -2682.94
+174.061 -33.0869 -3177.64
+176.575 -33.3423 -3134.71
+177.444 -33.6054 -3234.08
+173.692 -32.8071 -2301.89
+173.782 -31.1513 -3322.16
+173.821 -31.4755 -3194.66
+175.301 -33.5743 -2701.32
+173.562 -32.5018 -2583.03
+177.025 -33.3767 -3097.43
+175.927 -33.6252 -2697.99
+177.61 -33.9235 -3114.47
+173.538 -32.2332 -2996.42
+173.729 -30.1317 -3245.91
+177.297 -33.9106 -3079.12
+177.031 -33.7602 -2922.26
+173.568 -31.3223 -3186.05
+173.724 -30.4124 -2897.24
+173.454 -31.9095 -2463.94
+175.534 -33.7893 -2450.82
+177.006 -34.1112 -2992.83
+177.41 -34.1592 -3043.37
+173.515 -31.5813 -2967.51
+176.747 -33.917 -2795.42
+176.698 -33.646 -2833.55
+177.76 -34.1893 -2642.35
+176.852 -34.392 -2661.43
+173.289 -31.3404 -2524.04
+176.501 -33.8572 -2628.19
+176.519 -34.1853 -2685.62
+173.677 -30.7733 -2627.32
+177.22 -34.4328 -2716.91
+173.447 -30.5185 -2627.38
+177.834 -34.9113 -2852.84
+173.478 -30.2296 -2734.86
+175.827 -33.9702 -2695.09
+176.347 -33.6207 -2689.83
+177.569 -34.388 -2895.32
+176.064 -34.1997 -2337.84
+176.932 -34.6472 -2483.44
+174.728 -33.5808 -2494.81
+176.194 -33.9168 -2604.86
+175.206 -33.8162 -2581.43
+173.416 -31.0362 -2334.96
+174.174 -33.4014 -2465.99
+173.277 -32.1311 -2391.49
+175.563 -34.047 -1991.71
+176.576 -34.5598 -2536.7
+177.225 -34.7131 -2532.73
+177.038 -34.9112 -2264.05
+174.917 -33.8557 -2352.63
+173.263 -32.3905 -2255.77
+175.361 -33.9922 -2191.71
+173.091 -31.0946 -2069.75
+173.388 -32.6487 -2392.97
+174.343 -33.6747 -2012.36
+177.533 -34.6459 -2097.87
+176.225 -34.4669 -2158.23
+175.12 -34.0603 -1927.03
+173.23 -30.3286 -1896.54
+173.042 -32.1807 -2234.7
+172.951 -32.3932 -2105.19
+176.685 -34.8531 -1999.82
+173.1 -31.9454 -2036.41
+175.926 -34.4084 -1956.4
+173.687 -33.5381 -2030.58
+177.402 -34.9283 -1760.51
+173.711 -33.1445 -2150.82
+175.737 -34.2327 -1919.25
+173.331 -32.8526 -1977.43
+176.242 -34.8141 -1997
+174.212 -32.004 -3056.65
+173.193 -30.5807 -1705.13
+175.977 -34.6067 -1997
+173.068 -32.6711 -2014.42
+173.851 -33.3636 -2180.93
+173.15 -31.6333 -1806.02
+173.065 -33.0203 -1784.55
+173.887 -33.8892 -1950.12
+173.426 -33.581 -2226.2
+174.501 -34.1486 -1983.27
+173.953 -33.6466 -1861.38
+173.549 -33.3461 -1933.72
+174.118 -33.8423 -1972.9
+174.812 -34.1424 -1674.42
+175.826 -34.8023 -1981.82
+173.196 -33.3467 -2149.61
+175.654 -34.5224 -1798.97
+175.29 -34.5299 -1741.6
+172.995 -31.3497 -1576.76
+173.124 -33.644 -2047.22
+174.641 -34.3487 -1827.53
+175.399 -34.2454 -1805.1
+173.368 -34.3273 -981.89
+173.425 -33.0943 -1716.24
+173.855 -34.0912 -1682.25
+173.155 -30.8292 -1923.94
+174.767 -34.5532 -1452.72
+175.462 -34.8012 -1594.37
+173.256 -30.0439 -2184.49
+175.006 -34.5339 -1715.13
+174.519 -34.5315 -1569.97
+173.817 -34.2634 -1646.23
+174.013 -34.2222 -1521.09
+173.01 -30.1675 -1708.94
+175.228 -34.9482 -747
+172.993 -30.4143 -1291.64
+173.324 -34.4279 -454.42
+173.81 -31.782 -2595.06
+174.049 -34.6256 -823.96
+173.378 -30.7461 -1386.34
+173.11 -34.4049 -111.68
+173.236 -34.4758 -188.17
+173.359 -34.6709 -114.9
+172.989 -34.3464 -103.37
+173.86 -34.852 -123.58
+173.189 -34.5628 -131.85
+173.733 -34.8079 -137.6
+173.807 -34.8426 -113.22
+173.414 -34.7511 -109.75
+173.683 -34.844 -114.83
+173.239 -34.6275 -114.27
+173.295 -34.672 -107.07
+173.766 -34.8359 -107.27
+173.086 -34.4703 -84.12
+173.101 -34.5469 -78.34
+173.137 -34.5936 -85.16
+173.055 -34.3631 -110.69
+173.173 -34.6174 -101.38
+173.329 -34.6983 -80.14
+173.365 -34.7297 -70.98
+173.818 -34.8838 -88.36
+173.733 -34.8502 -96.78
+173.503 -34.8404 -67.77
+173.238 -34.687 -79.06
+173.772 -34.8691 -85.32
+173.824 -34.9246 -59.81
+173.517 -34.8838 -54.74
+173.439 -34.7829 -73.28
+173.18 -34.6649 -78.9
+173.124 -34.6393 -67.84
+173.052 -34.511 -53.19
+173.097 -34.6 -57.22
+173.709 -34.8962 -77.01
+173.772 -34.9173 -51.7
+173.643 -34.9214 -50.96
+173.234 -34.7274 -47
+173.856 -34.9772 -27.13
+173.293 -34.7202 -51.73
+173.186 -34.7122 -49.52
+173.467 -34.8757 -29.76
+173.194 -34.7573 -43.28
+173.726 -34.9409 -43.65
+173.067 -34.6321 -37.61
+173.259 -34.765 -39.17
+173.023 -34.9848 -36.17
+172.997 -34.9432 -31.55
+173.502 -34.9174 -33.27
+173.216 -34.8002 -24.46
+173.431 -34.8099 -27.82
+173.122 -34.6994 -32.96
+173.081 -34.9759 -27.55
+173.081 -34.6688 -33.96
+173.725 -34.9706 -19.19
+173.286 -34.8132 -25.29
+173.049 -34.9402 -20.07
+173.004 -34.8978 -26.47
+173.149 -34.7386 -21.9
+173.457 -34.9513 -11.59
+173.349 -34.8188 -14.74
+173.432 -34.9141 -17
+173.315 -34.8409 -13.57
+173.504 -34.9727 -8.83
+177.975 -30.8091 -4019.21
+177.911 -31.1761 -3846.8
+179.665 -33.0386 -2837.89
+178.049 -30.5205 -3905.73
+177.905 -30.2165 -3918.32
+178.334 -30.7098 -3710.3
+178.372 -30.341 -3762.14
+177.821 -31.5967 -3852.79
+178.308 -31.0384 -3676.47
+177.918 -31.9864 -3653.26
+178.63 -30.5996 -3535.86
+178.28 -31.4013 -3453.83
+178.976 -33.4986 -3159.6
+179.745 -32.7612 -2744.6
+179.19 -33.989 -3148.59
+178.643 -30.1041 -3671.36
+177.949 -32.3529 -3468.01
+178.665 -30.888 -3302.77
+178.813 -30.3803 -3508.23
+178.279 -31.7784 -3465.76
+178.955 -30.6875 -3277.75
+178.673 -31.228 -3275.45
+179.252 -32.2296 -2861.77
+179.614 -32.2145 -3338.53
+178.569 -34.2069 -2845.58
+179.387 -31.9104 -2806.17
+179.298 -34.2936 -2897.92
+179.603 -33.3066 -2955.67
+178.36 -34.4741 -2936.06
+179.022 -30.1073 -3142.31
+177.957 -32.716 -3352.01
+178.667 -33.6607 -3037
+178.298 -32.1366 -3159.2
+179.025 -33.2089 -2826.87
+177.985 -33.0038 -3081.04
+178.662 -31.587 -2954.71
+179.457 -32.5282 -2972.7
+178.148 -34.1695 -2555.44
+179.43 -32.8501 -2905.86
+178.336 -32.517 -2816.93
+179.209 -32.7053 -3086.85
+179.247 -33.6773 -2514.91
+179.585 -33.5932 -2722.43
+177.843 -33.3225 -3006.77
+179.127 -32.9358 -3031.15
+178.682 -31.9637 -2704.12
+178.262 -32.8612 -2286.71
+177.897 -33.9718 -2871.07
+177.864 -33.7106 -3203.7
+178.736 -34.482 -2627.9
+179.662 -31.6546 -2661.15
+179.044 -31.0474 -2862.99
+179.011 -31.4082 -2590.45
+178.923 -32.73 -2605.16
+179.247 -30.4525 -2902.64
+178.554 -34.6942 -2144.88
+178.95 -34.2411 -2633.05
+180.265 -31.8215 -3084.23
+179.395 -34.5425 -2018.84
+179.849 -33.4486 -2599.39
+179.887 -33.2133 -2790.97
+180.088 -31.3961 -3124.31
+178.425 -33.9065 -2797.09
+178.241 -34.7736 -2804.9
+179.079 -32.4831 -2322.62
+180.118 -31.1268 -3070.05
+178.239 -33.1744 -2512.45
+180.305 -31.5551 -2559.75
+178.626 -33.298 -2827.37
+179.854 -31.2584 -3021.45
+178.588 -32.2669 -2540
+179.295 -30.7915 -2397.26
+179.469 -30.1242 -2802.17
+178.567 -34.9481 -2458.72
+179.018 -31.7464 -2463.78
+180.094 -30.8626 -2465.51
+178.797 -32.99 -2138.22
+180.247 -32.0612 -2764.72
+179.21 -34.7037 -2370.05
+178.733 -32.4983 -1414
+180.087 -33.3566 -2581
+179.376 -31.0339 -2078.17
+178.119 -33.8682 -1909.55
+178.253 -33.5577 -2190.74
+179.587 -30.4057 -1884.32
+180.406 -30.9544 -2593.86
+179.044 -32.0154 -2057.69
+180.355 -31.2779 -2437.1
+177.918 -34.5099 -2191.86
+178.894 -34.767 -2137.69
+180.288 -30.6647 -2470.86
+178.591 -32.7675 -1486.28
+178.896 -32.2406 -2052.95
+180.034 -30.6537 -1950.95
+179.609 -31.3949 -2049.88
+179.088 -34.5086 -2043.26
+179.855 -31.0082 -2601.75
+179.46 -34.7955 -1720.93
+180.445 -30.3921 -2535.46
+180.591 -30.6799 -2023.83
+179.331 -31.2699 -1795.18
+180.105 -30.4537 -2212.59
+180.719 -30.1913 -2290.59
+180.991 -30.2942 -2222.88
+180.771 -30.4648 -2246.52
+180.858 -30.7043 -2048.14
+180.435 -30.0898 -2208.01
+179.34 -31.5706 -2196.56
+181.026 -30.5305 -2016.08
+179.562 -30.6432 -1745.64
+180.971 -30.0231 -1997.91
+179.607 -31.1473 -1670.72
+179.586 -30.8938 -1292.16
+181 -31.5151 -1784.14
+178.499 -33.0154 -1812.56
+181.096 -30.7513 -1801.42
+180.174 -30.2086 -1866.97
+181.122 -30.9799 -1716.21
+179.748 -30.0193 -954.34
+179.836 -30.7658 -1612.15
+181.24 -30.3847 -1553.03
+179.84 -30.2572 -1075.38
+180.218 -30.0046 -1843.01
+181.21 -30.5871 -1451.56
+179.825 -30.534 -1311.08
+179.991 -30.0275 -999.12
+179.171 -34.8952 -1806.64
+183.84 -32.8962 -5747.18
+184.616 -30.6914 -5554.15
+186.428 -30.2259 -5003.63
+187.239 -32.0981 -6023.45
+186.767 -30.9274 -5813.2
+186.272 -34.2 -5726.31
+185.9 -33.9532 -5736.16
+185.889 -34.4119 -5700.3
+186.639 -31.3235 -5836.14
+186.517 -31.7274 -5700.62
+188.087 -34.2938 -5539.36
+186.249 -31.0089 -5845.28
+187.551 -31.9561 -5827.45
+186.848 -32.0132 -5851.59
+186.129 -31.394 -5627.87
+183.626 -33.5803 -5801.24
+187.622 -34.5092 -5302.46
+187.016 -32.8972 -5789.83
+186.613 -32.9 -5743.9
+188.065 -33.8631 -5714.44
+184.375 -33.1774 -5459.53
+188.126 -34.724 -5388.14
+186.732 -34.2484 -5645.9
+186.334 -30.5936 -5736.38
+186.947 -32.4791 -5962.84
+187.56 -30.4811 -5815.12
+187.277 -30.1614 -5562.83
+187.699 -32.4063 -5437.03
+187.414 -32.8312 -5678.92
+185.395 -34.1455 -5741.88
+184.325 -32.6554 -5416.52
+183.892 -33.2906 -5371.92
+187.242 -33.185 -5725.96
+184.211 -32.2568 -5832.68
+184.684 -32.3406 -5542.04
+186.421 -32.1435 -5745.44
+185.839 -31.1188 -5622.71
+186.407 -34.5825 -5550.81
+184.492 -32 -5656.14
+187.063 -31.2337 -5914.51
+186.86 -33.15 -5739.97
+186.007 -34.8761 -5664.38
+184.053 -31.8607 -5714.4
+187.512 -33.5872 -5511
+185.387 -34.7159 -5687.74
+184.059 -31.4578 -5852.5
+184.49 -31.1572 -5302.11
+187.12 -31.6623 -5916.18
+184.855 -34.316 -5643.3
+185.809 -30.219 -5780.86
+185.442 -33.6633 -5656.23
+184.125 -33.5763 -5255.51
+184.954 -33.3871 -5151.65
+186.281 -32.5686 -5702.57
+187.954 -30.8429 -5582.96
+185.811 -30.7597 -5770.4
+184.558 -33.5923 -5585.57
+186.483 -33.7978 -5822.41
+187.213 -34.2876 -5544.02
+185.984 -33.4813 -5748.41
+187.603 -34.0714 -5582.29
+184.934 -33.838 -5636.31
+187.676 -31.6388 -4899.52
+186.936 -33.4824 -5679.03
+183.381 -34.324 -5552.03
+184.525 -31.6338 -5434.69
+185.158 -32.3655 -5613.11
+184.735 -34.7951 -5620.78
+187.706 -33.185 -5603.85
+185.235 -30.1516 -5623.14
+184.938 -32.8263 -5433.96
+187.357 -30.9414 -4889.38
+188.012 -33.4819 -5631.51
+188.304 -31.2147 -5570.68
+187.034 -34.6928 -5548.86
+185.964 -32.2577 -5697.98
+187.076 -33.9127 -5545.81
+185.224 -30.5793 -5514.66
+185.631 -31.4175 -5374.31
+184.366 -33.9616 -5587.69
+185.415 -31.0385 -5550.75
+184.172 -34.9426 -5505.42
+187.858 -32.8614 -5464.44
+183.678 -34.9424 -5519.62
+187.633 -34.9719 -5294.84
+185.502 -33.1686 -5624.98
+184.95 -30.9698 -5468.06
+185.06 -31.4095 -5118.11
+185.52 -32.1224 -5529.21
+184.981 -31.9398 -5487.8
+183.797 -34.5922 -5541.16
+185.425 -31.7357 -5312.71
+188.137 -31.5893 -5043.15
+185.637 -32.6182 -5679.31
+187.986 -31.97 -4984.79
+187.406 -31.3479 -4994.69
+184.302 -34.4539 -5555.61
+188.2 -33.1633 -5245.54
+185.945 -31.8279 -5623.93
+186.939 -30.4729 -4094.58
+188.359 -32.3086 -4683.42
+186.835 -29.9564 -5022.25
+188.275 -32.7413 -4001.05
+187.814 -31.2635 -2907.88
+188.804 -31.2711 -5558.94
+188.575 -30.7711 -5641.62
+188.543 -31.5413 -5614.44
+189.155 -30.9696 -5666.5
+188.494 -34.5074 -5640.42
+188.633 -30.2421 -5553.31
+188.868 -32.1955 -5637.95
+188.987 -31.7371 -5708.46
+188.483 -31.8944 -5329.27
+189.246 -31.3841 -5599.6
+189.066 -30.5008 -5313.49
+189.368 -32.1186 -5713.87
+189.187 -32.4599 -5712.23
+188.719 -34.9058 -5447.12
+189.548 -31.7023 -5581.73
+189.882 -32.063 -5605.26
+189.718 -32.547 -5361.77
+189.566 -30.6941 -5438.26
+189.24 -32.8445 -5587.72
+190.063 -31.6446 -5594.25
+189.04 -30.1254 -5729.95
+190.334 -31.9787 -5661.06
+189.772 -33.1251 -5424.57
+188.548 -34.1314 -5347.32
+189.704 -31.2182 -5599.75
+190.282 -32.3681 -5535.79
+189.442 -30.2388 -5635.65
+190.296 -32.8497 -5407.43
+189.294 -33.2248 -5442.05
+190.649 -31.6321 -5648.59
+190.284 -31.2059 -5576.3
+190.817 -32.167 -5564.71
+190.374 -33.3354 -5225.78
+193.575 -33.5053 -5327.13
+190.007 -30.853 -5547.55
+191.933 -30.8919 -5453.22
+191.504 -30.659 -5558.63
+191.43 -31.1127 -5485.41
+191.49 -32.2131 -5609.63
+190.823 -31.1375 -5477.09
+191.144 -31.8292 -5507.51
+192.4 -32.1862 -5465.81
+189.972 -33.587 -5524.09
+192.189 -31.7646 -5365.01
+190.61 -30.2775 -5555.56
+190.408 -33.7023 -5313.22
+191.621 -31.6834 -5468.42
+192.005 -31.3391 -5554.27
+191.133 -31.479 -5705.85
+190.458 -30.75 -5516.23
+190.184 -33.9747 -5633.55
+189.626 -33.9082 -5503.89
+191.643 -32.6419 -5599.05
+191.265 -30.201 -5304.32
+191.946 -32.0635 -5516.15
+191.493 -32.9275 -5482.82
+191.18 -32.6091 -5389.69
+190.004 -30.3754 -5559.72
+191.014 -30.675 -5349.75
+193.021 -33.4231 -5482.53
+190.451 -34.357 -5200.34
+189.989 -34.2739 -5533.08
+192.605 -33.2022 -5412.92
+193.129 -33.7456 -5427.7
+192.03 -32.9528 -5513.64
+191.892 -30.4451 -5415.78
+192.626 -32.692 -5474.65
+192.418 -31.1301 -5441.73
+192.914 -32.2706 -5356.68
+192.365 -30.7111 -5509.68
+192.685 -31.8455 -5396.21
+189.064 -34.0194 -5405.94
+192.802 -30.6081 -5384.58
+193.22 -34.0553 -5489.35
+191.657 -33.2895 -5498.12
+189.133 -33.5626 -5358.51
+192.839 -30.2668 -5390.12
+190.987 -33.1142 -5373.61
+192.665 -33.6093 -5339.09
+192.805 -33.9893 -5307.81
+190.709 -32.62 -5417.68
+193.225 -32.6506 -5325.6
+192.768 -30.9472 -5329.86
+193.63 -32.9765 -5396.76
+192.023 -32.4582 -5589.81
+193.291 -30.2271 -5445.1
+192.189 -33.4267 -5276.49
+193.156 -30.5232 -5559.18
+193.062 -34.3519 -5369.25
+192.385 -30.3155 -5435.54
+189.552 -34.3964 -5286.88
+190.135 -34.7332 -5373.19
+188.778 -33.109 -5151.49
+193.124 -33.0716 -5402.45
+192.854 -34.6351 -5269.08
+188.776 -32.603 -5487.68
+192.305 -33.85 -5219.99
+188.974 -34.487 -5605.13
+192.456 -31.4976 -5465.4
+193.317 -32.3208 -5313.91
+192.489 -34.3224 -5126.15
+193.581 -30.5999 -5496.02
+191.872 -33.6562 -5404.77
+193.262 -30.9207 -5353.68
+192.504 -34.7065 -5187.64
+192.983 -31.4086 -5304.03
+190.977 -34.3865 -5317.33
+191.195 -34.0305 -5445.87
+190.669 -34.0104 -5467.34
+190.781 -34.7489 -5272.03
+191.395 -33.6343 -5428.08
+193.649 -32.5691 -5100.09
+191.515 -34.4271 -5240.42
+191.317 -34.7494 -5166.21
+193.377 -34.8075 -5142.58
+191.83 -34.0711 -5113.71
+192.065 -34.5587 -5117.27
+189.464 -34.9618 -4833.11
+191.775 -34.7688 -5210.46
+193.175 -31.9547 -5138.53
+193.559 -31.3331 -5199.05
+193.617 -34.2961 -5330.25
+193.629 -32.1734 -4976.36
+193.49 -33.908 -5277.12
+193.566 -31.7438 -4948.83
+188.549 -33.6214 -3402.22
+189.548 -33.4829 -5618.18
+190.834 -33.6359 -5349.92
+195.131 -33.871 -5532.92
+194.662 -33.9152 -5334.49
+194.216 -33.7252 -5827.48
+195.402 -34.1873 -5938.55
+194.733 -33.4665 -5247.91
+195.37 -33.4805 -5476.81
+195.418 -34.5053 -5860.39
+194.137 -33.249 -5377.28
+194.537 -32.9774 -5374.14
+194.956 -34.3249 -5369.97
+195.675 -33.9023 -4997
+194.069 -32.8133 -5504.47
+193.842 -33.9312 -5118.56
+195.186 -34.8024 -5357.77
+194.39 -32.6319 -5201.5
+194.795 -32.6487 -5611.53
+195.08 -33.0471 -5178.45
+194.264 -34.2379 -5235.27
+193.827 -30.2238 -5350.05
+194.042 -32.4175 -5316.61
+194.004 -30.6524 -5337.82
+194.63 -34.7551 -5211.54
+194.481 -32.2847 -5262.91
+194.305 -30.016 -5063.84
+195.682 -34.8319 -4997
+194.927 -32.328 -5621.9
+194.36 -30.4949 -5300.43
+195.343 -32.6113 -5068.41
+193.903 -31.0414 -5341.95
+194.8 -30.2826 -5454.84
+195.638 -33.0785 -4997
+194.331 -30.8835 -5355.35
+198.222 -33.6793 -4997
+196.373 -31.7663 -4997
+197.181 -32.0639 -4997
+197.913 -33.9215 -4997
+197.296 -32.8684 -4997
+196.801 -33.1112 -4997
+198.348 -34.0953 -4997
+197.754 -33.0073 -4997
+198.649 -33.8699 -4997
+196.005 -31.916 -4997
+196.84 -33.9007 -4997
+196.32 -34.0118 -4997
+197.412 -34.0376 -4997
+195.571 -31.7916 -4997
+197.02 -33.5913 -4997
+197.561 -33.4334 -4997
+195.242 -32.1036 -6025.78
+196.515 -33.5269 -4997
+198.15 -33.2532 -4997
+197.569 -32.255 -4997
+195.431 -31.3008 -4997
+198.65 -33.4961 -4997
+196.889 -31.1024 -4997
+196.912 -31.6457 -4997
+197.452 -31.8527 -4997
+197.658 -32.6492 -4997
+194.988 -31.5825 -5549.59
+198.104 -32.8324 -4997
+197.208 -34.868 -4997
+197.617 -34.6697 -4997
+196.776 -34.8355 -4997
+198.484 -34.5345 -4997
+198.997 -34.6933 -4997
+198.137 -34.7378 -4997
+196.256 -34.8953 -4997
+197.211 -32.4248 -4997
+196.79 -32.5718 -4997
+194.03 -34.7673 -5272.28
+196.435 -34.4992 -4997
+198.002 -32.4331 -4997
+195.198 -30.0134 -4889.08
+196.945 -34.3935 -4997
+198.832 -34.2312 -4997
+197.987 -34.335 -4997
+196.462 -30.793 -4997
+195.462 -30.9171 -4997
+194.03 -32.0241 -5368.61
+198.581 -33.0241 -4997
+196.175 -33.1066 -4997
+198.98 -32.7399 -4997
+195.861 -32.7552 -4997
+196.306 -32.68 -4997
+198.47 -32.5851 -4997
+195.884 -34.4047 -4997
+195.949 -33.5095 -4997
+194.894 -30.9113 -5674.68
+195.802 -31.1432 -4997
+197.641 -31.0791 -4997
+197.276 -30.9638 -4997
+198.09 -30.962 -4997
+196.315 -31.2408 -4997
+198.747 -31.0599 -4997
+196.913 -30.5944 -4997
+198.407 -30.5924 -4997
+197.532 -30.6488 -4997
+194.063 -31.5739 -5304.47
+198.385 -31.3623 -4997
+197.932 -31.3868 -4997
+195.914 -31.5253 -4997
+194.455 -31.2802 -5336.62
+197.404 -31.3942 -4997
+198.85 -31.6219 -4997
+196.762 -30.1284 -4997
+197.194 -30.1925 -4997
+198.608 -30.2093 -4997
+198.126 -30.1864 -4997
+197.672 -30.192 -4997
+195.698 -30.1734 -4997
+198.851 -30.611 -4997
+195.324 -30.505 -4854.6
+197.966 -30.5223 -4997
+195.91 -30.724 -4997
+196.314 -30.2812 -4997
+196.347 -32.2173 -4997
+195.826 -32.2938 -4997
+196.791 -32.115 -4997
+194.764 -31.9856 -5212.11
+198.837 -32.1912 -4997
+198.302 -32.2097 -4997
+197.904 -32.0472 -4997
+194.375 -31.9091 -5465.15
+197.805 -31.6925 -4997
+194.529 -31.6662 -5395.83
+198.298 -31.7921 -4997
+199.811 -31.139 -4997
+200.198 -34.8212 -4997
+200.282 -30.9659 -4997
+203.517 -31.1403 -4997
+199.568 -34.8721 -4997
+199.209 -30.3175 -4997
+204.018 -31.074 -4997
+203.406 -30.2826 -4997
+199.904 -31.5903 -4997
+201.242 -34.8297 -4997
+202.644 -31.0477 -4997
+199.77 -30.6735 -4997
+203.615 -30.7462 -4997
+201.665 -30.5656 -4997
+201.209 -30.7061 -4997
+202.493 -30.5615 -4997
+199.801 -34.4816 -4997
+200.733 -29.9815 -4997
+203.1 -31.2138 -4997
+200.305 -31.3851 -4997
+202.844 -33.2364 -4997
+199.65 -33.573 -4997
+202.45 -33.3156 -4997
+203.273 -33.3967 -4997
+202.002 -33.432 -4997
+201.558 -33.1656 -4997
+200.207 -33.8309 -4997
+204.105 -33.2002 -4997
+199.14 -33.2478 -4997
+199.155 -33.8277 -4997
+204.352 -33.6697 -4997
+203.564 -33.0775 -4997
+200.554 -33.4884 -4997
+200.049 -33.3426 -4997
+200.927 -33.4837 -4997
+199.631 -33.1849 -4997
+203.79 -33.5758 -4997
+202.435 -33.7908 -4997
+201.977 -33.8246 -4997
+202.904 -33.6534 -4997
+200.669 -33.8555 -4997
+200.89 -33.7162 -4997
+201.603 -33.5889 -4997
+201.215 -33.7061 -4997
+203.426 -33.897 -4997
+201.203 -33.3385 -4997
+199.415 -32.9098 -4997
+199.875 -32.8715 -4997
+203.852 -32.7143 -4997
+203.299 -32.6151 -4997
+202.528 -32.8727 -4997
+200.264 -32.7051 -4997
+200.675 -32.7914 -4997
+201.965 -32.9093 -4997
+204.406 -32.8194 -4997
+199.951 -32.4004 -4997
+200.448 -32.4024 -4997
+203.569 -32.261 -4997
+204.152 -32.286 -4997
+202.73 -32.4919 -4997
+199.43 -32.5031 -4997
+203.046 -32.949 -4997
+200.809 -33.1793 -4997
+200.372 -33.0596 -4997
+204.018 -34.6863 -4997
+203.578 -34.3431 -4997
+202.968 -34.753 -4997
+202.609 -34.6022 -4997
+203.429 -34.7215 -4997
+200.655 -34.5988 -4997
+200.98 -34.409 -4997
+201.777 -34.5586 -4997
+201.33 -34.3797 -4997
+202.236 -34.709 -4997
+199.346 -34.3531 -4997
+200.198 -34.3269 -4997
+202.962 -34.2565 -4997
+201.604 -34.0552 -4997
+200.724 -35.0069 -4997
+201.046 -34.046 -4997
+200.617 -34.1835 -4997
+199.724 -34.057 -4997
+202.243 -34.256 -4997
+204.057 -34.1365 -4997
+200.743 -30.8405 -4997
+199.286 -30.8757 -4997
+203.082 -30.7452 -4997
+201.695 -31.0073 -4997
+202.127 -30.8255 -4997
+201.227 -31.136 -4997
+204.054 -30.4886 -4997
+200.269 -30.5327 -4997
+199.341 -31.3726 -4997
+204.383 -31.513 -4997
+203.881 -31.5097 -4997
+201.725 -31.4846 -4997
+203.406 -31.546 -4997
+200.752 -31.2506 -4997
+202.213 -31.3107 -4997
+200.285 -30.1125 -4997
+201.214 -30.2549 -4997
+199.802 -30.199 -4997
+202.809 -30.2304 -4997
+202.25 -30.0785 -4997
+201.707 -30.1301 -4997
+203.79 -30.0423 -4997
+202.047 -30.4418 -4997
+200.734 -30.4049 -4997
+203.75 -31.8937 -4997
+203.32 -31.8825 -4997
+204.157 -31.8441 -4997
+203.017 -32.1317 -4997
+200.636 -32.0507 -4997
+199.493 -31.953 -4997
+200.131 -32.014 -4997
+200.344 -31.7341 -4997
+202.861 -31.5803 -4997
+200.736 -31.6597 -4997
+201.125 -32.9451 -4997
+201.449 -32.7796 -4997
+202.326 -31.9066 -4997
+202.133 -32.4119 -4997
+201.565 -32.4256 -4997
+201.012 -32.4751 -4997
+201.215 -31.5748 -4997
+201.69 -31.959 -4997
+201.145 -32.0189 -4997
+209.482 -34.7121 -4997
+209.423 -34.1084 -4997
+209.502 -31.2636 -4997
+209.51 -33.5384 -4997
+209.549 -31.6445 -4997
+209.362 -33.0786 -4997
+209.535 -32.1605 -4997
+209.56 -30.9184 -4997
+209.507 -32.6768 -4997
+209.078 -34.4126 -4997
+209.019 -32.2867 -4997
+209.017 -34.7716 -4997
+208.37 -30.7315 -4997
+207.977 -31.6662 -4997
+206.813 -31.722 -4997
+208.636 -30.5188 -4997
+208.54 -32.2365 -4997
+207.923 -30.7113 -4997
+209.11 -32.7248 -4997
+205.297 -30.685 -4997
+208.186 -30.4004 -4997
+208.185 -32.4262 -4997
+209.089 -31.7676 -4997
+209.144 -31.3448 -4997
+208.711 -32.5929 -4997
+208.907 -30.1747 -4997
+208.299 -31.0584 -4997
+205.905 -30.6356 -4997
+209.221 -31.0299 -4997
+205.092 -30.1822 -4997
+204.672 -30.3624 -4997
+207.69 -30.2803 -4997
+208.45 -30.1942 -4997
+206.25 -33.2208 -4997
+208.317 -33.2669 -4997
+209.134 -33.3069 -4997
+208.77 -33.2827 -4997
+205.886 -33.3279 -4997
+207.288 -32.4893 -4997
+205.532 -33.4373 -4997
+207.834 -33.3324 -4997
+207.676 -32.3661 -4997
+207.297 -33.4466 -4997
+204.624 -33.2771 -4997
+206.703 -33.3355 -4997
+205.119 -33.3493 -4997
+205.538 -32.5912 -4997
+205.156 -32.6427 -4997
+205.963 -32.5369 -4997
+204.732 -32.4709 -4997
+206.904 -33.0468 -4997
+206.783 -32.6078 -4997
+206.32 -32.4765 -4997
+208.65 -33.5792 -4997
+208.285 -33.6824 -4997
+204.879 -33.7166 -4997
+205.373 -33.7532 -4997
+209.045 -33.6368 -4997
+206.381 -33.6703 -4997
+205.85 -33.7377 -4997
+207.821 -33.7793 -4997
+206.982 -33.7771 -4997
+206.405 -32.8789 -4997
+205.909 -32.928 -4997
+205.429 -33.0184 -4997
+208.938 -32.9841 -4997
+207.332 -32.958 -4997
+207.884 -32.8253 -4997
+208.476 -32.8992 -4997
+204.91 -32.9276 -4997
+205.03 -34.4681 -4997
+204.588 -34.5759 -4997
+205.548 -34.5917 -4997
+208.663 -34.4507 -4997
+208.621 -34.8424 -4997
+207.103 -34.5271 -4997
+206.588 -34.6962 -4997
+207.665 -34.6794 -4997
+206.028 -34.4954 -4997
+208.207 -34.5543 -4997
+205.205 -34.1315 -4997
+204.677 -34.1205 -4997
+205.721 -34.1388 -4997
+207.292 -34.1944 -4997
+206.764 -34.1533 -4997
+207.782 -34.2015 -4997
+208.268 -34.1182 -4997
+206.055 -34.8971 -4997
+205.122 -34.8716 -4997
+208.218 -34.9984 -4997
+207.225 -34.965 -4997
+208.786 -34.005 -4997
+207.442 -33.8833 -4997
+206.229 -34.1394 -4997
+208.79 -30.9613 -4997
+204.675 -30.9929 -4997
+206.31 -30.9924 -4997
+205.831 -31.1009 -4997
+206.671 -30.9167 -4997
+205.354 -31.314 -4997
+207.084 -31.0254 -4997
+207.721 -31.1509 -4997
+206.819 -30.6836 -4997
+207.291 -30.6054 -4997
+209.106 -30.6613 -4997
+205.892 -31.6122 -4997
+206.319 -31.4242 -4997
+204.951 -31.6507 -4997
+208.244 -31.4156 -4997
+206.747 -31.2681 -4997
+207.329 -31.5517 -4997
+208.69 -31.395 -4997
+206.69 -30.2707 -4997
+206.1 -30.2344 -4997
+207.203 -30.153 -4997
+205.554 -30.2173 -4997
+209.213 -29.9368 -4997
+208.05 -30.0281 -4997
+206.416 -30.6222 -4997
+209.484 -30.3503 -4997
+206.459 -32.2455 -4997
+206.008 -32.1195 -4997
+207.281 -32.0497 -4997
+206.83 -32.1633 -4997
+205.629 -32.2551 -4997
+205.169 -32.2056 -4997
+208.213 -32.0368 -4997
+207.781 -32.0216 -4997
+204.598 -31.9986 -4997
+208.541 -31.8297 -4997
+205.495 -31.8569 -4997
+206.387 -31.8811 -4997
+157.083 -31.1336 -3838.72
+157.051 -31.5588 -3947.61
+157.133 -30.7868 -3547.31
+158.669 -34.8088 -4800.6
+158.567 -34.5284 -4659.52
+159.137 -34.8316 -4922.77
+157.061 -33.5653 -4751.31
+157.079 -33.1367 -4361.19
+157.15 -34.002 -4822.05
+157.586 -34.0992 -4618.26
+157.556 -34.7436 -4758.87
+157.237 -34.4535 -4610.62
+157.747 -34.4374 -4689.34
+157.952 -34.156 -4563.73
+158.686 -34.1966 -4644.66
+158.284 -34.0228 -4520.18
+159.105 -33.8439 -4423.59
+157.965 -34.751 -4547.5
+157.124 -31.9303 -3779.57
+157.052 -30.2355 -4249.31
+158.334 -34.7191 -4502.36
+157.515 -33.692 -4675.35
+158.21 -34.4076 -4765.3
+158.299 -33.7504 -4428.8
+158.606 -33.8146 -4415.36
+159.135 -34.2115 -4800.73
+158.936 -34.51 -4767.5
+159.261 -33.4551 -4092.41
+157.1 -32.7876 -3525.97
+159.673 -34.7793 -4209.8
+157.961 -33.8081 -4390.16
+157.438 -33.2937 -3850.73
+156.984 -32.2293 -4130.86
+159.374 -33.1724 -3981.94
+159.297 -32.5029 -4000.51
+158.838 -32.6278 -4209.31
+158.199 -33.5574 -3490.66
+158.428 -32.3469 -4075.27
+159.379 -34.4569 -4905.54
+157.356 -30.0692 -3304.98
+158.99 -32.2653 -4053.66
+158.42 -32.7267 -3785.16
+159.219 -32.8858 -3947.78
+158.737 -31.9269 -3662.54
+158.488 -33.5447 -3355.45
+158.521 -31.6799 -3946.22
+158.779 -31.6423 -2975.33
+158.649 -31.447 -3912.02
+158.194 -31.9047 -3946.77
+158.545 -31.1725 -3290.86
+158.174 -31.083 -3659.47
+158.258 -31.4598 -3983.25
+157.37 -32.9681 -3359.6
+158.011 -32.6617 -3233.41
+159.569 -34.0502 -3483.45
+157.381 -30.9989 -3286.45
+158.659 -33.0123 -3492.94
+158.492 -30.8466 -3660.91
+158.852 -33.5298 -3088.64
+158.869 -31.2338 -3652.82
+157.148 -32.4831 -3457.96
+159.413 -32.1939 -3141.66
+157.436 -31.7723 -2579.42
+159.677 -32.372 -2716.13
+158.871 -30.9315 -3480.39
+159.009 -33.2217 -3204.63
+158.13 -30.7258 -3598.61
+157.904 -33.38 -3251.37
+159.219 -31.9387 -2302.9
+159.802 -34.3714 -3142.93
+157.484 -31.3438 -2878.67
+158.47 -30.5333 -3168.99
+158.797 -30.6225 -2986.94
+157.872 -32.2895 -3515.51
+159.646 -32.6628 -2780.33
+157.482 -30.7418 -3024.62
+160.047 -34.885 -3614.69
+158.173 -33.0104 -3017.82
+158.176 -30.3881 -2899.87
+157.896 -31.3013 -3213.21
+158.67 -33.3225 -2814.59
+159.584 -33.647 -2950.93
+159.639 -33.3161 -2618.47
+158.467 -30.2844 -3012.71
+157.757 -30.9612 -3181.2
+158.667 -30.05 -3066.06
+157.746 -31.9576 -2740.37
+157.316 -30.4417 -2979.05
+157.507 -32.6275 -3103.34
+158.342 -33.3038 -2933.19
+157.398 -32.1911 -2885.45
+157.732 -32.9814 -2848.38
+159.704 -32.9854 -2505.9
+158.759 -30.3324 -3074.08
+159.044 -31.6869 -945.27
+159.038 -30.1032 -2250.19
+159.999 -34.0605 -2227.54
+157.828 -31.6305 -2917.07
+160.12 -34.5804 -2687.85
+157.623 -30.2155 -2130.02
+159.126 -31.0785 -2433.21
+159.541 -31.975 -2185.7
+159.152 -30.4117 -2483.23
+160.123 -34.282 -2534.95
+161.071 -34.859 -2718.55
+160.667 -34.8827 -2823.29
+160.867 -34.6055 -2594.85
+157.772 -30.5216 -2458.71
+158.291 -30.0974 -2522.09
+159.082 -30.6946 -2467.38
+160.327 -34.8063 -3158.96
+161.371 -34.7668 -2674.74
+159.175 -30.8634 -2453.96
+161.213 -34.5838 -2462.02
+157.934 -30.1632 -2007.88
+159.749 -32.106 -2007.33
+160.394 -34.328 -2252.28
+159.435 -30.1007 -2693.53
+161.039 -34.3453 -2388.32
+161.354 -34.3329 -2167.08
+161.632 -34.8208 -2628.47
+159.968 -32.4962 -2131.19
+161.564 -34.557 -2291.68
+159.924 -33.7643 -2389.93
+160.712 -34.3384 -2049.12
+159.929 -33.4562 -2171.45
+159.994 -32.7619 -1888.93
+161.629 -34.2962 -1846.37
+160.511 -34.5902 -2479.81
+159.387 -30.943 -2264.84
+160.324 -34.081 -2217.2
+160.583 -34.1343 -2327.51
+160.598 -33.8629 -2332.89
+160.893 -34.0684 -2293.7
+160.943 -33.7544 -1859.19
+159.383 -30.6645 -2194.99
+161.194 -34.1424 -2189.56
+160.469 -33.6465 -1785.76
+158.951 -31.4629 -1479.16
+159.968 -33.1848 -1636.58
+159.998 -32.2411 -1765.33
+160.254 -33.8254 -1939.38
+160.732 -33.5914 -2102.24
+159.716 -30.1866 -1907.05
+161.206 -33.9007 -1804.24
+159.543 -30.3807 -1656.1
+161.49 -34.066 -2133.41
+159.351 -31.1974 -2036.9
+159.534 -31.7779 -1842.21
+159.79 -31.8583 -1785.48
+160.225 -33.561 -1713.82
+160.052 -32.969 -1451.11
+161.753 -33.8782 -1728.28
+159.598 -30.8013 -2021.78
+160.529 -33.4012 -1822.78
+160.986 -33.5298 -1638.78
+159.838 -30.3632 -1992.84
+159.565 -31.3238 -1706.66
+159.532 -31.5543 -1741.88
+160.253 -32.5831 -1574.72
+160.032 -31.9813 -1649.63
+159.698 -30.5893 -1731.93
+159.264 -31.4607 -1707.68
+159.973 -30.1355 -1934.97
+160.331 -32.8312 -1735.39
+159.779 -31.6244 -1776.72
+161.494 -33.7786 -1796.29
+160.24 -32.3563 -1625.49
+160.46 -33.1935 -1737.88
+160.23 -33.3128 -1536.81
+160.268 -32.1229 -1480.19
+159.837 -30.7825 -1551.16
+160.852 -33.3667 -1442.69
+161.716 -33.6774 -1645.1
+160.269 -33.0803 -1559.56
+159.744 -31.4335 -1545.59
+159.66 -31.0388 -1583.92
+160.272 -30.1072 -1556.53
+161.248 -33.5973 -1567.57
+159.841 -31.2323 -1448.78
+160.556 -33.0042 -1566.27
+161.568 -33.5363 -1527.97
+160.433 -32.4402 -1564.82
+160.12 -30.3313 -1988.2
+159.977 -31.4227 -1575.52
+160.56 -30.1179 -1591.99
+159.975 -30.5556 -1555.63
+160.484 -32.2556 -1531.05
+160.094 -31.6779 -1265.78
+161.145 -33.3498 -1478.7
+159.966 -30.9858 -1378.49
+160.532 -32.6026 -1482.34
+160.682 -32.7906 -1411.37
+160.104 -30.7476 -1408.21
+160.114 -31.1808 -1419.75
+160.711 -33.179 -1355.3
+161.007 -33.1488 -1449.09
+161.432 -33.35 -1308.47
+160.849 -32.967 -1371.41
+160.343 -31.8657 -1405.6
+160.656 -32.4036 -1435.03
+160.972 -32.7511 -1440.46
+160.23 -30.9353 -1243.4
+160.808 -32.5742 -1480.1
+160.443 -31.6067 -1434.49
+160.307 -31.3761 -1382.21
+161.14 -32.9295 -1369.4
+160.246 -30.5258 -1535.97
+160.55 -32.0324 -1304.52
+161.336 -33.1113 -1331.9
+160.359 -30.7142 -1389.59
+160.735 -32.1949 -1299.83
+160.392 -31.1054 -1336.28
+160.866 -30.1274 -1383.77
+160.396 -30.3178 -1548.47
+160.56 -31.408 -1530.94
+160.572 -31.2263 -1372.65
+160.669 -31.7728 -1417.53
+160.495 -30.8824 -1378.17
+161.675 -33.3325 -1509.6
+160.91 -32.3605 -1397.35
+160.715 -31.5195 -1364.02
+161.087 -32.534 -1354.69
+161.259 -32.7093 -1429.21
+160.834 -31.974 -1459.25
+160.498 -30.5146 -1449.43
+161.385 -32.8808 -1373.07
+160.613 -30.6841 -1397.1
+160.643 -31.0192 -1249.33
+159.319 -31.6837 -1009.46
+160.66 -30.33 -1483.01
+160.763 -31.3113 -1222.21
+161.01 -32.1451 -1313.56
+161.569 -33.1812 -1382.08
+160.935 -31.7904 -1337.17
+160.78 -31.1275 -1200.14
+160.708 -30.832 -1234.9
+160.92 -31.613 -1281.06
+161.175 -32.3129 -1359.17
+160.711 -30.5159 -1276.27
+160.957 -31.4112 -1051.86
+161.394 -32.4649 -1442.72
+161.132 -31.9174 -1322.39
+161.63 -32.9658 -1479.23
+161.576 -32.6842 -1421.49
+161.16 -30.0037 -1273.72
+161.138 -31.689 -1097.48
+161.02 -31.168 -1284.4
+160.871 -30.657 -1369.58
+161.271 -32.1108 -1321.78
+161.397 -32.258 -1395.03
+160.899 -30.4058 -1315.29
+161.117 -31.5161 -1245.18
+160.906 -30.9214 -1450.99
+161.212 -31.3438 -1262.87
+161.38 -31.9483 -1386.5
+161.138 -30.7343 -1367.79
+161.204 -30.9512 -1280.34
+161.657 -32.4617 -1328.16
+161.127 -30.5084 -1453.1
+161.366 -31.7657 -1309.32
+161.134 -30.2653 -1367.77
+161.331 -31.137 -1299.91
+161.364 -31.5358 -1225.05
+161.55 -32.0924 -1400.8
+161.608 -32.2938 -1429.96
+161.493 -31.3171 -1303.58
+161.361 -30.7948 -1414.63
+161.59 -31.8653 -1132.99
+161.365 -30.6097 -1316.68
+161.607 -31.6543 -1167.41
+161.36 -30.3851 -1258.49
+161.623 -31.4696 -1300.17
+161.389 -30.154 -1317.97
+161.607 -31.1233 -1258.96
+161.468 -30.9519 -1355.48
+161.771 -30.5505 -1326.69
+161.681 -30.9462 -1359.13
+161.581 -30.4886 -1347.21
+161.62 -30.7391 -1313.37
+161.563 -30.2843 -1351.11
+161.683 -30.0567 -1264.72
+159.11 -31.289 -2102.42
+165.405 -31.1083 -3317.13
+165.565 -30.8357 -3437.32
+165.203 -30.8101 -3134.78
+165.561 -31.3399 -3265.64
+165.177 -31.4232 -2937.43
+165.315 -31.9787 -3132.07
+165.089 -31.1243 -3251.63
+165.534 -31.6639 -3180.06
+165.497 -30.2054 -2997.98
+165.137 -31.7576 -3104.91
+164.905 -30.1179 -3141.13
+164.549 -30.0436 -3111.33
+164.122 -30.1368 -2480.66
+165.132 -30.3941 -3048.51
+165.533 -30.5282 -3217.34
+164.719 -30.3957 -3060.35
+164.361 -30.3924 -2586.55
+165.485 -32.1718 -3159.02
+164.905 -30.9872 -2803.11
+165.667 -31.9781 -3114.35
+165.944 -30.2645 -2743.76
+165.204 -32.289 -3141.25
+165.713 -32.207 -3106.93
+164.842 -30.708 -3131.34
+165.524 -32.4064 -3172.82
+164.884 -32.0619 -2544.28
+166.346 -30.1118 -2894.99
+164.805 -31.6781 -2212.92
+165.194 -32.6671 -3213.11
+166.399 -30.3624 -2744.61
+166.727 -30.1676 -2938.56
+165.87 -30.676 -3136.94
+164.824 -32.4747 -3047.47
+165.821 -31.0608 -2991.75
+165.918 -32.4131 -2495.18
+166.321 -33.273 -2994.71
+165.772 -33.7187 -3017.85
+164.595 -33.2055 -3009.4
+165.779 -34.15 -2968.96
+166.273 -33.598 -2947.36
+165.965 -33.3622 -2756.64
+166.143 -33.9327 -2894.59
+164.741 -32.8286 -3093.84
+165.345 -33.9964 -2998.83
+165.023 -33.8479 -2933.88
+164.843 -33.6501 -2981.72
+165.262 -33.5974 -3037.77
+164.951 -34.09 -2625.31
+164.29 -32.9398 -2968.18
+165.034 -33.0325 -3087.33
+166.09 -33.1031 -3005.32
+166.358 -32.9954 -2539.15
+165.727 -33.0798 -3046.81
+165.637 -32.7066 -3142.12
+166.066 -32.7866 -2861.06
+164.49 -32.637 -3066.37
+164.954 -33.3578 -3033.26
+165.608 -33.4006 -3005.69
+164.348 -33.501 -2892.9
+164.168 -33.2833 -2392.33
+166.702 -30.4577 -2686.45
+166.167 -30.5566 -2847.27
+166.478 -30.6368 -2792.62
+165.331 -33.2311 -3036.97
+166.139 -34.2069 -2940.43
+165.384 -32.9397 -3157.78
+164.155 -32.6215 -3038.64
+163.81 -32.6144 -2276.97
+164.201 -32.1014 -2953.28
+163.897 -32.8807 -2497.98
+166.447 -33.8401 -2805.45
+165.446 -34.2907 -2897.37
+163.967 -32.05 -2839.67
+164.435 -32.3118 -3089.35
+165.979 -34.3955 -2874.65
+165.896 -31.4174 -3075.56
+165.969 -32.0937 -2498.72
+166.191 -30.8449 -2326.32
+166.443 -34.0954 -2766.12
+166.6 -33.4116 -2561.69
+165.985 -31.7614 -2683.37
+164.498 -30.6821 -2384.75
+164.761 -31.2884 -2031.35
+166.828 -30.6929 -2736.4
+165.967 -34.6206 -2936.46
+164.139 -31.8605 -2879.82
+163.989 -32.3219 -2747.01
+166.354 -34.4911 -2919.42
+165.149 -34.2854 -2367.76
+166.647 -33.6671 -2882.48
+166.548 -30.9164 -2508.15
+164.474 -31.9335 -2435.85
+166.254 -31.1946 -2370.56
+166.104 -34.8836 -2830.62
+166.719 -33.9156 -2822.7
+164.646 -33.4841 -2953.91
+165.657 -34.509 -2864.51
+166.561 -34.8531 -2855.81
+166.983 -34.9044 -2864.95
+165.301 -34.5041 -2300.32
+164.023 -31.6525 -2576.92
+166.819 -34.2221 -2879.17
+164.512 -33.7081 -2656.95
+166.854 -34.5848 -2821.14
+164.607 -30.977 -2273.84
+166.198 -31.4985 -2535.48
+163.8 -31.8385 -2529.4
+166.931 -30.9963 -2287.33
+164.691 -33.9323 -2146.61
+165.719 -34.8063 -1969.15
+164.053 -31.4105 -2208.95
+166.362 -31.6894 -2016.51
+166.595 -33.1666 -1748.99
+166.62 -31.1615 -2101.27
+164.076 -30.416 -2294.12
+163.719 -32.1423 -2122.21
+164.848 -34.3229 -1428.24
+164.372 -31.5781 -2165.23
+166.461 -32.7377 -1647.74
+163.657 -32.7931 -1127.87
+163.773 -31.5519 -1957.57
+166.529 -31.4238 -1797.12
+161.878 -34.8626 -2645.45
+164.173 -30.6451 -2242.85
+161.861 -34.6629 -2246.01
+164.026 -31.1305 -1935.73
+161.859 -34.4108 -2106.9
+164.27 -30.9235 -2279.37
+164.35 -31.2231 -2153.05
+163.795 -30.0758 -1736.81
+164.206 -33.755 -1223.19
+165.4 -34.7253 -1590.64
+166.308 -31.981 -1566.98
+163.77 -31.2934 -1701.35
+166.226 -32.2494 -1581.04
+164.697 -34.1674 -1343.19
+163.995 -33.5716 -1053.39
+163.984 -33.1222 -2057.81
+163.857 -30.314 -1749.96
+162.104 -34.5378 -2091.35
+161.872 -34.1303 -1755.33
+167.006 -33.9538 -1724.38
+163.634 -32.4119 -1693.21
+163.864 -30.5915 -1635.28
+166.855 -31.2872 -1220.19
+163.963 -30.8614 -1854.48
+166.272 -32.5072 -1564.96
+164.36 -33.9339 -1205.69
+165.012 -34.5063 -1520.75
+166.62 -31.6355 -891.88
+163.512 -31.6922 -1494.39
+163.488 -31.9646 -1503.37
+163.644 -30.2399 -1453.46
+165.148 -34.6664 -1522.06
+163.75 -31.0409 -1404.63
+166.628 -32.9488 -1247.08
+166.915 -33.4942 -1050.49
+166.927 -33.7429 -1605.12
+162.099 -34.7641 -1664.85
+163.531 -32.6404 -966.57
+163.508 -31.4305 -1369.17
+162.125 -34.3013 -1477.05
+162.328 -34.6402 -1313.95
+163.814 -33.3486 -988.82
+163.644 -30.4354 -1318.76
+164.462 -34.1308 -1186.49
+162.338 -34.4327 -1311.13
+163.415 -32.2486 -1267.89
+166.598 -31.8438 -923.84
+163.519 -31.1725 -1347.98
+165.452 -34.9676 -1271.27
+162.35 -34.8669 -1347.37
+163.451 -30.3147 -1363.02
+161.93 -33.6915 -1408.02
+163.691 -30.8088 -1569.92
+163.611 -30.6281 -1303.16
+163.487 -30.0737 -1286.87
+161.841 -33.4823 -1449.9
+163.538 -30.9645 -1294.7
+167.04 -31.4215 -1047.37
+166.806 -33.2878 -916.8
+163.373 -32.4866 -1109.42
+163.265 -31.5772 -1322.98
+163.447 -32.8387 -967.6
+162.196 -34.0651 -1407.39
+164.902 -34.7081 -1134.02
+163.421 -30.7662 -1231.61
+163.231 -31.2937 -1179.12
+166.444 -32.1746 -889.96
+163.318 -31.0118 -1210.63
+162.036 -33.8856 -1258.58
+163.433 -30.5242 -1206.93
+164.745 -34.5262 -1169.26
+163.238 -30.2176 -1324.67
+165.126 -34.8885 -1158.03
+163.255 -31.83 -1264.01
+163.265 -30.4111 -1173.13
+164.093 -33.981 -937.31
+163.76 -33.1252 -1163.29
+161.862 -33.2824 -1379.32
+161.769 -33.1465 -1463.32
+163.151 -30.827 -1248.21
+167.045 -31.6327 -634.43
+166.815 -31.5183 -349.85
+164.552 -34.3599 -1091.21
+166.461 -32.3501 -954.55
+161.865 -32.9926 -1397.39
+164.755 -34.918 -1053.43
+162.667 -34.935 -1383.93
+163.211 -30.5968 -1265.08
+163.925 -33.8343 -1001.93
+161.885 -32.7787 -1311.1
+164.638 -34.7028 -1108.56
+162.505 -34.5298 -1066.34
+163.056 -31.5032 -1204.48
+162.368 -34.2209 -1259.28
+161.834 -31.5414 -1304.07
+161.796 -31.3038 -1200.84
+161.85 -31.0633 -1352.28
+161.858 -30.8535 -1256.15
+162.068 -30.9612 -1203.17
+162.061 -31.1808 -1285.37
+161.827 -31.7582 -1283.38
+162.062 -31.4083 -1091.36
+161.861 -30.6804 -1294.56
+162.06 -30.7471 -1163.02
+161.806 -31.9795 -1075.97
+161.961 -30.1012 -1118.45
+162.281 -31.4998 -1077.94
+163.017 -31.9684 -1245.43
+162.06 -31.6342 -1135.47
+162.525 -30.6451 -1096.31
+162.792 -30.6441 -1147.34
+163.01 -30.6643 -1182.91
+162.261 -30.5994 -1103.31
+162.507 -31.5686 -1178.62
+162.996 -30.1383 -1174.03
+161.999 -30.5118 -1110.07
+162.79 -31.6007 -1138.59
+163.046 -31.0714 -1241.31
+162.745 -31.1164 -1118.81
+162.245 -31.0658 -1123.19
+162.786 -31.8862 -1204.42
+162.465 -31.069 -1039.66
+162.536 -31.8057 -1357.12
+162.226 -30.135 -1120.32
+162.305 -31.268 -1152.52
+163.23 -32.0757 -1170.76
+162.226 -30.3752 -1155.03
+162.451 -30.4327 -1142.74
+162.531 -31.246 -958.79
+162.666 -31.3779 -1011.51
+162.927 -31.3258 -1188.03
+162.459 -31.3928 -1168.8
+162.492 -30.0893 -1082.48
+162.744 -30.0851 -1296.37
+162.897 -30.8602 -1280.28
+162.63 -30.8608 -1087.8
+162.323 -30.85 -1157.3
+162.049 -31.8616 -1197.14
+162.809 -30.2644 -1271.32
+163.005 -30.4158 -1240.37
+162.399 -30.2552 -1181.63
+162.599 -30.2598 -1106.69
+162.036 -30.2895 -983.81
+162.288 -31.7229 -1387.73
+163.028 -31.7234 -1285.42
+161.799 -30.3297 -1209.79
+162.698 -30.4399 -1146.22
+161.852 -32.5288 -1186.15
+161.771 -32.163 -1201.07
+164.235 -34.1088 -1062.19
+162.083 -32.5905 -951.53
+163.6 -32.9912 -902.44
+162.145 -33.7019 -1008.54
+163.19 -32.2571 -992.42
+161.839 -32.3201 -1216.41
+164.274 -34.2955 -1068.03
+164.538 -34.5561 -1024.75
+162.567 -34.7058 -1113.94
+163.741 -33.5626 -895.76
+163.013 -32.1936 -1008.34
+162.025 -32.117 -1104.42
+162.921 -34.8611 -1215.89
+162.115 -32.7626 -1082.63
+166.516 -32.5254 -847.83
+164.315 -34.5216 -1038.36
+162.796 -32.1171 -1153.11
+164.016 -34.2118 -953.81
+162.352 -33.8326 -836.17
+162.105 -32.3569 -1277.22
+162.531 -32.0738 -1185.07
+164.439 -34.6702 -1119.11
+162.817 -34.7131 -1261.45
+163.233 -32.3794 -1168.1
+162.285 -31.9576 -1171.29
+164.064 -34.4401 -1134.02
+167.078 -32.3409 -1165.4
+163.124 -34.8942 -1299.02
+166.693 -32.7944 -436.71
+166.723 -32.6237 -454.95
+163.8 -34.2199 -1031.49
+164.261 -34.719 -1190.96
+162.713 -34.5268 -1051.75
+162.095 -33.5211 -925.86
+163.605 -33.481 -931.32
+166.59 -32.0557 -882.59
+164.102 -34.6126 -1056.58
+161.974 -33.1288 -1163.97
+162.054 -32.9349 -1200.16
+162.051 -33.314 -1069.08
+164.461 -34.8327 -1143.46
+163.364 -34.9388 -1364.3
+163.054 -34.7205 -1210.31
+163.831 -34.3883 -1141.73
+162.579 -34.3437 -1017.75
+163.863 -34.0516 -853.79
+163.686 -34.1267 -816.72
+166.805 -31.7133 -455.39
+162.975 -34.5191 -1095.15
+163.493 -33.2777 -902.69
+163.048 -32.3776 -1007.74
+164.213 -34.9076 -1172.35
+162.275 -32.1594 -975.93
+164.033 -34.7748 -1197.29
+162.624 -32.249 -1143.5
+163.773 -33.7176 -1073.08
+163.285 -34.7339 -1201.19
+162.419 -34.0507 -843.42
+163.585 -34.9601 -1379.03
+163.862 -34.6172 -1125.98
+163.275 -32.7019 -886.33
+163.606 -34.3158 -1074.11
+162.275 -32.6572 -885.19
+162.803 -32.3439 -1202.9
+163.492 -34.1188 -976.62
+163.141 -32.5317 -887.32
+163.663 -33.9256 -935.72
+163.183 -34.5808 -1154.97
+162.26 -32.4837 -1249.64
+162.829 -34.3453 -961.69
+163.977 -34.942 -1147.18
+163.564 -34.7379 -1132.81
+163.795 -34.8485 -1069.53
+163.653 -34.5208 -1104.11
+163.267 -34.1348 -1002.83
+162.586 -32.3932 -982.56
+163.04 -34.3165 -1071.6
+163.192 -34.4122 -1129.77
+163.359 -34.2891 -1167.27
+163.406 -34.5129 -1199.65
+163.369 -33.9207 -956.66
+163.358 -33.0335 -867.48
+163.268 -32.8825 -1049.04
+163.122 -32.8425 -975.44
+163.138 -32.9945 -948.47
+163.017 -32.7083 -1046.13
+162.905 -32.5386 -1062.07
+162.223 -33.0938 -1079.32
+162.982 -33.121 -811.71
+162.47 -33.1253 -974.06
+162.736 -33.1578 -845.73
+162.659 -32.5418 -1035.67
+163.185 -33.2006 -803.99
+162.692 -33.4224 -832.59
+162.897 -33.4974 -790.97
+162.63 -32.9367 -749.52
+162.912 -32.9255 -761.79
+162.26 -32.8528 -1060.94
+162.413 -32.9478 -1014.11
+163.166 -33.4809 -712.44
+162.764 -32.7286 -915.98
+162.471 -33.4516 -801.15
+162.303 -33.345 -978.63
+162.607 -33.7706 -688.1
+162.492 -32.7405 -826.69
+163.424 -33.5241 -866.63
+162.442 -32.5186 -1063.4
+167.008 -32.1627 -1045.27
+162.31 -33.5787 -859.05
+162.523 -33.6148 -620.4
+163.55 -33.692 -1079.75
+162.742 -33.6247 -632.26
+162.955 -33.6563 -825.03
+163.106 -34.182 -1108.71
+162.534 -33.2974 -641.52
+162.404 -32.3126 -991.21
+163.191 -34.2675 -1216.23
+162.942 -33.3133 -791.68
+163.306 -33.6926 -727.17
+162.801 -33.8111 -686.85
+163.125 -33.6939 -860.17
+163.004 -33.8295 -878.88
+163.182 -33.8315 -1047.18
+166.867 -33.0893 -840.56
+163.105 -34.0139 -933.02
+166.946 -31.9696 -622.54
+166.911 -32.4796 -717.2
+162.618 -33.97 -766.3
+162.548 -34.1516 -699.82
+166.99 -32.8166 -233.49
+166.637 -32.2387 -665.57
+162.945 -34.1727 -861.73
+166.809 -31.8558 -576.47
+166.85 -32.2967 -620.02
+166.749 -31.9678 -550.15
+162.869 -33.9982 -910.35
+167 -32.9516 -354.36
+162.731 -34.1636 -742.43
+166.799 -32.1188 -768.38
+166.947 -31.7996 -599.52
+166.682 -32.4185 -575.12
+166.963 -32.6601 -336.73
+166.836 -32.8943 -470.85
+166.84 -32.7598 -352.85
+167.051 -33.2734 -797.19
+168.978 -30.139 -3286.5
+168.596 -30.2535 -3498.3
+170.463 -32.467 -3512.94
+170.562 -32.0358 -3986.77
+169.447 -31.9515 -3924.71
+169.04 -31.8977 -4059.68
+170.901 -32.2952 -3405.99
+169.381 -30.9275 -3733.6
+168.953 -30.9607 -3667.43
+169.972 -32.4822 -3395.43
+170.58 -32.8558 -2792.6
+168.771 -30.6257 -3858.33
+170.231 -31.7515 -3947.01
+170.663 -31.6567 -3934.04
+169.907 -31.4792 -3926.48
+169.615 -31.2157 -3771.19
+169.17 -31.2641 -4144.4
+169.801 -31.8482 -3903.27
+169.419 -31.5971 -4200.06
+170.882 -32.663 -3324.21
+168.999 -31.5633 -4005.28
+169.693 -32.1994 -3722.82
+169.287 -32.2258 -3834.76
+170.186 -32.7869 -3134.02
+168.477 -30.9703 -3709.95
+170.907 -31.0538 -3434.48
+170.988 -31.9233 -2787.56
+170.771 -30.772 -3754.45
+170.353 -31.388 -4170.75
+170.12 -32.1333 -3574.28
+168.351 -30.5912 -3616.85
+168.643 -32.0131 -3641.55
+168.695 -31.3424 -3620.2
+168.984 -30.3665 -3280.4
+170.781 -31.3226 -3919.69
+170.048 -31.1144 -3850.51
+170.504 -31.0532 -3898.34
+169.177 -30.6144 -3701.52
+169.54 -32.5089 -3384.5
+171.082 -31.5702 -3163.52
+169.765 -30.9122 -3402.5
+170.171 -30.6952 -3483.23
+168.224 -30.3568 -3350.75
+168.338 -31.2983 -3201.12
+169.121 -32.5524 -2763.9
+171.278 -30.8868 -2942.89
+171.275 -32.1768 -3301.17
+171.446 -31.8176 -2827.11
+171.433 -31.4631 -2760.75
+171.606 -31.1868 -2942.69
+171.861 -31.5373 -2710.58
+170.423 -30.2064 -2937.85
+170.241 -30.3629 -3340.86
+171.636 -32.1613 -3282.64
+169.782 -32.7636 -3260.71
+169.619 -30.6162 -3170.8
+171.182 -31.2379 -3249.56
+168.217 -30.1335 -2755.74
+171.862 -31.9241 -2507.81
+171.215 -32.5048 -3231.09
+169.403 -32.7934 -2625.26
+170.625 -30.4304 -2513.92
+171.486 -32.395 -3234.82
+168.682 -31.7125 -3038.14
+168.049 -30.8459 -2154.43
+171.845 -30.0873 -2478.96
+171.796 -32.4758 -2704.12
+171.919 -30.3157 -2611.81
+171.799 -30.8777 -2760.16
+169.375 -30.2272 -2921.33
+171.499 -32.6591 -3033.67
+172.054 -31.1665 -2221
+171.591 -30.543 -2311.43
+171.974 -32.2144 -2576.29
+171.505 -32.9646 -3140.79
+171.213 -32.8109 -3076.12
+171.094 -30.5365 -2638.01
+170.135 -30.1268 -2399.86
+168.116 -31.1491 -2311.12
+168.39 -32.0747 -1487.87
+168.382 -31.8702 -2476.17
+169.877 -30.3413 -2718.54
+168.881 -32.2448 -2439.17
+169.963 -33.0222 -2204.23
+170.689 -30.1446 -2202.12
+169.632 -33.0094 -1751.91
+167.15 -30.0794 -2715.17
+171.215 -33.0653 -2643.51
+170.925 -32.9561 -2552.61
+169.796 -30.0104 -2875.26
+167.186 -34.6857 -2619.41
+171.767 -33.4315 -2338.63
+167.367 -34.9203 -2809.81
+171.781 -32.8037 -2319.6
+169.101 -32.8562 -2156.42
+172.117 -30.1107 -2257.05
+172.143 -30.8913 -2031.22
+167.181 -30.7472 -2350.72
+167.076 -30.429 -2546.73
+167.772 -34.8885 -2396.07
+170.983 -30.2649 -2205.97
+167.216 -34.4055 -2194.53
+172.089 -30.6097 -2050.29
+167.264 -30.969 -2384
+170.331 -33.1141 -2376.2
+172.411 -30.0928 -2287.43
+171.589 -30.211 -2218.09
+172.269 -30.3281 -2038.6
+168.007 -30.5281 -1847.3
+172.102 -32.4434 -2413.33
+172.181 -31.4073 -2023.67
+170.928 -30.0558 -2083.23
+172.132 -32.0337 -1991.85
+171.293 -33.6375 -2114.78
+167.212 -31.2181 -2269.11
+167.529 -34.6286 -1922.39
+170.696 -33.1476 -2060.95
+168.544 -33.8555 -2114.59
+168.347 -33.6769 -2166.24
+168.1 -33.7066 -2091.47
+170.216 -34.7964 -1999.44
+172.824 -32.2094 -1918.35
+169.862 -34.5576 -2126.86
+171.302 -30.3256 -2279.06
+170.115 -34.5497 -2138.89
+168.886 -32.7271 -2230.57
+169.533 -33.2335 -1842.65
+169.316 -33.0612 -2254.55
+172.836 -32.0148 -1960.28
+168.864 -32.9083 -2071.04
+172.096 -32.7023 -2132.1
+172.344 -32.2781 -1749.23
+170.048 -33.2593 -634.23
+169.527 -33.4218 -2008.11
+172.038 -33.3782 -1378.4
+168.063 -31.4337 -2135.77
+167.477 -30.8271 -1806.21
+171.243 -30.0623 -1255.23
+168.734 -33.9873 -1987.97
+167.973 -30.2758 -1251.93
+169.002 -33.0931 -2128.5
+172.295 -32.5385 -1585.83
+167.897 -31.0659 -954.05
+169.937 -34.7404 -1548.46
+172.681 -32.3516 -2033.04
+168.175 -33.5305 -2133.33
+169.419 -33.6266 -2109.44
+170.537 -34.8472 -1914.09
+167.44 -30.5651 -2464.98
+169.726 -33.5562 -1916.19
+168.648 -33.6257 -2071.32
+169.232 -33.3512 -2074.87
+172.362 -31.0288 -1743.99
+167.285 -31.4781 -2300.32
+167.829 -34.6561 -1811.98
+167.494 -31.0637 -2242.98
+168.148 -34.9547 -2151.36
+170.471 -34.5738 -1595.91
+168.528 -34.0899 -1878.87
+170.542 -33.3722 -1940.55
+167.546 -34.3798 -1515.68
+169.289 -33.8893 -1915.37
+169.651 -33.8533 -2045.29
+168.224 -33.9322 -2059.29
+172.735 -30.0511 -1888.9
+172.791 -32.5622 -1839.02
+167.854 -31.2619 -890.18
+172.774 -33.0926 -2241.72
+168.774 -33.3317 -2012.07
+169.017 -33.6565 -2055.64
+169.087 -34.3376 -2017.11
+169.173 -34.1371 -1957.08
+172.566 -33.081 -2072.78
+168.976 -33.9501 -1952.78
+169.476 -34.1019 -2003.79
+172.322 -32.9525 -2063.96
+168.724 -33.0498 -1991.61
+168.405 -33.4296 -1862.31
+169.724 -34.1032 -1949.31
+169.617 -34.2663 -2031.81
+168.785 -33.8209 -1929.21
+172.535 -32.5482 -1576.39
+172.868 -33.6606 -2056.76
+172.793 -31.141 -1518.39
+169.914 -34.2989 -1912.19
+168.106 -33.3177 -1945.76
+170.281 -34.3229 -1869.67
+172.128 -31.7909 -1402.53
+169.602 -34.5008 -1809.35
+170.828 -34.9015 -1832.87
+172.402 -31.2674 -1699.91
+167.559 -31.3139 -2664.08
+168.411 -33.106 -1980.91
+169.946 -33.7216 -1894.79
+169.944 -33.9836 -1885.77
+172.577 -30.2945 -1915.17
+168.609 -32.806 -1943.98
+172.61 -32.1165 -1855.79
+167.179 -34.1257 -1319.43
+172.665 -33.3017 -1641.36
+168.436 -34.8553 -1128.76
+167.78 -33.2817 -1840.65
+172.687 -32.83 -1882.22
+170.777 -34.6941 -1747.72
+167.999 -33.0148 -1973.38
+167.488 -30.0036 -1857.78
+168.513 -32.2845 -2074.51
+170.599 -34.2937 -1685
+169.361 -34.3185 -2080.55
+172.397 -31.5049 -1544.77
+169.727 -34.6834 -1553.95
+172.382 -32.7133 -1535.61
+167.904 -33.5518 -1768.14
+170.254 -33.3942 -890.56
+169.952 -33.5355 -1529.02
+168.737 -32.523 -2028.79
+169.693 -33.3606 -1540.79
+168.263 -32.7924 -1914.73
+172.857 -31.7689 -1734.52
+170.144 -33.5849 -1517.88
+168.011 -34.7499 -1871.98
+172.776 -31.3334 -1467.36
+171.049 -34.9437 -1695.55
+168.333 -31.5885 -2338.82
+168.847 -34.1874 -1650.52
+171.764 -33.8234 -1339.45
+167.711 -33.0538 -1546.67
+167.707 -31.127 -1291.65
+170.228 -33.8421 -1887.99
+167.971 -32.7144 -2172.67
+168.426 -32.5533 -1770.58
+167.945 -32.5091 -2129.14
+168.154 -32.5437 -2152.25
+170.404 -33.603 -1571.79
+170.554 -33.8368 -1956.16
+170.726 -34.0541 -1889.97
+170.85 -33.8254 -1707.21
+168.584 -34.6292 -1883.4
+171.009 -34.0309 -1410
+167.752 -32.5933 -904.99
+170.701 -33.6061 -1669.4
+171.074 -34.4308 -1751.1
+171.228 -34.2161 -1421.09
+167.561 -31.835 -1781.01
+167.802 -32.3854 -1998.16
+172.463 -30.534 -1653.17
+171.275 -34.8824 -1531.13
+168.565 -34.3475 -1779.77
+172.197 -33.5296 -1600.06
+171.224 -34.6239 -1691.51
+168.07 -31.6347 -2043.51
+172.189 -31.5889 -1746.62
+168.863 -34.4624 -1355.48
+169.741 -34.8423 -1622.92
+172.394 -30.7843 -1624.16
+167.788 -34.4643 -1263.59
+168.255 -34.6974 -1423.59
+167.715 -32.8331 -1432.79
+167.312 -31.7035 -1780.28
+168.041 -32.329 -1677.79
+167.727 -30.936 -1295.4
+167.317 -31.8862 -1524.29
+172.61 -31.8703 -1624.62
+168.719 -34.9097 -1133.87
+169.206 -34.558 -1283.52
+167.834 -32.163 -1946.76
+172.359 -31.969 -1458.53
+168.041 -34.5554 -1355.78
+171.474 -34.7203 -1491.59
+167.544 -31.5786 -2741.67
+172.246 -33.7008 -488.63
+168.289 -34.4598 -1639.36
+172.382 -31.7234 -1280.34
+171.242 -33.983 -801.87
+168.012 -34.3418 -1570.65
+167.376 -33.0749 -1466.74
+168.933 -34.7172 -1501.92
+167.476 -33.5672 -2176.58
+167.315 -33.2394 -1787.43
+172.839 -31.5236 -1251.4
+167.957 -34.1037 -1530.23
+167.971 -30.0523 -1140.53
+172.631 -31.2533 -1007.52
+167.864 -33.8409 -1446.38
+172.882 -30.8927 -1109.85
+167.739 -30.6862 -1284.71
+167.435 -30.2788 -1004.07
+172.614 -31.6291 -1436.22
+167.455 -34.2022 -1313.11
+167.244 -33.4619 -1333.9
+172.746 -30.481 -1109.87
+167.735 -34.2506 -1365.08
+169.485 -34.7709 -1304.92
+172.561 -31.1268 -1234.46
+172.818 -30.2821 -1330.87
+167.604 -32.0728 -1803.47
+167.325 -32.9342 -1940.02
+167.507 -33.3708 -1491.31
+167.405 -32.0304 -1080.8
+167.658 -33.672 -1676.53
+167.723 -30.1545 -1229.63
+172.612 -31.4133 -1143.78
+167.72 -30.4174 -1524.01
+171.468 -33.7729 -1238.02
+167.782 -31.4756 -1178.51
+169.793 -33.2112 -930.52
+167.661 -34.0458 -1401.38
+172.615 -30.9437 -1162.07
+167.78 -31.9559 -807.21
+169.032 -34.9573 -1208.73
+167.156 -33.0679 -1015.47
+167.171 -32.5381 -1310.42
+169.196 -34.7936 -1104.69
+171.975 -34.686 -966.05
+169.322 -34.9758 -1223.54
+170.057 -33.432 -915.31
+167.601 -32.2905 -1532.13
+171.941 -33.9227 -1066.1
+167.185 -32.0386 -888.08
+168.273 -32.3815 -1508.49
+167.54 -33.1631 -825.37
+167.47 -33.7221 -1527.47
+167.403 -34.0063 -991.61
+171.806 -34.9374 -1152.68
+168.262 -34.214 -1137.89
+170.988 -33.6152 -653.51
+167.149 -32.7279 -1230.19
+167.28 -32.804 -1692.53
+167.566 -33.8572 -1657.35
+167.667 -33.4925 -1460.7
+172.674 -30.7144 -1121.87
+172.944 -30.6504 -1163.71
+167.126 -31.8376 -902.45
+168.114 -31.814 -1257.64
+167.216 -33.9473 -887.54
+167.565 -32.5583 -146.28
+167.315 -32.1596 -361.96
+167.188 -32.2117 -941.95
+167.342 -32.3383 -862.77
+168.241 -32.2012 -1065.82
+172.12 -34.6578 -422.6
+167.452 -32.1792 -811.11
+167.111 -33.6322 -893.13
+171.384 -34.0698 -637.48
+167.787 -31.8122 -220.94
+172.181 -34.8653 -640.71
+172.205 -34.7416 -425.28
+167.152 -33.7975 -697.2
+167.52 -32.976 -1149.93
+171.867 -34.0874 -335.39
+167.351 -33.8356 -685.27
+168.056 -32.139 -452.01
+167.754 -31.6734 -799.04
+167.323 -32.6726 -1937.15
+167.15 -32.8843 -942.51
+167.98 -31.9922 -484.47
+172.107 -33.8019 -654.47
+172.49 -33.9275 -481.5
+169.879 -33.3911 -1151.32
+167.92 -31.5919 -275.53
+171.659 -34.3121 -415.51
+172.053 -34.064 -939.95
+172.044 -34.5595 -402.74
+171.49 -34.1887 -543.45
+171.422 -33.9282 -474.74
+167.648 -32.4492 -663.02
+167.303 -33.673 -750.94
+167.915 -31.8638 -465.82
+171.995 -34.2048 -255.22
+171.967 -34.4262 -285.87
+171.727 -33.9817 -222.55
+171.542 -34.0319 -409.45
+172.329 -34.9146 -318.75
+168.188 -32.0131 -628.37
+171.589 -33.8818 -590.15
+172.305 -34.8103 -298.2
+167.461 -32.7926 -1262.94
+172.214 -34.0637 -497.85
+172.239 -34.6432 -354.95
+172.286 -33.8504 -194.33
+172.544 -34.0482 -179.61
+171.822 -34.2332 -354.58
+171.926 -34.3078 -102.27
+167.927 -31.7356 -325.94
+172.316 -34.7141 -252.4
+172.169 -34.5616 -319.11
+172.319 -33.9822 -109.26
+172.123 -34.4672 -243.09
+172.154 -33.9467 -404.8
+167.511 -32.4329 -190.09
+172.341 -34.0918 -260.79
+172.717 -34.0502 -157.26
+167.592 -32.6847 -310.25
+172.119 -34.3716 -247
+171.682 -34.1394 -297.24
+172.445 -34.9334 -193.89
+172.276 -34.5593 -212.74
+172.028 -34.3161 -113.65
+172.441 -34.0454 -223.99
+172.41 -34.8514 -179.03
+172.35 -34.6247 -171.8
+172.398 -34.7684 -158.5
+172.138 -34.2712 -247
+167.401 -32.528 -1261.19
+167.469 -32.6464 -711.55
+172.229 -34.4869 -209.62
+172.369 -34.1915 -206.41
+172.258 -34.2333 -229.22
+172.206 -34.4156 -217.55
+172.252 -34.337 -196.93
+172.438 -34.1295 -173.61
+172.357 -34.2883 -188.14
+172.532 -34.9362 -172.58
+172.351 -34.3594 -164.3
+172.312 -34.4959 -160.02
+172.482 -34.8037 -147.12
+172.504 -34.8743 -163.74
+172.306 -34.4237 -157.94
+172.408 -34.6921 -134.54
+172.618 -34.9729 -147.24
+172.364 -34.5421 -113.24
+172.599 -34.8874 -146.08
+172.458 -34.2591 -136.59
+172.463 -34.1909 -146.83
+172.476 -34.7348 -130.74
+172.399 -34.4057 -134.18
+172.561 -34.826 -141.02
+172.869 -34.2115 -153.15
+172.44 -34.3422 -126.4
+172.924 -34.327 -106.75
+172.547 -34.7651 -122.56
+172.697 -34.9626 -122.64
+172.622 -34.8344 -128.53
+172.681 -34.9135 -127.03
+172.674 -34.8548 -120.2
+172.389 -34.4699 -116.95
+172.502 -34.1003 -139.29
+172.481 -34.6721 -116.15
+172.615 -34.7888 -119.57
+172.432 -34.6364 -114.35
+172.515 -34.1573 -109.77
+172.662 -34.8095 -113.03
+172.542 -34.705 -102.39
+172.525 -34.2173 -102.99
+172.441 -34.4391 -101.03
+172.61 -34.7309 -105.46
+172.536 -34.2666 -97
+172.802 -34.1217 -145.94
+172.468 -34.4027 -97
+172.494 -34.6115 -97.24
+172.745 -34.9799 -107.75
+172.75 -34.9327 -105.74
+172.428 -34.5815 -98.87
+172.455 -34.4738 -89.04
+172.751 -34.8683 -101.23
+172.543 -34.6493 -37.97
+172.682 -34.7585 -96.31
+172.865 -34.2941 -92.96
+172.88 -34.3485 -72.7
+172.72 -34.8109 -99.59
+172.52 -34.3147 -97
+172.644 -34.1564 -97
+172.635 -34.0866 -97
+172.493 -34.5544 -88.94
+172.44 -34.5194 -95.3
+172.571 -34.1223 -97
+172.583 -34.1864 -97
+172.587 -34.2441 -97
+172.71 -34.1339 -97
+172.517 -34.3717 -88.79
+172.585 -34.297 -88.24
+172.764 -34.1994 -93.58
+172.652 -34.2218 -85.96
+172.698 -34.1878 -96.42
+172.673 -34.6912 -79.01
+172.518 -34.4153 -75.97
+172.49 -34.446 -80.31
+172.811 -34.9658 -85.7
+172.802 -34.2581 -83.08
+172.813 -34.905 -84.44
+172.787 -34.8092 -75.26
+172.939 -34.3682 -81.2
+172.711 -34.2273 -84.85
+172.825 -34.8514 -70.29
+172.578 -34.3528 -70.38
+172.731 -34.7141 -67.07
+172.755 -34.7626 -74.39
+172.633 -34.2738 -78.16
+172.535 -34.5785 -50.79
+172.745 -34.2505 -78.3
+172.603 -34.673 -56.79
+172.802 -34.3026 -73.92
+172.512 -34.4967 -63.75
+172.885 -34.9714 -63.01
+172.754 -34.2919 -65.91
+172.695 -34.2757 -70.38
+172.86 -34.9302 -68.07
+172.647 -34.3291 -61.4
+172.821 -34.3398 -62.29
+172.702 -34.6451 -53.87
+172.722 -34.6752 -59.67
+172.565 -34.4054 -57.09
+172.817 -34.7622 -51.07
+172.652 -34.638 -47
+172.877 -34.8852 -55.07
+172.714 -34.3286 -54.9
+172.546 -34.4507 -53.89
+172.85 -34.8041 -49.43
+172.954 -34.97 -46.15
+172.788 -34.7195 -50.62
+172.943 -34.4005 -35.11
+172.555 -34.5411 -28.73
+172.767 -34.3343 -57.98
+172.765 -34.6779 -46.9
+172.912 -34.9279 -48.74
+172.877 -34.84 -46.89
+172.687 -34.3744 -47
+172.839 -34.3824 -34.45
+172.686 -34.6101 -41.45
+172.939 -34.8889 -40.73
+172.645 -34.5874 -47
+172.895 -34.3888 -39.94
+172.961 -34.9255 -39.15
+172.55 -34.6082 -34.96
+172.734 -34.3635 -47
+172.741 -34.6482 -45.97
+172.916 -34.8533 -41.85
+172.735 -34.6059 -34.11
+172.822 -34.68 -32.08
+172.588 -34.4943 -27
+172.617 -34.543 -24.91
+172.841 -34.722 -29.9
+172.784 -34.6376 -31.88
+172.697 -34.5775 -29.65
+172.969 -34.8483 -33.23
+172.628 -34.3968 -41.29
+172.776 -34.3817 -34.5
+172.88 -34.7565 -24.27
+172.92 -34.8069 -32
+172.652 -34.5131 -27
+172.676 -34.5463 -27
+172.597 -34.622 -24
+172.81 -34.4187 -23.53
+172.723 -34.3966 -33.02
+172.584 -34.5795 -16.43
+158.691 -26.8903 -3354.05
+158.979 -26.8214 -3228.24
+158.73 -26.6125 -3328.55
+158.835 -27.1691 -3387.97
+159.07 -26.515 -3218.37
+158.815 -26.2104 -3248.09
+159.55 -28.5729 -3227.74
+159.075 -28.389 -3354.18
+159.221 -28.6133 -3225.34
+158.785 -28.6402 -3320.64
+159.438 -28.8262 -3085.2
+159.07 -28.9464 -2999.15
+159.107 -28.104 -3400.76
+159.872 -28.0602 -3254.9
+159.44 -28.2919 -3150.56
+159.831 -28.4089 -3246.61
+159.817 -27.7394 -3178.48
+159.56 -27.2454 -3135.02
+159.907 -27.4082 -2854.07
+158.831 -28.2896 -3312.78
+158.718 -27.9714 -3150.09
+159.505 -27.5804 -3388.1
+159.118 -27.7578 -3265.99
+159.175 -27.3925 -3478.82
+158.8 -27.5663 -3388.64
+159.278 -27.0105 -2057.02
+159.471 -27.9224 -3225.11
+159.253 -26.7101 -1828.55
+159.829 -28.7335 -3085.78
+158.752 -25.5676 -3116.56
+158.737 -29.7996 -2869.29
+159.653 -28.9858 -2989.43
+158.735 -28.9797 -3110.56
+159.651 -26.9519 -2949.71
+159.206 -26.2611 -3024.58
+158.868 -25.3432 -3004.38
+158.968 -25.802 -2903.58
+159.67 -29.2624 -2787.56
+160.079 -27.8279 -3317.34
+159.378 -29.1017 -2935.93
+159.316 -29.3685 -2782.77
+158.681 -29.5294 -2895.85
+159.025 -29.4328 -1289.61
+158.844 -29.2229 -2529.31
+158.779 -25.1729 -2876.4
+159.831 -29.4849 -2560
+160.283 -27.99 -2352.33
+158.859 -24.9551 -2827.99
+159.524 -29.582 -2909.9
+159.077 -25.1656 -2775.65
+160.101 -28.5418 -2936.64
+159.961 -29.0271 -2666.43
+158.971 -29.6792 -3010.88
+160.091 -27.6252 -3178.65
+158.936 -24.7383 -2747
+158.865 -24.5809 -2713.92
+159.206 -24.8538 -2696.24
+159.127 -24.5695 -2533.37
+160.183 -28.2772 -2633.26
+159.56 -29.8389 -2607.09
+159.856 -27.1125 -2741.87
+159.126 -29.2155 -2080.57
+159.139 -25.4721 -2330.11
+159.818 -29.7157 -2581.66
+159.228 -25.9903 -2905.77
+158.942 -24.3625 -2570.62
+159.425 -26.4581 -2442.48
+160.045 -29.3002 -2593.89
+159.478 -26.1496 -2493.81
+159.22 -24.3652 -2462.35
+159.98 -26.8167 -2265.81
+160.253 -28.7858 -2560.87
+159.773 -29.97 -2363.24
+160.333 -27.7183 -2426.35
+159.358 -25.0759 -1908.06
+158.743 -23.9638 -2284.37
+159.382 -24.4727 -2028.82
+158.914 -24.1326 -2322.89
+160.408 -28.5038 -2284.8
+159.772 -23.9517 -2002.65
+159.088 -23.9502 -2114.07
+159.675 -26.2967 -2543.12
+159.311 -25.7042 -2219.01
+159.765 -26.0571 -2615.96
+160.2 -27.116 -2423.86
+159.754 -26.5614 -2423.27
+160.051 -23.9961 -1997
+160.034 -26.5199 -2006.46
+160.098 -29.5643 -2046.14
+160.318 -26.8458 -2036.54
+160.007 -26.021 -2285.62
+159.208 -24.1627 -2235.89
+160.588 -27.3443 -2173.65
+159.943 -26.2741 -2272.73
+160.563 -28.6922 -2244.28
+160.114 -29.8609 -1916.78
+159.434 -23.9677 -493.66
+160.467 -27.2096 -2057.59
+160.305 -29.1018 -1857.04
+159.612 -24.4112 -2024.65
+160.269 -23.8928 -1997
+160.859 -27.3612 -1864.91
+160.602 -27.5637 -2166.34
+159.833 -24.1401 -1866.92
+160.316 -27.4321 -2348.4
+159.35 -24.6472 -1020.75
+160.767 -28.4906 -1938.84
+160.383 -29.3914 -1770.71
+160.698 -27.1548 -2042.05
+160.305 -26.5813 -1874.77
+160.573 -28.9216 -2082.41
+159.918 -25.7587 -2040.15
+160.893 -27.6534 -1888.73
+160.313 -24.0717 -1985.93
+160.075 -24.2068 -1970.33
+160.607 -27.8517 -2053.21
+160.582 -28.1919 -1946.95
+160.536 -23.921 -1846.16
+160.198 -26.1362 -2240.78
+160.209 -25.8874 -2178
+160.944 -28.2393 -1920.98
+160.347 -24.2907 -1890.37
+160.512 -26.9957 -1973.61
+160.948 -27.9559 -1878.08
+160.853 -23.9558 -1746.31
+161.11 -27.2524 -1673.85
+160.182 -26.3541 -2373.87
+160.224 -25.6248 -1874.36
+161.136 -27.4593 -1748.66
+161.046 -28.4154 -1851.5
+160.394 -26.0292 -2102.88
+160.074 -24.4322 -1790.89
+159.842 -24.3289 -1858.57
+160.601 -24.123 -1755.23
+160.815 -28.7593 -1810.93
+160.433 -26.2747 -2313.87
+160.967 -27.0955 -1870.58
+160.501 -25.802 -1813.88
+160.564 -26.744 -1983.18
+160.009 -25.4846 -1680.61
+161.194 -27.7064 -1704.73
+159.33 -25.2643 -1879.14
+160.621 -26.0608 -1852.05
+161.146 -28.1031 -1816.84
+160.038 -24.6684 -1586.06
+160.379 -29.6632 -1821.66
+160.673 -24.3645 -1702.07
+160.613 -29.1847 -1561.55
+160.485 -25.5057 -1849.58
+161.05 -28.6062 -2052.82
+161.357 -23.9067 -1288.46
+161.274 -27.9294 -1626.09
+159.797 -24.5582 -1751.67
+160.781 -26.9092 -1745.16
+161.203 -28.2748 -1730.05
+160.359 -24.5669 -1674.4
+160.691 -26.27 -1838.15
+160.662 -24.5978 -1707.25
+160.62 -26.4872 -1857.98
+160.811 -25.8781 -1786.77
+160.254 -25.329 -1802.75
+160.722 -25.3707 -1854.39
+161.333 -27.2683 -1739.04
+160.746 -25.6152 -1824.85
+160.684 -24.9521 -1455.64
+160.519 -25.2829 -1800.26
+160.697 -25.1501 -1638.99
+160.533 -24.798 -1662.52
+161.411 -27.4954 -1568.85
+160.846 -26.645 -1757.03
+160.436 -25.0592 -1799.03
+160.447 -29.9006 -1720.91
+161.234 -27.0589 -1574.22
+160.656 -29.3927 -1423.9
+159.832 -25.5593 -1129.38
+160.899 -26.1424 -1724.57
+161.019 -25.6983 -1742.8
+160.899 -25.0126 -1553.21
+160.874 -26.3917 -1750.61
+161.079 -25.95 -1660.54
+160.851 -24.7693 -1593.07
+160.57 -29.5459 -1591.49
+161.263 -28.4701 -1660.16
+159.387 -25.5277 -1476.78
+159.567 -25.8425 -2528.45
+160.925 -25.228 -1544.6
+160.896 -24.1672 -1619.02
+161.132 -24.015 -1510.58
+160.899 -24.5227 -1600.92
+161.083 -28.8407 -1614.11
+161.096 -26.8138 -1682.76
+161.492 -27.0484 -1494.54
+160.632 -29.7354 -1714.67
+160.951 -24.3411 -1588.74
+161.36 -28.116 -1649.6
+161.308 -28.6841 -1581.56
+160.851 -29.0081 -1509.87
+162.296 -23.9276 -1383.69
+161.119 -26.1416 -1679.82
+160.216 -24.8594 -1650.53
+161.475 -27.7488 -1455.97
+161.125 -26.5015 -1631.4
+161.056 -26.2904 -1656.26
+160.964 -25.4533 -1452.57
+161.596 -27.2675 -1379.57
+161.142 -24.8846 -1532.4
+161.394 -26.836 -1605.69
+160.789 -29.5568 -1562.97
+160.147 -25.097 -1601.39
+161.44 -28.31 -1609.84
+160.902 -29.2995 -1540.28
+161.085 -25.1014 -1694
+161.113 -24.64 -1529.98
+160.692 -29.9389 -1563.61
+161.137 -24.4288 -1501.17
+161.297 -26.052 -1595.2
+161.255 -26.2691 -1608.27
+161.312 -26.6409 -1674.81
+161.502 -28.5276 -1564.62
+161.348 -28.9162 -1519.11
+161.045 -29.5481 -1591.81
+160.915 -29.8071 -1546.15
+161.308 -25.7857 -1583.53
+159.986 -24.8436 -154.85
+161.148 -24.2284 -1499.39
+161.154 -25.2887 -1573.08
+161.731 -27.5335 -1485.72
+161.489 -27.9585 -1369.32
+161.597 -28.1258 -1436.34
+161.853 -28.1567 -1555.34
+162.349 -28.0707 -1358.92
+162.11 -28.2224 -1495.48
+162.321 -28.2942 -1486.62
+161.931 -28.4006 -1646.95
+161.745 -27.8825 -1507.1
+161.133 -29.0866 -1649.21
+162.183 -28.4479 -1681.43
+161.683 -28.3528 -1554.36
+161.863 -27.2527 -1438.09
+162.015 -27.6877 -1514.53
+161.266 -29.5383 -1496.48
+161.397 -29.1367 -1484.76
+162.054 -27.9662 -1560.63
+161.563 -28.7582 -1642.24
+161.224 -29.333 -1541.48
+161.754 -28.5905 -1596.44
+162.019 -28.6287 -1465.68
+162.281 -28.6707 -1531.61
+162.282 -27.7955 -1454.82
+161.305 -24.7174 -1459.33
+161.405 -26.4319 -1619.36
+161.646 -26.8285 -1463.4
+161.754 -27.0417 -1393.16
+161.303 -25.093 -1453.81
+162.028 -27.4231 -1331.18
+161.48 -26.1993 -1463.55
+161.541 -26.6212 -1440.96
+162.254 -27.5354 -1477.25
+162.088 -27.2291 -1344.39
+161.455 -29.3089 -1455.93
+161.605 -28.9908 -1409.29
+161.85 -28.8474 -1496.18
+161.333 -24.5338 -1351.13
+162.125 -28.8475 -1535.04
+161.682 -26.3827 -1325.51
+161.599 -23.9245 -1074.9
+161.898 -26.8214 -1367.97
+162.037 -27.028 -1255.39
+159.514 -26.7454 -1163.66
+161.416 -24.8769 -1564.03
+161.405 -29.4447 -1542.03
+161.524 -25.9625 -1512.5
+161.212 -29.7403 -1561.49
+161.719 -26.1244 -1425.46
+161.79 -26.6215 -1372.72
+161.219 -25.5226 -1361.34
+161.628 -29.2054 -1518.01
+162.256 -27.3109 -1376.63
+161.827 -29.0906 -1488.43
+161.57 -25.0898 -1484.6
+161.422 -25.3374 -1332.25
+161.919 -26.2597 -1416.6
+162.012 -29.0072 -1410.87
+162.264 -27.1184 -1430.72
+162.116 -26.8188 -1328.63
+161.622 -29.4247 -1458.77
+161.506 -24.667 -1276.9
+161.475 -29.6338 -1400.86
+162.2 -29.0559 -1427.76
+162.325 -24.0946 -1276.78
+161.907 -26.4541 -1406.76
+162.282 -26.9214 -1410.15
+162.054 -26.6134 -1373.75
+161.65 -24.8395 -1324.18
+161.831 -29.3027 -1423.61
+161.699 -29.5959 -1456.99
+162.029 -29.1891 -1185.79
+162.041 -23.9219 -1112.06
+161.584 -25.7277 -1381.39
+162.146 -26.1726 -1337.06
+161.769 -25.8909 -1412.6
+162.104 -26.3797 -1435.85
+161.958 -26.04 -1407.89
+162.362 -24.2392 -1248.88
+162.293 -26.7071 -1369.08
+161.771 -24.9943 -1326.66
+159.664 -24.2514 -1642.61
+159.475 -24.9314 -819.6
+162.283 -26.494 -1347.71
+162.221 -29.2478 -1333.83
+161.824 -29.4803 -1359.62
+161.438 -25.5678 -1332.58
+162.057 -29.4263 -1230.97
+161.433 -29.9012 -1181.23
+159.983 -25.2582 -1193.95
+162.314 -26.2961 -1319.66
+161.896 -29.6396 -1264.31
+162.002 -25.821 -1305.83
+161.684 -29.7816 -1174.5
+161.364 -24.3242 -1242.75
+161.869 -24.8148 -1198.49
+162.188 -25.9545 -1226.02
+162.335 -25.2311 -1355.87
+161.658 -25.4657 -1259.01
+161.933 -25.4509 -1195.54
+162.219 -25.4672 -1331.21
+162.082 -25.2281 -1359.03
+162.17 -29.7028 -1202.48
+161.797 -25.2186 -1296.4
+162.04 -25.6286 -1106.65
+161.92 -29.8681 -1123.69
+162.355 -29.909 -1185.62
+162.127 -29.9432 -1182.75
+162.227 -25.7294 -1152.89
+162.244 -24.9861 -1167.36
+161.972 -25.0097 -1275.68
+162.281 -24.7532 -1240.14
+162.085 -24.8025 -1221.76
+161.831 -25.6641 -1301.22
+162.279 -24.3995 -1171.52
+161.559 -24.4476 -1101.76
+161.404 -24.1013 -1146.39
+162.182 -24.6002 -1150.11
+162.18 -24.2399 -1154.21
+160.009 -24.9825 -1000.21
+162.126 -24.074 -1161.07
+161.988 -24.6467 -1120.21
+159.974 -25.1121 -845.03
+159.815 -24.7842 -867.97
+159.829 -25.4016 -659.22
+161.812 -23.9775 -997
+162.025 -24.4287 -1080.03
+161.77 -24.5941 -1042.27
+161.64 -24.0727 -1010.34
+159.214 -29.5814 -2460.47
+161.591 -24.2375 -1032.62
+161.975 -24.215 -1054.24
+161.948 -24.0654 -1059.21
+159.526 -25.0532 -194.26
+161.785 -24.3414 -999.93
+159.242 -29.8322 -2540.74
+161.792 -24.1516 -997
+159.442 -24.2664 -1693.86
+159.545 -24.5898 -652.26
+159.511 -25.1829 -228.48
+159.861 -24.9341 -132.25
+159.537 -25.6125 -1260.46
+159.633 -24.848 -186.53
+158.93 -29.8942 -1908.26
+159.401 -25.3948 -1225.87
+159.534 -25.4575 -300.59
+159.709 -25.6539 -1446.49
+159.654 -24.7114 -407.79
+159.631 -24.9778 -40.44
+159.47 -25.295 -1112.15
+159.594 -24.1165 -253.58
+159.478 -24.7653 -399.39
+159.874 -25.0573 -242.29
+159.882 -25.1617 -429.99
+159.802 -25.252 -117.08
+159.527 -25.3555 -525.61
+159.741 -24.9147 -4.82
+159.757 -25.0206 -16.67
+159.569 -25.2792 -198.42
+159.662 -25.3508 -22.75
+159.664 -25.2153 -73.98
+159.771 -25.1341 -85.55
+159.685 -25.505 -309
+159.647 -25.0975 -53.75
+166.279 -28.0275 -3308.25
+165.919 -23.9817 -3497
+166.54 -27.7578 -3289.41
+166.182 -24.4036 -3497
+165.879 -28.0579 -3465.51
+166.207 -26.0967 -3557.63
+166.177 -24.1238 -3082.19
+165.958 -25.9634 -3597.64
+166.502 -26.0228 -3517.32
+165.65 -27.8541 -3531.51
+166.039 -27.6935 -3512.14
+166.624 -28.0499 -3364.76
+165.512 -23.9865 -3497
+166.098 -28.2733 -3484.37
+165.817 -24.324 -3497
+166.058 -26.6891 -3556.15
+165.325 -24.3509 -3497
+165.556 -24.7345 -3634.87
+166.448 -27.3653 -3418.55
+166.2 -25.0948 -3396.96
+166.407 -26.7564 -3521.91
+165.562 -25.0836 -3618.16
+165.533 -27.558 -3661.67
+165.189 -25.0506 -3733.44
+164.976 -24.385 -3497
+165.533 -27.2261 -3559.73
+166.416 -24.5804 -2961.27
+165.617 -26.6463 -3604.7
+166.062 -24.7052 -3596.35
+165.103 -24.6547 -3497
+164.76 -24.5681 -2956.77
+165.921 -27.3124 -3592.51
+165.824 -25.2757 -3493.57
+165.431 -25.4113 -3784.87
+165.776 -26.9801 -3552.94
+166.21 -27.0233 -3558.25
+166.117 -25.4387 -3454.8
+166.618 -26.9911 -3540.74
+166.411 -24.8376 -2985.7
+165.837 -24.9728 -3691.45
+165.902 -26.3078 -3651.15
+165.8 -25.6529 -3622.45
+165.005 -24.064 -3497
+166.239 -25.7656 -3452.45
+165.368 -27.8389 -3378.98
+165.358 -26.9614 -3537.72
+165.447 -25.753 -3627.73
+166.9 -27.8945 -2882.91
+166.906 -27.5474 -2947.42
+166.425 -26.3999 -3446.84
+166.475 -28.3496 -3279.93
+165.009 -26.9638 -3312.65
+165.14 -26.6406 -3332.72
+166.715 -26.1901 -3292.59
+166.903 -28.2354 -3149.18
+166.727 -26.6785 -3318.17
+165.629 -25.9995 -3338.2
+166.59 -25.7535 -3152.33
+165.143 -25.6779 -3554.7
+165.759 -28.3855 -3342.33
+165.078 -27.3183 -3361.97
+166.882 -27.2069 -2904
+166.088 -28.6101 -3148.05
+164.804 -24.8767 -2951.43
+166.797 -28.5465 -2957.76
+164.589 -24.013 -2959.55
+166.496 -28.7177 -3197.77
+165.444 -28.1397 -3298.01
+164.76 -26.8028 -3222.67
+166.501 -25.4314 -3222.68
+166.212 -28.9574 -3149.66
+165.42 -26.3138 -3555.45
+165.893 -28.9072 -3185.08
+165.156 -27.6745 -3370.63
+165.057 -27.9683 -3417.62
+165.253 -25.9962 -3092.15
+164.698 -24.2837 -2867.72
+164.519 -29.2722 -3661.56
+164.934 -29.3697 -3588.96
+166.968 -28.9697 -3077.79
+164.237 -29.4888 -3415.15
+166.292 -29.2205 -3167.39
+166.552 -29.3645 -3266.2
+164.78 -29.0048 -3353.72
+166.606 -29.0457 -3245.73
+164.696 -27.1015 -3267.03
+164.431 -28.9583 -3540.51
+164.907 -29.7914 -3267.23
+164.76 -27.7167 -3314.03
+166.78 -28.7974 -2913.67
+165.105 -29.0474 -3701.01
+164.408 -27.6364 -3126.36
+165.89 -29.2379 -3224.81
+164.565 -29.6297 -3367.32
+166.888 -29.2577 -3264.72
+164.238 -29.8135 -3135.6
+165.291 -29.6256 -3171.81
+165.225 -29.9934 -2904.25
+164.483 -26.9205 -2857.7
+164.356 -27.8972 -3256.64
+164.657 -28.0831 -3419.54
+165.061 -25.3883 -3450.27
+165.403 -29.2353 -3519.97
+164.132 -28.9248 -2752.03
+164.268 -27.4657 -2928.92
+164.285 -28.2055 -3250.96
+166.52 -29.6553 -3119.04
+166.216 -29.4865 -3123.52
+165.04 -28.7473 -3523.8
+164.58 -27.4075 -3251.64
+165.624 -29.5066 -2898.61
+165.37 -28.5424 -2724.6
+166.798 -29.5164 -3096.62
+166.52 -29.917 -3056.21
+164.966 -28.3619 -3400.67
+164.512 -28.3991 -3190.38
+164.193 -29.1768 -3136.99
+164.308 -27.1791 -2868.13
+164.664 -28.6883 -3300.24
+166.613 -25.0676 -2945.58
+164.746 -26.5002 -3214.21
+164.797 -25.2141 -3231.68
+166.882 -29.8068 -2952.71
+165.367 -28.8801 -2893.23
+164.078 -27.6951 -2524.12
+166.455 -24.2978 -2686.34
+163.961 -29.657 -2516.51
+167.162 -29.4831 -2809.69
+165.013 -26.2604 -3380.13
+164.259 -24.0216 -2859.76
+165.674 -28.7203 -3272.87
+167.031 -28.7074 -2552.04
+164.46 -24.4705 -2992.86
+164.471 -26.4139 -3004.42
+164.433 -24.219 -2946.71
+166.831 -26.4006 -2949.04
+164.527 -24.7325 -2709.86
+166.826 -25.9367 -2179.54
+165.905 -29.5858 -2649.7
+164.657 -26.1985 -3037.42
+166.153 -29.8402 -3024.23
+166.511 -24.0036 -2652.91
+165.654 -29.8574 -2646.87
+164.181 -24.6972 -2626.37
+166.797 -23.9356 -2627.79
+167.095 -24.0062 -1224.29
+164.473 -26.6699 -2856.71
+166.726 -24.7406 -2807.78
+164.18 -24.3229 -2880.65
+164.896 -25.9366 -2877.43
+166.676 -24.4603 -2696.04
+164.269 -28.6499 -3262.97
+165.638 -28.9956 -3169.93
+164.448 -25.0402 -2827.77
+167.293 -29.7907 -2360.79
+166.951 -24.9942 -2563.64
+163.988 -28.0421 -2296.67
+163.934 -24.104 -2774.79
+164.056 -25.0792 -2567.25
+167.007 -26.8946 -2420.15
+164.008 -27.3944 -2314.53
+166.866 -25.3038 -2790.02
+163.811 -24.4594 -2635.8
+163.797 -24.8509 -2619.34
+164.285 -26.1783 -2532.84
+163.642 -24.1938 -2717.44
+164.544 -25.8952 -2832.22
+164.531 -25.3633 -3060.57
+164.231 -25.3609 -2505.42
+163.518 -24.6892 -2485.43
+167.219 -29.1457 -2393.02
+163.945 -29.3599 -2333.08
+163.667 -23.9342 -2655.45
+164.769 -25.5821 -2951.31
+164.215 -26.5153 -2458.1
+167.038 -24.752 -2754.33
+163.713 -25.1714 -2404.13
+163.97 -26.3392 -2168.2
+164.251 -25.879 -2477.82
+163.912 -29.0705 -2007.94
+167.26 -28.8638 -2033.71
+163.422 -24.389 -2333.37
+163.91 -25.3887 -2273.93
+166.798 -24.1993 -2396.87
+164.399 -25.6237 -2862.33
+166.983 -24.4834 -2430.1
+163.376 -24.094 -2497
+167.042 -26.592 -1979.31
+164.039 -25.6706 -2289.35
+164.176 -26.8491 -2280.84
+163.282 -24.6133 -2179.86
+164.042 -28.4065 -2426.79
+167.068 -28.4758 -2352.11
+163.183 -24.2569 -2240.29
+163.031 -24.0399 -2325.76
+163.95 -27.1081 -1934.13
+167.152 -28.0421 -2451.66
+166.97 -26.1811 -2474
+163.481 -25.0018 -2131.96
+167.23 -27.7588 -2256.59
+163.618 -25.4406 -2038.7
+167.374 -23.9992 -1001.35
+166.836 -25.6183 -2505.78
+163.887 -28.7571 -1885.68
+163.942 -26.0266 -2023.88
+163.934 -26.627 -1924.01
+163.261 -24.8417 -1807.94
+167.19 -25.2033 -1839.71
+163.959 -29.9008 -2138.72
+163.767 -25.599 -2059.32
+163.72 -26.4632 -1746.52
+162.716 -23.9711 -1850.19
+163.676 -29.2445 -1675.38
+163.133 -24.4696 -1743.21
+163.423 -25.2754 -1867.63
+163.691 -29.5222 -1574.74
+167.107 -25.5079 -2364.4
+162.945 -24.3259 -1746.31
+167.221 -24.9127 -1520.66
+163.747 -26.245 -1819.09
+167.208 -27.5162 -2103.16
+162.735 -24.2 -1643.57
+163.806 -27.8229 -1844.64
+163.071 -24.6955 -1699.3
+163.88 -26.8684 -1794.17
+163.709 -28.2604 -1808.99
+162.486 -23.9727 -1562.2
+167.283 -28.5947 -1547.25
+163.771 -27.5944 -1702.61
+163.645 -28.9753 -1611.62
+163.723 -25.8174 -1936.66
+167.326 -26.9571 -1204.81
+163.678 -29.8206 -1710.72
+167.14 -27.1196 -1062.61
+163.675 -28.5307 -1841.53
+163.533 -25.6667 -1839.18
+163.645 -26.7264 -1642.82
+167.089 -24.2458 -1678.36
+163.593 -28.7516 -1619.14
+167.264 -24.3865 -1422.7
+163.445 -29.3999 -1463.39
+163.679 -27.3157 -1581.4
+163.426 -29.1482 -1576.63
+163.153 -28.8038 -1590.43
+163.173 -25.1236 -1399.88
+163.674 -27.0121 -1609.71
+162.892 -24.5615 -1497.53
+163.012 -24.9183 -1320.63
+163.445 -29.6499 -1424.28
+163.477 -25.8621 -1677.56
+163.396 -28.8958 -1607.11
+162.52 -24.134 -1492.43
+163.402 -29.8575 -1421.47
+163.345 -25.5138 -1534.58
+163.486 -28.3931 -1508.79
+162.925 -28.6944 -1653.38
+167.079 -26.0014 -1594.58
+163.578 -26.0685 -1713.55
+163.183 -29.0694 -1438.49
+167.136 -27.3319 -1158.23
+162.695 -24.4357 -1469.31
+163.572 -27.7762 -1525.82
+167.077 -25.7804 -1565.63
+167.27 -28.3005 -1210.86
+163.643 -28.0068 -1630.02
+167.256 -26.7159 -1946.49
+163.123 -28.5847 -1421.81
+167.279 -24.6395 -1305.09
+163.512 -26.5277 -1481.49
+162.503 -24.3283 -1377.93
+163.222 -29.3097 -1430.13
+162.845 -24.777 -1282.2
+163.381 -28.6153 -1320.78
+163.237 -29.5318 -1289.94
+163.426 -26.9163 -1543.65
+162.904 -28.9807 -1308.14
+163.245 -25.7606 -1288.02
+162.738 -28.791 -1337.53
+162.499 -28.2564 -1483.57
+162.689 -28.3459 -1529.47
+162.712 -28.5823 -1509.59
+162.462 -28.4735 -1558.27
+162.853 -28.2409 -1384.36
+163.453 -27.1616 -1522.67
+162.549 -27.8664 -1429.67
+162.94 -28.44 -1480.64
+163.513 -27.5469 -1490.1
+167.361 -25.4256 -1513.26
+162.533 -28.7314 -1333
+163.307 -25.9973 -1264
+163.186 -25.362 -1245.23
+162.663 -28.1036 -1513.34
+163.209 -29.7561 -1247.51
+162.664 -24.6656 -1307.49
+163.528 -26.3274 -1557.97
+162.919 -25.1134 -1054.95
+162.493 -27.6267 -1412.97
+162.614 -28.9664 -1385.32
+162.991 -29.2534 -1280.56
+167.308 -24.1813 -1239.71
+162.762 -27.9038 -1481.68
+162.779 -24.9814 -1171.77
+163.214 -29.9876 -1338.47
+163.433 -27.3653 -1396.72
+167.319 -25.6826 -1464.38
+167.109 -26.3618 -795.59
+162.467 -27.3865 -1393.23
+162.437 -24.5691 -1217.21
+167.231 -26.1665 -1378.7
+162.943 -28.0413 -1367.2
+163.327 -26.2133 -1288.86
+163.356 -26.6746 -1238.77
+162.723 -27.6995 -1444.14
+163.066 -29.4414 -1259.43
+162.428 -27.2075 -1418.19
+162.361 -28.9021 -1315.27
+163.069 -25.5557 -1126.96
+163.384 -27.951 -1468.43
+163.336 -27.7225 -1367.52
+167.415 -25.2381 -1438.82
+162.925 -25.3364 -1121.77
+162.478 -27.0386 -1404.09
+163.275 -27.0684 -1235.67
+163.228 -28.3715 -1428.69
+163.075 -25.9608 -1316.11
+162.412 -29.1404 -1392.42
+162.688 -29.2488 -1111.37
+162.529 -26.8066 -1362.58
+162.707 -27.4553 -1516.54
+162.652 -24.8545 -1298.93
+163.015 -29.6272 -1217.05
+162.482 -26.5744 -1399.17
+163.438 -28.1839 -1561.09
+162.668 -27.2013 -1414.57
+163.29 -27.5073 -1346.66
+162.942 -29.8826 -1205.33
+167.41 -25.0548 -1295.56
+163.238 -27.2836 -1247.23
+162.448 -26.3999 -1401.71
+162.862 -29.461 -1262.03
+162.386 -29.4284 -1259.98
+162.718 -25.1885 -1153.26
+162.71 -26.9595 -1365.12
+162.935 -27.7885 -1463.95
+163.319 -26.4383 -1155.44
+162.523 -26.2431 -1238.01
+162.787 -26.2254 -1407.25
+162.788 -25.5801 -1232.21
+162.372 -26.0926 -1297.27
+162.948 -25.775 -1312.39
+162.604 -26.0384 -1276.21
+162.844 -25.9886 -1323.31
+162.634 -26.4203 -1277.73
+162.697 -26.6228 -1290.62
+162.748 -26.7885 -1333.31
+162.763 -29.6766 -1150.78
+162.638 -29.5005 -1190.25
+162.63 -29.8918 -1269.31
+162.49 -29.6875 -1220.22
+163.153 -26.1221 -1248.31
+162.467 -24.8115 -1126
+162.916 -27.0519 -1349.5
+162.987 -26.1219 -1242.91
+163.106 -27.1145 -1300.27
+162.528 -25.0446 -1210.36
+162.885 -26.8717 -1328.11
+163.124 -26.8706 -1284.61
+162.925 -27.56 -1316.14
+162.423 -25.8711 -1223.36
+163.105 -27.4651 -1299.95
+163.077 -26.3124 -1145.15
+163.108 -26.5781 -1139.91
+162.869 -26.4736 -1294.56
+162.905 -26.6992 -1302.16
+162.442 -25.3905 -1303.26
+163.191 -28.1155 -1323.38
+162.646 -25.3932 -1299
+163.031 -28.2418 -1284.5
+163.147 -27.8817 -1334.33
+162.675 -25.8098 -1283.62
+162.483 -25.6093 -1191.52
+162.534 -25.2496 -1176.1
+163.12 -27.656 -1335.54
+162.959 -27.3024 -1364.72
+167.283 -25.9308 -1115.16
+167.268 -26.4951 -976.78
+167.335 -27.2104 -865.06
+167.4 -26.2446 -882.48
+167.318 -27.3925 -1343.81
+167.291 -26.3311 -903.81
+168.801 -29.9126 -3028.07
+172.39 -24.9963 -4287.13
+172.278 -24.6401 -4014.33
+172.294 -24.1374 -4103.33
+172.468 -26.3683 -3760.87
+172.435 -26.0248 -3750.38
+171.907 -24.346 -3983.41
+171.923 -24.0059 -3997
+170.719 -24.5598 -3893.8
+170.957 -24.8378 -4047.67
+170.858 -25.1741 -4114.37
+170.538 -24.2834 -3835.53
+171.352 -24.8071 -3916.56
+171.179 -25.0785 -3837.88
+170.185 -24.2721 -3628.86
+171.172 -25.4 -3872.11
+171.501 -25.578 -4100.44
+169.707 -27.6716 -3835.11
+170.45 -26.7232 -3873.43
+171.553 -25.1865 -3989.04
+171.922 -25.1493 -3948.53
+172.119 -24.9623 -4042.14
+170.519 -24.9236 -4015.23
+170.72 -26.969 -3820.12
+170.764 -25.5495 -3650.86
+171.903 -25.5257 -3835.31
+169.781 -27.9375 -3319.85
+171.593 -24.068 -3997
+171.162 -24.121 -3997
+170.848 -24.2966 -2549.75
+170.391 -24.0158 -3882.42
+171.176 -25.8337 -3749.1
+170.748 -26.5267 -3899.76
+171.136 -26.7673 -3555.18
+171.684 -25.9637 -3737.19
+171.488 -24.4402 -3881.76
+171.096 -24.5083 -3648.19
+170.329 -26.9556 -3854
+169.339 -27.5483 -3337.61
+170.125 -26.7242 -3799.25
+170.327 -26.4402 -3756.71
+170.34 -24.5614 -3558.69
+169.654 -27.3238 -3862.56
+170.959 -26.1829 -3398.48
+170.545 -25.2738 -2547.33
+172.341 -26.7592 -3556.93
+170.017 -27.4699 -3797.34
+171.344 -26.2367 -3724.11
+171.125 -26.4597 -3712.78
+170.818 -27.3585 -2689.73
+169.614 -27.0106 -3557.35
+169.762 -26.7419 -3700.43
+170.561 -26.1607 -3078
+172.089 -25.896 -3660.44
+172.079 -26.2945 -3987.05
+171.225 -27.1875 -3334.2
+170.775 -25.9024 -2663.79
+170.756 -24.0273 -3570.2
+171.445 -26.5641 -3873.96
+171.555 -26.8964 -3631.09
+171.947 -26.9544 -3598.93
+169.136 -29.9351 -2380.23
+169.99 -24.5112 -2256
+168.58 -27.6424 -3325.7
+169.014 -27.7892 -3252.92
+168.27 -27.3675 -3341.36
+171.842 -26.6469 -3209.47
+168.347 -27.9237 -3170.41
+171.745 -27.2319 -3016.71
+168.159 -27.6876 -3249.86
+168.69 -28.0678 -3062.01
+168.3 -28.2045 -3343.86
+169.985 -27.0748 -2369.64
+170.398 -27.2868 -3314.54
+169.397 -26.765 -3322.61
+170.154 -25.5577 -2819.72
+169.983 -24.0194 -3262.52
+170.148 -26.1159 -3429.65
+168.358 -27.0316 -3244.4
+171.818 -24.7906 -3995.69
+168.628 -27.2533 -3178.09
+169.931 -26.4193 -3223.9
+167.933 -27.446 -2824.49
+171.941 -27.5139 -3065.23
+170.025 -27.7918 -4010.18
+167.999 -27.9982 -2599.73
+169.434 -27.9399 -3205.07
+169.688 -28.1581 -2906.09
+170.092 -24.8182 -1879.03
+169.092 -28.1035 -3235.89
+168.956 -27.4078 -3112.46
+171.68 -26.3463 -3404.53
+168.549 -28.412 -3175.75
+168.403 -29.9108 -2850.85
+168.623 -29.6671 -1940.51
+170.406 -25.4816 -1792.99
+168.919 -28.3735 -3248.08
+168.688 -26.9168 -2635.13
+171.52 -27.9638 -3188.68
+169.359 -28.3445 -2849.33
+171.537 -28.3332 -3103.65
+170.546 -29.1819 -2967.37
+168.734 -28.6189 -3161.73
+171.515 -27.5778 -3039.69
+171.042 -28.6143 -2911.44
+171.195 -28.4327 -3118.8
+171.948 -28.8178 -3397.52
+171.81 -28.1225 -3527.54
+171.879 -27.8316 -3251.64
+171.048 -28.8405 -3014.38
+171.189 -28.1433 -3420.53
+171.355 -28.71 -2882.99
+168.988 -29.0423 -3208.86
+171.927 -28.38 -3328.94
+168.701 -28.884 -2897.28
+171.174 -27.8115 -2932.76
+168.216 -28.4994 -3047.13
+170.425 -29.9577 -2914.21
+168.178 -26.7827 -2881.51
+171.746 -28.6406 -3443.47
+167.954 -27.0891 -2847.39
+169.27 -27.1476 -2859.82
+170.82 -29.0274 -2987.52
+169.066 -28.7041 -3230.27
+172.239 -27.2465 -3134.28
+171.118 -27.5149 -2890.2
+168.405 -28.7261 -2941.51
+168.456 -26.7617 -2667.78
+169.969 -25.797 -2594.28
+170.594 -27.5537 -2562.25
+168.684 -29.1679 -2847.96
+171.236 -29.1041 -2529.65
+172.028 -28.6162 -2716.48
+170.426 -29.4303 -3107.21
+170.763 -28.7306 -3098.34
+170.457 -28.929 -2649.26
+171.978 -29.8918 -2290.91
+170.321 -27.6411 -2942.34
+170.673 -29.6982 -2483.42
+170.258 -29.6847 -2793.3
+170.286 -27.9095 -2938.25
+169.34 -25.9668 -3019.04
+169.136 -26.1522 -2955.61
+170.031 -28.1154 -2992.38
+170.109 -29.4671 -3269.28
+169.803 -28.4413 -2843.68
+169.144 -26.4504 -2478.53
+169.697 -26.0999 -2915.09
+169.02 -26.8208 -2571.34
+169.37 -26.2194 -3045.13
+169.601 -25.7572 -2947.24
+169.866 -29.3687 -2987.56
+167.831 -27.7227 -1969.32
+169.87 -29.6703 -2497.4
+168.919 -27.1045 -2587.44
+168.659 -26.0214 -2900.66
+170.849 -27.9952 -2883.69
+172.046 -29.1012 -2739.16
+169.548 -26.4412 -2797.16
+172.282 -28.7735 -2723.85
+168.715 -26.5618 -3096.92
+170.157 -29.1836 -3033.73
+171.663 -28.9586 -2640.46
+170.148 -28.3815 -3100.18
+169.502 -28.7094 -2842.89
+168.855 -26.2231 -2582.15
+170.859 -29.3699 -2672.17
+170.4 -28.5824 -2670.29
+172.237 -28.4572 -2757.41
+170.853 -28.379 -2690.85
+168.937 -29.2982 -2976
+170.457 -28.1693 -2758
+172.167 -28.1172 -2555.28
+170.409 -25.7958 -2272.21
+168.382 -29.0442 -2583.53
+170.048 -28.5991 -2891.63
+170.092 -28.8483 -3275.95
+170.097 -29.89 -2828.95
+169.826 -28.732 -2916.45
+172.307 -27.7121 -2785.9
+171.831 -29.6409 -2679.19
+172.013 -29.4144 -2666.25
+169.298 -28.9558 -2594.69
+169.276 -25.6785 -2762.3
+172.456 -29.0647 -2789.97
+168.696 -29.4236 -2107.61
+168.346 -26.5224 -2555.16
+172.322 -29.3377 -2924.9
+169.455 -29.8113 -2463.69
+169.247 -29.2378 -2590.98
+169.821 -25.4935 -2428.89
+170.56 -27.8218 -2741.32
+171.527 -29.6248 -2075.33
+170.15 -25.2242 -2331.64
+167.954 -28.3313 -1865.78
+169.686 -29.062 -2644.03
+170.746 -29.945 -2229.64
+169.514 -25.53 -2215.42
+171.65 -29.3341 -2620.28
+169.887 -24.2788 -1949.96
+168.601 -25.728 -1999.95
+170.852 -27.6741 -2571.52
+172.216 -29.6579 -2416.94
+168.251 -25.2998 -1870.89
+168.386 -25.4796 -1977.12
+168.081 -25.481 -2425.49
+168.045 -26.5266 -2340.26
+169.524 -29.4626 -2205.82
+169.058 -29.5937 -2216.1
+171.011 -29.6369 -2440.08
+168.52 -26.2656 -2295.73
+170.98 -29.8623 -2256.25
+169.774 -25.2369 -2528.19
+169.674 -23.9242 -2201.14
+168.216 -25.7385 -1539.88
+171.262 -29.48 -2355.37
+169.582 -25.3584 -2221.27
+168.279 -25.1161 -2167.5
+168.971 -25.9012 -2665.27
+169.29 -25.3785 -2076.85
+167.893 -26.7613 -2024.67
+167.5 -29.5717 -2185.37
+171.613 -29.9006 -2226.35
+167.511 -29.2878 -2289.15
+169.492 -24.6021 -2247
+168.798 -24.8289 -2043.75
+169.684 -24.4343 -2247
+168.362 -26.002 -1933.89
+168.997 -25.3031 -1900.08
+169.751 -24.702 -2337.39
+169.437 -24.8555 -2140.81
+168.191 -26.2679 -2293.32
+169.512 -25.1528 -2077.3
+168.948 -24.6686 -2066.61
+169.218 -24.6277 -2151.54
+169.794 -24.9942 -2358.8
+168.023 -26.0092 -2220.97
+169.368 -23.9444 -2104.01
+167.654 -27.5236 -1421.24
+169.366 -24.3991 -2131.32
+169.069 -24.8603 -2043.04
+172.248 -29.922 -2209.48
+167.607 -29.7831 -2117.33
+168.66 -24.6113 -2093.39
+168.487 -25.2221 -1870.14
+168.021 -25.2001 -1948.84
+167.493 -29.0076 -1927.08
+169.594 -24.1572 -1997
+167.857 -26.2983 -1840.79
+168.968 -25.563 -1814.01
+167.842 -25.7311 -1967.71
+168.822 -25.0904 -1686.8
+168.995 -24.4146 -1997
+169.192 -25.1007 -2092.36
+169.035 -23.945 -1997
+169.208 -24.168 -1997
+167.554 -23.9243 -1160.67
+168.887 -24.1476 -1997
+168.621 -24.0815 -1997
+168.154 -24.9065 -2346.72
+168.502 -24.9319 -1869.1
+168.648 -24.3157 -1997
+168.079 -24.4261 -1997
+168.381 -24.1904 -1975.79
+168.354 -24.7047 -1997
+168.342 -24.4485 -1830.92
+167.813 -26.5439 -1563.4
+168.388 -23.976 -1755.44
+168.159 -24.2713 -1990.09
+167.802 -25.4192 -1574.42
+167.726 -29.6205 -1228.69
+168.708 -25.3983 -2046.92
+168.122 -28.7168 -1213.95
+168.461 -29.5079 -1222.74
+168.412 -29.3143 -1420.5
+167.536 -28.739 -1390.52
+167.721 -28.1488 -1266.86
+168.124 -24.6312 -1608.78
+168.192 -23.8828 -1776.56
+171.276 -29.7685 -2198.16
+167.695 -29.4594 -1207.39
+167.711 -26.0335 -1568.34
+167.996 -28.5756 -1026.88
+167.891 -24.2583 -1636.56
+167.975 -23.8898 -1661.2
+168.111 -24.0622 -1657.23
+167.861 -24.5403 -1568.39
+167.718 -27.3028 -1360.84
+167.734 -25.1873 -1393.16
+167.528 -25.8418 -1525.31
+167.862 -24.9694 -1573.28
+167.444 -28.0237 -1399.65
+167.798 -24.0038 -1507.92
+167.568 -25.5764 -1569.14
+167.943 -24.765 -1492.6
+167.64 -24.5613 -1228.88
+167.632 -26.4578 -1149.76
+167.546 -27.7522 -1497.7
+167.695 -28.3521 -1317.34
+167.514 -28.4738 -1338.86
+167.774 -29.9348 -1025.27
+167.727 -29.0902 -839.56
+167.584 -26.249 -1218.07
+167.569 -25.3391 -1344.87
+167.641 -26.7061 -1100.59
+168.147 -29.9497 -1387.23
+167.704 -24.7571 -1247
+167.715 -26.9106 -1052.91
+167.703 -27.9293 -1481.19
+167.549 -25.164 -1193.56
+167.649 -24.3833 -1259.23
+168.176 -28.9058 -1286.46
+167.53 -28.258 -1047.55
+167.619 -25.0006 -1094.19
+168.318 -29.6541 -1259.21
+167.771 -28.5705 -986.17
+168.285 -29.4749 -906.56
+167.51 -24.6532 -997
+167.459 -24.8324 -1367.96
+167.536 -26.8902 -777.74
+167.677 -28.9057 -580.31
+167.453 -24.3133 -1038.81
+167.575 -24.1439 -1054.16
+167.409 -27.5487 -1424.94
+167.445 -26.7682 -1063.38
+167.583 -27.1013 -870.28
+167.466 -24.4869 -997
+167.449 -26.5883 -1081.12
+168.131 -29.0773 -271.12
+167.764 -29.2916 -627.75
+167.457 -26.0823 -1118.67
+167.498 -27.3488 -1017.07
+167.893 -29.6173 -278.79
+167.755 -28.7787 -207.05
+167.991 -29.8655 -729.53
+167.438 -26.3939 -889.33
+168.166 -29.7923 -987.31
+167.837 -29.757 -651.62
+168.211 -29.2209 -501.33
+168.011 -29.7096 -491.21
+168.221 -29.3585 -750
+167.934 -29.31 -59.58
+167.99 -29.0985 -69.22
+168.084 -29.3297 -256.68
+167.889 -29.1736 -60.14
+168.131 -29.4545 -507.99
+168.011 -28.9882 -42.02
+167.99 -29.4353 -56.2
+167.896 -29.0548 -31.32
+168.143 -29.6579 -251.66
+168.037 -29.2013 -64.86
+167.92 -28.7385 -171.19
+167.853 -29.4269 -80.46
+168.18 -29.5616 -544.86
+168.038 -29.5679 -245.69
+167.817 -29.5281 -210.74
+167.92 -29.5164 -47.6
+167.861 -28.92 -247
+168.017 -28.8556 -57.87
+175.385 -27.1448 -4650.15
+175.426 -26.8211 -4631.06
+175.789 -26.9763 -4578.13
+172.748 -25.7451 -4306.6
+175.199 -26.4575 -4596
+175.316 -27.4654 -4227.09
+175.736 -26.6052 -4508.79
+175.842 -27.4389 -4476.09
+175.323 -26.0628 -4489.28
+175.781 -26.1792 -4545.43
+176.073 -26.7777 -4400.11
+175.113 -24.3037 -4497
+176.176 -25.4257 -4539.83
+176.167 -28.1409 -4389.81
+174.468 -24.992 -4535.37
+176.345 -24.8391 -4375.65
+175.501 -24.3455 -4497
+175.904 -24.6076 -4536.81
+176.427 -24.5215 -4482.63
+174.05 -24.9291 -4547.88
+175.555 -25.0207 -4587.43
+176.052 -25.0858 -4525.92
+175.005 -25.0577 -4627.9
+174.943 -26.0729 -4519.92
+174.712 -26.3351 -4559.58
+174.517 -26.0448 -4599.75
+174.136 -25.988 -4562.79
+176.339 -27.8235 -4312.47
+175.862 -27.9399 -4583.76
+175.335 -25.3081 -4601.42
+176.558 -25.2067 -4477.16
+174.672 -26.6588 -4400.78
+175.729 -25.428 -4448.59
+175.308 -24.6535 -4659.58
+174.765 -24.5987 -4292.36
+174.275 -24.6293 -4497
+174.442 -24.3608 -4391.06
+173.916 -24.6411 -4344.96
+175.554 -25.8015 -4540.56
+176.04 -25.7612 -4527.47
+174.33 -25.6922 -4574.24
+174.762 -25.7457 -4602.18
+175.162 -25.7862 -4610.51
+176.171 -26.4783 -4431.72
+174.168 -25.308 -4512.5
+174.628 -25.3784 -4593.68
+175.354 -25.559 -4667.68
+176.169 -24.2527 -4497
+174.738 -24.2556 -4489.52
+176.334 -24.0064 -4497
+175.402 -24.041 -4497
+174.948 -23.9747 -4497
+176.382 -27.403 -4219.23
+176.215 -27.0766 -4369.35
+172.999 -25.4802 -4387.39
+173.716 -24.8402 -4245.7
+175.442 -27.7809 -4341.44
+173.019 -25.1424 -4230.37
+173.823 -25.6512 -4374.2
+176.504 -25.6469 -4519.39
+176.442 -26.7606 -4435.09
+173.74 -25.1856 -4455.34
+176.42 -26.0909 -4464.49
+176.506 -24.2488 -4462.03
+175.895 -28.3254 -4223.48
+176.764 -24.7936 -4540.73
+175.036 -26.9077 -4466.89
+176.851 -25.8763 -4412.07
+176.576 -26.4564 -4348.63
+174.269 -26.3622 -4431.53
+175.033 -25.4749 -4621.02
+174.009 -24.3229 -4267.72
+176.482 -28.1826 -4279.47
+173.781 -26.1338 -4431.39
+176.957 -25.5217 -4418.86
+176.756 -24.0575 -4380.94
+174.423 -24.0402 -4337.91
+176.835 -24.4104 -4349.27
+173.353 -24.9432 -4492.18
+176.972 -26.2649 -4368.21
+176.715 -27.1184 -4284.89
+177.336 -25.8698 -4216.42
+173.53 -24.5371 -4264.69
+173.352 -25.38 -4615.95
+176.862 -26.6954 -4344.15
+176.297 -28.4397 -4335.44
+177.406 -26.2793 -4279.7
+177.283 -26.6268 -4265.63
+173.829 -26.5635 -4139.65
+177.352 -25.438 -4378.86
+172.848 -26.2204 -4296.55
+173.268 -25.8579 -4141.52
+173.352 -26.3702 -4292.26
+176.793 -27.5884 -4110.21
+177.121 -26.9632 -4239.85
+177.303 -24.6787 -4354.38
+173.081 -24.6589 -4167.26
+177.232 -24.2147 -4152.44
+177.069 -29.8464 -4264.4
+174.24 -26.7882 -4282.61
+174.872 -28.7599 -4047.36
+175.995 -28.713 -4147.65
+175.118 -28.3959 -3729.44
+175.598 -29.0325 -4228.37
+175.239 -28.7644 -4186
+175.045 -29.1276 -4179.31
+173.882 -26.9005 -3653.53
+176.629 -29.8528 -4250.98
+177.22 -29.6059 -4164.4
+173.544 -24.1304 -4221.83
+173.941 -23.9518 -4247
+173.15 -23.9494 -4247
+177.591 -24.0291 -4215.41
+174.662 -29.3171 -4191.95
+172.751 -24.0512 -4147.1
+172.732 -24.8576 -4158.74
+172.705 -24.432 -4094.63
+175.873 -29.4887 -4271.64
+173.023 -26.612 -3471.28
+176.157 -29.8816 -4267.75
+172.633 -25.2989 -4211.79
+177.097 -25.1265 -4327.77
+175.127 -29.8677 -3840.47
+174.683 -29.0305 -4112.01
+172.681 -26.5525 -4234.9
+174.959 -27.2909 -4073.21
+177.203 -28.4467 -4055.82
+175.557 -28.5639 -4195.64
+176.143 -29.1191 -4227.99
+174.159 -27.1432 -3880.39
+175.366 -29.4984 -4309.88
+175.167 -28.0185 -4102.45
+176.853 -29.4886 -4281.74
+174.916 -29.5431 -4148.21
+177.177 -27.3391 -4159.53
+176.511 -28.8228 -3880.75
+176.89 -28.06 -4198.17
+176.73 -28.4535 -4183.91
+177.395 -29.8066 -3958.83
+177.257 -29.3311 -4046.46
+176.556 -29.208 -4260.14
+173.124 -24.2895 -4085.3
+174.589 -29.5956 -4134.89
+176.367 -29.5052 -4333.78
+175.505 -28.1594 -2656.12
+174.963 -27.7038 -4056.71
+175.633 -29.9306 -4217.85
+172.757 -26.7995 -3620.45
+177.279 -29.0322 -3822.9
+177.427 -28.1409 -3999.75
+174.595 -27.0431 -4186.2
+176.908 -29.1043 -3998.88
+174.387 -29.4622 -3910.02
+173.453 -26.8261 -3276.3
+177.271 -27.7548 -4110.28
+177.014 -28.7667 -4074.98
+177.476 -28.7775 -4071.95
+174.816 -28.0942 -4114.15
+174.712 -29.8651 -3985.47
+174.504 -27.4697 -3825.7
+174.579 -27.8462 -3835.21
+172.7 -27.0985 -3394.04
+173.355 -27.1782 -3797.37
+174.652 -28.4608 -3551.08
+173.044 -27.3413 -3729.39
+173.723 -27.1865 -3988.3
+174.372 -29.1673 -3614.23
+174.302 -29.8064 -3707.95
+174.41 -28.1603 -3534.63
+173.058 -26.9695 -3550.81
+174.469 -28.8254 -3677.79
+174.22 -27.8177 -3817.4
+173.965 -28.1611 -3628.22
+173.01 -27.755 -2284.67
+172.666 -27.4877 -2454.28
+174.029 -29.4372 -3604.16
+173.865 -27.802 -3345.64
+173.994 -27.4888 -3575.5
+173.496 -27.5822 -3264.79
+174.031 -28.9511 -3551.32
+174.225 -28.5288 -3395.29
+173.652 -28.8974 -3250.95
+173.809 -28.5809 -3278.16
+173.573 -28.2812 -3125.42
+173.86 -29.8554 -3033.26
+173.648 -27.9604 -3074.35
+173.402 -28.6478 -2677.16
+173.36 -29.0424 -2703.85
+173.249 -28.3288 -2542.55
+173.343 -27.9975 -2922.43
+173.664 -29.2211 -3017.04
+173.532 -29.9297 -2725.99
+173.111 -28.5528 -1625.55
+172.528 -28.0306 -2825.72
+172.801 -27.9954 -2363.75
+172.669 -27.7934 -2417.83
+172.448 -28.2833 -2857.95
+173.324 -29.3915 -2724.72
+173.605 -29.5979 -2977.29
+173.001 -28.3679 -1719.05
+173.036 -28.8483 -1602.66
+172.591 -29.2725 -2893.15
+172.599 -29.5366 -2848.24
+172.503 -29.8424 -2556.09
+173.025 -28.1193 -1771.95
+173.048 -29.2097 -2025.87
+172.748 -28.2714 -2447.61
+172.54 -28.5279 -2656.13
+172.665 -28.8144 -2398.54
+173.285 -29.7328 -2172.78
+172.768 -29.7737 -2143.51
+172.798 -29.3309 -2441.58
+172.85 -28.5638 -1295.06
+172.772 -29.0907 -2229.78
+172.981 -29.5449 -2071.4
+173.009 -29.8815 -1674.78
+177.746 -26.5198 -4250.97
+177.651 -26.1361 -4182.7
+177.761 -25.8951 -4282.52
+177.998 -26.1432 -4272.81
+178.055 -26.9092 -4220.85
+177.711 -25.5763 -4296.45
+178.42 -26.8629 -4234.94
+177.568 -27.036 -4268.01
+178.078 -25.7742 -4245.09
+177.929 -24.0916 -4226.08
+178.287 -26.5075 -4219.37
+177.639 -25.1292 -4338.08
+178.134 -24.2937 -4212.38
+178.212 -24.6178 -4237.38
+177.802 -24.7513 -4311.51
+178.106 -25.009 -4096
+177.988 -27.3059 -4254.24
+178.441 -26.0414 -4085.96
+178.669 -26.355 -4077.03
+177.743 -24.3806 -4156.05
+178.359 -27.1758 -4146.61
+178.292 -24.0467 -4071.2
+178.464 -24.9227 -3996.48
+178.69 -26.6837 -3992.85
+178.068 -25.3923 -4222.54
+178.429 -25.6175 -4002.31
+178.708 -27.0384 -3954.23
+177.625 -27.5042 -4061.97
+178.442 -25.2476 -4045.81
+178.494 -24.3319 -3921.02
+179.008 -26.46 -3908.26
+177.548 -29.571 -4054.96
+179.101 -26.8421 -3877.56
+178.679 -24.0865 -3831.76
+179.013 -27.1986 -3863.94
+178.705 -27.423 -3884.49
+178.312 -27.4848 -3897.78
+178.041 -27.6719 -4175.41
+178.721 -25.7898 -3889.28
+178.49 -27.8042 -3446.36
+177.666 -28.4618 -3665.64
+177.943 -28.7702 -3829.6
+177.811 -28.196 -3822.81
+178.314 -28.7315 -3724.88
+178.116 -28.0357 -3493.41
+177.755 -29.2008 -3852.21
+177.715 -27.8839 -3953.09
+178.776 -25.4674 -3712.5
+179.407 -27.1681 -3414.33
+177.734 -29.8754 -3933.97
+178.134 -28.4287 -3671.64
+178.743 -24.6764 -3848.69
+179.359 -26.2293 -2382.62
+178.288 -29.0411 -3664.17
+178.794 -25.0941 -3648.68
+178.569 -28.5531 -3450.87
+178.636 -28.8642 -3594.79
+179.065 -23.9843 -3544.91
+178.916 -24.3197 -3691.66
+179.345 -26.5556 -2624.29
+177.929 -29.606 -3621.55
+178.919 -26.0823 -3289.4
+178.247 -29.9216 -3658.01
+178.374 -29.4701 -3325.43
+179.171 -24.5782 -3534.02
+179.169 -27.5024 -3310.07
+178.715 -29.1872 -3442.18
+178.514 -28.2064 -3489.48
+179.138 -24.9198 -3160.75
+178.929 -28.6806 -3543.84
+179.004 -28.9662 -3227.21
+178.74 -29.812 -3667.46
+178.889 -27.7203 -3332.72
+179.035 -25.7122 -3333.17
+179.522 -23.9927 -3102.04
+179.448 -24.5294 -2592.49
+178.894 -28.3644 -3579.79
+179.351 -24.2823 -2731.59
+178.873 -28.0268 -3367.82
+179.238 -28.4992 -3541.94
+179.236 -28.17 -3429.89
+179.234 -28.7797 -3328.43
+178.905 -29.486 -3378.71
+179.544 -28.6652 -3168.36
+179.218 -29.7707 -3180.83
+179.072 -29.2281 -3293.24
+179.208 -27.8449 -3307.2
+179.581 -28.3271 -3254
+179.509 -27.4525 -3297.7
+179.296 -29.4299 -2914.76
+179.46 -27.6677 -3226.67
+179.716 -27.3187 -3122.87
+179.614 -27.949 -3127.39
+179.174 -25.3379 -3051.69
+179.56 -26.799 -2988.93
+179.812 -27.0561 -3011.66
+179.879 -23.9812 -2404.54
+179.454 -24.759 -3003.26
+179.438 -29.0573 -2746.61
+179.798 -27.5898 -3100.7
+179.872 -28.4991 -2953.52
+179.617 -29.3887 -2582.67
+179.987 -26.7226 -2990.61
+179.247 -25.9291 -2315.43
+179.375 -25.6664 -2324.69
+179.96 -28.1752 -2730.74
+179.874 -28.8474 -2512.79
+179.49 -25.0727 -1998.07
+179.495 -29.6138 -2583.46
+180.189 -27.019 -2768.77
+180.055 -27.3127 -3030.51
+180.037 -26.4493 -2652.82
+180.125 -28.3909 -2213.19
+181.956 -27.403 -2680.95
+179.961 -26.2767 -2680.19
+180.159 -27.5974 -2308.42
+180.239 -26.2768 -2432.05
+180.14 -24.0038 -2135.99
+179.752 -26.1411 -2577.54
+180.279 -26.5352 -2602.51
+179.555 -25.4018 -2205.87
+179.718 -24.2201 -2400.1
+179.711 -26.4494 -2807.27
+180.054 -26.0685 -2656.72
+181.969 -27.666 -2391.7
+181.698 -27.5582 -2632.36
+181.94 -26.1949 -2166.48
+181.835 -26.3848 -2271.37
+180.893 -29.2054 -2319.83
+181.657 -26.1459 -2461.45
+181.872 -24.3343 -2497
+181.092 -28.9607 -2318.46
+179.81 -25.452 -2524.22
+180.052 -25.3603 -2572.77
+181.63 -27.2524 -2501.02
+179.802 -25.2009 -2521.4
+181.873 -24.1049 -2497
+181.264 -27.2421 -2601.02
+180.762 -29.6292 -2493.95
+180.511 -29.6424 -2462.6
+180.25 -25.552 -2483.16
+180.644 -29.3861 -2536.62
+181.632 -25.8341 -2466.25
+180.154 -25.8173 -2514.56
+182.38 -26.4276 -2300.31
+181.904 -25.9664 -2483.15
+179.861 -25.8765 -2641.97
+179.969 -25.6195 -2561.82
+181.181 -28.4287 -2514.12
+181.706 -26.6345 -2501.88
+181.125 -28.6443 -2453.02
+181.478 -27.7241 -2370.86
+181.698 -26.9408 -2501.42
+180.338 -25.2674 -2427.49
+181.11 -28.2123 -2542.51
+181.585 -26.3892 -2368.88
+181.402 -28.5306 -2075.47
+180.411 -24.9707 -2262.83
+181.171 -27.7179 -2342.33
+181.398 -27.4848 -2620.69
+179.616 -24.4233 -2353.74
+179.822 -29.1687 -1996.85
+181.902 -25.6948 -2130.83
+180.009 -27.8522 -2145.5
+180.386 -27.2188 -2259.66
+181.977 -27.1237 -1903.42
+180.335 -26.0067 -2434.21
+182.052 -24.2622 -2295.98
+179.641 -24.6103 -2261.6
+180.098 -25.0624 -2524.9
+180.642 -29.1398 -2357.74
+181.365 -25.6911 -2562.34
+180.96 -29.4765 -2336.96
+181.994 -26.5663 -2151.04
+181.018 -27.962 -2157.17
+181.743 -27.8623 -2281.66
+182.165 -26.0878 -2222.43
+180.528 -26.1811 -689.61
+180.789 -28.9867 -2577.55
+181.585 -24.022 -1879.44
+180.033 -24.2012 -2287.86
+181.379 -27.9971 -2298.7
+181.102 -27.4363 -2093.6
+180.779 -28.7291 -2460.58
+182.393 -26.2253 -2271.11
+179.801 -24.8471 -2337.87
+180.874 -28.4208 -1984.19
+179.891 -24.4829 -2247
+181.641 -25.5295 -2358.13
+180.377 -29.4579 -2250.28
+181.333 -25.4367 -2306.67
+181.399 -28.2965 -2048.45
+180.667 -25.1853 -1701.34
+181.375 -26.2607 -1947.48
+180.431 -25.7524 -1882.71
+182.046 -26.8173 -2073.01
+180.471 -26.39 -2421.86
+181.351 -26.5202 -2208.32
+181.92 -25.4825 -2090.48
+181.998 -27.8744 -2073.39
+180.198 -24.7162 -2482.26
+181.225 -29.2924 -2299.63
+180.24 -24.3956 -2165.4
+181.924 -28.0343 -2142.14
+180.684 -29.8866 -2357.4
+181.44 -28.8035 -1949.02
+180.369 -29.8559 -2172.51
+180.365 -26.7812 -2582.6
+181.814 -25.301 -2202.37
+180.978 -29.7493 -1962.19
+180.47 -24.5402 -2084.02
+181.023 -27.2473 -1832.96
+182.204 -27.5487 -2131.32
+180.379 -23.9428 -1782.79
+180.488 -24.7459 -1717.31
+182.162 -25.8194 -2074.99
+182.157 -24.0615 -2108.35
+181.743 -24.5081 -2185.04
+180.906 -27.7772 -1829.1
+181.394 -29.0635 -2012.07
+179.893 -29.4102 -1232.23
+181.042 -27.036 -1754.4
+179.742 -29.6223 -1274.19
+181.527 -25.2775 -2182.06
+180.541 -25.4824 -1957.2
+182.136 -26.3625 -1779.27
+179.686 -25.6586 -2123.71
+182.142 -25.5676 -1753.48
+180.318 -24.1561 -1903.67
+182.284 -24.2814 -1992.29
+181.183 -26.334 -1769.84
+182.455 -25.948 -1625.84
+181.612 -24.2776 -1853.57
+180.151 -28.6219 -1998.74
+180.247 -29.6427 -1589.47
+182.163 -28.0276 -2016.63
+181.33 -25.9845 -2156.82
+181.998 -28.2316 -1724.95
+180.604 -28.5132 -1898.3
+181.697 -28.1788 -1792.65
+181.845 -24.6976 -1965.41
+181.656 -28.5949 -2089.24
+182.249 -26.5943 -2055.68
+182.549 -24.2887 -1997
+182.397 -26.8022 -1663.54
+181.621 -29.8379 -1376.96
+181.64 -29.6504 -1779.2
+182.455 -27.4369 -1513.04
+181.687 -25.0994 -1951.32
+181.569 -24.9343 -1998.06
+181.788 -24.8946 -1766.76
+182.424 -24.5058 -1724.74
+182.046 -24.8249 -1551.81
+180.211 -28.0184 -1507.19
+181.579 -24.7267 -1848.75
+181.598 -28.4047 -1762.62
+181.663 -29.0202 -1774.28
+181.151 -25.7946 -1265.55
+181.135 -26.7587 -2021.5
+180.696 -24.4367 -1468.2
+180.796 -28.142 -1708.95
+180.336 -29.1908 -1666.12
+181.899 -29.0882 -984.7
+180.513 -27.0053 -1618.41
+182.103 -25.3338 -1712.72
+181.121 -25.5781 -1989.01
+180.677 -23.9123 -1519.76
+179.59 -29.8315 -1793.76
+180.051 -29.2462 -1236.32
+180.326 -27.4231 -1910.28
+181.912 -28.6196 -1545.68
+181.319 -23.9525 -1155
+180.683 -24.638 -1203.11
+181.437 -25.0709 -1711.88
+182.192 -27.7818 -1789.02
+180.848 -25.4636 -1441.15
+182.078 -24.5215 -1578.49
+181.363 -24.8721 -1683.51
+182.423 -27.6881 -1777.61
+180.597 -25.9416 -1598.3
+180.31 -27.8186 -1813.4
+181.832 -28.4182 -1579.91
+180.515 -24.3085 -1737.16
+180.536 -28.9337 -2191.48
+180.677 -24.8791 -1819.58
+180.688 -25.7104 -1633.36
+182.004 -25.0846 -1588.67
+181.032 -26.4797 -1809.08
+180.285 -28.2233 -1534.22
+180.59 -24.1024 -1570.25
+181.476 -24.4959 -1212.9
+180.148 -29.4272 -1281.77
+179.547 -25.9169 -2206.06
+181.774 -29.3724 -1169.99
+181.092 -23.9468 -936.21
+181.371 -24.1592 -1110.52
+182.238 -28.2514 -1330.67
+180.901 -27.5861 -1613.22
+180.062 -29.0622 -1173.83
+180.656 -26.8113 -1754
+181.177 -26.1622 -1583.2
+180.738 -27.9097 -1423.51
+180.567 -28.2948 -1391.75
+182.397 -25.6607 -1534.63
+180.929 -23.8834 -1106.36
+180.442 -28.6839 -2010.68
+182.364 -25.4207 -1468.77
+180.559 -26.5902 -1781.16
+180.921 -25.2291 -1089.32
+179.998 -29.6318 -882.92
+180.933 -25.7358 -906.6
+180.756 -24.2546 -1092.8
+180.538 -27.813 -1085.75
+180.362 -28.4547 -1185.04
+180.831 -27.362 -1369.6
+182.338 -25.1611 -1257.17
+180.738 -26.3753 -1056.84
+180.869 -27.1658 -1648.1
+180.882 -24.0614 -1268.65
+181.275 -25.2179 -1421.45
+180.886 -26.8438 -1350.42
+182.369 -27.9 -1002.34
+181.378 -24.3344 -1030.53
+180.936 -25.0045 -795.69
+180.876 -24.5346 -909.94
+182.339 -24.7636 -1361.61
+180.112 -29.8356 -1269.34
+181.303 -24.6637 -1188.51
+180.704 -27.704 -1181.07
+179.861 -29.8323 -620.26
+180.984 -26.242 -1508.76
+181.203 -25.0243 -1271.21
+180.232 -28.8875 -1042.95
+182.422 -24.9634 -1218.62
+182.234 -24.9589 -1381.92
+180.774 -27.0052 -1111.27
+180.488 -28.0316 -1106.23
+180.831 -26.6385 -819.07
+180.87 -24.3744 -715.49
+180.8 -25.8966 -940.39
+181.095 -25.3466 -1160.58
+181.896 -29.2555 -570.78
+180.468 -27.6036 -877.03
+181.244 -24.4652 -899.48
+182.12 -28.669 -639.83
+180.981 -24.2442 -570.52
+180.774 -26.1016 -860.36
+181.127 -24.8177 -850.9
+180.564 -27.3829 -905.12
+180.695 -27.5266 -1192.68
+180.66 -27.189 -975.48
+180.894 -24.7453 -860.72
+181.14 -24.1057 -783.38
+181.078 -24.6038 -772.52
+181.192 -24.284 -793.88
+181.013 -25.9896 -703.34
+181.085 -25.1638 -858.16
+181.039 -24.4141 -676.42
+184.936 -24.5869 -8092.13
+185.55 -24.1759 -5916.96
+184.942 -29.8336 -5601.21
+185.991 -24.2506 -5653.48
+185.246 -28.289 -5616.54
+185.358 -29.4641 -5740.08
+185.743 -24.5452 -5534.74
+186.254 -29.8668 -5741.58
+186.105 -29.5406 -5840.59
+185.806 -29.3846 -5682.93
+187.34 -29.8182 -5669.78
+186.145 -29.2195 -5382.94
+185.425 -29.8749 -5601.07
+185.787 -29.7198 -5785.01
+186.467 -24.1679 -5497
+185.25 -28.6732 -5638.1
+185.53 -28.0803 -5270.17
+187.421 -29.3886 -5728.86
+185.712 -28.4379 -5349.65
+186.276 -24.6436 -5282.4
+185.655 -28.9988 -5759.36
+186.223 -28.7645 -5139.17
+185.83 -24.9283 -5293.54
+187.381 -25.5986 -5641.91
+187.46 -24.5192 -5556.25
+187.492 -25.2364 -5383.04
+186.964 -25.2891 -5450.67
+187.209 -24.9018 -5506.05
+186.722 -24.8998 -5360.55
+186.159 -28.3322 -4592.49
+187.459 -28.5666 -5437.95
+187.215 -28.943 -5425.86
+187.013 -29.583 -5573.54
+185.532 -27.7206 -4130.5
+187.498 -26.2826 -5251.2
+186.314 -25.1912 -5260.83
+187.003 -25.6977 -5403.37
+185.361 -26.9885 -4422.56
+186.762 -28.852 -4552.59
+187.266 -25.9822 -5390.52
+185.76 -25.3513 -5221.69
+187.511 -28.0872 -5303.25
+187.572 -26.725 -5364.27
+186.582 -25.629 -5259.06
+186.519 -29.1176 -5392.9
+186.601 -26.3124 -5179.75
+187.525 -27.2439 -5283.23
+187.058 -27.005 -5288.18
+186.815 -26.0021 -5149.87
+186.526 -26.7403 -5238.71
+187.068 -28.2137 -5220.46
+186.585 -27.2483 -5258.08
+187.682 -27.6725 -5198.3
+186.548 -29.5105 -4498.84
+186.216 -26.3767 -5130.43
+186.368 -26.0052 -5183.19
+186.092 -25.6614 -5084.41
+187.091 -27.6364 -5300.04
+186.126 -27.0451 -5309.37
+186.51 -27.6925 -4899.64
+185.927 -26.0644 -5046.51
+187.052 -26.4357 -5297.87
+186.074 -26.688 -5274.28
+185.624 -25.7627 -5081.39
+187.029 -28.6004 -5020.73
+186.72 -27.9907 -4947.45
+185.443 -26.1789 -4632.09
+185.745 -26.8374 -5009.38
+186.626 -28.3988 -3839.37
+185.803 -26.4496 -5025.71
+185.911 -27.9971 -4166.42
+186.343 -28.0287 -3411.29
+186.167 -27.4431 -5117.11
+185.734 -27.2973 -4095.34
+185.403 -26.5998 -2428.02
+186.162 -27.7625 -4279.03
+185.912 -27.6423 -2438.56
+182.583 -26.3659 -1763.44
+182.642 -26.1601 -1947.23
+186.92 -29.2413 -4621.29
+182.762 -24.3034 -1997
+182.687 -24.4861 -1997
+182.929 -23.9736 -1812.33
+182.93 -24.2079 -1764.58
+182.941 -24.4443 -1403.16
+182.609 -24.6936 -1742.42
+183.19 -23.9392 -1390.52
+182.784 -25.9514 -1618.28
+182.848 -26.1479 -1645.34
+182.851 -24.6644 -1689.16
+183.127 -24.1266 -997
+182.557 -24.8697 -1078.21
+183.394 -23.9654 -1211.2
+182.76 -24.8633 -1068.88
+182.545 -26.5849 -1445.54
+183.124 -24.3173 -1147.94
+183.212 -25.8296 -1355.54
+183.072 -24.6457 -1252.35
+183.028 -26.0687 -1358.87
+182.851 -25.757 -1065.08
+183.315 -24.0892 -1247
+183.605 -23.954 -1192.84
+183.478 -24.0946 -1247
+182.622 -25.0626 -1209.4
+183.01 -24.8419 -1300.96
+182.887 -25.0371 -1411.05
+183.02 -25.8454 -1191.03
+182.579 -25.2998 -1269.92
+182.598 -25.514 -1525.26
+182.801 -25.2369 -1433.86
+182.653 -25.7278 -1120.13
+182.753 -25.4037 -1528.61
+182.97 -25.676 -1169.62
+182.826 -25.5761 -1223.72
+182.951 -25.3886 -826.2
+183.006 -25.5546 -854.77
+183.269 -25.3013 -731.5
+183.158 -25.4574 -672.39
+183.14 -25.6597 -947.06
+183.35 -25.4357 -617.5
+189.302 -24.6448 -5901.79
+189.798 -24.768 -5496.8
+191.373 -24.7489 -5768.27
+188.835 -24.6626 -5613.2
+189.964 -24.1316 -5747
+190.56 -24.1372 -5747
+191.069 -24.717 -5934.4
+191.026 -24.1887 -5747
+191.607 -24.9267 -5799.3
+190.81 -24.4758 -5747
+189.737 -24.4417 -5735.88
+191.251 -24.4757 -5747
+191.331 -26.8433 -5724.81
+191.718 -26.7434 -5608.42
+190.016 -25.4456 -5610.25
+189.557 -25.1847 -5682.39
+191.323 -26.511 -5797.47
+191.469 -27.495 -5664.63
+191.351 -27.8071 -5428.92
+188.95 -25.0298 -5739.37
+190.192 -25.0618 -5595.41
+190.25 -24.5419 -5484.55
+190.947 -27.5584 -5454.49
+187.735 -29.7072 -5672.93
+192.163 -27.0395 -5625.09
+192.443 -27.4241 -5703.92
+191.996 -24.9984 -5754.77
+192.428 -25.0774 -5607.24
+191.73 -24.5905 -5712.32
+190.707 -24.8395 -5761.6
+191.704 -25.2698 -5735.83
+191.064 -27.9433 -5458.69
+191.133 -27.1405 -5623.11
+188.498 -24.8286 -5652.66
+190.382 -25.4376 -5415.77
+191.626 -27.1299 -5726.48
+191.496 -24.1546 -5695.48
+188.218 -29.8567 -5647.63
+191.206 -25.0453 -5716.02
+189.046 -25.59 -5647.97
+190.483 -27.484 -5535.2
+188.53 -24.5076 -5651.52
+192.089 -26.6204 -5650.13
+192.074 -24.2083 -5640.02
+192.232 -25.4337 -5608.84
+190.882 -26.7062 -5686
+190.598 -27.8875 -5535.46
+191.837 -25.6149 -5679.77
+188.137 -24.9557 -5582.5
+191.789 -27.8339 -5589.59
+190.972 -26.3138 -5770.4
+190.733 -25.2582 -5674.68
+190.955 -28.2641 -5517.77
+188.369 -24.1662 -5589.65
+188.792 -29.8195 -5441.37
+188.443 -25.2791 -5628.53
+191.984 -27.4757 -5705.21
+188.883 -26.0571 -5634.9
+188.071 -24.5656 -5534.57
+189.68 -25.7304 -5488.71
+192.171 -25.827 -5512.36
+187.938 -25.23 -5569.1
+191.763 -25.9538 -5673.78
+191.258 -25.5994 -5619.53
+191.495 -28.1787 -5513.9
+190.5 -28.2798 -5488.74
+187.752 -24.1402 -5497
+187.966 -29.3911 -5492.37
+188.417 -25.8406 -5517.25
+190.181 -27.6374 -5305.43
+191.31 -26.1111 -5578.58
+190.697 -25.6122 -5628.2
+189.338 -26.0775 -5514.54
+192.518 -26.7156 -5611.71
+190.516 -26.2915 -5565.56
+190.448 -29.3318 -5497.19
+187.741 -25.4998 -5555.88
+190.988 -29.3345 -5423.67
+187.723 -24.8987 -5517.36
+187.792 -25.9095 -5349.88
+190.68 -29.767 -5547.52
+190.283 -25.8166 -5553.13
+189.058 -26.4383 -5496.75
+188.066 -25.5518 -5595.08
+190.832 -25.9492 -4976.17
+191.96 -28.5145 -5308.46
+192.453 -28.3506 -5294.27
+191.934 -28.948 -5427.19
+192.024 -28.1538 -5215.31
+191.263 -29.7281 -5330.86
+189.263 -29.8551 -5549.03
+190.204 -29.9665 -5477.22
+188.565 -26.3477 -5432.66
+188.15 -26.2291 -5429.59
+192.437 -29.2239 -5322.93
+189.78 -26.766 -5542.74
+191.511 -29.4864 -5312.37
+190.021 -29.0509 -5463.39
+190.555 -28.9731 -5519.97
+189.474 -26.4663 -5511.12
+190.088 -27.2001 -5465.74
+187.895 -28.6877 -5277.45
+190.154 -28.5755 -5402.01
+192.442 -29.6603 -5346.67
+191.458 -29.117 -5289.22
+190.008 -29.5405 -5303.98
+192.262 -26.2511 -5661.36
+188.805 -27.3999 -4355.97
+189.912 -26.2659 -5251.14
+188.519 -29.3948 -5388.56
+191.355 -28.6594 -5439.33
+191.95 -29.3866 -5153.2
+187.694 -28.9969 -5484
+189.735 -29.925 -5334.38
+191.744 -26.3565 -5573.59
+187.824 -26.3616 -5409.99
+189.321 -26.8085 -5242.78
+190.748 -28.619 -5662.39
+188.151 -26.6861 -5304.65
+192.465 -27.8677 -5692.56
+188.77 -26.8724 -5383.29
+189.634 -27.1115 -5114.18
+190.296 -26.7254 -5552.36
+191.021 -28.9406 -5449.94
+188.205 -28.9905 -5344.63
+187.827 -28.3861 -5274.85
+190.06 -28.0451 -5215.02
+189.069 -29.4541 -5299.25
+188.3 -27.2294 -5302.31
+187.881 -27.0472 -5288.58
+189.707 -27.5594 -5026.81
+190.635 -27.1348 -5715.13
+192.499 -30.008 -5410.01
+191.902 -29.892 -5388.03
+192.441 -28.7868 -5177.38
+189.235 -27.2347 -4983.69
+187.908 -27.37 -5236.73
+189.512 -29.5936 -5425.74
+188.516 -27.6168 -5170.12
+188.865 -28.8986 -5191.06
+188.291 -28.4984 -5227.34
+189.041 -28.1087 -5198.6
+188.762 -28.4072 -5204.38
+189.117 -28.4916 -5113.55
+188.509 -28.024 -5317.04
+189.387 -28.341 -5002.39
+189.732 -28.3417 -5226.17
+188.811 -27.7666 -5056.47
+189.494 -29.2013 -5547.95
+189.52 -28.015 -4861.21
+188.151 -27.6569 -5144.51
+189.53 -28.7027 -4815.01
+187.986 -28.0592 -5098.96
+189.198 -27.6791 -4629.5
+192.818 -24.8793 -5703.33
+193.286 -24.8728 -5627.9
+192.816 -27.5541 -5599.97
+193.109 -24.513 -5642.63
+193.587 -24.6628 -5498.55
+192.787 -25.3717 -5677.46
+193.254 -25.2285 -5617.82
+193.443 -24.1867 -5580.55
+192.927 -24.1083 -5566.64
+193.976 -24.0863 -5489.92
+193.969 -24.4488 -5452.29
+193.675 -25.0698 -5690.11
+192.758 -27.1521 -5574.96
+192.692 -25.873 -5671.92
+193.254 -25.6738 -5715.46
+192.894 -28.2288 -5472.71
+192.912 -28.6272 -5404.65
+192.915 -29.0686 -5396.42
+192.904 -29.5103 -5362.27
+193.71 -25.4672 -5550.45
+192.9 -29.9187 -5502.24
+192.847 -26.4036 -5625.66
+193.282 -26.1423 -5537.78
+194.067 -24.8542 -5578.03
+194.325 -24.3193 -5342.19
+193.37 -29.8323 -5420.44
+193.389 -29.3752 -5444.8
+193.371 -28.4324 -5460.71
+193.391 -28.9068 -5522.34
+193.137 -27.4253 -5516
+193.743 -25.8998 -5582.39
+193.391 -26.6461 -5561.3
+194.134 -25.2735 -5545.43
+192.954 -26.8073 -5581.62
+193.26 -27.879 -5461.88
+194.437 -24.6415 -5152
+193.842 -29.7179 -5355.73
+194.163 -25.6893 -5670.77
+193.8 -26.3328 -5454.5
+193.908 -29.2283 -5460.99
+193.853 -28.7281 -5545.32
+193.264 -27.0922 -5507.2
+194.591 -25.0733 -5459.15
+194.752 -24.3982 -5183.82
+194.207 -26.0969 -5552.63
+193.851 -28.2535 -5498.73
+194.575 -25.5024 -5443.4
+194.247 -29.6072 -5279.08
+193.891 -26.6927 -5484.41
+194.237 -28.9651 -5731.4
+193.742 -27.0361 -5501.89
+193.585 -27.4492 -5385.5
+194.909 -24.7668 -5567.79
+194.444 -29.3053 -5433.29
+193.926 -27.8093 -5517.85
+194.219 -26.9314 -5556.51
+194.305 -26.5172 -5444.32
+194.178 -27.3937 -5622.74
+194.614 -25.8962 -5370.56
+195.041 -25.087 -5504.44
+194.373 -27.7796 -5739.84
+194.329 -28.1228 -5632.65
+194.358 -28.5824 -5659.53
+194.979 -25.3881 -5476.15
+194.618 -26.8025 -5479.4
+194.655 -27.1525 -5538.55
+194.623 -26.2413 -5319.04
+194.727 -29.7446 -5051.11
+194.766 -27.6091 -5558.82
+195.257 -24.513 -4978.19
+194.68 -27.9703 -5397.11
+194.832 -26.5239 -5417.9
+194.637 -28.9699 -5632.4
+194.808 -28.351 -5160.42
+194.8 -28.7016 -5152.29
+195.079 -26.8874 -5482.85
+194.909 -29.3169 -5274.3
+194.929 -25.7175 -5321.31
+195.138 -26.1297 -5276.51
+195.141 -27.318 -5558.7
+195.248 -27.6671 -5555.9
+195.358 -24.9214 -4997
+195.142 -28.0299 -5286.85
+195.241 -26.5472 -5318.05
+197.157 -24.7523 -4997
+196.93 -24.9866 -4997
+195.139 -29.6199 -4649.82
+197.667 -24.9048 -4997
+196.946 -29.7896 -4997
+197.329 -28.1638 -4997
+195.749 -25.1863 -4997
+196.589 -25.047 -4997
+197.15 -29.4861 -4997
+196.178 -25.1108 -4997
+195.357 -25.2968 -5656.24
+197.309 -25.1506 -4997
+197.144 -29.0295 -4997
+197.495 -24.4748 -4986.76
+196.534 -28.3188 -4997
+195.254 -28.4296 -4612.55
+197 -28.2515 -4997
+196.003 -28.3492 -4997
+195.539 -28.3068 -4997
+196.948 -25.3172 -4997
+195.628 -24.2271 -4993.86
+196.899 -28.5871 -4997
+197.432 -28.5321 -4997
+197.387 -29.8089 -4997
+195.516 -29.7134 -4997
+196.288 -24.7711 -4997
+196.474 -29.7741 -4997
+195.976 -29.7809 -4997
+195.662 -27.8964 -4997
+196.221 -27.9318 -4997
+197.089 -27.9686 -4997
+197.412 -27.8714 -4997
+196.715 -27.9386 -4997
+196.672 -24.6916 -4997
+197.555 -29.4384 -4997
+195.338 -29.3004 -5341.92
+195.726 -29.3889 -4997
+196.715 -29.3642 -4997
+196.163 -29.3151 -4997
+197.385 -24.0956 -4961.17
+195.072 -28.9614 -5263.36
+195.116 -28.6511 -5261.43
+196.43 -28.8217 -4997
+195.635 -28.8288 -4997
+196.556 -25.4455 -4997
+196.958 -25.6836 -4997
+196.088 -25.5327 -4997
+196.242 -26.4105 -4997
+195.645 -26.4359 -4997
+196.906 -26.4943 -4997
+197.495 -26.5926 -4997
+195.324 -25.6715 -5259.82
+195.668 -25.5336 -4997
+197.389 -25.5989 -4997
+195.809 -24.7159 -4997
+196.546 -26.8417 -4997
+197.257 -27.0645 -4997
+195.959 -26.7845 -4997
+195.511 -26.7589 -4997
+197.335 -26.1043 -4997
+195.816 -25.9681 -4997
+196.56 -25.952 -4997
+197.49 -27.5321 -4997
+195.949 -27.5208 -4997
+195.52 -27.5042 -4997
+196.454 -27.5622 -4997
+197.015 -27.583 -4997
+196.696 -27.244 -4997
+195.618 -27.1277 -4997
+196.209 -27.1686 -4997
+196.202 -24.3467 -4950
+196.873 -24.2635 -4925.07
+195.902 -24.0185 -4949.8
+198.676 -25.9257 -4997
+201.91 -27.5175 -4997
+198.504 -24.5501 -4997
+201.296 -28.7526 -4997
+201.408 -27.5654 -4997
+202.454 -28.791 -4997
+200.964 -27.5181 -4997
+200.828 -25.8818 -4997
+199.431 -27.6411 -4997
+197.858 -29.0525 -4997
+201.389 -25.8161 -4997
+199.274 -28.7478 -4997
+198.938 -28.9354 -4997
+198.468 -28.946 -4997
+198.878 -27.4413 -4997
+199.889 -25.766 -4997
+201.546 -27.2277 -4997
+200.774 -24.6496 -4980.11
+200.358 -25.73 -4997
+198.367 -29.3928 -4997
+200.382 -26.0969 -4997
+201.077 -27.1536 -4997
+199.927 -26.3291 -4997
+202.381 -29.1955 -4997
+199.969 -27.2564 -4997
+199.396 -27.183 -4997
+198.868 -29.3384 -4997
+200.801 -26.3099 -4997
+198.761 -24.3059 -4997
+198.482 -26.2795 -4997
+202.019 -28.8758 -4997
+199.239 -28.2689 -4997
+198.339 -25.516 -4997
+201.134 -27.8742 -4997
+199.357 -25.4618 -4997
+199.813 -27.8094 -4997
+199.729 -25.3251 -4997
+202.429 -28.3516 -4997
+200.559 -25.4859 -4997
+198.697 -27.909 -4997
+200.145 -25.3884 -4997
+202.073 -28.53 -4997
+201.785 -28.0611 -4997
+199.375 -24.988 -4997
+201.492 -25.473 -4997
+202.405 -27.8562 -4997
+201.018 -25.3969 -4997
+197.723 -28.1703 -4997
+198.866 -25.5474 -4997
+199.558 -28.0056 -4997
+201.839 -25.252 -4997
+198.214 -28.1064 -4997
+201.248 -28.3041 -4997
+199.589 -28.5806 -4997
+199.975 -28.5897 -4997
+198.885 -24.7362 -4997
+198.008 -25.9027 -4997
+200.913 -28.5257 -4997
+199.709 -26.9311 -4997
+199.715 -26.6441 -4997
+200.271 -29.7132 -4997
+202.61 -29.8552 -4997
+200.964 -26.685 -4997
+201.217 -29.7491 -4997
+199.334 -26.7127 -4997
+201.827 -26.6039 -4997
+200.478 -26.5293 -4997
+202.585 -26.8309 -4997
+200.222 -27.7018 -4997
+198.671 -26.8014 -4997
+200.717 -27.6941 -4997
+197.956 -26.9137 -4997
+200.146 -26.846 -4997
+200.64 -26.9027 -4997
+197.834 -27.801 -4997
+202.204 -26.847 -4997
+198.221 -27.7471 -4997
+201.898 -27.0579 -4997
+201.438 -26.8439 -4997
+199.155 -27.8475 -4997
+199.766 -27.5183 -4997
+198.422 -27.5333 -4997
+200.682 -28.1025 -4997
+200.062 -28.1528 -4997
+200.537 -27.2997 -4997
+197.938 -27.386 -4997
+198.373 -27.1996 -4997
+202.432 -27.2809 -4997
+202.716 -29.5318 -4997
+199.822 -29.4678 -4997
+197.978 -29.4999 -4997
+200.954 -29.3448 -4997
+200.616 -29.2268 -4997
+201.385 -29.2346 -4997
+201.915 -29.2479 -4997
+200.248 -29.3224 -4997
+198.278 -29.8075 -4997
+202.272 -29.5888 -4997
+199.794 -28.9881 -4997
+200.855 -28.9392 -4997
+200.327 -28.9376 -4997
+200.675 -29.5717 -4997
+197.833 -29.8222 -4997
+198.767 -29.7988 -4997
+199.913 -29.8465 -4997
+201.801 -29.6766 -4997
+199.383 -29.7397 -4997
+199.678 -28.3178 -4997
+198.067 -28.5446 -4997
+200.466 -28.5379 -4997
+201.68 -28.5707 -4997
+198.707 -28.4821 -4997
+201.658 -28.9322 -4997
+197.8 -25.3623 -4997
+202.254 -25.5167 -4997
+198.555 -25.2375 -4997
+201.883 -25.6996 -4997
+200.477 -24.9947 -4997
+201.375 -25.1786 -4997
+198.932 -25.1539 -4997
+198.16 -25.0872 -4997
+201.039 -24.9353 -4997
+199.884 -24.9975 -4997
+202.362 -25.1362 -4878.61
+202.47 -26.0029 -4997
+199.325 -25.9702 -4997
+199.224 -24.5011 -4997
+199.627 -24.6623 -4997
+198.058 -24.6196 -4997
+200.025 -24.6001 -4997
+200.442 -24.4783 -4952.34
+201.116 -24.5554 -4948.6
+198.252 -24.1936 -4997
+197.807 -24.228 -4997
+199.117 -24.1073 -4997
+198.516 -24.8985 -4997
+201.508 -24.8291 -4954.76
+198.002 -26.4383 -4997
+202.671 -26.4774 -4997
+199.463 -26.4015 -4997
+198.992 -26.3485 -4997
+202.268 -26.4831 -4997
+201.305 -26.3255 -4997
+201.857 -26.1552 -4997
+199.337 -29.1998 -4997
+199.655 -24.2265 -4938.31
+201.959 -24.9099 -4959.35
+201.44 -24.4565 -4902.87
+200.144 -24.232 -4909.98
+202.232 -24.7755 -4908.98
+200.797 -24.2841 -4907.9
+201.857 -24.5292 -4906.06
+201.185 -24.1663 -4879.63
+202.353 -24.4562 -4895.84
+201.566 -24.1972 -4859.6
+200.466 -24.1003 -4869.74
+201.972 -24.1217 -4849.03
+202.541 -24.0968 -4845.54
+202.627 -24.8066 -4586.74
+205.949 -27.0172 -4997
+205.45 -26.8909 -4997
+204.178 -27.5001 -4997
+203.807 -29.3048 -4997
+204.354 -25.6358 -4997
+204.22 -28.0976 -4997
+206.37 -26.8708 -4997
+205.693 -27.3841 -4997
+206.391 -27.3678 -4997
+204.911 -26.7662 -4997
+204.113 -28.4893 -4997
+205.229 -26.3573 -4997
+203.417 -29.3978 -4997
+202.918 -28.2047 -4997
+204.36 -25.9853 -4997
+206.844 -29.8061 -4997
+203.43 -28.997 -4997
+202.925 -28.67 -4997
+205.853 -26.6013 -4997
+204.601 -28.7828 -4997
+206.871 -28.2738 -4997
+204.803 -29.5426 -4997
+204.059 -26.2307 -4997
+206.955 -26.056 -4986.56
+203.753 -26.9636 -4997
+206.623 -26.0968 -4997
+206.899 -26.3642 -4997
+207.022 -29.4009 -4997
+203.213 -25.5082 -4968.71
+204.197 -27.1084 -4997
+203.091 -25.9188 -4997
+207.035 -27.5745 -4997
+202.712 -25.5382 -4997
+205.22 -29.7751 -4997
+205.502 -29.4554 -4997
+203.903 -26.6655 -4997
+206.279 -29.8352 -4997
+205.774 -29.8337 -4997
+204.006 -25.7671 -4997
+205.946 -29.5277 -4997
+204.057 -28.9637 -4997
+206.704 -27.8493 -4997
+203.439 -26.6665 -4997
+204.621 -26.3421 -4997
+205.622 -27.8275 -4997
+203.461 -27.8323 -4997
+202.984 -27.7049 -4997
+204.322 -27.7769 -4997
+203.871 -27.7425 -4997
+205.135 -27.9053 -4997
+204.663 -27.9995 -4997
+206.024 -28.1331 -4997
+206.437 -28.097 -4997
+206.151 -27.7645 -4997
+205.249 -27.5738 -4997
+203.409 -27.4745 -4997
+203.313 -28.0858 -4997
+203.743 -28.1292 -4997
+205.551 -28.2057 -4997
+205.08 -28.2959 -4997
+205.948 -28.4638 -4997
+204.616 -28.3847 -4997
+206.437 -28.4644 -4997
+204.661 -27.0637 -4997
+202.955 -27.1861 -4997
+203.385 -27.0631 -4997
+206.855 -27.1352 -4997
+207.171 -26.9681 -4997
+205.11 -27.2177 -4997
+204.692 -27.522 -4997
+203.798 -27.3183 -4997
+203.009 -26.7555 -4997
+206.816 -26.7257 -4997
+204.395 -26.7041 -4997
+204.3 -29.5025 -4997
+205.074 -29.4011 -4997
+203.097 -29.5459 -4997
+206.389 -29.3806 -4997
+203.829 -29.6631 -4997
+203.436 -29.7985 -4997
+206.696 -29.0879 -4997
+207.154 -28.974 -4997
+204.667 -29.1919 -4997
+205.178 -29.0405 -4997
+202.914 -29.1538 -4997
+205.798 -29.1447 -4997
+204.719 -29.8873 -4997
+204.227 -29.9786 -4997
+203.013 -29.8741 -4997
+206.909 -28.6175 -4997
+206.195 -28.8555 -4997
+205.534 -28.6605 -4997
+204.994 -28.6326 -4997
+203.487 -28.5119 -4997
+206.678 -28.7998 -4997
+206.23 -25.9259 -4997
+203.589 -25.8497 -4997
+204.758 -25.9509 -4997
+205.781 -26.1296 -4997
+205.255 -25.8377 -4997
+203.034 -26.3452 -4997
+206.668 -25.7955 -4997
+206.214 -25.4828 -4997
+203.526 -26.2688 -4997
+206.366 -26.3859 -4997
+205.692 -25.266 -4997
+206.039 -25.0919 -4997
+205.245 -25.3813 -4997
+206.427 -25.1911 -4997
+204.767 -25.4962 -4997
+206.757 -25.4401 -4979.84
+205.682 -24.9524 -4997
+206.354 -24.8894 -4988.28
+205.929 -24.7625 -4997
+205.309 -24.9836 -4989.54
+205.738 -25.6805 -4997
+203.654 -25.4738 -4912.34
+206.261 -24.5413 -4972.41
+204.005 -25.4376 -4865.59
+206.783 -25.0765 -4957.15
+206.736 -24.6886 -4940.24
+204.758 -24.9967 -4946.44
+205.49 -24.664 -4959.3
+205.8 -24.4298 -4942.49
+206.127 -24.265 -4907.22
+206.629 -24.2575 -4909.51
+204.993 -24.5924 -4908.6
+202.883 -25.1651 -4787.92
+207.217 -24.4718 -4881.69
+204.265 -25.1964 -4747.77
+207.072 -24.0662 -4867.1
+205.293 -24.2715 -4887.82
+205.73 -24.0796 -4867.55
+206.224 -24.0204 -4854.88
+203.335 -25.1414 -4669.52
+204.277 -24.8109 -4564.47
+204.662 -24.1131 -4616.84
+204.179 -24.1816 -4299.81
+203.773 -25.139 -4656.33
+203.796 -24.0844 -4187.1
+202.92 -24.4613 -4325.85
+203.049 -24.8642 -4537.68
+204.463 -24.5293 -4607.15
+203.481 -24.7466 -4368.85
+203.94 -24.8721 -4452.31
+203.935 -24.4966 -4227.16
+207.349 -27.3042 -4997
+208.333 -29.0173 -4997
+208.463 -29.8619 -4997
+207.497 -29.8023 -4997
+207.561 -27.6848 -4997
+208.436 -29.4643 -4997
+208.381 -28.6469 -4997
+207.747 -28.9723 -4997
+207.735 -28.3284 -4997
+208.147 -28.3459 -4997
+207.846 -28.0331 -4997
+207.307 -28.0434 -4997
+207.963 -28.6477 -4997
+207.386 -28.5524 -4997
+207.584 -27.0111 -4997
+207.264 -26.6669 -4997
+207.393 -26.2715 -4892.1
+207.743 -26.6594 -4914.58
+208.29 -28.0194 -4868.53
+207.837 -27.4035 -4720.72
+207.989 -27.7502 -4338.97
+208.014 -29.6295 -4997
+208.865 -29.7139 -4997
+209.232 -29.6033 -4928.14
+207.594 -29.3471 -4997
+208.884 -29.2762 -4997
+208.038 -29.2859 -4997
+209.516 -24.4159 -4997
+209.234 -24.6335 -4867.17
+208.526 -24.7146 -4994.1
+207.223 -25.3283 -4970.04
+208.003 -25.0315 -4993.8
+207.664 -25.1892 -4987.3
+208.816 -24.5065 -4989.91
+208.084 -24.6851 -4954.31
+208.458 -25.0671 -4780.28
+208.358 -24.4013 -4938.78
+207.643 -24.7957 -4933.23
+209.169 -24.2508 -4964.22
+209.573 -24.1076 -4918.59
+207.202 -24.9215 -4914.2
+208.684 -24.1169 -4919.53
+207.213 -25.7888 -4815.07
+207.961 -24.3526 -4900.1
+209.538 -29.5069 -4840.98
+207.694 -24.4872 -4896.3
+209.638 -24.7272 -4365.7
+208.113 -24.071 -4874.88
+207.861 -26.3656 -4749.4
+209.579 -29.8416 -4164.59
+207.72 -25.6083 -4711.82
+208.925 -24.9217 -4675.73
+207.563 -24.1309 -4838.28
+209.286 -29.3143 -4747.79
+208.192 -25.4248 -4633.83
+208.142 -27.0647 -4706.37
+209.591 -29.1802 -4645.63
+209.719 -25.0599 -3557.94
+208.192 -26.621 -4662.34
+209.381 -24.9881 -4482.55
+207.774 -26.0216 -4643.29
+209.474 -28.8158 -4435.61
+209.571 -25.2683 -3781.85
+208.768 -28.8225 -4628.38
+209.484 -28.4019 -4178.14
+208.635 -28.3884 -4303.93
+208.206 -26.2546 -4570.81
+209.537 -25.5889 -3274.25
+209.603 -28.0111 -3997
+209.187 -29.005 -4556.65
+208.854 -25.2662 -4449.87
+208.576 -26.8834 -4404.72
+209.396 -25.9611 -3997
+208.629 -25.4274 -4431.74
+208.183 -25.8691 -4426.76
+209.611 -26.3388 -4031.27
+208.355 -27.6055 -4121.97
+209.366 -27.6936 -3997
+209.675 -26.7792 -4264.05
+209.698 -27.1721 -4263.84
+208.569 -26.5167 -4398.84
+208.585 -26.1459 -4376.71
+209.216 -25.2868 -4250.64
+208.677 -27.2819 -4285.89
+208.845 -26.7294 -4214.44
+209.093 -28.6102 -4312.38
+208.61 -25.7584 -4221.18
+209.034 -25.6203 -4102.29
+209.015 -27.0524 -4106.93
+209.334 -26.5913 -3997
+209.38 -26.9508 -3997
+208.955 -26.4372 -4130.03
+209.021 -28.2787 -4107.12
+209.183 -28.01 -3997
+208.728 -28.0009 -3997
+209.425 -27.3289 -3997
+208.897 -27.6741 -3997
+208.977 -26.036 -4102.78
+209.111 -26.7571 -4031.78
+209.256 -26.2737 -3997
+209.078 -27.411 -3997
+157.077 -26.5945 -4403.64
+157.065 -29.0861 -4637.26
+157.063 -29.9306 -4518.07
+157.069 -26.2409 -4500.1
+157.027 -29.5203 -4650.36
+157.077 -28.7121 -4614.46
+157.36 -28.9212 -4503.22
+157.407 -26.3773 -3895.17
+157.019 -25.9552 -4614.5
+157.079 -28.3499 -4236.96
+157.396 -25.9817 -4323.5
+157.135 -25.6344 -4422.84
+157.457 -28.5501 -4423.63
+157.519 -25.6525 -3532.59
+157.428 -29.3044 -4514.32
+157.772 -28.9532 -3369.26
+157.375 -28.1421 -3564.46
+157.843 -28.513 -3238.72
+157.129 -26.9639 -3762.46
+157.747 -26.1741 -3167.04
+157.062 -27.9951 -3438.48
+157.44 -25.3088 -3287.95
+157.762 -29.3371 -3103.41
+157.44 -26.7285 -3734.25
+157.379 -29.7109 -3193.79
+157.316 -27.1928 -3191.52
+157.044 -25.297 -3832.45
+157.691 -28.2201 -3138.97
+158.067 -28.697 -3061.17
+157.754 -26.5269 -3566.89
+157.053 -27.6427 -3564
+157.06 -27.3111 -3135.18
+157.451 -27.0031 -3433.01
+158.421 -26.7767 -3455.56
+158.405 -26.4612 -3531.11
+157.357 -27.7988 -3244.88
+157.347 -27.456 -3195.85
+158.378 -26.1746 -3156.4
+158.08 -26.3319 -3312.58
+158.472 -27.0771 -3331.96
+157.638 -29.5619 -2582.97
+158.097 -26.6629 -3411.12
+158.154 -26.9903 -2984.8
+157.787 -25.8258 -2913.05
+157.513 -24.9929 -3195.22
+157.601 -27.9386 -3372.8
+157.583 -27.2344 -3194.81
+157.691 -27.5978 -3069.17
+158.492 -27.3906 -3233.71
+157.773 -26.9131 -3247.75
+158.507 -25.8573 -3033.93
+157.137 -24.9841 -3197.57
+158.101 -26.0035 -2764.92
+158.373 -28.6528 -2952.51
+158.438 -25.5548 -3045.06
+157.398 -24.7322 -2972.23
+157.928 -27.2561 -3001.9
+157.888 -27.9221 -2751.23
+158.47 -27.7106 -2854.94
+158.519 -28.3314 -2749.22
+158.593 -25.3381 -3009.17
+158.511 -25.0571 -2736.65
+157.963 -28.2125 -2497.78
+158.236 -27.2559 -2856.71
+157.727 -24.7798 -2712.52
+158.514 -28.8829 -2946.42
+157.827 -25.4824 -2708.4
+157.082 -24.6284 -2722.48
+158.452 -29.8178 -2421.24
+158.139 -25.6765 -2902.04
+157.33 -24.5007 -2588.15
+158.467 -29.2 -2481.89
+158.646 -24.7432 -2598.39
+158.209 -28.9419 -2612.97
+157.6 -24.5073 -2614.64
+158.215 -25.3204 -2656.62
+158.255 -28.0181 -2257.45
+157.703 -29.8808 -2030.34
+157.94 -24.5192 -2594.51
+158.678 -24.4962 -2649.82
+158.35 -24.8348 -2362.91
+158.161 -28.4094 -2271.93
+158.126 -27.5885 -2498.26
+157.855 -25.1032 -2391.06
+158.276 -29.5414 -1905.95
+158.066 -29.2597 -2116.68
+158.344 -24.5528 -2580.54
+158.197 -25.023 -2061.43
+157.768 -24.2211 -2497
+158.061 -24.8014 -1987.52
+158.591 -24.2416 -2468.03
+157.139 -24.3228 -2497
+158.166 -24.2444 -2497
+158.012 -23.9837 -2497
+157.725 -23.9519 -2497
+157.533 -24.0487 -2497
+158.376 -23.9841 -2477.65
+157.438 -24.28 -2497
+157.275 -24.0364 -2497
+156.958 -24.0625 -2497
+158.089 -29.8513 -2191.67
+157.917 -29.5765 -2087.42
+206.122 -40.5897 -4997
+203.536 -43.9299 -4997
+207.606 -44.2744 -4997
+204.145 -40.1685 -4997
+204.631 -40.3944 -4997
+203.42 -41.6955 -4997
+205.764 -40.364 -4997
+205.372 -42.6394 -4997
+207.257 -44.3718 -4997
+204.963 -43.2876 -4997
+204.968 -41.7171 -4997
+204.027 -44.0382 -4997
+207.132 -44.0113 -4997
+203.904 -43.5996 -4997
+203.533 -40.2813 -4997
+205.127 -43.6536 -4997
+203.379 -43.1443 -4997
+203.988 -43.1061 -4997
+204.893 -41.1883 -4997
+208.179 -40.472 -4997
+204.15 -40.5853 -4997
+203.835 -42.123 -4997
+203.937 -41.6415 -4997
+203.005 -41.7248 -4997
+204.606 -40.7823 -4997
+203.022 -43.8969 -4997
+206.101 -44.5111 -4997
+205.792 -42.3478 -4997
+205.644 -40.6691 -4997
+205.9 -42.7651 -4997
+206.433 -42.2995 -4997
+205.539 -41.0856 -4997
+205.117 -42.1828 -4997
+204.417 -41.4676 -4997
+207.562 -40.4441 -4997
+205.455 -41.9421 -4997
+206.675 -41.8646 -4997
+203.679 -40.8909 -4997
+205.974 -41.902 -4997
+203.767 -44.2456 -4997
+207.604 -44.6264 -4997
+203.247 -41.9853 -4997
+204.651 -43.9979 -4997
+206.101 -40.9871 -4997
+204.545 -42.999 -4997
+203.178 -43.5344 -4997
+207.638 -43.9537 -4997
+206.653 -41.3233 -4997
+206.93 -40.2748 -4997
+207.085 -40.6971 -4997
+207.174 -41.1692 -4997
+205.383 -44.0555 -4997
+203.773 -44.6664 -4298.17
+204.271 -41.0316 -4997
+204.48 -41.951 -4997
+205.115 -42.9755 -4997
+206.495 -44.382 -4997
+205.467 -43.3638 -4997
+204.634 -42.4996 -4997
+203.534 -41.3243 -4997
+203.017 -44.6101 -4997
+206.06 -41.4419 -4997
+207.231 -41.6432 -4997
+206.093 -40.2702 -4997
+205.704 -43.0389 -4997
+205.244 -40.261 -4997
+207.341 -43.0287 -4997
+207.841 -42.974 -4997
+206.834 -43.0828 -4997
+206.28 -43.0898 -4997
+203.052 -42.7594 -4997
+203.523 -42.8089 -4997
+207.774 -43.3748 -4997
+207.283 -43.407 -4997
+206.779 -43.535 -4997
+206.074 -43.457 -4997
+206.352 -42.7094 -4997
+207.889 -42.571 -4997
+207.404 -42.6327 -4997
+206.9 -42.685 -4997
+203.268 -42.386 -4997
+206.977 -42.334 -4997
+205.624 -44.4294 -4997
+206.885 -44.2784 -4997
+205.14 -44.3343 -4997
+203.284 -44.2527 -4997
+206.488 -44.7722 -4997
+207.045 -44.6589 -4997
+205.93 -44.7923 -4997
+206.459 -43.9436 -4997
+204.267 -44.3732 -4516.16
+204.606 -44.8317 -3063.18
+205.262 -44.7292 -4877.37
+205.758 -43.7708 -4997
+207.633 -43.6605 -4997
+207.293 -43.7135 -4997
+204.539 -43.4461 -4997
+205.968 -44.1797 -4997
+206.618 -40.8619 -4997
+208.069 -40.8226 -4997
+207.664 -40.9897 -4997
+203.204 -41.0291 -4997
+203.968 -41.2712 -4997
+202.714 -40.9588 -4997
+202.997 -41.3621 -4997
+207.732 -41.4746 -4997
+205.474 -41.5448 -4997
+206.534 -40.4276 -4997
+202.741 -40.1343 -4997
+205.091 -40.7271 -4997
+207.725 -41.8636 -4997
+208.174 -41.8152 -4997
+207.426 -42.1637 -4997
+208.022 -42.1927 -4997
+203.051 -40.6316 -4997
+203.966 -42.6538 -4997
+204.781 -44.4592 -4174.3
+208.758 -43.7209 -4997
+208.308 -44.2752 -4997
+209.528 -42.0623 -4997
+208.457 -40.1985 -4997
+208.83 -40.3832 -4997
+208.854 -44.2213 -4997
+209.383 -43.8231 -4997
+208.166 -43.8451 -4997
+209.456 -42.4948 -4997
+208.523 -40.851 -4997
+209.269 -42.9514 -4997
+208.595 -40.5364 -4997
+208.358 -43.3044 -4997
+209.364 -39.8935 -4997
+208.235 -42.8722 -4997
+208.696 -42.9413 -4997
+208.899 -42.5495 -4997
+208.381 -42.5543 -4997
+208.535 -42.1888 -4997
+209.04 -42.1367 -4997
+207.95 -44.1697 -4997
+208.024 -44.4897 -4997
+209.505 -44.3398 -4997
+209.534 -40.7358 -4997
+209.009 -40.7454 -4997
+209.266 -40.359 -4997
+209.431 -41.1805 -4997
+208.893 -41.1496 -4997
+208.364 -41.3304 -4997
+208.862 -40.0457 -4997
+208.656 -41.8306 -4997
+209.136 -41.6409 -4997
+159.463 -43.4437 -4908.73
+158.006 -40.9072 -4774.9
+160.156 -42.7676 -4812.04
+160.18 -42.3337 -4950.09
+158.763 -44.0498 -4817.11
+159.833 -43.6744 -4941.77
+159.847 -44.4465 -5119.84
+160.437 -44.4644 -5015.55
+160.072 -44.8862 -4938.88
+158.866 -40.1206 -4933.49
+158.263 -44.1713 -4670.76
+159.393 -44.8128 -5068.39
+158.17 -44.8077 -4927.32
+158.765 -44.8002 -5068.99
+158.516 -44.4438 -5048.89
+159.253 -41.5272 -4802.5
+159.2 -44.3478 -5159.05
+159.333 -43.8571 -4934.93
+159.806 -44.0428 -5201.4
+160.169 -43.2734 -4918.82
+160.234 -44.1609 -5193.16
+160.387 -43.7701 -5064.41
+159.687 -41.7475 -4705.46
+160.19 -41.9164 -4931.85
+158.858 -41.271 -4720.89
+159.007 -42.8136 -4748.59
+157.712 -41.7764 -4624.17
+158.225 -41.431 -4762.88
+157.577 -40.5746 -4665.31
+159.638 -42.1557 -4858.51
+158.513 -43.0696 -4670.71
+158.343 -43.8274 -4609.19
+159.562 -43.0065 -4734.28
+158.892 -43.6423 -4729.17
+159.711 -41.3882 -4924.38
+159.149 -41.9353 -4714.06
+159.43 -40.1526 -4945.4
+160.084 -40.2587 -4780.21
+158.016 -40.4441 -4734.86
+158.525 -41.0055 -4823.18
+159.08 -40.4701 -4901.82
+157.628 -41.3165 -4545.97
+158.464 -43.4387 -4604.09
+159.41 -41.1217 -4884.71
+160.154 -41.5152 -4925.99
+158.17 -41.9237 -4664.73
+158.542 -40.5515 -4955.28
+157.603 -44.7791 -4708.63
+157.948 -44.4495 -4800.3
+158.979 -43.2395 -4692.39
+159.59 -42.5771 -4706.51
+158.698 -41.7126 -4667.89
+158.298 -40.0616 -4840.76
+159.001 -40.8517 -4894.11
+160.59 -41.2423 -4839.02
+157.762 -42.1222 -4412.07
+159.593 -40.6591 -4920.67
+158.129 -43.2586 -4599.11
+159.054 -42.3763 -4649.76
+160.018 -41.0688 -4848.56
+157.934 -43.5805 -4566.07
+157.101 -40.7494 -4564.89
+157.16 -40.2914 -4439.91
+157.208 -42.9514 -4599.71
+157.645 -43.2142 -4696.42
+158.592 -42.155 -4689.43
+158.089 -42.9901 -4606.14
+158.43 -42.6477 -4702.31
+157.748 -42.7387 -4669.48
+157.613 -42.3861 -4824.86
+157.13 -43.2877 -4749.08
+157.225 -42.5804 -4681.95
+157.282 -42.1548 -4712.85
+157.493 -40.9474 -4484.12
+160.428 -40.5429 -4760.72
+157.675 -40.0926 -4795.1
+160.121 -40.6797 -4877.73
+158.048 -42.3345 -4741.97
+157.295 -43.6524 -4785.59
+160.48 -40.858 -4856.85
+157.147 -41.6674 -4516.67
+157.754 -44.0454 -4542.87
+157.154 -41.1893 -4469.86
+157.133 -44.7236 -4643.11
+157.114 -44.0892 -4551.09
+157.383 -44.4307 -4565.14
+160.743 -42.5008 -4897.12
+163.036 -44.8254 -4867.11
+162.545 -44.9156 -4865.96
+160.984 -43.3883 -5021.18
+160.971 -43.805 -5068.1
+160.688 -44.1137 -5127.46
+161.84 -41.9965 -4865.11
+161.28 -42.2522 -4898.51
+161.287 -42.6567 -4982.66
+161.319 -43.0034 -4969.93
+161.803 -42.8206 -4899.33
+161.706 -43.2393 -4877.24
+161.553 -43.7032 -5016.27
+161.215 -44.0975 -5068.87
+161.709 -44.0694 -4877.22
+160.728 -42.0843 -4871.96
+162.664 -44.5631 -4866.51
+162.209 -44.2492 -4903.14
+160.781 -42.9239 -4981.09
+161.271 -41.8275 -4910.09
+161.813 -41.5613 -4780.76
+162.066 -43.863 -4853.43
+160.93 -44.3847 -5072.41
+161.811 -42.4217 -4957.17
+162.191 -43.5082 -4787.65
+162.824 -44.2061 -4879.36
+161.766 -41.2008 -4725.76
+162.374 -42.1817 -4897.67
+162.023 -44.7892 -4837.52
+161.47 -44.4674 -4889.34
+161.227 -41.3496 -4772.67
+162.537 -41.7044 -4855.19
+160.693 -41.6559 -4899.83
+162.38 -43.0296 -4987.02
+163.493 -44.7617 -4785.32
+160.849 -44.7945 -4922.07
+162.327 -42.5892 -4910.61
+162.653 -43.8231 -4894.8
+162.245 -41.2633 -4788.12
+163.3 -44.4304 -4813.09
+161.41 -44.904 -4854.91
+161.503 -40.9161 -4615.13
+160.961 -40.9263 -4778.78
+162.043 -40.9137 -4837.65
+163.27 -43.9677 -4860.38
+163.804 -44.8933 -4815.05
+162.502 -40.9509 -4746.5
+162.762 -42.7057 -4946.14
+162.825 -41.208 -4760.57
+163.143 -41.8244 -4827.95
+163.172 -43.6216 -4747.91
+163.869 -44.5718 -4821.92
+164.265 -44.852 -4730.54
+163.856 -44.1395 -4851.34
+164.444 -44.3817 -4778.34
+163.112 -42.9765 -5021.86
+163.322 -43.3331 -4905.14
+160.7 -40.2847 -4749.75
+162.829 -42.3759 -4887.54
+162.866 -42.0519 -4833.86
+163.176 -42.5781 -4475.9
+162.802 -43.3864 -4855.79
+160.755 -40.6337 -4807.85
+163.717 -43.0975 -4209.76
+164.807 -44.7435 -4671.51
+163.662 -41.7201 -4649.16
+162.962 -40.7943 -4717.31
+163.242 -41.4783 -4828.91
+161.195 -39.9698 -4819.64
+163.696 -42.6493 -4174.28
+161.816 -40.5549 -4699.1
+163.447 -42.1731 -4778.73
+163.821 -41.3592 -4669.32
+162.441 -40.5583 -4588.04
+163.81 -43.5855 -4707.79
+162.103 -40.1629 -4659.69
+161.218 -40.5086 -4765.22
+163.476 -41.0469 -4603.75
+163.042 -40.3724 -4484.86
+164.117 -41.5698 -4599.28
+161.618 -40.2129 -4720.55
+165.218 -43.7944 -4619.68
+163.495 -40.6002 -4284.5
+165.685 -44.2376 -4427.47
+164.082 -41.0285 -4201.05
+164.495 -43.4999 -4107.92
+165.685 -43.8902 -4461.44
+164.168 -41.9137 -4674.5
+162.67 -40.0745 -4686.23
+165.684 -44.5175 -4506.03
+165.521 -43.529 -4452.72
+164.548 -42.1934 -4583.55
+164.691 -41.8858 -4610.49
+164.594 -41.5677 -4705.16
+164.701 -41.2486 -4480.82
+164.545 -40.997 -4494.46
+164.952 -42.4498 -4505.48
+165.029 -42.0495 -4615.27
+163.893 -40.7626 -4322.2
+165.451 -42.2011 -4295.6
+163.143 -40.0061 -4269.06
+163.575 -40.1591 -3895.41
+165.499 -42.5457 -4420.6
+164.851 -40.6525 -3838.97
+164.246 -43.1843 -3221.65
+165.159 -42.7591 -4531.96
+165.061 -41.7058 -4600.09
+164.997 -41.0211 -4482.47
+165.417 -43.2351 -4384.77
+165.957 -42.6393 -4323.45
+165.052 -41.3637 -4516.02
+164.318 -41.2934 -4654.07
+165.586 -42.9224 -4296.39
+164.341 -42.5553 -3825.38
+165.817 -43.2549 -4194.16
+166.274 -43.3345 -3995.26
+164.046 -42.2996 -4144.14
+165.406 -40.7348 -4075.76
+165.629 -40.3902 -4012.07
+165.469 -41.8608 -4406.69
+165.097 -43.0629 -3866.86
+165.041 -43.433 -4275.42
+164.127 -42.8683 -2912.4
+164.7 -43.2014 -3838.7
+166.211 -42.0422 -3887.85
+166.303 -41.4014 -3979.7
+164.652 -42.8628 -4053.97
+166.573 -40.5243 -2798.51
+164.031 -40.4073 -3542.63
+164.041 -40.0807 -3629.85
+164.34 -40.1568 -3586.97
+164.328 -40.7102 -4272.21
+164.542 -40.3816 -3497.21
+175.83 -44.8743 -1186.16
+175.514 -44.9091 -1128.64
+173.208 -44.9773 -1217.55
+172.428 -44.8181 -1030.47
+173.468 -44.9138 -1081.1
+175.998 -44.7181 -1056.65
+175.229 -44.9055 -1067.69
+173.01 -44.8708 -1151.66
+175.899 -42.8736 -623.61
+173.252 -44.8122 -1070.87
+176.105 -44.568 -870.81
+174.969 -44.881 -892.51
+172.845 -44.7694 -957.44
+175.879 -44.5849 -891.86
+174.51 -44.9685 -938.15
+174.776 -45.0243 -1007.77
+174.167 -44.6006 -908.33
+176.28 -44.4493 -852.55
+173.645 -44.532 -719.63
+173.063 -44.7013 -782.41
+175.128 -44.7488 -825.18
+174.906 -44.7125 -727.03
+175.776 -44.4887 -712.7
+174.402 -44.5829 -801.17
+176.387 -42.9031 -505.89
+173.559 -42.513 -35.03
+176.083 -44.4147 -311.1
+172.887 -44.6392 -547.79
+174.682 -44.6334 -841.82
+173.763 -44.4441 -703.74
+176.388 -44.3248 -719.43
+175.062 -44.6133 -766.06
+175.928 -44.4652 -711.46
+175.216 -44.5102 -733.11
+174.89 -44.5811 -748.59
+176.203 -44.3244 -565.19
+174.914 -42.989 -614.91
+175.612 -44.4478 -768.23
+173.6 -44.4249 -658.82
+175.388 -44.3863 -669.99
+174.135 -43.3608 -593.93
+174.601 -44.4796 -719.25
+174.519 -43.1271 -560.77
+175.005 -44.4832 -704.31
+175.6 -44.305 -613.94
+172.017 -44.9011 -192.96
+174.057 -44.3759 -684.82
+175.915 -43.0084 -502.68
+174.797 -44.4684 -674.8
+175.15 -44.3725 -629.09
+174.297 -43.3162 -574.09
+174.441 -44.4012 -681.97
+174.415 -43.2218 -553.65
+173.273 -44.3974 -395.13
+175.26 -44.2749 -569.07
+175.251 -44.1601 -493.97
+175.216 -44.0258 -452.45
+173.709 -42.9253 -593.69
+174.108 -43.4871 -588.26
+175.79 -44.3674 -560.07
+174.68 -44.3193 -599.14
+173.973 -43.4046 -609.72
+175.428 -44.2276 -563.36
+174.927 -44.3449 -594.96
+175.604 -44.1666 -539.46
+174.463 -44.2392 -596.12
+174.109 -44.2336 -584.66
+175.081 -44.2417 -551.77
+173.708 -44.341 -649.03
+173.59 -42.5726 -368.64
+176.224 -42.9828 -486.58
+175.631 -44.0544 -530.67
+176.362 -43.0234 -445.87
+172.699 -44.6784 -435.62
+175.439 -44.0747 -511.97
+175.762 -44.2304 -557.13
+174.431 -44.0932 -557.27
+174.87 -44.1988 -536.08
+175.079 -42.9973 -432.94
+176.279 -44.2122 -412.92
+174.115 -44.1007 -554.02
+174.471 -43.3347 -529.22
+174.248 -43.5681 -526.73
+174.549 -44.0024 -533.8
+174.648 -44.1292 -542.44
+174.519 -43.4442 -494.2
+174.893 -43.1089 -300.94
+173.964 -44.1656 -547.8
+174.396 -41.9607 -153.49
+175.56 -43.9509 -483.66
+175.05 -44.1088 -503.18
+174.577 -43.2438 -490.69
+175.771 -43.9684 -512.01
+176.338 -44.0633 -453.32
+174.709 -44.0064 -512.86
+174.283 -43.9219 -554.86
+174.462 -43.885 -552.03
+173.156 -44.369 -191.11
+175.764 -44.1076 -530.11
+175.022 -43.9766 -455.7
+174.857 -44.058 -487.11
+174.659 -43.9063 -494.73
+175.683 -43.8494 -421.85
+175.359 -43.935 -466.86
+174.61 -43.7934 -514.15
+174.575 -43.6737 -528.04
+174.434 -43.7538 -554.47
+174.548 -43.5564 -509.67
+174.318 -43.8207 -555.28
+176.118 -44.0027 -476.87
+176.3 -43.9093 -499.58
+174.707 -43.5921 -440.86
+174.674 -43.4769 -404.53
+174.632 -43.3591 -427
+174.245 -43.7095 -523.14
+175.958 -43.9151 -527.28
+174.761 -41.7754 -97
+174.742 -43.7043 -472.8
+174.836 -43.9333 -471.74
+173.806 -44.2357 -573.07
+173.576 -43.1496 -119.83
+175.222 -43.0252 -324.67
+175.478 -43.8237 -430.37
+174.094 -43.6137 -494.14
+175.834 -43.8565 -453.83
+175.926 -43.1496 -405.19
+174.79 -43.817 -459.53
+175.341 -43.0701 -199.89
+175.177 -43.8997 -454.39
+176.258 -43.1185 -387.21
+176.291 -43.7719 -428.62
+176.126 -43.8458 -468.22
+176.102 -43.1881 -379.15
+173.469 -43.4205 -511.26
+174.993 -43.8373 -441.05
+175.769 -43.1799 -439.33
+175.303 -43.8396 -438.43
+174.1 -43.9583 -523.09
+175.178 -43.7863 -430.86
+174.788 -43.3916 -353.96
+175.949 -44.3652 -291.05
+172.303 -44.7472 -167.7
+172.546 -44.6478 -230.65
+176.293 -43.6607 -388.84
+175.961 -43.789 -420.93
+175.628 -43.7397 -350.63
+175.012 -43.0842 -336.76
+174.904 -43.7247 -427.06
+176 -41.2569 -51.34
+176.208 -43.5689 -365.45
+175.559 -43.1156 -162.67
+174.169 -43.8318 -507.78
+173.953 -44.0419 -468.76
+176.114 -43.6959 -375.05
+174.594 -41.5541 -475.03
+175.86 -43.2477 -385.95
+175.064 -43.7139 -403.19
+175.216 -43.682 -362.88
+176.152 -44.1363 -245.03
+173.236 -44.3156 -208.8
+175.989 -43.2643 -359.69
+173.813 -44.1107 -452.61
+174.667 -41.8336 -127.27
+174.827 -43.51 -342.61
+176.243 -43.2469 -333.09
+175.472 -43.7021 -346.15
+175.332 -43.7477 -387.6
+176.117 -43.2849 -351.84
+175.915 -43.6733 -331.64
+175.845 -43.5711 -287.81
+175.885 -43.3402 -316.69
+173.441 -44.1987 -194.54
+174.977 -43.161 -217.25
+175.922 -43.4595 -348.23
+173.971 -43.531 -237.27
+176.039 -43.3615 -364.47
+172.424 -44.6153 -155.96
+176.304 -43.4535 -341.67
+175.592 -43.6348 -281.29
+175.695 -43.5595 -257.9
+175.355 -43.6479 -274.52
+175.113 -43.6143 -309.71
+175.738 -43.2922 -231.39
+175.136 -43.0912 -226.57
+174.011 -43.8406 -364.21
+176.205 -43.3568 -344.73
+175.777 -43.4931 -286.99
+175.256 -43.1156 -149.02
+175.472 -43.6135 -273.89
+175.541 -43.5334 -223.41
+173.147 -44.3047 -154.97
+175.254 -43.5842 -211.31
+175.658 -43.4674 -240.94
+173.786 -43.9935 -212.43
+173.919 -43.9245 -309.71
+176.141 -44.2369 -112.62
+175.769 -43.4042 -301.67
+175.643 -43.2004 -206.41
+175.635 -43.3726 -195.93
+173.932 -43.6528 -149.68
+171.844 -44.8977 -131.46
+175.899 -44.1614 -215.18
+175.591 -43.2818 -121.97
+175.019 -43.2449 -142.46
+176.049 -44.3039 -132.38
+175.151 -43.5166 -143.01
+174.602 -41.4873 -244.6
+173.875 -43.8207 -112.66
+172.099 -44.8364 -190.8
+175.439 -43.1316 -115.71
+172.738 -44.427 -146.96
+175.344 -43.1449 -115.49
+173.604 -42.9809 -178.7
+174.992 -43.5388 -294.78
+173.494 -44.0489 -191.56
+174.541 -41.8647 -154.12
+173.65 -43.9948 -162.54
+173.835 -43.7283 -96.08
+175.392 -43.5568 -162.71
+175.536 -43.4311 -161.51
+173.065 -44.3292 -158.25
+173.842 -43.5555 -95.16
+173.38 -43.3819 -124.04
+175.908 -44.2725 -157.43
+175.12 -43.3055 -125.51
+173.781 -43.8855 -112.26
+175.191 -43.4291 -96.47
+175.186 -43.1694 -131.79
+173.468 -44.1292 -167.83
+173.786 -43.6399 -91.64
+173.759 -43.7911 -94.73
+172.635 -44.441 -155.51
+173.602 -42.7664 -197
+173.586 -43.0631 -128.92
+172.171 -44.762 -159.24
+175.066 -43.4389 -131.72
+175.122 -43.3751 -131.92
+172.84 -44.399 -127.02
+175.52 -43.2037 -84.57
+175.077 -43.1628 -190.59
+171.748 -44.9267 -133.64
+172.224 -44.6884 -126.81
+175.286 -43.1893 -102.28
+173.191 -44.2452 -144.58
+173.725 -43.7075 -88.81
+172.521 -44.5671 -158.76
+174.561 -41.777 -158.53
+171.64 -44.9286 -96.26
+171.983 -44.8304 -144.32
+173.358 -44.1476 -121.72
+175.42 -43.4683 -125.6
+175.205 -43.3519 -123.04
+173.677 -43.9247 -99.68
+172.045 -44.7557 -121
+172.677 -40.0125 -132.43
+174.436 -41.888 -124.26
+174.403 -41.4382 -116.26
+173.659 -43.4895 -82.55
+172.588 -44.5069 -127.52
+174.459 -41.8099 -119.22
+173.724 -43.5618 -87.62
+175.515 -43.3458 -119.48
+172.949 -44.3535 -130.34
+173.514 -43.1054 -102.4
+174.348 -41.9057 -145.86
+172.123 -44.6935 -117.4
+173.593 -42.9056 -110.37
+174.335 -42.0156 -110.58
+173.467 -43.976 -94.97
+173.675 -43.6326 -84.66
+172.789 -40.0281 -112.1
+174.413 -41.3282 -104.55
+173.093 -44.2638 -119.04
+175.287 -43.4939 -132.85
+171.873 -44.8287 -110.19
+173.655 -43.7618 -86.52
+173.668 -43.841 -91.17
+173.269 -44.1887 -121.34
+172.255 -44.6231 -119.4
+175.138 -43.2317 -137.54
+172.73 -40.0905 -121.95
+171.776 -44.8544 -101.41
+172.487 -44.5034 -119.03
+173.596 -43.9472 -110.75
+173.431 -43.4977 -83.82
+173.626 -43.6928 -86.52
+172.823 -40.0838 -110.63
+172.89 -40.038 -111.41
+172.284 -44.5639 -108.49
+172.671 -40.1663 -129.59
+173.185 -44.184 -104.62
+176.027 -44.2039 -98.25
+173.002 -44.2801 -109.1
+172.042 -44.6845 -105.94
+175.484 -43.2733 -93.06
+173.517 -43.0109 -99.2
+171.933 -44.7695 -107.05
+175.211 -43.2827 -101.53
+174.467 -41.7247 -114.07
+173.493 -43.2111 -101.31
+174.573 -41.6937 -139.78
+173.388 -44.0794 -113.48
+172.96 -40.0656 -109.65
+174.553 -40.9973 -198.55
+175.399 -43.2179 -77.98
+172.534 -44.4444 -107.42
+173.395 -44.0096 -95.92
+172.167 -44.632 -110.17
+174.439 -40.9416 -133.26
+171.69 -44.8689 -92.49
+172.399 -44.5045 -120.46
+173.279 -44.1317 -100.42
+172.802 -40.15 -109.16
+175.437 -43.3924 -89.34
+172.758 -44.361 -101.17
+173.49 -43.0624 -99.84
+174.661 -41.7389 -117.84
+174.178 -42.1326 -135.97
+172.91 -40.1091 -108.32
+172.748 -40.2071 -110.81
+173.476 -43.1483 -95.63
+173.606 -43.563 -84.84
+172.981 -40.014 -111.57
+172.082 -44.6349 -104.13
+171.851 -44.7671 -97.49
+173.586 -43.6302 -85.15
+173.119 -44.2052 -101.57
+171.958 -44.6987 -100.43
+174.501 -41.6483 -107.3
+173.58 -43.7358 -80.24
+172.674 -40.2418 -115.49
+173.524 -43.9355 -94.84
+172.317 -44.5085 -106.58
+175.224 -43.2267 -105.72
+175.284 -43.3227 -92.58
+175.316 -43.3977 -78.17
+172.99 -40.0992 -106.13
+172.833 -40.2179 -99.76
+172.91 -44.2812 -88.2
+173.029 -40.0596 -107.58
+172.911 -40.1775 -102.42
+173.314 -44.0962 -96.75
+173.078 -40.0014 -111.84
+171.888 -44.7272 -97.64
+174.379 -41.7723 -127.38
+171.793 -44.7975 -94.68
+172.578 -44.3864 -99.54
+172.432 -44.4391 -93.52
+172.765 -40.2606 -99.34
+174.367 -40.9603 -130.4
+172.993 -40.1448 -100.87
+171.622 -44.8725 -82.94
+173.214 -44.1395 -101.5
+173.108 -40.0658 -105.23
+173.179 -40.0201 -104.41
+174.463 -40.2264 -90.84
+172.2 -44.573 -102.06
+172.696 -40.3125 -93.3
+172.119 -44.5789 -93.63
+173.056 -40.1095 -101.2
+173.568 -43.7979 -80.73
+173.331 -43.4951 -66.15
+173.576 -43.8825 -88.28
+172.85 -40.2737 -83.51
+173.039 -44.2205 -95.77
+172.229 -44.5091 -90.93
+173.175 -40.0776 -99.45
+172.35 -44.4545 -86.92
+173.256 -40.0097 -100.72
+172.843 -44.3292 -95.63
+174.42 -41.6645 -94.65
+175.394 -43.3171 -81.67
+173.833 -40.0962 -97
+174.266 -40.8767 -80.33
+174.255 -40.9628 -61.56
+174.044 -42.1733 -83.04
+174.189 -40.392 -99.27
+174.209 -40.3011 -97
+173.881 -40.1418 -97.84
+174.826 -40.3705 -96.63
+173.927 -40.6566 -105.67
+174.124 -40.3587 -100.21
+173.886 -40.3374 -100.32
+174.258 -40.7906 -101.42
+173.804 -40.044 -101.2
+174.305 -40.9276 -117.91
+174.137 -40.3047 -99.96
+173.931 -40.1858 -97
+174.893 -40.4627 -97.16
+174.076 -40.26 -97
+174.34 -41.3536 -97.2
+174.872 -40.8448 -83.72
+174.291 -40.3007 -97.97
+174.142 -40.6607 -103.19
+174.114 -40.6159 -101.47
+174.074 -40.6613 -172.44
+173.54 -43.5903 -81.4
+173.915 -40.2881 -105.13
+173.904 -40.2313 -102.18
+174.597 -40.2778 -95.04
+174.183 -40.3432 -97.34
+174.16 -40.2492 -95.72
+173.791 -40.1464 -92.95
+174.037 -40.7129 -77.69
+174.827 -40.4706 -104.12
+174.843 -40.4202 -97.87
+174.138 -40.5269 -111.72
+174.164 -40.4837 -107.17
+174.117 -40.4228 -110.06
+173.952 -40.3483 -116.93
+173.901 -40.0989 -95.95
+172.793 -40.3117 -84.61
+174.038 -40.4291 -119.05
+173.98 -40.4638 -95.75
+173.992 -40.6628 -91.4
+174.181 -42.0033 -107.9
+174.872 -40.5745 -104.77
+174.859 -40.5169 -105.54
+174.767 -40.4459 -105.22
+174.769 -40.3912 -102.27
+174.705 -40.358 -101.2
+174.075 -40.5562 -102.92
+174.075 -40.4852 -134.06
+173.983 -40.237 -99.39
+171.72 -44.8114 -95.26
+173.847 -40.1949 -99.8
+173.999 -40.1838 -94.95
+174.202 -40.6915 -113.27
+174.192 -40.6312 -127.01
+174.166 -40.5755 -127.4
+174.211 -40.5341 -115.61
+174.385 -40.6768 -125.95
+174.407 -40.6276 -130.53
+174.433 -40.5761 -122.22
+174.46 -40.524 -111.2
+174.496 -40.4738 -110.66
+174.538 -40.4217 -108.23
+174.58 -40.3711 -107.26
+174.635 -40.3231 -97.96
+174.24 -40.7471 -111.67
+174.262 -40.3614 -111
+174.372 -40.2955 -97
+174.245 -42.0609 -102.08
+174.55 -40.315 -104.45
+173.663 -40.1032 -78.08
+174.486 -40.362 -105.61
+174.461 -40.2919 -98.5
+174.449 -40.4214 -110.72
+174.409 -40.4737 -114.59
+174.416 -40.3353 -104.22
+174.411 -40.3773 -108.35
+174.377 -40.5298 -123.41
+174.322 -40.48 -113.61
+174.352 -40.5829 -130.48
+174.327 -40.6384 -137.44
+174.302 -40.6989 -140.67
+174.313 -40.7619 -134.86
+173.593 -40.0922 -80.72
+173.515 -40.0782 -84.11
+173.441 -40.0617 -89.31
+173.412 -40.012 -91.53
+173.381 -40.0531 -91.67
+173.328 -40.0211 -94.62
+173.572 -40.0469 -80.49
+173.741 -40.0887 -85.72
+173.654 -40.0474 -79
+173.733 -40.0285 -88.16
+173.502 -40.0162 -84.1
+174.205 -41.9442 -109.48
+173.252 -40.0648 -96.79
+174.26 -41.9842 -144.18
+174.218 -41.8846 -80.82
+173.133 -40.1158 -99.4
+173.004 -40.2022 -88.99
+174.864 -40.7278 -97.85
+172.929 -40.2441 -87.1
+173.621 -40.1404 -76.71
+173.448 -43.1028 -86.36
+174.04 -40.3703 -110.1
+174.241 -40.4843 -116.2
+174.257 -40.6505 -129.46
+173.904 -40.4995 -81.57
+173.901 -40.4379 -83.8
+173.894 -40.3836 -97.38
+173.537 -43.6799 -82.34
+173.513 -43.7408 -84.08
+173.208 -40.117 -95.5
+173.967 -40.4062 -105.99
+173.972 -40.1252 -95.38
+173.996 -40.5184 -87.33
+173.999 -40.5657 -65.12
+174.034 -40.6105 -85.03
+173.941 -40.5483 -73.42
+173.945 -40.6027 -72.67
+174.273 -41.9231 -141.43
+174.229 -40.8317 -77.98
+174.188 -40.8756 -65.98
+171.793 -44.7533 -89.59
+174.533 -40.2565 -98.07
+174.089 -42.1198 -81.34
+174.046 -40.2085 -97
+174.863 -40.6677 -101.22
+173.523 -42.9498 -86.96
+174.357 -41.0032 -119.47
+174.145 -42.0647 -97
+174.942 -40.4987 -95.02
+174.922 -40.5426 -96.46
+175.301 -43.2603 -86.3
+173.702 -40.1457 -78.83
+173.334 -40.0787 -92.54
+174.394 -40.2421 -92.48
+174.322 -41.9579 -158.19
+173.522 -43.6259 -79.41
+171.826 -44.7186 -89.81
+174.891 -40.6175 -96.33
+173.305 -44.0373 -90.12
+174.773 -40.5018 -110.78
+173.393 -40.0877 -91.94
+173.834 -40.2507 -94.51
+174.648 -40.3777 -104.49
+173.087 -40.1669 -93.01
+172.765 -44.3043 -91.14
+173.067 -44.1661 -91.44
+172.828 -44.2684 -84.51
+174.701 -40.412 -107.14
+173.138 -44.1452 -88.62
+173.241 -44.0847 -91.56
+172.002 -44.6351 -95.87
+173.833 -40.3058 -93.56
+173.447 -40.119 -87.16
+172.691 -40.3729 -82.5
+174.916 -40.4194 -93.97
+171.746 -44.7659 -89.07
+173.879 -40.0575 -95.04
+172.958 -44.2262 -78.03
+173.857 -40.0066 -92.68
+174.784 -40.5649 -113.43
+174.826 -40.6179 -112.79
+173.288 -40.1213 -92.66
+172.879 -44.2224 -75.28
+173.538 -40.1332 -83.22
+174.319 -40.2478 -96.67
+174.718 -40.8821 -152.85
+172.042 -44.5803 -89.76
+172.613 -44.3318 -90.86
+174.338 -41.4643 -87.46
+173.654 -40.1805 -72.75
+172.15 -44.5254 -86.03
+173.367 -43.4411 -86.34
+173.168 -40.154 -93.99
+173.45 -43.9184 -80.29
+174.399 -41.487 -101.6
+172.276 -44.4556 -83.35
+173.455 -43.0247 -74.89
+173.435 -43.2741 -82.38
+173.365 -40.1241 -87.38
+171.875 -44.6785 -91.15
+174.241 -40.2475 -90.9
+172.489 -44.3858 -84.41
+173.48 -43.5928 -82.82
+174.688 -40.4729 -110.41
+173.739 -40.2089 -81.89
+172.369 -44.4086 -81.69
+173.082 -44.123 -84.32
+174.11 -40.2026 -90.89
+172.71 -44.2807 -86.94
+174.707 -40.5325 -112.67
+175.054 -41.5523 -105.09
+174.95 -40.5861 -88.57
+174.775 -40.3394 -94.95
+173.774 -40.3275 -84.25
+173.489 -43.7866 -82.15
+172.167 -44.4811 -81.49
+173.832 -40.3568 -87.31
+174.807 -40.7557 -114.15
+172.412 -44.3754 -81.6
+173.578 -40.1818 -79.78
+174.797 -40.7035 -115.03
+172.868 -40.3187 -75.18
+174.626 -40.4228 -107.88
+173.391 -43.9469 -77.63
+173.468 -43.6407 -81.26
+173.634 -40.2224 -74.63
+173.938 -40.073 -90.71
+174.439 -41.5386 -90.15
+173.497 -43.8888 -84.1
+174.716 -40.3037 -92.51
+174.459 -40.1807 -80.7
+173.176 -44.1025 -83.11
+173.403 -40.161 -79.45
+174.055 -40.1609 -92.28
+174.371 -41.6284 -77.63
+174.601 -40.2284 -89.29
+173.765 -40.2771 -84.29
+173.322 -43.9693 -76.96
+172.996 -44.173 -81.62
+173.886 -40.6979 -87.72
+173.481 -40.183 -73.39
+173.087 -40.2283 -72.35
+174.698 -40.5817 -115.87
+174.66 -40.2642 -89.19
+173.239 -40.1636 -89.48
+173.021 -40.2563 -67.59
+173.461 -43.6946 -88.67
+171.923 -44.6318 -89.14
+176.223 -41.0325 -67.56
+171.571 -44.8963 -73.45
+173.428 -43.1787 -81.78
+174.746 -40.6223 -116.79
+174.846 -40.324 -91.31
+172.758 -44.2529 -83.6
+174.645 -40.5175 -114.33
+172.644 -44.276 -80.82
+172.079 -44.5275 -82.25
+171.968 -44.5792 -85.02
+173.546 -40.2304 -77.62
+174.271 -41.3516 -71.91
+174.407 -40.19 -81.59
+174.901 -40.3694 -90.22
+173.327 -40.1751 -81.95
+173.72 -40.3452 -72.39
+173.689 -40.2651 -78.15
+174.588 -40.4817 -112.72
+173.444 -43.7478 -80.37
+172.911 -40.2906 -75.47
+172.756 -40.3549 -81.74
+174.79 -40.6585 -118.71
+174.966 -40.4466 -88.5
+174.526 -40.1932 -85.88
+173.774 -40.3773 -79.71
+174.117 -40.7043 -85.82
+172.806 -44.214 -77.26
+173.231 -44.0303 -79.33
+172.309 -44.4082 -77.15
+173.422 -43.0601 -68.92
+172.532 -44.3345 -79.28
+173.176 -40.2053 -86.91
+173.724 -40.3044 -77.73
+174.343 -40.1959 -85.78
+173.831 -40.7087 -51.97
+173.316 -43.4035 -64.03
+173.369 -43.322 -72.27
+174.654 -40.5537 -115.79
+174.66 -40.8683 -156.8
+173.532 -40.2712 -70.67
+173.497 -43.837 -83.88
+174.316 -41.7749 -69.87
+174.984 -40.5354 -86.8
+173.439 -43.5561 -80.87
+173.509 -42.8906 -82.98
+172.695 -44.2397 -78.06
+172.207 -44.4484 -80.57
+173.121 -44.0925 -78.57
+174.713 -40.8324 -143
+172.848 -44.1688 -72.24
+173.027 -44.1252 -81.92
+173.399 -40.2027 -73.78
+174.755 -40.7895 -129.56
+173.606 -40.2749 -71.25
+173.454 -40.253 -69.72
+174.734 -40.7386 -123.62
+173.833 -40.408 -82.17
+173.512 -42.7936 -127.62
+174.272 -40.1965 -88.67
+172.565 -44.2856 -73.71
+174.672 -40.6279 -121.58
+173.387 -43.893 -76.41
+172.007 -44.5257 -77.82
+174.529 -40.5185 -113.21
+173.263 -40.2076 -82.18
+173.437 -43.8639 -79.46
+172.109 -44.4796 -76.97
+174.191 -40.1896 -84.17
+173.087 -40.2723 -64.54
+173.059 -44.0846 -78.92
+172.976 -40.2932 -71.23
+171.851 -44.6243 -81.85
+172.244 -44.4051 -73.59
+172.921 -44.1719 -71.78
+173.67 -40.3124 -70.55
+174.947 -40.6492 -84.78
+173.331 -43.9124 -70.43
+171.896 -44.5755 -78.67
+171.804 -44.668 -81.9
+174.588 -40.548 -115.08
+173.501 -40.2927 -70.79
+173.714 -40.3951 -75.2
+173.168 -44.0507 -70.95
+171.677 -44.7558 -77.73
+171.635 -44.8173 -76.48
+174.631 -40.5904 -117.99
+173.665 -40.3586 -67.3
+173.407 -43.5993 -75.63
+174.128 -40.1471 -84.72
+172.142 -44.4375 -73.34
+171.746 -44.7115 -79.95
+172.589 -44.2383 -67.18
+172.455 -44.3306 -74.61
+173.251 -43.9828 -72.26
+174.974 -40.3948 -88.53
+173.427 -43.8034 -75.07
+174.789 -40.2874 -86.46
+174.715 -40.6776 -127.6
+173.383 -43.0954 -64.39
+173.556 -40.3067 -67.35
+172.642 -44.2272 -71.17
+172.345 -44.3642 -73.57
+174.918 -40.3097 -85.2
+173.338 -40.2407 -75.45
+171.571 -44.8477 -66.2
+173.451 -42.976 -63.67
+174.735 -40.2487 -82.84
+173.402 -43.6553 -75.19
+173.772 -40.4298 -75.93
+173.934 -40.0223 -85.81
+172.739 -44.2038 -77.87
+174.51 -40.5665 -124.85
+173.154 -40.2629 -78.52
+174.482 -40.1447 -77.14
+174.603 -40.1718 -82.96
+173.382 -40.2932 -70.72
+173.399 -43.219 -76.27
+173.239 -40.2528 -80.4
+173.406 -43.1388 -73.27
+173.614 -40.3276 -64.32
+174.612 -40.628 -124.6
+172.828 -40.3532 -73.79
+173.393 -43.7059 -74.63
+173.453 -40.3095 -70
+171.938 -44.5239 -74.08
+172.044 -44.4751 -72.51
+172.781 -44.1652 -74.38
+173.65 -40.4027 -70.12
+174.424 -40.1452 -78.94
+173.834 -40.4601 -76.7
+172.959 -44.1235 -71.8
+171.46 -44.9315 -56.14
+174.866 -40.2675 -80.31
+174.592 -40.8596 -147.45
+174.072 -40.0976 -85.1
+172.705 -40.41 -80.73
+174 -40.0594 -85.54
+174.68 -40.7793 -125.86
+173.379 -43.7539 -73.56
+174.679 -40.2015 -82.07
+174.644 -40.7226 -133.92
+174.363 -40.1477 -81.16
+174.632 -40.8204 -147.74
+173.049 -40.3016 -66.92
+172.492 -44.2856 -69.17
+174.379 -40.7301 -140.2
+173.512 -40.3288 -70.55
+172.676 -44.1942 -70.56
+173.353 -40.3265 -73.91
+174.491 -40.626 -119.21
+174.543 -40.1394 -76.04
+171.513 -44.9135 -60.6
+171.83 -44.5697 -72.76
+173.7 -40.4568 -74.42
+174.632 -40.667 -127
+173.349 -43.2625 -67.21
+173.095 -44.0452 -71.83
+173.567 -40.3479 -67.51
+175.023 -40.4843 -81.05
+172.178 -44.3971 -69.79
+174.565 -40.6024 -117.81
+173.299 -40.3007 -75.26
+172.279 -44.3589 -69.71
+173.257 -43.9198 -68
+173.615 -40.367 -64.19
+172.384 -44.3223 -70.48
+173.338 -43.8701 -71.83
+174.983 -40.3382 -79.42
+173.404 -40.3362 -66.48
+174.301 -40.1488 -82.34
+173.185 -43.9941 -66.69
+172.525 -44.2421 -64.4
+172.937 -40.3276 -74.38
+173.375 -43.8425 -74.35
+173.626 -40.4373 -69.86
+172.816 -44.1234 -69.88
+171.973 -44.4666 -68.6
+172.079 -44.4308 -68.91
+173.821 -40.509 -77.24
+174.237 -40.1456 -81.88
+173.468 -40.3582 -68.75
+173.011 -40.3391 -69.96
+174.03 -40.7577 -63.87
+172.996 -44.0799 -71.43
+171.778 -44.6141 -72.95
+173.073 -40.337 -67.34
+173.125 -40.314 -66.56
+174.449 -40.6649 -131.46
+173.394 -43.0141 -55.67
+174.183 -40.1353 -81.21
+174.313 -40.8208 -116.77
+173.776 -40.4738 -76.81
+171.868 -44.5162 -69.46
+173.211 -40.3045 -72.02
+173.372 -43.545 -74.1
+173.317 -40.3501 -71.68
+174.566 -40.6514 -126.66
+172.116 -44.3881 -65.53
+172.552 -44.2059 -62.34
+174.584 -40.6926 -127.01
+173.031 -44.0393 -71.86
+173.628 -40.479 -68.39
+171.675 -44.7045 -70.04
+172.741 -40.3919 -79.64
+174.974 -40.2923 -75.76
+172.606 -44.188 -64.13
+173.574 -40.3981 -66.53
+173.526 -40.3638 -69.24
+172.716 -44.1565 -69.97
+173.364 -40.3565 -69.82
+174.939 -40.2623 -71.99
+174.294 -41.8581 -127.91
+175.023 -40.5698 -77.13
+174.149 -40.0971 -77.2
+173.351 -43.7946 -71.18
+174.603 -40.7729 -143.05
+175.043 -40.4183 -77.12
+172.885 -44.1156 -68.83
+174.805 -40.2367 -76.66
+171.52 -44.8665 -58.7
+171.77 -44.5565 -66.2
+173.366 -43.1743 -66.09
+173.345 -43.6252 -68.79
+174.372 -41.5782 -68.76
+171.749 -44.6586 -74.55
+173.286 -43.8692 -69.32
+174.525 -40.8555 -149.9
+173.574 -40.4493 -68.58
+175.03 -40.3707 -77.66
+174.005 -40.0034 -76.81
+172.424 -44.2811 -66.36
+173.794 -40.547 -71.47
+172.755 -44.12 -68.77
+172.213 -44.3552 -66.2
+174.661 -40.1427 -75.62
+173.407 -40.3784 -64.24
+173.344 -43.6728 -68.4
+173.749 -40.5126 -72.74
+173.195 -43.9435 -67.44
+173.123 -44.0011 -67.48
+174.555 -40.8113 -142.69
+172.315 -44.3101 -66.1
+173.511 -40.3899 -67.83
+174.497 -40.1041 -72.18
+174.601 -40.1229 -72.24
+173.061 -40.3685 -67.94
+171.914 -44.478 -67.4
+173.464 -42.9263 -60.21
+172.019 -44.4243 -65.8
+173.256 -40.3461 -66.84
+173.988 -42.175 -47.15
+174.761 -40.1988 -78.57
+173.615 -40.5168 -64.99
+174.488 -40.8957 -154.61
+173.185 -40.354 -66.53
+174.444 -40.1058 -73.78
+174.566 -40.7302 -133.78
+173.52 -40.4265 -66.48
+173.335 -43.7174 -68.44
+174.023 -42.1333 -49.29
+174.387 -40.1023 -75.1
+172.651 -44.1454 -63.49
+174.545 -40.7677 -139.53
+174.515 -40.6872 -118.85
+172.794 -40.3906 -73.9
+174.857 -40.222 -71.08
+174.326 -40.1021 -77.99
+173.341 -43.5828 -65.89
+174.356 -41.523 -70.37
+174.91 -40.2249 -66.64
+171.81 -44.5261 -66.52
+173.867 -40.5584 -75.21
+172.961 -40.3693 -70.35
+172.932 -44.0756 -68.66
+171.971 -44.4139 -62.6
+174.216 -40.9249 -59.97
+174.12 -40.7937 -61.34
+173.567 -40.4935 -67.92
+172.248 -44.3115 -63.3
+173.361 -43.0548 -52.97
+171.867 -44.4557 -62.4
+173.475 -42.8375 -66.34
+173.06 -44.001 -66.48
+172.152 -44.3473 -62.68
+174.07 -40.0311 -69.34
+172.459 -44.2376 -61.77
+174.922 -40.7617 -72.66
+174.55 -40.0958 -68.33
+173.675 -40.5164 -70.32
+174.646 -40.0986 -65.69
+173.316 -43.8307 -68.8
+172.495 -44.1976 -58.34
+171.561 -44.8 -60.74
+173.115 -40.366 -66.22
+171.599 -44.7609 -60.1
+174.139 -40.9119 -38.71
+174.268 -40.1017 -76.37
+173.462 -40.4047 -65.38
+172.587 -44.1318 -58.43
+173.287 -40.3793 -68.99
+173.214 -43.8601 -73.4
+173.575 -40.5332 -64.01
+172.897 -40.359 -71.16
+174.119 -40.0589 -74.97
+173.527 -40.4632 -69.01
+174.729 -40.1534 -74.98
+172.54 -44.164 -58.47
+174.21 -40.0969 -74.8
+173.307 -43.3576 -62.08
+172.049 -44.3737 -61.33
+175.029 -40.2932 -66.23
+171.764 -44.5058 -59.9
+173.861 -40.627 -65.19
+173.018 -40.3863 -67.14
+175.04 -40.5293 -77.85
+173.234 -40.3899 -67.22
+174.464 -40.075 -69.76
+173.193 -43.9003 -70.96
+174.598 -40.0868 -63.81
+172.785 -44.0898 -67.57
+174.502 -40.7388 -130.16
+173.081 -43.9606 -70.52
+172.362 -44.2742 -61.88
+171.525 -44.8276 -57.07
+172.092 -44.3366 -58.97
+175.093 -40.4548 -72.44
+175.988 -41.2354 -17.09
+172.694 -44.1073 -62.46
+172.88 -44.0656 -66.85
+175.016 -40.6611 -70.02
+173.728 -40.5724 -66.98
+174.446 -40.7083 -131.3
+173.537 -40.5183 -65.4
+173.327 -43.7564 -70.77
+173.467 -40.4541 -60.07
+173.284 -40.4181 -64.93
+172.962 -44.0309 -68.81
+174.326 -41.606 -61.15
+174.825 -40.192 -67.67
+175.058 -40.3308 -65.17
+171.918 -44.4248 -60.89
+173.629 -40.5622 -61.46
+173.138 -43.9543 -69.48
+174.496 -40.8204 -145.03
+175.086 -40.3706 -65.56
+173.284 -43.3005 -51.12
+173.332 -43.1292 -58.82
+173.508 -40.4926 -67.52
+173.083 -40.4166 -66.59
+171.721 -44.6279 -67.87
+173.002 -43.9973 -69.99
+172.736 -44.0748 -62.02
+175.126 -41.5085 -54.91
+175 -40.2566 -67.19
+173.939 -42.2146 -37.94
+174.498 -40.7833 -140.86
+172.694 -40.4392 -76.99
+173.537 -40.5433 -63.15
+172.318 -44.2654 -59.56
+173.327 -43.2109 -57.66
+173.257 -43.8211 -70.91
+171.814 -44.4802 -61.72
+173.389 -42.9694 -48.3
+173.34 -40.4441 -60.23
+173.806 -40.5856 -67.82
+174.507 -40.065 -66.58
+172.187 -44.3064 -60.09
+174.461 -40.8486 -142.7
+174.442 -40.7571 -140.67
+171.698 -44.6657 -69.38
+174.082 -42.0678 -59.65
+171.996 -44.3828 -60.16
+173.296 -43.6883 -64.08
+171.867 -44.4103 -56.71
+173.397 -40.4716 -53.57
+172.858 -40.3922 -67.73
+172.975 -40.4035 -65.6
+173.166 -40.4036 -67.53
+173.33 -43.0853 -54.39
+172.394 -44.2362 -59.59
+174.275 -41.4633 -53.05
+174.969 -40.2228 -67.5
+174.416 -40.0635 -68.56
+174.418 -40.8851 -132.39
+172.629 -44.0944 -57.19
+173.496 -40.5278 -64.5
+171.718 -44.5853 -63.65
+172.275 -44.2706 -59.69
+173.276 -43.7317 -65.67
+173.782 -40.6241 -63.54
+173.449 -40.5008 -59.86
+172.475 -44.1487 -53.33
+171.761 -44.4536 -53.41
+174.35 -40.0494 -69.68
+174.446 -40.8041 -142.63
+173.567 -40.5652 -62.98
+174.704 -40.1075 -65.43
+174.278 -41.8044 -43.99
+172.045 -44.322 -55.4
+172.22 -44.2679 -57.63
+171.619 -44.7152 -57.9
+174.24 -41.8365 -44.31
+173.221 -40.4368 -61.71
+173.26 -43.4977 -49.36
+172.522 -44.1146 -52.83
+174.315 -41.6448 -68.01
+174.794 -40.1548 -59.43
+174.295 -40.0652 -75.44
+173.278 -40.4663 -58.41
+171.943 -44.3686 -55.32
+172.129 -44.2979 -56.66
+174.627 -40.059 -56.28
+173.293 -43.7844 -70.48
+173.291 -43.6471 -62.53
+174.177 -40.0448 -64.94
+171.414 -44.9074 -48.16
+172.564 -44.0808 -52.42
+172.826 -40.4192 -67.45
+172.834 -44.0778 -65.84
+174.243 -40.0532 -68.89
+172.074 -44.2887 -53.19
+173.274 -43.4461 -51.33
+173.013 -40.4215 -64.57
+174.383 -40.7849 -142.79
+171.714 -44.5335 -58.47
+173.027 -43.9629 -66.64
+174.883 -40.1859 -64.65
+173.336 -40.4929 -53.55
+171.661 -44.6158 -60.22
+173.146 -43.9098 -67.15
+172.338 -44.2364 -54.86
+173.255 -43.391 -47.63
+172.905 -44.0388 -66.03
+173.195 -43.8088 -63.55
+173.507 -40.5712 -61.17
+171.633 -44.6674 -55.4
+172.671 -44.0508 -55.24
+173.277 -43.2419 -46.3
+172.42 -44.1875 -54.09
+173.444 -40.5439 -60.19
+173.576 -40.6159 -60.22
+174.459 -40.0372 -61.11
+175.115 -40.4089 -61.28
+174.564 -40.0571 -58.65
+171.814 -44.4226 -55.21
+174.944 -40.187 -60.62
+174.679 -40.0715 -58.47
+175.031 -40.7029 -51.99
+173.233 -43.7729 -64.63
+173.093 -40.4646 -60
+173.29 -43.5985 -57.29
+173.391 -40.5186 -55.83
+172.922 -40.399 -67.42
+172.783 -44.0509 -62.8
+174.768 -40.1141 -56.1
+173.492 -40.6215 -56.63
+175.063 -40.2493 -57.12
+175.082 -40.5526 -55.51
+173.308 -43.1692 -52.29
+171.994 -44.3323 -53.91
+173.817 -40.6692 -47
+173.152 -40.4563 -59.75
+173.235 -43.6777 -53.76
+171.708 -44.4805 -52.45
+171.661 -44.56 -56.64
+174.394 -40.8353 -138.08
+171.892 -44.3801 -54.02
+173.337 -43.0229 -51.26
+175.027 -40.2146 -56.89
+173.698 -40.6618 -57.72
+174.289 -41.5065 -55.32
+173.212 -40.4858 -53.56
+174.852 -40.1497 -54.19
+171.466 -44.8857 -49.99
+175.093 -40.2884 -50.4
+173.03 -40.4629 -60.99
+171.76 -44.4091 -48.21
+172.843 -44.0219 -63.22
+174.319 -41.7379 -40.56
+173.239 -43.343 -39.23
+172.165 -44.2597 -54.35
+174.127 -40.0229 -56.82
+172.296 -44.2406 -54.86
+173.27 -40.5173 -52.13
+173.582 -40.6689 -55.5
+175.068 -40.5978 -62.13
+175.121 -40.3275 -52.56
+173.434 -40.5884 -55.76
+172.728 -44.0282 -56.82
+173.39 -40.5597 -55.46
+173.291 -43.5459 -55.02
+172.454 -44.0986 -47.62
+171.535 -44.7504 -48.85
+172.252 -44.2315 -52.48
+171.941 -44.3173 -48.81
+173.475 -40.6585 -52.44
+171.566 -44.7205 -47.2
+171.839 -44.3664 -50.28
+172.761 -40.4315 -61.21
+172.601 -44.0437 -50.29
+171.656 -44.5086 -52.92
+173.234 -43.6201 -47.32
+173.429 -42.8836 -43.51
+173.122 -40.4866 -56.16
+171.498 -44.7886 -49.14
+174.402 -40.0142 -55.61
+174.248 -41.3881 -53.67
+173.758 -40.6636 -57.69
+176.169 -41.0384 -30.35
+172.201 -44.2302 -52.51
+172.499 -44.0648 -47
+173.208 -43.727 -48.83
+174.052 -40.9281 -47
+174.298 -41.5632 -51.51
+172.021 -44.2828 -49.75
+173.633 -40.662 -57.11
+172.109 -44.2504 -50.46
+174.591 -40.0131 -44.75
+174.287 -40.0194 -59.09
+172.883 -40.4285 -65.19
+171.468 -44.834 -47.38
+172.36 -44.2039 -52.32
+172.539 -44.0331 -47
+174.994 -40.1886 -54.53
+173.529 -40.6605 -54.09
+172.909 -43.9997 -64.03
+173.426 -40.6346 -52.24
+172.776 -44.0106 -52.73
+173.019 -40.5091 -41.08
+174.86 -40.9558 -57.11
+174.987 -40.7392 -60.29
+171.363 -44.9281 -46.06
+172.404 -44.1328 -48.44
+175.089 -40.5047 -73.15
+173.334 -40.5445 -50.73
+174.92 -40.1397 -47
+174.819 -40.1211 -49.31
+175.141 -40.4379 -54.84
+173.409 -42.9314 -47.81
+174.044 -42.0937 -45.1
+171.648 -44.4573 -47.75
+173.349 -40.6045 -49.28
+172.053 -44.2442 -47
+173.239 -43.575 -46.63
+175.139 -40.239 -37.77
+172.683 -44.0043 -49.85
+173.431 -40.6774 -49.26
+172.629 -44.0019 -47.46
+172.832 -40.452 -52.37
+174.74 -40.0645 -48.69
+171.702 -44.4222 -47
+174.518 -40.022 -53.1
+173.159 -40.4971 -52.32
+173.566 -40.8186 -47.06
+173.788 -40.6944 -48.17
+173.17 -43.7643 -39.71
+171.415 -44.8615 -39.86
+175.151 -40.3676 -48.68
+174.675 -40.0277 -49.07
+171.89 -44.3295 -47.67
+174.05 -40.7934 -39.05
+173.341 -42.9864 -47.19
+171.634 -44.4078 -41.83
+171.786 -44.3788 -48.77
+173.672 -40.6959 -53.97
+172.273 -44.144 -46.96
+173.541 -40.7833 -47.51
+173.549 -40.8604 -47.62
+172.209 -44.1415 -43.99
+173.479 -40.76 -47.61
+173.368 -40.7208 -47.74
+173.428 -40.7188 -46.66
+173.404 -40.7584 -47.5
+173.549 -40.739 -50.63
+173.712 -40.7835 -60.01
+175.091 -40.2014 -44.9
+173.297 -43.0508 -49.86
+173.3 -40.6611 -48.77
+172.299 -44.1993 -47.71
+173.62 -40.7807 -47.42
+173.537 -40.9011 -47.82
+175.046 -40.1644 -40.49
+173.694 -40.8677 -48.54
+173.496 -40.8189 -47.39
+173.145 -40.5735 -47.07
+173.594 -40.9 -47.62
+173.374 -40.6587 -51.13
+171.604 -44.5345 -51.3
+171.612 -44.5795 -54.86
+172.221 -44.1868 -47.9
+173.39 -40.6925 -47.2
+172.15 -44.209 -47
+173.263 -40.6195 -46.16
+173.268 -40.5715 -47.88
+173.198 -40.5964 -46.52
+173.188 -40.5391 -46.81
+173.748 -40.8165 -47.67
+172.274 -44.0942 -40.28
+173.348 -40.6888 -47.92
+173.554 -40.6965 -53.3
+173.624 -40.8495 -49.21
+173.689 -40.825 -56.28
+173.737 -40.7046 -47.73
+173.686 -40.7385 -56.83
+173.613 -40.7118 -53.45
+173.493 -40.7015 -50.15
+173.437 -40.7942 -45.17
+173.43 -40.8341 -46.34
+173.797 -40.7257 -50.68
+173.764 -40.7524 -55.92
+173.769 -40.788 -49.74
+171.538 -44.5064 -44.6
+171.579 -44.6193 -50.14
+171.599 -44.4853 -47.66
+173.2 -40.66 -43.27
+172.386 -44.084 -46.93
+171.837 -44.315 -44.02
+173.128 -40.5473 -48.98
+173.277 -43.0931 -54.23
+173.252 -43.1377 -47.87
+171.562 -44.6745 -47
+171.524 -44.635 -43.24
+171.513 -44.7008 -42.14
+173.263 -43.1921 -44.88
+173.312 -40.7102 -46.68
+173.178 -43.121 -47.1
+172.427 -44.0456 -44.15
+171.728 -44.3655 -42.13
+174.812 -40.0821 -45.24
+173.476 -40.8805 -46.42
+173.558 -40.9418 -46.42
+171.553 -44.5628 -49.42
+174.985 -40.8497 -34.15
+173.508 -40.9228 -46.2
+171.589 -44.4383 -42.26
+173.836 -40.7362 -63.7
+173.658 -40.8997 -46.43
+172.325 -44.0672 -40.68
+173.384 -40.7993 -44.93
+173.333 -40.7589 -46.02
+171.553 -44.4636 -40.89
+172.228 -44.1126 -40.57
+172.863 -43.9629 -53.21
+171.967 -44.2803 -46.04
+173.198 -43.1674 -43.52
+173.241 -43.0607 -47.32
+172.085 -44.2073 -44.65
+171.783 -44.3272 -44.12
+173.258 -40.6968 -45.45
+171.503 -44.661 -39.09
+174.867 -40.1048 -46.04
+175.072 -40.6717 -41.39
+172.479 -44.0179 -38.22
+173.269 -40.7362 -44.88
+173.13 -40.6142 -47.4
+175.144 -40.4746 -27.56
+172.11 -44.1737 -41.67
+173.509 -40.954 -44.49
+176.246 -40.9391 -35.26
+173.213 -43.2166 -38.66
+175.173 -40.4084 -36.49
+172.16 -44.1567 -43.68
+174.984 -40.1524 -43.72
+171.506 -44.595 -41.79
+172.957 -40.44 -53.12
+173.413 -40.8682 -44.69
+171.458 -44.7328 -41.02
+173.076 -40.5008 -52.98
+175.027 -40.7834 -32.79
+173.292 -43.007 -34.69
+173.373 -40.8406 -43.68
+173.222 -43.265 -35.89
+173.325 -40.8094 -42.3
+174.086 -40.7526 -69.96
+171.411 -44.8211 -37.57
+171.914 -44.2776 -41.6
+173.738 -40.8478 -38.04
+172.567 -43.9973 -233.79
+172.662 -43.964 -35.78
+173.275 -40.7801 -43.72
+173.414 -40.9017 -43.65
+171.723 -44.313 -35.37
+173.458 -40.9372 -44.02
+173.22 -43.3047 -34.37
+173.135 -43.1455 -44.41
+173.149 -43.1928 -39.58
+171.433 -44.7851 -39.75
+172.368 -44.0448 -40.8
+171.994 -44.2328 -42.38
+175.024 -40.1184 -27
+173.213 -40.7186 -43.1
+171.47 -44.6272 -33.97
+174.273 -41.6136 -47.51
+174.213 -41.3501 -38.48
+173.212 -43.0898 -44.44
+171.573 -44.391 -35.63
+172.514 -43.9953 -180.03
+172.899 -40.4743 -42.72
+171.671 -44.3772 -39.55
+173.37 -40.8789 -43.05
+173.323 -40.8536 -41.15
+174.803 -40.0297 -27.82
+173.153 -40.7069 -39.8
+171.86 -44.2757 -38.75
+175.005 -40.8205 -35.33
+171.617 -44.3603 -35
+175.151 -40.2903 -40.71
+174.307 -41.6927 -44.12
+173.369 -40.9111 -43.02
+172.037 -44.2068 -40.37
+174.139 -41.956 -54.39
+173.633 -40.949 -41.34
+172.728 -43.9766 -41.35
+171.364 -44.8842 -37.77
+173.991 -40.7434 -30.5
+173.273 -40.8246 -41.36
+174.165 -41.9141 -37.93
+171.446 -44.6696 -33.65
+174.864 -40.0567 -36.52
+171.51 -44.4633 -36.42
+173.482 -40.9903 -41.06
+173.397 -40.9335 -43.08
+171.317 -44.907 -31.34
+173.789 -42.3259 -23.1
+171.807 -44.2746 -36.8
+173.23 -40.7574 -43.36
+172.215 -44.0756 -34.2
+174.738 -40.0181 -38.81
+172.796 -43.9733 -43.96
+172.106 -44.1313 -36.38
+173.243 -43.0259 -36.08
+172.167 -44.1077 -36.42
+172.263 -44.048 -33.92
+176.185 -40.997 -31.36
+173.326 -40.8949 -41.05
+173.275 -40.8696 -39.06
+174.971 -40.1133 -38.83
+174.232 -41.4901 -40.06
+173.223 -40.7954 -42.09
+171.525 -44.423 -34.59
+171.374 -44.7897 -30.52
+173.409 -40.9738 -40.99
+172.316 -44.0177 -33.08
+173.198 -43.4213 -29.96
+173.192 -43.3729 -29.93
+173.123 -43.1041 -38.91
+173.098 -43.218 -35.79
+172.001 -44.1856 -36.11
+174.93 -40.0798 -36.47
+172.719 -40.471 -57.31
+173.203 -43.4731 -30.67
+173.539 -41.0174 -37.13
+171.941 -44.2416 -38.59
+173.224 -40.8421 -40.53
+173.164 -43.6895 -23.6
+173.099 -40.7315 -34.43
+173.335 -40.9435 -40.25
+173.207 -43.5308 -33.69
+171.482 -44.5422 -34.22
+173.341 -42.9371 -26.57
+171.312 -44.8638 -27.64
+173.16 -43.2407 -32.48
+171.387 -44.6951 -32.09
+173.128 -40.5174 -54.54
+173.353 -41.0017 -37.99
+174.097 -42.012 -45.46
+173.179 -43.33 -28.31
+171.428 -44.5793 -28.21
+174.224 -41.4368 -35.35
+171.385 -44.7452 -31.37
+172.051 -44.1641 -34.99
+173.283 -40.9085 -36.8
+174.253 -41.6603 -32
+171.75 -44.2732 -32.48
+173.23 -40.8899 -38.67
+173.086 -40.6681 -36.63
+174.198 -40.9684 -82.8
+171.416 -44.6239 -29.26
+173.518 -42.6081 -28.54
+173.151 -43.0817 -34.02
+173.171 -40.7575 -39.39
+173.087 -43.1698 -40.44
+171.667 -44.3277 -31.64
+172.378 -44.0084 -35.97
+171.887 -44.226 -32.29
+173.077 -43.1192 -30.94
+173.083 -40.5705 -23.94
+173.359 -41.0458 -34.12
+173.544 -41.0498 -21.68
+173.292 -40.9813 -38.57
+173.489 -42.7373 -40.25
+171.512 -44.3726 -28.49
+173.17 -40.8123 -35.88
+171.556 -44.3438 -28.84
+173.171 -40.8618 -31.02
+173.74 -42.3692 -15.54
+171.467 -44.4369 -28.83
+171.359 -44.8353 -29.82
+173.947 -42.1776 -17.89
+175.079 -40.1207 -26.61
+172.76 -43.9352 -26.28
+173.985 -40.7848 -26.25
+175.183 -40.3244 -28.85
+173.052 -40.7622 -29.7
+171.374 -44.6458 -27.8
+173.247 -40.9406 -34.24
+171.599 -44.3146 -28.24
+172.97 -40.489 -36.43
+173.175 -40.9113 -29.78
+171.943 -44.191 -34.34
+174.238 -41.5381 -36.35
+174.954 -40.8646 -28.75
+172.427 -44.0009 -30.26
+171.833 -44.2362 -31.76
+173.329 -41.0711 -32.75
+174.263 -41.1151 -27
+172.154 -44.0562 -27.77
+176.114 -41.0847 -19.22
+172.1 -44.083 -29.23
+171.459 -44.4853 -27
+175.082 -40.7089 -24.49
+173.18 -43.0434 -27
+173.646 -41.008 -28.52
+171.685 -44.2714 -27
+173.112 -40.7845 -33.25
+172.338 -43.9815 -30.59
+172.594 -43.9516 -65.34
+173.167 -43.2872 -28.24
+173.176 -43.6419 -30.41
+171.363 -44.5995 -24.77
+173.523 -41.0734 -22.98
+173.292 -41.0297 -34.35
+172.202 -44.0311 -28.44
+171.633 -44.2866 -26.69
+173.231 -40.9903 -34.03
+173.118 -40.8334 -31.88
+173.113 -40.8832 -27.55
+173.331 -41.1078 -28.13
+173.149 -43.4995 -22.37
+171.778 -44.2212 -26.06
+172.043 -44.1091 -27.73
+171.981 -44.1389 -28.99
+171.466 -44.3946 -26.99
+172.463 -43.9693 -76.32
+171.276 -44.9306 -19.77
+173.396 -41.0907 -28.66
+171.887 -44.1753 -27.9
+173.177 -40.9583 -30.36
+172.245 -44.0023 -28.1
+174.861 -40.0163 -27
+174.177 -41.4748 -25.13
+173.174 -43.5869 -28.29
+173.261 -41.081 -29.67
+174.001 -40.8297 -7
+172.285 -43.9722 -25.21
+172.525 -43.9589 -203.56
+175.117 -40.1512 -19.4
+171.325 -44.6672 -25.71
+173.106 -43.2655 -29.83
+171.328 -44.7566 -23.92
+171.306 -44.8277 -21.08
+173.277 -41.1278 -22.73
+175.18 -41.4948 -28.03
+174.914 -40.0266 -27
+172.918 -40.6786 -27
+172.891 -40.6248 -20.44
+173.048 -43.2868 -30.01
+172.989 -43.2947 -29.49
+172.924 -43.2442 -28.55
+172.99 -40.7524 -27
+173.402 -42.8334 -26.28
+172.97 -40.7109 -27.84
+173.037 -43.1964 -37
+172.966 -43.265 -31.6
+173.031 -40.7155 -31.87
+172.963 -43.3261 -27.24
+173.048 -43.2427 -34.91
+173.008 -43.2634 -32.76
+173.028 -43.1472 -27.72
+173.206 -41.0357 -29.1
+172.953 -40.6302 -28.09
+173.174 -40.996 -27.4
+175.001 -40.0784 -27
+173.107 -43.3184 -25.34
+173.362 -42.8635 -21.22
+171.321 -44.7969 -22.55
+173.975 -42.145 -23.1
+172.996 -40.6717 -28.08
+172.697 -43.9244 -22.28
+173.14 -43.357 -23.12
+174.98 -40.0334 -19.06
+171.33 -44.7122 -26.21
+173.025 -43.3345 -26.45
+172.886 -43.2197 -21.95
+171.408 -44.5221 -24.49
+172.323 -43.9461 -22.31
+173.286 -42.9684 -20.7
+172.966 -43.3609 -25.7
+171.915 -44.1404 -26.32
+172.479 -43.9319 -32.78
+172.924 -43.2924 -27.6
+171.354 -44.5518 -22.2
+175.064 -40.0816 -20.38
+173.11 -40.9325 -24.42
+172.19 -43.993 -27
+175.146 -40.1845 -21.68
+173.189 -41.0779 -25.14
+173.084 -43.368 -23.88
+172.966 -43.3869 -23.37
+172.843 -40.6597 -24.02
+171.458 -44.3568 -21.98
+171.491 -44.3277 -22.15
+171.937 -44.1042 -20.16
+171.538 -44.2966 -22.33
+172.641 -43.9274 -23.03
+172.921 -40.738 -23.7
+173.135 -43.3971 -22.21
+173.013 -43.3862 -22.06
+171.632 -44.2477 -21.9
+172.143 -44.0112 -23
+173.468 -41.0777 -27.71
+172.977 -43.1765 -28.09
+173.692 -40.9718 -31.57
+172.984 -43.227 -32.94
+173.503 -42.6673 -28.06
+171.585 -44.2707 -22.37
+171.311 -44.6233 -22.63
+175.055 -40.7417 -30.97
+173.114 -40.9754 -21.09
+172.859 -43.2591 -21.2
+171.42 -44.4479 -25.92
+172.912 -43.3417 -24.28
+171.723 -44.2333 -23.4
+173.372 -42.8998 -22.57
+172.968 -43.4125 -22.1
+172.09 -44.0342 -21.4
+172.928 -43.2018 -24.13
+173.134 -41.0203 -21.77
+171.285 -44.9787 -23.34
+173.071 -43.413 -22.09
+175.148 -40.532 -22.51
+171.676 -44.2185 -20.21
+171.834 -44.1861 -24.06
+172.387 -43.9629 -23.19
+173.016 -43.4228 -21.16
+173.111 -43.5803 -16.96
+174.159 -41.429 -21.9
+173.288 -41.1578 -18.63
+172.036 -44.0608 -20.14
+176.283 -40.8213 -18.11
+173.127 -43.4506 -20.66
+172.215 -43.9545 -19.21
+173.25 -42.9931 -25.21
+171.299 -44.5774 -19.64
+171.781 -44.1706 -18.83
+175.119 -40.582 -22.66
+172.918 -43.3882 -21.48
+171.983 -44.0849 -21.02
+172.84 -40.4832 -27.91
+172.849 -40.7159 -20.92
+173.046 -43.4537 -21.94
+173.202 -41.1207 -19.47
+173.131 -43.542 -19.23
+171.417 -44.4119 -21.6
+173.142 -43.799 -29.56
+172.982 -43.4488 -21.06
+171.387 -44.4735 -20.49
+172.854 -43.3144 -20.51
+173.004 -43.488 -21.34
+174.752 -41.3642 -27.2
+173.149 -41.0559 -21.29
+172.784 -40.4756 -34.87
+171.231 -44.9519 -14.82
+172.6 -43.9023 -17.91
+172.852 -43.363 -19.25
+172.917 -43.4398 -20.5
+171.341 -44.5039 -18.81
+172.952 -43.4769 -21
+171.86 -44.1382 -20.48
+173.077 -43.5027 -21
+173.014 -43.5319 -20.04
+171.273 -44.6475 -20.23
+175.038 -40.0437 -15.37
+173.121 -43.6173 -15.46
+172.791 -40.6891 -19.36
+171.372 -44.4318 -17.79
+172.27 -43.9344 -17.96
+176.128 -41.047 -16.2
+171.269 -44.8886 -16.51
+171.275 -44.6863 -20.79
+172.854 -43.4099 -18.52
+172.845 -43.214 -16.18
+171.287 -44.5299 -16.03
+173.993 -42.096 -23.17
+171.589 -44.2333 -18.17
+173.026 -43.0953 -17.06
+172.959 -43.5151 -21
+173.068 -43.5552 -18.53
+172.875 -43.1782 -15.99
+172.946 -40.773 -11.76
+172.424 -43.9275 -15.55
+172.792 -43.2895 -15.14
+171.277 -44.7272 -18.63
+172.922 -40.5917 -11.82
+172.899 -43.4935 -18.88
+172.929 -43.1629 -16.78
+172.789 -40.7269 -15.66
+172.857 -43.4551 -17.69
+172.918 -43.5424 -17.72
+173.015 -43.5757 -18.54
+172.968 -43.5582 -19.61
+172.965 -43.1257 -16.96
+173.316 -41.1738 -15.31
+171.277 -44.7689 -17.39
+173.179 -41.1624 -11.46
+171.462 -44.2787 -13.89
+172.786 -43.3381 -16.25
+171.256 -44.8386 -12.73
+171.726 -44.182 -15.66
+171.326 -44.4584 -14.58
+171.625 -44.206 -16.06
+171.527 -44.2422 -14.59
+171.666 -44.1707 -11.48
+171.412 -44.3698 -17.39
+171.81 -44.1363 -15.57
+173.239 -41.1567 -16.57
+171.28 -44.8042 -17.25
+172.529 -43.9105 -16.22
+173.019 -40.6269 -14.43
+171.363 -44.3915 -15.2
+171.239 -44.6059 -15.43
+173.127 -41.0966 -15.23
+172.79 -43.3855 -14.61
+172.791 -43.2328 -11.21
+173.204 -43.0024 -18.58
+171.411 -44.3195 -11.78
+174.033 -42.0517 -22.78
+172.778 -40.6422 -16.62
+174.118 -41.4658 -17.06
+172.751 -40.5945 -10.31
+172.823 -40.6031 -6.47
+172.653 -43.8987 -15.93
+172.734 -40.6759 -9.42
+172.788 -43.4379 -14.04
+171.238 -44.9137 -11.4
+173.438 -42.7927 -30.73
+172.744 -40.7147 -10.74
+172.358 -43.9165 -14.61
+172.979 -40.5839 -11.14
+172.022 -44.0123 -9.03
+173.213 -41.1911 -10.94
+172.811 -40.7643 -9.96
+172.899 -43.1324 -14.18
+171.18 -44.962 -7.89
+171.241 -44.5564 -12.21
+172.081 -43.9865 -11.09
+172.457 -43.8955 -8.11
+174.199 -41.655 -13.64
+172.3 -43.9102 -11.24
+171.283 -44.4878 -12.41
+171.979 -44.0428 -12.35
+171.314 -44.4128 -12.08
+173.272 -41.1828 -14.6
+172.819 -43.1789 -11.65
+172.693 -43.8774 -12.55
+173.144 -41.1377 -11.78
+173.955 -42.1225 -11.71
+172.874 -40.5867 -5.68
+171.883 -44.0968 -12.4
+172.718 -40.6319 -8.05
+171.759 -44.1317 -10.37
+173.251 -41.2159 -9.97
+173.127 -41.1686 -7.91
+172.628 -43.8623 -9.6
+171.351 -44.3487 -7.8
+175.114 -40.6312 -19.66
+171.313 -44.3751 -9.82
+171.221 -44.6573 -12.31
+171.924 -44.0599 -8.56
+172.752 -43.3114 -12.08
+172.75 -43.3651 -12.97
+172.757 -40.7514 -9.91
+171.706 -44.1337 -7.14
+172.775 -40.5566 -6.02
+172.494 -43.871 -3.92
+173.286 -41.234 -7.18
+174.214 -41.6264 -17
+174.912 -40.9575 -27.6
+173.459 -41.1215 -18.77
+173.149 -41.1972 -6.15
+172.766 -43.4804 -12.73
+172.396 -43.8897 -7.42
+173.086 -41.1399 -8.6
+175.179 -40.4447 -27.72
+171.836 -44.1 -10.25
+172.554 -43.8693 -6.48
+174.162 -41.2058 -13.87
+172.935 -40.5591 -4.57
+171.617 -44.1678 -7.01
+171.222 -44.6998 -10.55
+172.894 -40.5618 -3.63
+171.574 -44.1972 -8.79
+172.862 -40.8144 -3.19
+173.092 -43.6726 -8.31
+173.122 -41.2254 -0.95
+173.18 -41.2307 -4.32
+171.796 -44.0957 -5.78
+172.84 -40.5513 -0.78
+173.237 -41.2533 -2.73
+171.198 -44.9188 -4.31
+174.094 -41.4997 -6.37
+172.139 -43.9673 -12.51
+180.172 -41.6564 -2467.76
+179.946 -40.8324 -2698.96
+178.463 -44.8872 -2096.34
+178.716 -44.8177 -1962.1
+179.625 -44.9381 -2461.37
+181.486 -44.9891 -1883.97
+181.792 -44.8723 -1581.26
+181.082 -44.9683 -1893.33
+179.948 -44.8861 -1884
+178.18 -44.6959 -1591.43
+178.551 -44.671 -1610.52
+179.444 -44.7162 -1872.29
+178.85 -44.6625 -1589.38
+180.194 -44.8553 -1503.61
+179.143 -44.6869 -1719.2
+179.204 -42.7355 -1418.28
+177.869 -44.5976 -1437.21
+180.742 -44.9511 -1767.38
+177.477 -44.8512 -1542.69
+180.433 -44.9148 -1595.72
+181.274 -44.7589 -1438.66
+176.714 -42.6976 -900.36
+181.588 -44.73 -1307.94
+177.093 -44.8872 -1473.38
+178.367 -44.4874 -1313.81
+179.756 -44.7062 -1581.23
+178.689 -44.4846 -1329.39
+178.511 -42.7551 -1201.7
+177.549 -44.6077 -1366.5
+176.733 -44.8716 -1350.68
+180.91 -44.7219 -1382.77
+179.025 -44.4725 -1328.87
+177.229 -44.6796 -1271.28
+179.301 -44.5472 -1422.38
+178.039 -44.4543 -1227.49
+176.423 -44.7983 -1230.26
+180.068 -44.6949 -1292.52
+178.303 -42.7346 -1157.18
+180.605 -44.7727 -1369.42
+180.361 -44.7209 -1351.12
+179.567 -44.5245 -1323.46
+176.922 -44.69 -1190.23
+181.134 -44.5776 -1233.84
+177.291 -44.5133 -1236.52
+177.726 -44.4233 -1216.27
+178.51 -44.3128 -1183.67
+180.224 -42.9156 -610.03
+177.431 -44.3942 -1148.54
+178.806 -44.3107 -1168.38
+176.63 -44.6567 -1128.35
+179.053 -44.283 -1129.69
+177.189 -44.3651 -1137
+179.96 -42.9146 -745.87
+180.581 -44.5548 -1095.52
+181.385 -44.5585 -902.66
+179.915 -44.4904 -1140.75
+180.243 -44.5329 -1163.44
+179.242 -42.9089 -797.71
+179.325 -44.3533 -1136.58
+179.448 -42.8539 -919.1
+178.097 -42.736 -868.64
+178.208 -44.2916 -1178.85
+179.053 -42.886 -851.55
+177.883 -44.2297 -1084.68
+180.9 -44.4532 -1082.17
+176.365 -44.6086 -1042.7
+181.662 -44.5209 -1122.26
+180.138 -44.3777 -941.85
+179.663 -44.3335 -1071.05
+178.374 -44.1471 -1023.04
+177.566 -44.2335 -1028.27
+177.314 -44.22 -969.54
+178.641 -44.1596 -974.5
+178.118 -44.1044 -981.09
+181.106 -42.8401 -734.35
+178.91 -44.1566 -931.9
+176.539 -44.4554 -892.75
+180.378 -44.3707 -929.28
+181.187 -44.4107 -705.43
+179.936 -44.2892 -891.05
+178.374 -42.853 -758.48
+177.883 -44.017 -788.4
+179.742 -44.1765 -754.74
+176.734 -44.3333 -883.16
+178.275 -44.0142 -814.23
+177.651 -44.0646 -847.86
+176.896 -42.7733 -623.16
+179.485 -44.1807 -869.83
+181.456 -44.3614 -564.31
+177.263 -42.7948 -620.45
+180.448 -42.9396 -598.3
+180.84 -42.8166 -737.28
+179.185 -44.1368 -819.93
+177.419 -44.0724 -847.71
+180.823 -44.2868 -617.38
+178.5 -43.9965 -750.44
+180.637 -44.3442 -826.04
+181.31 -42.9316 -538.95
+177.086 -44.2069 -865.97
+176.558 -44.2985 -794.59
+178.766 -44.0269 -703.74
+177.194 -44.0599 -576.79
+178.984 -44.0356 -684.29
+176.865 -44.1975 -729.89
+181.548 -42.8796 -893.45
+181.73 -44.3493 -802.81
+177.059 -42.8456 -493.38
+179.612 -44.0543 -626.17
+178.231 -42.8451 -690.81
+176.565 -42.9067 -433.22
+181.02 -44.2824 -644.99
+180.131 -43.0621 -566.21
+177.889 -43.8768 -578.42
+177.561 -42.9437 -358.1
+176.665 -44.1871 -661.6
+178.088 -43.927 -679.59
+179.796 -44.0609 -550.33
+179.956 -44.131 -612.65
+177.498 -43.9492 -683.54
+180.685 -42.9815 -538.74
+177.68 -43.8869 -598.63
+176.466 -44.1919 -634.19
+178.305 -43.8888 -594.36
+177.37 -42.9384 -380.4
+177.296 -43.9108 -633.94
+181.245 -44.2547 -578.83
+180.193 -44.2159 -679.26
+179.388 -44.0171 -601.17
+180.327 -43.0665 -514.51
+178.935 -43.0316 -459.55
+180.463 -44.2153 -559.49
+179.933 -43.0936 -543.29
+180.935 -42.9787 -539.31
+178.486 -43.8356 -462.2
+179.588 -43.0363 -548.3
+178.681 -43.89 -511.33
+181.152 -43.0067 -513.64
+176.727 -42.8593 -456.74
+179.357 -43.0319 -523.08
+181.738 -42.9817 -632
+176.979 -44.0526 -629.31
+181.421 -44.2249 -524.22
+179.542 -43.9243 -513.13
+179.753 -43.1365 -509.82
+178.898 -43.9159 -538.52
+181.594 -44.2345 -551.04
+177.079 -43.9206 -489.03
+179.734 -43.9507 -501.12
+177.458 -43.822 -553.31
+181.449 -43.02 -535.64
+181.304 -43.0431 -513.54
+181.818 -44.2083 -518.38
+177.81 -43.7627 -490.82
+181.607 -43.0244 -535.47
+178.729 -42.9882 -489.58
+176.507 -43.0056 -418.44
+180.687 -44.1933 -489.43
+179.144 -43.9381 -562.29
+177.069 -40.2322 -313.5
+180.132 -44.0606 -489.5
+176.768 -44.0478 -601.36
+181.494 -44.1478 -407.21
+176.559 -44.0549 -549.35
+180.346 -44.0862 -445.58
+181.652 -44.118 -456.92
+176.878 -43.9095 -555.62
+181.325 -44.1314 -482.04
+176.672 -42.9891 -387.41
+179.939 -43.9829 -482.63
+177.177 -42.9399 -376.51
+177.151 -43.7963 -497.97
+179.15 -43.0334 -500.02
+177.629 -43.0423 -334.84
+177.739 -42.9597 -322.61
+177.296 -43.7779 -488.23
+177.035 -42.9496 -373.58
+181.476 -44.03 -467.61
+180.833 -43.1147 -505.14
+179.614 -43.1745 -491.06
+181.037 -43.12 -493.73
+180.516 -43.0899 -469.45
+181.551 -43.1235 -520.06
+181.223 -43.1287 -490.3
+180.671 -43.1267 -474.44
+179.504 -43.814 -485.01
+180.241 -43.1716 -520.51
+180.4 -43.1989 -513.87
+178.333 -43.7606 -418.82
+178.516 -42.949 -537.24
+180.258 -43.97 -423.51
+179.898 -43.2391 -489.39
+180.085 -43.2064 -506.37
+179.359 -43.8685 -508.36
+181.759 -43.1308 -462.3
+178.087 -43.6871 -415.48
+181.391 -43.1302 -486.91
+178.631 -43.7643 -428.32
+177.594 -43.7152 -387.33
+181.095 -44.1279 -455.61
+181.564 -43.9205 -443.28
+180.576 -43.2152 -428.53
+180.744 -43.2272 -388.33
+179.662 -43.8291 -466.9
+181.147 -43.2402 -456.4
+181.812 -44.0976 -477.81
+179.202 -43.7814 -474.24
+177.929 -43.6694 -426.69
+178.091 -42.9136 -436.78
+180.942 -43.255 -469.61
+178.477 -43.7125 -383.98
+176.464 -43.9475 -506.83
+181.36 -43.8884 -425.26
+179.384 -43.7232 -470.56
+180.264 -43.3069 -494.22
+178.291 -42.9793 -400.31
+181.632 -43.2169 -401.65
+176.461 -43.8245 -473.17
+176.986 -43.7968 -492.67
+176.648 -43.8961 -483.76
+179.724 -43.2615 -475.07
+180.881 -44.1692 -466.19
+179.861 -43.8371 -445.31
+180.103 -43.9522 -434.24
+178.811 -43.7894 -446.63
+179.564 -43.2718 -433.4
+179.463 -43.165 -458.46
+180.48 -43.3353 -484.95
+180.647 -43.313 -466.57
+176.803 -43.7524 -465.61
+181.241 -44.0109 -406.24
+181.329 -43.2385 -435.68
+181.492 -43.2276 -382.25
+178.922 -43.1564 -382.33
+180.049 -43.3708 -435.25
+177.389 -43.6936 -376.28
+180.8 -43.346 -492.12
+176.908 -42.9044 -411.2
+176.668 -40.795 -334.54
+177.765 -43.6374 -409.33
+181.535 -43.8118 -401.1
+181.371 -43.7658 -446.73
+181.098 -43.3592 -435.08
+181.01 -43.5802 -441.81
+179.262 -43.1833 -436.56
+179.409 -43.2848 -426.65
+179.578 -43.7161 -432.88
+179.237 -43.6716 -445.72
+179.009 -43.7968 -449.66
+181.722 -43.9992 -484.18
+179.84 -43.373 -443.75
+180.329 -43.888 -387.22
+181.057 -43.472 -447.61
+180.952 -43.3811 -377.47
+181.175 -43.5678 -430.07
+178.223 -43.6932 -409.48
+180.365 -43.4121 -467.35
+178.792 -43.1229 -387.06
+176.603 -43.7363 -378.47
+181.122 -43.6592 -419.53
+179.668 -43.3764 -429.28
+178.981 -43.2336 -407.42
+179.758 -43.7192 -405.6
+180.863 -43.4784 -425.04
+179.089 -43.6776 -433
+179.279 -43.3168 -431.82
+180.564 -44.0829 -369.59
+178.617 -43.098 -381.15
+180.479 -43.4477 -436.55
+179.326 -43.615 -433.63
+181.269 -43.35 -371.77
+181.283 -43.6668 -436.3
+180.867 -43.5981 -422.39
+180.643 -43.4346 -448.82
+179.513 -43.3831 -392.22
+181.497 -43.6729 -418.93
+181.462 -43.3565 -413.48
+181.367 -43.4488 -416.02
+181.219 -43.4615 -411.59
+181.347 -43.5566 -401.88
+178.912 -43.6785 -416.65
+178.852 -43.2322 -414.44
+181.72 -43.8732 -428.03
+181.597 -43.3024 -390.73
+181.537 -43.5141 -437.53
+176.44 -43.6984 -420.29
+176.808 -42.9702 -390.81
+179.482 -43.592 -411.89
+179.119 -43.2958 -432.46
+181.653 -43.4067 -373.4
+178.739 -43.6724 -413.31
+180.229 -43.453 -450.2
+179.058 -43.1556 -422.77
+179.671 -43.603 -391.54
+181.76 -43.3002 -365.28
+179.595 -43.4865 -389.12
+177.463 -43.0751 -309.23
+179.765 -43.4909 -410.23
+180.716 -43.5635 -411.56
+179.906 -43.716 -397.67
+177.063 -43.7167 -464.04
+179.375 -43.4012 -400.51
+179.939 -43.4994 -411.22
+178.948 -43.3294 -411.63
+178.597 -43.6644 -388.74
+180.965 -43.7035 -397.76
+181.705 -43.7487 -383.68
+180.379 -43.5128 -418.16
+180.019 -43.8822 -427.68
+180.177 -43.8572 -409.86
+179.229 -43.4223 -398.19
+179.462 -43.4753 -392.17
+178.535 -43.2089 -402.92
+181.178 -43.7777 -423.98
+177.619 -43.6005 -317.48
+176.444 -43.1119 -350.92
+179.184 -43.5609 -399.53
+179.064 -43.4357 -387.36
+179.344 -43.5136 -394.36
+181.707 -43.6187 -378.22
+177.925 -43.0222 -353.88
+181.726 -43.5099 -305.94
+178.431 -43.1007 -353.11
+180.093 -43.513 -398.01
+178.03 -43.5996 -361.65
+178.698 -43.2141 -414.77
+178.766 -43.3365 -400.57
+180.455 -43.9603 -334.46
+180.923 -44.0628 -351.46
+178.624 -43.2911 -409.77
+180.777 -43.6783 -401
+178.996 -43.561 -376.05
+176.616 -43.1033 -338.52
+179.846 -43.6112 -388.96
+181.159 -43.9018 -407.96
+180.538 -43.5408 -403.62
+178.124 -43.0643 -367.32
+178.343 -43.6432 -368.77
+180.969 -43.8552 -388.87
+180.826 -43.7755 -363.54
+180.03 -43.7763 -392.49
+180.434 -43.8533 -339.92
+180.238 -43.5964 -384.87
+178.493 -43.6031 -363.52
+180.849 -43.9684 -310.58
+180.032 -43.637 -396.01
+180.426 -43.6265 -368.57
+180.76 -44.0708 -287.89
+178.62 -43.3839 -374.95
+177.898 -43.548 -361.16
+178.496 -43.318 -397.72
+178.82 -43.5642 -363.31
+177.265 -43.0562 -297.25
+176.553 -43.6311 -239.46
+177.198 -43.6706 -398.39
+178.887 -43.4479 -359.18
+180.186 -43.7282 -368.32
+180.604 -43.6536 -382.15
+180.322 -43.799 -370.24
+177.76 -43.0844 -325.68
+178.495 -43.4284 -351.97
+178.644 -43.5643 -365.46
+178.008 -43.1525 -378.1
+176.7 -43.6259 -329.86
+181.036 -43.9846 -363.53
+177.033 -43.622 -372.44
+180.48 -43.7523 -327.13
+178.355 -43.23 -366.68
+178.272 -43.1134 -361.11
+180.667 -43.7653 -343.69
+176.413 -43.5686 -396.18
+176.802 -43.0871 -341.03
+178.352 -43.3712 -359.73
+180.327 -43.7008 -353.29
+180.757 -43.8656 -258.5
+180.66 -43.9674 -284.21
+177.869 -43.1405 -349.28
+177.476 -43.5998 -311.79
+178.182 -43.5832 -348.47
+178.604 -43.4704 -341.78
+178.172 -43.1866 -361.62
+178.367 -43.5111 -343.46
+178.058 -43.2575 -328.2
+178.728 -43.4604 -343.23
+176.375 -43.2062 -337.68
+178.056 -43.5167 -316.88
+177.711 -43.5303 -355.01
+178.521 -43.5155 -335.8
+176.487 -40.9371 -196.17
+177.092 -43.0438 -335.86
+177.311 -43.5759 -292.95
+177.9 -43.2401 -304.73
+176.598 -43.5285 -232.97
+177.714 -43.3486 -324.36
+178.175 -43.4358 -336.68
+176.938 -43.0141 -380.03
+177.638 -43.432 -313.22
+177.8 -43.438 -328.11
+176.487 -43.4387 -290.37
+177.982 -43.4214 -309.36
+177.858 -43.3407 -297.7
+180.574 -43.8621 -273.95
+177.563 -43.3361 -273.94
+178.199 -43.3047 -328.32
+177.555 -43.5156 -294.54
+178.078 -43.348 -320.98
+176.541 -43.2293 -286.65
+177.623 -43.1469 -316.55
+177.978 -43.3205 -315.19
+176.774 -43.4958 -241.92
+177.776 -43.2752 -302.8
+176.984 -43.128 -298.87
+176.642 -43.4185 -252.99
+177.146 -43.5412 -292.5
+177.761 -43.1908 -315.69
+176.97 -43.4998 -265.9
+177.491 -43.4213 -277.08
+177.408 -43.4985 -273.3
+176.76 -43.3872 -259.18
+176.727 -43.2071 -298.03
+176.389 -43.3244 -281.28
+177.655 -43.2542 -296.49
+176.888 -43.2124 -273.5
+176.549 -43.344 -258.46
+177.476 -43.2304 -268.81
+177.413 -43.3419 -246.87
+176.676 -43.3143 -263.54
+177.261 -43.4565 -249.39
+177.034 -43.2407 -233.74
+177.104 -43.4334 -236.86
+177.331 -43.163 -256.72
+177.375 -43.4173 -256.04
+177.162 -43.1721 -242.39
+176.816 -43.3053 -271.44
+176.946 -43.3165 -245.17
+177.306 -43.37 -255.32
+176.877 -43.3998 -240.68
+177.196 -43.3585 -227.82
+177.288 -43.274 -227.67
+176.993 -43.3988 -245.82
+177.07 -43.3385 -209.89
+177.15 -43.2768 -205.31
+176.568 -40.7918 -224.58
+176.509 -40.8599 -197
+176.952 -40.0979 -54.46
+176.873 -40.2315 -77.91
+176.724 -40.3623 -46.24
+176.904 -40.1037 -10.66
+176.72 -40.3109 -31.83
+176.665 -40.4763 -31.05
+176.682 -40.435 -35.63
+176.868 -40.1822 -44.07
+176.461 -40.625 -35.21
+176.514 -40.6019 -47.78
+176.823 -40.2345 -53.32
+176.916 -40.062 -18.07
+176.68 -40.3926 -28.37
+176.521 -40.555 -25.1
+176.686 -40.3557 -25.57
+187.101 -40.1326 -4699.55
+186.556 -40.1498 -4688.6
+186.007 -40.1541 -4412.5
+186.952 -40.5137 -4520.07
+187.241 -44.7079 -4396.12
+184.36 -40.2354 -4299.03
+186.757 -40.8794 -4109.72
+185.436 -40.1687 -4232.76
+186.388 -40.5091 -4182.15
+184.876 -40.2044 -4378.29
+185.831 -40.5183 -4246.47
+184.211 -40.4927 -4446.41
+183.619 -40.8757 -3898.88
+184.63 -40.5116 -4153.84
+186.718 -44.7653 -3646.97
+183.857 -40.3181 -4200.2
+185.225 -40.5801 -3918.83
+183.916 -40.665 -4131.09
+187.149 -44.3533 -3864.92
+187.149 -41.2967 -3795.51
+183.441 -40.5731 -3946.18
+184.79 -40.8296 -3832.13
+185.718 -40.8644 -3803.42
+184.784 -41.1448 -2958.29
+186.478 -41.2262 -3414.54
+186.211 -40.8466 -3552.37
+185.726 -41.1355 -3595.71
+184.381 -41.2338 -3352.58
+185.281 -41.0409 -3543.34
+186.752 -44.4783 -3555.3
+183.335 -41.0941 -3589.73
+186.767 -41.5333 -3323
+186.311 -44.9921 -3478.72
+187.128 -44.1094 -2487.4
+185.587 -41.3704 -3353.75
+185.1 -41.4243 -3320.46
+185.679 -45.02 -3666.9
+186.029 -41.0804 -3467.53
+183.99 -41.3123 -3042.6
+186.304 -44.582 -3252.04
+186.012 -41.3291 -2935.43
+184.513 -44.8166 -2200.36
+186.688 -41.82 -3159.12
+183.605 -41.355 -3094.24
+186.362 -41.5783 -3048.84
+185.492 -41.679 -3056.14
+186.761 -44.1446 -2709.39
+186.365 -44.27 -3018.94
+185.834 -44.6855 -2344.56
+185.092 -41.7607 -2890.47
+185.805 -41.886 -2808.19
+185.367 -44.7602 -2789.38
+185.456 -42.0238 -2689.02
+184.345 -41.5892 -3085.1
+185.904 -44.328 -2518.19
+186.611 -42.0725 -2662.26
+186.25 -41.9198 -2730.79
+183.865 -41.5901 -2950.71
+184.693 -41.8714 -2859.3
+186.395 -42.2382 -2604.96
+183.709 -41.8738 -2756.51
+185.941 -42.2075 -2726.45
+184.185 -44.834 -2173.83
+185.586 -42.3379 -2607.62
+186.731 -42.2735 -1913.06
+184.052 -42.1067 -2758.64
+183.885 -44.9044 -2564.99
+184.48 -42.1198 -2596.76
+183.707 -42.5648 -2380.24
+185.448 -44.4434 -1967.21
+185.173 -42.3021 -2608.36
+186.613 -42.4856 -1671.76
+186.246 -42.4856 -2294.09
+184.697 -42.42 -2548.88
+187.01 -42.0925 -2310.82
+184.82 -42.6829 -1901.57
+186.394 -44.025 -1908.38
+185.883 -42.5728 -2287.94
+185.09 -42.6124 -2133.58
+185.464 -42.5802 -2167.5
+184.53 -42.6965 -1722.78
+186.944 -43.895 -2130.68
+186.491 -42.7125 -2042.96
+183.71 -42.788 -1002.25
+185.077 -44.5731 -1788.47
+182.528 -44.9507 -1717.39
+187.14 -43.6808 -2029.21
+187.042 -42.477 -1969.03
+186.205 -42.7129 -1808.73
+186.953 -43.4192 -1850.08
+182.85 -44.9475 -1713.82
+186.576 -43.8568 -1826.03
+183.531 -44.8387 -1818.27
+185.344 -42.8274 -1282.03
+182.129 -44.8782 -1681.2
+185.918 -41.6271 -2860.23
+186.841 -42.7311 -1773.49
+187.104 -43.2597 -1829.72
+184.749 -42.8198 -1648.51
+186.084 -44.0524 -1604.18
+186.72 -43.6132 -1817.45
+185.516 -44.1809 -1378.73
+185.7 -42.8323 -1408.28
+184.275 -44.6636 -1385.12
+186.689 -42.9428 -1690.18
+185.754 -44.0429 -1554.42
+186.625 -43.323 -1700.92
+186.833 -43.1815 -1780.09
+187.167 -42.7702 -1920.43
+185.005 -42.8643 -1471.8
+183.226 -45.0311 -1886.03
+184.01 -44.6728 -1273.67
+187.051 -43.0063 -1811.34
+184.733 -44.6142 -1332.61
+186.407 -43.6561 -1730.31
+186.561 -43.1049 -1648.71
+186.375 -42.9192 -1602.48
+186.053 -42.879 -1346.4
+182.836 -42.8147 -838.37
+186.375 -43.4411 -1560.72
+182.421 -44.7206 -1073.65
+186.2 -43.8057 -1510.32
+185.268 -44.2463 -1369.08
+186.281 -43.1578 -1424.97
+184.481 -44.6088 -1320.67
+183.84 -42.9363 -789.71
+181.885 -44.6808 -1266.4
+186.135 -43.5577 -1353.44
+185.553 -43.0344 -921.25
+185.873 -43.8618 -1342.22
+185.48 -43.9705 -1360.87
+185.878 -43.1003 -1022.94
+182.545 -42.7974 -1082.59
+182.163 -44.6229 -1120.57
+182.715 -44.7584 -1173.44
+186.059 -43.332 -1230.6
+183.604 -42.9178 -1126.67
+184.065 -42.8993 -951.41
+185.887 -43.6593 -1069.7
+185.648 -43.8801 -1113.44
+185.255 -43.0408 -895.5
+185.231 -44.0561 -1354.33
+184.592 -42.8854 -1412.65
+184.345 -42.9059 -1227.43
+182.372 -44.5582 -1112.07
+183.005 -44.7811 -1278.6
+182.338 -42.8448 -708.12
+185.097 -44.3552 -1136.98
+185.663 -43.1935 -949.35
+182.887 -42.984 -614.52
+185.466 -43.8055 -983.63
+185.439 -43.2047 -884.32
+183.269 -44.7496 -1215.82
+182.613 -44.5593 -850.43
+184.991 -43.0914 -1005.09
+184.778 -42.9789 -1105.88
+183.729 -44.6684 -907.1
+184.132 -44.5396 -799.82
+183.466 -44.6467 -867.29
+185.853 -43.4537 -1086.01
+185.82 -43.2844 -1503.48
+184.555 -43.0398 -1223.49
+185.658 -43.7352 -911.66
+183.377 -42.9177 -1016.33
+184.836 -44.4253 -851.69
+184.319 -44.4905 -380.8
+185.264 -43.8717 -944.31
+181.95 -44.4695 -1017.31
+183.098 -42.9369 -907.41
+185.053 -44.1735 -1077.28
+185.177 -43.228 -932.92
+182.67 -42.9742 -672.48
+182.871 -44.6093 -928.55
+185.623 -43.3437 -1316.78
+184.559 -44.4459 -671.41
+182.136 -42.7974 -999.01
+184.955 -43.2529 -735.05
+185.465 -43.6747 -1172.5
+182.219 -44.4571 -883.68
+184.745 -43.1813 -801.49
+185.595 -43.5449 -1039.87
+185.338 -43.3934 -1152.45
+182.444 -42.9472 -601.57
+185.059 -43.3802 -1020.02
+185.006 -44.0389 -1151.12
+184.5 -43.1973 -743.23
+181.859 -42.8623 -746.53
+183.001 -43.0822 -496.27
+184.374 -43.0832 -755.08
+185.284 -43.7169 -1053.05
+185.159 -43.4968 -1232
+184.011 -43.0299 -687.84
+182.445 -44.4311 -868.77
+185.119 -43.6224 -923.88
+184.802 -43.3837 -879.97
+185.324 -43.5708 -1032.89
+183.106 -44.6088 -826.21
+182.799 -44.4747 -688.13
+182.656 -44.3937 -663.03
+182.245 -42.9451 -545.31
+184.191 -43.0484 -705.72
+184.962 -43.5184 -1296.95
+182.09 -44.3556 -645.05
+184.868 -44.2503 -844.43
+181.929 -44.3188 -667.84
+185.081 -43.7675 -1130.87
+185.046 -43.9158 -1273.02
+183.702 -43.0588 -584.59
+182.833 -43.1012 -440.67
+182.293 -44.3109 -515.74
+183.29 -44.5911 -752.72
+184.664 -44.2925 -637.05
+184.609 -43.3131 -951.22
+184.86 -44.0969 -1086.39
+182.986 -44.4738 -630.42
+184.433 -43.3331 -790.84
+184.907 -43.6658 -821.23
+184.277 -43.2097 -630.09
+182.061 -42.9411 -689.71
+184.74 -43.5627 -1125
+183.504 -43.0555 -615.96
+184.556 -43.458 -658.53
+183.135 -43.0929 -514.7
+182.51 -44.315 -491.45
+181.922 -43.0226 -555.36
+184.852 -43.9563 -767.47
+183.887 -43.1007 -568.67
+182.064 -44.2244 -481.55
+184.872 -43.8139 -858.89
+184.696 -44.1493 -813.7
+184.695 -43.7148 -663.72
+184.482 -44.2942 -355.91
+182.255 -44.1758 -490.51
+184.262 -43.3623 -801.63
+183.981 -44.5262 -551.13
+182.139 -43.074 -599.81
+182.865 -44.342 -459.55
+183.582 -44.5396 -422.62
+182.66 -43.1303 -391.73
+184.687 -44.0129 -580.44
+182.351 -43.0662 -470.02
+184.068 -43.1522 -613.61
+184.377 -43.4384 -812.92
+182.463 -44.19 -384.53
+181.945 -44.1297 -472.45
+182.68 -44.2473 -425.66
+181.982 -43.1581 -464.1
+184.54 -43.617 -817.26
+183.295 -43.0864 -567.87
+184.54 -44.1871 -170.79
+182.52 -43.0622 -509.13
+182.109 -44.0825 -485.79
+184.489 -43.7546 -439.65
+182.138 -43.1975 -440.1
+184.111 -43.2864 -594.95
+181.923 -44.0358 -426.01
+183.769 -43.1838 -480.39
+181.9 -43.2456 -380.54
+183.083 -43.1659 -350.93
+184.276 -43.5904 -277.07
+182.29 -43.1843 -364.29
+183.064 -44.359 -438.92
+184.542 -44.0724 -393.77
+182.329 -44.0686 -447.01
+183.398 -44.4926 -469.03
+182.967 -43.2097 -295.44
+182.057 -43.2746 -412
+182.036 -43.9809 -479.97
+182.626 -44.1373 -494.69
+184.657 -43.867 -356.38
+181.892 -43.932 -442.81
+184.371 -44.3655 -376.51
+183.609 -43.1697 -455.16
+184.241 -43.487 -782.81
+182.199 -43.9688 -470.01
+182.766 -44.1354 -401.92
+182.852 -44.215 -509.7
+182.491 -43.1815 -359.19
+181.953 -43.353 -327.44
+182.136 -43.385 -405.94
+182.522 -44.0558 -371.45
+182.227 -43.2891 -302.46
+182.796 -43.2216 -284.36
+182.056 -43.8852 -423.65
+182.017 -43.4719 -358.9
+181.89 -43.8175 -382.92
+181.834 -43.4348 -351.29
+182.211 -43.5151 -386.69
+182.412 -43.9369 -392.64
+182.067 -43.5708 -353
+182.231 -43.8539 -389.99
+182.65 -43.2318 -327.38
+181.896 -43.5667 -369.13
+182.398 -43.2898 -324.61
+182.689 -44.049 -385.5
+181.882 -43.6957 -374.57
+182.024 -43.6494 -344.63
+182.249 -43.7502 -352.44
+182.188 -43.6507 -416.35
+182.392 -43.7989 -364.84
+182.075 -43.7586 -384.54
+184.523 -43.9551 -310.79
+182.614 -43.9529 -391.32
+183.451 -43.1838 -418.44
+184.375 -43.6546 -493.75
+182.82 -44.0525 -328.76
+182.926 -44.1208 -336.05
+182.339 -43.4025 -303.87
+182.398 -43.5215 -342.7
+182.324 -43.5996 -345.45
+182.574 -43.8382 -232.46
+182.357 -43.689 -353.51
+183.198 -43.1842 -376.49
+183.194 -44.4634 -489.84
+182.482 -43.3663 -290.8
+182.531 -43.7118 -267.21
+183.804 -43.2724 -397.13
+184.254 -44.3827 -376.96
+184.125 -43.4033 -663.58
+182.501 -43.449 -270.84
+183.069 -44.1481 -191.65
+182.46 -43.6143 -280.89
+183.519 -44.4558 -224.89
+183.006 -44.2379 -353.67
+183.859 -44.561 -540.84
+184.408 -44.2012 -217.47
+183.687 -43.2705 -394.62
+183.929 -43.2382 -409.2
+182.593 -43.6176 -171.39
+183.725 -44.5272 -255.04
+183.547 -43.2744 -355.6
+182.73 -43.3307 -148.62
+184.479 -43.8612 -237.27
+182.779 -43.959 -237.43
+182.537 -43.5394 -266.49
+184.154 -44.4195 -414.41
+182.562 -43.2976 -263.68
+184.333 -43.7396 -315.7
+183.322 -43.2213 -345.65
+182.909 -43.3225 -176.18
+184.221 -43.6776 -486.27
+184.422 -44.1154 -365.65
+183.19 -44.3564 -318.91
+184.155 -43.5797 -333.46
+183.021 -43.3014 -279.58
+182.608 -43.3924 -222.8
+182.659 -43.6789 -154.23
+184.35 -44.2654 -203.82
+183.989 -43.3575 -623.78
+183.141 -44.2824 -248.16
+184.386 -44.0147 -326.92
+182.691 -43.8888 -233.58
+183.417 -43.2857 -277.37
+184.221 -43.7858 -314.56
+182.732 -43.4378 -143.2
+182.701 -43.8281 -201.03
+182.627 -43.4814 -194.85
+183.113 -43.2606 -267.96
+183.622 -43.3592 -315.38
+182.67 -43.7587 -153.35
+184.381 -43.9144 -201.99
+183.124 -44.2136 -164.42
+183.763 -43.3574 -472.04
+184.394 -43.5427 -229.73
+182.932 -44.0056 -166.04
+182.642 -43.5548 -94.69
+183.874 -43.3241 -474.79
+184.254 -44.2998 -325.16
+183.237 -43.2759 -254.36
+184.36 -43.8229 -206.81
+184.066 -43.6555 -217.89
+182.788 -43.8661 -171.61
+182.779 -43.7911 -111.47
+183.441 -44.3979 -181.38
+184.25 -44.1687 -54.2
+183.04 -44.0668 -161.77
+184.327 -44.1443 -279.18
+184.323 -44.0806 -189.32
+184.263 -44.2299 -127.52
+184.045 -44.4507 -361.71
+183.311 -44.3761 -227.45
+183.928 -43.5379 -198.46
+184.031 -43.5614 -212.33
+183.845 -43.5121 -221.78
+184.126 -43.7305 -226.92
+183.803 -43.4507 -227.96
+183.323 -43.2978 -356.86
+182.723 -43.6112 -124.54
+182.85 -43.4111 -117.79
+183.397 -44.3347 -162.64
+182.776 -43.7037 -75.05
+183.953 -43.612 -173.01
+184.097 -43.4919 -467.17
+182.905 -43.9008 -151.98
+183.882 -43.3973 -466.86
+183.902 -43.4694 -410.06
+183.489 -43.3721 -221.82
+183.044 -44.0025 -139.72
+183.018 -43.3654 -271.21
+182.731 -43.5243 -118.33
+184.108 -43.7885 -229.33
+184.062 -44.3914 -223.81
+183.633 -44.4488 -140.76
+184.02 -43.7411 -281.48
+183.968 -43.6783 -167.25
+183.236 -44.3057 -186.47
+183.678 -43.4456 -222.77
+183.184 -43.3362 -137.86
+182.829 -43.6376 -210.07
+183.993 -43.4865 -275.15
+184.262 -43.8772 -90.62
+183.746 -43.524 -263.97
+182.902 -43.6937 -133.01
+183.145 -44.0986 -129.85
+182.872 -43.7678 -92.91
+184.237 -44.1033 -191.73
+182.859 -43.8314 -163.28
+183.123 -44.0303 -117.87
+183.327 -44.2817 -162.44
+183.843 -43.5858 -261.83
+182.826 -43.5697 -142.21
+183.542 -44.3914 -145.08
+183.95 -44.439 -187.56
+183.176 -44.1648 -138.61
+183.886 -43.6604 -100.57
+182.833 -43.4931 -122.86
+183.738 -44.4498 -35.08
+183.572 -43.4253 -285.98
+183.939 -43.7862 -199.59
+183.095 -43.3434 -378.02
+184.032 -43.8226 -175.43
+184.141 -43.8623 -162.03
+182.917 -43.6139 -261.58
+183.274 -43.3435 -240.79
+183.431 -44.2809 -145.95
+184.034 -43.4333 -331.21
+183.105 -43.9663 -182.74
+183.96 -43.4288 -348.34
+182.961 -43.4096 -126.34
+183.364 -43.3606 -162.1
+183.993 -44.3887 -132
+183.654 -43.5121 -233.31
+182.913 -43.5414 -141.65
+183.224 -44.234 -119.37
+183.737 -43.5991 -262.97
+182.929 -43.4745 -80.06
+183.949 -43.8572 -159.77
+183.22 -44.0544 -186
+183.187 -43.9935 -118.64
+183.013 -43.9415 -131.62
+183.629 -44.3703 -95.42
+183.583 -43.4881 -309.32
+184.2 -43.9199 -92.7
+184.043 -43.8944 -49.64
+183.66 -43.5641 -83.59
+184.321 -44.2016 -217.54
+183.919 -43.7215 -155.52
+183.239 -44.1196 -122.99
+182.976 -43.5723 -111.79
+182.972 -43.6623 -178.77
+182.951 -43.8258 -105.35
+182.965 -43.7599 -129.04
+184.139 -44.0627 -197.2
+184.275 -43.954 -43.35
+183.48 -44.3371 -145.61
+183.851 -43.8153 -63.7
+183.795 -43.6593 -90.7
+183.857 -43.754 -112.24
+183.486 -43.4616 -75.41
+184.241 -44.0251 -145.83
+183.173 -43.9328 -142.35
+183.544 -44.2232 -16.98
+183.036 -43.417 -176.98
+183.467 -44.2187 -18.78
+184.198 -44.1986 -37.29
+183.525 -44.2796 -117.41
+183.868 -43.8879 -95.85
+183.018 -43.6216 -144.28
+183.051 -43.762 -23.82
+182.991 -43.5207 -90.4
+183.088 -43.8956 -107.33
+184.127 -43.9345 -100.35
+183.606 -44.252 -116.74
+183.959 -44.325 -62.06
+183.693 -44.4048 -81.38
+183.913 -44.375 -133.49
+183.028 -43.6729 -77.19
+183.283 -44.039 -49.29
+183.961 -43.9237 -77.01
+184.147 -44.1404 -58.41
+183.604 -44.1907 -41.47
+183.258 -44.1748 -96.6
+184.028 -44.304 -36.34
+183.079 -43.3935 -202.22
+184.048 -43.9659 1.94
+184.024 -44.0083 -30.87
+184.078 -44.0174 -97
+184.138 -43.9957 -39.89
+183.594 -43.5388 -165.32
+182.997 -43.7103 -84.68
+183.231 -43.9044 -90.51
+183.525 -44.1756 -3.89
+183.406 -43.4228 -81.92
+183.463 -44.157 -62.31
+183.301 -44.0823 -76.08
+183.166 -43.8726 -108.92
+183.814 -44.4322 -70.62
+183.002 -43.8805 -100.26
+184.169 -44.2722 -143.18
+183.019 -43.7986 -61.26
+183.25 -44.0121 -132.34
+183.877 -44.4168 -145.71
+183.246 -43.9631 -91.12
+183.32 -44.2075 -123.38
+183.791 -43.766 -71.65
+183.673 -44.2265 -94.81
+183.046 -43.5639 -98.27
+183.757 -44.3939 -45.79
+183.388 -44.2338 -132.4
+183.969 -43.9793 -27.4
+183.719 -43.6459 -103.23
+183.511 -43.5338 -64.57
+183.398 -43.4751 -138.7
+184.202 -44.2424 -192.4
+184.047 -44.0525 -154.43
+183.66 -43.6172 -76.35
+183.23 -43.3921 -70.99
+183.883 -44.4779 -279.9
+183.147 -43.3942 -159.65
+183.609 -44.309 -104.59
+183.299 -43.39 -79.04
+183.099 -43.6069 -68.16
+183.571 -44.1429 2.98
+183.015 -43.4643 -123.09
+183.97 -44.269 -21.21
+183.555 -44.3375 -128.43
+184.087 -44.0939 -174.6
+183.341 -43.4122 -63.58
+183.069 -43.7107 -32.73
+183.569 -43.5945 -83.11
+183.351 -43.4474 -86.64
+183.977 -44.0242 -61.12
+183.439 -43.5096 -78.49
+183.668 -44.3296 -76.37
+183.07 -43.5082 -120.82
+183.926 -43.9989 -44.62
+183.092 -43.6614 -58.29
+184.195 -43.9669 -43.48
+183.332 -44.1391 -79.4
+183.052 -43.8391 -19.81
+184.028 -44.3507 -84.79
+183.125 -43.5547 -80.27
+183.273 -43.8709 -65.99
+183.89 -43.9534 -77.7
+183.629 -44.1484 -54.53
+183.308 -43.9254 -55.46
+183.194 -43.4445 -67.2
+183.612 -43.641 -58.22
+184.067 -44.1216 -117.16
+184.037 -44.0915 -142.26
+183.984 -44.0701 -109.71
+183.326 -43.4851 -212.07
+183.217 -43.8583 -38.88
+184.09 -44.3453 -110.38
+184.169 -44.3333 -207.48
+183.876 -44.3191 -146.58
+183.681 -44.2833 -84.5
+183.427 -43.5529 -69.94
+183.284 -43.4381 -70.78
+183.824 -43.9223 -70.97
+183.373 -43.5203 -185.11
+183.801 -43.8515 -42.25
+183.307 -43.8336 -60.39
+184.095 -44.2761 -6.31
+183.896 -44.2722 -44.84
+183.923 -44.0385 -83.02
+184.065 -44.1651 -45.16
+183.171 -43.601 -58.92
+183.144 -43.6391 -60.31
+183.481 -43.582 -72.78
+183.668 -43.6634 -97.39
+183.606 -44.1197 -26.79
+183.614 -43.6787 -37.73
+183.353 -43.5733 -50.94
+183.507 -44.1244 -40.21
+183.1 -43.4476 -81.85
+183.69 -44.1756 -72.86
+183.804 -44.4896 -125.74
+184.048 -44.2189 2.15
+184.002 -44.1217 -86.81
+183.397 -44.1808 -34.38
+183.92 -44.0922 -99.29
+183.71 -44.3611 -88.43
+183.82 -43.9634 -54.12
+183.872 -44.001 -62.82
+183.816 -44.0041 -54.7
+183.152 -43.672 -39.59
+183.362 -43.6204 -24.26
+183.825 -44.3113 -80.5
+184.131 -44.215 -13.9
+183.245 -43.492 -60.81
+183.878 -44.1376 -76.27
+183.85 -44.0935 -108.21
+183.988 -44.1762 -16.76
+183.217 -43.5506 -54.78
+183.775 -44.0285 -54.09
+183.306 -43.6119 -16.32
+183.27 -43.6405 -7.33
+183.418 -43.6015 -50.71
+183.299 -43.5322 -144.11
+183.806 -44.1189 -92.33
+183.158 -43.4993 -79.53
+183.329 -43.8724 -48.57
+183.79 -44.0746 -70.75
+183.746 -44.1024 -54.97
+183.712 -44.0599 -46.77
+183.851 -44.0468 -90.85
+183.283 -43.5743 -49.36
+183.242 -43.605 -49.46
+183.673 -44.1148 -52.34
+184.026 -44.2578 -15.28
+183.764 -43.9807 -67.86
+183.207 -43.6544 -33.88
+183.742 -43.8624 -44.11
+183.822 -44.3616 -95.92
+183.733 -43.6905 -127.3
+183.077 -43.8062 -4.89
+183.796 -43.8888 -74.03
+183.483 -43.6275 -68.51
+183.817 -44.1653 -62.29
+183.113 -43.7512 -31.1
+183.139 -43.7112 -4.8
+183.552 -43.6527 -43.32
+183.748 -43.9215 -95.42
+183.734 -44.2198 -117.94
+183.552 -44.1011 -11.05
+183.751 -44.144 -114.57
+183.922 -44.2317 0.3
+183.393 -43.8949 -29.88
+183.269 -43.6744 -18.36
+183.688 -43.8327 -51.55
+183.944 -44.1388 -48.17
+183.62 -43.7112 -18.36
+183.371 -43.9485 -49.92
+183.714 -44.0076 -91.05
+183.643 -44.076 -10.01
+183.842 -43.7077 -88.94
+183.184 -43.6972 -25.72
+183.927 -44.1679 -21.87
+183.33 -43.6603 -13.26
+183.604 -44.0955 -14.82
+183.88 -44.1916 -5.43
+183.713 -44.3242 -97.49
+183.752 -43.8033 -77.43
+183.857 -44.2366 1.13
+183.767 -44.1931 -150.68
+183.559 -43.6989 -3.7
+183.673 -43.8779 -47.89
+183.658 -43.9264 -108.63
+183.407 -43.6576 -70.81
+183.94 -44.1984 1.58
+183.231 -43.7112 -63.29
+183.364 -43.8374 -21.51
+183.707 -43.9626 -143.27
+183.306 -43.7057 0.17
+183.983 -44.2246 -7.79
+183.651 -43.9817 -133.45
+183.591 -43.7208 1.67
+183.819 -44.2066 -14.75
+183.483 -43.6788 -29.54
+183.673 -43.7109 -62.35
+190.756 -41.8814 -3839.55
+190.451 -40.4746 -4348.49
+190.413 -44.9669 -5238.7
+190.321 -44.4973 -5269.99
+189.754 -44.7531 -5057.33
+189.813 -44.327 -5091.63
+190.172 -43.9921 -4781.6
+189.316 -44.3783 -4625.17
+189.075 -44.751 -4751.14
+187.633 -40.1009 -4552.87
+189.504 -43.9958 -4551.7
+189.696 -43.6234 -4482.27
+188.154 -40.0621 -4570.19
+188.776 -44.4151 -4494.21
+190.205 -43.571 -4335.85
+188.646 -40.0117 -4532.79
+187.506 -40.4935 -4496.09
+188.58 -44.7042 -4158.72
+189.064 -39.9016 -4636.52
+190.677 -40.082 -4705.24
+187.988 -44.7609 -4284.29
+188.044 -40.4421 -4472.75
+190.337 -40.8816 -4455.67
+188.893 -44.0068 -4072.83
+190.077 -40.1339 -4495.19
+188.337 -44.4707 -4635.03
+187.552 -44.466 -4238.99
+190.339 -41.7045 -4472.14
+187.915 -44.2942 -4389.86
+188.557 -40.3813 -4462.89
+189.543 -40.0811 -4610.14
+189.117 -40.3267 -4557.79
+187.353 -40.879 -4297.29
+189.123 -43.6175 -3454.35
+187.934 -40.8328 -4358.41
+190.305 -41.3015 -4331.42
+189.793 -40.5276 -4286.13
+187.452 -44.1985 -3616.9
+189.932 -41.9067 -3928.86
+189.321 -40.7184 -4191.79
+188.484 -40.766 -4217.83
+188.905 -40.6544 -4313.49
+189.739 -41.0016 -4159.08
+189.687 -41.4762 -4084.22
+190.469 -42.0831 -3851.62
+187.78 -41.2298 -4016.25
+189.048 -41.0959 -4069.61
+188.373 -41.1598 -4063.88
+190.081 -42.1951 -3619.55
+189.412 -41.8363 -3325.66
+187.634 -41.6146 -3481.01
+189.846 -43.2344 -3457.77
+187.655 -44.0264 -2670.94
+188.383 -44.157 -3176.1
+189.336 -43.3127 -2987.28
+188.236 -41.5956 -3568.5
+190.488 -43.2807 -3483.74
+189.667 -42.1508 -3383.19
+190.41 -42.4202 -3114.97
+187.965 -41.9212 -2908.54
+188.836 -41.8169 -3119.57
+189.21 -42.1319 -3128.64
+187.99 -43.9452 -2685.39
+188.414 -41.9874 -2750.81
+190.262 -42.6959 -2883.85
+188.687 -43.6551 -2553.9
+189.942 -42.4202 -2525.26
+190.51 -42.9543 -3102.82
+188.978 -43.3123 -2173.59
+188.182 -42.1586 -2221.74
+188.794 -42.165 -2484.66
+190.097 -42.9523 -2814.79
+189.494 -42.4085 -2545.73
+187.861 -42.2163 -2346.81
+189.69 -42.9119 -2503.25
+188.718 -43.3944 -2236.32
+187.461 -42.3254 -1955.02
+188.385 -43.8103 -2415.44
+189.361 -43.0042 -2137.12
+189.8 -42.6782 -2582.42
+187.317 -43.9414 -2002.68
+189.092 -42.3927 -2136.52
+188.491 -42.2806 -2086.73
+188.744 -43.169 -2321.24
+188.314 -43.4467 -2395.84
+187.577 -43.7314 -1919.84
+188.204 -42.4069 -2115.73
+187.979 -43.6247 -2117.84
+189 -43.0794 -2106.73
+189.334 -42.6851 -2025.13
+188.78 -42.3972 -1998.83
+188.439 -43.158 -2233.63
+187.858 -42.5169 -1588.67
+188.236 -42.692 -2013.37
+187.93 -43.3577 -2103.1
+187.642 -43.4292 -2146.7
+187.298 -43.4566 -2002.24
+188.029 -43.1119 -2069.68
+188.974 -42.805 -1901.86
+188.244 -42.9355 -2014.52
+187.679 -43.1687 -1962.98
+188.953 -42.5707 -1908.93
+188.6 -42.9133 -2002.34
+187.364 -43.214 -1891.38
+188.597 -42.5771 -1692.3
+187.501 -42.6808 -1563.9
+187.708 -42.9468 -1855.17
+187.41 -42.9633 -1797.87
+187.924 -42.8094 -1824.09
+192.84 -41.0924 -4669.01
+193.454 -44.9605 -5339.64
+193.308 -44.5961 -5295.09
+192.821 -44.8596 -5343.61
+193.195 -44.1834 -5340.7
+192.122 -44.9313 -5339.07
+193.135 -43.8474 -5396.35
+192.68 -44.3543 -5239.7
+193.806 -44.4102 -5343.41
+193.914 -44.8233 -5450.15
+193.152 -43.2374 -5284.27
+191.5 -45.0073 -5264.95
+190.983 -45.1739 -5247.22
+190.936 -44.7319 -5246.98
+193.14 -42.8887 -5039.69
+192.229 -44.5433 -5102.57
+193.686 -44.0185 -5271.2
+192.61 -43.9271 -5132.96
+194.268 -44.213 -5414.46
+194.404 -44.6286 -5366.12
+191.555 -44.4978 -5203.41
+194.103 -43.8745 -5405.47
+192.699 -43.4922 -5161.4
+194.734 -43.9634 -5231.93
+193.543 -43.6059 -5168.78
+190.845 -44.2483 -4956.47
+194.256 -43.5803 -5260.26
+194.88 -44.4109 -5364.42
+195.005 -44.8355 -5496.15
+191.97 -44.0924 -4990.26
+194.833 -43.602 -5232.13
+193.794 -43.1639 -5158.09
+192.584 -43.0363 -4987.75
+195.371 -43.818 -5211.88
+193.636 -42.7639 -4972.25
+194.565 -43.2543 -5164.56
+191.312 -44.059 -4994.35
+194.356 -42.4332 -4800.11
+195.444 -44.2558 -4997.61
+195.031 -42.9853 -5035.07
+195.249 -43.4057 -5166.25
+195.423 -44.6384 -5000.59
+195.476 -42.7243 -4997
+195.629 -45.0175 -4997
+195.821 -42.4382 -4997
+195.537 -40.511 -4997
+194.913 -41.8082 -5087.85
+192.406 -40.8017 -4431.26
+194.665 -41.3871 -5045.1
+195.79 -43.1525 -4997
+194.739 -42.1746 -5081.7
+195.263 -42.3897 -5084.3
+194.082 -42.1409 -4967.18
+194.842 -42.5813 -4979.12
+193.907 -41.3937 -5098.38
+193.7 -40.6549 -4975.13
+193.215 -40.4641 -5014.63
+194.326 -41.7857 -5022.48
+193.789 -41 -5001.26
+193.159 -40.0661 -5050.1
+195.159 -40.8094 -1768.92
+194.276 -42.8053 -5084.44
+193.839 -42.4639 -5059.07
+193.665 -40.2857 -4886.71
+195.904 -43.6223 -4997
+193.682 -41.8259 -4938.05
+193.546 -42.1618 -4839.45
+193.295 -40.8462 -5147.24
+195.572 -40.9577 -4940.61
+194.837 -40.5374 -4307.71
+194.942 -40.1963 -5248.02
+193.228 -41.4892 -4801.56
+194.296 -40.1812 -4690.16
+194.244 -41.1001 -5069.75
+195.344 -41.5882 -5025.95
+195.478 -42.0493 -4997
+194.39 -40.5804 -2912.63
+196.092 -44.0964 -4997
+192.555 -42.6359 -4834.35
+195.906 -41.7729 -4198.3
+192.354 -40.5106 -4866.04
+193.414 -41.1675 -5022.71
+191.993 -43.6099 -4885.1
+195.224 -41.158 -4277.44
+193.165 -42.4442 -4903.04
+192.963 -41.9339 -4697.43
+192.798 -40.6717 -4973.94
+192.023 -40.1956 -4707.23
+191.415 -43.7083 -4807.53
+194.149 -40.7919 -4608.24
+192.412 -42.2253 -4642.36
+192.177 -41.8069 -4392.68
+191.929 -43.1364 -4504.97
+191.876 -40.6443 -4549.9
+192.167 -41.0807 -4686.08
+192.668 -40.2395 -4949.66
+192.541 -41.4897 -4706.14
+191.425 -43.3314 -4052.85
+191.355 -40.2207 -4831.37
+191.316 -40.6248 -4557.46
+191.867 -41.4235 -4322.42
+191.472 -41.0185 -4424.4
+190.939 -40.4337 -4605.67
+195.88 -41.3534 -2683.71
+191.328 -41.3873 -4109.69
+190.896 -40.7663 -4480.37
+191.532 -41.7025 -4397.42
+190.778 -43.7481 -4638.62
+190.869 -41.1529 -3780.72
+190.886 -41.578 -4182.76
+191.186 -41.9378 -3759.7
+191.752 -42.0664 -4096.51
+192.09 -42.7902 -3830.07
+190.922 -42.1098 -3412.61
+191.308 -43.006 -3124.1
+194.668 -40.9012 -3093.55
+194.049 -40.5018 -3717.2
+191.929 -42.4523 -3228.75
+191.005 -43.438 -3863.53
+191.354 -42.273 -3120.16
+191.473 -42.6842 -2719.19
+190.903 -42.3846 -2279.06
+190.919 -43.1219 -2992.79
+190.815 -42.7499 -3001.2
+197.3 -41.029 -4997
+200.488 -43.1428 -4997
+197.824 -43.2633 -4997
+202.464 -44.5526 -4997
+198.026 -40.1357 -4997
+197.741 -40.8356 -4997
+202.072 -43.2205 -4997
+201.213 -41.8779 -4997
+196.538 -41.7108 -4451.45
+200.751 -42.0553 -4997
+200.488 -40.6369 -4997
+200.213 -40.3116 -4997
+197.197 -41.7835 -4997
+200.625 -44.1979 -4997
+196.161 -40.144 -4997
+198.333 -44.6076 -4997
+197.989 -41.187 -4997
+198.914 -43.0673 -4997
+197.325 -42.9638 -4997
+202.79 -41.9954 -4997
+197.469 -40.1604 -4997
+197.708 -41.5719 -4997
+202.512 -43.6157 -4997
+202.605 -44.1593 -4997
+200.185 -44.0746 -4787.47
+199.219 -42.8461 -4997
+201.721 -42.7276 -4997
+201.629 -43.1843 -4997
+200.887 -42.5156 -4997
+201.746 -42.1398 -4997
+202.001 -41.371 -4997
+200.298 -43.3965 -4997
+198.727 -42.8103 -4997
+202.628 -43.0575 -4997
+202.474 -42.4201 -4997
+198.286 -44.2709 -4997
+201.444 -41.3302 -4997
+202.194 -44.7431 -4997
+196.417 -41.2867 -4997
+198.181 -43.6623 -4904.2
+201.53 -43.7709 -4997
+200.349 -42.7403 -4997
+202.077 -43.8817 -4997
+198.29 -42.6374 -4481.17
+198.201 -42.2922 -4997
+198.518 -44.0282 -4997
+201.046 -43.0357 -4997
+201.252 -42.2699 -4997
+198.417 -41.9457 -4997
+201.55 -40.9839 -4997
+196.1 -42.7845 -4997
+201.092 -40.6273 -4997
+196.336 -42.5276 -4997
+202.194 -41.866 -4997
+197.787 -44.7325 -4997
+201.077 -43.9989 -4997
+202.569 -41.5859 -4997
+201.873 -43.5173 -4997
+200.891 -43.508 -4997
+200.669 -40.2758 -4997
+201.624 -41.6772 -4997
+201.394 -43.4032 -4997
+201.186 -44.4538 -4997
+201.723 -44.7937 -4997
+201.861 -44.3055 -4997
+197.921 -43.9513 -4997
+197.78 -44.3134 -4997
+199.799 -40.11 -4997
+200.638 -44.9103 -4997
+197.722 -42.4242 -4469.05
+199.343 -43.2569 -4997
+200.646 -44.5768 -4997
+202.49 -41.2392 -4997
+198.228 -40.8736 -4997
+198.343 -41.5181 -4997
+196.966 -41.3996 -4997
+200.745 -41.6022 -4997
+200.867 -41.1039 -4997
+200.399 -43.7863 -4997
+201.177 -41.5148 -4997
+196.831 -44.6765 -4997
+196.227 -40.6368 -4997
+196.594 -44.3925 -4997
+196.694 -44.1216 -4997
+196.465 -43.8307 -4997
+196.459 -43.476 -4997
+196.418 -43.1031 -4997
+196.278 -42.1534 -4780.85
+197.727 -42.0256 -4997
+196.623 -40.984 -4997
+198.86 -43.3725 -4237.5
+199.366 -40.2407 -4997
+196.74 -42.8207 -4997
+198.706 -40.0168 -4997
+198.443 -40.5178 -4997
+202.148 -40.9425 -4997
+196.884 -40.1583 -4997
+199.879 -43.0536 -4997
+201.143 -44.8665 -4997
+199.863 -43.5106 -4997
+196.058 -40.9566 -4997
+197.617 -43.6095 -4997
+197.153 -43.8676 -4997
+197.166 -44.4209 -4997
+197.872 -40.5142 -4997
+201.733 -40.5661 -4997
+201.949 -40.0804 -4997
+198.797 -42.446 -4997
+198.59 -41.222 -4997
+198.731 -40.8897 -4997
+199.16 -40.6382 -4997
+197.283 -44.8219 -4997
+201.244 -40.1974 -4997
+197.077 -43.3006 -4997
+198.852 -44.811 -4997
+198.848 -44.4384 -4625.02
+199.9 -43.8502 -4670.07
+200.256 -40.9232 -4997
+199.773 -41.0001 -4997
+200.268 -41.2901 -4997
+199.801 -41.3646 -4997
+200.151 -41.739 -4997
+199.235 -41.1969 -4997
+199.567 -41.5896 -4997
+202.393 -40.5482 -4997
+198.979 -41.6502 -4997
+199.86 -40.5625 -4997
+199.606 -42.4896 -4997
+200.23 -42.2565 -4997
+199.617 -41.9761 -4997
+196.161 -44.6724 -4997
+199.086 -42.1028 -4997
+196.758 -40.5883 -4997
+198.414 -43.0544 -4972.82
+197.336 -40.5502 -4997
+196.733 -42.4504 -4770.2
+200.244 -44.3394 -4831.85
+197.238 -42.6072 -4294.85
+199.37 -44.7571 -4634.29
+197.812 -42.8246 -4180.41
+200.019 -44.6747 -4546.2
+199.356 -43.7203 -4301.9
+199.747 -44.1732 -4233.24
+198.411 -43.4193 -3245.82
+199.104 -44.0865 -3802.08
+199.416 -44.433 -4335.01
+197.071 -42.1581 -2758.46
+198.74 -43.7257 -3414.52
+166.684 -43.815 -3707.68
+166.603 -43.0274 -3791.24
+166.708 -41.5024 -2721.77
+166.779 -42.6866 -3286.17
+166.917 -42.3758 -3287.22
+166.963 -43.2561 -3548.02
+167.395 -44.3904 -3597.3
+167.136 -42.6285 -2781.38
+167.163 -41.9155 -2539.53
+167.809 -42.1716 -1906.41
+167.064 -41.6058 -2107.34
+167.458 -42.5929 -2264.44
+167.604 -42.3334 -2178.51
+166.865 -40.6992 -1657.62
+167.5 -41.9121 -1968.98
+167.615 -42.8084 -1594.48
+168.06 -42.1227 -1544.59
+167.377 -41.6848 -1640.64
+167.008 -41.325 -1708.9
+167.076 -40.8393 -1313.65
+167.748 -42.5949 -1696.06
+167.823 -41.9427 -1767.61
+167.027 -41.0656 -1470.59
+167.957 -42.3833 -1788.92
+167.047 -40.4202 -1417.8
+168.52 -42.2799 -1508.13
+168.256 -42.3135 -1607.71
+167.673 -41.7064 -1415.8
+168.347 -42.0923 -1366.21
+167.131 -40.6483 -1249.09
+168.616 -42.0789 -1234
+167.324 -41.4348 -1435.67
+168.172 -41.8694 -1446.5
+168.679 -42.4716 -1264.03
+167.749 -42.997 -1311.86
+169.12 -42.1152 -1207.92
+167.316 -41.185 -1307.05
+168.438 -42.4916 -1414.86
+167.572 -41.5185 -1334.01
+169.327 -42.2016 -1104.54
+167.932 -41.7201 -1371.5
+167.996 -42.6501 -1414.32
+169.142 -42.3191 -1139.39
+168.202 -42.5446 -1508.22
+167.306 -40.9561 -1234.87
+167.371 -40.3641 -1104.51
+168.938 -42.4458 -1271.64
+168.488 -41.8998 -1220.97
+167.317 -40.751 -1165.12
+167.633 -41.2907 -1232.01
+168.594 -42.6614 -1461.75
+167.855 -41.4941 -1246.85
+168.406 -41.6933 -1161.14
+167.364 -40.5469 -1138.52
+168.873 -41.8217 -1117.06
+167.572 -41.0447 -1199.36
+169.074 -41.7 -1038.89
+168.518 -42.8371 -1323.14
+169.52 -42.2823 -1124.58
+168.827 -42.6728 -1144.49
+169.517 -42.0902 -1091.46
+169.365 -42.4155 -1084.13
+169.307 -41.7881 -1070.65
+167.514 -40.0551 -1152.99
+167.533 -40.8396 -1128.8
+168.453 -43.0059 -1106.07
+169.517 -41.8897 -1085.3
+167.912 -41.2833 -1143.53
+167.854 -41.1019 -1142
+167.593 -40.2469 -1048.17
+167.795 -40.8926 -1112.68
+167.512 -40.6774 -1091.4
+167.542 -40.4192 -1054.59
+168.967 -42.8127 -1011.93
+168.653 -41.7479 -1105.28
+167.725 -40.7067 -1075.12
+167.629 -40.5479 -1071.56
+167.773 -40.056 -1040.43
+168.106 -41.1827 -1061.47
+168.103 -40.9475 -1056.03
+169.286 -41.5829 -999.24
+168.606 -41.5521 -1020.24
+168.848 -41.625 -1018.2
+169.554 -41.6703 -998.69
+167.981 -40.7266 -1064.73
+167.877 -40.5517 -1046.26
+168.554 -41.3162 -983.16
+168.374 -41.1028 -1023.85
+169.046 -41.5172 -980.24
+168.131 -40.5592 -1006.51
+167.883 -40.2277 -961.76
+167.757 -40.3951 -1007.3
+168.369 -40.8987 -1005.41
+168.251 -40.7366 -1012.13
+168.014 -40.3848 -982.25
+169.844 -42.4646 -931.17
+168.033 -40.056 -891.92
+168.156 -40.2221 -929.22
+168.63 -41.1291 -962.59
+168.584 -40.9619 -958.28
+168.811 -41.4312 -973.2
+168.811 -41.2346 -946.57
+169.03 -41.3369 -954.19
+169.25 -41.4159 -971.29
+169.699 -41.823 -1022.22
+169.479 -41.4652 -952.79
+169.041 -41.1614 -926.62
+168.84 -41.0299 -926.05
+169.246 -41.2564 -941.75
+168.394 -40.564 -959.42
+169.416 -41.3325 -938.41
+168.271 -40.3914 -961.22
+169.724 -41.4908 -924.13
+169.859 -41.6797 -923.3
+169.075 -41.0149 -915.65
+168.752 -40.8586 -923.64
+169.265 -41.0917 -914.66
+168.543 -40.7521 -948.32
+168.999 -40.854 -909.27
+169.494 -41.1889 -911.99
+168.415 -40.2344 -918.32
+168.813 -40.703 -920.68
+169.614 -41.3364 -905.59
+169.254 -40.9281 -899.71
+168.649 -40.5528 -934.91
+168.515 -40.3978 -931.92
+169.482 -41.0005 -893.32
+169.05 -40.6671 -906.85
+169.237 -40.76 -896.56
+168.895 -40.5362 -911.73
+169.721 -41.2206 -871.12
+169.85 -41.3266 -854.13
+168.321 -40.0462 -862.12
+169.989 -41.4769 -837.6
+169.091 -40.5286 -896.91
+168.622 -40.2726 -902.3
+169.453 -40.8229 -890.98
+169.71 -41.0821 -875.14
+168.749 -40.3926 -907.13
+169.252 -40.6025 -895.54
+169.408 -40.6804 -893.36
+168.617 -40.0999 -850.15
+169.006 -40.3755 -883.14
+169.917 -41.1682 -830.19
+169.723 -40.8807 -860.72
+169.246 -40.4433 -884.01
+168.815 -40.2381 -856.2
+169.035 -40.1964 -816.66
+169.932 -41.0046 -813.82
+170.132 -41.6258 -748.39
+169.219 -40.2812 -842.79
+169.482 -40.5259 -886.62
+170.125 -41.2841 -748.02
+169.613 -40.6879 -877.66
+168.879 -40.0788 -830.54
+170.194 -42.163 -783.53
+170.243 -41.4546 -700.72
+169.983 -40.8433 -818.16
+170.13 -41.0918 -768.09
+169.208 -40.1378 -805.75
+169.437 -40.3383 -863.2
+170.172 -41.9149 -761.31
+169.08 -40.0415 -805.3
+170.259 -41.7638 -687.94
+169.749 -40.5431 -860.13
+169.394 -40.1707 -816.19
+170.112 -40.9484 -770.43
+169.309 -39.9803 -757.5
+170.126 -40.4432 -822.39
+170.194 -40.5817 -769.14
+170.249 -40.7058 -772.05
+170.187 -40.8281 -786.74
+170.328 -40.4726 -754.13
+170.381 -41.3225 -647.65
+170.339 -41.1634 -666.23
+170.616 -40.0326 -760.92
+169.57 -40.0436 -787.08
+169.8 -40.1 -836.56
+169.846 -40.262 -864.57
+170.068 -40.2986 -846.61
+170.274 -40.331 -798.03
+170.215 -40.1912 -806.95
+170.141 -40.0673 -828.33
+170.332 -40.0482 -788.78
+170.444 -40.3722 -735.61
+170.462 -40.2204 -743.24
+170.732 -40.2204 -714.31
+170.885 -40.1057 -724.99
+169.906 -40.4149 -857.73
+170.009 -40.1545 -860.6
+170.32 -40.9723 -704.16
+170.63 -40.3574 -694.52
+170.405 -40.6316 -716.16
+170.546 -41.2282 -583.55
+170.441 -41.4426 -621.47
+171.109 -40.025 -705.55
+170.394 -41.5941 -617.78
+170.918 -40.2446 -684.67
+170.529 -40.4921 -688.26
+170.528 -41.0776 -564.59
+171.351 -40.0389 -649
+170.85 -40.358 -643.04
+170.346 -41.8919 -627.14
+170.563 -40.9021 -562.36
+170.626 -40.6294 -660.72
+170.586 -41.3648 -550.43
+171.075 -40.2004 -658.61
+170.703 -40.771 -567.73
+170.747 -40.4942 -633.82
+171.048 -40.3383 -603.99
+171.268 -40.1752 -629.8
+170.855 -40.6532 -600.58
+170.599 -41.4969 -504.24
+170.676 -41.1512 -536.44
+170.998 -40.4947 -575.58
+171.545 -40.0467 -549.19
+170.713 -41.0323 -487.06
+170.865 -40.7956 -489.39
+171.205 -40.2926 -598.29
+170.779 -40.9017 -426.63
+171.469 -40.1733 -553.67
+170.414 -42.0067 -552.41
+171.06 -40.626 -522.4
+170.747 -41.2715 -452.77
+171.235 -40.4326 -518.57
+170.461 -41.758 -535.56
+170.513 -41.8905 -477.03
+171.039 -40.7604 -533.57
+170.949 -40.8914 -434.75
+171.181 -40.5582 -504.71
+170.778 -41.4181 -345.99
+171.399 -40.3163 -503.04
+170.472 -42.1039 -499.16
+170.766 -41.5446 -312.62
+170.885 -41.011 -480.39
+170.627 -41.6431 -412.91
+171.231 -40.6765 -412.07
+170.844 -41.1463 -454.45
+171.432 -40.447 -426.18
+171.37 -40.5603 -403.22
+171.887 -40.0344 -459.22
+171.6 -40.2773 -413.11
+171.657 -40.1606 -409.48
+171.731 -40.0425 -451.51
+169.553 -43.2531 -418.9
+171.109 -40.8872 -270.36
+171.744 -40.2473 -326.5
+171.864 -40.1595 -378.36
+170.572 -42.0132 -379.69
+171.576 -40.395 -367.53
+171.22 -40.8012 -305.98
+172.038 -40.0695 -325.16
+171.036 -40.9893 -332.44
+171.75 -40.3534 -297.32
+171.423 -40.6766 -277.15
+171.85 -40.2758 -288.59
+170.786 -41.635 -235.81
+172.037 -40.181 -303.78
+171.973 -40.2627 -280.24
+170.631 -41.7863 -344.56
+171.571 -40.5174 -327.8
+170.896 -41.2472 -315.86
+169.038 -43.625 -453.01
+170.994 -41.0936 -350.96
+171.344 -40.7526 -267.64
+171.259 -40.9039 -237.98
+170.759 -41.7188 -215.5
+171.173 -40.9834 -219.32
+169.566 -43.3386 -247.88
+171.915 -40.3539 -246.34
+172.213 -40.0274 -270.06
+171.7 -40.4517 -281.67
+172.194 -40.1566 -252.45
+171.516 -40.6105 -299.3
+170.662 -41.9012 -294.1
+172.055 -40.3445 -204.09
+171.361 -40.8348 -245.78
+170.895 -41.3363 -256.46
+172.114 -40.2565 -235.31
+171.855 -40.4558 -210.78
+171.116 -41.0685 -228.16
+170.925 -41.417 -212.46
+170.71 -41.9913 -204.63
+171.65 -40.6113 -257.56
+172.004 -40.4302 -180.97
+169.498 -43.3842 -151.85
+172.179 -40.3398 -180.51
+171.297 -40.991 -229.36
+171.742 -40.5347 -218.64
+172.335 -40.0165 -228.77
+171.567 -40.6866 -237.05
+172.34 -40.1054 -222.14
+169.253 -43.5373 -161.61
+171.227 -41.0607 -204.03
+170.991 -41.1953 -261.28
+171.882 -40.5549 -170.59
+168.87 -43.7138 -197
+170.9 -41.4931 -230.69
+171.631 -40.7608 -174.64
+170.503 -42.5747 -313.71
+170.875 -41.6808 -197
+171.399 -40.9263 -239.17
+172.32 -40.1939 -201.86
+171.481 -40.7731 -246.91
+170.765 -41.8208 -197
+171.971 -40.5056 -160.49
+170.813 -42.5349 -161.14
+172.444 -40.0384 -190.69
+171.789 -40.6179 -185.01
+170.905 -41.5924 -198.19
+172.132 -40.4166 -161.91
+170.808 -41.9872 -192.7
+171.179 -41.1222 -186.52
+170.996 -41.5344 -192.25
+171.703 -40.6884 -192.67
+170.788 -41.9131 -197
+172.454 -40.1134 -173
+171.468 -40.8569 -243.86
+171.015 -41.4612 -185.55
+172.26 -40.2676 -187.61
+168.652 -43.8995 -106.44
+171.916 -40.6346 -146.58
+170.77 -42.056 -197
+170.948 -42.1768 -158.49
+170.87 -41.7648 -192.52
+168.948 -43.6599 -318.28
+170.881 -41.8498 -180.52
+171.005 -41.2866 -194.13
+168.704 -43.8583 -180.84
+171.095 -41.151 -203.46
+172.423 -40.1779 -170.5
+171.575 -40.836 -182.76
+170.969 -41.6565 -182.66
+171.041 -41.6056 -169.09
+171.018 -41.3755 -181.3
+171.396 -41.0065 -210.62
+171.268 -41.1321 -171.29
+172.096 -40.5047 -137.38
+170.967 -41.7238 -176.66
+171.101 -41.2355 -169.67
+169.914 -43.0385 -178.34
+171.338 -41.0665 -196.06
+170.875 -42.0378 -178.35
+171.765 -40.7589 -163.04
+170.901 -41.9406 -177
+171.533 -40.9091 -201.42
+172.388 -40.2501 -162.91
+171.191 -41.1882 -176.8
+172.277 -40.3469 -152.68
+171.838 -40.6933 -158
+172.561 -40.026 -159.35
+171.118 -41.3234 -173.95
+171.389 -41.1432 -157.26
+172.524 -40.0857 -165.64
+170.957 -42.2931 -143.31
+171.493 -40.9832 -193.19
+171.694 -40.822 -164
+170.973 -41.7986 -167.18
+171.647 -40.8857 -152.06
+171.11 -41.5251 -155.86
+171.135 -41.6 -141.86
+171.207 -41.2663 -168.03
+171.461 -41.0635 -155.42
+172.014 -40.5814 -130.84
+171.294 -41.2073 -159.41
+170.885 -42.4109 -152.67
+171.053 -41.6838 -160.83
+170.987 -41.8753 -166.58
+172.238 -40.4053 -139.97
+172.497 -40.2344 -140.68
+171.564 -41.0277 -133.87
+171.14 -41.4209 -163.8
+171.488 -41.127 -142.36
+169.647 -43.3803 -129.12
+170.896 -42.488 -126.86
+170.859 -42.6013 -105.82
+170.585 -42.5534 -208.91
+171.402 -41.2269 -143.25
+169.112 -43.6914 -137.31
+171.733 -40.8712 -145.24
+171.312 -41.2859 -150.99
+170.967 -42.0596 -158.01
+170.229 -42.8033 -134.57
+171.116 -41.6489 -144.21
+171.472 -41.1794 -137.43
+170.989 -42.1222 -148.96
+169.984 -43.0053 -167.2
+171.228 -41.3475 -159.25
+171.568 -41.0895 -128.48
+172.206 -40.4737 -123.81
+171.625 -40.9622 -133.46
+169.837 -43.1897 -144.17
+169.341 -43.4898 -135.63
+171.064 -41.7541 -156.31
+171.711 -40.9175 -137.62
+172.618 -40.0917 -147.74
+170.324 -42.6806 -154.7
+172.361 -40.3235 -140.91
+171.01 -41.9458 -162.5
+170.957 -41.9983 -165.17
+172.54 -40.1565 -149.81
+171.071 -41.8273 -156.4
+171.559 -41.1579 -129.8
+171.944 -40.6983 -126.94
+171.266 -41.4214 -152.03
+171.815 -40.8329 -140.27
+171.337 -41.3599 -146.64
+171.22 -41.4914 -142.43
+170.991 -42.226 -137.31
+171.222 -41.5746 -128.37
+171.083 -41.8969 -155.98
+171.192 -41.6442 -131.06
+171.531 -41.2403 -130.96
+170.888 -42.5499 -116.01
+170.228 -42.8763 -129.28
+170.958 -42.4377 -116.18
+172.464 -40.3035 -128.39
+171.155 -41.7101 -144.71
+170.077 -42.9663 -154.66
+170.957 -42.3709 -129.29
+171.419 -41.3025 -140.07
+171.674 -41.0403 -123.71
+172.591 -40.2177 -131.13
+171.792 -40.9022 -128.34
+171.759 -40.9678 -126.55
+171.667 -41.1227 -123.37
+171.516 -41.3261 -130.82
+171.638 -41.1915 -122.03
+171.365 -41.427 -142.57
+170.642 -42.6031 -178.31
+171.282 -41.6413 -112.73
+172.127 -40.5842 -108.11
+171.799 -41.0343 -116.21
+169.971 -43.0938 -124.39
+171.642 -41.243 -120.85
+171.312 -41.4811 -139.9
+170.293 -42.7739 -117.06
+172.011 -40.6568 -115.22
+171.286 -41.5305 -132.78
+171.717 -41.1687 -116.32
+171.434 -41.3748 -137.2
+172.578 -40.2892 -118.26
+171.244 -41.6905 -131.84
+171.899 -40.7615 -128.81
+171.044 -42.2682 -103.85
+172.347 -40.3982 -115.54
+171.157 -41.7865 -148.64
+171.396 -41.4877 -136.13
+171.019 -42.1716 -131.04
+171.62 -41.3005 -121.77
+171.347 -41.5245 -132.66
+171.715 -41.2163 -114.74
+171.582 -41.3538 -123.73
+171.847 -40.9371 -119.24
+171.931 -40.8304 -114.69
+168.72 -43.9123 -63.92
+170.354 -42.7411 -116.54
+171.748 -41.0832 -117.71
+171.457 -41.4397 -133.33
+171.157 -41.8549 -143.52
+171.521 -41.3903 -128.65
+171.251 -41.7549 -132.64
+171.168 -41.9178 -121.05
+171.033 -42.0107 -153.18
+171.333 -41.5799 -127.61
+171.042 -42.339 -90.62
+171.708 -41.2689 -112.57
+171.1 -41.9629 -139.5
+171.233 -41.8215 -121.71
+172.525 -40.353 -104.4
+171.866 -40.9866 -113.08
+170.978 -42.4905 -92.08
+171.884 -40.8866 -117.32
+172.298 -40.4582 -104.48
+170.346 -42.795 -101.07
+172.199 -40.5426 -101.06
+171.047 -42.1303 -126.53
+171.49 -41.5059 -120.94
+171.711 -41.321 -106.94
+170.301 -42.8364 -105.89
+169.571 -43.4098 -80.57
+171.373 -41.6462 -113.14
+171.768 -41.1297 -113.03
+171.409 -41.5435 -131.13
+171.654 -41.3589 -110.89
+171.547 -41.4478 -123.2
+170.264 -42.9223 -97.81
+171.984 -40.7384 -109.06
+171.996 -40.7834 -104.4
+171.021 -42.4057 -88.6
+171.801 -41.1847 -106.18
+169.518 -43.449 -78.03
+171.832 -41.0904 -106.14
+171.33 -41.7079 -116.99
+172.018 -40.7054 -104.4
+169.922 -43.1603 -115.63
+171.423 -41.5991 -122.69
+172.438 -40.3676 -110.39
+171.602 -41.4011 -116.27
+171.113 -42.0232 -118.75
+171.475 -41.5651 -111.28
+171.786 -41.243 -104.16
+171.293 -41.8025 -101.96
+169.431 -43.443 -120.64
+170.946 -42.5364 -93.66
+170.838 -42.6735 -86.89
+171.236 -41.8807 -103.86
+171.629 -41.4521 -104.64
+172.614 -40.3567 -86.11
+171.061 -42.2113 -104.86
+171.729 -41.3696 -98.31
+171.777 -41.2948 -99.97
+171.933 -40.9406 -101.72
+171.846 -41.1383 -101.1
+170.052 -43.0509 -111.38
+169.356 -43.5749 -75.76
+171.586 -41.5025 -103.75
+171.677 -41.4089 -101.13
+171.45 -41.6528 -98.64
+171.016 -42.4545 -79.14
+171.502 -41.6163 -93.87
+171.335 -41.7719 -87.24
+171.186 -41.9826 -95.61
+171.053 -42.0766 -136.5
+171.55 -41.564 -94.28
+169.922 -43.2295 -84.96
+172.022 -40.8353 -97
+172.438 -40.4241 -94.12
+172.277 -40.5149 -90.88
+170.13 -43.0344 -90.2
+172.495 -40.3969 -94.78
+171.774 -41.3378 -86.47
+171.699 -41.4552 -77.32
+171.419 -41.7003 -73.74
+170.293 -42.8901 -99.08
+171.938 -40.9939 -97
+171.504 -41.6646 -60.56
+172.08 -40.631 -104.28
+171.865 -41.2245 -94.04
+171.906 -41.0449 -97.65
+171.661 -41.5 -82.68
+170.372 -42.8326 -82.9
+172.054 -40.7431 -97
+171.562 -41.6151 -69.21
+171.92 -41.1117 -91.32
+171.847 -41.2737 -86.58
+171.339 -41.8136 -74.3
+171.244 -41.9372 -84.59
+172.089 -40.6896 -97
+169.997 -43.1789 -72.67
+171.973 -40.8828 -101.3
+171.746 -41.4181 -61.1
+171.304 -41.8503 -84.77
+170.522 -42.6551 -183.83
+169.42 -43.5199 -74.9
+171.174 -42.0368 -86.87
+170.669 -42.6737 -186.69
+171.629 -41.5511 -69.57
+172.336 -40.4969 -91.51
+170.418 -42.7382 -85.75
+170.053 -43.1195 -80.1
+171.904 -41.1743 -86.88
+171.133 -42.0736 -97.36
+169.731 -43.4067 -97.16
+172.017 -40.9244 -85.04
+170.928 -42.5877 -78.25
+172.559 -40.4011 -86.23
+171.101 -42.1165 -102.98
+171.082 -42.1621 -101.99
+172.377 -40.4616 -92.85
+171.259 -41.9822 -66.35
+171.754 -41.4597 -54.21
+168.697 -43.7884 -138.92
+171.808 -41.3791 -48.43
+171.833 -41.3241 -81.34
+170.571 -42.6116 -211.85
+171.927 -41.2172 -71.85
+171.98 -41.0731 -77.14
+169.572 -43.4564 -53.98
+171.725 -41.4965 -56.62
+171.112 -42.2419 -71.83
+170.35 -42.8786 -78.3
+172.139 -40.7477 -55.93
+170.214 -43.0386 -59.55
+172.455 -40.48 -81.2
+172.639 -40.4143 -83.43
+172.151 -40.6457 -61.32
+171.99 -41.1114 -68.6
+172.083 -40.794 -66.3
+171.401 -41.7509 -59.73
+168.778 -43.7472 -340.04
+169.488 -43.4994 -59.31
+170.258 -42.9764 -70.95
+171.987 -41.0236 -81.61
+171.55 -41.6546 -48.3
+170.405 -42.7876 -75.72
+170.749 -42.6901 -179.41
+171.244 -42.0309 -58.42
+171.303 -41.9083 -68.84
+171.125 -42.193 -74.1
+168.613 -43.9361 -58.16
+172.209 -40.6058 -56.49
+171.196 -42.0751 -67.43
+169.984 -43.2391 -51.7
+171.09 -42.3898 -44.2
+170.103 -43.0849 -71.17
+171.914 -41.2552 -66.09
+171.157 -42.1075 -77.46
+171.978 -41.1496 -67.18
+172.507 -40.4387 -85.03
+169.058 -43.7557 -177.22
+168.557 -43.9419 -86.57
+171.61 -41.6015 -55.56
+172.39 -40.5119 -83.43
+170.325 -42.9342 -62.24
+170.988 -42.5695 -46
+171.11 -42.2949 -59.56
+170.422 -42.8276 -60.78
+171.808 -41.4384 -47.48
+171.697 -41.5419 -54.95
+172.336 -40.5396 -68.58
+172.445 -40.535 -72.46
+170.467 -42.704 -113.04
+171.791 -41.4932 -44.66
+171.001 -42.5282 -52.17
+172.179 -40.7006 -28.81
+169.434 -43.5647 -51.19
+172.279 -40.5743 -54.66
+170.078 -43.1752 -39.25
+171.307 -41.9574 -53.11
+171.124 -42.3459 -37.79
+170.685 -42.7334 -101.03
+171.48 -41.698 -30.56
+171.142 -42.1472 -75.21
+171.072 -42.439 -40.29
+170.91 -42.6426 -57.97
+171.887 -41.355 -47.65
+172.573 -40.451 -79.61
+171.974 -41.1949 -62.41
+171.257 -42.0837 -37.49
+172.043 -41.0536 -53.28
+172.505 -40.5151 -70.43
+171.361 -41.8421 -51.69
+171.749 -41.531 -42.64
+169.474 -43.5432 -46.16
+172.03 -41.0932 -59.06
+169.549 -43.4925 -44.55
+169.62 -43.4421 -42.36
+168.923 -43.7763 -216.4
+170.597 -42.6662 -93.81
+172.523 -40.4771 -77.65
+169.954 -43.27 -58.38
+172.04 -41.1298 -52.03
+171.901 -41.3034 -54.24
+170.121 -43.1295 -49.27
+171.865 -41.4709 -34.29
+171.876 -41.4101 -38.78
+171.17 -42.2189 -45.28
+171.21 -42.1247 -49.14
+171.36 -41.886 -48.65
+172.389 -40.5604 -61.72
+172.036 -41.1755 -47.58
+170.412 -42.8641 -55.34
+171.394 -41.8027 -43.76
+171.316 -42.0052 -36.66
+172.051 -40.8806 -63.52
+170.28 -43.0272 -37.48
+168.772 -43.8205 -65.01
+172.241 -40.7126 -36.7
+172.342 -40.5807 -47
+172.269 -40.6242 -47
+172.305 -40.6612 -45.56
+172.322 -40.6174 -47
+170.397 -42.9115 -46.18
+172.217 -40.7431 -31.91
+171.972 -41.236 -51.31
+171.835 -41.516 -34.6
+171.054 -42.4958 -33.08
+171.795 -41.5428 -36.25
+170.9 -42.6916 -31.68
+170.468 -42.7641 -54.94
+171.672 -41.5904 -41.74
+170.806 -42.7293 -53.85
+170.626 -42.7151 -79.87
+171.165 -42.2644 -36.9
+171.187 -42.1744 -47.27
+170.162 -43.087 -47.07
+172.235 -40.6647 -47
+168.099 -44.1789 -87.34
+171.594 -41.6419 -41.52
+170.685 -42.7862 -42.57
+169.674 -43.4355 -55.31
+170.385 -42.9559 -35.76
+172.647 -40.4695 -57.1
+170.55 -42.7362 -46.52
+170.454 -42.8055 -50.44
+171.313 -42.0568 -23.32
+170.981 -42.6225 -27.18
+167.804 -44.5382 -47
+171.968 -41.2806 -44.53
+170.628 -42.7659 -45.33
+172.383 -40.6131 -36.89
+170.048 -43.2318 -21.98
+172.022 -41.2146 -46.81
+171.359 -41.9351 -36.21
+171.957 -41.3306 -39.48
+171.74 -41.5764 -35.33
+172.575 -40.5009 -58.31
+168.848 -43.7921 -51.73
+172.292 -40.702 -26.22
+170.725 -42.8106 -34.93
+172.087 -40.8439 -43.16
+168.766 -43.8708 -46.14
+172.049 -41.0022 -42.94
+170.641 -42.8084 -35.38
+170.466 -42.8426 -39.61
+172.354 -40.651 -32.32
+171.171 -42.3101 -26.27
+169.601 -43.4864 -31.91
+172.029 -41.2534 -38.78
+171.707 -41.6192 -28.7
+170.462 -42.8916 -30.42
+171.04 -42.5487 -28.62
+171.883 -41.5211 -22.73
+170.75 -42.7653 -47.19
+170.336 -42.9967 -27.1
+171.932 -41.4328 -17.66
+171.845 -41.5485 -29.24
+171.359 -41.9766 -27.57
+169.532 -43.5399 -26.63
+171.539 -41.7016 -17.57
+171.943 -41.382 -34.4
+170.681 -42.8297 -31.51
+171.649 -41.6435 -31.23
+171.155 -42.3841 -21.53
+171.814 -41.5883 -26.29
+172.022 -41.3041 -31.89
+169.429 -43.5967 -22.64
+168.908 -43.8373 -28.93
+171.925 -41.4825 -11.59
+171.224 -42.203 -26.06
+171.123 -42.4638 -17
+171.187 -42.3545 -18.55
+170.866 -42.7334 -32.99
+170.447 -42.9417 -24.17
+169.493 -43.5853 -19.99
+170.42 -42.9938 -10.72
+171.278 -42.1223 -18.7
+171.303 -42.0925 -16.51
+170.319 -43.0455 -18.09
+170.953 -42.6756 -15.81
+171.035 -42.5909 -19.27
+171.209 -42.2394 -29.24
+171.134 -42.4217 -19.38
+168.704 -43.9559 -12.54
+170.183 -43.1347 -19.08
+170.537 -42.8611 -24.61
+171.757 -41.6217 -26.14
+170.683 -42.8628 -22.38
+168.833 -43.8554 -26.56
+170.778 -42.822 -20.41
+169.58 -43.5187 -25.4
+169.714 -43.4644 -19.21
+170.626 -42.8524 -24.38
+171.6 -41.6882 -22.94
+170.52 -42.9193 -18.1
+171.248 -42.163 -22.55
+169.998 -43.2806 -24.33
+168.994 -43.7692 -108.62
+169.657 -43.4805 -23.18
+171.717 -41.6638 -17.43
+171.366 -42.0072 -17.55
+170.144 -43.1755 -21.77
+171.228 -42.279 -17.4
+171.219 -42.3282 -17.05
+170.664 -42.893 -14.94
+168.056 -44.2989 -16.89
+170.594 -42.9012 -15.51
+171.408 -41.8576 -26.38
+170.824 -42.7793 -25.01
+172.01 -41.3571 -27.56
+170.111 -43.2105 -14
+171.801 -41.6297 -17.19
+170.502 -42.9702 -8.7
+168.801 -43.9076 -10.39
+168.969 -43.8196 -32.01
+169.952 -43.3142 -34.8
+170.73 -42.8499 -19.45
+171.994 -41.405 -19.75
+171.509 -41.7244 -8.68
+171.093 -42.5343 -10.91
+171.66 -41.7005 -11.23
+169.629 -43.521 -16.52
+168.756 -43.9445 -12.69
+170.578 -42.9469 -7.14
+170.718 -42.8842 -10.36
+170.367 -43.0352 -11.84
+169.591 -43.5524 -7.16
+170.641 -42.9268 -8.17
+171.076 -42.5689 -10.48
+171.035 -42.6263 -8.09
+171.18 -42.41 -9.68
+171.119 -42.5007 -10.67
+165.596 -39.883 -3049.89
+166.018 -39.8265 -3490.07
+164.367 -39.8484 -3355.32
+165.787 -39.6148 -3144.01
+166.462 -39.7692 -3112.69
+166.202 -39.5451 -3159.93
+164.535 -39.5609 -2614.99
+164.359 -39.0761 -2856.97
+164.709 -40.0596 -2947.74
+166.583 -39.4676 -2796.74
+164.323 -38.8038 -2655.73
+166.349 -39.2724 -3182.81
+166.478 -38.9989 -2873.92
+166.221 -38.8105 -2717.61
+165.788 -38.9201 -3014.87
+164.438 -39.3333 -2457.83
+165.36 -39.6658 -2491.94
+166.59 -38.7245 -2340.62
+164.312 -38.5269 -2669.38
+166.72 -39.1923 -2681.69
+165.357 -38.9232 -1798.14
+165.983 -38.5985 -2841.97
+166.358 -38.5352 -2343.39
+167.139 -35.577 -2659.22
+167.432 -35.4343 -2768.2
+166.34 -35.1331 -2689.86
+166.729 -35.1609 -2762.42
+167.571 -35.1773 -2734.51
+167.151 -35.2347 -2789.8
+166.48 -35.3873 -2511.74
+165.577 -38.6564 -2324.44
+166.568 -35.6108 -2167.38
+167.473 -35.7269 -2584.13
+166.813 -39.8383 -1855.6
+166.164 -38.3177 -2515.39
+167.125 -35.83 -2620.51
+165.754 -38.3284 -2132.54
+167.806 -35.4444 -2613.76
+166.817 -35.4569 -2666.19
+164.347 -38.2019 -2089.49
+167.673 -35.9933 -2380.22
+166.864 -38.908 -1935.24
+167.847 -35.7498 -2479.72
+166.805 -35.7673 -2171.22
+167.84 -36.236 -2334.46
+167.298 -36.0208 -2430.13
+166.037 -35.1659 -1851.7
+168.087 -35.9824 -2410.46
+164.659 -38.8923 -2162.68
+166.781 -39.6275 -2157.03
+168.509 -35.387 -2477.85
+168.477 -35.0928 -2117.16
+168.478 -35.8684 -2382.32
+168.21 -35.6144 -2503.79
+168.424 -36.1714 -2407.95
+168.138 -36.2685 -2416.82
+168.832 -35.7743 -2413.18
+168.709 -36.0487 -2362.4
+169.076 -35.5186 -2416.18
+167.983 -36.4706 -2021.23
+164.64 -38.6401 -2287.21
+169.151 -35.7988 -2397.1
+169.047 -36.0827 -2319.06
+164.869 -39.6993 -2433.03
+168.765 -36.3468 -2323.86
+164.725 -39.1298 -2271.97
+166.338 -38.0663 -2425.02
+168.357 -36.5191 -2309.51
+168.864 -35.219 -1933.73
+169.101 -36.3847 -2272.9
+169.387 -35.9761 -2236.55
+165.199 -39.425 -2244.3
+168.99 -36.6083 -2317.91
+164.804 -39.3857 -2165.77
+166.694 -38.4685 -1968.56
+169.42 -35.6601 -2206.1
+166.914 -36.0677 -2050.3
+168.704 -36.6331 -2172.2
+166.001 -38.0768 -2010.98
+169.338 -36.6119 -2330.15
+169.136 -36.7995 -2142.53
+166.513 -38.2788 -2243.89
+164.656 -38.3772 -1981.26
+167.492 -36.2438 -1964.38
+169.668 -36.4614 -2134.41
+169.933 -36.2766 -2157.5
+169.686 -35.8852 -2307.43
+169.881 -36.0452 -2319.74
+170.237 -36.3344 -2192.16
+166.154 -35.3745 -1581.19
+165.373 -38.4379 -2022.71
+166.179 -37.854 -2083.69
+170.025 -36.5803 -2045.02
+166.457 -35.8132 -1594.07
+166.499 -37.8368 -2070.17
+169.699 -36.8092 -2075.61
+170.336 -36.5442 -2149.63
+166.899 -38.6309 -1726.33
+170.013 -35.8247 -1945.13
+169.336 -35.4142 -1687.14
+168.077 -36.671 -1678.24
+167.67 -36.4672 -1759.92
+168.537 -36.8227 -1741.36
+170.291 -36.7637 -2071.79
+170.031 -36.8577 -2062.92
+165.098 -39.1652 -2266.34
+165.46 -38.1713 -1961.2
+164.992 -38.9262 -1860.34
+170.333 -35.8823 -2097.1
+169.359 -36.9148 -2056.94
+168.868 -36.8872 -1902.38
+164.704 -38.1547 -1564.5
+170.245 -37.0146 -1982.83
+169.915 -37.1099 -2092.62
+170.196 -37.2612 -1976.14
+169.97 -37.3542 -1904.08
+169.566 -37.1215 -1893.94
+167.05 -39.1232 -1712.12
+165.715 -38.0638 -2092.8
+164.901 -38.7316 -1835.03
+165.203 -38.6984 -1572.07
+166.673 -38.0339 -1896.36
+165.859 -37.8564 -1913.73
+166.019 -37.6517 -1747.5
+166.587 -36.0117 -1535.55
+168.252 -36.8301 -1598.36
+169.124 -36.9755 -1741.98
+167.149 -36.2831 -1991.98
+170.29 -35.0756 -1895.24
+169.732 -37.3507 -1795.4
+164.3 -37.9104 -1639.55
+164.996 -38.4858 -1685.35
+170.447 -37.4234 -1874.65
+166.318 -37.6367 -1792.92
+169.171 -35.2961 -1497.02
+166.268 -35.6311 -1541.66
+170.241 -35.6849 -1586.78
+169.772 -35.6287 -1819.37
+166.829 -36.3472 -1523.12
+165.195 -38.2765 -1897.78
+170.248 -35.2884 -1464.07
+165.5 -37.886 -1729.4
+166.141 -37.4446 -1568.31
+165.708 -37.6404 -1750.13
+164.271 -36.876 -1674.87
+167.825 -36.6754 -1560.17
+164.277 -36.6215 -1599.87
+170.157 -37.4983 -1727.49
+164.273 -37.1149 -1716.99
+165.197 -38.0624 -1938.73
+164.95 -38.2251 -1607.99
+164.298 -36.37 -1440.77
+167.06 -39.6598 -1416.89
+165.371 -37.6168 -1563.35
+170.324 -35.4772 -1272.19
+165.751 -35.0958 -1419.43
+166.975 -39.4016 -1572.32
+167.35 -36.4961 -1667.56
+167.182 -38.9253 -1747.27
+166.831 -38.2333 -2057.57
+165.878 -37.4724 -1715.73
+166.257 -37.2346 -1499.51
+164.557 -36.9877 -1461.66
+170.368 -37.6739 -1500.71
+164.342 -36.1508 -1473.58
+165.92 -37.2484 -1642.2
+165.869 -35.3508 -1278.38
+169.24 -37.1718 -1475.21
+165.582 -37.3789 -1648.34
+164.559 -36.7465 -1400.81
+166.446 -37.4197 -1576.01
+167.533 -36.7042 -1610.63
+166.34 -37.053 -1425.69
+167.03 -36.5439 -1468.67
+168.636 -37.0188 -1398.75
+165.143 -37.8212 -1556.85
+165.223 -37.4021 -1477.21
+164.609 -37.9678 -1434.08
+169.591 -35.4219 -1133.42
+166.645 -36.2091 -1733.95
+170.051 -35.5708 -1318.71
+164.913 -38 -1532.48
+166.105 -37.0529 -1453.63
+169.94 -34.9898 -1668.78
+166.624 -37.6135 -1584.77
+167.986 -36.868 -1343.12
+164.398 -35.9916 -1451.91
+166.567 -37.175 -1618.75
+165.626 -37.0992 -1524.36
+164.235 -37.3857 -1460.35
+166.984 -38.4023 -1865.68
+166.808 -37.8044 -1533.09
+166.511 -36.9244 -1488.68
+168.407 -37.0315 -1360.42
+169.438 -37.3686 -1346.23
+165.863 -37.0299 -1359.4
+169.159 -35.1287 -923.28
+166.252 -36.8752 -1487.69
+166.676 -36.7876 -1563.52
+166.905 -36.7723 -1590.61
+165.03 -37.5889 -1199.1
+164.957 -37.4069 -1302.39
+165.049 -37.2424 -1411.9
+164.821 -37.2967 -1283.77
+164.859 -37.0876 -1438.84
+165.336 -37.1805 -1587.46
+164.567 -37.2354 -1539.96
+164.658 -37.514 -1406.16
+164.294 -37.6589 -1379.37
+164.542 -37.7646 -1345.83
+164.819 -37.7753 -1386.44
+165.138 -37.066 -1366.3
+166.234 -35.8457 -1379.66
+169.006 -37.0961 -1482.8
+164.812 -36.8485 -1340.05
+169.886 -37.5459 -1458.82
+166.315 -36.0031 -1377.01
+170.064 -37.7477 -1088.22
+167.136 -38.7289 -1605.42
+167.722 -36.8946 -1270.13
+166.734 -36.5896 -1358.99
+167.284 -39.0657 -1385.49
+167.213 -36.7752 -1289.92
+167.007 -37.9935 -1788.9
+165.067 -36.8967 -1477.23
+170.271 -37.9045 -1027.49
+166.404 -36.1953 -1439.68
+165.37 -36.9277 -1463.45
+166.516 -36.4117 -1485.04
+164.582 -36.2543 -1125.89
+165.472 -35.1722 -1139.79
+166.445 -36.683 -1414.03
+165.976 -36.8634 -1497.25
+164.607 -36.4954 -1195.92
+167.111 -38.1951 -1874.53
+168.803 -37.147 -1316.7
+169.612 -35.0041 -1269.5
+164.333 -35.8404 -1201.37
+167.456 -36.9391 -1219.31
+165.689 -36.8776 -1303.11
+166.746 -37.3964 -1281.59
+165.963 -35.583 -1278.77
+164.587 -36.0604 -1393.62
+170.033 -35.2319 -1029.16
+165.598 -35.3345 -1144.48
+167.121 -39.9021 -1096.38
+166.262 -36.3552 -1180.17
+167.342 -39.6982 -1105.93
+168.565 -37.2056 -1283.68
+168.155 -37.0551 -1277.42
+166.135 -36.6746 -1241.16
+167.277 -39.2466 -1270.94
+164.823 -36.645 -1161.88
+167.241 -37.0045 -1103.66
+164.559 -35.8927 -1378.17
+164.996 -36.736 -1132.73
+166.275 -36.5179 -1147.74
+167.099 -37.7519 -1443.03
+165.822 -36.6662 -1264.67
+166.037 -35.8007 -1238.14
+167.425 -39.8854 -1168.48
+164.887 -36.4742 -1087.25
+164.837 -36.316 -1080.75
+166.001 -36.4465 -1185.98
+170.101 -35.3991 -985.89
+167.898 -37.0762 -1114.05
+165.226 -35.1233 -1109.9
+169.878 -35.4138 -1016.25
+165.505 -36.687 -1158.27
+166.113 -35.9663 -1185.55
+164.282 -35.631 -1378.75
+167.157 -38.5305 -1540.43
+169.174 -37.4025 -1063.91
+166.108 -36.176 -1199.51
+165.22 -36.7184 -1106
+167.291 -39.4772 -1215.04
+168.99 -37.278 -1195.77
+167.642 -37.1065 -1037.34
+170.067 -37.9472 -860.74
+165.63 -36.4487 -1152.99
+165.059 -36.5716 -1160.33
+169.593 -37.5852 -1099.4
+165.807 -36.2441 -1087.44
+167.385 -37.1497 -979.7
+166.919 -37.5833 -1093.58
+169.427 -35.2056 -709.46
+164.952 -35.0918 -931.97
+169.778 -37.7526 -974.28
+165.694 -35.5437 -946.01
+169.747 -35.219 -758.14
+164.806 -36.124 -1125.5
+168.07 -37.2591 -1207.57
+167.412 -38.93 -1215.4
+166.877 -37.1803 -1357.12
+167.817 -37.287 -1287.16
+165.317 -36.5147 -1266.88
+168.316 -37.2332 -1185.37
+164.54 -35.7244 -935.53
+167.239 -38.349 -2329.26
+164.722 -35.1138 -979.14
+167.675 -39.8948 -1060.19
+168.754 -37.3798 -1098.71
+165.871 -36.0061 -1095.02
+167.601 -39.7297 -1079.52
+165.591 -36.2471 -1097.43
+165.303 -35.3474 -1014.46
+164.366 -35.4616 -1108.1
+167.557 -37.3184 -1047.12
+167.243 -38.0544 -1825.19
+165.778 -35.7674 -1146.25
+165.104 -36.3565 -1315.43
+164.77 -35.9422 -1040.91
+167.292 -37.3522 -909.88
+165.038 -35.2747 -1122.34
+169.316 -37.5593 -982.5
+167.284 -37.887 -1307.97
+170.406 -38.1125 -896.98
+165.384 -36.3057 -1085.44
+167.553 -39.5351 -942.6
+165.67 -36.1121 -1147.8
+167.138 -37.1779 -1136.74
+164.829 -35.2323 -1056.29
+167.984 -37.454 -1078.89
+165.608 -35.9458 -1023.59
+167.727 -37.5077 -1008.23
+167.791 -39.7584 -917.02
+167.364 -38.7729 -1447.66
+168.226 -37.4324 -1009.89
+170.156 -38.089 -837.52
+165.01 -36.186 -1124.08
+164.708 -35.7993 -1088.51
+167.03 -37.3772 -1088.47
+165.082 -35.4415 -1168.02
+165.465 -35.5054 -990.59
+167.459 -37.5096 -1134.9
+164.549 -35.5461 -824.65
+165.473 -36.1176 -1026.6
+164.322 -35.2942 -1016.27
+168.476 -37.4094 -1117.37
+164.456 -35.0676 -1038.83
+164.801 -35.4246 -1060.21
+167.199 -37.5463 -1279.88
+167.924 -39.8781 -891.08
+165.255 -35.5649 -1190.01
+168.973 -37.4421 -1034.85
+165.481 -35.724 -1049.05
+164.612 -35.2543 -964.68
+167.551 -39.3099 -1165.5
+164.534 -35.3967 -980.33
+165.229 -36.1503 -1063.89
+165.002 -35.6049 -1081.24
+167.356 -38.4609 -1359.5
+165.041 -35.9866 -1291
+167.51 -39.0904 -1143.8
+165.334 -35.949 -1138.72
+167.809 -39.5898 -840.46
+167.967 -39.6989 -872.48
+165.174 -35.7698 -968.54
+167.367 -37.6924 -1054.67
+164.912 -35.7911 -947.09
+164.752 -35.6484 -985.62
+168.863 -37.569 -977.79
+167.576 -37.6491 -949.77
+169.884 -37.918 -857.4
+168.383 -37.6143 -842.44
+168.124 -37.6163 -967.64
+169.086 -37.5683 -921.75
+168.63 -37.5704 -874.62
+169.553 -37.7982 -868.51
+168.167 -39.9029 -834.5
+167.927 -37.6209 -834.09
+167.357 -38.1795 -1558.31
+170.373 -38.328 -811.01
+167.347 -38.6059 -1357.29
+167.456 -38.017 -1160.64
+168.099 -39.7755 -799.56
+169.95 -38.0776 -786.42
+167.761 -39.403 -905.52
+170.196 -38.2591 -783.7
+167.767 -37.7151 -846.41
+168.565 -37.7168 -779.06
+167.559 -37.8299 -947.13
+168.239 -37.7478 -763.48
+167.495 -38.3252 -1250.26
+167.602 -38.9298 -901.74
+168.761 -37.7187 -812.45
+168.024 -39.5661 -792.66
+168.985 -37.7201 -803.98
+168.356 -39.8803 -818.79
+167.769 -39.2591 -943.86
+169.399 -37.7078 -876.29
+168.188 -39.6338 -724.3
+168.014 -37.8082 -833.51
+168.532 -39.9156 -901.55
+169.683 -37.9216 -791.66
+167.791 -37.8682 -924.62
+169.203 -37.7167 -816.38
+169.758 -38.0614 -699.77
+168.645 -37.8717 -646.66
+168.426 -37.8008 -702.17
+167.697 -39.1579 -853.92
+167.974 -39.4389 -915.25
+168.275 -39.7683 -754
+168.272 -37.8945 -682.03
+168.757 -39.9327 -827.77
+169.996 -38.2325 -688.14
+170.199 -38.4043 -682.44
+167.568 -38.798 -970.94
+168.88 -37.8642 -682.88
+168.948 -39.9499 -793.45
+168.465 -39.7698 -827.68
+170.215 -39.604 -764.73
+170.384 -39.4788 -752.73
+167.583 -38.1587 -1193.14
+169.101 -39.8993 -731.29
+169.229 -39.8348 -700.93
+169.361 -39.8249 -695.6
+169.526 -39.8776 -723.99
+169.667 -39.753 -693.58
+169.843 -39.7551 -741.26
+169.787 -39.6262 -668.72
+170.002 -39.6474 -720.02
+170.407 -39.1036 -676.45
+170.439 -38.972 -681.66
+170.39 -39.2751 -694.82
+170.392 -38.8529 -669.18
+170.351 -38.7036 -659.1
+170.32 -38.5219 -685.72
+170.197 -39.7555 -815.24
+170.173 -39.9281 -825.43
+169.993 -39.8321 -786.78
+170.107 -39.4788 -693.34
+170.203 -39.3424 -696.59
+170.176 -39.167 -635.42
+170.076 -39.035 -608.96
+170.251 -38.9821 -640.2
+167.691 -38.0021 -984.45
+169.805 -38.2078 -631.82
+170.026 -38.3914 -614.03
+170.084 -38.537 -598.78
+170.164 -38.6773 -609.99
+170.214 -38.8201 -627.19
+170.39 -39.6759 -832.62
+170.413 -39.8635 -804.97
+168.382 -39.6618 -685.06
+168.672 -39.7751 -712.33
+167.532 -38.4923 -1105.33
+169.472 -39.723 -664.27
+168.917 -39.7977 -698.4
+167.683 -38.2656 -1389.37
+167.763 -38.9983 -729.28
+169.837 -38.3573 -577.19
+167.55 -38.6463 -1062.3
+168.181 -39.4693 -709.5
+167.946 -39.2895 -811.4
+169.109 -39.7723 -679.24
+169.6 -39.609 -643.41
+168.623 -38.0123 -540.74
+170.058 -38.7914 -597.37
+168.576 -39.6235 -634.09
+167.916 -37.9939 -751.46
+169.263 -39.6974 -647.24
+169.877 -39.4886 -648.36
+169.092 -37.8669 -635.14
+169.965 -39.3073 -616.46
+169.605 -38.0447 -640.23
+167.816 -38.1627 -971.95
+167.757 -38.8325 -940
+169.705 -39.5085 -629.37
+169.965 -38.6893 -579.11
+168.147 -39.3211 -794.51
+169.852 -38.5374 -559.8
+168.406 -39.5137 -629.24
+167.911 -39.1304 -603.44
+168.138 -38.0061 -751.62
+169.947 -39.1173 -617.02
+170.07 -38.9134 -603.93
+168.471 -37.9562 -571
+168.799 -39.6389 -632.29
+167.694 -38.3892 -2536.64
+169.497 -37.9575 -640.22
+167.741 -38.6867 -956.6
+169.032 -39.6279 -618.85
+169.949 -38.9877 -585.07
+169.608 -38.1827 -584.26
+169.412 -39.5721 -617.55
+168.123 -39.1763 -690.13
+167.967 -38.9898 -620.58
+169.545 -39.464 -600.37
+168.6 -39.4887 -596.26
+169.322 -37.868 -615.89
+168.357 -39.3499 -610.77
+167.721 -38.5364 -1079.86
+169.706 -39.3555 -610.75
+169.212 -39.5243 -595.08
+167.939 -38.87 -814.56
+169.683 -38.3078 -557.89
+169.757 -39.1889 -579.69
+169.893 -38.8569 -667.67
+168.035 -38.1426 -679.23
+168.114 -39.0367 -587.18
+168.323 -39.2085 -587.21
+168.719 -39.5323 -599.47
+168.782 -38.0048 -573.33
+169.662 -38.4447 -536.09
+167.812 -38.3036 -2170
+167.928 -38.731 -951.14
+169.47 -38.0923 -585.38
+169.046 -39.4702 -576.44
+169.354 -39.4214 -574.41
+169.769 -39.0115 -565.82
+168.338 -38.0447 -673.5
+168.561 -39.375 -580.84
+169.491 -39.3179 -575.33
+169.766 -38.7256 -551.05
+167.914 -38.5825 -1142.69
+168.879 -39.5001 -585.4
+169.596 -39.229 -576.86
+168.112 -38.9058 -749.11
+168.297 -39.0719 -572.6
+167.898 -38.4215 -1050.66
+168.509 -38.0939 -471.78
+169.626 -38.6131 -532.05
+168.681 -38.136 -518.62
+169.16 -39.375 -555.79
+169.708 -38.8678 -542.81
+169.442 -38.2054 -556.22
+168.739 -39.4165 -579.44
+168.975 -38.0043 -559.56
+168.53 -39.23 -555.83
+168.107 -38.7741 -991.63
+168.941 -39.3424 -553.71
+167.963 -38.2777 -886.82
+169.501 -38.3346 -532.25
+168.282 -38.9376 -679.48
+169.303 -39.2749 -548.38
+169.589 -39.101 -560.35
+169.437 -39.1816 -553.96
+168.877 -38.1399 -526.5
+168.104 -38.6329 -934.69
+168.49 -39.0929 -540.57
+168.226 -38.1475 -672.02
+169.354 -38.0186 -556.68
+169.565 -38.9525 -537.58
+169.476 -38.5074 -518.57
+168.062 -38.3673 -1007.98
+169.11 -39.2271 -532.23
+168.084 -38.4868 -891.56
+168.733 -39.2708 -549.82
+169.321 -38.1356 -547.64
+169.552 -38.7889 -520.64
+168.269 -38.8133 -751.18
+169.411 -39.0422 -540.17
+168.451 -38.9652 -586.46
+168.918 -39.1758 -522.56
+169.264 -39.1317 -535.79
+169.436 -38.6604 -511.94
+168.273 -38.686 -761.22
+168.522 -38.2481 -466.28
+169.315 -38.2733 -546.86
+168.716 -39.105 -518.42
+169.394 -38.8954 -519.5
+168.431 -38.8428 -605.81
+169.318 -38.4209 -519.38
+168.296 -38.5299 -682.69
+168.139 -38.2646 -770.72
+169.086 -39.0799 -514.37
+168.223 -38.3846 -834.17
+169.243 -38.9858 -526.27
+168.632 -38.974 -526.74
+168.404 -38.7403 -617.3
+169.179 -38.0309 -511.27
+169.298 -38.5774 -495.09
+168.387 -38.161 -513.93
+169.375 -38.7736 -504.75
+168.923 -39.0297 -498.4
+168.573 -38.8723 -539.65
+169.166 -38.1932 -526.5
+168.768 -38.3155 -493.9
+168.454 -38.6281 -551.38
+169.218 -38.8293 -507.82
+168.793 -38.9693 -501.93
+169.288 -38.7023 -495.16
+168.412 -38.3848 -592.42
+169.077 -38.9418 -499.69
+169.04 -38.1241 -531.78
+168.321 -38.2659 -564.77
+169.157 -38.3419 -498.47
+168.589 -38.7379 -515.95
+168.513 -38.4944 -519.77
+169.141 -38.4976 -495.28
+169.055 -38.8264 -491.89
+168.757 -38.8438 -506.5
+169.002 -38.2521 -497.59
+169.096 -38.6801 -487.07
+168.578 -38.3798 -512.36
+168.665 -38.4536 -491.91
+168.811 -38.4965 -483.1
+168.831 -38.6681 -499.7
+168.65 -38.58 -485.17
+168.98 -38.4101 -486.9
+168.974 -38.5518 -483.24
+168.934 -38.7845 -504.25
+168.927 -38.8997 -494.26
+158.664 -48.4238 -4865.38
+158.758 -48.0718 -4552.72
+158.623 -45.5277 -4846.42
+158.389 -45.1742 -5001.02
+158.976 -45.1775 -4986.65
+158.831 -45.9157 -5053
+158.81 -46.2931 -4987.21
+157.399 -49.097 -4818.82
+158.118 -49.1203 -4879.69
+157.239 -49.584 -4482.45
+157.771 -49.4092 -4965.1
+158.498 -47.8422 -4752.32
+158.271 -49.4789 -5077.12
+158.314 -45.833 -4815.85
+157.802 -45.1622 -4904.05
+157.451 -45.5257 -4956.86
+158.661 -48.8304 -4874.43
+157.238 -48.725 -4647.74
+157.927 -48.7012 -4854.94
+157.362 -48.416 -4890.53
+158.884 -46.9822 -4827.35
+157.448 -48.1018 -5086.47
+158.071 -48.1987 -4568.27
+158.46 -46.6295 -4726.59
+158.541 -47.4283 -4787.65
+157.214 -47.917 -4847.16
+158.308 -47.0611 -4670.99
+158.335 -46.1892 -5116.93
+157.848 -49.7437 -4851.58
+158.055 -45.5312 -4803.47
+157.767 -45.9585 -4986.53
+158.73 -49.2112 -5020.48
+157.842 -47.7761 -4982.11
+157.816 -46.4401 -4659.61
+157.252 -46.2783 -4766.65
+158.363 -49.7888 -5041.33
+157.126 -45.8817 -4540.38
+158.804 -49.5811 -4662.19
+157.272 -47.5967 -4510.53
+157.181 -45.1008 -4616.26
+157.272 -46.6863 -4814.17
+157.834 -47.3172 -4816.97
+157.822 -46.8869 -4558.39
+157.217 -47.1542 -4601.02
+162.419 -48.4927 -2855.01
+163.931 -49.1081 -5432.62
+164 -49.372 -3320.58
+163.769 -49.6114 -4239.85
+161.061 -47.4629 -4899.14
+159.727 -46.1717 -4978.88
+159.985 -45.3157 -5005.5
+161.254 -46.9706 -4412.05
+160.484 -45.2538 -4949.26
+159.533 -45.2096 -4939.7
+159.655 -45.5193 -4907.14
+159.272 -48.194 -4940.02
+159.807 -48.372 -5084.31
+159.799 -48.0218 -4456.44
+160.115 -46.9661 -5005.99
+159.206 -46.1605 -4934.8
+159.24 -46.5364 -4932.03
+159.172 -45.5345 -4952.5
+160.524 -47.2088 -4860.97
+160.27 -46.154 -4971.03
+160.697 -46.3494 -4945.03
+161.14 -46.5415 -4934.53
+159.449 -45.8474 -5011.14
+160.135 -45.7222 -4958.59
+160.737 -45.9242 -4831.07
+162.78 -45.1927 -4798.77
+159.821 -47.3065 -4903.62
+159.552 -46.9388 -4914.31
+160.982 -47.9204 -4838.98
+160.352 -48.15 -4517.69
+160.726 -45.5497 -4849.12
+160.034 -46.5616 -4992.23
+159.25 -48.9526 -4392.87
+162.033 -49.8226 -4533.5
+163.168 -45.4751 -4682.75
+161.347 -46.0967 -4814.52
+162.194 -45.2396 -4808.15
+160.258 -47.6844 -4454.39
+160.628 -46.7664 -5046.59
+159.272 -47.722 -4845.96
+163.424 -45.0975 -4702.92
+161.742 -47.2823 -4752.17
+159.212 -47.2798 -4861.14
+159.248 -48.5843 -4757.71
+161.218 -45.6199 -4770.99
+161.055 -45.2283 -4882.83
+161.772 -46.5105 -4318.24
+163.951 -45.1406 -4741.1
+161.622 -45.2413 -4859.21
+160.339 -48.5494 -4551.04
+161.799 -45.6451 -4717.96
+159.778 -48.7498 -4666.21
+162.039 -46.043 -4685.77
+159.707 -49.0639 -4664.75
+162.498 -45.6362 -4763.28
+161.949 -49.5065 -4250.58
+162.276 -46.3165 -4414.3
+159.305 -49.2992 -4649.7
+162.209 -47.877 -4428.99
+163.042 -45.8239 -4749.76
+160.294 -48.9781 -4536.83
+161.62 -47.7018 -4528.15
+161.925 -46.9129 -4489.1
+160.925 -48.3522 -4403.75
+163.541 -48.8256 -4124.17
+163.208 -49.4974 -4097.87
+162.116 -47.5079 -4395.91
+159.868 -49.3464 -4475.2
+159.38 -49.654 -4676.22
+159.972 -49.6919 -4308.06
+160.803 -48.709 -4440.68
+162.65 -46.3332 -4336
+159.52 -49.9429 -4696.7
+163.855 -45.9665 -4428.41
+162.567 -46.0483 -4568.53
+162.614 -47.5281 -4325.31
+163.188 -47.5879 -4268.87
+162.506 -48.8591 -4079.39
+160.474 -49.3805 -4420.15
+162.815 -47.8897 -4223.8
+163.003 -47.2426 -4355.13
+162.232 -49.1867 -4019.45
+160.579 -49.758 -4284.14
+161.368 -48.6122 -4390.41
+162.38 -47.1424 -4467.56
+162.944 -46.8869 -4252.53
+161.888 -48.4768 -4366.32
+163.093 -46.5052 -4308.29
+162.14 -48.2346 -4261.55
+162.943 -48.2526 -4416.75
+163.055 -46.1517 -4464.84
+162.52 -49.4978 -4399.96
+162.93 -49.0972 -4067.79
+163.519 -47.3059 -4325.28
+161.582 -49.3079 -4459.22
+161.323 -49.749 -4033.88
+162.403 -46.6615 -4554.41
+161.069 -49.05 -4208.09
+162.983 -48.6482 -4033.98
+161.598 -48.1726 -4456.09
+161.882 -48.8578 -4240.46
+163.461 -48.3929 -3944.03
+160.999 -49.4494 -4176.21
+162.689 -49.8469 -4317.65
+164.366 -48.9699 -3144.31
+163.329 -49.9161 -3160.18
+164.987 -49.8222 -3562.85
+164.468 -49.9711 -3254.41
+165.645 -49.3373 -2949.73
+165.418 -49.6179 -2932.98
+164.906 -49.2772 -3372.43
+164.592 -49.592 -3180.2
+165.031 -48.955 -2732.07
+164.779 -48.2999 -3395.52
+164.667 -49.0642 -2319.66
+165.206 -48.7066 -2493.62
+164.386 -49.2724 -1167.07
+162.511 -48.1461 -3185.66
+164.678 -48.8545 -1028.39
+164.146 -49.758 -1659.22
+164.939 -48.5315 -1893.42
+164.184 -49.5188 -489.94
+164.917 -48.739 -1294.5
+165.952 -49.1496 -2757.28
+166.064 -49.3675 -1643.54
+166.676 -45.4375 -577.64
+165.812 -48.51 -2877.17
+165.848 -49.5611 -1499.2
+166.251 -49.1894 -1585.96
+165.797 -47.908 -2842.86
+166.068 -48.395 -2046.43
+166.111 -48.5929 -1509.66
+165.416 -46.4778 -3584.07
+166.138 -48.7885 -995.63
+166.224 -48.9856 -1143.95
+166.48 -49.2445 -775.77
+172.138 -46.2336 -1427.44
+171.828 -46.2325 -1340.55
+171.957 -46.4187 -1418.81
+172.227 -45.8563 -1450.09
+172.025 -46.0437 -1365.76
+172.247 -46.952 -1393.03
+171.93 -47.0034 -1363.8
+171.438 -46.9168 -1284.29
+172.171 -47.1921 -1371.53
+171.628 -47.0406 -1333.83
+171.899 -45.8351 -1434.25
+172.287 -47.4284 -1376.93
+171.793 -47.2047 -1340.53
+166.149 -49.5555 -646.84
+171.937 -47.4003 -1361.85
+171.632 -46.4145 -1376.26
+171.496 -47.1992 -1334.11
+172.07 -47.6081 -1369.01
+171.4 -47.0658 -1282.95
+171.608 -47.3678 -1345.99
+172.205 -47.8057 -1366.87
+171.679 -47.5878 -1349.54
+171.335 -47.3334 -1324.46
+172.322 -48.0002 -1279.59
+171.862 -47.7996 -1352.64
+170.748 -47.0641 -1149.98
+170.773 -47.27 -1213.7
+171.208 -46.7862 -1214.47
+170.548 -47.167 -1173.99
+170.728 -47.6248 -1272.77
+170.896 -47.4602 -1268.21
+170.675 -47.9998 -1279.2
+170.43 -47.6145 -1267.99
+170.544 -47.8049 -1283.93
+170.824 -48.1755 -1220.13
+170.856 -47.8108 -1309.59
+170.246 -47.7761 -1264.49
+170.32 -48.011 -1218.46
+170.15 -47.5924 -1119.66
+170.327 -47.4223 -1190.63
+171.789 -45.3451 -1049.32
+170.354 -47.2427 -1119.16
+172.012 -47.9877 -1295.6
+171.174 -47.4745 -1314.05
+170.508 -48.2032 -1192.79
+170.04 -47.9168 -1041.42
+171.509 -47.8073 -1338.34
+172.156 -48.1337 -1200.05
+170.983 -48.3179 -1122.27
+170.998 -47.9937 -1275.45
+170.521 -47.0008 -1075.19
+170.206 -48.2382 -1033.28
+170.683 -48.3857 -1097.04
+170.697 -46.886 -1078.17
+170.887 -46.7461 -1115.52
+171.662 -48.0244 -1281.17
+171.01 -46.212 -798.89
+170.035 -47.4305 -989.86
+171.308 -47.9929 -1281.91
+171.909 -48.1745 -1175.77
+170.014 -48.1027 -903.8
+171.163 -48.4282 -1019.21
+172.133 -48.3019 -1066.52
+170.367 -48.3964 -1106.82
+171.387 -48.1739 -1185.68
+170.914 -48.4936 -984.15
+171.635 -48.2566 -1150.12
+166.375 -47.8107 -269.14
+170.12 -48.4098 -913.54
+171.391 -48.3507 -1050.13
+170.706 -48.5576 -907.29
+171.865 -48.3808 -1027.94
+171.596 -48.448 -995.77
+170.397 -48.6923 -981.59
+170.203 -48.581 -982.24
+170.489 -48.5515 -958.2
+171.356 -48.5175 -910.39
+172.107 -48.5136 -871.03
+169.935 -48.5123 -772.37
+169.845 -47.4674 -779.37
+170.205 -48.7857 -940.07
+169.861 -48 -841.46
+169.819 -47.8697 -821.88
+169.938 -48.7102 -808.54
+171.812 -48.5961 -812.12
+171.124 -48.6161 -827.75
+166.376 -48.8193 -337.53
+170.613 -48.6864 -850.23
+170.852 -48.6664 -819.46
+170.488 -48.8506 -788.31
+169.906 -48.3063 -790.9
+170.051 -47.1753 -829.45
+170.243 -48.9681 -778.75
+171.529 -48.6211 -792.28
+166.479 -49.0819 -585.31
+171.335 -48.6538 -783.23
+169.86 -47.353 -775
+169.753 -48.6016 -774.68
+169.999 -48.8997 -862.66
+169.768 -48.1341 -760.39
+170.254 -49.1315 -731.24
+166.504 -49.4042 -615.64
+169.673 -48.736 -770.63
+166.026 -49.6855 -869.44
+171.247 -48.7487 -719.89
+166.478 -48.9241 -369.81
+170.395 -46.6678 -779.34
+169.68 -47.9898 -716.87
+170.027 -49.0693 -782.97
+171.033 -48.8355 -681.04
+170.746 -48.8 -767.8
+169.407 -48.7583 -750.34
+171.433 -48.7591 -685.32
+169.111 -48.9954 -746.35
+169.176 -48.8407 -685.75
+169.269 -49.1253 -866.51
+169.392 -49.2773 -746.42
+169.546 -48.5913 -740.37
+169.693 -48.457 -720.84
+169.358 -48.9565 -749.43
+169.556 -49.1062 -831
+168.775 -49.3783 -786.24
+168.945 -49.2806 -827.62
+169.149 -49.2773 -765.39
+169.175 -48.6937 -705.54
+169.643 -49.3014 -692.8
+169.802 -49.0024 -791.8
+169.828 -49.1766 -742.5
+170.064 -49.2274 -688.07
+169.424 -48.4298 -676.77
+169.614 -48.2851 -688.13
+169.537 -48.113 -640.21
+168.87 -49.0244 -742.2
+168.559 -49.3054 -725.68
+168.761 -49.1918 -820.47
+169.019 -49.1487 -852.59
+165.572 -46.869 -849.78
+168.968 -48.8766 -686.75
+169.859 -47.2088 -703.85
+172.032 -48.6729 -698.34
+170.273 -49.2711 -643.98
+169.494 -49.4295 -675.2
+168.661 -49.0482 -694.25
+169.016 -49.4089 -728.35
+172.194 -48.6646 -704.11
+170.497 -49.0595 -696.62
+168.565 -49.4263 -721.33
+168.473 -49.1497 -671.57
+169.253 -49.4232 -683.44
+169.702 -47.416 -656.45
+168.874 -49.5146 -717.66
+169.374 -49.5642 -661.07
+166.632 -49.171 -610.73
+169.315 -48.5856 -714.16
+168.718 -48.8861 -647.52
+169.888 -49.3413 -636.54
+169.577 -49.5526 -655.4
+168.659 -49.5294 -714.01
+171.657 -48.7584 -654.74
+170.417 -49.1934 -665.35
+168.405 -49.5262 -680.72
+169.937 -47.0712 -731.24
+169.036 -48.7635 -695.77
+170.778 -48.9628 -670.39
+169.295 -49.7055 -653.64
+169.1 -49.5797 -678.84
+169.522 -49.6761 -654.41
+168.48 -48.9685 -655.39
+170.122 -49.3749 -614.16
+168.864 -48.7546 -697.53
+169.247 -49.8309 -642.63
+169.444 -49.8103 -640.53
+169.484 -47.9536 -670
+171.898 -48.7777 -616.98
+171.311 -48.8732 -631.78
+169.725 -49.4583 -646.02
+169.068 -49.7612 -644.65
+170.336 -49.3986 -578.64
+169.783 -49.6273 -645.4
+170.47 -49.3008 -588.79
+168.486 -48.8006 -631.55
+168.523 -49.6745 -657.9
+166.701 -49.289 -626.32
+169.348 -49.9388 -618.7
+168.257 -49.422 -699.69
+169.676 -49.7859 -647.94
+169.577 -49.9247 -623.89
+170.729 -49.114 -599.85
+168.817 -49.6722 -670.18
+169.086 -49.9318 -629.91
+168.673 -48.7111 -666.3
+168.239 -49.6791 -639.63
+168.248 -49.1883 -649.77
+169.968 -49.4945 -614.22
+171.205 -48.9946 -570.78
+170.229 -46.7931 -783.56
+168.193 -49.5381 -668.44
+169.374 -48.2439 -634.75
+171.018 -49.0035 -587.06
+170.602 -49.204 -595.21
+169.515 -47.6311 -650.96
+168.613 -49.8204 -628.27
+171.531 -48.8899 -584.74
+169.804 -49.912 -629.49
+168.853 -49.8524 -629.72
+169.94 -49.7776 -622.01
+169.218 -48.4688 -686.49
+168.286 -48.8711 -647.59
+168.48 -48.6431 -678.77
+168.371 -49.8171 -614.77
+170.212 -49.5143 -580.45
+172.152 -48.8234 -574.82
+170.537 -49.4167 -551.65
+168.062 -49.4568 -676.79
+168.812 -48.6388 -717.04
+169.686 -47.1862 -641.87
+170.078 -49.6385 -602.47
+168.86 -49.9845 -606.14
+168.242 -49.0348 -655.12
+168.667 -49.9606 -593.22
+168.109 -49.3044 -664.21
+168.288 -48.7114 -647.38
+170.052 -49.9185 -610.93
+170.927 -49.1123 -547.02
+168.171 -49.8237 -613.15
+170.828 -49.2441 -520.09
+170.664 -49.3279 -542.1
+166.624 -49.52 -532.23
+169.306 -47.7087 -635.75
+171.766 -48.9107 -530.58
+166.407 -49.5672 -449.82
+168.655 -48.5555 -683.28
+170.431 -49.5186 -549.26
+168.446 -49.9455 -582.55
+168.005 -49.6019 -644.67
+168.473 -48.52 -691.82
+166.672 -49.0779 -556.63
+169.312 -48.0722 -629.32
+170.333 -49.6357 -553.8
+171.962 -48.9026 -532.44
+170.231 -49.7815 -578.45
+168.228 -49.9406 -588.95
+167.903 -49.4929 -650.81
+169.046 -48.4247 -688.49
+166.823 -49.1516 -628.98
+169.204 -48.3428 -654.38
+169.515 -47.4757 -531.86
+170.287 -49.9405 -567.19
+168.307 -48.5601 -603.11
+170.608 -49.5095 -530.53
+168.058 -49.1425 -649.72
+169.339 -47.5599 -564.52
+170.82 -49.3642 -494.14
+168.883 -48.5191 -705.31
+165.793 -46.8649 -499.95
+168.015 -49.7639 -581.5
+171.132 -49.1157 -492.84
+169.573 -47.3498 -514.72
+170.45 -49.7309 -535.71
+171.419 -49.0049 -530.05
+171.05 -49.2336 -443.74
+166.35 -48.6709 -342.23
+170.465 -49.8509 -538.16
+168.019 -49.0045 -691.35
+170.978 -49.3509 -432
+167.903 -49.3819 -659.68
+168.118 -48.6145 -502.81
+168.002 -49.9179 -510.84
+171.621 -49.0155 -486.85
+168.565 -48.4267 -672.81
+167.832 -49.7039 -525.56
+170.717 -49.4373 -514.42
+171.327 -49.116 -460.47
+167.793 -49.5755 -584.76
+168.728 -48.4395 -662.08
+170.58 -49.6254 -526.44
+170.47 -49.9691 -557.93
+169.141 -47.6111 -546.55
+168.362 -48.4099 -425.47
+168.133 -48.4503 -281.55
+168.126 -48.9141 -690.01
+170.648 -49.7682 -517.36
+169.008 -48.288 -619.02
+169.349 -47.4473 -502.83
+168.861 -48.3721 -629.43
+170.769 -49.5456 -499.3
+169.257 -47.8865 -642.88
+167.833 -49.8319 -424.71
+167.88 -49.2389 -648.92
+169.158 -48.1902 -627.24
+172.081 -48.9908 -478.33
+171.905 -49.006 -450.1
+170.895 -49.4554 -466.53
+167.742 -49.4568 -620.78
+168.092 -48.7767 -647.46
+170.68 -49.9232 -535.53
+169.119 -47.7577 -636.98
+170.884 -49.8055 -491.73
+170.816 -49.6679 -496.25
+170.934 -49.9465 -499.35
+170.972 -49.5676 -464.27
+171.046 -49.6948 -472.12
+171.087 -49.4593 -390.18
+171.203 -49.5808 -442.02
+171.139 -49.8341 -486.11
+171.235 -49.7082 -461.22
+171.345 -49.9382 -489.34
+167.169 -49.425 -400.78
+167.088 -49.3044 -539.52
+166.985 -49.1997 -645.41
+166.997 -49.4476 -522.22
+166.987 -49.1213 -624.79
+169.419 -47.3649 -499.74
+171.133 -49.9795 -506.91
+167.492 -49.6345 -363.97
+167.312 -49.6077 -343.42
+167.127 -49.5466 -372.32
+167.658 -49.6617 -453.11
+167.319 -49.4804 -478.12
+169.327 -47.269 -392.06
+166.214 -48.2702 -1085
+171.246 -49.2299 -398.32
+167.451 -49.5393 -468.74
+166.735 -49.6157 -426.46
+166.103 -49.8472 -170.74
+167.833 -49.0828 -652.91
+171.771 -49.0302 -372.86
+168.683 -48.3261 -628.68
+171.531 -49.9558 -485.59
+168.503 -48.3062 -480.89
+168.21 -48.3165 -438.32
+167.32 -49.3579 -651.96
+168.349 -48.2873 -155.95
+171.375 -49.7861 -471.65
+167.703 -49.3303 -641.4
+169.077 -48.032 -647.1
+172.183 -49.9456 -482.17
+166.923 -49.0601 -598.43
+167.869 -48.9595 -671.84
+171.543 -45.1267 -278.29
+166.923 -49.5707 -526.58
+171.169 -49.3446 -367.74
+168.961 -48.1539 -598.32
+168.823 -48.2383 -588.17
+167.611 -49.5469 -523.83
+166.382 -46.3293 -394.43
+169.196 -47.4656 -305.86
+168.05 -48.3097 -397.93
+166.629 -48.978 -426.88
+167.969 -48.8823 -682.96
+171.284 -49.4527 -401.69
+167.052 -47.1684 -399.77
+166.508 -46.3431 -302.1
+166.618 -49.7043 -121.43
+171.531 -49.8618 -463.27
+171.978 -49.9333 -477.06
+167.669 -49.1945 -637.55
+167.522 -49.4269 -588.09
+171.642 -49.9175 -466.02
+167.311 -49.233 -708.72
+172.159 -49.0921 -427.78
+166.805 -49.0075 -512.27
+166.257 -47.9189 -777.71
+168.131 -48.2323 -365.16
+168.632 -48.1902 -605.5
+171.786 -49.9254 -466.91
+168.424 -48.1926 -197.48
+169.036 -47.877 -639.32
+172.265 -49.8271 -464.11
+167.503 -49.2831 -650.97
+171.404 -49.646 -434.51
+168.259 -48.2087 -378.29
+166.256 -49.6964 -187.62
+166.566 -49.6206 -345.6
+171.084 -45.6318 -453.59
+167.794 -49.9502 -244.6
+169.013 -47.6816 -505.17
+171.695 -49.8306 -443.17
+171.522 -49.1207 -361.81
+167.144 -49.1541 -662.71
+167.713 -48.9692 -639.76
+172.087 -49.8269 -464.28
+168.906 -48.0543 -646.13
+166.536 -49.7932 -45.1
+168.797 -48.1204 -623.66
+167.322 -49.1343 -725.25
+165.679 -46.732 -639.08
+171.376 -49.5372 -403.87
+168.006 -48.1951 -312.88
+168.14 -48.1386 -305.62
+167.475 -49.1633 -679.68
+169.059 -47.5018 -245.34
+166.74 -49.7119 -139.9
+171.578 -49.7319 -441.39
+171.995 -49.1084 -260.15
+171.885 -49.8053 -449.17
+167.912 -48.7819 -536.87
+167.081 -47.2624 -197
+168.303 -48.0884 -308.96
+167.791 -48.8585 -563.5
+168.663 -48.074 -625.64
+167.421 -49.0574 -688.73
+168.505 -48.0815 -349.71
+172.178 -49.7294 -448.45
+171.714 -49.1289 -258.35
+171.435 -49.2292 -302.63
+167.682 -49.7729 -353.48
+167.953 -48.5277 -200.65
+167.609 -49.071 -637.52
+166.477 -49.8782 -73.62
+167.067 -49.0342 -575.52
+166.363 -49.8089 -43.38
+168.156 -48.0506 -251.23
+168.96 -47.7707 -561.77
+166.947 -48.9861 -511.11
+172.025 -49.7013 -424.17
+167.249 -49.0516 -703.94
+168.775 -48.0105 -653.41
+171.745 -49.737 -422.55
+168.91 -47.9554 -647.74
+167.348 -48.964 -655.17
+171.562 -49.6218 -428.95
+168.242 -47.9982 -235.92
+167.641 -48.8868 -620.2
+167.984 -48.0593 -218.59
+171.363 -49.3402 -344.7
+171.859 -49.6724 -411.09
+167.783 -48.74 -598.43
+167.151 -49.6586 -264.2
+167.526 -48.9558 -674.28
+168.392 -47.9701 -251.03
+168.605 -47.9672 -296.69
+172.175 -49.587 -423.04
+167.918 -48.6671 -356.74
+171.494 -49.557 -405.97
+168.111 -47.9684 -187.03
+167.942 -48.3976 -123.65
+166.681 -49.7821 -97.22
+167.535 -49.7396 -215.37
+166.329 -49.9344 -148.72
+171.698 -49.6427 -402.29
+166.35 -46.2419 -299.65
+168.894 -47.8555 -590.91
+171.967 -49.5866 -365.46
+167.019 -49.6365 -297.2
+167.633 -48.7864 -468.87
+167.189 -48.9504 -597.47
+166.746 -48.8958 -303.88
+166.458 -49.6998 -95.4
+167.955 -47.9242 -122.98
+168.239 -47.9128 -179.01
+168.759 -47.8915 -281.45
+166.876 -49.6894 -225.56
+168.497 -47.8698 -208.45
+171.479 -49.4513 -336.79
+166.623 -49.873 -118.01
+167.281 -48.8856 -522.32
+172.138 -49.468 -377.63
+168.108 -47.865 -138.41
+167.536 -48.8576 -648.79
+167.409 -48.8736 -464.87
+171.804 -49.5625 -315.47
+169.416 -47.1819 -256.11
+171.851 -49.0899 -242.14
+168.354 -47.8495 -172.99
+168.621 -47.8619 -231.17
+166.373 -46.1513 -220.81
+172.119 -49.1967 -326.87
+167.763 -48.6565 -426.67
+171.635 -49.5314 -373.04
+166.795 -49.7664 -133.91
+167.069 -47.3436 -231.77
+166.619 -48.8822 -252.5
+172.041 -49.507 -306.35
+167.674 -49.8802 -203.49
+168.227 -47.8112 -150.77
+172.148 -49.3889 -333.59
+171.537 -49.3302 -205.85
+171.899 -49.4742 -226.68
+167.258 -49.7033 -244.08
+167.043 -48.9239 -466.7
+167.989 -47.81 -115.77
+167.894 -48.2784 -128.32
+168.437 -47.7881 -179.3
+168.684 -47.8038 -216.96
+167.794 -48.5722 -272.09
+167.671 -48.6985 -475.66
+167.468 -48.7864 -165.44
+169.623 -46.8964 -181.57
+167.158 -48.8497 -343.78
+171.755 -49.4759 -224.28
+168.806 -47.7722 -231.85
+168.559 -47.774 -195.91
+169.279 -47.3686 -198.01
+167.303 -48.7926 -220.48
+168.111 -47.7667 -129.65
+169.489 -47.1011 -197
+166.786 -46.4979 -197
+166.308 -48.5574 -231.51
+167.029 -49.7225 -158.05
+171.646 -49.4161 -194.48
+166.502 -47.7336 -292.53
+166.683 -47.672 -221.49
+167.384 -49.7148 -243
+171.794 -49.3965 -183.86
+171.917 -49.3813 -154.04
+172.026 -49.4191 -217.27
+167.651 -49.9687 -125.82
+171.607 -49.227 -183.38
+166.399 -48.0942 -160.38
+166.342 -48.1786 -206.54
+166.409 -48.0069 -126.12
+166.495 -48.0671 -124.66
+166.455 -47.9074 -142.27
+166.515 -47.826 -165.17
+166.605 -47.885 -147.21
+166.641 -47.7918 -179.75
+167.127 -49.9449 -123.36
+167.152 -49.8411 -141.31
+167.153 -49.7518 -183.27
+167.271 -49.963 -125.69
+167.271 -49.8822 -138.93
+171.847 -49.313 -126.83
+171.896 -49.2463 -124.13
+172.023 -49.3053 -202.17
+171.866 -49.1707 -127.03
+171.98 -49.2055 -138.6
+166.382 -48.2901 -213.35
+166.462 -48.2268 -191.61
+166.456 -48.3842 -167.42
+166.527 -48.2976 -161.07
+166.483 -48.1475 -157.33
+166.534 -48.4709 -138.99
+166.605 -48.3796 -139.42
+166.573 -47.989 -113.16
+166.579 -48.2097 -154.06
+166.624 -48.102 -118.41
+166.715 -48.4726 -136.32
+166.664 -48.288 -140.61
+166.691 -47.9359 -133.35
+166.728 -48.3629 -139.86
+166.722 -48.1934 -137.2
+166.708 -48.6114 -133.24
+166.741 -47.8632 -155.51
+166.866 -48.4692 -139.45
+166.787 -48.1013 -117.12
+166.843 -48.5501 -136.24
+166.726 -48.0125 -102.47
+166.846 -48.6373 -130.49
+166.814 -48.2833 -144.15
+166.778 -48.7134 -165.11
+166.795 -47.7708 -183.52
+166.86 -48.1816 -135.16
+166.839 -48.3905 -141.56
+166.806 -47.9376 -121.28
+166.945 -48.7088 -133.44
+166.973 -48.5096 -138.77
+166.867 -48.02 -118.36
+166.88 -47.8559 -143.16
+166.947 -48.2399 -148.46
+166.965 -48.6021 -131.31
+167.003 -48.8197 -199
+166.925 -48.1026 -133.09
+166.952 -48.3302 -145.35
+167.072 -48.6499 -125.15
+166.858 -47.6839 -208.03
+166.944 -47.9395 -117.25
+167.023 -47.8572 -127.19
+166.97 -48.17 -143.85
+166.966 -48.421 -142.05
+167.013 -48.0262 -135.53
+167.042 -48.203 -148.86
+167.061 -48.2748 -146.32
+167.11 -48.5571 -133.37
+167.091 -48.4551 -138.17
+167.073 -48.123 -150.9
+167.077 -48.3657 -142.1
+167.173 -48.2059 -141.93
+167.137 -48.7375 -121.05
+167.191 -48.3056 -136.36
+167.208 -48.6369 -125.5
+167.206 -48.3956 -135.17
+167.224 -48.4836 -137.23
+167.244 -48.5576 -132.51
+167.273 -48.7052 -125.99
+167.317 -48.5951 -128.64
+167.327 -48.6518 -126.83
+167.337 -48.4251 -137.21
+167.366 -48.5196 -133.96
+167.391 -48.707 -131.11
+167.445 -48.6151 -130.89
+167.541 -48.6994 -272.88
+166.915 -49.7989 -134.47
+166.875 -49.8871 -142.48
+166.937 -49.9614 -127.18
+167.053 -49.7976 -136.96
+167.012 -49.8732 -123.63
+171.698 -49.3188 -141.73
+167.086 -47.7107 -139.82
+166.996 -47.635 -163.29
+166.96 -47.5121 -349.75
+167.189 -48.0256 -142.82
+167.352 -47.9696 -124.41
+167.433 -48.3731 -135.9
+167.235 -47.924 -128.06
+167.471 -48.4455 -134.54
+167.199 -47.7221 -139.07
+167.56 -48.3723 -141
+167.584 -48.4531 -151.28
+167.266 -47.8543 -116.79
+167.16 -47.8591 -118.97
+167.53 -48.5252 -141.14
+167.233 -47.7938 -124.45
+167.111 -47.7847 -130.92
+167.43 -48.2047 -124.06
+167.326 -48.161 -132.71
+167.599 -48.292 -133.11
+167.462 -48.2893 -130.32
+167.22 -48.1166 -142.26
+167.322 -48.3395 -132.41
+167.317 -48.251 -129.51
+167.341 -48.0674 -130.68
+167.574 -48.2044 -126.64
+167.485 -48.1169 -119.8
+167.619 -48.1263 -126.68
+167.676 -48.5071 -177.64
+167.807 -48.463 -198.61
+167.683 -48.4154 -170.81
+167.674 -48.3384 -132.85
+167.634 -48.6101 -288.5
+167.791 -48.3578 -129.02
+167.276 -49.7878 -181.53
+167.372 -49.9244 -124.83
+167.417 -49.8295 -146.31
+167.517 -49.9275 -113.46
+167.565 -49.8301 -134.38
+167.093 -47.9391 -132.34
+166.966 -47.7581 -163.2
+166.825 -47.5825 -236.99
+166.771 -49.844 -154.46
+166.746 -49.9526 -161.7
+166.289 -48.3834 -226.26
+166.382 -48.4748 -187.78
+166.453 -48.5619 -255.3
+166.592 -48.5526 -152.1
+166.492 -48.7321 -383.98
+166.54 -48.6422 -270.27
+166.548 -48.8122 -321.63
+166.628 -48.7183 -245.98
+166.694 -48.8046 -209.89
+166.843 -48.8055 -207.59
+166.896 -48.9048 -381.86
+166.234 -48.4822 -247
+171.767 -49.2334 -152.75
+166.324 -46.0091 -205.62
+167.359 -47.883 -119.05
+166.345 -46.0744 -204.65
+167.726 -48.2557 -133.71
+171.628 -45.0588 -143.93
+168.956 -47.5787 -232.73
+168.89 -47.6803 -231.33
+168.207 -47.7347 -140.72
+167.158 -47.6396 -148.93
+168.323 -47.7445 -158.59
+168.673 -47.7197 -207.55
+167.489 -48.0109 -117.49
+169.054 -47.394 -219.28
+168.007 -47.7115 -109.14
+167.886 -47.7548 -105.9
+167.617 -48.0519 -131.85
+167.081 -47.444 -179.67
+167.347 -47.8063 -113.84
+168.947 -47.4596 -215.64
+169.167 -47.3626 -212.43
+166.236 -46.2489 -208.1
+167.696 -48.1672 -127.43
+167.853 -47.8455 -108.76
+167.32 -47.7344 -131.68
+167.109 -47.5472 -155.8
+168.767 -47.6651 -211.51
+167.498 -47.907 -116.18
+167.343 -47.0331 -167.11
+168.446 -47.7102 -173.34
+168.834 -47.6021 -209
+167.393 -46.8041 -170.38
+168.939 -47.3749 -202.91
+166.533 -46.2524 -178.1
+168.13 -47.6818 -124.44
+167.839 -48.1572 -131.19
+167.461 -47.8241 -109.17
+168.245 -47.6696 -140.15
+167.163 -46.5297 -167.72
+166.616 -46.3022 -185.39
+168.355 -47.6566 -154.99
+167.723 -48.0945 -132.1
+166.279 -46.1785 -183.32
+168.555 -47.66 -184.63
+167.174 -47.1303 -194.64
+168.667 -47.6384 -196.4
+167.291 -47.6564 -147.63
+167.642 -47.9492 -125.03
+168.821 -47.5067 -194.09
+167.887 -47.661 -101.85
+169.531 -46.9572 -192.1
+167.155 -47.3078 -177.22
+168.73 -47.5788 -192.51
+167.183 -47.2312 -165.49
+169.215 -47.302 -194.67
+167.441 -47.7481 -118.18
+166.92 -46.5359 -111.38
+168.851 -47.4042 -187.47
+169.104 -47.2831 -185.76
+167.414 -47.6751 -135.5
+168.035 -47.6084 -104.04
+169.791 -46.7516 -160.61
+167.742 -48.0137 -127.58
+168.975 -47.3021 -186.81
+167.343 -46.7411 -174.88
+167.263 -47.5624 -151.84
+167.828 -48.0643 -127.21
+168.447 -47.6377 -166.62
+167.194 -47.4827 -152.11
+168.866 -47.3226 -180.27
+169.204 -47.2271 -179.33
+169.512 -46.8743 -167.1
+167.448 -46.8591 -134.34
+167.011 -46.4626 -177.81
+169.288 -47.1666 -176.48
+168.601 -47.5663 -176.95
+168.18 -47.6036 -124.33
+167.617 -47.8714 -115.28
+168.685 -47.4927 -172.77
+167.119 -46.4628 -153.34
+167.561 -47.8333 -110.44
+167.86 -47.9988 -120.94
+168.495 -47.591 -169.26
+167.395 -47.5992 -147.99
+169.712 -46.8281 -171.93
+167.792 -47.9326 -118.32
+167.908 -47.5635 -99.4
+167.572 -47.7597 -109.61
+167.793 -47.6048 -99.91
+168.284 -47.6052 -139.8
+169.365 -47.0931 -169.02
+168.387 -47.5747 -151.89
+169.114 -47.1985 -159.4
+168.746 -47.4177 -166.24
+170.134 -46.4855 -111.82
+169.441 -47.0201 -172.3
+167.436 -46.7351 -132.7
+168.784 -47.3504 -165.98
+168.88 -47.2365 -160.43
+167.233 -47.3038 -125.51
+169.003 -47.2034 -157.98
+168.572 -47.4733 -158.1
+168.639 -47.4115 -153.76
+167.304 -47.469 -149.97
+167.444 -46.9329 -97
+167.212 -47.3868 -145.32
+167.722 -47.8658 -113.91
+169.177 -47.1455 -157.92
+168.484 -47.5231 -157.31
+167.536 -47.6871 -122.42
+167.242 -46.5677 -144.84
+167.394 -47.5218 -147.03
+169.848 -46.6737 -149.51
+169.245 -47.0825 -148.83
+168.766 -47.2684 -151.65
+166.245 -46.0598 -176.19
+171.347 -45.2911 -96.09
+167.658 -47.8081 -107.41
+169.598 -46.8175 -148.7
+170.057 -46.5382 -128.07
+168.123 -47.5283 -108.87
+167.771 -47.7877 -103.97
+166.986 -46.3956 -137.09
+168.01 -47.514 -99.54
+167.509 -47.6189 -134.18
+168.262 -47.5282 -129.21
+168.687 -47.3359 -144.96
+166.718 -46.3365 -160.66
+168.378 -47.4886 -140.42
+170.871 -45.8209 -88.17
+167.265 -47.0867 -222.61
+169.312 -47.0051 -137.29
+166.292 -46.1178 -178.97
+168.543 -47.3947 -141.31
+169.405 -46.9289 -134.58
+170.19 -46.429 -91.81
+168.601 -47.353 -139.54
+167.704 -47.739 -107.93
+167.252 -46.5098 -125.9
+168.467 -47.443 -141.62
+169.078 -47.1326 -140.51
+168.888 -47.1418 -132.92
+168.789 -47.1763 -135.79
+167.915 -47.4776 -98.27
+167.802 -47.723 -101.71
+168.984 -47.114 -129.35
+167.218 -46.4616 -130.38
+166.209 -46.1863 -161.92
+169.5 -46.8018 -116.13
+167.488 -46.7916 -108.11
+167.493 -47.5507 -142.05
+169.907 -46.5552 -113.89
+167.313 -47.3286 -90.34
+167.348 -47.3949 -123.91
+166.435 -46.0887 -102.8
+169.141 -47.0724 -134.87
+167.651 -47.6874 -118.05
+168.375 -47.4139 -126.95
+167.287 -47.1772 -166.84
+167.76 -47.6743 -102.1
+168.084 -47.4694 -99.8
+167.414 -47.4506 -129.89
+169.3 -46.931 -115.67
+168.669 -47.2587 -129.4
+167.617 -47.6293 -124.77
+168.179 -47.4541 -110.11
+168.692 -47.1938 -125.89
+168.531 -47.3249 -127.67
+167.704 -47.6347 -110.44
+171.404 -45.2195 -91.2
+169.047 -47.0626 -122
+169.199 -47.0125 -126.17
+168.602 -47.2895 -128.38
+167.489 -47.4877 -128.58
+168.449 -47.3601 -125.8
+167.396 -46.6635 -118.84
+167.594 -47.5664 -128.49
+168.287 -47.4457 -123.63
+167.08 -46.4029 -119.94
+167.303 -47.259 -92.08
+170.304 -46.3015 -80.25
+167.432 -47.0046 -110.6
+168.009 -47.4401 -97.8
+167.697 -47.5778 -111.36
+167.935 -47.4026 -97.29
+169.421 -46.842 -109.4
+169.792 -46.6144 -116.71
+169.729 -46.6773 -124.36
+169.564 -46.7398 -114.5
+168.921 -47.0807 -116.28
+168.8 -47.1077 -116.63
+166.547 -46.0247 -42.91
+168.366 -47.3541 -115.8
+170.446 -46.1885 -76.95
+167.572 -47.5064 -129.46
+168.973 -47.0562 -111.03
+167.315 -46.6071 -129.48
+168.525 -47.2546 -114.57
+167.669 -47.5126 -115.78
+168.3 -47.3817 -113.59
+168.6 -47.2113 -114.2
+168.099 -47.4092 -97.93
+168.712 -47.1099 -110.47
+168.468 -47.2923 -115.65
+167.792 -47.5159 -99.51
+167.834 -47.421 -97.5
+167.44 -47.0749 -97
+167.555 -47.4597 -121.52
+169.239 -46.9609 -115.94
+171.225 -45.3759 -87.01
+170.031 -46.4701 -91.59
+167.628 -47.457 -117.81
+169.966 -46.522 -105.51
+169.103 -47.0063 -113.38
+167.445 -47.3878 -109.66
+167.501 -46.8933 -96.4
+168.853 -47.0686 -108.62
+168.233 -47.4033 -110.57
+167.508 -46.7365 -88.17
+171.532 -45.0468 -93.31
+167.185 -46.3957 -99.03
+169.652 -46.6431 -95.31
+168.393 -47.2995 -109.53
+167.502 -47.43 -117.46
+167.579 -47.4124 -111.63
+169.321 -46.8623 -97
+170.105 -46.4268 -86.95
+167.332 -46.5281 -103.74
+169.162 -46.9533 -106.57
+168.626 -47.1389 -104.41
+167.724 -47.448 -106.46
+166.222 -46.1327 -134.12
+168.521 -47.1948 -103.45
+168.172 -47.3906 -102.12
+167.662 -47.3981 -105.29
+168.313 -47.3175 -103.79
+169.878 -46.5085 -86.47
+169.002 -47.0001 -100.58
+168.432 -47.2197 -99.18
+167.498 -46.6801 -82.33
+167.524 -47.3741 -106.65
+168.333 -47.1859 -97
+168.227 -47.3442 -99.49
+169.432 -46.7836 -97
+169.478 -46.7488 -92.73
+167.382 -47.2828 -57.98
+167.752 -47.3784 -101.17
+169.222 -46.8979 -97.67
+167.602 -47.3502 -91.57
+168.557 -47.154 -99.75
+166.961 -46.3315 -93.4
+168.912 -47.0236 -98.4
+167.048 -46.3505 -90.52
+170.612 -46.17 -97
+167.359 -47.1173 -137.24
+167.304 -46.4661 -95.53
+169.069 -46.9482 -97
+167.773 -47.3079 -97
+167.746 -47.2578 -84.15
+167.52 -46.932 -87.66
+167.278 -46.4101 -90
+167.828 -47.3544 -97
+168.77 -47.0422 -97
+168.021 -47.3628 -97
+167.943 -47.3463 -97
+168.129 -47.3379 -97
+167.983 -47.3119 -97
+167.887 -47.365 -97
+168.332 -47.2532 -97
+167.686 -47.3357 -75.81
+167.947 -47.2221 -97
+169.576 -46.6628 -78.69
+167.419 -46.5753 -93.95
+169.365 -46.7942 -90.71
+168.838 -47.0165 -97
+168.252 -47.2788 -91.79
+167.895 -47.2941 -97
+168.634 -47.0798 -97
+167.473 -46.6228 -92.36
+167.509 -46.9862 -89.87
+169.242 -46.8375 -88.68
+171.166 -45.4169 -80.55
+168.32 -47.1267 -97
+168.481 -47.1373 -97
+168.392 -47.1431 -97
+171.458 -45.0254 -81.19
+167.993 -47.2618 -97
+168.055 -47.2964 -97
+168.256 -47.155 -68.9
+168.186 -47.2947 -89.81
+168.933 -46.9718 -92.71
+168.262 -47.2176 -83.18
+170.357 -46.2493 -74.05
+168.678 -47.0363 -95
+166.847 -46.3214 -99.43
+167.574 -46.8946 -66.97
+168.423 -47.0982 -90.2
+169.288 -46.7983 -76.68
+169.123 -46.8963 -89.97
+170.519 -46.1429 -76.73
+168.365 -47.0909 -87.11
+167.574 -46.9524 -66.16
+168.982 -46.9356 -87.83
+168.868 -46.9733 -90.27
+168.6 -47.0296 -88.55
+168.716 -46.9803 -83.25
+169.162 -46.8358 -79.14
+170.232 -46.3266 -72.62
+167.129 -46.3504 -78.52
+167.811 -47.2483 -79.76
+168.556 -47.0898 -90.58
+167.421 -46.5037 -81.07
+170.603 -46.1042 -80.14
+168.794 -46.9761 -87.21
+167.372 -46.4733 -83.45
+168.473 -47.0675 -82.99
+171.258 -45.3233 -77.15
+167.51 -46.5758 -81.05
+169.035 -46.8914 -83.11
+169.938 -46.4682 -70.48
+170.39 -46.211 -71.49
+171.317 -45.2227 -66.45
+170.15 -46.382 -73.66
+168.127 -47.2698 -80.4
+168.903 -46.9268 -82.75
+168.193 -47.2431 -77.88
+166.412 -45.8759 -44.56
+171.354 -45.1667 -71.19
+167.488 -46.526 -73.14
+167.584 -47.2986 -42.72
+170.179 -46.3449 -67.96
+168.828 -46.9246 -80.27
+167.544 -46.624 -80.42
+169.404 -46.7309 -76.85
+169.217 -46.7903 -74.79
+168.64 -46.9801 -79.71
+171.389 -45.0504 -72.09
+170.08 -46.3793 -62.39
+168.945 -46.8777 -74.95
+168.402 -47.0529 -77.73
+169.079 -46.846 -75.82
+169.489 -46.6876 -76.62
+170.432 -46.1399 -65
+167.194 -46.3409 -62.88
+168.345 -47.0504 -70.43
+170.47 -46.0988 -62.47
+168.522 -47.0226 -74.57
+170.284 -46.245 -61.95
+169.978 -46.4231 -56.89
+167.979 -47.1691 -63.88
+167.92 -47.1833 -51.75
+168.566 -46.9757 -74.37
+169.102 -46.8055 -68.54
+168.672 -46.9314 -69.42
+167.335 -46.372 -69.87
+167.585 -46.578 -69.4
+167.879 -47.2145 -60.47
+170.326 -46.2035 -58.44
+169.32 -46.7461 -62.17
+168.748 -46.9197 -72.47
+171.101 -45.4449 -61.21
+167.369 -46.4184 -75.48
+167.432 -46.4502 -67.8
+167.35 -47.2218 -30.19
+169.005 -46.8396 -71.23
+167.565 -46.802 -58.31
+167.553 -46.7592 -65.27
+170.592 -46.0502 -64.3
+171.263 -45.2664 -61.91
+171.4 -44.9985 -59.41
+169.147 -46.7769 -64.29
+167.577 -46.9993 -43.09
+166.547 -46.0552 -39.72
+168.868 -46.879 -73.11
+170.04 -46.4153 -67.19
+166.771 -46.2729 -91.51
+167.266 -46.349 -64.22
+169.606 -46.6137 -50.46
+167.032 -46.3103 -66.74
+166.497 -46.0687 -33.04
+170.382 -46.1737 -62.75
+169.258 -46.7553 -63.55
+168.894 -46.8437 -67.9
+168.799 -46.8758 -69.42
+167.583 -46.6689 -51.95
+168.198 -47.1878 -63.8
+170.233 -46.2789 -60.64
+170.176 -46.305 -57.05
+167.757 -47.2111 -53.81
+167.557 -46.5333 -66.82
+168.604 -46.9308 -67.56
+168.74 -46.8685 -62.75
+167.537 -46.4943 -60.65
+168.443 -47.0101 -67.12
+168.01 -47.2111 -73.97
+171.097 -45.3976 -50.92
+168.94 -46.8231 -64.15
+167.488 -46.4753 -62.18
+169.201 -46.7353 -59.78
+168.492 -46.9654 -62.29
+169.041 -46.8012 -63.3
+168.133 -47.2102 -66.19
+168.355 -47.0047 -52.88
+170.656 -45.9437 -46.15
+170.118 -46.3346 -56.77
+168.064 -47.236 -62.61
+167.64 -46.9321 -31.31
+168.983 -46.7998 -62.13
+167.625 -46.9701 -36.34
+170.437 -46.0716 -51.75
+168.838 -46.8374 -64.52
+166.92 -46.2857 -56.72
+169.077 -46.7659 -58.08
+168.537 -46.9259 -61.36
+168.635 -46.8963 -59.28
+169.41 -46.6627 -53.05
+170.407 -46.0999 -52.87
+167.659 -46.5791 -53.72
+167.619 -46.6232 -56.73
+170.533 -46.0328 -53.46
+170.579 -46.0037 -50.33
+170.366 -46.1324 -51.95
+167.625 -46.5348 -58.2
+167.235 -46.3032 -45.19
+167.095 -46.3109 -58.46
+168.88 -46.8047 -60.18
+169.336 -46.6837 -44.85
+166.468 -45.791 -79.95
+170.324 -46.1613 -49.97
+168.688 -46.8841 -59.68
+167.563 -46.7164 -40.13
+167.443 -46.4057 -56.4
+169.124 -46.7246 -50.55
+168.771 -46.8316 -59.47
+170.258 -46.2042 -46.54
+169.266 -46.7065 -46.98
+167.343 -46.3261 -54.46
+170.286 -46.1789 -46.52
+170.218 -46.2344 -46.36
+171.201 -45.2932 -49.26
+171.251 -45.2203 -47.78
+171.086 -45.3466 -44.61
+166.647 -45.5951 -7
+168.932 -46.7779 -55.25
+170.172 -46.2613 -43.92
+168.575 -46.8836 -56.25
+167.495 -46.4265 -50.94
+168.234 -46.8614 -9.7
+170.968 -45.5592 -45.87
+171.313 -45.0712 -51.38
+168.696 -46.8314 -51.43
+168.998 -46.7572 -53.79
+168.47 -46.9159 -52.03
+168.144 -47.1582 -53.52
+167.416 -46.3551 -47.59
+169.217 -46.6932 -47.58
+167.596 -46.4914 -53.27
+166.992 -46.2802 -43.87
+169.773 -46.4951 -25.18
+168.41 -46.9498 -50.42
+167.166 -46.3066 -45.3
+167.558 -46.4479 -48.32
+167.704 -46.5312 -47
+170.12 -46.2839 -41.69
+168.813 -46.7917 -54.49
+168.414 -46.9001 -47
+168.865 -46.7581 -51.03
+168.064 -47.1667 -28.58
+168.634 -46.8586 -50.14
+171.271 -45.1699 -47.47
+167.657 -46.496 -47.35
+170.006 -46.3719 -40.46
+167.698 -47.2367 -34.89
+168.514 -46.8867 -51.12
+167.515 -47.1176 -39.87
+167.829 -46.5807 -46.92
+170.479 -46.0183 -47
+168.356 -46.9096 -47
+170.522 -45.9896 -47
+170.57 -45.959 -47
+167.774 -46.554 -47
+170.435 -46.0401 -45.58
+169.084 -46.6925 -28.76
+167.546 -46.4037 -46.61
+167.781 -46.5 -45.03
+170.39 -46.0623 -43.79
+168.926 -46.7315 -47
+168.328 -46.9523 -47
+167.761 -46.4561 -38.9
+167.888 -46.5657 -47
+168.269 -46.9451 -45.65
+167.395 -46.3049 -37.72
+167.722 -46.5785 -47
+168.306 -47.0773 -63.77
+168.274 -46.9872 -45.03
+168.282 -47.0329 -47
+167.711 -46.4767 -46.91
+171.04 -45.4278 -47
+168.739 -46.7863 -48.41
+167.608 -46.3992 -44.52
+167.649 -46.4455 -47
+167.773 -46.601 -47
+168.302 -46.9185 -45.39
+170.054 -46.341 -36.52
+167.93 -46.5994 -47
+167.84 -46.5346 -38.93
+171.029 -45.3794 -40.89
+167.495 -47.1638 -51.36
+171.255 -45.1113 -38.41
+170.343 -46.091 -40.46
+171.143 -45.3173 -46.68
+171.198 -45.2432 -42.36
+167.907 -46.5211 -39.42
+168.458 -46.8652 -34.01
+170.304 -46.1258 -39.89
+167.066 -46.2768 -32.37
+167.503 -46.3747 -41.01
+168.669 -46.7846 -39.19
+170.28 -46.1538 -40.82
+167.569 -46.3712 -38.48
+169.461 -46.6257 -29.58
+167.953 -46.554 -41.78
+171.078 -45.2938 -37.15
+167.648 -46.6633 -28.04
+167.706 -46.6302 -32.31
+166.857 -46.2449 -23.8
+167.666 -46.8335 -26.16
+171.2 -45.1939 -37.87
+168.985 -46.7051 -33.62
+167.701 -46.6893 -8.38
+171.009 -45.324 -30.77
+167.296 -46.2962 -29.07
+169.909 -46.4225 -26.29
+170.615 -45.9325 -37.04
+169.945 -46.3868 -20.97
+170.239 -46.1702 -35.36
+167.888 -46.6422 -35.18
+168.375 -46.8599 -32.16
+171.138 -45.2678 -39.27
+167.351 -46.2759 -33.29
+170.189 -46.192 -28.2
+168.035 -46.6928 -27
+167.131 -46.2745 -30.1
+170.462 -45.9804 -28.62
+170.163 -46.2242 -31.81
+168.855 -46.7091 -27.06
+170.986 -45.4623 -37.33
+171.275 -45.0261 -26.23
+167.723 -46.4291 -31.78
+170.388 -46.0226 -37.76
+171.335 -45.0162 -46.29
+167.49 -46.3319 -33.37
+167.836 -46.6688 -31
+167.636 -46.3473 -22.38
+167.857 -46.4874 -18.33
+170.118 -46.2391 -24.29
+171.075 -45.2432 -30.16
+171.2 -45.1418 -32.2
+170.977 -45.4125 -33.71
+167.923 -46.4747 -17.87
+169.617 -46.5795 -30.6
+167.268 -46.2667 -12.63
+167.453 -46.3015 -30.1
+167.695 -46.3783 -20.15
+167.733 -46.9175 -20.79
+170.507 -45.9486 -29.96
+167.775 -46.4218 -25.27
+168.01 -46.5875 -28
+171.138 -45.2177 -33.39
+167.559 -46.3295 -29.95
+168.304 -46.8809 -27
+170.327 -46.0455 -32.23
+171.236 -45.0595 -25.8
+168.527 -46.8443 -40.87
+166.943 -46.2468 -18.49
+167.918 -46.6745 -25.49
+170.065 -46.3025 -33.78
+167.631 -46.7082 -16.48
+170.813 -45.6728 -27
+167.961 -46.6394 -28.18
+168.306 -46.6484 -27
+168.208 -46.561 -27
+170.265 -46.0801 -25.98
+171.198 -45.0957 -27.02
+168.17 -46.7406 -27
+168.014 -47.1422 -32.04
+167.637 -46.3036 -12.58
+167.411 -46.266 -26.08
+168.144 -46.5058 -27
+168.015 -46.5383 -30.6
+168.101 -46.7489 -27
+171.135 -45.166 -29.27
+171.013 -45.2675 -25.66
+168.151 -46.5633 -27
+168.076 -46.5475 -27
+171.075 -45.1944 -23.39
+168.055 -46.4948 -27
+167.991 -46.4613 -17.76
+168.268 -46.7138 -27
+170.001 -46.3132 -19.12
+168.263 -46.6782 -27
+167.812 -46.452 -26.27
+167.512 -46.2983 -25.13
+170.244 -46.131 -30.43
+168.236 -46.7541 -27
+168.237 -46.5764 -25.31
+170.775 -45.6652 -26.6
+167.976 -46.5076 -27
+168.794 -46.6493 -22.21
+168.138 -46.706 -27
+168.099 -46.673 -27
+168.133 -46.6227 -27
+168.081 -46.5929 -27
+168.039 -46.6407 -27
+168.21 -46.7032 -27
+171.13 -45.109 -26.75
+168.167 -46.6662 -27
+168.171 -46.8404 -27
+167.974 -46.6848 -26.57
+168.753 -46.6599 -26.32
+168.323 -46.6936 -26.17
+170.952 -45.2859 -21.39
+168.309 -46.7387 -26.33
+168.303 -46.8331 -27
+168.236 -46.8093 -19.3
+168.25 -46.9068 -26.78
+168.03 -46.7667 -17.43
+168.084 -46.7985 -21.44
+171.068 -45.1471 -16.79
+168.113 -46.4652 -18.83
+171.013 -45.2187 -20.78
+168.304 -46.7842 -27
+168.729 -46.6971 -23.03
+168.702 -46.7429 -28.83
+167.873 -46.4398 -17
+171.21 -45.0052 -19.38
+168.759 -46.6154 -17.47
+168.06 -46.4368 -17.16
+167.489 -46.2519 -19.78
+170.337 -45.9941 -28.65
+167.745 -46.3968 -22.31
+168.658 -46.7053 -17
+168.69 -46.6521 -19.52
+170.068 -46.2594 -20.61
+168.919 -46.6878 -18.08
+171.162 -45.0561 -18.04
+169.516 -46.5736 -11.83
+167.414 -46.2276 -17.15
+168.555 -46.7796 -12.02
+167.698 -46.9393 -17.81
+167.459 -46.2 -12.41
+170.692 -45.6578 -18.47
+170.899 -45.2983 -15.97
+168.13 -46.4283 -15.06
+167.567 -46.2799 -17
+168.374 -46.8072 -17
+167.824 -46.4067 -19.13
+168.497 -46.7258 -16.58
+167.993 -46.422 -11.13
+169.946 -46.3394 -11.93
+168.174 -46.4599 -14.4
+170.823 -45.4956 -7
+169.841 -46.4197 -14.75
+170.024 -46.2768 -13.17
+168.084 -46.3997 -11.39
+167.935 -46.4309 -14.43
+168.605 -46.6693 -14.49
+168.69 -46.6019 -10.14
+171.051 -45.1046 -6.95
+167.4 -46.1971 -10.65
+167.526 -46.2067 -5.8
+168.093 -46.9227 -15.38
+168.532 -46.6582 -9.12
+167.634 -46.2624 -7.74
+170.859 -45.3092 -5.74
+167.567 -46.2392 -9.22
+167.683 -46.2876 -7
+168.136 -46.3953 -9.76
+167.942 -46.3948 -9.73
+171.011 -45.1354 -5.58
+167.428 -46.1699 -7.82
+171.092 -45.0598 -5.19
+168.094 -46.3703 -5.13
+179.042 -49.9366 -2729.77
+178.556 -49.9047 -2691.86
+178.507 -46.1681 -2971.25
+178.54 -46.6004 -2797.42
+178.162 -46.5316 -2899.3
+178.652 -45.9303 -3013.1
+178.12 -46.232 -2918.87
+178.275 -45.9545 -2864.67
+178.428 -45.7049 -2791.67
+177.544 -45.6457 -2540.67
+177.85 -46.9849 -2235.59
+178.24 -46.8408 -2454.31
+177.244 -46.6274 -2604.14
+176.495 -46.5558 -2294.23
+178.147 -49.9148 -1974.35
+178.7 -46.8618 -2243.44
+177.449 -45.3842 -2513.59
+178.428 -45.1763 -2624.07
+177.471 -46.87 -2456.72
+177.006 -46.9026 -2276.7
+175.564 -46.5646 -2084.96
+176.582 -46.8171 -2236.56
+178.143 -47.1166 -1677.16
+176.198 -46.466 -2154.93
+177.349 -45.1141 -2235.67
+175.222 -46.5916 -1843.41
+175.898 -46.5131 -2240.82
+176.416 -46.3021 -2190.54
+176.378 -46.0521 -2233.16
+174.324 -46.3595 -1887.98
+176.168 -46.7393 -2174.48
+176.669 -47.0791 -1908.63
+176.006 -46.2107 -2025.09
+176.125 -45.9044 -1981.39
+175.777 -46.78 -1833
+176.334 -47.0284 -2000.93
+174.887 -46.6194 -1886.9
+176.426 -45.4586 -2106.15
+175.566 -46.1473 -1896.7
+176.884 -45.1363 -1780.51
+175.772 -45.9219 -1781
+174.659 -46.442 -1872.87
+173.14 -45.9787 -1656.94
+174.227 -46.1258 -1739.23
+178.482 -47.0789 -1812.63
+174.381 -46.5531 -1799.16
+175.154 -46.1392 -1757.9
+174.56 -46.1895 -1750.11
+173.503 -46.4393 -1674
+177.256 -47.0888 -1659.34
+178.86 -47.1201 -1509.41
+175.41 -46.803 -1761.78
+176.458 -47.2263 -1668.28
+177.553 -47.1444 -1471.44
+176.249 -45.6727 -1817.85
+175.066 -46.8049 -1802.14
+175.92 -45.6963 -1705
+177.856 -47.2196 -1224.78
+176.257 -45.257 -1403.81
+176.559 -49.9051 -1600.74
+174.814 -46.0391 -1710.45
+173.604 -46.6981 -1545.96
+175.397 -45.9062 -1728.05
+173.897 -46.8682 -1702.22
+174.486 -45.9272 -1695.07
+172.905 -46.6423 -1558.88
+175.96 -45.2488 -1332.99
+172.859 -45.9209 -1464.41
+172.701 -46.4996 -1535.18
+176.163 -47.2785 -1470.46
+174.107 -45.887 -1670.96
+175.578 -45.6944 -1525.4
+173.226 -46.605 -1519.46
+174.856 -46.9818 -1437.05
+174.111 -46.5234 -1691.69
+174.548 -46.8937 -1419.65
+175.048 -45.8795 -1572.57
+176.039 -45.458 -1427.34
+177.85 -49.8736 -1073.79
+173.583 -46.9506 -1475.65
+176.699 -47.3112 -1180.52
+175.217 -47.0537 -1386.74
+173.766 -45.8615 -1578.91
+176.978 -47.1896 -1214.99
+173.316 -46.8427 -1462.96
+174.237 -46.7528 -1517.09
+176.259 -49.824 -1446.03
+174.776 -45.8411 -1574.55
+175.941 -47.4737 -1398.95
+175.738 -45.5305 -1479.78
+172.555 -45.876 -1395.33
+173.946 -45.6579 -1525.74
+175.799 -47.2581 -1408.37
+176.447 -45.0386 -1509.83
+178.346 -47.2743 -1131.31
+173.832 -47.0984 -1581.5
+176.063 -45.067 -1357.28
+175.724 -45.3422 -1341.43
+175.236 -45.6779 -1424.68
+176.827 -49.8415 -1311.32
+176.576 -49.7259 -1574.02
+173.425 -47.3688 -1447.13
+173.62 -47.5265 -1381.24
+175.796 -47.6399 -1449.21
+173.323 -47.5471 -1404.61
+173.774 -47.3298 -1434.65
+173.618 -45.6423 -1431.91
+173.186 -45.426 -1464.09
+172.924 -45.3824 -1479.26
+173.515 -47.1678 -1468.29
+173.219 -47.694 -1426.66
+173.069 -46.7847 -1471.04
+173.171 -47.2071 -1396.07
+173.17 -47.4147 -1393.25
+176.663 -49.5402 -1312.06
+173.048 -47.5665 -1400.27
+172.865 -47.376 -1386.34
+172.964 -47.763 -1379.23
+174.041 -47.2296 -1402.33
+174.207 -47.0355 -1345.34
+174.33 -47.2742 -1320.81
+177.167 -49.9438 -1341.62
+175.428 -45.4596 -1325.97
+176.319 -49.5628 -1391.79
+174.917 -47.205 -1289.39
+173.891 -47.5131 -1349.14
+172.747 -47.6041 -1385.66
+174.123 -45.4329 -1356.93
+175.852 -47.836 -1460.17
+174.581 -47.1264 -1343.86
+173.488 -47.7056 -1322.45
+174.095 -47.4048 -1336.2
+172.464 -47.085 -1414.93
+172.918 -48.0067 -1264.35
+176.823 -49.6682 -1241.89
+175.704 -45.1119 -1279.67
+173.29 -47.8898 -1311.15
+174.913 -45.6733 -1341.98
+175.634 -47.4758 -1250
+175.181 -47.2913 -1252.47
+173.841 -47.7014 -1299.84
+173.601 -45.2523 -1331.76
+172.902 -45.2056 -1429.58
+176.519 -49.3609 -1249.04
+175.965 -49.8272 -1202.16
+172.591 -47.8326 -1365.63
+176.782 -49.3784 -1154.94
+174.134 -47.6022 -1298.31
+175.498 -47.7209 -1339.65
+176.432 -47.4255 -1507.53
+174.978 -47.4406 -1164.47
+172.418 -47.6194 -1380.46
+174.654 -47.3546 -1364.84
+173.665 -47.8804 -1278.57
+175.485 -45.2522 -1291.64
+175.815 -48.0348 -1360.36
+173.237 -48.0965 -1232.28
+172.597 -48.0479 -1272.41
+175.462 -47.2684 -1254.16
+177.566 -49.9193 -1223.85
+176.196 -47.5017 -1325.59
+176.056 -47.6604 -1299.27
+173.942 -47.881 -1252.42
+174.159 -47.8028 -1262.21
+176.014 -49.6683 -1259.7
+175.061 -45.4681 -1198.07
+177.066 -49.7183 -1107.08
+177.366 -49.7416 -1110.16
+173.412 -45.0967 -1241.48
+174.399 -47.4904 -1292.77
+178.95 -49.4997 -1248.9
+173.892 -48.0369 -1217.36
+173.05 -48.2465 -1061.1
+175.972 -48.1812 -1273.84
+172.742 -48.1993 -1058.21
+175.545 -47.9682 -1259.13
+175.206 -45.2633 -1218.28
+175.073 -47.7097 -1224.43
+175.272 -47.9018 -1213.6
+176.445 -49.1549 -1201.19
+176.674 -49.002 -1209.79
+176.907 -48.8602 -1240.85
+177.132 -48.7201 -1255.2
+176.095 -47.9913 -1356.33
+176.16 -47.8147 -1219.39
+175.305 -47.4853 -1183.02
+173.571 -48.0932 -1222.03
+176.128 -48.3326 -1481.46
+176.337 -48.1588 -1422.36
+176.087 -48.55 -1317.55
+175.852 -48.375 -1172.57
+177.059 -48.5274 -1266.65
+177.012 -48.3248 -1262.09
+176.961 -48.1288 -1268.83
+176.83 -48.6761 -1298.81
+176.739 -48.4704 -1314.01
+176.688 -48.2523 -1341.92
+176.406 -48.404 -1388.98
+177.324 -48.5907 -1223.97
+174.709 -47.5887 -1220.72
+174.424 -47.7053 -1287.84
+174.719 -47.8287 -1121.52
+176.68 -48.0402 -1320.66
+177.332 -48.4102 -1243.82
+176.645 -48.826 -1257.6
+176.458 -48.66 -1327.71
+176.367 -48.9277 -1207.03
+176.197 -49.1105 -1164.86
+176.153 -48.7702 -1210.31
+175.996 -48.9704 -1116.41
+175.885 -48.748 -1078.24
+176.408 -47.9153 -1277.02
+174.158 -47.9868 -1215.55
+176.735 -49.2061 -1166.36
+176.967 -49.0556 -1166.01
+176.925 -47.9704 -1285.22
+176.194 -49.3154 -1211.5
+177.144 -48.0167 -1215.83
+176.745 -47.8085 -1094.79
+175.619 -48.1994 -1133.31
+176.981 -49.5151 -1057.18
+175.365 -45.0842 -1223.44
+177.204 -48.9103 -1191.53
+176.025 -49.4904 -1169.7
+174.423 -47.9192 -1223.29
+173.86 -48.1954 -1168.81
+175.999 -49.1781 -1094.51
+177.043 -49.2783 -1074.18
+177.305 -48.1722 -1229.85
+174.988 -47.9698 -1178.09
+178.266 -49.737 -1187.99
+177.472 -48.7649 -1173.05
+178.644 -47.2607 -975.72
+177.258 -49.1081 -1070.63
+175.254 -48.1179 -1288.04
+175.727 -49.934 -1142.55
+177.628 -48.548 -1164.3
+177.23 -49.5944 -1037.79
+177.666 -48.3052 -1155.38
+177.497 -48.9858 -1019.85
+174.317 -45.1056 -1120.39
+177.096 -47.8513 -1113.09
+178.083 -47.3013 -1095.45
+174.378 -48.0906 -1187.66
+172.415 -48.2057 -1090.1
+176.39 -47.6703 -1154.23
+174.153 -48.1898 -1152.18
+174.676 -48.0745 -1074.21
+175.749 -48.5685 -1060.75
+173.379 -48.2614 -1089.36
+177.625 -47.3565 -974.72
+177.761 -48.7207 -1133.66
+175.067 -45.0688 -1155.76
+175.558 -48.4183 -996.61
+173.684 -48.3032 -1064.06
+177.592 -48.1037 -1114.78
+175.364 -48.3063 -1048.71
+177.322 -49.2683 -1029.66
+177.898 -48.4536 -1101.24
+177.296 -47.3216 -898.95
+174.955 -48.1579 -1132.9
+175.783 -49.7429 -994.17
+174.854 -45.2548 -1089.58
+175.879 -49.343 -1004.29
+177.264 -49.4284 -1048.27
+173.99 -48.3543 -1013.57
+177.477 -49.5559 -1044.46
+172.625 -48.361 -987.29
+177.893 -47.4118 -953.31
+177.758 -48.8857 -1141.45
+177.404 -47.9509 -1065.07
+174.566 -45.1619 -1027.7
+174.48 -48.2541 -1111.72
+177.952 -48.6199 -1078.79
+177.861 -48.1214 -1021.69
+177.523 -49.1762 -935.85
+172.846 -48.3398 -949.2
+175.653 -48.7279 -940.24
+177.678 -49.7182 -975.29
+172.367 -48.4144 -951.33
+177.725 -47.9589 -994.92
+174.301 -48.3973 -997.8
+175.728 -49.1513 -929.22
+177.768 -49.0847 -1066.25
+175.39 -49.9378 -941.64
+174.777 -48.2908 -988.64
+175.089 -48.3321 -929.26
+177.998 -48.7943 -990
+175.688 -48.9108 -924.35
+178.056 -48.2928 -997.2
+177.525 -49.3633 -1000.56
+175.747 -49.5523 -956.12
+177.986 -47.9648 -967.84
+178.475 -49.633 -903.43
+177.77 -49.2749 -978.17
+177.796 -49.4954 -945.22
+177.986 -49.7056 -883.11
+175.309 -48.4669 -884.84
+178.165 -49.5269 -812.81
+177.997 -49.36 -878.99
+173.226 -48.417 -900.65
+173 -48.4098 -924.16
+176.703 -47.5505 -804.76
+177.708 -47.5073 -874.34
+178.768 -49.3221 -890.3
+178.053 -48.9947 -956.61
+177.6 -47.8139 -976.66
+178.138 -48.1028 -917.73
+178.404 -49.4542 -741.55
+177.647 -47.6574 -922.12
+173.51 -48.44 -884.51
+178.652 -49.4861 -929.48
+176.98 -47.4249 -802.3
+178.202 -48.4959 -948.62
+178.008 -49.191 -974.65
+177.011 -47.6499 -825
+174.605 -48.4451 -946.49
+175.495 -48.6051 -908.56
+178.223 -48.7 -911.69
+175.606 -49.3595 -840.75
+174.118 -48.5674 -840.84
+178.244 -49.3115 -802.35
+177.347 -47.7116 -877.39
+172.812 -48.4826 -918.56
+173.796 -48.4846 -891.68
+173.357 -48.582 -750.88
+174.889 -48.4791 -857.7
+175.511 -49.73 -931.51
+175.113 -48.5134 -828.25
+178.217 -49.1421 -962.45
+178.232 -48.8633 -897.57
+178.855 -47.2881 -781.59
+173.059 -48.5841 -831.34
+175.151 -49.9064 -877.5
+175.476 -49.2279 -780.93
+172.572 -48.5342 -901.74
+178.502 -49.3245 -904.98
+177.912 -47.5914 -893.18
+174.45 -48.5954 -839.35
+177.876 -47.7904 -912.82
+178.386 -49.1947 -973.83
+178.38 -49.0237 -646.91
+178.324 -48.3469 -884.61
+174.898 -49.9729 -807.73
+175.255 -48.6384 -798.27
+178.492 -48.8212 -849.07
+178.485 -48.6153 -824.63
+175.422 -48.8092 -780.97
+177.473 -47.5137 -856.61
+175.452 -49.5214 -854.86
+178.51 -48.445 -791.49
+172.76 -48.6766 -839.87
+172.343 -48.5913 -762.38
+177.221 -47.5243 -745.5
+178.586 -49.172 -1040.84
+178.225 -47.9522 -721.71
+178.334 -48.2069 -850.73
+175.429 -49.0473 -750.75
+174.599 -49.9332 -796.21
+174.758 -48.6524 -658.65
+175.357 -49.3612 -732.82
+178.653 -49.0003 -983.73
+175.024 -48.6409 -771.36
+173.613 -48.6043 -749.78
+173.865 -48.6677 -742.12
+178.213 -47.4821 -757.68
+175.263 -49.7892 -692.39
+178.845 -49.151 -867.16
+178.107 -47.8461 -801.14
+173.48 -48.7117 -677.29
+178.521 -47.415 -657.8
+178.747 -48.8594 -798.52
+175.159 -48.7839 -713.98
+178.157 -47.697 -667.35
+178.908 -48.9767 -697.83
+173.259 -48.7678 -690.28
+178.549 -48.294 -694.75
+178.747 -48.7063 -777.79
+175.268 -49.2088 -649.17
+172.981 -48.7888 -756.59
+174.334 -48.7402 -737.11
+175.259 -49.635 -692.24
+174.098 -48.7667 -687.62
+178.385 -48.0585 -650.66
+174.402 -49.8807 -664.16
+178.576 -48.1513 -588.71
+174.578 -48.7733 -686.48
+178.813 -49.6933 -590.39
+178.745 -48.5372 -736.35
+172.503 -48.6962 -727.46
+174.961 -48.7702 -749.17
+174.465 -48.8646 -673.41
+174.467 -48.9915 -599.21
+174.285 -48.8906 -627.16
+174.814 -48.8519 -661.65
+174.646 -48.9353 -612.12
+175.244 -49.4842 -716.78
+175.037 -48.9103 -700.66
+175.157 -49.0598 -617.74
+175.068 -49.1854 -592.22
+175.244 -48.925 -678.84
+178.755 -48.3809 -643.44
+175.026 -49.7454 -638.08
+172.79 -48.8368 -705.41
+173.68 -48.7658 -635.62
+174.76 -49.7789 -652.6
+174.084 -48.9239 -660.71
+173.896 -48.8338 -651.82
+173.499 -48.8503 -621.06
+174.878 -49.0618 -597.6
+175.112 -49.3492 -617.14
+175.057 -49.5398 -619.22
+174.643 -49.0701 -545.89
+174.534 -49.7717 -647.26
+178.761 -47.3944 -578.94
+173.116 -48.9236 -657.79
+172.318 -48.7247 -635.4
+174.926 -49.2473 -535.25
+173.329 -48.9402 -614.01
+174.26 -49.0566 -563.82
+172.611 -48.8275 -664.57
+174.19 -49.8844 -609.71
+174.488 -49.1386 -548.18
+174.333 -49.7564 -578.08
+178.487 -47.5613 -491.89
+174.031 -49.053 -576.71
+173.92 -48.9563 -610.04
+172.904 -48.9442 -637.88
+178.807 -48.2342 -547.28
+173.728 -48.9321 -582.04
+178.343 -47.6296 -569.72
+174.84 -49.6031 -551.84
+173.526 -49.0082 -564.63
+174.33 -49.2223 -528.23
+173.977 -49.8972 -579.64
+178.297 -47.8235 -562.54
+174.704 -49.2257 -509.39
+173.211 -49.0341 -585.89
+172.404 -48.8413 -589.91
+174.854 -49.4096 -522.76
+173.773 -49.9584 -577.27
+173.363 -49.0796 -555.6
+173.863 -49.0389 -558.15
+174.637 -49.6343 -559.44
+172.706 -48.9572 -587.01
+174.176 -49.7447 -545.71
+174.131 -49.1795 -527.94
+173.03 -49.0826 -566.85
+173.564 -49.9245 -539.51
+174.439 -49.635 -533.93
+174.507 -49.2703 -514.91
+173.711 -49.0924 -523.84
+178.448 -47.9228 -458.51
+178.696 -47.5202 -410.12
+178.787 -48.0975 -419.81
+173.915 -49.1719 -525.38
+173.666 -49.8181 -507.72
+172.518 -48.9732 -529.17
+174.694 -49.5083 -511.69
+174.039 -49.782 -540.61
+174.232 -49.6217 -499.93
+173.222 -49.1509 -537.18
+173.359 -49.9673 -518.4
+172.814 -49.0802 -537.21
+172.298 -49.0009 -499.02
+174.614 -49.3843 -489.43
+178.502 -47.685 -408.67
+174.391 -49.3813 -475.96
+173.365 -49.1896 -516.64
+178.357 -47.7274 -524.53
+173.52 -49.1534 -508.9
+173.477 -49.8184 -504.82
+174.042 -49.2679 -505.63
+174.192 -49.3104 -483.71
+173.693 -49.2616 -485.84
+174.526 -49.51 -492.65
+173.855 -49.8055 -524.28
+173.588 -49.723 -489.36
+173.12 -49.9271 -505.12
+174.354 -49.521 -478.36
+174.085 -49.6787 -507.11
+174.175 -49.4592 -466.25
+174.036 -49.573 -475.43
+172.506 -49.9468 -483.94
+173.93 -49.6814 -493.88
+172.634 -49.8529 -480.49
+172.704 -49.7612 -467.39
+172.742 -49.9956 -491.92
+172.663 -49.6662 -451.83
+172.777 -49.5744 -445.41
+172.815 -49.8351 -480.31
+172.831 -49.706 -460.94
+172.924 -49.4541 -450.51
+172.965 -49.3184 -475.04
+172.632 -49.0845 -495.78
+172.901 -49.2067 -500.18
+173.084 -49.2348 -506.85
+173.121 -49.3721 -475.42
+173.149 -49.5138 -465.57
+173.201 -49.6604 -478.71
+173.322 -49.5604 -471.78
+173.271 -49.8056 -501.17
+173.427 -49.6744 -484.68
+172.936 -49.9111 -495.45
+173.028 -49.7813 -482.58
+172.988 -49.6157 -458.99
+173.264 -49.2781 -497.25
+173.338 -49.4198 -472
+173.454 -49.286 -485.89
+173.488 -49.5256 -466.57
+173.565 -49.4002 -465.39
+173.62 -49.6126 -474.28
+173.652 -49.4996 -463.95
+173.746 -49.6997 -484.25
+173.819 -49.5577 -468.8
+173.763 -49.4128 -473.71
+173.906 -49.3199 -489.58
+173.962 -49.4464 -471.27
+174.056 -49.3603 -484.46
+178.613 -48.0172 -433.95
+172.721 -49.196 -478
+172.354 -49.9158 -474.88
+172.557 -49.7426 -463.69
+172.585 -49.562 -435.46
+172.796 -49.3207 -460.24
+172.664 -49.436 -437.37
+178.492 -47.7993 -396.79
+178.892 -47.4951 -227.81
+172.516 -49.6483 -442.49
+172.451 -49.8317 -466.12
+178.813 -47.9821 -314.17
+172.574 -49.1846 -456.15
+172.482 -49.4768 -422.86
+172.461 -49.109 -459.75
+172.29 -49.1566 -393.87
+172.364 -49.7049 -441.04
+172.611 -49.2931 -444.37
+178.677 -47.6436 -301.12
+178.674 -47.8862 -340.16
+172.403 -49.5717 -423.69
+172.46 -49.3667 -416.51
+178.856 -47.6084 -173.25
+172.443 -49.2356 -419.01
+178.849 -47.8986 -256.64
+172.297 -49.4512 -406.14
+178.669 -47.759 -313.16
+172.258 -49.3009 -368.63
+178.824 -47.8184 -237.87
+178.83 -47.7163 -179.83
+185.469 -48.637 -5237.58
+185.764 -49.3427 -5344.89
+185.248 -48.2252 -5289.29
+185.123 -49.3903 -5284.97
+184.568 -49.4984 -5093.01
+184.551 -49.8662 -4854.93
+185.506 -47.3014 -5063.62
+184.818 -47.8775 -5018.25
+184.906 -48.6225 -5190.36
+184.753 -47.4359 -5007.49
+185.312 -48.986 -5303.68
+184.473 -48.2193 -5159.1
+184.267 -47.7321 -5012.93
+184.862 -46.9925 -4963.59
+184.595 -49.0498 -5171.52
+185.435 -46.7679 -4776.29
+183.783 -48.0214 -4849.94
+183.993 -48.8869 -5136.62
+184.302 -46.7231 -4897.1
+183.485 -48.7578 -5006.16
+183.165 -47.8452 -4895.43
+184.831 -46.6304 -4779.51
+183.022 -47.4136 -4728.18
+183.472 -47.0867 -4884.1
+183.682 -46.6928 -4798.87
+183.229 -48.3299 -4972.01
+184.02 -49.3067 -4939.25
+185.104 -46.3434 -4705.88
+184.508 -46.3312 -4577.85
+185.73 -46.3713 -4536.03
+182.805 -47.0099 -4701.36
+182.944 -48.7357 -4980.45
+183.099 -46.6824 -4611.98
+181.596 -49.4258 -3820.96
+182.6 -47.6899 -4774.3
+182.448 -47.3027 -4670.19
+182.548 -46.6406 -4542.37
+182.421 -48.7713 -4797.1
+181.337 -49.6667 -4047.29
+181.423 -47.8641 -3914.94
+183.925 -46.3439 -4734.1
+182.241 -46.9333 -4589.04
+185.369 -45.9901 -4532.31
+184.762 -45.9816 -4218.87
+182.043 -47.5839 -4753
+181.754 -49.751 -4079.68
+184.174 -49.6504 -4368.95
+182.81 -46.3437 -4542.87
+181.676 -46.8674 -4516.85
+185.655 -45.6575 -4336.89
+185.415 -45.3267 -4391.94
+182.215 -49.0638 -4508.67
+181.728 -49.1122 -4191.77
+180.931 -49.7579 -4068.04
+182.256 -49.8421 -3626.09
+182.556 -46.0476 -4394.28
+183.598 -45.9678 -4201.66
+181.065 -49.4449 -3760.98
+183.476 -49.3534 -3780.7
+185.018 -45.611 -4328.82
+184.568 -45.3557 -3737.67
+182.428 -49.3227 -4082.5
+184.412 -45.6893 -3995.59
+182.699 -49.0556 -4456.82
+183.581 -45.5872 -3974.4
+182.949 -49.3927 -3444.23
+184.029 -45.4105 -3436.72
+184.25 -45.0785 -3090.4
+180.474 -46.1091 -3382.69
+182.579 -49.6172 -2689.6
+183.582 -45.2726 -2806.67
+181.252 -47.2959 -3285.82
+179.475 -49.8791 -2656.21
+180.984 -45.4155 -2906.93
+183.192 -45.3956 -2961.13
+181.558 -45.2687 -3010.12
+179.718 -46.3123 -3324.63
+182.257 -45.2134 -2725.31
+181.214 -45.2108 -2720.53
+180.179 -45.9199 -3227.65
+182.778 -45.2161 -2420.61
+179.394 -46.4876 -3184.98
+183.757 -49.6249 -2152.66
+178.994 -46.6171 -2700.34
+180.892 -48.6874 -2388.09
+179.827 -45.7293 -2960.4
+179.731 -49.4849 -1902.67
+181.857 -45.0928 -2273.56
+179.402 -46.7546 -2808.59
+181.222 -48.0858 -3785.37
+180.73 -49.1599 -2566.98
+179.874 -45.4162 -2521.61
+181.14 -48.512 -3078.13
+180.918 -47.3965 -2021.88
+179.728 -46.8868 -2647.79
+179.97 -45.2069 -2698.32
+179.093 -46.9182 -2308.91
+180.865 -45.1779 -2513.15
+180.236 -45.3002 -2496.35
+182.962 -49.6949 -1469.31
+179.882 -45.054 -2542.78
+180.995 -48.2816 -2053.54
+181.239 -47.6002 -2031
+182.76 -49.8986 -1701.88
+179.432 -47.0079 -2038.01
+179.475 -49.438 -1529.79
+180.515 -45.1341 -2374.84
+180.168 -45.0542 -2166.03
+180.632 -48.8584 -2056.31
+180.259 -49.2574 -2232.95
+184 -49.9501 -2521.21
+180.322 -48.9903 -1240.23
+179.717 -47.1284 -1551.64
+180.617 -47.2497 -2226.03
+179.898 -49.2987 -1473.49
+179.594 -49.3021 -1391.26
+183.318 -49.6375 -1487.73
+180.773 -48.4773 -1246.27
+183.571 -49.8504 -1538.78
+179.194 -47.1421 -1471.9
+179.322 -49.3025 -1167.56
+179.988 -49.086 -1106.95
+180.583 -48.6469 -1146.54
+183.208 -49.8933 -1380.52
+180.826 -47.6335 -1436.26
+180.731 -48.3055 -1490.91
+180.02 -48.8672 -889.98
+180.332 -47.3591 -975.52
+180.59 -47.4683 -1207.29
+180.305 -48.7452 -916.72
+179.696 -49.1369 -1072.83
+179.457 -47.2172 -1131.82
+181.003 -47.8568 -1316.8
+180.897 -48.0781 -939.42
+180.775 -48.1911 -1361.7
+179.44 -49.1514 -778.19
+180.384 -48.5852 -832.85
+179.724 -48.9451 -823.06
+180.003 -47.2755 -1047.53
+179.046 -49.315 -1142
+180.522 -48.5105 -981.78
+180.547 -48.3734 -869.16
+179.782 -48.7508 -791.18
+180.012 -48.6799 -738.49
+180.355 -47.5266 -587.81
+179.049 -47.272 -819.46
+180.184 -48.5759 -713.51
+179.542 -49.0344 -720.63
+179.267 -47.3027 -599.33
+179.676 -47.3436 -544.39
+180.71 -47.7882 -833.42
+179.54 -48.794 -774.97
+179.144 -49.1183 -712.71
+180.325 -48.4477 -715.11
+179.815 -48.6059 -663.09
+179.49 -48.9249 -704.45
+180.563 -48.1951 -837.52
+179.581 -48.6129 -722.57
+179.967 -48.528 -601.49
+179.333 -48.8487 -668.89
+179.162 -48.773 -686.78
+178.958 -48.807 -699.46
+179.348 -49.001 -595.82
+179.138 -48.9222 -630.97
+180.688 -48.0806 -673.91
+180.718 -47.9434 -650.39
+179.049 -48.6162 -723.41
+179.334 -48.6957 -721.72
+180.117 -48.4513 -598.07
+180.512 -47.6679 -690.74
+178.938 -48.4609 -654.12
+180.355 -48.2786 -567.83
+179.733 -48.4576 -541.38
+180.11 -47.5009 -515.16
+180.156 -48.3285 -532.45
+179.332 -48.5353 -647.14
+180.517 -47.8424 -605.73
+178.979 -48.3417 -566.96
+179.94 -48.3628 -520.13
+179.511 -48.4645 -579.47
+179.866 -47.4595 -492.19
+179.446 -47.3668 -384.72
+179.142 -48.4399 -593
+180.345 -48.1188 -471.32
+180.178 -48.191 -449.28
+180.256 -47.6433 -319.2
+179.019 -48.2413 -430.25
+180.495 -48.0058 -465.83
+179.352 -48.3914 -492.8
+179.738 -48.3029 -414.07
+180.333 -47.7729 -372.28
+180.014 -48.2344 -446.57
+180.362 -47.8909 -401.73
+179.855 -48.2367 -394.59
+179.542 -48.3314 -394.83
+179.191 -48.2971 -404.29
+180.283 -47.9826 -392.58
+180.174 -47.7384 -268.44
+180.06 -47.6552 -290.94
+180.168 -48.0635 -390.94
+179.696 -47.4802 -381.01
+180.191 -47.8573 -342.83
+180.03 -48.1226 -362.49
+178.969 -48.1508 -359.47
+179.938 -47.5761 -284.49
+180.039 -47.773 -287.02
+178.955 -47.387 -215.02
+179.373 -48.2852 -309.21
+180.134 -47.9625 -334.94
+179.141 -48.1809 -296.21
+179.912 -48.1613 -313.72
+180.012 -47.8892 -267.29
+179.621 -48.224 -237.81
+179.138 -47.3877 -287.26
+179.782 -47.5717 -233.88
+179.554 -47.4534 -221.43
+179.308 -48.1981 -259.95
+180.019 -48.0082 -290.98
+179.303 -47.4159 -140.65
+179.736 -48.2124 -279.08
+179.92 -47.8041 -228.2
+179.87 -48.0639 -231.37
+179.09 -48.0985 -244.2
+179.872 -47.6931 -208.09
+179.791 -48.1488 -232.26
+178.963 -48.0485 -251.32
+178.991 -47.9422 -218.07
+178.941 -47.8601 -204.82
+178.964 -47.783 -144.77
+178.992 -47.6852 -127.51
+179.026 -47.5806 -155.51
+179.064 -47.4795 -152.94
+179.413 -48.1187 -209.82
+179.373 -48.0412 -183.26
+179.515 -48.0364 -185.56
+179.41 -47.9696 -171.72
+179.565 -48.135 -213.68
+179.52 -47.9508 -173.43
+179.449 -47.893 -176.9
+179.638 -47.9698 -182.37
+179.36 -47.8258 -160.89
+179.586 -47.8887 -174.04
+179.502 -47.8163 -162.77
+179.409 -47.7479 -134.52
+179.442 -47.6697 -152.24
+179.55 -47.7355 -152.08
+179.648 -47.8086 -175.53
+179.579 -47.6516 -142.73
+179.461 -47.5846 -148.19
+179.743 -47.8953 -191.85
+179.696 -47.7208 -163.94
+179.608 -47.5563 -185.49
+179.478 -47.5132 -157.95
+179.422 -47.4523 -159.68
+179.709 -47.6395 -161.05
+179.792 -47.7981 -195.75
+179.335 -47.5129 -153.48
+179.323 -47.6103 -151.77
+179.325 -47.688 -147.08
+179.267 -47.7529 -143.71
+179.315 -47.9074 -171.29
+179.174 -47.6614 -147.31
+179.217 -47.8377 -145.4
+179.276 -47.993 -176.5
+179.114 -47.7624 -141.24
+179.167 -47.9258 -177.41
+179.249 -48.0941 -205.86
+179.065 -47.8519 -149.38
+179.125 -48.0181 -195.52
+179.469 -48.2139 -246.76
+179.68 -48.158 -205.18
+179.689 -48.0697 -195.31
+179.766 -47.9882 -195.55
+179.873 -47.8672 -212.05
+179.884 -47.9511 -215.18
+179.185 -47.5526 -140.28
+179.202 -47.4698 -177.69
+189.107 -48.3229 -5290.17
+190.573 -49.4624 -5289.63
+191.19 -49.6369 -5242.3
+190.995 -49.2264 -5312.22
+187.739 -49.1883 -5454.67
+187.383 -48.9159 -5481.74
+188.127 -49.5632 -5275.16
+190.673 -49.8317 -5170.62
+189.009 -47.9235 -5235.84
+186.814 -48.8684 -5496.65
+187.217 -48.583 -5322.79
+187.967 -48.74 -5322.44
+190.458 -49.1397 -5207.88
+188.405 -48.2173 -5306.02
+187.062 -49.8303 -5180.9
+187.005 -48.2493 -5274.58
+188.914 -47.5561 -5191.76
+192.142 -45.8279 -5314.46
+191.297 -48.9777 -5279.55
+186.797 -49.4566 -5384.66
+192.315 -46.5514 -5315.45
+189.615 -48.1555 -5255.62
+188.486 -49.1923 -5221.44
+187.603 -48.2748 -5301.18
+191.943 -46.1315 -5441.95
+191.875 -49.8429 -5221.56
+186.563 -47.9422 -5294.7
+188.398 -47.6919 -5155.23
+190.185 -49.6425 -5255.96
+187.202 -47.9954 -5307.95
+189.568 -47.6495 -5200.62
+192 -45.4151 -5268.84
+188.495 -47.2761 -5181.49
+189.559 -48.5919 -5228.21
+187.754 -49.885 -5243.07
+191.655 -45.7308 -5196.51
+188.904 -48.763 -5256.12
+191.653 -46.508 -5355
+186.482 -48.4427 -5231.48
+186.613 -49.1433 -5362.04
+191.326 -46.0377 -5274.47
+189.104 -47.2394 -5227.04
+190.733 -48.8081 -5251.41
+192.125 -47.0244 -5418.64
+187.091 -47.6317 -5241.11
+190.847 -47.8582 -5008.84
+191.439 -45.3783 -5330.93
+190.889 -46.3835 -5398.7
+190.715 -45.8726 -5287.54
+190.063 -48.877 -5263.76
+187.752 -47.8593 -5195.08
+191.323 -48.6296 -5361.14
+191.102 -45.5999 -5368.66
+186.992 -47.2078 -5087.93
+191.346 -46.925 -5404.58
+190.236 -47.9915 -5249.59
+189.539 -48.9591 -5290.37
+188.699 -46.9009 -5096.97
+190.171 -48.4558 -5332.55
+191.39 -48.1961 -5274.08
+189.626 -49.639 -5262.78
+186.307 -49.7184 -5376.33
+191.705 -49.318 -5337.77
+191.73 -48.9065 -5233
+190.288 -47.5141 -5145.03
+190.359 -47.1344 -5308.34
+190.126 -46.8366 -5373.97
+190.326 -46.0911 -5410.98
+190.22 -46.471 -5440.89
+190.128 -45.7086 -5194.88
+189.767 -47.1279 -5312.36
+189.244 -49.2488 -5224.9
+188.89 -49.6124 -5208.13
+189.955 -45.2597 -5216.98
+185.894 -48.0909 -5114.43
+189.1 -45.8425 -4931.29
+186.355 -47.4028 -5193.67
+185.964 -47.0344 -5080.25
+191.407 -47.7792 -5288.31
+192.037 -48.0308 -5273.36
+190.543 -45.4203 -5298.04
+189.953 -49.2888 -5217.81
+191.926 -48.5566 -5259.94
+185.826 -48.4602 -5258.32
+186.307 -49.3104 -5324.45
+186.056 -48.891 -5310.28
+190.654 -46.8468 -5273.62
+189.549 -45.5811 -5106.89
+189.221 -46.8823 -5201.39
+189.608 -46.5998 -5362.95
+191.726 -47.4549 -5416.9
+187.752 -47.3609 -5200.11
+186.469 -47.0048 -5212.5
+186.888 -46.9087 -4928.08
+190.946 -47.343 -5359.02
+188.055 -46.9258 -5299.41
+189.177 -46.233 -5034.72
+189.054 -45.4582 -5018.26
+188.282 -46.5361 -5222.44
+187.398 -46.9378 -4992.87
+188.928 -46.5436 -5278.07
+186.098 -46.7224 -5026.4
+190.801 -48.3223 -5328.93
+186.582 -46.7384 -5078.73
+189.719 -46.0682 -5230.21
+187.621 -46.5788 -4992.77
+188.545 -46.0985 -5265.36
+187.007 -46.6394 -5038.7
+189.349 -45.1534 -5124.63
+188.558 -45.5848 -5005.53
+187.807 -46.1786 -5064.24
+187.949 -45.7366 -4927.86
+187.139 -46.2627 -4960.61
+186.454 -46.3837 -4881.16
+188.031 -45.2706 -4813.19
+187.274 -45.8366 -4862.78
+188.672 -45.1021 -4777.24
+187.416 -45.402 -4779.64
+186.628 -45.9455 -4695.11
+187.537 -45.046 -4655.49
+185.995 -46.0062 -4752.87
+185.986 -45.3563 -4790.1
+186.68 -45.4664 -4733.28
+186.186 -45.6878 -4612.26
+186.978 -45.0692 -4400.74
+193.002 -45.9285 -5306.46
+192.604 -46.1489 -5381.16
+192.97 -46.6118 -5274.05
+193.285 -46.2751 -5411.8
+193.008 -45.6327 -5246.7
+192.568 -45.7163 -5346.34
+193.324 -45.3284 -5475.17
+192.688 -46.9096 -5271.97
+193.544 -45.8665 -5337.75
+193.935 -46.3669 -5423.63
+192.634 -45.3031 -5475.8
+193.885 -45.5661 -5353.54
+192.748 -47.2508 -5232.33
+193.623 -46.7324 -5498.39
+192.498 -47.6268 -5259.21
+193.282 -47.1095 -5317.36
+192.417 -49.5715 -5261.94
+194.583 -46.4836 -5240.06
+193.103 -49.7917 -5205.4
+192.939 -49.3979 -5177.31
+193.91 -45.2142 -5371.37
+192.382 -49.0469 -5217.07
+194.316 -45.9492 -5189.71
+192.672 -48.0732 -5227.34
+193.165 -47.5934 -5250.49
+194.262 -46.8116 -5162.55
+193.231 -49.0391 -5141.26
+192.661 -48.5185 -5149.82
+193.027 -47.9245 -5195.82
+194.337 -45.5042 -5360.95
+193.552 -49.5266 -5124.58
+193.325 -48.6416 -5225.76
+193.991 -47.1496 -5393.24
+193.169 -48.2838 -5129.15
+194.534 -45.1238 -5231.94
+193.831 -47.5596 -5257.92
+193.818 -49.9618 -5236.76
+193.646 -48.0335 -5234.01
+195.086 -46.5885 -5151.48
+193.856 -48.8791 -5265.42
+194.989 -46.2009 -5430.53
+193.752 -48.4843 -5192.84
+194.902 -46.9305 -5164.43
+194.503 -47.1383 -5124.65
+195.024 -45.6777 -5419.17
+193.976 -49.2807 -5229.46
+195.176 -45.2263 -5472.37
+194.187 -48.3255 -5185.61
+194.347 -48.685 -5193.62
+194.467 -47.4832 -5259.17
+195.489 -46.8561 -4997
+195.456 -46.091 -4997
+194.444 -47.9695 -5178.94
+195.516 -46.4547 -4997
+194.474 -49.0978 -5256.39
+196.609 -49.2939 -4997
+196.952 -49.834 -4997
+194.75 -48.4342 -5142.72
+194.217 -49.6908 -5145.98
+196.422 -47.0745 -4997
+195.707 -45.488 -4997
+198.491 -49.9653 -4997
+197.659 -47.1349 -4997
+194.89 -47.3166 -5201.16
+195.449 -49.1585 -4997
+195.126 -47.7392 -5108.76
+198.871 -48.5514 -4997
+195.932 -49.186 -4997
+195.597 -48.9001 -4997
+198.512 -48.2115 -4997
+195.924 -47.0762 -4997
+198.136 -48.4406 -4997
+195.012 -48.8874 -5182.13
+195.876 -47.7697 -4997
+196.165 -47.4259 -4997
+196.862 -48.1162 -4997
+197.866 -49.2021 -4997
+197.456 -47.4922 -4997
+198.573 -49.5016 -4997
+195.664 -48.1853 -4997
+197.362 -49.4591 -4997
+197.09 -48.9766 -4997
+194.522 -49.4504 -5205.47
+196.919 -48.4944 -4997
+197.044 -47.0777 -4997
+195.491 -47.2975 -4997
+197.651 -48.7195 -4997
+196.778 -47.4514 -4997
+197.737 -49.8849 -4997
+198.788 -45.8795 -4997
+195.074 -48.1744 -5126.47
+196.525 -47.7985 -4997
+198.002 -49.6009 -4997
+195.386 -48.5435 -5051.71
+197.374 -46.662 -4997
+198.518 -48.955 -4997
+196.34 -48.1796 -4997
+198.118 -46.4639 -4997
+197.152 -47.8456 -4997
+196.011 -46.7319 -4997
+196.163 -49.6119 -4997
+196.196 -48.7133 -4997
+198.571 -47.9237 -4997
+198.258 -47.5008 -4997
+198.197 -46.9683 -4997
+198.897 -45.5032 -4997
+195.556 -49.8348 -4997
+195.633 -49.429 -4997
+195.071 -49.377 -5303.02
+198.444 -45.0797 -4997
+198.218 -45.5228 -4997
+194.853 -49.7812 -5217.16
+196.609 -46.684 -4997
+196.731 -46.2922 -4997
+197.298 -46.0504 -4997
+196.87 -45.5666 -4997
+196.942 -45.083 -4997
+197.932 -47.9537 -4997
+197.682 -45.1394 -4997
+197.51 -45.558 -4997
+198.114 -45.9687 -4997
+197.439 -48.2619 -4997
+198.826 -46.3074 -4997
+198.957 -46.8066 -4997
+196.057 -46.2714 -4997
+196.37 -45.8413 -4997
+196.28 -45.2781 -4997
+195.713 -45.866 -4997
+200.154 -49.7584 -4997
+204.294 -49.0325 -4997
+200.972 -48.3167 -4997
+200.49 -49.1448 -4997
+199.465 -45.5534 -4997
+200.982 -49.8101 -4997
+201.197 -49.4167 -4997
+201.711 -49.8545 -4997
+202.502 -47.8626 -4997
+204.086 -48.7091 -4986.81
+205.108 -49.5645 -4997
+203.052 -47.8989 -4997
+205.573 -49.3231 -4997
+201.105 -45.7437 -4997
+199.97 -49.2737 -4997
+200.783 -48.6482 -4997
+201.376 -48.7249 -4997
+201.762 -48.4405 -4997
+199.967 -45.4128 -4997
+205.337 -50.0037 -4997
+200.969 -48.974 -4997
+201.715 -45.8602 -4997
+201.672 -49.1153 -4997
+203.122 -48.6463 -4997
+200.281 -48.4045 -4997
+204.406 -49.7737 -4997
+199.644 -48.5613 -4997
+204.867 -45.6135 -4846.76
+201.008 -45.2659 -4997
+203.892 -49.2677 -4997
+202.994 -49.0538 -4997
+201.955 -47.8229 -4997
+199.369 -48.9377 -4997
+203.539 -49.5259 -4997
+202.845 -49.5374 -4997
+200.576 -45.4563 -4997
+199.303 -49.9218 -4997
+200.325 -45.1351 -4982.35
+203.652 -48.8772 -4997
+199.303 -49.381 -4997
+204.933 -49.1644 -4997
+199.709 -48.1207 -4997
+202.688 -44.905 -4997
+199.788 -45.0204 -4832.12
+200.554 -49.4803 -4997
+202.335 -49.2138 -4997
+204.526 -49.3606 -4997
+202.184 -48.155 -4997
+200.344 -48.7838 -4997
+204.653 -48.7719 -4902.68
+200.992 -47.6738 -4997
+200.318 -48.0248 -4997
+202.927 -48.2488 -4997
+200.822 -47.9217 -4997
+202.509 -48.5656 -4997
+205.451 -45.4992 -4997
+199.296 -45.7969 -4997
+203.559 -49.9969 -4997
+199.07 -48.1868 -4997
+202.056 -49.5204 -4997
+202.576 -49.9848 -4997
+201.468 -47.9903 -4997
+205.431 -45.9173 -4835.23
+202.097 -48.8546 -4997
+199.95 -48.9398 -4997
+199.823 -47.7864 -4997
+199.62 -47.4537 -4997
+200.344 -47.6176 -4997
+199.44 -47.1272 -4997
+199.631 -46.9145 -4997
+200.006 -47.2067 -4997
+199.547 -46.5774 -4997
+199.433 -46.1482 -4997
+203.578 -48.4955 -4997
+203.54 -48.1176 -4928.07
+203.485 -47.7631 -4796.22
+201.536 -46.114 -4997
+201.4 -46.3887 -4997
+201.653 -46.7518 -4997
+201.543 -47.1805 -4997
+201.48 -47.5744 -4997
+200.188 -46.8711 -4997
+202.092 -47.5175 -4997
+202.253 -47.1454 -4997
+202.419 -46.7841 -4731.57
+201.983 -46.4356 -4997
+202.145 -46.1166 -4761.21
+200.782 -47.2776 -4997
+200.908 -46.8309 -4997
+201.001 -46.5071 -4997
+200.802 -46.1154 -4997
+199.938 -45.8828 -4997
+200.255 -46.4195 -4997
+200.476 -45.724 -4997
+201.651 -45.1868 -4667.88
+205.369 -48.8894 -4900.75
+204.328 -45.7288 -4489.01
+201.627 -45.553 -4548.24
+205.164 -45.0955 -4371.83
+202.819 -47.5193 -4897.45
+199.252 -45.1639 -4997
+204.227 -48.3682 -4829.53
+204.968 -48.4749 -4755.03
+203.455 -47.3983 -4650.59
+205.529 -48.5754 -4754.99
+203.989 -47.9856 -4700.46
+202.161 -45.7738 -4515.51
+202.896 -47.1148 -4681.31
+202.258 -45.1499 -3944.16
+204.634 -48.0195 -4635.74
+204.041 -47.6678 -4543.81
+205.378 -48.2307 -4622.8
+203.463 -47.0457 -4493.4
+202.981 -46.8197 -4508.66
+204.894 -46.0234 -4369.41
+204.604 -47.5862 -4448.01
+202.721 -46.4583 -4375.14
+205.212 -47.8282 -4465.29
+204.852 -45.2572 -3513.9
+204.346 -46.1053 -4090.79
+204.032 -47.3088 -4392.65
+203.407 -46.6953 -4352.76
+203.815 -45.8359 -3720.08
+205.092 -47.4792 -4354.92
+204.222 -45.2447 -3906.36
+204.016 -46.9351 -4237.87
+203.374 -45.1051 -3808.89
+204.616 -47.2149 -4282.53
+203.322 -46.3177 -4173.41
+202.715 -46.0337 -4154.23
+202.08 -45.4605 -3347.61
+203.928 -46.5573 -4106.5
+205.342 -47.1471 -4184.4
+204.62 -46.7679 -4084.26
+203.837 -46.1938 -3864.36
+203.279 -45.9318 -3997
+205.275 -46.7117 -3998.03
+202.66 -45.6037 -3997
+204.318 -46.4066 -3997
+203.291 -45.5442 -3107.21
+202.841 -45.2658 -4000.54
+205.532 -46.3648 -3997
+204.843 -46.4022 -3997
+203.806 -45.4917 -3530.94
+205.905 -49.7759 -4997
+206.203 -49.4236 -4997
+207.244 -45.8282 -4997
+207.951 -46.267 -4997
+207.832 -47.9145 -4997
+208.12 -45.3718 -4997
+208.847 -47.9407 -4997
+209.357 -45.9904 -4997
+208.723 -45.6948 -4997
+207.359 -46.1707 -4997
+206.831 -45.9333 -4997
+208.688 -45.1568 -4997
+207.633 -45.9328 -4997
+208.222 -47.6048 -4997
+205.728 -45.1495 -4997
+208.421 -48.2075 -4997
+206.721 -49.8121 -4997
+207.771 -48.2815 -4997
+209.44 -48.8416 -4997
+205.87 -45.8429 -4603.18
+206.76 -49.4119 -4997
+206.378 -49.107 -4935.23
+206.217 -45.6023 -4997
+208.827 -48.6988 -4997
+208.237 -48.5918 -4997
+208.098 -44.8981 -4997
+209.153 -48.3635 -4997
+206.373 -45.1631 -4997
+208.103 -45.8425 -4997
+207.488 -47.5726 -4997
+206.864 -45.533 -4997
+207.177 -49.6649 -4997
+206.838 -49.1242 -4997
+207.027 -48.6155 -4997
+207.217 -48.9821 -4997
+207.132 -48.2878 -4992.02
+207.281 -49.3717 -4997
+207.567 -46.6262 -4997
+207.455 -46.9918 -4997
+207.65 -47.2917 -4997
+207.084 -47.1656 -4868.6
+207 -46.7556 -4935.69
+206.912 -46.3434 -4997
+207.765 -49.7347 -4997
+206.974 -45.117 -4997
+207.568 -45.041 -4997
+207.686 -48.7284 -4997
+208.453 -49.0419 -4997
+208.436 -49.4012 -4997
+207.878 -49.2717 -4997
+208.26 -49.6181 -4997
+209.436 -47.9977 -4687.52
+209.163 -49.1726 -4997
+207.507 -45.534 -4997
+208.756 -49.6876 -4997
+208.831 -49.3867 -4997
+208.682 -46.2546 -4997
+207.958 -47.0883 -4997
+208.492 -47.2058 -4997
+208.358 -46.7383 -4997
+206.564 -48.7751 -4901.79
+209.344 -45.4585 -4941.24
+206.345 -46.0587 -4563.95
+207.258 -47.9058 -4917.52
+208.998 -47.5145 -4869.77
+205.899 -49.1114 -4954.44
+208.934 -46.6775 -4934.25
+205.958 -48.8184 -4822.97
+208.931 -47.0355 -4918.17
+206.509 -48.3397 -4726.79
+209.385 -46.4714 -4761.81
+209.325 -49.6216 -4834.46
+206.584 -46.8816 -4531.77
+206.324 -46.487 -4390.97
+206.821 -47.4991 -4580.88
+209.472 -47.2035 -4699.69
+205.972 -48.4635 -4667.9
+209.338 -46.8426 -4763.04
+209.581 -47.5997 -4651.04
+206.515 -47.1525 -4378.24
+206.487 -47.8648 -4552.5
+205.878 -48.0474 -4494.46
+205.906 -46.1372 -3788.74
+205.684 -47.6194 -4335.93
+205.959 -46.8615 -3997
+206.125 -47.3545 -4212
+157.375 -50.0929 -4374.69
+157.235 -53.4204 -4077.04
+157.192 -53.9136 -4242.36
+157.126 -50.528 -4397.12
+157.602 -53.0163 -4303.66
+157.336 -54.2814 -4162.54
+157.355 -50.7912 -4315.83
+157.164 -51.4566 -4362.05
+157.373 -51.1264 -4314.66
+157.475 -52.1567 -4286.06
+157.226 -51.8234 -4246.24
+157.369 -52.5744 -4227.15
+157.13 -54.5939 -3892.56
+157.445 -54.817 -3689.8
+161.266 -51.9689 -4090.79
+163.513 -54.0584 -4157.05
+159.382 -54.4813 -5073.17
+161.372 -52.2531 -4979.17
+159.45 -54.8101 -4804.19
+161.403 -51.6797 -2347.59
+159.535 -54.1069 -4552.96
+160.776 -52.49 -3259.4
+162.226 -50.173 -4296.02
+161.843 -53.9002 -4011.39
+160.832 -52.834 -3888.74
+162.126 -51.566 -4481.16
+161.872 -51.9568 -4393.68
+161.223 -54.0436 -4577.13
+159.544 -53.4892 -4033.34
+159.948 -54.6544 -4476.19
+159.986 -53.1897 -3582.12
+162.122 -54.845 -4723.45
+162.775 -54.6831 -4484.58
+162.89 -54.2798 -4436.49
+162.191 -54.4926 -4481.45
+161.657 -54.2929 -4445.64
+160.701 -53.1913 -4003.88
+160.574 -54.7539 -4299.48
+159.67 -53.7845 -4272.78
+162.411 -53.7231 -4531.99
+163.893 -52.2057 -4239.85
+161.426 -54.7468 -4507.39
+158.089 -50.0893 -4545.53
+164.45 -52.3824 -3484.02
+160.989 -54.4167 -4647.14
+164.34 -52.7574 -3534.56
+160.256 -53.5556 -4173.48
+163.392 -52.0526 -4328.7
+159.327 -50.6269 -4488.07
+164.182 -53.097 -3502.75
+160.006 -54.3052 -5020.32
+157.914 -53.3691 -4489.29
+159.564 -50.9207 -4501.88
+163.494 -53.7381 -4362.89
+163.935 -53.4648 -4399.28
+158.179 -53.0645 -4198.45
+163.341 -54.9396 -4201.95
+163.568 -54.4746 -4626.49
+158.31 -53.6989 -4405.41
+163.084 -53.4241 -4325.54
+164.032 -53.8302 -4275.6
+162.948 -53.8946 -4366.69
+164.719 -51.6344 -4067.17
+158.837 -50.0301 -4672.71
+161.452 -50.2195 -4023.02
+158.813 -50.9456 -4251.5
+160.147 -53.9529 -4172.68
+158.512 -51.4506 -4305.35
+159.187 -51.2495 -3978.2
+160.028 -50.0517 -4336.66
+162.145 -51.2628 -4271.92
+158.352 -50.3737 -4390.47
+164.565 -53.3157 -4253.12
+157.692 -53.7027 -4241
+161.684 -51.3533 -1731.83
+157.855 -54.066 -4243.51
+159.276 -53.9119 -3607.3
+159.42 -50.2758 -4029.22
+161.88 -50.506 -3987.06
+161.478 -52.6776 -3965.82
+158.533 -53.2967 -4315.18
+160.69 -50.1392 -4134.28
+158.833 -50.4971 -4418.45
+157.76 -50.5064 -4440.62
+162.885 -52.2832 -3877.44
+161.335 -50.5917 -3943.11
+158.944 -53.5413 -3682.97
+158.704 -52.9397 -4217.15
+158.42 -54.0272 -3963.66
+162.33 -54.097 -4348.66
+160.004 -50.4956 -4200.65
+158.085 -51.1032 -4255.94
+161.778 -53.4019 -3622.85
+161.599 -50.8191 -3770.52
+160.994 -50.8755 -4327.71
+158.266 -50.727 -4266.35
+160.782 -50.5395 -4028.93
+157.765 -50.8612 -4286.54
+164.853 -51.4017 -3957.84
+159.403 -52.5947 -4407.12
+159.284 -52.3411 -4515.86
+159.206 -52.0132 -4361.35
+157.935 -51.8426 -4284.91
+158.055 -52.2395 -4238.44
+158.202 -52.6816 -4069.15
+158.909 -52.612 -4286.22
+158.709 -52.2928 -4296.7
+157.718 -51.4689 -4323.89
+160.302 -50.9015 -4064.48
+159.25 -53.1534 -3917.93
+158.611 -51.9091 -4395.15
+159.203 -51.6159 -4031.6
+162.481 -50.4632 -3519.58
+158.324 -54.3091 -3878.88
+159.828 -52.404 -3713.32
+159.859 -51.3292 -3881.84
+164.415 -51.371 -4262.75
+160.423 -54.4623 -4506.18
+160.354 -52.9475 -4324.87
+164.101 -54.1685 -4378.69
+162.832 -50.1853 -3751.36
+159.648 -52.1303 -3701.66
+162.878 -51.9151 -4032.12
+164.515 -53.6297 -3154.27
+159.214 -52.8199 -4315.15
+162.42 -51.0331 -3499.92
+161.244 -53.0142 -3483.24
+161.954 -53.6111 -3838.82
+160.683 -51.2588 -3742.42
+162.284 -53.38 -3991.24
+162.103 -52.3568 -3443.76
+158.857 -53.8796 -2317.62
+160.596 -54.1658 -4182.39
+162.95 -50.4511 -2155.38
+164.805 -51.1616 -3637.32
+160.129 -52.101 -3236.19
+159.824 -51.7959 -3697.75
+157.765 -54.5096 -4134.3
+163.213 -51.3053 -3898.74
+162.761 -51.6012 -4057.44
+158.341 -54.634 -4019.25
+163.302 -50.2736 -1863.14
+161.184 -51.4043 -3596
+163.955 -50.8726 -3742.91
+161.336 -51.1307 -3241.2
+157.952 -54.8397 -4048.75
+164.252 -54.4684 -3135.38
+161.859 -53.0721 -3714.45
+161.891 -51.0586 -2000.61
+164.058 -54.7837 -2987.4
+160.765 -53.8101 -4064.16
+158.802 -54.4378 -907.25
+160.904 -53.4975 -3256.1
+158.772 -54.1624 -2683.78
+164.546 -50.3433 -3509.14
+164.449 -50.6977 -3093.18
+160.32 -51.5636 -3423.84
+160.813 -51.5988 -3360.91
+160.234 -52.5473 -2055.9
+159.825 -52.7972 -3355.53
+161.328 -53.3007 -3906.99
+159.258 -53.7213 -2438.45
+160.75 -52.1126 -2473.79
+164.644 -54.9556 -3179.45
+162.6 -51.3028 -3017.86
+164.066 -50.5276 -2880.37
+162.884 -51.0581 -2875.31
+161.4 -53.6521 -3444.37
+164.62 -53.9593 -2321.82
+160.448 -51.8355 -3224.62
+160.336 -52.328 -3124.29
+163.365 -50.9051 -2336.34
+164.082 -50.2276 -2744
+162.183 -50.7694 -2664.06
+158.384 -54.8923 -3302.89
+162.805 -50.7497 -2625.19
+163.691 -50.3954 -1778.67
+163.676 -50.6563 -1763.37
+164.51 -54.6671 -1939.48
+163.299 -50.5719 -1584.26
+164.598 -54.2654 -1096.92
+160.929 -51.8423 -2900.71
+164.653 -54.4859 -1347.2
+158.882 -54.776 -1246.3
+160.406 -52.7174 -2614.69
+163.708 -50.1124 -1441.76
+164.42 -51.0224 -2528.48
+159.118 -54.2544 -1964.77
+159.112 -54.0661 -1308.11
+171.764 -54.188 -2962.49
+170.789 -54.6711 -3715
+171.098 -54.2783 -2127.88
+164.995 -51.8616 -3929.43
+165.197 -51.5618 -3565.18
+165.143 -51.2735 -3476.41
+165.401 -51.8455 -2112.06
+171.383 -54.0949 -1392.11
+170.798 -54.4213 -1802.99
+165.119 -54.8698 -2606.26
+165.581 -50.4431 -3090.83
+165.436 -50.81 -3199.97
+165.496 -51.1154 -2004.56
+164.806 -53.0079 -2000.02
+165.844 -50.1978 -1852.43
+171.762 -53.9594 -1481.43
+165.495 -54.8831 -2320.67
+169.429 -54.944 -1382.54
+165.004 -53.2546 -2361.92
+164.964 -53.4854 -2196.01
+170.411 -54.5212 -1501.45
+164.958 -52.6506 -2207.72
+165.556 -51.6461 -1089.69
+170.806 -54.2448 -1564.72
+165.27 -52.1293 -2051.9
+165.212 -52.8713 -2171.42
+165.334 -53.3744 -1272.38
+165.962 -50.3623 -427.15
+165.428 -52.4642 -1385.74
+165.951 -54.8497 -1526.73
+164.986 -53.7466 -1543.49
+165.312 -54.7148 -1717.22
+165.347 -53.1063 -1353.03
+164.939 -54.6497 -1747.18
+165.343 -53.613 -1566.44
+171.472 -53.8718 -957.48
+165.391 -52.7072 -1295.34
+170.986 -54.1015 -1439.5
+165.385 -53.8414 -1905.65
+165.086 -53.9506 -1875.64
+165.642 -54.6729 -1338.99
+170.506 -54.2959 -1264.47
+164.993 -54.1491 -1846.47
+168.999 -54.8831 -1097.75
+169.613 -54.7171 -1480.95
+165.711 -53.7196 -1352.02
+165.417 -54.0813 -1668.49
+164.968 -54.379 -1387.68
+165.354 -54.4925 -1435.97
+165.267 -54.2762 -1710.35
+165.591 -54.2908 -1345.32
+165.761 -53.9434 -1293.92
+169.949 -54.5839 -1359.52
+165.671 -53.5048 -1160.71
+165.772 -54.4718 -1028
+165.399 -51.3452 -389.1
+168.625 -54.8651 -1096.92
+165.952 -53.6077 -1339.87
+165.776 -54.1339 -1143.03
+165.754 -51.8249 -985.24
+169.548 -54.5093 -1187.54
+166.111 -53.8011 -1357.59
+165.949 -54.2862 -924.84
+171.159 -53.9267 -1023.62
+170.648 -54.1061 -1283.09
+165.961 -54.6212 -1123.13
+165.702 -53.285 -1131.73
+166.135 -54.0767 -1181.89
+166.289 -53.5804 -1319.91
+166.443 -53.7456 -1276.58
+166.362 -54.8849 -1144.8
+166.249 -54.2851 -1234.8
+166.121 -54.4574 -1205.4
+166.478 -53.9293 -1325.12
+165.996 -53.4266 -1257.96
+168.836 -54.6939 -1003.05
+169.493 -54.3354 -1078.35
+170.132 -54.3477 -1119.6
+169.233 -54.6694 -1173.12
+168.306 -54.83 -1130.26
+169.778 -54.3549 -1084.79
+166.29 -53.3812 -1276.2
+167.99 -54.8631 -1263.08
+166.321 -54.6545 -1360.2
+167.608 -54.8545 -1117.99
+166.553 -54.1788 -1200.77
+165.804 -51.6335 -747.36
+166.603 -53.634 -1257.5
+166.72 -53.7811 -1189.23
+166.787 -54.3646 -930.37
+166.454 -54.4184 -1127.37
+166.895 -54.1919 -970.47
+166.618 -53.4438 -1186.68
+170.832 -53.9369 -1138.82
+166.47 -53.2474 -1173.86
+170.26 -54.1184 -1122.69
+167.31 -54.8092 -1016.99
+168.486 -54.6879 -992.44
+168.968 -54.538 -1025.11
+169.94 -54.2033 -1086.61
+169.327 -54.2566 -1088.45
+166.863 -53.9817 -1059.51
+168.158 -54.6805 -1078.17
+166.373 -53.0997 -1211.4
+165.887 -52.4396 -1134.62
+169.216 -54.4194 -1092.84
+168.672 -54.5311 -926.95
+166.751 -53.2741 -1103.51
+166.102 -53.2167 -1180.81
+170.496 -53.9313 -1107.56
+167.826 -54.6814 -1101.87
+166.924 -53.6034 -1107.4
+167.499 -54.6649 -1003.46
+166.702 -55.0304 -1036.12
+167.007 -54.834 -1031.05
+166.46 -52.9435 -1174.06
+166.666 -54.7757 -964.53
+169.607 -54.1498 -1058.3
+167.007 -53.7929 -1058.28
+168.87 -54.3833 -981.73
+166.711 -53.0923 -1099.08
+166.693 -54.568 -946.7
+171.995 -53.7974 -848.24
+168.341 -54.5099 -975.17
+166.542 -52.7947 -1125.91
+166.132 -52.9996 -1231.8
+169.938 -54.0309 -1124.71
+166.955 -53.3869 -1045.58
+169.064 -54.2434 -1038.51
+168.012 -54.5019 -1057.86
+166.787 -52.8808 -1078.85
+166.467 -52.6534 -1080.15
+169.254 -54.1081 -1046.37
+167.184 -54.6607 -955.09
+168.547 -54.3456 -926.46
+167.006 -53.2101 -1012.58
+166.21 -52.7919 -1142.49
+165.777 -51.0607 -360.11
+167.695 -54.4981 -1014.25
+166.416 -52.5041 -1110.06
+166.761 -52.6974 -1052.45
+168.763 -54.1997 -952.14
+169.699 -53.9251 -1039.26
+165.792 -53.0643 -1027.8
+168.195 -54.2931 -976.31
+167.163 -52.9977 -1029.73
+167.007 -54.5076 -903.49
+166.541 -52.3583 -1104.81
+167.355 -54.4625 -929.57
+169.414 -53.9519 -991.67
+166.683 -52.5271 -1046.55
+169.919 -53.8702 -981.71
+166.167 -52.5827 -1183.1
+167.243 -53.1817 -1002.57
+167.852 -54.3248 -996.79
+168.97 -54.0653 -953.78
+167.235 -53.4672 -985.05
+167.213 -53.9156 -960.43
+166.911 -54.6692 -953.26
+168.454 -54.1437 -937.46
+167.181 -53.3081 -1003.53
+165.897 -52.8831 -1115.61
+166.677 -52.1899 -1019.76
+167.076 -52.7557 -1039.6
+165.795 -52.6823 -1064.55
+165.577 -52.8864 -831.41
+170.17 -53.9014 -1039.52
+170.703 -53.7783 -936.98
+167.3 -53.6922 -969.3
+166.912 -52.3518 -1016.98
+166.224 -52.3919 -1163.24
+169.156 -53.9559 -925.09
+167.154 -54.1145 -986.23
+167.591 -54.3413 -962.3
+167.103 -54.3145 -968.99
+166.533 -52.05 -1012.91
+167.411 -53.1097 -980.06
+167.445 -53.2841 -968.95
+167.542 -52.9662 -977.15
+166.005 -52.246 -1174.61
+166.067 -52.0679 -1154.9
+166.041 -51.8941 -1027.45
+166.335 -52.1851 -1140.99
+166.304 -51.9747 -1004.35
+167.388 -54.2432 -955.14
+167.444 -54.0474 -941.34
+167.295 -52.4325 -1015.37
+167.66 -54.1825 -943.3
+167.518 -53.8615 -938.12
+167.946 -54.1384 -942.52
+167.737 -53.9996 -926.37
+167.45 -52.7625 -1015.97
+167.527 -52.5554 -983.88
+167.273 -52.6159 -1038.58
+167.219 -52.235 -983.36
+166.005 -51.7208 -870.06
+167.003 -52.5666 -1041.84
+166.969 -52.1457 -982.26
+166.781 -52.0151 -932.85
+168.676 -54.0121 -919.11
+167.768 -52.8285 -953.35
+168.196 -54.0896 -944.25
+167.628 -53.6964 -936.26
+168.028 -53.9553 -907.72
+167.827 -53.8149 -914.66
+170.387 -53.727 -924.81
+167.198 -52.0828 -948.01
+169.549 -53.7835 -894.54
+166.284 -51.7708 -813.06
+166.117 -50.231 -548.75
+167.587 -52.4124 -943.82
+166.582 -51.8643 -840.26
+167.596 -53.4944 -947.46
+167.771 -52.6477 -947.29
+167.651 -53.1214 -944.09
+167.52 -52.2711 -918.84
+167.786 -52.985 -911.49
+170.999 -53.7774 -816.39
+167.919 -53.6045 -909.65
+168.135 -53.772 -888.88
+169.782 -53.7838 -898.2
+171.278 -53.7505 -698.72
+168.363 -53.9362 -912.31
+167.795 -52.4806 -920.47
+169.232 -53.7861 -815.32
+170.635 -53.6333 -791.83
+167.89 -53.4186 -922.21
+167.438 -52.1029 -877.39
+168.911 -53.8681 -848.78
+167.765 -53.2845 -944.47
+166.123 -50.0594 -785.57
+168.258 -53.5866 -848.53
+171.721 -53.7754 -840.18
+167.052 -51.9764 -941.34
+170.021 -53.7175 -817.96
+168.444 -53.7318 -844.86
+166.166 -51.6304 -777.48
+168.13 -53.4329 -868.88
+165.529 -51.4676 -418.23
+166.527 -51.6955 -766.98
+168.623 -53.8476 -877.19
+165.782 -51.1865 -599.29
+167.796 -52.3224 -874.6
+168.041 -53.2766 -888.53
+168.547 -53.5568 -802.4
+168.028 -52.7235 -853.59
+168.032 -52.5567 -823.62
+167.955 -53.103 -891.75
+166.89 -51.8435 -822.3
+167.315 -51.9539 -848.15
+168.402 -53.4153 -806.92
+168.012 -52.9061 -841.86
+167.769 -52.1316 -811.84
+168.749 -53.6846 -810.33
+169.005 -53.7003 -728.57
+170.463 -53.5421 -748.15
+168.286 -53.2763 -819.71
+170.222 -53.5846 -795.86
+167.616 -51.9408 -764.24
+168.184 -53.1556 -832.44
+168.047 -52.3976 -783.69
+168.765 -53.5245 -759.73
+170.875 -53.6309 -703.23
+169.437 -53.6292 -753.92
+168.665 -53.3978 -766.11
+166.374 -51.6001 -795.15
+168.544 -53.2587 -763
+168.227 -53.0008 -774.29
+165.99 -51.5666 -656
+168.042 -52.236 -735.14
+167.167 -51.8202 -779.51
+169.733 -53.6246 -733.75
+166.762 -51.6964 -657.42
+168.401 -53.1228 -768.44
+171.522 -53.7051 -618.84
+171.136 -53.6232 -612.9
+168.267 -52.6253 -715.87
+167.897 -51.9684 -692.28
+168.958 -53.5565 -688.35
+169.187 -53.5979 -658.72
+170.001 -53.528 -688.02
+168.301 -52.8044 -677.82
+166.202 -51.4864 -721.72
+166.433 -51.4728 -775.5
+166.635 -51.5416 -706.56
+168.07 -52.0798 -680.28
+167.439 -51.8001 -732.6
+171.681 -53.6499 -608.62
+167.829 -51.8541 -664.32
+172.087 -53.6463 -660.05
+168.82 -53.2439 -701.16
+166.16 -51.3469 -547.03
+168.898 -53.4094 -703.07
+167.035 -51.6844 -624.63
+168.513 -52.9437 -658.72
+170.544 -53.3865 -596.24
+167.695 -51.7673 -662.49
+170.752 -53.481 -613.07
+168.275 -52.4742 -709.51
+170.244 -53.4055 -625.19
+167.299 -51.6704 -700.09
+171.869 -53.6513 -637.57
+166.36 -51.3589 -660.23
+166.593 -51.3772 -633.51
+168.655 -53.1017 -701.36
+166.925 -51.541 -461.82
+167.946 -51.7403 -643.48
+171.378 -53.5989 -533.22
+167.995 -51.8593 -637.51
+166.848 -51.3967 -591.4
+167.55 -51.6493 -652.68
+168.131 -51.9378 -626.61
+165.959 -51.0968 -387.99
+168.273 -52.1588 -618.41
+167.181 -51.5411 -649.01
+167.789 -51.6295 -639.09
+169.235 -50.0686 -618.57
+169.482 -50.0578 -611.6
+165.92 -50.5161 -99.69
+169.687 -50.0287 -612.97
+169.998 -53.3909 -548.44
+169.365 -50.1925 -611.06
+169.14 -50.1884 -602.36
+167.425 -51.5292 -609.44
+169.679 -50.1935 -604.58
+168.969 -50.0991 -601.94
+168.32 -52.3117 -631.05
+168.906 -53.0774 -615.09
+168.295 -52.0268 -632.86
+171.022 -53.4899 -537.87
+169.18 -50.3292 -590.92
+168.155 -51.805 -622.09
+169.458 -50.3336 -599.84
+169.867 -50.2979 -609.18
+169.371 -53.4779 -647.37
+169.319 -50.4436 -582.95
+169.89 -50.0518 -616.72
+168.954 -50.2569 -578.07
+167.662 -51.5168 -643.94
+167.985 -51.6086 -627.5
+169.115 -50.4885 -570.7
+169.704 -50.3712 -595.93
+169.143 -53.422 -546.25
+169.572 -53.5058 -635.03
+169.896 -50.4012 -596.79
+167.106 -51.4079 -570.93
+169.525 -50.4801 -583.68
+168.565 -52.7758 -488.4
+170.761 -53.3233 -501.85
+168.163 -51.6632 -620.03
+167.318 -51.4289 -609.94
+168.924 -50.4088 -564.24
+168.726 -50.0896 -577.95
+166.263 -51.2349 -575.83
+169.977 -50.1907 -607.41
+169.315 -50.5865 -576.42
+169.796 -50.5207 -594.36
+169.079 -50.6154 -564.53
+168.782 -52.9622 -600.65
+167.546 -51.3849 -597.91
+169.583 -50.6255 -577.64
+168.788 -50.1999 -574.59
+166.779 -51.2611 -572.67
+169.422 -50.7319 -573.08
+170.13 -50.0621 -600.68
+171.563 -53.5898 -425.62
+169.811 -50.6818 -582.43
+169.172 -50.7257 -574.85
+170.082 -50.3286 -599
+166.525 -51.2265 -523.04
+170.423 -53.275 -526.77
+168.732 -50.3267 -559.49
+170.015 -50.6073 -587.25
+168.892 -50.5599 -556.86
+170.043 -50.4737 -591.21
+168.336 -51.8882 -588.91
+169.633 -50.7478 -571.01
+168.506 -50.0813 -568.17
+168.357 -51.7409 -578.82
+171.254 -53.4806 -499.04
+167.888 -51.5059 -630.92
+169.034 -50.8456 -575.59
+169.282 -50.868 -569.13
+165.964 -51.4107 -457.5
+170.208 -50.1877 -596.39
+170.025 -50.7394 -572.04
+169.542 -50.8516 -563.11
+168.902 -50.7203 -569.51
+167.767 -51.4125 -599.06
+169.776 -53.4297 -517.32
+166.157 -50.3397 -162.53
+169.03 -53.3001 -558.67
+168.287 -50.0676 -564.73
+168.569 -50.2282 -564.05
+168.672 -50.4915 -546.29
+169.097 -50.9493 -567.12
+167.324 -51.29 -566.23
+169.807 -50.8353 -565.73
+169.447 -50.9577 -560.53
+170.191 -50.5462 -584.04
+170.067 -50.8723 -567.62
+169.661 -50.9688 -557.46
+168.517 -51.9857 -522.83
+167.549 -51.2517 -555.09
+168.939 -50.9489 -577.31
+168.996 -52.9493 -485.14
+167.038 -51.269 -558.87
+168.82 -50.8739 -581.93
+168.51 -50.3869 -550.45
+170.294 -50.2906 -593.38
+168.369 -51.5905 -580.54
+169.248 -51.0287 -550.37
+168.685 -50.6493 -558.5
+169.905 -50.9845 -551.41
+168.984 -51.0606 -565.22
+168.43 -52.096 -541.78
+170.286 -50.424 -593.01
+170.346 -50.069 -585.13
+168.139 -51.5039 -603.95
+170.067 -53.2852 -437.45
+168.343 -50.1991 -569.97
+169.489 -51.0735 -553.9
+170.22 -50.6628 -575.59
+169.308 -51.1749 -533.77
+170.42 -50.1852 -591.45
+168.079 -50.0534 -513.09
+170.136 -51.0047 -553.77
+169.744 -51.1158 -540.97
+170.231 -53.2379 -469.12
+169.118 -51.1482 -540.64
+168.658 -50.7982 -569.52
+169.998 -51.1135 -540.05
+168.456 -50.5125 -515.1
+168.539 -51.8293 -526.55
+168.377 -50.3178 -568.57
+166.157 -51.1206 -453.95
+168.134 -50.1872 -493.4
+168.758 -51.0153 -587.08
+170.607 -53.2705 -506.12
+170.216 -50.7807 -569.68
+168.934 -51.2045 -551.27
+169.066 -53.1746 -472.76
+168.563 -51.6733 -548.12
+167.772 -51.2747 -578.14
+167.968 -51.3803 -615
+167.228 -51.1254 -529.44
+169.53 -51.208 -539.15
+170.479 -50.3069 -587.44
+170.18 -51.1212 -528.57
+169.363 -51.3126 -522.46
+169.707 -51.2502 -526.49
+169.343 -53.3577 -550.24
+168.797 -51.1387 -571.53
+172.052 -51.0156 -502.4
+168.515 -50.601 -562.14
+169.891 -51.2333 -521.93
+171.97 -53.4974 -380.58
+168.721 -52.8405 -529.11
+166.725 -51.1521 -489.23
+169.142 -53.0354 -337.6
+169.108 -51.2886 -521.49
+168.635 -50.9218 -594.81
+168.482 -52.6669 -522.71
+167.447 -51.1686 -571.96
+170.102 -51.2272 -516.48
+168.893 -51.3229 -525.16
+170.296 -50.8956 -562.77
+165.836 -51.5113 -558.16
+171.723 -53.5366 -381.23
+168.473 -50.7269 -568
+172.117 -51.2203 -513.49
+170.959 -53.3613 -474.87
+169.583 -51.3325 -508.22
+170.556 -50.0652 -570.01
+170.39 -50.5634 -574.35
+169.539 -53.3697 -480.05
+169.788 -51.3445 -502.19
+169.443 -51.4314 -476.72
+169.205 -51.4402 -479.48
+168.287 -50.4545 -537.17
+170 -51.3431 -504.39
+168.386 -51.4345 -582.76
+166.373 -51.1112 -478.11
+170.215 -51.3374 -497.89
+168.193 -50.32 -502.06
+168.967 -51.432 -484.5
+170.63 -50.1875 -564.95
+170.552 -50.4393 -572.1
+168.578 -51.5167 -562.65
+171.51 -53.4583 -473.53
+172.058 -50.8403 -503.42
+170.359 -51.0552 -547.51
+167.487 -51.0302 -503.22
+166.599 -51.0713 -457.4
+168.827 -51.591 -472.56
+171.491 -52.3978 -525.8
+171.512 -52.288 -532.92
+168.715 -51.2709 -559.28
+167.256 -50.9562 -481.04
+166.009 -51.2438 -513.51
+167.432 -50.9012 -480.93
+171.884 -50.7895 -507
+172.01 -50.6943 -494.42
+171.926 -52.6408 -504.18
+172.14 -52.6419 -527.21
+171.742 -50.8218 -492.18
+171.855 -50.9082 -498.41
+171.618 -52.4918 -508.69
+171.663 -52.3579 -527.07
+171.755 -50.6829 -505.28
+171.705 -52.6254 -485.72
+171.741 -50.5484 -503.28
+171.816 -50.4688 -499.8
+171.811 -50.3552 -497.16
+168.91 -52.8499 -367.92
+171.472 -52.6229 -479.62
+170.924 -53.2491 -440.95
+170.984 -53.1331 -441.34
+171.029 -53.0142 -439.05
+171.153 -52.9502 -426.26
+171.214 -52.8435 -425.6
+171.803 -52.7287 -475.28
+171.34 -52.7332 -444.23
+171.276 -52.6262 -466.16
+172.018 -52.7817 -489.79
+171.351 -52.4969 -508.63
+171.388 -52.093 -527.72
+171.919 -50.5634 -497.02
+169.427 -53.2727 -447.18
+168.612 -51.1453 -564.33
+168.531 -51.0286 -582.06
+168.435 -50.8943 -580.6
+168.256 -50.7875 -554.34
+168.315 -50.6248 -544.91
+168.103 -50.5799 -499.3
+168.055 -50.4399 -455.45
+171.849 -52.5216 -512.52
+171.797 -52.4204 -527.8
+167.646 -51.1455 -496.8
+167.735 -51.0161 -449.18
+167.873 -51.126 -592.14
+168.029 -51.2371 -605.47
+171.832 -50.2099 -492.5
+168.204 -51.3379 -593.09
+172.045 -50.2829 -497.42
+172.054 -50.1404 -494.85
+171.953 -53.3266 -377.58
+171.963 -52.9206 -457.97
+172.01 -53.0238 -442.19
+171.928 -53.1629 -403.59
+170.468 -50.7377 -556.99
+170.632 -50.5796 -554.95
+170.71 -50.3152 -559.37
+170.776 -50.0644 -541.16
+171.135 -53.2452 -440.2
+171.142 -53.3799 -456.41
+171.222 -53.0739 -424.27
+171.404 -53.1906 -402.18
+171.338 -52.9432 -413.67
+171.336 -53.3397 -439.8
+171.401 -52.8367 -427.31
+171.496 -53.0463 -401.42
+171.559 -52.9075 -421.42
+171.573 -52.7568 -452.61
+171.571 -53.3012 -420.73
+171.749 -53.394 -461.11
+171.658 -53.1598 -401
+171.773 -53.0096 -419.82
+171.772 -53.2689 -417.35
+171.419 -51.9849 -509.91
+171.439 -51.7907 -506.66
+171.448 -51.6825 -513.84
+171.448 -51.5764 -516.4
+167.623 -50.8894 -460.18
+171.524 -51.4729 -513.22
+171.608 -51.3592 -511.29
+171.584 -51.2358 -508.4
+167.794 -50.7903 -472.74
+167.824 -50.9062 -503.66
+171.639 -51.5987 -519.68
+171.59 -51.0983 -509.81
+167.751 -50.6598 -420.64
+171.78 -52.8486 -450.62
+171.736 -51.1643 -505.99
+171.735 -51.4471 -514.29
+167.954 -50.9896 -559.33
+167.946 -50.6873 -483.2
+171.606 -50.9325 -505.8
+168.01 -50.8317 -545.22
+171.807 -51.2867 -510.53
+171.79 -51.0454 -498.41
+168.125 -50.7039 -534.54
+168.101 -51.0927 -584.8
+171.564 -51.888 -509.96
+168.177 -50.943 -578.54
+171.902 -51.1477 -507.59
+168.32 -51.0502 -583.49
+171.611 -51.7467 -513.03
+168.255 -51.1901 -574.68
+168.454 -51.2725 -574.1
+168.434 -51.1381 -555.25
+168.577 -51.383 -563.42
+171.55 -52.1625 -529.25
+171.584 -52.0286 -519.4
+171.709 -52.2355 -534.9
+171.753 -51.8151 -514.24
+171.759 -52.0995 -534.45
+171.856 -52.3123 -545.97
+171.809 -51.9416 -525.68
+171.883 -51.5506 -512.84
+171.816 -51.6944 -513.02
+171.908 -52.1849 -553.56
+171.967 -51.3974 -515.51
+172.009 -52.406 -558.79
+171.952 -51.7995 -522.14
+171.976 -52.0464 -550.8
+172.046 -51.6542 -514.52
+172.102 -51.5026 -512.28
+172.003 -50.4344 -496.65
+172.191 -50.5542 -507.44
+172.138 -53.3968 -248.85
+172.166 -53.2536 -387.06
+172.161 -53.1022 -442.21
+172.034 -52.5408 -537.08
+172.043 -51.9143 -541.12
+172.032 -52.2672 -569.8
+172.116 -52.1483 -573.65
+171.068 -50.5662 -529.23
+171.105 -50.3239 -533.32
+171 -50.081 -515.72
+171.215 -50.4166 -527.18
+171.295 -50.2693 -518.49
+171.513 -50.6799 -512.58
+171.283 -50.6898 -535.11
+171.095 -50.7229 -533.8
+171.027 -50.4144 -542.33
+171.383 -50.537 -525.94
+170.93 -50.318 -541.28
+171.61 -50.7856 -503.6
+171.418 -50.3913 -517.85
+171.6 -50.5777 -508.93
+171.216 -50.8246 -523.92
+171.431 -50.8099 -519.43
+171.287 -51.0392 -523.31
+171.354 -50.935 -521.61
+171.069 -50.2123 -530.7
+171.152 -50.9539 -517.11
+170.723 -51.0101 -539.39
+170.879 -51.1253 -522.14
+171.008 -50.8356 -517.62
+170.755 -50.8404 -556.81
+170.939 -50.9793 -517.67
+170.686 -51.1466 -527.63
+171.115 -51.1106 -519.82
+170.831 -50.6002 -550.85
+170.821 -50.4618 -553.58
+170.912 -50.7087 -553.03
+170.806 -51.2581 -529.08
+170.631 -51.2635 -530.96
+170.718 -50.6908 -553.64
+170.526 -50.928 -548.68
+170.502 -51.1753 -534.05
+170.497 -51.4659 -505
+170.453 -51.3307 -511.11
+170.559 -51.063 -545.57
+170.306 -51.2055 -539.5
+171.443 -51.0368 -519.55
+171.373 -51.1598 -517.38
+171.008 -51.2505 -524.51
+171.203 -51.2538 -520
+170.915 -51.3609 -527.74
+170.916 -51.4902 -518.51
+170.702 -51.4085 -523.73
+170.759 -51.5505 -516.21
+170.596 -51.5562 -511.04
+170.692 -51.6632 -504.49
+171.317 -51.5003 -511.44
+171.391 -51.3414 -512.46
+171.314 -51.6186 -510.32
+171.112 -51.5869 -510.82
+171.329 -51.8896 -497.1
+171.244 -51.7468 -500.58
+171.127 -51.3992 -520.35
+171.001 -51.7488 -494.35
+171.087 -51.8994 -471.45
+171.238 -52.0141 -507.06
+170.879 -51.635 -508.13
+170.797 -51.7649 -485.45
+168.753 -51.4203 -537.2
+169.045 -51.535 -434.09
+172.161 -51.3769 -514.67
+171.62 -50.4512 -510.03
+171.252 -50.1 -514.99
+170.851 -50.1945 -541.23
+171.577 -50.2823 -508.44
+171.449 -50.1673 -505.95
+171.479 -50.0532 -496.49
+171.642 -50.1318 -503.32
+171.11 -52.7114 -438.69
+170.96 -52.8743 -431.13
+170.823 -53.0302 -437.44
+170.759 -53.1833 -448.02
+170.644 -53.0899 -438.24
+167.085 -51.0275 -483.48
+166.937 -51.1282 -472.24
+165.714 -50.9318 -814.47
+169.236 -53.2627 -461.21
+170.315 -51.4605 -456.84
+169.664 -51.45 -456.39
+172.056 -50.0294 -488.86
+171.352 -52.2224 -551.37
+170.898 -51.857 -489.32
+167.889 -50.544 -424.32
+168.468 -52.5415 -481.72
+170.547 -53.1747 -463.89
+168.712 -51.911 -401.23
+171.331 -52.3526 -549.96
+171.86 -50.0574 -493.29
+168.744 -51.7662 -440.37
+169.196 -51.5735 -406.65
+169.049 -51.6424 -373.91
+167.479 -50.8123 -466.04
+170.613 -51.7921 -461.92
+169.881 -51.4579 -483.78
+170.101 -51.4609 -476.06
+170.41 -51.5754 -480.67
+169.343 -51.5239 -429.3
+170.515 -51.6823 -494.55
+171.19 -52.148 -556
+170.741 -52.9148 -435.34
+170.902 -52.7279 -431.22
+167.074 -50.9324 -468.6
+171.131 -52.5607 -488.64
+169.516 -51.5453 -393.46
+167.601 -50.7475 -458.75
+168.716 -52.7472 -321.58
+171.161 -52.2846 -603.85
+169.16 -52.9274 -362.11
+171.148 -52.423 -573.01
+171.658 -50.0082 -497.75
+167.884 -50.045 -226.9
+169.881 -53.2982 -374.72
+170.364 -53.1538 -447.93
+167.327 -50.8213 -444.48
+171.033 -52.0612 -488.51
+166.784 -51.0653 -463.74
+168.938 -51.7373 -344.1
+166.917 -50.9863 -470.26
+170.613 -52.991 -435.46
+169.373 -53.1942 -428.89
+170.991 -52.2066 -556.22
+170.198 -51.5956 -423.96
+169.742 -51.5821 -392.44
+167.149 -50.8369 -439.87
+170.95 -52.6141 -459.17
+170.876 -51.9776 -557.62
+170.97 -52.4872 -553.04
+170.73 -51.8944 -474.84
+170.725 -52.7868 -432.86
+169.978 -51.5776 -434.72
+167.698 -50.5479 -414.48
+169.357 -51.6375 -355.59
+170.972 -52.3508 -625.11
+170.427 -51.8103 -468.03
+170.484 -53.0675 -428.62
+167.888 -50.4235 -411.33
+167.966 -50.3063 -419.07
+170.839 -52.1184 -552.16
+168.714 -52.0359 -312.87
+170.093 -53.1835 -369.2
+170.33 -51.6994 -463.03
+165.764 -50.6547 -388.84
+167.937 -50.1621 -380.07
+169.193 -51.67 -347.81
+170.828 -52.5437 -493.52
+166.445 -50.9844 -166.66
+169.556 -51.6626 -302.03
+168.583 -52.1077 -377.7
+165.925 -50.9759 -188.3
+170.574 -52.8792 -436.53
+170.78 -52.2715 -510.36
+170.773 -52.6488 -439.94
+170.796 -52.4295 -565.83
+165.693 -51.5326 -530.89
+169.562 -53.2655 -339.45
+167.575 -50.6307 -413.92
+169.103 -51.7469 -304.55
+169.097 -52.8418 -211.24
+167.422 -50.7045 -484.05
+168.886 -51.8551 -291.56
+169.7 -53.2931 -347.76
+165.826 -51.314 -477.93
+170.052 -51.6906 -382.29
+166.963 -50.8552 -428.6
+170.185 -51.7163 -401.87
+170.526 -51.9436 -399.41
+169.707 -51.716 -302
+170.667 -52.1617 -441.09
+168.503 -52.4167 -324.21
+170.649 -52.5389 -481.75
+166.739 -50.9857 -405.33
+169.949 -53.1911 -298.38
+170.691 -52.032 -486.57
+169.878 -51.6907 -352.7
+170.603 -52.673 -443.54
+170.194 -53.12 -376.46
+168.661 -52.6732 -290.4
+169.264 -53.1322 -362.91
+170.422 -52.9516 -414.87
+168.472 -52.1934 -449.06
+170.311 -53.044 -399.11
+167.23 -50.7207 -403.95
+170.614 -52.2576 -475.23
+170.601 -52.376 -524.77
+169.435 -51.7463 -284.45
+168.888 -51.9825 -216.14
+167.448 -50.5972 -406.08
+168.843 -52.7556 -224.78
+170.548 -52.1962 -427.07
+169.023 -51.8206 -268.24
+170.502 -52.5961 -454.8
+170.518 -52.7737 -440.78
+166.824 -50.9091 -322.96
+166.604 -50.9708 -274.73
+170.1 -51.7806 -352.69
+167.777 -50.4657 -397.89
+169.502 -53.1933 -319
+166.261 -51.0154 -208.13
+167.054 -50.7418 -351.5
+169.576 -51.7631 -248.17
+170.445 -52.4872 -481.21
+166.364 -50.05 -323.98
+170.538 -52.0973 -386.18
+166.911 -50.7571 -281.74
+170.494 -52.2794 -493.52
+170.437 -52.367 -504.15
+170.441 -52.6818 -444.08
+170.428 -52.8482 -429.42
+170.237 -51.8202 -415.91
+166.092 -51.0114 -280.16
+169.967 -51.786 -309.02
+170.367 -52.5982 -443.95
+170.43 -52.1865 -391.65
+169.268 -51.7501 -299.26
+169.677 -51.7991 -258.93
+169.428 -53.1151 -329.45
+170.337 -51.9275 -400.87
+167.544 -50.5311 -283.36
+165.745 -51.4213 -355.92
+167.755 -50.3617 -343.79
+167.644 -50.4519 -326.01
+170.261 -52.9538 -379.86
+167.307 -50.6084 -279.16
+170.366 -52.0636 -253.29
+170.315 -52.6765 -431.79
+170.354 -52.2865 -416.46
+169.167 -51.8544 -244.8
+169.81 -51.8007 -272.6
+166.308 -50.1604 -203.9
+170.276 -52.4012 -430.77
+170.257 -52.5222 -436.58
+170.337 -52.7659 -425.55
+170.283 -52.1902 -232.44
+166.804 -50.8212 -189.78
+170.053 -51.8918 -241.68
+167.71 -50.0438 -89.13
+165.627 -51.3076 -363.34
+169.491 -51.8158 -258.88
+170.201 -51.9302 -331.13
+170.292 -52.8685 -395.03
+170.221 -52.6206 -408.61
+169.786 -53.2021 -229.6
+169.337 -53.0317 -314.75
+167.788 -50.2424 -252.41
+167.115 -50.6183 -190.03
+169.91 -51.8617 -255.77
+166.692 -50.8984 -156.34
+170.149 -53.0054 -303.66
+170.203 -52.7086 -358.49
+170.198 -52.2893 -289.61
+169.812 -51.8891 -240.78
+167.397 -50.5167 -78.26
+169.702 -51.8723 -229.82
+169.017 -52.7384 -186.51
+169.362 -51.849 -251.78
+165.752 -50.7976 -576.43
+170.15 -52.2021 -189.05
+170.183 -52.1024 -186.37
+169.642 -53.1985 -242.95
+170.095 -52.6582 -282.84
+170.137 -52.8946 -273.41
+170.173 -52.7952 -306.46
+170.089 -52.7328 -227.28
+169.871 -52.5493 -159.03
+170.011 -52.4787 -196.06
+170.083 -52.5608 -230.79
+170.142 -52.4685 -291.96
+166.298 -50.2858 -160.95
+166.386 -50.3705 -107.41
+166.462 -50.4483 -65.93
+166.515 -50.5459 -72.3
+166.595 -50.6158 -87.51
+166.64 -50.4458 -71.19
+166.611 -50.6944 -104.1
+166.685 -50.5519 -84.01
+166.704 -50.6309 -98
+166.633 -50.803 -124.17
+166.779 -50.7077 -132.29
+168.612 -52.5897 -283.79
+168.645 -52.4909 -182.3
+168.679 -52.3913 -149.88
+168.595 -52.2919 -221.8
+169.844 -52.039 -178.93
+169.895 -51.9436 -211.84
+169.936 -52.1077 -162.16
+169.988 -52.0118 -155.78
+170.044 -52.1638 -172.34
+170.056 -52.0785 -171.99
+170.041 -52.2651 -161.24
+170.122 -52.0035 -177.22
+170.067 -52.3815 -242.87
+166.952 -50.1138 -122.42
+166.962 -50.1726 -125.56
+166.969 -50.4466 -98.88
+166.914 -50.2946 -133.83
+166.978 -50.5803 -104.55
+166.931 -50.5234 -97.03
+167.026 -50.043 -125.52
+167.093 -50.1304 -127.21
+169.579 -53.1157 -262.96
+169.705 -53.1305 -211.54
+169.832 -53.1043 -185.93
+170.011 -53.0765 -210.38
+167.377 -50.0189 -120.7
+167.556 -50.0349 -112.1
+167.446 -50.121 -137.32
+167.606 -50.1277 -142.74
+167.659 -50.2036 -189.08
+167.498 -50.2253 -181.62
+167.596 -50.3774 -289.14
+167.626 -50.2926 -256.37
+167.5 -50.4423 -250.32
+169.683 -53.0357 -200.25
+169.723 -52.9445 -158.13
+169.831 -52.8871 -148.51
+169.846 -52.9975 -154.97
+169.98 -52.8009 -151.81
+169.993 -52.9427 -158.12
+169.999 -52.6998 -150.95
+169.982 -52.629 -155.59
+166.948 -50.6639 -155.7
+167.042 -50.2344 -112.68
+167.051 -50.3488 -85.77
+167.057 -50.5161 -89.26
+167.114 -50.4361 -56.61
+167.199 -50.038 -130.46
+167.191 -50.1925 -106.33
+167.204 -50.2732 -75.42
+167.276 -50.1187 -121.8
+167.231 -50.4997 -55.81
+167.256 -50.3745 -33.21
+167.366 -50.4343 -37.18
+167.328 -50.2026 -114.35
+167.35 -50.2847 -99.93
+167.458 -50.3451 -185.89
+167.765 -50.1375 -125.55
+169.583 -52.9424 -152.61
+169.671 -52.8596 -141.95
+169.709 -52.7043 -151.18
+169.778 -52.7831 -149.04
+169.713 -52.6206 -155.65
+169.861 -52.6807 -152.12
+169.506 -53.028 -213.43
+169.501 -52.8501 -148.91
+169.613 -52.7658 -144.56
+170.244 -52.0065 -321.19
+166.879 -50.2251 -141.29
+166.834 -50.0587 -121.75
+166.832 -50.3781 -133.9
+166.845 -50.1535 -134.36
+166.835 -50.5912 -104.89
+166.815 -50.4895 -114.13
+166.698 -50.1412 -123.59
+166.775 -50.283 -145.69
+166.664 -50.0513 -114.93
+166.757 -50.2099 -139.38
+166.672 -50.3428 -124.23
+166.597 -50.2477 -117.39
+166.532 -49.9813 -148.95
+166.512 -50.1227 -112.83
+166.532 -50.3591 -98.66
+166.445 -50.2977 -124.13
+166.428 -50.2231 -121.04
+169.741 -51.9674 -217.7
+169.67 -52.144 -165.9
+169.715 -52.214 -160.19
+169.707 -52.0686 -185.96
+169.751 -52.2964 -161.47
+169.795 -52.1332 -163.48
+169.766 -52.4683 -152.75
+169.762 -52.3868 -148.93
+169.893 -52.4334 -148.88
+169.886 -52.2187 -166.66
+169.9 -52.3334 -149.68
+169.678 -52.5305 -153.38
+169.633 -52.4404 -152.05
+169.584 -52.5919 -152.76
+169.491 -52.3965 -147.27
+169.499 -52.5123 -145.35
+169.456 -52.6233 -156.06
+169.507 -52.2981 -148.68
+169.332 -52.6592 -156.82
+169.341 -52.3317 -154.97
+169.412 -52.2378 -144.15
+169.343 -52.4486 -144.92
+169.317 -52.5626 -135.31
+169.233 -52.6396 -119
+169.259 -52.2186 -163.45
+169.171 -52.5796 -51.71
+169.224 -52.4025 -134.07
+169.258 -52.1157 -175.02
+169.198 -52.4899 -137.42
+169.166 -52.3225 -147.39
+169.121 -52.6584 -120.11
+169.218 -52.7349 -156.76
+169.134 -52.1461 -169.21
+169.095 -52.2397 -151.72
+169.068 -52.5295 -109.07
+169.069 -52.602 -104.01
+169.169 -52.0391 -184.45
+169.077 -52.4218 -168.04
+169.016 -52.651 -139.24
+168.969 -52.2469 -172.64
+169.045 -51.9918 -182.64
+169.016 -52.18 -162.96
+169.014 -52.3219 -172.1
+168.997 -52.0869 -165.1
+168.968 -52.5883 -148.72
+168.942 -52.4913 -142.69
+169.026 -51.9084 -215.8
+169.419 -51.9498 -228.9
+169.489 -51.8799 -239.06
+169.487 -52.0329 -215.66
+169.573 -52.103 -178.41
+169.579 -51.9375 -226.62
+169.559 -52.2013 -160.5
+169.631 -52.2719 -148.01
+169.616 -52.0228 -204.62
+169.587 -51.8434 -246.76
+169.626 -52.3487 -156.31
+169.582 -52.6742 -158
+169.426 -52.7367 -166.25
+169.416 -52.9426 -203.79
+169.269 -52.9564 -282.13
+166.547 -50.8994 -137.3
+166.49 -50.8351 -119.46
+166.484 -50.7571 -108.96
+166.429 -50.893 -118.37
+166.363 -50.7281 -101.35
+166.461 -50.6558 -87.86
+166.384 -50.5801 -57.35
+166.391 -50.513 -38.79
+166.36 -50.8216 -89.79
+166.319 -50.4517 -76.15
+166.262 -50.38 -130.75
+166.279 -50.6485 -68.08
+166.233 -50.7576 -78.44
+166.275 -50.5373 -35.88
+166.207 -50.8595 -54.07
+166.103 -50.6893 -83.37
+166.144 -50.4513 -123.59
+166.118 -50.5776 -101.2
+166.077 -50.7996 -61.61
+165.93 -50.7354 -130.54
+165.967 -50.6318 -154.15
+168.937 -52.3973 -160.82
+168.876 -52.1826 -177.3
+168.841 -52.0852 -164.76
+168.829 -52.3128 -166.76
+168.792 -52.5785 -175.96
+168.809 -52.4432 -154.54
+168.734 -52.2242 -176.37
+168.73 -52.1383 -190.88
+168.623 -52.1911 -247.22
+169.297 -52.8539 -183.44
+169.41 -52.1363 -171.05
+169.336 -52.0367 -194.38
+169.265 -51.9466 -214.92
+166.314 -50.9198 -107.13
+169.136 -51.9473 -204.3
+166.188 -50.9435 -124.85
+166.067 -50.9076 -104.2
+165.914 -50.8559 -108.52
+168.905 -52.6678 -163.1
+168.785 -52.686 -164.66
+172.652 -54.7691 -5421.45
+173.272 -54.8274 -5417.84
+173.947 -54.6833 -5310.91
+173.629 -54.3716 -5249.33
+178.255 -55.0484 -5137.98
+178.104 -54.572 -5227.24
+174.542 -54.7777 -5159.64
+178.935 -54.838 -5359.28
+177.631 -54.8608 -5151.24
+178.089 -54.1427 -4999.26
+179.526 -53.5996 -5116.81
+179.657 -54.643 -5290.41
+178.847 -54.2758 -5262.29
+179.289 -53.2322 -5096.88
+176.828 -54.8435 -5145.31
+179.045 -53.8429 -5181.67
+179.512 -52.8715 -5057.99
+175.313 -54.8797 -5025.55
+179.461 -52.484 -5165.58
+178.384 -53.8098 -4977.67
+178.747 -53.4224 -4971.7
+178.892 -52.5688 -4999.46
+178.81 -52.9858 -5040.19
+178.274 -53.1152 -4990.76
+175.637 -54.4933 -4977.71
+176.021 -54.7304 -5042.17
+174.664 -53.9342 -4762.63
+175.492 -54.1001 -5079.88
+175.323 -53.7235 -4992.12
+176.276 -54.324 -4903.85
+177.42 -54.577 -5005.25
+176.996 -54.4021 -5001.65
+176.914 -54.0288 -5070.29
+176.927 -53.6704 -5012.15
+178.47 -51.9492 -4955.16
+178.366 -52.2745 -4918.63
+177.564 -51.6731 -4983.07
+176.911 -51.6643 -5019.19
+179.084 -52.1403 -4987.22
+178.171 -51.6715 -4912.6
+176.135 -53.7284 -4901.8
+177.542 -54.2562 -4928.65
+178.147 -52.7048 -4983.92
+177.595 -53.8141 -4929.96
+177.999 -53.4298 -5079.17
+178.832 -51.7022 -4912.36
+176.644 -53.3434 -4848.15
+176.436 -52.2445 -4943.43
+175.515 -53.448 -4902.99
+176.264 -51.8698 -4785.41
+176.64 -52.6566 -4875.58
+175.961 -53.1946 -4917.86
+177.319 -53.3845 -4694.24
+178.459 -51.3426 -4912.75
+176.476 -53.0055 -4789.99
+179.147 -51.3381 -4897.74
+173.186 -54.0753 -4787.35
+178.111 -51.0025 -4831.28
+175.28 -53.1556 -4926.69
+176.35 -51.4711 -4567.06
+176.139 -52.8387 -4931.61
+176.009 -52.5247 -4787.84
+175.534 -52.8123 -4781.05
+175.436 -52.4207 -4449.18
+179.353 -50.9426 -4627.45
+176.365 -51.1053 -4322.23
+177.417 -51.019 -4644.68
+174.878 -53.4378 -4788.74
+178.086 -50.4069 -4323.05
+179.394 -50.2535 -4145.65
+177.821 -50.6767 -4548.77
+175.836 -51.6198 -4228.75
+174.906 -52.625 -4399.95
+172.187 -54.0032 -2407.11
+175.913 -51.2824 -4331.37
+173.188 -53.7473 -3341.65
+174.335 -53.1831 -3723.01
+177.863 -50.1167 -3313.16
+175.925 -50.94 -2770.86
+175.258 -51.7373 -2861.7
+176.493 -50.5854 -3326.61
+175.46 -51.4217 -2006.49
+173.609 -53.547 -2761.26
+172.716 -53.8606 -3032.63
+174.559 -52 -1502.99
+174.318 -52.6544 -2841.86
+176.637 -50.3118 -2309.02
+177.11 -50.2723 -2195.55
+176.224 -50.3589 -2451.39
+175.541 -51.1366 -1737.88
+173.581 -53.2632 -1224.65
+174.122 -52.913 -1708.03
+176.354 -50.0806 -1869.54
+175.686 -50.6807 -1998.27
+174.755 -51.8084 -1244.45
+175.535 -50.9003 -1568.86
+173.825 -53.0965 -1305.54
+172.88 -53.6433 -1578.47
+174.3 -52.1937 -1699.85
+175.821 -50.4142 -1862.39
+176.776 -50.0536 -1631.54
+175.102 -51.4714 -1175.69
+175.444 -50.4754 -1580.02
+173.973 -52.7531 -1556.54
+175.282 -50.7323 -1495.34
+173.122 -53.515 -1235.52
+173.531 -53.1189 -822.35
+172.58 -53.6207 -990.92
+175.158 -50.5203 -1510.58
+173.897 -52.5608 -1089.89
+175.524 -50.1854 -1373.57
+174.935 -50.6528 -1323.57
+175.224 -51.0066 -1368.49
+174.479 -51.844 -1100.82
+175.193 -50.3196 -1421.1
+175.167 -51.2533 -1119.94
+174.926 -50.438 -1296.95
+174.266 -51.9603 -1162.01
+174.932 -50.8781 -1225.56
+173.912 -52.2977 -969.36
+173.793 -52.8828 -805.79
+174.825 -51.5953 -1035.95
+174.917 -50.216 -1157.4
+174.665 -50.3477 -1087.16
+174.672 -50.5575 -1156.72
+174.663 -50.7675 -1107.96
+173.991 -52.0766 -1022.17
+174.887 -51.1101 -1028.29
+175.176 -50.0868 -1105.67
+174.418 -50.4571 -1066.2
+174.802 -51.3494 -866.63
+174.641 -50.133 -922.19
+174.634 -50.9794 -997.65
+172.308 -53.7446 -907.19
+174.413 -50.6543 -1051
+173.549 -52.9802 -651.88
+174.406 -50.2655 -956.68
+174.386 -50.8537 -1000.99
+174.521 -51.684 -931.95
+174.178 -50.5491 -952.53
+173.749 -52.1436 -902.35
+173.726 -51.977 -841.81
+173.633 -52.2572 -831.88
+173.99 -51.8681 -861.42
+173.747 -52.7318 -727.04
+174.153 -50.7324 -914.99
+172.781 -53.4689 -795.03
+174.254 -51.7699 -910.12
+174.58 -51.1779 -895.43
+173.262 -53.3274 -978.56
+173.619 -52.425 -847.26
+174.176 -50.3683 -862.54
+174.539 -51.4933 -783.46
+174.351 -50.0515 -729.28
+174.344 -51.0549 -884
+173.977 -50.6275 -799.34
+174.503 -51.3323 -784.61
+173.697 -51.7696 -669.9
+173.531 -52.6244 -808.07
+174.097 -50.9244 -878.57
+173.494 -52.1077 -802.05
+174.186 -50.204 -765.88
+172.504 -53.4657 -494.8
+174.024 -51.1362 -777.73
+173.375 -53.188 -719.76
+173.917 -50.4623 -770.48
+174.308 -51.2374 -781.79
+173.378 -52.3082 -755.6
+174.271 -51.5846 -767.31
+173.381 -52.478 -749.85
+173.865 -50.7851 -756.85
+174.287 -51.4034 -747.97
+173.959 -50.2627 -704.76
+173.54 -52.8111 -693.51
+173.759 -50.6092 -694.71
+173.797 -50.9759 -719.38
+173.999 -51.6718 -711.84
+173.222 -52.1594 -659.62
+174.096 -51.3049 -721.89
+174.002 -51.464 -669.51
+173.85 -51.3003 -650.96
+173.738 -51.5722 -591.22
+173.739 -51.423 -578.25
+173.642 -50.8687 -651.97
+173.281 -52.0129 -653.77
+173.467 -51.9119 -671.53
+173.411 -51.7664 -614.27
+173.489 -51.6248 -575.67
+173.536 -51.4678 -556.09
+173.591 -51.3218 -578.76
+173.649 -51.152 -627.73
+173.665 -50.4811 -667.71
+173.593 -50.7322 -645.05
+172.991 -53.3749 -763.11
+173.435 -51.2381 -575.45
+173.249 -51.6636 -559.61
+173.158 -51.8473 -586.31
+173.523 -50.9895 -614.26
+173.306 -51.5092 -542.41
+173.365 -51.3607 -550.79
+173.057 -52.0421 -604.64
+174.03 -50.06 -664.69
+173.362 -51.1166 -587.43
+173.131 -52.2949 -640.55
+173.423 -50.8495 -603.36
+172.274 -53.5347 -594.32
+173.164 -52.4351 -654.58
+173.761 -50.1438 -630.46
+173.671 -50.3246 -646.05
+173.213 -52.605 -638.88
+173.051 -51.685 -552.38
+173.517 -50.5871 -627.35
+172.987 -53.2485 -390.07
+173.085 -51.5503 -538.18
+173.221 -51.2463 -561.83
+173.265 -50.9745 -581.5
+173.133 -51.3956 -542.36
+173.108 -51.1094 -564.33
+172.877 -51.9254 -577.54
+173.46 -50.4412 -605.8
+173.35 -50.707 -592.43
+172.889 -51.763 -556.32
+173.337 -52.742 -596.87
+172.981 -52.2046 -607.03
+172.884 -51.6082 -538.08
+172.972 -53.1291 -291.02
+173.183 -50.8315 -569.77
+173.548 -50.1951 -591.51
+172.913 -52.3876 -592.7
+172.811 -53.3177 -317.01
+172.905 -51.453 -533.46
+173.333 -53.0649 -474.89
+172.938 -51.269 -551.05
+172.819 -52.0927 -595.42
+173.021 -50.9605 -550.31
+172.971 -52.5496 -575.68
+172.845 -51.0918 -546.4
+173.285 -50.562 -578.99
+173.113 -50.6903 -559.45
+173.399 -50.2958 -570.04
+173.56 -50.0554 -566.83
+172.861 -53.0241 -349.04
+173.222 -50.4194 -562.6
+172.948 -50.8147 -538.42
+172.685 -51.6804 -539.39
+172.696 -51.5304 -525.13
+172.704 -51.3771 -525.56
+172.676 -51.8359 -560.55
+172.747 -53.1719 -401.25
+172.644 -51.9889 -582.62
+172.776 -50.9407 -516.03
+172.662 -51.2208 -527.63
+172.992 -52.6769 -541.48
+172.743 -52.2595 -601.25
+173.168 -53.1656 -403.56
+172.568 -52.9946 -400.77
+172.797 -52.9063 -407.31
+172.787 -52.52 -554.5
+173.055 -50.5492 -544.71
+172.889 -50.6744 -530.88
+172.717 -50.7963 -508.34
+173.358 -50.1433 -536.63
+172.534 -51.458 -517.61
+172.593 -51.0671 -526.37
+172.507 -51.7571 -544.3
+172.489 -51.3364 -516.05
+173.134 -50.2585 -533.73
+172.595 -52.1419 -598.97
+172.57 -53.3179 -276.39
+172.537 -50.9166 -524.8
+172.415 -51.2007 -516.02
+172.455 -51.9002 -563.71
+172.993 -50.4131 -520.57
+172.779 -52.6635 -506.42
+172.842 -50.535 -522.83
+172.665 -52.8182 -444.73
+172.487 -50.7659 -576
+172.638 -52.4279 -574.04
+172.334 -51.0505 -516.95
+172.451 -52.8412 -455.15
+172.672 -50.6511 -617.05
+172.48 -53.1654 -337.76
+173.147 -50.0797 -513.44
+173.1 -53.0326 -360.91
+172.635 -52.5712 -535.77
+172.465 -51.6055 -523.87
+173.282 -52.8993 -492.43
+172.326 -51.4533 -512.72
+172.512 -52.2829 -595.11
+172.437 -52.0556 -584.92
+172.243 -51.7776 -534.39
+172.302 -51.3175 -513.96
+172.909 -50.3074 -490.37
+172.292 -50.8877 -514.18
+172.792 -50.4104 -493.02
+172.515 -52.6901 -500.26
+173.119 -52.7697 -542.36
+172.637 -50.5147 -612.86
+172.347 -53.0757 -411.49
+172.417 -52.1764 -594.56
+172.25 -50.7276 -501.94
+172.446 -50.6126 -580.49
+172.367 -53.257 -314.81
+172.422 -52.4075 -578.83
+172.9 -50.1608 -489.03
+172.281 -52.758 -498.86
+172.239 -51.6008 -515.49
+172.974 -50.016 -503.2
+173.001 -52.9034 -423.94
+172.725 -50.2942 -479.82
+172.231 -52.9393 -465.2
+172.619 -50.4004 -543.56
+172.327 -52.6241 -532.09
+172.463 -52.5374 -550
+172.195 -50.0652 -492.05
+172.348 -50.0212 -491.43
+172.888 -52.7914 -462.51
+172.508 -50.0633 -491.33
+172.62 -50.1703 -481.29
+172.25 -50.3725 -518.5
+172.317 -50.181 -503.68
+172.3 -53.1718 -409.03
+172.33 -53.3712 -303.47
+172.256 -52.2862 -590.98
+172.238 -52.4932 -564.94
+172.287 -52.1312 -586.1
+172.223 -51.995 -565.2
+172.499 -50.3154 -524.1
+172.441 -50.4622 -565.45
+186.636 -52.4035 -5644.06
+186.443 -52.0471 -5778.55
+186.144 -52.6363 -5604.01
+186.782 -50.5503 -5266.39
+185.733 -52.8422 -5527.47
+186.701 -50.1996 -5539.29
+185.148 -52.8514 -5564.32
+186.873 -52.836 -5614.03
+185.634 -53.1562 -5540.72
+186.598 -50.7657 -5186.82
+185.058 -53.1646 -5461.77
+186.368 -53.1179 -5609.76
+186.626 -51.7421 -5391.09
+185.973 -52.2002 -5651.58
+185.39 -53.4648 -5499.2
+185.372 -52.449 -5648.88
+186.073 -53.5 -5416.36
+186.684 -51.0825 -5287.61
+186.839 -51.4401 -5274.88
+184.615 -52.5556 -5600.32
+186.805 -53.5879 -5492.73
+185.151 -53.7977 -5546.51
+185.767 -53.7611 -5347.7
+184.538 -52.9508 -5524.98
+186.399 -53.8981 -5256.9
+185.044 -54.1307 -5405.13
+186.132 -51.3327 -5265.06
+185.775 -54.1388 -5412.73
+184.665 -52.1115 -5475.3
+184.584 -53.3997 -5516.01
+185.328 -54.4233 -5281.22
+186.614 -54.335 -5252.61
+185.448 -50.98 -5453.43
+183.994 -52.264 -5496.51
+183.259 -54.2153 -5479.53
+183.134 -54.5276 -5354.53
+185.967 -51.7761 -5732.48
+182.951 -52.3581 -5445.44
+182.405 -52.0885 -5332.63
+186.125 -50.8699 -5391.18
+183.516 -54.8524 -5273.42
+184.291 -54.8297 -5321.9
+183.771 -54.4998 -5326.95
+185.636 -50.5405 -5357.7
+181.691 -54.8398 -5261.63
+180.393 -53.7106 -5335.47
+180.575 -53.3047 -5188.76
+180.911 -53.1194 -5185.66
+181.008 -52.809 -5231.15
+181.381 -53.064 -5262.33
+183.142 -53.181 -5511.02
+182.982 -53.5584 -5526.87
+183.181 -52.7287 -5460.54
+182.56 -53.2761 -5461.08
+182.75 -53.9079 -5421.83
+182.499 -52.9326 -5412.04
+182.242 -53.5548 -5388.9
+182.415 -52.5339 -5254.26
+181.951 -53.1761 -5394.14
+181.741 -52.7642 -5388.37
+180.278 -54.904 -5186.97
+180.373 -54.5322 -5284.28
+180.553 -54.1736 -5145.35
+180.922 -54.8845 -5289.99
+185.359 -51.4562 -5282.33
+184.615 -51.0791 -5392.48
+183.99 -51.8259 -5336.87
+183.963 -51.3412 -5113.47
+181.762 -52.3378 -5311.78
+181.083 -54.4772 -5406.15
+181.19 -54.0322 -5354.33
+181.843 -54.3948 -5356.89
+182.619 -54.7837 -5284.39
+182.586 -54.2955 -5361.77
+184.92 -50.5963 -5029.49
+183.729 -53.4949 -5508.54
+183.895 -54.1805 -5385.33
+184.56 -54.3982 -5368.87
+184.351 -53.8909 -5423.07
+185.136 -50.1334 -5331.51
+181.319 -53.4881 -5243
+181.971 -53.9458 -5394.65
+183.482 -53.8767 -5337.62
+183.27 -52.0192 -5304.71
+181.223 -52.5096 -5308.6
+185.225 -54.8371 -5263.48
+183.347 -51.5316 -5201.23
+185.98 -54.6046 -5317.58
+181.675 -51.9507 -5065.59
+181.113 -52.1799 -5049.15
+186.815 -54.7937 -5146.37
+179.747 -54.1111 -5255.26
+180.345 -52.9228 -5120.81
+180.549 -52.4657 -5033.84
+179.942 -53.2784 -5175.57
+184.462 -50.2416 -5266.01
+183.474 -52.4066 -5395.13
+181.046 -51.7719 -4944.34
+179.937 -52.599 -5054.93
+180.431 -52.0054 -4986.58
+183.841 -50.8912 -4701.2
+179.853 -52.2434 -4955.46
+182.678 -51.6613 -5214.16
+180.403 -51.5457 -4908.22
+181.023 -51.3431 -4798.58
+179.657 -51.7565 -4969.85
+181.605 -51.1449 -4768.1
+180.442 -51.1153 -4719.75
+181.889 -50.062 -3634.46
+181.023 -50.927 -4647.12
+182.158 -51.3762 -5035.14
+181.652 -50.6898 -4403.72
+180.994 -50.5052 -4512.94
+181.464 -50.2796 -4151.05
+181.384 -49.9385 -4144.82
+180.455 -50.7005 -4683.23
+179.817 -51.2557 -4919.72
+184.224 -50.6032 -4778.6
+179.919 -50.853 -4630.74
+183.287 -50.7667 -4275.52
+182.213 -50.9812 -4530.59
+179.94 -50.4616 -4500.84
+182.801 -50.8589 -4272.61
+183.55 -50.4746 -3692.14
+182.452 -50.2029 -3185.05
+183.962 -50.2798 -3784.29
+179.906 -50.0774 -4048.88
+183.565 -50.1081 -1889.44
+187.05 -52.1326 -5732.92
+189.059 -53.0461 -5508.89
+188.282 -52.8689 -5775.65
+187.377 -52.5908 -5686.87
+187.184 -50.4749 -5407.54
+187.554 -53.0138 -5578.17
+188.939 -52.7365 -5533.96
+187.813 -52.2873 -5588.74
+188.877 -53.378 -5425.38
+187.194 -53.2844 -5593.25
+188.546 -52.4067 -5415.54
+187.427 -50.1971 -5165.87
+188.714 -53.8048 -5351.62
+187.474 -53.6522 -5621.68
+189.512 -52.9027 -5390.48
+189.296 -52.4581 -5402.24
+187.413 -51.7595 -5357.79
+187.18 -50.826 -5185.38
+189.681 -53.3329 -5417.21
+187.342 -51.2837 -5266.92
+187.266 -54.0378 -5399.04
+188.619 -54.1866 -5308.81
+189.485 -53.775 -5240.64
+188.814 -52.1188 -5331.49
+188.026 -53.428 -5623.55
+190.02 -52.712 -5186.7
+191.276 -50.136 -5145.86
+189.034 -54.424 -5254.2
+190.062 -53.0521 -5296.87
+189.972 -52.2844 -5218.45
+190.478 -53.3558 -5248.69
+188.223 -51.978 -5441.89
+187.443 -54.542 -5255.63
+192.59 -50.052 -5167.97
+192.052 -50.3041 -5079.97
+190.622 -50.1626 -5226.95
+188.476 -49.976 -5197.47
+190.292 -53.7721 -5216.67
+189.334 -52.0235 -5166.69
+188.61 -54.4974 -5237.05
+193.332 -50.2251 -5167.99
+192.192 -50.6454 -5152.17
+190.62 -52.957 -5279.62
+188.03 -53.9078 -5434.58
+190.111 -49.9531 -5221.9
+192.531 -50.8387 -5076.84
+191.608 -50.5956 -5126.15
+189.251 -54.1532 -5239.16
+189.262 -51.6646 -5125.46
+188.046 -54.3314 -5257.99
+187.571 -54.9377 -5127.45
+190.88 -50.5229 -5145.48
+190.637 -52.5359 -5313.43
+192.6 -51.1546 -5171.42
+188.717 -51.77 -5167.81
+192.02 -50.9439 -5159.35
+191.206 -53.2703 -5135.19
+192.762 -50.5215 -5086.86
+188.261 -54.7914 -5038.23
+189.048 -54.7435 -5005.22
+192.795 -51.598 -5268.35
+189.554 -51.3691 -5162.52
+189.61 -54.5286 -5029.04
+194.122 -50.3946 -5133.84
+189.373 -50.0886 -5157.26
+191.983 -51.337 -5112.95
+192.643 -51.9905 -5154.6
+191.1 -53.7171 -5246.74
+194.303 -51.993 -5099.48
+190.536 -52.1466 -4998.31
+188.037 -51.5257 -5246.66
+188.034 -50.226 -5133.4
+191.228 -51.0209 -5108.72
+188.725 -51.3252 -5219.13
+188.702 -50.4906 -5048.95
+192.057 -51.7638 -5266.66
+187.834 -50.6017 -5056.73
+190.138 -50.3662 -5120.99
+189.802 -51.0326 -5144.46
+193.079 -50.928 -5038.42
+193.677 -54.4006 -4987.08
+187.92 -51.0747 -5099.94
+193.249 -54.6571 -5114.42
+193.972 -53.0207 -5053.5
+193.57 -50.6521 -5141.28
+189.975 -51.8168 -5073.84
+191.328 -51.5348 -5183.35
+192.855 -52.3596 -5031.34
+190.404 -54.6542 -4896.52
+193.944 -53.641 -4980.83
+194.055 -54.883 -5246.98
+193.595 -52.6138 -5033.84
+194.296 -54.5124 -4714.66
+194.169 -53.3212 -4826.46
+194.116 -54.1289 -4912.65
+192.085 -52.2019 -5118.22
+193.877 -51.1132 -5041.13
+193.668 -53.271 -4862.23
+193.302 -52.9971 -5147.31
+193.087 -54.2985 -5061.52
+194.149 -52.3636 -5040.89
+192.593 -54.4226 -4915.38
+192.953 -52.7037 -5228.66
+189.137 -50.9619 -5162.71
+193.267 -53.9351 -4809.71
+193.037 -53.3862 -5007.73
+192.43 -53.7054 -5213.32
+194.27 -50.7776 -5164.52
+193.702 -51.5905 -5160.32
+193.207 -51.2771 -5041.26
+190.419 -51.3584 -5018.4
+191.731 -53.5887 -5152.13
+192.047 -53.2145 -4971.18
+193.431 -52.0699 -5164.15
+192.041 -52.8204 -4987.99
+192.616 -52.9521 -5089.41
+192.652 -54.0771 -4977.79
+192.723 -54.8233 -4626.32
+191.939 -54.6619 -4842.92
+190.023 -54.1833 -5025.4
+191.352 -52.8033 -5180.58
+189.832 -55.0459 -4788.77
+192.4 -52.5959 -5234.78
+190.827 -51.8391 -5055.54
+191.826 -52.5388 -5349.93
+191.253 -52.2726 -5355.13
+191.512 -51.9207 -5160.08
+188.46 -50.8991 -5107.33
+191.174 -54.7735 -5039
+190.982 -54.2557 -5088.41
+191.914 -54.06 -5143.22
+196.893 -53.1338 -4997
+196.328 -51.3745 -4997
+195.439 -51.3108 -5221.25
+197.679 -53.8575 -4997
+199.523 -50.3227 -4997
+194.766 -54.3617 -5114.93
+196.445 -54.8795 -4997
+197.724 -52.0956 -4997
+196.746 -54.5113 -4997
+196.479 -50.5485 -4997
+197.458 -53.5054 -4997
+195.759 -52.6609 -4997
+195.374 -51.7587 -4872.71
+196.375 -52.8632 -4997
+197.572 -53.0772 -4997
+197.271 -54.9541 -4997
+199.058 -50.2272 -4997
+196.292 -52.519 -4997
+201.508 -50.4933 -4997
+195.145 -53.3506 -5134.46
+194.43 -52.7566 -4966.23
+194.604 -53.1552 -4685.93
+201.42 -50.1207 -4997
+200.837 -50.1892 -4997
+195.953 -50.7068 -4997
+197.588 -54.1349 -4997
+197.725 -52.4918 -4997
+195 -51.98 -4957.45
+200.101 -50.2585 -4997
+195.345 -53.7258 -5549.09
+196.229 -53.9898 -4997
+197.786 -51.631 -4997
+194.814 -54.7592 -4782.86
+199.927 -50.651 -4997
+194.699 -53.9266 -4578.32
+195.381 -54.1974 -5263.46
+197.519 -50.1726 -4997
+194.631 -51.5427 -5005.2
+194.677 -51.075 -5044.88
+194.654 -53.5177 -5112.47
+195.971 -54.5378 -4997
+195.317 -54.5749 -4988.71
+196.332 -53.1801 -4997
+195.869 -51.0035 -4997
+197.074 -51.304 -4997
+195.839 -53.3817 -4997
+196.493 -50.9644 -4997
+196.628 -53.5112 -4997
+197.65 -51.1916 -4997
+197.197 -52.2599 -4997
+197.051 -52.6665 -4997
+197.906 -50.9273 -4997
+195.927 -53.0104 -4997
+198.126 -50.2853 -4997
+195.763 -50.3381 -4997
+201.819 -51.3072 -4997
+196.958 -51.8265 -4997
+195.253 -52.9644 -5039.18
+198.278 -51.983 -4997
+197.052 -50.3329 -4997
+198.576 -51.6998 -4997
+198.276 -51.2623 -4997
+197.739 -52.7998 -4997
+195.165 -50.1458 -5132.45
+196.552 -52.2123 -4997
+200.788 -50.6943 -4997
+197.206 -50.8333 -4997
+201.158 -51.2646 -4919.98
+198.423 -52.3861 -4894.25
+196.321 -50.0853 -4997
+194.945 -52.4158 -4759.07
+200.339 -51.0849 -4996.57
+195.723 -52.1919 -4997
+196.05 -51.7813 -4997
+197.092 -53.8609 -4997
+194.547 -50.1218 -5200.67
+197.46 -54.4929 -4997
+198.596 -50.7837 -4997
+199.227 -50.5551 -4997
+197.751 -50.5545 -4997
+195.105 -50.6529 -5163.44
+198.707 -50.3628 -4997
+199.521 -50.9782 -4997
+199.134 -51.4033 -4997
+199.19 -51.8458 -4914.52
+197.018 -54.1973 -4997
+197.998 -54.7911 -4919.83
+199.987 -51.4315 -4901.14
+198.105 -54.4115 -4944.16
+198.105 -53.0208 -4834.18
+198.161 -54.0491 -4913.46
+198.258 -53.4053 -4719.96
+201.724 -51.6036 -4895.58
+198.879 -52.1026 -4860.85
+199.789 -51.8219 -4727.06
+198.273 -52.7641 -4732.04
+200.618 -51.4762 -4783.01
+198.068 -53.7311 -4834.22
+198.634 -54.7006 -4599.03
+201.783 -51.9136 -4715.8
+198.711 -54.3214 -4523.09
+199.619 -52.2159 -4541.19
+199.232 -52.4922 -4501.07
+201.178 -51.7734 -4711.73
+198.953 -52.7914 -4445.16
+200.459 -51.8073 -4631.95
+201.575 -52.1816 -4586.2
+198.694 -53.1109 -4441.57
+200.282 -52.1721 -4454.66
+200.928 -52.1669 -4521.04
+198.77 -53.8917 -4458.73
+199.834 -52.5873 -4239.23
+201.375 -52.5358 -4394.65
+199.142 -54.9904 -4228.21
+199.267 -54.6361 -4116.75
+199.125 -53.5268 -4170.3
+200.73 -52.5117 -4356.31
+199.687 -52.8696 -4114.69
+201.141 -52.8092 -4268.11
+200.186 -52.4819 -4312.43
+199.291 -54.2846 -4082.66
+200.493 -52.8772 -4196.58
+199.719 -54.0009 -3997
+201.247 -53.0992 -4039.95
+199.422 -53.1822 -4019.72
+200.91 -53.3359 -3997
+200.168 -53.2353 -3999.54
+199.791 -54.9739 -3997
+200.556 -53.6201 -3997
+199.889 -53.5702 -3997
+200.318 -53.8811 -3997
+201.727 -53.4652 -3997
+201.224 -53.7471 -3997
+200.812 -53.9589 -3997
+201.41 -54.249 -3997
+200.557 -55.0719 -3997
+200.571 -54.2372 -3997
+201.131 -54.7481 -3997
+200.044 -54.5639 -3997
+204.001 -50.5469 -4997
+202.026 -50.2675 -4997
+202.593 -50.4016 -4997
+205.004 -52.6777 -4997
+203.458 -51.8416 -4997
+202.3 -50.7151 -4997
+203.46 -50.7799 -4997
+202.752 -51.6737 -4997
+201.66 -50.9497 -4997
+204.952 -50.2804 -4997
+204.424 -52.6741 -3313.81
+205.958 -50.1701 -4961.34
+206.505 -50.1806 -4997
+203.615 -52.1519 -4997
+203.175 -50.3988 -4997
+204.329 -50.2275 -4997
+205.537 -52.8745 -4951.61
+202.897 -50.6629 -4997
+203.225 -51.4239 -4997
+202.994 -50.9997 -4997
+208.43 -49.9793 -4997
+204.639 -50.5345 -4981.31
+207.356 -49.9483 -4997
+202.42 -51.2309 -4997
+204.03 -52.3719 -4924.77
+202.188 -51.5273 -4997
+204.703 -52.336 -4710.15
+205.692 -50.4575 -4749.34
+204.098 -52.0418 -4831.52
+207.912 -50.2554 -4986.24
+207.183 -50.2515 -4936.45
+208.655 -50.4411 -4965.3
+203.514 -52.3742 -3997
+204.039 -50.9511 -4682.58
+203.695 -51.1771 -4889.54
+206.27 -50.4461 -4837.42
+208.27 -50.6812 -4806.66
+208.794 -50.8931 -4860.87
+205.196 -50.6901 -4604.67
+202.261 -51.8362 -4331.16
+207.68 -50.6704 -4755.32
+206.906 -50.6423 -4714.84
+205.404 -52.4953 -4154.59
+204.685 -50.9281 -4601.15
+208.895 -51.2714 -4714.41
+208.275 -51.0987 -4692.8
+206.269 -50.7828 -4648.07
+209.216 -50.107 -4802.77
+202.952 -52.131 -3997
+209.33 -50.6623 -4703.34
+209.379 -51.1489 -4620.22
+208.673 -51.5448 -4636.17
+204.684 -51.9292 -4430.01
+208.041 -51.492 -4524.32
+207.512 -51.0772 -4533.18
+205.746 -50.8425 -4496.27
+206.83 -51.1147 -4465.35
+202.206 -52.1714 -4373.86
+208.959 -51.8748 -4444.56
+208.466 -51.8638 -4499.11
+204.042 -51.6159 -4464.31
+209.338 -51.6244 -4478.59
+207.372 -51.4789 -4372.58
+206.148 -51.1935 -4395.09
+206.066 -52.6981 -3997
+204.369 -51.278 -4222.77
+207.877 -51.856 -4380.96
+206.205 -53.1589 -3997
+208.33 -52.1978 -4370.22
+205.425 -51.0887 -4264.77
+206.751 -51.5164 -4252.18
+209.416 -52.1173 -4253.15
+208.867 -52.1948 -4325.59
+205.038 -51.3672 -4058.98
+207.761 -52.2233 -4247.67
+202.058 -52.5244 -4221.61
+207.258 -51.868 -4233.49
+206.256 -51.5828 -4192.97
+208.244 -52.539 -4248.06
+204.693 -51.6001 -4085.47
+206.645 -51.8743 -4089.01
+207.735 -52.5976 -4129.47
+208.699 -52.4879 -4232.77
+207.115 -52.2781 -4081.46
+205.709 -51.4899 -4102.35
+208.169 -52.8315 -4143.09
+204.411 -54.7938 -3997
+209.365 -54.0687 -3997
+208.738 -52.8869 -4055.05
+206.035 -51.8535 -3997
+206.455 -52.1472 -3997
+204.018 -53.8346 -3997
+207.793 -52.9679 -4032.6
+209.444 -53.6362 -3997
+207.214 -52.7317 -3997
+202.623 -52.4441 -3997
+201.911 -52.9888 -3997
+205.202 -52.1624 -3997
+204.488 -54.1745 -3997
+203.421 -53.8111 -3997
+208.336 -53.166 -4013.28
+207.893 -53.3416 -3997
+205.357 -53.9772 -3997
+206.724 -52.9151 -3997
+209.412 -53.17 -3997
+204.727 -53.8155 -3997
+206.32 -53.8651 -3997
+203.904 -54.5333 -3997
+205.162 -54.9121 -3949.56
+206.584 -52.5018 -3997
+202.767 -54.8366 -3997
+209.318 -52.6212 -4056.94
+205.558 -53.1913 -3229.91
+207.254 -54.1994 -3982.01
+207.975 -53.6461 -3997
+207.33 -53.1297 -3997
+202.678 -54.5174 -3997
+208.449 -53.5843 -3997
+203.801 -54.1908 -3997
+207.702 -54.1978 -3997
+205.886 -52.2411 -3997
+203.697 -54.7901 -3997
+202.095 -54.7028 -3997
+203.062 -53.4895 -3997
+206.88 -53.276 -3997
+205.297 -53.6649 -3997
+205.281 -53.3608 -3930.06
+203.29 -54.4248 -3997
+203.591 -53.5551 -3997
+207.416 -53.5481 -3997
+203.776 -52.648 -3997
+203.421 -52.8479 -3997
+204.099 -53.0263 -3997
+205.832 -53.9189 -3997
+207.833 -53.8958 -3997
+208.262 -53.8573 -3997
+206.704 -53.625 -3997
+204.728 -53.3833 -3997
+207.298 -53.9221 -3997
+204.081 -53.4603 -3997
+203.143 -54.7374 -3997
+203.173 -52.5486 -3997
+205.881 -53.5408 -3996.99
+204.293 -54.4443 -3997
+204.942 -53.0236 -3272.83
+208.719 -53.9612 -3997
+203.196 -54.0615 -3997
+202.631 -54.101 -3997
+206.817 -54.0325 -3997
+208.981 -53.7272 -3997
+202.844 -53.7727 -3997
+209.476 -54.4894 -3944.31
+203.384 -53.1936 -3997
+205.331 -51.8104 -3997
+204.862 -54.5291 -3997
+205.148 -54.2346 -3997
+205.811 -54.2722 -3970.85
+202.144 -54.3016 -3997
+201.919 -53.9311 -3997
+202.315 -53.741 -3997
+202.436 -53.4321 -3997
+202.705 -53.1851 -3997
+208.903 -53.3667 -3997
+202.734 -52.8214 -3997
+208.301 -54.1919 -3986.91
+208.926 -54.3207 -3939.54
+205.679 -54.6678 -3860.38
+206.366 -54.1946 -3925.07
+207.49 -54.4573 -3920.84
+208.014 -54.5093 -3896.54
+206.95 -54.3817 -3868.05
+208.579 -54.5782 -3837.98
+207.74 -54.7255 -3836.94
+206.504 -54.6323 -3728.62
+209.071 -54.629 -3852.12
+207.242 -54.7103 -3768.81
+157.944 -58.3421 -3940.01
+158.394 -58.8374 -3586.98
+157.344 -56.8616 -5397.55
+159.454 -59.5516 -4148.5
+158.792 -59.4154 -4874.57
+157.294 -57.1845 -5512.27
+157.902 -56.2938 -4303.08
+157.225 -57.4781 -4953.51
+158.052 -56.6899 -3773.48
+157.888 -58.6903 -5709.06
+159.188 -55.0314 -5287.87
+163.612 -56.4373 -4925.16
+159.157 -55.3071 -5070.45
+157.463 -57.7711 -5372.06
+163.157 -57.2551 -4283.14
+163.559 -55.6692 -4949.04
+163.386 -56.8509 -4748.06
+157.779 -56.0124 -4649.1
+157.388 -58.1744 -5131.85
+158.315 -59.1835 -5073.3
+163.448 -58.2951 -4875.42
+163.086 -56.0884 -4679
+162.34 -56.2773 -4780.04
+162.662 -58.8218 -4832.21
+162.008 -58.8051 -4112.89
+162.675 -58.4349 -5109.11
+163.367 -58.7114 -4466.21
+158.911 -59.0034 -2696.92
+162.788 -57.0007 -5012.23
+158.589 -55.5896 -3321.46
+159.86 -55.1005 -4170.82
+162.331 -55.9227 -4428.15
+162.88 -55.7059 -4418.38
+161.787 -55.8183 -4590.48
+162.554 -55.0896 -4666.28
+162.269 -55.5289 -4364.95
+160.796 -55.1428 -4499.06
+163.155 -57.9862 -4510.6
+162.751 -56.6054 -5207.68
+162.421 -57.3219 -4056.43
+161.645 -56.1825 -4300.43
+161.57 -55.592 -4545.72
+162.913 -59.0987 -4277.38
+157.974 -55.7797 -3817.36
+159.558 -55.6368 -4183.18
+157.356 -56.5185 -4669.4
+162.348 -59.0592 -4518.95
+158.046 -57.9803 -3109.6
+161.658 -55.2131 -4537.68
+160.308 -55.4613 -4273.75
+160.97 -55.5313 -4613.98
+161.179 -55.8759 -4353.85
+163.102 -55.3609 -3789.29
+159.461 -59.168 -3549.96
+161.911 -56.5879 -4169.53
+160.797 -56.2333 -4152.07
+160.362 -55.8779 -4428.88
+162.141 -56.9674 -4167.44
+161.759 -58.4027 -3876.01
+162.796 -57.6451 -4411.65
+158.999 -55.9988 -4007.06
+162.363 -58.0304 -4157.39
+158.572 -56.3408 -2066.12
+157.185 -55.4037 -4000.78
+158.859 -56.679 -3219.76
+159.226 -57.4541 -4117.57
+157.327 -56.1739 -3591.05
+160.007 -56.2975 -3839.2
+159.644 -56.0397 -3946.26
+157.808 -57.0334 -4020.61
+162.319 -59.4192 -4035.13
+157.869 -57.3745 -3814.87
+158.198 -59.4773 -2678.18
+159.789 -59.8443 -3573.52
+161.171 -56.5623 -3950.37
+161.546 -57.3628 -3624.39
+163.171 -59.4633 -3971.83
+159.509 -57.7446 -3425.98
+157.373 -55.7963 -3875.34
+162.024 -57.6955 -4222.62
+159.29 -56.3404 -4136.68
+158.92 -59.7233 -3297.16
+159.525 -57.1053 -3992.7
+159.617 -58.3312 -3867.44
+161.41 -58.7231 -2166.41
+161.113 -58.2182 -3981.68
+159.774 -57.9872 -3393.83
+161.405 -59.4877 -4031.82
+160.426 -58.5248 -4200.37
+161.105 -58.5365 -3213.43
+163.507 -59.815 -4065.48
+160.162 -58.9712 -3808.73
+159.594 -58.7657 -3787.11
+161.899 -59.8367 -4153.78
+162.704 -59.8174 -4251.5
+161.889 -59.164 -4620.13
+161.36 -59.049 -4731.76
+163.645 -59.1167 -4115.95
+158.983 -57.1884 -3791.21
+160.616 -59.2767 -3903.34
+160.841 -58.8417 -4523.43
+161.718 -58.0322 -4027.39
+159.958 -59.2966 -3757.81
+160.078 -59.5451 -3730.49
+161.219 -59.9093 -3797.72
+160.005 -57.4065 -3850.53
+159.626 -56.6997 -3967.12
+160.077 -57.7614 -3536.2
+157.821 -55.4902 -3650.93
+160.212 -56.9832 -3826.54
+160.441 -56.6044 -3919.94
+157.352 -58.5617 -3653.04
+157.63 -55.1281 -3697.58
+158.979 -58.6257 -3475.65
+158.959 -58.3354 -3216.64
+161.244 -57.8276 -4035.51
+160.808 -56.8535 -3778.61
+161.394 -56.921 -3757.98
+160.694 -57.6049 -3822.05
+158.155 -55.2825 -3993.17
+160.788 -57.192 -3631.8
+160.558 -59.7765 -3701.83
+158.149 -55.057 -3967.54
+159.095 -56.9407 -3477.45
+158.449 -58.4981 -3308.9
+157.84 -59.0155 -3707.29
+158.637 -55.1367 -908.31
+160.429 -58.0345 -2587.02
+159.196 -58.0585 -3102.88
+158.554 -58.1633 -3274.46
+158.145 -57.6683 -2693.98
+157.421 -58.8641 -3006.04
+157.297 -59.896 -2820.85
+158.755 -57.7913 -2261.84
+157.267 -59.5226 -2743.24
+157.781 -59.6611 -2950.92
+157.775 -59.3408 -2567.45
+157.294 -59.1576 -2720.94
+158.352 -59.7691 -2570.31
+158.591 -57.4242 -2403.77
+158.468 -57.0504 -2301.41
+159.244 -59.8612 -3273.09
+158.309 -56.01 -2733.59
+163.988 -57.9623 -5091.52
+163.628 -57.5775 -5041.4
+163.921 -57.1346 -4211.62
+172.005 -56.504 -5442.19
+170.803 -57.0094 -5394.38
+171.404 -56.7913 -5356.29
+170.551 -57.2977 -5587.19
+171.329 -57.2965 -5403.92
+172.084 -57.481 -5210.32
+164.543 -56.9715 -5210.8
+170.67 -56.6354 -5389.62
+171.305 -56.3316 -5583.93
+169.877 -57.4713 -5416.86
+171.604 -57.796 -5171.35
+172.028 -56.0214 -5543.23
+170.045 -56.9773 -5257.62
+170.565 -56.1812 -5352.03
+171.198 -55.8222 -5401
+170.687 -57.7267 -5272
+164.762 -56.6023 -4875.42
+169.918 -56.4659 -5249.66
+163.965 -55.2409 -4193.98
+169.185 -56.7198 -5297.26
+169.129 -56.2187 -5192.32
+164.086 -56.7237 -5092.22
+169.161 -57.1982 -5068.29
+169.083 -57.6747 -5310.64
+166.041 -57.0906 -5286.87
+169.371 -55.8017 -5108.15
+164.667 -57.4722 -4968.57
+168.495 -56.495 -5292.35
+164.217 -55.6118 -5126.89
+164.056 -56.0187 -5179.6
+164.272 -56.3915 -5274.76
+166.54 -56.8181 -5165.36
+167.735 -56.6446 -5259.28
+167.151 -56.8722 -5157.85
+165.94 -56.7458 -5001.42
+168.431 -56.9276 -5311.78
+165.545 -57.344 -5000.34
+166.827 -57.2238 -5096.71
+168.346 -57.4022 -5175.66
+168.467 -56.1487 -5014.92
+166.178 -57.4874 -4983.7
+166.976 -56.5384 -4929.76
+166.804 -57.6298 -5086.03
+169.838 -57.922 -5240.22
+167.666 -57.1059 -5191.76
+166.29 -57.8829 -5061.36
+165.557 -57.7277 -5086.74
+171.151 -58.1051 -5226.46
+166.309 -56.4775 -4747.61
+164.088 -58.3973 -4994.76
+167.175 -58.0177 -5074.12
+164.179 -58.7985 -4744.89
+164.308 -59.1438 -4988.27
+168.716 -55.8629 -3242.14
+169.802 -58.6542 -4919.62
+166.318 -58.3457 -5032.28
+166.558 -58.7277 -4837.23
+165.404 -58.4472 -4857.71
+170.087 -59.1679 -5201.47
+170.051 -59.509 -5021.58
+168.504 -59.5208 -5072.7
+171.134 -59.7893 -4714.29
+169.236 -59.353 -5062.53
+170.423 -59.8207 -4874.21
+165.874 -58.7838 -4740.07
+165.086 -59.8404 -4469.22
+169.606 -59.8156 -4930.89
+169.55 -58.9097 -5106.27
+164.689 -58.5265 -4558.75
+164.979 -58.8951 -4654.15
+167.151 -58.5208 -5079.74
+170.856 -59.4117 -5145.64
+168.816 -58.8687 -5213.91
+169.26 -58.549 -5265.78
+165.494 -59.5613 -4460.41
+165.616 -59.2035 -4536.97
+166.362 -59.0838 -4835.98
+168.355 -59.2041 -5082.13
+171.751 -59.5819 -4973.25
+168.011 -59.4705 -4853.87
+171.711 -59.0464 -5296.76
+170.102 -58.8537 -5192.9
+166.159 -59.4945 -4596.32
+164.829 -59.4178 -4255.62
+167.628 -59.2299 -4850.67
+168.812 -59.801 -4847.38
+167.093 -58.9406 -4998.36
+170.711 -58.9351 -5141.14
+170.346 -58.5919 -5044.32
+167.913 -58.7858 -5056.52
+171.912 -58.6243 -5505.89
+170.488 -58.201 -5269.54
+171.165 -58.5387 -5278.35
+171.808 -58.2348 -5183
+163.968 -59.4703 -4111.7
+169.807 -58.341 -5242.53
+164.828 -56.1861 -4370.11
+167.512 -57.5486 -4935.45
+168.522 -58.4305 -5202.1
+167.797 -58.3365 -5114.7
+164.878 -58.0846 -5093.11
+169.122 -58.1408 -5335.72
+166.903 -59.3718 -4782.74
+168.996 -55.4951 -4534.16
+164.67 -55.3563 -4327.76
+165.278 -56.9421 -4259.47
+167.969 -55.926 -4183.05
+168.222 -57.9277 -5227.89
+168.103 -59.7751 -4917.75
+166.748 -56.1866 -4352.41
+167.471 -59.6296 -4759.72
+165.846 -59.8633 -4297.85
+167.16 -55.8366 -3842.97
+165.537 -56.42 -4636.55
+166.14 -56.1219 -4245.32
+164.853 -55.7324 -4170.7
+166.724 -59.8622 -4525.58
+168.338 -55.5716 -3678.07
+165.69 -58.0976 -5049.2
+164.32 -59.816 -4028.7
+168.954 -55.2271 -2867.59
+165.553 -55.9169 -3560.8
+165.224 -55.1229 -3133.73
+168.563 -55.2832 -2234.42
+167.688 -55.5739 -2840.65
+167.167 -55.5095 -2478.74
+165.715 -55.0631 -2105.49
+169.093 -55.0692 -1869.73
+165.937 -55.6015 -2472.63
+168.025 -55.3047 -1821.91
+165.699 -55.3266 -1668.55
+168.765 -55.0598 -1664.49
+166.578 -55.5711 -1898.43
+167.468 -55.2948 -1701
+166.168 -55.1141 -1584.62
+166.182 -55.3733 -1543.09
+166.946 -55.2812 -1489.34
+167.768 -55.0692 -1165.13
+168.298 -55.0409 -1381.63
+166.515 -55.268 -1167.91
+167.254 -55.032 -1168.69
+172.62 -56.5676 -5393.16
+172.5 -56.2796 -5429.79
+173.157 -56.3052 -5420.89
+173.151 -56.7533 -5358.89
+172.73 -56.0143 -5432.46
+172.285 -56.9959 -5512.75
+173.419 -55.8364 -5437.28
+173.83 -56.1647 -5452.96
+172.639 -55.6478 -5449.31
+173.868 -56.5273 -5456.28
+173.913 -56.9639 -5409.53
+173.29 -55.3314 -5342.89
+172.52 -55.1584 -5322.2
+174.054 -55.4882 -5353.52
+173.168 -57.1939 -5338.48
+174.28 -55.8753 -5472.82
+174.522 -56.2644 -5412.85
+174.622 -56.6931 -5297.71
+174.76 -57.1664 -5319.37
+172.644 -57.4257 -5484.54
+173.962 -55.0528 -5442.39
+179.462 -55.7058 -5204.72
+178.693 -55.6964 -5254.99
+176.423 -57.1479 -5093.16
+175.609 -57.1642 -5393.99
+175.275 -57.4615 -5307
+174.712 -57.6194 -5443.76
+175.158 -55.8983 -5107.85
+179.771 -55.2055 -5328.59
+178.311 -55.4006 -5251.4
+178.118 -55.6223 -5091.91
+176.513 -55.7977 -5068.62
+178.911 -55.3132 -5195.38
+179.859 -56.1143 -5081.94
+174.691 -55.5698 -5203
+176.672 -55.4104 -5141
+175.268 -56.8356 -5246.65
+173.903 -57.4572 -5438.99
+177.577 -55.3228 -5146.54
+174.656 -55.2012 -5226.61
+172.558 -57.8908 -5281.59
+175.372 -56.4278 -5233.94
+175.95 -56.7744 -5222.38
+173.151 -57.5676 -5382.43
+177.215 -57.127 -5068.38
+179.04 -56.1729 -5147.8
+175.994 -56.0569 -5152.48
+177.732 -55.739 -5114.2
+179.824 -56.5897 -5145.96
+174.178 -57.83 -5235.06
+176.026 -55.1358 -5001.99
+178.228 -55.9579 -5175.7
+176.823 -56.6879 -5033.18
+177.592 -56.08 -5083.61
+180.245 -57.0602 -5104.54
+178.991 -56.7081 -5076.41
+176.173 -56.4238 -5071.86
+173.5 -57.871 -5277.48
+178.193 -56.4367 -5024.19
+177.145 -55.751 -5161.76
+178.488 -59.071 -5012.71
+176.869 -57.5408 -4983.88
+178.37 -56.9162 -5017.71
+179.203 -58.9362 -4960.2
+180.29 -58.3326 -4875.67
+178.595 -58.1337 -5002.42
+177.412 -56.4319 -4962.84
+176.612 -58.7971 -4937.33
+177.078 -58.3516 -5010.44
+179.64 -58.6353 -4958.45
+178.571 -59.9906 -4987.05
+180.007 -59.0805 -4652.35
+177.101 -59.1301 -4994.91
+177.352 -57.9018 -5051.48
+179.33 -58.2174 -5093.25
+175.138 -58.4859 -5022.1
+178.68 -58.575 -4860.79
+179.537 -57.0402 -4985.29
+177.669 -58.7718 -4999.29
+177.917 -58.2609 -5068.06
+174.547 -59.7791 -4909.96
+175.61 -59.2294 -5121.37
+180.329 -58.7295 -4768.49
+175.617 -59.6684 -4942.52
+178.48 -59.5515 -5162.08
+176.373 -59.2989 -4876.7
+175.953 -58.9736 -5119.32
+175.717 -58.134 -4995.73
+177.752 -59.309 -4752.12
+176.632 -59.7691 -4737.11
+179.882 -57.788 -5086.91
+175.335 -58.8983 -5118.12
+176.363 -58.3898 -5035.15
+174.835 -59.2718 -4945.76
+174.617 -58.7871 -5130.46
+177.626 -59.8698 -4754.56
+177.101 -59.4737 -4906.72
+178.453 -57.3775 -5151.5
+175.856 -58.618 -5056.37
+174.028 -59.4513 -5082.19
+173.627 -59.8107 -4765.27
+179.893 -57.3556 -4910.61
+179.276 -57.4162 -5073.48
+176.558 -57.9879 -4979.03
+174.017 -58.1757 -5121.97
+173.949 -59.0482 -5129.41
+174.499 -58.418 -5187.6
+177.872 -57.1303 -5015.87
+177.642 -57.4745 -5021.93
+173.883 -58.5885 -5110.49
+172.634 -59.8121 -4845.52
+173.185 -59.3464 -4955.68
+172.375 -59.3785 -4886.51
+174.802 -58.0601 -5254.15
+172.55 -59.0813 -4946.93
+176.795 -56.174 -5001.45
+173.076 -58.8093 -5158.06
+179.225 -59.3274 -4515.85
+179.248 -59.7725 -4609.07
+177.658 -56.7808 -4907.77
+172.356 -58.8106 -5077.53
+178.931 -57.0902 -5213.17
+173.243 -58.3007 -5225.27
+172.49 -58.4505 -5212.46
+175.981 -57.5992 -5137.67
+178.141 -57.8213 -4995.36
+178.939 -57.794 -5286.17
+175.305 -57.7728 -5118.21
+179.995 -59.5657 -4590.81
+183.708 -55.8516 -5034.03
+182.756 -55.7814 -5083.61
+181.299 -56.154 -5124.27
+182.305 -55.2602 -5150.71
+183.292 -55.3222 -5287.46
+181.341 -55.6658 -5171.48
+180.43 -55.7769 -5183.56
+181.493 -55.2473 -5199.93
+180.711 -55.2779 -5142.33
+184.02 -55.1547 -5213.72
+184.719 -55.2242 -5240.81
+182.032 -55.9887 -5241.62
+181.981 -55.5867 -5267.19
+182.668 -56.2341 -5060.37
+184.24 -55.5311 -5244.91
+180.55 -56.3226 -5181.45
+182.161 -56.5249 -5074.67
+181.29 -56.6448 -5111.66
+183.342 -56.2327 -5075.52
+184.558 -55.9635 -5238.64
+188.656 -56.044 -4873.96
+185.439 -55.2909 -5262.5
+184.121 -56.2916 -5006.78
+185.141 -55.6701 -5077.12
+180.603 -56.7513 -5080.07
+186.189 -55.1352 -5194.55
+183.039 -56.6105 -5017.34
+181.949 -57.0247 -5043.56
+187.18 -55.236 -5036.11
+188.101 -55.3035 -4958.17
+181.113 -57.1391 -4989.88
+185.218 -56.0743 -5040.13
+185.967 -55.6048 -5084.03
+186.78 -55.5951 -5039.3
+184.939 -56.4248 -5344.13
+183.799 -56.6414 -5024.52
+184.419 -56.6553 -5084.32
+186.847 -58.8791 -4814.89
+182.742 -57.0089 -4906.88
+188.802 -56.5727 -4858.42
+183.048 -59.3476 -4748.42
+186.327 -56.6373 -5292.23
+188.642 -57.3553 -4852.58
+186.296 -56.281 -5033.42
+186.782 -58.4368 -4755.85
+186.169 -58.6167 -5156.28
+184.712 -58.6222 -5032.56
+184.386 -58.9965 -4921.3
+181.606 -58.0508 -4930.94
+181.159 -58.3544 -4731.48
+180.813 -57.9411 -4903.96
+186.532 -55.981 -5131.68
+188.537 -58.1154 -4901.43
+184.505 -59.3567 -5103.23
+185.154 -59.5026 -4989.57
+185.179 -59.1048 -5349.9
+185.511 -58.3359 -4712.58
+181.807 -58.3974 -4770.44
+181.569 -58.7618 -4800.26
+186.044 -59.014 -5048.48
+185.53 -58.7505 -5240.58
+183.778 -59.1613 -4477.08
+181.799 -57.3921 -4977.9
+180.846 -58.6371 -4552.77
+186.261 -57.0418 -4281.52
+185.624 -56.7537 -5201.48
+188.636 -57.019 -5014.14
+184.266 -57.0125 -4826.24
+184.014 -57.4134 -5021.94
+183.522 -57.0206 -5082.84
+187.308 -55.9865 -5059.18
+182.34 -58.1934 -4966.75
+187.921 -56.7426 -5038.11
+187.954 -56.2848 -4991.79
+186.233 -58.2826 -5067.03
+183.05 -58.9013 -4614.66
+182.361 -58.6266 -4688.41
+184.752 -58.178 -4729.17
+185.692 -56.3558 -5100.06
+188.234 -55.7099 -4883.16
+188.011 -57.1816 -4950.39
+182.314 -59.0752 -4727.43
+185.801 -55.9904 -5065.03
+187.058 -56.4115 -4903.41
+187.127 -56.9594 -4709.53
+187.597 -55.639 -4839.91
+187.959 -55.9386 -4916.72
+182.472 -57.4165 -4849.41
+183.257 -57.4247 -5060.43
+184.863 -57.4038 -4937.96
+185.591 -57.1765 -4999.25
+187.387 -58.6057 -4699.76
+185.969 -57.9814 -5005.71
+180.553 -57.4827 -5030.74
+184.949 -56.8981 -4922.76
+186.149 -57.3759 -4741.4
+181.339 -57.6269 -4932.26
+183.06 -58.4251 -4687.12
+183.81 -58.7224 -4452.12
+186.588 -59.2392 -4684.86
+185.208 -57.8979 -4806.9
+180.867 -58.973 -4682.32
+183.912 -58.2132 -4767.9
+183.723 -57.7523 -4899.03
+182.097 -57.7631 -4875.63
+186.68 -58.0656 -4717.48
+183.876 -59.6432 -4518.17
+188.276 -57.6856 -4542.73
+184.698 -59.6852 -4402.56
+182.986 -57.8855 -4741.37
+185.954 -59.455 -4450.36
+187.507 -57.3925 -4737.54
+182.995 -59.7832 -4470.92
+187.309 -59.3067 -4410.02
+187.956 -58.0612 -4693.79
+186.794 -57.3712 -4691.38
+181.568 -59.2509 -4505.95
+185.701 -57.5856 -4759.18
+186.754 -59.5206 -4289.73
+184.417 -57.821 -4622.41
+186.438 -57.69 -4637.74
+180.792 -59.3963 -4618.01
+187.389 -58.2453 -4623.44
+182.3 -59.5147 -4714.42
+187.291 -57.7804 -4842.58
+187.729 -58.9557 -4533.27
+187.37 -59.704 -4258.51
+186.558 -59.9008 -4410.51
+180.707 -59.7875 -4219.36
+188.266 -58.5362 -4604.33
+185.441 -59.8967 -4328.96
+181.56 -59.741 -4673.65
+187.988 -59.2929 -3919.33
+182.333 -59.8816 -4279.57
+188.6 -59.1282 -4195.31
+188.146 -59.8115 -4216.83
+188.428 -59.51 -4348.07
+187.85 -59.5271 -4573.68
+189.291 -55.8792 -4601.86
+192.706 -56.7469 -4626.77
+189.455 -56.2663 -4567.16
+192.496 -56.4139 -4285.89
+188.942 -55.1739 -4872.39
+188.796 -55.6081 -4817.95
+189.646 -56.6613 -4751.2
+192.851 -57.094 -4514.74
+194.826 -56.5678 -4750.83
+195.383 -56.658 -5050.24
+195.788 -56.948 -4680.14
+196.512 -55.8297 -4997
+194.813 -55.2449 -4834.94
+194.109 -55.3699 -4619.84
+195.66 -55.6565 -4997
+193.328 -55.1704 -4831.25
+192.938 -55.8734 -4103.26
+193.663 -55.7594 -4603.45
+193.281 -56.349 -4553.54
+194.996 -56.9855 -4332.09
+197.151 -55.8017 -4488.4
+194.166 -56.7329 -4653.72
+195.651 -55.0185 -4997
+194.33 -56.2291 -4952.3
+190.124 -58.2308 -4693.79
+189.349 -56.9909 -4728.08
+190.351 -55.5431 -4681.24
+190.099 -59.4359 -4676.9
+192.946 -55.5227 -4823.73
+190.865 -58.5147 -4528.79
+196.192 -56.1663 -4721.76
+195.978 -56.5739 -4847.14
+194.633 -55.7461 -4497.67
+189.527 -55.53 -4656.93
+195.277 -56.2231 -4120.52
+192.05 -56.2628 -4609.86
+191.896 -55.97 -4683.35
+192.266 -55.6352 -4595.08
+192.493 -55.1675 -4706.33
+191.29 -55.6515 -4614.62
+191.684 -55.172 -4659.28
+190.804 -55.1379 -4502.29
+190.715 -59.4003 -4549.62
+190.833 -58.964 -4170.82
+191.694 -58.7946 -4416.8
+196.613 -55.3743 -4034.21
+188.965 -57.9637 -4371.92
+189.529 -57.9996 -4935.04
+189.951 -55.9301 -4600.84
+191.494 -58.3387 -4397.7
+190.167 -56.9998 -4638.75
+189.109 -57.2721 -4935.86
+191.351 -56.2111 -4366.43
+192.21 -59.1501 -4363.57
+190.674 -55.9548 -4499.28
+191.926 -56.6117 -4674.14
+190.402 -56.4424 -4458.26
+192.5 -56.0876 -4681.35
+192.596 -57.3912 -4680.33
+190.458 -59.6955 -4111.47
+192.227 -57.048 -4559.17
+191.186 -56.6245 -4493.05
+191.592 -59.3739 -4369.1
+190.123 -57.7692 -4775.14
+190.386 -57.4039 -4629.26
+190.816 -56.8569 -4588.34
+195.623 -57.2591 -4140.01
+190.094 -58.6613 -4250.45
+189.481 -59.2805 -4470.37
+190.899 -58.0728 -4894.56
+190.104 -59.096 -4525.17
+189.201 -57.6431 -4695.96
+193.412 -56.9347 -4588.47
+191.468 -56.9748 -4429.88
+193.316 -57.349 -4418.03
+189.719 -57.3521 -4827.64
+192.372 -57.6994 -4263.5
+190.926 -57.2271 -4526.49
+192.211 -58.392 -4540.94
+196.396 -56.8694 -3997
+191.767 -57.421 -4117.16
+191.767 -57.9389 -4557.84
+193.043 -57.707 -4549.52
+189.251 -58.3444 -4510.33
+195.077 -57.4607 -4572.21
+190.99 -57.644 -4578.51
+192.408 -59.5279 -4327.61
+194.167 -57.2654 -4667.98
+193.814 -57.688 -4501.69
+192.655 -58.0399 -4093.4
+192.655 -58.8284 -4441.6
+193.537 -58.1068 -4792.94
+196.943 -56.1499 -4121.9
+193.666 -58.4782 -4423.36
+192.089 -59.9005 -4328.58
+194.223 -58.3867 -4672.39
+193.454 -58.7632 -4506.9
+194.542 -57.6785 -4449.51
+194.109 -58.7197 -4223.06
+191.176 -59.8324 -4600.07
+193.021 -58.4257 -4423.2
+193.278 -59.1621 -4204.25
+194.387 -58.0264 -4357.02
+193.989 -59.0711 -4398.96
+196.807 -56.5649 -3997
+194.75 -58.6827 -4550.49
+195.263 -57.9521 -4547.33
+194.568 -58.9731 -4256.02
+194.954 -58.3569 -4482.65
+193.835 -59.5296 -4333.39
+193.067 -59.5396 -4459.06
+194.701 -59.3633 -4286.77
+196.855 -58.1723 -4036.36
+196.393 -57.264 -3997
+197.149 -58.3691 -4029.68
+197.209 -58.5791 -4023.16
+196.674 -58.4638 -4025.97
+193.397 -59.9038 -4095.24
+196.8 -57.7861 -4023.65
+189.283 -58.8337 -4468.92
+197.007 -58.7925 -4017.03
+196.385 -58.7947 -4013.36
+194.036 -59.9172 -4117.19
+189.045 -59.49 -4487.29
+196.784 -59.0483 -4008.14
+196.858 -59.8817 -3997
+196.178 -59.1665 -4000.37
+196.017 -59.955 -3997
+194.477 -59.7496 -4423.26
+195.796 -58.8192 -3957.05
+195.163 -59.804 -4053.3
+189.719 -59.7125 -4451.08
+197 -59.4216 -3997
+195.292 -59.0289 -4430.18
+196.227 -58.0782 -3948.64
+197.263 -57.391 -3997
+195.615 -59.484 -3997
+196.329 -59.5708 -3997
+197 -56.9938 -3997
+188.915 -59.8093 -4508.63
+192.773 -59.8385 -4048.17
+192.719 -59.2397 -4485.85
+195.801 -58.4397 -3922.75
+195.887 -57.6344 -3917.39
+195.323 -58.6661 -4717.31
+197.648 -55.4859 -4804.1
+197.984 -55.1434 -4822.42
+198.468 -55.4248 -4421.17
+197.747 -55.8832 -4347.07
+198.56 -55.0665 -4618.59
+198.413 -55.8549 -4231.49
+199.105 -55.3351 -4272.21
+199.093 -55.7013 -4298.22
+197.492 -56.0914 -4111.93
+198.066 -56.1832 -4041.67
+199.584 -55.2438 -3997
+199.123 -56.0263 -4141.15
+202.454 -57.3025 -3997
+199.569 -56.2887 -3997
+202.433 -55.4001 -3997
+200.864 -57.6638 -3997
+203.561 -58.0728 -3291.55
+202.96 -58.0095 -3229.95
+204.597 -55.505 -3997
+197.609 -56.4432 -3997
+200.607 -57.4098 -3997
+201.499 -57.8679 -3997
+197.367 -58.133 -4027.9
+197.663 -58.4763 -4016.57
+198.842 -56.3232 -3997
+199.457 -56.5945 -3997
+201.776 -56.1528 -3997
+203.557 -56.7049 -3997
+204.821 -55.1869 -3997
+204.108 -55.1509 -3997
+201.942 -55.1265 -3997
+202.123 -56.5365 -3997
+197.552 -58.7936 -4012.59
+198.479 -57.6945 -3897.44
+197.714 -59.3632 -3997
+204.433 -55.8467 -3997
+199.735 -57.3227 -3997
+203.893 -55.5052 -3997
+202.605 -55.118 -3997
+201.813 -57.2598 -3997
+199.758 -55.6029 -3997
+200.779 -57.9841 -3814.44
+197.341 -59.0796 -4007.78
+198.017 -58.2177 -4005.68
+200.116 -58.4806 -3997
+203.329 -55.1005 -3997
+198.742 -58.3798 -3997
+199.963 -58.0803 -3997
+199.047 -58.027 -3613.52
+202.836 -56.5369 -3997
+202.86 -56.9433 -3997
+199.236 -57.1748 -3997
+203.149 -56.3407 -3997
+202.007 -55.4634 -3997
+202.283 -57.9349 -3635.96
+202.003 -57.5753 -3997
+198.493 -59.0395 -3997
+202.473 -56.152 -3997
+198.243 -58.5184 -3997
+201.25 -57.4131 -3997
+200.036 -59.2772 -3997
+201.732 -55.7549 -3997
+198.098 -58.7773 -4000.7
+203.104 -55.5457 -3997
+200.195 -57.6122 -3997
+200.44 -59.8248 -3990.01
+200.388 -59.484 -3997
+200.802 -58.4294 -3997
+197.747 -57.8111 -3997
+199.867 -59.5543 -3997
+200.654 -59.187 -3997
+199.94 -58.9706 -3997
+202.49 -55.7222 -3997
+198.296 -56.5125 -3997
+203.117 -55.9923 -3997
+198.686 -59.8693 -3997
+199.87 -58.6708 -3997
+200.449 -58.7722 -3997
+197.944 -59.0783 -3999.45
+198.451 -59.424 -3997
+202.016 -56.9569 -3997
+201.439 -56.6661 -3997
+199.257 -59.178 -3997
+203.3 -57.7973 -3997
+203.295 -57.4384 -3997
+204.343 -56.2076 -3997
+203.631 -57.1166 -3972.44
+203.716 -56.2935 -3997
+199.824 -59.8839 -3997
+201.444 -56.3396 -3997
+198.691 -58.7575 -3997
+199.251 -59.6809 -3997
+198.395 -58.0184 -3738.93
+204.301 -56.5928 -3906.13
+198.079 -56.8118 -3997
+198.505 -57.2315 -3997
+199.506 -58.3985 -3997
+202.712 -57.6647 -3997
+203.772 -55.8998 -3997
+197.445 -56.7779 -3997
+197.705 -57.1085 -3997
+197.937 -57.4448 -3997
+200.18 -57.2753 -3997
+199.759 -56.9607 -3997
+200.179 -56.6105 -3997
+201.309 -58.8951 -3940.34
+201.605 -58.5357 -3662.09
+200.601 -57.0674 -3997
+200.866 -56.7482 -3997
+200.77 -56.364 -3997
+197.799 -59.8414 -3997
+198.885 -56.8011 -3997
+201.384 -55.2817 -3997
+199.651 -55.9648 -3997
+200.163 -55.3467 -3997
+200.423 -55.6767 -3997
+199.334 -58.7259 -3997
+200.281 -55.9652 -3997
+200.886 -55.5165 -3997
+200.09 -56.2386 -3997
+201.056 -55.9672 -3997
+199.306 -57.5904 -3997
+201.331 -57.0186 -3997
+201.981 -58.8187 -3447.38
+205.062 -55.8471 -3745.87
+204.855 -56.123 -3767.37
+201.46 -59.3522 -3761.98
+200.951 -59.5871 -3842.79
+205.387 -55.2477 -3739.42
+204.927 -56.4586 -3627.63
+205.251 -55.5206 -3780.08
+201.323 -58.2119 -3645.09
+202.132 -59.175 -3471.03
+204.331 -57.0457 -3763.14
+201.096 -59.9065 -3646.55
+204.985 -57.1603 -3563.45
+204.935 -56.8464 -3596.55
+202.07 -59.5223 -3511.49
+204.113 -57.4509 -3587.4
+201.94 -58.2342 -3220.76
+201.681 -59.7745 -3552.86
+205.457 -57.0832 -3349.26
+205.462 -56.2319 -3423.72
+204.8 -57.4188 -3493.72
+203.956 -57.8314 -3414.63
+202.298 -58.5713 -3086.82
+205.393 -57.3888 -3368.71
+202.63 -59.5046 -3166.45
+204.687 -57.7575 -3335.7
+202.445 -59.8052 -3307.21
+202.601 -58.9268 -3079.15
+204.075 -58.2013 -3296.77
+205.315 -57.702 -3263.85
+202.767 -59.2398 -3060.92
+203.73 -58.3152 -3282.11
+204.044 -58.4503 -3256.7
+203.668 -58.5504 -3246.81
+203.271 -58.3035 -3230.64
+204.618 -58.1043 -3229.3
+204.528 -58.4358 -3227.08
+203.654 -58.8355 -3204.64
+204.219 -58.7486 -3199.99
+203.056 -58.6526 -3164.26
+202.631 -58.2837 -3159.43
+204.002 -59.1127 -3148.36
+205.247 -58.0275 -3122.08
+203.286 -59.1023 -3137.07
+204.975 -58.7386 -3149.77
+205.177 -58.3762 -3143.48
+204.683 -59.1013 -3122.47
+203.166 -59.8202 -3037.58
+205.476 -59.1409 -3059.53
+203.797 -59.4399 -3102.38
+204.431 -59.4349 -3077.31
+203.641 -59.7009 -3065.42
+205.603 -59.5077 -3017.37
+203.215 -59.4679 -3085.18
+205.05 -59.4413 -3050.97
+204.239 -59.8073 -3023.31
+203.773 -59.9446 -3019.52
+205.38 -59.7664 -2997
+204.816 -59.707 -3016.39
+209.476 -54.8529 -3828.85
+205.814 -55.1326 -3625.83
+208.929 -54.9016 -3737.53
+207.687 -55.0026 -3711.02
+209.409 -55.199 -3700.09
+208.278 -54.8896 -3750.52
+207.077 -55.0162 -3611.9
+208.202 -55.2821 -3621.42
+208.794 -55.2278 -3610.14
+205.814 -55.4923 -3482.12
+207.601 -55.3315 -3558.72
+209.258 -55.4785 -3581.92
+206.418 -55.045 -3532.27
+205.743 -55.8714 -3406.39
+206.987 -55.3655 -3452.5
+208.751 -55.5658 -3490.7
+208.142 -55.64 -3493
+207.496 -55.6751 -3397.74
+209.369 -55.795 -3486.91
+206 -56.2002 -3158.33
+206.382 -55.4175 -3357.19
+208.737 -55.9713 -3353.29
+208.003 -55.9865 -3326.57
+206.888 -55.7111 -3292.5
+206.002 -56.4756 -3118.66
+209.48 -56.1964 -3362.25
+205.596 -56.7249 -3297.14
+207.354 -56.0161 -3233.32
+205.97 -57.0513 -3114.91
+205.908 -57.3219 -3134.28
+208.951 -56.3268 -3243.99
+205.888 -57.6282 -3133.71
+208.435 -56.2968 -3246.58
+206.309 -55.7638 -3195.1
+206.744 -56.0427 -3129.4
+207.814 -56.3301 -3155.21
+208.782 -56.5303 -3159.95
+209.346 -56.6011 -3173.09
+205.868 -57.9441 -3049.22
+208.318 -56.6178 -3093.86
+206.261 -56.0493 -3098.23
+207.159 -56.3569 -3062.38
+205.815 -58.281 -3051.79
+205.794 -58.7001 -3042.27
+206.244 -59.1018 -2997
+207.636 -56.721 -2997
+208.876 -56.8017 -3068.22
+209.448 -56.9531 -2997
+206.098 -59.4319 -2997
+206.503 -56.3772 -2997
+206.452 -56.8435 -2987.22
+206.012 -59.7578 -2997
+206.412 -58.1882 -2975.88
+209.46 -57.2378 -2997
+206.319 -57.5249 -2971.37
+206.548 -60.0251 -2997
+208.16 -58.7808 -2997
+207.812 -58.9811 -2997
+208.839 -58.401 -2997
+206.315 -58.4833 -2997
+207.24 -59.0609 -2997
+207.21 -59.3518 -2997
+207.551 -58.2243 -2997
+207.638 -58.6156 -2997
+206.614 -59.7036 -2997
+209.431 -57.5375 -2997
+208.897 -57.3296 -2997
+209.008 -57.0664 -2997
+206.424 -57.2549 -2978.37
+206.499 -57.8322 -2969.92
+207.259 -58.785 -2997
+206.959 -58.4538 -2997
+208.398 -57.0211 -2997
+209.224 -58.1982 -2990.87
+206.647 -58.8137 -2997
+206.793 -59.1408 -2997
+206.684 -59.3925 -2997
+208.175 -58.4915 -2997
+208.221 -58.143 -2997
+208.786 -58.0192 -2981.82
+207.773 -57.9235 -2997
+208.834 -57.6701 -2997
+207.731 -59.3063 -2997
+207.671 -59.5807 -2997
+207.175 -59.6373 -2997
+207.625 -59.813 -2997
+207.248 -59.9826 -2997
+208.248 -57.7935 -2997
+208.28 -57.4218 -2997
+207.702 -57.1492 -2997
+207.599 -57.5675 -2997
+207.158 -56.9194 -2997
+207.037 -57.2186 -2994.11
+206.982 -56.6436 -2997
+207.208 -57.8733 -2986.95
+208.446 -59.0331 -2997
+208.729 -58.7827 -2997
+208.287 -59.2855 -2997
+208.927 -59.0656 -2997
+208.175 -59.5565 -2997
+208.832 -59.2807 -2997
+208.741 -59.5461 -2997
+208.061 -59.7975 -2997
+209.235 -59.8618 -2997
+206.853 -57.5507 -2983.72
+209.273 -58.7043 -2997
+209.359 -58.9932 -2997
+208.568 -59.7972 -2997
+209.293 -59.2255 -2997
+209.346 -59.495 -2997
+209.483 -58.4666 -2995.27
+209.413 -57.9018 -2974.34
+209.617 -58.1983 -2975.83
+206.941 -58.1163 -2983.31
+161.544 -60.2243 -3525.22
+162.298 -60.1773 -4177.69
+161.973 -60.6025 -3340.42
+160.758 -60.2458 -3212.45
+160.057 -60.1546 -3555.35
+161.155 -60.5798 -2997
+161.391 -60.89 -2997
+157.17 -64.5123 -2997
+157.217 -63.9877 -2997
+157.333 -64.2218 -2997
+161.623 -64.5629 -2982.37
+157.573 -64.7144 -2997
+158.33 -64.6581 -2997
+157.833 -64.3897 -2997
+161.188 -61.6205 -2746.24
+160.661 -60.9049 -2997
+160.589 -60.5767 -2997
+161.053 -64.6886 -2977.87
+157.513 -63.7818 -2877.41
+162.002 -61.0933 -2997
+159.749 -60.4667 -2868.2
+157.695 -64.0654 -2980.66
+159.398 -64.7544 -2949.73
+158.187 -60.1437 -2854.24
+157.814 -59.9523 -2829.09
+157.372 -63.4654 -2679.58
+158.668 -60.3417 -2524.65
+160.246 -60.4323 -2997
+160.455 -64.7423 -2968.68
+161.691 -61.4333 -2997
+161.772 -61.7289 -2997
+158.966 -64.6863 -2919.31
+159.344 -60.1769 -2739.02
+157.52 -60.5987 -2997
+157.48 -60.2752 -2711.44
+158.044 -60.464 -2951.33
+158.446 -64.3601 -2885.04
+158.242 -64.1276 -2862.91
+161.156 -61.2541 -2997
+161.812 -62.0833 -2525.39
+161.592 -64.2263 -2839.74
+157.4 -60.8864 -2997
+157.393 -61.2289 -2853.56
+157.444 -61.4873 -2705.26
+157.91 -60.7309 -2877.36
+162.227 -63.3928 -2805.87
+160.108 -60.6994 -2956.38
+160.699 -61.5115 -2177.51
+159.148 -60.5678 -2987.6
+158.101 -61.02 -2662.76
+161.119 -64.3853 -2869.2
+160.593 -64.4836 -2879.93
+158.092 -63.8567 -2765.88
+158.485 -60.6852 -2899.27
+159.339 -64.5526 -2859.54
+159.927 -64.548 -2858.7
+158.909 -64.4563 -2816.53
+159.575 -60.7505 -2877.46
+160.285 -64.3205 -2813.52
+159.446 -64.3264 -2758.45
+161.11 -64.1439 -2779.72
+157.944 -61.37 -2550.39
+157.42 -63.2125 -2492.79
+159.923 -64.2559 -2750.61
+162.008 -62.8983 -2463.46
+158.562 -63.9273 -2619.05
+158.98 -60.9562 -2763.05
+157.984 -63.5668 -2639.21
+160.697 -64.2296 -2791.3
+158.907 -64.1463 -2677.98
+160.261 -64.0972 -2728.66
+161.201 -61.9516 -2009.45
+161.374 -63.9142 -2712.65
+161.712 -63.5788 -2583.02
+157.334 -61.7399 -2628.28
+157.8 -61.604 -2497.09
+159.822 -61.05 -2642.63
+160.77 -63.9639 -2696.83
+158.788 -60.004 -2048.71
+158.554 -63.6714 -2496.66
+158.517 -61.2555 -2596.68
+160.391 -61.2773 -2391.71
+160.249 -63.798 -2617.13
+159.642 -64.0152 -2631.58
+159.167 -61.3596 -2526.55
+157.894 -63.273 -2494.05
+160.903 -63.61 -2572.76
+159.057 -63.8243 -2534.05
+159.637 -63.6639 -2501.58
+161.767 -63.168 -2418
+157.906 -61.8383 -2337.16
+157.345 -63.0235 -2349.44
+160.205 -63.4598 -2487.77
+161.847 -62.4323 -2171.29
+158.539 -63.3364 -2338.18
+159.837 -61.3742 -2411.76
+161.257 -63.3279 -2485.88
+160.693 -63.2474 -2455.19
+159.593 -63.3295 -2373.68
+158.395 -61.5718 -2418.16
+157.391 -62.0654 -2374.25
+159.084 -63.5096 -2393.37
+161.154 -63.0525 -2379.31
+159.572 -61.6013 -2293.88
+160.648 -62.9234 -2338.02
+157.766 -63.0194 -2319.53
+158.28 -63.0377 -2280
+160.073 -63.0833 -2334.77
+159.006 -61.7009 -2313.93
+161.83 -62.6935 -2264.06
+157.127 -62.8909 -2254.74
+159.093 -63.2445 -2288.35
+161.073 -62.8051 -2284.11
+161.53 -62.8687 -2307.87
+158.021 -62.1482 -2136.75
+158.496 -61.9006 -2217.56
+160.242 -62.7946 -2246.7
+160.168 -61.5694 -2221.33
+160.672 -62.5722 -2211.25
+159.404 -61.8182 -2167.77
+158.092 -62.8152 -2156.67
+159.037 -61.9663 -2121.87
+159.421 -63.0395 -2248.17
+161.363 -62.6087 -2227.92
+157.525 -62.4069 -2035.94
+160.078 -62.6121 -2161.75
+158.848 -63.0304 -2183.02
+159.886 -61.8181 -2091.05
+159.77 -62.8031 -2198.8
+157.601 -62.754 -2138.5
+161.256 -62.3043 -2108.23
+158.651 -62.1902 -2025.53
+159.204 -62.7685 -2124.93
+160.106 -62.3749 -2077.35
+157.15 -62.6449 -2018.91
+159.527 -62.0194 -2006.37
+158.208 -62.4995 -1997
+158.603 -62.7656 -2060.82
+159.62 -62.5451 -2087.58
+160.636 -62.1777 -2061.99
+160.554 -61.8148 -1997
+160.054 -62.0746 -1997
+158.994 -62.4519 -1997
+159.574 -62.2678 -1997
+159.149 -62.175 -1997
+171.474 -60.4488 -4743.68
+170.905 -60.1449 -4910.83
+171.724 -60.0275 -4701.8
+171.18 -60.8304 -4997
+169.124 -60.1746 -4658.61
+165.405 -60.1987 -4789.29
+169.985 -60.2535 -4979.03
+170.644 -60.5682 -4589.81
+168.332 -60.1452 -4557.69
+170.941 -61.1435 -4554.55
+169.334 -60.4997 -4540.69
+167.536 -60.0575 -4572.19
+168.65 -60.5212 -4490.31
+171.104 -61.4779 -4368.9
+166.155 -60.2455 -4295.62
+167.738 -60.5298 -4414.18
+169.844 -60.7147 -4382.04
+170.439 -60.9525 -4235.07
+169.086 -60.8462 -4308.73
+166.901 -60.362 -4409.51
+165.661 -60.498 -3999.52
+168.239 -60.9298 -4223.02
+166.995 -60.7144 -4184.6
+171.167 -61.9106 -3997.01
+170.33 -61.3323 -3997
+169.656 -61.1141 -4115.75
+167.408 -60.9838 -4125.42
+168.74 -61.3478 -3997
+166.277 -60.6751 -3997
+166.65 -61.0213 -3997
+167.756 -61.3391 -3626.39
+162.666 -60.4399 -3997
+163.05 -60.1549 -4241.2
+164.623 -60.1853 -3756.64
+164.952 -60.5694 -3707.72
+169.561 -61.5509 -3997
+163.832 -60.1679 -4200.55
+163.319 -60.5001 -3997
+170.315 -61.7849 -3997
+164.106 -60.528 -3997
+170.545 -62.1805 -3997
+169.976 -62.102 -3323.3
+169.543 -61.9443 -3699.73
+171.214 -62.3066 -3866.33
+171.795 -62.0929 -3997
+171.758 -62.3858 -3997
+166.973 -61.3335 -3274.57
+163.56 -60.9261 -3131.44
+165.937 -61.0547 -2997
+165.53 -60.8103 -2997
+164.961 -60.9667 -2997.02
+162.734 -60.7884 -3039.32
+169.566 -62.2056 -3033.09
+170.62 -62.5561 -2676.98
+168.845 -61.8216 -3637.45
+164.373 -60.889 -3387.71
+171.404 -62.7035 -3091.71
+167.218 -61.6222 -3154.08
+166.265 -61.3498 -2997
+164.589 -61.1347 -3018.11
+163.084 -62.0328 -2825.22
+164.759 -63.3222 -2997
+163.891 -63.5124 -2997
+165.6 -63.4772 -2997
+163.671 -62.1888 -2997
+163.203 -64.2733 -2997
+163.832 -64.6929 -2997
+163.185 -62.8991 -2997
+162.861 -61.2078 -2997
+165.671 -63.8783 -2997
+164.458 -63.7662 -2997
+165.086 -63.6855 -2997
+165.936 -61.6098 -2997
+165.427 -64.3897 -2997
+164.489 -62.9045 -2997
+164.382 -64.1418 -2997
+162.14 -64.3854 -2997
+165.391 -61.0977 -2997
+168.498 -64.0515 -2997
+168.717 -64.4151 -2997
+162.296 -61.4831 -2997
+166.541 -61.6438 -2997
+162.405 -61.8667 -2997
+165.08 -62.9784 -2997
+163.839 -62.7346 -2997
+163.893 -63.1171 -2997
+165.015 -62.6965 -2997
+167.112 -64.1182 -2997
+163.829 -64.3641 -2997
+168.273 -64.632 -2997
+163.567 -61.3742 -2997
+166.916 -61.986 -2997
+165.096 -64.6324 -2997
+164.985 -63.9879 -2997
+165.575 -63.1365 -2997
+167.022 -63.734 -2997
+164.091 -61.4731 -2997
+166.447 -64.3472 -2997
+166.405 -63.9854 -2997
+162.625 -64.2294 -2997
+167.522 -63.4696 -2997
+169.726 -64.5675 -2997
+165.857 -64.2213 -2997
+165.576 -62.5059 -2997
+165.489 -62.1994 -1997
+162.422 -62.6751 -2819.59
+163.891 -62.4333 -2997
+166.306 -63.6247 -2997
+169.115 -64.151 -2997
+162.88 -63.8816 -2997
+169.213 -64.6236 -2997
+163.304 -63.6258 -2997
+167.08 -64.523 -2997
+167.922 -61.778 -2997
+166.873 -63.404 -2996.99
+170.376 -62.7861 -2997
+165.816 -64.5398 -2997
+167.878 -64.3196 -2997
+163.385 -64.5891 -2997
+166.246 -63.2774 -2851.97
+170.115 -64.0889 -2945.59
+163.854 -61.7998 -2997
+163.011 -61.6274 -2997
+170.866 -64.6035 -2997
+164.109 -61.1988 -2997
+167.831 -63.8293 -2997
+162.756 -63.4917 -2997
+165.382 -64.1563 -2997
+164.96 -62.3867 -2526.04
+165.603 -62.8222 -2997
+171.44 -64.5787 -2997
+170.686 -64.0597 -2662.25
+171.067 -64.3297 -2997
+169.282 -64.4037 -2997
+166.881 -62.7861 -2890.99
+166.919 -62.427 -2997
+166.823 -63.1029 -2754.39
+167.293 -63.2265 -2974.45
+169.698 -64.2556 -2997
+162.459 -62.2575 -2931.28
+164.986 -61.2497 -2997
+170.355 -64.39 -2997
+163.262 -63.2877 -2997
+164.393 -64.5111 -2997
+164.944 -64.3032 -2997
+170.779 -62.8079 -1997
+166.399 -64.6798 -2997
+169.96 -62.3911 -2997
+164.963 -62.1264 -2177.59
+168.794 -64.7316 -2997
+162.11 -63.9808 -2962.86
+162.347 -63.6581 -2991.47
+164.518 -61.3694 -2996.99
+164.414 -62.5647 -2943.8
+167.695 -64.6937 -2997
+164.348 -62.1992 -2984.45
+164.746 -61.8506 -2356.62
+164.425 -61.6082 -2926.09
+170.092 -62.6502 -2996.99
+165.544 -61.3797 -2997
+163.7 -63.951 -2997
+166.226 -62.9595 -2490.8
+168.411 -63.0973 -2254.48
+168.836 -63.2927 -2745.04
+171.754 -64.2567 -2569.71
+165.96 -61.9208 -2766.66
+170.326 -64.7192 -2997
+168.995 -62.201 -1997
+162.514 -63.1042 -2880.99
+168.484 -63.7467 -2216.01
+168.978 -63.8524 -2106.23
+163.214 -62.4633 -2712.95
+166.182 -62.2785 -2361.89
+169.597 -63.9324 -2323.23
+167.953 -62.9273 -1997
+171.329 -64.0096 -2240.05
+167.675 -62.2204 -2616.81
+170.265 -63.7832 -2276.63
+171.486 -63.0854 -2052.1
+169.415 -62.3998 -2753.88
+168.263 -63.4507 -1997
+166.229 -62.632 -2156.45
+167.414 -62.974 -2608.86
+168.352 -62.0846 -2200.42
+171.863 -64.7421 -2866.06
+165.307 -61.9666 -1997
+170.478 -63.0244 -2435.05
+164.936 -61.529 -2469.59
+169.926 -62.8769 -2660.11
+167.655 -62.6359 -2235.49
+169.575 -62.6408 -2523.25
+165.398 -61.7165 -1997
+168.425 -62.758 -1997
+170.985 -63.7567 -1997
+168.347 -62.4101 -1997
+169.733 -63.6562 -1997
+171.957 -63.8961 -2101.21
+168.879 -63.5635 -1997
+171.013 -62.9696 -1997.02
+169.914 -63.1771 -2087.5
+169.171 -62.9678 -2029.4
+170.074 -63.4689 -1997
+171.519 -63.7321 -1997
+170.679 -63.4924 -1997
+169.401 -63.3999 -1997
+169.309 -63.6765 -1997
+170.917 -63.2176 -1997
+171.372 -63.4442 -1997
+167.818 -63.1873 -1997
+170.412 -63.2761 -1997
+171.956 -63.5765 -1997
+168.978 -62.5605 -1997
+177.431 -60.4318 -4868.59
+178.066 -60.6956 -4997
+175.366 -61.5392 -4786.85
+175.142 -60.175 -4701.38
+174.086 -60.2747 -4793.93
+178.71 -60.8411 -4997
+178.63 -60.537 -4997
+178.8 -60.3029 -4997
+174.038 -60.7665 -4997
+176.872 -60.1524 -4575.12
+174.674 -61.3526 -4144.64
+176.091 -60.1427 -4746.9
+178.178 -60.3025 -4746.74
+178.697 -61.2136 -4502.76
+174.815 -60.6429 -4759.82
+174.572 -60.9971 -4971.97
+173.444 -60.9658 -4629.6
+173.985 -61.1796 -4997
+173.234 -60.17 -5102.89
+172.411 -60.3937 -4846.92
+173.315 -60.5873 -4735.38
+178.166 -61.0335 -4609.99
+176.054 -61.7464 -4847.13
+173.983 -61.6506 -4635.08
+171.863 -60.7518 -4760.67
+175.946 -61.3508 -4633.01
+176.608 -60.5501 -4215.77
+175.714 -60.5855 -4408.42
+172.595 -60.9616 -4433.85
+171.655 -61.1243 -4579.31
+179.209 -60.1359 -4693.18
+173.191 -61.358 -4299.81
+176.128 -62.1097 -3997
+174.484 -62.0577 -3997
+179.232 -61.3666 -3997
+175.344 -61.0584 -3997
+172.107 -61.598 -4067.59
+177.34 -61.0214 -3997
+179.414 -60.5483 -4138.15
+176.656 -61.4575 -3997
+174.79 -61.7234 -3997
+176.269 -60.9894 -3997
+179.33 -61.0341 -3997
+173.019 -61.8426 -4014.86
+176.832 -61.9592 -3997
+178.087 -61.3761 -3997
+172.38 -62.0236 -3997
+179.095 -62.2757 -3997
+179.559 -61.6588 -3997
+180.976 -60.9559 -3997
+180.344 -62.5118 -3997
+181.054 -62.6753 -3997
+180.498 -62.8331 -3997
+176.531 -62.3212 -3997
+179.161 -61.9389 -3997
+181.383 -61.7529 -3997
+177.884 -63.4809 -3997
+178.764 -61.6189 -3997
+177.741 -62.0375 -3997
+181.032 -62.1871 -3997
+180.028 -60.0708 -4040.09
+178.526 -62.0095 -3997
+179.91 -62.0968 -3997
+181.199 -61.3669 -3997
+175.864 -62.4772 -3997
+180.497 -61.6559 -3997
+177.259 -62.4377 -3997
+176.58 -62.6071 -3930.16
+178.112 -61.7348 -3997
+175.371 -62.8536 -3997
+175.373 -62.0182 -3997
+179.861 -62.7859 -3983.97
+174.879 -62.4729 -3997
+177.838 -63.1162 -3997
+177.791 -62.7694 -3997
+178.284 -62.4508 -3997
+179.661 -62.4672 -3997
+180.558 -60.5453 -4309.79
+174.162 -62.6903 -3605.74
+174.146 -62.3676 -3997
+174.685 -62.8582 -3997
+176.189 -62.8767 -3664.98
+173.533 -62.5146 -3997
+181.093 -60.1561 -4596.97
+174.867 -63.2119 -3532.32
+173.663 -62.1144 -3997
+181.657 -62.9292 -3850.03
+179.12 -62.6683 -3826.28
+180.526 -61.2431 -3997
+180.105 -60.9368 -3997
+172.842 -62.7164 -3351.6
+172.831 -62.2911 -3997
+173.51 -62.8886 -2843.71
+172.191 -62.5501 -3933.04
+177.458 -61.6041 -3997
+172.185 -62.2757 -3997
+172.802 -63.1206 -2966.27
+177.073 -62.9008 -3897.52
+177.248 -63.311 -3693.85
+179.867 -61.311 -3997
+180.956 -63.0546 -3786.89
+174.474 -63.9249 -3885.43
+175.731 -63.1966 -3410.64
+174.108 -63.3972 -3454.97
+173.52 -63.2344 -2997
+174.864 -64.0936 -3639.8
+172.148 -62.909 -2608
+178.482 -62.9143 -3689.91
+180.225 -63.1166 -3718.88
+177.372 -63.5953 -3431.38
+179.338 -63.116 -3561.59
+181.56 -63.3513 -3482.2
+180.742 -63.422 -3506.76
+176.515 -63.2248 -3169.12
+173.982 -63.7356 -3353.64
+177.775 -63.7896 -3396.25
+179.939 -63.4745 -3329.92
+178.55 -63.321 -3256.05
+179.19 -63.5486 -3179.88
+174.642 -63.5996 -2839.21
+173.027 -63.3964 -2554.57
+181.249 -63.7336 -3174.11
+180.44 -63.8396 -3063.22
+174.961 -64.3962 -2997
+176.798 -63.5596 -3027.07
+175.358 -63.5313 -2263.94
+179.679 -63.8208 -2997
+179.115 -63.855 -2908.22
+178.501 -63.7223 -2997
+174.375 -64.2281 -3129.74
+177.156 -63.8356 -2997
+181.072 -64.1465 -2997
+175.08 -63.843 -2997.01
+177.138 -64.6606 -2997
+176.456 -64.5694 -2997
+178.189 -64.0349 -2956.55
+176.987 -64.1362 -2997
+176.881 -64.391 -2997
+181.721 -64.3713 -2997
+180.419 -64.2102 -2865.68
+180.738 -64.4141 -2997
+178.865 -64.3498 -2080.71
+172.39 -64.6271 -2581.35
+176.448 -63.8858 -2997
+175.908 -64.7193 -2997
+177.423 -64.3749 -2954.64
+175.355 -64.6399 -2997
+176.419 -64.245 -2997
+179.401 -64.1466 -2997
+177.591 -64.0756 -2695.86
+174.229 -64.5506 -2997
+171.942 -64.5137 -2868.18
+175.78 -64.3958 -2997
+175.392 -64.1067 -2997
+174.749 -64.7218 -2997
+173.63 -64.612 -2997
+173.475 -63.5489 -2686.63
+176.094 -63.5277 -2997
+179.937 -64.3488 -2906.75
+179.98 -64.0699 -2997
+181.178 -64.5565 -2997
+173.037 -64.6875 -2154.88
+173.795 -64.3419 -2770.25
+181.696 -64.708 -2997
+174.142 -63.0468 -2748.62
+175.72 -63.8318 -2953.98
+173.239 -64.4139 -2278.41
+178.765 -64.0583 -2537.36
+173.903 -64.0493 -2022.3
+179.389 -64.5305 -2853.32
+172.314 -64.3627 -2500
+180.649 -64.6893 -2651.5
+178.444 -64.2468 -2391.56
+180.353 -64.4673 -2531.44
+177.928 -64.6418 -1997.01
+172.505 -63.4464 -2088.48
+177.997 -64.3045 -2449.33
+172.289 -64.1227 -2419.38
+175.951 -64.0962 -2251.45
+173.413 -64.1851 -2009.33
+172.756 -64.4568 -1997
+172.586 -63.9061 -1997
+172.871 -63.6468 -1997
+173.283 -63.8945 -1997
+172.051 -63.2582 -1997
+180.021 -64.6739 -2503.22
+178.392 -64.4414 -2119.78
+172.375 -63.6944 -1997
+172.836 -64.1919 -1997
+178.728 -64.664 -1997
+188.726 -61.0389 -4913.76
+189.333 -61.1457 -3997
+188.191 -60.8318 -4148.95
+188.841 -61.3285 -3997
+183.637 -60.1117 -4545.54
+182.821 -60.1719 -4216.4
+184.518 -60.0269 -4157.23
+186.878 -60.3301 -4309.38
+183.351 -60.5752 -4009.68
+184.29 -60.4596 -4203.43
+186.06 -60.3176 -4676.8
+187.617 -60.1246 -4158.41
+184.345 -62.8614 -3918.5
+190.217 -60.5707 -3997
+183.368 -61.0877 -3997
+186.116 -61.1217 -3997
+186.658 -60.7356 -3997
+183.089 -62.3817 -3997
+184.063 -61.3688 -3997
+184.82 -61.208 -3997
+183.748 -62.6323 -3997
+187.464 -61.3444 -3997
+185.34 -61.9696 -3997
+187.47 -60.9906 -3997
+186.875 -61.209 -3997
+189.88 -61.3577 -3997
+181.838 -61.1027 -3997
+185.571 -61.49 -3997
+182.566 -60.8538 -3997
+184.446 -62.4882 -3997
+183.846 -62.2303 -3997
+188.203 -60.474 -3997
+191.031 -60.5072 -3997
+185.75 -60.7259 -3997
+182.673 -61.6775 -3997
+182.472 -62.54 -3997
+183.189 -61.9523 -3997
+182.207 -62.0643 -3997
+184.932 -60.7877 -3997
+181.993 -61.5352 -3997
+190.035 -61.0201 -3997
+188.146 -61.2675 -3997
+182.632 -61.2967 -3997
+188.601 -60.1694 -4139.33
+184.59 -62.0965 -3997
+184.722 -61.6611 -3997
+188.624 -61.6426 -3976.93
+184.14 -60.91 -3997
+191.21 -60.2059 -3955.72
+185.44 -61.0643 -3997
+189.11 -60.6724 -3997
+183.317 -61.5335 -3997
+181.794 -62.5349 -3997
+187.109 -61.5399 -3997
+190.494 -60.1012 -4845.75
+183.956 -61.8093 -3997
+186.454 -61.5261 -3997
+187.497 -60.5718 -3997
+189.399 -61.5583 -3997
+186.12 -61.8998 -3997
+182.505 -60.4771 -3997
+182.015 -60.1781 -4312.82
+185.157 -60.3582 -4080.29
+181.659 -60.6078 -3997
+189.525 -60.1708 -4334.62
+185.898 -62.2802 -3862.98
+184.996 -62.7606 -3885.49
+190.982 -60.9811 -3371.18
+185.167 -62.3734 -3997
+186.967 -61.9173 -3754.55
+190.581 -61.4426 -3463.29
+190.05 -61.6218 -3787.56
+187.784 -61.7026 -3911.74
+182.242 -62.8144 -3932.98
+183.013 -62.9102 -3700.43
+184.81 -63.0661 -3824
+183.795 -62.9884 -3677.1
+189.167 -61.9525 -3758.37
+186.52 -62.2145 -3833
+188.45 -62.0181 -3773.81
+185.74 -62.6703 -3683.11
+188.96 -62.2854 -3634.1
+186.471 -62.5338 -3623.25
+189.849 -61.9111 -3575.36
+184.898 -63.3226 -3603.9
+182.255 -63.1628 -3651.98
+188.381 -62.3342 -3599
+183.599 -63.3244 -3381.16
+185.537 -63.1536 -3473.39
+189.364 -62.5346 -3352.11
+184.291 -63.2395 -3483.06
+187.775 -62.1658 -3516.29
+186.408 -62.9426 -3388.46
+187.143 -62.3795 -3175.88
+188.761 -62.5874 -3462.25
+182.19 -63.4908 -3384.33
+185.237 -63.5585 -3354.88
+187.954 -62.6008 -3301.87
+184.616 -63.5954 -3337.25
+189.635 -62.2584 -3312.14
+182.87 -63.481 -3254.7
+185.807 -63.5373 -3188.94
+187.144 -62.7696 -2997
+190.476 -61.8493 -3047.67
+188.595 -62.9227 -3263.15
+186.435 -63.3842 -3140.2
+184.054 -63.5717 -3075.94
+190.092 -62.6835 -2997
+189.31 -62.8467 -3181.75
+181.834 -63.6731 -3145.79
+185.632 -63.8511 -3034.95
+187.849 -63.0141 -2997.01
+190.327 -62.2223 -3067.9
+189.141 -63.1959 -3026.6
+184.987 -63.9129 -3036.12
+188.456 -63.2676 -3054.51
+186.25 -63.7631 -2997
+182.363 -63.8039 -3081.08
+181.785 -63.9915 -2997
+189.857 -63.1258 -2997
+187.139 -63.1546 -2997
+183.568 -63.7558 -2997
+186.138 -64.1453 -2997
+188.948 -63.5342 -2997
+190.994 -62.1163 -2997
+190.913 -62.5154 -2997
+190.951 -62.9079 -2997
+183.565 -64.5417 -2997
+190.479 -63.0969 -2997
+183.599 -64.1802 -2997
+184.821 -64.3052 -2997
+183.156 -64.7085 -2997
+184.137 -64.4452 -2997
+188.233 -63.8999 -2997
+187.269 -63.851 -2997
+182.423 -64.2387 -2997
+184.245 -63.9742 -2997
+182.712 -64.5403 -2997
+187.776 -63.7004 -2997
+191.035 -61.7762 -2997
+187.743 -63.9791 -2997
+185.857 -64.4215 -2997
+182.232 -64.6056 -2997
+183.08 -64.3745 -2997
+188.336 -63.5927 -2997
+182.669 -64.7741 -2997
+186.761 -63.9912 -2997
+189.338 -64.2789 -2997
+188.735 -64.1026 -2997
+187.807 -63.3695 -2997
+188.611 -64.5517 -2997
+188.079 -64.2262 -2997
+186.789 -63.6909 -2997
+182.996 -63.9742 -2997
+185.466 -64.2065 -2997
+189.636 -63.4937 -2997
+187.215 -63.5198 -2997
+186.394 -64.7644 -2997
+185.984 -64.6561 -2997
+186.336 -64.4902 -2997
+190.177 -64.675 -2997
+189.896 -64.4054 -2997
+189.432 -64.6518 -2997
+189.96 -64.0969 -2997
+189.999 -63.7756 -2997
+188.73 -63.7981 -2997
+190.424 -63.4884 -2997
+186.717 -64.2984 -2997
+191.316 -63.7264 -2997
+191.075 -63.2877 -2997
+191.525 -63.0977 -2997
+187.739 -64.6046 -2997
+187.328 -64.2242 -2997
+186.955 -64.6261 -2997
+184.615 -64.6709 -2997
+185.373 -64.6042 -2997
+189.347 -63.867 -2997
+191.02 -64.6464 -2997
+190.5 -64.3274 -2997
+190.599 -63.9356 -2997
+191.659 -60.1388 -4534.75
+198.528 -60.2646 -3997
+200.147 -60.1923 -3997
+198.861 -64.6462 -3071.83
+196.691 -60.2661 -3997
+194.65 -60.1341 -4330.12
+193.819 -60.9089 -3997
+196.091 -60.5216 -3997
+197.36 -60.2494 -3997
+199.77 -61.6379 -3692.34
+198.579 -60.977 -3997
+195.636 -61.0197 -3997
+199.35 -60.1497 -3997
+197.734 -60.5029 -3997
+193.536 -60.5916 -3997
+193.104 -60.8055 -3997
+194.618 -60.896 -3997
+196.484 -60.979 -3997
+198.17 -60.5079 -3997
+195.722 -61.4469 -3895.42
+192.897 -60.2915 -4421.8
+200.856 -60.1864 -3527.04
+195.146 -60.5406 -3997
+200.576 -60.5281 -3627.11
+198.637 -60.6713 -3997
+195.428 -60.1855 -3607.29
+199.443 -64.6916 -3997
+194.464 -60.4979 -3997
+200.826 -64.7481 -3997
+192.282 -60.6977 -3975.93
+194.047 -60.6361 -3997
+197.909 -60.2821 -3997
+191.658 -60.4391 -3997
+193.858 -60.2828 -4116.84
+200.161 -64.6988 -3997
+199.169 -61.5787 -3997
+198.851 -61.2873 -3997
+199.095 -64.3969 -3907.97
+198.664 -64.1308 -2997
+197.123 -61.2474 -3837.4
+197.182 -60.7151 -3997
+195.033 -61.3636 -3862.98
+198.049 -60.7598 -3997
+198.003 -61.1771 -3778.7
+192.12 -60.3007 -4391.67
+199.798 -64.4076 -3854.72
+199.826 -60.555 -3808.25
+196.387 -61.3911 -3379.91
+199.143 -60.5306 -3874.79
+196.664 -61.7481 -3295.92
+194.193 -61.2979 -3793.68
+191.583 -60.7439 -3887.7
+193.419 -61.2087 -3830.39
+200.235 -61.9905 -2997
+192.68 -61.1163 -3597.01
+197.027 -61.5998 -3545.19
+199.962 -62.4156 -3235.35
+200.639 -64.412 -3637.69
+196.106 -61.7605 -3203.78
+198.572 -61.6085 -3522.47
+199.392 -64.1105 -3560.34
+199.427 -61.3553 -3532.38
+198.405 -64.7298 -3527.02
+195.416 -61.7613 -3374.43
+199.354 -60.9549 -3407.93
+193.676 -61.6457 -3503.88
+193.015 -61.4359 -3483.43
+194.594 -61.7646 -3344.1
+200.375 -60.9174 -3347.24
+191.903 -61.0814 -3419.39
+200.023 -62.7846 -2997
+198.438 -64.438 -2997
+200.06 -64.1553 -3450.42
+200.027 -61.2982 -2997
+197.739 -61.6494 -3304.89
+200.997 -60.77 -3154.78
+198.411 -61.9739 -3106.91
+192.959 -61.7706 -3178.95
+199.259 -61.9846 -2997
+194.051 -61.9969 -3100.07
+197.18 -61.925 -3077.84
+199.439 -62.6844 -2997
+197.254 -64.75 -2997
+200.644 -64.0223 -3085.62
+193.481 -62.0496 -3086.15
+192.39 -61.4584 -3070.72
+195.115 -62.0734 -3058.18
+197.791 -62.1001 -2997
+201.153 -61.0435 -2997
+194.55 -62.2095 -2997
+200.522 -61.6309 -2997
+200.809 -61.3031 -2997
+199.806 -63.8317 -3062.15
+199.689 -62.9971 -2997
+191.523 -61.5016 -2997
+192.866 -62.1583 -2997
+195.829 -62.1552 -2997
+198.766 -62.2425 -2997
+192.267 -61.8565 -2997
+197.74 -64.5427 -2997
+191.586 -62.374 -2997
+196.6 -64.719 -2997
+191.603 -61.9847 -2997
+196.357 -64.4847 -2997
+196.035 -64.6434 -2997
+200.062 -63.2663 -2997
+195.433 -64.6693 -2997
+199.213 -62.399 -2997
+200.837 -62.3219 -2997
+201.039 -61.9563 -2997
+195.923 -63.6029 -2997
+198.65 -62.5805 -2997
+197.962 -64.1745 -2997
+198.158 -63.8435 -2677.05
+196.941 -64.4857 -2997
+195.188 -62.4761 -2997
+192.219 -62.2585 -2997
+196.373 -63.6816 -2997
+199.231 -63.5753 -2997
+200.764 -63.2059 -2997
+196.567 -62.0653 -2997
+199.789 -63.5084 -2997
+198.31 -62.2611 -2997
+197.965 -62.4162 -2997
+197.223 -64.2123 -2997
+200.781 -62.775 -2997
+200.257 -63.0045 -2997
+195.721 -62.8757 -2530.29
+200.55 -63.6057 -2997
+196.48 -64.2277 -2997
+196.738 -63.9348 -2997
+194.101 -64.694 -2997
+195.953 -63.9229 -2997
+193.715 -64.8139 -2997
+199.109 -62.9159 -2997
+195.742 -64.3308 -2997
+193.372 -62.3562 -2997
+199.257 -63.245 -2997
+196.935 -63.6424 -2692.1
+198.94 -63.8214 -2997
+194.401 -62.5881 -2997
+192.866 -62.6078 -2997
+192.126 -62.5697 -2997
+194.155 -64.4206 -2997
+194.316 -64.0556 -2997
+193.777 -63.7052 -2997
+194.157 -63.2815 -2997
+194.131 -62.8909 -2997
+193.7 -62.6352 -2997
+193.93 -62.3097 -2997
+194.686 -64.6891 -2997
+195.368 -63.6653 -2997
+195.134 -64.0002 -2997
+194.91 -64.3523 -2997
+191.68 -64.7783 -2997
+191.755 -64.5285 -2997
+191.345 -64.2084 -2997
+191.896 -63.9835 -2997
+191.988 -63.7437 -2997
+193.122 -64.7732 -2997
+192.308 -62.8206 -2997
+192.781 -63.0434 -2997
+192.57 -63.3829 -2997
+192.372 -63.6361 -2997
+192.482 -63.9265 -2997
+192.111 -63.095 -2997
+192.3 -64.288 -2997
+191.639 -62.7707 -2997
+191.846 -63.4274 -2997
+195.612 -63.4256 -2654.63
+195.485 -63.1824 -2692
+194.614 -63.6798 -2997
+195.008 -63.3628 -2997
+194.859 -62.9484 -2997
+198.52 -63.0049 -2997
+198.399 -63.4468 -2997
+193.568 -64.5708 -2997
+192.971 -63.6999 -2997
+193.317 -64.1638 -2997
+193.29 -63.3502 -2997
+193.498 -62.9763 -2997
+192.944 -64.5046 -2997
+192.364 -64.7006 -2997
+197.209 -62.4058 -2803.94
+197.907 -62.7199 -2997
+197.802 -63.0815 -2997
+197.611 -63.3338 -2498.02
+197.616 -63.5963 -2358.33
+197.122 -63.4067 -2744.26
+197.114 -63.1254 -2704.45
+197.319 -62.8236 -2853.84
+196.314 -63.3048 -2234.98
+196.411 -62.3971 -2712.64
+195.936 -62.547 -2594.92
+197.451 -63.9032 -2997
+196.562 -62.7857 -2393.29
+209.193 -64.6346 -3997
+207.169 -64.2245 -3447.21
+207.745 -64.5037 -3997
+208.481 -64.3279 -3997
+206.86 -64.5962 -3997
+205.782 -64.5405 -3997
+208.409 -64.6918 -3997
+204.357 -64.2344 -3997
+202.332 -64.7516 -3743.53
+209.269 -64.2515 -3997
+208.192 -63.9924 -3800.87
+207.824 -64.1838 -3786.31
+206.443 -64.2697 -3850.76
+205.125 -64.1979 -3937.19
+204.723 -64.5845 -3997
+203.516 -64.5587 -3545.27
+204.043 -64.5285 -3935.3
+203.66 -64.2526 -3238.5
+202.992 -64.6793 -3717.54
+201.536 -64.6541 -3829.42
+206.602 -63.9254 -3571.63
+208.732 -64.0376 -3949.88
+203.938 -63.892 -2997.01
+205.856 -64.0858 -3652.96
+208.042 -63.7243 -3559.53
+204.651 -63.9505 -3565.59
+202.248 -64.4147 -3359.75
+208.513 -63.8036 -3767.61
+202.996 -64.3329 -3287.91
+201.411 -64.2458 -3311.58
+209.155 -63.8124 -3612.02
+205.277 -63.791 -3431.02
+201.554 -60.1599 -3398.16
+208.415 -63.4686 -3462.63
+205.966 -63.7828 -3368.32
+201.358 -60.5196 -3274.78
+206.315 -63.6195 -3250.69
+202.245 -60.1211 -3229.82
+209.222 -63.3598 -3105.35
+207.577 -63.4615 -3198.36
+208.562 -63.0459 -2997
+202.478 -64.122 -2997
+204.993 -63.3978 -2997
+201.929 -64.0946 -2997
+202.1 -60.4574 -3104.01
+201.547 -60.856 -3058.37
+202.935 -60.1144 -3046.16
+205.761 -63.4567 -3061.16
+201.352 -63.8835 -2997
+206.372 -63.369 -2997
+208.134 -62.801 -2997
+201.964 -60.7223 -3010.74
+207.78 -63.0494 -2997
+209.075 -60.5695 -2997
+202.812 -60.4355 -2997
+204.505 -63.6525 -2997.02
+201.378 -62.5458 -2997
+205.607 -62.7998 -2997
+203.47 -61.1223 -2997
+209.317 -61.1538 -2997
+203.411 -61.5706 -2997
+203.044 -63.9555 -2997
+201.978 -62.5315 -2997
+205.002 -62.8061 -2997
+208.817 -61.8156 -2997
+208.53 -61.5309 -2997
+206.864 -63.0852 -2997
+208.015 -62.5715 -2997
+202.251 -63.0649 -2675.63
+206.509 -60.2942 -2997
+202.442 -61.8698 -2997
+201.773 -61.9215 -2997
+203.547 -60.1511 -2997
+204.944 -60.5136 -2997
+204.304 -60.6313 -2997
+203.914 -63.5528 -2997
+206.032 -63.1065 -2997
+201.571 -62.2534 -2997
+202.155 -63.807 -2997
+206.204 -62.8107 -2997
+209.45 -61.7437 -2997
+209.108 -61.5018 -2997
+201.689 -61.0929 -2997
+203.323 -63.6088 -2997
+209.38 -62.5394 -2997
+208 -60.7944 -2997
+208.625 -62.6274 -2997
+204.165 -61.4242 -2997
+204.139 -61.7861 -2997
+202.315 -62.7794 -2686.94
+209.511 -62.2131 -2997
+202.129 -63.4238 -2997
+201.955 -61.5991 -2997
+208.867 -62.2144 -2997
+208.803 -60.8558 -2997
+208.442 -60.5701 -2997
+205.878 -62.5119 -2997
+204.253 -61.0217 -2997
+201.406 -63.52 -2997
+208.512 -61.2012 -2997
+208.323 -61.9952 -2997
+207.733 -62.7203 -2997
+205.478 -60.7203 -2997
+205.354 -63.1062 -2997
+202.62 -61.564 -2997
+203.009 -61.8271 -2997
+208.148 -62.2925 -2997
+202.119 -61.2973 -2997
+201.702 -62.808 -2997
+205.058 -60.9254 -2997
+206.66 -62.5571 -2997
+201.5 -61.3213 -2997
+201.276 -61.6206 -2997
+208.147 -61.7002 -2997
+204.691 -63.0791 -2997
+204.277 -63.3299 -2997
+207.711 -61.1515 -2997
+201.493 -63.1409 -2997
+205.785 -60.9722 -2997
+205.892 -60.1221 -2997
+203.568 -63.284 -2997
+207.299 -62.7674 -2997
+209.327 -61.9841 -2997
+209.445 -60.844 -2997
+204.465 -62.8065 -2997
+202.692 -63.6333 -2997
+202.839 -63.3164 -2295.3
+204.231 -60.2241 -2997
+204.001 -62.9902 -2997
+209.298 -62.9351 -2997
+208.074 -61.4219 -2997
+207.478 -62.4311 -2997
+203.609 -62.0585 -2997
+203.937 -62.5582 -2997
+206.228 -60.4854 -2997
+205.99 -60.7302 -2997
+202.134 -60.9945 -2997
+205.588 -60.4422 -2997
+205 -60.0819 -2997
+208.529 -60.2655 -2997
+208.38 -59.9964 -2997
+206.907 -61.1393 -2997
+207.26 -60.8326 -2997
+206.604 -60.7831 -2997
+206.846 -60.5445 -2997
+207.395 -60.5705 -2997
+207.804 -60.3655 -2997
+207.945 -60.0414 -2997
+203.523 -60.6843 -2997
+203.797 -60.4142 -2997
+203.327 -60.3608 -2997
+202.34 -62.2334 -2997
+207.051 -60.2961 -2997
+205.2 -62.5087 -2997
+205.469 -62.2128 -2997
+205.227 -61.9362 -2997
+204.778 -61.7139 -2997
+204.913 -61.3323 -2997
+202.751 -61.2243 -2997
+202.699 -60.8042 -2997
+206.144 -62.1937 -2997
+205.728 -61.9579 -2997
+205.525 -61.6432 -2997
+205.601 -61.2637 -2997
+206.289 -61.8149 -2997
+206.065 -61.4893 -2997
+206.862 -62.1296 -2997
+206.316 -60.9702 -2997
+206.24 -61.2225 -2997
+206.669 -61.502 -2997
+206.992 -61.7884 -2997
+203.082 -62.4012 -2765.15
+204.652 -62.5736 -2997
+204.638 -62.1682 -2997
+207.47 -61.5258 -2997
+207.629 -61.9795 -2997
+208.794 -60.0341 -2997
+209.26 -60.2497 -2997
+202.896 -62.078 -2851.77
+202.564 -62.5688 -2613.82
+203.07 -62.8834 -2362.05
+167.691 -47.1731 -11.27
+167.704 -47.1724 -17.52
+167.712 -47.1811 -18.34
+167.746 -47.1885 -31.51
+167.641 -47.2137 1.17
+167.587 -47.2301 1.76
+167.631 -47.2175 1.13
+167.62 -47.2212 1.09
+167.614 -47.2306 1.25
+167.73 -46.8833 -20.96
+168.047 -46.931 -9.07
+168.004 -46.9161 -4.4
+167.991 -46.9234 -6.64
+168.031 -46.9279 -3.52
+168.069 -46.9371 -4.34
+168.007 -46.8869 0.81
+168.007 -46.8796 1.22
+167.994 -46.9067 -2.13
+167.979 -46.9091 1.65
+167.989 -46.9146 -2.49
+167.959 -46.9447 1.27
+168.021 -46.9195 -5.64
+168.045 -46.9388 -7.54
+168.507 -46.5867 2.1
+168.47 -46.5789 1.93
+168.491 -46.5795 1.94
+168.36 -46.5896 -1.38
+168.347 -46.5534 0.71
+168.349 -46.5692 -0.71
+168.328 -46.5765 2.57
+168.313 -46.5669 2
+168.328 -46.559 1.76
+168.361 -46.5799 -0.5
+168.358 -46.5485 1.98
+168.399 -46.5727 1.32
+168.414 -46.5691 2.14
+168.431 -46.5717 1.49
+168.458 -46.5716 1.69
+168.254 -46.5067 2.66
+168.292 -46.5039 0.45
+168.307 -46.5035 1.2
+168.337 -46.4406 1.51
+168.333 -46.4625 1.32
+168.366 -46.4832 2.62
+168.354 -46.4802 2.12
+168.298 -46.4619 1.99
+168.283 -46.4635 3
+166.599 -46.0873 -9.11
+166.625 -46.0776 -7.75
+166.654 -46.0897 -36.53
+166.613 -46.0862 -12.13
+166.608 -46.0972 -14.74
+166.664 -46.1141 -16.56
+166.68 -46.0978 -102.5
+166.674 -46.0812 -84.68
+166.697 -46.1062 -44.61
+166.675 -46.0685 -51.36
+166.691 -46.0702 -36.61
+166.71 -46.0365 -27.08
+166.712 -46.078 -36.08
+166.696 -46.0821 -61.88
+166.724 -46.07 -35.99
+166.73 -46.0797 -27.99
+166.737 -46.0518 -27.49
+166.735 -46.0608 -27.89
+166.76 -46.0565 0.85
+166.768 -46.0511 -21.29
+166.767 -46.0431 -10.96
+166.762 -46.0294 -30.56
+166.762 -46.0106 -29.44
+166.899 -45.9379 -25.29
+166.865 -45.9616 -24.07
+166.882 -45.9505 -30.42
+166.946 -45.7238 -43.63
+166.948 -45.7077 -36.94
+166.954 -45.7224 -30.52
+166.92 -45.729 -34.57
+166.874 -45.7392 -55.24
+166.886 -45.7337 -22.37
+166.558 -45.7622 -29.87
+166.774 -45.9983 -2.06
+166.843 -45.9778 -21.05
+166.789 -45.995 -36.38
+166.802 -45.9902 -12.74
+166.824 -45.9833 -40.39
+166.596 -45.9977 -106.11
+166.644 -45.9619 -84.83
+166.665 -45.9649 -90.1
+166.717 -45.9607 -85.1
+166.74 -45.9605 -88.1
+166.751 -45.9535 -45.67
+166.754 -45.9652 -70.69
+166.662 -45.9127 -72.5
+166.651 -45.923 -59.86
+166.679 -45.89 -36.59
+166.692 -45.8734 -31.16
+166.501 -45.7868 -146.15
+166.624 -45.7594 -82.16
+166.644 -45.7476 -85.73
+166.65 -45.7362 -63.53
+166.711 -45.7338 -182.52
+166.564 -45.7394 -13.54
+166.607 -45.7872 -165.91
+166.651 -45.783 -125.03
+166.687 -45.7738 -145.95
+166.748 -45.7618 -96.96
+166.779 -45.7509 -58.51
+166.725 -45.7298 -130.11
+166.746 -45.7332 -97.22
+166.777 -45.7342 -86.19
+166.728 -45.681 -258.52
+166.83 -45.7143 -166.64
+166.805 -45.7548 -65.24
+166.833 -45.7535 -49.3
+166.837 -45.7675 -49.11
+166.846 -45.751 -35.28
+166.596 -45.7653 -95.51
+166.581 -45.7557 -104.31
+166.766 -45.6581 -110.91
+166.833 -45.6456 -136
+166.781 -45.5652 -205.51
+166.747 -45.5838 -196.43
+166.809 -45.5584 -197.06
+166.846 -45.4099 -96.71
+166.764 -45.3798 -116.52
+166.824 -45.3979 -86.83
+166.723 -45.6462 -91.88
+166.877 -45.5426 -108.59
+166.885 -45.5314 -8.23
+166.953 -45.5095 -42.48
+166.893 -45.5538 -74.77
+166.921 -45.5549 -73.68
+166.947 -45.5499 -93.89
+166.971 -45.5536 -92.26
+166.859 -45.4131 -134.13
+166.875 -45.4188 -69.7
+166.89 -45.4295 -76
+166.933 -45.4127 -31.46
+166.969 -45.4025 -47.8
+166.984 -45.4002 -37.81
+167.002 -45.4015 -57.16
+167.018 -45.4029 -52.82
+167.022 -45.3865 -65.65
+167.015 -45.3702 -64.42
+166.904 -45.3375 -8.65
+166.937 -45.324 -100.97
+167.016 -45.3325 -199.46
+167.056 -45.3522 -85.98
+167.088 -45.3745 -24.65
+167.103 -45.3889 -38.72
+167.116 -45.4125 -22.72
+167.12 -45.4436 -28.62
+167.113 -45.4524 -17.82
+167.102 -45.4595 -33.88
+167.078 -45.4813 -25.34
+167.072 -45.4876 -34.62
+166.951 -45.3157 -137.97
+166.98 -45.3145 -138.72
+166.958 -45.3076 -129.27
+166.998 -45.32 -114.19
+167.017 -45.291 -340.89
+167.133 -45.2687 -30.65
+167.155 -45.2588 -35.54
+167.146 -45.2664 -28.7
+167.13 -45.2763 -25.67
+167.161 -45.3038 -21.57
+167.17 -45.3094 -19.49
+167.18 -45.3114 -30.14
+167.064 -45.2813 -106.77
+167.084 -45.2804 -87.9
+167.123 -45.2681 -43.05
+166.985 -45.2398 -33.57
+166.966 -45.2126 -219.12
+166.968 -45.1742 -110.13
+166.972 -45.1528 -73.1
+167.02 -45.0941 -10
+167.037 -45.1072 -170.76
+167.054 -45.1178 -154.8
+167.068 -45.1353 -89.31
+167.083 -45.1503 -78.31
+167.109 -45.075 -51.45
+167.116 -45.0841 -52
+167.134 -45.1103 -65.01
+167.147 -45.1347 -45.44
+167.15 -45.0937 -54.89
+167.189 -45.0977 -61.75
+167.264 -45.0385 -75.89
+167.24 -45.0348 -124.11
+167.199 -45.0186 -107.02
+167.135 -45.0039 -134.63
+167 -45.271 -113.37
+167.01 -45.2798 -102.22
+166.993 -45.3085 -68.63
+167.394 -44.977 -25.51
+167.38 -44.9381 -94.78
+167.383 -44.921 -93.54
+167.377 -44.8961 -68.37
+167.358 -44.8675 -168.28
+167.347 -44.8505 -97.18
+167.392 -44.9239 -64.21
+167.428 -44.9735 -32.66
+167.417 -44.9653 -21.62
+167.504 -44.843 -71.22
+167.512 -44.8292 -122.58
+167.528 -44.8147 -101.48
+167.512 -44.7848 -72.66
+167.526 -44.7906 -102.9
+167.472 -44.7629 -77.89
+167.583 -44.7351 -82.56
+167.604 -44.7477 -72.19
+167.616 -44.7572 -60.91
+167.909 -44.6598 -131.83
+167.64 -44.662 -17.74
+167.826 -44.598 -62.1
+167.906 -44.644 -226.2
+167.868 -44.6159 -238.92
+172.828 -43.6233 -3.9
+172.899 -43.6541 -2.05
+172.922 -43.8548 -6.44
+172.922 -43.8182 -7
+172.948 -43.878 -6.19
+172.96 -43.8916 -13.95
+172.891 -43.6718 1.68
+172.928 -43.8325 -4.98
+172.937 -43.7699 -0.92
+172.914 -43.773 -2.27
+172.93 -43.7926 -5.44
+172.67 -43.6266 -0.84
+172.69 -43.6241 -4.21
+172.667 -43.6412 -1.68
+172.693 -43.6382 -3.06
+172.777 -43.6103 -7
+172.835 -43.6062 -5.3
+172.743 -43.6137 -3.23
+173.77 -41.2725 0
+173.766 -41.2666 -0.79
+174.111 -41.3362 -7
+174.122 -41.3306 -7
+174.12 -41.3408 -7
+173.848 -41.222 -6.11
+173.853 -41.2251 -4.99
+173.855 -41.2353 -4.61
+173.856 -41.2465 -4.4
+173.863 -41.2421 -4.89
+174.154 -41.239 -42.06
+174.183 -41.2475 -5.21
+174.231 -41.2421 -39.88
+174.16 -41.2485 -38.29
+174.288 -41.219 -10.46
+174.281 -41.2249 -16.15
+174.268 -41.2299 -4.71
+174.269 -41.2401 -3.82
+174.264 -41.2419 -6.82
+174.194 -41.2659 -4.35
+174.182 -41.2576 -2.82
+174.179 -41.2501 -6.45
+174.165 -41.254 -10.77
+174.214 -41.2499 -4.01
+174.212 -41.2445 -4.63
+174.239 -41.246 -16.16
+174.225 -41.2321 -8.67
+174.222 -41.2291 -6.51
+174.19 -41.2443 -5.81
+174.201 -41.2426 -3.17
+173.942 -41.2615 -9.47
+174.282 -41.2214 -15.86
+174.282 -41.2185 -12.6
+174.262 -41.2371 -9.99
+174.243 -41.242 -26.3
+174.173 -41.2488 -11.24
+173.952 -41.2576 -16.33
+173.955 -41.2616 -16.96
+173.97 -41.2366 -11.48
+173.976 -41.2426 -13.09
+174.019 -41.2643 -21.16
+174.018 -41.2497 -23.97
+174 -41.2325 -15.05
+174.254 -41.2418 0.83
+174.221 -41.2427 -23.01
+173.799 -41.2652 -6.36
+173.843 -41.2533 -5.59
+173.829 -41.2561 -5.57
+173.816 -41.2561 -4.12
+173.835 -41.2897 0.98
+173.816 -41.2875 -1.5
+173.801 -41.2728 -3.98
+173.876 -41.2408 -6.95
+174.011 -41.2438 -25.09
+174.013 -41.2395 -16.03
+174.016 -41.2753 -8.91
+174.008 -41.2687 -2.02
+173.991 -41.2471 -12.99
+173.973 -41.2298 -11.84
+173.966 -41.2298 -8.63
+174 -41.2491 -23.76
+174.199 -41.2702 -1.73
+174.253 -41.2489 0.11
+174.256 -41.2522 -1.36
+174.223 -41.2377 -16.38
+174.275 -41.2232 -17
+174.134 -41.2979 -6.34
+174.116 -41.3258 -6.2
+174.125 -41.3201 -7
+174.129 -41.3109 -6.46
+174.135 -41.3049 -6.44
+174.125 -41.3049 -6.49
+174.175 -41.2949 -4.57
+174.136 -41.3254 -7
+174.147 -41.3204 -7
+174.155 -41.314 -6.81
+174.161 -41.3098 -5.49
+174.169 -41.3002 -4.83
+174.148 -41.3253 -5.02
+174.163 -41.3143 -4.79
+173.819 -41.0038 -6.13
+173.813 -41.0074 -17.3
+173.887 -41.0909 -10.78
+173.876 -41.0893 -7
+173.869 -41.0969 -3.2
+173.876 -41.0955 -7
+173.861 -41.1221 -6.18
+173.858 -41.1331 -8.99
+173.847 -41.1437 -6.43
+173.837 -41.1517 -5.6
+173.851 -41.1572 -4.25
+173.848 -41.1688 -1.81
+173.863 -41.2079 -7
+173.861 -41.2104 -7
+173.95 -41.2087 -4.17
+173.962 -41.2018 -8.23
+173.986 -41.2041 -7
+174.031 -41.1797 -6.62
+173.987 -41.1972 -3.16
+173.952 -41.191 -16.16
+173.927 -41.203 3
+173.901 -41.2064 -4.28
+173.888 -41.2117 -6.16
+173.865 -41.2125 -8.13
+173.867 -41.2002 -11.85
+173.873 -41.1988 -4.79
+173.879 -41.1746 -10.95
+173.872 -41.1726 -16.69
+173.898 -41.1291 -10.87
+173.896 -41.1204 -15.96
+173.903 -41.1094 -9.62
+173.914 -41.1063 -11.24
+173.996 -41.0884 -11.62
+174.001 -41.0925 -7.78
+174.036 -41.1046 -7
+174.037 -41.1015 -4.47
+174.032 -41.0445 -17
+174.041 -41.0402 -11.06
+173.975 -41.0504 -14.58
+173.98 -41.0395 -10.3
+173.896 -41.1079 -16.87
+173.89 -41.1132 -19.83
+173.89 -41.1233 -16.87
+173.865 -41.1309 -17.3
+173.848 -41.1514 -15.3
+173.855 -41.1606 -18.78
+173.857 -41.166 -12.2
+173.866 -41.1791 -17.07
+173.864 -41.203 -8.99
+173.857 -41.2133 -9.3
+173.868 -41.2058 -11.15
+173.875 -41.1898 -9.65
+173.874 -41.1777 -19.25
+173.861 -41.1609 -22.45
+173.857 -41.1488 -16.2
+173.882 -41.1347 -17.1
+173.901 -41.1161 -18.78
+173.916 -41.0997 -20.42
+173.925 -41.1038 -14.88
+173.96 -41.0736 -31.59
+173.966 -41.0718 -25.66
+173.966 -41.0773 -17.49
+173.963 -41.1246 -17
+173.97 -41.1253 -8.81
+173.966 -41.13 -7.23
+173.976 -41.1234 -14.96
+174.024 -41.0909 -17
+174.023 -41.0857 -17
+173.987 -41.0731 -17.57
+173.999 -41.0786 -15.06
+174.034 -41.0521 -17
+174.039 -41.0479 -14.04
+174.042 -41.0303 -15.08
+173.964 -41.0537 -26.83
+173.973 -41.0478 -17.94
+174.092 -41.0157 -15.12
+173.891 -40.9446 -24.57
+173.953 -41.0715 -34.71
+173.939 -41.0736 -21.82
+173.914 -41.0744 -14.66
+173.925 -41.0782 -27
+173.913 -41.0917 -25.92
+173.902 -41.0996 -21.28
+173.891 -41.1188 -26.78
+173.876 -41.1317 -24.01
+173.86 -41.1397 -22.71
+173.894 -41.1253 -24.5
+173.896 -41.1142 -26.13
+173.939 -41.0814 -19.06
+173.978 -41.0742 -19.2
+173.974 -41.0675 -26.47
+173.985 -41.0854 -21.06
+173.97 -41.1083 -17.69
+174.023 -41.0942 -23.79
+174.018 -41.0319 -23.36
+174.009 -41.0329 -27
+174.013 -41.0416 -23.15
+174.006 -41.052 -19.33
+173.994 -41.0555 -22.96
+173.987 -41.0636 -21.78
+173.966 -41.0488 -23.97
+173.857 -41.1559 -14.13
+173.866 -41.166 -23.64
+173.865 -41.1718 -25.53
+173.872 -41.1831 -19.33
+173.87 -41.1767 -24.68
+173.954 -41.1964 -19.07
+173.945 -41.197 -21.8
+174.244 -41.1868 -47
+174.237 -41.1966 -29.47
+173.945 -41.0525 -45.45
+173.949 -41.0454 -32.65
+173.957 -41.0577 -37.74
+173.936 -41.0567 -47
+173.933 -41.0522 -39.96
+173.957 -41.0506 -39.9
+173.968 -41.0591 -47
+173.961 -41.0664 -43.85
+174.29 -41.2126 -14.44
+174.282 -41.2151 -8.7
+174.311 -41.2096 -3.8
+174.203 -41.0584 -15.18
+174.183 -41.0447 -0.56
+174.103 -41.0398 -4.72
+174.097 -41.0304 -11.29
+174.033 -41.1004 -4.64
+174.029 -41.1007 -6.75
+173.986 -41.1129 -8.11
+173.979 -41.1145 -4.39
+173.982 -41.1282 -10.51
+173.962 -41.1425 -2.45
+173.96 -41.133 -15.62
+173.984 -41.0382 -7
+173.979 -41.0445 -11.76
+174.295 -41.2147 -19.03
+174.241 -41.2038 -9.56
+174.178 -41.1023 -16.05
+174.171 -41.1267 -18.74
+174.018 -41.0815 -7.04
+174.018 -41.089 -13.79
+174.009 -41.086 -13.53
+173.985 -41.108 -13.82
+173.968 -41.1187 -17
+173.98 -41.082 -16.38
+173.981 -41.0785 -18.25
+173.972 -41.0739 -20.01
+173.974 -41.0429 -18.61
+173.971 -41.0527 -18.83
+174.316 -41.2105 -18.96
+174.286 -41.215 -15.73
+174.25 -41.199 -20.54
+174.205 -41.146 -18.49
+174.181 -41.1327 -16.85
+174.178 -41.1097 -26.95
+174.161 -41.1252 -24.5
+174.156 -41.1196 -18.61
+174.178 -41.1446 -15.45
+174.19 -41.1489 -27
+174.209 -41.0502 -27
+174.194 -41.0497 -13.98
+173.861 -40.9547 -20.7
+173.861 -40.9667 -15.51
+173.849 -40.977 -5.48
+173.827 -41.1558 1
+173.813 -41.1576 -1.98
+173.804 -41.1593 -3.89
+173.977 -41.2017 -5.39
+174.021 -41.1964 3
+174.002 -41.1862 -2.98
+174.031 -41.1714 -2.82
+174.018 -41.1809 -1.31
+174.041 -41.1847 -5.61
+174.069 -41.1858 -6.07
+174.098 -41.1777 -3.52
+173.876 -41.1533 -0.73
+173.887 -41.1289 -25.85
+173.922 -41.0866 -27
+173.977 -41.0973 -26.1
+174.021 -41.0515 -17
+174.002 -41.065 -17
+174.215 -41.0612 -14.19
+174.305 -41.2118 -12.34
+173.774 -41.0981 -6.32
+173.762 -41.1088 -6.65
+173.781 -41.1072 -3.34
+173.783 -41.0907 -11.14
+173.769 -41.1018 -11.55
+173.779 -41.0956 -9.93
+173.783 -41.1559 3
+173.786 -41.1615 0.01
+173.783 -41.1687 -1.58
+173.799 -40.8267 -7.52
+173.805 -40.8402 -5.86
+173.815 -40.8536 -2.21
+173.806 -40.8502 -1.69
+173.797 -40.8434 -7.11
+173.83 -40.8616 -0.66
+173.799 -40.8349 -11.35
+177.854 -39.0799 -3.66
+177.842 -39.0827 -7.11
+175.465 -37.1739 2.04
+175.5 -37.1478 1
+175.76 -36.8087 -11.71
+174.93 -36.7914 -3.43
+174.919 -36.8055 -8.81
+174.942 -36.8028 1.52
+174.942 -36.7866 -12.82
+174.961 -36.7875 -17.13
+174.968 -36.8441 -6.71
+175.032 -36.843 -5.7
+174.979 -36.8217 -11.51
+174.964 -36.8063 -3.89
+174.974 -36.7956 -10.12
+174.979 -36.8059 -2.99
+175.127 -36.8559 -1.93
+175.142 -36.8572 -6.34
+175.137 -36.8701 -5.06
+175.19 -36.9094 -2.44
+174.866 -36.827 -2.27
+174.888 -36.8294 1.21
+174.958 -36.8695 -4.12
+175.06 -36.851 -4.43
+175.086 -36.8857 -2.33
+175.126 -36.9057 -1.56
+175.105 -36.9236 0.58
+175.017 -36.8269 -5.61
+175.165 -36.8431 -1.3
+175.154 -36.8518 -7
+175.17 -36.9171 1.06
+175.166 -36.9341 1.47
+174.804 -36.7782 -7.86
+174.839 -36.8298 -5.3
+174.766 -36.4194 -5.18
+175.485 -36.3158 -6.67
+175.479 -36.3131 -8.13
+175.47 -36.3163 -10.24
+175.464 -36.3244 -12.93
+174.868 -36.3828 -23.9
+174.878 -36.3923 -29.78
+174.791 -36.3371 -5.22
+174.861 -36.3919 -17
+174.816 -36.3931 -8.5
+174.518 -35.8413 -5.3
+174.495 -35.8361 -8.63
+174.509 -35.85 -4.51
+174.33 -35.3429 -2.61
+174.324 -35.3527 -0.72
+166.669 -45.7533 -132.42
+166.691 -45.748 -184.5
+166.701 -45.7722 -127.28
+166.724 -45.7131 -95.57
+166.812 -45.7198 -123.39
+166.849 -45.717 -127.41
+166.883 -45.7237 -92.77
+166.848 -45.5505 -212.5
+166.905 -45.5258 -30.01
+167.033 -45.3475 -179.09
+168.018 -46.9004 3
+167.575 -47.2338 2.64
+166.402 -45.8325 -107.05
+166.402 -45.7176 -368.17
+167.376 -44.4855 -2877.57
+167.631 -44.3755 -2012.3
+167.952 -44.352 -28.74
+166.827 -45.2663 -109.49
+199.128 -47.7484 -4997
+198.93 -47.2756 -4997
+174.108 -40.9438 -67.61
+174.156 -40.9511 -12.74
+174.079 -40.8421 -56.26
+173.957 -40.8127 -16.86
+173.95 -40.8381 -27
+173.886 -40.9082 -31.12
+173.918 -40.9006 -27
+173.891 -41.0383 -7
+173.916 -41.0182 -41.43
+173.341 -40.3924 -66.57
+173.402 -40.4236 -57.52
+177.79 -39.1372 -23.3
+177.837 -39.1016 -13.14
+177.851 -39.0917 -7
+177.801 -39.0979 -16.32
+177.824 -39.1227 -17.94
+175.451 -36.4934 -30.18
+175.472 -36.4668 -52.68
+175.428 -36.4436 -47.05
+175.343 -36.4264 -47
+175.385 -36.4524 -37.58
+174.392 -35.4041 -18.84
+174.392 -35.376 -31.11
+174.424 -35.3935 -30.67
+174.505 -35.8398 -5.82
+172.895 -43.602 -12.02
+172.931 -43.5872 -16.21
+172.951 -43.6195 -14.02
+172.782 -43.5254 -10.99
+172.826 -43.4945 -15.43
+173.128 -43.7104 -10.01
+173.159 -43.7263 -26.5
+162.138 -64.7117 -2997
+162.75 -64.6014 -2997
+207.469 -63.8679 -3352.44
+206.877 -63.5634 -2997
+172.213 -25.259 -4051.89
+172.337 -25.6275 -3997.18
+168.602 -23.9044 -1997
+168.788 -23.9644 -1997
+175.796 -24.16 -4497
+176.027 -23.9817 -4497
+181.791 -23.9028 -2148.92
+182.011 -23.9143 -2160.37
+186.875 -24.5361 -5497
+187.097 -24.1413 -5497
+188.879 -24.315 -5389.88
+189.381 -24.1686 -5663.8
+194.5 -24.0632 -5307.6
+195.08 -24.1115 -5095.07
+192.276 -24.6926 -5601.88
+192.608 -24.3608 -5612.98
+203.028 -24.0616 -4427
+203.424 -24.2617 -3951.98
+157.183 -39.8684 -4709.62
+157.603 -39.6295 -4762.07
+208.545 -44.6504 -4997
+209.277 -44.8284 -4949.58
+209.004 -43.3601 -4997
+209.535 -43.3475 -4997
+208.766 -39.2582 -4975.31
+209.219 -39.3648 -4958.47
+174.692 -41.1877 -62.5
+174.882 -40.9224 -36.2
+172.602 -34.4449 -47
+172.644 -34.4419 -7
+173.334 -34.7754 -27.09
+176.025 -41.2838 -108.48
+176.923 -40.1515 -56.98
+177.018 -40.0901 -103.75
+177.11 -40.0877 -274.81
+177.047 -40.0214 -117.16
+177.972 -38.79 -26.41
+178.023 -38.7749 -26.46
+178.375 -38.4017 -32.04
+178.417 -38.3783 -44.66
+178.362 -38.3169 -16.95
+178.407 -38.3302 -32.44
+178.546 -37.7224 -13.72
+178.547 -37.7516 -23.71
+178.66 -37.7789 -94.77
+178.678 -37.8394 -137.66
+178.399 -37.6024 -27.02
+178.41 -37.5627 -96.46
+178.423 -37.5175 -169.33
+178.205 -37.4883 -130.32
+178.809 -37.2736 -1252.75
+176.937 -37.8875 -14.89
+176.988 -37.9053 -12.93
+175.087 -36.2676 -41.93
+175.136 -36.2628 -46.17
+175.169 -36.1926 -54.22
+175.174 -36.1526 -63.39
+175.283 -36.168 -41.42
+174.822 -36.8148 -5.84
+174.813 -36.7976 -7.72
+174.886 -36.7454 -11.5
+174.78 -36.723 -10.63
+174.816 -36.7331 -12.78
+174.786 -36.6394 -9.32
+174.662 -36.0939 -43.57
+174.694 -36.1352 -44.82
+173.556 -34.8665 -88.42
+173.598 -34.8977 -66.59
+173.194 -34.8325 -13.8
+173.242 -34.8432 -14.05
+173.034 -34.5444 -23.13
+173.052 -34.5887 -39.16
+173.029 -34.4813 -31.85
+173.032 -34.4466 -25.92
+172.948 -34.2792 -134.81
+172.993 -34.2 -406.04
+173.036 -34.2949 -166.5
+173.134 -34.3305 -230.99
+173.094 -34.2441 -332.51
+173.212 -34.235 -980.99
+169.82 -46.3843 -7
+169.885 -46.3717 -11.93
+170.771 -45.7981 -13.7
+170.786 -45.6927 -25.62
+170.686 -45.6894 -17.91
+170.403 -45.9798 -33.26
+170.433 -46.0086 -40.76
+170.718 -45.6353 -15
+170.85 -45.4612 -13.81
+170.871 -45.4264 -11.9
+171.217 -44.8764 -6.37
+171.232 -44.7883 -8.47
+171.225 -44.7416 -7.81
+172.795 -43.8819 -4.93
+172.788 -43.904 -18.09
+172.812 -43.8934 -15.95
+172.74 -43.8962 -16
+172.768 -43.8803 -6.38
+172.825 -43.9074 -18.7
+172.813 -43.9337 -32.85
+172.853 -43.901 -9.41
+172.856 -43.9231 -26.54
+172.884 -43.9055 -25.39
+172.901 -43.9294 -36.78
+172.955 -43.9901 -66.67
+172.976 -43.9609 -61.75
+172.951 -43.9269 -40.05
+172.998 -43.9315 -53.07
+172.926 -43.9615 -57.86
+172.952 -43.9027 -15.44
+172.978 -43.9043 -27.44
+173.042 -43.9278 -61.9
+173.09 -43.9149 -60.55
+173.013 -43.9029 -43.05
+173.044 -43.8939 -38.93
+173.152 -43.8682 -65.28
+173.151 -43.8308 -50.55
+173.07 -43.8804 -39.12
+173.105 -43.8764 -54
+173.115 -43.686 -10.97
+173.118 -43.6578 -13.35
+173.08 -43.6595 -8.43
+173.076 -43.637 -15.59
+173.034 -43.6336 -14.24
+173.062 -43.6014 -18.26
+172.974 -43.5976 -17.34
+173.01 -43.6138 -17.4
+172.79 -43.6015 -7
+172.807 -43.6022 -6.82
+172.761 -43.609 -4.35
+172.772 -43.6033 -7
+172.71 -43.6142 -5.64
+172.724 -43.6165 3
+172.816 -43.5923 -0.06
+172.836 -43.5882 -10.82
+172.866 -43.5895 -10.58
+172.888 -43.5698 -16.3
+172.814 -43.5791 -4.99
+173.814 -42.3881 -64.16
+173.65 -42.4557 -129.88
+173.631 -42.5058 -695.4
+174.133 -41.386 -24.09
+174.189 -41.3889 -31.51
+174.089 -41.3903 -13.47
+174.102 -41.3682 -17.94
+174.105 -41.3519 -11.08
+173.939 -40.883 -39.42
+173.968 -40.862 -46.24
+173.869 -40.9438 -19.84
+173.877 -40.9294 -37.14
+173.854 -40.9174 -47
+173.799 -40.9441 -14.32
+173.812 -40.9396 -13.03
+173.73 -40.9805 -8.53
+173.747 -40.9857 -5.22
+173.76 -40.9659 -10.87
+173.786 -40.9547 -9.02
+173.731 -40.9541 -19.54
+173.695 -40.9348 -38.74
+173.74 -40.9287 -28.35
+173.637 -41.0497 -13.34
+173.661 -41.0638 -7
+173.534 -40.9784 -42.73
+173.583 -40.9903 -38.37
+173.337 -41.1476 -19.63
+173.381 -41.1305 -21.69
+173.066 -41.004 -9.73
+173.088 -41.0522 -14.76
+173.016 -40.7863 -19.25
+173.062 -40.8103 -24.4
+173.044 -40.8402 -9.76
+173.077 -40.8508 -26.94
+172.889 -40.7995 -6.12
+172.899 -40.7762 -13.5
+172.866 -40.7571 -16.52
+172.853 -40.7878 -8.68
+172.441 -40.5835 -46.9
+172.495 -40.5579 -54.57
+172.542 -40.538 -38.78
+172.125 -40.8174 -33.24
+172.148 -40.7891 -37.89
+171.997 -40.9737 -75.87
+172.051 -40.9582 -48.67
+171.77 -41.6525 -14.38
+171.258 -42.2317 -11.89
+171.272 -42.1939 -9.6
+170.222 -43.0978 -18.94
+170.273 -43.0704 -17
+169.262 -43.6162 -117.87
+169.326 -43.6378 -51.27
+168.662 -43.9421 -36.04
+168.618 -43.8446 -222.26
+168.612 -43.7531 -453.7
+168.517 -43.8164 -1080
+167.89 -44.6347 3
+167.882 -44.6261 -11.47
+167.852 -44.6053 -5.59
+167.803 -44.5827 -108.28
+167.702 -44.5668 -97.57
+167.762 -44.5511 -33.54
+167.795 -44.556 -38.66
+167.805 -44.5697 -34.29
+167.626 -44.6184 -73.92
+167.595 -44.6405 -65.48
+167.561 -44.6582 -115.3
+167.571 -44.7288 -39.6
+167.545 -44.7011 -96.69
+167.552 -44.7214 -71.23
+167.383 -44.9022 -65.34
+167.393 -44.9434 3
+167.4 -44.9504 3
+167.406 -44.7758 -333.09
+167.382 -44.7634 -901.57
+167.362 -44.7919 -563.69
+167.345 -44.8265 -63
+167.11 -44.9886 -104.87
+167.13 -44.9967 -83.93
+167.162 -45.0102 3
+167.215 -45.0249 3
+167.228 -45.0317 3
+167.067 -45.0352 -274.37
+167.081 -45.0392 -72.68
+167.085 -45.0475 -28.58
+167.092 -45.0535 3
+167.097 -45.064 3
+167.134 -45.097 -5.17
+167.139 -45.0939 -4.52
+167.135 -45.1208 -65.54
+167.047 -45.1122 1.37
+167.001 -45.0856 -389.52
+167.018 -45.0853 -181.98
+167.033 -45.0699 -220.06
+167.006 -45.0487 -911.6
+167.019 -45.068 -459.62
+167.037 -45.0492 -518.89
+167.052 -45.0548 -210
+166.961 -45.2026 -70.9
+166.965 -45.138 -27.78
+166.917 -45.0837 -1553.51
+166.975 -45.0719 -930.63
+166.976 -45.1043 -440.91
+166.952 -45.0874 -953.99
+166.944 -45.111 -820.76
+166.953 -45.13 -299.53
+166.967 -45.1251 -145.97
+167.123 -45.2729 -52.04
+167.149 -45.2942 -22.8
+167.154 -45.298 -3.48
+166.85 -45.2616 -159.56
+166.874 -45.2627 -49.57
+166.887 -45.2786 -40.4
+166.916 -45.2844 -160.27
+166.937 -45.2973 -153.05
+166.833 -45.2484 -197
+166.81 -45.2831 -158.18
+167.029 -45.342 -235.57
+167.024 -45.3573 -15.89
+167.022 -45.3645 -80.08
+167.018 -45.3765 -68.39
+167.025 -45.3963 -11.35
+167.117 -45.4492 0.71
+166.778 -45.3828 -79.18
+166.788 -45.3877 3
+166.806 -45.3925 -17.02
+166.74 -45.3717 -344.28
+166.716 -45.588 -230.03
+166.671 -45.5827 -51.32
+166.7 -45.5929 -199.17
+166.717 -45.6193 -124.32
+166.629 -45.5746 -172.04
+166.877 -45.5364 -42.31
+166.869 -45.4148 -79.13
+166.731 -45.6693 -132.52
+166.724 -45.6618 -67.59
+166.739 -45.6663 -69.4
+166.78 -45.6583 -57.34
+166.726 -45.6948 -207.11
+166.726 -45.7202 -98.48
+166.881 -45.7291 -31.45
+166.89 -45.7295 -44.65
+166.575 -45.7714 -147
+166.591 -45.7802 -49.82
+166.429 -45.785 -175.35
+166.46 -45.7622 -44.26
+166.479 -45.7464 -0.7
+166.535 -45.7087 -43.95
+166.551 -45.7266 -36.79
+166.547 -45.6789 -5.01
+166.565 -45.6021 -444.72
+166.588 -45.5818 -481.23
+166.52 -45.6057 -909.51
+166.544 -45.6867 -0.96
+166.526 -46.0072 -7
+166.635 -45.9542 -82.31
+166.642 -45.9374 -78.08
+166.672 -45.9024 2.08
+166.685 -45.879 -7.79
+166.61 -45.9857 -84.14
+166.621 -45.9688 -4
+166.742 -46.0627 -25.25
+166.593 -46.0988 -5.25
+166.59 -46.1292 -21.66
+166.602 -46.1436 -12.59
+166.622 -46.1734 -11.95
+166.582 -46.1477 -41.68
+166.559 -46.1175 -24.73
+166.584 -46.1107 -4.59
+166.534 -46.1478 -62.96
+166.57 -46.1744 -63.23
+166.599 -46.1675 -29.46
+166.69 -46.2328 -45.22
+166.724 -46.2206 -18.16
+166.662 -46.2154 -20.29
+166.607 -46.1874 -35.83
+166.581 -46.2083 -85.08
+166.629 -46.2075 -32.45
+166.628 -46.2405 -84.56
+166.738 -46.2393 -44.62
+166.692 -46.2707 -107.74
+167.453 -47.206 -29.72
+167.386 -47.1832 -90.59
+167.424 -47.2084 -32.25
+167.447 -47.184 -56.13
+167.44 -47.1403 -83.93
+167.427 -47.2598 -4.95
+167.446 -47.2412 -5.8
+167.441 -47.2216 -10.29
+167.496 -47.2989 -33.4
+167.537 -47.3246 -97.12
+167.403 -47.3346 -101.31
+167.477 -47.3346 -99.33
+167.636 -47.2998 -40.14
+167.691 -47.2779 -68.97
+167.589 -47.2745 -26.59
+167.593 -47.2606 -6.22
+167.678 -47.2178 -42.1
+167.66 -47.2105 -7.77
+167.677 -47.2037 -34.44
+167.687 -47.1975 -16.17
+167.686 -47.1798 -6.38
+168.432 -46.6262 1.37
+168.447 -46.6596 -7.33
+168.451 -46.6948 -12.86
+168.205 -46.4879 -14.11
+168.238 -46.4947 -2.02
+167.678 -47.0272 -4.09
+167.626 -47.0096 -25.39
+167.665 -47.0096 -1.38
+168.354 -46.5973 -1.41
+168.402 -46.6184 -7
+167.687 -46.7732 -7
+167.68 -46.7899 -7
+167.689 -46.8075 -7
+167.682 -46.7502 -16.53
+167.682 -46.7248 -29.55
+168.192 -47.1416 -51.1
+168.218 -47.1179 -46.17
+168.261 -47.1055 -53.61
+168.244 -47.0614 -36.58
+168.192 -47.0705 -0.89
+168.217 -47.0539 -6.72
+168.213 -47.0714 -9.24
+168.165 -47.089 -8.88
+168.178 -47.0966 -21.27
+168.183 -47.1122 -39.63
+168.123 -46.8283 -27
+168.161 -46.7895 -27
+168.173 -46.8733 -14.01
+168.203 -46.8934 -27
+168.154 -46.9253 -7
+168.104 -46.9399 -15.47
+168.128 -46.9492 -10.79
+168.15 -46.956 -7
+168.122 -46.9814 -7
+168.198 -46.9543 -19.04
+168.21 -46.9147 -27
+168.221 -46.9394 -27
+168.121 -46.9196 -5.16
+168.141 -46.9199 0.5
+168.158 -46.9132 -3.95
+168.184 -46.9106 -21.79
+168.172 -46.9209 -3.89
+168.169 -46.9302 -1.79
+169.243 -46.6693 -34.93
+169.283 -46.6605 -30.31
+169.132 -46.6798 -22.16
+169.174 -46.6928 -46.89
+169.034 -46.6895 -25.1
+169.051 -46.7227 -47
+168.793 -46.6853 -21.04
+168.784 -46.7379 -38.83
+173.907 -40.7313 -6.87
+173.894 -40.7507 -17.24
+173.876 -40.7736 -8.7
+173.903 -40.775 -16.69
+173.878 -40.7882 -11.78
+173.759 -40.9089 -18.89
+173.714 -40.9029 -39.29
+173.746 -40.8792 -27.24
+173.855 -41.038 -10.98
+173.825 -41.0356 -25.94
+173.81 -41.0479 -18.53
+173.801 -41.0615 -22.35
+173.792 -41.0748 -13.4
+174.241 -41.0159 -17
+174.22 -41.0343 -18.4
+174.297 -41.0626 -16.08
+174.34 -41.0427 -49.37
+174.269 -40.995 -33.55
+174.31 -40.9753 -85.73
+173.933 -41.0038 -42.91
+173.95 -40.9914 -37.41
+173.957 -40.9745 -15.42
+173.941 -40.9751 -6.02
+174.041 -40.9118 -87.29
+174.03 -40.9258 -65.04
+174.035 -40.9423 -25.29
+174.013 -40.9502 -37.89
+173.993 -40.9551 -26.75
+173.973 -40.9649 -37.08
+174.022 -40.8978 -22.72
+174.026 -40.8724 -28.85
+174.095 -40.919 -32.78
+174.072 -40.92 -46.15
+174.126 -40.9854 -15.28
+174.037 -40.9871 -7
+174.086 -40.9935 -17.72
+174.082 -41.0054 -25.59
+174.095 -40.98 -8.3
+174.121 -40.966 -34.25
+173.682 -41.068 -5.97
+173.703 -41.0638 -3.38
+173.728 -41.0521 -1.52
+173.648 -41.0815 -7
+174.273 -41.0886 -7
+174.263 -41.1023 -15.94
+174.341 -41.0846 -22.68
+174.244 -41.1469 -45.92
+174.223 -41.1547 -47
+174.214 -41.17 -47
+174.205 -41.1946 -41.81
+174.27 -41.1383 -27.31
+174.281 -41.1279 -27
+174.267 -41.1249 -27
+174.257 -41.161 -30.9
+174.26 -41.1711 -19.74
+174.274 -41.1726 -18.57
+174.292 -41.1238 -10.87
+174.304 -41.1193 -15.66
+174.332 -41.1091 -13.47
+174.292 -41.1505 -25.44
+174.317 -41.1446 -27
+174.332 -41.1531 -24.46
+174.35 -41.1516 -18.01
+174.191 -41.2034 -39.3
+174.178 -41.2096 -43.95
+174.167 -41.2173 -31.74
+174.153 -41.2252 -32.85
+174.136 -41.2252 -27
+174.121 -41.2307 -9.58
+174.103 -41.2319 -27
+174.087 -41.2358 -27
+174.071 -41.2381 -27
+174.051 -41.2373 -27
+174.037 -41.2521 -23.07
+174.221 -41.1988 -34.7
+174.051 -41.2245 -21.32
+174.064 -41.2151 -26.79
+174.094 -41.2154 -20.11
+174.13 -41.2139 -18.29
+174.163 -41.194 -14.65
+173.873 -41.2164 0.59
+173.999 -41.2005 1.21
+174.01 -41.1951 -0.68
+174.01 -41.1879 -3.05
+173.985 -41.2561 -16.88
+174.137 -41.0106 -4.51
+174.023 -41.0014 -5.71
+174.031 -40.998 -6.86
+174.029 -40.9557 -20.22
+174.034 -40.9692 -15.25
+174.023 -41.0409 -18.47
+174.031 -41.0343 -17.97
+174.025 -41.0245 -9.39
+174.285 -41.3102 -84.33
+174.319 -41.2141 -10.79
+174.322 -41.2196 -30.23
+174.309 -41.2304 -47
+174.328 -41.2334 -67.96
+174.339 -41.2142 -41.91
+174.385 -41.1658 -53.65
+174.35 -41.2576 -96.97
+174.355 -41.2275 -87.74
+174.609 -41.421 -198.54
+174.836 -41.3444 -12.76
+174.847 -41.3281 -7
+174.856 -41.3092 -10.62
+174.866 -41.2836 -17.34
+174.786 -41.1114 -22.55
+174.811 -41.1014 -9.82
+174.815 -41.0857 -17
+174.648 -41.1976 -97.54
+174.595 -41.2073 -188.62
+174.811 -41.2766 -11.78
+174.836 -41.2764 -17.68
+173.987 -40.9414 -10.59
+173.983 -40.929 -16.11
+167.024 -45.401 -29.9
+174.349 -40.3484 -105.39
+174.352 -40.4134 -112.26
+173.423 -41.0337 -35.58
+173.497 -41.0411 -33.7
+184.564 -38.8729 -4793.45
+184.596 -38.5227 -4840.91
+187.953 -39.2331 -4747.41
+188.521 -39.3822 -4648.36
+182.869 -39.7932 -3956.96
+183.854 -53.0667 -5508.36
+183.953 -52.6655 -5595.66
+189.579 -50.6361 -5144.68
+190.33 -50.8257 -5016.7
+187.128 -49.1816 -5423.1
+187.42 -49.5169 -5318.37
+184.656 -51.6342 -5547.73
+185.342 -51.9351 -5689.92
+170.63 -45.7143 -7
+170.676 -45.737 -13.93
+170.747 -45.8229 -6.1
+170.654 -45.9169 -26
+170.702 -45.8876 -7.91
+170.762 -45.7829 -17
+172.944 -43.8044 3
+172.928 -43.7984 -2.72
+172.932 -43.8059 -6.83
+172.927 -43.7848 -3.67
+172.938 -43.7791 -2.87
+172.916 -43.8328 -4.8
+172.923 -43.8446 -5.83
+175.494 -36.2399 -12.59
+175.522 -36.2356 -47
+175.551 -36.2655 -50.23
+175.628 -36.4082 -57.66
+175.648 -36.3667 -77.73
+175.573 -36.3259 -48.23
+175.588 -36.2872 -57.76
+175.332 -36.1745 -0.52
+175.341 -36.1872 -3.78
+175.332 -36.1518 -11.26
+175.31 -36.1599 -14.74
+175.326 -36.1589 -6.57
+175.331 -36.1195 -20.98
+175.349 -36.1184 -4.31
+166.62 -46.139 1.03
+166.646 -46.1242 1.38
+166.632 -46.1347 1.73
+173.034 -40.5903 -5.79
+173.07 -40.614 -21.39
+173.049 -40.535 -32.33
+173.093 -40.5342 -49.16
+173.665 -40.617 -60.88
+173.726 -40.6277 -62.23
+174.007 -40.3042 -101.02
+174.076 -40.3191 -94.34
+178.006 -39.1561 -46.32
+178.066 -39.1507 -82.87
+194.281 -35.7447 -5050.84
+194.856 -35.6976 -5288.91
+175.77 -42.5274 -1638.23
+175.954 -42.5533 -1431.03
+176.135 -42.577 -1220.99
+174.709 -42.6858 -1525.64
+174.858 -42.7427 -1188.84
+174.12 -42.7168 -1828.32
+174.446 -42.0415 -622.98
+175.598 -42.7317 -966.5
+176.008 -42.6723 -1004.1
+176.035 -42.7998 -701.55
+174.328 -42.2399 -874.99
+174.117 -42.83 -1562.46
+175.132 -42.7839 -1005.63
+174.979 -42.794 -1040.97
+175.001 -42.694 -1311.9
+174.722 -42.814 -1108.5
+173.981 -42.7762 -1685.88
+176.168 -42.7184 -810.6
+174.457 -43.0177 -788.05
+174.36 -43.1169 -653.75
+174.875 -42.8612 -882.4
+175.026 -42.888 -725.33
+175.181 -42.917 -583.96
+178.59 -41.2953 -3039.97
+178.339 -40.7235 -3020.11
+178.674 -40.7431 -3099.41
+178.371 -41.3985 -3014.1
+179.245 -40.8492 -2997.35
+179.435 -41.1089 -2899.01
+177.809 -41.5439 -2957.13
+177.652 -41.7084 -2923.62
+177.86 -41.1946 -2924.14
+177.919 -41.3927 -2966.08
+178.911 -40.8896 -3167.61
+178.997 -40.6837 -3214.22
+178.141 -41.0643 -2944.35
+179.171 -41.3134 -2784.01
+177.335 -42.436 -2452.51
+177.505 -42.2593 -2536.73
+178.43 -41.5992 -2912.85
+178.564 -41.8189 -2615.66
+177.331 -41.1814 -2272.85
+177.583 -41.1932 -2648.09
+179.365 -41.803 -2706.58
+179.676 -41.7322 -2775.1
+179.989 -41.8168 -2873.89
+179.728 -41.4577 -2742.54
+179.924 -41.6212 -2839.95
+180.353 -41.4868 -2490.74
+180.454 -41.7011 -2356.34
+179.659 -41.2497 -2765.95
+179.914 -41.2653 -2666.51
+179.799 -41.9769 -2774.73
+180.048 -41.4579 -2696.8
+180.223 -41.2822 -2661.16
+179.891 -42.2373 -2760.65
+180.096 -42.0468 -2635.6
+177.882 -42.0797 -2631.87
+178.085 -42.0962 -2519.19
+179.85 -42.4766 -2566.02
+180.044 -42.406 -2785.73
+180.546 -42.2726 -2660.02
+180.647 -42.4683 -2253.01
+179.065 -42.1326 -2475.55
+179.105 -41.8937 -2632.39
+180.709 -41.5204 -2787.28
+179.597 -42.1183 -2717.51
+179.627 -42.3472 -2609.53
+180.227 -42.2816 -2708.74
+180.995 -41.6766 -2618.31
+181.294 -41.5977 -2548.26
+180.269 -41.8672 -2552.15
+180.525 -41.9185 -2126.39
+180.74 -41.9925 -2643.45
+180.766 -42.1797 -2553.89
+177.784 -42.2734 -2427.34
+179.41 -42.4539 -2276.79
+179.634 -42.5581 -2075.14
+180.773 -42.3414 -2618.07
+181.028 -42.2811 -2551.03
+179.141 -42.3832 -2298.56
+179.364 -42.2411 -2505.29
+178.895 -41.7498 -2621.65
+178.831 -41.9656 -2433.72
+181.229 -41.834 -2623.69
+181.462 -42.0318 -2667.29
+180.725 -41.7852 -2652.1
+180.961 -41.9019 -2664.26
+178.311 -42.0134 -2571.45
+178.59 -42.031 -2447.08
+177.076 -42.5113 -1855.61
+180.928 -42.0811 -2514.1
+181.154 -42.0523 -2613.52
+178.223 -42.2494 -2312.98
+180.4 -42.4534 -2582.81
+181.304 -42.2042 -2658.93
+181.315 -42.3835 -1999.31
+181.516 -42.2728 -2551.79
+181.538 -42.4595 -1737.58
+181.736 -42.3698 -1957.36
+177.481 -41.0443 -2367.66
+177.601 -40.8923 -2367.9
+177.818 -40.7607 -2325.19
+178.768 -42.1675 -2288.72
+178.921 -42.2996 -2275.43
+181.13 -42.5106 -1626.55
+181.367 -42.5573 -1356.82
+177.401 -40.8013 -2016.41
+179.054 -42.5661 -2184
+179.25 -42.5558 -2082.36
+177.61 -42.4392 -2388.08
+178.049 -42.5529 -1730.41
+178.211 -42.6165 -1679.37
+178.503 -42.206 -2326
+178.707 -42.3781 -2270.38
+178.379 -42.5939 -1990.83
+178.598 -42.5697 -2161.05
+178.82 -42.5654 -2032.25
+178.925 -42.4367 -2281.25
+177.768 -40.5411 -2147.65
+180.502 -42.6233 -1261.2
+180.739 -42.643 -1096.18
+179.844 -42.6989 -1286.2
+180.884 -42.4859 -1805.65
+180.982 -42.6633 -1099.07
+177.209 -40.4657 -1272.52
+177.273 -42.6207 -1377.14
+177.486 -42.5816 -1891.72
+177.306 -40.2891 -1389.55
+176.755 -40.9856 -1097.45
+176.89 -42.6185 -1249.75
+177.077 -42.6972 -1031.62
+178.732 -42.7235 -1471.11
+178.952 -42.7234 -1489.48
+177.394 -40.0972 -837.19
+177.501 -40.0157 -888.26
+177.179 -40.2582 -579.28
+177.2 -40.3587 -554.33
+181.729 -42.5514 -1277.11
+181.676 -42.7126 -1111.36
+181.444 -42.7055 -940.49
+181.551 -42.5973 -1216.56
+181.22 -42.6799 -1022.04
+181.322 -42.8059 -933.69
+177.583 -42.7076 -1088.86
+176.792 -40.7976 -625.14
+176.846 -40.896 -1194.64
+182.789 -42.2218 -2726.63
+183.03 -42.3871 -2521.41
+183.158 -42.5931 -1661.41
+183.346 -42.45 -2547.13
+182.679 -42.4525 -1998.62
+182.906 -42.6074 -1511.41
+182.181 -41.9604 -2518.86
+182.224 -42.2072 -2415.19
+182.37 -42.4157 -1906.95
+182.523 -42.2365 -2367.08
+183.891 -42.776 -1207.77
+184.128 -42.682 -1612.6
+181.958 -42.2892 -2316.34
+182.137 -42.3995 -1911.51
+182.469 -42.6102 -1493.89
+182.688 -42.6596 -1266.65
+183.047 -42.742 -1051.67
+183.261 -42.7602 -1010.35
+182.189 -42.5882 -1404.91
+182.337 -42.73 -1133.53
+183.398 -42.6236 -1561.32
+183.512 -42.7614 -1091.42
+181.946 -42.4815 -1565.44
+181.924 -42.6706 -1133.58
+175.319 -41.6362 -62.55
+178.626 -39.8611 -3109.11
+178.316 -39.1786 -1250.85
+178.341 -39.2903 -1249.62
+178.028 -39.8526 -1256.04
+178.034 -40.0388 -1300.54
+177.705 -39.8116 -1027.34
+177.82 -39.943 -1345.16
+177.752 -39.6963 -410.51
+177.862 -39.7758 -1182.2
+177.614 -39.9265 -1067.27
+177.997 -39.7009 -1045.42
+178.224 -39.7156 -811.24
+178.264 -39.4166 -760.61
+177.662 -39.6666 -230.19
+177.632 -39.7301 -390.81
+178.191 -39.5348 -627.5
+178.365 -39.5531 -856.27
+177.872 -39.672 -700.32
+177.935 -39.5999 -471.98
+178.068 -39.5915 -747.43
+178.08 -39.4907 -305.75
+178.151 -39.4458 -344.02
+177.712 -39.6252 -171.02
+177.807 -39.5981 -224.49
+178.146 -39.3736 -184.38
+178.203 -39.3109 -357.16
+178.068 -39.3533 -125.3
+178.079 -39.4158 -149.52
+178.021 -39.3875 -115.13
+178.002 -39.4445 -133.24
+177.787 -39.5258 -103.8
+177.879 -39.5215 -144.81
+177.882 -39.4554 -93.74
+177.934 -39.4326 -108
+182.535 -39.707 -3950.41
+182.256 -39.2865 -3822.82
+182.287 -39.5764 -3745.95
+181.978 -39.4489 -3734.57
+181.711 -39.3167 -3480.35
+181.956 -39.2181 -3780.97
+181.976 -39.7195 -3729.18
+181.999 -39.9896 -3720.35
+181.68 -39.5689 -3610.09
+181.626 -39.8486 -3655.54
+181.295 -39.8547 -3653.08
+181.355 -39.6444 -3679.89
+181.123 -39.4603 -3460.9
+181.43 -39.4072 -2860.1
+180.762 -39.9068 -3585.7
+181.095 -40.026 -3506.72
+180.886 -39.2607 -3509.58
+181.22 -39.2338 -3530.1
+180.98 -38.5787 -3439.08
+181.312 -38.721 -3353.75
+181.35 -38.9944 -3265.49
+181.488 -39.2017 -2930.68
+181.053 -38.8584 -3554.83
+181.066 -39.0699 -3581.54
+180.551 -39.4238 -3482.59
+180.856 -39.5049 -3576.67
+179.675 -37.9138 -3396.21
+180.547 -38.6278 -3514.79
+180.709 -38.3408 -3505.12
+180.577 -39.1422 -3486.2
+180.818 -39.0024 -3427.24
+180.557 -38.9014 -3516.22
+180.787 -38.7897 -3399.29
+180.292 -39.2418 -3522.01
+180.191 -39.4845 -3353.36
+180.674 -39.674 -3502.07
+180.101 -38.2863 -3575.23
+180.386 -38.3949 -3573.82
+179.792 -38.9155 -3595.74
+180.144 -38.5873 -3590.22
+180.281 -38.8331 -3592.39
+180.073 -39.0426 -3594.95
+180.356 -39.0322 -3569.39
+179.619 -39.3765 -3149.8
+179.748 -39.1355 -3595.89
+179.97 -39.3076 -3427.98
+179.134 -39.166 -3443.25
+179.48 -38.3432 -3169.84
+179.805 -38.4493 -3533.55
+179.869 -39.5454 -3185.09
+178.989 -38.1294 -596.36
+179.412 -39.7867 -3211.86
+179.355 -39.5297 -3404.58
+178.841 -39.491 -3311.8
+179.065 -39.6672 -3293.77
+178.582 -39.2071 -2297.41
+178.655 -39.3475 -2526.42
+178.752 -39.6878 -3298.91
+178.89 -39.8688 -3293.99
+179.03 -40.059 -3291.77
+179.142 -39.8809 -3171.84
+178.566 -38.9986 -1450.76
+178.662 -39.0946 -1830.74
+179.066 -38.009 -1258.51
+179.278 -37.6756 -1146.07
+179.551 -37.6771 -2140.75
+178.495 -39.7049 -1952.85
+178.592 -39.5342 -2421.38
+178.686 -38.5842 -681.25
+178.857 -38.1284 -296.22
+178.909 -38.2527 -836.98
+178.435 -39.1966 -1764.9
+178.51 -39.1028 -1522.84
+178.475 -38.9293 -1239.3
+178.75 -38.3784 -657.08
+181.701 -40.1753 -3596.33
+182.101 -40.2705 -3710.24
+181.338 -40.2766 -3323.38
+181.411 -40.0363 -3552.95
+181.399 -40.5514 -3188.48
+181.033 -40.2589 -3308.48
+181.733 -40.6289 -3324.61
+181.763 -40.895 -2752.58
+178.738 -40.0464 -3233.86
+180.484 -40.0494 -3262.99
+179.329 -40.0286 -3044.7
+178.857 -40.2771 -3297.03
+179.226 -40.2511 -3243.22
+178.529 -40.1949 -3085.44
+178.79 -40.5241 -2943.24
+179.094 -40.4713 -3237.37
+181.092 -40.4644 -3145.11
+179.95 -39.9221 -3213.88
+179.442 -40.4668 -2974.41
+178.267 -40.1196 -2075.96
+178.469 -40.0001 -2452.35
+181.142 -40.7157 -2985.15
+181.462 -40.8055 -2811.08
+180.829 -40.6128 -3029.73
+180.849 -40.8844 -2862.26
+180.5 -40.4796 -2520.69
+180.808 -40.3706 -3315.27
+180.238 -40.664 -2549.31
+181.498 -41.0833 -2632.5
+181.841 -41.1119 -2738.15
+181.677 -41.3006 -2575.63
+181.817 -41.463 -2578.28
+180.092 -41.0769 -2578.37
+180.401 -41.1013 -2772.28
+180.298 -40.8958 -2677.36
+180.553 -40.7508 -2660.67
+181.183 -40.9621 -2699.81
+180.855 -41.2685 -2753.26
+181.063 -41.4351 -2674.32
+181.379 -41.3531 -2672.56
+181.584 -41.5243 -2599.19
+180.561 -40.9496 -2722.27
+180.696 -41.099 -2711.62
+181.522 -41.7663 -2749.76
+181.829 -41.6894 -2728.36
+177.65 -40.064 -1233.43
+182.341 -40.0668 -3746.11
+182.281 -39.8278 -3872.51
+183.022 -40.6833 -3506.95
+183.289 -40.8268 -3744.07
+182.546 -39.9077 -3903.05
+182.71 -40.1257 -3792.45
+183.002 -40.3775 -3675.59
+182.371 -40.4459 -3637.18
+182.431 -40.2535 -3494.49
+182.343 -40.6828 -3611.36
+182.677 -40.8705 -3339.46
+182.028 -40.767 -3385.03
+182.068 -40.5335 -3455.63
+182.28 -40.9265 -3423.66
+182.482 -41.1625 -3323.53
+182.011 -40.9612 -3059.6
+182.135 -41.1345 -3157.67
+182.902 -41.1741 -3215.83
+183.045 -40.9276 -3243
+182.472 -41.3741 -3329.49
+182.672 -41.3286 -3264.69
+182.877 -41.4458 -3056.99
+183.22 -41.4141 -2977.81
+182.622 -41.5052 -3047.74
+182.805 -41.6536 -2942.07
+181.958 -41.3063 -2732.3
+182.239 -41.3386 -3118.07
+182.348 -41.5658 -3008.67
+183.042 -41.5991 -2837.69
+183.053 -41.8401 -2791.62
+183.243 -41.6538 -2850.71
+183.511 -41.6137 -3094.39
+182.559 -41.6785 -2989.8
+182.665 -41.875 -2875.74
+182.048 -41.5159 -2792.05
+183.39 -41.8019 -2846.28
+183.397 -42.0421 -2659.31
+183.706 -42.1283 -2757.54
+183.813 -42.3013 -2771.04
+182.843 -42.0294 -2789.45
+183.059 -42.1294 -2665.95
+183.272 -42.2554 -2679.43
+183.54 -42.2888 -2938.79
+182.116 -41.7377 -2726.56
+182.379 -41.8108 -2674.83
+174.701 -42.002 -818.5
+174.357 -42.3466 -1422.84
+176.214 -42.0639 -2659.84
+173.917 -42.3707 -483.58
+174.02 -42.3429 -747.75
+173.989 -42.6672 -1838.62
+174.357 -42.4661 -2169.81
+175.036 -42.1218 -2467.1
+176.343 -42.5398 -1386.04
+176.517 -42.4616 -1999.5
+176.955 -42.3606 -2504.18
+176.912 -41.9253 -2806.98
+173.971 -43.0354 -1124.36
+174.117 -42.9509 -1209.31
+173.738 -42.7687 -667.25
+173.878 -43.3098 -487.79
+174.02 -43.2789 -703.21
+173.953 -42.8991 -1487.81
+173.692 -42.565 -966.22
+174.262 -42.7677 -1649.87
+174.407 -42.703 -1718.6
+175.445 -42.5163 -1868.19
+175.596 -42.5902 -1415.42
+175.746 -42.3715 -2431.38
+174.394 -43.5118 -555.15
+174.407 -43.6307 -549.23
+175.602 -42.8672 -673.29
+175.758 -42.9423 -579.01
+174.275 -44.1705 -568.34
+174.266 -44.3177 -639.35
+179.034 -38.7762 -3522.64
+179.292 -38.9358 -3186.32
+179.1 -39.4131 -3402.29
+179.328 -39.3308 -3487.89
+178.239 -39.9333 -1148.13
+178.412 -39.8452 -1505.03
+177.811 -40.3288 -1929.92
+178.04 -40.2297 -2114.63
+178.42 -41.0197 -3149.77
+178.475 -40.8679 -3155.76
+179.248 -40.6315 -3075.55
+179.45 -40.6887 -2811.33
+180.155 -40.0757 -3016.52
+180.323 -40.258 -2770.49
+179.468 -38.0966 -2892.73
+179.764 -38.1828 -3355.65
+181.569 -38.8149 -3343.79
+181.558 -38.6191 -3396.5
+179.603 -39.604 -3399.83
+179.756 -39.758 -3365.9
+179.816 -40.3858 -2777.61
+179.857 -40.1346 -2883.29
+179.806 -38.6945 -3588.57
+180.021 -38.8199 -3581.31
+180.208 -37.6566 -3902.77
+180.558 -37.5377 -3623.57
+180.81 -38.0482 -3480.05
+181.09 -38.2606 -3476.07
+182.298 -38.6932 -3893.4
+183.119 -39.2973 -4052.52
+183.11 -39.5383 -3985.62
+184.058 -42.4179 -2732.04
+183.154 -40.0629 -3789.99
+183.408 -40.2686 -4027.2
+182.061 -38.3667 -3454.05
+182.51 -38.3602 -3612.44
+183.811 -39.6994 -4320.75
+184.06 -39.9773 -4300.35
+182.109 -39.0001 -3981.73
+182.503 -39.0366 -2992.1
+182.724 -38.706 -3932.97
+183.139 -38.7292 -3892.73
+179.584 -40.8665 -2732.55
+179.765 -41.068 -2828.74
+184.346 -42.507 -2278.37
+184.326 -42.3143 -2646.4
+184.815 -42.1433 -2591.74
+185.045 -42.0203 -2568.75
+183.716 -41.1246 -3382.78
+184.049 -40.9885 -3969.03
+184.048 -41.8102 -2930.49
+184.322 -41.8979 -2856.26
+184.678 -41.394 -3268.49
+184.78 -41.6042 -2979.39
+184.34 -40.7392 -4105.09
+184.469 -40.9829 -3503.97
+183.349 -39.7574 -3915.27
+183.601 -40.015 -4098.74
+187.127 -41.7237 -3008.68
+187.503 -41.976 -2753.83
+188.728 -41.4428 -3788.25
+189.14 -41.5356 -3741.72
+178.994 -45.9085 -2955.37
+176.747 -46.3701 -2212.34
+176.862 -46.6154 -2482.01
+172.765 -44.9217 -1211.07
+171.582 -45.59 -1196.9
+171.702 -45.7076 -1362.64
+171.408 -46.0383 -1232.62
+172.008 -45.1199 -1191.53
+170.512 -46.4531 -747
+171.079 -46.5637 -1104.84
+171.027 -47.6356 -1298.27
+171.174 -47.8138 -1319.77
+171.765 -46.6266 -1281
+171.711 -46.8538 -1330.2
+173.432 -46.2217 -1684.41
+176.575 -45.266 -1685.12
+176.817 -45.4477 -1835.26
+176.944 -45.9924 -2194.19
+177.457 -46.3991 -2686.79
+177.817 -46.4409 -2937.32
+175.952 -50.1521 -1631.72
+176.046 -49.9643 -1434.6
+176.086 -50.6367 -2872.07
+177.459 -50.1253 -1920.89
+177.603 -50.37 -3638.95
+174.197 -52.4268 -1873.76
+174.554 -52.3964 -3164.38
+174.93 -52.0146 -2840.67
+175.372 -52.0854 -3843.77
+173.916 -53.3254 -2617.4
+174.233 -53.5371 -3794.66
+176.333 -50.8225 -3511.1
+176.797 -50.8451 -4506.87
+175.877 -52.1715 -4609.85
+177.037 -52.3088 -4959.45
+177.37 -52.6724 -4923.55
+176.865 -50.5203 -3030.46
+177.273 -50.6146 -3878.52
+174.663 -52.1726 -3280.86
+174.972 -52.2837 -3913.65
+175.725 -51.8968 -4282.54
+178.514 -50.415 -4196.61
+177.831 -51.3529 -4977.95
+176.787 -52.0109 -4918.78
+177.312 -51.9831 -5006.91
+178.332 -50.1717 -3405.12
+178.808 -50.2198 -3762.26
+181.398 -48.3085 -4529.85
+181.606 -48.0853 -4547.84
+181.579 -48.5806 -4754.85
+181.919 -48.8208 -4547.84
+181.631 -47.6693 -4304.26
+181.612 -47.4209 -4132.37
+182.231 -47.9212 -4891.49
+182.692 -48.073 -4842.71
+180.787 -46.2779 -3697.84
+181.152 -45.6646 -3372.66
+182.029 -46.5862 -4508
+182.322 -46.3156 -4375.33
+178.749 -45.0113 -2404.96
+178.841 -45.2546 -2608.54
+177.742 -45.0273 -2180.42
+177.14 -45.3266 -2107.42
+177.183 -45.5556 -2389.31
+177.81 -45.4367 -2590.22
+177.978 -45.7291 -2750.54
+178.408 -46.378 -3052.07
+178.735 -46.3732 -3072.22
+177.618 -45.9171 -2752.86
+177.945 -46.0034 -2841.53
+180.811 -46.0274 -3713.07
+181.305 -45.4253 -3211.14
+181.613 -45.5573 -3985.92
+181.884 -45.7983 -4273.45
+182.109 -46.0376 -4352.2
+183.035 -46.0394 -4295.09
+183.35 -46.3432 -4603.14
+179.142 -45.6955 -2695.8
+178.208 -45.4541 -2694.48
+178.609 -45.4637 -2688.62
+181.133 -45.9534 -3934.68
+181.492 -45.8629 -4162.37
+182.5 -45.5023 -4046.92
+182.871 -45.5157 -4022.26
+182.728 -45.7642 -4177.67
+183.162 -45.7174 -3947.41
+180.441 -46.3881 -3495.43
+180.016 -47.0145 -2275.8
+180.317 -47.1339 -2037.66
+179.729 -46.6183 -3019.72
+180.045 -46.7598 -2816.64
+180.918 -47.1434 -2817.01
+181.559 -46.5084 -4356.94
+181.135 -46.4017 -4138.26
+181.218 -46.7064 -4018.82
+181.016 -48.9113 -3028.62
+181.254 -49.1578 -3770.35
+181.548 -47.1621 -4313.82
+181.942 -47.2144 -4596.26
+183.618 -45.0392 -2537.08
+183.873 -45.141 -3298.15
+184.725 -45.0662 -3321.45
+184.974 -45.2786 -4052.48
+183.955 -45.7357 -4116.66
+184.177 -46.0078 -4205.76
+174.578 -52.9054 -3991.12
+170.205 -55.4214 -5005.76
+170.809 -55.4796 -5332.75
+171.187 -54.4971 -3929.8
+171.297 -54.8074 -4662.25
+171.078 -55.1712 -5295.65
+171.736 -55.1053 -5336.22
+169.88 -56.0344 -5248.77
+170.425 -55.7833 -5087.4
+172.576 -54.2017 -4443.33
+172.944 -54.4579 -5142.41
+174.814 -53.1153 -4578.68
+175.022 -52.9227 -4720.4
+173.534 -53.8493 -4238.43
+173.977 -53.8366 -4339.57
+173.684 -54.048 -4928.14
+174.057 -54.1155 -4875.07
+172.343 -46.0536 -1445.93
+172.652 -46.0812 -1503.17
+175.613 -47.0306 -1507.62
+175.98 -47.0216 -1616.26
+183.972 -46.979 -5014.16
+184.393 -47.0872 -4875.11
+185.348 -47.7753 -5150.78
+185.928 -47.7008 -5207.02
+184.97 -49.7234 -5317.18
+185.529 -49.7412 -5307.25
+185.925 -50.1439 -5404.47
+186.279 -50.5092 -5366.76
+170.732 -54.9583 -4708.99
+169.602 -55.4798 -4707.59
+169.899 -55.7061 -5100.5
+165.185 -55.4311 -2766.5
+165.449 -55.5987 -2234.22
+166.162 -55.8226 -3394.28
+166.558 -55.9078 -3640.41
+167.436 -56.2378 -4639.59
+168.03 -56.2945 -4839.73
+170.264 -55.0768 -3895.33
+170.622 -55.2286 -5015.94
+169.319 -55.2322 -3466.63
+169.787 -55.1722 -4069.66
+169.903 -54.8791 -2471.71
+170.34 -54.7831 -3056.96
+171.43 -54.3102 -2863.46
+171.711 -54.4793 -4339.26
+171.34 -55.4259 -5569.09
+171.91 -55.5326 -5380.67
+162.639 -52.9855 -4003.78
+163.215 -52.6645 -4294.46
+164.769 -52.1138 -3948.51
+164.975 -52.3501 -2764.88
+164.892 -50.8419 -3530.86
+165.145 -51.0435 -3616.39
+165.083 -50.3176 -3514.61
+165.639 -52.0302 -1025.48
+165.867 -51.9898 -1045.79
+165.68 -52.2396 -1004.98
+165.85 -52.1179 -1087.17
+163.31 -51.7026 -4236.32
+163.819 -51.471 -4278.96
+163.453 -52.3468 -4166.13
+163.87 -52.5368 -4068.76
+163.757 -52.8755 -4132.15
+162.142 -52.7341 -3524.85
+162.603 -52.6061 -3976.07
+162.418 -51.8173 -3368.87
+162.43 -52.0594 -3621.56
+163.282 -53.0232 -4089.08
+163.654 -53.1739 -4117.2
+165.505 -48.8894 -3252.38
+165.533 -48.623 -3068.4
+165.335 -49.1541 -3405.08
+165.665 -49.0961 -3319.9
+165.038 -49.5403 -3468.85
+165.269 -49.387 -3163.12
+164.305 -52.029 -3947.96
+164.61 -51.8742 -3654.06
+165.432 -49.8948 -3136.42
+165.481 -50.1496 -3231.36
+164.825 -50.5622 -3437.5
+165.161 -50.5961 -3173.38
+165.545 -48.2006 -2471.17
+165.841 -47.5445 -2781.53
+165.605 -47.6042 -2697.47
+164.36 -48.2945 -5737.65
+164.716 -46.383 -3346.45
+164.986 -46.2287 -3749.05
+164.848 -50.1007 -3659.03
+165.166 -50.057 -3427.6
+163.433 -47.9635 -4221.33
+163.69 -47.6076 -4315.39
+163.953 -46.2818 -3973.15
+164.355 -46.3354 -3662.88
+163.467 -49.1763 -4154.02
+163.68 -49.3538 -4673.5
+163.8 -49.8763 -1603.07
+164.041 -49.9891 -1568.05
+163.681 -51.1457 -4003.46
+164.055 -51.1746 -3381.99
+163.838 -51.8679 -4288.47
+164.284 -51.7079 -4260.56
+164.076 -48.7865 -5221.77
+164.447 -48.7268 -3685.58
+166.893 -49.2629 -602.98
+166.865 -49.3698 -591.48
+166.701 -49.4154 -551.81
+166.806 -49.491 -593.79
+166.287 -49.4482 -726.61
+166.315 -49.3312 -1089.09
+165.772 -49.7671 -3161.57
+165.793 -49.986 -2747.33
+165.836 -48.7255 -2818.81
+165.887 -48.9391 -2571.82
+166.906 -47.1281 -848.99
+166.689 -46.4264 -213.84
+166.807 -46.4014 -151.04
+167.168 -46.5945 -178.8
+166.635 -47.3973 -1477.25
+166.064 -47.4753 -2421.09
+165.816 -47.7231 -2838.27
+166.073 -47.6564 -2556.61
+166.272 -47.3988 -2411.9
+166.463 -47.4736 -1957.56
+166.946 -47.2609 -539.96
+166.481 -47.6104 -535.16
+166.646 -47.5326 -917.29
+166.085 -46.982 -1571.11
+165.9 -46.9806 -778.37
+165.993 -47.0899 -1948.56
+165.633 -47.44 -2568.53
+165.22 -46.4879 -4200.74
+167.611 -46.8203 -42.29
+167.685 -46.9063 -36.41
+167.674 -46.8718 -35.86
+167.708 -46.8539 -21.94
+167.622 -46.8599 -47
+167.638 -46.8932 -47
+167.525 -46.8476 -89.95
+167.577 -46.8448 -64.24
+167.545 -47.0412 -44.3
+167.589 -47.0341 -13.87
+167.486 -47.0365 -97
+167.507 -47.0727 -67.33
+167.744 -46.6707 -45.67
+167.779 -46.6472 -31.67
+167.83 -46.6236 -47
+167.873 -46.6024 -47
+168.035 -46.7338 -27
+168.082 -46.7109 -27
+166.991 -46.5979 -204.73
+166.558 -46.4477 -363.43
+166.617 -46.37 -197
+166.443 -46.2758 -290.66
+166.445 -46.2102 -216.28
+166.344 -45.8349 -197
+165.458 -45.642 -4048.36
+165.106 -45.7677 -4291.45
+164.94 -45.2896 -4485.52
+165.306 -45.233 -4571.97
+165.087 -45.0069 -4548.42
+165.317 -44.6938 -4616.86
+165.196 -46.0244 -2753.78
+165.468 -46.0729 -3997.13
+165.499 -45.4076 -4357.18
+167.875 -43.7067 -2132.16
+167.52 -44.3562 -3033.61
+168.517 -43.7065 -1165.73
+166.001 -44.1103 -4122.85
+165.979 -44.379 -4038.51
+166.098 -43.8494 -3939.54
+166.394 -43.8205 -3917.03
+168.145 -41.6024 -1231.63
+168.351 -41.4737 -1067.7
+169.093 -41.9037 -1150.03
+169.314 -41.9961 -1102.51
+166.812 -43.5484 -3789.89
+167.098 -43.5346 -3428.51
+166.509 -43.5774 -3896.68
+166.634 -43.3476 -3904.88
+166.911 -43.9657 -3596.45
+165.937 -41.6916 -4042.15
+166.423 -41.7257 -3928.39
+164.403 -43.8975 -4651.03
+164.812 -43.7276 -4580.36
+167.018 -42.9229 -2931.83
+167.343 -42.8437 -2301.55
+166.211 -40.7444 -3948.21
+166.24 -41.0627 -3510.86
+166.111 -42.9774 -4264
+166.388 -42.6989 -3783.03
+164.88 -44.0586 -4656.58
+165.328 -44.1335 -4650.23
+165.475 -41.5059 -4213.24
+165.879 -41.2899 -4092.56
+168.111 -41.3813 -1102.72
+168.295 -41.2897 -1022.16
+168.63 -42.9784 -1065.5
+168.572 -43.1443 -1025.21
+167.118 -42.1747 -2739.37
+167.27 -42.3751 -2508.99
+166.711 -44.0625 -3723.1
+164.548 -45.3477 -4805.22
+165.032 -44.402 -4670.06
+165.417 -44.4008 -4592.93
+165.795 -42.0151 -4347.79
+165.87 -42.3043 -4228.36
+165.448 -41.1346 -4242.97
+165.84 -40.9294 -4159.19
+166.275 -42.3917 -3856.18
+166.588 -42.4742 -3633.27
+165.888 -40.6011 -3852.82
+164.983 -40.2748 -3157.44
+165.259 -40.4468 -3858.82
+165.824 -40.1013 -3704.96
+166.667 -41.1617 -2313.27
+166.588 -40.036 -2866.59
+166.748 -40.2378 -2264.62
+166.101 -39.0903 -3017.91
+166.223 -40.0515 -3018
+166.401 -40.2771 -3158.13
+166.556 -40.8518 -2869.57
+166.838 -40.9235 -1839.26
+166.027 -40.3137 -2739.79
+166.216 -40.4939 -3713.15
+166.866 -40.0352 -1808.58
+167.064 -40.1406 -1488.94
+167.287 -40.0403 -1286.3
+167.313 -40.2112 -1220.64
+165.469 -39.175 -2207.5
+165.601 -39.4032 -2746.11
+165.159 -39.9584 -2598.21
+165.41 -40.1734 -3231.81
+166.762 -36.9734 -1595.99
+167.021 -36.9823 -1292.6
+165.796 -39.1887 -2991.04
+165.977 -39.3514 -3043.34
+170.138 -36.0816 -2261.06
+170.453 -36.1241 -2166.27
+169.367 -36.2737 -2199.38
+169.65 -36.1564 -2196.46
+168.561 -35.624 -2279.86
+168.768 -35.5025 -2399.75
+167.9 -35.1416 -2554.99
+168.176 -35.2695 -2582.37
+173.055 -37.0911 -1647.69
+173.247 -37.0602 -1424.35
+170.855 -39.1069 -805.67
+170.868 -39.2381 -822.89
+172.027 -38.7865 -862.58
+172.244 -38.8027 -1033.53
+172.13 -38.5345 -1145
+172.199 -38.3772 -1360.44
+173.021 -38.0727 -1353.44
+173.124 -38.1979 -1240.78
+173.518 -38.1027 -1008.28
+173.646 -37.9906 -1027.42
+173.598 -37.8465 -1173.87
+173.789 -37.8788 -883.08
+173.73 -37.7333 -1059.15
+173.869 -37.7689 -929.96
+173.668 -36.9789 -1237.08
+173.836 -36.9267 -808.06
+173.906 -37.483 -853.76
+173.468 -37.9585 -1191.6
+172.436 -37.8288 -1559.1
+172.379 -38.0016 -1467.63
+171.958 -37.2285 -1805.15
+172.009 -37.3899 -1662.25
+173.311 -37.901 -1302.93
+173.434 -37.824 -1246.2
+173.356 -37.3749 -1375.18
+173.321 -37.5471 -1387.8
+173.402 -37.2014 -1414.62
+173.532 -37.3191 -1149.97
+173.521 -36.8529 -1289.5
+173.606 -36.7195 -956.14
+172.905 -36.8357 -1594.15
+173.121 -36.7617 -1604.76
+172.728 -36.9147 -1759.35
+172.891 -37.0127 -1631.28
+173.087 -36.9368 -1507.25
+173.302 -36.8854 -1468.14
+173.088 -37.5579 -1477.21
+173.184 -37.4247 -1518.17
+172.788 -38.0885 -1436.12
+172.86 -37.9256 -1461.55
+172.121 -38.6764 -1111.77
+172.287 -38.6404 -1121.78
+171.775 -36.7166 -1786.89
+172.04 -36.7225 -1811.89
+171.663 -38.1279 -1599.9
+171.688 -38.3108 -1513.21
+171.254 -37.4749 -1824.01
+171.566 -37.5148 -1785.28
+172.468 -37.2892 -1724.4
+172.739 -37.3332 -1615.88
+173.825 -37.2366 -1272.5
+173.949 -37.1806 -695.97
+174.13 -37.2134 -156.62
+174.184 -37.1836 -126.95
+173.881 -36.7994 -377.86
+173.978 -36.7591 -141.72
+173.856 -36.4521 -126.8
+174.191 -37.382 -125.96
+174.246 -37.4337 -236.44
+174.043 -37.6558 -494.37
+174.142 -37.661 -186.44
+173.423 -38.2264 -770.14
+173.577 -38.2316 -543.09
+173.944 -37.8353 -559.79
+173.935 -37.9348 -503.15
+174.005 -37.5719 -636.94
+174.052 -37.4977 -549.94
+173.985 -37.7408 -605.93
+174.04 -37.8023 -320.44
+173.813 -38.0165 -698.27
+173.853 -38.1205 -206.63
+172.39 -39.0023 -549.37
+172.4 -38.8892 -688.42
+171.661 -38.969 -956.63
+171.717 -38.8341 -1034.99
+171.027 -38.6309 -859.01
+171.21 -38.5641 -935.84
+171.734 -38.4936 -1377.68
+171.946 -38.3919 -1357.73
+171.297 -38.0321 -1666.16
+171.297 -37.8454 -1736.3
+172.195 -37.255 -1739.29
+172.343 -37.0814 -1735.92
+171.636 -36.8937 -1925.79
+171.912 -36.9006 -1963.06
+172.843 -37.5247 -1535.58
+172.989 -37.3862 -1548.02
+173.135 -36.3976 -1431.89
+173.164 -36.5686 -1379.13
+171.38 -36.9128 -1855.09
+173.835 -37.0748 -1222.39
+173.985 -37.0814 -476.85
+173.847 -36.6857 -422.97
+173.931 -36.7182 -175.76
+173.839 -36.58 -278.63
+173.886 -36.5093 -122.53
+174.125 -37.5778 -277.25
+174.23 -37.5545 -137.55
+172.122 -38.943 -1095.82
+172.282 -38.9429 -758.25
+172.566 -38.1197 -1478.76
+172.717 -38.2092 -1381.99
+172.303 -38.5028 -1205.6
+172.424 -38.3945 -1262.09
+172.618 -37.958 -1597.24
+172.674 -37.7934 -1562.51
+172.101 -38.038 -1574.37
+172.227 -37.874 -1598.16
+170.982 -38.2254 -1160.05
+171.191 -38.1556 -1408.49
+171.882 -38.1787 -1534.08
+172.092 -38.2378 -1459.04
+171.342 -37.6551 -1790.54
+171.54 -37.7453 -1742.88
+171.765 -37.3271 -1816.7
+171.828 -37.4897 -1621.69
+171.322 -37.0802 -1900.32
+171.516 -37.0448 -1877.96
+173.889 -37.3486 -921.2
+173.95 -37.2796 -711.7
+173.946 -36.8923 -267.42
+173.948 -36.9825 -419.77
+173.705 -36.2366 -193.23
+173.749 -36.199 -140.04
+173.769 -36.4258 -247.82
+173.85 -36.4004 -105.22
+173.465 -36.1913 -712.91
+173.516 -36.0802 -507.23
+173.72 -36.5207 -471.6
+173.814 -36.4976 -235.02
+173.528 -36.3243 -852
+173.611 -36.2319 -614.78
+173.395 -36.0723 -509.19
+173.469 -36.0159 -180.29
+173.712 -36.8317 -996.51
+173.753 -36.7328 -799.5
+173.448 -36.44 -1146.95
+172.54 -36.3423 -1524.68
+172.797 -36.3415 -1524.86
+172.985 -36.3266 -1417.29
+172.945 -36.4716 -1437.49
+171.909 -36.3631 -2079.49
+172.039 -36.172 -1635.23
+172.059 -37.0728 -1834.7
+172.189 -36.8937 -1810.83
+172.467 -36.1522 -1491.43
+172.695 -36.1838 -1351.18
+172.209 -35.6935 -1314.05
+172.359 -35.616 -969.68
+172.288 -35.1911 -969.79
+172.47 -35.1963 -469.25
+173.292 -36.4531 -1275.51
+173.368 -36.545 -1259.14
+173.112 -35.9681 -728.52
+171.911 -36.5704 -1726.14
+172.137 -36.5295 -1759.39
+171.78 -36.1025 -1771.32
+171.595 -35.8864 -1620.95
+171.831 -35.8959 -1567.47
+171.135 -36.3451 -1991.44
+171.354 -36.2607 -1797.4
+170.816 -35.6926 -1889.91
+170.959 -35.4853 -1955.97
+170.984 -34.5986 -1684.3
+171.028 -34.7735 -1703.04
+171.891 -35.1688 -1408.71
+172.207 -35.5202 -1139.31
+172.244 -35.3563 -1173.66
+171.999 -34.8529 -1021.98
+172.094 -34.759 -757.88
+171.559 -34.9169 -1367.35
+171.66 -35.0803 -1437.62
+170.798 -35.2816 -1958.88
+170.929 -35.0954 -1983.82
+172.106 -35.2401 -1338.65
+172.109 -35.0982 -1034.79
+172.808 -33.8327 -1607.71
+171.773 -33.6588 -1176.68
+171.94 -33.7427 -1110.22
+171.569 -33.6089 -2178.13
+171.631 -33.7495 -1705.19
+172.437 -33.4541 -1350.91
+172.921 -33.2437 -2113.41
+172.903 -33.4573 -1864.64
+172.148 -33.1768 -1953.61
+171.636 -33.2019 -2954.39
+171.891 -33.1932 -2204.61
+171.41 -33.1771 -2643.62
+171.443 -33.3944 -1523.78
+171.772 -34.479 -519.53
+171.83 -34.3523 -300.18
+171.809 -34.6458 -1126.48
+171.91 -34.5583 -560.38
+170.797 -34.4764 -1737.58
+170.9 -34.252 -1797.44
+170.84 -33.3923 -1279.4
+171.011 -33.2055 -2136.64
+172.403 -35.0894 -376
+172.518 -35.1111 -240.99
+172.884 -35.4281 -358.01
+172.966 -35.4091 -206.25
+172.971 -35.479 -237.24
+173.054 -35.6852 -342.3
+173.117 -35.6357 -196.9
+173.27 -35.8259 -226.96
+172.152 -34.163 -247
+172.267 -34.149 -301.91
+171.691 -34.7648 -1106.34
+171.857 -34.7749 -1180.37
+171.634 -34.6019 -1294.56
+171.286 -34.4308 -1611.12
+171.45 -34.3546 -952.17
+171.967 -33.5688 -1524.65
+172.092 -33.6678 -902.82
+173.101 -34.1567 -1039.38
+173.197 -34.0391 -1748.73
+171.447 -34.5305 -1437.13
+171.593 -34.4563 -1191.54
+171.984 -35.0035 -856.14
+172.107 -34.9682 -717.7
+171.64 -35.4756 -1560.96
+171.841 -35.5031 -1534.15
+171.636 -35.2675 -1676.84
+171.805 -35.3649 -1654.83
+171.763 -33.0293 -2369.93
+171.998 -32.9777 -2271.79
+170.164 -34.1069 -1917.45
+170.425 -34.0761 -1741.5
+171.114 -33.8206 -654.67
+171.308 -33.83 -448.63
+171.137 -33.4226 -1805.39
+171.246 -33.2539 -2176.21
+172.245 -33.3496 -1659.44
+172.396 -33.2175 -1891.09
+172.365 -33.6162 -739.06
+172.417 -33.7565 -116.26
+172.531 -33.6455 -1279.8
+172.684 -33.5389 -1735.46
+172.606 -33.7992 -509.51
+172.702 -33.699 -1471.84
+172.987 -33.7814 -1822.35
+172.992 -33.9275 -1671.89
+173.128 -33.8415 -1905.99
+173.371 -33.8434 -2037.94
+173.342 -34.181 -1549.21
+173.442 -34.0716 -2126.98
+173.642 -33.9708 -2024.42
+173.661 -33.7464 -2209.59
+174.371 -33.2199 -3478.55
+174.462 -33.4166 -2933.97
+174.315 -33.962 -2034.33
+174.604 -33.8928 -1836.34
+174.86 -34.3762 -1877.66
+175.081 -34.3147 -1806.44
+173.423 -34.453 -565.58
+173.456 -34.5622 -449.44
+173.786 -34.7728 -167.09
+173.786 -34.8126 -128.47
+173.835 -34.8076 -144.2
+173.416 -34.7113 -136.43
+173.433 -34.6516 -186.18
+173.465 -34.8139 -46.69
+173.5 -34.7764 -113.12
+173.449 -34.747 -119.56
+173.476 -34.7098 -162.27
+173.154 -34.5024 -132.49
+173.154 -34.4526 -176.76
+173.283 -34.569 -163.17
+173.31 -34.6283 -142.86
+173.177 -34.4061 -206.31
+173.242 -34.3672 -488.34
+172.846 -34.0099 -941.36
+172.905 -34.1253 -426.7
+173.004 -34.0766 -1121
+173.366 -34.6012 -181.16
+173.35 -34.5162 -433.87
+172.613 -34.0101 -166.53
+172.681 -33.9381 -423.16
+173.869 -34.754 -193.49
+173.899 -34.8162 -164
+173.782 -34.7102 -234.51
+173.686 -34.6784 -241.16
+173.716 -34.7493 -187.04
+173.526 -34.6507 -310.44
+173.611 -34.8396 -121.13
+173.649 -34.879 -98.29
+173.551 -34.8194 -120.13
+173.586 -34.7694 -159.57
+173.537 -34.7212 -178.37
+173.598 -34.6997 -225.39
+173.896 -34.9657 -42
+173.926 -34.9926 -15.35
+173.648 -34.7377 -184.61
+173.662 -34.7906 -150.92
+173.932 -34.9585 -36.85
+173.971 -34.9285 -101.24
+173.979 -35.0792 -35.6
+173.986 -35.0385 -38.53
+174.389 -35.03 -204.86
+174.343 -35.1769 -52.98
+174.369 -35.181 -89.51
+174.333 -35.2263 -47
+174.412 -35.1754 -124.24
+174.385 -35.1433 -129.89
+174.451 -35.0931 -201.28
+174.52 -35.0909 -252.69
+174.713 -34.8918 -706.18
+174.819 -34.9557 -670.52
+174.149 -34.3832 -1265.12
+174.391 -34.3492 -1437.89
+173.495 -34.2443 -1709.87
+173.647 -34.163 -1981.98
+173.944 -34.3774 -919.04
+174.014 -34.5003 -879.46
+173.516 -34.3894 -843.94
+173.647 -34.3252 -1604.85
+174.991 -34.9032 -796.95
+175.147 -34.7369 -1527.54
+174.072 -34.0302 -950.78
+174.243 -34.1805 -1659.34
+175.823 -35.4297 -870.63
+175.945 -35.2359 -1778.36
+175.423 -35.022 -1344.93
+175.486 -35.1643 -1312.56
+175.971 -35.0048 -1929.27
+176.176 -35.1 -1960.34
+176.82 -35.1196 -2361.62
+176.901 -35.3751 -2231
+177.898 -36.1626 -2258.64
+177.054 -36.4318 -1776.82
+177.34 -36.4023 -3247
+177.463 -35.4199 -2304.5
+177.598 -35.1831 -2733.59
+177.173 -35.4929 -1978.83
+177.391 -35.6197 -2346.74
+177.172 -35.7341 -2454.41
+177.2 -35.9533 -2497
+176.712 -35.5095 -2497
+176.918 -35.6143 -2024.8
+176.217 -35.7327 -747
+176.397 -35.7563 -665.09
+176.387 -35.9437 -707
+176.586 -35.9232 -1414.99
+177.73 -35.3904 -2708.8
+177.933 -35.2444 -2896.22
+177.928 -35.4746 -2713.01
+178.042 -35.692 -2463.83
+177.391 -36.6287 -2139.3
+177.618 -36.5483 -2539.37
+178.135 -36.2615 -2151.39
+178.364 -36.2206 -2265.89
+177.993 -37.4983 -146.38
+176.887 -37.5147 -435.24
+176.588 -37.0674 -997
+176.239 -36.2917 -486.31
+176.397 -36.3108 -944.1
+176.461 -37.0255 -968.95
+176.529 -37.3884 -497
+176.399 -37.3175 -417.53
+176.487 -37.3138 -519.93
+176.297 -36.5628 -748.09
+176.016 -36.4477 -191.48
+176.176 -36.3777 -436.5
+176.443 -36.5972 -1253.11
+176.532 -36.4555 -1312.38
+176.072 -36.7699 -127.06
+176.156 -36.8596 -137.87
+176.547 -36.7209 -1497
+176.63 -36.5921 -1694.37
+176.725 -36.4577 -1747
+176.801 -36.5966 -1497
+177.264 -37.0343 -1629.3
+177.471 -36.9677 -1792.8
+175.921 -35.5606 -497
+176.05 -35.4657 -1770.29
+176.279 -36.3825 -666.38
+176.366 -36.4661 -1048.22
+176.227 -37.1409 -313.66
+176.269 -37.2055 -268.94
+176.052 -36.9265 -54.12
+176.078 -36.8802 -76.02
+176.151 -37.0387 -145.23
+176.188 -37.0877 -256.16
+176.113 -36.4711 -303.62
+176.235 -36.4686 -556
+176.157 -36.6914 -194.57
+176.476 -37.1448 -918.68
+176.34 -37.2592 -232.99
+176.431 -37.2416 -645.77
+176.123 -37.1837 -140.28
+176.157 -37.1379 -218.67
+175.999 -36.9264 -60.35
+176.017 -36.9668 -47
+176.086 -37.0432 -74.68
+176.122 -37.0884 -146.18
+175.907 -36.5707 -51.88
+175.951 -36.5468 -115.67
+175.948 -36.602 -66.91
+175.916 -36.6355 -23.19
+175.958 -36.6599 -47
+175.973 -36.7096 -84.73
+176.02 -36.6799 -111.47
+176.265 -37.2792 -7
+176.316 -37.3339 -164.43
+176.4 -37.4343 -159.28
+176.441 -37.4865 -122.35
+176.546 -37.5338 -174.4
+176.632 -37.5039 -397.31
+176.616 -37.4133 -586.42
+176.721 -36.9704 -1115.49
+177.089 -37.12 -1910.83
+176.974 -36.6023 -1476.63
+177.183 -36.6062 -2997
+176.359 -36.9841 -722.73
+176.259 -37.0835 -384.49
+176.355 -37.0813 -611
+176.727 -37.2731 -511.72
+176.875 -37.309 -497
+176.963 -37.2101 -1090.45
+176.55 -36.9492 -1014.17
+176.627 -36.8392 -1445.46
+176.679 -37.5707 -364.27
+176.715 -37.6213 -274.42
+177.933 -37.4724 -250.52
+177.739 -37.4247 -901.25
+177.795 -37.5078 -331.24
+177.566 -37.612 -202.69
+177.422 -37.1404 -1935.28
+177.488 -37.3713 -1434.43
+177.604 -37.4453 -1000.86
+177.851 -37.4503 -494.15
+178.06 -37.4714 -198.06
+177.919 -37.4049 -638
+177.994 -37.4367 -393.84
+177.381 -37.5265 -809.29
+177.378 -37.692 -120.45
+177.379 -37.6135 -247.79
+177.185 -37.5334 -37.69
+177.282 -37.4825 -1050.49
+177.484 -37.4811 -1247
+177.579 -37.5349 -599.34
+176.705 -37.4438 -550.23
+176.776 -37.3824 -614.51
+176.729 -37.1288 -957.77
+176.837 -37.1979 -752.33
+177.089 -37.2587 -1636.62
+177.248 -37.2103 -1008.53
+177.547 -37.2473 -1680.53
+177.634 -37.1078 -1852.16
+177.913 -37.3272 -1247.27
+177.802 -37.1781 -1680.12
+177.913 -37.2361 -1635.88
+177.921 -37.1406 -1849.97
+178.015 -37.05 -1997
+177.992 -37.3675 -885.08
+178.214 -37.0834 -2168.91
+178.298 -37.464 -565.71
+178.392 -37.464 -997
+178.717 -37.4915 -732.6
+178.682 -37.368 -1146.68
+178.233 -37.4053 -576.64
+178.342 -37.393 -1031.02
+178 -37.2915 -1361.44
+178.046 -37.1887 -1841.63
+177.831 -37.3718 -1051.78
+177.85 -37.5663 -102.5
+177.885 -37.5158 -182.48
+177.657 -37.5819 -232.53
+177.69 -37.5136 -488.52
+177.641 -37.3453 -1251.89
+177.695 -37.2499 -1501.45
+178.065 -37.4002 -562.64
+178.138 -37.4386 -239.58
+178.058 -37.3382 -1038.95
+178.146 -37.3457 -953.19
+178.273 -37.314 -1195.82
+178.083 -37.281 -1425.28
+178.179 -37.2361 -1646.81
+178.129 -36.9291 -2279.07
+178.338 -36.8952 -2345.67
+178.472 -36.6719 -2417.05
+178.613 -36.8922 -2335.51
+177.817 -36.7208 -2247
+177.939 -36.9 -2247
+177.706 -36.9219 -1997
+177.835 -37.0501 -1865.08
+178.514 -37.2157 -1967.03
+178.648 -37.2618 -1370.41
+178.34 -37.204 -1960.62
+178.411 -37.3111 -1970.47
+178.458 -37.4058 -1958.41
+178.548 -37.3338 -1398.61
+178.483 -37.488 -755.45
+178.576 -37.4404 -1366.12
+178.811 -37.3973 -690.19
+178.892 -37.4946 -100.92
+178.836 -37.749 -553.81
+178.852 -37.835 -729.82
+179.801 -36.7014 -2462.3
+179.128 -36.6881 -2426.97
+179.239 -36.9184 -2239.28
+179.245 -38.0267 -2468.46
+179.393 -37.8689 -2205.91
+178.963 -37.9021 -1059.46
+179.144 -37.8455 -1391.23
+179.085 -38.5518 -3480.45
+179.08 -38.2438 -1854.15
+179.205 -38.3727 -3365.09
+179.129 -38.1224 -1338.54
+179.264 -38.2032 -3078.8
+180.005 -37.4772 -4466.73
+180.264 -37.3736 -4155.32
+180.595 -37.212 -4119.79
+180.914 -37.3959 -3129.79
+180.43 -38.1474 -3505.25
+180.491 -37.8513 -3490.82
+179.365 -37.1295 -2045.64
+179.472 -37.3044 -1926.87
+178.712 -38.3223 -72.42
+178.787 -38.2993 -257.05
+178.184 -38.8878 -69.58
+178.69 -38.5134 -455
+179.54 -38.5847 -3566.99
+179.549 -38.8022 -3504.8
+179.319 -38.5113 -3561.55
+179.296 -38.695 -3544.18
+178.854 -38.3778 -853.17
+179.003 -38.3831 -2131.14
+178.778 -38.5571 -810.56
+178.885 -38.6308 -1994.69
+178.489 -38.2238 -66.81
+178.548 -38.2284 -97
+178.636 -38.0566 -144.65
+178.657 -38.1096 -193.45
+178.619 -38.4813 -130.42
+178.684 -38.4381 -373.31
+178.26 -38.5957 -35.54
+178.304 -38.6226 -35.67
+178.4 -38.6762 -69.43
+178.507 -38.549 -115.94
+178.511 -38.6197 -143.39
+178.029 -39.1972 -70.05
+178.008 -39.2321 -63.84
+178.062 -39.2519 -96.48
+178.862 -39.0798 -2940.53
+179.029 -38.9684 -3444.09
+178.707 -38.9651 -1343.6
+178.854 -38.8956 -2289.91
+178.739 -38.6517 -1033.58
+178.813 -38.7536 -1413.86
+178.624 -38.6418 -440.9
+178.664 -38.7307 -1029.47
+178.388 -39.1044 -1620.17
+178.441 -39.0184 -1383.96
+178.215 -38.9121 -108.65
+178.585 -38.8938 -725.34
+178.699 -38.8367 -1019.08
+178.459 -38.6842 -170.88
+178.548 -38.7041 -663.16
+178.412 -38.7135 -115.36
+178.467 -38.7565 -578.62
+178.27 -38.8175 -81.94
+178.304 -38.8655 -259.2
+178.342 -38.814 -461.76
+178.165 -38.9213 -64.54
+178.263 -38.9011 -269.78
+178.484 -38.8425 -748.66
+178.575 -38.7938 -831.9
+178.338 -39.0318 -1405.57
+178.388 -38.8761 -1133.36
+178.411 -38.8084 -518.66
+178.708 -38.2587 -136.89
+178.784 -38.206 -263.23
+178.775 -38.463 -779.74
+178.895 -38.4945 -1340.58
+177.942 -38.9303 -35.74
+177.966 -38.9628 -39.45
+178.024 -38.9579 -42.87
+178.058 -38.9905 -44.09
+178.106 -38.9743 -43.78
+178.042 -39.0367 -34.91
+178.146 -38.9549 -81.99
+178.11 -38.9298 -38.18
+178.139 -38.8892 -42.23
+178.088 -39.0582 -42.07
+178.048 -39.3034 -102.29
+178.112 -39.3069 -130.17
+178.123 -39.1218 -149.29
+178.145 -39.2495 -132.05
+178.234 -39.2292 -594.2
+178.13 -39.0801 -88.79
+178.181 -39.0603 -181.06
+178.172 -39.0994 -190.48
+178.188 -39.0237 -174.64
+178.244 -39.0375 -950.62
+178.098 -39.0154 -35.17
+178.155 -38.9938 -130.88
+178.043 -39.0755 -34.93
+178.076 -39.0998 -75.08
+178.099 -39.2007 -112.12
+178.45 -39.4079 -1333.49
+178.492 -39.2916 -1930.38
+178.73 -39.203 -3203
+178.888 -39.2831 -3381.18
+179.447 -39.156 -3463.19
+179.567 -38.9875 -3625.27
+177.527 -39.6063 -145.46
+177.561 -39.4894 -118.05
+177.597 -39.5492 -135.4
+178.278 -39.1003 -1407.56
+178.312 -38.9202 -962.08
+178.376 -38.9579 -1248.86
+178.25 -38.9423 -522.86
+178.291 -38.9795 -1121.26
+178.125 -39.1602 -187.95
+178.167 -39.1904 -157.64
+178.172 -39.1409 -750.85
+178.23 -39.1596 -429.19
+178.214 -39.1159 -1064.33
+178.217 -39.0818 -736.89
+178.193 -38.9527 -126.33
+178.22 -38.9882 -582.26
+177.669 -39.4505 -99.43
+177.644 -39.495 -118.78
+177.816 -39.4743 -97.56
+177.835 -39.4296 -69.66
+177.938 -39.4755 -130.36
+177.986 -39.5208 -255.23
+179.552 -40.2024 -2953.72
+179.642 -39.9773 -3169.91
+177.61 -40.2283 -1881
+177.825 -40.1399 -1658.58
+177.338 -39.6193 -121.22
+177.378 -39.6805 -150.08
+177.385 -39.5702 -115.62
+177.427 -39.6219 -143.39
+177.456 -39.5719 -132.39
+177.508 -39.5356 -124.22
+174.346 -40.877 -97.21
+174.376 -40.918 -108.98
+174.415 -40.9951 -140.13
+174.481 -40.9904 -172.91
+174.529 -41.1007 -237.57
+174.518 -40.9455 -177.6
+174.556 -40.9012 -162.87
+174.51 -41.1437 -291.09
+174.552 -41.1759 -285.93
+174.485 -41.2957 -219.93
+174.347 -41.409 -100.94
+174.409 -41.3837 -110.18
+174.463 -41.473 -144.72
+174.525 -41.5131 -221.7
+174.47 -41.2384 -266.57
+174.492 -41.1885 -308.7
+174.424 -41.0834 -96.66
+174.401 -41.1765 -69.1
+174.43 -41.1999 -192.22
+174.405 -41.1483 -91.02
+174.448 -41.1571 -123.54
+174.397 -41.2335 -152.81
+174.411 -41.2766 -148.16
+174.31 -41.2794 -93.75
+174.352 -41.3009 -102.06
+174.289 -41.4235 -72.7
+174.299 -41.3852 -93.66
+174.378 -41.0731 -97.89
+174.395 -41.0391 -98.82
+174.585 -40.9481 -178.38
+174.62 -40.9059 -155.49
+174.702 -41.1235 -132.23
+174.7 -41.1536 -81.8
+174.568 -41.1336 -282.05
+174.536 -41.2184 -260.4
+174.578 -41.2477 -111.77
+174.607 -41.1669 -244.17
+174.847 -40.8708 -109.3
+174.844 -40.9198 -88.63
+174.927 -40.9251 -36.99
+174.939 -40.8929 -26.96
+174.823 -40.8424 -121.37
+174.259 -40.5935 -123.64
+174.294 -40.5362 -125.46
+174.471 -41.4159 -118.4
+174.535 -41.4507 -303.89
+174.477 -41.3569 -154.12
+174.773 -41.3769 -46.61
+174.732 -41.3872 -68.13
+174.436 -41.6066 -79.91
+174.514 -41.5816 -123.81
+174.585 -41.6214 -158.91
+174.665 -41.6596 -145.23
+174.802 -41.5235 -117.04
+174.778 -41.4036 -67.35
+174.776 -41.3606 -25.91
+174.796 -41.3632 -25.81
+174.805 -41.383 -43.64
+174.824 -41.4094 -55.87
+174.823 -41.3636 -24.57
+174.84 -41.385 -29.89
+174.885 -41.2578 -14.59
+174.827 -41.2611 -15.16
+174.856 -41.2564 -19.05
+174.992 -41.4334 -371.08
+175.166 -41.4636 -20.39
+174.621 -41.9305 -738.21
+174.869 -41.809 -415.62
+174.852 -41.7293 -390.54
+174.958 -41.7563 -1212.56
+174.755 -41.6967 -107.69
+174.683 -41.4653 -152.29
+174.737 -41.4293 -219.28
+174.763 -41.4734 -197
+174.798 -41.4379 -89.56
+174.858 -41.4376 -61.94
+174.987 -41.4718 -382
+174.928 -41.4997 -590.79
+174.668 -41.593 -489.38
+174.648 -42.0946 -1658.8
+174.503 -41.9492 -180.02
+174.575 -42.0178 -941.1
+174.866 -42.6067 -1682.38
+174.893 -42.391 -2452.67
+175.053 -42.3973 -2395.31
+174.465 -42.27 -1466.82
+174.571 -42.1834 -1783.72
+174.391 -42.587 -1985.05
+174.55 -42.6352 -1787.32
+174.502 -42.39 -2039.01
+174.528 -42.5118 -2185.24
+174.423 -42.1532 -1053.99
+174.532 -42.0981 -1105.31
+175.155 -42.1716 -2650.7
+173.457 -43.3434 -152.47
+173.545 -43.2879 -179.65
+173.557 -42.8404 -97
+173.658 -42.8442 -223.9
+173.711 -42.4802 -206.84
+173.635 -42.6319 -345.17
+173.672 -42.6953 -226.75
+173.567 -42.6335 -250.28
+173.581 -42.6887 -174.89
+174.003 -42.2079 -74.74
+174.112 -42.1879 -97
+174.204 -42.2137 -488.41
+173.9 -42.2672 -86.58
+173.994 -42.2599 -102.21
+174.052 -42.2198 -102.17
+174.107 -42.2701 -450.68
+173.862 -42.3208 -53.97
+173.94 -42.3108 -169.11
+173.886 -42.4516 -960.03
+174.637 -42.3018 -1947
+174.257 -42.6563 -1876.61
+174.263 -42.8838 -1308.45
+174.276 -43.0078 -893.29
+173.976 -42.414 -851.43
+174.064 -42.425 -1347.24
+173.989 -42.4812 -1018.51
+173.787 -42.4536 -249.39
+173.802 -42.5271 -1043.59
+173.707 -42.634 -713.12
+173.77 -42.6727 -1286.65
+173.865 -42.7223 -1552.45
+173.706 -43.0224 -432.18
+174.724 -42.1864 -2014.99
+174.812 -42.2871 -2338.56
+174.789 -42.081 -1953.54
+174.899 -42.1759 -2308.58
+174.286 -42.1494 -241.3
+174.347 -42.0852 -295.03
+174.564 -42.8997 -1002.84
+174.75 -42.9416 -779.86
+174.164 -43.24 -587.91
+174.286 -43.2031 -595.78
+174.961 -42.4967 -2116.1
+175.591 -42.3115 -2632.4
+175.6 -42.4495 -2071.24
+176.2 -42.8517 -596.75
+177.017 -42.0662 -2695.47
+175.447 -42.2464 -2654.74
+175.727 -42.2274 -2719.36
+176.335 -42.1267 -2648.82
+176.337 -42.2463 -2671.2
+176.193 -42.1745 -2665.76
+176.183 -42.3015 -2689.6
+176.861 -42.2159 -2453.45
+176.723 -41.8989 -2783.6
+176.762 -42.0582 -2709.71
+175.001 -41.6145 -643.35
+174.907 -41.6039 -713.22
+174.935 -41.674 -1102.36
+174.82 -41.5861 -543.01
+174.838 -41.6514 -523.23
+174.74 -41.5611 -237.1
+174.75 -41.6246 -363.65
+175.339 -41.6194 -73.81
+175.32 -41.7617 -1031.36
+175.29 -41.8165 -1481.65
+175.365 -41.8102 -1245.41
+175.553 -41.5503 -143.48
+174.836 -41.9854 -1381.2
+174.929 -42.0572 -2149.43
+176.065 -41.259 -106.35
+176.345 -42.3811 -2396.23
+175.304 -42.8462 -736.09
+175.447 -42.7888 -857.64
+175.747 -42.808 -766.77
+175.883 -42.7467 -853.56
+175.29 -42.7167 -1131.73
+175.442 -42.653 -1244.34
+175.149 -42.2854 -2511.69
+175.285 -42.2142 -2610.69
+174.689 -42.5586 -1914.38
+174.803 -42.4777 -2176.29
+175.146 -42.6468 -1494.23
+175.293 -42.5828 -1687.41
+175.021 -42.5917 -1605.87
+175.139 -42.5085 -2006.86
+176.503 -42.3132 -2566.91
+177.009 -41.5477 -2803.64
+176.001 -41.2127 -7.87
+175.58 -41.5208 -80.75
+176.069 -41.2217 -50.33
+176.025 -41.2132 -17.51
+176.119 -41.209 -77.64
+176.161 -41.1411 -56.98
+176.165 -41.1868 -101.8
+176.035 -41.3275 -176.56
+176.163 -41.232 -216.37
+176.571 -41.1416 -1194.44
+176.668 -41.0718 -1025.91
+176.091 -41.2943 -169.85
+176.095 -41.3492 -575.73
+176.172 -41.386 -987.43
+176.201 -40.963 -25.92
+176.24 -40.9882 -64.83
+176.266 -40.8944 -29.69
+176.299 -40.7933 -23.22
+176.333 -40.7767 -49.22
+176.316 -40.75 -21.78
+176.363 -40.7366 -48.71
+176.331 -40.8181 -55.75
+176.109 -41.248 -119.37
+175.978 -41.315 -112.39
+176.292 -41.0325 -122.09
+176.698 -40.8888 -516.11
+177.117 -41.2435 -2055.14
+176.376 -40.7711 -71.76
+176.625 -40.7228 -266.77
+176.63 -40.6529 -164.85
+176.702 -40.6143 -157.42
+176.301 -40.8587 -49.92
+176.634 -40.9836 -651.62
+176.295 -40.9283 -77.69
+176.296 -40.9698 -96.3
+176.343 -40.9409 -109.93
+176.363 -40.7961 -69.21
+176.416 -40.6452 -20.99
+176.442 -40.6731 -60.36
+176.911 -40.2048 -83.63
+176.976 -40.2025 -130.82
+177.274 -40.1748 -767.18
+176.457 -41.0107 -295.32
+176.469 -41.1013 -1054.63
+176.605 -40.8494 -299.04
+176.582 -40.9173 -314.05
+177.027 -41.398 -2413.87
+177.238 -41.3598 -2648.51
+177.455 -41.3511 -2853.02
+177.535 -39.7287 -306.96
+177.543 -39.8147 -470.93
+177.102 -39.7028 -45.38
+177.145 -39.7296 -77.89
+177.249 -39.7911 -153.74
+177.316 -39.7415 -161.56
+177.106 -39.8388 -90.53
+176.723 -40.2654 -20.84
+176.764 -40.2588 -27.41
+176.79 -40.2932 -64.9
+176.853 -40.2804 -122.17
+176.734 -40.4887 -86.12
+176.723 -40.398 -53.05
+176.764 -40.3346 -63.8
+176.817 -40.3338 -150.77
+176.504 -40.6512 -79.07
+176.69 -40.555 -98.07
+176.757 -40.4234 -83.5
+176.801 -40.4507 -161.01
+176.77 -40.374 -81.42
+176.83 -40.3957 -389.92
+176.9 -40.3338 -423.15
+176.916 -40.2564 -167.7
+176.987 -40.2861 -202.87
+176.983 -40.1388 -98.74
+177.048 -40.153 -186.04
+177.355 -39.9885 -430.15
+177.427 -39.836 -347.9
+177.467 -39.9099 -470.08
+177.424 -40.2078 -1526.64
+177.518 -40.1217 -1335.14
+177.447 -40.3289 -1739.03
+177.598 -40.4006 -1785.76
+177.573 -40.695 -2146.54
+176.42 -40.7502 -91.25
+176.408 -40.7097 -53.77
+176.446 -40.7137 -85.54
+176.492 -40.699 -105.01
+176.557 -40.6819 -141.97
+176.657 -40.5136 -51.49
+176.784 -40.5657 -163.64
+176.826 -40.4967 -174.27
+176.774 -40.6498 -267.6
+176.852 -40.7075 -475.54
+176.855 -40.4488 -321.38
+177.084 -40.3219 -819.82
+177.096 -40.417 -1156.65
+176.93 -40.0208 -24.81
+176.972 -40.0453 -55.64
+177.029 -39.9657 -84.6
+177.048 -39.924 -90.4
+177.18 -39.7747 -101.58
+177.174 -39.8305 -130.4
+177.134 -39.6856 -62.23
+177.184 -39.6795 -82.29
+177.322 -40.4005 -1481.21
+177.342 -40.5153 -1553.87
+177.352 -40.6545 -1906.74
+177.442 -40.4372 -1565.31
+177.509 -40.5394 -1813.86
+177.09 -39.964 -141.53
+177.115 -39.9119 -142.7
+177.129 -39.8696 -125.51
+177.186 -39.8909 -180.5
+177.169 -39.9526 -254.65
+177.137 -40.0153 -235.53
+177.229 -40.0036 -532.83
+177.259 -39.9299 -450.49
+177.352 -39.8886 -415.88
+177.189 -40.0591 -525.57
+177.273 -40.0722 -473.83
+176.575 -40.5406 -39.36
+176.606 -40.5194 -33.41
+176.571 -40.5789 -65.25
+176.567 -40.6277 -95.47
+176.622 -40.5509 -63.35
+176.63 -40.5971 -105.98
+176.404 -40.7937 -100.63
+176.475 -40.7866 -153.91
+176.472 -40.7373 -122.53
+176.53 -40.7368 -171.53
+177.699 -41.3673 -2924.62
+177.149 -41.6476 -2871.58
+176.795 -41.0871 -1425.57
+176.955 -41.6767 -2861.69
+177.03 -41.8011 -2864.65
+177.071 -42.2311 -2690.59
+177.141 -42.3594 -2613.79
+177.386 -42.0975 -2800.46
+178.228 -41.7724 -2822.68
+179.338 -42.0145 -2642.78
+179.555 -41.929 -2750.07
+177.927 -41.735 -2846.09
+178.033 -41.933 -2760.08
+178.129 -41.3016 -2978.48
+178.375 -41.2021 -3115.26
+177.396 -41.6807 -2934.32
+177.551 -41.5253 -2959.46
+177.229 -41.8224 -2860.37
+177.47 -41.8959 -3030.64
+178.603 -41.1267 -3118.76
+178.651 -40.9508 -3139.9
+178.036 -40.426 -2340.78
+178.05 -40.6343 -2417.3
+180.062 -40.2573 -2679.88
+180.154 -40.4397 -2611.27
+180.065 -39.707 -3425.04
+180.254 -39.8724 -3350.07
+180.375 -39.6636 -3458.92
+180.508 -39.8305 -3391.92
+179.375 -41.5557 -2756.26
+179.48 -41.3397 -2781.89
+179.704 -40.6369 -2769.93
+179.973 -40.5903 -2599.39
+178.829 -41.073 -3087.84
+178.532 -40.5801 -3084.63
+178.549 -40.4005 -3094.09
+179.026 -41.5478 -2777.85
+179.152 -41.7064 -2737.72
+181.605 -40.4099 -3580.13
+181.834 -40.4057 -3548.94
+180.589 -40.2586 -3122.11
+180.797 -40.1441 -3333.38
+178.081 -40.8413 -2698.93
+178.291 -40.9025 -3034.23
+178.761 -41.2131 -3005.76
+178.829 -41.3749 -2877.8
+178.938 -41.2085 -2881.3
+179.092 -41.0713 -2990.9
+178.59 -41.4556 -2926.01
+178.724 -41.5902 -2765.11
+177.664 -42.8315 -548.32
+177.88 -42.8348 -538.96
+177.998 -42.2103 -2383.18
+178.019 -42.3698 -2338.61
+180.053 -42.5692 -1897.89
+180.119 -42.7467 -1091.19
+179.708 -42.8767 -877.49
+179.783 -43.0123 -592.85
+178.668 -42.8575 -918.69
+178.843 -42.8702 -899.89
+180.361 -42.7728 -996.21
+180.593 -42.7931 -806.73
+179.435 -42.6465 -1505.17
+179.621 -42.726 -1175.14
+182.633 -40.3589 -3646.19
+182.673 -40.5707 -3841.53
+178.287 -40.3149 -2737.3
+178.299 -40.512 -2891.16
+180.535 -41.2944 -2749.3
+182.436 -42.0284 -2444.74
+182.647 -42.0805 -2715.61
+180.376 -42.0821 -2519.35
+180.589 -42.0897 -2542.12
+180.951 -41.0823 -2812.04
+181.149 -41.1945 -2672.89
+177.085 -41.9212 -2827.12
+177.232 -41.986 -3262.13
+180.198 -42.4654 -2773.62
+180.272 -42.6051 -1684.8
+181.731 -42.1646 -2541.74
+181.968 -42.0733 -2458.81
+181.745 -41.9359 -2474.59
+181.968 -41.8826 -2553.42
+184.238 -39.6891 -4497.76
+184.541 -39.9057 -4346.53
+184.934 -44.8157 -2606.36
+185.187 -45.0491 -3301.37
+180.325 -46.8979 -2643.73
+180.607 -47.0195 -2616.25
+180.773 -46.5808 -3618.6
+180.893 -46.878 -3454
+181.056 -46.1689 -3974.63
+181.426 -46.1748 -4105.64
+181.745 -46.029 -4272.19
+181.863 -46.274 -4404.84
+180.88 -45.8228 -3334.31
+180.284 -45.6008 -2629.96
+180.558 -45.8484 -3113.95
+180.072 -46.4922 -3230.41
+178.794 -45.7006 -2763.05
+178.984 -45.4843 -2592.82
+178.867 -46.1364 -3185.7
+177.288 -46.1329 -2507.36
+177.717 -46.1857 -2767.74
+174.583 -46.6767 -1785
+174.789 -46.7908 -1713.76
+175.37 -46.3658 -1914.88
+175.682 -46.3592 -2031.83
+177.568 -46.6095 -2731.95
+177.851 -46.7104 -2826.13
+180.114 -46.2105 -3306.49
+180.376 -46.6536 -3199.47
+180.588 -46.806 -3019.59
+173.807 -46.4827 -1670.96
+173.93 -46.6692 -1650.57
+173.296 -45.614 -1489.05
+173.411 -45.8508 -1517.79
+176.678 -46.1437 -2265.41
+174.29 -45.6857 -1501.32
+174.611 -45.6901 -1454.65
+174.013 -46.3063 -1812.39
+172.337 -46.7426 -1477.98
+172.627 -46.6969 -1501.88
+173.086 -46.9694 -1429.21
+173.333 -47.0284 -1406.47
+172.021 -46.7933 -1404.6
+172.13 -46.5878 -1362.18
+172.997 -45.5644 -1521.44
+173.08 -45.7733 -1578.22
+172.569 -47.4604 -1387.28
+172.527 -47.274 -1396.28
+172.79 -47.0992 -1420.93
+177.674 -45.2341 -2506.38
+177.998 -45.2142 -2445.23
+179.384 -46.2649 -3241.68
+179.463 -45.7075 -2931.36
+179.594 -45.5445 -2542.22
+179.196 -46.1013 -3261.65
+179.095 -46.3301 -3024.57
+179.501 -46.0821 -3232.03
+179.818 -46.021 -3210.02
+179.314 -45.8963 -3119.86
+179.586 -45.883 -3261.24
+176.947 -46.2082 -2291.71
+177.085 -46.3954 -2440.39
+172.435 -45.4151 -1394.7
+172.942 -46.1155 -1567.75
+172.751 -46.2893 -1619.42
+172.174 -45.0357 -972.51
+172.526 -44.9458 -1264.57
+172.652 -45.1005 -1396.4
+172.429 -45.2255 -1403.29
+172.672 -45.3032 -1449.8
+173.323 -45.2695 -1339.97
+173.467 -45.4412 -1381.61
+172.222 -45.32 -1356.48
+171.9 -45.2414 -1063.02
+172 -45.3748 -1264.83
+173.5 -44.4976 -584.77
+173.831 -44.5511 -775.36
+173.947 -44.6822 -915.87
+173.727 -45.0413 -1242.25
+174.718 -44.83 -747.32
+171.473 -45.4935 -942.85
+171.65 -45.4495 -1032.41
+171.18 -45.6529 -620.18
+170.609 -46.3552 -728.38
+170.26 -46.4883 -208.25
+171.311 -45.3702 -129.09
+171.438 -45.1511 -106.02
+171.458 -45.0853 -96.15
+171.408 -44.9522 -51.49
+171.458 -44.9755 -65.53
+171.518 -44.9905 -77.41
+171.319 -44.9437 -32.48
+171.352 -44.971 -44.66
+171.502 -44.952 -67.84
+171.556 -44.9459 -78.05
+172.066 -45.2451 -1319.9
+172.213 -45.169 -1352.16
+172.312 -44.9404 -932.52
+172.384 -45.0695 -1325.65
+170.52 -46.2135 -92.41
+170.618 -46.2515 -181.78
+171.591 -45.8694 -1271.55
+171.71 -46.0437 -1360.18
+171.466 -45.7263 -1094.01
+171.522 -46.2273 -1241.32
+171.218 -45.9586 -1003.02
+171.258 -45.4432 -125.38
+171.33 -45.5137 -486.38
+171.406 -45.5977 -912.03
+171.376 -45.4263 -217.72
+171.594 -44.9944 -98.93
+172.144 -44.9238 -466.57
+172.241 -44.8394 -338.48
+172.019 -44.9898 -617.78
+171.671 -45.1367 -201.06
+171.73 -45.2319 -804.24
+171.83 -44.956 -173.51
+171.87 -45.026 -477.9
+171.74 -45.0563 -435.09
+171.815 -45.1348 -728.03
+171.686 -44.9922 -115.44
+171.774 -44.9914 -174.74
+171.474 -45.2828 -197
+171.616 -45.3178 -961.62
+171.489 -45.1988 -197
+171.585 -45.2155 -501.27
+171.315 -45.1259 -55.91
+171.379 -45.1094 -77.97
+171.152 -45.584 -188.01
+171.264 -45.5939 -546.75
+171.16 -45.4735 -90.56
+171.213 -45.5239 -187.98
+169.907 -47.5813 -884.01
+169.98 -47.7411 -989.13
+171.065 -47.3062 -1280.28
+171.242 -47.1727 -1292.25
+172.271 -46.3988 -1474.93
+172.43 -46.547 -1424.61
+172.974 -46.4387 -1617.69
+173.227 -46.3576 -1632.32
+173.707 -46.2656 -1760.67
+173.904 -46.0808 -1637.68
+169.663 -46.9921 -460.67
+169.763 -47.0849 -631.65
+169.857 -46.8505 -444.9
+169.986 -46.9423 -720.95
+170.435 -46.2404 -85.32
+170.689 -46.12 -95.5
+169.886 -46.606 -132.79
+170.564 -46.5698 -812.43
+170.63 -46.7161 -923.14
+170.782 -46.5858 -989.56
+170.168 -46.5599 -169.94
+170.202 -46.6553 -442
+169.927 -46.7444 -193.7
+170.034 -46.8237 -672.45
+169.964 -46.6559 -164.41
+170.072 -46.713 -366.58
+169.812 -46.5134 -61.42
+169.827 -46.5559 -101.54
+169.651 -46.6018 -66.57
+169.708 -46.6102 -99.01
+169.977 -46.5829 -133.78
+170.073 -46.6154 -166.64
+170.217 -46.3753 -82.2
+170.951 -46.9355 -1212.57
+171.205 -47.0005 -1285.54
+170.997 -47.1253 -1227.58
+170.303 -46.9434 -968.63
+170.462 -46.8357 -983.94
+170.138 -46.909 -834.86
+170.139 -47.0425 -866.68
+169.516 -46.6026 -33.3
+169.639 -46.6955 -112.34
+169.673 -46.7524 -138.46
+169.52 -46.6398 -55.12
+169.559 -46.6198 -42.6
+169.669 -46.5625 -39.82
+169.745 -46.5648 -82.5
+169.761 -46.5253 -49.64
+169.821 -46.4816 -44.59
+169.867 -46.4584 -44.34
+169.548 -47.032 -258.17
+169.619 -47.0952 -448.1
+169.482 -47.2695 -409.22
+169.549 -47.1812 -371.31
+169.735 -46.9081 -324.64
+169.822 -46.9732 -596.14
+169.601 -47.257 -588.43
+169.713 -47.2951 -631.07
+169.997 -47.2916 -844.2
+170.163 -47.2887 -945.15
+170.214 -47.17 -979.4
+170.347 -47.0944 -1037.59
+169.704 -47.5473 -683.42
+169.72 -47.716 -622.53
+170.525 -47.3121 -1188.55
+170.612 -47.4502 -1230.29
+170.802 -46.1251 -154.56
+171.076 -46.0185 -746.54
+170.718 -46.1934 -292.86
+170.398 -46.2989 -93.55
+170.503 -46.2871 -158.84
+170.455 -46.3636 -196.81
+170.275 -46.4062 -113.59
+170.374 -46.4335 -258.65
+170.878 -46.4457 -934.06
+171.077 -46.3644 -1009.08
+170.74 -46.2847 -495.84
+170.891 -46.317 -901.45
+170.284 -46.5797 -685.88
+170.397 -46.5311 -518.04
+170.277 -46.3534 -88.11
+170.346 -46.3585 -118.67
+170.481 -46.057 -55.11
+170.534 -46.0806 -66.48
+170.76 -45.88 -39.69
+170.819 -45.9626 -132.74
+170.661 -46.064 -77.39
+170.742 -46.0684 -95.09
+170.684 -46.4642 -875.55
+170.761 -46.3733 -713.94
+170.891 -45.9744 -197
+170.744 -45.6097 -15.17
+170.757 -45.5597 -7.51
+170.791 -45.5439 -11.08
+170.794 -45.8083 -24.48
+170.831 -45.8138 -58.08
+170.753 -45.5825 -16.97
+170.784 -45.5729 -23.8
+170.984 -45.9565 -440.74
+170.779 -45.5969 -27.11
+170.803 -45.6401 -27.26
+171.002 -45.6153 -173.68
+170.93 -45.7679 -91.97
+170.925 -45.6852 -59.17
+170.968 -45.1537 -4.61
+171.013 -45.174 -12.08
+170.901 -45.2574 -10.48
+170.952 -45.2402 -17.75
+170.85 -45.3376 -2.38
+170.886 -45.3323 -12.81
+170.81 -45.5186 -7
+170.817 -45.5679 -24.36
+170.849 -45.4866 -15.93
+170.889 -45.4894 -27.48
+170.904 -45.3612 -18.12
+170.919 -45.398 -22.69
+170.894 -45.4572 -24.91
+170.929 -45.4383 -27.02
+170.936 -45.3281 -21.53
+170.964 -45.3673 -26.89
+170.943 -45.1944 -7.29
+171.154 -45.3653 -65.66
+171.197 -45.3355 -64.97
+171.4 -45.3532 -233.99
+171.497 -45.3868 -672.94
+171.059 -45.571 -80.5
+170.93 -45.4702 -30.48
+170.953 -45.5036 -37.41
+171.032 -45.5102 -47
+171.051 -45.4671 -47
+171.092 -45.4845 -65.5
+171.116 -45.5253 -84.7
+171.189 -45.7256 -637.71
+171.301 -45.6794 -958.49
+171.413 -46.593 -1209.12
+171.506 -46.7549 -1293.8
+171.237 -46.2051 -1088.66
+171.329 -46.4022 -1177.95
+171.279 -45.7773 -866.15
+171.356 -45.8736 -1039.5
+171.889 -45.6621 -1366.46
+172.1 -45.6664 -1503.83
+173.098 -45.2833 -1436.85
+173.151 -45.1411 -1331.47
+171.927 -44.8806 -148.86
+171.918 -44.9413 -179.05
+173.326 -44.5127 -568.86
+172.818 -44.4783 -169.66
+172.91 -44.5364 -398.6
+172.933 -44.4447 -189.34
+173.049 -44.4087 -197
+172.692 -44.3237 -92.41
+172.668 -44.3798 -127.31
+173.035 -44.5003 -428.04
+173.164 -44.4582 -405.54
+173.399 -44.2614 -286.25
+173.435 -44.403 -533.98
+172.945 -45.033 -1289.82
+172.429 -44.7067 -312.17
+172.64 -44.5783 -182.78
+172.702 -44.5005 -233.81
+172.778 -44.5678 -316.23
+172.367 -44.5593 -139.3
+172.441 -44.5509 -148.85
+172.332 -44.6055 -125.58
+172.328 -44.6659 -132.85
+172.429 -45.648 -1536.87
+172.71 -45.5047 -1465.17
+171.969 -45.535 -1371.88
+172.189 -45.4903 -1370.99
+171.775 -45.5663 -1280.15
+171.836 -45.4541 -1223.85
+173.592 -43.22 -262.97
+173.665 -43.2681 -587.97
+173.749 -43.3287 -124.56
+173.826 -43.4009 -363.66
+173.632 -43.3473 -124.37
+173.705 -43.4105 -91.57
+174.268 -44.0386 -550.53
+174.397 -43.989 -555.91
+173.87 -44.3537 -666.25
+173.962 -44.2726 -608.2
+173.909 -44.4506 -775.15
+174.024 -44.5223 -870.37
+174.231 -44.4685 -743.64
+173.505 -44.257 -416.76
+173.635 -44.2491 -515.94
+173.683 -44.6619 -881.8
+173.718 -44.8219 -1078.08
+172.549 -44.7349 -553.33
+172.636 -44.812 -987.76
+173.687 -44.0686 -229.11
+173.556 -43.9919 -139.52
+173.595 -44.0427 -174.02
+173.488 -44.6046 -707.81
+173.484 -44.7506 -886.06
+173.347 -44.3262 -360.78
+173.448 -44.3169 -462.91
+173.553 -44.3319 -565.37
+173.553 -44.1832 -361.11
+173.581 -44.105 -202.85
+173.683 -44.1589 -419.03
+173.301 -44.258 -172.48
+173.355 -44.2114 -188.8
+173.294 -44.6582 -792.43
+173.009 -44.5879 -521.64
+173.148 -44.5695 -506.22
+173.992 -44.8768 -1028.77
+174.058 -45.0691 -1199.2
+173.898 -45.2426 -1322.01
+174.145 -45.2276 -1260.89
+174.451 -45.4886 -1314.78
+174.741 -45.4831 -1186.84
+174.366 -45.292 -1199.02
+174.594 -45.3354 -1130.14
+173.017 -46.2733 -1719.09
+173.189 -46.1656 -1674.09
+172.776 -45.711 -1418.54
+177.244 -45.8284 -2374.74
+176.575 -45.6741 -1922.19
+176.905 -45.7338 -2147.71
+176.398 -45.8441 -1947.71
+176.646 -45.9079 -2141
+174.848 -46.2434 -1752.77
+175.026 -46.3973 -1880.22
+171.331 -47.6331 -1333.3
+171.423 -47.4799 -1339.83
+176.167 -44.8695 -1208.78
+176.212 -44.7144 -1099.03
+176.958 -44.3573 -1037.94
+177.066 -44.522 -1185.77
+175.444 -44.578 -783.74
+175.683 -44.5859 -817.97
+175.247 -44.639 -761.31
+175.36 -44.7507 -886.24
+175.604 -44.73 -933.56
+175.798 -44.6975 -969.38
+179.059 -45.0737 -2681.1
+179.385 -45.1243 -2449.27
+179.175 -45.3015 -2429.59
+179.31 -45.5114 -2545.63
+179.501 -45.347 -2352.08
+179.702 -45.1848 -2567.89
+178.969 -44.8563 -2140.52
+179.277 -44.8996 -2477.75
+177.822 -44.7906 -1790.9
+178.115 -44.964 -2123.18
+180.609 -45.378 -2505.66
+180.745 -45.6201 -2760.53
+182.31 -45.7822 -4334.18
+181.814 -47.8676 -4762.24
+181.947 -48.0814 -4776.49
+183.636 -47.5639 -5071.6
+184.076 -47.3056 -5001.08
+181.874 -45.337 -3144.78
+182.073 -45.5318 -4137.3
+181.255 -47.0121 -3758.06
+182.241 -48.2233 -4778.56
+182.606 -48.4422 -4857.17
+181.823 -48.2982 -4933.61
+182.107 -48.5198 -4717.81
+181.209 -48.7185 -3121.74
+181.447 -48.8854 -4057.83
+182.004 -49.2953 -4303.97
+182.103 -49.5423 -3979.78
+180.563 -49.499 -2970.92
+180.11 -49.52 -2549.32
+180.381 -49.858 -3897.9
+179.494 -49.6175 -1923.18
+179.847 -49.7388 -2813.97
+179.244 -49.4791 -1483.22
+179.175 -49.685 -1770.38
+178.966 -50.5931 -4549.62
+179.523 -50.6251 -4451.12
+180.42 -50.2906 -4561.04
+180.93 -50.114 -4301.35
+181.622 -51.5536 -5073.13
+182.118 -51.7241 -5207.69
+182.753 -51.251 -4957.63
+183.326 -51.0966 -4875.77
+182.917 -50.5121 -2899.4
+183.074 -50.1702 -1609.74
+183.204 -49.0617 -4069.71
+183.635 -49.0733 -5043.13
+181.962 -50.3691 -3969.99
+182.333 -50.6023 -3920.66
+178.377 -50.6834 -4647.46
+178.748 -50.9905 -4759.9
+183.89 -48.4765 -5179.82
+184.378 -48.6437 -5156.18
+174.309 -54.3936 -5115.02
+175.002 -54.4333 -5208.53
+176.854 -51.253 -4767.27
+177.303 -51.3947 -4973.59
+177.685 -52.3107 -4935.5
+177.922 -51.9729 -4967.51
+177.022 -53.0129 -4696.64
+177.69 -53.0403 -4908.46
+175.309 -55.3862 -5111.33
+175.944 -55.6113 -5051.8
+172.112 -54.2811 -4162.69
+172.296 -54.5372 -5041.08
+171.853 -54.7612 -5003.89
+172.224 -54.8649 -5361.36
+164.634 -47.5934 -5139.19
+165.792 -48.3069 -2971.32
+165.782 -48.105 -2918.1
+166.797 -47.4567 -814.65
+166.94 -47.3919 -458.74
+166.789 -47.2001 -1108.28
+166.792 -47.3287 -944.92
+166.296 -46.3039 -300.45
+166.409 -46.4251 -495.48
+166.178 -47.0959 -2049.46
+165.554 -46.5971 -1182.95
+166.657 -46.5148 -422.54
+166.919 -44.8219 -2389.34
+166.609 -45.1162 -3340.16
+166.375 -45.8686 -91.1
+166.374 -45.7918 -197
+166.402 -45.7583 -182.43
+166.247 -45.7291 -1502.66
+166.309 -45.7807 -837.37
+166.505 -46.1102 -58.08
+166.541 -46.0856 -76.58
+166.469 -46.1497 -98.79
+166.522 -46.1905 -119.37
+166.509 -46.0156 -14.26
+166.506 -46.0353 -8.86
+166.393 -45.9122 -70.01
+166.391 -45.9705 -81.81
+166.401 -46.0295 -83.37
+166.46 -46.0382 -14.53
+166.276 -45.8433 -667.54
+166.39 -45.5509 -3032.44
+166.55 -45.5733 -1119.38
+166.737 -45.2413 -2035.47
+166.804 -45.2605 -478.73
+166.864 -45.2089 -579.35
+166.907 -45.1157 -1602.57
+166.932 -45.132 -797.78
+166.945 -45.0657 -1440.7
+166.963 -45.0361 -1330.27
+167.044 -45.0183 -677.46
+166.916 -45.0471 -1406.71
+167.074 -44.99 -364.78
+167.085 -45.0098 -118.48
+167.097 -44.9702 -473.42
+167.129 -44.9632 -344.03
+167.068 -44.9643 -842.14
+167.003 -45.0092 -1062.77
+167.038 -44.9858 -771.25
+167.055 -44.8302 -1983.41
+166.931 -44.8799 -2255.33
+166.986 -44.8456 -2081.2
+166.963 -44.995 -979.62
+167.185 -44.8788 -478.37
+167.319 -44.8042 -577.08
+167.335 -44.7767 -1111.69
+167.357 -44.7644 -1188.16
+167.371 -44.7371 -1414.57
+167.438 -44.76 -104.23
+167.461 -44.7387 -280.42
+167.413 -44.7484 -608.56
+167.417 -44.7158 -1137.95
+167.467 -44.7019 -945.15
+167.616 -44.587 -281.42
+167.804 -44.4372 -341.15
+167.826 -44.4652 -44.67
+167.735 -44.4459 -623.12
+167.89 -44.3738 -76.76
+168.041 -44.2321 -77.87
+168.055 -44.147 -600.57
+167.909 -44.1371 -2125.47
+168.054 -44.1996 -173.03
+168.1 -44.212 -33.98
+168.121 -44.1388 -131.4
+168.184 -44.1319 -42.01
+168.313 -44.0058 -107.59
+168.227 -44.09 -114.83
+168.278 -44.0491 -193.32
+168.203 -44.0349 -767
+168.329 -43.9406 -420.41
+168.304 -43.8524 -1627.69
+166.294 -45.6513 -2153
+166.997 -44.7812 -2432.98
+167.058 -44.7232 -2503.2
+168.395 -43.152 -1067.14
+167.851 -42.8119 -1300.36
+168.031 -42.8263 -1238.12
+168.405 -43.8608 -1121.76
+168.556 -43.8829 -368.93
+168.599 -43.9016 -175.33
+168.612 -43.6544 -1079.7
+168.953 -43.5655 -557.37
+169.154 -43.5934 -287.92
+169.202 -43.6625 -192.42
+169.055 -43.5258 -737.52
+169.16 -43.4913 -368.38
+169.486 -43.3037 -420.21
+167.266 -43.1052 -2451.57
+167.525 -43.0252 -1574.99
+166.523 -43.9885 -3774.02
+165.942 -43.5771 -4164.07
+166.242 -43.6332 -3991.11
+167.374 -42.1321 -2498.85
+167.617 -42.0965 -2338.31
+166.578 -42.218 -3823.31
+166.867 -42.075 -3560.43
+166.582 -41.9674 -3785.93
+166.8 -41.7972 -3115.11
+169.856 -40.7017 -836.99
+170.077 -40.7 -802.59
+169.769 -39.911 -766.92
+169.982 -39.9992 -835.45
+169.983 -40.5604 -826.91
+169.62 -40.2218 -845.22
+169.672 -40.3856 -872.17
+176.057 -42.9325 -538.24
+176.081 -43.0641 -414.69
+176.527 -42.7739 -632.11
+177.692 -42.597 -1655.95
+177.842 -42.4797 -2283.55
+173.356 -46.0532 -1683.18
+173.598 -46.0526 -1559.62
+173.777 -45.4433 -1450.75
+172.448 -46.2391 -1505.47
+172.523 -46.3908 -1531.1
+172.553 -46.9015 -1463.25
+172.837 -46.8483 -1483.44
+169.485 -47.794 -662.58
+169.635 -47.8664 -678.51
+171.118 -48.1535 -1217.35
+171.208 -48.2848 -1123.09
+169.6 -48.9042 -760.09
+169.802 -48.8527 -800.05
+168.984 -48.6536 -716.59
+169.104 -48.5573 -708.39
+168.346 -49.295 -684.28
+168.427 -49.395 -697.3
+172.932 -43.8653 -6.69
+172.826 -43.5658 -11.88
+172.851 -43.5647 -14.6
+172.781 -43.5576 -6.53
+172.805 -43.5575 -10.83
+172.826 -43.5394 -13.49
+172.868 -43.5341 -15.61
+174.854 -41.0813 -6.23
+174.846 -41.0744 -16.44
+174.845 -41.084 -16.44
+174.859 -41.0886 -6.23
+174.841 -41.1211 -3.13
+174.833 -41.0786 -9.84
+174.724 -36.4658 0.19
+174.711 -36.4356 3
+174.73 -36.4955 1.13
+174.721 -36.4894 -4.49
+174.725 -36.5331 -3.96
+174.713 -36.4911 0.84
+174.715 -36.4515 1.96
+174.719 -36.458 2.94
+174.779 -36.4973 -16.05
+175.983 -37.5457 0.84
+176.085 -37.6414 2.49
+175.968 -37.5292 2.15
+175.986 -37.5233 1.47
+176.164 -37.6505 1.17
+176.118 -37.6474 -4.38
+176.008 -37.5511 2.55
+176.175 -37.7005 -15.14
+176.063 -37.6387 -0.47
+176.103 -37.6516 1.41
+176.134 -37.6464 -3.64
+176.215 -37.6995 -12.28
+175.745 -36.8238 -6.05
+175.691 -36.8538 2.2
+175.721 -36.8199 -1.33
+175.735 -36.8129 -6.18
+177.146 -37.9976 1
+177.135 -38 1.98
+177.074 -37.9888 3
+177.085 -37.9897 2.94
+177.096 -37.9925 3
+177.129 -38.0115 2.84
+174.683 -36.8563 -1.09
+174.681 -36.8361 -2.16
+174.798 -36.8423 -6.07
+174.661 -36.7829 -19.54
+174.658 -36.7737 -31.42
+174.67 -36.8492 0.3
+174.656 -36.8179 1.52
+174.632 -36.7707 -31.42
+174.081 -35.0785 -62.87
+174.121 -35.1342 -31.51
+174.114 -35.1067 -44.26
+174.124 -35.014 -143.66
+174.031 -35.0594 -76.16
+174.305 -35.1681 -49.01
+174.195 -35.2422 -3.5
+174.186 -35.2409 -4.42
+174.218 -35.2369 -5.26
+174.269 -35.2041 -32.45
+174.182 -35.2573 -87.05
+174.177 -35.2472 -1.09
+174.224 -35.2206 -14.42
+174.22 -35.2183 -16.28
+174.213 -35.2199 -15.85
+174.219 -35.2233 -13.35
+174.21 -35.2315 -9.33
+174.214 -35.2255 -12.63
+174.228 -35.2397 -2.37
+174.237 -35.236 -4.17
+174.201 -35.2358 -6.93
+174.185 -35.2144 -19.26
+174.17 -35.2569 -87.05
+174.162 -35.1739 -47
+174.257 -35.1947 -47
+174.276 -35.1904 -47
+174.167 -35.1898 -42.4
+174.185 -35.1938 -34.86
+174.165 -35.2275 -14.22
+174.175 -35.2278 -11.94
+174.202 -35.2104 -21.17
+174.208 -35.2148 -18.69
+174.235 -35.1929 -46.84
+174.22 -35.1948 -35.1
+174.227 -35.193 -41.91
+174.23 -35.1984 -36.37
+174.238 -35.2 -39.87
+174.24 -35.2082 -31.2
+174.22 -35.1989 -28.05
+174.224 -35.1982 -31.67
+174.219 -35.2018 -26.01
+174.215 -35.1923 -36.3
+174.221 -35.1884 -46.4
+174.223 -35.1777 -50.4
+174.209 -35.1935 -33.2
+174.211 -35.186 -44.25
+174.181 -35.1788 -47
+174.193 -35.211 -20.94
+174.23 -35.1862 -47
+174.223 -35.2013 -26.14
+174.227 -35.2027 -27.87
+174.167 -35.2467 -1.54
+174.171 -35.2408 -4.76
+174.16 -35.2213 -20.2
+174.146 -35.2323 -12.06
+174.148 -35.2464 -2.99
+174.185 -35.2061 -25.67
+174.196 -35.2024 -25.67
+174.111 -35.2737 -8.45
+174.108 -35.2936 -0.4
+174.111 -35.2988 -0.4
+174.145 -35.165 -41.86
+174.144 -35.1852 -36.12
+174.124 -35.2126 -11.56
+174.117 -35.328 -3.93
+174.085 -35.2373 -3.48
+174.066 -35.2271 -2.99
+174.075 -35.2314 -3.48
+174.069 -35.205 -2.99
+174.076 -35.1987 -23.06
+174.081 -35.1894 -54.17
+174.074 -35.2204 -23.06
+174.085 -35.2252 -23.06
+174.101 -35.2795 -2.31
+174.095 -35.2314 -3.48
+174.105 -35.2409 -3.48
+174.084 -35.2497 -3.48
+174.093 -35.2429 -3.48
+174.096 -35.254 -3.48
+174.098 -35.2681 -2.31
+174.123 -35.193 -23.29
+174.141 -35.2043 -29.99
+174.106 -35.1834 -3.96
+174.109 -35.2005 -55.3
+174.086 -35.2009 -23.06
+174.095 -35.1925 -54.17
+174.057 -35.2036 -2.99
+174.063 -35.2103 -2.99
+174.203 -35.2452 -1.63
+174.21 -35.2415 -3.51
+174.172 -35.2025 -31.38
+174.176 -35.2123 -23.07
+174.141 -35.2192 -20.1
+174.151 -35.2234 -18.7
+174.152 -35.2136 -25.44
+174.157 -35.2012 -34.31
+174.104 -35.2257 -23.06
+174.115 -35.2277 -55.3
+174.159 -35.2442 -3.13
+174.158 -35.254 2.33
+174.232 -35.233 -6.26
+174.182 -35.2337 -8.52
+174.246 -35.213 -27.3
+174.257 -35.2095 -30.85
+174.244 -35.2298 -7.95
+174.244 -35.1934 -47
+174.247 -35.2031 -38.2
+174.346 -35.1565 -102.43
+174.322 -35.1568 -54.73
+173.486 -35.4039 -16.87
+173.521 -35.3963 -28.38
+173.549 -35.3724 -25.81
+173.546 -35.3796 -25.81
+173.556 -35.3502 -44.13
+173.412 -35.4184 -0.1
+173.431 -35.4121 -29.98
+170.714 -45.7598 -5.17
+170.733 -45.7531 -8.1
+170.709 -45.742 -11.36
+170.751 -45.7667 -17
+170.632 -45.8294 -0.57
+170.518 -45.8773 -23.87
+170.653 -45.8049 -3.79
+170.658 -45.8199 -3.06
+170.637 -45.8033 -2.42
+170.666 -45.7959 -1.99
+170.678 -45.7937 -6.16
+168.002 -43.6452 -1912.65
+168.145 -43.6613 -1902.08
+167.95 -43.4778 -1470.96
+168.447 -43.4585 -1065.25
+168.58 -43.43 -924.96
+168.105 -43.3874 -1207.66
+168.609 -43.552 -1359.01
+168.722 -43.4918 -1104.51
+168.587 -43.2912 -948.3
+168.708 -43.3513 -930.13
+170.008 -42.5047 -737.51
+170.124 -42.4285 -815.75
+169.533 -42.7856 -913.65
+168.982 -43.0378 -967.8
+170.035 -42.6287 -514.68
+170.238 -42.48 -813.9
+170.24 -42.3736 -714
+170.147 -42.3001 -815.32
+170.298 -42.2591 -687.56
+169.465 -42.8967 -811.92
+169.59 -42.896 -826.24
+169.293 -43.0463 -841.39
+169.415 -43.0057 -765.29
+169.846 -42.7036 -687.54
+169.916 -42.7761 -481.9
+170.132 -42.5401 -802.61
+170.223 -42.5771 -528.8
+170.306 -42.4224 -612.03
+170.388 -42.4328 -539.74
+169.527 -42.9947 -694.62
+170.343 -42.3578 -590.96
+170.412 -42.2962 -526.7
+170.344 -42.1249 -628.08
+170.427 -42.2031 -523.06
+169.177 -43.2576 -736.61
+169.283 -43.2528 -720.85
+170.011 -42.734 -339.38
+170.105 -42.7025 -214.26
+170.151 -42.6285 -345.98
+170.189 -42.6904 -164.89
+169.905 -42.8723 -425.84
+169.995 -42.826 -281.57
+170.422 -42.3675 -502.62
+170.489 -42.4149 -400.08
+170.538 -42.4956 -292.38
+170.325 -42.4762 -564.75
+170.316 -42.5504 -525.34
+169.685 -43.0941 -324.96
+170.519 -42.2617 -385.18
+170.52 -42.1739 -404.23
+170.479 -42.338 -429.53
+169.639 -42.9961 -574.63
+170.585 -42.4339 -255.5
+170.65 -42.3773 -230.84
+170.615 -42.1874 -262.76
+170.704 -42.2293 -211.49
+170.569 -42.1135 -343.17
+170.667 -42.0904 -238.42
+170.731 -42.3193 -214.66
+170.788 -42.2492 -211.48
+170.605 -42.4972 -270.44
+170.67 -42.4696 -222.21
+170.736 -42.4121 -201.65
+170.809 -42.3743 -191.09
+170.768 -42.1762 -216.49
+170.859 -42.1908 -184.89
+170.221 -42.6391 -188.02
+170.284 -42.6242 -188.36
+170.869 -42.27 -191.13
+170.924 -42.2321 -169.84
+169.908 -42.9647 -271.99
+169.989 -42.9169 -286.72
+170.699 -42.1596 -235.97
+170.744 -42.1184 -208.16
+170.815 -42.3107 -201.05
+170.881 -42.3389 -171.53
+170.362 -42.6247 -186.83
+170.41 -42.5666 -549.36
+170.082 -42.787 -218.15
+170.154 -42.8343 -162.85
+170.165 -42.7583 -161.76
+170.237 -42.739 -135.23
+170.258 -42.6824 -158.02
+170.294 -42.7239 -130.88
+165.787 -46.2699 -1420.57
+166.051 -45.9658 -823.67
+166.159 -45.9299 -773.53
+166.812 -46.7486 -1205.75
+166.921 -46.7864 -760.85
+166.03 -46.5971 -197
+166.148 -46.6102 -571.35
+166.996 -47.087 -771.99
+167.083 -47.0705 -397.77
+166.981 -46.715 -583.85
+167.072 -46.7267 -557.26
+167.204 -46.7998 -410.23
+167.294 -46.8103 -225.13
+167.229 -46.8842 -417.2
+167.35 -46.8872 -181.57
+166.087 -46.1591 -81.81
+166.161 -46.1574 -106.89
+167.184 -46.7196 -295.71
+167.262 -46.751 -189.67
+167.29 -46.959 -243.32
+167.369 -46.9641 -156.45
+165.949 -46.3317 -261.1
+166.07 -46.3596 -231.16
+165.629 -46.425 -1993.72
+165.85 -46.4322 -292.27
+167.178 -47.0415 -365.11
+167.255 -47.0173 -247.12
+165.789 -46.5865 -312.03
+165.946 -46.535 -215.79
+167.301 -44.3312 -3729.07
+167.413 -44.2881 -3610.34
+166.439 -46.9756 -1620.33
+166.597 -47.0018 -1502.3
+166.555 -46.6585 -1012.46
+166.678 -46.6608 -944.15
+166.502 -46.8039 -1417.89
+166.621 -46.8107 -1160.33
+166.624 -46.7261 -1191.99
+166.708 -46.7533 -1236.61
+166.391 -46.808 -1457.87
+166.443 -46.8742 -1598.12
+166.649 -47.1212 -1362.17
+166.782 -47.0986 -1200.07
+167.035 -46.6557 -371.19
+167.127 -46.6532 -308.33
+167.006 -46.7711 -735.11
+167.008 -46.8407 -825.16
+167.057 -46.7911 -716.09
+167.123 -46.7866 -583.4
+166.499 -46.7277 -1297.24
+166.561 -46.7462 -1318.54
+166.755 -46.6911 -907.85
+166.824 -46.6641 -592.47
+166.818 -46.5886 -298.78
+166.901 -46.6226 -256.27
+166.842 -47.0225 -1095.51
+166.934 -47.0471 -923.28
+166.555 -46.5516 -608.29
+166.633 -46.5928 -728.5
+166.337 -46.722 -1332.03
+166.434 -46.7483 -1355.43
+166.551 -46.8981 -1342.12
+166.69 -46.9114 -1286.25
+166.724 -47.0192 -1311.91
+166.777 -46.9583 -1218.92
+166.359 -47.0926 -1741.51
+166.508 -47.0769 -1523.05
+166.844 -46.9329 -1097.45
+166.924 -46.9732 -987.59
+166.823 -46.8465 -1163.82
+166.917 -46.8855 -916.77
+167.003 -46.9313 -904.94
+167.077 -46.891 -784.14
+167.005 -47.0154 -730.91
+167.098 -46.9762 -700.58
+167.081 -46.8321 -722.69
+167.142 -46.8509 -628.63
+167.149 -46.9137 -697.3
+167.198 -46.9662 -519.91
+166.333 -46.8855 -1573.7
+166.261 -46.9826 -1826.01
+166.172 -46.5005 -485.7
+166.264 -46.5636 -768.89
+166.045 -46.6805 -304.49
+166.187 -46.73 -1011.81
+166.174 -46.8642 -1266.24
+166.286 -46.8031 -1230.09
+166.898 -46.6978 -689.72
+166.961 -46.6575 -417.72
+165.417 -45.8732 -3125.08
+166.062 -45.324 -4354.45
+166.04 -44.9276 -3604.03
+166.207 -44.892 -3557.64
+165.741 -45.3611 -4096.98
+165.658 -45.5153 -4228.87
+165.857 -45.5014 -4429.48
+165.72 -45.6562 -4233.61
+165.808 -45.8167 -2839.58
+165.822 -45.9819 -2537.42
+165.948 -45.9025 -2110.02
+165.693 -46.103 -3155.2
+165.885 -46.119 -1063.93
+165.947 -46.009 -762.57
+166.034 -46.0749 -228.57
+165.811 -45.0018 -4311.24
+166.011 -45.0724 -3476.53
+166.809 -44.9196 -2506
+166.86 -44.8684 -2435.02
+168.074 -43.763 -1487.35
+167.667 -43.7654 -2141.26
+167.792 -43.7606 -1778.71
+167.812 -44.1022 -2683.67
+168.429 -43.6582 -1598.67
+169.391 -43.096 -729.63
+169.711 -42.9082 -675.23
+169.8 -42.815 -653.81
+169.821 -42.9323 -468.73
+167.2 -44.2788 -3806.3
+167.651 -43.9212 -1841.17
+166.903 -44.1677 -3708.28
+166.828 -44.3093 -3850.97
+165.997 -46.4412 -197
+166.065 -46.5214 -197
+166.097 -46.4442 -222.92
+166.182 -46.3953 -403
+166.151 -46.2984 -259.12
+166.231 -46.3236 -337.14
+166.372 -46.5279 -678.41
+166.47 -46.5085 -571.12
+166.258 -46.6497 -927.35
+166.355 -46.6226 -921.11
+166.441 -46.6797 -1141.6
+166.457 -46.5902 -798.56
+166.704 -46.8293 -1227.28
+166.759 -46.8074 -1247.87
+166.751 -46.86 -1238.06
+166.777 -46.9021 -1213.32
+165.936 -46.2271 -487.82
+165.998 -46.1653 -192.77
+166.048 -46.2499 -191
+166.147 -46.2157 -147.57
+166.721 -46.581 -631.11
+166.759 -46.6358 -734.27
+166.023 -45.4255 -4324.13
+166.018 -45.5505 -3965.04
+166.446 -45.089 -4200.04
+166.541 -45.0732 -3934.96
+166.407 -45.1528 -4194.32
+166.51 -45.1427 -3940.28
+165.905 -45.6628 -4300.62
+166.062 -45.6659 -3364.64
+166.186 -45.6645 -2590.31
+167.788 -43.8685 -1677.6
+167.904 -44.0399 -2358.35
+168.186 -43.7651 -1650.01
+168.278 -43.7742 -1748.01
+166.42 -45.2946 -3871.72
+166.143 -45.5778 -3815.18
+166.234 -45.5974 -3157.61
+165.987 -45.7775 -2883.74
+166.076 -45.8645 -1545.71
+166.138 -45.7637 -2122.09
+166.2 -45.1784 -4315.44
+166.313 -45.1632 -4220.33
+166.266 -45.0824 -4167.24
+166.359 -45.1052 -4205.61
+166.507 -44.6737 -3500.55
+166.625 -44.5941 -3518.84
+166.632 -44.706 -3764.14
+166.83 -44.7988 -3231.66
+166.737 -44.7482 -3837.92
+166.857 -44.7006 -3525.69
+166.914 -44.7614 -2989.57
+166.967 -44.7112 -2881.08
+166.942 -44.6464 -3135.97
+167.032 -44.6542 -2678.95
+167.291 -44.4242 -3858.33
+166.627 -44.4679 -3420.27
+166.779 -44.4271 -3582.24
+166.921 -44.4067 -3838.84
+167.037 -44.3995 -3723.72
+166.052 -45.2101 -4141.98
+166.14 -45.1076 -3905.5
+166.163 -45.0081 -3504.55
+167.372 -43.7782 -2648.23
+167.507 -43.6887 -2656.18
+167.42 -44.1819 -3487.08
+167.548 -44.1212 -2945.43
+167.643 -43.6073 -2537.5
+167.771 -43.6607 -2112.83
+168.34 -43.5081 -1179.67
+168.433 -43.5604 -1269.1
+168.359 -43.2756 -1083.04
+168.344 -43.395 -1107.89
+167.107 -44.6022 -2893.26
+167.207 -44.5563 -3209.83
+167.185 -44.4621 -3801.66
+167.276 -44.4976 -3532.59
+167.123 -44.4047 -3826.68
+167.104 -44.334 -3800.42
+167.201 -44.3736 -3983.49
+167.542 -44.2471 -3539.15
+167.003 -44.4783 -3655.04
+166.99 -44.5727 -3319.01
+168.519 -43.5199 -1147.38
+168.52 -43.6079 -1344.36
+168.705 -43.2251 -951.75
+168.989 -43.1352 -879.65
+168.852 -43.5183 -944.87
+169.13 -43.3448 -692.46
+169.085 -43.4271 -695.18
+169.172 -43.4123 -455.66
+169.395 -43.2594 -642.78
+169.479 -43.2326 -534.21
+168.732 -43.0958 -1022.72
+168.878 -43.0821 -997.56
+170.51 -42.804 -37.92
+170.582 -42.8061 -34.77
+170.645 -42.5352 -223.58
+170.717 -42.5526 -198.29
+169.877 -43.1031 -160.8
+170.002 -42.3642 -854.7
+169.769 -42.6082 -839.5
+170.075 -42.8731 -188.74
+170.152 -42.9096 -144.43
+170.82 -42.1149 -193.2
+170.909 -42.1162 -168.45
+170.38 -42.504 -580.32
+170.452 -42.4979 -530.27
+170.395 -42.6884 -121.63
+170.443 -42.636 -211.41
+169.662 -42.5112 -998.45
+169.815 -43.3733 -67.35
+169.629 -43.191 -316.66
+169.734 -43.1831 -209.96
+169.724 -43.3277 -239.58
+169.775 -43.3719 -113
+169.479 -43.087 -691.19
+169.58 -43.0884 -544.71
+169.336 -43.1637 -696.06
+169.434 -43.1683 -705.94
+169.525 -43.1689 -479.65
+169.413 -43.3542 -299.57
+169.333 -43.3251 -459.01
+169.334 -43.4021 -248.4
+169.248 -43.4479 -253.89
+169.238 -43.3488 -492.56
+169.746 -43.0089 -366.17
+169.839 -43.0243 -197
+169.338 -42.9126 -869.23
+168.864 -43.6187 -453.7
+168.113 -43.2426 -1157.16
+168.248 -43.1886 -1104.78
+168.702 -42.8242 -1120.37
+168.841 -42.843 -1048.15
+167.473 -43.2316 -1851.98
+167.667 -43.183 -1394.45
+167.351 -43.5752 -3141.33
+167.52 -43.5474 -2559.65
+168.238 -43.5752 -1382.48
+168.338 -43.6146 -1458.27
+167.909 -43.87 -1895.9
+168.018 -43.864 -1814.74
+167.783 -43.3529 -1446.55
+167.969 -43.2977 -1244.76
+169.341 -42.5878 -1004.48
+169.454 -42.6813 -962.68
+168.181 -42.7506 -1322.55
+168.376 -42.6913 -1637.81
+167.776 -43.5275 -1881.33
+167.873 -43.6034 -2049.84
+167.388 -43.9341 -2688.6
+167.518 -43.8465 -2175.47
+169.101 -43.1684 -856.65
+169.223 -43.1566 -820.41
+168.124 -43.0919 -1145.53
+168.28 -43.0434 -1122.27
+168.814 -43.2818 -920.34
+168.829 -43.4015 -927.68
+168.255 -43.6837 -1637.4
+168.346 -43.7139 -1509.67
+168.35 -43.7929 -1431
+168.426 -43.7573 -1361.38
+168.234 -43.3234 -1143.01
+168.229 -43.4535 -1192.47
+169.036 -42.6578 -1048.05
+169.171 -42.5168 -1072.85
+169.689 -42.3587 -1064.07
+169.857 -42.2786 -976.42
+167.273 -43.3518 -2844.64
+167.477 -43.4159 -2360.52
+167.607 -43.3292 -1706.11
+167.636 -43.4624 -2031.83
+168.323 -42.8758 -1246.26
+166.975 -43.7521 -3820.66
+167.203 -43.7384 -3165.41
+169.123 -42.8055 -967.8
+169.208 -42.6778 -1036.03
+169.203 -42.9294 -893.5
+169.266 -42.8043 -916.08
+168.808 -43.1792 -936.3
+168.906 -43.2086 -906.36
+168.697 -43.7039 -325.58
+168.783 -43.6626 -711.2
+167.864 -43.7978 -1722.22
+167.957 -43.775 -1667.42
+167.113 -43.913 -3842.64
+167.265 -43.8821 -3098.04
+168.425 -43.9524 -286.12
+168.492 -43.9078 -190.48
+167.993 -44.101 -1778.71
+167.8 -44.3042 -1486.45
+167.969 -42.9947 -1187.7
+168.152 -42.9283 -1174.82
+168.785 -42.9616 -1107.03
+168.922 -42.9483 -1019.1
+169.059 -42.9508 -953.66
+169.059 -43.0715 -962.25
+169.155 -43.0551 -867.12
+167.86 -43.1646 -1258.2
+168.005 -43.161 -1185.28
+169.775 -43.262 -197.19
+169.799 -43.3295 -138.37
+169.786 -43.0999 -197
+169.857 -43.2834 -127.96
+169.916 -43.2865 -81.98
+169.849 -43.3518 -62.74
+169.899 -43.3347 -50.91
+168.95 -43.726 -167.18
+169.017 -43.7049 -197
+168.959 -43.4454 -913.18
+168.926 -43.323 -877.11
+169.033 -43.3428 -800.32
+169.008 -43.2427 -856.06
+169.09 -43.2722 -781.81
+170.173 -42.977 -109.44
+170.214 -42.9333 -110.95
+169.333 -42.7073 -991.15
+169.397 -42.7954 -886.71
+169.637 -43.2915 -338.76
+169.7 -43.2517 -227.7
+170.558 -42.3514 -312
+170.628 -42.2864 -252.86
+169.548 -42.4238 -1052.42
+167.965 -43.9514 -2291.15
+168.029 -44.0271 -2386.93
+167.77 -44.0027 -2274.41
+167.867 -43.9465 -2101.52
+167.527 -43.9881 -2229.15
+167.248 -44.0273 -3375.41
+167.407 -44.0652 -2840.33
+167.075 -44.0807 -3676.49
+167.203 -44.1638 -3775.22
+167.646 -44.0405 -2332.87
+167.725 -44.0854 -2796.61
+166.98 -44.3083 -3762.16
+167.078 -44.2264 -3768.15
+167.12 -44.6744 -2413.01
+167.192 -44.634 -2629.22
+167.481 -44.4467 -2592.57
+167.575 -44.4299 -2172.57
+166.759 -44.974 -2643.55
+166.241 -44.5058 -3986.39
+166.47 -44.5478 -3676.35
+166.486 -45.3037 -3585.8
+166.242 -45.5179 -3873.17
+166.298 -44.9764 -3789.13
+166.38 -45.0387 -4107.95
+168.138 -43.8672 -2079.67
+168.227 -43.8353 -1918.86
+168.068 -43.9497 -2192.22
+168.163 -43.9718 -1528.86
+168.476 -43.2424 -1028.03
+168.469 -43.349 -1014.85
+168.7 -41.9153 -1145.59
+168.876 -42.0451 -1094.87
+170.015 -41.9504 -854.85
+170.093 -42.0585 -842.02
+170.749 -42.4837 -196.15
+170.814 -42.451 -168.86
+169.694 -42.185 -1035.77
+169.892 -42.0832 -920.71
+170.029 -42.209 -897.76
+169.907 -42.5999 -721.12
+169.943 -42.6885 -557.04
+169.502 -42.5478 -985.95
+169.619 -42.6639 -893.83
+168.765 -42.2558 -1317.37
+168.965 -42.2317 -1708.16
+169.866 -41.892 -921.42
+170.051 -41.8032 -808.49
+170.378 -40.7948 -733.61
+170.534 -40.7448 -665.26
+169.666 -42.7946 -872.74
+169.741 -42.7166 -800.96
+168.114 -43.5321 -1408.42
+168.702 -43.6082 -916.72
+168.784 -43.5799 -986.02
+170.262 -42.0257 -694.13
+169.696 -41.9956 -1012.77
+170.712 -42.6271 -227.34
+170.781 -42.615 -160.9
+167.746 -44.2405 -2506.19
+167.736 -44.1565 -2841.43
+166.466 -44.3868 -3816.5
+166.522 -44.187 -3723.61
+166.66 -44.3336 -3662.91
+166.725 -44.2126 -3752.16
+166.103 -44.7875 -3937.81
+166.274 -44.7759 -3608.57
+166.352 -44.6588 -3646.83
+166.651 -45.4711 -621.95
+167.845 -44.345 -638.85
+167.828 -44.3919 -521.59
+167.201 -44.8537 -612.12
+167.222 -44.8762 -92.3
+168.235 -43.9103 -1373.25
+168.254 -43.9864 -213.21
+167.234 -44.8434 -391.98
+167.303 -44.771 -1424.54
+167.272 -44.7929 -1233.36
+167.279 -44.8271 -495.04
+167.611 -44.5487 -860.61
+166.445 -45.6691 -537.28
+166.484 -45.6326 -789.81
+166.7 -45.2578 -2599.93
+166.873 -45.0198 -1202.78
+166.927 -45.0144 -919.86
+167.471 -44.5254 -2075.19
+167.547 -44.5384 -1764.96
+168.014 -44.2456 -61.36
+167.998 -44.2783 -44.23
+166.621 -45.4356 -1232.71
+167.472 -44.6628 -1543.29
+167.372 -44.6951 -1891.21
+167.669 -44.5395 -460.59
+166.37 -45.6105 -2240.28
+166.377 -45.6655 -1209.96
+166.591 -45.4698 -1452.73
+166.618 -45.5029 -756.67
+167.271 -44.6159 -2576.51
+167.313 -44.556 -2853.69
+167.83 -44.1843 -2337.13
+167.851 -44.2537 -1380.66
+166.874 -45.064 -1040.97
+166.874 -45.0991 -1598.54
+167.331 -44.7521 -1536.92
+167.325 -44.7172 -1988.5
+167.565 -44.578 -1002.32
+167.783 -44.4753 -164.22
+167.78 -44.5133 -47
+166.831 -45.0838 -1743.68
+167.103 -44.9425 -826.1
+167.091 -44.7808 -2120
+167.14 -44.7327 -2143.11
+167.196 -44.6929 -2260.17
+167.208 -44.7427 -2195.03
+166.455 -45.5588 -2269.15
+166.529 -45.4737 -2262.69
+166.565 -45.5007 -1497.81
+166.59 -45.5577 -764.63
+166.63 -45.5398 -288.96
+166.707 -45.3602 -1075.16
+166.584 -45.5289 -997.61
+166.468 -45.5965 -1608.61
+166.422 -45.5877 -2179.41
+166.429 -45.6266 -1441.3
+166.733 -45.3451 -697.62
+166.758 -45.3208 -356.08
+166.561 -45.4345 -2066.34
+167.546 -44.4896 -2107.26
+167.592 -44.5134 -1521.65
+167.349 -44.6106 -2385.04
+166.914 -44.9738 -1071.88
+167.315 -44.1352 -3540.85
+167.307 -44.2301 -3732.16
+165.977 -44.6343 -4235.72
+166.191 -44.6705 -4061.61
+165.478 -44.9913 -4452.36
+165.616 -45.1983 -4389.96
+165.699 -44.7773 -4515.19
+165.929 -44.8249 -4400.73
+166.541 -44.7631 -3768.76
+166.509 -44.8599 -3946.92
+166.753 -44.5394 -3515.58
+166.745 -44.6447 -3760.13
+166.358 -44.8746 -3567.09
+166.423 -44.7677 -3653.47
+166.365 -45.3398 -3796.4
+167.424 -44.6785 -1833.78
+168.101 -44.0051 -1739.86
+167.615 -44.4762 -1965.23
+167.658 -44.4336 -1670.34
+166.862 -44.6005 -3638.59
+166.884 -44.5055 -3747.81
+166.838 -44.9719 -1796.6
+166.883 -44.9237 -2000.64
+166.506 -45.739 -5.33
+166.519 -45.7234 -11.2
+166.525 -45.7811 -192.97
+166.551 -45.7771 -2.36
+167.66 -44.1208 -2891.96
+167.647 -44.1931 -3176.51
+167.926 -44.2119 -1086.65
+167.974 -44.2441 -180.18
+167.316 -44.6684 -2247
+167.384 -44.6514 -2266.41
+166.655 -44.9778 -3592.48
+167.002 -44.9745 -725.37
+167.165 -44.782 -2197.22
+167.195 -44.8225 -1114.02
+167.248 -44.6654 -2309.55
+167.265 -44.7126 -2037.2
+166.991 -44.8943 -1424.43
+168.001 -44.2165 -197
+167.99 -44.1682 -1055.83
+167.928 -44.2668 -362.03
+167.943 -44.31 -79.92
+167.13 -44.8302 -1710.14
+167.172 -44.8509 -982.68
+167.476 -44.6175 -1816.46
+167.508 -44.5745 -1874.8
+167.223 -44.7846 -1703.32
+167.241 -44.8141 -961.58
+167.007 -44.937 -922.55
+167.035 -44.959 -886.37
+168.144 -44.0297 -924.35
+168.151 -44.0814 -103.75
+166.313 -45.5747 -2831.21
+166.33 -45.5183 -3274.73
+167.09 -44.8732 -1309.92
+167.144 -44.8715 -1007.21
+167.706 -44.3217 -2229.61
+167.777 -44.3607 -1631.91
+166.72 -45.0382 -2612.47
+166.785 -45.0655 -1831.61
+166.947 -44.9284 -1180.82
+166.967 -44.9613 -649.9
+167.535 -44.6101 -860.94
+167.522 -44.6487 -811.79
+167.511 -44.6861 -738.5
+167.54 -44.6764 -272.66
+167.876 -44.3028 -693.86
+167.901 -44.3367 -122.83
+167.642 -44.5111 -1167.62
+167.731 -44.4922 -258.94
+167.722 -44.5294 -114.44
+167.652 -44.5681 -162.49
+167.661 -44.5971 -239.74
+167.262 -44.7578 -1975.28
+167.297 -44.7423 -1929.54
+166.497 -45.4346 -2949.69
+167.059 -44.9367 -1042.01
+167.092 -44.9115 -1237.62
+167.09 -44.4543 -3639.63
+167.097 -44.521 -3431.94
+166.146 -45.3773 -4244.39
+166.133 -45.4785 -4189.01
+166.166 -45.2773 -4281.08
+166.265 -45.3342 -3972.96
+167.611 -44.3129 -2968.16
+167.651 -44.2634 -3171.44
+167.396 -44.5614 -2357.81
+167.453 -44.5776 -2114.38
+167.713 -44.3926 -1424.27
+167.771 -44.4068 -1219.5
+168.075 -44.0917 -926.03
+168.1 -44.0474 -1236.36
+167.56 -44.6337 -157.22
+167.583 -44.6117 -209.65
+166.687 -45.1274 -2878.87
+166.734 -45.0932 -2370.47
+167.123 -44.8953 -1188.93
+167.158 -44.9028 -733.32
+167.126 -44.9174 -1023.83
+167.151 -44.9341 -645.89
+166.702 -45.2903 -2303.66
+166.721 -45.3184 -1475.38
+167.033 -44.8697 -1682.09
+167.046 -44.904 -1362.43
+167.415 -44.6108 -2301.84
+167.434 -44.6439 -2007.92
+167.677 -44.4783 -1190.35
+167.687 -44.5104 -659.46
+166.774 -45.2261 -1200.36
+166.629 -44.8011 -3931.88
+166.252 -45.906 -564.69
+166.241 -45.977 -315.58
+166.28 -46.4637 -582.91
+166.294 -46.3738 -419.45
+167.219 -46.6367 -172.32
+167.285 -46.6855 -162.58
+166.899 -46.3788 -133.83
+166.902 -46.4476 -170
+167.049 -46.5295 -228.19
+167.089 -46.592 -218.18
+176.379 -41.0655 -377.33
+176.097 -41.113 -15
+176.108 -41.1378 -26.92
+175.23 -41.7633 -1074.29
+175.281 -41.7097 -574.69
+175.204 -41.6484 -242.32
+175.21 -41.6961 -797.26
+176.215 -41.2061 -294.95
+175.929 -41.3391 -86.78
+175.606 -41.55 -303.77
+175.629 -41.5154 -127.57
+175.984 -41.3545 -196.09
+176.377 -40.821 -93.55
+176.426 -40.8362 -135.94
+176.698 -41.1841 -1116.18
+175.954 -41.4815 -1039.16
+176.009 -41.5056 -1123.47
+175.927 -41.3 -31.04
+175.973 -41.2812 -49.45
+175.32 -41.6675 -445.34
+175.357 -41.7132 -1027.34
+175.255 -41.6616 -278.1
+175.284 -41.638 -26.52
+175.479 -41.5767 -27.14
+175.508 -41.5521 -43.16
+175.526 -41.5821 -156.33
+176.047 -41.1856 -15.95
+176.076 -41.161 -13.25
+176.324 -40.8988 -81.47
+176.364 -40.8616 -92.67
+175.493 -41.6085 -168.8
+175.5 -41.6454 -497.68
+175.357 -41.642 -243.09
+176.037 -41.3664 -228.01
+176.217 -41.266 -901.96
+176.246 -41.3308 -894.44
+176.204 -41.1635 -116.63
+176.258 -41.1673 -293.4
+175.811 -41.5259 -752.02
+176.275 -41.223 -837.12
+176.297 -41.2779 -1166.3
+176.074 -41.401 -896.47
+176.542 -40.9804 -415.28
+176.557 -41.0483 -904.53
+176.148 -41.2722 -367.13
+176.162 -41.3173 -847.81
+176.361 -40.994 -149.94
+176.408 -40.9474 -149.05
+176.197 -41.0723 -60.4
+175.727 -41.4324 -47.24
+175.765 -41.4224 -56.91
+175.775 -41.5477 -1045.75
+175.816 -41.5609 -911.82
+176.001 -41.398 -502.69
+176.028 -41.4547 -1051.27
+175.544 -41.6177 -480.2
+175.579 -41.5845 -411.17
+175.453 -41.5992 -100.62
+175.452 -41.6273 -254.87
+176.086 -41.1901 -45.12
+176.119 -41.1715 -46.42
+175.374 -41.6188 -72.99
+175.411 -41.6078 -121.1
+175.775 -41.5882 -1004.62
+175.856 -41.5372 -1037.46
+175.038 -41.4495 -163.7
+175.049 -41.4934 -71.31
+175.05 -41.6903 -856.46
+175.146 -41.6656 -389.64
+175.095 -41.617 -177.7
+175.17 -41.6142 -74.83
+176.135 -41.1097 -36.07
+176.153 -41.0767 -35.64
+176.373 -40.9087 -113.27
+176.429 -40.8928 -145.99
+175.938 -41.3822 -183.69
+175.949 -41.4306 -601.77
+175.139 -41.5653 -74.41
+175.192 -41.5725 -44.12
+175.608 -41.6254 -512.27
+175.937 -41.2701 -12.56
+175.972 -41.2585 -22.29
+176.009 -41.2327 -23.24
+176.032 -41.2454 -49.18
+175.878 -41.3669 -45.11
+175.889 -41.4099 -371.44
+175.656 -41.4835 -90.91
+175.687 -41.4551 -142.61
+176.174 -41.1033 -53.09
+176.22 -41.1177 -92.67
+175.8 -41.4056 -63.98
+175.843 -41.394 -76.39
+175.749 -41.4982 -957.3
+175.797 -41.4955 -799.8
+175.839 -41.4279 -143.69
+175.885 -41.4595 -860.64
+176.247 -41.0729 -94.59
+176.302 -41.1097 -197
+175.61 -41.672 -771.87
+175.614 -41.7144 -1528.17
+175.742 -41.5301 -1223.98
+175.775 -41.5192 -893.64
+175.845 -41.4981 -888.13
+175.9 -41.5098 -1114.79
+175.733 -41.5631 -1408.62
+175.505 -41.6934 -1029.07
+175.558 -41.743 -1898.76
+175.399 -41.7587 -1054.12
+175.478 -41.7523 -1188.8
+175.447 -41.8159 -1713.98
+175.53 -41.7986 -2054.05
+175.556 -41.6587 -873.03
+175.568 -41.6952 -1080.57
+175.429 -41.7084 -974.28
+175.447 -41.6639 -659.15
+175.794 -41.4387 -160.02
+175.823 -41.4643 -745.12
+175.386 -41.6721 -578.45
+175.404 -41.6388 -352.93
+175.657 -41.5454 -292.03
+175.702 -41.5397 -1066.63
+175.678 -41.5148 -448.02
+175.716 -41.5144 -1061.33
+175.703 -41.4892 -468.62
+175.733 -41.4653 -177.14
+175.759 -41.4459 -82.17
+175.776 -41.4683 -462.29
+175.86 -41.5753 -1155.44
+175.871 -42.1723 -2620.07
+175.686 -41.5732 -774.05
+175.72 -41.5998 -916.6
+175.657 -41.6501 -664.38
+175.704 -41.6381 -873.1
+175.635 -41.5816 -621.46
+175.668 -41.6111 -541.37
+175.141 -41.7306 -981.82
+175.01 -40.6166 -74.88
+175.055 -40.6355 -61.51
+174.507 -38.7277 -26.51
+174.545 -38.6925 -19.2
+165.334 -46.6126 -2746.26
+165.454 -46.7331 -1156.41
+177.264 -40.8886 -2006.05
+176.951 -40.7946 -931.58
+176.848 -41.7887 -2850.51
+176.852 -41.1908 -1273.96
+177.114 -40.8445 -1767.5
+176.764 -41.2587 -1444.91
+176.759 -41.3425 -1672.49
+177.139 -40.9671 -1988.11
+177.149 -41.1003 -1784.58
+177.293 -41.0174 -1956.04
+177.406 -40.9275 -2097.98
+176.886 -41.0013 -1563.12
+177.014 -41.0385 -1889.05
+176.973 -40.6708 -610.95
+177.091 -40.7262 -1486.53
+176.57 -41.243 -1077.48
+176.667 -41.2972 -1470.16
+176.992 -40.9237 -1412.01
+176.91 -41.0928 -1644.62
+177.001 -41.1544 -1608.48
+176.331 -41.2352 -1174.59
+177.149 -41.492 -2822.53
+177.322 -41.5067 -2815.87
+177.677 -41.0582 -2493.83
+177.858 -40.9667 -2530.31
+175.885 -42.2932 -2672.85
+176.027 -42.2114 -2742.79
+174.983 -41.8504 -1771.87
+177.091 -40.6208 -1015.44
+177.215 -40.5741 -1763.43
+177.145 -40.1697 -430.04
+177.198 -40.1127 -542.64
+177.197 -40.6693 -1797.82
+177.237 -40.7641 -1915.29
+176.976 -40.5615 -737.84
+177.096 -40.5188 -1159.17
+176.872 -40.6166 -402.08
+176.873 -40.5456 -323.11
+176.914 -40.4166 -1011.34
+176.993 -40.3723 -1070.69
+176.695 -40.6718 -227.51
+176.735 -40.7236 -320.75
+176.906 -40.4877 -675.04
+176.999 -40.4616 -1330.7
+176.48 -42.1783 -2683.12
+177.632 -42.0845 -2756.17
+177.765 -41.9011 -2829.01
+180.96 -31.3148 -1487.25
+181.148 -31.3604 -377.37
+180.785 -31.6445 -2395.57
+180.994 -31.7036 -1672.13
+181.185 -31.513 -242.6
+181.238 -30.865 -1294.24
+181.321 -30.7236 -1037.11
+181.108 -31.1841 -1193
+181.275 -31.1093 -980.3
+181.586 -30.1863 -327.02
+181.695 -30.0051 -1117.36
+180.802 -32.0295 -2111.98
+180.873 -31.8433 -2052.32
+181.279 -30.9747 -853.39
+181.495 -30.3844 -1014.86
+181.374 -30.5436 -531.78
+181.233 -31.2411 -417.02
+181.968 -28.7911 -1539.42
+182.036 -28.946 -1048.32
+182.403 -28.101 -1484.59
+181.759 -29.5342 -881.2
+181.839 -29.6722 -1041.05
+182.14 -28.8209 -566.62
+184.249 -27.1706 -7361.45
+183.088 -27.4837 -2184.93
+182.844 -26.8068 -1517.24
+182.656 -26.7966 -1354.96
+182.795 -26.9578 -1889.54
+182.784 -26.6574 -1182.15
+182.937 -26.5753 -1370.41
+183.128 -32.604 -6193.93
+183.35 -32.8777 -5941.7
+182.593 -34.2528 -5902.71
+182.791 -33.0891 -6492.08
+183.126 -33.1437 -6036.45
+182.905 -33.3478 -5872.77
+182.952 -33.6104 -6026.04
+182.767 -34.0083 -5920
+182.71 -34.5261 -5747.44
+182.934 -34.2795 -5781.26
+183.398 -30.2807 -7932.46
+183.696 -30.6752 -6592.56
+183.224 -33.44 -5910.9
+183.51 -33.2047 -5191.21
+183.593 -31.8923 -5988.61
+183.791 -32.1951 -5640.73
+183.517 -32.5051 -5917.44
+183.938 -32.498 -5742.93
+183.229 -33.7381 -5393.88
+183.513 -33.9413 -5216.73
+183.958 -30.6623 -5788.18
+184.183 -30.8536 -5452.6
+184.817 -27.7891 -5800.13
+184.553 -28.0371 -6525.8
+184.888 -28.1477 -5833.58
+184.528 -26.8351 -7812.51
+184.63 -28.6184 -5872.93
+184.913 -28.473 -5741.44
+184.168 -29.8444 -6081.8
+184.504 -29.6618 -5770.99
+184.522 -27.0535 -7378.46
+184.833 -29.4096 -5781.74
+182.738 -31.7443 -9470.02
+182.958 -31.8685 -6939.1
+183.022 -32.1172 -6696.34
+182.673 -31.3544 -6638.57
+182.785 -31.5403 -8996.29
+183.039 -31.6378 -7277.54
+182.755 -31.976 -9334.08
+182.754 -30.9868 -5960.29
+182.859 -31.1917 -7550.72
+182.945 -31.3938 -8511.28
+182.161 -33.0543 -8742.56
+182.984 -32.8698 -6264.88
+181.659 -33.6818 -6715.69
+182.341 -33.8414 -6545.5
+182.138 -33.2124 -8610.76
+182.311 -34.2036 -6168.5
+182.284 -32.1405 -6565.81
+183.123 -30.3641 -6714.46
+183.377 -30.007 -7114.29
+183.635 -30.1209 -7479.8
+183.689 -30.3691 -6631.18
+183.083 -31.0283 -8165.44
+183.443 -30.6273 -8458.72
+183.23 -31.8769 -4773.54
+183.608 -31.35 -5937.08
+183.735 -31.6428 -5445.59
+183.497 -30.4603 -8442.71
+183.627 -30.5358 -7637.47
+183.797 -30.5338 -6093.23
+184.009 -30.4188 -5731.56
+183.866 -30.2103 -6154.09
+184.132 -30.1466 -5860.81
+184.23 -30.5999 -5626.75
+184.381 -30.3733 -5589.86
+183.701 -29.0719 -6500.9
+183.908 -28.9286 -8378.78
+184.105 -29.03 -7456.37
+184.32 -28.9092 -6214
+184.218 -27.9657 -8228.51
+184.174 -27.7064 -8148.84
+184.445 -27.7511 -7675.76
+183.892 -28.6777 -7123.51
+184.129 -28.5947 -8171.47
+184.105 -28.8109 -8017.48
+184.151 -27.3101 -6794.36
+184.056 -27.5172 -6081.92
+184.308 -27.5071 -8635.15
+184.412 -27.2688 -7795
+183.817 -28.22 -5642.22
+184.368 -28.5198 -6794.66
+184.614 -28.3382 -6204.2
+183.876 -29.9842 -7025.51
+184.296 -26.7322 -6622.03
+184.351 -27.0921 -8008.95
+184.347 -26.9397 -8105.09
+184.517 -26.6189 -7775.97
+184.754 -26.5174 -6306.25
+183.926 -29.1178 -8655.41
+184.093 -29.2698 -6922.97
+183.864 -29.6918 -7660.89
+184.161 -29.5453 -6336.43
+184.757 -26.2128 -5883.92
+184.271 -28.7127 -7000.13
+184.431 -28.7287 -6321.64
+184.577 -28.8631 -5896.17
+184.002 -27.6709 -5961.3
+184.005 -27.8268 -6449.43
+183.433 -29.1131 -4860.19
+183.584 -29.2907 -6148.8
+183.823 -29.2802 -8668.19
+183.93 -29.4564 -7358.67
+183.125 -29.8791 -5356.79
+183.946 -28.0176 -6244.97
+183.522 -28.919 -4913.87
+183.71 -28.8353 -5992.71
+183.258 -29.4671 -5038.73
+183.364 -29.305 -5140.47
+183.869 -27.7239 -4867.42
+181.625 -33.8279 -6649.44
+181.996 -33.3145 -8221.6
+182.231 -33.3843 -8369.94
+182.371 -33.0024 -8160.66
+182.539 -33.1452 -7024.1
+182.678 -33.2863 -6683.53
+182.666 -33.5099 -6345.46
+183.472 -29.4656 -5573.08
+183.706 -29.4744 -7730.11
+183.408 -28.8131 -4441.01
+184.786 -25.5998 -6356.83
+184.481 -30.0248 -5586.61
+184.811 -30.2837 -5529.22
+184.869 -28.7973 -5656.35
+185.106 -29.0698 -5476.91
+182.816 -32.6331 -6734.95
+184.074 -28.2051 -8035.86
+184.335 -28.2416 -7504.98
+181.212 -29.6083 -2212.31
+181.432 -29.7471 -2242.48
+182.283 -27.038 -1835
+182.224 -27.2908 -1991.5
+182.323 -33.1864 -8325.28
+182.479 -33.336 -7079.79
+180.458 -32.1837 -3390.24
+179.834 -32.4772 -3310.42
+179.991 -32.1982 -3034.19
+179.845 -31.4773 -2892
+180.001 -31.6828 -3205.39
+179.87 -33.6637 -2197.73
+179.924 -33.8486 -1580.29
+180.39 -32.3993 -2812.5
+180.086 -32.718 -3039.68
+180.34 -32.6033 -2346.3
+179.297 -33.3997 -2567.47
+179.358 -33.1233 -3165.8
+184.283 -29.1193 -6150.13
+184.436 -29.3131 -5696.43
+183.82 -30.8659 -5914.79
+183.958 -31.1239 -5552.77
+183.562 -29.6501 -6866.57
+183.612 -29.8743 -8310.46
+183.127 -30.6097 -8338.89
+183.317 -30.4684 -8757.18
+182.721 -32.2092 -8417.39
+182.916 -32.3912 -6460.26
+183.233 -31.4055 -6482.46
+183.403 -31.6344 -5838.95
+183.722 -28.4558 -4967.86
+181.216 -29.8755 -1582.29
+182.556 -26.9926 -2016.64
+184.709 -26.7352 -6929.22
+185.003 -26.7587 -5380.36
+183.527 -30.8306 -6672
+183.596 -31.0501 -6049.21
+181.371 -26.9998 -2459.82
+181.452 -26.774 -2368.76
+180.902 -31.1016 -1375.34
+184.465 -29.0592 -5728.25
+184.714 -29.0854 -5591.19
+182.552 -31.5579 -7141.9
+184.928 -27.4566 -5729.24
+185.285 -27.3748 -4771.28
+184.601 -27.5013 -6561.46
+184.704 -27.2286 -6264.16
+187.71 -30.0782 -5762.21
+188.111 -30.3789 -5768.95
+186.082 -33.0047 -5656.21
+186.493 -33.3004 -5628.73
+182.303 -30.6514 -4016.15
+180.247 -34.2562 -3235.23
+180.289 -33.7923 -2298.91
+181.459 -31.2943 -1453.43
+181.511 -31.4522 -2281.07
+181.033 -31.8551 -768.04
+181.159 -31.7623 -387.33
+183.447 -25.5877 -859.77
+183.155 -25.9551 -1362.13
+183.292 -25.951 -1587.74
+183.279 -25.5681 -644.03
+183.316 -25.7089 -1153.34
+181.61 -32.3238 -4331.67
+181.714 -32.4428 -5191.44
+181.297 -32.8915 -4436.4
+181.424 -32.9729 -5157.29
+182.001 -31.4256 -5165.59
+182.066 -31.5401 -5490.12
+182.357 -30.9644 -4520.14
+181.413 -33.4655 -5883.79
+181.18 -32.8144 -3108.33
+181.615 -32.5898 -4257.6
+181.486 -32.2149 -3668.97
+181.25 -33.8439 -5397.63
+181.094 -33.2494 -3993.11
+181.238 -33.3455 -4602.92
+181.251 -33.1912 -4680.76
+181.249 -33.0339 -4507.7
+182.628 -29.9175 -4212.39
+182.039 -31.0039 -3780.88
+182.076 -31.1677 -4438.94
+181.926 -31.2884 -4379.08
+182.114 -31.3211 -5448.16
+181.616 -31.9009 -3981.4
+181.823 -31.9556 -4415.28
+181.051 -32.8717 -3082.87
+181.092 -32.9991 -3651.61
+181.174 -32.9221 -3772.25
+181.317 -32.2602 -3094.98
+181.352 -32.103 -2772.68
+181.264 -32.4253 -3193.01
+181.442 -32.3673 -3981.73
+182.506 -30.2746 -4048.75
+182.692 -30.2989 -4624.08
+180.89 -33.7186 -3271.77
+181.047 -33.7901 -4675.1
+181.145 -31.8878 -1086.69
+181.21 -31.9982 -1713.31
+181.39 -31.9259 -2828.29
+181.531 -32.0604 -3462.78
+181.644 -31.5708 -3281.28
+181.702 -31.4396 -3444.33
+181.775 -31.3403 -3592.89
+181.854 -31.4258 -4321.96
+182.01 -30.8386 -3307.58
+182.156 -30.745 -3693.28
+182.189 -30.9007 -4037.72
+180.594 -33.4027 -2973.68
+180.786 -33.4317 -3098.8
+180.975 -33.1597 -3346.1
+180.921 -33.3028 -3457.65
+181.947 -30.5091 -2921.46
+182.007 -30.343 -2834.04
+181.982 -30.6762 -3144.01
+182.123 -30.591 -3469.24
+182.169 -29.9901 -2971.65
+182.314 -30.2496 -3645.27
+182.434 -30.1118 -3929.2
+181.57 -30.9014 -1435.28
+181.665 -31.0547 -2252.56
+181.749 -31.2243 -3351.62
+181.888 -31.1134 -3589.26
+181.119 -32.5362 -2522.07
+180.898 -33.0612 -2865.13
+181.007 -33.0635 -3420.27
+181.11 -33.1167 -3949.51
+181.338 -31.5117 -955.03
+181.452 -31.6373 -2660.33
+181.483 -31.7934 -3128.1
+181.63 -31.7236 -3759.3
+181.838 -30.2567 -1842.57
+181.976 -30.1889 -2281.57
+182.133 -30.2286 -3079.43
+182.198 -30.3668 -3416.22
+181.396 -30.8939 -1021.1
+181.504 -30.7655 -1066.58
+181.639 -30.6368 -1522.03
+181.651 -30.7898 -1908.88
+180.993 -32.4603 -1451.72
+181.089 -32.3842 -1919.51
+181.038 -32.2254 -1135.18
+181.18 -32.2948 -2432.28
+180.74 -32.9182 -1535.93
+180.85 -32.9737 -2448.3
+180.892 -32.8758 -2473.05
+180.963 -32.9737 -2904.16
+181.607 -30.4889 -975.01
+181.749 -30.4834 -1913.01
+181.816 -30.7676 -2629.01
+181.827 -30.6119 -2523.32
+180.523 -33.2343 -1873.85
+180.675 -33.1312 -2074.98
+180.721 -33.2772 -2816.69
+180.828 -33.1605 -2953.61
+180.968 -31.9762 -889.15
+181.084 -31.9579 -845.01
+181.071 -32.0711 -1092.98
+181.194 -32.1612 -2164.68
+181.343 -31.2202 -840.11
+181.459 -31.1287 -1232.55
+181.593 -31.205 -2273.75
+181.632 -31.3281 -2832.61
+181.269 -31.4221 -61.34
+181.373 -31.4019 -943.89
+180.735 -32.556 -592.2
+180.861 -32.636 -1159.39
+180.793 -32.7766 -1450.89
+180.953 -32.7606 -2360.9
+181.705 -30.2496 -964.03
+181.749 -30.1476 -1113.94
+181.734 -30.3479 -1625.16
+181.852 -30.3863 -2240.57
+180.854 -32.4789 -710.9
+180.972 -32.5534 -1571.57
+181.768 -29.8652 -849.78
+181.864 -29.9486 -1787.1
+181.821 -30.0598 -1540.4
+181.865 -30.1425 -1729.48
+180.663 -33.0169 -1573.52
+180.774 -33.0411 -2200.62
+181.379 -31.0219 -768.99
+181.492 -31.0008 -1126.38
+181.64 -30.4028 -1166
+181.632 -30.3142 -793.51
+181.467 -30.6424 -363.12
+181.513 -30.5397 -502.22
+180.496 -32.843 -1487.87
+180.629 -32.8109 -773.41
+180.679 -32.6733 -619.49
+181.302 -31.3237 -562.18
+181.118 -31.6265 -817.54
+181.261 -31.6368 -924.34
+181.248 -31.8657 -1564.53
+181.33 -31.7687 -1914.85
+182.313 -29.9946 -3551.38
+182.466 -29.9384 -3840.86
+182.426 -29.787 -3604.4
+182.551 -29.8372 -3957.52
+182.237 -29.8072 -2945.5
+182.238 -29.9128 -3175.34
+182.335 -29.8884 -3461.19
+182.089 -29.5608 -1723.99
+182.215 -29.4322 -2090.03
+182.406 -29.4455 -3019.95
+181.938 -30.0632 -2036.54
+182.026 -29.9456 -2444.47
+182.052 -29.7923 -2147.49
+182.144 -29.8868 -2791.2
+182.339 -28.4095 -1279.54
+182.467 -28.5274 -1743.72
+182.416 -28.2678 -1443.51
+182.569 -28.2126 -2154.15
+182.286 -29.0426 -1609.56
+182.415 -29.1296 -2324.13
+182.318 -29.292 -2293.84
+182.537 -29.2905 -3244.82
+182.394 -28.9583 -1875.69
+182.41 -28.8113 -1611.53
+182.554 -28.8793 -2284.22
+182.584 -29.0297 -2702.02
+181.914 -29.7767 -1681.75
+181.964 -29.7076 -1551.67
+182.046 -29.6737 -1614.47
+182.17 -29.6832 -2351.61
+181.739 -29.7627 -1199.92
+181.823 -29.7838 -1212.92
+181.861 -29.8452 -1643.51
+181.943 -29.859 -2016.14
+181.913 -29.5077 -395.06
+181.971 -29.6263 -1017.19
+181.922 -29.3715 -874.89
+182.043 -29.4149 -1261.64
+182.522 -27.9737 -1425.48
+182.557 -28.0826 -1851.18
+182.002 -29.3072 -285.57
+182.028 -29.1947 -218.03
+182.132 -29.3 -721.19
+182.197 -29.1491 -1322.23
+182.289 -28.5812 -712.69
+182.429 -28.6732 -1645.95
+182.556 -28.752 -2056.29
+182.589 -28.6264 -2365.88
+182.063 -29.0771 -900.15
+182.167 -29.0151 -1273.1
+182.174 -28.9215 -1138.77
+182.257 -28.9607 -1392.17
+182.276 -28.7362 -668.78
+182.275 -28.8681 -961.74
+183.89 -27.5884 -4848.08
+183.721 -26.384 -3333.72
+183.944 -26.455 -4003.95
+183.923 -26.6765 -4179.54
+184.096 -26.7482 -5430.54
+184.065 -26.2874 -4412.82
+184.266 -26.3124 -5596.63
+182.583 -29.731 -3915.84
+182.737 -29.7088 -3849.54
+182.656 -29.8138 -4114.08
+182.782 -29.8675 -4377.79
+183.33 -28.4741 -3510.86
+183.374 -28.6708 -4167.2
+183.574 -27.2439 -3608.59
+183.604 -26.8238 -2629.34
+182.952 -29.0012 -3284.85
+182.745 -29.5644 -3516.38
+182.907 -29.6153 -3596.57
+183.575 -26.2628 -2179.67
+183.723 -26.1966 -3542.52
+183.883 -26.2655 -3720.71
+183.991 -26.1573 -4172.69
+182.856 -28.7436 -3112.94
+182.973 -28.5826 -3092.2
+183.23 -27.4539 -2201.73
+183.625 -27.4587 -4168.4
+183.618 -27.6248 -4496.84
+183.718 -26.0423 -3559.9
+183.857 -26.1066 -4064.05
+183.716 -25.9046 -3511.92
+183.198 -27.8935 -3267.16
+183.243 -27.7271 -3110.47
+182.583 -29.1552 -3036.75
+182.681 -29.2166 -3132.57
+182.678 -29.1185 -3043.24
+182.774 -29.0373 -3093.59
+183.421 -26.2896 -2319.71
+183.462 -26.1606 -2106.16
+183.522 -26.4085 -2854.68
+183.372 -26.0612 -1960.8
+183.448 -25.9289 -2049.7
+183.493 -26.0501 -2435.26
+183.592 -26.1152 -2704.21
+182.829 -28.4379 -2830.04
+182.941 -28.3312 -3087.63
+182.983 -28.1046 -3046.58
+183.023 -28.2381 -3208.17
+183.436 -26.8144 -1893.9
+183.53 -26.6858 -2532.77
+183.707 -26.6912 -3478.99
+183.782 -26.5542 -3518.25
+182.691 -28.7074 -2697.05
+182.695 -28.8172 -2752.09
+182.688 -28.9315 -2674.07
+182.822 -28.9001 -3056.26
+182.813 -28.1335 -2765.38
+182.868 -27.9915 -2712.13
+183.022 -27.9233 -2987.79
+183.144 -28.0444 -3209.79
+183.105 -27.3246 -1825.33
+183.313 -27.3056 -1733.6
+183.36 -27.1349 -2229.54
+183.499 -27.161 -2883.34
+183.096 -27.683 -3015.89
+183.177 -27.586 -2602.64
+183.323 -27.5733 -2784.34
+183.429 -27.6813 -3160.81
+182.52 -28.3741 -1838.74
+182.685 -28.3345 -2504.45
+182.643 -28.4856 -2385.03
+182.759 -28.5978 -2776.91
+183.352 -26.9595 -2312.31
+183.499 -27.0493 -2677.46
+183.51 -26.926 -1972.27
+182.78 -27.9101 -2395.98
+182.877 -27.8496 -2560.5
+182.987 -27.7646 -2767.21
+183.109 -27.7985 -3035.1
+182.666 -28.1113 -2259.53
+182.709 -28.2158 -2516
+182.815 -28.2811 -2839.25
+182.915 -28.2209 -3007.15
+182.937 -27.4207 -2053.37
+182.947 -26.7147 -1362.54
+183.27 -26.5351 -2035.71
+183.357 -26.6747 -1977.41
+182.838 -27.7022 -2333.9
+182.979 -27.6351 -2667.76
+182.99 -27.5348 -2582.81
+183.067 -27.5841 -2636.09
+183.073 -27.0428 -2166.19
+183.171 -26.9268 -2136.31
+183.228 -27.0477 -2242.45
+183.185 -27.1743 -2230.67
+183.097 -26.538 -1467.59
+183.161 -26.3816 -1771.78
+183.354 -26.4123 -2574.91
+183.166 -26.2123 -1908.28
+183.285 -26.2985 -2478.69
+183.221 -26.0762 -1652.73
+183.322 -26.1848 -1941.84
+182.966 -26.8198 -1851.51
+183.024 -26.9094 -2053.24
+182.915 -26.8945 -1541.64
+182.946 -26.9777 -1770.14
+182.723 -27.1644 -1589.37
+182.918 -27.0911 -2370.7
+182.525 -27.8344 -1267.07
+182.656 -27.895 -1879.78
+182.627 -28.0145 -2048.68
+182.737 -28.0093 -2311.21
+182.648 -27.7231 -1795.38
+182.76 -27.816 -2163.87
+182.579 -27.5743 -1777.64
+182.734 -27.5761 -2011.33
+182.66 -27.4511 -1749.31
+182.776 -27.3445 -1754.01
+182.797 -27.4695 -2268.25
+182.88 -27.5549 -2503.54
+181.199 -33.6847 -5289.24
+181.371 -33.7219 -5531.19
+181.788 -33.2379 -6791.88
+181.968 -33.1333 -7406.19
+181.61 -33.3509 -6081.39
+181.98 -31.6855 -4869.77
+181.981 -31.8681 -4655.07
+182.136 -31.9799 -5527.19
+182.061 -32.133 -5562.24
+182.147 -32.2886 -5663.21
+181.881 -32.4285 -5703.58
+182.048 -32.4239 -5637.39
+182.226 -31.5228 -5844.35
+182.339 -31.647 -5915.76
+182.138 -31.4363 -5621.28
+182.286 -31.3761 -5524.66
+182.251 -31.2086 -4955.8
+182.456 -31.2331 -5344.15
+182.515 -31.0516 -5283.27
+182.651 -31.1623 -5677.61
+181.783 -32.295 -5147.38
+181.965 -32.2805 -5294.93
+181.851 -32.1274 -4252.7
+181.969 -32.0096 -4790.19
+182.806 -30.1678 -5114.3
+182.883 -30.3332 -4965.43
+184.142 -26.4286 -4921.3
+184.123 -26.5932 -5206.9
+183.974 -26.851 -4660.18
+184.009 -27.0237 -5408.64
+183.951 -27.2145 -5257.87
+184.113 -27.152 -6206.46
+182.871 -29.7582 -3993.87
+182.94 -29.8529 -4450.26
+182.997 -29.7512 -4428.45
+183.143 -29.6502 -4988.23
+182.724 -30.0179 -4659.9
+182.929 -30.0106 -5058.45
+183.211 -28.3364 -3418.15
+183.377 -28.287 -3800.93
+183.137 -28.9358 -3689.27
+183.34 -28.9394 -3997.34
+183.743 -27.2474 -3974.29
+183.803 -27.0902 -3812.54
+183.861 -27.3324 -4325.07
+183.979 -27.3609 -4992.73
+183.713 -27.759 -4609.92
+183.771 -27.6436 -4735.99
+183.098 -29.1296 -3495.1
+183.255 -29.0604 -4003.3
+183.17 -29.3061 -4276.43
+183.265 -29.1841 -4350.68
+181.491 -33.6204 -5984.36
+181.519 -33.7394 -6215.34
+182.526 -30.8854 -5218.27
+182.717 -30.7752 -5992.44
+182.576 -30.4248 -4436.65
+182.682 -30.5793 -5456.67
+182.897 -29.1437 -3234.83
+182.979 -29.2831 -3351.06
+182.828 -29.4234 -3344.16
+183.048 -29.4575 -3936.39
+183.188 -28.6253 -3577.35
+183.253 -28.7893 -3917.98
+183.449 -27.2409 -2390.46
+183.493 -27.3652 -3084.73
+183.637 -27.3409 -4226.89
+183.751 -27.3895 -4507.32
+183.105 -28.1627 -3219.4
+183.245 -28.1739 -3478.38
+183.31 -28.0044 -3657.99
+183.447 -28.1181 -4047.7
+181.803 -32.5712 -5709.46
+183.346 -25.839 -1340.26
+183.459 -25.7672 -1602.64
+183.587 -25.841 -2172.86
+183.59 -25.9796 -3151.82
+180.582 -32.9325 -1013.27
+180.539 -33.062 -1046.16
+180.934 -32.3489 -818.61
+180.947 -32.1012 -743.98
+183.069 -28.3484 -3338.73
+183.13 -28.2527 -3374.03
+182.988 -28.4394 -3205.53
+183.125 -28.4725 -3336.39
+182.617 -29.4694 -3405.3
+182.698 -29.33 -3306.97
+182.77 -29.1539 -3113.11
+182.811 -29.2573 -3119.54
+182.105 -30.4645 -3290.82
+182.259 -30.503 -3874.74
+182.448 -30.5473 -4285.61
+182.383 -30.3951 -3890.43
+183.523 -28.3821 -3910.39
+183.53 -28.56 -4082.87
+181.417 -33.2777 -5848.19
+181.413 -33.1166 -5482.24
+181.445 -32.8305 -5028.83
+181.604 -32.7582 -5472.51
+181.591 -32.9164 -5394.59
+181.744 -33.0439 -5857.91
+182.372 -31.501 -5614.63
+182.468 -31.4045 -5633.58
+181.787 -31.6406 -4356.22
+181.8 -31.794 -4335.73
+181.781 -31.5235 -3899.85
+181.91 -31.5416 -4839.67
+183.523 -28.2452 -4229.34
+183.642 -28.2863 -4519.17
+183.588 -28.0271 -4450.14
+183.626 -28.1525 -4658.91
+184.164 -26.1163 -4829.59
+183.445 -26.5453 -2470.22
+183.618 -26.5459 -3138.85
+184.308 -26.507 -5980.92
+184.505 -26.3868 -7092.56
+183.091 -26.7828 -2207.83
+183.268 -26.8045 -2231.82
+184.747 -26.9519 -6073.44
+185.004 -27.1223 -5637.76
+183.367 -27.8409 -3530.64
+183.479 -27.9476 -3990.72
+182.468 -29.6161 -3488
+182.631 -29.6175 -3662.56
+183.625 -27.1278 -3182.47
+183.666 -26.9738 -3068.94
+182.575 -30.027 -4225.82
+182.626 -30.1495 -4459.05
+182.336 -30.8102 -4254.57
+182.498 -30.7116 -4512.76
+182.079 -30.0906 -2728
+182.24 -30.1116 -3434.14
+183.053 -26.6548 -1517.54
+183.192 -26.6634 -1730.97
+184.433 -26.1581 -6211.29
+183.742 -28.0317 -4874.03
+183.821 -27.876 -5050.97
+184.158 -26.8894 -6085.27
+184.207 -27.0411 -6842.24
+182.748 -30.4289 -4616.49
+182.907 -30.5005 -5377.23
+181.716 -30.8928 -2280.84
+181.857 -30.9449 -2908.52
+183.37 -27.446 -2559.6
+183.481 -27.5246 -3512.4
+183.757 -27.5255 -4638.28
+183.882 -27.4495 -4513.46
+182.279 -29.5728 -2816.93
+182.316 -29.6933 -3234.78
+183.539 -28.741 -4606.24
+183.685 -28.6532 -5055.61
+182.155 -31.6366 -5597.67
+182.186 -31.7928 -5297.78
+180.509 -32.7116 -2249.43
+180.564 -32.5395 -2289.27
+183.358 -29.6062 -5265.42
+183.361 -29.777 -5895.62
+182.982 -30.1969 -5304.74
+183.154 -30.1223 -6035.73
+183.543 -27.7918 -4212.79
+183.648 -27.9055 -4495.17
+183.846 -25.9638 -3788.5
+183.989 -26.0207 -3661.46
+183.085 -31.2389 -8118.2
+183.322 -31.1742 -7044.6
+181.552 -29.273 -1763.9
+181.757 -29.2018 -1290.45
+185.151 -27.6614 -5669.28
+185.194 -27.948 -5695.56
+182.97 -28.8697 -3489.03
+183.063 -28.7578 -3529.26
+182.215 -31.0579 -4364.68
+182.359 -31.1031 -4662.25
+183.971 -28.4231 -7515.59
+184.175 -28.3968 -8036.76
+183.787 -26.83 -3669.45
+183.848 -26.9537 -4334.36
+182.514 -31.7227 -7612
+182.917 -27.2498 -2584.73
+183.04 -27.1742 -2472.83
+181.211 -30.1322 -1569.85
+181.393 -30.2165 -939.21
+180.723 -30.911 -1942.01
+180.941 -30.8881 -1823.54
+180.601 -31.4401 -2152.02
+180.828 -31.4395 -2160.76
+180.519 -31.712 -2295.53
+180.676 -31.871 -2243.42
+180.683 -32.1934 -3003.24
+182.796 -26.3036 -1495.17
+182.767 -26.4828 -1503.63
+181.751 -28.7927 -2115.85
+181.861 -28.9253 -1670.79
+182.479 -27.2043 -1297.1
+182.619 -27.3166 -1349.73
+181.45 -29.5065 -2094.69
+181.634 -29.4668 -1387.73
+180.347 -32.7997 -2778.61
+180.427 -32.9505 -1045.2
+180.147 -32.4455 -3368.89
+180.246 -32.2624 -2833.21
+179.96 -32.9727 -3189.57
+180.226 -32.9514 -2806.72
+179.784 -31.9359 -3110.77
+180.057 -31.9399 -3143.38
+180.139 -33.1492 -2472.4
+180.363 -33.1082 -1507.93
+180.649 -33.5777 -2757.37
+180.756 -33.6851 -3182.65
+182.879 -30.6557 -6261.05
+182.962 -30.8136 -7121.61
+182.96 -26.4191 -1588.05
+182.992 -26.2556 -1583.94
+181.388 -29.9677 -1511.98
+181.55 -30.0486 -1176.67
+182.071 -28.3976 -1405.54
+182.153 -28.5469 -872.36
+179.598 -34.3534 -1299.76
+182.183 -32.856 -8107.55
+182.216 -32.4457 -6901.96
+180.848 -33.5848 -3288.44
+181.022 -33.6272 -3962.91
+180.452 -33.5214 -2223.72
+182.205 -34.0143 -6634.7
+180.63 -31.1632 -2282.04
+180.785 -31.2906 -1990.12
+182.494 -33.6818 -6498.73
+182.728 -33.7546 -6124.48
+183.194 -32.3537 -6286.83
+183.387 -32.151 -6175.64
+181.839 -33.7929 -8232.5
+181.968 -32.5596 -6069.49
+182.524 -32.0665 -9005.01
+182.542 -31.8732 -7934.37
+181.836 -33.6011 -7938.76
+182.019 -33.5047 -8776.97
+180.767 -33.7975 -3141.88
+183.248 -30.8151 -8541.23
+183.357 -30.9831 -7348.66
+181.438 -32.5248 -4080.57
+181.564 -32.4542 -4636.67
+180.591 -32.3543 -2698.61
+180.704 -32.4546 -592.93
+182.232 -33.6322 -7531.6
+182.425 -33.5075 -6827.74
+180.304 -33.2816 -1259.43
+180.43 -33.3785 -2115.98
+181.028 -32.6538 -2286.22
+181.077 -32.7582 -2784.41
+181.611 -35.5642 -6714.99
+181.924 -35.5416 -6478.2
+181.747 -35.7827 -6287.59
+181.917 -36.0218 -5910.53
+181.723 -36.2845 -5460.43
+182.128 -36.2758 -5648.03
+182.248 -36.0086 -5858.99
+182.269 -36.6014 -5077.65
+182.424 -36.355 -5642
+181.896 -36.5194 -4676.55
+181.864 -36.8349 -4283.98
+181.658 -37.1442 -3999.69
+181.97 -37.1385 -4094.34
+181.273 -37.2005 -3734.5
+181.517 -37.3879 -3608.19
+180.586 -35.8466 -4809.03
+180.02 -36.491 -3138.14
+180.117 -36.7236 -3747.23
+180.569 -36.3495 -4752
+180.217 -35.8843 -3269.82
+180.37 -35.6285 -3995.12
+179.964 -36.2516 -2889.37
+180.248 -36.3075 -3602.89
+180.524 -35.3923 -4714.6
+179.965 -36.0238 -2662.38
+179.716 -36.1446 -2719.2
+179.668 -36.4263 -2613.01
+179.668 -34.9746 -2560.77
+179.933 -35.4588 -2828.69
+180.07 -35.6491 -2830.79
+179.53 -36.0101 -2554.61
+179.748 -35.9218 -2509.24
+179.392 -35.389 -2592.31
+179.664 -35.4543 -2726.52
+182.402 -34.6705 -5666.77
+182.381 -34.424 -6078.93
+180.355 -34.4436 -3525.4
+180.361 -34.6482 -3644.72
+179.965 -34.6262 -3023.63
+180.194 -34.5782 -3441.97
+179.747 -34.7692 -2811.65
+179.933 -34.8694 -3059.88
+179.869 -34.4003 -2543.57
+180.113 -34.42 -3213.91
+179.675 -34.5827 -2050.11
+181.498 -36.6003 -4215.42
+181.131 -36.8625 -3921.26
+181.485 -36.9285 -4147.61
+181.392 -35.7972 -6795.62
+180.987 -36.0773 -6057.12
+181.087 -35.8757 -6204.02
+181.255 -36.052 -5746.4
+181.567 -36.0361 -6000.2
+180.829 -36.701 -4441.32
+181.099 -36.4992 -4617.38
+180.764 -36.9408 -4183.08
+180.936 -37.1223 -3441.68
+180.321 -36.5357 -4046.8
+180.584 -36.5972 -5113.22
+180.793 -36.4872 -5020.9
+180.885 -36.291 -5592.56
+180.228 -36.8972 -4564.04
+180.382 -36.7467 -4929.38
+180.475 -36.9496 -4805.71
+180.609 -36.7884 -4732.39
+182.403 -36.1765 -5724.73
+182.701 -36.2258 -5663.47
+182.611 -36.4989 -5433.19
+182.956 -36.5263 -5438.89
+182.046 -35.287 -6232.91
+182.288 -35.5018 -6030.66
+182.338 -35.196 -5905.74
+181.898 -34.6442 -7007.15
+182.142 -34.7777 -6236.1
+182.38 -34.9293 -5930.85
+182.662 -34.8191 -5503.34
+181.714 -34.1165 -7175.36
+181.75 -34.3118 -7598.55
+181.739 -34.4854 -7585.52
+181.935 -34.422 -6881.89
+182.136 -34.3326 -6333.14
+182.15 -34.5456 -6416.72
+181.26 -34.4793 -5869.94
+181.426 -34.4337 -5914.56
+181.561 -34.5355 -7184.04
+181.587 -34.384 -6891.47
+181.389 -34.579 -6360.78
+181.519 -34.7135 -6918.2
+181.69 -34.6294 -7859.01
+181.723 -34.7787 -7056.46
+181.491 -34.098 -6011.58
+181.563 -33.9668 -6680.37
+181.732 -33.9439 -7621.83
+181.944 -34.0147 -8095.65
+180.794 -34.9403 -5186.74
+181.026 -34.8472 -5580.97
+180.425 -34.2677 -3485.3
+180.601 -34.3554 -3707.87
+180.518 -34.0016 -3108.53
+180.561 -34.1621 -3489.9
+180.372 -34.1179 -3050.09
+180.474 -33.8439 -2720.66
+180.648 -33.8898 -3049.23
+180.327 -33.9552 -2632.32
+179.798 -34.1803 -1611.89
+179.968 -34.032 -1876.93
+180.031 -34.2268 -2701
+180.846 -34.753 -4804.81
+180.884 -34.5959 -4550.14
+180.938 -34.4441 -4752.6
+181.083 -34.5542 -5117.32
+181.109 -34.2379 -5734.56
+181.165 -34.1068 -5194.06
+181.11 -34.3916 -5284.07
+181.291 -34.3188 -5693.45
+181.213 -33.9875 -5060.51
+181.318 -34.0917 -5295.93
+181.38 -34.8632 -6841.87
+181.572 -34.8942 -6926.31
+180.17 -34.7604 -3328.21
+180.368 -34.8392 -3417.29
+180.559 -34.9028 -3952.51
+180.601 -35.1251 -4557.44
+180.894 -33.8279 -3639.24
+180.969 -33.9172 -4136.21
+181.107 -33.9087 -4682.18
+181.063 -34.0168 -4665.89
+181.928 -34.2299 -7341.73
+182.104 -34.159 -6871.07
+180.748 -34.4883 -4150.5
+180.824 -34.3367 -4268.28
+180.931 -34.212 -4299.17
+180.98 -34.3246 -5076.17
+182.089 -35.7681 -6082.05
+182.428 -35.7955 -5886.23
+182.571 -35.3386 -5777.15
+182.675 -35.5887 -5772.18
+180.628 -35.6063 -5155.4
+180.797 -35.4771 -5560.16
+180.887 -35.7052 -5951.31
+180.751 -34.1921 -3823.11
+180.893 -34.057 -4069.72
+181.031 -34.1238 -4510.36
+180.959 -35.325 -5764.25
+181.232 -35.3314 -7504.5
+181.324 -35.545 -7407.81
+181.22 -34.823 -6474.28
+181.205 -34.9905 -6207.28
+181.276 -35.1548 -7436.16
+181.439 -35.0513 -7266.78
+180.997 -34.6913 -5234.98
+181.146 -34.706 -6281.13
+181.24 -34.606 -6183.3
+181.316 -34.7143 -6585.6
+181.256 -34.1893 -5521.55
+181.399 -34.2057 -5688.96
+181.456 -34.3138 -6068.14
+181.568 -34.2393 -6393.66
+181.733 -34.9359 -6573.44
+181.906 -34.8768 -6682.74
+181.829 -35.1011 -6749.5
+182.11 -35.0233 -6175.73
+180.745 -35.2911 -5395.86
+180.856 -35.1448 -5643.68
+180.99 -35.0187 -5885.07
+181.086 -35.1647 -6070.45
+180.697 -34.0379 -3371.26
+180.809 -33.9191 -3495.33
+180.549 -34.5525 -3952.26
+180.707 -34.6517 -4181.06
+180.536 -34.7287 -3883.2
+180.685 -34.7942 -4454.13
+181.633 -35.0347 -6953.3
+181.592 -35.191 -6951.81
+181.751 -35.3432 -6563.24
+179.459 -35.6465 -2637.21
+179.554 -35.8383 -2547.79
+179.767 -35.6866 -2609.39
+179.953 -35.8328 -2476.03
+180.073 -33.5476 -1953.75
+180.091 -33.7334 -1694.43
+182.455 -34.0333 -6135.27
+182.552 -33.8654 -6310.27
+181.406 -35.2191 -7443.93
+181.488 -35.367 -7074.03
+181.06 -35.516 -6790.09
+181.151 -35.6891 -7586.55
+182.287 -36.9919 -4156.81
+182.668 -36.7892 -5293.12
+178.799 -33.9576 -2807.37
+178.977 -33.7489 -3065.9
+180.207 -35.4243 -2961.06
+180.324 -35.1974 -3612.56
+180.271 -33.4538 -959.08
+180.275 -33.6269 -1655.49
+180.13 -33.9062 -2114.66
+180.179 -34.0824 -2693.79
+182.956 -33.8285 -5761.57
+183.125 -34.0175 -5662.99
+182.634 -35.0961 -5668.27
+179.522 -34.1077 -2340.43
+179.745 -33.9682 -2182.07
+180.72 -36.0947 -5340.86
+180.855 -35.9165 -5955.11
+181.308 -32.7517 -2978.66
+181.451 -32.68 -2887.16
+181.38 -33.9725 -5626.36
+181.451 -33.8452 -5788.55
+181.174 -33.5121 -4967.26
+181.328 -33.6005 -5814.75
+182.118 -32.553 -6318.7
+182.285 -32.6411 -7917.75
+181.739 -32.6918 -5640.26
+181.786 -32.8408 -5421
+180.46 -33.6865 -2403.65
+180.625 -33.7468 -2830.67
+180.163 -35.0006 -3181.58
+180.404 -35.0074 -3520.48
+179.503 -33.862 -3193.17
+179.727 -33.7895 -2390.36
+182.406 -32.459 -8576.76
+182.643 -32.436 -8136.31
+181.119 -36.2398 -5054.35
+181.372 -36.2853 -5014.64
+179.326 -36.5005 -2440.81
+179.454 -36.6939 -2430.92
+178.927 -35.8705 -2510.36
+182.302 -32.3211 -7244.57
+182.475 -32.272 -8893.36
+181.89 -32.6961 -5687.53
+182.071 -32.6852 -6144.47
+181.639 -33.5249 -6372.08
+181.817 -33.4209 -7310.21
+181.662 -32.1749 -4189.97
+181.698 -32.0434 -4177.54
+179.88 -35.0952 -2990.38
+180.057 -35.2435 -3078.69
+181.167 -32.6859 -2688.95
+181.292 -32.601 -3066.96
+183.055 -34.5172 -5710.72
+183.31 -34.7388 -5217.91
+183.897 -33.8489 -5291
+183.869 -34.1817 -5435.07
+182.381 -31.795 -6652.69
+182.341 -31.9386 -6406.96
+180.161 -36.1126 -3649.08
+180.417 -36.0969 -4232.19
+182.94 -34.7177 -5566.29
+182.969 -34.9678 -5479.73
+180.973 -33.4728 -3693.62
+181.078 -33.3772 -3811.37
+182.442 -32.8287 -8539.88
+182.55 -32.6391 -8421.11
+181.55 -33.0449 -5747.1
+181.587 -33.1787 -6060.5
+182.004 -33.6754 -8543.23
+182.093 -33.8294 -7753.59
+181.98 -32.8081 -5910.02
+181.971 -32.9556 -6795.39
+179.632 -35.2201 -2785.74
+179.831 -35.2953 -2870.8
+178.386 -35.7205 -2135.25
+178.728 -35.688 -2274.43
+184.496 -24.9341 -4384.81
+184.815 -24.8918 -7532.9
+184.548 -25.336 -4778.1
+184.769 -25.3784 -6717.21
+184.596 -25.5318 -5852.57
+184.504 -24.0909 -5463.41
+184.664 -24.342 -6942.05
+184.294 -25.0947 -4703.18
+184.482 -25.1618 -4771.68
+184.607 -24.6587 -5949.91
+184.106 -24.7124 -3885.38
+184.221 -24.8848 -4230.85
+184.078 -25.0415 -3437.46
+184.137 -25.2602 -3334.89
+184.363 -24.259 -4825.45
+184 -24.057 -1559.82
+184.26 -24.0219 -3554.93
+183.951 -24.5695 -1565.7
+183.739 -25.634 -1802.08
+183.793 -25.4808 -1292.32
+184.015 -24.8599 -2178.63
+183.947 -25.3668 -3233.05
+183.868 -24.2996 -1047.9
+184.027 -24.3814 -1925.37
+183.782 -24.0725 -747
+183.843 -23.9159 -897.56
+183.933 -25.1757 -2994.2
+183.809 -24.6783 -1277
+183.946 -24.7282 -1974.41
+183.685 -24.7856 -1184.3
+183.17 -24.4969 -985.5
+183.409 -24.6829 -969.89
+183.509 -24.5854 -747
+183.175 -24.7629 -1111.33
+183.319 -24.7831 -1011.02
+183.628 -24.1369 -1014.69
+183.749 -24.2182 -848.73
+183.548 -24.7186 -842.2
+183.657 -24.6301 -846.18
+183.771 -24.5268 -851.31
+183.865 -24.4286 -932.34
+183.3 -24.3953 -874.05
+183.458 -24.4491 -793.16
+183.636 -24.2616 -944.53
+183.875 -24.1755 -990.35
+183.211 -24.891 -1454.85
+183.372 -24.9075 -768.2
+183.518 -25.4188 -721.02
+183.626 -25.5353 -1041.87
+183.442 -25.0313 -726.1
+183.514 -24.9126 -732.3
+183.456 -24.8041 -797.92
+183.567 -24.8225 -831.13
+183.721 -24.3669 -747
+183.28 -25.0301 -811.55
+183.358 -25.1601 -546.35
+183.562 -24.3518 -747
+183.614 -24.4891 -747
+183.421 -24.3091 -771.18
+183.522 -24.2274 -1014.37
+183.434 -25.2906 -531.92
+184.602 -25.9424 -6577.59
+183.955 -25.5322 -3010.69
+184.394 -25.4934 -4361.72
+183.597 -25.6898 -1265.66
+183.721 -25.7715 -2446.03
+183.835 -25.8335 -3567.23
+183.839 -25.717 -3355.09
+183.929 -25.7723 -3439.57
+183.962 -25.8799 -3595.49
+183.856 -25.6096 -2773.55
+183.953 -25.6686 -3390.16
+184.079 -25.6095 -3357.77
+184.066 -25.7629 -3073.65
+184.184 -25.6794 -4257.51
+184.322 -25.6602 -4534.72
+184.125 -25.9231 -3908.82
+184.242 -25.7957 -4294.56
+184.33 -25.9576 -5028.93
+184.429 -25.7858 -4353.36
+182.436 -24.0413 -1997
+182.707 -24.0954 -1997
+183.846 -24.8299 -1582.73
+183.896 -24.989 -2460.47
+185.165 -24.8414 -5905.41
+185.424 -25.0939 -5378.25
+184.968 -25.4687 -5672.72
+185.285 -25.4812 -5075.33
+184.687 -25.1437 -5866.4
+185.013 -25.1827 -6199.35
+183.659 -25.4001 -1001.41
+183.766 -25.2806 -1439.71
+184.777 -24.0342 -7759.14
+185.068 -24.2382 -8029.63
+184.332 -24.7031 -4736.91
+184.392 -24.4801 -4669.06
+184.097 -25.4561 -3493.92
+184.22 -25.5544 -3446.85
+184.243 -25.4135 -3618.76
+184.356 -25.2935 -4567.52
+183.607 -25.0273 -1033.58
+183.281 -24.2376 -1160.33
+183.403 -24.1931 -1157.27
+183.253 -24.6518 -1247
+183.349 -24.5457 -1100.76
+184.988 -25.6903 -5239.8
+185.216 -25.8702 -3992.4
+184.469 -25.6419 -4958.92
+184.609 -25.7171 -5731.67
+183.622 -24.893 -877.8
+183.739 -24.9351 -1642.78
+183.982 -24.2276 -1874.46
+184.14 -24.2245 -3568.84
+183.516 -25.1569 -586.01
+183.592 -25.2851 -679.26
+183.649 -25.169 -831.94
+183.766 -25.0951 -1673.81
+184.171 -24.5402 -3997
+184.218 -24.3775 -3711.03
+183.102 -25.0264 -1268.84
+183.189 -25.1684 -972.63
+185.32 -24.5251 -6129.4
+185.496 -24.7868 -5403.16
+184.776 -25.7804 -5724.13
+184.896 -25.9416 -3351.85
+185.071 -26.1244 -4104.83
+185.067 -26.3991 -4339.43
+183.012 -25.1928 -962.07
+183.117 -25.2996 -859.11
+175.157 -41.8566 -1977.57
+175.216 -41.8323 -1745.99
+176.635 -41.5181 -1761.42
+176.762 -41.4476 -2043.19
+176.019 -41.5491 -1239.85
+175.246 -42.0269 -2481.44
+175.331 -42.0019 -2397.29
+175.349 -42.0599 -2434.86
+176.179 -41.6238 -2025.8
+176.219 -41.5656 -1892.57
+174.864 -41.8936 -1272.94
+174.97 -41.955 -1927.66
+175.264 -42.1162 -2563.85
+175.386 -42.1414 -2618.33
+175.456 -42.0674 -2262.19
+175.516 -42.1441 -2576.8
+175.407 -42.0034 -2455.44
+175.505 -41.9924 -2474.52
+175.587 -41.8929 -2443.26
+175.667 -41.8633 -2475.17
+175.572 -41.9482 -2482.5
+175.054 -42.0315 -2489.77
+175.09 -41.961 -2364.24
+175.131 -41.904 -2166.4
+175.194 -41.9544 -2294.32
+176.355 -41.4241 -1262.16
+176.446 -41.3871 -1321.71
+176.214 -41.4499 -1199.17
+176.17 -41.5088 -1402.02
+176.287 -41.4541 -1306.25
+176.871 -41.3728 -2077.77
+176.887 -41.4862 -2455.5
+176.503 -41.5354 -1783.12
+176.536 -41.4444 -1832.09
+175.943 -41.7394 -2188.82
+175.905 -41.7878 -2287.61
+175.982 -41.8095 -2330.67
+175.645 -41.8053 -2327.77
+175.709 -41.8149 -2362.65
+175.59 -41.7883 -2231.57
+175.625 -41.7587 -2009.07
+175.338 -41.8605 -1953.81
+175.36 -41.9537 -2350.09
+175.437 -41.9423 -1945.37
+175.94 -41.6808 -1897.91
+176.002 -41.6414 -1915.92
+176.03 -41.592 -1340.73
+176.09 -41.6224 -2015.9
+176.263 -41.6267 -2047.24
+176.299 -41.7 -1997.86
+176.359 -41.6248 -2046.07
+176.464 -41.6142 -1959.89
+176.27 -41.3974 -1094.49
+176.349 -41.3396 -1135.5
+176.052 -41.86 -2674.6
+176.077 -41.7998 -2200.69
+176.124 -41.8442 -2700.61
+175.747 -41.858 -2503.39
+175.773 -41.81 -2450.56
+175.817 -41.8528 -2565.03
+175.9 -41.8479 -2548.94
+176.264 -41.7858 -2646.18
+176.376 -41.7745 -2775.52
+176.423 -41.6935 -2655.62
+175.963 -41.5837 -1628.57
+175.206 -41.8902 -2039.97
+175.272 -41.8709 -1959.46
+175.256 -41.9182 -2147.59
+175.286 -41.9619 -2207.88
+175.668 -41.7289 -1711.26
+175.683 -41.771 -2126.35
+175.822 -41.5932 -1033.88
+175.859 -41.6188 -1454.4
+175.878 -41.6645 -1771.33
+175.89 -41.706 -1984.54
+175.735 -41.7779 -2214.02
+175.788 -41.7541 -2359.17
+175.84 -41.7991 -2395.31
+175.723 -41.7397 -1832.62
+175.76 -41.7053 -1772.46
+175.828 -41.6994 -2124.8
+175.865 -41.7472 -2232.55
+175.784 -41.6639 -1710.84
+175.831 -41.6543 -1975.17
+175.656 -41.6892 -1301.8
+175.705 -41.7004 -1528.27
+175.692 -41.6691 -1264.37
+175.732 -41.6683 -1229.46
+175.902 -41.5914 -1422.98
+175.924 -41.63 -1649.11
+175.59 -41.8348 -2387.67
+175.976 -41.8724 -2644.37
+176.025 -41.9274 -2667.26
+175.566 -42.0669 -2454.8
+175.669 -42.0584 -2475.08
+175.585 -42.2116 -2722.8
+175.397 -41.8543 -1952.07
+175.448 -41.8816 -2166.04
+175.519 -41.8573 -2267.07
+175.51 -41.9186 -2192.07
+176.666 -41.7598 -2808.23
+176.799 -41.6703 -2851.87
+176.562 -41.5962 -2303.32
+176.663 -41.6314 -2678.52
+176.772 -41.5573 -2632.32
+176.883 -41.59 -2818.1
+175.854 -41.8997 -2451.45
+175.926 -41.9217 -2591.67
+175.841 -41.9699 -2583.03
+175.859 -42.068 -2563.08
+175.051 -41.905 -2153.83
+175.089 -41.8498 -1662.19
+176.145 -41.6815 -2087.3
+176.218 -41.6728 -2091.05
+176.164 -41.7953 -2483.87
+176.2 -41.7295 -2087.79
+175.74 -41.9573 -2541.52
+175.759 -42.0294 -2529.68
+175.64 -42.1373 -2529.12
+175.755 -42.1157 -2535.49
+175.653 -41.9381 -2505.7
+175.719 -41.904 -2546.15
+175.787 -41.9059 -2571.64
+175.969 -42.0115 -2616.48
+176.127 -41.9067 -2702.63
+176.108 -41.9926 -2665.56
+176.365 -41.2722 -1198.11
+176.451 -41.2867 -1117.4
+176.429 -41.4747 -1816.59
+176.554 -41.3437 -1562.69
+176.652 -41.3989 -1640.59
+175.316 -41.911 -2123.68
+175.384 -41.9011 -2205.32
+175.062 -41.7795 -1439.76
+175.15 -41.8017 -1640.5
+175.904 -42.429 -2053.67
+176.037 -42.3589 -2462.67
+176.328 -41.8581 -2740.92
+176.84 -41.2876 -1527.99
+176.952 -41.2729 -1826.25
+176.079 -41.5152 -1115.25
+176.122 -41.452 -1486.99
+175.307 -42.3273 -2551.52
+175.45 -42.3835 -2473.03
+175.146 -42.0119 -2536.98
+175.149 -42.0822 -2642.89
+175.958 -42.1093 -2591.04
+176.075 -42.0928 -2618.64
+176.209 -41.8572 -2734.85
+176.249 -41.9529 -2703.31
+176.03 -41.7482 -2079.19
+176.113 -41.7415 -2017.44
+176.305 -41.5632 -2004.81
+176.399 -41.5514 -1906.13
+176.391 -41.2194 -1188.76
+176.475 -41.1899 -1191.08
+176.456 -42.0614 -2712.34
+176.586 -41.9907 -2744.4
+175.907 -41.5544 -1305.68
+175.959 -41.5301 -1247.91
+175.752 -41.6305 -1123.97
+175.804 -41.6247 -1270.61
+175.609 -42.0014 -2401.21
+175.687 -41.9975 -2436.37
+176.072 -41.5688 -1252.09
+176.136 -41.5675 -1670.86
+176.255 -41.5045 -1485.52
+176.339 -41.4954 -1742.71
+176.325 -41.1833 -886.91
+176.391 -41.1448 -1030.58
+176.335 -42.0322 -2700.93
+176.424 -41.9423 -2727.77
+175.997 -41.7006 -2105.49
+176.063 -41.6905 -2123.4
+180.768 -32.3385 -1083.65
+180.858 -32.204 -1095.61
+180.465 -31.9524 -2795.48
+180.617 -32.046 -3320.39
+182.571 -32.9804 -7240.33
+182.692 -32.84 -6883.11
+182.509 -36.0227 -5829.01
+182.764 -35.907 -5639.4
+174.976 -42.2935 -2566.1
+175.043 -42.2096 -2553.55
+176.04 -42.4716 -1743.25
+176.176 -42.4377 -1880.88
+176.59 -42.1027 -2721.16
+176.666 -42.2248 -2530.11
+176.439 -41.8414 -2747.66
+176.557 -41.868 -2765.4
+177.197 -42.1257 -2964.03
+177.277 -42.2533 -2685.85
+174.653 -42.4335 -2447.81
+174.757 -42.377 -2503.58
+174.114 -42.5072 -1991.12
+174.121 -42.6117 -2138.04
+175.457 -43.0339 -274.99
+175.612 -43.0101 -504.7
+175.747 -43.6558 -298.15
+175.796 -43.7604 -363.34
+174.754 -43.2601 -400.37
+174.893 -43.209 -299.96
+178.224 -42.4648 -2293.58
+178.439 -42.4103 -2305.33
+177.994 -43.7869 -491.89
+178.169 -43.7917 -489.97
+176.022 -43.5731 -340.91
+176.117 -43.4633 -366.62
+177.419 -42.7026 -1050.14
+177.479 -42.8188 -597.44
+177.742 -42.7242 -930.6
+177.887 -42.6525 -1176.64
+175.327 -42.9683 -422.59
+175.455 -42.9183 -566.04
+176.699 -42.545 -1758
+176.871 -42.4825 -1942.98
+176.278 -42.653 -974.54
+176.326 -42.7618 -685.44
+174.623 -43.0324 -651.42
+174.776 -43.0622 -548.56
+174.674 -43.1458 -495.57
+174.798 -43.1576 -378.46
+173.767 -42.6031 -1228.77
+173.872 -42.6121 -1485.9
+173.91 -42.5275 -1207.84
+174 -42.567 -1660.5
+173.905 -43.2118 -647.3
+174.042 -43.1537 -713.3
+173.772 -43.4823 -92.93
+173.877 -43.4749 -233.62
+173.944 -43.7555 -135.82
+174.067 -43.735 -370.03
+174.122 -43.055 -838.58
+174.206 -43.1271 -664.21
+174.396 -42.9245 -1069.7
+173.538 -43.3657 -486.43
+173.591 -43.4201 -117.91
+173.754 -42.8517 -789.24
+173.851 -42.82 -1092.19
+174.261 -43.443 -556.28
+174.388 -43.4109 -569.06
+173.819 -43.0716 -1070.09
+173.909 -43.126 -688.77
+174.903 -43.3109 -319.48
+175.026 -43.3504 -135.05
+174.138 -42.3642 -1386.67
+174.231 -42.3062 -1082.33
+173.819 -42.8951 -962.04
+173.829 -42.9772 -1043.06
+173.781 -43.2444 -632.4
+173.801 -43.1581 -894.34
+173.685 -43.1917 -1081.16
+173.694 -43.1102 -272.72
+174.411 -42.8222 -1320.21
+174.566 -42.7589 -1379.91
+174.861 -43.6187 -396.13
+174.99 -43.6425 -367.35
+175.673 -43.1161 -294.3
+175.775 -43.0701 -472.02
+175.745 -42.6759 -1093.75
+175.872 -42.6351 -1183.27
+174.26 -44.9228 -981.1
+175.195 -42.3943 -2456.96
+175.307 -42.4499 -2239.14
+176.871 -43.6157 -377.19
+176.95 -43.6981 -471.89
+174.934 -43.4243 -247.6
+175.924 -44.0438 -365.05
+176.025 -44.1088 -197.48
+174.212 -44.7412 -860.26
+174.463 -44.779 -895.53
+176.501 -41.7684 -2775.71
+176.546 -41.678 -2729.22
+176.404 -42.6678 -1103.26
+176.538 -42.6133 -1176.45
+176.808 -44.5048 -1068.86
+176.677 -42.3916 -2425.7
+176.806 -42.3351 -2514.07
+178.071 -41.5967 -2925.68
+178.192 -41.4458 -2984.54
+174.157 -42.4327 -1454.76
+174.244 -42.3979 -1444.44
+172.336 -44.1144 -46.63
+172.35 -44.163 -47.85
+174.224 -42.4693 -1888.13
+174.244 -42.5496 -2211.1
+173.507 -43.5474 -144.1
+173.544 -43.4897 -183.74
+164.799 -45.5722 -4547.98
+165.195 -45.4879 -4495.54
+166.233 -45.4282 -3944.71
+166.322 -45.3978 -3882.87
+166.43 -45.4359 -3377.24
+166.43 -44.9555 -3907.53
+166.483 -45.0221 -4075.17
+165.61 -45.7863 -3543.87
+165.637 -45.9402 -3538.21
+166.299 -44.0378 -3805.92
+166.254 -44.2709 -3788.49
+166.633 -44.8918 -3935.05
+166.728 -44.913 -3408.72
+166.146 -46.0991 -97
+166.144 -46.0164 -186.88
+166.327 -45.8854 -256.51
+166.321 -45.9434 -232
+166.616 -45.3388 -2060.64
+166.651 -45.3271 -2087.72
+166.5 -45.5322 -2109.58
+166.526 -45.5067 -2004.57
+166.748 -45.136 -2478.02
+166.789 -45.1065 -2498.08
+166.398 -45.3905 -3704.88
+166.439 -45.3448 -3678.51
+166.646 -45.1655 -2921.98
+166.745 -45.2952 -1232.13
+166.78 -45.2965 -518.04
+166.332 -45.7163 -1339.81
+166.363 -45.7534 -581.58
+166.544 -45.5273 -1584.69
+166.56 -45.5473 -1226.66
+166.678 -45.3456 -1677.1
+166.686 -45.3198 -1990
+166.705 -45.3378 -1469.22
+166.773 -45.2515 -1221.34
+166.775 -45.2756 -965.54
+166.799 -45.1426 -2086.81
+166.835 -45.119 -1990.95
+166.71 -45.1692 -2702.06
+166.736 -45.2064 -2085.08
+166.655 -45.2415 -3080.44
+166.63 -45.2757 -2971.6
+166.621 -45.308 -2518.2
+166.874 -45.1302 -1895.84
+166.628 -45.0519 -3416.96
+166.675 -45.0849 -2833.26
+166.738 -45.2688 -1970.85
+166.812 -45.1743 -1528.03
+166.856 -45.1804 -1220.31
+166.765 -45.1719 -1845.89
+166.786 -45.2003 -1250.48
+166.843 -45.1511 -1794.98
+166.884 -45.1574 -1234.52
+166.806 -45.2182 -850.34
+166.827 -45.2011 -990.52
+166.648 -45.4042 -1127.2
+166.674 -45.3755 -1230.95
+166.802 -45.0206 -1880.99
+166.833 -45.0505 -1284.62
+166.45 -45.2032 -4023.49
+166.473 -45.2546 -3765.5
+166.391 -45.4854 -3102.58
+166.448 -45.5167 -2862
+166.273 -45.2407 -4170.03
+166.348 -45.278 -3948.79
+166.467 -45.3919 -3345.67
+166.506 -45.3507 -3324.97
+166.714 -45.3829 -651.07
+166.7 -45.4065 -606.23
+166.904 -45.1382 -1217.37
+166.92 -45.1543 -529.57
+166.804 -45.2382 -575.36
+166.834 -45.2256 -531.73
+166.503 -45.5689 -1638.6
+166.531 -45.5498 -1579.65
+166.534 -45.3951 -2662.82
+166.66 -45.2989 -2485.03
+166.669 -45.2726 -2812.56
+166.677 -45.2046 -2697.26
+166.702 -45.231 -2660.13
+166.571 -45.3555 -2368.63
+166.594 -45.3996 -1812.39
+166.537 -45.2116 -3366.15
+166.582 -45.1679 -3164.31
+166.536 -45.2697 -3297.08
+166.585 -45.2892 -2968.46
+166.593 -45.2478 -2809.34
+166.615 -45.2065 -2730.54
+166.465 -45.4742 -3126.93
+166.494 -45.5004 -2514.9
+166.315 -45.4637 -3774.29
+166.371 -45.4344 -3694.86
+166.366 -45.2135 -4123.96
+166.411 -45.2488 -3987.32
+166.547 -44.9555 -3925.43
+166.571 -45.0173 -3825.11
+166.625 -45.3711 -1631.52
+166.649 -45.3516 -1715.5
+166.545 -45.3149 -2955.54
+166.588 -45.3213 -2461.27
+166.725 -44.8379 -3730.89
+166.79 -44.8674 -3087.61
+165.861 -45.1952 -3750.14
+165.932 -45.3339 -4159.06
+166.189 -45.8501 -1296.34
+166.232 -45.7933 -1274.87
+174.699 -41.0256 -164.57
+174.823 -41.0029 -63.13
+174.678 -40.9131 -172.87
+174.748 -41.0176 -146.06
+174.741 -41.0513 -136.8
+174.853 -41.0117 -35.66
+174.855 -40.9904 -52.75
+174.736 -41.1372 -67.82
+174.762 -41.1199 -36.44
+174.702 -41.0941 -185.5
+174.703 -41.0636 -203.11
+174.735 -41.1102 -102.44
+174.739 -41.0827 -104.21
+174.671 -41.0479 -163.09
+174.816 -40.8008 -114.65
+174.867 -40.8127 -100.54
+174.767 -40.8608 -111.18
+174.775 -40.8256 -113.74
+174.934 -40.7981 -43.4
+174.973 -40.7882 -48.73
+174.863 -40.7753 -98.88
+174.901 -40.7937 -79.21
+174.729 -40.9236 -131.59
+174.774 -40.9338 -127.72
+174.825 -41.038 -50.53
+174.838 -41.0244 -42.78
+174.744 -40.9581 -143.74
+174.767 -40.8993 -121.99
+174.807 -40.9122 -117.63
+174.88 -41.0112 -26.31
+174.893 -40.9878 -26.97
+174.763 -40.9877 -140.89
+174.816 -40.9426 -87.81
+174.821 -40.9731 -20.86
+174.807 -40.881 -125.43
+174.834 -40.8946 -119.57
+174.618 -40.989 -186.39
+174.649 -41.022 -135.77
+174.451 -41.0344 -139.55
+174.489 -41.0691 -217.44
+174.427 -41.1243 -100.7
+174.47 -41.113 -167.48
+174.505 -41.029 -201.11
+174.552 -41.0541 -188.8
+174.789 -41.0138 -98.63
+174.816 -41.0234 -68.31
+174.602 -41.0296 -216.94
+174.636 -41.0547 -180.31
+174.626 -41.1272 -237.29
+174.666 -41.1078 -222.78
+174.646 -40.9493 -182.42
+174.697 -40.9527 -155.19
+174.525 -41.2574 -260.25
+174.556 -41.2871 -147.92
+174.547 -41.3378 -182.07
+174.59 -41.3138 -106.72
+174.686 -41.3707 -46.47
+174.68 -41.4073 -151.24
+174.608 -41.3447 -70.68
+174.638 -41.3766 -53.96
+174.195 -40.4423 -104.08
+174.26 -40.4289 -105.77
+174.67 -40.9876 -144.47
+174.719 -40.9879 -181.53
+174.584 -41.0935 -299.05
+174.601 -41.0638 -251.99
+174.538 -41.3927 -244.84
+174.589 -41.3737 -147.51
+174.826 -41.4744 -419.08
+174.878 -41.4708 -139.77
+174.63 -41.0873 -238.35
+174.668 -41.0762 -215.86
+174.785 -40.9637 -112.16
+174.796 -40.9879 -70.45
+174.928 -40.7059 -83.49
+174.981 -40.6916 -72.89
+174.14 -41.5088 -14.44
+174.187 -41.5225 -29
+174.16 -40.7467 -79.2
+174.194 -40.7909 -76.26
+174.122 -40.875 -96.94
+174.155 -40.8353 -74.73
+175.097 -41.4612 -40.46
+175.132 -41.4316 -17.22
+174.961 -41.5551 -684.42
+174.996 -41.515 -279.32
+174.863 -41.5029 -504.69
+174.88 -41.5463 -318.71
+174.658 -41.1613 -161.56
+174.67 -41.1349 -163.9
+174.068 -41.4156 -10.62
+174.106 -41.4222 -18.67
+174.071 -41.4482 -12.28
+174.069 -41.4788 -7.46
+174.188 -41.5664 -12.6
+174.23 -41.5846 -31.11
+174.358 -41.6681 -82.06
+174.375 -41.7096 -104.96
+174.328 -41.8112 -107.3
+174.374 -41.8413 -141.58
+174.209 -41.6877 -9.88
+174.253 -41.7059 -13.43
+174.67 -41.5282 -196.16
+174.732 -41.5103 -118.83
+174.745 -41.9146 -424
+174.781 -41.8452 -401.63
+175.027 -41.4108 -46.24
+175.076 -41.4195 -24.95
+174.776 -41.0429 -101.8
+174.804 -41.0381 -75.3
+174.717 -36.5791 -6.87
+174.852 -36.5818 -24.38
+174.833 -36.5658 -23.87
+174.779 -36.4767 -13.71
+174.795 -36.4619 -8.62
+174.763 -36.5094 -12.43
+174.726 -36.5635 -7.72
+174.763 -36.4004 -1.18
+174.793 -36.5878 -10.69
+174.733 -36.5948 -6.89
+174.751 -36.603 -8.01
+174.781 -36.5697 -15.76
+174.737 -36.5757 -10.62
+174.757 -36.5693 -14.26
+174.733 -36.5247 -8.38
+174.738 -36.5159 -7.42
+174.748 -36.5102 -0.41
+174.72 -36.5515 -3.93
+174.741 -36.5337 -11.76
+174.745 -36.5218 -9.79
+174.742 -36.547 -12.31
+174.742 -36.5602 -12.01
+174.792 -36.5505 -17.15
+174.749 -36.5859 -11.43
+174.766 -36.5871 -12.48
+174.806 -36.5686 -17.34
+174.817 -36.5474 -22.61
+174.78 -36.5165 -10.09
+174.801 -36.5268 -21.93
+174.802 -36.4858 -20.04
+174.755 -36.5185 -12.58
+174.729 -36.5431 -7.83
+174.732 -36.553 -9.3
+174.858 -36.5562 -26.81
+174.764 -36.524 -15.86
+174.778 -36.5346 -17.46
+174.752 -36.5273 -14.3
+174.757 -36.5388 -15.32
+174.848 -36.5056 -27.82
+174.861 -36.5306 -29.3
+174.779 -36.4032 -4.58
+174.799 -36.4128 -7.12
+174.831 -36.527 -24.91
+174.84 -36.5454 -25.04
+174.877 -36.6005 -6.52
+174.917 -36.6142 -27.14
+174.881 -36.5695 -28.07
+174.88 -36.5471 -30.41
+174.907 -36.5526 -33.62
+174.912 -36.5813 -31.24
+174.889 -36.4662 -30.17
+174.847 -36.4627 -23.18
+174.865 -36.4806 -29.92
+174.754 -36.5535 -14.14
+174.77 -36.5527 -16.32
+174.796 -36.5063 -7
+174.818 -36.5059 -22.1
+174.953 -36.5097 -43.66
+174.944 -36.5595 -39.24
+174.895 -36.5282 -34.48
+174.928 -36.5305 -41.21
+174.943 -36.4826 -44.32
+175.121 -36.5623 -44.71
+175.068 -36.4568 -44.85
+175.128 -36.4754 -45.06
+175.01 -36.4592 -46.93
+175.034 -36.4991 -44.11
+174.989 -36.5208 -43.98
+175.026 -36.5476 -42.78
+174.999 -36.578 -41.03
+174.879 -36.665 -24.82
+174.957 -36.6697 -27.54
+175.229 -36.6292 -39.57
+175.262 -36.6363 -36.25
+175.293 -36.5807 -37.57
+175.197 -36.6769 -37.69
+175.231 -36.6585 -37.92
+175.195 -36.7078 -35.99
+174.839 -36.7099 -17.09
+174.878 -36.6994 -22.24
+174.806 -36.6592 -15.52
+174.843 -36.6433 -18.59
+174.773 -36.6607 -11.85
+174.784 -36.6818 -12.57
+175.065 -36.6536 -37.73
+175.244 -36.8976 -14.55
+175.286 -36.8777 -25.16
+174.95 -36.7081 -17
+174.98 -36.7259 -17
+175.127 -36.5174 -44.15
+175.173 -36.5414 -43.77
+175.431 -36.7663 -11.13
+175.463 -36.7825 0.34
+175.316 -36.9398 -22.86
+175.357 -36.9409 -22.22
+175.382 -36.7582 -30.39
+175.411 -36.7345 -16.9
+174.959 -36.5339 -43.09
+174.981 -36.5521 -43.34
+175.473 -37.1013 -1.08
+174.988 -36.8626 -3.64
+175.014 -36.8638 -1.76
+175.106 -36.8667 -3.91
+175.116 -36.8862 -2.73
+175.253 -36.8189 -27.26
+175.288 -36.8383 -29.86
+174.909 -36.8225 -6.77
+174.929 -36.8176 -7.09
+174.925 -36.8325 -7.49
+174.936 -36.849 -6.53
+175.372 -37.1774 0.46
+175.42 -37.1785 1.09
+175.604 -36.653 -22.11
+175.172 -36.3608 -47
+175.175 -36.4057 -46.5
+175.167 -36.3212 -49.92
+175.212 -36.3354 -46.96
+174.814 -36.6865 -16.19
+174.843 -36.6772 -20.08
+174.855 -36.6212 -20.37
+174.883 -36.632 -25.03
+175.274 -36.6749 -38.08
+175.27 -36.7848 -29.75
+175.29 -36.8087 -30.75
+175.214 -36.7336 -38.13
+175.245 -36.7572 -31.34
+174.907 -36.425 -38.73
+175.03 -36.4287 -46.81
+175.07 -36.4088 -46.9
+174.822 -36.4686 -17.15
+174.833 -36.4847 -25.17
+174.847 -36.2489 -51.12
+174.87 -36.2802 -46.97
+174.936 -36.3128 -49.28
+174.969 -36.3322 -47.58
+174.97 -36.1908 -47.51
+175.021 -36.1993 -43.63
+174.945 -36.2396 -50.99
+175.001 -36.2351 -47.06
+174.981 -36.3908 -49.84
+174.893 -36.3593 -45.82
+174.928 -36.3449 -49.12
+174.942 -36.403 -47
+174.94 -36.438 -40.58
+174.914 -36.4755 -33.19
+174.915 -36.5029 -36.29
+174.91 -36.453 -32.9
+174.934 -36.462 -38.41
+174.919 -36.3757 -49.84
+174.957 -36.3679 -47.02
+174.888 -36.38 -40.94
+174.901 -36.3978 -40.63
+175.256 -36.1165 -72.96
+175.164 -36.2891 -46.01
+175.202 -36.2976 -49.16
+175.152 -36.2253 -49.92
+175.19 -36.2589 -27.4
+175.279 -36.1932 -43.66
+175.275 -36.2845 -49.09
+175.312 -36.2725 -43.75
+175.282 -36.2181 -39.69
+175.277 -36.2524 -48.99
+175.2 -36.2174 -48.84
+175.243 -36.2043 -47
+175.209 -36.1822 -57.89
+175.25 -36.175 -52.61
+175.226 -36.1488 -66.08
+175.261 -36.1495 -61.04
+175.223 -36.0739 -85.85
+175.28 -36.0779 -78.07
+175.391 -36.321 -35.54
+175.398 -36.3586 -41.86
+175.238 -36.238 -39.42
+175.238 -36.2744 -47.23
+174.879 -36.5056 -31.98
+174.892 -36.4861 -32.59
+175.123 -36.7016 -33.21
+175.133 -36.7257 -30.75
+175.058 -36.6133 -41.28
+175.098 -36.6325 -40.86
+174.99 -36.6922 -15.53
+175.033 -36.6789 -29.11
+174.947 -36.5922 -36.89
+174.97 -36.5755 -41.43
+174.961 -36.627 -35.03
+175.02 -36.7149 -22.37
+175.053 -36.7075 -29.23
+175.049 -36.7371 -24.99
+175.079 -36.7475 -25.37
+175.011 -36.7439 -19.18
+175.03 -36.7613 -17.88
+175.003 -36.8203 -6.84
+175.001 -36.8405 -7.03
+175.073 -36.8693 -3.48
+175.086 -36.8512 -1.48
+175.146 -36.8895 -2.7
+175.152 -36.9066 0.76
+175.205 -36.9213 -6.11
+175.228 -36.9253 -9.54
+175.258 -36.9313 -9.2
+175.287 -36.9172 -16.87
+176.219 -36.8033 -205.67
+176.23 -36.6341 -464.28
+176.125 -36.7449 -160.55
+176.138 -36.7932 -149.84
+176.15 -36.6182 -249.79
+176.187 -36.5536 -407.97
+176.024 -36.5237 -167.97
+176.018 -36.7712 -103.13
+175.924 -36.8967 -61.58
+175.973 -36.8954 -74.76
+175.947 -36.8677 -77.94
+175.924 -36.8248 -77.23
+175.925 -36.6958 -47.13
+175.93 -36.7371 -60.99
+175.856 -36.8728 -46.92
+175.86 -36.8966 -37.46
+176.021 -36.8904 -80.1
+176.034 -36.8491 -97
+175.956 -36.8396 -85.97
+175.987 -36.8617 -90.82
+175.992 -36.8262 -97
+176.032 -36.8061 -97
+175.871 -36.9539 -23.18
+175.976 -36.9522 -47
+175.964 -36.9855 -47
+175.842 -36.6803 -8.21
+175.856 -36.7074 -22.5
+175.995 -36.5762 -125.89
+176.007 -36.6245 -112.27
+176.18 -36.7521 -188.09
+176.263 -36.7278 -478.77
+175.728 -36.3772 -78.96
+175.781 -36.3856 -82.43
+176.212 -37.0409 -258.04
+176.275 -37.0171 -405.08
+176.192 -36.9825 -167.93
+176.006 -37.0895 -62.46
+176.061 -37.0885 -87.04
+175.928 -36.8477 -74.69
+176.327 -36.6508 -891.8
+176.398 -36.7278 -1148.41
+176.438 -36.9401 -1252.79
+176.465 -36.843 -1497
+175.881 -36.7877 -52.01
+175.892 -36.8138 -63.32
+175.861 -36.8059 -48.71
+175.823 -36.7793 -26.08
+175.836 -36.7599 -28.87
+175.811 -36.7602 -10.1
+175.85 -36.7821 -47
+175.868 -36.7623 -47
+175.77 -36.7841 -16.77
+175.789 -36.8007 -17
+175.786 -36.7643 -17
+175.798 -36.7805 -16.44
+175.848 -36.848 -47.25
+175.87 -36.8311 -57.03
+175.833 -36.7989 -41.4
+175.84 -36.8227 -46.23
+175.954 -36.8088 -86.61
+175.987 -36.7898 -97
+176.329 -36.8123 -610.95
+176.353 -36.8987 -650.26
+175.811 -36.7948 -22.9
+175.812 -36.8134 -22.93
+175.916 -36.7959 -68.16
+175.945 -36.7754 -74.75
+175.887 -36.8824 -53.99
+175.911 -36.8652 -65.37
+175.888 -36.9061 -47.56
+175.907 -36.933 -47
+175.913 -36.9725 -36.58
+175.943 -36.9543 -47
+176.251 -36.8729 -265.77
+176.271 -36.9453 -346.48
+176.123 -36.9321 -99.04
+176.199 -36.9185 -162.68
+175.883 -36.6852 -35.7
+175.911 -36.664 -47
+175.889 -36.744 -47
+175.905 -36.767 -55.87
+173.523 -34.4909 -347.41
+173.64 -34.4718 -811.47
+174.705 -34.9893 -587.38
+174.619 -34.9309 -595.68
+174.712 -35.2305 -230.59
+174.744 -35.1526 -372.78
+174.555 -35.1471 -214.97
+174.642 -35.1665 -263.95
+174.686 -35.2902 -177.83
+174.767 -35.2975 -194.81
+174.16 -34.5535 -1013.33
+174.438 -35.0081 -325.05
+174.478 -35.0461 -307.42
+174.488 -35.1395 -184.57
+174.47 -35.2243 -130.81
+174.511 -35.1884 -165.96
+174.821 -34.8264 -847.77
+174.36 -34.7099 -692.38
+174.484 -34.6809 -740.88
+174.397 -35.207 -98.95
+174.636 -34.6726 -798.18
+174.689 -34.7868 -1027.38
+174.912 -35.0494 -587.61
+175.078 -35.0735 -666.84
+174.566 -34.7744 -764.03
+174.621 -34.85 -872.79
+174.519 -34.8744 -619.63
+174.842 -35.1506 -449.17
+174.96 -35.176 -479.88
+174.846 -35.6152 -157.77
+174.919 -35.5999 -183.71
+174.57 -35.2117 -180.37
+174.632 -35.2517 -179.38
+174.023 -34.7975 -275.76
+174.084 -34.727 -451.69
+174.358 -35.2475 -60.36
+174.364 -35.2147 -64.7
+174.449 -35.2693 -107.66
+173.964 -34.9782 -12.07
+174.326 -34.8847 -370.24
+174.324 -34.8109 -482.91
+174.442 -34.7892 -615.18
+174.078 -34.8636 -226.81
+174.122 -34.8018 -301.19
+173.943 -34.781 -273.59
+173.966 -34.7096 -443.12
+173.861 -34.6804 -369.32
+173.905 -34.5939 -705.4
+173.78 -34.6309 -384.79
+173.572 -34.5687 -279.7
+173.612 -34.6368 -259.98
+173.785 -34.4108 -1121.57
+173.885 -34.4845 -814.54
+173.678 -34.5865 -392.69
+173.779 -34.5304 -757.81
+174.16 -34.8653 -239.23
+174.659 -35.3967 -128.93
+174.699 -35.3432 -158.31
+174.593 -35.0888 -337.69
+174.683 -35.0799 -451.49
+174 -34.869 -186.88
+174.043 -34.9209 -159.27
+173.925 -34.8738 -127.47
+173.958 -34.8275 -189.85
+173.867 -34.8992 -83.62
+173.909 -34.9261 -76.19
+174.215 -34.8064 -366.08
+174.246 -34.8809 -349.73
+174.393 -35.0779 -181.86
+174.43 -35.0508 -247.56
+174.405 -34.8714 -457.74
+174.449 -34.9474 -398.19
+174.786 -35.2171 -310.47
+174.863 -35.2495 -325.38
+174.52 -35.2328 -152.77
+174.553 -35.2771 -147.79
+174.35 -35.1262 -126
+174.129 -35.0738 -94.04
+174.149 -35.0452 -126.4
+174.309 -34.509 -1378.21
+174.387 -34.6117 -926.16
+174.166 -34.6711 -689.73
+174.273 -34.632 -786.87
+174.169 -34.7491 -506.94
+174.251 -34.7313 -557.51
+174.769 -34.7098 -1116.51
+174.917 -34.7105 -1131.25
+174.539 -35.0344 -376.5
+174.615 -35.0146 -496.32
+174.25 -35.1011 -114.99
+174.496 -35.2626 -130.73
+174.487 -35.3066 -106.62
+174.013 -34.9703 -96.07
+174.081 -34.9758 -154.15
+174.193 -35.0478 -144.55
+174.228 -35.0756 -132.54
+174.365 -34.9301 -330.8
+174.385 -34.9822 -250.15
+174.337 -35.0105 -192.02
+174.311 -35.081 -144.4
+174.346 -35.0554 -183.11
+174.245 -35.0393 -164.55
+174.277 -34.9919 -189.36
+174.164 -35.0693 -115.07
+174.155 -35.0947 -87.49
+173.989 -35.0037 -59.66
+174.029 -35.0128 -95.41
+174.116 -34.9179 -203.72
+174.157 -34.9694 -189.85
+174.269 -35.0739 -142.79
+174.297 -35.0421 -176.08
+174.181 -34.9164 -230.32
+174.228 -34.9486 -208.85
+174.182 -35.1153 -86.98
+174.208 -35.1297 -84.24
+174.388 -35.2347 -82.95
+174.422 -35.2345 -102.06
+174.268 -35.1457 -88.66
+174.287 -35.1556 -81.1
+174.216 -35.1052 -105.56
+174.19 -35.0852 -115.57
+174.293 -35.1331 -57.09
+174.318 -35.1128 -117.08
+174.203 -35.1493 -69.36
+174.218 -35.1624 -61.09
+174.25 -35.1571 -72.5
+174.267 -35.1638 -71.62
+174.282 -35.1742 -56.09
+174.263 -35.1246 -10.84
+174.284 -35.1042 -117.97
+174.431 -35.2036 -119.85
+174.457 -35.1778 -146.78
+174.077 -35.0305 -113.73
+174.112 -35.0479 -110.85
+174.294 -34.9335 -239.07
+174.332 -34.9693 -225.95
+174.49 -34.9996 -394.97
+174.539 -34.9662 -498.92
+174.408 -35.1122 -164
+174.433 -35.1395 -156.43
+174.167 -35.0151 -158.23
+174.211 -35.002 -183.92
+174.349 -35.094 -148.02
+174.377 -35.1113 -149.7
+174.306 -35.1502 -86.01
+174.323 -35.1395 -100.64
+174.235 -35.1242 -97
+174.246 -35.1414 -85.65
+174.149 -35.1456 -42.41
+174.16 -35.1596 -47
+174.17 -35.1494 -55.17
+174.186 -35.1391 -72.19
+174.148 -35.1214 -58.85
+174.167 -35.134 -64.87
+174.25 -35.1713 -59.48
+174.264 -35.1795 -53.61
+174.239 -35.1871 -47
+174.249 -35.184 -47.98
+174.236 -35.1666 -59.55
+174.238 -35.1788 -50.88
+174.196 -35.1671 -55.73
+174.209 -35.1752 -50.92
+174.165 -35.2119 -26.14
+174.17 -35.22 -18.73
+174.176 -35.1638 -47.48
+174.186 -35.154 -60.86
+174.197 -35.1824 -43.77
+174.2 -35.1927 -33.96
+174.224 -35.1435 -76.73
+174.235 -35.1539 -70.56
+174.13 -35.2297 -0.01
+174.136 -35.2414 1.09
+177.183 -37.8447 -52.78
+176.417 -37.5317 -75.05
+176.476 -37.6415 -43.5
+176.518 -37.619 -69.09
+176.333 -37.5732 -47
+176.869 -36.7323 -1651.8
+177.047 -36.7657 -2607.45
+176.973 -37.8232 -53.95
+176.142 -37.4453 -42.47
+176.175 -37.4618 -44.8
+176.143 -37.4735 -37
+176.186 -37.3369 -47.45
+177.474 -37.6603 -144.3
+177.516 -37.7161 -80.92
+172.436 -35.9646 -1389.47
+172.636 -36.0242 -1291.26
+172.613 -35.8713 -1154.46
+172.749 -35.8166 -815.68
+172.644 -35.7357 -788.17
+172.703 -35.6244 -517.88
+172.941 -35.9485 -905.29
+172.99 -36.0517 -1061.71
+172.781 -35.9253 -1018.45
+172.83 -36.0524 -1204.15
+172.857 -35.5092 -395.83
+172.947 -35.564 -314.12
+173.598 -36.1401 -458.45
+173.685 -36.1754 -173.23
+173.03 -35.8559 -631.36
+173.16 -35.8496 -393.73
+173.035 -35.5398 -198.11
+173.034 -35.608 -224.13
+173.418 -35.7722 -95.53
+173.436 -35.8239 -140.39
+173.247 -35.5486 -76.51
+173.366 -35.6142 -43.51
+173.349 -35.6545 -76.38
+173.374 -35.6884 -86.81
+173.341 -35.5531 -13.93
+173.096 -35.7674 -469.21
+173.199 -35.7665 -311.2
+173.149 -35.7033 -252.37
+173.272 -35.6257 -96.35
+173.332 -35.684 -105.86
+173.342 -35.7195 -125.54
+173.242 -35.5883 -96.69
+173.274 -35.5674 -68.21
+173.291 -35.5925 -68.8
+173.319 -35.623 -70.14
+173.155 -35.5368 -126.78
+173.293 -35.6991 -137.2
+173.294 -35.7546 -173.81
+173.307 -35.5631 -46.54
+173.333 -35.5854 -43.19
+173.285 -35.541 -49.21
+173.317 -35.5393 -25.69
+173.263 -35.511 -49.04
+173.303 -35.5157 -26.36
+173.23 -35.7074 -192.91
+173.253 -35.663 -138.19
+173.177 -35.5969 -146.32
+173.206 -35.5584 -106.28
+173.066 -35.4873 -159.19
+173.122 -35.4982 -130.27
+173.363 -35.7554 -122.69
+173.357 -35.7996 -156.13
+173.096 -35.5275 -157.89
+173.102 -35.5726 -171.26
+173.193 -35.6562 -187.81
+173.227 -35.6265 -138.27
+173.864 -34.9418 -54.91
+173.762 -34.9596 -21.02
+173.791 -34.977 -13.63
+173.795 -34.9475 -33.76
+173.824 -34.9596 -43.55
+176.446 -37.3795 -371.52
+176.477 -37.4412 -249.95
+176.29 -37.4685 -68.99
+176.136 -37.4166 -45.54
+176.076 -37.41 -34.71
+176.106 -37.4096 -40.04
+176.169 -37.4932 -37.68
+176.196 -37.517 -38.59
+176.451 -37.5725 -62.02
+176.478 -37.6044 -59.17
+176.337 -37.6355 -26.83
+176.371 -37.6677 -17
+176.126 -37.3881 -47
+176.15 -37.3638 -48.25
+176.272 -37.3769 -81.61
+176.294 -37.4229 -83.41
+176.288 -37.6374 -24.49
+176.31 -37.6052 -38.29
+176.385 -37.6267 -21.51
+176.435 -37.6134 -7.77
+176.108 -37.5529 -16.5
+176.067 -37.5086 -15.47
+176.087 -37.5316 -15.51
+176.264 -37.603 -31.43
+176.287 -37.5726 -43.38
+176.004 -37.3774 -25.47
+176.092 -37.3847 -43.33
+176.112 -37.3585 -50.14
+176.007 -37.4075 -20.49
+176.043 -37.4145 -26.83
+176.068 -37.4335 -28.28
+176.012 -37.4701 -1.23
+176.027 -37.4838 -3.96
+175.973 -37.3674 -17
+175.976 -37.3919 -16.61
+176.116 -37.4579 -34.94
+176.161 -37.3959 -47
+176.072 -37.3548 -44.99
+176.051 -37.4855 -14.8
+176.09 -37.4268 -33.65
+176.113 -37.434 -37.39
+176.041 -37.4421 -20.75
+176.035 -37.4652 -13.68
+176.065 -37.4608 -22.09
+176.091 -37.4467 -30.25
+176.016 -37.4503 -8.9
+176.021 -37.4295 -19.05
+175.979 -37.4149 -10.23
+175.996 -37.4332 -11.73
+176.22 -37.5436 -37.34
+176.242 -37.5721 -36.24
+176.144 -37.5481 -22.57
+176.159 -37.5217 -30.42
+176.123 -37.5267 -23.92
+176.135 -37.5005 -30.81
+176.181 -37.5452 -29.41
+176.2 -37.5705 -28.63
+176.216 -37.5989 -25.94
+176.164 -37.5694 -20.69
+176.151 -37.6078 -2.88
+176.175 -37.593 -18.22
+176.129 -37.5727 -16.13
+176.147 -37.5882 -13.49
+176.261 -37.541 -44.84
+176.306 -37.5381 -51.43
+176.101 -37.5056 -23.26
+176.112 -37.4818 -30.08
+176.235 -37.5118 -45.96
+176.277 -37.5059 -54.23
+176.182 -37.3746 -47
+176.221 -37.3729 -49.42
+176.244 -37.4119 -73.01
+176.066 -37.319 -50.66
+176.097 -37.3315 -53.71
+176.054 -37.284 -58.47
+176.081 -37.2625 -74.28
+176.034 -37.3651 -34.78
+176.04 -37.3381 -42
+176.03 -37.3904 -28.71
+176.059 -37.3869 -35.63
+175.983 -37.1947 -52.39
+176.006 -37.1653 -62.53
+176.321 -37.3863 -122.44
+176.372 -37.3775 -211.66
+176.346 -37.4156 -117.91
+176.339 -37.4546 -86.96
+176.207 -37.4847 -47
+176.247 -37.4772 -55.84
+176.215 -37.4451 -57.55
+176.258 -37.4453 -68.33
+176.171 -37.4279 -47
+176.199 -37.4047 -47
+176.082 -37.4847 -23.25
+176.093 -37.4665 -28.53
+176.594 -37.7775 -20.7
+176.645 -37.792 -26.56
+176.564 -37.6881 -46.12
+176.625 -37.6859 -81.63
+176.551 -37.5891 -92.72
+176.606 -37.5761 -179.46
+176.727 -37.5199 -549.08
+176.796 -37.4736 -688.31
+177.127 -37.6818 -186.81
+177.188 -37.7116 -170.01
+177.239 -37.7988 -70.82
+177.269 -37.7636 -85.33
+177.146 -37.7388 -104.98
+177.154 -37.782 -82.81
+177.425 -37.922 -16.56
+177.455 -37.8879 -22.2
+177.067 -37.9208 -19.28
+177.199 -37.9704 -8.79
+177.231 -37.968 -11.41
+177.314 -37.9219 -25.88
+177.205 -37.6636 -339.4
+177.292 -37.6553 -214.92
+177.042 -37.6912 -141.2
+177.087 -37.7339 -135.18
+177.069 -37.7794 -92.22
+177.113 -37.7672 -96.93
+177.11 -37.8027 -79.18
+177.15 -37.8217 -66.56
+177.105 -37.9051 -32.38
+177.174 -37.8817 -41.59
+177.213 -37.8682 -44.87
+177.253 -37.8588 -47.42
+177.205 -37.8995 -34.43
+177.065 -37.8264 -61.88
+177.11 -37.8394 -59.81
+177.082 -37.8571 -47.25
+177.075 -37.8854 -34.88
+177.319 -37.8591 -45.05
+177.345 -37.8868 -33.65
+177.264 -37.9644 -13.12
+177.295 -37.9537 -17.67
+177.109 -37.8719 -44.63
+177.144 -37.8573 -50.17
+177.21 -37.9455 -19.71
+177.015 -37.843 -47.87
+177.047 -37.8636 -40.86
+177.286 -37.8669 -43.85
+177.3 -37.8892 -36.71
+177.224 -37.8338 -57.43
+177.258 -37.8271 -59.38
+177.228 -37.9189 -29.09
+177.247 -37.9417 -22.43
+177.012 -37.8748 -33.62
+177.035 -37.8971 -26.77
+177.056 -37.9519 -7.72
+177.087 -37.9462 -16.49
+177.107 -37.961 -9.85
+177.125 -37.9697 -5.22
+177.098 -37.9274 -23.3
+177.111 -37.9412 -19.42
+177.115 -37.9249 -25.55
+177.13 -37.9356 -21.66
+177.127 -37.9533 -14.3
+177.145 -37.9472 -17.42
+177.142 -37.9652 -8.79
+177.161 -37.9588 -13.22
+177.136 -37.9156 -29.13
+177.147 -37.9319 -22.84
+177.16 -37.9214 -27.62
+177.179 -37.9094 -32.19
+177.155 -37.9749 -3.42
+177.174 -37.973 -5.62
+177.166 -37.9398 -21.45
+177.178 -37.9265 -26.36
+177.198 -37.9233 -26.89
+177.268 -37.9129 -30.72
+177.277 -37.9391 -22.48
+177.24 -37.8905 -38.36
+177.269 -37.8836 -39.43
+177.137 -37.8887 -39.18
+177.157 -37.9035 -33.33
+177.187 -37.9383 -22.35
+177.183 -37.9543 -16.82
+170.984 -45.7702 -117.53
+170.917 -45.8283 -97
+170.95 -45.8013 -103.02
+170.796 -45.8768 -64.49
+171.079 -45.9104 -590.97
+171.023 -45.7295 -289.98
+171.1 -45.6949 -237.84
+170.969 -45.6978 -85.8
+171.021 -45.6705 -221.46
+170.959 -45.6558 -78.17
+170.901 -45.5698 -39.27
+170.928 -45.6118 -47
+170.832 -45.5439 -17.55
+170.854 -45.5156 -21.76
+170.871 -45.5462 -29.16
+170.906 -45.5313 -34.36
+170.84 -45.6211 -34.9
+170.873 -45.5998 -38.45
+170.805 -45.5881 -30.15
+170.807 -45.6096 -30.56
+170.857 -45.7933 -70.19
+170.9 -45.7972 -96.37
+170.881 -45.7682 -74.52
+170.821 -45.7017 -30.43
+170.863 -45.7124 -44.65
+170.7 -45.7183 -17.64
+170.737 -45.7293 -12.45
+170.76 -45.7098 -22.3
+170.65 -45.6943 -9.77
+170.663 -45.7144 -15.85
+170.761 -45.6385 -25.98
+170.779 -45.6194 -27
+170.856 -45.745 -52.84
+170.772 -45.8607 -30.65
+170.836 -45.868 -80.56
+170.88 -45.8519 -96.85
+170.793 -45.719 -24.43
+170.825 -45.7293 -38.4
+170.794 -45.7454 -24.58
+170.726 -45.7019 -18.56
+170.751 -45.6849 -20.52
+170.936 -45.8672 -120.35
+170.876 -45.888 -130.69
+170.921 -45.9185 -320.61
+170.805 -45.8533 -57.74
+170.838 -45.8398 -71.01
+170.825 -45.7524 -43.02
+170.841 -45.77 -55.84
+170.789 -45.7859 -17
+170.82 -45.7901 -39.74
+170.778 -45.767 -22.41
+170.808 -45.769 -26.52
+170.78 -45.8435 -22.28
+170.803 -45.8312 -46.67
+170.964 -45.8327 -157.93
+171.006 -45.8104 -174.16
+170.901 -45.706 -58.88
+170.902 -45.7359 -71.31
+170.761 -45.7487 -20.03
+170.77 -45.7308 -21.64
+170.703 -46.0249 -77.5
+171.009 -45.857 -322.79
+170.986 -45.9019 -197
+170.823 -45.8984 -92.27
+170.855 -45.9277 -154.9
+170.691 -45.9451 -52.6
+170.777 -45.9007 -64.05
+170.797 -45.9281 -87.1
+170.746 -45.8971 -47.41
+170.747 -45.9222 -58.98
+170.687 -45.9077 -21.37
+170.719 -45.9036 -30.08
+170.892 -46.0797 -190.12
+170.99 -46.1007 -615.89
+170.93 -45.7124 -70.64
+170.956 -45.7343 -83.8
+170.878 -45.6333 -40.04
+170.908 -45.6555 -44.94
+170.85 -45.6807 -33.99
+170.886 -45.6842 -44.62
+170.833 -45.5926 -33.5
+170.856 -45.5701 -27.65
+170.679 -45.9279 -42.56
+170.707 -45.9256 -48.49
+170.629 -45.9731 -50.45
+170.673 -45.9632 -56.03
+170.722 -45.9435 -57
+170.758 -45.9567 -77.99
+170.825 -46.0046 -133.25
+170.818 -46.0541 -134.65
+170.64 -46.0174 -62.71
+170.681 -45.9893 -65.74
+170.847 -46.2123 -546.26
+170.911 -46.1465 -442.87
+170.781 -45.9871 -97.76
+170.767 -46.0216 -94.29
+170.709 -45.965 -62.39
+170.732 -45.9909 -75.09
+170.766 -45.8118 -10.25
+170.772 -45.8271 -16.74
+170.719 -45.6789 -21.94
+170.737 -45.6604 -24.02
+171.171 -45.7884 -769.52
+171.198 -45.8581 -762.26
+171.087 -45.8234 -197
+171.04 -45.7782 -197
+171.101 -45.7574 -334.58
+170.843 -45.652 -32.8
+170.873 -45.6613 -37.71
+170.876 -46.0276 -175.08
+170.952 -46.0256 -197.22
+171.105 -46.1204 -878.35
+171.209 -46.0682 -950.36
+176.831 -37.8469 -17
+176.88 -37.8227 -17
+176.498 -37.4909 -182.46
+176.548 -37.4633 -349.17
+177.476 -37.572 -456.63
+176.827 -37.7904 -34.34
+176.887 -37.778 -48.69
+176.754 -37.7856 -44.38
+176.787 -37.8248 -22.9
+176.744 -37.7275 -71.23
+176.796 -37.7439 -64.43
+177.194 -37.3314 -1209.94
+177.283 -37.393 -1034.18
+176.744 -37.577 -440.68
+176.804 -37.55 -545.2
+176.765 -36.8299 -1497
+176.896 -36.8881 -1449.51
+176.296 -37.1367 -424.93
+176.361 -37.1773 -497.21
+176.596 -37.3143 -743.8
+176.684 -37.3661 -573.24
+177.745 -37.3355 -1276.27
+177.816 -37.2841 -1499.4
+177.297 -37.3137 -1280.71
+177.394 -37.2737 -1624.52
+176.99 -37.3058 -937.21
+177.073 -37.3776 -549.92
+176.88 -37.4207 -575.18
+176.96 -37.3763 -729.48
+176.52 -37.2417 -747
+176.606 -37.195 -747
+177.368 -37.3577 -1404.87
+177.381 -37.4354 -1438
+177.102 -37.4704 -343.16
+177.183 -37.4318 -616.38
+177.224 -37.6066 -651.32
+177.29 -37.5707 -743.65
+176.874 -37.5935 -407.6
+176.923 -37.634 -195.98
+176.648 -37.6257 -139.13
+176.682 -37.6628 -169.26
+175.102 -36.5993 -42.9
+175.125 -36.6198 -42.31
+175.077 -36.532 -44
+175.087 -36.4952 -44
+175.399 -37.006 -13.27
+175.44 -37.0185 -7.97
+175.357 -37.0578 -7.8
+175.394 -37.0405 -9.31
+175.433 -37.0655 -5.38
+175.398 -37.1412 -1
+175.445 -37.141 -0.13
+175.229 -36.6949 -35.22
+175.262 -36.7188 -34.66
+174.977 -36.5971 -40.08
+175.008 -36.6131 -39.39
+175.389 -37.0789 -6.36
+175.42 -37.1057 -2.9
+175.304 -36.641 -33.91
+175.352 -36.6422 -25.43
+175.348 -36.7317 -33.47
+175.383 -36.7247 -24.82
+175.313 -36.7853 -29.21
+175.34 -36.7632 -32.01
+174.997 -36.6545 -30.36
+175.032 -36.6435 -36.02
+175.032 -36.585 -41.5
+175.069 -36.573 -42.14
+175.221 -36.5235 -43.95
+175.252 -36.5435 -42.29
+174.852 -36.7411 -15.07
+174.874 -36.7256 -17.07
+176.042 -36.586 -151.81
+176.099 -36.5654 -205.67
+175.54 -36.5095 -47
+175.578 -36.5146 -47
+175.634 -36.6271 -36.53
+175.688 -36.636 -32.99
+175.879 -36.8563 -57.43
+175.901 -36.8397 -67.29
+176.071 -36.965 -10.16
+176.112 -36.9943 -78.98
+175.347 -37.0933 -5.07
+175.381 -37.1108 -4.71
+175.287 -36.6133 -36.72
+175.326 -36.6064 -32.43
+175.136 -36.5971 -43.3
+175.169 -36.5829 -42.06
+175.322 -36.6711 -34.84
+175.312 -36.7057 -34.06
+175.354 -35.9632 -106.18
+175.38 -36.0085 -84.36
+175.943 -36.2442 -156.63
+175.956 -36.3128 -168.97
+175.649 -36.662 -28.66
+175.696 -36.6713 -22.7
+165.9 -46.7354 -247.7
+165.943 -46.6287 -197
+165.304 -46.2429 -4466.68
+165.309 -46.3847 -4247.62
+165.081 -46.6351 -4041.12
+166.276 -47.2306 -2122.5
+166.464 -47.3265 -1699.07
+166.274 -47.5492 -2464.41
+166.32 -47.691 -1882.67
+165.505 -47.9837 -2365.74
+165.573 -47.7801 -2660.39
+165.882 -47.2096 -2096.98
+165.858 -47.3743 -2211.37
+165.328 -46.8571 -1652.65
+164.664 -48.0665 -4107.68
+163.624 -46.5168 -4319.39
+164.076 -46.5671 -4318.76
+166.048 -48.0298 -2406
+166.273 -48.0649 -498.77
+165.278 -48.4802 -2589.21
+165.554 -48.4043 -2694.58
+165.439 -47.3548 -3140.71
+164.273 -46.0845 -3768.74
+164.63 -46.1553 -4153.39
+164.319 -45.1634 -4714.37
+164.662 -45.0699 -4665.86
+163.709 -45.4066 -4601.78
+163.543 -45.7149 -4540.03
+163.414 -45.9768 -4542.51
+163.508 -46.2323 -4412.21
+164.481 -46.5507 -4386.73
+163.882 -47.0473 -4416.35
+165.092 -46.8128 -4304.15
+165.259 -46.7307 -2416.38
+163.971 -47.8389 -3963.52
+163.912 -48.1617 -4085.57
+166.482 -47.1847 -1682.49
+166.636 -47.2602 -1314.02
+166.083 -47.1894 -2192.32
+166.075 -47.3151 -2352.62
+165.703 -46.9922 -541.18
+165.827 -47.0806 -1238.62
+166.037 -47.8361 -2668.99
+166.212 -47.7833 -2122.64
+166.019 -48.2111 -2295.93
+166.179 -48.1527 -598.81
+165.371 -47.6596 -3043.81
+164.311 -47.9845 -5214.98
+164.613 -47.8325 -4709.95
+164.789 -46.5773 -4666.71
+164.84 -46.7538 -4683.17
+164.085 -47.5725 -3829.37
+164.324 -47.7251 -4302.67
+164.487 -47.078 -4441.28
+164.591 -48.5134 -3892.92
+164.715 -48.6731 -2370.78
+163.369 -46.7366 -4284.05
+163.41 -47.0004 -4404.96
+164.372 -47.5289 -4294.71
+164.538 -47.3842 -4403.15
+164.943 -47.5659 -2866.18
+165.114 -47.7357 -2416.75
+164.991 -48.1075 -1913.31
+165.287 -48.136 -1818.31
+165.195 -47.9415 -1833.65
+165.351 -47.8201 -2298.57
+165.196 -47.5477 -3648.37
+165.419 -47.504 -3126.04
+165.073 -47.412 -2563.4
+165.272 -47.4219 -2916.94
+164.701 -47.2048 -5037.45
+164.812 -47.3977 -5086.01
+165.235 -47.2959 -1801.14
+165.986 -46.8675 -463.57
+166.059 -46.7755 -450.91
+165.657 -47.1307 -1149.48
+165.654 -47.2809 -2357.55
+164.839 -47.7248 -2816.91
+164.902 -47.9005 -2236.19
+164.259 -46.9507 -4407.86
+164.343 -46.7412 -4381.28
+165.444 -46.3563 -3494.48
+165.552 -46.2455 -3151.86
+164.88 -45.9835 -3677.98
+164.277 -45.8281 -4508.94
+164.57 -45.9268 -4224.76
+164.79 -45.7979 -4353.54
+163.994 -45.6513 -4534.93
+164.155 -45.3843 -4752.53
+163.939 -47.3496 -4488.91
+164.27 -47.3737 -3914.59
+164.994 -46.4463 -4742.47
+165.163 -46.3587 -4966.52
+164.608 -46.7 -4372.33
+164.59 -46.8775 -4557.21
+164.212 -47.1707 -4512.05
+164.441 -47.237 -4315.76
+165.436 -47.1982 -2070.09
+165.436 -47.0213 -1327.92
+164.719 -47.0327 -4837.76
+164.888 -46.9218 -5213.22
+164.938 -47.083 -4881.33
+164.991 -47.2522 -3649.31
+164.394 -45.5895 -4724.97
+164.566 -45.7429 -4452.36
+163.942 -48.505 -4613.83
+164.284 -48.5653 -5578.22
+165.109 -48.3063 -2045.32
+165.355 -48.3055 -2480.1
+163.742 -46.7777 -4167.08
+164.056 -46.8129 -4304.23
+165.149 -46.9708 -2371.55
+165.197 -47.1361 -2068.65
+174.817 -41.0694 -22.4
+174.799 -41.0592 -62.15
+174.819 -41.0529 -42.85
+174.833 -41.0499 -22.27
+174.843 -41.0404 -15.25
+168.212 -46.9664 -23.73
+168.238 -46.9666 -28.53
+174.817 -36.3146 -28.56
+174.848 -36.3072 -40.13
+174.844 -36.3384 -32.84
+175.132 -35.9307 -45.79
+175.122 -35.973 -51.72
+175.155 -35.9668 -65.05
+175.165 -35.9211 -55.33
+175.191 -35.932 -79.98
+175.066 -35.9192 -89.17
+175.105 -35.9199 -15.13
+175.086 -35.9493 -83.7
+175.117 -35.9436 -65.8
+175.02 -36.1101 -61.33
+175.072 -36.1292 -62.59
+175.113 -36.0652 -75.18
+175.165 -36.0463 -78.66
+174.972 -36.0859 -64.1
+175.017 -36.0645 -68.92
+175.117 -36.0179 -60.49
+175.162 -35.9987 -77.95
+175.159 -36.1009 -72.92
+175.209 -36.1181 -73.74
+175.106 -36.1048 -68.09
+175.12 -36.1397 -59.95
+168.374 -46.6376 -7
+168.393 -46.6328 -7
+168.452 -46.6363 -4.26
+168.484 -46.6402 -7.27
+168.39 -46.6898 -13.88
+168.419 -46.6729 -16.2
+168.22 -46.6635 -27
+168.254 -46.6409 -27
+168.243 -46.6073 -27
+168.285 -46.6162 -24.72
+168.381 -46.6215 -7
+168.379 -46.609 -7
+168.354 -46.6604 -20.24
+168.392 -46.6614 -10.13
+168.582 -46.628 -7.52
+168.637 -46.6261 -11.42
+168.196 -46.5943 -27
+168.202 -46.6325 -27
+168.451 -46.7333 -17
+168.484 -46.6689 -9.01
+168.502 -46.6897 -14.01
+168.543 -46.7002 -17
+168.588 -46.7257 -11.74
+168.588 -46.7585 -19.8
+168.636 -46.7498 -21.56
+168.568 -46.8114 -33.88
+168.586 -46.8433 -47
+168.607 -46.7837 -26.93
+168.627 -46.8184 -43.36
+168.42 -46.7764 -17
+168.453 -46.7607 -17
+168.472 -46.8206 -7.74
+168.415 -46.7181 -17
+168.412 -46.7464 -17
+168.369 -46.7245 -21.32
+168.363 -46.7626 -20.96
+168.423 -46.8307 -17
+168.434 -46.8032 -11.72
+168.336 -46.4854 2
+168.329 -46.4971 1.32
+168.315 -46.4641 1.96
+168.322 -46.4745 1.39
diff --git a/doc/examples/tides/coefficients b/doc/examples/tides/coefficients
new file mode 100644
index 0000000..e20674b
--- /dev/null
+++ b/doc/examples/tides/coefficients
@@ -0,0 +1,6412 @@
+177.924	-39.191	0.631087 171.060089
+177.91	-39.223	0.635039 170.582474
+177.863	-39.264	0.649093 169.029022
+177.857	-39.239	0.656701 168.606400
+177.847	-39.236	0.657167 168.458893
+177.851	-39.215	0.660134 168.330734
+177.839	-39.182	0.662873 168.126251
+177.819	-39.1662	0.664021 167.970688
+177.839	-39.145	0.666840 167.943222
+177.716	-39.055	0.666941 167.428055
+177.661	-39.0565	0.666507 167.245270
+177.607	-39.0544	0.666602 167.058472
+177.559	-39.0555	0.666578 166.865646
+177.513	-39.056	0.666692 166.692261
+177.453	-39.0637	0.666332 166.470123
+177.391	-39.069	0.666249 166.258682
+177.336	-39.0818	0.666094 166.061386
+177.274	-39.097	0.666111 165.842758
+177.223	-39.1163	0.666015 165.655167
+177.17	-39.1345	0.665873 165.464554
+177.118	-39.153	0.665614 165.280838
+177.077	-39.1745	0.665160 165.121796
+177.04	-39.201	0.664504 164.986267
+177.034	-39.237	0.663245 164.891800
+177.017	-39.263	0.662591 164.803055
+176.98	-39.2986	0.662254 164.643585
+176.938	-39.338	0.662377 164.468811
+176.917	-39.3486	0.662621 164.399292
+176.891	-39.384	0.662657 164.247482
+176.874	-39.434	0.662600 164.040237
+176.875	-39.466	0.662388 163.916183
+176.889	-39.481	0.661677 163.851562
+176.922	-39.478	0.660297 163.872009
+176.922	-39.556	0.656803 163.467453
+176.961	-39.622	0.653155 163.224960
+177.025	-39.651	0.648965 163.112518
+177.076	-39.637	0.643537 163.175140
+177.096	-39.646	0.638060 163.191528
+177.074	-39.6649	0.634243 163.049561
+177.052	-39.6888	0.632055 162.985306
+177.011	-39.7312	0.629521 162.825211
+176.995	-39.7876	0.627297 162.682053
+177.003	-39.841	0.624912 162.555237
+176.979	-39.863	0.623987 162.442871
+176.965	-39.883	0.623547 162.376068
+176.959	-39.91	0.623114 162.294907
+176.931	-39.938	0.622908 162.161346
+176.907	-39.9855	0.622665 161.970398
+176.887	-40.0275	0.622587 161.761780
+176.878	-40.062	0.622346 161.571167
+176.892	-40.079	0.621935 161.489594
+176.869	-40.1	0.621950 161.263535
+176.87	-40.132	0.620752 161.050461
+176.845	-40.144	0.620464 160.884048
+176.83	-40.176	0.619402 160.705017
+176.787	-40.22	0.618298 160.435318
+176.74	-40.229	0.618170 160.314011
+176.708	-40.247	0.618050 160.235168
+176.682	-40.2806	0.618069 160.140213
+176.665	-40.313	0.618321 160.051086
+176.67	-40.326	0.618402 160.022278
+176.638	-40.384	0.619886 159.797592
+176.633	-40.415	0.620930 159.627441
+176.623	-40.431	0.621815 159.503372
+176.631	-40.454	0.622385 159.324356
+176.622	-40.49	0.623745 158.837585
+176.556	-40.498	0.625845 158.333908
+176.492	-40.531	0.625932 157.904007
+176.472	-40.557	0.625585 157.715073
+176.469	-40.575	0.625330 157.598480
+176.42	-40.6109	0.625296 157.210129
+176.39	-40.64	0.625080 156.971954
+176.367	-40.677	0.624927 156.692703
+176.311	-40.717	0.625292 156.289459
+176.288	-40.75	0.625086 156.066727
+176.285	-40.768	0.624970 155.959686
+176.269	-40.782	0.625231 155.818756
+176.256	-40.8186	0.624940 155.535110
+176.242	-40.859	0.624614 155.169250
+176.222	-40.88	0.624611 154.926300
+176.219	-40.899	0.624078 154.754257
+176.227	-40.905	0.623625 154.732620
+176.19	-40.9306	0.623166 154.357269
+176.145	-40.96	0.622889 154.052826
+176.125	-41.002	0.622192 153.763168
+176.105	-41.022	0.622004 153.575836
+176.098	-41.057	0.621252 153.337204
+176.068	-41.103	0.620721 152.929672
+176.062	-41.13	0.620276 152.682266
+176.031	-41.1542	0.620282 152.299286
+175.995	-41.178	0.620126 151.968765
+175.985	-41.2056	0.619103 151.737793
+175.962	-41.245	0.617588 151.355042
+175.912	-41.256	0.617618 150.980621
+175.88	-41.275	0.617238 150.758041
+175.862	-41.317	0.615556 150.444809
+175.808	-41.36	0.613665 149.923676
+175.741	-41.391	0.612254 149.510025
+175.675	-41.415	0.611056 149.216019
+175.636	-41.4454	0.611211 149.061966
+175.598	-41.478	0.611590 148.797821
+175.513	-41.508	0.612288 148.242798
+175.469	-41.5417	0.612361 147.823532
+175.43	-41.573	0.609695 147.283463
+175.365	-41.572	0.608354 146.858749
+175.358	-41.586	0.607767 146.819275
+175.293	-41.614	0.603611 146.302292
+175.236	-41.6086	0.595152 145.607147
+175.218	-41.5431	0.578007 144.252487
+175.193	-41.5264	0.571785 144.307388
+175.208	-41.5004	0.565256 144.018677
+175.207	-41.4754	0.561694 144.020844
+175.221	-41.4552	0.559586 143.953964
+175.218	-41.4488	0.558973 143.965317
+175.216	-41.4344	0.557814 143.942200
+175.201	-41.4224	0.556469 143.961044
+175.116	-41.3892	0.548922 144.212372
+175.047	-41.3745	0.544152 144.401733
+175.014	-41.3912	0.543433 144.540512
+174.991	-41.3932	0.542138 144.546844
+174.918	-41.4399	0.534035 144.927902
+174.902	-41.4211	0.517274 143.745743
+174.867	-41.4089	0.492092 142.893280
+174.875	-41.3882	0.475397 142.043411
+174.849	-41.3585	0.460849 142.136688
+174.858	-41.3374	0.462661 142.862854
+174.874	-41.327	0.467102 143.295700
+174.89	-41.3061	0.470843 143.387589
+174.904	-41.2838	0.472304 143.372726
+174.912	-41.2592	0.472701 143.334457
+174.901	-41.255	0.472586 143.310501
+174.9	-41.2378	0.472518 143.301315
+174.879	-41.2297	0.472317 143.271057
+174.842	-41.2297	0.472035 143.231827
+174.787	-41.2652	0.472178 143.117477
+174.789	-41.2826	0.472434 143.098328
+174.804	-41.2879	0.472514 143.099548
+174.804	-41.3044	0.473842 143.129379
+174.796	-41.3139	0.474550 143.148209
+174.801	-41.318	0.474696 143.126724
+174.81	-41.3137	0.474456 143.104980
+174.825	-41.2863	0.472022 143.088104
+174.833	-41.2917	0.471124 143.053238
+174.827	-41.3158	0.467100 142.623993
+174.833	-41.3317	0.462001 142.329178
+174.809	-41.3472	0.452767 142.221466
+174.802	-41.3303	0.446537 142.096878
+174.796	-41.3301	0.445966 142.126144
+174.791	-41.3483	0.445085 142.388077
+174.786	-41.3435	0.441903 142.364838
+174.766	-41.3509	0.434411 142.858658
+174.744	-41.3484	0.420737 143.252930
+174.716	-41.363	0.397206 144.726257
+174.693	-41.348	0.344829 145.593307
+174.66	-41.3423	0.285130 148.238083
+174.631	-41.321	0.187961 157.826126
+174.613	-41.278	0.101240 -151.027298
+174.641	-41.2409	0.164284 -85.741188
+174.662	-41.2482	0.182516 -80.882942
+174.693	-41.2216	0.228769 -74.566513
+174.714	-41.2191	0.240281 -73.411301
+174.739	-41.1732	0.280281 -71.998169
+174.78	-41.1424	0.317540 -69.151886
+174.804	-41.1151	0.348403 -66.509895
+174.832	-41.1074	0.374998 -63.473213
+174.838	-41.0942	0.384488 -63.154381
+174.852	-41.091	0.389932 -63.116241
+174.859	-41.0952	0.390989 -63.076469
+174.861	-41.102	0.392076 -62.963745
+174.854	-41.1076	0.392936 -62.878696
+174.85	-41.1133	0.393395 -62.837658
+174.841	-41.1154	0.393665 -62.812031
+174.837	-41.1203	0.393718 -62.822529
+174.837	-41.1247	0.393749 -62.829735
+174.84	-41.1277	0.393744 -62.834282
+174.842	-41.1247	0.393717 -62.832291
+174.848	-41.1203	0.393650 -62.841949
+174.855	-41.1156	0.393334 -62.883820
+174.861	-41.1084	0.392766 -62.946308
+174.867	-41.1032	0.392131 -63.028503
+174.865	-41.0979	0.391571 -63.060642
+174.866	-41.0917	0.391290 -63.144852
+174.864	-41.0836	0.391373 -63.205147
+174.861	-41.075	0.392132 -63.287270
+174.855	-41.0721	0.392725 -63.374924
+174.851	-41.0656	0.394791 -63.424564
+174.838	-41.0638	0.397577 -63.702412
+174.841	-41.0556	0.406009 -63.588306
+174.853	-41.0449	0.420023 -62.984119
+174.87	-41.0306	0.437318 -61.983463
+174.896	-41.0297	0.450852 -60.980698
+174.912	-41.0178	0.458605 -60.777813
+174.94	-40.9974	0.475029 -60.157875
+174.966	-40.9614	0.498498 -59.708817
+174.973	-40.9242	0.521544 -59.522144
+174.982	-40.8844	0.570873 -57.717476
+175.035	-40.8512	0.622244 -56.202415
+175.058	-40.8277	0.635991 -56.474842
+175.086	-40.7801	0.657980 -56.784992
+175.113	-40.7356	0.678176 -56.918472
+175.142	-40.6919	0.695729 -56.932354
+175.162	-40.6433	0.715147 -57.002567
+175.182	-40.5966	0.732236 -56.989220
+175.198	-40.5375	0.751430 -57.177864
+175.214	-40.4793	0.767944 -57.249847
+175.223	-40.4254	0.779556 -57.431568
+175.228	-40.372	0.789930 -57.440578
+175.226	-40.321	0.800310 -57.467419
+175.217	-40.274	0.809164 -57.464180
+175.2	-40.188	0.826331 -57.358261
+175.183	-40.143	0.834621 -57.322521
+175.151	-40.09	0.845571 -57.247757
+175.099	-40.0406	0.857752 -57.253334
+175.046	-39.985	0.872451 -57.162022
+174.978	-39.945	0.886594 -57.229633
+174.953	-39.915	0.894308 -57.159145
+174.927	-39.899	0.898920 -57.164513
+174.864	-39.873	0.909760 -57.246044
+174.794	-39.857	0.919142 -57.375340
+174.763	-39.865	0.922968 -57.476482
+174.709	-39.865	0.935164 -57.502399
+174.651	-39.836	0.954940 -57.261997
+174.554	-39.817	0.990449 -57.116985
+174.504	-39.778	1.025227 -56.658066
+174.429	-39.741	1.071955 -56.676838
+174.388	-39.699	1.105503 -56.961685
+174.346	-39.655	1.127203 -57.373100
+174.292	-39.624	1.141034 -57.866447
+174.254	-39.615	1.148441 -58.175213
+174.177	-39.5873	1.165531 -58.923275
+174.085	-39.578	1.178041 -59.925858
+174.048	-39.563	1.184747 -60.367531
+173.987	-39.553	1.192066 -61.044228
+173.95	-39.539	1.197906 -61.582233
+173.933	-39.523	1.201375 -61.875221
+173.901	-39.502	1.204791 -62.292358
+173.857	-39.459	1.209885 -62.884937
+173.846	-39.458	1.209818 -62.954590
+173.819	-39.429	1.212750 -63.395229
+173.797	-39.418	1.213107 -63.654831
+173.778	-39.388	1.215131 -64.156143
+173.764	-39.3338	1.217985 -64.993393
+173.75	-39.277	1.216005 -65.842270
+173.77	-39.249	1.215900 -66.357025
+173.77	-39.23	1.214294 -66.593544
+173.802	-39.1864	1.211537 -67.216904
+173.849	-39.15	1.210253 -67.726501
+173.912	-39.12	1.209792 -68.153473
+173.938	-39.116	1.210066 -68.275436
+173.995	-39.086	1.210065 -68.557503
+174.024	-39.054	1.210144 -68.763832
+174.045	-39.06	1.211624 -68.830589
+174.079	-39.051	1.212482 -68.965813
+174.135	-39.0217	1.213792 -69.226059
+174.183	-38.994	1.215771 -69.463867
+174.238	-38.983	1.219438 -69.686798
+174.305	-38.983	1.224221 -69.898773
+174.339	-38.994	1.226611 -69.979897
+174.403	-38.984	1.228338 -70.172470
+174.452	-38.943	1.227801 -70.411278
+174.501	-38.888	1.226978 -70.717995
+174.52	-38.887	1.227592 -70.767578
+174.561	-38.855	1.227633 -70.948563
+174.588	-38.804	1.225938 -71.185074
+174.602	-38.7517	1.222784 -71.418213
+174.615	-38.701	1.219360 -71.654945
+174.623	-38.6383	1.213546 -71.935768
+174.63	-38.58	1.207919 -72.157402
+174.633	-38.529	1.202987 -72.342384
+174.627	-38.501	1.199951 -72.415482
+174.637	-38.454	1.195417 -72.595909
+174.631	-38.387	1.187214 -72.783768
+174.674	-38.353	1.183834 -72.942780
+174.708	-38.309	1.180919 -73.066818
+174.706	-38.2509	1.177764 -73.151787
+174.708	-38.195	1.174230 -73.273880
+174.692	-38.1574	1.171162 -73.326340
+174.682	-38.1324	1.168936 -73.362724
+174.68	-38.11	1.166660 -73.390320
+174.689	-38.12	1.167053 -73.396072
+174.736	-38.122	1.166826 -73.464478
+174.755	-38.108	1.166360 -73.505341
+174.77	-38.079	1.165237 -73.560265
+174.778	-38.04	1.163668 -73.622154
+174.798	-38.019	1.163043 -73.683441
+174.779	-37.972	1.160758 -73.741966
+174.779	-37.938	1.158997 -73.800499
+174.756	-37.892	1.156144 -73.850250
+174.763	-37.878	1.155302 -73.882050
+174.757	-37.864	1.154358 -73.888657
+174.774	-37.836	1.153223 -73.939064
+174.825	-37.822	1.153340 -74.006905
+174.833	-37.786	1.152794 -74.070992
+174.82	-37.7342	1.151063 -74.151970
+174.808	-37.679	1.148566 -74.262291
+174.794	-37.634	1.145705 -74.349777
+174.77	-37.6	1.142820 -74.390465
+174.764	-37.552	1.139828 -74.476830
+174.731	-37.4937	1.134874 -74.543587
+174.7	-37.433	1.129676 -74.581718
+174.704	-37.381	1.127280 -74.633522
+174.677	-37.3326	1.124544 -74.669716
+174.653	-37.2871	1.121835 -74.716530
+174.613	-37.2136	1.117777 -74.781883
+174.576	-37.1423	1.114599 -74.841858
+174.533	-37.068	1.112498 -74.936310
+174.496	-37.051	1.110161 -74.961563
+174.486	-37.043	1.108594 -74.974068
+174.483	-37.018	1.106207 -75.011131
+174.154	-41.5921	0.579793 168.414474
+174.166	-41.6076	0.589661 166.927673
+174.163	-41.6375	0.607131 164.373489
+174.158	-41.667	0.614103 162.933289
+174.179	-41.7087	0.619008 161.092911
+174.213	-41.7292	0.621802 159.811508
+174.253	-41.7338	0.622626 158.264725
+174.276	-41.7294	0.624850 156.699677
+174.273	-41.7473	0.639791 153.946793
+174.218	-41.7938	0.653979 150.355423
+174.195	-41.8376	0.652106 148.936340
+174.163	-41.8732	0.653018 147.866089
+174.105	-41.9148	0.654685 146.723785
+174.083	-41.947	0.654340 146.184860
+174.017	-41.9943	0.656143 145.207428
+173.964	-42.05	0.655784 144.379242
+173.946	-42.0786	0.655169 144.063599
+173.922	-42.127	0.654047 143.592819
+173.938	-42.166	0.651690 143.280975
+173.897	-42.186	0.651308 142.934631
+173.854	-42.2291	0.650579 142.611725
+173.805	-42.265	0.651007 142.358749
+173.759	-42.284	0.651925 142.195465
+173.749	-42.32	0.652043 142.043243
+173.692	-42.358	0.653412 141.801697
+173.68	-42.399	0.653891 141.612656
+173.716	-42.425	0.652970 141.501480
+173.692	-42.433	0.653266 141.405533
+173.632	-42.417	0.653212 141.335541
+173.582	-42.448	0.653441 141.245972
+173.537	-42.469	0.653705 141.200439
+173.501	-42.529	0.655129 141.104172
+173.516	-42.555	0.655846 141.073868
+173.482	-42.586	0.657504 141.097534
+173.448	-42.6416	0.661628 141.068619
+173.417	-42.6985	0.668032 140.985229
+173.386	-42.7554	0.675134 140.833359
+173.367	-42.799	0.682222 140.686600
+173.339	-42.8262	0.688892 140.600052
+173.312	-42.854	0.695450 140.468063
+173.316	-42.885	0.700820 140.168259
+173.266	-42.927	0.717920 139.753708
+173.223	-42.962	0.731011 139.191437
+173.132	-42.99	0.747935 138.662094
+173.073	-43.053	0.763126 137.804794
+173.039	-43.048	0.770669 137.777328
+172.982	-43.076	0.780812 137.281570
+172.927	-43.0887	0.789876 136.959732
+172.875	-43.102	0.795881 136.665329
+172.828	-43.136	0.801355 136.268585
+172.807	-43.134	0.803336 136.245773
+172.767	-43.1785	0.807657 135.828720
+172.741	-43.2255	0.812062 135.403122
+172.717	-43.279	0.817374 134.918716
+172.713	-43.336	0.821173 134.397583
+172.714	-43.4	0.826863 133.766632
+172.713	-43.445	0.831351 133.235092
+172.72	-43.4992	0.834591 132.677032
+172.748	-43.554	0.836788 132.137405
+172.775	-43.57	0.836891 131.963242
+172.773	-43.581	0.838131 131.916428
+172.78	-43.585	0.838417 131.876831
+172.796	-43.581	0.837816 131.805344
+172.803	-43.588	0.840577 131.859283
+172.777	-43.595	0.849464 132.424133
+172.753	-43.6009	0.856523 132.820328
+172.723	-43.607	0.869941 134.261353
+172.711	-43.603	0.873033 134.635712
+172.703	-43.61	0.875348 134.681107
+172.672	-43.607	0.879246 134.890335
+172.65	-43.62	0.881200 134.832642
+172.643	-43.637	0.882003 134.766190
+172.653	-43.64	0.881707 134.745895
+172.662	-43.631	0.880871 134.766815
+172.654	-43.65	0.882139 134.736374
+172.67	-43.662	0.882907 134.687958
+172.678	-43.636	0.880318 134.699936
+172.684	-43.638	0.879854 134.659256
+172.685	-43.651	0.880869 134.623306
+172.694	-43.653	0.880942 134.600342
+172.711	-43.625	0.876249 134.519135
+172.735	-43.622	0.865618 133.299362
+172.746	-43.624	0.862264 132.854599
+172.759	-43.617	0.856787 132.450424
+172.781	-43.62	0.851472 132.033875
+172.8	-43.611	0.846372 131.822327
+172.812	-43.616	0.844548 131.560303
+172.822	-43.604	0.840257 131.439819
+172.826	-43.611	0.839848 131.323517
+172.821	-43.6278	0.841534 131.301468
+172.817	-43.645	0.843167 131.320679
+172.815	-43.66	0.844148 131.317261
+172.829	-43.649	0.843368 131.287857
+172.83	-43.6335	0.841945 131.271454
+172.834	-43.6207	0.840553 131.267685
+172.842	-43.6108	0.838894 131.246262
+172.852	-43.601	0.835996 131.187088
+172.863	-43.612	0.835209 130.933075
+172.873	-43.61	0.834242 130.888916
+172.869	-43.617	0.834613 130.826019
+172.877	-43.621	0.834385 130.780579
+172.887	-43.614	0.833332 130.750366
+172.899	-43.619	0.832912 130.597488
+172.898	-43.628	0.833610 130.525620
+172.907	-43.624	0.833012 130.515579
+172.892	-43.647	0.837040 130.590607
+172.893	-43.661	0.838513 130.567352
+172.881	-43.671	0.839840 130.623718
+172.888	-43.68	0.840311 130.589905
+172.896	-43.682	0.840516 130.571640
+172.899	-43.665	0.838846 130.543427
+172.913	-43.6432	0.835810 130.475189
+172.927	-43.622	0.830928 130.301300
+172.942	-43.637	0.830654 129.942902
+172.958	-43.639	0.829646 129.806808
+172.974	-43.634	0.827992 129.657349
+172.996	-43.646	0.828116 129.062317
+173.004	-43.654	0.827702 128.822083
+173.019	-43.65	0.826134 128.662292
+173.043	-43.653	0.824679 128.049133
+173.031	-43.662	0.826799 127.799919
+173.067	-43.677	0.826100 126.513542
+173.056	-43.691	0.827755 126.269768
+173.072	-43.697	0.826863 126.099617
+173.082	-43.683	0.824471 126.046227
+173.104	-43.702	0.821508 124.618797
+173.097	-43.719	0.822548 123.700310
+173.125	-43.74	0.817742 122.468239
+173.123	-43.776	0.816342 120.399460
+173.1	-43.775	0.818316 119.879753
+173.109	-43.798	0.815001 119.109367
+173.091	-43.81	0.814846 118.296089
+173.101	-43.817	0.813649 118.192780
+173.09	-43.824	0.813409 117.652542
+173.099	-43.832	0.811587 117.401421
+173.078	-43.833	0.813348 116.599709
+173.071	-43.852	0.811833 115.796478
+173.058	-43.849	0.812364 115.389717
+173.039	-43.865	0.810808 114.558525
+173.016	-43.874	0.809584 113.815178
+172.995	-43.885	0.807536 113.193649
+172.977	-43.889	0.807247 112.721413
+172.964	-43.883	0.809589 112.594551
+172.96	-43.869	0.814589 113.014893
+172.941	-43.864	0.821285 113.510139
+172.937	-43.854	0.827599 114.039040
+172.942	-43.815	0.838660 114.481499
+172.963	-43.799	0.842194 114.594063
+172.94	-43.797	0.841109 114.469887
+172.937	-43.79	0.842505 114.479752
+172.96	-43.783	0.844193 114.578987
+172.944	-43.773	0.844128 114.498947
+172.955	-43.765	0.844563 114.522781
+172.926	-43.759	0.844487 114.454285
+172.922	-43.774	0.843819 114.439850
+172.915	-43.76	0.844292 114.434967
+172.905	-43.777	0.843775 114.398712
+172.915	-43.781	0.843484 114.407692
+172.92	-43.793	0.841721 114.365707
+172.912	-43.795	0.840978 114.288445
+172.916	-43.803	0.839584 114.270004
+172.898	-43.82	0.836560 114.068260
+172.91	-43.849	0.830633 113.884605
+172.907	-43.861	0.829112 113.661545
+172.938	-43.88	0.815218 112.678093
+172.943	-43.893	0.807426 112.083664
+172.93	-43.899	0.804989 111.634743
+172.899	-43.888	0.806042 110.957390
+172.867	-43.893	0.804500 110.518867
+172.858	-43.889	0.805194 110.333344
+172.853	-43.875	0.807001 110.192741
+172.831	-43.888	0.804861 109.946312
+172.821	-43.885	0.805034 109.779160
+172.83	-43.875	0.806948 109.741608
+172.807	-43.875	0.806051 109.544090
+172.804	-43.869	0.806685 109.464813
+172.793	-43.867	0.806571 109.360718
+172.794	-43.861	0.807136 109.339859
+172.78	-43.8663	0.806439 109.226273
+172.756	-43.848	0.808112 108.900635
+172.738	-43.852	0.807258 108.769150
+172.736	-43.831	0.809127 108.629990
+172.704	-43.826	0.808512 108.408508
+172.633	-43.8297	0.805531 107.918289
+172.562	-43.833	0.803819 107.525177
+172.507	-43.8386	0.803033 107.284180
+172.423	-43.8478	0.804087 106.888092
+172.317	-43.864	0.805975 106.218521
+170.793	-42.884	1.007543 -34.088470
+170.848	-42.8383	1.006619 -34.345062
+170.894	-42.7834	1.005917 -34.537476
+170.935	-42.733	1.006774 -34.664307
+170.978	-42.6963	1.008805 -34.739227
+171.019	-42.663	1.011307 -34.813328
+171.046	-42.651	1.012837 -34.840660
+171.093	-42.604	1.016356 -34.970547
+171.124	-42.5648	1.019358 -35.071407
+171.153	-42.527	1.022737 -35.187763
+171.175	-42.4824	1.026112 -35.338535
+171.19	-42.443	1.029377 -35.484814
+171.208	-42.421	1.031803 -35.557945
+171.217	-42.383	1.035401 -35.728668
+171.238	-42.378	1.037181 -35.730072
+171.27	-42.3192	1.043154 -35.992485
+171.304	-42.267	1.049476 -36.219879
+171.309	-42.2138	1.054330 -36.521011
+171.317	-42.1618	1.060106 -36.873032
+171.327	-42.114	1.065791 -37.233311
+171.341	-42.087	1.069580 -37.455517
+171.363	-42.065	1.073365 -37.625027
+171.366	-42.036	1.075927 -37.850323
+171.392	-42.022	1.079156 -37.978127
+171.397	-41.996	1.080827 -38.156693
+171.409	-41.9556	1.085219 -38.458538
+171.417	-41.919	1.089727 -38.754322
+171.452	-41.89	1.095874 -38.989525
+171.456	-41.807	1.104675 -39.749191
+171.451	-41.777	1.109752 -40.133915
+171.468	-41.748	1.118741 -40.588017
+171.548	-41.75	1.142732 -41.165642
+171.586	-41.731	1.146586 -41.592083
+171.621	-41.743	1.152919 -41.730854
+171.659	-41.742	1.156146 -41.935825
+171.715	-41.721	1.159469 -42.288181
+171.767	-41.686	1.162309 -42.718723
+171.807	-41.6603	1.164545 -43.017632
+171.86	-41.624	1.167919 -43.371468
+171.901	-41.5748	1.171363 -43.792469
+171.929	-41.5321	1.174240 -44.165356
+171.957	-41.4893	1.177756 -44.607155
+171.985	-41.446	1.180906 -45.113560
+172.021	-41.4215	1.182950 -45.460648
+172.063	-41.386	1.184663 -45.781471
+172.08	-41.335	1.184934 -46.137272
+172.088	-41.2667	1.184783 -46.651188
+172.095	-41.2125	1.185067 -47.073570
+172.101	-41.1508	1.185557 -47.565552
+172.097	-41.098	1.185895 -48.013577
+172.109	-41.032	1.187956 -48.631454
+172.1	-40.975	1.188344 -49.213261
+172.091	-40.916	1.188975 -49.943249
+172.107	-40.886	1.192243 -50.430214
+172.132	-40.85	1.196070 -51.039520
+172.175	-40.81	1.201366 -51.767502
+172.214	-40.777	1.206652 -52.400169
+172.25	-40.768	1.212327 -52.809010
+172.286	-40.751	1.216409 -53.217525
+172.325	-40.719	1.219004 -53.843143
+172.364	-40.701	1.222750 -54.279514
+172.394	-40.667	1.223964 -54.823059
+172.441	-40.631	1.226641 -55.634060
+172.496	-40.6038	1.228755 -56.290920
+172.548	-40.569	1.230186 -56.889812
+172.589	-40.546	1.232709 -57.394913
+172.643	-40.506	1.235745 -58.297760
+172.695	-40.499	1.241810 -59.089813
+172.735	-40.51	1.247186 -59.584999
+172.813	-40.504	1.251218 -60.586197
+172.868	-40.5104	1.254423 -61.395954
+172.927	-40.517	1.257306 -62.300949
+172.985	-40.531	1.261268 -63.378880
+173.005	-40.543	1.266994 -63.878864
+173.017	-40.553	1.275602 -64.256950
+172.975	-40.537	1.323611 -63.960159
+172.898	-40.52	1.357409 -64.136993
+172.838	-40.5165	1.370120 -64.417580
+172.777	-40.513	1.376379 -64.697067
+172.733	-40.525	1.377142 -64.905190
+172.721	-40.548	1.374518 -65.045815
+172.685	-40.585	1.372253 -65.320656
+172.678	-40.626	1.368277 -65.532448
+172.682	-40.6675	1.364783 -65.729836
+172.686	-40.71	1.361799 -65.937508
+172.7	-40.735	1.359432 -66.052620
+172.732	-40.774	1.355728 -66.243309
+172.768	-40.795	1.352929 -66.389076
+172.794	-40.815	1.350814 -66.535408
+172.838	-40.833	1.346784 -66.717339
+172.89	-40.833	1.342354 -66.854767
+172.91	-40.815	1.338677 -66.906166
+172.919	-40.801	1.334461 -66.969467
+172.94	-40.813	1.330216 -67.045227
+172.956	-40.812	1.328531 -67.106247
+172.954	-40.789	1.324203 -67.145988
+172.985	-40.782	1.312242 -67.380066
+172.995	-40.795	1.307045 -67.633003
+173.014	-40.816	1.301973 -67.891167
+173.015	-40.851	1.299873 -68.168716
+173.042	-40.854	1.297552 -68.208511
+173.056	-40.859	1.296428 -68.285255
+173.064	-40.879	1.297125 -68.435310
+173.045	-40.889	1.300230 -68.443909
+173.062	-40.912	1.300984 -68.623116
+173.053	-40.9336	1.304363 -68.699593
+173.066	-40.95	1.305778 -68.816063
+173.067	-40.963	1.308067 -68.877457
+173.051	-40.967	1.311505 -68.822128
+173.033	-40.991	1.317080 -68.861984
+173.007	-40.993	1.320660 -68.785255
+173.008	-41.01	1.321299 -68.866226
+173.018	-41.017	1.320800 -68.933182
+173.02	-41.046	1.323843 -69.059937
+173.004	-41.052	1.326121 -69.018013
+172.998	-41.065	1.327886 -69.031509
+173.03	-41.09	1.328336 -69.247116
+173.02	-41.139	1.334587 -69.360695
+173.076	-41.205	1.339381 -69.733246
+173.089	-41.2372	1.342883 -69.833870
+173.088	-41.239	1.343026 -69.837021
+173.117	-41.256	1.343658 -69.978134
+173.184	-41.277	1.342930 -70.305222
+173.203	-41.299	1.343858 -70.404938
+173.232	-41.28	1.340446 -70.506355
+173.249	-41.28	1.339286 -70.581345
+173.275	-41.257	1.334427 -70.703506
+173.283	-41.266	1.334172 -70.745178
+173.303	-41.253	1.331916 -70.816978
+173.327	-41.221	1.325685 -70.947006
+173.321	-41.204	1.322215 -70.961555
+173.361	-41.18	1.311371 -71.192139
+173.401	-41.158	1.302739 -71.337379
+173.414	-41.16	1.301864 -71.368958
+173.409	-41.142	1.299126 -71.351524
+173.415	-41.137	1.296961 -71.387772
+173.434	-41.142	1.293887 -71.524582
+173.437	-41.162	1.294071 -71.595436
+173.48	-41.158	1.289968 -71.731354
+173.505	-41.135	1.286173 -71.774529
+173.512	-41.106	1.280927 -71.806503
+173.544	-41.098	1.274972 -71.982430
+173.571	-41.065	1.266048 -72.084694
+173.584	-41.066	1.263514 -72.182388
+173.593	-41.052	1.259543 -72.227066
+173.614	-41.07	1.257200 -72.383240
+173.632	-41.075	1.256351 -72.408745
+173.624	-41.09	1.257308 -72.355637
+173.628	-41.097	1.257558 -72.363548
+173.638	-41.099	1.257432 -72.387550
+173.647	-41.091	1.257119 -72.408371
+173.657	-41.1	1.259337 -72.316238
+173.65	-41.11	1.260107 -72.264870
+173.665	-41.112	1.260283 -72.297989
+173.673	-41.097	1.259593 -72.368156
+173.659	-41.09	1.257494 -72.431465
+173.663	-41.079	1.256098 -72.464882
+173.693	-41.0763	1.257097 -72.435776
+173.721	-41.07	1.260248 -72.329926
+173.722	-41.061	1.261490 -72.335495
+173.751	-41.056	1.264883 -72.208511
+173.746	-41.0523	1.264624 -72.245178
+173.739	-41.048	1.264534 -72.286209
+173.751	-41.037	1.266402 -72.247658
+173.744	-41.034	1.266524 -72.267479
+173.726	-41.048	1.263451 -72.338600
+173.718	-41.039	1.263660 -72.391098
+173.71	-41.051	1.261391 -72.423187
+173.689	-41.057	1.256571 -72.532898
+173.672	-41.035	1.248165 -72.623192
+173.715	-41.007	1.235392 -72.849770
+173.724	-41.015	1.233020 -72.913979
+173.733	-41.011	1.231798 -72.918404
+173.734	-41.001	1.229932 -72.925323
+173.748	-41.006	1.228083 -72.994965
+173.765	-40.975	1.217561 -72.932594
+173.776	-40.991	1.208994 -72.973022
+173.797	-40.985	1.204242 -73.043594
+173.785	-40.968	1.200515 -73.059204
+173.794	-40.964	1.186517 -73.177353
+173.804	-40.973	1.174966 -73.363060
+173.81	-40.963	1.169686 -73.426353
+173.805	-40.955	1.155518 -73.674957
+173.835	-40.942	1.043110 -76.739914
+173.834	-40.9264	0.875429 -84.528023
+173.856	-40.931	0.846866 -85.538971
+173.844	-40.945	0.845017 -85.594482
+173.844	-40.959	0.844559 -85.600250
+173.834	-40.963	0.844848 -85.584076
+173.84	-40.975	0.844728 -85.610657
+173.833	-40.984	0.844930 -85.608994
+173.846	-40.992	0.844669 -85.645050
+173.868	-40.985	0.844142 -85.676361
+173.884	-40.958	0.842935 -85.644249
+173.897	-40.961	0.842123 -85.679619
+173.915	-40.945	0.840539 -85.652321
+173.905	-40.93	0.839280 -85.541710
+173.915	-40.925	0.834716 -85.612297
+173.931	-40.9254	0.829381 -85.712189
+173.951	-40.9089	0.821286 -85.622269
+173.978	-40.8887	0.807588 -85.402687
+173.979	-40.9043	0.796826 -85.716225
+174.001	-40.9063	0.787450 -85.854820
+174.022	-40.9107	0.776212 -85.802101
+174.012	-40.9182	0.775006 -85.685837
+174.018	-40.9243	0.774666 -85.655014
+174.011	-40.9295	0.776817 -85.331909
+174.013	-40.9371	0.778991 -85.148643
+173.998	-40.9459	0.792698 -83.000404
+174.001	-40.9338	0.795926 -81.958672
+173.982	-40.9078	0.798575 -81.774620
+173.973	-40.9241	0.797969 -81.865532
+173.975	-40.9379	0.798461 -81.851730
+173.97	-40.9468	0.803628 -81.219742
+173.966	-40.9363	0.804857 -80.874382
+173.95	-40.9404	0.806639 -80.622688
+173.958	-40.958	0.811966 -80.163788
+173.95	-40.971	0.827950 -78.462334
+173.945	-40.9637	0.831664 -77.783173
+173.917	-40.9646	0.839157 -77.033585
+173.904	-40.969	0.842004 -76.887512
+173.898	-40.979	0.843428 -76.897491
+173.901	-40.99	0.843754 -76.952141
+173.914	-40.985	0.843031 -76.995857
+173.929	-40.9848	0.842803 -77.160385
+173.917	-40.9952	0.852965 -76.567047
+173.892	-41.002	0.861202 -75.789650
+173.888	-41.01	0.863822 -75.689957
+173.878	-41.003	0.866071 -75.309738
+173.869	-41.019	0.872795 -74.905228
+173.85	-41.024	0.879488 -74.636719
+173.814	-41.019	0.884757 -74.490654
+173.836	-40.995	0.887048 -74.416420
+173.815	-40.993	0.886894 -74.454552
+173.803	-41.014	0.885764 -74.478523
+173.783	-41.008	0.887906 -74.378929
+173.78	-41.012	0.887873 -74.405800
+173.787	-41.014	0.887329 -74.423492
+173.77	-41.024	0.888105 -74.443459
+173.792	-41.033	0.886546 -74.511345
+173.806	-41.028	0.884846 -74.562126
+173.809	-41.035	0.884205 -74.607803
+173.795	-41.038	0.885106 -74.590965
+173.791	-41.046	0.885429 -74.605438
+173.783	-41.041	0.886161 -74.555420
+173.776	-41.047	0.886466 -74.568924
+173.78	-41.05	0.886317 -74.584373
+173.767	-41.054	0.886825 -74.574661
+173.786	-41.062	0.886051 -74.629921
+173.774	-41.071	0.886929 -74.601311
+173.781	-41.083	0.887455 -74.624046
+173.771	-41.095	0.889156 -74.577988
+173.752	-41.099	0.890045 -74.549698
+173.756	-41.103	0.889881 -74.566154
+173.754	-41.113	0.889783 -74.579124
+173.76	-41.12	0.889693 -74.592888
+173.772	-41.106	0.889417 -74.599335
+173.778	-41.115	0.889348 -74.608139
+173.785	-41.112	0.889389 -74.615547
+173.79	-41.103	0.889345 -74.630798
+173.778	-41.1	0.889023 -74.613747
+173.791	-41.094	0.887929 -74.668594
+173.791	-41.086	0.887187 -74.667511
+173.796	-41.086	0.886916 -74.687485
+173.796	-41.095	0.887147 -74.691582
+173.806	-41.094	0.887021 -74.714119
+173.813	-41.074	0.885575 -74.734840
+173.822	-41.073	0.885309 -74.753624
+173.816	-41.064	0.884866 -74.728355
+173.83	-41.055	0.882807 -74.779320
+173.855	-41.066	0.879508 -75.027878
+173.864	-41.055	0.878064 -75.039162
+173.882	-41.064	0.876409 -75.051529
+173.915	-41.058	0.880059 -74.881752
+173.95	-41.0632	0.892242 -74.771126
+173.917	-41.0664	0.905227 -73.182114
+173.905	-41.072	0.908151 -73.162735
+173.91	-41.081	0.910131 -73.087959
+173.902	-41.086	0.914940 -72.635071
+173.885	-41.077	0.917650 -72.259087
+173.878	-41.079	0.918551 -72.261368
+173.88	-41.086	0.918727 -72.317245
+173.868	-41.082	0.919486 -72.269524
+173.868	-41.092	0.919513 -72.292953
+173.857	-41.1	0.919780 -72.269493
+173.873	-41.1	0.919698 -72.301872
+173.887	-41.103	0.921151 -72.309166
+173.883	-41.123	0.933922 -71.401505
+173.876	-41.125	0.939319 -70.838799
+173.863	-41.113	0.943217 -70.154373
+173.844	-41.116	0.944900 -70.160912
+173.855	-41.126	0.944504 -70.227676
+173.851	-41.136	0.949227 -69.841560
+173.83	-41.139	0.953895 -69.118042
+173.837	-41.147	0.954745 -69.252411
+173.827	-41.149	0.957675 -69.000633
+173.823	-41.142	0.957557 -68.922279
+173.817	-41.155	0.961160 -68.786499
+173.801	-41.151	0.963821 -68.629112
+173.791	-41.156	0.964830 -68.634064
+173.781	-41.148	0.966084 -68.587357
+173.775	-41.155	0.965917 -68.619148
+173.783	-41.159	0.965366 -68.629303
+173.775	-41.158	0.965748 -68.623520
+173.779	-41.164	0.965462 -68.639183
+173.772	-41.174	0.965763 -68.650612
+173.784	-41.179	0.965510 -68.679161
+173.796	-41.165	0.964372 -68.692307
+173.819	-41.1665	0.961233 -68.864273
+173.847	-41.155	0.956108 -69.316025
+173.85	-41.163	0.960540 -68.880264
+173.829	-41.175	0.961442 -68.522392
+173.857	-41.171	0.964068 -68.666748
+173.865	-41.193	0.977197 -67.128693
+173.858	-41.208	0.984095 -63.900768
+173.849	-41.21	0.987474 -63.440918
+173.851	-41.217	0.990973 -63.173275
+173.84	-41.22	0.995054 -62.545738
+173.847	-41.226	0.997025 -62.534645
+173.849	-41.243	1.007648 -61.899616
+173.824	-41.253	1.018075 -61.365646
+173.796	-41.243	1.025136 -60.848820
+173.801	-41.257	1.024014 -61.060879
+173.766	-41.257	1.030182 -60.682964
+173.757	-41.27	1.030435 -60.727207
+173.774	-41.285	1.030499 -60.747040
+173.782	-41.274	1.030345 -60.764565
+173.772	-41.267	1.029726 -60.765697
+173.784	-41.266	1.026572 -60.968868
+173.806	-41.289	1.027472 -61.082104
+173.823	-41.295	1.028766 -61.015015
+173.845	-41.293	1.030108 -61.004227
+173.847	-41.284	1.030580 -61.025745
+173.824	-41.287	1.028823 -61.058773
+173.81	-41.279	1.026936 -61.105095
+173.809	-41.265	1.023862 -61.172485
+173.834	-41.2623	1.015237 -61.718700
+173.868	-41.259	1.007563 -62.169395
+173.915	-41.233	1.008071 -62.361217
+173.859	-41.229	1.002160 -62.369461
+173.86	-41.222	0.991276 -63.420216
+173.88	-41.223	0.980835 -62.931793
+173.911	-41.211	0.960302 -56.940090
+173.917	-41.2107	0.927494 -50.051743
+173.946	-41.2019	0.930120 -30.648726
+173.937	-41.2206	0.932562 -30.284122
+173.955	-41.2103	0.932615 -30.497316
+173.97	-41.2185	0.936546 -30.155329
+173.97	-41.2113	0.936025 -30.265955
+173.997	-41.2109	0.943748 -29.703615
+174.013	-41.2003	0.952638 -28.767950
+174.032	-41.2033	0.955487 -28.455736
+174.032	-41.1926	0.955495 -28.549633
+174.016	-41.1907	0.955929 -28.609886
+174.023	-41.1863	0.961080 -28.356436
+174.047	-41.1971	0.965778 -28.109898
+174.053	-41.1915	0.966465 -28.153357
+174.074	-41.1961	0.968646 -28.060865
+174.081	-41.1896	0.969246 -28.092203
+174.11	-41.1804	0.971411 -28.080883
+174.12	-41.168	0.972430 -28.109606
+174.08	-41.1728	0.970047 -28.160702
+174.053	-41.1789	0.966510 -28.264942
+174.041	-41.1749	0.963943 -28.397655
+174.05	-41.165	0.965094 -28.416719
+174.046	-41.1589	0.965320 -28.445234
+174.002	-41.1711	0.960067 -28.630178
+174.01	-41.1797	0.959001 -28.614561
+173.986	-41.1828	0.955380 -29.174482
+174.001	-41.1952	0.950286 -29.290785
+173.982	-41.1876	0.940696 -30.532558
+173.978	-41.1942	0.939230 -30.432388
+173.965	-41.1902	0.934401 -30.721258
+173.973	-41.1849	0.936453 -30.577719
+173.966	-41.1729	0.939789 -30.534756
+173.929	-41.1985	0.920891 -31.687433
+173.915	-41.201	0.950218 -54.219864
+173.889	-41.2017	0.979870 -60.988674
+173.873	-41.212	0.986714 -64.103134
+173.887	-41.192	0.979752 -68.053070
+173.88	-41.182	0.974163 -68.442581
+173.895	-41.172	0.972544 -68.782684
+173.875	-41.169	0.969373 -68.762535
+173.867	-41.156	0.961309 -69.441933
+173.884	-41.159	0.960260 -69.764153
+173.885	-41.1521	0.960777 -69.697945
+173.866	-41.146	0.954233 -70.076454
+173.872	-41.139	0.946498 -70.838570
+173.894	-41.139	0.938532 -71.768913
+173.915	-41.126	0.932723 -72.057297
+173.901	-41.125	0.933888 -71.938530
+173.908	-41.112	0.924149 -72.712250
+173.931	-41.113	0.919026 -73.262360
+173.934	-41.1023	0.917763 -73.186485
+173.927	-41.0972	0.916267 -73.228104
+173.933	-41.0846	0.907337 -73.947830
+173.944	-41.09	0.904353 -74.478165
+173.954	-41.0807	0.899356 -74.757843
+173.966	-41.0854	0.897349 -74.928001
+173.976	-41.0782	0.896955 -74.933128
+173.978	-41.0857	0.898077 -74.917389
+173.964	-41.0983	0.899370 -74.886131
+173.951	-41.1149	0.899989 -74.884247
+173.957	-41.1478	0.899901 -74.919662
+173.968	-41.151	0.899807 -74.934540
+173.963	-41.1374	0.899748 -74.919022
+173.975	-41.1295	0.899572 -74.931183
+173.993	-41.1364	0.899581 -74.951118
+173.985	-41.1231	0.899555 -74.942749
+173.994	-41.1059	0.899135 -74.968552
+173.986	-41.1001	0.898810 -74.952415
+174.013	-41.0954	0.898107 -75.003777
+174.037	-41.1138	0.898234 -75.020470
+174.047	-41.1063	0.898278 -75.037071
+174.032	-41.0946	0.898188 -75.026299
+174.023	-41.0717	0.898197 -75.031723
+174.015	-41.075	0.898026 -75.025513
+174.018	-41.0639	0.898132 -75.039856
+174.01	-41.0584	0.898255 -75.039986
+174.017	-41.0594	0.898523 -75.037941
+174.032	-41.062	0.898899 -75.046989
+174.048	-41.0549	0.899119 -75.058647
+174.054	-41.0282	0.900112 -75.076172
+174.049	-41.0215	0.900291 -75.077888
+174.035	-41.0269	0.899988 -75.076050
+174.038	-41.0196	0.900217 -75.073341
+174.021	-41.0174	0.900378 -75.076736
+174.009	-41.0172	0.900428 -75.082191
+173.998	-41.0401	0.899075 -75.088905
+173.978	-41.0569	0.895286 -75.079300
+173.991	-41.0367	0.893946 -75.278526
+173.984	-41.032	0.894370 -75.253212
+173.96	-41.0451	0.891495 -75.200562
+173.95	-41.0375	0.887655 -75.471397
+173.935	-41.0411	0.880282 -75.619301
+173.938	-41.0347	0.876098 -76.063843
+173.953	-41.0331	0.874504 -76.393440
+173.937	-41.0194	0.863135 -76.984535
+173.95	-41.0134	0.854843 -77.788307
+173.955	-41.0225	0.853119 -78.153992
+173.966	-41.0175	0.850777 -78.270195
+173.972	-41.0226	0.850755 -78.323547
+173.989	-41.0151	0.849773 -78.441338
+173.969	-41.0037	0.846172 -78.525536
+173.97	-40.9844	0.831864 -79.449226
+173.983	-40.9961	0.825633 -80.755928
+173.996	-40.9953	0.823779 -80.956863
+174.003	-40.9853	0.822638 -81.026718
+173.991	-40.9831	0.822234 -81.013100
+173.993	-40.9705	0.809743 -82.750618
+174.014	-40.965	0.792180 -85.215813
+174.023	-40.9763	0.784140 -85.979408
+174.013	-40.9887	0.780702 -86.172058
+174.009	-41.0104	0.778397 -86.238167
+174.017	-41.0087	0.778375 -86.218147
+174.022	-41.0157	0.777684 -86.239883
+174.033	-41.0097	0.777160 -86.231438
+174.048	-41.0135	0.773876 -86.342293
+174.051	-41.0033	0.772601 -86.334015
+174.056	-41.0071	0.767427 -86.746078
+174.067	-40.9969	0.737769 -88.886276
+174.071	-41.0068	0.734254 -89.131462
+174.066	-41.0142	0.734188 -89.165726
+174.082	-41.0193	0.733094 -89.188713
+174.104	-41.0521	0.733299 -89.272552
+174.109	-41.0518	0.733308 -89.278809
+174.103	-41.0248	0.733033 -89.246490
+174.096	-40.9999	0.731758 -89.166084
+174.1	-40.9935	0.728531 -89.200935
+174.124	-41.0069	0.721951 -89.391281
+174.131	-41.0187	0.720908 -89.408676
+174.142	-41.0192	0.720788 -89.411758
+174.147	-41.0109	0.720759 -89.400604
+174.143	-40.9974	0.720089 -89.329231
+174.152	-40.9996	0.718776 -89.354309
+174.162	-40.9828	0.715640 -89.256203
+174.149	-40.9803	0.716019 -89.203773
+174.148	-40.9736	0.713210 -89.141991
+174.164	-40.9692	0.689565 -89.788124
+174.171	-40.9882	0.674978 -90.611183
+174.173	-41.0084	0.666621 -90.945488
+174.183	-41.0109	0.665236 -90.971573
+174.195	-41.0018	0.663670 -90.944511
+174.207	-41.0038	0.658383 -91.014763
+174.231	-40.9854	0.645534 -90.923119
+174.216	-41.0086	0.622415 -93.256783
+174.195	-41.0104	0.621567 -93.372955
+174.198	-41.0417	0.618544 -93.438644
+174.19	-41.0427	0.618755 -93.424477
+174.184	-41.0289	0.619411 -93.385635
+174.166	-41.043	0.619214 -93.421936
+174.182	-41.0592	0.618438 -93.461502
+174.215	-41.0711	0.617797 -93.507835
+174.225	-41.0692	0.617794 -93.517151
+174.224	-41.0559	0.617765 -93.488510
+174.239	-41.0495	0.616715 -93.491669
+174.242	-41.0412	0.615879 -93.485222
+174.258	-41.0442	0.610099 -93.754478
+174.27	-41.029	0.603594 -93.867302
+174.289	-41.0345	0.594532 -94.060623
+174.312	-41.0004	0.573679 -92.848587
+174.298	-41.0345	0.538961 -97.524818
+174.285	-41.0383	0.532271 -98.683472
+174.273	-41.0423	0.528254 -99.287041
+174.272	-41.0684	0.515619 -100.054581
+174.249	-41.0772	0.510232 -100.350143
+174.248	-41.0883	0.508459 -100.290436
+174.234	-41.0897	0.507896 -100.218277
+174.236	-41.1031	0.507532 -100.175194
+174.249	-41.1057	0.507457 -100.166389
+174.242	-41.1261	0.507467 -100.043495
+174.225	-41.1118	0.508758 -99.829094
+174.208	-41.1181	0.509005 -99.864265
+174.211	-41.1281	0.508707 -99.907829
+174.222	-41.1322	0.508171 -99.955009
+174.22	-41.1425	0.508098 -99.959900
+174.209	-41.1333	0.508577 -99.876083
+174.188	-41.1408	0.509086 -99.890106
+174.197	-41.1239	0.510189 -99.816063
+174.183	-41.1237	0.510115 -99.847137
+174.188	-41.0965	0.510999 -99.808319
+174.18	-41.0875	0.511250 -99.793221
+174.164	-41.1156	0.510427 -99.831955
+174.149	-41.1091	0.510592 -99.813942
+174.149	-41.128	0.510148 -99.848778
+174.167	-41.1364	0.509699 -99.873512
+174.16	-41.1506	0.509293 -99.925995
+174.182	-41.1586	0.508687 -99.966545
+174.2	-41.1548	0.508238 -99.952538
+174.199	-41.1732	0.507540 -99.953766
+174.203	-41.1833	0.507149 -99.911057
+174.191	-41.1841	0.506521 -99.872932
+174.186	-41.1951	0.505959 -99.790909
+174.17	-41.203	0.504658 -99.681633
+174.171	-41.1858	0.505004 -99.662270
+174.158	-41.1779	0.505183 -99.646164
+174.155	-41.1808	0.505084 -99.648071
+174.149	-41.1825	0.505043 -99.647713
+174.155	-41.1953	0.504688 -99.661461
+174.148	-41.2075	0.504024 -99.644348
+174.156	-41.2144	0.503702 -99.626328
+174.145	-41.2167	0.503698 -99.561806
+174.145	-41.2089	0.504125 -99.459145
+174.126	-41.205	0.505175 -99.401352
+174.125	-41.1931	0.505441 -99.326279
+174.112	-41.2061	0.505713 -99.367142
+174.119	-41.2217	0.506071 -99.479820
+174.102	-41.2212	0.509323 -99.263695
+174.106	-41.2124	0.509862 -99.180954
+174.094	-41.2033	0.510263 -99.136139
+174.085	-41.2148	0.510372 -99.169426
+174.086	-41.2254	0.510867 -99.238853
+174.077	-41.2305	0.512523 -99.221199
+174.077	-41.2237	0.513068 -99.142326
+174.065	-41.2248	0.513879 -99.150345
+174.074	-41.212	0.514285 -99.101318
+174.061	-41.2066	0.514483 -99.091026
+174.056	-41.2171	0.514350 -99.118217
+174.048	-41.2097	0.514602 -99.075371
+174.044	-41.2132	0.514595 -99.084518
+174.04	-41.2301	0.514755 -99.160576
+174.031	-41.2109	0.516183 -99.005753
+174.02	-41.2244	0.515760 -99.113312
+174.029	-41.2288	0.515301 -99.131645
+174.03	-41.24	0.515404 -99.181602
+174.018	-41.24	0.516065 -99.162987
+174.02	-41.23	0.516360 -99.114998
+174.014	-41.2339	0.516292 -99.130821
+174.008	-41.2405	0.516469 -99.154648
+174.008	-41.2247	0.516997 -99.107040
+173.991	-41.2206	0.517159 -99.086205
+173.995	-41.2443	0.516726 -99.157898
+173.986	-41.2436	0.516999 -99.136192
+173.982	-41.2514	0.517183 -99.158714
+173.982	-41.2374	0.518000 -99.107185
+173.975	-41.2348	0.518161 -99.099838
+173.979	-41.229	0.518318 -99.095955
+173.97	-41.224	0.518480 -99.075172
+173.969	-41.2316	0.518297 -99.088486
+173.965	-41.2244	0.518515 -99.071205
+173.96	-41.2273	0.518563 -99.069244
+173.971	-41.2533	0.517524 -99.155998
+173.939	-41.2542	0.518468 -99.108955
+173.917	-41.2651	0.518581 -99.117027
+173.944	-41.2691	0.518133 -99.164177
+173.964	-41.2668	0.517683 -99.195763
+174.008	-41.2598	0.516106 -99.246597
+173.994	-41.2791	0.516063 -99.306992
+174.009	-41.2728	0.515908 -99.297455
+174.004	-41.2848	0.515981 -99.319748
+174.01	-41.2857	0.515903 -99.335793
+174.039	-41.2689	0.515343 -99.347168
+174.065	-41.2527	0.513873 -99.367371
+174.075	-41.2694	0.513933 -99.428413
+174.086	-41.2695	0.514061 -99.459938
+174.074	-41.2547	0.513614 -99.404922
+174.082	-41.2473	0.512387 -99.438972
+174.106	-41.2413	0.509416 -99.567535
+174.111	-41.25	0.509440 -99.677727
+174.114	-41.2373	0.507939 -99.631073
+174.132	-41.2426	0.504480 -99.859093
+174.14	-41.2349	0.503000 -99.786667
+174.146	-41.2334	0.501560 -99.760551
+174.145	-41.24	0.499240 -99.877411
+174.15	-41.2499	0.495559 -100.033699
+174.157	-41.2535	0.493648 -100.111855
+174.157	-41.2661	0.494097 -100.412506
+174.176	-41.2528	0.483389 -100.817123
+174.179	-41.2668	0.479448 -101.417503
+174.202	-41.2787	0.480050 -101.381088
+174.213	-41.2722	0.480311 -101.414970
+174.21	-41.2675	0.480305 -101.411469
+174.185	-41.2592	0.479934 -101.397263
+174.186	-41.2515	0.471116 -102.660988
+174.196	-41.2463	0.436155 -112.001930
+174.207	-41.2469	0.415551 -124.474792
+174.21	-41.2571	0.413270 -126.933670
+174.22	-41.2544	0.412894 -126.827156
+174.219	-41.2467	0.410456 -127.271645
+174.226	-41.2531	0.406913 -128.071335
+174.23	-41.247	0.405485 -128.184692
+174.243	-41.2524	0.400640 -129.320694
+174.247	-41.2464	0.398815 -129.539581
+174.254	-41.2512	0.395372 -132.624039
+174.253	-41.2609	0.395446 -132.661392
+174.266	-41.2541	0.395419 -132.710449
+174.256	-41.2457	0.394628 -132.729492
+174.277	-41.245	0.392820 -138.624588
+174.271	-41.2366	0.389937 -138.474457
+174.303	-41.219	0.378643 -146.113937
+174.314	-41.2142	0.372896 -150.284851
+174.289	-41.2342	0.377912 -154.641922
+174.292	-41.2513	0.382764 -157.020767
+174.274	-41.2576	0.394856 -159.825226
+174.268	-41.2759	0.406511 -162.847015
+174.257	-41.2699	0.410025 -163.192749
+174.257	-41.2878	0.416350 -165.298889
+174.25	-41.2829	0.419123 -165.624237
+174.224	-41.2942	0.429785 -167.452545
+174.243	-41.3104	0.431950 -168.859421
+174.237	-41.3204	0.440760 -170.401978
+174.22	-41.3182	0.455061 -171.775162
+174.214	-41.3266	0.459982 -172.589157
+174.208	-41.3134	0.466874 -172.866150
+174.201	-41.3119	0.467748 -172.998047
+174.191	-41.3191	0.468441 -173.277008
+174.197	-41.3333	0.469622 -173.965515
+174.191	-41.3391	0.472943 -174.633804
+174.18	-41.335	0.480037 -175.166275
+174.166	-41.3384	0.486425 -175.786407
+174.152	-41.342	0.490630 -176.233459
+174.156	-41.3531	0.491635 -176.619507
+174.123	-41.3541	0.504743 -177.827942
+174.146	-41.337	0.509386 -177.522415
+174.132	-41.3342	0.508898 -177.676682
+174.139	-41.3291	0.510048 -177.651566
+174.158	-41.3302	0.511271 -177.619049
+174.159	-41.3214	0.511303 -177.642746
+174.174	-41.3169	0.511933 -177.615402
+174.166	-41.3096	0.511856 -177.635208
+174.178	-41.3063	0.512364 -177.614059
+174.176	-41.2992	0.512389 -177.627609
+174.189	-41.2968	0.512675 -177.612152
+174.181	-41.2882	0.512535 -177.611496
+174.16	-41.2899	0.512169 -177.626587
+174.161	-41.3013	0.511973 -177.642471
+174.139	-41.3169	0.510421 -177.700455
+174.15	-41.2944	0.510917 -177.684738
+174.148	-41.2855	0.510859 -177.678864
+174.114	-41.301	0.510214 -177.719757
+174.113	-41.3064	0.510227 -177.738922
+174.122	-41.3085	0.510239 -177.734482
+174.109	-41.321	0.509117 -177.822968
+174.11	-41.331	0.508374 -177.862640
+174.098	-41.3361	0.507864 -177.983536
+174.104	-41.3419	0.507474 -177.985382
+174.093	-41.3462	0.507653 -178.155487
+174.088	-41.3608	0.507571 -178.469131
+174.071	-41.3588	0.509950 -178.657227
+174.076	-41.366	0.509062 -178.696533
+174.069	-41.3803	0.510022 -179.104614
+174.066	-41.3901	0.511557 -179.414215
+174.056	-41.3885	0.513378 -179.522324
+174.041	-41.4042	0.516020 -179.998886
+174.034	-41.4367	0.519564 179.177307
+174.028	-41.4671	0.524068 178.425461
+174.043	-41.4936	0.525860 177.682953
+174.061	-41.4982	0.526003 177.371765
+174.067	-41.5106	0.528918 176.832001
+174.108	-41.5345	0.536626 174.862793
+174.148	-41.5584	0.552655 171.898926
+174.251	-41.1779	0.508071 -100.060043
+174.241	-41.1795	0.507897 -100.000526
+174.224	-41.1905	0.507601 -99.934219
+174.233	-41.1628	0.508145 -100.023071
+174.245	-41.1597	0.508106 -100.082253
+174.247	-41.1669	0.508029 -100.097549
+174.29	-41.1567	0.508047 -100.262177
+174.286	-41.1613	0.508377 -100.214226
+174.273	-41.1642	0.508277 -100.177299
+174.275	-41.157	0.508075 -100.203178
+174.284	-41.1583	0.508078 -100.243217
+174.302	-41.1059	0.501051 -100.894600
+174.292	-41.1153	0.503765 -100.329567
+174.28	-41.1173	0.506911 -100.174026
+174.28	-41.1143	0.507038 -100.209335
+174.227	-41.2046	0.507760 -99.925354
+174.235	-41.2149	0.507949 -99.975441
+174.255	-41.2043	0.508079 -100.012947
+174.265	-41.1976	0.508246 -100.029076
+174.25	-41.1928	0.508103 -100.009026
+174.258	-41.1836	0.508234 -100.079689
+174.284	-41.177	0.508530 -100.214554
+174.29	-41.1768	0.508556 -100.236931
+174.292	-41.1676	0.508488 -100.232582
+174.32	-41.1613	0.508594 -100.342628
+174.312	-41.1779	0.509083 -100.324577
+174.34	-41.1775	0.508945 -100.408661
+174.333	-41.1675	0.508793 -100.364876
+174.362	-41.1564	0.509274 -100.398430
+174.376	-41.1345	0.510177 -100.391235
+174.371	-41.1245	0.510553 -100.384644
+174.344	-41.1461	0.509303 -100.385246
+174.33	-41.1473	0.508876 -100.372322
+174.329	-41.1333	0.508762 -100.396408
+174.321	-41.1307	0.508613 -100.385757
+174.293	-41.1358	0.507448 -100.306564
+174.303	-41.1272	0.503475 -100.737236
+174.318	-41.1256	0.498769 -101.270508
+174.317	-41.1184	0.497177 -101.187210
+174.325	-41.129	0.493263 -101.622025
+174.336	-41.1288	0.490850 -101.683533
+174.36	-41.108	0.483595 -101.306213
+174.38	-41.0896	0.462050 -101.314308
+174.391	-41.095	0.438235 -103.720100
+174.391	-41.1183	0.394345 -113.929298
+174.378	-41.1474	0.362730 -124.199142
+174.367	-41.1738	0.346516 -130.893814
+174.375	-41.1831	0.340908 -133.205185
+174.364	-41.2012	0.346821 -141.474869
+174.343	-41.193	0.365334 -145.811020
+174.324	-41.2121	0.369187 -149.569626
+174.311	-41.2024	0.371929 -148.261597
+174.296	-41.2108	0.374482 -144.554993
+174.282	-41.2097	0.376832 -142.574814
+174.279	-41.217	0.379466 -142.262482
+174.261	-41.2271	0.386159 -138.199493
+174.259	-41.2307	0.386648 -136.307816
+174.252	-41.2384	0.393561 -130.602081
+174.231	-41.2371	0.404780 -127.386841
+174.231	-41.2232	0.407377 -126.745850
+174.215	-41.2275	0.407716 -126.924423
+174.219	-41.2334	0.407910 -126.867088
+174.209	-41.2379	0.413343 -125.082298
+174.19	-41.2357	0.445579 -107.096207
+174.185	-41.2426	0.462495 -103.348770
+174.163	-41.2456	0.495351 -99.685753
+174.166	-41.2306	0.502223 -99.531151
+174.184	-41.2182	0.505404 -99.624657
+174.195	-41.2206	0.506303 -99.669388
+174.195	-41.2106	0.506327 -99.738953
+174.215	-41.2076	0.507388 -99.855888
+174.073	-40.9583	0.778874 -86.176331
+174.064	-40.9509	0.778239 -86.147385
+174.051	-40.9519	0.777825 -86.106201
+174.056	-40.9467	0.770754 -86.504723
+174.08	-40.9393	0.748582 -87.759895
+174.077	-40.9572	0.738300 -88.700005
+174.088	-40.9645	0.733171 -88.837860
+174.073	-40.9718	0.733548 -88.929863
+174.073	-40.9854	0.733746 -88.937180
+174.061	-40.9948	0.763399 -86.761971
+174.049	-40.9794	0.781917 -85.955467
+174.089	-40.8956	0.757342 -86.046227
+174.079	-40.9034	0.755703 -86.232925
+174.056	-40.9092	0.768907 -85.717308
+174.061	-40.8983	0.771643 -85.458466
+174.083	-40.8911	0.762713 -85.734444
+174.779	-41.0788	0.367990 -67.350555
+174.8	-41.077	0.380667 -65.293083
+174.789	-41.0921	0.360365 -67.025208
+174.773	-41.0983	0.342340 -69.817711
+174.951	-40.827	0.609663 -58.517418
+174.913	-40.8697	0.544999 -61.786823
+174.885	-40.8891	0.520500 -62.638897
+174.868	-40.8863	0.524978 -62.388920
+174.869	-40.8747	0.541265 -61.699673
+174.906	-40.8477	0.578001 -59.965687
+174.921	-40.8208	0.599927 -59.435238
+173.903	-40.852	0.826759 -84.841148
+173.912	-40.862	0.825949 -84.932182
+173.906	-40.875	0.829096 -84.975060
+173.9	-40.858	0.836702 -84.550514
+173.883	-40.862	0.839046 -84.635063
+173.872	-40.873	0.840849 -84.748566
+173.875	-40.879	0.840820 -84.807915
+173.852	-40.901	0.849295 -85.059654
+173.837	-40.905	0.855245 -84.930695
+173.832	-40.921	0.870479 -84.595985
+173.819	-40.928	1.055337 -75.877380
+173.803	-40.929	1.121241 -73.790756
+173.787	-40.943	1.178967 -72.918495
+173.771	-40.943	1.217995 -72.759659
+173.777	-40.938	1.219086 -72.822807
+173.773	-40.93	1.219643 -72.895782
+173.788	-40.917	1.217827 -73.046150
+173.786	-40.91	1.216893 -73.062775
+173.794	-40.91	1.216763 -73.095856
+173.788	-40.896	1.214553 -73.124306
+173.797	-40.891	1.214381 -73.123337
+173.783	-40.882	1.213883 -73.109787
+173.771	-40.891	1.212419 -73.100143
+173.777	-40.876	1.205669 -73.265846
+173.771	-40.86	1.198347 -73.344307
+173.781	-40.835	1.181631 -73.680016
+173.787	-40.834	1.176504 -73.756584
+173.791	-40.858	1.176747 -73.792496
+173.817	-40.857	1.177388 -73.805611
+173.83	-40.87	1.178938 -73.757133
+173.843	-40.865	1.179104 -73.795425
+173.834	-40.858	1.178644 -73.797523
+173.828	-40.858	1.178241 -73.800446
+173.809	-40.849	1.176552 -73.828773
+173.814	-40.834	1.174958 -73.869194
+173.805	-40.83	1.174139 -73.854591
+173.809	-40.819	1.170323 -73.998718
+173.804	-40.812	1.168259 -74.033447
+173.795	-40.816	1.167274 -74.000732
+173.833	-40.772	1.123343 -75.024429
+173.83	-40.755	1.111327 -75.118065
+173.838	-40.769	1.110899 -75.175163
+173.841	-40.75	1.097928 -75.448746
+173.854	-40.747	1.085635 -75.762665
+173.865	-40.731	1.064554 -75.959450
+173.881	-40.737	1.048421 -76.471275
+173.86	-40.769	1.044743 -76.749748
+173.861	-40.775	1.044225 -76.755455
+173.872	-40.776	1.043701 -76.745872
+173.866	-40.808	1.044212 -76.729912
+173.887	-40.789	1.043747 -76.761681
+173.887	-40.78	1.043506 -76.750679
+173.903	-40.803	1.044942 -76.720200
+173.909	-40.782	1.044062 -76.769691
+173.932	-40.7688	1.044775 -76.818893
+173.884	-40.7693	1.043128 -76.752563
+173.939	-40.7454	1.029188 -76.750015
+173.943	-40.7334	1.019312 -76.881432
+173.937	-40.7257	1.012994 -76.927078
+173.956	-40.721	0.998660 -77.057678
+173.96	-40.7094	0.990190 -77.097633
+173.952	-40.6926	0.976574 -77.166817
+173.968	-40.7058	0.926275 -79.373543
+173.956	-40.7426	0.874754 -82.365753
+173.962	-40.7562	0.862876 -82.709442
+173.94	-40.7842	0.843379 -83.955399
+173.946	-40.794	0.838760 -84.036011
+173.936	-40.8057	0.832775 -84.350540
+173.94	-40.8131	0.830049 -84.394356
+173.929	-40.8177	0.828150 -84.545502
+173.939	-40.8235	0.826565 -84.529434
+173.917	-40.8373	0.825696 -84.702789
+173.98	-41.1064	0.899198 -74.933998
+173.894	-40.879	0.834964 -84.870621
+171.985	-37.8093	1.027920 -69.750641
+171.812	-37.9882	1.025460 -68.733551
+172.912	-37.1963	1.052815 -73.228249
+173.162	-37.2501	1.064209 -73.295601
+172.238	-37.7001	1.036742 -70.568672
+172.586	-37.4876	1.046320 -71.857178
+172.333	-38.2033	1.058423 -68.796608
+172.704	-37.6384	1.056000 -71.474457
+171.471	-38.4705	1.024684 -65.855270
+172.483	-37.6531	1.046701 -71.118790
+172.937	-37.7274	1.068515 -71.513840
+172.572	-38.2805	1.072355 -69.001579
+173.251	-37.737	1.081090 -71.950691
+173.116	-37.9067	1.081402 -71.241348
+173.464	-37.0215	1.070310 -74.217476
+173.374	-36.6998	1.061249 -75.124123
+172.921	-38.2496	1.086020 -69.851746
+173.528	-37.4753	1.083316 -73.014435
+171.924	-38.6181	1.055037 -66.070267
+173.635	-37.1716	1.079254 -73.927795
+173.515	-37.6778	1.088638 -72.455833
+172.739	-38.3146	1.081120 -69.249496
+171.655	-38.6723	1.042701 -65.154167
+173.718	-37.3687	1.086521 -73.496628
+171.844	-38.7691	1.057222 -65.068230
+173.718	-37.5623	1.091779 -73.003029
+172.651	-38.4417	1.082647 -68.558670
+171.397	-38.6912	1.029141 -64.420204
+172.491	-38.5757	1.081554 -67.590736
+173.287	-38.0786	1.093827 -71.041283
+173.121	-38.3257	1.097323 -70.014259
+171.536	-38.827	1.042314 -63.951694
+171.89	-38.9333	1.067483 -64.273422
+171.35	-38.8459	1.032309 -63.337650
+171.159	-38.7672	1.018409 -63.351669
+173.27	-38.2631	1.100284 -70.488533
+173.895	-37.6452	1.099484 -73.022781
+173.266	-38.4092	1.107480 -70.028648
+172.454	-38.7575	1.089132 -66.603233
+171.219	-38.9641	1.029002 -62.230385
+172.254	-39.0774	1.095484 -64.412933
+172.836	-38.4036	1.088917 -69.161835
+171.441	-38.9757	1.042745 -62.764580
+170.921	-38.7536	1.003945 -62.820602
+172.03	-39.1139	1.084374 -63.690861
+170.964	-38.9429	1.012692 -61.674644
+173.552	-36.5691	1.065481 -75.579140
+171.319	-39.1259	1.041133 -61.438335
+171.798	-39.1079	1.070094 -63.019978
+170.783	-38.8598	0.999118 -61.741035
+171.072	-39.1432	1.026172 -60.628956
+171.556	-39.141	1.056792 -62.061012
+171.402	-39.2697	1.052175 -60.692257
+173.62	-36.4323	1.065825 -75.998695
+170.733	-39.0049	1.000434 -60.610302
+172.695	-38.5989	1.092409 -68.000778
+173.718	-36.6333	1.072239 -75.439125
+174.053	-37.1594	1.091606 -74.296127
+171.221	-39.2615	1.040078 -60.235031
+171.561	-39.2969	1.063797 -60.996872
+171.475	-39.4093	1.062782 -59.903522
+172.418	-39.1046	1.107209 -64.592606
+170.551	-39.7481	1.008536 -54.920387
+170.556	-39.3557	0.998913 -57.662102
+170.632	-39.8563	1.017002 -54.396568
+170.856	-39.9088	1.035099 -54.663342
+170.585	-39.6121	1.007523 -55.960888
+170.634	-39.1874	0.999341 -59.068790
+171.057	-39.8514	1.048455 -55.641209
+171.386	-39.5413	1.061898 -58.713669
+171.188	-39.5505	1.048134 -58.116997
+170.62	-39.4716	1.006350 -57.029694
+171.017	-39.582	1.037022 -57.409012
+170.812	-39.5535	1.021843 -57.014423
+170.752	-39.3658	1.012140 -58.154892
+171.028	-39.3875	1.031528 -58.801907
+171.282	-39.3992	1.049245 -59.443062
+171.319	-39.6914	1.062780 -57.478985
+171.125	-39.7136	1.049337 -56.801205
+170.935	-39.7257	1.035734 -56.170315
+170.73	-39.7353	1.021096 -55.527573
+171.265	-39.8704	1.065248 -56.091389
+174.087	-37.0827	1.091587 -74.490952
+171.46	-39.8081	1.077492 -57.038952
+174.045	-37.2518	1.093445 -74.082527
+171.719	-39.2619	1.072610 -61.773483
+171.665	-39.4159	1.076242 -60.433735
+172.994	-38.4024	1.095412 -69.534126
+171.497	-39.6644	1.074705 -58.124821
+171.559	-39.5359	1.074048 -59.217297
+172.339	-39.1828	1.106565 -64.011307
+174.038	-37.8745	1.112412 -72.736862
+172.495	-39.0397	1.108738 -65.098213
+173.126	-38.4394	1.102972 -69.672318
+171.448	-39.9367	1.081862 -56.137196
+171.623	-39.761	1.088040 -57.793835
+173.961	-38.042	1.117376 -72.250969
+171.904	-39.2429	1.083362 -62.531651
+172.052	-39.2571	1.093338 -62.894978
+172.199	-39.2285	1.100405 -63.461494
+171.654	-39.6405	1.085381 -58.725082
+172.517	-38.8683	1.099000 -66.170166
+172.623	-38.7065	1.095123 -67.279282
+171.624	-39.9102	1.094561 -56.801960
+173.697	-38.1323	1.110538 -71.599480
+171.765	-39.8184	1.101526 -57.813332
+171.833	-39.3697	1.085440 -61.369404
+171.742	-39.7177	1.095407 -58.431183
+171.816	-39.9356	1.111320 -57.232559
+174.046	-37.3787	1.096864 -73.795937
+171.975	-39.9498	1.125143 -57.721863
+171.805	-39.6218	1.095865 -59.335640
+171.922	-39.8409	1.115135 -58.213123
+171.811	-39.4956	1.090147 -60.311050
+172.477	-39.2139	1.117871 -64.093040
+171.867	-39.735	1.105773 -58.738197
+174.108	-37.7381	1.109667 -73.104469
+171.987	-39.3511	1.094553 -62.020844
+172.102	-39.9658	1.136550 -58.147873
+171.698	-39.5421	1.084208 -59.577675
+172.811	-38.5237	1.093665 -68.618179
+172.348	-39.2856	1.113441 -63.420910
+171.938	-39.6542	1.107362 -59.582150
+172.083	-39.8584	1.128956 -58.739445
+172.027	-39.7361	1.118307 -59.344303
+172.127	-39.3407	1.102792 -62.514801
+174.071	-37.9638	1.118956 -72.602875
+174.136	-37.1439	1.094831 -74.407707
+174.246	-37.3166	1.104295 -74.151886
+171.929	-39.5605	1.101904 -60.230999
+172.203	-39.9162	1.141458 -58.850216
+171.941	-39.4559	1.097304 -61.055702
+172.062	-39.6112	1.114298 -60.318256
+172.151	-39.7738	1.129603 -59.548084
+172.207	-39.834	1.137025 -59.366802
+173.704	-38.2572	1.118794 -71.270790
+172.551	-39.1118	1.117329 -64.804855
+172.247	-39.3383	1.110218 -62.842251
+174.052	-37.0053	1.088959 -74.631638
+172.07	-39.4357	1.105013 -61.624794
+172.166	-39.6928	1.126336 -60.123753
+172.291	-39.9549	1.150432 -58.991058
+172.027	-39.5172	1.106649 -60.878815
+172.215	-39.6036	1.124717 -60.867912
+172.148	-39.5178	1.115163 -61.245369
+172.498	-39.4239	1.133065 -62.809200
+172.32	-39.869	1.147137 -59.589005
+172.207	-39.4258	1.113301 -62.098072
+172.274	-39.7625	1.137756 -60.049866
+172.381	-39.7014	1.141513 -60.779202
+172.442	-39.554	1.137055 -61.850090
+172.478	-39.3321	1.125785 -63.368717
+172.416	-39.7903	1.148896 -60.388977
+172.277	-39.675	1.133015 -60.601231
+172.358	-39.3994	1.121564 -62.672092
+172.348	-39.6146	1.134368 -61.202660
+172.477	-39.6411	1.144384 -61.427219
+172.306	-39.5137	1.125526 -61.738651
+172.507	-38.956	1.104099 -65.629532
+172.392	-39.9519	1.157177 -59.421333
+172.428	-39.479	1.131639 -62.295036
+172.458	-39.8782	1.156801 -60.079479
+172.921	-38.488	1.096791 -69.055092
+172.761	-38.7035	1.103549 -67.607864
+172.613	-38.8172	1.101640 -66.668785
+172.834	-38.6284	1.102150 -68.167702
+172.928	-38.5745	1.103469 -68.649643
+173.416	-38.431	1.117421 -70.204521
+172.715	-38.7799	1.106391 -67.083878
+172.619	-39.1903	1.127488 -64.481773
+172.621	-38.9169	1.109813 -66.092186
+172.618	-39.0193	1.116695 -65.464241
+172.591	-39.2818	1.130940 -63.885597
+172.867	-38.7078	1.111345 -67.758873
+172.532	-39.5013	1.140010 -62.408615
+172.593	-39.3707	1.136545 -63.348602
+173.045	-38.5259	1.104701 -69.177643
+172.596	-39.4444	1.141132 -62.904343
+174.146	-37.2996	1.098735 -74.071724
+173.349	-38.5308	1.121306 -69.698425
+172.942	-38.6622	1.112155 -68.177734
+172.84	-38.7891	1.116173 -67.242561
+173.376	-38.3359	1.108214 -70.470886
+172.679	-39.109	1.127069 -65.067284
+172.745	-38.8701	1.115694 -66.600868
+173.018	-38.6153	1.112271 -68.606186
+172.715	-38.9591	1.119926 -66.010918
+172.51	-39.7278	1.151234 -61.051163
+172.543	-39.8145	1.158192 -60.720909
+172.567	-39.5807	1.146658 -62.034149
+172.957	-38.7451	1.120487 -67.720772
+172.571	-39.8989	1.164868 -60.429237
+172.718	-39.1773	1.134188 -64.742683
+173.509	-38.3455	1.115141 -70.685852
+172.658	-39.5102	1.148701 -62.677624
+172.691	-39.3274	1.141063 -63.811535
+172.504	-39.9609	1.165072 -59.863388
+172.871	-38.8724	1.124846 -66.813515
+173.531	-38.4515	1.127435 -70.297462
+172.755	-39.0355	1.128135 -65.645027
+172.697	-39.2481	1.136862 -64.286041
+173.05	-38.692	1.121568 -68.215096
+172.963	-38.8302	1.127986 -67.234276
+173.382	-38.6347	1.136399 -69.173744
+172.838	-38.9539	1.128646 -66.269875
+172.703	-39.4144	1.146626 -63.328579
+172.806	-39.1268	1.137736 -65.213074
+172.683	-39.6009	1.154753 -62.257267
+173.72	-38.3572	1.130685 -70.957397
+173.125	-38.6184	1.118644 -68.798851
+173.195	-38.5251	1.111993 -69.465782
+172.598	-39.9665	1.170923 -60.254574
+172.796	-39.219	1.142422 -64.649124
+173.069	-38.7814	1.130920 -67.721603
+172.77	-39.286	1.144274 -64.209091
+172.873	-39.045	1.137423 -65.804184
+172.761	-39.4761	1.153476 -63.116840
+172.956	-38.9117	1.133888 -66.745346
+172.602	-39.6649	1.153341 -61.681110
+173.806	-38.2066	1.120914 -71.580894
+172.643	-39.7546	1.160487 -61.374451
+174.06	-38.0404	1.124203 -72.427010
+172.767	-39.545	1.157028 -62.771885
+174.167	-37.4739	1.104098 -73.726135
+172.654	-39.8446	1.165972 -61.000809
+172.795	-39.351	1.149585 -63.887650
+172.912	-39.1114	1.144398 -65.493065
+173.073	-38.8782	1.139365 -67.169006
+172.956	-38.9878	1.139391 -66.296478
+173.803	-38.2958	1.129923 -71.294540
+173.546	-38.5344	1.137477 -69.944252
+172.791	-39.6208	1.161843 -62.468269
+172.91	-39.1906	1.148863 -65.030289
+172.877	-39.2853	1.151689 -64.424171
+173.183	-38.7189	1.132347 -68.313690
+173.402	-38.7014	1.145100 -68.834137
+173.623	-38.3196	1.119499 -70.945496
+172.825	-39.4241	1.155056 -63.536774
+173.62	-38.4029	1.128543 -70.620346
+172.716	-39.6817	1.160638 -61.964016
+172.672	-39.9261	1.171887 -60.749367
+172.978	-39.0623	1.145999 -65.900345
+173.18	-38.8232	1.141924 -67.702721
+172.849	-39.4944	1.159579 -63.225910
+173.462	-38.5068	1.127804 -69.948189
+173.033	-38.9476	1.141921 -66.675507
+173.258	-38.6232	1.127043 -69.013405
+174.117	-37.8212	1.114249 -72.959389
+172.997	-39.1333	1.151642 -65.522858
+172.865	-39.567	1.163417 -62.908779
+172.97	-39.255	1.156325 -64.770393
+172.879	-39.6314	1.166566 -62.657150
+173.957	-38.1343	1.124954 -72.030518
+173.024	-39.204	1.157396 -65.162483
+172.904	-39.3698	1.157525 -63.999214
+173.63	-38.4883	1.138697 -70.280716
+173.465	-38.755	1.154905 -68.661156
+172.834	-39.6988	1.167345 -62.255703
+173.284	-38.7832	1.145312 -68.135979
+173.313	-38.704	1.139449 -68.646889
+173.181	-38.8996	1.148496 -67.254646
+173.464	-38.5795	1.136087 -69.595062
+173.052	-39.0099	1.147524 -66.346603
+172.729	-39.8018	1.167414 -61.474968
+173.122	-38.9545	1.148582 -66.811104
+172.751	-39.7457	1.165602 -61.795891
+172.984	-39.3204	1.160224 -64.427719
+173.283	-38.8776	1.153712 -67.589554
+172.929	-39.4438	1.162146 -63.649040
+173.073	-39.0793	1.153702 -65.980583
+172.949	-39.5155	1.165763 -63.329666
+174.033	-36.924	1.087184 -74.811905
+173.897	-38.1848	1.125457 -71.791405
+173.095	-39.1484	1.159117 -65.619331
+172.97	-39.5958	1.169338 -63.016411
+173.78	-38.4119	1.141255 -70.845215
+174.034	-38.0977	1.127151 -72.249367
+172.769	-39.8722	1.172937 -61.367474
+173.149	-39.0278	1.155590 -66.433510
+172.768	-39.956	1.177885 -61.092285
+173.811	-38.3674	1.138559 -71.057404
+174.276	-37.4918	1.109981 -73.828209
+172.945	-39.6738	1.170902 -62.650620
+174.124	-37.8896	1.118466 -72.842323
+173.645	-38.5739	1.148910 -69.922523
+174.216	-37.6275	1.111517 -73.481071
+172.833	-39.7917	1.171404 -61.901390
+173.057	-39.2708	1.162615 -64.835258
+173.494	-38.8322	1.164120 -68.301048
+173.237	-38.9705	1.157852 -66.948318
+173.122	-39.2175	1.164543 -65.257988
+173.711	-38.4417	1.139574 -70.602776
+174.163	-37.0846	1.095332 -74.557793
+173.009	-39.3931	1.164638 -64.069695
+173.166	-39.0979	1.161193 -66.050735
+172.932	-39.7452	1.172955 -62.365562
+173.891	-38.2531	1.131950 -71.572731
+173.032	-39.4654	1.168370 -63.733429
+173.368	-38.7535	1.148069 -68.476334
+173.037	-39.6549	1.173485 -62.928799
+173.549	-38.5992	1.144729 -69.636864
+173.489	-38.6629	1.147195 -69.200371
+173.344	-38.9522	1.163746 -67.275795
+173.051	-39.5375	1.171342 -63.428387
+173.377	-38.8951	1.161621 -67.685303
+173.084	-39.3411	1.167136 -64.482880
+174.029	-36.8287	1.085966 -75.038162
+174.214	-37.7058	1.115092 -73.328613
+173.386	-38.8247	1.156087 -68.109413
+173.24	-39.0563	1.163800 -66.442757
+173.069	-39.5991	1.173386 -63.202381
+172.871	-39.8614	1.175796 -61.807926
+173.017	-39.7166	1.174460 -62.671761
+173.187	-39.1625	1.166197 -65.704132
+173.519	-38.8969	1.171205 -67.993195
+174.22	-37.2398	1.101210 -74.287453
+173.155	-39.2866	1.169584 -64.911720
+173.327	-39.0266	1.167839 -66.802185
+172.844	-39.983	1.182019 -61.382500
+173.221	-39.2287	1.171551 -65.359337
+173.553	-38.7881	1.164066 -68.666107
+173.242	-39.1168	1.167494 -66.087143
+173.729	-38.5165	1.148902 -70.326988
+173.188	-39.3579	1.173799 -64.547234
+173.112	-39.4141	1.171137 -64.130722
+173.568	-38.7243	1.159184 -69.035698
+173.863	-38.4237	1.148762 -70.940933
+173.008	-39.7715	1.175720 -62.486656
+172.853	-39.9235	1.178659 -61.565674
+174.136	-37.0207	1.093089 -74.668846
+173.134	-39.4888	1.173966 -63.784393
+173.602	-38.6524	1.154117 -69.470337
+172.954	-39.8229	1.176397 -62.198109
+173.32	-39.098	1.171919 -66.349655
+173.155	-39.5677	1.175926 -63.461098
+173.896	-38.3419	1.142170 -71.297600
+173.401	-39.0015	1.171224 -67.110703
+173.441	-38.9421	1.169580 -67.549782
+173.088	-39.699	1.175753 -62.878559
+173.136	-39.6485	1.176037 -63.128391
+173.291	-39.1714	1.173595 -65.833382
+173.699	-38.6458	1.160350 -69.692986
+173.266	-39.2977	1.176914 -65.006195
+174.201	-37.1358	1.098081 -74.491310
+174.191	-37.779	1.117189 -73.149261
+173.303	-39.2364	1.177251 -65.435165
+173.758	-38.589	1.158651 -70.070084
+173.524	-38.9561	1.176302 -67.660774
+173.045	-39.8129	1.177332 -62.482513
+174.05	-36.7495	1.086483 -75.252220
+173.417	-39.0703	1.177004 -66.722725
+173.09	-39.7617	1.176802 -62.710953
+173.66	-38.7085	1.163939 -69.307007
+173.287	-39.3732	1.179724 -64.576622
+173.443	-38.8781	1.164486 -67.930153
+173.225	-39.4348	1.177350 -64.166443
+174.027	-38.1567	1.132482 -72.092865
+172.943	-39.9015	1.179450 -61.971832
+172.92	-39.9689	1.182569 -61.756767
+173.796	-38.4694	1.148671 -70.646210
+173.231	-39.5134	1.178193 -63.785313
+173.359	-39.2718	1.182183 -65.288025
+173.392	-39.1466	1.179635 -66.183342
+173.214	-39.6209	1.177739 -63.332695
+173.978	-38.2096	1.134036 -71.854713
+173.609	-38.9318	1.180263 -68.015411
+173.042	-39.8779	1.179282 -62.348267
+173.571	-39.0034	1.183151 -67.509026
+173.973	-38.2884	1.142028 -71.609001
+174.303	-37.4382	1.109940 -73.973206
+173.316	-39.4273	1.181766 -64.296417
+173.257	-39.576	1.179076 -63.546215
+173.645	-38.7807	1.169669 -68.907204
+173.596	-38.851	1.172720 -68.430847
+173.792	-38.653	1.167562 -69.850029
+173.378	-39.2125	1.181505 -65.712044
+173.163	-39.7192	1.177089 -62.955601
+173.479	-39.0084	1.177110 -67.248489
+173.357	-39.331	1.183283 -64.905235
+173.867	-38.485	1.155616 -70.719315
+173.009	-39.9502	1.182039 -62.134632
+173.742	-38.7031	1.169016 -69.503555
+173.117	-39.8292	1.178092 -62.624519
+173.47	-39.1286	1.184232 -66.461021
+173.31	-39.4816	1.181467 -64.004913
+173.833	-38.5368	1.158507 -70.444252
+173.71	-38.7475	1.171028 -69.222511
+173.225	-39.679	1.177845 -63.153881
+173.439	-39.2584	1.187470 -65.493950
+173.244	-39.7432	1.177500 -63.018223
+173.306	-39.535	1.180823 -63.749161
+173.181	-39.7848	1.177545 -62.841759
+173.531	-39.0753	1.185357 -66.964584
+174.261	-37.7581	1.121403 -73.300903
+173.416	-39.3051	1.186924 -65.137642
+173.374	-39.3923	1.184909 -64.534637
+173.298	-39.6376	1.179339 -63.348911
+173.474	-39.1964	1.187807 -65.988632
+173.341	-39.5813	1.181202 -63.567707
+173.827	-38.7171	1.176070 -69.625221
+173.138	-39.8917	1.179109 -62.601963
+173.67	-38.8871	1.180565 -68.414345
+174.229	-37.0887	1.098784 -74.617241
+173.683	-38.8393	1.177377 -68.697060
+173.198	-39.8478	1.177546 -62.779957
+174.116	-36.9513	1.091436 -74.807220
+173.768	-38.7484	1.174935 -69.344818
+173.625	-39.0544	1.190520 -67.353668
+173.308	-39.7053	1.178082 -63.159157
+173.086	-39.9359	1.180907 -62.416386
+173.547	-39.1512	1.191043 -66.489372
+173.432	-39.3541	1.188470 -64.813629
+173.261	-39.807	1.176731 -62.931938
+173.384	-39.4544	1.185112 -64.173546
+173.852	-38.605	1.166942 -70.187874
+173.377	-39.6268	1.180720 -63.409122
+173.955	-38.4089	1.153806 -71.170738
+173.662	-38.9952	1.188543 -67.806770
+173.454	-39.4166	1.189495 -64.406082
+173.994	-38.3537	1.150756 -71.435944
+173.51	-39.257	1.192625 -65.604156
+174.126	-38.0218	1.128235 -72.573296
+173.378	-39.6772	1.178861 -63.255627
+173.743	-38.7995	1.177874 -69.040756
+173.49	-39.3143	1.192195 -65.138496
+173.154	-39.9543	1.179930 -62.624260
+173.386	-39.5247	1.183953 -63.816288
+173.822	-38.7761	1.181069 -69.339310
+173.215	-39.9078	1.177384 -62.781391
+173.671	-39.0911	1.196087 -67.264542
+173.906	-38.5169	1.161741 -70.659355
+173.323	-39.7678	1.176355 -63.050491
+173.494	-39.3719	1.192426 -64.706528
+173.457	-39.4825	1.188061 -64.010811
+173.575	-39.2258	1.196878 -65.965622
+174.24	-37.18	1.100972 -74.435829
+174.001	-36.6996	1.083710 -75.367226
+173.42	-39.5901	1.182863 -63.523331
+173.613	-39.1129	1.193768 -66.937538
+173.711	-38.9365	1.187064 -68.259628
+173.932	-38.4713	1.159060 -70.896606
+173.682	-39.1346	1.200023 -67.013817
+173.275	-39.8674	1.175631 -62.908363
+173.528	-39.4125	1.193960 -64.409752
+173.385	-39.7365	1.176542 -63.129395
+173.754	-38.8732	1.184848 -68.705048
+173.751	-38.9941	1.193817 -68.090126
+174.299	-37.5489	1.113754 -73.750046
+174.242	-37.8042	1.122710 -73.180214
+174.035	-38.2561	1.143481 -71.813660
+173.63	-39.1733	1.198782 -66.541344
+173.712	-39.0521	1.195893 -67.642982
+174.289	-37.6011	1.115440 -73.638809
+174.109	-38.0803	1.132011 -72.413055
+173.23	-39.965	1.177210 -62.839413
+173.876	-38.6648	1.174469 -69.977257
+174.287	-37.6623	1.118398 -73.528442
+173.507	-39.4522	1.191453 -64.153915
+173.481	-39.5474	1.186185 -63.665222
+173.288	-39.9248	1.174507 -62.939495
+173.877	-38.7558	1.182849 -69.570435
+173.568	-39.2959	1.198168 -65.348671
+173.823	-38.8306	1.185646 -69.088364
+173.387	-39.7872	1.174314 -63.064445
+173.449	-39.6494	1.180477 -63.310356
+174.073	-38.2032	1.141099 -72.039017
+173.562	-39.3632	1.197537 -64.776009
+173.345	-39.831	1.174103 -63.007198
+173.915	-38.5669	1.167670 -70.477409
+174.146	-37.9331	1.123334 -72.791931
+173.702	-39.1859	1.205325 -66.686066
+173.483	-39.6048	1.183144 -63.426720
+174.194	-37.847	1.121557 -73.026253
+173.584	-39.4153	1.197599 -64.338737
+173.451	-39.712	1.176933 -63.155403
+173.661	-39.2295	1.204695 -66.126122
+173.834	-38.8798	1.190151 -68.891251
+174.052	-38.3119	1.150777 -71.676682
+173.818	-38.9377	1.193577 -68.564873
+173.926	-38.6238	1.174133 -70.266541
+173.528	-39.4979	1.190426 -63.858986
+173.783	-39.042	1.199113 -67.951836
+173.295	-39.9739	1.173807 -63.008617
+174.105	-36.8828	1.090271 -74.951187
+174.289	-37.7142	1.121197 -73.428947
+173.72	-39.1016	1.200027 -67.378006
+174.156	-37.9753	1.127353 -72.720047
+173.564	-39.4555	1.194425 -64.072105
+174.091	-38.1387	1.136052 -72.243202
+173.634	-39.2814	1.204002 -65.553406
+174.112	-36.8331	1.090199 -75.070953
+173.552	-39.5426	1.188640 -63.591454
+173.338	-39.8893	1.172623 -63.000538
+173.885	-38.8016	1.187216 -69.385666
+173.46	-39.7762	1.172713 -63.064156
+173.908	-38.7165	1.181580 -69.818993
+173.526	-39.6407	1.181142 -63.251637
+173.63	-39.3366	1.203725 -64.997169
+173.42	-39.8244	1.171408 -63.053680
+174.022	-38.4023	1.158123 -71.313011
+173.541	-39.5879	1.185188 -63.412895
+173.688	-39.7533	1.164399 -62.666264
+173.65	-39.6514	1.179544 -62.936829
+173.526	-39.7343	1.173582 -63.051765
+173.678	-39.4876	1.198151 -63.569038
+173.674	-39.7985	1.158585 -62.733627
+173.682	-39.7009	1.172361 -62.730942
+173.748	-39.826	1.148055 -62.530544
+173.833	-39.8955	1.124914 -62.445873
+173.728	-39.7759	1.158276 -62.529675
+173.982	-38.5278	1.168435 -70.771393
+173.538	-39.787	1.168481 -63.004921
+173.597	-39.8226	1.161037 -62.939041
+173.775	-39.0871	1.202127 -67.683746
+173.753	-39.9074	1.133414 -62.790401
+173.661	-39.9128	1.143932 -63.040714
+173.61	-39.9403	1.146634 -63.200085
+173.371	-39.9487	1.169183 -63.110374
+173.683	-39.9743	1.132648 -63.285866
+173.605	-39.5677	1.188042 -63.354500
+173.527	-39.9378	1.156226 -63.205357
+173.451	-39.9174	1.164434 -63.141399
+173.453	-39.9664	1.161826 -63.253662
+173.845	-39.948	1.112700 -62.701714
+173.596	-39.6242	1.182790 -63.166534
+173.632	-39.3946	1.202102 -64.439178
+174.018	-38.4587	1.163945 -71.105835
+173.593	-39.8866	1.154136 -63.052193
+173.507	-39.6857	1.177885 -63.161938
+173.585	-39.6863	1.176725 -63.029057
+173.604	-39.5069	1.193118 -63.668179
+173.828	-39.008	1.199034 -68.275253
+173.889	-38.9795	1.200225 -68.599190
+173.592	-39.9947	1.143588 -63.437637
+173.878	-38.9002	1.194357 -68.921333
+173.612	-39.7547	1.168136 -62.883926
+173.625	-39.4498	1.198209 -63.990963
+173.983	-38.5931	1.175028 -70.513062
+173.885	-39.0281	1.203084 -68.385895
+173.848	-39.0682	1.204168 -68.076927
+173.888	-38.8551	1.191665 -69.150032
+173.67	-39.5427	1.192182 -63.278481
+173.499	-39.8518	1.165366 -63.052143
+173.981	-38.6391	1.179245 -70.326729
+173.67	-39.8582	1.150383 -62.848022
+173.406	-39.8766	1.169546 -63.064468
+173.778	-39.9853	1.116504 -63.161846
+173.946	-38.6736	1.180138 -70.097153
+173.898	-38.9331	1.197656 -68.831383
+174.29	-37.3825	1.108001 -74.062202
+173.946	-38.8929	1.197834 -69.150818
+173.67	-39.6005	1.185692 -63.022400
+173.807	-39.859	1.135471 -62.393681
+174.282	-37.213	1.103919 -74.414848
+174.065	-38.5146	1.173002 -70.988739
+173.764	-39.145	1.206276 -67.284515
+174.069	-38.3671	1.157947 -71.523590
+174.104	-38.2674	1.150244 -71.899147
+174.179	-37.8993	1.123840 -72.907166
+174.049	-38.5725	1.177533 -70.740288
+173.899	-39.979	1.097020 -62.719261
+173.936	-38.765	1.187572 -69.674850
+174.183	-38.015	1.132973 -72.678162
+174.135	-38.1754	1.143463 -72.222168
+174.079	-38.4188	1.164259 -71.369431
+174.136	-38.3275	1.158998 -71.776878
+174.172	-36.906	1.093729 -74.947273
+174.176	-38.0609	1.136198 -72.561928
+173.976	-38.7209	1.186421 -69.960411
+174.268	-37.8436	1.127574 -73.149292
+174.296	-37.7971	1.126783 -73.282639
+174.201	-37.9374	1.128591 -72.863937
+174.011	-38.6765	1.184654 -70.237381
+174.17	-38.1238	1.141540 -72.414078
+174.036	-38.6283	1.181992 -70.499329
+174.104	-36.785	1.089471 -75.186440
+174.206	-37.0354	1.096796 -74.701355
+173.728	-39.235	1.211461 -66.305901
+174.149	-38.2228	1.149338 -72.113976
+174.348	-37.5217	1.115898 -73.875671
+174.351	-37.5755	1.118629 -73.777473
+174.259	-37.132	1.101060 -74.557533
+174.1	-38.4678	1.170757 -71.238510
+174.351	-37.6308	1.121433 -73.678650
+174.325	-37.7499	1.126162 -73.420242
+174.238	-37.892	1.128394 -73.010651
+174.128	-38.5078	1.176707 -71.154854
+174.224	-37.9829	1.134034 -72.805443
+174.133	-38.3889	1.165056 -71.577644
+174.178	-38.2714	1.156448 -72.026146
+173.746	-39.7344	1.164441 -62.444458
+174.197	-38.1822	1.149170 -72.308151
+174.198	-36.9694	1.095625 -74.834732
+174.357	-37.6924	1.125198 -73.575058
+174.235	-38.0332	1.139104 -72.720062
+174.134	-38.4336	1.169584 -71.426865
+173.787	-39.7727	1.154669 -62.274715
+174.326	-37.8335	1.131686 -73.265747
+174.237	-38.0864	1.143746 -72.601929
+174.318	-37.3263	1.108129 -74.216751
+174.119	-38.554	1.180582 -70.960976
+174.271	-37.9395	1.134688 -72.969406
+173.891	-39.908	1.113862 -62.250610
+174.351	-37.4674	1.113925 -73.984444
+174.04	-38.7219	1.190617 -70.117996
+174.248	-38.1407	1.149440 -72.494949
+173.715	-39.6435	1.179941 -62.714180
+174.298	-37.1694	1.103750 -74.518013
+173.907	-39.9469	1.102477 -62.437130
+174.076	-38.6732	1.188655 -70.408493
+173.719	-39.5685	1.190304 -62.959846
+174.355	-37.4138	1.112431 -74.090401
+173.689	-39.4321	1.204011 -63.955719
+174.113	-38.6165	1.186103 -70.719666
+173.959	-38.823	1.193624 -69.482887
+174.221	-38.3181	1.164181 -71.971100
+174.211	-38.2276	1.154538 -72.206604
+174.359	-37.7922	1.131411 -73.390007
+173.954	-38.9543	1.201958 -68.911804
+174.278	-37.0935	1.101251 -74.654716
+173.827	-39.8117	1.143166 -62.155651
+173.733	-39.602	1.185824 -62.761841
+174.309	-37.2657	1.106345 -74.332680
+174.317	-37.8858	1.134511 -73.147751
+174.174	-38.4729	1.176342 -71.378685
+174.198	-38.3699	1.167726 -71.765984
+174.161	-36.8547	1.092727 -75.054192
+174.3	-37.996	1.141360 -72.897675
+173.773	-39.6768	1.173279 -62.372192
+174.19	-38.5313	1.183012 -71.209419
+174.272	-38.1982	1.156357 -72.393639
+174.298	-38.0546	1.145763 -72.775978
+174.364	-37.3611	1.111446 -74.205078
+174.251	-37.0016	1.098453 -74.810944
+174.391	-37.8414	1.137061 -73.353989
+173.946	-39.0157	1.205037 -68.640854
+174.261	-38.2643	1.161746 -72.196388
+174.004	-38.7699	1.192319 -69.827423
+173.742	-39.5227	1.196863 -63.092621
+174.187	-38.4203	1.172038 -71.581589
+174.302	-38.1045	1.150216 -72.674713
+174.343	-37.9428	1.140609 -73.080971
+174.18	-38.5838	1.187380 -70.995567
+174.315	-38.15	1.155017 -72.591019
+174.16	-36.807	1.092366 -75.164200
+174.41	-37.5487	1.121542 -73.921272
+174.413	-37.6005	1.124286 -73.828430
+174.418	-37.6521	1.127394 -73.745628
+174.291	-38.3174	1.168672 -72.107681
+174.108	-38.7223	1.194981 -70.285866
+174.392	-37.744	1.130779 -73.531624
+173.875	-39.8544	1.128293 -62.048370
+174.147	-38.6745	1.193527 -70.575226
+174.409	-37.4963	1.118981 -74.012405
+174.24	-36.9131	1.096865 -74.983757
+174.19	-38.6316	1.192411 -70.847534
+174.392	-37.9005	1.141101 -73.238525
+173.951	-39.9714	1.088494 -62.427608
+174.432	-37.7001	1.130999 -73.678558
+174.266	-38.3598	1.171329 -71.939850
+174.069	-38.7692	1.196233 -69.999786
+174.017	-38.8628	1.199762 -69.476318
+174.242	-38.4523	1.178790 -71.596100
+174.376	-37.985	1.146001 -73.048531
+174.25	-38.4056	1.174781 -71.765854
+174.348	-38.1868	1.160276 -72.561691
+174.424	-37.7859	1.135717 -73.511101
+174.242	-38.4985	1.183210 -71.442703
+174.334	-38.2353	1.163771 -72.418564
+174.361	-38.0308	1.148465 -72.933144
+174.334	-38.2855	1.168314 -72.285896
+174.356	-38.077	1.151717 -72.823532
+174.345	-37.2078	1.107126 -74.492287
+174.251	-38.5347	1.187192 -71.337654
+173.817	-39.7216	1.162810 -62.093506
+173.705	-39.3682	1.210274 -64.574265
+174.357	-38.1184	1.155075 -72.740013
+174.41	-37.9453	1.145404 -73.183174
+174.365	-38.1516	1.158426 -72.681709
+174.237	-38.5675	1.189444 -71.187126
+174.341	-38.3227	1.172225 -72.203262
+174.465	-37.821	1.140789 -73.512138
+174.452	-37.8707	1.143035 -73.395386
+174.274	-37.048	1.100268 -74.741089
+174.411	-37.4422	1.116981 -74.117455
+174.216	-36.866	1.095382 -75.065277
+174.345	-37.1595	1.106007 -74.589081
+174.316	-37.1208	1.103701 -74.634697
+174.136	-38.771	1.200621 -70.168846
+173.695	-39.2763	1.210193 -65.699570
+174.325	-38.3541	1.174325 -72.080849
+174.313	-38.3939	1.177470 -71.933899
+174.274	-36.957	1.098780 -74.917664
+174.183	-38.7266	1.200129 -70.464096
+174.215	-38.6776	1.197946 -70.734375
+173.855	-39.7601	1.151937 -61.903725
+174.38	-37.3035	1.110979 -74.334351
+174.303	-38.4368	1.181062 -71.781975
+173.948	-39.9241	1.100268 -62.063366
+174.439	-37.9798	1.149629 -73.165085
+174.405	-38.1721	1.162397 -72.708138
+174.413	-37.3913	1.115245 -74.209572
+174.453	-37.9143	1.146006 -73.319145
+174.397	-38.2143	1.165648 -72.592079
+174.452	-37.7408	1.134913 -73.634361
+173.777	-39.6225	1.182427 -62.479465
+174.416	-38.0132	1.150598 -73.055832
+174.23	-38.6039	1.192387 -71.040810
+174.2	-36.8272	1.094346 -75.140755
+173.895	-39.7972	1.139482 -61.736263
+174.397	-38.2648	1.170008 -72.469612
+174.311	-37.0775	1.102529 -74.713341
+174.036	-38.8143	1.197653 -69.731033
+174.298	-38.4801	1.184916 -71.634010
+174.424	-38.0577	1.154465 -72.983017
+173.779	-39.5706	1.190839 -62.654930
+174.298	-38.5199	1.188638 -71.501030
+174.477	-37.5714	1.127182 -73.985901
+174.401	-38.0984	1.156255 -72.856209
+174.384	-38.3095	1.173383 -72.331116
+174.465	-37.6223	1.129055 -73.872185
+174.378	-38.3465	1.176542 -72.220634
+174.025	-38.9203	1.203721 -69.271255
+174.374	-37.2528	1.109644 -74.435120
+174.459	-37.9486	1.148625 -73.260384
+174.457	-37.5215	1.123368 -74.038841
+174.407	-38.1328	1.159290 -72.797493
+174.485	-37.6661	1.132853 -73.825066
+174.483	-37.7734	1.138995 -73.620735
+174.37	-38.3837	1.179602 -72.096359
+174.292	-38.5586	1.191833 -71.351608
+174.423	-37.3443	1.114327 -74.312675
+173.937	-39.8776	1.113842 -61.822575
+174.017	-38.988	1.206794 -68.978951
+174.48	-37.7083	1.134870 -73.738930
+173.742	-39.4678	1.203653 -63.453045
+174.201	-38.7785	1.205192 -70.312340
+173.822	-39.6403	1.178625 -62.165657
+174.262	-38.6398	1.197574 -70.988464
+174.281	-38.5967	1.194725 -71.190308
+174.474	-37.4702	1.122084 -74.160797
+174.363	-38.4234	1.183109 -71.961845
+174.519	-37.8492	1.145748 -73.544846
+174.497	-37.894	1.147207 -73.423653
+173.676	-39.3161	1.208707 -65.212776
+174.249	-38.7145	1.203044 -70.673431
+174.438	-38.3022	1.175463 -72.466187
+174.099	-38.8133	1.201275 -69.904060
+174.269	-38.6814	1.201469 -70.848114
+174.458	-38.1534	1.163719 -72.854156
+174.515	-37.8009	1.142692 -73.626617
+174.358	-38.4645	1.186746 -71.825516
+174.454	-38.1946	1.166853 -72.752075
+174.496	-37.9703	1.152176 -73.284416
+174.45	-38.2363	1.170249 -72.647812
+174.422	-38.3338	1.177551 -72.353333
+174.456	-38.2706	1.173483 -72.576424
+174.48	-38.016	1.154420 -73.165985
+174.012	-39.9473	1.082353 -61.912067
+174.235	-38.7493	1.204994 -70.510353
+174.463	-37.4138	1.119061 -74.248848
+174.054	-39.983	1.063727 -62.038406
+174.498	-38.0653	1.158876 -73.101959
+174.393	-37.1707	1.108759 -74.617569
+174.46	-38.1064	1.160062 -72.953995
+174.309	-36.9979	1.100847 -74.862564
+174.502	-37.9308	1.149913 -73.370720
+174.309	-36.9093	1.099551 -75.035316
+173.849	-39.674	1.170811 -61.938049
+174.353	-38.5052	1.190356 -71.679359
+174.432	-38.3726	1.181608 -72.270882
+173.796	-39.4883	1.203645 -63.017269
+174.498	-37.7356	1.137720 -73.712601
+174.347	-38.5467	1.193918 -71.530144
+174.068	-38.8458	1.201671 -69.694016
+173.916	-39.0684	1.206912 -68.346077
+174.412	-38.4094	1.184249 -72.119667
+174.163	-38.8186	1.205576 -70.054169
+174.375	-37.1254	1.106670 -74.690887
+173.992	-39.8931	1.100725 -61.596546
+174.457	-37.3724	1.117175 -74.308426
+174.258	-38.7812	1.208687 -70.450607
+173.941	-39.8293	1.126000 -61.563148
+174.529	-38.1035	1.162984 -73.088264
+174.334	-38.5861	1.196797 -71.358551
+174.495	-38.2939	1.177013 -72.612495
+173.998	-39.0303	1.208043 -68.759712
+173.884	-39.7097	1.161026 -61.682568
+174.507	-38.137	1.164733 -72.983276
+174.423	-38.4492	1.188610 -72.033485
+174.306	-38.7069	1.205802 -70.844681
+174.548	-37.9509	1.153567 -73.408844
+174.518	-38.1808	1.168591 -72.911438
+174.541	-37.7561	1.141526 -73.744354
+174.323	-38.6248	1.199818 -71.195976
+174.496	-38.219	1.170757 -72.783714
+174.48	-38.3382	1.180379 -72.479477
+174.066	-38.8802	1.203606 -69.548363
+174.501	-38.2546	1.173919 -72.716057
+174.542	-37.9928	1.155843 -73.316757
+174.55	-37.5637	1.131232 -74.114296
+174.527	-37.621	1.132952 -73.971802
+173.921	-39.7449	1.149716 -61.456158
+173.75	-39.4209	1.209697 -63.834229
+174.59	-37.847	1.149218 -73.654663
+174.404	-38.4886	1.191398 -71.860992
+174.513	-37.5189	1.126734 -74.135910
+174.555	-37.8999	1.150688 -73.510033
+174.409	-37.2181	1.110683 -74.541054
+174.545	-38.035	1.158788 -73.247856
+174.317	-38.6661	1.202993 -71.026001
+174.553	-38.0712	1.161518 -73.192558
+174.234	-38.8242	1.210238 -70.229362
+174.53	-37.6615	1.135407 -73.904465
+174.439	-37.3043	1.114156 -74.408997
+174.563	-37.804	1.145510 -73.689919
+174.285	-38.7455	1.207626 -70.648605
+174.487	-38.3785	1.184390 -72.390549
+174.531	-37.6997	1.137681 -73.831093
+174.52	-37.4246	1.122831 -74.316887
+174.426	-37.2643	1.112469 -74.471367
+174.47	-38.4136	1.187173 -72.251854
+174.08	-38.958	1.208426 -69.291290
+173.978	-39.8542	1.113984 -61.444218
+174.413	-38.5318	1.196020 -71.742447
+173.835	-39.5991	1.186188 -62.209400
+174.356	-37.0837	1.104670 -74.749611
+174.551	-38.28	1.177702 -72.774834
+174.544	-37.4715	1.126109 -74.274406
+174.391	-38.5783	1.199244 -71.523956
+174.368	-38.6115	1.201158 -71.353722
+174.544	-38.3254	1.181223 -72.663223
+174.314	-38.7801	1.211910 -70.598465
+174.337	-37.0406	1.102740 -74.809502
+174.631	-37.8881	1.153295 -73.647270
+173.803	-39.5276	1.198039 -62.739826
+174.605	-37.9366	1.155141 -73.524193
+174.482	-38.4529	1.191569 -72.175110
+174.343	-36.9493	1.101186 -74.981041
+174.591	-38.0953	1.164514 -73.230392
+174.571	-38.1426	1.167483 -73.101021
+174.501	-37.3795	1.119859 -74.360809
+174.581	-38.1889	1.171421 -73.029175
+173.96	-39.7808	1.136490 -61.261433
+174.554	-38.2296	1.173833 -72.886436
+173.753	-39.1965	1.210116 -66.827583
+173.829	-39.1146	1.206823 -67.785988
+174.121	-38.8611	1.205731 -69.776550
+174.464	-38.4936	1.194796 -71.995575
+174.588	-37.9739	1.156749 -73.431511
+174.286	-38.81	1.212393 -70.422028
+174.622	-37.8	1.148138 -73.783913
+174.535	-38.368	1.184776 -72.546593
+174.596	-38.0104	1.159252 -73.374466
+174.053	-39.8991	1.087883 -61.266804
+174.363	-38.6923	1.207987 -71.041733
+174.574	-37.5151	1.129909 -74.241203
+174.483	-37.332	1.117093 -74.414825
+174.594	-37.765	1.144871 -73.810356
+174.6	-38.0534	1.161957 -73.313934
+174.437	-37.1257	1.109628 -74.764809
+174.519	-38.4002	1.187459 -72.416794
+174.106	-39.9873	1.049949 -61.850410
+174.457	-39.9846	0.964805 -60.088573
+174.352	-38.7404	1.211205 -70.839813
+174.371	-38.6482	1.204589 -71.229027
+174.396	-39.9701	0.982333 -60.249981
+174.449	-38.5739	1.201795 -71.693199
+173.877	-39.628	1.179440 -61.819038
+174.467	-37.2279	1.113524 -74.591621
+174.423	-38.6202	1.204795 -71.466248
+174.45	-37.1807	1.111677 -74.667496
+174.47	-38.5377	1.199273 -71.871140
+174.159	-39.9935	1.034257 -61.684837
+174.079	-39.9457	1.068365 -61.532925
+174.616	-38.2198	1.174757 -73.039055
+173.845	-39.5519	1.194862 -62.345062
+174.657	-38.0789	1.164633 -73.387268
+174.606	-38.2635	1.177696 -72.927498
+174.096	-38.9111	1.206993 -69.518127
+174.658	-37.8383	1.151553 -73.771660
+173.949	-39.6959	1.159557 -61.197216
+174.289	-38.8397	1.214466 -70.319077
+174.605	-38.3133	1.181329 -72.838005
+174.482	-37.2768	1.115441 -74.518593
+173.914	-39.6619	1.170122 -61.486301
+174.191	-38.8648	1.210138 -69.958763
+174.599	-37.7133	1.142283 -73.906883
+174.027	-39.8531	1.106553 -61.103413
+174.365	-38.7816	1.214926 -70.725998
+174.339	-39.9839	0.991450 -60.746918
+174.601	-37.603	1.136295 -74.119850
+174.524	-38.4338	1.191105 -72.339645
+174.426	-38.6743	1.209827 -71.276314
+174.524	-38.4758	1.195434 -72.214516
+174.573	-37.6592	1.137807 -73.978104
+174.138	-39.9512	1.052430 -61.285828
+173.996	-39.8149	1.122577 -61.125748
+173.985	-39.7306	1.147343 -60.947628
+174.275	-39.9747	1.009755 -60.934372
+174.602	-37.5522	1.133398 -74.217438
+174.653	-38.0273	1.161840 -73.447044
+174.646	-37.7517	1.146668 -73.908203
+174.503	-38.5669	1.203421 -71.863159
+174.577	-37.4292	1.125728 -74.396332
+174.596	-38.3588	1.184812 -72.738663
+174.258	-38.8728	1.214581 -70.114464
+174.404	-37.0899	1.106900 -74.796638
+174.532	-39.9749	0.950531 -59.579075
+174.402	-38.717	1.212046 -71.050659
+174.156	-38.9039	1.210175 -69.717812
+174.645	-37.976	1.158834 -73.520447
+174.52	-38.5222	1.199682 -72.050308
+174.338	-38.8192	1.215920 -70.523109
+173.718	-39.3143	1.213363 -65.243561
+174.021	-39.7678	1.133034 -60.755463
+174.379	-36.9906	1.103035 -74.937958
+174.639	-39.9812	0.927967 -59.102848
+174.636	-38.1216	1.167366 -73.281296
+174.552	-37.3858	1.122883 -74.426781
+174.587	-39.9692	0.940375 -59.225689
+174.223	-39.9976	1.016466 -61.448383
+174.683	-37.7888	1.150063 -73.891663
+174.667	-37.9269	1.156616 -73.637215
+174.71	-37.8799	1.154933 -73.792046
+174.482	-38.6081	1.206442 -71.661171
+174.644	-38.1717	1.171705 -73.198982
+174.421	-39.9423	0.984367 -59.741802
+174.079	-39.0054	1.210535 -69.112350
+174.637	-37.6563	1.141251 -74.078392
+174.467	-38.6449	1.209199 -71.492226
+174.098	-39.8496	1.095439 -60.567883
+174.604	-37.4735	1.129108 -74.365204
+174.416	-38.759	1.216000 -70.940727
+174.136	-38.9417	1.210676 -69.514023
+174.119	-39.9052	1.072078 -60.898731
+173.969	-39.0622	1.208321 -68.544899
+174.217	-38.9094	1.214155 -69.873161
+174.729	-37.8262	1.152627 -73.900017
+174.531	-37.3484	1.120192 -74.459572
+174.401	-38.8072	1.218688 -70.730080
+174.671	-37.7016	1.145194 -74.037903
+173.98	-39.6463	1.169794 -60.934883
+174.487	-38.6829	1.213494 -71.401260
+174.056	-39.8063	1.116704 -60.632633
+174.696	-37.9584	1.159194 -73.631355
+174.703	-39.9838	0.915974 -58.813110
+174.701	-37.9968	1.161255 -73.575851
+174.327	-38.8718	1.218766 -70.309494
+174.454	-38.7192	1.214925 -71.174019
+174.015	-39.6814	1.157718 -60.623188
+174.481	-39.9282	0.974193 -59.223850
+174.67	-37.6067	1.139910 -74.227417
+174.615	-39.9476	0.939565 -58.823524
+174.706	-37.7399	1.148597 -74.012260
+174.496	-37.1931	1.113793 -74.694664
+174.186	-39.9609	1.036917 -61.167103
+174.719	-38.0464	1.163719 -73.524857
+174.38	-38.8441	1.219859 -70.550690
+174.051	-39.7187	1.143720 -60.362614
+173.902	-39.5776	1.190000 -61.786640
+174.541	-37.3017	1.119000 -74.549400
+173.94	-39.6142	1.180137 -61.338161
+174.084	-39.7584	1.127720 -60.192226
+174.631	-37.5181	1.132804 -74.333481
+174.568	-38.5594	1.204879 -72.057388
+174.649	-37.5618	1.136312 -74.283577
+174.649	-38.2483	1.177283 -73.048050
+174.29	-38.9246	1.219602 -70.032906
+174.665	-38.2167	1.175390 -73.143738
+174.4	-37.0441	1.105133 -74.871109
+174.529	-38.5982	1.207351 -71.822868
+174.532	-37.2357	1.116430 -74.660934
+173.85	-39.5029	1.203238 -62.591408
+174.7	-37.6505	1.143741 -74.187408
+174.363	-39.9286	1.002758 -59.892326
+174.741	-37.775	1.151100 -73.989449
+174.658	-38.29	1.180104 -72.996895
+173.897	-39.5328	1.199262 -62.078934
+174.471	-38.7547	1.218508 -71.093834
+174.117	-39.7958	1.110283 -60.082298
+174.181	-38.9348	1.213080 -69.670830
+174.767	-39.9826	0.905845 -58.489086
+174.461	-38.7936	1.220802 -70.932198
+174.583	-38.4995	1.199402 -72.299385
+174.724	-37.9258	1.157874 -73.736427
+174.606	-37.3897	1.125204 -74.499878
+174.18	-39.9195	1.052439 -60.713421
+174.666	-39.9464	0.929943 -58.578293
+174.634	-37.4328	1.128064 -74.481651
+174.734	-37.6914	1.147248 -74.144608
+174.577	-37.3462	1.122256 -74.524887
+174.491	-37.1493	1.112607 -74.769768
+174.522	-38.6426	1.211318 -71.646423
+174.563	-39.9279	0.954986 -58.826546
+174.686	-39.9081	0.932616 -58.052967
+174.293	-39.9338	1.018801 -60.323547
+174.232	-39.9445	1.030685 -60.749020
+174.047	-39.6321	1.167914 -60.277573
+174.832	-39.9821	0.896648 -58.183731
+174.367	-39.8804	1.020355 -59.141502
+174.728	-39.9435	0.919025 -58.286182
+174.084	-39.6688	1.154449 -59.960125
+174.443	-38.8428	1.222806 -70.719109
+174.125	-39.7082	1.137918 -59.635883
+174.574	-38.4077	1.189569 -72.560608
+174.627	-39.9136	0.944096 -58.345345
+173.791	-39.4472	1.209119 -63.365227
+174.39	-38.8812	1.222676 -70.451653
+174.766	-37.7307	1.150033 -74.101143
+174.152	-39.8243	1.093595 -59.992580
+174.17	-38.962	1.213570 -69.540878
+174.893	-39.9842	0.888406 -57.907455
+174.165	-39.8679	1.074958 -60.264240
+174.434	-37.0022	1.104697 -74.978882
+174.518	-38.7741	1.221805 -71.138855
+174.138	-39.7542	1.120875 -59.690063
+174.781	-37.8016	1.152667 -73.997322
+174.007	-39.5947	1.180963 -60.715717
+174.35	-38.9123	1.222379 -70.241150
+174.727	-37.6033	1.141895 -74.325401
+174.739	-37.9662	1.160220 -73.692032
+174.313	-39.8841	1.032465 -59.532570
+174.521	-39.8897	0.976249 -58.455170
+174.799	-39.937	0.908911 -57.946438
+174.756	-37.6433	1.145408 -74.284302
+174.7	-37.5701	1.139042 -74.347290
+174.341	-39.8423	1.043003 -58.764259
+174.416	-39.9	0.999873 -59.158497
+174.582	-39.8725	0.963805 -57.940300
+174.514	-38.8221	1.224582 -70.954720
+174.788	-37.7655	1.151749 -74.062874
+174.599	-37.3101	1.121522 -74.614670
+174.753	-38.0068	1.162304 -73.639389
+174.748	-39.9017	0.921526 -57.817596
+174.651	-39.8789	0.945771 -57.802803
+174.664	-37.4789	1.131777 -74.461334
+174.569	-38.4539	1.194436 -72.407120
+174.447	-38.8912	1.225486 -70.566734
+174.466	-39.8735	0.996743 -58.454597
+174.405	-39.8476	1.023888 -58.380474
+174.574	-38.6127	1.210262 -71.898003
+174.452	-37.0688	1.108266 -74.894012
+174.956	-39.9878	0.880865 -57.606232
+174.489	-37.0974	1.111469 -74.869713
+174.398	-38.9277	1.225494 -70.322746
+173.958	-39.576	1.188531 -61.270348
+174.715	-38.0952	1.165813 -73.464577
+174.462	-39.8281	1.014894 -57.691395
+174.251	-39.7759	1.092487 -58.789440
+174.194	-39.7267	1.121325 -59.035454
+174.321	-39.7972	1.068574 -58.336258
+174.422	-39.797	1.041302 -57.430901
+174.515	-39.8431	0.993096 -57.657219
+174.209	-39.8287	1.079632 -59.598171
+174.18	-39.6801	1.138740 -59.009666
+174.147	-39.6516	1.151731 -59.276752
+174.278	-39.8354	1.061607 -59.127598
+174.239	-39.8872	1.050137 -60.024487
+174.372	-39.8109	1.049454 -58.067303
+174.267	-39.7148	1.113953 -58.264385
+174.803	-39.8904	0.914655 -57.560421
+174.872	-39.9428	0.898063 -57.691849
+174.37	-39.7706	1.069978 -57.534843
+174.176	-39.7835	1.103554 -59.522057
+174.316	-39.7484	1.092074 -57.927658
+174.231	-39.674	1.133436 -58.480358
+174.639	-37.3487	1.124478 -74.606972
+174.563	-38.7423	1.221305 -71.359726
+174.69	-37.5288	1.136092 -74.412964
+174.929	-39.9457	0.891152 -57.456963
+174.539	-37.1759	1.114828 -74.767281
+174.13	-38.9807	1.211984 -69.351830
+174.327	-39.7017	1.110884 -57.570145
+174.657	-37.3971	1.127034 -74.562073
+174.108	-39.6236	1.163880 -59.647499
+174.198	-39.6416	1.148003 -58.743172
+174.852	-39.9089	0.906030 -57.511978
+174.587	-37.2689	1.119455 -74.667313
+174.286	-39.6641	1.129343 -57.913250
+174.347	-38.9547	1.224782 -70.103020
+174.039	-39.0316	1.209928 -68.893913
+174.498	-38.8644	1.226108 -70.780502
+174.226	-38.9563	1.217189 -69.736946
+174.366	-39.7319	1.091531 -57.250015
+174.451	-37.0348	1.106429 -74.950401
+174.575	-38.6576	1.214548 -71.735710
+174.526	-37.1261	1.113384 -74.836639
+177.338	-39.8116	0.623034 163.650635
+177.579	-39.6698	0.624796 165.132797
+177.43	-39.7558	0.623832 164.215958
+177.63	-39.6119	0.627056 165.620041
+177.262	-39.8573	0.622267 163.238937
+177.481	-39.6773	0.626972 164.717148
+177.474	-39.4716	0.641014 165.547745
+177.703	-39.5546	0.628392 166.225586
+177.272	-39.6683	0.632457 163.945221
+177.308	-39.5652	0.639016 164.498108
+177.428	-39.5226	0.638697 165.151962
+177.997	-39.3344	0.626698 169.649368
+177.606	-39.4474	0.639342 166.253922
+177.067	-39.876	0.623828 162.639450
+177.73	-39.4777	0.632953 166.760513
+177.961	-39.3894	0.627207 168.846115
+177.225	-39.7309	0.629233 163.554291
+177.27	-39.6055	0.637068 164.184189
+177.111	-39.7895	0.627202 163.004395
+177.535	-39.4368	0.641943 165.961380
+177.351	-39.519	0.641140 164.850922
+177.647	-39.4117	0.640841 166.602158
+177.582	-39.4002	0.643580 166.315063
+177.391	-39.4725	0.643279 165.197510
+177.776	-39.4303	0.634774 167.278030
+177.48	-39.4231	0.644368 165.767731
+177.516	-39.3893	0.646052 166.043335
+177.624	-39.3707	0.644876 166.630920
+177.999	-39.2729	0.627220 170.341690
+177.279	-39.5149	0.643609 164.603165
+177.711	-39.4222	0.638005 166.915192
+177.425	-39.4277	0.645452 165.502594
+177.564	-39.3435	0.648463 166.410995
+177.32	-39.4699	0.645602 164.926865
+177.358	-39.425	0.647657 165.244949
+177.886	-39.3981	0.631449 168.264771
+177.452	-39.3835	0.647933 165.776520
+177.484	-39.3404	0.650358 166.051361
+177.642	-39.3235	0.648552 166.875061
+177.691	-39.3714	0.643033 167.011063
+177.391	-39.3813	0.649728 165.530869
+177.232	-39.5583	0.641801 164.235229
+177.516	-39.2934	0.653193 166.329895
+177.75	-39.3922	0.639139 167.311249
+177.245	-39.4637	0.648470 164.691177
+177.812	-39.386	0.636795 167.789932
+177.329	-39.3767	0.651675 165.312515
+177.198	-39.6166	0.638193 163.841141
+177.293	-39.4199	0.649878 165.029282
+177.954	-39.2977	0.630870 169.820984
+177.223	-39.5099	0.645817 164.424225
+177.584	-39.2869	0.652608 166.667740
+177.054	-39.8286	0.625583 162.727112
+177.42	-39.3385	0.651909 165.796204
+177.917	-39.3379	0.632821 169.079117
+177.364	-39.3344	0.653517 165.583984
+177.004	-39.8936	0.623385 162.434998
+177.446	-39.2898	0.654708 166.032318
+177.64	-39.2754	0.652742 166.991440
+177.394	-39.3021	0.654851 165.795471
+177.705	-39.327	0.646793 167.264130
+177.27	-39.3697	0.653690 165.134018
+177.485	-39.2561	0.656265 166.272903
+177.306	-39.3262	0.655378 165.398254
+176.971	-39.9871	0.622042 162.078583
+177.233	-39.4071	0.652515 164.881195
+177.967	-39.2319	0.629039 170.705093
+177.189	-39.433	0.652277 164.650665
+177.021	-39.8612	0.624295 162.554764
+177.176	-39.4824	0.649559 164.389862
+177.248	-39.32	0.656948 165.226562
+177.215	-39.361	0.655567 164.990326
+177.345	-39.2811	0.657059 165.671478
+177.61	-39.2404	0.655875 166.886078
+177.759	-39.3483	0.642996 167.576645
+177.541	-39.2422	0.656469 166.548431
+177.813	-39.3422	0.641030 168.063736
+177.162	-39.5654	0.643832 163.938354
+177.689	-39.2873	0.651078 167.264542
+177.398	-39.2671	0.656920 165.896912
+177.099	-39.6723	0.634338 163.164490
+177.436	-39.2336	0.658363 166.116791
+177.188	-39.3937	0.654564 164.801773
+176.989	-39.9367	0.622635 162.281799
+177.856	-39.3544	0.636887 168.373734
+177.281	-39.2772	0.658442 165.455124
+177.184	-39.5286	0.645914 164.206421
+177.371	-39.2314	0.659389 165.884521
+177.948	-39.261	0.631468 170.272903
+177.582	-39.201	0.659117 166.814285
+177.492	-39.2224	0.658331 166.369675
+177.191	-39.3137	0.658432 165.078781
+177.225	-39.2726	0.659639 165.300781
+177.137	-39.3046	0.659958 164.963104
+177.747	-39.2978	0.648988 167.654282
+177.793	-39.3164	0.645312 167.987106
+177.154	-39.3564	0.657394 164.834473
+177.677	-39.239	0.655717 167.258514
+177.725	-39.2608	0.653505 167.547073
+177.311	-39.2331	0.660096 165.670715
+177.147	-39.4064	0.655264 164.637131
+177.046	-39.7815	0.627710 162.828552
+177.641	-39.1977	0.659231 167.106552
+177.169	-39.2676	0.660844 165.142578
+177.401	-39.1888	0.661367 166.089188
+177.145	-39.445	0.653213 164.468475
+177.847	-39.3057	0.643371 168.650589
+177.097	-39.3321	0.659743 164.788986
+177.774	-39.2566	0.653646 167.919388
+177.796	-39.2869	0.649309 168.098206
+177.254	-39.23	0.661150 165.496307
+177.131	-39.5217	0.648794 164.073654
+177.137	-39.6011	0.641927 163.656998
+177.115	-39.2625	0.661921 165.017731
+177.135	-39.6444	0.637344 163.431122
+177.101	-39.3801	0.657842 164.622055
+177.527	-39.1961	0.659800 166.574753
+177.741	-39.223	0.657219 167.657852
+177.704	-39.1902	0.659990 167.429565
+177.612	-39.1639	0.661627 167.000320
+177.47	-39.1838	0.661025 166.359406
+177.667	-39.1545	0.662382 167.262070
+177.092	-39.2934	0.661168 164.883591
+177.826	-39.257	0.653638 168.401093
+177.101	-39.4266	0.655803 164.440674
+177.078	-39.7377	0.629913 163.016037
+177.808	-39.2143	0.658795 168.084549
+177.336	-39.185	0.662213 165.863876
+177.197	-39.2269	0.662160 165.332062
+177.112	-39.4732	0.652943 164.256866
+177.429	-39.1463	0.663403 166.275024
+177.628	-39.1246	0.663995 167.105057
+177.766	-39.1798	0.661565 167.749054
+177.095	-39.5646	0.647706 163.718384
+177.727	-39.1446	0.663595 167.521957
+177.561	-39.1658	0.661626 166.775345
+177.376	-39.1535	0.663334 166.068085
+177.048	-39.3544	0.660121 164.609833
+177.142	-39.226	0.662925 165.175980
+177.683	-39.1036	0.665153 167.327499
+177.05	-39.4016	0.658623 164.438538
+177.518	-39.1631	0.662009 166.593704
+177.586	-39.1373	0.663302 166.922897
+177.053	-39.4519	0.656648 164.229233
+177.49	-39.1371	0.663603 166.530624
+177.949	-39.1992	0.629299 171.034470
+177.281	-39.1955	0.662379 165.666687
+176.994	-39.3739	0.660936 164.435883
+177.748	-39.1009	0.666023 167.557602
+177.065	-39.2632	0.662394 164.898804
+176.994	-39.4234	0.659805 164.242584
+177.545	-39.1334	0.663616 166.753647
+177.044	-39.3052	0.661509 164.751572
+177.061	-39.5076	0.653402 163.968246
+177.632	-39.0876	0.665441 167.136200
+177.454	-39.0982	0.665373 166.437851
+176.993	-39.4774	0.657868 163.983063
+177.224	-39.1771	0.663800 165.528732
+177.002	-39.3338	0.661483 164.589294
+177.386	-39.1135	0.664994 166.179001
+177.04	-39.5485	0.652239 163.699249
+177.331	-39.1303	0.664710 165.958954
+177.584	-39.0988	0.665058 166.949203
+177.084	-39.2223	0.663618 165.038162
+177.525	-39.0969	0.665330 166.713181
+177.907	-39.2825	0.637033 169.646317
+177.011	-39.5207	0.655170 163.801498
+176.935	-39.3923	0.661899 164.273026
+176.933	-39.4449	0.661005 164.053894
+177.045	-39.5951	0.649653 163.425613
+177.161	-39.1849	0.664286 165.326553
+177.024	-39.8097	0.626456 162.698303
+176.968	-39.5175	0.657001 163.742554
+177.097	-39.6144	0.643097 163.398636
+176.996	-39.5556	0.654335 163.595978
+177.279	-39.151	0.664297 165.757919
+177.117	-39.192	0.664404 165.192795
+176.989	-39.5959	0.653093 163.368057
+175.899	-42.8735	0.580898 143.579880
+174.51	-44.9685	0.605404 111.995079
+174.776	-45.0243	0.591383 112.748497
+174.167	-44.6006	0.637465 113.610954
+173.645	-44.532	0.670773 111.518440
+174.906	-44.7125	0.595943 115.801842
+174.402	-44.5829	0.625286 114.869919
+176.387	-42.9031	0.566141 144.609268
+173.559	-42.513	0.654649 141.135437
+174.682	-44.6334	0.609143 115.592468
+173.763	-44.4441	0.669551 113.103752
+175.062	-44.6133	0.591760 117.291222
+175.216	-44.5102	0.587503 118.786438
+174.89	-44.5811	0.600663 116.910591
+174.914	-42.989	0.605593 139.690247
+173.6	-44.4249	0.680962 112.344986
+175.388	-44.3863	0.582894 120.505562
+174.135	-43.3607	0.658789 133.125824
+174.601	-44.4796	0.618312 116.743660
+174.519	-43.1271	0.626718 136.790955
+175.005	-44.4832	0.597884 118.266289
+175.6	-44.305	0.575256 121.970757
+174.057	-44.3759	0.654515 115.446106
+175.915	-43.0084	0.579576 142.144440
+174.797	-44.4684	0.608548 117.627869
+175.15	-44.3725	0.593798 119.888741
+174.297	-43.3162	0.645142 133.717545
+174.441	-44.4012	0.629748 116.937759
+174.415	-43.2218	0.634754 135.234238
+173.273	-44.3973	0.703057 110.365562
+175.26	-44.2749	0.590796 121.273949
+175.251	-44.1601	0.593446 122.526505
+175.216	-44.0258	0.597262 124.026108
+173.709	-42.9253	0.670140 138.842468
+174.108	-43.4871	0.665386 131.083054
+174.68	-44.3193	0.618618 118.811440
+173.973	-43.4046	0.673624 132.684433
+175.428	-44.2275	0.584257 122.312866
+174.927	-44.3449	0.605157 119.406082
+175.604	-44.1666	0.577563 123.573959
+174.463	-44.2392	0.633307 118.998627
+174.109	-44.2336	0.657467 117.533966
+175.081	-44.2417	0.599725 121.071236
+173.708	-44.341	0.679982 113.924072
+173.59	-42.5726	0.656098 141.011917
+176.224	-42.9828	0.569536 143.150421
+175.631	-44.0544	0.578735 125.003784
+176.362	-43.0234	0.564409 143.019043
+175.439	-44.0747	0.586781 124.113899
+174.432	-44.0932	0.638980 120.908089
+174.87	-44.1988	0.611057 120.897507
+175.079	-42.9973	0.598685 140.247849
+174.115	-44.1007	0.662587 119.504623
+174.471	-43.3347	0.632764 133.413193
+174.248	-43.5681	0.655269 129.504303
+174.549	-44.0024	0.632818 122.581329
+174.648	-44.1292	0.624746 121.069763
+174.519	-43.4442	0.631346 131.550644
+174.893	-43.1089	0.604406 137.984253
+173.964	-44.1656	0.671884 117.726013
+174.396	-41.9607	0.628715 146.959015
+175.56	-43.9509	0.584038 125.979485
+175.05	-44.1088	0.603566 122.528641
+174.577	-43.2438	0.624078 134.998703
+175.771	-43.9684	0.574795 126.594177
+174.709	-44.0064	0.622847 122.909332
+174.283	-43.9219	0.653635 123.129189
+174.462	-43.885	0.639931 124.180016
+173.156	-44.369	0.712586 109.749611
+175.764	-44.1076	0.571345 124.866653
+175.022	-43.9766	0.606711 124.100502
+174.857	-44.058	0.614018 122.610535
+174.659	-43.9063	0.626596 124.239899
+175.683	-43.8494	0.581272 127.662224
+175.359	-43.935	0.592577 125.517670
+174.61	-43.7934	0.629946 125.861534
+174.575	-43.6737	0.631284 127.698029
+174.434	-43.7538	0.642300 126.280067
+174.548	-43.5564	0.631404 129.629196
+174.318	-43.8207	0.651727 124.957596
+174.707	-43.5921	0.621440 129.035049
+174.674	-43.4769	0.621281 130.968597
+174.632	-43.3591	0.621947 133.055817
+174.245	-43.7095	0.657912 126.879997
+175.958	-43.9151	0.568932 127.997490
+174.761	-41.7753	0.589001 148.339218
+174.742	-43.7043	0.621088 127.328758
+174.836	-43.9333	0.616334 124.217857
+173.806	-44.2357	0.679997 115.816292
+173.576	-43.1496	0.695092 136.364609
+175.222	-43.0252	0.593770 140.571747
+175.478	-43.8237	0.589830 127.206001
+174.094	-43.6137	0.670687 128.707443
+175.834	-43.8565	0.575151 128.191360
+175.926	-43.1496	0.579017 140.226364
+174.79	-43.817	0.619123 125.747459
+175.341	-43.0701	0.590911 140.562271
+175.177	-43.8997	0.600579 125.439308
+176.258	-43.1185	0.566289 141.369736
+176.126	-43.8458	0.563955 129.343521
+176.102	-43.1881	0.571508 139.900223
+173.469	-43.4205	0.723622 132.229752
+174.993	-43.8373	0.608917 125.808075
+175.769	-43.1799	0.586366 139.639191
+175.303	-43.8396	0.596228 126.476089
+174.1	-43.9583	0.668889 121.821701
+175.178	-43.7863	0.601531 126.792747
+174.788	-43.3916	0.612072 132.535583
+176.293	-43.6607	0.559720 132.307083
+175.961	-43.789	0.571556 129.529358
+175.628	-43.7397	0.586027 128.858154
+175.012	-43.0842	0.599189 138.839355
+174.904	-43.7247	0.612762 127.157143
+176	-41.2569	0.616471 151.495163
+176.208	-43.5689	0.564105 133.580688
+175.559	-43.1156	0.590979 140.615372
+174.169	-43.8318	0.665057 124.405716
+173.953	-44.042	0.679184 119.621620
+176.114	-43.6959	0.566800 131.337784
+174.594	-41.5541	0.491275 155.045242
+175.86	-43.2477	0.582422 138.571518
+175.064	-43.7139	0.605943 127.468452
+175.216	-43.682	0.600734 128.087372
+173.236	-44.3156	0.713664 110.908508
+175.989	-43.2643	0.576244 138.432358
+173.813	-44.1107	0.687617 117.637573
+174.667	-41.8336	0.601071 148.034729
+174.827	-43.51	0.612688 130.383423
+176.243	-43.2469	0.565291 139.233795
+175.472	-43.7021	0.592739 128.707962
+175.332	-43.7477	0.596448 127.626694
+176.117	-43.2849	0.570198 138.293701
+175.915	-43.6733	0.575704 131.066559
+175.845	-43.5711	0.580709 132.541351
+175.885	-43.3402	0.581232 136.887924
+173.441	-44.1988	0.711413 113.878586
+174.977	-43.161	0.599309 137.347778
+175.922	-43.4595	0.578552 134.787811
+173.971	-43.531	0.679635 130.502441
+176.039	-43.3615	0.573391 136.793579
+176.304	-43.4535	0.560833 135.693512
+175.592	-43.6348	0.590001 130.240631
+175.695	-43.5595	0.587597 132.081512
+175.355	-43.6479	0.597550 128.919769
+175.113	-43.6143	0.603544 128.752167
+175.738	-43.2922	0.589079 137.548279
+175.136	-43.0912	0.594214 139.281677
+174.011	-43.8406	0.680903 123.710602
+176.205	-43.3568	0.565748 137.197586
+175.777	-43.4931	0.585170 133.692734
+175.256	-43.1156	0.590803 139.479065
+175.472	-43.6135	0.595054 129.975708
+175.541	-43.5334	0.595066 131.718613
+173.147	-44.3047	0.720540 110.331284
+175.254	-43.5843	0.600389 129.403076
+175.658	-43.4673	0.591498 133.644363
+173.786	-43.9935	0.697516 119.454407
+173.919	-43.9245	0.687978 121.574493
+175.769	-43.4042	0.586944 135.336151
+175.643	-43.2004	0.592022 139.216583
+175.635	-43.3726	0.594060 135.463760
+173.932	-43.6528	0.688328 127.838844
+175.591	-43.2818	0.595308 137.341095
+175.019	-43.2449	0.596755 135.733917
+175.151	-43.5165	0.601226 130.191757
+174.602	-41.4873	0.445426 155.555832
+173.875	-43.8207	0.695718 123.561012
+175.439	-43.1316	0.590568 140.070831
+175.344	-43.1449	0.589970 139.358673
+173.604	-42.9809	0.680746 138.415176
+174.992	-43.5388	0.605734 129.814041
+173.494	-44.0489	0.721861 116.631073
+174.541	-41.8647	0.610704 148.311859
+173.65	-43.9948	0.710558 118.602928
+173.835	-43.7283	0.699099 125.750137
+175.392	-43.5568	0.598769 130.442184
+175.536	-43.4311	0.597540 133.726578
+173.065	-44.3292	0.722244 109.430176
+173.842	-43.5555	0.692499 129.969772
+173.38	-43.3819	0.733267 132.797684
+175.12	-43.3055	0.595124 134.681396
+173.781	-43.8855	0.703470 121.631729
+175.191	-43.4291	0.598509 132.079865
+175.186	-43.1694	0.591392 138.062332
+173.468	-44.1291	0.716354 115.109085
+173.786	-43.6399	0.701588 127.776428
+173.759	-43.7911	0.706977 123.863594
+173.602	-42.7664	0.665733 140.209198
+173.586	-43.0631	0.688289 137.501266
+175.066	-43.4389	0.600084 131.595963
+175.122	-43.3752	0.597158 133.132568
+175.52	-43.2037	0.593852 138.908112
+175.077	-43.1628	0.594935 137.744064
+175.286	-43.1893	0.590158 138.096924
+173.191	-44.2452	0.725020 111.329315
+173.725	-43.7076	0.709547 125.885185
+174.561	-41.777	0.588905 150.496719
+173.358	-44.1476	0.724091 113.988358
+175.42	-43.4683	0.599933 132.255829
+175.205	-43.3519	0.595344 133.868912
+173.677	-43.9247	0.712157 120.204720
+172.677	-40.0125	1.178262 -60.454941
+174.436	-41.888	0.620985 148.472290
+174.403	-41.4382	0.413306 171.976349
+173.659	-43.4895	0.705867 131.004272
+174.459	-41.8099	0.606676 150.601044
+173.724	-43.5618	0.703615 129.511139
+175.515	-43.3458	0.598117 135.526321
+173.514	-43.1054	0.699166 136.978683
+174.348	-41.9057	0.631214 148.213028
+173.593	-42.9056	0.676212 139.167664
+174.335	-42.0156	0.633949 146.165543
+173.467	-43.976	0.731589 117.868767
+173.675	-43.6325	0.712175 127.657867
+172.789	-40.0281	1.183651 -60.982586
+174.413	-41.3282	0.315490 -170.365707
+173.093	-44.2637	0.728984 110.321747
+175.287	-43.494	0.600480 131.030273
+173.655	-43.7618	0.717910 124.241020
+173.668	-43.841	0.715990 122.238396
+173.269	-44.1887	0.726534 112.666336
+175.138	-43.2317	0.592941 136.467148
+172.73	-40.0905	1.186646 -60.495693
+173.596	-43.9472	0.719244 119.275742
+173.431	-43.4977	0.732836 130.881653
+173.626	-43.6928	0.719977 125.969330
+172.823	-40.0838	1.188996 -61.048836
+172.89	-40.038	1.186639 -61.498093
+172.671	-40.1663	1.191311 -59.930302
+173.185	-44.184	0.733517 112.030296
+173.002	-44.2801	0.732125 109.403877
+175.484	-43.2733	0.596084 137.070740
+173.517	-43.0109	0.691411 138.156433
+175.211	-43.2827	0.592916 135.485153
+174.467	-41.7247	0.581518 153.579483
+173.493	-43.2111	0.708456 135.565018
+174.573	-41.6937	0.559020 152.721252
+173.388	-44.0794	0.729385 115.368782
+172.96	-40.0656	1.188714 -61.813534
+174.553	-40.9973	0.446675 -82.973625
+175.399	-43.2179	0.591962 138.016891
+173.395	-44.0096	0.736522 116.685768
+174.439	-40.9416	0.540416 -84.306816
+173.279	-44.1317	0.733041 113.582741
+172.802	-40.15	1.194524 -60.794498
+175.437	-43.3924	0.599512 134.045746
+173.49	-43.0625	0.698760 137.547333
+174.661	-41.7389	0.573948 150.159409
+174.178	-42.1326	0.642599 144.403442
+172.91	-40.1091	1.192266 -61.514763
+172.748	-40.2072	1.198762 -60.326794
+173.476	-43.1483	0.706729 136.417252
+173.606	-43.563	0.715603 129.321793
+172.981	-40.014	1.185426 -61.955860
+173.586	-43.6302	0.722320 127.544945
+173.119	-44.2052	0.735360 111.187935
+174.501	-41.6483	0.544279 155.821075
+173.58	-43.7358	0.726556 124.672806
+172.674	-40.2418	1.199710 -59.724174
+173.524	-43.9355	0.728131 119.153503
+175.224	-43.2267	0.591208 136.910233
+175.284	-43.3227	0.594538 134.841904
+175.316	-43.3977	0.598381 133.219711
+172.99	-40.0992	1.190901 -61.956635
+172.833	-40.2179	1.202263 -60.909431
+173.029	-40.0596	1.187413 -62.151093
+172.911	-40.1775	1.198443 -61.467758
+173.314	-44.0962	0.734499 114.467262
+173.078	-40.0014	1.183490 -62.362091
+174.378	-41.7723	0.612318 152.694656
+172.765	-40.2606	1.205916 -60.345463
+174.367	-40.9603	0.564039 -87.927292
+172.993	-40.1448	1.194440 -61.973675
+173.214	-44.1395	0.737606 112.886482
+173.108	-40.0658	1.185450 -62.508709
+173.179	-40.0201	1.180790 -62.735966
+174.463	-40.2264	0.901639 -63.011791
+172.696	-40.3125	1.209967 -59.669937
+173.056	-40.1095	1.189890 -62.307125
+173.568	-43.7979	0.728042 122.944656
+173.331	-43.4951	0.749290 130.697922
+173.576	-43.8825	0.724928 120.743492
+172.85	-40.2737	1.209467 -60.990856
+173.039	-44.2205	0.738415 110.327095
+173.175	-40.0776	1.182841 -62.800220
+173.256	-40.0097	1.176297 -62.961597
+174.42	-41.6645	0.563230 157.123856
+175.394	-43.3171	0.596604 135.592163
+173.833	-40.0962	1.087772 -63.961197
+174.266	-40.8767	0.674875 -83.809906
+174.255	-40.9628	0.638830 -89.544380
+174.044	-42.1733	0.647801 143.632660
+174.189	-40.392	0.924488 -67.518532
+174.209	-40.3011	0.944197 -65.720016
+173.881	-40.1418	1.069203 -64.360039
+174.826	-40.3705	0.802039 -61.175968
+173.927	-40.6566	0.997941 -75.298546
+174.124	-40.3587	0.955254 -67.122269
+173.886	-40.3374	1.036910 -67.087784
+174.258	-40.7906	0.728631 -79.422615
+173.804	-40.044	1.102325 -63.543270
+174.305	-40.9276	0.623517 -86.616432
+174.137	-40.3047	0.965032 -66.084709
+173.931	-40.1858	1.048835 -64.800735
+174.893	-40.4627	0.766757 -60.882977
+174.076	-40.26	0.993764 -65.542252
+174.34	-41.3536	0.380691 -173.850616
+174.872	-40.8448	0.565692 -61.440628
+174.291	-40.3007	0.921362 -65.263512
+174.142	-40.6607	0.850545 -75.512497
+174.114	-40.6159	0.881478 -74.122910
+174.074	-40.6613	0.885496 -76.166046
+173.54	-43.5903	0.725281 128.590103
+173.915	-40.2881	1.035626 -66.288383
+173.904	-40.2313	1.047992 -65.458855
+174.597	-40.2778	0.860997 -62.591812
+174.183	-40.3432	0.940511 -66.594154
+174.16	-40.2491	0.971825 -65.070938
+173.791	-40.1464	1.088951 -64.521881
+174.037	-40.713	0.879892 -78.970894
+174.827	-40.4706	0.766857 -61.816845
+174.843	-40.4202	0.784182 -61.302715
+174.138	-40.5269	0.901951 -71.064247
+174.164	-40.4837	0.905783 -69.750458
+174.117	-40.4229	0.940924 -68.482979
+173.952	-40.3483	1.014384 -67.278381
+173.901	-40.0989	1.072418 -63.839226
+172.793	-40.3116	1.213791 -60.479889
+174.038	-40.4291	0.968320 -68.846214
+173.98	-40.4638	0.984405 -69.704659
+173.992	-40.6628	0.939371 -76.685089
+174.181	-42.0033	0.645816 146.007034
+174.872	-40.5745	0.722815 -61.616085
+174.859	-40.5169	0.747261 -61.589153
+174.767	-40.4459	0.780835 -62.466846
+174.769	-40.3913	0.800355 -61.992195
+174.705	-40.358	0.818974 -62.410862
+174.075	-40.5562	0.920448 -72.237686
+174.075	-40.4852	0.940603 -70.141586
+173.983	-40.237	1.025310 -65.410873
+173.847	-40.1949	1.068468 -65.039284
+173.999	-40.1838	1.031517 -64.618683
+174.202	-40.6915	0.806910 -76.052620
+174.192	-40.6312	0.839204 -73.984077
+174.166	-40.5756	0.872756 -72.390709
+174.211	-40.5341	0.869936 -70.808578
+174.385	-40.6768	0.741818 -72.896309
+174.407	-40.6276	0.761128 -71.071571
+174.433	-40.5761	0.779487 -69.367477
+174.46	-40.524	0.796800 -67.833656
+174.496	-40.4738	0.810277 -66.411072
+174.538	-40.4217	0.822384 -65.067200
+174.58	-40.3711	0.833503 -63.895466
+174.635	-40.3232	0.840502 -62.760281
+174.24	-40.7471	0.760955 -77.786026
+174.262	-40.3614	0.911349 -66.517105
+174.372	-40.2955	0.901958 -64.642975
+174.245	-42.0609	0.639906 145.412674
+174.55	-40.315	0.857680 -63.470501
+173.663	-40.1032	1.121443 -64.127739
+174.486	-40.362	0.854817 -64.716499
+174.461	-40.2919	0.882818 -63.924309
+174.449	-40.4214	0.841622 -66.040138
+174.409	-40.4737	0.830827 -67.439812
+174.416	-40.3353	0.879059 -64.924911
+174.411	-40.3773	0.866377 -65.658394
+174.377	-40.5298	0.816122 -69.026451
+174.322	-40.48	0.852567 -68.481003
+174.352	-40.583	0.800111 -70.677109
+174.327	-40.6384	0.782167 -72.608437
+174.302	-40.6989	0.760260 -75.010132
+174.313	-40.7619	0.721035 -77.280197
+173.593	-40.0922	1.135062 -63.983067
+173.515	-40.0782	1.148457 -63.783897
+173.441	-40.0617	1.159038 -63.567371
+173.412	-40.012	1.163920 -63.329277
+173.381	-40.0531	1.165975 -63.401985
+173.328	-40.0211	1.171009 -63.177620
+173.572	-40.0469	1.142073 -63.682644
+173.741	-40.0887	1.107579 -64.005226
+173.654	-40.0474	1.128732 -63.725979
+173.733	-40.0285	1.117504 -63.544552
+173.502	-40.0162	1.153700 -63.470486
+174.205	-41.9442	0.645785 147.003128
+173.252	-40.0648	1.177445 -63.055637
+174.26	-41.9842	0.640072 146.568634
+174.218	-41.8846	0.647143 148.191223
+173.133	-40.1158	1.187013 -62.695805
+173.004	-40.2022	1.199459 -62.086636
+174.864	-40.7278	0.644849 -62.007896
+172.929	-40.2441	1.205727 -61.603397
+173.621	-40.1404	1.126391 -64.373360
+173.448	-43.1028	0.707020 137.044998
+174.04	-40.3703	0.980523 -67.587891
+174.241	-40.4843	0.877238 -69.278450
+174.257	-40.6505	0.803005 -73.925621
+173.904	-40.4995	1.013053 -70.320152
+173.901	-40.4379	1.019950 -68.963135
+173.894	-40.3836	1.028578 -67.903374
+173.537	-43.6799	0.730859 126.072906
+173.513	-43.7408	0.735508 124.303024
+173.208	-40.117	1.182431 -63.029495
+173.967	-40.4062	0.999013 -68.397003
+173.972	-40.1252	1.050215 -63.945610
+173.996	-40.5184	0.967726 -71.130867
+173.999	-40.5657	0.956712 -72.575272
+174.034	-40.6105	0.924805 -74.315613
+173.941	-40.5483	0.990861 -71.759247
+173.945	-40.6027	0.983517 -73.537903
+174.273	-41.9231	0.639755 147.678207
+174.229	-40.8317	0.719302 -81.806702
+174.188	-40.8756	0.718112 -84.453346
+174.533	-40.2565	0.878790 -62.872780
+174.089	-42.1198	0.647561 144.273682
+174.046	-40.2085	1.013555 -64.835640
+174.863	-40.6677	0.678188 -62.033466
+173.523	-42.9498	0.685765 138.831757
+174.357	-41.0032	0.539360 -92.035782
+174.145	-42.0647	0.646225 145.067032
+174.942	-40.4987	0.752848 -60.318836
+174.922	-40.5426	0.736367 -60.705826
+175.301	-43.2603	0.592200 136.445724
+173.702	-40.1457	1.108836 -64.516953
+173.334	-40.0787	1.170471 -63.360516
+174.394	-40.2421	0.912527 -63.701706
+174.322	-41.9579	0.634865 147.117447
+173.522	-43.6259	0.730370 127.554291
+174.891	-40.6175	0.703842 -61.364140
+173.305	-44.0373	0.743229 115.420723
+174.773	-40.5018	0.758027 -62.842712
+173.393	-40.0877	1.164225 -63.568985
+173.834	-40.2507	1.064159 -65.761818
+174.648	-40.3777	0.820029 -63.242466
+173.087	-40.1669	1.192872 -62.543690
+173.067	-44.1661	0.744674 111.182465
+174.701	-40.412	0.800535 -63.001236
+173.138	-44.1452	0.742786 112.104645
+173.241	-44.0847	0.743023 113.987778
+173.833	-40.3058	1.057257 -66.547867
+173.447	-40.119	1.156809 -63.868874
+172.691	-40.3729	1.218585 -59.443699
+174.916	-40.4194	0.780579 -60.419453
+173.879	-40.0575	1.085119 -63.475090
+172.958	-44.2262	0.742324 109.563637
+173.857	-40.0066	1.099190 -63.090176
+174.784	-40.5649	0.729580 -63.149063
+174.826	-40.6179	0.702912 -62.673416
+173.288	-40.1213	1.175627 -63.351906
+172.879	-44.2224	0.747014 108.925865
+173.538	-40.1332	1.142102 -64.165909
+174.319	-40.2478	0.929286 -64.263275
+174.718	-40.8821	0.527475 -69.030258
+174.338	-41.4643	0.450200 172.840408
+173.654	-40.1805	1.116372 -64.775490
+173.367	-43.4411	0.737924 131.875015
+173.168	-40.154	1.187047 -62.943001
+173.45	-43.9184	0.738402 119.154991
+174.399	-41.487	0.451235 168.113831
+173.455	-43.0247	0.700018 138.052094
+173.435	-43.2741	0.720146 134.556122
+173.365	-40.1241	1.167405 -63.645439
+174.241	-40.2475	0.949900 -64.691811
+173.48	-43.5928	0.733920 128.442535
+174.688	-40.4729	0.778129 -63.814629
+173.739	-40.2089	1.093629 -65.198547
+173.082	-44.123	0.750373 111.839127
+174.11	-40.2026	0.997438 -64.546333
+174.707	-40.5325	0.750340 -64.179764
+175.054	-41.5523	0.563633 145.492004
+174.95	-40.5861	0.719387 -60.286831
+174.775	-40.3394	0.816727 -61.495079
+173.774	-40.3275	1.073101 -66.754646
+173.489	-43.7866	0.738873 122.931709
+173.832	-40.3568	1.052594 -67.328468
+174.807	-40.7557	0.623183 -63.815285
+173.578	-40.1818	1.132210 -64.627708
+174.797	-40.7035	0.655961 -63.816593
+172.868	-40.3187	1.216108 -61.140018
+174.626	-40.4228	0.806867 -64.037704
+173.391	-43.9469	0.743566 118.044250
+173.468	-43.6407	0.739294 127.005989
+173.634	-40.2224	1.117729 -65.141479
+173.938	-40.073	1.069113 -63.451248
+174.439	-41.5386	0.483103 162.917587
+173.497	-43.8888	0.734278 120.190384
+174.716	-40.3037	0.834927 -61.774723
+174.459	-40.1807	0.915171 -62.446270
+173.176	-44.1025	0.746203 113.071358
+173.403	-40.161	1.162415 -63.961571
+174.055	-40.1609	1.021576 -64.142792
+174.371	-41.6284	0.552229 160.334595
+174.601	-40.2284	0.874731 -61.994171
+173.765	-40.2771	1.079869 -66.053566
+173.322	-43.9693	0.749874 116.956650
+172.996	-44.173	0.748276 110.438553
+173.886	-40.6979	1.039201 -75.704071
+173.481	-40.183	1.150184 -64.366196
+173.087	-40.2284	1.198280 -62.692493
+174.698	-40.5818	0.727623 -64.903236
+174.66	-40.2642	0.854708 -61.888435
+173.239	-40.1636	1.181774 -63.310493
+173.021	-40.2563	1.204704 -62.299297
+173.461	-43.6946	0.742618 125.445030
+176.223	-41.0325	0.619108 153.905121
+173.428	-43.1787	0.714944 135.997971
+174.746	-40.6223	0.703184 -64.365280
+174.846	-40.324	0.814666 -60.664772
+174.645	-40.5176	0.764475 -64.989357
+173.546	-40.2304	1.137017 -64.949074
+174.271	-41.3516	0.424904 -173.137573
+174.407	-40.19	0.924131 -62.898144
+174.901	-40.3694	0.797085 -60.360592
+173.327	-40.1751	1.172866 -63.739933
+173.72	-40.3452	1.088130 -66.834946
+173.689	-40.2651	1.101389 -65.739235
+174.588	-40.4817	0.788980 -65.328682
+173.444	-43.7478	0.746086 123.850449
+172.911	-40.2906	1.211886 -61.497417
+172.756	-40.3549	1.219160 -60.086246
+174.79	-40.6585	0.682002 -63.676155
+174.966	-40.4466	0.770412 -59.902557
+174.526	-40.1932	0.898009 -62.145119
+173.774	-40.3773	1.069837 -67.490089
+174.117	-40.7043	0.843145 -77.472153
+173.231	-44.0303	0.752216 114.824455
+173.422	-43.0601	0.707158 137.629456
+173.176	-40.2053	1.189884 -63.154785
+173.724	-40.3044	1.089378 -66.312798
+174.343	-40.1959	0.937647 -63.365810
+173.831	-40.7087	1.081286 -74.681442
+173.316	-43.4035	0.743846 132.468140
+173.369	-43.322	0.731949 133.761703
+174.654	-40.5537	0.746496 -65.342743
+174.66	-40.8683	0.542783 -71.286987
+173.532	-40.2712	1.139282 -65.259491
+173.497	-43.837	0.736463 121.571114
+174.316	-41.7749	0.629589 152.810623
+174.984	-40.5354	0.740041 -59.770927
+173.439	-43.5561	0.737372 129.374588
+173.509	-42.8906	0.681597 139.463715
+173.121	-44.0925	0.752442 112.637962
+174.713	-40.8324	0.567225 -68.227104
+172.848	-44.1688	0.756643 109.090599
+173.027	-44.1252	0.753952 111.249916
+173.399	-40.2027	1.163453 -64.196770
+174.755	-40.7895	0.598625 -65.896500
+173.606	-40.2748	1.122000 -65.580559
+173.454	-40.253	1.154946 -64.786415
+174.734	-40.7386	0.634519 -65.941887
+173.833	-40.408	1.047987 -68.191078
+173.512	-42.7936	0.672021 140.226303
+174.272	-40.1965	0.954987 -63.762024
+174.672	-40.6279	0.706120 -66.033310
+173.387	-43.893	0.749049 119.389381
+174.529	-40.5185	0.783953 -66.766769
+173.263	-40.2076	1.181566 -63.609520
+173.437	-43.8639	0.743703 120.510033
+174.191	-40.1896	0.978183 -64.046089
+173.087	-40.2723	1.202789 -62.833332
+173.059	-44.0846	0.758577 112.064529
+172.976	-40.2932	1.210878 -62.028023
+172.921	-44.1719	0.752513 109.747040
+173.67	-40.3124	1.104015 -66.232323
+174.947	-40.6492	0.692173 -60.266003
+173.331	-43.9124	0.755351 118.432480
+174.588	-40.548	0.759131 -66.364357
+173.501	-40.2927	1.145888 -65.325264
+173.714	-40.3951	1.088714 -67.501297
+173.168	-44.0507	0.755276 113.791878
+174.631	-40.5904	0.731101 -66.305511
+173.665	-40.3586	1.104023 -66.781990
+173.407	-43.5993	0.746339 128.087555
+174.128	-40.1471	1.005508 -63.704559
+173.251	-43.9828	0.757120 115.964661
+174.974	-40.3948	0.786077 -59.686272
+173.427	-43.8034	0.747984 122.150887
+174.789	-40.2874	0.830779 -60.949482
+174.715	-40.6776	0.673865 -65.701424
+173.383	-43.0954	0.715300 137.172073
+173.556	-40.3067	1.133571 -65.701157
+174.918	-40.3097	0.812970 -59.901081
+173.338	-40.2407	1.173793 -64.161018
+173.451	-42.976	0.695941 138.661896
+174.735	-40.2487	0.848642 -61.096416
+173.402	-43.6553	0.750814 126.427742
+173.772	-40.4298	1.068877 -68.308884
+173.934	-40.0223	1.080765 -62.958164
+174.51	-40.5665	0.765387 -67.961166
+173.154	-40.2629	1.196441 -63.256763
+174.482	-40.1447	0.920051 -61.860111
+174.603	-40.1717	0.889778 -61.351562
+173.382	-40.2932	1.168872 -64.748604
+173.399	-43.219	0.721408 135.402115
+173.239	-40.2528	1.187089 -63.712101
+173.406	-43.1388	0.715248 136.557892
+173.614	-40.3276	1.118911 -66.179916
+174.612	-40.628	0.713753 -67.294922
+172.828	-40.3532	1.221098 -60.758312
+173.393	-43.7059	0.754245 124.892761
+173.453	-40.3095	1.156164 -65.246147
+172.781	-44.1652	0.760083 108.515282
+173.65	-40.4027	1.108555 -67.278038
+174.424	-40.1452	0.932396 -62.217159
+173.834	-40.4601	1.044891 -69.141220
+172.959	-44.1235	0.758322 110.570992
+174.866	-40.2675	0.828459 -60.119671
+174.592	-40.8596	0.560156 -73.842445
+174.072	-40.0976	1.031381 -63.276943
+172.705	-40.41	1.225702 -59.451195
+174	-40.0593	1.057782 -63.093151
+174.68	-40.7793	0.609425 -68.377190
+173.379	-43.7539	0.757078 123.364929
+174.679	-40.2015	0.869551 -61.091633
+174.644	-40.7226	0.652271 -68.308044
+174.363	-40.1477	0.945657 -62.604156
+174.632	-40.8204	0.584152 -71.064430
+173.049	-40.3016	1.208830 -62.645550
+174.379	-40.7301	0.713379 -74.839134
+173.512	-40.3288	1.144137 -65.716972
+173.353	-40.3265	1.175805 -64.838943
+174.491	-40.626	0.739264 -69.604698
+174.543	-40.1394	0.909098 -61.398392
+173.7	-40.4568	1.094016 -68.330368
+174.632	-40.667	0.688560 -67.574783
+173.349	-43.2625	0.731185 134.729599
+173.095	-44.0452	0.762720 113.003387
+173.567	-40.3479	1.131050 -66.185593
+175.023	-40.4843	0.758238 -59.236076
+174.565	-40.6024	0.735785 -67.727615
+173.299	-40.3007	1.182665 -64.339966
+173.257	-43.9198	0.765517 117.479210
+173.615	-40.367	1.118423 -66.642929
+173.338	-43.8701	0.758484 119.639381
+174.983	-40.3382	0.801560 -59.404743
+173.404	-40.3363	1.167074 -65.212517
+174.301	-40.1488	0.960183 -62.958065
+173.185	-43.9941	0.763190 114.977798
+172.937	-40.3276	1.216995 -61.766972
+173.375	-43.8425	0.754550 120.701744
+173.626	-40.4373	1.117016 -67.592888
+172.816	-44.1234	0.765108 109.122421
+173.821	-40.509	1.049156 -70.036163
+174.237	-40.1456	0.977051 -63.233540
+173.468	-40.3582	1.154894 -65.774315
+173.011	-40.3391	1.216277 -62.454018
+174.03	-40.7577	0.849945 -81.160408
+172.996	-44.0799	0.763592 111.403465
+173.073	-40.3371	1.211983 -62.975533
+173.125	-40.314	1.204672 -63.282017
+174.449	-40.6649	0.728766 -71.389778
+173.394	-43.0141	0.707088 138.264847
+174.183	-40.1353	0.993558 -63.329987
+174.313	-40.8208	0.686249 -79.950478
+173.776	-40.4738	1.067284 -69.078773
+173.211	-40.3046	1.194599 -63.831123
+173.372	-43.545	0.747338 129.528259
+173.317	-40.3501	1.183742 -64.806580
+174.566	-40.6514	0.708502 -68.725540
+174.584	-40.6926	0.680331 -69.230652
+173.031	-44.0393	0.768832 112.268745
+173.628	-40.479	1.119011 -68.163315
+172.741	-40.3919	1.224627 -59.860153
+174.974	-40.2923	0.814093 -59.317959
+173.574	-40.3981	1.130513 -66.790428
+173.526	-40.3638	1.141531 -66.152229
+173.364	-40.3564	1.175929 -65.149857
+174.939	-40.2623	0.823865 -59.466331
+174.294	-41.8581	0.637617 149.319962
+175.023	-40.5698	0.728641 -59.165707
+174.149	-40.0971	1.011634 -62.973454
+173.351	-43.7946	0.760998 121.969154
+174.603	-40.7729	0.624023 -70.701805
+175.043	-40.4183	0.778202 -59.002911
+172.885	-44.1156	0.763458 109.878021
+174.805	-40.2367	0.843103 -60.404991
+173.366	-43.1743	0.723027 136.060226
+173.345	-43.6252	0.759248 127.217941
+174.372	-41.5782	0.520750 163.267029
+173.286	-43.8692	0.767454 119.181213
+174.525	-40.8555	0.579299 -76.205315
+173.574	-40.4493	1.132907 -67.414291
+175.029	-40.3707	0.791295 -59.067287
+174.005	-40.0034	1.069687 -62.478653
+173.794	-40.547	1.062491 -70.595894
+172.755	-44.12	0.767971 108.580986
+174.661	-40.1427	0.887515 -60.644039
+173.407	-40.3784	1.169154 -65.607147
+173.344	-43.6728	0.762432 125.756424
+173.749	-40.5126	1.078808 -69.572937
+173.195	-43.9435	0.770886 116.155212
+173.123	-44.0011	0.768538 114.035690
+174.555	-40.8113	0.605764 -73.430580
+173.511	-40.3899	1.146378 -66.341690
+174.497	-40.1041	0.927268 -61.282085
+174.601	-40.1229	0.902373 -60.841541
+173.061	-40.3685	1.217723 -63.018734
+173.464	-42.9263	0.689373 139.202271
+173.256	-40.3461	1.192644 -64.392776
+173.988	-42.175	0.649780 143.417038
+174.761	-40.1988	0.858460 -60.438320
+173.615	-40.5168	1.126466 -68.578758
+174.488	-40.8957	0.558757 -79.567299
+173.185	-40.354	1.203083 -63.942066
+174.444	-40.1058	0.938054 -61.611874
+174.566	-40.7302	0.659687 -70.620476
+173.52	-40.4265	1.146108 -66.802719
+173.335	-43.7174	0.765427 124.318306
+174.023	-42.1333	0.650102 143.909576
+174.387	-40.1023	0.951683 -61.895500
+174.545	-40.7677	0.639214 -72.289848
+174.515	-40.6871	0.698581 -70.689674
+172.794	-40.3906	1.226712 -60.401863
+174.857	-40.222	0.841168 -59.879913
+174.326	-40.1021	0.965638 -62.223526
+173.341	-43.5828	0.756411 128.452911
+174.356	-41.523	0.485528 167.516632
+174.91	-40.2249	0.835466 -59.492939
+173.867	-40.5584	1.028759 -71.486504
+172.961	-40.3693	1.223190 -62.088703
+172.932	-44.0756	0.768036 110.709457
+174.216	-40.9249	0.677935 -87.242897
+174.12	-40.7937	0.790312 -81.358177
+173.567	-40.4935	1.138744 -67.912125
+173.361	-43.0548	0.715468 137.749695
+173.475	-42.8375	0.678594 140.016708
+173.06	-44.001	0.774288 113.146507
+174.07	-40.0311	1.047301 -62.491982
+174.922	-40.7617	0.633904 -60.169132
+174.55	-40.0958	0.918605 -60.860035
+173.675	-40.5164	1.106284 -69.051399
+174.646	-40.0986	0.900411 -60.296791
+173.316	-43.8307	0.765382 120.611214
+173.115	-40.366	1.212530 -63.471931
+174.139	-40.912	0.728729 -86.605377
+174.268	-40.1017	0.979765 -62.516167
+173.462	-40.4047	1.158659 -66.215202
+173.287	-40.3793	1.191416 -64.845718
+173.214	-43.8601	0.781970 118.614784
+173.575	-40.5332	1.140860 -68.466339
+172.897	-40.359	1.222689 -61.435280
+174.119	-40.0589	1.028194 -62.621006
+173.527	-40.4632	1.146899 -67.276993
+174.729	-40.1534	0.874472 -60.271698
+174.21	-40.0969	0.995616 -62.717403
+173.307	-43.3576	0.742695 133.214828
+175.029	-40.2932	0.811067 -58.859001
+173.861	-40.627	1.035487 -73.291801
+173.018	-40.3863	1.223788 -62.703152
+175.04	-40.5293	0.743757 -58.990398
+173.234	-40.3899	1.200890 -64.553719
+174.464	-40.075	0.941234 -61.123066
+173.193	-43.9003	0.779244 117.185883
+174.598	-40.0869	0.911566 -60.467251
+172.785	-44.0898	0.771512 109.036163
+174.502	-40.7388	0.669191 -72.491875
+173.081	-43.9606	0.781173 114.076950
+175.093	-40.4548	0.768377 -58.467289
+175.988	-41.2354	0.617659 151.562408
+172.694	-44.1073	0.771899 108.110085
+172.88	-44.0656	0.772000 110.199203
+175.016	-40.6611	0.692481 -58.962742
+173.728	-40.5724	1.093511 -70.415573
+174.446	-40.7083	0.704239 -72.776924
+173.537	-40.5183	1.149926 -67.993004
+173.327	-43.7564	0.767004 123.014221
+173.467	-40.4541	1.161400 -66.774460
+173.284	-40.4181	1.196509 -65.141350
+172.962	-44.0309	0.774651 111.467384
+174.326	-41.606	0.548056 163.068436
+174.825	-40.192	0.852085 -59.902321
+175.058	-40.3308	0.800640 -58.721565
+173.629	-40.5622	1.128097 -69.308357
+173.138	-43.9543	0.776326 115.101074
+174.496	-40.8204	0.614781 -75.616341
+175.086	-40.3706	0.790296 -58.543251
+173.284	-43.3005	0.742757 134.146866
+173.332	-43.1292	0.725181 136.716522
+173.508	-40.4926	1.154805 -67.483070
+173.083	-40.4166	1.224190 -63.505276
+173.002	-43.9972	0.779168 112.345299
+172.736	-44.0748	0.775525 108.638908
+175.126	-41.5085	0.563452 144.665756
+175	-40.2566	0.821179 -58.946140
+173.939	-42.2146	0.649679 142.947723
+174.498	-40.7833	0.640610 -74.102882
+172.694	-40.4392	1.230121 -59.236023
+173.537	-40.5433	1.153439 -68.285576
+173.327	-43.2109	0.731030 135.523727
+173.257	-43.8211	0.778275 120.359612
+173.389	-42.9694	0.703224 138.871017
+173.34	-40.4441	1.189009 -65.774231
+173.806	-40.5856	1.060748 -71.526787
+174.507	-40.065	0.934534 -60.762878
+174.461	-40.8486	0.605449 -77.937103
+174.442	-40.7571	0.674945 -74.523010
+174.082	-42.0678	0.649738 144.789230
+173.296	-43.6883	0.772866 125.154175
+173.397	-40.4716	1.179932 -66.461182
+172.858	-40.3922	1.228516 -61.072823
+172.975	-40.4035	1.229153 -62.341698
+173.166	-40.4036	1.212330 -64.136673
+173.33	-43.0854	0.722397 137.343246
+174.275	-41.4633	0.469291 175.062683
+174.969	-40.2228	0.831067 -59.029030
+174.416	-40.0635	0.954378 -61.255146
+174.418	-40.8851	0.594917 -81.184792
+173.496	-40.5278	1.162287 -67.795174
+173.276	-43.7317	0.778440 123.583916
+173.782	-40.6241	1.079246 -72.013130
+173.449	-40.5008	1.170758 -67.150986
+174.35	-40.0494	0.972803 -61.458546
+174.446	-40.8042	0.642669 -76.279663
+173.567	-40.5652	1.148153 -68.786110
+174.704	-40.1075	0.889105 -60.015804
+174.278	-41.8044	0.641611 150.998917
+174.24	-41.8365	0.646826 149.513260
+173.221	-40.4368	1.209406 -64.831932
+173.26	-43.4977	0.762195 130.614182
+174.315	-41.6448	0.572444 161.152313
+174.794	-40.1548	0.865076 -59.824562
+174.295	-40.0652	0.981804 -61.926552
+173.278	-40.4663	1.203884 -65.528908
+174.627	-40.059	0.912748 -59.999580
+173.293	-43.7844	0.773208 121.880569
+173.291	-43.6471	0.771666 126.481125
+174.177	-40.0448	1.016401 -62.219482
+172.826	-40.4192	1.233188 -60.726120
+172.834	-44.0778	0.771832 109.613228
+174.243	-40.0532	0.997537 -62.028973
+173.274	-43.4461	0.754415 131.685760
+173.013	-40.4215	1.230880 -62.835194
+174.383	-40.7849	0.678792 -76.923325
+173.027	-43.9629	0.785251 113.129898
+174.883	-40.1859	0.847079 -59.433662
+173.336	-40.4929	1.196011 -66.221176
+173.146	-43.9098	0.784984 116.193909
+173.255	-43.3909	0.753241 132.693008
+172.905	-44.0388	0.775823 110.683105
+173.195	-43.8088	0.793823 120.112473
+173.507	-40.5712	1.165893 -68.365318
+172.671	-44.0509	0.780707 108.143456
+173.277	-43.2419	0.740377 135.070587
+173.444	-40.5439	1.178066 -67.572433
+173.576	-40.6159	1.154650 -69.473343
+174.459	-40.0372	0.951173 -60.702591
+175.115	-40.4089	0.780663 -58.296238
+174.564	-40.0571	0.925048 -60.343006
+174.944	-40.187	0.841202 -59.010429
+174.679	-40.0715	0.901266 -59.818748
+175.031	-40.7029	0.677484 -58.411114
+173.233	-43.7729	0.787664 121.837296
+173.093	-40.4646	1.232501 -63.958237
+173.29	-43.5985	0.767709 127.977356
+173.391	-40.5186	1.187099 -66.907501
+172.922	-40.399	1.229720 -61.757969
+172.783	-44.0509	0.777792 109.210922
+174.768	-40.1141	0.878094 -59.660900
+173.492	-40.6215	1.178959 -68.782310
+175.063	-40.2493	0.819562 -58.440952
+175.082	-40.5526	0.737748 -58.376266
+173.308	-43.1693	0.731272 136.140808
+173.817	-40.6692	1.072617 -73.562920
+173.152	-40.4563	1.223125 -64.426735
+173.235	-43.6777	0.786515 125.432755
+174.394	-40.8353	0.641167 -79.015511
+173.337	-43.0229	0.716261 138.217331
+175.027	-40.2146	0.828914 -58.562897
+173.698	-40.6618	1.125180 -71.414330
+174.289	-41.5065	0.490914 171.188522
+173.212	-40.4857	1.218728 -65.197311
+174.852	-40.1497	0.859072 -59.390942
+175.093	-40.2884	0.809560 -58.333336
+173.03	-40.4629	1.238785 -63.296364
+172.843	-44.0219	0.780895 110.030312
+174.319	-41.7379	0.619094 155.131714
+173.239	-43.343	0.752394 133.498566
+174.127	-40.0229	1.034922 -62.166451
+173.27	-40.5173	1.212996 -65.968979
+173.582	-40.6689	1.164390 -70.118546
+175.068	-40.5978	0.720728 -58.437443
+175.121	-40.3275	0.799952 -58.198238
+173.434	-40.5884	1.187496 -67.966896
+172.728	-44.0282	0.782637 108.746094
+173.39	-40.5597	1.193378 -67.324036
+173.291	-43.546	0.761899 129.430145
+173.475	-40.6585	1.190441 -69.009071
+172.761	-40.4315	1.233102 -59.976982
+172.601	-44.0437	0.783866 107.584084
+173.234	-43.6201	0.781345 127.367668
+173.429	-42.8836	0.687745 139.755280
+173.122	-40.4866	1.233191 -64.434219
+174.402	-40.0142	0.969600 -60.749790
+174.248	-41.3881	0.446956 -177.468689
+173.758	-40.6636	1.101571 -72.345528
+176.169	-41.0384	0.620175 153.689865
+173.208	-43.727	0.795570 123.487526
+174.052	-40.9281	0.769520 -86.102173
+174.298	-41.5632	0.526885 166.836258
+173.633	-40.662	1.147382 -70.603477
+174.591	-40.0131	0.929639 -59.704166
+174.287	-40.0194	0.994586 -61.415745
+172.883	-40.4285	1.236138 -61.378849
+174.994	-40.1886	0.836697 -58.671944
+173.529	-40.6605	1.177092 -69.507080
+172.909	-43.9997	0.783105 110.985924
+173.426	-40.6346	1.197757 -68.369324
+172.776	-44.0106	0.784419 109.294456
+173.019	-40.5091	1.252054 -63.574318
+174.86	-40.9558	0.478725 -63.358944
+174.987	-40.7392	0.656259 -58.877529
+175.089	-40.5047	0.753530 -58.430256
+173.334	-40.5445	1.203815 -66.738541
+174.92	-40.1397	0.853919 -58.872383
+174.819	-40.1211	0.869736 -59.392467
+175.141	-40.4379	0.774031 -58.023022
+173.409	-42.9314	0.696093 139.294693
+174.044	-42.0937	0.650717 144.363953
+173.349	-40.6045	1.210494 -67.469048
+173.239	-43.575	0.775186 128.696289
+175.139	-40.239	0.818249 -57.867470
+172.683	-44.0043	0.786870 108.358963
+173.431	-40.6774	1.205054 -68.815666
+172.629	-44.0019	0.788233 107.845108
+172.832	-40.452	1.240447 -60.790169
+174.74	-40.0645	0.893210 -59.384426
+174.518	-40.022	0.942300 -60.200592
+173.159	-40.4971	1.229642 -64.870850
+173.566	-40.8185	1.210804 -71.077515
+173.788	-40.6944	1.098692 -73.408897
+173.17	-43.7643	0.805647 121.639465
+175.151	-40.3676	0.790493 -57.996384
+174.675	-40.0277	0.911462 -59.404514
+174.05	-40.7934	0.820231 -82.173080
+173.341	-42.9864	0.711946 138.739120
+173.672	-40.6959	1.145433 -71.441513
+173.541	-40.7833	1.205855 -70.630127
+173.549	-40.8604	1.225123 -71.134537
+173.479	-40.76	1.212704 -69.911942
+173.368	-40.7208	1.227817 -68.713326
+173.428	-40.7188	1.214448 -69.160576
+173.404	-40.7584	1.228107 -69.288773
+173.549	-40.739	1.191669 -70.394234
+173.712	-40.7835	1.170036 -72.628654
+175.091	-40.2014	0.827898 -58.077438
+173.297	-43.0508	0.725004 137.852249
+173.3	-40.6611	1.231375 -67.666939
+173.62	-40.7807	1.188070 -71.446098
+173.537	-40.9011	1.237177 -71.229828
+175.046	-40.1644	0.838053 -58.211010
+173.694	-40.8677	1.207355 -72.511871
+173.496	-40.8189	1.223843 -70.460114
+173.145	-40.5735	1.247907 -65.623489
+173.594	-40.9	1.228860 -71.680496
+173.374	-40.6587	1.214572 -68.186943
+173.39	-40.6926	1.217536 -68.627838
+173.263	-40.6195	1.231978 -66.991508
+173.268	-40.5715	1.222687 -66.515594
+173.198	-40.5964	1.241725 -66.275742
+173.188	-40.5391	1.232826 -65.552315
+173.748	-40.8165	1.179111 -73.252815
+173.348	-40.6888	1.225867 -68.279396
+173.554	-40.6965	1.179171 -70.089958
+173.624	-40.8495	1.210121 -71.784698
+173.689	-40.825	1.191708 -72.432617
+173.737	-40.7046	1.126166 -72.514648
+173.686	-40.7384	1.157197 -71.987175
+173.613	-40.7118	1.167489 -70.865891
+173.493	-40.7015	1.195562 -69.563148
+173.437	-40.7941	1.228993 -69.817345
+173.43	-40.8341	1.239352 -70.031151
+173.797	-40.7257	1.109976 -74.077362
+173.764	-40.7524	1.141155 -73.404442
+173.769	-40.788	1.160193 -73.586128
+173.2	-40.6599	1.252534 -66.990250
+173.128	-40.5473	1.245540 -65.160187
+173.277	-43.0931	0.731022 137.255127
+173.252	-43.1377	0.737806 136.617920
+173.263	-43.1921	0.739568 135.820648
+173.312	-40.7102	1.237350 -68.226021
+173.178	-43.121	0.748789 136.876740
+174.812	-40.082	0.879097 -59.116161
+173.476	-40.8805	1.241898 -70.654785
+173.558	-40.9418	1.243566 -71.560677
+174.985	-40.8497	0.602026 -57.497566
+173.508	-40.9228	1.246416 -71.110489
+173.836	-40.7362	1.093803 -75.236145
+173.658	-40.8998	1.220907 -72.212097
+173.384	-40.7993	1.240203 -69.456009
+173.333	-40.7589	1.242011 -68.790199
+172.863	-43.9629	0.791173 110.508156
+173.198	-43.1674	0.748289 136.193924
+173.241	-43.0607	0.734446 137.734924
+173.258	-40.6968	1.246409 -67.737633
+174.867	-40.1049	0.867392 -58.965328
+175.072	-40.6717	0.693779 -57.975357
+173.269	-40.7363	1.250575 -68.178940
+173.13	-40.6142	1.259950 -66.032249
+175.144	-40.4746	0.764599 -57.891754
+173.509	-40.954	1.253008 -71.252716
+176.246	-40.9391	0.621882 154.566040
+173.213	-43.2166	0.748816 135.466919
+175.173	-40.4084	0.781403 -57.811344
+174.984	-40.1524	0.845291 -58.545563
+172.957	-40.44	1.237737 -62.287575
+173.413	-40.8682	1.249335 -70.120880
+173.076	-40.5008	1.242957 -64.133606
+175.027	-40.7834	0.644843 -57.537258
+173.292	-43.007	0.721776 138.501404
+173.373	-40.8406	1.250340 -69.674950
+173.222	-43.265	0.750326 134.734879
+173.325	-40.8093	1.252729 -69.136528
+174.086	-40.7526	0.830186 -79.970589
+173.738	-40.8478	1.195808 -73.048111
+172.567	-43.9973	0.789497 107.436371
+172.662	-43.964	0.792208 108.194344
+173.275	-40.7801	1.256721 -68.594048
+173.414	-40.9017	1.256026 -70.324234
+173.458	-40.9372	1.256860 -70.813972
+173.22	-43.3047	0.753171 134.122086
+173.135	-43.1455	0.757160 136.517136
+173.149	-43.1928	0.757730 135.830917
+175.024	-40.1184	0.849132 -58.102692
+173.213	-40.7186	1.259183 -67.681046
+174.273	-41.6135	0.565243 164.272095
+174.213	-41.3501	0.461260 -174.376419
+173.212	-43.0898	0.741055 137.321426
+172.514	-43.9953	0.790324 107.153313
+172.899	-40.4743	1.246956 -61.659660
+173.37	-40.8789	1.258329 -69.897423
+173.323	-40.8536	1.260997 -69.436455
+174.803	-40.0297	0.891516 -58.729282
+173.153	-40.7069	1.269881 -67.234192
+175.005	-40.8205	0.626116 -57.311234
+175.151	-40.2903	0.807239 -57.921413
+174.307	-41.6927	0.599364 158.631195
+173.369	-40.9111	1.264532 -70.086067
+174.139	-41.956	0.650549 146.457962
+173.633	-40.9489	1.235591 -72.131523
+172.728	-43.9766	0.790253 108.863464
+173.991	-40.7434	0.871776 -81.589478
+173.273	-40.8246	1.264303 -68.933273
+174.165	-41.9141	0.650604 147.247894
+174.864	-40.0567	0.877740 -58.613075
+173.482	-40.9903	1.264137 -71.221924
+173.397	-40.9335	1.264880 -70.382500
+173.789	-42.3259	0.651309 142.083191
+173.23	-40.7574	1.261557 -68.140396
+174.738	-40.0181	0.903342 -58.964886
+172.796	-43.9733	0.790214 109.631683
+173.243	-43.0259	0.731608 138.246277
+176.185	-40.997	0.621226 153.986420
+173.326	-40.8949	1.267936 -69.725639
+173.275	-40.8696	1.271109 -69.264107
+174.971	-40.1133	0.854741 -58.391533
+174.232	-41.4901	0.497082 174.090302
+173.223	-40.7954	1.268189 -68.434090
+173.409	-40.9738	1.270850 -70.660553
+173.198	-43.4213	0.765490 132.206528
+173.192	-43.3729	0.762488 133.055969
+173.123	-43.1041	0.756608 137.124710
+173.098	-43.218	0.767549 135.478226
+174.93	-40.0798	0.865774 -58.403381
+172.719	-40.471	1.238381 -59.414890
+173.203	-43.4731	0.769927 131.209595
+173.539	-41.0174	1.261788 -71.713959
+173.223	-40.8421	1.274633 -68.799934
+173.164	-43.6895	0.805738 125.016312
+173.099	-40.7315	1.284394 -67.231583
+173.335	-40.9435	1.275295 -70.057198
+173.207	-43.5308	0.775983 129.911163
+173.341	-42.9371	0.705887 139.453735
+173.16	-43.2407	0.759010 135.132370
+173.128	-40.5174	1.238989 -64.815125
+173.353	-41.0017	1.283257 -70.453094
+174.097	-42.012	0.651109 145.499130
+173.179	-43.33	0.761598 133.760956
+174.224	-41.4368	0.473892 178.287735
+173.283	-40.9085	1.276339 -69.561485
+174.253	-41.6603	0.593229 162.036316
+173.23	-40.8899	1.280723 -69.165710
+173.086	-40.668	1.280204 -66.423363
+174.198	-40.9683	0.673375 -89.778770
+173.518	-42.6081	0.657930 140.992020
+173.151	-43.0817	0.750332 137.449966
+173.171	-40.7575	1.272655 -67.834084
+173.087	-43.1698	0.766484 136.159241
+173.077	-43.1192	0.765345 136.892807
+173.083	-40.5705	1.260371 -65.110588
+173.359	-41.0458	1.290187 -70.688011
+173.544	-41.0498	1.267205 -71.866737
+173.292	-40.9813	1.287403 -70.007462
+173.489	-42.7373	0.668185 140.604172
+173.17	-40.8123	1.279154 -68.311714
+173.171	-40.8618	1.284609 -68.696449
+173.74	-42.3692	0.652415 141.817764
+173.947	-42.1776	0.650891 143.225174
+175.079	-40.1207	0.844344 -57.788826
+172.76	-43.9352	0.796290 109.240913
+173.985	-40.7849	0.843440 -82.986961
+175.183	-40.3244	0.799499 -57.736794
+173.052	-40.7622	1.296661 -67.380409
+173.247	-40.9406	1.286353 -69.554680
+172.97	-40.489	1.249697 -62.718735
+173.175	-40.9113	1.290428 -69.039856
+174.238	-41.5381	0.524474 170.605560
+174.954	-40.8646	0.573636 -59.213535
+173.329	-41.0711	1.298017 -70.617355
+174.263	-41.1151	0.507405 -100.152542
+176.114	-41.0847	0.620183 153.215149
+175.082	-40.7089	0.681664 -57.548599
+173.18	-43.0434	0.742772 137.998047
+173.646	-41.008	1.245628 -72.422699
+173.112	-40.7845	1.286211 -67.826591
+172.594	-43.9516	0.793275 107.631638
+173.167	-43.2872	0.760814 134.431274
+173.176	-43.6419	0.796954 126.828346
+173.523	-41.0734	1.274342 -71.802917
+173.292	-41.0297	1.295436 -70.237762
+173.231	-40.9903	1.295888 -69.735817
+173.118	-40.8334	1.288708 -68.280655
+173.113	-40.8832	1.293411 -68.613594
+173.331	-41.1078	1.303861 -70.775177
+173.149	-43.4995	0.782780 130.788895
+172.463	-43.9693	0.793080 106.917358
+173.396	-41.0907	1.293176 -71.089798
+173.177	-40.9583	1.296926 -69.308533
+174.861	-40.0163	0.886332 -58.314617
+174.177	-41.4748	0.503810 176.318466
+173.174	-43.5869	0.789623 128.569382
+173.261	-41.081	1.306994 -70.287491
+174.001	-40.8297	0.815590 -84.005112
+172.525	-43.9589	0.792911 107.251434
+175.117	-40.1512	0.836091 -57.709503
+173.106	-43.2655	0.769323 134.796722
+173.277	-41.1278	1.313044 -70.543190
+175.18	-41.4948	0.564107 144.216141
+174.914	-40.0266	0.878122 -58.111019
+172.918	-40.6786	1.328015 -65.919319
+172.891	-40.6248	1.336468 -65.317261
+173.048	-43.2868	0.779908 134.535583
+172.989	-43.2947	0.788978 134.493683
+172.924	-43.2442	0.794070 135.173477
+172.99	-40.7524	1.311597 -67.026665
+173.402	-42.8334	0.683744 140.297104
+172.97	-40.7109	1.315144 -66.442619
+173.037	-43.1964	0.775734 135.787079
+172.966	-43.265	0.789967 134.900513
+173.031	-40.7155	1.299559 -66.746300
+172.963	-43.3261	0.794784 134.114014
+173.048	-43.2427	0.776809 135.152817
+173.008	-43.2634	0.784027 134.895615
+173.028	-43.1472	0.774798 136.448593
+173.206	-41.0357	1.305554 -69.816147
+172.953	-40.6302	1.319555 -65.388802
+173.174	-40.996	1.302722 -69.486992
+175.001	-40.0784	0.858906 -57.988255
+173.107	-43.3184	0.772968 134.015625
+173.362	-42.8634	0.691361 140.192093
+173.975	-42.145	0.651512 143.623993
+172.996	-40.6717	1.306643 -66.049889
+172.697	-43.9244	0.797503 108.565811
+173.14	-43.357	0.770260 133.386078
+174.98	-40.0334	0.869596 -57.802902
+173.025	-43.3345	0.786991 133.902893
+172.886	-43.2196	0.797487 135.464340
+173.286	-42.9684	0.718968 139.117691
+172.966	-43.3609	0.797365 133.647812
+172.479	-43.9319	0.795449 107.054482
+172.924	-43.2924	0.797191 134.591904
+175.064	-40.0816	0.852741 -57.657383
+173.11	-40.9325	1.299573 -68.892532
+175.146	-40.1845	0.828488 -57.665176
+173.189	-41.0779	1.313674 -69.905891
+173.084	-43.368	0.780731 133.309097
+172.966	-43.3869	0.799718 133.291977
+172.843	-40.6597	1.344542 -65.645203
+172.641	-43.9274	0.796253 108.028320
+172.921	-40.738	1.328386 -66.525993
+173.135	-43.3971	0.774477 132.734314
+173.013	-43.3862	0.793142 133.184799
+173.468	-41.0777	1.281980 -71.467392
+172.977	-43.1765	0.783627 136.019592
+173.692	-40.9718	1.233180 -72.592262
+172.984	-43.227	0.785217 135.378723
+173.503	-42.6673	0.661842 140.875229
+175.055	-40.7417	0.665585 -57.622231
+173.114	-40.9754	1.305421 -69.124588
+172.859	-43.2592	0.802771 135.035828
+172.912	-43.3417	0.802481 134.007904
+173.372	-42.8998	0.695854 139.796127
+172.968	-43.4125	0.802066 132.926010
+172.928	-43.2018	0.791534 135.678726
+173.134	-41.0203	1.310180 -69.412888
+173.071	-43.4129	0.786957 132.625473
+175.148	-40.532	0.748135 -57.652687
+173.016	-43.4228	0.796290 132.629395
+173.111	-43.5803	0.800465 129.163300
+174.159	-41.429	0.493620 179.267563
+173.288	-41.1577	1.317003 -70.696236
+176.283	-40.8213	0.624236 155.597443
+173.127	-43.4506	0.781384 131.817932
+173.25	-42.9931	0.727955 138.749359
+175.119	-40.582	0.730032 -57.788548
+172.918	-43.3881	0.805807 133.401962
+172.84	-40.4832	1.247836 -60.902447
+172.849	-40.7159	1.342405 -66.116989
+173.046	-43.4537	0.795202 132.035522
+173.202	-41.1207	1.318988 -70.120621
+173.131	-43.542	0.791456 129.942566
+173.142	-43.799	0.808958 119.768074
+172.982	-43.4488	0.803877 132.352127
+172.854	-43.3144	0.807132 134.423752
+173.004	-43.488	0.804948 131.655594
+174.752	-41.3642	0.429782 143.593506
+173.149	-41.0559	1.314019 -69.633034
+172.784	-40.4756	1.243499 -60.175392
+172.6	-43.9022	0.798373 107.737534
+172.852	-43.363	0.811145 133.872620
+172.917	-43.4398	0.811150 132.719330
+172.952	-43.4769	0.810706 132.067749
+173.077	-43.5027	0.795829 131.050476
+173.014	-43.5319	0.808853 130.897247
+175.038	-40.0437	0.861910 -57.584583
+173.121	-43.6173	0.804854 128.048996
+172.791	-40.6891	1.352098 -65.844887
+176.128	-41.047	0.620948 153.498505
+172.854	-43.4099	0.815277 133.302704
+172.845	-43.214	0.801843 135.522949
+173.993	-42.096	0.652825 144.129105
+173.026	-43.0952	0.773696 137.165787
+172.959	-43.5151	0.814122 131.487427
+173.068	-43.5552	0.803859 130.079987
+172.875	-43.1782	0.797089 135.917480
+172.946	-40.773	1.324793 -66.992386
+172.424	-43.9275	0.797476 106.742531
+172.792	-43.2895	0.811539 134.767365
+172.922	-40.5917	1.331808 -64.892502
+172.899	-43.4935	0.818805 132.098251
+172.929	-43.1629	0.789980 136.138611
+172.789	-40.7269	1.351293 -66.081680
+172.857	-43.4551	0.819402 132.743301
+172.918	-43.5424	0.822192 131.367905
+173.015	-43.5757	0.814517 130.134048
+172.968	-43.5582	0.818240 130.801422
+172.965	-43.1257	0.784076 136.653198
+173.316	-41.1738	1.316640 -70.910965
+173.179	-41.1624	1.327464 -70.112915
+172.786	-43.3381	0.815651 134.267334
+173.239	-41.1567	1.321507 -70.414803
+172.529	-43.9105	0.796563 107.311462
+173.019	-40.6269	1.296450 -65.515007
+173.127	-41.0966	1.321658 -69.685219
+172.79	-43.3855	0.819192 133.756577
+172.791	-43.2328	0.807997 135.341965
+173.204	-43.0024	0.736312 138.588760
+174.033	-42.0517	0.652945 144.729996
+172.778	-40.6422	1.356769 -65.519630
+174.118	-41.4658	0.512049 177.739136
+172.751	-40.5945	1.365868 -65.232620
+172.823	-40.6031	1.353895 -65.153091
+172.653	-43.8987	0.799848 108.143410
+172.734	-40.6759	1.359733 -65.756844
+172.788	-43.4379	0.824449 133.167221
+173.438	-42.7927	0.676078 140.448227
+172.744	-40.7147	1.356485 -65.976051
+172.979	-40.5839	1.313287 -64.685699
+173.213	-41.1911	1.329373 -70.342812
+172.811	-40.7643	1.348610 -66.343178
+172.899	-43.1324	0.793121 136.436066
+172.457	-43.8955	0.799252 106.977608
+174.199	-41.655	0.603590 163.282928
+173.272	-41.1828	1.323123 -70.658760
+172.819	-43.1789	0.803195 135.862579
+172.693	-43.8774	0.803329 108.458633
+173.144	-41.1377	1.326331 -69.882370
+173.955	-42.1225	0.653270 143.750549
+172.874	-40.5867	1.345151 -64.919395
+172.718	-40.6319	1.364840 -65.511993
+173.251	-41.2159	1.330857 -70.567085
+173.127	-41.1686	1.332014 -69.876617
+172.628	-43.8623	0.803087 107.937920
+175.114	-40.6312	0.712303 -57.615364
+172.752	-43.3114	0.816517 134.592133
+172.75	-43.3652	0.820715 134.058578
+172.757	-40.7514	1.354297 -66.174110
+172.775	-40.5566	1.369352 -64.909622
+172.494	-43.871	0.800854 107.185097
+173.286	-41.234	1.331025 -70.743919
+174.214	-41.6264	0.588372 164.848907
+174.912	-40.9575	0.486868 -61.379868
+173.459	-41.1215	1.289488 -71.561401
+173.149	-41.1972	1.334712 -70.032814
+172.766	-43.4804	0.830082 132.752808
+172.396	-43.8897	0.801725 106.645233
+173.086	-41.14	1.330899 -69.628670
+175.179	-40.4447	0.773846 -57.673386
+172.554	-43.8693	0.801062 107.480194
+174.162	-41.2058	0.504374 -99.661774
+172.935	-40.5591	1.334443 -64.414467
+172.894	-40.5617	1.345521 -64.584496
+172.862	-40.8144	1.343967 -66.718117
+173.092	-43.6726	0.821153 126.354256
+173.122	-41.2254	1.339953 -69.949532
+173.18	-41.2307	1.337537 -70.227516
+172.84	-40.5513	1.361479 -64.628242
+173.237	-41.2533	1.336919 -70.522408
+174.094	-41.4997	0.524824 176.750412
+176.714	-42.6976	0.563429 147.773315
+176.896	-42.7733	0.557588 147.814026
+177.059	-42.8456	0.552143 147.704773
+176.565	-42.9067	0.561370 145.175293
+176.727	-42.8593	0.558772 146.345764
+176.507	-43.0056	0.560454 143.705872
+177.069	-40.2322	0.615289 161.176056
+176.672	-42.9891	0.556704 144.478470
+177.035	-42.9496	0.549497 146.304443
+176.908	-42.9044	0.553418 146.440582
+176.668	-40.795	0.614501 157.011627
+176.808	-42.9702	0.553869 145.200104
+176.444	-43.1119	0.560225 142.007690
+176.616	-43.1033	0.555425 142.659912
+176.413	-43.5686	0.555436 133.974396
+176.802	-43.0871	0.550924 143.513245
+176.375	-43.2062	0.560916 140.287415
+176.487	-40.9371	0.615495 155.458206
+176.938	-43.0141	0.549530 145.049316
+176.487	-43.4387	0.553919 136.356155
+176.541	-43.2293	0.555141 140.379959
+176.727	-43.2071	0.550179 141.287338
+176.389	-43.3244	0.558644 138.212982
+176.549	-43.344	0.553116 138.295746
+176.676	-43.3143	0.549806 139.195129
+176.568	-40.7918	0.617347 156.699890
+176.509	-40.8599	0.617134 156.073242
+176.952	-40.0979	0.620414 161.528259
+176.873	-40.2315	0.617847 160.626007
+176.724	-40.3623	0.618013 159.947983
+176.904	-40.1037	0.621142 161.362900
+176.72	-40.3109	0.617887 160.099609
+176.665	-40.4763	0.621308 159.183289
+176.682	-40.435	0.620012 159.542709
+176.868	-40.1822	0.619178 160.800705
+176.461	-40.625	0.624221 157.291107
+176.514	-40.6019	0.623671 157.621109
+176.823	-40.2345	0.618003 160.484619
+176.916	-40.0619	0.621733 161.644608
+176.68	-40.3926	0.619258 159.784103
+176.521	-40.555	0.624767 157.911133
+176.686	-40.3557	0.618554 159.937683
+169.074	-41.6999	0.907109 -38.543705
+169.307	-41.7881	0.921421 -38.320011
+169.517	-41.8897	0.933993 -37.960800
+169.286	-41.5829	0.922669 -39.539455
+169.554	-41.6703	0.939447 -39.339615
+168.554	-41.3162	0.878225 -40.020248
+168.374	-41.1028	0.868869 -40.938038
+169.046	-41.5172	0.907537 -39.606880
+168.369	-40.8987	0.869797 -42.096889
+168.63	-41.1291	0.884401 -41.239983
+168.584	-40.9619	0.882556 -42.141193
+168.811	-41.4312	0.893179 -39.766392
+168.811	-41.2346	0.895017 -40.934380
+169.03	-41.3369	0.908464 -40.678528
+169.25	-41.4159	0.922096 -40.527496
+169.699	-41.823	0.947200 -38.552113
+169.479	-41.4652	0.937068 -40.555733
+169.041	-41.1614	0.910525 -41.769253
+168.84	-41.0299	0.898163 -42.220264
+169.246	-41.2564	0.923335 -41.516560
+169.416	-41.3325	0.934312 -41.318150
+169.724	-41.4908	0.953814 -40.705479
+169.859	-41.6797	0.960576 -39.617470
+169.075	-41.0149	0.913560 -42.747002
+168.752	-40.8586	0.893284 -43.072987
+169.265	-41.0917	0.925969 -42.611252
+168.543	-40.7521	0.880823 -43.279953
+168.999	-40.854	0.909089 -43.595146
+169.494	-41.1889	0.940861 -42.363319
+168.813	-40.703	0.897562 -44.135120
+169.614	-41.3364	0.947999 -41.582897
+169.254	-40.9281	0.925963 -43.638260
+169.482	-41.0005	0.941108 -43.582664
+169.05	-40.6671	0.912764 -44.861515
+169.237	-40.76	0.925200 -44.679897
+168.895	-40.5362	0.902741 -45.311913
+169.721	-41.2206	0.956750 -42.518616
+169.85	-41.3266	0.964899 -41.981342
+169.989	-41.4769	0.973263 -41.128220
+169.091	-40.5286	0.915332 -45.795410
+169.453	-40.8229	0.939679 -44.706387
+169.71	-41.0821	0.956885 -43.443401
+169.252	-40.6025	0.926203 -45.703831
+169.408	-40.6804	0.936775 -45.544941
+169.006	-40.3755	0.909182 -46.528629
+169.917	-41.1682	0.971688 -43.191402
+169.723	-40.8807	0.958812 -44.850418
+169.246	-40.4433	0.925230 -46.695728
+169.932	-41.0046	0.974013 -44.372734
+170.132	-41.6258	0.981512 -40.279961
+169.219	-40.2812	0.922659 -47.632908
+169.482	-40.5259	0.941710 -46.718555
+170.125	-41.2841	0.986605 -42.683754
+169.613	-40.6879	0.951152 -45.940964
+170.194	-42.1631	0.974282 -36.889069
+170.243	-41.4546	0.993395 -41.627697
+169.983	-40.8433	0.978406 -45.633148
+170.13	-41.0918	0.988912 -44.097836
+169.437	-40.3383	0.937604 -47.825378
+170.172	-41.9149	0.978442 -38.380054
+170.259	-41.7638	0.988325 -39.454033
+169.749	-40.5431	0.960640 -47.221027
+169.394	-40.1707	0.933342 -48.775730
+170.112	-40.9484	0.988276 -45.131592
+170.126	-40.4432	0.987842 -48.810856
+170.194	-40.5817	0.993950 -47.977695
+170.249	-40.7058	0.998924 -47.199993
+170.187	-40.8281	0.994327 -46.166214
+170.328	-40.4726	1.003837 -49.104019
+170.381	-41.3225	1.006839 -42.783886
+170.339	-41.1634	1.005248 -43.914986
+170.616	-40.0326	1.019796 -53.103245
+169.57	-40.0436	0.944015 -50.077709
+169.8	-40.1	0.960583 -50.341824
+169.846	-40.262	0.965625 -49.375278
+170.068	-40.2986	0.982067 -49.686317
+170.274	-40.331	0.998054 -49.986267
+170.215	-40.1912	0.991708 -50.822990
+170.141	-40.0673	0.984476 -51.496346
+170.332	-40.0482	0.998469 -52.175194
+170.444	-40.3722	1.012040 -50.146660
+170.462	-40.2203	1.011292 -51.313293
+170.732	-40.2204	1.032829 -52.068481
+170.885	-40.1057	1.042339 -53.337555
+169.906	-40.4149	0.971257 -48.474335
+170.009	-40.1545	0.976095 -50.526848
+170.32	-40.9723	1.004930 -45.344296
+170.63	-40.3574	1.027047 -50.775791
+170.405	-40.6316	1.011456 -48.115440
+170.546	-41.2282	1.022483 -43.777130
+170.441	-41.4426	1.010100 -41.969547
+171.109	-40.025	1.057883 -54.563564
+170.394	-41.5941	1.002879 -40.780258
+170.918	-40.2446	1.048462 -52.420979
+170.529	-40.4921	1.020550 -49.483349
+170.528	-41.0776	1.022159 -44.922710
+171.351	-40.0389	1.077884 -55.158741
+170.85	-40.3579	1.045379 -51.374088
+170.346	-41.8919	0.991675 -38.655025
+170.563	-40.9021	1.025815 -46.396275
+170.626	-40.6295	1.030223 -48.699184
+170.586	-41.3648	1.024241 -42.760994
+171.075	-40.2004	1.060365 -53.192135
+170.703	-40.771	1.038192 -47.801857
+170.747	-40.4942	1.039017 -50.049477
+171.048	-40.3383	1.061780 -52.081238
+171.268	-40.1752	1.075804 -53.940830
+170.855	-40.6532	1.050864 -49.112534
+170.599	-41.4969	1.022780 -41.740959
+170.676	-41.1512	1.035057 -44.621883
+170.998	-40.4947	1.060945 -50.732250
+171.545	-40.0467	1.094044 -55.674160
+170.713	-41.0323	1.039342 -45.671654
+170.865	-40.7956	1.053427 -48.013920
+171.205	-40.2926	1.074123 -52.889957
+170.779	-40.9017	1.045722 -46.913090
+171.469	-40.1733	1.092869 -54.547768
+170.414	-42.0067	0.993450 -37.947418
+171.06	-40.626	1.069024 -49.870113
+170.747	-41.2715	1.040837 -43.776505
+171.235	-40.4326	1.080945 -51.904846
+170.461	-41.758	1.004280 -39.663567
+170.513	-41.8905	1.004524 -38.769375
+171.039	-40.7604	1.069325 -48.753185
+170.949	-40.8914	1.061904 -47.410801
+171.181	-40.5582	1.079087 -50.750267
+170.778	-41.4181	1.041349 -42.619854
+171.399	-40.3163	1.092152 -53.292000
+170.472	-42.1039	0.994731 -37.374245
+170.766	-41.5446	1.037381 -41.582672
+170.885	-41.011	1.055895 -46.224850
+170.627	-41.6431	1.021626 -40.652637
+171.231	-40.6764	1.086581 -49.952526
+170.844	-41.1463	1.051298 -44.998459
+171.432	-40.447	1.099814 -52.390530
+171.37	-40.5603	1.097554 -51.297146
+171.887	-40.0344	1.122239 -56.878468
+171.6	-40.2773	1.108614 -54.217979
+171.657	-40.1606	1.108766 -55.243275
+171.731	-40.0425	1.109528 -56.291027
+171.109	-40.8872	1.077690 -47.856415
+171.744	-40.2473	1.120984 -54.951324
+171.864	-40.1595	1.127250 -56.006138
+170.572	-42.0132	1.005180 -37.982616
+171.576	-40.395	1.111470 -53.250008
+171.22	-40.8012	1.088008 -48.895767
+172.038	-40.0695	1.137216 -57.241314
+171.036	-40.9893	1.070883 -46.764030
+171.75	-40.3534	1.126732 -54.175560
+171.423	-40.6766	1.106310 -50.510067
+171.85	-40.2758	1.132434 -55.154129
+170.786	-41.6351	1.037226 -40.891647
+172.037	-40.181	1.143966 -56.555668
+171.973	-40.2627	1.143244 -55.751427
+170.631	-41.7863	1.017714 -39.584274
+171.571	-40.5174	1.115976 -52.255825
+170.896	-41.2472	1.055926 -44.258701
+170.994	-41.0936	1.066746 -45.772141
+171.344	-40.7526	1.099941 -49.646061
+171.259	-40.9039	1.093967 -48.119453
+170.759	-41.7187	1.031910 -40.207664
+171.173	-40.9834	1.085634 -47.186649
+171.915	-40.3539	1.143274 -54.841702
+172.213	-40.0274	1.149146 -58.241589
+171.7	-40.4517	1.126392 -53.225731
+172.194	-40.1566	1.156329 -57.399788
+171.516	-40.6104	1.113930 -51.336658
+170.662	-41.9012	1.016592 -38.781895
+172.055	-40.3445	1.156876 -55.540962
+171.361	-40.8348	1.103678 -48.981289
+170.895	-41.3363	1.054638 -43.496635
+172.114	-40.2565	1.156441 -56.419312
+171.855	-40.4558	1.142876 -53.789368
+171.116	-41.0685	1.079720 -46.285267
+170.925	-41.417	1.056610 -42.869907
+170.71	-41.9913	1.017704 -38.194508
+171.65	-40.6113	1.127921 -51.738922
+172.004	-40.4302	1.157410 -54.640430
+172.179	-40.3398	1.169178 -56.171028
+171.297	-40.991	1.099440 -47.452000
+171.742	-40.5347	1.134737 -52.689701
+172.335	-40.0165	1.157554 -58.831497
+171.567	-40.6866	1.121955 -50.846664
+172.34	-40.1054	1.164380 -58.373348
+171.227	-41.0607	1.092212 -46.651642
+170.991	-41.1953	1.066121 -44.898155
+171.882	-40.5549	1.151253 -53.048683
+170.9	-41.4931	1.052422 -42.190193
+171.631	-40.7608	1.131183 -50.375237
+170.503	-42.5747	0.987315 -34.931263
+170.875	-41.6808	1.045324 -40.633221
+171.399	-40.9264	1.109703 -48.283962
+172.32	-40.1939	1.169909 -57.794598
+171.481	-40.7731	1.115250 -49.843498
+170.765	-41.8208	1.029048 -39.428947
+171.971	-40.5056	1.158485 -53.856850
+170.813	-42.5349	1.006231 -35.263840
+172.444	-40.0384	1.166808 -59.218063
+171.789	-40.6179	1.143713 -52.137848
+170.905	-41.5924	1.050804 -41.381866
+172.132	-40.4166	1.170405 -55.371288
+170.808	-41.9872	1.026969 -38.274860
+171.179	-41.1222	1.087203 -45.985699
+170.996	-41.5344	1.062562 -41.999798
+171.703	-40.6884	1.136798 -51.243454
+170.788	-41.9131	1.027850 -38.775333
+172.454	-40.1134	1.173372 -58.906609
+171.468	-40.8568	1.115775 -49.066914
+171.015	-41.4612	1.066219 -42.656387
+172.26	-40.2676	1.170849 -57.052486
+171.916	-40.6346	1.159200 -52.449280
+170.77	-42.056	1.020595 -37.794331
+170.948	-42.1768	1.029617 -37.040512
+170.87	-41.7648	1.041927 -39.959976
+170.881	-41.8498	1.039764 -39.308792
+171.005	-41.2866	1.067250 -44.140144
+171.095	-41.1511	1.077730 -45.512012
+172.423	-40.1779	1.176643 -58.419678
+171.575	-40.836	1.127097 -49.532803
+170.969	-41.6565	1.056259 -40.930424
+171.041	-41.6056	1.065938 -41.455387
+171.018	-41.3755	1.067924 -43.408321
+171.396	-41.0065	1.110666 -47.561203
+171.268	-41.1321	1.097271 -46.119568
+172.096	-40.5047	1.172912 -54.459995
+170.967	-41.7238	1.053765 -40.376717
+171.101	-41.2355	1.078500 -44.803158
+171.338	-41.0665	1.104879 -46.883999
+170.875	-42.0378	1.030782 -37.945526
+171.765	-40.7589	1.146622 -50.777992
+170.901	-41.9407	1.037726 -38.641960
+171.533	-40.9091	1.124084 -48.766941
+172.388	-40.2501	1.180506 -57.849537
+171.191	-41.1882	1.088848 -45.434597
+172.277	-40.3469	1.179406 -56.636673
+171.838	-40.6933	1.152681 -51.619347
+172.561	-40.026	1.173136 -59.826038
+171.118	-41.3234	1.080038 -44.062912
+171.389	-41.1432	1.111478 -46.305050
+172.524	-40.0857	1.175762 -59.388756
+170.957	-42.2932	1.023999 -36.370792
+171.493	-40.9832	1.121120 -48.007278
+171.694	-40.822	1.140272 -49.988361
+170.973	-41.7986	1.051373 -39.767822
+171.647	-40.8857	1.136595 -49.268192
+171.11	-41.5251	1.076139 -42.267242
+171.135	-41.6	1.077371 -41.638088
+171.207	-41.2663	1.090763 -44.775654
+171.461	-41.0635	1.118813 -47.204033
+172.014	-40.5814	1.168268 -53.365807
+171.294	-41.2073	1.100775 -45.503868
+170.885	-42.4109	1.014181 -35.805367
+171.053	-41.6838	1.064815 -40.794186
+170.987	-41.8754	1.049298 -39.167809
+172.238	-40.4053	1.180839 -56.015617
+172.497	-40.2344	1.187536 -58.581230
+171.564	-41.0277	1.130080 -47.768398
+171.14	-41.4209	1.081817 -43.253429
+171.488	-41.127	1.122603 -46.676960
+170.896	-42.488	1.012053 -35.463707
+170.859	-42.6013	1.006914 -35.028336
+170.585	-42.5535	0.992727 -35.082851
+171.402	-41.2269	1.113488 -45.578167
+171.733	-40.8712	1.146207 -49.626209
+171.312	-41.2859	1.103063 -44.833252
+170.967	-42.0596	1.037813 -37.801189
+171.116	-41.649	1.073411 -41.168449
+171.472	-41.1794	1.121336 -46.166367
+170.989	-42.1222	1.036091 -37.378662
+171.228	-41.3475	1.092963 -44.095127
+171.568	-41.0895	1.131462 -47.208405
+172.206	-40.4737	1.183424 -55.312317
+171.625	-40.9622	1.135803 -48.513210
+171.064	-41.7541	1.063242 -40.205822
+171.711	-40.9175	1.144758 -49.133728
+172.618	-40.0917	1.181721 -59.868366
+172.361	-40.3235	1.185300 -57.269363
+171.01	-41.9458	1.048146 -38.640087
+170.957	-41.9983	1.040180 -38.233208
+172.54	-40.1565	1.183035 -59.178272
+171.071	-41.8273	1.060574 -39.591213
+171.559	-41.1579	1.131201 -46.556362
+171.944	-40.6983	1.165743 -51.940304
+171.266	-41.4214	1.097186 -43.522812
+171.815	-40.8329	1.154812 -50.203640
+171.337	-41.3599	1.106087 -44.224186
+171.22	-41.4914	1.090635 -42.786209
+170.991	-42.226	1.030117 -36.730957
+171.222	-41.5746	1.088996 -42.019791
+171.083	-41.8969	1.058031 -39.031342
+171.192	-41.6442	1.082914 -41.305977
+171.531	-41.2403	1.128838 -45.751564
+170.888	-42.5499	1.009588 -35.216721
+170.958	-42.4377	1.017286 -35.668232
+172.464	-40.3035	1.192371 -58.028336
+171.155	-41.71	1.075660 -40.659531
+170.957	-42.3709	1.020214 -35.975224
+171.419	-41.3025	1.115971 -44.928844
+171.674	-41.0403	1.142961 -47.894039
+172.591	-40.2177	1.192206 -59.248146
+171.792	-40.9022	1.153795 -49.465385
+171.759	-40.9678	1.151439 -48.763004
+171.667	-41.1227	1.143209 -47.115482
+171.516	-41.3261	1.127454 -44.936756
+171.638	-41.1915	1.140686 -46.431858
+171.365	-41.427	1.109262 -43.685764
+170.642	-42.6031	0.996326 -34.910942
+171.282	-41.6413	1.094761 -41.476898
+172.127	-40.5842	1.182462 -53.895321
+171.799	-41.0343	1.156961 -48.205452
+171.642	-41.243	1.141587 -45.982040
+171.312	-41.4811	1.102180 -43.077183
+172.011	-40.6569	1.172046 -52.621689
+171.286	-41.5305	1.098323 -42.564701
+171.717	-41.1687	1.149279 -46.804489
+171.434	-41.3748	1.117789 -44.316402
+172.578	-40.2892	1.199617 -58.865540
+171.243	-41.6905	1.087391 -40.932831
+171.899	-40.7615	1.162706 -51.150410
+171.044	-42.2682	1.031322 -36.463116
+172.347	-40.3982	1.191427 -56.702332
+171.157	-41.7865	1.072092 -39.975063
+171.396	-41.4877	1.112800 -43.198990
+171.019	-42.1716	1.035563 -37.049381
+171.62	-41.3005	1.139462 -45.414581
+171.347	-41.5245	1.106248 -42.745632
+171.715	-41.2163	1.149451 -46.377567
+171.582	-41.3538	1.135412 -44.853344
+171.847	-40.9371	1.160996 -49.240959
+171.931	-40.8304	1.168781 -50.538513
+171.748	-41.0832	1.151801 -47.650654
+171.457	-41.4397	1.120762 -43.785309
+171.157	-41.8549	1.068277 -39.387634
+171.521	-41.3903	1.128404 -44.377769
+171.251	-41.7549	1.084873 -40.316994
+171.168	-41.9178	1.065440 -38.861542
+171.033	-42.0107	1.046607 -38.149815
+171.333	-41.5799	1.103554 -42.186691
+171.042	-42.339	1.027079 -36.089550
+171.708	-41.2688	1.149240 -45.899342
+171.1	-41.9629	1.055832 -38.512428
+171.233	-41.8215	1.078625 -39.690289
+172.525	-40.353	1.203178 -58.179920
+171.866	-40.9865	1.163881 -48.787956
+170.978	-42.4906	1.016092 -35.431618
+171.884	-40.8866	1.164355 -49.829758
+172.297	-40.4582	1.192234 -55.983109
+172.199	-40.5426	1.188363 -54.680180
+171.047	-42.1303	1.040433 -37.309685
+171.49	-41.5059	1.124857 -43.255417
+171.711	-41.321	1.149918 -45.450272
+171.373	-41.6462	1.107371 -41.585972
+171.768	-41.1297	1.154487 -47.261269
+171.409	-41.5435	1.114247 -42.705788
+171.654	-41.3589	1.143689 -44.982288
+171.547	-41.4478	1.131633 -43.926247
+171.984	-40.7384	1.172332 -51.671761
+171.996	-40.7834	1.175662 -51.235920
+171.021	-42.4057	1.022233 -35.780453
+171.801	-41.1847	1.158581 -46.836178
+171.832	-41.0903	1.161109 -47.738724
+171.33	-41.7079	1.098026 -40.849476
+172.018	-40.7054	1.175266 -52.150543
+171.423	-41.5991	1.115535 -42.191116
+172.438	-40.3676	1.197082 -57.487621
+171.602	-41.4011	1.137951 -44.483040
+171.113	-42.0232	1.053215 -38.044601
+171.475	-41.5651	1.122799 -42.657185
+171.786	-41.243	1.157493 -46.300777
+171.293	-41.8024	1.086687 -39.865314
+170.946	-42.5364	1.012769 -35.260738
+170.838	-42.6735	1.004933 -34.779964
+171.236	-41.8807	1.074893 -39.171532
+171.629	-41.4521	1.141440 -44.098415
+172.614	-40.3568	1.210785 -58.849182
+171.061	-42.2113	1.036175 -36.788723
+171.729	-41.3696	1.152366 -45.070667
+171.777	-41.2948	1.157018 -45.827808
+171.933	-40.9406	1.170972 -49.370258
+171.846	-41.1383	1.162977 -47.327732
+171.586	-41.5025	1.136810 -43.540443
+171.677	-41.4089	1.146743 -44.600063
+171.45	-41.6528	1.118823 -41.699669
+171.016	-42.4545	1.019579 -35.568184
+171.502	-41.6163	1.126638 -42.233219
+171.335	-41.7719	1.094192 -40.176399
+171.186	-41.9826	1.062863 -38.342583
+171.053	-42.0766	1.044361 -37.676067
+171.55	-41.564	1.132892 -42.884567
+172.022	-40.8353	1.180391 -50.738052
+172.438	-40.4241	1.203612 -57.138039
+172.277	-40.5149	1.195369 -55.400730
+172.495	-40.3969	1.205854 -57.715794
+171.774	-41.3378	1.157061 -45.452396
+171.699	-41.4552	1.149614 -44.247219
+171.419	-41.7003	1.112109 -41.058800
+171.938	-40.9939	1.171867 -48.829666
+171.504	-41.6646	1.127854 -41.755630
+172.08	-40.631	1.179369 -53.187233
+171.865	-41.2245	1.165579 -46.617893
+171.906	-41.0449	1.168676 -48.286133
+171.661	-41.5	1.145702 -43.764004
+172.054	-40.7431	1.181671 -51.894653
+171.562	-41.6151	1.135238 -42.451042
+171.92	-41.1117	1.170398 -47.689594
+171.847	-41.2737	1.164414 -46.164623
+171.339	-41.8136	1.091019 -39.749290
+171.244	-41.9372	1.071740 -38.698132
+172.089	-40.6896	1.183768 -52.616558
+171.973	-40.8828	1.175124 -50.075378
+171.746	-41.4181	1.154772 -44.688099
+171.304	-41.8503	1.084235 -39.418686
+170.522	-42.6551	0.988858 -34.577007
+171.174	-42.0368	1.058034 -37.927135
+170.669	-42.6737	0.998199 -34.652935
+171.629	-41.551	1.142677 -43.242905
+172.336	-40.4969	1.200578 -55.930584
+171.904	-41.1744	1.169040 -47.110680
+171.133	-42.0736	1.051604 -37.667355
+172.017	-40.9244	1.180591 -49.688805
+170.928	-42.5877	1.010285 -35.080666
+172.559	-40.4011	1.212421 -58.179558
+171.101	-42.1165	1.045974 -37.383499
+171.082	-42.1621	1.041127 -37.085075
+172.377	-40.4615	1.201374 -56.464691
+171.259	-41.9822	1.070035 -38.315357
+171.754	-41.4597	1.156137 -44.351696
+171.808	-41.3791	1.161450 -45.185226
+171.833	-41.3241	1.163408 -45.711815
+170.571	-42.6116	0.991696 -34.817272
+171.927	-41.2172	1.171584 -46.790882
+171.98	-41.0731	1.176149 -48.120331
+171.725	-41.4966	1.153112 -43.964172
+171.112	-42.2419	1.037870 -36.574989
+172.139	-40.7477	1.193730 -52.228867
+172.455	-40.48	1.211734 -56.869526
+172.639	-40.4143	1.221414 -58.804150
+172.151	-40.6457	1.189841 -53.401981
+171.99	-41.1114	1.177068 -47.784954
+172.083	-40.794	1.187558 -51.444023
+171.401	-41.7509	1.105188 -40.424221
+171.987	-41.0236	1.176957 -48.596455
+171.55	-41.6546	1.134622 -42.035332
+170.749	-42.6901	1.001606 -34.664257
+171.244	-42.0309	1.064943 -37.937603
+171.303	-41.9083	1.079658 -38.909855
+171.125	-42.1931	1.042276 -36.859894
+172.209	-40.6058	1.194823 -54.148590
+171.196	-42.0751	1.057252 -37.624828
+171.09	-42.3898	1.027060 -35.810570
+171.914	-41.2552	1.170830 -46.454521
+171.157	-42.1075	1.051367 -37.409966
+171.978	-41.1496	1.175967 -47.432686
+172.507	-40.4387	1.212198 -57.537182
+171.61	-41.6015	1.141244 -42.741966
+172.39	-40.5119	1.208312 -56.182232
+170.988	-42.5695	1.013391 -35.130051
+171.11	-42.2949	1.034180 -36.276085
+171.808	-41.4384	1.162044 -44.664948
+171.697	-41.5419	1.150742 -43.517971
+172.336	-40.5396	1.205079 -55.597702
+172.445	-40.535	1.216817 -56.398083
+171.791	-41.4932	1.160657 -44.159428
+171.001	-42.5282	1.015577 -35.271736
+172.179	-40.7006	1.197161 -52.971783
+172.279	-40.5743	1.201345 -54.899986
+171.307	-41.9574	1.076257 -38.498932
+171.124	-42.3459	1.031846 -35.996307
+170.685	-42.7334	0.999448 -34.441353
+171.48	-41.698	1.124064 -41.275974
+171.142	-42.1472	1.047189 -37.149925
+171.072	-42.439	1.023295 -35.601139
+170.91	-42.6426	1.008070 -34.899082
+171.887	-41.355	1.169601 -45.581951
+172.573	-40.451	1.220553 -57.991383
+171.974	-41.1949	1.175801 -47.048889
+171.257	-42.0837	1.062150 -37.518631
+172.043	-41.0536	1.182196 -48.355957
+172.505	-40.5151	1.220904 -56.967632
+171.361	-41.8421	1.090949 -39.464710
+171.749	-41.531	1.156466 -43.748528
+172.03	-41.0932	1.180721 -47.982815
+170.597	-42.6661	0.993844 -34.605022
+172.523	-40.4771	1.218538 -57.389534
+172.04	-41.1298	1.181403 -47.671734
+171.901	-41.3034	1.170203 -46.030045
+171.865	-41.4709	1.168407 -44.522175
+171.876	-41.4101	1.169266 -45.084892
+171.17	-42.2189	1.043811 -36.662518
+171.21	-42.1247	1.054496 -37.252743
+171.36	-41.886	1.086975 -39.063431
+172.389	-40.5604	1.213678 -55.805050
+172.036	-41.1755	1.180922 -47.283752
+171.394	-41.8027	1.098600 -39.824135
+171.316	-42.0052	1.073653 -38.103905
+172.051	-40.8806	1.184911 -50.278816
+172.241	-40.7126	1.207609 -53.255455
+172.342	-40.5807	1.209981 -55.276814
+172.269	-40.6242	1.204692 -54.355450
+172.305	-40.6612	1.212662 -54.225376
+172.322	-40.6174	1.210907 -54.774857
+172.217	-40.7432	1.205593 -52.758263
+171.972	-41.236	1.176028 -46.714836
+171.835	-41.516	1.165534 -44.078117
+171.054	-42.4958	1.019502 -35.373241
+171.795	-41.5428	1.161640 -43.772594
+170.9	-42.6916	1.006710 -34.751991
+171.672	-41.5904	1.148895 -43.047428
+170.806	-42.7294	1.003723 -34.589046
+170.626	-42.7151	0.996369 -34.430275
+171.165	-42.2644	1.040189 -36.400154
+171.187	-42.1744	1.048717 -36.934803
+172.235	-40.6647	1.203317 -53.723583
+171.594	-41.6419	1.140686 -42.335587
+170.685	-42.7862	1.000514 -34.217861
+172.647	-40.4695	1.231397 -58.583073
+171.313	-42.0568	1.069278 -37.691040
+170.981	-42.6225	1.011268 -34.955769
+171.968	-41.2806	1.176180 -46.347980
+170.628	-42.7659	0.997338 -34.200901
+172.383	-40.6131	1.218543 -55.273769
+172.022	-41.2146	1.179987 -46.957447
+171.359	-41.9351	1.082725 -38.646751
+171.957	-41.3306	1.175981 -45.929195
+171.74	-41.5764	1.156437 -43.373169
+172.575	-40.5009	1.227046 -57.615726
+172.292	-40.702	1.213975 -53.732155
+170.725	-42.8106	1.002937 -34.194878
+172.087	-40.8439	1.189500 -50.862053
+172.049	-41.0022	1.183375 -48.864086
+172.354	-40.651	1.217967 -54.658588
+171.171	-42.3101	1.037461 -36.143864
+172.029	-41.2534	1.180804 -46.657097
+171.707	-41.6192	1.154054 -42.945507
+171.04	-42.5487	1.016462 -35.184029
+171.883	-41.5211	1.170146 -44.140965
+170.75	-42.7653	1.002441 -34.407879
+171.932	-41.4328	1.175424 -45.037914
+171.845	-41.5486	1.166698 -43.854328
+171.359	-41.9766	1.079437 -38.309986
+171.539	-41.7016	1.135635 -41.532730
+171.943	-41.382	1.175666 -45.500374
+171.649	-41.6435	1.148123 -42.544659
+171.155	-42.3841	1.031410 -35.782810
+171.814	-41.5883	1.164041 -43.488251
+172.022	-41.3041	1.180847 -46.253426
+171.925	-41.4824	1.174581 -44.561939
+171.224	-42.203	1.049194 -36.707161
+171.123	-42.4638	1.024624 -35.460712
+171.187	-42.3545	1.035481 -35.892677
+170.866	-42.7334	1.005406 -34.626747
+171.278	-42.1222	1.060656 -37.203953
+171.303	-42.0925	1.065554 -37.416111
+170.953	-42.6756	1.008731 -34.798866
+171.035	-42.5909	1.014627 -35.043694
+171.209	-42.2394	1.045264 -36.500225
+171.134	-42.4217	1.027760 -35.632748
+171.757	-41.6217	1.159403 -43.097996
+170.778	-42.822	1.004895 -34.259682
+171.6	-41.6881	1.144291 -41.970352
+171.248	-42.163	1.054497 -36.942055
+171.717	-41.6638	1.157025 -42.663094
+171.366	-42.0072	1.077881 -38.076946
+171.228	-42.279	1.043517 -36.249882
+171.219	-42.3282	1.039294 -35.997826
+171.408	-41.8576	1.094471 -39.276516
+170.824	-42.7793	1.004907 -34.465740
+172.01	-41.3571	1.180700 -45.844833
+171.801	-41.6297	1.163407 -43.173878
+171.994	-41.405	1.180554 -45.468788
+171.509	-41.7244	1.131269 -41.114887
+171.093	-42.5343	1.019587 -35.203930
+171.66	-41.7005	1.152991 -42.172672
+171.076	-42.5689	1.017187 -35.093262
+171.035	-42.6263	1.013186 -34.928272
+171.18	-42.41	1.031083 -35.640518
+171.119	-42.5007	1.022463 -35.309746
+170.215	-39.604	0.981731 -54.939274
+170.384	-39.4788	0.990573 -56.307205
+169.843	-39.7551	0.959141 -52.793663
+170.002	-39.6474	0.968123 -54.007217
+170.39	-39.2751	0.986100 -57.757374
+170.197	-39.7555	0.983418 -53.832642
+170.173	-39.9281	0.984639 -52.558670
+169.993	-39.8321	0.970539 -52.701149
+170.107	-39.4788	0.972003 -55.482006
+170.39	-39.6759	0.995532 -54.956680
+170.413	-39.8635	1.001093 -53.721333
+174.566	-45.1619	0.595416 110.827141
+172.828	-43.6233	0.840923 131.288162
+172.899	-43.6541	0.837546 130.544754
+172.922	-43.8548	0.828320 113.842743
+172.922	-43.8182	0.837141 114.268814
+172.948	-43.878	0.813442 112.601387
+172.96	-43.8917	0.807213 112.410362
+172.891	-43.6718	0.839692 130.584717
+172.928	-43.8325	0.833856 114.229622
+172.937	-43.7699	0.844203 114.483948
+172.914	-43.773	0.843891 114.424232
+172.93	-43.7926	0.841906 114.428017
+172.67	-43.6265	0.880136 134.767532
+172.69	-43.6241	0.878295 134.701080
+172.667	-43.6412	0.881319 134.728775
+172.693	-43.6382	0.879426 134.625458
+172.777	-43.6103	0.851521 132.214127
+172.835	-43.6062	0.838684 131.302444
+172.743	-43.6137	0.861807 133.045380
+173.77	-41.2725	1.030294 -60.745758
+173.766	-41.2666	1.030086 -60.732265
+174.111	-41.3362	0.507928 -177.879944
+174.122	-41.3306	0.508787 -177.765198
+174.12	-41.3408	0.507372 -177.806427
+173.848	-41.222	0.994887 -62.714558
+173.853	-41.2251	0.997105 -62.638035
+173.855	-41.2353	1.003626 -62.172089
+173.856	-41.2465	1.007783 -62.004868
+173.863	-41.2421	1.006037 -62.147346
+174.154	-41.239	0.499207 -99.713844
+174.183	-41.2475	0.471048 -102.320221
+174.231	-41.2421	0.404856 -127.873619
+174.16	-41.2485	0.494530 -99.843079
+174.288	-41.219	0.380046 -143.327301
+174.281	-41.2249	0.383817 -141.844696
+174.268	-41.2299	0.386726 -139.104950
+174.269	-41.2401	0.391305 -136.881592
+174.264	-41.2419	0.392253 -135.590805
+174.194	-41.2659	0.480032 -101.394905
+174.182	-41.2576	0.480092 -101.285126
+174.179	-41.2501	0.477727 -101.539970
+174.165	-41.254	0.491135 -100.254242
+174.214	-41.2499	0.413090 -126.433540
+174.212	-41.2445	0.412820 -125.994926
+174.239	-41.246	0.402083 -128.638000
+174.225	-41.2321	0.406809 -127.002853
+174.222	-41.2291	0.407274 -126.916603
+174.19	-41.2443	0.450623 -106.605591
+174.201	-41.2426	0.425089 -116.811584
+173.942	-41.2615	0.518294 -99.135559
+174.282	-41.2214	0.381582 -142.168472
+174.282	-41.2185	0.380019 -142.524902
+174.262	-41.237	0.389746 -135.721436
+174.243	-41.242	0.399538 -128.636063
+174.173	-41.2488	0.485788 -100.292824
+173.952	-41.2576	0.518150 -99.133644
+173.955	-41.2616	0.517991 -99.156639
+173.97	-41.2366	0.518158 -99.104385
+173.976	-41.2426	0.517866 -99.126373
+174.019	-41.2643	0.515791 -99.280434
+174.018	-41.2497	0.515932 -99.210373
+174	-41.2325	0.516863 -99.126266
+174.254	-41.2418	0.394085 -131.480804
+174.221	-41.2427	0.409039 -127.424599
+173.799	-41.2652	1.025305 -61.052864
+173.843	-41.2533	1.011662 -61.805882
+173.829	-41.2561	1.016550 -61.531776
+173.816	-41.2561	1.020530 -61.252789
+173.835	-41.2897	1.029610 -61.024471
+173.816	-41.2875	1.028115 -61.065617
+173.801	-41.2728	1.026216 -61.073975
+173.876	-41.2408	1.006209 -62.248436
+174.011	-41.2438	0.516269 -99.177330
+174.013	-41.2395	0.516258 -99.156158
+174.016	-41.2753	0.515762 -99.315849
+174.008	-41.2687	0.515949 -99.284325
+173.991	-41.2471	0.516838 -99.158142
+173.973	-41.2299	0.518346 -99.087616
+173.966	-41.2298	0.518371 -99.083817
+174	-41.2491	0.516549 -99.182411
+174.199	-41.2702	0.480097 -101.396996
+174.253	-41.2489	0.395602 -132.205109
+174.256	-41.2522	0.395332 -132.639191
+174.223	-41.2377	0.407476 -127.224800
+174.275	-41.2232	0.382686 -141.015884
+174.134	-41.2979	0.510511 -177.699753
+174.116	-41.3258	0.508988 -177.791992
+174.125	-41.3201	0.509675 -177.745468
+174.129	-41.3109	0.510284 -177.718948
+174.135	-41.305	0.510509 -177.707596
+174.124	-41.3049	0.510353 -177.722626
+174.175	-41.2949	0.512421 -177.622162
+174.136	-41.3254	0.509959 -177.677017
+174.147	-41.3204	0.510763 -177.667206
+174.155	-41.314	0.511246 -177.660431
+174.161	-41.3098	0.511682 -177.645615
+174.169	-41.3002	0.512229 -177.627975
+174.148	-41.3253	0.510658 -177.653244
+174.163	-41.3143	0.511612 -177.644180
+173.819	-41.0038	0.886191 -74.453979
+173.813	-41.0075	0.886007 -74.465439
+173.887	-41.0909	0.918335 -72.388008
+173.876	-41.0893	0.919096 -72.312805
+173.869	-41.0969	0.919554 -72.293121
+173.876	-41.0955	0.919446 -72.320404
+173.861	-41.1221	0.943317 -70.281128
+173.858	-41.1331	0.946826 -70.178505
+173.847	-41.1437	0.952368 -69.533165
+173.837	-41.1517	0.956038 -69.222160
+173.851	-41.1572	0.958045 -69.207573
+173.848	-41.1688	0.962095 -68.726982
+173.863	-41.2079	0.983584 -64.398888
+173.861	-41.2104	0.985098 -63.994717
+173.95	-41.2087	0.931879 -30.521097
+173.962	-41.2018	0.933842 -30.571903
+173.986	-41.2041	0.941263 -30.043491
+174.031	-41.1796	0.962561 -28.381910
+173.987	-41.1972	0.942666 -30.124090
+173.952	-41.191	0.931959 -30.849886
+173.927	-41.203	0.912516 -39.075584
+173.901	-41.2064	0.968773 -58.856712
+173.888	-41.2117	0.977147 -61.299927
+173.865	-41.2125	0.986141 -64.050774
+173.867	-41.2003	0.980358 -65.762291
+173.873	-41.1988	0.981027 -66.342194
+173.879	-41.1746	0.971715 -68.625725
+173.872	-41.1726	0.969453 -68.623535
+173.898	-41.1291	0.935452 -71.824783
+173.896	-41.1204	0.931273 -71.967590
+173.903	-41.1094	0.924010 -72.544548
+173.914	-41.1063	0.920589 -72.939735
+173.996	-41.0884	0.898055 -74.979111
+174.001	-41.0925	0.898175 -74.985123
+174.036	-41.1047	0.898232 -75.028358
+174.037	-41.1015	0.898226 -75.029587
+174.032	-41.0445	0.899314 -75.066574
+174.041	-41.0402	0.899524 -75.068176
+173.975	-41.0504	0.894129 -75.141106
+173.98	-41.0395	0.893948 -75.220222
+173.896	-41.1079	0.923539 -72.338829
+173.89	-41.1132	0.926612 -72.023979
+173.89	-41.1233	0.932972 -71.680992
+173.865	-41.1309	0.944806 -70.488586
+173.848	-41.1514	0.955308 -69.388924
+173.855	-41.1606	0.960378 -69.065071
+173.857	-41.166	0.962733 -68.880920
+173.866	-41.1791	0.969997 -68.283051
+173.864	-41.203	0.980918 -65.121361
+173.857	-41.2133	0.987044 -63.719471
+173.868	-41.2058	0.983377 -64.928162
+173.875	-41.1898	0.977333 -67.769989
+173.874	-41.1777	0.971830 -68.489044
+173.861	-41.1609	0.961991 -69.100563
+173.857	-41.1488	0.955560 -69.684525
+173.882	-41.1347	0.940979 -71.325714
+173.901	-41.1161	0.928396 -72.278183
+173.916	-41.0997	0.917899 -72.976341
+173.925	-41.1038	0.918565 -73.111664
+173.96	-41.0736	0.896712 -74.833649
+173.966	-41.0718	0.896157 -74.898865
+173.966	-41.0773	0.896924 -74.896210
+173.963	-41.1246	0.899717 -74.909256
+173.97	-41.1253	0.899629 -74.920273
+173.966	-41.13	0.899678 -74.918480
+173.976	-41.1234	0.899527 -74.929741
+174.024	-41.0909	0.898159 -75.018532
+174.023	-41.0857	0.898233 -75.023094
+173.987	-41.0731	0.897201 -74.980347
+173.999	-41.0786	0.897748 -74.993019
+174.034	-41.0521	0.899116 -75.059265
+174.039	-41.0479	0.899266 -75.063126
+174.042	-41.0303	0.899928 -75.073051
+173.964	-41.0537	0.892792 -75.071846
+173.973	-41.0478	0.893633 -75.158539
+174.092	-41.0157	0.732842 -89.198601
+173.891	-40.9446	0.842063 -85.598793
+173.953	-41.0715	0.896562 -74.705872
+173.939	-41.0736	0.900402 -74.138603
+173.914	-41.0744	0.907405 -73.268517
+173.925	-41.0782	0.906643 -73.594269
+173.913	-41.0917	0.914664 -72.955574
+173.902	-41.0996	0.919290 -72.649323
+173.891	-41.1188	0.930112 -71.869133
+173.876	-41.1317	0.941817 -71.017723
+173.86	-41.1397	0.950308 -70.095856
+173.894	-41.1254	0.934035 -71.757484
+173.896	-41.1142	0.927385 -72.163490
+173.939	-41.0814	0.904134 -74.182739
+173.978	-41.0742	0.896804 -74.951706
+173.974	-41.0675	0.896030 -74.970840
+173.985	-41.0854	0.897904 -74.948761
+173.97	-41.1083	0.899425 -74.912163
+174.023	-41.0942	0.898155 -75.014503
+174.018	-41.0319	0.899709 -75.075928
+174.009	-41.0329	0.899607 -75.078140
+174.013	-41.0416	0.899179 -75.071541
+174.006	-41.052	0.898460 -75.055359
+173.994	-41.0555	0.897585 -75.054314
+173.987	-41.0636	0.896865 -75.020889
+173.966	-41.0488	0.892853 -75.141953
+173.857	-41.1558	0.958889 -69.322548
+173.866	-41.166	0.965499 -68.902328
+173.865	-41.1718	0.966753 -68.622635
+173.872	-41.1831	0.973499 -68.201653
+173.87	-41.1768	0.970247 -68.450912
+173.954	-41.1964	0.931584 -30.742674
+173.945	-41.197	0.928830 -30.891184
+174.244	-41.1868	0.507936 -99.999748
+174.237	-41.1966	0.507823 -99.966476
+173.945	-41.0525	0.887892 -75.073029
+173.949	-41.0454	0.888372 -75.266090
+173.957	-41.0577	0.892124 -74.971321
+173.936	-41.0567	0.885658 -74.960152
+173.933	-41.0522	0.883851 -75.064240
+173.957	-41.0506	0.891058 -75.120651
+173.968	-41.0591	0.894107 -75.014717
+173.961	-41.0664	0.894773 -74.878265
+174.29	-41.2126	0.376172 -143.582474
+174.282	-41.2151	0.378340 -142.722733
+174.311	-41.2096	0.372766 -148.654816
+174.203	-41.0584	0.618116 -93.474457
+174.183	-41.0447	0.618846 -93.425827
+174.103	-41.0398	0.733111 -89.259079
+174.097	-41.0304	0.733125 -89.237206
+174.033	-41.1004	0.898227 -75.026962
+174.029	-41.1007	0.898161 -75.020546
+173.986	-41.1129	0.899386 -74.945801
+173.979	-41.1145	0.899424 -74.931938
+173.982	-41.1282	0.899595 -74.938156
+173.962	-41.1425	0.899767 -74.921982
+173.96	-41.133	0.899760 -74.911316
+173.984	-41.0382	0.893988 -75.235497
+173.979	-41.0445	0.893950 -75.197067
+174.295	-41.2147	0.376672 -144.368073
+174.241	-41.2038	0.507957 -99.974136
+174.178	-41.1023	0.510822 -99.818581
+174.171	-41.1267	0.510035 -99.854401
+174.018	-41.0815	0.898122 -75.019890
+174.018	-41.089	0.898155 -75.014503
+174.009	-41.086	0.898064 -75.001717
+173.985	-41.108	0.899268 -74.944435
+173.968	-41.1187	0.899623 -74.914246
+173.98	-41.082	0.897621 -74.934662
+173.981	-41.0785	0.897343 -74.949059
+173.972	-41.0738	0.896533 -74.929848
+173.974	-41.0429	0.893492 -75.195274
+173.971	-41.0527	0.893739 -75.107941
+174.316	-41.2105	0.371886 -149.331116
+174.286	-41.215	0.377898 -143.188629
+174.25	-41.199	0.508042 -100.002228
+174.205	-41.146	0.508412 -99.927353
+174.181	-41.1327	0.509735 -99.863686
+174.178	-41.1097	0.510634 -99.827934
+174.161	-41.1252	0.510150 -99.849884
+174.156	-41.1196	0.510311 -99.842194
+174.178	-41.1446	0.509182 -99.906487
+174.19	-41.1489	0.508758 -99.927414
+174.209	-41.0502	0.618214 -93.455338
+174.194	-41.0497	0.618419 -93.447685
+173.861	-40.9547	0.844068 -85.608582
+173.861	-40.9667	0.844071 -85.632431
+173.849	-40.977	0.844498 -85.627831
+173.827	-41.1558	0.958524 -69.033554
+173.813	-41.1576	0.961941 -68.752174
+173.804	-41.1593	0.963280 -68.706566
+173.977	-41.2017	0.938650 -30.303186
+174.021	-41.1964	0.954649 -28.595707
+174.002	-41.1862	0.955467 -28.923264
+174.031	-41.1714	0.963212 -28.443495
+174.018	-41.1809	0.960180 -28.495354
+174.041	-41.1847	0.964257 -28.279547
+174.069	-41.1858	0.968274 -28.139004
+174.098	-41.1777	0.970913 -28.108589
+173.876	-41.1533	0.959627 -69.694199
+173.887	-41.1289	0.936833 -71.455589
+173.922	-41.0866	0.911337 -73.357239
+173.977	-41.0973	0.898886 -74.922043
+174.021	-41.0515	0.898894 -75.055489
+174.002	-41.065	0.897643 -75.025574
+174.215	-41.0612	0.617946 -93.490273
+174.305	-41.2118	0.374065 -146.857529
+173.774	-41.0981	0.889036 -74.598595
+173.762	-41.1088	0.889640 -74.585930
+173.781	-41.1072	0.889325 -74.611076
+173.783	-41.0907	0.888116 -74.627075
+173.769	-41.1018	0.889414 -74.587921
+173.779	-41.0956	0.888634 -74.617531
+173.783	-41.1559	0.965458 -68.618683
+173.786	-41.1615	0.965169 -68.641296
+173.783	-41.1687	0.965335 -68.658531
+173.799	-40.8267	1.173173 -73.841942
+173.805	-40.8402	1.175795 -73.824684
+173.815	-40.8536	1.177076 -73.815903
+173.806	-40.8502	1.176563 -73.814728
+173.797	-40.8434	1.176170 -73.798523
+173.83	-40.8616	1.178564 -73.784752
+173.799	-40.8349	1.175280 -73.806236
+174.108	-40.9438	0.732602 -88.125008
+174.156	-40.9511	0.705160 -88.668968
+174.079	-40.842	0.784039 -83.865837
+173.957	-40.8127	0.830014 -84.183220
+173.95	-40.8381	0.822022 -84.604836
+173.886	-40.9082	0.840889 -85.216667
+173.918	-40.9006	0.830068 -85.336327
+173.891	-41.0383	0.871323 -75.408424
+173.916	-41.0182	0.864363 -76.322113
+173.341	-40.3924	1.183301 -65.312920
+173.402	-40.4236	1.173984 -66.008675
+177.79	-39.1372	0.665340 167.765884
+177.824	-39.1227	0.667078 167.831635
+172.895	-43.602	0.831507 130.826035
+172.931	-43.5872	0.826316 130.700943
+172.951	-43.6195	0.828230 130.115143
+172.782	-43.5254	0.832705 132.263641
+172.826	-43.4945	0.826286 132.408768
+173.128	-43.7104	0.817259 124.134956
+173.159	-43.7263	0.809482 123.355553
+174.692	-41.1877	0.248104 -76.461693
+174.882	-40.9224	0.500268 -62.738346
+176.025	-41.2838	0.614903 151.475204
+176.923	-40.1515	0.619545 161.148010
+177.018	-40.0901	0.619357 161.734436
+177.11	-40.0877	0.617783 161.980057
+177.047	-40.0214	0.620321 162.104828
+172.795	-43.8819	0.804703 109.495049
+172.788	-43.904	0.801348 109.507179
+172.812	-43.8934	0.803427 109.740799
+172.74	-43.8962	0.801880 108.963226
+172.768	-43.8803	0.804421 109.194916
+172.825	-43.9074	0.801410 109.970459
+172.813	-43.9337	0.796757 109.885483
+172.853	-43.901	0.802966 110.358032
+172.856	-43.9231	0.798886 110.447510
+172.884	-43.9055	0.802809 110.817329
+172.901	-43.9294	0.797945 111.140976
+172.955	-43.9901	0.783203 111.709709
+172.976	-43.9609	0.788681 112.281937
+172.951	-43.9269	0.797945 112.061554
+172.998	-43.9315	0.794950 112.932564
+172.926	-43.9615	0.790396 111.442268
+172.952	-43.9027	0.804132 112.192787
+172.978	-43.9043	0.803196 112.725662
+173.042	-43.9278	0.792998 113.852081
+173.09	-43.9149	0.791680 115.024895
+173.013	-43.9029	0.802190 113.515396
+173.044	-43.8939	0.802755 114.347374
+173.152	-43.8682	0.793271 117.420090
+173.151	-43.8308	0.801508 118.650848
+173.07	-43.8804	0.804271 115.222702
+173.105	-43.8764	0.800493 116.199821
+173.115	-43.686	0.817968 125.440941
+173.118	-43.6577	0.812921 126.661133
+173.08	-43.6595	0.821181 127.105865
+173.076	-43.637	0.816740 128.018219
+173.034	-43.6336	0.821944 128.779129
+173.062	-43.6015	0.811995 129.153168
+172.974	-43.5976	0.822909 130.189713
+173.01	-43.6138	0.821429 129.506027
+172.79	-43.6015	0.847235 132.131073
+172.807	-43.6022	0.843432 131.763123
+172.761	-43.609	0.855252 132.512711
+172.772	-43.6033	0.851750 132.403915
+172.71	-43.6143	0.874603 134.567337
+172.724	-43.6164	0.870295 134.037720
+172.816	-43.5923	0.839105 131.587784
+172.836	-43.5882	0.835946 131.420944
+172.866	-43.5895	0.833015 131.184631
+172.888	-43.5698	0.828560 131.241028
+172.814	-43.5791	0.836687 131.673462
+173.814	-42.3881	0.650663 141.854401
+173.65	-42.4557	0.653539 141.284332
+173.631	-42.5058	0.654409 141.165710
+174.133	-41.386	0.498249 -178.645248
+174.189	-41.3889	0.476158 -177.940720
+174.089	-41.3903	0.507524 -179.241333
+174.102	-41.3682	0.505577 -178.484634
+174.105	-41.3519	0.506483 -178.085571
+173.939	-40.883	0.821550 -85.234680
+173.968	-40.862	0.815416 -84.870079
+173.869	-40.9438	0.843863 -85.577545
+173.877	-40.9294	0.843484 -85.479492
+173.854	-40.9174	0.848828 -85.321785
+173.799	-40.9441	1.152265 -73.450256
+173.812	-40.9396	1.114293 -74.303642
+173.73	-40.9805	1.228552 -72.820641
+173.747	-40.9857	1.225009 -72.916733
+173.76	-40.9659	1.219670 -72.832756
+173.786	-40.9547	1.195674 -72.885788
+173.731	-40.9541	1.225699 -72.729965
+173.695	-40.9348	1.225896 -72.525192
+173.74	-40.9287	1.221569 -72.774849
+173.637	-41.0497	1.253840 -72.448586
+173.661	-41.0638	1.255311 -72.495186
+173.534	-40.9784	1.254605 -71.535736
+173.583	-40.9903	1.250457 -71.932655
+173.337	-41.1476	1.309695 -70.947479
+173.381	-41.1305	1.301444 -71.149338
+173.066	-41.004	1.314358 -69.058540
+173.088	-41.0522	1.318612 -69.360649
+173.016	-40.7863	1.303828 -67.564362
+173.062	-40.8103	1.295374 -67.918671
+173.044	-40.8402	1.297430 -68.131676
+173.077	-40.8508	1.294318 -68.280464
+172.889	-40.7995	1.339876 -66.779678
+172.899	-40.7762	1.335906 -66.726227
+172.866	-40.7571	1.340245 -66.465111
+172.853	-40.7877	1.343844 -66.590462
+172.441	-40.5835	1.221980 -56.003551
+172.495	-40.5579	1.224328 -56.574711
+172.542	-40.538	1.226988 -57.059311
+172.125	-40.8174	1.194595 -51.367683
+172.148	-40.7891	1.196936 -51.813118
+171.997	-40.9737	1.178143 -49.119820
+172.051	-40.9582	1.183973 -49.344482
+171.77	-41.6525	1.161458 -42.932430
+171.258	-42.2317	1.049288 -36.485043
+171.272	-42.1939	1.053529 -36.697605
+173.907	-40.7313	1.033133 -76.579269
+173.894	-40.7507	1.041065 -76.630241
+173.876	-40.7736	1.043569 -76.750366
+173.903	-40.775	1.043846 -76.769730
+173.878	-40.7882	1.043796 -76.747665
+173.759	-40.9089	1.217221 -72.947868
+173.714	-40.9029	1.217090 -72.654228
+173.746	-40.8792	1.208623 -72.994896
+173.855	-41.038	0.878539 -74.806313
+173.825	-41.0356	0.882779 -74.640877
+173.81	-41.0479	0.884483 -74.664490
+173.801	-41.0615	0.885386 -74.671776
+173.792	-41.0748	0.886435 -74.668915
+174.241	-41.0159	0.618012 -93.180656
+174.22	-41.0343	0.618346 -93.396118
+174.297	-41.0626	0.518437 -99.464500
+174.34	-41.0427	0.517258 -96.771507
+174.269	-40.995	0.612018 -92.193062
+174.31	-40.9753	0.591831 -90.346588
+173.933	-41.0038	0.853620 -77.134476
+173.95	-40.9914	0.842593 -77.912033
+173.957	-40.9745	0.827154 -78.954018
+173.941	-40.9751	0.833119 -77.837898
+174.041	-40.9118	0.772996 -85.749672
+174.03	-40.9258	0.773980 -85.828575
+174.035	-40.9423	0.776864 -85.852959
+174.013	-40.9502	0.786233 -84.761826
+173.993	-40.9551	0.800746 -82.844719
+173.973	-40.9649	0.814094 -81.171860
+174.022	-40.8978	0.782741 -85.634583
+174.026	-40.8724	0.794106 -84.922562
+174.095	-40.919	0.745786 -87.113197
+174.072	-40.92	0.757535 -86.534584
+174.126	-40.9854	0.722439 -89.155327
+174.037	-40.9871	0.780572 -86.030899
+174.086	-40.9935	0.731974 -89.080223
+174.082	-41.0054	0.733073 -89.136314
+174.096	-40.98	0.729100 -89.051445
+174.121	-40.966	0.724140 -88.832069
+173.682	-41.068	1.256588 -72.483421
+173.703	-41.0638	1.258832 -72.442635
+173.728	-41.0521	1.263256 -72.318642
+173.648	-41.0815	1.256510 -72.429688
+174.273	-41.0886	0.509938 -100.312782
+174.263	-41.1023	0.508077 -100.204285
+174.341	-41.0846	0.493171 -100.438164
+174.244	-41.1469	0.507906 -100.064507
+174.223	-41.1547	0.508167 -99.984856
+174.214	-41.17	0.507860 -99.970337
+174.205	-41.1946	0.506954 -99.857529
+174.27	-41.1383	0.507583 -100.175308
+174.281	-41.1279	0.507028 -100.209534
+174.267	-41.1249	0.507303 -100.152306
+174.257	-41.161	0.508113 -100.131371
+174.26	-41.1711	0.508191 -100.122925
+174.274	-41.1726	0.508359 -100.171074
+174.292	-41.1238	0.505475 -100.331108
+174.304	-41.1194	0.501816 -100.731316
+174.332	-41.1091	0.492221 -101.215881
+174.292	-41.1505	0.507952 -100.279022
+174.317	-41.1446	0.508469 -100.353226
+174.332	-41.1531	0.508920 -100.367981
+174.35	-41.1516	0.509212 -100.391701
+174.191	-41.2034	0.506124 -99.758980
+174.178	-41.2096	0.505111 -99.672859
+174.167	-41.2173	0.504067 -99.605461
+174.153	-41.2252	0.502659 -99.633781
+174.136	-41.2252	0.504032 -99.636124
+174.121	-41.2307	0.506423 -99.614281
+174.103	-41.2319	0.509463 -99.421829
+174.087	-41.2358	0.511334 -99.357506
+174.071	-41.2381	0.513135 -99.279121
+174.051	-41.2373	0.514348 -99.222054
+174.037	-41.2521	0.515207 -99.261757
+174.221	-41.1988	0.507550 -99.907730
+174.051	-41.2245	0.514419 -99.145180
+174.064	-41.2151	0.514246 -99.116684
+174.094	-41.2154	0.510042 -99.193611
+174.13	-41.2139	0.504846 -99.481163
+174.163	-41.194	0.504823 -99.663467
+173.873	-41.2164	0.985421 -63.672874
+173.999	-41.2005	0.946682 -29.593317
+174.01	-41.1951	0.953092 -28.838737
+174.01	-41.1879	0.955988 -28.736355
+173.985	-41.2561	0.516985 -99.189209
+174.137	-41.0106	0.721051 -89.388138
+174.023	-41.0013	0.778775 -86.186172
+174.031	-40.998	0.778521 -86.156898
+174.029	-40.9557	0.783941 -85.599503
+174.034	-40.9692	0.784219 -85.877266
+174.023	-41.0409	0.899362 -75.067390
+174.031	-41.0343	0.899666 -75.073875
+174.025	-41.0245	0.900060 -75.078590
+174.285	-41.3102	0.401853 -166.765366
+174.319	-41.2141	0.370626 -149.980911
+174.322	-41.2196	0.367684 -150.409744
+174.309	-41.2304	0.369862 -152.559921
+174.328	-41.2334	0.359217 -151.427979
+174.339	-41.2142	0.362294 -148.235840
+174.385	-41.1658	0.348510 -126.965248
+174.35	-41.2576	0.342826 -154.325912
+174.355	-41.2275	0.345990 -148.182785
+174.609	-41.421	0.383574 155.403992
+174.836	-41.3444	0.459372 142.233536
+174.847	-41.3281	0.464600 142.784058
+174.856	-41.3092	0.469162 143.122040
+174.866	-41.2836	0.471617 143.240906
+174.786	-41.1114	0.338959 -68.772072
+174.811	-41.1014	0.364678 -65.100426
+174.815	-41.0857	0.379617 -64.267227
+174.648	-41.1976	0.220833 -83.005959
+174.595	-41.2073	0.193920 -98.439308
+174.811	-41.2766	0.472256 143.123062
+174.836	-41.2763	0.471896 143.150986
+173.987	-40.9414	0.796601 -82.088997
+173.983	-40.929	0.797339 -81.897537
+174.349	-40.3484	0.891333 -65.666595
+174.352	-40.4134	0.868924 -66.831970
+173.423	-41.0337	1.279993 -71.021057
+173.497	-41.0411	1.271805 -71.519463
+172.944	-43.8044	0.840324 114.490509
+172.928	-43.7984	0.840870 114.382996
+172.932	-43.8059	0.839674 114.394539
+172.927	-43.7848	0.842938 114.439453
+172.938	-43.7791	0.843634 114.485886
+172.916	-43.8328	0.834063 114.117050
+172.923	-43.8446	0.830926 114.038666
+173.034	-40.5903	1.284317 -65.027847
+173.07	-40.614	1.275692 -65.641129
+173.049	-40.535	1.256727 -64.267670
+173.093	-40.5342	1.248656 -64.690514
+173.665	-40.617	1.125777 -70.414238
+173.726	-40.6277	1.104727 -71.313133
+174.007	-40.3042	1.004889 -66.430893
+174.076	-40.3191	0.980077 -66.535347
+175.77	-42.5274	0.588639 145.676865
+175.954	-42.5533	0.583995 146.090607
+176.135	-42.577	0.579322 146.537872
+174.709	-42.6858	0.618122 141.820236
+174.858	-42.7427	0.611665 141.799835
+174.12	-42.7168	0.643910 140.469681
+174.446	-42.0415	0.627311 145.885117
+175.598	-42.7317	0.590098 144.013321
+176.008	-42.6723	0.580664 145.527756
+176.035	-42.7998	0.577962 144.606369
+174.328	-42.2399	0.634399 143.938629
+174.117	-42.83	0.645898 139.611542
+175.132	-42.7839	0.601437 142.340332
+174.979	-42.794	0.606456 141.763657
+175.001	-42.694	0.606980 142.563721
+174.722	-42.814	0.616757 140.833405
+173.981	-42.7762	0.650961 139.952805
+176.168	-42.7184	0.575824 145.688156
+174.457	-43.0177	0.629799 138.154999
+174.36	-43.1169	0.636714 136.770477
+174.875	-42.8612	0.609561 140.863098
+175.026	-42.8881	0.603092 141.139008
+175.181	-42.917	0.597516 141.459839
+178.59	-41.2953	0.557216 160.470810
+178.339	-40.7235	0.576267 162.597641
+178.674	-40.7431	0.568179 163.485428
+178.371	-41.3985	0.559686 159.307129
+177.809	-41.5439	0.568592 156.829865
+177.652	-41.7084	0.568041 155.540192
+177.86	-41.1946	0.575894 158.712204
+177.919	-41.3927	0.569831 157.920013
+178.911	-40.8896	0.559454 163.422394
+178.997	-40.6837	0.562157 164.722000
+178.141	-41.0643	0.572625 160.246765
+177.335	-42.436	0.557330 151.259338
+177.505	-42.2593	0.558015 152.576691
+178.43	-41.5992	0.553752 158.516769
+177.331	-41.1814	0.588216 157.073456
+177.583	-41.1932	0.582094 157.838150
+177.882	-42.0797	0.554252 154.550568
+177.784	-42.2734	0.551688 153.366669
+177.076	-42.5113	0.560709 150.084274
+177.481	-41.0443	0.588122 158.285965
+177.601	-40.8923	0.589108 159.447021
+177.818	-40.7607	0.587333 160.787018
+177.401	-40.8013	0.595846 159.316101
+177.61	-42.4392	0.551570 152.076004
+177.768	-40.5411	0.593806 161.750870
+177.209	-40.4657	0.607722 160.476181
+177.273	-42.6207	0.554071 150.153412
+177.306	-40.2891	0.609536 161.607849
+176.755	-40.9856	0.607099 156.169266
+176.89	-42.6185	0.561780 148.885468
+177.077	-42.6972	0.555938 149.033600
+177.394	-40.0972	0.612482 162.683029
+177.501	-40.0157	0.612847 163.378845
+177.179	-40.2582	0.612694 161.381699
+177.199	-40.3587	0.610138 160.963409
+176.792	-40.7976	0.611045 157.404221
+176.846	-40.896	0.607118 157.006119
+175.319	-41.6362	0.603852 146.557831
+178.626	-39.8611	0.590241 168.201187
+178.028	-39.8526	0.606694 166.030411
+178.034	-40.0388	0.600907 165.069687
+177.705	-39.8116	0.615606 165.014511
+177.82	-39.943	0.608720 164.801926
+177.752	-39.6963	0.618985 165.727585
+177.862	-39.7758	0.613339 165.789078
+177.614	-39.9265	0.613518 164.169800
+177.997	-39.7009	0.612538 166.749405
+178.224	-39.7156	0.605440 167.681305
+178.264	-39.4166	0.611750 170.077911
+177.662	-39.6666	0.622772 165.494278
+177.632	-39.7301	0.620399 165.086136
+178.191	-39.5348	0.611897 168.812546
+178.365	-39.5531	0.605358 169.395813
+177.872	-39.672	0.617029 166.373199
+177.935	-39.5999	0.618277 167.078171
+178.068	-39.5915	0.614311 167.770340
+178.08	-39.4907	0.617526 168.589447
+178.151	-39.4458	0.615769 169.368912
+177.712	-39.6252	0.623671 165.914734
+177.807	-39.5981	0.622244 166.483887
+178.146	-39.3736	0.617368 170.006104
+178.068	-39.3534	0.621785 169.816727
+178.079	-39.4159	0.619883 169.262527
+178.021	-39.3875	0.623654 169.230957
+178.002	-39.4445	0.622556 168.574921
+177.787	-39.5258	0.627286 166.802948
+177.879	-39.5215	0.623998 167.299393
+177.882	-39.4554	0.627868 167.783569
+177.934	-39.4326	0.626575 168.287994
+178.752	-39.6878	0.590856 169.605988
+178.89	-39.8688	0.583068 168.874298
+179.03	-40.059	0.575274 168.162491
+178.495	-39.7049	0.597738 168.798157
+178.738	-40.0464	0.582876 167.432281
+179.329	-40.0286	0.568598 169.126617
+178.857	-40.2771	0.574636 166.500626
+179.226	-40.2511	0.566357 167.640060
+178.529	-40.1949	0.584528 165.969696
+178.79	-40.5241	0.570582 164.976868
+179.094	-40.4713	0.564666 166.112396
+179.442	-40.4668	0.556834 167.067627
+178.267	-40.1196	0.592928 165.491730
+178.469	-40.0001	0.590950 166.874069
+177.65	-40.064	0.608548 163.643982
+174.701	-42.002	0.613546 146.244141
+174.357	-42.3466	0.633021 143.246857
+176.214	-42.0639	0.588605 149.044754
+173.917	-42.3707	0.648184 142.111221
+174.02	-42.3429	0.645487 142.469513
+173.989	-42.6672	0.648373 140.671112
+174.357	-42.4661	0.633034 142.468826
+175.036	-42.1218	0.606790 145.732208
+176.343	-42.5398	0.575389 147.455872
+176.517	-42.4616	0.573509 148.437592
+176.955	-42.3606	0.566837 150.366821
+176.912	-41.9253	0.578313 152.088776
+173.971	-43.0354	0.659188 137.644989
+174.117	-42.9509	0.648344 138.537231
+173.738	-42.7687	0.660357 140.050903
+173.878	-43.3098	0.677076 134.217300
+174.02	-43.2789	0.664849 134.483246
+173.953	-42.8991	0.655735 138.964172
+173.692	-42.565	0.654786 141.025879
+174.262	-42.7677	0.638150 140.260300
+174.407	-42.703	0.631229 140.988922
+175.445	-42.5163	0.596310 144.809692
+175.596	-42.5902	0.591838 144.849121
+175.746	-42.3715	0.591555 146.330353
+174.394	-43.5118	0.642136 130.422150
+174.407	-43.6307	0.643226 128.367249
+175.602	-42.8672	0.588845 143.043304
+175.758	-42.9423	0.584629 142.640671
+174.275	-44.1705	0.647852 119.198914
+174.266	-44.3177	0.643345 117.180809
+178.239	-39.9333	0.598767 166.421188
+178.412	-39.8452	0.596516 167.621948
+177.811	-40.3288	0.598102 162.928680
+178.04	-40.2297	0.595431 164.145416
+178.42	-41.0197	0.567432 161.323013
+178.475	-40.8679	0.569766 162.252258
+179.248	-40.6315	0.557674 165.681427
+173.055	-37.0911	1.056188 -73.700951
+173.247	-37.0602	1.063127 -73.950523
+170.855	-39.1069	1.011110 -60.255188
+170.868	-39.2382	1.015983 -59.383453
+172.027	-38.7865	1.068173 -65.423004
+172.244	-38.8027	1.080658 -65.854424
+172.13	-38.5345	1.062116 -66.936203
+172.199	-38.3772	1.058859 -67.794754
+173.021	-38.0727	1.083457 -70.583870
+173.124	-38.1979	1.092160 -70.400383
+173.518	-38.1027	1.102917 -71.370712
+173.646	-37.9906	1.103141 -71.862831
+173.598	-37.8465	1.096671 -72.143311
+173.789	-37.8788	1.103754 -72.347267
+173.73	-37.7333	1.097265 -72.600929
+173.869	-37.7689	1.102512 -72.711388
+173.668	-36.9789	1.076232 -74.450302
+173.836	-36.9267	1.080501 -74.678841
+173.906	-37.483	1.095206 -73.410797
+173.468	-37.9585	1.096028 -71.657295
+172.436	-37.8288	1.050095 -70.404976
+172.379	-38.0015	1.053317 -69.664810
+173.311	-37.901	1.088532 -71.568047
+173.434	-37.824	1.090395 -71.959694
+173.356	-37.3749	1.074595 -73.111542
+173.321	-37.5471	1.078060 -72.580727
+173.402	-37.2014	1.072002 -73.655731
+173.532	-37.3191	1.079338 -73.443985
+173.521	-36.8529	1.069079 -74.726738
+173.606	-36.7195	1.069756 -75.148727
+173.121	-36.7617	1.052325 -74.818520
+172.891	-37.0127	1.047415 -73.830162
+173.087	-36.9368	1.054180 -74.223854
+173.302	-36.8854	1.061772 -74.514915
+173.088	-37.5579	1.069498 -72.259659
+173.184	-37.4247	1.069538 -72.784355
+172.788	-38.0885	1.074497 -70.108330
+172.86	-37.9256	1.071839 -70.762756
+172.121	-38.6764	1.068075 -66.219162
+172.287	-38.6404	1.074855 -66.785522
+171.663	-38.1279	1.022397 -67.861313
+171.688	-38.3108	1.030281 -67.075684
+172.739	-37.3332	1.048763 -72.588715
+173.825	-37.2366	1.086430 -73.924866
+173.949	-37.1806	1.088693 -74.159500
+174.13	-37.2134	1.096065 -74.249268
+174.184	-37.1836	1.098133 -74.370735
+173.881	-36.7994	1.079888 -75.038750
+173.978	-36.7591	1.083167 -75.193466
+174.191	-37.382	1.102974 -73.949783
+174.246	-37.4337	1.106933 -73.909630
+174.043	-37.6558	1.104282 -73.185509
+174.142	-37.661	1.108552 -73.306152
+173.423	-38.2265	1.104428 -70.881264
+173.577	-38.2316	1.110822 -71.136230
+173.944	-37.8353	1.107065 -72.675247
+173.935	-37.9348	1.110770 -72.443466
+174.005	-37.5719	1.100703 -73.318405
+174.052	-37.4977	1.100288 -73.535233
+173.985	-37.7408	1.105089 -72.934212
+174.04	-37.8023	1.109362 -72.884171
+173.813	-38.0165	1.109813 -72.069527
+173.853	-38.1205	1.116871 -71.891129
+172.39	-39.0023	1.099573 -65.102287
+172.4	-38.8892	1.093566 -65.768860
+171.661	-38.969	1.055683 -63.439560
+171.717	-38.8341	1.053023 -64.379852
+171.21	-38.5641	1.013949 -64.729942
+171.734	-38.4936	1.039696 -66.282143
+171.946	-38.3919	1.046705 -67.208588
+172.843	-37.5246	1.058576 -72.051666
+172.989	-37.3862	1.060803 -72.686768
+173.835	-37.0747	1.083292 -74.316437
+173.985	-37.0814	1.087796 -74.410927
+173.847	-36.6857	1.077221 -75.337570
+173.931	-36.7182	1.080732 -75.285988
+173.839	-36.5801	1.075579 -75.632751
+174.125	-37.5778	1.104967 -73.450104
+174.23	-37.5545	1.109467 -73.637070
+172.122	-38.943	1.081139 -64.814445
+172.282	-38.9429	1.090003 -65.187485
+172.566	-38.1197	1.066050 -69.583099
+172.717	-38.2092	1.075968 -69.567169
+172.303	-38.5028	1.069231 -67.469086
+172.424	-38.3945	1.070203 -68.213203
+172.618	-37.958	1.062658 -70.247124
+172.674	-37.7934	1.059611 -70.903641
+172.101	-38.038	1.041346 -69.021507
+172.227	-37.874	1.041791 -69.887207
+171.882	-38.1787	1.035425 -68.035622
+172.092	-38.2378	1.048146 -68.178085
+173.889	-37.3486	1.091052 -73.715431
+173.95	-37.2796	1.091092 -73.932556
+173.946	-36.8923	1.083504 -74.832489
+173.948	-36.9825	1.084936 -74.611580
+173.72	-36.5207	1.070488 -75.765144
+173.712	-36.8317	1.075009 -74.871002
+173.753	-36.7328	1.074786 -75.169098
+173.448	-36.44	1.060211 -75.949211
+173.368	-36.545	1.058697 -75.613823
+178.008	-39.2321	0.625979 170.807632
+178.048	-39.3033	0.623659 170.222626
+178.112	-39.3069	0.619809 170.461395
+177.527	-39.6063	0.630395 165.206757
+177.561	-39.4894	0.637491 165.868713
+177.597	-39.5492	0.632306 165.771896
+177.669	-39.4506	0.637136 166.557007
+177.644	-39.495	0.634667 166.235260
+177.816	-39.4743	0.629654 167.267090
+177.835	-39.4296	0.631984 167.671402
+177.938	-39.4755	0.624069 167.955063
+177.986	-39.5208	0.619967 167.859024
+179.552	-40.2025	0.559769 168.758926
+177.61	-40.2283	0.604958 162.757446
+177.825	-40.1399	0.602684 163.856766
+177.338	-39.6193	0.634330 164.395676
+177.378	-39.6805	0.629278 164.309738
+177.385	-39.5702	0.636577 164.777008
+177.427	-39.6219	0.631963 164.732712
+177.456	-39.5719	0.634586 165.061951
+177.508	-39.5356	0.635684 165.433197
+174.346	-40.877	0.633959 -82.447876
+174.376	-40.918	0.589603 -84.481537
+174.415	-40.9951	0.509486 -89.541168
+174.481	-40.9904	0.479402 -86.466087
+174.529	-41.1007	0.343675 -95.327553
+174.518	-40.9455	0.505730 -81.344368
+174.556	-40.9012	0.533336 -77.121735
+174.51	-41.1437	0.300876 -104.847755
+174.552	-41.1759	0.245937 -103.875771
+174.485	-41.2957	0.233670 -163.219971
+174.347	-41.409	0.411190 178.041870
+174.409	-41.3837	0.364774 178.567352
+174.463	-41.473	0.431603 165.281174
+174.525	-41.5131	0.460646 159.441772
+174.47	-41.2384	0.241970 -139.127487
+174.492	-41.1885	0.260848 -118.618523
+174.424	-41.0834	0.425007 -101.367569
+174.401	-41.1765	0.330867 -127.891991
+174.43	-41.1999	0.296007 -130.985077
+174.405	-41.1483	0.355068 -120.441818
+174.448	-41.1571	0.319670 -116.749413
+174.397	-41.2335	0.309130 -144.712036
+174.412	-41.2766	0.291497 -155.929535
+174.31	-41.2794	0.378128 -160.875992
+174.352	-41.3009	0.348505 -163.813644
+174.289	-41.4235	0.442518 178.376144
+174.299	-41.3853	0.420044 -177.646362
+174.378	-41.0731	0.474188 -99.517944
+174.395	-41.0391	0.486129 -94.917313
+174.585	-40.9481	0.485266 -78.055824
+174.62	-40.9059	0.516467 -74.395187
+174.702	-41.1235	0.309212 -76.079254
+174.7	-41.1536	0.281247 -76.193016
+174.568	-41.1336	0.294404 -94.416321
+174.536	-41.2184	0.201787 -120.120316
+174.578	-41.2477	0.139185 -122.551704
+174.607	-41.1669	0.249800 -91.146912
+174.847	-40.8708	0.539165 -62.773872
+174.844	-40.9198	0.499465 -63.899235
+174.927	-40.9251	0.508979 -61.078239
+174.939	-40.8929	0.534217 -60.817577
+174.823	-40.8424	0.560914 -63.694878
+174.259	-40.5935	0.827879 -72.098846
+174.294	-40.5362	0.839333 -70.121170
+174.471	-41.4159	0.377250 169.439499
+174.535	-41.4507	0.406061 161.386124
+174.477	-41.3569	0.305121 178.026031
+174.773	-41.3769	0.444320 143.719681
+174.732	-41.3872	0.424960 145.305099
+174.436	-41.6066	0.528753 159.481873
+174.514	-41.5816	0.505733 157.808121
+174.585	-41.6214	0.525204 154.413681
+174.665	-41.6596	0.544560 151.723831
+174.802	-41.5235	0.521009 147.890060
+174.778	-41.4036	0.456637 144.752441
+174.776	-41.3606	0.441193 142.992966
+174.796	-41.3632	0.450295 142.774078
+174.805	-41.383	0.459384 143.295242
+174.824	-41.4094	0.478729 143.780716
+174.823	-41.3636	0.458450 142.431717
+174.84	-41.3849	0.469182 142.550766
+174.885	-41.2578	0.472352 143.281723
+174.827	-41.2611	0.472080 143.167725
+174.856	-41.2564	0.472127 143.225006
+174.992	-41.4334	0.543607 144.851959
+175.166	-41.4636	0.559190 144.205399
+174.621	-41.9305	0.613198 146.994614
+174.869	-41.809	0.594825 147.319290
+174.852	-41.7293	0.581067 147.966080
+174.958	-41.7563	0.588674 147.088745
+174.755	-41.6967	0.566440 149.497681
+174.683	-41.4653	0.448924 150.871887
+174.737	-41.4293	0.450422 147.275238
+174.763	-41.4734	0.486131 147.870682
+174.798	-41.4379	0.484151 145.658722
+174.859	-41.4376	0.508214 144.435059
+174.987	-41.4718	0.545759 145.209229
+174.928	-41.4997	0.541348 145.836151
+174.668	-41.593	0.518301 152.053528
+174.648	-42.0946	0.618413 145.562149
+174.503	-41.9492	0.621084 146.972107
+174.575	-42.0178	0.619752 146.149414
+174.866	-42.6067	0.612558 142.776718
+174.893	-42.391	0.612557 144.130798
+175.053	-42.3973	0.607563 144.438965
+174.465	-42.27	0.628261 144.039749
+174.571	-42.1834	0.623029 144.856705
+174.391	-42.5871	0.631709 141.765854
+174.55	-42.6352	0.624963 141.790924
+174.502	-42.39	0.627096 143.290726
+174.528	-42.5118	0.626002 142.567566
+174.423	-42.1532	0.629620 144.850449
+174.532	-42.0981	0.623662 145.447144
+175.155	-42.1716	0.604715 145.684235
+173.457	-43.3434	0.721711 133.408890
+173.545	-43.2879	0.706955 134.453278
+173.557	-42.8404	0.673378 139.792969
+173.658	-42.8442	0.668040 139.598907
+173.711	-42.4802	0.653261 141.295120
+173.635	-42.6319	0.657421 140.826920
+173.672	-42.6953	0.659317 140.526672
+173.567	-42.6335	0.658672 140.875168
+173.581	-42.6887	0.661433 140.658478
+174.003	-42.2079	0.648145 143.223633
+174.112	-42.1879	0.644438 143.714951
+174.204	-42.2137	0.640079 143.780518
+173.9	-42.2672	0.649291 142.567093
+173.994	-42.2599	0.647080 142.851532
+174.052	-42.2198	0.646116 143.285110
+174.107	-42.2701	0.643372 143.099289
+173.862	-42.3208	0.649599 142.238342
+173.94	-42.3108	0.647902 142.444031
+173.886	-42.4516	0.649274 141.673706
+174.637	-42.3018	0.621350 144.158325
+174.257	-42.6563	0.637573 141.057541
+174.263	-42.8838	0.639377 139.291306
+174.276	-43.0078	0.640283 138.066528
+173.976	-42.414	0.646625 142.014816
+174.064	-42.425	0.643901 142.125793
+173.989	-42.4812	0.646508 141.692307
+173.787	-42.4536	0.651666 141.517044
+173.802	-42.5271	0.652006 141.224777
+173.707	-42.634	0.656142 140.784317
+173.77	-42.6727	0.655721 140.583755
+173.865	-42.7223	0.654063 140.293686
+173.706	-43.0224	0.675890 137.875427
+174.724	-42.1864	0.616952 145.044113
+174.812	-42.2871	0.614831 144.566864
+174.789	-42.0811	0.612777 145.742508
+174.899	-42.1759	0.611075 145.312851
+174.286	-42.1494	0.636521 144.569580
+174.347	-42.0852	0.633242 145.338730
+174.564	-42.8997	0.623892 139.651413
+174.75	-42.9416	0.614236 139.675720
+174.164	-43.2399	0.652907 134.948502
+174.286	-43.2031	0.643306 135.479904
+174.961	-42.4967	0.609955 143.692032
+175.591	-42.3115	0.595526 146.130356
+175.6	-42.4495	0.593549 145.563217
+176.2	-42.8517	0.572517 144.580170
+177.017	-42.0662	0.572687 151.854889
+175.447	-42.2464	0.599035 145.999557
+175.727	-42.2274	0.594165 146.839493
+176.335	-42.1267	0.584892 149.219360
+176.337	-42.2464	0.582101 148.745224
+176.193	-42.1745	0.586487 148.538803
+176.183	-42.3015	0.583939 148.005844
+176.861	-42.2159	0.572256 150.676117
+176.723	-41.8989	0.582889 151.530273
+176.762	-42.0582	0.578111 151.002670
+175.001	-41.6145	0.569420 146.390579
+174.907	-41.6039	0.558746 147.172852
+174.935	-41.674	0.574757 147.210754
+174.82	-41.5861	0.543393 148.212906
+174.838	-41.6514	0.562338 148.264404
+174.74	-41.5611	0.519182 149.721954
+174.75	-41.6246	0.542893 149.842239
+175.339	-41.6194	0.605577 146.690430
+175.32	-41.7617	0.601280 146.786179
+175.29	-41.8165	0.600679 146.725815
+175.365	-41.8102	0.601840 146.925690
+175.553	-41.5503	0.610474 148.275360
+174.836	-41.9854	0.608148 146.330307
+174.929	-42.0572	0.608038 145.950058
+176.065	-41.259	0.615067 151.825424
+176.345	-42.3811	0.578903 148.215881
+175.304	-42.8462	0.595686 142.436981
+175.447	-42.7888	0.593069 143.243713
+175.747	-42.808	0.585627 143.823593
+175.883	-42.7467	0.582735 144.633423
+175.29	-42.7167	0.597870 143.271545
+175.442	-42.653	0.594781 144.074188
+175.149	-42.2854	0.605148 145.182266
+175.285	-42.2142	0.602233 145.753433
+174.689	-42.5586	0.619514 142.643997
+174.803	-42.4777	0.615486 143.427628
+175.146	-42.6468	0.602890 143.288437
+175.293	-42.5828	0.599374 144.054718
+175.021	-42.5917	0.607352 143.281036
+175.139	-42.5085	0.604369 144.057312
+176.503	-42.3132	0.577280 149.033691
+177.009	-41.5477	0.586069 154.106079
+176.001	-41.2127	0.618493 151.772583
+175.58	-41.5208	0.610962 148.530426
+176.069	-41.2217	0.616444 152.069778
+176.025	-41.2132	0.617909 151.899200
+176.119	-41.209	0.615675 152.385269
+176.161	-41.1411	0.617030 152.996414
+176.165	-41.1868	0.615276 152.717377
+176.035	-41.3275	0.612961 151.298752
+176.163	-41.232	0.613740 152.444595
+176.571	-41.1416	0.607190 154.550369
+176.668	-41.0718	0.606905 155.327591
+176.091	-41.2943	0.613136 151.762665
+176.095	-41.3492	0.611054 151.477539
+176.172	-41.386	0.608305 151.620850
+176.201	-40.963	0.621906 154.233047
+176.24	-40.9882	0.620211 154.232330
+176.266	-40.8944	0.622991 154.984497
+176.299	-40.7933	0.624316 155.842392
+176.333	-40.7767	0.623797 156.041336
+176.316	-40.75	0.624611 156.144714
+176.363	-40.7366	0.623915 156.358261
+176.331	-40.8181	0.623023 155.765884
+176.109	-41.248	0.614461 152.112091
+175.978	-41.315	0.614393 151.065414
+176.292	-41.0325	0.617242 154.141510
+176.698	-40.8888	0.611172 156.544388
+177.117	-41.2435	0.591688 156.018143
+176.376	-40.7711	0.622898 156.200760
+176.625	-40.7228	0.617552 157.298706
+176.63	-40.6529	0.619306 157.724945
+176.702	-40.6143	0.618202 158.236969
+176.301	-40.8587	0.622939 155.382568
+176.634	-40.9837	0.610239 155.710526
+176.295	-40.9283	0.620996 154.842529
+176.296	-40.9698	0.619429 154.558533
+176.343	-40.9409	0.619276 154.918045
+176.363	-40.7961	0.622670 156.007339
+176.416	-40.6452	0.624558 157.033295
+176.442	-40.6731	0.623444 156.970963
+176.911	-40.2048	0.618182 160.846069
+176.976	-40.2025	0.617468 161.057693
+177.274	-40.1748	0.612752 162.017761
+176.457	-41.0107	0.613864 154.837173
+176.469	-41.1013	0.610765 154.370117
+176.605	-40.8494	0.614768 156.465240
+176.582	-40.9173	0.613532 155.938232
+177.027	-41.398	0.589669 154.898636
+177.238	-41.3598	0.585919 155.840912
+177.455	-41.3511	0.581196 156.625885
+177.535	-39.7287	0.622819 164.715759
+177.543	-39.8147	0.618870 164.402542
+177.102	-39.7028	0.632004 163.146881
+177.145	-39.7296	0.630267 163.257660
+177.249	-39.7911	0.625518 163.432800
+177.316	-39.7415	0.627021 163.847870
+177.106	-39.8388	0.624942 162.842270
+176.723	-40.2654	0.618010 160.218079
+176.764	-40.2588	0.617880 160.298462
+176.79	-40.2932	0.617334 160.241852
+176.853	-40.2804	0.616918 160.396652
+176.734	-40.4887	0.618737 159.285934
+176.723	-40.398	0.618324 159.804565
+176.764	-40.3346	0.617345 160.080414
+176.817	-40.3338	0.616551 160.161392
+176.504	-40.6512	0.622545 157.304382
+176.69	-40.555	0.619756 158.613358
+176.757	-40.4234	0.617526 159.750626
+176.801	-40.4507	0.616468 159.700455
+176.77	-40.374	0.617107 159.961761
+176.83	-40.3957	0.615912 159.981598
+176.9	-40.3339	0.615449 160.303467
+176.916	-40.2564	0.616780 160.630554
+176.987	-40.2861	0.615197 160.679413
+176.983	-40.1388	0.618870 161.398468
+177.048	-40.153	0.617426 161.509003
+177.355	-39.9885	0.616367 163.027054
+177.427	-39.836	0.620384 163.882843
+177.467	-39.9099	0.616903 163.727493
+177.424	-40.2078	0.609164 162.291702
+177.518	-40.1217	0.609517 162.950424
+177.447	-40.3289	0.605841 161.817459
+177.598	-40.4006	0.600952 161.926254
+177.573	-40.695	0.594422 160.374374
+176.42	-40.7502	0.622272 156.462891
+176.408	-40.7097	0.623395 156.657074
+176.446	-40.7137	0.622410 156.758255
+176.492	-40.699	0.621657 156.991043
+176.557	-40.6819	0.620401 157.308670
+176.657	-40.5136	0.621621 158.812210
+176.784	-40.5657	0.616538 158.889236
+176.826	-40.4967	0.615705 159.504410
+176.774	-40.6498	0.615252 158.274673
+176.852	-40.7075	0.611729 158.164322
+176.855	-40.4488	0.615170 159.815567
+177.084	-40.3219	0.613054 160.790405
+177.096	-40.417	0.611022 160.411774
+176.93	-40.0208	0.622070 161.868256
+176.972	-40.0453	0.621078 161.839279
+177.029	-39.9657	0.621783 162.273163
+177.048	-39.924	0.622563 162.454483
+177.18	-39.7747	0.627315 163.256668
+177.174	-39.8305	0.624644 163.065994
+177.134	-39.6856	0.633348 163.314102
+177.184	-39.6795	0.633325 163.556030
+177.322	-40.4005	0.606726 161.121887
+177.342	-40.5153	0.603777 160.598129
+177.352	-40.6545	0.600389 159.927368
+177.442	-40.4372	0.603402 161.282791
+177.509	-40.5394	0.599538 160.963638
+177.091	-39.964	0.621107 162.426514
+177.115	-39.9119	0.622294 162.656082
+177.129	-39.8696	0.623554 162.819244
+177.186	-39.8909	0.622045 162.904449
+177.169	-39.9526	0.620324 162.656342
+177.137	-40.0153	0.619073 162.346512
+177.229	-40.0036	0.618059 162.610199
+177.259	-39.9299	0.619753 162.970810
+177.352	-39.8886	0.619725 163.407547
+177.189	-40.0591	0.617181 162.292542
+177.273	-40.0722	0.615402 162.450699
+176.575	-40.5406	0.623936 158.215820
+176.606	-40.5195	0.623643 158.505508
+176.571	-40.5789	0.622935 157.971771
+176.567	-40.6277	0.621726 157.661926
+176.622	-40.5509	0.622256 158.360168
+176.63	-40.5971	0.620768 158.079987
+176.404	-40.7937	0.621704 156.151199
+176.475	-40.7866	0.619997 156.422684
+176.472	-40.7373	0.621248 156.706223
+176.53	-40.7368	0.619750 156.900101
+177.699	-41.3673	0.575255 157.335007
+177.149	-41.6476	0.580504 154.136795
+176.795	-41.0871	0.603408 155.739700
+176.955	-41.6767	0.583856 153.321716
+177.03	-41.8011	0.579062 153.035370
+177.071	-42.2311	0.567560 151.322510
+177.141	-42.3594	0.563078 150.985519
+177.386	-42.0975	0.564322 152.916412
+178.228	-41.7724	0.554115 157.059509
+177.927	-41.735	0.561489 156.288757
+178.033	-41.933	0.554546 155.693634
+178.129	-41.3016	0.567365 159.030853
+178.375	-41.2021	0.564165 160.283524
+177.396	-41.6807	0.574258 154.829468
+177.551	-41.5253	0.574719 156.090454
+177.229	-41.8224	0.574350 153.615189
+177.47	-41.8959	0.567398 154.082092
+178.603	-41.1267	0.560872 161.333755
+178.651	-40.9508	0.563865 162.352646
+178.036	-40.426	0.590482 163.176498
+178.05	-40.6343	0.585044 162.165558
+178.829	-41.073	0.557108 162.264297
+178.532	-40.5801	0.575286 163.917114
+178.549	-40.4005	0.579163 164.928131
+178.081	-40.8413	0.579341 161.196014
+178.291	-40.9025	0.573084 161.525528
+178.761	-41.2131	0.555391 161.373550
+178.591	-41.4556	0.553486 159.691605
+178.287	-40.3149	0.587434 164.544022
+178.299	-40.512	0.582288 163.569641
+177.085	-41.9212	0.574860 152.697678
+177.232	-41.986	0.570262 152.905640
+173.5	-44.4976	0.681577 110.961708
+173.831	-44.5512	0.658977 112.380562
+173.947	-44.6823	0.645520 111.739273
+174.718	-44.83	0.600835 114.016518
+173.399	-44.2614	0.708295 112.762672
+173.435	-44.403	0.693019 111.476700
+173.592	-43.22	0.697023 135.516159
+173.665	-43.2681	0.692180 134.932693
+173.749	-43.3287	0.687978 134.110153
+173.826	-43.4009	0.685719 132.912140
+173.632	-43.3472	0.700075 133.649155
+173.705	-43.4105	0.696911 132.690292
+174.268	-44.0386	0.652297 121.156120
+174.397	-43.989	0.643553 122.373344
+173.87	-44.3537	0.668059 114.719849
+173.962	-44.2726	0.666203 116.236198
+173.909	-44.4506	0.660022 113.843765
+174.024	-44.5223	0.649328 113.679199
+174.231	-44.4685	0.639459 115.254631
+173.505	-44.257	0.700874 113.596939
+173.635	-44.2491	0.691932 114.571968
+173.683	-44.6619	0.660378 110.531570
+173.687	-44.0686	0.701661 117.507263
+173.556	-43.9919	0.720350 118.091576
+173.595	-44.0427	0.712278 117.384567
+173.488	-44.6046	0.674456 109.890862
+173.347	-44.3262	0.705387 111.640167
+173.448	-44.3169	0.699620 112.483795
+173.553	-44.3319	0.691243 113.045021
+173.553	-44.1832	0.703784 114.881302
+173.581	-44.105	0.708310 116.215958
+173.683	-44.1589	0.695124 116.088791
+173.301	-44.258	0.715749 112.047127
+173.355	-44.2114	0.716971 113.050110
+173.992	-44.8768	0.633588 110.298637
+169.856	-40.7017	0.968874 -46.374199
+170.077	-40.7	0.985509 -46.866722
+169.769	-39.911	0.956165 -51.525768
+169.982	-39.9992	0.972085 -51.525398
+169.983	-40.5604	0.977944 -47.643627
+169.62	-40.2218	0.949270 -49.048519
+169.672	-40.3857	0.954205 -48.095890
+176.057	-42.9325	0.575565 143.322632
+176.081	-43.0641	0.573331 141.721481
+176.527	-42.7739	0.565636 146.482437
+172.932	-43.8653	0.823109 113.538422
+172.826	-43.5658	0.833774 131.692490
+172.851	-43.5647	0.831494 131.542831
+172.781	-43.5576	0.835509 132.001434
+172.805	-43.5575	0.834245 131.887466
+172.826	-43.5394	0.830737 131.935852
+172.868	-43.5341	0.826415 131.769073
+174.854	-41.0813	0.429540 -60.913784
+174.846	-41.0744	0.429561 -61.128841
+174.845	-41.084	0.425460 -60.584515
+174.859	-41.0886	0.428612 -60.525883
+174.841	-41.1211	0.431375 -60.162037
+174.833	-41.0786	0.388552 -63.692799
+170.124	-42.4285	0.965000 -35.371132
+170.238	-42.48	0.971434 -35.180801
+170.24	-42.3736	0.973062 -35.739056
+170.147	-42.3001	0.968519 -36.083305
+170.298	-42.2592	0.978961 -36.398983
+170.306	-42.4224	0.976483 -35.526218
+170.388	-42.4328	0.981516 -35.525871
+170.343	-42.3578	0.979824 -35.886875
+170.412	-42.2962	0.985471 -36.253712
+170.344	-42.1249	0.985288 -37.192406
+170.427	-42.2031	0.988833 -36.778694
+170.422	-42.3675	0.984649 -35.879822
+170.489	-42.4148	0.988000 -35.672977
+170.538	-42.4956	0.990032 -35.312237
+170.325	-42.4762	0.977050 -35.267250
+170.316	-42.5504	0.975929 -34.896885
+170.519	-42.2617	0.993496 -36.491112
+170.52	-42.1739	0.996160 -36.984585
+170.479	-42.338	0.988978 -36.064003
+170.585	-42.4339	0.994107 -35.634560
+170.65	-42.3773	0.999838 -35.939106
+170.615	-42.1874	1.002741 -36.942463
+170.704	-42.2293	1.008373 -36.736938
+170.569	-42.1135	1.001666 -37.358395
+170.667	-42.0904	1.010338 -37.536816
+170.731	-42.3193	1.007238 -36.254971
+170.788	-42.2492	1.014042 -36.638916
+170.605	-42.4972	0.994594 -35.346352
+170.67	-42.4696	0.999277 -35.502617
+170.736	-42.4121	1.004906 -35.792458
+170.809	-42.3744	1.010856 -35.985535
+170.768	-42.1762	1.015443 -37.055195
+170.859	-42.1908	1.021934 -36.969471
+170.869	-42.27	1.019087 -36.517040
+170.924	-42.2322	1.024814 -36.717827
+170.699	-42.1597	1.010511 -37.136387
+170.744	-42.1184	1.015841 -37.395237
+170.815	-42.3107	1.013551 -36.306625
+170.881	-42.3389	1.016855 -36.155300
+170.41	-42.5666	0.981753 -34.901707
+170.645	-42.5352	0.996737 -35.199886
+170.717	-42.5526	1.000834 -35.159874
+170.82	-42.1149	1.022399 -37.430313
+170.909	-42.1162	1.029755 -37.426754
+170.38	-42.504	0.980263 -35.170292
+170.452	-42.4979	0.984629 -35.246872
+170.443	-42.636	0.983823 -34.598026
+170.558	-42.3514	0.993952 -36.032757
+170.628	-42.2864	1.000658 -36.399345
+170.015	-41.9504	0.966673 -38.033588
+170.093	-42.0585	0.969753 -37.434620
+170.749	-42.4837	1.003898 -35.464497
+170.814	-42.451	1.008625 -35.622799
+169.891	-42.0832	0.955755 -37.142185
+170.029	-42.209	0.962484 -36.520935
+169.866	-41.892	0.957501 -38.277210
+170.051	-41.8033	0.972048 -39.003078
+170.378	-40.7948	1.009894 -46.826450
+170.534	-40.7448	1.023033 -47.580551
+170.262	-42.0257	0.982124 -37.743843
+169.696	-41.9956	0.944260 -37.503147
+170.712	-42.6271	1.000063 -34.864262
+170.781	-42.615	1.003262 -34.948605
+176.379	-41.0655	0.613941 154.231720
+176.097	-41.113	0.619747 152.963608
+176.109	-41.1378	0.618671 152.821136
+175.23	-41.7633	0.598497 146.564560
+175.281	-41.7097	0.600170 146.570465
+175.204	-41.6484	0.594037 145.996674
+175.21	-41.6961	0.596023 146.325394
+176.215	-41.2061	0.613386 152.804993
+175.929	-41.3391	0.614027 150.689728
+175.606	-41.55	0.609835 148.530624
+175.629	-41.5154	0.610314 148.794418
+175.984	-41.3545	0.612632 150.884445
+176.377	-40.821	0.621719 155.889572
+176.426	-40.8363	0.620031 155.946320
+176.698	-41.1841	0.602969 154.812790
+175.954	-41.4815	0.608295 150.198578
+176.009	-41.5056	0.606778 150.350342
+175.927	-41.3	0.615738 150.876068
+175.973	-41.2812	0.615853 151.220108
+175.32	-41.6675	0.602795 146.646317
+175.357	-41.7132	0.602879 146.889038
+175.255	-41.6616	0.598863 146.262695
+175.284	-41.638	0.601356 146.286148
+175.479	-41.5767	0.610184 147.711441
+175.508	-41.5521	0.611019 148.036560
+175.526	-41.5821	0.609671 147.992920
+176.047	-41.1856	0.618549 152.186707
+176.076	-41.161	0.618789 152.501541
+176.324	-40.8988	0.621193 155.159409
+176.364	-40.8616	0.621096 155.568344
+175.493	-41.6085	0.608612 147.684769
+175.5	-41.6454	0.607088 147.635071
+175.357	-41.642	0.605035 146.818680
+176.037	-41.3664	0.611389 151.098221
+176.217	-41.266	0.611380 152.485626
+176.246	-41.3308	0.608676 152.251938
+176.204	-41.1635	0.615105 153.017960
+176.258	-41.1673	0.613636 153.203613
+175.811	-41.5259	0.608298 149.439270
+176.275	-41.223	0.611461 152.957642
+176.297	-41.2779	0.609242 152.754852
+176.074	-41.401	0.609507 151.101532
+176.542	-40.9804	0.612703 155.363647
+176.557	-41.0482	0.610265 155.007156
+176.148	-41.2722	0.612697 152.155960
+176.162	-41.3173	0.610881 151.962936
+176.361	-40.994	0.616846 154.608932
+176.408	-40.9474	0.617268 155.100189
+176.197	-41.0723	0.618369 153.575012
+175.727	-41.4324	0.610932 149.353104
+175.765	-41.4224	0.611359 149.550903
+175.775	-41.5477	0.608005 149.223557
+175.816	-41.5609	0.607263 149.348694
+176.001	-41.398	0.610690 150.762497
+176.028	-41.4546	0.608275 150.652359
+175.544	-41.6177	0.608124 147.945175
+175.579	-41.5845	0.609092 148.260254
+175.453	-41.5992	0.608821 147.436279
+175.452	-41.6273	0.607470 147.385147
+176.086	-41.1901	0.617292 152.352737
+176.119	-41.1715	0.617091 152.625641
+175.374	-41.6188	0.606563 146.920898
+175.411	-41.6078	0.607790 147.153412
+175.775	-41.5882	0.606951 149.093872
+175.856	-41.5372	0.607547 149.596664
+175.038	-41.4495	0.547876 144.833725
+175.049	-41.4934	0.553339 145.076096
+175.05	-41.6903	0.584569 146.517075
+175.146	-41.6656	0.589705 146.109985
+175.095	-41.617	0.578927 145.842468
+175.17	-41.6142	0.587327 145.585876
+176.135	-41.1097	0.618859 153.116959
+176.153	-41.0767	0.619404 153.397308
+176.373	-40.9087	0.619513 155.259674
+176.429	-40.8928	0.618447 155.568771
+175.938	-41.3822	0.612030 150.512665
+175.949	-41.4306	0.610095 150.368805
+175.139	-41.5653	0.575413 145.102448
+175.192	-41.5725	0.582484 144.900162
+175.608	-41.6254	0.607493 148.242355
+175.937	-41.2701	0.616819 151.076401
+175.972	-41.2585	0.616866 151.338470
+176.009	-41.2327	0.617375 151.685287
+176.032	-41.2454	0.616327 151.730972
+175.878	-41.3669	0.613193 150.285141
+175.889	-41.4099	0.611356 150.167358
+175.656	-41.4835	0.610420 149.019669
+175.687	-41.4551	0.610509 149.181091
+176.174	-41.1033	0.617988 153.295227
+176.22	-41.1177	0.616207 153.363846
+175.8	-41.4056	0.611947 149.759003
+175.843	-41.394	0.612268 150.011246
+175.749	-41.4982	0.609408 149.275848
+175.797	-41.4955	0.609195 149.475937
+175.839	-41.4279	0.611011 149.870590
+175.885	-41.4595	0.609663 149.973022
+176.247	-41.0729	0.617047 153.740997
+176.302	-41.1097	0.614376 153.706467
+175.61	-41.672	0.606012 148.093338
+175.614	-41.7144	0.604748 148.000839
+175.742	-41.5301	0.608756 149.158279
+175.775	-41.5192	0.608748 149.312271
+175.845	-41.4981	0.608790 149.678329
+175.9	-41.5098	0.607939 149.868179
+175.733	-41.5631	0.608050 149.027359
+175.505	-41.6934	0.605440 147.578812
+175.558	-41.7431	0.604137 147.717056
+175.399	-41.7587	0.602862 147.069366
+175.478	-41.7523	0.603748 147.387817
+175.447	-41.8159	0.602454 147.192551
+175.53	-41.7986	0.602870 147.511459
+175.556	-41.6587	0.606623 147.879776
+175.568	-41.6952	0.605424 147.848755
+175.429	-41.7085	0.604362 147.211060
+175.447	-41.6639	0.605985 147.322205
+175.794	-41.4387	0.610837 149.628708
+175.823	-41.4643	0.609928 149.685349
+175.386	-41.6721	0.604709 146.999771
+175.404	-41.6388	0.606301 147.099655
+175.657	-41.5454	0.609328 148.798706
+175.702	-41.5397	0.608918 148.997360
+175.678	-41.5148	0.609676 148.997406
+175.716	-41.5144	0.609299 149.118652
+175.703	-41.4892	0.609879 149.150146
+175.733	-41.4653	0.610229 149.304184
+175.759	-41.4459	0.610653 149.456390
+175.776	-41.4683	0.610027 149.465363
+175.86	-41.5753	0.606410 149.477646
+175.871	-42.1723	0.592484 147.486389
+175.686	-41.5732	0.608282 148.819458
+175.72	-41.5998	0.607240 148.852585
+175.657	-41.6501	0.606396 148.384827
+175.704	-41.6381	0.606331 148.639191
+175.635	-41.5816	0.608619 148.549957
+175.668	-41.6111	0.607432 148.592026
+175.141	-41.7306	0.593517 146.441391
+175.01	-40.6166	0.709972 -59.254089
+175.055	-40.6355	0.705827 -58.455570
+174.507	-38.7277	1.218064 -71.280495
+174.545	-38.6925	1.216715 -71.513382
+177.264	-40.8886	0.596969 158.437057
+176.951	-40.7946	0.606989 157.964584
+176.848	-41.7887	0.583159 152.447144
+176.852	-41.1908	0.599168 155.366577
+177.114	-40.8445	0.601662 158.214157
+176.764	-41.2587	0.599302 154.648865
+176.759	-41.3425	0.597077 154.188980
+177.139	-40.9671	0.598093 157.608871
+177.149	-41.1003	0.594546 156.910736
+177.293	-41.0173	0.593156 157.834290
+177.406	-40.9275	0.592722 158.669617
+176.886	-41.0013	0.603421 156.546936
+177.014	-41.0385	0.599332 156.790863
+176.973	-40.6708	0.609307 158.791946
+177.091	-40.7262	0.605017 158.810059
+176.57	-41.243	0.604250 153.996399
+176.667	-41.2972	0.600435 154.074661
+176.992	-40.9237	0.602753 157.351105
+176.91	-41.0928	0.600453 156.129074
+177.001	-41.1544	0.596685 156.104401
+176.331	-41.2352	0.609816 153.116028
+177.149	-41.492	0.584487 154.876099
+177.322	-41.5067	0.580293 155.413528
+177.677	-41.0582	0.583276 158.823898
+177.858	-40.9667	0.581364 159.858170
+175.885	-42.2932	0.590045 147.067276
+176.027	-42.2114	0.588836 147.842178
+174.983	-41.8504	0.598076 146.781021
+177.091	-40.6208	0.607291 159.413147
+177.215	-40.5741	0.605336 159.961426
+177.145	-40.1697	0.615305 161.698151
+177.198	-40.1127	0.615686 162.086823
+177.197	-40.6693	0.603687 159.422516
+177.237	-40.7641	0.600585 159.025574
+176.976	-40.5615	0.611236 159.481918
+177.096	-40.5188	0.609143 159.956863
+176.872	-40.6166	0.613069 158.844193
+176.873	-40.5456	0.614071 159.318802
+176.914	-40.4166	0.614299 160.042953
+176.993	-40.3723	0.613558 160.359238
+176.695	-40.6718	0.616964 157.839554
+176.735	-40.7236	0.614513 157.659775
+176.906	-40.4877	0.613801 159.727798
+176.999	-40.4616	0.612199 160.019379
+176.48	-42.1783	0.580881 149.514801
+177.632	-42.0845	0.559437 153.753738
+177.765	-41.9011	0.561016 155.001740
+175.157	-41.8566	0.599407 146.571594
+175.216	-41.8323	0.599589 146.612869
+176.635	-41.5181	0.594797 152.858536
+176.762	-41.4476	0.594088 153.679932
+176.019	-41.5491	0.605265 150.217545
+175.246	-42.0269	0.602355 146.322067
+175.331	-42.0019	0.601486 146.537933
+175.349	-42.0599	0.601363 146.412460
+176.179	-41.6237	0.600551 150.600311
+176.219	-41.5656	0.601643 151.000244
+174.864	-41.8936	0.602449 146.838547
+174.97	-41.955	0.603831 146.416519
+175.264	-42.1162	0.602543 146.069672
+175.386	-42.1414	0.600716 146.231628
+175.456	-42.0674	0.600156 146.634827
+175.516	-42.1441	0.598787 146.538162
+175.407	-42.0034	0.600965 146.698105
+175.505	-41.9924	0.600263 146.983688
+175.587	-41.8929	0.600926 147.491806
+175.667	-41.8633	0.600858 147.831879
+175.572	-41.9482	0.600219 147.298035
+175.054	-42.0315	0.604835 146.115250
+175.09	-41.961	0.602518 146.365585
+175.131	-41.904	0.600741 146.507004
+175.194	-41.9544	0.601818 146.440109
+176.355	-41.4241	0.603442 152.213638
+176.446	-41.3871	0.602643 152.768677
+176.214	-41.4499	0.605362 151.489624
+176.17	-41.5088	0.604221 151.040359
+176.287	-41.4541	0.603845 151.785751
+176.871	-41.3728	0.593779 154.453842
+176.887	-41.4862	0.590342 153.956680
+176.503	-41.5354	0.597082 152.268448
+176.536	-41.4444	0.599004 152.832642
+175.943	-41.7394	0.600754 149.223526
+175.905	-41.7878	0.599998 148.918823
+175.982	-41.8095	0.598425 149.134109
+175.645	-41.8052	0.602249 147.903854
+175.709	-41.8149	0.601524 148.113251
+175.59	-41.7883	0.602935 147.744904
+175.625	-41.7587	0.603487 147.941681
+175.338	-41.8605	0.601349 146.814407
+175.36	-41.9537	0.601335 146.712143
+175.437	-41.9423	0.601113 146.923782
+175.94	-41.6808	0.602399 149.420547
+176.002	-41.6414	0.602702 149.805634
+176.03	-41.592	0.603764 150.099869
+176.09	-41.6224	0.601993 150.236710
+176.263	-41.6267	0.599021 150.927933
+176.299	-41.7	0.596306 150.770691
+176.359	-41.6248	0.597364 151.312912
+176.464	-41.6142	0.595606 151.765503
+176.27	-41.3974	0.605999 151.998871
+176.349	-41.3395	0.606199 152.634354
+176.052	-41.86	0.596120 149.220032
+176.077	-41.7998	0.597261 149.527008
+176.124	-41.8442	0.595369 149.546066
+175.747	-41.858	0.600207 148.127274
+175.773	-41.81	0.601007 148.362961
+175.817	-41.8528	0.599525 148.392441
+175.9	-41.8479	0.598614 148.703506
+176.264	-41.7858	0.594593 150.291809
+176.376	-41.7746	0.592943 150.763794
+176.423	-41.6935	0.594220 151.272339
+175.963	-41.5837	0.604946 149.854752
+175.206	-41.8902	0.600610 146.567368
+175.272	-41.8709	0.600844 146.668839
+175.256	-41.9182	0.601222 146.586411
+175.286	-41.9619	0.601553 146.549011
+175.668	-41.7289	0.604007 148.187180
+175.683	-41.771	0.602777 148.135880
+175.822	-41.5932	0.606293 149.262497
+175.859	-41.6188	0.605140 149.316513
+175.878	-41.6646	0.603625 149.227844
+175.89	-41.706	0.602335 149.134781
+175.735	-41.7779	0.602164 148.316757
+175.788	-41.7541	0.602243 148.588211
+175.84	-41.7991	0.600522 148.641083
+175.723	-41.7397	0.603270 148.381607
+175.76	-41.7053	0.603842 148.636414
+175.828	-41.6994	0.603256 148.916855
+175.865	-41.7472	0.601538 148.900497
+175.784	-41.6639	0.604731 148.870499
+175.831	-41.6543	0.604464 149.079803
+175.656	-41.6892	0.605246 148.253204
+175.705	-41.7004	0.604512 148.427338
+175.692	-41.6691	0.605551 148.473328
+175.732	-41.6683	0.605162 148.646057
+175.902	-41.5914	0.605475 149.586899
+175.924	-41.63	0.604068 149.534988
+175.59	-41.8348	0.601965 147.641586
+175.976	-41.8724	0.596954 148.899628
+176.025	-41.9274	0.594944 148.888596
+175.566	-42.0668	0.598864 146.929810
+175.669	-42.0584	0.597605 147.259018
+175.585	-42.2116	0.596891 146.491501
+175.397	-41.8543	0.601755 146.978333
+175.448	-41.8816	0.601594 147.084167
+175.519	-41.8573	0.601836 147.356125
+175.51	-41.9186	0.601000 147.189392
+176.666	-41.7598	0.587605 151.912033
+176.799	-41.6703	0.587238 152.785233
+176.562	-41.5962	0.594140 152.221695
+176.663	-41.6314	0.591089 152.451294
+176.772	-41.5573	0.590824 153.193390
+176.883	-41.59	0.587603 153.455002
+175.854	-41.8997	0.598023 148.375870
+175.926	-41.9217	0.596539 148.556412
+175.841	-41.9699	0.596775 148.100967
+175.859	-42.068	0.594583 147.824951
+175.051	-41.905	0.600845 146.528397
+175.089	-41.8498	0.598460 146.601227
+176.145	-41.6815	0.599402 150.232712
+176.218	-41.6728	0.598473 150.557449
+176.164	-41.7953	0.595987 149.877121
+176.2	-41.7295	0.597165 150.265823
+175.74	-41.9573	0.598329 147.805099
+175.759	-42.0294	0.596822 147.633362
+175.64	-42.1373	0.596940 146.905716
+175.755	-42.1157	0.595423 147.327621
+175.653	-41.9381	0.599640 147.579956
+175.719	-41.904	0.599580 147.895050
+175.787	-41.9059	0.598752 148.122925
+175.969	-42.0115	0.593961 148.394012
+176.127	-41.9067	0.593799 149.330307
+176.108	-41.9926	0.592093 148.946960
+176.365	-41.2721	0.607933 153.051392
+176.451	-41.2867	0.605600 153.309280
+176.429	-41.4747	0.600389 152.262924
+176.554	-41.3437	0.601610 153.403854
+176.652	-41.3989	0.597831 153.500092
+175.316	-41.911	0.601312 146.701584
+175.384	-41.9011	0.601429 146.870621
+175.062	-41.7795	0.593625 146.679626
+175.15	-41.8017	0.597255 146.574402
+175.904	-42.429	0.587264 146.556442
+176.037	-42.3589	0.585743 147.287460
+176.328	-41.8581	0.591573 150.255356
+176.84	-41.2876	0.596792 154.778946
+176.952	-41.2729	0.594649 155.273911
+176.079	-41.5152	0.605466 150.628845
+176.122	-41.452	0.606883 151.085510
+175.307	-42.3273	0.601310 145.336304
+175.45	-42.3835	0.597652 145.445755
+175.146	-42.0119	0.603154 146.245911
+175.149	-42.0822	0.604096 146.015579
+175.958	-42.1093	0.592137 148.001694
+176.075	-42.0928	0.590443 148.456253
+176.209	-41.8572	0.593661 149.816025
+176.249	-41.9529	0.590604 149.597260
+176.03	-41.7481	0.599328 149.532364
+176.113	-41.7415	0.598252 149.881165
+176.305	-41.5631	0.600173 151.361725
+176.399	-41.5514	0.598718 151.787460
+176.391	-41.2194	0.608975 153.436218
+176.475	-41.1899	0.607973 153.920059
+176.456	-42.0614	0.584125 149.908493
+176.586	-41.9907	0.583346 150.658249
+175.907	-41.5544	0.606502 149.739075
+175.959	-41.5301	0.606637 150.039093
+175.752	-41.6305	0.606002 148.863556
+175.804	-41.6247	0.605613 149.078751
+175.609	-42.0014	0.599180 147.254669
+175.687	-41.9975	0.598306 147.507874
+176.072	-41.5688	0.603858 150.372803
+176.136	-41.5675	0.602930 150.650223
+176.255	-41.5045	0.602869 151.416092
+176.339	-41.4954	0.601589 151.805542
+176.325	-41.1833	0.611605 153.375046
+176.391	-41.1448	0.611262 153.838211
+176.335	-42.0322	0.587128 149.595062
+176.424	-41.9422	0.587670 150.272659
+175.997	-41.7006	0.601078 149.574081
+176.063	-41.6905	0.600407 149.874695
+174.976	-42.2935	0.609801 144.813705
+175.043	-42.2096	0.607514 145.340759
+176.04	-42.4716	0.583507 146.787888
+176.176	-42.4377	0.581226 147.400879
+176.59	-42.1027	0.580531 150.208969
+176.666	-42.2248	0.576077 149.960770
+176.439	-41.8414	0.589968 150.731171
+176.557	-41.868	0.586975 151.060394
+177.197	-42.1257	0.567545 152.191483
+177.277	-42.2533	0.562835 151.888702
+174.653	-42.4335	0.621099 143.352234
+174.757	-42.377	0.617147 143.925400
+174.114	-42.5072	0.642388 141.753204
+174.121	-42.6117	0.642735 141.151962
+175.457	-43.0339	0.590879 141.376083
+175.612	-43.0101	0.588700 141.835556
+175.747	-43.6558	0.583152 130.663422
+175.796	-43.7604	0.578861 129.296234
+174.754	-43.2601	0.612376 134.915985
+174.893	-43.209	0.603419 136.088425
+176.022	-43.5731	0.572429 133.074524
+176.117	-43.4633	0.568941 135.178024
+175.327	-42.9683	0.593135 141.558640
+175.455	-42.9183	0.591640 142.339645
+176.699	-42.5449	0.567634 148.641724
+176.871	-42.4824	0.565596 149.527206
+176.278	-42.653	0.574457 146.533997
+176.326	-42.7618	0.570896 145.859558
+174.623	-43.0324	0.620285 138.289139
+174.776	-43.0622	0.611421 138.284439
+174.674	-43.1458	0.617128 136.758377
+174.798	-43.1576	0.609306 136.829514
+173.767	-42.6031	0.654053 140.900620
+173.872	-42.6121	0.651417 140.895813
+173.91	-42.5275	0.649208 141.342117
+174	-42.567	0.646729 141.248047
+173.905	-43.2118	0.670724 135.506790
+174.042	-43.1537	0.658648 136.213089
+173.771	-43.4822	0.694555 131.502625
+173.877	-43.4749	0.684971 131.670502
+173.944	-43.7555	0.688890 125.401932
+174.067	-43.735	0.675646 126.161110
+174.122	-43.055	0.650389 137.432617
+174.206	-43.1271	0.646823 136.551682
+174.396	-42.9245	0.632651 139.076309
+173.538	-43.3657	0.712909 133.115189
+173.591	-43.4201	0.709196 132.262009
+173.754	-42.8517	0.663777 139.428284
+173.851	-42.82	0.657963 139.625015
+174.261	-43.443	0.651129 131.669266
+174.388	-43.4109	0.640417 132.141891
+173.819	-43.0716	0.670672 137.253815
+173.909	-43.126	0.666807 136.598160
+174.903	-43.3108	0.603452 134.123825
+175.026	-43.3504	0.598232 133.455719
+174.138	-42.3642	0.641608 142.614304
+174.231	-42.3062	0.638393 143.201370
+173.819	-42.8951	0.662594 139.014999
+173.829	-42.9772	0.665685 138.246231
+173.781	-43.2444	0.681549 135.206268
+173.801	-43.1581	0.676330 136.216125
+173.685	-43.1917	0.687261 135.835358
+173.694	-43.1102	0.682431 136.813385
+174.411	-42.8222	0.631425 140.045258
+174.566	-42.7589	0.624092 140.902313
+174.861	-43.6187	0.613385 128.634857
+174.99	-43.6425	0.608038 128.326477
+175.673	-43.1161	0.588857 140.603180
+175.775	-43.07	0.584738 141.223740
+175.745	-42.6759	0.587140 144.761353
+175.872	-42.6351	0.584606 145.367203
+174.26	-44.9228	0.618762 111.211960
+175.195	-42.3943	0.603629 144.769958
+175.307	-42.4499	0.600349 144.773193
+174.934	-43.4243	0.604452 131.895828
+174.212	-44.7412	0.628907 112.522453
+174.463	-44.7789	0.614826 113.350571
+176.501	-41.7684	0.590680 151.261108
+176.546	-41.678	0.592225 151.806183
+176.404	-42.6678	0.571155 146.871124
+176.538	-42.6133	0.569442 147.709854
+176.677	-42.3916	0.571866 149.286255
+176.806	-42.3351	0.570538 149.969742
+178.071	-41.5967	0.561627 157.413330
+178.192	-41.4458	0.562514 158.524292
+174.157	-42.4327	0.640755 142.254654
+174.244	-42.3979	0.637530 142.649826
+174.224	-42.4693	0.638268 142.169189
+174.244	-42.5496	0.637657 141.719086
+173.507	-43.5474	0.726780 129.683228
+173.544	-43.4897	0.718320 130.989410
+174.699	-41.0256	0.401199 -73.877464
+174.823	-41.0029	0.436844 -65.238327
+174.678	-40.9131	0.503848 -71.755638
+174.748	-41.0176	0.412537 -69.984619
+174.741	-41.0513	0.380000 -70.927551
+174.853	-41.0117	0.440078 -63.270172
+174.855	-40.9904	0.454816 -63.457485
+174.736	-41.1372	0.305143 -72.525223
+174.762	-41.1199	0.323746 -70.822372
+174.702	-41.0941	0.335677 -75.647476
+174.703	-41.0636	0.364294 -74.740326
+174.735	-41.1102	0.325355 -72.910606
+174.739	-41.0827	0.349457 -71.992798
+174.671	-41.0479	0.378309 -77.099602
+174.816	-40.8008	0.592350 -63.705742
+174.867	-40.8127	0.589122 -61.696213
+174.767	-40.8608	0.543920 -66.421593
+174.775	-40.8256	0.571949 -65.543274
+174.934	-40.7981	0.618654 -59.230972
+174.973	-40.7882	0.633097 -58.476868
+174.863	-40.7753	0.615272 -61.938030
+174.901	-40.7937	0.610847 -60.400314
+174.729	-40.9236	0.492866 -69.432388
+174.774	-40.9338	0.485370 -67.262543
+174.825	-41.038	0.412826 -64.677658
+174.838	-41.0244	0.425988 -64.065941
+174.744	-40.958	0.463539 -69.336899
+174.767	-40.8993	0.513153 -67.051529
+174.807	-40.9122	0.504332 -65.319206
+174.88	-41.0112	0.450042 -61.933952
+174.893	-40.9878	0.465600 -61.801342
+174.763	-40.9877	0.439502 -68.699951
+174.816	-40.9426	0.482249 -65.198723
+174.821	-40.9731	0.459686 -65.184380
+174.807	-40.881	0.528812 -64.849968
+174.834	-40.8946	0.518189 -63.815208
+174.618	-40.989	0.441158 -78.235153
+174.649	-41.022	0.405040 -77.705177
+174.451	-41.0344	0.453746 -92.361977
+174.489	-41.0691	0.397385 -94.715744
+174.427	-41.1243	0.370830 -111.261147
+174.47	-41.113	0.357709 -103.789169
+174.505	-41.029	0.431858 -88.780647
+174.552	-41.0541	0.388233 -87.812317
+174.789	-41.0138	0.421720 -67.218147
+174.816	-41.0234	0.420510 -65.464478
+174.602	-41.0296	0.402363 -81.771019
+174.636	-41.0547	0.372139 -80.504776
+174.626	-41.1272	0.297130 -85.490814
+174.666	-41.1078	0.319684 -79.667259
+174.646	-40.9493	0.475124 -74.725311
+174.697	-40.9527	0.468524 -71.872879
+174.525	-41.2574	0.184114 -143.160599
+174.556	-41.2871	0.160574 -165.372665
+174.547	-41.3378	0.246810 171.969376
+174.59	-41.3138	0.181604 170.100952
+174.686	-41.3707	0.377671 146.540085
+174.68	-41.4073	0.406002 149.175400
+174.608	-41.3447	0.248003 157.078369
+174.638	-41.3766	0.340945 151.133102
+174.195	-40.4423	0.907411 -68.582596
+174.26	-40.4289	0.890212 -67.871468
+174.67	-40.9876	0.438046 -74.630623
+174.719	-40.9879	0.437100 -71.445259
+174.584	-41.0935	0.337434 -88.325546
+174.601	-41.0638	0.366669 -84.305885
+174.538	-41.3927	0.338483 164.715195
+174.589	-41.3737	0.309109 158.702850
+174.826	-41.4744	0.510352 146.342621
+174.878	-41.4708	0.525992 145.516556
+174.63	-41.0873	0.339431 -82.834366
+174.668	-41.0762	0.350400 -78.463028
+174.785	-40.9637	0.461554 -67.104263
+174.796	-40.9879	0.442792 -66.794952
+174.928	-40.7059	0.663510 -60.472012
+174.981	-40.6916	0.676280 -59.416199
+174.14	-41.5088	0.524416 175.336166
+174.187	-41.5225	0.525352 173.231171
+174.16	-40.7467	0.798427 -78.781120
+174.194	-40.7909	0.758092 -80.320732
+174.122	-40.875	0.751398 -84.940193
+174.155	-40.8353	0.752773 -82.838165
+175.097	-41.4612	0.553803 144.603516
+175.132	-41.4316	0.553596 144.274033
+174.961	-41.5551	0.554831 146.232315
+174.996	-41.515	0.551651 145.567856
+174.863	-41.5029	0.529009 146.473953
+174.88	-41.5463	0.542893 146.938385
+174.658	-41.1613	0.263156 -81.930557
+174.67	-41.1349	0.293135 -79.786064
+174.068	-41.4155	0.512642 179.833466
+174.106	-41.4222	0.506090 179.632050
+174.071	-41.4482	0.516095 178.793152
+174.069	-41.4788	0.521585 177.857437
+174.188	-41.5664	0.555144 170.101608
+174.23	-41.5846	0.558861 167.531464
+174.358	-41.668	0.576150 158.584366
+174.375	-41.7096	0.592406 155.883820
+174.328	-41.8112	0.629787 151.102600
+174.374	-41.8413	0.624002 150.010712
+174.209	-41.6877	0.611316 161.581360
+174.253	-41.7059	0.612233 159.633667
+174.67	-41.5282	0.486680 151.941635
+174.732	-41.5103	0.492965 149.572647
+174.745	-41.9146	0.607115 146.896255
+174.781	-41.8452	0.600202 147.397903
+175.027	-41.4108	0.544826 144.626755
+175.076	-41.4195	0.548473 144.490982
+174.776	-41.0429	0.396539 -67.703018
+174.804	-41.0381	0.407096 -65.975494
+174.817	-41.0694	0.389887 -64.545692
+174.799	-41.0592	0.392035 -65.734940
+174.819	-41.0529	0.401189 -64.750763
+174.833	-41.0499	0.406932 -64.019928
+174.843	-41.0404	0.417341 -63.563881
diff --git a/doc/examples/tides/ellipses.gfv b/doc/examples/tides/ellipses.gfv
new file mode 100644
index 0000000..4dd9418
--- /dev/null
+++ b/doc/examples/tides/ellipses.gfv
@@ -0,0 +1,26 @@
+# GfsView 3D
+View {
+  tx = -0.11839 ty = 0.0263953
+  sx = 1 sy = 1 sz = 1
+  q0 = 0 q1 = 0 q2 = 0 q3 = 1
+  fov = 2.92707
+  r = 1 g = 1 b = 1
+  res = 1
+  lc = 0.001
+  reactivity = 0.1
+}
+Ellipses {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} sqrt(AU0*AU0+AV0*AV0+BU0*BU0+BV0*BV0) {
+  amin = 0 min = 0
+  amax = 0 max = 2
+  cmap = Jet
+} AU0 AV0 BU0 BV0 {
+  scale = 0.00343
+  use_scalar = 1
+}
diff --git a/doc/examples/tides/phase.gfv b/doc/examples/tides/phase.gfv
new file mode 100644
index 0000000..f4bec7d
--- /dev/null
+++ b/doc/examples/tides/phase.gfv
@@ -0,0 +1,23 @@
+# GfsView 3D
+View {
+  tx = 0 ty = 0
+  sx = 1 sy = 1 sz = 1
+  q0 = 0 q1 = 0 q2 = 0 q3 = 1
+  fov = 19.1745
+  r = 0.3 g = 0.4 b = 0.6
+  res = 1
+  lc = 0.001
+  reactivity = 0.1
+}
+Squares {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} atan2(B0,A0)*180./M_PI {
+  amin = 1
+  amax = 1
+  cmap = Jet
+}
diff --git a/doc/examples/tides/residual.gfv b/doc/examples/tides/residual.gfv
new file mode 100644
index 0000000..f39bdc8
--- /dev/null
+++ b/doc/examples/tides/residual.gfv
@@ -0,0 +1,26 @@
+# GfsView 3D
+View {
+  tx = -0.11839 ty = 0.0263953
+  sx = 1 sy = 1 sz = 1
+  q0 = 0 q1 = 0 q2 = 0 q3 = 1
+  fov = 2.92707
+  r = 1 g = 1 b = 1
+  res = 1
+  lc = 0.001
+  reactivity = 0.1
+}
+Vectors {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} sqrt(ZU*ZU+ZV*ZV) {
+  amin = 1
+  amax = 0 max = 0.6
+  cmap = Jet
+} ZU ZV 0 {
+  scale = 0.02
+  use_scalar = 1
+}
diff --git a/doc/examples/tides/tides.gfv b/doc/examples/tides/tides.gfv
new file mode 100644
index 0000000..70e0398
--- /dev/null
+++ b/doc/examples/tides/tides.gfv
@@ -0,0 +1,26 @@
+# GfsView 3D
+View {
+  tx = 0 ty = 0
+  sx = 1 sy = 1 sz = 1
+  q0 = 0 q1 = 0 q2 = 0 q3 = 1
+  fov = 19.1745
+  r = 0.3 g = 0.4 b = 0.6
+  res = 1
+  lc = 0.001
+  reactivity = 0.1
+}
+Linear {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} P/9.81 {
+  amin = 1
+  amax = 1
+  cmap = Jet
+} 0 {
+  reversed = 0
+  use_scalar = 1
+}
diff --git a/doc/examples/tides/tides.sh b/doc/examples/tides/tides.sh
new file mode 100644
index 0000000..010b331
--- /dev/null
+++ b/doc/examples/tides/tides.sh
@@ -0,0 +1,48 @@
+#
+# Bathymetry
+#
+
+# happrox is distributed with GTS. Do 'happrox -h' for more info.
+# 'bathymetry' contains the (negative) depth as a function of space i.e. three columns:
+# lon (deg) lat (deg) depth (m).
+# 0.05 is the relative depth error allowed.
+happrox -f -r 1 -c 0.05 < bathymetry | transform --revert > bath.gts
+
+#
+# M2 tidal coefficients
+#
+
+# 'coefficients' contains the amplitude and phase of the M2
+# tide as a function of space i.e. four columns:
+# lon (deg) lat (deg) amplitude (m) phase (degree)
+
+# just counts the number of lines in the input file
+lines=`wc -l coefficients | awk '{print $1}'`
+
+# Gerris defines the tidal M2 mode as:
+# AM2*cos (omega*t) + BM2*sin (omega*t)
+#
+# We first compute AM2 from the amplitude and phase.
+awk -v lines=$lines '
+BEGIN {
+  print lines " 0 0"
+} {
+  print $1 " " $2 " " $3*cos($4*3.14159265357/180.)
+}' < coefficients | delaunay > AM2.gts
+
+# Now compute BM2
+awk -v lines=$lines '
+BEGIN {
+  print lines " 0 0"
+} {
+  print $1 " " $2 " " $3*sin($4*3.14159265357/180.)
+}' < coefficients | delaunay > BM2.gts
+
+# Run the simulation
+gerris3D -m tides.gfs | gfsview3D tides.gfv
+
+# Use batch mode of gfsview to generate figures
+echo "Save amplitude.eps { format = EPS }" | gfsview-batch3D end.gfs amplitude.gfv
+echo "Save phase.eps { format = EPS }" | gfsview-batch3D end.gfs phase.gfv
+echo "Save ellipses.eps { format = EPS }" | gfsview-batch3D end.gfs ellipses.gfv
+echo "Save residual.eps { format = EPS }" | gfsview-batch3D end.gfs residual.gfv
diff --git a/doc/examples/tsunami/colores.txt b/doc/examples/tsunami/colores.txt
new file mode 100644
index 0000000..00983c9
--- /dev/null
+++ b/doc/examples/tsunami/colores.txt
@@ -0,0 +1,4869 @@
+-24.9833 -0.445
+-24.95 -0.550
+-24.9167 -1.064
+-24.8833 -0.360
+-24.85 -0.974
+-24.8167 -0.269
+-24.7833 -0.884
+-24.75 -1.093
+-24.7167 -0.793
+-24.6833 -1.408
+-24.65 -2.227
+-24.6167 -1.927
+-24.5833 -2.236
+-24.55 -4.070
+-24.5167 -2.451
+-24.4833 -1.846
+-24.45 -2.460
+-24.4167 -1.551
+-24.3833 -2.775
+-24.35 -4.304
+-24.3167 -3.799
+-24.2833 -5.937
+-24.25 -5.332
+-24.2167 -5.032
+-24.1833 -5.137
+-24.15 -5.752
+-24.1167 -5.552
+-24.0833 -6.166
+-24.05 -5.661
+-24.0167 -4.752
+-23.9833 -5.466
+-23.95 -4.047
+-23.9167 -3.542
+-23.8833 -4.156
+-23.85 -2.432
+-23.8167 -2.232
+-23.7833 -3.556
+-23.75 -2.442
+-23.7167 -2.547
+-23.6833 -2.447
+-23.65 -2.856
+-23.6167 -2.047
+-23.5833 -2.456
+-23.55 -2.052
+-23.5167 -1.547
+-23.4833 -1.752
+-23.45 -0.942
+-23.4167 -2.366
+-23.3833 -2.266
+-23.35 -2.980
+-23.3167 -2.576
+-23.2833 -3.390
+-23.25 -3.290
+-23.2167 -5.019
+-23.1833 -4.614
+-23.15 -5.124
+-23.1167 -4.414
+-23.0833 -4.924
+-23.05 -4.519
+-23.0167 -4.519
+-22.9833 -4.724
+-22.95 -4.014
+-22.9167 -4.319
+-22.8833 -4.524
+-22.85 -3.000
+-22.8167 -2.390
+-22.7833 -2.290
+-22.75 -2.900
+-22.7167 -2.595
+-22.6833 -1.680
+-22.65 -2.495
+-22.6167 -3.104
+-22.5833 -2.495
+-22.55 -3.104
+-22.5167 -3.204
+-22.4833 -3.204
+-22.45 -4.119
+-22.4167 -2.900
+-22.3833 -3.204
+-22.35 -3.609
+-22.3167 -2.390
+-22.2833 -1.576
+-22.25 -2.795
+-22.2167 -1.980
+-22.1833 -1.371
+-22.15 -2.690
+-22.1167 -2.790
+-22.0833 -2.180
+-22.05 -1.976
+-22.0167 -2.685
+-21.9833 -1.566
+-21.95 -1.666
+-21.9167 -3.290
+-21.8833 -3.695
+-21.85 -3.185
+-21.8167 -4.200
+-21.7833 -3.995
+-21.75 -4.400
+-21.7167 -4.804
+-21.6833 -5.309
+-21.65 -6.019
+-21.6167 -5.814
+-21.5833 -4.490
+-21.55 -3.980
+-21.5167 -3.571
+-21.4833 -3.366
+-21.45 -2.956
+-21.4167 -3.766
+-21.3833 -3.256
+-21.35 -2.542
+-21.3167 -2.132
+-21.2833 -2.637
+-21.25 -2.432
+-21.2167 -3.242
+-21.1833 -3.137
+-21.15 -3.947
+-21.1167 -3.537
+-21.0833 -3.432
+-21.05 -3.328
+-21.0167 -2.918
+-20.9833 -2.813
+-20.95 -3.013
+-20.9167 -2.704
+-20.8833 -2.904
+-20.85 -4.018
+-20.8167 -3.608
+-20.7833 -3.299
+-20.75 -3.194
+-20.7167 -3.089
+-20.6833 -4.304
+-20.65 -4.504
+-20.6167 -4.704
+-20.5833 -5.918
+-20.55 -6.423
+-20.5167 -6.418
+-20.4833 -7.228
+-20.45 -7.223
+-20.4167 -7.828
+-20.3833 -6.808
+-20.35 -7.413
+-20.3167 -7.004
+-20.2833 -6.389
+-20.25 -6.994
+-20.2167 -6.280
+-20.1833 -6.275
+-20.15 -5.660
+-20.1167 -5.351
+-20.0833 -5.856
+-20.05 -4.936
+-20.0167 -4.017
+-19.9833 -4.622
+-19.95 -4.922
+-19.9167 -4.512
+-19.8833 -4.203
+-19.85 -5.112
+-19.8167 -5.412
+-19.7833 -5.408
+-19.75 -5.303
+-19.7167 -5.298
+-19.6833 -5.293
+-19.65 -5.898
+-19.6167 -5.893
+-19.5833 -5.888
+-19.55 -6.088
+-19.5167 -5.474
+-19.4833 -5.774
+-19.45 -5.769
+-19.4167 -6.374
+-19.3833 -5.660
+-19.35 -5.350
+-19.3167 -5.650
+-19.2833 -6.255
+-19.25 -6.150
+-19.2167 -6.450
+-19.1833 -6.750
+-19.15 -6.645
+-19.1167 -6.336
+-19.0833 -6.940
+-19.05 -7.140
+-19.0167 -6.831
+-18.9833 -6.826
+-18.95 -7.636
+-18.9167 -6.716
+-18.8833 -6.307
+-18.85 -5.997
+-18.8167 -5.588
+-18.7833 -4.668
+-18.75 -3.649
+-18.7167 -3.849
+-18.6833 -4.149
+-18.65 -4.349
+-18.6167 -3.940
+-18.5833 -4.544
+-18.55 -3.830
+-18.5167 -3.725
+-18.4833 -3.925
+-18.45 -3.820
+-18.4167 -3.716
+-18.3833 -3.611
+-18.35 -4.725
+-18.3167 -4.316
+-18.2833 -4.820
+-18.25 -5.020
+-18.2167 -5.220
+-18.1833 -5.725
+-18.15 -5.011
+-18.1167 -5.111
+-18.0833 -3.787
+-18.05 -3.682
+-18.0167 -4.392
+-17.9833 -4.896
+-17.95 -4.387
+-17.9167 -4.587
+-17.8833 -4.382
+-17.85 -5.192
+-17.8167 -4.682
+-17.7833 -5.392
+-17.75 -4.882
+-17.7167 -4.777
+-17.6833 -4.877
+-17.65 -4.368
+-17.6167 -4.163
+-17.5833 -4.263
+-17.55 -3.448
+-17.5167 -3.853
+-17.4833 -4.868
+-17.45 -4.258
+-17.4167 -5.272
+-17.3833 -5.982
+-17.35 -4.458
+-17.3167 -4.558
+-17.2833 -4.658
+-17.25 -3.439
+-17.2167 -3.234
+-17.1833 -3.844
+-17.15 -2.624
+-17.1167 -2.115
+-17.0833 -1.810
+-17.05 -3.029
+-17.0167 -3.029
+-16.9833 -3.029
+-16.95 -4.348
+-16.9167 -4.348
+-16.8833 -4.044
+-16.85 -4.248
+-16.8167 -4.858
+-16.7833 -4.553
+-16.75 -5.163
+-16.7167 -4.553
+-16.6833 -4.148
+-16.65 -3.539
+-16.6167 -3.844
+-16.5833 -4.048
+-16.55 -3.744
+-16.5167 -4.253
+-16.4833 -4.458
+-16.45 -4.153
+-16.4167 -4.358
+-16.3833 -4.258
+-16.35 -4.463
+-16.3167 -4.768
+-16.2833 -4.668
+-16.25 -4.263
+-16.2167 -4.163
+-16.1833 -4.672
+-16.15 -4.572
+-16.1167 -3.763
+-16.0833 -4.577
+-16.05 -3.868
+-16.0167 -3.768
+-15.9833 -3.568
+-15.95 -3.163
+-15.9167 -3.672
+-15.8833 -3.777
+-15.85 -3.677
+-15.8167 -4.087
+-15.7833 -3.887
+-15.75 -3.482
+-15.7167 -4.196
+-15.6833 -3.387
+-15.65 -2.577
+-15.6167 -3.696
+-15.5833 -3.801
+-15.55 -3.906
+-15.5167 -3.096
+-15.4833 -4.725
+-15.45 -3.611
+-15.4167 -4.630
+-15.3833 -4.430
+-15.35 -3.216
+-15.3167 -3.016
+-15.2833 -3.425
+-15.25 -3.225
+-15.2167 -2.925
+-15.1833 -2.420
+-15.15 -2.120
+-15.1167 -2.530
+-15.0833 -1.925
+-15.05 -2.335
+-15.0167 -2.644
+-14.9833 -3.664
+-14.95 -3.973
+-14.9167 -3.368
+-14.8833 -4.388
+-14.85 -4.088
+-14.8167 -4.092
+-14.7833 -4.197
+-14.75 -3.897
+-14.7167 -3.902
+-14.6833 -2.688
+-14.65 -2.083
+-14.6167 -2.088
+-14.5833 -2.092
+-14.55 -2.707
+-14.5167 -3.016
+-14.4833 -2.716
+-14.45 -2.416
+-14.4167 -3.336
+-14.3833 -3.036
+-14.35 -3.345
+-14.3167 -4.264
+-14.2833 -4.269
+-14.25 -3.360
+-14.2167 -4.584
+-14.1833 -3.879
+-14.15 -3.579
+-14.1167 -2.974
+-14.0833 -3.284
+-14.05 -2.679
+-14.0167 -2.684
+-13.9833 -2.284
+-13.95 -1.984
+-13.9167 -2.293
+-13.8833 -1.993
+-13.85 -1.388
+-13.8167 -1.393
+-13.7833 -2.517
+-13.75 -2.217
+-13.7167 -2.222
+-13.6833 -3.446
+-13.65 -4.060
+-13.6167 -3.456
+-13.5833 -3.460
+-13.55 -3.465
+-13.5167 -3.165
+-13.4833 -1.951
+-13.45 -2.260
+-13.4167 -1.656
+-13.3833 -1.356
+-13.35 -2.580
+-13.3167 -3.194
+-13.2833 -2.284
+-13.25 -3.204
+-13.2167 -3.818
+-13.1833 -2.908
+-13.15 -3.623
+-13.1167 -4.237
+-13.0833 -3.937
+-13.05 -3.432
+-13.0167 -3.132
+-12.9833 -3.637
+-12.95 -2.937
+-12.9167 -4.161
+-12.8833 -3.961
+-12.85 -3.356
+-12.8167 -3.766
+-12.7833 -3.566
+-12.75 -2.961
+-12.7167 -3.371
+-12.6833 -4.085
+-12.65 -3.276
+-12.6167 -3.990
+-12.5833 -3.790
+-12.55 -4.200
+-12.5167 -4.000
+-12.4833 -3.190
+-12.45 -3.600
+-12.4167 -3.095
+-12.3833 -2.690
+-12.35 -2.490
+-12.3167 -1.985
+-12.2833 -2.800
+-12.25 -1.990
+-12.2167 -2.195
+-12.1833 -2.400
+-12.15 -3.114
+-12.1167 -3.319
+-12.0833 -3.828
+-12.05 -4.338
+-12.0167 -4.543
+-11.9833 -4.648
+-11.95 -4.343
+-11.9167 -4.548
+-11.8833 -4.448
+-11.85 -3.738
+-11.8167 -3.028
+-11.7833 -3.638
+-11.75 -3.538
+-11.7167 -3.743
+-11.6833 -3.438
+-11.65 -2.424
+-11.6167 -2.424
+-11.5833 -2.728
+-11.55 -2.119
+-11.5167 -2.628
+-11.4833 -3.238
+-11.45 -3.543
+-11.4167 -3.238
+-11.3833 -3.848
+-11.35 -3.238
+-11.3167 -2.933
+-11.2833 -3.033
+-11.25 -1.509
+-11.2167 -2.119
+-11.1833 -3.133
+-11.15 -3.438
+-11.1167 -3.233
+-11.0833 -3.843
+-11.05 -3.638
+-11.0167 -3.028
+-10.9833 -3.433
+-10.95 -3.533
+-10.9167 -2.719
+-10.8833 -2.209
+-10.85 -2.614
+-10.8167 -2.714
+-10.7833 -2.814
+-10.75 -2.304
+-10.7167 -2.100
+-10.6833 -2.200
+-10.65 -3.214
+-10.6167 -2.804
+-10.5833 -2.904
+-10.55 -2.700
+-10.5167 -2.595
+-10.4833 -3.000
+-10.45 -2.285
+-10.4167 -1.876
+-10.3833 -1.671
+-10.35 -1.261
+-10.3167 -1.461
+-10.2833 -1.661
+-10.25 -1.252
+-10.2167 -0.437
+-10.1833 -0.637
+-10.15 -0.532
+-10.1167 -0.528
+-10.0833 -0.423
+-10.05 -1.232
+-10.0167 -0.823
+-9.98333 -1.328
+-9.95 -1.932
+-9.91666 -1.523
+-9.88333 -1.723
+-9.84999 -2.328
+-9.81668 -2.528
+-9.78334 -2.828
+-9.75001 -3.942
+-9.71667 -3.328
+-9.68333 -3.018
+-9.65 -3.523
+-9.61666 -3.518
+-9.58333 -3.208
+-9.54999 -3.508
+-9.51668 -3.199
+-9.48334 -3.194
+-9.45001 -2.784
+-9.41667 -1.865
+-9.38333 -1.046
+-9.35 -0.736
+-9.31666 -0.122
+-9.28333 -0.422
+-9.24999 -0.112
+-9.21668 0.197
+-9.18334 -1.422
+-9.15001 -0.503
+-9.11667 -0.803
+-9.08333 -0.898
+-9.05 -1.198
+-9.01666 -1.598
+-8.98333 -1.288
+-8.94999 -1.993
+-8.91668 -1.174
+-8.88334 -1.779
+-8.85001 -1.874
+-8.81667 -1.664
+-8.78333 -1.355
+-8.75 -0.536
+-8.71666 -0.021
+-8.68333 0.798
+-8.64999 -0.516
+-8.61668 -0.002
+-8.58334 0.208
+-8.55001 0.417
+-8.51667 0.017
+-8.48333 0.227
+-8.45 -0.173
+-8.41666 -1.183
+-8.38333 -1.888
+-8.34999 -1.678
+-8.31668 -2.992
+-8.28334 -3.088
+-8.25001 -2.368
+-8.21667 -3.378
+-8.18333 -2.559
+-8.15 -2.044
+-8.11666 -1.935
+-8.08333 -1.420
+-8.04999 -2.125
+-8.01668 -2.625
+-7.98334 -2.111
+-7.95001 -2.206
+-7.91667 -2.401
+-7.88333 -1.277
+-7.85 -1.472
+-7.81666 -0.653
+-7.78333 0.371
+-7.74999 0.580
+-7.71668 0.485
+-7.68334 -0.015
+-7.65001 0.195
+-7.61667 -0.000
+-7.58333 -0.096
+-7.55 -0.900
+-7.51666 -0.996
+-7.48333 0.029
+-7.44999 -0.676
+-7.41668 -0.262
+-7.38334 -0.357
+-7.35001 -0.147
+-7.31667 0.572
+-7.28333 -0.438
+-7.25 -0.633
+-7.21666 -0.728
+-7.18333 -0.823
+-7.14999 -1.323
+-7.11668 -0.809
+-7.08334 -0.904
+-7.05001 -1.099
+-7.01667 -1.195
+-6.98333 -0.375
+-6.95 -1.385
+-6.91666 -1.580
+-6.88333 -0.761
+-6.84999 -1.161
+-6.81668 -0.647
+-6.78334 -0.742
+-6.75001 -2.056
+-6.71667 -0.932
+-6.68333 -0.418
+-6.65 -0.818
+-6.61666 -0.303
+-6.58333 -0.703
+-6.54999 0.421
+-6.51668 -0.589
+-6.48334 -1.499
+-6.45001 -0.984
+-6.41667 -1.689
+-6.38333 -1.075
+-6.35 -1.170
+-6.31666 -0.555
+-6.28333 -0.041
+-6.24999 0.269
+-6.21668 -0.131
+-6.18334 -0.127
+-6.15001 0.183
+-6.11667 -0.117
+-6.08333 -0.417
+-6.05 -0.512
+-6.01666 0.102
+-5.98333 -0.503
+-5.94999 0.112
+-5.91668 -0.088
+-5.88334 0.526
+-5.85001 -0.383
+-5.81667 0.231
+-5.78333 0.336
+-5.75 -0.879
+-5.71666 -0.164
+-5.68333 -1.074
+-5.64999 -1.579
+-5.61668 -2.083
+-5.58334 -2.079
+-5.55001 -2.583
+-5.51667 -1.869
+-5.48333 -2.374
+-5.45 -2.574
+-5.41666 -2.469
+-5.38333 -0.840
+-5.34999 -1.855
+-5.31668 -1.445
+-5.28334 -1.340
+-5.25001 -0.526
+-5.21667 -0.421
+-5.18333 -1.740
+-5.15 -1.231
+-5.11666 -1.431
+-5.08333 -1.226
+-5.04999 -1.021
+-5.01668 -0.511
+-4.98334 -0.307
+-4.95001 -0.711
+-4.91667 -0.202
+-4.88333 -0.911
+-4.85 -0.302
+-4.81666 -0.097
+-4.78333 -0.707
+-4.74999 0.108
+-4.71668 0.108
+-4.68334 -0.602
+-4.65001 0.008
+-4.61667 -0.297
+-4.58333 -0.602
+-4.55 0.617
+-4.51666 0.008
+-4.48333 0.313
+-4.44999 0.617
+-4.41668 0.717
+-4.38334 -0.197
+-4.35001 1.022
+-4.31667 -0.097
+-4.28333 -0.402
+-4.25 -0.911
+-4.21666 -1.726
+-4.18333 -1.626
+-4.14999 -2.235
+-4.11668 -2.440
+-4.08334 -2.340
+-4.05001 -1.531
+-4.01667 -1.735
+-3.98333 -1.635
+-3.95 -1.840
+-3.91666 -1.945
+-3.88333 -2.150
+-3.84999 -2.255
+-3.81668 -1.850
+-3.78334 -1.955
+-3.75001 -2.364
+-3.71667 -1.350
+-3.68333 -0.540
+-3.65 -0.340
+-3.61666 -1.359
+-3.58333 -0.855
+-3.54999 -0.959
+-3.51668 -1.574
+-3.48334 -1.679
+-3.45001 -2.088
+-3.41667 -1.483
+-3.38333 -1.893
+-3.35 -1.593
+-3.31666 -1.393
+-3.28333 -1.093
+-3.24999 -0.488
+-3.21668 0.117
+-3.18334 0.112
+-3.15001 0.412
+-3.11667 -0.203
+-3.08333 0.402
+-3.05 -0.822
+-3.01666 -1.131
+-2.98333 -0.831
+-2.94999 -0.736
+-2.91668 -1.960
+-2.88334 -1.965
+-2.85001 -1.870
+-2.81667 -1.875
+-2.78333 -1.475
+-2.75 -1.075
+-2.71666 -1.079
+-2.68333 -0.375
+-2.64999 -0.889
+-2.61668 -1.099
+-2.58334 -1.003
+-2.55001 -0.908
+-2.51667 -1.218
+-2.48333 -1.937
+-2.45 -2.451
+-2.41666 -2.661
+-2.38333 -3.480
+-2.34999 -3.690
+-2.31668 -4.204
+-2.28334 -4.009
+-2.25001 -3.914
+-2.21667 -3.209
+-2.18333 -3.014
+-2.15 -2.004
+-2.11666 -1.604
+-2.08333 -0.495
+-2.04999 -0.399
+-2.01668 0.101
+-1.98334 0.196
+-1.95001 0.086
+-1.91667 -0.328
+-1.88333 0.072
+-1.85 0.267
+-1.81666 -0.452
+-1.78333 -0.662
+-1.74999 0.448
+-1.71668 0.338
+-1.68334 0.129
+-1.65001 -0.286
+-1.61667 -0.091
+-1.58333 -0.810
+-1.55 -1.020
+-1.51666 -1.129
+-1.48333 -2.153
+-1.44999 -2.263
+-1.41668 -2.472
+-1.38334 -2.277
+-1.35001 -2.387
+-1.31667 -3.106
+-1.28333 -3.011
+-1.25 -3.120
+-1.21666 -2.925
+-1.18333 -3.035
+-1.14999 -2.940
+-1.11668 -3.964
+-1.08334 -2.549
+-1.05001 -2.454
+-1.01667 -2.259
+-0.983333 -1.959
+-0.949997 -1.359
+-0.916661 -1.468
+-0.883325 -1.578
+-0.849989 -2.092
+-0.816677 -2.507
+-0.783341 -2.716
+-0.750005 -2.826
+-0.716669 -2.121
+-0.683333 -1.416
+-0.649997 -1.526
+-0.616661 -2.345
+-0.583325 -0.626
+-0.549989 -0.531
+-0.516677 -0.436
+-0.483341 -0.340
+-0.450005 -0.550
+-0.416669 -0.660
+-0.383333 -0.869
+-0.349997 -1.993
+-0.316661 -1.898
+-0.283325 -2.108
+-0.249989 -2.927
+-0.216677 -3.236
+-0.183341 -3.446
+-0.150005 -2.741
+-0.116669 -3.256
+-0.0833333 -3.260
+-0.0499973 -2.251
+-0.0166613 -1.241
+0.0166747 -2.770
+0.0500107 -2.065
+0.0833227 -2.375
+0.116659 -2.684
+0.149995 -2.589
+0.183331 -2.289
+0.216667 -1.989
+0.250003 -2.299
+0.283339 -1.694
+0.316675 -0.784
+0.350011 -0.484
+0.383323 -1.099
+0.416659 -1.104
+0.449995 -0.499
+0.483331 -0.504
+0.516667 -0.608
+0.550003 -0.613
+0.583339 -0.413
+0.616675 -1.028
+0.650011 -1.437
+0.683323 -0.528
+0.716659 -0.937
+0.749995 -1.347
+0.783331 -1.756
+0.816667 -0.947
+0.850003 -1.052
+0.883339 -0.852
+0.916675 -0.652
+0.950011 -0.452
+0.983323 -1.166
+1.01666 -1.371
+1.04999 -1.780
+1.08333 -0.361
+1.11667 -0.261
+1.15 -0.976
+1.18334 -1.180
+1.21667 -0.166
+1.25001 0.339
+1.28332 0.439
+1.31666 -0.680
+1.34999 -0.580
+1.38333 -0.176
+1.41667 -0.685
+1.45 0.024
+1.48334 -0.890
+1.51667 -0.485
+1.55001 0.834
+1.58332 0.224
+1.61666 0.020
+1.64999 0.324
+1.68333 -0.185
+1.71667 0.120
+1.75 -0.085
+1.78334 0.524
+1.81667 1.134
+1.85001 1.134
+1.88332 1.439
+1.91666 2.353
+1.94999 2.353
+1.98333 2.353
+2.01667 1.134
+2.05 1.034
+2.08334 1.644
+2.11667 0.729
+2.15001 0.324
+2.18332 -0.285
+2.21666 0.224
+2.24999 -0.080
+2.28333 -0.485
+2.31667 0.939
+2.35 1.244
+2.38334 1.448
+2.41667 1.044
+2.45001 1.248
+2.48332 2.063
+2.51666 1.658
+2.54999 2.472
+2.58333 1.458
+2.61667 1.053
+2.65 0.548
+2.68334 1.972
+2.71667 1.568
+2.75001 1.368
+2.78332 0.658
+2.81666 -0.456
+2.84999 4.016
+2.88333 21.799
+2.91667 67.724
+2.95 155.002
+2.98334 213.324
+3.01667 208.956
+3.05001 177.057
+3.08332 116.202
+3.11666 28.219
+3.14999 -62.507
+8.88333 -78.426
+8.91667 -162.351
+8.95 -129.537
+8.98334 -105.563
+9.01667 -61.471
+9.05001 -0.006
+9.08332 4.256
+9.11666 15.124
+9.14999 42.451
+9.18333 47.628
+9.21667 59.716
+9.25 90.700
+9.28334 85.514
+9.31667 68.745
+9.35001 100.340
+9.38332 73.208
+9.41666 44.247
+9.44999 20.063
+9.48333 -32.368
+9.51667 -98.515
+9.55 -117.722
+9.58334 -117.422
+9.61667 -117.122
+9.65001 -116.617
+9.68332 -85.227
+9.71666 -34.535
+9.74999 8.132
+9.78333 29.159
+9.81667 58.720
+9.85 100.168
+9.88334 96.810
+9.91667 73.945
+9.95001 43.865
+9.98332 6.979
+10.0167 -13.447
+10.05 -15.586
+10.0833 4.931
+10.1167 21.081
+10.15 37.231
+10.1833 45.860
+10.2167 36.407
+10.25 13.032
+10.2833 -11.966
+10.3167 -28.940
+10.35 -64.911
+10.3833 -75.279
+10.4167 -37.389
+10.45 6.193
+10.4833 35.549
+10.5167 63.586
+10.55 77.092
+10.5833 60.628
+10.6167 22.928
+10.65 -8.776
+10.6833 -57.754
+10.7167 -73.913
+10.75 -69.551
+10.7833 -34.198
+10.8167 -8.195
+10.85 10.393
+10.8833 7.745
+10.9167 6.216
+10.95 -27.317
+10.9833 -40.023
+11.0167 -38.814
+11.05 -59.440
+11.0833 -46.034
+11.1167 -21.045
+11.15 -15.768
+11.1833 -1.142
+11.2167 28.419
+11.25 41.825
+11.2833 38.467
+11.3167 43.439
+11.35 30.938
+11.3833 16.607
+11.4167 -9.001
+11.45 -28.208
+11.4833 -45.891
+11.5167 -68.756
+11.55 -66.018
+11.5833 -61.246
+11.6167 -52.107
+11.65 -31.080
+11.6833 -8.530
+11.7167 7.215
+11.75 18.793
+11.7833 30.675
+11.8167 18.074
+11.85 15.935
+11.8833 30.766
+11.9167 36.452
+11.95 41.324
+11.9833 46.096
+12.0167 53.916
+12.05 49.544
+12.0833 38.162
+12.1167 31.961
+12.15 11.739
+12.1833 -8.787
+12.2167 -35.714
+12.25 -55.631
+12.2833 -60.613
+12.3167 -62.951
+12.35 -57.265
+12.3833 -76.267
+12.4167 -54.527
+12.45 -29.433
+12.4833 -3.630
+12.5167 1.347
+12.55 9.677
+12.5833 30.808
+12.6167 33.651
+12.65 20.440
+12.6833 32.327
+12.7167 26.941
+12.75 6.010
+12.7833 10.986
+12.8167 8.343
+12.85 8.648
+12.8833 23.683
+12.9167 22.464
+12.95 2.752
+12.9833 -2.430
+13.0167 -14.622
+13.05 -13.302
+13.0833 -1.110
+13.1167 -11.169
+13.15 -12.693
+13.1833 -0.806
+13.2167 2.547
+13.25 -7.206
+13.2833 1.228
+13.3167 17.078
+13.35 16.773
+13.3833 23.988
+13.4167 28.255
+13.45 33.642
+13.4833 43.091
+13.5167 23.179
+13.55 12.410
+13.5833 7.129
+13.6167 -14.917
+13.65 -40.010
+13.6833 -52.303
+13.7167 -51.488
+13.75 -62.561
+13.7833 -64.795
+13.8167 -58.799
+13.85 -48.535
+13.8833 -36.848
+13.9167 -19.574
+13.95 -12.154
+13.9833 -1.586
+14.0167 0.042
+14.05 3.905
+14.0833 -1.172
+14.1167 6.858
+14.15 4.524
+14.1833 1.886
+14.2167 7.577
+14.25 29.323
+14.2833 38.267
+14.3167 30.142
+14.35 19.174
+14.3833 9.220
+14.4167 -13.230
+14.45 -6.420
+14.4833 -8.549
+14.5167 -16.369
+14.55 -8.949
+14.5833 -0.105
+14.6167 2.743
+14.65 1.834
+14.6833 9.763
+14.7167 25.413
+14.75 32.123
+14.7833 36.700
+14.8167 36.705
+14.85 22.994
+14.8833 5.725
+14.9167 -19.569
+14.95 -29.622
+14.9833 -26.570
+15.0167 -26.055
+15.05 -13.858
+15.0833 -2.576
+15.1167 -13.544
+15.15 -16.892
+15.1833 -13.025
+15.2167 -12.106
+15.25 -14.539
+15.2833 -17.073
+15.3167 -15.239
+15.35 6.611
+15.3833 21.856
+15.4167 33.953
+15.45 42.797
+15.4833 32.339
+15.5167 22.490
+15.55 3.497
+15.5833 -19.663
+15.6167 -49.934
+15.65 -61.611
+15.6833 -52.562
+15.7167 -45.342
+15.75 -27.150
+15.7833 -12.005
+15.8167 4.969
+15.85 21.333
+15.8833 28.553
+15.9167 24.495
+15.95 15.561
+15.9833 20.038
+16.0167 14.456
+16.05 17.104
+16.0833 22.395
+16.1167 29.006
+16.15 40.188
+16.1833 39.993
+16.2167 38.679
+16.25 22.124
+16.2833 13.699
+16.3167 -10.170
+16.35 -35.259
+16.3833 -67.763
+16.4167 -79.441
+16.45 -61.348
+16.4833 -56.871
+16.5167 -42.131
+16.55 -23.938
+16.5833 -2.797
+16.6167 9.299
+16.65 21.601
+16.6833 23.944
+16.7167 10.643
+16.75 9.838
+16.7833 3.647
+16.8167 -3.864
+16.85 -3.654
+16.8833 4.075
+16.9167 24.707
+16.95 27.255
+16.9833 9.991
+17.0167 1.361
+17.05 4.823
+17.0833 4.119
+17.1167 -4.001
+17.15 -13.545
+17.1833 -11.912
+17.2167 -14.850
+17.25 -13.421
+17.2833 3.147
+17.3167 14.025
+17.35 25.107
+17.3833 22.269
+17.4167 19.026
+17.45 18.321
+17.4833 12.130
+17.5167 10.106
+17.55 9.706
+17.5833 12.963
+17.6167 15.511
+17.65 12.063
+17.6833 12.578
+17.7167 14.311
+17.75 -1.124
+17.7833 -6.705
+17.8167 -16.249
+17.85 -23.660
+17.8833 -21.621
+17.9167 -13.487
+17.95 -8.096
+17.9833 -8.496
+18.0167 -1.581
+18.05 5.030
+18.0833 13.469
+18.1167 22.923
+18.15 9.721
+18.1833 -19.330
+18.2167 -28.165
+18.25 -28.565
+18.2833 -30.084
+18.3167 -20.121
+18.35 -6.705
+18.3833 7.221
+18.4167 22.161
+18.45 35.577
+18.4833 38.325
+18.5167 36.401
+18.55 37.625
+18.5833 34.582
+18.6167 22.395
+18.65 9.903
+18.6833 14.579
+18.7167 9.403
+18.75 -5.223
+18.7833 -15.581
+18.8167 -19.439
+18.85 -16.386
+18.8833 -19.329
+18.9167 -18.920
+18.95 -16.172
+18.9833 -17.286
+19.0167 -17.181
+19.05 -25.916
+19.0833 -34.041
+19.1167 -30.583
+19.15 -22.858
+19.1833 -27.021
+19.2167 -27.525
+19.25 -21.225
+19.2833 -4.356
+19.3167 10.379
+19.35 23.386
+19.3833 27.248
+19.4167 34.973
+19.45 33.044
+19.4833 25.629
+19.5167 19.738
+19.55 11.713
+19.5833 5.517
+19.6167 2.369
+19.65 5.317
+19.6833 -0.269
+19.7167 -6.975
+19.75 -11.952
+19.7833 -2.503
+19.8167 1.359
+19.85 -3.213
+19.8833 -7.175
+19.9167 -4.127
+19.95 2.274
+19.9833 -2.908
+20.0167 -5.041
+20.05 -14.185
+20.0833 -12.052
+20.1167 0.445
+20.15 4.507
+20.1833 -0.674
+20.2167 -10.023
+20.25 -13.376
+20.2833 -17.543
+20.3167 -22.015
+20.35 -19.781
+20.3833 -18.562
+20.4167 -16.938
+20.45 -11.961
+20.4833 -3.532
+20.5167 0.835
+20.55 -2.722
+20.5833 3.779
+20.6167 8.551
+20.65 1.945
+20.6833 11.594
+20.7167 25.815
+20.75 24.696
+20.7833 28.858
+20.8167 27.229
+20.85 19.809
+20.8833 17.875
+20.9167 18.075
+20.95 10.351
+20.9833 4.859
+21.0167 4.755
+21.05 -8.761
+21.0833 -11.509
+21.1167 -8.261
+21.15 -4.304
+21.1833 -10.709
+21.2167 -14.372
+21.25 -17.220
+21.2833 -16.615
+21.3167 -21.801
+21.35 -21.501
+21.3833 -18.763
+21.4167 -16.329
+21.45 -15.929
+21.4833 -25.078
+21.5167 -27.826
+21.55 -14.625
+21.5833 -2.742
+21.6167 1.925
+21.65 5.578
+21.6833 7.807
+21.7167 7.597
+21.75 2.106
+21.7833 -4.809
+21.8167 -1.666
+21.85 12.450
+21.8833 12.240
+21.9167 13.555
+21.95 13.345
+21.9833 10.697
+22.0167 5.306
+22.05 -1.000
+22.0833 -7.205
+22.1167 -4.367
+22.15 3.958
+22.1833 17.259
+22.2167 19.793
+22.25 12.978
+22.2833 13.378
+22.3167 20.583
+22.35 13.973
+22.3833 2.891
+22.4167 0.343
+22.45 1.047
+22.4833 2.157
+22.5167 0.523
+22.55 -8.425
+22.5833 -21.742
+22.6167 -25.509
+22.65 -31.105
+22.6833 -36.091
+22.7167 -38.334
+22.75 -33.872
+22.7833 -22.704
+22.8167 -11.841
+22.85 -11.950
+22.8833 -12.669
+22.9167 -8.512
+22.95 0.218
+22.9833 -1.111
+23.0167 1.927
+23.05 0.499
+23.0833 -5.707
+23.1167 -0.940
+23.15 -1.964
+23.1833 -10.913
+23.2167 -9.803
+23.25 -5.645
+23.2833 6.437
+23.3167 6.937
+23.35 9.571
+23.3833 9.461
+23.4167 9.961
+23.45 13.814
+23.4833 22.239
+23.5167 21.519
+23.55 20.091
+23.5833 24.248
+23.6167 14.690
+23.65 0.864
+23.6833 -6.256
+23.7167 -16.424
+23.75 -21.510
+23.7833 -25.278
+23.8167 -36.970
+23.85 -39.822
+23.8833 -39.422
+23.9167 -35.265
+23.95 -27.245
+23.9833 -24.611
+24.0167 -19.639
+24.05 -13.043
+24.0833 -2.890
+24.1167 2.487
+24.15 2.278
+24.1833 -0.066
+24.2167 -1.190
+24.25 0.225
+24.2833 10.379
+24.3167 10.169
+24.35 6.911
+24.3833 5.482
+24.4167 -0.518
+24.45 1.406
+24.4833 7.597
+24.5167 14.603
+24.55 16.527
+24.5833 20.279
+24.6167 18.446
+24.65 12.140
+24.6833 8.782
+24.7167 -1.181
+24.75 -9.110
+24.7833 -20.293
+24.8167 -31.880
+24.85 -39.200
+24.8833 -35.852
+24.9167 -35.552
+24.95 -25.803
+24.9833 -13.616
+25.0167 -7.525
+25.05 -7.834
+25.0833 -7.330
+25.1167 -7.639
+25.15 -9.168
+25.1833 -12.016
+25.2167 -15.069
+25.25 -12.735
+25.2833 -3.391
+25.3167 -2.886
+25.35 0.766
+25.3833 1.576
+25.4167 -9.806
+25.45 -14.178
+25.4833 -20.989
+25.5167 -18.755
+25.55 -13.374
+25.5833 -2.506
+25.6167 4.910
+25.65 8.158
+25.6833 11.001
+25.7167 18.516
+25.75 18.921
+25.7833 21.155
+25.8167 16.682
+25.85 0.018
+25.8833 -10.550
+25.9167 -10.145
+25.95 -9.130
+25.9833 -8.421
+26.0167 -6.187
+26.05 4.581
+26.0833 12.506
+26.1167 11.691
+26.15 8.948
+26.1833 8.948
+26.2167 6.000
+26.25 -1.925
+26.2833 -8.935
+26.3167 -17.165
+26.35 -26.614
+26.3833 -31.490
+26.4167 -27.528
+26.45 -31.490
+26.4833 -39.415
+26.5167 -43.073
+26.55 -45.916
+26.5833 -37.077
+26.6167 -33.214
+26.65 -24.680
+26.6833 -13.502
+26.7167 9.358
+26.75 20.231
+26.7833 20.435
+26.8167 29.479
+26.85 29.684
+26.8833 22.269
+26.9167 16.378
+26.95 10.486
+26.9833 7.948
+27.0167 12.420
+27.05 12.930
+27.0833 10.596
+27.1167 6.229
+27.15 3.081
+27.1833 -1.386
+27.2167 4.610
+27.25 3.495
+27.2833 -3.715
+27.3167 -9.302
+27.35 -15.293
+27.3833 -18.846
+27.4167 -20.570
+27.45 -18.331
+27.4833 -15.788
+27.5167 -13.245
+27.55 -10.397
+27.5833 -9.682
+27.6167 -10.492
+27.65 -4.291
+27.6833 1.300
+27.7167 1.100
+27.75 3.848
+27.7833 2.429
+27.8167 4.667
+27.85 7.415
+27.8833 -0.405
+27.9167 -9.544
+27.95 -23.460
+27.9833 -24.979
+28.0167 -24.670
+28.05 -24.260
+28.0833 -18.159
+28.1167 -12.058
+28.15 -3.724
+28.1833 7.863
+28.2167 12.440
+28.25 15.188
+28.2833 22.813
+28.3167 27.390
+28.35 23.737
+28.3833 21.303
+28.4167 11.250
+28.45 0.586
+28.4833 -4.286
+28.5167 -1.842
+28.55 -2.142
+28.5833 -13.720
+28.6167 -17.982
+28.65 -19.502
+28.6833 -20.511
+28.7167 -14.715
+28.75 -11.053
+28.7833 -14.706
+28.8167 -16.934
+28.85 -17.844
+28.8833 -16.010
+28.9167 -10.010
+28.95 -7.566
+28.9833 -2.990
+29.0167 -2.170
+29.05 -8.262
+29.0833 -12.524
+29.1167 -22.982
+29.15 -20.844
+29.1833 -10.881
+29.2167 -4.170
+29.25 2.440
+29.2833 4.274
+29.3167 9.460
+29.35 15.156
+29.3833 22.476
+29.4167 18.723
+29.45 13.851
+29.4833 3.393
+29.5167 -7.880
+29.55 -7.366
+29.5833 -0.960
+29.6167 -2.174
+29.65 -4.403
+29.6833 -3.484
+29.7167 -8.456
+29.75 -6.318
+29.7833 -4.179
+29.8167 -6.103
+29.85 -9.146
+29.8833 -11.680
+29.9167 -14.114
+29.95 -8.318
+29.9833 -9.532
+30.0167 -2.007
+30.05 2.265
+30.0833 -1.693
+30.1167 -7.479
+30.15 -8.489
+30.1833 -6.045
+30.2167 -6.345
+30.25 -9.389
+30.2833 -12.127
+30.3167 -9.074
+30.35 -7.545
+30.3833 -11.503
+30.4167 -8.755
+30.45 -6.617
+30.4833 -9.660
+30.5167 -11.179
+30.55 -9.550
+30.5833 -14.118
+30.6167 -17.161
+30.65 -16.851
+30.6833 -15.222
+30.7167 -14.608
+30.75 -5.054
+30.7833 0.132
+30.8167 1.456
+30.85 6.033
+30.8833 13.758
+30.9167 13.253
+30.95 16.915
+30.9833 17.020
+31.0167 9.200
+31.05 -1.363
+31.0833 -13.145
+31.1167 -16.394
+31.15 -12.936
+31.1833 -17.403
+31.2167 -20.042
+31.25 -21.156
+31.2833 -26.133
+31.3167 -34.867
+31.35 -33.848
+31.3833 -32.119
+31.4167 -22.870
+31.45 -12.302
+31.4833 -10.878
+31.5167 -10.164
+31.55 -10.264
+31.5833 -8.535
+31.6167 -8.940
+31.65 -4.163
+31.6833 2.138
+31.7167 7.524
+31.75 8.643
+31.7833 4.276
+31.8167 3.262
+31.85 -0.396
+31.8833 -7.506
+31.9167 -5.168
+31.95 -8.216
+31.9833 -11.364
+32.0167 -10.754
+32.05 -11.059
+32.0833 -7.097
+32.1167 -3.234
+32.15 -2.320
+32.1833 4.691
+32.2167 4.995
+32.25 7.739
+32.2833 4.386
+32.3167 -5.268
+32.35 -5.268
+32.3833 0.523
+32.4167 1.843
+32.45 -0.901
+32.4833 -0.496
+32.5167 -0.496
+32.55 -2.834
+32.5833 -3.649
+32.6167 -9.135
+32.65 -12.388
+32.6833 -15.641
+32.7167 -17.979
+32.75 -20.318
+32.7833 -21.132
+32.8167 -19.508
+32.85 -16.260
+32.8833 -8.845
+32.9167 -8.440
+32.95 -0.925
+32.9833 2.833
+33.0167 4.557
+33.05 3.743
+33.0833 7.600
+33.1167 6.176
+33.15 -0.939
+33.1833 -3.482
+33.2167 -6.025
+33.25 -5.825
+33.2833 -6.540
+33.3167 -9.693
+33.35 -13.150
+33.3833 -12.341
+33.4167 -14.884
+33.45 -15.294
+33.4833 -8.693
+33.5167 -6.869
+33.55 -0.573
+33.5833 6.638
+33.6167 9.071
+33.65 6.223
+33.6833 2.561
+33.7167 -5.978
+33.75 -6.388
+33.7833 -5.173
+33.8167 -6.397
+33.85 -13.208
+33.8833 -17.480
+33.9167 -21.142
+33.95 -22.366
+33.9833 -16.275
+34.0167 -12.622
+34.05 -4.397
+34.0833 1.694
+34.1167 0.165
+34.15 -3.193
+34.1833 -10.818
+34.2167 -18.342
+34.25 -22.005
+34.2833 -20.181
+34.3167 -18.662
+34.35 -17.652
+34.3833 -17.047
+34.4167 -20.710
+34.45 -18.481
+34.4833 -11.170
+34.5167 -5.284
+34.55 3.855
+34.5833 13.399
+34.6167 14.919
+34.65 14.099
+34.6833 14.095
+34.7167 15.104
+34.75 14.185
+34.7833 4.222
+34.8167 0.255
+34.85 -5.137
+34.8833 -5.042
+34.9167 -7.790
+34.95 -12.266
+34.9833 -12.476
+35.0167 -15.419
+35.05 -16.958
+35.0833 -16.253
+35.1167 -20.220
+35.15 -17.077
+35.1833 -11.800
+35.2167 -5.709
+35.25 -2.566
+35.2833 -0.337
+35.3167 4.535
+35.35 4.326
+35.3833 5.540
+35.4167 4.721
+35.45 5.121
+35.4833 3.287
+35.5167 -0.885
+35.55 -8.205
+35.5833 -12.072
+35.6167 -12.991
+35.65 -11.372
+35.6833 -10.767
+35.7167 -13.110
+35.75 -8.543
+35.7833 -3.062
+35.8167 1.606
+35.85 0.686
+35.8833 1.291
+35.9167 -4.405
+35.95 -10.201
+35.9833 -12.339
+36.0167 -18.440
+36.05 -21.798
+36.0833 -16.011
+36.1167 -9.006
+36.15 -6.572
+36.1833 -2.005
+36.2167 4.086
+36.25 7.739
+36.2833 6.820
+36.3167 4.886
+36.35 0.310
+36.3833 -1.524
+36.4167 1.724
+36.45 4.462
+36.4833 4.662
+36.5167 1.305
+36.55 -3.067
+36.5833 -0.734
+36.6167 0.076
+36.65 0.986
+36.6833 3.624
+36.7167 3.824
+36.75 1.281
+36.7833 -3.396
+36.8167 -7.768
+36.85 -13.459
+36.8833 -13.564
+36.9167 -11.840
+36.95 -16.922
+36.9833 -18.246
+37.0167 -24.242
+37.05 -29.528
+37.0833 -30.952
+37.1167 -27.499
+37.15 -25.875
+37.1833 -18.460
+37.2167 -6.982
+37.25 0.028
+37.2833 1.652
+37.3167 2.666
+37.35 6.119
+37.3833 8.962
+37.4167 7.438
+37.45 5.100
+37.4833 1.747
+37.5167 -0.896
+37.55 -3.030
+37.5833 -0.591
+37.6167 3.981
+37.65 3.166
+37.6833 8.043
+37.7167 6.519
+37.75 3.371
+37.7833 -4.249
+37.8167 -4.249
+37.85 -2.725
+37.8833 -2.825
+37.9167 -0.691
+37.95 -0.486
+37.9833 -1.401
+38.0167 -3.939
+38.05 -8.916
+38.0833 -16.536
+38.1167 -21.513
+38.15 -22.832
+38.1833 -21.408
+38.2167 -23.032
+38.25 -24.961
+38.2833 -22.418
+38.3167 -17.946
+38.35 -12.864
+38.3833 -9.711
+38.4167 -5.849
+38.45 0.962
+38.4833 7.262
+38.5167 8.282
+38.55 6.253
+38.5833 1.886
+38.6167 -2.277
+38.65 -5.830
+38.6833 -9.992
+38.7167 -16.898
+38.75 -22.889
+38.7833 -23.698
+38.8167 -22.070
+38.85 -16.883
+38.8833 -11.597
+38.9167 -9.054
+38.95 0.095
+38.9833 12.392
+39.0167 13.411
+39.05 14.026
+39.0833 15.555
+39.1167 11.087
+39.15 4.082
+39.1833 -0.181
+39.2167 -4.443
+39.25 -8.606
+39.2833 -11.954
+39.3167 -10.730
+39.35 -7.982
+39.3833 -2.186
+39.4167 1.172
+39.45 3.820
+39.4833 3.825
+39.5167 0.782
+39.55 -3.481
+39.5833 -7.843
+39.6167 -12.715
+39.65 -13.320
+39.6833 -14.939
+39.7167 -18.897
+39.75 -19.906
+39.7833 -17.158
+39.8167 -14.510
+39.85 -9.729
+39.8833 -3.018
+39.9167 0.849
+39.95 4.411
+39.9833 8.074
+40.0167 8.893
+40.05 10.931
+40.0833 12.055
+40.1167 15.008
+40.15 11.865
+40.1833 6.588
+40.2167 1.616
+40.25 -4.880
+40.2833 -8.328
+40.3167 -10.252
+40.35 -6.385
+40.3833 -0.079
+40.4167 3.688
+40.45 3.288
+40.4833 8.679
+40.5167 13.156
+40.55 16.109
+40.5833 14.999
+40.6167 11.247
+40.65 6.275
+40.6833 -2.760
+40.7167 -7.732
+40.75 -14.023
+40.7833 -16.862
+40.8167 -15.738
+40.85 -15.323
+40.8833 -9.322
+40.9167 -7.079
+40.95 -4.736
+40.9833 -3.102
+41.0167 -1.369
+41.05 -1.564
+41.0833 -1.964
+41.1167 -0.940
+41.15 0.084
+41.1833 2.732
+41.2167 8.328
+41.25 10.671
+41.2833 13.829
+41.3167 15.867
+41.35 8.662
+41.3833 4.199
+41.4167 0.142
+41.45 -5.540
+41.4833 -10.817
+41.5167 -8.573
+41.55 -4.097
+41.5833 -7.340
+41.6167 -5.706
+41.65 -7.325
+41.6833 -7.521
+41.7167 -7.006
+41.75 -6.287
+41.7833 -6.077
+41.8167 -3.225
+41.85 0.338
+41.8833 1.462
+41.9167 0.047
+41.95 -0.657
+41.9833 -1.157
+42.0167 0.271
+42.05 1.395
+42.0833 3.029
+42.1167 5.372
+42.15 8.325
+42.1833 7.011
+42.2167 5.901
+42.25 3.672
+42.2833 -1.300
+42.3167 -4.748
+42.35 -9.110
+42.3833 -12.558
+42.4167 -13.263
+42.45 -16.406
+42.4833 -17.111
+42.5167 -15.073
+42.55 -11.815
+42.5833 -7.238
+42.6167 -3.371
+42.65 -0.418
+42.6833 0.096
+42.7167 -0.813
+42.75 -2.737
+42.7833 -5.476
+42.8167 -3.437
+42.85 -0.080
+42.8833 2.973
+42.9167 5.011
+42.95 10.198
+42.9833 11.727
+43.0167 8.988
+43.05 5.335
+43.0833 7.169
+43.1167 3.821
+43.15 1.692
+43.1833 0.173
+43.2167 -0.737
+43.25 -3.780
+43.2833 -6.113
+43.3167 -6.718
+43.35 -9.052
+43.3833 -10.571
+43.4167 -8.028
+43.45 -11.581
+43.4833 -18.281
+43.5167 -18.481
+43.55 -16.548
+43.5833 -14.919
+43.6167 -9.023
+43.65 -6.785
+43.6833 -2.108
+43.7167 5.412
+43.75 8.870
+43.7833 7.146
+43.8167 8.875
+43.85 5.931
+43.8833 4.917
+43.9167 2.988
+43.95 0.045
+43.9833 -2.189
+44.0167 -3.203
+44.05 -3.608
+44.0833 -3.403
+44.1167 -7.770
+44.15 -9.904
+44.1833 -7.565
+44.2167 -4.313
+44.25 -1.874
+44.2833 2.293
+44.3167 7.170
+44.35 9.203
+44.3833 10.423
+44.4167 7.070
+44.45 -0.245
+44.4833 -4.208
+44.5167 -6.646
+44.55 -12.133
+44.5833 -14.166
+44.6167 -13.252
+44.65 -15.995
+44.6833 -13.761
+44.7167 -7.665
+44.75 -4.822
+44.7833 -2.589
+44.8167 3.203
+44.85 4.217
+44.8833 2.488
+44.9167 -0.765
+44.95 -4.627
+44.9833 -1.989
+45.0167 -2.498
+45.05 -4.532
+45.0833 -6.770
+45.1167 -4.841
+45.15 -4.641
+45.1833 -3.017
+45.2167 0.231
+45.25 2.564
+45.2833 2.764
+45.3167 5.707
+45.35 6.822
+45.3833 7.327
+45.4167 6.917
+45.45 7.727
+45.4833 4.574
+45.5167 2.740
+45.55 0.502
+45.5833 -3.161
+45.6167 -4.789
+45.65 -9.671
+45.6833 -13.943
+45.7167 -12.524
+45.75 -11.309
+45.7833 -9.485
+45.8167 -10.405
+45.85 -11.629
+45.8833 -11.633
+45.9167 -12.757
+45.95 -14.591
+45.9833 -13.986
+46.0167 -14.501
+46.05 -14.201
+46.0833 -13.191
+46.1167 -11.062
+46.15 -7.919
+46.1833 -5.485
+46.2167 -0.513
+46.25 3.849
+46.2833 6.383
+46.3167 7.392
+46.35 4.439
+46.3833 3.620
+46.4167 1.887
+46.45 0.153
+46.4833 -3.409
+46.5167 -5.753
+46.55 -6.472
+46.5833 -8.510
+46.6167 -8.720
+46.65 -10.658
+46.6833 -14.221
+46.7167 -13.721
+46.75 -10.577
+46.7833 -8.249
+46.8167 -6.020
+46.85 -2.777
+46.8833 -0.448
+46.9167 0.867
+46.95 1.671
+46.9833 0.952
+47.0167 -1.501
+47.05 -3.839
+47.0833 -7.097
+47.1167 -9.035
+47.15 -10.669
+47.1833 -15.350
+47.2167 -18.508
+47.25 -18.313
+47.2833 -21.166
+47.3167 -24.933
+47.35 -25.042
+47.3833 -22.714
+47.4167 -17.032
+47.45 -13.484
+47.4833 -9.021
+47.5167 -5.473
+47.55 0.003
+47.5833 2.637
+47.6167 5.575
+47.65 7.599
+47.6833 13.586
+47.7167 14.086
+47.75 15.195
+47.7833 12.647
+47.8167 9.490
+47.85 3.589
+47.8833 -1.093
+47.9167 0.322
+47.95 2.955
+47.9833 1.931
+48.0167 1.822
+48.05 2.017
+48.0833 -4.189
+48.1167 -7.042
+48.15 -9.590
+48.1833 -13.662
+48.2167 -16.819
+48.25 -17.843
+48.2833 -18.258
+48.3167 -18.977
+48.35 -20.101
+48.3833 -20.515
+48.4167 -19.101
+48.45 -18.091
+48.4833 -14.543
+48.5167 -12.519
+48.55 -11.205
+48.5833 -10.400
+48.6167 -6.342
+48.65 -3.809
+48.6833 -3.004
+48.7167 0.139
+48.75 0.844
+48.7833 -0.790
+48.8167 -1.609
+48.85 -3.952
+48.8833 -4.466
+48.9167 -7.114
+48.95 -5.190
+48.9833 -3.876
+49.0167 -0.733
+49.05 1.496
+49.0833 1.796
+49.1167 4.025
+49.15 6.863
+49.1833 8.078
+49.2167 7.563
+49.25 8.168
+49.2833 7.958
+49.3167 3.382
+49.35 0.329
+49.3833 -3.638
+49.4167 -7.301
+49.45 -8.830
+49.4833 -9.139
+49.5167 -9.449
+49.55 -8.539
+49.5833 -8.239
+49.6167 -7.939
+49.65 -5.910
+49.6833 -5.610
+49.7167 -9.068
+49.75 -12.730
+49.7833 -13.750
+49.8167 -17.207
+49.85 -17.617
+49.8833 -16.707
+49.9167 -14.678
+49.95 -13.869
+49.9833 -13.464
+50.0167 -10.826
+50.05 -10.321
+50.0833 -8.902
+50.1167 -4.230
+50.15 0.238
+50.1833 4.605
+50.2167 7.243
+50.25 9.782
+50.2833 9.272
+50.3167 7.238
+50.35 3.986
+50.3833 0.733
+50.4167 -2.520
+50.45 -3.944
+50.4833 -5.063
+50.5167 -6.587
+50.55 -8.621
+50.5833 -11.569
+50.6167 -9.740
+50.65 -8.116
+50.6833 -6.287
+50.7167 -4.763
+50.75 -2.934
+50.7833 -3.239
+50.8167 -2.630
+50.85 -4.154
+50.8833 -5.373
+50.9167 -9.640
+50.95 -15.736
+50.9833 -18.579
+51.0167 -22.542
+51.05 -23.456
+51.0833 -21.422
+51.1167 -19.998
+51.15 -16.646
+51.1833 -12.174
+51.2167 -9.226
+51.25 -8.411
+51.2833 -5.668
+51.3167 -4.549
+51.35 -2.006
+51.3833 1.857
+51.4167 3.890
+51.45 5.314
+51.4833 6.129
+51.5167 5.929
+51.55 3.086
+51.5833 1.057
+51.6167 -0.872
+51.65 -4.730
+51.6833 -4.525
+51.7167 -4.115
+51.75 -5.534
+51.7833 -7.563
+51.8167 -8.678
+51.85 -11.011
+51.8833 -11.211
+51.9167 -12.021
+51.95 -12.526
+51.9833 -14.554
+52.0167 -16.888
+52.05 -19.526
+52.0833 -22.470
+52.1167 -24.598
+52.15 -22.970
+52.1833 -22.355
+52.2167 -18.898
+52.25 -17.064
+52.2833 -15.740
+52.3167 -14.211
+52.35 -10.754
+52.3833 -9.225
+52.4167 -6.782
+52.45 -3.019
+52.4833 0.338
+52.5167 3.391
+52.55 4.006
+52.5833 4.925
+52.6167 3.406
+52.65 2.801
+52.6833 0.977
+52.7167 -2.676
+52.75 -6.938
+52.7833 -9.677
+52.8167 -11.196
+52.85 -8.753
+52.8833 -5.700
+52.9167 -5.695
+52.95 -5.181
+52.9833 -1.823
+53.0167 -1.818
+53.05 -2.828
+53.0833 -3.433
+53.1167 -3.428
+53.15 -4.438
+53.1833 -4.433
+53.2167 -4.428
+53.25 -4.523
+53.2833 -3.909
+53.3167 -8.271
+53.35 -12.838
+53.3833 -15.677
+53.4167 -15.977
+53.45 -15.767
+53.4833 -16.067
+53.5167 -17.991
+53.55 -17.682
+53.5833 -18.082
+53.6167 -16.248
+53.65 -16.038
+53.6833 -14.914
+53.7167 -14.300
+53.75 -11.957
+53.7833 -9.818
+53.8167 -5.037
+53.85 -2.084
+53.8833 -0.860
+53.9167 0.569
+53.95 3.012
+53.9833 4.746
+54.0167 4.346
+54.05 3.741
+54.0833 2.427
+54.1167 -0.007
+54.15 -7.113
+54.1833 -10.461
+54.2167 -13.604
+54.25 -17.257
+54.2833 -17.657
+54.3167 -18.666
+54.35 -19.576
+54.3833 -17.438
+54.4167 -12.961
+54.45 -9.298
+54.4833 -4.821
+54.5167 -1.769
+54.55 -0.949
+54.5833 -0.335
+54.6167 -2.159
+54.65 -5.202
+54.6833 -8.955
+54.7167 -11.998
+54.75 -15.346
+54.7833 -17.780
+54.8167 -19.704
+54.85 -21.528
+54.8833 -19.694
+54.9167 -18.470
+54.95 -16.637
+54.9833 -14.498
+55.0167 -13.274
+55.05 -12.355
+55.0833 -12.860
+55.1167 -10.112
+55.15 -9.802
+55.1833 -10.407
+55.2167 -10.607
+55.25 -8.469
+55.2833 -8.464
+55.3167 -7.140
+55.35 -5.611
+55.3833 -6.116
+55.4167 -5.501
+55.45 -4.482
+55.4833 -4.987
+55.5167 -3.053
+55.55 -3.963
+55.5833 -5.382
+55.6167 -6.801
+55.65 -6.392
+55.6833 -5.982
+55.7167 -6.182
+55.75 -6.992
+55.7833 -8.921
+55.8167 -12.169
+55.85 -14.807
+55.8833 -17.650
+55.9167 -21.508
+55.95 -23.132
+55.9833 -24.856
+56.0167 -24.346
+56.05 -22.922
+56.0833 -19.769
+56.1167 -17.126
+56.15 -14.483
+56.1833 -10.621
+56.2167 -8.587
+56.25 -8.077
+56.2833 -3.605
+56.3167 0.052
+56.35 3.000
+56.3833 3.815
+56.4167 3.815
+56.45 4.629
+56.4833 4.934
+56.5167 2.191
+56.55 -2.481
+56.5833 -7.663
+56.6167 -13.759
+56.65 -15.588
+56.6833 -16.807
+56.7167 -14.978
+56.75 -16.807
+56.7833 -16.197
+56.8167 -13.964
+56.85 -12.440
+56.8833 -11.525
+56.9167 -14.169
+56.95 -15.083
+56.9833 -14.373
+57.0167 -14.273
+57.05 -14.273
+57.0833 -10.516
+57.1167 -8.892
+57.15 -4.829
+57.1833 -4.425
+57.2167 -6.458
+57.25 -10.016
+57.2833 -12.049
+57.3167 -12.459
+57.35 -13.273
+57.3833 -12.259
+57.4167 -12.669
+57.45 -13.178
+57.4833 -13.893
+57.5167 -12.878
+57.55 -11.764
+57.5833 -10.649
+57.6167 -8.925
+57.65 -6.997
+57.6833 -5.273
+57.7167 -6.901
+57.75 -5.177
+57.7833 -5.587
+57.8167 -5.387
+57.85 -4.782
+57.8833 -4.582
+57.9167 -3.163
+57.95 -1.134
+57.9833 -0.225
+58.0167 -3.073
+58.05 -5.516
+58.0833 -8.364
+58.1167 -13.245
+58.15 -17.008
+58.1833 -18.842
+58.2167 -21.285
+58.25 -20.780
+58.2833 -19.261
+58.3167 -17.132
+58.35 -16.222
+58.3833 -12.874
+58.4167 -13.184
+58.45 -11.360
+58.4833 -11.060
+58.5167 -11.674
+58.55 -10.765
+58.5833 -9.550
+58.6167 -8.945
+58.65 -8.036
+58.6833 -9.465
+58.7167 -9.469
+58.75 -9.474
+58.7833 -10.294
+58.8167 -8.774
+58.85 -8.474
+58.8833 -7.160
+58.9167 -7.165
+58.95 -7.679
+58.9833 -7.989
+59.0167 -9.922
+59.05 -10.337
+59.0833 -11.156
+59.1167 -11.466
+59.15 -13.809
+59.1833 -13.814
+59.2167 -15.547
+59.25 -15.147
+59.2833 -13.323
+59.3167 -8.656
+59.35 -6.427
+59.3833 -4.298
+59.4167 -2.984
+59.45 -4.108
+59.4833 -6.551
+59.5167 -7.370
+59.55 -10.628
+59.5833 -13.376
+59.6167 -14.805
+59.65 -17.148
+59.6833 -17.458
+59.7167 -18.277
+59.75 -18.182
+59.7833 -16.562
+59.8167 -15.958
+59.85 -16.472
+59.8833 -18.206
+59.9167 -19.734
+59.95 -17.810
+59.9833 -16.596
+60.0167 -13.453
+60.05 -9.700
+60.0833 -7.571
+60.1167 -5.342
+60.15 -5.347
+60.1833 -4.033
+60.2167 -4.952
+60.25 -8.210
+60.2833 -9.738
+60.3167 -6.086
+60.35 -5.686
+60.3833 -5.081
+60.4167 -3.866
+60.45 -2.552
+60.4833 -3.471
+60.5167 -3.476
+60.55 -5.310
+60.5833 -8.362
+60.6167 -12.634
+60.65 -18.430
+60.6833 -20.264
+60.7167 -19.050
+60.75 -18.445
+60.7833 -15.097
+60.8167 -10.530
+60.85 -6.877
+60.8833 -6.067
+60.9167 -5.767
+60.95 -4.858
+60.9833 -4.048
+61.0167 -4.358
+61.05 -5.072
+61.0833 -6.091
+61.1167 -5.486
+61.15 -6.201
+61.1833 -5.696
+61.2167 -6.106
+61.25 -7.734
+61.2833 -10.582
+61.3167 -10.382
+61.35 -12.621
+61.3833 -12.726
+61.4167 -12.830
+61.45 -15.169
+61.4833 -17.407
+61.5167 -16.902
+61.55 -16.498
+61.5833 -13.959
+61.6167 -11.321
+61.65 -9.392
+61.6833 -7.768
+61.7167 -4.925
+61.75 -3.910
+61.7833 -4.115
+61.8167 -4.930
+61.85 -8.487
+61.8833 -9.302
+61.9167 -10.421
+61.95 -12.554
+61.9833 -12.759
+62.0167 -11.845
+62.05 -11.540
+62.0833 -9.611
+62.1167 -5.039
+62.15 -1.991
+62.1833 -1.382
+62.2167 -0.467
+62.25 -1.686
+62.2833 -3.515
+62.3167 -7.478
+62.35 -10.221
+62.3833 -12.759
+62.4167 -13.978
+62.45 -15.298
+62.4833 -17.736
+62.5167 -17.226
+62.55 -16.107
+62.5833 -15.193
+62.6167 -14.378
+62.65 -14.478
+62.6833 -14.274
+62.7167 -14.678
+62.75 -12.035
+62.7833 -8.882
+62.8167 -7.154
+62.85 -4.815
+62.8833 -3.491
+62.9167 -4.506
+62.95 -1.048
+62.9833 -1.453
+63.0167 -3.177
+63.05 -4.291
+63.0833 -7.134
+63.1167 -9.163
+63.15 -9.973
+63.1833 -11.392
+63.2167 -10.982
+63.25 -9.658
+63.2833 -8.739
+63.3167 -6.806
+63.35 -5.786
+63.3833 -5.377
+63.4167 -5.067
+63.45 -6.486
+63.4833 -7.091
+63.5167 -10.339
+63.55 -10.639
+63.5833 -10.939
+63.6167 -11.444
+63.65 -11.134
+63.6833 -12.958
+63.7167 -12.649
+63.75 -12.644
+63.7833 -10.810
+63.8167 -10.806
+63.85 -10.496
+63.8833 -10.796
+63.9167 -10.791
+63.95 -10.277
+63.9833 -9.053
+64.0167 -8.134
+64.05 -5.386
+64.0833 -3.957
+64.1167 -3.952
+64.15 -4.047
+64.1833 -4.042
+64.2167 -6.271
+64.25 -8.400
+64.2833 -10.019
+64.3167 -11.029
+64.35 -12.548
+64.3833 -12.034
+64.4167 -12.738
+64.45 -10.395
+64.4833 -8.562
+64.5167 -7.133
+64.55 -7.228
+64.5833 -5.494
+64.6167 -5.285
+64.65 -5.685
+64.6833 -4.561
+64.7167 -5.570
+64.75 -4.142
+64.7833 -2.408
+64.8167 -3.418
+64.85 -3.513
+64.8833 -2.794
+64.9167 -4.108
+64.95 -6.337
+64.9833 -7.956
+65.0167 -11.404
+65.05 -14.038
+65.0833 -14.742
+65.1167 -14.838
+65.15 -15.642
+65.1833 -17.262
+65.2167 -16.442
+65.25 -13.894
+65.2833 -13.075
+65.3167 -10.427
+65.35 -8.489
+65.3833 -9.498
+65.4167 -9.389
+65.45 -10.094
+65.4833 -8.969
+65.5167 -6.117
+65.55 -5.602
+65.5833 -5.493
+65.6167 -4.978
+65.65 -4.869
+65.6833 -4.659
+65.7167 -3.940
+65.75 -1.597
+65.7833 -0.877
+65.8167 -0.973
+65.85 -1.473
+65.8833 -3.701
+65.9167 -5.016
+65.95 -5.516
+65.9833 -7.440
+66.0167 -10.073
+66.05 -11.388
+66.0833 -11.278
+66.1167 -10.154
+66.15 -9.335
+66.1833 -10.445
+66.2167 -9.625
+66.25 -7.077
+66.2833 -4.734
+66.3167 -5.134
+66.35 -6.449
+66.3833 -7.253
+66.4167 -6.129
+66.45 -7.749
+66.4833 -9.063
+66.5167 -7.125
+66.55 -6.305
+66.5833 -5.181
+66.6167 -3.143
+66.65 -0.190
+66.6833 0.019
+66.7167 -0.990
+66.75 -2.609
+66.7833 -2.705
+66.8167 -2.495
+66.85 -2.590
+66.8833 -4.514
+66.9167 -6.133
+66.95 -7.448
+66.9833 -9.272
+67.0167 -9.367
+67.05 -9.157
+67.0833 -9.762
+67.1167 -11.686
+67.15 -11.781
+67.1833 -10.862
+67.2167 -10.857
+67.25 -9.733
+67.2833 -8.814
+67.3167 -10.129
+67.35 -10.429
+67.3833 -11.948
+67.4167 -10.419
+67.45 -11.024
+67.4833 -9.800
+67.5167 -9.185
+67.55 -8.571
+67.5833 -7.042
+67.6167 -6.733
+67.65 -4.594
+67.6833 -3.575
+67.7167 -5.399
+67.75 -5.699
+67.7833 -6.204
+67.8167 -7.723
+67.85 -5.789
+67.8833 -5.380
+67.9167 -5.985
+67.95 -5.270
+67.9833 -1.508
+68.0167 -0.489
+68.05 0.835
+68.0833 0.026
+68.1167 -0.479
+68.15 -3.117
+68.1833 -5.046
+68.2167 -7.075
+68.25 -7.785
+68.2833 -8.594
+68.3167 -8.999
+68.35 -10.723
+68.3833 -11.128
+68.4167 -11.228
+68.45 -11.633
+68.4833 -11.733
+68.5167 -12.442
+68.55 -13.152
+68.5833 -13.252
+68.6167 -12.437
+68.65 -10.404
+68.6833 -10.709
+68.7167 -10.504
+68.75 -9.285
+68.7833 -7.861
+68.8167 -8.165
+68.85 -6.641
+68.8833 -6.032
+68.9167 -6.641
+68.95 -6.032
+68.9833 -5.727
+69.0167 -5.422
+69.05 -5.422
+69.0833 -5.322
+69.1167 -5.627
+69.15 -4.917
+69.1833 -6.441
+69.2167 -7.561
+69.25 -8.170
+69.2833 -8.375
+69.3167 -7.665
+69.35 -6.956
+69.3833 -5.637
+69.4167 -4.317
+69.45 -2.389
+69.4833 -1.884
+69.5167 -1.784
+69.55 -2.903
+69.5833 -3.922
+69.6167 -3.822
+69.65 -5.756
+69.6833 -7.080
+69.7167 -7.589
+69.75 -9.218
+69.7833 -10.237
+69.8167 -10.952
+69.85 -10.447
+69.8833 -10.247
+69.9167 -10.861
+69.95 -10.966
+69.9833 -11.071
+70.0167 -12.295
+70.05 -12.705
+70.0833 -16.062
+70.1167 -14.948
+70.15 -14.343
+70.1833 -12.519
+70.2167 -11.000
+70.25 -10.090
+70.2833 -10.195
+70.3167 -9.185
+70.35 -7.666
+70.3833 -6.757
+70.4167 -6.761
+70.45 -5.242
+70.4833 -3.623
+70.5167 -2.713
+70.55 -1.804
+70.5833 -1.709
+70.6167 -1.104
+70.65 -1.923
+70.6833 -3.657
+70.7167 -4.476
+70.75 -5.395
+70.7833 -6.519
+70.8167 -5.509
+70.85 -4.500
+70.8833 -5.319
+70.9167 -5.224
+70.95 -6.957
+70.9833 -7.777
+71.0167 -9.110
+71.05 -9.315
+71.0833 -10.439
+71.1167 -11.868
+71.15 -11.368
+71.1833 -11.273
+71.2167 -10.568
+71.25 -9.153
+71.2833 -9.058
+71.3167 -7.949
+71.35 -7.144
+71.3833 -8.268
+71.4167 -9.597
+71.45 -9.197
+71.4833 -11.135
+71.5167 -9.721
+71.55 -9.221
+71.5833 -8.211
+71.6167 -8.321
+71.65 -6.601
+71.6833 -6.711
+71.7167 -5.906
+71.75 -7.845
+71.7833 -7.649
+71.8167 -8.773
+71.85 -8.883
+71.8833 -8.383
+71.9167 -8.188
+71.95 -7.688
+71.9833 -6.578
+72.0167 -5.773
+72.05 -4.969
+72.0833 -4.164
+72.1167 -4.273
+72.15 -4.383
+72.1833 -6.017
+72.2167 -7.041
+72.25 -8.065
+72.2833 -9.698
+72.3167 -10.722
+72.35 -9.613
+72.3833 -7.589
+72.4167 -6.784
+72.45 -7.503
+72.4833 -8.527
+72.5167 -9.551
+72.55 -10.880
+72.5833 -12.614
+72.6167 -14.247
+72.65 -15.576
+72.6833 -15.076
+72.7167 -14.881
+72.75 -15.700
+72.7833 -13.676
+72.8167 -13.481
+72.85 -11.152
+72.8833 -8.923
+72.9167 -8.728
+72.95 -6.804
+72.9833 -4.780
+73.0167 -3.161
+73.05 -1.137
+73.0833 0.787
+73.1167 1.592
+73.15 1.382
+73.1833 -0.046
+73.2167 -2.390
+73.25 -4.023
+73.2833 -4.842
+73.3167 -7.186
+73.35 -7.395
+73.3833 -8.214
+73.4167 -7.814
+73.45 -8.024
+73.4833 -7.624
+73.5167 -7.629
+73.55 -8.143
+73.5833 -8.353
+73.6167 -10.796
+73.65 -10.701
+73.6833 -12.230
+73.7167 -12.134
+73.75 -11.225
+73.7833 -10.315
+73.8167 -10.525
+73.85 -10.530
+73.8833 -9.620
+73.9167 -12.063
+73.95 -12.678
+73.9833 -13.597
+74.0167 -14.821
+74.05 -14.926
+74.0833 -14.626
+74.1167 -12.802
+74.15 -11.687
+74.1833 -10.473
+74.2167 -8.444
+74.25 -7.534
+74.2833 -6.420
+74.3167 -5.915
+74.35 -6.630
+74.3833 -4.906
+74.4167 -2.877
+74.45 -2.372
+74.4833 -2.782
+74.5167 -3.191
+74.55 -4.310
+74.5833 -4.720
+74.6167 -7.668
+74.65 -8.382
+74.6833 -8.892
+74.7167 -8.997
+74.75 -11.030
+74.7833 -11.540
+74.8167 -12.050
+74.85 -11.950
+74.8833 -12.459
+74.9167 -10.835
+74.95 -11.445
+74.9833 -11.345
+75.0167 -11.854
+75.05 -12.464
+75.0833 -12.974
+75.1167 -11.754
+75.15 -11.450
+75.1833 -10.740
+75.2167 -11.350
+75.25 -10.740
+75.2833 -10.130
+75.3167 -8.911
+75.35 -7.997
+75.3833 -8.097
+75.4167 -9.926
+75.45 -9.621
+75.4833 -10.026
+75.5167 -9.111
+75.55 -7.687
+75.5833 -7.078
+75.6167 -6.568
+75.65 -6.668
+75.6833 -7.378
+75.7167 -7.173
+75.75 -5.749
+75.7833 -6.154
+75.8167 -6.558
+75.85 -6.963
+75.8833 -6.149
+75.9167 -6.554
+75.95 -5.839
+75.9833 -5.634
+76.0167 -6.749
+76.05 -7.763
+76.0833 -8.573
+76.1167 -10.602
+76.15 -11.006
+76.1833 -12.426
+76.2167 -13.235
+76.25 -13.130
+76.2833 -13.330
+76.3167 -14.140
+76.35 -12.206
+76.3833 -10.882
+76.4167 -10.473
+76.45 -9.454
+76.4833 -10.058
+76.5167 -11.173
+76.55 -10.458
+76.5833 -10.758
+76.6167 -10.044
+76.65 -9.430
+76.6833 -9.020
+76.7167 -8.710
+76.75 -7.182
+76.7833 -7.077
+76.8167 -5.853
+76.85 -5.543
+76.8833 -6.148
+76.9167 -6.348
+76.95 -8.172
+76.9833 -7.862
+77.0167 -7.248
+77.05 -6.024
+77.0833 -5.410
+77.1167 -4.490
+77.15 -4.790
+77.1833 -5.395
+77.2167 -5.795
+77.25 -7.619
+77.2833 -9.748
+77.3167 -10.048
+77.35 -11.058
+77.3833 -11.053
+77.4167 -10.134
+77.45 -10.838
+77.4833 -10.224
+77.5167 -9.305
+77.55 -9.095
+77.5833 -11.529
+77.6167 -12.234
+77.65 -12.229
+77.6833 -12.629
+77.7167 -12.319
+77.75 -11.500
+77.7833 -9.057
+77.8167 -8.238
+77.85 -7.318
+77.8833 -6.804
+77.9167 -6.494
+77.95 -7.809
+77.9833 -7.904
+78.0167 -8.509
+78.05 -8.909
+78.0833 -8.699
+78.1167 -8.694
+78.15 -10.009
+78.1833 -11.223
+78.2167 -11.014
+78.25 -11.414
+78.2833 -10.799
+78.3167 -9.066
+78.35 -8.551
+78.3833 -5.803
+78.4167 -3.155
+78.45 -3.555
+78.4833 -2.026
+78.5167 -1.817
+78.55 -3.641
+78.5833 -5.869
+78.6167 -6.269
+78.65 -8.094
+78.6833 -9.713
+78.7167 -9.403
+78.75 -10.108
+78.7833 -10.713
+78.8167 -10.503
+78.85 -11.718
+78.8833 -13.337
+78.9167 -13.637
+78.95 -14.342
+78.9833 -14.642
+79.0167 -12.908
+79.05 -11.989
+79.0833 -11.984
+79.1167 -10.860
+79.15 -10.855
+79.1833 -11.155
+79.2167 -9.931
+79.25 -8.807
+79.2833 -8.497
+79.3167 -9.102
+79.35 -9.097
+79.3833 -10.312
+79.4167 -10.002
+79.45 -9.083
+79.4833 -9.993
+79.5167 -8.769
+79.55 -6.021
+79.5833 -6.016
+79.6167 -6.521
+79.65 -7.125
+79.6833 -6.511
+79.7167 -7.725
+79.75 -7.925
+79.7833 -8.225
+79.8167 -9.035
+79.85 -9.030
+79.8833 -9.535
+79.9167 -9.430
+79.95 -9.425
+79.9833 -10.540
+80.0167 -10.130
+80.05 -10.635
+80.0833 -10.835
+80.1167 -12.254
+80.15 -12.454
+80.1833 -10.825
+80.2167 -11.635
+80.25 -10.921
+80.2833 -10.511
+80.3167 -12.135
+80.35 -12.945
+80.3833 -13.959
+80.4167 -13.854
+80.45 -13.649
+80.4833 -13.545
+80.5167 -13.035
+80.55 -11.306
+80.5833 -10.492
+80.6167 -8.458
+80.65 -6.425
+80.6833 -4.696
+80.7167 -5.101
+80.75 -3.067
+80.7833 -2.862
+80.8167 -2.962
+80.85 -2.048
+80.8833 -2.148
+80.9167 -2.453
+80.95 -2.857
+80.9833 -4.077
+81.0167 -5.905
+81.05 -6.820
+81.0833 -8.139
+81.1167 -9.053
+81.15 -10.882
+81.1833 -12.101
+81.2167 -12.306
+81.25 -11.392
+81.2833 -10.173
+81.3167 -9.258
+81.35 -9.158
+81.3833 -9.158
+81.4167 -9.363
+81.45 -10.177
+81.4833 -11.701
+81.5167 -11.906
+81.55 -13.025
+81.5833 -12.621
+81.6167 -13.740
+81.65 -12.421
+81.6833 -12.016
+81.7167 -12.221
+81.75 -11.206
+81.7833 -11.411
+81.8167 -12.430
+81.85 -13.549
+81.8833 -13.449
+81.9167 -13.249
+81.95 -11.525
+81.9833 -11.121
+82.0167 -9.701
+82.05 -8.587
+82.0833 -7.268
+82.1167 -7.373
+82.15 -7.173
+82.1833 -6.363
+82.2167 -5.858
+82.25 -5.963
+82.2833 -6.982
+82.3167 -6.782
+82.35 -7.092
+82.3833 -5.977
+82.4167 -6.997
+82.45 -7.001
+82.4833 -9.545
+82.5167 -10.769
+82.55 -12.397
+82.5833 -12.707
+82.6167 -12.812
+82.65 -14.036
+82.6833 -14.041
+82.7167 -14.755
+82.75 -14.455
+82.7833 -15.679
+82.8167 -14.769
+82.85 -15.689
+82.8833 -15.794
+82.9167 -17.627
+82.95 -18.242
+82.9833 -17.332
+83.0167 -17.532
+83.05 -15.718
+83.0833 -13.284
+83.1167 -11.765
+83.15 -10.550
+83.1833 -9.031
+83.2167 -9.341
+83.25 -8.331
+83.2833 -6.812
+83.3167 -6.207
+83.35 -7.026
+83.3833 -6.726
+83.4167 -6.426
+83.45 -6.636
+83.4833 -6.641
+83.5167 -8.374
+83.55 -10.208
+83.5833 -10.722
+83.6167 -12.251
+83.65 -13.375
+83.6833 -14.294
+83.7167 -14.504
+83.75 -15.118
+83.7833 -14.109
+83.8167 -14.114
+83.85 -14.018
+83.8833 -14.228
+83.9167 -13.014
+83.95 -12.918
+83.9833 -13.228
+84.0167 -14.352
+84.05 -13.342
+84.0833 -12.128
+84.1167 -13.557
+84.15 -13.562
+84.1833 -12.857
+84.2167 -12.762
+84.25 -13.071
+84.2833 -12.366
+84.3167 -12.066
+84.35 -11.971
+84.3833 -11.876
+84.4167 -12.186
+84.45 -11.786
+84.4833 -12.705
+84.5167 -11.695
+84.55 -11.700
+84.5833 -11.300
+84.6167 -10.390
+84.65 -9.381
+84.6833 -9.081
+84.7167 -10.000
+84.75 -9.905
+84.7833 -9.910
+84.8167 -9.914
+84.85 -9.210
+84.8833 -7.995
+84.9167 -6.476
+84.95 -7.700
+84.9833 -8.519
+85.0167 -9.134
+85.05 -11.882
+85.0833 -13.410
+85.1167 -14.025
+85.15 -14.639
+85.1833 -14.949
+85.2167 -14.954
+85.25 -14.958
+85.2833 -13.844
+85.3167 -13.239
+85.35 -13.244
+85.3833 -12.030
+85.4167 -10.001
+85.45 -10.310
+85.4833 -10.415
+85.5167 -9.810
+85.55 -11.134
+85.5833 -10.530
+85.6167 -8.196
+85.65 -10.130
+85.6833 -9.930
+85.7167 -10.644
+85.75 -11.663
+85.7833 -11.973
+85.8167 -12.482
+85.85 -12.587
+85.8833 -11.778
+85.9167 -12.187
+85.95 -10.768
+85.9833 -8.534
+86.0167 -7.725
+86.05 -6.406
+86.0833 -6.206
+86.1167 -5.191
+86.15 -5.396
+86.1833 -4.891
+86.2167 -5.401
+86.25 -6.215
+86.2833 -7.030
+86.3167 -8.149
+86.35 -9.268
+86.3833 -9.878
+86.4167 -10.387
+86.45 -9.982
+86.4833 -9.982
+86.5167 -9.578
+86.55 -9.578
+86.5833 -10.187
+86.6167 -10.087
+86.65 -10.392
+86.6833 -11.002
+86.7167 -11.611
+86.75 -11.916
+86.7833 -12.830
+86.8167 -13.135
+86.85 -12.321
+86.8833 -11.406
+86.9167 -10.797
+86.95 -9.982
+86.9833 -10.592
+87.0167 -9.778
+87.05 -8.658
+87.0833 -6.830
+87.1167 -5.406
+87.15 -4.591
+87.1833 -3.777
+87.2167 -3.877
+87.25 -3.672
+87.2833 -3.567
+87.3167 -2.753
+87.35 -3.462
+87.3833 -4.577
+87.4167 -4.677
+87.45 -5.182
+87.4833 -7.720
+87.5167 -9.139
+87.55 -9.339
+87.5833 -10.658
+87.6167 -11.163
+87.65 -10.754
+87.6833 -10.649
+87.7167 -11.154
+87.75 -11.658
+87.7833 -10.739
+87.8167 -10.634
+87.85 -11.139
+87.8833 -9.815
+87.9167 -9.810
+87.95 -7.877
+87.9833 -7.567
+88.0167 -8.377
+88.05 -7.153
+88.0833 -6.538
+88.1167 -5.214
+88.15 -3.381
+88.1833 -3.681
+88.2167 -3.371
+88.25 -4.281
+88.2833 -4.276
+88.3167 -4.576
+88.35 -5.181
+88.3833 -6.090
+88.4167 -5.171
+88.45 -4.862
+88.4833 -4.652
+88.5167 -3.733
+88.55 -3.118
+88.5833 -4.128
+88.6167 -5.038
+88.65 -6.252
+88.6833 -6.652
+88.7167 -7.257
+88.75 -8.266
+88.7833 -7.752
+88.8167 -6.833
+88.85 -6.928
+88.8833 -7.633
+88.9167 -7.628
+88.95 -7.418
+88.9833 -7.818
+89.0167 -7.609
+89.05 -7.909
+89.0833 -8.614
+89.1167 -7.794
+89.15 -8.194
+89.1833 -7.070
+89.2167 -6.556
+89.25 -7.261
+89.2833 -5.527
+89.3167 -5.927
+89.35 -6.632
+89.3833 -5.813
+89.4167 -5.603
+89.45 -5.394
+89.4833 -3.965
+89.5167 -3.755
+89.55 -2.936
+89.5833 -2.826
+89.6167 -2.617
+89.65 -3.017
+89.6833 -3.721
+89.7167 -3.817
+89.75 -3.912
+89.7833 -3.193
+89.8167 -4.202
+89.85 -3.688
+89.8833 -4.697
+89.9167 -3.978
+89.95 -3.769
+89.9833 -4.473
+90.0167 -3.959
+90.05 -5.069
+90.0833 -4.554
+90.1167 -4.954
+90.15 -5.659
+90.1833 -5.854
+90.2167 -5.949
+90.25 -3.606
+90.2833 -3.701
+90.3167 -3.897
+90.35 -3.992
+90.3833 -4.087
+90.4167 -4.487
+90.45 -4.073
+90.4833 -4.473
+90.5167 -5.787
+90.55 -4.968
+90.5833 -4.149
+90.6167 -3.939
+90.65 -3.220
+90.6833 -3.315
+90.7167 -1.886
+90.75 -0.457
+90.7833 -0.248
+90.8167 1.486
+90.85 1.391
+90.8833 1.905
+90.9167 1.810
+90.95 2.629
+90.9833 3.753
+91.0167 2.743
+91.05 2.953
+91.0833 2.553
+91.1167 0.629
+91.15 0.229
+91.1833 -0.681
+91.2167 -1.385
+91.25 -1.176
+91.2833 -1.271
+91.3167 -0.961
+91.35 0.772
+91.3833 0.372
+91.4167 0.987
+91.45 -0.023
+91.4833 0.591
+91.5167 0.496
+91.55 0.196
+91.5833 -1.118
+91.6167 -1.113
+91.65 -2.633
+91.6833 -2.933
+91.7167 -3.028
+91.75 -3.023
+91.7833 -2.713
+91.8167 -1.489
+91.85 -2.094
+91.8833 -1.785
+91.9167 -1.170
+91.95 -1.775
+91.9833 -0.551
+92.0167 0.468
+92.05 1.387
+92.0833 1.697
+92.1167 2.411
+92.15 2.416
+92.1833 1.911
+92.2167 1.307
+92.25 0.192
+92.2833 -2.446
+92.3167 -2.746
+92.35 -2.641
+92.3833 -4.670
+92.4167 -3.956
+92.45 -2.632
+92.4833 -2.832
+92.5167 -2.422
+92.55 -0.998
+92.5833 -1.198
+92.6167 -0.789
+92.65 -0.584
+92.6833 -1.089
+92.7167 -0.579
+92.75 -0.169
+92.7833 0.035
+92.8167 -0.065
+92.85 0.040
+92.8833 1.159
+92.9167 -0.160
+92.95 0.350
+92.9833 -0.869
+93.0167 0.250
+93.05 -1.679
+93.0833 -2.693
+93.1167 -1.779
+93.15 -2.793
+93.1833 -3.708
+93.2167 -3.198
+93.25 -2.893
+93.2833 -2.893
+93.3167 -2.284
+93.35 -2.589
+93.3833 -2.589
+93.4167 -0.455
+93.45 -0.150
+93.4833 0.155
+93.5167 0.155
+93.55 0.255
+93.5833 -0.050
+93.6167 -0.865
+93.65 -1.169
+93.6833 -1.069
+93.7167 -1.274
+93.75 -0.869
+93.7833 0.350
+93.8167 -1.074
+93.85 -1.279
+93.8833 -1.079
+93.9167 -0.979
+93.95 -1.793
+93.9833 -1.693
+94.0167 -0.884
+94.05 0.435
+94.0833 0.635
+94.1167 0.735
+94.15 1.850
+94.1833 1.745
+94.2167 1.945
+94.25 2.450
+94.2833 1.735
+94.3167 1.631
+94.35 1.526
+94.3833 0.811
+94.4167 0.097
+94.45 -1.127
+94.4833 -2.451
+94.5167 -1.337
+94.55 -1.341
+94.5833 -1.446
+94.6167 -0.537
+94.65 0.068
+94.6833 -1.256
+94.7167 -0.651
+94.75 -1.265
+94.7833 -1.575
+94.8167 -0.056
+94.85 0.244
+94.8833 -0.980
+94.9167 -1.289
+94.95 -1.194
+94.9833 -1.504
+95.0167 -1.613
+95.05 -1.718
+95.0833 -2.028
+95.1167 -2.847
+95.15 -2.852
+95.1833 -1.842
+95.2167 -0.628
+95.25 -1.142
+95.2833 -1.352
+95.3167 -1.866
+95.35 -1.261
+95.3833 -0.861
+95.4167 -1.071
+95.45 -0.366
+95.4833 -1.795
+95.5167 -2.309
+95.55 -2.214
+95.5833 -2.324
+95.6167 -1.314
+95.65 -1.524
+95.6833 -1.124
+95.7167 -0.419
+95.75 0.386
+95.7833 -0.433
+95.8167 -0.338
+95.85 -1.667
+95.8833 -3.401
+95.9167 -3.510
+95.95 -4.634
+95.9833 -4.439
+96.0167 -3.734
+96.05 -5.368
+96.0833 -5.882
+96.1167 -4.468
+96.15 -4.577
+96.1833 -4.787
+96.2167 -3.068
+96.25 -2.363
+96.2833 -3.387
+96.3167 -2.887
+96.35 -2.082
+96.3833 -1.987
+96.4167 -0.268
+96.45 -0.377
+96.4833 -1.197
+96.5167 -0.697
+96.55 -2.330
+96.5833 -3.659
+96.6167 -2.040
+96.65 -2.149
+96.6833 -3.173
+96.7167 -2.978
+96.75 -3.493
+96.7833 -3.297
+96.8167 -3.102
+96.85 -3.212
+96.8833 -4.945
+96.9167 -5.360
+96.95 -5.165
+96.9833 -5.984
+97.0167 -5.789
+97.05 -5.289
+97.0833 -5.498
+97.1167 -5.608
+97.15 -5.108
+97.1833 -5.927
+97.2167 -4.818
+97.25 -5.027
+97.2833 -4.222
+97.3167 -5.042
+97.35 -4.846
+97.3833 -4.142
+97.4167 -4.351
+97.45 -3.546
+97.4833 -2.842
+97.5167 -1.832
+97.55 -1.942
+97.5833 -1.542
+97.6167 -1.142
+97.65 -1.656
+97.6833 -1.256
+97.7167 -0.551
+97.75 -1.675
+97.7833 -1.580
+97.8167 -1.790
+97.85 -2.609
+97.8833 -2.818
+97.9167 -2.518
+97.95 -3.338
+97.9833 -3.547
+98.0167 -4.466
+98.05 -5.895
+98.0833 -7.424
+98.1167 -7.024
+98.15 -6.419
+98.1833 -6.119
+98.2167 -6.329
+98.25 -6.334
+98.2833 -5.119
+98.3167 -5.124
+98.35 -4.824
+98.3833 -3.000
+98.4167 -3.310
+98.45 -3.924
+98.4833 -2.810
+98.5167 -2.510
+98.55 -2.210
+98.5833 -2.010
+98.6167 -2.624
+98.65 -2.729
+98.6833 -2.834
+98.7167 -3.753
+98.75 -3.553
+98.7833 -3.658
+98.8167 -4.372
+98.85 -3.258
+98.8833 -3.058
+98.9167 -2.858
+98.95 -2.658
+98.9833 -2.253
+99.0167 -2.053
+99.05 -2.158
+99.0833 -2.362
+99.1167 -3.482
+99.15 -4.196
+99.1833 -5.010
+99.2167 -3.691
+99.25 -4.201
+99.2833 -4.406
+99.3167 -4.001
+99.35 -4.815
+99.3833 -4.715
+99.4167 -5.225
+99.45 -6.444
+99.4833 -6.039
+99.5167 -6.649
+99.55 -7.768
+99.5833 -6.854
+99.6167 -6.549
+99.65 -7.058
+99.6833 -6.754
+99.7167 -5.839
+99.75 -5.839
+99.7833 -4.925
+99.8167 -4.415
+99.85 -4.720
+99.8833 -3.806
+99.9167 -3.501
+99.95 -2.991
+99.9833 -3.906
+100.017 -2.786
+100.05 -3.191
+100.083 -3.191
+100.117 -2.072
+100.15 -1.258
+100.183 -1.053
+100.217 0.066
+100.25 0.271
+100.283 -1.353
+100.317 -2.062
+100.35 -1.653
+100.383 -2.667
+100.417 -2.462
+100.45 -3.272
+100.483 -4.286
+100.517 -4.486
+100.55 -4.282
+100.583 -4.786
+100.617 -6.206
+100.65 -5.796
+100.683 -6.910
+100.717 -7.925
+100.75 -8.125
+100.783 -8.325
+100.817 -6.796
+100.85 -7.301
+100.883 -7.806
+100.917 -6.177
+100.95 -5.462
+100.983 -6.067
+101.017 -5.353
+101.05 -4.334
+101.083 -3.719
+101.117 -2.700
+101.15 -3.000
+101.183 -2.386
+101.217 -2.586
+101.25 -2.276
+101.283 -1.662
+101.317 -1.657
+101.35 -1.552
+101.383 -1.852
+101.417 -2.457
+101.45 -2.147
+101.483 -1.228
+101.517 -0.614
+101.55 -0.914
+101.583 -1.214
+101.617 -0.599
+101.65 0.015
+101.683 -1.604
+101.717 -1.904
+101.75 -1.594
+101.783 -3.114
+101.817 -4.023
+101.85 -4.728
+101.883 -6.247
+101.917 -7.462
+101.95 -9.081
+101.983 -8.771
+102.017 -8.866
+102.05 -9.776
+102.083 -9.466
+102.117 -8.038
+102.15 -7.423
+102.183 -8.128
+102.217 -7.209
+102.25 -7.304
+102.283 -6.690
+102.317 -6.785
+102.35 -5.966
+102.383 -5.961
+102.417 -5.142
+102.45 -3.003
+102.483 -3.098
+102.517 -2.484
+102.55 -2.274
+102.583 -2.065
+102.617 -1.145
+102.65 -1.545
+102.683 -1.336
+102.717 -1.636
+102.75 -2.036
+102.783 -2.641
+102.817 -2.431
+102.85 -3.136
+102.883 -2.826
+102.917 -3.531
+102.95 -4.136
+102.983 -3.926
+103.017 -4.226
+103.05 -5.541
+103.083 -5.636
+103.117 -7.765
+103.15 -8.165
+103.183 -8.160
+103.217 -8.560
+103.25 -7.945
+103.283 -7.026
+103.317 -7.121
+103.35 -6.507
+103.383 -5.993
+103.417 -6.902
+103.45 -5.983
+103.483 -7.297
+103.517 -7.597
+103.55 -7.288
+103.583 -7.078
+103.617 -8.293
+103.65 -8.288
+103.683 -7.978
+103.717 -8.888
+103.75 -8.578
+103.783 -8.269
+103.817 -8.569
+103.85 -7.345
+103.883 -5.816
+103.917 -3.677
+103.95 -2.149
+103.983 -2.144
+104.017 -0.920
+104.05 -1.729
+104.083 -1.420
+104.117 -1.110
+104.15 -2.225
+104.183 -2.220
+104.217 -3.129
+104.25 -3.939
+104.283 -3.629
+104.317 -4.439
+104.35 -4.334
+104.383 -4.634
+104.417 -6.358
+104.45 -6.863
+104.483 -6.758
+104.517 -8.177
+104.55 -8.987
+104.583 -8.882
+104.617 -9.082
+104.65 -8.673
+104.683 -10.092
+104.717 -9.887
+104.75 -8.868
+104.783 -8.458
+104.817 -7.949
+104.85 -6.320
+104.883 -5.505
+104.917 -5.401
+104.95 -4.281
+104.983 -3.162
+105.017 -2.348
+105.05 -1.838
+105.083 -0.719
+105.117 0.400
+105.15 0.605
+105.183 0.505
+105.217 0.405
+105.25 -0.305
+105.283 -0.305
+105.317 -1.319
+105.35 -1.419
+105.383 -2.943
+105.417 -2.333
+105.45 -3.348
+105.483 -4.262
+105.517 -5.177
+105.55 -6.091
+105.583 -7.615
+105.617 -8.529
+105.65 -9.139
+105.683 -8.529
+105.717 -8.529
+105.75 -8.834
+105.783 -8.429
+105.817 -8.429
+105.85 -9.244
+105.883 -9.853
+105.917 -10.058
+105.95 -9.144
+105.983 -9.653
+106.017 -9.249
+106.05 -8.234
+106.083 -7.829
+106.117 -6.510
+106.15 -6.715
+106.183 -5.396
+106.217 -4.381
+106.25 -4.891
+106.283 -4.181
+106.317 -3.981
+106.35 -1.748
+106.383 -2.767
+106.417 -2.057
+106.45 -1.248
+106.483 -1.453
+106.517 -1.253
+106.55 -1.053
+106.583 -1.157
+106.617 -2.277
+106.65 -1.162
+106.683 -3.401
+106.717 -4.420
+106.75 -5.134
+106.783 -7.068
+106.817 -8.392
+106.85 -7.482
+106.883 -8.806
+106.917 -9.825
+106.95 -9.321
+106.983 -9.935
+107.017 -11.254
+107.05 -10.045
+107.083 -10.759
+107.117 -9.240
+107.15 -8.125
+107.183 -7.521
+107.217 -6.711
+107.25 -6.411
+107.283 -5.806
+107.317 -4.897
+107.35 -5.306
+107.383 -5.311
+107.417 -4.706
+107.45 -5.016
+107.483 -4.106
+107.517 -3.197
+107.55 -3.201
+107.583 -4.121
+107.617 -2.601
+107.65 -2.606
+107.683 -2.306
+107.717 -2.311
+107.75 -1.706
+107.783 -1.711
+107.817 -1.411
+107.85 -1.316
+107.883 -1.625
+107.917 -2.545
+107.95 -3.769
+107.983 -4.688
+108.017 -4.897
+108.05 -6.121
+108.083 -8.565
+108.117 -8.165
+108.15 -9.084
+108.183 -7.869
+108.217 -7.165
+108.25 -8.084
+108.283 -7.784
+108.317 -7.384
+108.35 -6.779
+108.383 -6.074
+108.417 -6.384
+108.45 -5.474
+108.483 -5.989
+108.517 -5.079
+108.55 -4.374
+108.583 -4.074
+108.617 -4.994
+108.65 -4.289
+108.683 -4.294
+108.717 -2.674
+108.75 -2.984
+108.783 -2.379
+108.817 -2.894
+108.85 -1.984
+108.883 -0.669
+108.917 -1.589
+108.95 -1.289
+108.983 -0.279
+109.017 -1.503
+109.05 -0.898
+109.083 -0.803
+109.117 -0.808
+109.15 -0.203
+109.183 0.402
+109.217 -0.418
+109.25 -0.727
+109.283 -1.646
+109.317 -1.651
+109.35 -2.266
+109.383 -3.694
+109.417 -4.309
+109.45 -4.618
+109.483 -5.842
+109.517 -5.542
+109.55 -6.462
+109.583 -6.162
+109.617 -5.962
+109.65 -6.576
+109.683 -5.666
+109.717 -5.366
+109.75 -4.762
+109.783 -4.562
+109.817 -4.566
+109.85 -3.047
+109.883 -1.628
+109.917 -2.547
+109.95 -2.652
+109.983 -2.047
+110.017 -2.152
+110.05 -1.647
+110.083 -0.433
+110.117 -0.538
+110.15 -1.252
+110.183 0.167
+110.217 -0.547
+110.25 -0.957
+110.283 -0.452
+110.317 0.662
+110.35 0.558
+110.383 2.586
+110.417 0.958
+110.45 0.448
+110.483 1.258
+110.517 0.748
+110.55 -0.576
+110.583 -0.476
+110.617 -1.495
+110.65 -2.310
+110.683 -3.124
+110.717 -3.634
+110.75 -5.058
+110.783 -3.434
+110.817 -4.553
+110.85 -4.758
+110.883 -3.743
+110.917 -2.729
+110.95 -3.034
+110.983 -2.934
+111.017 -3.848
+111.05 -2.834
+111.083 -3.443
+111.117 -3.138
+111.15 -2.429
+111.183 -1.819
+111.217 -1.514
+111.25 -0.295
+111.283 -0.905
+111.317 -1.819
+111.35 -2.224
+111.383 -2.224
+111.417 -2.224
+111.45 -1.714
+111.483 -1.105
+111.517 -0.900
+111.55 -1.000
+111.583 -0.086
+111.617 0.119
+111.65 0.019
+111.683 1.138
+111.717 1.343
+111.75 2.158
+111.783 2.058
+111.817 2.262
+111.85 1.148
+111.883 2.267
+111.917 2.067
+111.95 1.053
+111.983 0.853
+112.017 -0.466
+112.05 -0.666
+112.083 -1.781
+112.117 -2.490
+112.15 -3.910
+112.183 -4.719
+112.217 -6.138
+112.25 -5.424
+112.283 -5.624
+112.317 -6.229
+112.35 -6.429
+112.383 -6.934
+112.417 -5.610
+112.45 -5.300
+112.483 -3.366
+112.517 -2.752
+112.55 -1.428
+112.583 -2.642
+112.617 -2.538
+112.65 -1.923
+112.683 -1.918
+112.717 -1.609
+112.75 -0.590
+112.783 -0.890
+112.817 0.030
+112.85 -0.880
+112.883 -0.875
+112.917 -0.566
+112.95 -0.256
+112.983 0.663
+113.017 1.178
+113.05 1.487
+113.083 2.406
+113.117 1.802
+113.15 1.706
+113.183 1.102
+113.217 0.497
+113.25 -0.818
+113.283 -2.032
+113.317 -3.246
+113.35 -3.951
+113.383 -5.166
+113.417 -5.870
+113.45 -6.575
+113.483 -5.961
+113.517 -5.446
+113.55 -5.746
+113.583 -5.842
+113.617 -5.022
+113.65 -4.713
+113.683 -4.198
+113.717 -4.903
+113.75 -4.389
+113.783 -3.774
+113.817 -4.174
+113.85 -3.965
+113.883 -3.450
+113.917 -3.445
+113.95 -2.626
+113.983 -1.502
+114.017 -1.293
+114.05 -0.778
+114.083 0.651
+114.117 1.470
+114.15 1.070
+114.183 2.803
+114.217 1.894
+114.25 1.799
+114.283 1.399
+114.317 0.389
+114.35 -0.011
+114.383 -0.106
+114.417 -1.421
+114.45 -1.516
+114.483 -1.916
+114.517 -1.706
+114.55 -2.411
+114.583 -1.592
+114.617 -1.382
+114.65 -0.258
+114.683 -0.963
+114.717 -1.058
+114.75 -1.763
+114.783 -1.149
+114.817 -2.463
+114.85 -2.863
+114.883 -3.568
+114.917 -4.273
+114.95 -4.063
+114.983 -3.244
+115.017 -3.339
+115.05 -2.825
+115.083 -1.091
+115.117 1.047
+115.15 0.647
+115.183 0.247
+115.217 -0.457
+115.25 0.362
+115.283 0.976
+115.317 0.576
+115.35 0.786
+115.383 0.995
+115.417 1.610
+115.45 1.210
+115.483 1.115
+115.517 0.510
+115.55 1.024
+115.583 1.943
+115.617 0.934
+115.65 1.243
+115.683 0.539
+115.717 0.239
+115.75 -0.466
+115.783 -1.071
+115.817 -1.981
+115.85 -3.600
+115.883 -2.985
+115.917 -3.895
+115.95 -3.990
+115.983 -2.766
+116.017 -3.066
+116.05 -3.671
+116.083 -2.447
+116.117 -1.223
+116.15 -1.828
+116.183 -2.128
+116.217 -0.904
+116.25 -0.899
+116.283 -0.894
+116.317 -0.180
+116.35 -0.785
+116.383 -0.780
+116.417 -0.980
+116.45 -1.585
+116.483 -2.494
+116.517 -1.475
+116.55 -1.065
+116.583 -1.365
+116.617 -0.346
+116.65 -0.546
+116.683 -2.065
+116.717 -0.741
+116.75 -0.941
+116.783 -1.751
+116.817 0.487
+116.85 -0.017
+116.883 -0.217
+116.917 -0.622
+116.95 -1.432
+116.983 -1.022
+117.017 -1.732
+117.05 -1.932
+117.083 -2.032
+117.117 -2.537
+117.15 -2.941
+117.183 -2.837
+117.217 -1.717
+117.25 -2.122
+117.283 -2.527
+117.317 -1.103
+117.35 -0.898
+117.383 -0.693
+117.417 -1.098
+117.45 -0.793
+117.483 -0.589
+117.517 -0.993
+117.55 -0.384
+117.583 0.126
+117.617 -0.179
+117.65 -0.789
+117.683 0.026
+117.717 -0.279
+117.75 -1.193
+117.783 -0.279
+117.817 -0.279
+117.85 -0.584
+117.883 0.940
+117.917 0.940
+117.95 1.040
+117.983 1.345
+118.017 0.835
+118.05 1.750
+118.083 0.631
+118.117 0.326
+118.15 1.035
+118.183 0.831
+118.217 0.626
+118.25 0.421
+118.283 0.521
+118.317 -0.293
+118.35 -0.193
+118.383 -0.093
+118.417 0.007
+118.45 -0.708
+118.483 -0.303
+118.517 -0.408
+118.55 -0.003
+118.583 1.111
+118.617 -0.008
+118.65 -1.332
+118.683 -0.827
+118.717 -0.322
+118.75 -0.427
+118.783 0.078
+118.817 0.887
+118.85 0.173
+118.883 0.678
+118.917 -0.341
+118.95 -0.041
+118.983 -0.451
+119.017 -0.346
+119.05 0.354
+119.083 0.249
+119.117 0.244
+119.15 0.239
+119.183 -0.170
+119.217 -0.785
+119.25 -0.485
+119.283 -0.794
+119.317 0.115
+119.35 0.011
+119.383 -1.213
+119.417 -0.813
+119.45 0.096
+119.483 -0.213
+119.517 -0.828
+119.55 -1.747
+119.583 -2.261
+119.617 -2.876
+119.65 -2.881
+119.683 -3.395
+119.717 -3.705
+119.75 -4.524
+119.783 -5.443
+119.817 -4.738
+119.85 -3.524
+119.883 -3.124
+119.917 -2.114
+119.95 0.115
+119.983 -0.195
+120.017 0.510
+120.05 0.605
+120.083 -1.129
+120.117 -0.729
+120.15 -1.243
+120.183 -2.977
+120.217 -3.186
+120.25 -4.005
+120.283 -4.825
+120.317 -4.425
+120.35 -4.634
+120.383 -4.844
+120.417 -4.444
+120.45 -4.249
+120.483 -4.763
+120.517 -4.058
+120.55 -3.049
+120.583 -3.158
+120.617 -2.758
+120.65 -2.358
+120.683 -1.349
+120.717 -2.677
+120.75 -2.887
+120.783 -1.877
+120.817 -3.206
+120.85 -4.025
+120.883 -3.221
+120.917 -3.430
+120.95 -2.116
+120.983 -3.140
+121.017 -3.959
+121.05 -4.373
+121.083 -4.583
+121.117 -4.997
+121.15 -5.817
+121.183 -6.331
+121.217 -5.221
+121.25 -5.736
+121.283 -6.150
+121.317 -6.360
+121.35 -5.655
+121.383 -4.850
+121.417 -5.060
+121.45 -4.965
+121.483 -4.769
+121.517 -4.369
+121.55 -4.884
+121.583 -4.384
+121.617 -3.984
+121.65 -3.584
+121.683 -2.169
+121.717 -2.989
+121.75 -2.894
+121.783 -3.713
+121.817 -3.008
+121.85 -3.422
+121.883 -3.632
+121.917 -3.232
+121.95 -3.442
+121.983 -2.127
+122.017 -2.337
+122.05 -2.851
+122.083 -2.146
+122.117 -1.846
+122.15 -2.970
+122.183 -3.485
+122.217 -3.390
+122.25 -4.514
+122.283 -5.738
+122.317 -6.862
+122.35 -7.171
+122.383 -5.857
+122.417 -6.371
+122.45 -5.157
+122.483 -4.552
+122.517 -4.457
+122.55 -4.157
+122.583 -4.162
+122.617 -4.776
+122.65 -5.900
+122.683 -6.210
+122.717 -5.910
+122.75 -6.829
+122.783 -6.224
+122.817 -5.110
+122.85 -4.200
+122.883 -4.814
+122.917 -4.819
+122.95 -5.229
+122.983 -5.538
+123.017 -5.034
+123.05 -4.734
+123.083 -4.534
+123.117 -4.029
+123.15 -4.338
+123.183 -4.443
+123.217 -3.938
+123.25 -4.348
+123.283 -4.453
+123.317 -3.643
+123.35 -4.053
+123.383 -4.258
+123.417 -3.753
+123.45 -4.162
+123.483 -5.282
+123.517 -4.472
+123.55 -4.677
+123.583 -4.882
+123.617 -4.072
+123.65 -4.886
+123.683 -3.872
+123.717 -3.162
+123.75 -4.282
+123.783 -4.182
+123.817 -4.082
+123.85 -6.115
+123.883 -5.201
+123.917 -5.101
+123.95 -6.320
+123.983 -5.915
+124.017 -6.525
+124.05 -7.034
+124.083 -7.949
+124.117 -8.254
+124.15 -7.644
+124.183 -8.863
+124.217 -8.863
+124.25 -7.949
+124.283 -7.339
+124.317 -7.644
+124.35 -6.220
+124.383 -5.915
+124.417 -5.610
+124.45 -5.406
+124.483 -4.591
+124.517 -5.506
+124.55 -4.996
+124.583 -4.182
+124.617 -4.891
+124.65 -4.586
+124.683 -3.467
+124.717 -4.177
+124.75 -4.377
+124.783 -4.172
+124.817 -4.577
+124.85 -3.458
+124.883 -4.267
+124.917 -4.672
+124.95 -5.991
+124.983 -5.582
+125.017 -6.086
+125.05 -6.186
+125.083 -6.996
+125.117 -6.891
+125.15 -6.382
+125.183 -5.362
+125.217 -5.867
+125.25 -4.238
+125.283 -3.829
+125.317 -3.114
+125.35 -3.010
+125.383 -2.395
+125.417 -2.595
+125.45 -2.186
+125.483 -2.386
+125.517 -3.600
+125.55 -3.190
+125.583 -2.476
+125.617 -3.081
+125.65 -2.976
+125.683 -2.666
+125.717 -3.271
+125.75 -3.166
+125.783 -4.381
+125.817 -4.986
+125.85 -4.271
+125.883 -3.352
+125.917 -3.957
+125.95 -3.952
+125.983 -4.252
+126.017 -4.552
+126.05 -3.938
+126.083 -2.104
+126.117 -3.014
+126.15 -2.399
+126.183 -0.870
+126.217 -2.390
+126.25 -1.775
+126.283 -1.466
+126.317 -2.170
+126.35 -2.166
+126.383 -2.466
+126.417 -2.461
+126.45 -2.456
+126.483 -2.246
+126.517 -3.461
+126.55 -4.675
+126.583 -4.466
+126.617 -4.461
+126.65 -3.542
+126.683 -3.027
+126.717 -3.022
+126.75 -1.898
+126.783 -1.284
+126.817 -0.769
+126.85 -1.374
+126.883 -2.284
+126.917 -2.379
+126.95 -2.984
+126.983 -3.384
+127.017 -3.379
+127.05 -3.779
+127.083 -4.079
+127.117 -4.479
+127.15 -4.474
+127.183 -3.045
+127.217 -3.041
+127.25 -3.441
+127.283 -3.436
+127.317 -3.431
+127.35 -2.917
+127.383 -1.997
+127.417 -2.397
+127.45 -1.783
+127.483 -1.269
+127.517 -1.264
+127.55 -1.359
+127.583 -1.354
+127.617 -2.264
+127.65 -1.749
+127.683 -1.745
+127.717 -2.349
+127.75 -2.749
+127.783 -3.049
+127.817 -3.349
+127.85 -4.054
+127.883 -3.745
+127.917 -3.740
+127.95 -3.430
+127.983 -4.340
+128.017 -3.725
+128.05 -4.430
+128.083 -4.121
+128.117 -3.506
+128.15 -3.501
+128.183 -3.497
+128.217 -2.577
+128.25 -4.097
+128.283 -3.787
+128.317 -3.682
+128.35 -3.068
+128.383 -3.063
+128.417 -1.534
+128.45 -2.444
+128.483 -2.949
+128.517 -2.639
+128.55 -2.329
+128.583 -2.529
+128.617 -2.829
+128.65 -2.725
+128.683 -4.244
+128.717 -3.529
+128.75 -3.120
+128.783 -3.420
+128.817 -3.925
+128.85 -4.734
+128.883 -3.715
+128.917 -3.915
+128.95 -4.115
+128.983 -3.401
+129.017 -4.515
+129.05 -4.715
+129.083 -4.305
+129.117 -4.810
+129.15 -6.534
+129.183 -5.110
+129.217 -4.396
+129.25 -3.986
+129.283 -4.086
+129.317 -4.186
+129.35 -4.996
+129.383 -6.315
+129.417 -6.820
+129.45 -6.920
+129.483 -7.325
+129.517 -6.815
+129.55 -5.391
+129.583 -5.186
+129.617 -4.372
+129.65 -2.948
+129.683 -3.353
+129.717 -3.962
+129.75 -4.672
+129.783 -6.601
+129.817 -8.125
+129.85 -7.615
+129.883 -7.615
+129.917 -7.615
+129.95 -6.191
+129.983 -6.801
+130.017 -5.581
+130.05 -5.581
+130.083 -6.496
+130.117 -4.362
+130.15 -4.362
+130.183 -4.362
+130.217 -4.362
+130.25 -3.753
+130.283 -3.348
+130.317 -3.348
+130.35 -2.943
+130.383 -3.248
+130.417 -3.453
+130.45 -3.757
+130.483 -3.962
+130.517 -4.777
+130.55 -6.301
+130.583 -6.201
+130.617 -5.796
+130.65 -5.696
+130.683 -6.205
+130.717 -3.972
+130.75 -3.567
+130.783 -4.586
+130.817 -5.401
+130.85 -5.910
+130.883 -7.234
+130.917 -8.353
+130.95 -7.034
+130.983 -7.444
+131.017 -7.244
+131.05 -6.534
+131.083 -7.249
+131.117 -6.844
+131.15 -6.644
+131.183 -6.749
+131.217 -6.853
+131.25 -5.739
+131.283 -5.539
+131.317 -5.949
+131.35 -5.444
+131.383 -5.549
+131.417 -5.653
+131.45 -6.368
+131.483 -7.082
+131.517 -6.882
+131.55 -7.192
+131.583 -6.992
+131.617 -6.487
+131.65 -5.068
+131.683 -5.377
+131.717 -6.397
+131.75 -5.487
+131.783 -6.201
+131.817 -5.597
+131.85 -5.092
+131.883 -5.097
+131.917 -4.897
+131.95 -4.901
+131.983 -4.906
+132.017 -4.401
+132.05 -4.101
+132.083 -4.106
+132.117 -2.587
+132.15 -2.692
+132.183 -3.001
+132.217 -3.311
+132.25 -4.535
+132.283 -5.454
+132.317 -6.373
+132.35 -5.159
+132.383 -4.959
+132.417 -5.269
+132.45 -5.578
+132.483 -6.497
+132.517 -6.807
+132.55 -5.593
+132.583 -6.512
+132.617 -7.431
+132.65 -8.045
+132.683 -6.221
+132.717 -4.907
+132.75 -4.912
+132.783 -4.917
+132.817 -6.445
+132.85 -6.145
+132.883 -5.845
+132.917 -5.241
+132.95 -5.245
+132.983 -4.336
+133.017 -4.341
+133.05 -4.550
+133.083 -4.555
+133.117 -3.950
+133.15 -4.565
+133.183 -3.960
+133.217 -4.574
+133.25 -5.494
+133.283 -3.974
+133.317 -5.198
+133.35 -4.189
+133.383 -4.803
+133.417 -4.808
+133.45 -4.508
+133.483 -4.208
+133.517 -3.908
+133.55 -2.998
+133.583 -3.003
+133.617 -3.922
+133.65 -3.013
+133.683 -3.322
+133.717 -3.632
+133.75 -4.551
+133.783 -4.556
+133.817 -5.475
+133.85 -5.480
+133.883 -4.875
+133.917 -5.490
+133.95 -6.104
+133.983 -7.123
+134.017 -7.128
+134.05 -6.828
+134.083 -6.528
+134.117 -7.242
+134.15 -5.723
+134.183 -5.423
+134.217 -5.528
+134.25 -5.533
+134.283 -4.014
+134.317 -4.728
+134.35 -5.342
+134.383 -4.533
+134.417 -4.333
+134.45 -4.338
+134.483 -3.833
+134.517 -4.242
+134.55 -3.333
+134.583 -3.438
+134.617 -5.066
+134.65 -4.866
+134.683 -4.666
+134.717 -6.295
+134.75 -7.010
+134.783 -5.590
+134.817 -5.390
+134.85 -3.971
+134.883 -3.871
+134.917 -3.671
+134.95 -3.776
+134.983 -3.981
+135.017 -4.390
+135.05 -4.900
+135.083 -5.714
+135.117 -5.514
+135.15 -6.024
+135.183 -6.838
+135.217 -6.434
+135.25 -6.029
+135.283 -5.929
+135.317 -4.610
+135.35 -4.510
+135.383 -4.714
+135.417 -4.310
+135.45 -4.310
+135.483 -4.819
+135.517 -5.329
+135.55 -4.414
+135.583 -4.314
+135.617 -4.314
+135.65 -3.705
+135.683 -1.571
+135.717 -1.266
+135.75 -1.876
+135.783 -1.571
+135.817 -0.962
+135.85 -0.962
+135.883 -0.657
+135.917 -0.047
+135.95 -1.366
+135.983 -1.671
+136.017 -2.686
+136.05 -2.686
+136.083 -2.786
+136.117 -3.090
+136.15 -1.666
+136.183 -1.157
+136.217 -1.866
+136.25 -1.662
+136.283 -2.371
+136.317 -2.776
+136.35 -3.181
+136.383 -3.076
+136.417 -3.176
+136.45 -2.362
+136.483 -2.562
+136.517 -2.966
+136.55 -3.471
+136.583 -4.486
+136.617 -4.990
+136.65 -5.800
+136.683 -5.900
+136.717 -5.795
+136.75 -5.081
+136.783 -4.671
+136.817 -3.652
+136.85 -2.938
+136.883 -1.918
+136.917 -2.423
+136.95 -2.014
+136.983 -1.704
+137.017 -0.990
+137.05 0.030
+137.083 0.644
+137.117 0.444
+137.15 -0.466
+137.183 -0.056
+137.217 1.473
+137.25 0.663
+137.283 -0.856
+137.317 -1.461
+137.35 -1.356
+137.383 -1.961
+137.417 -3.175
+137.45 -4.390
+137.483 -3.775
+137.517 -4.280
+137.55 -3.970
+137.583 -3.051
+137.617 -3.351
+137.65 -3.042
+137.683 -1.818
+137.717 -1.813
+137.75 -1.808
+137.783 -1.598
+137.817 -1.289
+137.85 -0.674
+137.883 -0.974
+137.917 -0.969
+137.95 -1.065
+137.983 0.159
+138.017 0.164
+138.05 -0.136
+138.083 0.988
+138.117 0.688
+138.15 0.083
+138.183 0.598
+138.217 -0.312
+138.25 -1.221
+138.283 -1.317
+138.317 -1.921
+138.35 -2.017
+138.383 -2.012
+138.417 -2.107
+138.45 -3.017
+138.483 -3.012
+138.517 -3.412
+138.55 -4.017
+138.583 -4.112
+138.617 -3.193
+138.65 -3.897
+138.683 -2.369
+138.717 -3.073
+138.75 -2.459
+138.783 -2.249
+138.817 -2.549
+138.85 -2.949
+138.883 -1.521
+138.917 -1.821
+138.95 -3.135
+138.983 -2.825
+139.017 -4.140
+139.05 -4.135
+139.083 -4.230
+139.117 -4.530
+139.15 -5.235
+139.183 -4.316
+139.217 -4.716
+139.25 -4.101
+139.283 -3.282
+139.317 -2.668
+139.35 -2.763
+139.383 -1.844
+139.417 -3.463
+139.45 -3.153
+139.483 -2.944
+139.517 -3.244
+139.55 -3.949
+139.583 -3.029
+139.617 -4.039
+139.65 -5.253
+139.683 -4.029
+139.717 -4.734
+139.75 -6.253
+139.783 -5.739
+139.817 -5.734
+139.85 -5.120
+139.883 -4.910
+139.917 -5.515
+139.95 -5.815
+139.983 -3.677
+140.017 -4.077
+140.05 -4.377
+140.083 -4.372
+140.117 -3.148
+140.15 -3.143
+140.183 -2.529
+140.217 -1.609
+140.25 -1.705
+140.283 -2.005
+140.317 -2.305
+140.35 -2.300
+140.383 -1.890
+140.417 -1.885
+140.45 -1.576
+140.483 -2.485
+140.517 -2.176
+140.55 -1.866
+140.583 -2.066
+140.617 -3.585
+140.65 -3.276
+140.683 -5.000
+140.717 -4.995
+140.75 -4.585
+140.783 -4.581
+140.817 -3.866
+140.85 -4.166
+140.883 -5.281
+140.917 -4.057
+140.95 -4.257
+140.983 -3.237
+141.017 -3.437
+141.05 -3.028
+141.083 -3.228
+141.117 -3.733
+141.15 -2.713
+141.183 -2.609
+141.217 -2.504
+141.25 -3.009
+141.283 -2.904
+141.317 -2.089
+141.35 -2.899
+141.383 -3.709
+141.417 -3.809
+141.45 -3.399
+141.483 -3.804
+141.517 -4.309
+141.55 -2.885
+141.583 -3.594
+141.617 -2.475
+141.65 -1.965
+141.683 -0.846
+141.717 -1.861
+141.75 -1.351
+141.783 -1.756
+141.817 -2.465
+141.85 -2.261
+141.883 -2.361
+141.917 -2.056
+141.95 -3.680
+141.983 -2.461
+142.017 -3.475
+142.05 -3.475
+142.083 -2.561
+142.117 -2.356
+142.15 -2.051
+142.183 -1.746
+142.217 -2.661
+142.25 -2.051
+142.283 -2.965
+142.317 -3.270
+142.35 -2.865
+142.383 -3.475
+142.417 -3.780
+142.45 -3.070
+142.483 -2.765
+142.517 -2.970
+142.55 -3.885
+142.583 -4.089
+142.617 -5.209
+142.65 -4.499
+142.683 -4.399
+142.717 -4.704
+142.75 -4.299
+142.783 -4.099
+142.817 -3.389
+142.85 -3.289
+142.883 -2.275
+142.917 -2.785
+142.95 -1.670
+142.983 -2.180
diff --git a/doc/examples/tsunami/diegres.txt b/doc/examples/tsunami/diegres.txt
new file mode 100644
index 0000000..24c444f
--- /dev/null
+++ b/doc/examples/tsunami/diegres.txt
@@ -0,0 +1,1680 @@
+-24.9833 7.579
+-24.8833 7.236
+-24.7833 7.807
+-24.6833 7.769
+-24.5833 7.835
+-24.4833 6.987
+-24.3833 7.968
+-24.2833 7.834
+-24.1833 7.701
+-24.0833 6.858
+-23.9833 6.424
+-23.8833 5.686
+-23.7833 5.762
+-23.6833 5.333
+-23.5833 4.599
+-23.4833 5.190
+-23.3833 5.375
+-23.2833 4.751
+-23.1833 3.822
+-23.0833 4.118
+-22.9833 3.498
+-22.8833 4.203
+-22.7833 4.198
+-22.6833 3.789
+-22.5833 3.484
+-22.4833 4.198
+-22.3833 3.389
+-22.2833 3.598
+-22.1833 4.218
+-22.0833 3.922
+-21.9833 2.718
+-21.8833 3.037
+-21.7833 2.546
+-21.6833 3.885
+-21.5833 3.194
+-21.4833 3.218
+-21.3833 3.242
+-21.2833 2.457
+-21.1833 1.976
+-21.0833 2.614
+-20.9833 1.529
+-20.8833 1.662
+-20.7833 1.391
+-20.6833 1.325
+-20.5833 1.158
+-20.4833 0.992
+-20.3833 1.945
+-20.2833 1.578
+-20.1833 2.431
+-20.0833 1.051
+-19.9833 -0.330
+-19.8833 0.727
+-19.7833 1.175
+-19.6833 0.304
+-19.5833 1.567
+-19.4833 1.915
+-19.3833 1.653
+-19.2833 1.087
+-19.1833 -0.294
+-19.0833 0.663
+-18.9833 0.807
+-18.8833 0.340
+-18.7833 0.483
+-18.6833 -0.188
+-18.5833 0.765
+-18.4833 -0.721
+-18.3833 1.147
+-18.2833 -0.139
+-18.1833 -0.205
+-18.0833 1.657
+-17.9833 1.181
+-17.8833 2.329
+-17.7833 0.834
+-17.6833 1.368
+-17.5833 -0.842
+-17.4833 1.416
+-17.3833 1.030
+-17.2833 1.354
+-17.1833 0.864
+-17.0833 0.573
+-16.9833 0.788
+-16.8833 -0.117
+-16.7833 1.212
+-16.6833 1.826
+-16.5833 1.421
+-16.4833 1.726
+-16.3833 1.216
+-16.2833 3.445
+-16.1833 2.931
+-16.0833 2.716
+-15.9833 4.636
+-15.8833 5.331
+-15.7833 6.331
+-15.6833 5.702
+-15.5833 6.188
+-15.4833 7.383
+-15.3833 6.849
+-15.2833 8.954
+-15.1833 9.535
+-15.0833 10.011
+-14.9833 8.758
+-14.8833 10.043
+-14.7833 10.615
+-14.6833 11.186
+-14.5833 11.552
+-14.4833 10.190
+-14.3833 10.656
+-14.2833 10.003
+-14.1833 10.365
+-14.0833 10.217
+-13.9833 11.593
+-13.8833 10.021
+-13.7833 10.278
+-13.6833 9.011
+-13.5833 9.672
+-13.4833 9.624
+-13.3833 8.762
+-13.2833 10.033
+-13.1833 9.780
+-13.0833 9.832
+-12.9833 9.579
+-12.8833 10.141
+-12.7833 9.178
+-12.6833 9.740
+-12.5833 8.678
+-12.4833 8.530
+-12.3833 7.977
+-12.2833 7.629
+-12.1833 7.890
+-12.0833 7.747
+-11.9833 6.894
+-11.8833 7.975
+-11.7833 7.227
+-11.6833 6.379
+-11.5833 6.650
+-11.4833 6.417
+-11.3833 6.388
+-11.2833 5.954
+-11.1833 5.626
+-11.0833 5.806
+-10.9833 6.092
+-10.8833 6.278
+-10.7833 6.058
+-10.6833 6.554
+-10.5833 6.239
+-10.4833 7.349
+-10.3833 6.125
+-10.2833 7.139
+-10.1833 6.225
+-10.0833 6.430
+-9.98333 6.434
+-9.88333 5.934
+-9.78334 4.420
+-9.68333 6.058
+-9.58333 5.158
+-9.48334 4.973
+-9.38333 4.992
+-9.28333 4.302
+-9.18334 4.630
+-9.08333 4.554
+-8.98333 4.074
+-8.88334 4.612
+-8.78333 4.541
+-8.68333 4.879
+-8.58334 5.727
+-8.48333 5.866
+-8.38333 5.599
+-8.28334 5.942
+-8.18333 5.781
+-8.08333 5.924
+-7.98334 6.272
+-7.88333 4.791
+-7.78333 5.954
+-7.68334 7.016
+-7.58333 6.859
+-7.48333 6.703
+-7.38334 7.970
+-7.28333 7.713
+-7.18333 8.675
+-7.08334 8.723
+-6.98333 7.857
+-6.88333 7.295
+-6.78334 8.258
+-6.68333 8.306
+-6.58333 7.539
+-6.48334 7.892
+-6.38333 8.445
+-6.28333 8.083
+-6.18334 9.551
+-6.08333 8.679
+-5.98333 9.737
+-5.88334 9.271
+-5.78333 7.990
+-5.68333 7.519
+-5.58334 9.791
+-5.48333 8.505
+-5.38333 8.639
+-5.28334 10.296
+-5.18333 10.020
+-5.08333 9.844
+-4.98334 8.344
+-4.88333 9.078
+-4.78333 8.692
+-4.68334 9.421
+-4.58333 10.555
+-4.48333 10.264
+-4.38334 10.274
+-4.28333 10.384
+-4.18333 9.679
+-4.08334 9.784
+-3.98333 9.684
+-3.88333 9.479
+-3.78334 9.474
+-3.68333 9.874
+-3.58333 9.560
+-3.48334 10.260
+-3.38333 11.160
+-3.28333 9.721
+-3.18334 10.616
+-3.08333 10.697
+-2.98333 10.878
+-2.88334 10.549
+-2.78333 9.506
+-2.68333 9.782
+-2.58334 10.158
+-2.48333 10.024
+-2.38333 10.295
+-2.28334 9.447
+-2.18333 8.699
+-2.08333 9.575
+-1.98334 10.756
+-1.88333 9.294
+-1.78333 7.931
+-1.68334 9.312
+-1.58333 9.574
+-1.48333 8.616
+-1.38334 10.097
+-1.28333 8.325
+-1.18333 9.501
+-1.08334 10.167
+-0.983333 10.429
+-0.883325 9.671
+-0.783341 10.947
+-0.683333 9.480
+-0.583325 10.351
+-0.483341 10.003
+-0.383333 9.655
+-0.283325 11.341
+-0.183341 9.878
+-0.0833333 9.635
+0.0166747 9.292
+0.116659 9.558
+0.216667 9.015
+0.316675 8.472
+0.416659 9.048
+0.516667 9.424
+0.616675 7.666
+0.716659 7.233
+0.816667 7.309
+0.916675 8.199
+1.01666 8.075
+1.11667 7.142
+1.21667 7.632
+1.31666 6.803
+1.41667 7.603
+1.51667 6.679
+1.61666 6.874
+1.71667 7.274
+1.81667 7.779
+1.91666 6.965
+2.01667 5.341
+2.11667 6.565
+2.21666 6.774
+2.31667 7.189
+2.41667 6.184
+2.51666 5.994
+2.61667 6.213
+2.71667 5.722
+2.81666 5.132
+2.91667 6.475
+3.01667 4.975
+3.11666 6.118
+3.21667 4.928
+3.31667 6.481
+3.41666 3.566
+3.51667 4.919
+3.61667 4.548
+3.71666 4.382
+3.81667 23.723
+3.91667 59.727
+4.01666 24.309
+4.11667 12.260
+4.21667 -30.574
+4.31666 13.056
+4.41667 1.417
+4.51667 -22.110
+4.61666 4.047
+4.71667 11.000
+4.81667 26.388
+4.91666 -9.125
+5.01667 -7.453
+5.11667 10.983
+5.21666 -1.671
+5.31667 -19.506
+5.41667 -1.275
+5.51666 9.236
+5.61667 -1.489
+5.71667 -23.491
+5.81666 -2.112
+5.91667 12.562
+6.01667 -13.203
+6.11666 10.205
+6.21667 9.839
+6.31667 19.936
+6.41666 12.149
+6.51667 -18.093
+6.61667 10.083
+6.71666 2.596
+6.81667 -9.057
+6.91667 -1.308
+7.01666 3.492
+7.11667 9.308
+7.21667 14.713
+7.31666 -3.860
+7.41667 -2.217
+7.51667 1.455
+7.61666 5.632
+7.71667 3.508
+7.81667 -3.293
+7.91666 13.880
+8.01667 -2.679
+8.11667 -7.456
+8.21666 1.379
+8.31667 10.618
+8.41667 6.951
+8.51666 3.179
+8.61667 -2.322
+8.71667 11.884
+8.81666 11.865
+8.91667 -3.499
+9.01667 0.440
+9.11666 8.540
+9.21667 19.180
+9.31667 8.988
+9.41666 4.382
+9.51667 14.812
+9.61667 13.149
+9.71666 -2.029
+9.81667 1.080
+9.91667 12.924
+10.0167 26.597
+10.1167 9.890
+10.2167 10.047
+10.3167 24.629
+10.4167 9.951
+10.5167 4.821
+10.6167 4.973
+10.7167 6.649
+10.8167 15.640
+10.9167 6.648
+11.0167 13.911
+11.1167 19.039
+11.2167 17.463
+11.3167 20.153
+11.4167 8.823
+11.5167 3.183
+11.6167 9.531
+11.7167 17.303
+11.8167 13.088
+11.9167 11.921
+12.0167 22.031
+12.1167 21.069
+12.2167 12.082
+12.3167 -0.968
+12.4167 13.110
+12.5167 16.014
+12.6167 7.946
+12.7167 7.908
+12.8167 14.880
+12.9167 24.395
+13.0167 12.679
+13.1167 -2.694
+13.2167 7.335
+13.3167 8.326
+13.4167 5.558
+13.5167 2.591
+13.6167 2.877
+13.7167 11.497
+13.8167 9.654
+13.9167 2.734
+14.0167 3.538
+14.1167 8.206
+14.2167 13.892
+14.3167 5.967
+14.4167 7.696
+14.5167 12.273
+14.6167 11.773
+14.7167 9.954
+14.8167 7.934
+14.9167 11.811
+15.0167 16.198
+15.1167 16.826
+15.2167 11.464
+15.3167 11.793
+15.4167 7.350
+15.5167 9.817
+15.6167 13.403
+15.7167 5.817
+15.8167 4.326
+15.9167 4.770
+16.0167 10.294
+16.1167 10.942
+16.2167 6.514
+16.3167 4.828
+16.4167 8.429
+16.5167 14.163
+16.6167 7.401
+16.7167 7.244
+16.8167 11.559
+16.9167 14.655
+17.0167 6.374
+17.1167 4.188
+17.2167 11.756
+17.3167 16.886
+17.4167 14.905
+17.5167 7.233
+17.6167 14.091
+17.7167 18.916
+17.8167 11.549
+17.9167 4.791
+18.0167 11.850
+18.1167 17.384
+18.2167 10.422
+18.3167 6.912
+18.4167 14.171
+18.5167 14.823
+18.6167 10.295
+18.7167 2.818
+18.8167 5.195
+18.9167 16.206
+19.0167 10.553
+19.1167 6.624
+19.2167 15.192
+19.3167 20.608
+19.4167 14.945
+19.5167 8.064
+19.6167 5.954
+19.7167 3.130
+19.8167 8.026
+19.9167 11.803
+20.0167 10.293
+20.1167 19.652
+20.2167 21.490
+20.3167 17.432
+20.4167 6.564
+20.5167 2.807
+20.6167 4.431
+20.7167 6.764
+20.8167 5.131
+20.9167 8.679
+21.0167 25.633
+21.1167 16.475
+21.2167 4.368
+21.3167 9.226
+21.4167 11.136
+21.5167 10.197
+21.6167 3.263
+21.7167 8.925
+21.8167 22.103
+21.9167 13.130
+22.0167 4.867
+22.1167 6.152
+22.2167 4.795
+22.3167 7.399
+22.4167 4.718
+22.5167 10.061
+22.6167 18.757
+22.7167 12.313
+22.8167 11.965
+22.9167 12.022
+23.0167 8.011
+23.1167 4.311
+23.2167 0.810
+23.3167 4.624
+23.4167 9.453
+23.5167 10.524
+23.6167 16.472
+23.7167 16.324
+23.8167 12.823
+23.9167 9.932
+24.0167 6.027
+24.1167 6.998
+24.2167 7.359
+24.3167 7.826
+24.4167 14.793
+24.5167 12.721
+24.6167 8.210
+24.7167 8.986
+24.8167 5.190
+24.9167 1.599
+25.0167 4.309
+25.1167 5.294
+25.2167 6.180
+25.3167 12.247
+25.4167 17.100
+25.5167 10.370
+25.6167 8.927
+25.7167 3.931
+25.8167 7.674
+25.9167 2.783
+26.0167 -3.222
+26.1167 0.326
+26.2167 4.078
+26.3167 10.374
+26.4167 8.646
+26.5167 9.155
+26.6167 14.037
+26.7167 11.503
+26.8167 5.212
+26.9167 1.464
+27.0167 3.002
+27.1167 6.574
+27.2167 2.022
+27.3167 4.684
+27.4167 6.332
+27.5167 5.951
+27.6167 8.823
+27.7167 3.061
+27.8167 3.499
+27.9167 6.681
+28.0167 9.053
+28.1167 4.414
+28.2167 2.929
+28.3167 4.696
+28.4167 6.158
+28.5167 3.254
+28.6167 4.821
+28.7167 5.374
+28.8167 7.451
+28.9167 5.260
+29.0167 2.565
+29.1167 6.371
+29.2167 0.323
+29.3167 3.419
+29.4167 1.028
+29.5167 4.024
+29.6167 8.949
+29.7167 7.168
+29.8167 4.983
+29.9167 1.983
+30.0167 2.131
+30.1167 1.569
+30.2167 -2.245
+30.3167 0.746
+30.4167 7.699
+30.5167 8.862
+30.6167 7.176
+30.7167 8.843
+30.8167 7.563
+30.9167 3.029
+31.0167 4.692
+31.1167 5.844
+31.2167 2.525
+31.3167 1.235
+31.4167 4.921
+31.5167 5.964
+31.6167 5.888
+31.7167 2.660
+31.8167 4.508
+31.9167 4.832
+32.0167 1.798
+32.1167 1.608
+32.2167 1.312
+32.3167 3.860
+32.4167 0.612
+32.5167 4.780
+32.6167 4.475
+32.7167 5.994
+32.8167 2.432
+32.9167 1.203
+33.0167 2.512
+33.1167 8.594
+33.2167 8.475
+33.3167 5.508
+33.4167 9.956
+33.5167 9.422
+33.6167 8.074
+33.7167 3.268
+33.8167 4.354
+33.9167 12.855
+34.0167 12.412
+34.1167 11.459
+34.2167 11.520
+34.3167 14.220
+34.4167 12.958
+34.5167 8.747
+34.6167 8.395
+34.7167 13.833
+34.8167 14.699
+34.9167 12.718
+35.0167 11.651
+35.1167 13.022
+35.2167 13.274
+35.3167 7.125
+35.4167 10.830
+35.5167 13.620
+35.6167 10.619
+35.7167 10.362
+35.8167 11.223
+35.9167 12.490
+36.0167 12.537
+36.1167 8.827
+36.2167 6.030
+36.3167 8.111
+36.4167 7.349
+36.5167 8.010
+36.6167 8.062
+36.7167 8.319
+36.8167 11.829
+36.9167 12.495
+37.0167 11.538
+37.1167 9.870
+37.2167 9.322
+37.3167 7.760
+37.4167 9.146
+37.5167 9.112
+37.6167 9.893
+37.7167 11.388
+37.8167 13.393
+37.9167 12.454
+38.0167 12.026
+38.1167 11.397
+38.2167 11.482
+38.3167 10.249
+38.4167 6.072
+38.5167 6.062
+38.6167 8.191
+38.7167 9.610
+38.8167 11.134
+38.9167 10.120
+39.0167 10.939
+39.1167 11.049
+39.2167 10.144
+39.3167 4.467
+39.4167 6.210
+39.5167 7.549
+39.6167 9.297
+39.7167 11.454
+39.8167 10.869
+39.9167 13.641
+40.0167 11.841
+40.1167 9.231
+40.2167 10.179
+40.3167 10.113
+40.4167 12.385
+40.5167 11.509
+40.6167 10.228
+40.7167 11.186
+40.8167 11.838
+40.9167 10.053
+41.0167 6.238
+41.1167 6.386
+41.2167 8.873
+41.3167 9.835
+41.4167 6.126
+41.5167 6.683
+41.6167 9.884
+41.7167 9.527
+41.8167 6.632
+41.9167 8.919
+42.0167 11.205
+42.1167 10.443
+42.2167 5.415
+42.3167 4.753
+42.4167 8.563
+42.5167 9.121
+42.6167 8.255
+42.7167 5.559
+42.8167 10.584
+42.9167 11.342
+43.0167 6.408
+43.1167 8.585
+43.2167 9.947
+43.3167 10.495
+43.4167 8.705
+43.5167 6.405
+43.6167 8.777
+43.7167 7.387
+43.8167 7.520
+43.9167 6.635
+44.0167 9.607
+44.1167 13.288
+44.2167 12.193
+44.3167 11.908
+44.4167 11.212
+44.5167 9.703
+44.6167 8.088
+44.7167 8.708
+44.8167 5.260
+44.9167 8.412
+45.0167 10.141
+45.1167 9.936
+45.2167 9.322
+45.3167 7.588
+45.4167 6.360
+45.5167 5.026
+45.6167 4.097
+45.7167 5.502
+45.8167 7.921
+45.9167 9.931
+46.0167 12.040
+46.1167 12.116
+46.2167 12.697
+46.3167 10.025
+46.4167 8.672
+46.5167 7.115
+46.6167 9.110
+46.7167 9.276
+46.8167 12.591
+46.9167 11.228
+47.0167 13.214
+47.1167 12.261
+47.2167 7.951
+47.3167 8.922
+47.4167 7.555
+47.5167 6.187
+47.6167 5.735
+47.7167 7.111
+47.8167 8.282
+47.9167 8.843
+48.0167 10.015
+48.1167 10.576
+48.2167 9.309
+48.3167 9.161
+48.4167 10.842
+48.5167 10.694
+48.6167 10.546
+48.7167 10.603
+48.8167 12.083
+48.9167 14.174
+49.0167 11.592
+49.1167 10.130
+49.2167 9.482
+49.3167 12.086
+49.4167 8.495
+49.5167 8.462
+49.6167 7.718
+49.7167 9.618
+49.8167 8.270
+49.9167 3.774
+50.0167 4.360
+50.1167 5.355
+50.2167 4.017
+50.3167 3.798
+50.4167 3.783
+50.5167 4.178
+50.6167 5.288
+50.7167 3.554
+50.8167 3.450
+50.9167 3.550
+51.0167 5.583
+51.1167 5.588
+51.2167 5.798
+51.3167 4.283
+51.4167 5.312
+51.5167 5.631
+51.6167 5.241
+51.7167 1.907
+51.8167 2.031
+51.9167 4.898
+52.0167 3.808
+52.1167 1.194
+52.2167 1.427
+52.3167 3.999
+52.4167 4.033
+52.5167 0.309
+52.6167 -1.991
+52.7167 0.790
+52.8167 1.948
+52.9167 0.567
+53.0167 -0.304
+53.1167 2.482
+53.2167 5.374
+53.3167 2.269
+53.4167 0.283
+53.5167 1.551
+53.6167 4.647
+53.7167 2.561
+53.8167 -0.234
+53.9167 1.543
+54.0167 2.710
+54.1167 0.219
+54.2167 -0.647
+54.3167 0.520
+54.4167 0.773
+54.5167 1.126
+54.6167 -0.045
+54.7167 2.541
+54.8167 3.299
+54.9167 1.618
+55.0167 0.442
+55.1167 -1.039
+55.2167 0.628
+55.3167 -0.448
+55.4167 0.200
+55.5167 -0.576
+55.6167 0.272
+55.7167 1.220
+55.8167 1.659
+55.9167 1.688
+56.0167 -0.012
+56.1167 -1.917
+56.2167 -3.622
+56.3167 -3.703
+56.4167 -2.364
+56.5167 -1.840
+56.6167 -1.626
+56.7167 -1.412
+56.8167 -1.812
+56.9167 -2.721
+57.0167 -2.212
+57.1167 -2.721
+57.2167 -0.997
+57.3167 -1.512
+57.4167 -1.216
+57.5167 1.108
+57.6167 2.312
+57.7167 0.974
+57.8167 -0.264
+57.9167 0.016
+58.0167 -0.617
+58.1167 -0.951
+58.2167 0.644
+58.3167 1.120
+58.4167 2.916
+58.5167 3.996
+58.6167 2.739
+58.7167 3.410
+58.8167 3.367
+58.9167 2.104
+59.0167 0.432
+59.1167 1.808
+59.2167 4.808
+59.3167 4.251
+59.4167 6.231
+59.5167 7.603
+59.6167 7.755
+59.7167 7.092
+59.8167 5.615
+59.9167 4.343
+60.0167 5.305
+60.1167 6.267
+60.2167 7.533
+60.3167 6.666
+60.4167 8.237
+60.5167 8.894
+60.6167 8.841
+60.7167 7.264
+60.8167 8.635
+60.9167 7.873
+61.0167 7.110
+61.1167 5.234
+61.2167 7.319
+61.3167 7.781
+61.4167 7.228
+61.5167 5.661
+61.6167 6.737
+61.7167 6.798
+61.8167 6.150
+61.9167 5.912
+62.0167 5.269
+62.1167 5.440
+62.2167 4.802
+62.3167 4.368
+62.4167 3.734
+62.5167 4.730
+62.6167 4.710
+62.7167 5.810
+62.8167 3.562
+62.9167 3.958
+63.0167 2.629
+63.1167 2.319
+63.2167 1.910
+63.3167 0.690
+63.4167 2.624
+63.5167 2.629
+63.6167 1.824
+63.7167 1.124
+63.8167 0.629
+63.9167 -0.676
+64.0167 -1.571
+64.1167 -0.738
+64.2167 -0.714
+64.3167 -0.994
+64.4167 -0.356
+64.5167 0.282
+64.6167 1.026
+64.7167 1.669
+64.8167 1.298
+64.9167 1.031
+65.0167 1.070
+65.1167 0.094
+65.2167 0.442
+65.3167 1.094
+65.4167 1.747
+65.5167 2.200
+65.6167 2.043
+65.7167 1.177
+65.8167 0.615
+65.9167 -0.556
+66.0167 0.002
+66.1167 1.374
+66.2167 0.407
+66.3167 -0.049
+66.4167 0.713
+66.5167 -0.253
+66.6167 0.509
+66.7167 0.662
+66.8167 0.305
+66.9167 0.558
+67.0167 0.506
+67.1167 1.163
+67.2167 1.616
+67.3167 1.459
+67.4167 1.912
+67.5167 2.260
+67.6167 2.303
+67.7167 1.327
+67.8167 2.485
+67.9167 1.609
+68.0167 1.443
+68.1167 2.391
+68.2167 3.439
+68.3167 3.063
+68.4167 1.058
+68.5167 2.811
+68.6167 1.920
+68.7167 1.230
+68.8167 0.944
+68.9167 0.554
+69.0167 0.973
+69.1167 1.797
+69.2167 -0.227
+69.3167 0.592
+69.4167 2.221
+69.5167 2.221
+69.6167 1.712
+69.7167 2.316
+69.8167 3.121
+69.9167 2.807
+70.0167 2.897
+70.1167 2.373
+70.2167 3.678
+70.3167 2.744
+70.4167 2.316
+70.5167 4.120
+70.6167 5.820
+70.7167 4.777
+70.8167 6.068
+70.9167 5.324
+71.0167 6.005
+71.1167 5.152
+71.2167 4.404
+71.3167 4.975
+71.4167 4.123
+71.5167 4.284
+71.6167 3.631
+71.7167 4.807
+71.8167 6.388
+71.9167 4.921
+72.0167 4.163
+72.1167 4.930
+72.2167 4.577
+72.3167 4.429
+72.4167 3.467
+72.5167 4.943
+72.6167 4.795
+72.7167 5.051
+72.8167 4.599
+72.9167 3.941
+73.0167 4.912
+73.1167 3.545
+73.2167 3.197
+73.3167 3.558
+73.4167 2.806
+73.5167 2.967
+73.6167 3.334
+73.7167 3.600
+73.8167 4.376
+73.9167 3.528
+74.0167 2.885
+74.1167 2.446
+74.2167 3.027
+74.3167 2.898
+74.4167 2.060
+74.5167 1.936
+74.6167 1.102
+74.7167 2.912
+74.8167 1.778
+74.9167 1.054
+75.0167 1.754
+75.1167 1.340
+75.2167 -0.698
+75.3167 -0.803
+75.4167 -0.398
+75.5167 -0.598
+75.6167 -0.798
+75.7167 -0.384
+75.8167 -0.679
+75.9167 -1.074
+76.0167 -0.755
+76.1167 -0.636
+76.2167 -0.922
+76.3167 -1.612
+76.4167 -0.674
+76.5167 -0.445
+76.6167 0.194
+76.7167 -2.216
+76.8167 -2.082
+76.9167 -2.658
+77.0167 -2.115
+77.1167 -2.586
+77.2167 -1.938
+77.3167 -2.610
+77.4167 -2.771
+77.5167 -2.323
+77.6167 -1.061
+77.7167 -1.422
+77.8167 -2.798
+77.9167 -2.041
+78.0167 -2.197
+78.1167 -2.454
+78.2167 -2.101
+78.3167 -1.444
+78.4167 -1.396
+78.5167 -1.448
+78.6167 -0.485
+78.7167 0.072
+78.8167 0.120
+78.9167 0.168
+79.0167 0.826
+79.1167 0.569
+79.2167 0.717
+79.3167 -1.169
+79.4167 -0.006
+79.5167 -1.487
+79.6167 -3.273
+79.7167 -0.691
+79.8167 -0.143
+79.9167 -1.529
+80.0167 -1.390
+80.1167 -1.761
+80.2167 -1.728
+80.3167 -1.799
+80.4167 -1.770
+80.5167 -2.556
+80.6167 -2.836
+80.7167 -2.103
+80.8167 -2.388
+80.9167 -1.355
+81.0167 -2.050
+81.1167 -2.140
+81.2167 -1.521
+81.3167 -0.497
+81.4167 0.522
+81.5167 1.032
+81.6167 -0.188
+81.7167 -0.497
+81.8167 0.512
+81.9167 0.098
+82.0167 1.203
+82.1167 2.103
+82.2167 2.288
+82.3167 4.403
+82.4167 3.974
+82.5167 6.084
+82.6167 6.564
+82.7167 6.231
+82.8167 5.792
+82.9167 6.368
+83.0167 6.435
+83.1167 6.906
+83.2167 7.272
+83.3167 7.639
+83.4167 9.424
+83.5167 8.262
+83.6167 8.319
+83.7167 8.575
+83.8167 7.918
+83.9167 8.479
+84.0167 7.922
+84.1167 8.074
+84.2167 9.140
+84.3167 9.392
+84.4167 7.815
+84.5167 10.201
+84.6167 10.453
+84.7167 8.571
+84.8167 9.738
+84.9167 8.161
+85.0167 8.008
+85.1167 8.260
+85.2167 7.803
+85.3167 8.464
+85.4167 8.821
+85.5167 9.482
+85.6167 8.520
+85.7167 7.762
+85.8167 8.429
+85.9167 7.471
+86.0167 6.818
+86.1167 6.575
+86.2167 6.842
+86.3167 7.008
+86.4167 7.074
+86.5167 6.636
+86.6167 8.231
+86.7167 6.983
+86.8167 6.754
+86.9167 5.816
+87.0167 5.287
+87.1167 4.558
+87.2167 4.644
+87.3167 4.934
+87.4167 4.925
+87.5167 4.206
+87.6167 5.725
+87.7167 5.315
+87.8167 5.010
+87.9167 5.420
+88.0167 4.815
+88.1167 5.230
+88.2167 4.834
+88.3167 5.863
+88.4167 5.473
+88.5167 5.797
+88.6167 5.816
+88.7167 6.550
+88.8167 6.474
+88.9167 5.383
+89.0167 5.412
+89.1167 6.460
+89.2167 6.898
+89.3167 7.442
+89.4167 7.070
+89.5167 7.414
+89.6167 7.047
+89.7167 6.376
+89.8167 5.605
+89.9167 4.429
+90.0167 3.762
+90.1167 4.620
+90.2167 4.158
+90.3167 5.121
+90.4167 4.354
+90.5167 5.927
+90.6167 5.875
+90.7167 5.008
+90.8167 4.347
+90.9167 3.685
+91.0167 4.343
+91.1167 3.681
+91.2167 4.848
+91.3167 3.982
+91.4167 5.554
+91.5167 3.773
+91.6167 3.007
+91.7167 2.950
+91.8167 3.807
+91.9167 4.055
+92.0167 2.979
+92.1167 3.427
+92.2167 3.671
+92.3167 2.490
+92.4167 2.323
+92.5167 2.662
+92.6167 3.305
+92.7167 2.929
+92.8167 1.334
+92.9167 1.563
+93.0167 3.316
+93.1167 2.525
+93.2167 1.935
+93.3167 2.968
+93.4167 3.188
+93.5167 2.692
+93.6167 1.383
+93.7167 2.407
+93.8167 4.240
+93.9167 3.736
+94.0167 2.516
+94.1167 4.750
+94.2167 4.440
+94.3167 3.721
+94.4167 4.321
+94.5167 5.021
+94.6167 5.007
+94.7167 6.107
+94.8167 5.988
+94.9167 6.678
+95.0167 6.149
+95.1167 4.901
+95.2167 5.077
+95.3167 5.048
+95.4167 5.729
+95.5167 5.086
+95.6167 5.967
+95.7167 6.338
+95.8167 5.690
+95.9167 4.737
+96.0167 5.103
+96.1167 5.165
+96.2167 5.122
+96.3167 4.369
+96.4167 5.035
+96.5167 6.311
+96.6167 5.759
+96.7167 6.120
+96.8167 5.667
+96.9167 6.943
+97.0167 6.795
+97.1167 6.038
+97.2167 6.499
+97.3167 5.642
+97.4167 6.408
+97.5167 6.365
+97.6167 5.507
+97.7167 5.464
+97.8167 6.540
+97.9167 5.787
+98.0167 4.934
+98.1167 4.996
+98.2167 4.858
+98.3167 4.314
+98.4167 2.857
+98.5167 4.247
+98.6167 4.418
+98.7167 2.561
+98.8167 3.551
+98.9167 3.018
+99.0167 3.808
+99.1167 2.974
+99.2167 2.550
+99.3167 2.941
+99.4167 3.436
+99.5167 2.917
+99.6167 2.502
+99.7167 2.293
+99.8167 2.493
+99.9167 2.288
+100.017 1.883
+100.117 1.888
+100.217 1.488
+100.317 2.207
+100.417 -0.017
+100.517 0.302
+100.617 0.522
+100.717 0.336
+100.817 -0.354
+100.917 -0.840
+101.017 -0.916
+101.117 -0.687
+101.217 -1.573
+101.317 -2.558
+101.417 -2.120
+101.517 -2.391
+101.617 -2.153
+101.717 -2.929
+101.817 -1.671
+101.917 -2.038
+102.017 -3.014
+102.117 -1.956
+102.217 -1.813
+102.317 -1.565
+102.417 -1.826
+102.517 -2.188
+102.617 -1.430
+102.717 -1.792
+102.817 -1.644
+102.917 -1.801
+103.017 -2.362
+103.117 -0.385
+103.217 -0.847
+103.317 -0.699
+103.417 -0.246
+103.517 -1.317
+103.617 -1.069
+103.717 -0.821
+103.817 -0.778
+103.917 -0.430
+104.017 -2.725
+104.117 -2.482
+104.217 -3.763
+104.317 -4.029
+104.417 -2.367
+104.517 -1.519
+104.617 -1.485
+104.717 -0.132
+104.817 0.506
+104.917 -0.075
+105.017 1.068
+105.117 0.178
+105.217 1.012
+105.317 1.336
+105.417 1.150
+105.517 1.469
+105.617 1.379
+105.717 2.608
+105.817 3.022
+105.917 2.212
+106.017 1.403
+106.117 0.588
+106.217 2.617
+106.317 0.174
+106.417 1.993
+106.517 3.203
+106.617 1.664
+106.717 1.345
+106.817 1.631
+106.917 1.712
+107.017 1.588
+107.117 3.697
+107.217 3.264
+107.317 4.554
+107.417 3.711
+107.517 4.896
+107.617 6.792
+107.717 5.129
+107.817 7.224
+107.917 5.457
+108.017 6.128
+108.117 6.085
+108.217 7.056
+108.317 6.503
+108.417 8.084
+108.517 8.036
+108.617 7.379
+108.717 6.721
+108.817 6.673
+108.917 7.335
+109.017 7.996
+109.117 8.963
+109.217 10.639
+109.317 10.081
+109.417 10.438
+109.517 10.490
+109.617 9.223
+109.717 7.751
+109.817 8.922
+109.917 9.078
+110.017 9.540
+110.117 9.597
+110.217 10.873
+110.317 10.120
+110.417 10.282
+110.517 9.834
+110.617 8.881
+110.717 8.438
+110.817 8.504
+110.917 9.285
+111.017 9.456
+111.117 9.427
+111.217 9.908
+111.317 9.984
+111.417 9.860
+111.517 8.926
+111.617 9.212
+111.717 8.283
+111.817 8.474
+111.917 8.564
+112.017 8.150
+112.117 7.535
+112.217 8.954
+112.317 8.040
+112.417 7.026
+112.517 6.726
+112.617 6.530
+112.717 6.845
+112.817 6.450
+112.917 6.159
+113.017 5.059
+113.117 5.993
+113.217 5.302
+113.317 5.731
+113.417 5.655
+113.517 5.784
+113.617 5.813
+113.717 5.032
+113.817 4.861
+113.917 5.199
+114.017 5.642
+114.117 5.171
+114.217 4.295
+114.317 3.724
+114.417 3.867
+114.517 2.791
+114.617 3.544
+114.717 3.587
+114.817 3.835
+114.917 3.778
+115.017 2.807
+115.117 3.055
+115.217 2.289
+115.317 3.351
+115.417 2.890
+115.517 3.647
+115.617 4.405
+115.717 4.653
+115.817 5.411
+115.917 6.878
+116.017 8.040
+116.117 6.764
+116.217 4.979
+116.317 6.646
+116.417 7.399
+116.517 6.423
+116.617 7.275
+116.717 7.109
+116.817 6.028
+116.917 5.047
+117.017 4.876
+117.117 5.315
+117.217 4.939
+117.317 3.848
+117.417 3.163
+117.517 3.187
+117.617 2.496
+117.717 3.735
+117.817 2.940
+117.917 3.868
+118.017 2.459
+118.117 4.807
+118.217 5.526
+118.317 6.140
+118.417 6.245
+118.517 8.074
+118.617 8.379
+118.717 8.679
+118.817 8.164
+118.917 7.140
+119.017 6.721
+119.117 8.031
+119.217 7.712
+119.317 6.373
+119.417 5.744
+119.517 5.825
+119.617 5.192
+119.717 4.253
+119.817 5.648
+119.917 4.705
+120.017 5.895
+120.117 6.676
+120.217 6.947
+120.317 7.219
+120.417 6.166
+120.517 4.808
+120.617 4.160
+120.717 3.512
+120.817 4.183
+120.917 4.650
+121.017 5.321
+121.117 6.192
+121.217 5.439
+121.317 6.006
+121.417 5.353
+121.517 4.395
+121.617 3.743
+121.717 4.004
+121.817 3.961
+121.917 3.918
+122.017 5.603
+122.117 5.460
+122.217 5.317
+122.317 4.159
+122.417 4.221
+122.517 4.387
+122.617 4.349
+122.717 5.025
+122.817 4.482
+122.917 5.262
+123.017 5.434
+123.117 5.710
+123.217 5.681
+123.317 6.671
+123.417 4.209
+123.517 4.085
+123.617 3.861
+123.717 4.351
+123.817 5.046
+123.917 5.337
+124.017 4.208
+124.117 5.013
+124.217 3.889
+124.317 5.103
+124.417 5.203
+124.517 4.289
+124.617 4.189
+124.717 3.179
+124.817 3.389
+124.917 1.874
+125.017 1.784
+125.117 2.103
+125.217 2.322
+125.317 1.732
+125.417 0.532
+125.517 0.046
+125.617 0.375
+125.717 -0.310
+125.817 -0.182
+125.917 -0.762
+126.017 1.505
+126.117 1.029
+126.217 1.367
+126.317 -1.038
+126.417 0.320
+126.517 0.458
+126.617 -1.942
+126.717 0.535
+126.817 0.169
+126.917 0.922
+127.017 1.775
+127.117 1.003
+127.217 1.961
+127.317 2.004
+127.417 1.233
+127.517 0.362
+127.617 0.710
+127.717 0.753
+127.817 1.101
+127.917 2.059
+128.017 2.811
+128.117 2.855
+128.217 1.779
+128.317 1.412
+128.417 1.655
+128.517 0.679
+128.617 -0.706
+128.717 2.685
+128.817 1.704
+128.917 1.638
+129.017 2.381
+129.117 0.686
+129.217 -0.300
+129.317 1.253
+129.417 -1.566
+129.517 -0.118
+129.617 -1.518
+129.717 -2.513
+129.817 -1.884
+129.917 -1.056
+130.017 -1.956
+130.117 -0.317
+130.217 -0.308
+130.317 -0.808
+130.417 -1.412
+130.517 -0.393
+130.617 -0.393
+130.717 -0.293
+130.817 2.345
+130.917 1.831
+131.017 2.126
+131.117 3.336
+131.217 1.797
+131.317 2.697
+131.417 2.273
+131.517 5.707
+131.617 2.740
+131.717 2.411
+131.817 3.706
+131.917 6.016
+132.017 3.853
+132.117 4.024
+132.217 6.024
+132.317 5.381
+132.417 5.547
+132.517 4.495
+132.617 5.575
+132.717 5.942
+132.817 6.918
+132.917 7.689
+133.017 8.765
+133.117 7.198
+133.217 8.779
+133.317 7.516
+133.417 5.135
+133.517 6.106
+133.617 7.177
+133.717 6.015
+133.817 7.595
+133.917 6.533
+134.017 6.590
+134.117 6.647
+134.217 6.703
+134.317 6.355
+134.417 6.312
+134.517 7.183
+134.617 5.516
+134.717 6.897
+134.817 6.249
+134.917 7.225
+135.017 6.172
+135.117 6.543
+135.217 6.000
+135.317 6.171
+135.417 5.428
+135.517 6.923
+135.617 6.590
+135.717 6.666
+135.817 6.337
+135.917 6.113
+136.017 5.584
+136.117 6.074
+136.217 6.060
+136.317 5.436
+136.417 5.731
+136.517 5.112
+136.617 4.802
+136.717 3.578
+136.817 4.593
+136.917 5.407
+137.017 4.902
+137.117 4.298
+137.217 4.712
+137.317 3.502
+137.417 4.326
+137.517 2.817
+137.617 3.341
+137.717 3.055
+137.817 2.770
+137.917 2.284
+138.017 1.698
+138.117 2.537
+138.217 1.751
+138.317 1.780
+138.417 2.318
+138.517 2.757
+138.617 1.876
+138.717 1.300
+138.817 1.134
+138.917 1.372
+139.017 0.496
+139.117 -0.075
+139.217 -0.646
+139.317 0.206
+139.417 0.450
+139.517 -0.017
+139.617 0.127
+139.717 0.575
+139.817 0.718
+139.917 -0.358
+140.017 0.295
+140.117 -0.172
+140.217 -0.029
+140.317 -1.409
+140.417 -2.485
+140.517 -2.342
+140.617 -1.794
+140.717 -0.941
+140.817 -0.903
+140.917 -2.693
+141.017 -1.436
+141.117 -1.502
+141.217 -1.873
+141.317 -2.145
+141.417 -2.416
+141.517 -2.487
+141.617 -2.558
+141.717 -1.515
+141.817 -2.301
+141.917 -0.448
+142.017 -1.543
+142.117 -1.319
+142.217 -1.605
+142.317 -2.705
+142.417 -0.557
+142.517 0.168
+142.617 0.077
+142.717 -0.218
+142.817 -0.313
+142.917 0.706
diff --git a/doc/examples/tsunami/ganares.txt b/doc/examples/tsunami/ganares.txt
new file mode 100644
index 0000000..2465c3d
--- /dev/null
+++ b/doc/examples/tsunami/ganares.txt
@@ -0,0 +1,2122 @@
+-24.9833 4.728
+-24.9167 4.914
+-24.85 4.999
+-24.7833 5.695
+-24.7167 6.390
+-24.65 7.085
+-24.5833 7.375
+-24.5167 7.666
+-24.45 7.956
+-24.3833 7.637
+-24.3167 7.218
+-24.25 6.494
+-24.1833 5.770
+-24.1167 5.251
+-24.05 4.731
+-23.9833 4.517
+-23.9167 4.507
+-23.85 4.498
+-23.7833 5.098
+-23.7167 5.393
+-23.65 5.893
+-23.5833 6.088
+-23.5167 6.183
+-23.45 6.279
+-23.3833 6.374
+-23.3167 6.369
+-23.25 6.059
+-23.1833 5.750
+-23.1167 5.440
+-23.05 5.335
+-22.9833 4.826
+-22.9167 5.331
+-22.85 5.331
+-22.7833 5.735
+-22.7167 6.345
+-22.65 6.955
+-22.5833 7.259
+-22.5167 7.159
+-22.45 7.059
+-22.3833 6.555
+-22.3167 5.540
+-22.25 4.935
+-22.1833 3.821
+-22.1167 3.216
+-22.05 3.221
+-21.9833 3.531
+-21.9167 4.045
+-21.85 4.864
+-21.7833 5.683
+-21.7167 6.403
+-21.65 7.122
+-21.5833 7.536
+-21.5167 7.951
+-21.45 7.960
+-21.3833 7.970
+-21.3167 7.979
+-21.25 7.989
+-21.1833 7.899
+-21.1167 8.113
+-21.05 8.023
+-20.9833 7.932
+-20.9167 7.842
+-20.85 7.651
+-20.7833 7.461
+-20.7167 7.675
+-20.65 7.790
+-20.5833 7.804
+-20.5167 7.919
+-20.45 8.338
+-20.3833 8.657
+-20.3167 8.467
+-20.25 8.481
+-20.1833 8.191
+-20.1167 7.595
+-20.05 7.405
+-19.9833 6.505
+-19.9167 6.519
+-19.85 6.229
+-19.7833 5.939
+-19.7167 5.953
+-19.65 5.967
+-19.5833 6.082
+-19.5167 6.401
+-19.45 6.720
+-19.3833 6.530
+-19.3167 6.239
+-19.25 6.354
+-19.1833 6.163
+-19.1167 5.973
+-19.05 5.478
+-18.9833 5.592
+-18.9167 5.402
+-18.85 5.311
+-18.7833 5.221
+-18.7167 5.131
+-18.65 5.040
+-18.5833 4.340
+-18.5167 4.350
+-18.45 4.360
+-18.3833 3.760
+-18.3167 3.769
+-18.25 3.574
+-18.1833 3.684
+-18.1167 3.488
+-18.05 3.698
+-17.9833 3.808
+-17.9167 4.322
+-17.85 4.632
+-17.7833 4.941
+-17.7167 5.251
+-17.65 5.256
+-17.5833 5.360
+-17.5167 4.856
+-17.45 4.656
+-17.3833 4.251
+-17.3167 3.846
+-17.25 3.541
+-17.1833 3.541
+-17.1167 3.541
+-17.05 4.151
+-16.9833 4.251
+-16.9167 4.656
+-16.85 4.856
+-16.7833 5.056
+-16.7167 5.256
+-16.65 5.556
+-16.5833 5.551
+-16.5167 5.851
+-16.45 5.946
+-16.3833 6.346
+-16.3167 6.746
+-16.25 6.941
+-16.1833 6.832
+-16.1167 6.822
+-16.05 6.103
+-15.9833 5.788
+-15.9167 5.269
+-15.85 4.955
+-15.7833 4.740
+-15.7167 4.626
+-15.65 4.716
+-15.5833 4.602
+-15.5167 4.792
+-15.45 4.778
+-15.3833 4.763
+-15.3167 4.749
+-15.25 4.735
+-15.1833 4.515
+-15.1167 4.196
+-15.05 4.382
+-14.9833 3.858
+-14.9167 3.639
+-14.85 3.519
+-14.7833 3.705
+-14.7167 3.891
+-14.65 3.771
+-14.5833 3.752
+-14.5167 3.328
+-14.45 3.004
+-14.3833 2.680
+-14.3167 2.356
+-14.25 2.032
+-14.1833 2.013
+-14.1167 1.789
+-14.05 2.075
+-13.9833 2.055
+-13.9167 2.441
+-13.85 2.727
+-13.7833 3.112
+-13.7167 3.398
+-13.65 3.379
+-13.5833 4.069
+-13.5167 3.745
+-13.45 3.726
+-13.3833 3.707
+-13.3167 3.687
+-13.25 3.363
+-13.1833 3.039
+-13.1167 2.920
+-13.05 3.106
+-12.9833 3.391
+-12.9167 3.477
+-12.85 3.663
+-12.7833 3.543
+-12.7167 3.324
+-12.65 3.410
+-12.5833 3.495
+-12.5167 3.176
+-12.45 3.162
+-12.3833 2.843
+-12.3167 2.728
+-12.25 3.019
+-12.1833 3.109
+-12.1167 3.299
+-12.05 3.695
+-11.9833 4.090
+-11.9167 4.690
+-11.85 4.985
+-11.7833 4.975
+-11.7167 4.866
+-11.65 4.756
+-11.5833 4.242
+-11.5167 4.032
+-11.45 3.822
+-11.3833 3.513
+-11.3167 3.813
+-11.25 3.708
+-11.1833 3.908
+-11.1167 4.108
+-11.05 4.513
+-10.9833 4.818
+-10.9167 5.122
+-10.85 5.732
+-10.7833 6.037
+-10.7167 6.242
+-10.65 6.042
+-10.5833 6.146
+-10.5167 5.642
+-10.45 5.342
+-10.3833 5.042
+-10.3167 4.337
+-10.25 3.937
+-10.1833 4.046
+-10.1167 3.851
+-10.05 4.266
+-9.98333 4.580
+-9.91666 4.895
+-9.84999 5.414
+-9.78334 5.628
+-9.71667 5.743
+-9.65 5.957
+-9.58333 5.971
+-9.51668 5.781
+-9.45001 5.491
+-9.38333 5.405
+-9.31666 5.319
+-9.24999 4.929
+-9.18334 4.743
+-9.11667 4.963
+-9.05 4.677
+-8.98333 4.796
+-8.91668 4.815
+-8.85001 4.835
+-8.78333 5.059
+-8.71666 5.283
+-8.64999 5.507
+-8.58334 5.731
+-8.51667 5.855
+-8.45 5.979
+-8.38333 6.103
+-8.31668 6.227
+-8.25001 6.351
+-8.18333 6.375
+-8.11666 6.399
+-8.04999 6.423
+-7.98334 6.447
+-7.91667 6.166
+-7.85 6.190
+-7.78333 5.809
+-7.71668 5.528
+-7.65001 5.552
+-7.58333 5.171
+-7.51666 4.891
+-7.44999 4.815
+-7.38334 4.534
+-7.31667 4.458
+-3.24999 4.244
+-3.18334 4.029
+-3.11667 3.815
+-3.05 3.296
+-2.98333 2.876
+-2.91668 2.762
+-2.85001 2.443
+-2.78333 2.328
+-2.71666 2.414
+-2.58334 1.876
+-2.51667 1.656
+-2.45 1.437
+-2.38333 1.928
+-2.31668 1.808
+-2.25001 1.689
+-2.18333 1.875
+-2.11666 1.856
+-2.04999 2.346
+-1.98334 2.327
+-1.91667 2.612
+-1.85 2.693
+-1.78333 2.674
+-1.71668 2.755
+-1.65001 2.431
+-1.44999 3.183
+-1.38334 3.568
+-1.31667 4.259
+-1.25 4.644
+-1.18333 5.335
+-1.11668 6.025
+-1.05001 6.311
+-0.983333 5.787
+-0.916661 5.863
+-0.849989 5.234
+-0.783341 4.705
+-0.716669 4.381
+-0.649997 4.057
+-0.583325 3.733
+-0.516677 4.019
+-0.450005 4.304
+-0.383333 4.185
+-0.316661 4.166
+-0.249989 4.047
+-0.183341 3.623
+-0.116669 3.099
+-0.0499973 2.879
+0.0166747 2.660
+0.0833227 2.441
+0.149995 2.831
+0.216667 3.122
+0.283339 3.717
+0.350011 4.517
+0.416659 5.012
+0.483331 5.203
+0.550003 5.393
+0.616675 5.483
+0.683323 5.879
+0.749995 5.564
+0.816667 5.959
+0.883339 5.545
+0.950011 5.231
+1.01666 5.426
+1.08333 5.216
+1.15 4.702
+1.21667 4.797
+1.28332 4.587
+1.34999 4.583
+1.41667 5.187
+1.48334 5.692
+1.55001 6.197
+1.61666 6.907
+1.68333 7.616
+1.75 8.021
+1.81667 8.426
+1.88332 9.035
+1.94999 8.935
+2.01667 8.835
+2.08334 8.431
+2.15001 8.331
+2.21666 8.131
+2.28333 7.931
+2.35 7.631
+2.41667 8.245
+2.48332 8.250
+2.54999 8.459
+2.61667 8.669
+2.68334 9.083
+2.75001 9.598
+2.81666 9.707
+2.88333 10.022
+2.95 9.827
+3.01667 9.836
+3.08332 9.541
+3.14999 8.841
+3.21667 8.141
+3.28334 8.355
+3.35001 22.895
+3.41666 64.463
+3.48333 63.358
+3.55 96.696
+3.61667 43.775
+3.68332 9.751
+3.74999 14.643
+3.81667 -37.769
+3.88334 -41.107
+3.95001 -30.120
+4.01666 -41.993
+4.08333 -30.701
+4.15 15.543
+4.21667 33.746
+4.28332 10.291
+4.34999 17.825
+4.41667 22.311
+4.48334 6.986
+4.55001 2.023
+4.61666 -3.853
+4.68333 -16.131
+4.75 -14.693
+4.81667 1.681
+4.88332 18.460
+4.94999 1.305
+5.01667 26.823
+5.08334 12.411
+5.15001 -0.376
+5.21666 17.217
+5.28333 16.012
+5.35 -3.885
+5.41667 11.979
+5.48332 0.411
+5.54999 -4.352
+5.61667 -3.728
+5.68334 -6.661
+5.75001 -8.781
+5.81666 0.173
+5.88333 -0.222
+5.95 5.684
+6.01667 17.480
+6.08332 21.352
+6.14999 14.556
+6.21667 17.514
+6.28334 19.657
+6.35001 4.122
+6.41666 6.365
+6.48333 0.988
+6.55 -1.340
+6.61667 -10.985
+6.68332 -2.545
+6.74999 2.541
+6.81667 3.665
+6.88334 5.194
+6.95001 4.284
+7.01666 4.084
+7.08333 6.018
+7.15 4.294
+7.21667 9.680
+7.28332 12.628
+7.34999 1.556
+7.41667 5.213
+7.48334 10.090
+7.55001 3.484
+7.61666 1.756
+7.68333 1.246
+7.75 -0.992
+7.81667 1.036
+7.88332 7.737
+7.94999 11.085
+8.01667 11.385
+8.08334 10.566
+8.15001 8.832
+8.21666 5.065
+8.28333 4.041
+8.35 0.579
+8.41667 -2.479
+8.48332 -4.622
+8.54999 -5.241
+8.61667 -2.713
+8.68334 2.864
+8.75001 9.965
+8.81666 15.947
+8.88333 13.394
+8.95 13.380
+9.01667 6.864
+9.08332 6.950
+9.14999 -1.294
+9.21667 -7.609
+9.28334 -12.096
+9.35001 -11.401
+9.41666 -3.085
+9.48333 3.196
+9.55 8.563
+9.61667 9.968
+9.68332 9.339
+9.74999 2.005
+9.81667 3.815
+9.88334 -0.472
+9.95001 -5.977
+10.0167 -8.130
+10.0833 -5.611
+10.15 -2.482
+10.2167 0.342
+10.2833 10.481
+10.35 14.524
+10.4167 12.167
+10.4833 7.066
+10.55 6.842
+10.6167 -1.207
+10.6833 -3.565
+10.75 -0.741
+10.8167 -0.355
+10.8833 -2.003
+10.95 0.821
+11.0167 4.255
+11.0833 4.335
+11.15 7.464
+11.2167 9.983
+11.2833 6.611
+11.35 5.778
+11.4167 4.539
+11.4833 1.472
+11.55 -0.376
+11.6167 2.043
+11.6833 -1.429
+11.75 -2.362
+11.8167 -5.225
+11.8833 -6.358
+11.95 -5.868
+12.0167 -1.515
+12.0833 3.752
+12.15 6.481
+12.2167 10.429
+12.2833 8.281
+12.35 8.776
+12.4167 7.747
+12.4833 2.756
+12.55 -2.030
+12.6167 -6.512
+12.6833 -3.983
+12.75 -3.383
+12.8167 -2.578
+12.8833 2.798
+12.95 6.346
+13.0167 9.795
+13.0833 13.852
+13.15 10.290
+13.2167 8.456
+13.2833 4.694
+13.35 -1.507
+13.4167 -3.746
+13.4833 -7.913
+13.55 -10.556
+13.6167 -9.946
+13.6833 -3.546
+13.75 0.622
+13.8167 9.361
+13.8833 13.833
+13.95 15.767
+14.0167 17.905
+14.0833 17.605
+14.15 15.781
+14.2167 11.419
+14.2833 2.384
+14.35 -0.150
+14.4167 -4.712
+14.4833 -7.041
+14.55 -5.607
+14.6167 -1.940
+14.6833 4.980
+14.75 7.533
+14.8167 10.086
+14.8833 15.687
+14.95 12.958
+15.0167 13.582
+15.0833 12.377
+15.15 5.891
+15.2167 -0.391
+15.2833 -1.086
+15.35 -2.491
+15.4167 -1.253
+15.4833 3.339
+15.55 6.406
+15.6167 7.339
+15.6833 11.526
+15.75 13.883
+15.8167 14.312
+15.8833 13.012
+15.95 11.003
+16.0167 6.759
+16.0833 3.835
+16.15 1.421
+16.2167 0.226
+16.2833 -0.360
+16.35 -0.031
+16.4167 2.636
+16.4833 6.927
+16.55 8.680
+16.6167 10.738
+16.6833 11.881
+16.75 9.976
+16.8167 9.900
+16.8833 6.776
+16.95 3.652
+17.0167 3.576
+17.0833 2.281
+17.2167 4.163
+17.2833 6.830
+17.35 7.973
+17.4167 10.740
+17.4833 12.798
+17.55 9.674
+17.6167 8.174
+17.6833 7.284
+21.75 6.110
+21.8833 8.415
+21.95 8.905
+22.0167 8.076
+22.0833 9.176
+22.15 7.633
+22.2167 13.610
+22.2833 11.457
+22.35 10.828
+22.4833 10.485
+22.55 9.956
+22.6167 8.818
+22.6833 7.070
+22.75 6.846
+22.8167 5.098
+22.95 5.260
+23.0167 6.760
+23.0833 10.093
+23.15 11.188
+23.2167 12.488
+23.2833 13.888
+23.35 13.969
+23.4167 12.931
+23.4833 11.792
+23.55 10.654
+23.6167 8.701
+23.6833 10.306
+23.75 11.911
+23.8167 14.430
+23.8833 17.254
+23.95 18.759
+24.0167 17.011
+24.0833 13.334
+24.15 10.267
+24.2167 5.675
+24.2833 3.118
+24.35 1.575
+24.4167 1.151
+24.4833 2.760
+24.55 7.518
+24.6167 11.566
+24.6833 15.309
+24.75 16.919
+24.8167 16.295
+24.8833 14.147
+24.95 12.508
+25.0167 9.446
+25.0833 7.098
+25.15 4.850
+25.2167 2.807
+25.2833 3.507
+25.35 6.240
+25.4167 10.193
+25.4833 12.012
+25.55 14.951
+25.6167 16.975
+25.6833 15.546
+25.75 15.031
+25.8167 13.907
+25.8833 10.855
+25.95 9.021
+26.0167 8.002
+26.0833 10.945
+26.15 13.483
+26.2167 15.412
+26.2833 17.036
+26.35 17.341
+26.4167 15.512
+26.4833 14.903
+26.55 13.583
+26.6167 13.079
+26.6833 11.050
+26.75 10.240
+26.8167 10.650
+26.8833 10.959
+26.95 13.607
+27.0167 15.746
+27.0833 17.175
+27.15 18.808
+27.2167 19.527
+27.2833 18.418
+27.35 17.003
+27.4167 14.270
+27.4833 11.231
+27.55 8.398
+27.6167 7.698
+27.6833 10.351
+27.75 12.394
+27.8167 17.385
+27.8833 21.157
+27.95 22.795
+28.0167 22.810
+28.0833 20.081
+28.15 15.928
+28.2167 11.575
+28.2833 7.627
+28.35 5.103
+28.4167 5.423
+28.4833 7.471
+28.55 10.128
+28.6167 14.210
+28.6833 16.258
+28.75 16.477
+28.8167 15.072
+28.8833 13.158
+28.95 9.924
+29.0167 6.995
+29.0833 5.691
+29.15 6.419
+29.2167 5.929
+29.2833 7.367
+29.35 8.706
+29.4167 9.130
+29.4833 7.825
+29.55 7.335
+29.6167 6.335
+29.6833 5.235
+29.75 6.978
+29.8167 9.026
+29.8833 11.074
+29.95 10.479
+30.0167 9.479
+30.0833 7.969
+30.15 5.140
+30.2167 3.021
+30.2833 2.831
+30.35 4.064
+30.4167 5.093
+30.4833 8.560
+30.55 10.504
+30.6167 11.023
+30.6833 8.799
+30.75 7.489
+30.8167 5.570
+30.8833 3.141
+30.95 2.541
+31.0167 3.160
+31.0833 3.575
+31.15 4.904
+31.2167 6.332
+31.2833 6.237
+31.35 5.228
+31.4167 4.218
+31.4833 4.528
+31.55 3.413
+31.6167 3.518
+31.6833 3.928
+31.75 5.252
+31.8167 4.237
+31.8833 4.847
+31.95 5.761
+32.0167 5.152
+32.0833 4.642
+32.15 4.742
+32.2167 4.537
+32.2833 3.213
+32.35 4.328
+32.4167 5.237
+32.4833 6.147
+32.55 6.547
+32.6167 7.556
+32.6833 6.737
+32.75 6.932
+32.8167 6.213
+32.8833 4.680
+32.95 4.060
+33.0167 3.136
+33.0833 3.227
+33.15 4.841
+33.2167 5.946
+33.2833 7.051
+33.35 8.460
+33.4167 7.836
+33.4833 6.908
+33.55 5.674
+33.6167 5.760
+33.6833 4.321
+33.75 4.711
+33.8167 5.711
+33.8833 6.507
+33.95 8.521
+34.0167 10.331
+34.0833 10.516
+34.15 10.192
+34.2167 7.125
+34.2833 5.377
+34.35 4.139
+34.4167 4.219
+34.4833 4.300
+34.55 6.515
+34.6167 9.034
+34.6833 10.639
+34.75 13.563
+34.8167 15.472
+34.8833 14.739
+34.95 12.991
+35.0167 11.038
+35.0833 8.780
+35.15 7.132
+35.2167 6.603
+35.2833 6.479
+35.35 6.355
+35.4167 7.146
+35.4833 7.836
+35.55 8.627
+35.6167 8.403
+35.6833 10.007
+35.75 10.188
+35.8167 10.879
+35.8833 11.264
+35.95 10.940
+36.0167 10.411
+36.0833 9.173
+36.15 7.630
+36.2167 6.696
+36.2833 5.967
+36.35 6.763
+36.4167 6.643
+36.4833 7.743
+36.55 8.439
+36.6167 9.439
+36.6833 10.134
+36.75 10.729
+36.8167 11.019
+36.8833 10.295
+36.95 9.976
+37.0167 9.152
+37.0833 7.209
+37.15 5.166
+37.2167 4.242
+37.2833 3.318
+37.35 3.003
+37.4167 3.808
+37.4833 6.137
+37.55 7.451
+37.6167 10.595
+37.6833 13.333
+37.75 14.852
+37.8167 15.052
+37.8833 13.728
+37.95 11.490
+38.0167 8.846
+38.0833 6.103
+38.15 3.665
+38.2167 2.446
+38.2833 2.955
+38.35 4.379
+38.4167 7.227
+38.4833 10.075
+38.55 10.690
+38.6167 10.899
+38.6833 10.599
+38.75 8.575
+38.8167 7.261
+38.8833 6.761
+38.95 5.856
+39.0167 5.866
+39.0833 6.690
+39.15 8.733
+39.2167 9.862
+39.2833 11.195
+39.35 11.919
+39.4167 11.019
+39.4833 10.424
+39.55 9.729
+39.6167 8.424
+39.6833 6.815
+39.75 6.629
+39.8167 6.139
+39.8833 6.258
+39.95 7.191
+40.0167 6.906
+40.0833 7.739
+40.15 7.963
+40.2167 7.273
+40.2833 6.887
+40.35 6.707
+40.4167 6.526
+40.4833 6.245
+40.55 5.759
+40.6167 5.174
+40.6833 4.893
+40.75 4.307
+40.8167 3.317
+40.8833 2.731
+40.95 2.351
+41.0167 2.579
+41.0833 3.113
+41.15 3.647
+41.2167 5.095
+41.2833 6.443
+41.35 6.671
+41.4167 5.681
+41.4833 5.200
+41.55 4.515
+41.6167 2.915
+41.6833 2.534
+45.75 3.582
+45.8167 3.368
+45.8833 3.558
+45.95 3.953
+46.0167 4.244
+46.0833 4.129
+46.15 3.910
+46.2167 3.896
+46.2833 3.067
+46.35 2.543
+46.4167 2.628
+46.4833 3.424
+46.55 4.524
+46.6167 6.233
+46.6833 7.128
+46.75 7.109
+46.8167 7.395
+46.8833 6.766
+46.95 6.237
+47.0167 5.818
+47.0833 5.994
+47.15 5.565
+47.2167 6.560
+47.2833 7.251
+47.35 7.432
+47.4167 7.817
+47.55 5.945
+47.6167 5.821
+47.6833 5.087
+47.75 4.863
+47.8167 5.349
+47.8833 5.835
+47.95 5.711
+48.0167 6.401
+48.0833 6.582
+48.15 6.053
+48.2167 6.439
+48.2833 5.400
+48.35 4.262
+48.4167 3.938
+48.4833 4.628
+48.55 4.709
+48.6167 5.604
+48.6833 6.195
+48.75 6.480
+48.8167 5.851
+48.8833 6.037
+48.95 5.308
+49.0167 4.884
+49.0833 5.070
+49.15 5.460
+49.2167 6.460
+49.2833 7.665
+49.35 8.665
+49.4167 8.246
+49.4833 8.536
+49.55 8.117
+49.6167 6.174
+49.6833 5.145
+49.75 3.407
+49.8167 2.787
+49.8833 2.878
+49.95 4.087
+50.0167 4.892
+50.0833 6.916
+50.15 8.026
+50.2167 9.645
+50.2833 9.740
+50.35 10.140
+50.4167 9.221
+50.4833 8.507
+50.55 8.097
+50.6167 7.687
+50.6833 7.787
+50.75 8.802
+50.8167 9.511
+50.8833 10.426
+50.95 10.631
+51.0167 10.631
+51.0833 10.431
+51.15 10.026
+51.2167 8.911
+51.2833 7.697
+51.35 7.702
+51.4167 8.316
+51.4833 8.831
+51.55 10.259
+51.6167 11.079
+51.6833 11.798
+51.75 12.722
+51.8167 13.136
+51.8833 12.841
+51.95 11.936
+52.0167 10.322
+52.0833 9.012
+52.15 7.703
+52.2167 7.207
+52.2833 7.017
+52.35 7.131
+52.4167 7.451
+52.4833 8.075
+52.55 8.699
+52.6167 9.323
+52.6833 9.032
+52.75 8.947
+52.8167 8.556
+52.8833 8.166
+52.95 7.471
+53.0167 6.675
+53.0833 5.980
+53.15 5.185
+53.2167 4.695
+53.2833 4.509
+53.35 4.323
+53.4167 4.443
+53.4833 4.867
+53.55 5.291
+53.6167 5.410
+53.6833 5.529
+53.75 5.853
+53.8167 5.972
+53.8833 5.482
+53.95 5.296
+54.0167 5.720
+54.0833 5.230
+54.15 4.839
+54.2167 4.959
+54.2833 5.178
+54.35 5.297
+54.4167 5.211
+54.4833 5.735
+54.55 6.260
+54.6167 6.274
+54.6833 6.898
+54.75 7.117
+54.8167 7.536
+54.8833 6.636
+54.95 5.836
+55.0167 4.936
+55.0833 4.236
+55.15 4.046
+55.2167 4.565
+55.2833 4.780
+55.35 5.399
+55.4167 5.613
+55.4833 5.318
+55.55 5.732
+55.6167 5.232
+55.6833 4.123
+55.75 3.113
+55.8167 2.613
+55.8833 2.313
+55.95 2.318
+56.0167 2.628
+56.0833 2.328
+56.15 2.128
+56.2167 2.232
+56.2833 1.828
+56.35 1.728
+56.4167 2.032
+56.4833 2.337
+56.55 2.642
+56.6167 3.047
+56.6833 3.247
+56.75 3.042
+56.8167 2.328
+56.8833 1.713
+56.95 1.708
+57.0167 1.094
+57.0833 0.884
+57.15 1.384
+57.2167 1.480
+57.2833 2.284
+57.35 2.580
+57.4167 2.265
+57.4833 1.646
+57.55 1.127
+57.6167 0.912
+57.6833 0.698
+57.75 0.888
+57.8167 1.484
+57.8833 1.979
+57.95 2.269
+58.0167 3.474
+58.0833 3.560
+58.15 3.950
+58.2167 3.731
+58.2833 3.611
+58.35 3.797
+58.4167 3.983
+58.4833 4.473
+58.55 4.454
+58.6167 4.435
+58.6833 4.415
+58.75 4.191
+58.8167 4.172
+58.8833 4.253
+58.95 4.639
+59.0167 4.719
+59.0833 5.105
+59.15 5.591
+59.2167 6.586
+59.2833 7.071
+59.35 6.847
+59.4167 7.028
+59.4833 6.904
+59.55 6.780
+59.6167 6.047
+59.6833 5.213
+59.75 4.784
+59.8167 3.746
+59.8833 3.622
+59.95 3.193
+60.0167 3.274
+60.0833 3.455
+60.15 4.145
+60.2167 4.226
+60.2833 4.307
+60.35 4.083
+60.4167 3.859
+60.4833 2.620
+60.55 2.091
+60.6167 1.463
+60.6833 1.443
+60.75 1.629
+60.8167 1.915
+60.8833 2.710
+60.95 3.405
+61.0167 4.200
+61.0833 4.286
+61.15 4.067
+61.2167 3.443
+61.2833 2.819
+61.35 2.195
+61.4167 1.775
+61.4833 1.661
+61.55 1.751
+61.6167 2.146
+61.6833 2.846
+61.75 3.446
+61.8167 3.742
+61.8833 3.632
+61.95 3.522
+62.0167 3.313
+62.0833 3.408
+62.15 3.503
+62.2167 3.498
+62.2833 3.698
+62.35 3.594
+62.4167 3.794
+62.4833 3.894
+62.55 4.298
+62.6167 4.603
+62.6833 4.603
+62.75 4.808
+62.8167 4.913
+62.8833 4.813
+62.95 5.222
+63.0167 5.532
+63.0833 5.232
+63.15 5.442
+63.2167 5.956
+63.2833 5.761
+63.35 5.870
+63.4167 5.980
+63.4833 5.685
+63.55 4.985
+63.6167 4.995
+63.6833 4.499
+63.75 4.409
+63.8167 4.728
+63.8833 4.843
+63.95 5.467
+64.0167 5.786
+64.0833 6.005
+64.15 6.224
+64.2167 6.343
+64.2833 6.463
+64.35 5.972
+64.4167 5.991
+64.4833 5.401
+64.55 5.115
+64.6167 4.730
+64.6833 4.344
+64.75 4.263
+64.8167 3.778
+64.8833 3.902
+64.95 3.721
+65.0167 3.540
+65.0833 3.564
+65.15 3.688
+65.2167 3.407
+65.2833 3.027
+65.35 3.051
+65.4167 2.770
+65.4833 2.694
+65.55 2.618
+65.6167 2.847
+65.6833 3.480
+65.75 4.319
+65.8167 4.852
+65.8833 5.386
+65.95 5.210
+66.0167 4.524
+66.0833 4.143
+66.15 3.458
+66.2167 2.772
+66.2833 2.796
+66.35 2.720
+66.4167 3.254
+66.4833 3.583
+66.55 3.202
+66.6167 -0.432
+66.6833 2.640
+70.75 0.738
+70.8167 0.824
+70.8833 1.214
+70.95 2.314
+71.0167 2.609
+71.0833 3.600
+71.15 4.090
+71.2167 4.985
+71.2833 4.966
+71.35 5.252
+71.4167 4.928
+71.4833 5.313
+71.55 5.699
+71.6167 5.780
+71.6833 6.165
+71.75 6.551
+71.8167 6.632
+71.8833 6.408
+71.95 6.284
+72.0167 5.755
+72.0833 5.326
+72.15 5.102
+72.2167 4.368
+72.2833 4.244
+72.35 4.325
+72.4167 3.896
+72.4833 3.672
+72.55 4.158
+72.6167 4.543
+72.6833 5.234
+72.75 5.315
+72.8167 5.700
+72.8833 5.171
+72.95 4.847
+73.0167 4.928
+73.0833 4.299
+73.15 3.975
+73.2167 3.956
+73.2833 3.937
+73.35 3.513
+73.4167 3.699
+73.4833 3.579
+73.55 3.460
+73.6167 3.546
+73.6833 3.327
+73.75 3.312
+73.8167 3.703
+73.8833 3.993
+73.95 4.283
+74.0167 4.169
+74.0833 4.359
+74.15 4.145
+74.2167 4.640
+74.2833 4.326
+74.35 4.416
+74.4167 4.407
+74.4833 4.702
+74.55 4.592
+74.6167 5.092
+74.6833 4.883
+74.75 5.283
+74.8167 5.073
+74.8833 5.373
+74.95 5.673
+75.0167 6.178
+75.0833 6.378
+75.15 6.883
+75.2167 6.678
+75.2833 6.678
+75.35 6.473
+75.4167 6.373
+75.4833 6.068
+75.55 6.273
+75.6167 6.073
+75.6833 6.178
+75.75 6.283
+75.8167 6.287
+75.8833 6.292
+75.95 6.197
+76.0167 6.102
+76.0833 6.007
+76.15 5.811
+76.2167 5.616
+76.2833 6.031
+76.35 6.040
+76.4167 6.559
+76.4833 6.874
+76.55 7.393
+76.6167 7.607
+76.6833 8.027
+76.75 8.141
+76.8167 8.255
+76.8833 7.965
+76.95 7.470
+77.0167 6.875
+77.0833 6.179
+77.15 5.584
+77.2167 4.584
+77.2833 3.889
+77.35 4.108
+77.4167 4.327
+77.4833 5.056
+77.55 5.785
+77.6167 6.614
+77.6833 7.038
+77.75 7.157
+77.8167 6.667
+77.8833 6.176
+77.95 5.586
+78.0167 4.791
+78.0833 4.605
+78.15 4.419
+78.2167 4.539
+78.2833 4.558
+78.35 4.677
+78.4167 4.491
+78.4833 4.306
+78.55 3.815
+78.6167 3.325
+78.6833 2.630
+78.75 2.444
+78.8167 2.663
+78.8833 3.187
+78.95 3.407
+79.0167 4.235
+79.0833 5.064
+79.15 5.384
+79.2167 5.298
+79.2833 5.412
+79.35 5.122
+79.4167 4.527
+79.4833 4.336
+79.55 3.841
+79.6167 4.056
+79.6833 4.270
+79.75 4.180
+79.8167 4.089
+79.8833 4.404
+79.95 4.413
+80.0167 3.813
+80.0833 3.923
+80.15 3.728
+80.2167 3.937
+80.2833 3.742
+80.35 3.747
+80.4167 3.956
+80.4833 3.656
+80.55 3.456
+80.6167 3.156
+80.6833 2.752
+80.75 2.552
+80.8167 2.147
+80.8833 2.147
+80.95 2.656
+81.0167 3.061
+81.0833 2.756
+81.15 3.466
+81.2167 3.056
+81.2833 2.952
+81.35 2.542
+81.4167 1.928
+81.4833 1.313
+81.55 1.104
+81.6167 1.199
+81.6833 0.989
+81.75 1.489
+81.8167 1.989
+81.8833 2.284
+81.95 2.884
+82.0167 2.875
+82.0833 3.270
+82.15 3.056
+82.2167 3.451
+82.2833 3.032
+82.35 2.712
+82.4167 2.293
+82.4833 2.279
+82.55 2.669
+82.6167 2.960
+82.6833 3.655
+82.75 4.045
+82.8167 4.231
+82.8833 4.721
+82.95 4.602
+83.0167 3.873
+83.0833 3.549
+83.15 2.920
+83.2167 2.596
+83.2833 2.272
+83.35 2.558
+83.4167 2.334
+83.4833 3.024
+83.55 3.410
+83.6167 3.491
+83.6833 4.486
+83.75 4.262
+83.8167 4.038
+83.8833 4.219
+83.95 3.995
+84.0167 4.175
+84.0833 3.951
+84.15 4.132
+84.2167 3.908
+84.2833 3.784
+84.35 3.560
+84.4167 3.641
+84.4833 3.722
+84.55 3.903
+84.6167 3.983
+84.6833 4.064
+84.75 4.655
+84.8167 5.040
+84.8833 5.326
+84.95 5.611
+85.0167 5.592
+85.0833 6.183
+85.15 6.468
+85.2167 6.349
+85.2833 6.535
+85.35 6.720
+85.4167 6.196
+85.4833 6.282
+85.55 6.367
+85.6167 6.453
+85.6833 6.134
+85.75 6.019
+85.8167 5.700
+85.8833 5.586
+85.95 5.776
+86.0167 5.562
+86.0833 5.957
+86.15 6.252
+86.2167 6.547
+86.2833 6.843
+86.35 7.038
+86.4167 7.233
+86.4833 7.328
+86.55 6.814
+86.6167 6.299
+86.6833 6.295
+86.75 6.190
+86.8167 6.085
+86.8833 5.980
+86.95 6.080
+87.0167 6.180
+87.0833 5.875
+87.15 5.875
+87.2167 6.080
+87.2833 5.980
+87.35 6.085
+87.4167 5.885
+87.4833 5.990
+87.55 5.690
+87.6167 6.204
+87.6833 6.414
+87.75 6.623
+87.8167 6.733
+87.8833 6.843
+87.95 6.852
+88.0167 6.557
+88.0833 6.467
+88.15 6.071
+88.2167 5.676
+88.2833 5.181
+88.35 5.295
+88.4167 5.310
+88.4833 5.324
+88.55 5.643
+88.6167 5.558
+88.6833 5.777
+88.75 6.301
+88.8167 6.115
+88.8833 5.930
+88.95 5.949
+89.0167 5.968
+89.0833 5.987
+89.15 6.311
+89.2167 6.231
+89.2833 6.150
+89.35 6.069
+89.4167 5.379
+89.4833 4.893
+89.55 3.188
+89.6167 3.617
+89.6833 3.131
+89.8167 2.570
+89.8833 2.694
+89.95 3.023
+90.0167 2.742
+90.0833 3.375
+90.15 3.299
+90.2167 3.628
+90.2833 3.957
+90.35 3.981
+90.4167 3.905
+90.4833 3.624
+90.55 3.648
+90.6167 3.267
+90.6833 3.291
+93.75 1.616
+93.8833 1.411
+93.95 2.120
+94.0167 2.930
+94.0833 2.825
+94.15 2.820
+94.2167 2.816
+94.2833 2.811
+94.35 2.906
+94.4167 2.796
+94.4833 2.892
+94.55 2.272
+94.6167 2.468
+94.6833 2.458
+94.75 3.158
+94.8833 3.948
+94.95 4.444
+95.0167 4.839
+95.0833 5.129
+95.15 5.420
+95.2167 5.405
+95.2833 4.881
+95.35 4.562
+95.4167 4.648
+95.4833 5.138
+95.55 4.919
+95.6167 5.409
+95.8167 7.385
+95.8833 7.571
+95.95 7.956
+96.0833 7.004
+96.15 7.084
+96.35 6.922
+96.4167 7.003
+96.4833 7.084
+96.55 6.860
+96.6167 7.245
+96.6833 7.326
+96.75 7.102
+96.8167 6.878
+96.8833 6.754
+96.95 6.835
+97.0167 6.915
+97.0833 6.896
+97.15 6.977
+97.2167 7.363
+97.2833 7.648
+97.35 8.034
+97.4167 8.015
+97.4833 7.995
+97.55 7.671
+97.6167 7.043
+97.6833 6.719
+97.75 6.295
+97.8167 5.566
+97.8833 5.142
+97.95 4.923
+98.0167 4.803
+98.0833 5.194
+98.15 5.279
+98.2167 5.570
+98.2833 6.165
+98.35 6.455
+98.4167 6.746
+98.4833 6.936
+98.55 7.127
+98.6167 7.317
+98.6833 7.103
+98.75 6.888
+98.8167 6.879
+98.8833 6.564
+98.95 6.859
+99.0167 6.445
+99.0833 6.640
+99.15 6.835
+99.2167 6.626
+99.2833 6.721
+99.35 6.716
+99.4167 7.321
+99.4833 7.216
+99.55 7.821
+99.6167 7.921
+99.6833 7.816
+99.75 7.816
+99.8167 7.611
+99.8833 7.002
+99.95 6.697
+100.017 6.292
+100.083 5.887
+100.15 5.383
+100.217 5.183
+100.283 4.883
+100.35 5.292
+100.417 5.502
+100.483 6.116
+100.55 6.631
+100.617 6.740
+100.683 6.545
+100.75 6.350
+100.817 5.850
+100.883 5.250
+100.95 4.245
+101.017 3.950
+101.083 3.555
+101.15 3.769
+101.217 3.883
+101.283 4.303
+101.35 4.417
+101.417 4.836
+101.483 4.851
+101.55 4.865
+101.617 4.575
+101.683 4.284
+101.75 3.894
+101.817 3.808
+101.883 3.418
+101.95 3.332
+102.017 3.551
+102.083 3.771
+102.15 3.890
+102.217 3.704
+102.283 3.923
+102.35 3.738
+102.417 3.857
+102.483 3.976
+102.55 3.791
+102.617 3.605
+102.683 3.419
+102.75 3.234
+102.817 3.453
+102.883 3.572
+102.95 3.691
+103.017 3.811
+103.083 4.030
+103.15 4.149
+103.217 4.063
+103.283 4.283
+103.35 3.892
+103.417 3.197
+103.483 2.502
+103.55 2.211
+103.617 1.921
+103.683 1.935
+103.75 1.645
+103.817 1.760
+103.883 1.774
+103.95 2.498
+104.017 2.712
+104.083 2.217
+104.15 2.127
+104.217 1.732
+104.283 1.436
+104.35 1.041
+104.417 1.051
+104.483 0.856
+104.55 1.270
+104.617 1.380
+104.683 1.489
+104.75 1.394
+104.817 1.604
+104.883 1.304
+104.95 1.308
+105.017 1.008
+105.083 0.708
+105.15 0.813
+105.217 1.018
+105.283 1.223
+105.35 1.428
+105.417 1.632
+105.483 1.937
+105.55 2.342
+105.617 2.037
+105.683 2.137
+105.75 2.337
+105.817 1.928
+105.883 1.213
+105.95 1.208
+106.017 1.508
+106.083 1.504
+106.15 1.904
+106.217 2.404
+106.283 2.804
+106.35 2.999
+106.417 3.599
+106.483 3.489
+106.55 3.480
+106.617 3.570
+106.683 3.356
+106.75 3.446
+106.817 3.536
+106.883 4.032
+106.95 4.222
+107.017 4.208
+107.083 4.803
+107.15 4.788
+107.217 5.079
+107.283 5.469
+107.35 5.250
+107.417 5.031
+107.483 5.216
+107.55 5.402
+107.617 5.283
+107.683 5.163
+107.75 5.044
+107.817 5.025
+107.883 4.906
+107.95 5.496
+108.017 5.477
+108.083 6.167
+108.15 6.453
+108.217 6.739
+108.283 6.819
+108.35 6.800
+108.417 6.881
+108.483 6.352
+108.55 6.638
+108.617 6.414
+108.683 6.395
+108.75 6.171
+108.817 5.947
+108.883 5.623
+108.95 5.399
+109.017 5.075
+109.083 4.751
+109.15 4.731
+109.217 4.407
+109.283 4.693
+109.35 4.674
+109.417 4.859
+109.483 4.840
+109.55 4.721
+109.617 4.602
+109.683 3.773
+109.75 3.654
+109.817 3.435
+109.883 3.215
+109.95 3.201
+110.017 3.187
+110.083 3.477
+110.15 3.767
+110.217 4.263
+110.283 4.453
+110.35 5.253
+110.417 5.039
+110.483 4.824
+110.55 4.305
+110.617 3.686
+110.683 2.762
+110.75 2.043
+110.817 1.323
+110.883 1.114
+110.95 1.004
+111.017 0.999
+111.083 1.704
+111.15 2.004
+111.217 2.204
+111.283 2.709
+111.35 3.214
+111.417 3.314
+111.483 3.414
+111.55 3.109
+111.617 2.804
+111.683 2.704
+111.75 2.299
+111.817 1.895
+111.883 1.999
+111.95 2.409
+112.017 2.414
+112.083 2.723
+112.15 3.238
+112.217 3.752
+112.283 3.962
+112.35 4.071
+112.417 4.181
+112.483 3.886
+112.55 3.895
+112.617 3.600
+112.683 3.205
+112.817 2.619
+112.883 2.124
+112.95 1.629
+113.017 1.643
+113.083 1.658
+113.15 1.672
+113.217 1.891
+113.283 2.111
+113.35 2.025
+113.417 2.144
+113.483 2.668
+113.55 2.687
+113.617 2.502
+113.683 2.216
+113.75 2.235
+113.817 2.559
+113.883 1.664
+113.95 2.193
+114.017 2.112
+114.083 1.727
+114.15 1.341
+114.217 1.260
+114.283 0.470
+114.35 0.389
+114.417 0.513
+114.483 0.332
+114.55 -0.153
+114.617 0.885
+114.683 1.009
+114.75 1.133
+114.817 -0.572
+114.883 1.076
+114.95 1.505
+115.017 0.410
+115.083 0.739
+115.15 1.472
+115.217 0.682
+115.283 0.806
+115.35 0.725
+115.417 0.849
+115.483 0.973
+115.55 0.892
+115.617 0.811
+115.683 0.326
+118.75 1.048
+118.817 1.753
+118.883 2.153
+118.95 2.553
+119.017 3.058
+119.083 3.858
+119.15 4.053
+119.217 4.348
+119.283 4.948
+119.35 5.039
+119.417 5.739
+119.483 6.134
+119.55 6.934
+119.617 7.734
+119.683 8.229
+119.75 4.252
+119.817 4.238
+119.883 4.224
+119.95 4.309
+120.017 4.090
+120.083 4.176
+120.15 3.956
+120.217 3.837
+120.283 4.023
+120.35 4.208
+120.417 4.394
+120.483 4.275
+120.55 4.560
+120.617 4.746
+120.683 5.032
+120.75 4.708
+120.817 4.079
+120.883 4.364
+120.95 4.040
+121.017 3.816
+121.083 3.797
+121.15 4.083
+121.217 4.163
+121.283 4.144
+121.35 4.530
+121.417 4.815
+121.483 4.491
+121.55 4.777
+121.617 4.758
+121.683 5.143
+121.75 5.024
+121.817 4.395
+121.883 4.071
+121.95 3.443
+122.017 3.019
+122.083 2.899
+122.15 2.780
+122.217 2.356
+122.283 2.542
+122.35 2.627
+122.417 3.018
+122.483 3.103
+122.55 3.494
+122.617 3.579
+122.683 3.565
+122.75 3.551
+122.817 3.131
+122.883 2.812
+122.95 2.088
+123.017 1.364
+123.083 0.845
+123.15 0.631
+123.217 1.026
+123.283 1.321
+123.35 1.616
+123.417 2.216
+123.483 2.411
+123.55 2.911
+123.617 3.411
+123.683 3.507
+123.75 3.297
+123.817 3.087
+123.883 2.473
+123.95 2.163
+124.017 1.754
+124.083 1.649
+124.15 1.544
+124.217 1.339
+124.283 1.439
+124.35 1.744
+124.417 2.049
+124.483 2.963
+124.55 3.473
+124.617 3.678
+124.683 4.087
+124.75 3.887
+124.817 3.992
+124.883 3.387
+124.95 3.392
+125.017 3.092
+125.083 2.692
+125.15 1.987
+125.217 1.487
+125.283 1.597
+125.35 1.402
+125.417 1.411
+125.483 1.826
+125.55 2.040
+125.617 2.355
+125.683 2.569
+125.75 2.479
+125.817 2.388
+125.883 2.503
+125.95 2.007
+126.017 1.817
+126.083 1.931
+126.15 1.946
+126.217 2.265
+126.283 2.889
+126.35 3.513
+126.417 4.137
+126.483 4.356
+126.55 4.675
+126.617 4.285
+126.683 3.895
+126.75 3.809
+126.817 3.419
+126.883 2.723
+126.95 2.638
+127.017 2.552
+127.083 2.771
+127.15 2.586
+127.217 2.805
+127.283 2.719
+127.35 2.634
+127.417 2.853
+127.483 2.767
+127.55 2.987
+127.617 2.901
+127.683 2.206
+127.75 2.120
+127.817 2.439
+127.883 2.454
+127.95 2.368
+128.017 2.383
+128.083 2.497
+128.15 2.207
+128.217 2.016
+128.283 1.421
+128.35 1.535
+128.417 0.835
+128.483 0.950
+128.55 1.164
+128.617 1.379
+128.683 1.288
+128.75 1.298
+128.817 1.308
+128.883 1.317
+128.95 0.717
+129.017 0.522
+129.083 0.327
+129.15 0.232
+129.217 -0.268
+129.283 -0.364
+129.35 -0.359
+129.417 -0.454
+129.483 -0.349
+129.55 -0.040
+129.617 -0.240
+129.683 -0.440
+129.75 -0.335
+129.817 -0.130
+129.883 -0.230
+129.95 -0.025
+130.017 -0.025
+130.083 -0.025
+130.15 -0.230
+130.217 -0.435
+130.283 -0.335
+130.35 -0.135
+130.417 -0.240
+130.483 -0.344
+130.55 0.260
+130.617 0.560
+130.683 1.165
+130.75 1.260
+130.817 1.356
+130.883 1.756
+130.95 1.951
+131.017 1.841
+131.083 1.732
+131.15 2.027
+131.217 2.017
+131.283 2.008
+131.35 2.098
+131.417 2.493
+131.483 2.279
+131.55 2.469
+131.617 2.560
+131.683 2.545
+131.75 2.735
+131.817 3.026
+131.883 3.216
+131.95 3.607
+132.017 3.592
+132.083 3.578
+132.15 3.663
+132.217 3.749
+132.283 3.530
+132.35 3.411
+132.417 3.191
+132.483 3.072
+132.55 3.258
+132.617 3.648
+132.683 4.139
+132.75 4.424
+132.817 4.610
+132.883 4.491
+132.95 4.067
+133.017 4.047
+133.083 3.928
+133.15 3.504
+133.217 3.485
+133.283 3.366
+133.35 3.247
+133.417 3.127
+133.483 3.413
+133.55 3.294
+133.617 3.479
+133.683 3.870
+133.75 3.751
+133.817 3.936
+133.883 4.022
+133.95 3.598
+134.017 3.379
+134.083 3.159
+134.15 2.840
+134.217 2.621
+134.283 1.997
+134.35 1.983
+134.417 2.273
+134.483 2.463
+134.55 2.754
+134.617 2.844
+134.683 3.339
+134.75 3.125
+134.817 3.315
+134.883 3.306
+134.95 3.396
+135.017 3.082
+135.083 2.667
+135.15 2.353
+135.217 2.243
+135.283 1.829
+135.35 1.619
+135.417 1.410
+135.483 1.100
+135.55 0.891
+135.617 0.786
+135.683 0.781
+135.75 0.981
+135.817 1.386
+135.883 1.586
+135.95 1.686
+136.017 1.686
+136.083 1.381
+136.15 1.076
+136.217 0.671
+136.283 0.267
+136.35 0.067
+136.417 -0.033
+136.483 -0.029
+136.55 0.076
+136.617 0.081
+136.683 -0.014
+136.75 0.195
+136.817 0.100
+136.883 0.310
+136.95 0.419
+137.017 -0.081
+137.083 -0.071
+137.15 -0.061
+137.217 0.253
+137.283 0.163
+137.35 0.172
+137.417 -0.323
+137.483 -0.413
+137.55 -0.604
+137.617 -0.489
+137.683 -0.475
+137.75 -0.361
+137.817 -0.041
+137.883 0.178
+137.95 0.802
+138.017 1.326
+138.15 1.459
+138.217 1.579
+138.283 1.493
+138.35 1.307
+138.417 1.122
+138.483 0.531
+138.55 0.346
+138.617 0.060
+138.683 0.179
+138.817 0.218
+138.883 0.542
+138.95 1.071
+139.017 1.395
+139.083 1.719
+139.15 1.943
+139.217 1.962
+139.283 1.576
+139.35 1.900
+139.417 1.819
+139.483 1.534
+139.55 1.453
+139.617 1.167
+139.683 0.782
diff --git a/doc/examples/tsunami/h.gfv b/doc/examples/tsunami/h.gfv
new file mode 100644
index 0000000..feec18a
--- /dev/null
+++ b/doc/examples/tsunami/h.gfv
@@ -0,0 +1,36 @@
+# GfsView 2D
+View {
+  tx = 0.00158982 ty = 0.0784271
+  sx = 1 sy = 1 sz = 1
+  q0 = 0 q1 = 0 q2 = 0 q3 = 1
+  fov = 19.6736
+  r = 1 g = 1 b = 1
+  res = 1
+  lc = 0.001
+  reactivity = 0.1
+}
+Squares {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+  font_size = 1
+  raster_font = 1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} P > 0.01 ? H : NODATA {
+  amin = 0 min = -2
+  amax = 0 max = 2
+  cmap = Jet
+}
+Label {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = 6
+  font_size = 2.3
+  raster_font = 1
+} {
+  x = 72.678 y = 23.2591 z = 0
+  label = "t = %5.0f s"
+  symbol = 0
+}
diff --git a/doc/examples/tsunami/hanires.txt b/doc/examples/tsunami/hanires.txt
new file mode 100644
index 0000000..191fbe3
--- /dev/null
+++ b/doc/examples/tsunami/hanires.txt
@@ -0,0 +1,4856 @@
+-24.9833 1.470
+-24.95 0.865
+-24.9167 0.761
+-24.8833 -0.563
+-24.85 -0.768
+-24.8167 -0.568
+-24.7833 -0.773
+-24.75 -0.268
+-24.7167 -0.168
+-24.6833 -0.273
+-24.65 -0.173
+-24.6167 -0.378
+-24.5833 -0.483
+-24.55 0.532
+-24.5167 0.327
+-24.4833 1.037
+-24.45 0.222
+-24.4167 0.017
+-24.3833 0.117
+-24.35 -0.392
+-24.3167 0.013
+-24.2833 0.722
+-24.25 -0.497
+-24.2167 0.517
+-24.1833 0.617
+-24.15 -1.211
+-24.1167 -0.197
+-24.0833 -0.197
+-24.05 0.208
+-24.0167 0.817
+-23.9833 0.817
+-23.95 0.917
+-23.9167 0.917
+-23.8833 0.308
+-23.85 1.222
+-23.8167 1.017
+-23.7833 1.017
+-23.75 1.322
+-23.7167 1.932
+-23.6833 1.017
+-23.65 0.613
+-23.6167 0.308
+-23.5833 0.003
+-23.55 -0.302
+-23.5167 -0.302
+-23.4833 -0.402
+-23.45 -0.402
+-23.4167 -0.197
+-23.3833 0.413
+-23.35 1.327
+-23.3167 1.837
+-23.2833 1.432
+-23.25 -0.092
+-23.2167 -1.107
+-23.1833 -0.497
+-23.15 -0.902
+-23.1167 -0.087
+-23.0833 1.032
+-23.05 -0.187
+-23.0167 0.322
+-22.9833 -0.083
+-22.95 -0.183
+-22.9167 0.632
+-22.8833 0.532
+-22.85 1.041
+-22.8167 0.027
+-22.7833 -0.073
+-22.75 0.437
+-22.7167 0.641
+-22.6833 -0.373
+-22.65 0.137
+-22.6167 0.646
+-22.5833 0.751
+-22.55 0.041
+-22.5167 -0.059
+-22.4833 0.756
+-22.45 0.656
+-22.4167 0.456
+-22.3833 0.661
+-22.35 1.170
+-22.3167 0.765
+-22.2833 0.565
+-22.25 0.161
+-22.2167 -0.549
+-22.1833 -0.444
+-22.15 0.675
+-22.1167 2.709
+-22.0833 2.204
+-22.05 2.104
+-22.0167 2.209
+-21.9833 2.413
+-21.95 1.704
+-21.9167 2.113
+-21.8833 2.318
+-21.85 2.828
+-21.8167 2.323
+-21.7833 1.309
+-21.75 1.718
+-21.7167 2.837
+-21.6833 3.042
+-21.65 2.537
+-21.6167 2.742
+-21.5833 2.237
+-21.55 2.137
+-21.5167 1.733
+-21.4833 1.837
+-21.45 2.652
+-21.4167 3.161
+-21.3833 2.657
+-21.35 3.166
+-21.3167 3.371
+-21.2833 3.576
+-21.25 4.290
+-21.2167 4.190
+-21.1833 3.176
+-21.15 2.466
+-21.1167 2.266
+-21.0833 2.471
+-21.05 2.676
+-21.0167 2.576
+-20.9833 3.390
+-20.95 2.985
+-20.9167 2.885
+-20.8833 3.090
+-20.85 2.890
+-20.8167 2.181
+-20.7833 2.385
+-20.75 1.676
+-20.7167 1.676
+-20.6833 0.966
+-20.65 1.781
+-20.6167 3.509
+-20.5833 2.495
+-20.55 3.005
+-20.5167 3.005
+-20.4833 2.905
+-20.45 2.500
+-20.4167 1.790
+-20.3833 2.400
+-20.35 1.385
+-20.3167 1.385
+-20.2833 1.590
+-20.25 1.895
+-20.2167 2.709
+-20.1833 3.624
+-20.15 3.219
+-20.1167 3.219
+-20.0833 2.914
+-20.05 2.205
+-20.0167 1.900
+-19.9833 1.290
+-19.95 1.595
+-19.9167 1.900
+-19.8833 1.900
+-19.85 2.205
+-19.8167 1.595
+-19.7833 1.900
+-19.75 2.814
+-19.7167 3.729
+-19.6833 2.609
+-19.65 2.609
+-19.6167 2.305
+-19.5833 1.795
+-19.55 1.795
+-19.5167 2.200
+-19.4833 1.895
+-19.45 1.690
+-19.4167 1.081
+-19.3833 2.400
+-19.35 2.500
+-19.3167 1.990
+-19.2833 3.005
+-19.25 2.090
+-19.2167 1.276
+-19.1833 0.766
+-19.15 0.357
+-19.1167 1.066
+-19.0833 2.081
+-19.05 2.790
+-19.0167 2.076
+-18.9833 1.871
+-18.95 1.361
+-18.9167 2.171
+-18.8833 1.966
+-18.85 2.166
+-18.8167 2.366
+-18.7833 1.857
+-18.75 1.752
+-18.7167 1.342
+-18.6833 1.847
+-18.65 2.961
+-18.6167 3.161
+-18.5833 2.142
+-18.55 2.037
+-18.5167 1.628
+-18.4833 0.913
+-18.45 0.604
+-18.4167 0.804
+-18.3833 2.223
+-18.35 1.913
+-18.3167 2.113
+-18.2833 1.804
+-18.25 1.494
+-18.2167 1.085
+-18.1833 1.994
+-18.15 2.294
+-18.1167 2.594
+-18.0833 1.675
+-18.05 1.875
+-18.0167 2.175
+-17.9833 1.356
+-17.95 1.351
+-17.9167 2.261
+-17.8833 2.865
+-17.85 2.251
+-17.8167 2.041
+-17.7833 2.037
+-17.75 1.727
+-17.7167 2.127
+-17.6833 1.513
+-17.65 1.913
+-17.6167 1.908
+-17.5833 1.698
+-17.55 1.793
+-17.5167 1.789
+-17.4833 1.884
+-17.45 1.979
+-17.4167 2.684
+-17.3833 2.474
+-17.35 1.960
+-17.3167 2.055
+-17.2833 2.150
+-17.25 1.941
+-17.2167 2.341
+-17.1833 2.131
+-17.15 2.226
+-17.1167 2.626
+-17.0833 2.112
+-17.05 1.697
+-17.0167 2.707
+-16.9833 2.497
+-16.95 2.388
+-16.9167 2.178
+-16.8833 1.054
+-16.85 1.249
+-16.8167 0.735
+-16.7833 0.930
+-16.75 1.330
+-16.7167 1.221
+-16.6833 1.416
+-16.65 1.511
+-16.6167 1.401
+-16.5833 1.497
+-16.55 1.082
+-16.5167 1.277
+-16.4833 1.372
+-16.45 1.263
+-16.4167 1.763
+-16.3833 1.653
+-16.35 1.748
+-16.3167 1.639
+-16.2833 0.920
+-16.25 0.505
+-16.2167 1.005
+-16.1833 1.405
+-16.15 2.210
+-16.1167 2.100
+-16.0833 1.991
+-16.05 1.881
+-16.0167 1.772
+-15.9833 1.562
+-15.95 1.452
+-15.9167 2.257
+-15.8833 1.233
+-15.85 2.038
+-15.8167 1.319
+-15.7833 1.414
+-15.75 1.304
+-15.7167 1.195
+-15.6833 1.695
+-15.65 2.500
+-15.6167 1.680
+-15.5833 2.180
+-15.55 2.680
+-15.5167 1.352
+-15.4833 1.547
+-15.45 1.947
+-15.4167 2.142
+-15.3833 1.728
+-15.35 1.518
+-15.3167 1.104
+-15.2833 1.504
+-15.25 1.699
+-15.2167 1.894
+-15.1833 1.684
+-15.15 2.489
+-15.1167 2.280
+-15.0833 2.475
+-15.05 2.875
+-15.0167 2.360
+-14.9833 2.556
+-14.95 2.346
+-14.9167 1.832
+-14.8833 1.927
+-14.85 2.427
+-14.8167 1.912
+-14.7833 1.398
+-14.75 1.188
+-14.7167 1.284
+-14.6833 1.379
+-14.65 1.169
+-14.6167 1.264
+-14.5833 1.260
+-14.55 1.964
+-14.5167 0.840
+-14.4833 0.531
+-14.45 0.321
+-14.4167 0.112
+-14.3833 0.716
+-14.35 1.931
+-14.3167 0.807
+-14.2833 0.802
+-14.25 1.102
+-14.2167 0.488
+-14.1833 0.788
+-14.15 1.188
+-14.1167 1.388
+-14.0833 1.078
+-14.05 1.378
+-14.0167 1.678
+-13.9833 1.673
+-13.95 1.568
+-13.9167 0.954
+-13.8833 -0.065
+-13.85 0.844
+-13.8167 2.264
+-13.7833 2.464
+-13.75 2.054
+-13.7167 2.354
+-13.6833 2.249
+-13.65 1.435
+-13.6167 0.416
+-13.5833 0.006
+-13.55 0.816
+-13.5167 1.220
+-13.4833 1.116
+-13.45 0.911
+-13.4167 1.416
+-13.3833 1.211
+-13.35 0.701
+-13.3167 0.192
+-13.2833 0.292
+-13.25 -0.218
+-13.2167 0.187
+-13.1833 0.896
+-13.15 0.996
+-13.1167 1.911
+-13.0833 1.401
+-13.05 2.011
+-13.0167 2.111
+-12.9833 1.806
+-12.95 1.806
+-12.9167 2.111
+-12.8833 1.806
+-12.85 1.806
+-12.8167 1.196
+-12.7833 1.401
+-12.75 0.792
+-12.7167 1.301
+-12.6833 1.606
+-12.65 2.116
+-12.6167 2.320
+-12.5833 2.016
+-12.55 2.220
+-12.5167 1.816
+-12.4833 2.225
+-12.45 2.125
+-12.4167 1.720
+-12.3833 2.230
+-12.35 2.335
+-12.3167 2.440
+-12.2833 2.340
+-12.25 2.140
+-12.2167 2.549
+-12.1833 2.044
+-12.15 3.368
+-12.1167 3.473
+-12.0833 3.273
+-12.05 3.278
+-12.0167 2.773
+-11.9833 2.878
+-11.95 3.188
+-11.9167 3.497
+-11.8833 4.212
+-11.85 4.216
+-11.8167 4.831
+-11.7833 4.531
+-11.75 4.231
+-11.7167 3.831
+-11.6833 3.531
+-11.65 3.231
+-11.6167 3.440
+-11.5833 3.750
+-11.55 3.350
+-11.5167 3.560
+-11.4833 3.869
+-11.45 3.774
+-11.4167 3.374
+-11.3833 3.584
+-11.35 3.488
+-11.3167 3.393
+-11.2833 3.808
+-11.25 4.017
+-11.2167 4.532
+-11.1833 4.641
+-11.15 4.241
+-11.1167 3.436
+-11.0833 3.241
+-11.05 3.351
+-11.0167 3.865
+-10.9833 4.584
+-10.95 4.389
+-10.9167 4.194
+-10.8833 3.694
+-10.85 2.789
+-10.8167 2.594
+-10.7833 3.008
+-10.75 3.423
+-10.7167 3.737
+-10.6833 4.152
+-10.65 3.552
+-10.6167 3.052
+-10.5833 3.366
+-10.55 3.376
+-10.5167 3.485
+-10.4833 4.714
+-10.45 5.028
+-10.4167 4.733
+-10.3833 4.743
+-10.35 4.448
+-10.3167 3.848
+-10.2833 3.552
+-10.25 3.562
+-10.2167 3.876
+-10.1833 3.886
+-10.15 3.796
+-10.1167 2.891
+-10.0833 3.205
+-10.05 3.824
+-10.0167 2.515
+-9.98333 3.744
+-9.95 4.568
+-9.91666 4.272
+-9.88333 4.487
+-9.84999 3.582
+-9.81668 3.187
+-9.78334 3.197
+-9.75001 3.716
+-9.71667 3.421
+-9.68333 3.635
+-9.65 3.240
+-9.61666 4.164
+-9.58333 4.378
+-9.54999 3.373
+-9.51668 3.993
+-9.48334 4.207
+-9.45001 3.507
+-9.41667 3.417
+-9.38333 2.817
+-9.35 2.726
+-9.31666 2.941
+-9.28333 2.850
+-9.24999 3.774
+-9.21668 3.989
+-9.18334 3.593
+-9.15001 3.503
+-9.11667 3.413
+-9.08333 2.813
+-9.05 3.027
+-9.01666 2.632
+-8.98333 2.641
+-8.94999 2.856
+-8.91668 3.070
+-8.88334 3.285
+-8.85001 3.194
+-8.81667 2.899
+-8.78333 2.504
+-8.75 1.804
+-8.71666 1.713
+-8.68333 2.333
+-8.64999 2.852
+-8.61668 2.761
+-8.58334 3.381
+-8.55001 3.290
+-8.51667 3.300
+-8.48333 3.514
+-8.45 3.219
+-8.41666 3.129
+-8.38333 2.833
+-8.34999 3.048
+-8.31668 3.362
+-8.28334 2.967
+-8.25001 3.281
+-8.21667 2.886
+-8.18333 2.896
+-8.15 2.905
+-8.11666 3.220
+-8.08333 3.129
+-8.04999 2.225
+-8.01668 2.539
+-7.98334 2.853
+-7.95001 2.558
+-7.91667 2.568
+-7.88333 3.187
+-7.85 1.977
+-7.81666 2.597
+-7.78333 1.997
+-7.74999 2.006
+-7.71668 2.116
+-7.68334 2.430
+-7.65001 1.830
+-7.61667 2.245
+-7.58333 1.645
+-7.55 1.754
+-7.51666 2.678
+-7.48333 2.788
+-7.44999 1.678
+-7.41668 2.602
+-7.38334 2.712
+-7.35001 2.821
+-7.31667 2.321
+-7.28333 1.821
+-7.25 2.236
+-7.21666 1.126
+-7.18333 0.321
+-7.14999 1.445
+-7.11668 1.555
+-7.08334 2.274
+-7.05001 2.789
+-7.01667 2.289
+-6.98333 1.584
+-6.95 0.269
+-6.91666 0.684
+-6.88333 0.893
+-6.84999 1.103
+-6.81668 1.313
+-6.78334 1.522
+-6.75001 1.122
+-6.71667 1.127
+-6.68333 0.727
+-6.65 1.241
+-6.61666 1.856
+-6.58333 0.237
+-6.54999 0.546
+-6.51668 0.551
+-6.48334 1.470
+-6.45001 1.680
+-6.41667 1.989
+-6.38333 1.485
+-6.35 0.575
+-6.31666 -0.030
+-6.28333 -0.330
+-6.24999 -0.225
+-6.21668 0.085
+-6.11667 0.604
+-6.01666 0.918
+-5.88334 1.133
+-5.81667 0.223
+-5.78333 0.428
+-5.75 0.328
+-5.71666 -0.382
+-5.61668 0.537
+-5.58334 -0.477
+-5.55001 0.642
+-5.51667 0.642
+-5.48333 1.457
+-5.45 0.847
+-5.41666 0.542
+-5.38333 -0.167
+-5.34999 0.137
+-5.31668 0.747
+-5.28334 0.137
+-5.25001 1.052
+-5.21667 1.762
+-5.18333 1.152
+-5.15 1.152
+-5.11666 0.947
+-5.08333 0.642
+-5.04999 0.742
+-5.01668 -0.072
+-4.98334 0.028
+-4.95001 1.347
+-4.91667 1.142
+-4.88333 1.852
+-4.85 2.257
+-4.81666 1.442
+-4.78333 1.542
+-4.74999 1.742
+-4.71668 0.623
+-4.68334 1.128
+-4.65001 1.633
+-4.61667 1.123
+-4.58333 1.628
+-4.55 0.304
+-4.51666 0.504
+-4.48333 0.094
+-4.44999 0.599
+-4.41668 0.189
+-4.38334 -0.220
+-4.35001 0.994
+-4.31667 0.889
+-4.28333 1.189
+-4.25 0.170
+-4.21666 1.385
+-4.18333 0.975
+-4.14999 0.970
+-4.11668 1.880
+-4.08334 0.961
+-4.05001 1.465
+-4.01667 1.461
+-3.98333 0.541
+-3.95 0.637
+-3.91666 1.241
+-3.88333 0.932
+-3.84999 1.537
+-3.81668 0.313
+-3.78334 0.103
+-3.75001 0.403
+-3.71667 -0.211
+-3.68333 0.798
+-3.65 1.098
+-3.61666 0.889
+-3.58333 0.679
+-3.54999 1.284
+-3.51668 0.769
+-3.48334 0.255
+-3.45001 1.265
+-3.41667 1.260
+-3.38333 0.441
+-3.35 1.145
+-3.31666 1.545
+-3.28333 0.726
+-3.24999 0.821
+-3.21668 0.002
+-3.18334 0.097
+-3.15001 0.193
+-3.11667 0.593
+-3.08333 0.383
+-3.05 1.697
+-3.01666 1.793
+-2.98333 1.683
+-2.94999 1.473
+-2.91668 0.349
+-2.88334 0.445
+-2.85001 0.235
+-2.81667 0.430
+-2.78333 1.745
+-2.75 1.840
+-2.71666 1.021
+-2.68333 1.421
+-2.64999 1.311
+-2.61668 0.797
+-2.58334 1.501
+-2.55001 0.782
+-2.51667 1.487
+-2.48333 1.887
+-2.45 1.677
+-2.41666 1.163
+-2.38333 2.273
+-2.34999 1.453
+-2.31668 1.853
+-2.28334 1.339
+-2.25001 0.620
+-2.21667 0.105
+-2.18333 0.201
+-2.15 0.601
+-2.11666 0.391
+-2.08333 0.486
+-2.04999 1.191
+-2.01668 0.677
+-1.98334 1.381
+-1.95001 1.477
+-1.91667 1.877
+-1.88333 1.667
+-1.85 1.457
+-1.81666 0.638
+-1.78333 1.343
+-1.74999 1.438
+-1.71668 1.838
+-1.68334 1.629
+-1.65001 1.929
+-1.61667 1.719
+-1.58333 2.424
+-1.55 1.505
+-1.51666 2.209
+-1.48333 2.000
+-1.44999 1.690
+-1.41668 2.700
+-1.38334 1.476
+-1.35001 1.876
+-1.31667 1.871
+-1.28333 1.561
+-1.25 1.657
+-1.21666 1.957
+-1.18333 2.561
+-1.14999 2.861
+-1.11668 1.942
+-1.08334 2.037
+-1.05001 2.947
+-1.01667 2.333
+-0.983333 3.042
+-0.949997 2.833
+-0.916661 2.218
+-0.883325 2.213
+-0.849989 2.209
+-0.816677 2.204
+-0.783341 2.404
+-0.750005 1.789
+-0.716669 2.699
+-0.683333 2.594
+-0.649997 2.285
+-0.616661 2.180
+-0.583325 2.075
+-0.549989 2.375
+-0.516677 2.880
+-0.483341 2.775
+-0.450005 2.670
+-0.416669 2.261
+-0.383333 3.170
+-0.349997 3.370
+-0.316661 4.080
+-0.283325 3.670
+-0.249989 4.175
+-0.216677 4.070
+-0.183341 3.356
+-0.150005 3.456
+-0.116669 3.961
+-0.0833333 3.246
+-0.0499973 3.956
+-0.0166613 3.851
+0.0166747 3.341
+0.0500107 3.746
+0.0833227 3.641
+0.116659 4.351
+0.149995 4.451
+0.183331 4.246
+0.216667 4.041
+0.250003 4.446
+0.283339 4.241
+0.316675 4.037
+0.350011 5.051
+0.383323 5.761
+0.416659 5.556
+0.449995 4.032
+0.483331 3.827
+0.516667 3.927
+0.550003 4.841
+0.583339 4.027
+0.616675 4.332
+0.650011 3.722
+0.683323 3.822
+0.716659 5.651
+0.749995 3.517
+0.783331 3.822
+0.816667 3.517
+0.850003 4.432
+0.883339 4.737
+0.916675 4.127
+0.950011 4.432
+0.983323 3.517
+1.01666 5.346
+1.04999 4.127
+1.08333 5.246
+1.11667 5.246
+1.15 5.146
+1.18334 4.841
+1.21667 5.451
+1.25001 4.437
+1.28332 4.337
+1.31666 2.508
+1.34999 3.322
+1.38333 2.917
+1.41667 3.832
+1.45 3.427
+1.48334 2.717
+1.51667 3.532
+1.55001 4.651
+1.58332 3.941
+1.61666 2.927
+1.64999 2.217
+1.68333 3.641
+1.71667 3.846
+1.75 2.832
+1.78334 4.256
+1.81667 2.937
+1.85001 2.432
+1.88332 3.551
+1.91666 3.756
+1.94999 4.470
+1.98333 5.285
+2.01667 4.270
+2.05 2.851
+2.08334 3.056
+2.11667 2.956
+2.15001 3.670
+2.18332 3.265
+2.21666 4.285
+2.24999 3.270
+2.28333 2.765
+2.31667 2.361
+2.35 1.856
+2.38334 3.485
+2.41667 3.994
+2.45001 5.013
+2.48332 4.609
+2.51666 3.494
+2.54999 3.294
+2.58333 3.499
+2.61667 2.689
+2.65 3.504
+2.68334 5.437
+2.71667 4.933
+2.75001 3.613
+2.78332 3.413
+2.81666 3.518
+2.84999 5.247
+2.88333 4.742
+2.91667 5.252
+2.95 5.052
+2.98334 3.633
+3.01667 4.142
+3.05001 3.942
+3.08332 3.742
+3.11666 5.166
+3.14999 5.576
+3.18333 5.171
+3.21667 4.361
+3.25 3.957
+3.28334 4.976
+3.31667 5.081
+3.35001 4.371
+3.38332 4.171
+3.41666 4.681
+3.44999 3.666
+3.48333 3.161
+3.51667 5.805
+3.55 17.797
+3.58334 53.054
+3.61667 116.657
+3.65001 172.236
+3.68332 174.879
+3.71666 123.877
+3.74999 59.669
+3.78333 12.629
+3.81667 -14.903
+3.85 -29.328
+3.88334 -41.925
+3.91667 -40.906
+3.95001 -4.125
+3.98332 -24.647
+4.01666 -69.248
+4.04999 -73.310
+4.08333 -73.105
+4.11667 -73.815
+4.15 -44.349
+4.18334 -58.370
+4.21667 -75.844
+4.25001 -18.946
+4.28332 19.054
+4.31666 67.113
+4.34999 99.727
+4.38333 125.535
+4.41667 81.948
+4.45 61.426
+4.48334 23.226
+4.51667 -7.254
+4.55001 9.715
+4.58332 23.736
+4.61666 -1.258
+4.64999 -20.865
+4.68333 -44.030
+4.71667 -37.934
+4.75 -53.479
+4.78334 -61.404
+4.81667 -40.777
+4.85001 23.231
+4.88332 59.198
+4.91666 84.596
+4.94999 80.024
+4.98333 34.304
+5.01667 -1.358
+5.05 -23.913
+5.08334 -49.721
+5.11667 -46.978
+5.15001 35.013
+5.18332 92.721
+5.21666 96.683
+5.24999 82.458
+5.28333 34.299
+5.31667 23.731
+5.35 -11.831
+5.38334 -28.190
+5.41667 -35.405
+5.45001 -53.693
+5.48332 -67.919
+5.51666 -69.952
+5.54999 -52.074
+5.58333 5.633
+5.61667 68.218
+5.65 97.883
+5.68334 93.106
+5.71667 39.966
+5.75001 -5.959
+5.78332 -28.924
+5.81666 -39.187
+5.84999 -49.655
+5.88333 -41.530
+5.91667 14.044
+5.95 70.632
+5.98334 93.692
+6.01667 99.988
+6.05001 67.879
+6.08332 27.236
+6.11666 -8.226
+6.14999 -26.924
+6.18333 -14.531
+6.21667 1.009
+6.25 15.229
+6.28334 14.210
+6.31667 12.072
+6.35001 20.197
+6.38332 29.641
+6.41666 10.129
+6.44999 -36.001
+6.48333 -51.856
+6.51667 -32.048
+6.55 3.304
+6.58334 15.796
+6.61667 28.897
+6.65001 27.978
+6.68332 2.675
+6.71666 1.451
+6.74999 -15.928
+6.78333 -6.788
+6.81667 31.102
+6.85 61.273
+6.88334 60.658
+6.91667 40.027
+6.95001 -8.746
+6.98332 -23.281
+7.01666 -8.246
+7.04999 1.498
+7.08333 14.090
+7.11667 12.661
+7.15 -4.412
+7.18334 -35.102
+7.21667 -38.360
+7.25001 -26.682
+7.28332 -7.384
+7.31666 0.636
+7.34999 26.944
+7.38333 49.085
+7.41667 47.961
+7.45 34.340
+7.48334 18.585
+7.51667 20.205
+7.55001 30.763
+7.58332 42.441
+7.61666 38.064
+7.64999 10.727
+7.68333 -22.606
+7.71667 -32.874
+7.75 -32.374
+7.78334 -37.156
+7.81667 -13.491
+7.85001 17.694
+7.88332 31.301
+7.91666 49.784
+7.94999 53.332
+7.98333 33.005
+8.01667 20.094
+8.05 6.573
+8.08334 -9.081
+8.11667 -21.688
+8.15001 -17.630
+8.18332 -6.767
+8.21666 18.117
+8.24999 28.066
+8.28333 28.871
+8.31667 12.607
+8.35 -12.801
+8.38334 -20.531
+8.41667 -13.020
+8.45001 -9.777
+8.48332 -12.935
+8.51666 0.672
+8.54999 15.497
+8.58333 19.960
+8.61667 23.508
+8.65 27.056
+8.68334 26.337
+8.71667 4.891
+8.75001 -13.202
+8.78332 -9.044
+8.81666 -8.849
+8.84999 -9.873
+8.88333 8.915
+8.91667 13.987
+8.95 -4.411
+8.98334 -3.911
+9.01667 -8.592
+9.05001 19.645
+9.08332 47.272
+9.11666 42.590
+9.14999 37.299
+9.18333 36.885
+9.21667 20.316
+9.25 6.490
+9.28334 4.247
+9.31667 -5.007
+9.35001 -15.275
+9.38332 -10.812
+9.41666 -13.056
+9.44999 9.695
+9.48333 18.629
+9.51667 10.290
+9.55 1.546
+9.58334 -5.269
+9.61667 -0.907
+9.65001 -7.112
+9.68332 -22.867
+9.71666 -26.329
+9.74999 -14.042
+9.78333 10.742
+9.81667 31.969
+9.85 34.807
+9.88334 27.282
+9.91667 10.918
+9.95001 -2.703
+9.98332 -1.998
+10.0167 -2.817
+10.05 -2.112
+10.0833 0.421
+10.1167 -3.446
+10.15 -11.580
+10.1833 3.045
+10.2167 28.134
+10.25 32.092
+10.2833 19.995
+10.3167 19.380
+10.35 14.294
+10.3833 3.621
+10.4167 -11.014
+10.45 -15.896
+10.4833 -7.366
+10.5167 -8.285
+10.55 -22.006
+10.5833 -21.401
+10.6167 2.978
+10.65 9.984
+10.6833 4.392
+10.7167 1.340
+10.75 -6.995
+10.7833 -11.267
+10.8167 -6.800
+10.85 -3.552
+10.8833 6.707
+10.9167 17.880
+10.95 20.213
+10.9833 23.766
+11.0167 31.586
+11.05 28.433
+11.0833 28.533
+11.1167 29.343
+11.15 29.138
+11.1833 26.595
+11.2167 15.112
+11.25 -4.295
+11.2833 -10.596
+11.3167 -15.068
+11.35 -19.844
+11.3833 -28.584
+11.4167 -30.617
+11.45 -22.693
+11.4833 -11.924
+11.5167 -7.048
+11.55 -3.390
+11.5833 8.597
+11.6167 21.704
+11.65 29.324
+11.6833 33.286
+11.7167 29.933
+11.75 18.960
+11.7833 22.213
+11.8167 25.566
+11.85 16.322
+11.8833 1.692
+11.9167 -4.504
+11.95 -5.214
+11.9833 -6.533
+12.0167 -11.205
+12.05 -9.172
+12.0833 -2.261
+12.1167 -8.457
+12.15 -21.764
+12.1833 -25.521
+12.2167 -17.187
+12.25 6.183
+12.2833 17.260
+12.3167 14.927
+12.35 19.299
+12.3833 16.051
+12.4167 10.060
+12.45 12.603
+12.4833 12.912
+12.5167 12.408
+12.55 7.840
+12.5833 -2.113
+12.6167 -5.766
+12.65 -6.980
+12.6833 -8.195
+12.7167 0.649
+12.75 9.493
+12.7833 4.012
+12.8167 0.664
+12.85 -1.770
+12.8833 -2.170
+12.9167 16.428
+12.95 29.744
+12.9833 21.114
+13.0167 20.204
+13.05 14.013
+13.0833 7.212
+13.1167 3.155
+13.15 -7.304
+13.1833 -14.509
+13.2167 -10.337
+13.25 -8.908
+13.2833 -5.751
+13.3167 7.565
+13.35 13.466
+13.3833 20.686
+13.4167 17.138
+13.45 10.847
+13.4833 6.080
+13.5167 2.227
+13.55 -4.369
+13.5833 1.227
+13.6167 1.946
+13.65 1.956
+13.6833 21.268
+13.7167 29.607
+13.75 26.569
+13.7833 20.887
+13.8167 9.314
+13.85 -0.635
+13.8833 -3.673
+13.9167 -15.246
+13.95 -14.932
+13.9833 -11.569
+14.0167 -7.292
+14.05 -6.673
+14.0833 8.272
+14.1167 18.340
+14.15 31.456
+14.1833 34.209
+14.2167 18.369
+14.25 5.172
+14.2833 -9.144
+14.3167 -13.402
+14.35 6.624
+14.3833 24.313
+14.4167 19.041
+14.45 20.574
+14.4833 9.511
+14.5167 4.948
+14.55 6.382
+14.5833 -8.948
+14.6167 -0.709
+14.65 13.831
+14.6833 19.837
+14.7167 20.661
+14.75 12.950
+14.7833 0.768
+14.8167 1.897
+14.85 7.293
+14.8833 3.240
+14.9167 -2.947
+14.95 -4.256
+14.9833 -1.603
+15.0167 -7.085
+15.05 -22.816
+15.0833 -17.724
+15.1167 6.569
+15.15 26.596
+15.1833 20.714
+15.2167 7.213
+15.25 0.417
+15.2833 -7.294
+15.3167 -6.165
+15.35 -12.961
+15.3833 12.247
+15.4167 11.852
+15.45 18.162
+15.4833 26.606
+15.5167 28.040
+15.55 31.302
+15.5833 14.448
+15.6167 -4.235
+15.65 -10.117
+15.6833 -16.303
+15.7167 -14.870
+15.75 -10.693
+15.7833 3.847
+15.8167 15.339
+15.85 24.493
+15.8833 26.231
+15.9167 23.702
+15.95 22.393
+15.9833 10.720
+16.0167 5.448
+16.05 -7.649
+16.0833 -15.969
+16.1167 -18.193
+16.15 -9.649
+16.1833 13.425
+16.2167 23.393
+16.25 26.756
+16.2833 23.617
+16.3167 15.702
+16.35 15.307
+16.3833 8.916
+16.4167 -4.586
+16.45 -22.559
+17.4833 35.122
+17.5167 51.081
+17.55 26.906
+17.5833 5.780
+17.6167 -4.779
+17.65 57.001
+17.6833 -7.712
+17.7167 -29.448
+17.75 0.327
+17.7833 5.413
+17.8167 13.853
+17.85 12.234
+17.8833 13.662
+17.9167 -2.487
+17.95 -6.850
+17.9833 -15.379
+18.0167 9.214
+18.05 10.743
+18.0833 -12.417
+18.1167 5.571
+18.15 4.662
+18.1833 11.067
+18.2167 19.911
+18.25 22.050
+18.2833 6.914
+18.3167 8.748
+18.35 -3.644
+18.3833 -2.115
+18.4167 13.534
+18.45 15.163
+20.4833 10.524
+20.5167 15.701
+20.55 9.600
+20.5833 -4.731
+20.6167 -11.341
+20.65 -9.517
+20.6833 -1.497
+20.7167 -3.026
+20.75 8.042
+20.7833 12.000
+20.8167 4.170
+20.85 -7.317
+20.8833 -3.664
+20.9167 -1.435
+20.95 3.537
+20.9833 7.289
+21.0167 11.652
+21.05 7.785
+21.0833 9.404
+21.1167 18.034
+21.15 15.690
+21.1833 14.262
+21.2167 8.565
+21.25 13.333
+21.2833 5.808
+21.3167 -9.032
+21.35 -15.643
+21.3833 -12.399
+21.4167 -1.331
+21.45 5.165
+21.4833 5.055
+21.5167 -0.336
+21.55 1.078
+21.5833 -1.570
+21.6167 5.231
+21.65 6.341
+21.6833 -1.184
+21.7167 -9.219
+21.75 -3.027
+21.7833 6.312
+21.8167 8.541
+21.85 11.784
+21.8833 18.280
+21.9167 14.817
+21.95 9.121
+21.9833 11.755
+22.0167 15.813
+22.05 17.532
+22.0833 9.093
+22.1167 -5.647
+22.15 -11.039
+22.1833 -16.635
+22.2167 -4.957
+22.25 4.077
+22.2833 6.611
+22.3167 0.710
+22.35 -3.462
+22.3833 -8.448
+22.4167 -9.877
+22.45 -3.686
+22.4833 6.873
+22.5167 11.540
+22.55 3.101
+22.5833 2.077
+22.6167 9.182
+22.65 11.411
+22.6833 14.249
+22.7167 15.564
+22.75 13.016
+22.7833 11.892
+22.8167 11.682
+22.85 8.120
+22.8833 8.520
+22.9167 11.968
+22.95 9.929
+22.9833 -4.301
+23.0167 -14.674
+23.05 -13.659
+23.0833 -11.735
+23.1167 -12.250
+23.15 -16.422
+23.1833 -14.903
+23.2167 1.042
+23.25 14.449
+23.2833 13.325
+23.3167 1.128
+23.35 -3.654
+23.3833 0.913
+23.4167 11.372
+23.45 22.645
+23.4833 17.458
+23.5167 11.967
+23.55 16.634
+23.5833 23.335
+23.6167 14.491
+23.65 6.561
+23.6833 7.166
+23.7167 4.723
+23.75 -0.768
+23.7833 -7.579
+23.8167 -14.594
+23.85 -18.561
+23.8833 -18.666
+23.9167 -12.270
+23.95 -3.131
+23.9833 2.251
+24.0167 11.085
+24.05 16.772
+24.0833 16.667
+24.1167 19.710
+24.15 13.509
+24.1833 6.699
+24.2167 3.241
+24.25 5.575
+24.2833 13.395
+24.3167 12.985
+24.35 10.442
+24.3833 13.690
+24.4167 9.218
+24.45 1.189
+24.4833 -3.183
+24.5167 -10.094
+24.55 -16.904
+24.5833 -12.842
+24.6167 0.465
+24.65 10.318
+24.6833 11.942
+24.7167 9.399
+24.75 5.841
+24.7833 6.246
+24.8167 3.603
+24.85 0.045
+24.8833 -1.988
+24.9167 -1.279
+24.95 -3.412
+24.9833 -1.788
+25.0167 6.846
+25.05 13.247
+25.0833 14.871
+25.1167 23.201
+25.15 24.725
+25.1833 8.265
+25.2167 -1.083
+25.25 -6.570
+25.2833 -3.827
+25.3167 -2.607
+25.35 -0.779
+25.3833 8.770
+25.4167 11.513
+25.45 7.146
+25.4833 3.793
+25.5167 8.670
+25.55 6.841
+25.5833 -3.522
+25.6167 -12.156
+25.65 -19.167
+25.6833 -17.133
+25.7167 -6.465
+25.75 4.408
+25.7833 13.857
+25.8167 13.757
+25.85 18.533
+25.8833 20.362
+25.9167 15.081
+25.95 8.885
+25.9833 7.261
+26.0167 2.893
+26.05 8.280
+26.0833 9.094
+26.1167 2.289
+26.15 -5.431
+26.1833 0.260
+26.2167 14.790
+26.25 14.590
+26.2833 13.881
+26.3167 7.075
+26.35 1.389
+26.3833 -2.979
+26.4167 -6.736
+26.45 -5.412
+26.4833 -0.026
+26.5167 7.699
+26.55 10.647
+26.5833 17.762
+26.6167 12.685
+26.65 6.185
+26.6833 11.471
+26.7167 18.991
+26.75 11.476
+26.7833 5.789
+26.8167 1.627
+26.85 -0.911
+26.8833 -1.721
+26.9167 2.956
+26.95 10.071
+26.9833 14.138
+27.0167 5.504
+27.05 3.475
+27.0833 8.457
+27.1167 11.000
+27.15 6.228
+27.1833 -1.592
+27.2167 -3.926
+27.25 -8.698
+27.2833 -4.021
+27.3167 3.804
+27.35 11.224
+27.3833 16.815
+27.4167 14.786
+27.45 8.490
+27.4833 1.889
+27.5167 4.433
+27.55 9.414
+27.5833 15.920
+27.6167 21.001
+27.65 20.497
+27.6833 22.125
+27.7167 25.583
+27.75 26.297
+27.7833 22.440
+27.8167 18.377
+27.85 6.900
+27.8833 -3.968
+27.9167 -11.483
+27.95 -15.951
+27.9833 -11.783
+28.0167 -4.363
+28.05 0.923
+28.0833 0.823
+28.1167 5.500
+28.15 8.957
+28.1833 11.905
+28.2167 16.887
+28.25 19.225
+28.2833 22.073
+28.3167 18.316
+28.35 15.373
+28.3833 18.625
+28.4167 27.060
+28.45 31.432
+28.4833 25.236
+28.5167 12.639
+28.55 3.295
+28.5833 -1.072
+28.6167 -5.744
+28.65 -2.491
+28.6833 -3.811
+28.7167 -4.520
+28.75 -3.196
+28.7833 1.276
+28.8167 3.614
+28.85 4.529
+28.8833 8.086
+28.9167 12.863
+28.95 14.897
+28.9833 19.673
+29.0167 19.878
+29.05 16.525
+29.0833 10.939
+29.1167 6.572
+29.15 6.267
+29.1833 3.119
+29.2167 0.376
+29.25 2.814
+29.2833 -0.029
+29.3167 -5.515
+29.35 -1.858
+29.3833 6.272
+29.4167 8.710
+29.45 7.186
+29.4833 14.806
+29.5167 15.721
+29.55 9.320
+29.5833 2.309
+29.6167 5.357
+29.65 11.453
+29.6833 11.149
+29.7167 12.773
+29.75 11.249
+29.7833 7.591
+29.8167 5.557
+29.85 5.862
+29.8833 0.171
+29.9167 -3.082
+29.95 -5.825
+29.9833 -7.859
+30.0167 -5.015
+30.05 2.400
+30.0833 5.753
+30.1167 12.863
+30.15 17.230
+30.1833 11.539
+30.2167 9.910
+30.25 3.305
+30.2833 2.795
+30.3167 4.724
+30.35 8.277
+30.3833 5.329
+30.4167 -1.787
+30.45 -5.344
+30.4833 -8.497
+30.5167 -6.773
+30.55 -1.491
+30.5833 7.548
+30.6167 10.491
+30.65 6.729
+30.6833 1.747
+30.7167 -0.491
+30.75 0.013
+30.7833 3.566
+30.8167 10.572
+30.85 9.857
+30.8833 7.314
+30.9167 -0.006
+30.95 -2.549
+30.9833 2.933
+31.0167 6.481
+31.05 13.796
+31.0833 9.524
+31.1167 0.375
+31.15 -7.555
+31.1833 -6.645
+31.2167 1.275
+31.25 9.195
+31.2833 11.933
+31.3167 10.405
+31.35 6.133
+31.3833 -1.392
+31.4167 -5.969
+31.45 -0.792
+31.4833 9.057
+31.5167 17.586
+31.55 18.901
+31.5833 14.424
+31.6167 8.323
+31.65 5.980
+31.6833 3.941
+31.7167 3.732
+31.75 3.827
+31.7833 5.141
+31.8167 5.237
+31.85 0.760
+31.8833 -3.717
+31.9167 -4.536
+31.95 -8.708
+31.9833 -3.127
+32.0167 5.603
+32.05 9.661
+32.0833 8.332
+32.1167 8.427
+32.15 9.437
+32.1833 6.279
+32.2167 5.460
+32.25 11.141
+32.2833 15.299
+32.3167 5.336
+32.35 -4.832
+32.3833 -4.332
+32.4167 -0.784
+32.45 3.578
+32.4833 8.955
+32.5167 12.503
+32.55 8.431
+32.5833 -2.652
+32.6167 -3.371
+32.65 4.140
+32.6833 9.517
+32.7167 7.883
+32.75 6.554
+32.7833 6.445
+32.8167 7.249
+32.85 9.273
+32.8833 12.517
+32.9167 10.883
+32.95 9.349
+32.9833 7.716
+33.0167 2.120
+33.05 -0.428
+33.0833 2.815
+33.1167 3.924
+33.15 4.829
+33.1833 4.415
+33.2167 5.220
+33.25 8.463
+33.2833 8.963
+33.3167 12.001
+33.35 14.025
+33.3833 9.648
+33.4167 4.052
+33.45 3.028
+33.4833 0.276
+33.5167 -1.053
+33.55 2.800
+33.5833 6.957
+33.6167 9.286
+33.65 8.567
+33.6833 9.372
+33.7167 12.005
+33.75 11.591
+33.7833 11.481
+33.8167 11.372
+33.85 6.995
+33.8833 3.532
+33.9167 5.252
+33.95 8.190
+33.9833 10.214
+34.0167 9.800
+34.05 9.385
+34.0833 5.518
+34.1167 3.580
+34.15 1.336
+34.1833 0.822
+34.2167 4.065
+34.25 3.551
+34.2833 3.441
+34.3167 5.975
+34.35 7.389
+34.3833 7.789
+34.4167 7.580
+34.45 5.032
+34.4833 0.860
+34.5167 -0.874
+34.55 0.745
+34.5833 -0.684
+34.6167 -2.417
+34.65 1.031
+34.6833 1.431
+34.7167 3.355
+34.75 8.836
+34.7833 12.284
+34.8167 15.123
+34.85 11.156
+34.8833 6.679
+34.9167 5.150
+34.95 3.621
+34.9833 7.579
+35.0167 12.246
+35.05 11.936
+35.0833 11.017
+35.1167 11.927
+35.15 7.860
+35.1833 -0.375
+35.2167 -4.647
+35.25 -4.042
+35.2833 0.730
+35.3167 2.554
+35.35 2.754
+35.3833 4.173
+35.4167 4.068
+35.45 3.354
+35.4833 3.249
+35.5167 4.973
+35.55 6.088
+35.5833 9.031
+35.6167 12.888
+35.65 12.074
+35.6833 6.483
+35.7167 3.230
+35.75 2.111
+35.7833 2.920
+35.8167 7.897
+35.85 9.216
+35.8833 6.573
+35.9167 2.916
+35.95 -0.642
+35.9833 -3.285
+36.0167 -0.542
+36.05 1.692
+36.0833 2.606
+36.1167 1.082
+36.15 0.168
+36.1833 -0.137
+36.2167 0.777
+36.25 1.996
+36.2833 2.606
+36.3167 5.654
+36.35 10.736
+36.3833 11.650
+36.4167 10.026
+36.45 12.974
+36.4833 12.364
+36.5167 10.131
+36.55 10.336
+36.5833 5.968
+36.6167 1.501
+36.65 -0.428
+36.6833 -2.661
+36.7167 -1.947
+36.75 -2.147
+36.7833 -3.161
+36.8167 0.601
+36.85 7.107
+36.8833 10.260
+36.9167 11.584
+36.95 10.774
+36.9833 10.169
+37.0167 9.360
+37.05 7.331
+37.0833 4.592
+37.1167 4.902
+37.15 6.836
+37.1833 5.316
+37.2167 0.749
+37.25 -2.294
+37.2833 -1.984
+37.3167 0.968
+37.35 4.021
+37.3833 8.293
+37.4167 11.856
+37.45 13.689
+37.4833 14.508
+37.5167 12.280
+37.55 11.880
+37.5833 8.432
+37.6167 7.727
+37.65 8.241
+37.6833 6.012
+37.7167 3.174
+37.75 3.688
+37.7833 6.236
+37.8167 7.360
+37.85 5.336
+37.8833 1.484
+37.9167 0.779
+37.95 5.765
+37.9833 7.094
+38.0167 4.156
+38.05 2.436
+38.0833 4.680
+38.1167 6.518
+38.15 10.895
+38.1833 13.443
+38.2167 14.976
+38.25 14.476
+38.2833 9.609
+38.3167 5.147
+38.35 2.718
+38.3833 2.118
+38.4167 0.908
+38.45 -0.201
+38.4833 1.028
+38.5167 4.390
+38.55 3.790
+38.5833 2.176
+38.6167 3.404
+38.65 5.852
+38.6833 6.472
+38.7167 8.820
+38.75 10.048
+38.7833 10.668
+38.8167 12.711
+38.85 12.721
+38.8833 10.192
+38.9167 8.982
+38.95 11.635
+38.9833 10.325
+39.0167 8.401
+39.05 10.854
+39.0833 10.459
+39.1167 4.577
+39.15 -1.000
+39.1833 -3.733
+39.2167 1.358
+39.25 5.535
+39.2833 4.835
+39.3167 7.183
+39.35 5.873
+39.3833 3.954
+39.4167 5.388
+39.45 5.907
+39.4833 8.865
+39.5167 11.113
+39.55 11.022
+39.5833 8.493
+39.6167 3.831
+39.65 -0.222
+39.6833 -0.312
+39.7167 5.693
+39.75 8.041
+39.7833 12.728
+39.8167 14.161
+39.85 9.194
+39.8833 7.275
+39.9167 8.099
+39.95 10.142
+39.9833 8.528
+40.0167 6.509
+40.05 6.418
+40.0833 5.109
+40.1167 0.446
+40.15 -0.559
+40.1833 2.399
+40.2167 5.052
+40.25 6.181
+40.2833 5.176
+40.3167 3.257
+40.35 1.033
+40.3833 5.209
+40.4167 11.520
+40.45 12.039
+40.4833 13.168
+40.5167 16.430
+40.55 16.645
+40.5833 14.725
+40.6167 12.601
+40.65 12.511
+40.6833 9.677
+40.7167 10.806
+40.75 9.901
+40.7833 6.153
+40.8167 0.981
+40.85 2.110
+40.8833 2.020
+40.9167 -2.238
+40.95 -3.752
+40.9833 -3.538
+41.0167 0.739
+41.05 5.321
+41.0833 10.717
+41.1167 13.469
+41.15 13.784
+41.1833 11.355
+41.2167 9.841
+41.25 12.593
+41.2833 13.213
+41.3167 17.185
+41.35 16.585
+41.3833 12.632
+41.4167 9.289
+41.45 7.874
+41.4833 4.226
+41.5167 2.507
+41.55 -0.531
+41.5833 -2.555
+41.6167 -1.631
+41.65 1.526
+41.6833 3.160
+41.7167 5.913
+41.75 8.156
+41.7833 6.437
+41.8167 4.413
+41.85 2.084
+41.8833 1.279
+41.9167 2.708
+41.95 10.133
+41.9833 15.424
+42.0167 18.986
+42.05 10.562
+42.0833 7.723
+42.1167 4.885
+42.15 4.080
+42.1833 4.289
+42.2167 3.585
+42.25 0.137
+42.2833 -4.226
+42.3167 -3.407
+42.35 -0.149
+42.3833 6.866
+42.4167 11.343
+42.45 10.434
+42.4833 10.338
+42.5167 8.819
+42.55 7.910
+42.5833 7.305
+42.6167 10.562
+43.4833 -1.658
+43.5167 -0.538
+43.55 -1.148
+43.5833 3.119
+43.6167 4.543
+43.65 7.896
+43.6833 6.372
+43.7167 6.372
+43.75 3.729
+43.7833 0.681
+43.8167 1.595
+43.85 2.000
+43.8833 1.695
+43.9167 0.576
+43.95 0.981
+43.9833 6.567
+44.0167 9.106
+44.05 8.596
+44.0833 7.782
+44.1167 4.224
+44.15 2.190
+44.1833 -3.401
+44.2167 -4.520
+44.25 -5.844
+44.2833 0.352
+44.3167 -0.058
+44.35 1.362
+44.3833 2.171
+44.4167 1.762
+44.45 1.657
+44.4833 -1.801
+44.5167 -1.601
+44.55 -1.301
+44.5833 0.423
+44.6167 4.890
+44.65 6.410
+44.6833 6.405
+44.7167 3.862
+44.75 1.723
+44.7833 0.499
+44.8167 0.189
+44.85 1.099
+44.8833 1.094
+44.9167 3.223
+44.95 0.780
+44.9833 -0.749
+45.0167 -3.092
+45.05 -1.878
+45.0833 -0.054
+45.1167 -1.483
+45.15 -4.840
+45.1833 -7.183
+45.2167 -4.650
+45.25 -0.692
+45.2833 1.232
+45.3167 1.327
+45.35 2.337
+45.3833 6.699
+45.4167 7.304
+45.45 5.265
+45.4833 3.937
+45.5167 3.422
+45.55 3.517
+45.5833 5.441
+45.6167 5.841
+45.65 4.108
+45.6833 1.865
+45.7167 0.436
+45.75 -3.431
+45.7833 -3.031
+45.8167 1.126
+45.85 3.355
+45.8833 3.550
+45.9167 -0.622
+45.95 -4.084
+45.9833 -5.513
+46.0167 -0.441
+46.05 4.836
+46.0833 6.555
+46.1167 7.260
+46.15 5.931
+46.1833 4.297
+46.2167 3.173
+46.25 5.502
+46.2833 8.441
+46.3167 6.707
+46.35 4.159
+46.3833 -1.232
+46.4167 -3.780
+46.45 0.073
+46.4833 5.349
+46.5167 8.288
+46.55 5.130
+46.5833 -1.785
+46.6167 -5.552
+46.65 -5.662
+46.6833 -3.433
+46.7167 0.115
+46.75 0.310
+46.7833 1.015
+46.8167 1.515
+46.85 -0.219
+46.8833 1.501
+46.9167 3.120
+46.95 3.315
+46.9833 3.105
+47.0167 2.186
+47.05 3.091
+47.0833 3.591
+47.1167 3.381
+47.15 2.867
+47.1833 0.014
+47.2167 -0.805
+47.25 1.729
+47.2833 2.533
+47.3167 2.324
+47.35 1.809
+47.3833 1.905
+47.4167 0.781
+47.45 -0.343
+47.4833 0.971
+47.5167 -1.372
+47.55 -3.411
+47.5833 -3.620
+47.6167 -1.696
+47.65 -1.296
+47.6833 1.237
+47.7167 4.076
+47.75 8.643
+47.7833 12.701
+47.8167 10.967
+47.85 8.219
+47.8833 4.961
+47.9167 2.518
+47.95 2.918
+47.9833 5.961
+48.0167 2.604
+48.05 1.175
+48.0833 1.780
+48.1167 2.385
+48.15 3.904
+48.1833 4.204
+48.2167 5.113
+48.25 2.670
+48.2833 1.141
+48.3167 -0.083
+48.35 0.217
+48.3833 1.432
+48.4167 2.241
+48.45 2.846
+48.4833 3.451
+48.5167 2.737
+48.55 4.865
+48.5833 6.894
+48.6167 7.704
+48.65 7.699
+48.6833 8.204
+48.7167 5.356
+48.75 3.727
+48.7833 3.927
+48.8167 6.565
+48.85 5.546
+48.8833 1.174
+48.9167 1.069
+48.95 2.489
+48.9833 5.432
+49.0167 6.141
+49.05 6.037
+49.0833 4.003
+49.1167 0.545
+49.15 -2.707
+49.1833 -4.436
+49.2167 -1.188
+49.25 3.484
+49.2833 9.680
+49.3167 12.828
+49.35 11.099
+49.3833 7.846
+49.4167 6.422
+49.45 6.217
+49.4833 5.708
+49.5167 6.013
+49.55 7.637
+49.5833 3.165
+49.6167 -1.712
+49.65 -3.441
+49.6833 -2.222
+49.7167 2.045
+49.75 5.193
+49.7833 5.498
+49.8167 2.450
+49.85 -0.598
+49.8833 -1.817
+49.9167 -0.598
+49.95 2.450
+49.9833 5.803
+50.0167 7.022
+50.05 5.498
+50.0833 6.922
+50.1167 6.313
+50.15 7.227
+50.1833 7.737
+50.2167 7.737
+50.25 5.503
+50.2833 4.489
+50.3167 3.574
+50.35 2.560
+50.3833 2.765
+50.4167 5.408
+50.45 9.270
+50.4833 9.780
+50.5167 8.765
+50.55 4.703
+50.5833 1.250
+50.6167 -0.069
+50.65 0.441
+50.6833 3.084
+50.7167 3.493
+50.75 0.955
+50.7833 1.465
+50.8167 2.484
+50.85 1.774
+50.8833 2.489
+50.9167 2.693
+50.95 3.103
+50.9833 3.917
+51.0167 3.717
+51.05 2.908
+51.0833 2.808
+51.1167 3.522
+51.15 3.322
+51.1833 3.122
+51.2167 5.665
+51.25 8.209
+51.2833 8.413
+51.3167 7.299
+51.35 5.880
+51.3833 4.461
+51.4167 1.517
+51.45 1.317
+51.4833 2.641
+51.5167 3.051
+51.55 -0.807
+51.5833 -2.021
+51.6167 -2.831
+51.65 -0.287
+51.6833 3.780
+51.7167 3.885
+51.75 4.294
+51.7833 3.485
+51.8167 3.589
+51.85 6.033
+51.8833 7.357
+51.9167 7.157
+51.95 10.005
+51.9833 10.109
+52.0167 6.861
+52.05 4.223
+52.0833 3.313
+52.1167 2.199
+52.15 1.085
+52.1833 2.409
+52.2167 2.209
+52.25 1.094
+52.2833 0.285
+52.3167 -0.525
+52.35 -1.944
+52.3833 -3.059
+52.4167 -2.954
+52.45 -0.106
+52.4833 2.437
+52.5167 4.371
+52.55 7.524
+52.5833 9.762
+52.6167 8.953
+52.65 8.753
+52.6833 7.638
+52.7167 6.829
+52.75 4.190
+52.7833 2.871
+52.8167 2.976
+52.85 4.300
+52.8833 4.709
+52.9167 4.609
+52.95 2.276
+52.9833 -0.567
+53.0167 -1.072
+53.05 0.657
+53.0833 4.114
+53.1167 5.843
+53.15 5.338
+53.1833 4.324
+53.2167 2.600
+53.25 2.195
+53.2833 2.400
+53.3167 3.519
+53.35 4.843
+53.3833 6.572
+53.4167 7.691
+53.45 6.372
+53.4833 6.881
+53.5167 8.305
+53.55 9.729
+53.5833 6.886
+53.6167 2.924
+53.65 -1.139
+53.6833 -3.372
+53.7167 -3.167
+53.75 1.709
+53.7833 4.657
+53.8167 6.486
+53.85 6.996
+53.8833 5.777
+53.9167 3.848
+53.95 4.153
+53.9833 5.372
+54.0167 4.662
+54.05 2.833
+54.0833 2.833
+54.1167 3.443
+54.15 3.748
+54.1833 6.186
+54.2167 8.929
+54.25 10.149
+54.2833 6.491
+54.3167 0.800
+54.35 -1.334
+54.3833 -0.724
+54.4167 -0.319
+54.45 2.424
+54.4833 4.048
+54.5167 3.438
+54.55 2.014
+54.5833 1.505
+54.6167 3.433
+54.65 5.262
+54.6833 6.886
+54.7167 7.291
+54.75 6.477
+54.7833 5.053
+54.8167 4.033
+54.85 4.438
+54.8833 6.672
+54.9167 8.601
+54.95 7.581
+54.9833 3.414
+55.0167 -0.043
+55.05 -2.077
+55.0833 -0.353
+55.1167 1.981
+55.15 2.995
+55.1833 2.281
+55.2167 1.871
+55.25 3.595
+55.2833 5.319
+55.3167 8.262
+55.35 10.696
+55.3833 10.286
+55.4167 7.438
+55.45 3.371
+55.4833 1.233
+55.5167 2.042
+55.55 4.476
+55.5833 5.081
+55.6167 4.671
+55.65 4.361
+55.6833 5.576
+55.7167 4.352
+55.75 5.261
+55.7833 5.866
+55.8167 5.861
+55.85 3.418
+55.8833 1.889
+55.9167 3.204
+55.95 3.504
+55.9833 3.804
+56.0167 3.594
+56.05 3.589
+56.0833 3.075
+56.1167 2.765
+56.15 1.946
+56.1833 2.346
+56.2167 2.746
+56.25 1.622
+56.2833 1.008
+56.3167 2.627
+56.35 3.027
+56.3833 3.832
+56.4167 4.232
+56.45 6.156
+56.4833 6.861
+56.5167 5.432
+56.55 5.322
+56.5833 4.503
+56.6167 3.784
+56.65 2.355
+56.6833 2.855
+56.7167 2.645
+56.75 1.621
+56.7833 2.021
+56.8167 3.131
+56.85 2.717
+56.8833 1.288
+56.9167 0.569
+56.95 1.069
+56.9833 1.569
+57.0167 -0.065
+57.05 -3.223
+57.0833 -1.503
+57.1167 1.740
+57.15 6.202
+57.1833 9.750
+57.2167 10.860
+57.25 11.055
+57.2833 8.812
+57.3167 5.959
+57.35 4.325
+57.3833 2.997
+57.4167 0.853
+57.45 -1.085
+57.4833 -0.890
+57.5167 -1.304
+57.55 -0.095
+57.5833 2.234
+57.6167 3.953
+57.65 3.844
+57.6833 2.920
+57.7167 0.676
+57.75 -1.262
+57.7833 -1.067
+57.8167 0.752
+57.85 2.167
+57.8833 3.886
+57.9167 3.167
+57.95 3.157
+57.9833 4.876
+58.0167 6.596
+58.05 6.791
+58.0833 5.157
+58.1167 2.404
+58.15 0.771
+58.1833 -0.253
+58.2167 -0.363
+58.25 1.052
+58.2833 2.466
+58.3167 2.052
+58.35 1.637
+58.3833 1.223
+58.4167 0.808
+58.45 -0.216
+58.4833 -0.325
+58.5167 -0.740
+58.55 -0.849
+58.5833 -1.568
+58.6167 -2.388
+58.65 -2.497
+58.6833 -2.302
+58.7167 -3.426
+58.75 -2.316
+58.7833 -0.392
+58.8167 3.156
+58.85 3.556
+58.8833 4.056
+58.9167 4.760
+58.95 4.856
+58.9833 3.222
+59.0167 2.708
+59.05 4.022
+59.0833 3.812
+59.1167 2.079
+59.15 0.650
+59.1833 -0.169
+59.2167 -0.988
+59.25 -1.908
+59.2833 -2.727
+59.3167 -2.327
+59.35 -2.027
+59.3833 -1.322
+59.4167 -1.327
+59.45 -1.636
+59.4833 -0.322
+59.5167 0.588
+59.55 0.278
+59.5833 0.578
+59.6167 2.707
+59.65 4.531
+59.6833 6.355
+59.7167 7.469
+59.75 6.245
+59.7833 3.497
+59.8167 0.649
+59.85 -1.284
+59.8833 -2.204
+59.9167 -2.613
+59.95 -3.632
+59.9833 -3.432
+60.0167 -2.623
+60.05 -2.118
+60.0833 -1.004
+60.1167 -0.904
+60.15 -1.618
+60.1833 -1.823
+60.2167 -1.928
+60.25 -0.608
+60.2833 -0.508
+60.3167 -1.323
+60.35 -2.747
+60.3833 -2.952
+60.4167 -2.547
+60.45 -0.923
+60.4833 1.006
+60.5167 1.311
+60.55 0.496
+60.5833 -0.418
+60.6167 -1.942
+60.65 -1.942
+60.6833 -1.332
+60.7167 0.496
+60.75 2.020
+60.7833 3.849
+60.8167 4.459
+60.85 4.664
+60.8833 4.359
+60.9167 1.820
+60.95 0.906
+60.9833 -0.718
+61.0167 -0.818
+61.05 -0.918
+61.0833 -0.713
+61.1167 -0.204
+61.15 -0.099
+61.1833 0.716
+61.2167 1.125
+61.25 1.940
+61.2833 1.740
+61.3167 2.149
+61.35 2.659
+61.3833 2.764
+61.4167 3.478
+61.45 3.483
+61.4833 4.807
+61.5167 5.521
+61.55 5.526
+61.5833 4.107
+61.6167 3.197
+61.65 1.983
+61.6833 1.173
+61.7167 0.264
+61.75 -1.256
+61.7833 -2.470
+61.8167 -4.599
+61.85 -3.780
+61.8833 -0.422
+61.9167 2.836
+61.95 5.584
+61.9833 6.403
+62.0167 5.798
+62.05 4.788
+62.0833 3.474
+62.1167 2.464
+62.15 1.760
+62.1833 2.274
+62.2167 4.008
+62.25 3.812
+62.2833 1.888
+62.3167 1.793
+62.35 2.208
+62.3833 2.927
+62.4167 3.441
+62.45 4.160
+62.4833 2.746
+62.5167 1.941
+62.55 2.965
+62.5833 3.380
+62.6167 2.880
+62.65 2.380
+62.6833 2.389
+62.7167 4.023
+62.75 5.656
+62.7833 5.361
+62.8167 5.471
+62.85 5.785
+62.8833 6.100
+62.9167 6.414
+62.95 5.914
+62.9833 5.009
+63.0167 5.124
+63.05 5.028
+63.0833 3.819
+63.1167 3.828
+63.15 1.704
+63.1833 0.395
+63.2167 1.928
+63.25 4.072
+63.2833 4.591
+63.3167 4.905
+63.35 4.205
+63.3833 3.605
+63.4167 2.296
+63.45 0.476
+63.4833 -0.528
+63.5167 0.600
+63.55 1.220
+63.5833 2.958
+63.6167 3.172
+63.65 3.692
+63.6833 3.092
+63.7167 3.916
+63.75 4.740
+63.7833 6.173
+63.8167 7.607
+63.85 6.907
+63.8833 3.464
+63.9167 3.069
+63.95 2.369
+63.9833 2.278
+64.0167 4.626
+64.05 5.960
+64.0833 5.869
+64.1167 4.865
+64.15 2.945
+64.1833 1.941
+64.2167 3.069
+64.25 3.589
+64.2833 2.789
+64.3167 2.698
+64.35 3.217
+64.3833 4.651
+64.4167 5.780
+64.45 5.994
+64.4833 4.989
+64.5167 6.323
+64.55 7.147
+64.5833 6.447
+64.6167 7.271
+64.65 6.266
+64.6833 6.176
+64.7167 5.171
+64.75 4.471
+64.7833 4.076
+64.8167 4.290
+64.85 5.114
+64.8833 4.109
+64.9167 4.019
+64.95 2.709
+64.9833 2.924
+65.0167 2.224
+65.05 4.267
+65.0833 4.277
+65.1167 4.491
+65.15 4.705
+65.1833 3.701
+65.2167 3.101
+65.25 4.534
+65.2833 6.373
+65.3167 7.197
+65.35 6.292
+65.3833 5.897
+65.4167 3.773
+65.45 3.377
+65.4833 5.216
+65.5167 6.749
+65.55 5.845
+65.5833 4.230
+65.6167 2.716
+65.65 1.506
+65.6833 1.516
+65.7167 1.525
+65.75 3.364
+65.7833 2.864
+65.8167 1.959
+65.85 1.664
+65.8833 1.369
+65.9167 2.088
+65.95 5.145
+65.9833 5.560
+66.0167 4.045
+66.05 2.631
+66.0833 2.436
+66.1167 4.579
+66.15 4.689
+66.1833 5.713
+66.2167 6.127
+66.25 5.017
+66.2833 3.603
+66.3167 3.408
+66.35 5.141
+66.3833 5.251
+66.4167 6.580
+66.45 4.961
+66.4833 3.241
+66.5167 2.537
+66.55 1.832
+66.5833 2.246
+66.6167 3.370
+66.65 0.837
+66.6833 0.741
+66.7167 0.341
+66.75 1.465
+66.7833 3.909
+66.8167 4.118
+66.85 4.937
+66.8833 3.418
+66.9167 2.409
+66.95 0.585
+66.9833 0.589
+67.0167 0.899
+67.05 0.294
+67.0833 3.042
+67.1167 2.742
+67.15 1.833
+67.1833 3.362
+67.2167 4.990
+67.25 5.300
+67.2833 5.710
+67.3167 0.837
+67.35 -0.277
+67.3833 5.924
+67.4167 -1.896
+67.45 -1.487
+67.4833 0.447
+67.5167 0.857
+67.55 0.657
+67.5833 1.166
+67.6167 2.186
+67.65 2.695
+67.6833 1.681
+67.7167 0.262
+67.75 -1.363
+67.7833 0.062
+67.8167 -1.867
+67.85 -1.053
+67.8833 1.690
+67.9167 1.895
+67.95 1.590
+67.9833 1.490
+68.0167 0.881
+68.05 1.695
+68.0833 0.171
+68.1167 0.781
+68.15 0.476
+68.1833 -0.134
+68.2167 -0.034
+68.2833 1.490
+68.3167 1.590
+68.35 0.066
+68.3833 -1.358
+68.4167 -3.087
+68.45 -2.682
+68.4833 -0.753
+68.5167 -2.177
+68.55 -0.553
+68.5833 -0.758
+68.6167 0.052
+68.65 -1.067
+68.6833 -0.358
+68.7167 1.062
+68.75 1.262
+68.7833 1.766
+68.8167 2.171
+68.85 1.762
+68.8833 1.962
+68.9167 0.637
+68.95 -0.282
+68.9833 -1.301
+69.0167 -2.320
+69.05 -1.106
+69.0833 0.313
+69.1167 1.223
+69.15 0.509
+69.1833 -0.106
+69.2167 -1.939
+69.25 -2.249
+69.2833 -2.254
+69.3167 -1.954
+69.35 -2.263
+69.3833 -1.354
+69.4167 -1.054
+69.45 -0.144
+69.4833 0.156
+69.5167 -0.663
+69.55 -0.973
+69.5833 -2.402
+69.6167 -1.187
+69.65 -0.178
+69.6833 2.661
+69.7167 3.265
+69.75 3.361
+69.7833 1.627
+69.8167 1.113
+69.85 -1.231
+69.8833 0.084
+69.9167 -0.126
+69.95 -1.250
+69.9833 -3.593
+70.0167 -3.498
+70.05 -3.098
+70.0833 -2.088
+70.1167 0.241
+70.15 -1.188
+70.1833 -1.398
+70.2167 -1.507
+70.25 -3.241
+70.2833 -1.622
+70.3167 -0.512
+70.35 3.241
+70.3833 2.826
+70.4167 2.312
+70.45 1.288
+70.4833 0.164
+70.5167 1.578
+70.55 1.164
+70.5833 0.345
+70.6167 -0.070
+70.65 -1.094
+70.6833 -1.303
+70.7167 -0.499
+70.75 -0.608
+70.7833 -1.123
+70.8167 -0.623
+70.85 -1.037
+70.8833 -0.942
+70.9167 -1.051
+70.95 0.058
+70.9833 0.458
+71.0167 1.368
+71.05 1.458
+71.0833 1.958
+71.1167 1.749
+71.15 1.944
+71.1833 1.225
+71.2167 -0.814
+71.25 -0.923
+71.2833 -1.033
+71.3167 -0.023
+71.35 -1.047
+71.3833 -2.476
+71.4167 -3.195
+71.45 -3.915
+71.4833 -3.210
+71.5167 -2.100
+71.55 -1.091
+71.5833 0.324
+71.6167 1.638
+71.65 1.429
+71.6833 1.929
+71.7167 2.329
+71.75 2.219
+71.7833 2.009
+71.8167 0.885
+71.85 0.676
+71.8833 0.871
+71.9167 0.661
+71.95 1.671
+71.9833 1.461
+72.0167 1.861
+72.05 1.042
+72.0833 0.528
+72.1167 -1.206
+72.15 -1.111
+72.1833 0.204
+72.2167 0.299
+72.25 0.904
+72.2833 1.609
+72.3167 1.704
+72.35 1.089
+72.3833 2.099
+72.4167 -0.039
+72.45 -0.554
+72.4833 -0.863
+72.5167 0.146
+72.55 1.056
+72.5833 2.270
+72.6167 3.280
+72.65 3.275
+72.6833 2.051
+72.7167 0.827
+72.75 -0.397
+72.7833 -1.011
+72.8167 0.203
+72.85 1.417
+72.8833 1.717
+72.9167 1.003
+72.95 -0.526
+72.9833 -0.531
+73.0167 -0.940
+73.05 -0.640
+73.0833 -1.050
+73.1167 -1.969
+73.15 -1.159
+73.1833 -1.264
+73.2167 -0.150
+73.25 1.979
+73.2833 1.569
+73.3167 2.074
+73.35 2.579
+73.3833 1.765
+73.4167 1.660
+73.45 0.336
+73.4833 1.755
+73.5167 2.260
+73.55 3.274
+73.5833 3.474
+73.6167 1.745
+73.65 1.945
+73.6833 1.436
+73.7167 0.317
+73.75 0.417
+73.7833 0.312
+73.8167 -0.807
+73.85 -0.403
+73.8833 0.307
+73.9167 0.407
+73.95 1.321
+73.9833 1.726
+74.0167 1.521
+74.05 1.926
+74.0833 1.012
+74.1167 1.417
+74.15 2.331
+74.1833 3.650
+74.2167 3.650
+74.25 2.736
+74.2833 2.226
+74.3167 1.617
+74.35 2.226
+74.3833 2.836
+74.4167 1.312
+74.45 1.617
+74.4833 0.397
+74.5167 -1.531
+74.55 -1.836
+74.5833 -0.617
+74.6167 -0.922
+74.65 -0.412
+74.6833 0.502
+74.7167 -0.817
+74.75 -0.307
+74.7833 0.607
+74.8167 0.812
+74.85 0.712
+74.8833 2.236
+74.9167 1.221
+74.95 -0.098
+74.9833 0.412
+75.0167 0.617
+75.05 2.041
+75.0833 2.145
+75.1167 2.045
+75.15 1.031
+75.1833 0.931
+75.2167 0.731
+75.25 -0.283
+75.2833 -0.383
+75.3167 -0.583
+75.35 -0.683
+75.3833 1.250
+75.4167 0.441
+75.45 0.950
+75.4833 2.579
+75.5167 2.684
+75.55 1.669
+75.5833 0.860
+75.6167 -0.255
+75.65 -1.064
+75.6833 -0.350
+75.7167 -0.855
+75.75 1.384
+75.7833 1.793
+75.8167 1.289
+75.85 2.613
+75.8833 2.413
+75.9167 3.127
+75.95 2.927
+75.9833 2.422
+76.0167 2.122
+76.05 1.617
+76.0833 2.637
+76.1167 2.437
+76.15 2.541
+76.1833 4.985
+76.2167 4.785
+76.25 2.756
+76.2833 1.541
+76.3167 -0.487
+76.35 -0.687
+76.3833 -0.683
+76.4167 -0.883
+76.45 -1.083
+76.4833 -1.383
+76.5167 -0.973
+76.55 0.251
+76.5833 0.356
+76.6167 0.156
+76.65 1.989
+76.6833 2.094
+76.7167 3.418
+76.75 4.947
+76.7833 5.357
+76.8167 6.071
+76.85 5.466
+76.8833 6.181
+76.9167 5.981
+76.95 4.561
+76.9833 4.566
+77.0167 3.757
+77.05 3.252
+77.0833 2.137
+77.1167 -0.501
+77.15 -0.496
+77.1833 -1.001
+77.2167 -0.287
+77.25 1.342
+77.2833 1.447
+77.3167 -0.582
+77.35 0.133
+77.3833 0.847
+77.4167 2.781
+77.45 4.409
+77.4833 5.224
+77.5167 4.109
+77.55 3.605
+77.5833 2.795
+77.6167 3.509
+77.65 4.019
+77.6833 4.733
+77.7167 4.329
+77.75 3.824
+77.7833 1.185
+77.8167 -0.134
+77.85 0.376
+77.8833 0.785
+77.9167 0.381
+77.95 -0.329
+77.9833 -1.139
+78.0167 -0.934
+78.05 -0.119
+78.0833 1.305
+78.1167 4.557
+78.15 3.238
+78.1833 4.967
+78.2167 3.648
+78.25 2.938
+78.2833 2.838
+78.3167 3.348
+78.35 3.957
+78.3833 2.943
+78.4167 3.453
+78.45 3.757
+78.4833 3.048
+78.5167 3.048
+78.55 2.338
+78.5833 2.033
+78.6167 2.338
+78.65 1.424
+78.6833 1.324
+78.7167 1.933
+78.75 1.629
+78.7833 2.848
+78.8167 3.457
+78.85 2.848
+78.8833 3.557
+78.9167 2.948
+78.95 3.253
+78.9833 3.962
+79.0167 4.272
+79.05 3.962
+79.0833 4.062
+79.1167 3.553
+79.15 2.638
+79.1833 3.348
+79.2167 4.362
+79.25 3.243
+79.2833 4.157
+79.3167 5.477
+79.35 4.762
+79.3833 4.557
+79.4167 4.657
+79.45 4.757
+79.4833 4.857
+79.5167 4.753
+79.55 3.938
+79.5833 2.919
+79.6167 1.800
+79.65 1.085
+79.6833 3.319
+79.7167 4.129
+79.75 3.414
+79.7833 3.309
+79.8167 1.985
+79.85 3.100
+79.8833 3.605
+79.9167 5.024
+79.95 5.529
+79.9833 6.133
+80.0167 5.724
+80.05 6.229
+80.0833 5.919
+80.1167 4.695
+80.15 5.200
+80.1833 5.500
+80.2167 4.885
+80.25 2.952
+80.2833 2.337
+80.3167 2.637
+80.35 3.547
+80.3833 2.323
+80.4167 2.318
+80.45 2.109
+80.4833 3.628
+80.5167 4.537
+80.55 5.547
+80.5833 6.457
+80.6167 5.333
+80.65 5.023
+80.6833 3.899
+80.7167 4.809
+80.75 5.209
+80.7833 4.999
+80.8167 6.009
+80.85 6.104
+80.8833 5.894
+80.9167 5.380
+80.95 6.694
+80.9833 4.961
+81.0167 5.056
+81.05 3.322
+81.0833 3.517
+81.1167 3.003
+81.15 1.879
+81.1833 3.293
+81.2167 5.827
+81.25 5.717
+81.2833 5.203
+81.3167 5.398
+81.35 3.055
+81.3833 1.726
+81.4167 1.617
+81.45 1.812
+81.4833 2.821
+81.5167 4.541
+81.55 3.212
+81.5833 4.017
+81.6167 3.297
+81.65 4.712
+81.6833 4.907
+81.7167 4.797
+81.75 4.993
+81.7833 2.445
+81.8167 2.030
+81.85 2.530
+81.8833 3.640
+81.9167 3.225
+81.95 1.897
+81.9833 1.787
+82.0167 1.982
+82.05 1.568
+82.0833 2.168
+82.1167 1.753
+82.15 1.948
+82.1833 1.229
+82.2167 0.510
+82.25 -0.819
+82.2833 -0.219
+82.3167 -0.328
+82.35 2.000
+82.3833 4.329
+82.4167 4.220
+82.45 4.110
+82.4833 2.881
+82.5167 3.686
+82.55 3.272
+82.5833 2.552
+82.6167 3.052
+82.65 2.638
+82.6833 2.224
+82.7167 1.200
+82.75 1.700
+82.7833 2.200
+82.8167 2.700
+82.85 1.676
+82.8833 0.956
+82.9167 0.542
+82.95 -0.277
+82.9833 -1.301
+83.0167 -2.020
+83.05 -0.911
+83.0833 -0.206
+83.1167 1.208
+83.15 1.404
+83.1833 0.889
+83.2167 2.304
+83.25 2.704
+83.2833 3.813
+83.3167 3.604
+83.35 3.089
+83.3833 2.370
+83.4167 1.856
+83.45 0.732
+83.4833 1.132
+83.5167 -0.297
+83.55 0.103
+83.5833 0.503
+83.6167 0.293
+83.65 0.998
+83.6833 1.703
+83.7167 1.088
+83.75 0.574
+83.7833 0.874
+83.8167 1.884
+83.85 1.574
+83.8833 1.974
+83.9167 2.274
+83.95 2.269
+83.9833 2.264
+84.0167 2.260
+84.05 1.440
+84.0833 1.336
+84.1167 1.331
+84.15 1.326
+84.1833 1.016
+84.2167 1.826
+84.25 2.431
+84.2833 2.326
+84.3167 1.712
+84.35 1.912
+84.3833 1.502
+84.4167 1.397
+84.45 1.088
+84.4833 -0.032
+84.5167 0.168
+84.55 -0.546
+84.5833 -0.651
+84.6167 -0.856
+84.65 0.259
+84.6833 1.273
+84.7167 2.083
+84.75 2.183
+84.7833 2.283
+84.8167 2.078
+84.85 1.264
+84.8833 0.754
+84.9167 0.549
+84.95 1.564
+84.9833 3.392
+85.0167 2.273
+85.05 1.968
+85.0833 2.068
+85.1167 2.068
+85.15 2.373
+85.1833 2.373
+85.2167 2.983
+85.25 2.373
+85.2833 2.068
+85.3167 1.664
+85.35 1.664
+85.3833 1.664
+85.4167 1.564
+85.45 0.854
+85.4833 1.668
+85.5167 2.583
+85.55 2.788
+85.5833 2.078
+85.6167 0.659
+85.65 -0.051
+85.6833 0.154
+85.7167 0.259
+85.75 -0.146
+85.7833 1.788
+85.8167 3.416
+85.85 4.536
+85.8833 5.250
+85.9167 5.355
+85.95 6.069
+85.9833 4.245
+86.0167 3.131
+86.05 2.931
+86.0833 2.326
+86.1167 2.126
+86.15 2.740
+86.1833 1.831
+86.2167 1.021
+86.25 2.550
+86.2833 1.640
+86.3167 2.255
+86.35 3.379
+86.3833 3.384
+86.4167 2.779
+86.45 2.988
+86.4833 3.298
+86.5167 3.812
+86.55 5.036
+86.5833 4.941
+86.6167 5.456
+86.65 6.275
+86.6833 6.789
+86.7167 6.694
+86.75 6.904
+86.7833 5.894
+86.8167 5.394
+86.85 4.994
+86.8833 5.104
+86.9167 5.313
+86.95 4.508
+86.9833 4.108
+87.0167 4.418
+87.05 4.328
+87.0833 4.437
+87.1167 4.852
+87.15 5.266
+87.1833 5.376
+87.2167 6.095
+87.25 5.190
+87.2833 5.604
+87.3167 5.714
+87.35 6.028
+87.3833 7.357
+87.4167 7.976
+87.45 8.900
+87.4833 8.400
+87.5167 8.105
+87.55 6.896
+87.5833 6.296
+87.6167 5.391
+87.65 6.010
+87.6833 6.324
+87.7167 5.724
+87.75 6.039
+87.7833 5.134
+87.8167 5.044
+87.85 3.529
+87.8833 3.539
+87.9167 3.448
+87.95 3.153
+87.9833 3.468
+88.0167 4.597
+88.05 4.811
+88.0833 6.345
+88.1167 6.864
+88.15 7.178
+88.1833 7.393
+88.2167 7.607
+88.25 6.907
+88.2833 7.526
+88.3167 6.521
+88.35 5.821
+88.3833 5.731
+88.4167 4.726
+88.45 5.550
+88.4833 4.950
+88.5167 5.774
+88.55 5.684
+88.5833 4.374
+88.6167 4.893
+88.65 4.803
+88.6833 5.017
+88.7167 4.927
+88.75 5.446
+88.7833 4.746
+88.8167 4.656
+88.85 4.565
+88.8833 5.389
+88.9167 6.518
+88.95 6.428
+88.9833 7.861
+89.0167 8.381
+89.05 7.985
+89.0833 7.895
+89.1167 7.500
+89.15 6.800
+89.1833 5.795
+89.2167 6.924
+89.25 5.614
+89.2833 5.524
+89.3167 5.229
+89.35 4.529
+89.3833 4.743
+89.4167 4.043
+89.45 3.953
+89.4833 4.877
+89.5167 3.567
+89.55 3.172
+89.5833 2.877
+89.6167 3.701
+89.65 4.015
+89.6833 5.144
+89.7167 5.763
+89.75 5.977
+89.7833 5.987
+89.8167 6.811
+89.85 6.821
+89.8833 7.440
+89.9167 5.621
+89.95 5.630
+89.9833 4.016
+90.0167 4.635
+90.05 4.035
+90.0833 3.740
+90.1167 4.154
+90.15 5.078
+90.1833 4.783
+90.2167 4.488
+90.25 4.293
+90.2833 4.912
+90.3167 3.093
+90.35 2.593
+90.3833 3.212
+90.4167 3.017
+90.45 3.431
+90.4833 2.931
+90.5167 3.855
+90.55 2.745
+90.5833 3.465
+90.6167 4.489
+90.65 5.817
+90.6833 5.622
+90.7167 4.613
+90.75 4.417
+90.7833 3.917
+90.8167 3.213
+90.85 3.017
+90.8833 2.313
+90.9167 2.217
+90.95 2.022
+90.9833 0.708
+91.0167 0.613
+91.05 2.041
+91.0833 3.470
+91.1167 3.680
+91.15 2.670
+91.1833 1.151
+91.2167 0.751
+91.25 0.451
+91.2833 0.965
+91.3167 3.713
+91.35 1.789
+91.3833 1.794
+91.4167 1.189
+91.45 1.499
+91.4833 0.894
+91.5167 3.337
+91.55 1.818
+91.5833 1.618
+91.6167 0.709
+91.65 -0.101
+91.6833 -0.706
+91.7167 -0.601
+91.75 0.113
+91.8167 0.528
+91.85 1.242
+91.8833 0.433
+91.9167 0.028
+91.95 -0.172
+91.9833 0.542
+92.0167 1.052
+92.05 -0.672
+92.0833 -0.467
+92.1167 -1.482
+92.15 -1.072
+92.1833 -0.563
+92.2167 0.252
+92.25 -0.458
+92.2833 -1.067
+92.3167 -1.167
+92.35 -1.572
+92.3833 -2.487
+92.4167 -1.367
+92.45 -0.758
+92.4833 -1.063
+92.5167 -1.367
+92.55 -1.772
+92.5833 -0.858
+92.6167 -1.063
+92.65 -1.672
+92.6833 -1.367
+92.7167 -1.572
+92.75 -2.487
+92.7833 -2.996
+92.8167 -3.301
+92.85 -3.506
+92.8833 -3.101
+92.9167 -3.001
+92.95 -2.596
+92.9833 -2.191
+93.0167 -2.701
+93.05 -1.991
+93.0833 -1.487
+93.1167 -1.996
+93.15 -1.796
+93.1833 -2.611
+93.2167 -2.715
+93.25 -2.515
+93.2833 -2.315
+93.3167 -2.115
+93.35 -1.915
+93.3833 -1.715
+93.4167 -1.820
+93.45 -2.535
+93.4833 -1.930
+93.5167 -2.644
+93.55 -2.039
+93.5833 -2.144
+93.6167 -1.235
+93.65 -2.254
+93.6833 -1.954
+93.7167 -2.568
+93.75 -2.268
+93.7833 -2.883
+93.8167 -2.278
+93.85 -2.892
+93.8833 -1.373
+93.9167 -1.583
+93.95 -1.283
+93.9833 -2.202
+94.0167 -1.192
+94.05 -0.283
+94.0833 -0.797
+94.1167 -0.802
+94.15 -0.402
+94.1833 -1.526
+94.2167 -2.040
+94.25 -1.435
+94.2833 -2.255
+94.3167 -1.245
+94.35 -0.845
+94.3833 -1.664
+94.4167 -2.788
+94.45 -3.607
+94.4833 -2.903
+94.5167 -2.198
+94.55 -1.088
+94.5833 -1.907
+94.6167 -1.507
+94.65 -0.803
+94.6833 -1.522
+94.7167 -1.427
+94.75 -0.927
+94.7833 -1.136
+94.8167 -1.651
+94.85 -3.284
+94.8833 -4.103
+94.9167 -2.994
+94.95 -2.594
+94.9833 -1.789
+95.0167 -0.584
+95.05 -0.889
+95.0833 -1.913
+95.1167 -2.732
+95.15 -1.318
+95.1833 -1.732
+95.2167 -1.942
+95.25 -2.051
+95.2833 -2.466
+95.3167 -2.980
+95.35 -2.785
+95.3833 -1.371
+95.4167 -1.275
+95.45 -2.299
+95.4833 -2.104
+95.5167 -3.838
+95.55 -2.423
+95.5833 -1.923
+95.6167 -2.133
+95.65 -2.243
+95.6833 -2.352
+95.7167 -1.343
+95.75 -2.671
+95.7833 -1.257
+95.8167 -1.467
+95.85 -2.491
+95.8833 -2.700
+95.9167 -2.810
+95.95 -3.224
+95.9833 -2.519
+96.0167 -2.324
+96.05 -2.229
+96.0833 -1.729
+96.1167 -2.548
+96.15 -1.843
+96.1833 -2.258
+96.2167 -1.858
+96.25 -0.543
+96.2833 -0.043
+96.3167 -2.082
+96.35 -1.682
+96.3833 -2.806
+96.4167 -3.220
+96.45 -2.820
+96.4833 -2.725
+96.5167 -3.849
+96.55 -2.839
+96.5833 -3.963
+96.6167 -3.259
+96.65 -3.163
+96.6833 -2.763
+96.7167 -2.768
+96.75 -1.149
+96.7833 -1.663
+96.8167 -1.263
+96.85 -1.268
+96.8833 -1.173
+96.9167 -2.397
+96.95 -1.692
+96.9833 -1.697
+97.0167 -1.297
+97.05 -1.911
+97.0833 -1.611
+97.1167 -0.907
+97.15 -1.826
+97.1833 -2.135
+97.2167 -1.835
+97.25 -1.231
+97.2833 -2.150
+97.3167 -2.155
+97.35 -0.635
+97.3833 -0.945
+97.4167 -1.659
+97.45 -0.140
+97.4833 0.465
+97.5167 0.360
+97.55 0.355
+97.5833 -1.274
+97.6167 -1.279
+97.65 -1.383
+97.6833 -1.488
+97.7167 -1.188
+97.75 -0.379
+97.7833 -0.788
+97.8167 0.021
+97.85 -0.083
+97.8833 -0.798
+97.9167 0.012
+97.95 -0.193
+97.9833 1.226
+98.0167 1.426
+98.05 1.321
+98.0833 0.507
+98.1167 0.097
+98.15 -0.412
+98.1833 -0.007
+98.2167 0.802
+98.25 1.512
+98.2833 0.088
+98.3167 -0.422
+98.35 -1.236
+98.3833 -1.136
+98.4167 -0.122
+98.45 -0.022
+98.4833 0.993
+98.5167 1.093
+98.55 0.483
+98.5833 -0.027
+98.6167 -0.231
+98.65 0.683
+98.6833 -0.231
+98.7167 0.478
+98.75 0.783
+98.7833 0.783
+98.8167 0.273
+98.85 0.273
+98.8833 1.188
+98.9167 0.883
+98.95 1.188
+98.9833 0.578
+99.0167 0.273
+99.05 -0.131
+99.0833 -0.131
+99.1167 0.783
+99.15 0.378
+99.1833 0.073
+99.2167 -0.027
+99.25 -0.331
+99.2833 0.178
+99.3167 -0.531
+99.35 0.078
+99.3833 1.197
+99.4167 1.402
+99.45 0.693
+99.4833 1.507
+99.5167 0.188
+99.55 0.088
+99.5833 1.207
+99.6167 1.717
+99.65 1.921
+99.6833 1.721
+99.7167 1.621
+99.75 2.436
+99.7833 3.455
+99.8167 3.660
+99.85 4.984
+99.8833 3.665
+99.9167 3.769
+99.95 2.755
+99.9833 1.945
+100.017 2.355
+100.05 2.765
+100.083 2.665
+100.117 2.769
+100.15 2.569
+100.183 1.455
+100.217 1.865
+100.25 1.665
+100.283 2.989
+100.317 4.008
+100.35 2.893
+100.383 2.998
+100.417 3.408
+100.45 3.413
+100.483 4.432
+100.517 5.146
+100.55 4.641
+100.583 4.037
+100.617 3.532
+100.65 3.332
+100.683 3.946
+100.717 4.051
+100.75 5.070
+100.783 3.856
+100.817 4.265
+100.85 3.965
+100.883 3.156
+100.917 3.161
+100.95 2.961
+100.983 3.270
+101.017 4.289
+101.05 3.175
+101.083 4.094
+101.117 3.894
+101.15 5.118
+101.183 5.223
+101.217 3.704
+101.25 4.723
+101.283 3.509
+101.317 4.223
+101.35 3.618
+101.383 4.333
+101.417 4.947
+101.45 5.052
+101.483 5.666
+101.517 5.771
+101.55 5.776
+101.583 4.966
+101.617 4.766
+101.65 4.771
+101.683 4.571
+101.717 4.371
+101.75 5.595
+101.783 6.005
+101.817 5.195
+101.85 4.995
+101.883 5.000
+101.917 4.800
+101.95 5.514
+101.983 6.229
+102.017 5.419
+102.05 4.000
+102.083 4.409
+102.117 4.514
+102.15 5.229
+102.183 4.419
+102.217 5.133
+102.25 5.543
+102.283 5.138
+102.317 4.329
+102.35 4.738
+102.383 4.638
+102.417 4.133
+102.45 3.933
+102.483 4.138
+102.517 3.938
+102.55 4.753
+102.583 5.567
+102.617 5.672
+102.65 5.572
+102.683 5.777
+102.717 5.677
+102.75 5.172
+102.783 5.681
+102.817 4.362
+102.85 5.481
+102.883 5.481
+102.917 5.077
+102.95 5.586
+102.983 5.486
+103.017 3.967
+103.05 3.557
+103.083 3.457
+103.117 3.153
+103.15 3.357
+103.183 3.053
+103.217 3.562
+103.25 3.562
+103.283 4.781
+103.317 5.086
+103.35 4.781
+103.383 6.915
+103.417 3.867
+103.45 5.086
+103.483 4.477
+103.517 5.086
+103.55 5.086
+103.583 5.186
+103.617 4.881
+103.65 3.662
+103.683 3.153
+103.717 2.543
+103.75 2.948
+103.783 3.048
+103.817 2.438
+103.85 2.538
+103.883 2.943
+103.917 2.433
+103.95 4.362
+103.983 4.157
+104.017 3.343
+104.05 4.762
+104.083 4.253
+104.117 4.657
+104.15 4.857
+104.183 5.567
+104.217 5.767
+104.25 4.953
+104.283 5.153
+104.317 4.133
+104.35 3.014
+104.383 2.605
+104.417 3.414
+104.45 1.785
+104.483 1.681
+104.517 1.576
+104.55 1.571
+104.583 1.466
+104.617 2.276
+104.65 2.881
+104.683 2.776
+104.717 2.161
+104.75 2.971
+104.783 2.052
+104.817 2.047
+104.85 3.161
+104.883 3.157
+104.917 3.761
+104.95 4.366
+104.983 3.752
+105.017 2.833
+105.05 3.437
+105.083 3.128
+105.117 2.309
+105.15 0.780
+105.183 1.080
+105.217 0.870
+105.25 0.561
+105.283 0.961
+105.317 2.275
+105.35 3.185
+105.383 2.365
+105.417 2.156
+105.45 2.456
+105.483 2.246
+105.517 2.037
+105.55 3.656
+105.583 2.837
+105.617 2.322
+105.65 3.027
+105.683 2.917
+105.717 2.403
+105.75 2.498
+105.783 2.289
+105.817 1.874
+105.85 2.579
+105.883 2.369
+105.917 2.869
+105.95 4.489
+105.983 4.989
+106.017 3.865
+106.05 4.669
+106.083 3.545
+106.117 3.741
+106.15 3.021
+106.183 3.117
+106.217 3.312
+106.25 3.507
+106.283 3.702
+106.317 3.797
+106.35 3.688
+106.383 3.273
+106.417 2.249
+106.45 3.359
+106.483 2.235
+106.517 2.735
+106.55 2.625
+106.583 2.821
+106.617 2.406
+106.65 3.516
+106.683 4.930
+106.717 3.906
+106.75 3.697
+106.783 4.501
+106.817 5.001
+106.85 4.587
+106.883 3.868
+106.917 4.063
+106.95 3.344
+106.983 3.439
+107.017 2.720
+107.05 2.915
+107.083 3.720
+107.117 3.915
+107.15 4.010
+107.183 2.986
+107.217 2.572
+107.25 1.548
+107.283 1.033
+107.317 1.838
+107.35 2.643
+107.383 1.824
+107.417 2.019
+107.45 3.028
+107.483 2.309
+107.517 2.100
+107.55 2.600
+107.583 3.000
+107.617 2.790
+107.65 2.376
+107.683 3.385
+107.717 3.480
+107.75 2.966
+107.783 2.452
+107.817 2.037
+107.85 2.437
+107.883 1.923
+107.917 1.408
+107.95 1.708
+107.983 0.889
+108.017 1.289
+108.05 1.384
+108.083 1.380
+108.117 1.170
+108.15 1.875
+108.183 1.565
+108.217 2.575
+108.25 3.180
+108.283 2.870
+108.317 2.965
+108.35 2.656
+108.383 1.736
+108.417 2.951
+108.45 2.032
+108.483 1.417
+108.517 2.632
+108.55 2.017
+108.583 2.827
+108.617 3.736
+108.65 2.817
+108.683 3.017
+108.717 2.708
+108.75 1.993
+108.783 2.193
+108.817 2.393
+108.85 1.474
+108.883 1.369
+108.917 1.264
+108.95 0.550
+108.983 2.174
+109.017 2.984
+109.05 3.488
+109.083 3.588
+109.117 2.874
+109.15 1.755
+109.183 1.650
+109.217 2.055
+109.25 1.850
+109.283 2.864
+109.317 2.964
+109.35 3.369
+109.383 2.860
+109.417 2.960
+109.45 2.655
+109.483 3.364
+109.517 2.450
+109.55 2.245
+109.583 2.855
+109.617 1.940
+109.65 1.940
+109.683 1.940
+109.717 2.245
+109.75 2.855
+109.783 2.855
+109.817 2.855
+109.85 3.669
+109.883 3.669
+109.917 3.264
+109.95 3.569
+109.983 3.469
+110.017 3.674
+110.05 3.574
+110.083 4.084
+110.117 4.288
+110.15 4.188
+110.183 3.784
+110.217 3.584
+110.25 3.484
+110.283 3.893
+110.317 2.779
+110.35 2.984
+110.383 4.003
+110.417 3.498
+110.45 3.908
+110.483 3.403
+110.517 2.898
+110.55 3.003
+110.583 2.398
+110.617 2.198
+110.65 3.422
+110.683 2.917
+110.717 3.836
+110.75 4.756
+110.783 4.456
+110.817 5.375
+110.85 4.770
+110.883 4.165
+110.917 4.475
+110.95 4.480
+110.983 4.789
+111.017 5.199
+111.05 4.394
+111.083 4.604
+111.117 4.508
+111.15 3.904
+111.183 4.723
+111.217 4.323
+111.25 5.447
+111.283 5.656
+111.317 5.256
+111.35 5.161
+111.383 4.356
+111.417 5.176
+111.45 5.995
+111.483 5.800
+111.517 6.009
+111.55 6.119
+111.583 5.619
+111.617 5.828
+111.65 4.414
+111.683 4.828
+111.717 4.633
+111.75 4.743
+111.783 4.852
+111.817 4.962
+111.85 5.681
+111.883 5.386
+111.917 5.800
+111.95 7.129
+111.983 5.615
+112.017 5.420
+112.05 4.210
+112.083 4.015
+112.117 3.720
+112.15 4.034
+112.183 3.839
+112.217 5.068
+112.25 5.382
+112.283 5.697
+112.317 5.706
+112.35 5.106
+112.383 4.506
+112.417 5.430
+112.45 4.830
+112.483 4.535
+112.517 4.240
+112.55 3.845
+112.583 5.073
+112.617 5.388
+112.65 4.383
+112.683 5.307
+112.717 3.793
+112.75 3.093
+112.783 4.017
+112.817 3.317
+112.85 4.241
+112.883 3.845
+112.917 4.160
+112.95 4.374
+112.983 3.469
+113.017 3.074
+113.05 4.203
+113.083 4.822
+113.117 2.598
+113.15 2.913
+113.183 2.822
+113.217 2.427
+113.25 3.046
+113.283 3.870
+113.317 5.304
+113.35 5.618
+113.383 5.223
+113.417 4.828
+113.45 4.533
+113.483 3.223
+113.517 3.742
+113.55 3.447
+113.583 3.966
+113.617 2.657
+113.65 2.666
+113.683 1.966
+113.717 2.890
+113.75 2.495
+113.783 3.724
+113.817 4.548
+113.85 4.557
+113.883 3.553
+113.917 4.477
+113.95 5.301
+113.983 4.701
+114.017 5.625
+114.05 5.229
+114.083 5.239
+114.117 3.115
+114.15 3.025
+114.183 3.339
+114.217 3.653
+114.25 4.577
+114.283 4.587
+114.317 4.292
+114.35 2.168
+114.383 2.482
+114.417 3.711
+114.45 3.516
+115.483 1.217
+115.517 2.341
+115.55 2.651
+115.583 3.165
+115.617 3.475
+115.65 3.989
+115.683 2.775
+115.717 2.170
+115.75 2.785
+115.783 3.299
+115.817 1.780
+115.85 1.885
+115.883 1.280
+115.917 0.675
+115.95 1.289
+115.983 2.004
+116.017 1.399
+116.05 0.589
+116.083 1.509
+116.117 -0.520
+116.15 -0.111
+116.183 -0.615
+116.217 0.709
+116.25 1.118
+116.283 1.833
+116.317 1.023
+116.35 1.128
+116.383 2.247
+116.417 2.352
+116.45 2.252
+116.483 1.847
+116.517 1.037
+116.55 0.633
+116.583 1.142
+116.617 1.652
+116.65 1.857
+116.683 1.452
+116.717 -0.377
+116.75 -0.172
+116.817 -0.577
+116.85 -0.272
+116.883 -0.372
+116.917 0.847
+116.95 1.152
+116.983 0.847
+117.017 1.457
+117.05 0.542
+117.083 1.152
+117.117 0.947
+117.15 1.557
+117.183 0.133
+117.217 0.437
+117.25 0.537
+117.283 0.333
+117.317 0.433
+117.35 0.128
+117.383 0.228
+117.417 1.037
+117.45 -0.691
+117.483 -0.287
+117.517 -0.491
+117.55 0.623
+117.583 -0.496
+117.617 -0.906
+117.65 -2.025
+117.683 -0.301
+117.717 0.509
+117.75 -0.511
+117.783 1.213
+117.817 0.499
+117.85 0.089
+117.883 -0.625
+117.917 -1.239
+117.95 -1.039
+117.983 -0.535
+118.017 -0.539
+118.05 -0.339
+118.083 -1.259
+118.117 -0.044
+118.15 0.561
+118.183 -0.154
+118.217 -0.463
+118.25 -0.468
+118.283 -1.997
+118.317 -2.002
+118.35 -0.687
+118.383 -1.607
+118.417 -1.611
+118.45 -1.921
+118.483 -0.302
+118.517 -2.135
+118.55 -1.431
+118.583 -1.131
+118.617 -1.340
+118.65 -0.635
+118.683 -0.640
+118.717 -0.545
+118.75 -1.364
+118.783 -0.355
+118.817 -0.869
+118.85 -1.383
+118.883 -0.983
+118.917 0.331
+118.95 -0.183
+118.983 -0.698
+119.017 -0.403
+119.05 -0.507
+119.083 -2.241
+119.117 -0.927
+119.15 -1.036
+119.183 -1.551
+119.217 -1.455
+119.25 -0.651
+119.283 -0.555
+119.317 -0.665
+119.35 -0.570
+119.383 -1.389
+119.417 -1.499
+119.45 -2.623
+119.483 -1.513
+119.517 -0.808
+119.55 -0.613
+119.583 0.497
+119.617 -0.323
+119.65 -1.042
+119.683 -0.642
+119.717 -1.056
+119.75 -1.166
+119.783 -0.766
+119.817 -2.095
+119.85 -2.609
+119.883 -2.414
+119.917 -2.523
+119.95 -1.514
+119.983 -0.404
+120.017 -1.428
+120.05 -1.943
+120.083 -1.747
+120.117 -2.871
+120.15 -2.067
+120.183 -1.262
+120.217 -1.167
+120.25 -0.667
+120.283 -0.876
+120.317 -1.595
+120.35 -0.891
+120.383 -1.915
+120.417 -2.429
+120.45 -2.539
+120.483 -2.139
+120.517 -1.943
+120.55 -0.934
+120.583 -0.739
+120.617 -1.558
+120.65 -0.548
+120.683 -0.658
+120.717 0.657
+120.75 -0.163
+120.783 -0.677
+120.817 -1.701
+120.85 -3.130
+120.883 -2.730
+120.917 -2.939
+120.95 -1.320
+120.983 -0.615
+121.017 -1.739
+121.05 -1.035
+121.083 -1.549
+121.117 -1.149
+121.15 -0.139
+121.183 -0.044
+121.217 -1.473
+121.25 -2.392
+121.283 -2.907
+121.317 -2.202
+121.35 -2.207
+121.383 -0.283
+121.417 1.641
+121.45 2.246
+121.483 0.717
+121.517 -1.016
+121.55 -1.935
+121.583 -1.231
+121.617 -2.150
+121.65 -0.935
+121.683 -0.026
+121.717 0.579
+121.75 -0.035
+121.783 1.789
+121.817 0.869
+121.85 -0.050
+121.883 -0.359
+121.917 -0.059
+121.95 -0.774
+121.983 -1.083
+122.017 -0.783
+122.05 -1.498
+122.083 0.326
+122.117 1.136
+122.15 2.350
+122.183 3.160
+122.217 1.836
+122.25 2.036
+122.283 0.507
+122.317 1.926
+122.35 0.602
+122.383 0.802
+122.417 1.307
+122.45 1.202
+122.483 1.302
+122.517 1.807
+122.55 1.397
+122.583 1.802
+122.617 1.393
+122.65 0.578
+122.683 1.388
+122.717 0.573
+122.75 -0.446
+122.783 1.178
+122.817 1.888
+122.85 2.293
+122.883 3.612
+122.917 4.017
+122.95 3.812
+122.983 3.912
+123.017 4.012
+123.05 4.721
+123.083 3.807
+123.117 3.907
+123.15 3.602
+123.183 3.397
+123.217 3.702
+123.25 3.802
+123.283 4.412
+123.317 4.412
+123.35 4.817
+123.383 3.293
+123.417 3.293
+123.45 2.683
+123.483 2.378
+123.517 2.378
+123.55 2.378
+123.583 2.683
+123.617 3.802
+123.65 4.717
+123.683 5.631
+123.717 5.836
+123.75 5.531
+123.783 3.602
+123.817 2.993
+123.85 2.893
+123.883 3.097
+123.917 3.707
+123.95 2.997
+123.983 3.812
+124.017 3.712
+124.05 3.612
+124.083 3.817
+124.117 4.021
+124.15 3.921
+124.183 5.041
+124.217 4.536
+124.25 3.521
+124.283 3.421
+124.317 3.831
+124.35 4.950
+124.383 6.069
+124.417 4.955
+124.45 4.855
+124.483 4.655
+124.517 4.455
+124.55 5.269
+124.583 5.069
+124.617 5.479
+124.65 4.974
+124.683 5.079
+124.717 5.284
+124.75 5.389
+124.783 5.493
+124.817 5.598
+124.85 6.313
+124.883 5.808
+124.917 4.998
+124.95 4.393
+124.983 5.108
+125.017 4.603
+125.05 5.013
+125.083 6.032
+125.117 5.122
+125.15 6.141
+125.183 5.332
+125.217 5.032
+125.25 6.051
+125.283 5.851
+125.317 5.551
+125.35 6.265
+125.383 5.356
+125.417 6.680
+125.45 6.380
+125.483 7.704
+125.517 6.794
+125.55 7.509
+125.583 6.599
+125.617 6.094
+125.65 6.099
+125.683 5.899
+125.717 5.599
+125.75 6.823
+125.783 7.537
+125.817 6.323
+125.85 6.733
+125.883 6.433
+125.917 6.537
+125.95 6.237
+125.983 6.242
+126.017 6.347
+126.05 7.266
+126.083 7.066
+126.117 7.376
+126.15 6.871
+126.183 8.095
+126.217 7.590
+126.25 8.205
+126.283 6.785
+126.317 7.195
+126.35 7.200
+126.383 6.390
+126.417 7.309
+126.45 7.109
+126.483 7.824
+126.517 7.319
+126.55 7.019
+126.583 6.819
+126.617 5.400
+126.65 6.114
+126.683 6.524
+126.717 6.833
+126.75 7.243
+126.783 6.129
+126.817 6.843
+126.85 6.948
+126.883 7.457
+126.917 8.172
+126.95 7.667
+126.983 7.162
+127.017 6.053
+127.05 4.424
+127.083 5.748
+127.117 6.462
+127.15 6.972
+127.183 7.077
+127.217 6.367
+127.25 5.657
+127.283 6.677
+127.317 6.272
+127.35 6.477
+127.383 7.191
+127.417 6.481
+127.45 5.772
+127.483 5.062
+127.517 5.267
+127.55 5.777
+127.583 5.981
+127.617 6.591
+127.65 5.577
+127.683 4.867
+127.717 4.462
+127.75 4.462
+127.783 4.972
+127.817 5.886
+127.85 6.091
+127.883 6.701
+127.917 6.091
+127.95 5.686
+127.983 5.991
+128.017 6.601
+128.05 6.296
+128.083 5.991
+128.117 5.381
+128.15 4.772
+128.183 4.262
+128.217 4.872
+128.25 4.872
+128.283 4.567
+128.317 5.581
+128.35 4.667
+128.383 4.157
+128.417 3.343
+128.45 3.648
+128.483 4.967
+128.517 5.067
+128.55 5.472
+128.583 4.962
+128.617 4.148
+128.65 5.467
+128.683 4.957
+128.717 5.362
+128.75 6.072
+128.783 5.357
+128.817 4.238
+128.85 4.133
+128.883 4.843
+128.917 5.043
+128.95 4.838
+128.983 4.733
+129.017 4.019
+129.05 4.524
+129.083 3.809
+129.117 4.009
+129.15 3.905
+129.183 3.190
+129.217 2.171
+129.25 3.285
+129.283 3.485
+129.317 3.481
+129.35 4.595
+129.383 4.795
+129.417 4.181
+129.45 2.857
+129.483 3.766
+129.517 3.761
+129.55 4.266
+129.583 4.261
+129.617 3.647
+129.65 4.252
+129.683 3.333
+129.717 3.328
+129.75 3.018
+129.783 1.794
+129.817 2.399
+129.85 3.713
+129.883 1.880
+129.917 0.351
+129.95 1.261
+129.983 1.965
+130.017 1.351
+130.05 1.751
+130.083 2.051
+130.117 2.451
+130.15 1.937
+130.183 1.932
+130.217 2.637
+130.25 2.427
+130.283 2.522
+130.317 3.432
+130.35 2.917
+130.383 1.793
+130.417 2.193
+130.45 2.289
+130.483 1.469
+130.517 1.565
+130.55 2.269
+130.583 1.145
+130.617 1.645
+130.65 1.436
+130.683 1.226
+130.717 1.321
+130.75 1.112
+130.783 0.697
+130.817 1.402
+130.85 1.193
+130.883 1.288
+130.917 0.873
+130.95 0.664
+130.983 1.064
+131.017 2.173
+131.05 1.049
+131.083 0.840
+131.117 1.340
+131.15 1.435
+131.183 2.140
+131.217 1.421
+131.25 0.297
+131.283 1.406
+131.317 0.587
+131.35 0.377
+131.383 0.572
+131.417 0.058
+131.45 1.068
+131.483 2.482
+131.517 2.882
+131.55 2.063
+131.583 1.953
+131.617 1.744
+131.65 1.229
+131.683 0.715
+131.717 1.520
+131.75 1.615
+131.783 0.796
+131.817 0.891
+131.85 1.900
+131.883 0.776
+131.917 1.276
+131.95 2.286
+131.983 2.076
+132.017 2.476
+132.05 1.352
+132.083 1.652
+132.117 2.052
+132.15 1.843
+132.183 2.243
+132.217 1.119
+132.25 1.214
+132.283 1.819
+132.317 1.000
+132.35 0.995
+132.383 1.090
+132.417 1.795
+132.45 2.400
+132.483 1.785
+132.517 1.880
+132.55 1.876
+132.583 1.871
+132.617 1.661
+132.65 1.656
+132.683 1.652
+132.717 1.342
+132.75 1.947
+132.783 1.942
+132.817 1.328
+132.85 1.628
+132.883 1.928
+132.917 1.823
+132.95 1.818
+132.983 2.118
+133.017 2.013
+133.05 1.704
+133.083 0.989
+133.117 1.289
+133.15 1.184
+133.183 1.080
+133.217 0.975
+133.25 0.565
+133.283 0.460
+133.317 0.965
+133.35 -0.359
+133.383 0.756
+133.417 0.651
+133.45 0.241
+133.483 0.036
+133.517 0.236
+133.55 -0.273
+133.583 0.841
+133.617 1.246
+133.65 1.346
+133.683 2.156
+133.717 1.341
+133.75 1.441
+133.783 1.236
+133.817 1.641
+133.85 0.727
+133.883 1.741
+133.917 1.841
+133.95 1.232
+133.983 1.332
+134.017 0.722
+134.05 0.517
+134.083 0.517
+134.117 0.517
+134.15 1.127
+134.183 2.346
+134.217 1.432
+134.25 1.432
+134.283 1.736
+134.317 0.822
+134.35 1.332
+134.383 1.636
+134.417 1.232
+134.45 1.841
+134.483 2.351
+134.517 1.946
+134.55 1.236
+134.583 1.441
+134.617 1.341
+134.65 0.632
+134.683 1.751
+134.717 2.260
+134.75 2.465
+134.783 1.960
+134.817 1.556
+134.85 1.660
+134.883 1.765
+134.917 1.056
+134.95 1.160
+134.983 1.875
+135.017 2.894
+135.05 2.084
+135.083 1.275
+135.117 0.670
+135.15 0.470
+135.183 0.880
+135.217 1.494
+135.25 1.599
+135.283 2.518
+135.317 2.523
+135.35 2.323
+135.383 2.328
+135.417 2.332
+135.45 2.032
+135.483 2.342
+135.517 3.261
+135.55 2.861
+135.583 2.256
+135.617 1.956
+135.65 1.252
+135.683 1.256
+135.717 1.771
+135.75 1.980
+135.783 2.290
+135.817 2.500
+135.85 3.014
+135.883 3.224
+135.917 2.214
+135.95 2.119
+135.983 1.719
+136.017 2.233
+136.05 2.648
+136.083 2.248
+136.117 2.457
+136.15 1.652
+136.183 1.862
+136.217 1.362
+136.25 1.776
+136.283 2.291
+136.317 2.096
+136.35 2.205
+136.383 2.620
+136.417 2.120
+136.45 2.229
+136.483 2.034
+136.517 2.144
+136.55 2.863
+136.583 3.277
+136.617 3.387
+136.65 3.192
+136.683 2.897
+136.717 3.616
+136.75 3.625
+136.783 2.821
+136.817 2.625
+136.85 1.721
+136.883 1.425
+136.917 2.145
+136.95 1.849
+136.983 2.264
+137.017 2.883
+137.05 3.502
+137.083 3.512
+137.117 3.826
+137.15 3.936
+137.183 3.945
+137.217 3.345
+137.25 3.660
+137.283 3.974
+137.317 3.984
+137.35 3.993
+137.383 4.308
+137.417 3.708
+137.45 2.803
+137.483 4.032
+137.517 3.737
+137.55 3.441
+137.583 3.146
+137.617 3.461
+137.65 3.980
+137.683 3.989
+137.717 4.304
+137.75 4.009
+137.783 4.018
+137.817 2.809
+137.85 2.818
+137.883 3.337
+137.917 4.566
+137.95 3.661
+137.983 4.890
+138.017 4.900
+138.05 4.605
+138.083 4.919
+138.117 4.929
+138.15 5.853
+138.183 5.862
+138.217 5.162
+138.25 5.477
+138.283 4.572
+138.317 3.972
+138.35 5.301
+138.383 5.615
+138.417 4.710
+138.45 4.415
+138.483 4.425
+138.517 4.434
+138.55 4.444
+138.583 4.249
+138.617 5.477
+138.65 4.877
+138.683 4.582
+138.717 4.692
+138.75 4.092
+138.783 4.201
+138.817 3.906
+138.85 4.321
+138.883 3.416
+138.917 2.916
+138.95 3.330
+138.983 3.035
+139.017 3.449
+139.05 2.949
+139.083 3.059
+139.117 3.169
+139.15 3.278
+139.183 3.388
+139.217 3.497
+139.25 3.912
+139.283 4.021
+139.317 3.621
+139.35 3.426
+139.383 3.536
+139.417 3.745
+139.45 3.245
+139.483 3.760
+139.517 2.650
+139.55 2.250
+139.583 1.850
+139.617 1.450
+139.65 2.574
+139.683 1.869
+139.717 2.993
+139.75 2.289
+139.783 2.193
+139.817 2.403
+139.85 2.408
+139.883 2.313
+139.917 1.913
+139.95 1.308
+139.983 1.008
+140.017 2.132
+140.05 1.222
+140.083 1.532
+140.117 0.927
+140.15 0.322
+140.183 0.937
+140.217 0.637
+140.25 0.337
+140.283 1.051
+140.317 1.056
+140.35 0.756
+140.383 0.861
+140.417 0.661
+140.45 1.580
+140.483 0.770
+140.517 1.180
+140.55 1.589
+140.583 1.085
+140.617 0.885
+140.65 1.904
+140.683 1.094
+140.717 0.689
+140.75 0.185
+140.783 0.389
+140.95 -0.311
+140.983 -0.106
+141.017 0.404
+141.05 0.099
+141.083 1.523
+141.117 0.813
+141.25 0.309
+141.283 1.223
+141.317 0.918
+141.35 0.918
+141.383 0.918
+141.517 0.309
+141.55 0.104
+141.583 -0.201
+141.617 0.509
+141.65 -0.101
+141.683 -0.611
+141.717 1.623
+141.75 1.113
+141.783 1.113
+141.817 1.213
+141.85 1.109
+141.883 0.294
+141.917 1.004
+141.95 2.018
+141.983 2.218
+142.017 1.404
+142.05 0.994
+142.083 0.789
+142.117 0.380
+142.15 0.885
+142.183 1.085
+142.217 0.980
+142.25 -0.039
+142.283 0.161
+142.317 0.056
+142.35 0.865
+142.383 1.065
+142.417 0.451
+142.45 0.956
diff --git a/doc/examples/tsunami/hmax-detail.gfv b/doc/examples/tsunami/hmax-detail.gfv
new file mode 100644
index 0000000..6fe747f
--- /dev/null
+++ b/doc/examples/tsunami/hmax-detail.gfv
@@ -0,0 +1,47 @@
+# GfsView 2D
+View {
+  tx = -0.00622686 ty = 0.033413
+  sx = 1 sy = 1 sz = 1
+  q0 = 0 q1 = 0 q2 = 0 q3 = 1
+  fov = 3.66678
+  r = 1 g = 1 b = 1
+  res = 1
+  lc = 0.001
+  reactivity = 0.1
+}
+Linear {
+  r = 1 g = 1 b = 1
+  shading = Constant
+  maxlevel = -1
+  font_size = 1
+  raster_font = 1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} P > 0.01 ? Pmax : NODATA {
+  amin = 0 min = -9.23266e-07
+  amax = 0 max = 8
+  cmap = Jet
+} 0 {
+  reversed = 0
+  use_scalar = 1
+}
+Isoline {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+  font_size = 1
+  raster_font = 1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} P > 0.01 ? Pmax : NODATA {
+  amin = 1
+  amax = 1
+  cmap = Jet
+} 0 {
+  reversed = 0
+  use_scalar = 1
+} {
+  n = 0 levels = 1,2,3,4,5,6,7,8,9,10
+}
diff --git a/doc/examples/tsunami/hmax.gfv b/doc/examples/tsunami/hmax.gfv
new file mode 100644
index 0000000..83b1f97
--- /dev/null
+++ b/doc/examples/tsunami/hmax.gfv
@@ -0,0 +1,47 @@
+# GfsView 2D
+View {
+  tx = 0.16753 ty = 0.0144384
+  sx = 1 sy = 1 sz = 1
+  q0 = 0 q1 = 0 q2 = 0 q3 = 1
+  fov = 14.4012
+  r = 1 g = 1 b = 1
+  res = 1
+  lc = 0.001
+  reactivity = 0.1
+}
+Linear {
+  r = 1 g = 1 b = 1
+  shading = Constant
+  maxlevel = -1
+  font_size = 1
+  raster_font = 1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} P > 0.01 ? Pmax : NODATA {
+  amin = 0 min = -9.23266e-07
+  amax = 0 max = 5
+  cmap = Jet
+} 0 {
+  reversed = 0
+  use_scalar = 1
+}
+Isoline {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+  font_size = 1
+  raster_font = 1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} P > 0.01 ? Pmax : NODATA {
+  amin = 1
+  amax = 1
+  cmap = Jet
+} 0 {
+  reversed = 0
+  use_scalar = 1
+} {
+  n = 0 levels = 1,2,3,4,5,6,7,8,9,10
+}
diff --git a/doc/examples/tsunami/jason.xy b/doc/examples/tsunami/jason.xy
new file mode 100644
index 0000000..8289c82
--- /dev/null
+++ b/doc/examples/tsunami/jason.xy
@@ -0,0 +1,259 @@
+84.2567368 -5.3499999 0
+84.3860397 -5. 0
+84.441452 -4.8499999 0
+84.4710007 -4.76999998 0
+84.5485916 -4.55999994 0
+84.6446228 -4.30000019 0
+84.7222214 -4.09000015 0
+84.7961121 -3.8900001 0
+84.8293839 -3.79999995 0
+84.8700409 -3.69000006 0
+84.9439621 -3.49000001 0
+84.9920197 -3.3599999 0
+85.069664 -3.1500001 0
+85.0918579 -3.08999991 0
+85.1177368 -3.01999998 0
+85.1362305 -2.97000003 0
+85.1658249 -2.8900001 0
+85.1880188 -2.82999992 0
+85.2176056 -2.75 0
+85.2435074 -2.68000007 0
+85.3175049 -2.48000002 0
+85.3434067 -2.41000009 0
+85.3989258 -2.25999999 0
+85.4174347 -2.21000004 0
+85.4877777 -2.01999998 0
+85.5396118 -1.88 0
+85.613678 -1.67999995 0
+85.6396103 -1.61000001 0
+85.6655426 -1.53999996 0
+85.713707 -1.40999997 0
+85.7396393 -1.34000003 0
+85.7655792 -1.26999998 0
+85.8137665 -1.13999999 0
+85.8656616 -1. 0
+85.8841934 -0.949999988 0
+85.9138565 -0.870000005 0
+85.9398117 -0.800000012 0
+85.9620514 -0.74000001 0
+86.0362167 -0.540000021 0
+86.0881348 -0.400000006 0
+86.1141052 -0.330000013 0
+86.1363602 -0.270000011 0
+86.1474915 -0.239999995 0
+86.1675186 -0.186000004 0
+86.1897812 -0.126000002 0
+86.210556 -0.0700000003 0
+86.2365265 0. 0
+86.2624969 0.0700000003 0
+86.2862396 0.134000003 0
+86.2995987 0.170000002 0
+86.3367081 0.270000011 0
+86.366394 0.349999994 0
+86.3849487 0.400000006 0
+86.4109192 0.469999999 0
+86.4517441 0.579999983 0
+86.4777145 0.649999976 0
+86.5185394 0.75999999 0
+86.5630646 0.879999995 0
+86.5853195 0.939999998 0
+86.6521149 1.12 0
+86.6743851 1.17999995 0
+86.69664 1.24000001 0
+86.7374573 1.35000002 0
+86.7856827 1.48000002 0
+86.8301926 1.60000002 0
+86.8672867 1.70000005 0
+86.8858261 1.75 0
+86.9043732 1.79999995 0
+86.941452 1.89999998 0
+86.9822388 2.00999999 0
+87.0230103 2.11999989 0
+87.0489578 2.19000006 0
+87.0711975 2.25 0
+87.1119537 2.3599999 0
+87.1341858 2.42000008 0
+87.1601181 2.49000001 0
+87.1786346 2.53999996 0
+87.2008591 2.5999999 0
+87.2378845 2.70000005 0
+87.2897034 2.83999991 0
+87.3340988 2.96000004 0
+87.3562927 3.01999998 0
+87.3784943 3.07999992 0
+87.4450378 3.25999999 0
+87.5078506 3.43000007 0
+87.5337067 3.5 0
+87.5521698 3.54999995 0
+87.5743179 3.6099999 0
+87.6186066 3.73000002 0
+87.6407471 3.78999996 0
+87.7070999 3.97000003 0
+87.7292099 4.03000021 0
+87.773407 4.1500001 0
+87.8175812 4.26999998 0
+87.8396606 4.32999992 0
+87.8617325 4.38999987 0
+87.9242172 4.55999994 0
+87.9683075 4.67999983 0
+87.9903107 4.73999977 0
+88.0123367 4.80000019 0
+88.0343475 4.86000013 0
+88.0563354 4.92000008 0
+88.078331 4.98000002 0
+88.1003265 5.03999996 0
+88.1186295 5.09000015 0
+88.1662216 5.21999979 0
+88.2100983 5.34000015 0
+88.2320251 5.4000001 0
+88.2685623 5.5 0
+88.2977524 5.57999992 0
+88.3159943 5.63000011 0
+88.337883 5.69000006 0
+88.3597488 5.75 0
+88.3816071 5.80999994 0
+88.4034576 5.86999989 0
+88.4216614 5.92000008 0
+88.4507599 6. 0
+88.4653168 6.03999996 0
+88.4907532 6.11000013 0
+88.5125504 6.17000008 0
+88.5307083 6.21999979 0
+88.5778656 6.3499999 0
+88.603241 6.42000008 0
+88.6358414 6.51000023 0
+88.6539307 6.55999994 0
+88.7009659 6.69000006 0
+88.7334824 6.78000021 0
+88.7623596 6.86000013 0
+88.7948151 6.94999981 0
+88.8272629 7.03999996 0
+88.8596725 7.13000011 0
+88.8884583 7.21000004 0
+88.9208145 7.30000019 0
+88.9531174 7.38999987 0
+88.9854126 7.48000002 0
+89.0176849 7.57000017 0
+89.0463257 7.6500001 0
+89.0821228 7.75 0
+89.1107101 7.82999992 0
+89.1428604 7.92000008 0
+89.1749573 8.01000023 0
+89.2070465 8.10000038 0
+89.2355423 8.18000031 0
+89.2604294 8.25 0
+89.29953 8.35999966 0
+89.3314896 8.44999981 0
+89.3953171 8.63000011 0
+89.4872742 8.89000034 0
+89.5261078 9. 0
+89.5824585 9.15999985 0
+89.6141434 9.25 0
+89.6422729 9.32999992 0
+89.6738968 9.42000008 0
+89.7054749 9.51000023 0
+89.73703 9.60000038 0
+89.7685471 9.68999958 0
+89.7965469 9.77000046 0
+89.8280029 9.85999966 0
+89.859436 9.94999981 0
+89.9222183 10.1300001 0
+89.9500732 10.21 0
+89.9813843 10.3000002 0
+90.0161591 10.3999996 0
+90.0439529 10.4799995 0
+90.0752029 10.5699997 0
+90.1063995 10.6599998 0
+90.1341324 10.7399998 0
+90.1652908 10.8299999 0
+90.1791306 10.8699999 0
+90.1964264 10.9200001 0
+90.2240906 11. 0
+90.2586365 11.1000004 0
+90.2862549 11.1800003 0
+90.3173218 11.2700005 0
+90.3483353 11.3599997 0
+90.3793411 11.4499998 0
+90.4103317 11.54 0
+90.4412994 11.6300001 0
+90.4688263 11.71 0
+90.4997635 11.8000002 0
+90.5306778 11.8900003 0
+90.5684586 12. 0
+90.5924988 12.0699997 0
+90.6199341 12.1499996 0
+90.6508102 12.2399998 0
+90.6816635 12.3299999 0
+90.7125168 12.4200001 0
+90.7742081 12.6000004 0
+90.8084641 12.6999998 0
+90.8632584 12.8599997 0
+90.8940735 12.9499998 0
+90.9214935 13.0299997 0
+90.9523163 13.1199999 0
+90.983139 13.21 0
+91.0139618 13.3000002 0
+91.0448074 13.3900003 0
+91.0756378 13.4799995 0
+91.1030655 13.5600004 0
+91.1339111 13.6499996 0
+91.1647873 13.7399998 0
+91.1922379 13.8199997 0
+91.2265701 13.9200001 0
+91.2540283 14. 0
+91.2883987 14.1000004 0
+91.315918 14.1800003 0
+91.3468857 14.2700005 0
+91.377861 14.3599997 0
+91.4364624 14.5299997 0
+91.4951553 14.6999998 0
+91.5643616 14.8999996 0
+91.6510849 15.1499996 0
+91.6823959 15.2399998 0
+91.7137299 15.3299999 0
+91.7485962 15.4300003 0
+91.8044891 15.5900002 0
+91.867569 15.7700005 0
+91.8991852 15.8599997 0
+91.9308548 15.9499998 0
+92.0226212 16.2099991 0
+92.054512 16.2999992 0
+92.1148987 16.4699993 0
+92.1469498 16.5599995 0
+92.1790619 16.6499996 0
+92.2255707 16.7800007 0
+92.2722244 16.9099998 0
+92.3046036 17. 0
+92.3406525 17.1000004 0
+92.3695602 17.1800003 0
+92.4021683 17.2700005 0
+92.4311752 17.3500004 0
+92.4966888 17.5300007 0
+92.5295639 17.6200008 0
+92.5625 17.7099991 0
+92.5955124 17.7999992 0
+92.6322784 17.8999996 0
+92.6580734 17.9699993 0
+92.6912918 18.0599995 0
+92.7246017 18.1499996 0
+92.7579651 18.2399998 0
+92.7914047 18.3299999 0
+92.8547745 18.5 0
+92.8884201 18.5900002 0
+92.922142 18.6800003 0
+92.955925 18.7700005 0
+92.9860001 18.8500004 0
+93.0198975 18.9400005 0
+93.0425339 19. 0
+93.0538712 19.0300007 0
+93.0879059 19.1200008 0
+93.1181946 19.2000008 0
+93.1371536 19.25 0
+93.1865005 19.3799992 0
+93.205513 19.4300003 0
+93.2207336 19.4699993 0
+93.2511978 19.5499992 0
+93.2893143 19.6499996 0
+93.3236771 19.7399998 0
+93.3542328 19.8199997 0
+93.3886414 19.9099998 0
diff --git a/doc/examples/tsunami/jasonres.txt b/doc/examples/tsunami/jasonres.txt
new file mode 100644
index 0000000..c3f5143
--- /dev/null
+++ b/doc/examples/tsunami/jasonres.txt
@@ -0,0 +1,260 @@
+#  long.        lat       time       ( cycle 109 - cycle 109)
+  84.2567368 -5.3499999  6890.62598  0.
+  84.3860397 -5.  6897.82031  0.0445999987
+  84.441452 -4.8499999  6900.90332  0.0839999989
+  84.4710007 -4.76999998  6902.54785  0.217000008
+  84.5485916 -4.55999994  6906.86426  0.313199997
+  84.6446228 -4.30000019  6912.20898  0.502000034
+  84.7222214 -4.09000015  6916.52637  0.628199995
+  84.7961121 -3.8900001  6920.6377  0.568000019
+  84.8293839 -3.79999995  6922.4873  0.699999988
+  84.8700409 -3.69000006  6924.74805  0.349000007
+  84.9439621 -3.49000001  6928.85938  0.156000003
+  84.9920197 -3.3599999  6931.53223  0.055999998
+  85.069664 -3.1500001  6935.84863  0.330000013
+  85.0918579 -3.08999991  6937.08203  0.471199989
+  85.1177368 -3.01999998  6938.52148  0.513999999
+  85.1362305 -2.97000003  6939.54883  0.701999962
+  85.1658249 -2.8900001  6941.19336  0.616999984
+  85.1880188 -2.82999992  6942.42676  0.600000024
+  85.2176056 -2.75  6944.07129  0.242999986
+  85.2435074 -2.68000007  6945.50977  0.189999998
+  85.3175049 -2.48000002  6949.62109  0.167999998
+  85.3434067 -2.41000009  6951.06055  0.0643000007
+  85.3989258 -2.25999999  6954.14355 -0.100000001
+  85.4174347 -2.21000004  6955.17188 -0.201000005
+  85.4877777 -2.01999998  6959.07715 -0.182000011
+  85.5396118 -1.88  6961.95508 -0.213
+  85.613678 -1.67999995  6966.06641 -0.123000003
+  85.6396103 -1.61000001  6967.50488 -0.134000003
+  85.6655426 -1.53999996  6968.94434 -0.268000007
+  85.713707 -1.40999997  6971.61621 -0.39200002
+  85.7396393 -1.34000003  6973.05566 -0.469000012
+  85.7655792 -1.26999998  6974.49414 -0.45599997
+  85.8137665 -1.13999999  6977.16699 -0.310000002
+  85.8656616 -1.  6980.04492 -0.422999978
+  85.8841934 -0.949999988  6981.07227 -0.52700001
+  85.9138565 -0.870000005  6982.7168 -0.428000003
+  85.9398117 -0.800000012  6984.15527 -0.275000006
+  85.9620514 -0.74000001  6985.38867 -0.180000007
+  86.0362167 -0.540000021  6989.5 -0.212000012
+  86.0881348 -0.400000006  6992.37793 -0.160599992
+  86.1141052 -0.330000013  6993.81738  0.055999998
+  86.1363602 -0.270000011  6995.05078  0.111000001
+  86.1474915 -0.239999995  6995.66699  0.113000005
+  86.1675186 -0.186000004  6996.77637  0.0670000017
+  86.1897812 -0.126000002  6998.00977  0.100000001
+  86.210556 -0.0700000003  6999.16211  0.121000007
+  86.2365265  0.  7000.60059 -0.324599981
+  86.2624969  0.0700000003  7002.03906 -0.225699991
+  86.2862396  0.134000003  7003.35449 -0.5
+  86.2995987  0.170000002  7004.09473 -0.379999995
+  86.3367081  0.270000011  7006.15039 -0.181000009
+  86.366394  0.349999994  7007.79492 -0.0799999982
+  86.3849487  0.400000006  7008.82324 -0.186000004
+  86.4109192  0.469999999  7010.26172 -0.360000014
+  86.4517441  0.579999983  7012.52344 -0.0359999985
+  86.4777145  0.649999976  7013.96191 -0.209999993
+  86.5185394  0.75999999  7016.22363 -0.419999987
+  86.5630646  0.879999995  7018.69043 -0.100000001
+  86.5853195  0.939999998  7019.92383  0.189999998
+  86.6521149  1.12  7023.62305 -0.0299999993
+  86.6743851  1.17999995  7024.85645  0.209999993
+  86.69664  1.24000001  7026.08984  0.409000009
+  86.7374573  1.35000002  7028.35156  0.239999995
+  86.7856827  1.48000002  7031.02344  0.0889999941
+  86.8301926  1.60000002  7033.49023  0.312000006
+  86.8672867  1.70000005  7035.5459  0.055999998
+  86.8858261  1.75  7036.57422  0.300300002
+  86.9043732  1.79999995  7037.60156  0.386999995
+  86.941452  1.89999998  7039.65723  0.201000005
+  86.9822388  2.00999999  7041.91797  0.539000034
+  87.0230103  2.11999989  7044.17969  0.396300018
+  87.0489578  2.19000006  7045.61816  0.26700002
+  87.0711975  2.25  7046.85156  0.518999994
+  87.1119537  2.3599999  7049.1123  0.0120000001
+  87.1341858  2.42000008  7050.3457  0.134000003
+  87.1601181  2.49000001  7051.78516  0.513999999
+  87.1786346  2.53999996  7052.8125  0.417999983
+  87.2008591  2.5999999  7054.0459  0.
+  87.2378845  2.70000005  7056.10156  0.167999998
+  87.2897034  2.83999991  7058.97949  0.492000014
+  87.3340988  2.96000004  7061.44531  0.291000009
+  87.3562927  3.01999998  7062.67871 -0.0790000036
+  87.3784943  3.07999992  7063.91211  0.35799998
+  87.4450378  3.25999999  7067.6123  0.504000008
+  87.5078506  3.43000007  7071.10742 -0.123000003
+  87.5337067  3.5  7072.5459  0.157000005
+  87.5521698  3.54999995  7073.57422  0.416999996
+  87.5743179  3.6099999  7074.80762  0.0340000018
+  87.6186066  3.73000002  7077.27441  0.100000001
+  87.6407471  3.78999996  7078.50781  0.159999996
+  87.7070999  3.97000003  7082.20703 -0.223999992
+  87.7292099  4.03000021  7083.44043 -0.0670000017
+  87.773407  4.1500001  7085.90723 -0.0109999999
+  87.8175812  4.26999998  7088.37402 -0.111999996
+  87.8396606  4.32999992  7089.60742 -0.023
+  87.8617325  4.38999987  7090.84082 -0.0450000018
+  87.9242172  4.55999994  7094.33594 -0.352999985
+  87.9683075  4.67999983  7096.80273  0.167700008
+  87.9903107  4.73999977  7098.03613 -0.190400004
+  88.0123367  4.80000019  7099.26855 -0.537
+  88.0343475  4.86000013  7100.50195 -0.202999994
+  88.0563354  4.92000008  7101.73535 -0.30399999
+  88.078331  4.98000002  7102.96875 -0.310000002
+  88.1003265  5.03999996  7104.20215 -0.0340000018
+  88.1186295  5.09000015  7105.23047 -0.879999995
+  88.1662216  5.21999979  7107.90234 -0.460000008
+  88.2100983  5.34000015  7110.36914 -0.219999999
+  88.2320251  5.4000001  7111.60254  0.201000005
+  88.2685623  5.5  7113.6582 -0.157000005
+  88.2977524  5.57999992  7115.30273 -0.469000012
+  88.3159943  5.63000011  7116.33105 -0.167500004
+  88.337883  5.69000006  7117.56445  0.111999996
+  88.3597488  5.75  7118.79688 -0.178700015
+  88.3816071  5.80999994  7120.03027 -0.529999971
+  88.4034576  5.86999989  7121.26367 -0.178700015
+  88.4216614  5.92000008  7122.29199 -0.256300002
+  88.4507599  6.  7123.93652 -0.430000007
+  88.4653168  6.03999996  7124.75879 -0.347000003
+  88.4907532  6.11000013  7126.19727 -0.189999998
+  88.5125504  6.17000008  7127.43066 -0.212000012
+  88.5307083  6.21999979  7128.45898 -0.291000009
+  88.5778656  6.3499999  7131.13086 -0.391600013
+  88.603241  6.42000008  7132.57031 -0.666999996
+  88.6358414  6.51000023  7134.41992 -0.532999992
+  88.6539307  6.55999994  7135.44824 -0.449999988
+  88.7009659  6.69000006  7138.12012 -0.400000006
+  88.7334824  6.78000021  7139.96973 -0.200000003
+  88.7623596  6.86000013  7141.61426 -0.400000006
+  88.7948151  6.94999981  7143.46484 -0.466300011
+  88.8272629  7.03999996  7145.31445 -0.567000031
+  88.8596725  7.13000011  7147.16504 -0.51700002
+  88.8884583  7.21000004  7148.80957 -0.400000006
+  88.9208145  7.30000019  7150.65918 -0.416299999
+  88.9531174  7.38999987  7152.50977 -0.232999995
+  88.9854126  7.48000002  7154.35938 -0.366699994
+  89.0176849  7.57000017  7156.20996 -0.48299998
+  89.0463257  7.6500001  7157.85449 -0.316000015
+  89.0821228  7.75  7159.90918 -0.334000021
+  89.1107101  7.82999992  7161.55371 -0.182999998
+  89.1428604  7.92000008  7163.4043 -0.200000003
+  89.1749573  8.01000023  7165.25391 -0.133699998
+  89.2070465  8.10000038  7167.10449 -0.333700001
+  89.2355423  8.18000031  7168.74902 -0.221200004
+  89.2604294  8.25  7170.1875 -0.283300012
+  89.29953  8.35999966  7172.44922 -0.25
+  89.3314896  8.44999981  7174.29883 -0.287
+  89.3953171  8.63000011  7177.99902 -0.25
+  89.4872742  8.89000034  7183.34375 -0.233999997
+  89.5261078  9.  7185.60449 -0.116700001
+  89.5824585  9.15999985  7188.89355 -0.25
+  89.6141434  9.25  7190.74414 -0.182999998
+  89.6422729  9.32999992  7192.38867 -0.0500000007
+  89.6738968  9.42000008  7194.23828 -0.183300003
+  89.7054749  9.51000023  7196.08887 -0.167000011
+  89.73703  9.60000038  7197.93848 -0.26700002
+  89.7685471  9.68999958  7199.78809 -0.282999992
+  89.7965469  9.77000046  7201.43262 -0.25
+  89.8280029  9.85999966  7203.2832 -0.317000002
+  89.859436  9.94999981  7205.13281 -0.25
+  89.9222183  10.1300001  7208.83301 -0.25
+  89.9500732  10.21  7210.47754 -0.167000011
+  89.9813843  10.3000002  7212.32715 -0.116999999
+  90.0161591  10.3999996  7214.38281 -0.184
+  90.0439529  10.4799995  7216.02734 -0.25
+  90.0752029  10.5699997  7217.87695 -0.167000011
+  90.1063995  10.6599998  7219.72656 -0.100000001
+  90.1341324  10.7399998  7221.37109 -0.183300003
+  90.1652908  10.8299999  7223.22168 -0.200000003
+  90.1791306  10.8699999  7224.04395 -0.184
+  90.1964264  10.9200001  7225.07129 -0.317000002
+  90.2240906  11.  7226.71582 -0.116999999
+  90.2586365  11.1000004  7228.77148 -0.166299999
+  90.2862549  11.1800003  7230.41602 -0.0663000047
+  90.3173218  11.2700005  7232.2666 -0.066700004
+  90.3483353  11.3599997  7234.11621 -0.0670000017
+  90.3793411  11.4499998  7235.9668 -0.134000003
+  90.4103317  11.54  7237.81641 -0.183300003
+  90.4412994  11.6300001  7239.66602 -0.0837000012
+  90.4688263  11.71  7241.31055 -0.132200003
+  90.4997635  11.8000002  7243.16113 -0.266600013
+  90.5306778  11.8900003  7245.01074 -0.316599995
+  90.5684586  12.  7247.27246 -0.313300014
+  90.5924988  12.0699997  7248.71094 -0.2333
+  90.6199341  12.1499996  7250.35547 -0.2667
+  90.6508102  12.2399998  7252.20605 -0.25030002
+  90.6816635  12.3299999  7254.05566 -0.2333
+  90.7125168  12.4200001  7255.90527 -0.200000003
+  90.7742081  12.6000004  7259.60547 -0.300300002
+  90.8084641  12.6999998  7261.66113 -0.184
+  90.8632584  12.8599997  7264.9502 -0.150000006
+  90.8940735  12.9499998  7266.80078 -0.216299996
+  90.9214935  13.0299997  7268.44531 -0.300300002
+  90.9523163  13.1199999  7270.29492 -0.333300024
+  90.983139  13.21  7272.14551 -0.180000007
+  91.0139618  13.3000002  7273.99512 -0.100000001
+  91.0448074  13.3900003  7275.8457 -0.0659999996
+  91.0756378  13.4799995  7277.69531  0.0503000021
+  91.1030655  13.5600004  7279.33984  0.116999999
+  91.1339111  13.6499996  7281.18945  0.0500000007
+  91.1647873  13.7399998  7283.04004  0.0833000019
+  91.1922379  13.8199997  7284.68457  0.0340000018
+  91.2265701  13.9200001  7286.74023  0.0170000009
+  91.2540283  14.  7288.38477  0.134000003
+  91.2883987  14.1000004  7290.44043  0.184
+  91.315918  14.1800003  7292.08496 -0.0500000007
+  91.3468857  14.2700005  7293.93457  1.49729999E-06
+  91.377861  14.3599997  7295.78418  0.0670000017
+  91.4364624  14.5299997  7299.2793  0.0839999989
+  91.4951553  14.6999998  7302.77344  0.100000001
+  91.5643616  14.8999996  7306.88477  0.0830000043
+  91.6510849  15.1499996  7312.02441  0.0654999986
+  91.6823959  15.2399998  7313.87402  0.0500000007
+  91.7137299  15.3299999  7315.72363  0.0332999974
+  91.7485962  15.4300003  7317.7793  0.0833000019
+  91.8044891  15.5900002  7321.06836 -0.0665999949
+  91.867569  15.7700005  7324.76855  0.0500000007
+  91.8991852  15.8599997  7326.61914  0.0500000007
+  91.9308548  15.9499998  7328.46875  0.100000001
+  92.0226212  16.2099991  7333.81348 -0.0332999974
+  92.054512  16.2999992  7335.66309 -0.0500000007
+  92.1148987  16.4699993  7339.1582 -0.0837000012
+  92.1469498  16.5599995  7341.00781 -0.166600004
+  92.1790619  16.6499996  7342.8584 -0.0500000007
+  92.2255707  16.7800007  7345.53027 -0.25
+  92.2722244  16.9099998  7348.20312 -0.0670000017
+  92.3046036  17.  7350.05273 -0.134000003
+  92.3406525  17.1000004  7352.1084 -0.0503000021
+  92.3695602  17.1800003  7353.75293  0.0837000012
+  92.4021683  17.2700005  7355.60254 -0.133300006
+  92.4311752  17.3500004  7357.24707  0.0670000017
+  92.4966888  17.5300007  7360.94727  0.166600004
+  92.5295639  17.6200008  7362.79688  0.166700006
+  92.5625  17.7099991  7364.64746 -0.0833000019
+  92.5955124  17.7999992  7366.49707  0.0500000007
+  92.6322784  17.8999996  7368.55273  0.100000001
+  92.6580734  17.9699993  7369.99121  0.25
+  92.6912918  18.0599995  7371.8418  0.0833000019
+  92.7246017  18.1499996  7373.69141  0.133300006
+  92.7579651  18.2399998  7375.54102  0.133300006
+  92.7914047  18.3299999  7377.3916  0.150000006
+  92.8547745  18.5  7380.88574  0.116999999
+  92.8884201  18.5900002  7382.73633  0.249699995
+  92.922142  18.6800003  7384.58594  0.217000008
+  92.955925  18.7700005  7386.43652  0.25
+  92.9860001  18.8500004  7388.08105  0.334000021
+  93.0198975  18.9400005  7389.93066  0.5
+  93.0425339  19.  7391.16406  0.529999971
+  93.0538712  19.0300007  7391.78125  0.283300012
+  93.0879059  19.1200008  7393.63086  0.116999999
+  93.1181946  19.2000008  7395.27539  0.370000005
+  93.1371536  19.25  7396.30273  0.
+  93.1865005  19.3799992  7398.97559  0.182999998
+  93.205513  19.4300003  7400.00293  0.100000001
+  93.2207336  19.4699993  7400.8252  0.0500000007
+  93.2511978  19.5499992  7402.46973  0.107000001
+  93.2893143  19.6499996  7404.52539  0.0500000007
+  93.3236771  19.7399998  7406.37598  0.182999998
+  93.3542328  19.8199997  7408.02051  0.316000015
+  93.3886414  19.9099998  7409.87012  0.303000003
diff --git a/doc/examples/tsunami/level.gfv b/doc/examples/tsunami/level.gfv
new file mode 100644
index 0000000..2b8100b
--- /dev/null
+++ b/doc/examples/tsunami/level.gfv
@@ -0,0 +1,36 @@
+# GfsView 2D
+View {
+  tx = 0.00158982 ty = 0.0784271
+  sx = 1 sy = 1 sz = 1
+  q0 = 0 q1 = 0 q2 = 0 q3 = 1
+  fov = 19.6736
+  r = 1 g = 1 b = 1
+  res = 1
+  lc = 0.001
+  reactivity = 0.1
+}
+Squares {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+  font_size = 1
+  raster_font = 1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} P > 0.01 ? Level : NODATA {
+  amin = 1
+  amax = 1
+  cmap = Jet
+}
+Label {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = 6
+  font_size = 2.3
+  raster_font = 1
+} {
+  x = 72.678 y = 23.2591 z = 0
+  label = "t = %5.0f s"
+  symbol = 0
+}
diff --git a/doc/examples/tsunami/maleres.txt b/doc/examples/tsunami/maleres.txt
new file mode 100644
index 0000000..f2e9912
--- /dev/null
+++ b/doc/examples/tsunami/maleres.txt
@@ -0,0 +1,2495 @@
+-24.9833 1.210
+-24.9167 1.410
+-24.85 1.400
+-24.7833 1.086
+-24.7167 1.381
+-24.65 0.662
+-24.5833 1.162
+-24.5167 1.052
+-24.45 0.638
+-24.3833 1.038
+-24.3167 1.133
+-24.25 0.924
+-24.1833 1.224
+-24.1167 1.624
+-24.05 1.619
+-23.9833 1.919
+-23.9167 1.509
+-23.85 1.404
+-23.7833 1.300
+-23.7167 1.195
+-23.65 0.990
+-23.5833 1.090
+-23.5167 1.190
+-23.45 0.580
+-23.3833 0.885
+-23.3167 0.885
+-23.25 0.580
+-23.1833 0.480
+-23.1167 0.075
+-23.05 0.280
+-22.9833 -0.225
+-22.9167 -0.425
+-22.85 -0.015
+-22.7833 -0.215
+-22.7167 0.195
+-22.65 -0.105
+-22.5833 -0.100
+-22.5167 -0.096
+-22.45 -0.396
+-22.3833 -0.086
+-22.3167 -0.181
+-22.25 -0.581
+-22.1833 -0.372
+-22.1167 -0.772
+-22.05 -0.257
+-21.9833 0.257
+-21.9167 0.062
+-21.85 0.272
+-21.7833 0.076
+-21.7167 0.186
+-21.65 -0.314
+-21.5833 -0.409
+-21.5167 -0.300
+-21.45 0.115
+-21.3833 -0.080
+-21.3167 -0.276
+-21.25 0.039
+-21.1833 0.148
+-21.1167 -0.047
+-21.05 0.368
+-20.9833 -0.132
+-20.9167 -0.328
+-20.85 -0.523
+-20.7833 -0.208
+-20.7167 -0.708
+-20.65 0.011
+-20.5833 -0.184
+-20.5167 -0.075
+-20.45 0.035
+-20.3833 -0.160
+-20.3167 -0.356
+-20.25 -0.146
+-20.1833 0.268
+-20.1167 0.378
+-20.05 0.792
+-19.9833 0.697
+-19.9167 0.502
+-19.85 1.321
+-19.7833 1.226
+-19.7167 1.436
+-19.65 1.545
+-19.5833 1.145
+-19.5167 1.150
+-19.45 1.055
+-19.3833 0.960
+-19.3167 1.574
+-19.25 0.869
+-19.1833 0.874
+-19.1167 1.184
+-19.05 1.188
+-18.9833 1.598
+-18.9167 1.298
+-18.85 1.403
+-18.7833 1.812
+-18.7167 1.612
+-18.65 1.108
+-18.5833 2.227
+-18.5167 2.027
+-18.45 1.927
+-18.3833 1.827
+-18.3167 1.827
+-18.25 1.422
+-18.1833 1.422
+-18.1167 1.727
+-18.05 2.132
+-17.9833 1.827
+-17.9167 1.927
+-17.85 1.822
+-17.7833 2.227
+-17.7167 1.817
+-17.65 1.712
+-17.5833 1.303
+-17.5167 1.298
+-17.45 1.293
+-17.3833 1.288
+-17.3167 1.284
+-17.25 1.379
+-17.1833 1.474
+-17.1167 1.264
+-17.05 1.764
+-16.9833 1.350
+-16.9167 1.240
+-16.85 0.826
+-16.7833 1.731
+-16.7167 1.416
+-16.65 1.407
+-16.5833 1.397
+-16.5167 1.183
+-16.45 1.578
+-16.3833 1.364
+-16.3167 0.944
+-16.25 1.035
+-16.1833 1.530
+-16.1167 1.416
+-16.05 1.401
+-15.9833 1.592
+-15.9167 1.577
+-15.85 1.258
+-15.7833 1.853
+-15.7167 0.924
+-15.65 2.129
+-15.5833 2.215
+-15.5167 2.505
+-15.45 2.286
+-15.3833 2.676
+-15.3167 2.457
+-15.25 1.933
+-15.1833 2.324
+-15.1167 2.104
+-15.05 2.800
+-14.9833 2.580
+-14.9167 2.766
+-14.85 2.851
+-14.7833 2.632
+-14.7167 2.718
+-14.65 3.108
+-14.5833 2.684
+-14.5167 2.465
+-14.45 3.465
+-14.3833 3.551
+-14.3167 2.927
+-14.25 3.622
+-14.1833 3.403
+-14.1167 3.388
+-14.05 3.474
+-13.9833 3.764
+-13.9167 3.445
+-13.85 3.735
+-13.7833 3.721
+-13.7167 4.216
+-13.65 3.797
+-13.5833 3.683
+-13.5167 4.178
+-13.45 3.759
+-13.3833 3.849
+-13.3167 4.244
+-13.25 4.030
+-13.1833 4.425
+-13.1167 4.111
+-13.05 4.101
+-12.9833 4.091
+-12.9167 3.982
+-12.85 3.567
+-12.7833 3.458
+-12.7167 3.653
+-12.65 3.748
+-12.5833 3.539
+-12.5167 3.229
+-12.45 3.529
+-12.3833 3.829
+-12.3167 3.519
+-12.25 4.024
+-12.1833 3.515
+-12.1167 4.019
+-12.05 4.119
+-11.9833 4.119
+-11.9167 4.729
+-11.85 4.119
+-11.7833 4.119
+-11.7167 3.715
+-11.65 3.819
+-11.5833 4.024
+-11.5167 3.724
+-11.45 3.829
+-11.3833 3.529
+-11.3167 3.534
+-11.25 3.439
+-11.1833 3.953
+-11.1167 4.063
+-11.05 4.172
+-10.9833 3.977
+-10.9167 3.682
+-10.85 3.691
+-10.7833 3.396
+-10.7167 3.001
+-10.65 2.911
+-10.5833 2.820
+-10.5167 2.935
+-10.45 2.744
+-10.3833 2.759
+-10.3167 2.773
+-10.25 3.092
+-10.1833 3.107
+-10.1167 3.021
+-10.05 2.935
+-9.98333 2.545
+-9.91666 2.764
+-9.84999 2.579
+-9.78334 2.393
+-9.71667 2.512
+-9.65 2.327
+-9.58333 1.736
+-9.51668 2.160
+-9.45001 2.179
+-9.38333 1.894
+-9.31666 1.913
+-9.24999 1.832
+-9.18334 1.547
+-9.11667 1.161
+-9.05 1.180
+-8.98333 1.404
+-8.91668 1.324
+-8.85001 1.243
+-8.78333 1.162
+-8.71666 1.081
+-8.64999 1.610
+-8.58334 0.920
+-8.51667 1.144
+-8.45 1.368
+-8.38333 1.492
+-8.31668 1.411
+-8.25001 1.635
+-8.18333 1.554
+-8.11666 1.778
+-8.04999 1.697
+-7.98334 2.226
+-7.91667 2.450
+-7.85 1.760
+-7.78333 1.374
+-7.71668 1.293
+-7.65001 1.312
+-7.58333 1.232
+-7.51666 1.556
+-7.44999 1.270
+-7.38334 0.984
+-7.31667 1.308
+-7.25 1.328
+-7.18333 1.042
+-7.11668 0.856
+-7.05001 0.876
+-6.98333 0.690
+-6.91666 0.809
+-6.84999 0.419
+-6.78334 0.538
+-6.71667 0.757
+-6.65 0.672
+-6.58333 0.991
+-6.51668 0.600
+-6.45001 0.920
+-6.38333 0.629
+-6.31666 0.439
+-6.24999 0.553
+-6.18334 0.668
+-6.11667 0.172
+-6.05 0.692
+-5.98333 0.296
+-5.91668 0.306
+-5.85001 0.620
+-5.78333 0.630
+-5.71666 0.435
+-5.64999 0.544
+-5.58334 0.654
+-5.51667 1.168
+-5.45 1.073
+-5.38333 1.383
+-5.31668 1.692
+-5.25001 1.697
+-5.18333 1.802
+-4.91667 1.302
+-4.85 0.997
+-4.78333 1.402
+-4.71668 0.792
+-4.65001 0.892
+-4.58333 1.092
+-4.44999 0.578
+-4.25 0.259
+-4.18333 0.354
+-4.11668 0.549
+-4.05001 0.340
+-3.98333 0.230
+-3.91666 0.730
+-3.84999 0.416
+-3.78334 0.711
+-3.71667 0.092
+-3.65 0.792
+-3.58333 0.477
+-3.51668 0.668
+-3.45001 1.063
+-3.38333 0.948
+-3.31666 0.834
+-3.24999 1.329
+-3.18334 0.910
+-3.11667 1.505
+-3.05 1.491
+-2.98333 1.476
+-2.91668 1.767
+-2.85001 1.448
+-2.78333 1.838
+-2.71666 1.519
+-2.64999 1.909
+-2.58334 1.385
+-2.51667 2.080
+-2.45 2.471
+-2.38333 2.556
+-2.31668 2.437
+-2.25001 2.523
+-2.18333 2.608
+-2.11666 2.389
+-2.04999 2.575
+-1.98334 2.356
+-1.91667 2.541
+-1.85 2.932
+-1.78333 3.322
+-1.71668 3.508
+-1.65001 3.593
+-1.58333 3.374
+-1.51666 3.155
+-1.44999 3.545
+-1.38334 3.326
+-1.31667 3.412
+-1.25 3.092
+-1.18333 2.873
+-1.11668 2.859
+-1.05001 3.149
+-0.983333 2.830
+-0.916661 3.425
+-0.849989 3.411
+-0.783341 3.296
+-0.716669 3.587
+-0.649997 3.472
+-0.583325 3.358
+-0.516677 3.548
+-0.450005 3.334
+-0.383333 3.424
+-0.316661 3.210
+-0.249989 3.300
+-0.183341 3.596
+-0.116669 3.686
+-0.0499973 3.372
+0.0166747 3.567
+0.0833227 3.557
+0.149995 4.057
+0.216667 3.848
+0.283339 3.433
+0.350011 3.833
+0.416659 3.319
+0.483331 4.024
+0.550003 3.409
+0.616675 4.014
+0.683323 3.604
+0.749995 3.295
+0.816667 3.190
+0.883339 2.985
+0.950011 2.780
+1.01666 3.185
+1.08333 2.980
+1.15 2.675
+1.21667 2.775
+1.28332 2.675
+1.34999 2.675
+1.41667 2.575
+1.48334 2.475
+1.55001 1.971
+1.61666 2.380
+1.68333 1.571
+1.75 1.980
+1.81667 2.085
+1.88332 2.395
+1.94999 2.400
+2.01667 2.609
+2.08334 2.614
+2.15001 1.909
+2.21666 2.119
+2.28333 2.328
+2.35 2.843
+2.41667 2.443
+2.48332 2.552
+2.54999 2.357
+2.61667 2.467
+2.68334 2.576
+2.75001 2.686
+2.81666 2.186
+2.88333 2.296
+2.95 2.000
+3.01667 1.805
+3.08332 0.900
+3.14999 0.400
+3.21667 0.715
+3.28334 28.766
+3.35001 124.178
+3.41666 146.538
+3.48333 38.648
+3.55 -68.327
+3.61667 -62.526
+3.68332 -65.565
+3.74999 -22.783
+3.81667 -47.157
+3.88334 27.528
+3.95001 48.569
+4.01666 73.368
+4.08333 55.089
+4.15 40.773
+4.21667 -30.441
+4.28332 -85.905
+4.34999 -115.056
+4.41667 -82.738
+4.48334 -15.876
+4.55001 37.268
+4.61666 8.727
+4.68333 45.413
+4.75 42.169
+4.81667 32.525
+4.88332 33.549
+4.94999 -21.205
+5.01667 -33.897
+5.08334 -10.218
+5.15001 -7.570
+5.21666 8.084
+5.28333 27.496
+5.35 33.597
+5.41667 41.122
+5.48332 42.246
+5.54999 11.161
+5.61667 16.043
+5.68334 -0.716
+5.75001 -6.503
+5.81666 -34.540
+5.88333 -20.109
+5.95 4.280
+6.01667 -5.574
+6.08332 -30.158
+6.14999 -27.615
+6.21667 -15.523
+6.28334 13.638
+6.35001 33.755
+6.41666 32.741
+6.48333 24.511
+6.55 4.699
+6.61667 -9.527
+6.68332 -13.794
+6.74999 -1.502
+6.81667 -4.350
+6.88334 8.856
+6.95001 23.687
+7.01666 15.452
+7.08333 27.235
+7.15 17.172
+7.21667 11.171
+7.28332 0.193
+7.34999 -25.010
+7.41667 -27.049
+7.48334 -23.500
+7.55001 -3.593
+7.61666 18.648
+7.68333 28.596
+7.75 17.309
+7.81667 5.717
+7.88332 1.136
+7.94999 -2.127
+8.01667 -2.441
+8.08334 -0.422
+8.15001 4.545
+8.21666 16.623
+8.28333 4.216
+8.35 26.452
+8.41667 20.242
+8.48332 16.570
+8.54999 15.946
+8.61667 4.044
+8.68334 -5.419
+8.75001 -4.214
+8.81666 -4.738
+8.88333 -5.872
+8.95 -3.348
+9.01667 12.283
+9.08332 19.074
+9.14999 15.197
+9.21667 3.800
+9.28334 2.057
+9.35001 4.376
+9.41666 7.915
+9.48333 -3.277
+9.55 -4.921
+9.61667 -11.745
+9.68332 -2.721
+9.74999 9.962
+9.81667 15.024
+9.88334 13.991
+9.95001 7.775
+10.0167 6.337
+10.0833 -1.402
+10.15 8.842
+10.2167 5.575
+10.2833 4.846
+10.35 6.151
+10.4167 -2.908
+10.4833 7.236
+10.55 14.637
+10.6167 11.370
+10.6833 7.188
+10.75 3.211
+10.8167 13.255
+10.8833 3.792
+10.95 0.730
+11.0167 -1.113
+11.0833 -1.228
+11.15 8.107
+11.2167 21.708
+11.2833 17.836
+11.35 16.707
+11.4167 2.472
+11.4833 4.391
+11.55 -3.543
+11.6167 5.896
+11.6833 8.530
+11.75 11.263
+11.8167 9.935
+11.8833 10.030
+11.95 16.526
+12.0167 9.001
+12.0833 8.487
+12.15 3.910
+12.2167 -1.377
+12.2833 -1.077
+12.35 1.257
+12.4167 -6.263
+12.4833 -1.591
+12.55 8.872
+12.6167 17.102
+12.6833 22.283
+12.75 21.979
+12.8167 -9.516
+12.8833 4.000
+12.95 -4.734
+13.0167 3.600
+13.0833 2.181
+13.15 4.624
+13.2167 7.577
+13.2833 15.102
+13.35 12.568
+13.4167 16.640
+13.4833 7.301
+13.55 -2.038
+13.6167 9.554
+13.6833 6.515
+13.75 14.350
+13.8167 10.602
+13.8833 9.192
+13.95 8.492
+14.0167 5.459
+14.0833 -2.047
+14.15 -5.385
+14.2167 -12.077
+14.2833 -0.480
+14.35 14.979
+14.4167 19.771
+14.4833 21.719
+14.55 19.500
+14.6167 12.303
+14.6833 -0.074
+14.75 2.383
+14.8167 1.793
+14.8833 5.265
+14.95 10.975
+15.0167 18.005
+15.0833 6.747
+15.15 11.238
+15.2167 -0.121
+15.2833 -0.201
+15.35 1.242
+15.4167 -6.459
+15.4833 -5.016
+15.55 -3.368
+15.6167 1.124
+15.6833 -0.276
+15.75 2.691
+15.8167 0.986
+15.8833 9.340
+15.95 11.392
+16.0167 6.944
+16.0833 1.277
+16.15 0.487
+16.2167 -11.276
+16.2833 -1.604
+16.35 -19.463
+16.4167 13.884
+16.4833 16.547
+16.55 2.650
+16.6167 3.179
+16.6833 -22.605
+16.75 9.318
+16.8167 -2.650
+16.8833 -39.102
+16.95 -2.302
+17.0167 -0.859
+17.0833 4.952
+17.15 13.710
+17.2167 17.387
+17.2833 1.456
+17.35 -6.449
+17.4167 0.071
+17.4833 0.090
+17.55 -0.196
+17.6167 -7.696
+17.6833 -0.262
+17.75 4.124
+17.8167 0.991
+17.8833 -1.838
+17.95 -2.533
+18.0167 0.124
+18.0833 5.625
+18.15 7.468
+18.2167 4.130
+18.2833 -2.561
+18.35 -9.762
+18.4167 -7.109
+18.4833 -0.899
+18.55 1.449
+18.6167 5.421
+18.6833 2.588
+18.75 0.564
+18.8167 4.231
+18.8833 1.292
+18.95 -4.999
+19.0167 -4.484
+19.0833 -6.408
+19.15 -3.356
+19.2167 3.050
+19.2833 4.579
+19.35 1.026
+19.4167 -5.170
+19.4833 -8.723
+19.55 -2.727
+19.6167 1.845
+19.6833 3.674
+19.75 3.065
+19.8167 0.726
+19.8833 -2.222
+19.95 -3.546
+20.0167 -1.822
+20.0833 -2.741
+20.15 -4.880
+20.2167 2.126
+20.2833 6.389
+20.35 7.803
+20.4167 9.727
+20.4833 4.741
+20.55 2.497
+20.6167 4.521
+20.6833 4.207
+20.75 4.502
+20.8167 0.325
+20.8833 -0.499
+20.95 -1.932
+21.0167 0.292
+21.0833 3.225
+21.15 3.111
+21.2167 2.996
+21.2833 2.372
+21.35 9.573
+21.4167 8.035
+21.4833 6.901
+21.55 4.144
+21.6167 -2.172
+21.6833 -2.186
+21.75 2.167
+21.8167 7.434
+21.8833 4.876
+21.95 1.914
+22.0167 4.843
+22.0833 3.100
+22.15 3.285
+22.2167 2.252
+22.2833 0.608
+22.35 4.961
+22.4167 3.928
+22.4833 8.380
+22.55 5.823
+22.6167 4.789
+22.6833 0.098
+22.75 0.893
+22.8167 -3.188
+22.8833 2.788
+22.95 -0.379
+23.0167 -0.903
+23.0833 9.951
+23.15 13.794
+23.2167 15.404
+23.2833 11.017
+23.35 3.483
+23.4167 -0.699
+23.4833 1.520
+23.55 8.821
+23.6167 7.688
+23.6833 6.454
+23.75 6.744
+23.8167 5.816
+23.8833 8.240
+23.95 4.772
+24.0167 4.453
+24.0833 -0.233
+24.15 1.991
+24.2167 1.876
+24.2833 7.148
+24.35 9.677
+24.4167 5.400
+24.4833 4.576
+24.55 1.519
+24.6167 -0.725
+24.6833 2.009
+24.75 -1.758
+24.8167 1.485
+24.8833 2.800
+24.95 8.381
+25.0167 5.428
+25.0833 2.985
+25.15 5.114
+25.2167 4.195
+25.2833 5.004
+25.35 3.780
+25.4167 -0.082
+25.4833 0.118
+25.55 3.266
+25.6167 5.400
+25.6833 5.500
+25.75 4.280
+25.8167 4.790
+25.8833 2.047
+25.95 3.775
+26.0167 3.575
+26.0833 7.133
+26.15 5.409
+26.2167 4.600
+26.2833 3.995
+26.35 6.133
+26.4167 9.796
+26.4833 4.619
+26.55 2.390
+26.6167 0.261
+26.6833 1.690
+26.75 3.019
+26.8167 2.009
+26.8833 8.215
+26.95 4.667
+27.0167 7.215
+27.0833 8.544
+27.15 4.081
+27.2167 7.444
+27.2833 5.115
+27.35 5.124
+27.4167 2.696
+27.4833 4.839
+27.55 3.934
+27.6167 2.420
+27.6833 3.039
+27.75 0.305
+27.8167 4.582
+27.8833 8.454
+27.95 8.464
+28.0167 7.559
+28.0833 6.859
+28.15 2.601
+28.2167 -0.132
+28.2833 0.082
+28.35 2.225
+28.4167 2.844
+28.4833 6.412
+28.55 4.592
+28.6167 5.516
+28.6833 6.136
+28.75 7.364
+28.8167 9.103
+28.8833 9.722
+28.95 1.807
+29.0167 -1.436
+29.0833 -3.256
+29.15 -1.722
+29.2167 -1.712
+29.2833 -2.822
+29.35 -1.188
+29.4167 0.955
+29.4833 3.503
+29.55 3.612
+29.6167 4.332
+29.6833 2.612
+29.75 0.993
+29.8167 -2.860
+29.8833 -6.308
+29.95 -6.808
+30.0167 -3.855
+30.0833 0.722
+30.15 4.894
+30.2167 2.156
+30.2833 0.232
+30.35 -1.592
+30.4167 -1.183
+30.4833 2.175
+30.55 0.451
+30.6167 -0.054
+30.6833 -2.692
+30.75 -2.792
+30.8167 0.360
+30.8833 -0.554
+30.95 3.308
+31.0167 3.918
+31.0833 2.699
+31.15 4.832
+31.2167 4.628
+31.2833 1.580
+31.35 1.780
+31.4167 -1.168
+31.4833 -1.273
+31.55 -0.668
+31.6167 -0.164
+31.6833 1.356
+31.75 5.923
+31.8167 7.542
+31.8833 4.284
+31.95 1.332
+32.0167 -0.302
+32.0833 -2.545
+32.15 -4.484
+32.2167 -3.274
+32.2833 -2.674
+32.35 -0.550
+32.4167 3.098
+32.4833 5.627
+32.55 5.412
+32.6167 4.688
+32.6833 4.169
+32.75 0.702
+32.8167 4.955
+32.8833 7.888
+32.95 6.960
+33.0167 3.897
+33.0833 2.054
+33.15 4.173
+33.2167 0.906
+33.2833 0.687
+33.35 0.772
+33.4167 -0.971
+33.4833 -0.276
+33.55 0.115
+33.6167 1.824
+33.6833 2.620
+33.75 0.267
+33.8167 -0.462
+33.8833 -0.886
+33.95 -2.225
+34.0167 -1.025
+34.0833 -0.534
+34.15 1.480
+34.2167 3.800
+34.2833 6.424
+34.35 1.527
+34.4167 0.494
+34.4833 -0.540
+34.55 0.865
+34.6167 1.965
+34.6833 2.455
+34.75 2.641
+34.8167 0.693
+34.8833 1.488
+34.95 3.098
+35.0167 4.198
+35.0833 5.198
+35.15 4.979
+35.2167 6.588
+35.2833 5.659
+35.35 5.135
+35.4167 2.987
+35.4833 1.449
+35.55 0.215
+35.6167 -1.628
+35.6833 0.696
+35.75 3.325
+35.8167 4.125
+35.8833 4.215
+35.95 4.001
+36.0167 0.739
+36.0833 -2.624
+36.15 -3.853
+36.2167 -0.814
+36.2833 2.734
+36.35 4.758
+36.4167 4.648
+36.4833 6.267
+36.55 5.448
+36.6167 2.800
+36.6833 0.967
+36.75 1.267
+36.8167 0.247
+36.8833 3.191
+36.95 -0.062
+37.0167 2.476
+37.0833 2.881
+37.15 3.491
+37.2167 3.186
+37.2833 1.867
+37.35 2.986
+37.4167 2.276
+37.4833 1.467
+37.55 1.167
+37.6167 1.781
+37.6833 0.871
+37.75 0.267
+37.8167 -0.843
+37.8833 -0.329
+37.95 -0.524
+38.0167 0.195
+38.0833 4.472
+38.15 4.787
+38.2167 5.306
+38.2833 1.558
+38.35 -0.971
+38.4167 -0.857
+38.4833 -2.571
+38.55 -2.761
+38.6167 -1.833
+38.6833 -1.818
+38.75 0.025
+38.8167 -2.499
+38.8833 -2.585
+38.95 1.192
+39.0167 1.411
+39.0833 3.055
+39.15 2.464
+39.2167 4.717
+39.2833 4.736
+39.35 2.927
+39.4167 -0.712
+39.4833 -2.217
+39.55 -0.469
+39.6167 1.889
+39.6833 1.199
+39.75 4.471
+39.8167 5.914
+39.8833 4.514
+39.95 2.300
+40.0167 0.595
+40.0833 -2.839
+40.15 -0.276
+40.2167 -0.152
+40.2833 2.410
+40.35 2.229
+40.4167 3.268
+40.4833 2.477
+40.55 -0.142
+40.6167 0.287
+40.6833 1.020
+40.75 1.449
+40.8167 -0.560
+40.8833 -0.132
+40.95 0.907
+41.0167 -0.493
+41.0833 0.036
+41.15 0.464
+41.2167 -1.545
+41.2833 -1.321
+41.35 -0.183
+41.4167 2.075
+41.4833 2.604
+41.55 4.452
+41.6167 2.542
+41.6833 0.023
+41.75 0.347
+41.8167 -0.548
+41.95 4.976
+42.0167 7.129
+42.0833 4.505
+42.15 1.881
+42.2167 0.476
+42.2833 0.900
+42.35 -0.709
+42.4167 0.424
+42.4833 0.644
+42.55 -0.561
+42.6167 -1.256
+42.6833 -0.532
+42.75 0.396
+42.8167 -0.708
+42.8833 -0.899
+42.95 -3.123
+43.0167 -3.008
+43.0833 -3.913
+43.15 -3.699
+43.2167 -2.470
+43.2833 -1.751
+43.35 -2.046
+43.4167 -1.227
+43.4833 0.102
+43.55 -0.298
+43.6167 0.316
+43.6833 -0.593
+43.75 0.326
+43.8167 0.941
+43.8833 -0.988
+43.95 -1.493
+44.0167 0.236
+44.0833 0.745
+44.15 -1.388
+44.2167 -3.117
+44.2833 -3.117
+44.35 -3.932
+44.4167 -3.427
+44.4833 -2.008
+44.55 -2.722
+44.6167 -3.336
+44.6833 -5.170
+44.75 -5.480
+44.8167 -5.384
+44.8833 -4.580
+44.95 -3.875
+45.0167 -2.156
+45.0833 -2.165
+45.15 -2.884
+45.2167 -2.284
+45.2833 -0.365
+45.35 0.640
+45.4167 -0.184
+45.4833 0.211
+45.55 -0.208
+45.6167 -0.628
+45.6833 -1.656
+45.75 -2.076
+45.8167 -1.785
+45.8833 -0.885
+45.95 -2.424
+46.0167 -2.438
+46.0833 -1.133
+46.15 -0.743
+46.2167 -0.962
+46.2833 -0.876
+46.35 -1.096
+46.4167 0.004
+46.4833 -0.824
+46.55 -1.248
+46.6167 -0.758
+46.6833 -0.572
+46.75 -2.216
+46.8167 -3.554
+46.8833 -3.673
+46.95 -1.659
+47.0167 -0.454
+47.0833 1.556
+47.15 2.351
+47.2167 1.622
+47.2833 -1.240
+47.35 -1.969
+47.4167 -1.684
+47.4833 -0.279
+47.55 1.431
+47.6167 1.921
+47.6833 2.616
+47.75 2.192
+47.8167 0.854
+47.8833 -0.280
+47.95 0.416
+48.0167 0.806
+48.0833 1.196
+48.15 0.977
+48.2167 1.672
+48.2833 2.268
+48.35 1.644
+48.4167 0.105
+48.4833 -0.314
+48.55 -0.024
+48.6167 -1.357
+48.6833 -0.557
+48.75 1.667
+48.8167 2.162
+48.8833 2.862
+48.95 1.633
+49.0167 0.504
+49.0833 0.495
+49.15 1.604
+49.2167 2.509
+49.2833 1.790
+49.35 0.666
+49.4167 -0.358
+49.4833 -0.263
+49.55 0.037
+49.6167 0.132
+49.6833 -0.177
+49.75 -2.111
+49.8167 -3.335
+49.8833 -2.930
+49.95 -3.645
+50.0167 -3.849
+50.0833 -4.969
+50.15 -6.088
+50.2167 -5.478
+50.2833 -3.749
+50.35 -1.006
+50.4167 1.027
+50.4833 0.927
+50.55 -0.187
+50.6167 -1.811
+50.6833 -2.111
+50.75 -1.701
+50.8167 -1.697
+50.8833 -1.082
+50.95 -0.773
+51.0167 -1.477
+51.0833 -0.963
+51.15 -2.277
+51.2167 -3.287
+51.2833 -4.397
+51.35 -5.101
+51.4167 -5.906
+51.4833 -6.406
+51.55 -5.787
+51.6167 -5.373
+51.6833 -5.363
+51.75 -4.744
+51.8167 -3.210
+51.8833 -4.420
+51.95 -4.410
+52.0167 -4.500
+52.0833 -4.491
+52.15 -4.276
+52.2167 -3.352
+52.2833 -2.833
+52.35 -2.824
+52.4167 -2.304
+52.4833 -3.309
+52.55 -2.485
+52.6167 -2.271
+52.6833 -2.361
+52.75 -4.790
+52.8167 -5.490
+52.8833 -3.447
+52.95 -2.013
+53.0167 -0.275
+53.0833 -0.570
+53.15 -0.051
+53.2167 0.164
+53.2833 -0.741
+53.35 -1.746
+53.4167 -2.346
+53.4833 -3.960
+53.55 -3.341
+53.6167 -3.636
+53.6833 -2.712
+53.75 -2.703
+53.8167 -2.998
+53.8833 -2.684
+53.95 -2.574
+54.0167 -2.260
+54.0833 -2.455
+54.15 -2.345
+54.2167 -1.931
+54.2833 -2.126
+54.35 -2.016
+54.4167 -2.212
+54.4833 -1.392
+54.55 -1.488
+54.6167 -1.583
+54.6833 -0.459
+54.75 -1.064
+54.8167 -1.768
+54.8833 -1.764
+54.95 -1.149
+55.0167 -2.264
+55.0833 -2.564
+55.15 -3.068
+55.2167 -2.354
+55.2833 -1.540
+55.35 -1.944
+55.4167 -1.435
+55.4833 -1.535
+55.55 -1.840
+55.6167 -2.449
+55.6833 -3.364
+55.75 -3.568
+55.8167 -3.773
+55.8833 -3.064
+55.95 -2.559
+56.0167 -2.359
+56.0833 -1.449
+56.15 -2.773
+56.2167 -3.997
+56.2833 -4.207
+56.35 -5.940
+56.4167 -7.369
+56.4833 -8.188
+56.55 -7.079
+56.6167 -6.884
+56.6833 -5.369
+56.75 -4.260
+56.8167 -4.779
+56.8833 -4.788
+56.95 -4.698
+57.0167 -4.608
+57.0833 -5.127
+57.15 -5.851
+57.2167 -6.270
+57.2833 -5.775
+57.35 -4.060
+57.4167 -3.770
+57.4833 -3.480
+57.55 -3.189
+57.6167 -2.289
+57.6833 -2.813
+57.75 -3.947
+57.8167 -5.080
+57.8833 -6.214
+57.95 -6.433
+58.0167 -7.162
+58.0833 -7.686
+58.15 -7.500
+58.2167 -7.010
+58.2833 -6.010
+58.35 -4.605
+58.4167 -4.115
+58.4833 -4.134
+58.55 -4.558
+58.6167 -5.287
+58.6833 -6.321
+58.75 -6.745
+58.8167 -6.459
+58.8833 -5.664
+58.95 -4.869
+59.0167 -5.293
+59.0833 -3.583
+59.15 -2.788
+59.2167 -2.602
+59.2833 -3.636
+59.35 -4.365
+59.4167 -5.193
+59.4833 -5.008
+59.55 -5.532
+59.6167 -5.141
+59.6833 -5.056
+59.75 -4.665
+59.8167 -4.275
+59.8833 -4.594
+59.95 -4.304
+60.0167 -4.013
+60.0833 -3.723
+60.15 -4.142
+60.2167 -3.242
+60.2833 -4.371
+60.35 -4.790
+60.4167 -4.090
+60.4833 -4.000
+60.55 -3.909
+60.6167 -4.224
+60.6833 -3.929
+60.75 -3.633
+60.8167 -1.914
+60.8833 -2.024
+60.95 -2.233
+61.0167 -1.833
+61.0833 -2.653
+61.15 -3.267
+61.2167 -4.491
+61.2833 -3.886
+61.35 -3.686
+61.4167 -3.181
+61.4833 -3.081
+61.55 -2.067
+61.6167 -2.067
+61.6833 -2.372
+61.75 -2.067
+61.8167 -3.081
+61.8833 -2.877
+61.95 -3.077
+62.0167 -2.972
+62.0833 -2.967
+62.15 -1.743
+62.2167 -0.824
+62.2833 -0.309
+62.35 -0.405
+62.4167 -1.209
+62.4833 -1.405
+62.55 -1.395
+62.6167 -1.995
+62.6833 -2.900
+62.75 -2.990
+62.8167 -2.776
+62.8833 -2.257
+62.95 -1.533
+63.0167 -1.418
+63.0833 -1.404
+63.15 -1.999
+63.2167 -2.899
+63.2833 -3.289
+63.35 -4.189
+63.4167 -3.765
+63.4833 -3.546
+63.55 -2.513
+63.6167 -1.784
+63.6833 -1.055
+63.75 -1.645
+63.8167 -2.236
+63.8833 -3.741
+63.95 -3.721
+64.0167 -3.093
+64.0833 -1.649
+64.15 -0.816
+64.2167 0.323
+64.2833 0.242
+64.35 0.466
+64.4167 -0.934
+64.4833 -2.234
+64.55 -3.939
+64.6167 -3.715
+64.6833 -3.286
+64.75 -2.552
+64.8167 -2.124
+64.8833 -1.390
+64.95 -1.876
+65.0167 -2.261
+65.0833 -3.052
+65.15 -3.842
+65.2167 -4.328
+65.2833 -3.594
+65.35 -3.165
+65.4167 -2.027
+65.4833 -0.684
+65.55 0.050
+65.6167 -0.640
+65.6833 -1.026
+65.75 -0.192
+65.8167 0.236
+65.8833 0.156
+65.95 -0.435
+66.0167 -0.516
+66.0833 -0.192
+66.15 -0.882
+66.2167 -0.863
+66.2833 -0.539
+66.35 -0.520
+66.4167 0.514
+66.4833 -0.281
+66.55 -0.772
+66.6167 -1.262
+66.6833 -2.667
+66.75 -3.972
+66.8167 -3.448
+66.8833 -2.619
+66.95 -2.300
+67.0167 -1.471
+67.0833 -1.456
+67.15 -1.037
+67.2167 -2.142
+67.2833 -3.552
+67.35 -3.742
+67.4167 -4.137
+67.4833 -3.618
+67.55 -3.099
+67.6167 -2.480
+67.6833 -2.165
+67.75 -2.360
+67.8167 -1.946
+67.8833 -2.446
+67.95 -3.456
+68.0167 -4.465
+68.0833 -5.780
+68.15 -5.470
+68.2167 -5.160
+68.2833 -5.360
+68.35 -5.256
+68.4167 -5.356
+68.4833 -5.151
+68.55 -4.641
+68.6167 -4.946
+68.6833 -5.556
+68.75 -6.370
+68.8167 -7.489
+68.8833 -7.389
+68.95 -7.189
+69.0167 -6.380
+69.0833 -6.080
+69.15 -5.170
+69.2167 -4.565
+69.2833 -3.860
+69.35 -3.765
+69.4167 -4.180
+69.4833 -4.594
+69.55 -7.752
+69.6167 -5.118
+69.6833 -4.823
+69.75 -4.123
+69.8167 -6.571
+69.8833 -3.432
+69.95 -3.342
+70.0167 -4.066
+70.0833 -4.280
+70.15 -4.395
+70.2167 -4.714
+70.2833 -4.828
+70.35 -5.148
+70.4167 -4.552
+70.4833 -4.262
+70.55 -4.176
+70.6167 -3.886
+70.6833 -3.191
+70.75 -3.105
+70.8167 -3.934
+70.8833 -3.748
+70.95 -4.272
+71.0167 -4.187
+71.0833 -3.087
+71.15 -2.292
+71.2167 -2.411
+71.2833 -1.920
+71.35 -2.040
+71.4167 -1.549
+71.4833 -1.973
+71.55 -2.092
+71.6167 -2.212
+71.6833 -2.536
+71.75 -2.350
+71.8167 -1.860
+71.8833 -1.064
+71.95 -1.184
+72.0167 -0.998
+72.0833 -1.422
+72.15 -1.946
+72.2167 -2.065
+72.2833 -2.184
+72.35 -2.404
+72.4167 -1.708
+72.4833 -0.913
+72.55 -0.828
+72.6167 -1.147
+72.6833 -1.366
+72.75 -1.076
+72.8167 -1.295
+72.8833 -2.324
+72.95 -2.643
+73.0167 -2.962
+73.0833 -2.467
+73.15 -2.581
+73.2167 -1.881
+73.2833 -1.691
+73.35 -1.905
+73.4167 -2.425
+73.4833 -3.349
+73.55 -3.663
+73.6167 -3.063
+73.6833 -3.377
+73.75 -3.792
+73.8167 -2.987
+73.8833 -3.501
+73.95 -4.016
+74.0167 -3.921
+74.0833 -4.130
+74.15 -4.440
+74.2167 -4.240
+74.2833 -3.940
+74.35 -3.130
+74.4167 -3.030
+74.4833 -3.135
+74.55 -3.340
+74.6167 -3.645
+74.6833 -4.154
+74.75 -4.459
+74.8167 -4.864
+74.8833 -4.964
+74.95 -4.149
+75.0167 -3.640
+75.0833 -3.840
+75.15 -2.821
+75.2167 -3.021
+75.2833 -3.016
+75.35 -2.706
+75.4167 -3.006
+75.4833 -3.001
+75.55 -3.401
+75.6167 -3.497
+75.6833 -3.287
+75.75 -2.873
+75.8167 -2.763
+75.8833 -2.653
+75.95 -2.544
+76.0167 -1.825
+76.0833 -2.120
+76.15 -2.110
+76.2167 -2.710
+76.2833 -2.700
+76.35 -2.691
+76.4167 -2.072
+76.4833 -0.943
+76.55 -0.324
+76.6167 0.196
+76.6833 -0.200
+76.75 -1.509
+76.8167 -1.904
+76.8833 -1.385
+76.95 -1.476
+77.0167 -0.042
+77.0833 0.172
+77.15 1.301
+77.2167 1.416
+77.2833 1.630
+77.35 1.540
+77.4167 0.840
+77.4833 0.140
+77.55 0.049
+77.6167 0.873
+77.6833 1.392
+77.75 1.607
+77.8167 2.126
+77.8833 2.036
+77.95 1.336
+78.0167 0.431
+78.0833 -0.269
+78.15 -0.260
+78.2167 0.055
+78.2833 0.269
+78.35 1.193
+78.4167 1.203
+78.4833 0.703
+78.55 -0.202
+78.6167 -0.397
+78.6833 -0.692
+78.75 -0.278
+78.8167 0.746
+78.8833 1.465
+78.95 1.065
+79.0167 0.870
+79.0833 0.470
+79.15 0.375
+79.2167 0.584
+79.2833 0.284
+79.35 -0.320
+79.4167 0.294
+79.4833 -0.616
+79.55 -0.916
+79.6167 -0.811
+79.6833 -0.706
+79.75 -0.501
+79.8167 -1.311
+79.8833 -1.716
+79.95 -2.425
+80.0167 -1.511
+80.0833 -1.206
+80.15 -1.206
+80.2167 -0.292
+80.2833 0.113
+80.35 0.518
+80.4167 0.413
+80.4833 0.613
+80.55 0.508
+80.6167 0.099
+80.6833 0.399
+80.75 0.089
+80.8167 -0.730
+80.8833 -0.635
+80.95 -0.540
+81.0167 -0.649
+81.0833 -0.859
+81.15 -0.564
+81.2167 -1.283
+81.2833 -1.902
+81.35 -2.521
+81.4167 -3.040
+81.4833 -2.645
+81.55 -2.555
+81.6167 -2.160
+81.6833 -1.664
+81.75 -1.474
+81.8167 -1.284
+81.8833 -2.008
+81.95 -1.717
+82.0167 -2.341
+82.0833 -2.660
+82.15 -2.675
+82.2167 -2.384
+82.2833 -1.994
+82.35 -1.908
+82.4167 -1.823
+82.4833 -2.042
+82.55 -2.261
+82.6167 -2.990
+82.6833 -3.209
+82.75 -3.328
+82.8167 -3.548
+82.8833 -3.362
+82.95 -2.872
+83.0167 -2.381
+83.0833 -2.905
+83.15 -2.720
+83.2167 -2.229
+83.2833 -2.349
+83.35 -2.163
+83.4167 -2.282
+83.4833 -1.892
+83.55 -2.011
+83.6167 -1.521
+83.6833 -1.435
+83.75 -0.945
+83.8167 -0.554
+83.8833 -0.673
+83.95 -0.283
+84.0167 -0.502
+84.0833 -0.417
+84.15 -0.431
+84.2167 -0.345
+84.2833 -0.360
+84.35 -0.374
+84.4167 0.221
+84.4833 -0.098
+84.55 0.497
+84.6167 0.687
+84.6833 -0.037
+84.75 -0.556
+84.8167 -0.061
+84.8833 -0.580
+84.95 -0.794
+85.0167 -0.499
+85.0833 -0.104
+85.15 -0.113
+85.2167 0.082
+85.2833 0.277
+85.35 -0.137
+85.4167 0.363
+85.4833 0.458
+85.55 0.858
+85.6167 0.853
+85.6833 1.153
+85.75 1.453
+85.8167 1.043
+85.8833 1.243
+85.95 1.343
+86.0167 1.443
+86.0833 1.239
+86.15 1.239
+86.2167 1.139
+86.2833 1.139
+86.35 1.648
+86.4167 1.143
+86.4833 0.943
+86.55 1.048
+86.6167 0.748
+86.6833 1.363
+86.75 1.267
+86.8167 1.782
+86.8833 1.687
+86.95 1.491
+87.0167 1.296
+87.0833 1.306
+87.15 1.011
+87.2167 1.020
+87.2833 1.235
+87.35 1.449
+87.4167 0.954
+87.4833 0.459
+87.55 0.573
+87.6167 0.992
+87.6833 0.397
+87.75 1.021
+87.8167 0.326
+87.8833 0.645
+87.95 0.864
+88.0167 0.983
+88.0833 1.507
+88.15 1.322
+88.2167 0.527
+88.2833 1.155
+88.35 0.360
+88.4167 0.684
+88.4833 1.008
+88.55 1.027
+88.6167 1.047
+88.6833 1.880
+88.75 1.900
+88.8167 1.819
+88.8833 2.348
+88.95 2.267
+89.0167 2.491
+89.0833 2.410
+89.15 2.534
+89.2167 2.148
+89.2833 2.677
+89.35 3.206
+89.4167 3.330
+89.4833 3.249
+89.55 3.373
+89.6167 3.292
+89.6833 2.602
+89.75 2.116
+89.8167 2.340
+89.8833 1.650
+89.95 1.264
+90.0167 1.793
+90.0833 2.322
+90.15 2.241
+90.2167 3.175
+90.2833 2.789
+90.35 3.113
+90.4167 2.828
+90.4833 2.847
+90.55 2.256
+90.6167 2.580
+90.6833 2.700
+90.75 2.109
+90.8167 3.448
+90.8833 3.872
+90.95 3.786
+91.0167 4.210
+91.0833 3.820
+91.15 3.124
+91.2167 2.429
+91.2833 2.139
+91.35 2.153
+91.4167 1.863
+91.4833 2.182
+91.55 2.296
+91.6167 2.106
+91.6833 2.525
+91.75 2.740
+91.8167 2.040
+91.8833 1.340
+92.0167 0.954
+92.0833 0.964
+92.15 0.768
+92.2167 1.183
+92.2833 0.683
+92.35 -0.022
+92.4167 0.492
+92.4833 0.092
+92.55 0.402
+92.6167 0.102
+92.6833 -0.503
+92.75 -1.617
+92.8167 -1.717
+92.8833 -2.222
+92.95 -2.932
+93.0167 -2.322
+93.0833 -2.627
+93.15 -2.932
+93.2167 -3.236
+93.2833 -3.136
+93.35 -2.936
+93.4167 -2.736
+93.4833 -3.146
+93.55 -3.251
+93.6167 -3.256
+93.6833 -3.260
+93.75 -3.165
+93.8167 -3.375
+93.8833 -3.584
+93.95 -3.694
+94.0167 -3.804
+94.0833 -3.508
+94.15 -3.618
+94.2167 -3.628
+94.2833 -3.537
+94.35 -3.547
+94.4167 -3.152
+94.4833 -3.266
+94.55 -3.785
+94.6167 -3.900
+94.6833 -3.404
+94.75 -3.824
+94.8167 -3.838
+94.8833 -4.562
+94.95 -3.967
+95.0167 -4.481
+95.0833 -4.200
+95.15 -3.910
+95.2167 -4.129
+95.2833 -4.348
+95.35 -4.872
+95.4167 -5.092
+95.4833 -4.701
+95.55 -4.920
+95.6167 -4.430
+95.6833 -4.649
+95.75 -4.159
+95.8167 -3.973
+95.8833 -3.278
+95.95 -3.092
+96.0167 -3.212
+96.0833 -3.331
+96.15 -3.550
+96.2167 -4.584
+96.2833 -4.703
+96.35 -4.212
+96.4167 -4.736
+96.4833 -3.941
+96.55 -4.060
+96.6167 -3.975
+96.6833 -4.399
+96.75 -4.008
+96.8167 -4.228
+96.8833 -3.837
+96.95 -3.752
+97.0167 -3.361
+97.0833 -2.766
+97.15 -1.766
+97.2167 -1.780
+97.2833 -1.795
+97.35 -1.809
+97.4167 -1.314
+97.4833 -1.633
+97.55 -1.748
+97.6167 -1.657
+97.6833 -2.076
+97.75 -1.681
+97.8167 -1.896
+97.8833 -2.415
+97.95 -1.715
+98.0167 -2.029
+98.0833 -2.344
+98.15 -2.149
+98.2167 -2.563
+98.2833 -2.673
+98.35 -2.782
+98.4167 -2.992
+98.4833 -2.592
+98.55 -2.497
+98.6167 -2.501
+98.6833 -2.506
+98.75 -2.611
+98.8167 -2.411
+98.8833 -2.516
+98.95 -2.316
+99.0167 -2.216
+99.0833 -2.421
+99.15 -2.421
+99.2167 -2.725
+99.2833 -2.725
+99.35 -2.116
+99.4167 -2.216
+99.4833 -2.316
+99.55 -2.821
+99.6167 -2.616
+99.6833 -2.306
+99.75 -1.897
+99.8167 -1.282
+99.8833 -1.277
+99.95 -0.663
+100.017 -0.658
+100.083 -0.753
+100.15 -0.849
+100.217 -0.434
+100.283 -0.834
+100.35 -0.725
+100.417 -1.225
+100.483 -1.115
+100.55 -1.105
+100.617 -0.691
+100.683 -0.376
+100.75 -0.367
+100.817 -0.967
+100.883 -0.957
+100.95 -1.657
+101.017 -1.648
+101.083 -1.738
+101.15 -1.524
+101.217 -1.004
+101.283 -0.485
+101.35 -0.271
+101.417 -0.056
+101.483 -0.147
+101.55 -0.237
+101.617 -0.732
+101.683 -1.128
+101.75 -1.218
+101.817 -1.408
+101.883 -1.499
+101.95 -0.370
+102.017 -0.765
+102.083 -0.651
+102.15 -1.046
+102.217 -1.136
+102.283 -1.227
+102.35 -1.317
+102.417 -0.798
+102.483 -0.584
+102.55 -0.879
+102.617 -0.360
+102.683 0.869
+102.75 0.169
+102.817 0.179
+102.883 0.188
+102.95 0.198
+103.017 0.208
+103.083 0.012
+103.15 -0.283
+103.217 -0.478
+103.283 -0.368
+103.35 -0.868
+103.417 -0.759
+103.483 -0.854
+103.55 -1.254
+103.617 -1.044
+103.683 -0.835
+103.75 -1.235
+103.817 -0.925
+103.883 -1.225
+103.95 -1.220
+104.017 -1.216
+104.083 -0.806
+104.15 -1.006
+104.217 -1.511
+104.283 -1.611
+104.35 -1.201
+104.417 -1.911
+104.483 -2.216
+104.55 -1.401
+104.617 -1.706
+104.683 -2.316
+104.75 -2.520
+104.817 -2.725
+104.883 -3.540
+104.95 -3.340
+105.017 -3.849
+105.083 -3.549
+105.15 -4.568
+105.217 -4.268
+105.283 -4.273
+105.35 -4.278
+105.417 -4.488
+105.483 -5.307
+105.55 -5.112
+105.617 -5.016
+105.683 -5.126
+105.75 -5.136
+105.817 -4.940
+105.883 -4.950
+105.95 -5.469
+106.017 -5.479
+106.083 -5.084
+106.15 -4.993
+106.217 -5.208
+106.283 -4.712
+106.35 -4.927
+106.417 -5.041
+106.483 -4.446
+106.55 -4.865
+106.617 -3.965
+106.683 -4.284
+106.75 -4.399
+106.817 -4.923
+106.883 -4.937
+106.95 -4.952
+107.017 -4.561
+107.083 -3.866
+107.15 -3.880
+107.217 -3.795
+107.283 -3.709
+107.35 -3.624
+107.417 -3.538
+107.483 -3.757
+107.55 -3.976
+107.617 -3.791
+107.683 -4.010
+107.75 -4.229
+107.817 -4.144
+107.883 -3.753
+107.95 -4.277
+108.017 -4.497
+108.083 -4.411
+108.15 -4.630
+108.217 -4.240
+108.283 -3.340
+108.35 -3.254
+108.417 -2.559
+108.483 -2.878
+108.55 -2.588
+108.617 -2.602
+108.683 -2.617
+108.75 -2.631
+108.817 -3.050
+108.883 -2.760
+108.95 -3.179
+109.017 -3.293
+109.083 -2.493
+109.15 -2.708
+109.217 -2.313
+109.283 -2.832
+109.35 -2.437
+109.417 -2.956
+109.483 -2.965
+109.55 -2.670
+109.617 -2.475
+109.683 -2.485
+109.75 -2.289
+109.817 -2.499
+109.883 -2.609
+109.95 -2.309
+110.017 -2.213
+110.083 -2.218
+110.15 -2.223
+110.217 -2.533
+110.283 -2.942
+110.35 -3.047
+110.417 -2.947
+110.483 -2.847
+110.55 -2.442
+110.617 -2.747
+110.683 -2.747
+110.75 -3.457
+110.817 -3.252
+110.883 -2.742
+110.95 -2.333
+111.017 -2.533
+111.083 -2.123
+111.15 -1.813
+111.217 -2.213
+111.283 -1.599
+111.35 -1.694
+111.417 -1.585
+111.483 -1.475
+111.55 -1.365
+111.617 -1.256
+111.683 -1.551
+111.75 -1.946
+111.817 -1.937
+111.95 -1.508
+112.083 -1.889
+112.15 -1.469
+112.217 -1.760
+112.283 -1.950
+112.35 -2.036
+112.417 -2.021
+112.483 -1.802
+112.55 -1.483
+112.617 -1.264
+112.683 -1.145
+112.75 -0.925
+112.817 -0.501
+112.883 -0.687
+112.95 -0.873
+113.017 -0.449
+113.083 -0.734
+113.15 -0.715
+113.217 -0.291
+113.283 0.033
+113.35 0.357
+113.417 0.376
+113.483 0.091
+113.55 -0.295
+113.617 0.029
+113.683 0.048
+113.75 0.272
+113.817 0.596
+113.883 0.516
+113.95 0.535
+114.017 0.454
+114.083 0.473
+114.15 0.697
+114.217 0.107
+114.283 -0.179
+114.35 -0.160
+114.417 -0.850
+114.483 0.084
+114.55 -0.202
+114.617 0.222
+114.683 -0.368
+114.75 -0.349
+114.817 0.075
+114.883 -0.211
+114.95 -0.092
+115.017 0.028
+115.083 -0.158
+115.15 -0.548
+115.217 -1.039
+115.283 -0.515
+115.35 -1.210
+115.417 -0.991
+115.483 -0.976
+115.55 -1.367
+115.617 -1.352
+115.683 -1.338
+115.75 -1.833
+115.817 -2.428
+115.883 -2.314
+115.95 -1.895
+116.017 -2.595
+116.083 -2.380
+116.15 -2.776
+116.217 -2.561
+116.283 -2.956
+116.35 -3.861
+116.417 -3.547
+116.483 -3.132
+116.55 -3.328
+116.617 -2.913
+116.683 -3.108
+116.75 -3.813
+116.817 -3.908
+116.883 -3.599
+116.95 -4.304
+117.017 -3.894
+117.083 -3.889
+117.15 -4.394
+117.217 -7.947
+117.283 -8.047
+117.35 -7.637
+117.417 -7.637
+117.483 -7.432
+117.55 -6.823
+117.617 -6.213
+117.683 -6.418
+117.75 -6.623
+117.817 -6.118
+117.883 -6.628
+117.95 -6.732
+118.017 -6.432
+118.083 -6.437
+118.15 -6.442
+118.217 -5.532
+118.283 -5.742
+118.35 -5.952
+118.417 -6.061
+118.483 -5.256
+118.55 -5.061
+118.617 -5.171
+118.683 -5.180
+118.75 -5.495
+118.817 -5.200
+118.883 -5.719
+118.95 -5.324
+119.017 -5.128
+119.083 -4.738
+119.15 -4.038
+119.217 -3.543
+119.283 -3.352
+119.35 -3.976
+119.417 -4.091
+119.483 -4.715
+119.55 -4.424
+119.617 -4.744
+119.683 -4.148
+119.75 -4.163
+119.817 -4.382
+119.883 -4.092
+119.95 -3.701
+120.217 -3.359
+120.283 -3.578
+120.35 -3.797
+120.417 -3.612
+120.483 -3.526
+120.55 -3.136
+120.617 -2.340
+120.683 -2.864
+120.75 -3.388
+120.817 -3.303
+120.883 -2.912
+120.95 -3.032
+121.017 -3.251
+121.083 -3.470
+121.15 -3.689
+121.217 -3.704
+121.283 -3.313
+121.35 -3.228
+121.417 -3.242
+121.483 -3.256
+121.55 -3.476
+121.617 -3.490
+121.683 -3.300
+121.75 -3.314
+121.817 -2.719
+121.883 -3.138
+121.95 -3.252
+122.017 -3.062
+122.083 -2.872
+122.15 -3.391
+122.217 -2.996
+122.283 -3.210
+122.35 -3.120
+122.417 -2.825
+122.483 -2.834
+122.55 -3.149
+122.617 -3.158
+122.683 -3.268
+122.75 -3.073
+122.817 -2.977
+122.883 -3.087
+122.95 -3.601
+123.017 -3.811
+123.083 -3.816
+123.15 -4.125
+123.217 -3.521
+123.283 -3.625
+123.35 -4.035
+123.417 -4.140
+123.483 -4.854
+123.55 -5.059
+123.617 -4.959
+123.683 -4.349
+123.75 -4.045
+123.817 -3.130
+123.883 -3.435
+123.95 -3.230
+124.017 -3.635
+124.083 -3.430
+124.15 -3.935
+124.217 -4.135
+124.283 -4.335
+124.35 -4.330
+124.417 -4.630
+124.483 -4.016
+124.55 -3.706
+124.617 -3.192
+124.683 -3.592
+124.75 -2.773
+124.817 -3.173
+124.883 -3.368
+124.95 -3.158
+125.017 -3.353
+125.083 -3.953
+125.15 -2.929
+125.217 -3.225
+125.283 -2.505
+125.35 -2.496
+125.417 -1.976
+125.483 -2.272
+125.55 -1.652
+125.617 -1.438
+125.683 -1.733
+125.75 -2.128
+125.817 -1.914
+125.883 -2.309
+125.95 -2.095
+126.017 -1.880
+126.083 -1.971
+126.15 -2.366
+126.217 -2.152
+126.283 -1.937
+126.35 -2.028
+126.417 -1.608
+126.483 -2.308
+126.55 -2.704
+126.617 -1.880
+126.683 -1.665
+126.75 -2.060
+126.817 -1.541
+126.883 -1.327
+126.95 -2.027
+127.017 -2.017
+127.083 -1.498
+127.15 -1.488
+127.217 -1.884
+127.283 -2.788
+127.35 -2.779
+127.417 -3.074
+127.483 -2.455
+127.55 -2.345
+127.617 -2.336
+127.683 -2.531
+127.75 -3.031
+127.817 -3.226
+127.883 -3.421
+127.95 -3.212
+128.017 -3.407
+128.083 -3.502
+128.15 -3.597
+128.217 -3.592
+128.283 -3.688
+128.35 -3.683
+128.417 -3.678
+128.483 -3.064
+128.55 -2.654
+128.617 -3.259
+128.683 -3.764
+128.75 -4.168
+128.817 -4.064
+128.883 -4.468
+128.95 -4.873
+129.017 -4.668
+129.083 -4.668
+129.15 -4.973
+129.217 -5.278
+129.283 -5.583
+129.35 -5.483
+129.417 -5.688
+129.483 -5.588
+129.55 -5.388
+129.617 -5.188
+129.683 -5.597
+129.75 -5.702
+129.817 -5.707
+129.883 -6.016
+129.95 -6.631
+130.017 -7.145
+130.083 -7.050
+130.15 -6.955
+130.217 -6.760
+130.283 -7.579
+130.35 -7.688
+130.417 -8.103
+130.483 -7.503
+130.55 -7.512
+130.617 -7.522
+130.683 -7.227
+130.75 -7.236
+130.817 -7.451
+130.883 -7.360
+130.95 -7.575
+131.017 -7.080
+131.083 -6.684
+131.15 -6.189
+131.217 -5.999
+131.283 -6.113
+131.35 -6.532
+131.417 -6.647
+131.483 -6.661
+131.55 -6.471
+131.617 -6.180
+131.683 -6.500
+131.75 -6.919
+131.817 -6.933
+131.883 -6.338
+131.95 -6.048
+132.017 -5.757
+132.083 -5.772
+132.15 -5.786
+132.217 -5.800
+132.283 -5.410
+132.35 -4.815
+132.417 -4.525
+132.483 -4.234
+132.55 -4.553
+132.617 -4.668
+132.683 -4.682
+132.75 -4.087
+132.817 -4.406
+132.883 -4.216
+132.95 -4.330
+133.017 -3.735
+133.083 -3.545
+133.15 -3.049
+133.217 -3.164
+133.283 -3.378
+133.35 -3.797
+133.417 -3.707
+133.483 -3.821
+133.55 -4.341
+133.617 -4.045
+133.683 -3.955
+133.75 -3.965
+133.817 -3.669
+133.883 -3.679
+133.95 -3.384
+134.017 -3.189
+134.083 -3.298
+134.15 -3.408
+134.217 -3.213
+134.283 -3.422
+134.35 -3.632
+134.417 -3.637
+134.483 -3.846
+134.55 -3.546
+134.617 -3.651
+134.683 -3.656
+134.75 -3.456
+134.817 -3.561
+134.883 -3.461
+134.95 -3.361
+135.017 -3.565
+135.083 -3.565
+135.15 -3.565
+135.217 -3.970
+135.283 -4.275
+135.35 -3.865
+135.417 -3.965
+135.483 -4.165
+135.55 -3.756
+135.617 -4.056
+135.683 -3.951
+135.75 -4.046
+135.817 -3.737
+135.883 -3.832
+135.95 -3.722
+136.017 -3.817
+136.083 -3.708
+136.15 -4.208
+136.217 -3.893
+136.283 -4.189
+136.35 -4.484
+136.417 -4.269
+136.483 -4.260
+136.55 -4.450
+136.617 -3.931
+136.683 -4.121
+136.75 -3.907
+136.817 -3.893
+136.883 -4.083
+136.95 -4.069
+137.017 -4.259
+137.083 -4.345
+137.15 -4.330
+137.217 -4.011
+137.283 -3.792
+137.35 -4.487
+137.417 -4.573
+137.483 -4.353
+137.55 -4.134
+137.617 -4.320
+137.683 -4.405
+137.75 -4.591
+137.817 -4.776
+137.883 -4.962
+137.95 -5.352
+138.017 -5.233
+138.083 -5.519
+138.15 -5.704
+138.217 -5.585
+138.283 -5.466
+138.35 -5.347
+138.417 -5.023
+138.483 -4.904
+138.55 -4.784
+138.617 -4.970
+138.683 -4.546
+138.75 -5.341
+138.817 -5.222
+138.883 -5.103
+138.95 -4.984
+139.017 -5.169
+139.083 -5.050
+139.15 -5.136
+139.217 -5.321
+139.283 -5.407
+139.35 -5.188
+139.417 -4.968
+139.483 -5.054
+139.55 -4.835
+139.617 -4.516
+139.683 -4.906
+139.75 -4.892
+139.817 -4.268
+139.883 -4.253
+139.95 -3.834
+140.017 -3.820
+140.083 -4.010
+140.15 -4.505
+140.217 -4.291
+140.283 -4.481
+140.35 -4.876
+140.417 -4.357
+140.483 -4.143
+140.55 -3.828
+140.617 -3.819
+140.683 -3.809
+140.75 -3.495
+140.817 -3.995
+140.883 -3.580
+140.95 -3.776
+141.017 -3.666
+141.083 -3.152
+141.15 -3.247
+141.217 -3.547
+141.283 -3.947
+141.35 -3.637
+141.417 -3.837
+141.483 -3.832
+141.55 -3.423
+141.617 -3.013
+141.683 -3.418
+141.75 -3.823
+141.817 -3.618
+141.883 -4.328
+141.95 -4.632
+142.017 -4.632
+142.083 -4.837
+142.15 -4.532
diff --git a/doc/examples/tsunami/output.gfs b/doc/examples/tsunami/output.gfs
new file mode 100644
index 0000000..a1e22e1
--- /dev/null
+++ b/doc/examples/tsunami/output.gfs
@@ -0,0 +1,115 @@
+# Cocos Islands, Australia
+OutputScalarStats { istep = 1 } coco.txt {
+   v = (P > 0.01 ? H : NODATA) condition = close_enough(96.88,-12.13)
+}
+OutputLocation { istep = 1 } cocoloc.txt 96.88 -12.13 -1 { interpolate = 0 }
+# Colombo, Sri Lanka
+OutputScalarStats { istep = 1 } colo.txt {
+   v = (P > 0.01 ? H : NODATA) condition = close_enough(79.83,6.93)
+}
+OutputLocation { istep = 1 } cololoc.txt 79.83 6.93 -1 { interpolate = 0 }
+# Hanimaadhoo, Maldives
+OutputScalarStats { istep = 1 } hani.txt {
+   v = (P > 0.01 ? H : NODATA) condition = close_enough(73.18,6.77)
+}
+OutputLocation { istep = 1 } haniloc.txt 73.18 6.77 -1 { interpolate = 0 }
+# Male, Maldives
+OutputScalarStats { istep = 1 } male.txt {
+   v = (P > 0.01 ? H : NODATA) condition = close_enough(73.52,4.18)
+}
+OutputLocation { istep = 1 } maleloc.txt 73.52 4.18 -1 { interpolate = 0 }
+# Gan, Maldives
+OutputScalarStats { istep = 1 } gana.txt {
+   v = (P > 0.01 ? H : NODATA) condition = close_enough(73.17,-0.68)
+}
+OutputLocation { istep = 1 } ganaloc.txt 73.17 -0.68 -1 { interpolate = 0 }
+# Diego Garcia, UK
+OutputScalarStats { istep = 1 } dieg.txt {
+   v = (P > 0.01 ? H : NODATA) condition = close_enough(72.38,-7.3)
+}
+OutputLocation { istep = 1 } diegloc.txt 72.38 -7.3 -1 { interpolate = 0 }
+# Rodriguez I., Mauritius
+OutputScalarStats { istep = 1 } rodr.txt {
+   v = (P > 0.01 ? H : NODATA) condition = close_enough(63.42,-19.67)
+}
+OutputLocation { istep = 1 } rodrloc.txt 63.42 -19.67 -1 { interpolate = 0 }
+# Port Louis, Mauritius
+OutputScalarStats { istep = 1 } loui.txt {
+   v = (P > 0.01 ? H : NODATA) condition = close_enough(57.5,-20.15)
+}
+OutputLocation { istep = 1 } louiloc.txt 57.5 -20.15 -1 { interpolate = 0 }
+# La Reunion, France
+OutputScalarStats { istep = 1 } lare.txt {
+   v = (P > 0.01 ? H : NODATA) condition = close_enough(55.3,-20.92)
+}
+OutputLocation { istep = 1 } lareloc.txt 55.3 -20.92 -1 { interpolate = 0 }
+# Hillarys, Australia
+OutputScalarStats { istep = 1 } hill.txt {
+   v = (P > 0.01 ? H : NODATA) condition = close_enough(115.73,-31.82)
+}
+OutputLocation { istep = 1 } hillloc.txt 115.73 -31.82 -1 { interpolate = 0 }
+# Salalah, Oman
+OutputScalarStats { istep = 1 } sala.txt {
+   v = (P > 0.01 ? H : NODATA) condition = close_enough(54,17)
+}
+OutputLocation { istep = 1 } salaloc.txt 54 17 -1 { interpolate = 0 }
+# Pointe La Rue, Seychelles
+OutputScalarStats { istep = 1 } laru.txt {
+   v = (P > 0.01 ? H : NODATA) condition = close_enough(55.53,-4.68)
+}
+OutputLocation { istep = 1 } laruloc.txt 55.53 -4.68 -1 { interpolate = 0 }
+# Lamu, Kenya
+OutputScalarStats { istep = 1 } lamu.txt {
+   v = (P > 0.01 ? H : NODATA) condition = close_enough(40.9,-2.27)
+}
+OutputLocation { istep = 1 } lamuloc.txt 40.9 -2.27 -1 { interpolate = 0 }
+# Zanzibar, Tanzania
+OutputScalarStats { istep = 1 } zanz.txt {
+   v = (P > 0.01 ? H : NODATA) condition = close_enough(39.18,-6.15)
+}
+OutputLocation { istep = 1 } zanzloc.txt 39.18 -6.15 -1 { interpolate = 0 }
+# Chennai, India
+OutputScalarStats { istep = 1 } chen.txt {
+   v = (P > 0.01 ? H : NODATA) condition = close_enough(80.3,13.1)
+}
+OutputLocation { istep = 1 } chenloc.txt 80.3 13.1 -1 { interpolate = 0 }
+# Paradip, India
+OutputScalarStats { istep = 1 } para.txt {
+   v = (P > 0.01 ? H : NODATA) condition = close_enough(86.7,20.26)
+}
+OutputLocation { istep = 1 } paraloc.txt 86.7 20.26 -1 { interpolate = 0 }
+# Visakhapatnam, India
+OutputScalarStats { istep = 1 } visa.txt {
+   v = (P > 0.01 ? H : NODATA) condition = close_enough(83.28,17.68)
+}
+OutputLocation { istep = 1 } visaloc.txt 83.28 17.68 -1 { interpolate = 0 }
+# Kochi, India
+OutputScalarStats { istep = 1 } koch.txt {
+   v = (P > 0.01 ? H : NODATA) condition = close_enough(76.26,9.96)
+}
+OutputLocation { istep = 1 } kochloc.txt 76.26 9.96 -1 { interpolate = 0 }
+# Mormugao, India
+OutputScalarStats { istep = 1 } morm.txt {
+   v = (P > 0.01 ? H : NODATA) condition = close_enough(73.8,15.42)
+}
+OutputLocation { istep = 1 } mormloc.txt 73.8 15.42 -1 { interpolate = 0 }
+# Okha, India
+OutputScalarStats { istep = 1 } okha.txt {
+   v = (P > 0.01 ? H : NODATA) condition = close_enough(69.08,22.47)
+}
+OutputLocation { istep = 1 } okhaloc.txt 69.08 22.47 -1 { interpolate = 0 }
+# Tuticorin, India
+OutputScalarStats { istep = 1 } tuti.txt {
+   v = (P > 0.01 ? H : NODATA) condition = close_enough(78.15,8.8)
+}
+OutputLocation { istep = 1 } tutiloc.txt 78.15 8.8 -1 { interpolate = 0 }
+# Tarutao, Thailand
+OutputScalarStats { istep = 1 } taru.txt {
+   v = (P > 0.01 ? H : NODATA) condition = close_enough(99.65,6.702)
+}
+OutputLocation { istep = 1 } taruloc.txt 99.65 6.702 -1 { interpolate = 0 }
+# Tapaonoi, Thailand
+OutputScalarStats { istep = 1 } tapa.txt {
+   v = (P > 0.01 ? H : NODATA) condition = close_enough(98.425,7.765)
+}
+OutputLocation { istep = 1 } tapaloc.txt 98.425 7.765 -1 { interpolate = 0 }
diff --git a/doc/examples/tsunami/tsunami.gfs b/doc/examples/tsunami/tsunami.gfs
new file mode 100644
index 0000000..d456522
--- /dev/null
+++ b/doc/examples/tsunami/tsunami.gfs
@@ -0,0 +1,382 @@
+# Title: The 2004 Indian Ocean tsunami
+#
+# Description:
+#
+# The 2004 Indian Ocean tsunami was caused by a large-scale fault
+# rupture ($> 1000$ km) at the Indian--Australian and
+# Eurasian--Andaman plate boundaries. This example uses the fault
+# model of Grilli et al. \cite{grilli2007} as initial conditions to a
+# Saint-Venant solution of the subsequent tsunami. The evolution of
+# the wave elevation is illustrated in the animation of Figure
+# \ref{h}.a. Adaptivity is used to track the various wave fronts
+# (Figure and animation \ref{h}.b) and the terrain is reconstructed
+# dynamically based on the
+# \htmladdnormallinkfoot{ETOPO1}{http://www.ngdc.noaa.gov/mgg/global/global.html}
+# dataset.
+#
+# \begin{figure}[htbp]
+# \caption{\label{h}(a) Animation of wave elevation. Dark red is
+# larger than 2 m, dark red smaller than -2 m. (b) Animation of
+# adaptive level of refinement. Dark red is 0.8 nautical miles, dark
+# blue is 101 nautical miles.}
+# \begin{center}
+# \begin{tabular}{cc}
+# \htmladdnormallinkfoot{\includegraphics[width=0.5\hsize]{h.eps}}{h.mpg} &
+# \htmladdnormallinkfoot{\includegraphics[width=0.5\hsize]{level.eps}}{level.mpg} \\
+# (a) & (b)
+# \end{tabular}
+# \end{center}
+# \end{figure}
+#
+# The maximum wave elevation reached over 10 hours after fault rupture
+# is illustrated on Figure \ref{elevation}.
+#
+# \begin{figure}[htbp]
+# \caption{\label{elevation}Maximum wave elevation reached over 10
+# hours, 1 metre interval contours. (a) Bay of Bengal, dark blue zero,
+# dark red $>5$ m. (b) Detail near Northern Sumatra and Thailand, dark
+# blue zero, dark red $> 8$ m.}
+# \begin{center}
+# \begin{tabular}{cc}
+# \includegraphics[width=0.5\hsize]{hmax.eps} &
+# \includegraphics[width=0.5\hsize]{hmax-detail.eps} \\
+# (a) & (b)
+# \end{tabular}
+# \end{center}
+# \end{figure}
+#
+# Finally Figure \ref{data} gives a comparison of the observed (using
+# tide gauges) and modelled timeseries at specific locations in the
+# Indian Ocean. Figure \ref{jason} gives a comparison of the modelled wave
+# profile with the profile observed by the Jason-1 satellite altimeter.
+#
+# \begin{figure}[htbp]
+# \caption{\label{data}Observed and modelled time-series of wave
+# elevation (metres) at different tide gauge locations. Horizontal
+# axis is time in hours after the initial fault rupture.}
+# \begin{center}
+# \begin{tabular}{cc}
+# \includegraphics[width=0.5\hsize]{hani.eps} &
+# \includegraphics[width=0.5\hsize]{dieg.eps} \\
+# Hannimaadhoo, Maldives & Diego Garcia \\
+# \includegraphics[width=0.5\hsize]{male.eps} &
+# \includegraphics[width=0.5\hsize]{colo.eps} \\
+# Male, Maldives & Columbo, Sri Lanka \\
+# \includegraphics[width=0.5\hsize]{gana.eps} \\
+# Gan, Maldives
+# \end{tabular}
+# \end{center}
+# \end{figure}
+#
+# \begin{figure}[htbp]
+# \caption{\label{jason}Observed (Jason-1 satellite altimeter) and modelled wave profiles.}
+# \begin{center}
+# \includegraphics[width=0.8\hsize]{jason.eps}
+# \end{center}
+# \end{figure}
+#
+# More details on this simulation and the method used is given in
+# \cite{popinet2011}.
+#
+# Author: St\'ephane Popinet
+# Command: gerris2D -m tsunami.gfs | gfsview2D tsunami.gfv
+# Required files: output.gfs tsunami.gfv h.gfv level.gfv hmax.gfv hmax-detail.gfv hanires.txt diegres.txt maleres.txt colores.txt ganares.txt jason.xy jasonres.txt
+# Version: 110107
+# Running time: 
+# Generated files: h.eps level.eps h.mpg level.mpg hmax.eps hmax-detail.eps hani.eps dieg.eps male.eps colo.eps gana.eps jason.eps
+
+# the radius of the Earth (in meters) 
+Define RADIUS 6371220.
+# the size of the domain
+Define LENGTH 6000e3
+# the domain is centered on 94E, 8N
+Define LONGITUDE 94.
+Define LATITUDE 8.
+# anywhere with a fluid depth < 1 cm is considered dry
+Define DRY 0.01
+# 12 levels of refinement max i.e. a maximum resolution of 6000e3/2^12 = 1464 m
+Define MAXLEVEL 12
+# keep a coarse band, 0.04 wide, on all boundaries of the domain
+# these act as "sponges" before the waves exit the domain
+Define LEVEL (fabs (rx) < 0.46 && fabs (ry) < 0.46 ? MAXLEVEL : 5)
+
+1 0 GfsRiver GfsBox GfsGEdge {} {
+    PhysicalParams { 
+	# length of the domain (m)
+	L = LENGTH 
+        # gravity is 9.81 m/s^2
+	g = 9.81
+	# from now on, units have been chosen to be metres and seconds
+    }
+    # use the longitude/latitude metric. x and y coordinates are now
+    # longitude and latitude in degrees
+    MetricLonLat M RADIUS
+    # shift the origin to where we want it
+    MapTransform { tx = LONGITUDE ty = LATITUDE }
+    # 10 hours
+    Time { end = 36000 }
+    # use the terrain module for topography
+    GModule terrain
+    # use the okada module for initial deformations
+    GModule okada
+    Refine 5
+    # maintain Zb as the terrain elevation defined by the samples in
+    # ETOPO1
+    # the 'etopo1' database needs to have been created beforehand and
+    # be accessible within GFS_TERRAIN_PATH, see the 'terrain' module
+    # documentation above
+    VariableTerrain Zb {
+        basename = etopo1
+    } {
+	# preserve lake-at-rest balance (but not volume) when
+	# reconstructing bathymetry
+	reconstruct = 1 
+    }
+
+    # the default minmod limiter is too dissipative for tsunamis
+    AdvectionParams { gradient = gfs_center_sweby_gradient }
+
+    # deformation from Grilli et al, 2007, Table 1
+    # 5 segments triggered at different times
+
+    # Segment 1
+    Init {} { D = 0 }
+    InitOkada D {
+	x = 94.57 y = 3.83
+	depth = 11.4857e3
+	strike = 323 dip = 12 rake = 90
+	length = 220e3 width = 130e3
+	U = 18
+    }
+    # Initial water level is at z = D
+    Init { start = 0 } { P = MAX (0., D - Zb) }
+
+    # Segment 2
+    EventList { start = 212 step = 6 end = 272 } {
+	Init {} { D = 0 }
+	InitOkada D {
+	    x = 93.90 y = 5.22
+	    depth = 11.4857e3
+	    strike = 348 dip = 12 rake = 90
+	    length = 150e3 width = 130e3
+	    U = 23
+	}
+    }
+    # make sure the deformation is well resolved
+    AdaptGradient { start = 212 istep = 1 end = 272 } {
+	cmax = 0.05 cfactor = 2
+	minlevel = 5 maxlevel = LEVEL 
+    } D
+    # add it to the current elevation field (only if wet)
+    Init { start = 272 } { P = (P < DRY ? P : MAX (0., P + D)) }
+
+    # Segment 3
+    EventList { start = 528 step = 6 end = 588 } {
+	Init {} { D = 0 }
+	InitOkada D {
+	    x = 93.21 y = 7.41
+	    depth = 12.525e3
+	    strike = 338 dip = 12 rake = 90
+	    length = 390e3 width = 120e3
+	    U = 12
+	}
+    }
+    # make sure the deformation is well resolved
+    AdaptGradient { start = 528 istep = 1 end = 588 } {
+	cmax = 0.05 cfactor = 2
+	minlevel = 5 maxlevel = LEVEL 
+    } D
+    # add it to the current elevation field (only if wet)
+    Init { start = 588 } { P = (P < DRY ? P : MAX (0., P + D)) }
+
+    # Segment 4
+    EventList { start = 853 step = 6 end = 913 } {
+	Init {} { D = 0 }
+	InitOkada D {
+	    x = 92.60 y = 9.70
+	    depth = 15.12419e3
+	    strike = 356 dip = 12 rake = 90
+	    length = 150e3 width = 95e3
+	    U = 12
+	}
+    }
+    # make sure the deformation is well resolved
+    AdaptGradient { start = 853 istep = 1 end = 913 } {
+	cmax = 0.05 cfactor = 2
+	minlevel = 5 maxlevel = LEVEL 
+    } D	
+    # add it to the current elevation field (only if wet)
+    Init { start = 913 } { P = (P < DRY ? P : MAX (0., P + D)) }
+
+    # Segment 5
+    EventList { start = 1213 step = 6 end = 1273 } {
+	Init {} { D = 0 }
+	InitOkada D {
+	    x = 92.87 y = 11.70
+	    depth = 15.12419e3
+	    strike = 10 dip = 12 rake = 90
+	    length = 350e3 width = 95e3
+	    U = 12
+	}
+    }
+    # make sure the deformation is well resolved
+    AdaptGradient { start = 1213 istep = 1 end = 1273 } {
+	cmax = 0.05 cfactor = 2
+	minlevel = 5 maxlevel = LEVEL 
+    } D	
+    # add it to the current elevation field (only if wet)
+    Init { start = 1273 } { P = (P < DRY ? P : MAX (0., P + D)) }
+
+    # we don't want the arrival time to be interpolated from coarse
+    # to fine, so we make it a "boolean" variable
+    VariableBoolean Atime
+    Init {} {
+	P = MAX (0., D - Zb)
+	Pmax = 0.
+	Atime = -1.
+    }
+
+    Init { istep = 1 } {
+	# elevation of the wet surface
+	Hwet = (P > DRY ? H : NODATA)
+	# maximum amplitude
+	Pmax = (P > DRY && H > Pmax ? H : Pmax)
+	# arrival time for an amplitude of +- 5 cm
+	Atime = (Atime >= 0. ? Atime : P > DRY && fabs (H) > 5e-2 ? t : -1.)
+	# implicit scheme for quadratic bottom friction with coefficient 1e-3
+        U = P > DRY ? U/(1. + dt*Velocity*1e-3/P) : 0
+        V = P > DRY ? V/(1. + dt*Velocity*1e-3/P) : 0
+    }
+
+    # adapt on gradient of wet surface elevation
+    # with a tolerance of 5 cm
+    AdaptGradient { istep = 1 } {
+	cmax = 0.05 cfactor = 2
+	minlevel = 5 maxlevel = LEVEL 
+    } (P < DRY ? 0. : P + Zb)
+
+    # also keep enough resolution to resolve the maximum elevation
+    # field with a 5 cm discretisation error max
+    AdaptError { istep = 1 } {
+    	cmax = 0.05
+    	minlevel = 5 maxlevel = LEVEL 
+    } Pmax
+    
+    Global {
+	#define RESOLUTION (LENGTH/pow (2, MAXLEVEL))
+	#define close_enough(x,y) (distance(x,y,0.) < RESOLUTION)
+    }
+    # include a list of locations for which to output timeseries
+    Include output.gfs
+
+    # Jason profiles
+    OutputLocation { start = 6900 } jason.txt jason.xy
+
+    OutputTime { istep = 1 } stderr
+    OutputBalance { istep = 1 } stderr
+    OutputTiming { istep = 100 } stderr
+
+    # save a snapshot every 100 iterations
+    EventScript { istep = 100 } { rm -f snapshot-*.gfs }
+    OutputSimulation { istep = 100 } snapshot-%ld.gfs
+
+    # output solution on standard output every 20 timesteps
+    # for on-the-fly visualisation with GfsView
+    OutputSimulation { istep = 20 } stdout
+
+    # ouput solution every 900 seconds (15 minutes)
+    OutputSimulation { step = 900 } sim-%g.gfs
+    EventScript { step = 900} { gzip -f sim-*.gfs }
+
+    OutputScalarStats { istep = 1 } p { v = P }
+    OutputScalarNorm { istep = 1 } u { v = Velocity }
+    OutputScalarNorm { istep = 1 } U { v = U }
+    OutputScalarNorm { istep = 1 } V { v = V }
+    OutputScalarNorm { istep = 1 } hwet { v = Hwet }
+
+    # animation of the wave elevation
+    GModule gfsview
+    OutputView { step = 60 } { ppm2mpeg > h.mpg } { 
+	width = 800 height = 700
+    } h.gfv
+    OutputView { start = 7200 } { convert ppm:- eps2:h.eps } { 
+	width = 800 height = 700
+    } h.gfv
+    # animation of the level of refinement
+    OutputView { step = 60 } { ppm2mpeg > level.mpg } { 
+	width = 800 height = 700
+    } level.gfv
+    OutputView { start = 7200 } { convert ppm:- eps2:level.eps } { 
+	width = 800 height = 700 
+    } level.gfv
+    # animation of the velocity
+    OutputPPM { step = 60 } { ppm2mpeg > velocity.mpg } {
+	maxlevel = 10
+	v = Velocity 
+	min = 0 max = 0.25
+    }
+    # animation of the topography
+    OutputPPM { step = 60 } { ppm2mpeg > zb.mpg } {
+	maxlevel = 10
+	v = Zb
+    }
+    # graphics
+    OutputView { start = end } { convert ppm:- eps2:hmax.eps } { 
+	width = 1600 height = 1600
+    } hmax.gfv
+    OutputView { start = end } { convert ppm:- eps2:hmax-detail.eps } { 
+	width = 1600 height = 1600
+    } hmax-detail.gfv
+    EventScript { start = end } {
+	# timeseries at specific locations
+	gnuplot <<EOF
+set term postscript eps color lw 2 size 5,2 18
+
+set size ratio 0.4
+
+set output 'hani.eps'
+plot [3:5]'hanires.txt' u 1:(\$2/100.) w lp t 'observed' ps 2, \
+           'hani.txt' u (\$3/3600.):7 w l t 'modelled'
+
+set output 'male.eps'
+plot [3:5]'maleres.txt' u 1:(\$2/100.) w lp t 'observed' ps 2, \
+           'male.txt' u (\$3/3600.):7 w l t 'modelled'
+
+set output 'gana.eps'
+plot [3:5]'ganares.txt' u 1:(\$2/100.) w lp t 'observed' ps 2, \
+           'gana.txt' u (\$3/3600.):7 w l t 'modelled'
+
+set output 'dieg.eps'
+plot [3:5]'diegres.txt' u 1:(\$2/100.) w lp t 'observed' ps 2, \
+           'dieg.txt' u (\$3/3600.):7 w l t 'modelled'
+
+set output 'colo.eps'
+plot [2.5:4.5]'colores.txt' u 1:(\$2/100.) w lp t 'observed' ps 2, \
+           'colo.txt' u (\$3/3600.):7 w l t 'modelled'
+
+set output 'jason.eps'
+set xlabel 'Latitude (deg)'
+set ylabel 'Elevation (m)'
+plot [-6:20][-1:1]'jasonres.txt' u 2:4 w l t 'observed', \
+           'jason.txt' u 3:(\$3 > 19.2 ? 0 : \$8) w l t 'modelled'
+EOF
+    }
+} {
+    dry = DRY
+}
+GfsBox {
+    # inflow/outflow on all boundaries with a reference water level at
+    # z = 0
+    top = Boundary {
+	BcSubcritical V -Zb
+    }
+    bottom = Boundary {
+	BcSubcritical V -Zb
+    }
+    right = Boundary {
+	BcSubcritical U -Zb
+    }
+    left = Boundary {
+	BcSubcritical U -Zb
+    }
+}
diff --git a/doc/examples/tsunami/tsunami.gfv b/doc/examples/tsunami/tsunami.gfv
new file mode 100644
index 0000000..894c7c9
--- /dev/null
+++ b/doc/examples/tsunami/tsunami.gfv
@@ -0,0 +1,50 @@
+# GfsView 2D
+View {
+  tx = -0.143643 ty = -0.00866483
+  sx = 1 sy = 1 sz = 1
+  q0 = 0 q1 = 0 q2 = 0 q3 = 1
+  fov = 25.226
+  r = 0.3 g = 0.4 b = 0.6
+  res = 1
+  lc = 0.001
+  reactivity = 0.1
+}
+Linear {
+  r = 1 g = 1 b = 1
+  shading = Constant
+  maxlevel = -1
+  font_size = 1
+  raster_font = 1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} P > 1e-2 ? P + Zb : NODATA {
+  amin = 0 min = -1
+  amax = 0 max = 1
+  show = 1
+  cmap = Jet
+} 0 {
+  reversed = 0
+  use_scalar = 1
+}
+Label {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = 6
+  font_size = 3
+  raster_font = 1
+} {
+  x = 66.97 y = 29.0529 z = 0
+  label = "t = %g s"
+  symbol = 0
+}
+Location {
+  r = 0 g = 0 b = 1
+  shading = Constant
+  maxlevel = 5
+  font_size = 2
+  raster_font = 1
+} {
+  size = 0.4
+  label = 1
+}
diff --git a/doc/manpages/Makefile.am b/doc/manpages/Makefile.am
index cf7623b..c773b92 100644
--- a/doc/manpages/Makefile.am
+++ b/doc/manpages/Makefile.am
@@ -1,14 +1,11 @@
 dist_man_MANS = \
 	bat2gts.1 \
 	gerris2D.1 \
-	gerris2D3.1 \
 	gerris3D.1 \
 	gfs2gfs.1 \
 	gfs2oogl2D.1 \
-	gfs2oogl2D3.1 \
 	gfs2oogl3D.1 \
 	gfscompare2D.1 \
-	gfscompare2D3.1 \
 	gfscompare3D.1 \
 	gfs-config.1 \
 	gfs-highlight.1 \
@@ -17,6 +14,7 @@ dist_man_MANS = \
 	ppm2mpeg.1 \
 	ppmcombine.1 \
 	rsurfacequery.1 \
+	rsurfaceinfo.1 \
 	shapes.1 \
 	streamanime.1 \
 	xyz2rsurface.1 \
diff --git a/doc/manpages/Makefile.in b/doc/manpages/Makefile.in
index bc8f7bb..2e07ae4 100644
--- a/doc/manpages/Makefile.in
+++ b/doc/manpages/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11 from Makefile.am.
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -100,9 +100,10 @@ ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
 F77 = @F77@
+FC = @FC@
+FCFLAGS = @FCFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
-GFS2D3_LIBS = @GFS2D3_LIBS@
 GFS2D_LIBS = @GFS2D_LIBS@
 GFS3D_LIBS = @GFS3D_LIBS@
 GFS_COMPILATION_FLAGS = @GFS_COMPILATION_FLAGS@
@@ -137,6 +138,7 @@ LT_RELEASE = @LT_RELEASE@
 LT_REVISION = @LT_REVISION@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MODULES = @MODULES@
 NM = @NM@
@@ -144,6 +146,8 @@ NMEDIT = @NMEDIT@
 NO_UNDEFINED = @NO_UNDEFINED@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
+ODE_CFLAGS = @ODE_CFLAGS@
+ODE_LIBS = @ODE_LIBS@
 OTOOL = @OTOOL@
 OTOOL64 = @OTOOL64@
 PACKAGE = @PACKAGE@
@@ -165,9 +169,11 @@ abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
 ac_ct_F77 = @ac_ct_F77@
+ac_ct_FC = @ac_ct_FC@
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
 am__quote = @am__quote@
@@ -204,9 +210,9 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
+ode = @ode@
 oldincludedir = @oldincludedir@
 pdfdir = @pdfdir@
 prefix = @prefix@
@@ -224,14 +230,11 @@ use_mpicc = @use_mpicc@
 dist_man_MANS = \
 	bat2gts.1 \
 	gerris2D.1 \
-	gerris2D3.1 \
 	gerris3D.1 \
 	gfs2gfs.1 \
 	gfs2oogl2D.1 \
-	gfs2oogl2D3.1 \
 	gfs2oogl3D.1 \
 	gfscompare2D.1 \
-	gfscompare2D3.1 \
 	gfscompare3D.1 \
 	gfs-config.1 \
 	gfs-highlight.1 \
@@ -240,6 +243,7 @@ dist_man_MANS = \
 	ppm2mpeg.1 \
 	ppmcombine.1 \
 	rsurfacequery.1 \
+	rsurfaceinfo.1 \
 	shapes.1 \
 	streamanime.1 \
 	xyz2rsurface.1 \
diff --git a/doc/manpages/gerris2D.1 b/doc/manpages/gerris2D.1
index 46472bc..baa73e3 100644
--- a/doc/manpages/gerris2D.1
+++ b/doc/manpages/gerris2D.1
@@ -1,7 +1,7 @@
 .TH gerris 1 "July 9, 2008" "" "User Commands"
 
 .SH NAME
-gerris2D, gerris2D3, gerris3D \- the Gerris flow solver simulation engine.
+gerris2D, gerris3D \- the Gerris flow solver simulation engine.
 
 .SH SYNOPSIS
 .B gerris
diff --git a/doc/manpages/gerris2D3.1 b/doc/manpages/gerris2D3.1
deleted file mode 100644
index 6fe6b25..0000000
--- a/doc/manpages/gerris2D3.1
+++ /dev/null
@@ -1 +0,0 @@
-.so man1/gerris2D.1
diff --git a/doc/manpages/gfs2oogl2D.1 b/doc/manpages/gfs2oogl2D.1
index 1b23e63..da628ae 100644
--- a/doc/manpages/gfs2oogl2D.1
+++ b/doc/manpages/gfs2oogl2D.1
@@ -1,7 +1,7 @@
 .TH gfs2oogl 1 "July 9, 2008" "" "User Commands"
 
 .SH NAME
-gfs2oogl2D, gfs2oogl2D3, gfs2oogl3D \- converts a Gerris simulation file to other (graphical) formats.
+gfs2oogl2D, gfs2oogl3D \- converts a Gerris simulation file to other (graphical) formats.
 
 .SH SYNOPSIS
 .B gfs2oogl
diff --git a/doc/manpages/gfs2oogl2D3.1 b/doc/manpages/gfs2oogl2D3.1
deleted file mode 100644
index 676f9cf..0000000
--- a/doc/manpages/gfs2oogl2D3.1
+++ /dev/null
@@ -1 +0,0 @@
-.so man1/gfs2oogl2D.1
diff --git a/doc/manpages/gfscompare2D.1 b/doc/manpages/gfscompare2D.1
index 3682236..8ad3596 100644
--- a/doc/manpages/gfscompare2D.1
+++ b/doc/manpages/gfscompare2D.1
@@ -1,7 +1,7 @@
 .TH gfscompare 1 "July 10, 2008" "" "User Commands"
 
 .SH NAME
-gfscompare2D, gfscompare2D3, gfscompare3D \- computes the difference between the solutions in FILE1 and FILE2 for variable VAR.
+gfscompare2D, gfscompare3D \- computes the difference between the solutions in FILE1 and FILE2 for variable VAR.
 
 .SH SYNOPSIS
 .B gfscompare
diff --git a/doc/manpages/gfscompare2D3.1 b/doc/manpages/gfscompare2D3.1
deleted file mode 100644
index e4143ea..0000000
--- a/doc/manpages/gfscompare2D3.1
+++ /dev/null
@@ -1 +0,0 @@
-.so man1/gfscompare2D.1
diff --git a/doc/manpages/rsurfaceinfo.1 b/doc/manpages/rsurfaceinfo.1
new file mode 100644
index 0000000..82a19c6
--- /dev/null
+++ b/doc/manpages/rsurfaceinfo.1
@@ -0,0 +1,26 @@
+.TH rsurfaceinfo 1 "January 28, 2010" "" "User Commands"
+
+.SH NAME
+rsurfaceinfo \- displays info on a Gerris terrain database.
+
+.SH SYNOPSIS
+.B rsurfaceinfo
+.RI [OPTION]
+.RI BASENAME
+
+.SH DESCRIPTION
+Display information on a Gerris terrain database.
+
+.SH OPTIONS
+These programs follow the usual GNU command line syntax, with long
+options starting with two dashes (`-').
+A summary of options is included below.
+.TP
+.B \-d VAL, \-\-depth=VAL
+display detailed statistics for levels up to VAL
+.TP
+.B \-h, \-\-help
+Display the help and exit.
+
+.SH AUTHOR
+rsurfaceinfo was written by Stephane Popinet <s.popinet at niwa.co.nz>.
diff --git a/doc/manpages/rsurfacequery.1 b/doc/manpages/rsurfacequery.1
index 6fe6b25..f6481dd 100644
--- a/doc/manpages/rsurfacequery.1
+++ b/doc/manpages/rsurfacequery.1
@@ -1 +1,13 @@
-.so man1/gerris2D.1
+.TH rsurfacequery 1 "January 28, 2010" "" "User Commands"
+
+.SH NAME
+rsurfacequery \- queries a Gerris terrain database.
+
+.SH SYNOPSIS
+.B rsurfacequery
+.RI BASENAME
+.SH DESCRIPTION
+List the points of a Gerris terrain database contained within the list of bounding boxes given as input. The bounding boxes coordinates are given on standard input. The space-separated coordinates of the lower-left and upper-right corners are given on each line of standard input.
+
+.SH AUTHOR
+rsurfacequery was written by Stephane Popinet <s.popinet at niwa.co.nz>.
diff --git a/doc/share/autoclass.sh b/doc/share/autoclass.sh
new file mode 100644
index 0000000..58b1d08
--- /dev/null
+++ b/doc/share/autoclass.sh
@@ -0,0 +1 @@
+grep -o -n --colour=never '\\beginobject{.*}' ../src/*.[ch] | awk 'BEGIN{FS="{|}|:"}{print $1 ":" $2,$4}'
diff --git a/doc/share/darcs.css b/doc/share/darcs.css
index a1da05f..b9166df 100644
--- a/doc/share/darcs.css
+++ b/doc/share/darcs.css
@@ -1,6 +1,6 @@
 BODY {
   font: x-small sans-serif;
-  font-size: 14px;
+  font-size: 13px;
   background: white;
   color: black;
   margin: 0;
@@ -56,21 +56,25 @@ H1, H2, H3, H4 {
 }
 
 H1      {
-  font-size: 24px ;
+  font-size: 18px ;
 }
 
 H2      {
-  font-size: 18px;
+  font-size: 16px;
 }
 
 H3      {
-  font-size: 16px;
+  font-size: 15px;
 }
 
 H4      {
   font-size: 14px;
 }
 
+.caption table {
+  font-size: 12px;
+}
+
 /* GFS parameter files */
 
 .gfs .comment {
diff --git a/doc/share/doxfilter b/doc/share/doxfilter
new file mode 100644
index 0000000..f80f039
--- /dev/null
+++ b/doc/share/doxfilter
@@ -0,0 +1,6 @@
+sed -e 's/^\/\*\*$/\/*!/g' \
+    -e 's/^ \* @\(.*\):/ * \\param \1/g' \
+    -e 's/^ \* .*:$//g' \
+    -e 's/^ \* Returns:/ * \\return/g' \
+    -e 's/@\([a-z]*\)/<I>\1<\/I>/g' \
+    $1
diff --git a/doc/share/renamemodules b/doc/share/renamemodules
new file mode 100644
index 0000000..2a71dbc
--- /dev/null
+++ b/doc/share/renamemodules
@@ -0,0 +1,8 @@
+for f in *.html; do
+    sed -e 's/<span>Modules<\/span>/<span>Classes<\/span>/g' \
+        -e 's/>Modules</>Classes</g' \
+        -e 's/^Modules</Classes</g' \
+        -e 's/Here is a list of all modules:/Here is a list of all classes:/g' \
+	 < $f > $f.renamed
+    mv -f $f.renamed $f
+done
diff --git a/doc/tutorial/Makefile.am b/doc/tutorial/Makefile.am
index 9f52911..317e747 100644
--- a/doc/tutorial/Makefile.am
+++ b/doc/tutorial/Makefile.am
@@ -37,41 +37,41 @@ tutorial.pdf: tutorial1.dvi
 	ps2pdf -sPAPERSIZE=a4 -dMaxSubsetPct=100 -dCompatibilityLevel=1.2 -dSubsetFonts=true -dEmbedAllFonts=true tutorial1.ps tutorial.pdf
 	rm -f tutorial1.ps
 
-%.eps: %.xmgr
+.xmgr.eps:
 	/usr/local/grace/bin/xmgrace -noask -hardcopy -hdevice EPS -printfile $@ $<
 
-%.eps: %.agr
+.agr.eps:
 	/usr/local/grace/bin/xmgrace -noask -hardcopy -hdevice EPS -printfile $@ $<
 
-%.eps: %.fig
+.fig.eps:
 	fig2dev -L ps $< > $@ ; sh epsbbox.sh $@ 
 
-%.eps: %.jpeg
+.jpeg.eps:
 	convert $< $@.gif
 	convert $@.gif EPS:$@
 	- rm -f $@.gif
 
-%.eps: %.jpg
+.jpg.eps:
 	convert $< $@.gif
 	convert $@.gif EPS:$@
 	- rm -f $@.gif
 
-%.eps: %.gif
+.gif.eps:
 	convert $< EPS:$@
 
-%.eps: %.png
+.png.eps:
 	convert $< EPS:$@
 
-%.pdf: %.jpg
+.jpg.pdf:
 	convert $< EPDF:$@
 
-%.pdf: %.png
+.png.pdf:
 	convert $< EPDF:$@
 
-%.pdf: %.epsf
+.epsf.pdf:
 	epstopdf $<
 
-%.pdf: %.eps
+.eps.pdf:
 	epstopdf $<
 
 -include Makefile.deps
diff --git a/doc/tutorial/Makefile.in b/doc/tutorial/Makefile.in
index 99c586d..4a48de9 100644
--- a/doc/tutorial/Makefile.in
+++ b/doc/tutorial/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11 from Makefile.am.
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -74,9 +74,10 @@ ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
 F77 = @F77@
+FC = @FC@
+FCFLAGS = @FCFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
-GFS2D3_LIBS = @GFS2D3_LIBS@
 GFS2D_LIBS = @GFS2D_LIBS@
 GFS3D_LIBS = @GFS3D_LIBS@
 GFS_COMPILATION_FLAGS = @GFS_COMPILATION_FLAGS@
@@ -111,6 +112,7 @@ LT_RELEASE = @LT_RELEASE@
 LT_REVISION = @LT_REVISION@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MODULES = @MODULES@
 NM = @NM@
@@ -118,6 +120,8 @@ NMEDIT = @NMEDIT@
 NO_UNDEFINED = @NO_UNDEFINED@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
+ODE_CFLAGS = @ODE_CFLAGS@
+ODE_LIBS = @ODE_LIBS@
 OTOOL = @OTOOL@
 OTOOL64 = @OTOOL64@
 PACKAGE = @PACKAGE@
@@ -139,9 +143,11 @@ abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
 ac_ct_F77 = @ac_ct_F77@
+ac_ct_FC = @ac_ct_FC@
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
 am__quote = @am__quote@
@@ -178,9 +184,9 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
+ode = @ode@
 oldincludedir = @oldincludedir@
 pdfdir = @pdfdir@
 prefix = @prefix@
@@ -199,6 +205,7 @@ EXTRA_DIST = tutorial.tex depend.awk
 all: all-am
 
 .SUFFIXES:
+.SUFFIXES: .agr .eps .epsf .fig .gif .jpeg .jpg .pdf .png .xmgr
 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
@@ -413,41 +420,41 @@ tutorial.pdf: tutorial1.dvi
 	ps2pdf -sPAPERSIZE=a4 -dMaxSubsetPct=100 -dCompatibilityLevel=1.2 -dSubsetFonts=true -dEmbedAllFonts=true tutorial1.ps tutorial.pdf
 	rm -f tutorial1.ps
 
-%.eps: %.xmgr
+.xmgr.eps:
 	/usr/local/grace/bin/xmgrace -noask -hardcopy -hdevice EPS -printfile $@ $<
 
-%.eps: %.agr
+.agr.eps:
 	/usr/local/grace/bin/xmgrace -noask -hardcopy -hdevice EPS -printfile $@ $<
 
-%.eps: %.fig
+.fig.eps:
 	fig2dev -L ps $< > $@ ; sh epsbbox.sh $@ 
 
-%.eps: %.jpeg
+.jpeg.eps:
 	convert $< $@.gif
 	convert $@.gif EPS:$@
 	- rm -f $@.gif
 
-%.eps: %.jpg
+.jpg.eps:
 	convert $< $@.gif
 	convert $@.gif EPS:$@
 	- rm -f $@.gif
 
-%.eps: %.gif
+.gif.eps:
 	convert $< EPS:$@
 
-%.eps: %.png
+.png.eps:
 	convert $< EPS:$@
 
-%.pdf: %.jpg
+.jpg.pdf:
 	convert $< EPDF:$@
 
-%.pdf: %.png
+.png.pdf:
 	convert $< EPDF:$@
 
-%.pdf: %.epsf
+.epsf.pdf:
 	epstopdf $<
 
-%.pdf: %.eps
+.eps.pdf:
 	epstopdf $<
 
 -include Makefile.deps
diff --git a/doc/tutorial/tutorial.tex b/doc/tutorial/tutorial.tex
index 4f6cc7f..2c9666e 100644
--- a/doc/tutorial/tutorial.tex
+++ b/doc/tutorial/tutorial.tex
@@ -883,7 +883,7 @@ you will be able to start GfsView using:
 % gfsview2D half-cylinder-0.5.gfs
 \end{verbatim}
 Note that you can also install the most recent GfsView version using
-darcs and {\tt http://gfs.sourceforge.net/darcs/gfsview/gfsview-mainline} as source
+darcs and {\tt http://gerris.dalembert.upmc.fr/darcs/gfsview-stable} as source
 repository (you will also need to install Gerris this way, see section
 \ref{build_darcs} for details).
 
diff --git a/ltmain.sh b/ltmain.sh
index d88da2c..3061e3c 100755
--- a/ltmain.sh
+++ b/ltmain.sh
@@ -1,9 +1,9 @@
-# Generated from ltmain.m4sh.
 
-# ltmain.sh (GNU libtool) 2.2.6b
+# libtool (GNU libtool) 2.4
 # Written by Gordon Matzigkeit <gord at gnu.ai.mit.edu>, 1996
 
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 Free Software Foundation, Inc.
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
+# 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
 # This is free software; see the source for copying conditions.  There is NO
 # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
@@ -32,50 +32,56 @@
 #
 # Provide generalized library-building support services.
 #
-#     --config             show all configuration variables
-#     --debug              enable verbose shell tracing
-# -n, --dry-run            display commands without modifying any files
-#     --features           display basic configuration information and exit
-#     --mode=MODE          use operation mode MODE
-#     --preserve-dup-deps  don't remove duplicate dependency libraries
-#     --quiet, --silent    don't print informational messages
-#     --tag=TAG            use configuration variables from tag TAG
-# -v, --verbose            print informational messages (default)
-#     --version            print version information
-# -h, --help               print short or long help message
+#       --config             show all configuration variables
+#       --debug              enable verbose shell tracing
+#   -n, --dry-run            display commands without modifying any files
+#       --features           display basic configuration information and exit
+#       --mode=MODE          use operation mode MODE
+#       --preserve-dup-deps  don't remove duplicate dependency libraries
+#       --quiet, --silent    don't print informational messages
+#       --no-quiet, --no-silent
+#                            print informational messages (default)
+#       --tag=TAG            use configuration variables from tag TAG
+#   -v, --verbose            print more informational messages than default
+#       --no-verbose         don't print the extra informational messages
+#       --version            print version information
+#   -h, --help, --help-all   print short, long, or detailed help message
 #
 # MODE must be one of the following:
 #
-#       clean              remove files from the build directory
-#       compile            compile a source file into a libtool object
-#       execute            automatically set library path, then run a program
-#       finish             complete the installation of libtool libraries
-#       install            install libraries or executables
-#       link               create a library or an executable
-#       uninstall          remove libraries from an installed directory
+#         clean              remove files from the build directory
+#         compile            compile a source file into a libtool object
+#         execute            automatically set library path, then run a program
+#         finish             complete the installation of libtool libraries
+#         install            install libraries or executables
+#         link               create a library or an executable
+#         uninstall          remove libraries from an installed directory
 #
-# MODE-ARGS vary depending on the MODE.
+# MODE-ARGS vary depending on the MODE.  When passed as first option,
+# `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that.
 # Try `$progname --help --mode=MODE' for a more detailed description of MODE.
 #
 # When reporting a bug, please describe a test case to reproduce it and
 # include the following information:
 #
-#       host-triplet:	$host
-#       shell:		$SHELL
-#       compiler:		$LTCC
-#       compiler flags:		$LTCFLAGS
-#       linker:		$LD (gnu? $with_gnu_ld)
-#       $progname:		(GNU libtool) 2.2.6b Debian-2.2.6b-2
-#       automake:		$automake_version
-#       autoconf:		$autoconf_version
+#         host-triplet:	$host
+#         shell:		$SHELL
+#         compiler:		$LTCC
+#         compiler flags:		$LTCFLAGS
+#         linker:		$LD (gnu? $with_gnu_ld)
+#         $progname:	(GNU libtool) 2.4
+#         automake:	$automake_version
+#         autoconf:	$autoconf_version
 #
 # Report bugs to <bug-libtool at gnu.org>.
+# GNU libtool home page: <http://www.gnu.org/software/libtool/>.
+# General help using GNU software: <http://www.gnu.org/gethelp/>.
 
-PROGRAM=ltmain.sh
+PROGRAM=libtool
 PACKAGE=libtool
-VERSION="2.2.6b Debian-2.2.6b-2"
+VERSION=2.4
 TIMESTAMP=""
-package_revision=1.3017
+package_revision=1.3293
 
 # Be Bourne compatible
 if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
@@ -91,10 +97,15 @@ fi
 BIN_SH=xpg4; export BIN_SH # for Tru64
 DUALCASE=1; export DUALCASE # for MKS sh
 
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+  eval 'cat <<_LTECHO_EOF
+$1
+_LTECHO_EOF'
+}
+
 # NLS nuisances: We save the old values to restore during execute mode.
-# Only set LANG and LC_ALL to C if already set.
-# These must not be set unconditionally because not all systems understand
-# e.g. LANG=C (notably SCO).
 lt_user_locale=
 lt_safe_locale=
 for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
@@ -107,24 +118,33 @@ do
 	  lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\"
 	fi"
 done
+LC_ALL=C
+LANGUAGE=C
+export LANGUAGE LC_ALL
 
 $lt_unset CDPATH
 
 
+# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
+# is ksh but when the shell is invoked as "sh" and the current value of
+# the _XPG environment variable is not equal to 1 (one), the special
+# positional parameter $0, within a function call, is the name of the
+# function.
+progpath="$0"
 
 
 
 : ${CP="cp -f"}
-: ${ECHO="echo"}
-: ${EGREP="/bin/grep -E"}
-: ${FGREP="/bin/grep -F"}
-: ${GREP="/bin/grep"}
+test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'}
+: ${EGREP="grep -E"}
+: ${FGREP="grep -F"}
+: ${GREP="grep"}
 : ${LN_S="ln -s"}
 : ${MAKE="make"}
 : ${MKDIR="mkdir"}
 : ${MV="mv -f"}
 : ${RM="rm -f"}
-: ${SED="/bin/sed"}
+: ${SED="sed"}
 : ${SHELL="${CONFIG_SHELL-/bin/sh}"}
 : ${Xsed="$SED -e 1s/^X//"}
 
@@ -144,6 +164,27 @@ IFS=" 	$lt_nl"
 dirname="s,/[^/]*$,,"
 basename="s,^.*/,,"
 
+# func_dirname file append nondir_replacement
+# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
+# otherwise set result to NONDIR_REPLACEMENT.
+func_dirname ()
+{
+    func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
+    if test "X$func_dirname_result" = "X${1}"; then
+      func_dirname_result="${3}"
+    else
+      func_dirname_result="$func_dirname_result${2}"
+    fi
+} # func_dirname may be replaced by extended shell implementation
+
+
+# func_basename file
+func_basename ()
+{
+    func_basename_result=`$ECHO "${1}" | $SED "$basename"`
+} # func_basename may be replaced by extended shell implementation
+
+
 # func_dirname_and_basename file append nondir_replacement
 # perform func_basename and func_dirname in a single function
 # call:
@@ -158,33 +199,183 @@ basename="s,^.*/,,"
 # those functions but instead duplicate the functionality here.
 func_dirname_and_basename ()
 {
-  # Extract subdirectory from the argument.
-  func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"`
-  if test "X$func_dirname_result" = "X${1}"; then
-    func_dirname_result="${3}"
-  else
-    func_dirname_result="$func_dirname_result${2}"
-  fi
-  func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"`
+    # Extract subdirectory from the argument.
+    func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"`
+    if test "X$func_dirname_result" = "X${1}"; then
+      func_dirname_result="${3}"
+    else
+      func_dirname_result="$func_dirname_result${2}"
+    fi
+    func_basename_result=`$ECHO "${1}" | $SED -e "$basename"`
+} # func_dirname_and_basename may be replaced by extended shell implementation
+
+
+# func_stripname prefix suffix name
+# strip PREFIX and SUFFIX off of NAME.
+# PREFIX and SUFFIX must not contain globbing or regex special
+# characters, hashes, percent signs, but SUFFIX may contain a leading
+# dot (in which case that matches only a dot).
+# func_strip_suffix prefix name
+func_stripname ()
+{
+    case ${2} in
+      .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
+      *)  func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
+    esac
+} # func_stripname may be replaced by extended shell implementation
+
+
+# These SED scripts presuppose an absolute path with a trailing slash.
+pathcar='s,^/\([^/]*\).*$,\1,'
+pathcdr='s,^/[^/]*,,'
+removedotparts=':dotsl
+		s@/\./@/@g
+		t dotsl
+		s,/\.$,/,'
+collapseslashes='s@/\{1,\}@/@g'
+finalslash='s,/*$,/,'
+
+# func_normal_abspath PATH
+# Remove doubled-up and trailing slashes, "." path components,
+# and cancel out any ".." path components in PATH after making
+# it an absolute path.
+#             value returned in "$func_normal_abspath_result"
+func_normal_abspath ()
+{
+  # Start from root dir and reassemble the path.
+  func_normal_abspath_result=
+  func_normal_abspath_tpath=$1
+  func_normal_abspath_altnamespace=
+  case $func_normal_abspath_tpath in
+    "")
+      # Empty path, that just means $cwd.
+      func_stripname '' '/' "`pwd`"
+      func_normal_abspath_result=$func_stripname_result
+      return
+    ;;
+    # The next three entries are used to spot a run of precisely
+    # two leading slashes without using negated character classes;
+    # we take advantage of case's first-match behaviour.
+    ///*)
+      # Unusual form of absolute path, do nothing.
+    ;;
+    //*)
+      # Not necessarily an ordinary path; POSIX reserves leading '//'
+      # and for example Cygwin uses it to access remote file shares
+      # over CIFS/SMB, so we conserve a leading double slash if found.
+      func_normal_abspath_altnamespace=/
+    ;;
+    /*)
+      # Absolute path, do nothing.
+    ;;
+    *)
+      # Relative path, prepend $cwd.
+      func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath
+    ;;
+  esac
+  # Cancel out all the simple stuff to save iterations.  We also want
+  # the path to end with a slash for ease of parsing, so make sure
+  # there is one (and only one) here.
+  func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
+        -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"`
+  while :; do
+    # Processed it all yet?
+    if test "$func_normal_abspath_tpath" = / ; then
+      # If we ascended to the root using ".." the result may be empty now.
+      if test -z "$func_normal_abspath_result" ; then
+        func_normal_abspath_result=/
+      fi
+      break
+    fi
+    func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \
+        -e "$pathcar"`
+    func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
+        -e "$pathcdr"`
+    # Figure out what to do with it
+    case $func_normal_abspath_tcomponent in
+      "")
+        # Trailing empty path component, ignore it.
+      ;;
+      ..)
+        # Parent dir; strip last assembled component from result.
+        func_dirname "$func_normal_abspath_result"
+        func_normal_abspath_result=$func_dirname_result
+      ;;
+      *)
+        # Actual path component, append it.
+        func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent
+      ;;
+    esac
+  done
+  # Restore leading double-slash if one was found on entry.
+  func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result
 }
 
-# Generated shell functions inserted here.
+# func_relative_path SRCDIR DSTDIR
+# generates a relative path from SRCDIR to DSTDIR, with a trailing
+# slash if non-empty, suitable for immediately appending a filename
+# without needing to append a separator.
+#             value returned in "$func_relative_path_result"
+func_relative_path ()
+{
+  func_relative_path_result=
+  func_normal_abspath "$1"
+  func_relative_path_tlibdir=$func_normal_abspath_result
+  func_normal_abspath "$2"
+  func_relative_path_tbindir=$func_normal_abspath_result
+
+  # Ascend the tree starting from libdir
+  while :; do
+    # check if we have found a prefix of bindir
+    case $func_relative_path_tbindir in
+      $func_relative_path_tlibdir)
+        # found an exact match
+        func_relative_path_tcancelled=
+        break
+        ;;
+      $func_relative_path_tlibdir*)
+        # found a matching prefix
+        func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir"
+        func_relative_path_tcancelled=$func_stripname_result
+        if test -z "$func_relative_path_result"; then
+          func_relative_path_result=.
+        fi
+        break
+        ;;
+      *)
+        func_dirname $func_relative_path_tlibdir
+        func_relative_path_tlibdir=${func_dirname_result}
+        if test "x$func_relative_path_tlibdir" = x ; then
+          # Have to descend all the way to the root!
+          func_relative_path_result=../$func_relative_path_result
+          func_relative_path_tcancelled=$func_relative_path_tbindir
+          break
+        fi
+        func_relative_path_result=../$func_relative_path_result
+        ;;
+    esac
+  done
 
-# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
-# is ksh but when the shell is invoked as "sh" and the current value of
-# the _XPG environment variable is not equal to 1 (one), the special
-# positional parameter $0, within a function call, is the name of the
-# function.
-progpath="$0"
+  # Now calculate path; take care to avoid doubling-up slashes.
+  func_stripname '' '/' "$func_relative_path_result"
+  func_relative_path_result=$func_stripname_result
+  func_stripname '/' '/' "$func_relative_path_tcancelled"
+  if test "x$func_stripname_result" != x ; then
+    func_relative_path_result=${func_relative_path_result}/${func_stripname_result}
+  fi
+
+  # Normalisation. If bindir is libdir, return empty string,
+  # else relative path ending with a slash; either way, target
+  # file name can be directly appended.
+  if test ! -z "$func_relative_path_result"; then
+    func_stripname './' '' "$func_relative_path_result/"
+    func_relative_path_result=$func_stripname_result
+  fi
+}
 
 # The name of this program:
-# In the unlikely event $progname began with a '-', it would play havoc with
-# func_echo (imagine progname=-n), so we prepend ./ in that case:
 func_dirname_and_basename "$progpath"
 progname=$func_basename_result
-case $progname in
-  -*) progname=./$progname ;;
-esac
 
 # Make sure we have an absolute path for reexecution:
 case $progpath in
@@ -215,6 +406,15 @@ sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
 # Same as above, but do not quote variable references.
 double_quote_subst='s/\(["`\\]\)/\\\1/g'
 
+# Sed substitution that turns a string into a regex matching for the
+# string literally.
+sed_make_literal_regex='s,[].[^$\\*\/],\\&,g'
+
+# Sed substitution that converts a w32 file name or path
+# which contains forward slashes, into one that contains
+# (escaped) backslashes.  A very naive implementation.
+lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
+
 # Re-`\' parameter expansions in output of double_quote_subst that were
 # `\'-ed in input to the same.  If an odd number of `\' preceded a '$'
 # in input to double_quote_subst, that '$' was protected from expansion.
@@ -243,7 +443,7 @@ opt_warning=:
 # name if it has been set yet.
 func_echo ()
 {
-    $ECHO "$progname${mode+: }$mode: $*"
+    $ECHO "$progname: ${opt_mode+$opt_mode: }$*"
 }
 
 # func_verbose arg...
@@ -258,18 +458,25 @@ func_verbose ()
     :
 }
 
+# func_echo_all arg...
+# Invoke $ECHO with all args, space-separated.
+func_echo_all ()
+{
+    $ECHO "$*"
+}
+
 # func_error arg...
 # Echo program name prefixed message to standard error.
 func_error ()
 {
-    $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2
+    $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
 }
 
 # func_warning arg...
 # Echo program name prefixed warning message to standard error.
 func_warning ()
 {
-    $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2
+    $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2
 
     # bash bug again:
     :
@@ -326,9 +533,9 @@ func_mkdir_p ()
         case $my_directory_path in */*) ;; *) break ;; esac
 
         # ...otherwise throw away the child directory and loop
-        my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"`
+        my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"`
       done
-      my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'`
+      my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'`
 
       save_mkdir_p_IFS="$IFS"; IFS=':'
       for my_dir in $my_dir_list; do
@@ -378,7 +585,7 @@ func_mktempdir ()
         func_fatal_error "cannot create temporary directory \`$my_tmpdir'"
     fi
 
-    $ECHO "X$my_tmpdir" | $Xsed
+    $ECHO "$my_tmpdir"
 }
 
 
@@ -392,7 +599,7 @@ func_quote_for_eval ()
 {
     case $1 in
       *[\\\`\"\$]*)
-	func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;;
+	func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;;
       *)
         func_quote_for_eval_unquoted_result="$1" ;;
     esac
@@ -419,7 +626,7 @@ func_quote_for_expand ()
 {
     case $1 in
       *[\\\`\"]*)
-	my_arg=`$ECHO "X$1" | $Xsed \
+	my_arg=`$ECHO "$1" | $SED \
 	    -e "$double_quote_subst" -e "$sed_double_backslash"` ;;
       *)
         my_arg="$1" ;;
@@ -488,15 +695,39 @@ func_show_eval_locale ()
     fi
 }
 
-
-
+# func_tr_sh
+# Turn $1 into a string suitable for a shell variable name.
+# Result is stored in $func_tr_sh_result.  All characters
+# not in the set a-zA-Z0-9_ are replaced with '_'. Further,
+# if $1 begins with a digit, a '_' is prepended as well.
+func_tr_sh ()
+{
+  case $1 in
+  [0-9]* | *[!a-zA-Z0-9_]*)
+    func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'`
+    ;;
+  * )
+    func_tr_sh_result=$1
+    ;;
+  esac
+}
 
 
 # func_version
 # Echo version message to standard output and exit.
 func_version ()
 {
-    $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / {
+    $opt_debug
+
+    $SED -n '/(C)/!b go
+	:more
+	/\./!{
+	  N
+	  s/\n# / /
+	  b more
+	}
+	:go
+	/^# '$PROGRAM' (GNU /,/# warranty; / {
         s/^# //
 	s/^# *$//
         s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/
@@ -509,22 +740,28 @@ func_version ()
 # Echo short help message to standard output and exit.
 func_usage ()
 {
-    $SED -n '/^# Usage:/,/# -h/ {
+    $opt_debug
+
+    $SED -n '/^# Usage:/,/^#  *.*--help/ {
         s/^# //
 	s/^# *$//
 	s/\$progname/'$progname'/
 	p
     }' < "$progpath"
-    $ECHO
+    echo
     $ECHO "run \`$progname --help | more' for full usage"
     exit $?
 }
 
-# func_help
-# Echo long help message to standard output and exit.
+# func_help [NOEXIT]
+# Echo long help message to standard output and exit,
+# unless 'noexit' is passed as argument.
 func_help ()
 {
+    $opt_debug
+
     $SED -n '/^# Usage:/,/# Report bugs to/ {
+	:print
         s/^# //
 	s/^# *$//
 	s*\$progname*'$progname'*
@@ -537,8 +774,15 @@ func_help ()
 	s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/
 	s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/
 	p
-     }' < "$progpath"
-    exit $?
+	d
+     }
+     /^# .* home page:/b print
+     /^# General help using/b print
+     ' < "$progpath"
+    ret=$?
+    if test -z "$1"; then
+      exit $ret
+    fi
 }
 
 # func_missing_arg argname
@@ -546,63 +790,106 @@ func_help ()
 # exit_cmd.
 func_missing_arg ()
 {
-    func_error "missing argument for $1"
+    $opt_debug
+
+    func_error "missing argument for $1."
     exit_cmd=exit
 }
 
-exit_cmd=:
 
+# func_split_short_opt shortopt
+# Set func_split_short_opt_name and func_split_short_opt_arg shell
+# variables after splitting SHORTOPT after the 2nd character.
+func_split_short_opt ()
+{
+    my_sed_short_opt='1s/^\(..\).*$/\1/;q'
+    my_sed_short_rest='1s/^..\(.*\)$/\1/;q'
 
+    func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"`
+    func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"`
+} # func_split_short_opt may be replaced by extended shell implementation
+
+
+# func_split_long_opt longopt
+# Set func_split_long_opt_name and func_split_long_opt_arg shell
+# variables after splitting LONGOPT at the `=' sign.
+func_split_long_opt ()
+{
+    my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q'
+    my_sed_long_arg='1s/^--[^=]*=//'
+
+    func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"`
+    func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"`
+} # func_split_long_opt may be replaced by extended shell implementation
+
+exit_cmd=:
 
 
 
-# Check that we have a working $ECHO.
-if test "X$1" = X--no-reexec; then
-  # Discard the --no-reexec flag, and continue.
-  shift
-elif test "X$1" = X--fallback-echo; then
-  # Avoid inline document here, it may be left over
-  :
-elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then
-  # Yippee, $ECHO works!
-  :
-else
-  # Restart under the correct shell, and then maybe $ECHO will work.
-  exec $SHELL "$progpath" --no-reexec ${1+"$@"}
-fi
 
-if test "X$1" = X--fallback-echo; then
-  # used as fallback echo
-  shift
-  cat <<EOF
-$*
-EOF
-  exit $EXIT_SUCCESS
-fi
 
 magic="%%%MAGIC variable%%%"
 magic_exe="%%%MAGIC EXE variable%%%"
 
 # Global variables.
-# $mode is unset
 nonopt=
-execute_dlfiles=
 preserve_args=
 lo2o="s/\\.lo\$/.${objext}/"
 o2lo="s/\\.${objext}\$/.lo/"
 extracted_archives=
 extracted_serial=0
 
-opt_dry_run=false
-opt_duplicate_deps=false
-opt_silent=false
-opt_debug=:
-
 # If this variable is set in any of the actions, the command in it
 # will be execed at the end.  This prevents here-documents from being
 # left over by shells.
 exec_cmd=
 
+# func_append var value
+# Append VALUE to the end of shell variable VAR.
+func_append ()
+{
+    eval "${1}=\$${1}\${2}"
+} # func_append may be replaced by extended shell implementation
+
+# func_append_quoted var value
+# Quote VALUE and append to the end of shell variable VAR, separated
+# by a space.
+func_append_quoted ()
+{
+    func_quote_for_eval "${2}"
+    eval "${1}=\$${1}\\ \$func_quote_for_eval_result"
+} # func_append_quoted may be replaced by extended shell implementation
+
+
+# func_arith arithmetic-term...
+func_arith ()
+{
+    func_arith_result=`expr "${@}"`
+} # func_arith may be replaced by extended shell implementation
+
+
+# func_len string
+# STRING may not start with a hyphen.
+func_len ()
+{
+    func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len`
+} # func_len may be replaced by extended shell implementation
+
+
+# func_lo2o object
+func_lo2o ()
+{
+    func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
+} # func_lo2o may be replaced by extended shell implementation
+
+
+# func_xform libobj-or-source
+func_xform ()
+{
+    func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'`
+} # func_xform may be replaced by extended shell implementation
+
+
 # func_fatal_configuration arg...
 # Echo program name prefixed message to standard error, followed by
 # a configuration failure hint, and exit.
@@ -636,16 +923,16 @@ func_config ()
 # Display the features supported by this script.
 func_features ()
 {
-    $ECHO "host: $host"
+    echo "host: $host"
     if test "$build_libtool_libs" = yes; then
-      $ECHO "enable shared libraries"
+      echo "enable shared libraries"
     else
-      $ECHO "disable shared libraries"
+      echo "disable shared libraries"
     fi
     if test "$build_old_libs" = yes; then
-      $ECHO "enable static libraries"
+      echo "enable static libraries"
     else
-      $ECHO "disable static libraries"
+      echo "disable static libraries"
     fi
 
     exit $?
@@ -692,117 +979,204 @@ func_enable_tag ()
   esac
 }
 
-# Parse options once, thoroughly.  This comes as soon as possible in
-# the script to make things like `libtool --version' happen quickly.
+# func_check_version_match
+# Ensure that we are using m4 macros, and libtool script from the same
+# release of libtool.
+func_check_version_match ()
 {
+  if test "$package_revision" != "$macro_revision"; then
+    if test "$VERSION" != "$macro_version"; then
+      if test -z "$macro_version"; then
+        cat >&2 <<_LT_EOF
+$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
+$progname: definition of this LT_INIT comes from an older release.
+$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
+$progname: and run autoconf again.
+_LT_EOF
+      else
+        cat >&2 <<_LT_EOF
+$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
+$progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
+$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
+$progname: and run autoconf again.
+_LT_EOF
+      fi
+    else
+      cat >&2 <<_LT_EOF
+$progname: Version mismatch error.  This is $PACKAGE $VERSION, revision $package_revision,
+$progname: but the definition of this LT_INIT comes from revision $macro_revision.
+$progname: You should recreate aclocal.m4 with macros from revision $package_revision
+$progname: of $PACKAGE $VERSION and run autoconf again.
+_LT_EOF
+    fi
+
+    exit $EXIT_MISMATCH
+  fi
+}
+
+
+# Shorthand for --mode=foo, only valid as the first argument
+case $1 in
+clean|clea|cle|cl)
+  shift; set dummy --mode clean ${1+"$@"}; shift
+  ;;
+compile|compil|compi|comp|com|co|c)
+  shift; set dummy --mode compile ${1+"$@"}; shift
+  ;;
+execute|execut|execu|exec|exe|ex|e)
+  shift; set dummy --mode execute ${1+"$@"}; shift
+  ;;
+finish|finis|fini|fin|fi|f)
+  shift; set dummy --mode finish ${1+"$@"}; shift
+  ;;
+install|instal|insta|inst|ins|in|i)
+  shift; set dummy --mode install ${1+"$@"}; shift
+  ;;
+link|lin|li|l)
+  shift; set dummy --mode link ${1+"$@"}; shift
+  ;;
+uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
+  shift; set dummy --mode uninstall ${1+"$@"}; shift
+  ;;
+esac
 
-  # Shorthand for --mode=foo, only valid as the first argument
-  case $1 in
-  clean|clea|cle|cl)
-    shift; set dummy --mode clean ${1+"$@"}; shift
-    ;;
-  compile|compil|compi|comp|com|co|c)
-    shift; set dummy --mode compile ${1+"$@"}; shift
-    ;;
-  execute|execut|execu|exec|exe|ex|e)
-    shift; set dummy --mode execute ${1+"$@"}; shift
-    ;;
-  finish|finis|fini|fin|fi|f)
-    shift; set dummy --mode finish ${1+"$@"}; shift
-    ;;
-  install|instal|insta|inst|ins|in|i)
-    shift; set dummy --mode install ${1+"$@"}; shift
-    ;;
-  link|lin|li|l)
-    shift; set dummy --mode link ${1+"$@"}; shift
-    ;;
-  uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
-    shift; set dummy --mode uninstall ${1+"$@"}; shift
-    ;;
-  esac
 
-  # Parse non-mode specific arguments:
-  while test "$#" -gt 0; do
+
+# Option defaults:
+opt_debug=:
+opt_dry_run=false
+opt_config=false
+opt_preserve_dup_deps=false
+opt_features=false
+opt_finish=false
+opt_help=false
+opt_help_all=false
+opt_silent=:
+opt_verbose=:
+opt_silent=false
+opt_verbose=false
+
+
+# Parse options once, thoroughly.  This comes as soon as possible in the
+# script to make things like `--version' happen as quickly as we can.
+{
+  # this just eases exit handling
+  while test $# -gt 0; do
     opt="$1"
     shift
-
     case $opt in
-      --config)		func_config					;;
-
-      --debug)		preserve_args="$preserve_args $opt"
+      --debug|-x)	opt_debug='set -x'
 			func_echo "enabling shell trace mode"
-			opt_debug='set -x'
 			$opt_debug
 			;;
-
-      -dlopen)		test "$#" -eq 0 && func_missing_arg "$opt" && break
-			execute_dlfiles="$execute_dlfiles $1"
-			shift
+      --dry-run|--dryrun|-n)
+			opt_dry_run=:
 			;;
-
-      --dry-run | -n)	opt_dry_run=:					;;
-      --features)       func_features					;;
-      --finish)		mode="finish"					;;
-
-      --mode)		test "$#" -eq 0 && func_missing_arg "$opt" && break
-			case $1 in
-			  # Valid mode arguments:
-			  clean)	;;
-			  compile)	;;
-			  execute)	;;
-			  finish)	;;
-			  install)	;;
-			  link)		;;
-			  relink)	;;
-			  uninstall)	;;
-
-			  # Catch anything else as an error
-			  *) func_error "invalid argument for $opt"
-			     exit_cmd=exit
-			     break
-			     ;;
-		        esac
-
-			mode="$1"
+      --config)
+			opt_config=:
+func_config
+			;;
+      --dlopen|-dlopen)
+			optarg="$1"
+			opt_dlopen="${opt_dlopen+$opt_dlopen
+}$optarg"
 			shift
 			;;
-
       --preserve-dup-deps)
-			opt_duplicate_deps=:				;;
-
-      --quiet|--silent)	preserve_args="$preserve_args $opt"
-			opt_silent=:
+			opt_preserve_dup_deps=:
 			;;
-
-      --verbose| -v)	preserve_args="$preserve_args $opt"
+      --features)
+			opt_features=:
+func_features
+			;;
+      --finish)
+			opt_finish=:
+set dummy --mode finish ${1+"$@"}; shift
+			;;
+      --help)
+			opt_help=:
+			;;
+      --help-all)
+			opt_help_all=:
+opt_help=': help-all'
+			;;
+      --mode)
+			test $# = 0 && func_missing_arg $opt && break
+			optarg="$1"
+			opt_mode="$optarg"
+case $optarg in
+  # Valid mode arguments:
+  clean|compile|execute|finish|install|link|relink|uninstall) ;;
+
+  # Catch anything else as an error
+  *) func_error "invalid argument for $opt"
+     exit_cmd=exit
+     break
+     ;;
+esac
+			shift
+			;;
+      --no-silent|--no-quiet)
 			opt_silent=false
+func_append preserve_args " $opt"
 			;;
-
-      --tag)		test "$#" -eq 0 && func_missing_arg "$opt" && break
-			preserve_args="$preserve_args $opt $1"
-			func_enable_tag "$1"	# tagname is set here
+      --no-verbose)
+			opt_verbose=false
+func_append preserve_args " $opt"
+			;;
+      --silent|--quiet)
+			opt_silent=:
+func_append preserve_args " $opt"
+        opt_verbose=false
+			;;
+      --verbose|-v)
+			opt_verbose=:
+func_append preserve_args " $opt"
+opt_silent=false
+			;;
+      --tag)
+			test $# = 0 && func_missing_arg $opt && break
+			optarg="$1"
+			opt_tag="$optarg"
+func_append preserve_args " $opt $optarg"
+func_enable_tag "$optarg"
 			shift
 			;;
 
+      -\?|-h)		func_usage				;;
+      --help)		func_help				;;
+      --version)	func_version				;;
+
       # Separate optargs to long options:
-      -dlopen=*|--mode=*|--tag=*)
-			func_opt_split "$opt"
-			set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"}
+      --*=*)
+			func_split_long_opt "$opt"
+			set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"}
 			shift
 			;;
 
-      -\?|-h)		func_usage					;;
-      --help)		opt_help=:					;;
-      --version)	func_version					;;
-
-      -*)		func_fatal_help "unrecognized option \`$opt'"	;;
-
-      *)		nonopt="$opt"
-			break
+      # Separate non-argument short options:
+      -\?*|-h*|-n*|-v*)
+			func_split_short_opt "$opt"
+			set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"}
+			shift
 			;;
+
+      --)		break					;;
+      -*)		func_fatal_help "unrecognized option \`$opt'" ;;
+      *)		set dummy "$opt" ${1+"$@"};	shift; break  ;;
     esac
   done
 
+  # Validate options:
+
+  # save first non-option argument
+  if test "$#" -gt 0; then
+    nonopt="$opt"
+    shift
+  fi
+
+  # preserve --debug
+  test "$opt_debug" = : || func_append preserve_args " --debug"
 
   case $host in
     *cygwin* | *mingw* | *pw32* | *cegcc*)
@@ -810,82 +1184,44 @@ func_enable_tag ()
       opt_duplicate_compiler_generated_deps=:
       ;;
     *)
-      opt_duplicate_compiler_generated_deps=$opt_duplicate_deps
+      opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps
       ;;
   esac
 
-  # Having warned about all mis-specified options, bail out if
-  # anything was wrong.
-  $exit_cmd $EXIT_FAILURE
-}
+  $opt_help || {
+    # Sanity checks first:
+    func_check_version_match
 
-# func_check_version_match
-# Ensure that we are using m4 macros, and libtool script from the same
-# release of libtool.
-func_check_version_match ()
-{
-  if test "$package_revision" != "$macro_revision"; then
-    if test "$VERSION" != "$macro_version"; then
-      if test -z "$macro_version"; then
-        cat >&2 <<_LT_EOF
-$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
-$progname: definition of this LT_INIT comes from an older release.
-$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
-$progname: and run autoconf again.
-_LT_EOF
-      else
-        cat >&2 <<_LT_EOF
-$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
-$progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
-$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
-$progname: and run autoconf again.
-_LT_EOF
-      fi
-    else
-      cat >&2 <<_LT_EOF
-$progname: Version mismatch error.  This is $PACKAGE $VERSION, revision $package_revision,
-$progname: but the definition of this LT_INIT comes from revision $macro_revision.
-$progname: You should recreate aclocal.m4 with macros from revision $package_revision
-$progname: of $PACKAGE $VERSION and run autoconf again.
-_LT_EOF
+    if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
+      func_fatal_configuration "not configured to build any kind of library"
     fi
 
-    exit $EXIT_MISMATCH
-  fi
-}
-
-
-## ----------- ##
-##    Main.    ##
-## ----------- ##
-
-$opt_help || {
-  # Sanity checks first:
-  func_check_version_match
+    # Darwin sucks
+    eval std_shrext=\"$shrext_cmds\"
 
-  if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
-    func_fatal_configuration "not configured to build any kind of library"
-  fi
+    # Only execute mode is allowed to have -dlopen flags.
+    if test -n "$opt_dlopen" && test "$opt_mode" != execute; then
+      func_error "unrecognized option \`-dlopen'"
+      $ECHO "$help" 1>&2
+      exit $EXIT_FAILURE
+    fi
 
-  test -z "$mode" && func_fatal_error "error: you must specify a MODE."
+    # Change the help message to a mode-specific one.
+    generic_help="$help"
+    help="Try \`$progname --help --mode=$opt_mode' for more information."
+  }
 
 
-  # Darwin sucks
-  eval std_shrext=\"$shrext_cmds\"
+  # Bail if the options were screwed
+  $exit_cmd $EXIT_FAILURE
+}
 
 
-  # Only execute mode is allowed to have -dlopen flags.
-  if test -n "$execute_dlfiles" && test "$mode" != execute; then
-    func_error "unrecognized option \`-dlopen'"
-    $ECHO "$help" 1>&2
-    exit $EXIT_FAILURE
-  fi
 
-  # Change the help message to a mode-specific one.
-  generic_help="$help"
-  help="Try \`$progname --help --mode=$mode' for more information."
-}
 
+## ----------- ##
+##    Main.    ##
+## ----------- ##
 
 # func_lalib_p file
 # True iff FILE is a libtool `.la' library or `.lo' object file.
@@ -950,12 +1286,9 @@ func_ltwrapper_executable_p ()
 # temporary ltwrapper_script.
 func_ltwrapper_scriptname ()
 {
-    func_ltwrapper_scriptname_result=""
-    if func_ltwrapper_executable_p "$1"; then
-	func_dirname_and_basename "$1" "" "."
-	func_stripname '' '.exe' "$func_basename_result"
-	func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
-    fi
+    func_dirname_and_basename "$1" "" "."
+    func_stripname '' '.exe' "$func_basename_result"
+    func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
 }
 
 # func_ltwrapper_p file
@@ -1001,6 +1334,37 @@ func_source ()
 }
 
 
+# func_resolve_sysroot PATH
+# Replace a leading = in PATH with a sysroot.  Store the result into
+# func_resolve_sysroot_result
+func_resolve_sysroot ()
+{
+  func_resolve_sysroot_result=$1
+  case $func_resolve_sysroot_result in
+  =*)
+    func_stripname '=' '' "$func_resolve_sysroot_result"
+    func_resolve_sysroot_result=$lt_sysroot$func_stripname_result
+    ;;
+  esac
+}
+
+# func_replace_sysroot PATH
+# If PATH begins with the sysroot, replace it with = and
+# store the result into func_replace_sysroot_result.
+func_replace_sysroot ()
+{
+  case "$lt_sysroot:$1" in
+  ?*:"$lt_sysroot"*)
+    func_stripname "$lt_sysroot" '' "$1"
+    func_replace_sysroot_result="=$func_stripname_result"
+    ;;
+  *)
+    # Including no sysroot.
+    func_replace_sysroot_result=$1
+    ;;
+  esac
+}
+
 # func_infer_tag arg
 # Infer tagged configuration to use if any are available and
 # if one wasn't chosen via the "--tag" command line option.
@@ -1013,13 +1377,15 @@ func_infer_tag ()
     if test -n "$available_tags" && test -z "$tagname"; then
       CC_quoted=
       for arg in $CC; do
-        func_quote_for_eval "$arg"
-	CC_quoted="$CC_quoted $func_quote_for_eval_result"
+	func_append_quoted CC_quoted "$arg"
       done
+      CC_expanded=`func_echo_all $CC`
+      CC_quoted_expanded=`func_echo_all $CC_quoted`
       case $@ in
       # Blanks in the command may have been stripped by the calling shell,
       # but not from the CC environment variable when configure was run.
-      " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;;
+      " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
+      " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;;
       # Blanks at the start of $base_compile will cause this to fail
       # if we don't check for them as well.
       *)
@@ -1030,11 +1396,13 @@ func_infer_tag ()
 	    CC_quoted=
 	    for arg in $CC; do
 	      # Double-quote args containing other shell metacharacters.
-	      func_quote_for_eval "$arg"
-	      CC_quoted="$CC_quoted $func_quote_for_eval_result"
+	      func_append_quoted CC_quoted "$arg"
 	    done
+	    CC_expanded=`func_echo_all $CC`
+	    CC_quoted_expanded=`func_echo_all $CC_quoted`
 	    case "$@ " in
-	      " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*)
+	    " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
+	    " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*)
 	      # The compiler in the base compile command matches
 	      # the one in the tagged configuration.
 	      # Assume this is the tagged configuration we want.
@@ -1097,6 +1465,486 @@ EOF
     }
 }
 
+
+##################################################
+# FILE NAME AND PATH CONVERSION HELPER FUNCTIONS #
+##################################################
+
+# func_convert_core_file_wine_to_w32 ARG
+# Helper function used by file name conversion functions when $build is *nix,
+# and $host is mingw, cygwin, or some other w32 environment. Relies on a
+# correctly configured wine environment available, with the winepath program
+# in $build's $PATH.
+#
+# ARG is the $build file name to be converted to w32 format.
+# Result is available in $func_convert_core_file_wine_to_w32_result, and will
+# be empty on error (or when ARG is empty)
+func_convert_core_file_wine_to_w32 ()
+{
+  $opt_debug
+  func_convert_core_file_wine_to_w32_result="$1"
+  if test -n "$1"; then
+    # Unfortunately, winepath does not exit with a non-zero error code, so we
+    # are forced to check the contents of stdout. On the other hand, if the
+    # command is not found, the shell will set an exit code of 127 and print
+    # *an error message* to stdout. So we must check for both error code of
+    # zero AND non-empty stdout, which explains the odd construction:
+    func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null`
+    if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then
+      func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" |
+        $SED -e "$lt_sed_naive_backslashify"`
+    else
+      func_convert_core_file_wine_to_w32_result=
+    fi
+  fi
+}
+# end: func_convert_core_file_wine_to_w32
+
+
+# func_convert_core_path_wine_to_w32 ARG
+# Helper function used by path conversion functions when $build is *nix, and
+# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly
+# configured wine environment available, with the winepath program in $build's
+# $PATH. Assumes ARG has no leading or trailing path separator characters.
+#
+# ARG is path to be converted from $build format to win32.
+# Result is available in $func_convert_core_path_wine_to_w32_result.
+# Unconvertible file (directory) names in ARG are skipped; if no directory names
+# are convertible, then the result may be empty.
+func_convert_core_path_wine_to_w32 ()
+{
+  $opt_debug
+  # unfortunately, winepath doesn't convert paths, only file names
+  func_convert_core_path_wine_to_w32_result=""
+  if test -n "$1"; then
+    oldIFS=$IFS
+    IFS=:
+    for func_convert_core_path_wine_to_w32_f in $1; do
+      IFS=$oldIFS
+      func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f"
+      if test -n "$func_convert_core_file_wine_to_w32_result" ; then
+        if test -z "$func_convert_core_path_wine_to_w32_result"; then
+          func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result"
+        else
+          func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result"
+        fi
+      fi
+    done
+    IFS=$oldIFS
+  fi
+}
+# end: func_convert_core_path_wine_to_w32
+
+
+# func_cygpath ARGS...
+# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when
+# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2)
+# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or
+# (2), returns the Cygwin file name or path in func_cygpath_result (input
+# file name or path is assumed to be in w32 format, as previously converted
+# from $build's *nix or MSYS format). In case (3), returns the w32 file name
+# or path in func_cygpath_result (input file name or path is assumed to be in
+# Cygwin format). Returns an empty string on error.
+#
+# ARGS are passed to cygpath, with the last one being the file name or path to
+# be converted.
+#
+# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH
+# environment variable; do not put it in $PATH.
+func_cygpath ()
+{
+  $opt_debug
+  if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then
+    func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null`
+    if test "$?" -ne 0; then
+      # on failure, ensure result is empty
+      func_cygpath_result=
+    fi
+  else
+    func_cygpath_result=
+    func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'"
+  fi
+}
+#end: func_cygpath
+
+
+# func_convert_core_msys_to_w32 ARG
+# Convert file name or path ARG from MSYS format to w32 format.  Return
+# result in func_convert_core_msys_to_w32_result.
+func_convert_core_msys_to_w32 ()
+{
+  $opt_debug
+  # awkward: cmd appends spaces to result
+  func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null |
+    $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"`
+}
+#end: func_convert_core_msys_to_w32
+
+
+# func_convert_file_check ARG1 ARG2
+# Verify that ARG1 (a file name in $build format) was converted to $host
+# format in ARG2. Otherwise, emit an error message, but continue (resetting
+# func_to_host_file_result to ARG1).
+func_convert_file_check ()
+{
+  $opt_debug
+  if test -z "$2" && test -n "$1" ; then
+    func_error "Could not determine host file name corresponding to"
+    func_error "  \`$1'"
+    func_error "Continuing, but uninstalled executables may not work."
+    # Fallback:
+    func_to_host_file_result="$1"
+  fi
+}
+# end func_convert_file_check
+
+
+# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH
+# Verify that FROM_PATH (a path in $build format) was converted to $host
+# format in TO_PATH. Otherwise, emit an error message, but continue, resetting
+# func_to_host_file_result to a simplistic fallback value (see below).
+func_convert_path_check ()
+{
+  $opt_debug
+  if test -z "$4" && test -n "$3"; then
+    func_error "Could not determine the host path corresponding to"
+    func_error "  \`$3'"
+    func_error "Continuing, but uninstalled executables may not work."
+    # Fallback.  This is a deliberately simplistic "conversion" and
+    # should not be "improved".  See libtool.info.
+    if test "x$1" != "x$2"; then
+      lt_replace_pathsep_chars="s|$1|$2|g"
+      func_to_host_path_result=`echo "$3" |
+        $SED -e "$lt_replace_pathsep_chars"`
+    else
+      func_to_host_path_result="$3"
+    fi
+  fi
+}
+# end func_convert_path_check
+
+
+# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG
+# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT
+# and appending REPL if ORIG matches BACKPAT.
+func_convert_path_front_back_pathsep ()
+{
+  $opt_debug
+  case $4 in
+  $1 ) func_to_host_path_result="$3$func_to_host_path_result"
+    ;;
+  esac
+  case $4 in
+  $2 ) func_append func_to_host_path_result "$3"
+    ;;
+  esac
+}
+# end func_convert_path_front_back_pathsep
+
+
+##################################################
+# $build to $host FILE NAME CONVERSION FUNCTIONS #
+##################################################
+# invoked via `$to_host_file_cmd ARG'
+#
+# In each case, ARG is the path to be converted from $build to $host format.
+# Result will be available in $func_to_host_file_result.
+
+
+# func_to_host_file ARG
+# Converts the file name ARG from $build format to $host format. Return result
+# in func_to_host_file_result.
+func_to_host_file ()
+{
+  $opt_debug
+  $to_host_file_cmd "$1"
+}
+# end func_to_host_file
+
+
+# func_to_tool_file ARG LAZY
+# converts the file name ARG from $build format to toolchain format. Return
+# result in func_to_tool_file_result.  If the conversion in use is listed
+# in (the comma separated) LAZY, no conversion takes place.
+func_to_tool_file ()
+{
+  $opt_debug
+  case ,$2, in
+    *,"$to_tool_file_cmd",*)
+      func_to_tool_file_result=$1
+      ;;
+    *)
+      $to_tool_file_cmd "$1"
+      func_to_tool_file_result=$func_to_host_file_result
+      ;;
+  esac
+}
+# end func_to_tool_file
+
+
+# func_convert_file_noop ARG
+# Copy ARG to func_to_host_file_result.
+func_convert_file_noop ()
+{
+  func_to_host_file_result="$1"
+}
+# end func_convert_file_noop
+
+
+# func_convert_file_msys_to_w32 ARG
+# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic
+# conversion to w32 is not available inside the cwrapper.  Returns result in
+# func_to_host_file_result.
+func_convert_file_msys_to_w32 ()
+{
+  $opt_debug
+  func_to_host_file_result="$1"
+  if test -n "$1"; then
+    func_convert_core_msys_to_w32 "$1"
+    func_to_host_file_result="$func_convert_core_msys_to_w32_result"
+  fi
+  func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_msys_to_w32
+
+
+# func_convert_file_cygwin_to_w32 ARG
+# Convert file name ARG from Cygwin to w32 format.  Returns result in
+# func_to_host_file_result.
+func_convert_file_cygwin_to_w32 ()
+{
+  $opt_debug
+  func_to_host_file_result="$1"
+  if test -n "$1"; then
+    # because $build is cygwin, we call "the" cygpath in $PATH; no need to use
+    # LT_CYGPATH in this case.
+    func_to_host_file_result=`cygpath -m "$1"`
+  fi
+  func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_cygwin_to_w32
+
+
+# func_convert_file_nix_to_w32 ARG
+# Convert file name ARG from *nix to w32 format.  Requires a wine environment
+# and a working winepath. Returns result in func_to_host_file_result.
+func_convert_file_nix_to_w32 ()
+{
+  $opt_debug
+  func_to_host_file_result="$1"
+  if test -n "$1"; then
+    func_convert_core_file_wine_to_w32 "$1"
+    func_to_host_file_result="$func_convert_core_file_wine_to_w32_result"
+  fi
+  func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_nix_to_w32
+
+
+# func_convert_file_msys_to_cygwin ARG
+# Convert file name ARG from MSYS to Cygwin format.  Requires LT_CYGPATH set.
+# Returns result in func_to_host_file_result.
+func_convert_file_msys_to_cygwin ()
+{
+  $opt_debug
+  func_to_host_file_result="$1"
+  if test -n "$1"; then
+    func_convert_core_msys_to_w32 "$1"
+    func_cygpath -u "$func_convert_core_msys_to_w32_result"
+    func_to_host_file_result="$func_cygpath_result"
+  fi
+  func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_msys_to_cygwin
+
+
+# func_convert_file_nix_to_cygwin ARG
+# Convert file name ARG from *nix to Cygwin format.  Requires Cygwin installed
+# in a wine environment, working winepath, and LT_CYGPATH set.  Returns result
+# in func_to_host_file_result.
+func_convert_file_nix_to_cygwin ()
+{
+  $opt_debug
+  func_to_host_file_result="$1"
+  if test -n "$1"; then
+    # convert from *nix to w32, then use cygpath to convert from w32 to cygwin.
+    func_convert_core_file_wine_to_w32 "$1"
+    func_cygpath -u "$func_convert_core_file_wine_to_w32_result"
+    func_to_host_file_result="$func_cygpath_result"
+  fi
+  func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_nix_to_cygwin
+
+
+#############################################
+# $build to $host PATH CONVERSION FUNCTIONS #
+#############################################
+# invoked via `$to_host_path_cmd ARG'
+#
+# In each case, ARG is the path to be converted from $build to $host format.
+# The result will be available in $func_to_host_path_result.
+#
+# Path separators are also converted from $build format to $host format.  If
+# ARG begins or ends with a path separator character, it is preserved (but
+# converted to $host format) on output.
+#
+# All path conversion functions are named using the following convention:
+#   file name conversion function    : func_convert_file_X_to_Y ()
+#   path conversion function         : func_convert_path_X_to_Y ()
+# where, for any given $build/$host combination the 'X_to_Y' value is the
+# same.  If conversion functions are added for new $build/$host combinations,
+# the two new functions must follow this pattern, or func_init_to_host_path_cmd
+# will break.
+
+
+# func_init_to_host_path_cmd
+# Ensures that function "pointer" variable $to_host_path_cmd is set to the
+# appropriate value, based on the value of $to_host_file_cmd.
+to_host_path_cmd=
+func_init_to_host_path_cmd ()
+{
+  $opt_debug
+  if test -z "$to_host_path_cmd"; then
+    func_stripname 'func_convert_file_' '' "$to_host_file_cmd"
+    to_host_path_cmd="func_convert_path_${func_stripname_result}"
+  fi
+}
+
+
+# func_to_host_path ARG
+# Converts the path ARG from $build format to $host format. Return result
+# in func_to_host_path_result.
+func_to_host_path ()
+{
+  $opt_debug
+  func_init_to_host_path_cmd
+  $to_host_path_cmd "$1"
+}
+# end func_to_host_path
+
+
+# func_convert_path_noop ARG
+# Copy ARG to func_to_host_path_result.
+func_convert_path_noop ()
+{
+  func_to_host_path_result="$1"
+}
+# end func_convert_path_noop
+
+
+# func_convert_path_msys_to_w32 ARG
+# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic
+# conversion to w32 is not available inside the cwrapper.  Returns result in
+# func_to_host_path_result.
+func_convert_path_msys_to_w32 ()
+{
+  $opt_debug
+  func_to_host_path_result="$1"
+  if test -n "$1"; then
+    # Remove leading and trailing path separator characters from ARG.  MSYS
+    # behavior is inconsistent here; cygpath turns them into '.;' and ';.';
+    # and winepath ignores them completely.
+    func_stripname : : "$1"
+    func_to_host_path_tmp1=$func_stripname_result
+    func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
+    func_to_host_path_result="$func_convert_core_msys_to_w32_result"
+    func_convert_path_check : ";" \
+      "$func_to_host_path_tmp1" "$func_to_host_path_result"
+    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
+  fi
+}
+# end func_convert_path_msys_to_w32
+
+
+# func_convert_path_cygwin_to_w32 ARG
+# Convert path ARG from Cygwin to w32 format.  Returns result in
+# func_to_host_file_result.
+func_convert_path_cygwin_to_w32 ()
+{
+  $opt_debug
+  func_to_host_path_result="$1"
+  if test -n "$1"; then
+    # See func_convert_path_msys_to_w32:
+    func_stripname : : "$1"
+    func_to_host_path_tmp1=$func_stripname_result
+    func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"`
+    func_convert_path_check : ";" \
+      "$func_to_host_path_tmp1" "$func_to_host_path_result"
+    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
+  fi
+}
+# end func_convert_path_cygwin_to_w32
+
+
+# func_convert_path_nix_to_w32 ARG
+# Convert path ARG from *nix to w32 format.  Requires a wine environment and
+# a working winepath.  Returns result in func_to_host_file_result.
+func_convert_path_nix_to_w32 ()
+{
+  $opt_debug
+  func_to_host_path_result="$1"
+  if test -n "$1"; then
+    # See func_convert_path_msys_to_w32:
+    func_stripname : : "$1"
+    func_to_host_path_tmp1=$func_stripname_result
+    func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
+    func_to_host_path_result="$func_convert_core_path_wine_to_w32_result"
+    func_convert_path_check : ";" \
+      "$func_to_host_path_tmp1" "$func_to_host_path_result"
+    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
+  fi
+}
+# end func_convert_path_nix_to_w32
+
+
+# func_convert_path_msys_to_cygwin ARG
+# Convert path ARG from MSYS to Cygwin format.  Requires LT_CYGPATH set.
+# Returns result in func_to_host_file_result.
+func_convert_path_msys_to_cygwin ()
+{
+  $opt_debug
+  func_to_host_path_result="$1"
+  if test -n "$1"; then
+    # See func_convert_path_msys_to_w32:
+    func_stripname : : "$1"
+    func_to_host_path_tmp1=$func_stripname_result
+    func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
+    func_cygpath -u -p "$func_convert_core_msys_to_w32_result"
+    func_to_host_path_result="$func_cygpath_result"
+    func_convert_path_check : : \
+      "$func_to_host_path_tmp1" "$func_to_host_path_result"
+    func_convert_path_front_back_pathsep ":*" "*:" : "$1"
+  fi
+}
+# end func_convert_path_msys_to_cygwin
+
+
+# func_convert_path_nix_to_cygwin ARG
+# Convert path ARG from *nix to Cygwin format.  Requires Cygwin installed in a
+# a wine environment, working winepath, and LT_CYGPATH set.  Returns result in
+# func_to_host_file_result.
+func_convert_path_nix_to_cygwin ()
+{
+  $opt_debug
+  func_to_host_path_result="$1"
+  if test -n "$1"; then
+    # Remove leading and trailing path separator characters from
+    # ARG. msys behavior is inconsistent here, cygpath turns them
+    # into '.;' and ';.', and winepath ignores them completely.
+    func_stripname : : "$1"
+    func_to_host_path_tmp1=$func_stripname_result
+    func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
+    func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result"
+    func_to_host_path_result="$func_cygpath_result"
+    func_convert_path_check : : \
+      "$func_to_host_path_tmp1" "$func_to_host_path_result"
+    func_convert_path_front_back_pathsep ":*" "*:" : "$1"
+  fi
+}
+# end func_convert_path_nix_to_cygwin
+
+
 # func_mode_compile arg...
 func_mode_compile ()
 {
@@ -1137,12 +1985,12 @@ func_mode_compile ()
 	  ;;
 
 	-pie | -fpie | -fPIE)
-          pie_flag="$pie_flag $arg"
+          func_append pie_flag " $arg"
 	  continue
 	  ;;
 
 	-shared | -static | -prefer-pic | -prefer-non-pic)
-	  later="$later $arg"
+	  func_append later " $arg"
 	  continue
 	  ;;
 
@@ -1163,15 +2011,14 @@ func_mode_compile ()
 	  save_ifs="$IFS"; IFS=','
 	  for arg in $args; do
 	    IFS="$save_ifs"
-	    func_quote_for_eval "$arg"
-	    lastarg="$lastarg $func_quote_for_eval_result"
+	    func_append_quoted lastarg "$arg"
 	  done
 	  IFS="$save_ifs"
 	  func_stripname ' ' '' "$lastarg"
 	  lastarg=$func_stripname_result
 
 	  # Add the arguments to base_compile.
-	  base_compile="$base_compile $lastarg"
+	  func_append base_compile " $lastarg"
 	  continue
 	  ;;
 
@@ -1187,8 +2034,7 @@ func_mode_compile ()
       esac    #  case $arg_mode
 
       # Aesthetically quote the previous argument.
-      func_quote_for_eval "$lastarg"
-      base_compile="$base_compile $func_quote_for_eval_result"
+      func_append_quoted base_compile "$lastarg"
     done # for arg
 
     case $arg_mode in
@@ -1213,7 +2059,7 @@ func_mode_compile ()
     *.[cCFSifmso] | \
     *.ada | *.adb | *.ads | *.asm | \
     *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \
-    *.[fF][09]? | *.for | *.java | *.obj | *.sx)
+    *.[fF][09]? | *.for | *.java | *.obj | *.sx | *.cu | *.cup)
       func_xform "$libobj"
       libobj=$func_xform_result
       ;;
@@ -1288,7 +2134,7 @@ func_mode_compile ()
     # Calculate the filename of the output object if compiler does
     # not support -o with -c
     if test "$compiler_c_o" = no; then
-      output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
+      output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext}
       lockfile="$output_obj.lock"
     else
       output_obj=
@@ -1319,17 +2165,16 @@ compiler."
 	$opt_dry_run || $RM $removelist
 	exit $EXIT_FAILURE
       fi
-      removelist="$removelist $output_obj"
+      func_append removelist " $output_obj"
       $ECHO "$srcfile" > "$lockfile"
     fi
 
     $opt_dry_run || $RM $removelist
-    removelist="$removelist $lockfile"
+    func_append removelist " $lockfile"
     trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15
 
-    if test -n "$fix_srcfile_path"; then
-      eval srcfile=\"$fix_srcfile_path\"
-    fi
+    func_to_tool_file "$srcfile" func_convert_file_msys_to_w32
+    srcfile=$func_to_tool_file_result
     func_quote_for_eval "$srcfile"
     qsrcfile=$func_quote_for_eval_result
 
@@ -1349,7 +2194,7 @@ compiler."
 
       if test -z "$output_obj"; then
 	# Place PIC objects in $objdir
-	command="$command -o $lobj"
+	func_append command " -o $lobj"
       fi
 
       func_show_eval_locale "$command"	\
@@ -1396,11 +2241,11 @@ compiler."
 	command="$base_compile $qsrcfile $pic_flag"
       fi
       if test "$compiler_c_o" = yes; then
-	command="$command -o $obj"
+	func_append command " -o $obj"
       fi
 
       # Suppress compiler output if we already did a PIC compilation.
-      command="$command$suppress_output"
+      func_append command "$suppress_output"
       func_show_eval_locale "$command" \
         '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
 
@@ -1445,13 +2290,13 @@ compiler."
 }
 
 $opt_help || {
-test "$mode" = compile && func_mode_compile ${1+"$@"}
+  test "$opt_mode" = compile && func_mode_compile ${1+"$@"}
 }
 
 func_mode_help ()
 {
     # We need to display help for each of the modes.
-    case $mode in
+    case $opt_mode in
       "")
         # Generic help is extracted from the usage comments
         # at the start of this file.
@@ -1482,10 +2327,11 @@ This mode accepts the following additional options:
 
   -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
   -no-suppress      do not suppress compiler output for multiple passes
-  -prefer-pic       try to building PIC objects only
-  -prefer-non-pic   try to building non-PIC objects only
+  -prefer-pic       try to build PIC objects only
+  -prefer-non-pic   try to build non-PIC objects only
   -shared           do not build a \`.o' file suitable for static linking
   -static           only build a \`.o' file suitable for static linking
+  -Wc,FLAG          pass FLAG directly to the compiler
 
 COMPILE-COMMAND is a command to be used in creating a \`standard' object file
 from the given SOURCEFILE.
@@ -1538,7 +2384,7 @@ either the \`install' or \`cp' program.
 
 The following components of INSTALL-COMMAND are treated specially:
 
-  -inst-prefix PREFIX-DIR  Use PREFIX-DIR as a staging area for installation
+  -inst-prefix-dir PREFIX-DIR  Use PREFIX-DIR as a staging area for installation
 
 The rest of the components are interpreted as arguments to that command (only
 BSD-compatible install options are recognized)."
@@ -1558,6 +2404,8 @@ The following components of LINK-COMMAND are treated specially:
 
   -all-static       do not do any dynamic linking at all
   -avoid-version    do not add a version suffix if possible
+  -bindir BINDIR    specify path to binaries directory (for systems where
+                    libraries must be found in the PATH setting at runtime)
   -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
   -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
   -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
@@ -1586,6 +2434,11 @@ The following components of LINK-COMMAND are treated specially:
   -version-info CURRENT[:REVISION[:AGE]]
                     specify library version info [each variable defaults to 0]
   -weak LIBNAME     declare that the target provides the LIBNAME interface
+  -Wc,FLAG
+  -Xcompiler FLAG   pass linker-specific FLAG directly to the compiler
+  -Wl,FLAG
+  -Xlinker FLAG     pass linker-specific FLAG directly to the linker
+  -XCClinker FLAG   pass link-specific FLAG to the compiler driver (CC)
 
 All other options (arguments beginning with \`-') are ignored.
 
@@ -1619,18 +2472,44 @@ Otherwise, only FILE itself is deleted using RM."
         ;;
 
       *)
-        func_fatal_help "invalid operation mode \`$mode'"
+        func_fatal_help "invalid operation mode \`$opt_mode'"
         ;;
     esac
 
-    $ECHO
+    echo
     $ECHO "Try \`$progname --help' for more information about other modes."
-
-    exit $?
 }
 
-  # Now that we've collected a possible --mode arg, show help if necessary
-  $opt_help && func_mode_help
+# Now that we've collected a possible --mode arg, show help if necessary
+if $opt_help; then
+  if test "$opt_help" = :; then
+    func_mode_help
+  else
+    {
+      func_help noexit
+      for opt_mode in compile link execute install finish uninstall clean; do
+	func_mode_help
+      done
+    } | sed -n '1p; 2,$s/^Usage:/  or: /p'
+    {
+      func_help noexit
+      for opt_mode in compile link execute install finish uninstall clean; do
+	echo
+	func_mode_help
+      done
+    } |
+    sed '1d
+      /^When reporting/,/^Report/{
+	H
+	d
+      }
+      $x
+      /information about other modes/d
+      /more detailed .*MODE/d
+      s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/'
+  fi
+  exit $?
+fi
 
 
 # func_mode_execute arg...
@@ -1643,13 +2522,16 @@ func_mode_execute ()
       func_fatal_help "you must specify a COMMAND"
 
     # Handle -dlopen flags immediately.
-    for file in $execute_dlfiles; do
+    for file in $opt_dlopen; do
       test -f "$file" \
 	|| func_fatal_help "\`$file' is not a file"
 
       dir=
       case $file in
       *.la)
+	func_resolve_sysroot "$file"
+	file=$func_resolve_sysroot_result
+
 	# Check to see that this really is a libtool archive.
 	func_lalib_unsafe_p "$file" \
 	  || func_fatal_help "\`$lib' is not a valid libtool archive"
@@ -1671,7 +2553,7 @@ func_mode_execute ()
 	dir="$func_dirname_result"
 
 	if test -f "$dir/$objdir/$dlname"; then
-	  dir="$dir/$objdir"
+	  func_append dir "/$objdir"
 	else
 	  if test ! -f "$dir/$dlname"; then
 	    func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'"
@@ -1712,7 +2594,7 @@ func_mode_execute ()
     for file
     do
       case $file in
-      -*) ;;
+      -* | *.la | *.lo ) ;;
       *)
 	# Do a test to see if this is really a libtool program.
 	if func_ltwrapper_script_p "$file"; then
@@ -1728,8 +2610,7 @@ func_mode_execute ()
 	;;
       esac
       # Quote arguments (to preserve shell metacharacters).
-      func_quote_for_eval "$file"
-      args="$args $func_quote_for_eval_result"
+      func_append_quoted args "$file"
     done
 
     if test "X$opt_dry_run" = Xfalse; then
@@ -1754,29 +2635,66 @@ func_mode_execute ()
       # Display what would be done.
       if test -n "$shlibpath_var"; then
 	eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\""
-	$ECHO "export $shlibpath_var"
+	echo "export $shlibpath_var"
       fi
       $ECHO "$cmd$args"
       exit $EXIT_SUCCESS
     fi
 }
 
-test "$mode" = execute && func_mode_execute ${1+"$@"}
+test "$opt_mode" = execute && func_mode_execute ${1+"$@"}
 
 
 # func_mode_finish arg...
 func_mode_finish ()
 {
     $opt_debug
-    libdirs="$nonopt"
+    libs=
+    libdirs=
     admincmds=
 
-    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
-      for dir
-      do
-	libdirs="$libdirs $dir"
-      done
+    for opt in "$nonopt" ${1+"$@"}
+    do
+      if test -d "$opt"; then
+	func_append libdirs " $opt"
+
+      elif test -f "$opt"; then
+	if func_lalib_unsafe_p "$opt"; then
+	  func_append libs " $opt"
+	else
+	  func_warning "\`$opt' is not a valid libtool archive"
+	fi
 
+      else
+	func_fatal_error "invalid argument \`$opt'"
+      fi
+    done
+
+    if test -n "$libs"; then
+      if test -n "$lt_sysroot"; then
+        sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"`
+        sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;"
+      else
+        sysroot_cmd=
+      fi
+
+      # Remove sysroot references
+      if $opt_dry_run; then
+        for lib in $libs; do
+          echo "removing references to $lt_sysroot and \`=' prefixes from $lib"
+        done
+      else
+        tmpdir=`func_mktempdir`
+        for lib in $libs; do
+	  sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \
+	    > $tmpdir/tmp-la
+	  mv -f $tmpdir/tmp-la $lib
+	done
+        ${RM}r "$tmpdir"
+      fi
+    fi
+
+    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
       for libdir in $libdirs; do
 	if test -n "$finish_cmds"; then
 	  # Do each command in the finish commands.
@@ -1786,7 +2704,7 @@ func_mode_finish ()
 	if test -n "$finish_eval"; then
 	  # Do the single finish_eval.
 	  eval cmds=\"$finish_eval\"
-	  $opt_dry_run || eval "$cmds" || admincmds="$admincmds
+	  $opt_dry_run || eval "$cmds" || func_append admincmds "
        $cmds"
 	fi
       done
@@ -1795,53 +2713,55 @@ func_mode_finish ()
     # Exit here if they wanted silent mode.
     $opt_silent && exit $EXIT_SUCCESS
 
-    $ECHO "X----------------------------------------------------------------------" | $Xsed
-    $ECHO "Libraries have been installed in:"
-    for libdir in $libdirs; do
-      $ECHO "   $libdir"
-    done
-    $ECHO
-    $ECHO "If you ever happen to want to link against installed libraries"
-    $ECHO "in a given directory, LIBDIR, you must either use libtool, and"
-    $ECHO "specify the full pathname of the library, or use the \`-LLIBDIR'"
-    $ECHO "flag during linking and do at least one of the following:"
-    if test -n "$shlibpath_var"; then
-      $ECHO "   - add LIBDIR to the \`$shlibpath_var' environment variable"
-      $ECHO "     during execution"
-    fi
-    if test -n "$runpath_var"; then
-      $ECHO "   - add LIBDIR to the \`$runpath_var' environment variable"
-      $ECHO "     during linking"
-    fi
-    if test -n "$hardcode_libdir_flag_spec"; then
-      libdir=LIBDIR
-      eval flag=\"$hardcode_libdir_flag_spec\"
+    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
+      echo "----------------------------------------------------------------------"
+      echo "Libraries have been installed in:"
+      for libdir in $libdirs; do
+	$ECHO "   $libdir"
+      done
+      echo
+      echo "If you ever happen to want to link against installed libraries"
+      echo "in a given directory, LIBDIR, you must either use libtool, and"
+      echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
+      echo "flag during linking and do at least one of the following:"
+      if test -n "$shlibpath_var"; then
+	echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
+	echo "     during execution"
+      fi
+      if test -n "$runpath_var"; then
+	echo "   - add LIBDIR to the \`$runpath_var' environment variable"
+	echo "     during linking"
+      fi
+      if test -n "$hardcode_libdir_flag_spec"; then
+	libdir=LIBDIR
+	eval flag=\"$hardcode_libdir_flag_spec\"
 
-      $ECHO "   - use the \`$flag' linker flag"
-    fi
-    if test -n "$admincmds"; then
-      $ECHO "   - have your system administrator run these commands:$admincmds"
-    fi
-    if test -f /etc/ld.so.conf; then
-      $ECHO "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
-    fi
-    $ECHO
+	$ECHO "   - use the \`$flag' linker flag"
+      fi
+      if test -n "$admincmds"; then
+	$ECHO "   - have your system administrator run these commands:$admincmds"
+      fi
+      if test -f /etc/ld.so.conf; then
+	echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
+      fi
+      echo
 
-    $ECHO "See any operating system documentation about shared libraries for"
-    case $host in
-      solaris2.[6789]|solaris2.1[0-9])
-        $ECHO "more information, such as the ld(1), crle(1) and ld.so(8) manual"
-	$ECHO "pages."
-	;;
-      *)
-        $ECHO "more information, such as the ld(1) and ld.so(8) manual pages."
-        ;;
-    esac
-    $ECHO "X----------------------------------------------------------------------" | $Xsed
+      echo "See any operating system documentation about shared libraries for"
+      case $host in
+	solaris2.[6789]|solaris2.1[0-9])
+	  echo "more information, such as the ld(1), crle(1) and ld.so(8) manual"
+	  echo "pages."
+	  ;;
+	*)
+	  echo "more information, such as the ld(1) and ld.so(8) manual pages."
+	  ;;
+      esac
+      echo "----------------------------------------------------------------------"
+    fi
     exit $EXIT_SUCCESS
 }
 
-test "$mode" = finish && func_mode_finish ${1+"$@"}
+test "$opt_mode" = finish && func_mode_finish ${1+"$@"}
 
 
 # func_mode_install arg...
@@ -1852,7 +2772,7 @@ func_mode_install ()
     # install_prog (especially on Windows NT).
     if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
        # Allow the use of GNU shtool's install command.
-       $ECHO "X$nonopt" | $GREP shtool >/dev/null; then
+       case $nonopt in *shtool*) :;; *) false;; esac; then
       # Aesthetically quote it.
       func_quote_for_eval "$nonopt"
       install_prog="$func_quote_for_eval_result "
@@ -1866,7 +2786,12 @@ func_mode_install ()
     # The real first argument should be the name of the installation program.
     # Aesthetically quote it.
     func_quote_for_eval "$arg"
-    install_prog="$install_prog$func_quote_for_eval_result"
+    func_append install_prog "$func_quote_for_eval_result"
+    install_shared_prog=$install_prog
+    case " $install_prog " in
+      *[\\\ /]cp\ *) install_cp=: ;;
+      *) install_cp=false ;;
+    esac
 
     # We need to accept at least all the BSD install flags.
     dest=
@@ -1876,10 +2801,12 @@ func_mode_install ()
     install_type=
     isdir=no
     stripme=
+    no_mode=:
     for arg
     do
+      arg2=
       if test -n "$dest"; then
-	files="$files $dest"
+	func_append files " $dest"
 	dest=$arg
 	continue
       fi
@@ -1887,10 +2814,9 @@ func_mode_install ()
       case $arg in
       -d) isdir=yes ;;
       -f)
-	case " $install_prog " in
-	*[\\\ /]cp\ *) ;;
-	*) prev=$arg ;;
-	esac
+	if $install_cp; then :; else
+	  prev=$arg
+	fi
 	;;
       -g | -m | -o)
 	prev=$arg
@@ -1904,6 +2830,10 @@ func_mode_install ()
       *)
 	# If the previous option needed an argument, then skip it.
 	if test -n "$prev"; then
+	  if test "x$prev" = x-m && test -n "$install_override_mode"; then
+	    arg2=$install_override_mode
+	    no_mode=false
+	  fi
 	  prev=
 	else
 	  dest=$arg
@@ -1914,7 +2844,11 @@ func_mode_install ()
 
       # Aesthetically quote the argument.
       func_quote_for_eval "$arg"
-      install_prog="$install_prog $func_quote_for_eval_result"
+      func_append install_prog " $func_quote_for_eval_result"
+      if test -n "$arg2"; then
+	func_quote_for_eval "$arg2"
+      fi
+      func_append install_shared_prog " $func_quote_for_eval_result"
     done
 
     test -z "$install_prog" && \
@@ -1923,6 +2857,13 @@ func_mode_install ()
     test -n "$prev" && \
       func_fatal_help "the \`$prev' option requires an argument"
 
+    if test -n "$install_override_mode" && $no_mode; then
+      if $install_cp; then :; else
+	func_quote_for_eval "$install_override_mode"
+	func_append install_shared_prog " -m $func_quote_for_eval_result"
+      fi
+    fi
+
     if test -z "$files"; then
       if test -z "$dest"; then
 	func_fatal_help "no file or destination specified"
@@ -1977,10 +2918,13 @@ func_mode_install ()
       case $file in
       *.$libext)
 	# Do the static libraries later.
-	staticlibs="$staticlibs $file"
+	func_append staticlibs " $file"
 	;;
 
       *.la)
+	func_resolve_sysroot "$file"
+	file=$func_resolve_sysroot_result
+
 	# Check to see that this really is a libtool archive.
 	func_lalib_unsafe_p "$file" \
 	  || func_fatal_help "\`$file' is not a valid libtool archive"
@@ -1994,23 +2938,23 @@ func_mode_install ()
 	if test "X$destdir" = "X$libdir"; then
 	  case "$current_libdirs " in
 	  *" $libdir "*) ;;
-	  *) current_libdirs="$current_libdirs $libdir" ;;
+	  *) func_append current_libdirs " $libdir" ;;
 	  esac
 	else
 	  # Note the libdir as a future libdir.
 	  case "$future_libdirs " in
 	  *" $libdir "*) ;;
-	  *) future_libdirs="$future_libdirs $libdir" ;;
+	  *) func_append future_libdirs " $libdir" ;;
 	  esac
 	fi
 
 	func_dirname "$file" "/" ""
 	dir="$func_dirname_result"
-	dir="$dir$objdir"
+	func_append dir "$objdir"
 
 	if test -n "$relink_command"; then
 	  # Determine the prefix the user has applied to our future dir.
-	  inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"`
+	  inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"`
 
 	  # Don't allow the user to place us outside of our expected
 	  # location b/c this prevents finding dependent libraries that
@@ -2023,9 +2967,9 @@ func_mode_install ()
 
 	  if test -n "$inst_prefix_dir"; then
 	    # Stick the inst_prefix_dir data into the link command.
-	    relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
+	    relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
 	  else
-	    relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"`
+	    relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
 	  fi
 
 	  func_warning "relinking \`$file'"
@@ -2043,7 +2987,7 @@ func_mode_install ()
 	  test -n "$relink_command" && srcname="$realname"T
 
 	  # Install the shared library and build the symlinks.
-	  func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \
+	  func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \
 	      'exit $?'
 	  tstripme="$stripme"
 	  case $host_os in
@@ -2083,7 +3027,7 @@ func_mode_install ()
 	func_show_eval "$install_prog $instname $destdir/$name" 'exit $?'
 
 	# Maybe install the static library, too.
-	test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
+	test -n "$old_library" && func_append staticlibs " $dir/$old_library"
 	;;
 
       *.lo)
@@ -2183,7 +3127,7 @@ func_mode_install ()
 	    if test -f "$lib"; then
 	      func_source "$lib"
 	    fi
-	    libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
+	    libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test
 	    if test -n "$libdir" && test ! -f "$libfile"; then
 	      func_warning "\`$lib' has not been installed in \`$libdir'"
 	      finalize=no
@@ -2202,7 +3146,7 @@ func_mode_install ()
 		file="$func_basename_result"
 	        outputname="$tmpdir/$file"
 	        # Replace the output file specification.
-	        relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
+	        relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'`
 
 	        $opt_silent || {
 	          func_quote_for_expand "$relink_command"
@@ -2221,7 +3165,7 @@ func_mode_install ()
 	    }
 	  else
 	    # Install the binary that we compiled earlier.
-	    file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
+	    file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"`
 	  fi
 	fi
 
@@ -2280,7 +3224,7 @@ func_mode_install ()
     fi
 }
 
-test "$mode" = install && func_mode_install ${1+"$@"}
+test "$opt_mode" = install && func_mode_install ${1+"$@"}
 
 
 # func_generate_dlsyms outputname originator pic_p
@@ -2323,6 +3267,22 @@ func_generate_dlsyms ()
 extern \"C\" {
 #endif
 
+#if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4))
+#pragma GCC diagnostic ignored \"-Wstrict-prototypes\"
+#endif
+
+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
+#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
+/* DATA imports from DLLs on WIN32 con't be const, because runtime
+   relocations are performed -- see ld's documentation on pseudo-relocs.  */
+# define LT_DLSYM_CONST
+#elif defined(__osf__)
+/* This system does not cope well with relocations in const data.  */
+# define LT_DLSYM_CONST
+#else
+# define LT_DLSYM_CONST const
+#endif
+
 /* External symbol declarations for the compiler. */\
 "
 
@@ -2332,10 +3292,11 @@ extern \"C\" {
 	  $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist"
 
 	  # Add our own program objects to the symbol list.
-	  progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+	  progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP`
 	  for progfile in $progfiles; do
-	    func_verbose "extracting global C symbols from \`$progfile'"
-	    $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'"
+	    func_to_tool_file "$progfile" func_convert_file_msys_to_w32
+	    func_verbose "extracting global C symbols from \`$func_to_tool_file_result'"
+	    $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'"
 	  done
 
 	  if test -n "$exclude_expsyms"; then
@@ -2371,7 +3332,7 @@ extern \"C\" {
 	      eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
 	      eval '$MV "$nlist"T "$nlist"'
 	      case $host in
-	        *cygwin | *mingw* | *cegcc* )
+	        *cygwin* | *mingw* | *cegcc* )
 	          eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
 	          eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
 	          ;;
@@ -2384,10 +3345,52 @@ extern \"C\" {
 	  func_verbose "extracting global C symbols from \`$dlprefile'"
 	  func_basename "$dlprefile"
 	  name="$func_basename_result"
-	  $opt_dry_run || {
-	    eval '$ECHO ": $name " >> "$nlist"'
-	    eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'"
-	  }
+          case $host in
+	    *cygwin* | *mingw* | *cegcc* )
+	      # if an import library, we need to obtain dlname
+	      if func_win32_import_lib_p "$dlprefile"; then
+	        func_tr_sh "$dlprefile"
+	        eval "curr_lafile=\$libfile_$func_tr_sh_result"
+	        dlprefile_dlbasename=""
+	        if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then
+	          # Use subshell, to avoid clobbering current variable values
+	          dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"`
+	          if test -n "$dlprefile_dlname" ; then
+	            func_basename "$dlprefile_dlname"
+	            dlprefile_dlbasename="$func_basename_result"
+	          else
+	            # no lafile. user explicitly requested -dlpreopen <import library>.
+	            $sharedlib_from_linklib_cmd "$dlprefile"
+	            dlprefile_dlbasename=$sharedlib_from_linklib_result
+	          fi
+	        fi
+	        $opt_dry_run || {
+	          if test -n "$dlprefile_dlbasename" ; then
+	            eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"'
+	          else
+	            func_warning "Could not compute DLL name from $name"
+	            eval '$ECHO ": $name " >> "$nlist"'
+	          fi
+	          func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
+	          eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe |
+	            $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'"
+	        }
+	      else # not an import lib
+	        $opt_dry_run || {
+	          eval '$ECHO ": $name " >> "$nlist"'
+	          func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
+	          eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
+	        }
+	      fi
+	    ;;
+	    *)
+	      $opt_dry_run || {
+	        eval '$ECHO ": $name " >> "$nlist"'
+	        func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
+	        eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
+	      }
+	    ;;
+          esac
 	done
 
 	$opt_dry_run || {
@@ -2415,36 +3418,19 @@ extern \"C\" {
 	  if test -f "$nlist"S; then
 	    eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"'
 	  else
-	    $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms"
+	    echo '/* NONE */' >> "$output_objdir/$my_dlsyms"
 	  fi
 
-	  $ECHO >> "$output_objdir/$my_dlsyms" "\
+	  echo >> "$output_objdir/$my_dlsyms" "\
 
 /* The mapping between symbol names and symbols.  */
 typedef struct {
   const char *name;
   void *address;
 } lt_dlsymlist;
-"
-	  case $host in
-	  *cygwin* | *mingw* | *cegcc* )
-	    $ECHO >> "$output_objdir/$my_dlsyms" "\
-/* DATA imports from DLLs on WIN32 con't be const, because
-   runtime relocations are performed -- see ld's documentation
-   on pseudo-relocs.  */"
-	    lt_dlsym_const= ;;
-	  *osf5*)
-	    echo >> "$output_objdir/$my_dlsyms" "\
-/* This system does not cope well with relocations in const data */"
-	    lt_dlsym_const= ;;
-	  *)
-	    lt_dlsym_const=const ;;
-	  esac
-
-	  $ECHO >> "$output_objdir/$my_dlsyms" "\
-extern $lt_dlsym_const lt_dlsymlist
+extern LT_DLSYM_CONST lt_dlsymlist
 lt_${my_prefix}_LTX_preloaded_symbols[];
-$lt_dlsym_const lt_dlsymlist
+LT_DLSYM_CONST lt_dlsymlist
 lt_${my_prefix}_LTX_preloaded_symbols[] =
 {\
   { \"$my_originator\", (void *) 0 },"
@@ -2457,7 +3443,7 @@ lt_${my_prefix}_LTX_preloaded_symbols[] =
 	    eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms"
 	    ;;
 	  esac
-	  $ECHO >> "$output_objdir/$my_dlsyms" "\
+	  echo >> "$output_objdir/$my_dlsyms" "\
   {0, (void *) 0}
 };
 
@@ -2500,7 +3486,7 @@ static const void *lt_preloaded_setup() {
 	for arg in $LTCFLAGS; do
 	  case $arg in
 	  -pie | -fpie | -fPIE) ;;
-	  *) symtab_cflags="$symtab_cflags $arg" ;;
+	  *) func_append symtab_cflags " $arg" ;;
 	  esac
 	done
 
@@ -2515,16 +3501,16 @@ static const void *lt_preloaded_setup() {
 	case $host in
 	*cygwin* | *mingw* | *cegcc* )
 	  if test -f "$output_objdir/$my_outputname.def"; then
-	    compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
-	    finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
+	    compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
+	    finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
 	  else
-	    compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
-	    finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
+	    compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
+	    finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
 	  fi
 	  ;;
 	*)
-	  compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
-	  finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
+	  compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
+	  finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
 	  ;;
 	esac
 	;;
@@ -2538,8 +3524,8 @@ static const void *lt_preloaded_setup() {
       # really was required.
 
       # Nullify the symbol file.
-      compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
-      finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
+      compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"`
+      finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"`
     fi
 }
 
@@ -2549,6 +3535,7 @@ static const void *lt_preloaded_setup() {
 # Need a lot of goo to handle *both* DLLs and import libs
 # Has to be a shell function in order to 'eat' the argument
 # that is supplied when $file_magic_command is called.
+# Despite the name, also deal with 64 bit binaries.
 func_win32_libid ()
 {
   $opt_debug
@@ -2559,9 +3546,11 @@ func_win32_libid ()
     win32_libid_type="x86 archive import"
     ;;
   *ar\ archive*) # could be an import, or static
+    # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD.
     if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
-       $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
-      win32_nmres=`eval $NM -f posix -A $1 |
+       $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then
+      func_to_tool_file "$1" func_convert_file_msys_to_w32
+      win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" |
 	$SED -n -e '
 	    1,100{
 		/ I /{
@@ -2590,6 +3579,131 @@ func_win32_libid ()
   $ECHO "$win32_libid_type"
 }
 
+# func_cygming_dll_for_implib ARG
+#
+# Platform-specific function to extract the
+# name of the DLL associated with the specified
+# import library ARG.
+# Invoked by eval'ing the libtool variable
+#    $sharedlib_from_linklib_cmd
+# Result is available in the variable
+#    $sharedlib_from_linklib_result
+func_cygming_dll_for_implib ()
+{
+  $opt_debug
+  sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"`
+}
+
+# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs
+#
+# The is the core of a fallback implementation of a
+# platform-specific function to extract the name of the
+# DLL associated with the specified import library LIBNAME.
+#
+# SECTION_NAME is either .idata$6 or .idata$7, depending
+# on the platform and compiler that created the implib.
+#
+# Echos the name of the DLL associated with the
+# specified import library.
+func_cygming_dll_for_implib_fallback_core ()
+{
+  $opt_debug
+  match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"`
+  $OBJDUMP -s --section "$1" "$2" 2>/dev/null |
+    $SED '/^Contents of section '"$match_literal"':/{
+      # Place marker at beginning of archive member dllname section
+      s/.*/====MARK====/
+      p
+      d
+    }
+    # These lines can sometimes be longer than 43 characters, but
+    # are always uninteresting
+    /:[	 ]*file format pe[i]\{,1\}-/d
+    /^In archive [^:]*:/d
+    # Ensure marker is printed
+    /^====MARK====/p
+    # Remove all lines with less than 43 characters
+    /^.\{43\}/!d
+    # From remaining lines, remove first 43 characters
+    s/^.\{43\}//' |
+    $SED -n '
+      # Join marker and all lines until next marker into a single line
+      /^====MARK====/ b para
+      H
+      $ b para
+      b
+      :para
+      x
+      s/\n//g
+      # Remove the marker
+      s/^====MARK====//
+      # Remove trailing dots and whitespace
+      s/[\. \t]*$//
+      # Print
+      /./p' |
+    # we now have a list, one entry per line, of the stringified
+    # contents of the appropriate section of all members of the
+    # archive which possess that section. Heuristic: eliminate
+    # all those which have a first or second character that is
+    # a '.' (that is, objdump's representation of an unprintable
+    # character.) This should work for all archives with less than
+    # 0x302f exports -- but will fail for DLLs whose name actually
+    # begins with a literal '.' or a single character followed by
+    # a '.'.
+    #
+    # Of those that remain, print the first one.
+    $SED -e '/^\./d;/^.\./d;q'
+}
+
+# func_cygming_gnu_implib_p ARG
+# This predicate returns with zero status (TRUE) if
+# ARG is a GNU/binutils-style import library. Returns
+# with nonzero status (FALSE) otherwise.
+func_cygming_gnu_implib_p ()
+{
+  $opt_debug
+  func_to_tool_file "$1" func_convert_file_msys_to_w32
+  func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'`
+  test -n "$func_cygming_gnu_implib_tmp"
+}
+
+# func_cygming_ms_implib_p ARG
+# This predicate returns with zero status (TRUE) if
+# ARG is an MS-style import library. Returns
+# with nonzero status (FALSE) otherwise.
+func_cygming_ms_implib_p ()
+{
+  $opt_debug
+  func_to_tool_file "$1" func_convert_file_msys_to_w32
+  func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'`
+  test -n "$func_cygming_ms_implib_tmp"
+}
+
+# func_cygming_dll_for_implib_fallback ARG
+# Platform-specific function to extract the
+# name of the DLL associated with the specified
+# import library ARG.
+#
+# This fallback implementation is for use when $DLLTOOL
+# does not support the --identify-strict option.
+# Invoked by eval'ing the libtool variable
+#    $sharedlib_from_linklib_cmd
+# Result is available in the variable
+#    $sharedlib_from_linklib_result
+func_cygming_dll_for_implib_fallback ()
+{
+  $opt_debug
+  if func_cygming_gnu_implib_p "$1" ; then
+    # binutils import library
+    sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"`
+  elif func_cygming_ms_implib_p "$1" ; then
+    # ms-generated import library
+    sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"`
+  else
+    # unknown
+    sharedlib_from_linklib_result=""
+  fi
+}
 
 
 # func_extract_an_archive dir oldlib
@@ -2598,7 +3712,18 @@ func_extract_an_archive ()
     $opt_debug
     f_ex_an_ar_dir="$1"; shift
     f_ex_an_ar_oldlib="$1"
-    func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" 'exit $?'
+    if test "$lock_old_archive_extraction" = yes; then
+      lockfile=$f_ex_an_ar_oldlib.lock
+      until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
+	func_echo "Waiting for $lockfile to be removed"
+	sleep 2
+      done
+    fi
+    func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \
+		   'stat=$?; rm -f "$lockfile"; exit $stat'
+    if test "$lock_old_archive_extraction" = yes; then
+      $opt_dry_run || rm -f "$lockfile"
+    fi
     if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
      :
     else
@@ -2669,7 +3794,7 @@ func_extract_archives ()
 	    darwin_file=
 	    darwin_files=
 	    for darwin_file in $darwin_filelist; do
-	      darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
+	      darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP`
 	      $LIPO -create -output "$darwin_file" $darwin_files
 	    done # $darwin_filelist
 	    $RM -rf unfat-$$
@@ -2684,25 +3809,30 @@ func_extract_archives ()
         func_extract_an_archive "$my_xdir" "$my_xabs"
 	;;
       esac
-      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
+      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP`
     done
 
     func_extract_archives_result="$my_oldobjs"
 }
 
 
-
-# func_emit_wrapper_part1 [arg=no]
+# func_emit_wrapper [arg=no]
 #
-# Emit the first part of a libtool wrapper script on stdout.
-# For more information, see the description associated with
-# func_emit_wrapper(), below.
-func_emit_wrapper_part1 ()
+# Emit a libtool wrapper script on stdout.
+# Don't directly open a file because we may want to
+# incorporate the script contents within a cygwin/mingw
+# wrapper executable.  Must ONLY be called from within
+# func_mode_link because it depends on a number of variables
+# set therein.
+#
+# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
+# variable will take.  If 'yes', then the emitted script
+# will assume that the directory in which it is stored is
+# the $objdir directory.  This is a cygwin/mingw-specific
+# behavior.
+func_emit_wrapper ()
 {
-	func_emit_wrapper_part1_arg1=no
-	if test -n "$1" ; then
-	  func_emit_wrapper_part1_arg1=$1
-	fi
+	func_emit_wrapper_arg1=${1-no}
 
 	$ECHO "\
 #! $SHELL
@@ -2718,7 +3848,6 @@ func_emit_wrapper_part1 ()
 
 # Sed substitution that helps us do robust quoting.  It backslashifies
 # metacharacters that are still active within double-quoted strings.
-Xsed='${SED} -e 1s/^X//'
 sed_quote_subst='$sed_quote_subst'
 
 # Be Bourne compatible
@@ -2749,31 +3878,132 @@ if test \"\$libtool_install_magic\" = \"$magic\"; then
 else
   # When we are sourced in execute mode, \$file and \$ECHO are already set.
   if test \"\$libtool_execute_magic\" != \"$magic\"; then
-    ECHO=\"$qecho\"
-    file=\"\$0\"
-    # Make sure echo works.
-    if test \"X\$1\" = X--no-reexec; then
-      # Discard the --no-reexec flag, and continue.
-      shift
-    elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then
-      # Yippee, \$ECHO works!
-      :
-    else
-      # Restart under the correct shell, and then maybe \$ECHO will work.
-      exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
-    fi
-  fi\
+    file=\"\$0\""
+
+    qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"`
+    $ECHO "\
+
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+  eval 'cat <<_LTECHO_EOF
+\$1
+_LTECHO_EOF'
+}
+    ECHO=\"$qECHO\"
+  fi
+
+# Very basic option parsing. These options are (a) specific to
+# the libtool wrapper, (b) are identical between the wrapper
+# /script/ and the wrapper /executable/ which is used only on
+# windows platforms, and (c) all begin with the string "--lt-"
+# (application programs are unlikely to have options which match
+# this pattern).
+#
+# There are only two supported options: --lt-debug and
+# --lt-dump-script. There is, deliberately, no --lt-help.
+#
+# The first argument to this parsing function should be the
+# script's $0 value, followed by "$@".
+lt_option_debug=
+func_parse_lt_options ()
+{
+  lt_script_arg0=\$0
+  shift
+  for lt_opt
+  do
+    case \"\$lt_opt\" in
+    --lt-debug) lt_option_debug=1 ;;
+    --lt-dump-script)
+        lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\`
+        test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=.
+        lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\`
+        cat \"\$lt_dump_D/\$lt_dump_F\"
+        exit 0
+      ;;
+    --lt-*)
+        \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2
+        exit 1
+      ;;
+    esac
+  done
+
+  # Print the debug banner immediately:
+  if test -n \"\$lt_option_debug\"; then
+    echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2
+  fi
+}
+
+# Used when --lt-debug. Prints its arguments to stdout
+# (redirection is the responsibility of the caller)
+func_lt_dump_args ()
+{
+  lt_dump_args_N=1;
+  for lt_arg
+  do
+    \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\"
+    lt_dump_args_N=\`expr \$lt_dump_args_N + 1\`
+  done
+}
+
+# Core function for launching the target application
+func_exec_program_core ()
+{
 "
-	$ECHO "\
+  case $host in
+  # Backslashes separate directories on plain windows
+  *-*-mingw | *-*-os2* | *-cegcc*)
+    $ECHO "\
+      if test -n \"\$lt_option_debug\"; then
+        \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2
+        func_lt_dump_args \${1+\"\$@\"} 1>&2
+      fi
+      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
+"
+    ;;
+
+  *)
+    $ECHO "\
+      if test -n \"\$lt_option_debug\"; then
+        \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2
+        func_lt_dump_args \${1+\"\$@\"} 1>&2
+      fi
+      exec \"\$progdir/\$program\" \${1+\"\$@\"}
+"
+    ;;
+  esac
+  $ECHO "\
+      \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
+      exit 1
+}
+
+# A function to encapsulate launching the target application
+# Strips options in the --lt-* namespace from \$@ and
+# launches target application with the remaining arguments.
+func_exec_program ()
+{
+  for lt_wr_arg
+  do
+    case \$lt_wr_arg in
+    --lt-*) ;;
+    *) set x \"\$@\" \"\$lt_wr_arg\"; shift;;
+    esac
+    shift
+  done
+  func_exec_program_core \${1+\"\$@\"}
+}
+
+  # Parse options
+  func_parse_lt_options \"\$0\" \${1+\"\$@\"}
 
   # Find the directory that this script lives in.
-  thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
+  thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\`
   test \"x\$thisdir\" = \"x\$file\" && thisdir=.
 
   # Follow symbolic links until we get to the real thisdir.
-  file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
+  file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\`
   while test -n \"\$file\"; do
-    destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
+    destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\`
 
     # If there was a directory component, then change thisdir.
     if test \"x\$destdir\" != \"x\$file\"; then
@@ -2783,30 +4013,13 @@ else
       esac
     fi
 
-    file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
-    file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
+    file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\`
+    file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\`
   done
-"
-}
-# end: func_emit_wrapper_part1
-
-# func_emit_wrapper_part2 [arg=no]
-#
-# Emit the second part of a libtool wrapper script on stdout.
-# For more information, see the description associated with
-# func_emit_wrapper(), below.
-func_emit_wrapper_part2 ()
-{
-	func_emit_wrapper_part2_arg1=no
-	if test -n "$1" ; then
-	  func_emit_wrapper_part2_arg1=$1
-	fi
-
-	$ECHO "\
 
   # Usually 'no', except on cygwin/mingw when embedded into
   # the cwrapper.
-  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_arg1
+  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1
   if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then
     # special case for '.'
     if test \"\$thisdir\" = \".\"; then
@@ -2814,7 +4027,7 @@ func_emit_wrapper_part2 ()
     fi
     # remove .libs from thisdir
     case \"\$thisdir\" in
-    *[\\\\/]$objdir ) thisdir=\`\$ECHO \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;;
+    *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;;
     $objdir )   thisdir=. ;;
     esac
   fi
@@ -2869,6 +4082,18 @@ func_emit_wrapper_part2 ()
 
   if test -f \"\$progdir/\$program\"; then"
 
+	# fixup the dll searchpath if we need to.
+	#
+	# Fix the DLL searchpath if we need to.  Do this before prepending
+	# to shlibpath, because on Windows, both are PATH and uninstalled
+	# libraries must come first.
+	if test -n "$dllsearchpath"; then
+	  $ECHO "\
+    # Add the dll search path components to the executable PATH
+    PATH=$dllsearchpath:\$PATH
+"
+	fi
+
 	# Export our shlibpath_var if we have one.
 	if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
 	  $ECHO "\
@@ -2877,254 +4102,29 @@ func_emit_wrapper_part2 ()
 
     # Some systems cannot cope with colon-terminated $shlibpath_var
     # The second colon is a workaround for a bug in BeOS R4 sed
-    $shlibpath_var=\`\$ECHO \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
+    $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\`
 
     export $shlibpath_var
 "
 	fi
 
-	# fixup the dll searchpath if we need to.
-	if test -n "$dllsearchpath"; then
-	  $ECHO "\
-    # Add the dll search path components to the executable PATH
-    PATH=$dllsearchpath:\$PATH
-"
-	fi
-
 	$ECHO "\
     if test \"\$libtool_execute_magic\" != \"$magic\"; then
       # Run the actual program with our arguments.
-"
-	case $host in
-	# Backslashes separate directories on plain windows
-	*-*-mingw | *-*-os2* | *-cegcc*)
-	  $ECHO "\
-      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
-"
-	  ;;
-
-	*)
-	  $ECHO "\
-      exec \"\$progdir/\$program\" \${1+\"\$@\"}
-"
-	  ;;
-	esac
-	$ECHO "\
-      \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
-      exit 1
+      func_exec_program \${1+\"\$@\"}
     fi
   else
     # The program doesn't exist.
     \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
     \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
-    $ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
+    \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
     exit 1
   fi
 fi\
 "
 }
-# end: func_emit_wrapper_part2
 
 
-# func_emit_wrapper [arg=no]
-#
-# Emit a libtool wrapper script on stdout.
-# Don't directly open a file because we may want to
-# incorporate the script contents within a cygwin/mingw
-# wrapper executable.  Must ONLY be called from within
-# func_mode_link because it depends on a number of variables
-# set therein.
-#
-# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
-# variable will take.  If 'yes', then the emitted script
-# will assume that the directory in which it is stored is
-# the $objdir directory.  This is a cygwin/mingw-specific
-# behavior.
-func_emit_wrapper ()
-{
-	func_emit_wrapper_arg1=no
-	if test -n "$1" ; then
-	  func_emit_wrapper_arg1=$1
-	fi
-
-	# split this up so that func_emit_cwrapperexe_src
-	# can call each part independently.
-	func_emit_wrapper_part1 "${func_emit_wrapper_arg1}"
-	func_emit_wrapper_part2 "${func_emit_wrapper_arg1}"
-}
-
-
-# func_to_host_path arg
-#
-# Convert paths to host format when used with build tools.
-# Intended for use with "native" mingw (where libtool itself
-# is running under the msys shell), or in the following cross-
-# build environments:
-#    $build          $host
-#    mingw (msys)    mingw  [e.g. native]
-#    cygwin          mingw
-#    *nix + wine     mingw
-# where wine is equipped with the `winepath' executable.
-# In the native mingw case, the (msys) shell automatically
-# converts paths for any non-msys applications it launches,
-# but that facility isn't available from inside the cwrapper.
-# Similar accommodations are necessary for $host mingw and
-# $build cygwin.  Calling this function does no harm for other
-# $host/$build combinations not listed above.
-#
-# ARG is the path (on $build) that should be converted to
-# the proper representation for $host. The result is stored
-# in $func_to_host_path_result.
-func_to_host_path ()
-{
-  func_to_host_path_result="$1"
-  if test -n "$1" ; then
-    case $host in
-      *mingw* )
-        lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
-        case $build in
-          *mingw* ) # actually, msys
-            # awkward: cmd appends spaces to result
-            lt_sed_strip_trailing_spaces="s/[ ]*\$//"
-            func_to_host_path_tmp1=`( cmd //c echo "$1" |\
-              $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""`
-            func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
-              $SED -e "$lt_sed_naive_backslashify"`
-            ;;
-          *cygwin* )
-            func_to_host_path_tmp1=`cygpath -w "$1"`
-            func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
-              $SED -e "$lt_sed_naive_backslashify"`
-            ;;
-          * )
-            # Unfortunately, winepath does not exit with a non-zero
-            # error code, so we are forced to check the contents of
-            # stdout. On the other hand, if the command is not
-            # found, the shell will set an exit code of 127 and print
-            # *an error message* to stdout. So we must check for both
-            # error code of zero AND non-empty stdout, which explains
-            # the odd construction:
-            func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null`
-            if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then
-              func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
-                $SED -e "$lt_sed_naive_backslashify"`
-            else
-              # Allow warning below.
-              func_to_host_path_result=""
-            fi
-            ;;
-        esac
-        if test -z "$func_to_host_path_result" ; then
-          func_error "Could not determine host path corresponding to"
-          func_error "  '$1'"
-          func_error "Continuing, but uninstalled executables may not work."
-          # Fallback:
-          func_to_host_path_result="$1"
-        fi
-        ;;
-    esac
-  fi
-}
-# end: func_to_host_path
-
-# func_to_host_pathlist arg
-#
-# Convert pathlists to host format when used with build tools.
-# See func_to_host_path(), above. This function supports the
-# following $build/$host combinations (but does no harm for
-# combinations not listed here):
-#    $build          $host
-#    mingw (msys)    mingw  [e.g. native]
-#    cygwin          mingw
-#    *nix + wine     mingw
-#
-# Path separators are also converted from $build format to
-# $host format. If ARG begins or ends with a path separator
-# character, it is preserved (but converted to $host format)
-# on output.
-#
-# ARG is a pathlist (on $build) that should be converted to
-# the proper representation on $host. The result is stored
-# in $func_to_host_pathlist_result.
-func_to_host_pathlist ()
-{
-  func_to_host_pathlist_result="$1"
-  if test -n "$1" ; then
-    case $host in
-      *mingw* )
-        lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
-        # Remove leading and trailing path separator characters from
-        # ARG. msys behavior is inconsistent here, cygpath turns them
-        # into '.;' and ';.', and winepath ignores them completely.
-        func_to_host_pathlist_tmp2="$1"
-        # Once set for this call, this variable should not be
-        # reassigned. It is used in tha fallback case.
-        func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\
-          $SED -e 's|^:*||' -e 's|:*$||'`
-        case $build in
-          *mingw* ) # Actually, msys.
-            # Awkward: cmd appends spaces to result.
-            lt_sed_strip_trailing_spaces="s/[ ]*\$//"
-            func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\
-              $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""`
-            func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\
-              $SED -e "$lt_sed_naive_backslashify"`
-            ;;
-          *cygwin* )
-            func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"`
-            func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\
-              $SED -e "$lt_sed_naive_backslashify"`
-            ;;
-          * )
-            # unfortunately, winepath doesn't convert pathlists
-            func_to_host_pathlist_result=""
-            func_to_host_pathlist_oldIFS=$IFS
-            IFS=:
-            for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do
-              IFS=$func_to_host_pathlist_oldIFS
-              if test -n "$func_to_host_pathlist_f" ; then
-                func_to_host_path "$func_to_host_pathlist_f"
-                if test -n "$func_to_host_path_result" ; then
-                  if test -z "$func_to_host_pathlist_result" ; then
-                    func_to_host_pathlist_result="$func_to_host_path_result"
-                  else
-                    func_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result"
-                  fi
-                fi
-              fi
-              IFS=:
-            done
-            IFS=$func_to_host_pathlist_oldIFS
-            ;;
-        esac
-        if test -z "$func_to_host_pathlist_result" ; then
-          func_error "Could not determine the host path(s) corresponding to"
-          func_error "  '$1'"
-          func_error "Continuing, but uninstalled executables may not work."
-          # Fallback. This may break if $1 contains DOS-style drive
-          # specifications. The fix is not to complicate the expression
-          # below, but for the user to provide a working wine installation
-          # with winepath so that path translation in the cross-to-mingw
-          # case works properly.
-          lt_replace_pathsep_nix_to_dos="s|:|;|g"
-          func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\
-            $SED -e "$lt_replace_pathsep_nix_to_dos"`
-        fi
-        # Now, add the leading and trailing path separators back
-        case "$1" in
-          :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result"
-            ;;
-        esac
-        case "$1" in
-          *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;"
-            ;;
-        esac
-        ;;
-    esac
-  fi
-}
-# end: func_to_host_pathlist
-
 # func_emit_cwrapperexe_src
 # emit the source code for a wrapper executable on stdout
 # Must ONLY be called from within func_mode_link because
@@ -3141,31 +4141,23 @@ func_emit_cwrapperexe_src ()
 
    This wrapper executable should never be moved out of the build directory.
    If it is, it will not operate correctly.
-
-   Currently, it simply execs the wrapper *script* "$SHELL $output",
-   but could eventually absorb all of the scripts functionality and
-   exec $objdir/$outputname directly.
 */
 EOF
 	    cat <<"EOF"
+#ifdef _MSC_VER
+# define _CRT_SECURE_NO_DEPRECATE 1
+#endif
 #include <stdio.h>
 #include <stdlib.h>
 #ifdef _MSC_VER
 # include <direct.h>
 # include <process.h>
 # include <io.h>
-# define setmode _setmode
 #else
 # include <unistd.h>
 # include <stdint.h>
 # ifdef __CYGWIN__
 #  include <io.h>
-#  define HAVE_SETENV
-#  ifdef __STRICT_ANSI__
-char *realpath (const char *, char *);
-int putenv (char *);
-int setenv (const char *, const char *, int);
-#  endif
 # endif
 #endif
 #include <malloc.h>
@@ -3177,6 +4169,44 @@ int setenv (const char *, const char *, int);
 #include <fcntl.h>
 #include <sys/stat.h>
 
+/* declarations of non-ANSI functions */
+#if defined(__MINGW32__)
+# ifdef __STRICT_ANSI__
+int _putenv (const char *);
+# endif
+#elif defined(__CYGWIN__)
+# ifdef __STRICT_ANSI__
+char *realpath (const char *, char *);
+int putenv (char *);
+int setenv (const char *, const char *, int);
+# endif
+/* #elif defined (other platforms) ... */
+#endif
+
+/* portability defines, excluding path handling macros */
+#if defined(_MSC_VER)
+# define setmode _setmode
+# define stat    _stat
+# define chmod   _chmod
+# define getcwd  _getcwd
+# define putenv  _putenv
+# define S_IXUSR _S_IEXEC
+# ifndef _INTPTR_T_DEFINED
+#  define _INTPTR_T_DEFINED
+#  define intptr_t int
+# endif
+#elif defined(__MINGW32__)
+# define setmode _setmode
+# define stat    _stat
+# define chmod   _chmod
+# define getcwd  _getcwd
+# define putenv  _putenv
+#elif defined(__CYGWIN__)
+# define HAVE_SETENV
+# define FOPEN_WB "wb"
+/* #elif defined (other platforms) ... */
+#endif
+
 #if defined(PATH_MAX)
 # define LT_PATHMAX PATH_MAX
 #elif defined(MAXPATHLEN)
@@ -3192,14 +4222,7 @@ int setenv (const char *, const char *, int);
 # define S_IXGRP 0
 #endif
 
-#ifdef _MSC_VER
-# define S_IXUSR _S_IEXEC
-# define stat _stat
-# ifndef _INTPTR_T_DEFINED
-#  define intptr_t int
-# endif
-#endif
-
+/* path handling portability macros */
 #ifndef DIR_SEPARATOR
 # define DIR_SEPARATOR '/'
 # define PATH_SEPARATOR ':'
@@ -3230,10 +4253,6 @@ int setenv (const char *, const char *, int);
 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
 #endif /* PATH_SEPARATOR_2 */
 
-#ifdef __CYGWIN__
-# define FOPEN_WB "wb"
-#endif
-
 #ifndef FOPEN_WB
 # define FOPEN_WB "w"
 #endif
@@ -3246,22 +4265,13 @@ int setenv (const char *, const char *, int);
   if (stale) { free ((void *) stale); stale = 0; } \
 } while (0)
 
-#undef LTWRAPPER_DEBUGPRINTF
-#if defined DEBUGWRAPPER
-# define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args
-static void
-ltwrapper_debugprintf (const char *fmt, ...)
-{
-    va_list args;
-    va_start (args, fmt);
-    (void) vfprintf (stderr, fmt, args);
-    va_end (args);
-}
+#if defined(LT_DEBUGWRAPPER)
+static int lt_debug = 1;
 #else
-# define LTWRAPPER_DEBUGPRINTF(args)
+static int lt_debug = 0;
 #endif
 
-const char *program_name = NULL;
+const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */
 
 void *xmalloc (size_t num);
 char *xstrdup (const char *string);
@@ -3271,41 +4281,27 @@ char *chase_symlinks (const char *pathspec);
 int make_executable (const char *path);
 int check_executable (const char *path);
 char *strendzap (char *str, const char *pat);
-void lt_fatal (const char *message, ...);
+void lt_debugprintf (const char *file, int line, const char *fmt, ...);
+void lt_fatal (const char *file, int line, const char *message, ...);
+static const char *nonnull (const char *s);
+static const char *nonempty (const char *s);
 void lt_setenv (const char *name, const char *value);
 char *lt_extend_str (const char *orig_value, const char *add, int to_end);
-void lt_opt_process_env_set (const char *arg);
-void lt_opt_process_env_prepend (const char *arg);
-void lt_opt_process_env_append (const char *arg);
-int lt_split_name_value (const char *arg, char** name, char** value);
 void lt_update_exe_path (const char *name, const char *value);
 void lt_update_lib_path (const char *name, const char *value);
-
-static const char *script_text_part1 =
-EOF
-
-	    func_emit_wrapper_part1 yes |
-	        $SED -e 's/\([\\"]\)/\\\1/g' \
-	             -e 's/^/  "/' -e 's/$/\\n"/'
-	    echo ";"
-	    cat <<EOF
-
-static const char *script_text_part2 =
+char **prepare_spawn (char **argv);
+void lt_dump_script (FILE *f);
 EOF
-	    func_emit_wrapper_part2 yes |
-	        $SED -e 's/\([\\"]\)/\\\1/g' \
-	             -e 's/^/  "/' -e 's/$/\\n"/'
-	    echo ";"
 
 	    cat <<EOF
-const char * MAGIC_EXE = "$magic_exe";
+volatile const char * MAGIC_EXE = "$magic_exe";
 const char * LIB_PATH_VARNAME = "$shlibpath_var";
 EOF
 
 	    if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
-              func_to_host_pathlist "$temp_rpath"
+              func_to_host_path "$temp_rpath"
 	      cat <<EOF
-const char * LIB_PATH_VALUE   = "$func_to_host_pathlist_result";
+const char * LIB_PATH_VALUE   = "$func_to_host_path_result";
 EOF
 	    else
 	      cat <<"EOF"
@@ -3314,10 +4310,10 @@ EOF
 	    fi
 
 	    if test -n "$dllsearchpath"; then
-              func_to_host_pathlist "$dllsearchpath:"
+              func_to_host_path "$dllsearchpath:"
 	      cat <<EOF
 const char * EXE_PATH_VARNAME = "PATH";
-const char * EXE_PATH_VALUE   = "$func_to_host_pathlist_result";
+const char * EXE_PATH_VALUE   = "$func_to_host_path_result";
 EOF
 	    else
 	      cat <<"EOF"
@@ -3340,24 +4336,10 @@ EOF
 	    cat <<"EOF"
 
 #define LTWRAPPER_OPTION_PREFIX         "--lt-"
-#define LTWRAPPER_OPTION_PREFIX_LENGTH  5
 
-static const size_t opt_prefix_len         = LTWRAPPER_OPTION_PREFIX_LENGTH;
 static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;
-
 static const char *dumpscript_opt       = LTWRAPPER_OPTION_PREFIX "dump-script";
-
-static const size_t env_set_opt_len     = LTWRAPPER_OPTION_PREFIX_LENGTH + 7;
-static const char *env_set_opt          = LTWRAPPER_OPTION_PREFIX "env-set";
-  /* argument is putenv-style "foo=bar", value of foo is set to bar */
-
-static const size_t env_prepend_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 11;
-static const char *env_prepend_opt      = LTWRAPPER_OPTION_PREFIX "env-prepend";
-  /* argument is putenv-style "foo=bar", new value of foo is bar${foo} */
-
-static const size_t env_append_opt_len  = LTWRAPPER_OPTION_PREFIX_LENGTH + 10;
-static const char *env_append_opt       = LTWRAPPER_OPTION_PREFIX "env-append";
-  /* argument is putenv-style "foo=bar", new value of foo is ${foo}bar */
+static const char *debug_opt            = LTWRAPPER_OPTION_PREFIX "debug";
 
 int
 main (int argc, char *argv[])
@@ -3374,10 +4356,13 @@ main (int argc, char *argv[])
   int i;
 
   program_name = (char *) xstrdup (base_name (argv[0]));
-  LTWRAPPER_DEBUGPRINTF (("(main) argv[0]      : %s\n", argv[0]));
-  LTWRAPPER_DEBUGPRINTF (("(main) program_name : %s\n", program_name));
+  newargz = XMALLOC (char *, argc + 1);
 
-  /* very simple arg parsing; don't want to rely on getopt */
+  /* very simple arg parsing; don't want to rely on getopt
+   * also, copy all non cwrapper options to newargz, except
+   * argz[0], which is handled differently
+   */
+  newargc=0;
   for (i = 1; i < argc; i++)
     {
       if (strcmp (argv[i], dumpscript_opt) == 0)
@@ -3391,25 +4376,57 @@ EOF
 	      esac
 
 	    cat <<"EOF"
-	  printf ("%s", script_text_part1);
-	  printf ("%s", script_text_part2);
+	  lt_dump_script (stdout);
 	  return 0;
 	}
+      if (strcmp (argv[i], debug_opt) == 0)
+	{
+          lt_debug = 1;
+          continue;
+	}
+      if (strcmp (argv[i], ltwrapper_option_prefix) == 0)
+        {
+          /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
+             namespace, but it is not one of the ones we know about and
+             have already dealt with, above (inluding dump-script), then
+             report an error. Otherwise, targets might begin to believe
+             they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
+             namespace. The first time any user complains about this, we'll
+             need to make LTWRAPPER_OPTION_PREFIX a configure-time option
+             or a configure.ac-settable value.
+           */
+          lt_fatal (__FILE__, __LINE__,
+		    "unrecognized %s option: '%s'",
+                    ltwrapper_option_prefix, argv[i]);
+        }
+      /* otherwise ... */
+      newargz[++newargc] = xstrdup (argv[i]);
     }
+  newargz[++newargc] = NULL;
+
+EOF
+	    cat <<EOF
+  /* The GNU banner must be the first non-error debug message */
+  lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\n");
+EOF
+	    cat <<"EOF"
+  lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]);
+  lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\n", program_name);
 
-  newargz = XMALLOC (char *, argc + 1);
   tmp_pathspec = find_executable (argv[0]);
   if (tmp_pathspec == NULL)
-    lt_fatal ("Couldn't find %s", argv[0]);
-  LTWRAPPER_DEBUGPRINTF (("(main) found exe (before symlink chase) at : %s\n",
-			  tmp_pathspec));
+    lt_fatal (__FILE__, __LINE__, "couldn't find %s", argv[0]);
+  lt_debugprintf (__FILE__, __LINE__,
+                  "(main) found exe (before symlink chase) at: %s\n",
+		  tmp_pathspec);
 
   actual_cwrapper_path = chase_symlinks (tmp_pathspec);
-  LTWRAPPER_DEBUGPRINTF (("(main) found exe (after symlink chase) at : %s\n",
-			  actual_cwrapper_path));
+  lt_debugprintf (__FILE__, __LINE__,
+                  "(main) found exe (after symlink chase) at: %s\n",
+		  actual_cwrapper_path);
   XFREE (tmp_pathspec);
 
-  actual_cwrapper_name = xstrdup( base_name (actual_cwrapper_path));
+  actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path));
   strendzap (actual_cwrapper_path, actual_cwrapper_name);
 
   /* wrapper name transforms */
@@ -3427,8 +4444,9 @@ EOF
   target_name = tmp_pathspec;
   tmp_pathspec = 0;
 
-  LTWRAPPER_DEBUGPRINTF (("(main) libtool target name: %s\n",
-			  target_name));
+  lt_debugprintf (__FILE__, __LINE__,
+		  "(main) libtool target name: %s\n",
+		  target_name);
 EOF
 
 	    cat <<EOF
@@ -3478,80 +4496,19 @@ EOF
 
   lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */
   lt_setenv ("DUALCASE", "1");  /* for MSK sh */
-  lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
+  /* Update the DLL searchpath.  EXE_PATH_VALUE ($dllsearchpath) must
+     be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpath)
+     because on Windows, both *_VARNAMEs are PATH but uninstalled
+     libraries must come first. */
   lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
+  lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
 
-  newargc=0;
-  for (i = 1; i < argc; i++)
-    {
-      if (strncmp (argv[i], env_set_opt, env_set_opt_len) == 0)
-        {
-          if (argv[i][env_set_opt_len] == '=')
-            {
-              const char *p = argv[i] + env_set_opt_len + 1;
-              lt_opt_process_env_set (p);
-            }
-          else if (argv[i][env_set_opt_len] == '\0' && i + 1 < argc)
-            {
-              lt_opt_process_env_set (argv[++i]); /* don't copy */
-            }
-          else
-            lt_fatal ("%s missing required argument", env_set_opt);
-          continue;
-        }
-      if (strncmp (argv[i], env_prepend_opt, env_prepend_opt_len) == 0)
-        {
-          if (argv[i][env_prepend_opt_len] == '=')
-            {
-              const char *p = argv[i] + env_prepend_opt_len + 1;
-              lt_opt_process_env_prepend (p);
-            }
-          else if (argv[i][env_prepend_opt_len] == '\0' && i + 1 < argc)
-            {
-              lt_opt_process_env_prepend (argv[++i]); /* don't copy */
-            }
-          else
-            lt_fatal ("%s missing required argument", env_prepend_opt);
-          continue;
-        }
-      if (strncmp (argv[i], env_append_opt, env_append_opt_len) == 0)
-        {
-          if (argv[i][env_append_opt_len] == '=')
-            {
-              const char *p = argv[i] + env_append_opt_len + 1;
-              lt_opt_process_env_append (p);
-            }
-          else if (argv[i][env_append_opt_len] == '\0' && i + 1 < argc)
-            {
-              lt_opt_process_env_append (argv[++i]); /* don't copy */
-            }
-          else
-            lt_fatal ("%s missing required argument", env_append_opt);
-          continue;
-        }
-      if (strncmp (argv[i], ltwrapper_option_prefix, opt_prefix_len) == 0)
-        {
-          /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
-             namespace, but it is not one of the ones we know about and
-             have already dealt with, above (inluding dump-script), then
-             report an error. Otherwise, targets might begin to believe
-             they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
-             namespace. The first time any user complains about this, we'll
-             need to make LTWRAPPER_OPTION_PREFIX a configure-time option
-             or a configure.ac-settable value.
-           */
-          lt_fatal ("Unrecognized option in %s namespace: '%s'",
-                    ltwrapper_option_prefix, argv[i]);
-        }
-      /* otherwise ... */
-      newargz[++newargc] = xstrdup (argv[i]);
-    }
-  newargz[++newargc] = NULL;
-
-  LTWRAPPER_DEBUGPRINTF     (("(main) lt_argv_zero : %s\n", (lt_argv_zero ? lt_argv_zero : "<NULL>")));
+  lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n",
+		  nonnull (lt_argv_zero));
   for (i = 0; i < newargc; i++)
     {
-      LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d]   : %s\n", i, (newargz[i] ? newargz[i] : "<NULL>")));
+      lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n",
+		      i, nonnull (newargz[i]));
     }
 
 EOF
@@ -3560,11 +4517,14 @@ EOF
 	      mingw*)
 		cat <<"EOF"
   /* execv doesn't actually work on mingw as expected on unix */
+  newargz = prepare_spawn (newargz);
   rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);
   if (rval == -1)
     {
       /* failed to start process */
-      LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno));
+      lt_debugprintf (__FILE__, __LINE__,
+		      "(main) failed to launch target \"%s\": %s\n",
+		      lt_argv_zero, nonnull (strerror (errno)));
       return 127;
     }
   return rval;
@@ -3586,7 +4546,7 @@ xmalloc (size_t num)
 {
   void *p = (void *) malloc (num);
   if (!p)
-    lt_fatal ("Memory exhausted");
+    lt_fatal (__FILE__, __LINE__, "memory exhausted");
 
   return p;
 }
@@ -3620,8 +4580,8 @@ check_executable (const char *path)
 {
   struct stat st;
 
-  LTWRAPPER_DEBUGPRINTF (("(check_executable)  : %s\n",
-			  path ? (*path ? path : "EMPTY!") : "NULL!"));
+  lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n",
+                  nonempty (path));
   if ((!path) || (!*path))
     return 0;
 
@@ -3638,8 +4598,8 @@ make_executable (const char *path)
   int rval = 0;
   struct stat st;
 
-  LTWRAPPER_DEBUGPRINTF (("(make_executable)   : %s\n",
-			  path ? (*path ? path : "EMPTY!") : "NULL!"));
+  lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n",
+                  nonempty (path));
   if ((!path) || (!*path))
     return 0;
 
@@ -3665,8 +4625,8 @@ find_executable (const char *wrapper)
   int tmp_len;
   char *concat_name;
 
-  LTWRAPPER_DEBUGPRINTF (("(find_executable)   : %s\n",
-			  wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"));
+  lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n",
+                  nonempty (wrapper));
 
   if ((wrapper == NULL) || (*wrapper == '\0'))
     return NULL;
@@ -3719,7 +4679,8 @@ find_executable (const char *wrapper)
 		{
 		  /* empty path: current directory */
 		  if (getcwd (tmp, LT_PATHMAX) == NULL)
-		    lt_fatal ("getcwd failed");
+		    lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
+                              nonnull (strerror (errno)));
 		  tmp_len = strlen (tmp);
 		  concat_name =
 		    XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
@@ -3744,7 +4705,8 @@ find_executable (const char *wrapper)
     }
   /* Relative path | not found in path: prepend cwd */
   if (getcwd (tmp, LT_PATHMAX) == NULL)
-    lt_fatal ("getcwd failed");
+    lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
+              nonnull (strerror (errno)));
   tmp_len = strlen (tmp);
   concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
   memcpy (concat_name, tmp, tmp_len);
@@ -3770,8 +4732,9 @@ chase_symlinks (const char *pathspec)
   int has_symlinks = 0;
   while (strlen (tmp_pathspec) && !has_symlinks)
     {
-      LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n",
-			      tmp_pathspec));
+      lt_debugprintf (__FILE__, __LINE__,
+		      "checking path component for symlinks: %s\n",
+		      tmp_pathspec);
       if (lstat (tmp_pathspec, &s) == 0)
 	{
 	  if (S_ISLNK (s.st_mode) != 0)
@@ -3793,8 +4756,9 @@ chase_symlinks (const char *pathspec)
 	}
       else
 	{
-	  char *errstr = strerror (errno);
-	  lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr);
+	  lt_fatal (__FILE__, __LINE__,
+		    "error accessing file \"%s\": %s",
+		    tmp_pathspec, nonnull (strerror (errno)));
 	}
     }
   XFREE (tmp_pathspec);
@@ -3807,7 +4771,8 @@ chase_symlinks (const char *pathspec)
   tmp_pathspec = realpath (pathspec, buf);
   if (tmp_pathspec == 0)
     {
-      lt_fatal ("Could not follow symlinks for %s", pathspec);
+      lt_fatal (__FILE__, __LINE__,
+		"could not follow symlinks for %s", pathspec);
     }
   return xstrdup (tmp_pathspec);
 #endif
@@ -3833,11 +4798,25 @@ strendzap (char *str, const char *pat)
   return str;
 }
 
+void
+lt_debugprintf (const char *file, int line, const char *fmt, ...)
+{
+  va_list args;
+  if (lt_debug)
+    {
+      (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line);
+      va_start (args, fmt);
+      (void) vfprintf (stderr, fmt, args);
+      va_end (args);
+    }
+}
+
 static void
-lt_error_core (int exit_status, const char *mode,
+lt_error_core (int exit_status, const char *file,
+	       int line, const char *mode,
 	       const char *message, va_list ap)
 {
-  fprintf (stderr, "%s: %s: ", program_name, mode);
+  fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode);
   vfprintf (stderr, message, ap);
   fprintf (stderr, ".\n");
 
@@ -3846,20 +4825,32 @@ lt_error_core (int exit_status, const char *mode,
 }
 
 void
-lt_fatal (const char *message, ...)
+lt_fatal (const char *file, int line, const char *message, ...)
 {
   va_list ap;
   va_start (ap, message);
-  lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
+  lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap);
   va_end (ap);
 }
 
+static const char *
+nonnull (const char *s)
+{
+  return s ? s : "(null)";
+}
+
+static const char *
+nonempty (const char *s)
+{
+  return (s && !*s) ? "(empty)" : nonnull (s);
+}
+
 void
 lt_setenv (const char *name, const char *value)
 {
-  LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n",
-                          (name ? name : "<NULL>"),
-                          (value ? value : "<NULL>")));
+  lt_debugprintf (__FILE__, __LINE__,
+		  "(lt_setenv) setting '%s' to '%s'\n",
+                  nonnull (name), nonnull (value));
   {
 #ifdef HAVE_SETENV
     /* always make a copy, for consistency with !HAVE_SETENV */
@@ -3904,95 +4895,12 @@ lt_extend_str (const char *orig_value, const char *add, int to_end)
   return new_value;
 }
 
-int
-lt_split_name_value (const char *arg, char** name, char** value)
-{
-  const char *p;
-  int len;
-  if (!arg || !*arg)
-    return 1;
-
-  p = strchr (arg, (int)'=');
-
-  if (!p)
-    return 1;
-
-  *value = xstrdup (++p);
-
-  len = strlen (arg) - strlen (*value);
-  *name = XMALLOC (char, len);
-  strncpy (*name, arg, len-1);
-  (*name)[len - 1] = '\0';
-
-  return 0;
-}
-
-void
-lt_opt_process_env_set (const char *arg)
-{
-  char *name = NULL;
-  char *value = NULL;
-
-  if (lt_split_name_value (arg, &name, &value) != 0)
-    {
-      XFREE (name);
-      XFREE (value);
-      lt_fatal ("bad argument for %s: '%s'", env_set_opt, arg);
-    }
-
-  lt_setenv (name, value);
-  XFREE (name);
-  XFREE (value);
-}
-
-void
-lt_opt_process_env_prepend (const char *arg)
-{
-  char *name = NULL;
-  char *value = NULL;
-  char *new_value = NULL;
-
-  if (lt_split_name_value (arg, &name, &value) != 0)
-    {
-      XFREE (name);
-      XFREE (value);
-      lt_fatal ("bad argument for %s: '%s'", env_prepend_opt, arg);
-    }
-
-  new_value = lt_extend_str (getenv (name), value, 0);
-  lt_setenv (name, new_value);
-  XFREE (new_value);
-  XFREE (name);
-  XFREE (value);
-}
-
-void
-lt_opt_process_env_append (const char *arg)
-{
-  char *name = NULL;
-  char *value = NULL;
-  char *new_value = NULL;
-
-  if (lt_split_name_value (arg, &name, &value) != 0)
-    {
-      XFREE (name);
-      XFREE (value);
-      lt_fatal ("bad argument for %s: '%s'", env_append_opt, arg);
-    }
-
-  new_value = lt_extend_str (getenv (name), value, 1);
-  lt_setenv (name, new_value);
-  XFREE (new_value);
-  XFREE (name);
-  XFREE (value);
-}
-
 void
 lt_update_exe_path (const char *name, const char *value)
 {
-  LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
-                          (name ? name : "<NULL>"),
-                          (value ? value : "<NULL>")));
+  lt_debugprintf (__FILE__, __LINE__,
+		  "(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
+                  nonnull (name), nonnull (value));
 
   if (name && *name && value && *value)
     {
@@ -4011,9 +4919,9 @@ lt_update_exe_path (const char *name, const char *value)
 void
 lt_update_lib_path (const char *name, const char *value)
 {
-  LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
-                          (name ? name : "<NULL>"),
-                          (value ? value : "<NULL>")));
+  lt_debugprintf (__FILE__, __LINE__,
+		  "(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
+                  nonnull (name), nonnull (value));
 
   if (name && *name && value && *value)
     {
@@ -4023,11 +4931,152 @@ lt_update_lib_path (const char *name, const char *value)
     }
 }
 
+EOF
+	    case $host_os in
+	      mingw*)
+		cat <<"EOF"
+
+/* Prepares an argument vector before calling spawn().
+   Note that spawn() does not by itself call the command interpreter
+     (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") :
+      ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
+         GetVersionEx(&v);
+         v.dwPlatformId == VER_PLATFORM_WIN32_NT;
+      }) ? "cmd.exe" : "command.com").
+   Instead it simply concatenates the arguments, separated by ' ', and calls
+   CreateProcess().  We must quote the arguments since Win32 CreateProcess()
+   interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a
+   special way:
+   - Space and tab are interpreted as delimiters. They are not treated as
+     delimiters if they are surrounded by double quotes: "...".
+   - Unescaped double quotes are removed from the input. Their only effect is
+     that within double quotes, space and tab are treated like normal
+     characters.
+   - Backslashes not followed by double quotes are not special.
+   - But 2*n+1 backslashes followed by a double quote become
+     n backslashes followed by a double quote (n >= 0):
+       \" -> "
+       \\\" -> \"
+       \\\\\" -> \\"
+ */
+#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
+#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
+char **
+prepare_spawn (char **argv)
+{
+  size_t argc;
+  char **new_argv;
+  size_t i;
+
+  /* Count number of arguments.  */
+  for (argc = 0; argv[argc] != NULL; argc++)
+    ;
+
+  /* Allocate new argument vector.  */
+  new_argv = XMALLOC (char *, argc + 1);
+
+  /* Put quoted arguments into the new argument vector.  */
+  for (i = 0; i < argc; i++)
+    {
+      const char *string = argv[i];
+
+      if (string[0] == '\0')
+	new_argv[i] = xstrdup ("\"\"");
+      else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL)
+	{
+	  int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL);
+	  size_t length;
+	  unsigned int backslashes;
+	  const char *s;
+	  char *quoted_string;
+	  char *p;
+
+	  length = 0;
+	  backslashes = 0;
+	  if (quote_around)
+	    length++;
+	  for (s = string; *s != '\0'; s++)
+	    {
+	      char c = *s;
+	      if (c == '"')
+		length += backslashes + 1;
+	      length++;
+	      if (c == '\\')
+		backslashes++;
+	      else
+		backslashes = 0;
+	    }
+	  if (quote_around)
+	    length += backslashes + 1;
+
+	  quoted_string = XMALLOC (char, length + 1);
+
+	  p = quoted_string;
+	  backslashes = 0;
+	  if (quote_around)
+	    *p++ = '"';
+	  for (s = string; *s != '\0'; s++)
+	    {
+	      char c = *s;
+	      if (c == '"')
+		{
+		  unsigned int j;
+		  for (j = backslashes + 1; j > 0; j--)
+		    *p++ = '\\';
+		}
+	      *p++ = c;
+	      if (c == '\\')
+		backslashes++;
+	      else
+		backslashes = 0;
+	    }
+	  if (quote_around)
+	    {
+	      unsigned int j;
+	      for (j = backslashes; j > 0; j--)
+		*p++ = '\\';
+	      *p++ = '"';
+	    }
+	  *p = '\0';
+
+	  new_argv[i] = quoted_string;
+	}
+      else
+	new_argv[i] = (char *) string;
+    }
+  new_argv[argc] = NULL;
 
+  return new_argv;
+}
+EOF
+		;;
+	    esac
+
+            cat <<"EOF"
+void lt_dump_script (FILE* f)
+{
+EOF
+	    func_emit_wrapper yes |
+              $SED -e 's/\([\\"]\)/\\\1/g' \
+	           -e 's/^/  fputs ("/' -e 's/$/\\n", f);/'
+
+            cat <<"EOF"
+}
 EOF
 }
 # end: func_emit_cwrapperexe_src
 
+# func_win32_import_lib_p ARG
+# True if ARG is an import lib, as indicated by $file_magic_cmd
+func_win32_import_lib_p ()
+{
+    $opt_debug
+    case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in
+    *import*) : ;;
+    *) false ;;
+    esac
+}
+
 # func_mode_link arg...
 func_mode_link ()
 {
@@ -4072,6 +5121,7 @@ func_mode_link ()
     new_inherited_linker_flags=
 
     avoid_version=no
+    bindir=
     dlfiles=
     dlprefiles=
     dlself=no
@@ -4164,6 +5214,11 @@ func_mode_link ()
 	esac
 
 	case $prev in
+	bindir)
+	  bindir="$arg"
+	  prev=
+	  continue
+	  ;;
 	dlfiles|dlprefiles)
 	  if test "$preload" = no; then
 	    # Add the symbol object into the linking commands.
@@ -4195,9 +5250,9 @@ func_mode_link ()
 	    ;;
 	  *)
 	    if test "$prev" = dlfiles; then
-	      dlfiles="$dlfiles $arg"
+	      func_append dlfiles " $arg"
 	    else
-	      dlprefiles="$dlprefiles $arg"
+	      func_append dlprefiles " $arg"
 	    fi
 	    prev=
 	    continue
@@ -4221,7 +5276,7 @@ func_mode_link ()
 	    *-*-darwin*)
 	      case "$deplibs " in
 		*" $qarg.ltframework "*) ;;
-		*) deplibs="$deplibs $qarg.ltframework" # this is fixed later
+		*) func_append deplibs " $qarg.ltframework" # this is fixed later
 		   ;;
 	      esac
 	      ;;
@@ -4240,7 +5295,7 @@ func_mode_link ()
 	    moreargs=
 	    for fil in `cat "$save_arg"`
 	    do
-#	      moreargs="$moreargs $fil"
+#	      func_append moreargs " $fil"
 	      arg=$fil
 	      # A libtool-controlled object.
 
@@ -4269,7 +5324,7 @@ func_mode_link ()
 
 		  if test "$prev" = dlfiles; then
 		    if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
-		      dlfiles="$dlfiles $pic_object"
+		      func_append dlfiles " $pic_object"
 		      prev=
 		      continue
 		    else
@@ -4281,7 +5336,7 @@ func_mode_link ()
 		  # CHECK ME:  I think I busted this.  -Ossama
 		  if test "$prev" = dlprefiles; then
 		    # Preload the old-style object.
-		    dlprefiles="$dlprefiles $pic_object"
+		    func_append dlprefiles " $pic_object"
 		    prev=
 		  fi
 
@@ -4351,12 +5406,12 @@ func_mode_link ()
 	  if test "$prev" = rpath; then
 	    case "$rpath " in
 	    *" $arg "*) ;;
-	    *) rpath="$rpath $arg" ;;
+	    *) func_append rpath " $arg" ;;
 	    esac
 	  else
 	    case "$xrpath " in
 	    *" $arg "*) ;;
-	    *) xrpath="$xrpath $arg" ;;
+	    *) func_append xrpath " $arg" ;;
 	    esac
 	  fi
 	  prev=
@@ -4368,28 +5423,28 @@ func_mode_link ()
 	  continue
 	  ;;
 	weak)
-	  weak_libs="$weak_libs $arg"
+	  func_append weak_libs " $arg"
 	  prev=
 	  continue
 	  ;;
 	xcclinker)
-	  linker_flags="$linker_flags $qarg"
-	  compiler_flags="$compiler_flags $qarg"
+	  func_append linker_flags " $qarg"
+	  func_append compiler_flags " $qarg"
 	  prev=
 	  func_append compile_command " $qarg"
 	  func_append finalize_command " $qarg"
 	  continue
 	  ;;
 	xcompiler)
-	  compiler_flags="$compiler_flags $qarg"
+	  func_append compiler_flags " $qarg"
 	  prev=
 	  func_append compile_command " $qarg"
 	  func_append finalize_command " $qarg"
 	  continue
 	  ;;
 	xlinker)
-	  linker_flags="$linker_flags $qarg"
-	  compiler_flags="$compiler_flags $wl$qarg"
+	  func_append linker_flags " $qarg"
+	  func_append compiler_flags " $wl$qarg"
 	  prev=
 	  func_append compile_command " $wl$qarg"
 	  func_append finalize_command " $wl$qarg"
@@ -4425,6 +5480,11 @@ func_mode_link ()
 	continue
 	;;
 
+      -bindir)
+	prev=bindir
+	continue
+	;;
+
       -dlopen)
 	prev=dlfiles
 	continue
@@ -4475,15 +5535,16 @@ func_mode_link ()
 	;;
 
       -L*)
-	func_stripname '-L' '' "$arg"
-	dir=$func_stripname_result
-	if test -z "$dir"; then
+	func_stripname "-L" '' "$arg"
+	if test -z "$func_stripname_result"; then
 	  if test "$#" -gt 0; then
 	    func_fatal_error "require no space between \`-L' and \`$1'"
 	  else
 	    func_fatal_error "need path for \`-L' option"
 	  fi
 	fi
+	func_resolve_sysroot "$func_stripname_result"
+	dir=$func_resolve_sysroot_result
 	# We need an absolute path.
 	case $dir in
 	[\\/]* | [A-Za-z]:[\\/]*) ;;
@@ -4495,24 +5556,30 @@ func_mode_link ()
 	  ;;
 	esac
 	case "$deplibs " in
-	*" -L$dir "*) ;;
+	*" -L$dir "* | *" $arg "*)
+	  # Will only happen for absolute or sysroot arguments
+	  ;;
 	*)
-	  deplibs="$deplibs -L$dir"
-	  lib_search_path="$lib_search_path $dir"
+	  # Preserve sysroot, but never include relative directories
+	  case $dir in
+	    [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;;
+	    *) func_append deplibs " -L$dir" ;;
+	  esac
+	  func_append lib_search_path " $dir"
 	  ;;
 	esac
 	case $host in
 	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
-	  testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'`
+	  testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'`
 	  case :$dllsearchpath: in
 	  *":$dir:"*) ;;
 	  ::) dllsearchpath=$dir;;
-	  *) dllsearchpath="$dllsearchpath:$dir";;
+	  *) func_append dllsearchpath ":$dir";;
 	  esac
 	  case :$dllsearchpath: in
 	  *":$testbindir:"*) ;;
 	  ::) dllsearchpath=$testbindir;;
-	  *) dllsearchpath="$dllsearchpath:$testbindir";;
+	  *) func_append dllsearchpath ":$testbindir";;
 	  esac
 	  ;;
 	esac
@@ -4522,7 +5589,7 @@ func_mode_link ()
       -l*)
 	if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
 	  case $host in
-	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc*)
+	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*)
 	    # These systems don't actually have a C or math library (as such)
 	    continue
 	    ;;
@@ -4536,7 +5603,7 @@ func_mode_link ()
 	    ;;
 	  *-*-rhapsody* | *-*-darwin1.[012])
 	    # Rhapsody C and math libraries are in the System framework
-	    deplibs="$deplibs System.ltframework"
+	    func_append deplibs " System.ltframework"
 	    continue
 	    ;;
 	  *-*-sco3.2v5* | *-*-sco5v6*)
@@ -4556,7 +5623,7 @@ func_mode_link ()
 	   ;;
 	 esac
 	fi
-	deplibs="$deplibs $arg"
+	func_append deplibs " $arg"
 	continue
 	;;
 
@@ -4568,8 +5635,8 @@ func_mode_link ()
       # Tru64 UNIX uses -model [arg] to determine the layout of C++
       # classes, name mangling, and exception handling.
       # Darwin uses the -arch flag to determine output architecture.
-      -model|-arch|-isysroot)
-	compiler_flags="$compiler_flags $arg"
+      -model|-arch|-isysroot|--sysroot)
+	func_append compiler_flags " $arg"
 	func_append compile_command " $arg"
 	func_append finalize_command " $arg"
 	prev=xcompiler
@@ -4577,12 +5644,12 @@ func_mode_link ()
 	;;
 
       -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
-	compiler_flags="$compiler_flags $arg"
+	func_append compiler_flags " $arg"
 	func_append compile_command " $arg"
 	func_append finalize_command " $arg"
 	case "$new_inherited_linker_flags " in
 	    *" $arg "*) ;;
-	    * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;;
+	    * ) func_append new_inherited_linker_flags " $arg" ;;
 	esac
 	continue
 	;;
@@ -4649,13 +5716,17 @@ func_mode_link ()
 	# We need an absolute path.
 	case $dir in
 	[\\/]* | [A-Za-z]:[\\/]*) ;;
+	=*)
+	  func_stripname '=' '' "$dir"
+	  dir=$lt_sysroot$func_stripname_result
+	  ;;
 	*)
 	  func_fatal_error "only absolute run-paths are allowed"
 	  ;;
 	esac
 	case "$xrpath " in
 	*" $dir "*) ;;
-	*) xrpath="$xrpath $dir" ;;
+	*) func_append xrpath " $dir" ;;
 	esac
 	continue
 	;;
@@ -4708,8 +5779,8 @@ func_mode_link ()
 	for flag in $args; do
 	  IFS="$save_ifs"
           func_quote_for_eval "$flag"
-	  arg="$arg $wl$func_quote_for_eval_result"
-	  compiler_flags="$compiler_flags $func_quote_for_eval_result"
+	  func_append arg " $func_quote_for_eval_result"
+	  func_append compiler_flags " $func_quote_for_eval_result"
 	done
 	IFS="$save_ifs"
 	func_stripname ' ' '' "$arg"
@@ -4724,9 +5795,9 @@ func_mode_link ()
 	for flag in $args; do
 	  IFS="$save_ifs"
           func_quote_for_eval "$flag"
-	  arg="$arg $wl$func_quote_for_eval_result"
-	  compiler_flags="$compiler_flags $wl$func_quote_for_eval_result"
-	  linker_flags="$linker_flags $func_quote_for_eval_result"
+	  func_append arg " $wl$func_quote_for_eval_result"
+	  func_append compiler_flags " $wl$func_quote_for_eval_result"
+	  func_append linker_flags " $func_quote_for_eval_result"
 	done
 	IFS="$save_ifs"
 	func_stripname ' ' '' "$arg"
@@ -4754,23 +5825,27 @@ func_mode_link ()
 	arg="$func_quote_for_eval_result"
 	;;
 
-      # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
-      # -r[0-9][0-9]* specifies the processor on the SGI compiler
-      # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
-      # +DA*, +DD* enable 64-bit mode on the HP compiler
-      # -q* pass through compiler args for the IBM compiler
-      # -m*, -t[45]*, -txscale* pass through architecture-specific
-      # compiler args for GCC
-      # -F/path gives path to uninstalled frameworks, gcc on darwin
-      # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC
-      # @file GCC response files
+      # Flags to be passed through unchanged, with rationale:
+      # -64, -mips[0-9]      enable 64-bit mode for the SGI compiler
+      # -r[0-9][0-9]*        specify processor for the SGI compiler
+      # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler
+      # +DA*, +DD*           enable 64-bit mode for the HP compiler
+      # -q*                  compiler args for the IBM compiler
+      # -m*, -t[45]*, -txscale* architecture-specific flags for GCC
+      # -F/path              path to uninstalled frameworks, gcc on darwin
+      # -p, -pg, --coverage, -fprofile-*  profiling flags for GCC
+      # @file                GCC response files
+      # -tp=*                Portland pgcc target processor selection
+      # --sysroot=*          for sysroot support
+      # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
       -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
-      -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*)
+      -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
+      -O*|-flto*|-fwhopr*|-fuse-linker-plugin)
         func_quote_for_eval "$arg"
 	arg="$func_quote_for_eval_result"
         func_append compile_command " $arg"
         func_append finalize_command " $arg"
-        compiler_flags="$compiler_flags $arg"
+        func_append compiler_flags " $arg"
         continue
         ;;
 
@@ -4782,7 +5857,7 @@ func_mode_link ()
 
       *.$objext)
 	# A standard object.
-	objs="$objs $arg"
+	func_append objs " $arg"
 	;;
 
       *.lo)
@@ -4813,7 +5888,7 @@ func_mode_link ()
 
 	    if test "$prev" = dlfiles; then
 	      if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
-		dlfiles="$dlfiles $pic_object"
+		func_append dlfiles " $pic_object"
 		prev=
 		continue
 	      else
@@ -4825,7 +5900,7 @@ func_mode_link ()
 	    # CHECK ME:  I think I busted this.  -Ossama
 	    if test "$prev" = dlprefiles; then
 	      # Preload the old-style object.
-	      dlprefiles="$dlprefiles $pic_object"
+	      func_append dlprefiles " $pic_object"
 	      prev=
 	    fi
 
@@ -4870,24 +5945,25 @@ func_mode_link ()
 
       *.$libext)
 	# An archive.
-	deplibs="$deplibs $arg"
-	old_deplibs="$old_deplibs $arg"
+	func_append deplibs " $arg"
+	func_append old_deplibs " $arg"
 	continue
 	;;
 
       *.la)
 	# A libtool-controlled library.
 
+	func_resolve_sysroot "$arg"
 	if test "$prev" = dlfiles; then
 	  # This library was specified with -dlopen.
-	  dlfiles="$dlfiles $arg"
+	  func_append dlfiles " $func_resolve_sysroot_result"
 	  prev=
 	elif test "$prev" = dlprefiles; then
 	  # The library was specified with -dlpreopen.
-	  dlprefiles="$dlprefiles $arg"
+	  func_append dlprefiles " $func_resolve_sysroot_result"
 	  prev=
 	else
-	  deplibs="$deplibs $arg"
+	  func_append deplibs " $func_resolve_sysroot_result"
 	fi
 	continue
 	;;
@@ -4925,7 +6001,7 @@ func_mode_link ()
 
     if test -n "$shlibpath_var"; then
       # get the directories listed in $shlibpath_var
-      eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
+      eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\`
     else
       shlib_search_path=
     fi
@@ -4934,6 +6010,8 @@ func_mode_link ()
 
     func_dirname "$output" "/" ""
     output_objdir="$func_dirname_result$objdir"
+    func_to_tool_file "$output_objdir/"
+    tool_output_objdir=$func_to_tool_file_result
     # Create the object directory.
     func_mkdir_p "$output_objdir"
 
@@ -4954,12 +6032,12 @@ func_mode_link ()
     # Find all interdependent deplibs by searching for libraries
     # that are linked more than once (e.g. -la -lb -la)
     for deplib in $deplibs; do
-      if $opt_duplicate_deps ; then
+      if $opt_preserve_dup_deps ; then
 	case "$libs " in
-	*" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+	*" $deplib "*) func_append specialdeplibs " $deplib" ;;
 	esac
       fi
-      libs="$libs $deplib"
+      func_append libs " $deplib"
     done
 
     if test "$linkmode" = lib; then
@@ -4972,9 +6050,9 @@ func_mode_link ()
       if $opt_duplicate_compiler_generated_deps; then
 	for pre_post_dep in $predeps $postdeps; do
 	  case "$pre_post_deps " in
-	  *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
+	  *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;;
 	  esac
-	  pre_post_deps="$pre_post_deps $pre_post_dep"
+	  func_append pre_post_deps " $pre_post_dep"
 	done
       fi
       pre_post_deps=
@@ -5033,10 +6111,7 @@ func_mode_link ()
 	case $pass in
 	dlopen) libs="$dlfiles" ;;
 	dlpreopen) libs="$dlprefiles" ;;
-	link)
-	  libs="$deplibs %DEPLIBS%"
-	  test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs"
-	  ;;
+	link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
 	esac
       fi
       if test "$linkmode,$pass" = "lib,dlpreopen"; then
@@ -5044,17 +6119,19 @@ func_mode_link ()
 	for lib in $dlprefiles; do
 	  # Ignore non-libtool-libs
 	  dependency_libs=
+	  func_resolve_sysroot "$lib"
 	  case $lib in
-	  *.la)	func_source "$lib" ;;
+	  *.la)	func_source "$func_resolve_sysroot_result" ;;
 	  esac
 
 	  # Collect preopened libtool deplibs, except any this library
 	  # has declared as weak libs
 	  for deplib in $dependency_libs; do
-            deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"`
+	    func_basename "$deplib"
+            deplib_base=$func_basename_result
 	    case " $weak_libs " in
 	    *" $deplib_base "*) ;;
-	    *) deplibs="$deplibs $deplib" ;;
+	    *) func_append deplibs " $deplib" ;;
 	    esac
 	  done
 	done
@@ -5075,11 +6152,11 @@ func_mode_link ()
 	    compile_deplibs="$deplib $compile_deplibs"
 	    finalize_deplibs="$deplib $finalize_deplibs"
 	  else
-	    compiler_flags="$compiler_flags $deplib"
+	    func_append compiler_flags " $deplib"
 	    if test "$linkmode" = lib ; then
 		case "$new_inherited_linker_flags " in
 		    *" $deplib "*) ;;
-		    * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;
+		    * ) func_append new_inherited_linker_flags " $deplib" ;;
 		esac
 	    fi
 	  fi
@@ -5164,7 +6241,7 @@ func_mode_link ()
 	    if test "$linkmode" = lib ; then
 		case "$new_inherited_linker_flags " in
 		    *" $deplib "*) ;;
-		    * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;
+		    * ) func_append new_inherited_linker_flags " $deplib" ;;
 		esac
 	    fi
 	  fi
@@ -5177,7 +6254,8 @@ func_mode_link ()
 	    test "$pass" = conv && continue
 	    newdependency_libs="$deplib $newdependency_libs"
 	    func_stripname '-L' '' "$deplib"
-	    newlib_search_path="$newlib_search_path $func_stripname_result"
+	    func_resolve_sysroot "$func_stripname_result"
+	    func_append newlib_search_path " $func_resolve_sysroot_result"
 	    ;;
 	  prog)
 	    if test "$pass" = conv; then
@@ -5191,7 +6269,8 @@ func_mode_link ()
 	      finalize_deplibs="$deplib $finalize_deplibs"
 	    fi
 	    func_stripname '-L' '' "$deplib"
-	    newlib_search_path="$newlib_search_path $func_stripname_result"
+	    func_resolve_sysroot "$func_stripname_result"
+	    func_append newlib_search_path " $func_resolve_sysroot_result"
 	    ;;
 	  *)
 	    func_warning "\`-L' is ignored for archives/objects"
@@ -5202,17 +6281,21 @@ func_mode_link ()
 	-R*)
 	  if test "$pass" = link; then
 	    func_stripname '-R' '' "$deplib"
-	    dir=$func_stripname_result
+	    func_resolve_sysroot "$func_stripname_result"
+	    dir=$func_resolve_sysroot_result
 	    # Make sure the xrpath contains only unique directories.
 	    case "$xrpath " in
 	    *" $dir "*) ;;
-	    *) xrpath="$xrpath $dir" ;;
+	    *) func_append xrpath " $dir" ;;
 	    esac
 	  fi
 	  deplibs="$deplib $deplibs"
 	  continue
 	  ;;
-	*.la) lib="$deplib" ;;
+	*.la)
+	  func_resolve_sysroot "$deplib"
+	  lib=$func_resolve_sysroot_result
+	  ;;
 	*.$libext)
 	  if test "$pass" = conv; then
 	    deplibs="$deplib $deplibs"
@@ -5230,7 +6313,7 @@ func_mode_link ()
 		match_pattern*)
 		  set dummy $deplibs_check_method; shift
 		  match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
-		  if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \
+		  if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \
 		    | $EGREP "$match_pattern_regex" > /dev/null; then
 		    valid_a_lib=yes
 		  fi
@@ -5240,15 +6323,15 @@ func_mode_link ()
 		;;
 	      esac
 	      if test "$valid_a_lib" != yes; then
-		$ECHO
+		echo
 		$ECHO "*** Warning: Trying to link with static lib archive $deplib."
-		$ECHO "*** I have the capability to make that library automatically link in when"
-		$ECHO "*** you link to this library.  But I can only do this if you have a"
-		$ECHO "*** shared version of the library, which you do not appear to have"
-		$ECHO "*** because the file extensions .$libext of this argument makes me believe"
-		$ECHO "*** that it is just a static archive that I should not use here."
+		echo "*** I have the capability to make that library automatically link in when"
+		echo "*** you link to this library.  But I can only do this if you have a"
+		echo "*** shared version of the library, which you do not appear to have"
+		echo "*** because the file extensions .$libext of this argument makes me believe"
+		echo "*** that it is just a static archive that I should not use here."
 	      else
-		$ECHO
+		echo
 		$ECHO "*** Warning: Linking the shared library $output against the"
 		$ECHO "*** static library $deplib is not portable!"
 		deplibs="$deplib $deplibs"
@@ -5275,11 +6358,11 @@ func_mode_link ()
 	    if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
 	      # If there is no dlopen support or we're linking statically,
 	      # we need to preload.
-	      newdlprefiles="$newdlprefiles $deplib"
+	      func_append newdlprefiles " $deplib"
 	      compile_deplibs="$deplib $compile_deplibs"
 	      finalize_deplibs="$deplib $finalize_deplibs"
 	    else
-	      newdlfiles="$newdlfiles $deplib"
+	      func_append newdlfiles " $deplib"
 	    fi
 	  fi
 	  continue
@@ -5321,20 +6404,20 @@ func_mode_link ()
 
 	# Convert "-framework foo" to "foo.ltframework"
 	if test -n "$inherited_linker_flags"; then
-	  tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'`
+	  tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`
 	  for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
 	    case " $new_inherited_linker_flags " in
 	      *" $tmp_inherited_linker_flag "*) ;;
-	      *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";;
+	      *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";;
 	    esac
 	  done
 	fi
-	dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+	dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
 	if test "$linkmode,$pass" = "lib,link" ||
 	   test "$linkmode,$pass" = "prog,scan" ||
 	   { test "$linkmode" != prog && test "$linkmode" != lib; }; then
-	  test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
-	  test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
+	  test -n "$dlopen" && func_append dlfiles " $dlopen"
+	  test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen"
 	fi
 
 	if test "$pass" = conv; then
@@ -5345,30 +6428,36 @@ func_mode_link ()
 	      func_fatal_error "cannot find name of link library for \`$lib'"
 	    fi
 	    # It is a libtool convenience library, so add in its objects.
-	    convenience="$convenience $ladir/$objdir/$old_library"
-	    old_convenience="$old_convenience $ladir/$objdir/$old_library"
-	    tmp_libs=
-	    for deplib in $dependency_libs; do
-	      deplibs="$deplib $deplibs"
-	      if $opt_duplicate_deps ; then
-		case "$tmp_libs " in
-		*" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
-		esac
-	      fi
-	      tmp_libs="$tmp_libs $deplib"
-	    done
+	    func_append convenience " $ladir/$objdir/$old_library"
+	    func_append old_convenience " $ladir/$objdir/$old_library"
 	  elif test "$linkmode" != prog && test "$linkmode" != lib; then
 	    func_fatal_error "\`$lib' is not a convenience library"
 	  fi
+	  tmp_libs=
+	  for deplib in $dependency_libs; do
+	    deplibs="$deplib $deplibs"
+	    if $opt_preserve_dup_deps ; then
+	      case "$tmp_libs " in
+	      *" $deplib "*) func_append specialdeplibs " $deplib" ;;
+	      esac
+	    fi
+	    func_append tmp_libs " $deplib"
+	  done
 	  continue
 	fi # $pass = conv
 
 
 	# Get the name of the library we link against.
 	linklib=
-	for l in $old_library $library_names; do
-	  linklib="$l"
-	done
+	if test -n "$old_library" &&
+	   { test "$prefer_static_libs" = yes ||
+	     test "$prefer_static_libs,$installed" = "built,no"; }; then
+	  linklib=$old_library
+	else
+	  for l in $old_library $library_names; do
+	    linklib="$l"
+	  done
+	fi
 	if test -z "$linklib"; then
 	  func_fatal_error "cannot find name of link library for \`$lib'"
 	fi
@@ -5385,9 +6474,9 @@ func_mode_link ()
 	    # statically, we need to preload.  We also need to preload any
 	    # dependent libraries so libltdl's deplib preloader doesn't
 	    # bomb out in the load deplibs phase.
-	    dlprefiles="$dlprefiles $lib $dependency_libs"
+	    func_append dlprefiles " $lib $dependency_libs"
 	  else
-	    newdlfiles="$newdlfiles $lib"
+	    func_append newdlfiles " $lib"
 	  fi
 	  continue
 	fi # $pass = dlopen
@@ -5409,14 +6498,14 @@ func_mode_link ()
 
 	# Find the relevant object directory and library name.
 	if test "X$installed" = Xyes; then
-	  if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
+	  if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
 	    func_warning "library \`$lib' was moved."
 	    dir="$ladir"
 	    absdir="$abs_ladir"
 	    libdir="$abs_ladir"
 	  else
-	    dir="$libdir"
-	    absdir="$libdir"
+	    dir="$lt_sysroot$libdir"
+	    absdir="$lt_sysroot$libdir"
 	  fi
 	  test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
 	else
@@ -5424,12 +6513,12 @@ func_mode_link ()
 	    dir="$ladir"
 	    absdir="$abs_ladir"
 	    # Remove this search path later
-	    notinst_path="$notinst_path $abs_ladir"
+	    func_append notinst_path " $abs_ladir"
 	  else
 	    dir="$ladir/$objdir"
 	    absdir="$abs_ladir/$objdir"
 	    # Remove this search path later
-	    notinst_path="$notinst_path $abs_ladir"
+	    func_append notinst_path " $abs_ladir"
 	  fi
 	fi # $installed = yes
 	func_stripname 'lib' '.la' "$laname"
@@ -5440,20 +6529,46 @@ func_mode_link ()
 	  if test -z "$libdir" && test "$linkmode" = prog; then
 	    func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'"
 	  fi
-	  # Prefer using a static library (so that no silly _DYNAMIC symbols
-	  # are required to link).
-	  if test -n "$old_library"; then
-	    newdlprefiles="$newdlprefiles $dir/$old_library"
-	    # Keep a list of preopened convenience libraries to check
-	    # that they are being used correctly in the link pass.
-	    test -z "$libdir" && \
-		dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library"
-	  # Otherwise, use the dlname, so that lt_dlopen finds it.
-	  elif test -n "$dlname"; then
-	    newdlprefiles="$newdlprefiles $dir/$dlname"
-	  else
-	    newdlprefiles="$newdlprefiles $dir/$linklib"
-	  fi
+	  case "$host" in
+	    # special handling for platforms with PE-DLLs.
+	    *cygwin* | *mingw* | *cegcc* )
+	      # Linker will automatically link against shared library if both
+	      # static and shared are present.  Therefore, ensure we extract
+	      # symbols from the import library if a shared library is present
+	      # (otherwise, the dlopen module name will be incorrect).  We do
+	      # this by putting the import library name into $newdlprefiles.
+	      # We recover the dlopen module name by 'saving' the la file
+	      # name in a special purpose variable, and (later) extracting the
+	      # dlname from the la file.
+	      if test -n "$dlname"; then
+	        func_tr_sh "$dir/$linklib"
+	        eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname"
+	        func_append newdlprefiles " $dir/$linklib"
+	      else
+	        func_append newdlprefiles " $dir/$old_library"
+	        # Keep a list of preopened convenience libraries to check
+	        # that they are being used correctly in the link pass.
+	        test -z "$libdir" && \
+	          func_append dlpreconveniencelibs " $dir/$old_library"
+	      fi
+	    ;;
+	    * )
+	      # Prefer using a static library (so that no silly _DYNAMIC symbols
+	      # are required to link).
+	      if test -n "$old_library"; then
+	        func_append newdlprefiles " $dir/$old_library"
+	        # Keep a list of preopened convenience libraries to check
+	        # that they are being used correctly in the link pass.
+	        test -z "$libdir" && \
+	          func_append dlpreconveniencelibs " $dir/$old_library"
+	      # Otherwise, use the dlname, so that lt_dlopen finds it.
+	      elif test -n "$dlname"; then
+	        func_append newdlprefiles " $dir/$dlname"
+	      else
+	        func_append newdlprefiles " $dir/$linklib"
+	      fi
+	    ;;
+	  esac
 	fi # $pass = dlpreopen
 
 	if test -z "$libdir"; then
@@ -5471,7 +6586,7 @@ func_mode_link ()
 
 
 	if test "$linkmode" = prog && test "$pass" != link; then
-	  newlib_search_path="$newlib_search_path $ladir"
+	  func_append newlib_search_path " $ladir"
 	  deplibs="$lib $deplibs"
 
 	  linkalldeplibs=no
@@ -5484,7 +6599,8 @@ func_mode_link ()
 	  for deplib in $dependency_libs; do
 	    case $deplib in
 	    -L*) func_stripname '-L' '' "$deplib"
-	         newlib_search_path="$newlib_search_path $func_stripname_result"
+	         func_resolve_sysroot "$func_stripname_result"
+	         func_append newlib_search_path " $func_resolve_sysroot_result"
 		 ;;
 	    esac
 	    # Need to link against all dependency_libs?
@@ -5495,12 +6611,12 @@ func_mode_link ()
 	      # or/and link against static libraries
 	      newdependency_libs="$deplib $newdependency_libs"
 	    fi
-	    if $opt_duplicate_deps ; then
+	    if $opt_preserve_dup_deps ; then
 	      case "$tmp_libs " in
-	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+	      *" $deplib "*) func_append specialdeplibs " $deplib" ;;
 	      esac
 	    fi
-	    tmp_libs="$tmp_libs $deplib"
+	    func_append tmp_libs " $deplib"
 	  done # for deplib
 	  continue
 	fi # $linkmode = prog...
@@ -5515,7 +6631,7 @@ func_mode_link ()
 	      # Make sure the rpath contains only unique directories.
 	      case "$temp_rpath:" in
 	      *"$absdir:"*) ;;
-	      *) temp_rpath="$temp_rpath$absdir:" ;;
+	      *) func_append temp_rpath "$absdir:" ;;
 	      esac
 	    fi
 
@@ -5527,7 +6643,7 @@ func_mode_link ()
 	    *)
 	      case "$compile_rpath " in
 	      *" $absdir "*) ;;
-	      *) compile_rpath="$compile_rpath $absdir"
+	      *) func_append compile_rpath " $absdir" ;;
 	      esac
 	      ;;
 	    esac
@@ -5536,7 +6652,7 @@ func_mode_link ()
 	    *)
 	      case "$finalize_rpath " in
 	      *" $libdir "*) ;;
-	      *) finalize_rpath="$finalize_rpath $libdir"
+	      *) func_append finalize_rpath " $libdir" ;;
 	      esac
 	      ;;
 	    esac
@@ -5561,12 +6677,12 @@ func_mode_link ()
 	  case $host in
 	  *cygwin* | *mingw* | *cegcc*)
 	      # No point in relinking DLLs because paths are not encoded
-	      notinst_deplibs="$notinst_deplibs $lib"
+	      func_append notinst_deplibs " $lib"
 	      need_relink=no
 	    ;;
 	  *)
 	    if test "$installed" = no; then
-	      notinst_deplibs="$notinst_deplibs $lib"
+	      func_append notinst_deplibs " $lib"
 	      need_relink=yes
 	    fi
 	    ;;
@@ -5583,7 +6699,7 @@ func_mode_link ()
 	    fi
 	  done
 	  if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then
-	    $ECHO
+	    echo
 	    if test "$linkmode" = prog; then
 	      $ECHO "*** Warning: Linking the executable $output against the loadable module"
 	    else
@@ -5601,7 +6717,7 @@ func_mode_link ()
 	    *)
 	      case "$compile_rpath " in
 	      *" $absdir "*) ;;
-	      *) compile_rpath="$compile_rpath $absdir"
+	      *) func_append compile_rpath " $absdir" ;;
 	      esac
 	      ;;
 	    esac
@@ -5610,7 +6726,7 @@ func_mode_link ()
 	    *)
 	      case "$finalize_rpath " in
 	      *" $libdir "*) ;;
-	      *) finalize_rpath="$finalize_rpath $libdir"
+	      *) func_append finalize_rpath " $libdir" ;;
 	      esac
 	      ;;
 	    esac
@@ -5664,7 +6780,7 @@ func_mode_link ()
 	    linklib=$newlib
 	  fi # test -n "$old_archive_from_expsyms_cmds"
 
-	  if test "$linkmode" = prog || test "$mode" != relink; then
+	  if test "$linkmode" = prog || test "$opt_mode" != relink; then
 	    add_shlibpath=
 	    add_dir=
 	    add=
@@ -5686,9 +6802,9 @@ func_mode_link ()
 		      if test "X$dlopenmodule" != "X$lib"; then
 			$ECHO "*** Warning: lib $linklib is a module, not a shared library"
 			if test -z "$old_library" ; then
-			  $ECHO
-			  $ECHO "*** And there doesn't seem to be a static archive available"
-			  $ECHO "*** The link will probably fail, sorry"
+			  echo
+			  echo "*** And there doesn't seem to be a static archive available"
+			  echo "*** The link will probably fail, sorry"
 			else
 			  add="$dir/$old_library"
 			fi
@@ -5720,7 +6836,7 @@ func_mode_link ()
 		if test -n "$inst_prefix_dir"; then
 		  case $libdir in
 		    [\\/]*)
-		      add_dir="$add_dir -L$inst_prefix_dir$libdir"
+		      func_append add_dir " -L$inst_prefix_dir$libdir"
 		      ;;
 		  esac
 		fi
@@ -5742,7 +6858,7 @@ func_mode_link ()
 	    if test -n "$add_shlibpath"; then
 	      case :$compile_shlibpath: in
 	      *":$add_shlibpath:"*) ;;
-	      *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
+	      *) func_append compile_shlibpath "$add_shlibpath:" ;;
 	      esac
 	    fi
 	    if test "$linkmode" = prog; then
@@ -5756,13 +6872,13 @@ func_mode_link ()
 		 test "$hardcode_shlibpath_var" = yes; then
 		case :$finalize_shlibpath: in
 		*":$libdir:"*) ;;
-		*) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
+		*) func_append finalize_shlibpath "$libdir:" ;;
 		esac
 	      fi
 	    fi
 	  fi
 
-	  if test "$linkmode" = prog || test "$mode" = relink; then
+	  if test "$linkmode" = prog || test "$opt_mode" = relink; then
 	    add_shlibpath=
 	    add_dir=
 	    add=
@@ -5776,7 +6892,7 @@ func_mode_link ()
 	    elif test "$hardcode_shlibpath_var" = yes; then
 	      case :$finalize_shlibpath: in
 	      *":$libdir:"*) ;;
-	      *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
+	      *) func_append finalize_shlibpath "$libdir:" ;;
 	      esac
 	      add="-l$name"
 	    elif test "$hardcode_automatic" = yes; then
@@ -5793,7 +6909,7 @@ func_mode_link ()
 	      if test -n "$inst_prefix_dir"; then
 		case $libdir in
 		  [\\/]*)
-		    add_dir="$add_dir -L$inst_prefix_dir$libdir"
+		    func_append add_dir " -L$inst_prefix_dir$libdir"
 		    ;;
 		esac
 	      fi
@@ -5828,21 +6944,21 @@ func_mode_link ()
 
 	    # Just print a warning and add the library to dependency_libs so
 	    # that the program can be linked against the static library.
-	    $ECHO
+	    echo
 	    $ECHO "*** Warning: This system can not link to static lib archive $lib."
-	    $ECHO "*** I have the capability to make that library automatically link in when"
-	    $ECHO "*** you link to this library.  But I can only do this if you have a"
-	    $ECHO "*** shared version of the library, which you do not appear to have."
+	    echo "*** I have the capability to make that library automatically link in when"
+	    echo "*** you link to this library.  But I can only do this if you have a"
+	    echo "*** shared version of the library, which you do not appear to have."
 	    if test "$module" = yes; then
-	      $ECHO "*** But as you try to build a module library, libtool will still create "
-	      $ECHO "*** a static module, that should work as long as the dlopening application"
-	      $ECHO "*** is linked with the -dlopen flag to resolve symbols at runtime."
+	      echo "*** But as you try to build a module library, libtool will still create "
+	      echo "*** a static module, that should work as long as the dlopening application"
+	      echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
 	      if test -z "$global_symbol_pipe"; then
-		$ECHO
-		$ECHO "*** However, this would only work if libtool was able to extract symbol"
-		$ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could"
-		$ECHO "*** not find such a program.  So, this module is probably useless."
-		$ECHO "*** \`nm' from GNU binutils and a full rebuild may help."
+		echo
+		echo "*** However, this would only work if libtool was able to extract symbol"
+		echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
+		echo "*** not find such a program.  So, this module is probably useless."
+		echo "*** \`nm' from GNU binutils and a full rebuild may help."
 	      fi
 	      if test "$build_old_libs" = no; then
 		build_libtool_libs=module
@@ -5870,27 +6986,33 @@ func_mode_link ()
 	           temp_xrpath=$func_stripname_result
 		   case " $xrpath " in
 		   *" $temp_xrpath "*) ;;
-		   *) xrpath="$xrpath $temp_xrpath";;
+		   *) func_append xrpath " $temp_xrpath";;
 		   esac;;
-	      *) temp_deplibs="$temp_deplibs $libdir";;
+	      *) func_append temp_deplibs " $libdir";;
 	      esac
 	    done
 	    dependency_libs="$temp_deplibs"
 	  fi
 
-	  newlib_search_path="$newlib_search_path $absdir"
+	  func_append newlib_search_path " $absdir"
 	  # Link against this library
 	  test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
 	  # ... and its dependency_libs
 	  tmp_libs=
 	  for deplib in $dependency_libs; do
 	    newdependency_libs="$deplib $newdependency_libs"
-	    if $opt_duplicate_deps ; then
+	    case $deplib in
+              -L*) func_stripname '-L' '' "$deplib"
+                   func_resolve_sysroot "$func_stripname_result";;
+              *) func_resolve_sysroot "$deplib" ;;
+            esac
+	    if $opt_preserve_dup_deps ; then
 	      case "$tmp_libs " in
-	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+	      *" $func_resolve_sysroot_result "*)
+                func_append specialdeplibs " $func_resolve_sysroot_result" ;;
 	      esac
 	    fi
-	    tmp_libs="$tmp_libs $deplib"
+	    func_append tmp_libs " $func_resolve_sysroot_result"
 	  done
 
 	  if test "$link_all_deplibs" != no; then
@@ -5900,8 +7022,10 @@ func_mode_link ()
 	      case $deplib in
 	      -L*) path="$deplib" ;;
 	      *.la)
+	        func_resolve_sysroot "$deplib"
+	        deplib=$func_resolve_sysroot_result
 	        func_dirname "$deplib" "" "."
-		dir="$func_dirname_result"
+		dir=$func_dirname_result
 		# We need an absolute path.
 		case $dir in
 		[\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
@@ -5928,8 +7052,8 @@ func_mode_link ()
                       if test -z "$darwin_install_name"; then
                           darwin_install_name=`${OTOOL64} -L $depdepl  | awk '{if (NR == 2) {print $1;exit}}'`
                       fi
-		      compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
-		      linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}"
+		      func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
+		      func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}"
 		      path=
 		    fi
 		  fi
@@ -5962,7 +7086,7 @@ func_mode_link ()
 	  compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
 	  finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
 	else
-	  compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+	  compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
 	fi
       fi
       dependency_libs="$newdependency_libs"
@@ -5979,7 +7103,7 @@ func_mode_link ()
 	  for dir in $newlib_search_path; do
 	    case "$lib_search_path " in
 	    *" $dir "*) ;;
-	    *) lib_search_path="$lib_search_path $dir" ;;
+	    *) func_append lib_search_path " $dir" ;;
 	    esac
 	  done
 	  newlib_search_path=
@@ -6037,10 +7161,10 @@ func_mode_link ()
 	    -L*)
 	      case " $tmp_libs " in
 	      *" $deplib "*) ;;
-	      *) tmp_libs="$tmp_libs $deplib" ;;
+	      *) func_append tmp_libs " $deplib" ;;
 	      esac
 	      ;;
-	    *) tmp_libs="$tmp_libs $deplib" ;;
+	    *) func_append tmp_libs " $deplib" ;;
 	    esac
 	  done
 	  eval $var=\"$tmp_libs\"
@@ -6056,7 +7180,7 @@ func_mode_link ()
 	  ;;
 	esac
 	if test -n "$i" ; then
-	  tmp_libs="$tmp_libs $i"
+	  func_append tmp_libs " $i"
 	fi
       done
       dependency_libs=$tmp_libs
@@ -6097,7 +7221,7 @@ func_mode_link ()
       # Now set the variables for building old libraries.
       build_libtool_libs=no
       oldlibs="$output"
-      objs="$objs$old_deplibs"
+      func_append objs "$old_deplibs"
       ;;
 
     lib)
@@ -6130,10 +7254,10 @@ func_mode_link ()
 	if test "$deplibs_check_method" != pass_all; then
 	  func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs"
 	else
-	  $ECHO
+	  echo
 	  $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
 	  $ECHO "*** objects $objs is not portable!"
-	  libobjs="$libobjs $objs"
+	  func_append libobjs " $objs"
 	fi
       fi
 
@@ -6198,7 +7322,7 @@ func_mode_link ()
 	    age="$number_minor"
 	    revision="$number_revision"
 	    ;;
-	  freebsd-aout|freebsd-elf|sunos)
+	  freebsd-aout|freebsd-elf|qnx|sunos)
 	    current="$number_major"
 	    revision="$number_minor"
 	    age="0"
@@ -6210,9 +7334,6 @@ func_mode_link ()
 	    revision="$number_minor"
 	    lt_irix_increment=no
 	    ;;
-	  *)
-	    func_fatal_configuration "$modename: unknown library version type \`$version_type'"
-	    ;;
 	  esac
 	  ;;
 	no)
@@ -6334,7 +7455,7 @@ func_mode_link ()
 	  done
 
 	  # Make executables depend on our current version.
-	  verstring="$verstring:${current}.0"
+	  func_append verstring ":${current}.0"
 	  ;;
 
 	qnx)
@@ -6402,10 +7523,10 @@ func_mode_link ()
       fi
 
       func_generate_dlsyms "$libname" "$libname" "yes"
-      libobjs="$libobjs $symfileobj"
+      func_append libobjs " $symfileobj"
       test "X$libobjs" = "X " && libobjs=
 
-      if test "$mode" != relink; then
+      if test "$opt_mode" != relink; then
 	# Remove our outputs, but don't remove object files since they
 	# may have been created when compiling PIC objects.
 	removelist=
@@ -6421,7 +7542,7 @@ func_mode_link ()
 		   continue
 		 fi
 	       fi
-	       removelist="$removelist $p"
+	       func_append removelist " $p"
 	       ;;
 	    *) ;;
 	  esac
@@ -6432,27 +7553,28 @@ func_mode_link ()
 
       # Now set the variables for building old libraries.
       if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
-	oldlibs="$oldlibs $output_objdir/$libname.$libext"
+	func_append oldlibs " $output_objdir/$libname.$libext"
 
 	# Transform .lo files to .o files.
-	oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
+	oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP`
       fi
 
       # Eliminate all temporary directories.
       #for path in $notinst_path; do
-      #	lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"`
-      #	deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"`
-      #	dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"`
+      #	lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"`
+      #	deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"`
+      #	dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"`
       #done
 
       if test -n "$xrpath"; then
 	# If the user specified any rpath flags, then add them.
 	temp_xrpath=
 	for libdir in $xrpath; do
-	  temp_xrpath="$temp_xrpath -R$libdir"
+	  func_replace_sysroot "$libdir"
+	  func_append temp_xrpath " -R$func_replace_sysroot_result"
 	  case "$finalize_rpath " in
 	  *" $libdir "*) ;;
-	  *) finalize_rpath="$finalize_rpath $libdir" ;;
+	  *) func_append finalize_rpath " $libdir" ;;
 	  esac
 	done
 	if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
@@ -6466,7 +7588,7 @@ func_mode_link ()
       for lib in $old_dlfiles; do
 	case " $dlprefiles $dlfiles " in
 	*" $lib "*) ;;
-	*) dlfiles="$dlfiles $lib" ;;
+	*) func_append dlfiles " $lib" ;;
 	esac
       done
 
@@ -6476,19 +7598,19 @@ func_mode_link ()
       for lib in $old_dlprefiles; do
 	case "$dlprefiles " in
 	*" $lib "*) ;;
-	*) dlprefiles="$dlprefiles $lib" ;;
+	*) func_append dlprefiles " $lib" ;;
 	esac
       done
 
       if test "$build_libtool_libs" = yes; then
 	if test -n "$rpath"; then
 	  case $host in
-	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc*)
+	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*)
 	    # these systems don't actually have a c library (as such)!
 	    ;;
 	  *-*-rhapsody* | *-*-darwin1.[012])
 	    # Rhapsody C library is in the System framework
-	    deplibs="$deplibs System.ltframework"
+	    func_append deplibs " System.ltframework"
 	    ;;
 	  *-*-netbsd*)
 	    # Don't link with libc until the a.out ld.so is fixed.
@@ -6505,7 +7627,7 @@ func_mode_link ()
 	  *)
 	    # Add libc to deplibs on all other systems if necessary.
 	    if test "$build_libtool_need_lc" = "yes"; then
-	      deplibs="$deplibs -lc"
+	      func_append deplibs " -lc"
 	    fi
 	    ;;
 	  esac
@@ -6554,7 +7676,7 @@ EOF
 		if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
 		  case " $predeps $postdeps " in
 		  *" $i "*)
-		    newdeplibs="$newdeplibs $i"
+		    func_append newdeplibs " $i"
 		    i=""
 		    ;;
 		  esac
@@ -6565,21 +7687,21 @@ EOF
 		  set dummy $deplib_matches; shift
 		  deplib_match=$1
 		  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
-		    newdeplibs="$newdeplibs $i"
+		    func_append newdeplibs " $i"
 		  else
 		    droppeddeps=yes
-		    $ECHO
+		    echo
 		    $ECHO "*** Warning: dynamic linker does not accept needed library $i."
-		    $ECHO "*** I have the capability to make that library automatically link in when"
-		    $ECHO "*** you link to this library.  But I can only do this if you have a"
-		    $ECHO "*** shared version of the library, which I believe you do not have"
-		    $ECHO "*** because a test_compile did reveal that the linker did not use it for"
-		    $ECHO "*** its dynamic dependency list that programs get resolved with at runtime."
+		    echo "*** I have the capability to make that library automatically link in when"
+		    echo "*** you link to this library.  But I can only do this if you have a"
+		    echo "*** shared version of the library, which I believe you do not have"
+		    echo "*** because a test_compile did reveal that the linker did not use it for"
+		    echo "*** its dynamic dependency list that programs get resolved with at runtime."
 		  fi
 		fi
 		;;
 	      *)
-		newdeplibs="$newdeplibs $i"
+		func_append newdeplibs " $i"
 		;;
 	      esac
 	    done
@@ -6597,7 +7719,7 @@ EOF
 		  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
 		    case " $predeps $postdeps " in
 		    *" $i "*)
-		      newdeplibs="$newdeplibs $i"
+		      func_append newdeplibs " $i"
 		      i=""
 		      ;;
 		    esac
@@ -6608,29 +7730,29 @@ EOF
 		    set dummy $deplib_matches; shift
 		    deplib_match=$1
 		    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
-		      newdeplibs="$newdeplibs $i"
+		      func_append newdeplibs " $i"
 		    else
 		      droppeddeps=yes
-		      $ECHO
+		      echo
 		      $ECHO "*** Warning: dynamic linker does not accept needed library $i."
-		      $ECHO "*** I have the capability to make that library automatically link in when"
-		      $ECHO "*** you link to this library.  But I can only do this if you have a"
-		      $ECHO "*** shared version of the library, which you do not appear to have"
-		      $ECHO "*** because a test_compile did reveal that the linker did not use this one"
-		      $ECHO "*** as a dynamic dependency that programs can get resolved with at runtime."
+		      echo "*** I have the capability to make that library automatically link in when"
+		      echo "*** you link to this library.  But I can only do this if you have a"
+		      echo "*** shared version of the library, which you do not appear to have"
+		      echo "*** because a test_compile did reveal that the linker did not use this one"
+		      echo "*** as a dynamic dependency that programs can get resolved with at runtime."
 		    fi
 		  fi
 		else
 		  droppeddeps=yes
-		  $ECHO
+		  echo
 		  $ECHO "*** Warning!  Library $i is needed by this library but I was not able to"
-		  $ECHO "*** make it link in!  You will probably need to install it or some"
-		  $ECHO "*** library that it depends on before this library will be fully"
-		  $ECHO "*** functional.  Installing it before continuing would be even better."
+		  echo "*** make it link in!  You will probably need to install it or some"
+		  echo "*** library that it depends on before this library will be fully"
+		  echo "*** functional.  Installing it before continuing would be even better."
 		fi
 		;;
 	      *)
-		newdeplibs="$newdeplibs $i"
+		func_append newdeplibs " $i"
 		;;
 	      esac
 	    done
@@ -6647,15 +7769,27 @@ EOF
 	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
 		case " $predeps $postdeps " in
 		*" $a_deplib "*)
-		  newdeplibs="$newdeplibs $a_deplib"
+		  func_append newdeplibs " $a_deplib"
 		  a_deplib=""
 		  ;;
 		esac
 	      fi
 	      if test -n "$a_deplib" ; then
 		libname=`eval "\\$ECHO \"$libname_spec\""`
+		if test -n "$file_magic_glob"; then
+		  libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob`
+		else
+		  libnameglob=$libname
+		fi
+		test "$want_nocaseglob" = yes && nocaseglob=`shopt -p nocaseglob`
 		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
-		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
+		  if test "$want_nocaseglob" = yes; then
+		    shopt -s nocaseglob
+		    potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
+		    $nocaseglob
+		  else
+		    potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
+		  fi
 		  for potent_lib in $potential_libs; do
 		      # Follow soft links.
 		      if ls -lLd "$potent_lib" 2>/dev/null |
@@ -6672,13 +7806,13 @@ EOF
 			potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
 			case $potliblink in
 			[\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
-			*) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
+			*) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";;
 			esac
 		      done
 		      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
 			 $SED -e 10q |
 			 $EGREP "$file_magic_regex" > /dev/null; then
-			newdeplibs="$newdeplibs $a_deplib"
+			func_append newdeplibs " $a_deplib"
 			a_deplib=""
 			break 2
 		      fi
@@ -6687,12 +7821,12 @@ EOF
 	      fi
 	      if test -n "$a_deplib" ; then
 		droppeddeps=yes
-		$ECHO
+		echo
 		$ECHO "*** Warning: linker path does not have real file for library $a_deplib."
-		$ECHO "*** I have the capability to make that library automatically link in when"
-		$ECHO "*** you link to this library.  But I can only do this if you have a"
-		$ECHO "*** shared version of the library, which you do not appear to have"
-		$ECHO "*** because I did check the linker path looking for a file starting"
+		echo "*** I have the capability to make that library automatically link in when"
+		echo "*** you link to this library.  But I can only do this if you have a"
+		echo "*** shared version of the library, which you do not appear to have"
+		echo "*** because I did check the linker path looking for a file starting"
 		if test -z "$potlib" ; then
 		  $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
 		else
@@ -6703,7 +7837,7 @@ EOF
 	      ;;
 	    *)
 	      # Add a -L argument.
-	      newdeplibs="$newdeplibs $a_deplib"
+	      func_append newdeplibs " $a_deplib"
 	      ;;
 	    esac
 	  done # Gone through all deplibs.
@@ -6719,7 +7853,7 @@ EOF
 	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
 		case " $predeps $postdeps " in
 		*" $a_deplib "*)
-		  newdeplibs="$newdeplibs $a_deplib"
+		  func_append newdeplibs " $a_deplib"
 		  a_deplib=""
 		  ;;
 		esac
@@ -6730,9 +7864,9 @@ EOF
 		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
 		  for potent_lib in $potential_libs; do
 		    potlib="$potent_lib" # see symlink-check above in file_magic test
-		    if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \
+		    if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \
 		       $EGREP "$match_pattern_regex" > /dev/null; then
-		      newdeplibs="$newdeplibs $a_deplib"
+		      func_append newdeplibs " $a_deplib"
 		      a_deplib=""
 		      break 2
 		    fi
@@ -6741,12 +7875,12 @@ EOF
 	      fi
 	      if test -n "$a_deplib" ; then
 		droppeddeps=yes
-		$ECHO
+		echo
 		$ECHO "*** Warning: linker path does not have real file for library $a_deplib."
-		$ECHO "*** I have the capability to make that library automatically link in when"
-		$ECHO "*** you link to this library.  But I can only do this if you have a"
-		$ECHO "*** shared version of the library, which you do not appear to have"
-		$ECHO "*** because I did check the linker path looking for a file starting"
+		echo "*** I have the capability to make that library automatically link in when"
+		echo "*** you link to this library.  But I can only do this if you have a"
+		echo "*** shared version of the library, which you do not appear to have"
+		echo "*** because I did check the linker path looking for a file starting"
 		if test -z "$potlib" ; then
 		  $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
 		else
@@ -6757,32 +7891,32 @@ EOF
 	      ;;
 	    *)
 	      # Add a -L argument.
-	      newdeplibs="$newdeplibs $a_deplib"
+	      func_append newdeplibs " $a_deplib"
 	      ;;
 	    esac
 	  done # Gone through all deplibs.
 	  ;;
 	none | unknown | *)
 	  newdeplibs=""
-	  tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \
-	      -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'`
+	  tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'`
 	  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
 	    for i in $predeps $postdeps ; do
 	      # can't use Xsed below, because $i might contain '/'
-	      tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"`
+	      tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"`
 	    done
 	  fi
-	  if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[	 ]//g' |
-	     $GREP . >/dev/null; then
-	    $ECHO
+	  case $tmp_deplibs in
+	  *[!\	\ ]*)
+	    echo
 	    if test "X$deplibs_check_method" = "Xnone"; then
-	      $ECHO "*** Warning: inter-library dependencies are not supported in this platform."
+	      echo "*** Warning: inter-library dependencies are not supported in this platform."
 	    else
-	      $ECHO "*** Warning: inter-library dependencies are not known to be supported."
+	      echo "*** Warning: inter-library dependencies are not known to be supported."
 	    fi
-	    $ECHO "*** All declared inter-library dependencies are being dropped."
+	    echo "*** All declared inter-library dependencies are being dropped."
 	    droppeddeps=yes
-	  fi
+	    ;;
+	  esac
 	  ;;
 	esac
 	versuffix=$versuffix_save
@@ -6794,23 +7928,23 @@ EOF
 	case $host in
 	*-*-rhapsody* | *-*-darwin1.[012])
 	  # On Rhapsody replace the C library with the System framework
-	  newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
+	  newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'`
 	  ;;
 	esac
 
 	if test "$droppeddeps" = yes; then
 	  if test "$module" = yes; then
-	    $ECHO
-	    $ECHO "*** Warning: libtool could not satisfy all declared inter-library"
+	    echo
+	    echo "*** Warning: libtool could not satisfy all declared inter-library"
 	    $ECHO "*** dependencies of module $libname.  Therefore, libtool will create"
-	    $ECHO "*** a static module, that should work as long as the dlopening"
-	    $ECHO "*** application is linked with the -dlopen flag."
+	    echo "*** a static module, that should work as long as the dlopening"
+	    echo "*** application is linked with the -dlopen flag."
 	    if test -z "$global_symbol_pipe"; then
-	      $ECHO
-	      $ECHO "*** However, this would only work if libtool was able to extract symbol"
-	      $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could"
-	      $ECHO "*** not find such a program.  So, this module is probably useless."
-	      $ECHO "*** \`nm' from GNU binutils and a full rebuild may help."
+	      echo
+	      echo "*** However, this would only work if libtool was able to extract symbol"
+	      echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
+	      echo "*** not find such a program.  So, this module is probably useless."
+	      echo "*** \`nm' from GNU binutils and a full rebuild may help."
 	    fi
 	    if test "$build_old_libs" = no; then
 	      oldlibs="$output_objdir/$libname.$libext"
@@ -6820,16 +7954,16 @@ EOF
 	      build_libtool_libs=no
 	    fi
 	  else
-	    $ECHO "*** The inter-library dependencies that have been dropped here will be"
-	    $ECHO "*** automatically added whenever a program is linked with this library"
-	    $ECHO "*** or is declared to -dlopen it."
+	    echo "*** The inter-library dependencies that have been dropped here will be"
+	    echo "*** automatically added whenever a program is linked with this library"
+	    echo "*** or is declared to -dlopen it."
 
 	    if test "$allow_undefined" = no; then
-	      $ECHO
-	      $ECHO "*** Since this library must not contain undefined symbols,"
-	      $ECHO "*** because either the platform does not support them or"
-	      $ECHO "*** it was explicitly requested with -no-undefined,"
-	      $ECHO "*** libtool will only create a static version of it."
+	      echo
+	      echo "*** Since this library must not contain undefined symbols,"
+	      echo "*** because either the platform does not support them or"
+	      echo "*** it was explicitly requested with -no-undefined,"
+	      echo "*** libtool will only create a static version of it."
 	      if test "$build_old_libs" = no; then
 		oldlibs="$output_objdir/$libname.$libext"
 		build_libtool_libs=module
@@ -6846,9 +7980,9 @@ EOF
       # Time to change all our "foo.ltframework" stuff back to "-framework foo"
       case $host in
 	*-*-darwin*)
-	  newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
-	  new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
-	  deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+	  newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+	  new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+	  deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
 	  ;;
       esac
 
@@ -6861,7 +7995,7 @@ EOF
 	*)
 	  case " $deplibs " in
 	  *" -L$path/$objdir "*)
-	    new_libs="$new_libs -L$path/$objdir" ;;
+	    func_append new_libs " -L$path/$objdir" ;;
 	  esac
 	  ;;
 	esac
@@ -6871,10 +8005,10 @@ EOF
 	-L*)
 	  case " $new_libs " in
 	  *" $deplib "*) ;;
-	  *) new_libs="$new_libs $deplib" ;;
+	  *) func_append new_libs " $deplib" ;;
 	  esac
 	  ;;
-	*) new_libs="$new_libs $deplib" ;;
+	*) func_append new_libs " $deplib" ;;
 	esac
       done
       deplibs="$new_libs"
@@ -6891,10 +8025,12 @@ EOF
 	  hardcode_libdirs=
 	  dep_rpath=
 	  rpath="$finalize_rpath"
-	  test "$mode" != relink && rpath="$compile_rpath$rpath"
+	  test "$opt_mode" != relink && rpath="$compile_rpath$rpath"
 	  for libdir in $rpath; do
 	    if test -n "$hardcode_libdir_flag_spec"; then
 	      if test -n "$hardcode_libdir_separator"; then
+		func_replace_sysroot "$libdir"
+		libdir=$func_replace_sysroot_result
 		if test -z "$hardcode_libdirs"; then
 		  hardcode_libdirs="$libdir"
 		else
@@ -6903,18 +8039,18 @@ EOF
 		  *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
 		    ;;
 		  *)
-		    hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+		    func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
 		    ;;
 		  esac
 		fi
 	      else
 		eval flag=\"$hardcode_libdir_flag_spec\"
-		dep_rpath="$dep_rpath $flag"
+		func_append dep_rpath " $flag"
 	      fi
 	    elif test -n "$runpath_var"; then
 	      case "$perm_rpath " in
 	      *" $libdir "*) ;;
-	      *) perm_rpath="$perm_rpath $libdir" ;;
+	      *) func_apped perm_rpath " $libdir" ;;
 	      esac
 	    fi
 	  done
@@ -6932,7 +8068,7 @@ EOF
 	    # We should set the runpath_var.
 	    rpath=
 	    for dir in $perm_rpath; do
-	      rpath="$rpath$dir:"
+	      func_append rpath "$dir:"
 	    done
 	    eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
 	  fi
@@ -6940,7 +8076,7 @@ EOF
 	fi
 
 	shlibpath="$finalize_shlibpath"
-	test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
+	test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
 	if test -n "$shlibpath"; then
 	  eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
 	fi
@@ -6966,18 +8102,18 @@ EOF
 	linknames=
 	for link
 	do
-	  linknames="$linknames $link"
+	  func_append linknames " $link"
 	done
 
 	# Use standard objects if they are pic
-	test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+	test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP`
 	test "X$libobjs" = "X " && libobjs=
 
 	delfiles=
 	if test -n "$export_symbols" && test -n "$include_expsyms"; then
 	  $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
 	  export_symbols="$output_objdir/$libname.uexp"
-	  delfiles="$delfiles $export_symbols"
+	  func_append delfiles " $export_symbols"
 	fi
 
 	orig_export_symbols=
@@ -7008,13 +8144,45 @@ EOF
 	    $opt_dry_run || $RM $export_symbols
 	    cmds=$export_symbols_cmds
 	    save_ifs="$IFS"; IFS='~'
-	    for cmd in $cmds; do
+	    for cmd1 in $cmds; do
 	      IFS="$save_ifs"
-	      eval cmd=\"$cmd\"
-	      func_len " $cmd"
-	      len=$func_len_result
-	      if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+	      # Take the normal branch if the nm_file_list_spec branch
+	      # doesn't work or if tool conversion is not needed.
+	      case $nm_file_list_spec~$to_tool_file_cmd in
+		*~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*)
+		  try_normal_branch=yes
+		  eval cmd=\"$cmd1\"
+		  func_len " $cmd"
+		  len=$func_len_result
+		  ;;
+		*)
+		  try_normal_branch=no
+		  ;;
+	      esac
+	      if test "$try_normal_branch" = yes \
+		 && { test "$len" -lt "$max_cmd_len" \
+		      || test "$max_cmd_len" -le -1; }
+	      then
+		func_show_eval "$cmd" 'exit $?'
+		skipped_export=false
+	      elif test -n "$nm_file_list_spec"; then
+		func_basename "$output"
+		output_la=$func_basename_result
+		save_libobjs=$libobjs
+		save_output=$output
+		output=${output_objdir}/${output_la}.nm
+		func_to_tool_file "$output"
+		libobjs=$nm_file_list_spec$func_to_tool_file_result
+		func_append delfiles " $output"
+		func_verbose "creating $NM input file list: $output"
+		for obj in $save_libobjs; do
+		  func_to_tool_file "$obj"
+		  $ECHO "$func_to_tool_file_result"
+		done > "$output"
+		eval cmd=\"$cmd1\"
 		func_show_eval "$cmd" 'exit $?'
+		output=$save_output
+		libobjs=$save_libobjs
 		skipped_export=false
 	      else
 		# The command line is too long to execute in one step.
@@ -7036,7 +8204,7 @@ EOF
 	if test -n "$export_symbols" && test -n "$include_expsyms"; then
 	  tmp_export_symbols="$export_symbols"
 	  test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
-	  $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'
+	  $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
 	fi
 
 	if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then
@@ -7048,7 +8216,7 @@ EOF
 	  # global variables. join(1) would be nice here, but unfortunately
 	  # isn't a blessed tool.
 	  $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
-	  delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
+	  func_append delfiles " $export_symbols $output_objdir/$libname.filter"
 	  export_symbols=$output_objdir/$libname.def
 	  $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
 	fi
@@ -7058,7 +8226,7 @@ EOF
 	  case " $convenience " in
 	  *" $test_deplib "*) ;;
 	  *)
-	    tmp_deplibs="$tmp_deplibs $test_deplib"
+	    func_append tmp_deplibs " $test_deplib"
 	    ;;
 	  esac
 	done
@@ -7078,21 +8246,21 @@ EOF
 	    test "X$libobjs" = "X " && libobjs=
 	  else
 	    gentop="$output_objdir/${outputname}x"
-	    generated="$generated $gentop"
+	    func_append generated " $gentop"
 
 	    func_extract_archives $gentop $convenience
-	    libobjs="$libobjs $func_extract_archives_result"
+	    func_append libobjs " $func_extract_archives_result"
 	    test "X$libobjs" = "X " && libobjs=
 	  fi
 	fi
 
 	if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
 	  eval flag=\"$thread_safe_flag_spec\"
-	  linker_flags="$linker_flags $flag"
+	  func_append linker_flags " $flag"
 	fi
 
 	# Make a backup of the uninstalled library when relinking
-	if test "$mode" = relink; then
+	if test "$opt_mode" = relink; then
 	  $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?
 	fi
 
@@ -7137,7 +8305,8 @@ EOF
 	    save_libobjs=$libobjs
 	  fi
 	  save_output=$output
-	  output_la=`$ECHO "X$output" | $Xsed -e "$basename"`
+	  func_basename "$output"
+	  output_la=$func_basename_result
 
 	  # Clear the reloadable object creation command queue and
 	  # initialize k to one.
@@ -7150,13 +8319,16 @@ EOF
 	  if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then
 	    output=${output_objdir}/${output_la}.lnkscript
 	    func_verbose "creating GNU ld script: $output"
-	    $ECHO 'INPUT (' > $output
+	    echo 'INPUT (' > $output
 	    for obj in $save_libobjs
 	    do
-	      $ECHO "$obj" >> $output
+	      func_to_tool_file "$obj"
+	      $ECHO "$func_to_tool_file_result" >> $output
 	    done
-	    $ECHO ')' >> $output
-	    delfiles="$delfiles $output"
+	    echo ')' >> $output
+	    func_append delfiles " $output"
+	    func_to_tool_file "$output"
+	    output=$func_to_tool_file_result
 	  elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then
 	    output=${output_objdir}/${output_la}.lnk
 	    func_verbose "creating linker input file list: $output"
@@ -7170,10 +8342,12 @@ EOF
 	    fi
 	    for obj
 	    do
-	      $ECHO "$obj" >> $output
+	      func_to_tool_file "$obj"
+	      $ECHO "$func_to_tool_file_result" >> $output
 	    done
-	    delfiles="$delfiles $output"
-	    output=$firstobj\"$file_list_spec$output\"
+	    func_append delfiles " $output"
+	    func_to_tool_file "$output"
+	    output=$firstobj\"$file_list_spec$func_to_tool_file_result\"
 	  else
 	    if test -n "$save_libobjs"; then
 	      func_verbose "creating reloadable object files..."
@@ -7197,17 +8371,19 @@ EOF
 		  # command to the queue.
 		  if test "$k" -eq 1 ; then
 		    # The first file doesn't have a previous command to add.
-		    eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
+		    reload_objs=$objlist
+		    eval concat_cmds=\"$reload_cmds\"
 		  else
 		    # All subsequent reloadable object files will link in
 		    # the last one created.
-		    eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$RM $last_robj\"
+		    reload_objs="$objlist $last_robj"
+		    eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\"
 		  fi
 		  last_robj=$output_objdir/$output_la-${k}.$objext
 		  func_arith $k + 1
 		  k=$func_arith_result
 		  output=$output_objdir/$output_la-${k}.$objext
-		  objlist=$obj
+		  objlist=" $obj"
 		  func_len " $last_robj"
 		  func_arith $len0 + $func_len_result
 		  len=$func_arith_result
@@ -7217,11 +8393,12 @@ EOF
 	      # reloadable object file.  All subsequent reloadable object
 	      # files will link in the last one created.
 	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
-	      eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
+	      reload_objs="$objlist $last_robj"
+	      eval concat_cmds=\"\${concat_cmds}$reload_cmds\"
 	      if test -n "$last_robj"; then
 	        eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\"
 	      fi
-	      delfiles="$delfiles $output"
+	      func_append delfiles " $output"
 
 	    else
 	      output=
@@ -7255,7 +8432,7 @@ EOF
 		lt_exit=$?
 
 		# Restore the uninstalled library and exit
-		if test "$mode" = relink; then
+		if test "$opt_mode" = relink; then
 		  ( cd "$output_objdir" && \
 		    $RM "${realname}T" && \
 		    $MV "${realname}U" "$realname" )
@@ -7276,7 +8453,7 @@ EOF
 	    if test -n "$export_symbols" && test -n "$include_expsyms"; then
 	      tmp_export_symbols="$export_symbols"
 	      test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
-	      $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'
+	      $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
 	    fi
 
 	    if test -n "$orig_export_symbols"; then
@@ -7288,7 +8465,7 @@ EOF
 	      # global variables. join(1) would be nice here, but unfortunately
 	      # isn't a blessed tool.
 	      $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
-	      delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
+	      func_append delfiles " $export_symbols $output_objdir/$libname.filter"
 	      export_symbols=$output_objdir/$libname.def
 	      $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
 	    fi
@@ -7329,10 +8506,10 @@ EOF
 	# Add any objects from preloaded convenience libraries
 	if test -n "$dlprefiles"; then
 	  gentop="$output_objdir/${outputname}x"
-	  generated="$generated $gentop"
+	  func_append generated " $gentop"
 
 	  func_extract_archives $gentop $dlprefiles
-	  libobjs="$libobjs $func_extract_archives_result"
+	  func_append libobjs " $func_extract_archives_result"
 	  test "X$libobjs" = "X " && libobjs=
 	fi
 
@@ -7348,7 +8525,7 @@ EOF
 	    lt_exit=$?
 
 	    # Restore the uninstalled library and exit
-	    if test "$mode" = relink; then
+	    if test "$opt_mode" = relink; then
 	      ( cd "$output_objdir" && \
 	        $RM "${realname}T" && \
 		$MV "${realname}U" "$realname" )
@@ -7360,7 +8537,7 @@ EOF
 	IFS="$save_ifs"
 
 	# Restore the uninstalled library and exit
-	if test "$mode" = relink; then
+	if test "$opt_mode" = relink; then
 	  $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
 
 	  if test -n "$convenience"; then
@@ -7441,18 +8618,21 @@ EOF
       if test -n "$convenience"; then
 	if test -n "$whole_archive_flag_spec"; then
 	  eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
-	  reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'`
+	  reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'`
 	else
 	  gentop="$output_objdir/${obj}x"
-	  generated="$generated $gentop"
+	  func_append generated " $gentop"
 
 	  func_extract_archives $gentop $convenience
 	  reload_conv_objs="$reload_objs $func_extract_archives_result"
 	fi
       fi
 
+      # If we're not building shared, we need to use non_pic_objs
+      test "$build_libtool_libs" != yes && libobjs="$non_pic_objects"
+
       # Create the old-style object.
-      reload_objs="$objs$old_deplibs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
+      reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
 
       output="$obj"
       func_execute_cmds "$reload_cmds" 'exit $?'
@@ -7512,8 +8692,8 @@ EOF
       case $host in
       *-*-rhapsody* | *-*-darwin1.[012])
 	# On Rhapsody replace the C library is the System framework
-	compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
-	finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
+	compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'`
+	finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'`
 	;;
       esac
 
@@ -7524,14 +8704,14 @@ EOF
 	if test "$tagname" = CXX ; then
 	  case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
 	    10.[0123])
-	      compile_command="$compile_command ${wl}-bind_at_load"
-	      finalize_command="$finalize_command ${wl}-bind_at_load"
+	      func_append compile_command " ${wl}-bind_at_load"
+	      func_append finalize_command " ${wl}-bind_at_load"
 	    ;;
 	  esac
 	fi
 	# Time to change all our "foo.ltframework" stuff back to "-framework foo"
-	compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
-	finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+	compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+	finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
 	;;
       esac
 
@@ -7545,7 +8725,7 @@ EOF
 	*)
 	  case " $compile_deplibs " in
 	  *" -L$path/$objdir "*)
-	    new_libs="$new_libs -L$path/$objdir" ;;
+	    func_append new_libs " -L$path/$objdir" ;;
 	  esac
 	  ;;
 	esac
@@ -7555,17 +8735,17 @@ EOF
 	-L*)
 	  case " $new_libs " in
 	  *" $deplib "*) ;;
-	  *) new_libs="$new_libs $deplib" ;;
+	  *) func_append new_libs " $deplib" ;;
 	  esac
 	  ;;
-	*) new_libs="$new_libs $deplib" ;;
+	*) func_append new_libs " $deplib" ;;
 	esac
       done
       compile_deplibs="$new_libs"
 
 
-      compile_command="$compile_command $compile_deplibs"
-      finalize_command="$finalize_command $finalize_deplibs"
+      func_append compile_command " $compile_deplibs"
+      func_append finalize_command " $finalize_deplibs"
 
       if test -n "$rpath$xrpath"; then
 	# If the user specified any rpath flags, then add them.
@@ -7573,7 +8753,7 @@ EOF
 	  # This is the magic to use -rpath.
 	  case "$finalize_rpath " in
 	  *" $libdir "*) ;;
-	  *) finalize_rpath="$finalize_rpath $libdir" ;;
+	  *) func_append finalize_rpath " $libdir" ;;
 	  esac
 	done
       fi
@@ -7592,18 +8772,18 @@ EOF
 	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
 		;;
 	      *)
-		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+		func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
 		;;
 	      esac
 	    fi
 	  else
 	    eval flag=\"$hardcode_libdir_flag_spec\"
-	    rpath="$rpath $flag"
+	    func_append rpath " $flag"
 	  fi
 	elif test -n "$runpath_var"; then
 	  case "$perm_rpath " in
 	  *" $libdir "*) ;;
-	  *) perm_rpath="$perm_rpath $libdir" ;;
+	  *) func_append perm_rpath " $libdir" ;;
 	  esac
 	fi
 	case $host in
@@ -7612,12 +8792,12 @@ EOF
 	  case :$dllsearchpath: in
 	  *":$libdir:"*) ;;
 	  ::) dllsearchpath=$libdir;;
-	  *) dllsearchpath="$dllsearchpath:$libdir";;
+	  *) func_append dllsearchpath ":$libdir";;
 	  esac
 	  case :$dllsearchpath: in
 	  *":$testbindir:"*) ;;
 	  ::) dllsearchpath=$testbindir;;
-	  *) dllsearchpath="$dllsearchpath:$testbindir";;
+	  *) func_append dllsearchpath ":$testbindir";;
 	  esac
 	  ;;
 	esac
@@ -7643,18 +8823,18 @@ EOF
 	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
 		;;
 	      *)
-		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+		func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
 		;;
 	      esac
 	    fi
 	  else
 	    eval flag=\"$hardcode_libdir_flag_spec\"
-	    rpath="$rpath $flag"
+	    func_append rpath " $flag"
 	  fi
 	elif test -n "$runpath_var"; then
 	  case "$finalize_perm_rpath " in
 	  *" $libdir "*) ;;
-	  *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
+	  *) func_append finalize_perm_rpath " $libdir" ;;
 	  esac
 	fi
       done
@@ -7668,8 +8848,8 @@ EOF
 
       if test -n "$libobjs" && test "$build_old_libs" = yes; then
 	# Transform all the library objects into standard objects.
-	compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
-	finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+	compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
+	finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
       fi
 
       func_generate_dlsyms "$outputname" "@PROGRAM@" "no"
@@ -7681,15 +8861,15 @@ EOF
 
       wrappers_required=yes
       case $host in
+      *cegcc* | *mingw32ce*)
+        # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway.
+        wrappers_required=no
+        ;;
       *cygwin* | *mingw* )
         if test "$build_libtool_libs" != yes; then
           wrappers_required=no
         fi
         ;;
-      *cegcc)
-        # Disable wrappers for cegcc, we are cross compiling anyway.
-        wrappers_required=no
-        ;;
       *)
         if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
           wrappers_required=no
@@ -7698,13 +8878,19 @@ EOF
       esac
       if test "$wrappers_required" = no; then
 	# Replace the output file specification.
-	compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
+	compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
 	link_command="$compile_command$compile_rpath"
 
 	# We have no uninstalled library dependencies, so finalize right now.
 	exit_status=0
 	func_show_eval "$link_command" 'exit_status=$?'
 
+	if test -n "$postlink_cmds"; then
+	  func_to_tool_file "$output"
+	  postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
+	  func_execute_cmds "$postlink_cmds" 'exit $?'
+	fi
+
 	# Delete the generated files.
 	if test -f "$output_objdir/${outputname}S.${objext}"; then
 	  func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"'
@@ -7727,7 +8913,7 @@ EOF
 	  # We should set the runpath_var.
 	  rpath=
 	  for dir in $perm_rpath; do
-	    rpath="$rpath$dir:"
+	    func_append rpath "$dir:"
 	  done
 	  compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
 	fi
@@ -7735,7 +8921,7 @@ EOF
 	  # We should set the runpath_var.
 	  rpath=
 	  for dir in $finalize_perm_rpath; do
-	    rpath="$rpath$dir:"
+	    func_append rpath "$dir:"
 	  done
 	  finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
 	fi
@@ -7745,11 +8931,18 @@ EOF
 	# We don't need to create a wrapper script.
 	link_command="$compile_var$compile_command$compile_rpath"
 	# Replace the output file specification.
-	link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
+	link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
 	# Delete the old output file.
 	$opt_dry_run || $RM $output
 	# Link the executable and exit
 	func_show_eval "$link_command" 'exit $?'
+
+	if test -n "$postlink_cmds"; then
+	  func_to_tool_file "$output"
+	  postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
+	  func_execute_cmds "$postlink_cmds" 'exit $?'
+	fi
+
 	exit $EXIT_SUCCESS
       fi
 
@@ -7764,7 +8957,7 @@ EOF
 	if test "$fast_install" != no; then
 	  link_command="$finalize_var$compile_command$finalize_rpath"
 	  if test "$fast_install" = yes; then
-	    relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
+	    relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'`
 	  else
 	    # fast_install is set to needless
 	    relink_command=
@@ -7776,13 +8969,19 @@ EOF
       fi
 
       # Replace the output file specification.
-      link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
+      link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
 
       # Delete the old output files.
       $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname
 
       func_show_eval "$link_command" 'exit $?'
 
+      if test -n "$postlink_cmds"; then
+	func_to_tool_file "$output_objdir/$outputname"
+	postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
+	func_execute_cmds "$postlink_cmds" 'exit $?'
+      fi
+
       # Now create the wrapper script.
       func_verbose "creating $output"
 
@@ -7800,18 +8999,7 @@ EOF
 	  fi
 	done
 	relink_command="(cd `pwd`; $relink_command)"
-	relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"`
-      fi
-
-      # Quote $ECHO for shipping.
-      if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then
-	case $progpath in
-	[\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
-	*) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
-	esac
-	qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"`
-      else
-	qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"`
+	relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
       fi
 
       # Only actually do things if not in dry run mode.
@@ -7891,7 +9079,7 @@ EOF
 	else
 	  oldobjs="$old_deplibs $non_pic_objects"
 	  if test "$preload" = yes && test -f "$symfileobj"; then
-	    oldobjs="$oldobjs $symfileobj"
+	    func_append oldobjs " $symfileobj"
 	  fi
 	fi
 	addlibs="$old_convenience"
@@ -7899,10 +9087,10 @@ EOF
 
       if test -n "$addlibs"; then
 	gentop="$output_objdir/${outputname}x"
-	generated="$generated $gentop"
+	func_append generated " $gentop"
 
 	func_extract_archives $gentop $addlibs
-	oldobjs="$oldobjs $func_extract_archives_result"
+	func_append oldobjs " $func_extract_archives_result"
       fi
 
       # Do each command in the archive commands.
@@ -7913,10 +9101,10 @@ EOF
 	# Add any objects from preloaded convenience libraries
 	if test -n "$dlprefiles"; then
 	  gentop="$output_objdir/${outputname}x"
-	  generated="$generated $gentop"
+	  func_append generated " $gentop"
 
 	  func_extract_archives $gentop $dlprefiles
-	  oldobjs="$oldobjs $func_extract_archives_result"
+	  func_append oldobjs " $func_extract_archives_result"
 	fi
 
 	# POSIX demands no paths to be encoded in archives.  We have
@@ -7932,9 +9120,9 @@ EOF
 	    done | sort | sort -uc >/dev/null 2>&1); then
 	  :
 	else
-	  $ECHO "copying selected object files to avoid basename conflicts..."
+	  echo "copying selected object files to avoid basename conflicts..."
 	  gentop="$output_objdir/${outputname}x"
-	  generated="$generated $gentop"
+	  func_append generated " $gentop"
 	  func_mkdir_p "$gentop"
 	  save_oldobjs=$oldobjs
 	  oldobjs=
@@ -7958,9 +9146,9 @@ EOF
 		esac
 	      done
 	      func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
-	      oldobjs="$oldobjs $gentop/$newobj"
+	      func_append oldobjs " $gentop/$newobj"
 	      ;;
-	    *) oldobjs="$oldobjs $obj" ;;
+	    *) func_append oldobjs " $obj" ;;
 	    esac
 	  done
 	fi
@@ -7970,6 +9158,16 @@ EOF
 	len=$func_len_result
 	if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
 	  cmds=$old_archive_cmds
+	elif test -n "$archiver_list_spec"; then
+	  func_verbose "using command file archive linking..."
+	  for obj in $oldobjs
+	  do
+	    func_to_tool_file "$obj"
+	    $ECHO "$func_to_tool_file_result"
+	  done > $output_objdir/$libname.libcmd
+	  func_to_tool_file "$output_objdir/$libname.libcmd"
+	  oldobjs=" $archiver_list_spec$func_to_tool_file_result"
+	  cmds=$old_archive_cmds
 	else
 	  # the command line is too long to link in one step, link in parts
 	  func_verbose "using piecewise archive linking..."
@@ -8043,7 +9241,7 @@ EOF
       done
       # Quote the link command for shipping.
       relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
-      relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"`
+      relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
       if test "$hardcode_automatic" = yes ; then
 	relink_command=
       fi
@@ -8066,9 +9264,19 @@ EOF
 		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
 		test -z "$libdir" && \
 		  func_fatal_error "\`$deplib' is not a valid libtool archive"
-		newdependency_libs="$newdependency_libs $libdir/$name"
+		func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name"
+		;;
+	      -L*)
+		func_stripname -L '' "$deplib"
+		func_replace_sysroot "$func_stripname_result"
+		func_append newdependency_libs " -L$func_replace_sysroot_result"
+		;;
+	      -R*)
+		func_stripname -R '' "$deplib"
+		func_replace_sysroot "$func_stripname_result"
+		func_append newdependency_libs " -R$func_replace_sysroot_result"
 		;;
-	      *) newdependency_libs="$newdependency_libs $deplib" ;;
+	      *) func_append newdependency_libs " $deplib" ;;
 	      esac
 	    done
 	    dependency_libs="$newdependency_libs"
@@ -8082,9 +9290,9 @@ EOF
 		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
 		test -z "$libdir" && \
 		  func_fatal_error "\`$lib' is not a valid libtool archive"
-		newdlfiles="$newdlfiles $libdir/$name"
+		func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name"
 		;;
-	      *) newdlfiles="$newdlfiles $lib" ;;
+	      *) func_append newdlfiles " $lib" ;;
 	      esac
 	    done
 	    dlfiles="$newdlfiles"
@@ -8101,7 +9309,7 @@ EOF
 		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
 		test -z "$libdir" && \
 		  func_fatal_error "\`$lib' is not a valid libtool archive"
-		newdlprefiles="$newdlprefiles $libdir/$name"
+		func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name"
 		;;
 	      esac
 	    done
@@ -8113,7 +9321,7 @@ EOF
 		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
 		*) abs=`pwd`"/$lib" ;;
 	      esac
-	      newdlfiles="$newdlfiles $abs"
+	      func_append newdlfiles " $abs"
 	    done
 	    dlfiles="$newdlfiles"
 	    newdlprefiles=
@@ -8122,15 +9330,33 @@ EOF
 		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
 		*) abs=`pwd`"/$lib" ;;
 	      esac
-	      newdlprefiles="$newdlprefiles $abs"
+	      func_append newdlprefiles " $abs"
 	    done
 	    dlprefiles="$newdlprefiles"
 	  fi
 	  $RM $output
 	  # place dlname in correct position for cygwin
+	  # In fact, it would be nice if we could use this code for all target
+	  # systems that can't hard-code library paths into their executables
+	  # and that have no shared library path variable independent of PATH,
+	  # but it turns out we can't easily determine that from inspecting
+	  # libtool variables, so we have to hard-code the OSs to which it
+	  # applies here; at the moment, that means platforms that use the PE
+	  # object format with DLL files.  See the long comment at the top of
+	  # tests/bindir.at for full details.
 	  tdlname=$dlname
 	  case $host,$output,$installed,$module,$dlname in
-	    *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
+	    *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll)
+	      # If a -bindir argument was supplied, place the dll there.
+	      if test "x$bindir" != x ;
+	      then
+		func_relative_path "$install_libdir" "$bindir"
+		tdlname=$func_relative_path_result$dlname
+	      else
+		# Otherwise fall back on heuristic.
+		tdlname=../bin/$dlname
+	      fi
+	      ;;
 	  esac
 	  $ECHO > $output "\
 # $outputname - a libtool library file
@@ -8189,7 +9415,7 @@ relink_command=\"$relink_command\""
     exit $EXIT_SUCCESS
 }
 
-{ test "$mode" = link || test "$mode" = relink; } &&
+{ test "$opt_mode" = link || test "$opt_mode" = relink; } &&
     func_mode_link ${1+"$@"}
 
 
@@ -8209,9 +9435,9 @@ func_mode_uninstall ()
     for arg
     do
       case $arg in
-      -f) RM="$RM $arg"; rmforce=yes ;;
-      -*) RM="$RM $arg" ;;
-      *) files="$files $arg" ;;
+      -f) func_append RM " $arg"; rmforce=yes ;;
+      -*) func_append RM " $arg" ;;
+      *) func_append files " $arg" ;;
       esac
     done
 
@@ -8220,24 +9446,23 @@ func_mode_uninstall ()
 
     rmdirs=
 
-    origobjdir="$objdir"
     for file in $files; do
       func_dirname "$file" "" "."
       dir="$func_dirname_result"
       if test "X$dir" = X.; then
-	objdir="$origobjdir"
+	odir="$objdir"
       else
-	objdir="$dir/$origobjdir"
+	odir="$dir/$objdir"
       fi
       func_basename "$file"
       name="$func_basename_result"
-      test "$mode" = uninstall && objdir="$dir"
+      test "$opt_mode" = uninstall && odir="$dir"
 
-      # Remember objdir for removal later, being careful to avoid duplicates
-      if test "$mode" = clean; then
+      # Remember odir for removal later, being careful to avoid duplicates
+      if test "$opt_mode" = clean; then
 	case " $rmdirs " in
-	  *" $objdir "*) ;;
-	  *) rmdirs="$rmdirs $objdir" ;;
+	  *" $odir "*) ;;
+	  *) func_append rmdirs " $odir" ;;
 	esac
       fi
 
@@ -8263,18 +9488,17 @@ func_mode_uninstall ()
 
 	  # Delete the libtool libraries and symlinks.
 	  for n in $library_names; do
-	    rmfiles="$rmfiles $objdir/$n"
+	    func_append rmfiles " $odir/$n"
 	  done
-	  test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
+	  test -n "$old_library" && func_append rmfiles " $odir/$old_library"
 
-	  case "$mode" in
+	  case "$opt_mode" in
 	  clean)
-	    case "  $library_names " in
-	    # "  " in the beginning catches empty $dlname
+	    case " $library_names " in
 	    *" $dlname "*) ;;
-	    *) rmfiles="$rmfiles $objdir/$dlname" ;;
+	    *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;;
 	    esac
-	    test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
+	    test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i"
 	    ;;
 	  uninstall)
 	    if test -n "$library_names"; then
@@ -8302,19 +9526,19 @@ func_mode_uninstall ()
 	  # Add PIC object to the list of files to remove.
 	  if test -n "$pic_object" &&
 	     test "$pic_object" != none; then
-	    rmfiles="$rmfiles $dir/$pic_object"
+	    func_append rmfiles " $dir/$pic_object"
 	  fi
 
 	  # Add non-PIC object to the list of files to remove.
 	  if test -n "$non_pic_object" &&
 	     test "$non_pic_object" != none; then
-	    rmfiles="$rmfiles $dir/$non_pic_object"
+	    func_append rmfiles " $dir/$non_pic_object"
 	  fi
 	fi
 	;;
 
       *)
-	if test "$mode" = clean ; then
+	if test "$opt_mode" = clean ; then
 	  noexename=$name
 	  case $file in
 	  *.exe)
@@ -8324,7 +9548,7 @@ func_mode_uninstall ()
 	    noexename=$func_stripname_result
 	    # $file with .exe has already been added to rmfiles,
 	    # add $file without .exe
-	    rmfiles="$rmfiles $file"
+	    func_append rmfiles " $file"
 	    ;;
 	  esac
 	  # Do a test to see if this is a libtool program.
@@ -8333,7 +9557,7 @@ func_mode_uninstall ()
 	      func_ltwrapper_scriptname "$file"
 	      relink_command=
 	      func_source $func_ltwrapper_scriptname_result
-	      rmfiles="$rmfiles $func_ltwrapper_scriptname_result"
+	      func_append rmfiles " $func_ltwrapper_scriptname_result"
 	    else
 	      relink_command=
 	      func_source $dir/$noexename
@@ -8341,12 +9565,12 @@ func_mode_uninstall ()
 
 	    # note $name still contains .exe if it was in $file originally
 	    # as does the version of $file that was added into $rmfiles
-	    rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
+	    func_append rmfiles " $odir/$name $odir/${name}S.${objext}"
 	    if test "$fast_install" = yes && test -n "$relink_command"; then
-	      rmfiles="$rmfiles $objdir/lt-$name"
+	      func_append rmfiles " $odir/lt-$name"
 	    fi
 	    if test "X$noexename" != "X$name" ; then
-	      rmfiles="$rmfiles $objdir/lt-${noexename}.c"
+	      func_append rmfiles " $odir/lt-${noexename}.c"
 	    fi
 	  fi
 	fi
@@ -8354,7 +9578,6 @@ func_mode_uninstall ()
       esac
       func_show_eval "$RM $rmfiles" 'exit_status=1'
     done
-    objdir="$origobjdir"
 
     # Try to remove the ${objdir}s in the directories where we deleted files
     for dir in $rmdirs; do
@@ -8366,16 +9589,16 @@ func_mode_uninstall ()
     exit $exit_status
 }
 
-{ test "$mode" = uninstall || test "$mode" = clean; } &&
+{ test "$opt_mode" = uninstall || test "$opt_mode" = clean; } &&
     func_mode_uninstall ${1+"$@"}
 
-test -z "$mode" && {
+test -z "$opt_mode" && {
   help="$generic_help"
   func_fatal_help "you must specify a MODE"
 }
 
 test -z "$exec_cmd" && \
-  func_fatal_help "invalid operation mode \`$mode'"
+  func_fatal_help "invalid operation mode \`$opt_mode'"
 
 if test -n "$exec_cmd"; then
   eval exec "$exec_cmd"
diff --git a/m4/libtool.m4 b/m4/libtool.m4
index a3fee53..d812584 100644
--- a/m4/libtool.m4
+++ b/m4/libtool.m4
@@ -1,7 +1,8 @@
 # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
 #
 #   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008 Free Software Foundation, Inc.
+#                 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
+#                 Inc.
 #   Written by Gordon Matzigkeit, 1996
 #
 # This file is free software; the Free Software Foundation gives
@@ -10,7 +11,8 @@
 
 m4_define([_LT_COPYING], [dnl
 #   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008 Free Software Foundation, Inc.
+#                 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
+#                 Inc.
 #   Written by Gordon Matzigkeit, 1996
 #
 #   This file is part of GNU Libtool.
@@ -37,7 +39,7 @@ m4_define([_LT_COPYING], [dnl
 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 ])
 
-# serial 56 LT_INIT
+# serial 57 LT_INIT
 
 
 # LT_PREREQ(VERSION)
@@ -66,6 +68,7 @@ esac
 # ------------------
 AC_DEFUN([LT_INIT],
 [AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT
+AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
 AC_BEFORE([$0], [LT_LANG])dnl
 AC_BEFORE([$0], [LT_OUTPUT])dnl
 AC_BEFORE([$0], [LTDL_INIT])dnl
@@ -82,6 +85,8 @@ AC_REQUIRE([LTVERSION_VERSION])dnl
 AC_REQUIRE([LTOBSOLETE_VERSION])dnl
 m4_require([_LT_PROG_LTMAIN])dnl
 
+_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}])
+
 dnl Parse OPTIONS
 _LT_SET_OPTIONS([$0], [$1])
 
@@ -118,7 +123,7 @@ m4_defun([_LT_CC_BASENAME],
     *) break;;
   esac
 done
-cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
 ])
 
 
@@ -138,6 +143,9 @@ m4_defun([_LT_FILEUTILS_DEFAULTS],
 m4_defun([_LT_SETUP],
 [AC_REQUIRE([AC_CANONICAL_HOST])dnl
 AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl
+AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl
+
 _LT_DECL([], [host_alias], [0], [The host system])dnl
 _LT_DECL([], [host], [0])dnl
 _LT_DECL([], [host_os], [0])dnl
@@ -160,10 +168,13 @@ _LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl
 dnl
 m4_require([_LT_FILEUTILS_DEFAULTS])dnl
 m4_require([_LT_CHECK_SHELL_FEATURES])dnl
+m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl
 m4_require([_LT_CMD_RELOAD])dnl
 m4_require([_LT_CHECK_MAGIC_METHOD])dnl
+m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl
 m4_require([_LT_CMD_OLD_ARCHIVE])dnl
 m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
+m4_require([_LT_WITH_SYSROOT])dnl
 
 _LT_CONFIG_LIBTOOL_INIT([
 # See if we are running on zsh, and set the options which allow our
@@ -179,7 +190,6 @@ fi
 _LT_CHECK_OBJDIR
 
 m4_require([_LT_TAG_COMPILER])dnl
-_LT_PROG_ECHO_BACKSLASH
 
 case $host_os in
 aix3*)
@@ -193,23 +203,6 @@ aix3*)
   ;;
 esac
 
-# Sed substitution that helps us do robust quoting.  It backslashifies
-# metacharacters that are still active within double-quoted strings.
-sed_quote_subst='s/\([["`$\\]]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\([["`\\]]\)/\\\1/g'
-
-# Sed substitution to delay expansion of an escaped shell variable in a
-# double_quote_subst'ed string.
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
-
-# Sed substitution to delay expansion of an escaped single quote.
-delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
-
-# Sed substitution to avoid accidental globbing in evaled expressions
-no_glob_subst='s/\*/\\\*/g'
-
 # Global variables:
 ofile=libtool
 can_build_shared=yes
@@ -250,6 +243,28 @@ _LT_CONFIG_COMMANDS
 ])# _LT_SETUP
 
 
+# _LT_PREPARE_SED_QUOTE_VARS
+# --------------------------
+# Define a few sed substitution that help us do robust quoting.
+m4_defun([_LT_PREPARE_SED_QUOTE_VARS],
+[# Backslashify metacharacters that are still active within
+# double-quoted strings.
+sed_quote_subst='s/\([["`$\\]]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\([["`\\]]\)/\\\1/g'
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to delay expansion of an escaped single quote.
+delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+])
+
 # _LT_PROG_LTMAIN
 # ---------------
 # Note that this code is called both from `configure', and `config.status'
@@ -408,7 +423,7 @@ m4_define([_lt_decl_all_varnames],
 # declaration there will have the same value as in `configure'.  VARNAME
 # must have a single quote delimited value for this to work.
 m4_define([_LT_CONFIG_STATUS_DECLARE],
-[$1='`$ECHO "X$][$1" | $Xsed -e "$delay_single_quote_subst"`'])
+[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`'])
 
 
 # _LT_CONFIG_STATUS_DECLARATIONS
@@ -418,7 +433,7 @@ m4_define([_LT_CONFIG_STATUS_DECLARE],
 # embedded single quotes properly.  In configure, this macro expands
 # each variable declared with _LT_DECL (and _LT_TAGDECL) into:
 #
-#    <var>='`$ECHO "X$<var>" | $Xsed -e "$delay_single_quote_subst"`'
+#    <var>='`$ECHO "$<var>" | $SED "$delay_single_quote_subst"`'
 m4_defun([_LT_CONFIG_STATUS_DECLARATIONS],
 [m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames),
     [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])])
@@ -517,12 +532,20 @@ LTCC='$LTCC'
 LTCFLAGS='$LTCFLAGS'
 compiler='$compiler_DEFAULT'
 
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+  eval 'cat <<_LTECHO_EOF
+\$[]1
+_LTECHO_EOF'
+}
+
 # Quote evaled strings.
 for var in lt_decl_all_varnames([[ \
 ]], lt_decl_quote_varnames); do
-    case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
+    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
     *[[\\\\\\\`\\"\\\$]]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
       ;;
     *)
       eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
@@ -533,9 +556,9 @@ done
 # Double-quote double-evaled strings.
 for var in lt_decl_all_varnames([[ \
 ]], lt_decl_dquote_varnames); do
-    case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
+    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
     *[[\\\\\\\`\\"\\\$]]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
       ;;
     *)
       eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
@@ -543,16 +566,38 @@ for var in lt_decl_all_varnames([[ \
     esac
 done
 
-# Fix-up fallback echo if it was mangled by the above quoting rules.
-case \$lt_ECHO in
-*'\\\[$]0 --fallback-echo"')dnl "
-  lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\[$]0 --fallback-echo"\[$]/\[$]0 --fallback-echo"/'\`
-  ;;
-esac
-
 _LT_OUTPUT_LIBTOOL_INIT
 ])
 
+# _LT_GENERATED_FILE_INIT(FILE, [COMMENT])
+# ------------------------------------
+# Generate a child script FILE with all initialization necessary to
+# reuse the environment learned by the parent script, and make the
+# file executable.  If COMMENT is supplied, it is inserted after the
+# `#!' sequence but before initialization text begins.  After this
+# macro, additional text can be appended to FILE to form the body of
+# the child script.  The macro ends with non-zero status if the
+# file could not be fully written (such as if the disk is full).
+m4_ifdef([AS_INIT_GENERATED],
+[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])],
+[m4_defun([_LT_GENERATED_FILE_INIT],
+[m4_require([AS_PREPARE])]dnl
+[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl
+[lt_write_fail=0
+cat >$1 <<_ASEOF || lt_write_fail=1
+#! $SHELL
+# Generated by $as_me.
+$2
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$1 <<\_ASEOF || lt_write_fail=1
+AS_SHELL_SANITIZE
+_AS_PREPARE
+exec AS_MESSAGE_FD>&1
+_ASEOF
+test $lt_write_fail = 0 && chmod +x $1[]dnl
+m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT
 
 # LT_OUTPUT
 # ---------
@@ -562,20 +607,11 @@ _LT_OUTPUT_LIBTOOL_INIT
 AC_DEFUN([LT_OUTPUT],
 [: ${CONFIG_LT=./config.lt}
 AC_MSG_NOTICE([creating $CONFIG_LT])
-cat >"$CONFIG_LT" <<_LTEOF
-#! $SHELL
-# Generated by $as_me.
-# Run this file to recreate a libtool stub with the current configuration.
-
-lt_cl_silent=false
-SHELL=\${CONFIG_SHELL-$SHELL}
-_LTEOF
+_LT_GENERATED_FILE_INIT(["$CONFIG_LT"],
+[# Run this file to recreate a libtool stub with the current configuration.])
 
 cat >>"$CONFIG_LT" <<\_LTEOF
-AS_SHELL_SANITIZE
-_AS_PREPARE
-
-exec AS_MESSAGE_FD>&1
+lt_cl_silent=false
 exec AS_MESSAGE_LOG_FD>>config.log
 {
   echo
@@ -601,7 +637,7 @@ m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl
 m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION])
 configured by $[0], generated by m4_PACKAGE_STRING.
 
-Copyright (C) 2008 Free Software Foundation, Inc.
+Copyright (C) 2010 Free Software Foundation, Inc.
 This config.lt script is free software; the Free Software Foundation
 gives unlimited permision to copy, distribute and modify it."
 
@@ -646,15 +682,13 @@ chmod +x "$CONFIG_LT"
 # appending to config.log, which fails on DOS, as config.log is still kept
 # open by configure.  Here we exec the FD to /dev/null, effectively closing
 # config.log, so it can be properly (re)opened and appended to by config.lt.
-if test "$no_create" != yes; then
-  lt_cl_success=:
-  test "$silent" = yes &&
-    lt_config_lt_args="$lt_config_lt_args --quiet"
-  exec AS_MESSAGE_LOG_FD>/dev/null
-  $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
-  exec AS_MESSAGE_LOG_FD>>config.log
-  $lt_cl_success || AS_EXIT(1)
-fi
+lt_cl_success=:
+test "$silent" = yes &&
+  lt_config_lt_args="$lt_config_lt_args --quiet"
+exec AS_MESSAGE_LOG_FD>/dev/null
+$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
+exec AS_MESSAGE_LOG_FD>>config.log
+$lt_cl_success || AS_EXIT(1)
 ])# LT_OUTPUT
 
 
@@ -717,15 +751,12 @@ _LT_EOF
   # if finds mixed CR/LF and LF-only lines.  Since sed operates in
   # text mode, it properly converts lines to CR/LF.  This bash problem
   # is reportedly fixed, but why not run on old versions too?
-  sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \
-    || (rm -f "$cfgfile"; exit 1)
-
-  _LT_PROG_XSI_SHELLFNS
+  sed '$q' "$ltmain" >> "$cfgfile" \
+     || (rm -f "$cfgfile"; exit 1)
 
-  sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \
-    || (rm -f "$cfgfile"; exit 1)
+  _LT_PROG_REPLACE_SHELLFNS
 
-  mv -f "$cfgfile" "$ofile" ||
+   mv -f "$cfgfile" "$ofile" ||
     (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
   chmod +x "$ofile"
 ],
@@ -831,11 +862,13 @@ AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)])
 AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)])
 AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)])
 AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)])
+AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)])
 dnl aclocal-1.4 backwards compatibility:
 dnl AC_DEFUN([AC_LIBTOOL_CXX], [])
 dnl AC_DEFUN([AC_LIBTOOL_F77], [])
 dnl AC_DEFUN([AC_LIBTOOL_FC], [])
 dnl AC_DEFUN([AC_LIBTOOL_GCJ], [])
+dnl AC_DEFUN([AC_LIBTOOL_RC], [])
 
 
 # _LT_TAG_COMPILER
@@ -940,6 +973,31 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
 	[lt_cv_ld_exported_symbols_list=no])
 	LDFLAGS="$save_LDFLAGS"
     ])
+    AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load],
+      [lt_cv_ld_force_load=no
+      cat > conftest.c << _LT_EOF
+int forced_loaded() { return 2;}
+_LT_EOF
+      echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD
+      $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD
+      echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD
+      $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
+      echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD
+      $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD
+      cat > conftest.c << _LT_EOF
+int main() { return 0;}
+_LT_EOF
+      echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD
+      $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
+      _lt_result=$?
+      if test -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; then
+	lt_cv_ld_force_load=yes
+      else
+	cat conftest.err >&AS_MESSAGE_LOG_FD
+      fi
+        rm -f conftest.err libconftest.a conftest conftest.c
+        rm -rf conftest.dSYM
+    ])
     case $host_os in
     rhapsody* | darwin1.[[012]])
       _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
@@ -967,7 +1025,7 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
     else
       _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
     fi
-    if test "$DSYMUTIL" != ":"; then
+    if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then
       _lt_dsymutil='~$DSYMUTIL $lib || :'
     else
       _lt_dsymutil=
@@ -987,7 +1045,11 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES],
   _LT_TAGVAR(hardcode_direct, $1)=no
   _LT_TAGVAR(hardcode_automatic, $1)=yes
   _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-  _LT_TAGVAR(whole_archive_flag_spec, $1)=''
+  if test "$lt_cv_ld_force_load" = "yes"; then
+    _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
+  else
+    _LT_TAGVAR(whole_archive_flag_spec, $1)=''
+  fi
   _LT_TAGVAR(link_all_deplibs, $1)=yes
   _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined"
   case $cc_basename in
@@ -995,7 +1057,7 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES],
      *) _lt_dar_can_shared=$GCC ;;
   esac
   if test "$_lt_dar_can_shared" = "yes"; then
-    output_verbose_link_cmd=echo
+    output_verbose_link_cmd=func_echo_all
     _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
     _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
     _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
@@ -1011,203 +1073,142 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES],
   fi
 ])
 
-# _LT_SYS_MODULE_PATH_AIX
-# -----------------------
+# _LT_SYS_MODULE_PATH_AIX([TAGNAME])
+# ----------------------------------
 # Links a minimal program and checks the executable
 # for the system default hardcoded library path. In most cases,
 # this is /usr/lib:/lib, but when the MPI compilers are used
 # the location of the communication and MPI libs are included too.
 # If we don't find anything, use the default library path according
 # to the aix ld manual.
+# Store the results from the different compilers for each TAGNAME.
+# Allow to override them for all tags through lt_cv_aix_libpath.
 m4_defun([_LT_SYS_MODULE_PATH_AIX],
 [m4_require([_LT_DECL_SED])dnl
-AC_LINK_IFELSE(AC_LANG_PROGRAM,[
-lt_aix_libpath_sed='
-    /Import File Strings/,/^$/ {
-	/^0/ {
-	    s/^0  *\(.*\)$/\1/
-	    p
-	}
-    }'
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then
-  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-fi],[])
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+if test "${lt_cv_aix_libpath+set}" = set; then
+  aix_libpath=$lt_cv_aix_libpath
+else
+  AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])],
+  [AC_LINK_IFELSE([AC_LANG_PROGRAM],[
+  lt_aix_libpath_sed='[
+      /Import File Strings/,/^$/ {
+	  /^0/ {
+	      s/^0  *\([^ ]*\) *$/\1/
+	      p
+	  }
+      }]'
+  _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  # Check for a 64-bit object if we didn't find anything.
+  if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
+    _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  fi],[])
+  if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
+    _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib"
+  fi
+  ])
+  aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])
+fi
 ])# _LT_SYS_MODULE_PATH_AIX
 
 
 # _LT_SHELL_INIT(ARG)
 # -------------------
 m4_define([_LT_SHELL_INIT],
-[ifdef([AC_DIVERSION_NOTICE],
-	     [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)],
-	 [AC_DIVERT_PUSH(NOTICE)])
-$1
-AC_DIVERT_POP
-])# _LT_SHELL_INIT
+[m4_divert_text([M4SH-INIT], [$1
+])])# _LT_SHELL_INIT
+
 
 
 # _LT_PROG_ECHO_BACKSLASH
 # -----------------------
-# Add some code to the start of the generated configure script which
-# will find an echo command which doesn't interpret backslashes.
+# Find how we can fake an echo command that does not interpret backslash.
+# In particular, with Autoconf 2.60 or later we add some code to the start
+# of the generated configure script which will find a shell with a builtin
+# printf (which we can use as an echo command).
 m4_defun([_LT_PROG_ECHO_BACKSLASH],
-[_LT_SHELL_INIT([
-# Check that we are running under the correct shell.
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-case X$lt_ECHO in
-X*--fallback-echo)
-  # Remove one level of quotation (which was required for Make).
-  ECHO=`echo "$lt_ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','`
-  ;;
-esac
-
-ECHO=${lt_ECHO-echo}
-if test "X[$]1" = X--no-reexec; then
-  # Discard the --no-reexec flag, and continue.
-  shift
-elif test "X[$]1" = X--fallback-echo; then
-  # Avoid inline document here, it may be left over
-  :
-elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then
-  # Yippee, $ECHO works!
-  :
+[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+
+AC_MSG_CHECKING([how to print strings])
+# Test print first, because it will be a builtin if present.
+if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
+   test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
+  ECHO='print -r --'
+elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
+  ECHO='printf %s\n'
 else
-  # Restart under the correct shell.
-  exec $SHELL "[$]0" --no-reexec ${1+"[$]@"}
-fi
-
-if test "X[$]1" = X--fallback-echo; then
-  # used as fallback echo
-  shift
-  cat <<_LT_EOF
-[$]*
-_LT_EOF
-  exit 0
+  # Use this function as a fallback that always works.
+  func_fallback_echo ()
+  {
+    eval 'cat <<_LTECHO_EOF
+$[]1
+_LTECHO_EOF'
+  }
+  ECHO='func_fallback_echo'
 fi
 
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-if test -z "$lt_ECHO"; then
-  if test "X${echo_test_string+set}" != Xset; then
-    # find a string as large as possible, as long as the shell can cope with it
-    for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do
-      # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
-      if { echo_test_string=`eval $cmd`; } 2>/dev/null &&
-	 { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null
-      then
-        break
-      fi
-    done
-  fi
-
-  if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
-     echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
-     test "X$echo_testing_string" = "X$echo_test_string"; then
-    :
-  else
-    # The Solaris, AIX, and Digital Unix default echo programs unquote
-    # backslashes.  This makes it impossible to quote backslashes using
-    #   echo "$something" | sed 's/\\/\\\\/g'
-    #
-    # So, first we look for a working echo in the user's PATH.
-
-    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-    for dir in $PATH /usr/ucb; do
-      IFS="$lt_save_ifs"
-      if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
-         test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
-         echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
-         test "X$echo_testing_string" = "X$echo_test_string"; then
-        ECHO="$dir/echo"
-        break
-      fi
-    done
-    IFS="$lt_save_ifs"
-
-    if test "X$ECHO" = Xecho; then
-      # We didn't find a better echo, so look for alternatives.
-      if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' &&
-         echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` &&
-         test "X$echo_testing_string" = "X$echo_test_string"; then
-        # This shell has a builtin print -r that does the trick.
-        ECHO='print -r'
-      elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } &&
-	   test "X$CONFIG_SHELL" != X/bin/ksh; then
-        # If we have ksh, try running configure again with it.
-        ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
-        export ORIGINAL_CONFIG_SHELL
-        CONFIG_SHELL=/bin/ksh
-        export CONFIG_SHELL
-        exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"}
-      else
-        # Try using printf.
-        ECHO='printf %s\n'
-        if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
-	   echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
-	   test "X$echo_testing_string" = "X$echo_test_string"; then
-	  # Cool, printf works
-	  :
-        elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
-	     test "X$echo_testing_string" = 'X\t' &&
-	     echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
-	     test "X$echo_testing_string" = "X$echo_test_string"; then
-	  CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
-	  export CONFIG_SHELL
-	  SHELL="$CONFIG_SHELL"
-	  export SHELL
-	  ECHO="$CONFIG_SHELL [$]0 --fallback-echo"
-        elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
-	     test "X$echo_testing_string" = 'X\t' &&
-	     echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
-	     test "X$echo_testing_string" = "X$echo_test_string"; then
-	  ECHO="$CONFIG_SHELL [$]0 --fallback-echo"
-        else
-	  # maybe with a smaller string...
-	  prev=:
-
-	  for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do
-	    if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null
-	    then
-	      break
-	    fi
-	    prev="$cmd"
-	  done
+# func_echo_all arg...
+# Invoke $ECHO with all args, space-separated.
+func_echo_all ()
+{
+    $ECHO "$*" 
+}
 
-	  if test "$prev" != 'sed 50q "[$]0"'; then
-	    echo_test_string=`eval $prev`
-	    export echo_test_string
-	    exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"}
-	  else
-	    # Oops.  We lost completely, so just stick with echo.
-	    ECHO=echo
-	  fi
-        fi
-      fi
-    fi
-  fi
-fi
+case "$ECHO" in
+  printf*) AC_MSG_RESULT([printf]) ;;
+  print*) AC_MSG_RESULT([print -r]) ;;
+  *) AC_MSG_RESULT([cat]) ;;
+esac
 
-# Copy echo and quote the copy suitably for passing to libtool from
-# the Makefile, instead of quoting the original, which is used later.
-lt_ECHO=$ECHO
-if test "X$lt_ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then
-   lt_ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo"
-fi
+m4_ifdef([_AS_DETECT_SUGGESTED],
+[_AS_DETECT_SUGGESTED([
+  test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || (
+    ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+    ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
+    ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+    PATH=/empty FPATH=/empty; export PATH FPATH
+    test "X`printf %s $ECHO`" = "X$ECHO" \
+      || test "X`print -r -- $ECHO`" = "X$ECHO" )])])
 
-AC_SUBST(lt_ECHO)
-])
 _LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts])
-_LT_DECL([], [ECHO], [1],
-    [An echo program that does not interpret backslashes])
+_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes])
 ])# _LT_PROG_ECHO_BACKSLASH
 
 
+# _LT_WITH_SYSROOT
+# ----------------
+AC_DEFUN([_LT_WITH_SYSROOT],
+[AC_MSG_CHECKING([for sysroot])
+AC_ARG_WITH([sysroot],
+[  --with-sysroot[=DIR] Search for dependent libraries within DIR
+                        (or the compiler's sysroot if not specified).],
+[], [with_sysroot=no])
+
+dnl lt_sysroot will always be passed unquoted.  We quote it here
+dnl in case the user passed a directory name.
+lt_sysroot=
+case ${with_sysroot} in #(
+ yes)
+   if test "$GCC" = yes; then
+     lt_sysroot=`$CC --print-sysroot 2>/dev/null`
+   fi
+   ;; #(
+ /*)
+   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
+   ;; #(
+ no|'')
+   ;; #(
+ *)
+   AC_MSG_RESULT([${with_sysroot}])
+   AC_MSG_ERROR([The sysroot must be an absolute path.])
+   ;;
+esac
+
+ AC_MSG_RESULT([${lt_sysroot:-no}])
+_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl
+[dependent libraries, and in which our libraries should be installed.])])
+
 # _LT_ENABLE_LOCK
 # ---------------
 m4_defun([_LT_ENABLE_LOCK],
@@ -1236,7 +1237,7 @@ ia64-*-hpux*)
   ;;
 *-*-irix6*)
   # Find out which ABI we are using.
-  echo '[#]line __oline__ "configure"' > conftest.$ac_ext
+  echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
   if AC_TRY_EVAL(ac_compile); then
     if test "$lt_cv_prog_gnu_ld" = yes; then
       case `/usr/bin/file conftest.$ac_objext` in
@@ -1354,14 +1355,47 @@ need_locks="$enable_libtool_lock"
 ])# _LT_ENABLE_LOCK
 
 
+# _LT_PROG_AR
+# -----------
+m4_defun([_LT_PROG_AR],
+[AC_CHECK_TOOLS(AR, [ar], false)
+: ${AR=ar}
+: ${AR_FLAGS=cru}
+_LT_DECL([], [AR], [1], [The archiver])
+_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive])
+
+AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file],
+  [lt_cv_ar_at_file=no
+   AC_COMPILE_IFELSE([AC_LANG_PROGRAM],
+     [echo conftest.$ac_objext > conftest.lst
+      lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD'
+      AC_TRY_EVAL([lt_ar_try])
+      if test "$ac_status" -eq 0; then
+	# Ensure the archiver fails upon bogus file names.
+	rm -f conftest.$ac_objext libconftest.a
+	AC_TRY_EVAL([lt_ar_try])
+	if test "$ac_status" -ne 0; then
+          lt_cv_ar_at_file=@
+        fi
+      fi
+      rm -f conftest.* libconftest.a
+     ])
+  ])
+
+if test "x$lt_cv_ar_at_file" = xno; then
+  archiver_list_spec=
+else
+  archiver_list_spec=$lt_cv_ar_at_file
+fi
+_LT_DECL([], [archiver_list_spec], [1],
+  [How to feed a file listing to the archiver])
+])# _LT_PROG_AR
+
+
 # _LT_CMD_OLD_ARCHIVE
 # -------------------
 m4_defun([_LT_CMD_OLD_ARCHIVE],
-[AC_CHECK_TOOL(AR, ar, false)
-test -z "$AR" && AR=ar
-test -z "$AR_FLAGS" && AR_FLAGS=cru
-_LT_DECL([], [AR], [1], [The archiver])
-_LT_DECL([], [AR_FLAGS], [1])
+[_LT_PROG_AR
 
 AC_CHECK_TOOL(STRIP, strip, :)
 test -z "$STRIP" && STRIP=:
@@ -1388,10 +1422,19 @@ if test -n "$RANLIB"; then
   esac
   old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
 fi
+
+case $host_os in
+  darwin*)
+    lock_old_archive_extraction=yes ;;
+  *)
+    lock_old_archive_extraction=no ;;
+esac
 _LT_DECL([], [old_postinstall_cmds], [2])
 _LT_DECL([], [old_postuninstall_cmds], [2])
 _LT_TAGDECL([], [old_archive_cmds], [2],
     [Commands used to build an old-style archive])
+_LT_DECL([], [lock_old_archive_extraction], [0],
+    [Whether to use a lock for old archive extraction])
 ])# _LT_CMD_OLD_ARCHIVE
 
 
@@ -1416,15 +1459,15 @@ AC_CACHE_CHECK([$1], [$2],
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&AS_MESSAGE_LOG_FD
-   echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+   echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
      $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
      if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
        $2=yes
@@ -1464,7 +1507,7 @@ AC_CACHE_CHECK([$1], [$2],
      if test -s conftest.err; then
        # Append any errors to the config.log.
        cat conftest.err 1>&AS_MESSAGE_LOG_FD
-       $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
+       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
        $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
        if diff conftest.exp conftest.er2 >/dev/null; then
          $2=yes
@@ -1527,6 +1570,11 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
     lt_cv_sys_max_cmd_len=8192;
     ;;
 
+  mint*)
+    # On MiNT this can take a long time and run out of memory.
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
   amigaos*)
     # On AmigaOS with pdksh, this test takes hours, literally.
     # So we just punt and use a minimum line length of 8192.
@@ -1591,8 +1639,8 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
       # If test is not a shell built-in, we'll probably end up computing a
       # maximum length that is only half of the actual maximum length, but
       # we can't tell.
-      while { test "X"`$SHELL [$]0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \
-	         = "XX$teststring$teststring"; } >/dev/null 2>&1 &&
+      while { test "X"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \
+	         = "X$teststring$teststring"; } >/dev/null 2>&1 &&
 	      test $i != 17 # 1/2 MB should be enough
       do
         i=`expr $i + 1`
@@ -1643,7 +1691,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-[#line __oline__ "configure"
+[#line $LINENO "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -1684,7 +1732,13 @@ else
 #  endif
 #endif
 
-void fnord() { int i=42;}
+/* When -fvisbility=hidden is used, assume the code has been annotated
+   correspondingly for the symbols needed.  */
+#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+int fnord () __attribute__((visibility("default")));
+#endif
+
+int fnord () { return 42; }
 int main ()
 {
   void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
@@ -1693,7 +1747,11 @@ int main ()
   if (self)
     {
       if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+      else
+        {
+	  if (dlsym( self,"_fnord"))  status = $lt_dlneed_uscore;
+          else puts (dlerror ());
+	}
       /* dlclose (self); */
     }
   else
@@ -1869,16 +1927,16 @@ AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&AS_MESSAGE_LOG_FD
-   echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+   echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
      $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
      if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
        _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
@@ -2037,6 +2095,7 @@ m4_require([_LT_DECL_EGREP])dnl
 m4_require([_LT_FILEUTILS_DEFAULTS])dnl
 m4_require([_LT_DECL_OBJDUMP])dnl
 m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_CHECK_SHELL_FEATURES])dnl
 AC_MSG_CHECKING([dynamic linker characteristics])
 m4_if([$1],
 	[], [
@@ -2045,16 +2104,23 @@ if test "$GCC" = yes; then
     darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
     *) lt_awk_arg="/^libraries:/" ;;
   esac
-  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-  if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then
+  case $host_os in
+    mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;;
+    *) lt_sed_strip_eq="s,=/,/,g" ;;
+  esac
+  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
+  case $lt_search_path_spec in
+  *\;*)
     # if the path contains ";" then we assume it to be the separator
     # otherwise default to the standard path separator (i.e. ":") - it is
     # assumed that no part of a normal pathname contains ";" but that should
     # okay in the real world where ";" in dirpaths is itself problematic.
-    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'`
-  else
-    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-  fi
+    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
+    ;;
+  *)
+    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
+    ;;
+  esac
   # Ok, now we have the path, separated by spaces, we can step through it
   # and add multilib dir if necessary.
   lt_tmp_lt_search_path_spec=
@@ -2067,7 +2133,7 @@ if test "$GCC" = yes; then
 	lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
     fi
   done
-  lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk '
+  lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
 BEGIN {RS=" "; FS="/|\n";} {
   lt_foo="";
   lt_count=0;
@@ -2087,7 +2153,13 @@ BEGIN {RS=" "; FS="/|\n";} {
   if (lt_foo != "") { lt_freq[[lt_foo]]++; }
   if (lt_freq[[lt_foo]] == 1) { print lt_foo; }
 }'`
-  sys_lib_search_path_spec=`$ECHO $lt_search_path_spec`
+  # AWK program above erroneously prepends '/' to C:/dos/paths
+  # for these hosts.
+  case $host_os in
+    mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
+      $SED 's,/\([[A-Za-z]]:\),\1,g'` ;;
+  esac
+  sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
 else
   sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
 fi])
@@ -2175,7 +2247,7 @@ amigaos*)
   m68k)
     library_names_spec='$libname.ixlibrary $libname.a'
     # Create ${libname}_ixlibrary.a entries in /sys/libs.
-    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
     ;;
   esac
   ;;
@@ -2206,8 +2278,9 @@ cygwin* | mingw* | pw32* | cegcc*)
   need_version=no
   need_lib_prefix=no
 
-  case $GCC,$host_os in
-  yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
+  case $GCC,$cc_basename in
+  yes,*)
+    # gcc
     library_names_spec='$libname.dll.a'
     # DLL is installed to $(libdir)/../bin by postinstall_cmds
     postinstall_cmds='base_file=`basename \${file}`~
@@ -2228,36 +2301,83 @@ cygwin* | mingw* | pw32* | cegcc*)
     cygwin*)
       # Cygwin DLLs use 'cyg' prefix rather than 'lib'
       soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+m4_if([$1], [],[
+      sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"])
       ;;
     mingw* | cegcc*)
       # MinGW DLLs use traditional 'lib' prefix
       soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-      if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then
-        # It is most probably a Windows format PATH printed by
-        # mingw gcc, but we are running on Cygwin. Gcc prints its search
-        # path with ; separators, and with drive letters. We can handle the
-        # drive letters (cygwin fileutils understands them), so leave them,
-        # especially as we might pass files found there to a mingw objdump,
-        # which wouldn't understand a cygwinified path. Ahh.
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-      else
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-      fi
       ;;
     pw32*)
       # pw32 DLLs use 'pw' prefix rather than 'lib'
       library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
       ;;
     esac
+    dynamic_linker='Win32 ld.exe'
+    ;;
+
+  *,cl*)
+    # Native MSVC
+    libname_spec='$name'
+    soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+    library_names_spec='${libname}.dll.lib'
+
+    case $build_os in
+    mingw*)
+      sys_lib_search_path_spec=
+      lt_save_ifs=$IFS
+      IFS=';'
+      for lt_path in $LIB
+      do
+        IFS=$lt_save_ifs
+        # Let DOS variable expansion print the short 8.3 style file name.
+        lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
+        sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
+      done
+      IFS=$lt_save_ifs
+      # Convert to MSYS style.
+      sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'`
+      ;;
+    cygwin*)
+      # Convert to unix form, then to dos form, then back to unix form
+      # but this time dos style (no spaces!) so that the unix form looks
+      # like /cygdrive/c/PROGRA~1:/cygdr...
+      sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
+      sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
+      sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+      ;;
+    *)
+      sys_lib_search_path_spec="$LIB"
+      if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then
+        # It is most probably a Windows format PATH.
+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+      else
+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+      fi
+      # FIXME: find the short name or the path components, as spaces are
+      # common. (e.g. "Program Files" -> "PROGRA~1")
+      ;;
+    esac
+
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $RM \$dlpath'
+    shlibpath_overrides_runpath=yes
+    dynamic_linker='Win32 link.exe'
     ;;
 
   *)
+    # Assume MSVC wrapper
     library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    dynamic_linker='Win32 ld.exe'
     ;;
   esac
-  dynamic_linker='Win32 ld.exe'
   # FIXME: first we should search . and the directory the executable is in
   shlibpath_var=PATH
   ;;
@@ -2344,6 +2464,19 @@ gnu*)
   hardcode_into_libs=yes
   ;;
 
+haiku*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  dynamic_linker="$host_os runtime_loader"
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
+  hardcode_into_libs=yes
+  ;;
+
 hpux9* | hpux10* | hpux11*)
   # Give a soname corresponding to the major version so that dld.sl refuses to
   # link against other versions.
@@ -2386,8 +2519,10 @@ hpux9* | hpux10* | hpux11*)
     soname_spec='${libname}${release}${shared_ext}$major'
     ;;
   esac
-  # HP-UX runs *really* slowly unless shared libraries are mode 555.
+  # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
   postinstall_cmds='chmod 555 $lib'
+  # or fails outright, so override atomically:
+  install_override_mode=555
   ;;
 
 interix[[3-9]]*)
@@ -2454,16 +2589,21 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu)
   finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=no
+
   # Some binutils ld are patched to set DT_RUNPATH
-  save_LDFLAGS=$LDFLAGS
-  save_libdir=$libdir
-  eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \
-       LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\""
-  AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
-    [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null],
-       [shlibpath_overrides_runpath=yes])])
-  LDFLAGS=$save_LDFLAGS
-  libdir=$save_libdir
+  AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath],
+    [lt_cv_shlibpath_overrides_runpath=no
+    save_LDFLAGS=$LDFLAGS
+    save_libdir=$libdir
+    eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \
+	 LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\""
+    AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
+      [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null],
+	 [lt_cv_shlibpath_overrides_runpath=yes])])
+    LDFLAGS=$save_LDFLAGS
+    libdir=$save_libdir
+    ])
+  shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
 
   # This implies no fast_install, which is unacceptable.
   # Some rework will be needed to allow for fast_install
@@ -2472,7 +2612,7 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu)
 
   # Append ld.so.conf contents to the search path
   if test -f /etc/ld.so.conf; then
-    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
     sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
   fi
 
@@ -2485,18 +2625,6 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu)
   dynamic_linker='GNU/Linux ld.so'
   ;;
 
-netbsdelf*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='NetBSD ld.elf_so'
-  ;;
-
 netbsd*)
   version_type=sunos
   need_lib_prefix=no
@@ -2717,6 +2845,8 @@ _LT_DECL([], [library_names_spec], [1],
     The last name is the one that the linker finds with -lNAME]])
 _LT_DECL([], [soname_spec], [1],
     [[The coded name of the library, if different from the real name]])
+_LT_DECL([], [install_override_mode], [1],
+    [Permission mode override for installation of shared libraries])
 _LT_DECL([], [postinstall_cmds], [2],
     [Command to use after installation of a shared archive])
 _LT_DECL([], [postuninstall_cmds], [2],
@@ -2829,6 +2959,7 @@ AC_REQUIRE([AC_CANONICAL_HOST])dnl
 AC_REQUIRE([AC_CANONICAL_BUILD])dnl
 m4_require([_LT_DECL_SED])dnl
 m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_PROG_ECHO_BACKSLASH])dnl
 
 AC_ARG_WITH([gnu-ld],
     [AS_HELP_STRING([--with-gnu-ld],
@@ -2950,6 +3081,11 @@ case $reload_flag in
 esac
 reload_cmds='$LD$reload_flag -o $output$reload_objs'
 case $host_os in
+  cygwin* | mingw* | pw32* | cegcc*)
+    if test "$GCC" != yes; then
+      reload_cmds=false
+    fi
+    ;;
   darwin*)
     if test "$GCC" = yes; then
       reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
@@ -2958,8 +3094,8 @@ case $host_os in
     fi
     ;;
 esac
-_LT_DECL([], [reload_flag], [1], [How to create reloadable object files])dnl
-_LT_DECL([], [reload_cmds], [2])dnl
+_LT_TAGDECL([], [reload_flag], [1], [How to create reloadable object files])dnl
+_LT_TAGDECL([], [reload_cmds], [2])dnl
 ])# _LT_CMD_RELOAD
 
 
@@ -3011,16 +3147,18 @@ mingw* | pw32*)
   # Base MSYS/MinGW do not provide the 'file' command needed by
   # func_win32_libid shell function, so use a weaker test based on 'objdump',
   # unless we find 'file', for example because we are cross-compiling.
-  if ( file / ) >/dev/null 2>&1; then
+  # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin.
+  if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then
     lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
     lt_cv_file_magic_cmd='func_win32_libid'
   else
-    lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
+    # Keep this pattern in sync with the one in func_win32_libid.
+    lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
     lt_cv_file_magic_cmd='$OBJDUMP -f'
   fi
   ;;
 
-cegcc)
+cegcc*)
   # use the weaker test based on 'objdump'. See mingw*.
   lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
   lt_cv_file_magic_cmd='$OBJDUMP -f'
@@ -3050,6 +3188,10 @@ gnu*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
+haiku*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
 hpux10.20* | hpux11*)
   lt_cv_file_magic_cmd=/usr/bin/file
   case $host_cpu in
@@ -3058,11 +3200,11 @@ hpux10.20* | hpux11*)
     lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
     ;;
   hppa*64*)
-    [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]']
+    [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]']
     lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
     ;;
   *)
-    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library'
+    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library'
     lt_cv_file_magic_test_file=/usr/lib/libc.sl
     ;;
   esac
@@ -3088,7 +3230,7 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-netbsd* | netbsdelf*-gnu)
+netbsd*)
   if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
     lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
   else
@@ -3162,6 +3304,21 @@ tpf*)
   ;;
 esac
 ])
+
+file_magic_glob=
+want_nocaseglob=no
+if test "$build" = "$host"; then
+  case $host_os in
+  mingw* | pw32*)
+    if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
+      want_nocaseglob=yes
+    else
+      file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"`
+    fi
+    ;;
+  esac
+fi
+
 file_magic_cmd=$lt_cv_file_magic_cmd
 deplibs_check_method=$lt_cv_deplibs_check_method
 test -z "$deplibs_check_method" && deplibs_check_method=unknown
@@ -3169,7 +3326,11 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
 _LT_DECL([], [deplibs_check_method], [1],
     [Method to check whether dependent libraries are shared objects])
 _LT_DECL([], [file_magic_cmd], [1],
-    [Command to use when deplibs_check_method == "file_magic"])
+    [Command to use when deplibs_check_method = "file_magic"])
+_LT_DECL([], [file_magic_glob], [1],
+    [How to find potential files when deplibs_check_method = "file_magic"])
+_LT_DECL([], [want_nocaseglob], [1],
+    [Find potential files using nocaseglob when deplibs_check_method = "file_magic"])
 ])# _LT_CHECK_MAGIC_METHOD
 
 
@@ -3226,7 +3387,19 @@ if test "$lt_cv_path_NM" != "no"; then
   NM="$lt_cv_path_NM"
 else
   # Didn't find any BSD compatible name lister, look for dumpbin.
-  AC_CHECK_TOOLS(DUMPBIN, ["dumpbin -symbols" "link -dump -symbols"], :)
+  if test -n "$DUMPBIN"; then :
+    # Let the user override the test.
+  else
+    AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :)
+    case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in
+    *COFF*)
+      DUMPBIN="$DUMPBIN -symbols"
+      ;;
+    *)
+      DUMPBIN=:
+      ;;
+    esac
+  fi
   AC_SUBST([DUMPBIN])
   if test "$DUMPBIN" != ":"; then
     NM="$DUMPBIN"
@@ -3239,13 +3412,13 @@ _LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl
 AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface],
   [lt_cv_nm_interface="BSD nm"
   echo "int some_variable = 0;" > conftest.$ac_ext
-  (eval echo "\"\$as_me:__oline__: $ac_compile\"" >&AS_MESSAGE_LOG_FD)
+  (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD)
   (eval "$ac_compile" 2>conftest.err)
   cat conftest.err >&AS_MESSAGE_LOG_FD
-  (eval echo "\"\$as_me:__oline__: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD)
+  (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD)
   (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
   cat conftest.err >&AS_MESSAGE_LOG_FD
-  (eval echo "\"\$as_me:__oline__: output\"" >&AS_MESSAGE_LOG_FD)
+  (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD)
   cat conftest.out >&AS_MESSAGE_LOG_FD
   if $GREP 'External.*some_variable' conftest.out > /dev/null; then
     lt_cv_nm_interface="MS dumpbin"
@@ -3260,6 +3433,67 @@ dnl aclocal-1.4 backwards compatibility:
 dnl AC_DEFUN([AM_PROG_NM], [])
 dnl AC_DEFUN([AC_PROG_NM], [])
 
+# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
+# --------------------------------
+# how to determine the name of the shared library
+# associated with a specific link library.
+#  -- PORTME fill in with the dynamic library characteristics
+m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB],
+[m4_require([_LT_DECL_EGREP])
+m4_require([_LT_DECL_OBJDUMP])
+m4_require([_LT_DECL_DLLTOOL])
+AC_CACHE_CHECK([how to associate runtime and link libraries],
+lt_cv_sharedlib_from_linklib_cmd,
+[lt_cv_sharedlib_from_linklib_cmd='unknown'
+
+case $host_os in
+cygwin* | mingw* | pw32* | cegcc*)
+  # two different shell functions defined in ltmain.sh
+  # decide which to use based on capabilities of $DLLTOOL
+  case `$DLLTOOL --help 2>&1` in
+  *--identify-strict*)
+    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
+    ;;
+  *)
+    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
+    ;;
+  esac
+  ;;
+*)
+  # fallback: assume linklib IS sharedlib
+  lt_cv_sharedlib_from_linklib_cmd="$ECHO"
+  ;;
+esac
+])
+sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
+test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
+
+_LT_DECL([], [sharedlib_from_linklib_cmd], [1],
+    [Command to associate shared and link libraries])
+])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
+
+
+# _LT_PATH_MANIFEST_TOOL
+# ----------------------
+# locate the manifest tool
+m4_defun([_LT_PATH_MANIFEST_TOOL],
+[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :)
+test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
+AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool],
+  [lt_cv_path_mainfest_tool=no
+  echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD
+  $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
+  cat conftest.err >&AS_MESSAGE_LOG_FD
+  if $GREP 'Manifest Tool' conftest.out > /dev/null; then
+    lt_cv_path_mainfest_tool=yes
+  fi
+  rm -f conftest*])
+if test "x$lt_cv_path_mainfest_tool" != xyes; then
+  MANIFEST_TOOL=:
+fi
+_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl
+])# _LT_PATH_MANIFEST_TOOL
+
 
 # LT_LIB_M
 # --------
@@ -3268,7 +3502,7 @@ AC_DEFUN([LT_LIB_M],
 [AC_REQUIRE([AC_CANONICAL_HOST])dnl
 LIBM=
 case $host in
-*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*)
+*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*)
   # These system don't have libm, or don't need it
   ;;
 *-ncr-sysv4.3*)
@@ -3296,7 +3530,12 @@ m4_defun([_LT_COMPILER_NO_RTTI],
 _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
 
 if test "$GCC" = yes; then
-  _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
+  case $cc_basename in
+  nvcc*)
+    _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;;
+  *)
+    _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;;
+  esac
 
   _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
     lt_cv_prog_compiler_rtti_exceptions,
@@ -3313,6 +3552,7 @@ _LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1],
 m4_defun([_LT_CMD_GLOBAL_SYMBOLS],
 [AC_REQUIRE([AC_CANONICAL_HOST])dnl
 AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_PROG_AWK])dnl
 AC_REQUIRE([LT_PATH_NM])dnl
 AC_REQUIRE([LT_PATH_LD])dnl
 m4_require([_LT_DECL_SED])dnl
@@ -3380,8 +3620,8 @@ esac
 lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
 
 # Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p'"
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"lib\2\", (void *) \&\2},/p'"
+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p'"
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"lib\2\", (void *) \&\2},/p'"
 
 # Handle CRLF in mingw tool chain
 opt_cr=
@@ -3417,6 +3657,7 @@ for ac_symprfx in "" "_"; do
   else
     lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[	 ]]\($symcode$symcode*\)[[	 ]][[	 ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
   fi
+  lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
 
   # Check to see that the pipe works correctly.
   pipe_works=no
@@ -3438,7 +3679,7 @@ _LT_EOF
   if AC_TRY_EVAL(ac_compile); then
     # Now try to grab the symbols.
     nlist=conftest.nm
-    if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then
+    if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then
       # Try sorting and uniquifying the output.
       if sort "$nlist" | uniq > "$nlist"T; then
 	mv -f "$nlist"T "$nlist"
@@ -3450,6 +3691,18 @@ _LT_EOF
       if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
 	if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
 	  cat <<_LT_EOF > conftest.$ac_ext
+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
+#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
+/* DATA imports from DLLs on WIN32 con't be const, because runtime
+   relocations are performed -- see ld's documentation on pseudo-relocs.  */
+# define LT@&t at _DLSYM_CONST
+#elif defined(__osf__)
+/* This system does not cope well with relocations in const data.  */
+# define LT@&t at _DLSYM_CONST
+#else
+# define LT@&t at _DLSYM_CONST const
+#endif
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -3461,7 +3714,7 @@ _LT_EOF
 	  cat <<_LT_EOF >> conftest.$ac_ext
 
 /* The mapping between symbol names and symbols.  */
-const struct {
+LT@&t at _DLSYM_CONST struct {
   const char *name;
   void       *address;
 }
@@ -3487,15 +3740,15 @@ static const void *lt_preloaded_setup() {
 _LT_EOF
 	  # Now try linking the two files.
 	  mv conftest.$ac_objext conftstm.$ac_objext
-	  lt_save_LIBS="$LIBS"
-	  lt_save_CFLAGS="$CFLAGS"
+	  lt_globsym_save_LIBS=$LIBS
+	  lt_globsym_save_CFLAGS=$CFLAGS
 	  LIBS="conftstm.$ac_objext"
 	  CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
 	  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
 	    pipe_works=yes
 	  fi
-	  LIBS="$lt_save_LIBS"
-	  CFLAGS="$lt_save_CFLAGS"
+	  LIBS=$lt_globsym_save_LIBS
+	  CFLAGS=$lt_globsym_save_CFLAGS
 	else
 	  echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
 	fi
@@ -3528,6 +3781,13 @@ else
   AC_MSG_RESULT(ok)
 fi
 
+# Response file support.
+if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+  nm_file_list_spec='@'
+elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then
+  nm_file_list_spec='@'
+fi
+
 _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1],
     [Take the output of nm and produce a listing of raw symbols and C names])
 _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1],
@@ -3538,6 +3798,8 @@ _LT_DECL([global_symbol_to_c_name_address],
 _LT_DECL([global_symbol_to_c_name_address_lib_prefix],
     [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1],
     [Transform the output of nm in a C name address pair when lib prefix is needed])
+_LT_DECL([], [nm_file_list_spec], [1],
+    [Specify filename containing input files for $NM])
 ]) # _LT_CMD_GLOBAL_SYMBOLS
 
 
@@ -3549,7 +3811,6 @@ _LT_TAGVAR(lt_prog_compiler_wl, $1)=
 _LT_TAGVAR(lt_prog_compiler_pic, $1)=
 _LT_TAGVAR(lt_prog_compiler_static, $1)=
 
-AC_MSG_CHECKING([for $compiler option to produce PIC])
 m4_if([$1], [CXX], [
   # C++ specific cases for pic, static, wl, etc.
   if test "$GXX" = yes; then
@@ -3600,6 +3861,11 @@ m4_if([$1], [CXX], [
       # DJGPP does not support shared libraries at all
       _LT_TAGVAR(lt_prog_compiler_pic, $1)=
       ;;
+    haiku*)
+      # PIC is the default for Haiku.
+      # The "-static" flag exists, but is broken.
+      _LT_TAGVAR(lt_prog_compiler_static, $1)=
+      ;;
     interix[[3-9]]*)
       # Interix 3.x gcc -fpic/-fPIC options generate broken code.
       # Instead, we relocate shared libraries at runtime.
@@ -3649,6 +3915,12 @@ m4_if([$1], [CXX], [
 	  ;;
 	esac
 	;;
+      mingw* | cygwin* | os2* | pw32* | cegcc*)
+	# This hack is so that the source file can tell whether it is being
+	# built for inclusion in a dll (and should export symbols for example).
+	m4_if([$1], [GCJ], [],
+	  [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+	;;
       dgux*)
 	case $cc_basename in
 	  ec++*)
@@ -3738,8 +4010,8 @@ m4_if([$1], [CXX], [
 	    _LT_TAGVAR(lt_prog_compiler_pic, $1)=
 	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
 	    ;;
-	  xlc* | xlC*)
-	    # IBM XL 8.0 on PPC
+	  xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*)
+	    # IBM XL 8.0, 9.0 on PPC and BlueGene
 	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
 	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
 	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
@@ -3769,7 +4041,7 @@ m4_if([$1], [CXX], [
 	    ;;
 	esac
 	;;
-      netbsd* | netbsdelf*-gnu)
+      netbsd*)
 	;;
       *qnx* | *nto*)
         # QNX uses GNU C++, but need to define -shared option too, otherwise
@@ -3801,7 +4073,7 @@ m4_if([$1], [CXX], [
 	;;
       solaris*)
 	case $cc_basename in
-	  CC*)
+	  CC* | sunCC*)
 	    # Sun C++ 4.2, 5.x and Centerline C++
 	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
 	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
@@ -3905,6 +4177,12 @@ m4_if([$1], [CXX], [
       _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
       ;;
 
+    haiku*)
+      # PIC is the default for Haiku.
+      # The "-static" flag exists, but is broken.
+      _LT_TAGVAR(lt_prog_compiler_static, $1)=
+      ;;
+
     hpux*)
       # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
       # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
@@ -3947,6 +4225,13 @@ m4_if([$1], [CXX], [
       _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
       ;;
     esac
+
+    case $cc_basename in
+    nvcc*) # Cuda Compiler Driver 2.2
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker '
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Xcompiler -fPIC'
+      ;;
+    esac
   else
     # PORTME Check for flag to pass linker flags through the system compiler.
     case $host_os in
@@ -4010,7 +4295,13 @@ m4_if([$1], [CXX], [
 	_LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared'
 	_LT_TAGVAR(lt_prog_compiler_static, $1)='--static'
 	;;
-      pgcc* | pgf77* | pgf90* | pgf95*)
+      nagfor*)
+	# NAG Fortran compiler
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,'
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	;;
+      pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
         # Portland Group compilers (*not* the Pentium gcc compiler,
 	# which looks to be a dead project)
 	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
@@ -4022,25 +4313,25 @@ m4_if([$1], [CXX], [
         # All Alpha code is PIC.
         _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
         ;;
-      xl*)
-	# IBM XL C 8.0/Fortran 10.1 on PPC
+      xl* | bgxl* | bgf* | mpixl*)
+	# IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
 	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
 	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
 	_LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
 	;;
       *)
 	case `$CC -V 2>&1 | sed 5q` in
-	*Sun\ C*)
-	  # Sun C 5.9
+	*Sun\ F* | *Sun*Fortran*)
+	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
 	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
 	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	  _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	  _LT_TAGVAR(lt_prog_compiler_wl, $1)=''
 	  ;;
-	*Sun\ F*)
-	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
+	*Sun\ C*)
+	  # Sun C 5.9
 	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
 	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	  _LT_TAGVAR(lt_prog_compiler_wl, $1)=''
+	  _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
 	  ;;
 	esac
 	;;
@@ -4072,7 +4363,7 @@ m4_if([$1], [CXX], [
       _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
       _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
       case $cc_basename in
-      f77* | f90* | f95*)
+      f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
 	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';;
       *)
 	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';;
@@ -4129,9 +4420,11 @@ case $host_os in
     _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t at m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])"
     ;;
 esac
-AC_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)])
-_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1],
-	[How to pass a linker flag through the compiler])
+
+AC_CACHE_CHECK([for $compiler option to produce PIC],
+  [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)],
+  [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)])
+_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)
 
 #
 # Check to make sure the PIC flag actually works.
@@ -4150,6 +4443,8 @@ fi
 _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1],
 	[Additional compiler flags for building library objects])
 
+_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1],
+	[How to pass a linker flag through the compiler])
 #
 # Check to make sure the static flag actually works.
 #
@@ -4170,6 +4465,7 @@ _LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1],
 m4_defun([_LT_LINKER_SHLIBS],
 [AC_REQUIRE([LT_PATH_LD])dnl
 AC_REQUIRE([LT_PATH_NM])dnl
+m4_require([_LT_PATH_MANIFEST_TOOL])dnl
 m4_require([_LT_FILEUTILS_DEFAULTS])dnl
 m4_require([_LT_DECL_EGREP])dnl
 m4_require([_LT_DECL_SED])dnl
@@ -4178,30 +4474,35 @@ m4_require([_LT_TAG_COMPILER])dnl
 AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
 m4_if([$1], [CXX], [
   _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
   case $host_os in
   aix[[4-9]]*)
     # If we're using GNU nm, then we don't want the "-C" option.
     # -C means demangle to AIX nm, but means don't demangle with GNU nm
+    # Also, AIX nm treats weak defined symbols like other global defined
+    # symbols, whereas GNU nm marks them as "W".
     if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
-      _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+      _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
     else
       _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
     fi
     ;;
   pw32*)
     _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
-  ;;
+    ;;
   cygwin* | mingw* | cegcc*)
-    _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
-  ;;
-  linux* | k*bsd*-gnu)
-    _LT_TAGVAR(link_all_deplibs, $1)=no
-  ;;
+    case $cc_basename in
+    cl*) ;;
+    *)
+      _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
+      _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
+      ;;
+    esac
+    ;;
   *)
     _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  ;;
+    ;;
   esac
-  _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
 ], [
   runpath_var=
   _LT_TAGVAR(allow_undefined_flag, $1)=
@@ -4261,13 +4562,36 @@ dnl Note also adjust exclude_expsyms for C++ above.
   openbsd*)
     with_gnu_ld=no
     ;;
-  linux* | k*bsd*-gnu)
-    _LT_TAGVAR(link_all_deplibs, $1)=no
-    ;;
   esac
 
   _LT_TAGVAR(ld_shlibs, $1)=yes
+
+  # On some targets, GNU ld is compatible enough with the native linker
+  # that we're better off using the native interface for both.
+  lt_use_gnu_ld_interface=no
   if test "$with_gnu_ld" = yes; then
+    case $host_os in
+      aix*)
+	# The AIX port of GNU ld has always aspired to compatibility
+	# with the native linker.  However, as the warning in the GNU ld
+	# block says, versions before 2.19.5* couldn't really create working
+	# shared libraries, regardless of the interface used.
+	case `$LD -v 2>&1` in
+	  *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
+	  *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;;
+	  *\ \(GNU\ Binutils\)\ [[3-9]]*) ;;
+	  *)
+	    lt_use_gnu_ld_interface=yes
+	    ;;
+	esac
+	;;
+      *)
+	lt_use_gnu_ld_interface=yes
+	;;
+    esac
+  fi
+
+  if test "$lt_use_gnu_ld_interface" = yes; then
     # If archive_cmds runs LD, not CC, wlarc should be empty
     wlarc='${wl}'
 
@@ -4301,11 +4625,12 @@ dnl Note also adjust exclude_expsyms for C++ above.
 	_LT_TAGVAR(ld_shlibs, $1)=no
 	cat <<_LT_EOF 1>&2
 
-*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** Warning: the GNU linker, at least up to release 2.19, is reported
 *** to be unable to reliably create shared libraries on AIX.
 *** Therefore, libtool is disabling shared libraries support.  If you
-*** really care for shared libraries, you may want to modify your PATH
-*** so that a non-GNU linker is found, and then restart.
+*** really care for shared libraries, you may want to install binutils
+*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
+*** You will then need to restart the configuration process.
 
 _LT_EOF
       fi
@@ -4341,10 +4666,12 @@ _LT_EOF
       # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
       # as there is no search path for DLLs.
       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
       _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
       _LT_TAGVAR(always_export_symbols, $1)=no
       _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-      _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
+      _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
+      _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
 
       if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
         _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
@@ -4362,6 +4689,11 @@ _LT_EOF
       fi
       ;;
 
+    haiku*)
+      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+      _LT_TAGVAR(link_all_deplibs, $1)=yes
+      ;;
+
     interix[[3-9]]*)
       _LT_TAGVAR(hardcode_direct, $1)=no
       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
@@ -4387,15 +4719,16 @@ _LT_EOF
       if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
 	 && test "$tmp_diet" = no
       then
-	tmp_addflag=
+	tmp_addflag=' $pic_flag'
 	tmp_sharedflag='-shared'
 	case $cc_basename,$host_cpu in
         pgcc*)				# Portland Group C compiler
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
 	  tmp_addflag=' $pic_flag'
 	  ;;
-	pgf77* | pgf90* | pgf95*)	# Portland Group f77 and f90 compilers
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+	pgf77* | pgf90* | pgf95* | pgfortran*)
+					# Portland Group f77 and f90 compilers
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
 	  tmp_addflag=' $pic_flag -Mnomain' ;;
 	ecc*,ia64* | icc*,ia64*)	# Intel C compiler on ia64
 	  tmp_addflag=' -i_dynamic' ;;
@@ -4406,13 +4739,17 @@ _LT_EOF
 	lf95*)				# Lahey Fortran 8.1
 	  _LT_TAGVAR(whole_archive_flag_spec, $1)=
 	  tmp_sharedflag='--shared' ;;
-	xl[[cC]]*)			# IBM XL C 8.0 on PPC (deal with xlf below)
+	xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below)
 	  tmp_sharedflag='-qmkshrobj'
 	  tmp_addflag= ;;
+	nvcc*)	# Cuda Compiler Driver 2.2
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+	  _LT_TAGVAR(compiler_needs_object, $1)=yes
+	  ;;
 	esac
 	case `$CC -V 2>&1 | sed 5q` in
 	*Sun\ C*)			# Sun C 5.9
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
 	  _LT_TAGVAR(compiler_needs_object, $1)=yes
 	  tmp_sharedflag='-G' ;;
 	*Sun\ F*)			# Sun Fortran 8.3
@@ -4428,17 +4765,17 @@ _LT_EOF
         fi
 
 	case $cc_basename in
-	xlf*)
+	xlf* | bgf* | bgxlf* | mpixlf*)
 	  # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
 	  _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive'
 	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
 	  _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir'
-	  _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib'
+	  _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
 	  if test "x$supports_anon_versioning" = xyes; then
 	    _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
 	      cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
 	      echo "local: *; };" >> $output_objdir/$libname.ver~
-	      $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+	      $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
 	  fi
 	  ;;
 	esac
@@ -4447,13 +4784,13 @@ _LT_EOF
       fi
       ;;
 
-    netbsd* | netbsdelf*-gnu)
+    netbsd*)
       if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
 	_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
 	wlarc=
       else
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
       fi
       ;;
 
@@ -4471,8 +4808,8 @@ _LT_EOF
 
 _LT_EOF
       elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
       else
 	_LT_TAGVAR(ld_shlibs, $1)=no
       fi
@@ -4518,8 +4855,8 @@ _LT_EOF
 
     *)
       if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
       else
 	_LT_TAGVAR(ld_shlibs, $1)=no
       fi
@@ -4559,8 +4896,10 @@ _LT_EOF
       else
 	# If we're using GNU nm, then we don't want the "-C" option.
 	# -C means demangle to AIX nm, but means don't demangle with GNU nm
+	# Also, AIX nm treats weak defined symbols like other global
+	# defined symbols, whereas GNU nm marks them as "W".
 	if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
-	  _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+	  _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
 	else
 	  _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
 	fi
@@ -4622,7 +4961,6 @@ _LT_EOF
 	if test "$aix_use_runtimelinking" = yes; then
 	  shared_flag="$shared_flag "'${wl}-G'
 	fi
-	_LT_TAGVAR(link_all_deplibs, $1)=no
       else
 	# not using gcc
 	if test "$host_cpu" = ia64; then
@@ -4648,9 +4986,9 @@ _LT_EOF
 	_LT_TAGVAR(allow_undefined_flag, $1)='-berok'
         # Determine the default libpath from the value encoded in an
         # empty executable.
-        _LT_SYS_MODULE_PATH_AIX
+        _LT_SYS_MODULE_PATH_AIX([$1])
         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
       else
 	if test "$host_cpu" = ia64; then
 	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
@@ -4659,14 +4997,19 @@ _LT_EOF
 	else
 	 # Determine the default libpath from the value encoded in an
 	 # empty executable.
-	 _LT_SYS_MODULE_PATH_AIX
+	 _LT_SYS_MODULE_PATH_AIX([$1])
 	 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
 	  # Warning - without using the other run time loading flags,
 	  # -berok will link without error, but may produce a broken library.
 	  _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
 	  _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
-	  # Exported symbols can be pulled into shared objects from archives
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+	  if test "$with_gnu_ld" = yes; then
+	    # We only use this code for GNU lds that support --whole-archive.
+	    _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+	  else
+	    # Exported symbols can be pulled into shared objects from archives
+	    _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+	  fi
 	  _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
 	  # This is similar to how AIX traditionally builds its shared libraries.
 	  _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
@@ -4698,20 +5041,63 @@ _LT_EOF
       # Microsoft Visual C++.
       # hardcode_libdir_flag_spec is actually meaningless, as there is
       # no search path for DLLs.
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
-      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-      # Tell ltmain to make .lib files, not .a files.
-      libext=lib
-      # Tell ltmain to make .dll files, not .so files.
-      shrext_cmds=".dll"
-      # FIXME: Setting linknames here is a bad hack.
-      _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames='
-      # The linker will automatically build a .lib file if we build a DLL.
-      _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
-      # FIXME: Should let the user specify the lib program.
-      _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
-      _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`'
-      _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+      case $cc_basename in
+      cl*)
+	# Native MSVC
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+	_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+	_LT_TAGVAR(always_export_symbols, $1)=yes
+	_LT_TAGVAR(file_list_spec, $1)='@'
+	# Tell ltmain to make .lib files, not .a files.
+	libext=lib
+	# Tell ltmain to make .dll files, not .so files.
+	shrext_cmds=".dll"
+	# FIXME: Setting linknames here is a bad hack.
+	_LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
+	_LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	    sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
+	  else
+	    sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
+	  fi~
+	  $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+	  linknames='
+	# The linker will not automatically build a static lib if we build a DLL.
+	# _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
+	_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+	_LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
+	# Don't use ranlib
+	_LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
+	_LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
+	  lt_tool_outputfile="@TOOL_OUTPUT@"~
+	  case $lt_outputfile in
+	    *.exe|*.EXE) ;;
+	    *)
+	      lt_outputfile="$lt_outputfile.exe"
+	      lt_tool_outputfile="$lt_tool_outputfile.exe"
+	      ;;
+	  esac~
+	  if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
+	    $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+	    $RM "$lt_outputfile.manifest";
+	  fi'
+	;;
+      *)
+	# Assume MSVC wrapper
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+	_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+	# Tell ltmain to make .lib files, not .a files.
+	libext=lib
+	# Tell ltmain to make .dll files, not .so files.
+	shrext_cmds=".dll"
+	# FIXME: Setting linknames here is a bad hack.
+	_LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
+	# The linker will automatically build a .lib file if we build a DLL.
+	_LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
+	# FIXME: Should let the user specify the lib program.
+	_LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
+	_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+	;;
+      esac
       ;;
 
     darwin* | rhapsody*)
@@ -4749,7 +5135,7 @@ _LT_EOF
 
     # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
     freebsd* | dragonfly*)
-      _LT_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
       _LT_TAGVAR(hardcode_direct, $1)=yes
       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
@@ -4757,7 +5143,7 @@ _LT_EOF
 
     hpux9*)
       if test "$GCC" = yes; then
-	_LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+	_LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
       else
 	_LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
       fi
@@ -4772,8 +5158,8 @@ _LT_EOF
       ;;
 
     hpux10*)
-      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
       else
 	_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
       fi
@@ -4791,16 +5177,16 @@ _LT_EOF
       ;;
 
     hpux11*)
-      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
 	case $host_cpu in
 	hppa*64*)
 	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
 	  ;;
 	ia64*)
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
 	  ;;
 	*)
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
 	  ;;
 	esac
       else
@@ -4812,7 +5198,14 @@ _LT_EOF
 	  _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
 	  ;;
 	*)
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+	m4_if($1, [], [
+	  # Older versions of the 11.00 compiler do not understand -b yet
+	  # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
+	  _LT_LINKER_OPTION([if $CC understands -b],
+	    _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b],
+	    [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'],
+	    [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])],
+	  [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'])
 	  ;;
 	esac
       fi
@@ -4840,19 +5233,34 @@ _LT_EOF
 
     irix5* | irix6* | nonstopux*)
       if test "$GCC" = yes; then
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
 	# Try to use the -exported_symbol ld option, if it does not
 	# work, assume that -exports_file does not work either and
 	# implicitly export all symbols.
-        save_LDFLAGS="$LDFLAGS"
-        LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
-        AC_LINK_IFELSE(int foo(void) {},
-          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
-        )
-        LDFLAGS="$save_LDFLAGS"
+	# This should be the same for all languages, so no per-tag cache variable.
+	AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol],
+	  [lt_cv_irix_exported_symbol],
+	  [save_LDFLAGS="$LDFLAGS"
+	   LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
+	   AC_LINK_IFELSE(
+	     [AC_LANG_SOURCE(
+	        [AC_LANG_CASE([C], [[int foo (void) { return 0; }]],
+			      [C++], [[int foo (void) { return 0; }]],
+			      [Fortran 77], [[
+      subroutine foo
+      end]],
+			      [Fortran], [[
+      subroutine foo
+      end]])])],
+	      [lt_cv_irix_exported_symbol=yes],
+	      [lt_cv_irix_exported_symbol=no])
+           LDFLAGS="$save_LDFLAGS"])
+	if test "$lt_cv_irix_exported_symbol" = yes; then
+          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
+	fi
       else
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
       fi
       _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
@@ -4861,7 +5269,7 @@ _LT_EOF
       _LT_TAGVAR(link_all_deplibs, $1)=yes
       ;;
 
-    netbsd* | netbsdelf*-gnu)
+    netbsd*)
       if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
 	_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
       else
@@ -4914,17 +5322,17 @@ _LT_EOF
       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
       _LT_TAGVAR(hardcode_minus_L, $1)=yes
       _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-      _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+      _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
       _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
       ;;
 
     osf3*)
       if test "$GCC" = yes; then
 	_LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
       else
 	_LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
       fi
       _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
@@ -4934,13 +5342,13 @@ _LT_EOF
     osf4* | osf5*)	# as osf3* with the addition of -msym flag
       if test "$GCC" = yes; then
 	_LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
 	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
       else
 	_LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
 	_LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
-	$CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
+	$CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
 
 	# Both c and cxx compiler support -rpath directly
 	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
@@ -4953,9 +5361,9 @@ _LT_EOF
       _LT_TAGVAR(no_undefined_flag, $1)=' -z defs'
       if test "$GCC" = yes; then
 	wlarc='${wl}'
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
 	_LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-	  $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+	  $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
       else
 	case `$CC -V 2>&1` in
 	*"Compilers 5.0"*)
@@ -5131,36 +5539,38 @@ x|xyes)
       # Test whether the compiler implicitly links with -lc since on some
       # systems, -lgcc has to come before -lc. If gcc already passes -lc
       # to ld, don't add -lc before -lgcc.
-      AC_MSG_CHECKING([whether -lc should be explicitly linked in])
-      $RM conftest*
-      echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-      if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
-        soname=conftest
-        lib=conftest
-        libobjs=conftest.$ac_objext
-        deplibs=
-        wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1)
-	pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1)
-        compiler_flags=-v
-        linker_flags=-v
-        verstring=
-        output_objdir=.
-        libname=conftest
-        lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1)
-        _LT_TAGVAR(allow_undefined_flag, $1)=
-        if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1)
-        then
-	  _LT_TAGVAR(archive_cmds_need_lc, $1)=no
-        else
-	  _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
-        fi
-        _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
-      else
-        cat conftest.err 1>&5
-      fi
-      $RM conftest*
-      AC_MSG_RESULT([$_LT_TAGVAR(archive_cmds_need_lc, $1)])
+      AC_CACHE_CHECK([whether -lc should be explicitly linked in],
+	[lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1),
+	[$RM conftest*
+	echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+	if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
+	  soname=conftest
+	  lib=conftest
+	  libobjs=conftest.$ac_objext
+	  deplibs=
+	  wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1)
+	  pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1)
+	  compiler_flags=-v
+	  linker_flags=-v
+	  verstring=
+	  output_objdir=.
+	  libname=conftest
+	  lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1)
+	  _LT_TAGVAR(allow_undefined_flag, $1)=
+	  if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1)
+	  then
+	    lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+	  else
+	    lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+	  fi
+	  _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
+	else
+	  cat conftest.err 1>&5
+	fi
+	$RM conftest*
+	])
+      _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)
       ;;
     esac
   fi
@@ -5225,8 +5635,6 @@ _LT_TAGDECL([], [inherit_rpath], [0],
     to runtime path list])
 _LT_TAGDECL([], [link_all_deplibs], [0],
     [Whether libtool must link a program against all its dependency libraries])
-_LT_TAGDECL([], [fix_srcfile_path], [1],
-    [Fix the shell variable $srcfile for the compiler])
 _LT_TAGDECL([], [always_export_symbols], [0],
     [Set to "yes" if exported symbols are required])
 _LT_TAGDECL([], [export_symbols_cmds], [2],
@@ -5237,6 +5645,8 @@ _LT_TAGDECL([], [include_expsyms], [1],
     [Symbols that must always be exported])
 _LT_TAGDECL([], [prelink_cmds], [2],
     [Commands necessary for linking programs (against libraries) with templates])
+_LT_TAGDECL([], [postlink_cmds], [2],
+    [Commands necessary for finishing linking programs])
 _LT_TAGDECL([], [file_list_spec], [1],
     [Specify filename containing input files])
 dnl FIXME: Not yet implemented
@@ -5330,37 +5740,22 @@ CC="$lt_save_CC"
 ])# _LT_LANG_C_CONFIG
 
 
-# _LT_PROG_CXX
-# ------------
-# Since AC_PROG_CXX is broken, in that it returns g++ if there is no c++
-# compiler, we have our own version here.
-m4_defun([_LT_PROG_CXX],
-[
-pushdef([AC_MSG_ERROR], [_lt_caught_CXX_error=yes])
-AC_PROG_CXX
-if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
-    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
-    (test "X$CXX" != "Xg++"))) ; then
-  AC_PROG_CXXCPP
-else
-  _lt_caught_CXX_error=yes
-fi
-popdef([AC_MSG_ERROR])
-])# _LT_PROG_CXX
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([_LT_PROG_CXX], [])
-
-
 # _LT_LANG_CXX_CONFIG([TAG])
 # --------------------------
 # Ensure that the configuration variables for a C++ compiler are suitably
 # defined.  These variables are subsequently used by _LT_CONFIG to write
 # the compiler configuration to `libtool'.
 m4_defun([_LT_LANG_CXX_CONFIG],
-[AC_REQUIRE([_LT_PROG_CXX])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
 m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_PATH_MANIFEST_TOOL])dnl
+if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
+    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
+    (test "X$CXX" != "Xg++"))) ; then
+  AC_PROG_CXXCPP
+else
+  _lt_caught_CXX_error=yes
+fi
 
 AC_LANG_PUSH(C++)
 _LT_TAGVAR(archive_cmds_need_lc, $1)=no
@@ -5382,6 +5777,8 @@ _LT_TAGVAR(module_cmds, $1)=
 _LT_TAGVAR(module_expsym_cmds, $1)=
 _LT_TAGVAR(link_all_deplibs, $1)=unknown
 _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
 _LT_TAGVAR(no_undefined_flag, $1)=
 _LT_TAGVAR(whole_archive_flag_spec, $1)=
 _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
@@ -5413,6 +5810,7 @@ if test "$_lt_caught_CXX_error" != yes; then
 
   # Allow CC to be a program name with arguments.
   lt_save_CC=$CC
+  lt_save_CFLAGS=$CFLAGS
   lt_save_LD=$LD
   lt_save_GCC=$GCC
   GCC=$GXX
@@ -5430,6 +5828,7 @@ if test "$_lt_caught_CXX_error" != yes; then
   fi
   test -z "${LDCXX+set}" || LD=$LDCXX
   CC=${CXX-"c++"}
+  CFLAGS=$CXXFLAGS
   compiler=$CC
   _LT_TAGVAR(compiler, $1)=$CC
   _LT_CC_BASENAME([$compiler])
@@ -5451,8 +5850,8 @@ if test "$_lt_caught_CXX_error" != yes; then
       # Check if GNU C++ uses GNU ld as the underlying linker, since the
       # archiving commands below assume that GNU ld is being used.
       if test "$with_gnu_ld" = yes; then
-        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+        _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
 
         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
         _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
@@ -5484,7 +5883,7 @@ if test "$_lt_caught_CXX_error" != yes; then
       # Commands to make compiler produce verbose output that lists
       # what "hidden" libraries, object files and flags are used when
       # linking a shared library.
-      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
 
     else
       GXX=no
@@ -5593,10 +5992,10 @@ if test "$_lt_caught_CXX_error" != yes; then
           _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
           # Determine the default libpath from the value encoded in an empty
           # executable.
-          _LT_SYS_MODULE_PATH_AIX
+          _LT_SYS_MODULE_PATH_AIX([$1])
           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
 
-          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
         else
           if test "$host_cpu" = ia64; then
 	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
@@ -5605,14 +6004,19 @@ if test "$_lt_caught_CXX_error" != yes; then
           else
 	    # Determine the default libpath from the value encoded in an
 	    # empty executable.
-	    _LT_SYS_MODULE_PATH_AIX
+	    _LT_SYS_MODULE_PATH_AIX([$1])
 	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
 	    # Warning - without using the other run time loading flags,
 	    # -berok will link without error, but may produce a broken library.
 	    _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
 	    _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
-	    # Exported symbols can be pulled into shared objects from archives
-	    _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+	    if test "$with_gnu_ld" = yes; then
+	      # We only use this code for GNU lds that support --whole-archive.
+	      _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+	    else
+	      # Exported symbols can be pulled into shared objects from archives
+	      _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+	    fi
 	    _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
 	    # This is similar to how AIX traditionally builds its shared
 	    # libraries.
@@ -5642,28 +6046,75 @@ if test "$_lt_caught_CXX_error" != yes; then
         ;;
 
       cygwin* | mingw* | pw32* | cegcc*)
-        # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
-        # as there is no search path for DLLs.
-        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-        _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-        _LT_TAGVAR(always_export_symbols, $1)=no
-        _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-
-        if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
-          _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-          # If the export-symbols file already is a .def file (1st line
-          # is EXPORTS), use it as is; otherwise, prepend...
-          _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-	    cp $export_symbols $output_objdir/$soname.def;
-          else
-	    echo EXPORTS > $output_objdir/$soname.def;
-	    cat $export_symbols >> $output_objdir/$soname.def;
-          fi~
-          $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-        else
-          _LT_TAGVAR(ld_shlibs, $1)=no
-        fi
-        ;;
+	case $GXX,$cc_basename in
+	,cl* | no,cl*)
+	  # Native MSVC
+	  # hardcode_libdir_flag_spec is actually meaningless, as there is
+	  # no search path for DLLs.
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+	  _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+	  _LT_TAGVAR(always_export_symbols, $1)=yes
+	  _LT_TAGVAR(file_list_spec, $1)='@'
+	  # Tell ltmain to make .lib files, not .a files.
+	  libext=lib
+	  # Tell ltmain to make .dll files, not .so files.
+	  shrext_cmds=".dll"
+	  # FIXME: Setting linknames here is a bad hack.
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
+	  _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	      $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
+	    else
+	      $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
+	    fi~
+	    $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+	    linknames='
+	  # The linker will not automatically build a static lib if we build a DLL.
+	  # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
+	  _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+	  # Don't use ranlib
+	  _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
+	  _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
+	    lt_tool_outputfile="@TOOL_OUTPUT@"~
+	    case $lt_outputfile in
+	      *.exe|*.EXE) ;;
+	      *)
+		lt_outputfile="$lt_outputfile.exe"
+		lt_tool_outputfile="$lt_tool_outputfile.exe"
+		;;
+	    esac~
+	    func_to_tool_file "$lt_outputfile"~
+	    if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
+	      $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+	      $RM "$lt_outputfile.manifest";
+	    fi'
+	  ;;
+	*)
+	  # g++
+	  # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+	  # as there is no search path for DLLs.
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+	  _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
+	  _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+	  _LT_TAGVAR(always_export_symbols, $1)=no
+	  _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+
+	  if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+	    # If the export-symbols file already is a .def file (1st line
+	    # is EXPORTS), use it as is; otherwise, prepend...
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	      cp $export_symbols $output_objdir/$soname.def;
+	    else
+	      echo EXPORTS > $output_objdir/$soname.def;
+	      cat $export_symbols >> $output_objdir/$soname.def;
+	    fi~
+	    $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+	  else
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	  fi
+	  ;;
+	esac
+	;;
       darwin* | rhapsody*)
         _LT_DARWIN_LINKER_FEATURES($1)
 	;;
@@ -5705,6 +6156,11 @@ if test "$_lt_caught_CXX_error" != yes; then
       gnu*)
         ;;
 
+      haiku*)
+        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+        _LT_TAGVAR(link_all_deplibs, $1)=yes
+        ;;
+
       hpux9*)
         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
         _LT_TAGVAR(hardcode_libdir_separator, $1)=:
@@ -5729,11 +6185,11 @@ if test "$_lt_caught_CXX_error" != yes; then
             # explicitly linking system object files so we need to strip them
             # from the output so that they don't get included in the library
             # dependencies.
-            output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+            output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
             ;;
           *)
             if test "$GXX" = yes; then
-              _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+              _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
             else
               # FIXME: insert proper C++ library support
               _LT_TAGVAR(ld_shlibs, $1)=no
@@ -5794,7 +6250,7 @@ if test "$_lt_caught_CXX_error" != yes; then
 	    # explicitly linking system object files so we need to strip them
 	    # from the output so that they don't get included in the library
 	    # dependencies.
-	    output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+	    output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
 	    ;;
           *)
 	    if test "$GXX" = yes; then
@@ -5804,10 +6260,10 @@ if test "$_lt_caught_CXX_error" != yes; then
 	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
 	            ;;
 	          ia64*)
-	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
 	            ;;
 	          *)
-	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
 	            ;;
 	        esac
 	      fi
@@ -5837,7 +6293,7 @@ if test "$_lt_caught_CXX_error" != yes; then
         case $cc_basename in
           CC*)
 	    # SGI C++
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
 
 	    # Archives containing C++ object files must be created using
 	    # "CC -ar", where "CC" is the IRIX C++ compiler.  This is
@@ -5848,9 +6304,9 @@ if test "$_lt_caught_CXX_error" != yes; then
           *)
 	    if test "$GXX" = yes; then
 	      if test "$with_gnu_ld" = no; then
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
 	      else
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib'
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib'
 	      fi
 	    fi
 	    _LT_TAGVAR(link_all_deplibs, $1)=yes
@@ -5879,7 +6335,7 @@ if test "$_lt_caught_CXX_error" != yes; then
 	    # explicitly linking system object files so we need to strip them
 	    # from the output so that they don't get included in the library
 	    # dependencies.
-	    output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+	    output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
 
 	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
 	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
@@ -5916,26 +6372,26 @@ if test "$_lt_caught_CXX_error" != yes; then
           pgCC* | pgcpp*)
             # Portland Group C++ compiler
 	    case `$CC -V` in
-	    *pgCC\ [[1-5]]* | *pgcpp\ [[1-5]]*)
+	    *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*)
 	      _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~
 		rm -rf $tpldir~
 		$CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
-		compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"'
+		compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
 	      _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~
 		rm -rf $tpldir~
 		$CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
-		$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~
+		$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
 		$RANLIB $oldlib'
 	      _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~
 		rm -rf $tpldir~
 		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
-		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
 	      _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~
 		rm -rf $tpldir~
 		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
-		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
 	      ;;
-	    *) # Version 6 will use weak symbols
+	    *) # Version 6 and above use weak symbols
 	      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
 	      _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
 	      ;;
@@ -5943,7 +6399,7 @@ if test "$_lt_caught_CXX_error" != yes; then
 
 	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
 	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-	    _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+	    _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
             ;;
 	  cxx*)
 	    # Compaq C++
@@ -5962,9 +6418,9 @@ if test "$_lt_caught_CXX_error" != yes; then
 	    # explicitly linking system object files so we need to strip them
 	    # from the output so that they don't get included in the library
 	    # dependencies.
-	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed'
 	    ;;
-	  xl*)
+	  xl* | mpixl* | bgxl*)
 	    # IBM XL 8.0 on PPC, with GNU ld
 	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
 	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
@@ -5984,13 +6440,13 @@ if test "$_lt_caught_CXX_error" != yes; then
 	      _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
 	      _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols'
 	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-	      _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+	      _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
 	      _LT_TAGVAR(compiler_needs_object, $1)=yes
 
 	      # Not sure whether something based on
 	      # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
 	      # would be better.
-	      output_verbose_link_cmd='echo'
+	      output_verbose_link_cmd='func_echo_all'
 
 	      # Archives containing C++ object files must be created using
 	      # "CC -xar", where "CC" is the Sun C++ compiler.  This is
@@ -6059,7 +6515,7 @@ if test "$_lt_caught_CXX_error" != yes; then
 	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
 	    _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
 	  fi
-	  output_verbose_link_cmd=echo
+	  output_verbose_link_cmd=func_echo_all
 	else
 	  _LT_TAGVAR(ld_shlibs, $1)=no
 	fi
@@ -6094,15 +6550,15 @@ if test "$_lt_caught_CXX_error" != yes; then
 	    case $host in
 	      osf3*)
 	        _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
 	        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
 		;;
 	      *)
 	        _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
 	        _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
 	          echo "-hidden">> $lib.exp~
-	          $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp  `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~
+	          $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp  `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~
 	          $RM $lib.exp'
 	        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
 		;;
@@ -6118,17 +6574,17 @@ if test "$_lt_caught_CXX_error" != yes; then
 	    # explicitly linking system object files so we need to strip them
 	    # from the output so that they don't get included in the library
 	    # dependencies.
-	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
 	    ;;
 	  *)
 	    if test "$GXX" = yes && test "$with_gnu_ld" = no; then
 	      _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
 	      case $host in
 	        osf3*)
-	          _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	          _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
 		  ;;
 	        *)
-	          _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	          _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
 		  ;;
 	      esac
 
@@ -6138,7 +6594,7 @@ if test "$_lt_caught_CXX_error" != yes; then
 	      # Commands to make compiler produce verbose output that lists
 	      # what "hidden" libraries, object files and flags are used when
 	      # linking a shared library.
-	      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+	      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
 
 	    else
 	      # FIXME: insert proper C++ library support
@@ -6174,7 +6630,7 @@ if test "$_lt_caught_CXX_error" != yes; then
 
       solaris*)
         case $cc_basename in
-          CC*)
+          CC* | sunCC*)
 	    # Sun C++ 4.2, 5.x and Centerline C++
             _LT_TAGVAR(archive_cmds_need_lc,$1)=yes
 	    _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
@@ -6195,7 +6651,7 @@ if test "$_lt_caught_CXX_error" != yes; then
 	    esac
 	    _LT_TAGVAR(link_all_deplibs, $1)=yes
 
-	    output_verbose_link_cmd='echo'
+	    output_verbose_link_cmd='func_echo_all'
 
 	    # Archives containing C++ object files must be created using
 	    # "CC -xar", where "CC" is the Sun C++ compiler.  This is
@@ -6215,14 +6671,14 @@ if test "$_lt_caught_CXX_error" != yes; then
 	    if test "$GXX" = yes && test "$with_gnu_ld" = no; then
 	      _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
 	      if $CC --version | $GREP -v '^2\.7' > /dev/null; then
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
 	        _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-		  $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+		  $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
 
 	        # Commands to make compiler produce verbose output that lists
 	        # what "hidden" libraries, object files and flags are used when
 	        # linking a shared library.
-	        output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+	        output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
 	      else
 	        # g++ 2.7 appears to require `-G' NOT `-shared' on this
 	        # platform.
@@ -6233,7 +6689,7 @@ if test "$_lt_caught_CXX_error" != yes; then
 	        # Commands to make compiler produce verbose output that lists
 	        # what "hidden" libraries, object files and flags are used when
 	        # linking a shared library.
-	        output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+	        output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
 	      fi
 
 	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir'
@@ -6287,6 +6743,10 @@ if test "$_lt_caught_CXX_error" != yes; then
           CC*)
 	    _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
 	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~
+	      '"$_LT_TAGVAR(old_archive_cmds, $1)"
+	    _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~
+	      '"$_LT_TAGVAR(reload_cmds, $1)"
 	    ;;
 	  *)
 	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
@@ -6342,6 +6802,7 @@ if test "$_lt_caught_CXX_error" != yes; then
   fi # test -n "$compiler"
 
   CC=$lt_save_CC
+  CFLAGS=$lt_save_CFLAGS
   LDCXX=$LD
   LD=$lt_save_LD
   GCC=$lt_save_GCC
@@ -6356,6 +6817,29 @@ AC_LANG_POP
 ])# _LT_LANG_CXX_CONFIG
 
 
+# _LT_FUNC_STRIPNAME_CNF
+# ----------------------
+# func_stripname_cnf prefix suffix name
+# strip PREFIX and SUFFIX off of NAME.
+# PREFIX and SUFFIX must not contain globbing or regex special
+# characters, hashes, percent signs, but SUFFIX may contain a leading
+# dot (in which case that matches only a dot).
+#
+# This function is identical to the (non-XSI) version of func_stripname,
+# except this one can be used by m4 code that may be executed by configure,
+# rather than the libtool script.
+m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl
+AC_REQUIRE([_LT_DECL_SED])
+AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])
+func_stripname_cnf ()
+{
+  case ${2} in
+  .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
+  *)  func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
+  esac
+} # func_stripname_cnf
+])# _LT_FUNC_STRIPNAME_CNF
+
 # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME])
 # ---------------------------------
 # Figure out "hidden" library dependencies from verbose
@@ -6364,6 +6848,7 @@ AC_LANG_POP
 # objects, libraries and library flags.
 m4_defun([_LT_SYS_HIDDEN_LIBDEPS],
 [m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl
 # Dependencies to place before and after the object being linked:
 _LT_TAGVAR(predep_objects, $1)=
 _LT_TAGVAR(postdep_objects, $1)=
@@ -6414,6 +6899,13 @@ public class foo {
 };
 _LT_EOF
 ])
+
+_lt_libdeps_save_CFLAGS=$CFLAGS
+case "$CC $CFLAGS " in #(
+*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;;
+*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;;
+esac
+
 dnl Parse the compiler output and extract the necessary
 dnl objects, libraries and library flags.
 if AC_TRY_EVAL(ac_compile); then
@@ -6425,7 +6917,7 @@ if AC_TRY_EVAL(ac_compile); then
   pre_test_object_deps_done=no
 
   for p in `eval "$output_verbose_link_cmd"`; do
-    case $p in
+    case ${prev}${p} in
 
     -L* | -R* | -l*)
        # Some compilers place space between "-{L,R}" and the path.
@@ -6434,13 +6926,22 @@ if AC_TRY_EVAL(ac_compile); then
           test $p = "-R"; then
 	 prev=$p
 	 continue
-       else
-	 prev=
        fi
 
+       # Expand the sysroot to ease extracting the directories later.
+       if test -z "$prev"; then
+         case $p in
+         -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;;
+         -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;;
+         -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;;
+         esac
+       fi
+       case $p in
+       =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;;
+       esac
        if test "$pre_test_object_deps_done" = no; then
-	 case $p in
-	 -L* | -R*)
+	 case ${prev} in
+	 -L | -R)
 	   # Internal compiler library paths should come after those
 	   # provided the user.  The postdeps already come after the
 	   # user supplied libs so there is no need to process them.
@@ -6460,8 +6961,10 @@ if AC_TRY_EVAL(ac_compile); then
 	   _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}"
 	 fi
        fi
+       prev=
        ;;
 
+    *.lto.$objext) ;; # Ignore GCC LTO objects
     *.$objext)
        # This assumes that the test object file only shows up
        # once in the compiler output.
@@ -6497,6 +7000,7 @@ else
 fi
 
 $RM -f confest.$objext
+CFLAGS=$_lt_libdeps_save_CFLAGS
 
 # PORTME: override above test on systems where it is broken
 m4_if([$1], [CXX],
@@ -6533,7 +7037,7 @@ linux*)
 
 solaris*)
   case $cc_basename in
-  CC*)
+  CC* | sunCC*)
     # The more standards-conforming stlport4 library is
     # incompatible with the Cstd library. Avoid specifying
     # it if it's in CXXFLAGS. Ignore libCrun as
@@ -6577,32 +7081,16 @@ _LT_TAGDECL([], [compiler_lib_search_path], [1],
 ])# _LT_SYS_HIDDEN_LIBDEPS
 
 
-# _LT_PROG_F77
-# ------------
-# Since AC_PROG_F77 is broken, in that it returns the empty string
-# if there is no fortran compiler, we have our own version here.
-m4_defun([_LT_PROG_F77],
-[
-pushdef([AC_MSG_ERROR], [_lt_disable_F77=yes])
-AC_PROG_F77
-if test -z "$F77" || test "X$F77" = "Xno"; then
-  _lt_disable_F77=yes
-fi
-popdef([AC_MSG_ERROR])
-])# _LT_PROG_F77
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([_LT_PROG_F77], [])
-
-
 # _LT_LANG_F77_CONFIG([TAG])
 # --------------------------
 # Ensure that the configuration variables for a Fortran 77 compiler are
 # suitably defined.  These variables are subsequently used by _LT_CONFIG
 # to write the compiler configuration to `libtool'.
 m4_defun([_LT_LANG_F77_CONFIG],
-[AC_REQUIRE([_LT_PROG_F77])dnl
-AC_LANG_PUSH(Fortran 77)
+[AC_LANG_PUSH(Fortran 77)
+if test -z "$F77" || test "X$F77" = "Xno"; then
+  _lt_disable_F77=yes
+fi
 
 _LT_TAGVAR(archive_cmds_need_lc, $1)=no
 _LT_TAGVAR(allow_undefined_flag, $1)=
@@ -6621,6 +7109,8 @@ _LT_TAGVAR(module_cmds, $1)=
 _LT_TAGVAR(module_expsym_cmds, $1)=
 _LT_TAGVAR(link_all_deplibs, $1)=unknown
 _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
 _LT_TAGVAR(no_undefined_flag, $1)=
 _LT_TAGVAR(whole_archive_flag_spec, $1)=
 _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
@@ -6660,7 +7150,9 @@ if test "$_lt_disable_F77" != yes; then
   # Allow CC to be a program name with arguments.
   lt_save_CC="$CC"
   lt_save_GCC=$GCC
+  lt_save_CFLAGS=$CFLAGS
   CC=${F77-"f77"}
+  CFLAGS=$FFLAGS
   compiler=$CC
   _LT_TAGVAR(compiler, $1)=$CC
   _LT_CC_BASENAME([$compiler])
@@ -6714,38 +7206,24 @@ if test "$_lt_disable_F77" != yes; then
 
   GCC=$lt_save_GCC
   CC="$lt_save_CC"
+  CFLAGS="$lt_save_CFLAGS"
 fi # test "$_lt_disable_F77" != yes
 
 AC_LANG_POP
 ])# _LT_LANG_F77_CONFIG
 
 
-# _LT_PROG_FC
-# -----------
-# Since AC_PROG_FC is broken, in that it returns the empty string
-# if there is no fortran compiler, we have our own version here.
-m4_defun([_LT_PROG_FC],
-[
-pushdef([AC_MSG_ERROR], [_lt_disable_FC=yes])
-AC_PROG_FC
-if test -z "$FC" || test "X$FC" = "Xno"; then
-  _lt_disable_FC=yes
-fi
-popdef([AC_MSG_ERROR])
-])# _LT_PROG_FC
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([_LT_PROG_FC], [])
-
-
 # _LT_LANG_FC_CONFIG([TAG])
 # -------------------------
 # Ensure that the configuration variables for a Fortran compiler are
 # suitably defined.  These variables are subsequently used by _LT_CONFIG
 # to write the compiler configuration to `libtool'.
 m4_defun([_LT_LANG_FC_CONFIG],
-[AC_REQUIRE([_LT_PROG_FC])dnl
-AC_LANG_PUSH(Fortran)
+[AC_LANG_PUSH(Fortran)
+
+if test -z "$FC" || test "X$FC" = "Xno"; then
+  _lt_disable_FC=yes
+fi
 
 _LT_TAGVAR(archive_cmds_need_lc, $1)=no
 _LT_TAGVAR(allow_undefined_flag, $1)=
@@ -6764,6 +7242,8 @@ _LT_TAGVAR(module_cmds, $1)=
 _LT_TAGVAR(module_expsym_cmds, $1)=
 _LT_TAGVAR(link_all_deplibs, $1)=unknown
 _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
 _LT_TAGVAR(no_undefined_flag, $1)=
 _LT_TAGVAR(whole_archive_flag_spec, $1)=
 _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
@@ -6803,7 +7283,9 @@ if test "$_lt_disable_FC" != yes; then
   # Allow CC to be a program name with arguments.
   lt_save_CC="$CC"
   lt_save_GCC=$GCC
+  lt_save_CFLAGS=$CFLAGS
   CC=${FC-"f95"}
+  CFLAGS=$FCFLAGS
   compiler=$CC
   GCC=$ac_cv_fc_compiler_gnu
 
@@ -6859,7 +7341,8 @@ if test "$_lt_disable_FC" != yes; then
   fi # test -n "$compiler"
 
   GCC=$lt_save_GCC
-  CC="$lt_save_CC"
+  CC=$lt_save_CC
+  CFLAGS=$lt_save_CFLAGS
 fi # test "$_lt_disable_FC" != yes
 
 AC_LANG_POP
@@ -6896,10 +7379,12 @@ _LT_COMPILER_BOILERPLATE
 _LT_LINKER_BOILERPLATE
 
 # Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
+lt_save_CC=$CC
+lt_save_CFLAGS=$CFLAGS
 lt_save_GCC=$GCC
 GCC=yes
 CC=${GCJ-"gcj"}
+CFLAGS=$GCJFLAGS
 compiler=$CC
 _LT_TAGVAR(compiler, $1)=$CC
 _LT_TAGVAR(LD, $1)="$LD"
@@ -6909,6 +7394,8 @@ _LT_CC_BASENAME([$compiler])
 _LT_TAGVAR(archive_cmds_need_lc, $1)=no
 
 _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
 
 ## CAVEAT EMPTOR:
 ## There is no encapsulation within the following macros, do not change
@@ -6928,7 +7415,8 @@ fi
 AC_LANG_RESTORE
 
 GCC=$lt_save_GCC
-CC="$lt_save_CC"
+CC=$lt_save_CC
+CFLAGS=$lt_save_CFLAGS
 ])# _LT_LANG_GCJ_CONFIG
 
 
@@ -6963,9 +7451,11 @@ _LT_LINKER_BOILERPLATE
 
 # Allow CC to be a program name with arguments.
 lt_save_CC="$CC"
+lt_save_CFLAGS=$CFLAGS
 lt_save_GCC=$GCC
 GCC=
 CC=${RC-"windres"}
+CFLAGS=
 compiler=$CC
 _LT_TAGVAR(compiler, $1)=$CC
 _LT_CC_BASENAME([$compiler])
@@ -6978,7 +7468,8 @@ fi
 
 GCC=$lt_save_GCC
 AC_LANG_RESTORE
-CC="$lt_save_CC"
+CC=$lt_save_CC
+CFLAGS=$lt_save_CFLAGS
 ])# _LT_LANG_RC_CONFIG
 
 
@@ -7037,6 +7528,15 @@ _LT_DECL([], [OBJDUMP], [1], [An object symbol dumper])
 AC_SUBST([OBJDUMP])
 ])
 
+# _LT_DECL_DLLTOOL
+# ----------------
+# Ensure DLLTOOL variable is set.
+m4_defun([_LT_DECL_DLLTOOL],
+[AC_CHECK_TOOL(DLLTOOL, dlltool, false)
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+_LT_DECL([], [DLLTOOL], [1], [DLL creation program])
+AC_SUBST([DLLTOOL])
+])
 
 # _LT_DECL_SED
 # ------------
@@ -7130,8 +7630,8 @@ m4_defun([_LT_CHECK_SHELL_FEATURES],
 # Try some XSI features
 xsi_shell=no
 ( _lt_dummy="a/b/c"
-  test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \
-      = c,a/b,, \
+  test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
+      = c,a/b,b/c, \
     && eval 'test $(( 1 + 1 )) -eq 2 \
     && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
   && xsi_shell=yes
@@ -7170,208 +7670,162 @@ _LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl
 ])# _LT_CHECK_SHELL_FEATURES
 
 
-# _LT_PROG_XSI_SHELLFNS
-# ---------------------
-# Bourne and XSI compatible variants of some useful shell functions.
-m4_defun([_LT_PROG_XSI_SHELLFNS],
-[case $xsi_shell in
-  yes)
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_dirname file append nondir_replacement
-# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
-# otherwise set result to NONDIR_REPLACEMENT.
-func_dirname ()
-{
-  case ${1} in
-    */*) func_dirname_result="${1%/*}${2}" ;;
-    *  ) func_dirname_result="${3}" ;;
-  esac
-}
-
-# func_basename file
-func_basename ()
-{
-  func_basename_result="${1##*/}"
-}
-
-# func_dirname_and_basename file append nondir_replacement
-# perform func_basename and func_dirname in a single function
-# call:
-#   dirname:  Compute the dirname of FILE.  If nonempty,
-#             add APPEND to the result, otherwise set result
-#             to NONDIR_REPLACEMENT.
-#             value returned in "$func_dirname_result"
-#   basename: Compute filename of FILE.
-#             value retuned in "$func_basename_result"
-# Implementation must be kept synchronized with func_dirname
-# and func_basename. For efficiency, we do not delegate to
-# those functions but instead duplicate the functionality here.
-func_dirname_and_basename ()
-{
-  case ${1} in
-    */*) func_dirname_result="${1%/*}${2}" ;;
-    *  ) func_dirname_result="${3}" ;;
-  esac
-  func_basename_result="${1##*/}"
-}
-
-# func_stripname prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-func_stripname ()
-{
-  # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
-  # positional parameters, so assign one to ordinary parameter first.
-  func_stripname_result=${3}
-  func_stripname_result=${func_stripname_result#"${1}"}
-  func_stripname_result=${func_stripname_result%"${2}"}
-}
-
-# func_opt_split
-func_opt_split ()
-{
-  func_opt_split_opt=${1%%=*}
-  func_opt_split_arg=${1#*=}
-}
-
-# func_lo2o object
-func_lo2o ()
-{
-  case ${1} in
-    *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
-    *)    func_lo2o_result=${1} ;;
-  esac
-}
-
-# func_xform libobj-or-source
-func_xform ()
-{
-  func_xform_result=${1%.*}.lo
-}
-
-# func_arith arithmetic-term...
-func_arith ()
-{
-  func_arith_result=$(( $[*] ))
-}
+# _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY)
+# ------------------------------------------------------
+# In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and
+# '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY.
+m4_defun([_LT_PROG_FUNCTION_REPLACE],
+[dnl {
+sed -e '/^$1 ()$/,/^} # $1 /c\
+$1 ()\
+{\
+m4_bpatsubsts([$2], [$], [\\], [^\([	 ]\)], [\\\1])
+} # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+])
 
-# func_len string
-# STRING may not start with a hyphen.
-func_len ()
-{
-  func_len_result=${#1}
-}
 
-_LT_EOF
-    ;;
-  *) # Bourne compatible functions.
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_dirname file append nondir_replacement
-# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
-# otherwise set result to NONDIR_REPLACEMENT.
-func_dirname ()
-{
-  # Extract subdirectory from the argument.
-  func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"`
-  if test "X$func_dirname_result" = "X${1}"; then
-    func_dirname_result="${3}"
-  else
-    func_dirname_result="$func_dirname_result${2}"
-  fi
-}
+# _LT_PROG_REPLACE_SHELLFNS
+# -------------------------
+# Replace existing portable implementations of several shell functions with
+# equivalent extended shell implementations where those features are available..
+m4_defun([_LT_PROG_REPLACE_SHELLFNS],
+[if test x"$xsi_shell" = xyes; then
+  _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl
+    case ${1} in
+      */*) func_dirname_result="${1%/*}${2}" ;;
+      *  ) func_dirname_result="${3}" ;;
+    esac])
+
+  _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl
+    func_basename_result="${1##*/}"])
+
+  _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl
+    case ${1} in
+      */*) func_dirname_result="${1%/*}${2}" ;;
+      *  ) func_dirname_result="${3}" ;;
+    esac
+    func_basename_result="${1##*/}"])
 
-# func_basename file
-func_basename ()
-{
-  func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"`
-}
+  _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl
+    # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
+    # positional parameters, so assign one to ordinary parameter first.
+    func_stripname_result=${3}
+    func_stripname_result=${func_stripname_result#"${1}"}
+    func_stripname_result=${func_stripname_result%"${2}"}])
 
-dnl func_dirname_and_basename
-dnl A portable version of this function is already defined in general.m4sh
-dnl so there is no need for it here.
+  _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl
+    func_split_long_opt_name=${1%%=*}
+    func_split_long_opt_arg=${1#*=}])
 
-# func_stripname prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-# func_strip_suffix prefix name
-func_stripname ()
-{
-  case ${2} in
-    .*) func_stripname_result=`$ECHO "X${3}" \
-           | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;;
-    *)  func_stripname_result=`$ECHO "X${3}" \
-           | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;;
-  esac
-}
+  _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl
+    func_split_short_opt_arg=${1#??}
+    func_split_short_opt_name=${1%"$func_split_short_opt_arg"}])
 
-# sed scripts:
-my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q'
-my_sed_long_arg='1s/^-[[^=]]*=//'
+  _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl
+    case ${1} in
+      *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
+      *)    func_lo2o_result=${1} ;;
+    esac])
 
-# func_opt_split
-func_opt_split ()
-{
-  func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"`
-  func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"`
-}
+  _LT_PROG_FUNCTION_REPLACE([func_xform], [    func_xform_result=${1%.*}.lo])
 
-# func_lo2o object
-func_lo2o ()
-{
-  func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"`
-}
+  _LT_PROG_FUNCTION_REPLACE([func_arith], [    func_arith_result=$(( $[*] ))])
 
-# func_xform libobj-or-source
-func_xform ()
-{
-  func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[[^.]]*$/.lo/'`
-}
+  _LT_PROG_FUNCTION_REPLACE([func_len], [    func_len_result=${#1}])
+fi
 
-# func_arith arithmetic-term...
-func_arith ()
-{
-  func_arith_result=`expr "$[@]"`
-}
+if test x"$lt_shell_append" = xyes; then
+  _LT_PROG_FUNCTION_REPLACE([func_append], [    eval "${1}+=\\${2}"])
 
-# func_len string
-# STRING may not start with a hyphen.
-func_len ()
-{
-  func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len`
-}
+  _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl
+    func_quote_for_eval "${2}"
+dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \
+    eval "${1}+=\\\\ \\$func_quote_for_eval_result"])
 
-_LT_EOF
-esac
+  # Save a `func_append' function call where possible by direct use of '+='
+  sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \
+    && mv -f "$cfgfile.tmp" "$cfgfile" \
+      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+  test 0 -eq $? || _lt_function_replace_fail=:
+else
+  # Save a `func_append' function call even when '+=' is not available
+  sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \
+    && mv -f "$cfgfile.tmp" "$cfgfile" \
+      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+  test 0 -eq $? || _lt_function_replace_fail=:
+fi
 
-case $lt_shell_append in
-  yes)
-    cat << \_LT_EOF >> "$cfgfile"
+if test x"$_lt_function_replace_fail" = x":"; then
+  AC_MSG_WARN([Unable to substitute extended shell functions in $ofile])
+fi
+])
 
-# func_append var value
-# Append VALUE to the end of shell variable VAR.
-func_append ()
-{
-  eval "$[1]+=\$[2]"
-}
-_LT_EOF
+# _LT_PATH_CONVERSION_FUNCTIONS
+# -----------------------------
+# Determine which file name conversion functions should be used by
+# func_to_host_file (and, implicitly, by func_to_host_path).  These are needed
+# for certain cross-compile configurations and native mingw.
+m4_defun([_LT_PATH_CONVERSION_FUNCTIONS],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+AC_MSG_CHECKING([how to convert $build file names to $host format])
+AC_CACHE_VAL(lt_cv_to_host_file_cmd,
+[case $host in
+  *-*-mingw* )
+    case $build in
+      *-*-mingw* ) # actually msys
+        lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
+        ;;
+      *-*-cygwin* )
+        lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
+        ;;
+      * ) # otherwise, assume *nix
+        lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
+        ;;
+    esac
     ;;
-  *)
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_append var value
-# Append VALUE to the end of shell variable VAR.
-func_append ()
-{
-  eval "$[1]=\$$[1]\$[2]"
-}
-
-_LT_EOF
+  *-*-cygwin* )
+    case $build in
+      *-*-mingw* ) # actually msys
+        lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
+        ;;
+      *-*-cygwin* )
+        lt_cv_to_host_file_cmd=func_convert_file_noop
+        ;;
+      * ) # otherwise, assume *nix
+        lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
+        ;;
+    esac
     ;;
-  esac
+  * ) # unhandled hosts (and "normal" native builds)
+    lt_cv_to_host_file_cmd=func_convert_file_noop
+    ;;
+esac
+])
+to_host_file_cmd=$lt_cv_to_host_file_cmd
+AC_MSG_RESULT([$lt_cv_to_host_file_cmd])
+_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd],
+         [0], [convert $build file names to $host format])dnl
+
+AC_MSG_CHECKING([how to convert $build file names to toolchain format])
+AC_CACHE_VAL(lt_cv_to_tool_file_cmd,
+[#assume ordinary cross tools, or native build.
+lt_cv_to_tool_file_cmd=func_convert_file_noop
+case $host in
+  *-*-mingw* )
+    case $build in
+      *-*-mingw* ) # actually msys
+        lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
+        ;;
+    esac
+    ;;
+esac
 ])
+to_tool_file_cmd=$lt_cv_to_tool_file_cmd
+AC_MSG_RESULT([$lt_cv_to_tool_file_cmd])
+_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd],
+         [0], [convert $build files to toolchain format])dnl
+])# _LT_PATH_CONVERSION_FUNCTIONS
diff --git a/m4/ltoptions.m4 b/m4/ltoptions.m4
index 34151a3..17cfd51 100644
--- a/m4/ltoptions.m4
+++ b/m4/ltoptions.m4
@@ -1,13 +1,14 @@
 # Helper functions for option handling.                    -*- Autoconf -*-
 #
-#   Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
+#   Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation,
+#   Inc.
 #   Written by Gary V. Vaughan, 2004
 #
 # This file is free software; the Free Software Foundation gives
 # unlimited permission to copy and/or distribute it, with or without
 # modifications, as long as this notice is preserved.
 
-# serial 6 ltoptions.m4
+# serial 7 ltoptions.m4
 
 # This is to help aclocal find these macros, as it can't see m4_define.
 AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
@@ -125,7 +126,7 @@ LT_OPTION_DEFINE([LT_INIT], [win32-dll],
 [enable_win32_dll=yes
 
 case $host in
-*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*)
+*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
   AC_CHECK_TOOL(AS, as, false)
   AC_CHECK_TOOL(DLLTOOL, dlltool, false)
   AC_CHECK_TOOL(OBJDUMP, objdump, false)
@@ -133,13 +134,13 @@ case $host in
 esac
 
 test -z "$AS" && AS=as
-_LT_DECL([], [AS],      [0], [Assembler program])dnl
+_LT_DECL([], [AS],      [1], [Assembler program])dnl
 
 test -z "$DLLTOOL" && DLLTOOL=dlltool
-_LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl
+_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl
 
 test -z "$OBJDUMP" && OBJDUMP=objdump
-_LT_DECL([], [OBJDUMP], [0], [Object dumper program])dnl
+_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl
 ])# win32-dll
 
 AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
diff --git a/m4/ltversion.m4 b/m4/ltversion.m4
index f3c5309..9c7b5d4 100644
--- a/m4/ltversion.m4
+++ b/m4/ltversion.m4
@@ -7,17 +7,17 @@
 # unlimited permission to copy and/or distribute it, with or without
 # modifications, as long as this notice is preserved.
 
-# Generated from ltversion.in.
+# @configure_input@
 
-# serial 3017 ltversion.m4
+# serial 3293 ltversion.m4
 # This file is part of GNU Libtool
 
-m4_define([LT_PACKAGE_VERSION], [2.2.6b])
-m4_define([LT_PACKAGE_REVISION], [1.3017])
+m4_define([LT_PACKAGE_VERSION], [2.4])
+m4_define([LT_PACKAGE_REVISION], [1.3293])
 
 AC_DEFUN([LTVERSION_VERSION],
-[macro_version='2.2.6b'
-macro_revision='1.3017'
+[macro_version='2.4'
+macro_revision='1.3293'
 _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
 _LT_DECL(, macro_revision, 0)
 ])
diff --git a/m4/lt~obsolete.m4 b/m4/lt~obsolete.m4
index 637bb20..c573da9 100644
--- a/m4/lt~obsolete.m4
+++ b/m4/lt~obsolete.m4
@@ -1,13 +1,13 @@
 # lt~obsolete.m4 -- aclocal satisfying obsolete definitions.    -*-Autoconf-*-
 #
-#   Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc.
+#   Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc.
 #   Written by Scott James Remnant, 2004.
 #
 # This file is free software; the Free Software Foundation gives
 # unlimited permission to copy and/or distribute it, with or without
 # modifications, as long as this notice is preserved.
 
-# serial 4 lt~obsolete.m4
+# serial 5 lt~obsolete.m4
 
 # These exist entirely to fool aclocal when bootstrapping libtool.
 #
@@ -77,7 +77,6 @@ m4_ifndef([AC_DISABLE_FAST_INSTALL],	[AC_DEFUN([AC_DISABLE_FAST_INSTALL])])
 m4_ifndef([_LT_AC_LANG_CXX],		[AC_DEFUN([_LT_AC_LANG_CXX])])
 m4_ifndef([_LT_AC_LANG_F77],		[AC_DEFUN([_LT_AC_LANG_F77])])
 m4_ifndef([_LT_AC_LANG_GCJ],		[AC_DEFUN([_LT_AC_LANG_GCJ])])
-m4_ifndef([AC_LIBTOOL_RC],		[AC_DEFUN([AC_LIBTOOL_RC])])
 m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])])
 m4_ifndef([_LT_AC_LANG_C_CONFIG],	[AC_DEFUN([_LT_AC_LANG_C_CONFIG])])
 m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])])
@@ -90,3 +89,10 @@ m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])])
 m4_ifndef([_LT_AC_LANG_RC_CONFIG],	[AC_DEFUN([_LT_AC_LANG_RC_CONFIG])])
 m4_ifndef([AC_LIBTOOL_CONFIG],		[AC_DEFUN([AC_LIBTOOL_CONFIG])])
 m4_ifndef([_LT_AC_FILE_LTDLL_C],	[AC_DEFUN([_LT_AC_FILE_LTDLL_C])])
+m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS],	[AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])])
+m4_ifndef([_LT_AC_PROG_CXXCPP],		[AC_DEFUN([_LT_AC_PROG_CXXCPP])])
+m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS],	[AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])])
+m4_ifndef([_LT_PROG_ECHO_BACKSLASH],	[AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])])
+m4_ifndef([_LT_PROG_F77],		[AC_DEFUN([_LT_PROG_F77])])
+m4_ifndef([_LT_PROG_FC],		[AC_DEFUN([_LT_PROG_FC])])
+m4_ifndef([_LT_PROG_CXX],		[AC_DEFUN([_LT_PROG_CXX])])
diff --git a/modules/Makefile.am b/modules/Makefile.am
index d0d899e..9b7c7c4 100644
--- a/modules/Makefile.am
+++ b/modules/Makefile.am
@@ -1,7 +1,7 @@
 ## Process this file with automake to produce Makefile.in
 
-#SUBDIRS = RStarTree fes2004 wavewatch
-SUBDIRS = wavewatch
+#SUBDIRS = RStarTree kdt fes2004 wavewatch
+SUBDIRS = kdt wavewatch
 
 AM_CPPFLAGS = -DGFS_MODULES_DIR=\"$(libdir)/gerris\"
 
@@ -9,82 +9,119 @@ INCLUDES = -I$(top_srcdir)/src -I$(includedir) \
            -DG_LOG_DOMAIN=\"Gfs-modules\" $(GTS_CFLAGS)
 
 if HAS_LIBPROJ
-MAP = libmap2D.la libmap3D.la libmap2D3.la
+MAP = libmap2D.la libmap3D.la
+endif
+if BUILD_TIDE
+TIDE = libtide2D.la libtide3D.la
 endif
-#if BUILD_TIDE
-#TIDE = libtide2D.la libtide3D.la libtide2D3.la
-#endif
 if BUILD_STOKES
 STOKES = libstokes2D.la libstokes3D.la
 endif
 if BUILD_WAVEWATCH
 WAVEWATCH = libwavewatch2D.la
 endif
+if BUILD_HYPRE
+HYPRE = libhypre2D.la libhypre3D.la
+endif
+if BUILD_LIS
+LIS = liblis2D.la liblis3D.la
+endif
+if BUILD_AGMG
+AGMG = libagmg2D.la libagmg3D.la
+endif
+if BUILD_ODE
+ODE = libode2D.la libode3D.la
+endif
+if HAS_GSL
+BUBBLES = libbubbles2D.la libbubbles3D.la
+endif
 
 pkglib_LTLIBRARIES = \
 	$(MAP) \
+	libterrain2D.la \
+	libterrain3D.la \
+	libparticulates2D.la \
+	libparticulates3D.la \
+	libokada2D.la \
+	libokada3D.la \
+	libdf33D.la \
+	libelectrohydro2D.la \
+	libelectrohydro3D.la \
 	$(TIDE) \
 	$(STOKES) \
-	$(WAVEWATCH)
-#	libterrain2D.la \
-#	libterrain3D.la \
-#	libterrain2D3.la 
-
-#bin_PROGRAMS = \
-#	xyz2rsurface \
-#	rsurfacequery \
-#	rsurfacedraw
+	$(WAVEWATCH) \
+	$(HYPRE) \
+	$(LIS) \
+	$(AGMG) \
+	$(ODE) \
+        $(BUBBLES)
+
+bin_PROGRAMS = \
+	xyz2rsurface \
+	rsurfacequery \
+	rsurfacedraw \
+	rsurfaceinfo
 
 EXTRA_DIST = \
 	map.mod \
 	tide.mod \
 	terrain.mod \
 	stokes.mod \
-	wavewatch.mod
+	wavewatch.mod \
+	particulates.mod \
+	bubbles.mod \
+	df3.mod \
+	electrohydro.mod \
+	okada.mod \
+	hypre.mod \
+	lis.mod \
+	agmg.mod \
+	ode.mod
 
 BUILT_SOURCES = \
 	map.c \
 	tide.c \
 	terrain.c \
 	stokes.c \
-	wavewatch.c
+	wavewatch.c \
+	particulates.c \
+	bubbles.c \
+	df3.c \
+	electrohydro.c \
+	okada.c \
+	hypre.c \
+	lis.c \
+	agmg.c \
+	ode.c
 
 AM_LDFLAGS = $(NO_UNDEFINED)\
         -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE)\
-	-release $(LT_RELEASE) -export-dynamic
+	-release $(LT_RELEASE) -export-dynamic -module
 
 libmap3D_la_SOURCES = map.c
 libmap3D_la_LIBADD = -lproj
 libmap2D_la_SOURCES = map.c
 libmap2D_la_CFLAGS = $(AM_CFLAGS) -DFTT_2D=1
 libmap2D_la_LIBADD = -lproj
-libmap2D3_la_SOURCES = map.c
-libmap2D3_la_CFLAGS = $(AM_CFLAGS) -DFTT_2D3=1
-libmap2D3_la_LIBADD = -lproj
-
-#libterrain3D_la_SOURCES = terrain.c rsurface.c rsurface.h
-#libterrain3D_la_LIBADD = -LRStarTree -lcSmRST
-#libterrain3D_la_DEPENDENCIES = RStarTree/libcSmRST.la
-
-#libterrain2D_la_CFLAGS = $(AM_CFLAGS) -DFTT_2D=1
-#libterrain2D_la_SOURCES = terrain.c rsurface.c rsurface.h
-#libterrain2D_la_LIBADD = -LRStarTree -lcSmRST
-#libterrain2D_la_DEPENDENCIES = RStarTree/libcSmRST.la
-
-#libterrain2D3_la_SOURCES = terrain.c rsurface.c rsurface.h
-#libterrain2D3_la_CFLAGS = $(AM_CFLAGS) -DFTT_2D3=1
-#libterrain2D3_la_LIBADD = -LRStarTree -lcSmRST
-#libterrain2D3_la_DEPENDENCIES = RStarTree/libcSmRST.la
-
-#libtide3D_la_SOURCES = tide.c
-#libtide3D_la_CFLAGS = $(AM_CFLAGS) $(GSL_CFLAGS)
-#libtide3D_la_LIBADD = -Lfes2004 -lfes -lnetcdf $(GSL_LIBS)
-#libtide2D_la_SOURCES = tide.c
-#libtide2D_la_CFLAGS = $(AM_CFLAGS) $(GSL_CFLAGS) -DFTT_2D=1
-#libtide2D_la_LIBADD = -Lfes2004 -lfes -lnetcdf $(GSL_LIBS)
-#libtide2D3_la_SOURCES = tide.c
-#libtide2D3_la_CFLAGS = $(AM_CFLAGS) $(GSL_CFLAGS) -DFTT_2D3=1
-#libtide2D3_la_LIBADD = -Lfes2004 -lfes -lnetcdf $(GSL_LIBS)
+
+KDTLIBS = -LRStarTree -lcSmRST -Lkdt -lkdt
+KDTDEPS = RStarTree/libcSmRST.la kdt/libkdt.la
+
+libterrain3D_la_SOURCES = terrain.c rsurface.c rsurface.h
+libterrain3D_la_LIBADD = $(KDTLIBS)
+libterrain3D_la_DEPENDENCIES = $(KDTDEPS)
+
+libterrain2D_la_CFLAGS = $(AM_CFLAGS) -DFTT_2D=1
+libterrain2D_la_SOURCES = terrain.c rsurface.c rsurface.h
+libterrain2D_la_LIBADD = $(KDTLIBS)
+libterrain2D_la_DEPENDENCIES = $(KDTDEPS)
+
+libtide3D_la_SOURCES = tide.c
+libtide3D_la_CFLAGS = $(AM_CFLAGS) $(GSL_CFLAGS)
+libtide3D_la_LIBADD = -Lfes2004 -lfes -lnetcdf $(GSL_LIBS)
+libtide2D_la_SOURCES = tide.c
+libtide2D_la_CFLAGS = $(AM_CFLAGS) $(GSL_CFLAGS) -DFTT_2D=1
+libtide2D_la_LIBADD = -Lfes2004 -lfes -lnetcdf $(GSL_LIBS)
 
 libstokes3D_la_SOURCES = stokes.c CW263.f
 libstokes3D_la_CFLAGS = $(AM_CFLAGS)
@@ -98,30 +135,88 @@ libwavewatch2D_la_CFLAGS = $(AM_CFLAGS) -DFTT_2D=1 \
   -DGFSW3INIT=`nm wavewatch/libwavewatch.a | grep gfsw3_init | awk '{ if ($$2 == "T") print $$3; }'`
 libwavewatch2D_la_DEPENDENCIES = wavewatch/libwavewatch.a
 
-#xyz2rsurface_SOURCES = xyz2rsurface.c rsurface.c rsurface.h
-#xyz2rsurface_LDADD = -LRStarTree -lcSmRST
-#xyz2rsurface_CFLAGS = $(AM_CFLAGS)
-#xyz2rsurface_DEPENDENCIES = RStarTree/libcSmRST.la
-
-#rsurfacequery_SOURCES = rsurfacequery.c rsurface.c rsurface.h
-#rsurfacequery_LDADD = -LRStarTree -lcSmRST
-#rsurfacequery_CFLAGS = $(AM_CFLAGS)
-#rsurfacequery_DEPENDENCIES = RStarTree/libcSmRST.la
-
-#rsurfacedraw_SOURCES = rsurfacedraw.c rsurface.c rsurface.h
-#rsurfacedraw_LDADD = -LRStarTree -lcSmRST
-#rsurfacedraw_CFLAGS = $(AM_CFLAGS)
-#rsurfacedraw_DEPENDENCIES = RStarTree/libcSmRST.la
+libode3D_la_SOURCES = ode.c
+libode3D_la_CFLAGS = $(AM_CFLAGS) $(ODE_CFLAGS)
+libode3D_la_LIBADD = $(ODE_LIBS)
+libode2D_la_SOURCES = ode.c
+libode2D_la_CFLAGS = $(AM_CFLAGS) $(ODE_CFLAGS) -DFTT_2D=1
+libode2D_la_LIBADD = $(ODE_LIBS)
+
+xyz2rsurface_SOURCES = xyz2rsurface.c rsurface.c rsurface.h
+xyz2rsurface_LDADD = $(KDTLIBS)
+xyz2rsurface_CFLAGS = $(AM_CFLAGS)
+xyz2rsurface_DEPENDENCIES = $(KDTDEPS)
+
+rsurfacequery_SOURCES = rsurfacequery.c rsurface.c rsurface.h
+rsurfacequery_LDADD = -LRStarTree -lcSmRST -Lkdt -lkdt
+rsurfacequery_CFLAGS = $(AM_CFLAGS)
+rsurfacequery_DEPENDENCIES = $(KDTDEPS)
+
+rsurfacedraw_SOURCES = rsurfacedraw.c rsurface.c rsurface.h
+rsurfacedraw_LDADD = $(KDTLIBS)
+rsurfacedraw_CFLAGS = $(AM_CFLAGS)
+rsurfacedraw_DEPENDENCIES = $(KDTDEPS)
+
+rsurfaceinfo_SOURCES = rsurfaceinfo.c rsurface.c rsurface.h
+rsurfaceinfo_LDADD = $(KDTLIBS)
+rsurfaceinfo_CFLAGS = $(AM_CFLAGS)
+rsurfaceinfo_DEPENDENCIES = $(KDTDEPS)
+
+libparticulates3D_la_SOURCES = particulates.c particulates.h
+libparticulates3D_la_CFLAGS = $(AM_CFLAGS)
+libparticulates2D_la_SOURCES = particulates.c particulates.h
+libparticulates2D_la_CFLAGS = $(AM_CFLAGS) -DFTT_2D=1
+
+libbubbles3D_la_SOURCES = bubbles.c
+libbubbles3D_la_CFLAGS = $(AM_CFLAGS) $(GSL_CFLAGS)
+libbubbles3D_la_LIBADD = $(GSL_LIBS)
+libbubbles2D_la_SOURCES = bubbles.c
+libbubbles2D_la_CFLAGS = $(AM_CFLAGS) $(GSL_CFLAGS) -DFTT_2D=1
+libbubbles2D_la_LIBADD = $(GSL_LIBS)
+
+libhypre3D_la_SOURCES = hypre.c
+libhypre3D_la_CFLAGS = $(AM_CFLAGS)
+libhypre3D_la_LIBADD = -lHYPRE -lm
+libhypre2D_la_SOURCES = hypre.c
+libhypre2D_la_CFLAGS = $(AM_CFLAGS) -DFTT_2D=1
+libhypre2D_la_LIBADD = -lHYPRE -lm
+
+liblis3D_la_SOURCES = lis.c
+liblis3D_la_CFLAGS = $(AM_CFLAGS)
+liblis3D_la_LIBADD = -llis -lgfortran -lm
+liblis2D_la_SOURCES = lis.c
+liblis2D_la_CFLAGS = $(AM_CFLAGS) -DFTT_2D=1
+liblis2D_la_LIBADD = -llis -lgfortran -lm
+
+libagmg3D_la_SOURCES = agmg.c dagmg.f90
+libagmg3D_la_CFLAGS = $(AM_CFLAGS)
+libagmg3D_la_LIBADD = -llapack -lblas -lgfortran -lm
+libagmg2D_la_SOURCES = agmg.c dagmg.f90
+libagmg2D_la_CFLAGS = $(AM_CFLAGS) -DFTT_2D=1
+libagmg2D_la_LIBADD = -llapack -lblas -lgfortran -lm
+
+libokada3D_la_SOURCES = okada.c
+libokada3D_la_CFLAGS = $(AM_CFLAGS)
+libokada2D_la_SOURCES = okada.c
+libokada2D_la_CFLAGS = $(AM_CFLAGS) -DFTT_2D=1
+
+libdf33D_la_SOURCES = df3.c
+libdf33D_la_CFLAGS = $(AM_CFLAGS)
+
+libelectrohydro3D_la_SOURCES = electrohydro.c
+libelectrohydro3D_la_CFLAGS = $(AM_CFLAGS)
+libelectrohydro2D_la_SOURCES = electrohydro.c
+libelectrohydro2D_la_CFLAGS = $(AM_CFLAGS) -DFTT_2D=1
 
 if HAVE_MODULES
-%.c : %.mod
+.mod.c:
 	@echo "/* $@" > $@
 	@echo " * This is a generated file.  Please modify \`$<'" >> $@
 	@echo " */" >> $@
 	@echo "#line 1 \""$<"\"" >> $@
 	@cat $< >> $@
 else
-%.c : %.mod
+.mod.c:
 	@echo "/* $@" > $@
 	@echo " * This is a generated file.  Please modify \`$<'" >> $@
 	@echo " */" >> $@
diff --git a/modules/Makefile.in b/modules/Makefile.in
index 9ce8967..c48f2be 100644
--- a/modules/Makefile.in
+++ b/modules/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11 from Makefile.am.
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -15,6 +15,7 @@
 
 @SET_MAKE@
 
+
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
@@ -34,6 +35,8 @@ PRE_UNINSTALL = :
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
+bin_PROGRAMS = xyz2rsurface$(EXEEXT) rsurfacequery$(EXEEXT) \
+	rsurfacedraw$(EXEEXT) rsurfaceinfo$(EXEEXT)
 subdir = modules
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -68,8 +71,81 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__installdirs = "$(DESTDIR)$(pkglibdir)"
+am__installdirs = "$(DESTDIR)$(pkglibdir)" "$(DESTDIR)$(bindir)"
 LTLIBRARIES = $(pkglib_LTLIBRARIES)
+libagmg2D_la_DEPENDENCIES =
+am_libagmg2D_la_OBJECTS = libagmg2D_la-agmg.lo dagmg.lo
+libagmg2D_la_OBJECTS = $(am_libagmg2D_la_OBJECTS)
+ at BUILD_AGMG_TRUE@am_libagmg2D_la_rpath = -rpath $(pkglibdir)
+libagmg3D_la_DEPENDENCIES =
+am_libagmg3D_la_OBJECTS = libagmg3D_la-agmg.lo dagmg.lo
+libagmg3D_la_OBJECTS = $(am_libagmg3D_la_OBJECTS)
+ at BUILD_AGMG_TRUE@am_libagmg3D_la_rpath = -rpath $(pkglibdir)
+am__DEPENDENCIES_1 =
+libbubbles2D_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
+am_libbubbles2D_la_OBJECTS = libbubbles2D_la-bubbles.lo
+libbubbles2D_la_OBJECTS = $(am_libbubbles2D_la_OBJECTS)
+libbubbles2D_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(libbubbles2D_la_CFLAGS) \
+	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+ at HAS_GSL_TRUE@am_libbubbles2D_la_rpath = -rpath $(pkglibdir)
+libbubbles3D_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
+am_libbubbles3D_la_OBJECTS = libbubbles3D_la-bubbles.lo
+libbubbles3D_la_OBJECTS = $(am_libbubbles3D_la_OBJECTS)
+libbubbles3D_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(libbubbles3D_la_CFLAGS) \
+	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+ at HAS_GSL_TRUE@am_libbubbles3D_la_rpath = -rpath $(pkglibdir)
+libdf33D_la_LIBADD =
+am_libdf33D_la_OBJECTS = libdf33D_la-df3.lo
+libdf33D_la_OBJECTS = $(am_libdf33D_la_OBJECTS)
+libdf33D_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(libdf33D_la_CFLAGS) \
+	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+libelectrohydro2D_la_LIBADD =
+am_libelectrohydro2D_la_OBJECTS =  \
+	libelectrohydro2D_la-electrohydro.lo
+libelectrohydro2D_la_OBJECTS = $(am_libelectrohydro2D_la_OBJECTS)
+libelectrohydro2D_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) \
+	$(libelectrohydro2D_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+	$(LDFLAGS) -o $@
+libelectrohydro3D_la_LIBADD =
+am_libelectrohydro3D_la_OBJECTS =  \
+	libelectrohydro3D_la-electrohydro.lo
+libelectrohydro3D_la_OBJECTS = $(am_libelectrohydro3D_la_OBJECTS)
+libelectrohydro3D_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) \
+	$(libelectrohydro3D_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+	$(LDFLAGS) -o $@
+libhypre2D_la_DEPENDENCIES =
+am_libhypre2D_la_OBJECTS = libhypre2D_la-hypre.lo
+libhypre2D_la_OBJECTS = $(am_libhypre2D_la_OBJECTS)
+libhypre2D_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(libhypre2D_la_CFLAGS) \
+	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+ at BUILD_HYPRE_TRUE@am_libhypre2D_la_rpath = -rpath $(pkglibdir)
+libhypre3D_la_DEPENDENCIES =
+am_libhypre3D_la_OBJECTS = libhypre3D_la-hypre.lo
+libhypre3D_la_OBJECTS = $(am_libhypre3D_la_OBJECTS)
+libhypre3D_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(libhypre3D_la_CFLAGS) \
+	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+ at BUILD_HYPRE_TRUE@am_libhypre3D_la_rpath = -rpath $(pkglibdir)
+liblis2D_la_DEPENDENCIES =
+am_liblis2D_la_OBJECTS = liblis2D_la-lis.lo
+liblis2D_la_OBJECTS = $(am_liblis2D_la_OBJECTS)
+liblis2D_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(liblis2D_la_CFLAGS) \
+	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+ at BUILD_LIS_TRUE@am_liblis2D_la_rpath = -rpath $(pkglibdir)
+liblis3D_la_DEPENDENCIES =
+am_liblis3D_la_OBJECTS = liblis3D_la-lis.lo
+liblis3D_la_OBJECTS = $(am_liblis3D_la_OBJECTS)
+liblis3D_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(liblis3D_la_CFLAGS) \
+	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+ at BUILD_LIS_TRUE@am_liblis3D_la_rpath = -rpath $(pkglibdir)
 libmap2D_la_DEPENDENCIES =
 am_libmap2D_la_OBJECTS = libmap2D_la-map.lo
 libmap2D_la_OBJECTS = $(am_libmap2D_la_OBJECTS)
@@ -77,17 +153,52 @@ libmap2D_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(libmap2D_la_CFLAGS) \
 	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
 @HAS_LIBPROJ_TRUE at am_libmap2D_la_rpath = -rpath $(pkglibdir)
-libmap2D3_la_DEPENDENCIES =
-am_libmap2D3_la_OBJECTS = libmap2D3_la-map.lo
-libmap2D3_la_OBJECTS = $(am_libmap2D3_la_OBJECTS)
-libmap2D3_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(libmap2D3_la_CFLAGS) \
-	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
- at HAS_LIBPROJ_TRUE@am_libmap2D3_la_rpath = -rpath $(pkglibdir)
 libmap3D_la_DEPENDENCIES =
 am_libmap3D_la_OBJECTS = map.lo
 libmap3D_la_OBJECTS = $(am_libmap3D_la_OBJECTS)
 @HAS_LIBPROJ_TRUE at am_libmap3D_la_rpath = -rpath $(pkglibdir)
+libode2D_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
+am_libode2D_la_OBJECTS = libode2D_la-ode.lo
+libode2D_la_OBJECTS = $(am_libode2D_la_OBJECTS)
+libode2D_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(libode2D_la_CFLAGS) \
+	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+ at BUILD_ODE_TRUE@am_libode2D_la_rpath = -rpath $(pkglibdir)
+libode3D_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
+am_libode3D_la_OBJECTS = libode3D_la-ode.lo
+libode3D_la_OBJECTS = $(am_libode3D_la_OBJECTS)
+libode3D_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(libode3D_la_CFLAGS) \
+	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+ at BUILD_ODE_TRUE@am_libode3D_la_rpath = -rpath $(pkglibdir)
+libokada2D_la_LIBADD =
+am_libokada2D_la_OBJECTS = libokada2D_la-okada.lo
+libokada2D_la_OBJECTS = $(am_libokada2D_la_OBJECTS)
+libokada2D_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(libokada2D_la_CFLAGS) \
+	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+libokada3D_la_LIBADD =
+am_libokada3D_la_OBJECTS = libokada3D_la-okada.lo
+libokada3D_la_OBJECTS = $(am_libokada3D_la_OBJECTS)
+libokada3D_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(libokada3D_la_CFLAGS) \
+	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+libparticulates2D_la_LIBADD =
+am_libparticulates2D_la_OBJECTS =  \
+	libparticulates2D_la-particulates.lo
+libparticulates2D_la_OBJECTS = $(am_libparticulates2D_la_OBJECTS)
+libparticulates2D_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) \
+	$(libparticulates2D_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+	$(LDFLAGS) -o $@
+libparticulates3D_la_LIBADD =
+am_libparticulates3D_la_OBJECTS =  \
+	libparticulates3D_la-particulates.lo
+libparticulates3D_la_OBJECTS = $(am_libparticulates3D_la_OBJECTS)
+libparticulates3D_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) \
+	$(libparticulates3D_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+	$(LDFLAGS) -o $@
 libstokes2D_la_LIBADD =
 am_libstokes2D_la_OBJECTS = libstokes2D_la-stokes.lo CW263.lo
 libstokes2D_la_OBJECTS = $(am_libstokes2D_la_OBJECTS)
@@ -96,6 +207,28 @@ libstokes3D_la_LIBADD =
 am_libstokes3D_la_OBJECTS = libstokes3D_la-stokes.lo CW263.lo
 libstokes3D_la_OBJECTS = $(am_libstokes3D_la_OBJECTS)
 @BUILD_STOKES_TRUE at am_libstokes3D_la_rpath = -rpath $(pkglibdir)
+am_libterrain2D_la_OBJECTS = libterrain2D_la-terrain.lo \
+	libterrain2D_la-rsurface.lo
+libterrain2D_la_OBJECTS = $(am_libterrain2D_la_OBJECTS)
+libterrain2D_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(libterrain2D_la_CFLAGS) \
+	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+am_libterrain3D_la_OBJECTS = terrain.lo rsurface.lo
+libterrain3D_la_OBJECTS = $(am_libterrain3D_la_OBJECTS)
+libtide2D_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
+am_libtide2D_la_OBJECTS = libtide2D_la-tide.lo
+libtide2D_la_OBJECTS = $(am_libtide2D_la_OBJECTS)
+libtide2D_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(libtide2D_la_CFLAGS) \
+	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+ at BUILD_TIDE_TRUE@am_libtide2D_la_rpath = -rpath $(pkglibdir)
+libtide3D_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
+am_libtide3D_la_OBJECTS = libtide3D_la-tide.lo
+libtide3D_la_OBJECTS = $(am_libtide3D_la_OBJECTS)
+libtide3D_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(libtide3D_la_CFLAGS) \
+	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+ at BUILD_TIDE_TRUE@am_libtide3D_la_rpath = -rpath $(pkglibdir)
 am_libwavewatch2D_la_OBJECTS = libwavewatch2D_la-wavewatch.lo
 libwavewatch2D_la_OBJECTS = $(am_libwavewatch2D_la_OBJECTS)
 libwavewatch2D_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
@@ -103,6 +236,31 @@ libwavewatch2D_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(libwavewatch2D_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
 	-o $@
 @BUILD_WAVEWATCH_TRUE at am_libwavewatch2D_la_rpath = -rpath $(pkglibdir)
+PROGRAMS = $(bin_PROGRAMS)
+am_rsurfacedraw_OBJECTS = rsurfacedraw-rsurfacedraw.$(OBJEXT) \
+	rsurfacedraw-rsurface.$(OBJEXT)
+rsurfacedraw_OBJECTS = $(am_rsurfacedraw_OBJECTS)
+rsurfacedraw_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(rsurfacedraw_CFLAGS) \
+	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+am_rsurfaceinfo_OBJECTS = rsurfaceinfo-rsurfaceinfo.$(OBJEXT) \
+	rsurfaceinfo-rsurface.$(OBJEXT)
+rsurfaceinfo_OBJECTS = $(am_rsurfaceinfo_OBJECTS)
+rsurfaceinfo_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(rsurfaceinfo_CFLAGS) \
+	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+am_rsurfacequery_OBJECTS = rsurfacequery-rsurfacequery.$(OBJEXT) \
+	rsurfacequery-rsurface.$(OBJEXT)
+rsurfacequery_OBJECTS = $(am_rsurfacequery_OBJECTS)
+rsurfacequery_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(rsurfacequery_CFLAGS) \
+	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+am_xyz2rsurface_OBJECTS = xyz2rsurface-xyz2rsurface.$(OBJEXT) \
+	xyz2rsurface-rsurface.$(OBJEXT)
+xyz2rsurface_OBJECTS = $(am_xyz2rsurface_OBJECTS)
+xyz2rsurface_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(xyz2rsurface_CFLAGS) \
+	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
 DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -123,12 +281,43 @@ F77LD = $(F77)
 F77LINK = $(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
 	--mode=link $(F77LD) $(AM_FFLAGS) $(FFLAGS) $(AM_LDFLAGS) \
 	$(LDFLAGS) -o $@
-SOURCES = $(libmap2D_la_SOURCES) $(libmap2D3_la_SOURCES) \
-	$(libmap3D_la_SOURCES) $(libstokes2D_la_SOURCES) \
-	$(libstokes3D_la_SOURCES) $(libwavewatch2D_la_SOURCES)
-DIST_SOURCES = $(libmap2D_la_SOURCES) $(libmap2D3_la_SOURCES) \
-	$(libmap3D_la_SOURCES) $(libstokes2D_la_SOURCES) \
-	$(libstokes3D_la_SOURCES) $(libwavewatch2D_la_SOURCES)
+FCCOMPILE = $(FC) $(AM_FCFLAGS) $(FCFLAGS)
+LTFCCOMPILE = $(LIBTOOL) --tag=FC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=compile $(FC) $(AM_FCFLAGS) $(FCFLAGS)
+FCLD = $(FC)
+FCLINK = $(LIBTOOL) --tag=FC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=link $(FCLD) $(AM_FCFLAGS) $(FCFLAGS) $(AM_LDFLAGS) \
+	$(LDFLAGS) -o $@
+SOURCES = $(libagmg2D_la_SOURCES) $(libagmg3D_la_SOURCES) \
+	$(libbubbles2D_la_SOURCES) $(libbubbles3D_la_SOURCES) \
+	$(libdf33D_la_SOURCES) $(libelectrohydro2D_la_SOURCES) \
+	$(libelectrohydro3D_la_SOURCES) $(libhypre2D_la_SOURCES) \
+	$(libhypre3D_la_SOURCES) $(liblis2D_la_SOURCES) \
+	$(liblis3D_la_SOURCES) $(libmap2D_la_SOURCES) \
+	$(libmap3D_la_SOURCES) $(libode2D_la_SOURCES) \
+	$(libode3D_la_SOURCES) $(libokada2D_la_SOURCES) \
+	$(libokada3D_la_SOURCES) $(libparticulates2D_la_SOURCES) \
+	$(libparticulates3D_la_SOURCES) $(libstokes2D_la_SOURCES) \
+	$(libstokes3D_la_SOURCES) $(libterrain2D_la_SOURCES) \
+	$(libterrain3D_la_SOURCES) $(libtide2D_la_SOURCES) \
+	$(libtide3D_la_SOURCES) $(libwavewatch2D_la_SOURCES) \
+	$(rsurfacedraw_SOURCES) $(rsurfaceinfo_SOURCES) \
+	$(rsurfacequery_SOURCES) $(xyz2rsurface_SOURCES)
+DIST_SOURCES = $(libagmg2D_la_SOURCES) $(libagmg3D_la_SOURCES) \
+	$(libbubbles2D_la_SOURCES) $(libbubbles3D_la_SOURCES) \
+	$(libdf33D_la_SOURCES) $(libelectrohydro2D_la_SOURCES) \
+	$(libelectrohydro3D_la_SOURCES) $(libhypre2D_la_SOURCES) \
+	$(libhypre3D_la_SOURCES) $(liblis2D_la_SOURCES) \
+	$(liblis3D_la_SOURCES) $(libmap2D_la_SOURCES) \
+	$(libmap3D_la_SOURCES) $(libode2D_la_SOURCES) \
+	$(libode3D_la_SOURCES) $(libokada2D_la_SOURCES) \
+	$(libokada3D_la_SOURCES) $(libparticulates2D_la_SOURCES) \
+	$(libparticulates3D_la_SOURCES) $(libstokes2D_la_SOURCES) \
+	$(libstokes3D_la_SOURCES) $(libterrain2D_la_SOURCES) \
+	$(libterrain3D_la_SOURCES) $(libtide2D_la_SOURCES) \
+	$(libtide3D_la_SOURCES) $(libwavewatch2D_la_SOURCES) \
+	$(rsurfacedraw_SOURCES) $(rsurfaceinfo_SOURCES) \
+	$(rsurfacequery_SOURCES) $(xyz2rsurface_SOURCES)
 RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
 	html-recursive info-recursive install-data-recursive \
 	install-dvi-recursive install-exec-recursive \
@@ -195,9 +384,10 @@ ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
 F77 = @F77@
+FC = @FC@
+FCFLAGS = @FCFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
-GFS2D3_LIBS = @GFS2D3_LIBS@
 GFS2D_LIBS = @GFS2D_LIBS@
 GFS3D_LIBS = @GFS3D_LIBS@
 GFS_COMPILATION_FLAGS = @GFS_COMPILATION_FLAGS@
@@ -232,6 +422,7 @@ LT_RELEASE = @LT_RELEASE@
 LT_REVISION = @LT_REVISION@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MODULES = @MODULES@
 NM = @NM@
@@ -239,6 +430,8 @@ NMEDIT = @NMEDIT@
 NO_UNDEFINED = @NO_UNDEFINED@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
+ODE_CFLAGS = @ODE_CFLAGS@
+ODE_LIBS = @ODE_LIBS@
 OTOOL = @OTOOL@
 OTOOL64 = @OTOOL64@
 PACKAGE = @PACKAGE@
@@ -260,9 +453,11 @@ abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
 ac_ct_F77 = @ac_ct_F77@
+ac_ct_FC = @ac_ct_FC@
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
 am__quote = @am__quote@
@@ -299,9 +494,9 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
+ode = @ode@
 oldincludedir = @oldincludedir@
 pdfdir = @pdfdir@
 prefix = @prefix@
@@ -317,82 +512,97 @@ top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 use_mpicc = @use_mpicc@
 
-#SUBDIRS = RStarTree fes2004 wavewatch
-SUBDIRS = wavewatch
+#SUBDIRS = RStarTree kdt fes2004 wavewatch
+SUBDIRS = kdt wavewatch
 AM_CPPFLAGS = -DGFS_MODULES_DIR=\"$(libdir)/gerris\"
 INCLUDES = -I$(top_srcdir)/src -I$(includedir) \
            -DG_LOG_DOMAIN=\"Gfs-modules\" $(GTS_CFLAGS)
 
- at HAS_LIBPROJ_TRUE@MAP = libmap2D.la libmap3D.la libmap2D3.la
-#if BUILD_TIDE
-#TIDE = libtide2D.la libtide3D.la libtide2D3.la
-#endif
+ at HAS_LIBPROJ_TRUE@MAP = libmap2D.la libmap3D.la
+ at BUILD_TIDE_TRUE@TIDE = libtide2D.la libtide3D.la
 @BUILD_STOKES_TRUE at STOKES = libstokes2D.la libstokes3D.la
 @BUILD_WAVEWATCH_TRUE at WAVEWATCH = libwavewatch2D.la
+ at BUILD_HYPRE_TRUE@HYPRE = libhypre2D.la libhypre3D.la
+ at BUILD_LIS_TRUE@LIS = liblis2D.la liblis3D.la
+ at BUILD_AGMG_TRUE@AGMG = libagmg2D.la libagmg3D.la
+ at BUILD_ODE_TRUE@ODE = libode2D.la libode3D.la
+ at HAS_GSL_TRUE@BUBBLES = libbubbles2D.la libbubbles3D.la
 pkglib_LTLIBRARIES = \
 	$(MAP) \
+	libterrain2D.la \
+	libterrain3D.la \
+	libparticulates2D.la \
+	libparticulates3D.la \
+	libokada2D.la \
+	libokada3D.la \
+	libdf33D.la \
+	libelectrohydro2D.la \
+	libelectrohydro3D.la \
 	$(TIDE) \
 	$(STOKES) \
-	$(WAVEWATCH)
+	$(WAVEWATCH) \
+	$(HYPRE) \
+	$(LIS) \
+	$(AGMG) \
+	$(ODE) \
+        $(BUBBLES)
 
-#	libterrain2D.la \
-#	libterrain3D.la \
-#	libterrain2D3.la 
-
-#bin_PROGRAMS = \
-#	xyz2rsurface \
-#	rsurfacequery \
-#	rsurfacedraw
 EXTRA_DIST = \
 	map.mod \
 	tide.mod \
 	terrain.mod \
 	stokes.mod \
-	wavewatch.mod
+	wavewatch.mod \
+	particulates.mod \
+	bubbles.mod \
+	df3.mod \
+	electrohydro.mod \
+	okada.mod \
+	hypre.mod \
+	lis.mod \
+	agmg.mod \
+	ode.mod
 
 BUILT_SOURCES = \
 	map.c \
 	tide.c \
 	terrain.c \
 	stokes.c \
-	wavewatch.c
+	wavewatch.c \
+	particulates.c \
+	bubbles.c \
+	df3.c \
+	electrohydro.c \
+	okada.c \
+	hypre.c \
+	lis.c \
+	agmg.c \
+	ode.c
 
 AM_LDFLAGS = $(NO_UNDEFINED)\
         -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE)\
-	-release $(LT_RELEASE) -export-dynamic
+	-release $(LT_RELEASE) -export-dynamic -module
 
 libmap3D_la_SOURCES = map.c
 libmap3D_la_LIBADD = -lproj
 libmap2D_la_SOURCES = map.c
 libmap2D_la_CFLAGS = $(AM_CFLAGS) -DFTT_2D=1
 libmap2D_la_LIBADD = -lproj
-libmap2D3_la_SOURCES = map.c
-libmap2D3_la_CFLAGS = $(AM_CFLAGS) -DFTT_2D3=1
-libmap2D3_la_LIBADD = -lproj
-
-#libterrain3D_la_SOURCES = terrain.c rsurface.c rsurface.h
-#libterrain3D_la_LIBADD = -LRStarTree -lcSmRST
-#libterrain3D_la_DEPENDENCIES = RStarTree/libcSmRST.la
-
-#libterrain2D_la_CFLAGS = $(AM_CFLAGS) -DFTT_2D=1
-#libterrain2D_la_SOURCES = terrain.c rsurface.c rsurface.h
-#libterrain2D_la_LIBADD = -LRStarTree -lcSmRST
-#libterrain2D_la_DEPENDENCIES = RStarTree/libcSmRST.la
-
-#libterrain2D3_la_SOURCES = terrain.c rsurface.c rsurface.h
-#libterrain2D3_la_CFLAGS = $(AM_CFLAGS) -DFTT_2D3=1
-#libterrain2D3_la_LIBADD = -LRStarTree -lcSmRST
-#libterrain2D3_la_DEPENDENCIES = RStarTree/libcSmRST.la
-
-#libtide3D_la_SOURCES = tide.c
-#libtide3D_la_CFLAGS = $(AM_CFLAGS) $(GSL_CFLAGS)
-#libtide3D_la_LIBADD = -Lfes2004 -lfes -lnetcdf $(GSL_LIBS)
-#libtide2D_la_SOURCES = tide.c
-#libtide2D_la_CFLAGS = $(AM_CFLAGS) $(GSL_CFLAGS) -DFTT_2D=1
-#libtide2D_la_LIBADD = -Lfes2004 -lfes -lnetcdf $(GSL_LIBS)
-#libtide2D3_la_SOURCES = tide.c
-#libtide2D3_la_CFLAGS = $(AM_CFLAGS) $(GSL_CFLAGS) -DFTT_2D3=1
-#libtide2D3_la_LIBADD = -Lfes2004 -lfes -lnetcdf $(GSL_LIBS)
+KDTLIBS = -LRStarTree -lcSmRST -Lkdt -lkdt
+KDTDEPS = RStarTree/libcSmRST.la kdt/libkdt.la
+libterrain3D_la_SOURCES = terrain.c rsurface.c rsurface.h
+libterrain3D_la_LIBADD = $(KDTLIBS)
+libterrain3D_la_DEPENDENCIES = $(KDTDEPS)
+libterrain2D_la_CFLAGS = $(AM_CFLAGS) -DFTT_2D=1
+libterrain2D_la_SOURCES = terrain.c rsurface.c rsurface.h
+libterrain2D_la_LIBADD = $(KDTLIBS)
+libterrain2D_la_DEPENDENCIES = $(KDTDEPS)
+libtide3D_la_SOURCES = tide.c
+libtide3D_la_CFLAGS = $(AM_CFLAGS) $(GSL_CFLAGS)
+libtide3D_la_LIBADD = -Lfes2004 -lfes -lnetcdf $(GSL_LIBS)
+libtide2D_la_SOURCES = tide.c
+libtide2D_la_CFLAGS = $(AM_CFLAGS) $(GSL_CFLAGS) -DFTT_2D=1
+libtide2D_la_LIBADD = -Lfes2004 -lfes -lnetcdf $(GSL_LIBS)
 libstokes3D_la_SOURCES = stokes.c CW263.f
 libstokes3D_la_CFLAGS = $(AM_CFLAGS)
 libstokes2D_la_SOURCES = stokes.c CW263.f
@@ -404,11 +614,71 @@ libwavewatch2D_la_CFLAGS = $(AM_CFLAGS) -DFTT_2D=1 \
   -DGFSW3INIT=`nm wavewatch/libwavewatch.a | grep gfsw3_init | awk '{ if ($$2 == "T") print $$3; }'`
 
 libwavewatch2D_la_DEPENDENCIES = wavewatch/libwavewatch.a
+libode3D_la_SOURCES = ode.c
+libode3D_la_CFLAGS = $(AM_CFLAGS) $(ODE_CFLAGS)
+libode3D_la_LIBADD = $(ODE_LIBS)
+libode2D_la_SOURCES = ode.c
+libode2D_la_CFLAGS = $(AM_CFLAGS) $(ODE_CFLAGS) -DFTT_2D=1
+libode2D_la_LIBADD = $(ODE_LIBS)
+xyz2rsurface_SOURCES = xyz2rsurface.c rsurface.c rsurface.h
+xyz2rsurface_LDADD = $(KDTLIBS)
+xyz2rsurface_CFLAGS = $(AM_CFLAGS)
+xyz2rsurface_DEPENDENCIES = $(KDTDEPS)
+rsurfacequery_SOURCES = rsurfacequery.c rsurface.c rsurface.h
+rsurfacequery_LDADD = -LRStarTree -lcSmRST -Lkdt -lkdt
+rsurfacequery_CFLAGS = $(AM_CFLAGS)
+rsurfacequery_DEPENDENCIES = $(KDTDEPS)
+rsurfacedraw_SOURCES = rsurfacedraw.c rsurface.c rsurface.h
+rsurfacedraw_LDADD = $(KDTLIBS)
+rsurfacedraw_CFLAGS = $(AM_CFLAGS)
+rsurfacedraw_DEPENDENCIES = $(KDTDEPS)
+rsurfaceinfo_SOURCES = rsurfaceinfo.c rsurface.c rsurface.h
+rsurfaceinfo_LDADD = $(KDTLIBS)
+rsurfaceinfo_CFLAGS = $(AM_CFLAGS)
+rsurfaceinfo_DEPENDENCIES = $(KDTDEPS)
+libparticulates3D_la_SOURCES = particulates.c particulates.h
+libparticulates3D_la_CFLAGS = $(AM_CFLAGS)
+libparticulates2D_la_SOURCES = particulates.c particulates.h
+libparticulates2D_la_CFLAGS = $(AM_CFLAGS) -DFTT_2D=1
+libbubbles3D_la_SOURCES = bubbles.c
+libbubbles3D_la_CFLAGS = $(AM_CFLAGS) $(GSL_CFLAGS)
+libbubbles3D_la_LIBADD = $(GSL_LIBS)
+libbubbles2D_la_SOURCES = bubbles.c
+libbubbles2D_la_CFLAGS = $(AM_CFLAGS) $(GSL_CFLAGS) -DFTT_2D=1
+libbubbles2D_la_LIBADD = $(GSL_LIBS)
+libhypre3D_la_SOURCES = hypre.c
+libhypre3D_la_CFLAGS = $(AM_CFLAGS)
+libhypre3D_la_LIBADD = -lHYPRE -lm
+libhypre2D_la_SOURCES = hypre.c
+libhypre2D_la_CFLAGS = $(AM_CFLAGS) -DFTT_2D=1
+libhypre2D_la_LIBADD = -lHYPRE -lm
+liblis3D_la_SOURCES = lis.c
+liblis3D_la_CFLAGS = $(AM_CFLAGS)
+liblis3D_la_LIBADD = -llis -lgfortran -lm
+liblis2D_la_SOURCES = lis.c
+liblis2D_la_CFLAGS = $(AM_CFLAGS) -DFTT_2D=1
+liblis2D_la_LIBADD = -llis -lgfortran -lm
+libagmg3D_la_SOURCES = agmg.c dagmg.f90
+libagmg3D_la_CFLAGS = $(AM_CFLAGS)
+libagmg3D_la_LIBADD = -llapack -lblas -lgfortran -lm
+libagmg2D_la_SOURCES = agmg.c dagmg.f90
+libagmg2D_la_CFLAGS = $(AM_CFLAGS) -DFTT_2D=1
+libagmg2D_la_LIBADD = -llapack -lblas -lgfortran -lm
+libokada3D_la_SOURCES = okada.c
+libokada3D_la_CFLAGS = $(AM_CFLAGS)
+libokada2D_la_SOURCES = okada.c
+libokada2D_la_CFLAGS = $(AM_CFLAGS) -DFTT_2D=1
+libdf33D_la_SOURCES = df3.c
+libdf33D_la_CFLAGS = $(AM_CFLAGS)
+libelectrohydro3D_la_SOURCES = electrohydro.c
+libelectrohydro3D_la_CFLAGS = $(AM_CFLAGS)
+libelectrohydro2D_la_SOURCES = electrohydro.c
+libelectrohydro2D_la_CFLAGS = $(AM_CFLAGS) -DFTT_2D=1
 all: $(BUILT_SOURCES)
 	$(MAKE) $(AM_MAKEFLAGS) all-recursive
 
 .SUFFIXES:
-.SUFFIXES: .c .f .lo .o .obj
+.SUFFIXES: .c .f .f90 .lo .mod .o .obj
 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
@@ -470,18 +740,113 @@ clean-pkglibLTLIBRARIES:
 	  echo "rm -f \"$${dir}/so_locations\""; \
 	  rm -f "$${dir}/so_locations"; \
 	done
+libagmg2D.la: $(libagmg2D_la_OBJECTS) $(libagmg2D_la_DEPENDENCIES) 
+	$(FCLINK) $(am_libagmg2D_la_rpath) $(libagmg2D_la_OBJECTS) $(libagmg2D_la_LIBADD) $(LIBS)
+libagmg3D.la: $(libagmg3D_la_OBJECTS) $(libagmg3D_la_DEPENDENCIES) 
+	$(FCLINK) $(am_libagmg3D_la_rpath) $(libagmg3D_la_OBJECTS) $(libagmg3D_la_LIBADD) $(LIBS)
+libbubbles2D.la: $(libbubbles2D_la_OBJECTS) $(libbubbles2D_la_DEPENDENCIES) 
+	$(libbubbles2D_la_LINK) $(am_libbubbles2D_la_rpath) $(libbubbles2D_la_OBJECTS) $(libbubbles2D_la_LIBADD) $(LIBS)
+libbubbles3D.la: $(libbubbles3D_la_OBJECTS) $(libbubbles3D_la_DEPENDENCIES) 
+	$(libbubbles3D_la_LINK) $(am_libbubbles3D_la_rpath) $(libbubbles3D_la_OBJECTS) $(libbubbles3D_la_LIBADD) $(LIBS)
+libdf33D.la: $(libdf33D_la_OBJECTS) $(libdf33D_la_DEPENDENCIES) 
+	$(libdf33D_la_LINK) -rpath $(pkglibdir) $(libdf33D_la_OBJECTS) $(libdf33D_la_LIBADD) $(LIBS)
+libelectrohydro2D.la: $(libelectrohydro2D_la_OBJECTS) $(libelectrohydro2D_la_DEPENDENCIES) 
+	$(libelectrohydro2D_la_LINK) -rpath $(pkglibdir) $(libelectrohydro2D_la_OBJECTS) $(libelectrohydro2D_la_LIBADD) $(LIBS)
+libelectrohydro3D.la: $(libelectrohydro3D_la_OBJECTS) $(libelectrohydro3D_la_DEPENDENCIES) 
+	$(libelectrohydro3D_la_LINK) -rpath $(pkglibdir) $(libelectrohydro3D_la_OBJECTS) $(libelectrohydro3D_la_LIBADD) $(LIBS)
+libhypre2D.la: $(libhypre2D_la_OBJECTS) $(libhypre2D_la_DEPENDENCIES) 
+	$(libhypre2D_la_LINK) $(am_libhypre2D_la_rpath) $(libhypre2D_la_OBJECTS) $(libhypre2D_la_LIBADD) $(LIBS)
+libhypre3D.la: $(libhypre3D_la_OBJECTS) $(libhypre3D_la_DEPENDENCIES) 
+	$(libhypre3D_la_LINK) $(am_libhypre3D_la_rpath) $(libhypre3D_la_OBJECTS) $(libhypre3D_la_LIBADD) $(LIBS)
+liblis2D.la: $(liblis2D_la_OBJECTS) $(liblis2D_la_DEPENDENCIES) 
+	$(liblis2D_la_LINK) $(am_liblis2D_la_rpath) $(liblis2D_la_OBJECTS) $(liblis2D_la_LIBADD) $(LIBS)
+liblis3D.la: $(liblis3D_la_OBJECTS) $(liblis3D_la_DEPENDENCIES) 
+	$(liblis3D_la_LINK) $(am_liblis3D_la_rpath) $(liblis3D_la_OBJECTS) $(liblis3D_la_LIBADD) $(LIBS)
 libmap2D.la: $(libmap2D_la_OBJECTS) $(libmap2D_la_DEPENDENCIES) 
 	$(libmap2D_la_LINK) $(am_libmap2D_la_rpath) $(libmap2D_la_OBJECTS) $(libmap2D_la_LIBADD) $(LIBS)
-libmap2D3.la: $(libmap2D3_la_OBJECTS) $(libmap2D3_la_DEPENDENCIES) 
-	$(libmap2D3_la_LINK) $(am_libmap2D3_la_rpath) $(libmap2D3_la_OBJECTS) $(libmap2D3_la_LIBADD) $(LIBS)
 libmap3D.la: $(libmap3D_la_OBJECTS) $(libmap3D_la_DEPENDENCIES) 
 	$(LINK) $(am_libmap3D_la_rpath) $(libmap3D_la_OBJECTS) $(libmap3D_la_LIBADD) $(LIBS)
+libode2D.la: $(libode2D_la_OBJECTS) $(libode2D_la_DEPENDENCIES) 
+	$(libode2D_la_LINK) $(am_libode2D_la_rpath) $(libode2D_la_OBJECTS) $(libode2D_la_LIBADD) $(LIBS)
+libode3D.la: $(libode3D_la_OBJECTS) $(libode3D_la_DEPENDENCIES) 
+	$(libode3D_la_LINK) $(am_libode3D_la_rpath) $(libode3D_la_OBJECTS) $(libode3D_la_LIBADD) $(LIBS)
+libokada2D.la: $(libokada2D_la_OBJECTS) $(libokada2D_la_DEPENDENCIES) 
+	$(libokada2D_la_LINK) -rpath $(pkglibdir) $(libokada2D_la_OBJECTS) $(libokada2D_la_LIBADD) $(LIBS)
+libokada3D.la: $(libokada3D_la_OBJECTS) $(libokada3D_la_DEPENDENCIES) 
+	$(libokada3D_la_LINK) -rpath $(pkglibdir) $(libokada3D_la_OBJECTS) $(libokada3D_la_LIBADD) $(LIBS)
+libparticulates2D.la: $(libparticulates2D_la_OBJECTS) $(libparticulates2D_la_DEPENDENCIES) 
+	$(libparticulates2D_la_LINK) -rpath $(pkglibdir) $(libparticulates2D_la_OBJECTS) $(libparticulates2D_la_LIBADD) $(LIBS)
+libparticulates3D.la: $(libparticulates3D_la_OBJECTS) $(libparticulates3D_la_DEPENDENCIES) 
+	$(libparticulates3D_la_LINK) -rpath $(pkglibdir) $(libparticulates3D_la_OBJECTS) $(libparticulates3D_la_LIBADD) $(LIBS)
 libstokes2D.la: $(libstokes2D_la_OBJECTS) $(libstokes2D_la_DEPENDENCIES) 
 	$(F77LINK) $(am_libstokes2D_la_rpath) $(libstokes2D_la_OBJECTS) $(libstokes2D_la_LIBADD) $(LIBS)
 libstokes3D.la: $(libstokes3D_la_OBJECTS) $(libstokes3D_la_DEPENDENCIES) 
 	$(F77LINK) $(am_libstokes3D_la_rpath) $(libstokes3D_la_OBJECTS) $(libstokes3D_la_LIBADD) $(LIBS)
+libterrain2D.la: $(libterrain2D_la_OBJECTS) $(libterrain2D_la_DEPENDENCIES) 
+	$(libterrain2D_la_LINK) -rpath $(pkglibdir) $(libterrain2D_la_OBJECTS) $(libterrain2D_la_LIBADD) $(LIBS)
+libterrain3D.la: $(libterrain3D_la_OBJECTS) $(libterrain3D_la_DEPENDENCIES) 
+	$(LINK) -rpath $(pkglibdir) $(libterrain3D_la_OBJECTS) $(libterrain3D_la_LIBADD) $(LIBS)
+libtide2D.la: $(libtide2D_la_OBJECTS) $(libtide2D_la_DEPENDENCIES) 
+	$(libtide2D_la_LINK) $(am_libtide2D_la_rpath) $(libtide2D_la_OBJECTS) $(libtide2D_la_LIBADD) $(LIBS)
+libtide3D.la: $(libtide3D_la_OBJECTS) $(libtide3D_la_DEPENDENCIES) 
+	$(libtide3D_la_LINK) $(am_libtide3D_la_rpath) $(libtide3D_la_OBJECTS) $(libtide3D_la_LIBADD) $(LIBS)
 libwavewatch2D.la: $(libwavewatch2D_la_OBJECTS) $(libwavewatch2D_la_DEPENDENCIES) 
 	$(libwavewatch2D_la_LINK) $(am_libwavewatch2D_la_rpath) $(libwavewatch2D_la_OBJECTS) $(libwavewatch2D_la_LIBADD) $(LIBS)
+install-binPROGRAMS: $(bin_PROGRAMS)
+	@$(NORMAL_INSTALL)
+	test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
+	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+	for p in $$list; do echo "$$p $$p"; done | \
+	sed 's/$(EXEEXT)$$//' | \
+	while read p p1; do if test -f $$p || test -f $$p1; \
+	  then echo "$$p"; echo "$$p"; else :; fi; \
+	done | \
+	sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+	    -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+	sed 'N;N;N;s,\n, ,g' | \
+	$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+	  { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+	    if ($$2 == $$4) files[d] = files[d] " " $$1; \
+	    else { print "f", $$3 "/" $$4, $$1; } } \
+	  END { for (d in files) print "f", d, files[d] }' | \
+	while read type dir files; do \
+	    if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+	    test -z "$$files" || { \
+	    echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+	    $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+	    } \
+	; done
+
+uninstall-binPROGRAMS:
+	@$(NORMAL_UNINSTALL)
+	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+	files=`for p in $$list; do echo "$$p"; done | \
+	  sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+	      -e 's/$$/$(EXEEXT)/' `; \
+	test -n "$$list" || exit 0; \
+	echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
+	cd "$(DESTDIR)$(bindir)" && rm -f $$files
+
+clean-binPROGRAMS:
+	@list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \
+	echo " rm -f" $$list; \
+	rm -f $$list || exit $$?; \
+	test -n "$(EXEEXT)" || exit 0; \
+	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+	echo " rm -f" $$list; \
+	rm -f $$list
+rsurfacedraw$(EXEEXT): $(rsurfacedraw_OBJECTS) $(rsurfacedraw_DEPENDENCIES) 
+	@rm -f rsurfacedraw$(EXEEXT)
+	$(rsurfacedraw_LINK) $(rsurfacedraw_OBJECTS) $(rsurfacedraw_LDADD) $(LIBS)
+rsurfaceinfo$(EXEEXT): $(rsurfaceinfo_OBJECTS) $(rsurfaceinfo_DEPENDENCIES) 
+	@rm -f rsurfaceinfo$(EXEEXT)
+	$(rsurfaceinfo_LINK) $(rsurfaceinfo_OBJECTS) $(rsurfaceinfo_LDADD) $(LIBS)
+rsurfacequery$(EXEEXT): $(rsurfacequery_OBJECTS) $(rsurfacequery_DEPENDENCIES) 
+	@rm -f rsurfacequery$(EXEEXT)
+	$(rsurfacequery_LINK) $(rsurfacequery_OBJECTS) $(rsurfacequery_LDADD) $(LIBS)
+xyz2rsurface$(EXEEXT): $(xyz2rsurface_OBJECTS) $(xyz2rsurface_DEPENDENCIES) 
+	@rm -f xyz2rsurface$(EXEEXT)
+	$(xyz2rsurface_LINK) $(xyz2rsurface_OBJECTS) $(xyz2rsurface_LDADD) $(LIBS)
 
 mostlyclean-compile:
 	-rm -f *.$(OBJEXT)
@@ -489,12 +854,42 @@ mostlyclean-compile:
 distclean-compile:
 	-rm -f *.tab.c
 
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libmap2D3_la-map.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libagmg2D_la-agmg.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libagmg3D_la-agmg.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libbubbles2D_la-bubbles.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libbubbles3D_la-bubbles.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libdf33D_la-df3.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libelectrohydro2D_la-electrohydro.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libelectrohydro3D_la-electrohydro.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libhypre2D_la-hypre.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libhypre3D_la-hypre.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/liblis2D_la-lis.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/liblis3D_la-lis.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libmap2D_la-map.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libode2D_la-ode.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libode3D_la-ode.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libokada2D_la-okada.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libokada3D_la-okada.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libparticulates2D_la-particulates.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libparticulates3D_la-particulates.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libstokes2D_la-stokes.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libstokes3D_la-stokes.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libterrain2D_la-rsurface.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libterrain2D_la-terrain.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libtide2D_la-tide.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libtide3D_la-tide.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libwavewatch2D_la-wavewatch.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/map.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/rsurface.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/rsurfacedraw-rsurface.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/rsurfacedraw-rsurfacedraw.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/rsurfaceinfo-rsurface.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/rsurfaceinfo-rsurfaceinfo.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/rsurfacequery-rsurface.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/rsurfacequery-rsurfacequery.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/terrain.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/xyz2rsurface-rsurface.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/xyz2rsurface-xyz2rsurface.Po at am__quote@
 
 .c.o:
 @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@@ -517,6 +912,83 @@ distclean-compile:
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
 
+libagmg2D_la-agmg.lo: agmg.c
+ at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libagmg2D_la_CFLAGS) $(CFLAGS) -MT libagmg2D_la-agmg.lo -MD -MP -MF $(DEPDIR)/libagmg2D_la-agmg.Tpo -c -o libagmg2D_la-agmg.lo `test -f 'agmg.c' || echo '$(srcdir)/'`agmg.c
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libagmg2D_la-agmg.Tpo $(DEPDIR)/libagmg2D_la-agmg.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='agmg.c' object='libagmg2D_la-agmg.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libagmg2D_la_CFLAGS) $(CFLAGS) -c -o libagmg2D_la-agmg.lo `test -f 'agmg.c' || echo '$(srcdir)/'`agmg.c
+
+libagmg3D_la-agmg.lo: agmg.c
+ at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libagmg3D_la_CFLAGS) $(CFLAGS) -MT libagmg3D_la-agmg.lo -MD -MP -MF $(DEPDIR)/libagmg3D_la-agmg.Tpo -c -o libagmg3D_la-agmg.lo `test -f 'agmg.c' || echo '$(srcdir)/'`agmg.c
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libagmg3D_la-agmg.Tpo $(DEPDIR)/libagmg3D_la-agmg.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='agmg.c' object='libagmg3D_la-agmg.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libagmg3D_la_CFLAGS) $(CFLAGS) -c -o libagmg3D_la-agmg.lo `test -f 'agmg.c' || echo '$(srcdir)/'`agmg.c
+
+libbubbles2D_la-bubbles.lo: bubbles.c
+ at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libbubbles2D_la_CFLAGS) $(CFLAGS) -MT libbubbles2D_la-bubbles.lo -MD -MP -MF $(DEPDIR)/libbubbles2D_la-bubbles.Tpo -c -o libbubbles2D_la-bubbles.lo `test -f 'bubbles.c' || echo '$(srcdir)/'`bubbles.c
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libbubbles2D_la-bubbles.Tpo $(DEPDIR)/libbubbles2D_la-bubbles.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='bubbles.c' object='libbubbles2D_la-bubbles.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libbubbles2D_la_CFLAGS) $(CFLAGS) -c -o libbubbles2D_la-bubbles.lo `test -f 'bubbles.c' || echo '$(srcdir)/'`bubbles.c
+
+libbubbles3D_la-bubbles.lo: bubbles.c
+ at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libbubbles3D_la_CFLAGS) $(CFLAGS) -MT libbubbles3D_la-bubbles.lo -MD -MP -MF $(DEPDIR)/libbubbles3D_la-bubbles.Tpo -c -o libbubbles3D_la-bubbles.lo `test -f 'bubbles.c' || echo '$(srcdir)/'`bubbles.c
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libbubbles3D_la-bubbles.Tpo $(DEPDIR)/libbubbles3D_la-bubbles.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='bubbles.c' object='libbubbles3D_la-bubbles.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libbubbles3D_la_CFLAGS) $(CFLAGS) -c -o libbubbles3D_la-bubbles.lo `test -f 'bubbles.c' || echo '$(srcdir)/'`bubbles.c
+
+libdf33D_la-df3.lo: df3.c
+ at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdf33D_la_CFLAGS) $(CFLAGS) -MT libdf33D_la-df3.lo -MD -MP -MF $(DEPDIR)/libdf33D_la-df3.Tpo -c -o libdf33D_la-df3.lo `test -f 'df3.c' || echo '$(srcdir)/'`df3.c
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libdf33D_la-df3.Tpo $(DEPDIR)/libdf33D_la-df3.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='df3.c' object='libdf33D_la-df3.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdf33D_la_CFLAGS) $(CFLAGS) -c -o libdf33D_la-df3.lo `test -f 'df3.c' || echo '$(srcdir)/'`df3.c
+
+libelectrohydro2D_la-electrohydro.lo: electrohydro.c
+ at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelectrohydro2D_la_CFLAGS) $(CFLAGS) -MT libelectrohydro2D_la-electrohydro.lo -MD -MP -MF $(DEPDIR)/libelectrohydro2D_la-electrohydro.Tpo -c -o libelectrohydro2D_la-electrohydro.lo `test -f 'electrohydro.c' || echo '$(srcdir)/'`electrohydro.c
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libelectrohydro2D_la-electrohydro.Tpo $(DEPDIR)/libelectrohydro2D_la-electrohydro.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='electrohydro.c' object='libelectrohydro2D_la-electrohydro.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelectrohydro2D_la_CFLAGS) $(CFLAGS) -c -o libelectrohydro2D_la-electrohydro.lo `test -f 'electrohydro.c' || echo '$(srcdir)/'`electrohydro.c
+
+libelectrohydro3D_la-electrohydro.lo: electrohydro.c
+ at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelectrohydro3D_la_CFLAGS) $(CFLAGS) -MT libelectrohydro3D_la-electrohydro.lo -MD -MP -MF $(DEPDIR)/libelectrohydro3D_la-electrohydro.Tpo -c -o libelectrohydro3D_la-electrohydro.lo `test -f 'electrohydro.c' || echo '$(srcdir)/'`electrohydro.c
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libelectrohydro3D_la-electrohydro.Tpo $(DEPDIR)/libelectrohydro3D_la-electrohydro.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='electrohydro.c' object='libelectrohydro3D_la-electrohydro.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelectrohydro3D_la_CFLAGS) $(CFLAGS) -c -o libelectrohydro3D_la-electrohydro.lo `test -f 'electrohydro.c' || echo '$(srcdir)/'`electrohydro.c
+
+libhypre2D_la-hypre.lo: hypre.c
+ at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhypre2D_la_CFLAGS) $(CFLAGS) -MT libhypre2D_la-hypre.lo -MD -MP -MF $(DEPDIR)/libhypre2D_la-hypre.Tpo -c -o libhypre2D_la-hypre.lo `test -f 'hypre.c' || echo '$(srcdir)/'`hypre.c
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libhypre2D_la-hypre.Tpo $(DEPDIR)/libhypre2D_la-hypre.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='hypre.c' object='libhypre2D_la-hypre.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhypre2D_la_CFLAGS) $(CFLAGS) -c -o libhypre2D_la-hypre.lo `test -f 'hypre.c' || echo '$(srcdir)/'`hypre.c
+
+libhypre3D_la-hypre.lo: hypre.c
+ at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhypre3D_la_CFLAGS) $(CFLAGS) -MT libhypre3D_la-hypre.lo -MD -MP -MF $(DEPDIR)/libhypre3D_la-hypre.Tpo -c -o libhypre3D_la-hypre.lo `test -f 'hypre.c' || echo '$(srcdir)/'`hypre.c
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libhypre3D_la-hypre.Tpo $(DEPDIR)/libhypre3D_la-hypre.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='hypre.c' object='libhypre3D_la-hypre.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhypre3D_la_CFLAGS) $(CFLAGS) -c -o libhypre3D_la-hypre.lo `test -f 'hypre.c' || echo '$(srcdir)/'`hypre.c
+
+liblis2D_la-lis.lo: lis.c
+ at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblis2D_la_CFLAGS) $(CFLAGS) -MT liblis2D_la-lis.lo -MD -MP -MF $(DEPDIR)/liblis2D_la-lis.Tpo -c -o liblis2D_la-lis.lo `test -f 'lis.c' || echo '$(srcdir)/'`lis.c
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/liblis2D_la-lis.Tpo $(DEPDIR)/liblis2D_la-lis.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='lis.c' object='liblis2D_la-lis.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblis2D_la_CFLAGS) $(CFLAGS) -c -o liblis2D_la-lis.lo `test -f 'lis.c' || echo '$(srcdir)/'`lis.c
+
+liblis3D_la-lis.lo: lis.c
+ at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblis3D_la_CFLAGS) $(CFLAGS) -MT liblis3D_la-lis.lo -MD -MP -MF $(DEPDIR)/liblis3D_la-lis.Tpo -c -o liblis3D_la-lis.lo `test -f 'lis.c' || echo '$(srcdir)/'`lis.c
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/liblis3D_la-lis.Tpo $(DEPDIR)/liblis3D_la-lis.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='lis.c' object='liblis3D_la-lis.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liblis3D_la_CFLAGS) $(CFLAGS) -c -o liblis3D_la-lis.lo `test -f 'lis.c' || echo '$(srcdir)/'`lis.c
+
 libmap2D_la-map.lo: map.c
 @am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmap2D_la_CFLAGS) $(CFLAGS) -MT libmap2D_la-map.lo -MD -MP -MF $(DEPDIR)/libmap2D_la-map.Tpo -c -o libmap2D_la-map.lo `test -f 'map.c' || echo '$(srcdir)/'`map.c
 @am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libmap2D_la-map.Tpo $(DEPDIR)/libmap2D_la-map.Plo
@@ -524,12 +996,47 @@ libmap2D_la-map.lo: map.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmap2D_la_CFLAGS) $(CFLAGS) -c -o libmap2D_la-map.lo `test -f 'map.c' || echo '$(srcdir)/'`map.c
 
-libmap2D3_la-map.lo: map.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmap2D3_la_CFLAGS) $(CFLAGS) -MT libmap2D3_la-map.lo -MD -MP -MF $(DEPDIR)/libmap2D3_la-map.Tpo -c -o libmap2D3_la-map.lo `test -f 'map.c' || echo '$(srcdir)/'`map.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libmap2D3_la-map.Tpo $(DEPDIR)/libmap2D3_la-map.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='map.c' object='libmap2D3_la-map.lo' libtool=yes @AMDEPBACKSLASH@
+libode2D_la-ode.lo: ode.c
+ at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libode2D_la_CFLAGS) $(CFLAGS) -MT libode2D_la-ode.lo -MD -MP -MF $(DEPDIR)/libode2D_la-ode.Tpo -c -o libode2D_la-ode.lo `test -f 'ode.c' || echo '$(srcdir)/'`ode.c
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libode2D_la-ode.Tpo $(DEPDIR)/libode2D_la-ode.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='ode.c' object='libode2D_la-ode.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmap2D3_la_CFLAGS) $(CFLAGS) -c -o libmap2D3_la-map.lo `test -f 'map.c' || echo '$(srcdir)/'`map.c
+ at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libode2D_la_CFLAGS) $(CFLAGS) -c -o libode2D_la-ode.lo `test -f 'ode.c' || echo '$(srcdir)/'`ode.c
+
+libode3D_la-ode.lo: ode.c
+ at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libode3D_la_CFLAGS) $(CFLAGS) -MT libode3D_la-ode.lo -MD -MP -MF $(DEPDIR)/libode3D_la-ode.Tpo -c -o libode3D_la-ode.lo `test -f 'ode.c' || echo '$(srcdir)/'`ode.c
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libode3D_la-ode.Tpo $(DEPDIR)/libode3D_la-ode.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='ode.c' object='libode3D_la-ode.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libode3D_la_CFLAGS) $(CFLAGS) -c -o libode3D_la-ode.lo `test -f 'ode.c' || echo '$(srcdir)/'`ode.c
+
+libokada2D_la-okada.lo: okada.c
+ at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libokada2D_la_CFLAGS) $(CFLAGS) -MT libokada2D_la-okada.lo -MD -MP -MF $(DEPDIR)/libokada2D_la-okada.Tpo -c -o libokada2D_la-okada.lo `test -f 'okada.c' || echo '$(srcdir)/'`okada.c
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libokada2D_la-okada.Tpo $(DEPDIR)/libokada2D_la-okada.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='okada.c' object='libokada2D_la-okada.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libokada2D_la_CFLAGS) $(CFLAGS) -c -o libokada2D_la-okada.lo `test -f 'okada.c' || echo '$(srcdir)/'`okada.c
+
+libokada3D_la-okada.lo: okada.c
+ at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libokada3D_la_CFLAGS) $(CFLAGS) -MT libokada3D_la-okada.lo -MD -MP -MF $(DEPDIR)/libokada3D_la-okada.Tpo -c -o libokada3D_la-okada.lo `test -f 'okada.c' || echo '$(srcdir)/'`okada.c
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libokada3D_la-okada.Tpo $(DEPDIR)/libokada3D_la-okada.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='okada.c' object='libokada3D_la-okada.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libokada3D_la_CFLAGS) $(CFLAGS) -c -o libokada3D_la-okada.lo `test -f 'okada.c' || echo '$(srcdir)/'`okada.c
+
+libparticulates2D_la-particulates.lo: particulates.c
+ at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libparticulates2D_la_CFLAGS) $(CFLAGS) -MT libparticulates2D_la-particulates.lo -MD -MP -MF $(DEPDIR)/libparticulates2D_la-particulates.Tpo -c -o libparticulates2D_la-particulates.lo `test -f 'particulates.c' || echo '$(srcdir)/'`particulates.c
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libparticulates2D_la-particulates.Tpo $(DEPDIR)/libparticulates2D_la-particulates.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='particulates.c' object='libparticulates2D_la-particulates.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libparticulates2D_la_CFLAGS) $(CFLAGS) -c -o libparticulates2D_la-particulates.lo `test -f 'particulates.c' || echo '$(srcdir)/'`particulates.c
+
+libparticulates3D_la-particulates.lo: particulates.c
+ at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libparticulates3D_la_CFLAGS) $(CFLAGS) -MT libparticulates3D_la-particulates.lo -MD -MP -MF $(DEPDIR)/libparticulates3D_la-particulates.Tpo -c -o libparticulates3D_la-particulates.lo `test -f 'particulates.c' || echo '$(srcdir)/'`particulates.c
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libparticulates3D_la-particulates.Tpo $(DEPDIR)/libparticulates3D_la-particulates.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='particulates.c' object='libparticulates3D_la-particulates.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libparticulates3D_la_CFLAGS) $(CFLAGS) -c -o libparticulates3D_la-particulates.lo `test -f 'particulates.c' || echo '$(srcdir)/'`particulates.c
 
 libstokes2D_la-stokes.lo: stokes.c
 @am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libstokes2D_la_CFLAGS) $(CFLAGS) -MT libstokes2D_la-stokes.lo -MD -MP -MF $(DEPDIR)/libstokes2D_la-stokes.Tpo -c -o libstokes2D_la-stokes.lo `test -f 'stokes.c' || echo '$(srcdir)/'`stokes.c
@@ -545,6 +1052,34 @@ libstokes3D_la-stokes.lo: stokes.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libstokes3D_la_CFLAGS) $(CFLAGS) -c -o libstokes3D_la-stokes.lo `test -f 'stokes.c' || echo '$(srcdir)/'`stokes.c
 
+libterrain2D_la-terrain.lo: terrain.c
+ at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libterrain2D_la_CFLAGS) $(CFLAGS) -MT libterrain2D_la-terrain.lo -MD -MP -MF $(DEPDIR)/libterrain2D_la-terrain.Tpo -c -o libterrain2D_la-terrain.lo `test -f 'terrain.c' || echo '$(srcdir)/'`terrain.c
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libterrain2D_la-terrain.Tpo $(DEPDIR)/libterrain2D_la-terrain.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='terrain.c' object='libterrain2D_la-terrain.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libterrain2D_la_CFLAGS) $(CFLAGS) -c -o libterrain2D_la-terrain.lo `test -f 'terrain.c' || echo '$(srcdir)/'`terrain.c
+
+libterrain2D_la-rsurface.lo: rsurface.c
+ at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libterrain2D_la_CFLAGS) $(CFLAGS) -MT libterrain2D_la-rsurface.lo -MD -MP -MF $(DEPDIR)/libterrain2D_la-rsurface.Tpo -c -o libterrain2D_la-rsurface.lo `test -f 'rsurface.c' || echo '$(srcdir)/'`rsurface.c
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libterrain2D_la-rsurface.Tpo $(DEPDIR)/libterrain2D_la-rsurface.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='rsurface.c' object='libterrain2D_la-rsurface.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libterrain2D_la_CFLAGS) $(CFLAGS) -c -o libterrain2D_la-rsurface.lo `test -f 'rsurface.c' || echo '$(srcdir)/'`rsurface.c
+
+libtide2D_la-tide.lo: tide.c
+ at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtide2D_la_CFLAGS) $(CFLAGS) -MT libtide2D_la-tide.lo -MD -MP -MF $(DEPDIR)/libtide2D_la-tide.Tpo -c -o libtide2D_la-tide.lo `test -f 'tide.c' || echo '$(srcdir)/'`tide.c
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libtide2D_la-tide.Tpo $(DEPDIR)/libtide2D_la-tide.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='tide.c' object='libtide2D_la-tide.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtide2D_la_CFLAGS) $(CFLAGS) -c -o libtide2D_la-tide.lo `test -f 'tide.c' || echo '$(srcdir)/'`tide.c
+
+libtide3D_la-tide.lo: tide.c
+ at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtide3D_la_CFLAGS) $(CFLAGS) -MT libtide3D_la-tide.lo -MD -MP -MF $(DEPDIR)/libtide3D_la-tide.Tpo -c -o libtide3D_la-tide.lo `test -f 'tide.c' || echo '$(srcdir)/'`tide.c
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libtide3D_la-tide.Tpo $(DEPDIR)/libtide3D_la-tide.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='tide.c' object='libtide3D_la-tide.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtide3D_la_CFLAGS) $(CFLAGS) -c -o libtide3D_la-tide.lo `test -f 'tide.c' || echo '$(srcdir)/'`tide.c
+
 libwavewatch2D_la-wavewatch.lo: wavewatch.c
 @am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libwavewatch2D_la_CFLAGS) $(CFLAGS) -MT libwavewatch2D_la-wavewatch.lo -MD -MP -MF $(DEPDIR)/libwavewatch2D_la-wavewatch.Tpo -c -o libwavewatch2D_la-wavewatch.lo `test -f 'wavewatch.c' || echo '$(srcdir)/'`wavewatch.c
 @am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libwavewatch2D_la-wavewatch.Tpo $(DEPDIR)/libwavewatch2D_la-wavewatch.Plo
@@ -552,6 +1087,118 @@ libwavewatch2D_la-wavewatch.lo: wavewatch.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libwavewatch2D_la_CFLAGS) $(CFLAGS) -c -o libwavewatch2D_la-wavewatch.lo `test -f 'wavewatch.c' || echo '$(srcdir)/'`wavewatch.c
 
+rsurfacedraw-rsurfacedraw.o: rsurfacedraw.c
+ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(rsurfacedraw_CFLAGS) $(CFLAGS) -MT rsurfacedraw-rsurfacedraw.o -MD -MP -MF $(DEPDIR)/rsurfacedraw-rsurfacedraw.Tpo -c -o rsurfacedraw-rsurfacedraw.o `test -f 'rsurfacedraw.c' || echo '$(srcdir)/'`rsurfacedraw.c
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/rsurfacedraw-rsurfacedraw.Tpo $(DEPDIR)/rsurfacedraw-rsurfacedraw.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='rsurfacedraw.c' object='rsurfacedraw-rsurfacedraw.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(rsurfacedraw_CFLAGS) $(CFLAGS) -c -o rsurfacedraw-rsurfacedraw.o `test -f 'rsurfacedraw.c' || echo '$(srcdir)/'`rsurfacedraw.c
+
+rsurfacedraw-rsurfacedraw.obj: rsurfacedraw.c
+ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(rsurfacedraw_CFLAGS) $(CFLAGS) -MT rsurfacedraw-rsurfacedraw.obj -MD -MP -MF $(DEPDIR)/rsurfacedraw-rsurfacedraw.Tpo -c -o rsurfacedraw-rsurfacedraw.obj `if test -f 'rsurfacedraw.c'; then $(CYGPATH_W) 'rsurfacedraw.c'; else $(CYGPATH_W) '$(srcdir)/rsurfacedraw.c'; fi`
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/rsurfacedraw-rsurfacedraw.Tpo $(DEPDIR)/rsurfacedraw-rsurfacedraw.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='rsurfacedraw.c' object='rsurfacedraw-rsurfacedraw.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(rsurfacedraw_CFLAGS) $(CFLAGS) -c -o rsurfacedraw-rsurfacedraw.obj `if test -f 'rsurfacedraw.c'; then $(CYGPATH_W) 'rsurfacedraw.c'; else $(CYGPATH_W) '$(srcdir)/rsurfacedraw.c'; fi`
+
+rsurfacedraw-rsurface.o: rsurface.c
+ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(rsurfacedraw_CFLAGS) $(CFLAGS) -MT rsurfacedraw-rsurface.o -MD -MP -MF $(DEPDIR)/rsurfacedraw-rsurface.Tpo -c -o rsurfacedraw-rsurface.o `test -f 'rsurface.c' || echo '$(srcdir)/'`rsurface.c
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/rsurfacedraw-rsurface.Tpo $(DEPDIR)/rsurfacedraw-rsurface.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='rsurface.c' object='rsurfacedraw-rsurface.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(rsurfacedraw_CFLAGS) $(CFLAGS) -c -o rsurfacedraw-rsurface.o `test -f 'rsurface.c' || echo '$(srcdir)/'`rsurface.c
+
+rsurfacedraw-rsurface.obj: rsurface.c
+ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(rsurfacedraw_CFLAGS) $(CFLAGS) -MT rsurfacedraw-rsurface.obj -MD -MP -MF $(DEPDIR)/rsurfacedraw-rsurface.Tpo -c -o rsurfacedraw-rsurface.obj `if test -f 'rsurface.c'; then $(CYGPATH_W) 'rsurface.c'; else $(CYGPATH_W) '$(srcdir)/rsurface.c'; fi`
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/rsurfacedraw-rsurface.Tpo $(DEPDIR)/rsurfacedraw-rsurface.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='rsurface.c' object='rsurfacedraw-rsurface.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(rsurfacedraw_CFLAGS) $(CFLAGS) -c -o rsurfacedraw-rsurface.obj `if test -f 'rsurface.c'; then $(CYGPATH_W) 'rsurface.c'; else $(CYGPATH_W) '$(srcdir)/rsurface.c'; fi`
+
+rsurfaceinfo-rsurfaceinfo.o: rsurfaceinfo.c
+ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(rsurfaceinfo_CFLAGS) $(CFLAGS) -MT rsurfaceinfo-rsurfaceinfo.o -MD -MP -MF $(DEPDIR)/rsurfaceinfo-rsurfaceinfo.Tpo -c -o rsurfaceinfo-rsurfaceinfo.o `test -f 'rsurfaceinfo.c' || echo '$(srcdir)/'`rsurfaceinfo.c
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/rsurfaceinfo-rsurfaceinfo.Tpo $(DEPDIR)/rsurfaceinfo-rsurfaceinfo.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='rsurfaceinfo.c' object='rsurfaceinfo-rsurfaceinfo.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(rsurfaceinfo_CFLAGS) $(CFLAGS) -c -o rsurfaceinfo-rsurfaceinfo.o `test -f 'rsurfaceinfo.c' || echo '$(srcdir)/'`rsurfaceinfo.c
+
+rsurfaceinfo-rsurfaceinfo.obj: rsurfaceinfo.c
+ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(rsurfaceinfo_CFLAGS) $(CFLAGS) -MT rsurfaceinfo-rsurfaceinfo.obj -MD -MP -MF $(DEPDIR)/rsurfaceinfo-rsurfaceinfo.Tpo -c -o rsurfaceinfo-rsurfaceinfo.obj `if test -f 'rsurfaceinfo.c'; then $(CYGPATH_W) 'rsurfaceinfo.c'; else $(CYGPATH_W) '$(srcdir)/rsurfaceinfo.c'; fi`
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/rsurfaceinfo-rsurfaceinfo.Tpo $(DEPDIR)/rsurfaceinfo-rsurfaceinfo.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='rsurfaceinfo.c' object='rsurfaceinfo-rsurfaceinfo.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(rsurfaceinfo_CFLAGS) $(CFLAGS) -c -o rsurfaceinfo-rsurfaceinfo.obj `if test -f 'rsurfaceinfo.c'; then $(CYGPATH_W) 'rsurfaceinfo.c'; else $(CYGPATH_W) '$(srcdir)/rsurfaceinfo.c'; fi`
+
+rsurfaceinfo-rsurface.o: rsurface.c
+ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(rsurfaceinfo_CFLAGS) $(CFLAGS) -MT rsurfaceinfo-rsurface.o -MD -MP -MF $(DEPDIR)/rsurfaceinfo-rsurface.Tpo -c -o rsurfaceinfo-rsurface.o `test -f 'rsurface.c' || echo '$(srcdir)/'`rsurface.c
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/rsurfaceinfo-rsurface.Tpo $(DEPDIR)/rsurfaceinfo-rsurface.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='rsurface.c' object='rsurfaceinfo-rsurface.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(rsurfaceinfo_CFLAGS) $(CFLAGS) -c -o rsurfaceinfo-rsurface.o `test -f 'rsurface.c' || echo '$(srcdir)/'`rsurface.c
+
+rsurfaceinfo-rsurface.obj: rsurface.c
+ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(rsurfaceinfo_CFLAGS) $(CFLAGS) -MT rsurfaceinfo-rsurface.obj -MD -MP -MF $(DEPDIR)/rsurfaceinfo-rsurface.Tpo -c -o rsurfaceinfo-rsurface.obj `if test -f 'rsurface.c'; then $(CYGPATH_W) 'rsurface.c'; else $(CYGPATH_W) '$(srcdir)/rsurface.c'; fi`
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/rsurfaceinfo-rsurface.Tpo $(DEPDIR)/rsurfaceinfo-rsurface.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='rsurface.c' object='rsurfaceinfo-rsurface.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(rsurfaceinfo_CFLAGS) $(CFLAGS) -c -o rsurfaceinfo-rsurface.obj `if test -f 'rsurface.c'; then $(CYGPATH_W) 'rsurface.c'; else $(CYGPATH_W) '$(srcdir)/rsurface.c'; fi`
+
+rsurfacequery-rsurfacequery.o: rsurfacequery.c
+ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(rsurfacequery_CFLAGS) $(CFLAGS) -MT rsurfacequery-rsurfacequery.o -MD -MP -MF $(DEPDIR)/rsurfacequery-rsurfacequery.Tpo -c -o rsurfacequery-rsurfacequery.o `test -f 'rsurfacequery.c' || echo '$(srcdir)/'`rsurfacequery.c
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/rsurfacequery-rsurfacequery.Tpo $(DEPDIR)/rsurfacequery-rsurfacequery.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='rsurfacequery.c' object='rsurfacequery-rsurfacequery.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(rsurfacequery_CFLAGS) $(CFLAGS) -c -o rsurfacequery-rsurfacequery.o `test -f 'rsurfacequery.c' || echo '$(srcdir)/'`rsurfacequery.c
+
+rsurfacequery-rsurfacequery.obj: rsurfacequery.c
+ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(rsurfacequery_CFLAGS) $(CFLAGS) -MT rsurfacequery-rsurfacequery.obj -MD -MP -MF $(DEPDIR)/rsurfacequery-rsurfacequery.Tpo -c -o rsurfacequery-rsurfacequery.obj `if test -f 'rsurfacequery.c'; then $(CYGPATH_W) 'rsurfacequery.c'; else $(CYGPATH_W) '$(srcdir)/rsurfacequery.c'; fi`
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/rsurfacequery-rsurfacequery.Tpo $(DEPDIR)/rsurfacequery-rsurfacequery.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='rsurfacequery.c' object='rsurfacequery-rsurfacequery.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(rsurfacequery_CFLAGS) $(CFLAGS) -c -o rsurfacequery-rsurfacequery.obj `if test -f 'rsurfacequery.c'; then $(CYGPATH_W) 'rsurfacequery.c'; else $(CYGPATH_W) '$(srcdir)/rsurfacequery.c'; fi`
+
+rsurfacequery-rsurface.o: rsurface.c
+ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(rsurfacequery_CFLAGS) $(CFLAGS) -MT rsurfacequery-rsurface.o -MD -MP -MF $(DEPDIR)/rsurfacequery-rsurface.Tpo -c -o rsurfacequery-rsurface.o `test -f 'rsurface.c' || echo '$(srcdir)/'`rsurface.c
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/rsurfacequery-rsurface.Tpo $(DEPDIR)/rsurfacequery-rsurface.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='rsurface.c' object='rsurfacequery-rsurface.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(rsurfacequery_CFLAGS) $(CFLAGS) -c -o rsurfacequery-rsurface.o `test -f 'rsurface.c' || echo '$(srcdir)/'`rsurface.c
+
+rsurfacequery-rsurface.obj: rsurface.c
+ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(rsurfacequery_CFLAGS) $(CFLAGS) -MT rsurfacequery-rsurface.obj -MD -MP -MF $(DEPDIR)/rsurfacequery-rsurface.Tpo -c -o rsurfacequery-rsurface.obj `if test -f 'rsurface.c'; then $(CYGPATH_W) 'rsurface.c'; else $(CYGPATH_W) '$(srcdir)/rsurface.c'; fi`
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/rsurfacequery-rsurface.Tpo $(DEPDIR)/rsurfacequery-rsurface.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='rsurface.c' object='rsurfacequery-rsurface.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(rsurfacequery_CFLAGS) $(CFLAGS) -c -o rsurfacequery-rsurface.obj `if test -f 'rsurface.c'; then $(CYGPATH_W) 'rsurface.c'; else $(CYGPATH_W) '$(srcdir)/rsurface.c'; fi`
+
+xyz2rsurface-xyz2rsurface.o: xyz2rsurface.c
+ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xyz2rsurface_CFLAGS) $(CFLAGS) -MT xyz2rsurface-xyz2rsurface.o -MD -MP -MF $(DEPDIR)/xyz2rsurface-xyz2rsurface.Tpo -c -o xyz2rsurface-xyz2rsurface.o `test -f 'xyz2rsurface.c' || echo '$(srcdir)/'`xyz2rsurface.c
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/xyz2rsurface-xyz2rsurface.Tpo $(DEPDIR)/xyz2rsurface-xyz2rsurface.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='xyz2rsurface.c' object='xyz2rsurface-xyz2rsurface.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xyz2rsurface_CFLAGS) $(CFLAGS) -c -o xyz2rsurface-xyz2rsurface.o `test -f 'xyz2rsurface.c' || echo '$(srcdir)/'`xyz2rsurface.c
+
+xyz2rsurface-xyz2rsurface.obj: xyz2rsurface.c
+ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xyz2rsurface_CFLAGS) $(CFLAGS) -MT xyz2rsurface-xyz2rsurface.obj -MD -MP -MF $(DEPDIR)/xyz2rsurface-xyz2rsurface.Tpo -c -o xyz2rsurface-xyz2rsurface.obj `if test -f 'xyz2rsurface.c'; then $(CYGPATH_W) 'xyz2rsurface.c'; else $(CYGPATH_W) '$(srcdir)/xyz2rsurface.c'; fi`
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/xyz2rsurface-xyz2rsurface.Tpo $(DEPDIR)/xyz2rsurface-xyz2rsurface.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='xyz2rsurface.c' object='xyz2rsurface-xyz2rsurface.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xyz2rsurface_CFLAGS) $(CFLAGS) -c -o xyz2rsurface-xyz2rsurface.obj `if test -f 'xyz2rsurface.c'; then $(CYGPATH_W) 'xyz2rsurface.c'; else $(CYGPATH_W) '$(srcdir)/xyz2rsurface.c'; fi`
+
+xyz2rsurface-rsurface.o: rsurface.c
+ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xyz2rsurface_CFLAGS) $(CFLAGS) -MT xyz2rsurface-rsurface.o -MD -MP -MF $(DEPDIR)/xyz2rsurface-rsurface.Tpo -c -o xyz2rsurface-rsurface.o `test -f 'rsurface.c' || echo '$(srcdir)/'`rsurface.c
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/xyz2rsurface-rsurface.Tpo $(DEPDIR)/xyz2rsurface-rsurface.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='rsurface.c' object='xyz2rsurface-rsurface.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xyz2rsurface_CFLAGS) $(CFLAGS) -c -o xyz2rsurface-rsurface.o `test -f 'rsurface.c' || echo '$(srcdir)/'`rsurface.c
+
+xyz2rsurface-rsurface.obj: rsurface.c
+ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xyz2rsurface_CFLAGS) $(CFLAGS) -MT xyz2rsurface-rsurface.obj -MD -MP -MF $(DEPDIR)/xyz2rsurface-rsurface.Tpo -c -o xyz2rsurface-rsurface.obj `if test -f 'rsurface.c'; then $(CYGPATH_W) 'rsurface.c'; else $(CYGPATH_W) '$(srcdir)/rsurface.c'; fi`
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/xyz2rsurface-rsurface.Tpo $(DEPDIR)/xyz2rsurface-rsurface.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='rsurface.c' object='xyz2rsurface-rsurface.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xyz2rsurface_CFLAGS) $(CFLAGS) -c -o xyz2rsurface-rsurface.obj `if test -f 'rsurface.c'; then $(CYGPATH_W) 'rsurface.c'; else $(CYGPATH_W) '$(srcdir)/rsurface.c'; fi`
+
 .f.o:
 	$(F77COMPILE) -c -o $@ $<
 
@@ -561,6 +1208,15 @@ libwavewatch2D_la-wavewatch.lo: wavewatch.c
 .f.lo:
 	$(LTF77COMPILE) -c -o $@ $<
 
+.f90.o:
+	$(FCCOMPILE) -c -o $@ $<
+
+.f90.obj:
+	$(FCCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.f90.lo:
+	$(LTFCCOMPILE) -c -o $@ $<
+
 mostlyclean-libtool:
 	-rm -f *.lo
 
@@ -574,7 +1230,7 @@ clean-libtool:
 #     (which will cause the Makefiles to be regenerated when you run `make');
 # (2) otherwise, pass the desired values on the `make' command line.
 $(RECURSIVE_TARGETS):
-	@failcom='exit 1'; \
+	@fail= failcom='exit 1'; \
 	for f in x $$MAKEFLAGS; do \
 	  case $$f in \
 	    *=* | --[!k]*);; \
@@ -599,7 +1255,7 @@ $(RECURSIVE_TARGETS):
 	fi; test -z "$$fail"
 
 $(RECURSIVE_CLEAN_TARGETS):
-	@failcom='exit 1'; \
+	@fail= failcom='exit 1'; \
 	for f in x $$MAKEFLAGS; do \
 	  case $$f in \
 	    *=* | --[!k]*);; \
@@ -766,10 +1422,10 @@ distdir: $(DISTFILES)
 check-am: all-am
 check: $(BUILT_SOURCES)
 	$(MAKE) $(AM_MAKEFLAGS) check-recursive
-all-am: Makefile $(LTLIBRARIES)
+all-am: Makefile $(LTLIBRARIES) $(PROGRAMS)
 installdirs: installdirs-recursive
 installdirs-am:
-	for dir in "$(DESTDIR)$(pkglibdir)"; do \
+	for dir in "$(DESTDIR)$(pkglibdir)" "$(DESTDIR)$(bindir)"; do \
 	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
 	done
 install: $(BUILT_SOURCES)
@@ -799,8 +1455,8 @@ maintainer-clean-generic:
 	-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
 clean: clean-recursive
 
-clean-am: clean-generic clean-libtool clean-pkglibLTLIBRARIES \
-	mostlyclean-am
+clean-am: clean-binPROGRAMS clean-generic clean-libtool \
+	clean-pkglibLTLIBRARIES mostlyclean-am
 
 distclean: distclean-recursive
 	-rm -rf ./$(DEPDIR)
@@ -826,7 +1482,7 @@ install-dvi: install-dvi-recursive
 
 install-dvi-am:
 
-install-exec-am: install-pkglibLTLIBRARIES
+install-exec-am: install-binPROGRAMS install-pkglibLTLIBRARIES
 
 install-html: install-html-recursive
 
@@ -866,51 +1522,37 @@ ps: ps-recursive
 
 ps-am:
 
-uninstall-am: uninstall-pkglibLTLIBRARIES
+uninstall-am: uninstall-binPROGRAMS uninstall-pkglibLTLIBRARIES
 
 .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all check \
 	ctags-recursive install install-am install-strip \
 	tags-recursive
 
 .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
-	all all-am check check-am clean clean-generic clean-libtool \
-	clean-pkglibLTLIBRARIES ctags ctags-recursive dist-hook \
-	distclean distclean-compile distclean-generic \
-	distclean-libtool distclean-tags distdir dvi dvi-am html \
-	html-am info info-am install install-am install-data \
-	install-data-am install-dvi install-dvi-am install-exec \
-	install-exec-am install-html install-html-am install-info \
-	install-info-am install-man install-pdf install-pdf-am \
-	install-pkglibLTLIBRARIES install-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	installdirs-am maintainer-clean maintainer-clean-generic \
-	mostlyclean mostlyclean-compile mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
-	uninstall uninstall-am uninstall-pkglibLTLIBRARIES
-
-
-#xyz2rsurface_SOURCES = xyz2rsurface.c rsurface.c rsurface.h
-#xyz2rsurface_LDADD = -LRStarTree -lcSmRST
-#xyz2rsurface_CFLAGS = $(AM_CFLAGS)
-#xyz2rsurface_DEPENDENCIES = RStarTree/libcSmRST.la
-
-#rsurfacequery_SOURCES = rsurfacequery.c rsurface.c rsurface.h
-#rsurfacequery_LDADD = -LRStarTree -lcSmRST
-#rsurfacequery_CFLAGS = $(AM_CFLAGS)
-#rsurfacequery_DEPENDENCIES = RStarTree/libcSmRST.la
-
-#rsurfacedraw_SOURCES = rsurfacedraw.c rsurface.c rsurface.h
-#rsurfacedraw_LDADD = -LRStarTree -lcSmRST
-#rsurfacedraw_CFLAGS = $(AM_CFLAGS)
-#rsurfacedraw_DEPENDENCIES = RStarTree/libcSmRST.la
-
- at HAVE_MODULES_TRUE@%.c : %.mod
+	all all-am check check-am clean clean-binPROGRAMS \
+	clean-generic clean-libtool clean-pkglibLTLIBRARIES ctags \
+	ctags-recursive dist-hook distclean distclean-compile \
+	distclean-generic distclean-libtool distclean-tags distdir dvi \
+	dvi-am html html-am info info-am install install-am \
+	install-binPROGRAMS install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-pkglibLTLIBRARIES \
+	install-ps install-ps-am install-strip installcheck \
+	installcheck-am installdirs installdirs-am maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-compile \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags tags-recursive uninstall uninstall-am \
+	uninstall-binPROGRAMS uninstall-pkglibLTLIBRARIES
+
+
+ at HAVE_MODULES_TRUE@.mod.c:
 @HAVE_MODULES_TRUE@	@echo "/* $@" > $@
 @HAVE_MODULES_TRUE@	@echo " * This is a generated file.  Please modify \`$<'" >> $@
 @HAVE_MODULES_TRUE@	@echo " */" >> $@
 @HAVE_MODULES_TRUE@	@echo "#line 1 \""$<"\"" >> $@
 @HAVE_MODULES_TRUE@	@cat $< >> $@
- at HAVE_MODULES_FALSE@%.c : %.mod
+ at HAVE_MODULES_FALSE@.mod.c:
 @HAVE_MODULES_FALSE@	@echo "/* $@" > $@
 @HAVE_MODULES_FALSE@	@echo " * This is a generated file.  Please modify \`$<'" >> $@
 @HAVE_MODULES_FALSE@	@echo " */" >> $@
diff --git a/modules/agmg.mod b/modules/agmg.mod
new file mode 100644
index 0000000..02c63a2
--- /dev/null
+++ b/modules/agmg.mod
@@ -0,0 +1,175 @@
+/* Gerris - The GNU Flow Solver                       (-*-C-*-)
+ * Copyright (C) 2010 Stephane Popinet, CNRS
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.  
+ */
+
+#include "variable.h"
+#include "poisson.h"
+
+extern void dagmg_ (const int * n, 
+		    double * a, int * ja, int * ia, 
+		    double * f, double * x, 
+		    const int * ijob, const int * iprint, 
+		    const int * nrest, int * iter, const double * tol);
+
+static int ijob = 0, verbose = 0, nrest = -1;
+
+static void solve_poisson_problem_using_agmg (GfsDomain * domain,
+					      GfsLinearProblem * lp,
+					      GfsMultilevelParams * par)
+{
+  /* fixme: doesn't work in parallel yet */
+  g_assert (lp->istart == 0);
+
+  /* create "compressed sparse row" (CSR) format arrays (with Fortran indexing) */
+  int i, j, k, n = lp->rhs->len;
+  GArray * a = g_array_new (FALSE, FALSE, sizeof (double));
+  GArray * ia = g_array_new (FALSE, FALSE, sizeof (int));
+  GArray * ja = g_array_new (FALSE, FALSE, sizeof (int));
+  for (i = 0; i < n; i++) {
+    GfsStencil * stencil = g_ptr_array_index (lp->LP, i);
+    k = a->len + 1;
+    g_array_append_val (ia, k);
+    /* check that the system is properly ordered */
+    g_assert (g_array_index (stencil->id, int, 0) == i);
+    /* AGMG needs strictly positive diagonal components */
+    g_assert (- g_array_index (stencil->coeff, double, 0) > 0.);
+    for (j = 0; j < stencil->id->len; j++) {
+      double coeff = - g_array_index (stencil->coeff, double, j);
+      g_array_append_val (a, coeff);
+      k = g_array_index (stencil->id, int, j) + 1;
+      g_array_append_val (ja, k);
+    }
+  }
+  k = a->len + 1;
+  g_array_append_val (ia, k);
+
+  /* solve */
+  int iter = par->nitermax;
+  double tol = MIN (par->tolerance/par->residual.infty, 0.99);
+  int iprint = verbose ? 6 : -1;
+  dagmg_ (&n, (double *) a->data, (int *) ja->data, (int *) ia->data, 
+	  (double *) lp->rhs->data, (double *) lp->lhs->data, 
+	  &ijob, &iprint, &nrest, &iter, &tol);
+  par->niter = iter;
+
+  /* cleanup */
+  g_array_free (a, TRUE);
+  g_array_free (ia, TRUE);
+  g_array_free (ja, TRUE);
+}
+
+typedef struct {
+  GfsLinearProblem * lp;
+  GfsVariable * lhs;
+} CopyParams;
+
+static void copy_poisson_solution (FttCell * cell, CopyParams * p)
+{
+   GFS_VALUE (cell, p->lhs) =
+     /* we need to change sign because we changed the sign of the
+	matrix to make the diagonal terms positive */
+     - g_array_index (p->lp->lhs, gdouble, (int) GFS_VALUE (cell, p->lp->id) - p->lp->istart);
+}
+
+static void correct (FttCell * cell, gpointer * data)
+{
+  GfsVariable * u = data[0];
+  GfsVariable * dp = data[1];
+  GFS_VALUE (cell, u) += GFS_VALUE (cell, dp);
+}
+
+static void poisson_solve (GfsDomain * domain,
+			   GfsMultilevelParams * par,
+			   GfsVariable * lhs,
+			   GfsVariable * rhs,
+			   GfsVariable * res,
+			   GfsVariable * dia,
+			   gdouble dt)
+{
+  /* calculates the initial residual and its norm */
+  gfs_residual (domain, par->dimension, FTT_TRAVERSE_LEAFS, -1, lhs, rhs, dia, res);
+  par->residual_before = par->residual = 
+    gfs_domain_norm_residual (domain, FTT_TRAVERSE_LEAFS, -1, dt, res);
+
+  if (par->nitermax > 0 && par->residual.infty > 0.) {
+    GfsVariable * dp = gfs_temporary_variable (domain);
+    gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
+			      (FttCellTraverseFunc) gfs_cell_reset, dp);
+    GfsLinearProblem * lp = gfs_get_poisson_problem (domain, res, dp, dia, -1, lhs);
+ 
+    solve_poisson_problem_using_agmg (domain, lp, par);
+
+    CopyParams p = { lp, dp };
+    gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
+    			      (FttCellTraverseFunc) copy_poisson_solution, &p);
+    gfs_linear_problem_destroy (lp);
+
+    /* correct on leaf cells */
+    gpointer data[2];
+    data[0] = lhs;
+    data[1] = dp;
+    gfs_traverse_and_bc (domain, FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
+			 (FttCellTraverseFunc) correct, data,
+			 lhs, lhs);
+    gts_object_destroy (GTS_OBJECT (dp));
+
+    /* compute new residual on leaf cells */
+    gfs_residual (domain, par->dimension, FTT_TRAVERSE_LEAFS, -1, lhs, rhs, dia, res);
+    par->residual = gfs_domain_norm_residual (domain, FTT_TRAVERSE_LEAFS, -1, dt, res);
+  }
+}
+
+/* Initialize module */
+void          gfs_module_read     (GtsFile * fp, GfsSimulation * sim);
+void          gfs_module_write    (FILE * fp);
+
+/* only define gfs_module_name for "official" modules (i.e. those installed in
+   GFS_MODULES_DIR) */
+const gchar gfs_module_name[] = "agmg";
+const gchar * g_module_check_init (void);
+
+const gchar * g_module_check_init (void)
+{
+  return NULL;
+}
+
+void gfs_module_read (GtsFile * fp, GfsSimulation * sim)
+{
+  g_return_if_fail (fp != NULL);
+
+  /* initialise the poisson cycle hook */
+  sim->approx_projection_params.poisson_solve = poisson_solve;
+  sim->projection_params.poisson_solve = poisson_solve;
+
+  if (fp->type == '{') {
+    GtsFileVariable var[] = {
+      {GTS_INT, "ijob",    TRUE, &ijob},
+      {GTS_INT, "verbose", TRUE, &verbose},
+      {GTS_INT, "nrest",   TRUE, &nrest},
+      {GTS_NONE}
+    };
+    gts_file_assign_variables (fp, var);
+  }
+}
+
+void gfs_module_write (FILE * fp)
+{
+  g_return_if_fail (fp != NULL);
+
+  fprintf (fp, " { ijob = %d verbose = %d nrest = %d }", ijob, verbose, nrest);
+}
diff --git a/modules/bubbles.mod b/modules/bubbles.mod
new file mode 100644
index 0000000..035c8d2
--- /dev/null
+++ b/modules/bubbles.mod
@@ -0,0 +1,511 @@
+/* Gerris - The GNU Flow Solver			(-*-C-*-)
+ * Copyright (C) 2010-2011 Daniel Fuster/CNRS
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.  
+ */
+
+#include "particulates.h"
+#include "ftt.h"
+
+#include <stdlib.h>
+#include <gsl/gsl_errno.h>
+#include <gsl/gsl_matrix.h>
+#include <gsl/gsl_odeiv.h>
+
+/* GfsBubble: Header */
+
+typedef struct _GfsBubble GfsBubble;
+
+struct _GfsBubble {
+  /*< private >*/
+  GfsParticulate parent;
+  gdouble rliq;
+  
+  /*< public >*/
+  gdouble velR, p0, R0, vol_liq;
+};
+
+#define GFS_BUBBLE(obj)            GTS_OBJECT_CAST (obj, GfsBubble, gfs_bubble_class ())
+#define GFS_IS_BUBBLE(obj)         (gts_object_is_from_class (obj, gfs_bubble_class ()))
+
+static GfsEventClass * gfs_bubble_class  (void);
+
+/* GfsBubble: Object */
+/* The radius of each bubble varies according to the Rayleigh-Plesset equation */
+
+typedef struct {
+  gdouble liqpres, liqdens;
+  GfsBubble * bubble;
+} RPData;
+
+static gdouble p_state_ec (GfsBubble * bubble, gdouble rb)
+{
+  return bubble->p0*pow (bubble->R0/rb, 3.*1.4);
+}
+
+static int func (double t, const double y[], double f[], void * params)
+{
+  RPData * rp = (RPData *) params;
+  f[0] = y[1];
+  /* interface acceleration- incompressible RP equation */
+  gdouble pbubble = p_state_ec (rp->bubble, y[0]);
+  f[1] = ((pbubble - rp->liqpres)/rp->liqdens - 3./2.*y[1]*y[1])/y[0];
+  return GSL_SUCCESS;
+}
+
+/* jacobian matrix */
+int static jac (double t, const double y[], double *dfdy, 
+		double dfdt[], void *params)
+{
+  RPData * rp = (RPData *) params;
+  gdouble pbubble = p_state_ec (rp->bubble, y[0]);
+  gdouble dddRdR  = 2.*rp->liqpres-2.*(1. + 3.*1.4)*pbubble + 3.*rp->liqdens*y[1]*y[1];
+  dddRdR  /= 2.*y[0]*y[0]*rp->liqdens;
+  gsl_matrix_view dfdy_mat = gsl_matrix_view_array (dfdy, 2, 2);
+  gsl_matrix * m = &dfdy_mat.matrix; 
+  gsl_matrix_set (m, 0, 0, 0.0);
+  gsl_matrix_set (m, 0, 1, 1.0);
+  gsl_matrix_set (m, 1, 0, dddRdR);
+  gsl_matrix_set (m, 1, 1, - 3.*y[1]/y[0]);
+  dfdt[0] = 0.0;
+  dfdt[1] = 0.0;
+  return GSL_SUCCESS;
+}
+
+static gboolean gfs_bubble_event (GfsEvent * event, 
+				  GfsSimulation * sim)
+{
+  if ((* GFS_EVENT_CLASS (GTS_OBJECT_CLASS (gfs_bubble_class ())->parent_class)->event) 
+      (event, sim)) {
+    GfsParticle * p = GFS_PARTICLE (event);
+    GfsParticulate * particulate = GFS_PARTICULATE (event);
+    GfsBubble * bubble = GFS_BUBBLE (event);
+    GfsDomain * domain = GFS_DOMAIN (sim);
+
+    GfsVariable * liqpres = gfs_variable_from_name (domain->variables, "P");
+  
+    FttCell * cell = gfs_domain_locate (domain, p->pos, -1, NULL);
+    if (cell == NULL) 
+      return TRUE;
+    gdouble liq_rho = sim->physical_params.alpha ? 1./
+      gfs_function_value (sim->physical_params.alpha, cell) : 1.;
+
+    FttVector pos = p->pos;
+    gfs_simulation_map (sim, &pos);
+
+    gdouble point_pres = gfs_interpolate (cell, p->pos, liqpres);
+
+    RPData rp = { point_pres, liq_rho, bubble };
+
+    const gsl_odeiv_step_type * T = gsl_odeiv_step_rk8pd;
+
+    gsl_odeiv_step * s    = gsl_odeiv_step_alloc (T, 2);
+    gsl_odeiv_control * c = gsl_odeiv_control_y_new (1e-6, 0.0);
+    gsl_odeiv_evolve * e  = gsl_odeiv_evolve_alloc (2);
+
+    gsl_odeiv_system sys = {func, jac, 2, &rp};
+
+    gdouble t = sim->time.t;
+    gdouble t1 = t + sim->advection_params.dt;
+    gdouble h = 1e-6; /* better criterion?? */
+    /* variables R, dot{R} */
+    gdouble y[2] = { pow(3./(4.*M_PI)*particulate->volume,1./3.) , bubble->velR };
+
+    while (t < t1) {
+      int status = gsl_odeiv_evolve_apply (e, c, s,
+					   &sys, &t, t1, &h, y);
+      if (status != GSL_SUCCESS) 
+	g_error ("Error in the RK method");
+    }
+
+    gsl_odeiv_evolve_free (e);
+    gsl_odeiv_control_free (c);
+    gsl_odeiv_step_free (s);
+
+    bubble->velR = y[1];
+    particulate->volume = 4./3.*M_PI*y[0]*y[0]*y[0];
+
+    return TRUE;
+  }
+  return FALSE;
+} 
+
+static void gfs_bubble_read (GtsObject ** o, GtsFile * fp)
+{
+  if (GTS_OBJECT_CLASS (gfs_bubble_class ())->parent_class->read)
+    (* GTS_OBJECT_CLASS (gfs_bubble_class ())->parent_class->read) 
+      (o, fp);
+  if (fp->type == GTS_ERROR)
+    return;
+  GfsBubble * p = GFS_BUBBLE (*o);
+  GfsParticulate * part = GFS_PARTICULATE (*o);
+  gdouble L = gfs_object_simulation (*o)->physical_params.L;
+    
+  p->vol_liq = 0;
+  p->R0 = pow (part->volume*3./(4.*M_PI), 1./3.);
+
+  if (fp->type != GTS_INT && fp->type != GTS_FLOAT) {
+    gts_file_error (fp, "expecting a number (radial velocity)");
+    return;
+  }
+  p->velR = atof (fp->token->str)/L;
+  gts_file_next_token (fp);
+  
+  if (fp->type != GTS_INT && fp->type != GTS_FLOAT) {
+    gts_file_error (fp, "expecting a number (reference pressure)");
+    return;
+  }
+  p->p0 = atof (fp->token->str)*L;
+  gts_file_next_token (fp);
+}
+
+static void gfs_bubble_write (GtsObject * o, FILE * fp)
+{
+  (* GTS_OBJECT_CLASS (gfs_bubble_class ())->parent_class->write) (o, fp); 
+  GfsBubble * p = GFS_BUBBLE (o);
+  gdouble L = gfs_object_simulation (o)->physical_params.L;
+  fprintf (fp, " %g %g", p->velR*L, p->p0/L);
+}
+
+static void gfs_bubble_class_init (GfsEventClass * klass)
+{
+  klass->event = gfs_bubble_event;
+  GTS_OBJECT_CLASS (klass)->read = gfs_bubble_read;
+  GTS_OBJECT_CLASS (klass)->write = gfs_bubble_write;
+}
+
+
+static GfsEventClass * gfs_bubble_class (void)
+{
+  static GfsEventClass * klass = NULL;
+
+  if (klass == NULL) {
+    GtsObjectClassInfo gfs_bubble_info = {
+      "GfsBubble",
+      sizeof (GfsBubble),
+      sizeof (GfsEventClass),
+      (GtsObjectClassInitFunc) gfs_bubble_class_init,
+      (GtsObjectInitFunc) NULL,
+      (GtsArgSetFunc) NULL,
+      (GtsArgGetFunc) NULL
+    };
+    klass = gts_object_class_new (GTS_OBJECT_CLASS (gfs_particulate_class ()),
+				  &gfs_bubble_info);
+  }
+  return klass;
+}
+
+/* GfsBubbleFraction: header */
+
+typedef struct _GfsBubbleFraction                GfsBubbleFraction;
+
+struct _GfsBubbleFraction {
+  /*< private >*/
+  GfsParticulateField parent;
+
+  /*< public >*/
+  gdouble rliq;
+  GfsFunction * kernel_function;
+};
+
+#define GFS_BUBBLE_FRACTION(obj)            GTS_OBJECT_CAST (obj,	\
+							     GfsBubbleFraction, \
+							     gfs_bubble_fraction_class ())
+#define GFS_IS_BUBBLE_FRACTION(obj)         (gts_object_is_from_class (obj, \
+								       gfs_bubble_fraction_class ()))
+
+GfsVariableClass * gfs_bubble_fraction_class  (void);
+
+typedef struct {
+  gdouble correction;
+  GfsBubble * bubble;
+  GfsVariable * v;
+  GfsBubbleFraction * bf;
+} BubbleData;
+
+typedef struct {
+  FttVector * pos;
+  gdouble distance; 
+} CondData;
+
+/** \beginobject{GfsBubbleFraction} */
+/* do it more general? */
+
+static void distance_normalization (FttVector * pos1, GfsParticulate * p)
+{
+  gdouble rb = pow (3.*p->volume/(4.*M_PI), 1./3.);
+  FttVector * pos2 = &(GFS_PARTICLE (p)->pos);
+  pos1->x = (pos1->x - pos2->x)/rb;
+  pos1->y = (pos1->y - pos2->y)/rb;
+  pos1->z = 0.;
+#if !FTT_2D
+  pos1->z = (pos1->z - pos2->z)/rb;
+#endif
+}
+
+static void voidfraction_from_bubbles (FttCell * cell, BubbleData * p)
+{
+  FttVector pos;
+  ftt_cell_pos (cell, &pos);
+  distance_normalization (&pos, GFS_PARTICULATE (p->bubble));
+  GFS_VALUE (cell, p->v) += GFS_PARTICULATE (p->bubble)->volume*
+    gfs_function_spatial_value (p->bf->kernel_function, &pos)/p->correction;
+}
+
+static void kernel_volume (FttCell * cell, BubbleData * p)
+{
+  gdouble cellvol = gfs_cell_volume (cell, p->v->domain);
+
+  p->bubble->vol_liq += cellvol;
+
+  /* correction term to make a discretely conservative kernel */
+  FttVector pos;
+  ftt_cell_pos (cell, &pos);
+  distance_normalization (&pos, GFS_PARTICULATE (p->bubble));
+  p->correction += gfs_function_spatial_value (p->bf->kernel_function, &pos)*cellvol;
+}
+
+static gboolean cond_bubble (FttCell * cell, gpointer data)
+{
+  CondData * p = data;
+  FttVector pos;
+  ftt_cell_pos (cell, &pos);
+  gdouble radeq;
+  gdouble size = ftt_cell_size (cell)/2.;
+
+#if FTT_2D
+  radeq = size*sqrt(2.);
+#else
+  radeq = size*sqrt(3.);
+#endif /* 3D */
+
+  if (ftt_vector_distance (&pos, p->pos) - radeq <= p->distance) 
+    return TRUE;
+    
+  /* Check also if the bubble is inside the cell*/
+  if (p->pos->x > pos.x + size || p->pos->x < pos.x - size ||
+      p->pos->y > pos.y + size || p->pos->y < pos.y - size 
+#if !FTT_2D
+      || p->pos->z > pos.z + size || p->pos->z < pos.z - size 
+#endif
+      )
+    return FALSE;
+
+  return TRUE;
+}
+
+static gboolean bubble_fraction_event (GfsEvent * event, 
+				       GfsSimulation * sim)
+{
+  if ((* GFS_EVENT_CLASS (GTS_OBJECT_CLASS (gfs_particulate_field_class ())->parent_class)->event)
+      (event, sim)) {
+    GfsDomain * domain = GFS_DOMAIN (sim);
+    GfsVariable * v = GFS_VARIABLE1 (event);
+    GfsParticulateField * pfield = GFS_PARTICULATE_FIELD (v);
+    GfsBubbleFraction * bf = GFS_BUBBLE_FRACTION (event);
+    
+    /* Reset variable */
+    gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
+			      (FttCellTraverseFunc) gfs_cell_reset, v);
+    /* Loop over the list of particles in the selected object */
+    GSList * i = GFS_EVENT_LIST (pfield->plist)->list->items;
+    while (i) {
+      GfsBubble * bubble = GFS_BUBBLE (i->data);
+      bubble->vol_liq = 0;
+      bubble->rliq = pow (GFS_PARTICULATE(i->data)->volume*3./(4.*M_PI), 1./3.)*bf->rliq;
+      BubbleData p = { 0, bubble, v, bf };
+      CondData cd = { &GFS_PARTICLE (i->data)->pos, bubble->rliq };
+      gfs_domain_cell_traverse_condition (domain, FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
+                                          (FttCellTraverseFunc) kernel_volume, &p,
+                                          cond_bubble, &cd);
+      gfs_domain_cell_traverse_condition (domain, FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
+                                          (FttCellTraverseFunc) pfield->voidfraction_func, &p,
+                                          cond_bubble, &cd);
+      i = i->next;
+    }
+    return TRUE;
+  }
+  return FALSE;
+}
+
+static void bubble_fraction_destroy (GtsObject * o)
+{
+  gts_object_destroy (GTS_OBJECT (GFS_BUBBLE_FRACTION (o)->kernel_function));
+
+  (* GTS_OBJECT_CLASS (gfs_bubble_fraction_class ())->parent_class->destroy) (o); 
+}
+
+static void bubble_fraction_read (GtsObject ** o, GtsFile * fp)
+{
+  (* GTS_OBJECT_CLASS (gfs_bubble_fraction_class ())->parent_class->read) (o, fp); 
+  if (fp->type == GTS_ERROR)
+    return;
+
+  GfsBubbleFraction * b = GFS_BUBBLE_FRACTION (*o);
+
+  if (fp->type != '{') {
+    gts_file_error (fp, "expecting an opening brace");
+    return;
+  }
+  fp->scope_max++;
+  gts_file_next_token (fp);
+
+  while (fp->type != GTS_ERROR && fp->type != '}') {
+    if (fp->type == '\n') {
+      gts_file_next_token (fp);
+      continue;
+    }
+    if (fp->type != GTS_STRING) {
+      gts_file_error (fp, "expecting a keyword");
+      return;
+    }  
+    else if (!strcmp (fp->token->str, "rkernel")) {
+      gts_file_next_token (fp);
+      if (fp->type != '=') {
+	gts_file_error (fp, "expecting '='");
+	return;
+      }    
+      gts_file_next_token (fp);
+      b->rliq = atof (fp->token->str);
+      gts_file_next_token (fp);
+    }
+    else if (!strcmp (fp->token->str, "kernel")) {
+      gts_file_next_token (fp);
+      if (fp->type != '=') {
+	gts_file_error (fp, "expecting '='");
+	return;
+      }
+      gts_file_next_token (fp);
+      gfs_function_read (b->kernel_function, gfs_object_simulation (*o), fp);
+    }
+    else {
+      gts_file_error (fp, "unknown keyword `%s'", fp->token->str);
+      return;
+    }
+  }
+  if (fp->type == GTS_ERROR)
+    return;
+  if (fp->type != '}') {
+    gts_file_error (fp, "expecting a closing brace");
+    return;
+  }
+  fp->scope_max--;
+  gts_file_next_token (fp);
+}
+
+static void bubble_fraction_write (GtsObject * o, FILE * fp)
+{
+  (* GTS_OBJECT_CLASS (gfs_bubble_fraction_class ())->parent_class->write) (o, fp);
+  fprintf (fp, " { rkernel = %g ", GFS_BUBBLE_FRACTION (o)->rliq);
+  fputs (" kernel =", fp);
+  gfs_function_write (GFS_BUBBLE_FRACTION (o)->kernel_function, fp);
+  fputc ('}', fp);
+}
+
+static void bubble_fraction_init (GfsVariable * v)
+{
+  v->units = 0.;
+  GFS_PARTICULATE_FIELD (v)->voidfraction_func = voidfraction_from_bubbles;
+  GFS_BUBBLE_FRACTION (v)->kernel_function = gfs_function_new (gfs_function_spatial_class (), 0.);
+}
+
+static void bubble_fraction_class_init (GtsObjectClass * klass)
+{
+  GFS_EVENT_CLASS (klass)->event = bubble_fraction_event;
+  klass->destroy = bubble_fraction_destroy;
+  klass->read =  bubble_fraction_read;
+  klass->write = bubble_fraction_write;
+}
+
+GfsVariableClass * gfs_bubble_fraction_class (void)
+{
+  static GfsVariableClass * klass = NULL;
+
+  if (klass == NULL) {
+    GtsObjectClassInfo gfs_bubble_fraction_info = {
+      "GfsBubbleFraction",
+      sizeof (GfsBubbleFraction),
+      sizeof (GfsVariableClass),
+      (GtsObjectClassInitFunc) bubble_fraction_class_init,
+      (GtsObjectInitFunc) bubble_fraction_init,
+      (GtsArgSetFunc) NULL,
+      (GtsArgGetFunc) NULL
+    };
+    klass = gts_object_class_new (GTS_OBJECT_CLASS (gfs_particulate_field_class ()),
+				  &gfs_bubble_fraction_info);
+  }
+
+  return klass;
+}
+
+/** \endobject{GfsBubbleFraction} */
+
+/* GfsBubbleFractionDt: header */
+
+#define GFS_IS_BUBBLE_FRACTION_DT(obj)         (gts_object_is_from_class (obj, \
+						     gfs_bubble_fraction_dt_class ()))
+
+GfsVariableClass * gfs_bubble_fraction_dt_class (void);
+
+/** \beginobject{GfsBubbleFractionDt} */
+
+static void dVpdt_from_particles (FttCell * cell, BubbleData * p)
+{
+  gdouble rad = pow (3.0*GFS_PARTICULATE (p->bubble)->volume/(4.0*M_PI), 1./3.);
+  GFS_VALUE (cell, p->v) += 3.0*GFS_PARTICULATE (p->bubble)->volume
+    *p->bubble->velR/(p->bubble->vol_liq*rad);
+}
+
+static void bubble_fraction_dt_init (GtsObject * o)
+{
+  GFS_PARTICULATE_FIELD (o)->voidfraction_func = dVpdt_from_particles;
+}
+
+GfsVariableClass * gfs_bubble_fraction_dt_class (void)
+{
+  static GfsVariableClass * klass = NULL;
+
+  if (klass == NULL) {
+    GtsObjectClassInfo gfs_bubble_fraction_dt_info = {
+      "GfsBubbleFractionDt",
+      sizeof (GfsBubbleFraction),
+      sizeof (GfsVariableClass),
+      (GtsObjectClassInitFunc) NULL,
+      (GtsObjectInitFunc) bubble_fraction_dt_init,
+      (GtsArgSetFunc) NULL,
+      (GtsArgGetFunc) NULL
+    };
+    klass = gts_object_class_new (GTS_OBJECT_CLASS ( gfs_bubble_fraction_class ()),
+				  &gfs_bubble_fraction_dt_info);
+  }
+
+  return klass;
+}
+
+/** \endobject{GfsBubbleFractionDt} */
+
+/* Initialize module */
+
+const gchar gfs_module_name[] = "bubbles";
+const gchar * g_module_check_init (void);
+
+const gchar * g_module_check_init (void)
+{ 
+  gfs_bubble_class ();
+  gfs_bubble_fraction_class ();
+  gfs_bubble_fraction_dt_class ();
+  return NULL; 
+}
diff --git a/modules/dagmg.f90 b/modules/dagmg.f90
new file mode 100644
index 0000000..dc6ac1c
--- /dev/null
+++ b/modules/dagmg.f90
@@ -0,0 +1,1881 @@
+! Sequential code
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! The main driver subroutine dagmg below provides a sequential implementation
+! of the method presented in [1], where the used algorithms are described
+! in detail.
+! See the accompanying userguide for more details on how to use the software,
+! and the README file for copyright notice and installation instructions.
+!
+! [1] Y. Notay, An aggregation-based algebraic multigrid method,
+!     Report GANMN 08-02
+!
+!-----------------------------------------------------------------------
+      MODULE dagmg_mem
+      SAVE
+!---------------
+! Parameters for subroutine dagmg that may be tuned by expert users
+!
+! INTEGER
+!
+!  maxlev is the maximal number of levels
+!         (should be large enough - much larger than needed is armless)
+!  real_len is the length of 1 REAL(kind(0.0d0)) in byte
+!        (used only to display information on memory usage)
+INTEGER, PARAMETER :: maxlev=40, real_len=8
+!  nsmooth is the number of smoothing steps (pre + post);
+!          each cycle includes (nsmooth+1)/2 pre-smoothing step(s)
+!          and nsmooth/2 post-smoothing step(s)
+!  nstep is the maximum number of coarsening steps
+!        nstep<0 means that coarsening is stopped only according to
+!        the matrix size, see parameter maxcoarsesize
+!  nlvcyc  is the number of coarse levels (from bottom) on which V-cycle
+!          formulation is enforced (Rmk: K-cycle always allowed at first
+!          coarse level)
+INTEGER , PARAMETER :: nsmooth=2, nstep=-1, nlvcyc=0
+!
+!  maxcoarsesize: when the size of the coarse grid matrix is less than or
+!                 equal to maxcoarsesize,  it is factorized exactly and
+!                 coarsening is stopped.
+INTEGER , PARAMETER :: maxcoarsesize=400
+!
+! REAL
+!
+!  resi is the threshold t for the relative residual error in inner FCG & GCR
+!       iterations, see Algorithm 3.2 in [1]
+!  checkdd is the threshold for strongly diagonally dominant rows,
+!        see the first line of "Initialization" in Algorithm 2.1 in [1]
+!  trswc is the Strong/Weak coupling threshold beta in Algorithms 2.1 & 2.2
+!        in [1]
+!  trspos is a threshold: if a row has a positive offidiagonal entry larger
+!         than trspos times the diagonal entry, the corresponding node is kept
+!         out of the aggregation
+!  scalcg is the scaling factor applied to the coarse grid matrices
+!
+REAL (kind(0.0d0)) , PARAMETER :: resi=0.25
+REAL (kind(0.0d0)) , PARAMETER :: checkdd=5.0, trswc=0.25, trspos=0.45, scalcg=1
+!----------------
+! [1] Y. Notay, An aggregation-based algebraic multigrid method,
+!     Report GANMN 08-02
+!---------------------------------------------
+! Internal variables (do not modify)
+!
+TYPE InnerData
+ REAL (kind(0.0d0)), DIMENSION(:), POINTER :: a
+ INTEGER, DIMENSION(:), POINTER :: ja
+ INTEGER, DIMENSION(:), POINTER :: ia
+ REAL (kind(0.0d0)), DIMENSION(:), POINTER :: p
+ INTEGER, DIMENSION(:), POINTER :: idiag
+ INTEGER, DIMENSION(:), POINTER :: ind
+ INTEGER, DIMENSION(:), POINTER :: inloc
+ INTEGER, DIMENSION(:), POINTER :: ilstout
+ INTEGER, DIMENSION(:), POINTER :: lstout
+ INTEGER, DIMENSION(:), POINTER :: ilstin
+ INTEGER, DIMENSION(:), POINTER :: lstin
+END TYPE InnerData
+!
+        TYPE (InnerData) :: dt(maxlev)
+        INTEGER :: nn(maxlev),kstat(3,maxlev)=0,innermax(maxlev)
+        INTEGER :: nlev,nwrkcum,iout,nrst
+        REAL (kind(0.0d0)) :: memi=0.0,memax=0.0,memr=0.0,mritr,rlenilen
+        LOGICAL :: spd,wfo,wff,allzero
+        INTEGER, PARAMETER :: IRANK=-9999
+        END MODULE dagmg_mem
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+        SUBROUTINE dagmg(n,a,ja,ia,f,x,ijob,iprint,nrest,iter,tol)
+          USE dagmg_mem
+          IMPLICIT NONE
+          INTEGER    :: n,ia(n+1),ja(*),ijob,iprint,nrest,iter
+          REAL (kind(0.0d0)) :: a(*),f(n),x(n)
+          REAL (kind(0.0d0)) :: tol
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!
+!  Arguments
+!  =========
+!
+!  N       (input) INTEGER.
+!          The dimension of the matrix.
+!
+!  A       (input/output) REAL (kind(0.0d0)). Numerical values of the matrix.
+!  IA      (input/output) INTEGER. Pointers for every row.
+!  JA      (input/output) INTEGER. Column indices.
+!
+!              dagmg ASSUMES THAT ALL DIAGONAL ENTRIES ARE POSITIVE
+!
+!          Detailed description of the matrix format
+!
+!              On input, IA(I), I=1,...,N, refers to the physical start
+!              of row I. That is, the entries of row I are located
+!              in A(K), where K=IA(I),...,IA(I+1)-1. JA(K) carries the
+!              associated column indices. IA(N+1) must be defined in such
+!              a way that the above rule also works for I=N (that is,
+!              the last valid entry in arrays A,JA should correspond to
+!              index K=IA(N+1)-1). According what is written
+!              above, dagmg assumes that some of these JA(K) (for
+!              IA(I)<= K < IA(I+1) ) is equal to I with corresponding
+!              A(K) carrying the value of the diagonal element,
+!              which must be positive.
+!
+!              A,IA,JA are "output" parameters because on exit the
+!              entries of each row may occur in a different order (The
+!              matrix is mathematically the same, but stored in
+!              different way).
+!
+!  F       (input/output) REAL (kind(0.0d0)).
+!          On input, the right hand side vector f.
+!          Overwritten on output.
+!          Significant only if IJOB==0, 2, 3, 10 or 12
+!
+!  X       (input/output) REAL (kind(0.0d0)).
+!          On input and if IJOB==10 or IJOB==12, initial guess
+!             (for other values of IJOB, the default is used: the zero vector).
+!          On output, the computed solution.
+!
+! IJOB     (input) INTEGER. Tells dagmg what has to be done.
+!          0: performs setup + solve + memory release, no initial guess
+!         10: performs setup + solve + memory release, initial guess in x(1:n)
+!          1: performs setup only
+!             (preprocessing: prepares all parameters for subsequent solves)
+!          2: solves only (based on previous setup), no initial guess
+!         12: solves only (based on previous setup), initial guess in x(1:n)
+!          3: the vector returned in x(1:n) is not the solution of the linear
+!                 system, but the result of the action of the multigrid
+!                 preconditioner on the right hand side in f(1:n)
+!         -1: erases the setup and releases internal memory
+!   !!! IJOB==2,3,12 require that one has previously called dagmg with IJOB==1
+!   !!!    It is mandatory to keep n, A, JA and IA unchanged between a call
+!   !!!    to dagmg with IJOB==1 and all subsequent calls with IJOB== 2, 3 or 12
+!
+! IPRINT   (input) INTEGER.
+!              Indicates the unit number where information is to be printed
+!              (N.B.: 5 is converted to 6). If nonpositive, only error
+!              messages are printed on standard output.
+!
+! NREST    (input) INTEGER.
+!             Restart parameter for GCR (an implementation of GMRES)
+!             Nonpositive values are converted to NREST=10 (default)
+!         !!  If NREST==1, Flexible CG is used instead of GCR
+!             Should be used if and only if the matrix is
+!             symmetric and positive definite.
+!         !!  Significant only if IJOB == 0, 2, 3, 10 or 12.
+!             If IJOB == 3, determines only the type of inner iterations
+!             (FCG if NREST == 1, GCR otherwise).
+!
+!  ITER    (input/output) INTEGER.
+!          On input, the maximum number of iterations. Should be positive.
+!          On output, actual number of iterations.
+!            If this number of iteration was insufficient to meet convergence
+!            criterion, ITER will be returned negative and equal to the
+!            opposite of the number of iterations performed.
+!          Significant only if IJOB== 0, 2, 10 or 12.
+!
+!  TOL     (input) REAL (kind(0.0d0)).
+!          The tolerance on residual norm. Iterations are stopped whenever
+!               || A*x-f || <= TOL* || f ||
+!          Should be positive and less than 1.0
+!          Significant only if IJOB== 0, 2, 10 or 12.
+!
+!!!!! Remark !!!! Except insufficient number of iterations to achieve
+!                 convergence (characterized by a negative value returned
+!                 in ITER), all other detected errors are fatal and lead
+!                 to a STOP statement.
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!
+! Local variables
+!
+          INTEGER, SAVE :: nza
+          REAL (kind(0.0d0)), SAVE :: cputm=0.0d0,eltm=0.0d0,flop=0.0d0,memh
+          LOGICAL, SAVE :: preprocessed=.FALSE.,solve=.FALSE.
+          INTEGER :: i,init
+          REAL (kind(0.0d0)) :: cputmp,eltmp,resid
+          INTEGER :: listrank,ifirstlistrank
+!
+          wfo=.TRUE.
+          iout=iprint
+          IF (iprint <= 0) THEN
+             iout=6
+             wfo=.FALSE.
+          ELSE IF (iprint == 5) THEN
+             iout=6
+          END IF
+!
+          wff=wfo.AND.(IRANK<=0)
+!
+          IF (MOD(ijob,10) >= 2 .AND. .NOT.preprocessed) THEN
+             WRITE (iout,1001) IRANK,ijob
+             STOP
+          END IF
+!
+          IF (ijob < 0 .AND. solve) GOTO 450
+          IF (ijob < 0) GOTO 500
+          IF (MOD(ijob,10) >= 2) GOTO 300
+          IF (preprocessed) THEN
+             CALL dagmg_relmem
+             IF (.NOT.allzero) CALL dagmg_LAPACK(nn(nlev),a,ja,ia,f,-2,flop)
+             preprocessed=.FALSE.
+             solve=.FALSE.
+             eltm=0.0d0
+             cputm=0.0d0
+             flop=0.0d0
+             kstat=0
+          END IF
+          CALL dagmg_mestime(-1,0.0d0,0.0d0)
+!
+!       Initial settings
+!
+          nza=ia(n+1)-ia(1)
+          IF (HUGE(n) > 1.0e10) THEN
+             rlenilen=dble(8)/dble(real_len)
+          ELSE
+             rlenilen=dble(4)/dble(real_len)
+          END IF
+!
+!
+!-----  PREPROCESSING
+!
+          nlev=0
+          IF (wfo) THEN
+             WRITE(iout,900) IRANK
+          END IF
+          CALL dagmg_setup(1,n,a,ja,ia,listrank,ifirstlistrank)
+          preprocessed=.TRUE.
+          memh=memr+memi*rlenilen
+!
+          CALL dagmg_mestime(1,cputmp,eltmp)
+          IF(wfo)THEN
+               WRITE(iout,960) IRANK,memax/nza,real_len,&
+                    &memax*real_len/(2**20)
+               IF(MOD(ijob,10) == 1) THEN
+                  WRITE(iout,961) IRANK,memh/nza,real_len,&
+                       &memh*real_len/(2**20)
+               END IF
+!CPU_TIME: next line may be uncommented if implemented
+!          (see subroutine mestime)
+!              WRITE(iout,996) IRANK,cputmp
+               WRITE(iout,997) IRANK,eltmp
+               WRITE(iout,'()')
+          END IF
+!
+          IF (MOD(ijob,10) == 1) RETURN
+!
+!-----  SOLUTION PROCESS
+!
+300       CONTINUE
+          CALL dagmg_mestime(-2,0.0d0,0.0d0)
+          resid=tol
+          nrst=nrest
+          init=MAX(IJOB/10,0)
+          IF (nrst <= 0) nrst=10 ! Default restart paramater for GMRESR
+          spd=.FALSE.  ! nrst=1 => system assumed SPD, use FCG instead of GCR
+          IF (nrst == 1) spd=.TRUE.
+   !
+   !      DIRECT SOLVE IF ONLY ONE LEVEL
+          IF (nlev == 1) THEN
+   !
+             x(1:n)=f(1:n)
+             CALL dagmg_LAPACK(n,a,ja,ia,x,2,flop)
+             mritr=0
+   !
+   !      END OF DIRECT SOLVE
+   !
+   !-     SINGLE APPLICATION OF MG PRECONDITIONER
+          ELSE IF (MOD(ijob,10) >= 3) THEN
+             IF (wfo) THEN
+                WRITE(iout,901) IRANK
+             END IF
+             CALL dagmg_applyprec(n,f,x,a,ja,ia,flop)
+             CALL dagmg_mestime(2,cputmp,eltmp)
+             cputm=cputm+cputmp
+             eltm=eltm+eltmp
+             solve=.TRUE.
+             RETURN
+   !
+   !-     END OF MG PREC
+   !
+   !-     GCR SOLUTION
+          ELSE IF (nrst > 1) THEN
+   !
+             CALL dagmg_GCR(n,f,x,iter,resid,a,ja,ia,init,flop)
+   !
+   !-     END OF GCR SOLVE
+   !
+   !-     FLEXIBLE CG SOLUTION
+          ELSE
+   !
+             CALL dagmg_FlexCG(n,f,x,iter,resid,a,ja,ia,init,flop)
+   !
+   !-     END OF FCG SOLVE
+   !
+          END IF
+!
+          CALL dagmg_mestime(2,cputm,eltm)
+          solve=.FALSE.
+          GOTO 455
+450       CONTINUE
+          IF (wfo) THEN
+             WRITE(iout,'()')
+             WRITE(iout,990) IRANK
+             WRITE(iout,'()')
+          END IF
+455       CONTINUE
+          IF (wfo) THEN
+             IF (wff .AND. iter.NE.0) THEN
+                DO i=2,nlev-1
+                   WRITE(iout,955) i,kstat(3,i-1),kstat(3,i),         &
+                        dble(kstat(3,i))/dble(kstat(3,i-1)),kstat(2,i)
+                END DO
+             END IF
+             WRITE(iout,'()')
+             WRITE(iout,954) IRANK,flop/dble(11*n+2*nza)
+             WRITE(iout,962) IRANK,(memh+mritr)/nza,real_len, &
+                  (memh+mritr)*real_len/(2**20)
+!CPU_TIME: next line may be uncommented if implemented
+!          (see subroutine mestime)
+!            WRITE(iout,998) IRANK,cputm
+             WRITE(iout,999) IRANK,eltm
+             WRITE(iout,'()')
+          END IF
+!
+          IF (MOD(ijob,10) > 0) RETURN
+!
+!----  RELEASE MEMORY
+!
+500       CONTINUE
+          CALL dagmg_relmem
+          IF (.NOT.allzero) CALL dagmg_LAPACK(n,a,ja,ia,f,-2,flop)
+          preprocessed=.FALSE.
+          solve=.FALSE.
+          eltm=0.0d0
+          cputm=0.0d0
+          flop=0.0d0
+          kstat=0
+          IF (wfo) THEN
+             WRITE (iout,902) IRANK
+          END IF
+!
+          CONTINUE
+!
+          RETURN
+900       FORMAT(i3,'*ENTERING AGMG **********************************',&
+               '***************************')
+901       FORMAT(i3,'*ONE APPLICATION OF AGMG PRECONDITIONER')
+902       FORMAT(i3,'*LEAVING AGMG * (MEMORY RELEASED) ***************',&
+               '***************************')
+954       FORMAT(i3,'*','  Equiv. number of CG iter.:',f9.2)
+955       FORMAT('****     level',i2,'   #call=',i6,'   #cycle=',i6,    &
+                '   mean=',f7.2,'    max=',i3)
+960       FORMAT(  i3,'*','         memory used (peak):',f9.2,        &
+               ' real(',i1,') words per nnz (',f8.2,' Mb)')
+961       FORMAT(  i3,'*','     memory still allocated:',f9.2,        &
+               ' real(',i1,') words per nnz (',f8.2,' Mb)')
+962       FORMAT(  i3,'*','   memory used for solution:',f9.2,        &
+               ' real(',i1,') words per nnz (',f8.2,' Mb)')
+990       FORMAT(i3,'*GLOBAL STATISTICS for preconditioner application:')
+996       FORMAT(i3,'*','           Setup time (CPU):   ',1PE10.2,     &
+               ' seconds')
+997       FORMAT(i3,'*','       Setup time (Elapsed):   ',1PE10.2,     &
+               ' seconds')
+998       FORMAT(i3,'*','        Solution time (CPU):   ',1PE10.2,     &
+               ' seconds')
+999       FORMAT(i3,'*','    Solution time (Elapsed):   ',1PE10.2,     &
+               ' seconds')
+1001      FORMAT(i3,'*',' FATAL ERROR: setup not done: ijob=',i3, &
+               ' is not allowed')
+        END SUBROUTINE dagmg
+!-----------------------------------------------------------------------
+        RECURSIVE SUBROUTINE dagmg_setup(l,n,a,ja,ia,listrank,ifl)
+          USE dagmg_mem
+          IMPLICIT NONE
+          INTEGER :: l,n,ja(*),ia(n+1)
+          REAL (kind(0.0d0)) :: a(*)
+          INTEGER :: ifl,listrank(ifl:*)
+          INTEGER :: nnext,ierr,nzan,nmax,i,j,k,llsto,lw,lwn,lw0,kw,nwprev
+          INTEGER, POINTER, DIMENSION(:) :: iw,iw0,ja2,lcg,iwp
+          REAL (kind(0.0d0)), ALLOCATABLE, DIMENSION(:)  :: a2
+          INTEGER, SAVE    :: nlc(2),nlcp(2),nlc1(2),icum
+          REAL (kind(0.0d0)), SAVE :: ngl(2),nglp(2),ngltot(2),nlctot(2),ngl1(2)
+          LOGICAL, SAVE    :: slowcoarse=.FALSE.
+          REAL (kind(0.0d0))       :: ops,ff,xsi,eta,checkddl,dum(2)
+          CHARACTER(len=13) :: prtint
+          REAL (kind(0.0d0)) :: fff
+          INTEGER , parameter :: IONE=1
+!
+          nn(l)=n
+          nlc(1)=n
+          nlc(2)=ia(n+1)-ia(1)
+!
+          ngl=nlc
+          IF ( l > 1 ) THEN
+             nlctot=nlctot+nlc
+             ngltot=ngltot+ngl
+             IF (wfo) THEN
+                IF (n > 9.9e10) THEN
+                   WRITE(prtint(1:12),'(1pe12.5)') dble(n)
+                ELSE
+                   WRITE(prtint(1:12),'(i12)') n
+                END IF
+                WRITE(iout,920) prtint(1:12),dble(nlcp(1))/dble(n)
+                IF (nlc(2) > 9.9e10) THEN
+                   WRITE(prtint(1:12),'(1pe12.5)') dble(nlc(2))
+                ELSE
+                   WRITE(prtint(1:12),'(i12)') nlc(2)
+                END IF
+                WRITE(iout,921) prtint(1:12),dble(nlc(2))/dble(n),        &
+                     dble(nlcp(2))/dble(nlc(2))
+             END IF
+             xsi=(6*1.0d0)/(10*1.0d0)
+             eta=0.5d0
+             ff=(ngl1(2)/ngl(2))*(xsi**(l-1))/dble(icum)
+             IF (ff < 2.0d0-eta) THEN
+                innermax(l)=1
+             ELSE
+                innermax(l)=2
+             END IF
+             icum=icum*innermax(l)
+          ELSE
+             nlctot=nlc
+             ngltot=ngl
+             ngl1=ngl
+             nlc1=nlc
+             icum=1
+             innermax(1)=1
+             slowcoarse=.FALSE.
+             allzero=.FALSE.
+             nglp(1)=0.0
+             IF (wfo) THEN
+                IF (n > 9.9e10) THEN
+                   WRITE(prtint(1:12),'(1pe12.5)') dble(n)
+                ELSE
+                   WRITE(prtint(1:12),'(i12)') n
+                END IF
+                WRITE(iout,'()')
+                WRITE(iout,918) prtint(1:12)
+                IF (nlc(2) > 9.9e10) THEN
+                   WRITE(prtint(1:12),'(1pe12.5)') dble(nlc(2))
+                ELSE
+                   WRITE(prtint(1:12),'(i12)') nlc(2)
+                END IF
+                WRITE(iout,919) prtint(1:12),dble(nlc(2))/dble(n)
+                WRITE(iout,'()')
+             END IF
+          END IF
+          IF( l == nstep+1  .OR. l == maxlev .OR.  ngl(1) <= maxcoarsesize &
+               .OR. (slowcoarse .AND. 3*nglp(1) < 5*ngl(1))                &
+               .OR. nglp(1) ==ngl(1) ) THEN
+             nlev=l
+             innermax(l)=0
+          END IF
+          slowcoarse=.FALSE.
+          IF ( l > 1 .AND. 3*nglp(1) < 5*ngl(1) ) slowcoarse=.TRUE.
+          nlcp=nlc
+          nglp=ngl
+          IF (n == 0) THEN
+             nnext=0
+             allzero=.TRUE.
+             ! n=0 and nlev /= l possible with the parallel version
+             IF (nlev /= l) THEN
+                IF (wfo) THEN
+                   WRITE(iout,914) IRANK,l+1
+                END IF
+                CALL dagmg_setup(l+1,nnext,a,ja,ia,listrank,ifl)
+                RETURN
+             END IF
+             IF (allzero) GOTO 500 ! skip factorization on last level
+             GOTO 300
+          END IF
+          lw=0
+          lw0=0
+          IF (l == nlev) GOTO 200
+          lw=3*n+1
+          lw0=n
+          ALLOCATE(dt(l)%p(n),dt(l)%ind(n),dt(l)%idiag(n+1)           &
+               ,lcg(4*n),a2(nlc(2)),ja2(nlc(2)),iw(lw),iw0(lw0))
+          memi=memi+6*n+1+nlc(2)+lw+lw0
+          memr=memr+n+nlc(2)
+          memax=MAX(memax,memr+memi*rlenilen)
+          iwp => iw
+          kw=n+1
+          IF (l>1) THEN
+             checkddl=-1.0d0
+          ELSE
+             IF (wfo) THEN
+                WRITE (iout,901) IRANK
+             END IF
+             IF (wff) THEN
+                WRITE (iout,902) checkdd,trswc
+                WRITE (iout,903) trspos
+             END IF
+             checkddl=checkdd
+          END IF
+          CALL dagmg_aggl4(n,nnext,a,ja,ia,lcg,dt(l)%ind,dt(l)%idiag,iw0, &
+               iwp,iw(kw),dt(l)%p,trswc,a2,ja2,iw(n+kw),checkddl,trspos)
+200       CONTINUE
+          IF (lw > 0) DEALLOCATE(iw)
+          memi=memi-lw
+          lw=0
+          IF (l == nlev) GOTO 300
+          CALL dagmg_setsgs(n,a,ja,ia,dt(l)%p,dt(l)%idiag,a2,ja2,dt(l)%inloc)
+          ALLOCATE(dt(l+1)%ia(nnext+1))
+          memi=memi+nnext+1
+          memax=MAX(memax,memr+memi*rlenilen)
+          j=nnext
+          IF (j > lw0) THEN
+             IF (lw0 > 0) DEALLOCATE(iw0)
+             ALLOCATE(iw0(j))
+             memi=memi-lw0+j
+             memax=MAX(memax,memr+memi*rlenilen)
+             lw0=j
+          END IF
+          CALL dagmg_setacg(nnext,lcg,a,ja,ia,a2,ja2,dt(l+1)%ia,nzan,     &
+               dt(l)%ind,iw0)
+          DEALLOCATE(iw0,lcg)
+          ALLOCATE(dt(l+1)%a(nzan),dt(l+1)%ja(nzan))
+          memi=memi-lw0-4*n+nzan
+          memr=memr+nzan
+          memax=MAX(memax,memr+memi*rlenilen)
+          dt(l+1)%a(1:nzan)=a2(1:nzan)
+          dt(l+1)%ja(1:nzan)=ja2(1:nzan)
+          DEALLOCATE(a2,ja2)
+          memi=memi-nlc(2)
+          memr=memr-nlc(2)
+          IF (scalcg < 0.0d0) THEN
+             ff=-scalcg*dble(nnext)/dble(n)
+          ELSE
+             ff=scalcg
+          END IF
+          IF (ff /= 1.0d0) THEN
+             IF (wfo) THEN
+                WRITE(iout,'()')
+                WRITE(iout,915) IRANK,l+1,ff
+             END IF
+             CALL DSCAL(nzan,ff,dt(l+1)%a,IONE)
+          ELSE
+             IF (wfo) THEN
+                WRITE(iout,'()')
+                WRITE(iout,914) IRANK,l+1
+             END IF
+          END IF
+          !
+250       CONTINUE
+          CALL dagmg_setup(l+1,nnext,dt(l+1)%a,dt(l+1)%ja,dt(l+1)%ia,   &
+               listrank,nnext+1)
+          GOTO 500
+          !
+300       CONTINUE
+          !
+          CALL dagmg_LAPACK(n,a,ja,ia,fff,1,ops)
+          IF (wfo) THEN
+             WRITE(iout,911) IRANK,ops/dble(11*nn(1)+2*nlc1(2))
+             WRITE(iout,'()')
+          END IF
+          !
+500       CONTINUE
+          IF (l==1) THEN
+             IF (wfo) THEN
+                WRITE(iout,'()')
+                WRITE(iout,954) nlctot(1)/dble(nlc1(1))
+                WRITE(iout,955) nlctot(2)/dble(nlc1(2))
+             END IF
+             DO i=1,nlvcyc
+                k=nlev-i
+                IF (k > 2) innermax(k)=1
+             END DO
+             nwrkcum=0
+             nwprev=0
+             DO i=2,nlev-1
+                IF (innermax(i) > 1)  THEN
+                   nwrkcum=nwrkcum+MAX(nwprev,6*nn(i))
+                   nwprev=nn(i)
+                ELSE
+                   nwrkcum=nwrkcum+MAX(nwprev,4*nn(i))
+                   nwprev=0
+                END IF
+             END DO
+             nwrkcum=nwrkcum+MAX(nwprev,2*nn(nlev))
+          END IF
+          !
+          RETURN
+901       FORMAT(i3,'*SETUP: Coarsening by double pairwise aggregation')
+902       FORMAT('****       Strong diag. dom. trs:',f5.1,                 &
+               ' ; Strong/Weak coupling trs:',f5.2)
+903       FORMAT('****',18x,'Threshold for rows with large pos. offdiag.:',f5.2)
+911       FORMAT(i3,'*','        Exact factorization:',f12.3,            &
+               ' equiv. CG iterations')
+914       FORMAT(i3,'*','                      Level:',I12)
+915       FORMAT(i3,'*','                      Level:',I12,            &
+               ' ;  applied scaling factor:',f6.3)
+918       FORMAT('****','        Number of unknowns:', A12)
+919       FORMAT('****','                 Nonzeros :', A12,                &
+               ' (per row:',f7.2,')')
+920       FORMAT('****','        Number of variables:',A12,              &
+               '          (reduction ratio:',f5.2,')')
+921       FORMAT('****','                   Nonzeros:',A12,              &
+               ' (per row:',f4.1,    &
+               '; red. ratio:',f5.2,')')
+954       FORMAT('****',' relative complexity (grid):',f9.2)
+955       FORMAT('****',' relative complexity (nnzs):',f9.2)
+        END SUBROUTINE dagmg_setup
+        !------------------------------------------------------------------
+        SUBROUTINE dagmg_relmem
+          USE dagmg_mem
+          IMPLICIT NONE
+          INTEGER :: l
+          DO l=1,nlev
+             IF ( l>1 ) THEN
+                IF ( nn(l-1)>0 ) THEN
+                   DEALLOCATE(dt(l)%a,dt(l)%ja,dt(l)%ia)
+                END IF
+             END IF
+             IF (l<nlev .AND. nn(l)>0 )                                  &
+                  DEALLOCATE(dt(l)%p,dt(l)%ind,dt(l)%idiag)
+          END DO
+          memi=0
+          memr=0
+          memax=0
+          RETURN
+        END SUBROUTINE dagmg_relmem
+        !------------------------------------------------------------------
+        SUBROUTINE dagmg_LAPACK(N,a,ja,ia,f,ijb,flop)
+          USE dagmg_mem
+          IMPLICIT NONE
+          INTEGER :: N,ia(n+1),ja(*),ijb
+          REAL (kind(0.0d0)) :: a(*),f(n)
+          REAL (kind(0.0d0)) :: flop
+          !
+          REAL (kind(0.0d0)), ALLOCATABLE, SAVE :: ac(:,:)
+          INTEGER , ALLOCATABLE, SAVE :: ipiv(:)
+          INTEGER, SAVE :: iflop
+          INTEGER :: i,kk,inloc
+          INTEGER  :: ierr
+          INTEGER , parameter :: IONE=1
+          !
+          ierr=0
+          IF (ijb == -2) THEN
+             !
+             DEALLOCATE (ac,ipiv)
+             !
+          ELSE IF (ijb == 1) THEN
+             !
+             ALLOCATE (ac(n,n),ipiv(n))
+             memi=memi+n
+             memr=memr+n*n
+             memax=MAX(memax,memr+memi*rlenilen)
+             ac=0.0d0
+             DO i=1,n
+                DO kk=ia(i),ia(i+1)-1
+                   ac(i,ja(kk))=a(kk)
+                END DO
+             END DO
+             CALL DGETRF(N,N,ac,N,ipiv,ierr)
+             IF (ierr /= 0) THEN
+                WRITE(iout, *) ' FATAL ERROR in GETRF: ierror=',ierr
+                STOP
+             END IF
+             iflop=(2*n*n-n)
+             flop=(2*1.0d0)/(3*1.0d0)*(dble(n)**3)
+             !
+          ELSE IF (ijb == 2) THEN
+             !
+             CALL DGETRS('N',N,IONE,ac,N,ipiv,f,N,ierr)
+             IF (ierr /= 0) THEN
+                WRITE(iout, *) ' FATAL ERROR in GETRS: ierror=',ierr
+                STOP
+             END IF
+             flop=flop+dble(iflop)
+             !
+          END IF
+          !
+          RETURN
+        END SUBROUTINE dagmg_LAPACK
+        !-----------------------------------------------------------------------
+        RECURSIVE SUBROUTINE dagmg_CGcorr(N,X,R,l,flop,w)
+          USE dagmg_mem
+          IMPLICIT NONE
+          INTEGER       ::  N, l, idum
+          REAL (kind(0.0d0)) ::  flop
+          REAL (kind(0.0d0)) ::  dum
+          REAL (kind(0.0d0)) ::  X(N), R(N), w(*)
+          INTEGER       ::  nnext, l1, RN, XN
+          l1=l+1
+          nnext=nn(l1)
+          IF (nnext > 0) THEN
+             XN=1
+             RN=XN+nnext
+             CALL dagmg_restaggl(N,nnext,R,w(RN),dt(l)%ind,flop)
+             IF (l1 == nlev) THEN
+                w(XN:XN+nnext-1)=w(RN:RN+nnext-1)
+                CALL dagmg_LAPACK(nnext,dt(l1)%a,dt(l1)%ja,dt(l1)%ia,  &
+                     w(XN),2,flop)
+             ELSE IF ( innermax(l1) <= 1 ) THEN
+                CALL dagmg_prec(nnext,w(XN),w(RN),dt(l1)%a,dt(l1)%ja,   &
+                     dt(l1)%ia   &
+                     ,l1,flop,w(RN+nnext))
+                kstat(2,l+1)=MAX(kstat(2,l+1),1)
+                kstat(3,l+1)=kstat(3,l+1)+1
+                kstat(1,l+1)=kstat(1,l+1)+1
+             ELSE IF (spd) THEN
+                CALL dagmg_FlexCG_inner(nnext,w(XN),w(RN),l+1,flop)
+             ELSE
+                CALL dagmg_GCR_inner(nnext,w(XN),w(RN),l+1,flop)
+             END IF
+             CALL dagmg_prolaggl(N,nnext,X,w(XN),dt(l)%ind)
+          ELSE
+             X(1:N)=0.0d0
+          END IF
+          RETURN
+        END SUBROUTINE dagmg_CGcorr
+!-----------------------------------------------------------------------
+        RECURSIVE SUBROUTINE dagmg_prec(N,X,B,a,ja,ia,l,flop,R)
+          USE dagmg_mem
+          IMPLICIT NONE
+          INTEGER :: N, l
+          REAL (kind(0.0d0)) ::  flop
+          REAL (kind(0.0d0)) ::  B(N), X(N), R(N,*)
+          INTEGER :: ja(*), ia(N+1)
+          REAL (kind(0.0d0)) :: a(*)
+          INTEGER :: is
+          IF (nsmooth == 2) THEN
+             CALL dagmg_sgsolve1(N,B,R(1,2),R,X,a,ja,ia,dt(l)%p,            &
+                  dt(l)%idiag,flop, dt(l)%inloc,dt(l)%lstout,dt(l)%ilstout,&
+                  dt(l)%lstin,dt(l)%ilstin)
+             CALL dagmg_CGcorr(N,X,R,l,flop,R(1,3))
+             CALL dagmg_sgsolve2(N,X,R(1,2),R,a,ja,ia,dt(l)%p,              &
+                  dt(l)%idiag,flop,dt(l)%inloc,dt(l)%lstout,dt(l)%ilstout, &
+                  dt(l)%lstin,dt(l)%ilstin)
+          ELSE
+             X(1:N)=B(1:N)
+             CALL dagmg_sgsolve(N, X, a, ja, ia, dt(l)%p, dt(l)%idiag, flop,&
+                  dt(l)%inloc)
+             DO is=2,(nsmooth+1)/2
+                CALL dagmg_rescalc(N, X, R(1,2), B, a, ja, ia, flop,        &
+                     dt(l)%inloc,dt(l)%lstout,dt(l)%ilstout,dt(l)%lstin,   &
+                     dt(l)%ilstin)
+                CALL dagmg_sgsolve(N,R(1,2),a, ja, ia, dt(l)%p, dt(l)%idiag,&
+                     flop, dt(l)%inloc)
+                X(1:N)=X(1:N)+R(1:N,2)
+                flop=flop+dble(N)
+             END DO
+             CALL dagmg_rescalc(N, X, R, B, a, ja, ia, flop,                &
+                  dt(l)%inloc,dt(l)%lstout,dt(l)%ilstout,dt(l)%lstin,      &
+                  dt(l)%ilstin)
+             CALL dagmg_CGcorr(N,R(1,2),R,l,flop,R(1,3))
+             X(1:N)=X(1:N)+R(1:N,2)
+             flop=flop+dble(N)
+             DO is=1,nsmooth/2
+                CALL dagmg_rescalc(N, X, R(1,2), B, a, ja, ia, flop,        &
+                     dt(l)%inloc,dt(l)%lstout,dt(l)%ilstout,dt(l)%lstin,   &
+                     dt(l)%ilstin)
+                CALL dagmg_sgsolve(N,R(1,2),a, ja, ia, dt(l)%p, dt(l)%idiag,&
+                     flop,dt(l)%inloc)
+                X(1:N)=X(1:N)+R(1:N,2)
+                flop=flop+dble(N)
+             END DO
+          END IF
+          !
+          RETURN
+        END SUBROUTINE dagmg_prec
+!-----------------------------------------------------------------------
+        SUBROUTINE dagmg_applyprec( N,f,X,a,ja,ia,flop)
+          USE dagmg_mem
+          IMPLICIT NONE
+          INTEGER       :: N
+          REAL (kind(0.0d0)) ::  flop
+          REAL (kind(0.0d0)) ::  f(N), X(N)
+          INTEGER       :: ja(*), ia(N+1)
+          REAL (kind(0.0d0)) :: a(*)
+          REAL (kind(0.0d0)), ALLOCATABLE :: S(:)
+          !
+          mritr=nwrkcum+2*N
+          ALLOCATE (S(nwrkcum+2*N))
+          CALL dagmg_prec(n,X,f,a,ja,ia,1,flop,S)
+          kstat(3,1)=kstat(3,1)+1
+          DEALLOCATE (S)
+          !
+          RETURN
+        END SUBROUTINE dagmg_applyprec
+!-----------------------------------------------------------------------
+        SUBROUTINE dagmg_FlexCG(N,f,X,ITER,RESID,a,ja,ia,init,flop)
+          USE dagmg_mem
+          IMPLICIT NONE
+          INTEGER       :: N, ITER, init
+          REAL (kind(0.0d0)) :: flop
+          REAL (kind(0.0d0)) :: f(N), X(N)
+          INTEGER       :: ja(*), ia(N+1)
+          REAL (kind(0.0d0)) :: a(*)
+          INTEGER       :: MAXIT, ierr
+          REAL (kind(0.0d0)) :: TOL, BNORM, RESID, dum0
+          REAL (kind(0.0d0)) :: ALPHA, BET0, RHO, dum(6)
+          REAL (kind(0.0d0)), ALLOCATABLE :: S(:)
+          REAL(kind(0.0d0)), external :: DDOT
+          REAL(kind(0.0d0)), external :: DNRM2
+          INTEGER , parameter :: IONE=1
+          !
+          mritr=nwrkcum+5*N
+          ALLOCATE (S(n+1:nwrkcum+6*N))
+          !
+          flop=0.0d0
+          kstat=0
+          IF (wfo) THEN
+             WRITE(iout,940) IRANK
+          END IF
+          IF (wff) THEN
+             WRITE(iout,946) nsmooth
+          END IF
+          !
+          TOL = RESID
+          MAXIT = ITER
+          RESID = 1.0d0
+          ITER = 0
+          dum(6) = DNRM2(N, f, IONE)**2
+          flop=flop+dble(2*N)
+          !
+          !    compute initial residual
+          !
+          IF (init==1) THEN
+             CALL dagmg_rescalc(N,x,f,f,a,ja,ia,flop,dt(1)%inloc,      &
+                  dt(1)%lstout,dt(1)%ilstout,dt(1)%lstin,dt(1)%ilstin)
+                  dum(5) = DNRM2(N, f, IONE)**2
+             dum(2:3)=dum(5:6)
+             BNORM=SQRT(dum(3))
+             RESID=SQRT(dum(2))
+             RESID=RESID/BNORM
+             IF(wff.AND. (MAXIT <= 0 .OR. RESID <= TOL)) THEN
+                WRITE(iout,900) 0, resid*bnorm, resid
+             END IF
+          END IF
+          !
+          !
+          DO WHILE ( ITER < MAXIT .AND. RESID > TOL )
+             ITER = ITER + 1
+             !
+             !        Preconditioner Solve.
+             !
+             CALL dagmg_prec(n,S(1+3*N),f,a,ja,ia,1,flop,S(1+4*N))
+             !
+             !        Compute direction vector.
+             !
+             IF ( ITER > 1 ) THEN
+                dum(1) = - DDOT( N, S(1+N), IONE, S(1+3*N), IONE )
+                BET0=dum(1)
+                BET0=BET0/RHO
+                CALL DAXPY( N, BET0, S(1+2*N), IONE, S(1+3*N), IONE )
+                flop=flop+dble(4*N)
+             ENDIF
+             CALL DCOPY( N, S(1+3*N), IONE, S(1+2*N), IONE )
+             CALL dagmg_matv(N,S(1+2*N),S(1+N),a,ja,ia,flop,dt(1)%inloc,   &
+                  dt(1)%lstout,dt(1)%ilstout,dt(1)%lstin,dt(1)%ilstin)
+             dum(4) =  DDOT( N, S(1+2*N), IONE, S(1+N), IONE )
+             dum(5) =  DDOT(N,S(1+2*N),IONE,f,IONE)
+             flop=flop+dble(4*N)
+             IF (ITER==1) THEN
+                dum(1:3)=dum(4:6)
+                IF (init == 0) THEN
+                   BNORM=SQRT(dum(3))
+                END IF
+                IF(wff) THEN
+                  WRITE(iout,900) 0, resid*bnorm, resid
+                END IF
+             ELSE
+                dum(1:2)=dum(4:5)
+             END IF
+             RHO=dum(1)
+             ALPHA=dum(2)/RHO
+             !
+             IF (ITER == 1 .AND. init == 0) THEN
+                CALL DCOPY(N,S(1+2*N),IONE,X,IONE)
+                CALL DSCAL(N,ALPHA,X,IONE)
+                flop=flop+dble(N)
+             ELSE
+                CALL DAXPY( N, ALPHA, S(1+2*N), IONE, X, IONE )
+                flop=flop+dble(2*N)
+             END IF
+             CALL DAXPY( N, -ALPHA, S(1+N), IONE, f, IONE )
+             dum0 = DNRM2(N,f,IONE)**2
+             RESID=dum0
+             RESID=SQRT(RESID)
+             RESID=RESID/BNORM
+             IF (wff) THEN
+                WRITE(iout,900) iter, resid*bnorm, resid
+             END IF
+             flop=flop+dble(4*N)
+          END DO
+          !
+          IF (wff) THEN
+             WRITE(iout,952) iter
+             WRITE(iout,'()')
+          END IF
+          !
+          kstat(3,1)=ABS(iter)
+          !
+          DEALLOCATE(S)
+          RETURN
+900       FORMAT('****  Iter=',i5,'        Resid=',e9.2,                 &
+               '        Relat. res.=',e9.2)
+940       FORMAT(i3,                                                     &
+               '*SOLUTION: flexible conjugate gradient iterations (FCG(1))')
+946       FORMAT(  '****          (with',i2,' SGS smoothing step per cycle)')
+952       FORMAT('****  - Convergence reached in',I5,' iterations -')
+          !
+        END SUBROUTINE dagmg_FlexCG
+!-----------------------------------------------------------------------
+        RECURSIVE SUBROUTINE dagmg_FlexCG_inner( N,X,R,l,flop)
+          USE dagmg_mem
+          IMPLICIT NONE
+          INTEGER       :: N, ITER, l, ierr
+          REAL (kind(0.0d0)) ::  RESID, flop, BNORM, dum0
+          REAL (kind(0.0d0)) ::  X(N), R(N,*)
+          REAL (kind(0.0d0)) :: alpha1,alpha2,bet0,rho1,rho2,gamm0,dum(6)
+          REAL(kind(0.0d0)), external :: DDOT
+          REAL(kind(0.0d0)), external :: DNRM2
+          INTEGER , parameter :: IONE=1
+          !
+          ! AT MOST 2 ITERATIONS
+          !
+          dum(6)=DNRM2(N, R, IONE)**2
+          ITER = 1
+          !
+          !        Preconditioner Solve.
+          !
+          CALL dagmg_prec( N,X,R,dt(l)%a,dt(l)%ja,dt(l)%ia,l,flop,R(1,2))
+          !
+          CALL dagmg_matv(N,X,R(1,2),dt(l)%a,dt(l)%ja,dt(l)%ia,flop,      &
+               dt(l)%inloc,dt(l)%lstout,dt(l)%ilstout,dt(l)%lstin,dt(l)%ilstin)
+          !
+          dum(4) =  DDOT(N,X,IONE,R(1,2),IONE)
+          dum(5) =  DDOT(N,X,IONE,R,IONE)
+          dum(1:3)=dum(4:6)
+          BNORM=SQRT(dum(3))
+          rho1=dum(1)
+          alpha1=dum(2)
+          !
+          bet0=alpha1/rho1
+          CALL DAXPY( N, -bet0, R(1,2), IONE, R, IONE )
+          dum0=DNRM2(N,R,IONE)**2
+          RESID=dum0
+          RESID=SQRT(RESID)/BNORM
+          IF (RESID <= resi) THEN
+             CALL DSCAL(N,bet0,X,IONE)
+             kstat(2,l)=MAX(kstat(2,l),iter)
+             kstat(3,l)=kstat(3,l)+iter
+             flop=flop+dble(11*N)
+             RETURN
+          END IF
+          !
+          ITER = 2
+          !
+          !         Preconditioner Solve.
+          !
+          CALL dagmg_prec(N,R(1,3),R,dt(l)%a,dt(l)%ja,dt(l)%ia,l,flop,R(1,4))
+          !
+          CALL dagmg_matv(N,R(1,3),R(1,4),dt(l)%a,dt(l)%ja,dt(l)%ia, flop,&
+               dt(l)%inloc,dt(l)%lstout,dt(l)%ilstout,dt(l)%lstin,       &
+               dt(l)%ilstin)
+          !
+          dum(4) = DDOT(N,R(1,2),IONE,R(1,3),IONE)
+          dum(5) = DDOT(N,R(1,3),IONE,R,IONE)
+          dum(6) = DDOT(N,R(1,3),IONE,R(1,4),IONE)
+          dum(1:3)=dum(4:6)
+          gamm0=dum(1)
+          alpha2=dum(2)
+          rho2 =dum(3)
+          !
+          rho2=rho2-gamm0*gamm0/rho1
+          !
+          bet0=(alpha1-alpha2*gamm0/rho2)/rho1
+          CALL DSCAL( N, bet0, X, IONE )
+          bet0=alpha2/rho2
+          CALL DAXPY( N, bet0, R(1,3), IONE, X, IONE )
+          RESID=RESID*RESID         ! crude estimation for statistic only
+          flop=flop+dble(19*N)
+          !
+          kstat(2,l)=MAX(kstat(2,l),iter)
+          kstat(3,l)=kstat(3,l)+iter
+          IF ( RESID > resi )  kstat(1,l)=kstat(1,l)+1
+          !
+          RETURN
+          !
+        END SUBROUTINE dagmg_FlexCG_inner
+!-----------------------------------------------------------------------
+        SUBROUTINE dagmg_GCR(N,f,X,ITER,RESID,a,ja,ia,init,flop)
+          USE dagmg_mem
+          IMPLICIT NONE
+          INTEGER       :: N, ITER, init
+          REAL (kind(0.0d0)) ::  flop
+          REAL (kind(0.0d0)) ::  f(N), X(N)
+          INTEGER       :: ja(*), ia(N+1)
+          REAL (kind(0.0d0)) :: a(*)
+          INTEGER   :: MAXIT,i,itm,kc,ku,kfree,iv,iR,ifree,irst,ierr
+          REAL (kind(0.0d0)) ::  ALPHA, BET0
+          REAL (kind(0.0d0)) ::  RESID, RESID2, BNORM2,  RHO, TRS
+          REAL (kind(0.0d0)) ::  TOL, TOL2BNORM2, TOLT, dum0
+          REAL (kind(0.0d0)) :: dum(6)
+          REAL (kind(0.0d0)), ALLOCATABLE :: S(:)
+          REAL(kind(0.0d0)), external :: DDOT
+          REAL(kind(0.0d0)), external :: DNRM2
+          INTEGER , parameter :: IONE=1
+          INTEGER  :: itm1, m, info
+          !
+          mritr=nwrkcum+N*(2*nrst+2)+((nrst+1)*nrst)/2+nrst
+          ALLOCATE (S(n+1:nwrkcum+N*(2*nrst+3)+((nrst+1)*nrst)/2+nrst))
+          !
+          flop=0.0d0
+          kstat=0
+          IF (wfo) THEN
+             WRITE(iout,938) IRANK,nrst
+          END IF
+          IF (wff) THEN
+             WRITE(iout,946) nsmooth
+          END IF
+          !
+          m=MIN(nrst,ITER,N)
+          kc=1
+          ku=kc+m
+          kfree=ku+m
+          iR=0
+          iv=iR+(m*(m+1))/2
+          ifree=iv+m
+          TRS=EPSILON(1.0d0)
+          TRS=SQRT(SQRT(TRS))
+          TOL = RESID
+          TOL2BNORM2 = TOL
+          MAXIT = ITER
+          RESID2= 1.0d0
+          ITER = 0
+          dum(6) = DNRM2(N, f, IONE)**2
+          flop=flop+dble(2*N)
+          !
+          !    compute initial residual
+          !
+          IF (init==1) THEN
+             CALL dagmg_rescalc(N,x,f,f,a,ja,ia,flop,dt(1)%inloc,      &
+                  dt(1)%lstout,dt(1)%ilstout,dt(1)%lstin,dt(1)%ilstin)
+                  dum(5) = DNRM2(N, f, IONE)**2
+             dum(2:3)=dum(5:6)
+             BNORM2=dum(3)
+             RESID2=dum(2)
+             TOL2BNORM2 = TOL*TOL*BNORM2
+             IF (wff.AND. (MAXIT <= 0 .OR. RESID2 <= TOL2BNORM2)) THEN
+                WRITE(iout,900) 0, 0,SQRT(resid2),SQRT(resid2/bnorm2)
+             END IF
+          END IF
+          !
+          itm  = -1
+          irst = 0
+          DO WHILE ( ITER < MAXIT .AND. RESID2 > TOL2BNORM2 )
+             itm  = itm  + 1
+             ITER = ITER + 1
+             !
+             !      Restarting
+             IF (itm == m) THEN
+                CALL DTPTRS('U','N','U',m, IONE,S(1+iR+kfree*N),          &
+                     S(1+iv+kfree*N),m,info)
+                IF (irst == 0 .AND. init == 0) THEN
+                   CALL DGEMV('N',N,m,1.0d0,S(1+ku*N), &
+                        N,S(1+iv+kfree*N),IONE,0.0d0,&
+                        X,IONE)
+                   flop=flop+dble(2*m*N+m*(m+1))
+                ELSE
+                   CALL DGEMV('N',N,m,1.0d0,S(1+ku*N), &
+                        N,S(1+iv+kfree*N),IONE,0.0d0,&
+                        S(1+kc*N),IONE)
+                   DO i=1,N
+                      X(i)=X(i)+S(1+i-1+kc*N)
+                   END DO
+                   flop=flop+dble((2*m+1)*N+m*(m+1))
+                END IF
+                itm=0
+                irst=irst+1
+             END IF
+             !
+             !        Preconditioner Solve & MATVEC
+             !
+             CALL dagmg_prec(N,S(1+(ku+itm)*N),f,a,ja,ia,1,flop,        &
+                  S(1+ifree+kfree*N))
+             CALL dagmg_matv(N, S(1+(ku+itm)*N), S(1+(kc+itm)*N),       &
+                  a, ja, ia, flop,dt(1)%inloc,dt(1)%lstout,            &
+                  dt(1)%ilstout,dt(1)%lstin,dt(1)%ilstin)
+             !
+             !        Gram-Schmidt
+             !
+             IF (itm > 0) THEN
+                DO i=0,itm-1
+                   dum(1)=DDOT(N,S(1+(kc+i)*N),IONE,S(1+(kc+itm)*N),IONE)
+                   bet0=dum(1)
+                   bet0=bet0/S(1+iR+i+(i*(i+1))/2+kfree*N)
+                   S(1+iR+i+(itm*(itm+1))/2+kfree*N)=bet0
+                   CALL DAXPY(N,-bet0,S(1+(kc+i)*N),IONE,      &
+                        S(1+(kc+itm)*N),IONE)
+                   flop=flop+dble(4*N)
+                END DO
+             END IF
+             !
+             !           no normalisation: record norm instead
+             !
+             dum(4)=DNRM2(N,S(1+(kc+itm)*N),IONE)**2
+             dum(5)=DDOT( N, S(1+(kc+itm)*N), IONE, f, IONE )
+             IF (ITER == 1) THEN
+                dum(1:3)=dum(4:6)
+                IF (init == 0) THEN
+                    BNORM2=dum(3)
+                    RESID2=BNORM2
+                    TOL2BNORM2=TOL*TOL*BNORM2
+                END IF
+                IF (wff) THEN
+                   WRITE(iout,900) 0, 0,SQRT(resid2),SQRT(resid2/bnorm2)
+                END IF
+                TOLT = MAX(TOL2BNORM2,TRS*RESID2)
+             ELSE
+                dum(1:2)=dum(4:5)
+             END IF
+             rho=dum(1)
+             alpha=dum(2)
+             S(1+iR+itm+(itm*(itm+1))/2+kfree*N)=rho
+             bet0=alpha/rho
+             S(1+iv+itm+kfree*N)=bet0
+             !
+             CALL DAXPY( N, -bet0, S(1+(kc+itm)*N), IONE, f, IONE )
+             flop=flop+dble(6*N)
+             !
+             RESID2 = RESID2 - alpha*alpha/rho
+             IF (RESID2 <= TOLT) THEN
+                dum0 = DNRM2(N,f,IONE)**2
+                RESID2=dum0
+                flop=flop+dble(2*N)
+                TOLT = MAX(TOL2BNORM2,TRS*RESID2)
+             END IF
+             IF (wff)THEN
+                WRITE(iout,900) iter,irst,SQRT(resid2),SQRT(resid2/bnorm2)
+             END IF
+             !
+          END DO
+          !
+          IF (itm >= 0) THEN
+             itm1=itm+1
+             CALL DTPTRS('U','N','U',itm1, IONE,S(1+iR+kfree*N),     &
+                  S(1+iv+kfree*N),m,info)
+             IF (irst == 0 .AND. init == 0) THEN
+                CALL DGEMV('N',N,itm1,1.0d0,S(1+ku*N), &
+                     N,S(1+iv+kfree*N),IONE,0.0d0,   &
+                     X,IONE)
+                flop=flop+dble(2*(itm+1)*N+(itm+1)*(itm+2))
+             ELSE
+                CALL DGEMV('N',N,itm1,1.0d0,S(1+ku*N), &
+                     N,S(1+iv+kfree*N),IONE,0.0d0,   &
+                     S(1+kc*N),IONE)
+                DO i=1,N
+                   X(i)=X(i)+S(1+i-1+kc*N)
+                END DO
+                flop=flop+dble((2*(itm+1)+1)*N+(itm+1)*(itm+2))
+             END IF
+          END IF
+          !
+          RESID=SQRT(RESID2/BNORM2)
+          IF (wff) THEN
+             WRITE(iout,952) iter
+             WRITE(iout,'()')
+          END IF
+          !
+          kstat(3,1)=ABS(iter)
+          !
+          DEALLOCATE (S)
+          !
+          RETURN
+900       FORMAT('****  Iter=',i5,' (',i2,' rest.)        Resid=',e9.2,    &
+               '        Relat. res.=',e9.2)
+938       FORMAT(i3,'*SOLUTION: GCR iterations (GCR(',i2,'))')
+946       FORMAT(  '****          (with',i2,' SGS smoothing step per cycle)')
+952       FORMAT('****  - Convergence reached in',I5,' iterations -')
+          !
+        END SUBROUTINE dagmg_GCR
+!-----------------------------------------------------------------------
+        RECURSIVE SUBROUTINE dagmg_GCR_inner( N,X,R,l,flop)
+          USE dagmg_mem
+          IMPLICIT NONE
+          INTEGER       :: N, ITER, l, ierr
+          REAL (kind(0.0d0)) ::  RESID,BNORM,flop,rho1,rho2
+          REAL (kind(0.0d0)) ::  X(N), R(N,*)
+          REAL (kind(0.0d0)) :: alpha1,alpha2,bet0,gamm0,dum(6)
+          REAL(kind(0.0d0)), external :: DDOT
+          REAL(kind(0.0d0)), external :: DNRM2
+          INTEGER , parameter :: IONE=1
+          !
+          ! AT MOST 2 ITERATIONS
+          !
+          dum(6)=DNRM2(N, R, IONE)**2
+          ITER = 1
+          !
+          !        Preconditioner Solve & MATVEC
+          !
+          CALL dagmg_prec(N,X,R,dt(l)%a,dt(l)%ja,dt(l)%ia,l,flop,R(1,2))
+          CALL dagmg_matv(N, X, R(1,2),dt(l)%a,dt(l)%ja,dt(l)%ia,flop,    &
+               dt(l)%inloc,dt(l)%lstout,dt(l)%ilstout,dt(l)%lstin,dt(l)%ilstin)
+          !
+          dum(4)=DNRM2(N,R(1,2),IONE)**2
+          dum(5)=DDOT(N, R(1,2), IONE, R, IONE )
+          dum(1:3)=dum(4:6)
+          BNORM=dum(3)
+          rho1=dum(1)
+          alpha1=dum(2)
+          !
+          bet0=alpha1/rho1
+          RESID=BNORM-alpha1*bet0
+          !
+          IF (RESID <= resi*resi*BNORM) THEN
+             CALL DSCAL( N, bet0, X, IONE )
+             flop=flop+dble(7*N)
+             kstat(2,l)=MAX(kstat(2,l),iter)
+             kstat(3,l)=kstat(3,l)+iter
+             RESID=SQRT(MAX(0.0d0,RESID/BNORM))
+             RETURN
+          END IF
+          !
+          CALL DAXPY( N, -bet0, R(1,2), IONE, R, IONE )
+          !
+          ITER = 2
+          !
+          !           Preconditioner Solve & MATVEC
+          !
+          CALL dagmg_prec(N,R(1,3),R,dt(l)%a,dt(l)%ja,dt(l)%ia,l,flop,R(1,4))
+          CALL dagmg_matv(N,R(1,3),R(1,4),dt(l)%a,dt(l)%ja,dt(l)%ia,flop, &
+               dt(l)%inloc,dt(l)%lstout,dt(l)%ilstout,dt(l)%lstin,       &
+               dt(l)%ilstin)
+          !
+          dum(4) = DDOT(N,R(1,2),IONE,R(1,4),IONE)
+          dum(5) = DDOT(N,R(1,4),IONE,R,IONE)
+          dum(6) = DNRM2(N,R(1,4),IONE)**2
+          dum(1:3)=dum(4:6)
+          gamm0=dum(1)
+          alpha2=dum(2)
+          rho2 =dum(3)
+          !
+          rho2=rho2-gamm0*gamm0/rho1
+          bet0=(alpha1-alpha2*gamm0/rho2)/rho1
+          CALL DSCAL( N, bet0, X, IONE )
+          bet0=alpha2/rho2
+          CALL DAXPY( N, bet0, R(1,3), IONE, X, IONE )
+          RESID=RESID-alpha2*bet0
+          RESID=SQRT(MAX(0.0d0,RESID/BNORM))
+          !
+          flop=flop+dble(17*N)
+          !
+          kstat(2,l)=MAX(kstat(2,l),iter)
+          kstat(3,l)=kstat(3,l)+iter
+          IF ( RESID > resi )  kstat(1,l)=kstat(1,l)+1
+          !
+          RETURN
+          !
+        END SUBROUTINE dagmg_GCR_inner
+!-----------------------------------------------------------------------
+        SUBROUTINE dagmg_aggl2 (n, nc, a, ja, ia, lcg, ind, lpair, deg  &
+             , next, prev, first, odmax, trs, checkdd, trspos, maxdg)
+          IMPLICIT NONE
+          INTEGER :: n, nc, ja(*), ia(n+1), lcg(4*n), ind(n), lpair(n), deg(n)
+          INTEGER :: next(n), prev(n), first(0:n-1), maxdg
+          REAL(kind(0.0d0)) :: a(*), odmax(n), vald
+          REAL(kind(0.0d0)) :: checkdd, trspos
+          REAL(kind(0.0d0)) :: trs, val, tent, odm, valp
+          INTEGER :: mindg, i, j, jj, k, ipair, dg, isel, nmark, nm1, nm2, kd
+          nmark = 0
+          nm1 = - n - 1
+          nm2 = - n - 2
+          maxdg = 0
+          nc = 0
+          IF (checkdd.GT.0.0d0) THEN
+             DO i = 1, n
+                j = ia (i)
+                jj = ia (i + 1) - 1
+                dg = jj - j
+                val = 0.0d0
+                odm = 0.0d0
+                valp= 0.0d0
+                DO k = j, jj
+                   IF (ja (k) .EQ.i) THEN
+                      vald = a(k)
+                   ELSE
+                      odm = MAX(odm,ABS(a(k)))
+                      valp= MAX(valp,a(k))
+                      val = val + ABS(a(k))
+                   ENDIF
+                ENDDO
+                IF (dg.EQ.0 .OR. ABS(vald).GT.checkdd*val) THEN
+                   ind (i) = nm1
+                   nmark = nmark + 1
+                   odmax (i) = 0.0d0
+                   deg (i) = nm1
+                ELSE IF (valp.GT.trspos*vald) THEN
+                   ind(i) = nm2
+                   deg (i) = 0
+                   odmax (i) = - trs * odm
+                ELSE
+                   ind (i) = 0
+                   deg (i) = 0
+                   odmax (i) = - trs * odm
+                ENDIF
+             ENDDO
+          ELSE
+             DO i = 1, n
+                j = ia (i)
+                jj = ia (i + 1) - 1
+                dg = jj - j
+                odm = 0.0d0
+                valp= 0.0d0
+                DO k = j, jj
+                   IF (ja (k) .EQ.i) THEN
+                      vald = a (k)
+                   ELSE
+                      odm = MAX(odm,ABS(a(k)))
+                      valp= MAX(valp,a(k))
+                   ENDIF
+                ENDDO
+                IF (dg.EQ.0) THEN
+                   ind (i) = nm1
+                   nmark = nmark + 1
+                   odmax (i) = 0.0d0
+                   deg (i) = nm1
+                ELSE IF (valp.GT.trspos*vald) THEN
+                   ind(i) = nm2
+                   deg (i) = 0
+                ELSE
+                   ind (i) = 0
+                   deg (i) = 0
+                   odmax (i) = - trs * odm
+                ENDIF
+             ENDDO
+          ENDIF
+          DO i = 1, n
+             DO k = ia (i), ia (i + 1) - 1
+                IF ( (ind (i).EQ.0 .OR. ind(i).EQ.nm2)            &
+                   .AND. a(k).LT.odmax(i)             &
+                   .AND. ja (k).NE.i  ) THEN
+                   dg = deg (ja (k) ) + 1
+                   deg (ja (k) ) = dg
+                   maxdg = MAX(maxdg,dg)
+                ENDIF
+             ENDDO
+          ENDDO
+          DO i = 0, maxdg
+             first (i) = 0
+          ENDDO
+          DO i = n, 1, - 1
+             IF (ind(i).EQ.0 .OR. ind(i).EQ.nm2) THEN
+                dg = deg(i)
+                IF (first(dg) .GT. 0) prev ( first(dg) ) = i
+                next (i) = first (dg)
+                prev (i) = 0
+                first (dg) = i
+             ENDIF
+          ENDDO
+          DO WHILE (nmark.LT.n)
+             mindg = - 1
+             ipair = 0
+             DO WHILE (ipair.EQ.0)
+                mindg = mindg + 1
+                !           if (mindg .gt. maxdg) stop 'isel'
+                IF (first (mindg) .GT.0) THEN
+                   ipair = first (mindg)
+                   first (mindg) = next (ipair)
+                   IF (next (ipair) .GT.0) prev (next (ipair) ) = 0
+                ENDIF
+             ENDDO
+             nc = nc + 1
+             ind (ipair) = nc
+             isel = 0
+             IF (ind(ipair) .EQ. nm2) GOTO 20
+             val = 0.0d0
+             DO i = ia (ipair), ia (ipair + 1) - 1
+                j = ja (i)
+                   IF (ind(j).EQ.0 .AND. a(i).LT.odmax(ipair)) THEN
+                      tent = a(i)
+                      IF (tent.LT.1.0001*val) THEN
+                         isel = j
+                         val = tent
+                      ENDIF
+                   ENDIF
+             ENDDO
+ 20          CONTINUE
+             IF (isel.EQ.0) THEN
+                lcg (nc) = ipair
+                lpair (nc) = 0
+                nmark = nmark + 1
+             ELSE
+                ind (ipair) = - nc
+                ind (isel) = nc
+                lcg (nc) = isel
+                nmark = nmark + 2
+                lpair (nc) = ipair
+                dg = deg(isel)
+                IF (prev (isel) .GT.0) THEN
+                   next (prev (isel) ) = next (isel)
+                ELSE
+                   first (dg) = next (isel)
+                ENDIF
+                IF (next (isel) .GT.0) prev (next (isel) ) = prev (isel)
+                DO i = ia (isel), ia (isel + 1) - 1
+                   j = ja (i)
+                      IF ( (ind (j).EQ.0 .OR. ind(j).EQ.nm2)            &
+                           .AND. a(i).LT.odmax(isel) ) THEN
+                         dg = deg (j)
+                         dg = dg - 1
+                         deg (j) = dg
+!                         IF (dg .LT. maxdeg) THEN
+                            IF (prev (j) .GT.0) THEN
+                              next (prev (j) ) = next (j)
+                            ELSE
+                               first (dg+1) = next (j)
+                            ENDIF
+                            IF (next (j) .GT.0) prev (next (j) ) = prev (j)
+                            IF (first (dg) .GT.0) prev (first (dg) ) = j
+                            next (j) = first (dg)
+                            prev (j) = 0
+                            first (dg) = j
+!                         ENDIF
+                      END IF
+                ENDDO
+             ENDIF
+             DO i = ia (ipair), ia (ipair + 1) - 1
+                j = ja (i)
+                   IF ( (ind (j).EQ.0 .OR. ind(j).EQ.nm2)            &
+                        .AND. a(i).LT.odmax(ipair) ) THEN
+                      dg = deg (j)
+                      dg = dg - 1
+                      deg (j) = dg
+!                      IF (dg .LT. maxdeg) THEN
+                         IF (prev (j) .GT.0) THEN
+                            next (prev (j) ) = next (j)
+                         ELSE
+                            first (dg+1) = next (j)
+                         ENDIF
+                         IF (next (j) .GT.0) prev (next (j) ) = prev (j)
+                         IF (first (dg) .GT.0) prev (first (dg) ) = j
+                         next (j) = first (dg)
+                         prev (j) = 0
+                         first (dg) = j
+!                      ENDIF
+                   ENDIF
+             ENDDO
+          ENDDO
+          RETURN
+        END SUBROUTINE dagmg_aggl2
+!-----------------------------------------------------------------------
+        SUBROUTINE dagmg_aggl4 (n, nc, a, ja, ia, lcg, ind, lcg1,      &
+             lpair1, lcg2, lpair2, odmax, trs, a2, ja2, ia2, checkdd, trspos)
+          IMPLICIT NONE
+          INTEGER :: n, nc, ja(*), ia(n+1), lcg(4*n), ind(n)
+          INTEGER :: lpair1(n), lcg1 (n), lcg2(n), lpair2(n)
+          INTEGER :: ia2(n+1), ja2(*)
+          REAL(kind(0.0d0)) :: a(*), odmax (n), a2(*), vald, wextmx, wextmn
+          REAL(kind(0.0d0)) :: trs, checkdd, trspos, wextmax, wextmin
+          INTEGER :: nc1, i, jj, jc, jcol, kb, jpos, nz, maxdg
+          INTEGER, POINTER, DIMENSION(:) :: ifirst
+          CALL dagmg_aggl2 (n, nc1, a, ja, ia, lcg1, ind, lpair1, lcg2,  &
+               lpair2, ia2, lcg, odmax, trs, checkdd, trspos, maxdg)
+          nz = 0
+          ia2 (1) = 1
+          DO i = 1, nc1
+             lcg (i) = 0
+          ENDDO
+          DO i = 1, nc1
+             jc=nc1+1
+             jj = lcg1 (i)
+             DO kb = ia (jj), ia (jj+1) - 1
+                jcol = ja (kb)
+                   jcol = ABS (ind (jcol) )
+!                   IF (jcol.NE.i.AND.jcol.LE.nc1) THEN
+                   IF (jcol.LE.nc1) THEN
+                      jpos = lcg (jcol)
+                      IF (jpos.EQ.0) THEN
+                         nz = nz + 1
+                         ja2 (nz) = jcol
+                         lcg (jcol) = nz
+                         a2 (nz) = a (kb)
+                      ELSE
+                         a2 (jpos) = a2 (jpos) + a (kb)
+                      ENDIF
+                   ENDIF
+             ENDDO
+             jj = lpair1 (i)
+             IF (jj.GT.0) THEN
+                DO kb = ia (jj), ia (jj + 1) - 1
+                   jcol = ja (kb)
+                      jcol = ABS (ind (jcol) )
+!                      IF (jcol.NE.i.AND.jcol.LE.nc1) THEN
+                      IF (jcol.LE.nc1) THEN
+                         jpos = lcg (jcol)
+                         IF (jpos.EQ.0) THEN
+                            nz = nz + 1
+                            ja2 (nz) = jcol
+                            lcg (jcol) = nz
+                            a2 (nz) = a (kb)
+                         ELSE
+                            a2 (jpos) = a2 (jpos) + a (kb)
+                         ENDIF
+                      ENDIF
+                ENDDO
+             ENDIF
+             DO kb = ia2 (i), nz
+                lcg (ja2 (kb) ) = 0
+             ENDDO
+             ia2 (i + 1) = nz + 1
+          ENDDO
+          IF (maxdg+1 .LE. ia(n+1)-nz-1) THEN
+             CALL dagmg_aggl2 (nc1, nc, a2, ja2, ia2, lcg2, lcg, lpair2,&
+                  lcg(n+1), lcg(2*n+1), lcg(3*n+1), ja2(nz+1),         &
+                  odmax, trs, -1.0d0, trspos, maxdg)
+          ELSE
+             ALLOCATE(ifirst(maxdg+1))
+             CALL dagmg_aggl2 (nc1, nc, a2, ja2, ia2, lcg2, lcg, lpair2,&
+               lcg(n+1), lcg(2*n+1), lcg(3*n+1), ifirst,               &
+               odmax, trs, -1.0d0, trspos, maxdg)
+             DEALLOCATE(ifirst)
+         END IF
+          DO i = 1, n
+             jc = ind (i)
+             jcol = ABS (jc)
+             IF (jcol.LE.nc1) THEN
+                IF (jc.GT.0) THEN
+                   ind (i) = lcg (jcol)
+                ELSE
+                   ind (i) = - ABS (lcg (jcol) )
+                ENDIF
+             ENDIF
+          ENDDO
+          CALL dagmg_setlcg (nc, lcg, lcg1, lpair1, lcg2, lpair2)
+          RETURN
+        END SUBROUTINE dagmg_aggl4
+!-----------------------------------------------------------------------
+        SUBROUTINE dagmg_setlcg (nc, lcg, lcg1, lpair1, lcg2, lpair2)
+          IMPLICIT NONE
+          INTEGER nc, lcg(4,nc), i, j1, j2
+          INTEGER lpair1(*), lcg1(*), lcg2(*), lpair2 (*)
+          DO i = 1, nc
+             j1 = lcg2 (i)
+             j2 = lpair2 (i)
+             lcg (1, i) = lcg1 (j1)
+             lcg (2, i) = lpair1 (j1)
+             IF (j2.GT.0) THEN
+                lcg (3, i) = lcg1 (j2)
+                lcg (4, i) = lpair1 (j2)
+             ELSE
+                lcg (3, i) = 0
+                lcg (4, i) = 0
+             ENDIF
+          ENDDO
+          RETURN
+        END SUBROUTINE dagmg_setlcg
+!-----------------------------------------------------------------------
+        SUBROUTINE dagmg_setsgs (n, a, ja, ia, p, idiag, w, iw, inloc)
+          USE dagmg_mem
+          IMPLICIT NONE
+          INTEGER :: n, ja(*), ia(n+1), idiag(n), iw(*), inloc(n)
+          REAL(kind(0.0d0)) :: a(*), p(n), w(*), t
+          INTEGER :: i, j, k, ipos, nzu
+          DO i = 1, n
+             !       find diag, save upper part, concatenate lower part
+             ipos = ia (i)
+             nzu = 0
+             DO k = ia (i), ia (i + 1) - 1
+                j = ja (k)
+                IF (j.GT.i) THEN
+                   nzu = nzu + 1
+                   w (nzu) = a (k)
+                   iw (nzu) = j
+                ELSEIF (j.LT.i) THEN
+                   a (ipos) = a (k)
+                   ja (ipos) = j
+                   ipos = ipos + 1
+                ELSE
+                   p (i) = a (k)
+                ENDIF
+             ENDDO
+             !
+             !       copy back diagonal entry
+             idiag (i) = ipos
+             a (ipos) = p (i)
+             ja (ipos) = i
+             !
+             !       copy back upper part
+             DO k = 1, nzu
+                ipos = ipos + 1
+                a (ipos) = w (k)
+                ja (ipos) = iw (k)
+             ENDDO
+             !
+             !      save inverse
+             t=p(i)
+             p (i) = 1.0d0 / t
+          ENDDO
+          RETURN
+        END SUBROUTINE dagmg_setsgs
+!-----------------------------------------------------------------------
+        SUBROUTINE dagmg_matv (n, x, y, a, ja, ia, flop,                &
+             inloc, lstout, ilstout, lstin, ilstin )
+          USE dagmg_mem
+          IMPLICIT NONE
+          INTEGER :: n, ja(*), ia(n+1), i, kk, k1, k2, ier
+          INTEGER :: inloc(n), lstout(*), ilstout(*), lstin(0:*), ilstin(*)
+          REAL(kind(0.0d0)) :: x(n), y(n), a(*), t
+          REAL(kind(0.0d0)) :: flop
+          DO i = 1, n
+             k1 = ia (i)
+             t = a (k1) * x (ja (k1) )
+             k2 = ia (i+1)
+             DO kk = k1 + 1, k2 - 1
+                t = t + a (kk) * x (ja (kk) )
+             ENDDO
+             y (i) = t
+          ENDDO
+          flop = flop + dble(2 * (ia (n + 1) - 1) - n)
+          RETURN
+        END SUBROUTINE dagmg_matv
+!-----------------------------------------------------------------------
+        SUBROUTINE dagmg_sgsolve1(n, b, t1, r, v, a, ja, ia, p, idiag, flop,&
+             inloc, lstout, ilstout, lstin, ilstin )
+          USE dagmg_mem
+          IMPLICIT NONE
+          INTEGER :: n, ja(*), ia(n+1), idiag(n), kk, j, k2, i, ier
+          INTEGER :: inloc (n), lstout(*), ilstout(*), lstin(0:*), ilstin(*)
+          REAL(kind(0.0d0)) :: b(n), t1(n), r(n), v(n)
+          REAL(kind(0.0d0)) :: a(*), p(n), t
+          REAL(kind(0.0d0)) :: flop
+          !a
+          t1 (1) = p (1) * b (1)
+          v (1) = b (1)
+          DO kk = 2, n
+             t = b (kk)
+             DO j = ia (kk), idiag (kk) - 1
+                t = t - a (j) * t1 (ja (j) )
+             ENDDO
+             v (kk) = t
+             t1 (kk) = p (kk) * t
+          ENDDO
+          !b
+          DO kk = n - 1, 1, - 1
+             t = 0.0d0
+             k2 = ia (kk+1)
+             DO j = idiag (kk) + 1, k2 - 1
+                t = t - a (j) * t1 (ja (j) )
+             ENDDO
+             t1 (kk) = t1 (kk) + p (kk) * t
+          ENDDO
+          !c
+          !...
+          r (1) = b (1) - v (1)
+          DO kk = 2, n
+             t = b (kk) - v (kk)
+             DO j = ia (kk), idiag (kk) - 1
+                t = t - a (j) * t1 (ja (j) )
+             ENDDO
+             r (kk) = t
+          ENDDO
+          !...
+          flop = flop + dble(3 * (ia (n + 1) - 1) )
+          RETURN
+        END SUBROUTINE dagmg_sgsolve1
+!-----------------------------------------------------------------------
+        SUBROUTINE dagmg_sgsolve2(n, x, t1, t3, a, ja, ia, p, idiag, flop, &
+             inloc, lstout, ilstout, lstin, ilstin )
+          USE dagmg_mem
+          IMPLICIT NONE
+          INTEGER :: n, ja(*), ia(n+1), idiag(n), kk, j, i, k2, ier
+          INTEGER :: inloc (n), lstout(*), ilstout(*), lstin(0:*), ilstin(*)
+          REAL(kind(0.0d0)) :: x(n), t1(n), t3(n), a(*), p(n), t
+          REAL(kind(0.0d0)) :: flop
+          ! input : x=t2 ; converted to t1+t2
+          ! output: x=t1+t1+t3
+          !a
+          x (n) = x (n) + t1 (n)
+          t3 (n) = 0.0d0
+          DO kk = n - 1, 1, - 1
+             x (kk) = x (kk) + t1 (kk)
+             t = 0.0d0
+             DO j = idiag (kk) + 1, ia (kk + 1) - 1
+                t = t + a (j) * x (ja (j) )
+             ENDDO
+             t3 (kk) = t
+          ENDDO
+          !b
+          t3 (1) = p (1) * t3 (1)
+          DO kk = 2, n
+             t = t3 (kk)
+             DO j = ia (kk), idiag (kk) - 1
+                t = t - a (j) * t3 (ja (j) )
+             ENDDO
+             t3 (kk) = p (kk) * t
+          ENDDO
+          !c
+          DO kk = 1, n
+             t3 (kk) = x (kk) + t3 (kk)
+          ENDDO
+          !d
+          DO kk = n - 1, 1, - 1
+             t = 0.0d0
+             k2 = ia (kk+1)
+             DO j = idiag (kk) + 1, k2 - 1
+                t = t - a (j) * t3 (ja (j) )
+             ENDDO
+             t3 (kk) = t3 (kk) + p (kk) * t
+          ENDDO
+          !e
+          DO kk = 1, n
+             x (kk) = x (kk) + t1 (kk) - t3 (kk)
+          ENDDO
+          flop = flop + dble(3 * (ia (n + 1) - 1 + n) )
+          RETURN
+        END SUBROUTINE dagmg_sgsolve2
+!-----------------------------------------------------------------------
+        SUBROUTINE dagmg_sgsolve (n, x, a, ja, ia, p, idiag, flop, inloc)
+          IMPLICIT NONE
+          INTEGER :: n, ja(*), ia(n+1), idiag(n)
+          INTEGER ::  kk, j, k2, inloc(n)
+          REAL(kind(0.0d0)) :: x(n), a(*), p(n), t
+          REAL(kind(0.0d0)) :: flop
+          x (1) = p (1) * x (1)
+          DO kk = 2, n
+             t = x (kk)
+             DO j = ia (kk), idiag (kk) - 1
+                t = t - a (j) * x (ja (j) )
+             ENDDO
+             x (kk) = p (kk) * t
+          ENDDO
+          DO kk = n - 1, 1, - 1
+             t = 0.0d0
+             k2 = ia (kk+1)
+             DO j = idiag (kk) + 1, k2 - 1
+                t = t - a (j) * x (ja (j) )
+             ENDDO
+             x (kk) = x (kk) + p (kk) * t
+          ENDDO
+          flop = flop + dble(2 * (ia (n + 1) - 1) )
+          RETURN
+        END SUBROUTINE dagmg_sgsolve
+!-----------------------------------------------------------------------
+        SUBROUTINE dagmg_rescalc (n, x, y, b, a, ja, ia, flop,              &
+             inloc, lstout, ilstout, lstin, ilstin )
+          USE dagmg_mem
+          IMPLICIT NONE
+          INTEGER :: n, ja(*), ia(n+1), i, kk, k1, k2, ier
+          INTEGER :: inloc(n), lstout(*), ilstout(*), lstin(0:*), ilstin(*)
+          REAL(kind(0.0d0)) :: x(n), y(n), b(n), a (*), t
+          REAL(kind(0.0d0)) :: flop
+          DO i = 1, n
+             k1 = ia (i)
+             t = b (i) - a (k1) * x (ja (k1) )
+             k2 = ia (i+1)
+             DO kk = k1 + 1, k2 - 1
+                t = t - a (kk) * x (ja (kk) )
+             ENDDO
+             y (i) = t
+          ENDDO
+          flop = flop + dble(2 * (ia (n + 1) - 1) )
+          RETURN
+        END SUBROUTINE dagmg_rescalc
+!-----------------------------------------------------------------------
+        SUBROUTINE dagmg_prolaggl (n, nc, V, B, ind)
+          IMPLICIT NONE
+          INTEGER :: n, nc, ind (n), k, i
+          REAL(kind(0.0d0)) :: V (n), B (nc)
+          DO i = 1, n
+             k = ABS (ind (i) )
+             IF (k.LE.nc) THEN
+                V (i) = B (k)
+             ELSE
+                V (i) = 0.0d0
+             ENDIF
+          ENDDO
+          RETURN
+        END SUBROUTINE dagmg_prolaggl
+!-----------------------------------------------------------------------
+        SUBROUTINE dagmg_restaggl (n, nc, V, B, ind, flop)
+          IMPLICIT NONE
+          INTEGER :: n, nc, ind (n), k, i
+          REAL(kind(0.0d0)) :: V (n), B (nc)
+          REAL(kind(0.0d0)) :: flop
+          B(1:nc)=0.0d0
+          DO i = 1, n
+             k = ABS (ind (i) )
+             IF (k.LE.nc) B (k) = B (k) + V (i)
+          ENDDO
+          flop = flop + dble(n)
+          RETURN
+        END SUBROUTINE dagmg_restaggl
+!-----------------------------------------------------------------------
+!-----------------------------------------------------------------------
+      SUBROUTINE dagmg_setacg (nc, lcg, a, ja, ia, ac, jac, iac, nzac,  &
+           ind, iw)
+        IMPLICIT NONE
+        INTEGER :: nc, lcg(4,nc), ja(*), ia(*), jac(*)
+        INTEGER :: iac(nc+1), nzac
+        INTEGER :: ind(*), iw(*)
+        REAL(kind(0.0d0)) :: a(*), ac(*)
+        INTEGER :: i, kk, jj, jc, kb, jcol, jpos
+        DO i = 1, nc
+           iw (i) = 0
+        ENDDO
+        nzac = 0
+        iac (1) = 1
+        DO 10 i = 1, nc
+           DO 8 kk = 1, 4
+              jj = lcg (kk, i)
+              IF (jj.NE.0) THEN
+                 DO kb = ia (jj), ia (jj + 1) - 1
+                    jc = ja (kb)
+                    jcol = ABS (ind (jc) )
+                    IF (jcol.LE.nc) THEN
+                       jpos = iw (jcol)
+                       IF (jpos.EQ.0) THEN
+                          nzac = nzac + 1
+                          jac (nzac) = jcol
+                          iw (jcol) = nzac
+                          ac (nzac) = a (kb)
+                       ELSE
+                          ac (jpos) = ac (jpos) + a (kb)
+                       ENDIF
+                    ENDIF
+                 ENDDO
+              END IF
+8          END DO
+           DO kb = iac (i), nzac
+              iw (jac (kb) ) = 0
+           ENDDO
+           iac (i + 1) = nzac + 1
+10      END DO
+        RETURN
+      END SUBROUTINE dagmg_setacg
+!*Routine for bacward compatibility************************************
+      SUBROUTINE agmg(n,a,ja,ia,f,ijob,iprint,nrest,iter,tol)
+          IMPLICIT NONE
+          INTEGER    :: n,ia(n+1),ja(*),ijob,iprint,nrest,iter
+          REAL (kind(0.0d0)) :: a(*),f(n),x(n)
+          REAL (kind(0.0d0)) :: tol
+          CALL dagmg(n,a,ja,ia,f,x,ijob,iprint,nrest,iter,tol)
+          CALL DCOPY(n,x,1,f,1)
+          RETURN
+      END SUBROUTINE agmg
+!*Timings***************************************************************
+      SUBROUTINE dagmg_mestime (id,cputm,eltm)
+        IMPLICIT NONE
+        INTEGER, SAVE :: cpt_init(10)=-1,cpt_fin,cpt_max,freq,cpt
+        REAL, SAVE :: t1(10), t2
+        REAL(kind(0.0d0)) :: cputm,eltm
+        INTEGER :: id
+        IF (id>0) THEN
+           !Next line may be uncommented if FORTRAN 95 function
+           !CPU_TIME is implemented
+           !   CALL CPU_TIME(t2)
+           CALL SYSTEM_CLOCK(cpt_fin,freq,cpt_max)
+           !
+           cpt = cpt_fin - cpt_init(id)
+           IF (cpt_fin < cpt_init(id)) cpt = cpt + cpt_max
+           eltm = dble(cpt) / freq
+           cputm = dble(t2 - t1(id))
+           !
+        ELSE
+           !
+           CALL SYSTEM_CLOCK(cpt_init(-id),freq,cpt_max)
+           !Next line may be uncommented if FORTRAN 95 function
+           !CPU_TIME is implemented
+           !   CALL CPU_TIME(t1(-id))
+           !
+        END IF
+        RETURN
+      END SUBROUTINE dagmg_mestime
+!***********************************************************************
diff --git a/modules/df3.mod b/modules/df3.mod
new file mode 100644
index 0000000..415ad2e
--- /dev/null
+++ b/modules/df3.mod
@@ -0,0 +1,357 @@
+/* Gerris - The GNU Flow Solver                       (-*-C-*-)
+ * Copyright (C) 2001-2008 National Institute of Water and Atmospheric Research
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.  
+ */
+
+#include <stdlib.h>
+#include "simulation.h"
+#include "map.h"
+#include "output.h"
+#include "init.h"
+
+typedef struct Vector_ {
+  gint x, y, z;
+} Vector;
+
+#define POW2(x) (1 << (int)(x))
+
+/* GfsOutputPovrayDF3: Header */
+
+GfsOutputClass * gfs_output_povray_DF3_class (void);
+
+#define GFS_IS_OUTPUT_POVRAY_DF3(obj) (gts_object_is_from_class (obj, \
+								 gfs_output_povray_DF3_class ()))
+
+static void write_density_value (FttCell * cell, gpointer * data)
+{
+  unsigned char * buf = data[0];
+  gdouble * min = data[1];
+  gdouble * max = data[2];
+  GfsVariable * v = data[3];
+  guint * min_depth = data[4];
+  guint * max_depth = data[5];
+  Vector * dimensions = (Vector *) data[6];
+  guint xc = dimensions->x;
+  guint yc = dimensions->y;
+  guint zc = dimensions->z;
+  guint position_size = *((guint *) data[7]);
+  GtsBBox * bb_density = data[8];
+
+  FttVector p;
+  guint pos = 0;
+  gdouble value;
+  guint value_i;
+  guint level = ftt_cell_level(cell);
+
+  if (level > *max_depth || level < *min_depth) {
+    return;
+  }
+
+  ftt_cell_pos (cell, &p);
+
+  gint xp = ((gdouble)(p.x - bb_density->x1))*POW2(*max_depth);
+  gint yp = ((gdouble)(p.y - bb_density->y1))*POW2(*max_depth);
+  gint zp = ((gdouble)(p.z - bb_density->z1))*POW2(*max_depth);
+
+  pos = zp*(yc*xc) + yp*xc + xp;
+  if (pos > xc*yc*zc) {
+    return;
+  }
+
+  value = (GFS_VARIABLE (cell, v->i) - *min)/(*max - *min);
+
+  if (level < *max_depth) {
+    gdouble size = ftt_cell_size(cell)/2.0;
+    gdouble x, y, z;
+    int n = POW2(*max_depth - level);
+    double d = ftt_cell_size(cell)/n;
+    gdouble xmin = p.x - size;
+    gdouble ymin = p.y - size;
+    gdouble zmin = p.z - size;
+    int i, j, k;
+    gdouble t;
+    FttVector p1;
+    gint pos1;
+
+    for (i = 0; i < n; i++) {
+      x = xmin + (i + 0.5) * d;
+      if (x < bb_density->x1 || x > bb_density->x2) {
+	continue;
+      }
+      for (j = 0; j < n; j++) {
+	y = ymin + (j + 0.5) * d;
+	if (y < bb_density->y1 || y > bb_density->y2) {
+	  continue;
+	}
+	for (k = 0; k < n; k++) {
+	  z = zmin + (k + 0.5) * d;
+	  if (z < bb_density->z1 || z > bb_density->z2) {
+	    continue;
+	  }
+
+	  p1.x = x;
+	  p1.y = y;
+	  p1.z = z;
+
+	  pos1 = pos + (k - n/2)*(xc*yc) + (j - n/2)*xc + (i - n/2);
+
+	  if (pos1 < 0 || pos1 > xc*yc*zc) {
+	     continue;
+	  }
+
+	  t = gfs_interpolate(cell, p1, v);
+	  value = (t - *min)/(*max - *min);
+
+	  if (position_size == 2) {
+	    value_i = value * 0xffff;
+	    buf[2*pos1] = (unsigned char) ((value_i >> 8) & 0xff);
+	    buf[2*pos1 + 1] = (unsigned char) (value_i & 0xff);
+	  }
+	  else {
+	    value_i = value * 0xff;
+	    buf[pos1] = (unsigned char) (value_i & 0xff);
+	  }
+	}
+      }
+    }
+  }
+  else {
+    if (position_size == 2) {
+      value_i = value * 0xffff;
+      buf[2*pos] = (unsigned char) ((value_i >> 8) & 0xff);
+      buf[2*pos + 1] = (unsigned char) (value_i & 0xff);
+    }
+    else {
+      value_i = value * 0xff;
+      buf[pos] = (unsigned char) (value_i & 0xff);
+    }
+  }
+}
+
+static void write_density_file (FILE * file, guint xc, guint yc, guint zc,
+				char * density_buf, size_t density_buf_s)
+{
+  unsigned char header[] = "\0\0\0\0\0\0";
+  g_return_if_fail (file != NULL);
+  g_return_if_fail (density_buf != NULL);
+  /* header: x,y,z dimensions, two bytes each, big endian */
+  header[0] = (unsigned char) ((xc & 0xff00) >> 8);
+  header[1] = (unsigned char) (xc & 0xff);
+  header[2] = (unsigned char) ((yc & 0xff00) >> 8);
+  header[3] = (unsigned char) (yc & 0xff);
+  header[4] = (unsigned char) ((zc & 0xff00) >> 8);
+  header[5] = (unsigned char) (zc & 0xff);
+  fwrite(header, sizeof(char), 6, file);
+  /* write prepared data */
+  fwrite(density_buf, sizeof(char), density_buf_s, file);
+}
+
+static void max_extent (FttCell * cell, FttVector extent[2])
+{
+  gdouble h = ftt_cell_size (cell)/2.;
+  FttVector pos;
+  
+  ftt_cell_pos (cell, &pos);
+  if (pos.x - h < extent[0].x) extent[0].x = pos.x - h;
+  if (pos.y - h < extent[0].y) extent[0].y = pos.y - h;
+  if (pos.z - h < extent[0].z) extent[0].z = pos.z - h;
+
+  if (pos.x + h > extent[1].x) extent[1].x = pos.x + h;
+  if (pos.y + h > extent[1].y) extent[1].y = pos.y + h;
+  if (pos.z + h > extent[1].z) extent[1].z = pos.z + h;
+}
+
+static gboolean cell_condition (FttCell * cell, gpointer condition)
+{
+  return gfs_function_value (condition, cell);
+}
+
+static void gfs_write_povray_density(GfsDomain * domain, 
+				     GfsFunction * condition,
+				     GfsVariable * v, gdouble min, gdouble max,
+				     FttTraverseFlags flags,
+				     gint level,
+				     FILE * fp)
+{
+  FttVector extent[2] = {{ G_MAXDOUBLE, G_MAXDOUBLE, G_MAXDOUBLE },
+			 { - G_MAXDOUBLE, - G_MAXDOUBLE, - G_MAXDOUBLE }};
+  Vector dimensions;
+  GtsBBox bb_density;
+  gpointer data[9];
+  /* Povray would support 1, 2, 4, but here we use only 1 byte
+   * per voxel. */
+  guint position_size = 1;
+  guint max_depth = 0;
+  guint min_depth = 0;
+  guint xc;
+  guint yc;
+  guint zc;
+  size_t density_buf_s;
+  char *density_buf = NULL;
+
+  g_return_if_fail (domain != NULL);
+  g_return_if_fail (fp != NULL);
+
+  if (min == max) {
+    max = min + 1.;
+  }
+
+  if (level < 0) {
+    max_depth = gfs_domain_depth(domain);
+  }
+  else {
+    max_depth = level;
+  }
+
+  if (condition) {
+    gfs_catch_floating_point_exceptions ();
+    gfs_domain_cell_traverse_condition (domain, FTT_PRE_ORDER, flags, level,
+					(FttCellTraverseFunc) max_extent, extent,
+					cell_condition, condition);
+    gfs_restore_fpe_for_function (condition);
+  }
+  else
+    gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, flags, level,
+			      (FttCellTraverseFunc) max_extent, extent);
+    
+  if (extent[0].x == G_MAXDOUBLE)
+    return;
+
+  bb_density.x1 = extent[0].x;
+  bb_density.y1 = extent[0].y;
+  bb_density.z1 = extent[0].z;
+  bb_density.x2 = extent[1].x;
+  bb_density.y2 = extent[1].y;
+  bb_density.z2 = extent[1].z;
+
+  /* total memory size */
+  xc = (extent[1].x - extent[0].x)*POW2(max_depth);
+  yc = (extent[1].y - extent[0].y)*POW2(max_depth);
+  zc = (extent[1].z - extent[0].z)*POW2(max_depth);
+
+  dimensions.x = xc;
+  dimensions.y = yc;
+  dimensions.z = zc;
+
+  /*
+  if (verbose == TRUE) {
+    fprintf (stdout, "level: %d\n", level);
+    fprintf (stdout, "max_depth: %d\n", max_depth);
+    fprintf (stdout, "xc, yc, zc: <%d, %d, %d>\n", xc, yc, zc);
+  }
+  */
+
+  density_buf_s = position_size * xc * yc * zc;
+  density_buf = g_malloc (density_buf_s);
+
+  if (density_buf == NULL) {
+    g_warning ("GfsOutputPovrayDF3: Failed to allocate %ld bytes of memory",
+	       (long) density_buf_s);
+    return; /* failure */
+  }
+
+  memset(density_buf, 0, density_buf_s);
+
+  data[0] = density_buf;
+  data[1] = &min;
+  data[2] = &max;
+  data[3] = v;
+  data[4] = &min_depth;
+  data[5] = &max_depth;
+  data[6] = &dimensions;
+  data[7] = &position_size;
+  data[8] = &bb_density;
+
+  if (condition) {
+    gfs_catch_floating_point_exceptions ();
+    gfs_domain_cell_traverse_condition (domain, FTT_PRE_ORDER, flags, level,
+					(FttCellTraverseFunc) write_density_value, data,
+					cell_condition, condition);
+    gfs_restore_fpe_for_function (condition);
+  }
+  else {
+    gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, flags, level,
+			      (FttCellTraverseFunc) write_density_value, data);
+  }
+
+  /* write buffer to DF3 file */
+  write_density_file (fp, xc, yc, zc, density_buf, density_buf_s);
+
+  g_free(density_buf);
+}
+
+/* ------------------------------------------------------ */
+/* GfsOutputPovrayDF3: Object */
+
+static gboolean gfs_output_povray_density_event (GfsEvent * event,
+						 GfsSimulation * sim)
+{
+  if ((* GFS_EVENT_CLASS (GTS_OBJECT_CLASS
+			  (gfs_output_povray_DF3_class ())->parent_class)->event)
+      (event, sim)) {
+    GfsOutputScalar *output = GFS_OUTPUT_SCALAR (event);
+    GfsDomain *domain = GFS_DOMAIN (sim);
+    
+    gfs_write_povray_density (domain,
+			      output->condition,
+			      output->v, output->min, output->max,
+			      FTT_TRAVERSE_LEAFS, output->maxlevel,
+			      GFS_OUTPUT (event)->file->fp);
+
+    fflush (GFS_OUTPUT (event)->file->fp);
+    return TRUE;
+  }
+  return FALSE;
+}
+
+static void gfs_output_povray_DF3_class_init (GfsOutputClass * klass)
+{
+  GFS_EVENT_CLASS (klass)->event = gfs_output_povray_density_event;
+}
+
+GfsOutputClass * gfs_output_povray_DF3_class (void)
+{
+  static GfsOutputClass * klass = NULL;
+  
+  if (klass == NULL) {
+    GtsObjectClassInfo gfs_output_povray_density_info = {
+      "GfsOutputPovrayDF3",
+      sizeof (GfsOutputScalar),
+      sizeof (GfsOutputClass),
+      (GtsObjectClassInitFunc) gfs_output_povray_DF3_class_init,
+      (GtsObjectInitFunc) NULL,
+      (GtsArgSetFunc) NULL,
+      (GtsArgGetFunc) NULL
+    };
+    klass = gts_object_class_new (GTS_OBJECT_CLASS
+				  (gfs_output_scalar_class ()),
+				  &gfs_output_povray_density_info);
+  }
+
+  return klass;
+}
+
+/* Initialize module */
+
+const gchar gfs_module_name[] = "df3";
+const gchar * g_module_check_init (void);
+
+const gchar * g_module_check_init (void)
+{
+  gfs_output_povray_DF3_class ();
+  return NULL;
+}
diff --git a/modules/electrohydro.mod b/modules/electrohydro.mod
new file mode 100644
index 0000000..a91388b
--- /dev/null
+++ b/modules/electrohydro.mod
@@ -0,0 +1,856 @@
+/* Gerris - The GNU Flow Solver                       (-*-C-*-)
+ * Copyright (C) 2010 Jose M. López-Herrera Sánchez
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.  
+ */
+
+#include "simulation.h"
+#include "source.h"
+#include "adaptive.h"
+#include "output.h"
+#include "solid.h"
+
+/* GfsElectroHydro: Header */
+
+typedef struct _GfsElectroHydro              GfsElectroHydro;
+
+struct _GfsElectroHydro {
+  /*< private >*/
+  GfsSimulation parent;
+
+  /*< public >*/
+  GfsVariable * phi ;                             /* Electric potential */
+  GfsVariable * E[FTT_DIMENSION] ;                /* Electric field; E=-Nabla Phi */
+  GfsMultilevelParams electric_projection_params; /* Params for the electric potential */
+  GfsVariable * rhoe ;                            /* volumetric charge density */
+  GfsFunction * perm ;                            /* electric permittivity */
+};
+
+#define GFS_ELECTRO_HYDRO(obj)            GTS_OBJECT_CAST (obj,		\
+							 GfsElectroHydro,	\
+							 gfs_electro_hydro_class ())
+#define GFS_IS_ELECTRO_HYDRO(obj)         (gts_object_is_from_class (obj,	\
+								   gfs_electro_hydro_class ()))
+
+GfsSimulationClass * gfs_electro_hydro_class  (void);
+
+/* GfsElectroHydro: Object */
+
+static gboolean strmatch (const gchar * s, const gchar * s1)
+{
+  gboolean m = !strcmp (s, s1);
+
+  if (!m) {
+    gchar * s2 = g_strconcat ("Gfs", s, NULL);
+    m = !strcmp (s2, s1);
+    g_free (s2);
+  }
+  return m;
+}
+
+static void gfs_electro_hydro_read (GtsObject ** o, GtsFile * fp)
+{
+  (* GTS_OBJECT_CLASS (gfs_electro_hydro_class ())->parent_class->read) (o, fp);
+  if (fp->type == GTS_ERROR)
+    return;
+
+  GfsElectroHydro * elec = GFS_ELECTRO_HYDRO (*o);
+  GfsSimulation * sim = GFS_SIMULATION (elec);
+
+  if (fp->type != '{') {
+    gts_file_error (fp, "expecting an opening brace");
+    return;
+  }
+  fp->scope_max++;
+  gts_file_next_token (fp);
+
+  while (fp->type != GTS_ERROR && fp->type != '}') {
+    if (fp->type == '\n') {
+      gts_file_next_token (fp);
+      continue;
+    }
+    
+    if (fp->type != GTS_STRING) {
+      gts_file_error (fp, "expecting a keyword");
+      return;
+    }
+
+    if (!strcmp (fp->token->str, "perm")) {
+      gts_file_next_token (fp);
+      if (fp->type != '=')
+	gts_file_error (fp, "expecting `='");
+      else {
+	gts_file_next_token (fp);
+	gfs_function_read (elec->perm, sim, fp);
+      }
+    }
+
+    /* ------------ GfsElectricProjectionParams ------------ */
+    else if (strmatch (fp->token->str, "GfsElectricProjectionParams")) {
+      gts_file_next_token (fp);
+      gfs_multilevel_params_read (&elec->electric_projection_params, fp);
+    }
+
+    else
+      gts_file_error (fp, "unknown keyword `%s'", fp->token->str);
+  }
+
+  if (fp->type == GTS_ERROR)
+    return;
+  if (fp->type != '}') {
+    gts_file_error (fp, "expecting a closing brace");
+    return;
+  }
+  fp->scope_max--;
+  gts_file_next_token (fp);
+}
+
+static void gfs_electro_hydro_write (GtsObject * o, FILE * fp)
+{
+  (* GTS_OBJECT_CLASS (gfs_electro_hydro_class ())->parent_class->write) (o, fp);
+
+  GfsElectroHydro * elect = GFS_ELECTRO_HYDRO (o);
+  fputs (" {\n"
+	 "  perm =", fp);
+  gfs_function_write (elect->perm, fp);
+  fputs ("\n"
+	 "  GfsElectricProjectionParams ", fp);
+  gfs_multilevel_params_write (&elect->electric_projection_params, fp);
+  fputs ("\n"
+	 "}", fp);
+}
+
+static void gfs_electro_hydro_destroy (GtsObject * object)
+{
+  gts_object_destroy (GTS_OBJECT (GFS_ELECTRO_HYDRO (object)->perm));
+  
+  (* GTS_OBJECT_CLASS (gfs_electro_hydro_class ())->parent_class->destroy) (object);
+}
+
+static void setting_E_from_phi (FttCellFace * f, GfsBc * b)
+{
+  if (b->v->component == f->d/2) {
+    GfsVariable * phi = GFS_ELECTRO_HYDRO (gfs_object_simulation(b))->phi;
+    GfsGradient g; 
+    gfs_face_gradient (f, &g, phi->i, -1);
+    double slope = (- g.b + g.a*GFS_VALUE (f->cell, phi))/ftt_cell_size (f->cell)
+      *(FTT_FACE_DIRECT(f) ? 1 : -1);
+    GFS_VALUE (f->cell, b->v) = - GFS_VALUE (f->neighbor, b->v) + 2.*slope;
+  }
+  else
+    GFS_VALUE (f->cell, b->v) = GFS_VALUE (f->neighbor, b->v);
+}
+
+static void face_setting_E_from_phi(FttCellFace *f, GfsBc * b)
+{
+  if (b->v->component == f->d/2) {
+    GfsVariable * phi = GFS_ELECTRO_HYDRO (gfs_object_simulation(b))->phi;
+    GfsGradient g; 
+    gfs_face_gradient (f, &g, phi->i, -1);
+    double slope = (- g.b + g.a*GFS_VALUE (f->cell, phi))/ftt_cell_size (f->cell)
+      *(FTT_FACE_DIRECT(f) ? 1 : -1);
+    GFS_STATE (f->cell)->f[f->d].v = 
+      GFS_STATE (f->neighbor)->f[FTT_OPPOSITE_DIRECTION (f->d)].v = slope;
+  }
+  else
+    GFS_STATE (f->cell)->f[f->d].v = GFS_VALUE (f->neighbor, b->v);
+}
+
+static void gfs_electro_hydro_init (GfsElectroHydro * object)
+{
+  GfsDomain * domain = GFS_DOMAIN (object);
+  static gchar name[][3] = {"Ex", "Ey", "Ez"};
+  static gchar desc[][34] = {"x component of the electric field",
+			     "y component of the electric field",
+			     "z component of the electric field"};
+  FttComponent c;  
+
+  object->phi = gfs_domain_add_variable (domain, "Phi", "Electric potential");
+  object->phi->centered = TRUE;
+  object->rhoe = gfs_variable_new (gfs_variable_tracer_class(), domain,
+				   "Rhoe", "Volumetric charge density");
+  object->rhoe->units = -3.;
+  domain->variables = g_slist_append (domain->variables, object->rhoe);
+
+  for (c = 0; c < FTT_DIMENSION; c++) {
+    object->E[c] = gfs_domain_add_variable (domain , name[c], desc[c]);
+    object->E[c]->units = -1.;
+  }
+  gfs_variable_set_vector (object->E, FTT_DIMENSION);
+
+  gfs_multilevel_params_init (&object->electric_projection_params);
+  object->perm = gfs_function_new (gfs_function_class (), 1.);
+  gfs_function_set_units (object->perm, -1.);
+
+  /* default BC for the electric field */
+  for (c = 0; c < FTT_DIMENSION; c++) {
+    GfsBc * bc = gfs_bc_new (gfs_bc_neumann_class(), object->E[c], FALSE);
+    bc->bc      = (FttFaceTraverseFunc) setting_E_from_phi;
+    bc->face_bc = (FttFaceTraverseFunc) face_setting_E_from_phi;
+    gfs_variable_set_default_bc (object->E[c], bc);
+  }
+}
+
+static void gfs_electro_hydro_run (GfsSimulation * sim);
+
+static void gfs_electro_hydro_class_init (GfsSimulationClass * klass) 
+{
+  GTS_OBJECT_CLASS (klass)->destroy = gfs_electro_hydro_destroy;
+  GTS_OBJECT_CLASS (klass)->read =    gfs_electro_hydro_read;
+  GTS_OBJECT_CLASS (klass)->write =   gfs_electro_hydro_write;
+  klass->run =                        gfs_electro_hydro_run;
+}
+
+GfsSimulationClass * gfs_electro_hydro_class (void)
+{
+  static GfsSimulationClass * klass = NULL;
+
+  if (klass == NULL) {
+    GtsObjectClassInfo gfs_electro_hydro_info = {
+      "GfsElectroHydro",
+      sizeof (GfsElectroHydro),
+      sizeof (GfsSimulationClass),
+      (GtsObjectClassInitFunc) gfs_electro_hydro_class_init,
+      (GtsObjectInitFunc) gfs_electro_hydro_init,
+      (GtsArgSetFunc) NULL,
+      (GtsArgGetFunc) NULL
+    };
+    klass = gts_object_class_new (GTS_OBJECT_CLASS (gfs_simulation_class ()),
+				  &gfs_electro_hydro_info);
+  }
+
+  return klass;
+}
+
+/* Setting div as - \int of rhoe on the cell volume */
+static void rescale_div (FttCell * cell, gpointer * data)
+{
+  GfsVariable * divu = data[0];
+  GfsVariable * div = data[1];
+  gdouble size = ftt_cell_size (cell);
+
+  GFS_VALUE (cell, div) = - GFS_VALUE (cell, divu)*size*size*
+    gfs_domain_cell_fraction (div->domain, cell);
+}
+
+static void correct_div (GfsDomain * domain, GfsVariable * divu, GfsVariable * div)
+{
+  gpointer data[2];
+
+  data[0] = divu;
+  data[1] = div;
+
+  gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
+			    (FttCellTraverseFunc) rescale_div, data);
+}
+
+/* Calculates -gradient of @v and write it in vector @g  */
+static void minus_gradient (FttCell * cell, gpointer * data)
+{
+  GfsVariable * v = data[0];
+  GfsVariable ** g = data[1];
+  gdouble size = ftt_cell_size (cell);
+  FttVector gv;
+  FttComponent c;
+
+  gfs_cm_gradient (cell, v, &gv);
+  for (c = 0; c < FTT_DIMENSION; c++) 
+    GFS_VALUE (cell, g[c]) = - (&gv.x)[c]/size;
+}
+
+static void has_dirichlet (FttCell * cell, GfsVariable * p)
+{
+  if (((cell)->flags & GFS_FLAG_DIRICHLET) != 0)
+    p->centered = FALSE;
+}
+
+static void poisson_electric (GfsElectroHydro * elec)
+{
+  GfsMultilevelParams * par = &elec->electric_projection_params;
+  GfsDomain * domain = GFS_DOMAIN (elec);
+  GfsVariable * diae, * dive, * res1e;
+  GfsVariable * phi = elec->phi; 
+  GfsVariable ** e = elec->E;
+
+  dive = gfs_temporary_variable (domain);
+  correct_div (domain, elec->rhoe, dive);
+  gfs_poisson_coefficients (domain, elec->perm, TRUE, phi->centered);
+  res1e = gfs_temporary_variable (domain);
+  diae = gfs_temporary_variable (domain);
+
+
+  gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, FTT_TRAVERSE_ALL, -1,
+			    (FttCellTraverseFunc) gfs_cell_reset, diae);
+  par->poisson_solve (domain, par, phi, dive, res1e, diae, 1.);
+  if (par->residual.infty > par->tolerance)
+    g_warning ("poisson_electric: max residual %g > %g", par->residual.infty, par->tolerance);
+
+  /* Set the electric field (-gradient of the potential) */
+  gpointer data[2];
+  data[0] = phi;
+  data[1] = e;
+  gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
+			    (FttCellTraverseFunc) minus_gradient, data);
+  FttComponent c;
+  for (c = 0; c < FTT_DIMENSION; c++)
+    gfs_domain_bc (domain, FTT_TRAVERSE_LEAFS, -1, e[c]);
+
+  gts_object_destroy (GTS_OBJECT (diae));
+  gts_object_destroy (GTS_OBJECT (dive));
+  gts_object_destroy (GTS_OBJECT (res1e));
+}
+
+static void gfs_electro_hydro_run (GfsSimulation * sim)
+{
+  GfsVariable * p, * pmac, * res = NULL, * g[FTT_DIMENSION], * gmac[FTT_DIMENSION];
+  GfsVariable ** gc = sim->advection_params.gc ? g : NULL;
+  GfsDomain * domain;
+  GSList * i;
+  GfsElectroHydro * elec;
+
+  domain = GFS_DOMAIN (sim);
+  elec = GFS_ELECTRO_HYDRO (sim) ;
+
+  p = gfs_variable_from_name (domain->variables, "P");
+  g_assert (p);
+  pmac = gfs_variable_from_name (domain->variables, "Pmac");
+  g_assert (pmac);
+
+  FttComponent c;
+  for (c = 0; c < FTT_DIMENSION; c++) {
+    gmac[c] = gfs_temporary_variable (domain);
+    if (sim->advection_params.gc) {
+      g[c] = gfs_temporary_variable (domain);
+    }
+    else
+      g[c] = gmac[c];
+  }
+
+  gfs_variable_set_vector (gmac, FTT_DIMENSION);
+  gfs_variable_set_vector (g, FTT_DIMENSION);
+
+  gfs_simulation_refine (sim);
+  gfs_domain_surface_bc (domain, elec->phi);
+  gfs_domain_traverse_mixed (domain, FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS,
+			     (FttCellTraverseFunc) has_dirichlet, elec->phi);
+  if (!elec->phi->centered) {
+    guint nf = gfs_check_solid_fractions (domain);
+    if (nf > 0)
+      g_warning ("the solid surface cuts %d boundary cells,\n"
+		 "this may cause errors for the potential solution\n", nf);
+  }
+  gfs_simulation_init (sim);
+
+  i = domain->variables;
+  while (i) {
+    if (GFS_IS_VARIABLE_RESIDUAL (i->data))
+      res = i->data;
+    i = i->next;
+  }
+
+  gfs_simulation_set_timestep (sim);
+  if (sim->time.i == 0) {
+    gfs_approximate_projection (domain,
+				&sim->approx_projection_params,
+				&sim->advection_params,
+				p, sim->physical_params.alpha, res, g, NULL);
+    gfs_simulation_set_timestep (sim);
+    gfs_advance_tracers (domain, sim->advection_params.dt/2.);
+    poisson_electric (elec);
+  }
+  else if (sim->advection_params.gc)
+    gfs_update_gradients (domain, p, sim->physical_params.alpha, g);
+
+  while (sim->time.t < sim->time.end &&
+	 sim->time.i < sim->time.iend) {
+    gdouble tstart = gfs_clock_elapsed (domain->timer);
+
+    gts_container_foreach (GTS_CONTAINER (sim->events), (GtsFunc) gfs_event_do, sim);
+
+    gfs_predicted_face_velocities (domain, FTT_DIMENSION, &sim->advection_params);
+    
+    gfs_variables_swap (p, pmac);
+    gfs_mac_projection (domain,
+    			&sim->projection_params, 
+    			&sim->advection_params,
+			p, sim->physical_params.alpha, gmac, NULL);
+    gfs_variables_swap (p, pmac);
+
+    gts_container_foreach (GTS_CONTAINER (sim->events), (GtsFunc) gfs_event_half_do, sim);
+
+    gfs_centered_velocity_advection_diffusion (domain,
+					       FTT_DIMENSION,
+					       &sim->advection_params,
+					       gmac,
+					       sim->time.i > 0 || !gc ? gc : gmac,
+					       sim->physical_params.alpha);
+
+    if (gc) {
+      gfs_source_coriolis_implicit (domain, sim->advection_params.dt);
+      gfs_correct_centered_velocities (domain, FTT_DIMENSION, sim->time.i > 0 ? gc : gmac, 
+				       -sim->advection_params.dt);
+    }
+    else if (gfs_has_source_coriolis (domain)) {
+      gfs_correct_centered_velocities (domain, FTT_DIMENSION, gmac, sim->advection_params.dt);
+      gfs_source_coriolis_implicit (domain, sim->advection_params.dt);
+      gfs_correct_centered_velocities (domain, FTT_DIMENSION, gmac, -sim->advection_params.dt);
+    }
+
+    gfs_domain_cell_traverse (domain,
+			      FTT_POST_ORDER, FTT_TRAVERSE_NON_LEAFS, -1,
+			      (FttCellTraverseFunc) gfs_cell_coarse_init, domain);
+    gfs_simulation_adapt (sim);
+
+    gfs_approximate_projection (domain,
+   				&sim->approx_projection_params, 
+    				&sim->advection_params, 
+				p, sim->physical_params.alpha, res, g, NULL);
+
+    sim->time.t = sim->tnext;
+    sim->time.i++;
+
+    gfs_simulation_set_timestep (sim);
+    gfs_advance_tracers (domain, sim->advection_params.dt);
+    poisson_electric (elec);
+
+    gts_range_add_value (&domain->timestep, gfs_clock_elapsed (domain->timer) - tstart);
+    gts_range_update (&domain->timestep);
+    gts_range_add_value (&domain->size, gfs_domain_size (domain, FTT_TRAVERSE_LEAFS, -1));
+    gts_range_update (&domain->size);
+  }
+  gts_container_foreach (GTS_CONTAINER (sim->events), (GtsFunc) gfs_event_do, sim);  
+  gts_container_foreach (GTS_CONTAINER (sim->events), (GtsFunc) gts_object_destroy, NULL);
+
+  for (c = 0; c < FTT_DIMENSION; c++) {
+    gts_object_destroy (GTS_OBJECT (gmac[c]));
+    if (sim->advection_params.gc)
+      gts_object_destroy (GTS_OBJECT (g[c]));
+  }
+}
+
+/* GfsSourceElectric: Header */
+
+typedef struct _GfsSourceElectric         GfsSourceElectric;
+
+struct _GfsSourceElectric {
+  /*< private >*/
+  GfsSourceVelocity parent;
+
+  /*< public >*/
+  GfsVariable * fe[FTT_DIMENSION];
+};
+
+#define GFS_SOURCE_ELECTRIC(obj)            GTS_OBJECT_CAST (obj,\
+					         GfsSourceElectric,\
+					         gfs_source_electric_class ())
+#define GFS_IS_SOURCE_ELECTRIC(obj)         (gts_object_is_from_class (obj,\
+						 gfs_source_electric_class ()))
+
+GfsSourceGenericClass * gfs_source_electric_class  (void);
+
+/* GfsSourceElectric: Object */
+
+static void gfs_source_electric_destroy (GtsObject * o)
+{
+  FttComponent c;
+  for (c = 0; c < FTT_DIMENSION; c++)
+    if (GFS_SOURCE_ELECTRIC (o)->fe[c])
+      gts_object_destroy (GTS_OBJECT (GFS_SOURCE_ELECTRIC (o)->fe[c]));
+  
+  (* GTS_OBJECT_CLASS (gfs_source_electric_class ())->parent_class->destroy) (o) ;
+}
+
+static void gfs_source_electric_read (GtsObject ** o, GtsFile * fp)
+{
+  (* GTS_OBJECT_CLASS (gfs_source_electric_class ())->parent_class->read) (o, fp);
+  if (fp->type == GTS_ERROR)
+    return;
+
+  FttComponent c;
+  for (c = 0 ; c < FTT_DIMENSION ; c++) {
+    GfsVariable * v = GFS_SOURCE_VELOCITY (*o)->v[c];
+    if (v->sources) {
+      GSList * i = GTS_SLIST_CONTAINER (v->sources)->items;
+
+      while (i) {
+	if (i->data != *o && GFS_IS_SOURCE_ELECTRIC (i->data)) {
+	  gts_file_error (fp, "variable '%s' cannot have multiple electric source terms", v->name);
+	  return;
+	}
+	i = i->next;
+      }
+    }
+  }
+
+  GfsDomain * domain = GFS_DOMAIN (gfs_object_simulation (*o));
+  for (c = 0; c < FTT_DIMENSION; c++)
+    GFS_SOURCE_ELECTRIC (*o)->fe[c] = gfs_temporary_variable (domain);
+}
+
+static void save_fe (FttCell * cell, GfsSourceElectric * s)
+{
+  GfsElectroHydro * elec = GFS_ELECTRO_HYDRO (gfs_object_simulation (s));
+
+  GfsFunction * perm = elec->perm;
+  GfsVariable ** e = elec->E;
+  GfsVariable * phi = elec->phi;
+
+  FttComponent c;
+  gdouble h = ftt_cell_size (cell);
+
+  FttCellFace f;
+  FttCellNeighbors n;
+  gdouble fe[FTT_DIMENSION];
+
+  for (c = 0; c < FTT_DIMENSION; c++)
+    fe[c] = 0.;
+
+  f.cell = cell;
+  ftt_cell_neighbors (cell, &n);
+
+  gdouble radc = gfs_domain_cell_fraction (GFS_DOMAIN (elec), cell);
+  for (f.d = 0; f.d < FTT_NEIGHBORS; f.d++) {
+    f.neighbor = n.c[f.d]; 
+    gdouble permf = gfs_function_face_value (perm, &f);
+    gdouble emod = 0.;
+    GfsGradient g;
+    /* fixme: should we use gfs_face_cm_weighted_gradient? */
+    gfs_face_cm_gradient (&f, &g, phi->i, -1);
+    gdouble en = (- g.b + g.a*GFS_VALUE (cell, phi))/h;
+    gdouble sign = (FTT_FACE_DIRECT (&f) ? 1 : -1);
+
+    gdouble radf = gfs_domain_face_fraction (GFS_DOMAIN (elec), &f);
+    for (c = 0; c < FTT_DIMENSION; c++) {
+      gdouble es = (c == f.d/2 ? sign*en : gfs_face_interpolated_value (&f, e[c]->i));
+      emod += es*es; 
+      fe[c] += permf*es*en*radf;
+    }
+    fe[f.d/2] -= sign*emod*permf*radc/2.;
+  }
+
+  if (GFS_IS_MIXED (cell)) {
+    if (((cell)->flags & GFS_FLAG_DIRICHLET) == 0)
+      /* Neumann conditions for Phi */
+      g_assert_not_implemented ();
+
+    gdouble rs = gfs_domain_solid_metric (GFS_DOMAIN (elec), cell);
+    gdouble permc = gfs_function_value (perm, cell);
+    gdouble emod = 0., en = 0., a;
+    GfsSolidVector * s = GFS_STATE (cell)->solid;
+    FttVector g, n;
+    gfs_cell_dirichlet_gradient (cell, phi->i, -1, s->fv, &g);
+    gfs_solid_normal (cell, &n);
+    a = ftt_vector_norm (&n);
+    for (c = 0; c < FTT_DIMENSION; c++) {
+      (&n.x)[c] /= a;
+      (&g.x)[c] /= h;
+      emod += (&g.x)[c]*(&g.x)[c];
+      en   += (&g.x)[c]*(&n.x)[c];
+    }
+    for (c = 0; c < FTT_DIMENSION; c++) 
+      fe[c] += a*((&g.x)[c]*en*rs - emod/2.*(&n.x)[c]*radc)*permc;
+  }
+
+  /* fixme: we need to rescale, not entirely clear why... */
+  gdouble scale = pow (GFS_SIMULATION (elec)->physical_params.L, -5.);
+  for (c = 0; c < FTT_DIMENSION; c++)
+    GFS_VALUE (cell, s->fe[c]) = scale*fe[c]/h/radc;
+}
+
+static gboolean gfs_source_electric_event (GfsEvent * event, GfsSimulation * sim)
+{
+  if ((* GFS_EVENT_CLASS (GTS_OBJECT_CLASS (gfs_source_electric_class ())->parent_class)->event)
+      (event, sim)) {
+    gfs_domain_cell_traverse (GFS_DOMAIN (sim), FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
+			      (FttCellTraverseFunc) save_fe, event);
+    return TRUE;
+  }
+  return FALSE;
+}
+
+static gdouble gfs_source_electric_centered_value (GfsSourceGeneric * s,
+						   FttCell * cell,
+						   GfsVariable * v)
+{
+  return GFS_VALUE (cell, GFS_SOURCE_ELECTRIC (s)->fe[v->component]);
+}
+
+static void gfs_source_electric_class_init (GfsSourceGenericClass * klass)
+{
+  GFS_EVENT_CLASS (klass)->event = gfs_source_electric_event;
+  GTS_OBJECT_CLASS (klass)->read = gfs_source_electric_read;
+  GTS_OBJECT_CLASS (klass)->destroy = gfs_source_electric_destroy;
+}
+
+static void gfs_source_electric_init (GfsSourceGeneric * s)
+{
+  s->mac_value = s->centered_value = gfs_source_electric_centered_value;
+}
+
+GfsSourceGenericClass * gfs_source_electric_class (void)
+{
+  static GfsSourceGenericClass * klass = NULL;
+
+  if (klass == NULL) {
+    GtsObjectClassInfo gfs_source_electric_info = {
+      "GfsSourceElectric",
+      sizeof (GfsSourceElectric),
+      sizeof (GfsSourceGenericClass),
+      (GtsObjectClassInitFunc) gfs_source_electric_class_init,
+      (GtsObjectInitFunc) gfs_source_electric_init,
+      (GtsArgSetFunc) NULL,
+      (GtsArgGetFunc) NULL
+    };
+    klass = gts_object_class_new (GTS_OBJECT_CLASS (gfs_source_velocity_class ()),
+				  &gfs_source_electric_info);
+  }
+
+  return klass;
+}
+
+/* GfsSourceCharge: Header */
+
+typedef struct _GfsSourceCharge         GfsSourceCharge;
+
+struct _GfsSourceCharge {
+  /*< private >*/
+  GfsSourceScalar parent;
+  GfsVariable * c;
+
+  /*< public >*/
+  GfsFunction * conductivity;
+};
+
+#define GFS_SOURCE_CHARGE(obj)            GTS_OBJECT_CAST (obj,\
+					         GfsSourceCharge,\
+					         gfs_source_charge_class ())
+#define GFS_IS_SOURCE_CHARGE(obj)         (gts_object_is_from_class (obj,\
+						 gfs_source_charge_class ()))
+
+GfsSourceGenericClass * gfs_source_charge_class  (void);
+
+/* GfsSourceCharge: Object */
+
+static void gfs_source_charge_destroy (GtsObject * o)
+{
+  GfsSourceCharge * s = GFS_SOURCE_CHARGE (o);
+  if (s->conductivity)
+    gts_object_destroy (GTS_OBJECT (s->conductivity));
+  if (s->c)
+    gts_object_destroy (GTS_OBJECT (s->c));
+
+  (* GTS_OBJECT_CLASS (gfs_source_charge_class ())->parent_class->destroy) (o);
+}
+
+static void gfs_source_charge_read (GtsObject ** o, GtsFile * fp)
+{
+  (* GTS_OBJECT_CLASS (gfs_source_charge_class ())->parent_class->read) (o, fp);
+  if (fp->type == GTS_ERROR)
+    return;
+
+  g_warning ("GfsSourceCharge is obsolete. Use GfsSourceDiffusionExplicit instead.\n");
+
+  GfsSourceCharge * s = GFS_SOURCE_CHARGE (*o);
+  s->conductivity = gfs_function_new (gfs_function_class(), 0.);
+  gfs_function_set_units (s->conductivity, -1.);
+  gfs_function_read (s->conductivity, gfs_object_simulation (s), fp);
+  s->c = gfs_temporary_variable (GFS_DOMAIN (gfs_object_simulation (s)));
+}
+
+static void gfs_source_charge_write (GtsObject * o, FILE * fp)
+{
+  (* GTS_OBJECT_CLASS (gfs_source_charge_class ())->parent_class->write) (o, fp);
+  gfs_function_write (GFS_SOURCE_CHARGE (o)->conductivity, fp);
+}
+
+static void source_charge (FttCell * cell, GfsSourceCharge * s)
+{
+  GfsDomain * domain = GFS_DOMAIN (gfs_object_simulation (s));
+  GfsVariable * phi = GFS_ELECTRO_HYDRO (domain)->phi;
+  gdouble value = 0., h = ftt_cell_size (cell);
+  FttCellFace f;
+  FttCellNeighbors n;
+
+  f.cell = cell;
+  ftt_cell_neighbors (cell, &n); 
+
+  for (f.d = 0; f.d < FTT_NEIGHBORS; f.d++) {
+    f.neighbor = n.c[f.d];
+    GfsGradient g;
+    gfs_face_weighted_gradient (&f, &g, phi->i, -1);
+    value -= g.a*GFS_VALUE (cell, phi) - g.b;
+  }
+  GFS_VALUE (cell, s->c) = value/(h*h*gfs_domain_cell_fraction (domain, cell));
+}
+
+static gboolean gfs_source_charge_event (GfsEvent * event, GfsSimulation * sim)
+{
+  if ((* GFS_EVENT_CLASS (GTS_OBJECT_CLASS (gfs_source_charge_class ())->parent_class)->event)
+      (event, sim)) {
+    gfs_poisson_coefficients (GFS_DOMAIN (sim), GFS_SOURCE_CHARGE (event)->conductivity, 
+			      FALSE, FALSE);
+    gfs_domain_cell_traverse (GFS_DOMAIN (sim), FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
+			      (FttCellTraverseFunc) source_charge, event);
+    return TRUE;
+  }
+  return FALSE;
+}
+
+static void gfs_source_charge_class_init (GfsSourceGenericClass * klass)
+{
+  GTS_OBJECT_CLASS (klass)->read = gfs_source_charge_read;
+  GTS_OBJECT_CLASS (klass)->write = gfs_source_charge_write;
+  GTS_OBJECT_CLASS (klass)->destroy = gfs_source_charge_destroy;
+  GFS_EVENT_CLASS (klass)->event = gfs_source_charge_event;
+}
+
+static gdouble source_charge_value (GfsSourceGeneric * s,
+			            FttCell * cell,
+				    GfsVariable * v)
+{
+  return GFS_VALUE (cell, GFS_SOURCE_CHARGE (s)->c);
+}
+
+static void gfs_source_charge_init (GfsSourceGeneric * s)
+{
+  s->mac_value = s->centered_value = source_charge_value;
+}
+
+GfsSourceGenericClass * gfs_source_charge_class (void)
+{
+  static GfsSourceGenericClass * klass = NULL;
+
+  if (klass == NULL) {
+    GtsObjectClassInfo gfs_source_charge_info = {
+      "GfsSourceCharge",
+      sizeof (GfsSourceCharge),
+      sizeof (GfsSourceGenericClass),
+      (GtsObjectClassInitFunc) gfs_source_charge_class_init,
+      (GtsObjectInitFunc) gfs_source_charge_init,
+      (GtsArgSetFunc) NULL,
+      (GtsArgGetFunc) NULL
+    };
+    klass = gts_object_class_new (GTS_OBJECT_CLASS (gfs_source_scalar_class ()),
+				  &gfs_source_charge_info);
+  }
+
+  return klass;
+}
+
+/* GfsElectroHydroAxi: Header */
+
+GfsSimulationClass * gfs_electro_hydro_axi_class  (void);
+
+/* GfsElectroHydroAxi: Object */
+
+static void gfs_electro_hydro_axi_read (GtsObject ** o, GtsFile * fp)
+{
+  gfs_electro_hydro_read (o, fp);
+  if (fp->type == GTS_ERROR)
+    return;
+  GFS_DOMAIN (*o)->refpos.y = 0.5;
+}
+
+static void gfs_electro_hydro_axi_class_init (GfsSimulationClass * klass) 
+{
+  GTS_OBJECT_CLASS (klass)->destroy = gfs_electro_hydro_destroy;
+  GTS_OBJECT_CLASS (klass)->read =    gfs_electro_hydro_axi_read;
+  GTS_OBJECT_CLASS (klass)->write =   gfs_electro_hydro_write;
+  klass->run =                        gfs_electro_hydro_run;
+}
+
+GfsSimulationClass * gfs_electro_hydro_axi_class (void)
+{
+  static GfsSimulationClass * klass = NULL;
+
+  if (klass == NULL) {
+    GtsObjectClassInfo gfs_electro_hydro_axi_info = {
+      "GfsElectroHydroAxi",
+      sizeof (GfsElectroHydro),
+      sizeof (GfsSimulationClass),
+      (GtsObjectClassInitFunc) gfs_electro_hydro_axi_class_init,
+      (GtsObjectInitFunc) gfs_electro_hydro_init,
+      (GtsArgSetFunc) NULL,
+      (GtsArgGetFunc) NULL
+    };
+    klass = gts_object_class_new (GTS_OBJECT_CLASS (gfs_axi_class ()),
+				  &gfs_electro_hydro_axi_info);
+  }
+
+  return klass;
+}
+
+/* GfsOutputPotentialStats: Object */
+
+static gboolean potential_stats_event (GfsEvent * event, GfsSimulation * sim)
+{
+  if ((* GFS_EVENT_CLASS (gfs_output_class())->event) (event, sim)) {
+    GfsElectroHydro * elec = GFS_ELECTRO_HYDRO (sim);
+    FILE * fp = GFS_OUTPUT (event)->file->fp;
+
+    if (elec->electric_projection_params.niter > 0) {
+      fprintf (fp, "Electric potential    before     after       rate\n");
+      gfs_multilevel_params_stats_write (&elec->electric_projection_params, fp);
+    }
+    return TRUE;
+  }
+  return FALSE;
+}
+
+static void gfs_output_potential_stats_class_init (GfsEventClass * klass)
+{
+  klass->event = potential_stats_event;
+}
+
+GfsOutputClass * gfs_output_potential_stats_class (void);
+
+GfsOutputClass * gfs_output_potential_stats_class (void)
+{
+  static GfsOutputClass * klass = NULL;
+
+  if (klass == NULL) {
+    GtsObjectClassInfo gfs_output_potential_stats_info = {
+      "GfsOutputPotentialStats",
+      sizeof (GfsOutput),
+      sizeof (GfsOutputClass),
+      (GtsObjectClassInitFunc) gfs_output_potential_stats_class_init,
+      (GtsObjectInitFunc) NULL,
+      (GtsArgSetFunc) NULL,
+      (GtsArgGetFunc) NULL
+    };
+    klass = gts_object_class_new (GTS_OBJECT_CLASS (gfs_output_class ()),
+				  &gfs_output_potential_stats_info);
+  }
+
+  return klass;
+}
+
+/* Initialize module */
+
+/* only define gfs_module_name for "official" modules (i.e. those installed in
+   GFS_MODULES_DIR) */
+const gchar gfs_module_name[] = "electrohydro";
+const gchar * g_module_check_init (void);
+ 
+const gchar * g_module_check_init (void)
+{
+  gfs_electro_hydro_class ();
+  gfs_electro_hydro_axi_class ();
+  gfs_source_electric_class ();
+  gfs_source_charge_class ();
+  gfs_output_potential_stats_class ();
+  return NULL;
+} 
diff --git a/modules/hypre.mod b/modules/hypre.mod
new file mode 100644
index 0000000..7610ce9
--- /dev/null
+++ b/modules/hypre.mod
@@ -0,0 +1,1022 @@
+/* Gerris - The GNU Flow Solver                       (-*-C-*-)
+ * Copyright (C) 2001-2008 National Institute of Water and Atmospheric Research
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.  
+ */
+
+#include <math.h>
+#include <stdlib.h>
+#include <_hypre_utilities.h>
+#include <HYPRE_krylov.h>
+#include <HYPRE.h>
+#include <HYPRE_parcsr_ls.h>
+
+#include "variable.h"
+#include "poisson.h"
+#include "mpi_boundary.h"
+
+/*#define DEBUG*/
+
+typedef enum {
+  HYPRE_BOOMER_AMG,
+  HYPRE_PCG,
+  HYPRE_HYBRID,
+  HYPRE_LGMRES,
+  HYPRE_BICGSTAB,
+  HYPRE_GMRES,
+  HYPRE_AMS,
+  HYPRE_FLEXGMRES
+} HypreSolverType;
+
+typedef enum {
+  HYPRE_AMG_PRECOND,
+  HYPRE_PARASAILS_PRECOND,
+  HYPRE_EUCLID_PRECOND,
+  HYPRE_PILUT_PRECOND,
+  HYPRE_AMS_PRECOND,
+  NO_PRECOND
+} HyprePrecondType;
+
+typedef struct _HypreProblem HypreProblem;
+typedef struct _HypreSolverParams HypreSolverParams;
+
+struct _HypreSolverParams {
+  HypreSolverType solver_type;
+  HyprePrecondType precond_type;
+  gint relax_type;
+  gint coarsening_type;
+  gint cycle_type;
+  gint nlevel;
+  gboolean verbose;
+};
+
+/* Parameters for the projection schemes are stored in proj_hp */
+HypreSolverParams proj_hp;
+
+struct _HypreProblem {
+  HYPRE_IJMatrix A;
+  HYPRE_ParCSRMatrix parcsr_A;
+  HYPRE_IJVector b;
+  HYPRE_ParVector par_b;
+  HYPRE_IJVector x;
+  HYPRE_ParVector par_x;
+};
+
+static HYPRE_PtrToParSolverFcn HYPRE_precond_solver (void)
+{
+
+  if (proj_hp.precond_type == HYPRE_AMG_PRECOND)
+    return HYPRE_BoomerAMGSolve;
+  else if (proj_hp.precond_type == HYPRE_PARASAILS_PRECOND)
+    return HYPRE_ParaSailsSolve;
+  else if (proj_hp.precond_type == HYPRE_EUCLID_PRECOND)
+    return HYPRE_EuclidSolve;
+  else if (proj_hp.precond_type == HYPRE_PILUT_PRECOND)
+    return HYPRE_ParCSRPilutSolve;
+  else if (proj_hp.precond_type == HYPRE_AMS_PRECOND)
+    return HYPRE_AMSSolve;
+  else
+    g_assert_not_reached ();
+  return 0;
+}
+
+static HYPRE_PtrToParSolverFcn HYPRE_precond_setup (void)
+{
+  if (proj_hp.precond_type == HYPRE_AMG_PRECOND)
+    return HYPRE_BoomerAMGSetup;
+  else if (proj_hp.precond_type == HYPRE_PARASAILS_PRECOND)
+    return HYPRE_ParaSailsSetup;
+  else if (proj_hp.precond_type == HYPRE_EUCLID_PRECOND)
+    return HYPRE_EuclidSetup;
+  else if (proj_hp.precond_type == HYPRE_PILUT_PRECOND)
+    return HYPRE_ParCSRPilutSetup;
+  else if (proj_hp.precond_type == HYPRE_AMS_PRECOND)
+    return HYPRE_AMSSetup;
+  else
+    g_assert_not_reached ();
+  return 0;
+}
+
+static void ParaSails_precond (HYPRE_Solver * precond)
+{
+  HYPRE_Solver pc;
+  int      sai_max_levels = 1;
+  double   sai_threshold = 0.1;
+  double   sai_filter = 0.05;
+  int      sai_sym = 1;
+  
+/* Set some parameters (See Reference Manual for more parameters) */
+  HYPRE_ParaSailsCreate(MPI_COMM_WORLD, &pc);
+  HYPRE_ParaSailsSetParams(pc, sai_threshold, sai_max_levels);
+  HYPRE_ParaSailsSetFilter(pc, sai_filter);
+  HYPRE_ParaSailsSetSym(pc, sai_sym);
+  HYPRE_ParaSailsSetLogging(pc, 3);
+  *precond = pc;
+}
+
+static void AMG_precond (HYPRE_Solver * precond)
+{
+  HYPRE_Solver pc;
+  
+  HYPRE_BoomerAMGCreate(&pc);
+  HYPRE_BoomerAMGSetPrintLevel(pc, 1); /* print amg solution info */
+  HYPRE_BoomerAMGSetCoarsenType(pc, 6);
+  HYPRE_BoomerAMGSetRelaxType(pc, 6); /* Sym G.S./Jacobi hybrid */ 
+  HYPRE_BoomerAMGSetNumSweeps(pc, 1);
+  HYPRE_BoomerAMGSetTol(pc, 0.0); /* conv. tolerance zero */
+  HYPRE_BoomerAMGSetMaxIter(pc, 1); /* do only one iteration! */
+  *precond = pc;
+}
+
+static void Euclid_precond (HYPRE_Solver * precond)
+{
+  HYPRE_Solver pc;
+    
+  HYPRE_EuclidCreate (MPI_COMM_WORLD, &pc);
+  *precond = pc;
+}
+
+static void Pilut_precond (HYPRE_Solver * precond)
+{
+  HYPRE_Solver pc;
+
+  HYPRE_ParCSRPilutCreate (MPI_COMM_WORLD, &pc);
+  HYPRE_ParCSRPilutSetMaxIter (pc, 3);
+  *precond = pc;
+}
+
+static void AMS_precond (HYPRE_Solver * precond)
+{
+  HYPRE_Solver pc;
+
+  HYPRE_AMSCreate (&pc);
+  *precond = pc;
+}
+
+static void set_precond (HYPRE_Solver * precond)
+{
+  if (proj_hp.precond_type == HYPRE_PARASAILS_PRECOND)
+    ParaSails_precond (precond);
+  else if (proj_hp.precond_type == HYPRE_AMG_PRECOND)
+    AMG_precond (precond);
+  else if (proj_hp.precond_type == HYPRE_EUCLID_PRECOND)
+    Euclid_precond (precond);
+  else if (proj_hp.precond_type == HYPRE_PILUT_PRECOND)
+    Pilut_precond (precond);
+  else if (proj_hp.precond_type == HYPRE_AMS_PRECOND)
+    AMS_precond (precond);
+}
+
+static void destroy_precond (HYPRE_Solver precond)
+{
+  if (proj_hp.precond_type == HYPRE_PARASAILS_PRECOND)
+    HYPRE_ParaSailsDestroy(precond);
+  else if (proj_hp.precond_type == HYPRE_AMG_PRECOND)
+    HYPRE_BoomerAMGDestroy(precond);
+  else if (proj_hp.precond_type == HYPRE_EUCLID_PRECOND)
+    HYPRE_EuclidDestroy(precond);
+  else if (proj_hp.precond_type == HYPRE_PILUT_PRECOND)
+    HYPRE_ParCSRPilutDestroy(precond);
+  else if (proj_hp.precond_type == HYPRE_AMS_PRECOND)
+    HYPRE_AMSDestroy(precond);
+}
+
+/***********************************************/
+/*     Boomer Algebraic Multigrid Solver       */
+/***********************************************/
+static void call_AMG_Boomer_solver (GfsDomain * domain, GfsMultilevelParams * par,
+				    HypreProblem * hp)
+{
+  HYPRE_Solver solver;
+  int num_iterations;
+  double final_res_norm;
+
+  gfs_domain_timer_start (domain, "Hypre: AMG_Boomer_solver");
+
+  if (proj_hp.nlevel == 0)
+    proj_hp.nlevel = gfs_domain_depth (domain);
+  
+  /* Create solver */
+  HYPRE_BoomerAMGCreate(&solver);
+
+  if (proj_hp.verbose)
+    HYPRE_BoomerAMGSetPrintLevel(solver, 3);  /* print solve info + parameters */
+  HYPRE_BoomerAMGSetCoarsenType(solver, proj_hp.coarsening_type);
+  HYPRE_BoomerAMGSetRelaxType(solver, proj_hp.relax_type);
+  HYPRE_BoomerAMGSetCycleType(solver, proj_hp.cycle_type);
+  HYPRE_BoomerAMGSetNumSweeps(solver, par->nrelax);     /* Sweeps on each level */
+  HYPRE_BoomerAMGSetMaxLevels(solver, proj_hp.nlevel);  /* maximum number of levels */
+  HYPRE_BoomerAMGSetTol(solver, par->tolerance);        /* conv. tolerance */
+  HYPRE_BoomerAMGSetMaxIter(solver, par->nitermax); /* maximum number of iterations */
+  HYPRE_BoomerAMGSetMinIter(solver, par->nitermin); /* minimum number of iterations */
+
+  /* Now setup and solve! */
+  HYPRE_BoomerAMGSetup(solver, hp->parcsr_A, hp->par_b, hp->par_x);
+  HYPRE_BoomerAMGSolve(solver, hp->parcsr_A, hp->par_b, hp->par_x);
+
+  HYPRE_BoomerAMGGetNumIterations(solver, &num_iterations);
+  par->niter = num_iterations;
+
+  /* Prints informations on the residual */
+  if (proj_hp.verbose && domain->pid <= 0) {      
+    HYPRE_BoomerAMGGetFinalRelativeResidualNorm(solver, &final_res_norm);
+    printf("\n");
+    printf("Iterations = %d\n", num_iterations);
+    printf("Final Relative Residual Norm = %e\n", final_res_norm);
+    printf("\n");
+  }
+  
+  /* Destroy solver */
+  HYPRE_BoomerAMGDestroy(solver);
+  gfs_domain_timer_stop (domain, "Hypre: AMG_Boomer_solver");
+}
+
+/******************************************/
+/*       PreConjugateGradient Solver      */
+/******************************************/
+static void call_PCG_solver (GfsDomain * domain, GfsMultilevelParams * par,
+			     HypreProblem * hp)
+{
+  HYPRE_Solver solver, precond;
+  int num_iterations;
+  gfs_domain_timer_start (domain, "Hypre: PCG_Solver");
+
+  /* Create solver */
+  HYPRE_ParCSRPCGCreate(MPI_COMM_WORLD, &solver);
+  
+  /* Set some parameters (See Reference Manual for more parameters) */
+  if (proj_hp.verbose)
+    HYPRE_ParCSRPCGSetPrintLevel(solver, 3);  /* print solve info + parameters */
+  HYPRE_ParCSRPCGSetMaxIter(solver, par->nitermax); /* max iterations */
+  HYPRE_ParCSRPCGSetTol(solver, par->tolerance); /* conv. tolerance */
+  HYPRE_ParCSRPCGSetTwoNorm(solver, 1); /* use the two norm as the stopping criteria */
+  HYPRE_ParCSRPCGSetLogging(solver, 1); /* needed to get run info later */
+  
+
+  if (proj_hp.precond_type != NO_PRECOND) {
+    set_precond (&precond);
+
+    HYPRE_ParCSRPCGSetPrecond(solver,
+			      (HYPRE_PtrToParSolverFcn) HYPRE_precond_solver (),
+			      (HYPRE_PtrToParSolverFcn) HYPRE_precond_setup (),
+			      precond);
+  }
+
+  HYPRE_ParCSRPCGSetup(solver, hp->parcsr_A, hp->par_b, hp->par_x);
+  HYPRE_ParCSRPCGSolve(solver, hp->parcsr_A, hp->par_b, hp->par_x);
+
+  HYPRE_ParCSRPCGGetNumIterations(solver, &num_iterations);
+  par->niter = num_iterations;
+  /*  Run info - needed logging turned on */
+  if (proj_hp.verbose && domain->pid <= 0) {
+    double final_res_norm;
+    HYPRE_ParCSRPCGGetFinalRelativeResidualNorm(solver, &final_res_norm);
+    
+    printf("\n");
+  	  printf("Iterations = %d\n", num_iterations);
+  	  printf("Final Relative Residual Norm = %e\n", final_res_norm);
+  	  printf("\n");
+  }
+  
+  /* Destroy solver */
+  HYPRE_ParCSRPCGDestroy(solver);
+  if (proj_hp.precond_type != NO_PRECOND)
+    destroy_precond (precond);
+  gfs_domain_timer_stop (domain, "Hypre: PCG_Solver");
+}
+
+/**********************************************/
+/*          Hybrid DSCG/PCG Solver            */
+/**********************************************/
+static void call_Hybrid_solver (GfsDomain * domain, GfsMultilevelParams * par,
+			     HypreProblem * hp)
+{
+  HYPRE_Solver solver, precond;
+  int num_iterations;
+  gfs_domain_timer_start (domain, "Hypre: Hybrid_Solver");
+
+  /* Create solver */
+  HYPRE_ParCSRHybridCreate(&solver);
+  
+  /* Set some parameters (See Reference Manual for more parameters) */
+  if (proj_hp.verbose)
+    HYPRE_ParCSRHybridSetPrintLevel(solver, 3);  /* print solve info + parameters */
+  HYPRE_ParCSRHybridSetDSCGMaxIter(solver, par->nitermax); /* max iterations */
+  HYPRE_ParCSRHybridSetPCGMaxIter(solver, par->nitermax);
+  HYPRE_ParCSRHybridSetTol(solver, par->tolerance); /* conv. tolerance */
+  HYPRE_ParCSRHybridSetTwoNorm(solver, 1); /* use the two norm as the stopping criteria */
+  HYPRE_ParCSRHybridSetLogging(solver, 1); /* needed to get run info later */
+
+  if (proj_hp.precond_type != NO_PRECOND) {
+    set_precond (&precond);
+
+    HYPRE_ParCSRHybridSetPrecond(solver,
+				 (HYPRE_PtrToParSolverFcn) HYPRE_precond_solver (),
+				 (HYPRE_PtrToParSolverFcn) HYPRE_precond_setup (),
+				 precond);
+  }
+
+  HYPRE_ParCSRHybridSetup(solver, hp->parcsr_A, hp->par_b, hp->par_x);
+  HYPRE_ParCSRHybridSolve(solver, hp->parcsr_A, hp->par_b, hp->par_x);
+
+  HYPRE_ParCSRHybridGetNumIterations(solver, &num_iterations);
+  par->niter = num_iterations;
+  /*  Run info - needed logging turned on */
+  if (proj_hp.verbose && domain->pid <= 0) {
+    double final_res_norm;
+    HYPRE_ParCSRHybridGetFinalRelativeResidualNorm(solver, &final_res_norm);
+    
+    printf("\n");
+  	  printf("Iterations = %d\n", num_iterations);
+  	  printf("Final Relative Residual Norm = %e\n", final_res_norm);
+  	  printf("\n");
+  }
+  
+  /* Destroy solver */
+  HYPRE_ParCSRHybridDestroy(solver);
+  if (proj_hp.precond_type != NO_PRECOND)
+    destroy_precond (precond);
+  gfs_domain_timer_stop (domain, "Hypre: Hybrid_Solver");
+}
+
+/******************************************/
+/*              BICGSTAB Solver           */
+/******************************************/
+static void call_BICGSTAB_solver (GfsDomain * domain, GfsMultilevelParams * par,
+			     HypreProblem * hp)
+{
+  HYPRE_Solver solver, precond;
+  int num_iterations;
+  gfs_domain_timer_start (domain, "Hypre: BICGSTAB_Solver");
+
+  /* Create solver */
+  HYPRE_ParCSRBiCGSTABCreate(MPI_COMM_WORLD, &solver);
+  
+  /* Set some parameters (See Reference Manual for more parameters) */
+  if (proj_hp.verbose)
+    HYPRE_ParCSRBiCGSTABSetPrintLevel(solver, 3);  /* print solve info + parameters */
+  HYPRE_ParCSRBiCGSTABSetMaxIter(solver, par->nitermax); /* max iterations */
+  HYPRE_ParCSRBiCGSTABSetTol(solver, par->tolerance); /* conv. tolerance */
+  HYPRE_ParCSRBiCGSTABSetLogging(solver, 1); /* needed to get run info later */
+
+  if (proj_hp.precond_type != NO_PRECOND) {
+    set_precond (&precond);
+
+    HYPRE_ParCSRBiCGSTABSetPrecond(solver,
+			      (HYPRE_PtrToParSolverFcn) HYPRE_precond_solver (),
+			      (HYPRE_PtrToParSolverFcn) HYPRE_precond_setup (),
+			      precond);
+  }
+
+  HYPRE_ParCSRBiCGSTABSetup(solver, hp->parcsr_A, hp->par_b, hp->par_x);
+  HYPRE_ParCSRBiCGSTABSolve(solver, hp->parcsr_A, hp->par_b, hp->par_x);
+
+  HYPRE_ParCSRBiCGSTABGetNumIterations(solver, &num_iterations);
+  par->niter = num_iterations;
+  /*  Run info - needed logging turned on */
+  if (proj_hp.verbose && domain->pid <= 0) {
+    double final_res_norm;
+    HYPRE_ParCSRBiCGSTABGetFinalRelativeResidualNorm(solver, &final_res_norm);
+    
+    printf("\n");
+  	  printf("Iterations = %d\n", num_iterations);
+  	  printf("Final Relative Residual Norm = %e\n", final_res_norm);
+  	  printf("\n");
+  }
+  
+  /* Destroy solver */
+  HYPRE_ParCSRBiCGSTABDestroy(solver);
+  if (proj_hp.precond_type != NO_PRECOND)
+    destroy_precond (precond);
+  gfs_domain_timer_stop (domain, "Hypre: BICGSTAB_Solver");
+}
+
+/******************************************/
+/*              LGMRES Solver             */
+/******************************************/
+static void call_LGMRES_solver (GfsDomain * domain, GfsMultilevelParams * par,
+			     HypreProblem * hp)
+{
+  HYPRE_Solver solver, precond;
+  int num_iterations;
+  gfs_domain_timer_start (domain, "Hypre: LGMRES_Solver");
+
+  /* Create solver */
+  HYPRE_ParCSRLGMRESCreate(MPI_COMM_WORLD, &solver);
+  
+  /* Set some parameters (See Reference Manual for more parameters) */
+  if (proj_hp.verbose)
+    HYPRE_ParCSRLGMRESSetPrintLevel(solver, 3);  /* print solve info + parameters */
+  HYPRE_ParCSRLGMRESSetMaxIter(solver, par->nitermax); /* max iterations */
+  HYPRE_ParCSRLGMRESSetTol(solver, par->tolerance); /* conv. tolerance */
+  /* HYPRE_ParCSRLGMRESSetTwoNorm(solver, 1);  *//* use the two norm as the stopping criteria */
+  HYPRE_ParCSRLGMRESSetLogging(solver, 1); /* needed to get run info later */
+
+  if (proj_hp.precond_type != NO_PRECOND) {
+    set_precond (&precond);
+
+    HYPRE_ParCSRLGMRESSetPrecond(solver,
+			      (HYPRE_PtrToParSolverFcn) HYPRE_precond_solver (),
+			      (HYPRE_PtrToParSolverFcn) HYPRE_precond_setup (),
+			      precond);
+  }
+
+  HYPRE_ParCSRLGMRESSetup(solver, hp->parcsr_A, hp->par_b, hp->par_x);
+  HYPRE_ParCSRLGMRESSolve(solver, hp->parcsr_A, hp->par_b, hp->par_x);
+
+  HYPRE_ParCSRLGMRESGetNumIterations(solver, &num_iterations);
+  par->niter = num_iterations;
+  /*  Run info - needed logging turned on */
+  if (proj_hp.verbose && domain->pid <= 0) {
+    double final_res_norm;
+    
+    HYPRE_ParCSRLGMRESGetFinalRelativeResidualNorm(solver, &final_res_norm);
+    
+    printf("\n");
+  	  printf("Iterations = %d\n", num_iterations);
+  	  printf("Final Relative Residual Norm = %e\n", final_res_norm);
+  	  printf("\n");
+  }
+  
+  /* Destroy solver */
+  HYPRE_ParCSRLGMRESDestroy(solver);
+  if (proj_hp.precond_type != NO_PRECOND)
+    destroy_precond (precond);
+  gfs_domain_timer_stop (domain, "Hypre: LGMRES_Solver");
+}
+
+/******************************************/
+/*               GMRES Solver             */
+/******************************************/
+static void call_GMRES_solver (GfsDomain * domain, GfsMultilevelParams * par,
+			       HypreProblem * hp)
+{
+  HYPRE_Solver solver, precond;
+  int num_iterations;
+  gfs_domain_timer_start (domain, "Hypre: GMRES_Solver");
+
+  /* Create solver */
+  HYPRE_ParCSRGMRESCreate(MPI_COMM_WORLD, &solver);
+  
+  /* Set some parameters (See Reference Manual for more parameters) */
+  if (proj_hp.verbose)
+    HYPRE_ParCSRGMRESSetPrintLevel(solver, 3);  /* print solve info + parameters */
+  HYPRE_ParCSRGMRESSetMaxIter(solver, par->nitermax); /* max iterations */
+  HYPRE_ParCSRGMRESSetTol(solver, par->tolerance); /* conv. tolerance */
+  /* HYPRE_ParCSRGMRESSetTwoNorm(solver, 1);  *//* use the two norm as the stopping criteria */
+  HYPRE_ParCSRGMRESSetLogging(solver, 1); /* needed to get run info later */
+
+  if (proj_hp.precond_type != NO_PRECOND) {
+    set_precond (&precond);
+
+    HYPRE_ParCSRGMRESSetPrecond(solver,
+				(HYPRE_PtrToParSolverFcn) HYPRE_precond_solver (),
+				(HYPRE_PtrToParSolverFcn) HYPRE_precond_setup (),
+				precond);
+  }
+
+  HYPRE_ParCSRGMRESSetup(solver, hp->parcsr_A, hp->par_b, hp->par_x);
+  HYPRE_ParCSRGMRESSolve(solver, hp->parcsr_A, hp->par_b, hp->par_x);
+
+  HYPRE_ParCSRGMRESGetNumIterations(solver, &num_iterations);
+  par->niter = num_iterations;
+  /*  Run info - needed logging turned on */
+  if (proj_hp.verbose && domain->pid <= 0) {
+    double final_res_norm;
+    HYPRE_ParCSRGMRESGetFinalRelativeResidualNorm(solver, &final_res_norm);
+    
+    printf("\n");
+  	  printf("Iterations = %d\n", num_iterations);
+  	  printf("Final Relative Residual Norm = %e\n", final_res_norm);
+  	  printf("\n");
+  }
+  
+  /* Destroy solver */
+  HYPRE_ParCSRGMRESDestroy(solver);
+  if (proj_hp.precond_type != NO_PRECOND)
+    destroy_precond (precond);
+  gfs_domain_timer_stop (domain, "Hypre: GMRES_Solver");
+}
+
+/******************************************/
+/*               AMS Solver               */
+/******************************************/
+static void call_AMS_solver (GfsDomain * domain, GfsMultilevelParams * par,
+			     HypreProblem * hp)
+{
+  HYPRE_Solver solver;
+  int num_iterations;
+  gfs_domain_timer_start (domain, "Hypre: AMS_Solver");
+
+  /* Create solver */
+  HYPRE_AMSCreate(&solver);
+  
+  /* Set some parameters (See Reference Manual for more parameters) */
+  if (proj_hp.verbose)
+    HYPRE_AMSSetPrintLevel(solver, 3);  /* print solve info + parameters */
+  HYPRE_AMSSetMaxIter(solver, par->nitermax); /* max iterations */
+  HYPRE_AMSSetTol(solver, par->tolerance); /* conv. tolerance */
+
+  HYPRE_AMSSetup(solver, hp->parcsr_A, hp->par_b, hp->par_x);
+  HYPRE_AMSSolve(solver, hp->parcsr_A, hp->par_b, hp->par_x);
+
+  HYPRE_AMSGetNumIterations(solver, &num_iterations);
+  par->niter = num_iterations;
+  /*  Run info - needed logging turned on */
+  if (proj_hp.verbose && domain->pid <= 0) {
+    double final_res_norm;
+    HYPRE_AMSGetFinalRelativeResidualNorm(solver, &final_res_norm);
+    
+    printf("\n");
+  	  printf("Iterations = %d\n", num_iterations);
+  	  printf("Final Relative Residual Norm = %e\n", final_res_norm);
+  	  printf("\n");
+  }
+  
+  /* Destroy solver */
+  HYPRE_AMSDestroy(solver);
+  gfs_domain_timer_stop (domain, "Hypre: AMS_Solver");
+}
+
+/******************************************/
+/*          FlexGMRES Solver              */
+/******************************************/
+static void call_FlexGMRES_solver (GfsDomain * domain, GfsMultilevelParams * par,
+				   HypreProblem * hp)
+{
+  HYPRE_Solver solver, precond;
+  int num_iterations;
+  gfs_domain_timer_start (domain, "Hypre: FlexGMRES_Solver");
+
+  /* Create solver */
+  HYPRE_ParCSRFlexGMRESCreate(MPI_COMM_WORLD, &solver);
+  
+  /* Set some parameters (See Reference Manual for more parameters) */
+  if (proj_hp.verbose)
+    HYPRE_ParCSRFlexGMRESSetPrintLevel(solver, 3);  /* print solve info + parameters */
+  HYPRE_ParCSRFlexGMRESSetMaxIter(solver, par->nitermax); /* max iterations */
+  HYPRE_ParCSRFlexGMRESSetTol(solver, par->tolerance); /* conv. tolerance */
+
+  if (proj_hp.precond_type != NO_PRECOND) {
+    set_precond (&precond);
+
+    HYPRE_ParCSRFlexGMRESSetPrecond(solver,
+				    (HYPRE_PtrToParSolverFcn) HYPRE_precond_solver (),
+				    (HYPRE_PtrToParSolverFcn) HYPRE_precond_setup (),
+				    precond);
+  }
+
+  HYPRE_ParCSRFlexGMRESSetup(solver, hp->parcsr_A, hp->par_b, hp->par_x);
+  HYPRE_ParCSRFlexGMRESSolve(solver, hp->parcsr_A, hp->par_b, hp->par_x);
+
+  HYPRE_ParCSRFlexGMRESGetNumIterations(solver, &num_iterations);
+  par->niter = num_iterations;
+  /*  Run info - needed logging turned on */
+  if (proj_hp.verbose && domain->pid <= 0) {
+    double final_res_norm;
+    HYPRE_ParCSRFlexGMRESGetFinalRelativeResidualNorm(solver, &final_res_norm);
+    
+    printf("\n");
+  	  printf("Iterations = %d\n", num_iterations);
+  	  printf("Final Relative Residual Norm = %e\n", final_res_norm);
+  	  printf("\n");
+  }
+  
+  /* Destroy solver */
+  HYPRE_ParCSRFlexGMRESDestroy(solver);
+  if (proj_hp.precond_type != NO_PRECOND)
+    destroy_precond (precond);
+  gfs_domain_timer_stop (domain, "Hypre: FlexGMRES_Solver");
+}
+
+static void hypre_problem_new (HypreProblem * hp, GfsDomain * domain,
+			       gint size, gint istart)
+{
+  gfs_domain_timer_start (domain, "HYPRE: Solver setup");
+  
+  /* Create the matrix.*/
+  HYPRE_IJMatrixCreate(MPI_COMM_WORLD, 
+		       istart, istart + size - 1, istart, istart + size - 1, 
+		       &hp->A);
+
+  /* Create the vectors rhs and solution.*/
+  HYPRE_IJVectorCreate(MPI_COMM_WORLD, istart, istart + size-1, &hp->b);
+  HYPRE_IJVectorCreate(MPI_COMM_WORLD, istart, istart + size-1, &hp->x);
+  
+  /* Choose a parallel csr format storage */
+  HYPRE_IJMatrixSetObjectType(hp->A, HYPRE_PARCSR);
+  HYPRE_IJVectorSetObjectType(hp->b, HYPRE_PARCSR);
+  HYPRE_IJVectorSetObjectType(hp->x, HYPRE_PARCSR);
+
+  /* Initialize before setting coefficients */
+  HYPRE_IJMatrixInitialize(hp->A);
+  HYPRE_IJVectorInitialize(hp->b);
+  HYPRE_IJVectorInitialize(hp->x);
+}
+
+static void hypre_problem_destroy (HypreProblem * hp)
+{
+  g_assert (hp->A);
+
+  HYPRE_IJMatrixDestroy(hp->A);
+  HYPRE_IJVectorDestroy(hp->b);
+  HYPRE_IJVectorDestroy(hp->x);
+}
+
+static void extract_stencil (GfsStencil * stencil, HypreProblem * hp)
+{
+  int ncols = stencil->id->len;
+  int rows = g_array_index (stencil->id, int, 0);
+  HYPRE_IJMatrixSetValues (hp->A, 1, &ncols, &rows, 
+			   (int *) stencil->id->data, (double *) stencil->coeff->data);
+}
+
+static void hypre_problem_init (HypreProblem * hp, GfsLinearProblem * lp,
+				GfsDomain * domain)
+{
+  double *rhs_values, *x_values;
+  int    *rows;
+  gint i;
+
+  /* Now go through my local rows and set the matrix entries.*/
+  rhs_values = (double *) lp->rhs->data;
+  x_values = (double *) lp->lhs->data;
+  rows = g_malloc (lp->lhs->len*sizeof(int));
+
+  for (i = 0; i < lp->rhs->len; i++) {
+    extract_stencil (g_ptr_array_index (lp->LP, i), hp);
+    rows[i] = lp->istart + i;
+  }
+
+  HYPRE_IJVectorSetValues(hp->b, lp->rhs->len, rows, rhs_values );
+  HYPRE_IJVectorSetValues(hp->x, lp->lhs->len, rows, x_values);
+
+  /* Assemble after setting the coefficients */
+  HYPRE_IJMatrixAssemble(hp->A);
+  HYPRE_IJVectorAssemble(hp->b);
+  HYPRE_IJVectorAssemble(hp->x);
+
+  /* Get the parcsr matrix object to use */
+  HYPRE_IJMatrixGetObject(hp->A, (void **) &hp->parcsr_A);
+  HYPRE_IJVectorGetObject(hp->b, (void **) &hp->par_b);
+  HYPRE_IJVectorGetObject(hp->x, (void **) &hp->par_x);
+
+#ifdef DEBUG
+  HYPRE_IJMatrixPrint(hp->A, "Aij.dat");
+  HYPRE_IJVectorPrint(hp->x, "xi.dat");
+  HYPRE_IJVectorPrint(hp->b, "bi.dat");
+#endif
+
+  free(rows);
+  gfs_domain_timer_stop (domain, "HYPRE: Solver setup");
+}
+
+static void hypre_problem_copy (HypreProblem * hp, GfsLinearProblem * lp)
+{
+  double *x_values;
+  int    *rows;
+  gint i;
+
+  /* Copy the solution to the GfsLinearProblem structure */
+  x_values = g_malloc (lp->lhs->len*sizeof (double));
+  rows = g_malloc (lp->lhs->len*sizeof (int));
+    
+  for (i = 0; i < lp->lhs->len; i++) {
+    x_values[i] = 0.;
+    rows[i] = i + lp->istart;
+  }
+    
+  HYPRE_IJVectorGetValues(hp->x, lp->lhs->len, rows, x_values);
+    
+  for (i = 0; i < lp->lhs->len; i++)
+    g_array_index (lp->lhs, gdouble, i) = x_values[i];
+
+  free(x_values);
+  free(rows);
+}
+
+typedef struct {
+  GfsLinearProblem * lp;
+  GfsVariable * lhs;
+} CopyParams;
+
+static void copy_poisson_solution (FttCell * cell, CopyParams * p)
+{
+   GFS_VALUE (cell, p->lhs) =
+     g_array_index (p->lp->lhs, gdouble, (int) GFS_VALUE (cell, p->lp->id) - p->lp->istart);
+}
+
+static void solve_poisson_problem_using_hypre (GfsDomain * domain,
+					       GfsLinearProblem * lp,
+					       GfsMultilevelParams * par)
+{
+  HypreProblem hp;
+  gdouble tolerance = par->tolerance;
+  par->tolerance = MIN (0.1*tolerance/par->residual.infty, 0.99);
+ 
+  hypre_problem_new (&hp, domain, lp->rhs->len, lp->istart);
+  hypre_problem_init (&hp, lp, domain);
+  
+  /* Choose a solver and solve the system */
+  if (proj_hp.solver_type == HYPRE_BOOMER_AMG)
+    call_AMG_Boomer_solver (domain, par, &hp);
+  else if (proj_hp.solver_type == HYPRE_PCG)
+    call_PCG_solver (domain, par, &hp);
+  else if (proj_hp.solver_type == HYPRE_HYBRID)
+    call_Hybrid_solver (domain, par, &hp);
+  else if (proj_hp.solver_type == HYPRE_LGMRES)
+    call_LGMRES_solver (domain, par, &hp);
+  else if (proj_hp.solver_type == HYPRE_GMRES)
+    call_GMRES_solver (domain, par, &hp);
+  else if (proj_hp.solver_type == HYPRE_FLEXGMRES)
+    call_FlexGMRES_solver (domain, par, &hp);
+  else if (proj_hp.solver_type == HYPRE_AMS)
+    call_AMS_solver (domain, par, &hp);
+  else if (proj_hp.solver_type == HYPRE_BICGSTAB)
+    call_BICGSTAB_solver (domain, par, &hp);
+  else
+    g_assert_not_reached();
+  
+  hypre_problem_copy (&hp, lp);
+  hypre_problem_destroy (&hp);
+  par->tolerance = tolerance;
+}
+
+static void correct (FttCell * cell, gpointer * data)
+{
+  GfsVariable * u = data[0];
+  GfsVariable * dp = data[1];
+  GFS_VALUE (cell, u) += GFS_VALUE (cell, dp);
+}
+
+static void hypre_poisson_solve (GfsDomain * domain,
+				 GfsMultilevelParams * par,
+				 GfsVariable * lhs,
+				 GfsVariable * rhs,
+				 GfsVariable * res,
+				 GfsVariable * dia,
+				 gdouble dt)
+{
+  /* calculates the initial residual and its norm */
+  gfs_residual (domain, par->dimension, FTT_TRAVERSE_LEAFS, -1, lhs, rhs, dia, res);
+  par->residual_before = par->residual = 
+    gfs_domain_norm_residual (domain, FTT_TRAVERSE_LEAFS, -1, dt, res);
+
+  if (par->nitermax > 0 && par->residual.infty > 0.) {
+    GfsVariable * dp = gfs_temporary_variable (domain);
+    gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
+			      (FttCellTraverseFunc) gfs_cell_reset, dp);
+    GfsLinearProblem * lp = gfs_get_poisson_problem (domain, res, dp, dia, -1, lhs);
+ 
+    solve_poisson_problem_using_hypre (domain, lp, par);
+
+    CopyParams p = { lp, dp };
+    gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
+    			      (FttCellTraverseFunc) copy_poisson_solution, &p);
+    gfs_linear_problem_destroy (lp);
+
+    /* correct on leaf cells */
+    gpointer data[2];
+    data[0] = lhs;
+    data[1] = dp;
+    gfs_traverse_and_bc (domain, FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
+			 (FttCellTraverseFunc) correct, data,
+			 lhs, lhs);
+    gts_object_destroy (GTS_OBJECT (dp));
+
+    /* compute new residual on leaf cells */
+    gfs_residual (domain, par->dimension, FTT_TRAVERSE_LEAFS, -1, lhs, rhs, dia, res);
+    par->residual = gfs_domain_norm_residual (domain, FTT_TRAVERSE_LEAFS, -1, dt, res);
+  }
+}
+
+static void hypre_solver_write (HypreSolverParams * par,FILE * fp)
+{
+  fprintf (fp," {\n");
+  switch (par->solver_type) {
+  case HYPRE_BOOMER_AMG: fputs ("  solver_type      = boomer_amg\n", fp); break;
+  case HYPRE_PCG:        fputs ("  solver_type      = pcg\n", fp); break;
+  case HYPRE_HYBRID:     fputs ("  solver_type      = hybrid\n", fp); break;
+  case HYPRE_LGMRES:     fputs ("  solver_type      = lgmres\n", fp); break;
+  case HYPRE_GMRES:      fputs ("  solver_type      = gmres\n", fp); break;
+  case HYPRE_FLEXGMRES:  fputs ("  solver_type      = flexgmres\n", fp); break;
+  case HYPRE_AMS:        fputs ("  solver_type      = ams\n", fp); break;
+  case HYPRE_BICGSTAB:   fputs ("  solver_type      = bicgstab\n", fp); break;
+  }
+
+  switch (par->relax_type) {
+  case 0: fputs ("  relax_type       = jacobi\n", fp); break;
+  case 1: fputs ("  relax_type       = gauss_seidel\n", fp); break;
+  case 3: fputs ("  relax_type       = sor-j-forward\n", fp); break;
+  case 4: fputs ("  relax_type       = sor-j-backward\n", fp); break;
+  case 5: fputs ("  relax_type       = gs-j\n", fp); break;
+  case 6: fputs ("  relax_type       = ssor-j\n", fp); break;
+  case 7: fputs ("  relax_type       = matvec-jacobi\n", fp); break;
+  case 9: fputs ("  relax_type       = direct\n", fp); break;
+  }
+
+  switch (par->precond_type) {
+  case HYPRE_AMG_PRECOND:      fputs ("  precond_type     = amg\n", fp); break;
+  case HYPRE_PARASAILS_PRECOND:fputs ("  precond_type     = parasails\n", fp); break;
+  case HYPRE_EUCLID_PRECOND:   fputs ("  precond_type     = euclid\n", fp); break;
+  case HYPRE_PILUT_PRECOND:    fputs ("  precond_type     = pilut\n", fp); break;
+  case HYPRE_AMS_PRECOND:      fputs ("  precond_type     = ams\n", fp); break;
+  case NO_PRECOND:             fputs ("  precond_type     = none\n", fp); break;
+  }
+    
+  switch (par->coarsening_type) {
+  case 0: fputs  ("  coarsening_type  = cljp\n", fp); break;
+  case 3: fputs  ("  coarsening_type  = ruge_stueben\n", fp); break;
+  case 6: fputs  ("  coarsening_type  = falgout\n", fp); break;
+  case 8: fputs  ("  coarsening_type  = pmis\n", fp); break;
+  case 10: fputs ("  coarsening_type  = hmis\n", fp); break;
+  case 21: fputs ("  coarsening_type  = cgc\n", fp); break;
+  case 22: fputs ("  coarsening_type  = cgc_e\n", fp); break;
+  }
+
+  fprintf (fp,"  cycle_type       = %i\n", par->cycle_type);
+    
+  fprintf (fp,"  nlevel           = %i\n", par->nlevel);
+    
+  fprintf (fp,"  verbose          = %i\n", par->verbose);
+
+  fputc ('}', fp);
+}
+
+static void hypre_solver_read (HypreSolverParams * par, GtsFile * fp)
+{
+  gchar * solver_type = NULL, * relax_type = NULL, * coarsening_type = NULL;
+  gchar * precond_type = NULL;
+  GtsFileVariable var[] = {
+    {GTS_STRING,  "relax_type",      TRUE, &relax_type},
+    {GTS_STRING,  "solver_type",     TRUE, &solver_type},
+    {GTS_STRING,  "precond_type",    TRUE, &precond_type},
+    {GTS_STRING,  "coarsening_type", TRUE, &coarsening_type},
+    {GTS_INT,     "cycle_type",      TRUE, &par->cycle_type},
+    {GTS_INT,     "nlevel",          TRUE, &par->nlevel},
+    {GTS_INT,     "verbose",         TRUE, &par->verbose},
+    {GTS_NONE}
+  };
+
+  gts_file_assign_variables (fp, var);
+  if (fp->type == GTS_ERROR)
+    return;
+
+  if (solver_type) {
+    if (!strcmp (solver_type, "boomer_amg"))
+      par->solver_type = HYPRE_BOOMER_AMG;
+    else if (!strcmp (solver_type, "pcg"))
+      par->solver_type = HYPRE_PCG;
+    else if (!strcmp (solver_type, "hybrid"))
+      par->solver_type = HYPRE_HYBRID;
+    else if (!strcmp (solver_type, "lgmres"))
+      par->solver_type = HYPRE_LGMRES;
+    else if (!strcmp (solver_type, "gmres"))
+      par->solver_type = HYPRE_GMRES;
+    else if (!strcmp (solver_type, "ams"))
+      par->solver_type = HYPRE_AMS;
+    else if (!strcmp (solver_type, "flexgmres"))
+      par->solver_type = HYPRE_FLEXGMRES;
+    else if (!strcmp (solver_type, "bicgstab"))
+      par->solver_type = HYPRE_BICGSTAB;
+    else
+      gts_file_variable_error (fp, var, "solver_type", "unknown solver type `%s'", solver_type);
+    g_free (solver_type);
+  }
+
+  /* The default is no preconditioner */
+  if (precond_type) {
+    if (!strcmp (precond_type, "amg"))
+      par->precond_type = HYPRE_AMG_PRECOND;
+    else if (!strcmp (precond_type, "parasails"))
+      par->precond_type = HYPRE_PARASAILS_PRECOND;
+    else if (!strcmp (precond_type, "euclid"))
+      par->precond_type = HYPRE_EUCLID_PRECOND;
+    else if (!strcmp (precond_type, "pilut"))
+      par->precond_type = HYPRE_PILUT_PRECOND;
+    else if (!strcmp (precond_type, "ams"))
+      par->precond_type = HYPRE_AMS_PRECOND;
+    else if (!strcmp (precond_type, "none"))
+      par->precond_type = NO_PRECOND;
+    else
+      gts_file_variable_error (fp, var, "precond_type", 
+			       "unknown preconditioner `%s'", precond_type);
+    g_free (precond_type);
+  }
+  if (fp->type == GTS_ERROR)
+    return;
+
+  if (relax_type) {
+    if (!strcmp (relax_type, "jacobi"))
+      par->relax_type = 0;
+    else if (!strcmp (relax_type, "gauss_seidel"))
+      par->relax_type = 1;
+    else if (!strcmp (relax_type, "sor-j-forward"))
+      par->relax_type = 3;
+    else if (!strcmp (relax_type, "sor-j-backward"))
+      par->relax_type = 4;
+    else if (!strcmp (relax_type, "gs-j"))
+      par->relax_type = 5;
+    else if (!strcmp (relax_type, "ssor-j"))
+      par->relax_type = 6;
+    else if (!strcmp (relax_type, "matvec-jacobi"))
+      par->relax_type = 7;
+    else if (!strcmp (relax_type, "direct"))
+      par->relax_type = 9;
+    else
+      gts_file_variable_error (fp, var, "relax_type", "unknown relax type `%s'", relax_type);
+    g_free (relax_type);
+  }
+  if (fp->type == GTS_ERROR)
+    return;
+
+  if (coarsening_type) {
+    if (par->solver_type != HYPRE_BOOMER_AMG)
+      g_warning ("coarsening algorithms are only for the BoomerAMG Solver !!\n"
+		 "none will be used with the selected solver");
+
+    if (!strcmp (coarsening_type, "cljp"))
+      par->coarsening_type = 0;
+    else if (!strcmp (coarsening_type, "ruge_stueben"))
+      par->coarsening_type = 3;
+    else if (!strcmp (coarsening_type, "falgout"))
+      par->coarsening_type = 6;
+    else if (!strcmp (coarsening_type, "pmis"))
+      par->coarsening_type = 8;
+    else if (!strcmp (coarsening_type, "hmis"))
+      par->coarsening_type = 10;
+    else if (!strcmp (coarsening_type, "cgc"))
+      par->coarsening_type = 21;
+    else if (!strcmp (coarsening_type, "cgc_e"))
+      par->coarsening_type = 22;
+    else
+      gts_file_variable_error (fp, var, "coarsening_type",
+			       "unknown coarsening type `%s'", coarsening_type);
+    g_free (coarsening_type);
+  }
+  if (fp->type == GTS_ERROR)
+    return;
+
+  if (par->cycle_type < 1 || (par->cycle_type > 8 && par->cycle_type < 11) ||
+      par->cycle_type > 14)
+    gts_file_variable_error (fp, var, "cycle_type",
+			     "unknown cycle type `%i'", par->cycle_type);
+  else if (par->nlevel < 0)
+    gts_file_variable_error (fp, var, "nlevel", "nlevel cannot be < 0");
+}
+
+/* Initialize module */
+void          gfs_module_read     (GtsFile * fp, GfsSimulation * sim);
+void          gfs_module_write    (FILE * fp);
+
+/* only define gfs_module_name for "official" modules (i.e. those installed in
+   GFS_MODULES_DIR) */
+const gchar gfs_module_name[] = "hypre";
+const gchar * g_module_check_init (void);
+
+const gchar * g_module_check_init (void)
+{
+  return NULL;
+}
+
+void gfs_module_read (GtsFile * fp, GfsSimulation * sim)
+{
+  g_return_if_fail (fp != NULL);
+
+  /* Default hypre solver parameters */
+  /* Boomer AMG is the default solver */
+  proj_hp.solver_type = HYPRE_BOOMER_AMG;
+  proj_hp.precond_type = NO_PRECOND;
+  proj_hp.relax_type = 5;
+  proj_hp.coarsening_type = 22;
+  proj_hp.cycle_type = 1;
+  proj_hp.nlevel = 0;
+  proj_hp.verbose = FALSE;
+
+  if (fp->type == '{')
+    hypre_solver_read (&proj_hp, fp);
+  
+  /* initialise the poisson cycle hook */
+  sim->approx_projection_params.poisson_solve = hypre_poisson_solve;
+  sim->projection_params.poisson_solve = hypre_poisson_solve;
+}
+
+void gfs_module_write (FILE * fp)
+{
+  g_return_if_fail (fp != NULL);
+
+  hypre_solver_write (&proj_hp, fp);
+}
diff --git a/modules/kdt/Makefile.am b/modules/kdt/Makefile.am
new file mode 100644
index 0000000..6aaa35f
--- /dev/null
+++ b/modules/kdt/Makefile.am
@@ -0,0 +1,22 @@
+## Process this file with automake to produce Makefile.in
+
+noinst_LTLIBRARIES = libkdt.la
+
+bin_PROGRAMS = \
+	xyz2kdt \
+	kdtquery
+
+libkdt_la_CFLAGS = $(AM_CFLAGS) -D_FILE_OFFSET_BITS=64
+libkdt_la_SOURCES = \
+	kdt.c \
+	kdt.h
+
+xyz2kdt_SOURCES = xyz2kdt.c kdt.h
+xyz2kdt_LDADD = -lkdt
+xyz2kdt_CFLAGS = $(AM_CFLAGS)
+xyz2kdt_DEPENDENCIES = libkdt.la
+
+kdtquery_SOURCES = kdtquery.c kdt.h
+kdtquery_LDADD = -lkdt
+kdtquery_CFLAGS = $(AM_CFLAGS)
+kdtquery_DEPENDENCIES = libkdt.la
diff --git a/modules/kdt/Makefile.in b/modules/kdt/Makefile.in
new file mode 100644
index 0000000..5eb035d
--- /dev/null
+++ b/modules/kdt/Makefile.in
@@ -0,0 +1,627 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+bin_PROGRAMS = xyz2kdt$(EXEEXT) kdtquery$(EXEEXT)
+subdir = modules/kdt
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
+	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+	$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+	$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+LTLIBRARIES = $(noinst_LTLIBRARIES)
+libkdt_la_LIBADD =
+am_libkdt_la_OBJECTS = libkdt_la-kdt.lo
+libkdt_la_OBJECTS = $(am_libkdt_la_OBJECTS)
+libkdt_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(libkdt_la_CFLAGS) \
+	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+am__installdirs = "$(DESTDIR)$(bindir)"
+PROGRAMS = $(bin_PROGRAMS)
+am_kdtquery_OBJECTS = kdtquery-kdtquery.$(OBJEXT)
+kdtquery_OBJECTS = $(am_kdtquery_OBJECTS)
+kdtquery_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=link $(CCLD) $(kdtquery_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+	$(LDFLAGS) -o $@
+am_xyz2kdt_OBJECTS = xyz2kdt-xyz2kdt.$(OBJEXT)
+xyz2kdt_OBJECTS = $(am_xyz2kdt_OBJECTS)
+xyz2kdt_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=link $(CCLD) $(xyz2kdt_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+	$(LDFLAGS) -o $@
+DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+	$(LDFLAGS) -o $@
+SOURCES = $(libkdt_la_SOURCES) $(kdtquery_SOURCES) $(xyz2kdt_SOURCES)
+DIST_SOURCES = $(libkdt_la_SOURCES) $(kdtquery_SOURCES) \
+	$(xyz2kdt_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AR = @AR@
+AS = @AS@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FC = @FC@
+FCFLAGS = @FCFLAGS@
+FFLAGS = @FFLAGS@
+FGREP = @FGREP@
+GFS2D_LIBS = @GFS2D_LIBS@
+GFS3D_LIBS = @GFS3D_LIBS@
+GFS_COMPILATION_FLAGS = @GFS_COMPILATION_FLAGS@
+GFS_MAJOR_VERSION = @GFS_MAJOR_VERSION@
+GFS_MICRO_VERSION = @GFS_MICRO_VERSION@
+GFS_MINOR_VERSION = @GFS_MINOR_VERSION@
+GFS_VERSION = @GFS_VERSION@
+GREP = @GREP@
+GSL_CFLAGS = @GSL_CFLAGS@
+GSL_CONFIG = @GSL_CONFIG@
+GSL_LIBS = @GSL_LIBS@
+GTS_CFLAGS = @GTS_CFLAGS@
+GTS_CONFIG = @GTS_CONFIG@
+GTS_DEPLIBS = @GTS_DEPLIBS@
+GTS_LIBS = @GTS_LIBS@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_AGE = @LT_AGE@
+LT_CURRENT = @LT_CURRENT@
+LT_RELEASE = @LT_RELEASE@
+LT_REVISION = @LT_REVISION@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MODULES = @MODULES@
+NM = @NM@
+NMEDIT = @NMEDIT@
+NO_UNDEFINED = @NO_UNDEFINED@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+ODE_CFLAGS = @ODE_CFLAGS@
+ODE_LIBS = @ODE_LIBS@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+W3INIT = @W3INIT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_FC = @ac_ct_FC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gts_cflags = @gts_cflags@
+gts_libs = @gts_libs@
+have_awk = @have_awk@
+have_gmodule = @have_gmodule@
+have_m4 = @have_m4@
+have_pkg_config = @have_pkg_config@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+ode = @ode@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+use_mpicc = @use_mpicc@
+noinst_LTLIBRARIES = libkdt.la
+libkdt_la_CFLAGS = $(AM_CFLAGS) -D_FILE_OFFSET_BITS=64
+libkdt_la_SOURCES = \
+	kdt.c \
+	kdt.h
+
+xyz2kdt_SOURCES = xyz2kdt.c kdt.h
+xyz2kdt_LDADD = -lkdt
+xyz2kdt_CFLAGS = $(AM_CFLAGS)
+xyz2kdt_DEPENDENCIES = libkdt.la
+kdtquery_SOURCES = kdtquery.c kdt.h
+kdtquery_LDADD = -lkdt
+kdtquery_CFLAGS = $(AM_CFLAGS)
+kdtquery_DEPENDENCIES = libkdt.la
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu modules/kdt/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu modules/kdt/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-noinstLTLIBRARIES:
+	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
+	@list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
+	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+	  test "$$dir" != "$$p" || dir=.; \
+	  echo "rm -f \"$${dir}/so_locations\""; \
+	  rm -f "$${dir}/so_locations"; \
+	done
+libkdt.la: $(libkdt_la_OBJECTS) $(libkdt_la_DEPENDENCIES) 
+	$(libkdt_la_LINK)  $(libkdt_la_OBJECTS) $(libkdt_la_LIBADD) $(LIBS)
+install-binPROGRAMS: $(bin_PROGRAMS)
+	@$(NORMAL_INSTALL)
+	test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
+	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+	for p in $$list; do echo "$$p $$p"; done | \
+	sed 's/$(EXEEXT)$$//' | \
+	while read p p1; do if test -f $$p || test -f $$p1; \
+	  then echo "$$p"; echo "$$p"; else :; fi; \
+	done | \
+	sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+	    -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+	sed 'N;N;N;s,\n, ,g' | \
+	$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+	  { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+	    if ($$2 == $$4) files[d] = files[d] " " $$1; \
+	    else { print "f", $$3 "/" $$4, $$1; } } \
+	  END { for (d in files) print "f", d, files[d] }' | \
+	while read type dir files; do \
+	    if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+	    test -z "$$files" || { \
+	    echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+	    $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+	    } \
+	; done
+
+uninstall-binPROGRAMS:
+	@$(NORMAL_UNINSTALL)
+	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+	files=`for p in $$list; do echo "$$p"; done | \
+	  sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+	      -e 's/$$/$(EXEEXT)/' `; \
+	test -n "$$list" || exit 0; \
+	echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
+	cd "$(DESTDIR)$(bindir)" && rm -f $$files
+
+clean-binPROGRAMS:
+	@list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \
+	echo " rm -f" $$list; \
+	rm -f $$list || exit $$?; \
+	test -n "$(EXEEXT)" || exit 0; \
+	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+	echo " rm -f" $$list; \
+	rm -f $$list
+kdtquery$(EXEEXT): $(kdtquery_OBJECTS) $(kdtquery_DEPENDENCIES) 
+	@rm -f kdtquery$(EXEEXT)
+	$(kdtquery_LINK) $(kdtquery_OBJECTS) $(kdtquery_LDADD) $(LIBS)
+xyz2kdt$(EXEEXT): $(xyz2kdt_OBJECTS) $(xyz2kdt_DEPENDENCIES) 
+	@rm -f xyz2kdt$(EXEEXT)
+	$(xyz2kdt_LINK) $(xyz2kdt_OBJECTS) $(xyz2kdt_LDADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kdtquery-kdtquery.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libkdt_la-kdt.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/xyz2kdt-xyz2kdt.Po at am__quote@
+
+.c.o:
+ at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(COMPILE) -c $<
+
+.c.obj:
+ at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+ at am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+
+libkdt_la-kdt.lo: kdt.c
+ at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libkdt_la_CFLAGS) $(CFLAGS) -MT libkdt_la-kdt.lo -MD -MP -MF $(DEPDIR)/libkdt_la-kdt.Tpo -c -o libkdt_la-kdt.lo `test -f 'kdt.c' || echo '$(srcdir)/'`kdt.c
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libkdt_la-kdt.Tpo $(DEPDIR)/libkdt_la-kdt.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='kdt.c' object='libkdt_la-kdt.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libkdt_la_CFLAGS) $(CFLAGS) -c -o libkdt_la-kdt.lo `test -f 'kdt.c' || echo '$(srcdir)/'`kdt.c
+
+kdtquery-kdtquery.o: kdtquery.c
+ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(kdtquery_CFLAGS) $(CFLAGS) -MT kdtquery-kdtquery.o -MD -MP -MF $(DEPDIR)/kdtquery-kdtquery.Tpo -c -o kdtquery-kdtquery.o `test -f 'kdtquery.c' || echo '$(srcdir)/'`kdtquery.c
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/kdtquery-kdtquery.Tpo $(DEPDIR)/kdtquery-kdtquery.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='kdtquery.c' object='kdtquery-kdtquery.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(kdtquery_CFLAGS) $(CFLAGS) -c -o kdtquery-kdtquery.o `test -f 'kdtquery.c' || echo '$(srcdir)/'`kdtquery.c
+
+kdtquery-kdtquery.obj: kdtquery.c
+ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(kdtquery_CFLAGS) $(CFLAGS) -MT kdtquery-kdtquery.obj -MD -MP -MF $(DEPDIR)/kdtquery-kdtquery.Tpo -c -o kdtquery-kdtquery.obj `if test -f 'kdtquery.c'; then $(CYGPATH_W) 'kdtquery.c'; else $(CYGPATH_W) '$(srcdir)/kdtquery.c'; fi`
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/kdtquery-kdtquery.Tpo $(DEPDIR)/kdtquery-kdtquery.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='kdtquery.c' object='kdtquery-kdtquery.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(kdtquery_CFLAGS) $(CFLAGS) -c -o kdtquery-kdtquery.obj `if test -f 'kdtquery.c'; then $(CYGPATH_W) 'kdtquery.c'; else $(CYGPATH_W) '$(srcdir)/kdtquery.c'; fi`
+
+xyz2kdt-xyz2kdt.o: xyz2kdt.c
+ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xyz2kdt_CFLAGS) $(CFLAGS) -MT xyz2kdt-xyz2kdt.o -MD -MP -MF $(DEPDIR)/xyz2kdt-xyz2kdt.Tpo -c -o xyz2kdt-xyz2kdt.o `test -f 'xyz2kdt.c' || echo '$(srcdir)/'`xyz2kdt.c
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/xyz2kdt-xyz2kdt.Tpo $(DEPDIR)/xyz2kdt-xyz2kdt.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='xyz2kdt.c' object='xyz2kdt-xyz2kdt.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xyz2kdt_CFLAGS) $(CFLAGS) -c -o xyz2kdt-xyz2kdt.o `test -f 'xyz2kdt.c' || echo '$(srcdir)/'`xyz2kdt.c
+
+xyz2kdt-xyz2kdt.obj: xyz2kdt.c
+ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xyz2kdt_CFLAGS) $(CFLAGS) -MT xyz2kdt-xyz2kdt.obj -MD -MP -MF $(DEPDIR)/xyz2kdt-xyz2kdt.Tpo -c -o xyz2kdt-xyz2kdt.obj `if test -f 'xyz2kdt.c'; then $(CYGPATH_W) 'xyz2kdt.c'; else $(CYGPATH_W) '$(srcdir)/xyz2kdt.c'; fi`
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/xyz2kdt-xyz2kdt.Tpo $(DEPDIR)/xyz2kdt-xyz2kdt.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='xyz2kdt.c' object='xyz2kdt-xyz2kdt.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xyz2kdt_CFLAGS) $(CFLAGS) -c -o xyz2kdt-xyz2kdt.obj `if test -f 'xyz2kdt.c'; then $(CYGPATH_W) 'xyz2kdt.c'; else $(CYGPATH_W) '$(srcdir)/xyz2kdt.c'; fi`
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	set x; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	shift; \
+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  if test $$# -gt 0; then \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      "$$@" $$unique; \
+	  else \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      $$unique; \
+	  fi; \
+	fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	test -z "$(CTAGS_ARGS)$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && $(am__cd) $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+	  else \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LTLIBRARIES) $(PROGRAMS)
+installdirs:
+	for dir in "$(DESTDIR)$(bindir)"; do \
+	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+	done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-binPROGRAMS clean-generic clean-libtool \
+	clean-noinstLTLIBRARIES mostlyclean-am
+
+distclean: distclean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-binPROGRAMS
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-binPROGRAMS
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
+	clean-generic clean-libtool clean-noinstLTLIBRARIES ctags \
+	distclean distclean-compile distclean-generic \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-binPROGRAMS \
+	install-data install-data-am install-dvi install-dvi-am \
+	install-exec install-exec-am install-html install-html-am \
+	install-info install-info-am install-man install-pdf \
+	install-pdf-am install-ps install-ps-am install-strip \
+	installcheck installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-compile \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags uninstall uninstall-am uninstall-binPROGRAMS
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/modules/kdt/kdt.c b/modules/kdt/kdt.c
new file mode 100644
index 0000000..e3787db
--- /dev/null
+++ b/modules/kdt/kdt.c
@@ -0,0 +1,803 @@
+/* Gerris - The GNU Flow Solver
+ * Copyright (C) 2010 National Institute of Water and Atmospheric Research
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.  
+ */
+
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#include <assert.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/time.h>
+#include <fcntl.h>
+#include <unistd.h>
+
+#include "kdt.h"
+
+#define MIN(a,b) ((a) < (b) ? (a) : (b))
+#define MAX(a,b) ((a) > (b) ? (a) : (b))
+
+/* sort */
+
+/* threshold below which in-memory qsort() is used rather than on-disk
+   mergesort */
+#define LENMIN 1000000
+
+void kdt_heap_create (KdtHeap * h, int fd, long len)
+{
+  h->fd = fd;
+  h->len = len;
+  h->i = 0;
+  h->p = malloc (len*sizeof (KdtPoint));
+  h->end = read (fd, h->p, len*sizeof (KdtPoint));
+  assert (h->end >= 0);
+  h->end /= sizeof (KdtPoint);
+}
+
+int kdt_heap_get (KdtHeap * h, KdtPoint * p)
+{
+  if (h->i < h->end) {
+    *p = h->p[h->i++];
+    return 1;
+  }
+  if (h->end < h->len)
+    return 0;
+  h->end = read (h->fd, h->p, h->len*sizeof (KdtPoint));
+  assert (h->end >= 0);
+  h->end /= sizeof (KdtPoint);
+  h->i = 0;
+  return kdt_heap_get (h, p);
+}
+
+void kdt_heap_put (KdtHeap * h, KdtPoint * p)
+{
+  if (h->i == h->len) {
+    assert (write (h->fd, h->p, h->len*sizeof (KdtPoint)) == h->len*sizeof (KdtPoint));
+    h->i = 0;
+  }
+  h->p[h->i++] = *p;
+}
+
+void kdt_heap_flush (KdtHeap * h)
+{
+  if (h->i > 0)
+    assert (write (h->fd, h->p, h->i*sizeof (KdtPoint)) == h->i*sizeof (KdtPoint));
+}
+
+void kdt_heap_free (KdtHeap * h)
+{
+  free (h->p);
+}
+
+static int put (KdtHeap * h, KdtPoint * p, KdtHeap * merged)
+{
+  kdt_heap_put (merged, p);
+  return kdt_heap_get (h, p);
+}
+
+static int fdtemp (void)
+{
+  char name[] = "XXXXXX";
+  int fd = mkstemp (name);
+  assert (fd >= 0);
+  assert (unlink (name) == 0);
+  return fd;
+}
+
+static int merge (int fd1, int fd2, int (*compar) (const void *, const void *), long len)
+{
+  KdtHeap h1, h2, hm;
+  assert (lseek (fd1, 0, SEEK_SET) == 0);
+  kdt_heap_create (&h1, fd1, LENMIN/3);
+  assert (lseek (fd2, 0, SEEK_SET) == 0);
+  kdt_heap_create (&h2, fd2, LENMIN/3);
+  int merged = fdtemp ();
+  kdt_heap_create (&hm, merged, LENMIN/3);
+  KdtPoint p1, p2;
+  int r1 = kdt_heap_get (&h1, &p1);
+  int r2 = kdt_heap_get (&h2, &p2);
+  while (r1 && r2) {
+    if ((* compar) (&p2, &p1))
+      r1 = put (&h1, &p1, &hm);
+    else
+      r2 = put (&h2, &p2, &hm);
+  }
+  while (r1)
+    r1 = put (&h1, &p1, &hm);
+  while (r2)
+    r2 = put (&h2, &p2, &hm);
+  kdt_heap_free (&h1);
+  kdt_heap_free (&h2);
+  close (fd1);
+  close (fd2);
+  kdt_heap_flush (&hm);
+  kdt_heap_free (&hm);
+  return merged;
+}
+
+static int half (int fd, long len)
+{
+  long len1 = len/2;
+  assert (lseek (fd, len1*sizeof (KdtPoint), SEEK_SET) > 0);
+  int fd1 = fd, fd2 = fdtemp ();
+  char a[4096];
+  ssize_t size;
+  while ((size = read (fd1, a, 4096)) > 0)
+    assert (write (fd2, a, size) == size);
+  assert (ftruncate (fd1, len1*sizeof (KdtPoint)) == 0);
+  return fd2;
+}
+
+#if TIMING
+static double elapsed (const struct timeval * start, const struct timeval * end)
+{
+  return (double) (end->tv_usec - start->tv_usec) + 1e6*(double) (end->tv_sec - start->tv_sec);
+}
+#endif
+
+static int sort (int fd, long len, 
+		 int  (*compar)   (const void *, const void *),
+		 void (*progress) (void *), void * data)
+{
+  struct timeval start;
+  gettimeofday (&start, NULL);
+  assert (lseek (fd, 0, SEEK_SET) == 0);
+  if (len <= LENMIN) {
+    KdtPoint * a = malloc (len*sizeof (KdtPoint));
+    assert (read (fd, a, len*sizeof (KdtPoint)) == len*sizeof (KdtPoint));
+    qsort (a, len, sizeof (KdtPoint), compar);
+    assert (lseek (fd, 0, SEEK_SET) == 0);
+    assert (write (fd, a, len*sizeof (KdtPoint)) == len*sizeof (KdtPoint));
+    free (a);
+#if TIMING
+    struct timeval end;
+    gettimeofday (&end, NULL);
+    fprintf (stderr, "sort %ld %g\n", len, elapsed (&start, &end));
+#endif
+    if (progress)
+      (* progress) (data);
+    return fd;
+  }
+  else {
+    long len1 = len/2, len2 = len - len1;
+    int fd2 = half (fd, len);
+    int fd3 = merge (sort (fd, len1, compar, progress, data), 
+		     sort (fd2, len2, compar, progress, data), 
+		     compar, len);
+#if TIMING
+    struct timeval end;
+    gettimeofday (&end, NULL);
+    fprintf (stderr, "sort %ld %g\n", len, elapsed (&start, &end));
+#endif
+    return fd3;
+  }
+}
+
+/* Kdt */
+
+typedef struct {
+  double split;
+} Node;
+
+#define SYSTEM_32_BITS (!defined (__LP64__) && !defined (__64BIT__) && \
+                        !defined (_LP64) && !(__WORDSIZE == 64))
+
+typedef struct {
+  KdtRect bound;
+  long len;
+  PADDING_32_BITS;
+  long np;
+#if SYSTEM_32_BITS
+  int padding1;
+#endif
+} Header;
+
+struct _Kdt {
+  Header h;
+  FILE * nodes, * sums, * leaves;
+  KdtPoint * buffer;
+  /* progress stuff */
+  void (* progress) (float complete, void * data);
+  void * data;
+  int i, m;
+};
+
+static int check_32_bits (const Kdt * kdt)
+{
+#if SYSTEM_32_BITS
+  long maxlen = (1 << 31)/sizeof (KdtPoint);
+  if (kdt->h.len > maxlen) {
+    fprintf (stderr, "kdt: 32-bits systems are limited to %ld data points\n", maxlen);
+    return 1;
+  }
+#endif
+  return 0;
+}
+
+#define KDTSIZE(len) (((len) - 1)*sizeof (Node) + (len)*sizeof (KdtPoint))
+
+int kdt_size (const Kdt * kdt, long len)
+{
+  long len1 = 1;
+  while (len > kdt->h.np) {
+    len /= 2; len1 *= 2;
+  }
+  return (len1 - 1)*sizeof (Node) + len1*sizeof (KdtPoint)*kdt->h.np;
+}
+
+void kdt_sizes (const Kdt * kdt, long len, long * nodes, long * sums, long * leaves)
+{
+  long len1 = 1;
+  while (len > kdt->h.np) {
+    len /= 2; len1 *= 2;
+  }
+  *nodes = (len1 - 1)*sizeof (Node);
+  *sums  = (len1 - 1)*sizeof (KdtSum);
+  *leaves = len1*sizeof (KdtPoint)*kdt->h.np;
+}
+
+static void relative (const KdtRect rect, double * o, double * h)
+{
+  o[0] = (((double)rect[0].l) + ((double)rect[0].h))/2.;
+  o[1] = (((double)rect[1].l) + ((double)rect[1].h))/2.;
+  *h = ((double)rect[0].h) - ((double)rect[0].l);
+  if (((double)rect[1].h) - ((double)rect[1].l) > *h)
+    *h = ((double)rect[1].h) - ((double)rect[1].l);
+}
+
+static void sum_add_point (const KdtRect parent, KdtSum * sum, const KdtPoint * a)
+{
+  double p[3], o[2], h;
+
+  relative (parent, o, &h);
+
+  p[0] = (a->x - o[0])/h; p[1] = (a->y - o[1])/h; p[2] = a->z;
+#if AVG_TERRAIN
+  sum->H0 += p[2];
+  sum->n++;
+  if (p[2] < sum->Hmin) sum->Hmin = p[2];
+  if (p[2] > sum->Hmax) sum->Hmax = p[2];
+#else
+  sum->m01 += p[0];
+  sum->m02 += p[1];
+  sum->m03 += p[0]*p[1];
+  sum->m11 += p[0]*p[0];
+  sum->m13 += p[0]*p[0]*p[1];
+  sum->m22 += p[1]*p[1];
+  sum->m23 += p[0]*p[1]*p[1];
+  sum->m33 += p[0]*p[0]*p[1]*p[1];
+  sum->m44 += p[0]*p[0]*p[0];
+  sum->m55 += p[1]*p[1]*p[1];
+  sum->m66 += p[0]*p[0]*p[0]*p[0];
+  sum->m77 += p[1]*p[1]*p[1]*p[1];
+  sum->m67 += p[0]*p[0]*p[0]*p[1];
+  sum->m76 += p[1]*p[1]*p[1]*p[0];
+  sum->H0 += p[2];
+  sum->H1 += p[0]*p[2];
+  sum->H2 += p[1]*p[2];
+  sum->H3 += p[0]*p[1]*p[2];
+  sum->H4 += p[2]*p[2];
+  sum->H5 += p[0]*p[0]*p[2];
+  sum->H6 += p[1]*p[1]*p[2];
+  sum->n++;
+  if (p[2] < sum->Hmin) sum->Hmin = p[2];
+  if (p[2] > sum->Hmax) sum->Hmax = p[2];
+#endif
+}
+
+static void sum_add_sum (const KdtRect parent, KdtSum * sum, const KdtRect rect, const KdtSum * a)
+{
+  double op[2], oa[2], hp, ha;
+
+  relative (parent, op, &hp);
+  relative (rect, oa, &ha);
+  
+  double oap0 = oa[0] - op[0], oap1 = oa[1] - op[1];
+  double an = a->n;
+  double ha2 = ha*ha, hp2 = hp*hp;
+  sum->m01 += (an*oap0 + a->m01*ha)/hp;
+  sum->m02 += (an*oap1 + a->m02*ha)/hp;
+  sum->m03 += (oap0*(an*oap1 + a->m02*ha) + ha*(a->m01*oap1 + a->m03*ha))/hp2;
+  double m11 = (oap0*(an*oap0 + 2.*a->m01*ha) + a->m11*ha2)/hp2;
+  sum->m11 += m11;
+  double m13 = ha*(oap0*(a->m02*oap0 + 2.*a->m03*ha) + a->m13*ha2)/hp2;
+  sum->m13 += (oap1*m11 + m13)/hp;
+  double m22 = (oap1*(an*oap1 + 2.*a->m02*ha) + a->m22*ha2)/hp2;
+  sum->m22 += m22;
+  sum->m23 += (oap0*m22 + ha*(oap1*(oap1*a->m01 + 2.*a->m03*ha) + a->m23*ha2)/hp2)/hp;
+  sum->m33 += (oap1*(oap1*m11 + 2.*m13) + 
+		ha2*(oap0*(oap0*a->m22 + 2.*a->m23*ha) + ha2*a->m33)/hp2)/hp2;
+  double ha3 = ha2*ha, hp3 = hp2*hp;
+  sum->m44 += (oap0*(oap0*(oap0*an + 3.*ha*a->m01) + 3.*ha2*a->m11) + ha3*a->m44)/hp3;
+  sum->m55 += (oap1*(oap1*(oap1*an + 3.*ha*a->m02) + 3.*ha2*a->m22) + ha3*a->m55)/hp3;
+  double ha4 = ha3*ha, hp4 = hp3*hp;
+  sum->m66 += (oap0*(oap0*(oap0*(oap0*an + 4.*ha*a->m01) + 6.*ha2*a->m11) 
+		      + 4.*ha3*a->m44) + ha4*a->m66)/hp4;
+  sum->m77 += (oap1*(oap1*(oap1*(oap1*an + 4.*ha*a->m02) + 6.*ha2*a->m22)
+		      + 4.*ha3*a->m55) + ha4*a->m77)/hp4;
+  sum->m67 += (oap1*(oap0*(oap0*(oap0*an + 3.*ha*a->m01) + 3.*ha2*a->m11) + ha3*a->m44)
+		+ oap0*(oap0*(ha*a->m02*oap0 + 3.*ha2*a->m03) + 3.*ha3*a->m13) 
+		+ ha4*a->m67)/hp4;
+  sum->m76 += (oap0*(oap1*(oap1*(oap1*an + 3.*ha*a->m02) + 3.*ha2*a->m22) + ha3*a->m55)
+		+ oap1*(oap1*(ha*a->m01*oap1 + 3.*ha2*a->m03) + 3.*ha3*a->m23)
+		+ ha4*a->m76)/hp4;
+  sum->H0 += a->H0;
+  sum->H1 += (a->H0*oap0 + a->H1*ha)/hp;
+  sum->H2 += (a->H0*oap1 + a->H2*ha)/hp;
+  sum->H3 += (ha*(ha*a->H3 + oap0*a->H2 + oap1*a->H1) + oap0*oap1*a->H0)/hp2;
+  sum->H4 += a->H4;
+  sum->H5 += (oap0*(2.*ha*a->H1 + oap0*a->H0) + ha2*a->H5)/hp2;
+  sum->H6 += (oap1*(2.*ha*a->H2 + oap1*a->H0) + ha2*a->H6)/hp2;
+  sum->n += a->n;
+  if (a->Hmin < sum->Hmin) sum->Hmin = a->Hmin;
+  if (a->Hmax > sum->Hmax) sum->Hmax = a->Hmax;
+}
+
+static int sort_x (const void * p1, const void * p2)
+{
+  return ((KdtPoint *) p1)->x > ((KdtPoint *) p2)->x;
+}
+
+static int sort_y (const void * p1, const void * p2)
+{
+  return ((KdtPoint *) p1)->y > ((KdtPoint *) p2)->y;
+}
+
+static void update_sum (const KdtRect rect, KdtSum * n, KdtPoint * a, long len)
+{
+  kdt_sum_init (n);
+  long i;
+  for (i = 0; i < len; i++, a++)
+    sum_add_point (rect, n, a);
+}
+
+#define PADDING 1e100
+
+static void split (KdtPoint * a, KdtRect bound, long len, int index, Kdt * kdt)
+{
+  if (len > kdt->h.np) {
+    //    fprintf (stderr, " splitting: %ld       \r", len);
+    qsort (a, len, sizeof (KdtPoint), index == 0 ? sort_x : sort_y);
+    long len1 = len/2;
+    long len2 = len - len1;
+    Node n;
+    n.split = (&a[len1].x)[index];
+    KdtSum s;
+    update_sum (bound, &s, a, len);
+    fwrite (&s, sizeof (KdtSum), 1, kdt->sums);
+    fwrite (&n, sizeof (Node), 1, kdt->nodes);
+    KdtRect bound1;
+    bound1[0].l = bound[0].l; bound1[0].h = bound[0].h;
+    bound1[1].l = bound[1].l; bound1[1].h = bound[1].h;
+    bound1[index].h = n.split;
+    split (a, bound1, len1, (index + 1) % 2, kdt);
+
+    bound1[0].l = bound[0].l; bound1[0].h = bound[0].h;
+    bound1[1].l = bound[1].l; bound1[1].h = bound[1].h;
+    bound1[index].l = n.split;
+    split (&(a[len1]), bound1, len2, (index + 1) % 2, kdt);
+  }
+  else if (len > 0) {
+    fwrite (a, sizeof (KdtPoint), len, kdt->leaves);
+    /* padding */
+    KdtPoint dummy = { PADDING, PADDING, PADDING };
+    int np = kdt->h.np;
+    while (np-- > len)
+      fwrite (&dummy, sizeof (KdtPoint), 1, kdt->leaves);
+  }
+}
+
+static void file_update_sum (const KdtRect rect, KdtSum * n, int fd, long len)
+{
+  KdtHeap h;
+  kdt_heap_create (&h, fd, LENMIN);
+  kdt_sum_init (n);
+  long i;
+  for (i = 0; i < len; i++) {
+    KdtPoint p;
+    assert (kdt_heap_get (&h, &p));
+    sum_add_point (rect, n, &p);
+  }
+  kdt_heap_free (&h);
+}
+
+static void progress (void * data)
+{
+  Kdt * kdt = data;
+  if (kdt->progress)
+    (* kdt->progress) (++kdt->i/(float) kdt->m, kdt->data);
+}
+
+static void splitfile (int fd, KdtRect bound, long len, int index, Kdt * kdt)
+{
+#if TIMING
+  struct timeval start;
+  gettimeofday (&start, NULL);
+#endif
+  assert (lseek (fd, 0, SEEK_SET) == 0);
+  if (len > LENMIN) {
+    //    fprintf (stderr, " splitting: %ld      \r", len);
+    KdtSum s;
+    file_update_sum (bound, &s, fd, len);
+    fwrite (&s, sizeof (KdtSum), 1, kdt->sums);
+
+    long len1 = len/2;
+    long len2 = len - len1;
+    fd = sort (fd, len,  index == 0 ? sort_x : sort_y, progress, kdt);
+#if TIMING
+    struct timeval s1;
+    gettimeofday (&s1, NULL);
+#endif
+    int fd2 = half (fd, len);
+#if TIMING
+    struct timeval end;
+    gettimeofday (&end, NULL);
+    fprintf (stderr, "half %ld %g\n", len, elapsed (&s1, &end));
+#endif
+    KdtPoint p;
+    assert (lseek (fd2, 0, SEEK_SET) == 0);
+    assert (read (fd2, &p, sizeof (KdtPoint)) == sizeof (KdtPoint));
+
+    Node n;
+    n.split = (&p.x)[index];
+    fwrite (&n, sizeof (Node), 1, kdt->nodes);
+
+    KdtRect bound1;
+    bound1[0].l = bound[0].l; bound1[0].h = bound[0].h;
+    bound1[1].l = bound[1].l; bound1[1].h = bound[1].h;
+    bound1[index].h = n.split;
+    splitfile (fd, bound1, len1, (index + 1) % 2, kdt);
+    close (fd);
+
+    bound1[0].l = bound[0].l; bound1[0].h = bound[0].h;
+    bound1[1].l = bound[1].l; bound1[1].h = bound[1].h;
+    bound1[index].l = n.split;
+    splitfile (fd2, bound1, len2, (index + 1) % 2, kdt);
+    close (fd2);
+  }
+  else if (len > 0) {
+    KdtPoint * a = malloc (len*sizeof (KdtPoint));
+    assert (read (fd, a, len*sizeof (KdtPoint)) == len*sizeof (KdtPoint));
+    split (a, bound, len, index, kdt);
+    free (a);
+  }
+#if TIMING
+  struct timeval end;
+  gettimeofday (&end, NULL);
+  fprintf (stderr, "splitfile %ld %g\n", len, elapsed (&start, &end));
+#endif
+}
+
+Kdt * kdt_new (void)
+{
+  Kdt * kdt = calloc (1, sizeof (Kdt));
+  return kdt;
+}
+
+static FILE * open_ext (const char * name, const char * ext, const char * mode)
+{
+  int len = strlen (name), len1 = strlen (ext);
+  char * fname = malloc (sizeof(char)*(len + len1 + 1));
+  strcpy (fname, name);
+  strcpy (&fname[len], ext);
+  FILE * fp = fopen (fname, mode);
+  free (fname);
+  return fp;
+}
+
+static int kdt_init (Kdt * kdt, const char * name, int npmax, long len)
+{
+  kdt->nodes  = open_ext (name, ".kdt", "w");
+  if (!kdt->nodes)
+    return -1;
+  
+  kdt->sums   = open_ext (name, ".sum", "w");
+  if (!kdt->sums)
+    return -1;
+
+  kdt->leaves = open_ext (name, ".pts", "w");
+  if (!kdt->leaves)
+    return -1;
+
+  kdt->h.len = len;
+  kdt->h.np = len;
+  while (kdt->h.np > npmax)
+    kdt->h.np /= 2;
+  kdt->h.np++;
+  kdt->h.bound[0].l = kdt->h.bound[1].l =  1e30;
+  kdt->h.bound[0].h = kdt->h.bound[1].h = -1e30;
+
+  if (check_32_bits (kdt))
+    return -1;
+  
+  return 0;
+}
+
+int kdt_create (Kdt * kdt, const char * name, int blksize,
+		KdtPoint * a, long len)
+{
+  int npmax = blksize/sizeof (KdtPoint);
+  if (kdt_init (kdt, name, npmax, len))
+    return -1;
+  
+  long i;
+  for (i = 0; i < len; i++) {
+    if (a[i].x > kdt->h.bound[0].h) kdt->h.bound[0].h = a[i].x;
+    if (a[i].x < kdt->h.bound[0].l) kdt->h.bound[0].l = a[i].x;
+    if (a[i].y > kdt->h.bound[1].h) kdt->h.bound[1].h = a[i].y;
+    if (a[i].y < kdt->h.bound[1].l) kdt->h.bound[1].l = a[i].y;
+  }
+
+  fwrite (&kdt->h, sizeof (Header), 1, kdt->nodes);
+  split (a, kdt->h.bound, kdt->h.len, 0, kdt);
+
+  return 0;
+}
+
+int kdt_create_from_file (Kdt * kdt, const char * name, int blksize,
+			  int fd,
+			  void (* progress) (float complete, void * data),
+			  void * data)
+{
+  KdtHeap h;
+  kdt_heap_create (&h, fd, LENMIN);
+  long len = 0;
+  KdtPoint p;
+  KdtRect bound = {{ 1e30, -1e30}, {1e30, -1e30}};
+  while (kdt_heap_get (&h, &p)) {
+    if (p.x > bound[0].h) bound[0].h = p.x;
+    if (p.x < bound[0].l) bound[0].l = p.x;
+    if (p.y > bound[1].h) bound[1].h = p.y;
+    if (p.y < bound[1].l) bound[1].l = p.y;
+    len++;
+  }
+  kdt_heap_free (&h);
+
+  int npmax = blksize/sizeof (KdtPoint);
+  if (kdt_init (kdt, name, npmax, len))
+    return -1;
+  kdt->h.bound[0].l = bound[0].l; kdt->h.bound[0].h = bound[0].h;
+  kdt->h.bound[1].l = bound[1].l; kdt->h.bound[1].h = bound[1].h;
+  
+  fwrite (&kdt->h, sizeof (Header), 1, kdt->nodes);
+  kdt->m = kdt->i = 0;
+  int m2 = 1;
+  while (len > LENMIN) {
+    kdt->m++;
+    len /= 2;
+    m2 *= 2;
+  }
+  kdt->m = kdt->m*m2;
+  kdt->progress = progress;
+  kdt->data = data;
+  splitfile (fd, kdt->h.bound, kdt->h.len, 0, kdt);
+
+  return 0;
+}
+
+int kdt_open (Kdt * kdt, const char * name)
+{
+  kdt->nodes  = open_ext (name, ".kdt", "r");
+  if (!kdt->nodes)
+    return -1;
+  
+  kdt->sums   = open_ext (name, ".sum", "r");
+  if (!kdt->sums)
+    return -1;
+
+  kdt->leaves = open_ext (name, ".pts", "r");
+  if (!kdt->leaves)
+    return -1;
+
+  if (fread (&kdt->h, sizeof (Header), 1, kdt->nodes) != 1)
+    return -1;
+
+  kdt->buffer = malloc (sizeof (KdtPoint)*kdt->h.np);
+
+  if (check_32_bits (kdt))
+    return -1;
+
+  return 0;
+}
+
+void kdt_destroy (Kdt * kdt)
+{
+  if (kdt->nodes)
+    fclose (kdt->nodes);
+  if (kdt->sums)
+    fclose (kdt->sums);
+  if (kdt->leaves)
+    fclose (kdt->leaves);
+  if (kdt->buffer)
+    free (kdt->buffer);
+  free (kdt);
+}
+
+static long query (const Kdt * kdt, const KdtRect rect, int index, long len)
+{
+  if (len > kdt->h.np) {
+    Node node;
+    long len1 = len/2;
+    if (fread (&node, sizeof (Node), 1, kdt->nodes) != 1)
+      return -1;
+    long pos = ftell (kdt->nodes), lpos = ftell (kdt->leaves);
+    if (pos < 0 || lpos < 0)
+      return -1;
+    long n = 0;
+    if (rect[index].l < node.split) {
+      long n1 = query (kdt, rect, (index + 1) % 2, len1);
+      if (n1 < 0)
+	return -1;
+      n += n1;
+    }
+    if (rect[index].h >= node.split) {
+      long snodes, ssums, sleaves;
+      kdt_sizes (kdt, len1, &snodes, &ssums, &sleaves);
+      if (fseek (kdt->nodes, pos + snodes, SEEK_SET))
+	return -1;
+      if (fseek (kdt->leaves, lpos + sleaves, SEEK_SET))
+	return -1;
+      long n1 = query (kdt, rect, (index + 1) % 2, len - len1);
+      if (n1 < 0)
+	return -1;
+      n += n1;
+    }
+    return n;
+  }
+  else if (len > 0) {
+    if (fread (kdt->buffer, sizeof (KdtPoint), len, kdt->leaves) != len)
+      return -1;
+    int i, n = 0;
+    for (i = 0; i < len; i++)
+      if (kdt->buffer[i].x >= rect[0].l && kdt->buffer[i].x <= rect[0].h && 
+	  kdt->buffer[i].y >= rect[1].l && kdt->buffer[i].y <= rect[1].h) {
+       	printf ("%.8f %.8f %g\n", kdt->buffer[i].x, kdt->buffer[i].y, kdt->buffer[i].z);
+	n++;
+      }
+    return n;
+  }
+  return 0;
+}
+
+long kdt_query (const Kdt * kdt, const KdtRect rect)
+{
+  rewind (kdt->nodes);
+  rewind (kdt->leaves);
+  Header h;
+  if (fread (&h, sizeof (Header), 1, kdt->nodes) != 1)
+    return -1;
+  if (rect[0].l > h.bound[0].h || rect[1].l > h.bound[1].h || 
+      rect[0].h < h.bound[0].l || rect[1].h < h.bound[1].l)
+    return 0;
+  return query (kdt, rect, 0, h.len);
+}
+
+typedef struct {
+  long np, sp, lp;
+} FilePointers;
+
+static long query_sum (const Kdt * kdt,
+		       KdtCheck includes, KdtCheck intersects, void * data, 
+		       KdtRect bound, int index, long len,
+		       FilePointers * f,
+		       const KdtRect rect, KdtSum * sum)
+{
+  if (len > kdt->h.np) {
+    Node node;
+    long len1 = len/2;
+    if (fseek (kdt->nodes, f->np, SEEK_SET))
+      return -1;
+    if (fread (&node, sizeof (Node), 1, kdt->nodes) != 1)
+      return -1;
+    f->np += sizeof (Node);
+#if DEBUG
+    fprintf (stderr, "read 1 node %ld\n", sizeof (Node));
+#endif
+
+    if ((* includes) (bound, data)) {
+      KdtSum s;
+      if (fseek (kdt->sums, f->sp, SEEK_SET))
+	return -1;
+      if (fread (&s, sizeof (KdtSum), 1, kdt->sums) != 1)
+	return -1;
+#if DEBUG
+      fprintf (stderr, "read 1 sum %ld index %d\n", sizeof (KdtSum), index);
+#endif
+      f->sp += sizeof (KdtSum);
+      sum_add_sum (rect, sum, bound, &s);
+      return len;
+    }
+    f->sp += sizeof (KdtSum);
+
+    long pos = f->np, lpos = f->lp, spos = f->sp;
+    long n = 0;
+
+    KdtRect bound1;
+    bound1[0].l = bound[0].l; bound1[0].h = bound[0].h;
+    bound1[1].l = bound[1].l; bound1[1].h = bound[1].h;
+    bound1[index].h = node.split;
+    if ((* intersects) (bound1, data)) {
+      long n1 = query_sum (kdt, includes, intersects, data, 
+			   bound1, (index + 1) % 2, len1, f, rect, sum);
+      if (n1 < 0)
+	return -1;
+      n += n1;
+    }
+
+    bound1[0].l = bound[0].l; bound1[0].h = bound[0].h;
+    bound1[1].l = bound[1].l; bound1[1].h = bound[1].h;
+    bound1[index].l = node.split;
+    if ((* intersects) (bound1, data)) {
+      long snodes, ssums, sleaves;
+      kdt_sizes (kdt, len1, &snodes, &ssums, &sleaves);
+      f->np = pos + snodes;
+      f->sp = spos + ssums;
+      f->lp = lpos + sleaves;
+      long n1 = query_sum (kdt, includes, intersects, data, 
+			   bound1, (index + 1) % 2, len - len1, f, rect, sum);
+      if (n1 < 0)
+	return -1;
+      n += n1;
+    }
+    return n;
+  }
+  else if (len > 0) {
+    if (fseek (kdt->leaves, f->lp, SEEK_SET))
+      return -1;
+    if (fread (kdt->buffer, sizeof (KdtPoint), len, kdt->leaves) != len)
+      return -1;
+#if DEBUG
+    fprintf (stderr, "read %ld leaves %ld\n", len, sizeof (KdtPoint));
+#endif
+    KdtRect boundp;
+    KdtPoint * a = kdt->buffer;
+    int i, n = 0;
+    for (i = 0; i < len; i++, a++) {
+      boundp[0].l = boundp[0].h = a->x;
+      boundp[1].l = boundp[1].h = a->y;
+      if ((* includes) (boundp, data)) {
+	sum_add_point (rect, sum, a);
+	n++;
+      }
+    }
+    return n;
+  }
+  return 0;
+}
+
+long kdt_query_sum (const Kdt * kdt, 
+		    KdtCheck includes, KdtCheck intersects, void * data, 
+		    const KdtRect rect, KdtSum * sum)
+{
+  rewind (kdt->nodes);
+  rewind (kdt->leaves);
+  Header h;
+  if (fread (&h, sizeof (Header), 1, kdt->nodes) != 1)
+    return -1;
+  FilePointers f;
+  f.np = sizeof (Header);
+  f.sp = f.lp = 0;
+  return query_sum (kdt, includes, intersects, data, h.bound, 0, h.len, &f, rect, sum);
+}
+
+void kdt_sum_init (KdtSum * s)
+{
+  memset (s, 0, sizeof (KdtSum));
+  s->Hmax = - 1e30;
+  s->Hmin =   1e30;
+}
diff --git a/modules/kdt/kdt.h b/modules/kdt/kdt.h
new file mode 100644
index 0000000..4152a49
--- /dev/null
+++ b/modules/kdt/kdt.h
@@ -0,0 +1,92 @@
+/* Gerris - The GNU Flow Solver
+ * Copyright (C) 2010 National Institute of Water and Atmospheric Research
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.  
+ */
+
+/* padding on 32 bits systems (to match automatic 64 bits padding) */
+
+#if defined (__LP64__) || defined (__64BIT__) || defined (_LP64) || (__WORDSIZE == 64)
+  #define PADDING_32_BITS
+#else
+  #define PADDING_32_BITS int padding
+#endif
+
+typedef struct {
+  double x, y, z;
+} KdtPoint;
+
+typedef struct {
+  float l, h;
+} KdtInterval;
+
+typedef KdtInterval KdtRect[2];
+
+typedef struct { /* needs to be identical to RSurfaceSum in rsurface.h */
+#if AVG_TERRAIN
+  double H0;
+  float Hmin, Hmax;
+  int n;
+#else
+  double m01, m02, m03;
+  double m11, m13;
+  double m22, m23, m33;
+  double m44, m55, m66, m77;
+  double m67, m76;
+  double H0, H1, H2, H3, H4;
+  double H5, H6;
+  float Hmin, Hmax;
+  int n;
+  PADDING_32_BITS;
+#endif
+} KdtSum;
+
+typedef struct _Kdt Kdt;
+typedef int (* KdtCheck) (const KdtRect rect, void * data);
+
+Kdt * kdt_new       (void);
+int  kdt_create     (Kdt * kdt,
+		     const char * name, 
+		     int blksize,
+		     KdtPoint * a, long len);
+int  kdt_create_from_file (Kdt * kdt, 
+			   const char * name, 
+			   int blksize,
+			   int fd,
+			   void (* progress) (float complete, void * data),
+			   void * data);
+int  kdt_open       (Kdt * kdt, const char * name);
+void kdt_destroy    (Kdt * kdt);
+long kdt_query      (const Kdt * kdt, const KdtRect rect);
+long kdt_query_sum  (const Kdt * kdt,
+		     KdtCheck includes, KdtCheck intersects, void * data,
+		     const KdtRect rect, KdtSum * sum);
+int  kdt_size       (const Kdt * kdt, long len);
+void kdt_sizes      (const Kdt * kdt, long len, 
+		     long * nodes, long * sums, long * leaves);
+void kdt_sum_init   (KdtSum * s);
+
+typedef struct {
+  KdtPoint * p;
+  long len, i, end;
+  int fd;
+} KdtHeap;
+
+void kdt_heap_create (KdtHeap * h, int fd, long len);
+int  kdt_heap_get    (KdtHeap * h, KdtPoint * p);
+void kdt_heap_put    (KdtHeap * h, KdtPoint * p);
+void kdt_heap_flush  (KdtHeap * h);
+void kdt_heap_free   (KdtHeap * h);
diff --git a/modules/kdt/kdtquery.c b/modules/kdt/kdtquery.c
new file mode 100644
index 0000000..c08aef7
--- /dev/null
+++ b/modules/kdt/kdtquery.c
@@ -0,0 +1,77 @@
+/* Gerris - The GNU Flow Solver
+ * Copyright (C) 2010 National Institute of Water and Atmospheric Research
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.  
+ */
+
+// #include <glib.h>
+#include <stdlib.h>
+#include <stdio.h>
+
+#include "kdt.h"
+
+static int intersects (const KdtRect rect, const KdtRect query)
+{
+  return (rect[0].l <= query[0].h && rect[1].l <= query[1].h &&
+	  rect[0].h >= query[0].l && rect[1].h >= query[1].l);
+}
+
+static int includes (const KdtRect rect, const KdtRect query)
+{
+  return (rect[0].h <= query[0].h && rect[1].h <= query[1].h &&
+	  rect[0].l >= query[0].l && rect[1].l >= query[1].l);
+}
+
+int main (int argc, char * argv[])
+{
+  if (argc != 2) {
+    fprintf (stderr, "Usage: %s basename\n", argv[0]);
+    return -1;
+  }
+
+  Kdt * kdt = kdt_new ();
+  if (kdt_open (kdt, argv[1])) {
+    fprintf (stderr, "%s: could not open `%s'\n", argv[0], argv[1]);
+    return -1;
+  }
+
+  KdtRect query;
+  int count = 0;
+  //  GTimer * t = g_timer_new ();
+  while (scanf ("%f %f %f %f", 
+		&query[0].l, &query[1].l, 
+		&query[0].h, &query[1].h) == 4) {
+#if 1
+    fprintf (stderr, "%ld\n", kdt_query (kdt, query));
+#else
+    KdtSum s;
+    kdt_sum_init (&s);
+    //    g_timer_start (t);
+    long n = kdt_query_sum (kdt, (KdtCheck) includes, (KdtCheck) intersects, query, query, &s);
+    //    g_timer_stop (t);
+    //    fprintf (stderr, "%d %g %g %g %g\n", n, s.H0, s.Hmax, s.Hmin, g_timer_elapsed (t, NULL));
+    printf ("%ld %g %g %g\n", n, s.H0, s.H1, s.H2);
+#endif
+    if (count > 0 && count % 1000 == 0)
+      fprintf (stderr, "\r%d", count);
+    count++;
+  }
+  if (count >= 1000)
+    fputc ('\n', stderr);
+
+  kdt_destroy (kdt);
+  return 0;
+}
diff --git a/modules/kdt/xyz2kdt.c b/modules/kdt/xyz2kdt.c
new file mode 100644
index 0000000..69e2ea0
--- /dev/null
+++ b/modules/kdt/xyz2kdt.c
@@ -0,0 +1,156 @@
+/* Gerris - The GNU Flow Solver
+ * Copyright (C) 2010 National Institute of Water and Atmospheric Research
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.  
+ */
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <assert.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/time.h>
+#include <fcntl.h>
+#include <unistd.h>
+
+#include "config.h"
+#ifdef HAVE_GETOPT_H
+#  include <getopt.h>
+#endif /* HAVE_GETOPT_H */
+
+#include "kdt.h"
+
+static int includes_true (KdtRect rect)
+{
+  return 1;
+}
+
+static void progress (float complete, void * data)
+{
+#if 0 /* this doesn't work yet */
+  struct timeval * start = data, now;
+  gettimeofday (&now, NULL);
+  double remaining = ((double) (now.tv_usec - start->tv_usec) + 
+		      1e6*(double) (now.tv_sec - start->tv_sec))*(1. - complete);
+  int hours = remaining/1e6/3600.;
+  int mins = remaining/1e6/60. - 60.*hours;
+  int secs = remaining/1e6 - 3600.*hours - 60.*mins;
+  fprintf (stderr, "\rxyz2kdt: %3.0f%% complete %02d:%02d:%02d remaining", 
+	   complete*100.,
+	   hours, mins, secs);
+#else
+  fprintf (stderr, "\rxyz2kdt: %3.0f%% complete    ", 
+	   complete*100.);
+#endif
+}
+
+int main (int argc, char * argv[])
+{
+  int c = 0, pagesize = 4096;
+  int verbose = 0;
+
+  /* parse options using getopt */
+  while (c != EOF) {
+#ifdef HAVE_GETOPT_LONG
+    static struct option long_options[] = {
+      {"pagesize", required_argument, NULL, 'p'},
+      {"verbose", no_argument, NULL, 'v'},
+      {"help", no_argument, NULL, 'h'},
+      { NULL }
+    };
+    int option_index = 0;
+    switch ((c = getopt_long (argc, argv, "p:hv",
+			      long_options, &option_index))) {
+#else /* not HAVE_GETOPT_LONG */
+    switch ((c = getopt (argc, argv, "p:hv"))) {
+#endif /* not HAVE_GETOPT_LONG */
+    case 'v': /* verbose */
+      verbose = 1;
+      break;
+    case 'p': /* pagesize */
+      pagesize = atoi (optarg);
+      break;
+    case 'h': /* help */
+      fprintf (stderr,
+	       "Usage: xyz2kdt [OPTION] BASENAME\n"
+	       "\n"
+	       "Converts the x, y and z coordinates on standard input to a\n"
+	       "2D-tree-indexed database suitable for use with the\n"
+	       "terrain module of Gerris.\n"
+	       "\n"
+	       "  -p N  --pagesize=N  sets the pagesize in bytes (default is 4096)\n"
+	       "  -v    --verbose     display progress bar\n"
+	       "  -h    --help        display this help and exit\n"
+	       "\n"
+	       "Report bugs to %s\n",
+	       "popinet at users.sf.net");
+      return 0; /* success */
+      break;
+    case '?': /* wrong options */
+      fprintf (stderr, "Try `xyz2kdt -h' for more information.\n");
+      return 1; /* failure */
+    }
+  }
+
+  if (optind >= argc) { /* missing BASENAME */
+    fprintf (stderr, 
+	     "xyz2kdt: missing BASENAME\n"
+	     "Try `xyz2kdt -h' for more information.\n");
+    return 1; /* failure */
+  }
+
+  char name[] = "XXXXXX";
+  int fd = mkstemp (name);
+  assert (fd >= 0);
+  assert (unlink (name) == 0);
+
+  if (verbose)
+    fprintf (stderr, "xyz2kdt: reading points...");
+  KdtHeap h;
+  kdt_heap_create (&h, fd, pagesize/sizeof (KdtPoint));
+  KdtPoint p;
+  while (scanf ("%lf %lf %lf", &p.x, &p.y, &p.z) == 3)
+    kdt_heap_put (&h, &p);
+  kdt_heap_flush (&h);
+  kdt_heap_free (&h);
+  lseek (fd, 0, SEEK_SET);
+
+  struct timeval start;
+  gettimeofday (&start, NULL);
+  Kdt * kdt = kdt_new ();
+  kdt_create_from_file (kdt, argv[optind], pagesize, fd,
+			verbose ? progress : NULL, &start);
+  kdt_destroy (kdt);
+  close (fd);
+
+  if (verbose) {
+    Kdt * kdt = kdt_new ();
+    KdtRect rect = {{-0.5,-0.5},{0.5,0.5}};
+    KdtSum sum;
+
+    kdt_sum_init (&sum);
+    assert (!kdt_open (kdt, argv[optind]));
+    long n = kdt_query_sum (kdt, 
+			    (KdtCheck) includes_true, (KdtCheck) includes_true, NULL,
+			    rect, &sum);
+    fprintf (stderr,
+	     "\n%ld points Height min: %g average: %g max: %g\n", 
+	     n, sum.Hmin, sum.H0/sum.n, sum.Hmax);
+    kdt_destroy (kdt);
+  }
+
+  return 0;
+}
diff --git a/modules/lis.mod b/modules/lis.mod
new file mode 100644
index 0000000..d506d65
--- /dev/null
+++ b/modules/lis.mod
@@ -0,0 +1,184 @@
+/* Gerris - The GNU Flow Solver                       (-*-C-*-)
+ * Copyright (C) 2010 CNRS
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.  
+ */
+
+#include <lis.h>
+
+#include "variable.h"
+#include "poisson.h"
+
+static GString * options = NULL;
+
+static void solve_poisson_problem_using_lis (GfsDomain * domain,
+					     GfsLinearProblem * lp,
+					     GfsMultilevelParams * par)
+{
+  /* fixme: doesn't work in parallel yet */
+  g_assert (lp->istart == 0);
+
+  LIS_MATRIX A;
+  lis_matrix_create (LIS_COMM_WORLD, &A);
+  lis_matrix_set_size (A, 0, lp->rhs->len);
+  int i;
+  for (i = 0; i < lp->rhs->len; i++) {
+    GfsStencil * stencil = g_ptr_array_index (lp->LP, i);
+    int row = g_array_index (stencil->id, int, 0), j;
+    for (j = 0; j < stencil->id->len; j++)
+      lis_matrix_set_value (LIS_INS_VALUE, 
+			    row, 
+			    g_array_index (stencil->id, int, j),
+			    g_array_index (stencil->coeff, double, j), 
+			    A);
+  }
+  lis_matrix_set_type (A, LIS_MATRIX_CRS);
+  lis_matrix_assemble (A);
+
+  LIS_VECTOR b, x;
+  lis_vector_duplicate (A, &b);
+  lis_vector_duplicate (A, &x);
+  for (i = 0; i < lp->rhs->len; i++) {
+    lis_vector_set_value (LIS_INS_VALUE, i, g_array_index (lp->rhs, double, i), b);
+    lis_vector_set_value (LIS_INS_VALUE, i, g_array_index (lp->lhs, double, i), x);
+  }
+
+  LIS_SOLVER solver;
+  lis_solver_create (&solver);
+
+  gchar * opt = g_strdup_printf ("%s-maxiter %d -tol %g", 
+				 options->str, par->nitermax, 
+				 MIN (par->tolerance/par->residual.infty, 0.99));
+  lis_solver_set_option (opt, solver);
+  g_free (opt);
+
+  lis_solve (A, b, x, solver);
+  int iter;
+  lis_solver_get_iters (solver, &iter);
+  par->niter = iter;
+
+  lis_vector_get_values (x, 0, lp->lhs->len, (double *) lp->lhs->data);
+
+  lis_solver_destroy (solver);
+  lis_matrix_destroy (A);
+  lis_vector_destroy (b);
+  lis_vector_destroy (x);
+}
+
+typedef struct {
+  GfsLinearProblem * lp;
+  GfsVariable * lhs;
+} CopyParams;
+
+static void copy_poisson_solution (FttCell * cell, CopyParams * p)
+{
+   GFS_VALUE (cell, p->lhs) =
+     g_array_index (p->lp->lhs, gdouble, (int) GFS_VALUE (cell, p->lp->id) - p->lp->istart);
+}
+
+static void correct (FttCell * cell, gpointer * data)
+{
+  GfsVariable * u = data[0];
+  GfsVariable * dp = data[1];
+  GFS_VALUE (cell, u) += GFS_VALUE (cell, dp);
+}
+
+static void lis_poisson_solve (GfsDomain * domain,
+			       GfsMultilevelParams * par,
+			       GfsVariable * lhs,
+			       GfsVariable * rhs,
+			       GfsVariable * res,
+			       GfsVariable * dia,
+			       gdouble dt)
+{
+  /* calculates the initial residual and its norm */
+  gfs_residual (domain, par->dimension, FTT_TRAVERSE_LEAFS, -1, lhs, rhs, dia, res);
+  par->residual_before = par->residual = 
+    gfs_domain_norm_residual (domain, FTT_TRAVERSE_LEAFS, -1, dt, res);
+
+  if (par->nitermax > 0) {
+    GfsVariable * dp = gfs_temporary_variable (domain);
+    gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
+			      (FttCellTraverseFunc) gfs_cell_reset, dp);
+    GfsLinearProblem * lp = gfs_get_poisson_problem (domain, res, dp, dia, -1, lhs);
+ 
+    solve_poisson_problem_using_lis (domain, lp, par);
+
+    CopyParams p = { lp, dp };
+    gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
+    			      (FttCellTraverseFunc) copy_poisson_solution, &p);
+    gfs_linear_problem_destroy (lp);
+
+    /* correct on leaf cells */
+    gpointer data[2];
+    data[0] = lhs;
+    data[1] = dp;
+    gfs_traverse_and_bc (domain, FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
+			 (FttCellTraverseFunc) correct, data,
+			 lhs, lhs);
+    gts_object_destroy (GTS_OBJECT (dp));
+
+    /* compute new residual on leaf cells */
+    gfs_residual (domain, par->dimension, FTT_TRAVERSE_LEAFS, -1, lhs, rhs, dia, res);
+    par->residual = gfs_domain_norm_residual (domain, FTT_TRAVERSE_LEAFS, -1, dt, res);
+  }
+}
+
+/* Initialize module */
+void          gfs_module_read     (GtsFile * fp, GfsSimulation * sim);
+void          gfs_module_write    (FILE * fp);
+
+/* only define gfs_module_name for "official" modules (i.e. those installed in
+   GFS_MODULES_DIR) */
+const gchar gfs_module_name[] = "lis";
+const gchar * g_module_check_init (void);
+
+const gchar * g_module_check_init (void)
+{
+  return NULL;
+}
+
+void gfs_module_read (GtsFile * fp, GfsSimulation * sim)
+{
+  g_return_if_fail (fp != NULL);
+
+  /* initialise lis */
+  int argc = 0;
+  char ** argv = NULL;
+  lis_initialize (&argc, &argv);
+  
+  /* initialise the poisson cycle hook */
+  sim->approx_projection_params.poisson_solve = lis_poisson_solve;
+  sim->projection_params.poisson_solve = lis_poisson_solve;
+  
+  if (fp->type != GTS_STRING)
+    options = g_string_new ("-i bicgstab");
+  else {
+    options = g_string_new ("");
+    while (fp->type == GTS_STRING) {
+      g_string_append (options, fp->token->str);
+      g_string_append_c (options, ' ');
+      gts_file_next_token (fp);
+    }
+  }
+}
+
+void gfs_module_write (FILE * fp)
+{
+  g_return_if_fail (fp != NULL);
+
+  fprintf (fp, " %s", options->str);
+}
diff --git a/modules/map.mod b/modules/map.mod
index 3947296..05783bc 100644
--- a/modules/map.mod
+++ b/modules/map.mod
@@ -127,6 +127,26 @@ static void projection_inverse (GfsMap * map, const FttVector * src, FttVector *
   dest->z = src->z;
 }
 
+static void projection_inverse_cell (GfsMap * map, const FttVector * src, FttVector * dest)
+{
+  gint i;
+  FttVector o = { 0., 0., 0. };
+  for (i = 0; i < 4; i++) {
+    o.x += src[i].x;
+    o.y += src[i].y;
+    o.z += src[i].z;
+    projection_inverse (map, &(src[i]), &(dest[i]));
+  }
+  o.x /= 4.; o.y /= 4.; o.z /= 4.;
+  projection_inverse (map, &o, &o);
+  /* make sure we do not cross periodic longitude boundary */
+  for (i = 0; i < 4; i++)
+    if (dest[i].x > o.x + 180.)
+      dest[i].x -= 360.;
+    else if (dest[i].x < o.x - 180.)
+      dest[i].x += 360.;
+}
+
 static void gfs_map_projection_class_init (GfsMapClass * klass)
 {
   GTS_OBJECT_CLASS (klass)->read = gfs_map_projection_read;
@@ -143,6 +163,7 @@ static void gfs_map_projection_init (GfsMapProjection * object)
   object->pj = NULL;
   GFS_MAP (object)->transform = projection_transform;
   GFS_MAP (object)->inverse = projection_inverse;
+  GFS_MAP (object)->inverse_cell = projection_inverse_cell;
 }
 
 GfsMapClass * gfs_map_projection_class (void)
diff --git a/modules/ode.mod b/modules/ode.mod
new file mode 100644
index 0000000..6006e7e
--- /dev/null
+++ b/modules/ode.mod
@@ -0,0 +1,233 @@
+/* Gerris - The GNU Flow Solver                       (-*-C-*-)
+ * Copyright (C) 2009 National Institute of Water and Atmospheric Research
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.  
+ */
+
+#include <ode/ode.h>
+#include "moving.h"
+
+static dWorldID world = 0;
+
+/* GfsSurfaceBcODE: Header */
+
+typedef struct _GfsSurfaceBcODE         GfsSurfaceBcODE;
+
+struct _GfsSurfaceBcODE {
+  /*< private >*/
+  GfsSurfaceGenericBc parent;
+
+  /*< public >*/
+  dBodyID body;
+  FttComponent c;
+};
+
+#define GFS_SURFACE_BC_ODE(obj)            GTS_OBJECT_CAST (obj,\
+					         GfsSurfaceBcODE,\
+					         gfs_surface_bc_ode_class ())
+#define GFS_IS_SURFACE_BC_ODE(obj)         (gts_object_is_from_class (obj,\
+						 gfs_surface_bc_ode_class ()))
+
+static GfsSurfaceGenericBcClass * gfs_surface_bc_ode_class (void);
+
+/* GfsSurfaceBcODE: Object */
+
+static void surface_bc_ode_read (GtsObject ** o, GtsFile * fp)
+{
+  /* defined only through SolidMovingODE */
+}
+
+static void surface_bc_ode_write (GtsObject * o, FILE * fp)
+{
+  /* defined only through SolidMovingODE */
+}
+
+static void surface_bc_ode_bc (FttCell * cell, GfsSurfaceGenericBc * b)
+{
+  GfsSurfaceBcODE * bc = GFS_SURFACE_BC_ODE (b);
+  FttVector * p = &GFS_STATE (cell)->solid->ca;
+  dVector3 v;
+  cell->flags |= GFS_FLAG_DIRICHLET;
+  dBodyGetPointVel (bc->body, p->x, p->y, p->z, v);
+  GFS_STATE (cell)->solid->fv = v[bc->c];
+}
+
+static void surface_bc_ode_class_init (GfsSurfaceGenericBcClass * klass)
+{
+  GTS_OBJECT_CLASS (klass)->read = surface_bc_ode_read;
+  GTS_OBJECT_CLASS (klass)->write = surface_bc_ode_write;
+  klass->bc = surface_bc_ode_bc;
+}
+
+static GfsSurfaceGenericBcClass * gfs_surface_bc_ode_class (void)
+{
+  static GfsSurfaceGenericBcClass * klass = NULL;
+
+  if (klass == NULL) {
+    GtsObjectClassInfo gfs_surface_bc_info = {
+      "GfsSurfaceBcODE",
+      sizeof (GfsSurfaceBcODE),
+      sizeof (GfsSurfaceGenericBcClass),
+      (GtsObjectClassInitFunc) surface_bc_ode_class_init,
+      (GtsObjectInitFunc) NULL,
+      (GtsArgSetFunc) NULL,
+      (GtsArgGetFunc) NULL
+    };
+    klass = gts_object_class_new (GTS_OBJECT_CLASS (gfs_surface_generic_bc_class ()),
+				  &gfs_surface_bc_info);
+  }
+
+  return klass;
+}
+
+/* GfsSolidMovingODE: Header */
+
+typedef struct _GfsSolidMovingODE         GfsSolidMovingODE;
+
+struct _GfsSolidMovingODE {
+  /*< private >*/
+  GfsSolidMoving parent;
+  dBodyID body;
+
+  /*< public >*/  
+};
+
+static GfsEventClass * gfs_solid_moving_ode_class (void);
+
+#define GFS_SOLID_MOVING_ODE(obj)            GTS_OBJECT_CAST (obj,\
+					         GfsSolidMovingODE,\
+					         gfs_solid_moving_ode_class ())
+#define GFS_IS_SOLID_MOVING_ODE(obj)         (gts_object_is_from_class (obj,\
+						 gfs_solid_moving_ode_class ()))
+
+/* GfsSolidMovingODE: Object */
+
+static void solid_moving_ode_destroy (GtsObject * object)
+{
+  dBodyDestroy (GFS_SOLID_MOVING_ODE (object)->body);
+
+  (* GTS_OBJECT_CLASS (gfs_solid_moving_ode_class ())->parent_class->destroy) (object);
+}
+
+static void solid_moving_ode_read (GtsObject ** o, GtsFile * fp)
+{
+  GfsSolidMovingODE * solid = GFS_SOLID_MOVING_ODE (*o);
+  
+  (* GTS_OBJECT_CLASS (gfs_solid_moving_ode_class ())->parent_class->read) (o, fp);
+  if (fp->type == GTS_ERROR)
+    return;
+
+  GfsVariable ** v = gfs_domain_velocity (GFS_DOMAIN (gfs_object_simulation (solid)));
+  FttComponent c;
+  for (c = 0; c < FTT_DIMENSION; c++)
+    if (v[c]->surface_bc) {
+      gts_file_error (fp, "variable `%s' already has a surface boundary condition", v[c]->name);
+      return;
+    }
+    else {
+      GfsSurfaceGenericBc * bc = 
+	GFS_SURFACE_GENERIC_BC (gts_object_new (GTS_OBJECT_CLASS (gfs_surface_bc_ode_class ())));
+      bc->v = v[c];
+      bc->v->surface_bc = bc;
+      GFS_SURFACE_BC_ODE (bc)->body = solid->body;
+      GFS_SURFACE_BC_ODE (bc)->c = c;
+    }
+
+  if (fp->type == '{') {
+    gdouble vx = 0., vy = 0., vz = 0.;
+    gdouble gx = 0., gy = 0., gz = 0.;
+    GtsFileVariable var[] = {
+      {GTS_DOUBLE, "vx", TRUE, &vx},
+      {GTS_DOUBLE, "vy", TRUE, &vy},
+      {GTS_DOUBLE, "vz", TRUE, &vz},
+      {GTS_DOUBLE, "gx", TRUE, &gx},
+      {GTS_DOUBLE, "gy", TRUE, &gy},
+      {GTS_DOUBLE, "gz", TRUE, &gz},
+      {GTS_NONE}
+    };
+    gts_file_assign_variables (fp, var);
+    if (fp->type == GTS_ERROR)
+      return;
+    dBodySetLinearVel (solid->body, vx, vy, vz);
+    dWorldSetGravity (world, gx, gy, gz);
+  }
+}
+
+static gboolean solid_moving_ode_event (GfsEvent * event, GfsSimulation * sim)
+{
+  if ((* GFS_EVENT_CLASS (GTS_OBJECT_CLASS (gfs_solid_moving_ode_class ())->parent_class)->event) 
+      (event, sim)) {
+    FttVector pf, vf, pm, vm;
+    dBodyID body = GFS_SOLID_MOVING_ODE (event)->body;
+    gfs_domain_solid_force (GFS_DOMAIN (sim), &pf, &vf, &pm, &vm, NULL);
+    dBodyAddForce (body, pf.x + vf.x, pf.y + vf.y, pf.z + vf.z);
+    dBodyAddTorque (body, pm.x + vm.x, pm.y + vm.y, pm.z + vm.z);
+    dWorldStep (world, sim->advection_params.dt);
+    return TRUE;
+  }
+  return FALSE;
+}
+
+static void solid_moving_ode_class_init (GfsEventClass * klass)
+{
+  GTS_OBJECT_CLASS (klass)->destroy = solid_moving_ode_destroy;
+  GTS_OBJECT_CLASS (klass)->read = solid_moving_ode_read;
+  klass->event = solid_moving_ode_event;
+}
+
+static void solid_moving_ode_init (GfsSolidMovingODE * solid)
+{
+  solid->body = dBodyCreate (world);
+  dMass mass;
+  dMassSetSphereTotal (&mass, 1., 0.25*0.3);
+  dBodySetMass (solid->body, &mass);
+}
+
+static GfsEventClass * gfs_solid_moving_ode_class (void)
+{
+  static GfsEventClass * klass = NULL;
+
+  if (klass == NULL) {
+    GtsObjectClassInfo solid_moving_ode_info = {
+      "GfsSolidMovingODE",
+      sizeof (GfsSolidMovingODE),
+      sizeof (GfsEventClass),
+      (GtsObjectClassInitFunc) solid_moving_ode_class_init,
+      (GtsObjectInitFunc) solid_moving_ode_init,
+      (GtsArgSetFunc) NULL,
+      (GtsArgGetFunc) NULL
+    };
+    klass = gts_object_class_new (GTS_OBJECT_CLASS (gfs_solid_moving_class ()), 
+				  &solid_moving_ode_info);
+  }
+
+  return klass;
+}
+
+/* Initialize module */
+
+/* only define gfs_module_name for "official" modules (i.e. those installed in
+   GFS_MODULES_DIR) */
+const gchar gfs_module_name[] = "ode";
+const gchar * g_module_check_init (void);
+
+const gchar * g_module_check_init (void)
+{
+  dInitODE ();
+  world = dWorldCreate ();
+  gfs_solid_moving_ode_class ();
+  return NULL;
+}
diff --git a/modules/okada.mod b/modules/okada.mod
new file mode 100644
index 0000000..a0371fa
--- /dev/null
+++ b/modules/okada.mod
@@ -0,0 +1,300 @@
+/* Gerris - The GNU Flow Solver                       (-*-C-*-)
+ * Copyright (C) 2009 National Institute of Water and Atmospheric Research
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.  
+ */
+
+#include "event.h"
+#include "solid.h"
+
+/* Implementation of the formulae of Okada, 1985, "Surface deformation
+   due to shear and tensile faults in a half-space", Bulletin of the
+   Seismological Society of America, 75:4, 1135-1154, */
+
+/* formulae (25)-(30) */
+static void rectangular_source (const double U[3], double cosd, double sind,
+				double mulambda, double d,
+				double psi, double eta, double q,
+				double u[3])
+{
+  double R = sqrt (psi*psi + eta*eta + q*q);
+  double X = sqrt (psi*psi + q*q);
+  double dtilde = eta*sind - q*cosd;
+  double ytilde = eta*cosd + q*sind;
+  double atanp = fabs (q) > 1e-6 ? atan (psi*eta/(q*R)) : 0.;
+
+  mulambda = mulambda/(1. + mulambda);
+  double logReta = R + eta > 1e-6 ? log (R + eta) : - log (R - eta);
+  double Reta = fabs (R + eta) > 1e-6 ? R + eta : 1e30;
+  double I1, I2, I3, I4, I5;
+  if (fabs (cosd) > 1e-6) {
+    /* formula (28) */
+    I5 = fabs (psi) < 1e-6 ? 0. :
+      mulambda*2./cosd*atan ((eta*(X + q*cosd) + X*(R + X)*sind)/(psi*(R + X)*cosd));
+    I4 = mulambda/cosd*(log (R + dtilde) - sind*logReta);
+    I3 = mulambda*(1./cosd*ytilde/(R + dtilde) - logReta) + sind/cosd*I4;
+    I2 = mulambda*(- logReta) - I3;
+    I1 = mulambda*(-1./cosd*psi/(R + dtilde)) - sind/cosd*I5;
+  }
+  else {
+    /* formula (29) */
+    double R1 = R + dtilde;
+    I1 = - mulambda/2.*psi*q/(R1*R1);
+    I3 = mulambda/2.*(eta/R1 + ytilde*q/(R1*R1) - logReta);
+    I2 = mulambda*(- logReta) - I3;
+    I4 = - mulambda*q/R1;
+    I5 = - mulambda*psi*sind/R1;
+  }
+    
+  /* strike-slip, formula (25) */  
+  if (U[0] != 0.) {
+    double U1pi = U[0]/(2.*M_PI);
+    u[0] -= U1pi*(psi*q/(R*Reta) + atanp + I1*sind);
+    u[1] -= U1pi*(ytilde*q/(R*Reta) + q*cosd/Reta + I2*sind);
+    u[2] -= U1pi*(dtilde*q/(R*Reta) + q*sind/Reta + I4*sind);
+  }
+
+  /* dip-slip, formula (26) */  
+  if (U[1] != 0.) {
+    double U2pi = U[1]/(2.*M_PI);
+    u[0] -= U2pi*(q/R - I3*sind*cosd);
+    u[1] -= U2pi*(ytilde*q/(R*(R + psi)) + cosd*atanp - I1*sind*cosd);
+    u[2] -= U2pi*(dtilde*q/(R*(R + psi)) + sind*atanp - I5*sind*cosd);
+  }
+
+  /* tensile, formula (27) */  
+  if (U[2] != 0.) {
+    double U3pi = U[2]/(2.*M_PI);
+    u[0] += U3pi*(q*q/(R*Reta) - I3*sind*sind);
+    u[1] += U3pi*(-dtilde*q/(R*(R + psi)) - sind*(psi*q/(R*Reta) - atanp) - I1*sind*sind);
+    u[2] += U3pi*(ytilde*q/(R*(R + psi)) + cosd*(psi*q/(R*Reta) - atanp) - I5*sind*sind);
+  }
+}
+
+/* formula (24) */
+static void okada_rectangular_source (const double U[3], 
+				      double L, double W, double d, double delta, double mulambda,
+				      double x, double y,
+				      double u[3])
+{
+  double cosd = cos (delta), sind = sin (delta);
+  double p = y*cosd + d*sind;
+  double q = y*sind - d*cosd;
+
+  u[0] = u[1] = u[2] = 0.;
+  rectangular_source (U, cosd, sind, mulambda, d,
+		      x, p, q,
+		      u);
+  rectangular_source (U, cosd, sind, mulambda, d,
+		      x - L, p - W, q,
+		      u);
+
+  double u1[3] = {0., 0., 0.};
+  rectangular_source (U, cosd, sind, mulambda, d,
+		      x, p - W, q,
+		      u1);
+  rectangular_source (U, cosd, sind, mulambda, d,
+		      x - L, p, q,
+		      u1);
+  u[0] -= u1[0];
+  u[1] -= u1[1];
+  u[2] -= u1[2];
+}
+
+/* GfsInitOkada: Header */
+
+typedef struct _GfsInitOkada         GfsInitOkada;
+
+struct _GfsInitOkada {
+  /*< private >*/
+  GfsGenericInit parent;
+  double sina, cosa;
+
+  /*< public >*/
+  GfsVariable * v;
+  gdouble x, y, depth;
+  gdouble strike, dip;
+  gdouble mu, lambda;
+  gdouble length, width, U[3];
+};
+
+#define GFS_INIT_OKADA(obj)            GTS_OBJECT_CAST (obj,\
+					         GfsInitOkada,\
+					         gfs_init_okada_class ())
+#define GFS_IS_INIT_OKADA(obj)         (gts_object_is_from_class (obj,	\
+						 gfs_init_okada_class ()))
+
+static GfsEventClass * gfs_init_okada_class  (void);
+
+/* GfsInitOkada: Object */
+
+static void gfs_init_okada_read (GtsObject ** o, GtsFile * fp)
+{
+  (* GTS_OBJECT_CLASS (gfs_init_okada_class ())->parent_class->read) (o, fp);
+  if (fp->type == GTS_ERROR)
+    return;
+
+  if (fp->type != GTS_STRING) {
+    gts_file_error (fp, "expecting a variable name");
+    return;
+  }
+  GfsInitOkada * okada = GFS_INIT_OKADA (*o);
+  GfsDomain * domain = GFS_DOMAIN (gfs_object_simulation (*o));
+  if (!(okada->v = gfs_domain_get_or_add_variable (domain, fp->token->str, NULL))) {
+    gts_file_error (fp, "`%s' is a reserved keyword", fp->token->str);
+    return;
+  }
+  gts_file_next_token (fp);
+
+  gdouble U = 0., rake = 90.;
+  GtsFileVariable var[] = {
+    {GTS_DOUBLE, "x",      TRUE, &okada->x},      /* 0 */
+    {GTS_DOUBLE, "y",      TRUE, &okada->y},      /* 1 */
+    {GTS_DOUBLE, "depth",  TRUE, &okada->depth},  /* 2 */
+    {GTS_DOUBLE, "strike", TRUE, &okada->strike}, /* 3 */
+    {GTS_DOUBLE, "dip",    TRUE, &okada->dip},    /* 4 */
+    {GTS_DOUBLE, "rake",   TRUE, &rake},          /* 5 */
+    {GTS_DOUBLE, "mu",     TRUE, &okada->mu},     /* 6 */
+    {GTS_DOUBLE, "lambda", TRUE, &okada->lambda}, /* 7 */
+    {GTS_DOUBLE, "length", TRUE, &okada->length}, /* 8 */
+    {GTS_DOUBLE, "width",  TRUE, &okada->width},  /* 9 */
+    {GTS_DOUBLE, "U1",     TRUE, &okada->U[0]},   /* 10 */
+    {GTS_DOUBLE, "U2",     TRUE, &okada->U[1]},   /* 11 */
+    {GTS_DOUBLE, "U3",     TRUE, &okada->U[2]},   /* 12 */ 
+    {GTS_DOUBLE, "U",      TRUE, &U},             /* 13 */ 
+    {GTS_NONE}
+  };
+  gts_file_assign_variables (fp, var);
+  if (fp->type == GTS_ERROR)
+    return;
+
+  if (var[5].set) {
+    if (var[10].set || var[11].set) {
+      gts_file_error (fp, "set rake and U or U1 and U2 (not both)");
+      return;
+    }
+    okada->U[0] = U*cos (rake*M_PI/180.);
+    okada->U[1] = U*sin (rake*M_PI/180.);
+  }
+
+  okada->sina = sin ((90. - okada->strike)*M_PI/180.);
+  okada->cosa = cos ((90. - okada->strike)*M_PI/180.);
+}
+
+static void gfs_init_okada_write (GtsObject * o, FILE * fp)
+{
+  (* GTS_OBJECT_CLASS (gfs_init_okada_class ())->parent_class->write) (o, fp);
+  GfsInitOkada * okada = GFS_INIT_OKADA (o);
+  fprintf (fp, " %s {\n", okada->v->name);
+  fprintf (fp, 
+	   "  x = %g y = %g depth = %g\n"
+	   "  strike = %g dip = %g\n"
+	   "  length = %g width = %g\n"
+	   "  U1 = %g U2 = %g U3 = %g\n"
+	   "  mu = %g lambda = %g\n"
+	   "}",
+	   okada->x, okada->y, okada->depth,
+	   okada->strike, okada->dip,
+	   okada->length, okada->width, 
+	   okada->U[0],	okada->U[1], okada->U[2],
+	   okada->mu, okada->lambda);
+}
+
+static void init_okada (FttCell * cell, GfsInitOkada * okada)
+{
+  FttVector p, o;
+  gfs_cell_cm (cell, &p);
+  GfsSimulation * sim = gfs_object_simulation (okada);
+  o.x = okada->x; o.y = okada->y;
+  gfs_simulation_map (sim, &o);
+  gdouble L = sim->physical_params.L;
+  p.x = (p.x - o.x)*L; p.y = (p.y - o.y)*L;
+  FttVector q;
+  q.x =   okada->cosa*p.x + okada->sina*p.y;
+  q.y = - okada->sina*p.x + okada->cosa*p.y;
+  double u[3];
+  double sind = sin (okada->dip*M_PI/180.);
+  /* depth of the bottom edge */
+  double depth = sind > 0. ? okada->depth + okada->width*sind : okada->depth;
+  /* shift origin to the centroid */
+  q.x += okada->length/2.;
+  q.y += okada->width/2.*cos (okada->dip*M_PI/180.);
+  okada_rectangular_source (okada->U, okada->length, okada->width, depth, 
+			    okada->dip*M_PI/180.,
+			    okada->mu/okada->lambda,
+			    q.x, q.y,
+			    u);
+  GFS_VALUE (cell, okada->v) += u[2];
+}
+
+static gboolean gfs_init_okada_event (GfsEvent * event, 
+				      GfsSimulation * sim)
+{
+  if ((* GFS_EVENT_CLASS (GTS_OBJECT_CLASS (gfs_init_okada_class ())->parent_class)->event) 
+      (event, sim)) {
+    gfs_domain_cell_traverse (GFS_DOMAIN (sim), 
+			      FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
+			      (FttCellTraverseFunc) init_okada, event);
+    return TRUE;
+  }
+  return FALSE;
+}
+
+static void gfs_init_okada_class_init (GfsEventClass * klass)
+{
+  GTS_OBJECT_CLASS (klass)->read = gfs_init_okada_read;
+  GTS_OBJECT_CLASS (klass)->write = gfs_init_okada_write;
+  klass->event = gfs_init_okada_event;
+}
+
+static void gfs_init_okada_init (GfsInitOkada * okada)
+{
+  okada->mu = okada->lambda = 1.;
+}
+
+static GfsEventClass * gfs_init_okada_class (void)
+{
+  static GfsEventClass * klass = NULL;
+
+  if (klass == NULL) {
+    GtsObjectClassInfo gfs_init_okada_info = {
+      "GfsInitOkada",
+      sizeof (GfsInitOkada),
+      sizeof (GfsEventClass),
+      (GtsObjectClassInitFunc) gfs_init_okada_class_init,
+      (GtsObjectInitFunc) gfs_init_okada_init,
+      (GtsArgSetFunc) NULL,
+      (GtsArgGetFunc) NULL
+    };
+    klass = gts_object_class_new (GTS_OBJECT_CLASS (gfs_generic_init_class ()),
+				  &gfs_init_okada_info);
+  }
+
+  return klass;
+}
+
+/* Initialize module */
+
+/* only define gfs_module_name for "official" modules (i.e. those installed in
+   GFS_MODULES_DIR) */
+const gchar gfs_module_name[] = "okada";
+const gchar * g_module_check_init (void);
+
+const gchar * g_module_check_init (void)
+{
+  gfs_init_okada_class ();
+  return NULL;
+}
diff --git a/modules/particulates.h b/modules/particulates.h
new file mode 100644
index 0000000..3c6d4bb
--- /dev/null
+++ b/modules/particulates.h
@@ -0,0 +1,186 @@
+/* Gerris - The GNU Flow Solver			(-*-C-*-)
+ * Copyright (C) 2009 National Institute of Water and Atmospheric Research
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.  
+ */
+
+#include "particle.h"
+
+/* GfsParticulate: Header */
+
+typedef struct _GfsParticulate GfsParticulate;
+
+struct _GfsParticulate {
+  GfsParticle parent;
+  FttVector vel;
+  gdouble mass, volume;
+  FttVector force;
+  GtsSListContainer * forces;
+};
+
+#define GFS_PARTICULATE(obj)            GTS_OBJECT_CAST (obj,		\
+							 GfsParticulate, gfs_particulate_class ())
+#define GFS_IS_PARTICULATE(obj)         (gts_object_is_from_class (obj, gfs_particulate_class ()))
+
+GfsEventClass * gfs_particulate_class  (void);
+
+/* GfsParticleList: Header */
+
+typedef struct _GfsParticleList GfsParticleList;
+
+struct _GfsParticleList {
+  GfsEventList parent;
+  gint idlast;
+  GtsSListContainer * forces;
+};
+
+#define GFS_PARTICLE_LIST(obj)            GTS_OBJECT_CAST (obj,		\
+							   GfsParticleList, \
+							   gfs_particle_list_class ())
+
+#define GFS_IS_PARTICLE_LIST(obj)         (gts_object_is_from_class (obj, \
+								     gfs_particle_list_class ()))
+
+GfsEventClass * gfs_particle_list_class  (void);
+
+/* GfsParticleForce: header */
+
+typedef struct _GfsParticleForce GfsParticleForce;
+
+struct _GfsParticleForce{
+  GtsSListContainee parent;
+  FttVector (* force) (GfsParticle *p, GfsParticleForce *force);
+};
+
+#define GFS_PARTICLE_FORCE(obj)            GTS_OBJECT_CAST (obj,		\
+							GfsParticleForce, \
+							gfs_particle_force_class ())
+#define GFS_IS_PARTICLE_FORCE(obj)         (gts_object_is_from_class (obj, \
+								      gfs_particle_force_class ()))
+
+GtsSListContaineeClass * gfs_particle_force_class  (void);
+
+/* GfsForceCoeff: header */
+
+typedef struct _GfsForceCoeff GfsForceCoeff;
+
+struct _GfsForceCoeff{
+  GfsParticleForce parent;
+  GfsFunction * coefficient;
+  GfsVariable *re_p, *u_rel, *v_rel, *w_rel, *pdia;
+  GfsParticulate *p;
+};
+
+#define FORCE_COEFF(obj)            GTS_OBJECT_CAST (obj,		\
+						    GfsForceCoeff,		\
+						    gfs_force_coeff_class ())
+#define GFS_IS_FORCE_COEFF(obj)         (gts_object_is_from_class (obj,	\
+								  gfs_force_coeff_class ()))
+GtsSListContaineeClass * gfs_force_coeff_class  (void);
+
+/* GfsForceLift: header */
+
+#define GFS_IS_FORCE_LIFT(obj)         (gts_object_is_from_class (obj,	\
+								  gfs_force_lift_class ()))
+GtsSListContaineeClass * gfs_force_lift_class  (void);
+
+/* GfsForceDrag: header */
+
+#define GFS_IS_FORCE_DRAG(obj)         (gts_object_is_from_class (obj,	\
+								  gfs_force_drag_class ()))
+GtsSListContaineeClass * gfs_force_drag_class  (void);
+
+/* GfsForceBuoy: header */
+
+#define GFS_IS_FORCE_BUOY(obj)         (gts_object_is_from_class (obj,	\
+								  gfs_force_buoy_class ()))
+GtsSListContaineeClass * gfs_force_buoy_class  (void);
+
+/* GfsDropletToParticle: header */
+
+typedef struct _GfsDropletToParticle GfsDropletToParticle;
+
+struct _GfsDropletToParticle{
+  /*< private >*/
+  GfsParticleList parent;
+  GfsVariable * v;
+  
+  /*< public >*/
+  GfsFunction * fc;
+  GfsVariable * c;
+  gint min;
+  gdouble resetwith;
+  gdouble density;
+};
+
+#define DROPLET_TO_PARTICLE(obj)            GTS_OBJECT_CAST (obj,\
+					         GfsDropletToParticle,\
+					         gfs_droplet_to_particle_class ())
+
+#define IS_DROPLET_TO_PARTICLE(obj)         (gts_object_is_from_class (obj,\
+						 gfs_droplet_to_particle_class ()))
+
+GfsEventClass * gfs_droplet_to_particle_class  (void);
+
+/* GfsParticulateField: header */
+
+typedef struct _GfsParticulateField                GfsParticulateField;
+
+struct _GfsParticulateField {
+  /*< private >*/
+  GfsVariable parent;
+
+  /*< public >*/
+  GfsParticleList * plist;
+  void (* voidfraction_func) (FttCell *, 
+			      GfsVariable *, 
+			      GfsParticulate *);
+};
+ 
+
+#define GFS_PARTICULATE_FIELD(obj)            GTS_OBJECT_CAST (obj,\
+                                                   GfsParticulateField,\
+                                                   gfs_particulate_field_class ())
+#define GFS_IS_PARTICULATE_FIELD(obj)         (gts_object_is_from_class (obj,\
+                                                   gfs_particulate_field_class ()))
+
+GfsVariableClass * gfs_particulate_field_class  (void);
+
+/* GfsFeedParticle: header */
+
+typedef struct _GfsFeedParticle GfsFeedParticle;
+
+struct _GfsFeedParticle{
+  /*< private >*/
+  GfsParticleList parent;
+  GfsVariable * v;
+  
+  /*< public >*/
+  GfsFunction * posx, * posy, * posz;
+  GfsFunction * velx, * vely, * velz;
+  GfsFunction * np,   * mass, * vol;
+};
+
+#define GFS_FEED_PARTICLE(obj)            GTS_OBJECT_CAST (obj,\
+					         GfsFeedParticle,\
+					         gfs_feed_particle_class ())
+
+#define GFS_IS_FEED_PARTICLE(obj)         (gts_object_is_from_class (obj,\
+					         gfs_feed_particle_class ()))
+
+GfsEventClass * gfs_feed_particle_class  (void);
+
+
diff --git a/modules/particulates.mod b/modules/particulates.mod
new file mode 100644
index 0000000..135437c
--- /dev/null
+++ b/modules/particulates.mod
@@ -0,0 +1,1437 @@
+/* Gerris - The GNU Flow Solver			(-*-C-*-)
+ * Copyright (C) 2009 National Institute of Water and Atmospheric Research
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.  
+ */
+
+#include <stdlib.h>
+
+#include "particulates.h"
+#include "source.h"
+
+/* Forces on the Particle */
+
+static FttVector subs_fttvectors (FttVector *a, FttVector *b)
+{
+  FttVector result;
+  FttComponent c;
+  for(c = 0; c< FTT_DIMENSION; c++)    
+    (&result.x)[c]  = (&a->x)[c] - (&b->x)[c];  
+  return result;
+}
+
+/* Same as in source.c used here to obtained viscosity */
+static GfsSourceDiffusion * source_diffusion_viscosity (GfsVariable * v)
+{
+  if (v->sources) {
+    GSList * i = GTS_SLIST_CONTAINER (v->sources)->items;
+    
+    while (i) {
+      GtsObject * o = i->data;
+      
+      if (GFS_IS_SOURCE_DIFFUSION (o))
+	return GFS_SOURCE_DIFFUSION (o);
+      i = i->next;
+    }
+  }
+  return NULL;
+}
+
+/* Similar to gfs_vorticity which returns norm of the vorticity */
+static void vorticity_vector (FttCell *cell, GfsVariable **v, 
+			      FttVector *vort) 
+{
+  gdouble size;
+
+  if (cell == NULL) return;
+  if (v == NULL) return;
+
+  size = ftt_cell_size (cell);
+#if FTT_2D
+  vort->x = 0.;
+  vort->y = 0.;
+  vort->z = (gfs_center_gradient (cell, FTT_X, v[1]->i) -
+	     gfs_center_gradient (cell, FTT_Y, v[0]->i))/size;
+#else  /* FTT_3D */
+  vort->x = (gfs_center_gradient (cell, FTT_Y, v[2]->i) -
+	     gfs_center_gradient (cell, FTT_Z, v[1]->i))/size;
+  vort->y = (gfs_center_gradient (cell, FTT_Z, v[0]->i) -
+	     gfs_center_gradient (cell, FTT_X, v[2]->i))/size;
+  vort->z = (gfs_center_gradient (cell, FTT_X, v[1]->i) -
+	     gfs_center_gradient (cell, FTT_Y, v[0]->i))/size;
+#endif
+}
+
+/* GfsForceCoeff: object */
+
+static void gfs_force_coeff_read (GtsObject ** o, GtsFile * fp)
+{
+  if (GTS_OBJECT_CLASS (gfs_force_coeff_class ())->parent_class->read)
+    (* GTS_OBJECT_CLASS (gfs_force_coeff_class ())->parent_class->read) 
+      (o, fp);
+  if (fp->type == GTS_ERROR)
+    return;
+
+  if (fp->type != '\n') {
+    GfsForceCoeff * force = FORCE_COEFF (*o);
+    force->coefficient = gfs_function_new (gfs_function_class (), 0.);
+    gfs_function_read (force->coefficient, gfs_object_simulation (*o), fp);
+    GfsDomain * domain = GFS_DOMAIN (gfs_object_simulation (*o));
+    
+    /* fixme: "Rep", "Urelp" etc... should be derived variables not
+       straight variables (i.e. there is no need to allocate memory
+       for these as they are only used temporarily to compute the
+       coefficient) */
+    force->re_p = gfs_domain_get_or_add_variable (domain, "Rep", 
+						  "Particle Reynolds number");  
+    force->u_rel = gfs_domain_get_or_add_variable (domain, "Urelp", 
+						   "Particle x - relative velocity");
+    force->v_rel = gfs_domain_get_or_add_variable (domain, "Vrelp", 
+						   "Particle y - relative velocity");
+#if !FTT_2D
+    force->w_rel = gfs_domain_get_or_add_variable (domain, "Wrelp", 
+						   "Particle z - relative velocity");
+#endif
+    force->pdia = gfs_domain_get_or_add_variable (domain, "Pdia", 
+						  "Particle radii");
+  }
+}
+
+static void gfs_force_coeff_write (GtsObject * o, FILE * fp)
+{
+  (* GTS_OBJECT_CLASS (gfs_force_coeff_class ())->parent_class->write) (o, fp);
+  GfsForceCoeff * force = FORCE_COEFF (o);
+  if (force->coefficient)
+    gfs_function_write (force->coefficient, fp);
+}
+
+static void gfs_force_coeff_destroy (GtsObject * o)
+{
+  if (FORCE_COEFF (o)->coefficient)
+    gts_object_destroy (GTS_OBJECT (FORCE_COEFF (o)->coefficient));
+
+  (* GTS_OBJECT_CLASS (gfs_force_coeff_class ())->parent_class->destroy) (o);
+}
+
+static void gfs_force_coeff_class_init (GtsObjectClass * klass)
+{
+  klass->read = gfs_force_coeff_read;
+  klass->write = gfs_force_coeff_write;
+  klass->destroy = gfs_force_coeff_destroy;
+}
+ 
+GtsSListContaineeClass * gfs_force_coeff_class (void)
+{
+  static GtsSListContaineeClass * klass = NULL;
+  
+  if (klass == NULL) {
+    GtsObjectClassInfo gfs_force_coeff_info = {
+      "GfsForceCoeff",
+      sizeof (GfsForceCoeff),
+      sizeof (GtsSListContaineeClass),
+      (GtsObjectClassInitFunc) gfs_force_coeff_class_init,
+      (GtsObjectInitFunc) NULL,
+      (GtsArgSetFunc) NULL,
+      (GtsArgGetFunc) NULL
+    };
+    klass = gts_object_class_new (GTS_OBJECT_CLASS (gfs_particle_force_class ()),
+				  &gfs_force_coeff_info);
+  }
+  return klass;
+}
+
+/* GfsForceLift: object */
+
+static FttVector compute_lift_force (GfsParticle * p, GfsParticleForce * liftforce)
+{
+  GfsParticulate * particulate = GFS_PARTICULATE (p);
+  GfsForceCoeff * coeff = FORCE_COEFF (liftforce);
+
+  GfsSimulation * sim = gfs_object_simulation (particulate);
+  GfsDomain * domain = GFS_DOMAIN (sim);
+  
+  FttVector force;
+  FttComponent c;
+  for (c = 0; c < FTT_DIMENSION; c++)
+    (&force.x)[c] = 0;
+
+  FttCell * cell = gfs_domain_locate (domain, p->pos, -1, NULL);
+  if (cell == NULL) return force;
+
+  gdouble fluid_rho = sim->physical_params.alpha ? 1./
+    gfs_function_value (sim->physical_params.alpha, cell) : 1.;
+  GfsVariable ** u = gfs_domain_velocity (domain);
+ 
+  gdouble viscosity = 0.;
+  GfsSourceDiffusion * d = source_diffusion_viscosity (u[0]); 
+  if (d) viscosity = gfs_diffusion_cell (d->D, cell);
+  
+  FttVector fluid_vel;
+  for (c = 0; c < FTT_DIMENSION; c++)
+    (&fluid_vel.x)[c] = gfs_interpolate (cell, p->pos, u[c]);
+
+  FttVector relative_vel = subs_fttvectors (&fluid_vel, &particulate->vel);
+  FttVector vorticity;
+  vorticity_vector (cell, u, &vorticity);
+
+  gdouble cl = 0.5;
+  if (coeff->coefficient) {
+    gdouble norm_relative_vel = sqrt (relative_vel.x*relative_vel.x + 
+				      relative_vel.y*relative_vel.y +
+				      relative_vel.z*relative_vel.z);
+    gdouble dia =  2.*pow(3.0*(particulate->volume)/4.0/M_PI, 1./3.);
+    if (viscosity == 0) {
+      g_warning ("Viscosity is 0. cannot compute lift force on particulate\n");
+      g_assert_not_reached ();
+    }
+    gdouble Re = norm_relative_vel*dia*fluid_rho/viscosity;
+
+    GFS_VALUE (cell, coeff->re_p) = Re;
+    GFS_VALUE (cell, coeff->pdia) = dia;
+    GFS_VALUE (cell, coeff->u_rel) = relative_vel.x;
+    GFS_VALUE (cell, coeff->v_rel) = relative_vel.y;
+#if !FTT_2D
+    GFS_VALUE (cell, coeff->w_rel) = relative_vel.z;
+#endif
+    cl = gfs_function_value (coeff->coefficient, cell); 
+  }
+ 
+#if FTT_2D
+  force.x = fluid_rho*cl*relative_vel.y*vorticity.z;
+  force.y = -fluid_rho*cl*relative_vel.x*vorticity.z;
+#else
+  force.x = fluid_rho*cl*(relative_vel.y*vorticity.z
+			  -relative_vel.z*vorticity.y);
+  force.y = fluid_rho*cl*(relative_vel.z*vorticity.x
+			  -relative_vel.x*vorticity.z);
+  force.z = fluid_rho*cl*(relative_vel.x*vorticity.y
+			  -relative_vel.y*vorticity.x);
+#endif
+
+  return force; 
+}
+
+static void gfs_force_lift_init (GfsParticleForce * force)
+{
+  force->force = compute_lift_force;
+}
+
+GtsSListContaineeClass * gfs_force_lift_class (void)
+{
+  static GtsSListContaineeClass * klass = NULL;
+  
+  if (klass == NULL) {
+    GtsObjectClassInfo gfs_force_lift_info = {
+      "GfsForceLift",
+      sizeof (GfsForceCoeff),
+      sizeof (GtsSListContaineeClass),
+      (GtsObjectClassInitFunc) NULL,
+      (GtsObjectInitFunc) gfs_force_lift_init,
+      (GtsArgSetFunc) NULL,
+      (GtsArgGetFunc) NULL
+    };
+    klass = gts_object_class_new (GTS_OBJECT_CLASS (gfs_force_coeff_class ()),
+				  &gfs_force_lift_info);
+  }
+  return klass;
+}
+
+/* GfsForceDrag: object */
+
+static FttVector compute_drag_force (GfsParticle * p, GfsParticleForce * dragforce)
+{
+  GfsParticulate * particulate = GFS_PARTICULATE (p);
+  GfsForceCoeff * coeff = FORCE_COEFF (dragforce);
+  GfsSimulation * sim = gfs_object_simulation (particulate);
+  GfsDomain * domain = GFS_DOMAIN (sim);
+
+  FttVector force;
+  FttComponent c;
+  for (c = 0; c < FTT_DIMENSION; c++)
+    (&force.x)[c] = 0;
+
+  FttCell * cell = gfs_domain_locate (domain, p->pos, -1, NULL);
+  if (cell == NULL) return force;
+
+  gdouble fluid_rho = sim->physical_params.alpha ? 1./
+    gfs_function_value (sim->physical_params.alpha,cell) : 1.;
+  GfsVariable ** u = gfs_domain_velocity (domain);  
+
+  gdouble viscosity = 0.;  
+
+  GfsSourceDiffusion * d = source_diffusion_viscosity (u[0]); 
+  if (d) viscosity = gfs_diffusion_cell (d->D, cell);
+  
+  FttVector fluid_vel;
+  for (c = 0; c < FTT_DIMENSION; c++)
+    (&fluid_vel.x)[c] = gfs_interpolate (cell, p->pos, u[c]);
+
+  FttVector relative_vel = subs_fttvectors (&fluid_vel, &particulate->vel);
+
+  gdouble dia = 2.*pow(3.0*(particulate->volume)/4.0/M_PI, 1./3.);
+#if !FTT_2D
+  gdouble norm_relative_vel = sqrt (relative_vel.x*relative_vel.x + 
+				    relative_vel.y*relative_vel.y +
+				    relative_vel.z*relative_vel.z);
+#else
+  gdouble norm_relative_vel = sqrt (relative_vel.x*relative_vel.x + 
+				    relative_vel.y*relative_vel.y);
+#endif
+
+  gdouble cd = 0.;
+  gdouble Re;
+  if (viscosity == 0)    
+    return force;
+  else
+    Re = norm_relative_vel*dia*fluid_rho/viscosity;
+  
+  if (coeff->coefficient) {
+    GFS_VALUE (cell, coeff->re_p) = Re;
+    GFS_VALUE (cell, coeff->u_rel) = relative_vel.x;
+    GFS_VALUE (cell, coeff->v_rel) = relative_vel.y;
+#if !FTT_2D
+    GFS_VALUE (cell, coeff->w_rel) = relative_vel.z;
+#endif
+    GFS_VALUE (cell, coeff->pdia) = dia;
+    cd = gfs_function_value (coeff->coefficient, cell); 
+  }
+  else {
+    if (Re < 1e-8)
+      return force;
+    else if (Re < 50.0)
+      cd = 16.*(1. + 0.15*pow(Re,0.5))/Re;
+    else
+      cd = 48.*(1. - 2.21/pow(Re,0.5))/Re;
+  }
+  for (c = 0; c < FTT_DIMENSION; c++)
+    (&force.x)[c] += 3./(4.*dia)*cd*norm_relative_vel*(&relative_vel.x)[c]*fluid_rho;
+  
+  return force;
+}
+
+static void gfs_force_drag_init (GfsParticleForce * force)
+{
+  force->force = compute_drag_force;
+}
+
+GtsSListContaineeClass * gfs_force_drag_class (void)
+{
+  static GtsSListContaineeClass * klass = NULL;
+  
+  if (klass == NULL) {
+    GtsObjectClassInfo gfs_force_drag_info = {
+      "GfsForceDrag",
+      sizeof (GfsForceCoeff),
+      sizeof (GtsSListContaineeClass),
+      (GtsObjectClassInitFunc) NULL,
+      (GtsObjectInitFunc) gfs_force_drag_init,
+      (GtsArgSetFunc) NULL,
+      (GtsArgGetFunc) NULL
+    };
+    klass = gts_object_class_new (GTS_OBJECT_CLASS (gfs_force_coeff_class ()),
+				  &gfs_force_drag_info);
+  }
+  return klass;
+}
+
+/* GfsForceBuoy: object */
+
+static FttVector compute_buoyancy_force (GfsParticle * p, GfsParticleForce * buoyforce)
+{
+  GfsParticulate * particulate = GFS_PARTICULATE (p); 
+  GfsSimulation * sim = gfs_object_simulation (particulate);
+  GfsDomain * domain = GFS_DOMAIN (sim);
+
+  FttVector force;
+  FttComponent c;
+  for (c = 0; c < FTT_DIMENSION; c++)
+    (&force.x)[c] = 0;
+
+  FttCell * cell = gfs_domain_locate (domain, p->pos, -1, NULL);
+  if (cell == NULL) return force;
+
+  gdouble fluid_rho = sim->physical_params.alpha ? 1./
+    gfs_function_value (sim->physical_params.alpha, cell) : 1.;
+  GfsVariable ** u = gfs_domain_velocity (domain);
+ 
+  gdouble g[3];
+  for (c = 0; c < FTT_DIMENSION; c++) {
+    g[c] = 0.;
+    if (u[c]->sources) {
+      GSList * i = GTS_SLIST_CONTAINER (u[c]->sources)->items;
+      
+      while (i) {
+	if (GFS_IS_SOURCE (i->data)) {
+	  g[c] += gfs_function_value (GFS_SOURCE ((GfsSourceGeneric *) i->data)->intensity, 
+				      cell);
+	}
+	i = i->next;
+      }
+    }
+  }
+
+  for (c = 0; c < FTT_DIMENSION; c++)
+    (&force.x)[c] += (particulate->mass/particulate->volume-fluid_rho)*g[c];
+
+  return force;
+}
+
+static void gfs_force_buoy_init (GfsParticleForce * force)
+{
+  force->force = compute_buoyancy_force;
+}
+
+GtsSListContaineeClass * gfs_force_buoy_class (void)
+{
+  static GtsSListContaineeClass * klass = NULL;
+  
+  if (klass == NULL) {
+    GtsObjectClassInfo gfs_force_buoy_info = {
+      "GfsForceBuoy",
+      sizeof (GfsParticleForce),
+      sizeof (GtsSListContaineeClass), 
+      (GtsObjectClassInitFunc) NULL, 
+      (GtsObjectInitFunc) gfs_force_buoy_init,
+      (GtsArgSetFunc) NULL,
+      (GtsArgGetFunc) NULL
+    };
+    klass = gts_object_class_new (GTS_OBJECT_CLASS (gfs_particle_force_class ()),
+				  &gfs_force_buoy_info);
+  }
+  return klass;
+}
+
+/* GfsParticleForce: object */
+
+static void gfs_particle_force_read (GtsObject ** o, GtsFile * fp)
+{ 
+  GtsObjectClass *klass;
+
+  if (fp->type != GTS_STRING) {
+    gts_file_error (fp, "expecting a string (GfsParticleClass)");
+    return;
+  }
+
+  klass = gfs_object_class_from_name (fp->token->str);
+  if (klass == NULL) {
+    gts_file_error (fp, "unknown class `%s'", fp->token->str);
+    return;
+  }
+  if (!gts_object_class_is_from_class (klass, gfs_particle_force_class ())) {
+    gts_file_error (fp, "`%s' is not a GfsParticleForce", fp->token->str);
+    return;
+  }
+  gts_file_next_token (fp);
+}
+
+static void gfs_particle_force_write (GtsObject * o, FILE * fp)
+{
+  fprintf (fp, "%s", o->klass->info.name);
+}
+
+static void gfs_particle_force_class_init (GtsObjectClass * klass)
+{
+  GTS_OBJECT_CLASS(klass)->read = gfs_particle_force_read;
+  GTS_OBJECT_CLASS(klass)->write = gfs_particle_force_write;
+}
+
+GtsSListContaineeClass * gfs_particle_force_class (void)
+{
+  static GtsSListContaineeClass * klass = NULL;
+
+  if (klass == NULL) {
+    GtsObjectClassInfo gfs_particle_force_info = {
+      "GfsParticleForce",
+      sizeof (GfsParticleForce),
+      sizeof (GtsSListContaineeClass),
+      (GtsObjectClassInitFunc) gfs_particle_force_class_init,
+      (GtsArgSetFunc) NULL,
+      (GtsArgGetFunc) NULL
+    };
+    klass = gts_object_class_new (GTS_OBJECT_CLASS (gts_slist_containee_class ()),
+				  &gfs_particle_force_info);
+  }
+  return klass;
+}
+
+/* GfsParticulate: Object */
+
+static void compute_forces (GfsParticleForce * event, GfsParticulate * p)
+{ 
+  FttComponent c;
+  FttVector new_force = (event->force) (GFS_PARTICLE (p), event);
+  FttVector total_force;
+     
+  for ( c = 0 ; c < FTT_DIMENSION; c++)
+    (&total_force.x)[c] = (&new_force.x)[c]*p->volume + (&p->force.x)[c];
+    
+  p->force = total_force;
+}
+
+static gboolean gfs_particulate_event (GfsEvent * event, 
+				       GfsSimulation * sim)
+{
+  GfsParticle * p = GFS_PARTICLE (event);
+  GfsParticulate * particulate = GFS_PARTICULATE (event);
+
+  if (particulate->forces == NULL)
+    (* GFS_EVENT_CLASS (GTS_OBJECT_CLASS (gfs_particulate_class ())->parent_class)->event)
+      (event, sim);
+  else {
+    FttVector pos = p->pos;
+    gfs_simulation_map (sim, &pos);
+
+    FttComponent c;
+    /* Velocity Verlet Algorithm */
+    for (c = 0; c < FTT_DIMENSION; c++) {
+      (&pos.x)[c] += (&particulate->force.x)[c]*sim->advection_params.dt*sim->advection_params.dt
+	/particulate->mass/2.+ (&particulate->vel.x)[c]*sim->advection_params.dt;
+      (&particulate->vel.x)[c] += (&particulate->force.x)[c]*sim->advection_params.dt
+	/(2.*particulate->mass);
+    }
+
+    /* Compute forces */
+    for (c = 0; c < FTT_DIMENSION; c++)
+      (&particulate->force.x)[c] = 0.;      
+    gts_container_foreach (GTS_CONTAINER (particulate->forces), 
+			   (GtsFunc) compute_forces, particulate);
+
+    for (c = 0; c < FTT_DIMENSION; c++)
+      (&particulate->vel.x)[c] += 
+	(&particulate->force.x)[c]*sim->advection_params.dt/(2.*particulate->mass);
+
+    gfs_simulation_map_inverse (sim, &pos);
+    p->pos = pos;   
+  }
+  return TRUE;
+} 
+
+static void gfs_particulate_read (GtsObject ** o, GtsFile * fp)
+{
+  if (GTS_OBJECT_CLASS (gfs_particulate_class ())->parent_class->read)
+    (* GTS_OBJECT_CLASS (gfs_particulate_class ())->parent_class->read) 
+      (o, fp);
+  if (fp->type == GTS_ERROR)
+    return;
+  GfsParticulate * p = GFS_PARTICULATE (*o);
+
+  if (fp->type != GTS_INT && fp->type != GTS_FLOAT) {
+    gts_file_error (fp, "expecting a number (mass)");
+    return;
+  }
+  p->mass = atof (fp->token->str);
+  gts_file_next_token (fp);
+  
+  if (fp->type != GTS_INT && fp->type != GTS_FLOAT) {
+    gts_file_error (fp, "expecting a number (volume)");
+    return;
+  }
+  gdouble L = gfs_object_simulation (*o)->physical_params.L;
+// L is not correctly initialized. WHY???
+//  printf("L %g \n", L);
+  p->volume = atof (fp->token->str);
+//  p->volume /= pow(L, FTT_DIMENSION);
+  gts_file_next_token (fp);
+
+  if (fp->type != GTS_INT && fp->type != GTS_FLOAT) {
+    gts_file_error (fp, "expecting a number (v.x)");
+    return;
+  }
+  p->vel.x = atof (fp->token->str)/L;
+  gts_file_next_token (fp);
+  
+  if (fp->type != GTS_INT && fp->type != GTS_FLOAT) {
+    gts_file_error (fp, "expecting a number (v.y)");
+    return;
+  }
+  p->vel.y = atof (fp->token->str)/L;
+  gts_file_next_token (fp);
+  
+  if (fp->type != GTS_INT && fp->type != GTS_FLOAT) {
+    gts_file_error (fp, "expecting a number (v.z)");
+    return;
+  }
+  p->vel.z = atof (fp->token->str)/L;
+  gts_file_next_token (fp);
+
+  if (fp->type == GTS_INT || fp->type == GTS_FLOAT) {
+    p->force.x = atof (fp->token->str)/L;
+    gts_file_next_token (fp);
+  }
+  
+  if (fp->type == GTS_INT || fp->type == GTS_FLOAT) {
+    p->force.y = atof (fp->token->str)/L;
+    gts_file_next_token (fp);
+  }
+  
+  if (fp->type == GTS_INT || fp->type == GTS_FLOAT) {
+    p->force.z = atof (fp->token->str)/L;
+    gts_file_next_token (fp);
+  }
+}
+
+static void gfs_particulate_write (GtsObject * o, FILE * fp)
+{
+  (* GTS_OBJECT_CLASS (gfs_particulate_class ())->parent_class->write) (o, fp);
+ 
+ GfsParticulate * p = GFS_PARTICULATE (o);
+  gdouble L = gfs_object_simulation (o)->physical_params.L;
+  //fprintf (fp, " %g %g %g %g %g", p->mass, p->volume*pow(L, FTT_DIMENSION), 
+  //             p->vel.x*L, p->vel.y*L, p->vel.z*L);
+  fprintf (fp, " %g %g %g %g %g", p->mass, p->volume, 
+               p->vel.x*L, p->vel.y*L, p->vel.z*L);
+  fprintf (fp, " %g %g %g", p->force.x*L, p->force.y*L, p->force.z*L);
+}
+
+static void gfs_particulate_class_init (GfsEventClass * klass)
+{
+  klass->event = gfs_particulate_event;
+  GTS_OBJECT_CLASS (klass)->read = gfs_particulate_read;
+  GTS_OBJECT_CLASS (klass)->write = gfs_particulate_write;
+}
+
+GfsEventClass * gfs_particulate_class (void)
+{
+  static GfsEventClass * klass = NULL;
+
+  if (klass == NULL) {
+    GtsObjectClassInfo gfs_particulate_info = {
+      "GfsParticulate",
+      sizeof (GfsParticulate),
+      sizeof (GfsEventClass),
+      (GtsObjectClassInitFunc) gfs_particulate_class_init,
+      (GtsArgSetFunc) NULL,
+      (GtsArgGetFunc) NULL
+    };
+    klass = gts_object_class_new (GTS_OBJECT_CLASS (gfs_particle_class ()),
+				  &gfs_particulate_info);
+  }
+  return klass;
+}
+
+/* GfsParticleList: Object */
+
+static void assign_forces(GfsParticulate *particulate, GtsSListContainer *forces)
+{
+  particulate->forces = forces;
+}
+
+static void gfs_particle_list_read (GtsObject ** o, GtsFile * fp)
+{
+  if (GTS_OBJECT_CLASS (gfs_particle_list_class ())->parent_class->read)
+    (* GTS_OBJECT_CLASS (gfs_particle_list_class ())->parent_class->read) 
+      (o, fp);
+  if (fp->type == GTS_ERROR)
+    return;
+
+  GfsParticleList * p = GFS_PARTICLE_LIST (*o);  
+  GfsEventList * l = GFS_EVENT_LIST (p);  
+  if (fp->type == '{') {
+    fp->scope_max++;
+    gts_file_next_token (fp);
+    
+    while (fp->type == '\n')
+      gts_file_next_token (fp);
+  
+    GfsSimulation * sim = gfs_object_simulation (*o);
+    GtsObjectClass * klass;
+    while (fp->type != '}') {      
+
+      if (fp->type != GTS_STRING) {
+	gts_file_error (fp, "expecting a keyword (GfsParticleForce)");
+	break;
+      }
+      klass = gfs_object_class_from_name (fp->token->str);
+ 
+      if (klass == NULL) {
+	gts_file_error (fp, "unknown class `%s'", fp->token->str);
+	break;
+      }
+      if (!gts_object_class_is_from_class (klass, gfs_particle_force_class ())) {
+	gts_file_error (fp, "'%s' is not a GfsParticleForce", fp->token->str);
+	break;
+      }
+  
+      GtsObject * object = gts_object_new (klass);
+      gfs_object_simulation_set (object, sim);
+  
+      (* klass->read) (&object, fp);
+    
+      if (fp->type == GTS_ERROR) {
+	gts_object_destroy (object);
+	break;
+      }
+  
+      while (fp->type == '\n') 
+	gts_file_next_token (fp);
+      
+      gts_container_add (GTS_CONTAINER (p->forces), GTS_CONTAINEE (object));   
+    }
+    
+    if (fp->type != '}') {
+      gts_file_error (fp, "expecting a closing brace");
+      return;
+    }
+    fp->scope_max--;
+    gts_file_next_token (fp); 
+  }
+
+  if (p->forces->items != NULL) {
+    p->forces->items = g_slist_reverse (p->forces->items);
+    gts_container_foreach (GTS_CONTAINER (l->list), (GtsFunc) assign_forces, p->forces);
+  }
+
+  if(fp->type == GTS_INT){
+    p->idlast = atoi (fp->token->str);
+    gts_file_next_token (fp);
+  }    
+}
+
+static void gfs_particle_list_write (GtsObject * o, FILE * fp)
+{
+  (* GTS_OBJECT_CLASS (gfs_particle_list_class ())->parent_class->write) (o, fp);
+
+  GfsParticleList * p = GFS_PARTICLE_LIST (o);
+  fputs (" {\n", fp);
+  GSList * i = p->forces->items;
+  while (i) {
+    fputs ("    ", fp);
+    (* GTS_OBJECT (i->data)->klass->write) (i->data, fp);
+    fputc ('\n', fp);
+    i = i->next; 
+  }
+  fputc ('}', fp);
+
+  fprintf (fp, " %d", p->idlast);
+}
+
+static void gfs_particle_list_init (GtsObject *o){
+
+  GfsParticleList * plist = GFS_PARTICLE_LIST(o);
+
+  plist->forces = 
+    GTS_SLIST_CONTAINER (gts_container_new (GTS_CONTAINER_CLASS (gts_slist_container_class ())));
+ 
+}
+
+static void gfs_particle_list_destroy (GtsObject * o)
+{
+  GfsParticleList * plist = GFS_PARTICLE_LIST(o);
+ 
+  gts_container_foreach (GTS_CONTAINER (plist->forces), (GtsFunc) gts_object_destroy, NULL);
+  gts_object_destroy (GTS_OBJECT (plist->forces));
+
+  (* GTS_OBJECT_CLASS (gfs_particle_list_class ())->parent_class->destroy) (o);
+}
+
+static void gfs_particle_list_class_init (GtsObjectClass * klass)
+{
+  klass->read = gfs_particle_list_read;
+  klass->write = gfs_particle_list_write;  
+  klass->destroy = gfs_particle_list_destroy;  
+}
+
+GfsEventClass * gfs_particle_list_class (void)
+{
+  static GfsEventClass * klass = NULL;
+
+  if (klass == NULL) {
+    GtsObjectClassInfo gfs_particle_list_info = {
+      "GfsParticleList",
+      sizeof (GfsParticleList),
+      sizeof (GfsEventClass),
+      (GtsObjectClassInitFunc) gfs_particle_list_class_init,
+      (GtsObjectInitFunc) gfs_particle_list_init,
+      (GtsArgSetFunc) NULL,
+      (GtsArgGetFunc) NULL
+    };
+    klass = gts_object_class_new (GTS_OBJECT_CLASS (gfs_event_list_class ()),
+				  &gfs_particle_list_info);
+  }
+  return klass;
+}
+
+typedef struct {
+  FttVector pos, vel;
+  gdouble volume;
+} Droplets;
+
+typedef struct {
+  GfsVariable * tag, * c, *t;
+  Droplets * drops;
+  GfsVariable **u;
+  guint * sizes;
+  guint n, min;
+  gdouble resetval;
+  gdouble density;
+  GfsFunction *fc;
+} DropletsPar;
+
+static int greater (const void * a, const void * b)
+{
+  return *((guint *)a) > *((guint *)b) ? -1 : 1;
+}
+
+static void reset_small_fraction (FttCell * cell, DropletsPar * p)
+{
+  gint i = GFS_VALUE (cell, p->tag);
+  if (i > 0 && p->sizes[i - 1] < p->min)
+    GFS_VALUE (cell, p->c) = p->resetval;
+}
+
+static void compute_droplet_properties (FttCell * cell, DropletsPar * p)
+{
+  gint i = GFS_VALUE (cell, p->tag);
+  gdouble h = ftt_cell_size (cell), vol;
+  FttVector pos; 
+  ftt_cell_pos (cell, &pos);
+  GfsVariable ** u = p->u;
+
+  if (i > 0) {
+    p->sizes[i - 1]++;
+    vol = pow (h, FTT_DIMENSION);
+    p->drops[i-1].volume += vol*GFS_VALUE (cell, p->c);
+    FttComponent c;
+    for(c = 0; c < FTT_DIMENSION; c++){
+      (&(p->drops[i-1].pos.x))[c] +=  (&pos.x)[c];
+      (&(p->drops[i-1].vel.x))[c] += GFS_VALUE (cell,u[c]);
+    }
+  }  
+}
+
+static void convert_droplets (GfsDomain * domain, 
+			      DropletsPar * pars, GfsParticleList * plist)
+{
+  GfsSimulation * sim = gfs_object_simulation (plist); 
+  guint i;
+  
+  GfsDropletToParticle * d = DROPLET_TO_PARTICLE (plist);
+  GfsEventList * l = GFS_EVENT_LIST (plist); 
+
+  pars->sizes = g_malloc0 (pars->n*sizeof (guint));  
+  pars->drops = g_malloc0 (pars->n*sizeof (Droplets));
+
+  FttComponent c;
+  /* Initialize drops */
+  for (i = 0; i < pars->n; i++){
+    pars->drops[i].volume = 0.;
+    pars->sizes[i] = 0;
+    for(c = 0; c < FTT_DIMENSION; c++) {
+      (&(pars->drops[i].pos.x))[c] = 0.;
+      (&(pars->drops[i].vel.x))[c] = 0.;
+    }
+  }
+  gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
+			    (FttCellTraverseFunc) compute_droplet_properties, pars);
+
+#ifdef HAVE_MPI
+  if (domain->pid >= 0) {
+    guint * sizes = g_malloc0 (pars->n*sizeof (guint));
+    MPI_Allreduce (pars->sizes, sizes, pars->n, MPI_UNSIGNED, MPI_SUM, MPI_COMM_WORLD);
+    g_free (pars->sizes);
+    pars->sizes = sizes;
+  }
+#endif
+  if (d->min >= 0)
+    pars->min = d->min;
+  else {
+    guint * tmp = g_malloc (pars->n*sizeof (guint));
+    memcpy (tmp, pars->sizes, pars->n*sizeof (guint));
+    qsort (tmp, pars->n, sizeof (guint), greater);
+    g_assert (-1 - d->min < pars->n);
+    /* fixme: this won't work for parallel jobs */
+    pars->min = tmp[-1 - d->min];
+    g_free (tmp);
+  }
+  
+  for (i = 0; i < pars->n; i++) {
+    if (pars->sizes[i] < pars->min){
+      for (c = 0; c < FTT_DIMENSION; c++) {
+      	(&pars->drops[i].pos.x)[c] = (&pars->drops[i].pos.x)[c]/pars->sizes[i];
+	(&pars->drops[i].vel.x)[c] = (&pars->drops[i].vel.x)[c]/pars->sizes[i];
+      }
+      FttCell * cell = gfs_domain_locate (domain, pars->drops[i].pos, -1, NULL);    
+      if (cell) {
+	/* Construct an Object */
+	GtsObjectClass * klass = l->klass;
+	if (klass == NULL) {
+	  gfs_error (0, "Unknown particle class\n");
+	  return;
+	}
+	GtsObject * object = gts_object_new (klass);
+	gfs_object_simulation_set (object, sim);
+	l->list->items = g_slist_reverse (l->list->items);	
+	gts_container_add (GTS_CONTAINER (l->list), GTS_CONTAINEE (object));
+	l->list->items = g_slist_reverse (l->list->items);
+	GfsEvent * list = GFS_EVENT (l);	
+	gfs_event_set (GFS_EVENT (object), 
+		       list->start, list->end, list->step, list->istart, list->iend, list->istep);
+	GfsParticulate * drop = GFS_PARTICULATE (object);
+	GfsParticle * p = GFS_PARTICLE (drop);
+	
+	drop->vel = pars->drops[i].vel;
+	p->pos = pars->drops[i].pos;
+	drop->volume = pars->drops[i].volume;
+	p->id = ++plist->idlast;
+	drop->mass = sim->physical_params.alpha ? 1./
+	  gfs_function_value (sim->physical_params.alpha, cell) : 1.;
+	drop->mass *= drop->volume;
+	for (c = 0; c < FTT_DIMENSION; c++)
+	  (&drop->force.x)[c] = 0.;
+      }       
+    }   
+  }  
+  gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
+			    (FttCellTraverseFunc) reset_small_fraction, pars); 
+  g_free (pars->drops);
+  g_free (pars->sizes);
+ 
+}
+
+/* GfsDropletToParticle: object */
+
+static void compute_v (FttCell * cell, GfsRemoveDroplets * d)
+{
+  GFS_VALUE (cell, d->v) = gfs_function_value (d->fc, cell);
+}
+
+static gboolean gfs_droplet_to_particle_event (GfsEvent * event, GfsSimulation * sim)
+{ 
+  if ((* GFS_EVENT_CLASS (GTS_OBJECT_CLASS (gfs_droplet_to_particle_class ())->parent_class)->event)
+      (event, sim)) {  
+    GfsDomain * domain = GFS_DOMAIN (sim);
+    GfsParticleList * plist = GFS_PARTICLE_LIST (event);
+    GfsDropletToParticle *d = DROPLET_TO_PARTICLE (event);
+    d->v = d->fc ? gfs_function_get_variable (d->fc) : d->c;
+    DropletsPar p ;   
+  
+    p.resetval = d->resetwith;
+    p.tag = gfs_temporary_variable (domain);
+    p.u = gfs_domain_velocity (domain);
+    p.density = d->density;
+    p.t = d->c;
+  
+    if (d->v){
+      p.c = d->v;
+      p.n = gfs_domain_tag_droplets (domain, p.c, p.tag);
+      if (p.n > 0 && -d->min < (gint) p.n){
+	p.c = d->c;
+	convert_droplets (domain, &p, plist);
+      }
+    }
+    else {      
+      d->v = gfs_temporary_variable (domain);      
+      gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, FTT_TRAVERSE_ALL, -1,
+				(FttCellTraverseFunc) compute_v, d);
+      p.c = d->v;      
+      p.n = gfs_domain_tag_droplets (domain, p.c, p.tag);
+      if (p.n > 0 && -d->min < (gint) p.n){
+	p.c = d->c;	
+	convert_droplets (domain, &p, plist);	
+      }              
+      gts_object_destroy (GTS_OBJECT (d->v));      
+    } 
+
+    gts_object_destroy (GTS_OBJECT (p.tag));
+    return TRUE;
+  }
+  return FALSE;
+}
+
+static void gfs_droplet_to_particle_read (GtsObject ** o, GtsFile * fp)
+{  
+  if (GTS_OBJECT_CLASS (gfs_droplet_to_particle_class ())->parent_class->read)
+    (* GTS_OBJECT_CLASS (gfs_droplet_to_particle_class ())->parent_class->read) (o, fp);
+  if (fp->type == GTS_ERROR)
+    return;
+
+  GfsDropletToParticle * r = DROPLET_TO_PARTICLE (*o);  
+  GfsDomain * domain = GFS_DOMAIN (gfs_object_simulation (r));
+
+  if (fp->type != GTS_STRING) {
+    gts_file_error (fp, "expecting a string (variable)");
+    return;
+  }
+
+  if ((r->c = gfs_variable_from_name (domain->variables, fp->token->str)) == NULL) {
+    gts_file_error (fp, "unknown variable `%s'", fp->token->str);
+    return;
+  }
+  gts_file_next_token (fp);
+
+  if (fp->type == '{') {
+    GtsFileVariable var[] = {
+      {GTS_INT, "min",  TRUE},
+      {GTS_DOUBLE, "reset",    TRUE},
+      {GTS_DOUBLE, "density",   TRUE},
+      {GTS_NONE}
+    };
+
+    var[0].data = &r->min;
+    var[1].data = &r->resetwith;
+    var[2].data = &r->density;
+
+    gts_file_assign_variables (fp, var);
+  }
+ 
+  if (fp->type != '\n') {
+    r->fc = gfs_function_new (gfs_function_class (), 0.);
+    gfs_function_read (r->fc, gfs_object_simulation (r), fp);
+  }
+}
+
+static void gfs_droplet_to_particle_write (GtsObject * o, FILE * fp)
+{
+  (* GTS_OBJECT_CLASS (gfs_droplet_to_particle_class ())->parent_class->write) (o, fp);
+
+  GfsDropletToParticle * r = DROPLET_TO_PARTICLE(o);
+
+  fprintf (fp, " %s { min = %d reset = %g density = %g } ",
+	   r->c->name, r->min, r->resetwith, r->density);
+  if (r->fc)
+    gfs_function_write (r->fc, fp);
+}
+
+static void gfs_droplet_to_particle_destroy (GtsObject * o)
+{
+  GfsDropletToParticle * drops = DROPLET_TO_PARTICLE (o);
+  if (drops->fc)
+    gts_object_destroy (GTS_OBJECT (drops->fc));
+  
+  (* GTS_OBJECT_CLASS (gfs_droplet_to_particle_class ())->parent_class->destroy) (o);
+}
+
+static void gfs_droplet_to_particle_init (GfsDropletToParticle * r)
+{
+  r->resetwith = 0.;
+  r->min = 20;
+  r->density = 1.;
+}
+
+static void gfs_droplet_to_particle_class_init (GfsEventClass * klass)
+{
+  GFS_EVENT_CLASS (klass)->event = gfs_droplet_to_particle_event;
+  GTS_OBJECT_CLASS (klass)->read = gfs_droplet_to_particle_read;
+  GTS_OBJECT_CLASS (klass)->write = gfs_droplet_to_particle_write;  
+  GTS_OBJECT_CLASS (klass)->destroy = gfs_droplet_to_particle_destroy;  
+}
+
+GfsEventClass * gfs_droplet_to_particle_class (void)
+{
+  static GfsEventClass * klass = NULL;
+
+  if (klass == NULL) {
+    GtsObjectClassInfo gfs_droplet_to_particle_info = {
+      "GfsDropletToParticle",
+      sizeof (GfsDropletToParticle),
+      sizeof (GfsEventClass),
+      (GtsObjectClassInitFunc) gfs_droplet_to_particle_class_init,
+      (GtsObjectInitFunc) gfs_droplet_to_particle_init,
+      (GtsArgSetFunc) NULL,
+      (GtsArgGetFunc) NULL
+    };
+    klass = gts_object_class_new (GTS_OBJECT_CLASS (gfs_particle_list_class ()),
+				  &gfs_droplet_to_particle_info);
+  }
+  return klass;
+}
+
+/* GfsParticulateField: object */
+
+static void voidfraction_from_particles (FttCell * cell, GfsVariable * v, GfsParticulate * part)
+{
+  GFS_VALUE (cell, v) += part->volume/ftt_cell_volume (cell);
+}
+
+static gboolean particulate_field_event (GfsEvent * event, 
+					 GfsSimulation * sim) 
+{
+  if ((* GFS_EVENT_CLASS (GTS_OBJECT_CLASS (gfs_particulate_field_class ())->parent_class)->event)
+      (event, sim)) {
+    GfsDomain * domain = GFS_DOMAIN (sim);
+    GfsVariable * v = GFS_VARIABLE1 (event);
+    GfsParticulateField * pfield = GFS_PARTICULATE_FIELD (v);
+
+    /* Reset variable */
+    gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
+			      (FttCellTraverseFunc) gfs_cell_reset, v);
+    /* Loop over the list of particles in the selected object */
+    GSList * i = GFS_EVENT_LIST (pfield->plist)->list->items;
+    while (i) {
+      FttCell * cellpart = gfs_domain_locate (domain, GFS_PARTICLE (i->data)->pos, -1, NULL);
+      if (cellpart)
+	pfield->voidfraction_func (cellpart, v, i->data);
+      i = i->next;
+    }
+    return TRUE;
+  }
+  return FALSE;
+}
+
+static void particulate_field_read (GtsObject ** o, GtsFile * fp)
+{
+  (* GTS_OBJECT_CLASS (gfs_particulate_field_class ())->parent_class->read) (o, fp); 
+  if (fp->type == GTS_ERROR)
+    return;
+
+  if (fp->type != GTS_STRING) {
+    gts_file_error (fp, "expecting a string (object name)");
+    return;
+  }
+
+  GfsParticulateField * pfield = GFS_PARTICULATE_FIELD (*o);
+  GtsObject * object = gfs_object_from_name (GFS_DOMAIN (gfs_object_simulation (*o)), 
+					     fp->token->str);
+  if (object == NULL) {
+    gts_file_error (fp, "unknown object '%s'", fp->token->str);
+    return;
+  }
+  if (!GFS_IS_PARTICLE_LIST (object)) {
+    gts_file_error (fp, "object '%s' is not a GfsParticleList", fp->token->str);
+    return;  
+  }
+  gts_file_next_token (fp);
+  
+  pfield->plist = GFS_PARTICLE_LIST (object);
+}
+
+static void particulate_field_write (GtsObject * o, FILE * fp)
+{
+  (* GTS_OBJECT_CLASS (gfs_particulate_field_class ())->parent_class->write) (o, fp); 
+  fprintf (fp, " %s", GFS_EVENT (GFS_PARTICULATE_FIELD (o)->plist)->name);
+}
+
+static void particulate_field_class_init (GtsObjectClass * klass)
+{
+  GFS_EVENT_CLASS (klass)->event = particulate_field_event;
+  klass->read =  particulate_field_read;
+  klass->write = particulate_field_write;
+}
+
+static void particulate_field_init (GfsVariable * v)
+{
+  v->units = -FTT_DIMENSION;
+  GFS_PARTICULATE_FIELD (v)->voidfraction_func = voidfraction_from_particles;
+}
+
+GfsVariableClass * gfs_particulate_field_class (void)
+{
+  static GfsVariableClass * klass = NULL;
+
+  if (klass == NULL) {
+    GtsObjectClassInfo gfs_particulate_field_info = {
+      "GfsParticulateField",
+      sizeof (GfsParticulateField),
+      sizeof (GfsVariableClass),
+      (GtsObjectClassInitFunc) particulate_field_class_init,
+      (GtsObjectInitFunc) particulate_field_init,
+      (GtsArgSetFunc) NULL,
+      (GtsArgGetFunc) NULL
+    };
+    klass = gts_object_class_new (GTS_OBJECT_CLASS (gfs_variable_class ()),
+                                  &gfs_particulate_field_info);
+  }
+
+  return klass;
+}
+
+/** \beginobject{GfsFeedParticle} */
+
+static void add_particulate (GfsDomain * domain, 
+			     GfsFeedParticle * feedp, GfsParticleList * plist)
+{
+  GfsSimulation * sim = gfs_object_simulation (plist); 
+  GfsEventList * l = GFS_EVENT_LIST (plist); 
+  guint c;
+  FttVector pos,vel;
+  
+  pos.x = gfs_function_value (feedp->posx, NULL); 
+  pos.y = gfs_function_value (feedp->posy, NULL); 
+  pos.z = gfs_function_value (feedp->posz, NULL); 
+  FttCell * cell = gfs_domain_locate (domain, pos, -1, NULL);    
+  if (cell) {
+    /* Construct an Object */
+    GtsObjectClass * klass = l->klass;
+    g_assert (klass);
+    GtsObject * object = gts_object_new (klass);
+    gfs_object_simulation_set (object, sim);
+    l->list->items = g_slist_reverse (l->list->items);	
+    gts_container_add (GTS_CONTAINER (l->list), GTS_CONTAINEE (object));
+    l->list->items = g_slist_reverse (l->list->items);
+    GfsEvent * list = GFS_EVENT (l);	
+    gfs_event_set (GFS_EVENT (object), 
+                   list->start, list->end, list->step, list->istart, list->iend, list->istep);
+    GfsParticulate * part = GFS_PARTICULATE (object);
+    GfsParticle * p = GFS_PARTICLE (part);
+    
+    vel.x = gfs_function_value (feedp->velx, cell);
+    vel.y = gfs_function_value (feedp->vely, cell);
+    vel.z = gfs_function_value (feedp->velz, cell);
+    part->vel = vel;
+    p->pos = pos;
+    part->volume = gfs_function_value (feedp->vol, cell);
+    p->id = ++plist->idlast;
+    part->mass = gfs_function_value (feedp->mass, cell);
+    for (c = 0; c < FTT_DIMENSION; c++)
+      (&part->force.x)[c] = 0.;
+    assign_forces ( part , plist->forces);
+  }       
+}
+
+static gboolean gfs_feed_particle_event (GfsEvent * event, GfsSimulation * sim)
+{ 
+  if ((* GFS_EVENT_CLASS (GTS_OBJECT_CLASS (gfs_feed_particle_class ())->parent_class)->event)
+      (event, sim)) {  
+    GfsDomain * domain = GFS_DOMAIN (sim);
+    GfsParticleList * plist = GFS_PARTICLE_LIST (event);
+    GfsFeedParticle * feedp = GFS_FEED_PARTICLE (event);
+    gint i;
+    guint np = gfs_function_value (feedp->np, NULL);
+
+    for (i = 0; i < np; i++)
+      add_particulate (domain, feedp, plist);
+    return TRUE;
+  }
+  return FALSE;
+}
+
+static void gfs_feed_particle_destroy (GtsObject * o)
+{
+  gts_object_destroy (GTS_OBJECT (GFS_FEED_PARTICLE (o)->np));
+  gts_object_destroy (GTS_OBJECT (GFS_FEED_PARTICLE (o)->posx));
+  gts_object_destroy (GTS_OBJECT (GFS_FEED_PARTICLE (o)->posy));
+  gts_object_destroy (GTS_OBJECT (GFS_FEED_PARTICLE (o)->posz));
+  gts_object_destroy (GTS_OBJECT (GFS_FEED_PARTICLE (o)->velx));
+  gts_object_destroy (GTS_OBJECT (GFS_FEED_PARTICLE (o)->vely));
+  gts_object_destroy (GTS_OBJECT (GFS_FEED_PARTICLE (o)->velz));
+  gts_object_destroy (GTS_OBJECT (GFS_FEED_PARTICLE (o)->mass));
+  gts_object_destroy (GTS_OBJECT (GFS_FEED_PARTICLE (o)->vol));
+
+  (* GTS_OBJECT_CLASS (gfs_feed_particle_class ())->parent_class->destroy) (o); 
+}
+
+static void gfs_feed_particle_read (GtsObject ** o, GtsFile * fp)
+{  
+  if (GTS_OBJECT_CLASS (gfs_feed_particle_class ())->parent_class->read)
+    (* GTS_OBJECT_CLASS (gfs_feed_particle_class ())->parent_class->read) (o, fp);
+  if (fp->type == GTS_ERROR)
+    return;
+
+  GfsFeedParticle * feedp = GFS_FEED_PARTICLE(*o);
+
+  if (fp->type != '{') {
+    gts_file_error (fp, "expecting an opening brace");
+    return;
+  }
+  fp->scope_max++;
+  gts_file_next_token (fp);
+
+  while (fp->type != GTS_ERROR && fp->type != '}') {
+    if (fp->type == '\n') {
+      gts_file_next_token (fp);
+      continue;
+    }
+      if (fp->type != GTS_STRING) {
+      gts_file_error (fp, "expecting a keyword");
+      return;
+    }  
+  else if (!strcmp (fp->token->str, "nparts")) {
+      gts_file_next_token (fp);
+      if (fp->type != '=') {
+        gts_file_error (fp, "expecting '='");
+        return;
+      }    
+      gts_file_next_token (fp);
+      gfs_function_read (feedp->np, gfs_object_simulation (*o), fp);    
+    }
+    else if (!strcmp (fp->token->str, "xfeed")) {
+      gts_file_next_token (fp);
+      if (fp->type != '=') {
+        gts_file_error (fp, "expecting '='");
+        return;
+      }
+      gts_file_next_token (fp);
+      gfs_function_read (feedp->posx, gfs_object_simulation (*o), fp);    
+    }
+    else if (!strcmp (fp->token->str, "yfeed")) {
+      gts_file_next_token (fp);
+      if (fp->type != '=') {
+        gts_file_error (fp, "expecting '='");
+        return;
+      }
+      gts_file_next_token (fp);
+      gfs_function_read (feedp->posy, gfs_object_simulation (*o), fp);    
+    }
+    else if (!strcmp (fp->token->str, "zfeed")) {
+      gts_file_next_token (fp);
+      if (fp->type != '=') {
+        gts_file_error (fp, "expecting '='");
+        return;
+      }
+      gts_file_next_token (fp);
+      gfs_function_read (feedp->posz, gfs_object_simulation (*o), fp);    
+    }
+    else if (!strcmp (fp->token->str, "velx")) {
+      gts_file_next_token (fp);
+      if (fp->type != '=') {
+        gts_file_error (fp, "expecting '='");
+        return;
+      }
+      gts_file_next_token (fp);
+      gfs_function_read (feedp->velx, gfs_object_simulation (*o), fp);    
+    }
+    else if (!strcmp (fp->token->str, "vely")) {
+      gts_file_next_token (fp);
+      if (fp->type != '=') {
+        gts_file_error (fp, "expecting '='");
+        return;
+      }
+      gts_file_next_token (fp);
+      gfs_function_read (feedp->vely, gfs_object_simulation (*o), fp);    
+    }
+    else if (!strcmp (fp->token->str, "velz")) {
+      gts_file_next_token (fp);
+      if (fp->type != '=') {
+        gts_file_error (fp, "expecting '='");
+        return;
+      }
+      gts_file_next_token (fp);
+      gfs_function_read (feedp->velz, gfs_object_simulation (*o), fp);    
+    }
+    else if (!strcmp (fp->token->str, "mass")) {
+      gts_file_next_token (fp);
+      if (fp->type != '=') {
+        gts_file_error (fp, "expecting '='");
+        return;
+      }
+      gts_file_next_token (fp);
+      gfs_function_read (feedp->mass, gfs_object_simulation (*o), fp);    
+    }
+    else if (!strcmp (fp->token->str, "volume")) {
+      gts_file_next_token (fp);
+      if (fp->type != '=') {
+        gts_file_error (fp, "expecting '='");
+        return;
+      }
+      gts_file_next_token (fp);
+      gfs_function_read (feedp->vol, gfs_object_simulation (*o), fp);    
+    }
+    else {
+      gts_file_error (fp, "unknown keyword `%s'", fp->token->str);
+      return;
+    }
+  }
+  if (fp->type == GTS_ERROR)
+    return;
+  if (fp->type != '}') {
+    gts_file_error (fp, "expecting a closing brace");
+    return;
+  }
+  fp->scope_max--;
+  gts_file_next_token (fp);
+
+}
+
+static void gfs_feed_particle_write (GtsObject * o, FILE * fp)
+{
+  (* GTS_OBJECT_CLASS (gfs_feed_particle_class ())->parent_class->write) (o, fp);
+
+  GfsFeedParticle * feedp = GFS_FEED_PARTICLE(o);
+  fputs (" {\n  nparts = ", fp);
+  gfs_function_write (feedp->np, fp);
+  fputs ("  xfeed =", fp);
+  gfs_function_write (feedp->posx, fp);
+  fputs (" yfeed =", fp);
+  gfs_function_write (feedp->posy, fp);
+  fputs (" zfeed =", fp);
+  gfs_function_write (feedp->posz, fp);
+  fputs ("\n  velx =", fp);
+  gfs_function_write (feedp->velx, fp);
+  fputs (" vely =", fp);
+  gfs_function_write (feedp->vely, fp);
+  fputs (" velz =", fp);
+  gfs_function_write (feedp->velz, fp);
+  fputs ("\n  mass =", fp);
+  gfs_function_write (feedp->mass, fp);
+  fputs ("\n  volume =", fp);
+  gfs_function_write (feedp->vol, fp);
+  fputs ("\n}", fp);
+}
+
+static void gfs_feed_particle_class_init (GfsEventClass * klass)
+{
+  GFS_EVENT_CLASS (klass)->event    = gfs_feed_particle_event;
+  GTS_OBJECT_CLASS (klass)->destroy = gfs_feed_particle_destroy;
+  GTS_OBJECT_CLASS (klass)->read    = gfs_feed_particle_read;
+  GTS_OBJECT_CLASS (klass)->write   = gfs_feed_particle_write;  
+}
+
+static void gfs_feed_particle_init ( GfsFeedParticle * feedp)
+{
+  feedp->np   = gfs_function_new (gfs_function_class (), 0.);
+  feedp->posx = gfs_function_new (gfs_function_class (), 0.);
+  feedp->posy = gfs_function_new (gfs_function_class (), 0.);
+  feedp->posz = gfs_function_new (gfs_function_class (), 0.);
+  feedp->velx = gfs_function_new (gfs_function_class (), 0.);
+  feedp->vely = gfs_function_new (gfs_function_class (), 0.);
+  feedp->velz = gfs_function_new (gfs_function_class (), 0.);
+  feedp->mass = gfs_function_new (gfs_function_class (), 0.);
+  feedp->vol  = gfs_function_new (gfs_function_class (), 0.);
+}
+
+GfsEventClass * gfs_feed_particle_class (void)
+{
+  static GfsEventClass * klass = NULL;
+
+  if (klass == NULL) {
+    GtsObjectClassInfo gfs_feed_particle_info = {
+      "GfsFeedParticle",
+      sizeof (GfsFeedParticle),
+      sizeof (GfsEventClass),
+      (GtsObjectClassInitFunc) gfs_feed_particle_class_init,
+      (GtsObjectInitFunc) gfs_feed_particle_init,
+      (GtsArgSetFunc) NULL,
+      (GtsArgGetFunc) NULL
+    };
+    klass = gts_object_class_new (GTS_OBJECT_CLASS (gfs_particle_list_class ()),
+				  &gfs_feed_particle_info);
+  }
+  return klass;
+}
+
+/** \endobject{GfsFeedParticle} */
+
+/* Initialize module */
+
+const gchar gfs_module_name[] = "particulates";
+const gchar * g_module_check_init (void);
+
+const gchar * g_module_check_init (void)
+{ 
+  gfs_particulate_class ();
+  gfs_particle_list_class ();
+  gfs_force_lift_class ();
+  gfs_force_drag_class ();
+  gfs_force_buoy_class ();
+  gfs_particle_force_class ();
+
+  gfs_droplet_to_particle_class ();
+  gfs_feed_particle_class ();
+
+  gfs_particulate_field_class ();
+
+  return NULL; 
+}
diff --git a/modules/rsurface.c b/modules/rsurface.c
index c00dfc7..e85d77c 100644
--- a/modules/rsurface.c
+++ b/modules/rsurface.c
@@ -1,6 +1,8 @@
 #include <stdio.h>
 #include <string.h>
+#include <assert.h>
 #include "RStarTree/RStarTree.h"
+#include "kdt/kdt.h"
 #include "rsurface.h"
 
 /* RSurface */
@@ -8,6 +10,7 @@
 struct _RSurface {
   RSTREE t;
   char * name;
+  Kdt * kdt;
 };
 
 RSurface * r_surface_new (const char * fname, int size, FILE * fp)
@@ -18,6 +21,8 @@ RSurface * r_surface_new (const char * fname, int size, FILE * fp)
 RSurface * r_surface_open (const char * fname, const char * mode, int size)
 {
   RSurface * rt = malloc (sizeof (RSurface));
+  rt->t = NULL;
+  rt->kdt = NULL;
   if (!strcmp (mode, "w")) {
     RemoveRST (fname);
     if (!CreateRST (fname, size, FALSE)) {
@@ -25,25 +30,39 @@ RSurface * r_surface_open (const char * fname, const char * mode, int size)
       return NULL;
     }
   }
-  rt->t = NULL;
-  if (!OpenRST (&rt->t, fname, !strcmp (mode, "w") ? "rw" : "r")) {
-    free (rt);
-    return NULL;
+  rt->kdt = kdt_new ();
+  if (kdt_open (rt->kdt, fname)) {
+    kdt_destroy (rt->kdt);
+    rt->kdt = NULL;
+    if (!OpenRST (&rt->t, fname, !strcmp (mode, "w") ? "rw" : "r")) {
+      free (rt);
+      return NULL;
+    }
+    else
+      fprintf (stderr, 
+	       "\nWARNING: you are using a terrain database with an obsolete format\n"
+	       "please convert to the new KDT format\n");
   }
   rt->name = malloc (sizeof (char)*(strlen (fname) + 1));
   strcpy (rt->name, fname);
   return rt;
 }
 
-void r_surface_close (RSurface * rt)
+int r_surface_close (RSurface * rt)
 {
-  CloseRST (&rt->t);
+  int status = 1;
+  if (rt->kdt)
+    kdt_destroy (rt->kdt);
+  else
+    status = CloseRST (&rt->t);
   free (rt->name);
   free (rt);
+  return status;
 }
 
 int r_surface_insert  (RSurface * rt, double p[3], int id)
 {
+  assert (!rt->kdt); /* not implemented */
   typrect rect;
   typinfo info;
   boolean inserted;
@@ -97,13 +116,14 @@ void r_surface_query_region (RSurface * rt,
 			     double min[2], double max[2],
 			     RSurfaceQuery q, void * user_data)
 {
+  assert (!rt->kdt); /* not implemented */
   typrect rect, unused;
   rect[0].l = min[0]; rect[0].h = max[0];
   rect[1].l = min[1]; rect[1].h = max[1];
   void * data[2];
   data[0] = q;
   data[1] = user_data;
-  RegionQuery (rt->t, rect, unused, Intersects, Intersects, ManageQuery, data);
+  RegionQuery (rt->t, rect, unused, Intersects, Intersects, (QueryManageProc) ManageQuery, data);
 }
 
 void r_surface_sum_init (RSurfaceSum * sum)
@@ -127,8 +147,12 @@ void r_surface_query_region_sum (RSurface * rt,
 				 RSurfaceRect rect,
 				 RSurfaceSum * sum)
 {
-  RegionQueryInfo (rt->t, (Check) includes, (Check) intersects, data, (typinterval *) rect,
-		   (typdirinfo *) sum);
+  if (rt->kdt)
+    kdt_query_sum (rt->kdt, (KdtCheck) includes, (KdtCheck) intersects, data, 
+		   (KdtInterval *) rect, (KdtSum *) sum);
+  else
+    RegionQueryInfo (rt->t, (Check) includes, (Check) intersects, data, 
+		     (typinterval *) rect, (typdirinfo *) sum);
 }
 
 const char * r_surface_name (RSurface * rt)
@@ -138,5 +162,141 @@ const char * r_surface_name (RSurface * rt)
 
 void r_surface_update (RSurface * rt)
 {
+  assert (!rt->kdt); /* not implemented */
   Update (rt->t);
 }
+
+int r_surface_depth (RSurface * rt)
+{
+  assert (!rt->kdt); /* not implemented */
+  int height = -1;
+  GetHeight (rt->t, &height);
+  return height;
+}
+
+void r_surface_info (RSurface * rt)
+{
+  assert (!rt->kdt); /* not implemented */
+  char name[100];
+  int numbofdim, sizedirentry, sizedataentry, sizeinfo;
+  int maxdirfanout, maxdatafanout, pagesize, numbofdirpages;
+  int numbofdatapages, pagesperlevel[100], numbofrecords, height;
+  boolean unique;
+  
+  InquireRSTDesc(rt->t,
+		 name,
+		 &numbofdim,
+		 &sizedirentry,
+		 &sizedataentry,
+		 &sizeinfo,
+		 &maxdirfanout,
+		 &maxdatafanout,
+		 &pagesize,
+		 &numbofdirpages,
+		 &numbofdatapages,
+		 pagesperlevel,
+		 &numbofrecords,
+		 &height,
+		 &unique);
+  fprintf (stderr, 
+	   "Number of dimensions:\t\t\t\t%d\n"
+	   "Size (bytes) of a directory entry:\t\t%d\n"
+	   "Size (bytes) of a data entry:\t\t\t%d\n"
+	   "Size (bytes) of an information part:\t\t%d\n"
+	   "Maximum # of entries for a directory node:\t%d\n"
+	   "Maximum # of entries for a data node:\t\t%d\n"
+	   "Total # of directory pages:\t\t\t%d\n"
+	   "Total # of data pages:\t\t\t\t%d\n"
+	   "Total # of data records:\t\t\t%d\n"
+	   "Are records unique?:\t\t\t\t%s\n"
+	   "Height of the tree:\t\t\t\t%d\n",
+	   numbofdim,
+	   sizedirentry,
+	   sizedataentry,
+	   sizeinfo,
+	   maxdirfanout,
+	   maxdatafanout,
+	   numbofdirpages,
+	   numbofdatapages,
+	   numbofrecords,
+	   unique ? "yes" : "no",
+	   height);
+  int i;
+  fprintf (stderr, "Number of pages per level:\n");
+  for (i = 0; i < height; i++)
+    fprintf (stderr, "\tlevel %d:\t%d\n", i + 1, pagesperlevel[i]);
+}
+
+static int includes (RSurfaceRect RSTrect, RSurfaceStats * s, int depth)
+{
+  return 0;
+}
+
+static int intersects (RSurfaceRect RSTrect, RSurfaceStats * s, int depth)
+{
+  double w = RSTrect[0].h - RSTrect[0].l, h = RSTrect[1].h - RSTrect[1].l;
+  double ratio = 0.;
+  if (w > 0. && h > 0.)
+    ratio = w < h ? w/h : h/w;
+  s->aspect[depth][s->nentries[depth]++] = ratio;
+  return (depth < s->nlevel - 1);
+}
+
+static int compare_double (const void * p1, const void * p2)
+{
+  return (*(double * ) p1 < *(double * ) p2);
+}
+
+RSurfaceStats * r_surface_stats_new (RSurface * rt, int level)
+{
+  assert (!rt->kdt); /* not implemented */
+  char name[100];
+  int numbofdim, sizedirentry, sizedataentry, sizeinfo;
+  int maxdirfanout, maxdatafanout, pagesize, numbofdirpages;
+  int numbofdatapages, pagesperlevel[100], numbofrecords, height;
+  boolean unique;
+  
+  InquireRSTDesc(rt->t,
+		 name,
+		 &numbofdim,
+		 &sizedirentry,
+		 &sizedataentry,
+		 &sizeinfo,
+		 &maxdirfanout,
+		 &maxdatafanout,
+		 &pagesize,
+		 &numbofdirpages,
+		 &numbofdatapages,
+		 pagesperlevel,
+		 &numbofrecords,
+		 &height,
+		 &unique);
+
+  RSurfaceStats * s = malloc (sizeof (RSurfaceStats));
+  s->nlevel = level <= 0 ? height - 1 : (level < height - 1 ? level : height - 1);
+  s->nentries = calloc (sizeof (int), s->nlevel);
+  s->aspect = malloc (sizeof (double *)*s->nlevel);
+  int i;
+  for (i = 0; i < s->nlevel; i++)
+    s->aspect[i] = malloc (sizeof (double)*pagesperlevel[i]);
+
+  RSurfaceRect rect = {{-0.5,-0.5},{0.5,0.5}};
+  RSurfaceSum sum;
+  r_surface_sum_init (&sum);
+  r_surface_query_region_sum (rt, (RSurfaceCheck) includes, (RSurfaceCheck) intersects, s,
+			      rect, &sum);
+  for (i = 1; i < s->nlevel; i++)
+    qsort (s->aspect[i], s->nentries[i], sizeof (double), compare_double);
+
+  return s;
+}
+
+void r_surface_stats_free (RSurfaceStats * s)
+{
+  int i;
+  for (i = 0; i < s->nlevel; i++)
+    free (s->aspect[i]);
+  free (s->aspect);
+  free (s->nentries);
+  free (s);
+}
diff --git a/modules/rsurface.h b/modules/rsurface.h
index 4eedfc9..db3473d 100644
--- a/modules/rsurface.h
+++ b/modules/rsurface.h
@@ -32,7 +32,7 @@ typedef int (* RSurfaceCheck) (RSurfaceRect rect, void * data, int depth);
 RSurface * r_surface_new      (const char * fname, int size, FILE * fp);
 RSurface * r_surface_open     (const char * fname, const char * mode, int size);
 void       r_surface_update   (RSurface * rt);
-void       r_surface_close    (RSurface * rt);
+int        r_surface_close    (RSurface * rt);
 int        r_surface_insert   (RSurface * rt, double p[3], int id);
 
 typedef int (* RSurfaceQuery) (double p[3], void * user_data);
@@ -49,4 +49,16 @@ void       r_surface_query_region_sum (RSurface * rt,
 				       void * data,
 				       RSurfaceRect rect,
 				       RSurfaceSum * sum);
-const char * r_surface_name (RSurface * rt);
+const char * r_surface_name  (RSurface * rt);
+int          r_surface_depth (RSurface * rt);
+void         r_surface_info  (RSurface * rt);
+
+typedef struct {
+  int nlevel;       /* number of levels */
+  int * nentries;   /* number of entries for each level */
+  double ** aspect; /* aspect ratio for each entry */
+} RSurfaceStats;
+
+RSurfaceStats * r_surface_stats_new  (RSurface * rt, 
+				      int level);
+void            r_surface_stats_free (RSurfaceStats * s);
diff --git a/modules/rsurfaceinfo.c b/modules/rsurfaceinfo.c
new file mode 100644
index 0000000..cb80eb6
--- /dev/null
+++ b/modules/rsurfaceinfo.c
@@ -0,0 +1,124 @@
+/* Gerris - The GNU Flow Solver
+ * Copyright (C) 2001-2008 National Institute of Water and Atmospheric Research
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.  
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "config.h"
+#ifdef HAVE_GETOPT_H
+#  include <getopt.h>
+#endif /* HAVE_GETOPT_H */
+
+#include "ftt.h"
+#include "rsurface.h"
+
+static int includes_true (RSurfaceRect RSTrect)
+{
+  return 1;
+}
+
+int main (int argc, char** argv)
+{
+  int c = 0, maxdepth = 0;
+
+  /* parse options using getopt */
+  while (c != EOF) {
+#ifdef HAVE_GETOPT_LONG
+    static struct option long_options[] = {
+      {"help", no_argument, NULL, 'h'},
+      {"depth", required_argument, NULL, 'd'},
+      { NULL }
+    };
+    int option_index = 0;
+    switch ((c = getopt_long (argc, argv, "hd:",
+			      long_options, &option_index))) {
+#else /* not HAVE_GETOPT_LONG */
+    switch ((c = getopt (argc, argv, "hd:"))) {
+#endif /* not HAVE_GETOPT_LONG */
+    case 'd': /* depth */
+      maxdepth = atoi (optarg);
+      break;
+    case 'h': /* help */
+      fprintf (stderr,
+	       "Usage: rsurfaceinfo [OPTION] BASENAME\n"
+	       "\n"
+	       "Displays info about a R*-tree-indexed database.\n"
+	       "\n"
+	       "  -dVAL --depth=VAL   display detailed statistics for levels up to VAL\n"
+	       "                      (setting VAL to -1 will display all levels)\n"
+	       "  -h    --help        display this help and exit\n"
+	       "\n"
+	       "Report bugs to %s\n",
+	       FTT_MAINTAINER);
+      return 0; /* success */
+      break;
+    case '?': /* wrong options */
+      fprintf (stderr, "Try `rsurfaceinfo --help' for more information.\n");
+      return 1; /* failure */
+    }
+  }
+
+  if (optind >= argc) { /* missing BASENAME */
+    fprintf (stderr, 
+	     "rsurfaceinfo: missing BASENAME\n"
+	     "Try `rsurfaceinfo --help' for more information.\n");
+    return 1; /* failure */
+  }
+
+  RSurface * rs = r_surface_open (argv[optind], "r", 0);
+  if (rs == NULL) {
+    fprintf (stderr, "rsurfaceinfo: cannot open database `%s*'\n", argv[optind]);
+    return 1;
+  }
+
+  RSurfaceRect rect = {{-0.5,-0.5},{0.5,0.5}};
+  RSurfaceSum s;
+
+  r_surface_info (rs);
+  r_surface_sum_init (&s);
+  r_surface_query_region_sum (rs, 
+			      (RSurfaceCheck) includes_true, (RSurfaceCheck) includes_true, NULL,
+			      rect, &s);
+  fprintf (stderr,
+	   "Height min: %g average: %g max: %g\n", 
+	   s.Hmin, s.H0/s.n, s.Hmax);
+
+  if (maxdepth != 0) {
+    RSurfaceStats * s = r_surface_stats_new (rs, maxdepth);
+    fprintf (stderr, "Level\tAverage # of entries\t Aspect ratio percentiles\n");
+    fprintf (stderr, "     \t                    \t  50%%   75%%   95%%   100%%\n");
+    int i;
+    for (i = 1; i < s->nlevel; i++) {
+      fprintf (stderr, "%5d\t", i + 1);
+      if (i < s->nlevel - 1)
+	fprintf (stderr, "      %4.2f\t\t", s->nentries[i + 1]/(double)s->nentries[i]);
+      else
+	fprintf (stderr, "         -\t\t");
+      fprintf (stderr, "%5.1f %5.1f %5.1f %5.1f\n",
+	       1./s->aspect[i][(int) (0.50*(s->nentries[i] - 1))],
+	       1./s->aspect[i][(int) (0.75*(s->nentries[i] - 1))],
+	       1./s->aspect[i][(int) (0.95*(s->nentries[i] - 1))],
+	       1./s->aspect[i][(int) (1.00*(s->nentries[i] - 1))]);
+    }
+    r_surface_stats_free (s);
+  }
+  r_surface_close (rs);
+
+  return 0.;
+}
diff --git a/modules/stokes.mod b/modules/stokes.mod
index 93f2e61..2375ce1 100644
--- a/modules/stokes.mod
+++ b/modules/stokes.mod
@@ -183,6 +183,7 @@ GfsGenericInitClass * gfs_init_stokes_wave_class (void)
   return klass;
 }
 
+const gchar gfs_module_name[] = "stokes";
 const gchar * g_module_check_init (void);
 
 const gchar * g_module_check_init (void)
diff --git a/modules/terrain.mod b/modules/terrain.mod
index 4f6798a..ce0f937 100644
--- a/modules/terrain.mod
+++ b/modules/terrain.mod
@@ -33,8 +33,9 @@ static gchar * default_path = ".";
 
 typedef struct {
   RSurface ** rs;
-  guint nrs; 
-  gchar * path, * basename;  
+  gdouble * weight;
+  guint nrs;
+  gchar * path, * basename;
 } RSurfaces;
 
 static void rsurfaces_destroy (RSurfaces * rs)
@@ -44,9 +45,10 @@ static void rsurfaces_destroy (RSurfaces * rs)
   if (rs->rs) {
     guint i;
     for (i = 0; i < rs->nrs; i++)
-      r_surface_close (rs->rs[i]);
+      g_assert (r_surface_close (rs->rs[i]));
     g_free (rs->rs);
   }
+  g_free (rs->weight);
 }
 
 static void rsurfaces_read (RSurfaces * rs, GtsFile * fp)
@@ -54,12 +56,10 @@ static void rsurfaces_read (RSurfaces * rs, GtsFile * fp)
   gchar * path = NULL;
   if (fp->type == '{') {
     GtsFileVariable var[] = {
-      {GTS_STRING, "basename", TRUE},
-      {GTS_STRING, "path",      TRUE},
+      {GTS_STRING, "basename", TRUE, &rs->basename},
+      {GTS_STRING, "path",     TRUE, &rs->path},
       {GTS_NONE}
     };
-    var[0].data = &rs->basename;
-    var[1].data = &rs->path;
     gts_file_assign_variables (fp, var);
     if (fp->type == GTS_ERROR)
       return;
@@ -69,7 +69,7 @@ static void rsurfaces_read (RSurfaces * rs, GtsFile * fp)
     path = g_strdup (default_path);
 
   if (!strcmp (rs->basename, "*")) { /* file globbing */
-    gchar * pattern = g_strconcat (path, "/*.Data", NULL);
+    gchar * pattern = g_strconcat (path, "/*.kdt", NULL);
     glob_t pglob;
     if (glob (pattern, GLOB_ERR, NULL, &pglob)) {
       gts_file_error (fp, "cannot find/open terrain databases in path:\n%s", pattern);
@@ -82,6 +82,7 @@ static void rsurfaces_read (RSurfaces * rs, GtsFile * fp)
     for (i = 0; i < pglob.gl_pathc; i++) {
       pglob.gl_pathv[i][strlen (pglob.gl_pathv[i]) - 5] = '\0';
       rs->rs = g_realloc (rs->rs, (rs->nrs + 1)*sizeof (RSurface *));
+      rs->weight = g_realloc (rs->weight, (rs->nrs + 1)*sizeof (double));
       rs->rs[rs->nrs] = r_surface_open (pglob.gl_pathv[i], "r", -1);
       if (!rs->rs[rs->nrs]) {
 	gts_file_error (fp, "cannot open terrain database `%s'", pglob.gl_pathv[i]);
@@ -89,37 +90,47 @@ static void rsurfaces_read (RSurfaces * rs, GtsFile * fp)
 	g_free (path);
 	return;
       }
+      rs->weight[rs->nrs] = 1.;
       rs->nrs++;
     }
     globfree (&pglob);
   }
-  else { /* basename is of the form: set1,set2,set3... */
+  else { /* basename is of the form: set1:w1,set2:w2,set3:w3... */
     gchar ** names = g_strsplit (rs->basename, ",", 0);
     gchar ** s = names;
     while (*s) {
+      /* look for weight */
+      gchar ** wname = g_strsplit (*s, ":", 2);
       rs->rs = g_realloc (rs->rs, (rs->nrs + 1)*sizeof (RSurface *));
+      rs->weight = g_realloc (rs->weight, (rs->nrs + 1)*sizeof (double));
       if (path) {
 	/* search path */
 	gchar ** pathes = g_strsplit (path, ":", 0);
 	gchar ** spath = pathes, * fname;
 	g_assert (*spath);
 	do {
-	  fname = (*s)[0] == '/' ? g_strdup (*s) : g_strconcat (*spath, "/", *s, NULL);
+	  fname = (*wname)[0] == '/' ? g_strdup (*wname) : g_strconcat (*spath, "/", *wname, NULL);
 	  rs->rs[rs->nrs] = r_surface_open (fname, "r", -1);
 	} while (rs->rs[rs->nrs] == NULL && *(++spath));
 	g_strfreev (pathes);
       }
       else
-	rs->rs[rs->nrs] = r_surface_open (*s, "r", -1);
+	rs->rs[rs->nrs] = r_surface_open (*wname, "r", -1);
       if (!rs->rs[rs->nrs]) {
 	if (path)
-	  gts_file_error (fp, "cannot find/open terrain database `%s' in path:\n%s", *s, path);
+	  gts_file_error (fp, "cannot find/open terrain database `%s' in path:\n%s", *wname, path);
 	else
-	  gts_file_error (fp, "cannot open terrain database `%s'", *s);
+	  gts_file_error (fp, "cannot open terrain database `%s'", *wname);
+	g_strfreev (wname);
 	g_strfreev (names);
 	g_free (path);
 	return;
       }
+      if (wname[1])
+	rs->weight[rs->nrs] = strtod (wname[1], NULL);
+      else
+	rs->weight[rs->nrs] = 1.;
+      g_strfreev (wname);
       rs->nrs++;
       s++;
     }
@@ -184,36 +195,33 @@ typedef struct {
   FttCell * cell;
 } Polygon;
 
-static void map_inverse (GfsSimulation * sim, FttVector * p, Polygon * poly)
-{
-  gfs_simulation_map_inverse (sim, p);
-  if (p->x < poly->min[0]) poly->min[0] = p->x;
-  if (p->x > poly->max[0]) poly->max[0] = p->x;
-  if (p->y < poly->min[1]) poly->min[1] = p->y;
-  if (p->y > poly->max[1]) poly->max[1] = p->y;
-  poly->c.x += p->x; poly->c.y += p->y;
-}
-
-static void polygon_init (GfsSimulation * sim, Polygon * p, FttCell * cell, RSurfaces * rs)
+static void polygon_init (GfsSimulation * sim, Polygon * poly, FttCell * cell, RSurfaces * rs)
 {
   FttVector q;
   ftt_cell_pos (cell, &q);
-  p->cell = cell;
-  p->rs = rs;
-  p->min[0] = p->min[1] = G_MAXDOUBLE;
-  p->max[0] = p->max[1] = - G_MAXDOUBLE;
-  p->c.x = p->c.y = 0.;
-  p->h = ftt_cell_size (cell)/2.;
-  p->p[0].x = q.x + p->h; p->p[0].y = q.y + p->h;
-  map_inverse (sim, &p->p[0], p);
-  p->p[1].x = q.x - p->h; p->p[1].y = q.y + p->h;
-  map_inverse (sim, &p->p[1], p);
-  p->p[2].x = q.x - p->h; p->p[2].y = q.y - p->h;
-  map_inverse (sim, &p->p[2], p);
-  p->p[3].x = q.x + p->h; p->p[3].y = q.y - p->h;
-  map_inverse (sim, &p->p[3], p);
-  p->c.x /= 4; p->c.y /= 4;
-  p->h = MAX (p->max[0] - p->min[0], p->max[1] - p->min[1])/2.;
+  poly->cell = cell;
+  poly->rs = rs;
+  poly->h = ftt_cell_size (cell)/2.;
+  poly->p[0].x = q.x + poly->h; poly->p[0].y = q.y + poly->h; poly->p[0].z = 0.;
+  poly->p[1].x = q.x - poly->h; poly->p[1].y = q.y + poly->h; poly->p[1].z = 0.;
+  poly->p[2].x = q.x - poly->h; poly->p[2].y = q.y - poly->h; poly->p[2].z = 0.;
+  poly->p[3].x = q.x + poly->h; poly->p[3].y = q.y - poly->h; poly->p[3].z = 0.;
+  gfs_simulation_map_inverse_cell (sim, poly->p);
+
+  poly->c.x = poly->c.y = 0.;
+  poly->min[0] = poly->min[1] = G_MAXDOUBLE;
+  poly->max[0] = poly->max[1] = - G_MAXDOUBLE;
+  gint i;
+  FttVector * p = poly->p;
+  for (i = 0; i < 4; i++, p++) {
+    if (p->x < poly->min[0]) poly->min[0] = p->x;
+    if (p->x > poly->max[0]) poly->max[0] = p->x;
+    if (p->y < poly->min[1]) poly->min[1] = p->y;
+    if (p->y > poly->max[1]) poly->max[1] = p->y;
+    poly->c.x += p->x; poly->c.y += p->y;    
+  }
+  poly->c.x /= 4; poly->c.y /= 4;
+  poly->h = MAX (poly->max[0] - poly->min[0], poly->max[1] - poly->min[1])/2.;
 }
 
 static gboolean right (const double a[2], const double b[2], const double c[2])
@@ -265,6 +273,7 @@ typedef struct {
   GfsRefineTerrain * t;
   FttCell * cell;
   gboolean relative;
+  int n;
 } RMS;
 
 static void rms_init (GfsRefineTerrain * t, RMS * rms, Polygon * p, gboolean relative)
@@ -309,6 +318,8 @@ static gdouble rms_minimum (RMS * rms)
 
 static gdouble cell_value (FttCell * cell, GfsVariable * h[NM], FttVector p)
 {
+  if (GFS_VALUE (cell, h[0]) == GFS_NODATA)
+    return GFS_NODATA;
   gdouble size = ftt_cell_size (cell)/2.;
   FttVector q;
   ftt_cell_pos (cell, &q);
@@ -338,7 +349,7 @@ static void corners_from_parent (FttCell * cell, GfsRefineTerrain * t, gdouble H
 
 static void variance_check (RMS * rms)
 {
-  g_assert (rms->m[0][0] >= NM);
+  g_assert (rms->n >= NM);
   gdouble H[4], h[4];
   guint i;
   h[0] = rms->h[0] + rms->h[1] + rms->h[2] + rms->h[3];
@@ -363,12 +374,12 @@ static void rms_update (RMS * rms)
   if (rms->m[0][0] == 0.) {
     for (i = 1; i < NM; i++)
       rms->h[i] = 0.;
-    rms->h[0] = G_MAXDOUBLE;
+    rms->h[0] = GFS_NODATA;
     rms->he = 0.;
-    rms->cond = G_MAXDOUBLE;
+    rms->cond = GFS_NODATA;
     return;
   }
-  else if (rms->m[0][0] >= NM) {
+  else if (rms->n >= NM) {
     guint j;
     for (i = 1; i < NM; i++)
       for (j = 0; j < i; j++)
@@ -382,7 +393,7 @@ static void rms_update (RMS * rms)
 	m[i+NM*j] = rms->m[i][j];
     gsl_matrix_view gm = gsl_matrix_view_array (m, NM, NM);
     gsl_linalg_SV_decomp_jacobi (&gm.matrix, &gv.matrix, &gs.vector);
-    rms->cond = s[NM - 1] > 0. ? s[0]/s[NM - 1] : G_MAXDOUBLE;
+    rms->cond = s[NM - 1] > 0. ? s[0]/s[NM - 1] : GFS_NODATA;
     if (rms->cond < 10000.) {
       gsl_vector_view gH = gsl_vector_view_array (rms->H, NM);
       gsl_vector_view gh = gsl_vector_view_array (rms->h, NM);
@@ -485,26 +496,70 @@ static void projection_matrix (Polygon * poly, double m[2][2])
   m[1][1] = (y[0] + y[1] - y[3] - y[2])/4.;
 }
 
+static void add_weighted_rsurface_sum  (RSurfaceSum * s, double * tw,
+					const RSurfaceSum * stmp, double w)
+{
+  s->m01 += w*stmp->m01;
+  s->m02 += w*stmp->m02;
+  s->m03 += w*stmp->m03;
+
+  s->m11 += w*stmp->m11;
+  s->m13 += w*stmp->m13;
+
+  s->m22 += w*stmp->m22;
+  s->m23 += w*stmp->m23;
+  s->m33 += w*stmp->m33;
+
+  s->m44 += w*stmp->m44;
+  s->m55 += w*stmp->m55;
+  s->m66 += w*stmp->m66;
+  s->m77 += w*stmp->m77;
+
+  s->m67 += w*stmp->m67;
+  s->m76 += w*stmp->m76;
+
+  s->H0 += w*stmp->H0;
+  s->H1 += w*stmp->H1;
+  s->H2 += w*stmp->H2;
+  s->H3 += w*stmp->H3;
+  s->H4 += w*stmp->H4;
+  s->H5 += w*stmp->H5;
+  s->H6 += w*stmp->H6;
+
+  if (stmp->Hmax > s->Hmax)
+    s->Hmax = stmp->Hmax;
+  
+  if (stmp->Hmin < s->Hmin)
+    s->Hmin = stmp->Hmin;
+  s->n += stmp->n;
+  *tw += w*stmp->n;
+}
+
 static void update_terrain_rms (GfsRefineTerrain * t, Polygon * poly, gboolean relative, RMS * rms)
 {
   rms_init (t, rms, poly, relative);
   RSurfaceSum s;
   r_surface_sum_init (&s);
+  double tn = 0.;
   guint i;
   RSurfaceRect rect;
   rect[0].l = poly->c.x - poly->h/2.; rect[0].h = poly->c.x + poly->h/2.; 
   rect[1].l = poly->c.y - poly->h/2.; rect[1].h = poly->c.y + poly->h/2.; 
-  for (i = 0; i < poly->rs->nrs; i++)
+  for (i = 0; i < poly->rs->nrs; i++) {
+    RSurfaceSum stmp;
+    r_surface_sum_init (&stmp);
     r_surface_query_region_sum (poly->rs->rs[i],
 				(RSurfaceCheck) polygon_includes,
 				(RSurfaceCheck) polygon_intersects, poly, 
-				rect, &s);
-
-  rms->m[0][0] = s.n;
-  if (s.n > 0) {
+				rect, &stmp);
+    add_weighted_rsurface_sum (&s, &tn, &stmp, poly->rs->weight[i]);
+  }
+  
+  rms->m[0][0] = tn;
+  rms->n = s.n;
+  if (tn > 0.) {
     RSurfaceSum sp;
 
-    sp.n = s.n;
     sp.H0 = s.H0;
     sp.H4 = s.H4;
     sp.Hmin = s.Hmin;
@@ -567,7 +622,7 @@ static void update_terrain_rms (GfsRefineTerrain * t, Polygon * poly, gboolean r
       double hp[NM];
 
       parent_cell_coefficients (rms->cell, rms->t->h, hp);
-      rms->H[0] = sp.H0 - sp.n*hp[0] - sp.m01*hp[1] - sp.m02*hp[2] - sp.m03*hp[3];
+      rms->H[0] = sp.H0 - tn*hp[0] - sp.m01*hp[1] - sp.m02*hp[2] - sp.m03*hp[3];
 
       /* See terrain.mac for a "maxima" derivation of the terms below */
       rms->H[1] = sp.H1 - hp[0]*sp.m01 - hp[1]*sp.m11 - hp[2]*sp.m03 - hp[3]*sp.m13;
@@ -582,7 +637,7 @@ static void update_terrain_rms (GfsRefineTerrain * t, Polygon * poly, gboolean r
 		   + 2.*(hp[0]*hp[3] + hp[1]*hp[2])*sp.m03
 		   + 2.*hp[0]*hp[2]*sp.m02
 		   + 2.*hp[0]*hp[1]*sp.m01
-		   + hp[0]*hp[0]*sp.n);
+		   + hp[0]*hp[0]*tn);
     }
     else {
       rms->H[0] = sp.H0;
@@ -609,9 +664,9 @@ static void update_terrain (FttCell * cell, GfsRefineTerrain * t)
   for (i = 0; i < NM; i++)
     GFS_VALUE (cell, t->h[i]) = rms.h[i];
   GFS_VALUE (cell, t->he) = rms.he;
-  GFS_VALUE (cell, t->hn) = rms.m[0][0];
-  GFS_VALUE (cell, t->hdmin) = rms.min;
-  GFS_VALUE (cell, t->hdmax) = rms.max;
+  GFS_VALUE (cell, t->hn) = rms.n;
+  GFS_VALUE (cell, t->hdmin) = rms.min <   G_MAXDOUBLE ? rms.min : GFS_NODATA;
+  GFS_VALUE (cell, t->hdmax) = rms.max > - G_MAXDOUBLE ? rms.max : GFS_NODATA;
   GFS_VALUE (cell, t->type) = RAW;
 }
 
@@ -787,9 +842,8 @@ static void min_max (FttCell * cell, GfsRefineTerrain * t)
   }
   else {
     FttCellChildren child;
-    guint i;
-    ftt_cell_children (cell, &child);
-    for (i = 0; i < FTT_CELLS; i++)
+    guint i, n = ftt_cell_children_direction (cell, FTT_FRONT, &child);
+    for (i = 0; i < n; i++)
       if (child.c[i]) {
 	if (GFS_VALUE (child.c[i], t->max) > minmax[1])
 	  minmax[1] = GFS_VALUE (child.c[i], t->max);
@@ -859,9 +913,9 @@ static void reset_empty_cell (FttCell * cell, GfsRefineTerrain * t)
   if (GFS_VALUE (cell, t->type) != CONTAINS_SURFACE) {
     guint i;
     for (i = 0; i < NM; i++)
-      GFS_VALUE (cell, t->h[i]) = G_MAXDOUBLE;
-    GFS_VALUE (cell, t->he) = G_MAXDOUBLE;
-    GFS_VALUE (cell, t->hn) = G_MAXDOUBLE;
+      GFS_VALUE (cell, t->h[i]) = GFS_NODATA;
+    GFS_VALUE (cell, t->he) = 0.;
+    GFS_VALUE (cell, t->hn) = 0.;
   }
 }
 #endif /* 3D */
@@ -929,13 +983,15 @@ static void terrain_coarse_fine (FttCell * parent, GfsVariable * v)
   }
 
   ftt_cell_children (parent, &child);
-  if (h[0] == G_MAXDOUBLE) {
+  if (h[0] == GFS_NODATA) {
     for (n = 0; n < FTT_CELLS; n++)
       if (child.c[n])
-	GFS_VALUE (child.c[n], v) = G_MAXDOUBLE;
+	GFS_VALUE (child.c[n], v) = GFS_NODATA;
   }
   else {
+#if !FTT_2D
     gdouble size = ftt_cell_size (parent)/4.;
+#endif
     for (n = 0; n < FTT_CELLS; n++)
       if (child.c[n]) {
 	gdouble hc[NM];
@@ -953,7 +1009,7 @@ static void terrain_coarse_fine (FttCell * parent, GfsVariable * v)
 	gfs_simulation_map (GFS_SIMULATION (v->domain), &p);
 	terrain_min_max (hc, minmax, p.z);
 	if (minmax[0] > zmax || minmax[1] < zmin)
-	  GFS_VALUE (child.c[n], v) = G_MAXDOUBLE;
+	  GFS_VALUE (child.c[n], v) = GFS_NODATA;
 	else
 #endif
 	  GFS_VALUE (child.c[n], v) = hc[c];
@@ -961,6 +1017,22 @@ static void terrain_coarse_fine (FttCell * parent, GfsVariable * v)
   }
 }
 
+static void hn_coarse_fine (FttCell * parent, GfsVariable * v)
+{
+  FttCellChildren child;
+  ftt_cell_children (parent, &child);
+  guint i, n = 0;
+  for (i = 0; i < FTT_CELLS; i++)
+    if (child.c[i])
+      n++;
+  if (n > 0) {
+    guint hn = GFS_VALUE (parent, v)/n;
+    for (i = 0; i < FTT_CELLS; i++)
+      if (child.c[i])
+	GFS_VALUE (child.c[i], v) = hn;
+  }
+}
+
 static void terrain_refine (GfsRefine * refine, GfsSimulation * sim)
 {
   GfsDomain * domain = GFS_DOMAIN (sim);
@@ -1074,6 +1146,10 @@ static gdouble terrain_hmax (FttCell * cell, FttCellFace * face,
   return max;
 }
 
+static void none (FttCell * parent, GfsVariable * v)
+{
+}
+
 static void refine_terrain_read (GtsObject ** o, GtsFile * fp)
 {
   (* GTS_OBJECT_CLASS (gfs_refine_terrain_class ())->parent_class->read) (o, fp);
@@ -1097,19 +1173,24 @@ static void refine_terrain_read (GtsObject ** o, GtsFile * fp)
   for (i = 0; i < NM; i++) {
     gchar * name = g_strdup_printf ("%s%d", t->name, i);
     t->h[i] = gfs_domain_get_or_add_variable (domain, name, "Terrain height");
+    t->h[i]->coarse_fine = none;
     g_free (name);
   }
   gchar * name = g_strjoin (NULL, t->name, "e", NULL);
   t->he = gfs_domain_get_or_add_variable (domain, name, "Terrain RMS error");
+  t->he->coarse_fine = none;
   g_free (name);
   name = g_strjoin (NULL, t->name, "n", NULL);
   t->hn = gfs_domain_get_or_add_variable (domain, name, "Terrain samples #");
+  t->hn->coarse_fine = hn_coarse_fine;
   g_free (name);
   name = g_strjoin (NULL, t->name, "dmin", NULL);
   t->hdmin = gfs_domain_get_or_add_variable (domain, name, "Minimum data height");
+  t->hdmin->coarse_fine = none;
   g_free (name);
   name = g_strjoin (NULL, t->name, "dmax", NULL);
   t->hdmax = gfs_domain_get_or_add_variable (domain, name, "Maximum data height");
+  t->hdmax->coarse_fine = none;
   g_free (name);
 
   GfsDerivedVariableInfo v;
@@ -1250,7 +1331,7 @@ static GfsGenericSurface * cell_is_cut (FttCell * cell, GfsGenericSurface * s1,
   g_assert (!flatten); /* not implemented */
   if (!FTT_CELL_IS_LEAF (cell))
     return s1;
-  return GFS_VALUE (cell, GFS_SURFACE_TERRAIN (s1)->h[0]) != G_MAXDOUBLE ? s1 : NULL;
+  return GFS_VALUE (cell, GFS_SURFACE_TERRAIN (s1)->h[0]) != GFS_NODATA ? s1 : NULL;
 }
 
 static gdouble zscale (GfsSurfaceTerrain * t)
@@ -1403,7 +1484,7 @@ struct _GfsVariableTerrain {
   GfsVariable parent;
 
   /*< public >*/
-  GfsVariable * p, * H;
+  GfsVariable * p, * H, * n, * dmin, * dmax;
   RSurfaces rs;
 };
 
@@ -1424,10 +1505,6 @@ static void variable_terrain_destroy (GtsObject * o)
   (* GTS_OBJECT_CLASS (gfs_variable_terrain_class ())->parent_class->destroy) (o);
 }
 
-static void none (FttCell * parent, GfsVariable * v)
-{
-}
-
 static void variable_terrain_coarse_fine (FttCell * parent, GfsVariable * v)
 {
   GfsVariableTerrain * t = GFS_VARIABLE_TERRAIN (v);
@@ -1437,25 +1514,36 @@ static void variable_terrain_coarse_fine (FttCell * parent, GfsVariable * v)
 
   /* Reconstruct terrain */
   ftt_cell_children (parent, &child);
-  for (n = 0; n < FTT_CELLS; n++) 
+  for (n = 0; n < FTT_CELLS; n++)
     if (child.c[n]) {
       Polygon poly;
       RSurfaceRect rect;
       RSurfaceSum s;
+      double tn = 0.;
       guint i;
       polygon_init (sim, &poly, child.c[n], &t->rs);
       r_surface_sum_init (&s);
       rect[0].l = poly.c.x - poly.h/2.; rect[0].h = poly.c.x + poly.h/2.; 
       rect[1].l = poly.c.y - poly.h/2.; rect[1].h = poly.c.y + poly.h/2.; 
-      for (i = 0; i < poly.rs->nrs; i++)
+      for (i = 0; i < poly.rs->nrs; i++) {
+	RSurfaceSum stmp;
+	r_surface_sum_init (&stmp);
 	r_surface_query_region_sum (poly.rs->rs[i],
 				    (RSurfaceCheck) polygon_includes,
 				    (RSurfaceCheck) polygon_intersects, &poly, 
-				    rect, &s);
-      if (s.n > 0)
-	GFS_VALUE (child.c[n], v) = s.H0/s.n/sim->physical_params.L;
+				    rect, &stmp);
+	add_weighted_rsurface_sum (&s, &tn, &stmp, poly.rs->weight[i]);
+      }
+      GFS_VALUE (child.c[n], t->n) = tn;
+      if (tn > 0.) {
+	GFS_VALUE (child.c[n], v) = s.H0/tn/sim->physical_params.L;
+	GFS_VALUE (child.c[n], t->dmin) = s.Hmin;
+	GFS_VALUE (child.c[n], t->dmax) = s.Hmax;
+      }
       else {
 	GFS_VALUE (child.c[n], v) = GFS_VALUE (parent, v);
+	GFS_VALUE (child.c[n], t->dmin) = GFS_NODATA;
+	GFS_VALUE (child.c[n], t->dmax) = GFS_NODATA;
 	if (!GFS_CELL_IS_BOUNDARY (parent)) {
 	  FttVector p;
 	  FttComponent c;
@@ -1470,17 +1558,34 @@ static void variable_terrain_coarse_fine (FttCell * parent, GfsVariable * v)
   /* If we are part of GfsRiver, reconstruct H and P */
   if (t->H) {
     /* Reconstruct H */
-    if (GFS_VALUE (parent, t->p) < GFS_RIVER_DRY) {
+    double dry = GFS_RIVER (sim)->dry;
+    if (GFS_VALUE (parent, t->p) < dry) {
       /* Dry cell */
       FttCellNeighbors neighbor;
       ftt_cell_neighbors (parent, &neighbor);
       FttDirection d;
       gdouble H = 0., s = 0.;
+
       for (d = 0; d < FTT_NEIGHBORS; d++)
-	if (neighbor.c[d] && GFS_VALUE (neighbor.c[d], t->p) >= GFS_RIVER_DRY) {
-	  H += GFS_VALUE (neighbor.c[d], t->H);
-	  s += 1.;
+	if (neighbor.c[d]) {
+	  if (FTT_CELL_IS_LEAF (neighbor.c[d])) {
+	    if (GFS_VALUE (neighbor.c[d], t->p) >= dry) {
+	       H += GFS_VALUE (neighbor.c[d], t->p)*GFS_VALUE (neighbor.c[d], t->H);
+	       s += GFS_VALUE (neighbor.c[d], t->p);
+	    }
+	  }
+	  else {
+	    FttCellChildren child;
+	    guint i, n = ftt_cell_children_direction (neighbor.c[d],
+						      FTT_OPPOSITE_DIRECTION (d), &child);
+	    for (i = 0; i < n; i++)
+	      if (child.c[i] && GFS_VALUE (child.c[i], t->p) >= dry) {
+		H += GFS_VALUE (child.c[i], t->p)*GFS_VALUE (child.c[i], t->H);
+		s += GFS_VALUE (child.c[i], t->p);
+	      }
+	  }
 	}
+      
       if (s > 0.) {
 	H /= s; /* average H of neighbouring wet cells */
 	for (n = 0; n < FTT_CELLS; n++)
@@ -1490,7 +1595,7 @@ static void variable_terrain_coarse_fine (FttCell * parent, GfsVariable * v)
       else { /* surrounded by dry cells */
 	for (n = 0; n < FTT_CELLS; n++)
 	  if (child.c[n])
-	    GFS_VALUE (child.c[n], t->H) = GFS_VALUE (child.c[n], v); /* dry cell */
+	    GFS_VALUE (child.c[n], t->H) = 0.; /* default "sealevel" */
       }
     }
     else {
@@ -1507,8 +1612,8 @@ static void variable_terrain_coarse_fine (FttCell * parent, GfsVariable * v)
 	ftt_cell_neighbors (parent, &neighbor);
 
 	for (c = 0; c < FTT_DIMENSION; c++)
-	  if (neighbor.c[2*c] && GFS_VALUE (neighbor.c[2*c], t->p) >= GFS_RIVER_DRY &&
-	      neighbor.c[2*c + 1] && GFS_VALUE (neighbor.c[2*c + 1], t->p) >= GFS_RIVER_DRY)
+	  if (neighbor.c[2*c] && GFS_VALUE (neighbor.c[2*c], t->p) >= dry &&
+	      neighbor.c[2*c + 1] && GFS_VALUE (neighbor.c[2*c + 1], t->p) >= dry)
 	    (&g.x)[c] = gfs_center_minmod_gradient (parent, c, v->i);
 	  else
 	    (&g.x)[c] = 0.;
@@ -1535,28 +1640,37 @@ static void variable_terrain_coarse_fine (FttCell * parent, GfsVariable * v)
 
 static void variable_terrain_fine_coarse (FttCell * parent, GfsVariable * v)
 {
+  GfsVariableTerrain * t = GFS_VARIABLE_TERRAIN (v);
   FttCellChildren child;
   guint n;
 
   /* Reconstruct terrain (weighted average) */
   gdouble Zb = 0., sa = 0.;
+  gdouble N = 0., dmin = G_MAXDOUBLE, dmax = - G_MAXDOUBLE;
   ftt_cell_children (parent, &child);
   for (n = 0; n < FTT_CELLS; n++) 
     if (child.c[n]) {
       gdouble a = GFS_IS_MIXED (child.c[n]) ? GFS_STATE (child.c[n])->solid->a : 1.;
       Zb += GFS_VALUE (child.c[n], v)*a;
       sa += a;
+      N += GFS_VALUE (child.c[n], t->n);
+      if (GFS_VALUE (child.c[n], t->n) > 0) {
+	dmax = MAX (dmax, GFS_VALUE (child.c[n], t->dmax));
+	dmin = MIN (dmin, GFS_VALUE (child.c[n], t->dmin));
+      }
     }
   if (sa > 0.)
     GFS_VALUE (parent, v) = Zb/sa;
+  GFS_VALUE (parent, t->n) = N;
+  GFS_VALUE (parent, t->dmax) = dmax > - G_MAXDOUBLE ? dmax : GFS_NODATA;
+  GFS_VALUE (parent, t->dmin) = dmin <   G_MAXDOUBLE ? dmin : GFS_NODATA;
 
   /* If we are part of GfsRiver, reconstruct H and P */
-  GfsVariableTerrain * t = GFS_VARIABLE_TERRAIN (v);
   if (t->H) {
     /* Reconstruct H */
     gdouble H = 0., sa = 0.;
     for (n = 0; n < FTT_CELLS; n++) 
-      if (child.c[n] && GFS_VALUE (child.c[n], t->p) >= GFS_RIVER_DRY) {
+      if (child.c[n] && GFS_VALUE (child.c[n], t->p) >= GFS_RIVER (v->domain)->dry) {
 	gdouble a = GFS_IS_MIXED (child.c[n]) ? GFS_STATE (child.c[n])->solid->a : 1.;
 	H += GFS_VALUE (child.c[n], t->H)*a;
 	sa += a;
@@ -1591,6 +1705,22 @@ static void variable_terrain_read (GtsObject ** o, GtsFile * fp)
   v1->fine_coarse = variable_terrain_fine_coarse;
 
   GfsSimulation * sim = gfs_object_simulation (*o);
+  gchar * name = g_strjoin (NULL, v1->name, "n", NULL);
+  v->n = gfs_domain_get_or_add_variable (GFS_DOMAIN (sim), name, "Terrain samples #");
+  v->n->coarse_fine = none;
+  v->n->fine_coarse = none;
+  g_free (name);
+  name = g_strjoin (NULL, v1->name, "dmin", NULL);
+  v->dmin = gfs_domain_get_or_add_variable (GFS_DOMAIN (sim), name, "Minimum data height");
+  v->dmin->coarse_fine = none;
+  v->dmin->fine_coarse = none;
+  g_free (name);
+  name = g_strjoin (NULL, v1->name, "dmax", NULL);
+  v->dmax = gfs_domain_get_or_add_variable (GFS_DOMAIN (sim), name, "Maximum data height");
+  v->dmax->coarse_fine = none;
+  v->dmax->fine_coarse = none;
+  g_free (name);
+
   if (GFS_IS_RIVER (sim) && fp->type == '{') {
     gboolean reconstruct = FALSE;
     GtsFileVariable var[] = {
diff --git a/modules/tide.mod b/modules/tide.mod
index 15d8ffa..9f3bcf1 100644
--- a/modules/tide.mod
+++ b/modules/tide.mod
@@ -17,7 +17,6 @@
  * 02111-1307, USA.  
  */
 
-#define _XOPEN_SOURCE /* glibc2 needs this for strptime() */
 #include <string.h>
 #include <errno.h>
 #include <time.h>
diff --git a/modules/wavewatch.mod b/modules/wavewatch.mod
index 7028c27..fb60f21 100644
--- a/modules/wavewatch.mod
+++ b/modules/wavewatch.mod
@@ -20,6 +20,9 @@
 #include <errno.h>
 #include <unistd.h>
 #include <sys/wait.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include "init.h"
 #include "wave.h"
 #include "config.h"
 #if WW3_VERSION == 222
@@ -176,8 +179,15 @@ static void initialize (GfsWave * wave)
   if (!initialized) {
 
     /* Creates temporary directory */
+#if 0 /* mkdtemp() is not defined on all systems (only POSIX 2008-compliant systems) */
     char template[] = "/tmp/gfswavewatch.XXXXXX", * tmp;
     tmp = mkdtemp (template);
+#else /* use C89 functions */
+    char template[L_tmpnam], * tmp;
+    tmp = tmpnam (template);
+    if (mkdir (tmp, S_IRUSR | S_IWUSR | S_IXUSR))
+      tmp = NULL;
+#endif
     if (tmp == NULL) {
       g_log (G_LOG_DOMAIN, G_LOG_LEVEL_ERROR, 
 	     "wavewatch module: could not create temporary directory\n"
@@ -282,7 +292,10 @@ static void wavewatch_source (GfsWave * wave)
     p.CG[i] = 9.81/omega/2.;
   }
 
+  gfs_catch_floating_point_exceptions ();
   gfs_domain_traverse_leaves (domain, (FttCellTraverseFunc) source, &p);
+  if (gfs_restore_floating_point_exceptions ())
+    g_warning ("floating-point exceptions caught in wavewatch module");
 
   g_free (p.A);
   g_free (p.CG);
diff --git a/modules/wavewatch/Makefile.in b/modules/wavewatch/Makefile.in
index 901391f..063f021 100644
--- a/modules/wavewatch/Makefile.in
+++ b/modules/wavewatch/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11 from Makefile.am.
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -103,9 +103,10 @@ ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
 F77 = @F77@
+FC = @FC@
+FCFLAGS = @FCFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
-GFS2D3_LIBS = @GFS2D3_LIBS@
 GFS2D_LIBS = @GFS2D_LIBS@
 GFS3D_LIBS = @GFS3D_LIBS@
 GFS_COMPILATION_FLAGS = @GFS_COMPILATION_FLAGS@
@@ -140,6 +141,7 @@ LT_RELEASE = @LT_RELEASE@
 LT_REVISION = @LT_REVISION@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MODULES = @MODULES@
 NM = @NM@
@@ -147,6 +149,8 @@ NMEDIT = @NMEDIT@
 NO_UNDEFINED = @NO_UNDEFINED@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
+ODE_CFLAGS = @ODE_CFLAGS@
+ODE_LIBS = @ODE_LIBS@
 OTOOL = @OTOOL@
 OTOOL64 = @OTOOL64@
 PACKAGE = @PACKAGE@
@@ -168,9 +172,11 @@ abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
 ac_ct_F77 = @ac_ct_F77@
+ac_ct_FC = @ac_ct_FC@
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
 am__quote = @am__quote@
@@ -207,9 +213,9 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
+ode = @ode@
 oldincludedir = @oldincludedir@
 pdfdir = @pdfdir@
 prefix = @prefix@
diff --git a/modules/xyz2rsurface.c b/modules/xyz2rsurface.c
index 7c1185e..f9e2bb5 100644
--- a/modules/xyz2rsurface.c
+++ b/modules/xyz2rsurface.c
@@ -19,6 +19,7 @@
 
 #include <stdio.h>
 #include <stdlib.h>
+#include <sys/wait.h>
 
 #include "config.h"
 #ifdef HAVE_GETOPT_H
@@ -28,29 +29,41 @@
 #include "ftt.h"
 #include "rsurface.h"
 
+static int includes_true (RSurfaceRect RSTrect)
+{
+  return 1;
+}
+
 int main (int argc, char** argv)
 {
+  fprintf (stderr, "ERROR: xyz2rsurface is obsolete, please use xyz2kdt instead\n");
+  return 1; /* failure */
+
   int c = 0, pagesize = 2048;
-  int verbose = 0;
+  int randomize = 0, verbose = 0;
 
   /* parse options using getopt */
   while (c != EOF) {
 #ifdef HAVE_GETOPT_LONG
     static struct option long_options[] = {
       {"pagesize", required_argument, NULL, 'p'},
+      {"randomize", no_argument, NULL, 'r'},
       {"verbose", no_argument, NULL, 'v'},
       {"help", no_argument, NULL, 'h'},
       { NULL }
     };
     int option_index = 0;
-    switch ((c = getopt_long (argc, argv, "p:vh",
+    switch ((c = getopt_long (argc, argv, "p:vhr",
 			      long_options, &option_index))) {
 #else /* not HAVE_GETOPT_LONG */
-    switch ((c = getopt (argc, argv, "p:vh"))) {
+    switch ((c = getopt (argc, argv, "p:vhr"))) {
 #endif /* not HAVE_GETOPT_LONG */
     case 'p': /* pagesize */
       pagesize = atoi (optarg);
       break;
+    case 'r': /* randomize */
+      randomize = 1;
+      break;
     case 'v': /* verbose */
       verbose = 1;
       break;
@@ -63,6 +76,7 @@ int main (int argc, char** argv)
 	       "GfsRefineTerrain object of Gerris.\n"
 	       "\n"
 	       "  -p N  --pagesize=N  sets the pagesize in bytes (default is 2048)\n"
+	       "  -r    --randomize   randomize (shuffle) the input\n"
 	       "  -v    --verbose     display progress bar\n"
 	       "  -h    --help        display this help and exit\n"
 	       "\n"
@@ -87,10 +101,24 @@ int main (int argc, char** argv)
   if (rs == NULL) {
     fprintf (stderr, "xyz2rsurface: cannot open files `%s*'\n", argv[optind]);
     return 1;
+  }  
+
+  FILE * input;
+  if (!randomize)
+    input = stdin;
+  else {
+    input = popen ("awk '{ printf(\"%5d %s\\n\", int (rand()*2**16), $0); }' "
+		   "| sort -T. -n -k 1,2 | cut -c7-", "r");
+    if (input == NULL) {
+      fprintf (stderr, "xyz2rsurface: could not open randomization pipe\n");
+      perror ("");
+      return 1;
+    }
   }
+  
   double x[3];
   int count = 0;
-  while (scanf ("%lf %lf %lf", &x[0], &x[1], &x[2]) == 3) {
+  while (fscanf (input, "%lf %lf %lf", &x[0], &x[1], &x[2]) == 3) {
     if (!r_surface_insert (rs, x, 0)) {
       fprintf (stderr, "\nxyz2rsurface: error inserting point #%d (%g,%g,%g)\n",
 	       count, x[0], x[1], x[2]);
@@ -105,6 +133,52 @@ int main (int argc, char** argv)
     fprintf (stderr, "xyz2rsurface: updating...\n");
   }
   r_surface_update (rs);
+
+  if (randomize) {
+    int status = pclose (input);
+    if (status == -1) {
+      fprintf (stderr, "xyz2rsurface: failed to close randomization pipe\n");
+      perror ("");
+      return 1;
+    }
+    status = WEXITSTATUS (status);
+    if (status != 0) {
+      fprintf (stderr, "xyz2rsurface: the randomization pipe returned error %d\n", status);
+      return 1;
+    }
+  }
+
+  if (verbose) {
+    RSurfaceRect rect = {{-0.5,-0.5},{0.5,0.5}};
+    RSurfaceSum sum;
+
+    r_surface_sum_init (&sum);
+    r_surface_query_region_sum (rs, 
+				(RSurfaceCheck) includes_true, (RSurfaceCheck) includes_true, NULL,
+				rect, &sum);
+    fprintf (stderr,
+	     "Height min: %g average: %g max: %g\n", 
+	     sum.Hmin, sum.H0/sum.n, sum.Hmax);
+
+    RSurfaceStats * s = r_surface_stats_new (rs, -1);
+    fprintf (stderr, "Level\tAverage # of entries\tAspect ratios percentiles\n");
+    fprintf (stderr, "     \t                    \t  50%%   75%%   95%%   100%%\n");
+    int i;
+    for (i = 1; i < s->nlevel; i++) {
+      fprintf (stderr, "%5d\t", i + 1);
+      if (i < s->nlevel - 1)
+	fprintf (stderr, "      %4.2f\t\t", s->nentries[i + 1]/(double)s->nentries[i]);
+      else
+	fprintf (stderr, "         -\t\t");
+      fprintf (stderr, "%5.1f %5.1f %5.1f %5.1f\n",
+	       1./s->aspect[i][(int) (0.50*(s->nentries[i] - 1))],
+	       1./s->aspect[i][(int) (0.75*(s->nentries[i] - 1))],
+	       1./s->aspect[i][(int) (0.95*(s->nentries[i] - 1))],
+	       1./s->aspect[i][(int) (1.00*(s->nentries[i] - 1))]);
+    }
+    r_surface_stats_free (s);
+  }
+
   r_surface_close (rs);
 
   return 0.;
diff --git a/src/Makefile.am b/src/Makefile.am
index d0ec605..8b07f68 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -7,23 +7,21 @@ AM_CPPFLAGS = -DGFS_MODULES_DIR=\"$(libdir)/gerris\"
 INCLUDES = -I$(top_srcdir) -I$(includedir) \
            -DG_LOG_DOMAIN=\"Gfs\" $(GTS_CFLAGS)
 
-bin_SCRIPTS=gfs-config
+bin_SCRIPTS = gfs-config
 
 gfs-config: gfs-config.in
 gerris2D.pc: gerris2D.pc.in
-gerris2D3.pc: gerris2D3.pc.in
 gerris3D.pc: gerris3D.pc.in
 
 pkgconfigdir = $(libdir)/pkgconfig
-pkgconfig_DATA = gerris2D.pc gerris3D.pc gerris2D3.pc
+pkgconfig_DATA = gerris2D.pc gerris3D.pc
 pkglib_DATA = m4.awk
 
-lib_LTLIBRARIES = libgfs2D.la libgfs3D.la libgfs2D3.la
+lib_LTLIBRARIES = libgfs2D.la libgfs3D.la
 
 BUILT_SOURCES= \
 	gfs-config  \
 	gerris2D.pc \
-	gerris2D3.pc \
 	gerris3D.pc
 
 GFS_HDS = \
@@ -60,6 +58,7 @@ GFS_HDS = \
 	moving.h \
 	balance.h \
 	metric.h \
+	particle.h \
 	version.h
 
 pkginclude_HEADERS = \
@@ -106,6 +105,7 @@ SRC = \
 	moving.c \
 	balance.c \
 	metric.c \
+        particle.c \
 	$(GFS_HDS)
 
 domain.c: version.h
@@ -121,12 +121,6 @@ libgfs2D_la_LDFLAGS = $(NO_UNDEFINED)\
 libgfs2D_la_SOURCES = $(SRC)
 libgfs2D_la_CFLAGS = $(AM_CFLAGS) -DFTT_2D=1
 
-libgfs2D3_la_LDFLAGS = $(NO_UNDEFINED)\
-        -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE)\
-	-release $(LT_RELEASE) -export-dynamic
-libgfs2D3_la_SOURCES = $(SRC)
-libgfs2D3_la_CFLAGS = $(AM_CFLAGS) -DFTT_2D3=1
-
 CLEANFILES = $(BUILT_SOURCES)
 
 EXTRA_DIST = \
@@ -134,18 +128,16 @@ EXTRA_DIST = \
 	moving2.c \
 	m4.awk
 
-bin_PROGRAMS = gerris2D gerris3D gerris2D3
+bin_PROGRAMS = gerris2D gerris3D
 
 gerris2D_SOURCES = gerris.c
 gerris2D_CFLAGS = $(AM_CFLAGS) -DFTT_2D=1
 gerris2D_LDADD = $(GFS2D_LIBS)
+gerris2D_DEPENDENCIES = libgfs2D.la
 
 gerris3D_SOURCES = gerris.c
 gerris3D_LDADD = $(GFS3D_LIBS)
-
-gerris2D3_SOURCES = gerris.c
-gerris2D3_CFLAGS = $(AM_CFLAGS) -DFTT_2D3=1
-gerris2D3_LDADD = $(GFS2D3_LIBS)
+gerris3D_DEPENDENCIES = libgfs3D.la
 
 if DARCS_CONTROLLED
 DARCS_VERSION = darcsversion
diff --git a/src/Makefile.in b/src/Makefile.in
index f9a8190..791421b 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11 from Makefile.am.
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -38,12 +38,12 @@ PRE_UNINSTALL = :
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
-bin_PROGRAMS = gerris2D$(EXEEXT) gerris3D$(EXEEXT) gerris2D3$(EXEEXT)
+bin_PROGRAMS = gerris2D$(EXEEXT) gerris3D$(EXEEXT)
 subdir = src
 DIST_COMMON = $(include_HEADERS) $(pkginclude_HEADERS) \
 	$(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-	$(srcdir)/gerris2D.pc.in $(srcdir)/gerris2D3.pc.in \
-	$(srcdir)/gerris3D.pc.in $(srcdir)/gfs-config.in
+	$(srcdir)/gerris2D.pc.in $(srcdir)/gerris3D.pc.in \
+	$(srcdir)/gfs-config.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
 	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
@@ -53,7 +53,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES = gfs-config gerris2D.pc gerris2D3.pc gerris3D.pc
+CONFIG_CLEAN_FILES = gfs-config gerris2D.pc gerris3D.pc
 CONFIG_CLEAN_VPATH_FILES =
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
 am__vpath_adj = case $$p in \
@@ -97,44 +97,22 @@ am__objects_2 = libgfs2D_la-ftt.lo libgfs2D_la-fluid.lo \
 	libgfs2D_la-levelset.lo libgfs2D_la-cartesian.lo \
 	libgfs2D_la-surface.lo libgfs2D_la-unstructured.lo \
 	libgfs2D_la-map.lo libgfs2D_la-river.lo libgfs2D_la-moving.lo \
-	libgfs2D_la-balance.lo libgfs2D_la-metric.lo $(am__objects_1)
+	libgfs2D_la-balance.lo libgfs2D_la-metric.lo \
+	libgfs2D_la-particle.lo $(am__objects_1)
 am_libgfs2D_la_OBJECTS = $(am__objects_2)
 libgfs2D_la_OBJECTS = $(am_libgfs2D_la_OBJECTS)
 libgfs2D_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(libgfs2D_la_CFLAGS) \
 	$(CFLAGS) $(libgfs2D_la_LDFLAGS) $(LDFLAGS) -o $@
-libgfs2D3_la_LIBADD =
-am__objects_3 = libgfs2D3_la-ftt.lo libgfs2D3_la-fluid.lo \
-	libgfs2D3_la-variable.lo libgfs2D3_la-output.lo \
-	libgfs2D3_la-solid.lo libgfs2D3_la-poisson.lo \
-	libgfs2D3_la-advection.lo libgfs2D3_la-boundary.lo \
-	libgfs2D3_la-mpi_boundary.lo libgfs2D3_la-timestep.lo \
-	libgfs2D3_la-domain.lo libgfs2D3_la-init.lo \
-	libgfs2D3_la-refine.lo libgfs2D3_la-event.lo \
-	libgfs2D3_la-simulation.lo libgfs2D3_la-graphic.lo \
-	libgfs2D3_la-adaptive.lo libgfs2D3_la-source.lo \
-	libgfs2D3_la-tension.lo libgfs2D3_la-vof.lo \
-	libgfs2D3_la-utils.lo libgfs2D3_la-ocean.lo \
-	libgfs2D3_la-wave.lo libgfs2D3_la-levelset.lo \
-	libgfs2D3_la-cartesian.lo libgfs2D3_la-surface.lo \
-	libgfs2D3_la-unstructured.lo libgfs2D3_la-map.lo \
-	libgfs2D3_la-river.lo libgfs2D3_la-moving.lo \
-	libgfs2D3_la-balance.lo libgfs2D3_la-metric.lo \
-	$(am__objects_1)
-am_libgfs2D3_la_OBJECTS = $(am__objects_3)
-libgfs2D3_la_OBJECTS = $(am_libgfs2D3_la_OBJECTS)
-libgfs2D3_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(libgfs2D3_la_CFLAGS) \
-	$(CFLAGS) $(libgfs2D3_la_LDFLAGS) $(LDFLAGS) -o $@
 libgfs3D_la_LIBADD =
-am__objects_4 = ftt.lo fluid.lo variable.lo output.lo solid.lo \
+am__objects_3 = ftt.lo fluid.lo variable.lo output.lo solid.lo \
 	poisson.lo advection.lo boundary.lo mpi_boundary.lo \
 	timestep.lo domain.lo init.lo refine.lo event.lo simulation.lo \
 	graphic.lo adaptive.lo source.lo tension.lo vof.lo utils.lo \
 	ocean.lo wave.lo levelset.lo cartesian.lo surface.lo \
 	unstructured.lo map.lo river.lo moving.lo balance.lo metric.lo \
-	$(am__objects_1)
-am_libgfs3D_la_OBJECTS = $(am__objects_4)
+	particle.lo $(am__objects_1)
+am_libgfs3D_la_OBJECTS = $(am__objects_3)
 libgfs3D_la_OBJECTS = $(am_libgfs3D_la_OBJECTS)
 libgfs3D_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
@@ -143,19 +121,11 @@ PROGRAMS = $(bin_PROGRAMS)
 am_gerris2D_OBJECTS = gerris2D-gerris.$(OBJEXT)
 gerris2D_OBJECTS = $(am_gerris2D_OBJECTS)
 am__DEPENDENCIES_1 =
-gerris2D_DEPENDENCIES = $(am__DEPENDENCIES_1)
 gerris2D_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
 	--mode=link $(CCLD) $(gerris2D_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
 	$(LDFLAGS) -o $@
-am_gerris2D3_OBJECTS = gerris2D3-gerris.$(OBJEXT)
-gerris2D3_OBJECTS = $(am_gerris2D3_OBJECTS)
-gerris2D3_DEPENDENCIES = $(am__DEPENDENCIES_1)
-gerris2D3_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(gerris2D3_CFLAGS) \
-	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
 am_gerris3D_OBJECTS = gerris.$(OBJEXT)
 gerris3D_OBJECTS = $(am_gerris3D_OBJECTS)
-gerris3D_DEPENDENCIES = $(am__DEPENDENCIES_1)
 SCRIPTS = $(bin_SCRIPTS)
 DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
@@ -170,12 +140,10 @@ CCLD = $(CC)
 LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
 	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
 	$(LDFLAGS) -o $@
-SOURCES = $(libgfs2D_la_SOURCES) $(libgfs2D3_la_SOURCES) \
-	$(libgfs3D_la_SOURCES) $(gerris2D_SOURCES) \
-	$(gerris2D3_SOURCES) $(gerris3D_SOURCES)
-DIST_SOURCES = $(libgfs2D_la_SOURCES) $(libgfs2D3_la_SOURCES) \
-	$(libgfs3D_la_SOURCES) $(gerris2D_SOURCES) \
-	$(gerris2D3_SOURCES) $(gerris3D_SOURCES)
+SOURCES = $(libgfs2D_la_SOURCES) $(libgfs3D_la_SOURCES) \
+	$(gerris2D_SOURCES) $(gerris3D_SOURCES)
+DIST_SOURCES = $(libgfs2D_la_SOURCES) $(libgfs3D_la_SOURCES) \
+	$(gerris2D_SOURCES) $(gerris3D_SOURCES)
 DATA = $(pkgconfig_DATA) $(pkglib_DATA)
 HEADERS = $(include_HEADERS) $(pkginclude_HEADERS)
 ETAGS = etags
@@ -206,9 +174,10 @@ ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
 F77 = @F77@
+FC = @FC@
+FCFLAGS = @FCFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
-GFS2D3_LIBS = @GFS2D3_LIBS@
 GFS2D_LIBS = @GFS2D_LIBS@
 GFS3D_LIBS = @GFS3D_LIBS@
 GFS_COMPILATION_FLAGS = @GFS_COMPILATION_FLAGS@
@@ -243,6 +212,7 @@ LT_RELEASE = @LT_RELEASE@
 LT_REVISION = @LT_REVISION@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MODULES = @MODULES@
 NM = @NM@
@@ -250,6 +220,8 @@ NMEDIT = @NMEDIT@
 NO_UNDEFINED = @NO_UNDEFINED@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
+ODE_CFLAGS = @ODE_CFLAGS@
+ODE_LIBS = @ODE_LIBS@
 OTOOL = @OTOOL@
 OTOOL64 = @OTOOL64@
 PACKAGE = @PACKAGE@
@@ -271,9 +243,11 @@ abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
 ac_ct_F77 = @ac_ct_F77@
+ac_ct_FC = @ac_ct_FC@
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
 am__quote = @am__quote@
@@ -310,9 +284,9 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
+ode = @ode@
 oldincludedir = @oldincludedir@
 pdfdir = @pdfdir@
 prefix = @prefix@
@@ -334,13 +308,12 @@ INCLUDES = -I$(top_srcdir) -I$(includedir) \
 
 bin_SCRIPTS = gfs-config
 pkgconfigdir = $(libdir)/pkgconfig
-pkgconfig_DATA = gerris2D.pc gerris3D.pc gerris2D3.pc
+pkgconfig_DATA = gerris2D.pc gerris3D.pc
 pkglib_DATA = m4.awk
-lib_LTLIBRARIES = libgfs2D.la libgfs3D.la libgfs2D3.la
+lib_LTLIBRARIES = libgfs2D.la libgfs3D.la
 BUILT_SOURCES = \
 	gfs-config  \
 	gerris2D.pc \
-	gerris2D3.pc \
 	gerris3D.pc
 
 GFS_HDS = \
@@ -377,6 +350,7 @@ GFS_HDS = \
 	moving.h \
 	balance.h \
 	metric.h \
+	particle.h \
 	version.h
 
 pkginclude_HEADERS = \
@@ -423,6 +397,7 @@ SRC = \
 	moving.c \
 	balance.c \
 	metric.c \
+        particle.c \
 	$(GFS_HDS)
 
 libgfs3D_la_LDFLAGS = $(NO_UNDEFINED)\
@@ -436,12 +411,6 @@ libgfs2D_la_LDFLAGS = $(NO_UNDEFINED)\
 
 libgfs2D_la_SOURCES = $(SRC)
 libgfs2D_la_CFLAGS = $(AM_CFLAGS) -DFTT_2D=1
-libgfs2D3_la_LDFLAGS = $(NO_UNDEFINED)\
-        -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE)\
-	-release $(LT_RELEASE) -export-dynamic
-
-libgfs2D3_la_SOURCES = $(SRC)
-libgfs2D3_la_CFLAGS = $(AM_CFLAGS) -DFTT_2D3=1
 CLEANFILES = $(BUILT_SOURCES)
 EXTRA_DIST = \
 	ftt_internal.c \
@@ -451,11 +420,10 @@ EXTRA_DIST = \
 gerris2D_SOURCES = gerris.c
 gerris2D_CFLAGS = $(AM_CFLAGS) -DFTT_2D=1
 gerris2D_LDADD = $(GFS2D_LIBS)
+gerris2D_DEPENDENCIES = libgfs2D.la
 gerris3D_SOURCES = gerris.c
 gerris3D_LDADD = $(GFS3D_LIBS)
-gerris2D3_SOURCES = gerris.c
-gerris2D3_CFLAGS = $(AM_CFLAGS) -DFTT_2D3=1
-gerris2D3_LDADD = $(GFS2D3_LIBS)
+gerris3D_DEPENDENCIES = libgfs3D.la
 @DARCS_CONTROLLED_FALSE at DARCS_VERSION = 
 @DARCS_CONTROLLED_TRUE at DARCS_VERSION = darcsversion
 all: $(BUILT_SOURCES)
@@ -497,8 +465,6 @@ gfs-config: $(top_builddir)/config.status $(srcdir)/gfs-config.in
 	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
 gerris2D.pc: $(top_builddir)/config.status $(srcdir)/gerris2D.pc.in
 	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
-gerris2D3.pc: $(top_builddir)/config.status $(srcdir)/gerris2D3.pc.in
-	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
 gerris3D.pc: $(top_builddir)/config.status $(srcdir)/gerris3D.pc.in
 	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
 install-libLTLIBRARIES: $(lib_LTLIBRARIES)
@@ -534,8 +500,6 @@ clean-libLTLIBRARIES:
 	done
 libgfs2D.la: $(libgfs2D_la_OBJECTS) $(libgfs2D_la_DEPENDENCIES) 
 	$(libgfs2D_la_LINK) -rpath $(libdir) $(libgfs2D_la_OBJECTS) $(libgfs2D_la_LIBADD) $(LIBS)
-libgfs2D3.la: $(libgfs2D3_la_OBJECTS) $(libgfs2D3_la_DEPENDENCIES) 
-	$(libgfs2D3_la_LINK) -rpath $(libdir) $(libgfs2D3_la_OBJECTS) $(libgfs2D3_la_LIBADD) $(LIBS)
 libgfs3D.la: $(libgfs3D_la_OBJECTS) $(libgfs3D_la_DEPENDENCIES) 
 	$(libgfs3D_la_LINK) -rpath $(libdir) $(libgfs3D_la_OBJECTS) $(libgfs3D_la_LIBADD) $(LIBS)
 install-binPROGRAMS: $(bin_PROGRAMS)
@@ -584,9 +548,6 @@ clean-binPROGRAMS:
 gerris2D$(EXEEXT): $(gerris2D_OBJECTS) $(gerris2D_DEPENDENCIES) 
 	@rm -f gerris2D$(EXEEXT)
 	$(gerris2D_LINK) $(gerris2D_OBJECTS) $(gerris2D_LDADD) $(LIBS)
-gerris2D3$(EXEEXT): $(gerris2D3_OBJECTS) $(gerris2D3_DEPENDENCIES) 
-	@rm -f gerris2D3$(EXEEXT)
-	$(gerris2D3_LINK) $(gerris2D3_OBJECTS) $(gerris2D3_LDADD) $(LIBS)
 gerris3D$(EXEEXT): $(gerris3D_OBJECTS) $(gerris3D_DEPENDENCIES) 
 	@rm -f gerris3D$(EXEEXT)
 	$(LINK) $(gerris3D_OBJECTS) $(gerris3D_LDADD) $(LIBS)
@@ -642,42 +603,9 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ftt.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gerris.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gerris2D-gerris.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gerris2D3-gerris.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/graphic.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/init.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/levelset.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgfs2D3_la-adaptive.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgfs2D3_la-advection.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgfs2D3_la-balance.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgfs2D3_la-boundary.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgfs2D3_la-cartesian.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgfs2D3_la-domain.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgfs2D3_la-event.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgfs2D3_la-fluid.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgfs2D3_la-ftt.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgfs2D3_la-graphic.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgfs2D3_la-init.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgfs2D3_la-levelset.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgfs2D3_la-map.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgfs2D3_la-metric.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgfs2D3_la-moving.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgfs2D3_la-mpi_boundary.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgfs2D3_la-ocean.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgfs2D3_la-output.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgfs2D3_la-poisson.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgfs2D3_la-refine.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgfs2D3_la-river.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgfs2D3_la-simulation.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgfs2D3_la-solid.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgfs2D3_la-source.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgfs2D3_la-surface.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgfs2D3_la-tension.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgfs2D3_la-timestep.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgfs2D3_la-unstructured.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgfs2D3_la-utils.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgfs2D3_la-variable.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgfs2D3_la-vof.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgfs2D3_la-wave.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgfs2D_la-adaptive.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgfs2D_la-advection.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgfs2D_la-balance.Plo at am__quote@
@@ -696,6 +624,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgfs2D_la-mpi_boundary.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgfs2D_la-ocean.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgfs2D_la-output.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgfs2D_la-particle.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgfs2D_la-poisson.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgfs2D_la-refine.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libgfs2D_la-river.Plo at am__quote@
@@ -716,6 +645,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/mpi_boundary.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ocean.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/output.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/particle.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/poisson.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/refine.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/river.Plo at am__quote@
@@ -976,229 +906,12 @@ libgfs2D_la-metric.lo: metric.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D_la_CFLAGS) $(CFLAGS) -c -o libgfs2D_la-metric.lo `test -f 'metric.c' || echo '$(srcdir)/'`metric.c
 
-libgfs2D3_la-ftt.lo: ftt.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -MT libgfs2D3_la-ftt.lo -MD -MP -MF $(DEPDIR)/libgfs2D3_la-ftt.Tpo -c -o libgfs2D3_la-ftt.lo `test -f 'ftt.c' || echo '$(srcdir)/'`ftt.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libgfs2D3_la-ftt.Tpo $(DEPDIR)/libgfs2D3_la-ftt.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='ftt.c' object='libgfs2D3_la-ftt.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -c -o libgfs2D3_la-ftt.lo `test -f 'ftt.c' || echo '$(srcdir)/'`ftt.c
-
-libgfs2D3_la-fluid.lo: fluid.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -MT libgfs2D3_la-fluid.lo -MD -MP -MF $(DEPDIR)/libgfs2D3_la-fluid.Tpo -c -o libgfs2D3_la-fluid.lo `test -f 'fluid.c' || echo '$(srcdir)/'`fluid.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libgfs2D3_la-fluid.Tpo $(DEPDIR)/libgfs2D3_la-fluid.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='fluid.c' object='libgfs2D3_la-fluid.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -c -o libgfs2D3_la-fluid.lo `test -f 'fluid.c' || echo '$(srcdir)/'`fluid.c
-
-libgfs2D3_la-variable.lo: variable.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -MT libgfs2D3_la-variable.lo -MD -MP -MF $(DEPDIR)/libgfs2D3_la-variable.Tpo -c -o libgfs2D3_la-variable.lo `test -f 'variable.c' || echo '$(srcdir)/'`variable.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libgfs2D3_la-variable.Tpo $(DEPDIR)/libgfs2D3_la-variable.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='variable.c' object='libgfs2D3_la-variable.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -c -o libgfs2D3_la-variable.lo `test -f 'variable.c' || echo '$(srcdir)/'`variable.c
-
-libgfs2D3_la-output.lo: output.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -MT libgfs2D3_la-output.lo -MD -MP -MF $(DEPDIR)/libgfs2D3_la-output.Tpo -c -o libgfs2D3_la-output.lo `test -f 'output.c' || echo '$(srcdir)/'`output.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libgfs2D3_la-output.Tpo $(DEPDIR)/libgfs2D3_la-output.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='output.c' object='libgfs2D3_la-output.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -c -o libgfs2D3_la-output.lo `test -f 'output.c' || echo '$(srcdir)/'`output.c
-
-libgfs2D3_la-solid.lo: solid.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -MT libgfs2D3_la-solid.lo -MD -MP -MF $(DEPDIR)/libgfs2D3_la-solid.Tpo -c -o libgfs2D3_la-solid.lo `test -f 'solid.c' || echo '$(srcdir)/'`solid.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libgfs2D3_la-solid.Tpo $(DEPDIR)/libgfs2D3_la-solid.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='solid.c' object='libgfs2D3_la-solid.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -c -o libgfs2D3_la-solid.lo `test -f 'solid.c' || echo '$(srcdir)/'`solid.c
-
-libgfs2D3_la-poisson.lo: poisson.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -MT libgfs2D3_la-poisson.lo -MD -MP -MF $(DEPDIR)/libgfs2D3_la-poisson.Tpo -c -o libgfs2D3_la-poisson.lo `test -f 'poisson.c' || echo '$(srcdir)/'`poisson.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libgfs2D3_la-poisson.Tpo $(DEPDIR)/libgfs2D3_la-poisson.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='poisson.c' object='libgfs2D3_la-poisson.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -c -o libgfs2D3_la-poisson.lo `test -f 'poisson.c' || echo '$(srcdir)/'`poisson.c
-
-libgfs2D3_la-advection.lo: advection.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -MT libgfs2D3_la-advection.lo -MD -MP -MF $(DEPDIR)/libgfs2D3_la-advection.Tpo -c -o libgfs2D3_la-advection.lo `test -f 'advection.c' || echo '$(srcdir)/'`advection.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libgfs2D3_la-advection.Tpo $(DEPDIR)/libgfs2D3_la-advection.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='advection.c' object='libgfs2D3_la-advection.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -c -o libgfs2D3_la-advection.lo `test -f 'advection.c' || echo '$(srcdir)/'`advection.c
-
-libgfs2D3_la-boundary.lo: boundary.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -MT libgfs2D3_la-boundary.lo -MD -MP -MF $(DEPDIR)/libgfs2D3_la-boundary.Tpo -c -o libgfs2D3_la-boundary.lo `test -f 'boundary.c' || echo '$(srcdir)/'`boundary.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libgfs2D3_la-boundary.Tpo $(DEPDIR)/libgfs2D3_la-boundary.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='boundary.c' object='libgfs2D3_la-boundary.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -c -o libgfs2D3_la-boundary.lo `test -f 'boundary.c' || echo '$(srcdir)/'`boundary.c
-
-libgfs2D3_la-mpi_boundary.lo: mpi_boundary.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -MT libgfs2D3_la-mpi_boundary.lo -MD -MP -MF $(DEPDIR)/libgfs2D3_la-mpi_boundary.Tpo -c -o libgfs2D3_la-mpi_boundary.lo `test -f 'mpi_boundary.c' || echo '$(srcdir)/'`mpi_boundary.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libgfs2D3_la-mpi_boundary.Tpo $(DEPDIR)/libgfs2D3_la-mpi_boundary.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mpi_boundary.c' object='libgfs2D3_la-mpi_boundary.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -c -o libgfs2D3_la-mpi_boundary.lo `test -f 'mpi_boundary.c' || echo '$(srcdir)/'`mpi_boundary.c
-
-libgfs2D3_la-timestep.lo: timestep.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -MT libgfs2D3_la-timestep.lo -MD -MP -MF $(DEPDIR)/libgfs2D3_la-timestep.Tpo -c -o libgfs2D3_la-timestep.lo `test -f 'timestep.c' || echo '$(srcdir)/'`timestep.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libgfs2D3_la-timestep.Tpo $(DEPDIR)/libgfs2D3_la-timestep.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='timestep.c' object='libgfs2D3_la-timestep.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -c -o libgfs2D3_la-timestep.lo `test -f 'timestep.c' || echo '$(srcdir)/'`timestep.c
-
-libgfs2D3_la-domain.lo: domain.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -MT libgfs2D3_la-domain.lo -MD -MP -MF $(DEPDIR)/libgfs2D3_la-domain.Tpo -c -o libgfs2D3_la-domain.lo `test -f 'domain.c' || echo '$(srcdir)/'`domain.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libgfs2D3_la-domain.Tpo $(DEPDIR)/libgfs2D3_la-domain.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='domain.c' object='libgfs2D3_la-domain.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -c -o libgfs2D3_la-domain.lo `test -f 'domain.c' || echo '$(srcdir)/'`domain.c
-
-libgfs2D3_la-init.lo: init.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -MT libgfs2D3_la-init.lo -MD -MP -MF $(DEPDIR)/libgfs2D3_la-init.Tpo -c -o libgfs2D3_la-init.lo `test -f 'init.c' || echo '$(srcdir)/'`init.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libgfs2D3_la-init.Tpo $(DEPDIR)/libgfs2D3_la-init.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='init.c' object='libgfs2D3_la-init.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -c -o libgfs2D3_la-init.lo `test -f 'init.c' || echo '$(srcdir)/'`init.c
-
-libgfs2D3_la-refine.lo: refine.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -MT libgfs2D3_la-refine.lo -MD -MP -MF $(DEPDIR)/libgfs2D3_la-refine.Tpo -c -o libgfs2D3_la-refine.lo `test -f 'refine.c' || echo '$(srcdir)/'`refine.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libgfs2D3_la-refine.Tpo $(DEPDIR)/libgfs2D3_la-refine.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='refine.c' object='libgfs2D3_la-refine.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -c -o libgfs2D3_la-refine.lo `test -f 'refine.c' || echo '$(srcdir)/'`refine.c
-
-libgfs2D3_la-event.lo: event.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -MT libgfs2D3_la-event.lo -MD -MP -MF $(DEPDIR)/libgfs2D3_la-event.Tpo -c -o libgfs2D3_la-event.lo `test -f 'event.c' || echo '$(srcdir)/'`event.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libgfs2D3_la-event.Tpo $(DEPDIR)/libgfs2D3_la-event.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='event.c' object='libgfs2D3_la-event.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -c -o libgfs2D3_la-event.lo `test -f 'event.c' || echo '$(srcdir)/'`event.c
-
-libgfs2D3_la-simulation.lo: simulation.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -MT libgfs2D3_la-simulation.lo -MD -MP -MF $(DEPDIR)/libgfs2D3_la-simulation.Tpo -c -o libgfs2D3_la-simulation.lo `test -f 'simulation.c' || echo '$(srcdir)/'`simulation.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libgfs2D3_la-simulation.Tpo $(DEPDIR)/libgfs2D3_la-simulation.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='simulation.c' object='libgfs2D3_la-simulation.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -c -o libgfs2D3_la-simulation.lo `test -f 'simulation.c' || echo '$(srcdir)/'`simulation.c
-
-libgfs2D3_la-graphic.lo: graphic.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -MT libgfs2D3_la-graphic.lo -MD -MP -MF $(DEPDIR)/libgfs2D3_la-graphic.Tpo -c -o libgfs2D3_la-graphic.lo `test -f 'graphic.c' || echo '$(srcdir)/'`graphic.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libgfs2D3_la-graphic.Tpo $(DEPDIR)/libgfs2D3_la-graphic.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='graphic.c' object='libgfs2D3_la-graphic.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -c -o libgfs2D3_la-graphic.lo `test -f 'graphic.c' || echo '$(srcdir)/'`graphic.c
-
-libgfs2D3_la-adaptive.lo: adaptive.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -MT libgfs2D3_la-adaptive.lo -MD -MP -MF $(DEPDIR)/libgfs2D3_la-adaptive.Tpo -c -o libgfs2D3_la-adaptive.lo `test -f 'adaptive.c' || echo '$(srcdir)/'`adaptive.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libgfs2D3_la-adaptive.Tpo $(DEPDIR)/libgfs2D3_la-adaptive.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='adaptive.c' object='libgfs2D3_la-adaptive.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -c -o libgfs2D3_la-adaptive.lo `test -f 'adaptive.c' || echo '$(srcdir)/'`adaptive.c
-
-libgfs2D3_la-source.lo: source.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -MT libgfs2D3_la-source.lo -MD -MP -MF $(DEPDIR)/libgfs2D3_la-source.Tpo -c -o libgfs2D3_la-source.lo `test -f 'source.c' || echo '$(srcdir)/'`source.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libgfs2D3_la-source.Tpo $(DEPDIR)/libgfs2D3_la-source.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='source.c' object='libgfs2D3_la-source.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -c -o libgfs2D3_la-source.lo `test -f 'source.c' || echo '$(srcdir)/'`source.c
-
-libgfs2D3_la-tension.lo: tension.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -MT libgfs2D3_la-tension.lo -MD -MP -MF $(DEPDIR)/libgfs2D3_la-tension.Tpo -c -o libgfs2D3_la-tension.lo `test -f 'tension.c' || echo '$(srcdir)/'`tension.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libgfs2D3_la-tension.Tpo $(DEPDIR)/libgfs2D3_la-tension.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='tension.c' object='libgfs2D3_la-tension.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -c -o libgfs2D3_la-tension.lo `test -f 'tension.c' || echo '$(srcdir)/'`tension.c
-
-libgfs2D3_la-vof.lo: vof.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -MT libgfs2D3_la-vof.lo -MD -MP -MF $(DEPDIR)/libgfs2D3_la-vof.Tpo -c -o libgfs2D3_la-vof.lo `test -f 'vof.c' || echo '$(srcdir)/'`vof.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libgfs2D3_la-vof.Tpo $(DEPDIR)/libgfs2D3_la-vof.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='vof.c' object='libgfs2D3_la-vof.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -c -o libgfs2D3_la-vof.lo `test -f 'vof.c' || echo '$(srcdir)/'`vof.c
-
-libgfs2D3_la-utils.lo: utils.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -MT libgfs2D3_la-utils.lo -MD -MP -MF $(DEPDIR)/libgfs2D3_la-utils.Tpo -c -o libgfs2D3_la-utils.lo `test -f 'utils.c' || echo '$(srcdir)/'`utils.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libgfs2D3_la-utils.Tpo $(DEPDIR)/libgfs2D3_la-utils.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='utils.c' object='libgfs2D3_la-utils.lo' libtool=yes @AMDEPBACKSLASH@
+libgfs2D_la-particle.lo: particle.c
+ at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D_la_CFLAGS) $(CFLAGS) -MT libgfs2D_la-particle.lo -MD -MP -MF $(DEPDIR)/libgfs2D_la-particle.Tpo -c -o libgfs2D_la-particle.lo `test -f 'particle.c' || echo '$(srcdir)/'`particle.c
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libgfs2D_la-particle.Tpo $(DEPDIR)/libgfs2D_la-particle.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='particle.c' object='libgfs2D_la-particle.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -c -o libgfs2D3_la-utils.lo `test -f 'utils.c' || echo '$(srcdir)/'`utils.c
-
-libgfs2D3_la-ocean.lo: ocean.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -MT libgfs2D3_la-ocean.lo -MD -MP -MF $(DEPDIR)/libgfs2D3_la-ocean.Tpo -c -o libgfs2D3_la-ocean.lo `test -f 'ocean.c' || echo '$(srcdir)/'`ocean.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libgfs2D3_la-ocean.Tpo $(DEPDIR)/libgfs2D3_la-ocean.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='ocean.c' object='libgfs2D3_la-ocean.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -c -o libgfs2D3_la-ocean.lo `test -f 'ocean.c' || echo '$(srcdir)/'`ocean.c
-
-libgfs2D3_la-wave.lo: wave.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -MT libgfs2D3_la-wave.lo -MD -MP -MF $(DEPDIR)/libgfs2D3_la-wave.Tpo -c -o libgfs2D3_la-wave.lo `test -f 'wave.c' || echo '$(srcdir)/'`wave.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libgfs2D3_la-wave.Tpo $(DEPDIR)/libgfs2D3_la-wave.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='wave.c' object='libgfs2D3_la-wave.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -c -o libgfs2D3_la-wave.lo `test -f 'wave.c' || echo '$(srcdir)/'`wave.c
-
-libgfs2D3_la-levelset.lo: levelset.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -MT libgfs2D3_la-levelset.lo -MD -MP -MF $(DEPDIR)/libgfs2D3_la-levelset.Tpo -c -o libgfs2D3_la-levelset.lo `test -f 'levelset.c' || echo '$(srcdir)/'`levelset.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libgfs2D3_la-levelset.Tpo $(DEPDIR)/libgfs2D3_la-levelset.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='levelset.c' object='libgfs2D3_la-levelset.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -c -o libgfs2D3_la-levelset.lo `test -f 'levelset.c' || echo '$(srcdir)/'`levelset.c
-
-libgfs2D3_la-cartesian.lo: cartesian.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -MT libgfs2D3_la-cartesian.lo -MD -MP -MF $(DEPDIR)/libgfs2D3_la-cartesian.Tpo -c -o libgfs2D3_la-cartesian.lo `test -f 'cartesian.c' || echo '$(srcdir)/'`cartesian.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libgfs2D3_la-cartesian.Tpo $(DEPDIR)/libgfs2D3_la-cartesian.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='cartesian.c' object='libgfs2D3_la-cartesian.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -c -o libgfs2D3_la-cartesian.lo `test -f 'cartesian.c' || echo '$(srcdir)/'`cartesian.c
-
-libgfs2D3_la-surface.lo: surface.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -MT libgfs2D3_la-surface.lo -MD -MP -MF $(DEPDIR)/libgfs2D3_la-surface.Tpo -c -o libgfs2D3_la-surface.lo `test -f 'surface.c' || echo '$(srcdir)/'`surface.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libgfs2D3_la-surface.Tpo $(DEPDIR)/libgfs2D3_la-surface.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='surface.c' object='libgfs2D3_la-surface.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -c -o libgfs2D3_la-surface.lo `test -f 'surface.c' || echo '$(srcdir)/'`surface.c
-
-libgfs2D3_la-unstructured.lo: unstructured.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -MT libgfs2D3_la-unstructured.lo -MD -MP -MF $(DEPDIR)/libgfs2D3_la-unstructured.Tpo -c -o libgfs2D3_la-unstructured.lo `test -f 'unstructured.c' || echo '$(srcdir)/'`unstructured.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libgfs2D3_la-unstructured.Tpo $(DEPDIR)/libgfs2D3_la-unstructured.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='unstructured.c' object='libgfs2D3_la-unstructured.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -c -o libgfs2D3_la-unstructured.lo `test -f 'unstructured.c' || echo '$(srcdir)/'`unstructured.c
-
-libgfs2D3_la-map.lo: map.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -MT libgfs2D3_la-map.lo -MD -MP -MF $(DEPDIR)/libgfs2D3_la-map.Tpo -c -o libgfs2D3_la-map.lo `test -f 'map.c' || echo '$(srcdir)/'`map.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libgfs2D3_la-map.Tpo $(DEPDIR)/libgfs2D3_la-map.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='map.c' object='libgfs2D3_la-map.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -c -o libgfs2D3_la-map.lo `test -f 'map.c' || echo '$(srcdir)/'`map.c
-
-libgfs2D3_la-river.lo: river.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -MT libgfs2D3_la-river.lo -MD -MP -MF $(DEPDIR)/libgfs2D3_la-river.Tpo -c -o libgfs2D3_la-river.lo `test -f 'river.c' || echo '$(srcdir)/'`river.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libgfs2D3_la-river.Tpo $(DEPDIR)/libgfs2D3_la-river.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='river.c' object='libgfs2D3_la-river.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -c -o libgfs2D3_la-river.lo `test -f 'river.c' || echo '$(srcdir)/'`river.c
-
-libgfs2D3_la-moving.lo: moving.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -MT libgfs2D3_la-moving.lo -MD -MP -MF $(DEPDIR)/libgfs2D3_la-moving.Tpo -c -o libgfs2D3_la-moving.lo `test -f 'moving.c' || echo '$(srcdir)/'`moving.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libgfs2D3_la-moving.Tpo $(DEPDIR)/libgfs2D3_la-moving.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='moving.c' object='libgfs2D3_la-moving.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -c -o libgfs2D3_la-moving.lo `test -f 'moving.c' || echo '$(srcdir)/'`moving.c
-
-libgfs2D3_la-balance.lo: balance.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -MT libgfs2D3_la-balance.lo -MD -MP -MF $(DEPDIR)/libgfs2D3_la-balance.Tpo -c -o libgfs2D3_la-balance.lo `test -f 'balance.c' || echo '$(srcdir)/'`balance.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libgfs2D3_la-balance.Tpo $(DEPDIR)/libgfs2D3_la-balance.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='balance.c' object='libgfs2D3_la-balance.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -c -o libgfs2D3_la-balance.lo `test -f 'balance.c' || echo '$(srcdir)/'`balance.c
-
-libgfs2D3_la-metric.lo: metric.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -MT libgfs2D3_la-metric.lo -MD -MP -MF $(DEPDIR)/libgfs2D3_la-metric.Tpo -c -o libgfs2D3_la-metric.lo `test -f 'metric.c' || echo '$(srcdir)/'`metric.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libgfs2D3_la-metric.Tpo $(DEPDIR)/libgfs2D3_la-metric.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='metric.c' object='libgfs2D3_la-metric.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D3_la_CFLAGS) $(CFLAGS) -c -o libgfs2D3_la-metric.lo `test -f 'metric.c' || echo '$(srcdir)/'`metric.c
+ at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgfs2D_la_CFLAGS) $(CFLAGS) -c -o libgfs2D_la-particle.lo `test -f 'particle.c' || echo '$(srcdir)/'`particle.c
 
 gerris2D-gerris.o: gerris.c
 @am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gerris2D_CFLAGS) $(CFLAGS) -MT gerris2D-gerris.o -MD -MP -MF $(DEPDIR)/gerris2D-gerris.Tpo -c -o gerris2D-gerris.o `test -f 'gerris.c' || echo '$(srcdir)/'`gerris.c
@@ -1214,20 +927,6 @@ gerris2D-gerris.obj: gerris.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gerris2D_CFLAGS) $(CFLAGS) -c -o gerris2D-gerris.obj `if test -f 'gerris.c'; then $(CYGPATH_W) 'gerris.c'; else $(CYGPATH_W) '$(srcdir)/gerris.c'; fi`
 
-gerris2D3-gerris.o: gerris.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gerris2D3_CFLAGS) $(CFLAGS) -MT gerris2D3-gerris.o -MD -MP -MF $(DEPDIR)/gerris2D3-gerris.Tpo -c -o gerris2D3-gerris.o `test -f 'gerris.c' || echo '$(srcdir)/'`gerris.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/gerris2D3-gerris.Tpo $(DEPDIR)/gerris2D3-gerris.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gerris.c' object='gerris2D3-gerris.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gerris2D3_CFLAGS) $(CFLAGS) -c -o gerris2D3-gerris.o `test -f 'gerris.c' || echo '$(srcdir)/'`gerris.c
-
-gerris2D3-gerris.obj: gerris.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gerris2D3_CFLAGS) $(CFLAGS) -MT gerris2D3-gerris.obj -MD -MP -MF $(DEPDIR)/gerris2D3-gerris.Tpo -c -o gerris2D3-gerris.obj `if test -f 'gerris.c'; then $(CYGPATH_W) 'gerris.c'; else $(CYGPATH_W) '$(srcdir)/gerris.c'; fi`
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/gerris2D3-gerris.Tpo $(DEPDIR)/gerris2D3-gerris.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gerris.c' object='gerris2D3-gerris.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gerris2D3_CFLAGS) $(CFLAGS) -c -o gerris2D3-gerris.obj `if test -f 'gerris.c'; then $(CYGPATH_W) 'gerris.c'; else $(CYGPATH_W) '$(srcdir)/gerris.c'; fi`
-
 mostlyclean-libtool:
 	-rm -f *.lo
 
@@ -1535,7 +1234,6 @@ uninstall-am: uninstall-binPROGRAMS uninstall-binSCRIPTS \
 
 gfs-config: gfs-config.in
 gerris2D.pc: gerris2D.pc.in
-gerris2D3.pc: gerris2D3.pc.in
 gerris3D.pc: gerris3D.pc.in
 
 domain.c: version.h
diff --git a/src/adaptive.c b/src/adaptive.c
index 839d592..3c16dec 100644
--- a/src/adaptive.c
+++ b/src/adaptive.c
@@ -16,12 +16,16 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
  * 02111-1307, USA.  
  */
+/*! \file
+ * \brief Adaptive mesh refinement.
+ */
 
 #include <stdlib.h>
 #include <math.h>
 
 #include "adaptive.h"
 #include "solid.h"
+#include "init.h"
 
 #include "graphic.h"
 
@@ -52,7 +56,10 @@ void gfs_cell_coarse_init (FttCell * cell, GfsDomain * domain)
   }
 }
 
-/* GfsAdapt: Object */
+/**
+ * Base class for adaptive refinement criteria.
+ * \beginobject{GfsAdapt}
+ */
 
 typedef struct {
   GfsSimulation * sim;
@@ -211,6 +218,10 @@ static void gfs_adapt_read (GtsObject ** o, GtsFile * fp)
   }
   fp->scope_max--;
   gts_file_next_token (fp);
+
+  /* make sure that adaptivity is applied in gfs_simulation_init() if required */
+  if (GFS_EVENT (a)->start == 0. || GFS_EVENT (a)->istart == 0)
+    GFS_EVENT (a)->start = -1;
 }
 
 static void gfs_adapt_write (GtsObject * o, FILE * fp)
@@ -255,9 +266,23 @@ static gboolean gfs_adapt_event (GfsEvent * event, GfsSimulation * sim)
   return FALSE;
 }
 
+static void save_cost (FttCell * cell, GfsAdapt * a)
+{
+  GFS_VALUE (cell, a->c) = (* a->cost) (cell, a);
+}
+
+static void gfs_adapt_post_event (GfsEvent * event, GfsSimulation * sim)
+{
+  GfsAdapt * a = GFS_ADAPT (event);
+  if (a->active && a->c)
+    gfs_domain_cell_traverse (GFS_DOMAIN (sim), FTT_PRE_ORDER, FTT_TRAVERSE_ALL, -1,
+			      (FttCellTraverseFunc) save_cost, a);
+}
+
 static void gfs_adapt_class_init (GfsEventClass * klass)
 {
   klass->event = gfs_adapt_event;
+  klass->post_event = gfs_adapt_post_event;
   GTS_OBJECT_CLASS (klass)->destroy = gfs_adapt_destroy;
   GTS_OBJECT_CLASS (klass)->read = gfs_adapt_read;
   GTS_OBJECT_CLASS (klass)->write = gfs_adapt_write;
@@ -297,7 +322,10 @@ GfsEventClass * gfs_adapt_class (void)
   return klass;
 }
 
-/* GfsAdaptVorticity: Object */
+/**
+ * Adapting cells depending on the local vorticity.
+ * \beginobject{GfsAdaptVorticity}
+ */
 
 static gboolean gfs_adapt_vorticity_event (GfsEvent * event, 
 					   GfsSimulation * sim)
@@ -351,7 +379,12 @@ GfsEventClass * gfs_adapt_vorticity_class (void)
   return klass;
 }
 
-/* GfsAdaptStreamlineCurvature: Object */
+/** \endobject{GfsAdaptVorticity} */
+
+/**
+ *
+ * \beginobject{GfsAdaptStreamlineCurvature}
+ */
 
 static void gfs_adapt_streamline_curvature_init (GfsAdapt * object)
 {
@@ -379,7 +412,12 @@ GfsEventClass * gfs_adapt_streamline_curvature_class (void)
   return klass;
 }
 
-/* GfsAdaptFunction: Object */
+/** \endobject{GfsAdaptStreamlineCurvature} */
+
+/**
+ * Adapting cells depending on the value of a function.
+ * \beginobject{GfsAdaptFunction}
+ */
 
 static void gfs_adapt_function_destroy (GtsObject * o)
 {
@@ -442,7 +480,12 @@ GfsEventClass * gfs_adapt_function_class (void)
   return klass;
 }
 
-/* GfsAdaptGradient: Object */
+/** \endobject{GfsAdaptFunction} */
+
+/**
+ * Adapting cells depending on the local gradient of a variable.
+ * \beginobject{GfsAdaptGradient}
+ */
 
 static void gfs_adapt_gradient_destroy (GtsObject * o)
 {
@@ -476,8 +519,10 @@ static gboolean gfs_adapt_gradient_event (GfsEvent * event,
   if ((* GFS_EVENT_CLASS (GTS_OBJECT_CLASS (gfs_adapt_gradient_class ())->parent_class)->event) 
       (event, sim)) {
     if (!gfs_function_get_variable (GFS_ADAPT_FUNCTION (event)->f)) {
+      gfs_catch_floating_point_exceptions ();
       gfs_domain_cell_traverse (GFS_DOMAIN (sim), FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
 				(FttCellTraverseFunc) update_f, event);
+      gfs_restore_fpe_for_function (GFS_ADAPT_FUNCTION (event)->f);
       GfsVariable * v = GFS_ADAPT_GRADIENT (event)->v;
       gfs_domain_cell_traverse (GFS_DOMAIN (sim),
 				FTT_POST_ORDER, FTT_TRAVERSE_NON_LEAFS, -1,
@@ -538,7 +583,12 @@ GfsEventClass * gfs_adapt_gradient_class (void)
   return klass;
 }
 
-/* GfsAdaptError: Object */
+/** \endobject{GfsAdaptGradient} */
+
+/**
+ * Adapting using an a posteriori error estimate.
+ * \beginobject{GfsAdaptError}
+ */
 
 static void gfs_adapt_error_destroy (GtsObject * o)
 {
@@ -593,6 +643,7 @@ static gboolean gfs_adapt_error_event (GfsEvent * event,
     GfsAdaptError * a = GFS_ADAPT_ERROR (event);
     GfsDomain * domain = GFS_DOMAIN (sim);
 
+    gfs_domain_bc (domain, FTT_TRAVERSE_ALL, -1,  GFS_ADAPT_GRADIENT (a)->v);
     gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, FTT_TRAVERSE_ALL, -1,
 			      (FttCellTraverseFunc) gfs_cell_reset, a->v);
     a->dv = gfs_temporary_variable (domain);
@@ -650,9 +701,11 @@ GfsEventClass * gfs_adapt_error_class (void)
   return klass;
 }
 
+/** \endobject{GfsAdaptError} */
+
 static void refine_cell_corner (FttCell * cell, GfsDomain * domain)
 {
-  if (ftt_refine_corner (cell))
+  if (FTT_CELL_IS_LEAF (cell) && ftt_refine_corner (cell))
     ftt_cell_refine_single (cell, domain->cell_init, domain->cell_init_data);
 }
 
@@ -684,20 +737,20 @@ void gfs_domain_reshape (GfsDomain * domain, guint depth)
   }
 }
 
-#define CELL_COST(cell) (GFS_VARIABLE (cell, p->costv->i))
-#define CELL_HCOARSE(c) (GFS_DOUBLE_TO_POINTER (GFS_VARIABLE (c, p->hcoarsev->i)))
-#define CELL_HFINE(c) (GFS_DOUBLE_TO_POINTER (GFS_VARIABLE (c, p->hfinev->i)))
+#define CELL_COST(cell) (GFS_VALUE (cell, p->costv))
+#define CELL_HCOARSE(c) (GFS_DOUBLE_TO_POINTER (GFS_VALUE (c, p->hcoarsev)))
+#define CELL_HFINE(c) (GFS_DOUBLE_TO_POINTER (GFS_VALUE (c, p->hfinev)))
 
 static FttCell * remove_top_coarse (GtsEHeap * h, gdouble * cost, GfsVariable * hcoarse)
 {
   FttCell * cell = gts_eheap_remove_top (h, cost);
 
   if (cell)
-    GFS_VARIABLE (cell, hcoarse->i) = 0.;
+    GFS_VALUE (cell, hcoarse) = 0.;
   while (cell && !FTT_CELL_IS_LEAF (cell)) {
     cell = gts_eheap_remove_top (h, cost);
     if (cell) 
-      GFS_VARIABLE (cell, hcoarse->i) = 0.;
+      GFS_VALUE (cell, hcoarse) = 0.;
   }
   return cell;
 }
@@ -824,7 +877,9 @@ static gboolean fine_cell_coarsenable (FttCell * cell, AdaptParams * p)
     return FALSE;
   if (ftt_cell_level (cell) < minlevel (cell, p->sim))
     return FALSE;
-  return TRUE;      
+  if (ftt_refine_corner (cell))
+    return FALSE;
+  return TRUE;
 }
 
 static void fine_cell_cleanup (FttCell * cell, AdaptParams * p)
@@ -963,16 +1018,20 @@ typedef struct {
 static gboolean coarsen_cell (FttCell * cell, AdaptLocalParams * p)
 {
   if (GFS_CELL_IS_BOUNDARY (cell))
-    return TRUE;
+    return COARSENABLE (cell, p);
+  if (ftt_refine_corner (cell))
+    return FALSE;
   return COARSENABLE (cell, p);
 }
 
 static void cell_cleanup (FttCell * cell, AdaptLocalParams * p)
 {
-  gfs_cell_cleanup (cell, GFS_DOMAIN (p->sim));
-  p->s->removed++;
-  p->nc--;
+  if (!GFS_CELL_IS_BOUNDARY (cell)) {
+    p->s->removed++;
+    p->nc--;
+  }
   p->changed = TRUE;
+  gfs_cell_cleanup (cell, GFS_DOMAIN (p->sim));
 }
 
 static void coarsen_box (GfsBox * box, AdaptLocalParams * p)
@@ -1009,7 +1068,7 @@ static void refine_cell_mark (FttCell * cell, AdaptLocalParams * p)
 {
   p->nc++;
   REFINABLE (cell, p) = FALSE;
-  COARSENABLE (cell, p) = !GFS_CELL_IS_PERMANENT (cell);
+  COARSENABLE (cell, p) = !GFS_CELL_IS_PERMANENT (cell) && !ftt_refine_corner (cell);
 
   guint level = ftt_cell_level (cell);
   GSList * i = p->sim->adapts->items;
@@ -1037,6 +1096,25 @@ static void refine_cell_mark (FttCell * cell, AdaptLocalParams * p)
   }
 }
 
+static void check_periodic (FttCellFace * f, AdaptLocalParams * p)
+{
+  g_assert (ftt_face_type (f) == FTT_FINE_FINE);
+  if (!COARSENABLE (f->cell, p))
+    COARSENABLE (f->neighbor, p) = FALSE;
+}
+
+static void enforce_periodic (GfsBox * box, AdaptLocalParams * p)
+{
+  FttDirection d;
+  for (d = 0; d < FTT_NEIGHBORS; d++)
+    if (GFS_IS_BOUNDARY_PERIODIC (box->neighbor[d])) {
+      GfsBoundary * b = GFS_BOUNDARY (box->neighbor[d]);
+      ftt_face_traverse_boundary (b->root, b->d,
+				  FTT_PRE_ORDER, FTT_TRAVERSE_NON_LEAFS, -1,
+				  (FttFaceTraverseFunc) check_periodic, p);
+    }
+}
+
 static gboolean adapt_local (GfsSimulation * sim, guint * depth, GfsAdaptStats * s)
 {
   GfsDomain * domain = GFS_DOMAIN (sim);
@@ -1051,6 +1129,9 @@ static gboolean adapt_local (GfsSimulation * sim, guint * depth, GfsAdaptStats *
   gfs_domain_cell_traverse (domain,
 			    FTT_PRE_ORDER, FTT_TRAVERSE_ALL, -1,
 			    (FttCellTraverseFunc) refine_cell_mark, &p);
+  gfs_domain_bc (domain, FTT_TRAVERSE_NON_LEAFS, -1, p.c);
+  /* enforce fine/fine faces on periodic/MPI boundaries */
+  gts_container_foreach (GTS_CONTAINER (domain), (GtsFunc) enforce_periodic, &p);
   gfs_domain_cell_traverse (domain,
 			    FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
 			    (FttCellTraverseFunc) refine_cell, &p);
@@ -1066,7 +1147,6 @@ static gboolean adapt_local (GfsSimulation * sim, guint * depth, GfsAdaptStats *
 /**
  * gfs_simulation_adapt:
  * @simulation: a #GfsSimulation.
- * @s: where to put statistics (or %NULL).
  *
  * Checks if any mesh adaptation is necessary and adapts the mesh
  * using an OR combination of all the regular criteria defined in
@@ -1075,8 +1155,10 @@ static gboolean adapt_local (GfsSimulation * sim, guint * depth, GfsAdaptStats *
  * If any one or several criteria are defined as "not" refinements,
  * the mesh will be refined only if all of this criteria AND any other
  * regular criterion is verified.  
+ *
+ * Returns: %TRUE if the mesh changed, %FALSE otherwise.
  */
-void gfs_simulation_adapt (GfsSimulation * simulation)
+gboolean gfs_simulation_adapt (GfsSimulation * simulation)
 {
   gboolean active = FALSE;
   guint mincells = 0, maxcells = G_MAXINT;
@@ -1084,7 +1166,7 @@ void gfs_simulation_adapt (GfsSimulation * simulation)
   gdouble cmax = 0.;
   GfsVariable * c = NULL;
 
-  g_return_if_fail (simulation != NULL);
+  g_return_val_if_fail (simulation != NULL, FALSE);
 
   domain = GFS_DOMAIN (simulation);
 
@@ -1104,9 +1186,10 @@ void gfs_simulation_adapt (GfsSimulation * simulation)
     }
     i = i->next;
   }
+
+  gboolean changed = FALSE;
   if (active) {
-    guint depth = gfs_domain_depth (domain);
-    gboolean changed;
+    guint depth = gfs_domain_depth (domain), depth_before = depth;
 
     if (maxcells < G_MAXINT)
       changed = adapt_global (simulation, &depth, &simulation->adapts_stats, 
@@ -1115,11 +1198,16 @@ void gfs_simulation_adapt (GfsSimulation * simulation)
       changed = adapt_local (simulation, &depth, &simulation->adapts_stats);
 
     gfs_all_reduce (domain, changed, MPI_INT, MPI_MAX);
-    if (changed)
+    if (changed) {
       gfs_domain_reshape (domain, depth);
+      gfs_all_reduce (domain, depth, MPI_UNSIGNED, MPI_MAX);
+      simulation->adapts_stats.depth_increase = depth - depth_before;
+    }
   }
 
   gfs_domain_timer_stop (domain, "adapt");
+
+  return changed;
 }
 
 /**
@@ -1136,6 +1224,7 @@ void gfs_adapt_stats_init (GfsAdaptStats * s)
   s->created = 0;
   gts_range_init (&s->cmax);
   gts_range_init (&s->ncells);
+  s->depth_increase = 0;
 }
 
 /**
@@ -1151,3 +1240,5 @@ void gfs_adapt_stats_update (GfsAdaptStats * s)
   gts_range_update (&s->cmax);
   gts_range_update (&s->ncells);
 }
+
+/** \endobject{GfsAdapt} */
diff --git a/src/adaptive.h b/src/adaptive.h
index 4747c22..97d467d 100644
--- a/src/adaptive.h
+++ b/src/adaptive.h
@@ -31,7 +31,7 @@ void          gfs_cell_coarse_init          (FttCell * cell,
 					     GfsDomain * domain);
 void          gfs_adapt_stats_init          (GfsAdaptStats * s);
 void          gfs_adapt_stats_update        (GfsAdaptStats * s);
-void          gfs_simulation_adapt          (GfsSimulation * simulation);
+gboolean      gfs_simulation_adapt          (GfsSimulation * simulation);
 void          gfs_domain_reshape            (GfsDomain * domain,
 					     guint depth);
 
diff --git a/src/advection.c b/src/advection.c
index c0e9f50..e87a96e 100644
--- a/src/advection.c
+++ b/src/advection.c
@@ -16,6 +16,9 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
  * 02111-1307, USA.  
  */
+/*! \file
+ * \brief Advection scheme.
+ */
 
 #include <stdlib.h>
 #include "advection.h"
@@ -171,44 +174,6 @@ static gdouble interpolate_1D1 (const FttCell * cell,
   return s->f[dleft].v;
 }
 
-#elif FTT_2D3
-
-static gdouble interpolate_1D1 (const FttCell * cell,
-				FttDirection dright,
-				FttDirection dup,
-				gdouble x)
-{
-  FttCell * n;
-  FttDirection dleft;
-  GfsStateVector * s;
-
-  g_return_val_if_fail (cell != NULL, 0.);
-
-  dleft = FTT_OPPOSITE_DIRECTION (dright);
-  n = ftt_cell_neighbor (cell, dup);
-  s = GFS_STATE (cell);
-  if (n && !GFS_CELL_IS_BOUNDARY (n)) {
-    /* check for corner refinement violation (topology.fig) */
-    g_assert (ftt_cell_level (n) == ftt_cell_level (cell));
-
-    if (FTT_CELL_IS_LEAF (n))
-      return GFS_STATE (n)->f[dleft].v*x + s->f[dleft].v*(1. - x);
-    else {
-      FttDirection d[FTT_DIMENSION];
-
-      d[0] = dleft;
-      d[1] = FTT_OPPOSITE_DIRECTION (dup);
-      g_assert (d[0] < FTT_NEIGHBORS_2D);
-      g_assert (d[1] < FTT_NEIGHBORS_2D);
-      d[2] = 0;
-      n = ftt_cell_child_corner (n, d);
-      if (n)
-	return (GFS_STATE (n)->f[dleft].v*4.*x + s->f[dleft].v*(3. - 4.*x))/3.;
-    }
-  }
-  return s->f[dleft].v;
-}
-
 #else /* FTT_3D */
 
 static gdouble interpolate_2D1 (const FttCell * cell,
@@ -335,7 +300,7 @@ gdouble gfs_face_upwinded_value (const FttCellFace * face,
       return GFS_STATE (face->cell)->f[face->d].v;
     else {
       gdouble vcoarse;
-#if (FTT_2D || FTT_2D3)
+#if FTT_2D
       gint dp;
       static gint perpendicular[FTT_NEIGHBORS_2D][FTT_CELLS] = 
       {{-1,  2, -1,  3},
@@ -353,12 +318,8 @@ gdouble gfs_face_upwinded_value (const FttCellFace * face,
        {{-1,-1},{-1,-1},{-1,-1},{-1,-1},{1,2},{0,2},{1,3},{0,3}}};
 #endif /* FTT_3D */
 
-#if FTT_2D3
-      g_assert (face->d < FTT_NEIGHBORS_2D);
-#endif
-
       dp = perpendicular[face->d][FTT_CELL_ID (face->cell)];
-#if (FTT_2D || FTT_2D3)
+#if FTT_2D
       g_assert (dp >= 0);
       vcoarse = interpolate_1D1 (face->neighbor, face->d, dp, 1./4.);
 #else  /* FTT_3D */
@@ -928,6 +889,10 @@ void gfs_advection_params_write (GfsAdvectionParams * par, FILE * fp)
 	   "gfs_center_van_leer_gradient" :
 	   par->gradient == gfs_center_minmod_gradient ?
 	   "gfs_center_minmod_gradient" :
+	   par->gradient == gfs_center_superbee_gradient ?
+	   "gfs_center_superbee_gradient" :
+	   par->gradient == gfs_center_sweby_gradient ?
+	   "gfs_center_sweby_gradient" :
 	   "none",
 	   par->flux == gfs_face_advection_flux ?
 	   "gfs_face_advection_flux" :
@@ -944,6 +909,10 @@ void gfs_advection_params_write (GfsAdvectionParams * par, FILE * fp)
   }
   if (par->moving_order != 1)
     fputs ("  moving_order = 2\n", fp);
+  if (gts_vector_norm (par->sink) > 0.)
+    fprintf (fp, "  vx = %g vy = %g vz = %g\n", par->sink[0], par->sink[1], par->sink[2]);
+  if (par->linear)
+    fputs ("  linear = 1\n", fp);
   fputc ('}', fp);
 }
 
@@ -964,6 +933,8 @@ void gfs_advection_params_init (GfsAdvectionParams * par)
   par->gc = FALSE;
   par->update = (GfsMergedTraverseFunc) gfs_advection_update;
   par->moving_order = 1;
+  par->sink[0] = par->sink[1] = par->sink[2] = 0.;
+  par->linear = FALSE;
 }
 
 static gdouble none (FttCell * cell, FttComponent c, guint v)
@@ -973,28 +944,24 @@ static gdouble none (FttCell * cell, FttComponent c, guint v)
 
 void gfs_advection_params_read (GfsAdvectionParams * par, GtsFile * fp)
 {
-  GtsFileVariable var[] = {
-    {GTS_DOUBLE, "cfl",          TRUE},
-    {GTS_STRING, "gradient",     TRUE},
-    {GTS_STRING, "flux",         TRUE},
-    {GTS_STRING, "scheme",       TRUE},
-    {GTS_INT,    "average",      TRUE},
-    {GTS_INT,    "gc",           TRUE},
-    {GTS_UINT,   "moving_order", TRUE},
-    {GTS_NONE}
-  };
-  gchar * gradient = NULL, * flux = NULL, * scheme = NULL;
-
   g_return_if_fail (par != NULL);
   g_return_if_fail (fp != NULL);
 
-  var[0].data = &par->cfl;
-  var[1].data = &gradient;
-  var[2].data = &flux;
-  var[3].data = &scheme;
-  var[4].data = &par->average;
-  var[5].data = &par->gc;
-  var[6].data = &par->moving_order;
+  gchar * gradient = NULL, * flux = NULL, * scheme = NULL;
+  GtsFileVariable var[] = {
+    {GTS_DOUBLE, "cfl",          TRUE, &par->cfl},
+    {GTS_STRING, "gradient",     TRUE, &gradient},
+    {GTS_STRING, "flux",         TRUE, &flux},
+    {GTS_STRING, "scheme",       TRUE, &scheme},
+    {GTS_INT,    "average",      TRUE, &par->average},
+    {GTS_INT,    "gc",           TRUE, &par->gc},
+    {GTS_UINT,   "moving_order", TRUE, &par->moving_order},
+    {GTS_DOUBLE, "vx",           TRUE, &par->sink[0]},
+    {GTS_DOUBLE, "vy",           TRUE, &par->sink[1]},
+    {GTS_DOUBLE, "vz",           TRUE, &par->sink[2]},
+    {GTS_INT,    "linear",       TRUE, &par->linear},
+    {GTS_NONE}
+  };
 
   gts_file_assign_variables (fp, var);
 
@@ -1008,6 +975,10 @@ void gfs_advection_params_read (GfsAdvectionParams * par, GtsFile * fp)
       par->gradient = gfs_center_van_leer_gradient;
     else if (!strcmp (gradient, "gfs_center_minmod_gradient"))
       par->gradient = gfs_center_minmod_gradient;
+    else if (!strcmp (gradient, "gfs_center_superbee_gradient"))
+      par->gradient = gfs_center_superbee_gradient;
+    else if (!strcmp (gradient, "gfs_center_sweby_gradient"))
+      par->gradient = gfs_center_sweby_gradient;
     else if (!strcmp (gradient, "none"))
       par->gradient = none;
     else if (fp->type != GTS_ERROR)
diff --git a/src/advection.h b/src/advection.h
index a8ce14e..bd38b09 100644
--- a/src/advection.h
+++ b/src/advection.h
@@ -57,6 +57,8 @@ struct _GfsAdvectionParams {
   gboolean average, gc;
   GfsMergedTraverseFunc update;
   guint moving_order;
+  GtsVector sink;
+  gboolean linear;
 };
 
 void         gfs_advection_params_init        (GfsAdvectionParams * par);
diff --git a/src/balance.c b/src/balance.c
index 1c54cdc..bbc6a16 100644
--- a/src/balance.c
+++ b/src/balance.c
@@ -16,12 +16,18 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
  * 02111-1307, USA.  
  */
+/*! \file
+ * \brief Parallel load-balancing.
+ */
 
 #include "balance.h"
 #include "mpi_boundary.h"
 #include "adaptive.h"
 
-/* GfsEventBalance: Object */
+/**
+ * Dynamic load-balancing.
+ * \beginobject{GfsEventBalance}
+ */
 
 #ifdef HAVE_MPI
 
@@ -125,7 +131,8 @@ static BalancingFlow * balancing_flow_new (GfsDomain * domain, int average)
   for (i = 0; i < b->n; i++)
     lambda[i] = lambda1 - lambda[i + 1];
   b->flow = lambda;
-  b->pid = (guint *) g_array_free (pe, FALSE);
+  b->pid = (guint *) pe->data;
+  g_array_free (pe, FALSE);
   return b;
 }
 
@@ -276,14 +283,28 @@ static gboolean gfs_event_balance_event (GfsEvent * event, GfsSimulation * sim)
 	/* Updates the pid associated with each box */
 	guint nb = gts_container_size (GTS_CONTAINER (domain));
 	gfs_all_reduce (domain, nb, MPI_UNSIGNED, MPI_SUM);
-	GArray * pid = g_array_sized_new (FALSE, TRUE, sizeof (guint), nb);
+	GArray * pid = g_array_new (FALSE, TRUE, sizeof (guint));
 	g_array_set_size (pid, nb);
 	gts_container_foreach (GTS_CONTAINER (domain), (GtsFunc) get_pid, pid);
+#if MPI_VERSION == 2
 	MPI_Allreduce (MPI_IN_PLACE, pid->data, nb, MPI_UNSIGNED, MPI_MAX, MPI_COMM_WORLD);
+#else /* MPI-1 does not have the MPI_IN_PLACE option */ 
+	GArray * recv = g_array_new (FALSE, TRUE, sizeof (guint));
+	g_array_set_size (recv, nb);
+	MPI_Allreduce (pid->data, recv->data, nb, MPI_UNSIGNED, MPI_MAX, MPI_COMM_WORLD);
+	g_array_free (pid, TRUE);
+	pid = recv;
+#endif /* MPI-1 */
 	/* pid[id] now contains the current pid of box with index id */
 	gts_container_foreach (GTS_CONTAINER (domain), (GtsFunc) update_box_pid, pid);
 	g_array_free (pid, TRUE);
 	gfs_domain_reshape (domain, gfs_domain_depth (domain));
+	/* applies BCs again in case a BC on one variable depends on another variable */
+	GSList * i = domain->variables;
+	while (i) {
+	  gfs_domain_bc (domain, FTT_TRAVERSE_LEAFS, -1, i->data);
+	  i = i->next;
+	}
       }
 #else /* not HAVE_MPI */
       g_assert_not_reached ();
@@ -321,3 +342,5 @@ GfsEventClass * gfs_event_balance_class (void)
 
   return klass;
 }
+
+/** \endobject{GfsEventBalance} */
diff --git a/src/boundary.c b/src/boundary.c
index 26306b0..6e831e3 100644
--- a/src/boundary.c
+++ b/src/boundary.c
@@ -16,6 +16,9 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
  * 02111-1307, USA.  
  */
+/*! \file
+ * \brief Boundary conditions.
+ */
 
 #include <stdlib.h>
 #include <math.h>
@@ -25,6 +28,7 @@
 #include "simulation.h"
 #include "adaptive.h"
 #include "vof.h"
+#include "river.h"
 
 static FttVector rpos[FTT_NEIGHBORS] = {
 #if FTT_2D
@@ -34,7 +38,10 @@ static FttVector rpos[FTT_NEIGHBORS] = {
 #endif /* FTT_3D */
 };
 
-/* GfsBc: Object */
+/**
+ * Default symmetry boundary condition.
+ * \beginobject{GfsBc}
+ */
 
 static void symmetry (FttCellFace * f, GfsBc * b)
 {
@@ -44,6 +51,17 @@ static void symmetry (FttCellFace * f, GfsBc * b)
     GFS_VARIABLE (f->cell, b->v->i) =   GFS_VARIABLE (f->neighbor, b->v->i);
 }
 
+static void set_stencil_neighbor (FttCellFace * f, GfsBc * b, gdouble w)
+{
+  GFS_DOUBLE_TO_POINTER (GFS_VALUE (f->cell, b->lp->neighbor)) = f->neighbor;
+  GFS_VALUE (f->cell, b->lp->neighborw) = w;
+}
+
+static void symmetry_stencil (FttCellFace * f, GfsBc * b)
+{
+  set_stencil_neighbor (f, b, (b->v->component == f->d/2) ? -1. : 1.);
+}
+
 static void face_symmetry (FttCellFace * f, GfsBc * b)
 {
   if (b->v->component == f->d/2)
@@ -94,9 +112,10 @@ static void gfs_bc_class_init (GtsObjectClass * klass)
 
 static void gfs_bc_init (GfsBc * object)
 {
-  object->bc =             (FttFaceTraverseFunc) symmetry;
-  object->homogeneous_bc = (FttFaceTraverseFunc) symmetry;
-  object->face_bc =        (FttFaceTraverseFunc) face_symmetry;
+  object->bc =                     (FttFaceTraverseFunc) symmetry;
+  object->homogeneous_bc =         (FttFaceTraverseFunc) symmetry;
+  object->homogeneous_bc_stencil = (FttFaceTraverseFunc) symmetry_stencil;
+  object->face_bc =                (FttFaceTraverseFunc) face_symmetry;
 }
 
 GfsBcClass * gfs_bc_class (void)
@@ -143,7 +162,12 @@ GfsBc * gfs_bc_new (GfsBcClass * k, GfsVariable * v, gboolean extra)
   return b;
 }
 
-/* GfsBcValue: Object */
+/** \endobject{GfsBc} */
+
+/**
+ * Generic class for a boundary condition taking a parameter.
+ * \beginobject{GfsBcValue}
+ */
 
 static void bc_value_write (GtsObject * o, FILE * fp)
 {
@@ -163,16 +187,12 @@ static void bc_value_read (GtsObject ** o, GtsFile * fp)
       (o, fp);
   if (fp->type == GTS_ERROR)
     return;
-  if (bc->val == NULL)
-    bc->val = gfs_function_new (gfs_function_class (), 0.);
   gfs_function_read (GFS_BC_VALUE (*o)->val, gfs_box_domain (GFS_BC (bc)->b->box), fp);
 }
 
 static void bc_value_destroy (GtsObject * o)
 {
-  if (GFS_BC_VALUE (o)->val)
-    gts_object_destroy (GTS_OBJECT (GFS_BC_VALUE (o)->val));
-
+  gts_object_destroy (GTS_OBJECT (GFS_BC_VALUE (o)->val));
   (* GTS_OBJECT_CLASS (gfs_bc_value_class ())->parent_class->destroy) (o);
 }
 
@@ -183,6 +203,11 @@ static void gfs_bc_value_class_init (GtsObjectClass * klass)
   klass->destroy = bc_value_destroy;
 }
 
+static void gfs_bc_value_init (GfsBcValue * bc)
+{
+  bc->val = gfs_function_new (gfs_function_class (), 0.);
+}
+
 GfsBcClass * gfs_bc_value_class (void)
 {
   static GfsBcClass * klass = NULL;
@@ -193,7 +218,7 @@ GfsBcClass * gfs_bc_value_class (void)
       sizeof (GfsBcValue),
       sizeof (GfsBcClass),
       (GtsObjectClassInitFunc) gfs_bc_value_class_init,
-      (GtsObjectInitFunc) NULL,
+      (GtsObjectInitFunc) gfs_bc_value_init,
       (GtsArgSetFunc) NULL,
       (GtsArgGetFunc) NULL
     };
@@ -211,15 +236,20 @@ static GfsBc * gfs_bc_value_new (GfsBcClass * k,
 {
   GfsBcValue * bc = GFS_BC_VALUE (gfs_bc_new (k, v, extra));
 
-  if (val == NULL)
-    bc->val = gfs_function_new (gfs_function_class (), 0.);
-  else
+  if (val != NULL) {
+    gts_object_destroy (GTS_OBJECT (bc->val));
     bc->val = val;
+  }
 
   return GFS_BC (bc);
 }
 
-/* GfsBcDirichlet: Object */
+/** \endobject{GfsBcValue} */
+
+/**
+ * Dirichlet boundary condition.
+ * \beginobject{GfsBcDirichlet}
+ */
 
 static void dirichlet (FttCellFace * f, GfsBc * b)
 {
@@ -238,6 +268,11 @@ static void homogeneous_dirichlet (FttCellFace * f, GfsBc * b)
   GFS_VALUE (f->cell, b->v) = - GFS_VALUE (f->neighbor, b->v);
 }
 
+static void homogeneous_dirichlet_stencil (FttCellFace * f, GfsBc * b)
+{
+  set_stencil_neighbor (f, b, -1.);
+}
+
 static void face_dirichlet (FttCellFace * f, GfsBc * b)
 {
   GFS_STATE (f->cell)->f[f->d].v = GFS_STATE (f->neighbor)->f[FTT_OPPOSITE_DIRECTION (f->d)].v = 
@@ -256,13 +291,18 @@ static void bc_dirichlet_read (GtsObject ** o, GtsFile * fp)
   gfs_function_set_units (GFS_BC_VALUE (bc)->val, bc->v->units);
   if (GFS_IS_VARIABLE_TRACER_VOF (bc->v))
     bc->bc = (FttFaceTraverseFunc) dirichlet_vof;
+  
+  if (GFS_IS_RIVER (bc->v->domain) && bc->v == GFS_RIVER (bc->v->domain)->v[0])
+    /* use first-order BC for P in GfsRiver */
+    bc->bc = (FttFaceTraverseFunc) dirichlet_vof;
 }
 
 static void gfs_bc_dirichlet_init (GfsBc * object)
 {
-  object->bc =             (FttFaceTraverseFunc) dirichlet;
-  object->homogeneous_bc = (FttFaceTraverseFunc) homogeneous_dirichlet;
-  object->face_bc =        (FttFaceTraverseFunc) face_dirichlet;
+  object->bc =                     (FttFaceTraverseFunc) dirichlet;
+  object->homogeneous_bc =         (FttFaceTraverseFunc) homogeneous_dirichlet;
+  object->homogeneous_bc_stencil = (FttFaceTraverseFunc) homogeneous_dirichlet_stencil;
+  object->face_bc =                (FttFaceTraverseFunc) face_dirichlet;
 }
 
 static void gfs_bc_dirichlet_class_init (GtsObjectClass * klass)
@@ -291,7 +331,12 @@ GfsBcClass * gfs_bc_dirichlet_class (void)
   return klass;
 }
 
-/* GfsBcNeumann: Object */
+/** \endobject{GfsBcDirichlet} */
+
+/**
+ * Neumann boundary condition.
+ * \beginobject{GfsBcNeumann}
+ */
 
 static void neumann (FttCellFace * f, GfsBc * b)
 {
@@ -306,6 +351,11 @@ static void homogeneous_neumann (FttCellFace * f, GfsBc * b)
   GFS_VALUE (f->cell, b->v) = GFS_VALUE (f->neighbor, b->v);
 }
 
+static void homogeneous_neumann_stencil (FttCellFace * f, GfsBc * b)
+{
+  set_stencil_neighbor (f, b, 1.);
+}
+
 static void face_neumann (FttCellFace * f, GfsBc * b)
 {
   GFS_STATE (f->cell)->f[f->d].v = 
@@ -328,9 +378,10 @@ static void bc_neumann_read (GtsObject ** o, GtsFile * fp)
 
 static void gfs_bc_neumann_init (GfsBc * object)
 {
-  object->bc =             (FttFaceTraverseFunc) neumann;
-  object->homogeneous_bc = (FttFaceTraverseFunc) homogeneous_neumann;
-  object->face_bc =        (FttFaceTraverseFunc) face_neumann;
+  object->bc =                     (FttFaceTraverseFunc) neumann;
+  object->homogeneous_bc =         (FttFaceTraverseFunc) homogeneous_neumann;
+  object->homogeneous_bc_stencil = (FttFaceTraverseFunc) homogeneous_neumann_stencil;
+  object->face_bc =                (FttFaceTraverseFunc) face_neumann;
 }
 
 static void gfs_bc_neumann_class_init (GtsObjectClass * klass)
@@ -359,7 +410,12 @@ GfsBcClass * gfs_bc_neumann_class (void)
   return klass;
 }
 
-/* GfsBcNavier: Object */
+/** \endobject{GfsBcNeumann} */
+
+/**
+ * Navier boundary condition.
+ * \beginobject{GfsBcNavier}
+ */
 
 static void navier (FttCellFace * f, GfsBc * b)
 {
@@ -401,9 +457,9 @@ static void bc_navier_write (GtsObject * o, FILE * fp)
 
 static void gfs_bc_navier_init (GfsBc * object)
 {
-  object->bc =             (FttFaceTraverseFunc) navier;
-  object->homogeneous_bc = (FttFaceTraverseFunc) homogeneous_dirichlet;
-  object->face_bc =        (FttFaceTraverseFunc) face_navier;
+  object->bc =                     (FttFaceTraverseFunc) navier;
+  object->homogeneous_bc =         (FttFaceTraverseFunc) homogeneous_dirichlet;
+  object->face_bc =                (FttFaceTraverseFunc) face_navier;
 }
 
 static void gfs_bc_navier_class_init (GtsObjectClass * klass)
@@ -433,7 +489,12 @@ GfsBcClass * gfs_bc_navier_class (void)
   return klass;
 }
 
-/* GfsBoundary: Object */
+/** \endobject{GfsBcNavier} */
+
+/**
+ * One of the boundaries of a #GfsBox.
+ * \beginobject{GfsBoundary}
+ */
 
 static void destroy_bc (GfsVariable * v, GtsObject * o)
 {
@@ -472,10 +533,10 @@ static void match (FttCell * cell, GfsBoundary * boundary)
   if (parent && GFS_CELL_IS_GRADIENT_BOUNDARY (parent))
     cell->flags |= GFS_FLAG_GRADIENT_BOUNDARY;
   if (neighbor == NULL || ftt_cell_level (neighbor) < level) {
-    if (FTT_CELL_IS_ROOT (cell))
-      g_log (G_LOG_DOMAIN, G_LOG_LEVEL_ERROR,
-	     "root cell is entirely outside of the fluid domain\n"
-	     "the solid surface orientation may be incorrect");
+    if (FTT_CELL_IS_ROOT (cell)) {
+      g_assert (cell == boundary->root);
+      boundary->root = NULL;
+    }
     ftt_cell_destroy (cell, (FttCellCleanupFunc) gfs_cell_cleanup, gfs_box_domain (boundary->box));
     boundary->changed = TRUE;
     return;
@@ -484,10 +545,10 @@ static void match (FttCell * cell, GfsBoundary * boundary)
     GfsSolidVector * s = GFS_STATE (neighbor)->solid;
 
     if (s && s->s[FTT_OPPOSITE_DIRECTION (boundary->d)] == 0.) {
-      if (FTT_CELL_IS_ROOT (cell))
-	g_log (G_LOG_DOMAIN, G_LOG_LEVEL_ERROR,
-	       "root cell is entirely outside of the fluid domain\n"
-	       "the solid surface orientation may be incorrect");
+      if (FTT_CELL_IS_ROOT (cell)) {
+	g_assert (cell == boundary->root);
+	boundary->root = NULL;
+      }
       ftt_cell_destroy (cell, (FttCellCleanupFunc) gfs_cell_cleanup,
 			gfs_box_domain (boundary->box));
       boundary->changed = TRUE;
@@ -540,17 +601,35 @@ static void match (FttCell * cell, GfsBoundary * boundary)
 
 static void boundary_match (GfsBoundary * boundary)
 {
-  guint l = ftt_cell_level (boundary->root);
+  if (boundary->root == NULL) {
+    GfsBox * box = boundary->box;
+    GfsDomain * domain = gfs_box_domain (box);
+    boundary->root = ftt_cell_new ((FttCellInitFunc) gfs_cell_init, domain);
+    FTT_ROOT_CELL (boundary->root)->parent = box;
+    ftt_cell_set_level (boundary->root, ftt_cell_level (box->root));
+    ftt_cell_set_neighbor_match (boundary->root, box->root, boundary->d, 
+				 (FttCellInitFunc) gfs_cell_init, domain);
+    FttVector pos;
+    ftt_cell_pos (box->root, &pos);
+    gdouble size = ftt_cell_size (box->root);
+    FttDirection d = FTT_OPPOSITE_DIRECTION (boundary->d);
+    pos.x += rpos[d].x*size;
+    pos.y += rpos[d].y*size;
+    pos.z += rpos[d].z*size;
+    ftt_cell_set_pos (boundary->root, &pos);
+  }
 
+  guint l = ftt_cell_level (boundary->root);
+  
   boundary->changed = FALSE;
   boundary->depth = l;
-  while (l <= boundary->depth) {
+  while (boundary->root && l <= boundary->depth) {
     ftt_cell_traverse_boundary (boundary->root, boundary->d,
 				FTT_PRE_ORDER, FTT_TRAVERSE_LEVEL, l,
 				(FttCellTraverseFunc) match, boundary);
     l++;
   }
-  if (boundary->changed)
+  if (boundary->root && boundary->changed)
     ftt_cell_flatten (boundary->root, boundary->d, (FttCellCleanupFunc) gfs_cell_cleanup, 
 		      gfs_box_domain (boundary->box));
 }
@@ -651,6 +730,10 @@ static void gfs_boundary_read (GtsObject ** o, GtsFile * fp)
   if (fp->type == GTS_ERROR)
     return;
 
+  GfsBoundary * b = GFS_BOUNDARY (*o);
+  GfsVariable ** v = gfs_domain_velocity (gfs_box_domain (b->box));
+  gfs_boundary_add_bc (b, gfs_bc_value_new (gfs_bc_dirichlet_class (), v[b->d/2], NULL, FALSE));
+
   boundary_read_extra_bc (GFS_BOUNDARY (*o), fp);
 }
 
@@ -707,9 +790,6 @@ GfsBoundary * gfs_boundary_new (GfsBoundaryClass * klass,
 				FttDirection d)
 {
   GfsBoundary * boundary;
-  GfsDomain * domain;
-  FttVector pos;
-  gdouble size;
 
   g_return_val_if_fail (box != NULL, NULL);
   g_return_val_if_fail (d < FTT_NEIGHBORS, NULL);
@@ -719,27 +799,27 @@ GfsBoundary * gfs_boundary_new (GfsBoundaryClass * klass,
   boundary->box = box;
   box->neighbor[d] = GTS_OBJECT (boundary);
   boundary->d = FTT_OPPOSITE_DIRECTION (d);
-  if (box->root) {
-    domain = gfs_box_domain (box);
-    boundary->root = ftt_cell_new ((FttCellInitFunc) gfs_cell_init, domain);
-    FTT_ROOT_CELL (boundary->root)->parent = box;
-    ftt_cell_set_level (boundary->root, ftt_cell_level (box->root));
-    ftt_cell_set_neighbor_match (boundary->root, box->root, boundary->d, 
-				 (FttCellInitFunc) gfs_cell_init, domain);
-    ftt_cell_pos (box->root, &pos);
-    size = ftt_cell_size (box->root);
-    pos.x += rpos[d].x*size;
-    pos.y += rpos[d].y*size;
-    pos.z += rpos[d].z*size;
-    ftt_cell_set_pos (boundary->root, &pos);
-
+  if (box->root)
     boundary_match (boundary);
-  }
 
   return boundary;
 }
 
 /**
+ * gfs_boundary_update:
+ * @boundary: a #GfsBoundary.
+ *
+ * Calls the @update() method of @boundary.
+ */
+void gfs_boundary_update (GfsBoundary * boundary)
+{
+  g_return_if_fail (boundary != NULL);
+
+  if (GFS_BOUNDARY_CLASS (GTS_OBJECT (boundary)->klass)->update)
+    (* GFS_BOUNDARY_CLASS (GTS_OBJECT (boundary)->klass)->update) (boundary);
+}
+
+/**
  * gfs_boundary_send:
  * @boundary: a #GfsBoundary.
  *
@@ -877,7 +957,12 @@ void gfs_boundary_add_bc (GfsBoundary * b, GfsBc * bc)
     gts_object_destroy (GTS_OBJECT (bc));
 }
 
-/* GfsBoundaryInflowConstant: Object */
+/** \endobject{GfsBoundary} */
+
+/**
+ * Constant inflow boundary.
+ * \beginobject{GfsBoundaryInflowConstant}
+ */
 
 static GtsColor inflow_color (GtsObject * o)
 {
@@ -954,7 +1039,12 @@ GfsBoundaryInflowConstantClass * gfs_boundary_inflow_constant_class (void)
   return klass;
 }
 
-/* GfsBoundaryOutflow: Object */
+/** \endobject{GfsBoundaryInflowConstant} */
+
+/**
+ * Outflow boundary.
+ * \beginobject{GfsBoundaryOutflow}
+ */
 
 static GtsColor outflow_color (GtsObject * o)
 {
@@ -1012,7 +1102,12 @@ GfsBoundaryOutflowClass * gfs_boundary_outflow_class (void)
   return klass;
 }
 
-/* GfsBoundaryGradient: Object */
+/** \endobject{GfsBoundaryOutflow} */
+
+/**
+ * 
+ * \beginobject{GfsBoundaryGradient}
+ */
 
 static GtsColor gradient_color (GtsObject * o)
 {
@@ -1067,7 +1162,12 @@ GfsBoundaryClass * gfs_boundary_gradient_class (void)
   return klass;
 }
 
-/* GfsBoundaryPeriodic: object */
+/** \endobject{GfsBoundaryGradient} */
+
+/**
+ * Periodic boundary.
+ * \beginobject{GfsBoundaryPeriodic}
+ */
 
 static void boundary_periodic_destroy (GtsObject * object)
 {
@@ -1429,7 +1529,12 @@ GfsBoundaryPeriodic * gfs_boundary_periodic_rotate_new (GfsBoundaryClass * klass
   return boundary;
 }
 
-/* GfsGEdge: Object */
+/** \endobject{GfsBoundaryPeriodic} */
+
+/**
+ * Link between #GfsBox.
+ * \beginobject{GfsGEdge}
+ */
 
 static void gfs_gedge_write (GtsObject * object, FILE * fp)
 {
@@ -1529,8 +1634,15 @@ void gfs_gedge_link_boxes (GfsGEdge * edge)
     g_return_if_fail (b2->neighbor[FTT_OPPOSITE_DIRECTION (edge->d)] == NULL);
     
     GtsObject * periodic = GTS_OBJECT (b1);
-    while (periodic && GFS_IS_BOX (periodic) && GFS_BOX (periodic) != b2)
-      periodic = GFS_BOX (periodic)->neighbor[FTT_OPPOSITE_DIRECTION (edge->d)];
+    gdouble * p1 = &FTT_ROOT_CELL (b1->root)->pos.x;
+    gdouble * p2 = &FTT_ROOT_CELL (b2->root)->pos.x;
+    gdouble sign = edge->d % 2 ? 1. : -1.;
+    FttComponent c = edge->d/2;
+    if (p1[c] != G_MAXDOUBLE && p2[c] != G_MAXDOUBLE && sign*(p2[c] - p1[c]) > 0.)
+      periodic = GTS_OBJECT (b2);
+    else
+      while (periodic && GFS_IS_BOX (periodic) && GFS_BOX (periodic) != b2)
+	periodic = GFS_BOX (periodic)->neighbor[FTT_OPPOSITE_DIRECTION (edge->d)];
     
     if (GFS_BOX (periodic) == b2) {
       gfs_boundary_periodic_new (gfs_boundary_periodic_class (), b1, edge->d, b2);
@@ -1576,7 +1688,12 @@ GfsGEdge * gfs_gedge_new (GfsGEdgeClass * klass,
   return edge;
 }
 
-/* GfsBox: Object */
+/** \endobject{GfsGEdge} */
+
+/**
+ * The box making up a #GfsDomain.
+ * \beginobject{GfsBox}
+ */
 
 static void gfs_box_destroy (GtsObject * object)
 {
@@ -1647,12 +1764,12 @@ static void gfs_box_read (GtsObject ** o, GtsFile * fp)
   gboolean class_changed = FALSE;
   FttVector pos = {0., 0., 0.};
   GtsFileVariable var[] = {
-    {GTS_UINT,   "id",     TRUE},
-    {GTS_INT,    "pid",    TRUE},
-    {GTS_UINT,   "size",   TRUE},
-    {GTS_DOUBLE, "x",      TRUE},
-    {GTS_DOUBLE, "y",      TRUE},
-    {GTS_DOUBLE, "z",      TRUE},
+    {GTS_UINT,   "id",     TRUE, &b->id},
+    {GTS_INT,    "pid",    TRUE, &b->pid},
+    {GTS_UINT,   "size",   TRUE, &b->size},
+    {GTS_DOUBLE, "x",      TRUE, &pos.x},
+    {GTS_DOUBLE, "y",      TRUE, &pos.y},
+    {GTS_DOUBLE, "z",      TRUE, &pos.z},
     {GTS_FILE,   "right",  TRUE},
     {GTS_FILE,   "left",   TRUE},
     {GTS_FILE,   "top",    TRUE},
@@ -1701,12 +1818,6 @@ static void gfs_box_read (GtsObject ** o, GtsFile * fp)
   b->root = ftt_cell_new ((FttCellInitFunc) gfs_cell_init, domain);
 
   weight = gts_gnode_weight (GTS_GNODE (b));
-  var[0].data = &b->id;
-  var[1].data = &b->pid;
-  var[2].data = &b->size;
-  var[3].data = &pos.x;
-  var[4].data = &pos.y;
-  var[5].data = &pos.z;
   gts_file_assign_start (fp, var);
   if (fp->type == GTS_ERROR)
     return;
@@ -1732,25 +1843,41 @@ static void gfs_box_read (GtsObject ** o, GtsFile * fp)
     }
   
   if (fp->type == '{') {
-    FttDirection d;
+    FttCell * root;
 
-    ftt_cell_destroy (b->root, (FttCellCleanupFunc) gfs_cell_cleanup, domain);
     fp->scope_max++;
     if (domain->binary) {
       if (gts_file_getc (fp) != '\n') {
       	gts_file_error (fp, "expecting a newline");
       	return;
       }
-      b->root = ftt_cell_read_binary (fp, (FttCellReadFunc) gfs_cell_read_binary, domain);
+      root = ftt_cell_read_binary (fp, (FttCellReadFunc) gfs_cell_read_binary, domain);
       if (fp->type == GTS_ERROR)
 	return;
       gts_file_next_token (fp);
     }
     else {
       gts_file_first_token_after (fp, '\n');
-      b->root = ftt_cell_read (fp, (FttCellReadFunc) gfs_cell_read, domain);
+      root = ftt_cell_read (fp, (FttCellReadFunc) gfs_cell_read, domain);
     }
     fp->scope_max--;
+
+    if (domain->pid >= 0 && b->pid != domain->pid)
+      /* ignore data of boxes belonging to other PEs */
+      ftt_cell_destroy (root, (FttCellCleanupFunc) gfs_cell_cleanup, domain);
+    else {
+      ftt_cell_destroy (b->root, (FttCellCleanupFunc) gfs_cell_cleanup, domain);
+      b->root = root;
+      FttDirection d;
+      for (d = 0; d < FTT_NEIGHBORS; d++)
+	if (GFS_IS_BOUNDARY (b->neighbor[d])) {
+	  GfsBoundary * boundary = GFS_BOUNDARY (b->neighbor[d]);
+	  
+	  ftt_cell_set_neighbor_match (boundary->root, b->root, boundary->d, 
+				       (FttCellInitFunc) gfs_cell_init, domain);
+	}
+    }
+	
     if (fp->type == GTS_ERROR)
       return;
     if (fp->type != '}') {
@@ -1758,14 +1885,6 @@ static void gfs_box_read (GtsObject ** o, GtsFile * fp)
       return;
     }
     gts_file_next_token (fp);
-
-    for (d = 0; d < FTT_NEIGHBORS; d++)
-      if (GFS_IS_BOUNDARY (b->neighbor[d])) {
-	GfsBoundary * boundary = GFS_BOUNDARY (b->neighbor[d]);
-
-	ftt_cell_set_neighbor_match (boundary->root, b->root, boundary->d, 
-				     (FttCellInitFunc) gfs_cell_init, domain);
-      }
   }
 
   FTT_ROOT_CELL (b->root)->parent = b;
@@ -1865,3 +1984,4 @@ GfsBox * gfs_box_new (GfsBoxClass * klass)
   return object;
 }
 
+/** \endobject{GfsBox} */
diff --git a/src/boundary.h b/src/boundary.h
index 217ca7f..0c7edd2 100644
--- a/src/boundary.h
+++ b/src/boundary.h
@@ -39,12 +39,14 @@ typedef struct _GfsBc         GfsBc;
 struct _GfsBc {
   /*< private >*/
   GtsObject parent;
+  GfsLinearProblem * lp;
 
   /*< public >*/
   GfsBoundary * b;
   GfsVariable * v;
   gboolean extra;
   FttFaceTraverseFunc bc, homogeneous_bc;
+  FttFaceTraverseFunc homogeneous_bc_stencil;
   FttFaceTraverseFunc face_bc;
 };
 
@@ -160,6 +162,7 @@ struct _GfsBoundaryClass {
 			      FttTraverseFlags flags,
 			      gint max_depth);
   void (* synchronize)       (GfsBoundary * boundary);
+  void (* update)            (GfsBoundary * boundary);
 };
 
 #define GFS_BOUNDARY(obj)            GTS_OBJECT_CAST (obj,\
@@ -176,6 +179,7 @@ GfsBoundary *      gfs_boundary_new                  (GfsBoundaryClass * klass,
 						      GfsBox * box,
 						      FttDirection d);
 void               gfs_boundary_send                 (GfsBoundary * boundary);
+void               gfs_boundary_update               (GfsBoundary * boundary);
 void               gfs_boundary_receive              (GfsBoundary * boundary,
 						      FttTraverseFlags flags,
 						      gint max_depth);
diff --git a/src/cartesian.c b/src/cartesian.c
index fcd2628..c135b97 100644
--- a/src/cartesian.c
+++ b/src/cartesian.c
@@ -16,11 +16,17 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
  * 02111-1307, USA.  
  */
+/*! \file
+ * \brief Data defined on Cartesian grids.
+ */
 
 #include <stdlib.h>
 #include "cartesian.h"
 
-/* GfsCartesianGrid: Object */
+/**
+ * Storage for Cartesian grid data.
+ * \beginobject{GfsCartesianGrid}
+ */
 
 static void gfs_cartesian_grid_read (GtsObject ** o, GtsFile * fp)
 {
@@ -68,6 +74,7 @@ static void gfs_cartesian_grid_read (GtsObject ** o, GtsFile * fp)
   cgd->x = g_malloc0 (cgd->N*sizeof (gdouble *));
   for (i = 0; i < cgd->N; i++) {
     cgd->x[i] = g_malloc (cgd->n[i]*sizeof (gdouble));
+    gdouble last = - G_MAXDOUBLE;
     for (j = 0; j < cgd->n[i]; j++) {
       if (fp->type == '\n')
 	gts_file_next_token (fp);
@@ -76,6 +83,11 @@ static void gfs_cartesian_grid_read (GtsObject ** o, GtsFile * fp)
         return;
       }
       cgd->x[i][j] = atof (fp->token->str);
+      if (cgd->x[i][j] < last) {
+	gts_file_error (fp, "coordinates must be in increasing order", i, j);
+        return;
+      }
+      last = cgd->x[i][j];
       gts_file_next_token (fp);
     }
   }
@@ -244,3 +256,5 @@ gboolean gfs_cartesian_grid_interpolate (GfsCartesianGrid * g, gdouble * p, gdou
   *val = v1 + (v2 - v1)*(p[0] - g->x[0][i])/(g->x[0][i + 1] -  g->x[0][i]);
   return TRUE;
 }
+
+/** \endobject{GfsCartesianGrid} */
diff --git a/src/domain.c b/src/domain.c
index 186faa6..8b2cfb2 100644
--- a/src/domain.c
+++ b/src/domain.c
@@ -16,6 +16,9 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
  * 02111-1307, USA.  
  */
+/*! \file
+ * \brief Spatial domain.
+ */
 
 #include <math.h>
 #include <stdlib.h>
@@ -32,15 +35,16 @@
 #include "mpi_boundary.h"
 #include "metric.h"
 #include "version.h"
+#include "init.h"
 
 #include "config.h"
 
 /* LocateArray */
 
 typedef struct {
-  GtsObject ** root;
+  GSList ** root;
   gdouble h, min[FTT_DIMENSION], max[FTT_DIMENSION];
-  gint n[FTT_DIMENSION];
+  gint n[FTT_DIMENSION], size;
 } LocateArray;
 
 static void locate_index (FttVector * p, LocateArray * a, gint i[FTT_DIMENSION])
@@ -88,7 +92,8 @@ static void box_index (GfsBox * b, LocateArray * a)
   ftt_cell_pos (b->root, &p);
   gint i = locate_linear_index (&p, a);
   g_assert (i >= 0);
-  a->root[i] = GTS_OBJECT (b);
+  g_assert (!a->root[i]);
+  a->root[i] = g_slist_prepend (NULL, b);
   FttDirection d;
   for (d = 0; d < FTT_NEIGHBORS; d++)
     if (GFS_IS_BOUNDARY (b->neighbor[d])) {
@@ -96,7 +101,7 @@ static void box_index (GfsBox * b, LocateArray * a)
       ftt_cell_pos (boundary->root, &p);
       gint i = locate_linear_index (&p, a);
       g_assert (i >= 0);
-      a->root[i] = GTS_OBJECT (boundary);
+      a->root[i] = g_slist_prepend (a->root[i], boundary);
     }
 }
 
@@ -120,12 +125,13 @@ static LocateArray * locate_array_new (GfsDomain * domain)
     a->n[i] = ceil ((a->max[i] - a->min[i])/a->h - 0.5);
     size *= a->n[i];
   }
-  a->root = g_malloc0 (size*sizeof (GtsObject *));
+  a->root = g_malloc0 (size*sizeof (GSList *));
+  a->size = size;
   gts_container_foreach (GTS_CONTAINER (domain), (GtsFunc) box_index, a);
   return a;
 }
 
-static GtsObject * locate_array_locate (LocateArray * a, FttVector * p)
+static GSList * locate_array_locate (LocateArray * a, FttVector * p)
 {
   gint i = locate_linear_index (p, a);
   return i < 0 ? NULL : a->root[i];
@@ -134,12 +140,18 @@ static GtsObject * locate_array_locate (LocateArray * a, FttVector * p)
 static void locate_array_destroy (LocateArray * a)
 {
   if (a) {
+    gint i;
+    for (i = 0; i < a->size; i++)
+      g_slist_free (a->root[i]);
     g_free (a->root);
     g_free (a);
   }
 }
 
-/* GfsDomain: Object */
+/**
+ * Spatial domain.
+ * \beginobject{GfsDomain}
+ */
 
 static void domain_write (GtsObject * o, FILE * fp)
 {
@@ -226,6 +238,9 @@ static void domain_read (GtsObject ** o, GtsFile * fp)
     return;
   }
 
+  if (var[4].set || var[5].set || var[6].set)
+    g_warning ("the (lx,ly,lz) parameters are obsolete, please use GfsMetricStretch instead");
+
 #if FTT_2D
   if (var[3].set) {
     gts_file_variable_error (fp, var, "z", "unknown identifier `z'");
@@ -262,7 +277,7 @@ static void domain_read (GtsObject ** o, GtsFile * fp)
     g_free (variables1);
     domain->variables_io = gfs_variables_from_list (domain->variables, variables, &s);
     g_free (variables);
-  }
+  } 
 }
 
 static void box_set_pos (GfsBox * box, FttVector * pos, 
@@ -319,26 +334,33 @@ static void set_ref_pos (GfsBox * box, FttVector * pos)
     box_set_pos (box, pos, FTT_RIGHT);
 }
 
-static void removed_list (GfsBox * box, gpointer * data)
+static void pid_max (GfsBox * box, gint * np)
 {
-  GfsDomain * domain = data[0];
-  GSList ** removed = data[1];
-  guint * np = data[2];
-  if (box->pid != domain->pid)
-    *removed = g_slist_prepend (*removed, box);
+  if (box->pid > *np)
+    *np = box->pid;  
+}
+
+typedef struct {
+  GSList * removed;
+  gint pid;
+} RemovedData;
+
+static void removed_list (GfsBox * box, RemovedData * p)
+{
+  if (box->pid != p->pid)
+    p->removed = g_slist_prepend (p->removed, box);
   else {
     FttDirection d;
     GfsBox * matching;
 
     for (d = 0; d < FTT_NEIGHBORS; d++)
       if (GFS_IS_BOUNDARY_PERIODIC (box->neighbor[d]) &&
-	  (matching = GFS_BOUNDARY_PERIODIC (box->neighbor[d])->matching)->pid != domain->pid) {
+	  !GFS_IS_BOUNDARY_MPI (box->neighbor[d]) &&
+	  (matching = GFS_BOUNDARY_PERIODIC (box->neighbor[d])->matching)->pid != p->pid) {
 	gts_object_destroy (GTS_OBJECT (box->neighbor[d]));
 	gfs_boundary_mpi_new (gfs_boundary_mpi_class (), box, d, matching->pid, matching->id);
       }
   }
-  if (box->pid > *np)
-    *np = box->pid;
 }
 
 static void mpi_links (GfsBox * box, GfsDomain * domain)
@@ -411,27 +433,35 @@ static void domain_post_read (GfsDomain * domain, GtsFile * fp)
 {
   gts_graph_foreach_edge (GTS_GRAPH (domain), (GtsFunc) gfs_gedge_link_boxes, NULL);
 
-  if (domain->pid >= 0) { /* Multiple PEs */
-    GSList * removed = NULL;
-    guint np = 0;
-    gpointer data[3];
+  domain->np = 0;
+  gts_container_foreach (GTS_CONTAINER (domain), (GtsFunc) pid_max, &domain->np);
+#ifdef HAVE_MPI
+  if (domain->pid >= 0) { 
+    /* Multiple PEs, make sure we have the max pid over all the boxes,
+       in case each process loads a different file */
+    int npmax;
+    MPI_Allreduce (&domain->np, &npmax, 1, MPI_INT, MPI_MAX, MPI_COMM_WORLD);
+    domain->np = npmax;
+  }
+#endif /* HAVE_MPI */
+  domain->np++; /* number of PEs according to pids */
+
+  if (domain->np > 1 && domain->pid >= 0) { /* Multiple PEs */
+    RemovedData p = { NULL, domain->pid };
     
     gts_container_foreach (GTS_CONTAINER (domain), (GtsFunc) set_ref_pos, &domain->refpos);
-    data[0] = domain;
-    data[1] = &removed;
-    data[2] = &np;
-    gts_container_foreach (GTS_CONTAINER (domain), (GtsFunc) removed_list, data);
+    gts_container_foreach (GTS_CONTAINER (domain), (GtsFunc) removed_list, &p);
 #ifdef HAVE_MPI
     int comm_size;
     MPI_Comm_size (MPI_COMM_WORLD, &comm_size);
-    if (np + 1 != comm_size) {
-      g_slist_free (removed);
-      gts_file_error (fp, "it would be valid if one or %d PE were used", np + 1);
+    if (domain->np != comm_size) {
+      g_slist_free (p.removed);
+      gts_file_error (fp, "it would be valid if one or %d PE were used", domain->np);
       return;
     }
 #endif /* HAVE_MPI */
-    g_slist_foreach (removed, (GFunc) mpi_links, domain);
-    g_slist_free (removed);
+    g_slist_foreach (p.removed, (GFunc) mpi_links, domain);
+    g_slist_free (p.removed);
   }
   else { /* Single PE */
     /* Create array for fast linking of ids to GfsBox pointers */
@@ -461,7 +491,8 @@ static void free_pair (gpointer key, gpointer value)
 
 static void cleanup_each_box (GfsBox * box, GfsDomain * domain)
 {
-  if (GFS_IS_BOX (box)) { /* this is a necessary check when using graph partitioning */
+  /* this is a necessary check when using graph partitioning */
+  if (g_slist_length (GTS_SLIST_CONTAINEE (box)->containers) == 1) {
     ftt_cell_traverse (box->root, FTT_PRE_ORDER, FTT_TRAVERSE_ALL, -1,
 		       (FttCellTraverseFunc) gfs_cell_cleanup, domain);
     FttDirection d;
@@ -479,6 +510,7 @@ static void domain_destroy (GtsObject * o)
   GSList * i;
 
   gfs_clock_destroy (domain->timer);
+  g_timer_destroy (domain->clock);
 
   gts_container_foreach (GTS_CONTAINER (domain), (GtsFunc) cleanup_each_box, domain);
 
@@ -503,6 +535,8 @@ static void domain_destroy (GtsObject * o)
 
   locate_array_destroy (domain->array);
 
+  g_hash_table_destroy (domain->objects);
+
   (* GTS_OBJECT_CLASS (gfs_domain_class ())->parent_class->destroy) (o);
 }
 
@@ -559,6 +593,7 @@ static void domain_init (GfsDomain * domain)
     MPI_Comm_rank (MPI_COMM_WORLD, &domain->pid);
 #endif /* HAVE_MPI */
 
+  domain->clock = g_timer_new ();
   domain->timer = gfs_clock_new ();
   domain->timers = g_hash_table_new (g_str_hash, g_str_equal);
 
@@ -585,6 +620,10 @@ static void domain_init (GfsDomain * domain)
   domain->version = atoi (GFS_BUILD_VERSION);
 
   domain->overlap = TRUE;
+
+  domain->objects = g_hash_table_new (g_str_hash, g_str_equal);
+
+  domain->np = 1;
 }
 
 GfsDomainClass * gfs_domain_class (void)
@@ -613,21 +652,23 @@ typedef struct {
   gint max_depth;
   GfsVariable * v, * v1;
   FttComponent c;
+  GfsLinearProblem * lp;
 } BcData;
 
 static void box_bc (GfsBox * box, BcData * p)
 {
   FttDirection d;
 
-  for (d = 0; d < FTT_NEIGHBORS; d++) 
+  for (d = 0; d < FTT_NEIGHBORS; d++)
     if (GFS_IS_BOUNDARY (box->neighbor[d])) {
       GfsBoundary * b = GFS_BOUNDARY (box->neighbor[d]);
       GfsBc * bc = gfs_boundary_lookup_bc (b, p->v);
 
       if (bc) {
 	b->v = p->v1;
+  	b->type = GFS_BOUNDARY_CENTER_VARIABLE;
+	gfs_boundary_update (b);
 	bc->v = p->v1;
-	b->type = GFS_BOUNDARY_CENTER_VARIABLE;
 	ftt_face_traverse_boundary (b->root, b->d,
 				    FTT_PRE_ORDER, p->flags, p->max_depth,
 				    bc->bc, bc);
@@ -701,7 +742,12 @@ static void box_match (GfsBox * box)
       g_assert (GFS_BOUNDARY_CLASS (box->neighbor[d]->klass)->match);
       boundary->type = GFS_BOUNDARY_MATCH_VARIABLE;
       (* GFS_BOUNDARY_CLASS (box->neighbor[d]->klass)->match) (boundary);
-      gfs_boundary_send (boundary);
+      if (!boundary->root) {
+	gts_object_destroy (GTS_OBJECT (boundary));
+	box->neighbor[d] = NULL;
+      }
+      else
+	gfs_boundary_send (boundary);
     }
 }
 
@@ -738,7 +784,7 @@ void gfs_domain_copy_bc (GfsDomain * domain,
 			 GfsVariable * v,
 			 GfsVariable * v1)
 {
-  BcData b = { flags, max_depth, v, v1, FTT_XYZ };
+  BcData b = { flags, max_depth, v, v1, FTT_XYZ};
 
   g_return_if_fail (domain != NULL);
   g_return_if_fail (v != NULL);
@@ -797,6 +843,29 @@ static void box_homogeneous_bc (GfsBox * box, BcData * p)
     }
 }
 
+static void box_homogeneous_bc_stencil (GfsBox * box, BcData * p)
+{
+  FttDirection d;
+
+  for (d = 0; d < FTT_NEIGHBORS; d++) 
+    if (GFS_IS_BOUNDARY (box->neighbor[d]) && !GFS_IS_BOUNDARY_MPI (box->neighbor[d])) {
+      GfsBoundary * b = GFS_BOUNDARY (box->neighbor[d]);
+      GfsBc * bc = gfs_boundary_lookup_bc (b, p->v);
+      
+      if (bc) {
+	b->v = p->v1;
+	bc->v = p->v1;
+	b->type = GFS_BOUNDARY_CENTER_VARIABLE;
+	bc->lp = p->lp;
+	ftt_face_traverse_boundary (b->root, b->d,
+				    FTT_PRE_ORDER, p->flags, p->max_depth,
+				    bc->homogeneous_bc_stencil, bc);
+	bc->v = p->v;
+	gfs_boundary_send (b);
+      }
+    }
+}
+
 /**
  * gfs_domain_homogeneous_bc:
  * @domain: a #GfsDomain.
@@ -814,7 +883,7 @@ void gfs_domain_homogeneous_bc (GfsDomain * domain,
 				GfsVariable * ov,
 				GfsVariable * v)
 {
-  BcData b = { flags, max_depth, v, ov, FTT_XYZ };
+  BcData b = { flags, max_depth, v, ov, FTT_XYZ};
 
   g_return_if_fail (domain != NULL);
   g_return_if_fail (ov != NULL);
@@ -831,6 +900,33 @@ void gfs_domain_homogeneous_bc (GfsDomain * domain,
     gfs_domain_timer_stop (domain, "bc");
 }
 
+/**
+ * gfs_domain_homogeneous_bc_stencil:
+ * @domain: a #GfsDomain.
+ * @flags: the traversal flags.
+ * @max_depth: the maximum depth of the traversal.
+ * @ov: a #GfsVariable.
+ * @v: a #GfsVariable of which @ov is an homogeneous version.
+ * @lp: a #GfsLinearProblem in which to store the stencil.
+ *
+ * Gets the stencils corresponding to the homogeneous boundary
+ * conditions in @domain for variable @v.
+ */
+void gfs_domain_homogeneous_bc_stencil (GfsDomain * domain,
+					FttTraverseFlags flags,
+					gint max_depth,
+					GfsVariable * ov,
+					GfsVariable * v,
+					GfsLinearProblem * lp)
+{
+  BcData b = { flags, max_depth, v, ov, FTT_XYZ, lp };
+
+  g_return_if_fail (domain != NULL);
+  g_return_if_fail (v != NULL);
+
+  gts_container_foreach (GTS_CONTAINER (domain), (GtsFunc) box_homogeneous_bc_stencil, &b);
+}
+
 typedef struct {
   FttCellTraverseFunc func;
   gpointer data;
@@ -1081,7 +1177,7 @@ static void box_changed (GfsBox * box, gboolean * changed)
 
 static void refine_cell_corner (FttCell * cell, GfsDomain * domain)
 {
-  if (ftt_refine_corner (cell))
+  if (FTT_CELL_IS_LEAF (cell) && ftt_refine_corner (cell))
     ftt_cell_refine_single (cell, domain->cell_init, domain->cell_init_data);
 }
 
@@ -1608,9 +1704,9 @@ void gfs_domain_cell_traverse_boundary (GfsDomain * domain,
 static void add_stats (const FttCell * cell, gpointer * data)
 {
   GtsRange * s = data[0];
-  gdouble v = GFS_VARIABLE (cell, GFS_VARIABLE1 (data[1])->i);
+  gdouble v = GFS_VALUE (cell, GFS_VARIABLE1 (data[1]));
 
-  if (v < G_MAXDOUBLE)
+  if (v != GFS_NODATA)
     gts_range_add_value (s, v);
 }
 
@@ -1660,16 +1756,25 @@ static void domain_range_reduce (GfsDomain * domain, GtsRange * s)
  * @v: a #GfsVariable.
  * @flags: which types of cells are to be visited.
  * @max_depth: maximum depth of the traversal.
+ * @condition: a condition or %NULL.
+ * @cdata: user data to pass to @condition.
  *
- * Traverses the domain defined by @domain using gfs_domain_cell_traverse()
- * and gathers statistics about variable @v.
+ * Traverses the domain defined by @domain using
+ * gfs_domain_cell_traverse() and gathers statistics about variable
+ * @v.
+ *
+ * Only cells veryfing @condition are taken into account (if
+ * @condition is not %NULL). See also
+ * gfs_domain_cell_traverse_condition().
  *
  * Returns: a #GtsRange containing the statistics about @v.
  */
 GtsRange gfs_domain_stats_variable (GfsDomain * domain,
 				    GfsVariable * v,
 				    FttTraverseFlags flags,
-				    gint max_depth)
+				    gint max_depth,
+				    gboolean (* condition) (FttCell *, gpointer),
+				    gpointer cdata)
 {
   GtsRange s;
   gpointer data[2];
@@ -1680,8 +1785,13 @@ GtsRange gfs_domain_stats_variable (GfsDomain * domain,
   gts_range_init (&s);
   data[0] = &s;
   data[1] = v;
-  gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, flags, max_depth, 
-			   (FttCellTraverseFunc) add_stats, data);
+  if (condition)
+    gfs_domain_cell_traverse_condition (domain, FTT_PRE_ORDER, flags, max_depth, 
+					(FttCellTraverseFunc) add_stats, data,
+					condition, cdata);
+  else
+    gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, flags, max_depth, 
+			      (FttCellTraverseFunc) add_stats, data);
   domain_range_reduce (domain, &s);
   gts_range_update (&s);
 
@@ -1920,6 +2030,8 @@ static void domain_norm_reduce (GfsDomain * domain, GfsNorm * n)
  * @w: a #GfsFunction or %NULL.
  * @flags: which types of cells are to be visited.
  * @max_depth: maximum depth of the traversal.
+ * @condition: a condition or %NULL.
+ * @cdata: user data to pass to @condition.
  *
  * Traverses the domain defined by @domain using gfs_domain_cell_traverse()
  * and gathers norm statistics about variable @v.
@@ -1927,13 +2039,19 @@ static void domain_norm_reduce (GfsDomain * domain, GfsNorm * n)
  * The norm is weighted by the volume of each cell times the value of
  * function @w (if @w is not %NULL).
  *
+ * Only cells veryfing @condition are taken into account (if
+ * @condition is not %NULL). See also
+ * gfs_domain_cell_traverse_condition().
+ *
  * Returns: a #GfsNorm containing the norm statistics about @v.
  */
 GfsNorm gfs_domain_norm_variable (GfsDomain * domain,
 				  GfsVariable * v,
 				  GfsFunction * w,
 				  FttTraverseFlags flags,
-				  gint max_depth)
+				  gint max_depth,
+				  gboolean (* condition) (FttCell *, gpointer),
+				  gpointer cdata)
 {
   GfsNorm n;
   gpointer data[3];
@@ -1945,12 +2063,20 @@ GfsNorm gfs_domain_norm_variable (GfsDomain * domain,
   data[0] = &n;
   data[1] = v;
   data[2] = w;
+  FttCellTraverseFunc func = w != NULL ?
+    (FttCellTraverseFunc) add_norm_weighted : 
+    (FttCellTraverseFunc) add_norm;
   if (w)
-    gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, flags, max_depth, 
-			      (FttCellTraverseFunc) add_norm_weighted, data);
+    gfs_catch_floating_point_exceptions ();
+  if (condition)
+    gfs_domain_cell_traverse_condition (domain, FTT_PRE_ORDER, flags, max_depth, 
+					(FttCellTraverseFunc) func, data,
+					condition, cdata);
   else
     gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, flags, max_depth, 
-			      (FttCellTraverseFunc) add_norm, data);
+			      (FttCellTraverseFunc) func, data);
+  if (w)
+    gfs_restore_fpe_for_function (w);
   domain_norm_reduce (domain, &n);
   gfs_norm_update (&n);
 
@@ -1963,7 +2089,7 @@ static void add_norm_residual (const FttCell * cell, gpointer * data)
   GfsVariable * res = data[0];
   GfsNorm * n = data[1];
   
-  gfs_norm_add (n, GFS_VARIABLE (cell, res->i)/(size*size), 1.);
+  gfs_norm_add (n, GFS_VALUE (cell, res)/(size*size), 1.);
 }
 
 /**
@@ -2136,37 +2262,31 @@ static void box_split (GfsBox * box, SplitPar * p)
       else
 	newbox->id = (p->bid)++;
 
-      GFS_DOUBLE_TO_POINTER (GFS_VARIABLE (child.c[i], p->newboxp->i)) = newbox;
+      GFS_DOUBLE_TO_POINTER (GFS_VALUE (child.c[i], p->newboxp)) = newbox;
 
       if (FTT_CELL_IS_LEAF (child.c[i]))
 	ftt_cell_refine_single (child.c[i], (FttCellInitFunc) gfs_cell_init, domain);
     }
 
-#if FTT_2D3
-  g_assert_not_implemented ();
-#endif
   for (d = 0; d < FTT_NEIGHBORS; d++)
     if (GFS_IS_BOUNDARY (box->neighbor[d])) {
       GfsBoundary * boundary = GFS_BOUNDARY (box->neighbor[d]);
+      GfsBoundaryClass * klass = GFS_BOUNDARY_CLASS (GTS_OBJECT (boundary)->klass);
 
-      ftt_cell_children (boundary->root, &child);
-      for (i = 0; i < FTT_CELLS; i++)
-	if (child.c[i] && FTT_CELL_IS_LEAF (child.c[i]))
-	  ftt_cell_refine_single (child.c[i], (FttCellInitFunc) gfs_cell_init, domain);
-      ftt_cell_destroy_root (boundary->root, &child, (FttCellCleanupFunc) gfs_cell_cleanup, domain);
+      ftt_cell_destroy (boundary->root, (FttCellCleanupFunc) gfs_cell_cleanup, domain);
       boundary->root = NULL;
-
+      
       ftt_cell_children_direction (box->root, d, &child);
       for (i = 0; i < FTT_CELLS/2; i++)
 	if (child.c[i]) {
-	  FttCell * neighbor = ftt_cell_neighbor (child.c[i], d);
-	  GfsBox * newbox = GFS_DOUBLE_TO_POINTER (GFS_VARIABLE (child.c[i], p->newboxp->i));
-	  GfsBoundaryClass * klass = GFS_BOUNDARY_CLASS (GTS_OBJECT (boundary)->klass);
+	  GfsBox * newbox = GFS_DOUBLE_TO_POINTER (GFS_VALUE (child.c[i], p->newboxp));
 	  GtsObject * newboundary = GTS_OBJECT (gfs_boundary_new (klass, newbox, d));
 
-	  if (GFS_IS_BOUNDARY_PERIODIC (newboundary))
+	  if (GFS_IS_BOUNDARY_PERIODIC (newboundary)) {
 	    GFS_BOUNDARY_PERIODIC (newboundary)->matching = 
 	      GFS_BOUNDARY_PERIODIC (boundary)->matching;
+	    GFS_BOUNDARY_PERIODIC (newboundary)->d = GFS_BOUNDARY_PERIODIC (boundary)->d;
+	  }
 	  else {
 	    gchar fname[] = "/tmp/XXXXXX";
 	    gint fd = mkstemp (fname);
@@ -2184,10 +2304,9 @@ static void box_split (GfsBox * box, SplitPar * p)
 	    gts_file_destroy (gfp);
 	    fclose (fp);
 	  }
-	  g_assert (neighbor);
-	  GFS_BOUNDARY (newboundary)->root = neighbor;
 	}
       gts_object_destroy (GTS_OBJECT (boundary));
+      box->neighbor[d] = NULL;
     }
 }
 
@@ -2211,7 +2330,7 @@ static void box_link (GfsBox * box, SplitPar * p)
   ftt_cell_children (box->root, &child);
   for (i = 0; i < FTT_CELLS; i++)
     if (child.c[i]) {
-       GfsBox * newbox = GFS_DOUBLE_TO_POINTER (GFS_VARIABLE (child.c[i], p->newboxp->i));
+       GfsBox * newbox = GFS_DOUBLE_TO_POINTER (GFS_VALUE (child.c[i], p->newboxp));
        FttDirection d;
        
        g_assert (newbox);
@@ -2220,19 +2339,30 @@ static void box_link (GfsBox * box, SplitPar * p)
        for (d = 0; d < FTT_NEIGHBORS; d++)
 	 if (newbox->neighbor[d] != NULL && GFS_IS_BOUNDARY_PERIODIC (newbox->neighbor[d])) {
 	   GfsBox * matching =  GFS_BOUNDARY_PERIODIC (newbox->neighbor[d])->matching;
-	   static FttDirection match[FTT_CELLS][FTT_DIMENSION] = {
+	   static gint match[FTT_CELLS][FTT_NEIGHBORS] = {
 #if FTT_2D
-	     {0,2}, {1,2}, {0,3}, {1,3}
-#elif FTT_2D3
+	     { -1, 1, 2, -1 },
+	     { 0, -1, 3, -1 },
+	     { -1, 3, -1, 0 },
+	     { 2, -1, -1, 1 }
 #else /* 3D */
-	     {0,2,4}, {1,2,4}, {0,3,4}, {1,3,4},
-	     {0,2,5}, {1,2,5}, {0,3,5}, {1,3,5}
+	     { -1, 1, 2, -1, 4, -1 },
+	     { 0, -1, 3, -1, 5, -1 },
+	     { -1, 3, -1, 0, 6, -1 },
+	     { 2, -1, -1, 1, 7, -1 },
+	     { -1, 5, 6, -1, -1, 0 },
+	     { 4, -1, 7, -1, -1, 1 },
+	     { -1, 7, -1, 4, -1, 2 },
+	     { 6, -1, -1, 5, -1, 3 },	     
 #endif /* 3D */
 	   };
-	   FttCell * neighbor = ftt_cell_child_corner (matching->root, 
-						       match[FTT_CELL_ID (child.c[i])]);
+	   gint ci = match[FTT_CELL_ID (child.c[i])][d];
+	   g_assert (ci >= 0);
+	   FttCellChildren neighbors;
+	   ftt_cell_children (matching->root, &neighbors);
+	   FttCell * neighbor = neighbors.c[ci];
 	   g_assert (neighbor);
-	   GfsBox * newbox1 = GFS_DOUBLE_TO_POINTER (GFS_VARIABLE (neighbor, p->newboxp->i));
+	   GfsBox * newbox1 = GFS_DOUBLE_TO_POINTER (GFS_VALUE (neighbor, p->newboxp));
 	   g_assert (newbox1);
 	   GFS_BOUNDARY_PERIODIC (newbox->neighbor[d])->matching = newbox1;
 	   if (!node_is_linked (GTS_GNODE (newbox1), GTS_GNODE (newbox), 
@@ -2247,7 +2377,7 @@ static void box_link (GfsBox * box, SplitPar * p)
 	   FttCell * neighbor = ftt_cell_neighbor (child.c[i], d);
 
 	   if (neighbor) {
-	     GfsBox * newbox1 = GFS_DOUBLE_TO_POINTER (GFS_VARIABLE (neighbor, p->newboxp->i));
+	     GfsBox * newbox1 = GFS_DOUBLE_TO_POINTER (GFS_VALUE (neighbor, p->newboxp));
 	     FttDirection od = FTT_OPPOSITE_DIRECTION (d);
 	     GfsGEdge * edge;
 
@@ -2273,7 +2403,7 @@ static void box_destroy (GfsBox * box, GfsVariable * newboxp)
   ftt_cell_children (box->root, &child);
   for (i = 0; i < FTT_CELLS; i++)
     if (child.c[i])
-      newbox[i] = GFS_DOUBLE_TO_POINTER (GFS_VARIABLE (child.c[i], newboxp->i));
+      newbox[i] = GFS_DOUBLE_TO_POINTER (GFS_VALUE (child.c[i], newboxp));
     else
       newbox[i] = NULL;
 
@@ -2358,11 +2488,11 @@ FttCell * gfs_domain_locate (GfsDomain * domain,
 			     gint max_depth,
 			     GfsBox ** where)
 {
-  GtsObject * b = locate_array_locate (domain->array, &target);
-  if (GFS_IS_BOX (b)) {
+  GSList * b = locate_array_locate (domain->array, &target);
+  if (b && GFS_IS_BOX (b->data)) {
     if (where)
-      *where = GFS_BOX (b);
-    return ftt_cell_locate (GFS_BOX (b)->root, target, max_depth);
+      *where = b->data;
+    return ftt_cell_locate (GFS_BOX (b->data)->root, target, max_depth);
   }
   return NULL;
 }
@@ -2388,15 +2518,25 @@ FttCell * gfs_domain_boundary_locate (GfsDomain * domain,
 				      gint max_depth,
 				      GtsObject ** where)
 {
-  GtsObject * b = locate_array_locate (domain->array, &target);
-  if (where)
-    *where = b;
-  if (GFS_IS_BOX (b))
-    return ftt_cell_locate (GFS_BOX (b)->root, target, max_depth);
-  else if (GFS_IS_BOUNDARY (b)) {
-    FttCell * cell = ftt_cell_locate (GFS_BOUNDARY (b)->root, target, max_depth);
-    return cell && GFS_CELL_IS_BOUNDARY (cell) ? cell : NULL;
+  GSList * b = locate_array_locate (domain->array, &target);
+  if (!b)
+    return NULL;
+  if (GFS_IS_BOX (b->data)) {
+    if (where)
+      *where = b->data;
+    return ftt_cell_locate (GFS_BOX (b->data)->root, target, max_depth);
   }
+  else
+    while (b) {
+      g_assert (GFS_IS_BOUNDARY (b->data));
+      FttCell * cell = ftt_cell_locate (GFS_BOUNDARY (b->data)->root, target, max_depth);
+      if (cell && GFS_CELL_IS_BOUNDARY (cell)) {
+	if (where)
+	  *where = b->data;
+	return cell;
+      }
+      b = b->next;
+    }
   return NULL;
 }
 
@@ -2798,7 +2938,7 @@ void gfs_cell_write (const FttCell * cell, FILE * fp,
     fputs (" -1", fp);
   
   while (variables) {
-    fprintf (fp, " %g", GFS_VARIABLE (cell, GFS_VARIABLE1 (variables->data)->i));
+    fprintf (fp, " %g", GFS_VALUE (cell, GFS_VARIABLE1 (variables->data)));
     variables = variables->next;
   }
 }
@@ -2874,7 +3014,7 @@ void gfs_cell_read (FttCell * cell, GtsFile * fp, GfsDomain * domain)
       gts_file_error (fp, "expecting a number (%s)", v->name);
       return;
     }
-    GFS_VARIABLE (cell, v->i) = atof (fp->token->str);
+    GFS_VALUE (cell, v) = atof (fp->token->str);
     gts_file_next_token (fp);
     i = i->next;
   }
@@ -2910,7 +3050,7 @@ void gfs_cell_write_binary (const FttCell * cell, FILE * fp,
   }
   
   while (variables) {
-    gdouble a = GFS_VARIABLE (cell, GFS_VARIABLE1 (variables->data)->i);
+    gdouble a = GFS_VALUE (cell, GFS_VARIABLE1 (variables->data));
     fwrite (&a, sizeof (gdouble), 1, fp);
     variables = variables->next;
   }
@@ -2980,7 +3120,7 @@ void gfs_cell_read_binary (FttCell * cell, GtsFile * fp, GfsDomain * domain)
       gts_file_error (fp, "expecting a number (%s)", v->name);
       return;
     }
-    GFS_VARIABLE (cell, v->i) = a;
+    GFS_VALUE (cell, v) = a;
     i = i->next;
   }
 }
@@ -3097,23 +3237,27 @@ GfsVariable * gfs_domain_get_or_add_variable (GfsDomain * domain,
   return v;
 }
 
-static void add_pressure_force (FttCell * cell, gpointer * data)
+typedef struct {
+  gdouble * f, * m;
+  GfsVariable * v;
+  GfsFunction * weight;
+  GfsSourceDiffusion * d;
+} Force;
+
+static void add_pressure_force (FttCell * cell, Force * f)
 {
-  gdouble weight = data[3] ? gfs_function_value (data[3], cell) : 1.;
+  gdouble weight = f->weight ? gfs_function_value (f->weight, cell) : 1.;
 
   if (weight != 0.) {
-    gdouble * f = data[0];
-    gdouble * m = data[1];
     gdouble * r = &GFS_STATE (cell)->solid->ca.x;
-    GfsVariable * p = data[2];
     FttVector ff, mm;
     FttComponent c;
     
-    gfs_pressure_force (cell, p, &ff);
+    gfs_pressure_force (cell, f->v, &ff);
     gts_vector_cross (&mm.x, r, &ff.x);
     for (c = 0; c < 3; c++) {
-      f[c] += weight*(&ff.x)[c];
-      m[c] += weight*(&mm.x)[c];
+      f->f[c] += weight*(&ff.x)[c];
+      f->m[c] += weight*(&mm.x)[c];
     }
   }
 }
@@ -3134,15 +3278,11 @@ static GfsSourceDiffusion * source_diffusion (GfsVariable * v)
   return NULL;
 }
 
-static void add_viscous_force (FttCell * cell, gpointer * data)
+static void add_viscous_force (FttCell * cell, Force * f)
 {
-  gdouble weight = data[4] ? gfs_function_value (data[4], cell) : 1.;
+  gdouble weight = f->weight ? gfs_function_value (f->weight, cell) : 1.;
 
   if (weight != 0.) {
-    gdouble * f = data[0];
-    gdouble * m = data[1];
-    GfsVariable * v = data[2];
-    GfsSourceDiffusion * d = data[3];
     gdouble D;
     GfsSolidVector * s = GFS_STATE (cell)->solid;
     gdouble * r = &s->ca.x;
@@ -3150,14 +3290,14 @@ static void add_viscous_force (FttCell * cell, gpointer * data)
     FttComponent c;
     
     g_assert (((cell)->flags & GFS_FLAG_DIRICHLET) != 0);
-    gfs_cell_dirichlet_gradient (cell, v->i, -1, s->fv, &g);
+    gfs_cell_dirichlet_gradient (cell, f->v->i, -1, s->fv, &g);
     
-    D = - gfs_source_diffusion_cell (d, cell);
+    D = - gfs_source_diffusion_cell (f->d, cell);
     n.x = s->s[1] - s->s[0];
     n.y = s->s[3] - s->s[2];
 #if FTT_2D
     ff.z = 0.;
-    switch (v->component) {
+    switch (f->v->component) {
     case FTT_X:
       ff.x = D*(2.*g.x*n.x + g.y*n.y);
       ff.y = D*g.y*n.x;
@@ -3172,7 +3312,7 @@ static void add_viscous_force (FttCell * cell, gpointer * data)
 #else /* 3D */
     n.z = s->s[5] - s->s[4];
     D *= ftt_cell_size (cell);
-    switch (v->component) {
+    switch (f->v->component) {
     case FTT_X:
       ff.x = D*(2.*g.x*n.x + g.y*n.y + g.z*n.z);
       ff.y = D*g.y*n.x;
@@ -3194,8 +3334,8 @@ static void add_viscous_force (FttCell * cell, gpointer * data)
 #endif /* 3D */
     gts_vector_cross (&mm.x, r, &ff.x);
     for (c = 0; c < 3; c++) {
-      f[c] += weight*(&ff.x)[c];
-      m[c] += weight*(&mm.x)[c];
+      f->f[c] += weight*(&ff.x)[c];
+      f->m[c] += weight*(&mm.x)[c];
     }
   }
 }
@@ -3225,7 +3365,6 @@ void gfs_domain_solid_force (GfsDomain * domain,
 {
   FttComponent c;
   GfsVariable ** v;
-  gpointer data[4];
 
   g_return_if_fail (domain != NULL);
   g_return_if_fail (pf != NULL);
@@ -3238,13 +3377,17 @@ void gfs_domain_solid_force (GfsDomain * domain,
 
   pf->x = pf->y = pf->z = 0.;
   pm->x = pm->y = pm->z = 0.;
-  data[0] = pf;
-  data[1] = pm;
-  data[2] = gfs_variable_from_name (domain->variables, "P");
-  data[3] = weight;
+  Force f;
+  f.f = (gdouble *) pf;
+  f.m = (gdouble *) pm;
+  f.v = gfs_variable_from_name (domain->variables, "P");
+  f.weight = weight;
+  if (weight)
+    gfs_catch_floating_point_exceptions ();
   gfs_domain_traverse_mixed (domain, FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS,
-			     (FttCellTraverseFunc) add_pressure_force, data);
-
+			     (FttCellTraverseFunc) add_pressure_force, &f);
+  if (weight)
+    gfs_restore_fpe_for_function (weight);
   vf->x = vf->y = vf->z = 0.;
   vm->x = vm->y = vm->z = 0.;
   v = gfs_domain_velocity (domain);
@@ -3252,18 +3395,27 @@ void gfs_domain_solid_force (GfsDomain * domain,
     GfsSourceDiffusion * D = source_diffusion (v[c]);
 
     if (D) {
-      gpointer data[5];
-
       gfs_domain_surface_bc (domain, v[c]);
-      data[0] = vf;
-      data[1] = vm;
-      data[2] = v[c];
-      data[3] = D;
-      data[4] = weight;
+      f.f = (gdouble *) vf;
+      f.m = (gdouble *) vm;
+      f.v = v[c];
+      f.d = D;
+      f.weight = weight;
+      if (weight)
+	gfs_catch_floating_point_exceptions ();
       gfs_domain_traverse_mixed (domain, FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS,
-				 (FttCellTraverseFunc) add_viscous_force, data);
+				 (FttCellTraverseFunc) add_viscous_force, &f);
+      if (weight)
+	gfs_restore_fpe_for_function (weight);
     }
   }
+
+  for (c = 0; c < 3; c++) {
+    gfs_all_reduce (domain, (&pf->x)[c], MPI_DOUBLE, MPI_SUM);
+    gfs_all_reduce (domain, (&vf->x)[c], MPI_DOUBLE, MPI_SUM);
+    gfs_all_reduce (domain, (&pm->x)[c], MPI_DOUBLE, MPI_SUM);
+    gfs_all_reduce (domain, (&vm->x)[c], MPI_DOUBLE, MPI_SUM);
+  }
 }
 
 #define THRESHOLD 1e-4
@@ -3289,9 +3441,6 @@ static void tag_cell_fraction (GtsFifo * fifo,
 	FttDirection od = FTT_OPPOSITE_DIRECTION (d);
 	guint i;
 
-#if FTT_2D3
-	g_assert_not_implemented ();
-#endif	
 	ftt_cell_children_direction (n.c[d], od, &child);
 	for (i = 0; i < FTT_CELLS/2; i++)
 	  if (child.c[i] && GFS_VALUE (child.c[i], v) == 0. &&
@@ -3373,8 +3522,7 @@ static void unify_tag_range (GfsDomain * domain, TagPar * p)
     guint * tags;
     MPI_Comm_size (MPI_COMM_WORLD, &gsize);
     tags = g_malloc (sizeof (guint)*gsize);
-    tags[domain->pid] = p->tag;
-    MPI_Allgather (&tags[domain->pid], 1, MPI_UNSIGNED, tags, 1, MPI_UNSIGNED, MPI_COMM_WORLD);
+    MPI_Allgather (&p->tag, 1, MPI_UNSIGNED, tags, 1, MPI_UNSIGNED, MPI_COMM_WORLD);
     /* tags[] now contains the p->tag value on each PE */
     guint i;
     p->tag = 0;
@@ -3581,22 +3729,23 @@ void gfs_domain_remove_droplets (GfsDomain * domain,
   gts_object_destroy (GTS_OBJECT (p.tag));
 }
 
-static void tag_cell (FttCell * cell, GfsVariable * v, guint tag, guint * size)
+static void tag_cell (GtsFifo * fifo, FttCell * cell, GfsVariable * v, guint tag, guint * size)
 {
   FttDirection d;
   FttCellNeighbors n;
   GfsSolidVector * solid = GFS_STATE (cell)->solid;
 
   g_assert (FTT_CELL_IS_LEAF (cell));
-  GFS_VARIABLE (cell, v->i) = tag;
   (*size)++;
   ftt_cell_neighbors (cell, &n);
   for (d = 0; d < FTT_NEIGHBORS; d++)
-    if (n.c[d] && GFS_VARIABLE (n.c[d], v->i) == 0. &&
+    if (n.c[d] && GFS_VALUE (n.c[d], v) == 0. &&
 	!GFS_CELL_IS_BOUNDARY (n.c[d]) &&
 	(!solid || solid->s[d] > 0.)) {
-      if (FTT_CELL_IS_LEAF (n.c[d]))
-	tag_cell (n.c[d], v, tag, size);
+      if (FTT_CELL_IS_LEAF (n.c[d])) {
+	GFS_VALUE (n.c[d], v) = tag;
+	gts_fifo_push (fifo, n.c[d]);
+      }
       else {
 	FttCellChildren child;
 	FttDirection od = FTT_OPPOSITE_DIRECTION (d);
@@ -3604,9 +3753,11 @@ static void tag_cell (FttCell * cell, GfsVariable * v, guint tag, guint * size)
 	
 	j = ftt_cell_children_direction (n.c[d], od, &child);
 	for (i = 0; i < j; i++)
-	  if (child.c[i] && GFS_VARIABLE (child.c[i], v->i) == 0. &&
-	      (!GFS_IS_MIXED (child.c[i]) || GFS_STATE (child.c[i])->solid->s[od] > 0.))
-	    tag_cell (child.c[i], v, tag, size);
+	  if (child.c[i] && GFS_VALUE (child.c[i], v) == 0. &&
+	      (!GFS_IS_MIXED (child.c[i]) || GFS_STATE (child.c[i])->solid->s[od] > 0.)) {
+	    GFS_VALUE (child.c[i], v) = tag;
+	    gts_fifo_push (fifo, child.c[i]);
+	  }
       }
     }
 }
@@ -3615,12 +3766,17 @@ static void tag_new_region (FttCell * cell, gpointer * data)
 {
   GfsVariable * v = data[0];
 
-  if (GFS_VARIABLE (cell, v->i) == 0.) {
+  if (GFS_VALUE (cell, v) == 0.) {
     GArray * sizes = data[1];
     guint size = 0;
+    GtsFifo * fifo = gts_fifo_new ();
 
-    tag_cell (cell, v, sizes->len + 1, &size);
+    GFS_VALUE (cell, v) = sizes->len + 1;
+    gts_fifo_push (fifo, cell);
+    while ((cell = gts_fifo_pop (fifo)))
+      tag_cell (fifo, cell, v, sizes->len + 1, &size);
     g_array_append_val (sizes, size);
+    gts_fifo_destroy (fifo);
   }
 }
 
@@ -3629,9 +3785,9 @@ static gboolean remove_small (FttCell * cell, gpointer * data)
   if (FTT_CELL_IS_LEAF (cell)) {
     GArray * sizes = data[0];
     GfsVariable * v = data[5];
-    guint * min = data[1], i = GFS_VARIABLE (cell, v->i) - 1.;
+    guint * min = data[1], i = GFS_VALUE (cell, v) - 1.;
 
-    g_assert (GFS_VARIABLE (cell, v->i) > 0.);
+    g_assert (GFS_VALUE (cell, v) > 0.);
     if (g_array_index (sizes, guint, i) < *min) {
       if (FTT_CELL_IS_ROOT (cell))
 	g_log (G_LOG_DOMAIN, G_LOG_LEVEL_ERROR, "root cell belongs to a pond");
@@ -3733,7 +3889,7 @@ void gfs_domain_remove_ponds (GfsDomain * domain,
 
 static gboolean tag_speck (FttCell * cell, GfsVariable * v)
 {
-  if (GFS_VARIABLE (cell, v->i) == 0.) {
+  if (GFS_VALUE (cell, v) == 0.) {
     FttDirection d;
     FttCellNeighbors n;
     GfsSolidVector * solid = GFS_STATE (cell)->solid;
@@ -3743,15 +3899,15 @@ static gboolean tag_speck (FttCell * cell, GfsVariable * v)
     for (d = 0; d < FTT_NEIGHBORS; d++)
       if (!n.c[d])
 	return FALSE;
-    GFS_VARIABLE (cell, v->i) = 1.;
+    GFS_VALUE (cell, v) = 1.;
     for (d = 0; d < FTT_NEIGHBORS; d++)
-      if (GFS_VARIABLE (n.c[d], v->i) == 0. && 
+      if (GFS_VALUE (n.c[d], v) == 0. && 
 	  !GFS_CELL_IS_BOUNDARY (n.c[d]) &&
 	  solid->s[d] > 0. && solid->s[d] < 1.) {
 	g_assert (GFS_IS_MIXED (n.c[d]));
 	if (FTT_CELL_IS_LEAF (n.c[d])) {
 	  if (!tag_speck (n.c[d], v)) {
-	    GFS_VARIABLE (cell, v->i) = 0.;
+	    GFS_VALUE (cell, v) = 0.;
 	    return FALSE;
 	  }
 	}
@@ -3760,15 +3916,12 @@ static gboolean tag_speck (FttCell * cell, GfsVariable * v)
 	  FttDirection od = FTT_OPPOSITE_DIRECTION (d);
 	  guint i;
 	  
-#if FTT_2D3
-	  g_assert_not_implemented ();
-#endif	
 	  ftt_cell_children_direction (n.c[d], od, &child);
 	  for (i = 0; i < FTT_CELLS/2; i++)
-	    if (!child.c[i] || (GFS_VARIABLE (child.c[i], v->i) == 0 && 
+	    if (!child.c[i] || (GFS_VALUE (child.c[i], v) == 0 && 
 				GFS_IS_MIXED (child.c[i]) &&
 				!tag_speck (child.c[i], v))) {
-	      GFS_VARIABLE (cell, v->i) = 0.;
+	      GFS_VALUE (cell, v) = 0.;
 	      return FALSE;
 	    }
 	}
@@ -3781,7 +3934,7 @@ static void fill_speck (FttCell * cell, gpointer * data)
 {
   GfsVariable * v = data[0];
 
-  if (GFS_VARIABLE (cell, v->i) == 1.) {
+  if (GFS_VALUE (cell, v) == 1.) {
     gboolean * changed = data[1];
     g_free (GFS_STATE (cell)->solid);
     GFS_STATE (cell)->solid = NULL;
@@ -4048,7 +4201,7 @@ static void sum (FttCell * cell, SumData * data)
       /* fixme: does not work if the resolution varies along data->d */
       g_assert (ftt_cell_level (n) == ftt_cell_level (cell));
       s += product (n, data->f);
-      GFS_VARIABLE (n, data->v->i) = s;
+      GFS_VALUE (n, data->v) = s;
       n = ftt_cell_neighbor (n, FTT_OPPOSITE_DIRECTION (data->d));
     } while (n && !GFS_CELL_IS_BOUNDARY (n) && 
 	     (!GFS_IS_MIXED (n) || GFS_STATE (n)->solid->s[data->d] > 0.));
@@ -4077,8 +4230,10 @@ void gfs_domain_sum (GfsDomain * domain, FttDirection d, GfsFunction * f, GfsVar
   data.d = d;
   data.f = f;
   data.v = v;
+  gfs_catch_floating_point_exceptions ();
   gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
 			    (FttCellTraverseFunc) sum, &data);
+  gfs_restore_fpe_for_function (f);
 }
 
 static void filter (FttCell * cell, gpointer * data)
@@ -4100,7 +4255,7 @@ static void filter (FttCell * cell, gpointer * data)
 
   for (i = 0; i < 4*(FTT_DIMENSION - 1); i++)
     val += gfs_cell_corner_value (cell, d[i], a, -1);
-  GFS_VARIABLE (cell, b->i) = val/(4*(FTT_DIMENSION - 1));
+  GFS_VALUE (cell, b) = val/(4*(FTT_DIMENSION - 1));
 }
 
 /**
@@ -4341,3 +4496,20 @@ GSList * gfs_receive_boxes (GfsDomain * domain, int src)
   }
   return boxes;
 }
+
+/**
+ * gfs_object_from_name:
+ * @domain: a #GfsDomain.
+ * @name: the name.
+ *
+ * Returns: the object of @domain called @name or %NULL.
+ */
+GtsObject * gfs_object_from_name (GfsDomain * domain, const gchar * name)
+{
+  g_return_val_if_fail (domain != NULL, NULL);
+  g_return_val_if_fail (name != NULL, NULL);
+
+  return g_hash_table_lookup (domain->objects, name);
+}
+
+/** \endobject{GfsDomain} */
diff --git a/src/domain.h b/src/domain.h
index 1133baf..8c28c17 100644
--- a/src/domain.h
+++ b/src/domain.h
@@ -76,10 +76,20 @@ struct _GfsDomain {
 
   /* coordinate metrics */
   gpointer metric_data;
-  gdouble (* face_metric)  (const GfsDomain *, const FttCellFace *);
-  gdouble (* cell_metric)  (const GfsDomain *, const FttCell *);
-  gdouble (* solid_metric) (const GfsDomain *, const FttCell *);
-  gdouble (* scale_metric) (const GfsDomain *, const FttCell *, FttComponent);
+  gdouble (* face_metric)       (const GfsDomain *, const FttCellFace *);
+  gdouble (* cell_metric)       (const GfsDomain *, const FttCell *);
+  gdouble (* solid_metric)      (const GfsDomain *, const FttCell *);
+  gdouble (* scale_metric)      (const GfsDomain *, const FttCell *, FttComponent);
+  gdouble (* face_scale_metric) (const GfsDomain *, const FttCellFace *, FttComponent);
+
+  /* Object hash table for (optional) object IDs */
+  GHashTable * objects;
+
+  /* total number of parallel processes */
+  int np;
+
+  /* real time */
+  GTimer * clock;
 };
 
 struct _GfsDomainClass {
@@ -170,6 +180,12 @@ void         gfs_domain_homogeneous_bc        (GfsDomain * domain,
 					       gint max_depth,
 					       GfsVariable * ov,
 					       GfsVariable * v);
+void         gfs_domain_homogeneous_bc_stencil (GfsDomain * domain,
+						FttTraverseFlags flags,
+						gint max_depth,
+						GfsVariable * ov,
+						GfsVariable * v,
+						GfsLinearProblem * lp);
 void         gfs_traverse_and_homogeneous_bc  (GfsDomain * domain,
 					       FttTraverseType order,
 					       FttTraverseFlags flags,
@@ -196,7 +212,9 @@ guint        gfs_domain_depth                 (GfsDomain * domain);
 GtsRange     gfs_domain_stats_variable        (GfsDomain * domain,
 					       GfsVariable * v,
 					       FttTraverseFlags flags,
-					       gint max_depth);
+					       gint max_depth,
+					       gboolean (* condition) (FttCell *, gpointer),
+					       gpointer cdata);
 GtsRange     gfs_domain_stats_solid           (GfsDomain * domain);
 void         gfs_domain_stats_merged          (GfsDomain * domain,
 					       GtsRange * solid,
@@ -209,7 +227,9 @@ GfsNorm      gfs_domain_norm_variable         (GfsDomain * domain,
 					       GfsVariable * v,
 					       GfsFunction * w,
 					       FttTraverseFlags flags,
-					       gint max_depth);
+					       gint max_depth,
+					       gboolean (* condition) (FttCell *, gpointer),
+					       gpointer cdata);
 GfsNorm      gfs_domain_norm_residual         (GfsDomain * domain,
 					       FttTraverseFlags flags,
 					       gint max_depth,
@@ -409,6 +429,25 @@ gdouble gfs_domain_solid_metric (const GfsDomain * domain, const FttCell * cell)
 }
 
 /**
+ * gfs_domain_face_scale_metric:
+ * @domain; a #GfsDomain.
+ * @face: a #FttCellFace.
+ * @c: a #FttComponent.
+ *
+ * Returns: the @c component of the scale factor of the metric at the
+ * center the face.
+ */
+static inline
+gdouble gfs_domain_face_scale_metric (const GfsDomain * domain, 
+				      const FttCellFace * face, 
+				      FttComponent c)
+{
+  if (domain->face_scale_metric)
+    return (* domain->face_scale_metric) (domain, face, c);
+  return 1.;
+}
+
+/**
  * gfs_cell_volume:
  * @cell: a #FttCell.
  * @domain: a #GfsDomain.
@@ -422,6 +461,9 @@ gdouble gfs_cell_volume (const FttCell * cell, const GfsDomain * domain)
   return domain->cell_metric ? (* domain->cell_metric) (domain, cell)*v : v;
 }
 
+GtsObject * gfs_object_from_name        (GfsDomain * domain, 
+					 const gchar * name);
+
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */
diff --git a/src/event.c b/src/event.c
index 2d51cef..07f6e73 100644
--- a/src/event.c
+++ b/src/event.c
@@ -16,6 +16,9 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
  * 02111-1307, USA.  
  */
+/*! \file
+ * \brief GfsEvents.
+ */
 
 #include <stdlib.h>
 #include <sys/wait.h>
@@ -27,6 +30,12 @@
 #include "event.h"
 #include "solid.h"
 #include "output.h"
+#include "init.h"
+
+/**
+ * Any action to be performed at a given time.
+ * \beginobject{GfsEvent}
+ */
 
 /**
  * gfs_event_next:
@@ -121,7 +130,10 @@ static void gfs_event_write (GtsObject * object, FILE * fp)
 {
   GfsEvent * event = GFS_EVENT (object);
 
-  fprintf (fp, "%s { ", object->klass->info.name);
+  fprintf (fp, "%s", object->klass->info.name);
+  if (event->name)
+    fprintf (fp, " *%s", event->name);
+  fputs (" { ", fp);
   if (event->end_event)
     fputs ("start = end ", fp);
   else {
@@ -184,6 +196,13 @@ static void gfs_event_read (GtsObject ** o, GtsFile * fp)
   }
   gts_file_next_token (fp);
 
+  /* optional name */
+  if (fp->type == GTS_STRING && fp->token->str[0] == '*') {
+    event->name = g_strdup (&(fp->token->str[1]));
+    g_hash_table_insert (GFS_DOMAIN (gfs_object_simulation (*o))->objects, event->name, *o);
+    gts_file_next_token (fp);  
+  }
+  
   if (fp->type == '{') {
     GtsFileVariable var[] = {
       {GTS_STRING, "start",  TRUE},
@@ -292,12 +311,25 @@ static void gfs_event_read (GtsObject ** o, GtsFile * fp)
     (* klass->read) (o, fp);
 }
 
+static void gfs_event_destroy (GtsObject * o)
+{
+  GfsEvent * event = GFS_EVENT (o);
+  
+  if (event->name) {
+    g_hash_table_remove (GFS_DOMAIN (gfs_object_simulation (o))->objects, event->name);
+    g_free (event->name);
+  }
+
+  (* GTS_OBJECT_CLASS (gfs_event_class ())->parent_class->destroy) (o);
+}
+
 static void gfs_event_class_init (GfsEventClass * klass)
 {
   klass->event = gfs_event_event;
 
-  GTS_OBJECT_CLASS (klass)->write = gfs_event_write;
-  GTS_OBJECT_CLASS (klass)->read  = gfs_event_read;
+  GTS_OBJECT_CLASS (klass)->write   = gfs_event_write;
+  GTS_OBJECT_CLASS (klass)->read    = gfs_event_read;
+  GTS_OBJECT_CLASS (klass)->destroy = gfs_event_destroy;
 }
 
 GfsEventClass * gfs_event_class (void)
@@ -469,7 +501,12 @@ void gfs_event_redo (GfsEvent * event, GfsSimulation * sim)
     (* klass->post_event) (event, sim);
 }
 
-/* GfsGenericInit: Object */
+/** \endobject{GfsEvent} */
+
+/**
+ * Abstract class for initialisation events.
+ * \beginobject{GfsGenericInit}
+ */
 
 static void gfs_generic_init_init (GfsEvent * event)
 {
@@ -497,7 +534,12 @@ GfsEventClass * gfs_generic_init_class (void)
   return klass;
 }
 
-/* GfsInit: Object */
+/** \endobject{GfsGenericInit} */
+
+/**
+ * Initialising variables.
+ * \beginobject{GfsInit}
+ */
 
 typedef struct {
   GfsVariable * v;
@@ -625,16 +667,22 @@ static gboolean gfs_init_event (GfsEvent * event, GfsSimulation * sim)
 
     while (i) {
       VarFunc * vf = i->data;
+      gfs_catch_floating_point_exceptions ();
       gfs_domain_cell_traverse (GFS_DOMAIN (sim), FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
 				(FttCellTraverseFunc) init_vf, vf);
+      gfs_restore_fpe_for_function (vf->f);
+      if (vf->v->component == FTT_DIMENSION)
+	gfs_domain_bc (GFS_DOMAIN (sim), FTT_TRAVERSE_LEAFS, -1, vf->v);
       i = i->next;
     }
-    /* boundary conditions need to be called in a separate loop so
-       that they are correctly applied for vector quantities */
+    /* boundary conditions for vector quantities need to be called in
+       a separate loop so that they are correctly applied for weird
+       topologies (e.g. cubed sphere) */
     i = GFS_INIT (event)->f;
     while (i) {
       VarFunc * vf = i->data;
-      gfs_domain_bc (GFS_DOMAIN (sim), FTT_TRAVERSE_LEAFS, -1, vf->v);
+      if (vf->v->component < FTT_DIMENSION)
+	gfs_domain_bc (GFS_DOMAIN (sim), FTT_TRAVERSE_LEAFS, -1, vf->v);
       i = i->next;
     }
     return TRUE;
@@ -671,6 +719,119 @@ GfsGenericInitClass * gfs_init_class (void)
   return klass;
 }
 
+/** \endobject{GfsInit} */
+
+/**
+ * "Masking out" part of the mesh.
+ * \beginobject{GfsInitMask}
+ */
+
+static void gfs_init_mask_read (GtsObject ** o, GtsFile * fp)
+{
+  (* GTS_OBJECT_CLASS (gfs_init_mask_class ())->parent_class->read) (o, fp);
+  if (fp->type == GTS_ERROR)
+    return;
+
+  gfs_function_read (GFS_INIT_MASK (*o)->mask, GFS_DOMAIN (gfs_object_simulation (*o)), fp);
+}
+
+static void gfs_init_mask_write (GtsObject * o, FILE * fp)
+{
+  (* GTS_OBJECT_CLASS (gfs_init_mask_class ())->parent_class->write) (o, fp);
+
+  gfs_function_write (GFS_INIT_MASK (o)->mask, fp);
+}
+
+static void gfs_init_mask_destroy (GtsObject * object)
+{
+  gts_object_destroy (GTS_OBJECT (GFS_INIT_MASK (object)->mask));
+
+  (* GTS_OBJECT_CLASS (gfs_init_mask_class ())->parent_class->destroy) (object);
+}
+
+#define MASKED (1 << GFS_FLAG_USER)
+
+static void mask_cells (FttCell * cell, GfsInitMask * m)
+{
+  if (!FTT_CELL_IS_LEAF (cell)) {
+    FttCellChildren child;
+    guint i;
+    
+    ftt_cell_children (cell, &child);
+    for (i = 0; i < FTT_CELLS; i++)
+      if (child.c[i])
+	mask_cells (child.c[i], m);
+    if (FTT_CELL_IS_LEAF (cell))
+      /* all the children have been destroyed i.e. the cell is masked */
+      cell->flags |= MASKED;
+  }
+  else if (gfs_function_value (m->mask, cell) > 0.)
+    cell->flags |= MASKED;
+  
+  if ((cell->flags & MASKED) && !FTT_CELL_IS_ROOT (cell))
+    ftt_cell_destroy (cell, (FttCellCleanupFunc) gfs_cell_cleanup, gfs_object_simulation (m));
+}
+
+static void foreach_box (GfsBox * box, GfsInitMask * m)
+{
+  mask_cells (box->root, m);
+  if (box->root->flags & MASKED)
+    m->masked_boxes = g_slist_prepend (m->masked_boxes, box);
+}
+
+static gboolean gfs_init_mask_event (GfsEvent * event, GfsSimulation * sim)
+{
+  if ((* GFS_EVENT_CLASS (GTS_OBJECT_CLASS (gfs_init_mask_class ())->parent_class)->event) 
+      (event, sim)) {
+    GfsInitMask * m = GFS_INIT_MASK (event);
+    m->masked_boxes = NULL;
+    gfs_catch_floating_point_exceptions ();
+    gts_container_foreach (GTS_CONTAINER (sim), (GtsFunc) foreach_box, m);
+    gfs_restore_fpe_for_function (m->mask);
+    g_slist_foreach (m->masked_boxes, (GFunc) gts_object_destroy, NULL);
+    g_slist_free (m->masked_boxes);
+    gfs_domain_match (GFS_DOMAIN (sim));
+    return TRUE;
+  }
+  return FALSE;
+}
+
+static void gfs_init_mask_class_init (GfsGenericInitClass * klass)
+{
+  GFS_EVENT_CLASS (klass)->event = gfs_init_mask_event;
+  GTS_OBJECT_CLASS (klass)->read = gfs_init_mask_read;
+  GTS_OBJECT_CLASS (klass)->write = gfs_init_mask_write;
+  GTS_OBJECT_CLASS (klass)->destroy = gfs_init_mask_destroy;
+}
+
+static void gfs_init_mask (GfsInitMask * m)
+{
+  m->mask = gfs_function_new (gfs_function_class (), 0.);
+}
+
+GfsGenericInitClass * gfs_init_mask_class (void)
+{
+  static GfsGenericInitClass * klass = NULL;
+
+  if (klass == NULL) {
+    GtsObjectClassInfo gfs_init_mask_info = {
+      "GfsInitMask",
+      sizeof (GfsInitMask),
+      sizeof (GfsGenericInitClass),
+      (GtsObjectClassInitFunc) gfs_init_mask_class_init,
+      (GtsObjectInitFunc) gfs_init_mask,
+      (GtsArgSetFunc) NULL,
+      (GtsArgGetFunc) NULL
+    };
+    klass = gts_object_class_new (GTS_OBJECT_CLASS (gfs_generic_init_class ()),
+				  &gfs_init_mask_info);
+  }
+
+  return klass;
+}
+
+/** \endobject{GfsInitMask} */
+
 /* GfsInitFlowConstant: Object: fixme: deprecated */
 
 static void gfs_init_flow_constant_read (GtsObject ** o, GtsFile * fp)
@@ -710,9 +871,10 @@ GfsEventClass * gfs_init_flow_constant_class (void)
   return klass;
 }
 
-#if FTT_2D
-
-/* GfsInitVorticity: Object */
+/**
+ * Initialising a vorticity field.
+ * \beginobject{GfsInitVorticity}
+ */
 
 static void gfs_init_vorticity_read (GtsObject ** o, GtsFile * fp)
 {
@@ -721,18 +883,37 @@ static void gfs_init_vorticity_read (GtsObject ** o, GtsFile * fp)
       (o, fp);
   if (fp->type == GTS_ERROR)
     return;
+#if FTT_2D
   gfs_function_read (GFS_INIT_VORTICITY (*o)->f, gfs_object_simulation (*o), fp);
+#else /* 3D */
+  FttComponent c;
+  for (c = 0; c < FTT_DIMENSION; c++)
+    gfs_function_read (GFS_INIT_VORTICITY (*o)->fv[c], gfs_object_simulation (*o), fp);
+#endif /* 3D */
 }
 
 static void gfs_init_vorticity_write (GtsObject * o, FILE * fp)
 {
   (* GTS_OBJECT_CLASS (gfs_init_vorticity_class ())->parent_class->write) (o, fp);
+#if FTT_2D
   gfs_function_write (GFS_INIT_VORTICITY (o)->f, fp);
+#else /* 3D */
+  FttComponent c;
+  for (c = 0; c < FTT_DIMENSION; c++)
+    gfs_function_write (GFS_INIT_VORTICITY (o)->fv[c], fp);
+#endif /* 3D */
 }
 
 static void gfs_init_vorticity_destroy (GtsObject * object)
 {
+#if FTT_2D
   gts_object_destroy (GTS_OBJECT (GFS_INIT_VORTICITY (object)->f));
+#else /* 3D */
+  FttComponent c;
+  for (c = 0; c < FTT_DIMENSION; c++)
+    gts_object_destroy (GTS_OBJECT (GFS_INIT_VORTICITY (object)->fv[c]));
+#endif /* 3D */
+
   (* GTS_OBJECT_CLASS (gfs_init_vorticity_class ())->parent_class->destroy) (object);
 }
 
@@ -753,9 +934,9 @@ static void add_ddiv (FttCell * cell, gpointer * data)
   gdouble size = ftt_cell_size (cell);
   
   if (GFS_IS_MIXED (cell))
-    GFS_VARIABLE (cell, div->i) += size*size*GFS_STATE (cell)->solid->a*(*ddiv);
+    GFS_VALUE (cell, div) += size*size*GFS_STATE (cell)->solid->a*(*ddiv);
   else
-    GFS_VARIABLE (cell, div->i) += size*size*(*ddiv);
+    GFS_VALUE (cell, div) += size*size*(*ddiv);
 }
 
 static void correct_div (GfsDomain * domain, GfsVariable * v)
@@ -764,7 +945,7 @@ static void correct_div (GfsDomain * domain, GfsVariable * v)
   gdouble ddiv;
   gpointer data[2];
 
-  div = gfs_domain_stats_variable (domain, v, FTT_TRAVERSE_LEAFS, -1);
+  div = gfs_domain_stats_variable (domain, v, FTT_TRAVERSE_LEAFS, -1, NULL, NULL);
   gts_range_init (&vol);
   gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
 			    (FttCellTraverseFunc) sum_volume, &vol);
@@ -790,7 +971,7 @@ static void stream_from_vorticity (GfsDomain * domain,
   g_return_if_fail (domain != NULL);
 
   dia = gfs_temporary_variable (domain);
-  gfs_poisson_coefficients (domain, NULL);
+  gfs_poisson_coefficients (domain, NULL, TRUE, TRUE);
   gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, FTT_TRAVERSE_ALL, -1,
 			    (FttCellTraverseFunc) gfs_cell_reset, dia);
   correct_div (domain, vorticity); /* enforce solvability condition */
@@ -816,16 +997,24 @@ static void stream_from_vorticity (GfsDomain * domain,
 static void init_from_streamfunction (FttCell * cell, GfsInitVorticity * init)
 {
   gdouble size = ftt_cell_size (cell);
-
-  GFS_VARIABLE (cell, init->u[0]->i) = - gfs_center_gradient (cell, FTT_Y, init->stream->i)/size;
-  GFS_VARIABLE (cell, init->u[1]->i) = gfs_center_gradient (cell, FTT_X, init->stream->i)/size;
+#if FTT_2D
+  GFS_VALUE (cell, init->u[0]) = - gfs_center_gradient (cell, FTT_Y, init->stream->i)/size;
+  GFS_VALUE (cell, init->u[1]) = gfs_center_gradient (cell, FTT_X, init->stream->i)/size;
+#else /* 3D */
+  GFS_VALUE (cell, init->u[0]) = (gfs_center_gradient (cell, FTT_Z, init->stream[1]->i) -
+				  gfs_center_gradient (cell, FTT_Y, init->stream[2]->i))/size;
+  GFS_VALUE (cell, init->u[1]) = (gfs_center_gradient (cell, FTT_X, init->stream[2]->i) -
+				  gfs_center_gradient (cell, FTT_Z, init->stream[0]->i))/size;
+  GFS_VALUE (cell, init->u[2]) = (gfs_center_gradient (cell, FTT_Y, init->stream[0]->i) -
+				  gfs_center_gradient (cell, FTT_X, init->stream[1]->i))/size;
+#endif /* 3D */
 }
 
 static void compute_vorticity (FttCell * cell, GfsInitVorticity * init)
 {
   gdouble size = ftt_cell_size (cell);
 
-  GFS_VARIABLE (cell, init->vort->i) = gfs_function_value (init->f, cell)*size*size;  
+  GFS_VALUE (cell, init->vort) = gfs_function_value (init->f, cell)*size*size;
 }
 
 static gboolean gfs_init_vorticity_event (GfsEvent * event, 
@@ -836,10 +1025,13 @@ static gboolean gfs_init_vorticity_event (GfsEvent * event,
     GfsInitVorticity * init = GFS_INIT_VORTICITY (event);
     GfsDomain * domain = GFS_DOMAIN (sim);
 
+#if FTT_2D
     init->vort = gfs_temporary_variable (domain);
     init->stream = gfs_temporary_variable (domain);
+    gfs_catch_floating_point_exceptions ();
     gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
 			      (FttCellTraverseFunc) compute_vorticity, event);
+    gfs_restore_fpe_for_function (init->f);
     stream_from_vorticity (domain, init->stream, init->vort, 1e-9);
     gts_object_destroy (GTS_OBJECT (init->vort));
     init->u = gfs_domain_velocity (domain);
@@ -847,6 +1039,26 @@ static gboolean gfs_init_vorticity_event (GfsEvent * event,
 			      FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
 			      (FttCellTraverseFunc) init_from_streamfunction, init);
     gts_object_destroy (GTS_OBJECT (init->stream));
+#else /* 3D */
+    FttComponent c;
+    init->vort = gfs_temporary_variable (domain);
+    for (c = 0; c < FTT_DIMENSION; c++) {
+      init->stream[c] = gfs_temporary_variable (domain);
+      gfs_catch_floating_point_exceptions ();
+      init->f = init->fv[c];
+      gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
+				(FttCellTraverseFunc) compute_vorticity, event);
+      gfs_restore_fpe_for_function (init->f);
+      stream_from_vorticity (domain, init->stream[c], init->vort, 1e-9);
+    }
+    gts_object_destroy (GTS_OBJECT (init->vort));
+    init->u = gfs_domain_velocity (domain);
+    gfs_domain_cell_traverse (domain, 
+			      FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
+			      (FttCellTraverseFunc) init_from_streamfunction, init);
+    for (c = 0; c < FTT_DIMENSION; c++)
+      gts_object_destroy (GTS_OBJECT (init->stream[c]));
+#endif /* 3D */
     return TRUE;
   }
   return FALSE;
@@ -862,7 +1074,13 @@ static void gfs_init_vorticity_class_init (GtsObjectClass * klass)
 
 static void gfs_init_vorticity_init (GfsInitVorticity * init)
 {
+#if FTT_2D
   init->f = gfs_function_new (gfs_function_class (), 0.);
+#else /* 3D */
+  FttComponent c;
+  for (c = 0; c < FTT_DIMENSION; c++)
+    init->fv[c] = gfs_function_new (gfs_function_class (), 0.);
+#endif /* 3D */
 }
 
 GfsGenericInitClass * gfs_init_vorticity_class (void)
@@ -886,9 +1104,12 @@ GfsGenericInitClass * gfs_init_vorticity_class (void)
   return klass;
 }
 
-#endif /* FTT_2D */
+/** \endobject{GfsInitVorticity} */
 
-/* GfsEventSum: Object */
+/**
+ * Time-integral of a variable or function.
+ * \beginobject{GfsEventSum}
+ */
 
 static void gfs_event_sum_destroy (GtsObject * o)
 {
@@ -945,9 +1166,11 @@ static gboolean gfs_event_sum_event (GfsEvent * event, GfsSimulation * sim)
 				(FttCellTraverseFunc) gfs_cell_reset, s->sv);
     else {
       s->dt = sim->time.t - s->last;
+      gfs_catch_floating_point_exceptions ();
       gfs_domain_cell_traverse (GFS_DOMAIN (sim),
 				FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
 				s->sum, s);
+      gfs_restore_fpe_for_function (s->v);
     }
     s->last = sim->time.t;
     return TRUE;
@@ -965,7 +1188,7 @@ static void gfs_event_sum_class_init (GfsEventClass * klass)
 
 static void sum (FttCell * cell, GfsEventSum * s)
 {
-  GFS_VARIABLE (cell, s->sv->i) += s->dt*gfs_function_value (s->v, cell);
+  GFS_VALUE (cell, s->sv) += s->dt*gfs_function_value (s->v, cell);
 }
 
 static void gfs_event_sum_init (GfsEventSum * object)
@@ -996,7 +1219,12 @@ GfsEventClass * gfs_event_sum_class (void)
   return klass;
 }
 
-/* GfsEventSumDirection: Object */
+/** \endobject{GfsEventSum} */
+
+/**
+ *
+ * \beginobject{GfsEventSumDirection}
+ */
 
 static void gfs_event_sum_direction_write (GtsObject * o, FILE * fp)
 {
@@ -1068,7 +1296,12 @@ GfsEventClass * gfs_event_sum_direction_class (void)
   return klass;
 }
 
-/* GfsEventHarmonic: Object */
+/** \endobject{GfsEventSumDirection} */
+
+/**
+ * Harmonic decomposition of a variable.
+ * \beginobject{GfsEventHarmonic}
+ */
 
 static void gfs_event_harmonic_destroy (GtsObject * o)
 {
@@ -1171,7 +1404,7 @@ static void gfs_event_harmonic_read (GtsObject ** o, GtsFile * fp)
       gts_file_error (fp, "`%s' is a reserved keyword", fp->token->str);
       return;
     }
-    s->e->units = s->v->units;
+    s->e->units = 2.*s->v->units;
     gts_file_next_token (fp);
   }
 
@@ -1255,16 +1488,16 @@ static void gfs_event_harmonic_read (GtsObject ** o, GtsFile * fp)
 
 static void add_xsin_xcos (FttCell * cell, GfsEventHarmonic * h)
 {
-  gdouble x = GFS_VARIABLE (cell, h->v->i);
+  gdouble x = GFS_VALUE (cell, h->v);
   guint i;
 
   for (i = 0; i < h->omega->len; i++) {
-    GFS_VARIABLE (cell, h->A[i]->i) += x*h->vcos[i];
-    GFS_VARIABLE (cell, h->B[i]->i) += x*h->vsin[i];
+    GFS_VALUE (cell, h->A[i]) += x*h->vcos[i];
+    GFS_VALUE (cell, h->B[i]) += x*h->vsin[i];
   }
-  GFS_VARIABLE (cell, h->z->i) += x;
+  GFS_VALUE (cell, h->z) += x;
   if (h->e)
-    GFS_VARIABLE (cell, h->e->i) += x*x;
+    GFS_VALUE (cell, h->e) += x*x;
 }
 
 static gdouble de (GfsEventHarmonic * h, gdouble ** M)
@@ -1287,16 +1520,16 @@ static gdouble de (GfsEventHarmonic * h, gdouble ** M)
 
 static void update_A_B_Z (FttCell * cell, GfsEventHarmonic * h)
 {
-  gdouble x = GFS_VARIABLE (cell, h->v->i), sx2 = 0.;
+  gdouble x = GFS_VALUE (cell, h->v), sx2 = 0.;
   guint n = h->omega->len;
   guint i, j;
 
   /* A^n */
   for (i = 0; i < n; i++) {
-    h->a[i] =     GFS_VARIABLE (cell, h->A[i]->i);
-    h->a[i + n] = GFS_VARIABLE (cell, h->B[i]->i);
+    h->a[i] =     GFS_VALUE (cell, h->A[i]);
+    h->a[i + n] = GFS_VALUE (cell, h->B[i]);
   }
-  h->a[2*n] = GFS_VARIABLE (cell, h->z->i);
+  h->a[2*n] = GFS_VALUE (cell, h->z);
 
   /* X^n = M^n.A^n */
   for (i = 0; i < 2*n + 1; i++) {
@@ -1307,9 +1540,9 @@ static void update_A_B_Z (FttCell * cell, GfsEventHarmonic * h)
 
   if (h->e) {
     if (h->invertible)
-      sx2 = x*x + h->Mn[2*n][2*n]*GFS_VARIABLE (cell, h->e->i) - de (h, h->Mn);
+      sx2 = x*x + h->Mn[2*n][2*n]*GFS_VALUE (cell, h->e) - de (h, h->Mn);
     else
-      sx2 = x*x + GFS_VARIABLE (cell, h->e->i);
+      sx2 = x*x + GFS_VALUE (cell, h->e);
   }
   
   /* X^n+1 = X^n + Delta^n */
@@ -1327,13 +1560,13 @@ static void update_A_B_Z (FttCell * cell, GfsEventHarmonic * h)
   }
 
   for (i = 0; i < n; i++) {
-    GFS_VARIABLE (cell, h->A[i]->i) = h->a[i];
-    GFS_VARIABLE (cell, h->B[i]->i) = h->a[i + n];
+    GFS_VALUE (cell, h->A[i]) = h->a[i];
+    GFS_VALUE (cell, h->B[i]) = h->a[i + n];
   }
-  GFS_VARIABLE (cell, h->z->i) = h->a[2*n];
+  GFS_VALUE (cell, h->z) = h->a[2*n];
 
   if (h->e)
-    GFS_VARIABLE (cell, h->e->i) = (sx2 + de (h, h->M))/h->M[2*n][2*n];
+    GFS_VALUE (cell, h->e) = (sx2 + de (h, h->M))/h->M[2*n][2*n];
 }
 
 static gboolean gfs_event_harmonic_event (GfsEvent * event, GfsSimulation * sim)
@@ -1422,7 +1655,12 @@ GfsEventClass * gfs_event_harmonic_class (void)
   return klass;
 }
 
-/* GfsEventStop: Object */
+/** \endobject{GfsEventHarmonic} */
+
+/**
+ * Stopping when steady-state is reached.
+ * \beginobject{GfsEventStop}
+ */
 
 static void gfs_event_stop_write (GtsObject * o, FILE * fp)
 {
@@ -1435,6 +1673,8 @@ static void gfs_event_stop_write (GtsObject * o, FILE * fp)
   fprintf (fp, " %s %g", s->v->name, s->max);
   if (s->diff)
     fprintf (fp, " %s", s->diff->name);
+  if (s->relative)
+    fputs (" { relative = 1 }", fp);
 }
 
 static void gfs_event_stop_read (GtsObject ** o, GtsFile * fp)
@@ -1477,6 +1717,14 @@ static void gfs_event_stop_read (GtsObject ** o, GtsFile * fp)
     s->diff->units = s->v->units;
     gts_file_next_token (fp);
   }
+
+  if (fp->type == '{') {
+    GtsFileVariable var[] = {
+      {GTS_INT, "relative", TRUE, &s->relative},
+      {GTS_NONE}
+    };
+    gts_file_assign_variables (fp, var);    
+  }
 }
 
 static void gfs_event_stop_destroy (GtsObject * o)
@@ -1506,12 +1754,21 @@ static gboolean gfs_event_stop_event (GfsEvent * event, GfsSimulation * sim)
 
     if (s->last >= 0.) {
       GfsNorm n;
+      gdouble max = 1.;
 
+      if (s->relative) {
+	n = gfs_domain_norm_variable (domain, s->oldv, NULL, FTT_TRAVERSE_LEAFS, -1, NULL, NULL);
+	max = n.infty;
+      }
       gfs_domain_cell_traverse (domain,
 				FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
 				(FttCellTraverseFunc) diff, s);
-      n = gfs_domain_norm_variable (domain, s->oldv, NULL, FTT_TRAVERSE_LEAFS, -1);
-      if (gfs_dimensional_value (s->v, n.infty) <= s->max)
+      n = gfs_domain_norm_variable (domain, s->oldv, NULL, FTT_TRAVERSE_LEAFS, -1, NULL, NULL);
+      if (s->relative) {
+	if (n.infty <= s->max*max)
+	  sim->time.end = sim->time.t;
+      }
+      else if (gfs_dimensional_value (s->v, n.infty) <= s->max)
 	sim->time.end = sim->time.t;
       if (s->diff) {
 	gfs_variables_swap (s->diff, s->oldv);
@@ -1562,7 +1819,12 @@ GfsEventClass * gfs_event_stop_class (void)
   return klass;
 }
 
-/* GfsEventScript: Object */
+/** \endobject{GfsEventStop} */
+
+/**
+ * Executing a shell-script at given times.
+ * \beginobject{GfsEventScript}
+ */
 
 static void gfs_event_script_destroy (GtsObject * o)
 {
@@ -1643,6 +1905,8 @@ FILE * gfs_popen (GfsSimulation * sim, const char * command, const char * type)
     fputs (command, f);
     fclose (f);
   }
+  else
+    g_warning ("popen() command failed: %s", strerror (errno));
   remove (sname);
   return fp;
 }
@@ -1698,7 +1962,12 @@ GfsEventClass * gfs_event_script_class (void)
   return klass;
 }
 
-/* GfsInitFraction: Object */
+/** \endobject{GfsEventScript} */
+
+/**
+ * Initialising volume fractions from interface shapes.
+ * \beginobject{GfsInitFraction}
+ */
 
 static void gfs_init_fraction_destroy (GtsObject * object)
 {
@@ -1793,7 +2062,12 @@ GfsInitFractionClass * gfs_init_fraction_class (void)
   return klass;
 }
 
-/* GfsRemoveDroplets: Object */
+/** \endobject{GfsInitFraction} */
+
+/**
+ * Controlling the topology of interfaces.
+ * \beginobject{GfsRemoveDroplets}
+ */
 
 static void gfs_remove_droplets_destroy (GtsObject * object)
 {
@@ -1819,8 +2093,10 @@ static gboolean gfs_remove_droplets_event (GfsEvent * event, GfsSimulation * sim
       gfs_domain_remove_droplets (domain, d->v, d->c, d->min);
     else {
       d->v = gfs_temporary_variable (domain);
+      gfs_catch_floating_point_exceptions ();
       gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, FTT_TRAVERSE_ALL, -1,
 				(FttCellTraverseFunc) compute_v, d);
+      gfs_restore_fpe_for_function (d->fc);
       gfs_domain_remove_droplets (domain, d->v, d->c, d->min);
       gts_object_destroy (GTS_OBJECT (d->v));
     }
@@ -1902,7 +2178,12 @@ GfsEventClass * gfs_remove_droplets_class (void)
   return klass;
 }
 
-/* GfsRemovePonds: Object */
+/** \endobject{GfsRemoveDroplets} */
+
+/**
+ * Controlling the domain topology.
+ * \beginobject{GfsRemovePonds}
+ */
 
 static gboolean gfs_remove_ponds_event (GfsEvent * event, GfsSimulation * sim)
 {
@@ -1966,7 +2247,12 @@ GfsEventClass * gfs_remove_ponds_class (void)
   return klass;
 }
 
-/* GfsEventFilter: Object */
+/** \endobject{GfsRemovePonds} */
+
+/**
+ * Exponential filtering of variables.
+ * \beginobject{GfsEventFilter}
+ */
 
 static void filter (FttCell * cell, GfsEventFilter * f)
 {
@@ -1985,7 +2271,7 @@ static void filter (FttCell * cell, GfsEventFilter * f)
 
   for (i = 0; i < 4*(FTT_DIMENSION - 1); i++)
     val += gfs_cell_corner_value (cell, d[i], f->v, -1);
-  GFS_VARIABLE (cell, f->tmp->i) = val/(4*(FTT_DIMENSION - 1));
+  GFS_VALUE (cell, f->tmp) = val/(4*(FTT_DIMENSION - 1));
 }
 
 static void filtered (FttCell * cell, GfsEventFilter * f)
@@ -2080,7 +2366,12 @@ GfsEventClass * gfs_event_filter_class (void)
   return klass;
 }
 
-/* GfsEventList: Object */
+/** \endobject{GfsEventFilter} */
+
+/**
+ * A list of events.
+ * \beginobject{GfsEventList}
+ */
 
 static gboolean gfs_event_list_event (GfsEvent * event, GfsSimulation * sim)
 {
@@ -2221,3 +2512,4 @@ GfsEventClass * gfs_event_list_class (void)
   return klass;
 }
 
+/** \endobject{GfsEventList} */
diff --git a/src/event.h b/src/event.h
index feec3df..14d008e 100644
--- a/src/event.h
+++ b/src/event.h
@@ -37,6 +37,7 @@ struct _GfsEvent {
   
   guint n;
   gboolean end_event, realised, redo;
+  gchar * name;
 };
 
 typedef struct _GfsSimulation           GfsSimulation;
@@ -109,12 +110,31 @@ struct _GfsInit {
 
 GfsGenericInitClass * gfs_init_class  (void);
 
+/* GfsInitMask: Header */
+
+typedef struct _GfsInitMask         GfsInitMask;
+
+struct _GfsInitMask {
+  /*< private >*/
+  GfsGenericInit parent;
+  GSList * masked_boxes;
+
+  /*< public >*/
+  GfsFunction * mask;
+};
+
+#define GFS_INIT_MASK(obj)            GTS_OBJECT_CAST (obj,\
+					         GfsInitMask,\
+					         gfs_init_mask_class ())
+#define GFS_IS_INIT_MASK(obj)         (gts_object_is_from_class (obj,\
+						 gfs_init_mask_class ()))
+
+GfsGenericInitClass * gfs_init_mask_class  (void);
+
 /* GfsInitFlowConstant: Header */
 
 GfsEventClass * gfs_init_flow_constant_class  (void);
 
-#if FTT_2D
-
 /* GfsInitVorticity: Header */
 
 typedef struct _GfsInitVorticity         GfsInitVorticity;
@@ -122,10 +142,18 @@ typedef struct _GfsInitVorticity         GfsInitVorticity;
 struct _GfsInitVorticity {
   /*< private >*/
   GfsGenericInit parent;
-  GfsVariable * vort, * stream, ** u;
+  GfsVariable * vort, ** u;
+#if FTT_2D
+  GfsVariable * stream;
+#else
+  GfsVariable * stream[3];
+#endif
 
   /*< public >*/
   GfsFunction * f;
+#if !FTT_2D
+  GfsFunction * fv[3];
+#endif
 };
 
 #define GFS_INIT_VORTICITY(obj)            GTS_OBJECT_CAST (obj,\
@@ -136,8 +164,6 @@ struct _GfsInitVorticity {
 
 GfsGenericInitClass * gfs_init_vorticity_class  (void);
 
-#endif /* FTT_2D */
-
 /* GfsEventSum: Header */
 
 typedef struct _GfsEventSum         GfsEventSum;
@@ -208,6 +234,7 @@ struct _GfsEventStop {
 
   GfsVariable * v, * oldv, * diff;
   gdouble last, max;
+  gboolean relative;
 };
 
 #define GFS_EVENT_STOP(obj)            GTS_OBJECT_CAST (obj,\
diff --git a/src/fluid.c b/src/fluid.c
index bb6e8af..1194b29 100644
--- a/src/fluid.c
+++ b/src/fluid.c
@@ -16,6 +16,9 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
  * 02111-1307, USA.  
  */
+/*! \file
+ * \brief Low-level discrete operators.
+ */
 
 #include <math.h>
 
@@ -55,6 +58,9 @@ struct _Gradient {
   gdouble a, b, c;
 };
 
+/* get_average_neighbor_value_stencil() needs to be updated whenever 
+ * this function is modified
+ */
 static gdouble average_neighbor_value (const FttCellFace * face,
 				       guint v,
 				       gdouble * x)
@@ -72,7 +78,7 @@ static gdouble average_neighbor_value (const FttCellFace * face,
     
     n = ftt_cell_children_direction (face->neighbor, od, &children);
     for (i = 0; i < n; i++)
-      if (children.c[i]) {
+      if (children.c[i] && GFS_VARIABLE (children.c[i], v) != GFS_NODATA) {
 	gdouble w = GFS_IS_MIXED (children.c[i]) ? GFS_STATE (children.c[i])->solid->s[od] : 1.;
 	a += w;
 	av += w*GFS_VARIABLE (children.c[i], v);
@@ -111,7 +117,7 @@ static void average_neighbor_value_stencil (const FttCellFace * face, guint v)
   }
 }
 
-#if (FTT_2D || FTT_2D3)
+#if FTT_2D
 
 /* v = a*v(cell) + b 
  * 
@@ -158,24 +164,27 @@ static GfsGradient interpolate_1D2 (FttCell * cell,
 /* v = a*v(cell) + b 
  * 
  * First order 1D interpolation.
+ *
+ * get_interpolate_1D1_stencil() needs to be updated whenever 
+ * this function is modified
  */
 static GfsGradient interpolate_1D1 (FttCell * cell,
 				    FttDirection d,
 				    gdouble x,
 				    guint v)
 {
-  GfsGradient p;
+  GfsGradient p = { 1., 0. };
   FttCellFace f;
 
   f = gfs_cell_face (cell, d);
   if (f.neighbor) {
-    gdouble x2 = 1., p2 = average_neighbor_value (&f, v, &x2);
-    p.a = 1. - x/x2;
-    p.b = p2*x/x2;
-  }
-  else {
-    p.a = 1.;
-    p.b = 0.;
+    gdouble x2 = 1.;
+    gdouble p2 = average_neighbor_value (&f, v, &x2);
+    if (p2 != GFS_NODATA) {
+      gdouble a2 = x/x2;
+      p.b += a2*p2;
+      p.a -= a2;
+    }
   }
 
   return p;
@@ -198,39 +207,39 @@ static void interpolate_1D1_stencil (FttCell * cell,
 /* v = a*v(cell) + b 
  * 
  * First order 2D interpolation.
+ *
+ * get_interpolate_2D1_stencil() needs to be updated whenever 
+ * this function is modified                                 
  */
 static GfsGradient interpolate_2D1 (FttCell * cell,
 				    FttDirection d1, FttDirection d2,
 				    gdouble x, gdouble y,
 				    guint v)
 {
-  GfsGradient p;
-  gdouble y1 = 1.;
-  gdouble x2 = 1.;
-  gdouble p1 = 0., p2 = 0.;
-  gdouble a1, a2;
+  GfsGradient p = { 1., 0. };
   FttCellFace f1, f2;
 
   f1 = gfs_cell_face (cell, d1);
-  if (f1.neighbor)
-    p1 = average_neighbor_value (&f1, v, &y1);
-  f2 = gfs_cell_face (cell, d2);
-  if (f2.neighbor)
-    p2 = average_neighbor_value (&f2, v, &x2);
-
-  a1 = y/y1;
-  a2 = x/x2;
+  if (f1.neighbor) {
+    gdouble y1 = 1.;
+    gdouble p1 = average_neighbor_value (&f1, v, &y1);
+    if (p1 != GFS_NODATA) {
+      gdouble a1 = y/y1;
+      p.b += a1*p1;
+      p.a -= a1;
+    }
+  }
 
-  p.a = 1. - a1 - a2;
-  p.b = 0.;
-  if (f1.neighbor)
-    p.b += a1*p1;
-  else
-    p.a += a1;
-  if (f2.neighbor)
-    p.b += a2*p2;
-  else
-    p.a += a2;
+  f2 = gfs_cell_face (cell, d2);
+  if (f2.neighbor) {
+    gdouble x2 = 1.;
+    gdouble p2 = average_neighbor_value (&f2, v, &x2);
+    if (p2 != GFS_NODATA) {
+      gdouble a2 = x/x2;
+      p.b += a2*p2;
+      p.a -= a2;
+    }
+  }
   
   return p;
 }
@@ -252,7 +261,7 @@ static void interpolate_2D1_stencil (FttCell * cell,
 
 #endif /* not FTT_2D */
 
-#if (FTT_2D || FTT_2D3)
+#if FTT_2D
 static gint perpendicular[FTT_NEIGHBORS][FTT_CELLS] = 
   {{-1,  2, -1,  3},
    { 2, -1,  3, -1},
@@ -268,11 +277,13 @@ static gint perpendicular[FTT_NEIGHBORS][FTT_CELLS][2] =
    {{-1,-1},{-1,-1},{-1,-1},{-1,-1},{1,2},{0,2},{1,3},{0,3}}};
 #endif /* FTT_3D */
 
+/* gradient_fine_coarse_stencil() needs to be updated whenever 
+   this function is modified  */
 static Gradient gradient_fine_coarse (const FttCellFace * face, guint v)
 {
   Gradient g;
   GfsGradient p;
-#if (FTT_2D || FTT_2D3)
+#if FTT_2D
   gint dp;
 #else  /* FTT_3D */
   gint * dp;
@@ -282,7 +293,7 @@ static Gradient gradient_fine_coarse (const FttCellFace * face, guint v)
   g_assert (ftt_face_type (face) == FTT_FINE_COARSE);
 
   dp = perpendicular[face->d][FTT_CELL_ID (face->cell)];
-#if (FTT_2D || FTT_2D3)
+#if FTT_2D
   g_assert (dp >= 0);
   p = interpolate_1D1 (face->neighbor, dp, 1./4., v);
 #else  /* FTT_3D */
@@ -313,24 +324,20 @@ void ftt_cell_refine_corners (FttCell * cell,
 
   level = ftt_cell_level (cell);
   ftt_cell_neighbors (cell, &neighbor);
-#if FTT_2D3
-  for (d = 0; d < FTT_NEIGHBORS_2D; d++)
-#else /* 2D && 3D */
   for (d = 0; d < FTT_NEIGHBORS; d++)
-#endif  /* 2D && 3D */
     if (neighbor.c[d] && ftt_cell_level (neighbor.c[d]) < level) {
       if (GFS_CELL_IS_BOUNDARY (neighbor.c[d]))
 	ftt_cell_refine_single (neighbor.c[d], init, data);
       else {
 	FttCell * n;
-#if (FTT_2D || FTT_2D3)
+#if FTT_2D
 	gint dp;
 #else  /* FTT_3D */
 	gint * dp;
 #endif /* FTT_3D */
 	
 	dp = perpendicular[d][FTT_CELL_ID (cell)];
-#if (FTT_2D || FTT_2D3)
+#if FTT_2D
 	g_assert (dp >= 0);
 	n = ftt_cell_neighbor (neighbor.c[d], dp);
 	REFINE_CORNER (n)
@@ -350,7 +357,7 @@ static gdouble neighbor_value (const FttCellFace * face,
 			       gdouble * x)
 {
   GfsGradient vc;
-#if (FTT_2D || FTT_2D3)
+#if FTT_2D
   gint dp;
 #else  /* FTT_3D */
   gint * dp;
@@ -360,9 +367,11 @@ static gdouble neighbor_value (const FttCellFace * face,
     /* neighbor at same level */
     return average_neighbor_value (face, v, x);
   else {
+    if (GFS_VARIABLE (face->neighbor, v) == GFS_NODATA)
+      return GFS_NODATA;
     /* neighbor at coarser level */
     dp = perpendicular[face->d][FTT_CELL_ID (face->cell)];
-#if (FTT_2D || FTT_2D3)
+#if FTT_2D
     g_assert (dp >= 0);
     vc = interpolate_1D1 (face->neighbor, dp, 1./4., v);
 #else  /* FTT_3D */
@@ -376,7 +385,7 @@ static gdouble neighbor_value (const FttCellFace * face,
 
 static void neighbor_value_stencil (const FttCellFace * face, guint v)
 {
-#if (FTT_2D || FTT_2D3)
+#if FTT_2D
   gint dp;
 #else  /* FTT_3D */
   gint * dp;
@@ -388,7 +397,7 @@ static void neighbor_value_stencil (const FttCellFace * face, guint v)
   else {
     /* neighbor at coarser level */
     dp = perpendicular[face->d][FTT_CELL_ID (face->cell)];
-#if (FTT_2D || FTT_2D3)
+#if FTT_2D
     g_assert (dp >= 0);
     interpolate_1D1_stencil (face->neighbor, dp, v);
 #else  /* FTT_3D */
@@ -514,20 +523,20 @@ gdouble gfs_center_van_leer_gradient (FttCell * cell,
     
     if (f2.neighbor) {
       /* two neighbors: second-order differencing (parabola)
-	 + van Leer limiter */
-      gdouble x1 = 1., x2 = 1., v0, v1, v2;
-      gdouble s0, s1, s2;
-      
+	 + van Leer limiter. See http://en.wikipedia.org/wiki/Flux_limiter */
+      gdouble x1 = 1., x2 = 1., v0, v1, v2;      
       v0 = GFS_VARIABLE (cell, v);
       v1 = neighbor_value (&f1, v, &x1);
       v2 = neighbor_value (&f2, v, &x2);
+      if (v1 == GFS_NODATA || v2 == GFS_NODATA)
+	return 0.;
 
-      s1 = 2.*(v0 - v1);
-      s2 = 2.*(v2 - v0);
+      gdouble s1 = 2.*(v0 - v1);
+      gdouble s2 = 2.*(v2 - v0);
 
       if (s1*s2 <= 0.)
 	return 0.;
-      s0 = (x1*x1*(v2 - v0) + x2*x2*(v0 - v1))/(x1*x2*(x2 + x1));
+      gdouble s0 = (x1*x1*(v2 - v0) + x2*x2*(v0 - v1))/(x1*x2*(x2 + x1));
       if (ABS (s2) < ABS (s1))
 	s1 = s2;
       if (ABS (s0) < ABS (s1))
@@ -539,36 +548,37 @@ gdouble gfs_center_van_leer_gradient (FttCell * cell,
   return 0.;
 }
 
-static gdouble limiter (gdouble r, gdouble beta)
+static gdouble generic_limiter (gdouble r, gdouble beta)
 {
   gdouble v1 = MIN (r, beta), v2 = MIN (beta*r, 1.);
   v1 = MAX (0., v1);
   return MAX (v1, v2);
 }
 
-/**
- * gfs_center_minmod_gradient:
- * @cell: a #FttCell.
- * @c: a component.
- * @v: a #GfsVariable index.
- *
- * The gradient is normalized by the size of the cell and is limited
- * using a minmod limiter.
- *
- * Returns: the value of the @c component of the gradient of variable @v
- * at the center of the cell.  
- */
-gdouble gfs_center_minmod_gradient (FttCell * cell,
-				    FttComponent c,
-				    guint v)
+static gdouble minmod_limiter (gdouble r)
+{
+  return generic_limiter (r, 1.);
+}
+
+static gdouble superbee_limiter (gdouble r)
+{
+  return generic_limiter (r, 2.);
+}
+
+static gdouble sweby_limiter (gdouble r)
+{
+  return generic_limiter (r, 1.5);
+}
+
+static gdouble center_limited_gradient (FttCell * cell,
+					FttComponent c,
+					guint v,
+					gdouble (* limiter) (gdouble))
 {
   FttDirection d = 2*c;
   FttCellFace f1;
   gdouble v0;
 
-  g_return_val_if_fail (cell != NULL, 0.);
-  g_return_val_if_fail (c < FTT_DIMENSION, 0.);
-
   f1 = gfs_cell_face (cell, FTT_OPPOSITE_DIRECTION (d));
   v0 = GFS_VARIABLE (cell, v);
   if (f1.neighbor) {
@@ -583,7 +593,7 @@ gdouble gfs_center_minmod_gradient (FttCell * cell,
       if (v0 == v1)
 	g = 0.;
       else
-	g = limiter ((v2 - v0)*x1/((v0 - v1)*x2), 1.)*(v0 - v1)/x1;
+	g = (* limiter) ((v2 - v0)*x1/((v0 - v1)*x2))*(v0 - v1)/x1;
       return g;
     }
   }
@@ -592,6 +602,72 @@ gdouble gfs_center_minmod_gradient (FttCell * cell,
 }
 
 /**
+ * gfs_center_minmod_gradient:
+ * @cell: a #FttCell.
+ * @c: a component.
+ * @v: a #GfsVariable index.
+ *
+ * The gradient is normalized by the size of the cell and is limited
+ * using a minmod limiter.
+ *
+ * Returns: the value of the @c component of the gradient of variable @v
+ * at the center of the cell.  
+ */
+gdouble gfs_center_minmod_gradient (FttCell * cell,
+				    FttComponent c,
+				    guint v)
+{
+  g_return_val_if_fail (cell != NULL, 0.);
+  g_return_val_if_fail (c < FTT_DIMENSION, 0.);
+
+  return center_limited_gradient (cell, c, v, minmod_limiter);
+}
+
+/**
+ * gfs_center_superbee_gradient:
+ * @cell: a #FttCell.
+ * @c: a component.
+ * @v: a #GfsVariable index.
+ *
+ * The gradient is normalized by the size of the cell and is limited
+ * using a superbee limiter.
+ *
+ * Returns: the value of the @c component of the gradient of variable @v
+ * at the center of the cell.  
+ */
+gdouble gfs_center_superbee_gradient (FttCell * cell,
+				      FttComponent c,
+				      guint v)
+{
+  g_return_val_if_fail (cell != NULL, 0.);
+  g_return_val_if_fail (c < FTT_DIMENSION, 0.);
+
+  return center_limited_gradient (cell, c, v, superbee_limiter);
+}
+
+/**
+ * gfs_center_sweby_gradient:
+ * @cell: a #FttCell.
+ * @c: a component.
+ * @v: a #GfsVariable index.
+ *
+ * The gradient is normalized by the size of the cell and is limited
+ * using a Sweby limiter (beta = 1.5).
+ *
+ * Returns: the value of the @c component of the gradient of variable @v
+ * at the center of the cell.  
+ */
+gdouble gfs_center_sweby_gradient (FttCell * cell,
+				   FttComponent c,
+				   guint v)
+{
+  g_return_val_if_fail (cell != NULL, 0.);
+  g_return_val_if_fail (c < FTT_DIMENSION, 0.);
+
+  return center_limited_gradient (cell, c, v, sweby_limiter);
+}
+
+/**
  * gfs_center_regular_gradient:
  * @cell: a #FttCell.
  * @c: a component.
@@ -685,7 +761,7 @@ gdouble gfs_center_regular_2nd_derivative (FttCell * cell,
  * boundary are consistent.
  *
  * The value of the gradient (normalised by the size of @face->cell)
- * is given by: @g->b - @g->a*GFS_VARIABLE (@face->cell, @v).
+ * is given by: @g->b - @g->a*GFS_VALUE (@face->cell, @v).
  */
 void gfs_face_gradient (const FttCellFace * face,
 			GfsGradient * g,
@@ -740,6 +816,8 @@ void gfs_face_gradient (const FttCellFace * face,
   }
 }
 
+/* face_weighted_gradient_stencil() needs to be updated whenever
+   this function is modified                                   */
 static void face_weighted_gradient (const FttCellFace * face,
 				    GfsGradient * g,
 				    guint v,
@@ -791,7 +869,6 @@ static void face_weighted_gradient (const FttCellFace * face,
 	  g->b += w*(gcf.a*GFS_VARIABLE (f.cell, v) - gcf.c);
 	}
       if (dimension > 2) {
-	/* fixme??? */
 	g->a /= n/2.;
 	g->b /= n/2.;
       }
@@ -812,6 +889,7 @@ static void face_weighted_gradient (const FttCellFace * face,
  * space and conservative, in the sense that values at a coarse/fine
  * cell boundary are consistent.  
  */
+
 void gfs_face_weighted_gradient (const FttCellFace * face,
 				 GfsGradient * g,
 				 guint v,
@@ -875,9 +953,9 @@ static FttCell * cell_corner_neighbor1 (FttCell * cell,
 
 #if FTT_2D
 # define N_CELLS 4
-#else  /* 2D3 and 3D */
+#else  /* 3D */
 # define N_CELLS 8
-#endif /* 2D3 and 3D */
+#endif /* 3D */
 
 static gboolean inverse (gdouble mi[N_CELLS - 1][N_CELLS - 1])
 {
@@ -1154,6 +1232,9 @@ static gboolean face_bilinear (const FttCellFace * face,
   return TRUE;
 }
 
+/* mixed_face_gradient_stencil needs to be updated whenever 
+ * this function is modified
+ */
 /* grad(v) = -a*v(cell) + b*v(neighbor) + c */
 static gboolean mixed_face_gradient (const FttCellFace * face,
 				     Gradient * g,
@@ -1234,33 +1315,22 @@ static gboolean mixed_face_gradient (const FttCellFace * face,
   return TRUE;
 }
 
-/**
- * gfs_face_gradient_flux:
- * @face: a #FttCellFace.
- * @g: the #GfsGradient.
- * @v: a #GfsVariable index.
- * @max_level: the maximum cell level to consider (-1 means no restriction).
- *
- * Set the value of @g as the gradient of variable @v on the @face
- * weighted by the value of the @v field of the face state vector of
- * the corresponding cell. Variable @v is defined at the center of
- * mass of its cell. Linear interpolation is used to evaluate the
- * gradient in the vicinity of cut cells.
+/* face_cm_gradient_stencil needs to be updated whenever 
+ * this function is modified
  */
-void gfs_face_gradient_flux (const FttCellFace * face,
-			     GfsGradient * g,
-			     guint v,
-			     gint max_level)
+static void face_cm_gradient (const FttCellFace * face,
+			      GfsGradient * g,
+			      guint v,
+			      gint max_level,
+			      gboolean weighted)
 {
   guint level;
   Gradient gcf;
-  gdouble w;
-
-  g_return_if_fail (face != NULL);
-  g_return_if_fail (g != NULL);
+  gdouble w = weighted ? GFS_STATE (face->cell)->f[face->d].v : 1.;
 
   g->a = g->b = 0.;
-  if (face->neighbor == NULL || (w = GFS_STATE (face->cell)->f[face->d].v) == 0.)
+  
+  if (face->neighbor == NULL || w == 0.)
     return;
 
   level = ftt_cell_level (face->cell);
@@ -1302,7 +1372,7 @@ void gfs_face_gradient_flux (const FttCellFace * face,
       f.neighbor = face->cell;
       for (i = 0; i < n; i++) 
 	if ((f.cell = children.c[i])) {
-	  w = GFS_STATE (f.cell)->f[f.d].v;
+	  w = weighted ? GFS_STATE (f.cell)->f[f.d].v : 1.;
 	  if (GFS_IS_MIXED (f.cell) || GFS_IS_MIXED (f.neighbor)) {
 	    if (!mixed_face_gradient (&f, &gcf, v, max_level))
 	      gcf = gradient_fine_coarse (&f, v);
@@ -1312,10 +1382,64 @@ void gfs_face_gradient_flux (const FttCellFace * face,
 	  g->a += w*gcf.b;
 	  g->b += w*(gcf.a*GFS_VARIABLE (f.cell, v) - gcf.c);
 	}
+#if !FTT_2D
+      g->a /= n/2.;
+      g->b /= n/2.;
+#endif
     }
   }
 }
 
+/**
+ * gfs_face_cm_gradient:
+ * @face: a #FttCellFace.
+ * @g: the #GfsGradient.
+ * @v: a #GfsVariable index.
+ * @max_level: the maximum cell level to consider (-1 means no restriction).
+ *
+ * Set the value of @g as the gradient of variable @v on the
+ * @face. Variable @v is defined at the center of mass of its
+ * cell. Linear interpolation is used to evaluate the gradient in the
+ * vicinity of cut cells.
+ */
+void gfs_face_cm_gradient (const FttCellFace * face,
+			   GfsGradient * g,
+			   guint v,
+			   gint max_level)
+{
+  g_return_if_fail (face != NULL);
+  g_return_if_fail (g != NULL);
+
+  face_cm_gradient (face, g, v, max_level, FALSE);
+}
+
+/**
+ * gfs_face_cm_weighted_gradient:
+ * @face: a #FttCellFace.
+ * @g: the #GfsGradient.
+ * @v: a #GfsVariable index.
+ * @max_level: the maximum cell level to consider (-1 means no restriction).
+ *
+ * Set the value of @g as the gradient of variable @v on the @face
+ * weighted by the value of the @v field of the face state vector of
+ * the corresponding cell. Variable @v is defined at the center of
+ * mass of its cell. Linear interpolation is used to evaluate the
+ * gradient in the vicinity of cut cells.
+ */
+/* gfs_face_cm_weighted_gradient_stencil needs to be updated whenever 
+ * this function is modified
+ */
+void gfs_face_cm_weighted_gradient (const FttCellFace * face,
+				    GfsGradient * g,
+				    guint v,
+				    gint max_level)
+{
+  g_return_if_fail (face != NULL);
+  g_return_if_fail (g != NULL);
+
+  face_cm_gradient (face, g, v, max_level, TRUE);
+}
+
 static gboolean cell_bilinear (FttCell * cell,
 			       FttCell ** n,
 			       FttVector * o,
@@ -1353,6 +1477,8 @@ static gboolean cell_bilinear (FttCell * cell,
  * interpolated at the center of area of the solid boundary contained
  * in @cell. The gradient is scaled by the size of the cell.
  */
+/* gfs_cell_dirichlet_gradient_stencil needs to be updated whenever 
+   this function is modified  */
 void gfs_cell_dirichlet_gradient (FttCell * cell,
 				  guint v,
 				  gint max_level,
@@ -1501,6 +1627,8 @@ gdouble gfs_mixed_cell_interpolate (FttCell * cell,
  * Returns: the flux of the gradient of variable @v through the solid
  * boundary contained in @cell.
  */
+/* gfs_cell_dirichlet_gradient_flux_stencil needs to be updated whenever 
+   this function is modified  */
 gdouble gfs_cell_dirichlet_gradient_flux (FttCell * cell,
 					  guint v,
 					  gint max_level,
@@ -1524,6 +1652,82 @@ gdouble gfs_cell_dirichlet_gradient_flux (FttCell * cell,
   }
 }
 
+static void gfs_cell_dirichlet_gradient_stencil (FttCell * cell,
+						 gint max_level,
+						 gdouble v0,
+						 FttVector * grad,
+						 GfsLinearProblem * lp,
+						 GfsStencil * stencil,
+						 FttVector * weight)
+{
+  if (GFS_IS_MIXED (cell)) {
+    FttCell * n[N_CELLS];
+    gdouble m[N_CELLS - 1][N_CELLS - 1];
+    guint i, c;
+
+    grad->x = grad->y = grad->z = 0.;
+    if (!cell_bilinear (cell, n, &GFS_STATE (cell)->solid->ca, 
+			gfs_cell_cm, max_level, m))
+      return;
+
+    for (i = 0; i < N_CELLS - 1; i++)
+      for (c = 0; c < FTT_DIMENSION; c++) {
+	gfs_stencil_add_element (stencil, n[i + 1], lp, m[c][i]*(&weight->x)[c]);
+	(&grad->x)[c] += -m[c][i]*v0; /* Remaining Dirichlet contribution */
+      }
+  }
+}
+
+/**
+ * gfs_cell_dirichlet_gradient_flux_stencil:
+ * @cell: a #FttCell.
+ * @max_level: the maximum cell level to consider (-1 means no restriction).
+ * @v0: the Dirichlet value on the boundary.
+ * @lp: the #GfsLinearProblem.
+ * @stencil: a GfsStencil.
+ *
+ * Returns the stencil accounting for the flux of the gradient of
+ * a given variable through the solid boundary contained in @cell.
+ * Returns the stencil equivalent to the action of
+ * gfs_cell_dirichlet_gradient_flux().
+ *
+ * Returns: the flux of the gradient of variable @v through the solid
+ * boundary contained in @cell.
+ */
+gdouble gfs_cell_dirichlet_gradient_flux_stencil (FttCell * cell,
+						  gint max_level,
+						  gdouble v0,
+						  GfsLinearProblem * lp,
+						  GfsStencil * stencil)
+{
+  g_return_val_if_fail (cell != NULL, 0.);
+  g_return_val_if_fail (lp != NULL, 0.);
+  g_return_val_if_fail (stencil != NULL, 0.);
+
+  if (GFS_IS_MIXED (cell)) {
+    GfsSolidVector * s = GFS_STATE (cell)->solid;
+    FttVector g;
+    FttVector w;
+
+    w.x = (s->s[1] - s->s[0])*s->v;
+    w.y = (s->s[3] - s->s[2])*s->v;
+#if FTT_2D
+    w.z = 0.;
+#else
+    w.z = (s->s[5] - s->s[4])*s->v;
+#endif
+      
+    gfs_cell_dirichlet_gradient_stencil (cell, max_level, v0, &g, lp, stencil, &w);
+      
+    return (g.x*(s->s[1] - s->s[0]) + g.y*(s->s[3] - s->s[2])
+#if (!FTT_2D)
+	    + g.z*(s->s[5] - s->s[4])
+#endif
+	    )*s->v;
+  }
+  return 0.;
+}
+
 /**
  * gfs_cell_dirichlet_value:
  * @cell: a #FttCell.
@@ -1656,13 +1860,15 @@ void gfs_get_from_below_intensive (FttCell * cell, const GfsVariable * v)
 
   ftt_cell_children (cell, &child);
   for (i = 0; i < FTT_CELLS; i++)
-    if (child.c[i]) {
+    if (child.c[i] && GFS_HAS_DATA (child.c[i], v)) {
       gdouble a = gfs_domain_cell_fraction (v->domain, child.c[i]);
-      val += GFS_VARIABLE (child.c[i], v->i)*a;
+      val += GFS_VALUE (child.c[i], v)*a;
       sa += a;
     }
   if (sa > 0.)
-    GFS_VARIABLE (cell, v->i) = val/sa;
+    GFS_VALUE (cell, v) = val/sa;
+  else
+    GFS_VALUE (cell, v) = GFS_NODATA;
 }
 
 /**
@@ -1689,7 +1895,7 @@ void gfs_cell_coarse_fine (FttCell * parent, GfsVariable * v)
     if (child.c[n])
       GFS_VALUE (child.c[n], v) = GFS_VALUE (parent, v);
 
-  if (!GFS_CELL_IS_BOUNDARY (parent)) {
+  if (!GFS_CELL_IS_BOUNDARY (parent) && GFS_HAS_DATA (parent, v)) {
     FttVector g;
     FttComponent c;
     
@@ -1779,7 +1985,7 @@ static void add_stats (const FttCell * cell, gpointer * data)
   GtsRange * s = data[0];
   gdouble v = GFS_VARIABLE (cell, GFS_VARIABLE1 (data[1])->i);
 
-  if (v < G_MAXDOUBLE)
+  if (v != GFS_NODATA)
     gts_range_add_value (s, v);
 }
 
@@ -1899,7 +2105,7 @@ void gfs_norm_add (GfsNorm * n, gdouble val, gdouble weight)
 {
   g_return_if_fail (n != NULL);
 
-  if (val < G_MAXDOUBLE) {
+  if (val != GFS_NODATA) {
     n->bias += weight*val;
     val = fabs (val);
     if (weight != 0. && val > n->infty)
@@ -2315,27 +2521,45 @@ static FttDirection corner[8][FTT_DIMENSION] = {
 #endif /* 3D */
 
 /**
- * gfs_interpolate:
+ * gfs_cell_corner_values:
  * @cell: a #FttCell containing location @p.
- * @p: the location at which to interpolate.
  * @v: a #GfsVariable.
+ * @max_level: the maximum cell level to consider (-1 means no restriction).
+ * @f: an array with the correct size (4*(FTT_DIMENSION - 1)).
  *
- * Interpolates the @v variable of @cell, at location @p. Linear
- * interpolation is used and the boundaries of the domain are treated
- * as planes of symmetry for all variables.
+ * Fills @f with the values of @v interpolated at the corners of @cell.
+ */
+void gfs_cell_corner_values (FttCell * cell, 
+			     GfsVariable * v, 
+			     gint max_level,
+			     gdouble f[4*(FTT_DIMENSION - 1)])
+{
+  g_return_if_fail (cell != NULL);
+  g_return_if_fail (v != NULL);
+  g_return_if_fail (f != NULL);
+
+  int i;
+  for (i = 0; i < 4*(FTT_DIMENSION - 1); i++)
+    f[i] = gfs_cell_corner_value (cell, corner[i], v, max_level);
+}
+
+/**
+ * gfs_interpolate_from_corners:
+ * @cell: a #FttCell containing location @p.
+ * @p: the location at which to interpolate.
+ * @f: values at the corners of @cell.
  *
- * Returns: the interpolated value of variable @v at location @p.
+ * Returns: the interpolated value at location @p.
  */
-gdouble gfs_interpolate (FttCell * cell,
-			 FttVector p,
-			 GfsVariable * v)
+gdouble gfs_interpolate_from_corners (FttCell * cell,
+				      FttVector p,
+				      gdouble * f)
 {
   FttVector o;
   gdouble size;
-  guint i;
 
   g_return_val_if_fail (cell != NULL, 0.);
-  g_return_val_if_fail (v != NULL, 0.);
+  g_return_val_if_fail (f != NULL, 0.);
 
   ftt_cell_pos (cell, &o);
   size = ftt_cell_size (cell)/2.;
@@ -2343,10 +2567,7 @@ gdouble gfs_interpolate (FttCell * cell,
   p.y = (p.y - o.y)/size;
 #if FTT_2D
   {
-    gdouble f[4], a, b, c, d;
-
-    for (i = 0; i < 4; i++)
-      f[i] = gfs_cell_corner_value (cell, corner[i], v, -1);
+    gdouble a, b, c, d;
 
     a = f[1] + f[2] - f[0] - f[3];
     b = f[2] + f[3] - f[0] - f[1];
@@ -2357,12 +2578,9 @@ gdouble gfs_interpolate (FttCell * cell,
   }
 #else  /* 3D */
   {
-    gdouble f[8], c[8];
+    gdouble c[8];
     
     p.z = (p.z - o.z)/size;
-    for (i = 0; i < 8; i++)
-      f[i] = gfs_cell_corner_value (cell, corner[i], v, -1);
-
     c[0] = - f[0] + f[1] + f[2] - f[3] - f[4] + f[5] + f[6] - f[7];
     c[1] = - f[0] - f[1] + f[2] + f[3] - f[4] - f[5] + f[6] + f[7];
     c[2] =   f[0] + f[1] + f[2] + f[3] - f[4] - f[5] - f[6] - f[7];
@@ -2377,7 +2595,34 @@ gdouble gfs_interpolate (FttCell * cell,
 	    c[6]*p.x*p.y*p.z + 
 	    c[7])/8.;
   }
-#endif /* 3D */
+#endif /* 3D */  
+}
+
+/**
+ * gfs_interpolate:
+ * @cell: a #FttCell containing location @p.
+ * @p: the location at which to interpolate.
+ * @v: a #GfsVariable.
+ *
+ * Interpolates the @v variable of @cell, at location @p. Linear
+ * interpolation is used and the boundaries of the domain are treated
+ * as planes of symmetry for all variables.
+ *
+ * Returns: the interpolated value of variable @v at location @p.
+ */
+gdouble gfs_interpolate (FttCell * cell,
+			 FttVector p,
+			 GfsVariable * v)
+{
+  g_return_val_if_fail (cell != NULL, 0.);
+  g_return_val_if_fail (v != NULL, 0.);
+
+  if (GFS_VALUE (cell, v) == GFS_NODATA)
+    return GFS_NODATA;
+
+  gdouble f[4*(FTT_DIMENSION - 1)];
+  gfs_cell_corner_values (cell, v, -1, f);
+  return gfs_interpolate_from_corners (cell, p, f);
 }
 
 /**
@@ -2748,7 +2993,527 @@ gdouble gfs_cell_corner_value (FttCell * cell,
   g_return_val_if_fail (v != NULL, 0.);
 
   gfs_cell_corner_interpolator (cell, d, max_level, v->centered, &inter);
-  for (i = 0; i < inter.n; i++)
-    val += inter.w[i]*GFS_VARIABLE (inter.c[i], v->i);
+  for (i = 0; i < inter.n; i++) {
+    gdouble v1 = GFS_VALUE (inter.c[i], v);
+    if (v1 == GFS_NODATA)
+      return GFS_VALUE (cell, v);
+    val += inter.w[i]*v1;
+  }
   return val;
 }
+
+/* GfsStencil: Object */
+
+/* The convention is that the first element is the diagonal */
+
+/**
+ * gfs_stencil_new:
+ * @cell: the #FttCell associated with this stencil.
+ * @lp: the linear problem.
+ * @coeff: the cell coefficient.
+ * 
+ * Returns: a new #GfsStencil.
+ */
+GfsStencil * gfs_stencil_new (FttCell * cell, GfsLinearProblem * lp, gdouble coeff)
+{
+  g_return_val_if_fail (cell != NULL, NULL);
+  g_return_val_if_fail (lp != NULL, NULL);
+
+  GfsStencil * s = g_malloc (sizeof (GfsStencil));
+  s->id = g_array_new (FALSE, FALSE, sizeof (int));
+  s->coeff = g_array_new (FALSE, FALSE, sizeof (double));
+  gfs_stencil_add_element (s, cell, lp, coeff);
+  return s;
+}
+
+/**
+ * gfs_stencil_add_element:
+ * @stencil: the stencil
+ * @cell: a #FttCell.
+ * @lp: the linear problem
+ * @coeff: the cell coefficient.
+ *
+ * Adds the contribution of a @cell to @stencil.
+ */
+void gfs_stencil_add_element (GfsStencil * stencil, 
+			      FttCell * cell,
+			      GfsLinearProblem * lp,
+			      gdouble coeff)
+{
+  gint i;
+
+  g_return_if_fail (stencil != NULL);
+  g_return_if_fail (lp != NULL);
+
+  int id = GFS_VALUE (cell, lp->id);
+  if (id < 0) {
+    g_assert (GFS_CELL_IS_BOUNDARY (cell));
+    FttCell * neighbor = GFS_DOUBLE_TO_POINTER (GFS_VALUE (cell, lp->neighbor));
+    g_assert (neighbor);
+    id = GFS_VALUE (neighbor, lp->id);
+    g_assert (id >= 0);
+    coeff *= GFS_VALUE (cell, lp->neighborw);
+  }
+
+  for (i = 0; i < stencil->id->len; i++)
+    if (g_array_index (stencil->id, int, i) == id) {
+      g_array_index (stencil->coeff, double, i) += coeff;
+      return;
+    }
+
+  g_array_append_val (stencil->id, id);
+  g_array_append_val (stencil->coeff, coeff);
+}
+
+/**
+ * gfs_stencil_destroy:
+ * @stencil: a stencil 
+ *
+ * Destroys a stencil.
+ */
+void gfs_stencil_destroy (GfsStencil * stencil)
+{
+  g_return_if_fail (stencil != NULL);
+  g_array_free (stencil->id, TRUE);
+  g_array_free (stencil->coeff, TRUE);
+  g_free (stencil);
+}
+
+static void get_average_neighbor_value_stencil (const FttCellFace * face,
+						gdouble * x,
+						GfsLinearProblem * lp, GfsStencil * stencil,
+						gdouble weight)
+{
+  /* check for corner refinement violation (topology.fig) */
+  g_assert (ftt_cell_level (face->neighbor) == ftt_cell_level (face->cell));
+  
+  if (FTT_CELL_IS_LEAF (face->neighbor))
+    gfs_stencil_add_element (stencil, face->neighbor, lp, weight/(*x));
+  else {
+    FttCellChildren children;
+    gdouble a = 0.;
+    FttDirection od = FTT_OPPOSITE_DIRECTION (face->d);
+    guint i, n;
+    
+    n = ftt_cell_children_direction (face->neighbor, od, &children);
+    for (i = 0; i < n; i++)
+      if (children.c[i]) {
+	gdouble w = GFS_IS_MIXED (children.c[i]) ? GFS_STATE (children.c[i])->solid->s[od] : 1.;
+	a += w;
+      }
+    if (a > 0.) {
+      *x = 3./4.;
+      for (i = 0; i < n; i++)
+	if (children.c[i]) {
+	  gdouble w = GFS_IS_MIXED (children.c[i]) ? GFS_STATE (children.c[i])->solid->s[od] : 1.;
+
+	  gfs_stencil_add_element (stencil, children.c[i], lp, weight*w/a/(*x));
+	}
+    }
+    else
+      gfs_stencil_add_element (stencil, face->cell, lp, weight/(*x));
+  }
+}
+
+#if (FTT_2D || FTT_2D3)
+/* v = a*v(cell) + b 
+ * 
+ * First order 1D interpolation.
+ */
+static GfsGradient get_interpolate_1D1_stencil (FttCell * cell,
+						FttDirection d,
+						gdouble x,
+						GfsLinearProblem * lp,
+						GfsStencil * stencil,
+						gdouble weight)
+{
+  GfsGradient p;
+  FttCellFace f;
+
+  f = gfs_cell_face (cell, d);
+  if (f.neighbor) {
+    gdouble x2 = 1.;
+    get_average_neighbor_value_stencil (&f, &x2, lp, stencil, weight*x);
+    p.a = 1. - x/x2;
+  }
+  else
+    p.a = 1.;
+
+  return p;
+}
+
+#else
+
+/* v = a*v(cell) + b 
+ * 
+ * First order 2D interpolation.
+ */
+static GfsGradient get_interpolate_2D1_stencil (FttCell * cell,
+						FttDirection d1, FttDirection d2,
+						gdouble x, gdouble y,
+						GfsLinearProblem * lp, GfsStencil * stencil,
+						gdouble weight)
+{
+  GfsGradient p;
+  gdouble y1 = 1.;
+  gdouble x2 = 1.;
+  gdouble a1 = y, a2 = x;
+  FttCellFace f1, f2;
+
+  p.a = 1.;
+
+  f1 = gfs_cell_face (cell, d1);
+  if (f1.neighbor) {
+    get_average_neighbor_value_stencil (&f1, &y1, lp, stencil, a1*weight);
+    a1 /= y1;
+    p.a -= a1;
+  }
+    
+  f2 = gfs_cell_face (cell, d2);
+  if (f2.neighbor) {
+    get_average_neighbor_value_stencil (&f2, &x2, lp, stencil, a2*weight);
+    a2 /= x2;
+    p.a -= a2;
+  }
+  
+  return p;
+}
+
+#endif /* not FTT_2D */
+
+static Gradient gradient_fine_coarse_stencil (const FttCellFace * face,
+					      GfsLinearProblem * lp,
+					      GfsStencil * stencil, gdouble weight)
+{
+  Gradient g;
+  GfsGradient p;
+#if (FTT_2D || FTT_2D3)
+  gint dp;
+#else  /* FTT_3D */
+  gint * dp;
+#endif /* FTT_3D */
+
+  g_assert (face != NULL);
+  g_assert (ftt_face_type (face) == FTT_FINE_COARSE);
+
+  dp = perpendicular[face->d][FTT_CELL_ID (face->cell)];
+#if (FTT_2D || FTT_2D3)
+  g_assert (dp >= 0);
+  p = get_interpolate_1D1_stencil (face->neighbor, dp, 1./4., lp, stencil, 2./3.*weight);
+#else  /* FTT_3D */
+  g_assert (dp[0] >= 0 && dp[1] >= 0);
+  p = get_interpolate_2D1_stencil (face->neighbor, dp[0], dp[1], 1./4., 1./4., lp,
+				   stencil, 2./3.*weight);
+#endif /* FTT_3D */
+
+  g.a = 2./3.;
+  g.b = 2.*p.a/3.;
+  g.c = 0.;
+
+  return g;
+}
+
+static void face_weighted_gradient_stencil (const FttCellFace * face,
+					    GfsGradient * g,
+					    gint max_level,
+					    guint dimension,
+					    GfsLinearProblem * lp,
+					    GfsStencil * stencil)
+{
+  guint level;
+
+  g_return_if_fail (face != NULL);
+
+  g->a = 0.;
+  
+  if (face->neighbor == NULL)
+    return;
+
+  level = ftt_cell_level (face->cell);
+  if (ftt_cell_level (face->neighbor) < level) {
+    /* neighbor is at a shallower level */
+    Gradient gcf;
+    gdouble w = GFS_STATE (face->cell)->f[face->d].v;
+
+    gcf = gradient_fine_coarse_stencil (face, lp, stencil, w);
+    g->a = w*gcf.a;
+    gfs_stencil_add_element (stencil, face->neighbor, lp,  w*gcf.b); 
+  }
+  else {
+    if (level == max_level || FTT_CELL_IS_LEAF (face->neighbor)) {
+      /* neighbor is at the same level */
+      gdouble w = GFS_STATE (face->cell)->f[face->d].v;
+
+      g->a = w;
+      gfs_stencil_add_element (stencil, face->neighbor, lp, w);
+    }
+    else {
+      /* neighbor is at a deeper level */
+      FttCellChildren children;
+      FttCellFace f;
+      guint i, n;
+      
+      f.d = FTT_OPPOSITE_DIRECTION (face->d);
+      n = ftt_cell_children_direction (face->neighbor, f.d, &children);
+      f.neighbor = face->cell;
+      for (i = 0; i < n; i++)
+	if ((f.cell = children.c[i])) {
+	  Gradient gcf;
+	  gdouble w = GFS_STATE (f.cell)->f[f.d].v;
+	  if (dimension > 2)
+	    w /=  n/2; /* fixme??? */
+	
+	  gcf = gradient_fine_coarse_stencil (&f, lp, stencil, -w);
+	  g->a += w*gcf.b;
+	  
+	  gfs_stencil_add_element (stencil, f.cell, lp, w*gcf.a);
+	}
+    }
+  }
+}
+
+/**
+ * gfs_face_weighted_gradient_stencil:
+ * @face: a FttCellFace
+ * @g: a GfsGradient
+ * @max_level: an integer
+ * @lp: the linear problem
+ * @stencil: a stencil 
+ *
+ * Fills @stencil with the stencil corresponding to the
+ * weighted gradient on @face.
+ */
+void gfs_face_weighted_gradient_stencil (const FttCellFace * face,
+					 GfsGradient * g,
+					 gint max_level,
+					 GfsLinearProblem * lp,
+					 GfsStencil * stencil)
+{
+  face_weighted_gradient_stencil (face, g, max_level, FTT_DIMENSION, lp, stencil);
+}
+
+static gboolean mixed_face_gradient_stencil (const FttCellFace * face,
+					     Gradient * g,
+					     gint max_level,
+					     GfsLinearProblem * lp,
+					     GfsStencil * stencil,
+					     gdouble weight)
+{
+  FttCell * n[N_CELLS];
+  gdouble m[N_CELLS - 1][N_CELLS - 1];
+  FttVector o, cm;
+  FttComponent c = face->d/2;
+  gdouble h = ftt_cell_size (face->cell);
+  gdouble w = weight;
+
+  gfs_cell_cm (face->cell, &o);
+  if (!face_bilinear (face, n, &o, gfs_cell_cm, max_level, m))
+    return FALSE;
+
+  gfs_face_ca (face, &cm);
+
+  if (!FTT_FACE_DIRECT (face))
+    w = -w;
+
+#if FTT_2D
+  {
+    FttComponent cp = FTT_ORTHOGONAL_COMPONENT (c);
+    gdouble vp;
+    
+    vp = ((&cm.x)[cp] - (&o.x)[cp])/h;
+    g->a = ((m[c][0] + m[2][0]*vp) +
+	    (m[c][1] + m[2][1]*vp) +
+	    (m[c][2] + m[2][2]*vp));
+    g->b = m[c][0] + m[2][0]*vp;
+    gfs_stencil_add_element (stencil, n[2], lp, w*(m[c][1] + m[2][1]*vp));
+    gfs_stencil_add_element (stencil, n[3], lp, w*(m[c][2] + m[2][2]*vp));
+  }
+#else /* 3D */
+  {
+    guint j;
+
+    cm.x = (cm.x - o.x)/h;
+    cm.y = (cm.y - o.y)/h;
+    cm.z = (cm.z - o.z)/h;
+    g->c = 0.;
+    
+    switch (c) {
+    case FTT_X:
+      g->a = g->b = m[0][0] + cm.y*m[3][0] + cm.z*m[4][0] + cm.y*cm.z*m[6][0];
+      for (j = 1; j < N_CELLS - 1; j++) {
+  	gdouble a = m[0][j] + cm.y*m[3][j] + cm.z*m[4][j] + cm.y*cm.z*m[6][j];
+  	g->a += a;
+	gfs_stencil_add_element (stencil, n[j+1], lp, w*a);
+      }
+      break;
+    case FTT_Y:
+      g->a = g->b = m[1][0] + cm.x*m[3][0] + cm.z*m[5][0] + cm.x*cm.z*m[6][0];
+      for (j = 1; j < N_CELLS - 1; j++) {
+  	gdouble a = m[1][j] + cm.x*m[3][j] + cm.z*m[5][j] + cm.x*cm.z*m[6][j];
+  	g->a += a;
+	gfs_stencil_add_element (stencil, n[j+1], lp, w*a);
+      }
+      break;
+    case FTT_Z:
+      g->a = g->b = m[2][0] + cm.x*m[4][0] + cm.y*m[5][0] + cm.x*cm.y*m[6][0];
+      for (j = 1; j < N_CELLS - 1; j++) {
+  	gdouble a = m[2][j] + cm.x*m[4][j] + cm.y*m[5][j] + cm.x*cm.y*m[6][j];
+  	g->a += a;
+	gfs_stencil_add_element (stencil, n[j+1], lp, w*a);
+      }
+      break;
+    default:
+      g_assert_not_reached ();
+    }
+  }
+#endif /* 3D */
+
+  if (!FTT_FACE_DIRECT (face)) {
+    g->a = - g->a;
+    g->b = - g->b;
+  }
+
+  return TRUE;
+}
+
+static void face_cm_gradient_stencil (const FttCellFace * face,
+				      GfsGradient * g,
+				      gint max_level,
+				      gboolean weighted,
+				      GfsLinearProblem * lp,
+				      GfsStencil * stencil)
+{
+  guint level;
+  Gradient gcf;
+  gdouble w = weighted ? GFS_STATE (face->cell)->f[face->d].v : 1.;
+
+  g->a = g->b = 0.;
+  
+  if (face->neighbor == NULL || w == 0.)
+    return;
+
+  level = ftt_cell_level (face->cell);
+  if (ftt_cell_level (face->neighbor) < level) {
+    /* neighbor is at a shallower level */
+    if (GFS_IS_MIXED (face->cell) || GFS_IS_MIXED (face->neighbor)) {
+      if (!mixed_face_gradient_stencil (face, &gcf, max_level, lp, stencil, w))
+	gcf = gradient_fine_coarse_stencil (face, lp, stencil, w);
+    }
+    else
+      gcf = gradient_fine_coarse_stencil (face, lp, stencil, w);
+    g->a = w*gcf.a;
+    gfs_stencil_add_element (stencil, face->neighbor, lp, w*gcf.b);
+  }
+  else {
+    if (level == max_level || FTT_CELL_IS_LEAF (face->neighbor)) {
+      /* neighbor is at the same level */
+      if (!GFS_IS_MIXED (face->cell) && !GFS_IS_MIXED (face->neighbor)) {
+  	g->a = w;
+	gfs_stencil_add_element (stencil, face->neighbor, lp,  w);
+      }
+      else if (mixed_face_gradient_stencil (face, &gcf, max_level, lp, stencil, w)) {
+  	g->a = w*gcf.a;
+	gfs_stencil_add_element (stencil, face->neighbor, lp,  w*gcf.b);
+      }
+      else {
+  	g->a = w;
+	gfs_stencil_add_element (stencil, face->neighbor, lp,  w);
+      }
+    }
+    else {
+      /* neighbor is at a deeper level */
+      FttCellChildren children;
+      FttCellFace f;
+      guint i, n;
+      
+      f.d = FTT_OPPOSITE_DIRECTION (face->d);
+      n = ftt_cell_children_direction (face->neighbor, f.d, &children);
+      f.neighbor = face->cell;
+      for (i = 0; i < n; i++)
+    	if ((f.cell = children.c[i])) {
+    	  w = weighted ? GFS_STATE (f.cell)->f[f.d].v : 1.;
+    	  if (GFS_IS_MIXED (f.cell) || GFS_IS_MIXED (f.neighbor)) {
+    	    if (!mixed_face_gradient_stencil (&f, &gcf, max_level, lp, stencil, w))
+    	      gcf = gradient_fine_coarse_stencil (&f, lp, stencil, -w);
+    	  }
+    	  else
+    	    gcf = gradient_fine_coarse_stencil (&f, lp, stencil, -w);
+    	  g->a += w*gcf.b;
+	  gfs_stencil_add_element (stencil, f.cell, lp,  w*gcf.a);
+    	}
+    }
+  }
+}
+
+/**
+ * gfs_face_cm_weighted_gradient_stencil:
+ * @face: a #FttCellFace.
+ * @g: a GfsGradient.
+ * @max_level: the maximum cell level to consider (-1 means no restriction).
+ * @lp: the linear problem.
+ * @stencil: a stencil.
+ *
+ * Fills @stencil with the stencil corresponding to the
+ * weighted gradient on @face. The weights are defined at
+ * the center of mass of the cell. Linear interpolation is used
+ * to evaluate the gradient in the vicinity of cut cells.
+ * This function returns the stencil equivalent to the action of
+ * gfs_face_cm_weighted_gradient().
+ */
+void gfs_face_cm_weighted_gradient_stencil (const FttCellFace * face,
+					    GfsGradient * g,
+					    gint max_level,
+					    GfsLinearProblem * lp,
+					    GfsStencil * stencil)
+{
+  g_return_if_fail (face != NULL);
+  g_return_if_fail (g != NULL);
+  g_return_if_fail (lp != NULL);
+  g_return_if_fail (stencil != NULL);
+
+  face_cm_gradient_stencil (face, g, max_level, TRUE, lp, stencil);
+}
+
+/**
+ * gfs_cm_gradient:
+ * @cell: a #FttCell.
+ * @v: a #GfsVariable.
+ * @g: a #FttVector.
+ *
+ * Fills @g with the components of the gradient of @v at the center of
+ * mass of @cell.
+ *
+ * The gradient is normalized by the size of the cell.
+ */
+void gfs_cm_gradient (FttCell * cell,
+		      GfsVariable * v,
+		      FttVector * g)
+{
+  g_return_if_fail (cell != NULL);
+  g_return_if_fail (v != NULL);
+  g_return_if_fail (g != NULL);
+
+  if (v->centered) {
+    FttComponent c;
+    for (c = 0; c < FTT_DIMENSION; c++)
+      (&g->x)[c] = gfs_center_gradient (cell, c, v->i);
+  }
+  else if (GFS_IS_MIXED (cell))
+    gfs_mixed_cell_gradient (cell, v, g);
+  else {
+    FttComponent c;
+    GfsGradient g1, g2;
+    FttCellFace f;
+    FttCellNeighbors n;
+    gdouble val = GFS_VALUE (cell, v);
+    ftt_cell_neighbors (cell, &n);
+    f.cell = cell;
+    for (c = 0; c < FTT_DIMENSION; c++) {
+      f.d = 2*c; f.neighbor = n.c[f.d];
+      gfs_face_cm_gradient (&f, &g1, v->i, -1);
+      f.d = 2*c + 1; f.neighbor = n.c[f.d];
+      gfs_face_cm_gradient (&f, &g2, v->i, -1);
+      (&g->x)[c] = (g1.b - g2.b + (g2.a - g1.a)*val)/2.;
+    }
+  }
+}
diff --git a/src/fluid.h b/src/fluid.h
index 019e7d0..45a3ce9 100644
--- a/src/fluid.h
+++ b/src/fluid.h
@@ -112,6 +112,9 @@ typedef gdouble    (* GfsCenterGradient)            (FttCell * cell,
 gdouble               gfs_center_gradient           (FttCell * cell,
 						     FttComponent c,
 						     guint v);
+void                  gfs_cm_gradient               (FttCell * cell,
+						     GfsVariable * v,
+						     FttVector * g);
 void                  gfs_center_gradient_stencil   (FttCell * cell,
 						     FttComponent c,
 						     guint v);
@@ -121,6 +124,12 @@ gdouble               gfs_center_van_leer_gradient  (FttCell * cell,
 gdouble               gfs_center_minmod_gradient    (FttCell * cell,
 						     FttComponent c,
 						     guint v);
+gdouble               gfs_center_superbee_gradient  (FttCell * cell,
+						     FttComponent c,
+						     guint v);
+gdouble               gfs_center_sweby_gradient     (FttCell * cell,
+						     FttComponent c,
+						     guint v);
 gdouble               gfs_center_regular_gradient   (FttCell * cell,
 						     FttComponent c,
 						     GfsVariable * v);
@@ -146,7 +155,11 @@ void                  gfs_face_weighted_gradient_2D  (const FttCellFace * face,
 						      GfsGradient * g,
 						      guint v,
 						      gint max_level);
-void                  gfs_face_gradient_flux         (const FttCellFace * face,
+void                  gfs_face_cm_gradient           (const FttCellFace * face,
+						      GfsGradient * g,
+						      guint v,
+						      gint max_level);
+void                  gfs_face_cm_weighted_gradient  (const FttCellFace * face,
 						      GfsGradient * g,
 						      guint v,
 						      gint max_level);
@@ -214,6 +227,13 @@ void                  gfs_cell_traverse_mixed       (FttCell * root,
 						     FttTraverseFlags flags,
 						     FttCellTraverseFunc func,
 						     gpointer data);
+void                  gfs_cell_corner_values        (FttCell * cell, 
+						     GfsVariable * v, 
+						     gint max_level,
+						     gdouble f[4*(FTT_DIMENSION - 1)]);
+gdouble               gfs_interpolate_from_corners  (FttCell * cell,
+						     FttVector p,
+						     gdouble * f);
 gdouble               gfs_interpolate               (FttCell * cell,
 						     FttVector p,
 						     GfsVariable * v);
@@ -254,6 +274,40 @@ gdouble               gfs_cell_corner_value         (FttCell * cell,
 						     GfsVariable * v,
 						     gint max_level);
 
+/* GfsStencil: Header */
+
+typedef struct _GfsLinearProblem GfsLinearProblem;
+typedef struct _GfsStencil GfsStencil;
+
+struct _GfsStencil {
+  GArray * coeff; /* doubles */
+  GArray * id;    /* ints */
+};
+
+GfsStencil *  gfs_stencil_new                       (FttCell * cell, 
+						     GfsLinearProblem * lp,
+						     gdouble coeff);
+void          gfs_stencil_add_element               (GfsStencil * stencil,
+						     FttCell * cell,
+						     GfsLinearProblem * lp,
+						     gdouble coeff);
+void          gfs_stencil_destroy                   (GfsStencil * stencil);
+void          gfs_face_weighted_gradient_stencil    (const FttCellFace * face,
+						     GfsGradient * g,
+						     gint max_level,
+						     GfsLinearProblem * lp,
+						     GfsStencil * stencil);
+void          gfs_face_cm_weighted_gradient_stencil (const FttCellFace * face,
+						     GfsGradient * g,
+						     gint max_level,
+						     GfsLinearProblem * lp,
+						     GfsStencil * stencil);
+gdouble       gfs_cell_dirichlet_gradient_flux_stencil (FttCell * cell,
+							gint max_level,
+							gdouble v0,
+							GfsLinearProblem * lp,
+							GfsStencil * stencil);
+
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */
diff --git a/src/ftt.c b/src/ftt.c
index 0429cbd..81df31b 100644
--- a/src/ftt.c
+++ b/src/ftt.c
@@ -16,6 +16,9 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
  * 02111-1307, USA.  
  */
+/*! \file
+ * \brief Quad/Octrees.
+ */
 
 #include <stdlib.h>
 #include "ftt.h"
@@ -26,15 +29,15 @@ gchar * ftt_direction_name[FTT_NEIGHBORS] = {
   "right", "left", "top", "bottom"
 #if (!FTT_2D)
   , "front", "back"
-#endif /* FTT_3D || FTT_2D3 */
+#endif /* FTT_3D */
 };
 
 gint ftt_opposite_direction[FTT_NEIGHBORS] =
 #if      FTT_2D
   {1, 0, 3, 2};
-#else  /* FTT_3D || FTT_2D3 */
+#else  /* FTT_3D */
   {1, 0, 3, 2, 5, 4};
-#endif /* FTT_3D || FTT_2D3 */
+#endif /* FTT_3D */
 
 typedef struct _FttOct      FttOct;
 typedef struct _FttRootCell FttRootCell;
@@ -53,9 +56,7 @@ static void oct_new (FttCell * parent,
   oct = g_malloc0 (sizeof (FttOct));
   oct->level = ftt_cell_level (parent);
   oct->parent = parent;
-#ifdef FTT_2D3
-  oct->dz = ftt_cell_dz (parent);
-#endif
+
   ftt_cell_pos (parent, &(oct->pos));
   ftt_cell_neighbors (parent, &(oct->neighbors));
 
@@ -94,9 +95,6 @@ FttCell * ftt_cell_new (FttCellInitFunc init,
   FttCell * cell;
 
   cell = g_malloc0 (sizeof (FttRootCell));
-#ifdef FTT_2D3
-  FTT_ROOT_CELL (cell)->dz = 1.;
-#endif
   if (init)
     (* init) (cell, data);
 
@@ -255,7 +253,7 @@ void ftt_face_draw (const FttCellFace * face, FILE * fp)
     {{1.,1.,0.},{-1.,1.,0.}},
     {{-1.,-1.,0.},{1.,-1.,0.}}
   };
-#else  /* FTT_3D || FTT_2D3 */
+#else  /* FTT_3D */
   static FttVector dp[FTT_NEIGHBORS][4] = {
     {{1.,-1.,1.},{1.,-1.,-1.},{1.,1.,-1.},{1.,1.,1.}},
     {{-1.,-1.,1.},{-1.,-1.,-1.},{-1.,1.,-1.},{-1.,1.,1.}},
@@ -264,7 +262,7 @@ void ftt_face_draw (const FttCellFace * face, FILE * fp)
     {{1.,-1.,1.},{1.,1.,1.},{-1.,1.,1.},{-1.,-1.,1.}},
     {{1.,-1.,-1.},{1.,1.,-1.},{-1.,1.,-1.},{-1.,-1.,-1.}},
   };
-#endif /* FTT_3D ||  FTT_2D3 */
+#endif /* FTT_3D */
 
   g_return_if_fail (face != NULL);
   g_return_if_fail (fp != NULL);
@@ -277,7 +275,7 @@ void ftt_face_draw (const FttCellFace * face, FILE * fp)
 	   p.y + dp[face->d][0].y*size,
 	   p.x + dp[face->d][1].x*size, 
 	   p.y + dp[face->d][1].y*size);
-#else /* FTT_3D ||  FTT_2D3 */
+#else /* FTT_3D */
   fprintf (fp, 
 	   "OFF 4 1 4 "
 	   "%g %g %g "
@@ -297,11 +295,11 @@ void ftt_face_draw (const FttCellFace * face, FILE * fp)
 	   p.x + dp[face->d][3].x*size,
 	   p.y + dp[face->d][3].y*size,
 	   p.z + dp[face->d][3].z*size);
-#endif /* FTT_3D ||  FTT_2D3 */
+#endif /* FTT_3D */
 }
 
 static gdouble coords[FTT_CELLS][3] =
-#if (FTT_2D || FTT_2D3)
+#if FTT_2D
  {{-1., 1.,0.},
   { 1., 1.,0.},
   {-1.,-1.,0.},
@@ -385,9 +383,9 @@ void ftt_corner_relative_pos (const FttCell * cell,
   static gdouble coords[FTT_NEIGHBORS][3] =
 #if FTT_2D
     {{0.5,0.,0.},{-0.5,0.,0.},{0.,0.5,0.},{0.,-0.5,0.}};
-#else  /* FTT_3D || FTT_2D3 */
+#else  /* FTT_3D */
     {{0.5,0.,0.},{-0.5,0.,0.},{0.,0.5,0.},{0.,-0.5,0.},{0.,0.,0.5},{0.,0.,-0.5}};
-#endif /* FTT_3D || FTT_2D3 */
+#endif /* FTT_3D */
 
   g_return_if_fail (cell != NULL);
   g_return_if_fail (pos != NULL);
@@ -396,11 +394,11 @@ void ftt_corner_relative_pos (const FttCell * cell,
   pos->x = coords[d[0]][0] + coords[d[1]][0];
   pos->y = coords[d[0]][1] + coords[d[1]][1];
   pos->z = 0.;
-#else  /* FTT_3D || FTT_2D3 */
+#else  /* FTT_3D */
   pos->x = coords[d[0]][0] + coords[d[1]][0] + coords[d[2]][0];
   pos->y = coords[d[0]][1] + coords[d[1]][1] + coords[d[2]][1];
   pos->z = coords[d[0]][2] + coords[d[1]][2] + coords[d[2]][2];
-#endif /* FTT_3D || FTT_2D3 */
+#endif /* FTT_3D */
 }
 
 /**
@@ -443,9 +441,9 @@ void ftt_face_pos (const FttCellFace * face, FttVector * pos)
   static gdouble coords[FTT_NEIGHBORS][3] =
 #if FTT_2D
   {{1.,0.,0.},{-1.,0.,0.},{0.,1.,0.},{0.,-1.,0.}};
-#else  /* FTT_3D || FTT_2D3 */
+#else  /* FTT_3D */
   {{1.,0.,0.},{-1.,0.,0.},{0.,1.,0.},{0.,-1.,0.},{0.,0.,1.},{0.,0.,-1.}};
-#endif /* FTT_3D || FTT_2D3 */
+#endif /* FTT_3D */
 
   g_return_if_fail (face != NULL);
   g_return_if_fail (pos != NULL);
@@ -1008,8 +1006,6 @@ void ftt_cell_bbox (const FttCell * cell, GtsBBox * bb)
   bb->x2 = p.x + h; bb->y2 = p.y + h; 
 #if FTT_2D
   bb->z1 = bb->z2 = 0.;
-#elif FTT_2D3
-  bb->z1 = p.z - 1./1.99999; bb->z2 = p.z + 1./1.99999;
 #else  /* 3D */
   bb->z1 = p.z - h; bb->z2 = p.z + h;
 #endif /* 3D */
@@ -1485,15 +1481,10 @@ void ftt_cell_flatten (FttCell * root,
   g_return_if_fail (root != NULL);
   g_return_if_fail (d < FTT_NEIGHBORS);
 
-#if FTT_2D3
-  if (d >= FTT_NEIGHBORS_2D)
-    return;
-#endif /* 2D3 */
-
   if (!FTT_CELL_IS_LEAF (root)) {
     struct _FttOct * oct;
     guint i;
-#if (FTT_2D || FTT_2D3)
+#if FTT_2D
     static gint index[FTT_NEIGHBORS_2D][FTT_CELLS/2] =
     {{1, 3},
      {0, 2},
@@ -1555,9 +1546,7 @@ FttCell * ftt_cell_locate (FttCell * root,
 
   if (target.x > pos.x + size || target.x < pos.x - size ||
       target.y > pos.y + size || target.y < pos.y - size
-#if FTT_2D3
-      || target.z > pos.z + 0.5 || target.z < pos.z - 0.5
-#elif !FTT_2D
+#if !FTT_2D
       || target.z > pos.z + size || target.z < pos.z - size
 #endif
       )
@@ -1566,7 +1555,7 @@ FttCell * ftt_cell_locate (FttCell * root,
   do {
     if (FTT_CELL_IS_LEAF (root) || ftt_cell_level (root) == max_depth)
       return root;
-#if (FTT_2D || FTT_2D3)
+#if FTT_2D
     static guint index[2][2] = {{2,3},{0,1}};
     guint n = index[target.y > pos.y][target.x > pos.x];
 #else  /* 3D */
@@ -1577,7 +1566,7 @@ FttCell * ftt_cell_locate (FttCell * root,
     size /= 2.;
     pos.x += coords[n][0]*size;
     pos.y += coords[n][1]*size;
-#if !(FTT_2D || FTT_2D3)
+#if !FTT_2D
     pos.z += coords[n][2]*size;
 #endif /* 3D */
   } while (!FTT_CELL_IS_DESTROYED (root));
@@ -1828,8 +1817,10 @@ static gboolean cell_read (FttCell * cell,
   }
   flags = atoi (fp->token->str);
   if (FTT_CELL_ID (cell) != (flags & FTT_FLAG_ID)) {
-    gts_file_error (fp, "FTT_CELL_ID (cell) `%d' != (flags & FTT_FLAG_ID) `%d'",
-		    FTT_CELL_ID (cell), (flags & FTT_FLAG_ID));
+    gts_file_error (fp, 
+		    "FTT_CELL_ID (cell) `%d' != (flags & FTT_FLAG_ID) `%d'\n"
+		    "Make sure the file has %d spatial dimensions",
+		    FTT_CELL_ID (cell), (flags & FTT_FLAG_ID), FTT_DIMENSION);
     return FALSE;
   }
   cell->flags = flags;
@@ -1859,9 +1850,6 @@ static gboolean oct_read (FttCell * parent,
   oct = g_malloc0 (sizeof (FttOct));
   oct->level = ftt_cell_level (parent);
   oct->parent = parent;
-#ifdef FTT_2D3
-  oct->dz = ftt_cell_dz (parent);
-#endif
   parent->children = oct;
   ftt_cell_pos (parent, &(oct->pos));
   
@@ -1934,8 +1922,10 @@ static gboolean cell_read_binary (FttCell * cell,
     return FALSE;
   }
   if (FTT_CELL_ID (cell) != (flags & FTT_FLAG_ID)) {
-    gts_file_error (fp, "FTT_CELL_ID (cell) `%d' != (flags & FTT_FLAG_ID) `%d'",
-		    FTT_CELL_ID (cell), (flags & FTT_FLAG_ID));
+    gts_file_error (fp, 
+		    "FTT_CELL_ID (cell) `%d' != (flags & FTT_FLAG_ID) `%d'\n"
+		    "Make sure the file has %d spatial dimensions",
+		    FTT_CELL_ID (cell), (flags & FTT_FLAG_ID), FTT_DIMENSION);
     return FALSE;
   }
   cell->flags = flags;
@@ -1963,9 +1953,6 @@ static gboolean oct_read_binary (FttCell * parent,
   oct = g_malloc0 (sizeof (FttOct));
   oct->level = ftt_cell_level (parent);
   oct->parent = parent;
-#ifdef FTT_2D3
-  oct->dz = ftt_cell_dz (parent);
-#endif
   parent->children = oct;
   ftt_cell_pos (parent, &(oct->pos));
   
@@ -2020,9 +2007,8 @@ FttCell * ftt_cell_read_binary (GtsFile * fp,
  * ftt_refine_corner:
  * @cell: a #FttCell.
  *
- * Returns: %TRUE if @cell is a leaf and if any of its "corner"
- * neighbors are more than one level more refined, %FALSE otherwise
- * (see figure topology.fig). 
+ * Returns: %TRUE if any "corner" neighbors of @cell are more than one
+ * level more refined, %FALSE otherwise (see figure topology.fig).
  */
 gboolean ftt_refine_corner (const FttCell * cell)
 {
@@ -2031,15 +2017,8 @@ gboolean ftt_refine_corner (const FttCell * cell)
 
   g_return_val_if_fail (cell != NULL, FALSE);
 
-  if (!FTT_CELL_IS_LEAF (cell))
-    return FALSE;
-
   ftt_cell_neighbors (cell, &neighbor);
-#if FTT_2D3
-  for (i = 0; i < FTT_NEIGHBORS_2D; i++) {
-#else
   for (i = 0; i < FTT_NEIGHBORS; i++) {
-#endif
     FttCell * n = neighbor.c[i];
 
     if (n && !FTT_CELL_IS_LEAF (n)) {
@@ -2051,7 +2030,7 @@ gboolean ftt_refine_corner (const FttCell * cell)
 	FttCell * c = child.c[j];
 
 	if (c) {
-#if (FTT_2D || FTT_2D3)
+#if FTT_2D
 	  static guint perpendicular[FTT_NEIGHBORS_2D][FTT_CELLS/2] =
 	  {{2,3},
 	   {2,3},
@@ -2346,6 +2325,8 @@ gboolean ftt_cell_coarsen (FttCell * root,
 	  if (!empty && !ftt_cell_coarsen (neighbor, coarsen, coarsen_data, 
 					   cleanup, cleanup_data))
 	    return FALSE;
+	  if (!FTT_CELL_IS_LEAF (neighbor))
+	    neighbor->children->neighbors.c[FTT_OPPOSITE_DIRECTION (d)] = NULL;
 	}
       }
     }
diff --git a/src/ftt.h b/src/ftt.h
index 4d2a359..36bc167 100644
--- a/src/ftt.h
+++ b/src/ftt.h
@@ -33,7 +33,7 @@ extern "C" {
 
 #define FTT_MAINTAINER "s.popinet at niwa.co.nz"
 
-#if (FTT_2D || FTT_2D3)
+#if FTT_2D
 # define FTT_CELLS     4
 #else  /* FTT_3D */
 # define FTT_CELLS     8
@@ -52,8 +52,13 @@ struct _FttVector {
 
 #if FTT_2D
 # define ftt_vector_norm(v) (sqrt((v)->x*(v)->x + (v)->y*(v)->y))
+# define ftt_vector_distance(v1,v2)  (sqrt(((v1)->x-(v2)->x)*((v1)->x-(v2)->x) + \
+					   ((v1)->y-(v2)->y)*((v1)->y-(v2)->y)))
 #else  /* 3D */
 # define ftt_vector_norm(v) (sqrt((v)->x*(v)->x + (v)->y*(v)->y + (v)->z*(v)->z))
+# define ftt_vector_distance(v1,v2) (sqrt(((v1)->x-(v2)->x)*((v1)->x-(v2)->x) + \
+					  ((v1)->y-(v2)->y)*((v1)->y-(v2)->y)      + \
+					  ((v1)->z-(v2)->z)*((v1)->z-(v2)->z)))
 #endif /* 3D */
 
 typedef enum
@@ -81,17 +86,12 @@ typedef enum
 #if (!FTT_2D)
   FTT_FRONT,
   FTT_BACK,
-#endif /* FTT_3D || FTT_2D3 */
+#endif /* FTT_3D */
   FTT_NEIGHBORS
 } FttDirection;
 
 #define FTT_NEIGHBORS_2D (FTT_BOTTOM + 1)
-
-#if FTT_2D3
-# define FTT_CELLS_DIRECTION(d) ((d) < FTT_NEIGHBORS_2D ? FTT_CELLS/2 : FTT_CELLS)
-#else  /* 2D && 3D */
-# define FTT_CELLS_DIRECTION(d) (FTT_CELLS/2)
-#endif /* 2D && 3D */
+#define FTT_CELLS_DIRECTION(d) (FTT_CELLS/2)
 
 GTS_C_VAR gchar * ftt_direction_name[FTT_NEIGHBORS]; /* defined in ftt.c */
 
@@ -101,14 +101,14 @@ typedef enum
   FTT_Y,
 #if (!FTT_2D)
   FTT_Z,
-#endif /* FTT_3D || FTT_2D3 */
+#endif /* FTT_3D */
   FTT_DIMENSION,
   FTT_XY,
 #if FTT_2D
   FTT_XYZ = FTT_XY
-#else  /* FTT_3D || FTT_2D3 */
+#else  /* FTT_3D */
   FTT_XYZ
-#endif /* FTT_3D || FTT_2D3 */
+#endif /* FTT_3D */
 } FttComponent;
 
 typedef enum {
@@ -148,9 +148,6 @@ struct _FttRootCell {
   FttCellNeighbors neighbors;
   FttVector pos;
   guint level;
-#if FTT_2D3
-  gdouble dz;
-#endif
   gpointer parent;
 };
 
@@ -159,9 +156,6 @@ struct _FttOct {
   FttCell * parent;
   FttCellNeighbors neighbors;
   FttVector pos;
-#if FTT_2D3
-  gdouble dz;
-#endif
 
   FttCell cell[FTT_CELLS];
 };
@@ -231,13 +225,7 @@ FttCell *            ftt_cell_new                    (FttCellInitFunc init,
                                          ((struct _FttRootCell *) c)->level)
 #define              ftt_cell_parent(c) ((c)->parent ?\
                                          (c)->parent->parent : NULL)
-#ifdef FTT_2D3
-# define             ftt_cell_dz(c)     ((c)->parent ?\
-                                         (c)->parent->dz :\
-                                         ((struct _FttRootCell *) c)->dz)
-#else  /* 2D or 3D */
-# define             ftt_cell_dz(c)     (1.)
-#endif /* 2D or 3D */
+#define              ftt_cell_dz(c)     (1.)
 
 /**
  * ftt_level_size:
@@ -286,7 +274,7 @@ gdouble ftt_cell_volume (const FttCell * cell)
   g_return_val_if_fail (cell != NULL, 0.);
 
   size = ftt_level_size (ftt_cell_level (cell));
-#if (FTT_2D || FTT_2D3)
+#if FTT_2D
   return size*size;
 #else  /* FTT_3D */
   return size*size*size;
@@ -325,7 +313,7 @@ void ftt_cell_children (const FttCell * cell,
  * @d: a direction.
  * @children: a #FttCellChildren.
  *
- * Fills @children with the children (2 in 2D, 4 in 3D, 2 or 4 in 2D3)
+ * Fills @children with the children (2 in 2D, 4 in 3D)
  * of @cell in direction @d.
  * 
  * This function fails if @cell is a leaf.
@@ -339,7 +327,7 @@ guint ftt_cell_children_direction (const FttCell * cell,
 {
   struct _FttOct * oct;
   guint i;
-#if (FTT_2D || FTT_2D3)
+#if FTT_2D
   static gint index[FTT_NEIGHBORS_2D][FTT_CELLS/2] =
   {{1, 3},
    {0, 2},
@@ -362,14 +350,6 @@ guint ftt_cell_children_direction (const FttCell * cell,
 
   oct = cell->children;
 
-#if FTT_2D3
-  if (d >= FTT_NEIGHBORS_2D) {
-    for (i = 0; i < FTT_CELLS; i++)
-      children->c[i] = FTT_CELL_IS_DESTROYED (&(oct->cell[i])) ? NULL : &(oct->cell[i]);
-    return FTT_CELLS;
-  }
-#endif /* 2D3 */
-
   for (i = 0; i < FTT_CELLS/2; i++)
     children->c[i] = FTT_CELL_IS_DESTROYED (&(oct->cell[index[d][i]])) ? 
       NULL : &(oct->cell[index[d][i]]);
@@ -389,7 +369,7 @@ static inline
 FttCell * ftt_cell_child_corner (const FttCell * cell,
 				 FttDirection d[FTT_DIMENSION])
 {
-#if (FTT_2D || FTT_2D3)
+#if FTT_2D
   static gint index[FTT_NEIGHBORS_2D][FTT_NEIGHBORS_2D] = {
     {-1,-1,1,3},
     {-1,-1,0,2},
@@ -404,14 +384,7 @@ FttCell * ftt_cell_child_corner (const FttCell * cell,
   g_return_val_if_fail (d[0] < FTT_NEIGHBORS, NULL);
   g_return_val_if_fail (d[1] < FTT_NEIGHBORS, NULL);
 
-#  if FTT_2D3
-  if (d[0] >= FTT_NEIGHBORS_2D)
-    i = index[d[1]][d[2]];
-  else if (d[1] >= FTT_NEIGHBORS_2D)
-    i = index[d[0]][d[2]];
-  else
-#  endif
-    i = index[d[0]][d[1]];
+  i = index[d[0]][d[1]];
 #else  /* FTT_3D */
   static gint index[FTT_NEIGHBORS][FTT_NEIGHBORS][FTT_NEIGHBORS] = {
     {{-1,-1,-1,-1,-1,-1},{-1,-1,-1,-1,-1,-1},
@@ -468,13 +441,6 @@ void ftt_cell_neighbors_not_cached (const FttCell * cell,
        {-2,0,-4,2},
        {-3,-4,0,1},
        {2,3,-1,-2}};
-#elif FTT_2D3
-    = {{1,-1,3,-3},
-       {-2,0,-4,2},
-       {-3,-4,0,1},
-       {2,3,-1,-2},
-       {-1,-2,-3,-4},
-       {-1,-2,-3,-4}};
 #else  /* FTT_3D */
     = {{1,-1,3,-3,5,-5,7,-7},
        {-2,0,-4,2,-6,4,-8,6},
@@ -534,13 +500,6 @@ FttCell * ftt_cell_neighbor_not_cached (const FttCell * cell,
        {-2,0,-4,2},
        {-3,-4,0,1},
        {2,3,-1,-2}};
-#elif FTT_2D3
-    = {{1,-1,3,-3},
-       {-2,0,-4,2},
-       {-3,-4,0,1},
-       {2,3,-1,-2},
-       {-1,-2,-3,-4},
-       {-1,-2,-3,-4}};
 #else  /* FTT_3D */
     = {{1,-1,3,-3,5,-5,7,-7},
        {-2,0,-4,2,-6,4,-8,6},
@@ -671,8 +630,6 @@ gboolean ftt_cell_neighbor_is_brother (FttCell * cell,
   static gboolean b[FTT_CELLS][FTT_NEIGHBORS] = {
 #if FTT_2D
     {1,0,0,1}, {0,1,0,1}, {1,0,1,0}, {0,1,1,0}
-#elif FTT_2D3
-    {1,0,0,1,0,0}, {0,1,0,1,0,0}, {1,0,1,0,0,0}, {0,1,1,0,0,0}
 #else  /* 3D */
     {1,0,0,1,0,1}, {0,1,0,1,0,1}, {1,0,1,0,0,1}, {0,1,1,0,0,1},
     {1,0,0,1,1,0}, {0,1,0,1,1,0}, {1,0,1,0,1,0}, {0,1,1,0,1,0}
diff --git a/src/function.h b/src/function.h
index e9b8466..052c7a7 100644
--- a/src/function.h
+++ b/src/function.h
@@ -20,6 +20,8 @@
 #ifndef __FUNCTION_H__
 #define __FUNCTION_H__
 
+#define NODATA GFS_NODATA
+
 static double Dirichlet = 1.;
 static double Neumann = 0.;
 static GfsSimulation * _sim = NULL;
@@ -64,4 +66,86 @@ static double correctness (const gchar * name)
   return gfs_vof_correctness (_cell, GFS_VARIABLE_TRACER_VOF (v));
 }
 
+static double distance (double xo, double yo, double zo)
+{
+  /* fixme: this doesn't take mapping into account properly */
+  GtsPoint o;
+  o.x = xo; o.y = yo; o.z = zo;
+  gfs_simulation_map (_sim, (FttVector *) &o.x);
+  GtsBBox bb;
+  ftt_cell_bbox (_cell, &bb);
+  gdouble min, max;
+  gts_bbox_point_distance2 (&bb, &o, &min, &max);
+  return sqrt (min)*_sim->physical_params.L;
+}
+
+static gboolean is_velocity (GfsVariable * v, GfsDomain * domain)
+{
+  FttComponent c;
+  GfsVariable ** u = gfs_domain_velocity (domain);
+
+  for (c = 0; c < FTT_DIMENSION; c++)
+    if (v == u[c])
+      return TRUE;
+  return FALSE;
+}
+
+static void dirichlet_bc (FttCell * cell)
+{
+  cell->flags |= GFS_FLAG_DIRICHLET;
+  GFS_STATE (cell)->solid->fv = 0.;
+}
+
+static double dsd (const gchar * name, FttComponent c)
+{
+  g_return_val_if_fail (_cell != NULL, NODATA);
+  if (!GFS_IS_MIXED (_cell))
+    return NODATA;
+  GfsVariable * v = gfs_variable_from_name (GFS_DOMAIN (_sim)->variables, name);
+  if (v == NULL)
+    return NODATA;
+  if (v->surface_bc)
+    (* GFS_SURFACE_GENERIC_BC_CLASS (GTS_OBJECT (v->surface_bc)->klass)->bc) (_cell, v->surface_bc);
+  else if (is_velocity (v, GFS_DOMAIN (_sim)))
+    dirichlet_bc (_cell);
+  else /* Neumann */
+    return 0.;
+  if ((_cell->flags & GFS_FLAG_DIRICHLET) == 0)
+    return NODATA;
+  FttVector g;
+  gfs_cell_dirichlet_gradient (_cell, v->i, -1, GFS_STATE (_cell)->solid->fv, &g);
+  return gfs_dimensional_value (v, (&g.x)[c]/(_sim->physical_params.L*ftt_cell_size (_cell)));
+}
+
+static double dsx (const gchar * name) { return dsd (name, FTT_X); }
+static double dsy (const gchar * name) { return dsd (name, FTT_Y); }
+#if !FTT_2D
+static double dsz (const gchar * name) { return dsd (name, FTT_Z); }
+#endif /* 3D */
+
+static double flux (const gchar * name)
+{
+  g_return_val_if_fail (_cell != NULL, NODATA);
+  if (!GFS_IS_MIXED (_cell))
+    return 0.;
+  GfsVariable * v = gfs_variable_from_name (GFS_DOMAIN (_sim)->variables, name);
+  if (v == NULL)
+    return 0.;
+  if (v->surface_bc)
+    (* GFS_SURFACE_GENERIC_BC_CLASS (GTS_OBJECT (v->surface_bc)->klass)->bc) (_cell, v->surface_bc);
+  else if (is_velocity (v, GFS_DOMAIN (_sim)))
+    dirichlet_bc (_cell);
+  else /* Neumann */
+    return 0.;
+  gdouble flux;
+  if ((_cell->flags & GFS_FLAG_DIRICHLET) == 0)
+    flux = GFS_STATE (_cell)->solid->fv;
+  else {
+    GFS_STATE (_cell)->solid->v = 1.;
+    flux = gfs_cell_dirichlet_gradient_flux (_cell, v->i, -1, GFS_STATE (_cell)->solid->fv);
+  }
+  return gfs_dimensional_value (v, flux*pow (_sim->physical_params.L*ftt_cell_size (_cell), 
+					     FTT_DIMENSION - 2.));
+}
+
 #endif /* __FUNCTION_H__ */
diff --git a/src/gerris.c b/src/gerris.c
index c03c1dd..1a13d2a 100644
--- a/src/gerris.c
+++ b/src/gerris.c
@@ -1,5 +1,5 @@
 /* Gerris - The GNU Flow Solver
- * Copyright (C) 2001 National Institute of Water and Atmospheric Research
+ * Copyright (C) 2001-2011 National Institute of Water and Atmospheric Research
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License as
@@ -55,6 +55,15 @@ static void setup_binary_IO (GfsDomain * domain)
   domain->binary = TRUE;	
 }
 
+static gboolean set_macros ()
+{
+#ifndef HAVE_M4
+  gfs_error (0, "gerris: macros are not supported on this system\n");
+  return 1;
+#endif /* not HAVE_M4 */
+  return 0;
+}
+
 int main (int argc, char * argv[])
 {
   GfsSimulation * simulation;
@@ -80,6 +89,7 @@ int main (int argc, char * argv[])
       {"partition", required_argument, NULL, 'p'},
       {"profile", no_argument, NULL, 'P'},
       {"define", required_argument, NULL, 'D'},
+      {"include", required_argument, NULL, 'I'},
       {"macros", no_argument, NULL, 'm'},
       {"data", no_argument, NULL, 'd'},
       {"event", required_argument, NULL, 'e'},
@@ -90,10 +100,10 @@ int main (int argc, char * argv[])
       { NULL }
     };
     int option_index = 0;
-    switch ((c = getopt_long (argc, argv, "hVs:ip:PD:mde:b:v",
+    switch ((c = getopt_long (argc, argv, "hVs:ip:PD:I:mde:b:v",
 			      long_options, &option_index))) {
 #else /* not HAVE_GETOPT_LONG */
-    switch ((c = getopt (argc, argv, "hVs:ip:PD:mde:b:v"))) {
+    switch ((c = getopt (argc, argv, "hVs:ip:PD:I:mde:b:v"))) {
 #endif /* not HAVE_GETOPT_LONG */
     case 'P': /* profile */
       profile = TRUE;
@@ -111,17 +121,27 @@ int main (int argc, char * argv[])
     case 'i': /* pid */
       one_box_per_pe = FALSE;
       break;
+    case 'I': { /* include */
+      gchar * tmp = g_strjoin (" ", m4_options, "-I", optarg, NULL);
+      g_free (m4_options);
+      m4_options = tmp;
+      if (set_macros ())
+	return 1;
+      macros = TRUE;
+      break;
+    }
     case 'D': { /* define */
       gchar * tmp = g_strjoin (" ", m4_options, "-D", optarg, NULL);
       g_free (m4_options);
       m4_options = tmp;
-      /* fall through */
+      if (set_macros ())
+	return 1;
+      macros = TRUE;
+      break;
     }
     case 'm': /* macros */
-#ifndef HAVE_M4
-      gfs_error (0, "gerris: macros are not supported on this system\n");
-      return 1;
-#endif /* not HAVE_M4 */
+      if (set_macros ())
+	return 1;
       macros = TRUE;
       break;
     case 'd': /* data */
@@ -153,6 +173,7 @@ int main (int argc, char * argv[])
 	     "  -DNAME=VALUE         (macro support is implicitly turned on)\n"
 	     "         --define=NAME\n"
              "         --define=NAME=VALUE\n"
+	     "  -IDIR --include=DIR  Append DIR to macro include path\n"
 #endif /* HAVE_M4 */
 	     "  -eEV   --event=EV    Evaluates GfsEvent EV and returns the simulation\n"
 	     "  -v     --verbose     Display more messages\n"
@@ -170,7 +191,7 @@ int main (int argc, char * argv[])
 	       "  MPI:          %s\n"
 	       "  pkg-config:   %s\n"
 	       "  m4 and gawk:  %s\n"
-	       "Copyright (C) 2001-2009 NIWA.\n"
+	       "Copyright (C) 2001-2010 NIWA.\n"
 	       "This is free software; see the source for copying conditions.  There is NO\n"
 	       "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n",
 	       FTT_DIMENSION,
@@ -222,8 +243,33 @@ int main (int argc, char * argv[])
   else { /* no macros */
     if (!strcmp (argv[optind], "-"))
       fptr = stdin;
-    else
+    else {
+#ifdef HAVE_MPI
+      gint pid = -1;
+      int size;
+      
+      MPI_Comm_size (MPI_COMM_WORLD, &size);
+      if (size > 1)
+	MPI_Comm_rank (MPI_COMM_WORLD, &pid);
+      
+      gboolean dynamic = FALSE, parallel = FALSE;
+      GSList * format = gfs_format_new (argv[optind], NULL, &dynamic, &parallel);
+      if (dynamic) {
+	gfs_error (-1, "gerris: simulation file cannot be time-dependent\n");
+	return 1;
+      }
+      if (parallel) {
+	gchar * fpname = gfs_format_string (format, pid, 0, 0.);
+	fptr = fopen (fpname, "r");
+	g_free (fpname);
+      }
+      else
+	fptr = fopen (argv[optind], "r");
+      gfs_format_destroy (format);
+#else
       fptr = fopen (argv[optind], "r");
+#endif
+    }
   }
   g_free (m4_options);
 
@@ -249,23 +295,58 @@ int main (int argc, char * argv[])
     if (fptr != stdin)
       fclose (fptr);
 
-  if (npart > 0) {
+  domain = GFS_DOMAIN (simulation);
+
+#ifdef HAVE_MPI
+  if (domain->pid >= 0) {
+    int size;
+    MPI_Comm_size (MPI_COMM_WORLD, &size);
+    if (size > 1 && domain->np < size) {
+      if (npart != 0) {
+	gfs_error (0, "gerris: manual partitioning is not a valid option in parallel\n");
+	return 1;
+      }
+      /* automatic bubble partitioning if the simulation is not
+	 partitioned correctly (or at all) */
+      npart = size;
+      bubble = TRUE;
+    }
+  }
+#endif /* HAVE_MPI */
+
+  if (split) {
+    int pid = domain->pid;
+    domain->pid = -1; /* force serial */
+    gfs_clock_start (domain->timer);
+    gfs_simulation_refine (simulation);
+    gfs_clock_stop (domain->timer);
+    while (split) {
+      gfs_domain_split (domain, one_box_per_pe);
+      split--;
+    }
+    if (npart == 0) {
+      gfs_simulation_write (simulation, maxlevel, stdout);
+      return 0;
+    }
+    domain->pid = pid;
+  }
+
+  if (npart > 1) {
     guint nmin = 1000;
     guint mmax = 10000;
     guint ntry = 10000;
     guint np = bubble ? npart : pow (2., npart);
     gfloat imbalance = 0.0;
     GSList * partition, * i;
-    gint pid = 0;
 
-    if (verbose)
+    if (verbose && domain->pid <= 0)
       gts_graph_print_stats (GTS_GRAPH (simulation), stderr);
     if (gts_container_size (GTS_CONTAINER (simulation)) < np) {
-      fprintf (stderr,
-	       "gerris: the number of boxes in the domain to partition should be >= %d\n"
-	       "Use option '-s' to split the domain first\n"
-	       "Try `gerris --help' for more information.\n",
-	       np);
+      gfs_error (0,
+		 "gerris: the number of boxes in the domain to partition should be >= %d\n"
+		 "Use option '-s' to split the domain first\n"
+		 "Try `gerris --help' for more information.\n",
+		 np);
       return 1;
     }
     if (bubble)
@@ -278,31 +359,52 @@ int main (int argc, char * argv[])
 						 npart, 
 						 ntry, mmax, nmin, imbalance);
 
+    gint pid = 0;
     i = partition;
     while (i) {
-      gts_container_foreach (GTS_CONTAINER (i->data), 
-			     (GtsFunc) set_box_pid, &pid);
+      if (gts_container_size (GTS_CONTAINER (i->data)) == 0) {
+	fprintf (stderr, "gerris: partitioning failed: empty partition\n");
+	if (!bubble)
+	  fprintf (stderr, 
+		   "Try using the '-b' option\n"
+		   "Try `gerris --help' for more information.\n");
+	return 1;
+      }
+      gts_container_foreach (GTS_CONTAINER (i->data), (GtsFunc) set_box_pid, &pid);
       pid++;
       i = i->next;
     }
-    if (verbose)
+
+    if (pid != np)
+      fprintf (stderr, "gerris: warning: only %d partitions were created\n", pid);
+
+    if (verbose && domain->pid <= 0)
       gts_graph_partition_print_stats (partition, stderr);
     gts_graph_partition_destroy (partition);
-    gfs_simulation_write (simulation, maxlevel, stdout);
-    return 0;
-  }
-
-  domain = GFS_DOMAIN (simulation);
-  if (split) {
-    gfs_clock_start (domain->timer);
-    gfs_simulation_refine (simulation);
-    gfs_clock_stop (domain->timer);
-    while (split) {
-      gfs_domain_split (domain, one_box_per_pe);
-      split--;
+      
+    if (domain->pid >= 0) { /* we are running a parallel job */
+      /* write partitioned simulation in a temporary file */
+      gchar partname[] = "/tmp/gfspartXXXXXX";
+      gint fd = mkstemp (partname);
+      remove (partname);
+      FILE * fptr = fdopen (fd, "w+");
+      gfs_simulation_write (simulation, maxlevel, fptr);
+      gts_object_destroy (GTS_OBJECT (simulation));
+      /* replace the simulation with its partitioned version */
+      rewind (fptr);
+      fp = gts_file_new (fptr);
+      simulation = gfs_simulation_read (fp);
+      domain = GFS_DOMAIN (simulation);
+      /* cleanup */
+      gts_file_destroy (fp);
+      fclose (fptr);
+      close (fd);
+      g_assert (simulation);
+    }
+    else { /* just a serial job */
+      gfs_simulation_write (simulation, maxlevel, stdout);
+      return 0;
     }
-    gfs_simulation_write (simulation, maxlevel, stdout);
-    return 0;
   }
 
   if (events->len > 0) {
@@ -347,6 +449,11 @@ int main (int argc, char * argv[])
       gts_file_destroy (fp);
     }
     gfs_clock_start (domain->timer);
+    GSList * j = domain->variables;
+    while (j) {
+      gfs_domain_bc (domain, FTT_TRAVERSE_LEAFS, -1, j->data);
+      j = j->next;
+    }
     g_slist_foreach (l, (GFunc) gfs_event_do, simulation);    
     gfs_clock_stop (domain->timer);
     setup_binary_IO (domain);
@@ -358,5 +465,7 @@ int main (int argc, char * argv[])
 
   gfs_simulation_run (simulation);
 
+  gts_object_destroy (GTS_OBJECT (simulation));
+
   return 0;
 }
diff --git a/src/gerris2D3.pc.in b/src/gerris2D3.pc.in
deleted file mode 100644
index fc2f41c..0000000
--- a/src/gerris2D3.pc.in
+++ /dev/null
@@ -1,11 +0,0 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: Gerris2D3
-Description: Gerris Flow Solver Library (2D3)
-Version: @VERSION@
-Requires: gts >= 0.7.3
-Libs: -L${libdir} -lgfs2D3 -lgts -lm
-Cflags: -I${includedir} -DFTT_2D3=1
diff --git a/src/gfs.h b/src/gfs.h
index 2b956da..734d42e 100644
--- a/src/gfs.h
+++ b/src/gfs.h
@@ -41,6 +41,7 @@
 #include <gerris/surface.h>
 #include <gerris/unstructured.h>
 #include <gerris/map.h>
+#include <gerris/particle.h>
 #include <gerris/version.h>
 
 #endif /* GFS_H */
diff --git a/src/graphic.c b/src/graphic.c
index ed3c354..8a1ff88 100644
--- a/src/graphic.c
+++ b/src/graphic.c
@@ -16,6 +16,16 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
  * 02111-1307, USA.  
  */
+/*! \file
+ * \brief Graphical utility functions.
+ */
+
+#ifdef HAVE_CONFIG_H
+#  include "config.h"
+#  ifdef HAVE_MPI
+#    include <mpi.h>
+#  endif
+#endif
 
 #include <stdlib.h>
 #include <math.h>
@@ -26,6 +36,7 @@
 #include "solid.h"
 #include "variable.h"
 #include "version.h"
+#include "init.h"
 
 #if !FTT_2D
 #  include "isocube.h"
@@ -267,7 +278,7 @@ void gfs_write_gts (GfsDomain * domain,
 		       vertex_cell_face_class ());
   gts_surface_add_face (s, gts_face_new (gts_face_class (), e1, e2, e3));
 
-  norm = gfs_domain_norm_variable (domain, v, NULL, flags, level);
+  norm = gfs_domain_norm_variable (domain, v, NULL, flags, level, NULL, NULL);
   if (norm.infty == 0.)
     norm.infty = 1.;
 #if FTT_2D
@@ -548,7 +559,9 @@ static void write_image_square (FttCell * cell, gpointer * data)
   Image * image = data[4];
   FttVector * lambda = data[5];
   FttVector p;
-  GtsColor fc = colormap_color (colormap, (GFS_VARIABLE (cell, v->i) - *min)/(*max - *min));
+  GtsColor fc = { 0., 0., 0. }; /* nodata = black */
+  if (GFS_HAS_DATA (cell, v))
+    fc = colormap_color (colormap, (GFS_VALUE (cell, v) - *min)/(*max - *min));
   Color c;
   gdouble size = ftt_cell_size (cell)/2.;
   FttVector p1, p2;
@@ -564,38 +577,39 @@ static void write_image_square (FttCell * cell, gpointer * data)
   image_draw_square (image, &p1, &p2, c);
 }
 
-static void max_extent (FttCell * cell, FttVector * max)
+static void max_extent (FttCell * cell, FttVector extent[2])
 {
+  gdouble h = ftt_cell_size (cell)/2.;
   FttVector pos;
   
   ftt_cell_pos (cell, &pos);
-  if (pos.x > max->x) max->x = pos.x;
-  if (pos.y > max->y) max->y = pos.y;
-  if (pos.z > max->z) max->z = pos.z;
+  if (pos.x - h < extent[0].x) extent[0].x = pos.x - h;
+  if (pos.y - h < extent[0].y) extent[0].y = pos.y - h;
+  if (pos.z - h < extent[0].z) extent[0].z = pos.z - h;
+
+  if (pos.x + h > extent[1].x) extent[1].x = pos.x + h;
+  if (pos.y + h > extent[1].y) extent[1].y = pos.y + h;
+  if (pos.z + h > extent[1].z) extent[1].z = pos.z + h;
 }
 
-static void min_extent (FttCell * cell, FttVector * min)
+static gboolean cell_condition (FttCell * cell, gpointer condition)
 {
-  FttVector pos;
-  
-  ftt_cell_pos (cell, &pos);
-  if (pos.x < min->x) min->x = pos.x;
-  if (pos.y < min->y) min->y = pos.y;
-  if (pos.z < min->z) min->z = pos.z;
+  return gfs_function_value (condition, cell);
 }
 
 void gfs_write_ppm (GfsDomain * domain, 
-		    GtsBBox * box,
+		    GfsFunction * condition,
 		    GfsVariable * v, gdouble min, gdouble max,
 		    FttTraverseFlags flags,
 		    gint level,
-		    FILE * fp)
+		    FILE * fp,
+		    gboolean parallel)
 {
   Colormap * colormap;
   guint depth, size = 1;
   Image * image;
-  FttVector cmax = { - G_MAXDOUBLE, - G_MAXDOUBLE, - G_MAXDOUBLE };
-  FttVector cmin = { G_MAXDOUBLE, G_MAXDOUBLE, G_MAXDOUBLE };
+  FttVector extent[2] = {{ G_MAXDOUBLE, G_MAXDOUBLE, G_MAXDOUBLE },
+			 { - G_MAXDOUBLE, - G_MAXDOUBLE, - G_MAXDOUBLE }};
   gpointer data[6];
 
   g_return_if_fail (domain != NULL);
@@ -610,34 +624,32 @@ void gfs_write_ppm (GfsDomain * domain,
   while (depth-- > 0)
     size *= 2;
 
-  if (box != NULL) {
-    cmin.x = box->x1/domain->lambda.x; 
-    cmin.y = box->y1/domain->lambda.y; 
-    cmin.z = box->z1;
-    cmax.x = box->x2/domain->lambda.x; 
-    cmax.y = box->y2/domain->lambda.y; 
-    cmax.z = box->z2;
-  }
-  else {
-    gdouble h;
-
-    gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, FTT_TRAVERSE_LEVEL, 
-			      domain->rootlevel,
-			      (FttCellTraverseFunc) min_extent, &cmin);
-    gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, FTT_TRAVERSE_LEVEL,
-			      domain->rootlevel,
-			      (FttCellTraverseFunc) max_extent, &cmax);
-    if (cmin.x == G_MAXDOUBLE)
-      return;
-    h = ftt_level_size (domain->rootlevel)/2.;
-    cmin.x = (cmin.x - h)/domain->lambda.x; 
-    cmin.y = (cmin.y - h)/domain->lambda.y;
-    cmax.x = (cmax.x + h)/domain->lambda.x; 
-    cmax.y = (cmax.y + h)/domain->lambda.y;
+  if (condition) {
+    gfs_catch_floating_point_exceptions ();
+    gfs_domain_cell_traverse_condition (domain, FTT_PRE_ORDER, flags, level,
+					(FttCellTraverseFunc) max_extent, extent,
+					cell_condition, condition);
+    gfs_restore_fpe_for_function (condition);
   }
+  else
+    gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, flags, level,
+			      (FttCellTraverseFunc) max_extent, extent);
+
+  gfs_all_reduce (domain, extent[0].x, MPI_DOUBLE, MPI_MIN);
+  gfs_all_reduce (domain, extent[0].y, MPI_DOUBLE, MPI_MIN);
+  gfs_all_reduce (domain, extent[1].x, MPI_DOUBLE, MPI_MAX);
+  gfs_all_reduce (domain, extent[1].y, MPI_DOUBLE, MPI_MAX);
+    
+  if (extent[0].x == G_MAXDOUBLE)
+    return;
+
+  extent[0].x /= domain->lambda.x; 
+  extent[0].y /= domain->lambda.y;
+  extent[1].x /= domain->lambda.x; 
+  extent[1].y /= domain->lambda.y;
 
   colormap = colormap_jet ();
-  image = image_new (cmin, cmax, size);
+  image = image_new (extent[0], extent[1], size);
 
   data[0] = colormap;
   data[1] = &min;
@@ -645,17 +657,231 @@ void gfs_write_ppm (GfsDomain * domain,
   data[3] = v;
   data[4] = image;
   data[5] = &domain->lambda;
-  if (box != NULL)
-    gfs_domain_cell_traverse_box (domain, box, FTT_PRE_ORDER, flags, level,
-				  (FttCellTraverseFunc) write_image_square, data);
+  if (condition) {
+    gfs_catch_floating_point_exceptions ();
+    gfs_domain_cell_traverse_condition (domain, FTT_PRE_ORDER, flags, level,
+					(FttCellTraverseFunc) write_image_square, data,
+					cell_condition, condition);
+    gfs_restore_fpe_for_function (condition);
+  }
   else
     gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, flags, level,
 			      (FttCellTraverseFunc) write_image_square, data);
-  image_write (image, fp);
+
+#ifdef HAVE_MPI
+  if (!parallel && domain->pid >= 0) {
+    if (domain->pid == 0) {
+      Image * im = image_new (extent[0], extent[1], size);
+      int n, np;
+      MPI_Comm_size (MPI_COMM_WORLD, &np);
+      for (n = 1; n < np; n++) {
+	MPI_Status status;
+	MPI_Recv (im->buf, 3*image->width*image->height, MPI_BYTE, n, 0, MPI_COMM_WORLD, &status);
+	int i, j;
+	for (i = 0; i < im->height; i++)
+	  for (j = 0; j < im->width; j++)
+	    if (im->data[i][j][0] || im->data[i][j][1] || im->data[i][j][2]) {
+	      image->data[i][j][0] = im->data[i][j][0];
+	      image->data[i][j][1] = im->data[i][j][1];
+	      image->data[i][j][2] = im->data[i][j][2];
+	    }
+      }
+      image_destroy (im);
+      image_write (image, fp);      
+    }
+    else if (domain->pid > 0)
+      MPI_Send (image->buf, 3*image->width*image->height, MPI_BYTE, 0, 0, MPI_COMM_WORLD);    
+  }
+  else
+#endif
+    image_write (image, fp);
   image_destroy (image);
   colormap_destroy (colormap);
 }
 
+#define NODATA -9999
+
+typedef struct {
+  FttVector min;
+  guint width, height, size;
+  gfloat * buf, ** data;
+  gdouble xll, yll, cellsize;
+} Grid;
+
+static Grid * grid_new (FttVector min, FttVector max, guint size, 
+			gdouble xc, gdouble yc, gdouble length)
+{
+  Grid * im = g_malloc0 (sizeof (Grid));
+  guint i;
+
+  im->min = min;
+  im->size = size;
+  im->cellsize = length/size;
+  im->width = (max.x - min.x)*size;
+  im->height = (max.y - min.y)*size;
+  im->xll = xc + min.x*length;
+  im->yll = yc + min.y*length;
+  im->buf = g_malloc (sizeof (gfloat)*im->width*im->height);
+  for (i = 0; i < im->height*im->width; i++)
+    im->buf[i] = NODATA;
+  im->data = g_malloc (sizeof (gfloat *)*im->height);
+  for (i = 0; i < im->height; i++)
+    im->data[i] = &im->buf[i*im->width];
+  return im;
+}
+
+static void grid_write (Grid * im, FILE * fp)
+{
+  fprintf (fp, 
+	   "ncols\t\t%d\n"
+	   "nrows\t\t%d\n"
+	   "xllcorner\t%f\n"
+	   "yllcorner\t%f\n"
+	   "cellsize\t%.10f\n"
+	   "nodata_value\t%d\n",
+	   im->width, im->height, 
+	   im->xll, im->yll, im->cellsize,
+	   NODATA);
+  guint i, j;
+  for (i = 0; i < im->height; i++)
+    for (j = 0; j < im->width; j++)
+      fprintf (fp, "%g ", im->data[i][j]);
+}
+
+static void grid_destroy (Grid * im)
+{
+  g_free (im->data);
+  g_free (im->buf);
+  g_free (im);
+}
+
+static void grid_draw_square (Grid * im,
+			      FttVector * p1, FttVector * p2,
+			      gfloat c)
+{
+  gint i1, j1, i2, j2, i, j;
+
+  i1 = (p1->x - im->min.x)*im->size;
+  i2 = (p2->x - im->min.x)*im->size;
+  j1 = (p1->y - im->min.y)*im->size;
+  j2 = (p2->y - im->min.y)*im->size;
+
+  j1 = im->height - 1 - j1;
+  j2 = im->height - 1 - j2;
+  for (i = i1; i <= i2; i++)
+    for (j = j2; j <= j1; j++) 
+      if (i >= 0 && i < im->width && j >= 0 && j < im->height)
+	im->data[j][i] = c;
+}
+
+static void write_grid_square (FttCell * cell, gpointer * data)
+{
+  GfsVariable * v = data[3];
+  Grid * grid = data[4];
+  FttVector * lambda = data[5];
+  FttVector p;
+  gdouble size = ftt_cell_size (cell)/2.;
+  FttVector p1, p2;
+
+  ftt_cell_pos (cell, &p);
+  p1.x = (p.x - size)/lambda->x + 1e-9;
+  p1.y = (p.y - size)/lambda->y + 1e-9;
+  p2.x = (p.x + size)/lambda->x - 1e-9;
+  p2.y = (p.y + size)/lambda->y - 1e-9;
+  grid_draw_square (grid, &p1, &p2, GFS_HAS_DATA (cell, v) ? GFS_VALUE (cell, v) : NODATA);
+}
+
+void gfs_write_grd (GfsDomain * domain, 
+		    GfsFunction * condition,
+		    GfsVariable * v,
+		    gdouble xc, gdouble yc, gdouble length,
+		    FttTraverseFlags flags,
+		    gint level,
+		    FILE * fp,
+		    gboolean parallel)
+{
+  guint depth, size = 1;
+  Grid * grid;
+  FttVector extent[2] = {{ G_MAXDOUBLE, G_MAXDOUBLE, G_MAXDOUBLE },
+			 { - G_MAXDOUBLE, - G_MAXDOUBLE, - G_MAXDOUBLE }};
+  gpointer data[6];
+
+  g_return_if_fail (domain != NULL);
+  g_return_if_fail (fp != NULL);
+
+  if (level < 0)
+    depth = gfs_domain_depth (domain);
+  else
+    depth = level;
+  while (depth-- > 0)
+    size *= 2;
+
+  if (condition) {
+    gfs_catch_floating_point_exceptions ();
+    gfs_domain_cell_traverse_condition (domain, FTT_PRE_ORDER, flags, level,
+					(FttCellTraverseFunc) max_extent, extent,
+					cell_condition, condition);
+    gfs_restore_fpe_for_function (condition);
+  }
+  else
+    gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, flags, level,
+			      (FttCellTraverseFunc) max_extent, extent);
+    
+  gfs_all_reduce (domain, extent[0].x, MPI_DOUBLE, MPI_MIN);
+  gfs_all_reduce (domain, extent[0].y, MPI_DOUBLE, MPI_MIN);
+  gfs_all_reduce (domain, extent[1].x, MPI_DOUBLE, MPI_MAX);
+  gfs_all_reduce (domain, extent[1].y, MPI_DOUBLE, MPI_MAX);
+    
+  if (extent[0].x == G_MAXDOUBLE)
+    return;
+
+  extent[0].x /= domain->lambda.x; 
+  extent[0].y /= domain->lambda.y;
+  extent[1].x /= domain->lambda.x; 
+  extent[1].y /= domain->lambda.y;
+
+  grid = grid_new (extent[0], extent[1], size, xc, yc, length);
+  data[3] = v;
+  data[4] = grid;
+  data[5] = &domain->lambda;
+  if (condition) {
+    gfs_catch_floating_point_exceptions ();
+    gfs_domain_cell_traverse_condition (domain, FTT_PRE_ORDER, flags, level,
+					(FttCellTraverseFunc) write_grid_square, data,
+					cell_condition, condition);
+    gfs_restore_fpe_for_function (condition);
+  }
+  else
+    gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, flags, level,
+			      (FttCellTraverseFunc) write_grid_square, data);
+
+#ifdef HAVE_MPI
+  if (!parallel && domain->pid >= 0) {
+    if (domain->pid == 0) {
+      Grid * im = grid_new (extent[0], extent[1], size, xc, yc, length);
+      int n, np;
+      MPI_Comm_size (MPI_COMM_WORLD, &np);
+      for (n = 1; n < np; n++) {
+	MPI_Status status;
+	MPI_Recv (im->buf, grid->width*grid->height, MPI_FLOAT, n, 0, MPI_COMM_WORLD, &status);
+	int i, j;
+	for (i = 0; i < im->height; i++)
+	  for (j = 0; j < im->width; j++)
+	    if (im->data[i][j] != NODATA)
+	      grid->data[i][j] = im->data[i][j];
+      }
+      grid_destroy (im);
+      grid_write (grid, fp);      
+    }
+    else if (domain->pid > 0)
+      MPI_Send (grid->buf, grid->width*grid->height, MPI_FLOAT, 0, 0, MPI_COMM_WORLD);
+  }
+  else
+#endif
+    grid_write (grid, fp);
+  grid_destroy (grid);
+}
+
 static gint gfs_combine_close (FILE ** f, Image ** im, gint n, gint ret)
 {
   guint i;
diff --git a/src/graphic.h b/src/graphic.h
index c7b7cca..c7d5532 100644
--- a/src/graphic.h
+++ b/src/graphic.h
@@ -43,13 +43,22 @@ void               gfs_write_gnuplot           (GfsDomain * domain,
 						GtsBBox * bbox,
 						FILE * fp);
 void               gfs_write_ppm               (GfsDomain * domain, 
-						GtsBBox * box,
+						GfsFunction * condition,
 						GfsVariable * v, 
 						gdouble min, 
 						gdouble max,
 						FttTraverseFlags flags,
 						gint level,
-						FILE * fp);
+						FILE * fp,
+						gboolean parallel);
+void               gfs_write_grd               (GfsDomain * domain, 
+						GfsFunction * condition,
+						GfsVariable * v,
+						gdouble xc, gdouble yc, gdouble length,
+						FttTraverseFlags flags,
+						gint level,
+						FILE * fp,
+						gboolean parallel);
 gint               gfs_combine_ppm             (gchar ** fname, 
 						guint nname, 
 						FILE * fp);
diff --git a/src/init.c b/src/init.c
index 79b6dbc..2381b03 100644
--- a/src/init.c
+++ b/src/init.c
@@ -16,12 +16,31 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
  * 02111-1307, USA.  
  */
+/** \file
+ * \brief Initialisation.
+ */
+
+/** \mainpage Programming API Reference
+ *
+ * - <a href=modules.html>Class hierarchy</a>
+ * - <a href=globals.html>Function index</a>
+ * - <a href=classes.html>Data structure index</a>
+ */
 
 #include "config.h"
 
 #ifdef HAVE_FENV_H
 # define _GNU_SOURCE
 # include <fenv.h>
+# ifdef FE_NOMASK_ENV
+#  ifdef FE_DIVBYZERO
+#    ifdef FE_INVALID
+#     define EXCEPTIONS (FE_DIVBYZERO|FE_INVALID)
+#    else
+#     define EXCEPTIONS (FE_DIVBYZERO)
+#   endif
+#  endif /* !FE_DIVBYZERO */
+# endif /* FE_NO_MASK_ENV */
 #endif /* HAVE_FENV_H */
 
 #include <stdlib.h>
@@ -45,6 +64,8 @@
 #include "balance.h"
 #include "map.h"
 #include "metric.h"
+#include "particle.h"
+#include "cartesian.h"
 
 #include "modules.h"
 
@@ -142,6 +163,7 @@ GtsObjectClass ** gfs_classes (void)
 
   gfs_event_class (),
     gfs_variable_class (),
+      gfs_variable_boolean_class (),
       gfs_variable_tracer_class (),
         gfs_variable_tracer_vof_class (),
       gfs_variable_residual_class (),
@@ -151,23 +173,28 @@ GtsObjectClass ** gfs_classes (void)
 #if FTT_2D
         gfs_variable_stream_function_class (),
 #endif /* FTT_2D */
+      gfs_variable_age_class (),
       gfs_variable_curvature_class (),
         gfs_variable_position_class (),
       gfs_variable_distance_class (),
 
+    gfs_constant_class (),
+      gfs_discharge_elevation_class (),
+      gfs_spatial_sum_class (),
+
     gfs_solid_class (),
       gfs_solid_moving_class(),
 
     gfs_init_class (),
+    gfs_init_mask_class (),
     gfs_init_flow_constant_class (),
     gfs_init_fraction_class (),
-#if FTT_2D
     gfs_init_vorticity_class (),
-#endif /* FTT_2D */
     gfs_init_wave_class (),
 
     gfs_metric_lon_lat_class (),
     gfs_metric_cubed_class (),
+    gfs_metric_stretch_class (),
 
     gfs_adapt_class (),
       gfs_adapt_vorticity_class (),
@@ -199,11 +226,13 @@ GtsObjectClass ** gfs_classes (void)
           gfs_source_tension_css_class (),
 #if !FTT_2D
         gfs_source_hydrostatic_class (),
-#endif /* 2D3 or 3D */
+#endif /* 3D */
     gfs_remove_droplets_class (),
     gfs_remove_ponds_class (),
     gfs_event_filter_class (),
     gfs_event_list_class (),
+
+    gfs_diffusion_class (),
    
     gfs_output_class (),
       gfs_output_time_class (),
@@ -216,9 +245,10 @@ GtsObjectClass ** gfs_classes (void)
       gfs_output_balance_class (),
       gfs_output_solid_force_class (),
       gfs_output_location_class (),
+        gfs_output_particle_class (),
       gfs_output_simulation_class (),
       gfs_output_boundaries_class (),
-      gfs_output_particle_class (),
+      gfs_output_object_class (),
 
       gfs_output_scalar_class (),
         gfs_output_scalar_norm_class (),
@@ -232,10 +262,26 @@ GtsObjectClass ** gfs_classes (void)
 	gfs_output_squares_class (),
 	gfs_output_streamline_class (),
         gfs_output_ppm_class (),  
+        gfs_output_grd_class (),  
 
   gfs_map_class (),
     gfs_map_function_class (),
-  
+    gfs_map_transform_class (),
+
+  gfs_particle_class (),
+
+  gfs_cartesian_grid_class (),
+
+  gfs_derived_variable_class (),
+
+  gfs_generic_surface_class (),
+    gfs_surface_class (),
+
+  gfs_function_class (),
+    gfs_function_constant_class (),
+    gfs_function_spatial_class (),
+      gfs_function_map_class (),
+
   NULL};
 
     guint n = 0;
@@ -247,9 +293,75 @@ GtsObjectClass ** gfs_classes (void)
   return classes;
 }
 
+static gboolean disabled_fpe = FALSE;
+
 typedef void (* AtExitFunc) (void);
 
 /**
+ * gfs_catch_floating_point_exceptions:
+ *
+ * Catch the default floating-point exceptions set in the Gerris
+ * library.
+ */
+void gfs_catch_floating_point_exceptions (void)
+{
+#ifdef EXCEPTIONS
+  fedisableexcept (EXCEPTIONS);
+  feclearexcept (EXCEPTIONS);
+#endif /* EXCEPTIONS */
+}
+
+/**
+ * gfs_restore_floating_point_exceptions:
+ *
+ * Restores the default floating-point exceptions set in the Gerris
+ * library.
+ *
+ * Returns: 0 if no exceptions where raised between this call and the
+ * call to gfs_catch_floating_point_exceptions(), non-zero otherwise.
+ */
+int gfs_restore_floating_point_exceptions (void)
+{
+#ifdef EXCEPTIONS
+  int ret = fetestexcept (EXCEPTIONS);
+  feclearexcept (EXCEPTIONS);
+  if (!disabled_fpe)
+    feenableexcept (EXCEPTIONS);
+  return ret;
+#else /* !EXCEPTIONS */
+  return 0;
+#endif /* !EXCEPTIONS */
+}
+
+/**
+ * gfs_disable_floating_point_exceptions:
+ *
+ * Disables floating-point exceptions (they are enabled by default
+ * when using the Gerris library).
+ */
+void gfs_disable_floating_point_exceptions (void)
+{
+#ifdef EXCEPTIONS
+  disabled_fpe = TRUE;
+  fedisableexcept (EXCEPTIONS);
+#endif /* !EXCEPTIONS */
+}
+
+/**
+ * gfs_enable_floating_point_exceptions:
+ *
+ * Enables floating-point exceptions (they are enabled by default
+ * when using the Gerris library).
+ */
+void gfs_enable_floating_point_exceptions (void)
+{
+#ifdef EXCEPTIONS
+  disabled_fpe = FALSE;
+  feenableexcept (EXCEPTIONS);
+#endif /* !EXCEPTIONS */
+}
+
+/**
  * gfs_init:
  * @argc: a pointer on the number of command line arguments passed to
  * the program.
@@ -289,11 +401,9 @@ void gfs_init (int * argc, char *** argv)
 #endif /* HAVE_MPI */
   initialized = TRUE;
 
-#ifdef FE_NOMASK_ENV
-# ifdef FE_DIVBYZERO
-  feenableexcept (FE_DIVBYZERO);
-# endif /* FE_DIVBYZERO */
-#endif /* FE_NO_MASK_ENV */
+#ifdef EXCEPTIONS
+  feenableexcept (EXCEPTIONS);
+#endif /* EXCEPTIONS */
 
   g_log_set_handler (G_LOG_DOMAIN,
 		     G_LOG_LEVEL_ERROR |
diff --git a/src/init.h b/src/init.h
index 425b2a2..5e3d007 100644
--- a/src/init.h
+++ b/src/init.h
@@ -29,6 +29,19 @@ extern "C" {
 GtsObjectClass ** gfs_classes             (void);
 void              gfs_init                (int * argc, 
 					   char *** argv);
+void gfs_catch_floating_point_exceptions   (void);
+int  gfs_restore_floating_point_exceptions (void);
+void gfs_disable_floating_point_exceptions (void);
+void gfs_enable_floating_point_exceptions  (void);
+
+#define gfs_restore_fpe_for_function(f) \
+       { \
+         if (gfs_restore_floating_point_exceptions ()) { \
+           g_message ("floating-point exception in user-defined function:\n%s", \
+	              gfs_function_description (f, FALSE)); \
+           exit (1); \
+         } \
+       }
 
 #ifdef __cplusplus
 }
diff --git a/src/levelset.c b/src/levelset.c
index 188b72e..a259b3e 100644
--- a/src/levelset.c
+++ b/src/levelset.c
@@ -16,12 +16,18 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
  * 02111-1307, USA.  
  */
+/*! \file
+ * \brief GfsVariableDistance.
+ */
 
 #include <stdlib.h>
 #include "levelset.h"
 #include "vof.h"
 
-/* GfsVariableDistance: object */
+/**
+ * Signed distance to a VOF interface.
+ * \beginobject{GfsVariableDistance}
+ */
 
 static void variable_distance_read (GtsObject ** o, GtsFile * fp)
 {
@@ -72,7 +78,7 @@ static gdouble vof_distance2 (FttCell * cell, GtsPoint * t, gpointer v)
   gdouble f = GFS_VALUE (cell, GFS_VARIABLE1 (v));
   
   if (GFS_IS_FULL (f))
-    return G_MAXDOUBLE;
+    return GFS_NODATA;
   if (!FTT_CELL_IS_LEAF (cell))
     return ftt_cell_point_distance2_min (cell, t);
   else
@@ -94,7 +100,7 @@ static void distance_for_stencil (FttCell * cell, gpointer * data)
     GFS_VALUE (cell, v) = GFS_VALUE (cell, l->v) > 0.5 ? sqrt (d2) : -sqrt (d2);
   }
   else
-    GFS_VALUE (cell, v) = G_MAXDOUBLE;
+    GFS_VALUE (cell, v) = GFS_NODATA;
 }
 
 static void distance (FttCell * cell, GfsVariable * v)
@@ -218,3 +224,4 @@ GfsVariableClass * gfs_variable_distance_class (void)
   return klass;
 }
 
+/** \endobject{GfsVariableDistance} */
diff --git a/src/m4.awk b/src/m4.awk
index 15e22e1..03b27f6 100644
--- a/src/m4.awk
+++ b/src/m4.awk
@@ -21,6 +21,8 @@ BEGIN {
 	    printf (" %s", replace_params($i, b));
 	printf ("')\n");
     }
+    else if ($1 == "GfsInclude" || $1 == "Include")
+	printf ("m4_include(%s)\n", $2);
     else
 	print $0;
 }
diff --git a/src/map.c b/src/map.c
index f3c0a2f..5d3d23d 100644
--- a/src/map.c
+++ b/src/map.c
@@ -16,10 +16,16 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
  * 02111-1307, USA.  
  */
+/*! \file
+ * \brief Coordinates transformations.
+ */
 
 #include "map.h"
 
-/* GfsMap: Object */
+/**
+ * Coordinates transformations.
+ * \beginobject{GfsMap}
+ */
 
 static void gfs_map_read (GtsObject ** o, GtsFile * fp)
 {
@@ -51,7 +57,7 @@ static void gfs_map_read (GtsObject ** o, GtsFile * fp)
 
 static void gfs_map_write (GtsObject * o, FILE * fp)
 {
-  fprintf (fp, "%s", o->klass->info.name);
+  fprintf (fp, "  %s", o->klass->info.name);
 }
 
 static void gfs_map_class_init (GfsMapClass * klass)
@@ -65,9 +71,17 @@ static void identity (GfsMap * map, const FttVector * src, FttVector * dest)
   *dest = *src;
 }
 
+static void inverse_cell (GfsMap * map, const FttVector * src, FttVector * dest)
+{
+  gint i;
+  for (i = 0; i < 4; i++)
+    (* map->inverse) (map, &(src[i]), &(dest[i]));
+}
+
 static void gfs_map_init (GfsMap * map)
 {
   map->transform = map->inverse = identity;
+  map->inverse_cell = inverse_cell;
 }
 
 GfsMapClass * gfs_map_class (void)
@@ -91,7 +105,12 @@ GfsMapClass * gfs_map_class (void)
   return klass;
 }
 
-/* GfsMapFunction: Object */
+/** \endobject{GfsMap} */
+
+/**
+ *
+ * \beginobject{GfsMapFunction}
+ */
 
 static void gfs_map_function_read (GtsObject ** o, GtsFile * fp)
 {
@@ -242,3 +261,92 @@ GfsMapClass * gfs_map_function_class (void)
 
   return klass;
 }
+
+/** \endobject{GfsMapFunction} */
+
+/**
+ * Isometric coordinates transformations.
+ * \beginobject{GfsMapTransform}
+ */
+
+static void gfs_map_transform_read (GtsObject ** o, GtsFile * fp)
+{
+  (* GTS_OBJECT_CLASS (gfs_map_transform_class ())->parent_class->read) (o, fp);
+  if (fp->type == GTS_ERROR)
+    return;
+
+  if (fp->type != '{') {
+    gts_file_error (fp, "expecting an opening brace");
+    return;
+  }
+  GfsMapTransform * map = GFS_MAP_TRANSFORM (*o);
+  GtsFileVariable var[] = {
+    {GTS_DOUBLE, "tx", TRUE, &map->translate[0]},
+    {GTS_DOUBLE, "ty", TRUE, &map->translate[1]},
+    {GTS_DOUBLE, "tz", TRUE, &map->translate[2]},
+    {GTS_NONE}
+  };
+  gts_file_assign_variables (fp, var);
+}
+
+static void gfs_map_transform_write (GtsObject * o, FILE * fp)
+{
+  (* GTS_OBJECT_CLASS (gfs_map_transform_class ())->parent_class->write) (o, fp);
+  GfsMapTransform * map = GFS_MAP_TRANSFORM (o);
+  fputs (" {\n", fp);
+  if (gts_vector_norm (map->translate) > 0.)
+    fprintf (fp, "  tx = %g ty = %g tz = %g\n",
+	     map->translate[0], map->translate[1], map->translate[2]);
+  fputc ('}', fp);
+}
+
+static void gfs_map_transform_class_init (GfsMapClass * klass)
+{
+  GTS_OBJECT_CLASS (klass)->read = gfs_map_transform_read;
+  GTS_OBJECT_CLASS (klass)->write = gfs_map_transform_write;
+}
+
+static void map_transform_transform (GfsMap * map, const FttVector * src, FttVector * dest)
+{
+  GfsMapTransform * mf = GFS_MAP_TRANSFORM (map);
+  FttComponent c;
+  for (c = 0; c < FTT_DIMENSION; c++)
+    (&dest->x)[c] = (&src->x)[c] - mf->translate[c];
+}
+
+static void map_transform_inverse (GfsMap * map, const FttVector * src, FttVector * dest)
+{
+  GfsMapTransform * mf = GFS_MAP_TRANSFORM (map);
+  FttComponent c;
+  for (c = 0; c < FTT_DIMENSION; c++)
+    (&dest->x)[c] = (&src->x)[c] + mf->translate[c];
+}
+
+static void gfs_map_transform_init (GfsMap * map)
+{
+  map->transform = map_transform_transform;
+  map->inverse =   map_transform_inverse;
+}
+
+GfsMapClass * gfs_map_transform_class (void)
+{
+  static GfsMapClass * klass = NULL;
+
+  if (klass == NULL) {
+    GtsObjectClassInfo gfs_map_transform_info = {
+      "GfsMapTransform",
+      sizeof (GfsMapTransform),
+      sizeof (GfsMapClass),
+      (GtsObjectClassInitFunc) gfs_map_transform_class_init,
+      (GtsObjectInitFunc) gfs_map_transform_init,
+      (GtsArgSetFunc) NULL,
+      (GtsArgGetFunc) NULL
+    };
+    klass = gts_object_class_new (GTS_OBJECT_CLASS (gfs_map_class ()), &gfs_map_transform_info);
+  }
+
+  return klass;
+}
+
+/** \endobject{GfsMapTransform} */
+
diff --git a/src/map.h b/src/map.h
index 7d23d95..1ec571a 100644
--- a/src/map.h
+++ b/src/map.h
@@ -35,8 +35,9 @@ struct _GfsMap {
   /*< private >*/
   GtsSListContainee parent;
 
-  void (* transform) (GfsMap * map, const FttVector * src, FttVector * dest);
-  void (* inverse)   (GfsMap * map, const FttVector * src, FttVector * dest);
+  void (* transform)    (GfsMap * map, const FttVector * src, FttVector * dest);
+  void (* inverse)      (GfsMap * map, const FttVector * src, FttVector * dest);
+  void (* inverse_cell) (GfsMap * map, const FttVector * src, FttVector * dest);
   /*< public >*/
 };
 
@@ -80,6 +81,26 @@ struct _GfsMapFunction {
 
 GfsMapClass * gfs_map_function_class      (void);
 
+/* GfsMapTransform: Header */
+
+typedef struct _GfsMapTransform         GfsMapTransform;
+
+struct _GfsMapTransform {
+  /*< private >*/
+  GfsMap parent;
+
+  /*< public >*/
+  GtsVector translate;
+};
+
+#define GFS_MAP_TRANSFORM(obj)            GTS_OBJECT_CAST (obj,\
+					         GfsMapTransform,\
+					         gfs_map_transform_class ())
+#define GFS_IS_MAP_TRANSFORM(obj)         (gts_object_is_from_class (obj,\
+						 gfs_map_transform_class ()))
+
+GfsMapClass * gfs_map_transform_class      (void);
+
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */
diff --git a/src/metric.c b/src/metric.c
index 7cf2c53..42ac255 100644
--- a/src/metric.c
+++ b/src/metric.c
@@ -16,6 +16,9 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
  * 02111-1307, USA.  
  */
+/*! \file
+ * \brief Orthogonal curvilinear metric.
+ */
 
 #include <stdlib.h>
 #include "metric.h"
@@ -23,8 +26,10 @@
 #include "map.h"
 #include "solid.h"
 
-/* GfsVariableMetric */
-
+/**
+ * A generic class for metrics which require storage.
+ * \beginobject{GfsVariableMetric}
+ */
 GfsVariableClass * gfs_variable_metric_class (void)
 {
   static GfsVariableClass * klass = NULL;
@@ -46,6 +51,8 @@ GfsVariableClass * gfs_variable_metric_class (void)
   return klass;
 }
 
+/** \endobject{GfsVariableMetric} */
+
 /* "Expanded spherical cube" metric */
 
 #define N 30
@@ -93,18 +100,18 @@ static double B[N] = {
 };
 #endif
 
-static complex WofZ (complex Z)
+static complex double WofZ (complex double Z)
 {
-  complex W = 0.;
+  complex double W = 0.;
   int n = N;
   while (n-- > 0)
     W = (W + A[n])*Z;
   return W;
 }
 
-static complex ZofW (complex W)
+static complex double ZofW (complex double W)
 {
-  complex Z = 0.;
+  complex double Z = 0.;
   int n = N;
   while (n-- > 0)
     Z = (Z + B[n])*W;
@@ -140,8 +147,8 @@ static void fmap_xy2XYZ (double x, double y, double * X, double * Y, double * Z)
     y = 1. - y;
   }
 
-  complex z = (x + I*y)/2.;
-  complex W;
+  complex double z = (x + I*y)/2.;
+  complex double W;
   if (cabs (z) > 0.) {
     z = z*z*z*z;
     W = WofZ (z);
@@ -149,8 +156,8 @@ static void fmap_xy2XYZ (double x, double y, double * X, double * Y, double * Z)
   }
   else
     W = 0.;
-  complex cb = I - 1.;
-  complex cc = RA*cb/2.;
+  complex double cb = I - 1.;
+  complex double cc = RA*cb/2.;
   W = (W - RA)/(cb + cc*W);
   *X = creal (W);
   *Y = cimag (W);
@@ -184,6 +191,8 @@ static void cmap_xy2XYZ (double x, double y, double * X, double * Y, double * Z)
 {
   x *= 2.; y *= 2.;
 
+  g_assert (x >= -1. && x <= 7. && y >= -1. && y <= 5.);
+
   /* symmetries: see doc/figures/cubed.fig */
   double tmp;
   if (y <= 1. && x <= 3.) {
@@ -240,14 +249,14 @@ static void fmap_XYZ2xy (double X, double Y, double Z, double * x, double * y)
 
   double H = Z + 1.;
   X /= H; Y /= H;
-  complex W = X + Y*I;
-  complex cb = I - 1.;
-  complex cc = RA*cb/2.;
+  complex double W = X + Y*I;
+  complex double cb = I - 1.;
+  complex double cc = RA*cb/2.;
   W = (W*cb + RA)/(1. - W*cc);
   W = W/I3;
   W = W*W*W;
   W /= I;
-  complex z = ZofW (W);
+  complex double z = ZofW (W);
   z = cpow (z, 1./4.)*2.;
   *x = fabs (creal (z));
   *y = fabs (cimag (z));
@@ -318,17 +327,116 @@ static void gfs_map_cubed_class_init (GfsMapClass * klass)
   GTS_OBJECT_CLASS (klass)->write = gfs_map_cubed_write;
 }
 
+/* Returns the index of the face of the cube containing */
+/* the point of coordinates X,Y,Z */
+static int face_num (gdouble X, gdouble Y, gdouble Z)
+{
+  if (fabs(X) < Z && fabs(Y) < Z)
+    return 1;
+  else if (fabs(X) > fabs(Y) && X > fabs(Z))
+    return 2;
+  else if (fabs(X) < fabs(Y) && Y > fabs(Z))
+    return 3;
+  else if (-fabs(X) > Z && -fabs(Y) > Z)
+    return 4;
+  else if (fabs(X) > fabs(Y) && -X > fabs(Z))
+    return 5;
+  else
+    return 6;
+}
+
 static void map_cubed_transform (GfsMap * map, const FttVector * src, FttVector * dest)
 {
   GfsSimulation * sim = gfs_object_simulation (map);
-  double lon = src->x*M_PI/180., lat = src->y*M_PI/180.;
-  double X = cos (lat)*sin (lon), Y = sin (lat), Z = sqrt (1. - X*X - Y*Y);
+  double lon = (src->x*M_PI)/180., lat = src->y*M_PI/180.;
+  double X = cos (lat)*sin (lon), Y = sin (lat), Z = cos(lat)*cos(lon);
   double x, y;
-  /* fixme: only works for face 1 */
-  fmap_XYZ2xy (X, Y, Z, &x, &y);
-  dest->x = x/2.*sim->physical_params.L;
-  dest->y = y/2.*sim->physical_params.L;
-  dest->z = src->z;
+
+  /* Maybe not the most elegant but works */
+  switch (face_num(X,Y,Z)) {
+  case 1:
+    fmap_XYZ2xy (X, Y, fabs(Z), &x, &y);
+    dest->x = x/2.*sim->physical_params.L;
+    dest->y = y/2.*sim->physical_params.L;
+    dest->z = src->z;
+    break;
+  case 2:
+    lon = (src->x - 90.)*M_PI/180.;
+    X = cos (lat)*sin (lon);
+    Z = sqrt (1. - X*X - Y*Y);
+    fmap_XYZ2xy (X, Y, Z, &x, &y);
+    dest->x = (1. + x/2.)*sim->physical_params.L;
+    dest->y = y/2.*sim->physical_params.L;
+    dest->z = src->z;
+    break;
+  case 3:
+    if (45. < fabs(src->x) && fabs(src->x) < 135.) {
+      lon = (src->x - 90.)*M_PI/180.;
+      lat = src->y*M_PI/180.;
+      Y = sin (lat);
+      X = cos (lat)*sin (lon);
+      Z = sqrt (1. - X*X - Y*Y);
+      fmap_XYZ2xy (X, Y, Z, &x, &y);
+      dest->x = (1. + x/2.)*sim->physical_params.L;
+      if (src->x < 0.)
+	dest->y = (1. + y/2.)*sim->physical_params.L;
+      else
+	dest->y = (1. - y/2.)*sim->physical_params.L;
+      dest->z = src->z;
+    }
+    else {
+      fmap_XYZ2xy (X, Y, fabs(Z), &x, &y);
+      if (src->x > -135. && src->x < 135.)
+	dest->x = (1. - y/2.)*sim->physical_params.L;
+      else
+	dest->x = (1. + y/2.)*sim->physical_params.L;
+      dest->y = (1. - x/2.)*sim->physical_params.L;
+      dest->z = src->z;
+    }
+    break;
+  case 4:
+    fmap_XYZ2xy (X, Y, fabs(Z), &x, &y);
+    dest->x = (2. - y/2.)*sim->physical_params.L;
+    dest->y = (1. - x/2.)*sim->physical_params.L;
+    dest->z = src->z;
+    break;
+  case 5:
+    lon = (src->x + 90.)*M_PI/180.;
+    X = cos (lat)*sin (lon);
+    Z = sqrt (1. - X*X - Y*Y);
+    fmap_XYZ2xy (X, Y, Z, &x, &y);
+    dest->x = (2. - y/2.)*sim->physical_params.L;
+    dest->y = (2. + x/2.)*sim->physical_params.L;
+    dest->z = src->z;
+    break;
+  case 6:
+    if (45. < fabs(src->x) && fabs(src->x) < 135.) {
+      lon = (src->x - 90.)*M_PI/180.;
+      lat = src->y*M_PI/180.;
+      Y = sin (lat);
+      X = cos (lat)*sin (lon);
+      Z = sqrt (1. - X*X - Y*Y);
+      fmap_XYZ2xy (X, Y, Z, &x, &y);
+      dest->y = (2. - x/2.)*sim->physical_params.L;
+      if (src->x < 0.)
+	dest->x = (3. + y/2.)*sim->physical_params.L;
+      else
+	dest->x = (3. - y/2.)*sim->physical_params.L;
+      dest->z = src->z;
+    }
+    else {
+      fmap_XYZ2xy (X, Y, fabs(Z), &x, &y);
+      if (src->x > -135. && src->x < 135.)
+	dest->y = (2. - y/2.)*sim->physical_params.L;
+      else
+	dest->y = (2. + y/2.)*sim->physical_params.L;
+      dest->x = (3. + x/2.)*sim->physical_params.L;
+      dest->z = src->z;
+    }
+    break;
+  default:
+    g_assert_not_reached ();
+  }
 }
 
 static void map_cubed_inverse (GfsMap * map, const FttVector * src, FttVector * dest)
@@ -367,11 +475,14 @@ static GfsMapClass * gfs_map_cubed_class (void)
   return klass;
 }
 
-/* GfsMetricCubed: Object */
+/**
+ * The 'cubed sphere' metric.
+ * \beginobject{GfsMetricCubed}
+ */
 
 static gdouble cubed_face_metric (const GfsDomain * domain, const FttCellFace * face)
 {
-  if (face->d/2 > 1)
+  if (face->d/2 > FTT_Y)
     return 1.;
   return GFS_VALUE (face->cell, GFS_METRIC_CUBED (domain->metric_data)->h[face->d]);
 }
@@ -397,6 +508,17 @@ static gdouble cubed_scale_metric (const GfsDomain * domain, const FttCell * cel
 	  GFS_VALUE (cell, GFS_METRIC_CUBED (domain->metric_data)->h[2*d + 1]))/2.;
 }
 
+static gdouble cubed_face_scale_metric (const GfsDomain * domain, const FttCellFace * face,
+					FttComponent c)
+{
+  if (c > FTT_Y)
+    return 1.;
+  /* fixme: here we assume that the metric is perfectly isotropic:
+     this is not strictly the case numerically (0.08% difference), but
+     is it the case theoretically? */
+  return GFS_VALUE (face->cell, GFS_METRIC_CUBED (domain->metric_data)->h[face->d]);
+}
+
 static void none (FttCell * parent, GfsVariable * v)
 {
 }
@@ -578,7 +700,7 @@ static void metric_cubed_read (GtsObject ** o, GtsFile * fp)
   }
 
   FttDirection d;
-  for (d = 0; d < FTT_NEIGHBORS; d++) {
+  for (d = 0; d < 4; d++) {
     gchar * name = g_strdup_printf ("%sh%d", a->name, d);
     cubed->h[d] = gfs_domain_get_or_add_variable (domain, name, "Cubed face metric");
     cubed->h[d]->fine_coarse = cubed->h[d]->coarse_fine = none;
@@ -598,6 +720,7 @@ static void metric_cubed_read (GtsObject ** o, GtsFile * fp)
   domain->cell_metric  = cubed_cell_metric;
   domain->solid_metric = cubed_solid_metric;
   domain->scale_metric = cubed_scale_metric;
+  domain->face_scale_metric = cubed_face_scale_metric;
 }
 
 static void metric_cubed_class_init (GtsObjectClass * klass)
@@ -627,6 +750,8 @@ GfsVariableClass * gfs_metric_cubed_class (void)
   return klass;
 }
 
+/** \endobject{GfsMetricCubed} */
+
 /* GfsMapLonLat: Header */
 
 typedef struct _GfsMapLonLat         GfsMapLonLat;
@@ -647,8 +772,6 @@ struct _GfsMapLonLat {
 
 static GfsMapClass * gfs_map_lonlat_class      (void);
 
-/* GfsMapLonLat: Object */
-
 static void gfs_map_lonlat_read (GtsObject ** o, GtsFile * fp)
 {
   /* this mapping cannot be used independently from GfsMetricLonLat */
@@ -674,15 +797,44 @@ static void map_lonlat_transform (GfsMap * map, const FttVector * src, FttVector
 
 static void map_lonlat_inverse (GfsMap * map, const FttVector * src, FttVector * dest)
 {
-  dest->x = src->x*180./(M_PI*GFS_MAP_LONLAT (map)->r);
+  double x = src->x*180./(M_PI*GFS_MAP_LONLAT (map)->r);
+
+  dest->x = x < -180. ? x + 360. : x > 180. ? x - 360. : x;
   dest->y = src->y*180./(M_PI*GFS_MAP_LONLAT (map)->r);
   dest->z = src->z;
 }
 
+static void map_lonlat_inverse_cell (GfsMap * map, const FttVector * src, FttVector * dest)
+{
+  gint i;
+  FttVector q;
+
+  q.x = (src[0].x + src[1].x)/2.;
+  q.y = (src[0].y + src[2].y)/2.;
+  q.z = 0.;
+
+  for (i = 0; i < 4; i++)
+    (* map->inverse) (map, &(src[i]), &(dest[i]));
+  
+  /* Fix for cells that contain the -180/180 degrees longitude line */
+  if (dest[0].x < dest[1].x)  {
+    (* map->inverse) (map, &q, &q);
+    if (q.x > dest[0].x) {
+      dest[0].x = 2.*q.x - dest[1].x;
+      dest[3].x = dest[0].x;
+    }
+    else {
+      dest[1].x = 2.*q.x - dest[0].x;
+      dest[2].x = dest[1].x;
+    }
+  }
+}
+
 static void gfs_map_lonlat_init (GfsMap * map)
 {
   map->transform = map_lonlat_transform;
   map->inverse =   map_lonlat_inverse;
+  map->inverse_cell = map_lonlat_inverse_cell;
   GFS_MAP_LONLAT (map)->r = 1.;
 }
 
@@ -706,7 +858,10 @@ static GfsMapClass * gfs_map_lonlat_class (void)
   return klass;
 }
 
-/* GfsMetricLonLat: Object */
+/**
+ * The longitude/latitude metric.
+ * \beginobject{GfsMetricLonLat}
+ */
 
 static void metric_lon_lat_write (GtsObject * o, FILE * fp)
 {
@@ -742,6 +897,14 @@ static gdouble lon_lat_scale_metric (const GfsDomain * domain, const FttCell * c
   return GFS_VALUE (cell, GFS_VARIABLE1 (domain->metric_data));
 }
 
+static gdouble lon_lat_face_scale_metric (const GfsDomain * domain, const FttCellFace * face, 
+					  FttComponent c)
+{
+  if (c != FTT_X)
+    return 1.;
+  return gfs_face_interpolated_value (face, GFS_VARIABLE1 (domain->metric_data)->i);
+}
+
 static void lonlat_coarse_fine (FttCell * parent, GfsVariable * a)
 {
   if (GFS_CELL_IS_BOUNDARY (parent))
@@ -779,8 +942,9 @@ static void lonlat_fine_coarse (FttCell * parent, GfsVariable * a)
   ftt_cell_children (parent, &child);
   gdouble va = 0.;
   for (n = 0; n < 4; n++)
+    /* fixme: won't work with solid boundaries */
     va += GFS_VALUE (child.c[n], a);
-  GFS_VALUE (parent, a) = va/4;
+  GFS_VALUE (parent, a) = va/4.;
 
   GFS_VALUE (parent, lonlat->h2) = (GFS_VALUE (child.c[0], lonlat->h2) +
 				    GFS_VALUE (child.c[1], lonlat->h2))/2.;
@@ -833,6 +997,7 @@ static void metric_lon_lat_read (GtsObject ** o, GtsFile * fp)
   domain->cell_metric  = lon_lat_cell_metric;
   domain->solid_metric = lon_lat_solid_metric;
   domain->scale_metric = lon_lat_scale_metric;
+  domain->face_scale_metric = lon_lat_face_scale_metric;
 }
 
 static void metric_lon_lat_class_init (GtsObjectClass * klass)
@@ -866,3 +1031,208 @@ GfsVariableClass * gfs_metric_lon_lat_class (void)
 
   return klass;
 }
+
+/** \endobject{GfsMetricLonLat} */
+
+/* GfsMapStretch: Header */
+
+#define GFS_IS_MAP_STRETCH(obj)         (gts_object_is_from_class (obj,\
+						 gfs_map_stretch_class ()))
+
+static GfsMapClass * gfs_map_stretch_class      (void);
+
+static void gfs_map_stretch_read (GtsObject ** o, GtsFile * fp)
+{
+  /* this mapping cannot be used independently from GfsMetricStretch */
+}
+
+static void gfs_map_stretch_write (GtsObject * o, FILE * fp)
+{
+  /* this mapping cannot be used independently from GfsMetricStretch */
+}
+
+static void gfs_map_stretch_class_init (GfsMapClass * klass)
+{
+  GTS_OBJECT_CLASS (klass)->read = gfs_map_stretch_read;
+  GTS_OBJECT_CLASS (klass)->write = gfs_map_stretch_write;
+}
+
+static void map_stretch_transform (GfsMap * map, const FttVector * src, FttVector * dest)
+{
+  GfsMetricStretch * m = GFS_DOMAIN (gfs_object_simulation (map))->metric_data;
+  dest->x = src->x/m->sx;
+  dest->y = src->y/m->sy;
+#if !FTT_2D
+  dest->z = src->z/m->sz;
+#endif
+}
+
+static void map_stretch_inverse (GfsMap * map, const FttVector * src, FttVector * dest)
+{
+  GfsMetricStretch * m = GFS_DOMAIN (gfs_object_simulation (map))->metric_data;
+  dest->x = src->x*m->sx;
+  dest->y = src->y*m->sy;
+#if !FTT_2D
+  dest->z = src->z*m->sz;
+#endif
+}
+
+static void gfs_map_stretch_init (GfsMap * map)
+{
+  map->transform = map_stretch_transform;
+  map->inverse =   map_stretch_inverse;
+}
+
+static GfsMapClass * gfs_map_stretch_class (void)
+{
+  static GfsMapClass * klass = NULL;
+
+  if (klass == NULL) {
+    GtsObjectClassInfo gfs_map_stretch_info = {
+      "GfsMapStretch",
+      sizeof (GfsMap),
+      sizeof (GfsMapClass),
+      (GtsObjectClassInitFunc) gfs_map_stretch_class_init,
+      (GtsObjectInitFunc) gfs_map_stretch_init,
+      (GtsArgSetFunc) NULL,
+      (GtsArgGetFunc) NULL
+    };
+    klass = gts_object_class_new (GTS_OBJECT_CLASS (gfs_map_class ()), &gfs_map_stretch_info);
+  }
+
+  return klass;
+}
+
+/**
+ * The "stretch" metric.
+ * \beginobject{GfsMetricStretch}
+ */
+
+static void metric_stretch_write (GtsObject * o, FILE * fp)
+{
+  (* GTS_OBJECT_CLASS (gfs_metric_stretch_class ())->parent_class->write) (o, fp);
+
+  fprintf (fp, " { sx = %g sy = %g sz = %g }",
+	   GFS_METRIC_STRETCH (o)->sx, 
+	   GFS_METRIC_STRETCH (o)->sy,
+	   GFS_METRIC_STRETCH (o)->sz);
+}
+
+static gdouble stretch_face_metric (const GfsDomain * domain, const FttCellFace * face)
+{ 
+  GfsMetricStretch * s = GFS_METRIC_STRETCH (domain->metric_data);
+  switch (face->d/2) {
+#if FTT_2D
+  case FTT_X: return s->sy;
+  case FTT_Y: return s->sx;
+#else
+  case FTT_X: return s->sy*s->sz;
+  case FTT_Y: return s->sx*s->sz;
+  case FTT_Z: return s->sx*s->sy;
+#endif
+  default: g_assert_not_reached ();
+  }
+}
+
+static gdouble stretch_cell_metric (const GfsDomain * domain, const FttCell * cell)
+{
+  GfsMetricStretch * s = GFS_METRIC_STRETCH (domain->metric_data);
+#if FTT_2D
+  return s->sx*s->sy;
+#else
+  return s->sx*s->sy*s->sz;
+#endif
+}
+
+static gdouble stretch_solid_metric (const GfsDomain * domain, const FttCell * cell)
+{
+  g_assert_not_implemented ();
+  return 1;
+}
+
+static gdouble stretch_scale_metric (const GfsDomain * domain, const FttCell * cell, FttComponent c)
+{
+  return (&GFS_METRIC_STRETCH (domain->metric_data)->sx)[c];
+}
+
+static gdouble stretch_face_scale_metric (const GfsDomain * domain, const FttCellFace * face,
+					  FttComponent c)
+{
+  return (&GFS_METRIC_STRETCH (domain->metric_data)->sx)[c];
+}
+
+static void metric_stretch_read (GtsObject ** o, GtsFile * fp)
+{
+  (* GTS_OBJECT_CLASS (gfs_metric_stretch_class ())->parent_class->read) (o, fp);
+  if (fp->type == GTS_ERROR)
+    return;
+
+  GfsDomain * domain = GFS_DOMAIN (gfs_object_simulation (*o));
+  if (domain->metric_data || domain->face_metric || domain->cell_metric || domain->solid_metric) {
+    gts_file_error (fp, "cannot use multiple metrics (yet)");
+    return;
+  }
+
+  GfsMetricStretch * s = GFS_METRIC_STRETCH (*o);
+  if (fp->type == '{') {
+    GtsFileVariable var[] = {
+      {GTS_DOUBLE, "sx", TRUE, &s->sx},
+      {GTS_DOUBLE, "sy", TRUE, &s->sy},
+      {GTS_DOUBLE, "sz", TRUE, &s->sz},
+      {GTS_NONE}
+    };
+    gts_file_assign_variables (fp, var);
+    if (fp->type == GTS_ERROR)
+      return;
+    if (s->sx <= 0. || s->sy <= 0. || s->sz <= 0.) {
+      gts_file_error (fp, "stretching factors must be strictly positive");
+      return;
+    }
+  }
+
+  GtsObject * map = gts_object_new (GTS_OBJECT_CLASS (gfs_map_stretch_class ()));
+  gfs_object_simulation_set (map, domain);
+  gts_container_add (GTS_CONTAINER (GFS_SIMULATION (domain)->maps), GTS_CONTAINEE (map));
+
+  domain->metric_data = *o;
+  domain->face_metric  = stretch_face_metric;
+  domain->cell_metric  = stretch_cell_metric;
+  domain->solid_metric = stretch_solid_metric;
+  domain->scale_metric = stretch_scale_metric;
+  domain->face_scale_metric = stretch_face_scale_metric;
+}
+
+static void metric_stretch_class_init (GtsObjectClass * klass)
+{
+  klass->read = metric_stretch_read;
+  klass->write = metric_stretch_write;
+}
+
+static void metric_stretch_init (GfsMetricStretch * m)
+{
+  GFS_EVENT (m)->istep = 1;
+  m->sx = m->sy = m->sz = 1.;
+}
+
+GfsEventClass * gfs_metric_stretch_class (void)
+{
+  static GfsEventClass * klass = NULL;
+
+  if (klass == NULL) {
+    GtsObjectClassInfo gfs_metric_stretch_info = {
+      "GfsMetricStretch",
+      sizeof (GfsMetricStretch),
+      sizeof (GfsEventClass),
+      (GtsObjectClassInitFunc) metric_stretch_class_init,
+      (GtsObjectInitFunc) metric_stretch_init,
+      (GtsArgSetFunc) NULL,
+      (GtsArgGetFunc) NULL
+    };
+    klass = gts_object_class_new (GTS_OBJECT_CLASS (gfs_event_class ()),
+				  &gfs_metric_stretch_info);
+  }
+
+  return klass;
+}
+
+/** \endobject{GfsMetricStretch} */
diff --git a/src/metric.h b/src/metric.h
index e2d6c36..5aeec62 100644
--- a/src/metric.h
+++ b/src/metric.h
@@ -42,7 +42,7 @@ struct _GfsMetricCubed {
   GfsVariable parent;
 
   /*< public >*/
-  GfsVariable * h[FTT_NEIGHBORS];
+  GfsVariable * h[4];
   gint level;
 };
 
@@ -75,6 +75,26 @@ struct _GfsMetricLonLat {
 
 GfsVariableClass * gfs_metric_lon_lat_class  (void);
 
+/* GfsMetricStretch: Header */
+
+typedef struct _GfsMetricStretch GfsMetricStretch;
+
+struct _GfsMetricStretch {
+  /*< private >*/
+  GfsEvent parent;
+
+  /*< public >*/
+  gdouble sx, sy, sz;
+};
+
+#define GFS_METRIC_STRETCH(obj)            GTS_OBJECT_CAST (obj,\
+					           GfsMetricStretch,\
+					           gfs_metric_stretch_class ())
+#define GFS_IS_METRIC_STRETCH(obj)         (gts_object_is_from_class (obj,\
+						   gfs_metric_stretch_class ()))
+
+GfsEventClass * gfs_metric_stretch_class  (void);
+
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */
diff --git a/src/moving.c b/src/moving.c
index 4591891..b6e44d4 100644
--- a/src/moving.c
+++ b/src/moving.c
@@ -16,6 +16,9 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
  * 02111-1307, USA.  
  */
+/*! \file
+ * \brief Moving solid boundaries.
+ */
 
 #include <stdlib.h>
 #include <math.h>
@@ -45,10 +48,54 @@ typedef struct {
 
 #include "moving2.c"
 
+/* GfsNumberedVertex: Object */
+
+static void numbered_vertex_read (GtsObject ** o, GtsFile * f)
+{
+  static glong count = 0;
+
+  (* GTS_OBJECT_CLASS (gfs_numbered_vertex_class ())->parent_class->read) (o, f);
+
+  GfsNumberedVertex * v = GFS_NUMBERED_VERTEX (*o);
+  v->num = count++;
+}
+
+static void numbered_vertex_class_init (GtsObjectClass * klass)
+{
+  klass->read = numbered_vertex_read;
+}
+
+GtsVertexClass * gfs_numbered_vertex_class (void)
+{
+  static GtsVertexClass * klass = NULL;
+
+  if (klass == NULL) {
+    GtsObjectClassInfo numbered_vertex_info = {
+      "GfsNumberedVertex",
+      sizeof (GfsNumberedVertex),
+      sizeof (GtsVertexClass),
+      (GtsObjectClassInitFunc) numbered_vertex_class_init,
+      (GtsObjectInitFunc) NULL,
+      (GtsArgSetFunc) NULL,
+      (GtsArgGetFunc) NULL
+    };
+    klass = gts_object_class_new (GTS_OBJECT_CLASS (gts_vertex_class ()),
+				  &numbered_vertex_info);
+  }
+
+  return klass;
+}
+
+/**
+ * Moving solid boundaries.
+ * \beginobject{GfsSolidMoving}
+ */
+
 typedef struct {
   GfsSimulation * sim;
   GfsSolidMoving * s;
   GfsVariable * old_solid_v, ** sold2, ** v;
+  GArray * stmp, * sall;
 } SolidInfo;
 
 static double surface_value (FttCell * cell, GfsVariable * v, FttVector * ca)
@@ -124,6 +171,42 @@ static void moving_cell_coarse_fine (FttCell * cell, GfsVariable * v)
   }
 }
 
+static void moving_vof_cell_coarse_fine (FttCell * cell, GfsVariable * v)
+{
+  FttCell * parent = ftt_cell_parent (cell);
+  GfsVariableTracerVOF * t = GFS_VARIABLE_TRACER_VOF (v);
+  gdouble f = GFS_VALUE (parent, v);
+  FttComponent c;
+  guint i;
+
+  if (GFS_IS_FULL (f)) {
+    GFS_VALUE (cell, v) = f;
+    for (c = 1; c < FTT_DIMENSION; c++)
+	GFS_VALUE (cell, t->m[c]) = 0.;
+      GFS_VALUE (cell, t->m[0]) = 1.;
+      GFS_VALUE (cell, t->alpha) = f;
+  }
+  else {
+    gdouble alpha = GFS_VALUE (parent, t->alpha);
+    FttVector m;
+
+    for (i = 0; i < FTT_DIMENSION; i++)
+      (&m.x)[i] = GFS_VALUE (parent, t->m[i]);
+
+    gdouble alpha1 = alpha;
+
+    FttVector p;
+
+    ftt_cell_relative_pos (cell, &p);
+    for (c = 0; c < FTT_DIMENSION; c++) {
+      alpha1 -= (&m.x)[c]*(0.25 + (&p.x)[c]);
+      GFS_VALUE (cell, t->m[c]) = (&m.x)[c];
+    }
+    GFS_VALUE (cell, v) = gfs_plane_volume (&m, 2.*alpha1);
+    GFS_VALUE (cell, t->alpha) = 2.*alpha1;
+  }
+}
+
 static void moving_cell_init (FttCell * cell, SolidInfo * solid_info)
 {
   GSList * i;
@@ -139,9 +222,10 @@ static void moving_cell_init (FttCell * cell, SolidInfo * solid_info)
     
     if (v->coarse_fine == (GfsVariableFineCoarseFunc) gfs_cell_coarse_fine)
       moving_cell_coarse_fine (cell, v);
-    /* these are variables specific to moving solid boudaries */
-    else if (v->coarse_fine != sold2_fine_init && v != old_solid_v)
-      g_assert_not_implemented ();
+
+    if (GFS_IS_VARIABLE_TRACER_VOF (v))
+      moving_vof_cell_coarse_fine (cell, v);
+
     i = i->next;
   }
 
@@ -201,6 +285,137 @@ static void create_new_cells (FttCell * cell, GfsSurface * s, SolidInfo * solid_
 		     (FttCellInitFunc) gfs_cell_fine_init, solid_info->sim);
 }
 
+static FttVector rpos[FTT_NEIGHBORS] = {
+#if FTT_2D
+  {1.,0.,0.}, {-1.,0.,0.}, {0.,1.,0.}, {0.,-1.,0.}
+#else  /* FTT_3D */
+  {1.,0.,0.}, {-1.,0.,0.}, {0.,1.,0.}, {0.,-1.,0.}, {0.,0.,1.}, {0.,0.,-1.}
+#endif /* FTT_3D */
+};
+
+static void match (FttCell * cell, GfsBoundary * boundary)
+{
+  FttCell * neighbor = ftt_cell_neighbor (cell, boundary->d);
+  FttCell * parent = ftt_cell_parent (cell);
+  guint level = ftt_cell_level (cell);
+
+  cell->flags |= GFS_FLAG_BOUNDARY;
+  if (parent && GFS_CELL_IS_GRADIENT_BOUNDARY (parent))
+    cell->flags |= GFS_FLAG_GRADIENT_BOUNDARY;
+  if (neighbor == NULL || ftt_cell_level (neighbor) < level) {
+    if (FTT_CELL_IS_ROOT (cell))
+      g_log (G_LOG_DOMAIN, G_LOG_LEVEL_ERROR,
+	     "root cell is entirely outside of the fluid domain\n"
+	     "the solid surface orientation may be incorrect");
+    ftt_cell_destroy (cell, (FttCellCleanupFunc) gfs_cell_cleanup, gfs_box_domain (boundary->box));
+    boundary->changed = TRUE;
+    return;
+  }
+  if (ftt_cell_level (neighbor) == level) {
+    GfsSolidVector * s = GFS_STATE (neighbor)->solid;
+
+    if (s && s->s[FTT_OPPOSITE_DIRECTION (boundary->d)] == 0.) {
+      if (FTT_CELL_IS_ROOT (cell))
+	g_log (G_LOG_DOMAIN, G_LOG_LEVEL_ERROR,
+	       "root cell is entirely outside of the fluid domain\n"
+	       "the solid surface orientation may be incorrect");
+      ftt_cell_destroy (cell, (FttCellCleanupFunc) gfs_cell_cleanup,
+			gfs_box_domain (boundary->box));
+      boundary->changed = TRUE;
+      return;
+    }
+    if (s) {
+      FttDirection d;
+      FttComponent c;
+      GfsSolidVector * t;
+
+      if (GFS_STATE (cell)->solid == NULL)
+	GFS_STATE (cell)->solid = g_malloc0 (sizeof (GfsSolidVector));
+      t = GFS_STATE (cell)->solid;
+      t->a = s->a;
+      for (d = 0; d < FTT_NEIGHBORS; d++)
+	if (d/2 == boundary->d/2)
+	  t->s[d] = s->s[FTT_OPPOSITE_DIRECTION (d)];
+	else
+	  t->s[d] = s->s[d];
+      for (c = 0; c < FTT_DIMENSION; c++)
+	if (c == boundary->d/2) {
+	  FttVector p1, p2;
+	  ftt_cell_pos (cell, &p1);
+	  ftt_cell_pos (neighbor, &p2);
+	  (&t->cm.x)[c] = (&p1.x)[c] + (&p2.x)[c] - (&s->cm.x)[c];
+	  (&t->ca.x)[c] = (&p1.x)[c] + (&p2.x)[c] - (&s->ca.x)[c];
+	}
+	else {
+	  (&t->cm.x)[c] = (&s->cm.x)[c];
+	  (&t->ca.x)[c] = (&s->ca.x)[c];
+	}
+    }
+    else if (GFS_STATE (cell)->solid != NULL) {
+      g_free (GFS_STATE (cell)->solid);
+      GFS_STATE (cell)->solid = NULL;
+    }      
+    if (FTT_CELL_IS_LEAF (cell) && !FTT_CELL_IS_LEAF (neighbor)) {
+      GfsDomain * domain = gfs_box_domain (boundary->box);
+      ftt_cell_refine_single (cell, domain->cell_init, domain->cell_init_data);
+      boundary->changed = TRUE;
+    }
+  }
+  else
+    g_assert_not_reached ();
+  if (!FTT_CELL_IS_LEAF (cell))
+    level++;
+  if (level > boundary->depth)
+    boundary->depth = level;
+}
+
+static void boundary_match (GfsBoundary * boundary)
+{
+  guint l = ftt_cell_level (boundary->root);
+
+  boundary->changed = FALSE;
+  boundary->depth = l;
+  while (l <= boundary->depth) {
+    ftt_cell_traverse_boundary (boundary->root, boundary->d,
+				FTT_PRE_ORDER, FTT_TRAVERSE_LEVEL, l,
+				(FttCellTraverseFunc) match, boundary);
+    l++;
+  }
+  if (boundary->changed)
+    ftt_cell_flatten (boundary->root, boundary->d, (FttCellCleanupFunc) gfs_cell_cleanup, 
+		      gfs_box_domain (boundary->box));
+}
+
+static void renew_boundary (GfsBox * box, GfsSimulation * sim)
+{
+  GfsDomain * domain = GFS_DOMAIN(sim);
+  FttDirection d;
+  FttVector pos;
+  gdouble size;
+  
+  for (d = 0; d < FTT_NEIGHBORS; d++)
+    if (GFS_IS_BOUNDARY (box->neighbor[d])) {
+      GfsBoundary * boundary = GFS_BOUNDARY (box->neighbor[d]);
+
+      /* Expensive but case independent fix */
+
+      ftt_cell_destroy (boundary->root, (FttCellCleanupFunc) gfs_cell_cleanup, domain);
+      
+      domain = gfs_box_domain (box);
+      boundary->root = ftt_cell_new ((FttCellInitFunc) gfs_cell_init, domain);
+      FTT_ROOT_CELL (boundary->root)->parent = box;
+      ftt_cell_set_level (boundary->root, ftt_cell_level (box->root));
+      ftt_cell_set_neighbor_match (boundary->root, box->root, boundary->d, (FttCellInitFunc) gfs_cell_init, domain);
+      ftt_cell_pos (box->root, &pos);
+      size = ftt_cell_size (box->root);
+      pos.x += rpos[d].x*size;
+      pos.y += rpos[d].y*size;
+      pos.z += rpos[d].z*size;
+      ftt_cell_set_pos (boundary->root, &pos);
+      boundary_match (boundary);
+    }
+}
+
 static void remesh_surface_moving (GfsSimulation * sim, GfsSolidMoving * s)
 {
   GfsDomain * domain = GFS_DOMAIN (sim);
@@ -213,6 +428,9 @@ static void remesh_surface_moving (GfsSimulation * sim, GfsSolidMoving * s)
   gfs_domain_traverse_cut (domain, GFS_SOLID (s)->s,
 			   FTT_POST_ORDER, FTT_TRAVERSE_LEAFS | FTT_TRAVERSE_DESTROYED,
 			   (FttCellTraverseCutFunc) create_new_cells, &solid_info);
+
+  if (domain->pid >= 0)
+    gts_container_foreach (GTS_CONTAINER (domain), (GtsFunc) renew_boundary, sim);
 }
 
 static void solid_moving_destroy (GtsObject * object)
@@ -224,12 +442,16 @@ static void solid_moving_destroy (GtsObject * object)
 static void solid_moving_read (GtsObject ** o, GtsFile * fp)
 {
   GfsSolidMoving * solid = GFS_SOLID_MOVING (*o);
-  
+
+  GFS_SURFACE (GFS_SOLID (solid)->s)->vertex_class = gfs_numbered_vertex_class ();
+
   if (GTS_OBJECT_CLASS (gfs_solid_moving_class ())->parent_class->read)
     (* GTS_OBJECT_CLASS (gfs_solid_moving_class ())->parent_class->read) 
       (o, fp);
   if (fp->type == GTS_ERROR)
     return;
+  
+  solid->nvertex = gts_surface_vertex_number (GFS_SURFACE (GFS_SOLID (solid)->s)->s);
 
   if (!GFS_IS_SURFACE (GFS_SOLID (solid)->s) || !GFS_SURFACE (GFS_SOLID (solid)->s)->s) {
     gts_file_error (fp, "moving implicit surfaces are not implemented yet");
@@ -552,9 +774,7 @@ static void moving_init (GfsSimulation * sim)
   sim->advection_params.update = (GfsMergedTraverseFunc) moving_advection_update;
 
   while (i) {
-    if (GFS_IS_VARIABLE_TRACER_VOF (i->data))
-      g_assert_not_implemented ();
-    else if (GFS_IS_VARIABLE_TRACER (i->data)) {
+    if (GFS_IS_VARIABLE_TRACER (i->data)) {
       GfsAdvectionParams * par = &GFS_VARIABLE_TRACER (i->data)->advection;
       if (sim->advection_params.moving_order == 2)
 	par->flux = moving_face_advection_flux;
@@ -610,10 +830,15 @@ GfsEventClass * gfs_solid_moving_class (void)
   return klass;
 }
 
-/* GfsMovingRun: Object */
+/** \endobject{GfsSolidMoving} */
 
 #define MOVING_CFL 0.45
 
+/**
+ * Euler solver with moving solid boundaries.
+ * \beginobject{GfsSimulationMoving}
+ */
+
 static void set_dtmax (FttCell * cell, SolidInfo * p)
 {
   gdouble size = ftt_cell_size (cell);
@@ -641,20 +866,53 @@ static void simulation_moving_set_timestep (GfsSimulation * sim)
   sim->time.dtmax = dtmax;
 }
 
-static void move_vertex (GtsPoint * p, SolidInfo * par)
+static void move_vertex (GfsNumberedVertex * v, SolidInfo * par)
 { 
+  GtsPoint * p = &GTS_VERTEX(v)->p;
   FttVector pos = *((FttVector *) &p->x);
   FttCell * cell = gfs_domain_locate (GFS_DOMAIN (par->sim), pos, -2, NULL);
+  FttComponent c;
+
   if (cell) {
     gdouble dt = par->sim->advection_params.dt;
-    FttComponent c;
     for (c = 0; c < FTT_DIMENSION; c++)
       (&p->x)[c] += surface_value (cell, par->v[c], &pos)*dt;
   }
-  else
-    g_warning ("point %g,%g not in domain", pos.x, pos.y);
 }
 
+#ifdef HAVE_MPI
+
+static void move_vertex_mpi (GfsNumberedVertex * v, SolidInfo * par)
+{ 
+  GtsPoint * p = &GTS_VERTEX(v)->p;
+  FttVector pos = *((FttVector *) &p->x);
+  FttCell * cell = gfs_domain_locate (GFS_DOMAIN (par->sim), pos, -2, NULL);
+  FttComponent c;
+
+  if (cell) {
+    gdouble dt = par->sim->advection_params.dt;
+    for (c = 0; c < FTT_DIMENSION; c++) { 
+      (&p->x)[c] += surface_value (cell, par->v[c], &pos)*dt;
+      g_array_index(par->stmp, double, FTT_DIMENSION*v->num+c) = (&p->x)[c];
+    }  
+  }
+  else {
+    for (c = 0; c < FTT_DIMENSION; c++)
+      g_array_index(par->stmp,double,FTT_DIMENSION*v->num+c) = -G_MAXDOUBLE;
+  }
+}
+
+static void synchronize_vertex (GfsNumberedVertex * v, SolidInfo * par)
+{
+  GtsPoint * p = &GTS_VERTEX(v)->p;
+  FttComponent c;
+
+  for (c = 0; c < FTT_DIMENSION; c++)
+    (&p->x)[c] = g_array_index(par->sall,double,FTT_DIMENSION*v->num+c);
+}
+
+#endif /* HAVE_MPI */
+
 static void solid_move_remesh (GfsSolidMoving * solid, GfsSimulation * sim)
 {
   GfsSurface * surface = GFS_SURFACE (GFS_SOLID (solid)->s);
@@ -663,7 +921,24 @@ static void solid_move_remesh (GfsSolidMoving * solid, GfsSimulation * sim)
     p.sim = sim;
     p.s = solid;
     p.v = gfs_domain_velocity (GFS_DOMAIN (sim));
-    gts_surface_foreach_vertex (surface->s, (GtsFunc) move_vertex, &p);
+
+#ifdef HAVE_MPI
+    if (GFS_DOMAIN (sim)->pid >= 0) { /* Parallel simulation */
+      p.stmp = g_array_set_size ( g_array_new (FALSE, FALSE, sizeof (double)) , FTT_DIMENSION*solid->nvertex);
+      p.sall = g_array_set_size ( g_array_new (FALSE, FALSE, sizeof (double)) , FTT_DIMENSION*solid->nvertex);
+
+      gts_surface_foreach_vertex (surface->s, (GtsFunc) move_vertex_mpi, &p);
+
+      MPI_Allreduce (p.stmp->data, p.sall->data, p.stmp->len, MPI_DOUBLE, MPI_MAX, MPI_COMM_WORLD);
+      
+      gts_surface_foreach_vertex (surface->s, (GtsFunc) synchronize_vertex, &p);
+      
+      g_array_free (p.stmp, FALSE);
+      g_array_free (p.sall, FALSE);
+    }
+    else
+#endif /* HAVE_MPI */
+      gts_surface_foreach_vertex (surface->s, (GtsFunc) move_vertex, &p);
   }
   else
     /* implicit surface */
@@ -974,3 +1249,5 @@ GfsSimulationClass * gfs_simulation_moving_class (void)
 
   return klass;
 }
+
+/** \endobject{GfsSimulationMoving} */
diff --git a/src/moving.h b/src/moving.h
index 7ec87ce..4101c22 100644
--- a/src/moving.h
+++ b/src/moving.h
@@ -30,6 +30,25 @@
 extern "C" {
 #endif /* __cplusplus */
 
+/* GfsNumberedVertex: Header */
+
+typedef struct _GfsNumberedVertex        GfsNumberedVertex;
+
+#define GFS_IS_NUMBERED_VERTEX(obj)   (gts_object_is_from_class (obj,\
+								 gfs_numbered_vertex_class ()))
+#define GFS_NUMBERED_VERTEX(obj)             GTS_OBJECT_CAST (obj,\
+						     GfsNumberedVertex,\
+						     gfs_numbered_vertex_class ())
+
+struct _GfsNumberedVertex {
+  GtsVertex parent;
+  glong num;
+};
+
+GtsVertexClass * gfs_numbered_vertex_class          (void);
+
+/* GfsSolidMoving: Header */
+
 typedef struct _GfsSolidMoving         GfsSolidMoving;
 
 struct _GfsSolidMoving {
@@ -39,6 +58,7 @@ struct _GfsSolidMoving {
   /*< public >*/
   GfsFunction * level;
   gboolean active;
+  glong nvertex;
 };
 
 GfsEventClass * gfs_solid_moving_class (void);
diff --git a/src/mpi_boundary.c b/src/mpi_boundary.c
index 2deefd1..60956ef 100644
--- a/src/mpi_boundary.c
+++ b/src/mpi_boundary.c
@@ -16,12 +16,20 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
  * 02111-1307, USA.  
  */
+/*! \file
+ * \brief Parallel boundary conditions.
+ */
 
 #include <stdlib.h>
 #include "domain.h"
 #include "mpi_boundary.h"
 #include "adaptive.h"
 
+/**
+ * Parallel boundary.
+ * \beginobject{GfsBoundaryMpi}
+ */
+
 static void boundary_mpi_write (GtsObject * o, FILE * fp)
 {
   (* GTS_OBJECT_CLASS (gfs_boundary_mpi_class ())->parent_class->write) (o, fp);
@@ -301,3 +309,5 @@ GfsBoundaryMpi * gfs_boundary_mpi_new (GfsBoundaryClass * klass,
 
   return boundary;
 }
+
+/** \endobject{GfsBoundaryMpi} */
diff --git a/src/ocean.c b/src/ocean.c
index 8f27014..ace40bd 100644
--- a/src/ocean.c
+++ b/src/ocean.c
@@ -17,6 +17,9 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
  * 02111-1307, USA.  
  */
+/*! \file
+ * \brief The linearised shallow-water solver.
+ */
 
 #include <stdlib.h>
 
@@ -29,6 +32,11 @@
 
 #include "solid.h"
 
+/**
+ * The linearised shallow-water solver.
+ * \beginobject{GfsOcean}
+ */
+
 static void reset_gradients (FttCell * cell, gpointer * data)
 {
   GfsVariable ** g = data[0];
@@ -36,7 +44,7 @@ static void reset_gradients (FttCell * cell, gpointer * data)
   FttComponent c;
 
   for (c = 0; c < *dimension; c++)
-    GFS_VARIABLE (cell, g[c]->i) = 0.;
+    GFS_VALUE (cell, g[c]) = 0.;
 }
 
 static void correct_normal_velocity (FttCellFace * face,
@@ -57,17 +65,17 @@ static void correct_normal_velocity (FttCellFace * face,
   c = face->d/2;
 
   gfs_face_gradient (face, &g, p->i, -1);
-  dp = (g.b - g.a*GFS_VARIABLE (face->cell, p->i))/ftt_cell_size (face->cell);
+  dp = (g.b - g.a*GFS_VALUE (face->cell, p))/ftt_cell_size (face->cell);
   if (!FTT_FACE_DIRECT (face))
     dp = - dp;
 
   GFS_FACE_NORMAL_VELOCITY_LEFT (face) -= dp*(*dt);
-  GFS_VARIABLE (face->cell, gv[c]->i) += dp;
+  GFS_VALUE (face->cell, gv[c]) += dp;
 
   if (ftt_face_type (face) == FTT_FINE_COARSE)
     dp *= GFS_FACE_FRACTION_LEFT (face)/(GFS_FACE_FRACTION_RIGHT (face)*FTT_CELLS/2);
   GFS_FACE_NORMAL_VELOCITY_RIGHT (face) -= dp*(*dt);
-  GFS_VARIABLE (face->neighbor, gv[c]->i) += dp;
+  GFS_VALUE (face->neighbor, gv[c]) += dp;
 }
 
 static void scale_gradients (FttCell * cell, gpointer * data)
@@ -82,7 +90,7 @@ static void scale_gradients (FttCell * cell, gpointer * data)
     FttCell * c1 = n.c[2*c], * c2 = n.c[2*c + 1];
     
     if (c1 && c2 && !GFS_CELL_IS_GRADIENT_BOUNDARY (c1) && !GFS_CELL_IS_GRADIENT_BOUNDARY (c2))
-      GFS_VARIABLE (cell, g[c]->i) /= 2.;
+      GFS_VALUE (cell, g[c]) /= 2.;
   }
 }
 
@@ -169,6 +177,35 @@ static void scale_divergence_helmoltz (FttCell * cell, FreeSurfaceParams * p)
     c*GFS_VARIABLE (cell, p->pn->i);
 }
 
+#if !FTT_2D
+static void merge_pressures (GSList * merged, GfsVariable * v)
+{
+  if (merged->next != NULL) {
+    /* average value */
+    GSList * i = merged;
+    gdouble w = 0., total_area = 0.;
+
+    while (i) {
+      FttCell * cell = i->data;
+      GfsSolidVector * solid = GFS_STATE (cell)->solid;
+      gdouble h = ftt_cell_size (cell);
+      gdouble area = h*h*solid->s[FTT_FRONT];
+      total_area += area;
+      w += area*GFS_VALUE (cell, v);
+      i = i->next;
+    }
+    w /= total_area;
+
+    i = merged;
+    while (i) {
+      FttCell * cell = i->data;
+      GFS_VALUE (cell, v) = w;
+      i = i->next;
+    }
+  }
+}
+#endif /* 3D */
+
 /**
  * gfs_free_surface_pressure:
  * @toplayer: a #GfsDomain.
@@ -211,26 +248,11 @@ static void gfs_free_surface_pressure (GfsDomain * toplayer,
   			    (FttCellTraverseFunc) scale_divergence_helmoltz, &fp);
   
   /* solve for pressure */
-  par->depth = gfs_domain_depth (toplayer);
-  gfs_residual (toplayer, 2, FTT_TRAVERSE_LEAFS, -1, p, fp.div, fp.dia, res1);
-  par->residual_before = par->residual = 
-    gfs_domain_norm_residual (toplayer, FTT_TRAVERSE_LEAFS, -1, apar->dt, res1);
-  par->niter = 0;
   par->dimension = 2;
-  while (par->niter < par->nitermin ||
-	 (par->residual.infty > par->tolerance && par->niter < par->nitermax)) {
-#if 0
-    fprintf (stderr, "%d bias: %g first: %g second: %g infty: %g\n",
-	     par->niter, 
-	     par->residual.bias, 
-	     par->residual.first, 
-	     par->residual.second, 
-	     par->residual.infty);
+  par->poisson_solve (toplayer, par, p, fp.div, res1, fp.dia, apar->dt);
+#if !FTT_2D
+  gfs_domain_traverse_merged (toplayer, (GfsMergedTraverseFunc) merge_pressures, p);
 #endif
-    gfs_poisson_cycle (toplayer, par, p, fp.div, fp.dia, res1);
-    par->residual = gfs_domain_norm_residual (toplayer, FTT_TRAVERSE_LEAFS, -1, apar->dt, res1);
-    par->niter++;
-  }
 
   if (!res)
     gts_object_destroy (GTS_OBJECT (res1));
@@ -239,8 +261,6 @@ static void gfs_free_surface_pressure (GfsDomain * toplayer,
 
 #if FTT_2D
 
-/* GfsOcean: Object */
-
 static void normal_velocities (GfsDomain * domain, GfsVariable ** u)
 {
   g_return_if_fail (domain != NULL);
@@ -298,7 +318,7 @@ static void ocean_run (GfsSimulation * sim)
 
     gts_container_foreach (GTS_CONTAINER (sim->events), (GtsFunc) gfs_event_half_do, sim);
 
-    gfs_poisson_coefficients (domain, fH);
+    gfs_poisson_coefficients (domain, fH, TRUE, TRUE);
     gfs_correct_normal_velocities_weighted (domain, 2, p, g, 0., 
 					    sim->approx_projection_params.weighted);
     gfs_centered_velocity_advection_diffusion (domain, 2,
@@ -376,9 +396,7 @@ GfsSimulationClass * gfs_ocean_class (void)
   return klass;
 }
 
-#else /* 2D3 or 3D */
-
-/* GfsOcean: Object */
+#else /* 3D */
 
 #define MAC 0
 
@@ -401,28 +419,23 @@ static void ocean_destroy (GtsObject * object)
 
 static void ocean_read (GtsObject ** object, GtsFile * fp)
 {
-#if !FTT_2D3
   /* fixme: lambda.z cannot be changed */
   GfsSimulation * sim = GFS_SIMULATION (*object);
   GFS_DOMAIN (sim)->lambda.z = 1./(1 << MAXLEVEL);
-#endif
 
   (* GTS_OBJECT_CLASS (gfs_ocean_class ())->parent_class->read) (object, fp);
   if (fp->type == GTS_ERROR)
     return;
 
   GFS_DOMAIN (*object)->refpos.z = -0.5;
-#if !FTT_2D3
   g_assert (GFS_DOMAIN (sim)->lambda.z == 1./(1 << MAXLEVEL));
   sim->physical_params.g /= sim->physical_params.L/* *GFS_DOMAIN (sim)->lambda.z*/;
   GfsVariable * H = gfs_variable_from_name (GFS_DOMAIN (sim)->variables, "H");
   g_assert (H);
-  H->units = 1. - log(/*GFS_DOMAIN (sim)->lambda.z*/1.)/log(sim->physical_params.L);
+  H->units = 1.;
   GFS_DOMAIN (sim)->lambda.z = 1./(1 << MAXLEVEL);
-#endif
 }
 
-#if !FTT_2D3
 static void ocean_write (GtsObject * object, FILE * fp)
 {
   FttVector * lambda = &GFS_DOMAIN (object)->lambda;
@@ -435,7 +448,6 @@ static void ocean_write (GtsObject * object, FILE * fp)
   lambda->z /= 1 << MAXLEVEL;
   p->g = g;
 }
-#endif /* 3D */
 
 static void new_layer (GfsOcean * ocean)
 {
@@ -507,10 +519,9 @@ static void compute_div (FttCell * c, GfsVariable * W)
 {
   guint level = ftt_cell_level (c);
   gdouble wf = 0., size = ftt_cell_size (c);
-#if !FTT_2D3
+
   g_assert (level <= MAXLEVEL);
   size *= 1 << (MAXLEVEL - level);
-#endif
 
   while (c) {
     GfsStateVector * s = GFS_STATE (c);
@@ -534,19 +545,16 @@ static gdouble height (FttCell * cell)
   if (!GFS_IS_MIXED (cell))
     return 1.;
   gdouble f = GFS_STATE (cell)->solid->s[FTT_FRONT];
-  g_assert (f);
-#if FTT_2D3
-  return GFS_STATE (cell)->solid->a/f;
-#else /* 3D */
+  if (f == 0.)
+    return 0.;
   guint level = ftt_cell_level (cell);
   g_assert (level <= MAXLEVEL);
   return GFS_STATE (cell)->solid->a/f*(1 << (MAXLEVEL - level));
-#endif /* 3D */
 }
 
 static void compute_H (FttCell * cell, GfsVariable * H)
 {
-  GFS_VARIABLE (cell, H->i) = height (cell);
+  GFS_VALUE (cell, H) = height (cell);
 }
 
 static void face_interpolated_normal_velocity (const FttCellFace * face, GfsVariable ** v)
@@ -566,6 +574,7 @@ static void face_interpolated_normal_velocity (const FttCellFace * face, GfsVari
     break;
   case FTT_FINE_COARSE: {
     gdouble w1 = height (face->cell), w2 = height (face->neighbor);
+    g_assert (w1 + w2);
     w1 = 2.*w1/(w1 + w2);
     u = w1*gfs_face_interpolated_value (face, i) + (1. - w1)*GFS_VARIABLE (face->neighbor, i);
     break;
@@ -612,10 +621,9 @@ static void compute_coeff (FttCell * c)
 {
   guint level = ftt_cell_level (c);
   gdouble wf[FTT_NEIGHBORS_2D] = {0.,0.,0.,0.}, size = 1.;
-#if !FTT_2D3
+
   g_assert (level <= MAXLEVEL);
   size = 1 << (MAXLEVEL - level);
-#endif
 
   while (c) {
     GfsStateVector * s = GFS_STATE (c);
@@ -659,7 +667,7 @@ static void face_coeff_from_below (FttCell * cell)
 
 static void depth_integrated_coefficients (GfsDomain * domain)
 {
-  gfs_poisson_coefficients (domain, NULL);
+  gfs_poisson_coefficients (domain, NULL, TRUE, TRUE);
   gfs_domain_cell_traverse_boundary (domain, FTT_FRONT,
 				     FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
 				     (FttCellTraverseFunc) compute_coeff, NULL);
@@ -676,7 +684,8 @@ static void ocean_run (GfsSimulation * sim)
 
   domain = GFS_DOMAIN (sim);
   toplayer = GFS_OCEAN (sim)->toplayer;
-
+  gfs_clock_start (toplayer->timer);
+  
   gfs_simulation_refine (sim);
 
   H = gfs_variable_from_name (domain->variables, "H");
@@ -723,7 +732,7 @@ static void ocean_run (GfsSimulation * sim)
     gfs_predicted_face_velocities (domain, 2, &sim->advection_params);
 
     gfs_domain_timer_start (domain, "correct_normal_velocities");
-    gfs_poisson_coefficients (domain, NULL);
+    gfs_poisson_coefficients (domain, NULL, TRUE, TRUE);
     gfs_correct_normal_velocities_weighted (domain, 2, p, g, sim->advection_params.dt/2.,
 					    sim->approx_projection_params.weighted);
     gfs_domain_cell_traverse_boundary (domain, FTT_FRONT,
@@ -779,7 +788,7 @@ static void ocean_run (GfsSimulation * sim)
 			       sim->physical_params.g/GFS_OCEAN (domain)->layer->len);
     gts_object_destroy (GTS_OBJECT (divn));
 
-    gfs_poisson_coefficients (domain, NULL);
+    gfs_poisson_coefficients (domain, NULL, TRUE, TRUE);
     gfs_correct_normal_velocities_weighted (domain, 2, p, g, sim->advection_params.dt/2.,
 					    sim->approx_projection_params.weighted);
     gfs_correct_centered_velocities (domain, 2, g, sim->advection_params.dt/2.);
@@ -803,22 +812,43 @@ static void ocean_run (GfsSimulation * sim)
 			 (GtsFunc) gts_object_destroy, NULL);
 
   gts_object_destroy (GTS_OBJECT (div));
+
+  gfs_clock_stop (toplayer->timer);
 }
 
 static void gfs_ocean_class_init (GfsSimulationClass * klass)
 {
   GTS_OBJECT_CLASS (klass)->destroy = ocean_destroy;
   GTS_OBJECT_CLASS (klass)->read = ocean_read;
-#if !FTT_2D3
   GTS_OBJECT_CLASS (klass)->write = ocean_write;
-#endif
   GFS_DOMAIN_CLASS (klass)->post_read = ocean_post_read;
   klass->run = ocean_run;
 }
 
+static void depth_coarse_fine (FttCell * parent, GfsVariable * H)
+{
+  FttCellChildren child;
+  guint i;
+
+  ftt_cell_children (parent, &child);
+  for (i = 0; i < FTT_CELLS; i++)
+    if (child.c[i]) {
+      GFS_VALUE (child.c[i], H) = height (child.c[i]);
+      if (GFS_VALUE (child.c[i], H) <= 0.)
+	ftt_cell_destroy (child.c[i], (FttCellCleanupFunc) gfs_cell_cleanup, H->domain);
+    }
+}
+
+static void depth_fine_coarse (FttCell * parent, GfsVariable * H)
+{
+  GFS_VALUE (parent, H) = height (parent);
+}
+
 static void gfs_ocean_init (GfsOcean * object)
 {
-  gfs_domain_add_variable (GFS_DOMAIN (object), "H", "Depth");
+  GfsVariable * H = gfs_domain_add_variable (GFS_DOMAIN (object), "H", "Depth");
+  H->coarse_fine = depth_coarse_fine;
+  H->fine_coarse = depth_fine_coarse;
   GFS_SIMULATION (object)->approx_projection_params.weighted = 1;
   object->layer = g_ptr_array_new ();
   new_layer (object);
@@ -898,6 +928,8 @@ void gfs_hydrostatic_pressure (GfsDomain * domain,
 				     (FttCellTraverseFunc) hydrostatic_pressure, data);
 }
 
+/** \endobject{GfsOcean} */
+
 /* GfsSourceHydrostatic: Object */
 
 static void gfs_source_hydrostatic_destroy (GtsObject * o)
@@ -1041,9 +1073,12 @@ GfsSourceGenericClass * gfs_source_hydrostatic_class (void)
   return klass;
 }
 
-#endif /* 2D3 or 3D */
+#endif /* 3D */
 
-/* GfsSourceFriction: Object */
+/**
+ *
+ * \beginobject{GfsSourceFriction}
+ */
 
 static void gfs_source_friction_destroy (GtsObject * o)
 {
@@ -1155,7 +1190,12 @@ GfsSourceGenericClass * gfs_source_friction_class (void)
   return klass;
 }
 
-/* GfsBcFlather: Object */
+/** \endobject{GfsSourceFriction} */
+
+/**
+ * Flather boundary conditions.
+ * \beginobject{GfsBcFlather}
+ */
 
 /* Also check whether modules/tide.mod needs upgrading when modyifing this class */
 
@@ -1241,7 +1281,7 @@ static gdouble flather_value (FttCellFace * f, GfsBc * b)
     gdouble cg = sqrt (sim->physical_params.g*H);
     /* non-dimensional pressure at the boundary */
     gdouble lz = GFS_DOMAIN (sim)->lambda.z;
-#if !FTT_2D && !FTT_2D3
+#if !FTT_2D
     lz *= 1 << MAXLEVEL;
 #endif
     gdouble pb = gfs_function_face_value (GFS_BC_FLATHER (b)->val, f)*sim->physical_params.g*lz;
@@ -1311,3 +1351,5 @@ GfsBcClass * gfs_bc_flather_class (void)
 
   return klass;
 }
+
+/** \endobject{GfsBcFlather} */
diff --git a/src/ocean.h b/src/ocean.h
index 5c5b561..2733195 100644
--- a/src/ocean.h
+++ b/src/ocean.h
@@ -37,7 +37,7 @@ struct _GfsOcean {
 #if !FTT_2D
   GPtrArray * layer;
   GfsDomain * toplayer;
-#endif /* 2D3 or 3D */
+#endif /* 3D */
 };
 
 #define GFS_OCEAN(obj)            GTS_OBJECT_CAST (obj,\
@@ -77,7 +77,7 @@ struct _GfsSourceHydrostatic {
 
 GfsSourceGenericClass * gfs_source_hydrostatic_class    (void);
 
-#endif /* 2D3 or 3D */
+#endif /* 3D */
 
 /* GfsSourceFriction: Header */
 
diff --git a/src/output.c b/src/output.c
index 630a1cc..5597194 100644
--- a/src/output.c
+++ b/src/output.c
@@ -16,6 +16,9 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
  * 02111-1307, USA.  
  */
+/*! \file
+ * \brief Various outputs.
+ */
 
 #include <stdlib.h>
 #include <unistd.h>
@@ -31,88 +34,19 @@
 #include "solid.h"
 #include "ocean.h"
 #include "unstructured.h"
+#include "init.h"
 
-/* GfsOutput: object */
-
-typedef struct _Format Format;
-
-typedef enum {
-  ITER,
-  TIME,
-  PID,
-  NONE
-} FormatType;
-
-struct _Format {
-  gchar * s;
-  FormatType t;
-};
-
-static Format * format_new (gchar * s, guint len, 
-			    FormatType t)
-{
-  Format * f = g_malloc (sizeof (Format));
-  
-  f->s = g_strndup (s, len);
-  f->t = t;
-
-  return f;
-}
-
-static void format_destroy (Format * f)
-{
-  g_free (f->s);
-  g_free (f);
-}
-
-static gchar * format_string (GSList * list, 
-			      gint pid, 
-			      guint niter,
-			      gdouble time)
-{
-  gchar * s = g_strdup ("");
-
-  while (list) {
-    Format * f = list->data;
-    gchar * s1, * s2 = NULL;
-
-    switch (f->t) {
-    case NONE:
-      s2 = g_strconcat (s, f->s, NULL);
-      break;
-    case PID:
-      s1 = g_strdup_printf (f->s, pid);
-      s2 = g_strconcat (s, s1, NULL);
-      g_free (s1);
-      break;
-    case ITER:
-      s1 = g_strdup_printf (f->s, niter);
-      s2 = g_strconcat (s, s1, NULL);
-      g_free (s1);
-      break;
-    case TIME:
-      s1 = g_strdup_printf (f->s, time);
-      s2 = g_strconcat (s, s1, NULL);
-      g_free (s1);
-      break;
-    default:
-      g_assert_not_reached ();
-    }
-    g_free (s);
-    s = s2;
-    list = list->next;
-  }
-
-  return s;
-}
+/**
+ * Writing simulation data.
+ * \beginobject{GfsOutput}
+ */
 
 static void output_free (GfsOutput * output)
 {
   if (output->format)
     g_free (output->format);
   output->format = NULL;
-  g_slist_foreach (output->formats, (GFunc) format_destroy, NULL);
-  g_slist_free (output->formats);
+  gfs_format_destroy (output->formats);
   output->formats = NULL;
 }
 
@@ -143,10 +77,8 @@ static gboolean gfs_output_event (GfsEvent * event, GfsSimulation * sim)
     }
 
     if (!output->dynamic) {
-      if (output->file) {
-	fflush (output->file->fp);
+      if (output->file)
 	output->first_call = FALSE;
-      }
       else {
 	if (output->format[0] == '{') { /* script */
 	  guint len = strlen (output->format);
@@ -162,7 +94,7 @@ static gboolean gfs_output_event (GfsEvent * event, GfsSimulation * sim)
 	  output->format[len - 1] = '}';
 	}
 	else { /* standard file */
-	  fname = format_string (output->formats,
+	  fname = gfs_format_string (output->formats,
 				 GFS_DOMAIN (sim)->pid,
 				 sim->time.i,
 				 sim->time.t);
@@ -179,7 +111,7 @@ static gboolean gfs_output_event (GfsEvent * event, GfsSimulation * sim)
 
     if (output->file)
       gfs_output_file_close (output->file);
-    fname = format_string (output->formats, 
+    fname = gfs_format_string (output->formats, 
 			   GFS_DOMAIN (sim)->pid,
 			   sim->time.i,
 			   sim->time.t);
@@ -192,6 +124,13 @@ static gboolean gfs_output_event (GfsEvent * event, GfsSimulation * sim)
   return FALSE;
 }
 
+static void gfs_output_post_event (GfsEvent * event, GfsSimulation * sim)
+{
+  GfsOutput * output = GFS_OUTPUT (event);
+  if (output->file)
+    fflush (output->file->fp);
+}
+
 static void gfs_output_write (GtsObject * o, FILE * fp)
 {
   GfsOutput * output = GFS_OUTPUT (o);
@@ -234,8 +173,6 @@ static void gfs_output_read (GtsObject ** o, GtsFile * fp)
   }
   else {
     GfsDomain * domain = GFS_DOMAIN (gfs_object_simulation (output));
-    gchar * c, * start;
-    guint len;
 
     output->format = g_strdup (fp->token->str);
     gts_file_next_token (fp);
@@ -250,64 +187,14 @@ static void gfs_output_read (GtsObject ** o, GtsFile * fp)
       return;
     }
     
-    start = c = output->format;
-    while (*c != '\0') {
-      if (*c == '%') {
-	gchar * startf = c, * prev = c;
-	
-	len = GPOINTER_TO_UINT (startf) -  GPOINTER_TO_UINT (start);
-	if (len > 0)
-	  output->formats = g_slist_prepend (output->formats,
-					     format_new (start, len, NONE));
-	
-	len = 1;
-	c++;
-	while (*c != '\0' && !gfs_char_in_string (*c, "diouxXeEfFgGaAcsCSpn%")) {
-	  prev = c;
-	  c++;
-	  len++;
-	}
-	len++;
-	if (*c == '%')
-	  output->formats = g_slist_prepend (output->formats,
-					     format_new ("%", 1, NONE));
-	else if (gfs_char_in_string (*c, "diouxXc")) {
-	  if (*prev == 'l') {
-	    output->formats = g_slist_prepend (output->formats,
-					       format_new (startf, len, ITER));
-	    output->dynamic = TRUE;
-	  }
-	  else {
-	    output->formats = g_slist_prepend (output->formats,
-					       format_new (startf, len, PID));
-	    output->parallel = TRUE;
-	  }
-	}
-	else if (gfs_char_in_string (*c, "eEfFgGaA")) {
-	  output->formats = g_slist_prepend (output->formats,
-					     format_new (startf, len, TIME));
-	  output->dynamic = TRUE;
-	}
-	else {
-	  gts_file_error (fp, 
-			  "unknown conversion specifier `%c' of format `%s'",
-			  *c, output->format);
-	  output_free (output);
-	  return;
-	}
-	start = c;
-	start++;
-      }
-      c++;
+    output->formats = gfs_format_new (output->format, fp, &output->dynamic, &output->parallel);
+    if (fp->type == GTS_ERROR) {
+      output_free (output);
+      return;
     }
-    len = GPOINTER_TO_UINT (c) - GPOINTER_TO_UINT (start);
-    if (len > 0)
-      output->formats = g_slist_prepend (output->formats,
-					 format_new (start, len, NONE));
-    output->formats = g_slist_reverse (output->formats);
 
     if (output->parallel || domain->pid <= 0) {
-      gchar * fname = format_string (output->formats, domain->pid, 0, 0.);
+      gchar * fname = gfs_format_string (output->formats, domain->pid, 0, 0.);
       gchar * fnamebak = g_strconcat (fname, "~", NULL);
       g_free (fname);
       FILE * fptr = fopen (fnamebak, "w");
@@ -328,6 +215,7 @@ static void gfs_output_read (GtsObject ** o, GtsFile * fp)
 static void gfs_output_class_init (GfsOutputClass * klass)
 {
   GFS_EVENT_CLASS (klass)->event = gfs_output_event;
+  GFS_EVENT_CLASS (klass)->post_event = gfs_output_post_event;
 
   GTS_OBJECT_CLASS (klass)->write = gfs_output_write;
   GTS_OBJECT_CLASS (klass)->read = gfs_output_read;
@@ -473,27 +361,19 @@ void gfs_output_file_close (GfsOutputFile * file)
   }
 }
 
-/* GfsOutputTime: Object */
+/** \endobject{GfsOutput} */
 
-static void time_destroy (GtsObject * o)
-{
-  gfs_clock_destroy (GFS_OUTPUT_TIME (o)->clock);
-  g_timer_destroy (GFS_OUTPUT_TIME (o)->timer);
-
-  (* GTS_OBJECT_CLASS (gfs_output_time_class ())->parent_class->destroy) (o);  
-}
+/**
+ * Model time, timestep and computing times.
+ * \beginobject{GfsOutputTime}
+ */
 
 static gboolean time_event (GfsEvent * event, GfsSimulation * sim)
 {
   if ((* GFS_EVENT_CLASS (gfs_output_class())->event) (event, sim)) {
-    GfsOutputTime * t = GFS_OUTPUT_TIME (event);
-    if (!t->clock->started) {
-      gfs_clock_start (t->clock);
-      g_timer_start (t->timer);
-    }
-    gdouble cpu = gfs_clock_elapsed (t->clock);
-#ifdef HAVE_MPI
     GfsDomain * domain = GFS_DOMAIN (sim);
+    gdouble cpu = gfs_clock_elapsed (domain->timer);
+#ifdef HAVE_MPI
     if (domain->pid >= 0) {
       gfs_all_reduce (domain, cpu, MPI_DOUBLE, MPI_SUM);
       int size;
@@ -506,7 +386,7 @@ static gboolean time_event (GfsEvent * event, GfsSimulation * sim)
 	     sim->time.i, sim->time.t, 
 	     sim->advection_params.dt,
 	     cpu,
-	     g_timer_elapsed (t->timer, NULL));
+	     g_timer_elapsed (domain->clock, NULL));
     return TRUE;
   }
   return FALSE;
@@ -514,16 +394,9 @@ static gboolean time_event (GfsEvent * event, GfsSimulation * sim)
 
 static void gfs_output_time_class_init (GfsEventClass * klass)
 {
-  GTS_OBJECT_CLASS (klass)->destroy = time_destroy;
   klass->event = time_event;
 }
 
-static void gfs_output_time_init (GfsOutputTime * time)
-{
-  time->clock = gfs_clock_new ();
-  time->timer = g_timer_new ();
-}
-
 GfsOutputClass * gfs_output_time_class (void)
 {
   static GfsOutputClass * klass = NULL;
@@ -531,10 +404,10 @@ GfsOutputClass * gfs_output_time_class (void)
   if (klass == NULL) {
     GtsObjectClassInfo gfs_output_time_info = {
       "GfsOutputTime",
-      sizeof (GfsOutputTime),
+      sizeof (GfsOutput),
       sizeof (GfsOutputClass),
       (GtsObjectClassInitFunc) gfs_output_time_class_init,
-      (GtsObjectInitFunc) gfs_output_time_init,
+      (GtsObjectInitFunc) NULL,
       (GtsArgSetFunc) NULL,
       (GtsArgGetFunc) NULL
     };
@@ -545,7 +418,12 @@ GfsOutputClass * gfs_output_time_class (void)
   return klass;
 }
 
-/* GfsOutputProgress: Object */
+/** \endobject{GfsOutputTime} */
+
+/**
+ *
+ * \beginobject{GfsOutputProgress}
+ */
 
 static gboolean progress_event (GfsEvent * event, GfsSimulation * sim)
 {
@@ -599,7 +477,12 @@ GfsOutputClass * gfs_output_progress_class (void)
   return klass;
 }
 
-/* GfsOutputProjectionStats: Object */
+/** \endobject{GfsOutputProgress} */
+
+/**
+ * 
+ * \beginobject{GfsOutputProjectionStats}
+ */
 
 static gboolean projection_stats_event (GfsEvent * event, GfsSimulation * sim)
 {
@@ -643,7 +526,12 @@ GfsOutputClass * gfs_output_projection_stats_class (void)
   return klass;
 }
 
-/* GfsOutputDiffusionStats: Object */
+/** \endobject{GfsOutputProjectionStats} */
+
+/**
+ *
+ * \beginobject{GfsOutputDiffusionStats}
+ */
 
 static gboolean diffusion_stats_event (GfsEvent * event, GfsSimulation * sim)
 {
@@ -661,7 +549,8 @@ static gboolean diffusion_stats_event (GfsEvent * event, GfsSimulation * sim)
 	while (j) {
 	  GtsObject * o = j->data;
       
-	  if (GFS_IS_SOURCE_DIFFUSION (o) && !g_slist_find (l, o)) {
+	  if (GFS_IS_SOURCE_DIFFUSION (o) && GFS_SOURCE_DIFFUSION (o)->D->par.niter > 0 &&
+	      !g_slist_find (l, o)) {
 	    l = g_slist_prepend (l, o);
 	    fprintf (fp, "%s diffusion\n", v->name);
 	    gfs_multilevel_params_stats_write (&GFS_SOURCE_DIFFUSION (o)->D->par, fp);
@@ -703,7 +592,12 @@ GfsOutputClass * gfs_output_diffusion_stats_class (void)
   return klass;
 }
 
-/* GfsOutputSolidStats: Object */
+/** \endobject{GfsOutputDiffusionStats} */
+
+/**
+ * 
+ * \beginobject{GfsOutputSolidStats}
+ */
 
 static gboolean gfs_output_solid_stats_event (GfsEvent * event, 
 					     GfsSimulation * sim)
@@ -757,7 +651,12 @@ GfsOutputClass * gfs_output_solid_stats_class (void)
   return klass;
 }
 
-/* GfsOutputAdaptStats: Object */
+/** \endobject{GfsOutputSolidStats} */
+
+/**
+ * Information about the mesh adaptation.
+ * \beginobject{GfsOutputAdaptStats}
+ */
 
 static gboolean gfs_output_adapt_stats_event (GfsEvent * event, 
 					      GfsSimulation * sim)
@@ -819,7 +718,12 @@ GfsOutputClass * gfs_output_adapt_stats_class (void)
   return klass;
 }
 
-/* GfsOutputTiming: Object */
+/** \endobject{GfsOutputAdaptStats} */
+
+/**
+ *
+ * \beginobject{GfsOutputTiming}
+ */
 
 typedef struct {
   GfsTimer * t;
@@ -930,7 +834,12 @@ GfsOutputClass * gfs_output_timing_class (void)
   return klass;
 }
 
-/* GfsOutputBalance: Object */
+/** \endobject{GfsOutputTiming} */
+
+/**
+ * Writing simulation size statistics.
+ * \beginobject{GfsOutputBalance}
+ */
 
 static gboolean gfs_output_balance_event (GfsEvent * event, 
 					  GfsSimulation * sim)
@@ -987,7 +896,12 @@ GfsOutputClass * gfs_output_balance_class (void)
   return klass;
 }
 
-/* GfsOutputSolidForce: Object */
+/** \endobject{GfsOutputBalance} */
+
+/**
+ * orces and moments on the embedded solid boundaries.
+ * \beginobject{GfsOutputSolidForce}
+ */
 
 static void gfs_output_solid_force_destroy (GtsObject * object)
 {
@@ -1076,11 +990,22 @@ GfsOutputClass * gfs_output_solid_force_class (void)
   return klass;
 }
 
-/* GfsOutputLocation: Object */
+/** \endobject{GfsOutputSolidForce} */
+
+/**
+ * Writing the values of variables at specified locations.
+ * \beginobject{GfsOutputLocation}
+ */
+
+static gchar default_precision[] = "%g";
 
 static void gfs_output_location_destroy (GtsObject * object)
 {
-  g_array_free (GFS_OUTPUT_LOCATION (object)->p, TRUE);
+  GfsOutputLocation * l = GFS_OUTPUT_LOCATION (object);
+  g_array_free (l->p, TRUE);
+  g_free (l->label);
+  if (l->precision != default_precision)
+    g_free (l->precision);
 
   (* GTS_OBJECT_CLASS (gfs_output_location_class ())->parent_class->destroy) (object);
 }
@@ -1169,6 +1094,33 @@ static void gfs_output_location_read (GtsObject ** o, GtsFile * fp)
       return;
     g_array_append_val (l->p, p);
   }
+
+  if (fp->type == '{') {
+    gchar * label = NULL, * precision = NULL;
+    GtsFileVariable var[] = {
+      {GTS_STRING, "label", TRUE, &label},
+      {GTS_STRING, "precision", TRUE, &precision},
+      {GTS_INT,    "interpolate", TRUE, &l->interpolate},
+      {GTS_NONE}
+    };
+    gts_file_assign_variables (fp, var);
+    if (fp->type == GTS_ERROR) {
+      g_free (label);
+      g_free (precision);
+      return;
+    }
+
+    if (precision != NULL) {
+      if (l->precision != default_precision)
+	g_free (l->precision);
+      l->precision = precision;
+    }
+
+    if (label != NULL) {
+      g_free (l->label);
+      l->label = label;
+    }
+  }
 }
 
 static void gfs_output_location_write (GtsObject * o, FILE * fp)
@@ -1179,11 +1131,24 @@ static void gfs_output_location_write (GtsObject * o, FILE * fp)
   (* GTS_OBJECT_CLASS (gfs_output_location_class ())->parent_class->write) (o, fp);
 
   fputs (" {\n", fp);
+  gchar * format = g_strdup_printf ("%s %s %s\n", l->precision, l->precision, l->precision);
   for (i = 0; i < l->p->len; i++) {
     FttVector p = g_array_index (l->p, FttVector, i);
-    fprintf (fp, "%g %g %g\n", p.x, p.y, p.z);
+    fprintf (fp, format, p.x, p.y, p.z);
   }
+  g_free (format);
   fputc ('}', fp);
+
+  if (l->precision != default_precision || l->label) {
+    fputs (" {\n", fp);
+    if (l->precision != default_precision)
+      fprintf (fp, "  precision = %s\n", l->precision);
+    if (l->label)
+      fprintf (fp, "  label = \"%s\"\n", l->label);
+    if (!l->interpolate)
+      fputs ("  interpolate = 0\n", fp);
+    fputc ('}', fp);
+  }
 }
 
 static gboolean gfs_output_location_event (GfsEvent * event, 
@@ -1194,13 +1159,15 @@ static gboolean gfs_output_location_event (GfsEvent * event,
     GfsDomain * domain = GFS_DOMAIN (sim);
     GfsOutputLocation * location = GFS_OUTPUT_LOCATION (event);
     FILE * fp = GFS_OUTPUT (event)->file->fp;
+    FILE * fpp = ((domain->pid < 0 || GFS_OUTPUT (event)->parallel) ? fp:
+		   gfs_union_open (GFS_OUTPUT (event)->file->fp, domain->pid));
     guint i;
 
     if (GFS_OUTPUT (event)->first_call) {
       GSList * i = domain->variables;
       guint nv = 5;
 
-      fputs ("# 1:T 2:X 3:Y 4:Z", fp);
+      fputs ("# 1:t 2:x 3:y 4:z", fp);
       while (i) {
 	if (GFS_VARIABLE1 (i->data)->name)
 	  fprintf (fp, " %d:%s", nv++, GFS_VARIABLE1 (i->data)->name);
@@ -1208,6 +1175,10 @@ static gboolean gfs_output_location_event (GfsEvent * event,
       }
       fputc ('\n', fp);
     }
+    gchar * pformat = g_strdup_printf ("%s %s %s %s", 
+				       location->precision, location->precision, 
+				       location->precision, location->precision);
+    gchar * vformat = g_strdup_printf (" %s", location->precision);
     for (i = 0; i < location->p->len; i++) {
       FttVector p = g_array_index (location->p, FttVector, i), pm = p;
       gfs_simulation_map (sim, &pm);
@@ -1216,17 +1187,27 @@ static gboolean gfs_output_location_event (GfsEvent * event,
       if (cell != NULL) {
 	GSList * i = domain->variables;
 	
-	fprintf (fp, "%g %g %g %g", sim->time.t, p.x, p.y, p.z);
+	fprintf (fpp, pformat, sim->time.t, p.x, p.y, p.z);
 	while (i) {
 	  GfsVariable * v = i->data;
 	  if (v->name)
-	    fprintf (fp, " %g", gfs_dimensional_value (v, gfs_interpolate (cell, pm, v)));
+	    fprintf (fpp, vformat, gfs_dimensional_value (v, 
+							  location->interpolate ? 
+							  gfs_interpolate (cell, pm, v) :
+							  GFS_VALUE (cell, v)));
 	  i = i->next;
 	}
-	fputc ('\n', fp);
+	fputc ('\n', fpp);
       }
     }
+
+    g_free (pformat);
+    g_free (vformat);
     fflush (fp);
+    if (!(domain->pid < 0 || GFS_OUTPUT (event)->parallel)) {
+      fflush (fpp);
+      gfs_union_close (GFS_OUTPUT (event)->file->fp, domain->pid, fpp);
+    }
     return TRUE;
   }
   return FALSE;
@@ -1243,6 +1224,8 @@ static void gfs_output_location_class_init (GfsOutputClass * klass)
 static void gfs_output_location_init (GfsOutputLocation * object)
 {
   object->p = g_array_new (FALSE, FALSE, sizeof (FttVector));
+  object->precision = default_precision;
+  object->interpolate = TRUE;
 }
 
 GfsOutputClass * gfs_output_location_class (void)
@@ -1266,9 +1249,74 @@ GfsOutputClass * gfs_output_location_class (void)
   return klass;
 }
 
-/* GfsOutputSimulation: Object */
+/** \endobject{GfsOutputLocation} */
 
-static gchar default_precision[] = "%g";
+/**
+ * Tracking Lagrangian particles.
+ * \beginobject{GfsOutputParticle}
+ */
+
+static gboolean gfs_output_particle_event (GfsEvent * event, 
+					   GfsSimulation * sim)
+{
+  GfsOutputLocation * location = GFS_OUTPUT_LOCATION (event);
+  gboolean ret = FALSE;
+  guint i;
+
+  if ((* GFS_EVENT_CLASS (GTS_OBJECT_CLASS (gfs_output_location_class ())->parent_class)->event)
+      (event,sim)) {
+    FILE * fp = GFS_OUTPUT (event)->file->fp;
+
+    for (i = 0; i < location->p->len; i++) {
+      FttVector p = g_array_index (location->p, FttVector, i);
+      fprintf (fp, "%d %g %g %g %g\n", i, sim->time.t, p.x, p.y, p.z);
+    }
+    ret = TRUE;
+  }
+  
+  for (i = 0; i < location->p->len; i++) {
+    FttVector p = g_array_index (location->p, FttVector, i);
+    gfs_simulation_map (sim, &p);
+    gfs_domain_advect_point (GFS_DOMAIN (sim), &p, sim->advection_params.dt);
+    gfs_simulation_map_inverse (sim, &p);
+    g_array_index (location->p, FttVector, i) = p;
+  }
+
+  return ret;
+}
+
+static void gfs_output_particle_class_init (GfsOutputClass * klass)
+{
+  GFS_EVENT_CLASS (klass)->event = gfs_output_particle_event;
+}
+
+GfsOutputClass * gfs_output_particle_class (void)
+{
+  static GfsOutputClass * klass = NULL;
+
+  if (klass == NULL) {
+    GtsObjectClassInfo gfs_output_particle_info = {
+      "GfsOutputParticle",
+      sizeof (GfsOutputLocation),
+      sizeof (GfsOutputClass),
+      (GtsObjectClassInitFunc) gfs_output_particle_class_init,
+      (GtsObjectInitFunc) NULL,
+      (GtsArgSetFunc) NULL,
+      (GtsArgGetFunc) NULL
+    };
+    klass = gts_object_class_new (GTS_OBJECT_CLASS (gfs_output_location_class ()),
+				  &gfs_output_particle_info);
+  }
+
+  return klass;
+}
+
+/** \endobject{GfsOutputParticle} */
+
+/**
+ * Writing the whole simulation.
+ * \beginobject{GfsOutputSimulation}
+ */
 
 static void output_simulation_destroy (GtsObject * object)
 {
@@ -1345,7 +1393,7 @@ static gboolean output_simulation_event (GfsEvent * event, GfsSimulation * sim)
 	GSList * i = domain->variables_io;
 	guint nv = 4;
 
-	fputs ("# 1:X 2:Y 3:Z", fp);
+	fputs ("# 1:x 2:y 3:z", fp);
 	while (i) {
 	  g_assert (GFS_VARIABLE1 (i->data)->name);
 	  fprintf (fp, " %d:%s", nv++, GFS_VARIABLE1 (i->data)->name);
@@ -1357,13 +1405,15 @@ static gboolean output_simulation_event (GfsEvent * event, GfsSimulation * sim)
       data[0] = output;
       if (GFS_OUTPUT (output)->parallel) {
 	data[1] = GFS_OUTPUT (event)->file->fp;
-	gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
+	gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, FTT_TRAVERSE_LEVEL|FTT_TRAVERSE_LEAFS,
+				  output->max_depth,
 				  (FttCellTraverseFunc) write_text, data);
       }
       else {
 	FILE * fpp = gfs_union_open (GFS_OUTPUT (event)->file->fp, domain->pid);
 	data[1] = fpp;
-	gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
+	gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, FTT_TRAVERSE_LEVEL|FTT_TRAVERSE_LEAFS,
+				  output->max_depth,
 				  (FttCellTraverseFunc) write_text, data);
 	gfs_union_close (GFS_OUTPUT (event)->file->fp, domain->pid, fpp);
       }
@@ -1390,7 +1440,6 @@ static gboolean output_simulation_event (GfsEvent * event, GfsSimulation * sim)
     domain->variables_io = NULL;
     domain->binary =       TRUE;
     sim->output_solid   =  TRUE;
-    fflush (GFS_OUTPUT (event)->file->fp);
     return TRUE;
   }
   return FALSE;
@@ -1458,6 +1507,8 @@ static void output_simulation_read (GtsObject ** o, GtsFile * fp)
     gts_file_assign_variables (fp, var);
     if (fp->type == GTS_ERROR) {
       g_free (variables);
+      g_free (format);
+      g_free (precision);
       return;
     }
 
@@ -1542,7 +1593,12 @@ GfsOutputClass * gfs_output_simulation_class (void)
   return klass;
 }
 
-/* GfsOutputBoundaries: Object */
+/** \endobject{GfsOutputSimulation} */
+
+/**
+ *
+ * \beginobject{GfsOutputBoundaries}
+ */
 
 static gboolean output_boundaries_event (GfsEvent * event, GfsSimulation * sim)
 {
@@ -1553,7 +1609,6 @@ static gboolean output_boundaries_event (GfsEvent * event, GfsSimulation * sim)
     gfs_draw_refined_boundaries (domain, fp);
     gfs_draw_solid_boundaries (domain, fp);
     gfs_draw_boundary_conditions (domain, fp);
-    fflush (fp);
     return TRUE;
   }
   return FALSE;
@@ -1585,17 +1640,24 @@ GfsOutputClass * gfs_output_boundaries_class (void)
   return klass;
 }
 
-/* GfsOutputScalar: Object */
+/** \endobject{GfsOutputBoundaries} */
+
+/**
+ * Generic output of scalar fields.
+ * \beginobject{GfsOutputScalar}
+ */
 
 static void gfs_output_scalar_destroy (GtsObject * o)
 {
   GfsOutputScalar * output = GFS_OUTPUT_SCALAR (o);
 
-  if (output->box)
-    gts_object_destroy (GTS_OBJECT (output->box));
   gts_object_destroy (GTS_OBJECT (output->f));
   g_free (output->name);
-
+  if (output->condition)
+    gts_object_destroy (GTS_OBJECT (output->condition));
+  if (output->w)
+    gts_object_destroy (GTS_OBJECT (output->w));
+  
   (* GTS_OBJECT_CLASS (gfs_output_scalar_class ())->parent_class->destroy) (o);
 }
 
@@ -1686,84 +1748,27 @@ static void gfs_output_scalar_read (GtsObject ** o, GtsFile * fp)
       output->maxlevel = atoi (fp->token->str);
       gts_file_next_token (fp);
     }
-    else if (!strcmp (fp->token->str, "box")) {
-      gchar * box, * s;
-
+    else if (!strcmp (fp->token->str, "condition")) {
       gts_file_next_token (fp);
       if (fp->type != '=') {
 	gts_file_error (fp, "expecting '='");
 	return;
       }
       gts_file_next_token (fp);
-      if (fp->type != GTS_STRING) {
-	gts_file_error (fp, "expecting a string (box)");
-	return;
-      }
-      box = g_strdup (fp->token->str);
-      s = strtok (box, ",");
-      output->box = GTS_BBOX (gts_object_new (GTS_OBJECT_CLASS (gts_bbox_class ())));
-      if (s == NULL) {
-	gts_file_error (fp, "expecting a number (x1)");
-	g_free (box);
-	return;
-      }
-      output->box->x1 = atof (s);
-      s = strtok (NULL, ",");
-      if (s == NULL) {
-	gts_file_error (fp, "expecting a number (y1)");
-	g_free (box);
-	return;
-      }
-      output->box->y1 = atof (s);
-      s = strtok (NULL, ",");
-#if (!FTT_2D)
-      if (s == NULL) {
-	gts_file_error (fp, "expecting a number (z1)");
-	g_free (box);
-	return;
-      }
-      output->box->z1 = atof (s);
-      s = strtok (NULL, ",");
-#endif /* 3D */
-      if (s == NULL) {
-	gts_file_error (fp, "expecting a number (x2)");
-	g_free (box);
-	return;
-      }
-      output->box->x2 = atof (s);
-      if (output->box->x2 < output->box->x1) {
-	gts_file_error (fp, "x2 must be larger than x1");
-	g_free (box);
-	return;
-      }
-      s = strtok (NULL, ",");
-      if (s == NULL) {
-	gts_file_error (fp, "expecting a number (y2)");
-	g_free (box);
-	return;
-      }
-      output->box->y2 = atof (s);
-      if (output->box->y2 < output->box->y1) {
-	gts_file_error (fp, "y2 must be larger than y1");
-	g_free (box);
-	return;
-      }
-#if (!FTT_2D)
-      s = strtok (NULL, ",");
-      if (s == NULL) {
-	gts_file_error (fp, "expecting a number (z2)");
-	g_free (box);
-	return;
-      }
-      output->box->z2 = atof (s);
-      if (output->box->z2 < output->box->z1) {
-	gts_file_error (fp, "z2 must be larger than z1");
-	g_free (box);
+      if (!output->condition)
+	output->condition = gfs_function_new (gfs_function_class (), 0.);
+      gfs_function_read (output->condition, gfs_object_simulation (*o), fp);
+    }
+    else if (!strcmp (fp->token->str, "w")) {
+      gts_file_next_token (fp);
+      if (fp->type != '=') {
+	gts_file_error (fp, "expecting '='");
 	return;
       }
-#endif /* 3D */
-      g_free (box);
       gts_file_next_token (fp);
+      if (!output->w)
+	output->w = gfs_function_new (gfs_function_class (), 0.);
+      gfs_function_read (output->w, gfs_object_simulation (*o), fp);
     }
     else {
       gts_file_error (fp, "unknown keyword `%s'", fp->token->str);
@@ -1792,15 +1797,14 @@ static void gfs_output_scalar_write (GtsObject * o, FILE * fp)
   gfs_function_write (output->f, fp);
   if (output->maxlevel >= 0)
     fprintf (fp, " maxlevel = %d", output->maxlevel);
-  if (output->box != NULL)
-#if FTT_2D
-    fprintf (fp, " box = %g,%g,%g,%g", 
-	     output->box->x1, output->box->y1, output->box->x2, output->box->y2);
-#else  /* 3D */
-    fprintf (fp, " box = %g,%g,%g,%g,%g,%g",
-	     output->box->x1, output->box->y1, output->box->z1,
-	     output->box->x2, output->box->y2, output->box->z2);
-#endif /* 3D */
+  if (output->condition) {
+    fputs (" condition = ", fp);
+    gfs_function_write (output->condition, fp);
+  }
+  if (output->w) {
+    fputs (" w = ", fp);
+    gfs_function_write (output->w, fp);
+  }
   if (!output->autoscale)
     fprintf (fp, " min = %g max = %g }", output->min, output->max);
   else
@@ -1812,6 +1816,29 @@ static void update_v (FttCell * cell, GfsOutputScalar * output)
   GFS_VALUE (cell, output->v) = gfs_function_value (output->f, cell);
 }
 
+static gboolean cell_condition (FttCell * cell, gpointer condition)
+{
+  return gfs_function_value (condition, cell);
+}
+
+static void output_scalar_traverse (GfsOutputScalar * output, 
+				    FttTraverseType order,
+				    FttTraverseFlags flags,
+				    gint max_depth,
+				    FttCellTraverseFunc func,
+				    gpointer data)
+{
+  if (output->condition)
+    gfs_domain_cell_traverse_condition (GFS_DOMAIN (gfs_object_simulation (output)),
+					order, flags, max_depth, 
+					func, data,
+					cell_condition, output->condition);
+  else
+    gfs_domain_cell_traverse (GFS_DOMAIN (gfs_object_simulation (output)),
+			      order, flags, max_depth, 
+			      func, data);
+}
+
 static gboolean gfs_output_scalar_event (GfsEvent * event,
 					 GfsSimulation * sim)
 {
@@ -1823,19 +1850,23 @@ static gboolean gfs_output_scalar_event (GfsEvent * event,
     if (!(output->v = gfs_function_get_variable (output->f)) ||
 	gfs_variable_is_dimensional (output->v)) {
       output->v = gfs_temporary_variable (domain);
-      gfs_domain_cell_traverse (domain,
-				FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
-				(FttCellTraverseFunc) update_v, output);
+      gfs_catch_floating_point_exceptions ();
+      output_scalar_traverse (output,
+			      FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
+			      (FttCellTraverseFunc) update_v, output);
+      gfs_restore_fpe_for_function (output->f);
     }
     if (output->maxlevel >= 0)
-        gfs_domain_cell_traverse (domain,
-				  FTT_POST_ORDER, FTT_TRAVERSE_NON_LEAFS, -1,
-				  (FttCellTraverseFunc) output->v->fine_coarse,
-				  output->v);
+      output_scalar_traverse (output,
+			      FTT_POST_ORDER, FTT_TRAVERSE_NON_LEAFS, -1,
+			      (FttCellTraverseFunc) output->v->fine_coarse,
+			      output->v);
     if (output->autoscale) {
       GtsRange stats = gfs_domain_stats_variable (domain, output->v, 
-	     FTT_TRAVERSE_LEAFS|FTT_TRAVERSE_LEVEL, output->maxlevel);
-
+						  FTT_TRAVERSE_LEAFS|FTT_TRAVERSE_LEVEL, 
+						  output->maxlevel,
+						  output->condition ? cell_condition : NULL,
+						  output->condition);
       output->min = stats.min;
       output->max = stats.max;
     }
@@ -1848,11 +1879,13 @@ static void gfs_output_scalar_post_event (GfsEvent * event,
 					  GfsSimulation * sim)
 {
   GfsOutputScalar * output = GFS_OUTPUT_SCALAR (event);
-
   if (output->v != gfs_function_get_variable (output->f)) {
     gts_object_destroy (GTS_OBJECT (output->v));
     output->v = NULL;
   }
+
+  (* GFS_EVENT_CLASS (GTS_OBJECT_CLASS (gfs_output_scalar_class ())->parent_class)->post_event) 
+    (event, sim);
 }
 
 static void gfs_output_scalar_class_init (GfsOutputClass * klass)
@@ -1871,7 +1904,7 @@ static void gfs_output_scalar_init (GfsOutputScalar * object)
   object->max =  G_MAXDOUBLE;
   object->autoscale = TRUE;
   object->maxlevel = -1;
-  object->box = NULL;
+  object->condition = NULL;
 }
 
 GfsOutputClass * gfs_output_scalar_class (void)
@@ -1895,7 +1928,12 @@ GfsOutputClass * gfs_output_scalar_class (void)
   return klass;
 }
 
-/* GfsOutputScalarNorm: Object */
+/** \endobject{GfsOutputScalar} */
+
+/**
+ * Computing the norms of a scalar field.
+ * \beginobject{GfsOutputScalarNorm}
+ */
 
 static gboolean gfs_output_scalar_norm_event (GfsEvent * event, 
 					      GfsSimulation * sim)
@@ -1906,8 +1944,9 @@ static gboolean gfs_output_scalar_norm_event (GfsEvent * event,
     GfsNorm norm = gfs_domain_norm_variable (GFS_DOMAIN (sim), 
 					     output->v, NULL,
 					     FTT_TRAVERSE_LEAFS|FTT_TRAVERSE_LEVEL, 
-					     output->maxlevel);
-
+					     output->maxlevel,
+					     output->condition ? cell_condition : NULL,
+					     output->condition);
     fprintf (GFS_OUTPUT (event)->file->fp, 
 	     "%s time: %g first: % 10.3e second: % 10.3e infty: % 10.3e\n",
 	     output->name,
@@ -1944,7 +1983,12 @@ GfsOutputClass * gfs_output_scalar_norm_class (void)
   return klass;
 }
 
-/* GfsOutputScalarStats: Object */
+/** \endobject{GfsOutputScalarNorm} */
+
+/**
+ * Computing simple statistics for a scalar field.
+ * \beginobject{GfsOutputScalarStats}
+ */
 
 static gboolean gfs_output_scalar_stats_event (GfsEvent * event, 
 					     GfsSimulation * sim)
@@ -1955,8 +1999,9 @@ static gboolean gfs_output_scalar_stats_event (GfsEvent * event,
     GtsRange stats = gfs_domain_stats_variable (GFS_DOMAIN (sim), 
 						output->v,
 						FTT_TRAVERSE_LEAFS|FTT_TRAVERSE_LEVEL, 
-						output->maxlevel);
-
+						output->maxlevel,
+						output->condition ? cell_condition : NULL,
+						output->condition);
     fprintf (GFS_OUTPUT (event)->file->fp, 
 	     "%s time: %g min: %10.3e avg: %10.3e | %10.3e max: %10.3e\n",
 	     output->name, sim->time.t,
@@ -1992,15 +2037,23 @@ GfsOutputClass * gfs_output_scalar_stats_class (void)
   return klass;
 }
 
-/* GfsOutputScalarSum: Object */
+/** \endobject{GfsOutputScalarStats} */
 
-static void add (FttCell * cell, gpointer * data)
-{
-  GfsVariable * v = data[0];
-  gdouble vol = gfs_cell_volume (cell, v->domain);
-  gdouble * sum = data[1];
+/**
+ * Computing the sum of a scalar field.
+ * \beginobject{GfsOutputScalarSum}
+ */
 
-  *sum += vol*GFS_VALUE (cell, v);
+typedef struct {
+  GfsVariable * v;
+  GfsFunction * w;
+  gdouble sum;
+} SumData;
+
+static void add (FttCell * cell, SumData * s)
+{
+  gdouble vol = s->w ? gfs_function_value (s->w, cell) : gfs_cell_volume (cell, s->v->domain);
+  s->sum += vol*GFS_VALUE (cell, s->v);
 }
 
 static gboolean gfs_output_scalar_sum_event (GfsEvent * event, 
@@ -2009,20 +2062,18 @@ static gboolean gfs_output_scalar_sum_event (GfsEvent * event,
   if ((* GFS_EVENT_CLASS (GTS_OBJECT_CLASS (gfs_output_scalar_sum_class ())->parent_class)->event)
       (event, sim)) {
     GfsOutputScalar * output = GFS_OUTPUT_SCALAR (event);
-    gpointer data[2];
-    gdouble sum = 0.;
-
-    data[0] = output->v;
-    data[1] = &sum;
-    gfs_domain_cell_traverse (GFS_DOMAIN (sim),
-			      FTT_PRE_ORDER, 
-			      FTT_TRAVERSE_LEAFS|FTT_TRAVERSE_LEVEL,
-			      output->maxlevel,
-			      (FttCellTraverseFunc) add, data);
-    gfs_all_reduce (GFS_DOMAIN (sim), sum, MPI_DOUBLE, MPI_SUM);
-    fprintf (GFS_OUTPUT (event)->file->fp, 
-	     "%s time: %g sum: % 15.6e\n", output->name, sim->time.t, 
-	     sum*pow (sim->physical_params.L, FTT_DIMENSION));
+    SumData s = { output->v, output->w, 0. };
+    output_scalar_traverse (output,
+			    FTT_PRE_ORDER, 
+			    FTT_TRAVERSE_LEAFS|FTT_TRAVERSE_LEVEL,
+			    output->maxlevel,
+			    (FttCellTraverseFunc) add, &s);
+    gfs_all_reduce (GFS_DOMAIN (sim), s.sum, MPI_DOUBLE, MPI_SUM);
+    if (!output->w)
+      s.sum *= pow (sim->physical_params.L, FTT_DIMENSION);
+    fprintf (GFS_OUTPUT (event)->file->fp,
+	     "%s time: %g sum: % 15.6e\n", 
+	     output->name, sim->time.t, s.sum);
     return TRUE;
   }
   return FALSE;
@@ -2054,7 +2105,12 @@ GfsOutputClass * gfs_output_scalar_sum_class (void)
   return klass;
 }
 
-/* GfsOutputScalarMaxima: Object */
+/** \endobject{GfsOutputScalarSum} */
+
+/**
+ *
+ * \beginobject{GfsOutputScalarMaxima}
+ */
 
 static void gfs_output_scalar_maxima_destroy (GtsObject * o)
 {
@@ -2124,11 +2180,11 @@ static gboolean gfs_output_scalar_maxima_event (GfsEvent * event,
     for (i = 0; i < m->N; i++)
       m->m[3][i] = -G_MAXDOUBLE;
 
-    gfs_domain_cell_traverse (GFS_DOMAIN (sim),
-			      FTT_PRE_ORDER, 
-			      FTT_TRAVERSE_LEAFS|FTT_TRAVERSE_LEVEL,
-			      output->maxlevel,
-			      (FttCellTraverseFunc) maxima, m);
+    output_scalar_traverse (output,
+			    FTT_PRE_ORDER, 
+			    FTT_TRAVERSE_LEAFS|FTT_TRAVERSE_LEVEL,
+			    output->maxlevel,
+			    (FttCellTraverseFunc) maxima, m);
     for (i = 0; i < m->N; i++)
       fprintf (GFS_OUTPUT (event)->file->fp, 
 	       "%s time: %g #: %d x: %g y: %g z: %g value: %g\n", 
@@ -2169,7 +2225,12 @@ GfsOutputClass * gfs_output_scalar_maxima_class (void)
   return klass;
 }
 
-/* GfsOutputScalarHistogram: Object */
+/** \endobject{GfsOutputScalarMaxima} */
+
+/**
+ * Computing histograms.
+ * \beginobject{GfsOutputScalarHistogram}
+ */
 
 static void gfs_output_scalar_histogram_destroy (GtsObject * o)
 {
@@ -2326,10 +2387,21 @@ static gboolean gfs_output_scalar_histogram_event (GfsEvent * event,
       GfsOutput * output = GFS_OUTPUT (event);
       guint i;
 
-      gfs_domain_cell_traverse (GFS_DOMAIN (sim), FTT_PRE_ORDER, 
+      gfs_catch_floating_point_exceptions ();
+      output_scalar_traverse (GFS_OUTPUT_SCALAR (output), FTT_PRE_ORDER, 
 				FTT_TRAVERSE_LEAFS|FTT_TRAVERSE_LEVEL, 
 				GFS_OUTPUT_SCALAR (output)->maxlevel,
 				(FttCellTraverseFunc) update_histogram, output);
+      if (gfs_restore_floating_point_exceptions ()) {
+	gchar * s = g_strdup ("\n");
+	if (h->wf)
+	  s = g_strconcat (s, gfs_function_description (h->wf, FALSE), NULL);
+	if (h->yf)
+	  s = g_strconcat (s, "\n", gfs_function_description (h->yf, FALSE), NULL);
+	/* fixme: memory leaks */
+	g_message ("floating-point exception in user-defined function(s):%s", s);
+	exit (1);
+      }
 
       if (output->file && !output->dynamic)
 	output->file->fp = freopen (output->format, "w", output->file->fp);
@@ -2340,8 +2412,6 @@ static gboolean gfs_output_scalar_histogram_event (GfsEvent * event,
 	    fprintf (output->file->fp, " %g", h->y[i]/h->w[i]);
 	  fputc ('\n', output->file->fp);
 	}
-      if (output->file && !output->dynamic)
-	fflush (output->file->fp);
     }
     h->last = sim->time.t;
     return TRUE;
@@ -2388,7 +2458,12 @@ GfsOutputClass * gfs_output_scalar_histogram_class (void)
   return klass;
 }
 
-/* GfsOutputDropletSums: Object */
+/** \endobject{GfsOutputScalarHistogram} */
+
+/**
+ * Computing sums for each droplet.
+ * \beginobject{GfsOutputDropletSums}
+ */
 
 static void gfs_output_droplet_sums_destroy (GtsObject * object)
 {
@@ -2476,15 +2551,17 @@ static gboolean gfs_output_droplet_sums_event (GfsEvent * event, GfsSimulation *
     if (!p.c) {
       p.c = gfs_temporary_variable (domain);
       p.fc = d->c;
+      gfs_catch_floating_point_exceptions ();
       gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, FTT_TRAVERSE_ALL, -1,
 				(FttCellTraverseFunc) compute_c, &p);
+      gfs_restore_fpe_for_function (p.fc);
     }
     p.tag = d->tag ? d->tag : gfs_temporary_variable (domain);
     p.n = gfs_domain_tag_droplets (domain, p.c, p.tag);
     if (p.n > 0) {
       p.v = g_malloc0 (p.n*sizeof (VolumePair));
-      gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
-				(FttCellTraverseFunc) droplet_sums, &p);
+      output_scalar_traverse (GFS_OUTPUT_SCALAR (event), FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
+			      (FttCellTraverseFunc) droplet_sums, &p);
 #ifdef HAVE_MPI
       if (domain->pid >= 0) {
 	VolumePair * gv = g_malloc0 (p.n*sizeof (VolumePair));
@@ -2542,7 +2619,12 @@ GfsOutputClass * gfs_output_droplet_sums_class (void)
   return klass;
 }
 
-/* GfsOutputErrorNorm: Object */
+/** \endobject{GfsOutputDropletSums} */
+
+/**
+ * Computing differences to a reference solution.
+ * \beginobject{GfsOutputErrorNorm}
+ */
 
 static void output_error_norm_destroy (GtsObject * o)
 {
@@ -2711,43 +2793,54 @@ static gboolean gfs_output_error_norm_event (GfsEvent * event,
     GfsOutputScalar * output = GFS_OUTPUT_SCALAR (event);
     GfsOutputErrorNorm * enorm = GFS_OUTPUT_ERROR_NORM (event);
     GfsVariable * v = enorm->v;
-    GfsNorm norm, snorm;
+    GfsNorm norm, snorm = { 0., 0., 0., 0. };
 
     if (v == NULL)
       enorm->v = gfs_temporary_variable (domain);
     if (enorm->relative) {
-      gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, 
-				FTT_TRAVERSE_LEAFS|FTT_TRAVERSE_LEVEL,  
-				output->maxlevel,
-				(FttCellTraverseFunc) reference_solution, output);
+      gfs_catch_floating_point_exceptions ();
+      output_scalar_traverse (output, FTT_PRE_ORDER, 
+			      FTT_TRAVERSE_LEAFS|FTT_TRAVERSE_LEVEL,  
+			      output->maxlevel,
+			      (FttCellTraverseFunc) reference_solution, output);
+      gfs_restore_fpe_for_function (enorm->s);
       snorm = gfs_domain_norm_variable (domain, enorm->v, enorm->w,
 					FTT_TRAVERSE_LEAFS|FTT_TRAVERSE_LEVEL, 
-					output->maxlevel);
-      gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, 
-				FTT_TRAVERSE_LEAFS|FTT_TRAVERSE_LEVEL,  
-				output->maxlevel,
-				(FttCellTraverseFunc) substract, output);
+					output->maxlevel,
+					output->condition ? cell_condition : NULL,
+					output->condition);
+      output_scalar_traverse (output, FTT_PRE_ORDER, 
+			      FTT_TRAVERSE_LEAFS|FTT_TRAVERSE_LEVEL,  
+			      output->maxlevel,
+			      (FttCellTraverseFunc) substract, output);
+    }
+    else {
+      gfs_catch_floating_point_exceptions ();
+      output_scalar_traverse (output, FTT_PRE_ORDER, 
+			      FTT_TRAVERSE_LEAFS|FTT_TRAVERSE_LEVEL,  
+			      output->maxlevel,
+			      (FttCellTraverseFunc) compute_error, output);
+      gfs_restore_fpe_for_function (enorm->s);
     }
-    else
-      gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, 
-				FTT_TRAVERSE_LEAFS|FTT_TRAVERSE_LEVEL,  
-				output->maxlevel,
-				(FttCellTraverseFunc) compute_error, output);
     norm = gfs_domain_norm_variable (domain, enorm->v, enorm->w,
 				     FTT_TRAVERSE_LEAFS|FTT_TRAVERSE_LEVEL, 
-				     output->maxlevel);
+				     output->maxlevel,
+				     output->condition ? cell_condition : NULL,
+				     output->condition);
     if (GFS_OUTPUT_ERROR_NORM (event)->unbiased) {
       gpointer data[2];
 
       data[0] = enorm->v;
       data[1] = &norm;
-      gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, 
-				FTT_TRAVERSE_LEAFS|FTT_TRAVERSE_LEVEL,  
-				output->maxlevel,
-				(FttCellTraverseFunc) remove_bias, data);
+      output_scalar_traverse (output, FTT_PRE_ORDER, 
+			      FTT_TRAVERSE_LEAFS|FTT_TRAVERSE_LEVEL,  
+			      output->maxlevel,
+			      (FttCellTraverseFunc) remove_bias, data);
       norm = gfs_domain_norm_variable (domain, enorm->v, enorm->w,
 				       FTT_TRAVERSE_LEAFS|FTT_TRAVERSE_LEVEL, 
-				       output->maxlevel);
+				       output->maxlevel,
+				       output->condition ? cell_condition : NULL,
+				       output->condition);
     }
     if (v == NULL) {
       gts_object_destroy (GTS_OBJECT (enorm->v));
@@ -2802,7 +2895,12 @@ GfsOutputClass * gfs_output_error_norm_class (void)
   return klass;
 }
 
-/* GfsOutputCorrelation: Object */
+/** \endobject{GfsOutputErrorNorm} */
+
+/**
+ * 
+ * \beginobject{GfsOutputCorrelation}
+ */
 
 static void compute_correlation (FttCell * cell, gpointer * data)
 {
@@ -2836,22 +2934,26 @@ static gboolean gfs_output_correlation_event (GfsEvent * event,
     if (v == NULL)
       enorm->v = gfs_temporary_variable (GFS_DOMAIN (sim));
     if (enorm->unbiased) {
-      gfs_domain_cell_traverse (GFS_DOMAIN (sim), FTT_PRE_ORDER,
-				FTT_TRAVERSE_LEAFS|FTT_TRAVERSE_LEVEL,
-				output->maxlevel,
-				(FttCellTraverseFunc) compute_error, output);
+      output_scalar_traverse (output, FTT_PRE_ORDER,
+			      FTT_TRAVERSE_LEAFS|FTT_TRAVERSE_LEVEL,
+			      output->maxlevel,
+			      (FttCellTraverseFunc) compute_error, output);
       bias = gfs_domain_norm_variable (GFS_DOMAIN (sim), enorm->v, NULL,
 				       FTT_TRAVERSE_LEAFS|FTT_TRAVERSE_LEVEL, 
-				       output->maxlevel).bias;
+				       output->maxlevel,
+				       output->condition ? cell_condition : NULL,
+				       output->condition).bias;
     }
     data[0] = output;
     data[1] = &bias;
     data[2] = &sum;
     data[3] = &sumref;
-    gfs_domain_cell_traverse (GFS_DOMAIN (sim), FTT_PRE_ORDER,
-			      FTT_TRAVERSE_LEAFS|FTT_TRAVERSE_LEVEL,
-			      output->maxlevel,
-			      (FttCellTraverseFunc) compute_correlation, data);
+    gfs_catch_floating_point_exceptions ();
+    output_scalar_traverse (output, FTT_PRE_ORDER,
+			    FTT_TRAVERSE_LEAFS|FTT_TRAVERSE_LEVEL,
+			    output->maxlevel,
+			    (FttCellTraverseFunc) compute_correlation, data);
+    gfs_restore_fpe_for_function (enorm->s);
     if (v == NULL) {
       gts_object_destroy (GTS_OBJECT (enorm->v));
       enorm->v = NULL;
@@ -2890,7 +2992,12 @@ GfsOutputClass * gfs_output_correlation_class (void)
   return klass;
 }
 
-/* GfsOutputSquares: Object */
+/** \endobject{GfsOutputCorrelation} */
+
+/**
+ *
+ * \beginobject{GfsOutputSquares}
+ */
 
 static gboolean gfs_output_squares_event (GfsEvent * event, GfsSimulation * sim)
 {
@@ -2903,7 +3010,6 @@ static gboolean gfs_output_squares_event (GfsEvent * event, GfsSimulation * sim)
 		       FTT_TRAVERSE_LEAFS|FTT_TRAVERSE_LEVEL,
 		       output->maxlevel, NULL, 
 		       GFS_OUTPUT (event)->file->fp);
-    fflush (GFS_OUTPUT (event)->file->fp);
     return TRUE;
   }
   return FALSE;
@@ -2935,7 +3041,12 @@ GfsOutputClass * gfs_output_squares_class (void)
   return klass;
 }
 
-/* GfsOutputStreamline: Object */
+/** \endobject{GfsOutputSquares} */
+
+/**
+ *
+ * \beginobject{GfsOutputStreamline}
+ */
 
 static void gfs_output_streamline_read (GtsObject ** o, GtsFile * fp)
 {
@@ -2995,7 +3106,6 @@ static gboolean gfs_output_streamline_event (GfsEvent * event,
 					 NULL, NULL);
     /* fixme: mapping is not taken into account */
     gfs_streamline_write (stream, GFS_OUTPUT (event)->file->fp);
-    fflush (GFS_OUTPUT (event)->file->fp);
     gfs_streamline_destroy (stream);
     return TRUE;
   }
@@ -3030,65 +3140,12 @@ GfsOutputClass * gfs_output_streamline_class (void)
   return klass;
 }
 
-/* GfsOutputParticle: Object */
-
-static gboolean gfs_output_particle_event (GfsEvent * event, 
-					   GfsSimulation * sim)
-{
-  GfsOutputLocation * location = GFS_OUTPUT_LOCATION (event);
-  gboolean ret = FALSE;
-  guint i;
-
-  if ((* GFS_EVENT_CLASS (GTS_OBJECT_CLASS (gfs_output_location_class ())->parent_class)->event)
-      (event,sim)) {
-    FILE * fp = GFS_OUTPUT (event)->file->fp;
-
-    for (i = 0; i < location->p->len; i++) {
-      FttVector p = g_array_index (location->p, FttVector, i);
-      fprintf (fp, "%d %g %g %g %g\n", i, sim->time.t, p.x, p.y, p.z);
-    }
-    fflush (fp);
-    ret = TRUE;
-  }
-  
-  for (i = 0; i < location->p->len; i++) {
-    FttVector p = g_array_index (location->p, FttVector, i);
-    gfs_simulation_map (sim, &p);
-    gfs_domain_advect_point (GFS_DOMAIN (sim), &p, sim->advection_params.dt);
-    gfs_simulation_map_inverse (sim, &p);
-    g_array_index (location->p, FttVector, i) = p;
-  }
-
-  return ret;
-}
-
-static void gfs_output_particle_class_init (GfsOutputClass * klass)
-{
-  GFS_EVENT_CLASS (klass)->event = gfs_output_particle_event;
-}
+/** \endobject{GfsOutputStreamline} */
 
-GfsOutputClass * gfs_output_particle_class (void)
-{
-  static GfsOutputClass * klass = NULL;
-
-  if (klass == NULL) {
-    GtsObjectClassInfo gfs_output_particle_info = {
-      "GfsOutputParticle",
-      sizeof (GfsOutputLocation),
-      sizeof (GfsOutputClass),
-      (GtsObjectClassInitFunc) gfs_output_particle_class_init,
-      (GtsObjectInitFunc) NULL,
-      (GtsArgSetFunc) NULL,
-      (GtsArgGetFunc) NULL
-    };
-    klass = gts_object_class_new (GTS_OBJECT_CLASS (gfs_output_location_class ()),
-				  &gfs_output_particle_info);
-  }
-
-  return klass;
-}
-
-/* GfsOutputPPM: Object */
+/**
+ * Writing 2D images.
+ * \beginobject{GfsOutputPPM}
+ */
 
 static void gfs_output_ppm_read (GtsObject ** o, GtsFile * fp)
 {
@@ -3104,7 +3161,7 @@ static void gfs_output_ppm_read (GtsObject ** o, GtsFile * fp)
 		    "only for GfsOcean simulations");
     return;
   }
-#endif /* 2D3 or 3D */
+#endif /* 3D */
 }
 
 static gboolean gfs_output_ppm_event (GfsEvent * event, GfsSimulation * sim)
@@ -3114,16 +3171,16 @@ static gboolean gfs_output_ppm_event (GfsEvent * event, GfsSimulation * sim)
     GfsOutputScalar * output = GFS_OUTPUT_SCALAR (event);
 #if FTT_2D
     GfsDomain * domain = GFS_DOMAIN (sim);
-#else /* 2D3 or 3D */
+#else /* 3D */
     GfsDomain * domain = GFS_IS_OCEAN (sim) ? GFS_OCEAN (sim)->toplayer : GFS_DOMAIN (sim);
-#endif /* 2D3 or 3D */
+#endif /* 3D */
 
     gfs_write_ppm (domain,
-		   output->box,
+		   output->condition,
 		   output->v, output->min, output->max,
 		   FTT_TRAVERSE_LEAFS|FTT_TRAVERSE_LEVEL, output->maxlevel,
-		   GFS_OUTPUT (event)->file->fp);
-    fflush (GFS_OUTPUT (event)->file->fp);
+		   GFS_OUTPUT (event)->file->fp,
+		   GFS_OUTPUT (event)->parallel);
     return TRUE;
   }
   return FALSE;
@@ -3155,3 +3212,138 @@ GfsOutputClass * gfs_output_ppm_class (void)
 
   return klass;
 }
+
+/** \endobject{GfsOutputPPM} */
+
+/**
+ * Writing 2D ESRI raster files.
+ * \beginobject{GfsOutputGRD}
+ */
+
+static gboolean gfs_output_grd_event (GfsEvent * event, GfsSimulation * sim)
+{
+  if ((* GFS_EVENT_CLASS (GTS_OBJECT_CLASS (gfs_output_grd_class ())->parent_class)->event) 
+      (event, sim)) {
+    GfsOutputScalar * output = GFS_OUTPUT_SCALAR (event);
+#if FTT_2D
+    GfsDomain * domain = GFS_DOMAIN (sim);
+#else /* 3D */
+    GfsDomain * domain = GFS_IS_OCEAN (sim) ? GFS_OCEAN (sim)->toplayer : GFS_DOMAIN (sim);
+#endif /* 3D */
+    FttVector o = {0.,0.,0.};
+    gfs_simulation_map_inverse (sim, &o);
+    gfs_write_grd (domain,
+		   output->condition,
+		   output->v,
+		   o.x, o.y, sim->physical_params.L,
+		   FTT_TRAVERSE_LEAFS|FTT_TRAVERSE_LEVEL, output->maxlevel,
+		   GFS_OUTPUT (event)->file->fp,
+		   GFS_OUTPUT (event)->parallel);
+    return TRUE;
+  }
+  return FALSE;
+}
+
+static void gfs_output_grd_class_init (GfsOutputClass * klass)
+{
+  GFS_EVENT_CLASS (klass)->event = gfs_output_grd_event;
+}
+
+GfsOutputClass * gfs_output_grd_class (void)
+{
+  static GfsOutputClass * klass = NULL;
+
+  if (klass == NULL) {
+    GtsObjectClassInfo gfs_output_grd_info = {
+      "GfsOutputGRD",
+      sizeof (GfsOutputScalar),
+      sizeof (GfsOutputClass),
+      (GtsObjectClassInitFunc) gfs_output_grd_class_init,
+      (GtsObjectInitFunc) NULL,
+      (GtsArgSetFunc) NULL,
+      (GtsArgGetFunc) NULL
+    };
+    klass = gts_object_class_new (GTS_OBJECT_CLASS (gfs_output_scalar_class ()),
+				  &gfs_output_grd_info);
+  }
+
+  return klass;
+}
+
+/** \endobject{GfsOutputGRD} */
+
+/**
+ * Calling the write method of a given object.
+ * \beginobject{GfsOutputObject}
+ */
+
+static void output_object_read (GtsObject ** o, GtsFile * fp)
+{
+  (* GTS_OBJECT_CLASS (gfs_output_class())->read) (o, fp);
+  if (fp->type == GTS_ERROR)
+    return;
+
+  if (fp->type != GTS_STRING) {
+    gts_file_error (fp, "expecting a string (object name)");
+    return;
+  }
+  GfsOutputObject * output = GFS_OUTPUT_OBJECT (*o);
+  output->object = gfs_object_from_name (GFS_DOMAIN (gfs_object_simulation (*o)), fp->token->str);
+  if (output->object == NULL)
+    gts_file_error (fp, "unknown object '%s'", fp->token->str);
+  else
+    gts_file_next_token (fp);
+}
+
+static void output_object_write (GtsObject * o, FILE * fp)
+{
+  GfsOutputObject * output = GFS_OUTPUT_OBJECT (o);
+
+  (* GTS_OBJECT_CLASS (gfs_output_object_class ())->parent_class->write) (o, fp);
+  
+  fprintf (fp, " %s\n", GFS_EVENT (output->object)->name );
+}
+
+static gboolean output_object_event (GfsEvent * event, GfsSimulation * sim)
+{
+  if ((* GFS_EVENT_CLASS (gfs_output_class())->event) (event, sim)) {
+    GtsObject * object = GFS_OUTPUT_OBJECT (event)->object;
+    FILE * fp = GFS_OUTPUT (event)->file->fp;
+
+    object->klass->write (object, fp);
+    fprintf (fp, "\n");
+
+    return TRUE;
+  }
+  return FALSE;
+}
+
+static void gfs_output_object_class_init (GfsOutputClass * klass)
+{
+  GTS_OBJECT_CLASS (klass)->read = output_object_read;
+  GTS_OBJECT_CLASS (klass)->write = output_object_write;
+  GFS_EVENT_CLASS(klass)->event = output_object_event;
+}
+
+GfsOutputClass * gfs_output_object_class (void)
+{
+  static GfsOutputClass * klass = NULL;
+
+  if (klass == NULL) {
+    GtsObjectClassInfo gfs_output_object_info = {
+      "GfsOutputObject",
+      sizeof (GfsOutputObject),
+      sizeof (GfsOutputClass),
+      (GtsObjectClassInitFunc) gfs_output_object_class_init,
+      (GtsObjectInitFunc) NULL,
+      (GtsArgSetFunc) NULL,
+      (GtsArgGetFunc) NULL
+    };
+    klass = gts_object_class_new (GTS_OBJECT_CLASS (gfs_output_class ()),
+				  &gfs_output_object_info);
+  }
+
+  return klass;
+}
+
+/** \endobject{GfsOutputObject} */
diff --git a/src/output.h b/src/output.h
index c35c7a9..25ea944 100644
--- a/src/output.h
+++ b/src/output.h
@@ -71,23 +71,6 @@ void            gfs_output_file_close   (GfsOutputFile * file);
 
 /* GfsOutputTime: Header */
 
-typedef struct _GfsOutputTime         GfsOutputTime;
-
-struct _GfsOutputTime {
-  /*< private >*/
-  GfsOutput parent;
-
-  /*< public >*/
-  GfsClock * clock;
-  GTimer * timer;
-};
-
-#define GFS_OUTPUT_TIME(obj)            GTS_OBJECT_CAST (obj,\
-					         GfsOutputTime,\
-					         gfs_output_time_class ())
-#define GFS_IS_OUTPUT_TIME(obj)         (gts_object_is_from_class (obj,\
-						 gfs_output_time_class ()))
-
 GfsOutputClass * gfs_output_time_class  (void);
 
 /* GfsOutputProgress: Header */
@@ -146,6 +129,8 @@ struct _GfsOutputLocation {
 
   /*< public >*/
   GArray * p;
+  gchar * precision, * label;
+  gboolean interpolate;
 };
 
 #define GFS_OUTPUT_LOCATION(obj)            GTS_OBJECT_CAST (obj,\
@@ -204,7 +189,7 @@ struct _GfsOutputScalar {
   gchar * name;
   gdouble min, max;
   gint maxlevel;
-  GtsBBox * box;
+  GfsFunction * condition, * w;
 };
 
 #define GFS_OUTPUT_SCALAR(obj)            GTS_OBJECT_CAST (obj,\
@@ -360,6 +345,33 @@ GfsOutputClass * gfs_output_particle_class  (void);
 
 GfsOutputClass * gfs_output_ppm_class  (void);
 
+/* GfsOutputGRD: Header */
+
+#define GFS_IS_OUTPUT_GRD(obj)         (gts_object_is_from_class (obj,\
+						 gfs_output_grd_class ()))
+
+GfsOutputClass * gfs_output_grd_class  (void);
+
+/* GfsOutputObject: Header */
+
+typedef struct _GfsOutputObject         GfsOutputObject;
+
+struct _GfsOutputObject {
+  /*< private >*/
+  GfsOutput parent;
+
+  /*< public >*/
+  GtsObject * object;
+};
+
+#define GFS_OUTPUT_OBJECT(obj)            GTS_OBJECT_CAST (obj,\
+					         GfsOutputObject,\
+					         gfs_output_object_class ())
+#define GFS_IS_OUTPUT_OBJECT(obj)         (gts_object_is_from_class (obj,\
+						 gfs_output_object_class ()))
+
+GfsOutputClass * gfs_output_object_class  (void);
+
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */
diff --git a/src/particle.c b/src/particle.c
new file mode 100644
index 0000000..93ce3db
--- /dev/null
+++ b/src/particle.c
@@ -0,0 +1,112 @@
+/* Gerris - The GNU Flow Solver			(-*-C-*-)
+ * Copyright (C) 2009 National Institute of Water and Atmospheric Research
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+/*! \file
+ * \brief Lagrangian particles.
+ */
+
+#include <stdlib.h>
+#include "particle.h"
+
+/**
+ * Lagrangian particules.
+ * \beginobject{GfsParticle}
+ */
+
+static gboolean gfs_particle_event (GfsEvent * event, 
+				    GfsSimulation * sim)
+{
+  if ((* GFS_EVENT_CLASS (GTS_OBJECT_CLASS (gfs_particle_class ())->parent_class)->event)
+      (event, sim)) {
+    GfsParticle * p = GFS_PARTICLE (event);
+    FttVector pos = p->pos;
+    gfs_simulation_map (sim, &pos);
+    gfs_domain_advect_point (GFS_DOMAIN (sim), &pos, sim->advection_params.dt);
+    gfs_simulation_map_inverse (sim, &pos);
+    p->pos = pos;
+    return TRUE;
+  }
+  return FALSE;
+}
+
+static void gfs_particle_read (GtsObject ** o, GtsFile * fp)
+{
+  GfsParticle * p = GFS_PARTICLE(*o);
+
+  if (fp->type != GTS_INT) {
+    gts_file_error (fp, "expecting an integer (Id)");
+    return;
+  }
+  p->id = atoi (fp->token->str);
+  gts_file_next_token (fp);
+
+  if (fp->type != GTS_INT && fp->type != GTS_FLOAT) {
+    gts_file_error (fp, "expecting a number (p.x)");
+    return;
+  }
+  p->pos.x = atof (fp->token->str);
+  gts_file_next_token (fp);
+  
+  if (fp->type != GTS_INT && fp->type != GTS_FLOAT) {
+    gts_file_error (fp, "expecting a number (p.y)");
+    return;
+  }
+  p->pos.y = atof (fp->token->str);
+  gts_file_next_token (fp);
+  
+  if (fp->type != GTS_INT && fp->type != GTS_FLOAT) {
+    gts_file_error (fp, "expecting a number (p.z)");
+    return;
+  }
+  p->pos.z = atof (fp->token->str);
+  gts_file_next_token (fp);
+}
+
+static void gfs_particle_write (GtsObject * o, FILE * fp)
+{
+  GfsParticle * p = GFS_PARTICLE(o);
+  fprintf (fp, " %d %g %g %g", p->id, p->pos.x, p->pos.y, p->pos.z);
+}
+
+static void gfs_particle_class_init (GfsEventClass * klass)
+{
+  GFS_EVENT_CLASS (klass)->event =  gfs_particle_event;
+  GTS_OBJECT_CLASS (klass)->read =  gfs_particle_read;
+  GTS_OBJECT_CLASS (klass)->write = gfs_particle_write;
+}
+
+GfsEventClass * gfs_particle_class (void)
+{
+  static GfsEventClass * klass = NULL;
+
+  if (klass == NULL) {
+    GtsObjectClassInfo gfs_particle_info = {
+      "GfsParticle",
+      sizeof (GfsParticle),
+      sizeof (GfsEventClass),
+      (GtsObjectClassInitFunc) gfs_particle_class_init,
+      (GtsArgSetFunc) NULL,
+      (GtsArgGetFunc) NULL
+    };
+    klass = gts_object_class_new (GTS_OBJECT_CLASS (gfs_event_class ()),
+				  &gfs_particle_info);
+  }
+  return klass;
+}
+
+/** \endobject{GfsParticle} */
diff --git a/src/particle.h b/src/particle.h
new file mode 100644
index 0000000..8124a49
--- /dev/null
+++ b/src/particle.h
@@ -0,0 +1,51 @@
+/* Gerris - The GNU Flow Solver			(-*-C-*-)
+ * Copyright (C) 2009 National Institute of Water and Atmospheric Research
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef __PARTICLE_H__
+#define __PARTICLE_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+#include "event.h"
+
+/* Particle: header */
+
+typedef struct _GfsParticle GfsParticle;
+
+struct _GfsParticle {
+  GfsEvent parent;
+  FttVector pos;
+  guint id;
+};
+
+#define GFS_PARTICLE(obj)            GTS_OBJECT_CAST (obj,\
+					         GfsParticle,\
+					         gfs_particle_class ())
+#define GFS_IS_PARTICLE(obj)         (gts_object_is_from_class (obj,\
+						 gfs_particle_class ()))
+
+GfsEventClass * gfs_particle_class  (void);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* __PARTICLE_H__ */
diff --git a/src/poisson.c b/src/poisson.c
index 8dc8d21..4880364 100644
--- a/src/poisson.c
+++ b/src/poisson.c
@@ -16,12 +16,18 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
  * 02111-1307, USA.  
  */
+/*! \file
+ * \brief Poisson and diffusion solvers.
+ */
 
 #include <math.h>
+#include <stdlib.h>
 #include "poisson.h"
 #include "solid.h"
 #include "source.h"
 #include "tension.h"
+#include "init.h"
+#include "mpi_boundary.h"
 
 /**
  * gfs_multilevel_params_write:
@@ -74,6 +80,8 @@ void gfs_multilevel_params_init (GfsMultilevelParams * par)
   par->weighted = FALSE;
   par->beta = 0.5;
   par->omega = 1.;
+
+  par->poisson_solve = gfs_poisson_solve;
 }
 
 void gfs_multilevel_params_read (GfsMultilevelParams * par, GtsFile * fp)
@@ -168,6 +176,325 @@ void gfs_multilevel_params_stats_write (GfsMultilevelParams * par,
 		 par->niter));
 }
 
+/* GfsLinearProblem: Object */
+
+/**
+ * gfs_linear_problem_new:
+ * @domain: a #GfsDomain.
+ *
+ * Returns: a new #GfsLinearProblem.
+ */
+GfsLinearProblem * gfs_linear_problem_new (GfsDomain * domain)
+{
+  g_return_val_if_fail (domain != NULL, NULL);
+
+  GfsLinearProblem * lp = g_malloc (sizeof (GfsLinearProblem));
+
+  lp->rhs = g_array_new (FALSE, FALSE, sizeof (gdouble));
+  lp->lhs = g_array_new (FALSE, FALSE, sizeof (gdouble));
+  lp->LP = g_ptr_array_new ();
+  lp->id = gfs_temporary_variable (domain);
+  lp->neighbor = gfs_temporary_variable (domain);
+  lp->neighborw = gfs_temporary_variable (domain);
+  lp->istart = 0;
+
+  return lp;
+}
+
+/**
+ * gfs_linear_problem_add_stencil:
+ * @lp: a #GfsLinearProblem.
+ * @stencil: a #GfsStencil. 
+ *
+ * Adds a stencil to the linear problem.
+ */
+void gfs_linear_problem_add_stencil (GfsLinearProblem * lp, 
+				     GfsStencil * stencil)
+{
+  g_return_if_fail (lp != NULL);
+  g_return_if_fail (stencil != NULL);
+
+  g_ptr_array_add (lp->LP, stencil);
+}
+
+/**
+ * gfs_linear_problem_destroy:
+ * @lp: a #GfsLinearProblem.
+ * 
+ * Destroys a #GfsLinearProblem.
+ */
+void gfs_linear_problem_destroy (GfsLinearProblem * lp)
+{
+  g_return_if_fail (lp != NULL);
+
+  gts_object_destroy (GTS_OBJECT (lp->id));
+  gts_object_destroy (GTS_OBJECT (lp->neighbor));
+  gts_object_destroy (GTS_OBJECT (lp->neighborw));
+
+  g_array_free (lp->rhs, TRUE);  
+  g_array_free (lp->lhs, TRUE);
+
+  int i;
+  for (i = 0; i < lp->LP->len; i++)
+    gfs_stencil_destroy (g_ptr_array_index (lp->LP, i));
+
+  g_ptr_array_free (lp->LP, TRUE);
+}
+
+typedef struct {
+  GfsLinearProblem * lp;
+  GfsVariable * dia;
+  gint maxlevel;
+} RelaxStencilParams;
+
+static void relax_stencil (FttCell * cell, RelaxStencilParams * p)
+{
+  GfsGradient g;
+  FttCellNeighbors neighbor;
+  FttCellFace f;
+  GfsGradient ng;
+  
+  GfsStencil * stencil = gfs_stencil_new (cell, p->lp, 0.);
+
+  g.a = GFS_VALUE (cell, p->dia);
+  f.cell = cell;
+  ftt_cell_neighbors (cell, &neighbor);
+  for (f.d = 0; f.d < FTT_NEIGHBORS; f.d++) {
+    f.neighbor = neighbor.c[f.d];
+    if (f.neighbor) {
+      gfs_face_weighted_gradient_stencil (&f, &ng, p->maxlevel, p->lp, stencil);
+      g.a += ng.a;
+    }
+  }
+
+  if (g.a > 0.)
+    gfs_stencil_add_element (stencil, cell, p->lp, -g.a);
+  else {
+    gfs_stencil_destroy (stencil);
+    stencil = gfs_stencil_new (cell, p->lp, 1.);
+    g_array_index (p->lp->rhs, gdouble, (gint) GFS_VALUE (cell, p->lp->id)) = 0.;
+  }
+
+  gfs_linear_problem_add_stencil (p->lp, stencil);
+}
+
+static void relax_dirichlet_stencil (FttCell * cell, RelaxStencilParams * p)
+{
+  GfsGradient g;
+  FttCellNeighbors neighbor;
+  FttCellFace f;
+  GfsGradient ng;
+  GfsVariable * id = p->lp->id;
+
+  GfsStencil * stencil = gfs_stencil_new (cell, p->lp, 0.);
+
+  g.a = GFS_VALUE (cell, p->dia);
+  if (GFS_IS_MIXED (cell) && ((cell)->flags & GFS_FLAG_DIRICHLET) != 0) {
+    g.b = gfs_cell_dirichlet_gradient_flux_stencil (cell, p->maxlevel, 0., p->lp, stencil);
+    /* Dirichlet contribution */
+    g_array_index (p->lp->lhs, gdouble, (gint) GFS_VALUE (cell, id)) -= g.b;
+  }
+
+  f.cell = cell;
+  ftt_cell_neighbors (cell, &neighbor);
+  for (f.d = 0; f.d < FTT_NEIGHBORS; f.d++) {
+    f.neighbor = neighbor.c[f.d];
+    gfs_face_cm_weighted_gradient_stencil (&f, &ng, p->maxlevel, p->lp, stencil);
+    g.a += ng.a;
+  }
+  if (g.a > 0.)
+    gfs_stencil_add_element (stencil, cell, p->lp,  -g.a);
+  else {
+    gfs_stencil_destroy (stencil);
+    stencil = gfs_stencil_new (cell, p->lp, 1.);
+    g_array_index (p->lp->rhs, gdouble, (gint) GFS_VALUE (cell, id)) = 0.;
+  }
+
+  gfs_linear_problem_add_stencil (p->lp, stencil);
+}
+
+typedef struct {
+  GfsLinearProblem * lp;
+  GfsVariable * lhs, * rhs;
+  guint nleafs;
+  gint maxlevel;
+  FttFaceTraverseFunc bc_number;
+} NumberingParams;
+
+static void leaves_numbering (FttCell * cell, NumberingParams * p)
+{ 
+  GFS_VALUE (cell, p->lp->id) = p->nleafs++;
+  GFS_DOUBLE_TO_POINTER (GFS_VALUE (cell, p->lp->neighbor)) = NULL;
+  g_array_append_val (p->lp->lhs, GFS_VALUE (cell, p->lhs));
+  g_array_append_val (p->lp->rhs, GFS_VALUE (cell, p->rhs));
+}
+
+static void bc_number (FttCellFace * f, NumberingParams * p)
+{
+  /* rhs = 0 as all boundary conditions are homogeneous */
+  GFS_VALUE (f->cell, p->rhs) = 0.;
+  g_array_append_val (p->lp->lhs, GFS_VALUE (f->cell, p->lhs));
+  g_array_append_val (p->lp->rhs, GFS_VALUE (f->cell, p->rhs));
+  GFS_VALUE (f->cell, p->lp->id) = p->nleafs++;
+}
+
+static void reset_bc (FttCellFace * f, GfsLinearProblem * lp)
+{
+  GFS_VALUE (f->cell, lp->id) = -1;
+  GFS_DOUBLE_TO_POINTER (GFS_VALUE (f->cell, lp->neighbor)) = NULL;
+}
+
+static void box_reset_bc (GfsBox * box, GfsLinearProblem * lp)
+{ 
+  FttDirection d;
+  
+  for (d = 0; d < FTT_NEIGHBORS; d++)
+    if (GFS_IS_BOUNDARY (box->neighbor[d]) && !GFS_IS_BOUNDARY_PERIODIC (box->neighbor[d])) {
+      GfsBoundary * b = GFS_BOUNDARY (box->neighbor[d]);
+      ftt_face_traverse_boundary (b->root, b->d,
+				  FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
+				  (FttFaceTraverseFunc) reset_bc, lp);
+    }
+}
+
+#ifdef HAVE_MPI
+
+static void set_mpi_domain_index (GfsDomain * domain, GfsLinearProblem * lp)
+{
+  int gsize, i;
+  guint * mpi_domain_index;
+
+  MPI_Comm_size (MPI_COMM_WORLD, &gsize);
+  mpi_domain_index = g_malloc (sizeof (guint)*gsize);
+
+  MPI_Allgather (&lp->rhs->len, 1, MPI_UNSIGNED, mpi_domain_index, 1, MPI_UNSIGNED, MPI_COMM_WORLD);
+
+  lp->istart = 0;
+  for (i = 0; i < domain->pid; i++)
+    lp->istart += mpi_domain_index[i];
+  
+  g_free (mpi_domain_index);
+}
+
+static void leaves_renumbering (FttCell * cell, NumberingParams * p)
+{ 
+  GFS_VALUE (cell, p->lp->id) = p->nleafs++;
+}
+
+#endif /* HAVE_MPI */
+
+typedef struct {
+  GfsVariable * lhs;
+  gboolean dirichlet;
+} CompatPar;
+
+static void check_box_dirichlet (GfsBox * box, CompatPar * p)
+{
+  FttDirection d;
+  for (d = 0; d < FTT_NEIGHBORS; d++)
+    if (GFS_IS_BOUNDARY (box->neighbor[d])) {
+      GfsBoundary * b = GFS_BOUNDARY (box->neighbor[d]);
+      GfsBc * bc = gfs_boundary_lookup_bc (b, p->lhs);
+      if (GFS_IS_BC_DIRICHLET (bc)) {
+	p->dirichlet = TRUE;
+	return;
+      }	
+    }
+}
+
+/**
+ * gfs_get_poisson_problem:
+ * @domain: the domain over which the poisson problem is defined
+ * @rhs: the variable to use as right-hand side
+ * @lhs: the variable to use as left-hand side
+ * @dia: the diagonal weight
+ * @maxlevel: the maximum level to consider (or -1).
+ * @v: a #GfsVariable of which @lhs is an homogeneous version.
+ *
+ * Extracts the poisson problem associated with @lhs and @rhs.
+ *
+ * Returns: a #GfsLinearProblem.
+ */
+GfsLinearProblem * gfs_get_poisson_problem (GfsDomain * domain,
+					    GfsVariable * rhs, GfsVariable * lhs,
+					    GfsVariable * dia, gint maxlevel,
+					    GfsVariable * v)
+{
+  gfs_domain_timer_start (domain, "get_poisson_problem");
+
+  GfsLinearProblem * lp = gfs_linear_problem_new (domain);
+  
+  /* Cell numbering */
+  
+  /* fixme: should it be FTT_TRAVERSE_LEVEL | FTT_TRAVERSE_LEAFS */
+  NumberingParams np = { lp, lhs, rhs, 0, maxlevel, (FttFaceTraverseFunc) bc_number };
+
+  gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, maxlevel,
+			    (FttCellTraverseFunc) leaves_numbering, &np);
+
+  if (domain->pid >= 0)
+    gfs_domain_bc (domain, FTT_TRAVERSE_LEVEL | FTT_TRAVERSE_LEAFS, -1, lp->id);
+
+#ifdef HAVE_MPI
+  /* Renumbering of the different subdomains for parallel simulations */
+  if (domain->pid >= 0) {
+    set_mpi_domain_index (domain, lp);
+
+    np.nleafs = lp->istart;
+    gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, maxlevel,
+			    (FttCellTraverseFunc) leaves_renumbering, &np);
+
+    gfs_domain_bc (domain, FTT_TRAVERSE_LEVEL | FTT_TRAVERSE_LEAFS, -1, lp->id);
+  }
+#endif /* HAVE_MPI */
+ 
+  /* Creates stencils on the fly */
+  RelaxStencilParams p = { lp, dia, maxlevel };
+
+  gts_container_foreach (GTS_CONTAINER (domain), (GtsFunc) box_reset_bc, lp);
+  gfs_domain_homogeneous_bc_stencil (domain, FTT_TRAVERSE_LEVEL | FTT_TRAVERSE_LEAFS,
+				     maxlevel, lhs, v, lp);
+  gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, FTT_TRAVERSE_LEVEL | FTT_TRAVERSE_LEAFS,
+			    maxlevel, (FttCellTraverseFunc) (v->centered ? relax_stencil:
+							     relax_dirichlet_stencil), &p);
+
+  /* If Neumann conditions are applied everywhere, the solution is
+     defined to within a constant so we need to remove one degree of
+     freedom to make the solution unique, assuming that the domain is
+     simply connected... */
+  if (v->centered &&
+      /* fixme: this seems to reduce the convergence speed for pure Poisson problems */
+      !GFS_IS_POISSON (domain)) {
+    /* check whether any boundary has a Dirichlet condition on @v */
+    CompatPar p = { v, FALSE };
+    gts_container_foreach (GTS_CONTAINER (domain), (GtsFunc) check_box_dirichlet, &p);
+    gfs_all_reduce (domain, p.dirichlet, MPI_INT, MPI_MAX);
+    if (!p.dirichlet) {
+      /* impose P = 0 for one unknown of the system */
+      int i;
+      for (i = 0; i < lp->rhs->len; i++) {
+	GfsStencil * stencil = g_ptr_array_index (lp->LP, i);
+	if (g_array_index (stencil->id, int, 0) == 0) {
+	  stencil->id->len = 1;
+	  stencil->coeff->len = 1;
+	  g_array_index (stencil->coeff, double, 0) = -1.;
+	  g_array_index (lp->rhs, double, i) = 0.;
+	}
+	else {
+	  int j, ncols = stencil->id->len;
+	  for (j = 0; j < ncols; j++)
+	    if (g_array_index (stencil->id, int, j) == 0)
+	      g_array_index (stencil->coeff, double, j) = 0.;
+	}
+      }
+    }
+  }
+  
+  gfs_domain_timer_stop (domain, "get_poisson_problem");
+
+  return lp;
+}
+
 typedef struct {
   guint u, rhs, dia, res;
   gint maxlevel;
@@ -176,6 +503,9 @@ typedef struct {
   guint axi;
 } RelaxParams;
 
+/* relax_stencil() needs to be updated whenever this
+ * function is modified
+ */
 static void relax (FttCell * cell, RelaxParams * p)
 {
   GfsGradient g;
@@ -228,11 +558,41 @@ static void relax2D (FttCell * cell, RelaxParams * p)
     GFS_VARIABLE (cell, p->u) = 0.;
 }
 
+/* relax_dirichlet_stencil() needs to be updated whenever this
+   function is modified */
+static void relax_dirichlet (FttCell * cell, RelaxParams * p)
+{
+  GfsGradient g;
+  FttCellNeighbors neighbor;
+  FttCellFace f;
+  GfsGradient ng;
+
+  g.a = GFS_VARIABLE (cell, p->dia);
+  if (GFS_IS_MIXED (cell) && ((cell)->flags & GFS_FLAG_DIRICHLET) != 0)
+    g.b = gfs_cell_dirichlet_gradient_flux (cell, p->u, p->maxlevel, 0.);
+  else
+    g.b = 0.;
+
+  f.cell = cell;
+  ftt_cell_neighbors (cell, &neighbor);
+  for (f.d = 0; f.d < FTT_NEIGHBORS; f.d++) {
+    f.neighbor = neighbor.c[f.d];
+    gfs_face_cm_weighted_gradient (&f, &ng, p->u, p->maxlevel);
+    g.a += ng.a;
+    g.b += ng.b;
+  }
+  if (g.a > 0.)
+    GFS_VARIABLE (cell, p->u) = (g.b - GFS_VARIABLE (cell, p->rhs))/g.a;
+  else
+    GFS_VARIABLE (cell, p->u) = 0.;
+}
+
 /**
  * gfs_relax:
  * @domain: the domain to relax.
  * @d: number of dimensions (2 or 3).
  * @max_depth: the maximum depth of the domain to relax.
+ * @omega: the over-relaxation parameter.
  * @u: the variable to use as left-hand side.
  * @rhs: the variable to use as right-hand side.
  * @dia: the diagonal weight.
@@ -267,7 +627,10 @@ void gfs_relax (GfsDomain * domain,
   gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, 
 			    FTT_TRAVERSE_LEVEL | FTT_TRAVERSE_LEAFS,
 			    max_depth,
-			    (FttCellTraverseFunc) (d == 2 ? relax2D : relax), &p);
+			    (FttCellTraverseFunc) (u->centered ?
+						   (d == 2 ? relax2D : relax) : 
+						   relax_dirichlet),
+			    &p);
 }
 
 static void residual_set (FttCell * cell, RelaxParams * p)
@@ -316,6 +679,31 @@ static void residual_set2D (FttCell * cell, RelaxParams * p)
     (g.b - GFS_VARIABLE (cell, p->u)*g.a);
 }
 
+static void residual_set_dirichlet (FttCell * cell, RelaxParams * p)
+{
+  GfsGradient g;
+  FttCellNeighbors neighbor;
+  FttCellFace f;
+  GfsGradient ng;
+
+  g.a = GFS_VARIABLE (cell, p->dia);
+  if (GFS_IS_MIXED (cell) && ((cell)->flags & GFS_FLAG_DIRICHLET) != 0)
+    g.b = gfs_cell_dirichlet_gradient_flux (cell, p->u, p->maxlevel, GFS_STATE (cell)->solid->fv);
+  else
+    g.b = 0.;
+
+  f.cell = cell;
+  ftt_cell_neighbors (cell, &neighbor);
+  for (f.d = 0; f.d < FTT_NEIGHBORS; f.d++) {
+    f.neighbor = neighbor.c[f.d];
+    gfs_face_cm_weighted_gradient (&f, &ng, p->u, p->maxlevel);
+    g.a += ng.a;
+    g.b += ng.b;
+  }
+  GFS_VARIABLE (cell, p->res) = GFS_VARIABLE (cell, p->rhs) - 
+    (g.b - GFS_VARIABLE (cell, p->u)*g.a);
+}
+
 /**
  * gfs_residual:
  * @domain: a domain.
@@ -354,10 +742,20 @@ void gfs_residual (GfsDomain * domain,
   p.res = res->i;
   p.maxlevel = max_depth;
   gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, flags, max_depth,
-			    (FttCellTraverseFunc) (d == 2 ? residual_set2D : residual_set), &p);
+			    (FttCellTraverseFunc) (u->centered ? 
+						   (d == 2 ? residual_set2D : residual_set) :
+						   residual_set_dirichlet),
+			    &p);
 }
 
-static void reset_coeff (FttCell * cell)
+typedef struct {
+  gdouble lambda2[FTT_DIMENSION];
+  GfsFunction * alpha;
+  GfsDomain * domain;
+  gboolean positive;
+} PoissonCoeff;
+
+static void reset_coeff (FttCell * cell, PoissonCoeff * p)
 {
   FttDirection d;
   GfsFaceStateVector * f = GFS_STATE (cell)->f;
@@ -366,19 +764,14 @@ static void reset_coeff (FttCell * cell)
     f[d].v = 0.;
 }
 
-typedef struct {
-  gdouble lambda2[FTT_DIMENSION];
-  GfsFunction * alpha;
-  GfsDomain * domain;
-} PoissonCoeff;
-
 static void poisson_coeff (FttCellFace * face,
 			   PoissonCoeff * p)
 {
   gdouble alpha = p->alpha ? gfs_function_face_value (p->alpha, face) : 1.;
-  gdouble v = p->lambda2[face->d/2]*alpha*gfs_domain_face_fraction (p->domain, face);
+  gdouble v = p->lambda2[face->d/2]*alpha*gfs_domain_face_fraction (p->domain, face)/
+    gfs_domain_face_scale_metric (p->domain, face, face->d/2);
 
-  if (alpha <= 0.) {
+  if (alpha <= 0. && p->positive) {
     FttVector p;
     ftt_face_pos (face, &p);
     g_log (G_LOG_DOMAIN, G_LOG_LEVEL_ERROR,
@@ -401,6 +794,24 @@ static void poisson_coeff (FttCellFace * face,
   }
 }
 
+static void poisson_mixed_coeff (FttCell * cell, PoissonCoeff * p)
+{
+  reset_coeff (cell, NULL);
+  if (GFS_IS_MIXED (cell)) {
+    gdouble alpha = p->alpha ? gfs_function_value (p->alpha, cell) : 1.;
+    GFS_STATE (cell)->solid->v = alpha*gfs_domain_solid_metric (p->domain, cell);
+
+    if (alpha <= 0. && p->positive) {
+      FttVector p;
+      ftt_cell_pos (cell, &p);
+      g_log (G_LOG_DOMAIN, G_LOG_LEVEL_ERROR,
+	     "alpha is negative (%g) at cell (%g,%g,%g).\n"
+	     "Please check your definition.",
+	     alpha, p.x, p.y, p.z);
+    }
+  }
+}
+
 static void face_coeff_from_below (FttCell * cell)
 {
   FttDirection d;
@@ -432,14 +843,18 @@ static void face_coeff_from_below (FttCell * cell)
  * gfs_poisson_coefficients:
  * @domain: a #GfsDomain.
  * @alpha: the inverse of density or %NULL.
+ * @positive: if %TRUE, @alpha must be strictly positive.
+ * @centered: %TRUE if solving for a centered variable.
  *
  * Initializes the face coefficients for the Poisson equation
- * $\nabla\cdot\alpha\nabla p=\dots$.
+ * \f$\nabla\cdot\alpha\nabla p=\dots\f$.
  *
  * If @alpha is %NULL, it is taken to be unity.
  */
 void gfs_poisson_coefficients (GfsDomain * domain,
-			       GfsFunction * alpha)
+			       GfsFunction * alpha,
+			       gboolean positive,
+			       gboolean centered)
 {
   PoissonCoeff p;
   FttComponent i;
@@ -451,11 +866,17 @@ void gfs_poisson_coefficients (GfsDomain * domain,
 
     p.lambda2[i] = lambda*lambda;
   }
-  gfs_domain_cell_traverse (domain,
-			    FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
-			    (FttCellTraverseFunc) reset_coeff, NULL);
   p.alpha = alpha;
   p.domain = domain;
+  p.positive = positive;
+  if (centered)
+    gfs_domain_cell_traverse (domain,
+			      FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
+			      (FttCellTraverseFunc) reset_coeff, &p);
+  else
+    gfs_domain_cell_traverse (domain,
+			      FTT_PRE_ORDER, FTT_TRAVERSE_ALL, -1,
+			      (FttCellTraverseFunc) poisson_mixed_coeff, &p);
   gfs_domain_face_traverse (domain, FTT_XYZ, 
 			    FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
 			    (FttFaceTraverseFunc) poisson_coeff, &p);
@@ -630,43 +1051,23 @@ static void get_from_below_2D (FttCell * cell, const GfsVariable * v)
   GFS_VARIABLE (cell, v->i) = val;
 }
 
-typedef struct {
-  GfsVariable * s, * r, * u, * v;
-  gdouble srs, rs2, beta;
-} MRSData;
-
-static void compute_beta (FttCell * cell, MRSData * data)
-{
-  gdouble rs = GFS_VALUE (cell, data->r) - GFS_VALUE (cell, data->s);
-  data->rs2 += rs*rs;
-  data->srs -= GFS_VALUE (cell, data->s)*rs;
-}
-
-static void update_sv (FttCell * cell, MRSData * data)
-{
-  GFS_VALUE (cell, data->s) += data->beta*(GFS_VALUE (cell, data->r) - GFS_VALUE (cell, data->s));
-  GFS_VALUE (cell, data->v) += data->beta*(GFS_VALUE (cell, data->u) - GFS_VALUE (cell, data->v));
-  GFS_VALUE (cell, data->r) = GFS_VALUE (cell, data->s);
-  GFS_VALUE (cell, data->u) = GFS_VALUE (cell, data->v);
-}
-
 static void relax_loop (GfsDomain * domain, 
 			GfsVariable * dp, GfsVariable * u, 
 			RelaxParams * q, guint nrelax,
-			guint dimension)
+			FttCellTraverseFunc relaxfunc)
 {
   guint n;
+
   gfs_domain_homogeneous_bc (domain,
 			     FTT_TRAVERSE_LEVEL | FTT_TRAVERSE_LEAFS, q->maxlevel, 
 			     dp, u);
   for (n = 0; n < nrelax - 1; n++)
     gfs_traverse_and_homogeneous_bc (domain, FTT_PRE_ORDER, 
 				     FTT_TRAVERSE_LEVEL | FTT_TRAVERSE_LEAFS, q->maxlevel,
-				     (FttCellTraverseFunc) (dimension == 2 ? relax2D : relax), q,
-				     dp, u);
+				     relaxfunc, q, dp, u);
   gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, 
 			    FTT_TRAVERSE_LEVEL | FTT_TRAVERSE_LEAFS, q->maxlevel,
-			    (FttCellTraverseFunc) (dimension == 2 ? relax2D : relax), q);
+			    relaxfunc, q);
 }
 
 /**
@@ -714,8 +1115,9 @@ void gfs_poisson_cycle (GfsDomain * domain,
   /* compute residual on non-leafs cells */
   gfs_domain_cell_traverse (domain, 
 			    FTT_POST_ORDER, FTT_TRAVERSE_NON_LEAFS, -1,
-			    p->dimension == 2 ? (FttCellTraverseFunc) get_from_below_2D : 
-			    (FttCellTraverseFunc) get_from_below_3D,
+			    (FttCellTraverseFunc) (p->dimension == 2 ? 
+						   get_from_below_2D : 
+						   get_from_below_3D),
 			    res);
 
   /* relax top level */
@@ -733,7 +1135,9 @@ void gfs_poisson_cycle (GfsDomain * domain,
   gfs_domain_cell_traverse (domain,
 			    FTT_PRE_ORDER, FTT_TRAVERSE_LEVEL | FTT_TRAVERSE_LEAFS, q.maxlevel,
 			    (FttCellTraverseFunc) gfs_cell_reset, dp);
-  relax_loop (domain, dp, u, &q, nrelax, p->dimension);
+  FttCellTraverseFunc relaxfunc = (FttCellTraverseFunc)
+    (u->centered ? (p->dimension == 2 ? relax2D : relax) : relax_dirichlet);
+  relax_loop (domain, dp, u, &q, nrelax, relaxfunc);
   nrelax /= p->erelax;
 
   /* relax from top to bottom */
@@ -743,7 +1147,7 @@ void gfs_poisson_cycle (GfsDomain * domain,
 			      FTT_PRE_ORDER, FTT_TRAVERSE_LEVEL | FTT_TRAVERSE_NON_LEAFS, 
 			      q.maxlevel - 1,
 			      (FttCellTraverseFunc) get_from_above, dp);
-    relax_loop (domain, dp, u, &q, nrelax, p->dimension);
+    relax_loop (domain, dp, u, &q, nrelax, relaxfunc);
   }
   /* correct on leaf cells */
   data[0] = u;
@@ -757,6 +1161,97 @@ void gfs_poisson_cycle (GfsDomain * domain,
   gts_object_destroy (GTS_OBJECT (dp));
 }
 
+/**
+ * gfs_poisson_compatibility:
+ * @domain: the domain over which the poisson problem is solved.
+ * @lhs: the variable to use as left-hand side.
+ * @rhs: the variable to use as right-hand side.
+ * @dt: the timestep.
+ *
+ * Returns: the absolute value of the compatibility condition for a
+ * Poisson equation using @lhs as left-hand-side and @rhs as
+ * right-hand-side.
+ */
+gdouble gfs_poisson_compatibility (GfsDomain * domain,
+				   GfsVariable * lhs,
+				   GfsVariable * rhs,
+				   gdouble dt)
+{
+  g_return_val_if_fail (domain != NULL, 0.);
+  g_return_val_if_fail (lhs != NULL, 0.);
+  g_return_val_if_fail (rhs != NULL, 0.);
+
+  /* check whether any boundary has a Dirichlet condition on @lhs */
+  CompatPar p = { lhs, FALSE };
+  gts_container_foreach (GTS_CONTAINER (domain), (GtsFunc) check_box_dirichlet, &p);
+  gfs_all_reduce (domain, p.dirichlet, MPI_INT, MPI_MAX);
+  if (p.dirichlet)
+    /* Assumes that the domain is simply connected in which case compatibility is guaranteed */
+    return 0.;
+  /* compute volume integral of right-hand-side (again we assume that
+     the domain is simply connected) */
+  return fabs (gfs_domain_norm_residual (domain, FTT_TRAVERSE_LEAFS, -1, dt, rhs).bias);
+}
+
+/**
+ * gfs_poisson_solve:
+ * @domain: the domain over which the poisson problem is solved.
+ * @par: the parameters of the poisson problem.
+ * @lhs: the variable to use as left-hand side.
+ * @rhs: the variable to use as right-hand side.
+ * @res: the variable in which to store the residual
+ * @dia: the diagonal weight.
+ * @dt:  the length of the time-step.
+ *
+ * Solves the poisson problem over domain using Gerris' native
+ * multigrid poisson solver.
+ */
+void gfs_poisson_solve (GfsDomain * domain, 
+			GfsMultilevelParams * par,
+			GfsVariable * lhs, GfsVariable * rhs, GfsVariable * res,
+			GfsVariable * dia, gdouble dt)
+{
+  g_return_if_fail (domain != NULL);
+  g_return_if_fail (par != NULL);
+  g_return_if_fail (lhs != NULL);
+  g_return_if_fail (rhs != NULL);
+  g_return_if_fail (res != NULL);
+  g_return_if_fail (dia != NULL);
+
+  gfs_domain_timer_start (domain, "poisson_solve");
+
+  guint minlevel = par->minlevel;
+  par->depth = gfs_domain_depth (domain);
+  par->niter = 0;
+
+  /* calculates the initial residual and its norm */
+  gfs_residual (domain, par->dimension, FTT_TRAVERSE_LEAFS, -1, lhs, rhs, dia, res);
+  par->residual_before = par->residual = 
+    gfs_domain_norm_residual (domain, FTT_TRAVERSE_LEAFS, -1, dt, res);
+
+  gdouble res_max_before = par->residual.infty;
+
+  while (par->niter < par->nitermin ||
+	 (par->residual.infty > par->tolerance && par->niter < par->nitermax)) {
+
+    /* Does one iteration */
+    gfs_poisson_cycle (domain, par, lhs, rhs, dia, res);
+    
+    par->residual = gfs_domain_norm_residual (domain, FTT_TRAVERSE_LEAFS, -1, dt, res);
+
+    if (par->residual.infty == res_max_before) /* convergence has stopped!! */
+      break;
+    if (par->residual.infty > res_max_before/1.1 && par->minlevel < par->depth)
+      par->minlevel++;
+    res_max_before = par->residual.infty;
+    par->niter++;
+  }
+
+  par->minlevel = minlevel;
+
+  gfs_domain_timer_stop (domain, "poisson_solve");
+}
+
 typedef struct {
   GfsSourceDiffusion * d;
   gdouble lambda2[FTT_DIMENSION];
@@ -771,7 +1266,8 @@ static void diffusion_coef (FttCellFace * face, DiffusionCoeff * c)
   gdouble v = 
     c->lambda2[face->d/2]*c->dt*
     gfs_source_diffusion_face (c->d, face)*
-    gfs_domain_face_fraction (c->domain, face);
+    gfs_domain_face_fraction (c->domain, face)/
+    gfs_domain_face_scale_metric (c->domain, face, face->d/2);
 
   GFS_STATE (face->cell)->f[face->d].v = v;
 
@@ -790,7 +1286,7 @@ static void diffusion_coef (FttCellFace * face, DiffusionCoeff * c)
 
 static void diffusion_mixed_coef (FttCell * cell, DiffusionCoeff * c)
 {
-  reset_coeff (cell);
+  reset_coeff (cell, NULL);
   if (GFS_IS_MIXED (cell))
     GFS_STATE (cell)->solid->v = 
       c->dt*gfs_domain_solid_metric (c->domain, cell)*gfs_source_diffusion_cell (c->d, cell);
@@ -853,9 +1349,11 @@ void gfs_diffusion_coefficients (GfsDomain * domain,
   coef.alpha = alpha;
   coef.domain = domain;
   coef.axi = axi;
+  gfs_catch_floating_point_exceptions ();
   gfs_domain_cell_traverse (domain,
 			    FTT_PRE_ORDER, FTT_TRAVERSE_ALL, -1,
 			    (FttCellTraverseFunc) diffusion_mixed_coef, &coef);
+  gfs_restore_fpe_for_function (alpha);
   gfs_domain_face_traverse (domain, FTT_XYZ, 
 			    FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
 			    (FttFaceTraverseFunc) diffusion_coef, &coef);
@@ -887,7 +1385,7 @@ static void diffusion_rhs (FttCell * cell, RelaxParams * p)
     GfsGradient g;
 
     face.neighbor = neighbor.c[face.d];
-    gfs_face_gradient_flux (&face, &g, p->u, -1);
+    gfs_face_cm_weighted_gradient (&face, &g, p->u, -1);
     if (face.d/2 == p->component) {
       g.a *= 2.;
       g.b *= 2.;
@@ -947,7 +1445,7 @@ static void diffusion_relax (FttCell * cell, RelaxParams * p)
 
   a = GFS_VARIABLE (cell, p->dia);
   if (GFS_IS_MIXED (cell) && ((cell)->flags & GFS_FLAG_DIRICHLET) != 0)
-    g.b = gfs_cell_dirichlet_gradient_flux (cell, p->u, p->maxlevel, 0.);
+    g.b = gfs_cell_dirichlet_gradient_flux (cell, p->u, p->maxlevel, 0.) ;
 
   face.cell = cell;
   ftt_cell_neighbors (cell, &neighbor);
@@ -955,7 +1453,7 @@ static void diffusion_relax (FttCell * cell, RelaxParams * p)
     GfsGradient ng;
 
     face.neighbor = neighbor.c[face.d];
-    gfs_face_gradient_flux (&face, &ng, p->u, p->maxlevel);
+    gfs_face_cm_weighted_gradient (&face, &ng, p->u, p->maxlevel);
     if (face.d/2 == p->component) {
       ng.a *= 2.;
       ng.b *= 2.;
@@ -996,7 +1494,7 @@ static void diffusion_residual (FttCell * cell, RelaxParams * p)
     GfsGradient ng;
 
     face.neighbor = neighbor.c[face.d];
-    gfs_face_gradient_flux (&face, &ng, p->u, -1);
+    gfs_face_cm_weighted_gradient (&face, &ng, p->u, -1);
     if (face.d/2 == p->component) {
       ng.a *= 2.;
       ng.b *= 2.;
@@ -1054,24 +1552,6 @@ void gfs_diffusion_residual (GfsDomain * domain,
 			    (FttCellTraverseFunc) diffusion_residual, &p);
 }
 
-static void diffusion_relax_loop (GfsDomain * domain, 
-				  GfsVariable * dp, GfsVariable * u,
-				  RelaxParams * p, guint nrelax)
-{
-  guint n;
-  gfs_domain_homogeneous_bc (domain, 
-			     FTT_TRAVERSE_LEVEL | FTT_TRAVERSE_LEAFS, p->maxlevel,
-			     dp, u);
-  for (n = 0; n < nrelax - 1; n++)
-    gfs_traverse_and_homogeneous_bc (domain, FTT_PRE_ORDER, 
-				     FTT_TRAVERSE_LEVEL | FTT_TRAVERSE_LEAFS, p->maxlevel,
-				     (FttCellTraverseFunc) diffusion_relax, p,
-				     dp, u);
-  gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, 
-			    FTT_TRAVERSE_LEVEL | FTT_TRAVERSE_LEAFS, p->maxlevel,
-			    (FttCellTraverseFunc) diffusion_relax, p);
-}
-
 /**
  * gfs_diffusion_cycle:
  * @domain: the domain on which to solve the diffusion equation.
@@ -1133,7 +1613,7 @@ void gfs_diffusion_cycle (GfsDomain * domain,
   gfs_domain_cell_traverse (domain, 
 			    FTT_PRE_ORDER, FTT_TRAVERSE_LEVEL, levelmin,
 			    (FttCellTraverseFunc) gfs_cell_reset, dp);
-  diffusion_relax_loop (domain, dp, u, &p, 10*nrelax);
+  relax_loop (domain, dp, u, &p, 10*nrelax, (FttCellTraverseFunc) diffusion_relax);
   /* relax from top to bottom */
   for (p.maxlevel = levelmin + 1; p.maxlevel <= depth; p.maxlevel++) {
     /* get initial guess from coarser grid */ 
@@ -1141,7 +1621,7 @@ void gfs_diffusion_cycle (GfsDomain * domain,
 			      FTT_PRE_ORDER, FTT_TRAVERSE_LEVEL | FTT_TRAVERSE_NON_LEAFS,
 			      p.maxlevel - 1,
 			      (FttCellTraverseFunc) get_from_above, dp);
-    diffusion_relax_loop (domain, dp, u, &p, nrelax);
+    relax_loop (domain, dp, u, &p, nrelax, (FttCellTraverseFunc) diffusion_relax);
   }
   /* correct on leaf cells */
   data[0] = u;
diff --git a/src/poisson.h b/src/poisson.h
index 900782b..a23b8f9 100644
--- a/src/poisson.h
+++ b/src/poisson.h
@@ -29,7 +29,13 @@ extern "C" {
 #include "domain.h"
 
 typedef struct _GfsMultilevelParams GfsMultilevelParams;
-
+typedef void (* GfsPoissonSolverFunc) (GfsDomain * domain,
+				       GfsMultilevelParams * par,
+				       GfsVariable * lhs,
+				       GfsVariable * rhs,
+				       GfsVariable * res,
+				       GfsVariable * dia,
+				       gdouble dt);
 struct _GfsMultilevelParams {
   gdouble tolerance;
   guint nrelax, erelax;
@@ -42,6 +48,7 @@ struct _GfsMultilevelParams {
   gboolean weighted;
   gdouble beta, omega;
   GfsNorm residual_before, residual;
+  GfsPoissonSolverFunc poisson_solve;
 };
 
 void                  gfs_multilevel_params_init     (GfsMultilevelParams * par);
@@ -67,13 +74,26 @@ void                  gfs_residual                   (GfsDomain * domain,
 						      GfsVariable * dia,
 						      GfsVariable * res);
 void                  gfs_poisson_coefficients       (GfsDomain * domain,
-						      GfsFunction * alpha);
+						      GfsFunction * alpha,
+						      gboolean positive,
+						      gboolean centered);
 void                  gfs_poisson_cycle              (GfsDomain * domain,
 						      GfsMultilevelParams * p,
 						      GfsVariable * u,
 						      GfsVariable * rhs,
 						      GfsVariable * dia,
 						      GfsVariable * res);
+gdouble               gfs_poisson_compatibility      (GfsDomain * domain, 
+						      GfsVariable * lhs, 
+						      GfsVariable * rhs,
+						      gdouble dt);
+void                  gfs_poisson_solve              (GfsDomain * domain,
+						      GfsMultilevelParams * par,
+						      GfsVariable * lhs,
+						      GfsVariable * rhs,
+						      GfsVariable * res,
+						      GfsVariable * dia,
+						      gdouble dt);
 void                  gfs_diffusion_coefficients     (GfsDomain * domain,
 						      GfsSourceDiffusion * d,
 						      gdouble dt,
@@ -103,6 +123,26 @@ void                  gfs_diffusion_cycle            (GfsDomain * domain,
 						      GfsVariable * axi,
 						      GfsVariable * res);
 
+/* GfsLinearProblem: Object */
+
+struct _GfsLinearProblem {
+  GPtrArray * LP;
+  GArray * rhs, * lhs;
+  GfsVariable * id, * neighbor, * neighborw;
+  gint istart;
+};
+
+GfsLinearProblem * gfs_get_poisson_problem           (GfsDomain * domain,
+						      GfsVariable * rhs, 
+						      GfsVariable * lhs,
+						      GfsVariable * dia,
+						      gint maxlevel,
+						      GfsVariable * v);
+GfsLinearProblem * gfs_linear_problem_new            (GfsDomain * domain);
+void               gfs_linear_problem_add_stencil    (GfsLinearProblem * lp, 
+						      GfsStencil * stencil);
+void               gfs_linear_problem_destroy        (GfsLinearProblem * lp);
+
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */
diff --git a/src/refine.c b/src/refine.c
index 22ed858..a458b97 100644
--- a/src/refine.c
+++ b/src/refine.c
@@ -16,13 +16,20 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
  * 02111-1307, USA.  
  */
+/*! \file
+ * \brief Static mesh refinement.
+ */
 
 #include <stdlib.h>
 #include "refine.h"
 #include "solid.h"
 #include "adaptive.h"
+#include "init.h"
 
-/* GfsRefine: Object */
+/**
+ * Simple definition of the refinement levels.
+ * \beginobject{GfsRefine}
+ */
 
 static gboolean refine_maxlevel (FttCell * cell, GfsFunction * maxlevel)
 {
@@ -38,8 +45,10 @@ static void refine_box (GfsBox * box, GfsFunction * maxlevel)
 
 static void gfs_refine_refine (GfsRefine * refine, GfsSimulation * sim)
 {
+  gfs_catch_floating_point_exceptions ();
   gts_container_foreach (GTS_CONTAINER (sim),
 			 (GtsFunc) refine_box, refine->maxlevel);
+  gfs_restore_fpe_for_function (refine->maxlevel);
 }
 
 static void gfs_refine_destroy (GtsObject * o)
@@ -134,7 +143,12 @@ GfsRefine * gfs_refine_new (GfsRefineClass * klass)
   return object;
 }
 
-/* GfsRefineSolid: Object */
+/** \endobject{GfsRefine} */
+
+/**
+ * Refine embedded solid surfaces.
+ * \beginobject{GfsRefineSolid}
+ */
 
 typedef struct _GfsRefineSolid           GfsRefineSolid;
 
@@ -227,6 +241,7 @@ static void gfs_refine_solid_refine (GfsRefine * refine, GfsSimulation * sim)
     GSList * i = sim->solids->items;
     while (i) {
       p.surface = GFS_SOLID (i->data)->s;
+      gfs_catch_floating_point_exceptions ();
       if (GFS_SURFACE (p.surface)->s)
 	gfs_domain_traverse_cut (GFS_DOMAIN (sim), p.surface,
 				 FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS,
@@ -235,6 +250,7 @@ static void gfs_refine_solid_refine (GfsRefine * refine, GfsSimulation * sim)
 	gfs_domain_cell_traverse (GFS_DOMAIN (sim),
 				  FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
 				  (FttCellTraverseFunc) refine_implicit_cell, &p);
+      gfs_restore_fpe_for_function (refine->maxlevel);
       i = i->next;
     }
   }
@@ -268,7 +284,12 @@ GfsRefineClass * gfs_refine_solid_class (void)
   return klass;
 }
 
-/* GfsRefineSurface: Object */
+/** \endobject{GfsRefineSolid} */
+
+/**
+ * Refine cells cut by a surface.
+ * \beginobject{GfsRefineSurface}
+ */
 
 static void refine_surface_destroy (GtsObject * object)
 {
@@ -356,7 +377,12 @@ GfsRefineClass * gfs_refine_surface_class (void)
   return klass;
 }
 
-/* GfsRefineDistance: Object */
+/** \endobject{GfsRefineSurface} */
+
+/**
+ * Refine cells as a function of the distance from a surface.
+ * \beginobject{GfsRefineDistance}
+ */
 
 static void refine_distance_destroy (GtsObject * object)
 {
@@ -438,7 +464,12 @@ GfsRefineClass * gfs_refine_distance_class (void)
   return klass;
 }
 
-/* GfsRefineHeight: Object */
+/** \endobject{GfsRefineDistance} */
+
+/**
+ *
+ * \beginobject{GfsRefineHeight}
+ */
 
 static void refine_height_destroy (GtsObject * object)
 {
@@ -521,3 +552,5 @@ GfsRefineClass * gfs_refine_height_class (void)
 
   return klass;
 }
+
+/** \endobject{GfsRefineHeight} */
diff --git a/src/river.c b/src/river.c
index c4ca052..7cbdef8 100644
--- a/src/river.c
+++ b/src/river.c
@@ -16,12 +16,20 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
  * 02111-1307, USA.  
  */
+/*! \file
+ * \brief GfsRiver model.
+ */
 
+#include <stdlib.h>
 #include "river.h"
 #include "adaptive.h"
 #include "source.h"
+#include "init.h"
 
-/* GfsRiver: Object */
+/**
+ * Solves the Saint-Venant equations.
+ * \beginobject{GfsRiver}
+ */
 
 static void flux (const gdouble * u, gdouble g, gdouble * f)
 {
@@ -95,10 +103,12 @@ typedef struct {
   gdouble dv;
 } Sym;
 
+#define CFL_CLAMP(u, umax) (fabs (u) <= (umax) ? (u) : (u) > 0. ? (umax) : - (umax))
+
 static void face_fluxes (FttCellFace * face, GfsRiver * r)
 {
-  if (GFS_VALUE (face->cell, r->v1[0]) <= GFS_RIVER_DRY &&
-      GFS_VALUE (face->neighbor, r->v1[0]) <= GFS_RIVER_DRY)
+  if (GFS_VALUE (face->cell, r->v1[0]) <= r->dry &&
+      GFS_VALUE (face->neighbor, r->v1[0]) <= r->dry)
     return;
 
   static Sym sym[4] = {
@@ -108,7 +118,8 @@ static void face_fluxes (FttCellFace * face, GfsRiver * r)
     {V, -1., U,  1.}
   };
   Sym * s = &sym[face->d];
-  gdouble etaL = (GFS_VALUE (face->cell, r->v1[0]) + 
+  gdouble etaL = (GFS_VALUE (face->cell, r->v1[0]) < r->dry ? 0. :
+		  GFS_VALUE (face->cell, r->v1[0]) + 
 		  s->du*GFS_VALUE (face->cell, r->dv[face->d/2][0]));
   gdouble zbL = (GFS_VALUE (face->cell, r->v[3]) + 
 		 s->du*GFS_VALUE (face->cell, r->dv[face->d/2][3]));
@@ -117,7 +128,7 @@ static void face_fluxes (FttCellFace * face, GfsRiver * r)
   gdouble zbLR = MAX (zbL, zbR);
   gdouble uL[4], uR[4], f[3];
 
-  if (etaL > GFS_RIVER_DRY) {
+  if (etaL > r->dry) {
     uL[1] = s->du*(GFS_VALUE (face->cell, r->v1[s->u]) +
 		   s->du*GFS_VALUE (face->cell, r->dv[face->d/2][s->u]))/etaL; /* u = uh/h */
     uL[2] = s->dv*(GFS_VALUE (face->cell, r->v1[s->v]) +
@@ -128,12 +139,13 @@ static void face_fluxes (FttCellFace * face, GfsRiver * r)
   uL[0] = MAX (0., etaL + zbL - zbLR);
   uL[3] = 0.;
 
-  gdouble etaR = (GFS_VALUE (face->neighbor, r->v1[0]) -
+  gdouble etaR = (GFS_VALUE (face->neighbor, r->v1[0]) < r->dry ? 0. :
+		  GFS_VALUE (face->neighbor, r->v1[0]) -
 		  s->du*GFS_VALUE (face->neighbor, r->dv[face->d/2][0]));
   switch (ftt_face_type (face)) {
   case FTT_FINE_FINE: case FTT_FINE_COARSE:
     /* fixme: this is only first-order accurate for fine/coarse */
-    if (etaR > GFS_RIVER_DRY) {
+    if (etaR > r->dry) {
       uR[1] = s->du*(GFS_VALUE (face->neighbor, r->v1[s->u]) -
 		     s->du*GFS_VALUE (face->neighbor, r->dv[face->d/2][s->u]))/etaR; /* u = uh/h */
       uR[2] = s->dv*(GFS_VALUE (face->neighbor, r->v1[s->v]) -
@@ -149,9 +161,16 @@ static void face_fluxes (FttCellFace * face, GfsRiver * r)
     g_assert_not_reached ();
   }
 
+  gdouble h = ftt_cell_size (face->cell);
+  gdouble umax = GFS_SIMULATION (r)->advection_params.cfl*h/r->dt;
+  uL[1] = CFL_CLAMP (uL[1], umax);
+  uR[1] = CFL_CLAMP (uR[1], umax);
+  uL[2] = CFL_CLAMP (uL[2], umax);
+  uR[2] = CFL_CLAMP (uR[2], umax);
+
   riemann_hllc (uL, uR, r->g, f);
 
-  gdouble dt = gfs_domain_face_fraction (r->v[0]->domain, face)*r->dt/ftt_cell_size (face->cell);
+  gdouble dt = gfs_domain_face_fraction (GFS_DOMAIN (r), face)*r->dt/h;
   f[0] *= dt;
   f[2] = s->dv*dt*f[2];
   GFS_VALUE (face->cell, r->flux[0])    -= f[0];
@@ -275,12 +294,22 @@ static void cell_gradients (FttCell * cell,
   FttComponent c;
   guint v;
 
-  for (c = 0; c < FTT_DIMENSION; c++) {
-    for (v = 0; v < GFS_RIVER_NVAR; v++)
-      GFS_VALUE (cell, r->dv[c][v]) = (* r->gradient) (cell, c, r->v[v]->i)/2.;
-    /* recontruct Zb + eta rather than Zb: see Theorem 3.1 of Audusse et al, 2004 */
-    GFS_VALUE (cell, r->dv[c][3]) = 
-      (* r->gradient) (cell, c, r->H->i)/2. - GFS_VALUE (cell, r->dv[c][0]);
+  if (GFS_VALUE (cell, r->v[0]) < r->dry) {
+    for (c = 0; c < FTT_DIMENSION; c++) {
+      for (v = 0; v < GFS_RIVER_NVAR; v++)
+	GFS_VALUE (cell, r->dv[c][v]) = 0.;
+      GFS_VALUE (cell, r->dv[c][3]) = 0.;
+    }
+  }
+  else { /* wet */
+    for (c = 0; c < FTT_DIMENSION; c++) {
+      for (v = 0; v < GFS_RIVER_NVAR; v++)
+	GFS_VALUE (cell, r->dv[c][v]) = (* r->gradient) (cell, c, r->v[v]->i)/2.;
+      /* recontruct Zb + eta rather than Zb: see Theorem 3.1 of Audusse et al, 2004 */
+      GFS_VALUE (cell, r->dv[c][3]) =
+	(* r->gradient) (cell, c, r->H->i)/2.
+	- GFS_VALUE (cell, r->dv[c][0]);
+    }
   }
 }
 
@@ -327,16 +356,18 @@ static void river_run (GfsSimulation * sim)
 
   gfs_simulation_set_timestep (sim);
 
+  domain_traverse_all_leaves (domain, (FttCellTraverseFunc) cell_H, r);
+
   while (sim->time.t < sim->time.end &&
 	 sim->time.i < sim->time.iend) {
     gdouble tstart = gfs_clock_elapsed (domain->timer);
 
-    /* update H */
-    domain_traverse_all_leaves (domain, (FttCellTraverseFunc) cell_H, r);
-    
     /* events */
     gts_container_foreach (GTS_CONTAINER (sim->events), (GtsFunc) gfs_event_do, sim);
 
+    /* update H */
+    domain_traverse_all_leaves (domain, (FttCellTraverseFunc) cell_H, r);
+    
     /* gradients */
     gfs_domain_timer_start (domain, "gradients");
     gfs_domain_traverse_leaves (domain, (FttCellTraverseFunc) cell_gradients, r);
@@ -363,6 +394,9 @@ static void river_run (GfsSimulation * sim)
     advance (r, sim->advection_params.dt);
     gfs_domain_timer_stop (domain, "corrector");
 
+    /* update H */
+    domain_traverse_all_leaves (domain, (FttCellTraverseFunc) cell_H, r);
+
     gfs_domain_cell_traverse (domain,
 			      FTT_POST_ORDER, FTT_TRAVERSE_NON_LEAFS, -1,
 			      (FttCellTraverseFunc) gfs_cell_coarse_init, domain);
@@ -399,7 +433,7 @@ static gdouble maximum_face_metric (FttCell * cell, GfsDomain * domain, FttCompo
 static void minimum_cfl (FttCell * cell, GfsRiver * r)
 {
   gdouble h = GFS_VALUE (cell, r->v[0]);
-  if (h > GFS_RIVER_DRY) {
+  if (h > r->dry) {
     GfsDomain * domain = GFS_DOMAIN (r);
     gdouble vol = ftt_cell_size (cell);
     if (domain->cell_metric)
@@ -433,14 +467,17 @@ static void river_read (GtsObject ** o, GtsFile * fp)
 
   GfsRiver * river = GFS_RIVER (*o);
   if (fp->type == '{') {
+    double dry;
     GtsFileVariable var[] = {
-      {GTS_UINT, "time_order", TRUE},
+      {GTS_UINT,   "time_order", TRUE, &river->time_order},
+      {GTS_DOUBLE, "dry",        TRUE, &dry},
       {GTS_NONE}
     };
-    var[0].data = &river->time_order;
     gts_file_assign_variables (fp, var);
     if (fp->type == GTS_ERROR)
       return;
+    if (var[1].set)
+      river->dry = dry/GFS_SIMULATION (river)->physical_params.L;
   }
 }
 
@@ -451,8 +488,10 @@ static void river_write (GtsObject * o, FILE * fp)
   GfsRiver * river = GFS_RIVER (o);
   fprintf (fp, " {\n"
 	   "  time_order = %d\n"
+	   "  dry = %g\n"
 	   "}",
-	   river->time_order);
+	   river->time_order,
+	   river->dry*GFS_SIMULATION (river)->physical_params.L);
 }
 
 static void river_class_init (GfsSimulationClass * klass)
@@ -469,7 +508,7 @@ static gdouble cell_velocity (FttCell * cell, FttCellFace * face, GfsRiver * r)
 
   gdouble D = GFS_VALUE (cell, r->v[0]);
   gdouble L = GFS_SIMULATION (r)->physical_params.L;
-  return D > GFS_RIVER_DRY ? L*gfs_vector_norm (cell, gfs_domain_velocity (GFS_DOMAIN (r)))/D : 0.;
+  return D > r->dry ? L*gfs_vector_norm (cell, gfs_domain_velocity (GFS_DOMAIN (r)))/D : 0.;
 }
 
 static gdouble cell_velocity2 (FttCell * cell, FttCellFace * face, GfsRiver * r)
@@ -478,10 +517,21 @@ static gdouble cell_velocity2 (FttCell * cell, FttCellFace * face, GfsRiver * r)
 
   gdouble D = GFS_VALUE (cell, r->v[0]);
   gdouble L = GFS_SIMULATION (r)->physical_params.L;
-  return D > GFS_RIVER_DRY ? 
+  return D > r->dry ? 
     L*L*gfs_vector_norm2 (cell, gfs_domain_velocity (GFS_DOMAIN (r)))/(D*D) : 0.;
 }
 
+static void momentum_coarse_fine (FttCell * parent, GfsVariable * v)
+{
+  /* Only initializes momentum when @parent is "deep enough". This
+     assumes that shallow parents have just been submerged. For these
+     shallow cells, childrens' initial momentum defaults to zero. This
+     prevents creating spurious large velocities. */
+  GfsRiver * r = GFS_RIVER (v->domain);
+  if (GFS_VALUE (parent, r->v[0]) > 2.*r->dry)
+    gfs_cell_coarse_fine (parent, v);
+}
+
 static void river_init (GfsRiver * r)
 {
   GfsDomain * domain = GFS_DOMAIN (r);
@@ -497,14 +547,16 @@ static void river_init (GfsRiver * r)
   r->v[1]->units = 2.;
   g_free (r->v[1]->description);
   r->v[1]->description = g_strdup ("x-component of the fluid flux");
+  r->v[1]->coarse_fine = momentum_coarse_fine;
 
   r->v[2] = gfs_variable_from_name (domain->variables, "V");
   r->v[2]->units = 2.;
   g_free (r->v[2]->description);
   r->v[2]->description = g_strdup ("y-component of the fluid flux");
+  r->v[2]->coarse_fine = momentum_coarse_fine;
 
-  GfsVariable * zb = gfs_domain_add_variable (domain, "Zb", "Bed elevation above datum");
-  zb->units = 1.;
+  r->zb = gfs_domain_add_variable (domain, "Zb", "Bed elevation above datum");
+  r->zb->units = 1.;
 
   r->H = gfs_domain_add_variable (domain, "H", "Elevation above datum (Zb + P)");
   r->H->units = 1.;
@@ -542,6 +594,7 @@ static void river_init (GfsRiver * r)
   gfs_domain_remove_derived_variable (domain, "D2");
 
   r->time_order = 2;
+  r->dry = 1e-6;
 }
 
 GfsSimulationClass * gfs_river_class (void)
@@ -565,7 +618,12 @@ GfsSimulationClass * gfs_river_class (void)
   return klass;
 }
 
-/* GfsBcSubcritical: Object */
+/** \endobject{GfsRiver} */
+
+/**
+ * 
+ * \beginobject{GfsBcSubcritical}
+ */
 
 static void subcritical (FttCellFace * f, GfsBc * b)
 {
@@ -625,3 +683,183 @@ GfsBcClass * gfs_bc_subcritical_class (void)
 
   return klass;
 }
+
+/** \endobject{GfsBcSubcritical} */
+
+/**
+ *
+ * \beginobject{GfsDischargeElevation}
+ */
+
+static void discharge_elevation_destroy (GtsObject * o)
+{
+  gts_object_destroy (GTS_OBJECT (GFS_DISCHARGE_ELEVATION (o)->Q));
+  gts_object_destroy (GTS_OBJECT (GFS_DISCHARGE_ELEVATION (o)->profile));
+
+  (* GTS_OBJECT_CLASS (gfs_discharge_elevation_class ())->parent_class->destroy) (o);
+}
+
+static void discharge_elevation_read (GtsObject ** o, GtsFile * fp)
+{
+  (* GTS_OBJECT_CLASS (gfs_discharge_elevation_class ())->parent_class->read) (o, fp);
+  if (fp->type == GTS_ERROR)
+    return;
+
+  GfsDomain * domain = GFS_DOMAIN (gfs_object_simulation (*o));
+  if (!GFS_IS_RIVER (domain)) {
+    gts_file_error (fp, "GfsDischargeElevation only makes sense for GfsRiver simulations");
+    return;
+  }
+  GfsDischargeElevation * bd = GFS_DISCHARGE_ELEVATION (*o);
+  gfs_function_read (bd->Q, domain, fp);
+  if (fp->type == GTS_ERROR)
+    return;
+
+  if (fp->type != '\n')
+    gfs_function_read (bd->profile, domain, fp);
+  else
+    gfs_object_simulation_set (bd->profile, domain);
+
+  bd->P = GFS_RIVER (domain)->v[0];
+  g_free (GFS_CONSTANT (bd)->derived->description);
+  GFS_CONSTANT (bd)->derived->description = g_strdup ("Elevation for a given discharge");
+}
+
+static void discharge_elevation_write (GtsObject * o, FILE * fp)
+{
+  (* GTS_OBJECT_CLASS (gfs_discharge_elevation_class ())->parent_class->write) (o, fp);
+  gfs_function_write (GFS_DISCHARGE_ELEVATION (o)->Q, fp);
+  if (gfs_function_get_constant_value (GFS_DISCHARGE_ELEVATION (o)->profile) != 0.)
+    gfs_function_write (GFS_DISCHARGE_ELEVATION (o)->profile, fp);
+}
+
+static void boundary_flux (FttCellFace * f, GfsDischargeElevation * b)
+{
+  gdouble profile = gfs_function_face_value (b->profile, f);
+  if (profile != GFS_NODATA) {
+    GfsRiver * river = GFS_RIVER (gfs_object_simulation (b));
+    GFS_VALUE (f->cell, river->flux[0]) = 0.;
+    gdouble v1 = GFS_VALUE (f->cell, river->v1[0]);
+    GFS_VALUE (f->cell, river->v1[0]) = MAX (0.,
+					     profile + GFS_CONSTANT (b)->val - 
+					     gfs_face_interpolated_value (f, river->zb->i));
+    gdouble dt = river->dt;
+    river->dt = 1.;
+    face_fluxes (f, river);
+    river->dt = dt;
+    GFS_VALUE (f->cell, river->v1[0]) = v1;
+    double h = ftt_cell_size (f->cell);
+    b->flow -= GFS_VALUE (f->cell, river->flux[0])*h*h;
+  }
+}
+
+static void traverse_dirichlet_boundaries (GfsBox * box, GfsDischargeElevation * bd)
+{
+  FttDirection d;
+  for (d = 0; d < FTT_NEIGHBORS; d++)
+    if (GFS_IS_BOUNDARY (box->neighbor[d])) {
+      GfsBoundary * b = GFS_BOUNDARY (box->neighbor[d]);
+      GfsBc * bc = gfs_boundary_lookup_bc (b, bd->P);
+      if (GFS_IS_BC_DIRICHLET (bc))
+	ftt_face_traverse_boundary (b->root, b->d,
+				    FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
+				    (FttFaceTraverseFunc) boundary_flux, bd);
+    }
+}
+
+static gboolean discharge_elevation_event (GfsEvent * event, GfsSimulation * sim)
+{
+  if ((* GFS_EVENT_CLASS (GTS_OBJECT_CLASS 
+			  (gfs_discharge_elevation_class ())->parent_class)->event)
+      (event, sim)) {
+    GfsConstant * c = GFS_CONSTANT (event);
+    GfsDischargeElevation * bd = GFS_DISCHARGE_ELEVATION (event);
+    GfsRiver * r = GFS_RIVER (sim);
+    guint v;
+      
+    for (v = 0; v < GFS_RIVER_NVAR; v++)
+      gfs_variables_swap (r->v[v], r->v1[v]);
+      
+    gfs_catch_floating_point_exceptions ();
+    gdouble Q = gfs_function_value (bd->Q, NULL);
+    gfs_restore_fpe_for_function (bd->Q);
+    gdouble hmax, hmin = 0.;
+    gdouble L = sim->physical_params.L;
+      
+    hmax = c->val*2./L;
+    bd->flow = 0.;
+    c->val = hmax;
+    gts_container_foreach (GTS_CONTAINER (sim), (GtsFunc) traverse_dirichlet_boundaries, bd);
+    gfs_all_reduce (GFS_DOMAIN (sim), bd->flow, MPI_DOUBLE, MPI_SUM);
+    if (Q > bd->flow)
+      hmax = 1.;
+      
+    guint n = 0, nitermin = 4, nitermax = 100;
+    c->val = hmax/2.;
+    do {
+      bd->flow = 0.;
+      gts_container_foreach (GTS_CONTAINER (sim), (GtsFunc) traverse_dirichlet_boundaries, bd);
+      gfs_all_reduce (GFS_DOMAIN (sim), bd->flow, MPI_DOUBLE, MPI_SUM);
+      if (bd->flow > Q) {
+	hmax = c->val;
+	c->val = (c->val + hmin)/2.;
+      }
+      else {
+	hmin = c->val;
+	c->val = (c->val + hmax)/2.;
+      }
+      n++;
+    } while (n < nitermax && (n < nitermin || fabs (Q - bd->flow)/Q > bd->tolerance));
+    if (n == nitermax)
+      g_warning ("discharge_elevation_event() did not converge after %d iterations: %g", n, 
+		 fabs (Q - bd->flow)/Q);
+    c->val *= L;
+    /* g_message ("### flow: %g H: %g nitermax: %d\n", bd->flow*pow(L,3), c->val, n); */
+
+    for (v = 0; v < GFS_RIVER_NVAR; v++)
+      gfs_variables_swap (r->v[v], r->v1[v]);
+
+    return TRUE;
+  }
+  return FALSE;
+}
+
+static void gfs_discharge_elevation_class_init (GtsObjectClass * klass)
+{
+  klass->destroy  = discharge_elevation_destroy;
+  klass->read     = discharge_elevation_read;
+  klass->write    = discharge_elevation_write;
+  GFS_EVENT_CLASS (klass)->event = discharge_elevation_event;
+}
+
+static void gfs_discharge_elevation_init (GfsDischargeElevation * b)
+{
+  b->tolerance = 1e-2;
+  b->Q = gfs_function_new (gfs_function_class (), 0.);
+  gfs_function_set_units (b->Q, 3.);
+  b->profile = gfs_function_new (gfs_function_class (), 0.);
+  gfs_function_set_units (b->profile, 1.);
+}
+
+GfsEventClass * gfs_discharge_elevation_class (void)
+{
+  static GfsEventClass * klass = NULL;
+
+  if (klass == NULL) {
+    GtsObjectClassInfo gfs_discharge_elevation_info = {
+      "GfsDischargeElevation",
+      sizeof (GfsDischargeElevation),
+      sizeof (GfsEventClass),
+      (GtsObjectClassInitFunc) gfs_discharge_elevation_class_init,
+      (GtsObjectInitFunc) gfs_discharge_elevation_init,
+      (GtsArgSetFunc) NULL,
+      (GtsArgGetFunc) NULL
+    };
+    klass = gts_object_class_new (GTS_OBJECT_CLASS (gfs_constant_class ()),
+				  &gfs_discharge_elevation_info);
+  }
+
+  return klass;
+}
+
+/** \endobject{GfsDischargeElevation} */
diff --git a/src/river.h b/src/river.h
index 3fc7d3d..89715c1 100644
--- a/src/river.h
+++ b/src/river.h
@@ -29,7 +29,6 @@ extern "C" {
 /* GfsRiver: Header */
 
 #define GFS_RIVER_NVAR 3
-#define GFS_RIVER_DRY 1e-6
 
 typedef struct _GfsRiver GfsRiver;
 
@@ -45,6 +44,7 @@ struct _GfsRiver {
   gdouble g, dt;
   GfsCenterGradient gradient;
   guint time_order;
+  gdouble dry;
 };
 
 #define GFS_RIVER(obj)            GTS_OBJECT_CAST (obj,\
@@ -61,6 +61,29 @@ GfsSimulationClass * gfs_river_class        (void);
 						 gfs_bc_subcritical_class ()))
 GfsBcClass * gfs_bc_subcritical_class  (void);
 
+/* GfsDischargeElevation: Header */
+
+typedef struct _GfsDischargeElevation GfsDischargeElevation;
+
+struct _GfsDischargeElevation {
+  /*< private >*/
+  GfsConstant parent;
+  GfsVariable * P;
+  gdouble flow;
+
+  /*< public >*/
+  GfsFunction * Q, * profile;
+  gdouble tolerance;
+};
+
+#define GFS_DISCHARGE_ELEVATION(obj)            GTS_OBJECT_CAST (obj,\
+					           GfsDischargeElevation,\
+					           gfs_discharge_elevation_class ())
+#define GFS_IS_DISCHARGE_ELEVATION(obj)         (gts_object_is_from_class (obj,\
+						   gfs_discharge_elevation_class ()))
+
+GfsEventClass * gfs_discharge_elevation_class (void);
+
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */
diff --git a/src/simulation.c b/src/simulation.c
index 26e3c93..36083c2 100644
--- a/src/simulation.c
+++ b/src/simulation.c
@@ -16,6 +16,9 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
  * 02111-1307, USA.  
  */
+/*! \file
+ * \brief GfsSimulation, GfsPoisson, GfsAdvection models.
+ */
 
 #include <stdlib.h>
 #include <math.h>
@@ -33,7 +36,16 @@
 #include "map.h"
 #include "version.h"
 
-/* GfsSimulation: object */
+/**
+ * The incompressible Euler solver.
+ * \beginobject{GfsSimulation}
+ */
+
+static void module_close (GModule *module)
+{
+  if (!g_module_close (module))
+    g_warning ("%s: %s", g_module_name (module), g_module_error ());
+}
 
 static void simulation_destroy (GtsObject * object)
 {
@@ -51,14 +63,20 @@ static void simulation_destroy (GtsObject * object)
   gts_object_destroy (GTS_OBJECT (sim->adapts));
   gts_object_destroy (GTS_OBJECT (sim->solids));
 
-  g_slist_foreach (sim->modules, (GFunc) g_module_close, NULL);
+  g_slist_foreach (sim->modules, (GFunc) module_close, NULL);
   g_slist_free (sim->modules);
   g_slist_foreach (sim->globals, (GFunc) gts_object_destroy, NULL);
   g_slist_free (sim->globals);
-  g_slist_foreach (sim->preloaded_modules, (GFunc) g_module_close, NULL);
+  g_slist_foreach (sim->preloaded_modules, (GFunc) module_close, NULL);
   g_slist_free (sim->preloaded_modules);
 
+  GHashTable * function_cache = sim->function_cache;
+
   (* GTS_OBJECT_CLASS (gfs_simulation_class ())->parent_class->destroy) (object);
+
+  /* it is now safe to destroy the function cache (all the functions
+     used in GfsBoxes etc.. have been destroyed) */
+  g_hash_table_destroy (function_cache);
 }
 
 static void simulation_write (GtsObject * object, FILE * fp)
@@ -191,8 +209,6 @@ static GModule * load_module (GtsFile * fp, GfsSimulation * sim)
       gchar * name = g_strconcat (fp->token->str, 
 #if FTT_2D
 				  "2D"
-#elif FTT_2D3
-				  "2D3"
 #else
 				  "3D"
 #endif
@@ -296,6 +312,20 @@ static void simulation_read (GtsObject ** object, GtsFile * fp)
       gfs_advection_params_read (&sim->advection_params, fp);
       if (fp->type == GTS_ERROR)
 	return;
+      if (sim->advection_params.linear) {
+	sim->u0[0] = gfs_domain_get_or_add_variable (GFS_DOMAIN (sim), 
+						     "U0", "x-component of the base velocity");
+	sim->u0[0]->units = 1.;
+	sim->u0[1] = gfs_domain_get_or_add_variable (GFS_DOMAIN (sim), 
+						     "V0", "y-component of the base velocity");
+	sim->u0[1]->units = 1.;
+#if (!FTT_2D)
+	sim->u0[2] = gfs_domain_get_or_add_variable (GFS_DOMAIN (sim), 
+						     "W0", "z-component of the base velocity");
+	sim->u0[2]->units = 1.;
+#endif /* FTT_3D */
+	gfs_variable_set_vector (sim->u0, FTT_DIMENSION);
+      }
     }
 
     /* ------------ GtsObject ------------ */
@@ -362,6 +392,7 @@ static void simulation_read (GtsObject ** object, GtsFile * fp)
 /**
  * gfs_advance_tracers:
  * @domain: a #GfsDomain.
+ * @dt: the timestep.
  *
  * Performs advection/difussion of tracers associated with @domain.
  */
@@ -443,8 +474,19 @@ static void simulation_run (GfsSimulation * sim)
 
     gts_container_foreach (GTS_CONTAINER (sim->events), (GtsFunc) gfs_event_do, sim);
 
-    gfs_predicted_face_velocities (domain, FTT_DIMENSION, &sim->advection_params);
-    
+    if (sim->advection_params.linear) {
+      /* linearised advection */
+      gfs_domain_face_traverse (domain, FTT_XYZ,
+				FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
+				(FttFaceTraverseFunc) gfs_face_reset_normal_velocity, NULL);
+      gfs_domain_face_traverse (domain, FTT_XYZ,
+				FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
+				(FttFaceTraverseFunc) gfs_face_interpolated_normal_velocity,
+				sim->u0);
+    }
+    else
+      gfs_predicted_face_velocities (domain, FTT_DIMENSION, &sim->advection_params);
+      
     gfs_variables_swap (p, pmac);
     gfs_mac_projection (domain,
     			&sim->projection_params, 
@@ -504,7 +546,24 @@ static void simulation_run (GfsSimulation * sim)
 
 static gdouble simulation_cfl (GfsSimulation * sim)
 {
-  return gfs_domain_cfl (GFS_DOMAIN (sim), FTT_TRAVERSE_LEAFS, -1);
+  GSList * i = GFS_DOMAIN (sim)->variables;
+  gdouble cflmin = G_MAXDOUBLE;
+  
+  while (i) {
+    GfsVariable * v = i->data;
+
+    if (GFS_IS_VARIABLE_TRACER (v) && 
+	GFS_VARIABLE_TRACER (v)->advection.scheme != GFS_NONE &&
+	gts_vector_norm (GFS_VARIABLE_TRACER (v)->advection.sink) > 0.) {
+      gfs_add_sinking_velocity (GFS_DOMAIN (sim), GFS_VARIABLE_TRACER (v)->advection.sink);
+      gdouble cfl = gfs_domain_cfl (GFS_DOMAIN (sim), FTT_TRAVERSE_LEAFS, -1);
+      gfs_remove_sinking_velocity (GFS_DOMAIN (sim), GFS_VARIABLE_TRACER (v)->advection.sink);
+      if (cfl < cflmin)
+	cflmin = cfl;
+    }
+    i = i->next;
+  }
+  return cflmin < G_MAXDOUBLE ? cflmin : gfs_domain_cfl (GFS_DOMAIN (sim), FTT_TRAVERSE_LEAFS, -1);
 }
 
 static void gfs_simulation_class_init (GfsSimulationClass * klass)
@@ -740,11 +799,12 @@ static gdouble cell_fraction (FttCell * cell)
   return GFS_IS_MIXED (cell) ? GFS_STATE (cell)->solid->a : 1.;
 }
 
-static gdouble cell_solid_area (FttCell * cell)
+static gdouble cell_solid_area (FttCell * cell, FttCellFace * face, GfsDomain * domain)
 {
   FttVector n;
   gfs_solid_normal (cell, &n);
-  return ftt_vector_norm (&n);
+  return ftt_vector_norm (&n)*pow (ftt_cell_size (cell)*GFS_SIMULATION (domain)->physical_params.L,
+				   FTT_DIMENSION - 1);
 }
 
 static gdouble cell_solid_sr (FttCell * cell)
@@ -912,6 +972,8 @@ static void simulation_init (GfsSimulation * object)
   object->deferred_compilation = FALSE;
   
   object->tnext = 0.;
+
+  object->function_cache = g_hash_table_new (g_str_hash, g_str_equal);
 }
 
 GfsSimulationClass * gfs_simulation_class (void)
@@ -952,6 +1014,12 @@ static void init_non_variable (GfsEvent * event, GfsSimulation * sim)
     gfs_event_init (event, sim);
 }
 
+static void redo_non_variable (GfsEvent * event, GfsSimulation * sim)
+{
+  if (!GFS_IS_VARIABLE (event))
+    gfs_event_redo (event, sim);
+}
+
 /**
  * gfs_simulation_init:
  * @sim: a #GfsSimulation.
@@ -977,11 +1045,28 @@ void gfs_simulation_init (GfsSimulation * sim)
   gfs_domain_cell_traverse (domain,
 			    FTT_POST_ORDER, FTT_TRAVERSE_NON_LEAFS, -1,
 			    (FttCellTraverseFunc) gfs_cell_coarse_init, domain);
+
+  /* Iterate mesh adaptation and initialisation */
+  if (domain->timer->start >= 0.) /* only if timing is on (i.e. within gfs_simulation_run()) */
+    while (gfs_simulation_adapt (sim)) {
+      gts_container_foreach (GTS_CONTAINER (sim->events), (GtsFunc) redo_non_variable, sim);
+      i = domain->variables;
+      while (i) {
+	gfs_event_redo (GFS_EVENT (i->data), sim);
+	gfs_domain_bc (domain, FTT_TRAVERSE_LEAFS, -1, i->data);
+	i = i->next;
+      }
+      gfs_domain_cell_traverse (domain,
+				FTT_POST_ORDER, FTT_TRAVERSE_NON_LEAFS, -1,
+				(FttCellTraverseFunc) gfs_cell_coarse_init, domain);
+      if (sim->adapts_stats.depth_increase <= 0)
+	break;
+    }
 }
 
 static void refine_cell_corner (FttCell * cell, GfsDomain * domain)
 {
-  if (ftt_refine_corner (cell))
+  if (FTT_CELL_IS_LEAF (cell) && ftt_refine_corner (cell))
     ftt_cell_refine_single (cell, domain->cell_init, domain->cell_init_data);
 }
 
@@ -1003,6 +1088,24 @@ static void check_solid_fractions (GfsBox * box, guint * nf)
 				(FttFaceTraverseFunc) check_face, nf);
 }
 
+/**
+ * gfs_check_solid_fractions:
+ * @domain: a #GfsDomain.
+ *
+ * Checks consistency of solid fractions.
+ *
+ * Returns: the number of partial fluid faces which do not have two
+ * neighbors.
+ */
+guint gfs_check_solid_fractions (GfsDomain * domain)
+{
+  g_return_val_if_fail (domain != NULL, 0);
+
+  guint nf = 0;
+  gts_container_foreach (GTS_CONTAINER (domain), (GtsFunc) check_solid_fractions, &nf);
+  return nf;
+}
+
 static void is_diffusion (GfsSource * s, gboolean * diffusion)
 {
   *diffusion = (GFS_IS_SOURCE_DIFFUSION (s) != NULL);
@@ -1032,6 +1135,25 @@ GSList * gfs_simulation_get_solids (GfsSimulation * sim)
   return solids;
 }
 
+static gboolean coarsen_cell (void)
+{
+  return TRUE;
+}
+
+static void refine_leaf_boxes (GfsBox * box, GfsDomain * domain)
+{
+  /* refine then coarsen boxes which are also leaf cells: this is the
+   * simplest way to initialise the values of "automatic" GfsVariables
+   * e.g. VariableTerrain, VariableMetric etc... */
+  if (FTT_CELL_IS_LEAF (box->root)) {
+    ftt_cell_refine_single (box->root, domain->cell_init, domain->cell_init_data);
+    gfs_cell_coarse_init (box->root, domain);
+    ftt_cell_coarsen (box->root, 
+		      (FttCellCoarsenFunc) coarsen_cell, NULL,
+		      (FttCellCleanupFunc) gfs_cell_cleanup, domain);
+  }
+}
+
 /**
  * gfs_simulation_refine:
  * @sim: a #GfsSimulation.
@@ -1043,7 +1165,7 @@ GSList * gfs_simulation_get_solids (GfsSimulation * sim)
 void gfs_simulation_refine (GfsSimulation * sim)
 {
   GSList * i;
-  guint depth, nf = 0;
+  guint depth;
   gint l;
   GfsDomain * domain;
 
@@ -1062,6 +1184,8 @@ void gfs_simulation_refine (GfsSimulation * sim)
     i = next;
   }
 
+  gts_container_foreach (GTS_CONTAINER (sim), (GtsFunc) refine_leaf_boxes, sim);
+
   depth = gfs_domain_depth (domain);
   for (l = depth - 2; l >= 0; l--)
     gfs_domain_cell_traverse (domain,
@@ -1084,7 +1208,8 @@ void gfs_simulation_refine (GfsSimulation * sim)
 			       (FttCellTraverseFunc) set_permanent, NULL);
     gfs_domain_timer_stop (domain, "solid_fractions");
   }
-  gts_container_foreach (GTS_CONTAINER (sim), (GtsFunc) check_solid_fractions, &nf);
+
+  guint nf = gfs_check_solid_fractions (domain);
   if (nf > 0) {
     GSList * i = domain->variables;
     gboolean diffusion = FALSE;
@@ -1121,20 +1246,14 @@ GfsSimulation * gfs_simulation_read (GtsFile * fp)
   while (fp->type == '\n')
      gts_file_next_token (fp);
 
-  while (fp->type == GTS_STRING)
-    if (!strcmp (fp->token->str, "GModule")) { /* preloaded module */
-      GModule * module = load_module (fp, NULL);
-      if (module == NULL)
-	return NULL;
-      ml = g_slist_prepend (ml, module);
-    }
-    else {
-      gts_file_error (fp, "unknown keyword `%s'", fp->token->str);
+  while (fp->type == GTS_STRING && !strcmp (fp->token->str, "GModule")) { /* preloaded module */
+    GModule * module = load_module (fp, NULL);
+    if (module == NULL)
       return NULL;
-    }
-
-  while (fp->type == '\n')
-     gts_file_next_token (fp);
+    ml = g_slist_prepend (ml, module);
+    while (fp->type == '\n')
+      gts_file_next_token (fp);
+  }
       
   d = gfs_domain_read (fp);
   if (d != NULL && !GFS_IS_SIMULATION (d)) {
@@ -1248,8 +1367,8 @@ void gfs_simulation_union_write (GfsSimulation * sim,
 
     MPI_Comm_size (MPI_COMM_WORLD, &gsize);
     nbox = g_malloc (sizeof (guint)*gsize);
-    nbox[domain->pid] = gts_container_size (GTS_CONTAINER (sim));
-    MPI_Allgather (&nbox[domain->pid], 1, MPI_UNSIGNED, nbox, 1, MPI_UNSIGNED, MPI_COMM_WORLD);
+    guint n = gts_container_size (GTS_CONTAINER (sim));
+    MPI_Allgather (&n, 1, MPI_UNSIGNED, nbox, 1, MPI_UNSIGNED, MPI_COMM_WORLD);
     /* nbox[] now contains the number of boxes on each PE */
 
     /* see gts/src/graph.c:gts_graph_write() for the original (serial) implementation */
@@ -1629,10 +1748,13 @@ void gfs_simulation_run (GfsSimulation * sim)
 
   guint id = g_log_set_handler ("Gfs", G_LOG_LEVEL_ERROR | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION,
 				error_handler, sim);
-  gfs_clock_start (GFS_DOMAIN (sim)->timer);
-  gts_range_init (&GFS_DOMAIN (sim)->mpi_wait);
+  GfsDomain * domain = GFS_DOMAIN (sim);
+  g_timer_start (domain->clock);
+  gfs_clock_start (domain->timer);
+  gts_range_init (&domain->mpi_wait);
   (* GFS_SIMULATION_CLASS (GTS_OBJECT (sim)->klass)->run) (sim);
-  gfs_clock_stop (GFS_DOMAIN (sim)->timer);
+  gfs_clock_stop (domain->timer);
+  g_timer_stop (domain->clock);
   g_log_remove_handler ("Gfs", id);
 }
 
@@ -1675,11 +1797,41 @@ void gfs_simulation_map_inverse (GfsSimulation * sim, FttVector * p)
   FttComponent c;
   for (c = 0; c < 3; c++)
     (&p->x)[c] *= sim->physical_params.L/(&GFS_DOMAIN (sim)->lambda.x)[c];
-  GSList * i = sim->maps->items;
+  GSList * reverse = g_slist_reverse (sim->maps->items);
+  GSList * i = reverse;
   while (i) {
     (* GFS_MAP (i->data)->inverse) (i->data, p, p);
     i = i->next;
   }
+  sim->maps->items = g_slist_reverse (reverse);
+}
+
+/**
+ * gfs_simulation_map_inverse_cell:
+ * @sim: a #GfsSimulation.
+ * @p: an array of #FttVector.
+ *
+ * Array @p should contain the (x,y) coordinates of the four corners
+ * of a #FttCell. This function will inverse transform these
+ * coordinates taking into account any specificity of the mapping
+ * (e.g. periodicity).
+ */
+void gfs_simulation_map_inverse_cell (GfsSimulation * sim, FttVector p[4])
+{
+  g_return_if_fail (sim != NULL);
+  g_return_if_fail (p != NULL);
+  
+  FttComponent j, c;
+  for (j = 0; j < 4; j++)
+    for (c = 0; c < 3; c++)
+      (&p[j].x)[c] *= sim->physical_params.L/(&GFS_DOMAIN (sim)->lambda.x)[c];
+  GSList * reverse = g_slist_reverse (sim->maps->items);
+  GSList * i = reverse;
+  while (i) {
+    (* GFS_MAP (i->data)->inverse_cell) (i->data, p, p);
+    i = i->next;
+  }
+  sim->maps->items = g_slist_reverse (reverse);
 }
 
 /**
@@ -1694,7 +1846,7 @@ gdouble gfs_dimensional_value (GfsVariable * v, gdouble val)
   g_return_val_if_fail (v != NULL, 0.);
 
   gdouble L;
-  if (val == G_MAXDOUBLE || v->units == 0. || 
+  if (val == GFS_NODATA || v->units == 0. || 
       (L = GFS_SIMULATION (v->domain)->physical_params.L) == 1.)
     return val;
   return val*pow (L, v->units);
@@ -1715,7 +1867,12 @@ gboolean gfs_variable_is_dimensional (GfsVariable * v)
   return TRUE;
 }
 
-/* GfsAdvection: Object */
+/** \endobject{GfsSimulation} */
+
+/**
+ * The advection solver.
+ * \beginobject{GfsAdvection}
+ */
 
 static void advection_run (GfsSimulation * sim)
 {
@@ -1727,7 +1884,7 @@ static void advection_run (GfsSimulation * sim)
   while (i && !streamfunction) {
     streamfunction = (GFS_IS_VARIABLE_STREAM_FUNCTION (i->data) != NULL);
     i = i->next;
-  }  
+  }
 #endif /* 2D */
 
   gfs_simulation_refine (sim);
@@ -1797,59 +1954,62 @@ GfsSimulationClass * gfs_advection_class (void)
   return klass;
 }
 
-/* GfsPoisson: Object */
+/** \endobject{GfsAdvection} */
 
-static void rescale_div (FttCell * cell, gpointer * data)
+/**
+ * The Poisson solver.
+ * \beginobject{GfsPoisson}
+ */
+
+typedef struct {
+  GfsVariable * divu, * div;
+  gdouble ddiv;
+  GtsRange vol;
+} DivData;
+
+static void rescale_div (FttCell * cell, DivData * p)
 {
-  GfsVariable * divu = data[0];
-  GfsVariable * div = data[1];
-  GtsRange * vol = data[2];
   gdouble size = ftt_cell_size (cell);
-
-  GFS_VARIABLE (cell, div->i) = GFS_VARIABLE (cell, divu->i)*size*size*(GFS_IS_MIXED (cell) ?
-									GFS_STATE (cell)->solid->a : 1.);
-  if (GFS_IS_MIXED (cell))
-    gts_range_add_value (vol, size*size*GFS_STATE (cell)->solid->a);
-  else
-    gts_range_add_value (vol, size*size);
+  gdouble a = size*size*gfs_domain_cell_fraction (p->div->domain, cell);
+  GFS_VALUE (cell, p->div) = GFS_VALUE (cell, p->divu)*a;
+  gts_range_add_value (&p->vol, a);
 }
 
-static void add_ddiv (FttCell * cell, gpointer * data)
+static void add_ddiv (FttCell * cell, DivData * p)
 {
-  GfsVariable * div = data[1];
-  gdouble * ddiv = data[2];
   gdouble size = ftt_cell_size (cell);
-
-  if (GFS_IS_MIXED (cell))
-    GFS_VARIABLE (cell, div->i) += size*size*GFS_STATE (cell)->solid->a*(*ddiv);
-  else
-    GFS_VARIABLE (cell, div->i) += size*size*(*ddiv);
+  GFS_VALUE (cell, p->div) += size*size*p->ddiv*gfs_domain_cell_fraction (p->div->domain, cell);
 }
 
-static void correct_div (GfsDomain * domain, GfsVariable * divu, GfsVariable * div)
+static void correct_div (GfsDomain * domain, GfsVariable * divu, GfsVariable * div,
+			 gboolean dirichlet)
 {
-  gpointer data[3];
-  GtsRange vol;
-  gdouble ddiv;
-
-  gts_range_init (&vol);
-  data[0] = divu;
-  data[1] = div;
-  data[2] = &vol;
+  DivData p = { divu, div };
+  gts_range_init (&p.vol);
   gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
-			    (FttCellTraverseFunc) rescale_div, data);
-  gts_range_update (&vol);
+			    (FttCellTraverseFunc) rescale_div, &p);
 
-  ddiv = - gfs_domain_stats_variable (domain, div, FTT_TRAVERSE_LEAFS, -1).mean/vol.mean;
-  data[2] = &ddiv;
-  gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
-			    (FttCellTraverseFunc) add_ddiv, data);
+  if (!dirichlet) {
+    gts_range_update (&p.vol);
+    
+    p.ddiv = - gfs_domain_stats_variable (domain, div, 
+					  FTT_TRAVERSE_LEAFS, -1, 
+					  NULL, NULL).mean/p.vol.mean;
+    gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
+			      (FttCellTraverseFunc) add_ddiv, &p);
+  }
 }
 
 static void copy_res (FttCell * cell, gpointer * data)
 {
   GfsVariable * res = data[0], * res1 = data[1];
-  GFS_VARIABLE (cell, res->i) = GFS_VARIABLE (cell, res1->i);
+  GFS_VALUE (cell, res) = GFS_VALUE (cell, res1);
+}
+
+static void has_dirichlet (FttCell * cell, GfsVariable * p)
+{
+  if (((cell)->flags & GFS_FLAG_DIRICHLET) != 0)
+    p->centered = FALSE;
 }
 
 static void poisson_run (GfsSimulation * sim)
@@ -1861,7 +2021,6 @@ static void poisson_run (GfsSimulation * sim)
 
   gfs_simulation_refine (sim);
   gfs_simulation_init (sim);
-
   i = domain->variables;
   while (i) {
     if (GFS_IS_VARIABLE_RESIDUAL (i->data))
@@ -1870,25 +2029,27 @@ static void poisson_run (GfsSimulation * sim)
   }
 
   p = gfs_variable_from_name (domain->variables, "P");
+  gfs_domain_surface_bc (domain, p);
+  gfs_domain_traverse_mixed (domain, FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS,
+			     (FttCellTraverseFunc) has_dirichlet, p);
+  if (!p->centered) {
+    guint nf = gfs_check_solid_fractions (domain);
+    if (nf > 0)
+      g_warning ("the solid surface cuts %d boundary cells,\n"
+		 "this may cause errors for the Poisson solution\n", nf);
+  }
+
   div = gfs_temporary_variable (domain);
-  correct_div (domain, gfs_variable_from_name (domain->variables, "Div"), div);
-  gfs_poisson_coefficients (domain, NULL);
   res1 = gfs_temporary_variable (domain);
   dia = gfs_temporary_variable (domain);
-  gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, FTT_TRAVERSE_ALL, -1,
-			    (FttCellTraverseFunc) gfs_cell_reset, dia);
-  /* compute residual */
-  par->depth = gfs_domain_depth (domain);  
-  gfs_residual (domain, par->dimension, FTT_TRAVERSE_LEAFS, -1, p, div, dia, res1);
-  /* solve for pressure */
-  par->residual_before = par->residual = 
-    gfs_domain_norm_residual (domain, FTT_TRAVERSE_LEAFS, -1, 1., res1);
-  par->niter = 0;
-  while (sim->time.t < sim->time.end &&
-	 sim->time.i < sim->time.iend &&
-	 sim->time.i < par->nitermax &&
-	 par->residual.infty > par->tolerance) {
+
+  while (sim->time.i < sim->time.iend && sim->time.t < sim->time.end) {
     gdouble tstart = gfs_clock_elapsed (domain->timer);
+    
+    gfs_domain_cell_traverse (domain,
+			      FTT_POST_ORDER, FTT_TRAVERSE_NON_LEAFS, -1,
+			      (FttCellTraverseFunc) gfs_cell_coarse_init, domain);
+    gfs_simulation_adapt (sim);
 
     if (res) {
       gpointer data[2];
@@ -1897,20 +2058,15 @@ static void poisson_run (GfsSimulation * sim)
       gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
 				(FttCellTraverseFunc) copy_res, data);
     }
+    
+    gfs_domain_surface_bc (domain, p);
+    correct_div (domain, gfs_variable_from_name (domain->variables, "Div"), div, !p->centered);
+    gfs_poisson_coefficients (domain, sim->physical_params.alpha, FALSE, p->centered);
+    gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, FTT_TRAVERSE_ALL, -1,
+			      (FttCellTraverseFunc) gfs_cell_reset, dia);
 
-    gts_container_foreach (GTS_CONTAINER (sim->events), (GtsFunc) gfs_event_do, sim);
-
-    gfs_domain_timer_start (domain, "poisson_cycle");
-    gfs_poisson_cycle (domain, par, p, div, dia, res1);
-    par->residual = gfs_domain_norm_residual (domain, FTT_TRAVERSE_LEAFS, -1, 1., res1);
-    gfs_domain_timer_stop (domain, "poisson_cycle");
+    par->poisson_solve (domain, par, p, div, res1, dia, 1.);
 
-    gfs_domain_cell_traverse (domain,
-			      FTT_POST_ORDER, FTT_TRAVERSE_NON_LEAFS, -1,
-			      (FttCellTraverseFunc) gfs_cell_coarse_init, domain);
-    gfs_simulation_adapt (sim);
-
-    par->niter++;
     sim->time.t = sim->tnext;
     sim->time.i++;
 
@@ -1918,10 +2074,11 @@ static void poisson_run (GfsSimulation * sim)
     gts_range_update (&domain->timestep);
     gts_range_add_value (&domain->size, gfs_domain_size (domain, FTT_TRAVERSE_LEAFS, -1));
     gts_range_update (&domain->size);
+
+    gts_container_foreach (GTS_CONTAINER (sim->events), (GtsFunc) gfs_event_do, sim);
   }
-  gts_container_foreach (GTS_CONTAINER (sim->events), (GtsFunc) gfs_event_do, sim);  
-  gts_container_foreach (GTS_CONTAINER (sim->events),
-			 (GtsFunc) gts_object_destroy, NULL);
+  gts_container_foreach (GTS_CONTAINER (sim->events), (GtsFunc) gts_object_destroy, NULL);
+
   gts_object_destroy (GTS_OBJECT (dia));
   gts_object_destroy (GTS_OBJECT (div));
   gts_object_destroy (GTS_OBJECT (res1));
@@ -1935,6 +2092,7 @@ static void poisson_class_init (GfsSimulationClass * klass)
 static void poisson_init (GfsDomain * domain)
 {
   gfs_domain_add_variable (domain, "Div", "Right-hand-side of the Poisson equation");
+  GFS_SIMULATION (domain)->time.iend = 1;
 }
 
 GfsSimulationClass * gfs_poisson_class (void)
@@ -1957,7 +2115,12 @@ GfsSimulationClass * gfs_poisson_class (void)
   return klass;
 }
 
-/* GfsAxi: Object */
+/** \endobject{GfsPoisson} */
+
+/**
+ * The axisymmetric Euler solver.
+ * \beginobject{GfsAxi}
+ */
 
 static void axi_read (GtsObject ** object, GtsFile * fp)
 {
@@ -2019,3 +2182,5 @@ GfsSimulationClass * gfs_axi_class (void)
 
   return klass;
 }
+
+/** \endobject{GfsAxi} */
diff --git a/src/simulation.h b/src/simulation.h
index f01c08d..57b6346 100644
--- a/src/simulation.h
+++ b/src/simulation.h
@@ -50,6 +50,7 @@ struct _GfsAdaptStats {
   guint removed, created;
   GtsRange cmax;
   GtsRange ncells;
+  gint depth_increase;
 };
 
 struct _GfsSimulation {
@@ -78,6 +79,9 @@ struct _GfsSimulation {
   gboolean deferred_compilation;
 
   gdouble tnext;
+
+  GfsVariable * u0[FTT_DIMENSION];
+  GHashTable * function_cache;
 };
 
 struct _GfsSimulationClass {
@@ -109,12 +113,15 @@ void                 gfs_simulation_union_write  (GfsSimulation * sim,
 						  FILE * fp);
 GfsSimulation *      gfs_simulation_read         (GtsFile * fp);
 GSList *             gfs_simulation_get_solids   (GfsSimulation * sim);
+guint                gfs_check_solid_fractions   (GfsDomain * domain);
 void                 gfs_simulation_refine       (GfsSimulation * sim);
 void                 gfs_simulation_set_timestep (GfsSimulation * sim);
 void                 gfs_simulation_map          (GfsSimulation * sim, 
 						  FttVector * p);
 void                 gfs_simulation_map_inverse  (GfsSimulation * sim, 
 						  FttVector * p);
+void                 gfs_simulation_map_inverse_cell (GfsSimulation * sim, 
+						      FttVector p[4]);
 gdouble              gfs_dimensional_value       (GfsVariable * v, 
 						  gdouble val);
 gboolean             gfs_variable_is_dimensional (GfsVariable * v);
@@ -139,6 +146,8 @@ GfsSimulationClass * gfs_advection_class          (void);
 
 /* GfsPoisson: Header */
 
+#define GFS_IS_POISSON(obj)      (gts_object_is_from_class (obj, gfs_poisson_class ()))
+
 GfsSimulationClass * gfs_poisson_class            (void);
 
 /* GfsAxi: Header */
diff --git a/src/solid.c b/src/solid.c
index 624c3bd..d3d6d4c 100644
--- a/src/solid.c
+++ b/src/solid.c
@@ -16,6 +16,9 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
  * 02111-1307, USA.  
  */
+/*! \file
+ * \brief Solid boundaries.
+ */
 
 #include <math.h>
 #include <stdlib.h>
@@ -331,7 +334,7 @@ gboolean gfs_solid_is_thin (FttCell * cell, GfsGenericSurface * s)
   return solid_face_is_thin (&f);
 }
 
-#else /* 2D3 or 3D */
+#else /* 3D */
 #include "isocube.h"
 
 typedef struct {
@@ -365,11 +368,7 @@ static void rotate (CellFace * f, FttVector * h, FttComponent c)
 static void cell_size (FttCell * cell, FttVector * h)
 {
   h->x = h->y = ftt_cell_size (cell);
-#if FTT_2D3
-  h->z = 1.;
-#else  /* 3D */
   h->z = h->x;
-#endif /* 3D */
 }
 
 /* Returns: the number of closed loops for the given isocube
@@ -624,7 +623,7 @@ gboolean gfs_solid_is_thin (FttCell * cell, GfsGenericSurface * s)
   return (topology (&cube) > 1);
 }
 
-#endif /* 2D3 or 3D */
+#endif /* 3D */
 
 static gdouble solid_sa (GfsSolidVector * s)
 {
@@ -1411,9 +1410,6 @@ static void outer_fractions_coarse_fine (FttCell * parent, FttDirection d)
  */
 void gfs_solid_coarse_fine (FttCell * parent, GfsDomain * domain)
 {
-#if FTT_2D3
-  g_assert_not_implemented ();
-#endif
   g_return_if_fail (parent);
   g_return_if_fail (domain);
   g_return_if_fail (GFS_IS_MIXED (parent));
@@ -1515,7 +1511,10 @@ void gfs_solid_coarse_fine (FttCell * parent, GfsDomain * domain)
 #endif /* 3D */
 }
 
-/* GfsSolid: Object */
+/**
+ * Solid boundaries.
+ * \beginobject{GfsSolid}
+ */
 
 static void gfs_solid_read (GtsObject ** o, GtsFile * fp)
 {
@@ -1575,3 +1574,5 @@ GfsEventClass * gfs_solid_class (void)
 
   return klass;
 }
+
+/** \endobject{GfsSolid} */
diff --git a/src/source.c b/src/source.c
index 358bbf3..d8667b2 100644
--- a/src/source.c
+++ b/src/source.c
@@ -16,12 +16,17 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
  * 02111-1307, USA.  
  */
+/*! \file
+ * \brief Source terms.
+ */
 
 #include <stdlib.h>
 #include <math.h>
 #include "source.h"
 #include "simulation.h"
+#include "river.h"
 #include "solid.h"
+#include "init.h"
 
 /**
  * gfs_variable_mac_source:
@@ -136,7 +141,10 @@ GfsVariable * gfs_domain_variable_fluxes (GfsDomain * domain,
   return sv;
 }
 
-/* GfsSourceGeneric: Object */
+/**
+ * Abstract class for source terms.
+ * \beginobject{GfsSourceGeneric}
+ */
 
 static void source_generic_init (GfsSourceGeneric * s)
 {
@@ -191,7 +199,12 @@ GfsSourceGeneric * gfs_source_find (GfsVariable * v, GfsSourceGenericClass * kla
   return NULL;
 }
 
-/* GfsSourceScalar: Object */
+/** \endobject{GfsSourceGeneric} */
+
+/**
+ * Source terms for scalar variables.
+ * \beginobject{GfsSourceScalar}
+ */
 
 static void source_scalar_write (GtsObject * o, FILE * fp)
 {
@@ -261,7 +274,12 @@ GfsSourceGenericClass * gfs_source_scalar_class (void)
   return klass;
 }
 
-/* GfsSourceVelocity: Object */
+/** \endobject{GfsSourceScalar} */
+
+/**
+ * Source terms for velocity.
+ * \beginobject{GfsSourceVelocity}
+ */
 
 static void source_velocity_read (GtsObject ** o, GtsFile * fp)
 {
@@ -300,7 +318,7 @@ GfsSourceGenericClass * gfs_source_velocity_class (void)
 
   if (klass == NULL) {
     GtsObjectClassInfo source_info = {
-      "GfsSourceGeneric",
+      "GfsSourceVelocity",
       sizeof (GfsSourceVelocity),
       sizeof (GfsSourceGenericClass),
       (GtsObjectClassInitFunc) source_velocity_class_init,
@@ -315,7 +333,12 @@ GfsSourceGenericClass * gfs_source_velocity_class (void)
   return klass;
 }
 
-/* GfsSource: Object */
+/** \endobject{GfsSourceVelocity} */
+
+/**
+ * Source defined by a function.
+ * \beginobject{GfsSource}
+ */
 
 static void source_destroy (GtsObject * o)
 {
@@ -401,7 +424,12 @@ GfsSourceGenericClass * gfs_source_class (void)
   return klass;
 }
 
-/* GfsSourceControl: Object */
+/** \endobject{GfsSource} */
+
+/**
+ * Controlling the spatially-averaged value of a scalar.
+ * \beginobject{GfsSourceControl}
+ */
 
 static void source_control_destroy (GtsObject * o)
 {
@@ -497,7 +525,12 @@ GfsSourceGenericClass * gfs_source_control_class (void)
   return klass;
 }
 
-/* GfsSourceControlField: Object */
+/** \endobject{GfsSourceControl} */
+
+/**
+ * Controlling the value of a scalar averaged at a given spatial scale.
+ * \beginobject{GfsSourceControlField}
+ */
 
 static void source_control_field_destroy (GtsObject * o)
 {
@@ -507,32 +540,52 @@ static void source_control_field_destroy (GtsObject * o)
   (* GTS_OBJECT_CLASS (gfs_source_control_field_class ())->parent_class->destroy) (o);
 }
 
+static gdouble source_control_field_face_value (GfsSourceGeneric * s, 
+						FttCellFace * face, 
+						GfsVariable * v)
+{
+  return gfs_face_interpolated_value (face, GFS_SOURCE_CONTROL_FIELD (s)->s->i);
+}
+
 static void source_control_field_read (GtsObject ** o, GtsFile * fp)
 {
   (* GTS_OBJECT_CLASS (gfs_source_control_field_class ())->parent_class->read) (o, fp);
   if (fp->type == GTS_ERROR)
     return;
 
+  GfsSourceControlField * f = GFS_SOURCE_CONTROL_FIELD (*o);
   if (fp->type != GTS_INT) {
     gts_file_error (fp, "expecting an integer (level)");
     return;
   }
-  GFS_SOURCE_CONTROL_FIELD (*o)->level = atoi (fp->token->str);
+  f->level = atoi (fp->token->str);
   gts_file_next_token (fp);
 
-  GFS_SOURCE_CONTROL_FIELD (*o)->s = 
-    gfs_temporary_variable (GFS_DOMAIN (gfs_object_simulation (*o)));
+  if (fp->type != GTS_INT && fp->type != GTS_DOUBLE) {
+    gts_file_error (fp, "expecting a number (tau)");
+    return;
+  }
+  f->tau = atof (fp->token->str);
+  if (f->tau <= 0.) {
+    gts_file_error (fp, "tau must be strictly positive");
+    return;
+  }
+  gts_file_next_token (fp);  
+
+  f->s = gfs_temporary_variable (GFS_DOMAIN (gfs_object_simulation (*o)));
+
+  GfsSourceGeneric * s = GFS_SOURCE_GENERIC (*o);
+  gchar * name = GFS_SOURCE_SCALAR (s)->v->name;
+  if (!strcmp (name, "U") || !strcmp (name, "V") || !strcmp (name, "W")) {
+    s->mac_value = s->centered_value = NULL;
+    s->face_value = source_control_field_face_value;
+  }
 }
 
 static void source_control_field_write (GtsObject * o, FILE * fp)
 {
   (* GTS_OBJECT_CLASS (gfs_source_control_field_class ())->parent_class->write) (o, fp);
-  fprintf (fp, " %d", GFS_SOURCE_CONTROL_FIELD (o)->level);
-}
-
-static void set_s (FttCell * cell, GfsSourceControlField * f)
-{
-  GFS_VALUE (cell, f->s) = GFS_SOURCE_CONTROL (f)->s;
+  fprintf (fp, " %d %g", GFS_SOURCE_CONTROL_FIELD (o)->level, GFS_SOURCE_CONTROL_FIELD (o)->tau);
 }
 
 static void source_control_field_root (FttCell * root, GfsSourceControlField * f)
@@ -540,20 +593,48 @@ static void source_control_field_root (FttCell * root, GfsSourceControlField * f
   Sum su = { GFS_SOURCE_SCALAR (f)->v, 0., 0. };
   ftt_cell_traverse (root, FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
 		     (FttCellTraverseFunc) sum, &su);
-  gdouble dt = gfs_object_simulation (f)->advection_params.dt;
-  GFS_SOURCE_CONTROL (f)->s = dt > 0. && su.sv > 0. ? 
-    (gfs_function_value (GFS_SOURCE_CONTROL (f)->intensity, root) - su.s/su.sv)/dt: 0.;
+  GFS_VALUE (root, f->s) = su.sv > 0. ? 
+    (gfs_function_value (GFS_SOURCE_CONTROL (f)->intensity, root) - su.s/su.sv)/f->tau: 0.;
+}
+
+typedef struct {
+  FttCell * root;
+  gdouble * corners;
+  GfsVariable * v;
+} ExtraData;
+
+static void extrapolate (FttCell * cell, ExtraData * p)
+{
+  FttVector pos;
+  ftt_cell_pos (cell, &pos);
+  GFS_VALUE (cell, p->v) = gfs_interpolate_from_corners (p->root, pos, p->corners);
+}
+
+static void extrapolate_field (FttCell * root, GfsSourceControlField * f)
+{
+  gdouble corners[4*(FTT_DIMENSION - 1)];
+  ExtraData p = { root, corners, f->s };
+  gfs_cell_corner_values (root, f->s, f->level, corners);
+  g_assert (!FTT_CELL_IS_LEAF (root));
   ftt_cell_traverse (root, FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
-		     (FttCellTraverseFunc) set_s, f);
+		     (FttCellTraverseFunc) extrapolate, &p);
 }
 
 static gboolean source_control_field_event (GfsEvent * event, GfsSimulation * sim)
 {
   if ((* gfs_event_class ()->event) (event, sim)) {
-    gfs_domain_cell_traverse (GFS_DOMAIN (sim), FTT_PRE_ORDER, 
-			      FTT_TRAVERSE_LEVEL | FTT_TRAVERSE_LEAFS, 
-			      GFS_SOURCE_CONTROL_FIELD (event)->level,
+    GfsDomain * domain = GFS_DOMAIN (sim);
+    GfsSourceControlField * f = GFS_SOURCE_CONTROL_FIELD (event);
+    gfs_catch_floating_point_exceptions ();
+    gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, 
+			      FTT_TRAVERSE_LEVEL | FTT_TRAVERSE_LEAFS, f->level,
 			      (FttCellTraverseFunc) source_control_field_root, event);
+    gfs_restore_fpe_for_function (GFS_SOURCE_CONTROL (event)->intensity);
+    gfs_domain_bc (domain, FTT_TRAVERSE_LEVEL | FTT_TRAVERSE_LEAFS, f->level, f->s);
+    gfs_domain_cell_traverse (domain, FTT_PRE_ORDER,
+			      FTT_TRAVERSE_LEVEL | FTT_TRAVERSE_NON_LEAFS, f->level,
+			      (FttCellTraverseFunc) extrapolate_field, event);
+    gfs_domain_bc (domain, FTT_TRAVERSE_LEAFS, -1, f->s);
     return TRUE;
   }
   return FALSE;
@@ -576,7 +657,9 @@ static gdouble source_control_field_value (GfsSourceGeneric * s,
 
 static void source_control_field_init (GfsSourceGeneric * s)
 {
-  s->mac_value = s->centered_value = source_control_field_value;
+  s->mac_value = NULL;
+  s->centered_value = source_control_field_value;
+  GFS_SOURCE_CONTROL_FIELD (s)->tau = 1.;
 }
 
 GfsSourceGenericClass * gfs_source_control_field_class (void)
@@ -600,7 +683,12 @@ GfsSourceGenericClass * gfs_source_control_field_class (void)
   return klass;
 }
 
-/* GfsSourceFlux: Object */
+/** \endobject{GfsSourceControlField} */
+
+/**
+ * Adding a flux on a given area or volume.
+ * \beginobject{GfsSourceFlux}
+ */
 
 static void source_flux_destroy (GtsObject * o)
 {
@@ -646,8 +734,12 @@ static gboolean source_flux_event (GfsEvent * event, GfsSimulation * sim)
   if ((* gfs_event_class ()->event) (event, sim)) {
     GfsSourceFlux * s = GFS_SOURCE_FLUX (event);
     s->s = 0.;
+    gfs_catch_floating_point_exceptions ();
     gfs_domain_traverse_leaves (GFS_DOMAIN (sim), (FttCellTraverseFunc) add, s);
+    gfs_restore_fpe_for_function (s->fraction);
+    gfs_catch_floating_point_exceptions ();
     s->s = s->s > 0. ? gfs_function_value (s->intensity, NULL)/s->s : 0.;
+    gfs_restore_fpe_for_function (s->intensity);
     return TRUE;
   }
   return FALSE;
@@ -694,7 +786,12 @@ GfsSourceGenericClass * gfs_source_flux_class (void)
   return klass;
 }
 
-/* GfsDiffusion: Object */
+/** \endobject{SourceFlux} */
+
+/**
+ * Diffusion coefficient.
+ * \beginobject{GfsDiffusion}
+ */
 
 static void diffusion_destroy (GtsObject * o)
 {
@@ -732,7 +829,7 @@ static void diffusion_write (GtsObject * o, FILE * fp)
 
 static void update_mu (FttCell * cell, GfsDiffusion * d)
 {
-  GFS_VARIABLE (cell, d->mu->i) = gfs_function_value (d->val, cell);
+  GFS_VALUE (cell, d->mu) = gfs_function_value (d->val, cell);
 }
 
 static gboolean diffusion_event (GfsEvent * event, GfsSimulation * sim)
@@ -741,10 +838,13 @@ static gboolean diffusion_event (GfsEvent * event, GfsSimulation * sim)
 
   if (gfs_function_get_constant_value (d->val) == G_MAXDOUBLE) {
     if (d->mu == NULL && (d->mu = gfs_function_get_variable (d->val)) == NULL)
-      d->mu = gfs_temporary_variable (GFS_DOMAIN (sim));
-    if (d->mu != gfs_function_get_variable (d->val))
+      d->mu = gfs_domain_add_variable (GFS_DOMAIN (sim), NULL, NULL);
+    if (d->mu != gfs_function_get_variable (d->val)) {
+      gfs_catch_floating_point_exceptions ();
       gfs_domain_cell_traverse (GFS_DOMAIN (sim), FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
 				(FttCellTraverseFunc) update_mu, event);
+      gfs_restore_fpe_for_function (d->val);
+    }
     gfs_domain_cell_traverse (GFS_DOMAIN (sim),
 			      FTT_POST_ORDER, FTT_TRAVERSE_NON_LEAFS, -1,
 			      (FttCellTraverseFunc) gfs_get_from_below_intensive, d->mu);
@@ -817,7 +917,12 @@ gdouble gfs_diffusion_cell (GfsDiffusion * d, FttCell * cell)
   return (* GFS_DIFFUSION_CLASS (GTS_OBJECT (d)->klass)->cell) (d, cell);
 }
 
-/* GfsSourceDiffusion: Object */
+/** \endobject{GfsDiffusion} */
+
+/**
+ * Scalar diffusion.
+ * \beginobject{GfsSourceDiffusion}
+ */
 
 static void source_diffusion_destroy (GtsObject * o)
 {
@@ -979,22 +1084,62 @@ gdouble gfs_source_diffusion_cell (GfsSourceDiffusion * d, FttCell * cell)
   return gfs_diffusion_cell (d->D, cell);
 }
 
-/* GfsSourceDiffusionExplicit: Object */
+/** \endobject{GfsSourceDiffusionExplicit} */
+
+/**
+ * Time-explicit scalar diffusion.
+ * \beginobject{GfsSourceDiffusionExplicit}
+ */
+
+typedef struct {
+  GfsSourceGeneric * s;
+  GfsVariable * v, * sv, * tv;
+  gdouble dt;
+} FluxPar;
 
-static void explicit_diffusion (FttCell * cell, GfsSourceGeneric * s)
+static void add_diffusion_explicit_flux (FttCell * cell, FluxPar * p)
 {
-  GFS_VARIABLE (cell, GFS_SOURCE_DIFFUSION_EXPLICIT (s)->s->i) = 
-    source_diffusion_value (s, cell, GFS_SOURCE_SCALAR (s)->v);
+  /* see also poisson.c:diffusion_rhs() */
+  gdouble f, h, val;
+  FttCellNeighbors neighbor;
+  FttCellFace face;
+  
+  if (GFS_IS_MIXED (cell)) {
+    if (((cell)->flags & GFS_FLAG_DIRICHLET) != 0)
+      f = gfs_cell_dirichlet_gradient_flux (cell, p->v->i, -1, GFS_STATE (cell)->solid->fv);
+    else
+      f = GFS_STATE (cell)->solid->fv;
+  }
+  else
+    f = 0.; /* Neumann condition by default */
+  h = ftt_cell_size (cell);
+  val = GFS_VALUE (cell, p->v);
+  face.cell = cell;
+  ftt_cell_neighbors (cell, &neighbor);
+  for (face.d = 0; face.d < FTT_NEIGHBORS; face.d++) {
+    GfsGradient g;
+
+    face.neighbor = neighbor.c[face.d];
+    gfs_face_cm_weighted_gradient (&face, &g, p->v->i, -1);
+    if (face.d/2 == p->v->component) {
+      g.a *= 2.;
+      g.b *= 2.;
+    }
+    f += g.b - g.a*val;
+  }
+  GFS_VALUE (cell, p->sv) += f/(h*h);
 }
 
-static gboolean gfs_source_diffusion_explicit_event (GfsEvent * event, GfsSimulation * sim)
+static void source_diffusion_explicit_flux (GfsSourceGeneric * s, 
+					    GfsDomain * domain, 
+					    GfsVariable * v, GfsVariable * sv, 
+					    gdouble dt)
 {
-  if ((* GFS_EVENT_CLASS (GTS_OBJECT_CLASS (gfs_source_diffusion_explicit_class ())->parent_class)->event) (event, sim)) {
-    gfs_domain_cell_traverse (GFS_DOMAIN (sim), FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
-			      (FttCellTraverseFunc) explicit_diffusion, event);
-    return TRUE;
-  }
-  return FALSE;
+  GfsVariable * phi = GFS_SOURCE_DIFFUSION_EXPLICIT (s)->phi;
+  gfs_diffusion_coefficients (domain, GFS_SOURCE_DIFFUSION (s), dt, NULL, NULL, NULL, 1.);
+  gfs_domain_surface_bc (domain, phi);
+  FluxPar p = { s, phi, sv };
+  gfs_domain_traverse_leaves (domain, (FttCellTraverseFunc) add_diffusion_explicit_flux, &p);
 }
 
 static void gfs_source_diffusion_explicit_read (GtsObject ** o, GtsFile * fp)
@@ -1005,23 +1150,28 @@ static void gfs_source_diffusion_explicit_read (GtsObject ** o, GtsFile * fp)
   if (fp->type == GTS_ERROR)
     return;
 
-  GFS_SOURCE_DIFFUSION_EXPLICIT (*o)->s = 
-    gfs_temporary_variable (GFS_DOMAIN (gfs_object_simulation (*o)));
-}
-
-static void gfs_source_diffusion_explicit_destroy (GtsObject * o)
-{
-  if (GFS_SOURCE_DIFFUSION_EXPLICIT (o)->s)
-    gts_object_destroy (GTS_OBJECT (GFS_SOURCE_DIFFUSION_EXPLICIT (o)->s));
-
-  (* GTS_OBJECT_CLASS (gfs_source_diffusion_explicit_class ())->parent_class->destroy) (o);
+  GfsSourceDiffusionExplicit * s = GFS_SOURCE_DIFFUSION_EXPLICIT (*o);
+  GfsDomain * domain = GFS_DOMAIN (gfs_object_simulation (s));
+  if (fp->type != GTS_STRING)
+    s->phi = GFS_SOURCE_SCALAR (s)->v;
+  else {
+    s->phi = gfs_variable_from_name (domain->variables, fp->token->str);
+    if (!s->phi) {
+      gts_file_error (fp, "unknown variable '%s'", fp->token->str);
+      return;
+    }
+    gts_file_next_token (fp);
+    gfs_function_set_units (GFS_SOURCE_DIFFUSION (s)->D->val, 
+			    2. + GFS_SOURCE_SCALAR (s)->v->units - s->phi->units);
+  }
 }
 
-static gdouble source_diffusion_explicit_value (GfsSourceGeneric * s, 
-					     FttCell * cell,
-					     GfsVariable * v)
+static void gfs_source_diffusion_explicit_write (GtsObject * o, FILE * fp)
 {
-  return GFS_VARIABLE (cell, GFS_SOURCE_DIFFUSION_EXPLICIT (s)->s->i);
+  (* GTS_OBJECT_CLASS (gfs_source_diffusion_explicit_class ())->parent_class->write) (o, fp);
+  GfsSourceDiffusionExplicit * s = GFS_SOURCE_DIFFUSION_EXPLICIT (o);
+  if (s->phi != GFS_SOURCE_SCALAR (s)->v)
+    fprintf (fp, " %s", s->phi->name);
 }
 
 typedef struct {
@@ -1052,7 +1202,9 @@ static void cell_diffusion_stability (FttCell * cell,
 
   gdouble h = ftt_cell_size (cell);
   if (Dmax > 0.) {
-    gdouble dtmax = h*h/(Dmax*(par->alpha ? gfs_function_value (par->alpha, cell) : 1.));
+    gdouble dtmax = h*h/(Dmax*(par->alpha ? gfs_function_value (par->alpha, cell) : 1.))
+      /* fixme: why 10? */
+      /10.;
     if (dtmax < par->dtmax)
       par->dtmax = dtmax;
   }
@@ -1066,22 +1218,25 @@ static gdouble source_diffusion_stability (GfsSourceGeneric * s,
   par.s = s;
   par.dtmax = G_MAXDOUBLE;
   par.alpha = NULL;
-  gfs_domain_cell_traverse (GFS_DOMAIN (sim), FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
-			    (FttCellTraverseFunc) cell_diffusion_stability, &par);
+  if (GFS_SOURCE_SCALAR (s)->v == GFS_SOURCE_DIFFUSION_EXPLICIT (s)->phi)
+    gfs_domain_cell_traverse (GFS_DOMAIN (sim), FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
+			      (FttCellTraverseFunc) cell_diffusion_stability, &par);
+  /* else
+     fixme: what is the stability condition in that case? */
   return par.dtmax;
 }
 
 static void gfs_source_diffusion_explicit_class_init (GfsSourceGenericClass * klass)
 {
-  GFS_EVENT_CLASS (klass)->event = gfs_source_diffusion_explicit_event;
   GTS_OBJECT_CLASS (klass)->read = gfs_source_diffusion_explicit_read;
-  GTS_OBJECT_CLASS (klass)->destroy = gfs_source_diffusion_explicit_destroy;
+  GTS_OBJECT_CLASS (klass)->write = gfs_source_diffusion_explicit_write;
   klass->stability = source_diffusion_stability;
 }
 
 static void gfs_source_diffusion_explicit_init (GfsSourceGeneric * s)
 {
-  s->mac_value = s->centered_value = source_diffusion_explicit_value;
+  s->mac_value = s->centered_value = NULL;
+  s->flux = source_diffusion_explicit_flux;
 }
 
 GfsSourceGenericClass * gfs_source_diffusion_explicit_class (void)
@@ -1105,13 +1260,12 @@ GfsSourceGenericClass * gfs_source_diffusion_explicit_class (void)
   return klass;
 }
 
-/* GfsSourceViscosity: Object */
+/** \endobject{GfsSourceDiffusionExplicit} */
 
-typedef struct {
-  GfsSourceGeneric * s;
-  GfsVariable * v, * sv, * tv;
-  gdouble dt;
-} FluxPar;
+/**
+ * Viscous terms.
+ * \beginobject{GfsSourceViscosity}
+ */
 
 static void add_viscosity_transverse_flux (FttCell * cell, FluxPar * p)
 {
@@ -1274,7 +1428,12 @@ GfsSourceGenericClass * gfs_source_viscosity_class (void)
   return klass;
 }
 
-/* GfsSourceViscosityExplicit: Object */
+/** \endobject{GfsSourceViscosity} */
+
+/**
+ *
+ * \beginobject{GfsSourceViscosityExplicit}
+ */
 
 static gdouble source_viscosity_stability (GfsSourceGeneric * s,
 					   GfsSimulation * sim)
@@ -1284,9 +1443,11 @@ static gdouble source_viscosity_stability (GfsSourceGeneric * s,
   par.s = s;
   par.dtmax = G_MAXDOUBLE;
   par.alpha = sim->physical_params.alpha;
+  gfs_catch_floating_point_exceptions ();
   gfs_domain_cell_traverse (GFS_DOMAIN (sim), FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
 			    (FttCellTraverseFunc) cell_diffusion_stability, &par);
-  return 0.1*par.dtmax;
+  gfs_restore_fpe_for_function (par.alpha);
+  return par.dtmax;
 }
 
 static void source_viscosity_explicit_class_init (GfsSourceGenericClass * klass)
@@ -1318,7 +1479,7 @@ static void add_viscosity_explicit_flux (FttCell * cell, FluxPar * p)
     GfsGradient e;
 
     f.neighbor = n.c[f.d];
-    gfs_face_gradient_flux (&f, &e, p->v->i, -1);
+    gfs_face_cm_weighted_gradient (&f, &e, p->v->i, -1);
 #ifndef NOTRANSVERSE
     if (f.d/2 == p->v->component) {
       e.a *= 2.;
@@ -1413,20 +1574,26 @@ GfsSourceGenericClass * gfs_source_viscosity_explicit_class (void)
   return klass;
 }
 
-/* GfsSourceCoriolis: Object */
+/** \endobject{GfsSourceViscosityExplicit} */
+
+/**
+ * Coriolis acceleration and linear friction.
+ * \beginobject{GfsSourceCoriolis}
+ */
 
 static void source_coriolis_destroy (GtsObject * o)
 {
+  GfsSourceCoriolis * s = GFS_SOURCE_CORIOLIS (o);
   FttComponent c;
 
-  if (GFS_SOURCE_CORIOLIS (o)->omegaz)
-    gts_object_destroy (GTS_OBJECT (GFS_SOURCE_CORIOLIS (o)->omegaz));
-  if (GFS_SOURCE_CORIOLIS (o)->drag)
-    gts_object_destroy (GTS_OBJECT (GFS_SOURCE_CORIOLIS (o)->drag));
+  if (s->omegaz)
+    gts_object_destroy (GTS_OBJECT (s->omegaz));
+  if (s->drag)
+    gts_object_destroy (GTS_OBJECT (s->drag));
 
-  for (c = 0; c <  2; c++)
-    if (GFS_SOURCE_CORIOLIS (o)->u[c])
-      gts_object_destroy (GTS_OBJECT (GFS_SOURCE_CORIOLIS (o)->u[c]));
+  for (c = 0; c <  FTT_DIMENSION; c++)
+    if (s->u[c])
+      gts_object_destroy (GTS_OBJECT (s->u[c]));
 
   (* GTS_OBJECT_CLASS (gfs_source_class ())->parent_class->destroy) (o);
 }
@@ -1456,20 +1623,48 @@ static void gfs_source_coriolis_read (GtsObject ** o, GtsFile * fp)
     }
   }
 
-  GFS_SOURCE_CORIOLIS (*o)->omegaz = gfs_function_new (gfs_function_class (), 0.);
-  gfs_function_read (GFS_SOURCE_CORIOLIS (*o)->omegaz, gfs_object_simulation (*o), fp);
+  GfsSourceCoriolis * s = GFS_SOURCE_CORIOLIS (*o);
+
+  if (GFS_IS_RIVER (domain))
+    s->beta = 1.; /* backward Euler */
+
+  s->omegaz = gfs_function_new (gfs_function_class (), 0.);
+  gfs_function_read (s->omegaz, gfs_object_simulation (s), fp);
 
   if (fp->type != '\n') {
-    GFS_SOURCE_CORIOLIS (*o)->drag = gfs_function_new (gfs_function_class (), 0.);
-    gfs_function_read (GFS_SOURCE_CORIOLIS (*o)->drag, gfs_object_simulation (*o), fp);
+    s->drag = gfs_function_new (gfs_function_class (), 0.);
+    gfs_function_read (s->drag, gfs_object_simulation (s), fp);
   }
 
-#if (!FTT_2D)
-  gts_container_remove (GFS_SOURCE_VELOCITY (*o)->v[FTT_Z]->sources, GTS_CONTAINEE (*o));
-#endif /* 3D */ 
- 
-  for (c = 0; c <  2; c++)
-    GFS_SOURCE_CORIOLIS (*o)->u[c] = gfs_temporary_variable (domain);
+  if (s->beta < 1.)
+    for (c = 0; c <  FTT_DIMENSION; c++)
+      s->u[c] = gfs_temporary_variable (domain);
+  else {
+    GFS_SOURCE_GENERIC (s)->centered_value = NULL;
+    GFS_SOURCE_GENERIC (s)->mac_value = NULL;
+  }
+
+#if !FTT_2D
+  if (fp->type == '{') {
+    GtsFileVariable var[] = {
+      {GTS_DOUBLE, "x", TRUE, &s->d[0]},
+      {GTS_DOUBLE, "y", TRUE, &s->d[1]},
+      {GTS_DOUBLE, "z", TRUE, &s->d[2]},
+      {GTS_NONE}
+    };
+    gts_file_assign_variables (fp, var);
+    if (fp->type == GTS_ERROR)
+      return;
+    gdouble norm = sqrt (s->d[0]*s->d[0] + s->d[1]*s->d[1] + s->d[2]*s->d[2]);
+    if (norm == 0.)
+      gts_file_error (fp, "vector must be non-zero");
+    else {
+      s->d[0] /= norm;
+      s->d[1] /= norm;
+      s->d[2] /= norm;
+    }      
+  }
+#endif /* 3D */
 }
 
 static void gfs_source_coriolis_write (GtsObject * o, FILE * fp)
@@ -1480,6 +1675,8 @@ static void gfs_source_coriolis_write (GtsObject * o, FILE * fp)
   gfs_function_write (s->omegaz, fp);
   if (s->drag)
     gfs_function_write (s->drag, fp);
+  if (s->d[2] != 1.)
+    fprintf (fp," { x = %g y = %g z = %g }", s->d[0], s->d[1], s->d[2]);
 }
 
 static gdouble gfs_source_coriolis_mac_value (GfsSourceGeneric * s,
@@ -1492,8 +1689,17 @@ static gdouble gfs_source_coriolis_mac_value (GfsSourceGeneric * s,
   gdouble e = sc->drag ? gfs_function_value (sc->drag, cell) : 0.;
 
   switch (v->component) {
-  case FTT_X: return - e*GFS_VALUE (cell, sv->v[0]) + f*GFS_VALUE (cell, sv->v[1]);
-  case FTT_Y: return - f*GFS_VALUE (cell, sv->v[0]) - e*GFS_VALUE (cell, sv->v[1]);
+#if FTT_2D
+  case FTT_X: return   f*GFS_VALUE (cell, sv->v[1]) - e*GFS_VALUE (cell, sv->v[0]);
+  case FTT_Y: return - e*GFS_VALUE (cell, sv->v[1]) - f*GFS_VALUE (cell, sv->v[0]);
+#else  /* 3D */
+  case FTT_X: return - e*GFS_VALUE (cell, sv->v[0]) +
+      f*(GFS_VALUE (cell, sv->v[1])*sc->d[2] - GFS_VALUE (cell, sv->v[2])*sc->d[1]);
+  case FTT_Y: return - e*GFS_VALUE (cell, sv->v[1]) +
+      f*(GFS_VALUE (cell, sv->v[2])*sc->d[0] - GFS_VALUE (cell, sv->v[0])*sc->d[2]);
+  case FTT_Z: return - e*GFS_VALUE (cell, sv->v[2]) +
+      f*(GFS_VALUE (cell, sv->v[0])*sc->d[1] - GFS_VALUE (cell, sv->v[1])*sc->d[0]);
+#endif /* 3D */
   default: g_assert_not_reached ();
   }
   return 0.;
@@ -1502,18 +1708,40 @@ static gdouble gfs_source_coriolis_mac_value (GfsSourceGeneric * s,
 static void save_coriolis (FttCell * cell, GfsSourceCoriolis * s)
 {
   GfsSourceVelocity * sv = GFS_SOURCE_VELOCITY (s);
-  gdouble f = gfs_function_value (s->omegaz, cell)/2.;
-  gdouble e = s->drag ? gfs_function_value (s->drag, cell)/2. : 0.;
+  gdouble f = gfs_function_value (s->omegaz, cell)*(1. - s->beta);
+  gdouble e = s->drag ? gfs_function_value (s->drag, cell)*(1. - s->beta) : 0.;
 
-  GFS_VALUE (cell, s->u[0]) = - e*GFS_VALUE (cell, sv->v[0]) + f*GFS_VALUE (cell, sv->v[1]);
-  GFS_VALUE (cell, s->u[1]) = - f*GFS_VALUE (cell, sv->v[0]) - e*GFS_VALUE (cell, sv->v[1]);
+#if FTT_2D
+  GFS_VALUE (cell, s->u[0]) =   f*GFS_VALUE (cell, sv->v[1]) - e*GFS_VALUE (cell, sv->v[0]);
+  GFS_VALUE (cell, s->u[1]) = - e*GFS_VALUE (cell, sv->v[1]) - f*GFS_VALUE (cell, sv->v[0]);
+#else  /* 3D */
+  GFS_VALUE (cell, s->u[0]) = - e*GFS_VALUE (cell, sv->v[0]) +
+    f*(GFS_VALUE (cell, sv->v[1])*s->d[2] - GFS_VALUE (cell, sv->v[2])*s->d[1]);
+  GFS_VALUE (cell, s->u[1]) = - e*GFS_VALUE (cell, sv->v[1]) +
+    f*(GFS_VALUE (cell, sv->v[2])*s->d[0] - GFS_VALUE (cell, sv->v[0])*s->d[2]);
+  GFS_VALUE (cell, s->u[2]) = - e*GFS_VALUE (cell, sv->v[2]) +
+    f*(GFS_VALUE (cell, sv->v[0])*s->d[1] - GFS_VALUE (cell, sv->v[1])*s->d[0]);
+#endif /* 3D */
 }
 
 static gboolean gfs_source_coriolis_event (GfsEvent * event, GfsSimulation * sim)
 {
-  if ((* GFS_EVENT_CLASS (GTS_OBJECT_CLASS (gfs_event_sum_class ())->parent_class)->event) (event, sim)) {
-    gfs_domain_cell_traverse (GFS_DOMAIN (sim), FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
-			      (FttCellTraverseFunc) save_coriolis, event);
+  if ((* GFS_EVENT_CLASS (GTS_OBJECT_CLASS (gfs_event_sum_class ())->parent_class)->event) 
+      (event, sim)) {
+    if (GFS_SOURCE_CORIOLIS (event)->beta < 1.) {
+      gfs_catch_floating_point_exceptions ();
+      gfs_domain_cell_traverse (GFS_DOMAIN (sim), FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
+				(FttCellTraverseFunc) save_coriolis, event);
+      if (gfs_restore_floating_point_exceptions ()) {
+	GfsSourceCoriolis * c = GFS_SOURCE_CORIOLIS (event);
+	gchar * s = g_strconcat ("\n", gfs_function_description (c->omegaz, FALSE), NULL);
+	if (c->drag)
+	  s = g_strconcat (s, "\n", gfs_function_description (c->drag, FALSE), NULL);
+	/* fixme: memory leaks */
+	g_message ("floating-point exception in user-defined function(s):%s", s);
+	exit (1);
+      }
+    }
     return TRUE;
   }
   return FALSE;
@@ -1538,7 +1766,10 @@ static void gfs_source_coriolis_class_init (GfsSourceGenericClass * klass)
 static void gfs_source_coriolis_init (GfsSourceGeneric * s)
 {
   s->mac_value = gfs_source_coriolis_mac_value;
+  GFS_SOURCE_CORIOLIS (s)->beta = 0.5; /* Crank-Nicholson */
   s->centered_value = gfs_source_coriolis_centered_value;
+  GfsSourceCoriolis * sc = GFS_SOURCE_CORIOLIS (s);
+  sc->d[0] = sc->d[1] = 0.; sc->d[2] = 1.;
 }
 
 GfsSourceGenericClass * gfs_source_coriolis_class (void)
@@ -1589,17 +1820,17 @@ GfsSourceCoriolis * gfs_has_source_coriolis (GfsDomain * domain)
   return NULL;
 }
 
-static void implicit_coriolis (FttCell * cell, GfsSourceCoriolis * s)
+static void implicit_coriolis_2D (FttCell * cell, GfsSourceCoriolis * s)
 {
   GfsSourceVelocity * sv = GFS_SOURCE_VELOCITY (s);
   gdouble c, u, v;
   GfsSimulation * sim = gfs_object_simulation (s);
 
-  c = sim->advection_params.dt*gfs_function_value (s->omegaz, cell)/2.;
+  c = sim->advection_params.dt*gfs_function_value (s->omegaz, cell)*s->beta;
   u = GFS_VALUE (cell, sv->v[0]);
   v = GFS_VALUE (cell, sv->v[1]);
   if (s->drag) {
-    gdouble e = sim->advection_params.dt*gfs_function_value (s->drag, cell)/2.;
+    gdouble e = sim->advection_params.dt*gfs_function_value (s->drag, cell)*s->beta;
     GFS_VALUE (cell, sv->v[0]) = (u + c*v/(1. + e))/((1. + e) + c*c/(1. + e));
     GFS_VALUE (cell, sv->v[1]) = (v - c*u/(1. + e))/((1. + e) + c*c/(1. + e));
   }
@@ -1609,6 +1840,34 @@ static void implicit_coriolis (FttCell * cell, GfsSourceCoriolis * s)
   }
 }
 
+static void implicit_coriolis_3D (FttCell * cell, GfsSourceCoriolis * s)
+{
+  GfsSourceVelocity * sv = GFS_SOURCE_VELOCITY (s);
+  GfsSimulation * sim = gfs_object_simulation (s);
+  gdouble c = sim->advection_params.dt*gfs_function_value (s->omegaz, cell)*s->beta;
+  gdouble e = s->drag ? sim->advection_params.dt*gfs_function_value (s->drag, cell)*s->beta : 0.;
+  GtsMatrix * m = gts_matrix_new (    1. + e, -c*s->d[2],   c*s->d[1],  0.,
+				   c*s->d[2],     1. + e,  -c*s->d[0],  0.,
+				  -c*s->d[1],  c*s->d[0],      1. + e,  0.,
+				          0.,         0.,          0.,  0.);
+  GtsMatrix * im = gts_matrix3_inverse (m);
+  g_assert (im);
+  gint i, j;
+  gdouble vel[3];
+
+  for (i = 0; i < 3; i++)
+    vel[i] = GFS_VALUE (cell, sv->v[i]);
+  
+  for (i = 0; i < 3; i++) {
+    GFS_VALUE (cell, sv->v[i]) = 0.;
+    for (j = 0; j < 3; j++)
+      GFS_VALUE (cell, sv->v[i]) += im[i][j]*vel[j];
+  }
+
+  gts_matrix_destroy (m);
+  gts_matrix_destroy (im);
+}
+
 /**
  * gfs_source_coriolis_implicit:
  * @domain: a #GfsDomain.
@@ -1627,8 +1886,21 @@ void gfs_source_coriolis_implicit (GfsDomain * domain,
     GfsSimulation * sim = GFS_SIMULATION (domain);
     gdouble olddt = sim->advection_params.dt;
     sim->advection_params.dt = dt;
+    gfs_catch_floating_point_exceptions ();
     gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
-			      (FttCellTraverseFunc) implicit_coriolis, s);
+			      (FttCellTraverseFunc) (s->d[2] != 1. ? 
+						     implicit_coriolis_3D : implicit_coriolis_2D),
+			      s);
+    if (gfs_restore_floating_point_exceptions ()) {
+      gchar * c = g_strconcat ("\n", gfs_function_description (s->omegaz, FALSE), NULL);
+      if (s->drag)
+	c = g_strconcat (c, "\n", gfs_function_description (s->drag, FALSE), NULL);
+      /* fixme: memory leaks */
+      g_message ("floating-point exception in user-defined function(s):%s", c);
+      exit (1);
+    }
     sim->advection_params.dt = olddt;
   }
 }
+
+/** \endobject{GfsSourceCoriolis} */
diff --git a/src/source.h b/src/source.h
index 536626e..728ab62 100644
--- a/src/source.h
+++ b/src/source.h
@@ -168,6 +168,7 @@ struct _GfsSourceControlField {
   GfsVariable * s;
 
   /*< public >*/
+  gdouble tau;
   gint level;
 };
 
@@ -271,7 +272,7 @@ struct _GfsSourceDiffusionExplicit {
   GfsSourceDiffusion parent;
 
   /*< public >*/
-  GfsVariable * s;
+  GfsVariable * phi;
 };
 
 #define GFS_SOURCE_DIFFUSION_EXPLICIT(obj)            GTS_OBJECT_CAST (obj,\
@@ -316,10 +317,13 @@ typedef struct _GfsSourceCoriolis         GfsSourceCoriolis;
 struct _GfsSourceCoriolis {
   /*< private >*/
   GfsSourceVelocity parent;
-  GfsVariable * u[2];
+  GfsVariable * u[FTT_DIMENSION];
 
   /*< public >*/
-  GfsFunction * omegaz, * drag;
+  GfsFunction * omegaz; /* Coriolis coefficient */
+  GfsFunction *   drag; /* Linear drag coefficient */
+  gdouble         beta; /* "implicitness coefficient" 0.5 CN, 1 backward Euler */
+  double          d[3]; /* Direction of Coriolis rotation vector */
 };
 
 #define GFS_SOURCE_CORIOLIS(obj)            GTS_OBJECT_CAST (obj,\
diff --git a/src/surface.c b/src/surface.c
index 5c9dbfa..86a9bcb 100644
--- a/src/surface.c
+++ b/src/surface.c
@@ -16,12 +16,18 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
  * 02111-1307, USA.  
  */
-
+/*! \file
+ * \brief Surfaces.
+ */
 
 #include "simulation.h"
 #include "surface.h"
 
-/* GfsGenericSurface: Object */
+/**
+ * Abstract class for surfaces (an oriented surface (in 3D) or an
+ * oriented curve (in 2D)).
+ * \beginobject{GfsGenericSurface}
+ */
 
 GfsGenericSurfaceClass * gfs_generic_surface_class (void)
 {
@@ -98,8 +104,11 @@ static void cell_traverse_cut (FttCell * cell,
        ((flags & FTT_TRAVERSE_LEAFS) != 0 && FTT_CELL_IS_LEAF (cell)) ||
        ((flags & FTT_TRAVERSE_NON_LEAFS) != 0 && !FTT_CELL_IS_LEAF (cell))))
     (* func) (cell, s1, data);
-  if (s1 != s)
+  if (s1 != s) {
+    if (GFS_IS_SURFACE (s1))
+      GFS_SURFACE (s1)->bbtree = NULL;
     gts_object_destroy (GTS_OBJECT (s1));
+  }
 }
 
 /**
@@ -258,24 +267,12 @@ gint gfs_surface_point_is_inside (GfsGenericSurface * s,
   return (* GFS_GENERIC_SURFACE_CLASS (GTS_OBJECT (s)->klass)->point_is_inside) (s, p);
 }
 
-/* GfsSurface: Object */
+/** \endobject{GfsGenericSurface} */
 
-static void check_solid_surface (GtsSurface * s, 
-				 const gchar * fname,
-				 GtsFile * fp)
-{
-  GString * name = g_string_new ("surface");
-
-  if (fname) {
-    g_string_append (name, " `");
-    g_string_append (name, fname);
-    g_string_append_c (name, '\'');
-  }
-
-  if (!gts_surface_is_orientable (s))
-    gts_file_error (fp, "%s is not orientable", name->str);
-  g_string_free (name, TRUE);
-}
+/**
+ * A GfsSurface is an oriented surface (in 3D) or an oriented curve (in 2D).
+ * \beginobject{GfsSurface}
+ */
 
 /**
  * gfs_surface_transformation:
@@ -283,7 +280,6 @@ static void check_solid_surface (GtsSurface * s,
  * @rotate: a #GtsVector
  * @translate: a #GtsVector 
  * @scale: a #GtsVector
- * @s: a #gdouble
  * @flip: a #gboolean
  * @matrix: a pointer on a #GtsMatrix
  * 
@@ -342,7 +338,7 @@ static void point_map (GtsPoint * p, GfsSimulation * sim)
 static void surface_read (GtsObject ** o, GtsFile * fp)
 {
   GfsSurface * surface = GFS_SURFACE (*o);
-  gboolean dimensional = FALSE;
+  gboolean dimensional = FALSE, implicit = FALSE;
 
   if (fp->type == '(') { /* implicit surface */
     gts_file_next_token (fp);
@@ -363,18 +359,15 @@ static void surface_read (GtsObject ** o, GtsFile * fp)
     if (surface->s)
       gts_object_destroy (GTS_OBJECT (surface->s));
     surface->s = gts_surface_new (gts_surface_class (), 
-				  gts_face_class (), 
-				  gts_edge_class (), 
-				  gts_vertex_class ());
+				  surface->face_class, 
+				  surface->edge_class, 
+				  surface->vertex_class);
     if (gts_surface_read (surface->s, fp))
       return;
     if (fp->type != '}') {
       gts_file_error (fp, "expecting a closing brace");
       return;
     }
-    check_solid_surface (surface->s, NULL, fp);
-    if (fp->type == GTS_ERROR)
-      return;
     fp->scope_max--;
   }
   else { /* surface file name */
@@ -389,9 +382,9 @@ static void surface_read (GtsObject ** o, GtsFile * fp)
     }
     GtsFile * fp1 = gts_file_new (fptr);
     surface->s = gts_surface_new (gts_surface_class (), 
-				  gts_face_class (), 
-				  gts_edge_class (), 
-				  gts_vertex_class ());
+				  surface->face_class, 
+				  surface->edge_class, 
+				  surface->vertex_class);
     if (gts_surface_read (surface->s, fp1)) {
       gts_file_error (fp, 
 		      "file `%s' is not a valid GTS file\n"
@@ -404,9 +397,6 @@ static void surface_read (GtsObject ** o, GtsFile * fp)
     }
     gts_file_destroy (fp1);
     fclose (fptr);
-    check_solid_surface (surface->s, fp->token->str, fp);
-    if (fp->type == GTS_ERROR)
-      return;
     dimensional = TRUE;
   }
   gts_file_next_token (fp);
@@ -414,39 +404,21 @@ static void surface_read (GtsObject ** o, GtsFile * fp)
   if (fp->type == '{') {
     gdouble scale = 1.;
     GtsFileVariable var[] = {
-      {GTS_DOUBLE, "rx", TRUE},
-      {GTS_DOUBLE, "ry", TRUE},
-      {GTS_DOUBLE, "rz", TRUE},
-      {GTS_DOUBLE, "sx", TRUE},
-      {GTS_DOUBLE, "sy", TRUE},
-      {GTS_DOUBLE, "sz", TRUE},
-      {GTS_DOUBLE, "tx", TRUE},
-      {GTS_DOUBLE, "ty", TRUE},
-      {GTS_DOUBLE, "tz", TRUE},
-      {GTS_DOUBLE, "scale", TRUE},
-      {GTS_INT,    "flip", TRUE},
-      {GTS_INT,    "twod", TRUE},
+      {GTS_DOUBLE, "rx",       TRUE, &surface->rotate[0]},
+      {GTS_DOUBLE, "ry",       TRUE, &surface->rotate[1]},
+      {GTS_DOUBLE, "rz",       TRUE, &surface->rotate[2]},
+      {GTS_DOUBLE, "sx",       TRUE, &surface->scale[0]},
+      {GTS_DOUBLE, "sy",       TRUE, &surface->scale[1]},
+      {GTS_DOUBLE, "sz",       TRUE, &surface->scale[2]},
+      {GTS_DOUBLE, "tx",       TRUE, &surface->translate[0]},
+      {GTS_DOUBLE, "ty",       TRUE, &surface->translate[1]},
+      {GTS_DOUBLE, "tz",       TRUE, &surface->translate[2]},
+      {GTS_DOUBLE, "scale",    TRUE, &scale},
+      {GTS_INT,    "flip",     TRUE, &surface->flip},
+      {GTS_INT,    "twod",     TRUE, &surface->twod},
+      {GTS_INT,    "implicit", TRUE, &implicit},
       {GTS_NONE}
     };
-    GtsFileVariable * v = var;
-
-    (v++)->data = &surface->rotate[0];
-    (v++)->data = &surface->rotate[1];
-    (v++)->data = &surface->rotate[2];
-
-    (v++)->data = &surface->scale[0];
-    (v++)->data = &surface->scale[1];
-    (v++)->data = &surface->scale[2];
-
-    (v++)->data = &surface->translate[0];
-    (v++)->data = &surface->translate[1];
-    (v++)->data = &surface->translate[2];
-
-    (v++)->data = &scale;
-
-    (v++)->data = &surface->flip;
-    (v++)->data = &surface->twod;
-
     gts_file_assign_variables (fp, var);
     if (fp->type == GTS_ERROR)
       return;
@@ -474,6 +446,13 @@ static void surface_read (GtsObject ** o, GtsFile * fp)
     g_assert (surface->s);
     gts_surface_foreach_vertex (surface->s, (GtsFunc) point_map, gfs_object_simulation (*o));
   }
+
+  if (surface->s) {
+    if (implicit)
+      surface->bbtree = gts_bb_tree_surface (surface->s);
+    else if (!gts_surface_is_orientable (surface->s))
+	gts_file_error (fp, "surface is not orientable");
+  }
 }
 
 static void surface_write (GtsObject * o, FILE * fp)
@@ -515,8 +494,12 @@ static void surface_write (GtsObject * o, FILE * fp)
       fputs ("  flip = 1\n", fp);
     if (surface->twod)
       fputs ("  twod = 1\n", fp);
+    if (surface->bbtree)
+      fputs ("  implicit = 1\n", fp);
     fputc ('}', fp);
   }
+  else if (surface->bbtree)
+    fputs (" { implicit = 1 }", fp);
   else
     fputs (" {}", fp);
 }
@@ -530,6 +513,8 @@ static void surface_destroy (GtsObject * object)
     gts_object_destroy (GTS_OBJECT (s->f));
   if (s->m)
     gts_matrix_destroy (s->m);
+  if (s->bbtree)
+    gts_bb_tree_destroy (s->bbtree, TRUE);
 
   (* GTS_OBJECT_CLASS (gfs_surface_class ())->parent_class->destroy) (object);
 }
@@ -556,23 +541,7 @@ static GfsGenericSurface * cell_is_cut (FttCell * cell, GfsGenericSurface * s1,
 					gboolean flatten, gint maxlevel)
 {
   GfsSurface * s = GFS_SURFACE (s1);
-  if (s->s) {
-    GtsSurface * s1 = NULL;
-    gpointer data[2];
-    GtsBBox bb;
-    ftt_cell_bbox (cell, &bb);
-    if (flatten)
-      bb.z1 = bb.z2 = 0.;
-    data[0] = &bb;
-    data[1] = &s1;
-    gts_surface_foreach_face (s->s, (GtsFunc) face_overlaps_box, data);
-    if (s1 == NULL)
-      return NULL;
-    GfsSurface * s2 = GFS_SURFACE (gts_object_new (GTS_OBJECT_CLASS (gfs_surface_class ())));
-    s2->s = s1;
-    return GFS_GENERIC_SURFACE (s2);
-  }
-  else if (s->f) {
+  if (s->f) {
     if (!FTT_CELL_IS_LEAF (cell))
       return GFS_GENERIC_SURFACE (s);
     FttVector p;
@@ -596,6 +565,23 @@ static GfsGenericSurface * cell_is_cut (FttCell * cell, GfsGenericSurface * s1,
 	}
     return NULL;
   }
+  else if (s->s) {
+    GtsSurface * s1 = NULL;
+    gpointer data[2];
+    GtsBBox bb;
+    ftt_cell_bbox (cell, &bb);
+    if (flatten)
+      bb.z1 = bb.z2 = 0.;
+    data[0] = &bb;
+    data[1] = &s1;
+    gts_surface_foreach_face (s->s, (GtsFunc) face_overlaps_box, data);
+    if (s1 == NULL)
+      return NULL;
+    GfsSurface * s2 = GFS_SURFACE (gts_object_new (GTS_OBJECT_CLASS (gfs_surface_class ())));
+    s2->s = s1;
+    s2->bbtree = s->bbtree;
+    return GFS_GENERIC_SURFACE (s2);
+  }
   g_assert_not_reached ();
   return NULL;
 }
@@ -680,9 +666,7 @@ static guint surface_segment_intersection (GfsGenericSurface * s1,
   I->x = 0.;
   I->inside = 0;
 
-  if (s->s)
-    gts_surface_foreach_face (s->s, (GtsFunc) triangle_face_intersection, I);
-  else {
+  if (s->f || s->bbtree) {
     gdouble vE = gfs_surface_implicit_value (s, *I->E);
     gdouble vD = gfs_surface_implicit_value (s, *I->D);
     
@@ -726,6 +710,8 @@ static guint surface_segment_intersection (GfsGenericSurface * s1,
 		   "after %d iterations, error is %g", n, fabs (t - I->x));
     }
   }
+  else
+    gts_surface_foreach_face (s->s, (GtsFunc) triangle_face_intersection, I);
   return I->n;
 }
 
@@ -744,11 +730,7 @@ static void surface_segment_normal (GfsGenericSurface * s1,
 				    GtsVector n)
 {
   GfsSurface * s = GFS_SURFACE (s1);
-  if (s->s) {
-    n[0] = n[1] = n[2] = 0.;
-    gts_surface_foreach_face (s->s, (GtsFunc) surface_normal, n);
-  }
-  else {
+  if (s->f) {
     FttComponent c;
     GtsPoint p = segment_intersection (I);
     for (c = 0; c < FTT_DIMENSION; c++) {
@@ -760,6 +742,10 @@ static void surface_segment_normal (GfsGenericSurface * s1,
       n[c] = v2 - v1;
     }
   }
+  else {
+    n[0] = n[1] = n[2] = 0.;
+    gts_surface_foreach_face (s->s, (GtsFunc) surface_normal, n);
+  }    
 }
 
 static void add_tetrahedron_volume (GtsTriangle * t, gpointer * data)
@@ -777,7 +763,11 @@ static gint point_is_inside_surface (GfsGenericSurface * s1, FttVector * p)
   GtsPoint q;
   q.x = p->x; q.y = p->y; q.z = p->z;
 
-  if (s->s) {
+  if (s->f || s->bbtree) {
+    gdouble v = gfs_surface_implicit_value (s, q);
+    return v == 0. ? 0 : v < 0. ? -1 : 1;
+  }
+  else {
     gdouble vol = 0.;
     gpointer data[2];
     data[0] = &q;
@@ -786,10 +776,6 @@ static gint point_is_inside_surface (GfsGenericSurface * s1, FttVector * p)
     fprintf (stderr, "vol: %g\n", vol);
     return vol > 0. ? -1 : 1;
   }
-  else {
-    gdouble v = gfs_surface_implicit_value (s, q);
-    return v == 0. ? 0 : v < 0. ? -1 : 1;
-  }
   return 0;
 }
 
@@ -809,6 +795,9 @@ static void gfs_surface_init (GfsSurface * s)
 {
   s->scale[0] = 1.; s->scale[1] = 1.; s->scale[2] = 1.;
   s->flip = FALSE;
+  s->vertex_class = gts_vertex_class ();
+  s->edge_class = gts_edge_class ();
+  s->face_class = gts_face_class ();
 }
 
 GfsGenericSurfaceClass * gfs_surface_class (void)
@@ -842,10 +831,21 @@ GfsGenericSurfaceClass * gfs_surface_class (void)
 gdouble gfs_surface_implicit_value (GfsSurface * s, GtsPoint p)
 {
   g_return_val_if_fail (s != NULL, 0.);
-  g_return_val_if_fail (s->f != NULL, 0.);
+  g_return_val_if_fail (s->f != NULL || s->bbtree != NULL, 0.);
 
-  if (s->m)
-    gts_point_transform (&p, s->m);
-  return (s->flip ? -1. : 1.)*(gfs_function_spatial_value (s->f, (FttVector *)&p.x)
-			       /* fixme?? */ + 1e-6);
+  if (s->f) { /* spatial function */
+    if (s->m)
+      gts_point_transform (&p, s->m);
+    return (s->flip ? -1. : 1.)*(gfs_function_spatial_value (s->f, (FttVector *)&p.x)
+				 /* fixme?? */ + 1e-6);
+  }
+  else { /* bounding-box tree */
+    GtsBBox * bbox;
+    gdouble d2 = gts_bb_tree_point_distance (s->bbtree, &p, 
+					     (GtsBBoxDistFunc) gts_point_triangle_distance2, 
+					     &bbox);
+    return gts_point_is_inside_surface (&p, s->bbtree, TRUE) ? d2 : - d2;
+  }
 }
+
+/** \endobject{GfsSurface} */
diff --git a/src/surface.h b/src/surface.h
index d6fdae1..fca3d3e 100644
--- a/src/surface.h
+++ b/src/surface.h
@@ -116,10 +116,15 @@ struct _GfsSurface {
   gboolean flip;
   GfsFunction * f;
   GtsMatrix * m;
+  GNode * bbtree;
 
   /*< public >*/
   GtsSurface * s;
   gboolean twod;
+
+  GtsFaceClass * face_class;
+  GtsEdgeClass * edge_class;
+  GtsVertexClass * vertex_class;
 };
 
 #define GFS_SURFACE(obj)            GTS_OBJECT_CAST (obj,\
diff --git a/src/tension.c b/src/tension.c
index 44e38ac..284f094 100644
--- a/src/tension.c
+++ b/src/tension.c
@@ -16,6 +16,9 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
  * 02111-1307, USA.  
  */
+/*! \file
+ * \brief Surface tension.
+ */
 
 #include <math.h>
 #include <stdlib.h>
@@ -23,8 +26,12 @@
 #include "tension.h"
 #include "vof.h"
 #include "levelset.h"
+#include "init.h"
 
-/* GfsSourceTensionGeneric: Object */
+/**
+ * Generic surface tension class.
+ * \beginobject{GfsSourceTensionGeneric}
+ */
 
 static void gfs_source_tension_generic_destroy (GtsObject * o)
 {
@@ -107,8 +114,17 @@ static gdouble gfs_source_tension_generic_stability (GfsSourceGeneric * s,
   p.c = t->c;
   p.t = t;
   p.sigma = 0.;
+  gfs_catch_floating_point_exceptions ();
   gfs_domain_cell_traverse (GFS_DOMAIN (sim), FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
 			    (FttCellTraverseFunc) min_max_alpha, &p);
+  if (gfs_restore_floating_point_exceptions ()) {
+    gchar * c = g_strconcat ("\n", gfs_function_description (t->sigma, FALSE), NULL);
+    if (p.alpha)
+      c = g_strconcat (c, "\n", gfs_function_description (p.alpha, FALSE), NULL);
+    /* fixme: memory leaks */
+    g_message ("floating-point exception in user-defined function(s):%s", c);
+    exit (1);
+  }
   if (p.sigma == 0.) /* no interface */
     return G_MAXDOUBLE;
   h = ftt_level_size (p.depth);
@@ -155,7 +171,12 @@ GfsSourceGenericClass * gfs_source_tension_generic_class (void)
   return klass;
 }
 
-/* GfsSourceTensionCSS: Object */
+/** \endobject{GfsSourceTensionGeneric} */
+
+/**
+ * Continuum Surface Stress surface tension formulation.
+ * \beginobject{GfsSourceTensionCSS}
+ */
 
 static void gfs_source_tension_css_read (GtsObject ** o, GtsFile * fp)
 {
@@ -186,9 +207,9 @@ static void foreach_cell_normal (FttCell * cell, GfsSourceTensionCSS * s)
   for (c = 0; c < FTT_DIMENSION; c++)
     nn += (&n.x)[c]*(&n.x)[c];
   nn = sqrt (nn + 1e-50);
-  GFS_VARIABLE (cell, s->g[0]->i) = sigh*n.x*n.x/nn;
-  GFS_VARIABLE (cell, s->g[1]->i) = sigh*n.y*n.y/nn;
-  GFS_VARIABLE (cell, s->g[2]->i) = sigh*n.x*n.y/nn;
+  GFS_VALUE (cell, s->g[0]) = sigh*n.x*n.x/nn;
+  GFS_VALUE (cell, s->g[1]) = sigh*n.y*n.y/nn;
+  GFS_VALUE (cell, s->g[2]) = sigh*n.x*n.y/nn;
 }
 
 static void foreach_cell_tension_css (FttCell * cell, GfsSourceTensionCSS * s)
@@ -203,8 +224,8 @@ static void foreach_cell_tension_css (FttCell * cell, GfsSourceTensionCSS * s)
   gfs_youngs_gradient (cell, s->g[1], &ny);
   gfs_youngs_gradient (cell, s->g[2], &nxy);
 
-  GFS_VARIABLE (cell, s->t[0]->i) = alpha*(ny.x - nxy.y)/h;
-  GFS_VARIABLE (cell, s->t[1]->i) = alpha*(nx.y - nxy.x)/h;
+  GFS_VALUE (cell, s->t[0]) = alpha*(ny.x - nxy.y)/h;
+  GFS_VALUE (cell, s->t[1]) = alpha*(nx.y - nxy.x)/h;
 }
 
 static gboolean gfs_source_tension_css_event (GfsEvent * event, 
@@ -240,7 +261,7 @@ static gdouble gfs_source_tension_css_value (GfsSourceGeneric * s,
 					     FttCell * cell,
 					     GfsVariable * v)
 {
-  return GFS_VARIABLE (cell, GFS_SOURCE_TENSION_CSS (s)->t[v->component]->i);
+  return GFS_VALUE (cell, GFS_SOURCE_TENSION_CSS (s)->t[v->component]);
 }
 
 static void gfs_source_tension_css_class_init (GfsSourceGenericClass * klass)
@@ -276,7 +297,12 @@ GfsSourceGenericClass * gfs_source_tension_css_class (void)
   return klass;
 }
 
-/* GfsSourceTension: Object */
+/** \endobject{GfsSourceTensionCSS} */
+
+/**
+ * Balanced Continuum Surface Force surface tension formulation.
+ * \beginobject{GfsSourceTension}
+ */
 
 static void gfs_source_tension_read (GtsObject ** o, GtsFile * fp)
 {
@@ -354,7 +380,12 @@ GfsSourceGenericClass * gfs_source_tension_class (void)
   return klass;
 }
 
-/* GfsVariableCurvature: object */
+/** \endobject{GfsSourceTension} */
+
+/**
+ * Curvature of an interface.
+ * \beginobject{GfsVariableCurvature}
+ */
 
 static void variable_curvature_destroy (GtsObject * o)
 {
@@ -372,7 +403,7 @@ static void curvature_coarse_fine (FttCell * parent, GfsVariable * v)
   ftt_cell_children (parent, &child);
   for (n = 0; n < FTT_CELLS; n++)
     if (child.c[n])
-      GFS_VARIABLE (child.c[n], v->i) = GFS_VARIABLE (parent, v->i);
+      GFS_VALUE (child.c[n], v) = GFS_VALUE (parent, v);
 }
 
 static void curvature_fine_coarse (FttCell * parent, GfsVariable * v)
@@ -383,14 +414,14 @@ static void curvature_fine_coarse (FttCell * parent, GfsVariable * v)
 
   ftt_cell_children (parent, &child);
   for (i = 0; i < FTT_CELLS; i++)
-    if (child.c[i] && GFS_VARIABLE (child.c[i], v->i) < G_MAXDOUBLE) {
-      val += GFS_VARIABLE (child.c[i], v->i);
+    if (child.c[i] && GFS_HAS_DATA (child.c[i], v)) {
+      val += GFS_VALUE (child.c[i], v);
       sa += 1.;
     }
   if (sa > 0.)
-    GFS_VARIABLE (parent, v->i) = val/sa;
+    GFS_VALUE (parent, v) = val/sa;
   else
-    GFS_VARIABLE (parent, v->i) = G_MAXDOUBLE;
+    GFS_VALUE (parent, v) = GFS_NODATA;
 }
 
 static void variable_curvature_read (GtsObject ** o, GtsFile * fp)
@@ -468,9 +499,9 @@ static void height_curvature (FttCell * cell, GfsVariable * v)
   gdouble f = GFS_VALUE (cell, t);
 
   if (GFS_IS_FULL (f)) {
-    GFS_VALUE (cell, v) = G_MAXDOUBLE;
+    GFS_VALUE (cell, v) = GFS_NODATA;
     if (kmax)
-      GFS_VALUE (cell, kmax) = G_MAXDOUBLE;
+      GFS_VALUE (cell, kmax) = GFS_NODATA;
   }
   else {
     if (kmax) {
@@ -488,7 +519,7 @@ static void fit_curvature (FttCell * cell, GfsVariable * v)
   GfsVariable * t = GFS_VARIABLE_CURVATURE (v)->f;
   gdouble f = GFS_VALUE (cell, t);
 
-  if (!GFS_IS_FULL (f) && GFS_VALUE (cell, v) == G_MAXDOUBLE) {
+  if (!GFS_IS_FULL (f) && !GFS_HAS_DATA (cell, v)) {
     GfsVariable * kmax = GFS_VARIABLE_CURVATURE (v)->kmax;
     if (kmax) {
       gdouble k;
@@ -508,9 +539,9 @@ typedef struct {
 
 static void diffuse_kmax (FttCell * cell, DiffuseParms * p)
 {
-  gdouble f = GFS_VARIABLE (cell, p->f->i);
-  if (GFS_VARIABLE (cell, p->v->i) < G_MAXDOUBLE && f*(1. - f) > FMIN*(1. - FMIN))
-    GFS_VARIABLE (cell, p->tmp->i) = GFS_VARIABLE (cell, p->v->i);
+  gdouble f = GFS_VALUE (cell, p->f);
+  if (GFS_HAS_DATA (cell, p->v) && f*(1. - f) > FMIN*(1. - FMIN))
+    GFS_VALUE (cell, p->tmp) = GFS_VALUE (cell, p->v);
   else {
     FttCellNeighbors neighbor;
     gdouble sa = 0., s = 0.;
@@ -518,25 +549,25 @@ static void diffuse_kmax (FttCell * cell, DiffuseParms * p)
 
     ftt_cell_neighbors (cell, &neighbor);
     for (d = 0; d < FTT_NEIGHBORS; d++)
-      if (neighbor.c[d] && GFS_VARIABLE (neighbor.c[d], p->v->i) < G_MAXDOUBLE) {
-	gdouble f = GFS_VARIABLE (neighbor.c[d], p->f->i);
+      if (neighbor.c[d] && GFS_HAS_DATA (neighbor.c[d], p->v)) {
+	gdouble f = GFS_VALUE (neighbor.c[d], p->f);
 	if (f*(1. - f) > FMIN*(1. - FMIN)) {
 	  f *= 1. - f;
-	  s += f*GFS_VARIABLE (neighbor.c[d], p->v->i);
+	  s += f*GFS_VALUE (neighbor.c[d], p->v);
 	  sa += f;
 	}
       }
     if (sa > 0.)
-      GFS_VARIABLE (cell, p->tmp->i) = s/sa;
+      GFS_VALUE (cell, p->tmp) = s/sa;
     else
-      GFS_VARIABLE (cell, p->tmp->i) = GFS_VARIABLE (cell, p->v->i);
+      GFS_VALUE (cell, p->tmp) = GFS_VALUE (cell, p->v);
   }
 }
 
 static void diffuse (FttCell * cell, DiffuseParms * p)
 {
-  if (GFS_VARIABLE (cell, p->v->i) < G_MAXDOUBLE)
-    GFS_VARIABLE (cell, p->tmp->i) = GFS_VARIABLE (cell, p->v->i);
+  if (GFS_HAS_DATA (cell, p->v))
+    GFS_VALUE (cell, p->tmp) = GFS_VALUE (cell, p->v);
   else {
     FttCellNeighbors neighbor;
     gdouble sa = 0., s = 0.;
@@ -544,14 +575,14 @@ static void diffuse (FttCell * cell, DiffuseParms * p)
 
     ftt_cell_neighbors (cell, &neighbor);
     for (d = 0; d < FTT_NEIGHBORS; d++)
-      if (neighbor.c[d] && GFS_VARIABLE (neighbor.c[d], p->v->i) < G_MAXDOUBLE) {
-	s += GFS_VARIABLE (neighbor.c[d], p->v->i);
+      if (neighbor.c[d] && GFS_HAS_DATA (neighbor.c[d], p->v)) {
+	s += GFS_VALUE (neighbor.c[d], p->v);
 	sa += 1.;
       }
     if (sa > 0.)
-      GFS_VARIABLE (cell, p->tmp->i) = s/sa;
+      GFS_VALUE (cell, p->tmp) = s/sa;
     else
-      GFS_VARIABLE (cell, p->tmp->i) = G_MAXDOUBLE;
+      GFS_VALUE (cell, p->tmp) = GFS_NODATA;
   }
 }
 
@@ -618,7 +649,7 @@ static void normal (FttCell * cell, gpointer * data)
     n[c] = gfs_center_gradient (cell, c, d->i);
   gts_vector_normalize (n);
   for (c = 0; c < FTT_DIMENSION; c++)
-    GFS_VARIABLE (cell, nv[c]->i) = n[c];
+    GFS_VALUE (cell, nv[c]) = n[c];
 }
 
 static void distance_curvature (FttCell * cell, gpointer * data)
@@ -636,10 +667,10 @@ static void interface_curvature (FttCell * cell, gpointer * data)
 {
   GfsVariable * v = data[1];
   GfsVariableCurvature * k = GFS_VARIABLE_CURVATURE (v);
-  gdouble f = GFS_VARIABLE (cell, GFS_VARIABLE_DISTANCE (k->f)->v->i);
+  gdouble f = GFS_VALUE (cell, GFS_VARIABLE_DISTANCE (k->f)->v);
 
   if (GFS_IS_FULL (f))
-    GFS_VARIABLE (cell, v->i) = G_MAXDOUBLE;
+    GFS_VALUE (cell, v) = GFS_NODATA;
   else {
     GfsVariable ** nv = data[0];
     gdouble h = ftt_cell_size (cell)/2.;
@@ -649,14 +680,14 @@ static void interface_curvature (FttCell * cell, gpointer * data)
 
     ftt_cell_pos (cell, &p);
     for (c = 0; c < FTT_DIMENSION; c++) {
-      gdouble delta = GFS_VARIABLE (cell, k->f->i)*GFS_VARIABLE (cell, nv[c]->i);
+      gdouble delta = GFS_VALUE (cell, k->f)*GFS_VALUE (cell, nv[c]);
       (&p.x)[c] -= delta;
       if (fabs (delta) > h)
 	target = NULL;
     }
     if (!target)
       target = gfs_domain_locate (v->domain, p, -1, NULL);
-    GFS_VARIABLE (cell, v->i) = gfs_interpolate (target, p, nv[FTT_DIMENSION]);
+    GFS_VALUE (cell, v) = gfs_interpolate (target, p, nv[FTT_DIMENSION]);
   }
 }
 
@@ -743,7 +774,12 @@ GfsVariableClass * gfs_variable_curvature_class (void)
   return klass;
 }
 
-/* GfsVariablePosition: object */
+/** \endobject{GfsVariableCurvature} */
+
+/**
+ * Coordinates of a VOF interface.
+ * \beginobject{GfsVariablePosition}
+ */
 
 static void variable_position_read (GtsObject ** o, GtsFile * fp)
 {
@@ -797,10 +833,10 @@ static void position (FttCell * cell, GfsVariable * v)
   FttVector p;
 
   if (gfs_vof_center (cell, GFS_VARIABLE_TRACER_VOF (GFS_VARIABLE_CURVATURE (v)->f), &p))
-    GFS_VARIABLE (cell, v->i) = (&p.x)[GFS_VARIABLE_POSITION (v)->c] - 
+    GFS_VALUE (cell, v) = (&p.x)[GFS_VARIABLE_POSITION (v)->c] - 
       GFS_VARIABLE_POSITION (v)->ref;
   else
-    GFS_VARIABLE (cell, v->i) = G_MAXDOUBLE;
+    GFS_VALUE (cell, v) = GFS_NODATA;
 }
 
 static gboolean variable_position_event (GfsEvent * event, GfsSimulation * sim)
@@ -857,3 +893,5 @@ GfsVariableClass * gfs_variable_position_class (void)
 
   return klass;
 }
+
+/** \endobject{GfsVariablePosition} */
diff --git a/src/timestep.c b/src/timestep.c
index df568c8..3dcce32 100644
--- a/src/timestep.c
+++ b/src/timestep.c
@@ -16,6 +16,9 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
  * 02111-1307, USA.  
  */
+/*! \file
+ * \brief Timestepping.
+ */
 
 #include <math.h>
 #include <stdlib.h>
@@ -32,7 +35,7 @@ static void reset_cell_gradients (FttCell * cell, gpointer * data)
   FttComponent c;
 
   for (c = 0; c < *dimension; c++)
-    GFS_VARIABLE (cell, g[c]->i) = 0.;
+    GFS_VALUE (cell, g[c]) = 0.;
 }
 
 static void reset_gradients (GfsDomain * domain, guint dimension, GfsVariable ** g)
@@ -56,9 +59,9 @@ static void scale_cell_gradients (FttCell * cell, gpointer * data)
 
     for (c = 0; c < *dimension; c++)
       if (s->s[2*c] + s->s[2*c + 1] > 0.)
-	GFS_VARIABLE (cell, g[c]->i) /= s->s[2*c] + s->s[2*c + 1];
+	GFS_VALUE (cell, g[c]) /= s->s[2*c] + s->s[2*c + 1];
       else
-	g_assert (GFS_VARIABLE (cell, g[c]->i) == 0.);
+	g_assert (GFS_VALUE (cell, g[c]) == 0.);
   }
   else {
     FttCellNeighbors n;
@@ -68,7 +71,7 @@ static void scale_cell_gradients (FttCell * cell, gpointer * data)
       FttCell * c1 = n.c[2*c], * c2 = n.c[2*c + 1];
       
       if (c1 && c2 && !GFS_CELL_IS_GRADIENT_BOUNDARY (c1) && !GFS_CELL_IS_GRADIENT_BOUNDARY (c2))
-	GFS_VARIABLE (cell, g[c]->i) /= 2.;
+	GFS_VALUE (cell, g[c]) /= 2.;
     }
   }
 }
@@ -170,21 +173,48 @@ static void scale_divergence (FttCell * cell, gpointer * data)
   GfsVariable * div = data[0];
   gdouble * dt = data[1];
 
-  GFS_VARIABLE (cell, div->i) /= *dt;
+  GFS_VALUE (cell, div) /= *dt;
 }
 
 typedef struct {
   GfsSourceGeneric * s;
   GfsVariable * v, ** g;
+  FttComponent c;
   gdouble dt;
 } FaceSource;
 
+#define DIRICHLET_BOUNDARY (1 << GFS_FLAG_USER)
+
+static void tag_dirichlet (FttCellFace * f)
+{
+  f->cell->flags |= DIRICHLET_BOUNDARY;
+}
+
+static void ignore_dirichlet_boundaries (GfsBox * box, FaceSource * f)
+{
+  FttDirection d;
+  for (d = 2*f->c; d <= 2*f->c + 1; d++)
+    if (GFS_IS_BOUNDARY (box->neighbor[d])) {
+      GfsBoundary * b = GFS_BOUNDARY (box->neighbor[d]);
+      GfsBc * bc = gfs_boundary_lookup_bc (b, f->v);
+      if (GFS_IS_BC_DIRICHLET (bc))
+	ftt_face_traverse_boundary (b->root, b->d,
+				    FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
+				    (FttFaceTraverseFunc) tag_dirichlet, NULL);
+    }
+}
+
 static void add_face_source (FttCellFace * face,
 			     FaceSource * f)
 {
   gdouble dp;
   FttComponent c;
 
+  if (face->neighbor->flags & DIRICHLET_BOUNDARY) {
+    face->neighbor->flags &= ~DIRICHLET_BOUNDARY;
+    return;
+  }
+
   if (GFS_FACE_FRACTION_RIGHT (face) == 0.)
     return;
 
@@ -192,13 +222,13 @@ static void add_face_source (FttCellFace * face,
   dp = (* f->s->face_value) (f->s, face, f->v);
   GFS_FACE_NORMAL_VELOCITY_LEFT (face) += dp*f->dt;
   if (f->g)
-    GFS_VARIABLE (face->cell, f->g[c]->i) -= dp*GFS_FACE_FRACTION_LEFT (face);
+    GFS_VALUE (face->cell, f->g[c]) -= dp*GFS_FACE_FRACTION_LEFT (face);
 
   if (ftt_face_type (face) == FTT_FINE_COARSE)
     dp *= GFS_FACE_FRACTION_LEFT (face)/(GFS_FACE_FRACTION_RIGHT (face)*FTT_CELLS/2);
   GFS_FACE_NORMAL_VELOCITY_RIGHT (face) += dp*f->dt;
   if (f->g)
-    GFS_VARIABLE (face->neighbor, f->g[c]->i) -= dp*GFS_FACE_FRACTION_RIGHT (face);
+    GFS_VALUE (face->neighbor, f->g[c]) -= dp*GFS_FACE_FRACTION_RIGHT (face);
 }
 
 static void velocity_face_sources (GfsDomain * domain,
@@ -215,11 +245,8 @@ static void velocity_face_sources (GfsDomain * domain,
       while (i) {
 	GfsSourceGeneric * s = i->data;
 	if (s->face_value) {
-	  FaceSource f;
-	  f.s = s;
-	  f.v = u[c];
-	  f.g = g;
-	  f.dt = dt;
+	  FaceSource f = { s, u[c], g, c, dt };
+	  gts_container_foreach (GTS_CONTAINER (domain), (GtsFunc) ignore_dirichlet_boundaries, &f);
 	  gfs_domain_face_traverse (domain, c,
 				    FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
 				    (FttFaceTraverseFunc) add_face_source, &f);
@@ -265,12 +292,44 @@ void gfs_update_gradients (GfsDomain * domain,
   reset_gradients (domain, FTT_DIMENSION, g);
   velocity_face_sources (domain, gfs_domain_velocity (domain), 0., alpha, g);
   /* Initialize face coefficients */
-  gfs_poisson_coefficients (domain, alpha);
+  gfs_poisson_coefficients (domain, alpha, TRUE, TRUE);
   /* Add pressure gradient */
   gfs_correct_normal_velocities (domain, FTT_DIMENSION, p, g, 0.);
   gfs_scale_gradients (domain, FTT_DIMENSION, g);
 }
 
+typedef struct {
+  GfsVariable * v, * div;
+  gdouble L2;
+} SourceVolumePar;   
+
+static void cell_volume_source (FttCell * cell, SourceVolumePar * p)
+{
+  gdouble sum = 0.;
+  GSList * i = GTS_SLIST_CONTAINER (p->v->sources)->items;
+
+  while (i) {
+    GfsSourceGeneric * s = i->data;
+    if (s->centered_value)
+      sum += (* s->centered_value) (s, cell, p->v);
+    i = i->next;
+  }
+
+  /* div*h^2 (units source m^3/s/vol) */
+  GFS_VALUE (cell, p->div) -= sum*p->L2*ftt_cell_volume (cell);
+}
+
+static void volume_sources (GfsDomain * domain, GfsVariable * p, GfsVariable * div) 
+{
+  SourceVolumePar par;
+  par.div = div;
+  par.v = p;
+  par.L2 = GFS_SIMULATION (domain)->physical_params.L;
+  par.L2 *= par.L2;
+  gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
+                            (FttCellTraverseFunc) cell_volume_source, &par);
+}
+
 static void mac_projection (GfsDomain * domain,
 			    GfsMultilevelParams * par,
 			    GfsAdvectionParams * apar,
@@ -292,7 +351,7 @@ static void mac_projection (GfsDomain * domain,
   GfsVariable * res1 = res ? res : gfs_temporary_variable (domain);
 
   /* Initialize face coefficients */
-  gfs_poisson_coefficients (domain, alpha);
+  gfs_poisson_coefficients (domain, alpha, TRUE, TRUE);
 
   /* Initialize diagonal coefficient */
   gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, FTT_TRAVERSE_ALL, -1,
@@ -306,6 +365,10 @@ static void mac_projection (GfsDomain * domain,
   if (divergence_hook)
     (* divergence_hook) (domain, apar, div);
 
+  /* add volume sources (if any) */
+  if (p->sources)
+    volume_sources (domain, p, div);
+
   /* Scale divergence */
   gpointer data[2];
   data[0] = div;
@@ -326,36 +389,7 @@ static void mac_projection (GfsDomain * domain,
   }
 #endif
   
-  /* compute residual */
-  par->depth = gfs_domain_depth (domain);
-  gfs_residual (domain, par->dimension, FTT_TRAVERSE_LEAFS, -1, p, div, dia, res1);
-  /* solve for pressure */
-  par->residual_before = par->residual = 
-    gfs_domain_norm_residual (domain, FTT_TRAVERSE_LEAFS, -1, apar->dt, res1);
-  gdouble res_max_before = par->residual.infty;
-  guint minlevel = par->minlevel;
-  par->niter = 0;
-  while (par->niter < par->nitermin ||
-	 (par->residual.infty > par->tolerance && par->niter < par->nitermax)) {
-#if 0
-    if (domain->pid <= 0)
-      fprintf (stderr, "%d bias: %g first: %g second: %g infty: %g\n",
-	       par->niter, 
-	       par->residual.bias, 
-	       par->residual.first, 
-	       par->residual.second, 
-	       par->residual.infty);
-#endif
-    gfs_poisson_cycle (domain, par, p, div, dia, res1);
-    par->residual = gfs_domain_norm_residual (domain, FTT_TRAVERSE_LEAFS, -1, apar->dt, res1);
-    if (par->residual.infty == res_max_before) /* convergence has stopped!! */
-      break;
-    if (par->residual.infty > res_max_before/1.1 && par->minlevel < par->depth)
-      par->minlevel++;
-    res_max_before = par->residual.infty;
-    par->niter++;
-  }
-  par->minlevel = minlevel;
+  par->poisson_solve (domain, par, p, div, res1, dia, apar->dt);
 
   gts_object_destroy (GTS_OBJECT (dia));
   gts_object_destroy (GTS_OBJECT (div));
@@ -444,7 +478,7 @@ static void correct (FttCell * cell, gpointer * data)
   guint * dimension = data[3];
 
   for (c = 0; c < *dimension; c++)
-    GFS_VARIABLE (cell, v[c]->i) -= GFS_VARIABLE (cell, g[c]->i)*(*dt);
+    GFS_VALUE (cell, v[c]) -= GFS_VALUE (cell, g[c])*(*dt);
 }
 
 /**
@@ -637,13 +671,14 @@ void gfs_diffusion (GfsDomain * domain,
   maxlevel = gfs_domain_depth (domain);
   gfs_diffusion_residual (domain, v, rhs, rhoc, axi, res);
   par->residual_before = par->residual = 
-    gfs_domain_norm_variable (domain, res, NULL, FTT_TRAVERSE_LEAFS, -1);
+    gfs_domain_norm_variable (domain, res, NULL, FTT_TRAVERSE_LEAFS, -1, NULL, NULL);
   gdouble res_max_before = par->residual.infty;
   par->niter = 0;
   while (par->niter < par->nitermin ||
 	 (par->residual.infty > par->tolerance && par->niter < par->nitermax)) {
     gfs_diffusion_cycle (domain, minlevel, maxlevel, par->nrelax, v, rhs, rhoc, axi, res);
-    par->residual = gfs_domain_norm_variable (domain, res, NULL, FTT_TRAVERSE_LEAFS, -1);
+    par->residual = gfs_domain_norm_variable (domain, res, NULL, 
+					      FTT_TRAVERSE_LEAFS, -1, NULL, NULL);
     if (par->residual.infty == res_max_before) /* convergence has stopped!! */
       break;
     if (par->residual.infty > res_max_before/1.1 && minlevel < maxlevel)
@@ -688,6 +723,56 @@ static void add_pressure_gradient (FttCell * cell, GfsAdvectionParams * par)
   GFS_VALUE (cell, par->fv) -= GFS_VALUE (cell, par->g[par->v->component])*par->dt;
 }
 
+static void add_sinking (FttCellFace * face, GtsVector sink)
+{
+  GFS_FACE_NORMAL_VELOCITY_LEFT (face) += sink[face->d/2];
+  GFS_FACE_NORMAL_VELOCITY_RIGHT (face) += sink[face->d/2];
+}
+
+/**
+ * gfs_add_sinking_velocity:
+ * @domain: a #GfsDomain.
+ * @sinking: the sinking velocity vector.
+ *
+ * Adds the constant sinking velocity to the MAC
+ * velocity field of @domain.
+ */
+void gfs_add_sinking_velocity (GfsDomain * domain, GtsVector sinking)
+{
+  g_return_if_fail (domain != NULL);
+  g_return_if_fail (sinking != NULL);
+
+  if (gts_vector_norm (sinking) > 0.)
+    gfs_domain_face_traverse (domain, FTT_XYZ,
+			      FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
+			      (FttFaceTraverseFunc) add_sinking, sinking);
+}
+
+static void remove_sinking (FttCellFace * face, GtsVector sink)
+{
+  GFS_FACE_NORMAL_VELOCITY_LEFT (face) -= sink[face->d/2];
+  GFS_FACE_NORMAL_VELOCITY_RIGHT (face) -= sink[face->d/2];
+}
+
+/**
+ * gfs_remove_sinking_velocity:
+ * @domain: a #GfsDomain.
+ * @sinking: the sinking velocity vector.
+ *
+ * Removes the constant sinking velocity from the MAC
+ * velocity field of @domain.
+ */
+void gfs_remove_sinking_velocity (GfsDomain * domain, GtsVector sinking)
+{
+  g_return_if_fail (domain != NULL);
+  g_return_if_fail (sinking != NULL);
+
+  if (gts_vector_norm (sinking) > 0.)
+    gfs_domain_face_traverse (domain, FTT_XYZ,
+			      FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
+			      (FttFaceTraverseFunc) remove_sinking, sinking);
+}
+
 static void variable_sources (GfsDomain * domain,
 			      GfsAdvectionParams * par,
 			      GfsVariable * sv,
@@ -703,12 +788,14 @@ static void variable_sources (GfsDomain * domain,
     par->upwinding = GFS_FACE_UPWINDING;
     gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
 			      (FttCellTraverseFunc) gfs_cell_reset, par->fv);
+    gfs_add_sinking_velocity (domain, par->sink);
     gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
 			      (FttCellTraverseFunc) gfs_cell_advected_face_values, par);
     gfs_domain_face_bc (domain, FTT_XYZ, par->v);
     gfs_domain_face_traverse (domain, FTT_XYZ,
 			      FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
 			      (FttFaceTraverseFunc) par->flux, par);
+    gfs_remove_sinking_velocity (domain, par->sink);
     par->v = sv;
     gfs_domain_traverse_merged (domain, par->update, par);
     par->v = v;
@@ -866,7 +953,10 @@ void gfs_tracer_advection_diffusion (GfsDomain * domain,
   gfs_domain_timer_stop (domain, "tracer_advection_diffusion");
 }
 
-/* GfsSurfaceGenericBc: Object */
+/**
+ * Generic Surface boundary condition.
+ * \beginobject{GfsSurfaceGenericBc}
+ */
 
 static void gfs_surface_generic_bc_destroy (GtsObject * o)
 {
@@ -953,7 +1043,12 @@ GfsSurfaceGenericBcClass * gfs_surface_generic_bc_class (void)
   return klass;
 }
 
-/* GfsSurfaceBc: Object */
+/** \endobject{GfsSurfaceGenericBc} */
+
+/**
+ * Boundary conditions for diffusion and Poisson equations.
+ * \beginobject{GfsSurfaceBc}
+ */
 
 static void gfs_surface_bc_destroy (GtsObject * object)
 {
@@ -1051,3 +1146,5 @@ GfsSurfaceGenericBcClass * gfs_surface_bc_class (void)
 
   return klass;
 }
+
+/** \endobject{GfsSurfaceBc} */
diff --git a/src/timestep.h b/src/timestep.h
index cc1bec6..7b9ca9a 100644
--- a/src/timestep.h
+++ b/src/timestep.h
@@ -81,6 +81,10 @@ void          gfs_centered_velocity_advection_diffusion (GfsDomain * domain,
 							 GfsVariable ** gmac,
 							 GfsVariable ** g,
 							 GfsFunction * alpha);
+void          gfs_add_sinking_velocity        (GfsDomain * domain, 
+					       GtsVector sinking);
+void          gfs_remove_sinking_velocity     (GfsDomain * domain, 
+					       GtsVector sinking);
 void          gfs_tracer_advection_diffusion  (GfsDomain * domain,
 					       GfsAdvectionParams * par);
 
diff --git a/src/unstructured.c b/src/unstructured.c
index eb21db8..01fc3b9 100644
--- a/src/unstructured.c
+++ b/src/unstructured.c
@@ -17,6 +17,9 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
  * 02111-1307, USA.  
  */
+/*! \file
+ * \brief Conversion to unstructured mesh formats.
+ */
 
 #include "unstructured.h"
 #include "variable.h"
diff --git a/src/utils.c b/src/utils.c
index ba9a698..90f8eb9 100644
--- a/src/utils.c
+++ b/src/utils.c
@@ -16,6 +16,9 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
  * 02111-1307, USA.  
  */
+/*! \file
+ * \brief GfsFunction and various utility functions.
+ */
 
 #include <stdlib.h>
 #include <ctype.h>
@@ -106,7 +109,10 @@ static GfsDerivedVariable * lookup_derived_variable (const gchar * name,
   return NULL;
 }
 
-/* GfsGlobal: Object */
+/**
+ * Global functions.
+ * \beginobject{GfsGlobal}
+ */
 
 struct _GfsGlobal {
   /*< private >*/
@@ -183,13 +189,22 @@ GtsObjectClass * gfs_global_class (void)
   return klass;
 }
 
-/* GfsFunction: Object */
+/* GfsModule: Header */
+
+typedef struct {
+  GModule * module;
+  gchar * expression;
+  guint refcount;
+  GfsFunctionFunc f;
+} GfsModule;
+
+/* GfsFunction: Header */
 
 struct _GfsFunction {
   GtsObject parent;
   GString * expr;
   gboolean isexpr;
-  GModule * module;
+  GfsModule * module;
   GfsFunctionFunc f;
   gchar * sname;
   GtsSurface * s;
@@ -203,6 +218,71 @@ struct _GfsFunction {
   gdouble units;
 };
 
+/** \endobject{GfsGlobal} */
+
+/* GfsModule: object */
+
+static GfsModule * gfs_module_new (GtsFile * fp, const gchar * mname,
+				   GHashTable * cache, const gchar * finname)
+{
+  GModule * module;
+  GfsFunctionFunc f;
+  gchar * path = g_module_build_path (GFS_MODULES_DIR, mname);
+  module = g_module_open (path, 0);
+  g_free (path);
+  if (module == NULL)
+    module = g_module_open (mname, 0);
+  if (module == NULL) {
+    gts_file_error (fp, "cannot load module: %s", g_module_error ());
+    return NULL;
+  }
+  if (!g_module_symbol (module, "f", (gpointer) &f)) {
+    gts_file_error (fp, "module `%s' does not export function `f'", mname);
+    g_module_close (module);
+    return NULL;
+  }
+  GfsModule * m = g_malloc (sizeof (GfsModule));
+  m->module = module;
+  m->f = f;
+  m->refcount = 0;
+
+  g_assert (g_file_get_contents (finname, &m->expression, NULL, NULL));
+  g_hash_table_insert (cache, m->expression, m);
+
+  return m;
+}
+
+static void gfs_module_ref (GfsModule * m, GfsFunction * f)
+{
+  if (f->constant) {
+    f->val = (* m->f) (NULL, NULL, NULL);
+    f->f = NULL;
+    if (f->expr) g_string_free (f->expr, TRUE);
+    f->expr = NULL;
+  }
+  else
+    f->f = m->f;
+  f->module = m;
+  m->refcount++;
+}
+
+static void gfs_module_unref (GfsModule * m, GHashTable * cache)
+{
+  m->refcount--;
+  if (m->refcount == 0) {
+    if (!g_module_close (m->module))
+      g_warning ("%s: %s", g_module_name (m->module), g_module_error ());
+    g_assert (g_hash_table_remove (cache, m->expression));
+    g_free (m->expression);
+    g_free (m);
+  }
+}
+
+/**
+ * Numerical constants and expressions.
+ * \beginobject{GfsFunction}
+ */
+
 static GtsSurface * read_surface (gchar * name, GtsFile * fp)
 {
   FILE * fptr = fopen (name, "r");
@@ -307,35 +387,6 @@ static gdouble interpolated_cgd (GfsFunction * f, FttVector * p)
   return val;
 }
 
-static gboolean load_module (GfsFunction * f, GtsFile * fp, gchar * mname)
-{
-  gchar * path;
-  
-  path = g_module_build_path (GFS_MODULES_DIR, mname);
-  f->module = g_module_open (path, 0);
-  g_free (path);
-  if (f->module == NULL)
-    f->module = g_module_open (mname, 0);
-  if (f->module == NULL) {
-    gts_file_error (fp, "cannot load module: %s", g_module_error ());
-    return FALSE;
-  }
-  if (!g_module_symbol (f->module, "f", (gpointer) &f->f)) {
-    gts_file_error (fp, "module `%s' does not export function `f'", mname);
-    g_module_close (f->module);
-    return FALSE;
-  }
-  if (f->constant) {
-    f->val = (* f->f) (NULL, NULL, NULL);
-    f->f = NULL;
-    g_module_close (f->module);
-    f->module = NULL;
-    if (f->expr) g_string_free (f->expr, TRUE);
-    f->expr = NULL;
-  }
-  return TRUE;
-}
-
 /**
  * gfs_function_expression:
  * @fp: a #GtsFile.
@@ -464,6 +515,21 @@ GString * gfs_function_expression (GtsFile * fp, gboolean * is_expression)
   }
 }
 
+static gboolean lookup_function (GfsFunction * f, const gchar * finname)
+{
+  GHashTable * function_cache = gfs_object_simulation (f)->function_cache;
+  gchar * contents;
+  if (!g_file_get_contents (finname, &contents, NULL, NULL))
+    return FALSE;
+  GfsModule * module = g_hash_table_lookup (function_cache, contents);
+  g_free (contents);
+  if (module) {
+    gfs_module_ref (module, f);
+    return TRUE;
+  }
+  return FALSE;
+}
+
 static gint compile (GtsFile * fp, GfsFunction * f, const gchar * finname)
 {
   gchar foutname[] = "/tmp/gfsXXXXXX";
@@ -472,16 +538,6 @@ static gint compile (GtsFile * fp, GfsFunction * f, const gchar * finname)
   gint foutd, ferrd, ftmpd;
   gchar * cc;
   gint status;
-  gchar cccommand[] = "gcc `pkg-config "
-#if FTT_2D
-    "gerris2D"
-#elif FTT_2D3
-    "gerris2D3"
-#else /* 3D */
-    "gerris3D"
-#endif
-    " --cflags --libs` -O -Wall -Wno-unused -Werror "
-    MODULES_FLAGS;
   
   foutd = mkstemp (foutname);
   ferrd = mkstemp (ferrname);
@@ -490,6 +546,16 @@ static gint compile (GtsFile * fp, GfsFunction * f, const gchar * finname)
     gts_file_error (fp, "cannot create temporary file");
     return SIGABRT;
   }
+  gchar * cccommand = g_strdup_printf ("gcc `pkg-config "
+#if FTT_2D
+				       "gerris2D"
+#else /* 3D */
+				       "gerris3D"
+#endif
+				       " --cflags --libs` -O -Wall -Wno-unused -Werror "
+				       " -D_GFSLINE_=%d "
+				       MODULES_FLAGS,
+				       fp->line);
   cc = g_strjoin (" ",
 		  cccommand, ftmpname, 
 		  "-o", foutname,
@@ -505,6 +571,7 @@ static gint compile (GtsFile * fp, GfsFunction * f, const gchar * finname)
 		  "   } else print $0 > \"/dev/stderr\";"
 		  "}' 2>", ftmpname, "` 2>",
 		  ferrname, NULL);
+  g_free (cccommand);
   status = system (cc);
   g_free (cc);
   close (ftmpd);
@@ -527,8 +594,12 @@ static gint compile (GtsFile * fp, GfsFunction * f, const gchar * finname)
     status = SIGABRT;
   }
   else {
-    if (load_module (f, fp, foutname))
+    GfsModule * module = gfs_module_new (fp, foutname, 
+					 gfs_object_simulation (f)->function_cache, finname);
+    if (module) {
+      gfs_module_ref (module, f);
       status = SIGCONT;
+    }
     else
       status = SIGABRT;
   }
@@ -565,7 +636,7 @@ static void function_compile (GfsFunction * f, GtsFile * fp)
     GfsSimulation * sim = gfs_object_simulation (f);
     GfsDomain * domain = GFS_DOMAIN (sim);
     gchar finname[] = "/tmp/gfsXXXXXX";
-    gint find, status;
+    gint find;
     FILE * fin;
     GSList * lv = NULL, * ldv = NULL, * i;
 
@@ -669,7 +740,7 @@ static void function_compile (GfsFunction * f, GtsFile * fp)
 	}
       }
     }
-    fprintf (fin, "#line %d \"GfsFunction\"\n", fp->line);
+    fputs ("#line _GFSLINE_ \"GfsFunction\"\n", fin);
 
     if (f->isexpr)
       fprintf (fin, "return %s;\n}\n", f->expr->str);
@@ -684,13 +755,12 @@ static void function_compile (GfsFunction * f, GtsFile * fp)
     fclose (fin);
     close (find);
 
-    status = compile (fp, f, finname);
-    remove (finname);
-    switch (status) {
-    case SIGQUIT: exit (0);
-    case SIGABRT: return;
+    if (!lookup_function (f, finname)) {
+      gint status = compile (fp, f, finname);
+      g_assert (status != SIGQUIT);
     }
-  }  
+    remove (finname);
+  }
 }
 
 #define DEFERRED_COMPILATION ((GfsFunctionFunc) 0x1)
@@ -700,8 +770,9 @@ static void check_for_deferred_compilation (GfsFunction * f)
   if (f->f == DEFERRED_COMPILATION) {
     function_compile (f, &f->fpd);
     if (f->fpd.type == GTS_ERROR) {
-      g_log (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL, 
-	     "error in deferred compilation\n%s", 
+      g_log (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
+	     "error in deferred compilation\n%s\n%s", 
+	     f->expr ? f->expr->str : NULL,
 	     f->fpd.error);
       exit (1);
     }
@@ -788,7 +859,7 @@ static void function_write (GtsObject * o, FILE * fp)
   if (f->expr)
     fprintf (fp, " %s", f->expr->str);
   else if (f->module)
-    fprintf (fp, " %s", g_module_name (f->module));
+    fprintf (fp, " %s", g_module_name (f->module->module));
   else if (f->v)
     fprintf (fp, " %s", f->v->name);
   else if (f->s || f->g)
@@ -801,7 +872,8 @@ static void function_destroy (GtsObject * object)
 {
   GfsFunction * f = GFS_FUNCTION (object);
 
-  if (f->module) g_module_close (f->module);
+  if (f->module)
+    gfs_module_unref (f->module, gfs_object_simulation (f)->function_cache);
   if (f->expr) g_string_free (f->expr, TRUE);
   if (f->s) {
     gts_object_destroy (GTS_OBJECT (f->s));
@@ -944,7 +1016,7 @@ gchar * gfs_function_description (GfsFunction * f,
 static gdouble adimensional_value (GfsFunction * f, gdouble v)
 {
   gdouble L;
-  if (v == G_MAXDOUBLE || f->units == 0. || 
+  if (v == GFS_NODATA || f->units == 0. || 
       (L = gfs_object_simulation (f)->physical_params.L) == 1.)
     return v;
   return v*pow (L, - f->units);
@@ -1109,7 +1181,12 @@ void gfs_function_write (GfsFunction * f, FILE * fp)
   (* GTS_OBJECT (f)->klass->write) (GTS_OBJECT (f), fp);
 }
 
-/* GfsFunctionSpatial: object */
+/** \endobject{GfsFunction} */
+
+/**
+ * Functions of (x,y,z,t).
+ * \beginobject{GfsFunctionSpatial}
+ */
 
 static void gfs_function_spatial_init (GfsFunction * f)
 {
@@ -1177,7 +1254,12 @@ GfsFunction * gfs_function_spatial_new (GfsFunctionClass * klass,
   return object;
 }
 
-/* GfsFunctionMap: object */
+/** \endobject{GfsFunctionSpatial} */
+
+/**
+ * Abstract class for coordinate transformations.
+ * \beginobject{GfsFunctionMap}
+ */
 
 static void gfs_function_map_init (GfsFunction * f)
 {
@@ -1205,7 +1287,12 @@ GfsFunctionClass * gfs_function_map_class (void)
   return klass;
 }
 
-/* GfsFunctionConstant: object */
+/** \endobject{GfsFunctionMap} */
+
+/**
+ * Symbolic constants.
+ * \beginobject{GfsFunctionConstant}
+ */
 
 static void gfs_function_constant_init (GfsFunction * f)
 {
@@ -1259,6 +1346,8 @@ gdouble gfs_read_constant (GtsFile * fp, gpointer domain)
   return val;
 }
 
+/** \endobject{GfsFunctionConstant} */
+
 /**
  * gfs_object_class_from_name:
  * @name: the name of the class.
@@ -1492,7 +1581,8 @@ gdouble gfs_matrix_inverse (gdouble ** m, guint n, gdouble pivmin)
 gpointer gfs_matrix_new (guint n, guint p, guint size)
 {
   guint i;
-  gpointer * m, a;
+  gpointer * m;
+  gchar * a;
   
   g_return_val_if_fail (n > 0, NULL);
   g_return_val_if_fail (p > 0, NULL);
@@ -1501,7 +1591,7 @@ gpointer gfs_matrix_new (guint n, guint p, guint size)
   m = g_malloc (n*sizeof (gpointer));
   a = g_malloc0 (n*p*size);
   for (i = 0; i < n; i++)
-    m[i] = GUINT_TO_POINTER (GPOINTER_TO_UINT (a) + i*p*size);
+    m[i] = a + i*p*size;
   return m;
 }
 
@@ -1686,3 +1776,224 @@ void gfs_union_close (FILE * fp, int rank, FILE * fpp)
     fclose (fpp);
   }
 }
+
+static GfsFormat * format_new (const gchar * s, 
+			       guint len, 
+			       GfsFormatType t)
+{
+  GfsFormat * f = g_malloc (sizeof (GfsFormat));
+  
+  f->s = g_strndup (s, len);
+  f->t = t;
+  
+  return f;
+}
+
+static void format_destroy (GfsFormat * f)
+{
+  g_free (f->s);
+  g_free (f);
+}
+
+/**
+ * gfs_format_new:
+ * @format: a string.
+ * @fp: a #GtsFile or %NULL.
+ * @dynamic: set to %TRUE if the format is time-dependent.
+ * @parallel: set to %TRUE if the format is PID-dependent.
+ *
+ * If @fp is not %NULL and and error occurs, an error message is set
+ * in @fp.
+ *
+ * Returns: a list of #GfsFormat composing @format.
+ */
+GSList * gfs_format_new (const gchar * format,
+			 GtsFile * fp,
+			 gboolean * dynamic,
+			 gboolean * parallel)
+{
+  g_return_val_if_fail (format != NULL, NULL);
+
+  GSList * formats = NULL;
+  const gchar * c, * start;
+  guint len;
+
+  start = c = format;
+  while (*c != '\0') {
+    if (*c == '%') {
+      const gchar * startf = c, * prev = c;
+	
+      len = startf - start;
+      if (len > 0)
+	formats = g_slist_prepend (formats, format_new (start, len, GFS_NONE_FORMAT));
+	
+      len = 1;
+      c++;
+      while (*c != '\0' && !gfs_char_in_string (*c, "diouxXeEfFgGaAcsCSpn%")) {
+	prev = c;
+	c++;
+	len++;
+      }
+      len++;
+      if (*c == '%')
+	formats = g_slist_prepend (formats, format_new ("%", 1, GFS_NONE_FORMAT));
+      else if (gfs_char_in_string (*c, "diouxXc")) {
+	if (*prev == 'l') {
+	  formats = g_slist_prepend (formats, format_new (startf, len, GFS_ITER_FORMAT));
+	  if (dynamic)
+	    *dynamic = TRUE;
+	}
+	else {
+	  formats = g_slist_prepend (formats, format_new (startf, len, GFS_PID_FORMAT));
+	  if (parallel)
+	    *parallel = TRUE;
+	}
+      }
+      else if (gfs_char_in_string (*c, "eEfFgGaA")) {
+	formats = g_slist_prepend (formats, format_new (startf, len, GFS_TIME_FORMAT));
+	if (dynamic)
+	  *dynamic = TRUE;
+      }
+      else {
+	if (fp)
+	  gts_file_error (fp, 
+			  "unknown conversion specifier `%c' of format `%s'",
+			  *c, format);
+	return NULL;
+      }
+      start = c;
+      start++;
+    }
+    c++;
+  }
+  len = c - start;
+  if (len > 0)
+    formats = g_slist_prepend (formats, format_new (start, len, GFS_NONE_FORMAT));
+  formats = g_slist_reverse (formats);
+  
+  return formats;
+}
+
+/**
+ * gfs_format_destroy:
+ * @f: a list of #GfsFormat.
+ *
+ * Frees all memory allocated for @f.
+ */
+void gfs_format_destroy (GSList * f)
+{
+  g_slist_foreach (f, (GFunc) format_destroy, NULL);
+  g_slist_free (f);
+}
+
+/**
+ * gfs_format_string:
+ * @format: a GSList of #GfsFormat.
+ * @pid: the PID.
+ * @niter: number of iterations done in the simulation.
+ * @time: simulation time.
+ *
+ * Returns: a newly-allocated string (file name) built from the
+ * GfsFormat contained in GSList.  It typically includes informations
+ * on the PID, the time and/or the number of iterations done in the
+ * simulation.
+ */
+gchar * gfs_format_string (GSList * format, 
+			   gint pid, 
+			   guint niter,
+			   gdouble time)
+{
+  gchar * s = g_strdup ("");
+
+  while (format) {
+    GfsFormat * f = format->data;
+    gchar * s1, * s2 = NULL;
+
+    switch (f->t) {
+    case GFS_NONE_FORMAT:
+      s2 = g_strconcat (s, f->s, NULL);
+      break;
+    case GFS_PID_FORMAT:
+      s1 = g_strdup_printf (f->s, pid);
+      s2 = g_strconcat (s, s1, NULL);
+      g_free (s1);
+      break;
+    case GFS_ITER_FORMAT:
+      s1 = g_strdup_printf (f->s, niter);
+      s2 = g_strconcat (s, s1, NULL);
+      g_free (s1);
+      break;
+    case GFS_TIME_FORMAT:
+      s1 = g_strdup_printf (f->s, time);
+      s2 = g_strconcat (s, s1, NULL);
+      g_free (s1);
+      break;
+    default:
+      g_assert_not_reached ();
+    }
+    g_free (s);
+    s = s2;
+
+    format = format->next;
+  }
+
+  return s;
+}
+
+/**
+ * gfs_format_time_value:
+ * @format: a list of #GfsFormat.
+ * @string: a string formatted according to @format.
+ *
+ * Returns: the value of the time or iteration contained in @s or
+ * %G_MAXDOUBLE if @s is not formatted according to @format.
+ *
+ */
+gdouble gfs_format_time_value (GSList * format, const gchar * string)
+{
+  gdouble val = G_MAXDOUBLE, tmp;
+
+  g_return_val_if_fail (string != NULL, val);
+
+  gchar * copy = g_strdup (string), * s = copy;
+  while (format) {
+    GfsFormat * f = format->data;
+    gchar * c, c1;
+
+    switch (f->t) {
+    case GFS_NONE_FORMAT:
+      c = f->s;
+      while (*c != '\0' && *c == *s) { c++; s++; }
+      if (*c != '\0') {
+	g_free (copy);
+	return val;
+      }
+      break;
+    case GFS_ITER_FORMAT:
+      c = s;
+      while (gfs_char_in_string (*s, "0123456789")) s++;
+      c1 = *s; *s = '\0'; tmp = atoi (c); *s = c1;
+      if (val != G_MAXDOUBLE && tmp != val) {
+	g_free (copy);
+	return G_MAXDOUBLE;
+      }
+      val = tmp;
+      break;
+    case GFS_TIME_FORMAT:
+      c = s;
+      while (gfs_char_in_string (*s, "0123456789eE-+.")) s++;
+      c1 = *s; *s = '\0'; tmp = atof (c); *s = c1;
+      if (val != G_MAXDOUBLE && tmp != val) {
+	g_free (copy);
+	return G_MAXDOUBLE;
+      }
+      val = tmp;
+      break;
+    default:
+      g_assert_not_reached ();
+    }
+    format = format->next;
+  }
+  g_free (copy);
+  return val;
+}
diff --git a/src/utils.h b/src/utils.h
index 7f070ee..372620b 100644
--- a/src/utils.h
+++ b/src/utils.h
@@ -64,7 +64,13 @@ extern "C" {
 #  endif /* doesn't HAVE_MPI */
 #endif /* HAVE_CONFIG_H */
 
+#ifndef M_PI
+#  define M_PI 3.14159265358979323846
+#endif
+
 #define GFS_DOUBLE_TO_POINTER(d)     (*((gpointer *) &(d)))
+#define GFS_NODATA                   G_MAXDOUBLE
+#define GFS_HAS_DATA(cell,v)         (GFS_VALUE (cell, v) != GFS_NODATA)
 
 gboolean gfs_char_in_string (char c, const char * s);
 gchar *  gfs_file_statement (GtsFile * fp);
@@ -183,6 +189,34 @@ void               gfs_union_close          (FILE * fp,
 					     int rank, 
 					     FILE * fpp);
 
+/* GfsFormat: Header */
+
+typedef struct _GfsFormat GfsFormat;
+
+typedef enum {
+  GFS_ITER_FORMAT,
+  GFS_TIME_FORMAT,
+  GFS_PID_FORMAT,
+  GFS_NONE_FORMAT
+} GfsFormatType;
+
+struct _GfsFormat {
+  gchar * s;
+  GfsFormatType t;
+};
+
+GSList *           gfs_format_new        (const gchar * format,
+				          GtsFile * fp,
+				          gboolean * dynamic,
+				          gboolean * parallel);
+void               gfs_format_destroy    (GSList * f);
+gchar *            gfs_format_string     (GSList * format,
+				          gint pid, 
+				          guint niter,
+				          gdouble time);
+gdouble            gfs_format_time_value (GSList * format, 
+					  const gchar * string);
+
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */
diff --git a/src/variable.c b/src/variable.c
index 184df36..417a75f 100644
--- a/src/variable.c
+++ b/src/variable.c
@@ -16,12 +16,19 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
  * 02111-1307, USA.  
  */
+/** \file
+ * \brief GfsVariable and its descendants.
+ */
 
 #include <stdlib.h>
 #include "variable.h"
 #include "vof.h"
+#include "init.h"
 
-/* GfsVariable: Object */
+/**
+ * Base class for scalar fields.
+ * \beginobject{GfsVariable}
+ */
 
 static void variable_init_domain (GfsVariable * v, GfsDomain * domain)
 {
@@ -252,10 +259,77 @@ void gfs_variable_set_vector (GfsVariable ** v, guint n)
     v[i]->component = i;
     for (j = 0; j < n; j++)
       v[i]->vector[j] = v[j];
-  }    
+  }
+}
+
+/** \endobject{GfsVariable} */
+
+/**
+ * Boolean value consistent with adaptive refinement.
+ * \beginobject{GfsVariableBoolean}
+ */
+
+static void boolean_fine_coarse (FttCell * parent, GfsVariable * v)
+{
+  FttCellChildren child;
+  gint i;
+
+  ftt_cell_children (parent, &child);
+  for (i = 0; i < FTT_CELLS; i++)
+    if (child.c[i] && GFS_VALUE (child.c[i], v) < 0.) {
+      GFS_VALUE (parent, v) = -1.;
+      return;
+    }
+
+  gfs_get_from_below_intensive (parent, v);
+}
+
+static void boolean_coarse_fine (FttCell * parent, GfsVariable * v)
+{
+  FttCellChildren child;
+  gdouble val = GFS_VALUE (parent, v);
+  gint i;
+
+  ftt_cell_children (parent, &child);
+  for (i = 0; i < FTT_CELLS; i++)
+    if (child.c[i])
+      GFS_VALUE (child.c[i], v) = val;
 }
 
-/* GfsVariableTracer: object */
+static void variable_boolean_init (GfsVariable * v)
+{
+  v->fine_coarse = boolean_fine_coarse;
+  v->coarse_fine = boolean_coarse_fine;
+  v->description = g_strdup ("Boolean");
+}
+
+GfsVariableClass * gfs_variable_boolean_class (void)
+{
+  static GfsVariableClass * klass = NULL;
+
+  if (klass == NULL) {
+    GtsObjectClassInfo gfs_variable_boolean_info = {
+      "GfsVariableBoolean",
+      sizeof (GfsVariable),
+      sizeof (GfsVariableClass),
+      (GtsObjectClassInitFunc) NULL,
+      (GtsObjectInitFunc) variable_boolean_init,
+      (GtsArgSetFunc) NULL,
+      (GtsArgGetFunc) NULL
+    };
+    klass = gts_object_class_new (GTS_OBJECT_CLASS (gfs_variable_class ()), 
+				  &gfs_variable_boolean_info);
+  }
+
+  return klass;
+}
+
+/** \endobject{GfsVariableBoolean} */
+
+/**
+ * Advected scalar fields.
+ * \beginobject{GfsVariableTracer}
+ */
 
 static void variable_tracer_read (GtsObject ** o, GtsFile * fp)
 {
@@ -265,6 +339,7 @@ static void variable_tracer_read (GtsObject ** o, GtsFile * fp)
 
   if (fp->type == '{')
     gfs_advection_params_read (&GFS_VARIABLE_TRACER (*o)->advection, fp);
+
   if (fp->type != GTS_ERROR && fp->type == '{')
     g_warning ("%d:%d: specifying diffusion parameters is not done here anymore!",
 	       fp->line, fp->pos);
@@ -315,7 +390,11 @@ GfsVariableClass * gfs_variable_tracer_class (void)
   return klass;
 }
 
-/* GfsVariableResidual: Object */
+/** \endobject{GfsVariableTracer} */
+
+/**
+ * \beginobject{GfsVariableResidual}
+ */
 
 static void scale_residual (FttCell * cell, GfsVariable * res)
 {
@@ -365,7 +444,12 @@ GfsVariableClass * gfs_variable_residual_class (void)
   return klass;
 }
 
-/* GfsVariableFiltered: object */
+/** \endobject{GfsVariableResidual} */
+
+/**
+ * Spatial filtering .
+ * \beginobject{GfsVariableFiltered}
+ */
 
 static void variable_filtered_read (GtsObject ** o, GtsFile * fp)
 {
@@ -472,7 +556,11 @@ GfsVariableClass * gfs_variable_filtered_class (void)
   return klass;
 }
 
-/* GfsVariableDiagonal: object */
+/** \endobject{GfsVariableFiltered} */
+
+/**
+ * \beginobject{GfsVariableDiagonal}
+ */
 
 static void unity (FttCell * cell, GfsVariable * v)
 {
@@ -488,7 +576,7 @@ static void variable_diagonal (FttCell * cell, gpointer * data)
   FttCellFace f;
   GfsGradient ng;
 
-  GFS_VARIABLE (cell, tmp->i) = G_MAXDOUBLE;
+  GFS_VALUE (cell, tmp) = G_MAXDOUBLE;
   g.a = g.b = 0.;
   f.cell = cell;
   ftt_cell_neighbors (cell, &neighbor);
@@ -501,10 +589,10 @@ static void variable_diagonal (FttCell * cell, gpointer * data)
     }
   }
   if (g.a > 0.)
-    GFS_VARIABLE (cell, v->i) = g.b/g.a;
+    GFS_VALUE (cell, v) = g.b/g.a;
   else
-    GFS_VARIABLE (cell, v->i) = G_MAXDOUBLE;
-  GFS_VARIABLE (cell, tmp->i) = 1.;
+    GFS_VALUE (cell, v) = G_MAXDOUBLE;
+  GFS_VALUE (cell, tmp) = 1.;
 }
 
 static gboolean variable_diagonal_event (GfsEvent * event, GfsSimulation * sim)
@@ -519,7 +607,7 @@ static gboolean variable_diagonal_event (GfsEvent * event, GfsSimulation * sim)
     gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
 			      (FttCellTraverseFunc) unity, tmp);
     gfs_domain_bc (domain, FTT_TRAVERSE_LEAFS, -1, tmp);
-    gfs_poisson_coefficients (domain, sim->physical_params.alpha);
+    gfs_poisson_coefficients (domain, sim->physical_params.alpha, TRUE, TRUE);
     gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
 			      (FttCellTraverseFunc) variable_diagonal, data);
     gfs_domain_bc (domain, FTT_TRAVERSE_LEAFS, -1, GFS_VARIABLE1 (event));
@@ -555,7 +643,12 @@ GfsVariableClass * gfs_variable_diagonal_class (void)
   return klass;
 }
 
-/* GfsVariableFunction: Object */
+/** \endobject{GfsVariableDiagonal} */
+
+/**
+ * Optimising function evaluations .
+ * \beginobject{GfsVariableFunction}
+ */
 
 static void variable_function_destroy (GtsObject * o)
 {
@@ -630,9 +723,14 @@ GfsVariableClass * gfs_variable_function_class (void)
   return klass;
 }
 
+/** \endobject{GfsVariableFunction} */
+
 #if FTT_2D
 
-/* GfsVariableStreamFunction: Object */
+/**
+ * Maintaining a velocity field defined by a stream function.
+ * \beginobject{GfsVariableStreamFunction}
+ */
 
 static gdouble face_metric (FttCell * cell, FttDirection d, GfsDomain * domain)
 {
@@ -788,9 +886,242 @@ GfsVariableClass * gfs_variable_stream_function_class (void)
   return klass;
 }
 
+/** \endobject{GfsVariableStreamFunction} */
+
 #endif /* FTT_2D */
 
-/* GfsDerivedVariable: object */
+/**
+ * How old is this cell?.
+ * \beginobject{GfsVariableAge}
+ */
+
+static void increment_age (FttCell * cell, GfsVariable * v)
+{
+  GFS_VALUE (cell, v) += 1.;
+}
+
+static gboolean variable_age_event (GfsEvent * event, GfsSimulation * sim)
+{
+  if ((* GFS_EVENT_CLASS (GTS_OBJECT_CLASS (gfs_variable_age_class ())->parent_class)->event)
+      (event, sim)) {
+    gfs_domain_cell_traverse (GFS_DOMAIN (sim),
+			      FTT_PRE_ORDER, FTT_TRAVERSE_ALL, -1,
+			      (FttCellTraverseFunc) increment_age, event);
+    return TRUE;
+  }
+  return FALSE;
+}
+
+static void variable_age_class_init (GtsObjectClass * klass)
+{
+  GFS_EVENT_CLASS (klass)->event = variable_age_event;
+}
+
+static void none (FttCell * parent, GfsVariable * v)
+{
+}
+
+static void variable_age_init (GfsVariable * v)
+{
+  v->fine_coarse = none;
+  v->coarse_fine = none;
+}
+
+GfsVariableClass * gfs_variable_age_class (void)
+{
+  static GfsVariableClass * klass = NULL;
+
+  if (klass == NULL) {
+    GtsObjectClassInfo gfs_variable_age_info = {
+      "GfsVariableAge",
+      sizeof (GfsVariable),
+      sizeof (GfsVariableClass),
+      (GtsObjectClassInitFunc) variable_age_class_init,
+      (GtsObjectInitFunc) variable_age_init,
+      (GtsArgSetFunc) NULL,
+      (GtsArgGetFunc) NULL
+    };
+    klass = gts_object_class_new (GTS_OBJECT_CLASS (gfs_variable_class ()), 
+				  &gfs_variable_age_info);
+  }
+
+  return klass;
+}
+
+/** \endobject{GfsVariableAge} */
+
+/**
+ * Spatially-constant but time-dependent variables.
+ * \beginobject{GfsConstant}
+ */
+
+static void gfs_constant_destroy (GtsObject * object)
+{
+  if (GFS_CONSTANT (object)->derived)
+    gfs_domain_remove_derived_variable (GFS_DOMAIN (gfs_object_simulation (object)), 
+					GFS_CONSTANT (object)->derived->name);
+
+  (* GTS_OBJECT_CLASS (gfs_constant_class ())->parent_class->destroy) (object);
+}
+
+static gdouble constant_func (FttCell * cell, FttCellFace * face, GfsDomain * domain,
+			      GfsConstant * c)
+{
+  return c->val;
+}
+
+static void gfs_constant_read (GtsObject ** o, GtsFile * fp)
+{
+  (* GTS_OBJECT_CLASS (gfs_constant_class ())->parent_class->read) (o, fp);
+  if (fp->type == GTS_ERROR)
+    return;
+
+  if (fp->type != GTS_STRING) {
+    gts_file_error (fp, "expecting a string (name)");
+    return;
+  }
+  GfsDerivedVariableInfo v = {
+    fp->token->str, "Constant",
+    constant_func, *o
+  };
+  GFS_CONSTANT (*o)->derived = 
+    gfs_domain_add_derived_variable (GFS_DOMAIN (gfs_object_simulation (*o)), v);
+  if (!GFS_CONSTANT (*o)->derived) {
+    gts_file_error (fp, "'%s' keyword already used", fp->token->str);
+    return;
+  }
+  gts_file_next_token (fp);
+}
+
+static void gfs_constant_write (GtsObject * o, FILE * fp)
+{
+  (* GTS_OBJECT_CLASS (gfs_constant_class ())->parent_class->write) (o, fp);  
+  fprintf (fp, " %s", GFS_CONSTANT (o)->derived->name);
+}
+
+static void gfs_constant_class_init (GtsObjectClass * klass)
+{
+  klass->destroy = gfs_constant_destroy;
+  klass->read =    gfs_constant_read;
+  klass->write =   gfs_constant_write;
+}
+
+static void gfs_constant_init (GfsEvent * event)
+{
+  event->start = -1;
+  event->istep = 1;
+}
+
+GfsEventClass * gfs_constant_class (void)
+{
+  static GfsEventClass * klass = NULL;
+
+  if (klass == NULL) {
+    GtsObjectClassInfo gfs_constant_info = {
+      "GfsConstant",
+      sizeof (GfsConstant),
+      sizeof (GfsEventClass),
+      (GtsObjectClassInitFunc) gfs_constant_class_init,
+      (GtsObjectInitFunc) gfs_constant_init,
+      (GtsArgSetFunc) NULL,
+      (GtsArgGetFunc) NULL
+    };
+    klass = gts_object_class_new (GTS_OBJECT_CLASS (gfs_event_class ()), &gfs_constant_info);
+  }
+
+  return klass;
+}
+
+/** \endobject{GfsConstant} */
+
+/**
+ * Compute the spatial sum of a GfsFunction.
+ * \beginobject{GfsSpatialSum}
+ */
+
+static void gfs_spatial_sum_destroy (GtsObject * o)
+{
+  gts_object_destroy (GTS_OBJECT (GFS_SPATIAL_SUM (o)->v));
+  (* GTS_OBJECT_CLASS (gfs_spatial_sum_class ())->parent_class->destroy) (o);
+}
+
+static void gfs_spatial_sum_write (GtsObject * o, FILE * fp)
+{
+  (* GTS_OBJECT_CLASS (gfs_spatial_sum_class ())->parent_class->write) (o, fp);
+  gfs_function_write (GFS_SPATIAL_SUM (o)->v, fp);
+}
+
+static void gfs_spatial_sum_read (GtsObject ** o, GtsFile * fp)
+{
+  (* GTS_OBJECT_CLASS (gfs_spatial_sum_class ())->parent_class->read) (o, fp);
+  if (fp->type == GTS_ERROR) 
+    return;
+  gfs_function_read (GFS_SPATIAL_SUM (*o)->v, GFS_DOMAIN (gfs_object_simulation (*o)), fp);
+}
+
+static void add (FttCell * cell, GfsSpatialSum * s)
+{
+  GFS_CONSTANT (s)->val += gfs_cell_volume (cell, GFS_DOMAIN (gfs_object_simulation (s)))*
+    gfs_function_value (s->v, cell);
+}
+
+static gboolean gfs_spatial_sum_event (GfsEvent * event, GfsSimulation * sim)
+{
+  if ((* GFS_EVENT_CLASS (GTS_OBJECT_CLASS (gfs_spatial_sum_class ())->parent_class)->event) 
+      (event, sim)) {
+    GfsDomain * domain = GFS_DOMAIN (sim);
+
+    GFS_CONSTANT (event)->val = 0.;
+    gfs_catch_floating_point_exceptions ();
+    gfs_domain_traverse_leaves (domain, (FttCellTraverseFunc) add, event);
+    gfs_restore_fpe_for_function (GFS_SPATIAL_SUM (event)->v);
+    gfs_all_reduce (domain, GFS_CONSTANT (event)->val, MPI_DOUBLE, MPI_SUM);
+    GFS_CONSTANT (event)->val *= pow (sim->physical_params.L, FTT_DIMENSION);
+    return TRUE;
+  }
+  return FALSE;
+}
+
+static void gfs_spatial_sum_class_init (GtsObjectClass * klass)
+{
+  klass->read = gfs_spatial_sum_read;
+  klass->write = gfs_spatial_sum_write;
+  klass->destroy = gfs_spatial_sum_destroy;
+  GFS_EVENT_CLASS (klass)->event = gfs_spatial_sum_event;
+}
+
+static void gfs_spatial_sum_init (GfsSpatialSum * object)
+{
+  object->v = gfs_function_new (gfs_function_class (), 0.);
+}
+
+GfsEventClass * gfs_spatial_sum_class (void)
+{
+  static GfsEventClass * klass = NULL;
+
+  if (klass == NULL) {
+    GtsObjectClassInfo gfs_spatial_sum_info = {
+      "GfsSpatialSum",
+      sizeof (GfsSpatialSum),
+      sizeof (GfsEventClass),
+      (GtsObjectClassInitFunc) gfs_spatial_sum_class_init,
+      (GtsObjectInitFunc) gfs_spatial_sum_init,
+      (GtsArgSetFunc) NULL,
+      (GtsArgGetFunc) NULL
+    };
+    klass = gts_object_class_new (GTS_OBJECT_CLASS (gfs_constant_class ()),
+				  &gfs_spatial_sum_info);
+  }
+
+  return klass;
+}
+
+/** \endobject{GfsSpatialSum} */
+
+/**
+ * Derived variables.
+ * \beginobject{GfsDerivedVariable}
+ */
 
 static void gfs_derived_variable_destroy (GtsObject * object)
 {
@@ -845,3 +1176,5 @@ GfsDerivedVariable * gfs_derived_variable_from_name (GSList * i, const gchar * n
   }
   return NULL;
 }
+
+/** \endobject{GfsDerivedVariable} */
diff --git a/src/variable.h b/src/variable.h
index dce3566..309c52c 100644
--- a/src/variable.h
+++ b/src/variable.h
@@ -88,6 +88,13 @@ void                  gfs_variables_swap            (GfsVariable * v1,
 void                  gfs_variable_set_vector       (GfsVariable ** v,
 						     guint n);
 
+/* GfsVariableBoolean: header */
+
+#define GFS_IS_VARIABLE_BOOLEAN(obj)         (gts_object_is_from_class (obj,\
+					     gfs_variable_boolean_class ()))
+
+GfsVariableClass * gfs_variable_boolean_class  (void);
+
 /* GfsVariableTracer: header */
 
 typedef struct _GfsVariableTracer                GfsVariableTracer;
@@ -171,6 +178,13 @@ GfsVariableClass * gfs_variable_stream_function_class  (void);
 
 #endif /* FTT_2D */
 
+/* GfsVariableAge: header */
+
+#define GFS_IS_VARIABLE_AGE(obj)         (gts_object_is_from_class (obj,\
+					     gfs_variable_age_class ()))
+
+GfsVariableClass * gfs_variable_age_class  (void);
+
 /* GfsDerivedVariable: Header */
 
 struct _GfsDerivedVariable {
@@ -192,6 +206,49 @@ GtsObjectClass *     gfs_derived_variable_class            (void);
 GfsDerivedVariable * gfs_derived_variable_from_name        (GSList * i, 
 							    const gchar * name);
 
+/* GfsConstant: Header */
+
+typedef struct _GfsConstant GfsConstant;
+
+/** \instance{GfsConstant} */
+struct _GfsConstant {
+  /*< private >*/
+  GfsEvent parent;
+  GfsDerivedVariable * derived;
+
+  /*< public >*/
+  gdouble val; /**< the value of the constant */
+};
+
+#define GFS_CONSTANT(obj)            GTS_OBJECT_CAST (obj,\
+					         GfsConstant,\
+					         gfs_constant_class ())
+#define GFS_IS_CONSTANT(obj)         (gts_object_is_from_class (obj,\
+						 gfs_constant_class ()))
+
+GfsEventClass *     gfs_constant_class            (void);
+
+/* GfsSpatialSum: Header */
+
+typedef struct _GfsSpatialSum         GfsSpatialSum;
+
+/** \instance{GfsSpatialSum} */
+struct _GfsSpatialSum {
+  /*< private >*/
+  GfsConstant parent;
+
+  /*< public >*/
+  GfsFunction * v; /**< the function to sum */
+};
+
+#define GFS_SPATIAL_SUM(obj)            GTS_OBJECT_CAST (obj,\
+					         GfsSpatialSum,\
+					         gfs_spatial_sum_class ())
+#define GFS_IS_SPATIAL_SUM(obj)         (gts_object_is_from_class (obj,\
+						 gfs_spatial_sum_class ()))
+
+GfsEventClass * gfs_spatial_sum_class  (void);
+
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */
diff --git a/src/version.h b/src/version.h
index ed5551f..06fcc0f 100644
--- a/src/version.h
+++ b/src/version.h
@@ -6,6 +6,6 @@
 #ifndef GFSVERSION_H
 #define GFSVERSION_H
 
-#define GFS_BUILD_VERSION "091110-141005"
+#define GFS_BUILD_VERSION "110330-091912"
 
 #endif /* GFSVERSION_H */
diff --git a/src/vof.c b/src/vof.c
index 90b7e32..1cd3d09 100644
--- a/src/vof.c
+++ b/src/vof.c
@@ -16,6 +16,9 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
  * 02111-1307, USA.  
  */
+/*! \file
+ * \brief Volume-Of-Fluid tracers.
+ */
 
 #include <math.h>
 #include <stdlib.h>
@@ -780,7 +783,10 @@ gdouble gfs_vof_interpolate (FttCell * cell,
   }
 }
 
-/* GfsVariableTracerVOF: object */
+/**
+ * Volume-Of-Fluid advection.
+ * \beginobject{GfsVariableTracerVOF}
+ */
 
 #if FTT_2D
 # define F(x,y,z) f[x][y]
@@ -1490,8 +1496,8 @@ void gfs_tracer_vof_advection (GfsDomain * domain,
     gfs_domain_face_traverse (domain, p.c,
 			      FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
 			      (FttFaceTraverseFunc) vof_flux, &p);
-    gfs_domain_traverse_merged (domain, (GfsMergedTraverseFunc) gfs_advection_update, par);
-    gfs_domain_traverse_merged (domain, (GfsMergedTraverseFunc) gfs_advection_update, &p.vpar);
+    gfs_domain_traverse_merged (domain, (GfsMergedTraverseFunc) par->update, par);
+    gfs_domain_traverse_merged (domain, (GfsMergedTraverseFunc) par->update, &p.vpar);
     gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
     			      (FttCellTraverseFunc) f_over_dV, &p);
     gfs_domain_cell_traverse (domain, FTT_POST_ORDER, FTT_TRAVERSE_NON_LEAFS, -1,
@@ -1677,19 +1683,19 @@ guint gfs_vof_facet (FttCell * cell,
  * @p: a #GtsPoint.
  *
  * Returns: the square of the distance between point @p and the
- * VOF-reconstructed interface facet defined by @t or %G_MAXDOUBLE if
+ * VOF-reconstructed interface facet defined by @t or %GFS_NODATA if
  * @cell does not contain an interface.
  */
 gdouble gfs_vof_facet_distance2 (FttCell * cell,
 				 GfsVariableTracerVOF * t,
 				 GtsPoint * p)
 {
-  g_return_val_if_fail (cell != NULL, G_MAXDOUBLE);
-  g_return_val_if_fail (t != NULL, G_MAXDOUBLE);
-  g_return_val_if_fail (p != NULL, G_MAXDOUBLE);
+  g_return_val_if_fail (cell != NULL, GFS_NODATA);
+  g_return_val_if_fail (t != NULL, GFS_NODATA);
+  g_return_val_if_fail (p != NULL, GFS_NODATA);
 
   if (GFS_IS_FULL (GFS_VALUE (cell, GFS_VARIABLE1 (t))))
-    return G_MAXDOUBLE;
+    return GFS_NODATA;
 
   FttVector q, m;
   ftt_cell_pos (cell, &q);
@@ -1729,7 +1735,7 @@ gdouble gfs_vof_facet_distance2 (FttCell * cell,
 	if (d < dmin)
 	  dmin = d;
       }
-      return dmin;
+      return dmin == G_MAXDOUBLE ? GFS_NODATA : dmin;
     }
   }
   return h*h*lambda*lambda*norm2;
@@ -1744,7 +1750,7 @@ gdouble gfs_vof_facet_distance2 (FttCell * cell,
  * Fills @p with the coordinates of the center of mass of the
  * VOF-reconstructed interface facet defined by @t.
  *
- * Returns: the area (length in 2D) of the VOF-reconstructed facet or 0. if the
+ * Returns: the area (length in 2D) of the VOF-reconstructed facet or 0 if the
  * cell is not cut by the interface.
  */
 gdouble gfs_vof_center (FttCell * cell, GfsVariableTracerVOF * t, FttVector * p)
@@ -2206,7 +2212,7 @@ static void fit_from_fractions (FttCell * cell, GfsVariable * v, ParabolaFit * f
 /**
  * gfs_fit_curvature:
  * @cell: a #FttCell containing an interface.
- * @v: a #GfsVariableTracerVOF.
+ * @t: a #GfsVariableTracerVOF.
  * @kmax: a pointer or %NULL. 
  *
  * Computes an approximation of the curvature of the interface
@@ -2299,17 +2305,19 @@ static guint independent_positions (GtsVector * interface, guint n)
 /**
  * gfs_height_curvature:
  * @cell: a #FttCell containing an interface.
- * @v: a #GfsVariableTracerVOF.
+ * @t: a #GfsVariableTracerVOF.
  * @kmax: a pointer or %NULL.
  *
  * An implementation of the Height-Function (HF) method generalised to
  * adaptive meshes.
  *
  * If @kmax is not %NULL, it is filled with the absolute value of the
- * maximum surface curvature (note that in 2D this is just the absolute value of
- * the mean curvature).
+ * maximum surface curvature (note that in 2D this is just the
+ * absolute value of the mean curvature).
  *
- * Returns: (double in 3D) the mean curvature of the interface contained in @cell.
+ * Returns: (double in 3D) the mean curvature of the interface
+ * contained in @cell, or %GFS_NODATA if the HF method could not
+ * compute a consistent curvature.
  */
 gdouble gfs_height_curvature (FttCell * cell, GfsVariableTracerVOF * t, gdouble * kmax)
 {
@@ -2339,7 +2347,7 @@ gdouble gfs_height_curvature (FttCell * cell, GfsVariableTracerVOF * t, gdouble
    * Try parabola fitting of the collected interface positions */
 
   if (independent_positions (interface, n) < 3*(FTT_DIMENSION - 1))
-    return G_MAXDOUBLE;
+    return GFS_NODATA;
 
   gdouble h = ftt_cell_size (cell);
   ParabolaFit fit;
@@ -2376,8 +2384,9 @@ gdouble gfs_height_curvature (FttCell * cell, GfsVariableTracerVOF * t, gdouble
  * @cell: a #FttCell.
  * @t: a #GfsVariableTracerVOF.
  *
- * An implementation of the criterion of Cerne et al (2002), to
- * measure how well an interface is represented by a local VOF field.
+ * An implementation of the criterion of Cerne, Petelin, Tiselj
+ * (2002), to measure how well an interface is represented by a local
+ * VOF field.
  *
  * Returns: the "correctness" of the interface representation.
  */
@@ -2410,3 +2419,5 @@ gdouble gfs_vof_correctness (FttCell * cell, GfsVariableTracerVOF * t)
   return sqrt ((dx*dx + dy*dy + dz*dz)/27.);
 #endif
 }
+
+/** \endobject{GfsVariableTracerVOF} */
diff --git a/src/wave.c b/src/wave.c
index 05c61c3..d44d63d 100644
--- a/src/wave.c
+++ b/src/wave.c
@@ -16,12 +16,20 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
  * 02111-1307, USA.  
  */
+/*! \file
+ * \brief GfsWave spectral wave model.
+ */
 
+#include <stdlib.h>
 #include "wave.h"
 #include "adaptive.h"
 #include "solid.h"
+#include "init.h"
 
-/* GfsWave: Object */
+/**
+ * Spectral wave model.
+ * \beginobject{GfsWave}
+ */
 
 static double frequency (int ik)
 {
@@ -383,7 +391,12 @@ GfsSimulationClass * gfs_wave_class (void)
   return klass;
 }
 
-/* GfsInitWave: Object */
+/** \endobject{GfsWave} */
+
+/**
+ * Initial wave spectrum for wave model.
+ * \beginobject{GfsInitWave}
+ */
 
 static void gfs_init_wave_read (GtsObject ** o, GtsFile * fp)
 {
@@ -425,7 +438,11 @@ static void init_energy (FttCell * cell, GfsInitWave * event)
   for (wave->ik = 0; wave->ik < wave->nk; wave->ik++)
     for (wave->ith = 0; wave->ith < wave->ntheta; wave->ith++)
       GFS_VALUE (cell, wave->F[wave->ik][wave->ith]) = gfs_function_value (event->d, cell);
+}
 
+static void scale_energy (FttCell * cell, GfsInitWave * event)
+{
+  GfsWave * wave = GFS_WAVE (gfs_object_simulation (event));
   gdouble E = cell_E (cell, NULL, GFS_DOMAIN (wave));
   if (E > 0.) {
     gdouble Hs = gfs_function_value (event->hs, cell);
@@ -441,8 +458,14 @@ static gboolean gfs_init_wave_event (GfsEvent * event, GfsSimulation * sim)
 {
   if ((* GFS_EVENT_CLASS (GTS_OBJECT_CLASS (gfs_init_wave_class ())->parent_class)->event) 
       (event, sim)) {
+    gfs_catch_floating_point_exceptions ();
     gfs_domain_cell_traverse (GFS_DOMAIN (sim), FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
 			      (FttCellTraverseFunc) init_energy, event);
+    gfs_restore_fpe_for_function (GFS_INIT_WAVE (event)->d);
+    gfs_catch_floating_point_exceptions ();
+    gfs_domain_cell_traverse (GFS_DOMAIN (sim), FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
+			      (FttCellTraverseFunc) scale_energy, event);
+    gfs_restore_fpe_for_function (GFS_INIT_WAVE (event)->hs);
     return TRUE;
   }
   return FALSE;
@@ -483,3 +506,4 @@ GfsGenericInitClass * gfs_init_wave_class (void)
   return klass;
 }
 
+/** \endobject{GfsInitWave} */
diff --git a/test/Makefile.am b/test/Makefile.am
index 94ac6ea..2b8aba7 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -1,14 +1,22 @@
 ## Process this file with automake to produce Makefile.in
 
+AUTOMAKE_OPTIONS = parallel-tests
+
+# new test cases need to be added to this list in the order in which
+# they appear in template.tex
+
 TESTDIRS = \
 	poisson \
 	circle \
 	dumbell \
 	advection \
 	shear \
+	diffusion \
+	conservation \
 	reynolds \
 	periodic \
 	merging \
+	source \
 	axi \
 	axiadvection \
 	lid \
@@ -16,6 +24,8 @@ TESTDIRS = \
 	couette \
 	kinetic \
 	hydrostatic \
+	coriolis \
+	lake \
 	boundaries \
 	channel \
 	plate \
@@ -29,7 +39,15 @@ TESTDIRS = \
 	nz \
 	parabola \
 	lonlat \
-	cosine
+	cosine \
+	harmonic \
+	gaussian \
+	planar \
+	bump \
+	cylinder \
+	electro
+
+WEBROOT = /var/www/gerris
 
 EXTRA_DIST = \
 	template.tex \
@@ -38,22 +56,22 @@ EXTRA_DIST = \
 	test.py \
 	check.py \
 	gfs2tex \
+	summary.sh \
 	Makefile.deps
 
-TESTS = test.sh
-
-test.sh: $(TESTDIRS)
-	@echo "python -u test.py $(TESTDIRS)" > test.sh
-	@chmod +x test.sh
-
 clean-generic:
-	$(RM) *.dvi *.aux *.log *.toc *.out tests.tex *.pyc test.sh *.bbl *.blg Makefile.deps
+	mv -f summary.sh summary.sh.bak
+	$(RM) *.dvi *.aux *.log *.toc *.out tests.tex *.pyc *.bbl *.blg $(TESTS) Makefile.deps
+	mv -f summary.sh.bak summary.sh
 
 DOC = tests
 
+# we need this for gfs.sty
+TEXINPUTS = .:$(top_srcdir)/doc/examples:
+
 tests: tests.dvi
-	hevea -fix $(DOC).tex
-	imagen -res 500 -extra "pnmscale 0.24" $(DOC)
+	TEXINPUTS=$(TEXINPUTS) hevea -fix -I $(top_srcdir)/doc/examples $(DOC).tex
+	TEXINPUTS=$(TEXINPUTS) imagen -res 500 -extra "pnmscale 0.24" $(DOC)
 	hacha $(DOC).html
 	rm -f $(DOC).html
 	mv -f $(DOC)[0-9][0-9][0-9].png $(DOC)
@@ -63,14 +81,14 @@ tests: tests.dvi
 	sh ../doc/share/fixnav.sh $(DOC)
 	cp -f ../doc/share/contents.png ../doc/share/next.png ../doc/share/prev.png $(DOC)
 	rm -f *_motif.gif $(DOC).h{tml,aux,ind,toc} $(DOC).image.tex $(DOC).css
-	sh ../doc/examples/crossref.sh --url=http://gfs.sourceforge.net/tests/tests $(TESTDIRS)
+	sh ../doc/examples/crossref.sh --url=http://gerris.dalembert.upmc.fr/gerris/tests/tests $(TESTDIRS)
 	mv references tests
 
 tests.dvi: tests.tex tests.bib
-	latex -interaction=nonstopmode tests.tex > /dev/null 2>&1
+	- TEXINPUTS=$(TEXINPUTS) latex -interaction=nonstopmode tests.tex > /dev/null 2>&1
 	bibtex tests
-	latex -interaction=nonstopmode tests.tex > /dev/null 2>&1
-	latex -interaction=nonstopmode tests.tex
+	- TEXINPUTS=$(TEXINPUTS) latex -interaction=nonstopmode tests.tex > /dev/null 2>&1
+	TEXINPUTS=$(TEXINPUTS) latex -interaction=nonstopmode tests.tex
 
 tests.pdf: tests.dvi
 	dvips -Ppdf -G0 tests.dvi -o tests.ps
@@ -82,10 +100,15 @@ tests.tex: template.tex Makefile.deps
 	python gfs2tex $(TESTDIRS)
 	cp -f template.tex tests.tex
 
-Makefile.deps: Makefile depend.py
+Makefile.deps: depend.py
 	python depend.py $(TESTDIRS) > Makefile.deps
 
--include Makefile.deps
+include Makefile.deps
 
 tests.tar.gz: tests $(DOCS)
 	tar czf tests.tar.gz tests $(DOCS)
+	rm -r -f tests
+
+publish: tests.tar.gz
+	cp tests.tar.gz $(WEBROOT)/tests
+	cd $(WEBROOT)/tests && tar xzf tests.tar.gz && rm -f tests.tar.gz
diff --git a/test/Makefile.deps b/test/Makefile.deps
index e29a6d6..155a39b 100644
--- a/test/Makefile.deps
+++ b/test/Makefile.deps
@@ -1,29 +1,37 @@
 DOCS = \
 	poisson/poisson.gfs.html\
+	poisson/dirichlet/dirichlet.gfs.html\
 	poisson/circle/circle.gfs.html\
 	circle/circle.gfs.html\
 	circle/refined/refined.gfs.html\
-	circle/star/star.gfs.html\
 	circle/thin/thin.gfs.html\
+	circle/star/star.gfs.html\
 	dumbell/dumbell.gfs.html\
 	advection/advection.gfs.html\
 	shear/shear.gfs.html\
 	shear/curvature/curvature.gfs.html\
+	diffusion/diffusion.gfs.html\
+	conservation/conservation.gfs.html\
 	reynolds/reynolds.gfs.html\
 	reynolds/box/box.gfs.html\
 	periodic/periodic.gfs.html\
 	merging/merging.gfs.html\
+	source/source.gfs.html\
 	axi/axi.gfs.html\
 	axi/viscous/viscous.gfs.html\
 	axiadvection/axiadvection.gfs.html\
 	axiadvection/solid/solid.gfs.html\
 	lid/lid.gfs.html\
+	lid/stretch/stretch.gfs.html\
 	lid/explicit/explicit.gfs.html\
 	poiseuille/poiseuille.gfs.html\
+	poiseuille/bagnold/bagnold.gfs.html\
 	couette/couette.gfs.html\
 	kinetic/kinetic.gfs.html\
 	hydrostatic/hydrostatic.gfs.html\
 	hydrostatic/quadratic/quadratic.gfs.html\
+	coriolis/coriolis.gfs.html\
+	lake/lake.gfs.html\
 	boundaries/boundaries.gfs.html\
 	channel/channel.gfs.html\
 	plate/plate.gfs.html\
@@ -32,9 +40,9 @@ DOCS = \
 	spurious/spurious.gfs.html\
 	spurious/axi/axi.gfs.html\
 	capwave/capwave.gfs.html\
+	capwave/gravity/gravity.gfs.html\
 	capwave/air-water/air-water.gfs.html\
 	capwave/density/density.gfs.html\
-	capwave/gravity/gravity.gfs.html\
 	oscillation/oscillation.gfs.html\
 	geo/geo.gfs.html\
 	geo/beta/beta.gfs.html\
@@ -45,11 +53,25 @@ DOCS = \
 	lonlat/lonlat.gfs.html\
 	lonlat/coriolis/coriolis.gfs.html\
 	cosine/cosine.gfs.html\
+	harmonic/harmonic.gfs.html\
+	harmonic/lonlat/lonlat.gfs.html\
+	gaussian/gaussian.gfs.html\
+	gaussian/lonlat/lonlat.gfs.html\
+	planar/planar.gfs.html\
+	planar/solid/solid.gfs.html\
+	bump/bump.gfs.html\
+	cylinder/cylinder.gfs.html\
+	cylinder/planar/planar.gfs.html\
+	electro/electro.gfs.html\
 	poisson/poisson.gfs\
 	poisson/poisson.sh\
 	poisson/res-7.ref\
 	poisson/error.ref\
 	poisson/order.ref\
+	poisson/dirichlet/dirichlet.gfs\
+	poisson/dirichlet/res-7.ref\
+	poisson/dirichlet/error.ref\
+	poisson/dirichlet/order.ref\
 	poisson/circle/circle.gfs\
 	poisson/circle/res-7.ref\
 	poisson/circle/error.ref\
@@ -65,16 +87,16 @@ DOCS = \
 	circle/refined/error.ref\
 	circle/refined/order.ref\
 	circle/refined/solution.gfv\
-	circle/star/star.gfs\
-	circle/star/res-7.ref\
-	circle/star/error.ref\
-	circle/star/order.ref\
-	circle/star/solution.gfv\
 	circle/thin/thin.gfs\
 	circle/thin/res-7.ref\
 	circle/thin/error.ref\
 	circle/thin/order.ref\
 	circle/thin/solution.gfv\
+	circle/star/star.gfs\
+	circle/star/res-7.ref\
+	circle/star/error.ref\
+	circle/star/order.ref\
+	circle/star/solution.gfv\
 	dumbell/dumbell.gfs\
 	dumbell/dumbell.sh\
 	advection/advection.gfs\
@@ -88,6 +110,9 @@ DOCS = \
 	shear/curvature/../shear.sh\
 	shear/curvature/norms.ref\
 	shear/curvature/curvature.gfv\
+	diffusion/diffusion.gfs\
+	diffusion/diffusion.sh\
+	conservation/conservation.gfs\
 	reynolds/reynolds.gfs\
 	reynolds/reynolds.sh\
 	reynolds/div5.ref\
@@ -111,6 +136,11 @@ DOCS = \
 	merging/vorticity.gfv\
 	merging/sim.err.ref\
 	merging/simc.err.ref\
+	source/source.gfs\
+	source/source.sh\
+	source/source.gfv\
+	source/error.gfv\
+	source/error.ref\
 	axi/axi.gfs\
 	axi/axi.sh\
 	axi/error.ref\
@@ -140,11 +170,18 @@ DOCS = \
 	lid/yprofile\
 	lid/xprof.ghia\
 	lid/yprof.ghia\
+	lid/stretch/stretch.gfs\
+	lid/stretch/xprofile\
+	lid/stretch/yprofile\
+	lid/stretch/xprof.ghia\
+	lid/stretch/yprof.ghia\
 	lid/explicit/explicit.gfs\
 	lid/explicit/lid.sh\
 	poiseuille/poiseuille.gfs\
 	poiseuille/poiseuille.sh\
 	poiseuille/error.ref\
+	poiseuille/bagnold/bagnold.gfs\
+	poiseuille/bagnold/error.ref\
 	couette/couette.gfs\
 	couette/couette.sh\
 	couette/profile\
@@ -155,9 +192,12 @@ DOCS = \
 	kinetic/kinetic.gfs\
 	kinetic/kinetic.gfs\
 	hydrostatic/hydrostatic.gfs\
-	hydrostatic/hydrostatic.gfs\
 	hydrostatic/quadratic/quadratic.gfs\
 	hydrostatic/quadratic/quadratic.gfs\
+	coriolis/coriolis.gfs\
+	coriolis/coriolis.sh\
+	lake/lake.gfs\
+	lake/lake.gfv\
 	boundaries/boundaries.gfs\
 	boundaries/boundaries.sh\
 	boundaries/orderU.ref\
@@ -197,15 +237,15 @@ DOCS = \
 	capwave/surfer.tex\
 	capwave/prost.tex\
 	capwave/clsvof.tex\
+	capwave/gravity/gravity.gfs\
+	capwave/gravity/convergence.ref\
+	capwave/gravity/prosperetti\
 	capwave/air-water/air-water.gfs\
 	capwave/air-water/convergence.ref\
 	capwave/air-water/prosperetti\
 	capwave/density/density.gfs\
 	capwave/density/convergence.ref\
 	capwave/density/prosperetti\
-	capwave/gravity/gravity.gfs\
-	capwave/gravity/convergence.ref\
-	capwave/gravity/prosperetti\
 	oscillation/oscillation.gfs\
 	oscillation/oscillation.sh\
 	oscillation/fit.ref\
@@ -235,7 +275,6 @@ DOCS = \
 	parabola/parabola.gfs\
 	parabola/parabola.sh\
 	parabola/error.ref\
-	parabola/order.ref\
 	lonlat/lonlat.gfs\
 	lonlat/isolines.gfv\
 	lonlat/coriolis/coriolis.gfs\
@@ -248,7 +287,37 @@ DOCS = \
 	cosine/error-45.ref\
 	cosine/error-90.ref\
 	cosine/rossmanith45\
-	cosine/rossmanith90
+	cosine/rossmanith90\
+	harmonic/harmonic.gfs\
+	harmonic/harmonic.sh\
+	harmonic/gerris.gfv\
+	harmonic/res-7.ref\
+	harmonic/error.ref\
+	harmonic/order.ref\
+	harmonic/lonlat/lonlat.gfs\
+	harmonic/lonlat/gerris.gfv\
+	harmonic/lonlat/res-7.ref\
+	harmonic/lonlat/error.ref\
+	harmonic/lonlat/order.ref\
+	gaussian/gaussian.gfs\
+	gaussian/gaussian.sh\
+	gaussian/prof.ref\
+	gaussian/lonlat/lonlat.gfs\
+	gaussian/lonlat/prof.ref\
+	planar/planar.gfs\
+	planar/solid/solid.gfs\
+	bump/bump.gfs\
+	bump/bump.sh\
+	bump/norms.ref\
+	cylinder/cylinder.gfs\
+	cylinder/cylinder.sh\
+	cylinder/norms.ref\
+	cylinder/planar/planar.gfs\
+	cylinder/planar/norms.ref\
+	electro/electro.gfs\
+	electro/electro.sh\
+	electro/figure.gfv\
+	electro/convergence.ref
 
 EXTRA_DIST += \
 	poisson/poisson.gfs\
@@ -256,6 +325,10 @@ EXTRA_DIST += \
 	poisson/res-7.ref\
 	poisson/error.ref\
 	poisson/order.ref\
+	poisson/dirichlet/dirichlet.gfs\
+	poisson/dirichlet/res-7.ref\
+	poisson/dirichlet/error.ref\
+	poisson/dirichlet/order.ref\
 	poisson/circle/circle.gfs\
 	poisson/circle/res-7.ref\
 	poisson/circle/error.ref\
@@ -271,16 +344,16 @@ EXTRA_DIST += \
 	circle/refined/error.ref\
 	circle/refined/order.ref\
 	circle/refined/solution.gfv\
-	circle/star/star.gfs\
-	circle/star/res-7.ref\
-	circle/star/error.ref\
-	circle/star/order.ref\
-	circle/star/solution.gfv\
 	circle/thin/thin.gfs\
 	circle/thin/res-7.ref\
 	circle/thin/error.ref\
 	circle/thin/order.ref\
 	circle/thin/solution.gfv\
+	circle/star/star.gfs\
+	circle/star/res-7.ref\
+	circle/star/error.ref\
+	circle/star/order.ref\
+	circle/star/solution.gfv\
 	dumbell/dumbell.gfs\
 	dumbell/dumbell.sh\
 	advection/advection.gfs\
@@ -294,6 +367,9 @@ EXTRA_DIST += \
 	shear/curvature/../shear.sh\
 	shear/curvature/norms.ref\
 	shear/curvature/curvature.gfv\
+	diffusion/diffusion.gfs\
+	diffusion/diffusion.sh\
+	conservation/conservation.gfs\
 	reynolds/reynolds.gfs\
 	reynolds/reynolds.sh\
 	reynolds/div5.ref\
@@ -317,6 +393,11 @@ EXTRA_DIST += \
 	merging/vorticity.gfv\
 	merging/sim.err.ref\
 	merging/simc.err.ref\
+	source/source.gfs\
+	source/source.sh\
+	source/source.gfv\
+	source/error.gfv\
+	source/error.ref\
 	axi/axi.gfs\
 	axi/axi.sh\
 	axi/error.ref\
@@ -346,11 +427,18 @@ EXTRA_DIST += \
 	lid/yprofile\
 	lid/xprof.ghia\
 	lid/yprof.ghia\
+	lid/stretch/stretch.gfs\
+	lid/stretch/xprofile\
+	lid/stretch/yprofile\
+	lid/stretch/xprof.ghia\
+	lid/stretch/yprof.ghia\
 	lid/explicit/explicit.gfs\
 	lid/explicit/lid.sh\
 	poiseuille/poiseuille.gfs\
 	poiseuille/poiseuille.sh\
 	poiseuille/error.ref\
+	poiseuille/bagnold/bagnold.gfs\
+	poiseuille/bagnold/error.ref\
 	couette/couette.gfs\
 	couette/couette.sh\
 	couette/profile\
@@ -361,9 +449,12 @@ EXTRA_DIST += \
 	kinetic/kinetic.gfs\
 	kinetic/kinetic.gfs\
 	hydrostatic/hydrostatic.gfs\
-	hydrostatic/hydrostatic.gfs\
 	hydrostatic/quadratic/quadratic.gfs\
 	hydrostatic/quadratic/quadratic.gfs\
+	coriolis/coriolis.gfs\
+	coriolis/coriolis.sh\
+	lake/lake.gfs\
+	lake/lake.gfv\
 	boundaries/boundaries.gfs\
 	boundaries/boundaries.sh\
 	boundaries/orderU.ref\
@@ -403,15 +494,15 @@ EXTRA_DIST += \
 	capwave/surfer.tex\
 	capwave/prost.tex\
 	capwave/clsvof.tex\
+	capwave/gravity/gravity.gfs\
+	capwave/gravity/convergence.ref\
+	capwave/gravity/prosperetti\
 	capwave/air-water/air-water.gfs\
 	capwave/air-water/convergence.ref\
 	capwave/air-water/prosperetti\
 	capwave/density/density.gfs\
 	capwave/density/convergence.ref\
 	capwave/density/prosperetti\
-	capwave/gravity/gravity.gfs\
-	capwave/gravity/convergence.ref\
-	capwave/gravity/prosperetti\
 	oscillation/oscillation.gfs\
 	oscillation/oscillation.sh\
 	oscillation/fit.ref\
@@ -441,7 +532,6 @@ EXTRA_DIST += \
 	parabola/parabola.gfs\
 	parabola/parabola.sh\
 	parabola/error.ref\
-	parabola/order.ref\
 	lonlat/lonlat.gfs\
 	lonlat/isolines.gfv\
 	lonlat/coriolis/coriolis.gfs\
@@ -454,7 +544,124 @@ EXTRA_DIST += \
 	cosine/error-45.ref\
 	cosine/error-90.ref\
 	cosine/rossmanith45\
-	cosine/rossmanith90
+	cosine/rossmanith90\
+	harmonic/harmonic.gfs\
+	harmonic/harmonic.sh\
+	harmonic/gerris.gfv\
+	harmonic/res-7.ref\
+	harmonic/error.ref\
+	harmonic/order.ref\
+	harmonic/lonlat/lonlat.gfs\
+	harmonic/lonlat/gerris.gfv\
+	harmonic/lonlat/res-7.ref\
+	harmonic/lonlat/error.ref\
+	harmonic/lonlat/order.ref\
+	gaussian/gaussian.gfs\
+	gaussian/gaussian.sh\
+	gaussian/prof.ref\
+	gaussian/lonlat/lonlat.gfs\
+	gaussian/lonlat/prof.ref\
+	planar/planar.gfs\
+	planar/solid/solid.gfs\
+	bump/bump.gfs\
+	bump/bump.sh\
+	bump/norms.ref\
+	cylinder/cylinder.gfs\
+	cylinder/cylinder.sh\
+	cylinder/norms.ref\
+	cylinder/planar/planar.gfs\
+	cylinder/planar/norms.ref\
+	electro/electro.gfs\
+	electro/electro.sh\
+	electro/figure.gfv\
+	electro/convergence.ref
+
+TESTS = \
+	poisson.sh\
+	circle.sh\
+	dumbell.sh\
+	advection.sh\
+	shear.sh\
+	diffusion.sh\
+	conservation.sh\
+	reynolds.sh\
+	periodic.sh\
+	merging.sh\
+	source.sh\
+	axi.sh\
+	axiadvection.sh\
+	lid.sh\
+	poiseuille.sh\
+	couette.sh\
+	kinetic.sh\
+	hydrostatic.sh\
+	coriolis.sh\
+	lake.sh\
+	boundaries.sh\
+	channel.sh\
+	plate.sh\
+	hexagon.sh\
+	strouhal.sh\
+	spurious.sh\
+	capwave.sh\
+	oscillation.sh\
+	geo.sh\
+	waves.sh\
+	nz.sh\
+	parabola.sh\
+	lonlat.sh\
+	cosine.sh\
+	harmonic.sh\
+	gaussian.sh\
+	planar.sh\
+	bump.sh\
+	cylinder.sh\
+	electro.sh\
+	summary.sh
+
+TESTS_ENVIRONMENT = TESTS=" poisson circle dumbell advection shear diffusion conservation reynolds periodic merging source axi axiadvection lid poiseuille couette kinetic hydrostatic coriolis lake boundaries channel plate hexagon strouhal spurious capwave oscillation geo waves nz parabola lonlat cosine harmonic gaussian planar bump cylinder electro"
+TEST_EXTENSIONS = .sh
+summary.log:\
+	poisson.log\
+	circle.log\
+	dumbell.log\
+	advection.log\
+	shear.log\
+	diffusion.log\
+	conservation.log\
+	reynolds.log\
+	periodic.log\
+	merging.log\
+	source.log\
+	axi.log\
+	axiadvection.log\
+	lid.log\
+	poiseuille.log\
+	couette.log\
+	kinetic.log\
+	hydrostatic.log\
+	coriolis.log\
+	lake.log\
+	boundaries.log\
+	channel.log\
+	plate.log\
+	hexagon.log\
+	strouhal.log\
+	spurious.log\
+	capwave.log\
+	oscillation.log\
+	geo.log\
+	waves.log\
+	nz.log\
+	parabola.log\
+	lonlat.log\
+	cosine.log\
+	harmonic.log\
+	gaussian.log\
+	planar.log\
+	bump.log\
+	cylinder.log\
+	electro.log
 
 tests.tex: \
 	poisson/poisson.gfs\
@@ -462,6 +669,11 @@ tests.tex: \
 	poisson/rate.eps\
 	poisson/error.eps\
 	poisson/order.eps\
+	poisson/dirichlet/dirichlet.gfs\
+	poisson/dirichlet/residual.eps\
+	poisson/dirichlet/rate.eps\
+	poisson/dirichlet/error.eps\
+	poisson/dirichlet/order.eps\
 	poisson/circle/circle.gfs\
 	poisson/circle/residual.eps\
 	poisson/circle/rate.eps\
@@ -479,18 +691,18 @@ tests.tex: \
 	circle/refined/error.eps\
 	circle/refined/order.eps\
 	circle/refined/solution.eps\
-	circle/star/star.gfs\
-	circle/star/residual.eps\
-	circle/star/rate.eps\
-	circle/star/error.eps\
-	circle/star/order.eps\
-	circle/star/solution.eps\
 	circle/thin/thin.gfs\
 	circle/thin/residual.eps\
 	circle/thin/rate.eps\
 	circle/thin/error.eps\
 	circle/thin/order.eps\
 	circle/thin/solution.eps\
+	circle/star/star.gfs\
+	circle/star/residual.eps\
+	circle/star/rate.eps\
+	circle/star/error.eps\
+	circle/star/order.eps\
+	circle/star/solution.eps\
 	dumbell/dumbell.gfs\
 	advection/advection.gfs\
 	advection/error.eps\
@@ -507,6 +719,9 @@ tests.tex: \
 	shear/curvature/dt-5.eps\
 	shear/curvature/norms\
 	shear/curvature/norms.tex\
+	diffusion/diffusion.gfs\
+	diffusion/profile.eps\
+	conservation/conservation.gfs\
 	reynolds/reynolds.gfs\
 	reynolds/divmax.eps\
 	reynolds/reynolds.eps\
@@ -527,6 +742,10 @@ tests.tex: \
 	merging/tm_0_15.eps\
 	merging/tv_0_25.eps\
 	merging/tm_0_25.eps\
+	source/source.gfs\
+	source/velfield.eps\
+	source/error.eps\
+	source/localerror.eps\
 	axi/axi.gfs\
 	axi/error.eps\
 	axi/order.eps\
@@ -544,6 +763,12 @@ tests.tex: \
 	lid/xprof.eps\
 	lid/yprof.eps\
 	lid/velocity.eps\
+	lid/stretch/stretch.gfs\
+	lid/stretch/xprof\
+	lid/stretch/yprof\
+	lid/stretch/xprof.eps\
+	lid/stretch/yprof.eps\
+	lid/stretch/velocity.eps\
 	lid/explicit/explicit.gfs\
 	lid/explicit/xprof\
 	lid/explicit/yprof\
@@ -552,12 +777,19 @@ tests.tex: \
 	lid/explicit/velocity.eps\
 	poiseuille/poiseuille.gfs\
 	poiseuille/convergence.eps\
+	poiseuille/bagnold/bagnold.gfs\
+	poiseuille/bagnold/convergence.eps\
 	couette/couette.gfs\
 	couette/prof.eps\
 	kinetic/kinetic.gfs\
 	kinetic/k.eps\
 	hydrostatic/hydrostatic.gfs\
 	hydrostatic/quadratic/quadratic.gfs\
+	coriolis/coriolis.gfs\
+	coriolis/velocity.eps\
+	coriolis/error.dat\
+	lake/lake.gfs\
+	lake/lake.eps\
 	boundaries/boundaries.gfs\
 	boundaries/convergence.tex\
 	channel/channel.gfs\
@@ -588,15 +820,15 @@ tests.tex: \
 	capwave/surfer.tex\
 	capwave/prost.tex\
 	capwave/clsvof.tex\
+	capwave/gravity/gravity.gfs\
+	capwave/gravity/convergence.tex\
+	capwave/gravity/amplitude.eps\
 	capwave/air-water/air-water.gfs\
 	capwave/air-water/convergence.tex\
 	capwave/air-water/amplitude.eps\
 	capwave/density/density.gfs\
 	capwave/density/convergence.tex\
 	capwave/density/amplitude.eps\
-	capwave/gravity/gravity.gfs\
-	capwave/gravity/convergence.tex\
-	capwave/gravity/amplitude.eps\
 	oscillation/oscillation.gfs\
 	oscillation/frequency.eps\
 	oscillation/k.eps\
@@ -623,11 +855,9 @@ tests.tex: \
 	nz/k.eps\
 	parabola/parabola.gfs\
 	parabola/elevation.eps\
-	parabola/error.eps\
-	parabola/error-u.eps\
-	parabola/order.eps\
-	parabola/order-u.eps\
 	parabola/u0.eps\
+	parabola/convergence.eps\
+	parabola/convergence-u.eps\
 	lonlat/lonlat.gfs\
 	lonlat/isolines-0.3.eps\
 	lonlat/isolines-0.6.eps\
@@ -649,4 +879,37 @@ tests.tex: \
 	cosine/isolines-7-90.eps\
 	cosine/isolines-5-45.eps\
 	cosine/isolines-6-90.eps\
-	cosine/order-45.eps
+	cosine/order-45.eps\
+	harmonic/harmonic.gfs\
+	harmonic/gerris.eps\
+	harmonic/residual.eps\
+	harmonic/rate.eps\
+	harmonic/error.eps\
+	harmonic/order.eps\
+	harmonic/lonlat/lonlat.gfs\
+	harmonic/lonlat/gerris.eps\
+	harmonic/lonlat/residual.eps\
+	harmonic/lonlat/rate.eps\
+	harmonic/lonlat/error.eps\
+	harmonic/lonlat/order.eps\
+	gaussian/gaussian.gfs\
+	gaussian/profile.eps\
+	gaussian/lonlat/lonlat.gfs\
+	gaussian/lonlat/profile.eps\
+	planar/planar.gfs\
+	planar/solid/solid.gfs\
+	bump/bump.gfs\
+	bump/profile.eps\
+	bump/figure.eps\
+	bump/error.eps\
+	cylinder/cylinder.gfs\
+	cylinder/charge.eps\
+	cylinder/efield.eps\
+	cylinder/error.eps\
+	cylinder/planar/planar.gfs\
+	cylinder/planar/charge.eps\
+	cylinder/planar/efield.eps\
+	cylinder/planar/error.eps\
+	electro/electro.gfs\
+	electro/profile.eps\
+	electro/figure.eps
diff --git a/test/Makefile.in b/test/Makefile.in
index a8ac32c..d122065 100644
--- a/test/Makefile.in
+++ b/test/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11 from Makefile.am.
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -33,8 +33,9 @@ PRE_UNINSTALL = :
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.deps \
+	$(srcdir)/Makefile.in
 subdir = test
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
 	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
@@ -50,6 +51,73 @@ SOURCES =
 DIST_SOURCES =
 am__tty_colors = \
 red=; grn=; lgn=; blu=; std=
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+# Restructured Text title and section.
+am__rst_title = sed 's/.*/   &   /;h;s/./=/g;p;x;p;g;p;s/.*//'
+am__rst_section = sed 'p;s/./=/g;p;g'
+# Put stdin (possibly several lines separated by ".  ") in a box.
+am__text_box = $(AWK) '{				\
+  n = split($$0, lines, "\\.  "); max = 0;		\
+  for (i = 1; i <= n; ++i)				\
+    if (max < length(lines[i]))				\
+      max = length(lines[i]);				\
+  for (i = 0; i < max; ++i) line = line "=";		\
+  print line;						\
+  for (i = 1; i <= n; ++i) if (lines[i]) print lines[i];\
+  print line;						\
+}'
+# Solaris 10 'make', and several other traditional 'make' implementations,
+# pass "-e" to $(SHELL).  This contradicts POSIX.  Work around the problem
+# by disabling -e (using the XSI extension "set +e") if it's set.
+am__sh_e_setup = case $$- in *e*) set +e;; esac
+# To be inserted before the command running the test.  Creates the
+# directory for the log if needed.  Stores in $dir the directory
+# containing $f, in $tst the test, in $log the log, and passes
+# TESTS_ENVIRONMENT.  Save and restore TERM around use of
+# TESTS_ENVIRONMENT, in case that unsets it.
+am__check_pre = \
+$(am__sh_e_setup);					\
+$(am__vpath_adj_setup) $(am__vpath_adj)			\
+srcdir=$(srcdir); export srcdir;			\
+rm -f $@-t;						\
+trap 'st=$$?; rm -f '\''$(abs_builddir)/$@-t'\''; (exit $$st); exit $$st' \
+  1 2 13 15;						\
+am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;		\
+test "x$$am__odir" = x. || $(MKDIR_P) "$$am__odir" || exit $$?;	\
+if test -f "./$$f"; then dir=./;			\
+elif test -f "$$f"; then dir=;				\
+else dir="$(srcdir)/"; fi;				\
+tst=$$dir$$f; log='$@'; __SAVED_TERM=$$TERM;		\
+$(TESTS_ENVIRONMENT)
+RECHECK_LOGS = $(TEST_LOGS)
+AM_RECURSIVE_TARGETS = check check-html recheck recheck-html
+TEST_SUITE_LOG = test-suite.log
+TEST_SUITE_HTML = $(TEST_SUITE_LOG:.log=.html)
+am__test_logs1 = $(TESTS:=.log)
+am__test_logs2 = $(am__test_logs1:@EXEEXT at .log=.log)
+TEST_LOGS = $(am__test_logs2:.sh.log=.log)
+SH_LOG_COMPILE = $(SH_LOG_COMPILER) $(AM_SH_LOG_FLAGS) $(SH_LOG_FLAGS)
+TEST_LOGS_TMP = $(TEST_LOGS:.log=.log-t)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
@@ -76,9 +144,10 @@ ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
 F77 = @F77@
+FC = @FC@
+FCFLAGS = @FCFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
-GFS2D3_LIBS = @GFS2D3_LIBS@
 GFS2D_LIBS = @GFS2D_LIBS@
 GFS3D_LIBS = @GFS3D_LIBS@
 GFS_COMPILATION_FLAGS = @GFS_COMPILATION_FLAGS@
@@ -113,6 +182,7 @@ LT_RELEASE = @LT_RELEASE@
 LT_REVISION = @LT_REVISION@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MODULES = @MODULES@
 NM = @NM@
@@ -120,6 +190,8 @@ NMEDIT = @NMEDIT@
 NO_UNDEFINED = @NO_UNDEFINED@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
+ODE_CFLAGS = @ODE_CFLAGS@
+ODE_LIBS = @ODE_LIBS@
 OTOOL = @OTOOL@
 OTOOL64 = @OTOOL64@
 PACKAGE = @PACKAGE@
@@ -141,9 +213,11 @@ abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
 ac_ct_F77 = @ac_ct_F77@
+ac_ct_FC = @ac_ct_FC@
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
 am__quote = @am__quote@
@@ -180,9 +254,9 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
+ode = @ode@
 oldincludedir = @oldincludedir@
 pdfdir = @pdfdir@
 prefix = @prefix@
@@ -197,15 +271,22 @@ top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 use_mpicc = @use_mpicc@
+AUTOMAKE_OPTIONS = parallel-tests
+
+# new test cases need to be added to this list in the order in which
+# they appear in template.tex
 TESTDIRS = \
 	poisson \
 	circle \
 	dumbell \
 	advection \
 	shear \
+	diffusion \
+	conservation \
 	reynolds \
 	periodic \
 	merging \
+	source \
 	axi \
 	axiadvection \
 	lid \
@@ -213,6 +294,8 @@ TESTDIRS = \
 	couette \
 	kinetic \
 	hydrostatic \
+	coriolis \
+	lake \
 	boundaries \
 	channel \
 	plate \
@@ -226,23 +309,498 @@ TESTDIRS = \
 	nz \
 	parabola \
 	lonlat \
-	cosine
-
-EXTRA_DIST = \
-	template.tex \
-	tests.bib \
-	depend.py \
-	test.py \
-	check.py \
-	gfs2tex \
-	Makefile.deps
-
-TESTS = test.sh
+	cosine \
+	harmonic \
+	gaussian \
+	planar \
+	bump \
+	cylinder \
+	electro
+
+WEBROOT = /var/www/gerris
+EXTRA_DIST = template.tex tests.bib depend.py test.py check.py gfs2tex \
+	summary.sh Makefile.deps poisson/poisson.gfs \
+	poisson/poisson.sh poisson/res-7.ref poisson/error.ref \
+	poisson/order.ref poisson/dirichlet/dirichlet.gfs \
+	poisson/dirichlet/res-7.ref poisson/dirichlet/error.ref \
+	poisson/dirichlet/order.ref poisson/circle/circle.gfs \
+	poisson/circle/res-7.ref poisson/circle/error.ref \
+	poisson/circle/order.ref circle/circle.gfs circle/circle.sh \
+	circle/res-7.ref circle/error.ref circle/order.ref \
+	circle/solution.gfv circle/refined/refined.gfs \
+	circle/refined/res-7.ref circle/refined/error.ref \
+	circle/refined/order.ref circle/refined/solution.gfv \
+	circle/thin/thin.gfs circle/thin/res-7.ref \
+	circle/thin/error.ref circle/thin/order.ref \
+	circle/thin/solution.gfv circle/star/star.gfs \
+	circle/star/res-7.ref circle/star/error.ref \
+	circle/star/order.ref circle/star/solution.gfv \
+	dumbell/dumbell.gfs dumbell/dumbell.sh advection/advection.gfs \
+	advection/advection.sh advection/error.ref advection/order.ref \
+	shear/shear.gfs shear/shear.sh shear/norms.ref \
+	shear/curvature/curvature.gfs shear/curvature/../shear.sh \
+	shear/curvature/norms.ref shear/curvature/curvature.gfv \
+	diffusion/diffusion.gfs diffusion/diffusion.sh \
+	conservation/conservation.gfs reynolds/reynolds.gfs \
+	reynolds/reynolds.sh reynolds/div5.ref reynolds/div6.ref \
+	reynolds/div7.ref reynolds/reynolds.ref reynolds/box/box.gfs \
+	reynolds/box/../reynolds.sh reynolds/box/div5.ref \
+	reynolds/box/div6.ref reynolds/box/div7.ref \
+	reynolds/box/reynolds.ref periodic/periodic.gfs \
+	periodic/periodic.sh periodic/r0.ref periodic/r1.ref \
+	periodic/r2.ref merging/merging.gfs merging/merging.sh \
+	merging/levels.gfv merging/vorticity.gfv merging/sim.err.ref \
+	merging/simc.err.ref source/source.gfs source/source.sh \
+	source/source.gfv source/error.gfv source/error.ref \
+	axi/axi.gfs axi/axi.sh axi/error.ref axi/order.ref \
+	axi/isolines.gfv axi/viscous/viscous.gfs \
+	axi/viscous/viscous.sh axi/viscous/cp-12-200 \
+	axi/viscous/fadlun axi/viscous/fadlun-cp-100 \
+	axi/viscous/fadlun-cp-200 axi/viscous/Re-12 axi/viscous/zhang \
+	axi/viscous/blanco-1995 axi/viscous/masliyah-1970 \
+	axi/viscous/isolines.gfv axi/viscous/fornberg \
+	axiadvection/axiadvection.gfs axiadvection/axi.sh \
+	axiadvection/vectors.gfv axiadvection/vof.gfv \
+	axiadvection/solid/solid.gfs axiadvection/solid/axi.sh \
+	lid/lid.gfs lid/lid.sh lid/xprofile lid/yprofile \
+	lid/xprof.ghia lid/yprof.ghia lid/stretch/stretch.gfs \
+	lid/stretch/xprofile lid/stretch/yprofile \
+	lid/stretch/xprof.ghia lid/stretch/yprof.ghia \
+	lid/explicit/explicit.gfs lid/explicit/lid.sh \
+	poiseuille/poiseuille.gfs poiseuille/poiseuille.sh \
+	poiseuille/error.ref poiseuille/bagnold/bagnold.gfs \
+	poiseuille/bagnold/error.ref couette/couette.gfs \
+	couette/couette.sh couette/profile couette/prof-0.ref \
+	couette/prof-1.ref couette/prof-2.ref couette/prof-3.ref \
+	kinetic/kinetic.gfs kinetic/kinetic.gfs \
+	hydrostatic/hydrostatic.gfs \
+	hydrostatic/quadratic/quadratic.gfs \
+	hydrostatic/quadratic/quadratic.gfs coriolis/coriolis.gfs \
+	coriolis/coriolis.sh lake/lake.gfs lake/lake.gfv \
+	boundaries/boundaries.gfs boundaries/boundaries.sh \
+	boundaries/orderU.ref boundaries/orderfU.ref \
+	boundaries/orderV.ref boundaries/orderfV.ref \
+	channel/channel.gfs channel/channel.sh channel/orderU.ref \
+	channel/orderfU.ref channel/orderV.ref channel/orderfV.ref \
+	plate/plate.gfs plate/plate.sh hexagon/hexagon.gfs \
+	hexagon/hexagon.sh hexagon/hexagon.gts hexagon/hexagon.gfv \
+	strouhal/strouhal.gfs strouhal/strouhal.sh \
+	strouhal/strouhal.gfv strouhal/strouhal.ref \
+	strouhal/moving.ref strouhal/static.ref spurious/spurious.gfs \
+	spurious/spurious.sh spurious/convergence.ref \
+	spurious/kconvergence.ref spurious/axi/axi.gfs \
+	spurious/axi/convergence.ref spurious/axi/kconvergence.ref \
+	capwave/capwave.gfs capwave/capwave.sh capwave/convergence.ref \
+	capwave/prosperetti capwave/markers.tex capwave/surfer.tex \
+	capwave/prost.tex capwave/clsvof.tex \
+	capwave/gravity/gravity.gfs capwave/gravity/convergence.ref \
+	capwave/gravity/prosperetti capwave/air-water/air-water.gfs \
+	capwave/air-water/convergence.ref \
+	capwave/air-water/prosperetti capwave/density/density.gfs \
+	capwave/density/convergence.ref capwave/density/prosperetti \
+	oscillation/oscillation.gfs oscillation/oscillation.sh \
+	oscillation/fit.ref geo/geo.gfs geo/geo.sh geo/geo.gfv \
+	geo/e.ref geo/beta/beta.gfs geo/beta/beta.sh geo/beta/c \
+	geo/beta/dlw geo/beta/lls geo/beta/pzm geo/beta/llw \
+	geo/beta/energy.ref geo/beta/energy-nonlinear.ref \
+	waves/waves.gfs waves/waves.sh waves/solution.gfv \
+	waves/correlation.ref waves/adaptive/adaptive.gfs \
+	waves/adaptive/solution.gfv waves/adaptive/correlation.ref \
+	nz/nz.gfs nz/nz.gfs nz/bath.gts parabola/parabola.gfs \
+	parabola/parabola.sh parabola/error.ref lonlat/lonlat.gfs \
+	lonlat/isolines.gfv lonlat/coriolis/coriolis.gfs \
+	lonlat/coriolis/isolines.gfv cosine/cosine.gfs \
+	cosine/cosine.sh cosine/isolines.gfv cosine/reference.gfv \
+	cosine/zero.gfv cosine/error-45.ref cosine/error-90.ref \
+	cosine/rossmanith45 cosine/rossmanith90 harmonic/harmonic.gfs \
+	harmonic/harmonic.sh harmonic/gerris.gfv harmonic/res-7.ref \
+	harmonic/error.ref harmonic/order.ref \
+	harmonic/lonlat/lonlat.gfs harmonic/lonlat/gerris.gfv \
+	harmonic/lonlat/res-7.ref harmonic/lonlat/error.ref \
+	harmonic/lonlat/order.ref gaussian/gaussian.gfs \
+	gaussian/gaussian.sh gaussian/prof.ref \
+	gaussian/lonlat/lonlat.gfs gaussian/lonlat/prof.ref \
+	planar/planar.gfs planar/solid/solid.gfs bump/bump.gfs \
+	bump/bump.sh bump/norms.ref cylinder/cylinder.gfs \
+	cylinder/cylinder.sh cylinder/norms.ref \
+	cylinder/planar/planar.gfs cylinder/planar/norms.ref \
+	electro/electro.gfs electro/electro.sh electro/figure.gfv \
+	electro/convergence.ref
 DOC = tests
+
+# we need this for gfs.sty
+TEXINPUTS = .:$(top_srcdir)/doc/examples:
+DOCS = \
+	poisson/poisson.gfs.html\
+	poisson/dirichlet/dirichlet.gfs.html\
+	poisson/circle/circle.gfs.html\
+	circle/circle.gfs.html\
+	circle/refined/refined.gfs.html\
+	circle/thin/thin.gfs.html\
+	circle/star/star.gfs.html\
+	dumbell/dumbell.gfs.html\
+	advection/advection.gfs.html\
+	shear/shear.gfs.html\
+	shear/curvature/curvature.gfs.html\
+	diffusion/diffusion.gfs.html\
+	conservation/conservation.gfs.html\
+	reynolds/reynolds.gfs.html\
+	reynolds/box/box.gfs.html\
+	periodic/periodic.gfs.html\
+	merging/merging.gfs.html\
+	source/source.gfs.html\
+	axi/axi.gfs.html\
+	axi/viscous/viscous.gfs.html\
+	axiadvection/axiadvection.gfs.html\
+	axiadvection/solid/solid.gfs.html\
+	lid/lid.gfs.html\
+	lid/stretch/stretch.gfs.html\
+	lid/explicit/explicit.gfs.html\
+	poiseuille/poiseuille.gfs.html\
+	poiseuille/bagnold/bagnold.gfs.html\
+	couette/couette.gfs.html\
+	kinetic/kinetic.gfs.html\
+	hydrostatic/hydrostatic.gfs.html\
+	hydrostatic/quadratic/quadratic.gfs.html\
+	coriolis/coriolis.gfs.html\
+	lake/lake.gfs.html\
+	boundaries/boundaries.gfs.html\
+	channel/channel.gfs.html\
+	plate/plate.gfs.html\
+	hexagon/hexagon.gfs.html\
+	strouhal/strouhal.gfs.html\
+	spurious/spurious.gfs.html\
+	spurious/axi/axi.gfs.html\
+	capwave/capwave.gfs.html\
+	capwave/gravity/gravity.gfs.html\
+	capwave/air-water/air-water.gfs.html\
+	capwave/density/density.gfs.html\
+	oscillation/oscillation.gfs.html\
+	geo/geo.gfs.html\
+	geo/beta/beta.gfs.html\
+	waves/waves.gfs.html\
+	waves/adaptive/adaptive.gfs.html\
+	nz/nz.gfs.html\
+	parabola/parabola.gfs.html\
+	lonlat/lonlat.gfs.html\
+	lonlat/coriolis/coriolis.gfs.html\
+	cosine/cosine.gfs.html\
+	harmonic/harmonic.gfs.html\
+	harmonic/lonlat/lonlat.gfs.html\
+	gaussian/gaussian.gfs.html\
+	gaussian/lonlat/lonlat.gfs.html\
+	planar/planar.gfs.html\
+	planar/solid/solid.gfs.html\
+	bump/bump.gfs.html\
+	cylinder/cylinder.gfs.html\
+	cylinder/planar/planar.gfs.html\
+	electro/electro.gfs.html\
+	poisson/poisson.gfs\
+	poisson/poisson.sh\
+	poisson/res-7.ref\
+	poisson/error.ref\
+	poisson/order.ref\
+	poisson/dirichlet/dirichlet.gfs\
+	poisson/dirichlet/res-7.ref\
+	poisson/dirichlet/error.ref\
+	poisson/dirichlet/order.ref\
+	poisson/circle/circle.gfs\
+	poisson/circle/res-7.ref\
+	poisson/circle/error.ref\
+	poisson/circle/order.ref\
+	circle/circle.gfs\
+	circle/circle.sh\
+	circle/res-7.ref\
+	circle/error.ref\
+	circle/order.ref\
+	circle/solution.gfv\
+	circle/refined/refined.gfs\
+	circle/refined/res-7.ref\
+	circle/refined/error.ref\
+	circle/refined/order.ref\
+	circle/refined/solution.gfv\
+	circle/thin/thin.gfs\
+	circle/thin/res-7.ref\
+	circle/thin/error.ref\
+	circle/thin/order.ref\
+	circle/thin/solution.gfv\
+	circle/star/star.gfs\
+	circle/star/res-7.ref\
+	circle/star/error.ref\
+	circle/star/order.ref\
+	circle/star/solution.gfv\
+	dumbell/dumbell.gfs\
+	dumbell/dumbell.sh\
+	advection/advection.gfs\
+	advection/advection.sh\
+	advection/error.ref\
+	advection/order.ref\
+	shear/shear.gfs\
+	shear/shear.sh\
+	shear/norms.ref\
+	shear/curvature/curvature.gfs\
+	shear/curvature/../shear.sh\
+	shear/curvature/norms.ref\
+	shear/curvature/curvature.gfv\
+	diffusion/diffusion.gfs\
+	diffusion/diffusion.sh\
+	conservation/conservation.gfs\
+	reynolds/reynolds.gfs\
+	reynolds/reynolds.sh\
+	reynolds/div5.ref\
+	reynolds/div6.ref\
+	reynolds/div7.ref\
+	reynolds/reynolds.ref\
+	reynolds/box/box.gfs\
+	reynolds/box/../reynolds.sh\
+	reynolds/box/div5.ref\
+	reynolds/box/div6.ref\
+	reynolds/box/div7.ref\
+	reynolds/box/reynolds.ref\
+	periodic/periodic.gfs\
+	periodic/periodic.sh\
+	periodic/r0.ref\
+	periodic/r1.ref\
+	periodic/r2.ref\
+	merging/merging.gfs\
+	merging/merging.sh\
+	merging/levels.gfv\
+	merging/vorticity.gfv\
+	merging/sim.err.ref\
+	merging/simc.err.ref\
+	source/source.gfs\
+	source/source.sh\
+	source/source.gfv\
+	source/error.gfv\
+	source/error.ref\
+	axi/axi.gfs\
+	axi/axi.sh\
+	axi/error.ref\
+	axi/order.ref\
+	axi/isolines.gfv\
+	axi/viscous/viscous.gfs\
+	axi/viscous/viscous.sh\
+	axi/viscous/cp-12-200\
+	axi/viscous/fadlun\
+	axi/viscous/fadlun-cp-100\
+	axi/viscous/fadlun-cp-200\
+	axi/viscous/Re-12\
+	axi/viscous/zhang\
+	axi/viscous/blanco-1995\
+	axi/viscous/masliyah-1970\
+	axi/viscous/isolines.gfv\
+	axi/viscous/fornberg\
+	axiadvection/axiadvection.gfs\
+	axiadvection/axi.sh\
+	axiadvection/vectors.gfv\
+	axiadvection/vof.gfv\
+	axiadvection/solid/solid.gfs\
+	axiadvection/solid/axi.sh\
+	lid/lid.gfs\
+	lid/lid.sh\
+	lid/xprofile\
+	lid/yprofile\
+	lid/xprof.ghia\
+	lid/yprof.ghia\
+	lid/stretch/stretch.gfs\
+	lid/stretch/xprofile\
+	lid/stretch/yprofile\
+	lid/stretch/xprof.ghia\
+	lid/stretch/yprof.ghia\
+	lid/explicit/explicit.gfs\
+	lid/explicit/lid.sh\
+	poiseuille/poiseuille.gfs\
+	poiseuille/poiseuille.sh\
+	poiseuille/error.ref\
+	poiseuille/bagnold/bagnold.gfs\
+	poiseuille/bagnold/error.ref\
+	couette/couette.gfs\
+	couette/couette.sh\
+	couette/profile\
+	couette/prof-0.ref\
+	couette/prof-1.ref\
+	couette/prof-2.ref\
+	couette/prof-3.ref\
+	kinetic/kinetic.gfs\
+	kinetic/kinetic.gfs\
+	hydrostatic/hydrostatic.gfs\
+	hydrostatic/quadratic/quadratic.gfs\
+	hydrostatic/quadratic/quadratic.gfs\
+	coriolis/coriolis.gfs\
+	coriolis/coriolis.sh\
+	lake/lake.gfs\
+	lake/lake.gfv\
+	boundaries/boundaries.gfs\
+	boundaries/boundaries.sh\
+	boundaries/orderU.ref\
+	boundaries/orderfU.ref\
+	boundaries/orderV.ref\
+	boundaries/orderfV.ref\
+	channel/channel.gfs\
+	channel/channel.sh\
+	channel/orderU.ref\
+	channel/orderfU.ref\
+	channel/orderV.ref\
+	channel/orderfV.ref\
+	plate/plate.gfs\
+	plate/plate.sh\
+	hexagon/hexagon.gfs\
+	hexagon/hexagon.sh\
+	hexagon/hexagon.gts\
+	hexagon/hexagon.gfv\
+	strouhal/strouhal.gfs\
+	strouhal/strouhal.sh\
+	strouhal/strouhal.gfv\
+	strouhal/strouhal.ref\
+	strouhal/moving.ref\
+	strouhal/static.ref\
+	spurious/spurious.gfs\
+	spurious/spurious.sh\
+	spurious/convergence.ref\
+	spurious/kconvergence.ref\
+	spurious/axi/axi.gfs\
+	spurious/axi/convergence.ref\
+	spurious/axi/kconvergence.ref\
+	capwave/capwave.gfs\
+	capwave/capwave.sh\
+	capwave/convergence.ref\
+	capwave/prosperetti\
+	capwave/markers.tex\
+	capwave/surfer.tex\
+	capwave/prost.tex\
+	capwave/clsvof.tex\
+	capwave/gravity/gravity.gfs\
+	capwave/gravity/convergence.ref\
+	capwave/gravity/prosperetti\
+	capwave/air-water/air-water.gfs\
+	capwave/air-water/convergence.ref\
+	capwave/air-water/prosperetti\
+	capwave/density/density.gfs\
+	capwave/density/convergence.ref\
+	capwave/density/prosperetti\
+	oscillation/oscillation.gfs\
+	oscillation/oscillation.sh\
+	oscillation/fit.ref\
+	geo/geo.gfs\
+	geo/geo.sh\
+	geo/geo.gfv\
+	geo/e.ref\
+	geo/beta/beta.gfs\
+	geo/beta/beta.sh\
+	geo/beta/c\
+	geo/beta/dlw\
+	geo/beta/lls\
+	geo/beta/pzm\
+	geo/beta/llw\
+	geo/beta/energy.ref\
+	geo/beta/energy-nonlinear.ref\
+	waves/waves.gfs\
+	waves/waves.sh\
+	waves/solution.gfv\
+	waves/correlation.ref\
+	waves/adaptive/adaptive.gfs\
+	waves/adaptive/solution.gfv\
+	waves/adaptive/correlation.ref\
+	nz/nz.gfs\
+	nz/nz.gfs\
+	nz/bath.gts\
+	parabola/parabola.gfs\
+	parabola/parabola.sh\
+	parabola/error.ref\
+	lonlat/lonlat.gfs\
+	lonlat/isolines.gfv\
+	lonlat/coriolis/coriolis.gfs\
+	lonlat/coriolis/isolines.gfv\
+	cosine/cosine.gfs\
+	cosine/cosine.sh\
+	cosine/isolines.gfv\
+	cosine/reference.gfv\
+	cosine/zero.gfv\
+	cosine/error-45.ref\
+	cosine/error-90.ref\
+	cosine/rossmanith45\
+	cosine/rossmanith90\
+	harmonic/harmonic.gfs\
+	harmonic/harmonic.sh\
+	harmonic/gerris.gfv\
+	harmonic/res-7.ref\
+	harmonic/error.ref\
+	harmonic/order.ref\
+	harmonic/lonlat/lonlat.gfs\
+	harmonic/lonlat/gerris.gfv\
+	harmonic/lonlat/res-7.ref\
+	harmonic/lonlat/error.ref\
+	harmonic/lonlat/order.ref\
+	gaussian/gaussian.gfs\
+	gaussian/gaussian.sh\
+	gaussian/prof.ref\
+	gaussian/lonlat/lonlat.gfs\
+	gaussian/lonlat/prof.ref\
+	planar/planar.gfs\
+	planar/solid/solid.gfs\
+	bump/bump.gfs\
+	bump/bump.sh\
+	bump/norms.ref\
+	cylinder/cylinder.gfs\
+	cylinder/cylinder.sh\
+	cylinder/norms.ref\
+	cylinder/planar/planar.gfs\
+	cylinder/planar/norms.ref\
+	electro/electro.gfs\
+	electro/electro.sh\
+	electro/figure.gfv\
+	electro/convergence.ref
+
+TESTS = \
+	poisson.sh\
+	circle.sh\
+	dumbell.sh\
+	advection.sh\
+	shear.sh\
+	diffusion.sh\
+	conservation.sh\
+	reynolds.sh\
+	periodic.sh\
+	merging.sh\
+	source.sh\
+	axi.sh\
+	axiadvection.sh\
+	lid.sh\
+	poiseuille.sh\
+	couette.sh\
+	kinetic.sh\
+	hydrostatic.sh\
+	coriolis.sh\
+	lake.sh\
+	boundaries.sh\
+	channel.sh\
+	plate.sh\
+	hexagon.sh\
+	strouhal.sh\
+	spurious.sh\
+	capwave.sh\
+	oscillation.sh\
+	geo.sh\
+	waves.sh\
+	nz.sh\
+	parabola.sh\
+	lonlat.sh\
+	cosine.sh\
+	harmonic.sh\
+	gaussian.sh\
+	planar.sh\
+	bump.sh\
+	cylinder.sh\
+	electro.sh\
+	summary.sh
+
+TESTS_ENVIRONMENT = TESTS=" poisson circle dumbell advection shear diffusion conservation reynolds periodic merging source axi axiadvection lid poiseuille couette kinetic hydrostatic coriolis lake boundaries channel plate hexagon strouhal spurious capwave oscillation geo waves nz parabola lonlat cosine harmonic gaussian planar bump cylinder electro"
+TEST_EXTENSIONS = .sh
 all: all-am
 
 .SUFFIXES:
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+.SUFFIXES: .html .log .sh .sh$(EXEEXT)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/Makefile.deps $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
@@ -285,97 +843,162 @@ ctags: CTAGS
 CTAGS:
 
 
-check-TESTS: $(TESTS)
-	@failed=0; all=0; xfail=0; xpass=0; skip=0; \
-	srcdir=$(srcdir); export srcdir; \
-	list=' $(TESTS) '; \
-	$(am__tty_colors); \
-	if test -n "$$list"; then \
-	  for tst in $$list; do \
-	    if test -f ./$$tst; then dir=./; \
-	    elif test -f $$tst; then dir=; \
-	    else dir="$(srcdir)/"; fi; \
-	    if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
-	      all=`expr $$all + 1`; \
-	      case " $(XFAIL_TESTS) " in \
-	      *[\ \	]$$tst[\ \	]*) \
-		xpass=`expr $$xpass + 1`; \
-		failed=`expr $$failed + 1`; \
-		col=$$red; res=XPASS; \
-	      ;; \
-	      *) \
-		col=$$grn; res=PASS; \
-	      ;; \
-	      esac; \
-	    elif test $$? -ne 77; then \
-	      all=`expr $$all + 1`; \
-	      case " $(XFAIL_TESTS) " in \
-	      *[\ \	]$$tst[\ \	]*) \
-		xfail=`expr $$xfail + 1`; \
-		col=$$lgn; res=XFAIL; \
-	      ;; \
-	      *) \
-		failed=`expr $$failed + 1`; \
-		col=$$red; res=FAIL; \
-	      ;; \
-	      esac; \
-	    else \
-	      skip=`expr $$skip + 1`; \
-	      col=$$blu; res=SKIP; \
-	    fi; \
-	    echo "$${col}$$res$${std}: $$tst"; \
-	  done; \
-	  if test "$$all" -eq 1; then \
-	    tests="test"; \
-	    All=""; \
-	  else \
-	    tests="tests"; \
-	    All="All "; \
-	  fi; \
-	  if test "$$failed" -eq 0; then \
-	    if test "$$xfail" -eq 0; then \
-	      banner="$$All$$all $$tests passed"; \
-	    else \
-	      if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \
-	      banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \
-	    fi; \
-	  else \
-	    if test "$$xpass" -eq 0; then \
-	      banner="$$failed of $$all $$tests failed"; \
-	    else \
-	      if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \
-	      banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \
-	    fi; \
-	  fi; \
-	  dashes="$$banner"; \
-	  skipped=""; \
-	  if test "$$skip" -ne 0; then \
-	    if test "$$skip" -eq 1; then \
-	      skipped="($$skip test was not run)"; \
-	    else \
-	      skipped="($$skip tests were not run)"; \
-	    fi; \
-	    test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \
-	      dashes="$$skipped"; \
-	  fi; \
-	  report=""; \
-	  if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
-	    report="Please report to $(PACKAGE_BUGREPORT)"; \
-	    test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \
-	      dashes="$$report"; \
-	  fi; \
-	  dashes=`echo "$$dashes" | sed s/./=/g`; \
-	  if test "$$failed" -eq 0; then \
-	    echo "$$grn$$dashes"; \
-	  else \
-	    echo "$$red$$dashes"; \
-	  fi; \
-	  echo "$$banner"; \
-	  test -z "$$skipped" || echo "$$skipped"; \
-	  test -z "$$report" || echo "$$report"; \
-	  echo "$$dashes$$std"; \
-	  test "$$failed" -eq 0; \
-	else :; fi
+# To be appended to the command running the test.  Handle the stdout
+# and stderr redirection, and catch the exit status.
+am__check_post =					\
+>$@-t 2>&1;						\
+estatus=$$?;						\
+if test -n '$(DISABLE_HARD_ERRORS)'			\
+   && test $$estatus -eq 99; then			\
+  estatus=1;						\
+fi;							\
+TERM=$$__SAVED_TERM; export TERM;			\
+$(am__tty_colors);					\
+xfailed=PASS;						\
+case " $(XFAIL_TESTS) " in				\
+  *[\ \	]$$f[\ \	]* | *[\ \	]$$dir$$f[\ \	]*) \
+    xfailed=XFAIL;;					\
+esac;							\
+case $$estatus:$$xfailed in				\
+    0:XFAIL) col=$$red; res=XPASS;;			\
+    0:*)     col=$$grn; res=PASS ;;			\
+    77:*)    col=$$blu; res=SKIP ;;			\
+    99:*)    col=$$red; res=FAIL ;;			\
+    *:XFAIL) col=$$lgn; res=XFAIL;;			\
+    *:*)     col=$$red; res=FAIL ;;			\
+esac;							\
+echo "$${col}$$res$${std}: $$f";			\
+echo "$$res: $$f (exit: $$estatus)" |			\
+  $(am__rst_section) >$@;				\
+cat $@-t >>$@;						\
+rm -f $@-t
+
+$(TEST_SUITE_LOG): $(TEST_LOGS)
+	@$(am__sh_e_setup);						\
+	list='$(TEST_LOGS)';						\
+	results=`for f in $$list; do					\
+		   read line < $$f && echo "$$line" || echo FAIL;	\
+		 done`;							\
+	all=`echo "$$results" | sed '/^$$/d' | wc -l | sed -e 's/^[	 ]*//'`; \
+	fail=`echo "$$results" | grep -c '^FAIL'`;			\
+	pass=`echo "$$results" | grep -c '^PASS'`;			\
+	skip=`echo "$$results" | grep -c '^SKIP'`;			\
+	xfail=`echo "$$results" | grep -c '^XFAIL'`;			\
+	xpass=`echo "$$results" | grep -c '^XPASS'`;			\
+	failures=`expr $$fail + $$xpass`;				\
+	all=`expr $$all - $$skip`;					\
+	if test "$$all" -eq 1; then tests=test; All=;			\
+	else tests=tests; All="All "; fi;				\
+	case fail=$$fail:xpass=$$xpass:xfail=$$xfail in			\
+	  fail=0:xpass=0:xfail=0)					\
+	    msg="$$All$$all $$tests passed.  ";				\
+	    exit=true;;							\
+	  fail=0:xpass=0:xfail=*)					\
+	    msg="$$All$$all $$tests behaved as expected";		\
+	    if test "$$xfail" -eq 1; then xfailures=failure;		\
+	    else xfailures=failures; fi;				\
+	    msg="$$msg ($$xfail expected $$xfailures).  ";		\
+	    exit=true;;							\
+	  fail=*:xpass=0:xfail=*)					\
+	    msg="$$fail of $$all $$tests failed.  ";			\
+	    exit=false;;						\
+	  fail=*:xpass=*:xfail=*)					\
+	    msg="$$failures of $$all $$tests did not behave as expected"; \
+	    if test "$$xpass" -eq 1; then xpasses=pass;			\
+	    else xpasses=passes; fi;					\
+	    msg="$$msg ($$xpass unexpected $$xpasses).  ";		\
+	    exit=false;;						\
+	  *)								\
+	    echo >&2 "incorrect case"; exit 4;;				\
+	esac;								\
+	if test "$$skip" -ne 0; then					\
+	  if test "$$skip" -eq 1; then					\
+	    msg="$$msg($$skip test was not run).  ";			\
+	  else								\
+	    msg="$$msg($$skip tests were not run).  ";			\
+	  fi;								\
+	fi;								\
+	{								\
+	  echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" |	\
+	    $(am__rst_title);						\
+	  echo "$$msg";							\
+	  echo;								\
+	  echo ".. contents:: :depth: 2";				\
+	  echo;								\
+	  for f in $$list; do						\
+	    read line < $$f;						\
+	    case $$line in						\
+	      PASS:*|XFAIL:*);;						\
+	      *) echo; cat $$f;;					\
+	    esac;							\
+	  done;								\
+	} >$(TEST_SUITE_LOG).tmp;					\
+	mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG);			\
+	if test "$$failures" -ne 0; then				\
+	  msg="$${msg}See $(subdir)/$(TEST_SUITE_LOG).  ";		\
+	  if test -n "$(PACKAGE_BUGREPORT)"; then			\
+	    msg="$${msg}Please report to $(PACKAGE_BUGREPORT).  ";	\
+	  fi;								\
+	fi;								\
+	test x"$$VERBOSE" = x || $$exit || cat $(TEST_SUITE_LOG);	\
+	$(am__tty_colors);						\
+	if $$exit; then							\
+	  echo $(ECHO_N) "$$grn$(ECHO_C)";				\
+	 else								\
+	  echo $(ECHO_N) "$$red$(ECHO_C)";				\
+	fi;								\
+	echo "$$msg" | $(am__text_box);					\
+	echo $(ECHO_N) "$$std$(ECHO_C)";				\
+	$$exit
+
+# Run all the tests.
+check-TESTS:
+	@list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list
+	@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+	@list='$(TEST_LOGS)';						\
+	list=`for f in $$list; do					\
+	  test .log = $$f || echo $$f;					\
+	done | tr '\012\015' '  '`;					\
+	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$list"
+
+.log.html:
+	@list='$(RST2HTML) $$RST2HTML rst2html rst2html.py';		\
+	for r2h in $$list; do						\
+	  if ($$r2h --version) >/dev/null 2>&1; then			\
+	    R2H=$$r2h;							\
+	  fi;								\
+	done;								\
+	if test -z "$$R2H"; then					\
+	  echo >&2 "cannot find rst2html, cannot create $@";		\
+	  exit 2;							\
+	fi;								\
+	$$R2H $< >$@.tmp
+	@mv $@.tmp $@
+
+# Be sure to run check first, and then to convert the result.
+# Beware of concurrent executions.  Run "check" not "check-TESTS", as
+# check-SCRIPTS and other dependencies are rebuilt by the former only.
+# And expect check to fail.
+check-html:
+	@if $(MAKE) $(AM_MAKEFLAGS) check; then			\
+	  rv=0; else rv=$$?;					\
+	fi;							\
+	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_HTML) || exit 4;	\
+	exit $$rv
+recheck recheck-html:
+	@target=`echo $@ | sed 's,^re,,'`;				\
+	list='$(TEST_LOGS)';						\
+	list=`for f in $$list; do					\
+	        test -f $$f || continue;				\
+	        if read line < $$f; then				\
+	          case $$line in FAIL*|XPASS*) echo $$f;; esac;		\
+	        else echo $$f; fi;					\
+	      done | tr '\012\015' '  '`;				\
+	$(MAKE) $(AM_MAKEFLAGS) $$target AM_MAKEFLAGS='$(AM_MAKEFLAGS) TEST_LOGS="'"$$list"'"'
+.sh.log:
+	@p='$<'; $(am__check_pre) $(SH_LOG_COMPILE) "$$tst" $(am__check_post)
+ at am__EXEEXT_TRUE@.sh$(EXEEXT).log:
+ at am__EXEEXT_TRUE@	@p='$<'; $(am__check_pre) $(SH_LOG_COMPILE) "$$tst" $(am__check_post)
 
 distdir: $(DISTFILES)
 	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
@@ -427,6 +1050,10 @@ install-strip:
 	  `test -z '$(STRIP)' || \
 	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
 mostlyclean-generic:
+	-test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
+	-test -z "$(TEST_LOGS_TMP)" || rm -f $(TEST_LOGS_TMP)
+	-test -z "$(TEST_SUITE_HTML)" || rm -f $(TEST_SUITE_HTML)
+	-test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
@@ -501,31 +1128,30 @@ ps-am:
 
 uninstall-am:
 
-.MAKE: check-am install-am install-strip
+.MAKE: check-am check-html install-am install-strip recheck \
+	recheck-html
 
-.PHONY: all all-am check check-TESTS check-am clean clean-generic \
-	clean-libtool distclean distclean-generic distclean-libtool \
-	distdir dvi dvi-am html html-am info info-am install \
-	install-am install-data install-data-am install-dvi \
+.PHONY: all all-am check check-TESTS check-am check-html clean \
+	clean-generic clean-libtool distclean distclean-generic \
+	distclean-libtool distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
 	install-dvi-am install-exec install-exec-am install-html \
 	install-html-am install-info install-info-am install-man \
 	install-pdf install-pdf-am install-ps install-ps-am \
 	install-strip installcheck installcheck-am installdirs \
 	maintainer-clean maintainer-clean-generic mostlyclean \
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	uninstall uninstall-am
+	recheck recheck-html uninstall uninstall-am
 
 
-test.sh: $(TESTDIRS)
-	@echo "python -u test.py $(TESTDIRS)" > test.sh
-	@chmod +x test.sh
-
 clean-generic:
-	$(RM) *.dvi *.aux *.log *.toc *.out tests.tex *.pyc test.sh *.bbl *.blg Makefile.deps
+	mv -f summary.sh summary.sh.bak
+	$(RM) *.dvi *.aux *.log *.toc *.out tests.tex *.pyc *.bbl *.blg $(TESTS) Makefile.deps
+	mv -f summary.sh.bak summary.sh
 
 tests: tests.dvi
-	hevea -fix $(DOC).tex
-	imagen -res 500 -extra "pnmscale 0.24" $(DOC)
+	TEXINPUTS=$(TEXINPUTS) hevea -fix -I $(top_srcdir)/doc/examples $(DOC).tex
+	TEXINPUTS=$(TEXINPUTS) imagen -res 500 -extra "pnmscale 0.24" $(DOC)
 	hacha $(DOC).html
 	rm -f $(DOC).html
 	mv -f $(DOC)[0-9][0-9][0-9].png $(DOC)
@@ -534,14 +1160,14 @@ tests: tests.dvi
 	sh ../doc/share/fixnav.sh $(DOC)
 	cp -f ../doc/share/contents.png ../doc/share/next.png ../doc/share/prev.png $(DOC)
 	rm -f *_motif.gif $(DOC).h{tml,aux,ind,toc} $(DOC).image.tex $(DOC).css
-	sh ../doc/examples/crossref.sh --url=http://gfs.sourceforge.net/tests/tests $(TESTDIRS)
+	sh ../doc/examples/crossref.sh --url=http://gerris.dalembert.upmc.fr/gerris/tests/tests $(TESTDIRS)
 	mv references tests
 
 tests.dvi: tests.tex tests.bib
-	latex -interaction=nonstopmode tests.tex > /dev/null 2>&1
+	- TEXINPUTS=$(TEXINPUTS) latex -interaction=nonstopmode tests.tex > /dev/null 2>&1
 	bibtex tests
-	latex -interaction=nonstopmode tests.tex > /dev/null 2>&1
-	latex -interaction=nonstopmode tests.tex
+	- TEXINPUTS=$(TEXINPUTS) latex -interaction=nonstopmode tests.tex > /dev/null 2>&1
+	TEXINPUTS=$(TEXINPUTS) latex -interaction=nonstopmode tests.tex
 
 tests.pdf: tests.dvi
 	dvips -Ppdf -G0 tests.dvi -o tests.ps
@@ -553,13 +1179,308 @@ tests.tex: template.tex Makefile.deps
 	python gfs2tex $(TESTDIRS)
 	cp -f template.tex tests.tex
 
-Makefile.deps: Makefile depend.py
+Makefile.deps: depend.py
 	python depend.py $(TESTDIRS) > Makefile.deps
+summary.log:\
+	poisson.log\
+	circle.log\
+	dumbell.log\
+	advection.log\
+	shear.log\
+	diffusion.log\
+	conservation.log\
+	reynolds.log\
+	periodic.log\
+	merging.log\
+	source.log\
+	axi.log\
+	axiadvection.log\
+	lid.log\
+	poiseuille.log\
+	couette.log\
+	kinetic.log\
+	hydrostatic.log\
+	coriolis.log\
+	lake.log\
+	boundaries.log\
+	channel.log\
+	plate.log\
+	hexagon.log\
+	strouhal.log\
+	spurious.log\
+	capwave.log\
+	oscillation.log\
+	geo.log\
+	waves.log\
+	nz.log\
+	parabola.log\
+	lonlat.log\
+	cosine.log\
+	harmonic.log\
+	gaussian.log\
+	planar.log\
+	bump.log\
+	cylinder.log\
+	electro.log
 
--include Makefile.deps
+tests.tex: \
+	poisson/poisson.gfs\
+	poisson/residual.eps\
+	poisson/rate.eps\
+	poisson/error.eps\
+	poisson/order.eps\
+	poisson/dirichlet/dirichlet.gfs\
+	poisson/dirichlet/residual.eps\
+	poisson/dirichlet/rate.eps\
+	poisson/dirichlet/error.eps\
+	poisson/dirichlet/order.eps\
+	poisson/circle/circle.gfs\
+	poisson/circle/residual.eps\
+	poisson/circle/rate.eps\
+	poisson/circle/error.eps\
+	poisson/circle/order.eps\
+	circle/circle.gfs\
+	circle/residual.eps\
+	circle/rate.eps\
+	circle/error.eps\
+	circle/order.eps\
+	circle/solution.eps\
+	circle/refined/refined.gfs\
+	circle/refined/residual.eps\
+	circle/refined/rate.eps\
+	circle/refined/error.eps\
+	circle/refined/order.eps\
+	circle/refined/solution.eps\
+	circle/thin/thin.gfs\
+	circle/thin/residual.eps\
+	circle/thin/rate.eps\
+	circle/thin/error.eps\
+	circle/thin/order.eps\
+	circle/thin/solution.eps\
+	circle/star/star.gfs\
+	circle/star/residual.eps\
+	circle/star/rate.eps\
+	circle/star/error.eps\
+	circle/star/order.eps\
+	circle/star/solution.eps\
+	dumbell/dumbell.gfs\
+	advection/advection.gfs\
+	advection/error.eps\
+	advection/order.eps\
+	shear/shear.gfs\
+	shear/t-0.eps\
+	shear/t-2.5.eps\
+	shear/t-5.eps\
+	shear/dt-5.eps\
+	shear/norms\
+	shear/norms.tex\
+	shear/curvature/curvature.gfs\
+	shear/curvature/t-2.5.eps\
+	shear/curvature/dt-5.eps\
+	shear/curvature/norms\
+	shear/curvature/norms.tex\
+	diffusion/diffusion.gfs\
+	diffusion/profile.eps\
+	conservation/conservation.gfs\
+	reynolds/reynolds.gfs\
+	reynolds/divmax.eps\
+	reynolds/reynolds.eps\
+	reynolds/divL2.eps\
+	reynolds/kinetic.eps\
+	reynolds/box/box.gfs\
+	reynolds/box/divmax.eps\
+	reynolds/box/reynolds.eps\
+	reynolds/box/divL2.eps\
+	reynolds/box/kinetic.eps\
+	periodic/periodic.gfs\
+	periodic/minion1.tex\
+	merging/merging.gfs\
+	merging/convergence.tex\
+	merging/tv_0_05.eps\
+	merging/tm_0_05.eps\
+	merging/tv_0_15.eps\
+	merging/tm_0_15.eps\
+	merging/tv_0_25.eps\
+	merging/tm_0_25.eps\
+	source/source.gfs\
+	source/velfield.eps\
+	source/error.eps\
+	source/localerror.eps\
+	axi/axi.gfs\
+	axi/error.eps\
+	axi/order.eps\
+	axi/isolines.eps\
+	axi/viscous/viscous.gfs\
+	axi/viscous/length.eps\
+	axi/viscous/Cp.eps\
+	axi/viscous/isolines.eps\
+	axiadvection/axiadvection.gfs\
+	axiadvection/vof.eps\
+	axiadvection/solid/solid.gfs\
+	lid/lid.gfs\
+	lid/xprof\
+	lid/yprof\
+	lid/xprof.eps\
+	lid/yprof.eps\
+	lid/velocity.eps\
+	lid/stretch/stretch.gfs\
+	lid/stretch/xprof\
+	lid/stretch/yprof\
+	lid/stretch/xprof.eps\
+	lid/stretch/yprof.eps\
+	lid/stretch/velocity.eps\
+	lid/explicit/explicit.gfs\
+	lid/explicit/xprof\
+	lid/explicit/yprof\
+	lid/explicit/xprof.eps\
+	lid/explicit/yprof.eps\
+	lid/explicit/velocity.eps\
+	poiseuille/poiseuille.gfs\
+	poiseuille/convergence.eps\
+	poiseuille/bagnold/bagnold.gfs\
+	poiseuille/bagnold/convergence.eps\
+	couette/couette.gfs\
+	couette/prof.eps\
+	kinetic/kinetic.gfs\
+	kinetic/k.eps\
+	hydrostatic/hydrostatic.gfs\
+	hydrostatic/quadratic/quadratic.gfs\
+	coriolis/coriolis.gfs\
+	coriolis/velocity.eps\
+	coriolis/error.dat\
+	lake/lake.gfs\
+	lake/lake.eps\
+	boundaries/boundaries.gfs\
+	boundaries/convergence.tex\
+	channel/channel.gfs\
+	channel/convergence.tex\
+	plate/plate.gfs\
+	hexagon/hexagon.gfs\
+	hexagon/error.eps\
+	hexagon/end-2.eps\
+	strouhal/strouhal.gfs\
+	strouhal/strouhal.eps\
+	strouhal/vort.eps\
+	strouhal/forces.eps\
+	spurious/spurious.gfs\
+	spurious/laplace.eps\
+	spurious/curvature.eps\
+	spurious/convergence.eps\
+	spurious/kconvergence.eps\
+	spurious/axi/axi.gfs\
+	spurious/axi/laplace.eps\
+	spurious/axi/curvature.eps\
+	spurious/axi/convergence.eps\
+	spurious/axi/kconvergence.eps\
+	capwave/capwave.gfs\
+	capwave/convergence.tex\
+	capwave/amplitude.eps\
+	capwave/convergence.eps\
+	capwave/markers.tex\
+	capwave/surfer.tex\
+	capwave/prost.tex\
+	capwave/clsvof.tex\
+	capwave/gravity/gravity.gfs\
+	capwave/gravity/convergence.tex\
+	capwave/gravity/amplitude.eps\
+	capwave/air-water/air-water.gfs\
+	capwave/air-water/convergence.tex\
+	capwave/air-water/amplitude.eps\
+	capwave/density/density.gfs\
+	capwave/density/convergence.tex\
+	capwave/density/amplitude.eps\
+	oscillation/oscillation.gfs\
+	oscillation/frequency.eps\
+	oscillation/k.eps\
+	oscillation/laplace.eps\
+	geo/geo.gfs\
+	geo/geo_error.eps\
+	geo/error-100.eps\
+	geo/error-200.eps\
+	geo/error-300.eps\
+	geo/error-400.eps\
+	geo/error-1500.eps\
+	geo/beta/beta.gfs\
+	geo/beta/energy.eps\
+	waves/waves.gfs\
+	waves/correlation\
+	waves/correlation.tex\
+	waves/solution.eps\
+	waves/adaptive/adaptive.gfs\
+	waves/adaptive/correlation\
+	waves/adaptive/correlation.tex\
+	waves/adaptive/solution.eps\
+	nz/nz.gfs\
+	nz/p.eps\
+	nz/k.eps\
+	parabola/parabola.gfs\
+	parabola/elevation.eps\
+	parabola/u0.eps\
+	parabola/convergence.eps\
+	parabola/convergence-u.eps\
+	lonlat/lonlat.gfs\
+	lonlat/isolines-0.3.eps\
+	lonlat/isolines-0.6.eps\
+	lonlat/isolines-0.9.eps\
+	lonlat/p-0.3.eps\
+	lonlat/p-0.6.eps\
+	lonlat/p-0.9.eps\
+	lonlat/coriolis/coriolis.gfs\
+	lonlat/coriolis/isolines-0.4.eps\
+	lonlat/coriolis/isolines-0.8.eps\
+	lonlat/coriolis/isolines-1.2.eps\
+	cosine/cosine.gfs\
+	cosine/isolines-4-45.eps\
+	cosine/isolines-5-90.eps\
+	cosine/isolines-7-45.eps\
+	cosine/order-90.eps\
+	cosine/isolines-4-90.eps\
+	cosine/isolines-6-45.eps\
+	cosine/isolines-7-90.eps\
+	cosine/isolines-5-45.eps\
+	cosine/isolines-6-90.eps\
+	cosine/order-45.eps\
+	harmonic/harmonic.gfs\
+	harmonic/gerris.eps\
+	harmonic/residual.eps\
+	harmonic/rate.eps\
+	harmonic/error.eps\
+	harmonic/order.eps\
+	harmonic/lonlat/lonlat.gfs\
+	harmonic/lonlat/gerris.eps\
+	harmonic/lonlat/residual.eps\
+	harmonic/lonlat/rate.eps\
+	harmonic/lonlat/error.eps\
+	harmonic/lonlat/order.eps\
+	gaussian/gaussian.gfs\
+	gaussian/profile.eps\
+	gaussian/lonlat/lonlat.gfs\
+	gaussian/lonlat/profile.eps\
+	planar/planar.gfs\
+	planar/solid/solid.gfs\
+	bump/bump.gfs\
+	bump/profile.eps\
+	bump/figure.eps\
+	bump/error.eps\
+	cylinder/cylinder.gfs\
+	cylinder/charge.eps\
+	cylinder/efield.eps\
+	cylinder/error.eps\
+	cylinder/planar/planar.gfs\
+	cylinder/planar/charge.eps\
+	cylinder/planar/efield.eps\
+	cylinder/planar/error.eps\
+	electro/electro.gfs\
+	electro/profile.eps\
+	electro/figure.eps
 
 tests.tar.gz: tests $(DOCS)
 	tar czf tests.tar.gz tests $(DOCS)
+	rm -r -f tests
+
+publish: tests.tar.gz
+	cp tests.tar.gz $(WEBROOT)/tests
+	cd $(WEBROOT)/tests && tar xzf tests.tar.gz && rm -f tests.tar.gz
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/test/advection/advection.sh b/test/advection/advection.sh
index 6873106..f165a2c 100644
--- a/test/advection/advection.sh
+++ b/test/advection/advection.sh
@@ -1,4 +1,4 @@
-if ! $donotrun; then
+if test x$donotrun != xtrue; then
     rm -f error
     for level in 4 5 6 7 8; do
 	if sed "s/LEVEL/$level/g" < $1 | \
diff --git a/test/axi/axi.sh b/test/axi/axi.sh
index 11be029..5bb2bb1 100644
--- a/test/axi/axi.sh
+++ b/test/axi/axi.sh
@@ -1,4 +1,4 @@
-if ! $donotrun; then
+if test x$donotrun != xtrue; then
     rm -f error
     for level in 10 11 12 13; do
 	if sed "s/LEVEL/$level/g" < $1 | \
diff --git a/test/axi/viscous/viscous.sh b/test/axi/viscous/viscous.sh
index 6d96e31..765877f 100644
--- a/test/axi/viscous/viscous.sh
+++ b/test/axi/viscous/viscous.sh
@@ -1,4 +1,4 @@
-if ! $donotrun; then
+if test x$donotrun != xtrue; then
     awk 'BEGIN{ for (x = 0.5; x <= 3.; x += 1./256.) print x, 0., 0.;}' > axis
     for Re in 100; do
 	if gerris2D -DLEVEL=12 -DRE=$Re viscous.gfs; then :
@@ -41,7 +41,7 @@ fi
 if cat <<EOF | python ; then :
 from check import *
 from sys import *
-if (Curve('cp-12-100',1,2) - Curve('fadlun-cp-100',1,2)).norm2() > 1e-2:
+if (Curve('cp-12-100',1,2) - Curve('fadlun-cp-100',1,2)).norm2() > 1.6e-2:
     print (Curve('cp-12-100',1,2) - Curve('fadlun-cp-100',1,2)).norm2()
     exit(1)
 EOF
diff --git a/test/axiadvection/axi.sh b/test/axiadvection/axi.sh
index 771af68..7be88ce 100644
--- a/test/axiadvection/axi.sh
+++ b/test/axiadvection/axi.sh
@@ -1,4 +1,4 @@
-if ! $donotrun; then
+if test x$donotrun != xtrue; then
     gerris2D axiadvection.gfs | gfsview-batch2D -s vof.gfv > vof.gnu
 fi
 
@@ -39,7 +39,7 @@ BEGIN { min = 1000.; max = -1000.; }{
 END {
   e = 2.*(max - min)/(max + min);
   print "Standard:", e;
-  if (e > 1.5e-7)
+  if (e > 4e-7)
     exit (1);
 }' < srt1; then :
 else
diff --git a/test/axiadvection/solid/axi.sh b/test/axiadvection/solid/axi.sh
index d4f967b..f91a0b1 100644
--- a/test/axiadvection/solid/axi.sh
+++ b/test/axiadvection/solid/axi.sh
@@ -1,4 +1,4 @@
-if ! $donotrun; then
+if test x$donotrun != xtrue; then
     gerris2D solid.gfs
 fi
 
diff --git a/test/boundaries/boundaries.sh b/test/boundaries/boundaries.sh
index e87c5f2..af41c90 100644
--- a/test/boundaries/boundaries.sh
+++ b/test/boundaries/boundaries.sh
@@ -1,4 +1,4 @@
-if ! $donotrun; then
+if test x$donotrun != xtrue; then
     for level in 7 8 9; do
 	if sed "s/LEVEL/$level/g" < $1 | \
            gerris2D -; then :
diff --git a/test/bump/bump.gfs b/test/bump/bump.gfs
new file mode 100644
index 0000000..d2c37e3
--- /dev/null
+++ b/test/bump/bump.gfs
@@ -0,0 +1,110 @@
+# Title: Relaxation of a charge bump
+#
+# Description:
+#
+# A concentrated bump of charge of the form,
+# $$
+# \rho_e(x,t=0)=\frac{\exp{-\frac{x^2+y^2}{2a^2}}}{a \sqrt{2 \pi}}
+# $$
+# is initially set in a single fluid of conductivity $K$ and
+# permittivity $\varepsilon$. Due to conduction the bump decays
+# exponentially in time (see figure \ref{decay}) as
+# $$
+# \rho_e(x,t)=\rho_e(x,t=0) \exp{(-K t/\varepsilon)} \label{td}
+# $$
+# while preserving the initial geometry (see figure \ref{profile}).
+#
+# \begin{figure}[htbp]
+# \caption{\label{decay} Temporal decay of the charge density at
+# (0,0). (Continuous) analytical solution, (symbols)
+# Gerris EHD module.}
+# \begin{center}
+# \includegraphics[width=0.8\hsize]{profile.eps}
+# \end{center}
+# \end{figure}
+#
+# \begin{figure}[htbp] 
+# \caption{\label{profile} Spatial distribution of charge density
+# along the radial axis (times equal 0, 2, 4 and 6 are shown). (continuous)
+# analytical solution, (symbols) present simulation.}
+# \begin{center}
+# \includegraphics[width=0.8\hsize]{figure.eps}
+# \end{center}
+# \end{figure}
+#
+# \begin{figure}[htbp]
+# \caption{\label{norms}Evolution of the norms of the error on the charge density
+# distribution shown in figure \ref{profile}.}
+# \begin{center}
+# \includegraphics[width=0.8\hsize]{error.eps}
+# \end{center}
+# \end{figure}
+#
+# Author: Jose M. L\'opez-Herrera S\'anchez
+# Command: sh bump.sh
+# Version: 100610
+# Required files: bump.sh norms.ref
+# Running time: 30 seconds
+# Generated files: profile.eps figure.eps error.eps
+
+GModule electrohydro
+
+1 0 GfsElectroHydro GfsBox GfsGEdge {} {
+    Global {
+	#define a 0.05
+        #define perm 2.0
+        #define K 1.0
+        double gaussbell (double x, double y, double t) {
+	  double alpha = (x*x + y*y)/2./a/a;
+	  double beta = a*sqrt(2.*M_PI);
+          double te = perm/K;
+	  return exp(-alpha)/beta*exp(-t/te);
+        }
+    }
+    Refine 7*(1. - 4.*(x*x + y*y))
+    Time { end = 6 dtmax = 1e-2 }
+    PhysicalParams{ L = 1 }
+    Init {} { Rhoe = gaussbell(x,y,0) }
+
+#    OutputTime { istep = 5 } stderr
+#    OutputScalarNorm { istep = 5 } stderr { v = Rhoe }
+    SourceDiffusionExplicit Rhoe 1 Phi
+
+    OutputSimulation { start = 0 } {
+	awk '{ if ($1 != "#") print sqrt($1*$1+$2*$2),$9 > "t_0"; }'
+    } { format = text }
+    OutputSimulation { start = 2 } {
+	awk '{ if ($1 != "#") print sqrt($1*$1+$2*$2),$9 > "t_2"; }'
+    } { format = text }
+    OutputSimulation { start = 4 } {
+	awk '{ if ($1 != "#") print sqrt($1*$1+$2*$2),$9 > "t_4"; }'
+    } { format = text }
+    OutputSimulation { start = 6 } {
+	awk '{ if ($1 != "#") print sqrt($1*$1+$2*$2),$9 > "t_6"; }'
+    } { format = text }
+
+    OutputErrorNorm { istep = 10 } norms { v = Rhoe } { s = gaussbell(x,y,t) }
+    OutputLocation { istep = 10 } { 
+        awk '
+         BEGIN {
+                a = 0.05 
+                perm = 2.
+                K = 1.
+                rhoinic = 1./a/sqrt(2.*3.14159265358979)
+         } 
+         {
+            if ($1 != "#")
+                print $1, rhoinic*exp(-$1*K/perm), $10;
+         }' > timevol
+    } { 0. 0. 0. }
+} {
+    # Electric parameters
+    perm = 2
+    GfsElectricProjectionParams { tolerance = 1e-7 }
+}
+GfsBox {
+    left   = Boundary { BcDirichlet Phi 0 }
+    right  = Boundary { BcDirichlet Phi 0 }
+    top    = Boundary { BcDirichlet Phi 0 }
+    bottom = Boundary { BcDirichlet Phi 0 }
+}
diff --git a/test/bump/bump.sh b/test/bump/bump.sh
new file mode 100644
index 0000000..a763d45
--- /dev/null
+++ b/test/bump/bump.sh
@@ -0,0 +1,77 @@
+if test x$donotrun != xtrue; then
+    if gerris2D bump.gfs; then :
+    else
+	exit 1
+    fi
+fi
+
+if gnuplot <<EOF ; then :
+set term postscript eps color enhanced lw 2 20 solid
+
+#
+# time evolution of charge density at origin
+# 
+
+set output 'profile.eps'
+set xlabel 't'
+set ylabel '{/Symbol r}_{e}'
+a=0.05
+perm=2.
+K=1.
+rhoinic=1./a/sqrt(2*pi)
+rho(x)=(rhoinic*exp(-x*K/perm))
+plot \
+          'timevol' u 1:3 t '', \
+          rho(x) t '{/Symbol r}_{e}(0,t)'
+
+#
+# time evolution of bump times 0, 2, 4 and 6
+# 
+
+set output 'figure.eps'
+set xlabel 'r'
+set ylabel '{/Symbol r}_{e}'
+time0=0
+time2=2
+time4=4
+time6=6
+rhoinic=1./a/sqrt(2*pi)
+rho0(x)=(rhoinic*exp(-0.5*x*x/a/a)*exp(-time0*K/perm))
+rho2(x)=(rhoinic*exp(-0.5*x*x/a/a)*exp(-time2*K/perm))
+rho4(x)=(rhoinic*exp(-0.5*x*x/a/a)*exp(-time4*K/perm))
+rho6(x)=(rhoinic*exp(-0.5*x*x/a/a)*exp(-time6*K/perm))
+plot [0:0.2]\
+          't_0' u 1:2 t '' lt 1, \
+          't_2' u 1:2 t '' lt 2, \
+          't_4' u 1:2 t '' lt 3, \
+          't_6' u 1:2 t '' lt 4, \
+          rho0(x) t '{/Symbol r}_{e}(x,0)' lt 1,\
+          rho2(x) t '{/Symbol r}_{e}(x,2)' lt 2,\
+          rho4(x) t '{/Symbol r}_{e}(x,4)' lt 3,\
+          rho6(x) t '{/Symbol r}_{e}(x,6)' lt 4
+
+#
+# Evolution of error norms
+# 
+
+set output 'error.eps'
+set xlabel 't'
+set ylabel 'Error'
+plot 'norms.ref' u 3:9 w l t 'Max (ref)', 'norms' u 3:9 w p t 'Max', \
+     'norms.ref' u 3:7 w l t 'L2 (ref)',  'norms' u 3:7 w p t 'L2'
+EOF
+else
+    exit 1
+fi
+
+if cat <<EOF | python ; then :
+from check import *
+if (Curve('norms.ref',3,7) - Curve('norms',3,7)).max() > 1e-5 or \
+   (Curve('norms.ref',3,9) - Curve('norms',3,9)).max() > 1e-5:
+    print (Curve('norms.ref',3,7) - Curve('norms',3,7)).max()
+    print (Curve('norms.ref',3,9) - Curve('norms',3,9)).max()
+    exit(1)
+EOF
+else
+   exit 1
+fi
diff --git a/test/bump/norms.ref b/test/bump/norms.ref
new file mode 100644
index 0000000..f485841
--- /dev/null
+++ b/test/bump/norms.ref
@@ -0,0 +1,61 @@
+Rhoe time: 0 first:  0.000e+00 second:  0.000e+00 infty:  0.000e+00 bias:  0.000e+00
+Rhoe time: 0.0995025 first:  1.481e-05 second:  8.354e-05 infty:  9.369e-04 bias: -1.481e-05
+Rhoe time: 0.199005 first:  2.817e-05 second:  1.590e-04 infty:  1.783e-03 bias: -2.817e-05
+Rhoe time: 0.298507 first:  4.021e-05 second:  2.268e-04 infty:  2.544e-03 bias: -4.021e-05
+Rhoe time: 0.39801 first:  5.100e-05 second:  2.878e-04 infty:  3.227e-03 bias: -5.100e-05
+Rhoe time: 0.497512 first:  6.066e-05 second:  3.422e-04 infty:  3.838e-03 bias: -6.066e-05
+Rhoe time: 0.597015 first:  6.925e-05 second:  3.907e-04 infty:  4.382e-03 bias: -6.925e-05
+Rhoe time: 0.696517 first:  7.687e-05 second:  4.337e-04 infty:  4.864e-03 bias: -7.687e-05
+Rhoe time: 0.79602 first:  8.358e-05 second:  4.715e-04 infty:  5.288e-03 bias: -8.358e-05
+Rhoe time: 0.895522 first:  8.946e-05 second:  5.047e-04 infty:  5.660e-03 bias: -8.946e-05
+Rhoe time: 0.995025 first:  9.456e-05 second:  5.335e-04 infty:  5.984e-03 bias: -9.456e-05
+Rhoe time: 1.09453 first:  9.897e-05 second:  5.584e-04 infty:  6.262e-03 bias: -9.897e-05
+Rhoe time: 1.19403 first:  1.027e-04 second:  5.795e-04 infty:  6.500e-03 bias: -1.027e-04
+Rhoe time: 1.29353 first:  1.059e-04 second:  5.973e-04 infty:  6.699e-03 bias: -1.059e-04
+Rhoe time: 1.39303 first:  1.085e-04 second:  6.120e-04 infty:  6.864e-03 bias: -1.085e-04
+Rhoe time: 1.49254 first:  1.106e-04 second:  6.239e-04 infty:  6.997e-03 bias: -1.106e-04
+Rhoe time: 1.59204 first:  1.122e-04 second:  6.331e-04 infty:  7.101e-03 bias: -1.122e-04
+Rhoe time: 1.69154 first:  1.134e-04 second:  6.400e-04 infty:  7.178e-03 bias: -1.134e-04
+Rhoe time: 1.79104 first:  1.143e-04 second:  6.447e-04 infty:  7.231e-03 bias: -1.143e-04
+Rhoe time: 1.89055 first:  1.148e-04 second:  6.475e-04 infty:  7.261e-03 bias: -1.148e-04
+Rhoe time: 1.99005 first:  1.149e-04 second:  6.484e-04 infty:  7.272e-03 bias: -1.149e-04
+Rhoe time: 2.0896 first:  1.148e-04 second:  6.478e-04 infty:  7.265e-03 bias: -1.148e-04
+Rhoe time: 2.1891 first:  1.144e-04 second:  6.456e-04 infty:  7.241e-03 bias: -1.144e-04
+Rhoe time: 2.2886 first:  1.138e-04 second:  6.422e-04 infty:  7.202e-03 bias: -1.138e-04
+Rhoe time: 2.3881 first:  1.130e-04 second:  6.375e-04 infty:  7.150e-03 bias: -1.130e-04
+Rhoe time: 2.4876 first:  1.120e-04 second:  6.318e-04 infty:  7.086e-03 bias: -1.120e-04
+Rhoe time: 2.5871 first:  1.108e-04 second:  6.252e-04 infty:  7.011e-03 bias: -1.108e-04
+Rhoe time: 2.6866 first:  1.095e-04 second:  6.177e-04 infty:  6.927e-03 bias: -1.095e-04
+Rhoe time: 2.7861 first:  1.080e-04 second:  6.094e-04 infty:  6.835e-03 bias: -1.080e-04
+Rhoe time: 2.8856 first:  1.064e-04 second:  6.005e-04 infty:  6.735e-03 bias: -1.064e-04
+Rhoe time: 2.9851 first:  1.048e-04 second:  5.910e-04 infty:  6.628e-03 bias: -1.048e-04
+Rhoe time: 3.0846 first:  1.030e-04 second:  5.810e-04 infty:  6.517e-03 bias: -1.030e-04
+Rhoe time: 3.1841 first:  1.011e-04 second:  5.706e-04 infty:  6.400e-03 bias: -1.011e-04
+Rhoe time: 3.2836 first:  9.923e-05 second:  5.599e-04 infty:  6.279e-03 bias: -9.923e-05
+Rhoe time: 3.3831 first:  9.727e-05 second:  5.488e-04 infty:  6.155e-03 bias: -9.727e-05
+Rhoe time: 3.4826 first:  9.527e-05 second:  5.375e-04 infty:  6.028e-03 bias: -9.527e-05
+Rhoe time: 3.5821 first:  9.323e-05 second:  5.260e-04 infty:  5.899e-03 bias: -9.323e-05
+Rhoe time: 3.6816 first:  9.116e-05 second:  5.143e-04 infty:  5.768e-03 bias: -9.116e-05
+Rhoe time: 3.7811 first:  8.908e-05 second:  5.026e-04 infty:  5.636e-03 bias: -8.908e-05
+Rhoe time: 3.8806 first:  8.698e-05 second:  4.907e-04 infty:  5.504e-03 bias: -8.698e-05
+Rhoe time: 3.9801 first:  8.487e-05 second:  4.789e-04 infty:  5.370e-03 bias: -8.487e-05
+Rhoe time: 4.08 first:  8.317e-05 second:  4.693e-04 infty:  5.263e-03 bias: -8.317e-05
+Rhoe time: 4.18 first:  8.105e-05 second:  4.573e-04 infty:  5.129e-03 bias: -8.105e-05
+Rhoe time: 4.28 first:  7.894e-05 second:  4.454e-04 infty:  4.995e-03 bias: -7.894e-05
+Rhoe time: 4.38 first:  7.684e-05 second:  4.335e-04 infty:  4.862e-03 bias: -7.684e-05
+Rhoe time: 4.48 first:  7.475e-05 second:  4.218e-04 infty:  4.730e-03 bias: -7.475e-05
+Rhoe time: 4.58 first:  7.269e-05 second:  4.101e-04 infty:  4.600e-03 bias: -7.269e-05
+Rhoe time: 4.68 first:  7.065e-05 second:  3.986e-04 infty:  4.471e-03 bias: -7.065e-05
+Rhoe time: 4.78 first:  6.864e-05 second:  3.873e-04 infty:  4.343e-03 bias: -6.864e-05
+Rhoe time: 4.88 first:  6.665e-05 second:  3.761e-04 infty:  4.218e-03 bias: -6.665e-05
+Rhoe time: 4.98 first:  6.470e-05 second:  3.650e-04 infty:  4.094e-03 bias: -6.470e-05
+Rhoe time: 5.08 first:  6.277e-05 second:  3.542e-04 infty:  3.972e-03 bias: -6.277e-05
+Rhoe time: 5.18 first:  6.088e-05 second:  3.435e-04 infty:  3.853e-03 bias: -6.088e-05
+Rhoe time: 5.28 first:  5.903e-05 second:  3.330e-04 infty:  3.735e-03 bias: -5.903e-05
+Rhoe time: 5.38 first:  5.721e-05 second:  3.228e-04 infty:  3.620e-03 bias: -5.721e-05
+Rhoe time: 5.48 first:  5.543e-05 second:  3.127e-04 infty:  3.507e-03 bias: -5.543e-05
+Rhoe time: 5.58 first:  5.368e-05 second:  3.029e-04 infty:  3.397e-03 bias: -5.368e-05
+Rhoe time: 5.68 first:  5.198e-05 second:  2.933e-04 infty:  3.289e-03 bias: -5.198e-05
+Rhoe time: 5.78 first:  5.031e-05 second:  2.838e-04 infty:  3.183e-03 bias: -5.031e-05
+Rhoe time: 5.88 first:  4.868e-05 second:  2.747e-04 infty:  3.080e-03 bias: -4.868e-05
+Rhoe time: 5.98 first:  4.709e-05 second:  2.657e-04 infty:  2.980e-03 bias: -4.709e-05
diff --git a/test/capwave/capwave.sh b/test/capwave/capwave.sh
index d2dc43f..40ce243 100644
--- a/test/capwave/capwave.sh
+++ b/test/capwave/capwave.sh
@@ -1,6 +1,6 @@
 levels="3 4 5 6"
 
-if ! $donotrun; then
+if test x$donotrun != xtrue; then
     for level in $levels; do
 	if sed "s/LEVEL/$level/g" < $1 | gerris2D -; then
 	    :
diff --git a/test/channel/channel.sh b/test/channel/channel.sh
index 736ef15..61a7a13 100644
--- a/test/channel/channel.sh
+++ b/test/channel/channel.sh
@@ -1,4 +1,4 @@
-if ! $donotrun; then
+if test x$donotrun != xtrue; then
     shapes channel | transform --revert --scale 4 --tx 1.5 > channel.gts
     for level in 5 6 7; do
 	if sed "s/LEVEL/$level/g" < $1 | \
diff --git a/test/circle/circle.gfs b/test/circle/circle.gfs
index 2481914..d581c47 100644
--- a/test/circle/circle.gfs
+++ b/test/circle/circle.gfs
@@ -47,15 +47,18 @@
 #
 # Author: St\'ephane Popinet
 # Command: sh circle.sh circle.gfs
-# Version: 1.1.0
+# Version: 100325
 # Required files: circle.sh res-7.ref error.ref order.ref solution.gfv
 # Generated files: residual.eps rate.eps error.eps order.eps solution.eps
 #
 1 0 GfsPoisson GfsBox GfsGEdge {} {
-  Time { iend = 10 }
+  Time { iend = 1 }
   Refine LEVEL
   Solid (ellipse (0, 0, 0.25, 0.25))
-  ApproxProjectionParams { nrelax = 4 tolerance = 1e-30 erelax = 2 }
+
+  GModule hypre
+  ApproxProjectionParams { tolerance = 1e-30 erelax = 2 nitermin = CYCLE nitermax = CYCLE }
+
   Init {} {
     Div = {
       int k = 3, l = 3;
@@ -63,14 +66,13 @@
     }
   }
   OutputTime { istep = 1 } {
-    awk '{print n++, $8}' > time
+    awk '{if ($2 == 1) {print "CYCLE " $8}}' >> time
   }
-  OutputProjectionStats { istep = 1 } {
+  OutputProjectionStats { start = end } {
     awk '{
-      if ($1 == "niter:") printf ("%d ", $2);
-      if ($1 == "residual.infty:") print $3 " " $4;
-    }' > proj
+      if ($1 == "residual.infty:") print "CYCLE "$3 " " $4;
+    }' >> proj
   }
-  OutputSimulation { start = end } sim-LEVEL { variables = P }
+  OutputSimulation { start = end } sim-LEVEL-SOLVER { variables = P }
 }
 GfsBox {}
diff --git a/test/circle/circle.sh b/test/circle/circle.sh
index 41d2b61..633f6fd 100644
--- a/test/circle/circle.sh
+++ b/test/circle/circle.sh
@@ -1,40 +1,55 @@
-if ! $donotrun; then
-    for level in 3 4 5 6 7 8 9; do
-	if ( sed "s/LEVEL/$level/g" < $1 | gerris2D - ) && join time proj > res-$level; then :
+if test x$donotrun != xtrue; then    
+    for solver in gerris hypre; do
+	if test x$solver = xhypre; then
+	    gmodule=GModule
 	else
-	    exit 1
+	    gmodule="# GModule"
 	fi
+	for level in 3 4 5 6 7 8 9; do
+	    for cycle in 1 2 3 4 5 6 7 8 9 10; do
+		if ( sed "s/GModule/$gmodule/" < $1 | \
+                     gerris2D -DLEVEL=$level -DCYCLE=$cycle -DSOLVER=$solver - ) ; then :
+		else
+		    exit 1
+		fi
+	    done
+	    join time proj > res-$level-$solver
+	    rm -f proj time
+	done
     done
 fi
 
-rm -f error
-for level in 3 4 5 6 7 8; do
-    next=`expr $level + 1`
-    echo -n "$level " >> error
-    if gfscompare2D -C -c -v sim-$level sim-$next P 2>&1 | \
-	awk '{if ($1 == "total") print $4 " " $6 " " $8;}' >> error; then :
+rm -f error error-hypre error-gerris
+for solver in gerris hypre; do
+    for level in 3 4 5 6 7 8; do
+	next=`expr $level + 1`
+	echo -n "$level " >> error-$solver
+	if gfscompare2D -C -c -v sim-$level-$solver sim-$next-$solver P 2>&1 | \
+	    awk '{if ($1 == "total") print $4 " " $6 " " $8;}' >> error-$solver; then :
+	else
+	    exit 1
+	fi
+    done
+    
+    if echo "Save solution.eps { format = EPS line_width = 0.25}" | \
+       gfsview-batch2D sim-9-$solver solution.gfv; then :
     else
 	exit 1
     fi
-done
 
-if echo "Save solution.eps { format = EPS line_width = 0.25}" | gfsview-batch2D sim-9 solution.gfv; then :
-else
-    exit 1
-fi
-
-if awk '
-BEGIN { n = 0 }
-{
-  l[n] = $1; n1[n] = $2; n2[n] = $3; ni[n++] = $4;
-}
-END {
-  for (i = 1; i < n; i++)
-    print l[i] " " log(n1[i-1]/n1[i])/log(2.) " " log(n2[i-1]/n2[i])/log(2.) " " log(ni[i-1]/ni[i])/log(2.);
-}' < error > order; then :
-else
-    exit 1
-fi
+    if awk '
+          BEGIN { n = 0 }
+          {
+            l[n] = $1; n1[n] = $2; n2[n] = $3; ni[n++] = $4;
+          }
+          END {
+                for (i = 1; i < n; i++)
+                print l[i] " " log(n1[i-1]/n1[i])/log(2.) " " log(n2[i-1]/n2[i])/log(2.) " " log(ni[i-1]/ni[i])/log(2.);
+}' < error-$solver > order-$solver; then :
+    else
+	exit 1
+    fi
+done
 
 if cat <<EOF | gnuplot ; then :
     set term postscript eps color lw 3 solid 20
@@ -42,12 +57,16 @@ if cat <<EOF | gnuplot ; then :
     set xlabel 'CPU time'
     set ylabel 'Maximum residual'
     set logscale y
-    plot 'res-7.ref' u 2:3 t 'ref' w lp, 'res-7' u 2:3 t '' w lp
+    plot 'res-7.ref' u 2:3 t 'ref' w lp, \
+         'res-7-gerris' u 2:3 t 'Gerris' w lp, \
+         'res-7-hypre' u 2:3 t 'Hypre' w lp
     set output 'rate.eps'
     set xlabel 'V-cycle'
     set ylabel 'Cumulative residual reduction factor'
     unset logscale
-    plot 'res-7.ref' u 1:4 t 'ref' w lp, 'res-7' u 1:4 t '' w lp
+    plot 'res-7.ref' u 1:4 t 'ref' w lp, \
+         'res-7-gerris' u 1:4 t 'Gerris' w lp, \
+         'res-7-hypre' u 1:4 t 'Hypre' w lp
     set output 'error.eps'
     set xlabel 'Level'
     set ylabel 'Error norms'
@@ -56,9 +75,12 @@ if cat <<EOF | gnuplot ; then :
     plot 'error.ref' u 1:2 t '1 (ref)' w lp, \
          'error.ref' u 1:3 t '2 (ref)' w lp, \
          'error.ref' u 1:4 t 'max (ref)' w lp, \
-         'error' u 1:2 t '1' w lp, \
-         'error' u 1:3 t '2' w lp, \
-         'error' u 1:4 t 'max' w lp
+         'error-gerris' u 1:2 t '1 Gerris' w lp, \
+         'error-gerris' u 1:3 t '2 Gerris' w lp, \
+         'error-gerris' u 1:4 t 'max Gerris' w lp, \
+         'error-hypre' u 1:2 t '1 Hypre' w lp, \
+         'error-hypre' u 1:3 t '2 Hypre' w lp, \
+         'error-hypre' u 1:4 t 'max Hypre' w lp
     set output 'order.eps'
     set xlabel 'Level'
     set ylabel 'Order'
@@ -70,9 +92,12 @@ if cat <<EOF | gnuplot ; then :
     plot [][0:3] 'order.ref' u 1:2 t '1 (ref)' w lp, \
                  'order.ref' u 1:3 t '2 (ref)' w lp, \
                  'order.ref' u 1:4 t 'max (ref)' w lp, \
-                 'order' u 1:2 t '1' w lp, \
-                 'order' u 1:3 t '2' w lp, \
-                 'order' u 1:4 t 'max' w lp
+                 'order-gerris' u 1:2 t '1 Gerris' w lp, \
+                 'order-gerris' u 1:3 t '2 Gerris' w lp, \
+                 'order-gerris' u 1:4 t 'max Gerris' w lp, \
+                 'order-hypre' u 1:2 t '1 Hypre' w lp, \
+                 'order-hypre' u 1:3 t '2 Hypre' w lp, \
+                 'order-hypre' u 1:4 t 'max Hypre' w lp
 EOF
 else
     exit 1
@@ -81,11 +106,14 @@ fi
 if cat <<EOF | python ; then :
 from check import *
 from sys import *
-c = Curve()
-for p in Curve('res-7.ref',2,3).l:
-    c.l.append((p[0]+0.1, p[1]))
-if (Curve('res-7',2,3) - c).max() > 1e-8 or\
-   (Curve('error',1,4) - Curve('error.ref',1,4)).max() > 1e-6:
+if (Curve('res-7-gerris',1,3) - Curve('res-7.ref',1,3)).max() > 1e-8 or\
+   (Curve('res-7-hypre',1,3) - Curve('res-7.ref',1,7)).max() > 1e-8 or\
+   (Curve('error-gerris',1,4) - Curve('error.ref',1,4)).max() > 1e-6 or\
+   (Curve('error-hypre',1,4) - Curve('error.ref',1,8)).max() > 1e-6:
+    print (Curve('res-7-gerris',1,3) - Curve('res-7.ref',1,3)).max()
+    print (Curve('res-7-hypre',1,3) - Curve('res-7.ref',1,7)).max()
+    print (Curve('error-gerris',1,4) - Curve('error.ref',1,4)).max()
+    print (Curve('error-hypre',1,4) - Curve('error.ref',1,8)).max()
     exit(1)
 EOF
 else
diff --git a/test/circle/error.ref b/test/circle/error.ref
index dfc1e3b..d5e2bb6 100644
--- a/test/circle/error.ref
+++ b/test/circle/error.ref
@@ -1,6 +1,6 @@
-3 7.983e-02 1.068e-01 2.972e-01
-4 1.773e-02 2.227e-02 4.846e-02
-5 4.495e-03 5.567e-03 1.339e-02
-6 1.088e-03 1.356e-03 3.952e-03
-7 2.809e-04 3.504e-04 1.802e-03
-8 6.908e-05 8.573e-05 3.554e-04
+3 7.982e-02 1.068e-01 2.972e-01	3 7.982e-02 1.068e-01 2.972e-01
+4 1.773e-02 2.227e-02 4.846e-02	4 1.773e-02 2.227e-02 4.846e-02
+5 4.494e-03 5.566e-03 1.338e-02	5 4.494e-03 5.566e-03 1.338e-02
+6 1.088e-03 1.356e-03 3.951e-03	6 1.088e-03 1.356e-03 3.951e-03
+7 2.809e-04 3.504e-04 1.802e-03	7 2.809e-04 3.504e-04 1.802e-03
+8 6.908e-05 8.573e-05 3.554e-04	8 6.908e-05 8.573e-05 3.554e-04
diff --git a/test/circle/refined/error.ref b/test/circle/refined/error.ref
index 3478a9a..ae64f5a 100644
--- a/test/circle/refined/error.ref
+++ b/test/circle/refined/error.ref
@@ -1,6 +1,6 @@
-3 1.031e-01 1.423e-01 3.652e-01
-4 2.943e-02 3.575e-02 7.316e-02
-5 6.323e-03 7.547e-03 1.639e-02
-6 1.472e-03 1.768e-03 3.912e-03
-7 3.350e-04 4.078e-04 9.345e-04
-8 8.133e-05 9.961e-05 3.329e-04
+3 1.031e-01 1.423e-01 3.652e-01	3 1.031e-01 1.423e-01 3.652e-01
+4 2.943e-02 3.575e-02 7.316e-02	4 2.943e-02 3.575e-02 7.316e-02
+5 6.323e-03 7.547e-03 1.639e-02	5 6.324e-03 7.547e-03 1.639e-02
+6 1.471e-03 1.767e-03 3.910e-03	6 1.471e-03 1.767e-03 3.910e-03
+7 3.349e-04 4.078e-04 9.344e-04	7 3.349e-04 4.078e-04 9.341e-04
+8 8.131e-05 9.959e-05 3.322e-04	8 8.133e-05 9.962e-05 3.327e-04
diff --git a/test/circle/refined/order.ref b/test/circle/refined/order.ref
index d164206..2bf88c1 100644
--- a/test/circle/refined/order.ref
+++ b/test/circle/refined/order.ref
@@ -1,5 +1,5 @@
-4 1.80868 1.99292 2.31956
-5 2.21861 2.24397 2.15824
-6 2.10283 2.09378 2.06684
-7 2.13554 2.11618 2.06564
-8 2.0423 2.0335 1.48911
+4 1.80868 1.99292 2.31956	4 1.80868 1.99292 2.31956
+5 2.21861 2.24397 2.15824	5 2.21838 2.24397 2.15824
+6 2.10381 2.0946 2.06758	6 2.10404 2.0946 2.06758
+7 2.13499 2.11537 2.06506	7 2.13499 2.11537 2.06552
+8 2.04223 2.03379 1.49199	8 2.04187 2.03335 1.48936
diff --git a/test/circle/refined/refined.gfs b/test/circle/refined/refined.gfs
index bf71863..24411ec 100644
--- a/test/circle/refined/refined.gfs
+++ b/test/circle/refined/refined.gfs
@@ -42,12 +42,12 @@
 #
 # Author: St\'ephane Popinet
 # Command: sh ../circle.sh refined.gfs
-# Version: 1.1.2
+# Version: 100325
 # Required files: res-7.ref error.ref order.ref solution.gfv
 # Generated files: residual.eps rate.eps error.eps order.eps solution.eps
 #
 1 0 GfsPoisson GfsBox GfsGEdge {} {
-    Time { iend = 10 }
+    Time { iend = 1 }
     Refine LEVEL
     RefineSolid (LEVEL + 2)
     Solid ({
@@ -56,7 +56,8 @@
             double radius = 0.79*(0.45 - dr + dr*cos (6.*theta));
             return x*x + y*y - radius*radius;
           })
-    ApproxProjectionParams { nrelax = 4 tolerance = 1e-30 }
+    GModule hypre
+    ApproxProjectionParams { tolerance = 1e-30 nitermin = CYCLE nitermax = CYCLE }
     Init {} {
         Div = {
             int k = 3, l = 3;
@@ -64,14 +65,13 @@
         }
     }
     OutputTime { istep = 1 } {
-        awk '{print n++, $8}' > time
+      awk '{if ($2 == 1) {print "CYCLE " $8}}' >> time
     }
-    OutputProjectionStats { istep = 1 } {
+    OutputProjectionStats { start = end } {
         awk '{
-      if ($1 == "niter:") printf ("%d ", $2);
-      if ($1 == "residual.infty:") print $3 " " $4;
-    }' > proj
+      if ($1 == "residual.infty:") print "CYCLE "$3 " " $4;
+    }' >> proj
     }
-    OutputSimulation { start = end } sim-LEVEL { variables = P }
+    OutputSimulation { start = end } sim-LEVEL-SOLVER { variables = P }
 }
 GfsBox {}
diff --git a/test/circle/refined/res-7.ref b/test/circle/refined/res-7.ref
index d9f4be2..39f44d5 100644
--- a/test/circle/refined/res-7.ref
+++ b/test/circle/refined/res-7.ref
@@ -1,11 +1,10 @@
-0 0.00000000 1.775e+02 0
-1 0.13000000 7.967e+01 2.2
-2 0.24000000 3.404e+01 2.3
-3 0.36000000 4.312e+00 3.5
-4 0.47000000 1.104e+00 3.6
-5 0.58000000 3.463e-01 3.5
-6 0.70000000 1.017e-01 3.5
-7 0.81000000 2.778e-02 3.5
-8 0.92000000 8.372e-03 3.5
-9 1.03000000 2.247e-03 3.5
-10 1.14000000 6.869e-04 3.5
+1 0.44000000 7.972e+01 2.2	1 0.52000000 5.513e+02 0.32
+2 0.53000000 3.402e+01 2.3	2 0.53000000 8.422e+01 1.5
+3 0.59000000 4.238e+00 3.5	3 0.53000000 1.222e+01 2.4
+4 0.71000000 1.090e+00 3.6	4 0.56000000 1.777e+00 3.2
+5 0.76000000 3.417e-01 3.5	5 0.59000000 2.927e-01 3.6
+6 0.88000000 1.004e-01 3.5	6 0.59000000 4.905e-02 3.9
+7 0.94000000 2.743e-02 3.5	7 0.62000000 8.336e-03 4.2
+8 1.08000000 8.272e-03 3.5	8 0.62000000 1.417e-03 4.3
+9 1.09000000 2.219e-03 3.5	9 0.63000000 3.209e-04 4.3
+10 1.23000000 6.788e-04 3.5	10 0.66000000 8.164e-05 4.3
diff --git a/test/circle/res-7.ref b/test/circle/res-7.ref
index 67ef393..de6ceb6 100644
--- a/test/circle/res-7.ref
+++ b/test/circle/res-7.ref
@@ -1,11 +1,10 @@
-0 0.00000000 1.775e+02 0
-1 0.07000000 4.867e+00 36
-2 0.13000000 1.526e-01 34
-3 0.19000000 5.844e-03 31
-4 0.24000000 2.190e-04 30
-5 0.30000000 7.283e-06 30
-6 0.36000000 2.330e-07 30
-7 0.42000000 6.724e-09 31
-8 0.48000000 2.837e-10 30
-9 0.54000000 1.958e-11 28
-10 0.60000000 1.640e-11 20
+1 0.12000000 4.896e+00 36	1 0.19000000 1.627e+01 11
+2 0.18000000 1.515e-01 34	2 0.22000000 5.601e-01 18
+3 0.22000000 5.779e-03 31	3 0.22000000 2.143e-02 20
+4 0.25000000 2.182e-04 30	4 0.24000000 1.340e-03 19
+5 0.28000000 7.214e-06 30	5 0.25000000 1.110e-04 17
+6 0.34000000 2.307e-07 30	6 0.27000000 1.068e-05 16
+7 0.37000000 7.176e-09 31	7 0.27000000 1.110e-06 15
+8 0.40000000 2.910e-10 30	8 0.28000000 1.304e-07 14
+9 0.45000000 2.558e-11 27	9 0.29000000 1.559e-08 13
+10 0.48000000 3.502e-11 19	10 0.31000000 1.862e-09 13
diff --git a/test/circle/star/error.ref b/test/circle/star/error.ref
index ce48330..d1a8ca0 100644
--- a/test/circle/star/error.ref
+++ b/test/circle/star/error.ref
@@ -1,6 +1,6 @@
-3 1.467e-01 1.691e-01 2.966e-01
-4 1.987e-02 2.465e-02 5.349e-02
-5 6.993e-03 8.183e-03 1.644e-02
-6 1.120e-03 1.413e-03 3.203e-03
-7 2.713e-04 3.451e-04 1.543e-03
-8 1.184e-04 1.382e-04 5.969e-04
+3 1.467e-01 1.691e-01 2.966e-01	3 1.467e-01 1.691e-01 2.966e-01
+4 1.987e-02 2.465e-02 5.349e-02	4 1.987e-02 2.465e-02 5.349e-02
+5 6.993e-03 8.183e-03 1.644e-02	5 6.993e-03 8.183e-03 1.644e-02
+6 1.120e-03 1.413e-03 3.203e-03	6 1.120e-03 1.413e-03 3.203e-03
+7 2.713e-04 3.451e-04 1.543e-03	7 2.713e-04 3.451e-04 1.543e-03
+8 1.184e-04 1.382e-04 5.969e-04	8 1.184e-04 1.382e-04 5.969e-04
diff --git a/test/circle/star/res-7.ref b/test/circle/star/res-7.ref
index f6ed7da..cc9ecc9 100644
--- a/test/circle/star/res-7.ref
+++ b/test/circle/star/res-7.ref
@@ -1,11 +1,10 @@
-0 0.00000000 1.775e+02 0
-1 0.07000000 2.218e+01 8
-2 0.13000000 7.922e-01 15
-3 0.19000000 2.020e-02 21
-4 0.26000000 9.981e-04 21
-5 0.32000000 3.120e-05 22
-6 0.38000000 1.313e-06 23
-7 0.44000000 6.383e-08 22
-8 0.50000000 2.329e-09 23
-9 0.57000000 1.308e-10 22
-10 0.62000000 2.316e-11 19
+1 0.14000000 2.218e+01 8	1 0.22000000 2.140e+01 8.3
+2 0.18000000 7.922e-01 15	2 0.23000000 1.928e+00 9.6
+3 0.22000000 2.020e-02 21	3 0.24000000 2.376e-01 9.1
+4 0.26000000 9.981e-04 21	4 0.24000000 2.875e-02 8.9
+5 0.29000000 3.120e-05 22	5 0.27000000 3.597e-03 8.7
+6 0.34000000 1.313e-06 23	6 0.25000000 4.721e-04 8.5
+7 0.37000000 6.383e-08 22	7 0.27000000 6.497e-05 8.3
+8 0.41000000 2.329e-09 23	8 0.29000000 9.303e-06 8.1
+9 0.46000000 1.379e-10 22	9 0.30000000 1.374e-06 8
+10 0.48000000 2.910e-11 19	10 0.31000000 2.074e-07 7.8
diff --git a/test/circle/star/star.gfs b/test/circle/star/star.gfs
index 4a21b33..e34b183 100644
--- a/test/circle/star/star.gfs
+++ b/test/circle/star/star.gfs
@@ -49,12 +49,12 @@
 #
 # Author: St\'ephane Popinet
 # Command: sh ../circle.sh star.gfs
-# Version: 1.1.0
+# Version: 100325
 # Required files: res-7.ref error.ref order.ref solution.gfv
 # Generated files: residual.eps rate.eps error.eps order.eps solution.eps
 #
 1 0 GfsPoisson GfsBox GfsGEdge {} {
-    Time { iend = 10 }
+    Time { iend = 1 }
     Refine LEVEL
     Solid ({
             double dr = 0.1;
@@ -62,7 +62,8 @@
             double radius = 0.79*(0.45 - dr + dr*cos (6.*theta));
             return x*x + y*y - radius*radius;
           })
-    ApproxProjectionParams { nrelax = 4 tolerance = 1e-30 erelax = 2 }
+    GModule hypre
+    ApproxProjectionParams { erelax = 2 tolerance = 1e-30 nitermin = CYCLE nitermax = CYCLE }
     Init {} {
         Div = {
             int k = 3, l = 3;
@@ -70,14 +71,13 @@
         }
     }
     OutputTime { istep = 1 } {
-        awk '{print n++, $8}' > time
+      awk '{if ($2 == 1) {print "CYCLE " $8}}' >> time
     }
-    OutputProjectionStats { istep = 1 } {
+    OutputProjectionStats { start = end } {
         awk '{
-      if ($1 == "niter:") printf ("%d ", $2);
-      if ($1 == "residual.infty:") print $3 " " $4;
-    }' > proj
+      if ($1 == "residual.infty:") print "CYCLE "$3 " " $4;
+    }' >> proj
     }
-    OutputSimulation { start = end } sim-LEVEL { variables = P }
+    OutputSimulation { start = end } sim-LEVEL-SOLVER { variables = P }
 }
 GfsBox {}
diff --git a/test/circle/thin/error.ref b/test/circle/thin/error.ref
index 6ba8e5e..972425e 100644
--- a/test/circle/thin/error.ref
+++ b/test/circle/thin/error.ref
@@ -1,6 +1,6 @@
-3 1.577e-01 1.943e-01 4.335e-01
-4 6.417e-02 7.586e-02 2.048e-01
-5 2.960e-02 3.379e-02 1.364e-01
-6 1.426e-02 1.605e-02 9.463e-02
-7 7.001e-03 7.844e-03 6.646e-02
-8 3.468e-03 3.880e-03 4.687e-02
+3 1.577e-01 1.943e-01 4.335e-01	3 1.577e-01 1.943e-01 4.335e-01
+4 6.417e-02 7.586e-02 2.048e-01	4 6.417e-02 7.586e-02 2.048e-01
+5 2.960e-02 3.379e-02 1.364e-01	5 2.960e-02 3.379e-02 1.364e-01
+6 1.426e-02 1.605e-02 9.463e-02	6 1.426e-02 1.605e-02 9.463e-02
+7 7.001e-03 7.844e-03 6.646e-02	7 7.002e-03 7.844e-03 6.646e-02
+8 3.468e-03 3.880e-03 4.687e-02	8 3.469e-03 3.880e-03 4.687e-02
diff --git a/test/circle/thin/res-7.ref b/test/circle/thin/res-7.ref
index 19c7d9f..fb8c7f8 100644
--- a/test/circle/thin/res-7.ref
+++ b/test/circle/thin/res-7.ref
@@ -1,10 +1,10 @@
-1 0.4 2.895e+02 0.61
-2 0.73 8.132e+01 1.5
-3 1.07 2.256e+01 2
-4 1.39 6.258e+00 2.3
-5 1.7 1.736e+00 2.5
-6 2.03 4.814e-01 2.7
-7 2.36 1.335e-01 2.8
-8 2.68 3.703e-02 2.9
-9 3.05 1.027e-02 3
-10 3.36 2.848e-03 3
+1 0.61000000 2.892e+02 0.61	1 0.99000000 3.048e+01 5.8
+2 0.86000000 8.184e+01 1.5	2 1.06000000 1.982e+00 9.5
+3 1.11000000 2.229e+01 2	3 1.17000000 1.158e-01 12
+4 1.37000000 6.010e+00 2.3	4 1.27000000 6.862e-03 13
+5 1.64000000 1.618e+00 2.6	5 1.33000000 4.156e-04 13
+6 1.88000000 4.356e-01 2.7	6 1.39000000 2.552e-05 14
+7 2.16000000 1.172e-01 2.8	7 1.46000000 1.578e-06 14
+8 2.35000000 3.156e-02 2.9	8 1.56000000 9.788e-08 14
+9 2.67000000 8.494e-03 3	9 1.64000000 6.067e-09 15
+10 2.92000000 2.286e-03 3.1	10 1.73000000 3.627e-10 15
diff --git a/test/circle/thin/thin.gfs b/test/circle/thin/thin.gfs
index 627d78a..75249fe 100644
--- a/test/circle/thin/thin.gfs
+++ b/test/circle/thin/thin.gfs
@@ -42,14 +42,15 @@
 #
 # Author: St\'ephane Popinet
 # Command: sh ../circle.sh thin.gfs
-# Version: 0.8.0
+# Version: 100325
 # Required files: res-7.ref error.ref order.ref solution.gfv
 # Generated files: residual.eps rate.eps error.eps order.eps solution.eps
 #
 4 3 GfsPoisson GfsBox GfsGEdge {} {
-  Time { iend = 10 }
+  Time { iend = 1 }
   Refine LEVEL
-  ApproxProjectionParams { nrelax = 4 tolerance = 1e-30 erelax = 2 }
+  GModule hypre
+  ApproxProjectionParams { erelax = 2 tolerance = 1e-30 nitermin = CYCLE nitermax = CYCLE }
   Init {} {
     Div = {
       int k = 3, l = 3;
@@ -59,15 +60,14 @@
     }
   }
   OutputTime { istep = 1 } {
-    awk '{print n++, $8}' > time
+    awk '{if ($2 == 1) {print "CYCLE " $8}}' >> time
   }
-  OutputProjectionStats { istep = 1 } {
+  OutputProjectionStats { start = end } {
     awk '{
-      if ($1 == "niter:") printf ("%d ", $2);
-      if ($1 == "residual.infty:") print $3 " " $4;
-    }' > proj
+      if ($1 == "residual.infty:") print "CYCLE "$3 " " $4;
+    }' >> proj
   }
-  OutputSimulation { start = end } sim-LEVEL { variables = P }
+  OutputSimulation { start = end } sim-LEVEL-SOLVER { variables = P }
 }
 GfsBox {}
 GfsBox {}
diff --git a/test/conservation/conservation.gfs b/test/conservation/conservation.gfs
new file mode 100644
index 0000000..e7ffca8
--- /dev/null
+++ b/test/conservation/conservation.gfs
@@ -0,0 +1,50 @@
+# Title: Conservation of diffusive tracer
+#
+# Description:
+#
+# Tests that the total amount of a diffusive tracer is conserved
+# exactly on adaptive meshes. Also compares solutions obtained using
+# the implicit and explicit schemes.
+#
+# Author: St\'ephane Popinet and Ye Tao
+# Command: gerris3D conservation.gfs
+# Version: 110131
+# Required files:
+#
+1 0 GfsSimulation GfsBox GfsGEdge {} {
+    Time { iend = 100 dtmax = 2e-1 }
+    Refine 3
+    VariableTracer T
+    VariableTracer Te
+    InitFraction T (0.01 - (x*x + y*y + z*z))
+    InitFraction Te (0.01 - (x*x + y*y + z*z))
+    SourceDiffusion T 1e-4
+    SourceDiffusionExplicit Te 1e-4
+    AdaptGradient { istep = 1 } { minlevel = 3 maxlevel = 5 cmax = 1e-2 } T
+    OutputScalarSum { istep = 1 } st { v = T }
+    OutputScalarSum { istep = 1 } ste { v = T }
+    OutputScalarStats { istep = 1 } t { v = T }
+    OutputScalarStats { istep = 1 } te { v = T }
+    OutputScalarNorm { istep = 1 } diff { v = (T - Te) }
+    EventScript { start = end } {
+	if awk '{if ($9 > 6e-3) { 
+                   print "diff: " $9 > "/dev/stderr"; exit (1); 
+                }}' < diff &&
+	   awk 'BEGIN{ s=-1 } {
+                  if (s < 0.) s = $5; 
+                  else if ($5 - s != 0.) {
+                    print "st: " $5 - s > "/dev/stderr"; exit (1);
+                  }
+                }' < st &&
+	   awk 'BEGIN{ s=-1 } {
+                  if (s < 0.) s = $5;
+                  else if ($5 - s != 0.) {
+                    print "ste: " $5 - s > "/dev/stderr"; exit (1);
+                  }
+                }' < ste ; then :
+        else
+            exit $GFS_STOP;
+        fi
+    }
+}
+GfsBox{}
diff --git a/test/coriolis/coriolis.gfs b/test/coriolis/coriolis.gfs
new file mode 100644
index 0000000..26e6230
--- /dev/null
+++ b/test/coriolis/coriolis.gfs
@@ -0,0 +1,115 @@
+# Title: Coriolis formulation in 3-D
+#
+# Description:
+#
+# This test case is taken from the test cases of the Advanced Regional
+# Prediction System \cite{arps}.
+# A Coriolis term is applied to a cubic domain with periodic boundary
+# conditions in the x, y and z directions. Provided the flow has a unidirectional
+# initial velocity field and a zero initial pressure perturbation,
+# the spatial derivatives are initially zero and a solution exists to the
+# Navier-Stokes equations for which spatial derivatives are zero at
+# all times.
+#
+# In this case the velocity field is given by:
+# $$
+# u = A \cos(2\Omega t) + B \sin(2\Omega t)
+# $$
+# $$
+# v = - A \sin \Phi \sin(2\Omega t) + B \sin \Phi \cos(2\Omega t) + C
+# $$
+# $$
+# w = A \cos \Phi \sin(2\Omega t) - B \cos \Phi \cos(2\Omega t) + D
+# $$
+# where $A$, $B$, $C$ and $D$ are constants of integration:
+# $$
+# A = U_0
+# $$
+# $$
+# B = \sin \Phi V_0 - \cos \Phi W_0
+# $$
+# $$
+# C = \cos \Phi \left( \cos \Phi V_0 + \sin \Phi W_0 \right)
+# $$
+# $$
+# D = \sin \Phi \left( \cos \Phi V_0 + \sin \Phi W_0 \right)
+# $$
+# 
+# Here $\Phi = \frac{\pi}{2}$ so that the z component of the Coriolis
+# force is equal to zero. Figure \ref{velocity} shows the evolution
+# of the three components of the velocity with time.
+#
+# \begin{figure}[htbp]
+# \caption{\label{velocity} Evolution of the velocity with time.
+# The solid lines are the analytical solution.}
+# \begin{center}
+# \includegraphics[width=0.8\hsize]{velocity.eps}
+# \end{center}
+# \end{figure}
+#
+# Author: S\'ebastien Delaux
+# Command: sh coriolis.sh coriolis.gfs
+# Version: 100621
+# Required files: coriolis.sh
+# Generated files: velocity.eps error.dat
+#
+# Initial velocity
+Define U0 2
+Define V0 3
+Define W0 1
+
+# Latitude (so that rotation is only along z)
+Define Phi (M_PI/4.)
+
+# Coriolis frequency
+Define Omega 7.292e-5
+
+# Analytical solution
+Define A0 U0
+Define B0 (sin(Phi)*V0-cos(Phi)*W0)
+Define C0 (cos(Phi)*(cos(Phi)*V0+sin(Phi)*W0))
+Define D0 (sin(Phi)*(cos(Phi)*V0+sin(Phi)*W0))
+Define Usol0 (A0*cos(2*Omega*t)+B0*sin(2*Omega*t))
+Define Vsol0 (-A0*sin(Phi)*sin(2*Omega*t) + B0*sin(Phi)*cos(2*Omega*t) + C0)
+Define Wsol0 (A0*cos(Phi)*sin(2*Omega*t) - B0*cos(Phi)*cos(2*Omega*t) + D0)
+
+1 3 GfsSimulation GfsBox GfsGEdge { ly = 2 lz = 4 } {
+  Time { end = 30000  }
+
+  Refine 2
+  
+  # The reference length is set to 60 m
+  PhysicalParams { L = 60 }
+  
+  # Initialisation of the velocity field
+  Init {} {
+      U = U0
+      V = V0
+      W = W0
+  }
+  
+  # Viscosity (or eddy-viscosity)
+  SourceViscosity 10
+
+  # Coriolis forces
+  SourceCoriolis (2.*Omega) 0. { x = 0. y = 1. z = 1. }
+
+  # Output of the integral of each component of the velocity field over the domain every
+  # 1000 time steps
+  OutputScalarStats { step = 3000 } { awk '{print $3, $7}' > u.dat } { v = U }
+  OutputScalarStats { step = 3000 } { awk '{print $3, $7}' > v.dat } { v = V }
+  OutputScalarStats { step = 3000 } { awk '{print $3, $7}' > w.dat } { v = W }
+
+  # Output of some kind of error measurement
+  OutputScalarStats { istep = 10 } { awk '{print $3,$7}' > error.dat } {
+      v = sqrt((U - Usol0)*(U - Usol0) + (V - Vsol0)*(V - Vsol0) + (W - Wsol0)*(W - Wsol0))
+  }
+
+  # Output of the final simulation file
+  OutputSimulation { start = end } end.gfs
+}
+GfsBox {}
+# Setup of periodic boundary conditions in the 3 directions of space
+1 1 top
+1 1 right
+1 1 front
diff --git a/test/coriolis/coriolis.sh b/test/coriolis/coriolis.sh
new file mode 100644
index 0000000..2a9f4a3
--- /dev/null
+++ b/test/coriolis/coriolis.sh
@@ -0,0 +1,51 @@
+if test x$donotrun != xtrue; then
+    if gerris3D -m $1; then :
+    else
+	exit 1
+    fi
+fi
+
+if gnuplot <<EOF ; then :
+set term pos enhanced eps color solid lw 2 18
+set out 'velocity.eps'
+
+set bmargin 4
+set rmargin 3.5
+
+set xl 'Time (s)'
+set yl 'Velocity Components (m/s)'
+
+set key spacing 3
+
+U=2
+V=3
+W=1
+Phi=3.14159/4.
+Omega=7.292e-5
+A=U
+B=(sin(Phi)*V-cos(Phi)*W)
+C=(cos(Phi)*(cos(Phi)*V+sin(Phi)*W))
+D=(sin(Phi)*(cos(Phi)*V+sin(Phi)*W))
+solu(t)=(A*cos(2*Omega*t)+B*sin(2*Omega*t))
+solv(t)=(-A*sin(Phi)*sin(2*Omega*t) + B*sin(Phi)*cos(2*Omega*t) + C)
+solw(t)=(A*cos(Phi)*sin(2*Omega*t) - B*cos(Phi)*cos(2*Omega*t) + D)
+
+plot solu(x) t '', solv(x) t '', solw(x) t '',\
+     'u.dat' w p lc 1 ps 1.8 t 'U',\
+     'v.dat' w p lc 2 ps 1.8 t 'V',\
+     'w.dat' w p lc 3 ps 1.8 t 'W'
+
+EOF
+else
+    exit 1
+fi
+
+if cat <<EOF | python ; then :
+from check import *
+from sys import *
+if (Curve('error.dat',1,2)).max() > 1e-6:
+    exit(1)
+EOF
+else
+   exit 1
+fi
diff --git a/test/cosine/cosine.sh b/test/cosine/cosine.sh
index 7166c49..55d4fa2 100644
--- a/test/cosine/cosine.sh
+++ b/test/cosine/cosine.sh
@@ -1,7 +1,7 @@
 levels="4 5 6 7"
 alphas="45 90"
 
-if ! $donotrun; then
+if test x$donotrun != xtrue; then
     for alpha in $alphas; do
 	for i in $levels; do
 	    if gerris2D -DLEVEL=$i -DALPHA=$alpha cosine.gfs 2> log-$i-$alpha; then :
diff --git a/test/cosine/error-45.ref b/test/cosine/error-45.ref
index 2b246e0..a8161a6 100644
--- a/test/cosine/error-45.ref
+++ b/test/cosine/error-45.ref
@@ -1,4 +1,4 @@
-4 1 1.002e+00 5.316e-01 5.358e-01
-5 1 3.577e-01 2.092e-01 1.909e-01
-6 1 8.026e-02 5.107e-02 4.311e-02
-7 1 1.557e-02 1.174e-02 1.248e-02
+4 1 1.007e+00 5.319e-01 5.354e-01
+5 1 3.621e-01 2.115e-01 1.933e-01
+6 1 8.120e-02 5.159e-02 4.354e-02
+7 1 1.558e-02 1.174e-02 1.249e-02
diff --git a/test/cosine/error-90.ref b/test/cosine/error-90.ref
index 1d84b60..997d2cb 100644
--- a/test/cosine/error-90.ref
+++ b/test/cosine/error-90.ref
@@ -1,4 +1,4 @@
-4 1 6.565e-01 4.073e-01 3.483e-01
-5 1 2.002e-01 1.266e-01 9.351e-02
-6 1 3.949e-02 2.585e-02 1.578e-02
-7 1 8.840e-03 6.328e-03 5.954e-03
+4 1 6.583e-01 4.074e-01 3.517e-01
+5 1 2.035e-01 1.287e-01 9.475e-02
+6 1 3.972e-02 2.601e-02 1.589e-02
+7 1 8.938e-03 6.372e-03 5.956e-03
diff --git a/test/couette/couette.sh b/test/couette/couette.sh
index 8e7c7b0..da152fd 100644
--- a/test/couette/couette.sh
+++ b/test/couette/couette.sh
@@ -1,4 +1,4 @@
-if ! $donotrun; then
+if test x$donotrun != xtrue; then
     for model in 0 1 2 3; do
 	if sed "s/MODEL/$model/g" < $1 | gerris2D -; then :
 	else
diff --git a/test/cylinder/cylinder.gfs b/test/cylinder/cylinder.gfs
new file mode 100644
index 0000000..f99ccf1
--- /dev/null
+++ b/test/cylinder/cylinder.gfs
@@ -0,0 +1,92 @@
+# Title: Charge relaxation in an axisymmetric insulated conducting column
+#
+# Description:
+#
+# A conducting rigid cylinder of radius $R_o=0.1$ is immersed in an
+# insulating medium. Initially an uniform charge volume density is set
+# in the cylinder ($\rho_e ({\bf x},0)=0.5$).  As time passes the
+# charge migrates from the bulk to the interface of the cylinder but
+# the total charge in the cylinder section is preserved.
+# $$
+# Q(t)= \int_{\Sigma} \rho_e({\bf x},t) \, d \Sigma = Q_o= \pi R_o^2 \, \rho_e({\bf x},0).
+# $$
+# The outer electric field reaches a steady-state (Figure
+# \ref{efield}).
+#
+# \begin{figure}[htbp]
+# \caption{\label{charge}Relative error on the
+# charge per unit of length of cylinder as a function of
+# resolution. (\% Error =$|1-Q(t)/Q_o)|$)}
+# \begin{center}
+# \includegraphics[width=0.8\hsize]{charge.eps}
+# \end{center}
+# \end{figure}
+#
+# \begin{figure}[htbp]
+# \caption{\label{efield} Steady-state electric field profile 
+# as a function of resolution.}
+# \begin{center}
+# \includegraphics[width=0.8\hsize]{efield.eps}
+# \end{center}
+# \end{figure}
+#
+# \begin{figure}[htbp]
+# \caption{Error norms for the electric field.}
+# \begin{center}
+# \includegraphics[width=0.8\hsize]{error.eps}
+# \end{center}
+# \end{figure}
+#
+# Author: J.M. L\'opez-Herrera and S. Popinet
+# Command: sh cylinder.sh cylinder.gfs
+# Version: 100609
+# Required files: cylinder.sh norms.ref
+# Running time: 15 seconds
+# Generated files: charge.eps efield.eps error.eps
+#
+
+GModule electrohydro
+
+1 0 GfsElectroHydroAxi GfsBox GfsGEdge {} {
+    Global {
+        #define R0 0.1
+        #define rhoinic 0.5
+        #define K 3
+        #define E1 3
+        #define E2 1
+    }
+    Time { end = 15 dtmax = 1.0 }
+
+    VariableTracerVOF T
+    InitFraction T (R0 - y)
+    AdaptGradient { istep = 1 } { cmax = 1e-4 minlevel = 5 maxlevel = LEVEL } T
+    Init {} { Rhoe = rhoinic*T }
+ 
+    EventStop { istep = 10 } Ex 0.001
+
+    SourceDiffusionExplicit Rhoe K*T Phi
+
+#    OutputTime { istep = 1 } stderr
+    OutputScalarSum { step = 1 } {
+	awk 'BEGIN { R0 = 0.1 ; rhoinic = 0.5 ; L =1.0 ; Q = 0.5*R0*R0*L*rhoinic }
+	     { print $3,$5,100*sqrt((1.0 - $5/Q)*(1.0 - $5/Q)) }' > rhoe-LEVEL 
+    } { v = Rhoe }
+    OutputSimulation { start = end } {
+	awk '{ if ($1 != "#") print $2,sqrt($4*$4+$5*$5); }' > prof-LEVEL
+    } { 
+	format = text 
+	variables = Ex,Ey 
+    }
+    OutputErrorNorm { start = end } norms-LEVEL { v = Ey } {
+	s = (y < R0 ? 0 : 0.5*R0*R0*rhoinic/y)
+    }
+    OutputSimulation { start = end } result-LEVEL.gfs 
+} {
+    # Electric parameters
+    perm = E1*T+E2*(1.-T)
+    ElectricProjectionParams { tolerance = 1e-7 }
+}
+GfsBox {
+    top = Boundary { BcDirichlet Phi 0 }
+    bottom = Boundary
+}
diff --git a/test/cylinder/cylinder.sh b/test/cylinder/cylinder.sh
new file mode 100644
index 0000000..8e073b3
--- /dev/null
+++ b/test/cylinder/cylinder.sh
@@ -0,0 +1,96 @@
+if test x$donotrun != xtrue; then
+    for level in 5 6 7 8; do
+	if gerris2D -DLEVEL=$level $1; then :
+	else
+	    exit 1
+	fi
+    done
+fi
+
+for level in 5 6 7 8; do
+    echo -n "$level "
+    cat norms-$level
+done > norms
+
+if cat <<EOF | gnuplot; then :
+set term postscript eps color enhanced lw 2 18 solid
+
+#
+# electric field
+# 
+
+set output 'efield.eps'
+set xlabel 'r'
+set ylabel 'E'
+set key top right
+perm=1.
+R0=0.1
+rhoinic=0.5
+rho(x)= x<R0 ?  0. : 0.5*R0*R0*rhoinic/perm/x
+set samples 1000
+plot [0:1]\
+          'prof-5' t 'R_{o}/h_{min} = 3.2', \
+          'prof-6' t 'R_{o}/h_{min} = 6.4', \
+          'prof-7' t 'R_{o}/h_{min} = 12.8', \
+          'prof-8' t 'R_{o}/h_{min} = 25.6', \
+          rho(x) t 'Analytical solution'
+
+#
+# error on electric field
+#
+
+set output 'error.eps'
+set logscale
+set xlabel 'R_{o}/h_{min}'
+set ylabel 'Error norms on Ey'
+set xtics 3.2,2,102.4
+set key top right
+
+plot [2.5:30]'norms.ref' u (R0*2**\$1):10 w l t 'Max (ref)', \
+             'norms' u (R0*2**\$1):10 w p t 'Max', \
+             'norms.ref' u (R0*2**\$1):8 w l t 'L2 (ref)',\
+             'norms' u (R0*2**\$1):8 w p t 'L2',\
+             .025/x t 'first-order'
+
+#
+# error on total amount of charge
+# 
+
+set output 'charge.eps'
+set logscale
+set xlabel 'R_{o}/h_{min}'
+set ylabel 'Q (%  Error)'
+set xtics 3.2,2,102.4
+set key top right
+
+plot [2.5:30]'< tail -q -n 1 rhoe-*' u (R0*2**(5+\$0)):3 w lp t '', 20./x**2 t 'second-order'
+EOF
+else
+    exit 1
+fi
+
+# check charge conservation
+for level in 5 6 7 8; do
+    if awk 'BEGIN{ charge = 0. }{
+      if (charge == 0.)
+        charge = $2;
+      else if ($2 != charge)
+        exit (1);
+    }' < rhoe-$level; then :
+    else
+	exit 1
+    fi
+done
+
+# check error norms
+if cat <<EOF | python ; then :
+from check import *
+if (Curve('norms.ref',1,8) - Curve('norms',1,8)).max() > 1e-5 or \
+   (Curve('norms.ref',1,10) - Curve('norms',1,10)).max() > 1e-5:
+    print (Curve('norms.ref',1,8) - Curve('norms',1,8)).max()
+    print (Curve('norms.ref',1,10) - Curve('norms',1,10)).max()
+    exit(1)
+EOF
+else
+   exit 1
+fi
diff --git a/test/cylinder/norms.ref b/test/cylinder/norms.ref
new file mode 100644
index 0000000..f205dc6
--- /dev/null
+++ b/test/cylinder/norms.ref
@@ -0,0 +1,4 @@
+5 Ey time: 9 first:  3.051e-04 second:  2.033e-03 infty:  2.230e-02 bias: -1.597e-04
+6 Ey time: 9 first:  1.633e-04 second:  1.601e-03 infty:  2.457e-02 bias: -8.962e-05
+7 Ey time: 9 first:  4.158e-05 second:  5.942e-04 infty:  1.455e-02 bias: -6.382e-06
+8 Ey time: 9 first:  2.289e-05 second:  3.521e-04 infty:  1.229e-02 bias:  3.014e-06
diff --git a/test/cylinder/planar/norms.ref b/test/cylinder/planar/norms.ref
new file mode 100644
index 0000000..a27ad07
--- /dev/null
+++ b/test/cylinder/planar/norms.ref
@@ -0,0 +1,4 @@
+5 sqrt(Ex*Ex... time: 30 first:  4.747e-04 second:  1.590e-03 infty:  2.238e-02 bias: -3.211e-04
+6 sqrt(Ex*Ex... time: 20 first:  3.978e-04 second:  1.229e-03 infty:  2.442e-02 bias: -2.167e-04
+7 sqrt(Ex*Ex... time: 30 first:  3.478e-04 second:  8.139e-04 infty:  2.472e-02 bias: -1.589e-04
+8 sqrt(Ex*Ex... time: 30 first:  3.341e-04 second:  7.034e-04 infty:  2.496e-02 bias: -1.448e-04
diff --git a/test/cylinder/planar/planar.gfs b/test/cylinder/planar/planar.gfs
new file mode 100644
index 0000000..c725856
--- /dev/null
+++ b/test/cylinder/planar/planar.gfs
@@ -0,0 +1,90 @@
+# Title: Charge relaxation in a planar cross-section
+#
+# Description:
+#
+# Same problem but solved in a planar cross-section of the column.
+#
+# \begin{figure}[htbp]
+# \caption{\label{charge}Relative error on the
+# charge per unit of length of cylinder as a function of
+# resolution. (\% Error =$|1-Q(t)/Q_o)|$)}
+# \begin{center}
+# \includegraphics[width=0.8\hsize]{charge.eps}
+# \end{center}
+# \end{figure}
+#
+# \begin{figure}[htbp]
+# \caption{\label{efield} Steady-state electric field profile 
+# as a function of resolution.}
+# \begin{center}
+# \includegraphics[width=0.8\hsize]{efield.eps}
+# \end{center}
+# \end{figure}
+#
+# \begin{figure}[htbp]
+# \caption{Error norms for the electric field.}
+# \begin{center}
+# \includegraphics[width=0.8\hsize]{error.eps}
+# \end{center}
+# \end{figure}
+#
+# Author: J.M. L\'opez-Herrera and S. Popinet
+# Command: sh ../cylinder.sh planar.gfs
+# Version: 100609
+# Required files: norms.ref
+# Running time: 25 seconds
+# Generated files: charge.eps efield.eps error.eps
+#
+
+GModule electrohydro
+
+1 0 GfsElectroHydro GfsBox GfsGEdge {} {
+    Global {
+        #define R0 0.1
+        #define rhoinic 0.5
+        #define K 3
+        #define E1 3
+        #define E2 1
+    }
+    Time { end = 35 dtmax=1.0 }
+
+    VariableTracerVOF T
+    InitFraction T (R0*R0 - y*y - x*x)
+    AdaptGradient { istep = 1 } { cmax = 1e-4 minlevel = 5 maxlevel = LEVEL + 1 } T
+    PhysicalParams { L = 2 }
+    Init {} { Rhoe = rhoinic*T }  
+ 
+    EventStop { istep = 10 } Ex 0.001
+
+    SourceDiffusionExplicit Rhoe K*T Phi
+
+#    OutputTime { istep = 1 } stderr
+    OutputScalarSum { istep = 1 } { 
+       awk 'BEGIN { rhoinic = 0.5 ; R0 = 0.1 ; Q = rhoinic*R0*R0*3.141592654 }
+            { print $3,$5,100*sqrt((1.-$5/Q)*(1.-$5/Q)); fflush(stdout); }' > rhoe-LEVEL
+    } { v = Rhoe}
+    OutputSimulation { start = end } {
+	awk '{ if ($1 != "#") 
+                 print sqrt($2*$2+$1*$1),sqrt($4*$4+$5*$5); }' > prof-LEVEL
+    } { 
+	format = text 
+	variables = Ex,Ey 
+    }
+    OutputErrorNorm { start = end } norms-LEVEL { v = sqrt(Ex*Ex + Ey*Ey) } {
+	s = {
+	  double r = sqrt (x*x + y*y);
+          return (r < R0 ? 0 : 0.5*R0*R0*rhoinic/r);
+	}
+    }
+    OutputSimulation { start = end } result-LEVEL.gfs 
+} {
+    # Electric parameters
+    perm = E1*T+E2*(1.-T)
+    GfsElectricProjectionParams { tolerance = 1e-7 }
+}
+GfsBox {
+    top = Boundary { BcDirichlet Phi 0 }
+    bottom = Boundary { BcDirichlet Phi 0 }
+    left = Boundary { BcDirichlet Phi 0 }
+    right = Boundary { BcDirichlet Phi 0 }
+}
diff --git a/test/depend.py b/test/depend.py
index 47876c2..32fb172 100644
--- a/test/depend.py
+++ b/test/depend.py
@@ -9,11 +9,22 @@ import gfs2tex
 dists = ""
 depends = ""
 docs = ""
+reps = ""
+tests = ""
+logs = ""
 for start in sys.argv[1:]:
+    tests += "\\\n\t" + start + ".sh"
+    reps += " " + start
+    logs += "\\\n\t" + start + ".log"
+    f = open(start + ".sh", "w")
+    f.write("python -u test.py " + start + "\n")
+    f.close()
+    os.chmod(start + ".sh",0755)
     for root, dirs, files in os.walk(start,topdown=True):
         if not ".xvpics" in root:
             test = gfs2tex.Example(root)
             name = test.path + "/" + test.name + ".gfs"
+            
             docs += "\\\n\t" + name + ".html"
             dists += "\\\n\t" + name
             depends += "\\\n\t" + name
@@ -26,4 +37,11 @@ print "DOCS = " + docs + dists
 print ""
 print "EXTRA_DIST += " + dists
 print ""
+print "TESTS = " + tests + "\\\n\tsummary.sh"
+os.chmod("summary.sh",0755)
+print ""
+print "TESTS_ENVIRONMENT = TESTS=\"" + reps + "\""
+print "TEST_EXTENSIONS = .sh"
+print "summary.log:" + logs
+print ""
 print "tests.tex: " + depends
diff --git a/test/diffusion/diffusion.gfs b/test/diffusion/diffusion.gfs
new file mode 100644
index 0000000..b2b1e1a
--- /dev/null
+++ b/test/diffusion/diffusion.gfs
@@ -0,0 +1,43 @@
+# Title: Comparison between the explicit and implicit diffusion schemes
+#
+# Description:
+#
+# A tracer diffuses from the (circular) boundary of the domain for a
+# given time. This test case compares the solutions obtained using the
+# implicit and the explicit diffusion schemes.
+#
+# The radial tracer profiles for both schemes are illustrated in
+# Figure \ref{profile}.
+#
+# \begin{figure}[htbp]
+# \caption{\label{profile}Radial tracer profile evolution as a function of time.}
+# \begin{center}
+# \includegraphics[width=0.8\hsize]{profile.eps}
+# \end{center}
+# \end{figure}
+#
+# Author: St\'ephane Popinet
+# Command: sh diffusion.sh
+# Version: 101103
+# Required files: diffusion.sh
+# Generated files: profile.eps
+#
+1 0 GfsAdvection GfsBox GfsGEdge {} {
+    VariableTracer T { scheme = none }
+#    SourceDiffusion T 1 { beta = 1 }
+    SourceDiffusionExplicit T 1
+    Solid (-sphere(0,0,0,0.4))
+    Refine 5
+    SurfaceBc T Dirichlet 1
+
+    Time { end = 0.02 dtmax = 9e-5 }
+#    OutputTime { istep = 1 } stderr
+    OutputSimulation { start = 0.01 } end.gfs
+    OutputSimulation { start = 2.5e-3 step = 2.5e-3 } {
+	awk '{
+           if ($1 != "#")
+             print sqrt($1*$1+$2*$2),$8;
+        }' > prof
+    } { format = text }
+}
+GfsBox {}
diff --git a/test/diffusion/diffusion.sh b/test/diffusion/diffusion.sh
new file mode 100644
index 0000000..74fb38d
--- /dev/null
+++ b/test/diffusion/diffusion.sh
@@ -0,0 +1,37 @@
+if gerris2D diffusion.gfs; then
+    mv end.gfs end-explicit.gfs
+    mv prof prof-explicit
+else
+    exit 1
+fi
+
+if sed -e 's/SourceDiffusionExplicit T/#/' \
+       -e 's/#    SourceDiffusion/    SourceDiffusion/' < diffusion.gfs | \
+   gerris2D -; then
+    mv end.gfs end-implicit.gfs
+    mv prof prof-implicit
+else
+    exit 1
+fi
+
+if cat <<EOF | gnuplot; then :
+    set term postscript eps color lw 3 solid 20
+    set output 'profile.eps'
+    set xlabel 'r'
+    set ylabel 'T'
+    set key top left
+    plot 'prof-explicit' t 'explicit', 'prof-implicit' t 'implicit'
+EOF
+else
+    exit 1
+fi
+
+if gfscompare2D -v end-explicit.gfs end-implicit.gfs T 2>&1 | awk '{
+  if ($1 == "total" && ($6 > 3e-3 || $8 > 4e-3)) {
+    print $0
+    exit (1)
+  }
+}'; then :
+else
+    exit 1
+fi
diff --git a/test/electro/convergence.ref b/test/electro/convergence.ref
new file mode 100644
index 0000000..d00b180
--- /dev/null
+++ b/test/electro/convergence.ref
@@ -0,0 +1,4 @@
+8 0.00137739 0.00195571
+9 0.000857596 0.00124434
+10 0.00051165 0.000746346
+11 0.000353937 0.000509824
diff --git a/test/electro/electro.gfs b/test/electro/electro.gfs
new file mode 100644
index 0000000..cab4266
--- /dev/null
+++ b/test/electro/electro.gfs
@@ -0,0 +1,163 @@
+# Title: Equilibrium of a droplet suspended in an electric field
+#
+# Description:
+#
+# A conducting droplet is suspended in a conducting liquid of the same
+# density. A constant horizontal potential difference is imposed far
+# from the droplet. At equilibrium, surface tension balances the
+# normal electrical stresses while recirculations are induced by
+# tangential electrical stresses due to the variable charge distribution
+# along the interface (Figure \ref{recirculation}).
+#
+# \begin{figure}[htbp] 
+# \caption{\label{recirculation}Axisymmetric numerical solution in
+# stationary regime. Equipotential lines (black), interface (red),
+# velocity field (blue) and 45 degrees transect line (light blue).}
+# \begin{center}
+# \includegraphics[width=0.8\hsize]{figure.eps}
+# \end{center}
+# \end{figure}
+#
+# In the limit of Stokes flows, an analytical solution for the
+# velocity field is available \cite{taylor66,tomar2007}. Figure
+# \ref{profile} gives a comparison of the numerical and theoretical
+# results for the radial and azimuthal components of the velocity
+# along a transect inclined at 45 degrees.
+#
+# \begin{figure}[htbp] 
+# \caption{\label{profile}Radial and azimuthal components of the
+# velocity along a 45 degrees transect. The lines show the theoretical
+# solution and the symbols the numerical results. The (adaptive)
+# maximum spatial resolution is such that $R/h=51.2$ on the interface.}
+# \begin{center}
+# \includegraphics[width=0.8\hsize]{profile.eps}
+# \end{center}
+# \end{figure}
+# 
+# The total charge is conserved to within round-off errors.
+#
+# Author: Jose M. L\'opez-Herrera S\'anchez
+# Command: sh electro.sh
+# Version: 100527
+# Required files: electro.sh figure.gfv convergence.ref
+# Running time: 15 minutes
+# Generated files: profile.eps figure.eps
+
+GModule electrohydro
+
+1 0 GfsElectroHydroAxi GfsBox GfsGEdge {} {
+    Global {
+	#define R0 0.1
+	#define R 5.1
+	#define Q 10
+	#define Ef 1.34
+	#define Cmu 0.10
+	#define F 50.
+    }
+
+    PhysicalParams { L = 2 }
+    
+    Time { end = 1 }
+
+    VariableTracerVOF T
+    VariableCurvature K T
+    SourceTension T 1 K
+    SourceViscosity Cmu { beta = 1 }
+
+    InitFraction T (R0*R0 - (x*x + y*y))
+    AdaptGradient { istep = 1 } { cmax = 1e-4 minlevel = 4 maxlevel = 7 } T
+    AdaptError { istep = 1 } { cmax = 2e-4 maxlevel = 7 } U
+    AdaptError { istep = 1 } { cmax = 2e-4 maxlevel = 7 } V
+
+    SourceElectric
+    SourceDiffusionExplicit Rhoe F*((1. - T)+ R*T) Phi
+
+    Init {} { Phi = Ef*x }
+
+    EventStop { istep = 10 } Rhoe 0.001 { relative = 1 }
+
+    # OutputTime { istep = 10 } stderr
+    # OutputProjectionStats { istep = 10 } stderr
+    # OutputDiffusionStats { istep = 10 } stderr
+    # OutputSimulation { istep = 10 } stdout
+    # OutputTiming { istep = 100 } stderr
+
+    OutputScalarSum { istep = 10 } rhoe { v = Rhoe }
+
+    OutputLocation { start = end } {
+	awk '
+	BEGIN {
+	    R0 = 0.1
+	    Ef = 1.34
+	    mu = 0.1
+	    ep2 = 1.
+	    R = 5.1
+	    Q = 10.
+	    lambda = 1.
+	    factor = R0*Ef*Ef*ep2/mu
+	    theta = 3.14159265358979/4.
+	    A=-9./10.*(R-Q)/(R+2.)**2/(1.+lambda)
+	    st = sr = 0.
+	    sn = 0.
+	    
+	}
+	function radius(x,y)
+	{
+	    return sqrt(x*x+y*y)/R0
+	}
+	function vr(x,y,vx,vy)
+	{
+	    return (vx*x+vy*y)/(factor*sqrt(x*x+y*y))
+	}
+	function vt(x,y,vx,vy)
+	{
+	    return (vx*y-vy*x)/(factor*sqrt(x*x+y*y))
+	}
+	#  Theoretical velocity profile
+	function vtr(x)
+	{
+	    if (x < 1.)
+		return A*x*(1.-x**2)*(3.*sin(theta)**2-1.);
+	    else
+		return A*x**(-2)*(x**(-2)-1.)*(3.*sin(theta)**2-1.);
+	}
+	function vtt(x)
+	{
+	    if (x < 1.)
+		return 3.*A/2.*x*(1.-5./3.*x**2)*sin(2.*theta);
+	    else
+		return -A*x**(-4)*sin(2.*theta);
+	}
+	{
+	    if ($1 != "#") {
+		r = radius($2,$3)
+		tvr = vtr(r)
+		tvt = vtt(r)
+		print r,vr($2,$3,$7,$8),vt($2,$3,$7,$8),tvr,tvt
+		sr += (vr($2,$3,$7,$8) - tvr)**2
+		st += (vt($2,$3,$7,$8) - tvt)**2
+		sn += 1.
+	    }
+        }
+	END {
+	    print sqrt(sr/sn),sqrt(st/sn) > "/dev/stderr"
+	}' > fprof
+    } thetapi4
+    OutputSimulation { start = end } result.gfs
+} {
+    # Electric parameters
+    perm = (Q*T + (1. - T))
+    ElectricProjectionParams { tolerance = 1e-4 }
+}
+GfsBox {
+    right = Boundary {
+        BcDirichlet Phi Ef*x
+    }
+    left = Boundary {
+        BcDirichlet Phi Ef*x
+    }
+    top = Boundary {
+        BcDirichlet Phi Ef*x
+    }
+    bottom = Boundary
+}
diff --git a/test/electro/electro.sh b/test/electro/electro.sh
new file mode 100644
index 0000000..4abcc3e
--- /dev/null
+++ b/test/electro/electro.sh
@@ -0,0 +1,71 @@
+if test x$donotrun != xtrue; then
+    awk 'BEGIN{for (x = 0.35/100.; x <= 0.35; x += 0.35/100.) print x,x,0;}' > thetapi4
+    cp -f electro.gfs result-7.gfs
+    rm -f fprof-* convergence
+    for level in 8 9 10; do
+	level1=`expr $level - 1`
+	echo -n "$level " >> convergence
+	if sed -e 's/GfsTime.*$/Time { end = 1 }/' \
+            -e "s/maxlevel = $level1/maxlevel = $level/g" < result-$level1.gfs | \
+	    gerris2D - 2> log; then
+	    mv -f result.gfs result-$level.gfs
+	    mv -f fprof fprof-$level
+	    cat log >> convergence
+	else
+	    cat log > /dev/stderr
+	    exit 1
+	fi
+    done
+fi
+
+if echo "Save figure.eps { format = EPS }" | gfsview-batch2D result-10.gfs figure.gfv; then :
+else
+    exit 1
+fi
+
+if cat <<EOF | gnuplot; then :
+set term postscript eps color enhanced lw 2 18 solid
+set output 'profile.eps'
+
+#
+# Theoretical velocity profile taken from Tomar et al, 2007
+# 
+R=5.1
+Q=10.
+lambda=1.
+theta=pi/4.
+
+A=-9./10.*(R-Q)/(R+2.)**2/(1.+lambda)
+vtr(x)=(x < 1. ? A*x*(1.-x**2)*(3.*sin(theta)**2-1.) : \
+                 A*x**(-2)*(x**(-2)-1.)*(3.*sin(theta)**2-1.))
+vtt(x)=(x < 1. ? 3.*A/2.*x*(1.-5./3.*x**2)*sin(2.*theta) : \
+                 -A*x**(-4)*sin(2.*theta))
+
+set xlabel 'r/R_{0}'
+set ylabel 'v/v_{c}'
+set key bottom right
+set samples 1000
+plot \
+          'fprof-10' u 1:2 t '', \
+          'fprof-10' u 1:3 t '', \
+          vtr(x) t 'v_{r}', vtt(x) t 'v_{/Symbol q}'
+EOF
+else
+    exit 1
+fi
+
+if cat <<EOF | python ; then :
+from check import *
+from sys import *
+c = Curve()
+print (Curve('convergence',1,2) - Curve('convergence.ref',1,2)).max()
+print (Curve('convergence',1,3) - Curve('convergence.ref',1,3)).max()
+print Curve('rhoe',3,5).max()
+if (Curve('convergence',1,2) - Curve('convergence.ref',1,2)).max() > 1e-6 or\
+   (Curve('convergence',1,3) - Curve('convergence.ref',1,3)).max() > 1e-6 or\
+    Curve('rhoe',3,5).max() > 1e-6:
+    exit(1)
+EOF
+else
+   exit 1
+fi
diff --git a/test/electro/figure.gfv b/test/electro/figure.gfv
new file mode 100644
index 0000000..af0db96
--- /dev/null
+++ b/test/electro/figure.gfv
@@ -0,0 +1,92 @@
+# GfsView 2D
+View {
+  tx = 0 ty = -0.0610865
+  sx = 1 sy = 1 sz = 1
+  q0 = 0 q1 = 0 q2 = 0 q3 = 1
+  fov = 2.34266
+  r = 1 g = 1 b = 1
+  res = 1
+  lc = 0.001
+  reactivity = 0.1
+}
+Isoline {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+  font_size = 1
+  raster_font = 1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} Phi {
+  amin = 1
+  amax = 1
+  cmap = Jet
+} 0 {
+  reversed = 0
+  use_scalar = 1
+} {
+  n = 100
+}
+Vectors {
+  r = 0.0366369 g = 0.0660868 b = 0.992248
+  shading = Constant
+  maxlevel = 8
+  font_size = 1
+  raster_font = 1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} P {
+  amin = 1
+  amax = 1
+  cmap = Jet
+} U V {
+  scale = 0.2
+  use_scalar = 0
+}
+VOF {
+  r = 1 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+  font_size = 1
+  raster_font = 1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} P {
+  amin = 1
+  amax = 1
+  cmap = Jet
+} T {
+  reversed = 0
+  use_scalar = 0
+  draw_edges = 0
+  interpolate = 0
+}
+Boundaries {
+  r = 0.171145 g = 0.827527 b = 0.180316
+  shading = Constant
+  maxlevel = -1
+  font_size = 1
+  raster_font = 1
+}
+Isoline {
+  r = 0 g = 0.919661 b = 1
+  shading = Constant
+  maxlevel = -1
+  font_size = 1
+  raster_font = 1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} x-y {
+  amin = 1
+  amax = 1
+  cmap = Jet
+} 0 {
+  reversed = 0
+  use_scalar = 1
+} {
+  n = 0 levels = 0
+}
diff --git a/test/gaussian/gaussian.gfs b/test/gaussian/gaussian.gfs
new file mode 100644
index 0000000..d769e1e
--- /dev/null
+++ b/test/gaussian/gaussian.gfs
@@ -0,0 +1,90 @@
+# Title: Poisson equation on a sphere with Gaussian forcing 
+#
+# Description:
+#
+# This test case is inspired from \cite{boyd2010} who derived an analytical
+# solution for the Poisson equation on a sphere forced by a Gaussian term on
+# the north pole. The equation is of the form
+# $$
+#  \nabla^2 \Phi = \exp(-2 \epsilon^2 (1-cos(\theta+\frac{\pi}{2}))) - cste
+# $$
+# The problem is axisymmetric and has for solution:
+# $$
+#  \Phi = \frac{1}{4\epsilon^2} \left( 1 - \exp(-4 \epsilon^2) \right) \log(1-x)
+#  - \frac{1}{4\epsilon^2} \exp(-4 \epsilon^2) \log \left( \frac{1+x}{1-x} \right)
+# $$
+# $$
+#  + \frac{1}{4\epsilon^2} E_1 (2 \epsilon^2 (1-x))
+#  + \frac{1}{4\epsilon^2} \exp(-4 \epsilon^2) E_i(2 \epsilon^2 (1+x))
+# $$
+# where $E_1$ is the exponential integral function, $E_i(x) = -Re (E_1(-x))$ 
+# and $x = cos(\theta+\frac{\pi}{2})$.
+# 
+# The solution is not easy to compute and was evaluated over a cross-section
+# using the Maxima software.
+#
+# \begin{figure}[htbp]
+#   \caption{\label{profile}Solution of the Poisson problem as a function of latitude.}
+#   \begin{center}
+#   \begin{tabular}{c}
+#     \includegraphics[width=0.8\hsize]{profile.eps}
+#   \end{tabular}
+#   \end{center}
+# \end{figure}
+#
+# Author: S\'ebastien Delaux
+# Command: sh gaussian.sh gaussian.gfs 2e-5
+# Version: 110208
+# Required files: gaussian.sh prof.ref
+# Generated files: profile.eps
+#
+6 12 GfsPoisson GfsBox GfsGEdge {} {
+  PhysicalParams { L = 2.*M_PI/4. }
+  MetricCubed M LEVEL
+  Time { iend = 1 }
+  Refine LEVEL
+
+  ProjectionParams { tolerance = 1e-12 }
+  ApproxProjectionParams { tolerance = 1e-12 }
+
+  Init {} { Div = exp(-2.*5.*5.*(1.-cos((y + 90.)/180.*M_PI))) }
+
+  OutputLocation { start = end } prof.dat profile
+
+  OutputSimulation { start = end } end.gfs
+  OutputProjectionStats { istep = 1 } stderr
+
+  EventScript { start = end } {
+      gnuplot <<EOF
+      set term pos enhanced eps color solid 20 lw 3 
+      set out 'profile.eps'
+
+      set key bottom right
+      set xl "Latitude"
+      set yl "{/Symbol F}"
+      set xr [-90:90]
+
+      plot './prof.dat' u 3:5 every 5 ps 2 t "Gerris",\
+           'prof.ref'u 1:2 w l t "(Boyd and Zhou, 2009)"
+EOF
+  }
+  
+}
+GfsBox {}
+GfsBox {}
+GfsBox {}
+GfsBox {}
+GfsBox {}
+GfsBox {}
+1 2 right
+2 3 top
+3 4 right
+4 5 top
+5 6 right
+6 1 top
+1 3 top left
+3 5 top left
+5 1 top left
+2 6 bottom right
+4 2 bottom right
+6 4 bottom right
diff --git a/test/gaussian/gaussian.sh b/test/gaussian/gaussian.sh
new file mode 100644
index 0000000..5ae6cd5
--- /dev/null
+++ b/test/gaussian/gaussian.sh
@@ -0,0 +1,28 @@
+emax=$2
+
+if test x$donotrun != xtrue; then
+    awk '{printf("%4.3f %4.3f 0.\n",0.,$1)}' < prof.ref > profile
+    if ( gerris2D -DLEVEL=7 $1 ) ; then :
+    else
+	exit 1
+    fi     	
+    
+else
+    exit 1
+fi
+
+if cat <<EOF | python ; then :
+from check import *
+from sys import *
+avg = (Curve('prof.ref',1,2) - Curve('prof.dat',3,5)).mean()
+print avg
+c = Curve()
+for p in Curve('prof.dat',3,5).l:
+    c.l.append((p[0], p[1] + avg))
+if (Curve('prof.ref',1,2) - c).normi() > $emax:
+   print (Curve('prof.ref',1,2) - c).normi()
+   exit(1)
+EOF
+else
+   exit 1
+fi
diff --git a/test/gaussian/lonlat/lonlat.gfs b/test/gaussian/lonlat/lonlat.gfs
new file mode 100644
index 0000000..1c1b211
--- /dev/null
+++ b/test/gaussian/lonlat/lonlat.gfs
@@ -0,0 +1,60 @@
+# Title: Gaussian forcing using longitude-latitude coordinates
+#
+# Description:
+#
+# Same test case but using a longitude-latitude metric. The errors are
+# larger near the poles and the convergence rate of the multigrid
+# solver much lower due to the large scale ratio between cells at the
+# poles and at the equator.
+#
+# \begin{figure}[htbp]
+#   \caption{\label{profile}Solution of the Poisson problem as a function of latitude.}
+#   \begin{center}
+#   \begin{tabular}{c}
+#     \includegraphics[width=0.8\hsize]{profile.eps}
+#   \end{tabular}
+#   \end{center}
+# \end{figure}
+#
+# Author: S\'ebastien Delaux
+# Command: sh ../gaussian.sh lonlat.gfs 4e-3
+# Version: 110208
+# Required files: prof.ref
+# Generated files: profile.eps
+#
+2 2 GfsPoisson GfsBox GfsGEdge {} {
+  PhysicalParams { L = M_PI }
+  MetricLonLat M 1.
+  Time { iend = 1 }
+  Refine LEVEL
+
+  ProjectionParams { tolerance = 1e-12 }
+  ApproxProjectionParams { tolerance = 1e-12 }
+
+  Init {} { Div = exp(-2.*5.*5.*(1.-cos((y + 90.)/180.*M_PI))) }
+
+  OutputLocation { start = end } prof.dat profile
+
+  OutputSimulation { start = end } end.gfs
+  OutputProjectionStats { istep = 1 } stderr
+
+  EventScript { start = end } {
+      gnuplot <<EOF
+      set term pos enhanced eps color solid 20 lw 3 
+      set out 'profile.eps'
+
+      set key bottom right
+      set xl "Latitude"
+      set yl "{/Symbol F}"
+      set xr [-90:90]
+
+      plot './prof.dat' u 3:(\$5-0.0078011) every 5 ps 2 t "Gerris",\
+           'prof.ref'u 1:2 w l t "(Boyd and Zhou, 2009)"
+EOF
+  }
+  
+}
+GfsBox {}
+GfsBox {}
+1 2 right
+2 1 right
diff --git a/test/gaussian/lonlat/prof.ref b/test/gaussian/lonlat/prof.ref
new file mode 100644
index 0000000..a3a3d45
--- /dev/null
+++ b/test/gaussian/lonlat/prof.ref
@@ -0,0 +1,180 @@
+-89.99990 -0.040858841760
+-88.99990 -0.040783577840
+-87.99990 -0.040559530185
+-86.99990 -0.040191753718
+-85.99990 -0.039688391383
+-84.99990 -0.039060275012
+-83.99990 -0.038320410689
+-82.99990 -0.037483387077
+-81.99990 -0.036564748804
+-80.99990 -0.035580376654
+-79.99990 -0.034545912139
+-78.99990 -0.033476256927
+-77.99990 -0.032385168550
+-76.99990 -0.031284963961
+-75.99990 -0.030186333008
+-74.99990 -0.029098255571
+-73.99990 -0.028028009707
+-72.99990 -0.026981253878
+-71.99990 -0.025962164340
+-70.99990 -0.024973608680
+-69.99990 -0.024017338046
+-68.99990 -0.023094183235
+-67.99990 -0.022204242987
+-66.99990 -0.021347056258
+-65.99990 -0.020521753363
+-64.99990 -0.019727183659
+-63.99990 -0.018962019566
+-62.99990 -0.018224838341
+-61.99990 -0.017514183962
+-60.99990 -0.016828612052
+-59.99990 -0.016166720874
+-58.99990 -0.015527171324
+-57.99990 -0.014908698531
+-56.99990 -0.014310117305
+-55.99990 -0.013730323254
+-54.99990 -0.013168290997
+-53.99990 -0.012623070565
+-52.99990 -0.012093782773
+-51.99990 -0.011579614115
+-50.99990 -0.011079811563
+-49.99990 -0.010593677493
+-48.99990 -0.010120564887
+-47.99990 -0.009659872881
+-46.99990 -0.009211042681
+-45.99990 -0.008773553860
+-44.99990 -0.008346921004
+-43.99990 -0.007930690693
+-42.99990 -0.007524438781
+-41.99990 -0.007127767957
+-40.99990 -0.006740305536
+-39.99990 -0.006361701483
+-38.99990 -0.005991626621
+-37.99990 -0.005629771014
+-36.99990 -0.005275842504
+-35.99990 -0.004929565384
+-34.99990 -0.004590679189
+-33.99990 -0.004258937605
+-32.99990 -0.003934107464
+-31.99990 -0.003615967830
+-30.99990 -0.003304309169
+-29.99990 -0.002998932579
+-28.99990 -0.002699649092
+-27.99990 -0.002406279026
+-26.99990 -0.002118651394
+-25.99990 -0.001836603359
+-24.99990 -0.001559979726
+-23.99990 -0.001288632481
+-22.99990 -0.001022420357
+-21.99990 -0.000761208437
+-20.99990 -0.000504867786
+-19.99990 -0.000253275106
+-18.99990 -0.000006312417
+-17.99990 0.000236133236
+-16.99990 0.000474170062
+-15.99990 0.000707901779
+-14.99990 0.000937427855
+-13.99990 0.001162843730
+-12.99990 0.001384241029
+-11.99990 0.001601707751
+-10.99990 0.001815328460
+-9.99990 0.002025184451
+-8.99990 0.002231353912
+-7.99990 0.002433912077
+-6.99990 0.002632931366
+-5.99990 0.002828481520
+-4.99990 0.003020629724
+-3.99990 0.003209440728
+-2.99990 0.003394976956
+-1.99990 0.003577298611
+-0.99990 0.003756463775
+0.00010 0.003932528502
+1.00010 0.004105546907
+2.00010 0.004275571248
+3.00010 0.004442652003
+4.00010 0.004606837949
+5.00010 0.004768176231
+6.00010 0.004926712427
+7.00010 0.005082490613
+8.00010 0.005235553422
+9.00010 0.005385942103
+10.00010 0.005533696574
+11.00010 0.005678855472
+12.00010 0.005821456206
+13.00010 0.005961534997
+14.00010 0.006099126930
+15.00010 0.006234265988
+16.00010 0.006366985100
+17.00010 0.006497316171
+18.00010 0.006625290125
+19.00010 0.006750936938
+20.00010 0.006874285667
+21.00010 0.006995364486
+22.00010 0.007114200715
+23.00010 0.007230820849
+24.00010 0.007345250581
+25.00010 0.007457514837
+26.00010 0.007567637790
+27.00010 0.007675642895
+28.00010 0.007781552902
+29.00010 0.007885389886
+30.00010 0.007987175261
+31.00010 0.008086929805
+32.00010 0.008184673677
+33.00010 0.008280426436
+34.00010 0.008374207055
+35.00010 0.008466033946
+36.00010 0.008555924967
+37.00010 0.008643897442
+38.00010 0.008729968177
+39.00010 0.008814153470
+40.00010 0.008896469128
+41.00010 0.008976930478
+42.00010 0.009055552382
+43.00010 0.009132349246
+44.00010 0.009207335032
+45.00010 0.009280523270
+46.00010 0.009351927069
+47.00010 0.009421559126
+48.00010 0.009489431736
+49.00010 0.009555556800
+50.00010 0.009619945836
+51.00010 0.009682609987
+52.00010 0.009743560029
+53.00010 0.009802806378
+54.00010 0.009860359097
+55.00010 0.009916227908
+56.00010 0.009970422191
+57.00010 0.010022950998
+58.00010 0.010073823055
+59.00010 0.010123046768
+60.00010 0.010170630232
+61.00010 0.010216581234
+62.00010 0.010260907257
+63.00010 0.010303615490
+64.00010 0.010344712827
+65.00010 0.010384205875
+66.00010 0.010422100957
+67.00010 0.010458404119
+68.00010 0.010493121128
+69.00010 0.010526257483
+70.00010 0.010557818412
+71.00010 0.010587808880
+72.00010 0.010616233590
+73.00010 0.010643096986
+74.00010 0.010668403258
+75.00010 0.010692156340
+76.00010 0.010714359919
+77.00010 0.010735017430
+78.00010 0.010754132064
+79.00010 0.010771706769
+80.00010 0.010787744247
+81.00010 0.010802246963
+82.00010 0.010815217140
+83.00010 0.010826656766
+84.00010 0.010836567589
+85.00010 0.010844951125
+86.00010 0.010851808654
+87.00010 0.010857141221
+88.00010 0.010860949640
+89.00010 0.010863234491
diff --git a/test/gaussian/prof.ref b/test/gaussian/prof.ref
new file mode 100644
index 0000000..a3a3d45
--- /dev/null
+++ b/test/gaussian/prof.ref
@@ -0,0 +1,180 @@
+-89.99990 -0.040858841760
+-88.99990 -0.040783577840
+-87.99990 -0.040559530185
+-86.99990 -0.040191753718
+-85.99990 -0.039688391383
+-84.99990 -0.039060275012
+-83.99990 -0.038320410689
+-82.99990 -0.037483387077
+-81.99990 -0.036564748804
+-80.99990 -0.035580376654
+-79.99990 -0.034545912139
+-78.99990 -0.033476256927
+-77.99990 -0.032385168550
+-76.99990 -0.031284963961
+-75.99990 -0.030186333008
+-74.99990 -0.029098255571
+-73.99990 -0.028028009707
+-72.99990 -0.026981253878
+-71.99990 -0.025962164340
+-70.99990 -0.024973608680
+-69.99990 -0.024017338046
+-68.99990 -0.023094183235
+-67.99990 -0.022204242987
+-66.99990 -0.021347056258
+-65.99990 -0.020521753363
+-64.99990 -0.019727183659
+-63.99990 -0.018962019566
+-62.99990 -0.018224838341
+-61.99990 -0.017514183962
+-60.99990 -0.016828612052
+-59.99990 -0.016166720874
+-58.99990 -0.015527171324
+-57.99990 -0.014908698531
+-56.99990 -0.014310117305
+-55.99990 -0.013730323254
+-54.99990 -0.013168290997
+-53.99990 -0.012623070565
+-52.99990 -0.012093782773
+-51.99990 -0.011579614115
+-50.99990 -0.011079811563
+-49.99990 -0.010593677493
+-48.99990 -0.010120564887
+-47.99990 -0.009659872881
+-46.99990 -0.009211042681
+-45.99990 -0.008773553860
+-44.99990 -0.008346921004
+-43.99990 -0.007930690693
+-42.99990 -0.007524438781
+-41.99990 -0.007127767957
+-40.99990 -0.006740305536
+-39.99990 -0.006361701483
+-38.99990 -0.005991626621
+-37.99990 -0.005629771014
+-36.99990 -0.005275842504
+-35.99990 -0.004929565384
+-34.99990 -0.004590679189
+-33.99990 -0.004258937605
+-32.99990 -0.003934107464
+-31.99990 -0.003615967830
+-30.99990 -0.003304309169
+-29.99990 -0.002998932579
+-28.99990 -0.002699649092
+-27.99990 -0.002406279026
+-26.99990 -0.002118651394
+-25.99990 -0.001836603359
+-24.99990 -0.001559979726
+-23.99990 -0.001288632481
+-22.99990 -0.001022420357
+-21.99990 -0.000761208437
+-20.99990 -0.000504867786
+-19.99990 -0.000253275106
+-18.99990 -0.000006312417
+-17.99990 0.000236133236
+-16.99990 0.000474170062
+-15.99990 0.000707901779
+-14.99990 0.000937427855
+-13.99990 0.001162843730
+-12.99990 0.001384241029
+-11.99990 0.001601707751
+-10.99990 0.001815328460
+-9.99990 0.002025184451
+-8.99990 0.002231353912
+-7.99990 0.002433912077
+-6.99990 0.002632931366
+-5.99990 0.002828481520
+-4.99990 0.003020629724
+-3.99990 0.003209440728
+-2.99990 0.003394976956
+-1.99990 0.003577298611
+-0.99990 0.003756463775
+0.00010 0.003932528502
+1.00010 0.004105546907
+2.00010 0.004275571248
+3.00010 0.004442652003
+4.00010 0.004606837949
+5.00010 0.004768176231
+6.00010 0.004926712427
+7.00010 0.005082490613
+8.00010 0.005235553422
+9.00010 0.005385942103
+10.00010 0.005533696574
+11.00010 0.005678855472
+12.00010 0.005821456206
+13.00010 0.005961534997
+14.00010 0.006099126930
+15.00010 0.006234265988
+16.00010 0.006366985100
+17.00010 0.006497316171
+18.00010 0.006625290125
+19.00010 0.006750936938
+20.00010 0.006874285667
+21.00010 0.006995364486
+22.00010 0.007114200715
+23.00010 0.007230820849
+24.00010 0.007345250581
+25.00010 0.007457514837
+26.00010 0.007567637790
+27.00010 0.007675642895
+28.00010 0.007781552902
+29.00010 0.007885389886
+30.00010 0.007987175261
+31.00010 0.008086929805
+32.00010 0.008184673677
+33.00010 0.008280426436
+34.00010 0.008374207055
+35.00010 0.008466033946
+36.00010 0.008555924967
+37.00010 0.008643897442
+38.00010 0.008729968177
+39.00010 0.008814153470
+40.00010 0.008896469128
+41.00010 0.008976930478
+42.00010 0.009055552382
+43.00010 0.009132349246
+44.00010 0.009207335032
+45.00010 0.009280523270
+46.00010 0.009351927069
+47.00010 0.009421559126
+48.00010 0.009489431736
+49.00010 0.009555556800
+50.00010 0.009619945836
+51.00010 0.009682609987
+52.00010 0.009743560029
+53.00010 0.009802806378
+54.00010 0.009860359097
+55.00010 0.009916227908
+56.00010 0.009970422191
+57.00010 0.010022950998
+58.00010 0.010073823055
+59.00010 0.010123046768
+60.00010 0.010170630232
+61.00010 0.010216581234
+62.00010 0.010260907257
+63.00010 0.010303615490
+64.00010 0.010344712827
+65.00010 0.010384205875
+66.00010 0.010422100957
+67.00010 0.010458404119
+68.00010 0.010493121128
+69.00010 0.010526257483
+70.00010 0.010557818412
+71.00010 0.010587808880
+72.00010 0.010616233590
+73.00010 0.010643096986
+74.00010 0.010668403258
+75.00010 0.010692156340
+76.00010 0.010714359919
+77.00010 0.010735017430
+78.00010 0.010754132064
+79.00010 0.010771706769
+80.00010 0.010787744247
+81.00010 0.010802246963
+82.00010 0.010815217140
+83.00010 0.010826656766
+84.00010 0.010836567589
+85.00010 0.010844951125
+86.00010 0.010851808654
+87.00010 0.010857141221
+88.00010 0.010860949640
+89.00010 0.010863234491
diff --git a/test/geo/beta/beta.gfs b/test/geo/beta/beta.gfs
index 98e9605..7b38aab 100644
--- a/test/geo/beta/beta.gfs
+++ b/test/geo/beta/beta.gfs
@@ -33,7 +33,7 @@
 #
 # Author: St\'ephane Popinet
 # Command: sh beta.sh beta.gfs
-# Version: 0.8.0
+# Version: 100323
 # Required files: beta.sh c dlw lls pzm llw energy.ref energy-nonlinear.ref
 # Running time: 3 minutes
 # Generated files: energy.eps
@@ -47,19 +47,21 @@
   # g = 0.01 m/s^2
   PhysicalParams { g = 9.4534734306584e-4 }
   ApproxProjectionParams { tolerance = 1e-6 }
+  Solid (z + 1.)
   Init {} {
     # e-folding radius = 100 km
     # umax = 0.5 m/s = sqrt(200)*exp(-1/2)
     U = (5.667583815e-4*200.*y*exp (-100.*(x*x + y*y)))
     V = (- 5.667583815e-4*200.*x*exp (-100.*(x*x + y*y)))
     P = (5.667583815e-4*exp (-100.*(x*x + y*y)))
-    H = 1
   }
   # f0 = 1.0285e-4 s-1
   # beta = 1.607e-11 m-1s-1
-  SourceCoriolis {} (1. + 0.156246961595*(y + 0.5))
+  SourceCoriolis (1. + 0.156246961595*(y + 0.5))
 
-  OutputScalarSum { istep = 150 } { awk '{print $3/1.0285e-4/3600./24. " " $5/6.34646e-06}' > energy } { v = (Velocity2 + P*P/9.4534734306584e-4) }
+  OutputScalarSum { istep = 150 } { 
+      awk '{print $3/1.0285e-4/3600./24. " " $5/9.683940e-11}' > energy 
+  } { v = (Velocity2 + P*P/9.4534734306584e-4) }
 }
 GfsBox {
   front = Boundary
diff --git a/test/geo/beta/beta.sh b/test/geo/beta/beta.sh
index 661e662..a62c8e6 100644
--- a/test/geo/beta/beta.sh
+++ b/test/geo/beta/beta.sh
@@ -1,11 +1,11 @@
-if ! $donotrun; then
-    if gerris2D3 $1; then :
+if test x$donotrun != xtrue; then
+    if gerris3D $1; then :
     else
 	exit 1
     fi
     mv -f energy energy-nonlinear
     if sed 's/Refine 6/Refine 6\nAdvectionParams {scheme = none}/' < $1 |\
-       gerris2D3 -; then :
+       gerris3D -; then :
     else
 	exit 1
     fi
diff --git a/test/geo/beta/energy-nonlinear.ref b/test/geo/beta/energy-nonlinear.ref
index c115e40..41d17f7 100644
--- a/test/geo/beta/energy-nonlinear.ref
+++ b/test/geo/beta/energy-nonlinear.ref
@@ -1,11 +1,11 @@
 0 1
-1.73611 0.996768
-3.47222 0.993652
-5.20833 0.990761
-6.94444 0.98795
-8.68056 0.985093
-10.4167 0.982291
-12.1528 0.97958
-13.8889 0.976855
-15.6251 0.97414
-17.3611 0.971562
+1.73611 0.996678
+3.47222 0.993478
+5.20833 0.990507
+6.94444 0.987619
+8.68056 0.984683
+10.4167 0.981807
+12.1528 0.979026
+13.8889 0.976235
+15.6251 0.973455
+17.3611 0.970815
diff --git a/test/geo/beta/energy.ref b/test/geo/beta/energy.ref
index 3de376a..965b789 100644
--- a/test/geo/beta/energy.ref
+++ b/test/geo/beta/energy.ref
@@ -1,11 +1,11 @@
 0 1
-1.73611 0.997607
-3.47222 0.995234
-5.20833 0.992885
-6.94444 0.990559
-8.68056 0.988258
-10.4167 0.985979
-12.1528 0.983722
-13.8889 0.981484
-15.6251 0.979269
-17.3611 0.977071
+1.73611 0.997596
+3.47222 0.995221
+5.20833 0.992868
+6.94444 0.990541
+8.68056 0.988236
+10.4167 0.985956
+12.1528 0.983694
+13.8889 0.981457
+15.6251 0.979237
+17.3611 0.977037
diff --git a/test/geo/e.ref b/test/geo/e.ref
index 0b52019..84536c1 100644
--- a/test/geo/e.ref
+++ b/test/geo/e.ref
@@ -1,4 +1,4 @@
-0 5.18011e-17
+0 0
 0.0115741 5.11875e-05
 0.0231481 0.000108532
 0.0347222 0.000176337
@@ -50,7 +50,7 @@
 0.56713 0.000464485
 0.578704 0.000606973
 0.590278 0.000773367
-0.601852 0.000959647
+0.601852 0.000959753
 0.613426 0.00116148
 0.625 0.0013741
 0.636574 0.00159307
@@ -198,1384 +198,1384 @@
 2.2801 0.000486276
 2.29167 0.000468399
 2.30325 0.000451368
-2.31481 0.0004373
-2.32639 0.000437194
-2.33796 0.00043529
+2.31481 0.000437405
+2.32639 0.000437405
+2.33796 0.000435501
 2.34954 0.00043529
-2.36111 0.000435396
-2.37269 0.000432857
-2.38426 0.000427779
-2.39584 0.000426827
-2.40741 0.000423865
-2.41899 0.000418576
-2.43056 0.000417836
-2.44214 0.000426193
-2.4537 0.000432539
-2.46528 0.000436665
-2.47685 0.000452638
-2.48843 0.000461947
-2.5 0.000465014
-2.51158 0.000469774
-2.52315 0.000476756
-2.53473 0.000478554
-2.5463 0.000476544
-2.55788 0.000471784
-2.56944 0.00046512
-2.58102 0.000460677
-2.59259 0.000455494
-2.60417 0.000448301
-2.61574 0.000440367
-2.62732 0.000432539
-2.63889 0.000423336
-2.65047 0.000411912
-2.66204 0.000402603
-2.67362 0.000392343
-2.68519 0.000379226
-2.69676 0.000370552
-2.70833 0.000399641
-2.71991 0.000448407
-2.73148 0.000489556
-2.74306 0.000522136
-2.75463 0.000545831
-2.76621 0.000559794
-2.77778 0.000563391
-2.78936 0.000558631
-2.80093 0.000548053
-2.81251 0.000535888
-2.82407 0.000522136
-2.83565 0.000508385
-2.84722 0.000506375
-2.8588 0.000502461
-2.87037 0.000496431
-2.88195 0.000489238
-2.89352 0.000483103
-2.9051 0.000475063
-2.91667 0.000464168
-2.92825 0.000456869
-2.93981 0.000446714
-2.95139 0.000435396
-2.96296 0.000425981
-2.97454 0.000462476
-2.98611 0.000517164
-2.99769 0.000562439
-3.00926 0.000597558
-3.02084 0.000622099
-3.03241 0.000635534
-3.04399 0.000637649
-3.05556 0.000630773
-3.06714 0.000619349
-3.0787 0.00060528
-3.09028 0.000591423
-3.10185 0.000576613
-3.11343 0.000561593
-3.125 0.000546254
-3.13658 0.000530281
-3.14815 0.000514097
-3.15973 0.000500134
-3.1713 0.000487969
-3.18288 0.000479401
-3.19444 0.000473794
-3.20602 0.000462264
-3.21759 0.000454013
-3.22917 0.000441637
-3.24074 0.000465437
-3.25232 0.000520338
-3.26389 0.000565401
-3.27547 0.000599991
-3.28704 0.000623686
-3.29862 0.000636486
-3.31019 0.000638178
-3.32176 0.000631197
-3.33333 0.000620407
-3.34491 0.000607819
-3.35648 0.00059449
-3.36806 0.000580527
-3.37963 0.000566458
-3.39121 0.000552284
-3.40278 0.000538109
-3.41436 0.000522771
-3.42593 0.000505846
-3.43751 0.000508596
-3.44907 0.000520549
-3.46065 0.000532714
+2.36111 0.000435607
+2.37269 0.000433068
+2.38426 0.000427991
+2.39584 0.000426933
+2.40741 0.000424077
+2.41899 0.000421221
+2.43056 0.000421538
+2.44214 0.000423548
+2.4537 0.000429895
+2.46528 0.000433915
+2.47685 0.000448936
+2.48843 0.000457398
+2.5 0.000459725
+2.51158 0.000472736
+2.52315 0.000480353
+2.53473 0.000482574
+2.5463 0.000480881
+2.55788 0.000476333
+2.56944 0.000469669
+2.58102 0.000461523
+2.59259 0.000453484
+2.60417 0.000444598
+2.61574 0.000434443
+2.62732 0.000422384
+2.63889 0.000413605
+2.65047 0.000402286
+2.66204 0.00039065
+2.67362 0.000380812
+2.68519 0.000367484
+2.69676 0.000358387
+2.70833 0.000400911
+2.71991 0.000454753
+2.73148 0.000500874
+2.74306 0.000538638
+2.75463 0.000567516
+2.76621 0.000586028
+2.77778 0.000594596
+2.78936 0.000594385
+2.80093 0.00058772
+2.81251 0.0005782
+2.82407 0.000566776
+2.83565 0.000554082
+2.84722 0.000540859
+2.8588 0.000527214
+2.87037 0.000513039
+2.88195 0.000497912
+2.89352 0.000483632
+2.9051 0.000470726
+2.91667 0.000456446
+2.92825 0.000447137
+2.93981 0.000435184
+2.95139 0.000426721
+2.96296 0.000412441
+2.97454 0.000472948
+2.98611 0.000533137
+2.99769 0.000583701
+3.00926 0.000624109
+3.02084 0.000653728
+3.03241 0.000671076
+3.04399 0.000677952
+3.05556 0.000675625
+3.06714 0.000668008
+3.0787 0.00065669
+3.09028 0.000644419
+3.10185 0.000631197
+3.11343 0.000616916
+3.125 0.000601895
+3.13658 0.00058624
+3.14815 0.000572488
+3.15973 0.00055789
+3.1713 0.000541494
+3.18288 0.000525415
+3.19444 0.000512193
+3.20602 0.000495373
+3.21759 0.00048141
+3.22917 0.000468611
+3.24074 0.000484584
+3.25232 0.000544244
+3.26389 0.000593644
+3.27547 0.000632254
+3.28704 0.000659969
+3.29862 0.000675413
+3.31019 0.000680808
+3.32176 0.000678269
+3.33333 0.000670124
+3.34491 0.000660498
+3.35648 0.000648968
+3.36806 0.000636486
+3.37963 0.000623475
+3.39121 0.000609935
+3.40278 0.000596077
+3.41436 0.000580633
+3.42593 0.000564343
+3.43751 0.000550697
+3.44907 0.000536099
+3.46065 0.000532608
 3.47222 0.000545091
-3.4838 0.000557784
-3.49537 0.000570584
-3.50695 0.000583595
-3.51852 0.000596818
-3.5301 0.00061004
-3.54167 0.000623263
-3.55325 0.000636591
-3.56481 0.00064992
-3.57639 0.000663248
-3.58796 0.000676471
+3.4838 0.000557679
+3.49537 0.000570478
+3.50695 0.000583489
+3.51852 0.000596606
+3.5301 0.000609829
+3.54167 0.000623157
+3.55325 0.000636486
+3.56481 0.000649814
+3.57639 0.000663142
+3.58796 0.000676365
 3.59954 0.000689588
-3.61111 0.000702705
+3.61111 0.000702599
 3.62269 0.000715504
-3.63426 0.000728304
+3.63426 0.000728198
 3.64584 0.000740786
 3.65741 0.000753162
-3.66899 0.000765221
+3.66899 0.000765327
 3.68056 0.000777175
-3.69214 0.000788811
-3.7037 0.000800235
-3.71527 0.000811448
-3.72685 0.000822449
-3.73842 0.000833239
-3.75 0.000843817
-3.76157 0.000854289
-3.77315 0.00086455
-3.78472 0.000874599
-3.7963 0.000884648
-3.80786 0.000894486
-3.81944 0.000904324
-3.83101 0.000914056
-3.84259 0.000923787
-3.85416 0.000933519
-3.86574 0.000943357
-3.87731 0.000953089
-3.88889 0.000962926
+3.69214 0.000788916
+3.7037 0.000800447
+3.71527 0.000811659
+3.72685 0.000822661
+3.73842 0.000833556
+3.75 0.000844134
+3.76157 0.000854607
+3.77315 0.000864867
+3.78472 0.000875022
+3.7963 0.000884966
+3.80786 0.000894909
+3.81944 0.000904747
+3.83101 0.000914479
+3.84259 0.000924211
+3.85416 0.000933837
+3.86574 0.000943569
+3.87731 0.0009533
+3.88889 0.000963138
 3.90046 0.00097287
 3.91204 0.000982813
-3.92361 0.000992863
-3.93519 0.00100302
-3.94675 0.00101328
-3.95833 0.00102354
-3.9699 0.00103391
-3.98148 0.00104438
-3.99305 0.00105485
-4.00463 0.00106522
-4.0162 0.0010758
-4.02778 0.00108637
-4.03935 0.00109695
+3.92361 0.000992757
+3.93519 0.00100281
+3.94675 0.00101296
+3.95833 0.00102322
+3.9699 0.00103348
+3.98148 0.00104374
+3.99305 0.00105411
+4.00463 0.00106416
+4.0162 0.00107474
+4.02778 0.00108532
+4.03935 0.00109589
 4.05093 0.00110647
-4.06249 0.00111705
-4.07407 0.00112763
-4.08564 0.00113715
-4.09722 0.00114667
+4.06249 0.00111599
+4.07407 0.00112657
+4.08564 0.00113609
+4.09722 0.00114561
 4.10879 0.00115619
 4.12037 0.00116571
-4.13194 0.00117523
+4.13194 0.00117417
 4.14352 0.00118369
-4.15509 0.00119321
+4.15509 0.00119215
 4.16667 0.00120167
 4.17824 0.00121014
 4.18981 0.0012186
 4.20138 0.00122706
-4.21296 0.00123447
-4.22453 0.00124293
-4.23611 0.00125139
-4.24768 0.00125985
-4.25926 0.00126937
-4.27083 0.00127784
-4.28241 0.00128736
-4.29398 0.00129794
-4.30556 0.00130851
-4.31712 0.00131909
-4.3287 0.00133073
-4.34027 0.00134342
-4.35185 0.00135612
-4.36342 0.00136987
-4.375 0.00138468
-4.38657 0.00139949
+4.21296 0.00123552
+4.22453 0.00124399
+4.23611 0.00125351
+4.24768 0.00126197
+4.25926 0.00127043
+4.27083 0.00127995
+4.28241 0.00128947
+4.29398 0.00130005
+4.30556 0.00131063
+4.31712 0.00132121
+4.3287 0.00133284
+4.34027 0.00134554
+4.35185 0.00135823
+4.36342 0.00137198
+4.375 0.00138573
+4.38657 0.00140054
 4.39815 0.00141641
-4.40972 0.00143228
+4.40972 0.00143334
 4.4213 0.00145026
-4.43286 0.00146824
-4.44444 0.00148623
-4.45601 0.00150421
-4.46759 0.00152325
-4.47916 0.00154229
-4.49074 0.00156133
-4.50231 0.00157931
-4.51389 0.0015973
-4.52546 0.00161422
-4.53704 0.00163115
-4.54861 0.00164701
-4.56019 0.00166077
-4.57175 0.00167346
-4.58333 0.00168509
-4.5949 0.00169567
-4.60648 0.00170308
-4.61805 0.00170942
-4.62963 0.00171471
-4.6412 0.00171789
-4.65278 0.00171894
+4.43286 0.00146719
+4.44444 0.00148517
+4.45601 0.00150315
+4.46759 0.00152113
+4.47916 0.00154017
+4.49074 0.00155816
+4.50231 0.00157614
+4.51389 0.00159412
+4.52546 0.00161105
+4.53704 0.00162692
+4.54861 0.00164278
+4.56019 0.00165653
+4.57175 0.00166923
+4.58333 0.00168192
+4.5949 0.00169144
+4.60648 0.0016999
+4.61805 0.00170731
+4.62963 0.0017126
+4.6412 0.00171577
+4.65278 0.00171789
 4.66435 0.00171789
-4.67593 0.00171577
-4.68749 0.0017126
-4.69907 0.00170837
-4.71064 0.00170308
-4.72222 0.00169673
-4.73379 0.00169038
-4.74537 0.00168404
-4.75694 0.00167769
-4.76852 0.0016724
-4.78009 0.00166817
-4.79167 0.001665
-4.80324 0.00166394
-4.81481 0.001665
-4.82638 0.00166817
-4.83796 0.00167452
-4.84953 0.00168298
-4.86111 0.00169567
-4.87268 0.00171154
-4.88426 0.00173058
-4.89583 0.00175279
-4.90741 0.00177818
-4.91898 0.00180674
-4.93056 0.00183848
-4.94212 0.00187339
-4.9537 0.00190935
-4.96527 0.00194849
-4.97685 0.00198763
-4.98842 0.00202888
-5 0.00207014
-5.01157 0.00211034
-5.02315 0.00215053
-5.03472 0.00218861
-5.0463 0.00222352
-5.05786 0.00225631
-5.06944 0.00228593
-5.08101 0.00231132
-5.09259 0.00233248
-5.10416 0.00234834
-5.11574 0.00235892
-5.12731 0.00236421
-5.13889 0.00236315
-5.15046 0.00235786
+4.67593 0.00171683
+4.68749 0.00171471
+4.69907 0.00171048
+4.71064 0.00170625
+4.72222 0.00170096
+4.73379 0.00169567
+4.74537 0.00168933
+4.75694 0.00168404
+4.76852 0.00167875
+4.78009 0.00167557
+4.79167 0.0016724
+4.80324 0.00167134
+4.81481 0.0016724
+4.82638 0.00167557
+4.83796 0.00168086
+4.84953 0.00168933
+4.86111 0.00170096
+4.87268 0.00171577
+4.88426 0.00173375
+4.89583 0.00175491
+4.90741 0.00177924
+4.91898 0.00180569
+4.93056 0.00183636
+4.94212 0.00186915
+4.9537 0.00190406
+4.96527 0.00194109
+4.97685 0.00198022
+4.98842 0.00201936
+5 0.00205956
+5.01157 0.00209976
+5.02315 0.0021389
+5.03472 0.00217592
+5.0463 0.00221189
+5.05786 0.00224468
+5.06944 0.0022743
+5.08101 0.00230074
+5.09259 0.0023219
+5.10416 0.00233882
+5.11574 0.00235152
+5.12731 0.00235786
+5.13889 0.00235998
+5.15046 0.00235575
 5.16204 0.00234623
-5.17361 0.0023293
-5.18519 0.00230815
-5.19675 0.0022817
-5.20833 0.00225208
-5.2199 0.00221929
-5.23148 0.00218438
-5.24305 0.00214736
-5.25463 0.00211034
-5.2662 0.00207437
-5.27778 0.0020384
-5.28935 0.00200561
-5.30093 0.00197705
-5.31249 0.00195166
-5.32407 0.00193262
-5.33564 0.00191887
-5.34722 0.00191252
-5.35879 0.00191358
-5.37037 0.00192204
-5.38194 0.00193897
-5.39352 0.00196436
+5.17361 0.00233248
+5.18519 0.00231344
+5.19675 0.00228911
+5.20833 0.0022616
+5.2199 0.00223093
+5.23148 0.00219813
+5.24305 0.00216323
+5.25463 0.00212726
+5.2662 0.00209129
+5.27778 0.00205639
+5.28935 0.00202465
+5.30093 0.00199503
+5.31249 0.00196965
+5.32407 0.00194955
+5.33564 0.00193474
+5.34722 0.00192628
+5.35879 0.00192522
+5.37037 0.00193157
+5.38194 0.00194532
+5.39352 0.00196753
 5.40509 0.00199821
-5.41667 0.00204052
-5.42824 0.00208918
-5.43981 0.0021463
-5.45138 0.00220977
-5.46296 0.00227853
-5.47453 0.00235152
-5.48611 0.00242768
-5.49768 0.00250596
-5.50926 0.00258529
-5.52083 0.00266357
-5.53241 0.00273973
-5.54398 0.00281272
-5.55556 0.00288042
-5.56712 0.00294283
-5.5787 0.00299678
-5.59027 0.00304227
-5.60185 0.00307823
-5.61342 0.00310362
-5.625 0.00311843
-5.63657 0.00312266
+5.41667 0.00203735
+5.42824 0.00208283
+5.43981 0.00213678
+5.45138 0.00219708
+5.46296 0.00226266
+5.47453 0.00233248
+5.48611 0.00240758
+5.49768 0.00248374
+5.50926 0.00256202
+5.52083 0.00263924
+5.53241 0.0027154
+5.54398 0.00278839
+5.55556 0.00285715
+5.56712 0.00291956
+5.5787 0.00297563
+5.59027 0.00302429
+5.60185 0.00306342
+5.61342 0.00309199
+5.625 0.00310997
+5.63657 0.00311737
 5.64815 0.0031142
-5.65972 0.00309516
-5.6713 0.00306554
-5.68286 0.00302534
-5.69444 0.00297563
-5.70601 0.00291745
-5.71759 0.00285186
-5.72916 0.00277993
-5.74074 0.00270483
-5.75231 0.00262655
-5.76389 0.00254721
-5.77546 0.00246893
-5.78704 0.00239383
-5.79861 0.00232296
-5.81019 0.00225843
-5.82175 0.00220237
-5.83333 0.00215582
-5.8449 0.00212091
-5.85648 0.00209658
-5.86805 0.00208601
-5.87963 0.00208918
+5.65972 0.00309939
+5.6713 0.003074
+5.68286 0.00303698
+5.69444 0.00299149
+5.70601 0.00293649
+5.71759 0.00287408
+5.72916 0.00280532
+5.74074 0.00273233
+5.75231 0.00265511
+5.76389 0.00257683
+5.77546 0.00249961
+5.78704 0.00242345
+5.79861 0.00235257
+5.81019 0.00228593
+5.82175 0.00222775
+5.83333 0.00217804
+5.8449 0.0021389
+5.85648 0.00211139
+5.86805 0.00209553
+5.87963 0.00209447
 5.8912 0.0021061
-5.90278 0.00213678
-5.91435 0.00218121
-5.92593 0.00223939
-5.93749 0.00231026
-5.94907 0.00239171
-5.96064 0.0024848
-5.97222 0.00258529
-5.98379 0.00269319
-5.99537 0.00280638
-6.00694 0.00292274
-6.01852 0.00303909
-6.03009 0.00315545
-6.04167 0.00326758
-6.05324 0.00337548
-6.06481 0.00347491
-6.07638 0.00356589
-6.08796 0.00364628
-6.09953 0.00371398
-6.11111 0.00376793
-6.12268 0.00380707
-6.13426 0.0038314
-6.14583 0.00384092
-6.15741 0.00383351
-6.16898 0.00381236
-6.18056 0.00377533
-6.19212 0.00372456
-6.2037 0.00366109
-6.21527 0.00358704
-6.22685 0.00350347
-6.23842 0.00341144
-6.25 0.00331413
-6.26157 0.00321258
-6.27315 0.00310997
-6.28472 0.00300842
-6.2963 0.00290898
-6.30786 0.0028159
-6.31944 0.00272916
-6.33101 0.00265088
-6.34259 0.00258318
-6.35416 0.00252817
-6.36574 0.00248586
-6.37731 0.00245836
-6.38889 0.00244566
-6.40046 0.00244778
-6.41204 0.00246576
-6.42361 0.00249855
-6.43519 0.0025451
-6.44675 0.00260645
-6.45833 0.00267944
-6.4699 0.00276512
-6.48148 0.00285927
-6.49305 0.00296293
-6.50463 0.00307189
-6.5162 0.00318613
-6.52778 0.00330249
-6.53935 0.00341885
-6.55093 0.00353521
-6.56249 0.00364734
-6.57407 0.00375418
-6.58564 0.00385467
-6.59722 0.0039467
-6.60879 0.00403026
-6.62037 0.0041022
-6.63194 0.00416143
-6.64352 0.00421009
-6.65509 0.004245
-6.66667 0.00426721
-6.67824 0.00427673
-6.68981 0.00427356
-6.70138 0.00425769
-6.71296 0.00423019
-6.72453 0.00419211
-6.73611 0.00414557
-6.74768 0.0040895
-6.75926 0.00402603
-6.77083 0.00395728
-6.78241 0.00388429
-6.79398 0.00380707
-6.80556 0.00372985
-6.81712 0.00365157
-6.8287 0.00357541
-6.84027 0.00350136
-6.85185 0.00343154
-6.86342 0.00336702
-6.875 0.00330884
-6.88657 0.003257
-6.89815 0.00321363
-6.90972 0.00317873
-6.9213 0.00315228
-6.93286 0.00313536
-6.94444 0.00312901
-6.95601 0.00313112
-6.96759 0.00314382
+5.90278 0.00213255
+5.91435 0.00217169
+5.92593 0.00222564
+5.93749 0.00229122
+5.94907 0.0023695
+5.96064 0.00245836
+5.97222 0.00255673
+5.98379 0.00266251
+5.99537 0.00277358
+6.00694 0.00288889
+6.01852 0.0030063
+6.03009 0.00312266
+6.04167 0.00323691
+6.05324 0.00334586
+6.06481 0.00344847
+6.07638 0.00354367
+6.08796 0.00362724
+6.09953 0.00369917
+6.11111 0.00375841
+6.12268 0.00380284
+6.13426 0.00383245
+6.14583 0.00384621
+6.15741 0.00384409
+6.16898 0.00382716
+6.18056 0.00379437
+6.19212 0.00374783
+6.2037 0.00368859
+6.21527 0.00361666
+6.22685 0.00353415
+6.23842 0.00344424
+6.25 0.00334692
+6.26157 0.00324537
+6.27315 0.0031417
+6.28472 0.00303804
+6.2963 0.00293649
+6.30786 0.00283917
+6.31944 0.00274925
+6.33101 0.00266674
+6.34259 0.00259481
+6.35416 0.00253558
+6.36574 0.00248903
+6.37731 0.00245624
+6.38889 0.00243826
+6.40046 0.00243614
+6.41204 0.00244989
+6.42361 0.00247951
+6.43519 0.00252394
+6.44675 0.00258212
+6.45833 0.00265405
+6.4699 0.00273762
+6.48148 0.00283176
+6.49305 0.00293543
+6.50463 0.00304544
+6.5162 0.0031618
+6.52778 0.00328028
+6.53935 0.00339981
+6.55093 0.00351828
+6.56249 0.00363464
+6.57407 0.00374466
+6.58564 0.00384938
+6.59722 0.00394564
+6.60879 0.00403132
+6.62037 0.00410748
+6.63194 0.00417095
+6.64352 0.00422173
+6.65509 0.00425875
+6.66667 0.00428308
+6.67824 0.00429366
+6.68981 0.00429154
+6.70138 0.00427568
+6.71296 0.00424817
+6.72453 0.00421009
+6.73611 0.00416038
+6.74768 0.00410325
+6.75926 0.00403767
+6.77083 0.0039668
+6.78241 0.00389063
+6.79398 0.0038113
+6.80556 0.0037309
+6.81712 0.00365051
+6.8287 0.00357117
+6.84027 0.00349607
+6.85185 0.00342414
+6.86342 0.0033575
+6.875 0.00329826
+6.88657 0.00324643
+6.89815 0.003202
+6.90972 0.00316815
+6.9213 0.00314276
+6.93286 0.00312689
+6.94444 0.0031216
+6.95601 0.00312689
+6.96759 0.00314064
 6.97916 0.00316497
-6.99074 0.00319565
-7.00231 0.00323585
-7.01389 0.00328345
-7.02546 0.00333846
-7.03704 0.00340087
-7.04861 0.00346857
-7.06019 0.00354261
-7.07175 0.00361983
-7.08333 0.00370129
-7.0949 0.00378485
-7.10648 0.00386948
-7.11805 0.00395516
-7.12963 0.00403978
-7.1412 0.00412335
-7.15278 0.00420375
+6.99074 0.00319882
+7.00231 0.00324008
+7.01389 0.00329085
+7.02546 0.00334798
+7.03704 0.00341144
+7.04861 0.00348126
+7.06019 0.00355531
+7.07175 0.00363359
+7.08333 0.00371504
+7.0949 0.00379755
+7.10648 0.00388217
+7.11805 0.00396574
+7.12963 0.00404825
+7.1412 0.00412864
+7.15278 0.00420692
 7.16435 0.00428097
-7.17593 0.00435396
-7.18749 0.0044206
-7.19907 0.00448195
-7.21064 0.00453696
-7.22222 0.00458456
-7.23379 0.0046237
-7.24537 0.00465437
-7.25694 0.00467553
-7.26852 0.00468928
-7.28009 0.00469246
-7.29167 0.00468717
-7.30324 0.00467236
-7.31481 0.00464908
-7.32638 0.00461735
-7.33796 0.00457821
-7.34953 0.00453167
-7.36111 0.00447878
-7.37268 0.00441954
+7.17593 0.00434972
+7.18749 0.00441425
+7.19907 0.00447243
+7.21064 0.00452321
+7.22222 0.00456763
+7.23379 0.0046036
+7.24537 0.00463216
+7.25694 0.00465226
+7.26852 0.00466389
+7.28009 0.00466707
+7.29167 0.00466178
+7.30324 0.00464908
+7.31481 0.00462687
+7.32638 0.00459725
+7.33796 0.00456129
+7.34953 0.00451792
+7.36111 0.00446926
+7.37268 0.00441531
 7.38426 0.00435713
-7.39583 0.00429049
-7.40741 0.00422173
-7.41898 0.00415086
-7.43056 0.0040821
-7.44212 0.00401334
-7.4537 0.00394776
-7.46527 0.0038864
-7.47685 0.00383034
-7.48842 0.00377956
-7.5 0.00373725
-7.51157 0.00370234
-7.52315 0.00367801
-7.53472 0.00366215
-7.5463 0.00365686
-7.55786 0.0036632
-7.56944 0.00367907
-7.58101 0.00370657
-7.59259 0.00374466
-7.60416 0.00379226
+7.39583 0.00429472
+7.40741 0.00423125
+7.41898 0.00416566
+7.43056 0.00410114
+7.44212 0.00403661
+7.4537 0.00397526
+7.46527 0.00391708
+7.47685 0.00386313
+7.48842 0.00381447
+7.5 0.00377216
+7.51157 0.00373831
+7.52315 0.00371186
+7.53472 0.00369494
+7.5463 0.00368648
+7.55786 0.00368859
+7.56944 0.00370129
+7.58101 0.0037235
+7.59259 0.00375629
+7.60416 0.0037986
 7.61574 0.00385044
-7.62731 0.00391602
-7.63889 0.00399113
-7.65046 0.00407258
-7.66204 0.00415932
-7.67361 0.00425029
-7.68519 0.00434549
-7.69675 0.00444175
-7.70833 0.00453801
-7.7199 0.00463216
-7.73148 0.00472419
-7.74305 0.00481199
-7.75463 0.0048945
-7.7662 0.00497066
-7.77778 0.00503836
-7.78935 0.0050976
-7.80093 0.00514731
-7.81249 0.00518645
-7.82407 0.00521501
-7.83564 0.005233
-7.84722 0.0052404
-7.85879 0.00523617
-7.87037 0.00522136
-7.88194 0.00519703
-7.89352 0.00516318
-7.90509 0.00512087
-7.91667 0.00507115
-7.92824 0.00501509
-7.93981 0.00495373
-7.95138 0.00488921
-7.96296 0.00482045
-7.97453 0.00475169
-7.98611 0.00468188
-7.99768 0.00461418
-8.00926 0.00454965
-8.02083 0.0044883
-8.03241 0.00443223
-8.04398 0.00438252
-8.05556 0.0043402
-8.06712 0.0043053
-8.0787 0.00427885
-8.09027 0.00426087
-8.10185 0.00425346
-8.11342 0.00425452
-8.125 0.0042651
-8.13657 0.0042852
-8.14815 0.00431482
-8.15972 0.00435184
-8.1713 0.00439838
-8.18286 0.00445127
-8.19444 0.00451051
-8.20601 0.0045761
-8.21759 0.00464485
-8.22916 0.0047189
-8.24074 0.00479401
-8.25231 0.00487123
-8.26389 0.0049495
-8.27546 0.00502567
-8.28704 0.00510077
-8.29861 0.00517376
-8.31019 0.00524146
-8.32175 0.00530493
-8.33333 0.00536417
-8.3449 0.005416
-8.35648 0.00546148
-8.36805 0.00550062
-8.37963 0.0055313
-8.3912 0.00555563
-8.40278 0.0055715
-8.41435 0.00557996
-8.42593 0.00558102
-8.43749 0.00557467
-8.44907 0.00556092
-8.46064 0.00554188
-8.47222 0.00551755
-8.48379 0.00548687
-8.49537 0.00545302
-8.50694 0.00541494
-8.51852 0.00537369
-8.53009 0.00533137
-8.54167 0.005288
-8.55324 0.00524463
-8.56481 0.00520232
-8.57638 0.00516107
-8.58796 0.00512193
-8.59953 0.00508596
-8.61111 0.00505423
-8.62268 0.00502672
-8.63426 0.00500451
-8.64583 0.00498758
-8.65741 0.00497595
-8.66898 0.0049696
-8.68056 0.0049696
-8.69212 0.00497595
-8.7037 0.00498864
-8.71527 0.00500663
-8.72685 0.00503096
-8.73842 0.00505952
-8.75 0.00509337
-8.76157 0.00513145
-8.77315 0.00517376
-8.78472 0.00521925
-8.7963 0.00526685
-8.80786 0.00531762
-8.81944 0.0053684
-8.83101 0.00542129
-8.84259 0.00547312
-8.85416 0.0055239
-8.86574 0.00557467
-8.87731 0.00562227
-8.88889 0.00566776
-8.90046 0.00571113
-8.91204 0.00575027
-8.92361 0.00578623
-8.93519 0.00581797
-8.94675 0.00584547
-8.95833 0.00586768
-8.9699 0.00588673
-8.98148 0.00590048
-8.99305 0.00591
-9.00463 0.00591529
-9.0162 0.00591529
-9.02778 0.00591317
-9.03935 0.00590577
-9.05093 0.00589625
-9.06249 0.00588355
-9.07407 0.00586874
-9.08564 0.00585182
-9.09722 0.00583383
-9.10879 0.00581374
-9.12037 0.0057947
-9.13194 0.0057746
-9.14352 0.0057545
-9.15509 0.00573652
-9.16667 0.00571959
-9.17824 0.00570372
-9.18981 0.00568997
-9.20138 0.00567939
+7.62731 0.00391179
+7.63889 0.00397949
+7.65046 0.00405565
+7.66204 0.0041371
+7.67361 0.00422384
+7.68519 0.00431482
+7.69675 0.0044079
+7.70833 0.00450099
+7.7199 0.00459408
+7.73148 0.00468505
+7.74305 0.00477391
+7.75463 0.00485747
+7.7662 0.00493469
+7.77778 0.00500557
+7.78935 0.00506798
+7.80093 0.00512193
+7.81249 0.0051653
+7.82407 0.00519915
+7.83564 0.00522242
+7.84722 0.00523511
+7.85879 0.00523723
+7.87037 0.00522771
+7.88194 0.00520867
+7.89352 0.00518011
+7.90509 0.00514308
+7.91667 0.0050976
+7.92824 0.00504471
+7.93981 0.00498547
+7.95138 0.004922
+7.96296 0.00485536
+7.97453 0.0047866
+7.98611 0.00471784
+7.99768 0.00464908
+8.00926 0.00458138
+8.02083 0.00451792
+8.03241 0.00445974
+8.04398 0.00440579
+8.05556 0.00435924
+8.06712 0.00432011
+8.0787 0.00428943
+8.09027 0.00426721
+8.10185 0.00425452
+8.11342 0.00425135
+8.125 0.00425875
+8.13657 0.00427462
+8.14815 0.00430001
+8.15972 0.00433491
+8.1713 0.00437723
+8.18286 0.004428
+8.19444 0.00448618
+8.20601 0.00454965
+8.21759 0.00461841
+8.22916 0.0046914
+8.24074 0.00476756
+8.25231 0.00484584
+8.26389 0.00492412
+8.27546 0.00500345
+8.28704 0.00507961
+8.29861 0.00515472
+8.31019 0.00522559
+8.32175 0.00529223
+8.33333 0.00535359
+8.3449 0.00540859
+8.35648 0.00545725
+8.36805 0.00549957
+8.37963 0.00553342
+8.3912 0.00555986
+8.40278 0.0055789
+8.41435 0.00558948
+8.42593 0.00559265
+8.43749 0.00558842
+8.44907 0.00557679
+8.46064 0.00555986
+8.47222 0.00553553
+8.48379 0.00550591
+8.49537 0.00547206
+8.50694 0.00543398
+8.51852 0.00539378
+8.53009 0.00535041
+8.54167 0.00530599
+8.55324 0.00526156
+8.56481 0.00521713
+8.57638 0.00517482
+8.58796 0.00513462
+8.59953 0.00509654
+8.61111 0.00506269
+8.62268 0.00503307
+8.63426 0.00500768
+8.64583 0.00498864
+8.65741 0.00497489
+8.66898 0.00496643
+8.68056 0.00496431
+8.69212 0.00496854
+8.7037 0.00497912
+8.71527 0.00499605
+8.72685 0.00501826
+8.73842 0.00504576
+8.75 0.00507856
+8.76157 0.00511664
+8.77315 0.00515789
+8.78472 0.00520338
+8.7963 0.00525204
+8.80786 0.00530281
+8.81944 0.00535465
+8.83101 0.00540754
+8.84259 0.00546043
+8.85416 0.00551332
+8.86574 0.00556515
+8.87731 0.00561487
+8.88889 0.00566141
+8.90046 0.0057069
+8.91204 0.00574815
+8.92361 0.00578518
+8.93519 0.00581903
+8.94675 0.00584759
+8.95833 0.00587192
+8.9699 0.00589201
+8.98148 0.00590788
+8.99305 0.00591846
+9.00463 0.00592375
+9.0162 0.00592586
+9.02778 0.00592375
+9.03935 0.0059174
+9.05093 0.00590788
+9.06249 0.00589519
+9.07407 0.00588038
+9.08564 0.00586345
+9.09722 0.00584441
+9.10879 0.00582431
+9.12037 0.00580316
+9.13194 0.00578306
+9.14352 0.0057619
+9.15509 0.00574286
+9.16667 0.00572488
+9.17824 0.00570795
+9.18981 0.00569315
+9.20138 0.00568045
 9.21296 0.00567093
-9.22453 0.00566564
-9.23611 0.00566353
-9.24768 0.00566353
-9.25926 0.00566776
-9.27083 0.00567516
-9.28241 0.00568574
-9.29398 0.00569843
-9.30556 0.00571536
-9.31712 0.0057344
-9.3287 0.00575661
-9.34027 0.00577989
-9.35185 0.00580633
-9.36342 0.00583383
-9.375 0.00586345
-9.38657 0.00589413
-9.39815 0.00592481
-9.40972 0.00595654
-9.4213 0.00598828
-9.43286 0.00601895
-9.44444 0.00604963
-9.45601 0.00607925
-9.46759 0.00610781
-9.47916 0.00613531
-9.49074 0.0061607
+9.22453 0.00566458
+9.23611 0.00566141
+9.24768 0.00566035
+9.25926 0.00566353
+9.27083 0.00566987
+9.28241 0.00567939
+9.29398 0.00569209
+9.30556 0.00570795
+9.31712 0.005727
+9.3287 0.00574815
+9.34027 0.00577142
+9.35185 0.00579787
+9.36342 0.00582537
+9.375 0.00585499
+9.38657 0.00588567
+9.39815 0.0059174
+9.40972 0.00594914
+9.4213 0.00598193
+9.43286 0.00601366
+9.44444 0.00604434
+9.45601 0.00607502
+9.46759 0.00610463
+9.47916 0.0061332
+9.49074 0.00615964
 9.50231 0.00618397
 9.51389 0.00620618
-9.52546 0.00622523
-9.53704 0.00624321
-9.54861 0.00625802
-9.56019 0.00627071
-9.57175 0.00628235
-9.58333 0.00629081
-9.5949 0.00629716
-9.60648 0.00630245
-9.61805 0.00630562
-9.62963 0.00630773
-9.6412 0.00630773
-9.65278 0.00630668
-9.66435 0.00630562
-9.67593 0.00630245
-9.68749 0.00630033
-9.69907 0.00629716
-9.71064 0.00629398
-9.72222 0.00629081
-9.73379 0.00628764
-9.74537 0.00628552
-9.75694 0.00628446
-9.76852 0.00628446
+9.52546 0.00622734
+9.53704 0.00624532
+9.54861 0.00626119
+9.56019 0.00627494
+9.57175 0.00628658
+9.58333 0.0062961
+9.5949 0.0063035
+9.60648 0.00630879
+9.61805 0.00631197
+9.62963 0.00631408
+9.6412 0.00631408
+9.65278 0.00631302
+9.66435 0.00631197
+9.67593 0.00630879
+9.68749 0.00630562
+9.69907 0.00630139
+9.71064 0.00629821
+9.72222 0.00629398
+9.73379 0.00629081
+9.74537 0.00628869
+9.75694 0.00628658
+9.76852 0.00628552
 9.78009 0.00628552
 9.79167 0.00628658
-9.80324 0.00628975
-9.81481 0.00629398
-9.82638 0.00630033
-9.83796 0.00630668
-9.84953 0.00631514
-9.86111 0.00632466
-9.87268 0.00633524
-9.88426 0.00634793
-9.89583 0.00636063
-9.90741 0.00637543
-9.91898 0.00639024
-9.93056 0.00640611
-9.94212 0.00642304
-9.9537 0.00643996
-9.96527 0.00645794
-9.97685 0.00647593
-9.98842 0.00649391
-10 0.00651189
-10.0116 0.00652988
-10.0231 0.00654786
-10.0347 0.00656584
+9.80324 0.00628869
+9.81481 0.00629187
+9.82638 0.00629716
+9.83796 0.0063035
+9.84953 0.00631197
+9.86111 0.00632149
+9.87268 0.00633206
+9.88426 0.0063437
+9.89583 0.00635639
+9.90741 0.0063712
+9.91898 0.00638601
+9.93056 0.00640188
+9.94212 0.0064188
+9.9537 0.00643679
+9.96527 0.00645477
+9.97685 0.00647275
+9.98842 0.00649074
+10 0.00650978
+10.0116 0.00652776
+10.0231 0.0065468
+10.0347 0.00656478
 10.0463 0.00658277
 10.0579 0.00659969
 10.0694 0.00661662
-10.081 0.00663248
-10.0926 0.00664835
-10.1042 0.00666316
-10.1157 0.00667691
-10.1273 0.00669066
-10.1389 0.00670336
-10.1505 0.00671605
-10.162 0.00672769
-10.1736 0.00673826
-10.1852 0.00674884
-10.1968 0.00675836
-10.2083 0.00676682
-10.2199 0.00677529
+10.081 0.00663354
+10.0926 0.00664941
+10.1042 0.00666422
+10.1157 0.00667903
+10.1273 0.00669172
+10.1389 0.00670547
+10.1505 0.00671711
+10.162 0.00672874
+10.1736 0.00673932
+10.1852 0.0067499
+10.1968 0.00675942
+10.2083 0.00676788
+10.2199 0.00677635
 10.2315 0.00678375
 10.243 0.00679115
 10.2546 0.0067975
-10.2662 0.00680491
+10.2662 0.00680385
 10.2778 0.0068102
-10.2893 0.00681654
+10.2893 0.00681548
 10.3009 0.00682183
 10.3125 0.00682606
 10.3241 0.00683135
-10.3356 0.00683558
+10.3356 0.00683664
 10.3472 0.00684087
-10.3588 0.0068451
-10.3704 0.00684933
-10.3819 0.00685357
-10.3935 0.00685885
-10.4051 0.00686309
-10.4167 0.00686837
-10.4282 0.00687366
-10.4398 0.00688001
-10.4514 0.00688636
-10.463 0.00689376
-10.4745 0.00690117
-10.4861 0.00690963
-10.4977 0.00691915
-10.5093 0.00692973
-10.5208 0.00694031
-10.5324 0.006953
-10.544 0.00696569
-10.5556 0.0069805
-10.5671 0.00699531
+10.3588 0.00684616
+10.3704 0.00685039
+10.3819 0.00685568
+10.3935 0.00685991
+10.4051 0.0068652
+10.4167 0.00687049
+10.4282 0.00687684
+10.4398 0.00688318
+10.4514 0.00688953
+10.463 0.00689694
+10.4745 0.0069054
+10.4861 0.00691386
+10.4977 0.00692338
+10.5093 0.0069329
+10.5208 0.00694454
+10.5324 0.00695617
+10.544 0.00696887
+10.5556 0.00698262
+10.5671 0.00699743
 10.5787 0.00701224
 10.5903 0.00702916
-10.6019 0.00704715
-10.6134 0.00706619
-10.625 0.00708628
-10.6366 0.00710638
-10.6481 0.00712648
-10.6597 0.00714764
-10.6713 0.00716774
-10.6829 0.00718889
-10.6944 0.00720899
-10.706 0.00722803
-10.7176 0.00724707
-10.7292 0.00726505
-10.7407 0.00728198
-10.7523 0.00729679
-10.7639 0.00731054
-10.7755 0.00732218
-10.787 0.0073317
-10.7986 0.00734016
-10.8102 0.00734545
-10.8218 0.00734968
+10.6019 0.00704609
+10.6134 0.00706407
+10.625 0.00708205
+10.6366 0.00710215
+10.6481 0.00712119
+10.6597 0.00714129
+10.6713 0.00716033
+10.6829 0.00718043
+10.6944 0.00720053
+10.706 0.00721957
+10.7176 0.00723755
+10.7292 0.00725553
+10.7407 0.00727246
+10.7523 0.00728727
+10.7639 0.00730208
+10.7755 0.00731477
+10.787 0.00732535
+10.7986 0.00733487
+10.8102 0.00734227
+10.8218 0.00734756
 10.8333 0.0073518
-10.8449 0.0073518
-10.8565 0.00734968
-10.8681 0.00734651
-10.8796 0.00734227
-10.8912 0.00733593
-10.9028 0.00732958
-10.9144 0.00732218
-10.9259 0.00731371
-10.9375 0.00730631
-10.9491 0.00729996
-10.9607 0.00729362
-10.9722 0.00728833
-10.9838 0.00728515
-10.9954 0.0072841
-11.007 0.00728515
-11.0185 0.00728833
-11.0301 0.00729573
-11.0417 0.00730525
-11.0532 0.00731795
-11.0648 0.00733381
-11.0764 0.00735285
-11.088 0.00737612
-11.0995 0.00740151
-11.1111 0.00743007
-11.1227 0.00746181
-11.1343 0.0074946
-11.1458 0.00753057
-11.1574 0.00756653
-11.169 0.00760461
-11.1806 0.00764269
-11.1921 0.00767972
-11.2037 0.00771674
-11.2153 0.00775165
-11.2269 0.0077855
-11.2384 0.00781617
-11.25 0.00784368
-11.2616 0.00786801
-11.2732 0.00788811
-11.2848 0.00790397
-11.2963 0.00791561
-11.3078 0.00792301
-11.3194 0.00792513
-11.331 0.00792301
-11.3426 0.00791561
-11.3542 0.00790503
-11.3658 0.00788916
-11.3774 0.00787118
-11.3888 0.00785002
-11.4004 0.0078257
-11.412 0.00780137
-11.4236 0.00777492
-11.4352 0.00774847
-11.4468 0.00772309
-11.4584 0.00769876
-11.4699 0.00767654
-11.4815 0.0076575
-11.493 0.00764164
-11.5046 0.00763
-11.5162 0.00762365
-11.5278 0.0076226
-11.5393 0.00762683
-11.5509 0.00763635
-11.5625 0.00765221
-11.5741 0.00767443
-11.5857 0.00770087
-11.5973 0.00773367
-11.6088 0.00777069
-11.6203 0.007813
-11.6319 0.00785743
-11.6435 0.00790609
-11.6551 0.00795686
-11.6667 0.0080087
-11.6783 0.00806053
-11.6899 0.00811236
-11.7013 0.00816208
-11.7129 0.00821074
-11.7245 0.00825517
-11.7361 0.00829642
-11.7477 0.00833239
-11.7593 0.00836306
-11.7708 0.00838845
-11.7824 0.00840749
-11.794 0.00842019
-11.8056 0.00842759
-11.8171 0.00842759
-11.8287 0.0084223
-11.8403 0.00841067
-11.8518 0.0083948
-11.8634 0.00837364
-11.875 0.00834931
-11.8866 0.00832181
-11.8982 0.00829219
-11.9098 0.00826257
-11.9214 0.00823189
-11.9328 0.00820122
-11.9444 0.00817372
-11.956 0.00814833
-11.9676 0.00812611
-11.9792 0.00810919
-11.9908 0.00809649
-12.0023 0.00808909
-12.0139 0.00808697
-12.0254 0.00809121
-12.037 0.00810178
-12.0486 0.00811765
-12.0602 0.00813987
-12.0718 0.00816631
-12.0833 0.0081991
-12.0949 0.00823507
-12.1065 0.00827421
-12.1181 0.00831652
-12.1297 0.00836095
-12.1412 0.00840538
-12.1528 0.00845086
-12.1643 0.00849423
-12.1759 0.00853654
-12.1875 0.00857568
-12.1991 0.00861059
-12.2107 0.00864233
-12.2223 0.00866877
-12.2337 0.00868993
-12.2453 0.00870685
-12.2569 0.00871743
-12.2685 0.00872272
-12.2801 0.00872272
-12.2917 0.00871849
-12.3033 0.00871003
-12.3148 0.00869733
-12.3264 0.00868147
-12.338 0.00866348
-12.3495 0.00864444
-12.3611 0.0086254
-12.3727 0.00860636
-12.3843 0.00858944
-12.3958 0.00857357
-12.4074 0.00856193
-12.419 0.00855347
-12.4306 0.0085503
-12.4422 0.00855241
-12.4537 0.00855876
-12.4652 0.00857145
+10.8449 0.00735285
+10.8565 0.00735391
+10.8681 0.0073518
+10.8796 0.00734968
+10.8912 0.00734545
+10.9028 0.00734016
+10.9144 0.00733381
+10.9259 0.00732747
+10.9375 0.00732112
+10.9491 0.00731477
+10.9607 0.00730948
+10.9722 0.00730419
+10.9838 0.00730102
+10.9954 0.0072989
+11.007 0.0072989
+11.0185 0.00730102
+11.0301 0.00730631
+11.0417 0.00731371
+11.0532 0.00732429
+11.0648 0.00733804
+11.0764 0.00735497
+11.088 0.00737401
+11.0995 0.00739728
+11.1111 0.00742267
+11.1227 0.00745123
+11.1343 0.00748191
+11.1458 0.0075147
+11.1574 0.00754855
+11.169 0.00758451
+11.1806 0.00762048
+11.1921 0.0076575
+11.2037 0.00769347
+11.2153 0.00772838
+11.2269 0.00776223
+11.2384 0.00779502
+11.25 0.00782358
+11.2616 0.00785002
+11.2732 0.0078733
+11.2848 0.00789234
+11.2963 0.00790715
+11.3078 0.00791772
+11.3194 0.00792407
+11.331 0.00792619
+11.3426 0.00792301
+11.3542 0.00791667
+11.3658 0.00790503
+11.3774 0.00789022
+11.3888 0.00787224
+11.4004 0.00785108
+11.412 0.00782887
+11.4236 0.00780454
+11.4352 0.00777915
+11.4468 0.00775376
+11.4584 0.00772838
+11.4699 0.0077051
+11.4815 0.00768395
+11.493 0.00766597
+11.5046 0.00765116
+11.5162 0.00764058
+11.5278 0.00763529
+11.5393 0.00763423
+11.5509 0.00763952
+11.5625 0.00764904
+11.5741 0.00766597
+11.5857 0.00768712
+11.5973 0.00771462
+11.6088 0.00774742
+11.6203 0.00778444
+11.6319 0.00782675
+11.6435 0.00787224
+11.6551 0.00791984
+11.6667 0.00797062
+11.6783 0.00802245
+11.6899 0.00807428
+11.7013 0.00812611
+11.7129 0.00817689
+11.7245 0.00822555
+11.7361 0.00826998
+11.7477 0.00831123
+11.7593 0.00834825
+11.7708 0.00837893
+11.7824 0.00840432
+11.794 0.00842442
+11.8056 0.00843817
+11.8171 0.00844452
+11.8287 0.00844557
+11.8403 0.00844028
+11.8518 0.00842865
+11.8634 0.00841278
+11.875 0.00839162
+11.8866 0.00836729
+11.8982 0.00833873
+11.9098 0.00830912
+11.9214 0.00827738
+11.9328 0.00824565
+11.9444 0.00821391
+11.956 0.00818429
+11.9676 0.00815679
+11.9792 0.00813352
+11.9908 0.00811342
+12.0023 0.00809861
+12.0139 0.00808909
+12.0254 0.00808486
+12.037 0.00808697
+12.0486 0.00809544
+12.0602 0.00810919
+12.0718 0.00813034
+12.0833 0.00815573
+12.0949 0.00818641
+12.1065 0.00822237
+12.1181 0.00826257
+12.1297 0.00830488
+12.1412 0.00834931
+12.1528 0.00839586
+12.1643 0.0084424
+12.1759 0.00848894
+12.1875 0.00853337
+12.1991 0.00857568
+12.2107 0.00861482
+12.2223 0.00864973
+12.2337 0.00868041
+12.2453 0.00870579
+12.2569 0.00872695
+12.2685 0.00874176
+12.2801 0.00875128
+12.2917 0.00875551
+12.3033 0.00875445
+12.3148 0.00874917
+12.3264 0.00873964
+12.338 0.00872589
+12.3495 0.00871003
+12.3611 0.00869204
+12.3727 0.008673
+12.3843 0.00865396
+12.3958 0.00863492
+12.4074 0.008618
+12.419 0.00860319
+12.4306 0.00859155
+12.4422 0.00858415
+12.4537 0.00858097
+12.4652 0.00858309
 12.4768 0.00858944
-12.4884 0.00861271
-12.5 0.00864021
-12.5116 0.00867406
-12.5232 0.00871108
-12.5348 0.00875128
-12.5463 0.00879359
-12.5578 0.00883802
-12.5694 0.00888245
-12.581 0.00892688
-12.5926 0.00896919
-12.6042 0.00900939
-12.6158 0.00904535
-12.6273 0.00907709
-12.6389 0.00910353
-12.6505 0.00912469
-12.662 0.00913844
-12.6736 0.00914584
-12.6852 0.00914584
-12.6967 0.0091395
-12.7083 0.0091268
-12.7199 0.00910671
-12.7315 0.00908238
-12.7431 0.0090517
-12.7547 0.00901785
-12.7663 0.00898188
-12.7777 0.00894274
-12.7893 0.00890361
-12.8009 0.00886552
-12.8125 0.00882956
-12.8241 0.00879677
-12.8357 0.00876926
-12.8473 0.00874599
-12.8588 0.00873012
-12.8703 0.00872272
-12.8819 0.00872272
-12.8935 0.00873118
-12.9051 0.00874917
-12.9167 0.00877561
-12.9282 0.00881158
-12.9398 0.008856
-12.9514 0.00890784
-12.963 0.00896707
-12.9746 0.00903266
-12.9861 0.00910353
-12.9977 0.00917652
-13.0092 0.00925268
-13.0208 0.00932885
-13.0324 0.00940501
-13.044 0.009478
-13.0556 0.00954676
-13.0672 0.00960917
-13.0788 0.00966629
-13.0902 0.00971389
-13.1018 0.00975303
-13.1134 0.00978265
-13.125 0.00980169
-13.1366 0.00980909
-13.1482 0.00980592
-13.1597 0.00979111
-13.1713 0.00976678
-13.1829 0.00973187
-13.1944 0.0096885
-13.206 0.00963773
-13.2176 0.00957955
-13.2292 0.00951608
-13.2407 0.00944944
-13.2523 0.00938174
-13.2639 0.00931298
-13.2755 0.00924528
-13.2871 0.00918181
-13.2987 0.00912363
-13.3102 0.0090718
-13.3217 0.00902737
-13.3333 0.00899246
-13.3449 0.00896813
-13.3565 0.00895544
-13.3681 0.00895332
-13.3797 0.0089639
-13.3912 0.00898612
-13.4027 0.00901997
-13.4143 0.00906651
-13.4259 0.00912257
+12.4884 0.00860213
+12.5 0.00861905
+12.5116 0.00864127
+12.5232 0.00866771
+12.5348 0.00869945
+12.5463 0.00873436
+12.5578 0.00877138
+12.5694 0.00881052
+12.581 0.00885177
+12.5926 0.00889303
+12.6042 0.00893217
+12.6158 0.00897131
+12.6273 0.00900621
+12.6389 0.00903901
+12.6505 0.00906651
+12.662 0.00908978
+12.6736 0.00910671
+12.6852 0.00911834
+12.6967 0.00912363
+12.7083 0.00912257
+12.7199 0.00911517
+12.7315 0.00910247
+12.7431 0.00908449
+12.7547 0.00906228
+12.7663 0.00903583
+12.7777 0.00900621
+12.7893 0.00897554
+12.8009 0.00894274
+12.8125 0.00891101
+12.8241 0.00888033
+12.8357 0.00885283
+12.8473 0.0088285
+12.8588 0.00880946
+12.8703 0.00879571
+12.8819 0.0087883
+12.8935 0.0087883
+12.9051 0.00879677
+12.9167 0.00881158
+12.9282 0.00883591
+12.9398 0.00886764
+12.9514 0.00890678
+12.963 0.00895227
+12.9746 0.00900516
+12.9861 0.00906334
+12.9977 0.00912575
+13.0092 0.00919133
+13.0208 0.00926009
+13.0324 0.00932779
+13.044 0.00939549
+13.0556 0.00946107
+13.0672 0.00952243
+13.0788 0.00957955
+13.0902 0.00963032
+13.1018 0.00967369
+13.1134 0.00970966
+13.125 0.0097361
+13.1366 0.00975303
+13.1482 0.00976043
+13.1597 0.00975726
+13.1713 0.00974457
+13.1829 0.00972341
+13.1944 0.00969273
+13.206 0.00965359
+13.2176 0.00960811
+13.2292 0.00955628
+13.2407 0.00950021
+13.2523 0.00944097
+13.2639 0.00938068
+13.2755 0.00932038
+13.2871 0.0092622
+13.2987 0.00920614
+13.3102 0.00915537
+13.3217 0.00911094
+13.3333 0.00907391
+13.3449 0.00904535
+13.3565 0.00902631
+13.3681 0.00901679
+13.3797 0.00901891
+13.3912 0.0090316
+13.4027 0.00905487
+13.4143 0.00908978
+13.4259 0.00913421
 13.4375 0.00918816
-13.4491 0.00926326
-13.4607 0.00934471
-13.4722 0.00943145
-13.4838 0.00952348
-13.4954 0.00961657
-13.507 0.00971072
-13.5185 0.0098038
-13.5301 0.00989372
-13.5417 0.0099794
-13.5532 0.0100587
-13.5648 0.0101307
-13.5764 0.0101931
-13.588 0.010246
-13.5996 0.0102883
-13.6112 0.0103179
-13.6226 0.0103369
-13.6342 0.0103443
-13.6458 0.0103391
-13.6574 0.0103232
-13.669 0.0102957
-13.6806 0.0102587
-13.6922 0.0102121
-13.7037 0.0101582
-13.7152 0.0100979
-13.7268 0.0100323
-13.7384 0.00996248
-13.75 0.0098916
-13.7616 0.00982073
-13.7732 0.00974986
-13.7847 0.00968216
-13.7963 0.00961974
-13.8079 0.00956262
-13.8195 0.00951185
-13.831 0.00946954
-13.8426 0.00943569
-13.8541 0.00941136
-13.8657 0.00939866
-13.8773 0.00939549
-13.8889 0.00940289
-13.9005 0.00942193
-13.9121 0.00945049
-13.9237 0.00948963
-13.9351 0.00953724
-13.9467 0.00959436
-13.9583 0.00965888
-13.9699 0.00972976
-13.9815 0.00980592
-13.9931 0.00988631
-14.0047 0.00996988
-14.0162 0.0100545
-14.0278 0.0101391
-14.0393 0.0102227
-14.0509 0.0103041
-14.0625 0.0103824
-14.0741 0.0104554
-14.0856 0.0105231
-14.0972 0.0105781
-14.1088 0.0106416
-14.1204 0.0106839
-14.132 0.0107156
-14.1436 0.0107474
-14.1551 0.010758
-14.1666 0.0107685
-14.1782 0.0107685
-14.1898 0.010758
-14.2014 0.0107474
-14.213 0.0107156
+13.4491 0.00925163
+13.4607 0.00932144
+13.4722 0.00939866
+13.4838 0.00948011
+13.4954 0.00956474
+13.507 0.00965148
+13.5185 0.00973822
+13.5301 0.0098239
+13.5417 0.00990535
+13.5532 0.00998363
+13.5648 0.0100545
+13.5764 0.010119
+13.588 0.0101751
+13.5996 0.0102216
+13.6112 0.0102576
+13.6226 0.010283
+13.6342 0.0102978
+13.6458 0.010302
+13.6574 0.0102946
+13.669 0.0102777
+13.6806 0.0102502
+13.6922 0.0102132
+13.7037 0.0101698
+13.7152 0.010118
+13.7268 0.0100609
+13.7384 0.0099995
+13.75 0.00993603
+13.7616 0.00987045
+13.7732 0.00980592
+13.7847 0.00974245
+13.7963 0.0096811
+13.8079 0.00962503
+13.8195 0.00957532
+13.831 0.00953195
+13.8426 0.00949598
+13.8541 0.00946848
+13.8657 0.00945049
+13.8773 0.00944203
+13.8889 0.00944415
+13.9005 0.00945578
+13.9121 0.009478
+13.9237 0.00950867
+13.9351 0.00954887
+13.9467 0.00959859
+13.9583 0.00965465
+13.9699 0.00971812
+13.9815 0.00978794
+13.9931 0.00986093
+14.0047 0.00993815
+14.0162 0.0100175
+14.0278 0.0100979
+14.0393 0.0101783
+14.0509 0.0102565
+14.0625 0.0103327
+14.0741 0.0104046
+14.0856 0.0104723
+14.0972 0.0105337
+14.1088 0.0105887
+14.1204 0.010631
+14.132 0.0106733
+14.1436 0.0107051
+14.1551 0.0107262
+14.1666 0.0107368
+14.1782 0.0107474
+14.1898 0.0107368
+14.2014 0.0107262
+14.213 0.0107051
 14.2246 0.0106839
 14.2362 0.0106416
-14.2476 0.0105993
-14.2592 0.0105443
-14.2708 0.0104893
-14.2824 0.0104311
-14.294 0.0103718
-14.3056 0.0103116
-14.3171 0.0102513
-14.3287 0.0101931
-14.3403 0.0101381
-14.3519 0.0100862
-14.3634 0.0100397
-14.375 0.00999738
-14.3866 0.00996248
-14.3981 0.00993497
-14.4097 0.00991487
-14.4213 0.00990324
-14.4329 0.00990006
-14.4445 0.00990641
-14.4561 0.00992122
-14.4676 0.00994449
-14.4791 0.00997729
-14.4907 0.0100185
-14.5023 0.0100672
-14.5139 0.0101233
-14.5255 0.0101867
-14.5371 0.0102565
-14.5486 0.0103306
-14.5602 0.0104089
-14.5717 0.0104903
-14.5833 0.0105728
-14.5949 0.0106522
-14.6065 0.0107368
-14.6181 0.0108214
-14.6296 0.010906
-14.6412 0.0109801
-14.6528 0.0110436
-14.6644 0.011107
-14.6759 0.0111705
-14.6875 0.0112128
-14.6991 0.0112551
-14.7106 0.0112869
-14.7222 0.011308
-14.7338 0.0113186
-14.7454 0.0113186
-14.757 0.0113186
-14.7686 0.0112974
-14.78 0.0112763
+14.2476 0.0106099
+14.2592 0.0105591
+14.2708 0.0105083
+14.2824 0.0104554
+14.294 0.0104004
+14.3056 0.0103433
+14.3171 0.0102872
+14.3287 0.0102312
+14.3403 0.0101772
+14.3519 0.0101275
+14.3634 0.010081
+14.375 0.0100397
+14.3866 0.0100037
+14.3981 0.00997517
+14.4097 0.00995296
+14.4213 0.0099392
+14.4329 0.00993286
+14.4445 0.00993497
+14.4561 0.00994661
+14.4676 0.00996565
+14.4791 0.00999421
+14.4907 0.0100302
+14.5023 0.0100746
+14.5139 0.0101264
+14.5255 0.0101846
+14.5371 0.0102481
+14.5486 0.0103179
+14.5602 0.0103909
+14.5717 0.0104681
+14.5833 0.0105474
+14.5949 0.010631
+14.6065 0.0107051
+14.6181 0.0107897
+14.6296 0.0108637
+14.6412 0.0109378
+14.6528 0.0110012
+14.6644 0.0110647
+14.6759 0.0111282
+14.6875 0.0111705
+14.6991 0.0112128
+14.7106 0.0112551
+14.7222 0.0112763
+14.7338 0.0112869
+14.7454 0.0112974
+14.757 0.0112974
+14.7686 0.0112869
+14.78 0.0112551
 14.7916 0.011234
 14.8032 0.0111917
-14.8148 0.0111388
-14.8264 0.0110859
-14.838 0.0110224
-14.8496 0.0109589
-14.8611 0.0108955
-14.8727 0.0108214
-14.8842 0.0107474
-14.8958 0.0106839
-14.9074 0.0106099
-14.919 0.0105527
-14.9306 0.0104946
-14.9421 0.0104438
-14.9537 0.0103994
-14.9653 0.0103634
-14.9769 0.0103369
-14.9885 0.010319
-15 0.0103126
-15.0115 0.0103158
-15.0231 0.0103295
-15.0347 0.0103539
-15.0463 0.0103888
-15.0579 0.0104332
-15.0695 0.0104882
-15.0811 0.0105506
-15.0925 0.0106204
-15.1041 0.0106945
-15.1157 0.0107791
-15.1273 0.0108637
-15.1389 0.0109589
-15.1505 0.0110541
-15.1621 0.0111493
-15.1736 0.011234
-15.1852 0.0113292
-15.1968 0.0114138
-15.2083 0.0114984
-15.2199 0.0115725
-15.2315 0.0116359
-15.243 0.0116994
-15.2546 0.0117523
-15.2662 0.0117946
-15.2778 0.0118263
-15.2894 0.0118475
-15.301 0.0118581
-15.3126 0.0118581
-15.324 0.0118475
+14.8148 0.0111493
+14.8264 0.0110965
+14.838 0.0110436
+14.8496 0.0109801
+14.8611 0.0109166
+14.8727 0.0108532
+14.8842 0.0107897
+14.8958 0.0107156
+14.9074 0.0106522
+14.919 0.0105993
+14.9306 0.01054
+14.9421 0.0104893
+14.9537 0.0104448
+14.9653 0.0104078
+14.9769 0.0103793
+14.9885 0.0103592
+15 0.0103486
+15.0115 0.0103475
+15.0231 0.010357
+15.0347 0.0103761
+15.0463 0.0104057
+15.0579 0.0104438
+15.0695 0.0104914
+15.0811 0.0105485
+15.0925 0.0106099
+15.1041 0.0106839
+15.1157 0.010758
+15.1273 0.0108426
+15.1389 0.0109272
+15.1505 0.0110118
+15.1621 0.011107
+15.1736 0.0111917
+15.1852 0.0112869
+15.1968 0.0113715
+15.2083 0.0114455
+15.2199 0.0115196
+15.2315 0.0115936
+15.243 0.0116571
+15.2546 0.01171
+15.2662 0.0117523
+15.2778 0.0117946
+15.2894 0.0118158
+15.301 0.0118369
+15.3126 0.0118475
+15.324 0.0118369
 15.3356 0.0118263
 15.3472 0.0118052
-15.3588 0.0117629
-15.3704 0.0117206
-15.382 0.0116677
-15.3936 0.0116148
-15.4051 0.0115513
-15.4166 0.0114878
-15.4282 0.0114138
-15.4398 0.0113503
-15.4514 0.0112763
-15.463 0.0112128
-15.4745 0.0111493
-15.4861 0.0110859
-15.4977 0.011033
-15.5093 0.0109801
-15.5209 0.0109378
-15.5324 0.0108955
-15.544 0.0108743
-15.5555 0.0108532
-15.5671 0.0108426
-15.5787 0.0108426
-15.5903 0.0108532
+15.3588 0.0117735
+15.3704 0.0117311
+15.382 0.0116888
+15.3936 0.0116359
+15.4051 0.011583
+15.4166 0.0115196
+15.4282 0.0114561
+15.4398 0.0113821
+15.4514 0.0113186
+15.463 0.0112551
+15.4745 0.0111917
+15.4861 0.0111282
+15.4977 0.0110647
+15.5093 0.0110118
+15.5209 0.0109695
+15.5324 0.0109272
+15.544 0.0108955
+15.5555 0.0108743
+15.5671 0.0108637
+15.5787 0.0108532
+15.5903 0.0108637
 15.6019 0.0108743
 15.6135 0.0108955
-15.6251 0.0109378
-15.6365 0.0109801
-15.6481 0.011033
-15.6597 0.0110965
-15.6713 0.0111599
-15.6829 0.011234
-15.6945 0.011308
-15.706 0.0113821
-15.7176 0.0114667
-15.7291 0.0115513
-15.7407 0.0116254
-15.7523 0.01171
-15.7639 0.011784
-15.7755 0.0118687
-15.787 0.0119321
-15.7986 0.0119956
-15.8102 0.0120591
-15.8218 0.012112
-15.8334 0.0121648
-15.8449 0.0121966
+15.6251 0.0109272
+15.6365 0.0109695
+15.6481 0.0110118
+15.6597 0.0110753
+15.6713 0.0111388
+15.6829 0.0112022
+15.6945 0.0112763
+15.706 0.0113503
+15.7176 0.011435
+15.7291 0.011509
+15.7407 0.0115936
+15.7523 0.0116782
+15.7639 0.0117523
+15.7755 0.0118369
+15.787 0.011911
+15.7986 0.0119744
+15.8102 0.0120379
+15.8218 0.0121014
+15.8334 0.0121437
+15.8449 0.012186
 15.8564 0.0122283
 15.868 0.0122495
 15.8796 0.0122706
-15.8912 0.0122706
-15.9028 0.0122706
-15.9144 0.01226
-15.926 0.0122495
-15.9374 0.0122177
-15.949 0.012186
-15.9606 0.0121543
-15.9722 0.012112
-15.9838 0.0120696
-15.9954 0.0120167
-16.007 0.0119744
-16.0185 0.0119215
-16.0301 0.0118687
-16.0417 0.0118158
-16.0532 0.0117629
-16.0648 0.01171
-16.0764 0.0116677
-16.0879 0.0116254
-16.0995 0.0115936
+15.8912 0.0122812
+15.9028 0.0122812
+15.9144 0.0122706
+15.926 0.01226
+15.9374 0.0122389
+15.949 0.0122072
+15.9606 0.0121754
+15.9722 0.0121331
+15.9838 0.0120908
+15.9954 0.0120485
+16.007 0.0119956
+16.0185 0.0119427
+16.0301 0.0118898
+16.0417 0.0118369
+16.0532 0.011784
+16.0648 0.0117311
+16.0764 0.0116888
+16.0879 0.0116359
+16.0995 0.0116042
 16.1111 0.0115619
-16.1227 0.0115302
+16.1227 0.0115407
 16.1343 0.011509
 16.1459 0.0114984
 16.1575 0.0114878
-16.1689 0.0114878
+16.1689 0.0114773
 16.1805 0.0114878
-16.1921 0.011509
-16.2037 0.0115196
-16.2153 0.0115513
-16.2269 0.011583
-16.2385 0.0116148
-16.25 0.0116571
-16.2615 0.01171
-16.2731 0.0117629
-16.2847 0.0118158
-16.2963 0.0118687
-16.3079 0.0119321
-16.3194 0.0119956
-16.331 0.0120591
-16.3426 0.0121225
-16.3542 0.012186
+16.1921 0.0114984
+16.2037 0.011509
+16.2153 0.0115407
+16.2269 0.0115725
+16.2385 0.0116042
+16.25 0.0116465
+16.2615 0.0116994
+16.2731 0.0117417
+16.2847 0.0118052
+16.2963 0.0118581
+16.3079 0.0119215
+16.3194 0.011985
+16.331 0.0120485
+16.3426 0.012112
+16.3542 0.0121754
 16.3658 0.0122389
-16.3773 0.0123024
+16.3773 0.0122918
 16.3889 0.0123552
 16.4004 0.0124081
 16.412 0.012461
 16.4236 0.0125033
 16.4352 0.0125457
-16.4468 0.012588
-16.4584 0.0126197
+16.4468 0.0125774
+16.4584 0.0126091
 16.47 0.0126409
 16.4814 0.012662
 16.493 0.0126726
 16.5046 0.0126832
 16.5162 0.0126832
 16.5278 0.0126832
-16.5394 0.0126726
+16.5394 0.0126832
 16.5509 0.012662
 16.5625 0.0126514
-16.5741 0.0126197
+16.5741 0.0126303
 16.5856 0.0125985
-16.5972 0.0125668
-16.6088 0.0125351
+16.5972 0.0125774
+16.6088 0.0125457
 16.6204 0.0125033
-16.6319 0.012461
+16.6319 0.0124716
 16.6435 0.0124293
-16.6551 0.012387
+16.6551 0.0123976
 16.6667 0.0123552
-16.6783 0.0123129
+16.6783 0.0123235
 16.6898 0.0122812
-16.7014 0.0122389
-16.7129 0.0122072
-16.7245 0.0121754
-16.7361 0.0121543
-16.7477 0.0121331
-16.7593 0.012112
-16.7709 0.0121014
-16.7824 0.0120908
-16.7939 0.0120908
-16.8055 0.0120908
-16.8171 0.0121014
+16.7014 0.0122495
+16.7129 0.0122177
+16.7245 0.012186
+16.7361 0.0121648
+16.7477 0.0121437
+16.7593 0.0121225
+16.7709 0.012112
+16.7824 0.0121014
+16.7939 0.0121014
+16.8055 0.0121014
+16.8171 0.012112
 16.8287 0.0121225
 16.8403 0.0121437
 16.8519 0.0121648
 16.8634 0.0121966
-16.875 0.0122389
+16.875 0.0122283
 16.8866 0.0122706
-16.8981 0.0123235
-16.9097 0.0123764
-16.9213 0.0124293
-16.9329 0.0124822
-16.9444 0.0125351
-16.956 0.0125985
-16.9676 0.012662
-16.9792 0.0127255
-16.9908 0.0127784
-17.0024 0.0128418
-17.0138 0.0128947
-17.0254 0.0129582
-17.037 0.0130005
-17.0486 0.0130534
-17.0602 0.0130957
+16.8981 0.0123129
+16.9097 0.0123658
+16.9213 0.0124187
+16.9329 0.0124716
+16.9444 0.0125245
+16.956 0.012588
+16.9676 0.0126409
+16.9792 0.0127043
+16.9908 0.0127678
+17.0024 0.0128207
+17.0138 0.0128842
+17.0254 0.012937
+17.037 0.0129899
+17.0486 0.0130428
+17.0602 0.0130851
 17.0718 0.0131275
 17.0834 0.0131592
-17.0949 0.0131909
-17.1064 0.0132121
+17.0949 0.0131803
+17.1064 0.0132015
 17.118 0.0132227
-17.1296 0.0132227
-17.1412 0.0132227
-17.1528 0.0132121
-17.1644 0.0132015
-17.1759 0.0131803
-17.1875 0.0131592
-17.1991 0.0131275
-17.2107 0.0130957
-17.2222 0.0130534
-17.2338 0.0130111
-17.2453 0.0129688
-17.2569 0.0129265
-17.2685 0.0128842
-17.2801 0.0128313
-17.2917 0.012789
-17.3033 0.0127466
-17.3149 0.0127149
-17.3263 0.0126832
-17.3379 0.0126514
+17.1296 0.0132332
+17.1412 0.0132332
+17.1528 0.0132332
+17.1644 0.0132227
+17.1759 0.0132015
+17.1875 0.0131803
+17.1991 0.0131486
+17.2107 0.0131169
+17.2222 0.0130851
+17.2338 0.0130428
+17.2453 0.0130005
+17.2569 0.0129476
+17.2685 0.0129053
+17.2801 0.012863
+17.2917 0.0128101
+17.3033 0.0127678
+17.3149 0.0127255
+17.3263 0.0126937
+17.3379 0.012662
 17.3495 0.0126303
 17.3611 0.0126091
-17.3727 0.0125985
-17.3843 0.0125985
-17.3959 0.0125985
-17.4074 0.0126091
-17.419 0.0126197
-17.4305 0.0126514
-17.4421 0.0126832
-17.4537 0.0127149
-17.4653 0.0127678
-17.4768 0.0128101
-17.4884 0.012863
-17.5 0.0129265
-17.5116 0.0129899
-17.5232 0.0130428
-17.5348 0.0131063
-17.5463 0.0131803
-17.5578 0.0132332
-17.5694 0.0132967
-17.581 0.0133602
-17.5926 0.0134131
+17.3727 0.012588
+17.3843 0.012588
+17.3959 0.0125774
+17.4074 0.012588
+17.419 0.0125985
+17.4305 0.0126197
+17.4421 0.0126514
+17.4537 0.0126832
+17.4653 0.0127255
+17.4768 0.0127784
+17.4884 0.0128313
+17.5 0.0128842
+17.5116 0.0129476
+17.5232 0.0130111
+17.5348 0.0130746
+17.5463 0.0131486
+17.5578 0.0132121
+17.5694 0.0132755
+17.581 0.013339
+17.5926 0.0134025
 17.6042 0.0134554
-17.6158 0.0134977
-17.6274 0.01354
-17.6388 0.0135717
-17.6504 0.0135929
-17.662 0.013614
-17.6736 0.0136246
-17.6852 0.0136246
-17.6968 0.0136246
-17.7083 0.013614
-17.7199 0.0135929
-17.7315 0.0135717
-17.743 0.01354
-17.7546 0.0135188
-17.7662 0.0134765
-17.7778 0.0134448
-17.7893 0.0134131
-17.8009 0.0133707
-17.8125 0.013339
-17.8241 0.0133073
-17.8357 0.0132755
+17.6158 0.0135083
+17.6274 0.0135506
+17.6388 0.0135929
+17.6504 0.0136246
+17.662 0.0136458
+17.6736 0.0136669
+17.6852 0.0136669
+17.6968 0.0136775
+17.7083 0.0136669
+17.7199 0.0136458
+17.7315 0.0136246
+17.743 0.0136035
+17.7546 0.0135717
+17.7662 0.0135294
+17.7778 0.0134977
+17.7893 0.0134554
+17.8009 0.0134131
+17.8125 0.0133707
+17.8241 0.0133284
+17.8357 0.0132861
 17.8473 0.0132544
 17.8588 0.0132227
-17.8703 0.0132121
-17.8819 0.0132015
-17.8935 0.0132015
-17.9051 0.0132015
-17.9167 0.0132121
-17.9283 0.0132227
-17.9398 0.0132438
-17.9513 0.0132755
-17.9629 0.0133073
-17.9745 0.0133496
-17.9861 0.0133919
-17.9977 0.0134342
-18.0093 0.0134871
-18.0208 0.0135294
-18.0324 0.0135823
-18.044 0.0136352
-18.0556 0.0136775
-18.0671 0.0137198
-18.0787 0.0137621
+17.8703 0.0131909
+17.8819 0.0131698
+17.8935 0.0131592
+17.9051 0.0131486
+17.9167 0.0131486
+17.9283 0.0131592
+17.9398 0.0131698
+17.9513 0.0132015
+17.9629 0.0132332
+17.9745 0.013265
+17.9861 0.0133073
+17.9977 0.0133602
+18.0093 0.0134025
+18.0208 0.0134659
+18.0324 0.0135188
+18.044 0.0135717
+18.0556 0.0136352
+18.0671 0.0136881
+18.0787 0.013741
 18.0903 0.0137939
-18.1018 0.0138256
-18.1134 0.0138468
-18.125 0.0138679
-18.1366 0.0138785
-18.1482 0.0138891
-18.1598 0.0138785
-18.1712 0.0138679
-18.1828 0.0138573
-18.1944 0.0138362
-18.206 0.013815
-18.2176 0.0137833
-18.2292 0.0137516
-18.2408 0.0137198
-18.2523 0.0136881
-18.2639 0.0136458
-18.2754 0.013614
-18.287 0.0135823
+18.1018 0.0138362
+18.1134 0.0138785
+18.125 0.0139102
+18.1366 0.0139314
+18.1482 0.0139525
+18.1598 0.0139631
+18.1712 0.0139631
+18.1828 0.0139525
+18.1944 0.013942
+18.206 0.0139208
+18.2176 0.0138997
+18.2292 0.0138679
+18.2408 0.0138256
+18.2523 0.0137833
+18.2639 0.013741
+18.2754 0.0136987
+18.287 0.0136564
diff --git a/test/geo/geo.gfs b/test/geo/geo.gfs
index 9d2735c..f5815c2 100644
--- a/test/geo/geo.gfs
+++ b/test/geo/geo.gfs
@@ -67,7 +67,7 @@
 #
 # Author: St\'ephane Popinet
 # Command: sh geo.sh geo.gfs
-# Version: 0.8.0
+# Version: 100323
 # Required files: geo.sh geo.gfv e.ref
 # Running time: 3 minutes
 # Generated files: geo_error.eps error-100.eps error-200.eps error-300.eps error-400.eps error-1500.eps
@@ -82,24 +82,28 @@
   PhysicalParams { g = 9.4534734306584e-4 }
   AdvectionParams { scheme = none }
   ApproxProjectionParams { tolerance = 1e-6 }
+  Solid (z + 1.)
   Init {} {
     # e-folding radius = 100 km
     # umax = 0.5 m/s = sqrt(200)*exp(-1/2)
     U = (5.667583815e-4*200.*y*exp (-100.*(x*x + y*y)))
     V = (- 5.667583815e-4*200.*x*exp (-100.*(x*x + y*y)))
     P = (5.667583815e-4*exp (-100.*(x*x + y*y)))
-    H = 1
   }
   # f0 = 1.0285e-4 s-1
-  SourceCoriolis {} 1
+  SourceCoriolis 1
 
-  OutputErrorNorm { istep = 1 } { awk '{print $3/1.0285e-4/3600./24. " " $9*1000e6*1.0285e-4*1.0285e-4/0.01;}' > e } { v = P } {
+  OutputErrorNorm { istep = 1 } { 
+      awk '{print $3/1.0285e-4/3600./24. " " $9*1000e6*1.0285e-4*1.0285e-4/0.01;}' > e 
+  } { v = P } {
     s = (5.667583815e-4*exp (-100.*(x*x + y*y)))
     unbiased = 1
     v = E
   }
   OutputSimulation { istart = 100 iend = 500 istep = 100 } stdout
-  EventScript { istart = 100 iend = 500 istep = 100 } { echo "Save error-$GfsIter.eps { format = EPS }"}
+  EventScript { istart = 100 iend = 500 istep = 100 } { 
+      echo "Save error-$GfsIter.eps { format = EPS }"
+  }
   OutputSimulation { istart = 1500 } stdout
   EventScript { istart = 1500 } { echo "Save error-$GfsIter.eps { format = EPS }"}
   EventScript { start = end } {
@@ -108,7 +112,7 @@
     set output 'geo_error.eps'
     set xlabel 'Time (days)'
     set ylabel 'Maximum error on surface height (cm)'
-    plot 'e.ref' u 1:(\$2*100.) t '' w l, 'e' u 1:(\$2*100.) t 'ref' w l
+    plot 'e.ref' u 1:(\$2*100.) t 'ref' w l, 'e' u 1:(\$2*100.) t '' w l
 EOF
   }
 }
diff --git a/test/geo/geo.gfv b/test/geo/geo.gfv
index d61f0af..901616e 100644
--- a/test/geo/geo.gfv
+++ b/test/geo/geo.gfv
@@ -1,8 +1,9 @@
 # GfsView 3D
 View {
   tx = 0 ty = 0
+  sx = 1 sy = 1 sz = 1
   q0 = 0 q1 = 0 q2 = 0 q3 = 1
-  fov = 30
+  fov = 18.2741
   r = 0.3 g = 0.4 b = 0.6
   res = 1
   lc = 0.001
@@ -12,9 +13,11 @@ Squares {
   r = 0 g = 0 b = 0
   shading = Constant
   maxlevel = -1
+  font_size = 1
+  raster_font = 1
 } {
   n.x = 0 n.y = 0 n.z = 1
-  pos = -0.5
+  pos = 0
 } E {
   amin = 1
   amax = 1
diff --git a/test/geo/geo.sh b/test/geo/geo.sh
index 7596ee8..edc578b 100644
--- a/test/geo/geo.sh
+++ b/test/geo/geo.sh
@@ -1,5 +1,5 @@
-if ! $donotrun; then
-    if gerris2D3 $1 | gfsview-batch2D3 geo.gfv; then :
+if test x$donotrun != xtrue; then
+    if gerris3D $1 | gfsview-batch3D geo.gfv; then :
     else
 	exit 1
     fi
diff --git a/test/harmonic/error.ref b/test/harmonic/error.ref
new file mode 100644
index 0000000..4eeecca
--- /dev/null
+++ b/test/harmonic/error.ref
@@ -0,0 +1,6 @@
+3 7.512e-03 9.626e-03 2.099e-02
+4 1.842e-03 2.360e-03 5.345e-03
+5 4.599e-04 5.879e-04 1.355e-03
+6 1.149e-04 1.469e-04 3.402e-04
+7 2.868e-05 3.668e-05 8.517e-05
+8 7.104e-06 9.113e-06 2.184e-05
diff --git a/test/harmonic/gerris.gfv b/test/harmonic/gerris.gfv
new file mode 100644
index 0000000..d56d320
--- /dev/null
+++ b/test/harmonic/gerris.gfv
@@ -0,0 +1,44 @@
+# GfsView 2D
+View {
+  tx = -1.46721 ty = -1.00442
+  sx = 1 sy = 1 sz = 1
+  q0 = 0 q1 = 0 q2 = 0 q3 = 1
+  fov = 18.2081
+  r = 0.3 g = 0.4 b = 0.6
+  res = 1
+  lc = 0.001
+  reactivity = 0.1
+}
+Squares {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+  font_size = 1
+  raster_font = 1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} P {
+  amin = 0 min = -0.429967
+  amax = 0 max = 0.429967
+  cmap = Jet
+}
+Isoline {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+  font_size = 1
+  raster_font = 1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} P {
+  amin = 1
+  amax = 1
+  cmap = Jet
+} 0 {
+  reversed = 0
+  use_scalar = 1
+} {
+  n = 11
+}
diff --git a/test/harmonic/harmonic.gfs b/test/harmonic/harmonic.gfs
new file mode 100644
index 0000000..04423ee
--- /dev/null
+++ b/test/harmonic/harmonic.gfs
@@ -0,0 +1,165 @@
+# Title: Poisson problem with a pure spherical harmonics solution
+#
+# Description:
+#
+# The spherical harmonics are by definition a family of functions
+# which satisfy the Laplace equation on the sphere
+#
+# $$
+#  \nabla^2 f = \frac{1}{r^2}  \frac{\partial}{\partial r}  \left( r^2 
+#  \frac{\partial f}{\partial r} \right) + \frac{1}{r^2 \sin \theta} 
+#  \frac{\partial}{\partial \theta}  \left( \sin \theta \frac{\partial
+#  f}{\partial \theta} \right) + \frac{1}{r^2 \sin^2 \theta}  \frac{\partial^2
+#  f}{\partial \varphi^2} = 0.
+# $$
+#
+# If we look for solutions of the form $f (r, \theta, \varphi) = R (r)
+# Y (\theta, \varphi)$, then two differential equations result. If we
+# consider only the equation for the angles, we get
+#
+# $$
+# \frac{1}{Y}  \frac{1}{\sin \theta}  \frac{\partial}{\partial \theta}  \left(
+#  \sin \theta \frac{\partial Y}{\partial \theta} \right) + \frac{1}{Y}
+#  \frac{1}{\sin^2 \theta}  \frac{\partial^2 Y}{\partial \varphi^2} = - \lambda
+# $$
+#
+# were $\lambda$ is a constant. This equation has a whole range of
+# solutions noted $Y^m_l (\theta, \varphi)$ so that
+#
+# $$
+#  \nabla Y_l^m (\theta, \varphi) = - l (l + 1) Y_l^m (\theta, \varphi) .
+# $$
+#
+# The $Y_l^m$ can be expressed as functions of the Legendre polynomials as
+#
+# $$
+#  Y_l^m (\theta, \varphi) = \sqrt{\frac{2 l + 1}{4 \pi}  \frac{(l - m) !}{(l +
+#  m) !}} P_l^m (\cos \theta) \cos (m \varphi)
+# $$
+#
+# where $P_l^m$ is the associated Legendre polynomial.
+#
+# For this test we used $l = 4 $ and $m = 2$.
+#
+# \begin{figure}[htbp]
+#   \caption{\label{harmonic}Solution to the Poisson problem with a
+#    pure spherical harmonic solution, as represented on the
+#    "developed cubed sphere".}
+#   \begin{center}
+#     \includegraphics[width=0.7\hsize]{gerris.eps}
+#   \end{center}
+# \end{figure}
+#
+# Figure \ref{residual} illustrates the evolution of the maximum
+# residual as a function of CPU time. Figure \ref{rate}
+# illustrates the average residual reduction factor (per V-cycle). The
+# evolution of the norms of the error of the final solution as a
+# function of resolution is illustrated on Figure \ref{error}. The
+# corresponding order of convergence is given on Figure \ref{order}.
+#
+# \begin{figure}[htbp]
+# \caption{\label{residual}Evolution of the residual.}
+# \begin{center}
+# \includegraphics[width=0.8\hsize]{residual.eps}
+# \end{center}
+# \end{figure}
+#
+# \begin{figure}[htbp]
+# \caption{\label{rate}Average reduction factor.}
+# \begin{center}
+# \includegraphics[width=0.8\hsize]{rate.eps}
+# \end{center}
+# \end{figure}
+#
+# \begin{figure}[htbp]
+# \caption{\label{error}Evolution of the error as a function of resolution.}
+# \begin{center}
+# \includegraphics[width=0.8\hsize]{error.eps}
+# \end{center}
+# \end{figure}
+#
+# \begin{figure}[htbp]
+# \caption{\label{order}Corresponding convergence order.}
+# \begin{center}
+# \includegraphics[width=0.8\hsize]{order.eps}
+# \end{center}
+# \end{figure}
+#
+# Author: S\'ebastien Delaux
+# Command: sh harmonic.sh harmonic.gfs
+# Version: 110208
+# Required files: harmonic.sh gerris.gfv res-7.ref error.ref order.ref
+# Generated files: gerris.eps residual.eps rate.eps error.eps order.eps
+#
+6 12 GfsPoisson GfsBox GfsGEdge {} {
+  Time { iend = 1 }
+  PhysicalParams { L = 2.*M_PI/4. }
+  MetricCubed M LEVEL
+  Refine LEVEL
+
+  GModule hypre
+  ApproxProjectionParams { tolerance = 1e-30 nitermin = CYCLE nitermax = CYCLE }
+
+  Global {
+      #include <gsl/gsl_sf.h>
+      @link -lgsl -lgslcblas
+
+      double fact (double n) {
+        if (n <= 1)
+      	  return 1.;
+    	else
+	  return n*fact(n - 1.);
+      }
+
+      double legendre (int l, int m, double x) {
+	  if (m < 0) 
+	      return pow(-1.,fabs(m))*fact(l-fabs(m))/fact(l+fabs(m))*
+	      gsl_sf_legendre_Plm (l, fabs(m), x);
+	  else
+	      return gsl_sf_legendre_Plm (l, m, x);
+      }
+
+      double spherical_harmonic_re (int l, int m, double X, double Y) {
+	  return sqrt((2*l+1)/(4*M_PI)*fact(l-m)/fact(l+m))*
+	  legendre (l, m, sin(Y/180*M_PI))*cos(m*X/180*M_PI);
+      }
+  }
+
+  Init { } { 
+      Div = -4*(4+1)*spherical_harmonic_re (4, 2, x, y) 
+      Sol = spherical_harmonic_re (4, 2, x, y)
+  }
+
+  OutputTime { istep = 1 } {
+    awk '{if ($2 == 1) print CYCLE, $8;}' >> time
+  }
+  OutputProjectionStats { start = end } {
+    awk '{if ($1 == "residual.infty:") print CYCLE, $3, $4;}' >> proj
+  }
+  OutputErrorNorm { start = end } {
+    awk '{print LEVEL, $5, $7, $9}' >> error 
+  } { v = P } {
+    s = Sol
+    v = E
+    unbiased = 1
+  }
+  OutputSimulation { start = end } end-SOLVER-LEVEL.gfs
+}
+GfsBox {}
+GfsBox {}
+GfsBox {}
+GfsBox {}
+GfsBox {}
+GfsBox {}
+1 2 right
+2 3 top
+3 4 right
+4 5 top
+5 6 right
+6 1 top
+1 3 top left
+3 5 top left
+5 1 top left
+2 6 bottom right
+4 2 bottom right
+6 4 bottom right
diff --git a/test/harmonic/harmonic.sh b/test/harmonic/harmonic.sh
new file mode 100644
index 0000000..460110e
--- /dev/null
+++ b/test/harmonic/harmonic.sh
@@ -0,0 +1,107 @@
+if test x$donotrun != xtrue; then
+    rm -f error
+    for solver in gerris; do
+	rm -f time proj
+
+	if test x$solver = xhypre; then
+	    gmodule=GModule
+	else
+	    gmodule="# GModule"
+	fi
+   
+	for cycle in 0 1 2 3 4 5 6 7 8 9 10 ; do
+	    if ( sed "s/GModule/$gmodule/" < $1 | \
+                 gerris2D -DLEVEL=8 -DCYCLE=$cycle -DSOLVER=$solver - ) ; then :
+	    else
+		exit 1
+	    fi     
+	done
+	join time proj | awk '{
+          if (NR == 1) {print $0; old = $3} 
+          else {print $1,$2,$3,old/$3; old=$3}}' > res-7
+	rm -f error order proj time runtime status
+	for level in 3 4 5 6 7 8; do
+	    if ( sed "s/GModule/$gmodule/" < $1 | \
+		 gerris2D -DLEVEL=$level -DCYCLE=10 -DSOLVER=$solver - ) ; then :
+	    else
+		exit 1
+	    fi
+	done
+	
+	if awk 'BEGIN { n = 0 }
+                {
+		    l[n] = $1; n1[n] = $2; n2[n] = $3; ni[n++] = $4;
+		}
+                END {
+		    for (i = 1; i < n; i++)
+			print l[i] " " log(n1[i-1]/n1[i])/log(2.) " " log(n2[i-1]/n2[i])/log(2.) " " log(ni[i-1]/ni[i])/log(2.);
+		}' < error > order-$solver; then :
+	else
+	    exit 1
+	fi
+	mv res-7 res-7-$solver
+	mv error error-$solver
+    done
+fi
+
+if echo "Save gerris.eps { format = EPS }" | gfsview-batch2D end-gerris-8.gfs gerris.gfv; then :
+else
+    exit 1
+fi
+
+if gnuplot <<EOF ; then :
+    set term postscript eps color lw 3 solid 20
+    set output 'residual.eps'
+    set xlabel 'CPU time'
+    set ylabel 'Maximum residual'
+    set logscale y
+    plot 'res-7.ref' u 2:3 t 'Ref' w lp, \
+	'res-7-gerris' u 2:3 t 'Gerris' w lp
+    set output 'rate.eps'
+    set xlabel 'V-cycle'
+    set ylabel 'Cumulative residual reduction factor'
+    unset logscale
+    plot 'res-7.ref' u 1:4 t 'Ref' w lp, \
+	'res-7-gerris' u 1:4 t 'Gerris' w lp
+    set output 'error.eps'
+    set xlabel 'Level'
+    set ylabel 'Error norms'
+    set key
+    set logscale y
+    plot [][:1]'error.ref' u 1:2 t '1 (ref)' w lp, \
+         'error.ref' u 1:3 t '2 (ref)' w lp, \
+         'error.ref' u 1:4 t 'max (ref)' w lp, \
+         'error-gerris' u 1:2 t '1 Gerris' w lp, \
+         'error-gerris' u 1:3 t '2 Gerris' w lp, \
+         'error-gerris' u 1:4 t 'max Gerris' w lp
+    set output 'order.eps'
+    set xlabel 'Level'
+    set ylabel 'Order'
+    set key bottom
+    unset logscale
+    set xtics 0,1
+    set ytics 0,1
+    set grid
+    plot [][0:3] 'order.ref' u 1:2 t '1 (ref)' w lp, \
+                 'order.ref' u 1:3 t '2 (ref)' w lp, \
+                 'order.ref' u 1:4 t 'max (ref)' w lp, \
+                 'order-gerris' u 1:2 t '1 Gerris' w lp, \
+                 'order-gerris' u 1:3 t '2 Gerris' w lp, \
+                 'order-gerris' u 1:4 t 'max Gerris' w lp
+EOF
+else
+    exit 1
+fi
+
+if cat <<EOF | python ; then :
+from check import *
+from sys import *
+if (Curve('res-7-gerris',1,3) - Curve('res-7.ref',1,3)).max() > 1e-8 or\
+   (Curve('error-gerris',1,4) - Curve('error.ref',1,4)).max() > 1e-6:
+    print (Curve('res-7-gerris',1,3) - Curve('res-7.ref',1,3)).max()
+    print (Curve('error-gerris',1,4) - Curve('error.ref',1,4)).max()
+    exit(1)
+EOF
+else
+   exit 1
+fi
diff --git a/test/harmonic/lonlat/error.ref b/test/harmonic/lonlat/error.ref
new file mode 100644
index 0000000..3f2eb2d
--- /dev/null
+++ b/test/harmonic/lonlat/error.ref
@@ -0,0 +1,6 @@
+3 2.428e-02 2.698e-02 4.068e-02
+4 5.138e-03 6.288e-03 1.222e-02
+5 1.238e-03 1.544e-03 3.292e-03
+6 3.151e-04 3.910e-04 1.025e-03
+7 1.089e-04 1.451e-04 1.249e-03
+8 7.695e-05 1.184e-04 1.278e-03
diff --git a/test/harmonic/lonlat/gerris.gfv b/test/harmonic/lonlat/gerris.gfv
new file mode 100644
index 0000000..500cdce
--- /dev/null
+++ b/test/harmonic/lonlat/gerris.gfv
@@ -0,0 +1,44 @@
+# GfsView 2D
+View {
+  tx = 0.503132 ty = 0.0196764
+  sx = 1 sy = 1 sz = 1
+  q0 = 0 q1 = 0 q2 = 0 q3 = 1
+  fov = 19.0945
+  r = 0.3 g = 0.4 b = 0.6
+  res = 1
+  lc = 0.001
+  reactivity = 0.1
+}
+Squares {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+  font_size = 1
+  raster_font = 1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} P {
+  amin = 0 min = -0.429967
+  amax = 0 max = 0.429967
+  cmap = Jet
+}
+Isoline {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+  font_size = 1
+  raster_font = 1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} P {
+  amin = 1
+  amax = 1
+  cmap = Jet
+} 0 {
+  reversed = 0
+  use_scalar = 1
+} {
+  n = 11
+}
diff --git a/test/harmonic/lonlat/lonlat.gfs b/test/harmonic/lonlat/lonlat.gfs
new file mode 100644
index 0000000..ed9d3e6
--- /dev/null
+++ b/test/harmonic/lonlat/lonlat.gfs
@@ -0,0 +1,121 @@
+# Title: Spherical harmonics with longitude-latitude coordinates
+#
+# Description:
+#
+# Same test case but using longitude-latitude spherical coordinates.
+#
+# \begin{figure}[htbp]
+#   \caption{\label{harmonic}Solution to the Poisson problem with a
+#    pure spherical harmonic solution, as represented on the
+#    longitude-latitude coordinate system.}
+#   \begin{center}
+#     \includegraphics[width=0.7\hsize]{gerris.eps}
+#   \end{center}
+# \end{figure}
+#
+# Figure \ref{residual} illustrates the evolution of the maximum
+# residual as a function of CPU time. Figure \ref{rate}
+# illustrates the average residual reduction factor (per V-cycle). The
+# evolution of the norms of the error of the final solution as a
+# function of resolution is illustrated on Figure \ref{error}. The
+# corresponding order of convergence is given on Figure \ref{order}.
+#
+# While initial convergence is satisfactory, the pole singularities
+# quickly dominate the error. The convergence rate of the multigrid
+# solver is also low, due to the large scale ratio induced by the
+# metric. Better solutions at high-resolution can be obtained by
+# increasing the number of iterations of the multigrid solver, but at
+# a large computational cost.
+#
+# \begin{figure}[htbp]
+# \caption{\label{residual}Evolution of the residual.}
+# \begin{center}
+# \includegraphics[width=0.8\hsize]{residual.eps}
+# \end{center}
+# \end{figure}
+#
+# \begin{figure}[htbp]
+# \caption{\label{rate}Average reduction factor.}
+# \begin{center}
+# \includegraphics[width=0.8\hsize]{rate.eps}
+# \end{center}
+# \end{figure}
+#
+# \begin{figure}[htbp]
+# \caption{\label{error}Evolution of the error as a function of resolution.}
+# \begin{center}
+# \includegraphics[width=0.8\hsize]{error.eps}
+# \end{center}
+# \end{figure}
+#
+# \begin{figure}[htbp]
+# \caption{\label{order}Corresponding convergence order.}
+# \begin{center}
+# \includegraphics[width=0.8\hsize]{order.eps}
+# \end{center}
+# \end{figure}
+#
+# Author: S\'ebastien Delaux
+# Command: sh ../harmonic.sh lonlat.gfs
+# Version: 110208
+# Required files: gerris.gfv res-7.ref error.ref order.ref
+# Generated files: gerris.eps residual.eps rate.eps error.eps order.eps
+#
+2 2 GfsPoisson GfsBox GfsGEdge {} {
+  Time { iend = 1 }
+  PhysicalParams { L = M_PI }
+  MetricLonLat M 1.
+  Refine LEVEL
+
+  GModule hypre
+  ApproxProjectionParams { tolerance = 1e-30 nitermin = CYCLE nitermax = CYCLE }
+
+  Global {
+      #include <gsl/gsl_sf.h>
+      @link -lgsl -lgslcblas
+
+      double fact (double n) {
+        if (n <= 1)
+      	  return 1.;
+    	else
+	  return n*fact(n - 1.);
+      }
+
+      double legendre (int l, int m, double x) {
+	  if (m < 0) 
+	      return pow(-1.,fabs(m))*fact(l-fabs(m))/fact(l+fabs(m))*
+	      gsl_sf_legendre_Plm (l, fabs(m), x);
+	  else
+	      return gsl_sf_legendre_Plm (l, m, x);
+      }
+
+      double spherical_harmonic_re (int l, int m, double X, double Y) {
+	  return sqrt((2*l+1)/(4*M_PI)*fact(l-m)/fact(l+m))*
+	  legendre (l, m, sin(Y/180*M_PI))*cos(m*X/180*M_PI);
+      }
+  }
+
+  Init { } { 
+      Div = -4*(4+1)*spherical_harmonic_re (4, 2, x, y) 
+      Sol = spherical_harmonic_re (4, 2, x, y)
+  }
+
+  OutputTime { istep = 1 } {
+    awk '{if ($2 == 1) print CYCLE, $8;}' >> time
+  }
+  OutputProjectionStats { start = end } {
+    awk '{if ($1 == "residual.infty:") print CYCLE, $3, $4;}' >> proj
+  }
+  OutputErrorNorm { start = end } {
+    awk '{print LEVEL, $5, $7, $9}' >> error 
+  } { v = P } {
+    s = Sol
+    v = E
+    unbiased = 1
+  }
+  OutputSimulation { start = end } end-SOLVER-LEVEL.gfs
+}
+GfsBox {}
+GfsBox {}
+1 2 right
+2 1 right
diff --git a/test/harmonic/lonlat/order.ref b/test/harmonic/lonlat/order.ref
new file mode 100644
index 0000000..65fc630
--- /dev/null
+++ b/test/harmonic/lonlat/order.ref
@@ -0,0 +1,5 @@
+4 2.24049 2.10122 1.73508
+5 2.0532 2.02593 1.89221
+6 1.97413 1.98143 1.68334
+7 1.53281 1.43012 -0.28515
+8 0.501011 0.293378 -0.0331144
diff --git a/test/harmonic/lonlat/res-7.ref b/test/harmonic/lonlat/res-7.ref
new file mode 100644
index 0000000..a9e87b9
--- /dev/null
+++ b/test/harmonic/lonlat/res-7.ref
@@ -0,0 +1,11 @@
+0 1.02000000 6.688e+00 0
+1 1.53000000 3.609e+01 0.185314
+2 1.98000000 7.986e+00 4.51916
+3 2.41000000 6.922e-01 11.5371
+4 2.87000000 1.298e+00 0.533282
+5 3.32000000 7.206e-01 1.80128
+6 3.78000000 6.818e-01 1.05691
+7 4.21000000 5.035e-01 1.35412
+8 4.65000000 4.426e-01 1.1376
+9 5.12000000 3.688e-01 1.20011
+10 5.62000000 3.219e-01 1.1457
diff --git a/test/harmonic/order.ref b/test/harmonic/order.ref
new file mode 100644
index 0000000..c638c03
--- /dev/null
+++ b/test/harmonic/order.ref
@@ -0,0 +1,5 @@
+4 2.02792 2.02815 1.97344
+5 2.00188 2.00514 1.9799
+6 2.00094 2.00074 1.99384
+7 2.00226 2.00177 1.99797
+8 2.01334 2.009 1.96337
diff --git a/test/harmonic/res-7.ref b/test/harmonic/res-7.ref
new file mode 100644
index 0000000..7807b1b
--- /dev/null
+++ b/test/harmonic/res-7.ref
@@ -0,0 +1,11 @@
+0 10.83000000 8.020e+00 0
+1 12.42000000 1.025e+00 7.82439
+2 13.74000000 4.168e-02 24.5921
+3 15.16000000 5.354e-03 7.78483
+4 16.61000000 5.680e-04 9.42606
+5 18.11000000 4.311e-05 13.1756
+6 19.54000000 3.449e-06 12.4993
+7 20.72000000 2.997e-07 11.5082
+8 22.68000000 2.230e-08 13.4395
+9 23.36000000 1.740e-09 12.8161
+10 24.43000000 1.365e-10 12.7473
diff --git a/test/hexagon/hexagon.sh b/test/hexagon/hexagon.sh
index c0dacf4..931eab9 100644
--- a/test/hexagon/hexagon.sh
+++ b/test/hexagon/hexagon.sh
@@ -1,4 +1,4 @@
-if ! $donotrun; then
+if test x$donotrun != xtrue; then
     for order in 1 2 ; do
 	if gerris2D -DORDER=$order hexagon.gfs; then :
 	else
diff --git a/test/hydrostatic/hydrostatic.gfs b/test/hydrostatic/hydrostatic.gfs
index 601379c..9cf64a9 100644
--- a/test/hydrostatic/hydrostatic.gfs
+++ b/test/hydrostatic/hydrostatic.gfs
@@ -8,7 +8,7 @@
 # Author: St\'ephane Popinet
 # Command: gerris2D hydrostatic.gfs
 # Version: 1.1.3
-# Required files: hydrostatic.gfs
+# Required files:
 1 0 GfsSimulation GfsBox GfsGEdge {} {
     Refine 3
     Source V -1
@@ -20,11 +20,13 @@
 
     OutputScalarNorm { istep = 1 } v { v = V }
     EventScript { start = end } { 
-        if awk '{if ($9 > 1e-12) exit (1);}' < v ; then
+        if awk '{if ($9 > 1e-12) { print $9 > "/dev/stderr"; exit (1); }}' < v ; then
             exit 0;
         else
             exit $GFS_STOP;
         fi
-    } 
+    }
+}
+GfsBox {
+    bottom = Boundary
 }
-GfsBox {}
diff --git a/test/hydrostatic/quadratic/quadratic.gfs b/test/hydrostatic/quadratic/quadratic.gfs
index cce31c5..9adeffd 100644
--- a/test/hydrostatic/quadratic/quadratic.gfs
+++ b/test/hydrostatic/quadratic/quadratic.gfs
@@ -43,4 +43,6 @@
         fi
     } 
 }
-GfsBox {}
+GfsBox {
+    bottom = Boundary
+}
diff --git a/test/lake/lake.gfs b/test/lake/lake.gfs
new file mode 100644
index 0000000..6482092
--- /dev/null
+++ b/test/lake/lake.gfs
@@ -0,0 +1,52 @@
+# Title: Wind-driven lake
+#
+# Description:
+#
+# A simple test of a wind-driven lake with a 1/10 mesh stretching
+# ratio. Due to the anisotropy of stretching, the hypre module needs
+# to be used to solve the Poisson problem efficiently. Further, with
+# Neumman boundary conditions everywhere for the pressure, the
+# resulting linear system is rank-deficient and needs to be "fixed" to
+# avoid drift problems in HYPRE.
+#
+# \begin{figure}[htbp]
+# \caption{\label{vectors}Norm of the velocity and vectors for the
+# stationary regime. The vertical scale is stretched by a factor of
+# ten.}
+# \begin{center}
+# \includegraphics[width=0.6\hsize]{lake.eps}
+# \end{center}
+# \end{figure}
+#
+# Author: St\'ephane Popinet
+# Command: gerris2D lake.gfs
+# Version: 110325
+# Required files: lake.gfv
+# Running time: 2 minutes
+# Generated files: lake.eps
+#
+1 0 GfsSimulation GfsBox GfsGEdge {} {
+    GModule hypre
+    MetricStretch {} { sy = 0.1 }
+    Time { end = 5 dtmax = 0.1 }
+    # fixme: we need to limit the cost of the implicit diffusion
+    # solver (which does not use hypre yet)
+    SourceViscosity 1./400. { beta = 1. nitermax = 4 tolerance = 1. }
+    Refine 6
+    OutputTime { istep = 1 } stderr
+    OutputProjectionStats { istep = 1 } stderr
+    OutputDiffusionStats { istep = 1 } stderr
+    OutputScalarStats { istep = 1 } p { v = P }
+    GModule gfsview
+    OutputView { start = end } lake.eps { format = EPS } lake.gfv
+}
+GfsBox {
+    top = Boundary {
+	BcNeumann U 1.
+    }
+    right = Boundary
+    left = Boundary
+    bottom = Boundary {
+	BcDirichlet U 0
+    }
+}
diff --git a/test/lake/lake.gfv b/test/lake/lake.gfv
new file mode 100644
index 0000000..46a615b
--- /dev/null
+++ b/test/lake/lake.gfv
@@ -0,0 +1,42 @@
+# GfsView 2D
+View {
+  tx = 0 ty = 0
+  sx = 1 sy = 1 sz = 1
+  q0 = 0 q1 = 0 q2 = 0 q3 = 1
+  fov = 26.5041
+  r = 0.3 g = 0.4 b = 0.6
+  res = 1
+  lc = 0.001
+  reactivity = 0.1
+}
+Squares {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = -1
+  font_size = 1
+  raster_font = 1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} Velocity {
+  amin = 1
+  amax = 1
+  cmap = Jet
+}
+Vectors {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = 5
+  font_size = 1
+  raster_font = 1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} P {
+  amin = 1
+  amax = 1
+  cmap = Jet
+} U V {
+  scale = 0.784
+  use_scalar = 0
+}
diff --git a/test/lid/explicit/lid.sh b/test/lid/explicit/lid.sh
index 12c44a9..4ebb337 100644
--- a/test/lid/explicit/lid.sh
+++ b/test/lid/explicit/lid.sh
@@ -1,4 +1,4 @@
-if ! $donotrun; then
+if test x$donotrun != xtrue; then
     if gerris2D $1; then :
     else
 	exit 1
diff --git a/test/lid/lid.gfs b/test/lid/lid.gfs
index 680df43..84d6fea 100644
--- a/test/lid/lid.gfs
+++ b/test/lid/lid.gfs
@@ -12,7 +12,7 @@
 # \begin{figure}[htbp]
 # \caption{\label{velocity}Norm of the velocity for the stationary regime.}
 # \begin{center}
-# \includegraphics[width=0.8\hsize]{velocity.eps}
+# \includegraphics[width=0.6\hsize]{velocity.eps}
 # \end{center}
 # \end{figure}
 #
@@ -40,7 +40,7 @@
 # Command: sh lid.sh lid.gfs
 # Version: 0.6.4
 # Required files: lid.sh xprofile yprofile xprof.ghia yprof.ghia
-# Running time: 70 minutes
+# Running time: 6 minutes
 # Generated files: xprof yprof xprof.eps yprof.eps velocity.eps
 #
 # The simulation domain has 1 GfsBox
@@ -80,10 +80,12 @@
   OutputLocation { start = end } xprof xprofile
   OutputLocation { start = end } yprof yprofile
 
+  OutputSimulation { start = end } end.gfs
+
   # At the end of the simulation calls the script generating the EPS
   # files using gnuplot and files: xprof, yprof, xprof.ghia, yprof.ghia
   EventScript { start = end } {
-    cat <<EOF | gnuplot
+    gnuplot <<EOF
     set term postscript eps lw 3 solid 20
     set output 'xprof.eps'
     set xlabel 'Y'
diff --git a/test/lid/lid.sh b/test/lid/lid.sh
index 69de6ab..78b5d24 100644
--- a/test/lid/lid.sh
+++ b/test/lid/lid.sh
@@ -1,11 +1,11 @@
-if ! $donotrun; then
+if test x$donotrun != xtrue; then
     if gerris2D $1; then :
     else
 	exit 1
     fi
 fi
 
-if cat <<EOF | python ; then :
+if python <<EOF ; then :
 from check import *
 from sys import *
 if (Curve('xprof',3,7) - Curve('xprof.ghia',1,2)).normi() > 2e-2 or \
diff --git a/test/lid/stretch/stretch.gfs b/test/lid/stretch/stretch.gfs
new file mode 100644
index 0000000..443fcfa
--- /dev/null
+++ b/test/lid/stretch/stretch.gfs
@@ -0,0 +1,139 @@
+# Title: Lid-driven cavity on an anisotropic mesh
+#
+# Description:
+#
+# Same test case except that the domain is made of two boxes instead
+# of one. The stretch metric is used to transform the rectangular
+# domain into a square one.
+#
+# The stationary solution obtained is illustrated on Figure \ref{velocity}.
+#
+# \begin{figure}[htbp]
+# \caption{\label{velocity}Norm of the velocity for the stationary regime.}
+# \begin{center}
+# \includegraphics[width=0.6\hsize]{velocity.eps}
+# \end{center}
+# \end{figure}
+#
+# Velocity profiles are generated automatically and compared to the
+# benchmark results of Ghia et al. \cite{ghia82} on
+# Figures \ref{xprof} and \ref{yprof}.
+#
+# \begin{figure}[htbp]
+# \caption{\label{xprof}Vertical profile of the $x$-component of the velocity on
+# the centerline of the box.}
+# \begin{center}
+# \includegraphics[width=0.8\hsize]{xprof.eps}
+# \end{center}
+# \end{figure}
+#
+# \begin{figure}[htbp]
+# \caption{\label{yprof}Horizontal profile of the $y$-component of the velocity on
+# the centerline of the box.}
+# \begin{center}
+# \includegraphics[width=0.8\hsize]{yprof.eps}
+# \end{center}
+# \end{figure}
+#
+# Author: S\'ebastien Delaux
+# Command: sh ../lid.sh stretch.gfs
+# Version: 100208
+# Required files: xprofile yprofile xprof.ghia yprof.ghia
+# Running time: 10 minutes
+# Generated files: xprof yprof xprof.eps yprof.eps velocity.eps
+#
+# The simulation domain has 1 GfsBox
+2 1 GfsSimulation GfsBox GfsGEdge {
+  # we need to shift the origin of the reference box to (0,0.5)
+  y = 0.5
+} {
+
+  # Stop the simulation at t = 300 if convergence has not been reached before
+  Time { end = 300 }
+
+  # Use an initial refinement of 6 levels (i.e. 2^6=64x64)
+  Refine 6
+
+  # The mesh is stretched by a factor 0.5 (compressed) in the y direction.
+  MetricStretch {} { sy = 0.5 }
+
+  # Set a viscosity source term on the velocity vector with x-component U
+  # The Reynolds number is Re = L*U/Nu = 1*1/1e-3 = 1000
+  SourceDiffusion {} U 1e-3
+  SourceDiffusion {} V 1e-3
+
+  # Stops the simulation if the maximum of the absolute value of the
+  # difference between the current U field and the U field 10 timesteps
+  # before is smaller than 1e-4.
+  #
+  # Stores this difference in the DU field (this can be used for
+  # monitoring the convergence of the simulation).
+  EventStop { istep = 10 } U 1e-4 DU
+
+  OutputScalarNorm { istep = 10 } du { v = DU }
+
+  # Pipes a bitmap PPM image representation of the velocity field at the end of the simulation
+  # into the ImageMagick converter "convert" to create the
+  # corresponding EPS file
+  OutputPPM { start = end } { convert -colors 256 ppm:- -resize 128x128! velocity.eps } {
+    v = Velocity
+  }
+
+  # At the end of the simulation, computes the values of the variables
+  # at the locations defined in files xprofile, yprofile and stores the
+  # results in files xprof, yprof
+  OutputLocation { start = end } xprof xprofile
+  OutputLocation { start = end } yprof yprofile
+
+  OutputSimulation { start = end } end.gfs
+
+  # At the end of the simulation calls the script generating the EPS
+  # files using gnuplot and files: xprof, yprof, xprof.ghia, yprof.ghia
+  EventScript { start = end } {
+    gnuplot <<EOF
+    set term postscript eps lw 3 solid 20
+    set output 'xprof.eps'
+    set xlabel 'Y'
+    set ylabel 'U'
+    plot [-0.5:0.5]'xprof.ghia' u 1:2 title "Ghia et al." w p ps 2 pt 9, 'xprof' u 3:7 w l title "Gerris"
+    set output 'yprof.eps'
+    set xlabel 'X'
+    set ylabel 'V'
+    plot [-0.5:0.5]'yprof.ghia' u 1:2 title "Ghia et al." w p ps 2 pt 9, 'yprof' u 2:8 w l title "Gerris"
+EOF
+  }
+}
+GfsBox {
+
+  # Dirichlet boundary conditions for both components of the velocity on all sides:
+  # - non-slip (U = V = 0) on right, left and bottom boundaries
+  # - tangential velocity equal to 1 (U = 1) on top boundary
+
+  top = Boundary {
+    BcDirichlet U 1
+    BcDirichlet V 0
+  }
+  right = Boundary {
+    BcDirichlet U 0
+    BcDirichlet V 0
+  }
+  left = Boundary {
+    BcDirichlet U 0
+    BcDirichlet V 0
+  }
+}
+GfsBox {
+  bottom = Boundary {
+    BcDirichlet U 0
+    BcDirichlet V 0
+  }
+  right = Boundary {
+    BcDirichlet U 0
+    BcDirichlet V 0
+  }
+  left = Boundary {
+    BcDirichlet U 0
+    BcDirichlet V 0
+  }
+}
+2 1 top
diff --git a/test/lid/xprof.ghia b/test/lid/stretch/xprof.ghia
similarity index 100%
copy from test/lid/xprof.ghia
copy to test/lid/stretch/xprof.ghia
diff --git a/test/lid/xprofile b/test/lid/stretch/xprofile
similarity index 100%
copy from test/lid/xprofile
copy to test/lid/stretch/xprofile
diff --git a/test/lid/yprof.ghia b/test/lid/stretch/yprof.ghia
similarity index 100%
copy from test/lid/yprof.ghia
copy to test/lid/stretch/yprof.ghia
diff --git a/test/lid/yprofile b/test/lid/stretch/yprofile
similarity index 100%
copy from test/lid/yprofile
copy to test/lid/stretch/yprofile
diff --git a/test/lonlat/coriolis/coriolis.gfs b/test/lonlat/coriolis/coriolis.gfs
index 92013a7..b272dc8 100644
--- a/test/lonlat/coriolis/coriolis.gfs
+++ b/test/lonlat/coriolis/coriolis.gfs
@@ -38,15 +38,12 @@ Define LENGTH (150./180.*M_PI)
     Time { end = 1.4 }
     SourceCoriolis 10.*sin(y*M_PI/180.)
     OutputTime { istep = 10 } stderr
-    OutputSimulation { step = 0.4 } sim-%g.gfs
+    GModule gfsview
+    OutputView { start = 0.4 step = 0.4 } isolines-%g.eps { 
+	format = EPS line_width = 0.5 
+    } isolines.gfv
     OutputSimulation { step = 0.4 } sim-%g.txt { variables = U,V,P format = text }
 #    OutputSimulation { istep = 10 } stdout
-    EventScript { start = end } {
-	for i in 0.4 0.8 1.2; do
-	    echo "Save stdout { format = EPS line_width = 0.5 }" | \
-		gfsview-batch2D sim-$i.gfs isolines.gfv > isolines-$i.eps
-	done
-    }
 }
 GfsBox {
     right = Boundary { BcNeumann U 0 }
diff --git a/test/lonlat/lonlat.gfs b/test/lonlat/lonlat.gfs
index ee8a751..9a2361e 100644
--- a/test/lonlat/lonlat.gfs
+++ b/test/lonlat/lonlat.gfs
@@ -57,7 +57,10 @@ Define LENGTH (150./180.*M_PI)
     Init {} { P = 0.2 + 1.8*P/LENGTH }
     Time { end = 0.9 }
     OutputTime { istep = 10 } stderr
-    OutputSimulation { step = 0.3 } sim-%g.gfs
+    GModule gfsview
+    OutputView { start = 0.3 step = 0.3 } isolines-%g.eps { 
+	format = EPS line_width = 0.5 
+    } isolines.gfv
     OutputSimulation { step = 0.3 } sim-%g.txt { variables = U,V,P format = text }
     OutputScalarSum { istep = 1 } sp { v = P }
 #    OutputSimulation { istep = 10 } stdout
@@ -107,8 +110,6 @@ set output 'p-$i.eps'
 plot [0:90][0:0.75]'sim-$i.txt' u (rdist(\$1,\$2)):6 ps 0.25 pt 6 t '', 'prof-$i.txt' w l lw 2 t ''
 EOF
 
-	    echo "Save stdout { format = EPS line_width = 0.5 }" | \
-		gfsview-batch2D sim-$i.gfs isolines.gfv > isolines-$i.eps
 	done
 	exit $status
     }
diff --git a/test/merging/merging.sh b/test/merging/merging.sh
index e906190..fb7a33c 100644
--- a/test/merging/merging.sh
+++ b/test/merging/merging.sh
@@ -1,4 +1,4 @@
-if ! $donotrun; then
+if test x$donotrun != xtrue; then
     if sed "s/LEVEL/8/g" < $1 | \
        sed "s/SIM/sim-8/g" | \
        gerris2D - | gfsview-batch2D; then :
diff --git a/test/merging/sim.err.ref b/test/merging/sim.err.ref
index 21eba36..fd69cc3 100644
--- a/test/merging/sim.err.ref
+++ b/test/merging/sim.err.ref
@@ -1,3 +1,3 @@
-6 2.609e-02 4.564e-01
-7 1.071e-02 1.924e-01
-8 2.837e-03 4.519e-02
+6 2.585e-02 4.468e-01
+7 1.094e-02 1.987e-01
+8 2.712e-03 4.279e-02
diff --git a/test/nz/nz.gfs b/test/nz/nz.gfs
index 7057c25..761e930 100644
--- a/test/nz/nz.gfs
+++ b/test/nz/nz.gfs
@@ -29,8 +29,8 @@
 # \end{figure}
 #
 # Author: St\'ephane Popinet
-# Command: gerris2D3 nz.gfs
-# Version: 1.0.0
+# Command: gerris3D nz.gfs
+# Version: 100323
 # Required files: nz.gfs bath.gts
 # Generated files: p.eps k.eps
 #
@@ -62,7 +62,7 @@
             set grid
             plot 'k' u 3:5 w l t ''
 EOF
-        if awk '{if ($5 > 4e-7) exit (1);}' < k ; then
+        if awk '{if ($5 > 6e-12) exit (1);}' < k ; then
             return 0;
         else
             return $GFS_STOP;
diff --git a/test/oscillation/fit.ref b/test/oscillation/fit.ref
index fed8bde..2f58270 100644
--- a/test/oscillation/fit.ref
+++ b/test/oscillation/fit.ref
@@ -1,4 +1,4 @@
-5 0.000262644998808499 2.09156892219132 150.364967186
-6 0.000278820242460604 0.612581630706214 153.065777805706
-7 0.000285328887705565 0.217314392890076 154.499228064224
-8 0.000291359142215191 0.101175013065393 154.793056509618
+5 0.000254559538777311 2.07938930474139 150.565907314679
+6 0.000277045771161813 0.594372644793368 153.0828792034
+7 0.00028855358427227 0.235605392652058 154.391924587016
+8 0.000293340113067955 0.159054572826588 154.809924688988
diff --git a/test/oscillation/oscillation.sh b/test/oscillation/oscillation.sh
index b2ab535..2600f33 100644
--- a/test/oscillation/oscillation.sh
+++ b/test/oscillation/oscillation.sh
@@ -1,6 +1,6 @@
 levels="5 6 7 8"
 
-if ! $donotrun; then
+if test x$donotrun != xtrue; then
     rm -f fit
     for level in $levels; do
 	if gerris2D -D LEVEL=$level oscillation.gfs >> fit; then :
diff --git a/test/parabola/error.ref b/test/parabola/error.ref
index 2cdfcb7..7080c2c 100644
--- a/test/parabola/error.ref
+++ b/test/parabola/error.ref
@@ -1,5 +1,5 @@
-5 0.00643516 0.0111809 0.07844
-6 0.00208764 0.00386098 0.04185
-7 0.000928116 0.00176718 0.03133
-8 0.000629843 0.00118686 0.03369
-9 0.000616878 0.00111956 0.03758
+5 0.00663514 0.0113431 0.08298
+6 0.00199306 0.00364201 0.04435
+7 0.000675489 0.00129513 0.0236
+8 0.000212051 0.000448004 0.01228
+9 7.40002e-05 0.000168225 0.00626
diff --git a/test/parabola/order.ref b/test/parabola/order.ref
deleted file mode 100644
index eeff67c..0000000
--- a/test/parabola/order.ref
+++ /dev/null
@@ -1,4 +0,0 @@
-6 1.6241 1.534 0.906362
-7 1.1695 1.12752 0.417683
-8 0.559313 0.574299 -0.104776
-9 0.0300071 0.0842179 -0.157645
diff --git a/test/parabola/parabola.gfs b/test/parabola/parabola.gfs
index f5668c7..471981a 100644
--- a/test/parabola/parabola.gfs
+++ b/test/parabola/parabola.gfs
@@ -11,14 +11,12 @@
 #
 # Figure \ref{u0} gives the analytical and numerical solutions for the
 # horizontal component of velocity (which is spatially
-# constant). Figures \ref{error} and \ref{error-u} give the relative
-# errors in surface elevation and horizontal velocity respectively, as
-# functions of spatial resolution. Figures \ref{order} and
-# \ref{order-u} give the corresponding convergence orders.
+# constant). Figures \ref{convergence} and \ref{convergence-u} give
+# the relative errors in surface elevation and horizontal velocity
+# respectively, as functions of spatial resolution.
 #
-# The errors are generally small, however convergence is not reached
-# with increasing resolution. This is due to errors in velocity at the
-# contact points.
+# The errors are small and larger-than-first-order convergence rates
+# are obtained.
 #
 # \begin{figure}[htbp]
 # \caption{\label{elevation}Solution at $t = 1500$ seconds. Six levels of refinement.}
@@ -36,39 +34,26 @@
 # \end{figure}
 #
 # \begin{figure}[htbp]
-# \caption{\label{error}Evolution of the relative elevation error norms as functions of resolution.}
+# \caption{\label{convergence}Evolution of the relative elevation
+# error norms as functions of resolution.}
 # \begin{center}
-# \includegraphics[width=0.8\hsize]{error.eps}
+# \includegraphics[width=0.8\hsize]{convergence.eps}
 # \end{center}
 # \end{figure}
 #
 # \begin{figure}[htbp]
-# \caption{\label{order}Corresponding convergence order.}
-# \begin{center}
-# \includegraphics[width=0.8\hsize]{order.eps}
-# \end{center}
-# \end{figure}
-#
-# \begin{figure}[htbp]
-# \caption{\label{error-u}Evolution of the relative velocity error
+# \caption{\label{convergence-u}Evolution of the relative velocity error
 # L2-norm as a function of resolution.}
 # \begin{center}
-# \includegraphics[width=0.8\hsize]{error-u.eps}
-# \end{center}
-# \end{figure}
-#
-# \begin{figure}[htbp]
-# \caption{\label{order-u}Corresponding convergence order.}
-# \begin{center}
-# \includegraphics[width=0.8\hsize]{order-u.eps}
+# \includegraphics[width=0.8\hsize]{convergence-u.eps}
 # \end{center}
 # \end{figure}
 #
 # Author: St\'ephane Popinet
 # Command: sh parabola.sh
 # Version: 1.3.1
-# Required files: parabola.sh error.ref order.ref
-# Generated files: elevation.eps error.eps error-u.eps order.eps order-u.eps u0.eps
+# Required files: parabola.sh error.ref
+# Generated files: elevation.eps u0.eps convergence.eps convergence-u.eps
 #
 Define h0 10.
 Define a 3000.
@@ -91,7 +76,7 @@ Define G 9.81
 
     PhysicalParams { L = 10000 }
     RefineSolid LEVEL
-    Solid (y/10000. + 1./pow(2,LEVEL) - 1e-6 - 0.5)
+    Solid (y - 4999.)
     Init {} {
 	Zb = h0*(x/a)*(x/a)
 	P = MAX (0., h0 + Psi (x, 0.) - Zb)
@@ -105,12 +90,16 @@ Define G 9.81
     OutputSimulation { start = 1500 } sim-LEVEL-%g.txt { format = text }
     OutputSimulation { start = end } end-LEVEL.txt { format = text }
     OutputScalarSum { istep = 10 } ke-LEVEL { v = (P > 0. ? U*U/P : 0.) }
-    OutputScalarSum { istep = 10 } vol-LEVEL { v = P }
-    OutputScalarSum { istep = 10 } U-LEVEL { v = U }
+    OutputScalarSum { step = 50 } vol-LEVEL { v = P }
+    OutputScalarSum { step = 50 } U-LEVEL { v = U }
     OutputErrorNorm { istep = 1 } error-LEVEL { v = P } {
 	s = Pt
 	v = DP
     }
+} {
+    # this is necessary to obtain good convergence rates at high
+    # resolutions
+    dry = 1e-4
 }
 GfsBox {
     left = Boundary
diff --git a/test/parabola/parabola.sh b/test/parabola/parabola.sh
index 3e340cf..956f685 100644
--- a/test/parabola/parabola.sh
+++ b/test/parabola/parabola.sh
@@ -1,6 +1,6 @@
 levels="5 6 7 8 9"
 
-if ! $donotrun; then
+if test x$donotrun != xtrue; then
     for level in $levels; do
 	if gerris2D -DLEVEL=$level parabola.gfs; then :
 	else
@@ -52,69 +52,8 @@ for level in $levels; do
     fi
 done > error-u
 
-if awk '
-BEGIN { n = 0 }
-{
-  l[n] = $1; n1[n] = $2; n2[n] = $3; ni[n++] = $4;
-}
-END {
-  for (i = 1; i < n; i++)
-    print l[i] " " log(n1[i-1]/n1[i])/log(2.) " " log(n2[i-1]/n2[i])/log(2.) " " log(ni[i-1]/ni[i])/log(2.);
-}' < error > order; then :
-else
-    exit 1
-fi
-
-if awk '
-BEGIN { n = 0 }
-{
-  l[n] = $1; n2[n++] = $2;
-}
-END {
-  for (i = 1; i < n; i++)
-    print l[i] " " log(n2[i-1]/n2[i])/log(2.);
-}' < error-u > order-u; then :
-else
-    exit 1
-fi
-
 if cat <<EOF | gnuplot ; then :
-    set term postscript eps color lw 3 solid 20
-
-    set output 'error.eps'
-    set xlabel 'Level'
-    set ylabel 'Relative error norms'
-    set key
-    set logscale y
-    set xtics 0,1
-    set grid
-    plot 'error.ref' u 1:2 t '1 (ref)' w lp, \
-         'error.ref' u 1:3 t '2 (ref)' w lp, \
-         'error.ref' u 1:4 t 'max (ref)' w lp, \
-         'error' u 1:2 t '1' w lp, \
-         'error' u 1:3 t '2' w lp, \
-         'error' u 1:4 t 'max' w lp
-   
-    set output 'error-u.eps'
-    set ylabel 'u0 relative error L2 norm'
-    plot 'error-u' u 1:(\$2/4.) t '' w lp
-   
-    set output 'order.eps'
-    set xlabel 'Level'
-    set ylabel 'Order'
-    unset logscale
-    set ytics 0,1
-    plot [][-1:2] 'order.ref' u 1:2 t '1 (ref)' w lp, \
-                  'order.ref' u 1:3 t '2 (ref)' w lp, \
-                  'order.ref' u 1:4 t 'max (ref)' w lp, \
-                  'order' u 1:2 t '1' w lp, \
-                  'order' u 1:3 t '2' w lp, \
-                  'order' u 1:4 t 'max' w lp
-
-    set output 'order-u.eps'
-    plot [][-1:2]'order-u' u 1:2 t '' w lp
-
-    set output 'u0.eps'
+    set term postscript eps color lw 3 solid 20 enhanced
 
     h0 = 10.
     a = 3000.
@@ -125,12 +64,51 @@ if cat <<EOF | gnuplot ; then :
     s = sqrt (p*p - tau*tau)/2.
     u0(t) = B*exp (-tau*t/2.)*sin (s*t)
 
+    set output 'convergence.eps'
+    set xlabel 'Level'
+    set ylabel 'Relative error norms'
+    set key bottom left
+    set logscale y
+    set xtics 0,1
+    set grid
+    ftitle(a,b) = sprintf("order %4.2f", -b/log(2.))
+    f1(x)=a1+b1*x
+    fit f1(x) 'error' u 1:(log(\$2)) via a1,b1
+    f2(x)=a2+b2*x
+    fit f2(x) 'error' u 1:(log(\$3)) via a2,b2
+    fm(x)=am+bm*x
+    fit fm(x) 'error' u 1:(log(\$4)) via am,bm
+    plot 'error.ref' u 1:2 t '|h|_1 (ref)' ps 1.5, \
+         'error.ref' u 1:3 t '|h|_2 (ref)' ps 1.5, \
+         'error.ref' u 1:4 t '|h|_{max} (ref)' ps 1.5, \
+         exp (f1(x)) t ftitle(a1,b1), \
+         exp (f2(x)) t ftitle(a2,b2), \
+         exp (fm(x)) t ftitle(am,bm),  \
+         'error' u 1:2 t '|h|_1' ps 1.5, \
+         'error' u 1:3 t '|h|_2' ps 1.5, \
+         'error' u 1:4 t '|h|_{max}' ps 1.5
+
+    set output 'convergence-u.eps'
+    set xlabel 'Level'
+    set ylabel '|u_0|_2'
+    set key top right
+    set logscale y
+    set xtics 0,1
+    set grid
+    fit f2(x) 'error-u' u 1:(log(\$2/B)) via a2,b2
+    plot exp (f2(x)) t ftitle(a2,b2), \
+         'error-u' u 1:(\$2/B) t '' ps 1.5
+
+    set output 'u0.eps'
+
     set xtics auto
     set ytics auto
     unset grid
+    unset logscale
+    set key top right
     set ylabel 'u0'
     set xlabel 'Time'
-    plot u0(x) t 'Analytical', '< paste U-7 vol-7' u 3:(\$5/\$10) every 2 w p t 'Gerris'
+    plot u0(x) t 'Analytical', '< paste U-7 vol-7' u 3:(\$5/\$10) every 2 w p t 'Numerical'
 
     set output 'elevation.eps'
     set xlabel 'x (m)'
diff --git a/test/periodic/periodic.sh b/test/periodic/periodic.sh
index 64b91f5..59e0531 100644
--- a/test/periodic/periodic.sh
+++ b/test/periodic/periodic.sh
@@ -1,4 +1,4 @@
-if ! $donotrun; then
+if test x$donotrun != xtrue; then
     rm -f r0 r1 r2
 
     for r in 0 1 2; do
diff --git a/test/planar/planar.gfs b/test/planar/planar.gfs
new file mode 100644
index 0000000..f1a549f
--- /dev/null
+++ b/test/planar/planar.gfs
@@ -0,0 +1,73 @@
+# Title: Dielectric-dieletric planar balance
+#
+# Description:
+#
+# Checks that electrohydrodynamic balance is accurately computed for a
+# planar interface.
+#
+# Author: Jose M. L\'opez-Herrera S\'anchez and St\'ephane Popinet
+# Command: gerris2D planar.gfs
+# Version: 101020
+# Required files:
+GModule electrohydro
+
+1 0 GfsElectroHydro GfsBox GfsGEdge {} {
+    VariableTracerVOF T
+    InitFraction T (-y)
+    Init {} { Phi = (y < 0. ? (y/2.+1/4.) : 3.*y/2.+1./4.) }
+    Refine 5
+    
+    Time { iend = 1 dtmax = 1 }
+    ProjectionParams { tolerance = 1e-7 }  
+    ApproxProjectionParams { tolerance = 1e-7 }
+    SourceElectric
+
+    OutputTime { istep = 1 } stderr
+    OutputSimulation { start = end } result.txt { format = text }
+    OutputScalarStats { start = end } p { v = P }
+    OutputScalarStats { start = end } ey { v = Ey }
+    OutputScalarNorm { start = end } v { v = V }
+    EventScript { start = end } { 
+       if awk '{
+              deltap = ($11 - $5) - 0.75
+              if (deltap < 0.)
+                deltap = - deltap;
+              if (deltap > 5e-8) { 
+                print "deltap:", deltap > "/dev/stderr"; 
+                exit (1); 
+              }
+            }' < p &&
+          awk '{
+              deltap = ($11 - $5) - 1.
+              if (deltap < 0.)
+                deltap = - deltap;
+              if (deltap > 0.) { 
+                print "deltaey:", deltap > "/dev/stderr"; 
+                exit (1); 
+              }
+            }' < ey &&
+          awk '{
+              if ($9 > 3.) { 
+                print "vmax:", $9 > "/dev/stderr"; 
+                exit (1); 
+              }
+            }' < v; then
+            exit 0;
+        else
+            exit $GFS_STOP;
+        fi
+    }
+} {
+    # Electric parameters
+    perm = 1./(T/3.+(1-T))
+    ElectricProjectionParams { tolerance = 1e-7 }
+}
+GfsBox {
+   top   = Boundary {
+       BcDirichlet Phi  1
+       BcDirichlet P 0
+   }
+   bottom = Boundary {
+       BcDirichlet Phi 0.       
+   }
+}
diff --git a/test/planar/solid/solid.gfs b/test/planar/solid/solid.gfs
new file mode 100644
index 0000000..0380fec
--- /dev/null
+++ b/test/planar/solid/solid.gfs
@@ -0,0 +1,76 @@
+# Title: Balance with solid boundaries
+#
+# Description:
+#
+# Same case but using embedded solid boundaries.
+#
+# Author: Jose M. L\'opez-Herrera S\'anchez and St\'ephane Popinet
+# Command: gerris2D solid.gfs
+# Version: 101020
+# Required files:
+GModule electrohydro
+
+1 0 GfsElectroHydro GfsBox GfsGEdge {} {
+    VariableTracerVOF T
+    InitFraction T (-y)
+    Refine 5
+    Solid (-y + 0.3)
+    Solid ( y + 0.2)
+    SurfaceBc Phi Dirichlet (y > 0)
+
+    Time { iend = 1 dtmax = 1 }
+    ProjectionParams { tolerance = 1e-7 }  
+    ApproxProjectionParams { tolerance = 1e-7 }
+    SourceElectric
+
+    OutputTime { istep = 1 } stderr
+    OutputSimulation { start = end } result.txt { format = text }
+    OutputScalarStats { start = end } p { v = P }
+    OutputScalarStats { start = end } ey { v = Ey }
+    OutputScalarNorm { start = end } v { v = V }
+    EventScript { start = end } { 
+       if awk '{
+              deltap = ($11 - $5) - 3./(1.1*1.1)
+              if (deltap < 0.)
+                deltap = - deltap;
+              if (deltap > 4e-4) { 
+                print "deltap:", deltap > "/dev/stderr"; 
+                exit (1); 
+              }
+            }' < p &&
+          awk '{
+              deltap = ($11 - $5) - 2./1.1
+              if (deltap < 0.)
+                deltap = - deltap;
+              if (deltap > 3e-4) { 
+                print "deltaey:", deltap > "/dev/stderr"; 
+                exit (1); 
+              }
+            }' < ey &&
+          awk '{
+              if ($9 > 10.) { 
+                print "vmax:", $9 > "/dev/stderr"; 
+                exit (1); 
+              }
+            }' < v; then
+            exit 0;
+        else
+            exit $GFS_STOP;
+        fi
+    }
+} {
+    # Electric parameters
+    perm = 1./(T/3.+(1-T))
+    ElectricProjectionParams { tolerance = 1e-7 }
+}
+GfsBox {
+    left = Boundary
+    right = Boundary
+    top   = Boundary {
+	BcDirichlet Phi  1
+	BcDirichlet P 0
+    }
+    bottom = Boundary {
+	BcDirichlet Phi 0.       
+    }
+}
diff --git a/test/poiseuille/bagnold/bagnold.gfs b/test/poiseuille/bagnold/bagnold.gfs
new file mode 100644
index 0000000..c66dba1
--- /dev/null
+++ b/test/poiseuille/bagnold/bagnold.gfs
@@ -0,0 +1,88 @@
+# Title: Bagnold flow of a granular material
+#
+# Description:
+#
+# The flow of a granular material down an inclined plane is simulated
+# using a "$\mu(I)$" rheology. The computed velocity profile is
+# compared with Bagnold's theoretical solution.
+# Figure \ref{convergence} illustrates the norms of the error between
+# the computed and theoretical solutions as functions of spatial
+# resolution.
+#
+# \begin{figure}[htbp]
+# \caption{\label{convergence}Convergence of the error norms as functions
+# of resolution (number of grid points across the channel).}
+# \begin{center}
+# \includegraphics[width=\hsize]{convergence.eps}
+# \end{center}
+# \end{figure}
+#
+# Author: Pierre-Yves Lagr\'ee
+# Command: sh ../poiseuille.sh bagnold.gfs
+# Version: 100416
+# Required files: error.ref
+# Generated files: convergence.eps
+#
+
+# Slope angle
+Define ALPHA 0.43
+# Grain size
+Define D 0.04
+# Bagnold's solution
+Define U0 (sqrt(cos(ALPHA))*(-0.114 + 0.3*tan(ALPHA))/(D*(0.64 - tan(ALPHA))))
+Define UB(x) ((1. - pow(1. - x, 1.5))*2./3.*U0)
+
+1 1 GfsSimulation GfsBox GfsGEdge { y = 0.5 } {
+    Time { iend = 1000 dtmax = 5 }
+
+    # We need to tune the solver
+    AdvectionParams {
+	scheme = none
+	gc = 1 
+    }
+    ApproxProjectionParams { tolerance = 1e-8 }
+    ProjectionParams { tolerance = 1e-8 }
+
+    # mu(I) granular rheology
+    SourceViscosity {} {
+	double In = sqrt(2.)*D*D2/sqrt(fabs(P));
+	double muI = .38 + (.26)*In/(.3 + In);
+	return MAX((muI*P)/(sqrt(2.)*D2), 0.);
+    } { beta = 1 }
+
+    # gravity
+    Source V -cos(ALPHA)
+    Source U  sin(ALPHA)
+
+    Refine LEVEL
+    Init {} {
+	# Start with an arbitrary velocity profile, here twice
+	# Bagnold's solution
+	U = 2.*UB(y)
+	# Start with the hydrostatic pressure profile
+	P = (1. - y)*cos(ALPHA)
+    }
+
+    OutputTime { istep = 10 } stderr
+    OutputProjectionStats { istep = 10 } stderr
+    OutputDiffusionStats { istep = 10 } stderr
+
+    EventStop { istart = 10 istep = 10 } U 5e-6 DU
+    OutputScalarNorm { istep = 10 } du-LEVEL { v = DU }
+
+    OutputSimulation { start = end } end-LEVEL.txt { format = text }
+    OutputErrorNorm { start = end } { awk '{print LEVEL,$5,$7,$9}' } { v = U } { 
+	# Bagnold's solution
+        s = UB(y)
+    }
+}
+GfsBox {
+    top = Boundary {
+        BcNeumann V 0
+        BcDirichlet P 0
+    }
+    bottom = Boundary {
+        BcDirichlet U 0
+    }
+}
+1 1 right
diff --git a/test/poiseuille/bagnold/error.ref b/test/poiseuille/bagnold/error.ref
new file mode 100644
index 0000000..461f041
--- /dev/null
+++ b/test/poiseuille/bagnold/error.ref
@@ -0,0 +1,4 @@
+3 3.635e-02 3.880e-02 5.185e-02
+4 1.157e-02 1.218e-02 1.437e-02
+5 3.291e-03 3.390e-03 5.835e-03
+6 8.704e-04 9.011e-04 2.402e-03
diff --git a/test/poiseuille/error.ref b/test/poiseuille/error.ref
index 94b0a33..e903240 100644
--- a/test/poiseuille/error.ref
+++ b/test/poiseuille/error.ref
@@ -1,4 +1,4 @@
-3 1.953e-03 1.953e-03 1.953e-03
-4 4.883e-04 4.883e-04 4.884e-04
-5 1.223e-04 1.223e-04 1.224e-04
-6 3.084e-05 3.084e-05 3.103e-05
+3 1.953e-03 1.953e-03 1.954e-03
+4 4.884e-04 4.884e-04 4.887e-04
+5 1.222e-04 1.222e-04 1.224e-04
+6 3.106e-05 3.107e-05 3.185e-05
diff --git a/test/poiseuille/poiseuille.gfs b/test/poiseuille/poiseuille.gfs
index 6b42cd3..3539fa1 100644
--- a/test/poiseuille/poiseuille.gfs
+++ b/test/poiseuille/poiseuille.gfs
@@ -5,12 +5,12 @@
 # A simple parabolic Poiseuille flow in a periodic channel with a
 # constant along-channel acceleration $a$. The theoretical solution is given by:
 # $$u(y)={a\over 2\nu}(1/4-y^2)$$
-# Figure \ref{convergence} illustrates the maximum error between the
-# computed and theoretical solutions as a function of spatial
+# Figure \ref{convergence} illustrates the norms of the error between
+# the computed and theoretical solutions as functions of spatial
 # resolution.
 #
 # \begin{figure}[htbp]
-# \caption{\label{convergence}Convergence of the maximum error as a function
+# \caption{\label{convergence}Convergence of the error norms as functions
 # of resolution (number of grid points across the channel).}
 # \begin{center}
 # \includegraphics[width=\hsize]{convergence.eps}
@@ -18,8 +18,8 @@
 # \end{figure}
 #
 # Author: St\'ephane Popinet
-# Command: sh poiseuille.sh
-# Version: 1.2.0
+# Command: sh poiseuille.sh poiseuille.gfs
+# Version: 100416
 # Required files: poiseuille.sh error.ref
 # Generated files: convergence.eps
 #
@@ -28,6 +28,8 @@
     # use backward Euler to avoid Crank-Nicholson oscillations in time
     SourceViscosity 1. { beta = 1 }
     Source U 1
+    # add a transverse source term to also test hydrostatic balance
+    Source V 1
 
     # we need this so that acceleration can be balanced by viscous stress
     # and yes, fixme, this is a mess...
@@ -43,11 +45,9 @@
 GfsBox {
     bottom = Boundary {
         BcDirichlet U 0 
-        BcDirichlet V 0 
     }
     top = Boundary {
         BcDirichlet U 0 
-        BcDirichlet V 0 
     }
 }
 1 1 right
diff --git a/test/poiseuille/poiseuille.sh b/test/poiseuille/poiseuille.sh
index f9d894a..d4872e0 100644
--- a/test/poiseuille/poiseuille.sh
+++ b/test/poiseuille/poiseuille.sh
@@ -1,9 +1,9 @@
 levels="3 4 5 6"
 
-if ! $donotrun; then
+if test x$donotrun != xtrue; then
     rm -f error
     for level in $levels; do
-	if gerris2D -DLEVEL=$level poiseuille.gfs >> error; then :
+	if gerris2D -DLEVEL=$level $1 >> error; then :
 	else
 	    exit 1
 	fi
@@ -11,14 +11,21 @@ if ! $donotrun; then
 fi
 
 if cat <<EOF | gnuplot ; then :
-    set term postscript eps color lw 3 solid 20
+    set term postscript eps color lw 3 solid 20 enhanced
     set output 'convergence.eps'
-    set xlabel 'Number of grid points'
-    set ylabel 'Maximum error'
+    set xlabel 'Spatial resolution'
+    set ylabel 'Error norms'
     set logscale
     set grid
     set xtics 2
-    plot [6:80]'error' u (2**\$1):4 w lp t 'Gerris' pt 5, 1./x**2./5. t 'second order'
+    set key spacing 1.5 bottom left
+    ftitle(a,b) = sprintf("%.3g/x^{%4.2f}", exp(a), -b)
+    f2(x)=a2+b2*x
+    fit [3:]f2(x) 'error' u (log(2**\$1)):(log(\$3)) via a2,b2
+    fm(x)=am+bm*x
+    fit [3:]fm(x) 'error' u (log(2**\$1)):(log(\$4)) via am,bm
+    plot [6:80]'error' u (2**\$1):3 t 'L2' w p ps 2,  exp(f2(log(x))) t ftitle(a2,b2), \
+               'error' u (2**\$1):4 t 'Max' w p ps 2, exp(fm(log(x))) t ftitle(am,bm)
 EOF
 else
     exit 1
diff --git a/test/poisson/circle/circle.gfs b/test/poisson/circle/circle.gfs
index ed98de4..48fb8ed 100644
--- a/test/poisson/circle/circle.gfs
+++ b/test/poisson/circle/circle.gfs
@@ -39,14 +39,17 @@
 #
 # Author: St\'ephane Popinet
 # Command: sh ../poisson.sh circle.gfs
-# Version: 0.8.0
+# Version: 100325
 # Required files: res-7.ref error.ref order.ref
 # Generated files: residual.eps rate.eps error.eps order.eps
 #
 1 0 GfsPoisson GfsBox GfsGEdge {} {
-  Time { iend = 10 }
+  Time { iend = 1 }
   Refine (x*x + y*y <= 0.25*0.25 ? LEVEL + 2 : LEVEL)
-  ApproxProjectionParams { nrelax = 4 tolerance = 1e-30 }
+
+  GModule hypre
+  ApproxProjectionParams { tolerance = 1e-30 nitermin = CYCLE nitermax = CYCLE }
+
   Init {} {
     Div = {
       int k = 3, l = 3;
@@ -54,19 +57,22 @@
     }
   }
   OutputTime { istep = 1 } {
-      awk '{print n++, $8}' > time
+    awk '{if ($2 == 1) print CYCLE, $8;}' >> time
   }
-  OutputProjectionStats { istep = 1 } {
-    awk '{
-      if ($1 == "niter:") printf ("%d ", $2);
-      if ($1 == "residual.infty:") print $3 " " $4;
-    }' > proj
+  OutputProjectionStats { start = end } {
+    awk '{if ($1 == "residual.infty:") print CYCLE, $3, $4;}' >> proj
   }
   OutputErrorNorm { start = end } {
-    awk '{print LEVEL " " $5 " " $7 " " $9}' >> error 
+    awk '{print LEVEL, $5, $7, $9}' >> error 
   } { v = P } {
     s = (sin (M_PI*3.*x)*sin (M_PI*3.*y))
     unbiased = 1
   }
+  OutputSimulation { start = end } end-SOLVER.gfs
+}
+GfsBox {
+   left =   Boundary { BcNeumann P (- 3.*M_PI*cos(M_PI*3.*x)*sin (M_PI*3.*y)) }
+   right =  Boundary { BcNeumann P (  3.*M_PI*cos(M_PI*3.*x)*sin (M_PI*3.*y)) }
+   top =    Boundary { BcNeumann P (  3.*M_PI*cos(M_PI*3.*y)*sin (M_PI*3.*x)) }
+   bottom = Boundary { BcNeumann P (- 3.*M_PI*cos(M_PI*3.*y)*sin (M_PI*3.*x)) }
 }
-GfsBox {}
diff --git a/test/poisson/circle/res-7.ref b/test/poisson/circle/res-7.ref
index 1f679e2..6a4d23b 100644
--- a/test/poisson/circle/res-7.ref
+++ b/test/poisson/circle/res-7.ref
@@ -1,11 +1,11 @@
-0 0.00000000 1.777e+02 0
-1 0.34000000 2.362e+01 7.5
-2 0.64000000 1.191e+00 12
-3 0.93000000 5.505e-02 15
-4 1.23000000 3.880e-03 15
-5 1.53000000 3.184e-04 14
-6 1.82000000 2.607e-05 14
-7 2.11000000 2.106e-06 14
-8 2.41000000 1.694e-07 13
-9 2.71000000 1.368e-08 13
-10 3.01000000 1.110e-09 13
+0 1.41000000 1.777e+02 0	0 1.35000000 1.777e+02 0
+1 2.50000000 3.330e+01 5.33634	1 4.36000000 5.059e+02 0.351255
+2 3.52000000 1.601e+00 20.7995	2 4.73000000 1.315e+02 3.84715
+3 4.51000000 7.704e-02 20.7814	3 5.23000000 3.041e+01 4.32424
+4 5.49000000 4.792e-03 16.0768	4 5.62000000 5.970e+00 5.0938
+5 6.52000000 3.813e-04 12.5675	5 6.00000000 1.119e+00 5.33512
+6 7.56000000 2.988e-05 12.761	6 6.39000000 2.305e-01 4.85466
+7 8.51000000 2.440e-06 12.2459	7 6.84000000 4.819e-02 4.78315
+8 9.59000000 2.055e-07 11.8735	8 7.24000000 1.013e-02 4.75716
+9 10.44000000 1.810e-08 11.3536	9 7.71000000 2.162e-03 4.68548
+10 11.57000000 2.103e-09 8.60675	10 7.99000000 4.680e-04 4.61966
diff --git a/test/poisson/dirichlet/dirichlet.gfs b/test/poisson/dirichlet/dirichlet.gfs
new file mode 100644
index 0000000..075dabc
--- /dev/null
+++ b/test/poisson/dirichlet/dirichlet.gfs
@@ -0,0 +1,95 @@
+# Title: Dirichlet boundary condition
+#
+# Description:
+#
+# Similar to the previous test but with embedded solid boundaries and
+# a non-trivial Dirichlet boundary condition. This test case was
+# proposed by \cite{johansen98}. The boundary of the domain is defined by
+# $$r < 0.30 + 0.15\cos(6\theta)$$
+# The Poisson problem to solve in this domain is
+# $$\nabla^2\Phi=7r^2\cos(3\theta)$$
+# which has the exact solution
+# $$\Phi=r^4\cos(3\theta)$$
+# which is used as boundary condition.
+#
+# \begin{figure}[htbp]
+# \caption{\label{residual}Evolution of the residual.}
+# \begin{center}
+# \includegraphics[width=0.8\hsize]{residual.eps}
+# \end{center}
+# \end{figure}
+#
+# \begin{figure}[htbp]
+# \caption{\label{rate}Average reduction factor.}
+# \begin{center}
+# \includegraphics[width=0.8\hsize]{rate.eps}
+# \end{center}
+# \end{figure}
+#
+# \begin{figure}[htbp]
+# \caption{\label{error}Evolution of the error as a function of resolution.}
+# \begin{center}
+# \includegraphics[width=0.8\hsize]{error.eps}
+# \end{center}
+# \end{figure}
+#
+# \begin{figure}[htbp]
+# \caption{\label{order}Corresponding convergence order.}
+# \begin{center}
+# \includegraphics[width=0.8\hsize]{order.eps}
+# \end{center}
+# \end{figure}
+#
+# Author: St\'ephane Popinet
+# Command: sh ../poisson.sh dirichlet.gfs
+# Version: 100707
+# Required files: res-7.ref error.ref order.ref
+# Generated files: residual.eps rate.eps error.eps order.eps
+#
+1 0 GfsPoisson GfsBox GfsGEdge {} {
+    Time { iend = 1 }
+    Refine LEVEL
+
+    Solid ({
+            double theta = atan2 (y, x);
+            double radius = 0.30 + 0.15*cos (6.*theta);
+            return radius*radius - x*x - y*y;
+    })
+    SurfaceBc P Dirichlet {
+	double theta = atan2 (y, x);
+	double r2 = x*x + y*y;
+	return r2*r2*cos (3.*theta);
+    }
+
+    GModule hypre
+    ApproxProjectionParams { 
+	tolerance = 1e-30 
+	erelax = 2 
+	nitermin = CYCLE nitermax = CYCLE 
+    }
+
+    Init {} {
+	Div = {
+	    double theta = atan2 (y, x);
+	    double r2 = x*x + y*y;
+	    return 7.*r2*cos (3.*theta);
+	}
+    }
+    OutputTime { istep = 1 } {
+	awk '{if ($2 == 1) print CYCLE, $8;}' >> time
+    }
+    OutputProjectionStats { start = end } {
+	awk '{if ($1 == "residual.infty:") print CYCLE, $3, $4;}' >> proj
+    }
+    OutputErrorNorm { start = end } {
+	awk '{print LEVEL, $5, $7, $9}' >> error 
+    } { v = P } {
+	s = {
+	    double theta = atan2 (y, x);
+	    double r2 = x*x + y*y;
+	    return r2*r2*cos (3.*theta);
+	}
+    }
+    OutputSimulation { start = end } end-SOLVER.gfs
+}
+GfsBox {}
diff --git a/test/poisson/dirichlet/error.ref b/test/poisson/dirichlet/error.ref
new file mode 100644
index 0000000..c5678d7
--- /dev/null
+++ b/test/poisson/dirichlet/error.ref
@@ -0,0 +1,6 @@
+3 8.249e-04 1.222e-03 3.324e-03
+4 3.879e-04 7.277e-04 2.514e-03
+5 2.206e-04 4.080e-04 1.780e-03
+6 1.105e-04 2.087e-04 1.439e-03
+7 5.164e-05 1.001e-04 6.567e-04
+8 2.537e-05 5.079e-05 3.906e-04
diff --git a/test/poisson/dirichlet/order.ref b/test/poisson/dirichlet/order.ref
new file mode 100644
index 0000000..b008685
--- /dev/null
+++ b/test/poisson/dirichlet/order.ref
@@ -0,0 +1,5 @@
+4 1.08853 0.747829 0.402936
+5 0.814252 0.834775 0.498107
+6 0.997386 0.967139 0.306811
+7 1.09749 1.05999 1.13176
+8 1.02537 0.978826 0.749543
diff --git a/test/poisson/dirichlet/res-7.ref b/test/poisson/dirichlet/res-7.ref
new file mode 100644
index 0000000..88ae90e
--- /dev/null
+++ b/test/poisson/dirichlet/res-7.ref
@@ -0,0 +1,11 @@
+0 0.34000000 4.997e+03 0	0 0.32000000 4.997e+03 0
+1 0.52000000 1.104e+03 4.52627	1 0.58000000 1.069e+02 46.7446
+2 0.66000000 2.302e+02 4.79583	2 0.59000000 1.017e+01 10.5113
+3 0.81000000 7.197e+01 3.19855	3 0.60000000 1.432e+00 7.10196
+4 0.98000000 2.182e+01 3.29835	4 0.64000000 1.985e-01 7.21411
+5 1.10000000 6.436e+00 3.3903	5 0.65000000 2.734e-02 7.26042
+6 1.28000000 1.887e+00 3.4107	6 0.66000000 3.753e-03 7.28484
+7 1.43000000 5.497e-01 3.43278	7 0.70000000 5.146e-04 7.29304
+8 1.59000000 1.597e-01 3.44208	8 0.71000000 7.055e-05 7.29412
+9 1.73000000 4.637e-02 3.44404	9 0.74000000 9.671e-06 7.29501
+10 1.88000000 1.346e-02 3.44502	10 0.76000000 1.326e-06 7.29336
diff --git a/test/poisson/error.ref b/test/poisson/error.ref
index 84d535e..62c00a4 100644
--- a/test/poisson/error.ref
+++ b/test/poisson/error.ref
@@ -1,6 +1,6 @@
-3 5.097e-02 6.208e-02 1.194e-01
-4 1.196e-02 1.471e-02 2.914e-02
-5 2.945e-03 3.630e-03 7.243e-03
-6 7.334e-04 9.046e-04 1.808e-03
-7 1.832e-04 2.260e-04 4.518e-04
-8 4.578e-05 5.648e-05 1.130e-04
+3 5.669e-02 7.328e-02 1.353e-01
+4 1.426e-02 1.769e-02 3.887e-02
+5 3.496e-03 4.392e-03 1.048e-02
+6 8.689e-04 1.096e-03 2.684e-03
+7 2.173e-04 2.740e-04 6.757e-04
+8 5.430e-05 6.849e-05 1.693e-04
diff --git a/test/poisson/order.ref b/test/poisson/order.ref
index c1b1aea..ee8ddc7 100644
--- a/test/poisson/order.ref
+++ b/test/poisson/order.ref
@@ -1,5 +1,5 @@
-4 2.09143 2.07733 2.03473
-5 2.02188 2.01876 2.00834
-6 2.0056 2.00462 2.00219
-7 2.00118 2.00096 2.00064
-8 2.00063 2.00051 1.99936
+4 1.99112 2.05049 1.79943
+5 2.0282 2.00998 1.89102
+6 2.00844 2.00263 1.96518
+7 1.9995 2 1.98993
+8 2.00066 2.00021 1.9968
diff --git a/test/poisson/poisson.gfs b/test/poisson/poisson.gfs
index 9766f98..74c657a 100644
--- a/test/poisson/poisson.gfs
+++ b/test/poisson/poisson.gfs
@@ -4,12 +4,13 @@
 #
 # This is one of the test cases presented in Popinet
 # \cite{popinet2003}.  We solve the Poisson equation in a square
-# domain with Neumann boundary conditions on all sides and the
+# domain with Dirichlet boundary conditions on all sides and the
 # right-hand-side:
 # $$
 # \nabla\cdot{\bf U}^{\star\star}(x,y) = -\pi^2(k^2+l^2)\sin(\pi kx)\sin(\pi ly)
 # $$
-# with $k = l = 3$. The exact solution of the Poisson equation with this source term is
+# with $k = l = 3$. The exact solution of the Poisson equation 
+# with this source term is
 # $$
 # \phi(x,y)=\sin(\pi kx)\sin(\pi ly).
 # $$
@@ -20,6 +21,10 @@
 # function of resolution is illustrated on Figure \ref{error}. The
 # corresponding order of convergence is given on Figure \ref{order}.
 #
+# The curves labeled "Hypre" were obtained using the
+# \url{http://gfs.sourceforge.net/wiki/index.php/Object_hierarchy#Hypre}{hypre}
+# module solver rather than Gerris' built-in multilevel solver.
+#
 # \begin{figure}[htbp]
 # \caption{\label{residual}Evolution of the residual.}
 # \begin{center}
@@ -50,14 +55,17 @@
 #
 # Author: St\'ephane Popinet
 # Command: sh poisson.sh poisson.gfs
-# Version: 0.8.0
-# Required files: poisson.sh res-7.ref error.ref order.ref
+# Version: 100325
+# Required files: poisson.sh res-7.ref  error.ref order.ref
 # Generated files: residual.eps rate.eps error.eps order.eps
 #
 1 0 GfsPoisson GfsBox GfsGEdge {} {
-  Time { iend = 10 }
+  Time { iend = 1 }
   Refine LEVEL
-  ApproxProjectionParams { nrelax = 4 tolerance = 1e-30 }
+
+  GModule hypre
+  ApproxProjectionParams { tolerance = 1e-30 nitermin = CYCLE nitermax = CYCLE }
+
   Init {} {
     Div = {
       int k = 3, l = 3;
@@ -65,19 +73,22 @@
     }
   }
   OutputTime { istep = 1 } {
-    awk '{print n++, $8}' > time
+    awk '{if ($2 == 1) print CYCLE, $8;}' >> time
   }
-  OutputProjectionStats { istep = 1 } {
-    awk '{
-      if ($1 == "niter:") printf ("%d ", $2);
-      if ($1 == "residual.infty:") print $3 " " $4;
-    }' > proj
+  OutputProjectionStats { start = end } {
+    awk '{if ($1 == "residual.infty:") print CYCLE, $3, $4;}' >> proj
   }
   OutputErrorNorm { start = end } {
-    awk '{print LEVEL " " $5 " " $7 " " $9}' >> error 
+    awk '{print LEVEL, $5, $7, $9}' >> error 
   } { v = P } {
     s = (sin (M_PI*3.*x)*sin (M_PI*3.*y))
     unbiased = 1
   }
+  OutputSimulation { start = end } end-SOLVER.gfs
+}
+GfsBox {
+  left =   Boundary { BcDirichlet P (sin (M_PI*3.*x)*sin (M_PI*3.*y)) }
+  right =  Boundary { BcDirichlet P (sin (M_PI*3.*x)*sin (M_PI*3.*y)) }
+  top =    Boundary { BcDirichlet P (sin (M_PI*3.*x)*sin (M_PI*3.*y)) }
+  bottom = Boundary { BcDirichlet P (sin (M_PI*3.*x)*sin (M_PI*3.*y)) }
 }
-GfsBox {}
diff --git a/test/poisson/poisson.sh b/test/poisson/poisson.sh
index e33c74f..280f5a7 100644
--- a/test/poisson/poisson.sh
+++ b/test/poisson/poisson.sh
@@ -1,38 +1,66 @@
-if ! $donotrun; then
+if test x$donotrun != xtrue; then
     rm -f error
-    for level in 3 4 5 6 7 8; do
-	if ( sed "s/LEVEL/$level/g" < $1 | gerris2D - ) && join time proj > res-$level; then :
+
+    for solver in gerris hypre; do
+	rm -f time proj
+
+	if test x$solver = xhypre; then
+	    gmodule=GModule
+	else
+	    gmodule="# GModule"
+	fi
+   
+	for cycle in 0 1 2 3 4 5 6 7 8 9 10 ; do
+	    if ( sed "s/GModule/$gmodule/" < $1 | \
+                 gerris2D -DLEVEL=8 -DCYCLE=$cycle -DSOLVER=$solver - ) ; then :
+	    else
+		exit 1
+	    fi     
+	done
+	join time proj | awk '{
+          if (NR == 1) {print $0; old = $3} 
+          else {print $1,$2,$3,old/$3; old=$3}}' > res-7
+	rm -f error order proj time runtime status
+	for level in 3 4 5 6 7 8; do
+	    if ( sed "s/GModule/$gmodule/" < $1 | \
+		 gerris2D -DLEVEL=$level -DCYCLE=10 -DSOLVER=$solver - ) ; then :
+	    else
+		exit 1
+	    fi
+	done
+	
+	if awk 'BEGIN { n = 0 }
+                {
+		    l[n] = $1; n1[n] = $2; n2[n] = $3; ni[n++] = $4;
+		}
+                END {
+		    for (i = 1; i < n; i++)
+			print l[i] " " log(n1[i-1]/n1[i])/log(2.) " " log(n2[i-1]/n2[i])/log(2.) " " log(ni[i-1]/ni[i])/log(2.);
+		}' < error > order-$solver; then :
 	else
 	    exit 1
 	fi
+	mv res-7 res-7-$solver
+	mv error error-$solver
     done
 fi
 
-if awk '
-BEGIN { n = 0 }
-{
-  l[n] = $1; n1[n] = $2; n2[n] = $3; ni[n++] = $4;
-}
-END {
-  for (i = 1; i < n; i++)
-    print l[i] " " log(n1[i-1]/n1[i])/log(2.) " " log(n2[i-1]/n2[i])/log(2.) " " log(ni[i-1]/ni[i])/log(2.);
-}' < error > order; then :
-else
-    exit 1
-fi
-
 if cat <<EOF | gnuplot ; then :
     set term postscript eps color lw 3 solid 20
     set output 'residual.eps'
     set xlabel 'CPU time'
     set ylabel 'Maximum residual'
     set logscale y
-    plot 'res-7.ref' u 2:3 t 'ref' w lp, 'res-7' u 2:3 t '' w lp
+    plot 'res-7.ref' u 2:3 t 'Ref' w lp, \
+	'res-7-gerris' u 2:3 t 'Gerris' w lp, \
+	'res-7-hypre' u 2:3 t 'Hypre' w lp
     set output 'rate.eps'
     set xlabel 'V-cycle'
     set ylabel 'Cumulative residual reduction factor'
     unset logscale
-    plot 'res-7.ref' u 1:4 t 'ref' w lp, 'res-7' u 1:4 t '' w lp
+    plot 'res-7.ref' u 1:4 t 'Ref' w lp, \
+	'res-7-gerris' u 1:4 t 'Gerris' w lp, \
+	'res-7-hypre' u 1:4 t 'Hypre' w lp
     set output 'error.eps'
     set xlabel 'Level'
     set ylabel 'Error norms'
@@ -41,13 +69,16 @@ if cat <<EOF | gnuplot ; then :
     plot 'error.ref' u 1:2 t '1 (ref)' w lp, \
          'error.ref' u 1:3 t '2 (ref)' w lp, \
          'error.ref' u 1:4 t 'max (ref)' w lp, \
-         'error' u 1:2 t '1' w lp, \
-         'error' u 1:3 t '2' w lp, \
-         'error' u 1:4 t 'max' w lp
+         'error-gerris' u 1:2 t '1 Gerris' w lp, \
+         'error-gerris' u 1:3 t '2 Gerris' w lp, \
+         'error-gerris' u 1:4 t 'max Gerris' w lp, \
+         'error-hypre' u 1:2 t '1 Hypre' w lp, \
+         'error-hypre' u 1:3 t '2 Hypre' w lp, \
+         'error-hypre' u 1:4 t 'max Hypre' w lp
     set output 'order.eps'
     set xlabel 'Level'
     set ylabel 'Order'
-    set key
+    set key bottom
     unset logscale
     set xtics 0,1
     set ytics 0,1
@@ -55,9 +86,12 @@ if cat <<EOF | gnuplot ; then :
     plot [][0:3] 'order.ref' u 1:2 t '1 (ref)' w lp, \
                  'order.ref' u 1:3 t '2 (ref)' w lp, \
                  'order.ref' u 1:4 t 'max (ref)' w lp, \
-                 'order' u 1:2 t '1' w lp, \
-                 'order' u 1:3 t '2' w lp, \
-                 'order' u 1:4 t 'max' w lp
+                 'order-gerris' u 1:2 t '1 Gerris' w lp, \
+                 'order-gerris' u 1:3 t '2 Gerris' w lp, \
+                 'order-gerris' u 1:4 t 'max Gerris' w lp, \
+                 'order-hypre' u 1:2 t '1 Hypre' w lp, \
+                 'order-hypre' u 1:3 t '2 Hypre' w lp, \
+                 'order-hypre' u 1:4 t 'max Hypre' w lp
 EOF
 else
     exit 1
@@ -66,11 +100,15 @@ fi
 if cat <<EOF | python ; then :
 from check import *
 from sys import *
-c = Curve()
-for p in Curve('res-7.ref',2,3).l:
-    c.l.append((p[0]+0.1, p[1]))
-if (Curve('res-7',2,3) - c).max() > 1e-8 or\
-   (Curve('error',1,4) - Curve('error.ref',1,4)).max() > 1e-6:
+if (Curve('res-7-gerris',1,3) - Curve('res-7.ref',1,3)).max() > 1e-8 or\
+   (Curve('error-gerris',1,4) - Curve('error.ref',1,4)).max() > 1e-6:
+    print (Curve('res-7-gerris',1,3) - Curve('res-7.ref',1,3)).max()
+    print (Curve('error-gerris',1,4) - Curve('error.ref',1,4)).max()
+    exit(1)
+if (Curve('res-7-hypre',1,3) - Curve('res-7.ref',1,7)).max() > 1e-8 or\
+   (Curve('error-hypre',1,4) - Curve('error.ref',1,4)).max() > 1e-6:
+    print (Curve('res-7-hypre',1,3) - Curve('res-7.ref',1,7)).max()
+    print (Curve('error-hypre',1,4) - Curve('error.ref',1,4)).max()
     exit(1)
 EOF
 else
diff --git a/test/poisson/res-7.ref b/test/poisson/res-7.ref
index 1e1e821..60e5d96 100644
--- a/test/poisson/res-7.ref
+++ b/test/poisson/res-7.ref
@@ -1,11 +1,11 @@
-0 0 1.776e+02 0
-1 0.08 5.934e+00 30
-2 0.14 2.353e-01 27
-3 0.2 1.285e-02 24
-4 0.26 9.224e-04 21
-5 0.32 6.235e-05 20
-6 0.38 4.108e-06 19
-7 0.44 2.652e-07 18
-8 0.5 1.677e-08 18
-9 0.56 1.041e-09 18
-10 0.62 6.753e-11 17
+0 0.33000000 2.623e+05 0	0 0.31000000 2.623e+05 0
+1 0.57000000 2.496e+04 10.5088	1 1.07000000 8.222e+01 3190.22
+2 0.77000000 3.041e+03 8.20783	2 1.13000000 7.674e-01 107.141
+3 0.97000000 1.731e+02 17.5679	3 1.21000000 8.455e-03 90.7629
+4 1.18000000 5.590e+00 30.966	4 1.26000000 1.007e-04 83.9623
+5 1.36000000 3.792e-01 14.7416	5 1.37000000 1.250e-06 80.56
+6 1.55000000 3.411e-02 11.117	6 1.43000000 1.585e-08 78.8644
+7 1.77000000 2.862e-03 11.9182	7 1.50000000 2.019e-10 78.5042
+8 1.97000000 2.124e-04 13.4746	8 1.60000000 7.785e-11 2.59345
+9 2.16000000 1.469e-05 14.4588	9 1.68000000 7.790e-11 0.999358
+10 2.40000000 9.698e-07 15.1475	10 1.75000000 7.785e-11 1.00064
diff --git a/test/reynolds/div5.ref b/test/reynolds/div5.ref
index 346d624..6487e3a 100644
--- a/test/reynolds/div5.ref
+++ b/test/reynolds/div5.ref
@@ -1,81 +1,81 @@
-Divergence time: 0 first:  1.010e-15 second:  1.281e-15 infty:  3.997e-15
-Divergence time: 0.025 first:  3.063e-02 second:  3.764e-02 infty:  9.014e-02
-Divergence time: 0.05 first:  3.217e-02 second:  3.989e-02 infty:  9.940e-02
-Divergence time: 0.075 first:  3.235e-02 second:  4.053e-02 infty:  1.049e-01
-Divergence time: 0.1 first:  3.254e-02 second:  4.140e-02 infty:  1.084e-01
-Divergence time: 0.125 first:  3.292e-02 second:  4.186e-02 infty:  1.102e-01
-Divergence time: 0.15 first:  3.276e-02 second:  4.197e-02 infty:  1.118e-01
-Divergence time: 0.175 first:  3.239e-02 second:  4.182e-02 infty:  1.141e-01
-Divergence time: 0.2 first:  3.289e-02 second:  4.238e-02 infty:  1.140e-01
-Divergence time: 0.225 first:  3.267e-02 second:  4.209e-02 infty:  1.148e-01
-Divergence time: 0.25 first:  3.293e-02 second:  4.238e-02 infty:  1.152e-01
-Divergence time: 0.275 first:  3.297e-02 second:  4.226e-02 infty:  1.156e-01
-Divergence time: 0.3 first:  3.252e-02 second:  4.193e-02 infty:  1.155e-01
-Divergence time: 0.325 first:  3.277e-02 second:  4.203e-02 infty:  1.154e-01
-Divergence time: 0.35 first:  3.299e-02 second:  4.210e-02 infty:  1.153e-01
-Divergence time: 0.375 first:  3.288e-02 second:  4.207e-02 infty:  1.148e-01
-Divergence time: 0.4 first:  3.270e-02 second:  4.206e-02 infty:  1.152e-01
-Divergence time: 0.425 first:  3.266e-02 second:  4.196e-02 infty:  1.158e-01
-Divergence time: 0.45 first:  3.263e-02 second:  4.190e-02 infty:  1.167e-01
-Divergence time: 0.475 first:  3.257e-02 second:  4.179e-02 infty:  1.165e-01
-Divergence time: 0.5 first:  3.257e-02 second:  4.172e-02 infty:  1.164e-01
-Divergence time: 0.525 first:  3.271e-02 second:  4.179e-02 infty:  1.164e-01
-Divergence time: 0.55 first:  3.271e-02 second:  4.180e-02 infty:  1.159e-01
-Divergence time: 0.575 first:  3.276e-02 second:  4.180e-02 infty:  1.148e-01
-Divergence time: 0.6 first:  3.281e-02 second:  4.180e-02 infty:  1.138e-01
-Divergence time: 0.625 first:  3.291e-02 second:  4.185e-02 infty:  1.147e-01
-Divergence time: 0.65 first:  3.290e-02 second:  4.186e-02 infty:  1.152e-01
-Divergence time: 0.675 first:  3.287e-02 second:  4.182e-02 infty:  1.159e-01
-Divergence time: 0.7 first:  3.285e-02 second:  4.178e-02 infty:  1.165e-01
-Divergence time: 0.725 first:  3.282e-02 second:  4.175e-02 infty:  1.169e-01
+Divergence time: 0 first:  1.060e-15 second:  1.375e-15 infty:  3.775e-15
+Divergence time: 0.025 first:  3.063e-02 second:  3.762e-02 infty:  9.014e-02
+Divergence time: 0.05 first:  3.220e-02 second:  3.987e-02 infty:  9.939e-02
+Divergence time: 0.075 first:  3.236e-02 second:  4.057e-02 infty:  1.046e-01
+Divergence time: 0.1 first:  3.253e-02 second:  4.138e-02 infty:  1.083e-01
+Divergence time: 0.125 first:  3.291e-02 second:  4.184e-02 infty:  1.111e-01
+Divergence time: 0.15 first:  3.275e-02 second:  4.196e-02 infty:  1.123e-01
+Divergence time: 0.175 first:  3.241e-02 second:  4.181e-02 infty:  1.138e-01
+Divergence time: 0.2 first:  3.289e-02 second:  4.237e-02 infty:  1.138e-01
+Divergence time: 0.225 first:  3.273e-02 second:  4.211e-02 infty:  1.142e-01
+Divergence time: 0.25 first:  3.282e-02 second:  4.229e-02 infty:  1.157e-01
+Divergence time: 0.275 first:  3.292e-02 second:  4.224e-02 infty:  1.156e-01
+Divergence time: 0.3 first:  3.269e-02 second:  4.210e-02 infty:  1.158e-01
+Divergence time: 0.325 first:  3.296e-02 second:  4.215e-02 infty:  1.154e-01
+Divergence time: 0.35 first:  3.283e-02 second:  4.197e-02 infty:  1.154e-01
+Divergence time: 0.375 first:  3.268e-02 second:  4.203e-02 infty:  1.149e-01
+Divergence time: 0.4 first:  3.271e-02 second:  4.208e-02 infty:  1.151e-01
+Divergence time: 0.425 first:  3.267e-02 second:  4.197e-02 infty:  1.157e-01
+Divergence time: 0.45 first:  3.263e-02 second:  4.188e-02 infty:  1.165e-01
+Divergence time: 0.475 first:  3.257e-02 second:  4.180e-02 infty:  1.171e-01
+Divergence time: 0.5 first:  3.257e-02 second:  4.173e-02 infty:  1.166e-01
+Divergence time: 0.525 first:  3.270e-02 second:  4.179e-02 infty:  1.165e-01
+Divergence time: 0.55 first:  3.277e-02 second:  4.184e-02 infty:  1.159e-01
+Divergence time: 0.575 first:  3.283e-02 second:  4.186e-02 infty:  1.147e-01
+Divergence time: 0.6 first:  3.288e-02 second:  4.186e-02 infty:  1.137e-01
+Divergence time: 0.625 first:  3.292e-02 second:  4.187e-02 infty:  1.145e-01
+Divergence time: 0.65 first:  3.290e-02 second:  4.185e-02 infty:  1.151e-01
+Divergence time: 0.675 first:  3.287e-02 second:  4.181e-02 infty:  1.159e-01
+Divergence time: 0.7 first:  3.284e-02 second:  4.177e-02 infty:  1.165e-01
+Divergence time: 0.725 first:  3.282e-02 second:  4.174e-02 infty:  1.169e-01
 Divergence time: 0.75 first:  3.280e-02 second:  4.172e-02 infty:  1.171e-01
-Divergence time: 0.775 first:  3.279e-02 second:  4.170e-02 infty:  1.172e-01
-Divergence time: 0.8 first:  3.285e-02 second:  4.172e-02 infty:  1.174e-01
-Divergence time: 0.825 first:  3.298e-02 second:  4.181e-02 infty:  1.175e-01
-Divergence time: 0.85 first:  3.308e-02 second:  4.189e-02 infty:  1.176e-01
-Divergence time: 0.875 first:  3.309e-02 second:  4.188e-02 infty:  1.175e-01
-Divergence time: 0.9 first:  3.315e-02 second:  4.189e-02 infty:  1.174e-01
-Divergence time: 0.925 first:  3.321e-02 second:  4.192e-02 infty:  1.173e-01
-Divergence time: 0.95 first:  3.321e-02 second:  4.191e-02 infty:  1.172e-01
-Divergence time: 0.975 first:  3.328e-02 second:  4.192e-02 infty:  1.170e-01
-Divergence time: 1 first:  3.338e-02 second:  4.201e-02 infty:  1.168e-01
-Divergence time: 1.025 first:  3.342e-02 second:  4.206e-02 infty:  1.169e-01
-Divergence time: 1.05 first:  3.349e-02 second:  4.214e-02 infty:  1.168e-01
-Divergence time: 1.075 first:  3.348e-02 second:  4.211e-02 infty:  1.168e-01
-Divergence time: 1.1 first:  3.346e-02 second:  4.204e-02 infty:  1.167e-01
-Divergence time: 1.125 first:  3.345e-02 second:  4.197e-02 infty:  1.167e-01
-Divergence time: 1.15 first:  3.349e-02 second:  4.197e-02 infty:  1.166e-01
-Divergence time: 1.175 first:  3.349e-02 second:  4.198e-02 infty:  1.167e-01
-Divergence time: 1.2 first:  3.356e-02 second:  4.204e-02 infty:  1.167e-01
-Divergence time: 1.225 first:  3.363e-02 second:  4.210e-02 infty:  1.168e-01
-Divergence time: 1.25 first:  3.366e-02 second:  4.209e-02 infty:  1.169e-01
-Divergence time: 1.275 first:  3.369e-02 second:  4.201e-02 infty:  1.171e-01
-Divergence time: 1.3 first:  3.370e-02 second:  4.192e-02 infty:  1.173e-01
-Divergence time: 1.325 first:  3.366e-02 second:  4.184e-02 infty:  1.174e-01
-Divergence time: 1.35 first:  3.361e-02 second:  4.180e-02 infty:  1.175e-01
-Divergence time: 1.375 first:  3.357e-02 second:  4.179e-02 infty:  1.176e-01
-Divergence time: 1.4 first:  3.354e-02 second:  4.175e-02 infty:  1.177e-01
-Divergence time: 1.425 first:  3.350e-02 second:  4.173e-02 infty:  1.179e-01
-Divergence time: 1.45 first:  3.340e-02 second:  4.161e-02 infty:  1.180e-01
-Divergence time: 1.475 first:  3.337e-02 second:  4.156e-02 infty:  1.181e-01
-Divergence time: 1.5 first:  3.334e-02 second:  4.153e-02 infty:  1.181e-01
-Divergence time: 1.525 first:  3.315e-02 second:  4.134e-02 infty:  1.181e-01
-Divergence time: 1.55 first:  3.310e-02 second:  4.134e-02 infty:  1.180e-01
-Divergence time: 1.575 first:  3.308e-02 second:  4.135e-02 infty:  1.180e-01
-Divergence time: 1.6 first:  3.277e-02 second:  4.104e-02 infty:  1.178e-01
-Divergence time: 1.625 first:  3.271e-02 second:  4.105e-02 infty:  1.176e-01
-Divergence time: 1.65 first:  3.265e-02 second:  4.103e-02 infty:  1.175e-01
-Divergence time: 1.675 first:  3.265e-02 second:  4.104e-02 infty:  1.172e-01
-Divergence time: 1.7 first:  3.249e-02 second:  4.092e-02 infty:  1.170e-01
-Divergence time: 1.725 first:  3.242e-02 second:  4.089e-02 infty:  1.170e-01
-Divergence time: 1.75 first:  3.236e-02 second:  4.085e-02 infty:  1.180e-01
-Divergence time: 1.775 first:  3.228e-02 second:  4.079e-02 infty:  1.185e-01
-Divergence time: 1.8 first:  3.220e-02 second:  4.071e-02 infty:  1.184e-01
-Divergence time: 1.825 first:  3.218e-02 second:  4.071e-02 infty:  1.182e-01
-Divergence time: 1.85 first:  3.211e-02 second:  4.065e-02 infty:  1.180e-01
-Divergence time: 1.875 first:  3.210e-02 second:  4.064e-02 infty:  1.179e-01
-Divergence time: 1.9 first:  3.202e-02 second:  4.063e-02 infty:  1.181e-01
-Divergence time: 1.925 first:  3.200e-02 second:  4.060e-02 infty:  1.179e-01
-Divergence time: 1.95 first:  3.188e-02 second:  4.053e-02 infty:  1.216e-01
-Divergence time: 1.975 first:  3.180e-02 second:  4.049e-02 infty:  1.241e-01
-Divergence time: 2 first:  3.170e-02 second:  4.034e-02 infty:  1.253e-01
+Divergence time: 0.775 first:  3.279e-02 second:  4.170e-02 infty:  1.173e-01
+Divergence time: 0.8 first:  3.278e-02 second:  4.168e-02 infty:  1.173e-01
+Divergence time: 0.825 first:  3.298e-02 second:  4.179e-02 infty:  1.174e-01
+Divergence time: 0.85 first:  3.307e-02 second:  4.189e-02 infty:  1.175e-01
+Divergence time: 0.875 first:  3.317e-02 second:  4.193e-02 infty:  1.175e-01
+Divergence time: 0.9 first:  3.324e-02 second:  4.196e-02 infty:  1.174e-01
+Divergence time: 0.925 first:  3.323e-02 second:  4.194e-02 infty:  1.173e-01
+Divergence time: 0.95 first:  3.335e-02 second:  4.199e-02 infty:  1.172e-01
+Divergence time: 0.975 first:  3.334e-02 second:  4.200e-02 infty:  1.170e-01
+Divergence time: 1 first:  3.335e-02 second:  4.197e-02 infty:  1.169e-01
+Divergence time: 1.025 first:  3.337e-02 second:  4.198e-02 infty:  1.168e-01
+Divergence time: 1.05 first:  3.344e-02 second:  4.206e-02 infty:  1.167e-01
+Divergence time: 1.075 first:  3.343e-02 second:  4.205e-02 infty:  1.167e-01
+Divergence time: 1.1 first:  3.345e-02 second:  4.205e-02 infty:  1.166e-01
+Divergence time: 1.125 first:  3.344e-02 second:  4.200e-02 infty:  1.166e-01
+Divergence time: 1.15 first:  3.352e-02 second:  4.204e-02 infty:  1.166e-01
+Divergence time: 1.175 first:  3.356e-02 second:  4.207e-02 infty:  1.166e-01
+Divergence time: 1.2 first:  3.359e-02 second:  4.207e-02 infty:  1.167e-01
+Divergence time: 1.225 first:  3.360e-02 second:  4.206e-02 infty:  1.169e-01
+Divergence time: 1.25 first:  3.364e-02 second:  4.209e-02 infty:  1.170e-01
+Divergence time: 1.275 first:  3.368e-02 second:  4.204e-02 infty:  1.172e-01
+Divergence time: 1.3 first:  3.373e-02 second:  4.199e-02 infty:  1.173e-01
+Divergence time: 1.325 first:  3.372e-02 second:  4.193e-02 infty:  1.175e-01
+Divergence time: 1.35 first:  3.370e-02 second:  4.186e-02 infty:  1.176e-01
+Divergence time: 1.375 first:  3.369e-02 second:  4.187e-02 infty:  1.178e-01
+Divergence time: 1.4 first:  3.367e-02 second:  4.184e-02 infty:  1.179e-01
+Divergence time: 1.425 first:  3.364e-02 second:  4.178e-02 infty:  1.180e-01
+Divergence time: 1.45 first:  3.361e-02 second:  4.173e-02 infty:  1.180e-01
+Divergence time: 1.475 first:  3.357e-02 second:  4.171e-02 infty:  1.181e-01
+Divergence time: 1.5 first:  3.355e-02 second:  4.168e-02 infty:  1.181e-01
+Divergence time: 1.525 first:  3.352e-02 second:  4.165e-02 infty:  1.180e-01
+Divergence time: 1.55 first:  3.337e-02 second:  4.147e-02 infty:  1.181e-01
+Divergence time: 1.575 first:  3.337e-02 second:  4.148e-02 infty:  1.180e-01
+Divergence time: 1.6 first:  3.328e-02 second:  4.143e-02 infty:  1.179e-01
+Divergence time: 1.625 first:  3.325e-02 second:  4.145e-02 infty:  1.178e-01
+Divergence time: 1.65 first:  3.311e-02 second:  4.132e-02 infty:  1.176e-01
+Divergence time: 1.675 first:  3.307e-02 second:  4.129e-02 infty:  1.175e-01
+Divergence time: 1.7 first:  3.304e-02 second:  4.128e-02 infty:  1.173e-01
+Divergence time: 1.725 first:  3.297e-02 second:  4.126e-02 infty:  1.170e-01
+Divergence time: 1.75 first:  3.293e-02 second:  4.129e-02 infty:  1.168e-01
+Divergence time: 1.775 first:  3.290e-02 second:  4.126e-02 infty:  1.166e-01
+Divergence time: 1.8 first:  3.278e-02 second:  4.114e-02 infty:  1.165e-01
+Divergence time: 1.825 first:  3.281e-02 second:  4.117e-02 infty:  1.165e-01
+Divergence time: 1.85 first:  3.267e-02 second:  4.106e-02 infty:  1.165e-01
+Divergence time: 1.875 first:  3.266e-02 second:  4.110e-02 infty:  1.172e-01
+Divergence time: 1.9 first:  3.257e-02 second:  4.105e-02 infty:  1.174e-01
+Divergence time: 1.925 first:  3.248e-02 second:  4.097e-02 infty:  1.173e-01
+Divergence time: 1.95 first:  3.242e-02 second:  4.092e-02 infty:  1.172e-01
+Divergence time: 1.975 first:  3.251e-02 second:  4.101e-02 infty:  1.170e-01
+Divergence time: 2 first:  3.241e-02 second:  4.098e-02 infty:  1.169e-01
diff --git a/test/reynolds/div6.ref b/test/reynolds/div6.ref
index 4f1087a..8767e1e 100644
--- a/test/reynolds/div6.ref
+++ b/test/reynolds/div6.ref
@@ -1,161 +1,161 @@
-Divergence time: 0 first:  1.728e-15 second:  2.338e-15 infty:  8.882e-15
-Divergence time: 0.0125 first:  4.108e-03 second:  5.293e-03 infty:  3.301e-02
-Divergence time: 0.025 first:  4.450e-03 second:  5.800e-03 infty:  3.637e-02
-Divergence time: 0.0375 first:  4.500e-03 second:  5.944e-03 infty:  3.539e-02
-Divergence time: 0.05 first:  4.504e-03 second:  6.112e-03 infty:  4.205e-02
-Divergence time: 0.0625 first:  4.635e-03 second:  6.241e-03 infty:  3.425e-02
-Divergence time: 0.075 first:  4.744e-03 second:  6.439e-03 infty:  3.105e-02
-Divergence time: 0.0875 first:  4.843e-03 second:  6.574e-03 infty:  4.007e-02
-Divergence time: 0.1 first:  4.875e-03 second:  6.714e-03 infty:  4.334e-02
-Divergence time: 0.1125 first:  4.858e-03 second:  6.779e-03 infty:  4.493e-02
-Divergence time: 0.125 first:  4.928e-03 second:  6.853e-03 infty:  3.663e-02
-Divergence time: 0.1375 first:  4.989e-03 second:  6.989e-03 infty:  4.175e-02
-Divergence time: 0.15 first:  4.984e-03 second:  7.061e-03 infty:  4.321e-02
-Divergence time: 0.1625 first:  5.015e-03 second:  7.116e-03 infty:  4.220e-02
-Divergence time: 0.175 first:  5.016e-03 second:  7.044e-03 infty:  4.208e-02
-Divergence time: 0.1875 first:  4.945e-03 second:  6.878e-03 infty:  4.207e-02
-Divergence time: 0.2 first:  5.009e-03 second:  7.019e-03 infty:  4.250e-02
-Divergence time: 0.2125 first:  5.022e-03 second:  7.010e-03 infty:  4.085e-02
-Divergence time: 0.225 first:  4.966e-03 second:  6.907e-03 infty:  4.188e-02
-Divergence time: 0.2375 first:  5.006e-03 second:  7.072e-03 infty:  4.216e-02
-Divergence time: 0.25 first:  4.958e-03 second:  6.939e-03 infty:  4.029e-02
-Divergence time: 0.2625 first:  4.953e-03 second:  6.969e-03 infty:  4.169e-02
-Divergence time: 0.275 first:  4.977e-03 second:  6.992e-03 infty:  3.786e-02
-Divergence time: 0.2875 first:  4.945e-03 second:  6.969e-03 infty:  4.430e-02
-Divergence time: 0.3 first:  4.931e-03 second:  7.007e-03 infty:  4.844e-02
-Divergence time: 0.3125 first:  4.899e-03 second:  6.944e-03 infty:  4.746e-02
-Divergence time: 0.325 first:  4.878e-03 second:  6.983e-03 infty:  5.502e-02
-Divergence time: 0.3375 first:  4.920e-03 second:  7.061e-03 infty:  5.593e-02
-Divergence time: 0.35 first:  4.906e-03 second:  6.936e-03 infty:  4.465e-02
-Divergence time: 0.3625 first:  4.952e-03 second:  6.977e-03 infty:  4.860e-02
-Divergence time: 0.375 first:  4.989e-03 second:  7.015e-03 infty:  4.853e-02
-Divergence time: 0.3875 first:  5.018e-03 second:  6.992e-03 infty:  4.490e-02
-Divergence time: 0.4 first:  5.021e-03 second:  6.962e-03 infty:  3.987e-02
-Divergence time: 0.4125 first:  5.005e-03 second:  6.888e-03 infty:  3.935e-02
-Divergence time: 0.425 first:  4.990e-03 second:  6.783e-03 infty:  3.035e-02
-Divergence time: 0.4375 first:  4.983e-03 second:  6.806e-03 infty:  3.246e-02
-Divergence time: 0.45 first:  4.952e-03 second:  6.769e-03 infty:  3.614e-02
-Divergence time: 0.4625 first:  4.923e-03 second:  6.782e-03 infty:  3.773e-02
-Divergence time: 0.475 first:  4.881e-03 second:  6.744e-03 infty:  3.816e-02
-Divergence time: 0.4875 first:  4.849e-03 second:  6.717e-03 infty:  3.818e-02
-Divergence time: 0.5 first:  4.834e-03 second:  6.689e-03 infty:  3.818e-02
-Divergence time: 0.5125 first:  4.828e-03 second:  6.669e-03 infty:  3.812e-02
-Divergence time: 0.525 first:  4.826e-03 second:  6.649e-03 infty:  3.805e-02
-Divergence time: 0.5375 first:  4.825e-03 second:  6.636e-03 infty:  3.800e-02
+Divergence time: 0 first:  1.758e-15 second:  2.366e-15 infty:  8.882e-15
+Divergence time: 0.0125 first:  4.152e-03 second:  5.358e-03 infty:  3.651e-02
+Divergence time: 0.025 first:  4.480e-03 second:  5.885e-03 infty:  4.396e-02
+Divergence time: 0.0375 first:  4.510e-03 second:  5.995e-03 infty:  4.462e-02
+Divergence time: 0.05 first:  4.526e-03 second:  6.166e-03 infty:  4.043e-02
+Divergence time: 0.0625 first:  4.644e-03 second:  6.285e-03 infty:  4.227e-02
+Divergence time: 0.075 first:  4.758e-03 second:  6.493e-03 infty:  4.234e-02
+Divergence time: 0.0875 first:  4.843e-03 second:  6.597e-03 infty:  4.438e-02
+Divergence time: 0.1 first:  4.881e-03 second:  6.734e-03 infty:  4.192e-02
+Divergence time: 0.1125 first:  4.877e-03 second:  6.803e-03 infty:  4.390e-02
+Divergence time: 0.125 first:  4.928e-03 second:  6.870e-03 infty:  4.251e-02
+Divergence time: 0.1375 first:  4.995e-03 second:  7.008e-03 infty:  4.174e-02
+Divergence time: 0.15 first:  4.961e-03 second:  7.017e-03 infty:  4.758e-02
+Divergence time: 0.1625 first:  4.991e-03 second:  7.032e-03 infty:  4.219e-02
+Divergence time: 0.175 first:  5.014e-03 second:  7.063e-03 infty:  4.130e-02
+Divergence time: 0.1875 first:  4.951e-03 second:  6.894e-03 infty:  4.206e-02
+Divergence time: 0.2 first:  5.005e-03 second:  7.018e-03 infty:  4.240e-02
+Divergence time: 0.2125 first:  5.025e-03 second:  7.036e-03 infty:  4.093e-02
+Divergence time: 0.225 first:  4.969e-03 second:  6.925e-03 infty:  4.061e-02
+Divergence time: 0.2375 first:  5.015e-03 second:  7.090e-03 infty:  4.210e-02
+Divergence time: 0.25 first:  4.968e-03 second:  6.953e-03 infty:  3.901e-02
+Divergence time: 0.2625 first:  4.949e-03 second:  6.872e-03 infty:  3.958e-02
+Divergence time: 0.275 first:  4.993e-03 second:  7.018e-03 infty:  3.605e-02
+Divergence time: 0.2875 first:  4.935e-03 second:  6.908e-03 infty:  3.997e-02
+Divergence time: 0.3 first:  4.950e-03 second:  7.053e-03 infty:  4.684e-02
+Divergence time: 0.3125 first:  4.928e-03 second:  7.012e-03 infty:  4.751e-02
+Divergence time: 0.325 first:  4.906e-03 second:  6.998e-03 infty:  5.145e-02
+Divergence time: 0.3375 first:  4.910e-03 second:  6.976e-03 infty:  5.285e-02
+Divergence time: 0.35 first:  4.911e-03 second:  6.952e-03 infty:  5.493e-02
+Divergence time: 0.3625 first:  4.955e-03 second:  6.965e-03 infty:  4.941e-02
+Divergence time: 0.375 first:  4.989e-03 second:  7.015e-03 infty:  4.871e-02
+Divergence time: 0.3875 first:  5.028e-03 second:  7.017e-03 infty:  4.868e-02
+Divergence time: 0.4 first:  5.026e-03 second:  6.979e-03 infty:  3.989e-02
+Divergence time: 0.4125 first:  5.005e-03 second:  6.880e-03 infty:  3.938e-02
+Divergence time: 0.425 first:  4.984e-03 second:  6.774e-03 infty:  3.035e-02
+Divergence time: 0.4375 first:  4.974e-03 second:  6.792e-03 infty:  3.246e-02
+Divergence time: 0.45 first:  4.969e-03 second:  6.809e-03 infty:  3.613e-02
+Divergence time: 0.4625 first:  4.922e-03 second:  6.767e-03 infty:  3.772e-02
+Divergence time: 0.475 first:  4.871e-03 second:  6.732e-03 infty:  3.816e-02
+Divergence time: 0.4875 first:  4.841e-03 second:  6.705e-03 infty:  3.818e-02
+Divergence time: 0.5 first:  4.830e-03 second:  6.688e-03 infty:  3.819e-02
+Divergence time: 0.5125 first:  4.828e-03 second:  6.665e-03 infty:  3.812e-02
+Divergence time: 0.525 first:  4.826e-03 second:  6.648e-03 infty:  3.805e-02
+Divergence time: 0.5375 first:  4.825e-03 second:  6.636e-03 infty:  3.801e-02
 Divergence time: 0.55 first:  4.825e-03 second:  6.626e-03 infty:  3.798e-02
-Divergence time: 0.5625 first:  4.824e-03 second:  6.619e-03 infty:  3.796e-02
-Divergence time: 0.575 first:  4.824e-03 second:  6.613e-03 infty:  3.795e-02
-Divergence time: 0.5875 first:  4.825e-03 second:  6.610e-03 infty:  3.794e-02
+Divergence time: 0.5625 first:  4.824e-03 second:  6.618e-03 infty:  3.796e-02
+Divergence time: 0.575 first:  4.826e-03 second:  6.614e-03 infty:  3.795e-02
+Divergence time: 0.5875 first:  4.825e-03 second:  6.610e-03 infty:  3.795e-02
 Divergence time: 0.6 first:  4.825e-03 second:  6.607e-03 infty:  3.794e-02
-Divergence time: 0.6125 first:  4.825e-03 second:  6.605e-03 infty:  3.793e-02
-Divergence time: 0.625 first:  4.825e-03 second:  6.603e-03 infty:  3.793e-02
-Divergence time: 0.6375 first:  4.825e-03 second:  6.601e-03 infty:  3.792e-02
+Divergence time: 0.6125 first:  4.825e-03 second:  6.604e-03 infty:  3.793e-02
+Divergence time: 0.625 first:  4.825e-03 second:  6.602e-03 infty:  3.793e-02
+Divergence time: 0.6375 first:  4.825e-03 second:  6.601e-03 infty:  3.793e-02
 Divergence time: 0.65 first:  4.825e-03 second:  6.600e-03 infty:  3.792e-02
 Divergence time: 0.6625 first:  4.825e-03 second:  6.599e-03 infty:  3.791e-02
 Divergence time: 0.675 first:  4.825e-03 second:  6.599e-03 infty:  3.791e-02
 Divergence time: 0.6875 first:  4.825e-03 second:  6.598e-03 infty:  3.791e-02
-Divergence time: 0.7 first:  4.825e-03 second:  6.597e-03 infty:  3.790e-02
+Divergence time: 0.7 first:  4.825e-03 second:  6.597e-03 infty:  3.791e-02
 Divergence time: 0.7125 first:  4.825e-03 second:  6.597e-03 infty:  3.790e-02
-Divergence time: 0.725 first:  4.825e-03 second:  6.596e-03 infty:  3.789e-02
+Divergence time: 0.725 first:  4.825e-03 second:  6.596e-03 infty:  3.790e-02
 Divergence time: 0.7375 first:  4.825e-03 second:  6.595e-03 infty:  3.789e-02
-Divergence time: 0.75 first:  4.825e-03 second:  6.595e-03 infty:  3.789e-02
+Divergence time: 0.75 first:  4.825e-03 second:  6.595e-03 infty:  3.790e-02
 Divergence time: 0.7625 first:  4.826e-03 second:  6.594e-03 infty:  3.791e-02
-Divergence time: 0.775 first:  4.826e-03 second:  6.593e-03 infty:  3.792e-02
-Divergence time: 0.7875 first:  4.827e-03 second:  6.560e-03 infty:  3.794e-02
-Divergence time: 0.8 first:  4.833e-03 second:  6.585e-03 infty:  3.795e-02
-Divergence time: 0.8125 first:  4.835e-03 second:  6.568e-03 infty:  3.796e-02
-Divergence time: 0.825 first:  4.840e-03 second:  6.563e-03 infty:  3.796e-02
-Divergence time: 0.8375 first:  4.848e-03 second:  6.580e-03 infty:  3.810e-02
-Divergence time: 0.85 first:  4.855e-03 second:  6.601e-03 infty:  3.849e-02
-Divergence time: 0.8625 first:  4.858e-03 second:  6.587e-03 infty:  3.848e-02
-Divergence time: 0.875 first:  4.866e-03 second:  6.628e-03 infty:  3.845e-02
-Divergence time: 0.8875 first:  4.870e-03 second:  6.634e-03 infty:  3.842e-02
-Divergence time: 0.9 first:  4.872e-03 second:  6.650e-03 infty:  3.839e-02
-Divergence time: 0.9125 first:  4.873e-03 second:  6.657e-03 infty:  3.839e-02
-Divergence time: 0.925 first:  4.876e-03 second:  6.660e-03 infty:  3.842e-02
+Divergence time: 0.775 first:  4.826e-03 second:  6.577e-03 infty:  3.793e-02
+Divergence time: 0.7875 first:  4.830e-03 second:  6.589e-03 infty:  3.794e-02
+Divergence time: 0.8 first:  4.831e-03 second:  6.572e-03 infty:  3.796e-02
+Divergence time: 0.8125 first:  4.835e-03 second:  6.560e-03 infty:  3.796e-02
+Divergence time: 0.825 first:  4.843e-03 second:  6.588e-03 infty:  3.796e-02
+Divergence time: 0.8375 first:  4.846e-03 second:  6.564e-03 infty:  3.832e-02
+Divergence time: 0.85 first:  4.854e-03 second:  6.592e-03 infty:  3.831e-02
+Divergence time: 0.8625 first:  4.861e-03 second:  6.596e-03 infty:  3.847e-02
+Divergence time: 0.875 first:  4.867e-03 second:  6.626e-03 infty:  3.846e-02
+Divergence time: 0.8875 first:  4.870e-03 second:  6.640e-03 infty:  3.843e-02
+Divergence time: 0.9 first:  4.872e-03 second:  6.653e-03 infty:  3.841e-02
+Divergence time: 0.9125 first:  4.874e-03 second:  6.658e-03 infty:  3.840e-02
+Divergence time: 0.925 first:  4.877e-03 second:  6.660e-03 infty:  3.842e-02
 Divergence time: 0.9375 first:  4.875e-03 second:  6.641e-03 infty:  3.839e-02
-Divergence time: 0.95 first:  4.875e-03 second:  6.620e-03 infty:  3.831e-02
-Divergence time: 0.9625 first:  4.881e-03 second:  6.629e-03 infty:  3.827e-02
-Divergence time: 0.975 first:  4.886e-03 second:  6.615e-03 infty:  3.826e-02
-Divergence time: 0.9875 first:  4.894e-03 second:  6.661e-03 infty:  3.828e-02
-Divergence time: 1 first:  4.898e-03 second:  6.642e-03 infty:  3.838e-02
-Divergence time: 1.0125 first:  4.907e-03 second:  6.690e-03 infty:  3.841e-02
-Divergence time: 1.025 first:  4.913e-03 second:  6.698e-03 infty:  3.846e-02
-Divergence time: 1.0375 first:  4.918e-03 second:  6.715e-03 infty:  3.844e-02
-Divergence time: 1.05 first:  4.919e-03 second:  6.704e-03 infty:  3.837e-02
-Divergence time: 1.0625 first:  4.921e-03 second:  6.703e-03 infty:  3.853e-02
-Divergence time: 1.075 first:  4.921e-03 second:  6.664e-03 infty:  3.850e-02
-Divergence time: 1.0875 first:  4.925e-03 second:  6.698e-03 infty:  3.841e-02
-Divergence time: 1.1 first:  4.935e-03 second:  6.705e-03 infty:  3.835e-02
-Divergence time: 1.1125 first:  4.941e-03 second:  6.746e-03 infty:  3.831e-02
-Divergence time: 1.125 first:  4.946e-03 second:  6.747e-03 infty:  3.774e-02
-Divergence time: 1.1375 first:  4.952e-03 second:  6.775e-03 infty:  3.774e-02
-Divergence time: 1.15 first:  4.955e-03 second:  6.744e-03 infty:  3.772e-02
-Divergence time: 1.1625 first:  4.948e-03 second:  6.783e-03 infty:  3.763e-02
-Divergence time: 1.175 first:  4.945e-03 second:  6.731e-03 infty:  3.752e-02
-Divergence time: 1.1875 first:  4.936e-03 second:  6.775e-03 infty:  4.036e-02
-Divergence time: 1.2 first:  4.941e-03 second:  6.795e-03 infty:  4.154e-02
-Divergence time: 1.2125 first:  4.953e-03 second:  6.817e-03 infty:  4.165e-02
-Divergence time: 1.225 first:  4.958e-03 second:  6.812e-03 infty:  4.153e-02
-Divergence time: 1.2375 first:  4.932e-03 second:  6.782e-03 infty:  4.163e-02
-Divergence time: 1.25 first:  4.929e-03 second:  6.821e-03 infty:  4.838e-02
-Divergence time: 1.2625 first:  4.932e-03 second:  6.816e-03 infty:  4.151e-02
-Divergence time: 1.275 first:  4.939e-03 second:  6.854e-03 infty:  4.837e-02
-Divergence time: 1.2875 first:  4.930e-03 second:  6.825e-03 infty:  4.358e-02
-Divergence time: 1.3 first:  4.924e-03 second:  6.863e-03 infty:  4.831e-02
-Divergence time: 1.3125 first:  4.929e-03 second:  6.861e-03 infty:  4.352e-02
-Divergence time: 1.325 first:  4.929e-03 second:  6.857e-03 infty:  4.345e-02
-Divergence time: 1.3375 first:  4.914e-03 second:  6.871e-03 infty:  4.823e-02
-Divergence time: 1.35 first:  4.909e-03 second:  6.843e-03 infty:  4.706e-02
-Divergence time: 1.3625 first:  4.914e-03 second:  6.852e-03 infty:  4.680e-02
-Divergence time: 1.375 first:  4.920e-03 second:  6.849e-03 infty:  4.721e-02
-Divergence time: 1.3875 first:  4.892e-03 second:  6.842e-03 infty:  5.216e-02
-Divergence time: 1.4 first:  4.900e-03 second:  6.857e-03 infty:  5.335e-02
-Divergence time: 1.4125 first:  4.922e-03 second:  6.868e-03 infty:  5.215e-02
-Divergence time: 1.425 first:  4.915e-03 second:  6.843e-03 infty:  5.333e-02
-Divergence time: 1.4375 first:  4.888e-03 second:  6.804e-03 infty:  5.194e-02
-Divergence time: 1.45 first:  4.905e-03 second:  6.812e-03 infty:  5.258e-02
-Divergence time: 1.4625 first:  4.876e-03 second:  6.775e-03 infty:  5.752e-02
-Divergence time: 1.475 first:  4.893e-03 second:  6.796e-03 infty:  5.840e-02
-Divergence time: 1.4875 first:  4.887e-03 second:  6.753e-03 infty:  5.750e-02
-Divergence time: 1.5 first:  4.860e-03 second:  6.683e-03 infty:  4.741e-02
-Divergence time: 1.5125 first:  4.877e-03 second:  6.693e-03 infty:  5.058e-02
-Divergence time: 1.525 first:  4.861e-03 second:  6.621e-03 infty:  4.506e-02
-Divergence time: 1.5375 first:  4.876e-03 second:  6.689e-03 infty:  5.153e-02
-Divergence time: 1.55 first:  4.873e-03 second:  6.652e-03 infty:  5.303e-02
-Divergence time: 1.5625 first:  4.868e-03 second:  6.688e-03 infty:  5.433e-02
-Divergence time: 1.575 first:  4.886e-03 second:  6.643e-03 infty:  4.598e-02
-Divergence time: 1.5875 first:  4.894e-03 second:  6.646e-03 infty:  4.527e-02
-Divergence time: 1.6 first:  4.873e-03 second:  6.607e-03 infty:  4.588e-02
-Divergence time: 1.6125 first:  4.849e-03 second:  6.574e-03 infty:  5.281e-02
-Divergence time: 1.625 first:  4.873e-03 second:  6.646e-03 infty:  5.506e-02
-Divergence time: 1.6375 first:  4.847e-03 second:  6.546e-03 infty:  4.231e-02
-Divergence time: 1.65 first:  4.852e-03 second:  6.601e-03 infty:  4.825e-02
-Divergence time: 1.6625 first:  4.867e-03 second:  6.607e-03 infty:  4.993e-02
-Divergence time: 1.675 first:  4.875e-03 second:  6.619e-03 infty:  4.590e-02
-Divergence time: 1.6875 first:  4.871e-03 second:  6.609e-03 infty:  5.504e-02
-Divergence time: 1.7 first:  4.849e-03 second:  6.556e-03 infty:  4.574e-02
-Divergence time: 1.7125 first:  4.836e-03 second:  6.500e-03 infty:  3.902e-02
-Divergence time: 1.725 first:  4.818e-03 second:  6.486e-03 infty:  4.160e-02
-Divergence time: 1.7375 first:  4.822e-03 second:  6.550e-03 infty:  4.993e-02
-Divergence time: 1.75 first:  4.833e-03 second:  6.549e-03 infty:  4.085e-02
-Divergence time: 1.7625 first:  4.830e-03 second:  6.546e-03 infty:  4.966e-02
-Divergence time: 1.775 first:  4.841e-03 second:  6.611e-03 infty:  4.870e-02
-Divergence time: 1.7875 first:  4.844e-03 second:  6.567e-03 infty:  4.231e-02
-Divergence time: 1.8 first:  4.860e-03 second:  6.647e-03 infty:  4.774e-02
-Divergence time: 1.8125 first:  4.849e-03 second:  6.599e-03 infty:  4.883e-02
-Divergence time: 1.825 first:  4.825e-03 second:  6.537e-03 infty:  4.565e-02
-Divergence time: 1.8375 first:  4.819e-03 second:  6.559e-03 infty:  4.660e-02
-Divergence time: 1.85 first:  4.798e-03 second:  6.481e-03 infty:  4.013e-02
-Divergence time: 1.8625 first:  4.814e-03 second:  6.550e-03 infty:  3.996e-02
-Divergence time: 1.875 first:  4.802e-03 second:  6.512e-03 infty:  4.752e-02
-Divergence time: 1.8875 first:  4.755e-03 second:  6.451e-03 infty:  4.872e-02
-Divergence time: 1.9 first:  4.762e-03 second:  6.484e-03 infty:  4.596e-02
-Divergence time: 1.9125 first:  4.775e-03 second:  6.530e-03 infty:  5.154e-02
-Divergence time: 1.925 first:  4.785e-03 second:  6.541e-03 infty:  5.305e-02
-Divergence time: 1.9375 first:  4.798e-03 second:  6.529e-03 infty:  5.181e-02
-Divergence time: 1.95 first:  4.799e-03 second:  6.519e-03 infty:  4.738e-02
-Divergence time: 1.9625 first:  4.779e-03 second:  6.504e-03 infty:  4.865e-02
-Divergence time: 1.975 first:  4.784e-03 second:  6.500e-03 infty:  5.252e-02
-Divergence time: 1.9875 first:  4.790e-03 second:  6.517e-03 infty:  4.661e-02
-Divergence time: 2 first:  4.796e-03 second:  6.541e-03 infty:  3.884e-02
+Divergence time: 0.95 first:  4.875e-03 second:  6.602e-03 infty:  3.831e-02
+Divergence time: 0.9625 first:  4.883e-03 second:  6.643e-03 infty:  3.827e-02
+Divergence time: 0.975 first:  4.890e-03 second:  6.650e-03 infty:  3.826e-02
+Divergence time: 0.9875 first:  4.890e-03 second:  6.641e-03 infty:  3.828e-02
+Divergence time: 1 first:  4.895e-03 second:  6.663e-03 infty:  3.839e-02
+Divergence time: 1.0125 first:  4.904e-03 second:  6.663e-03 infty:  3.841e-02
+Divergence time: 1.025 first:  4.911e-03 second:  6.691e-03 infty:  3.840e-02
+Divergence time: 1.0375 first:  4.916e-03 second:  6.705e-03 infty:  3.834e-02
+Divergence time: 1.05 first:  4.916e-03 second:  6.682e-03 infty:  3.850e-02
+Divergence time: 1.0625 first:  4.918e-03 second:  6.699e-03 infty:  3.854e-02
+Divergence time: 1.075 first:  4.926e-03 second:  6.697e-03 infty:  3.850e-02
+Divergence time: 1.0875 first:  4.929e-03 second:  6.709e-03 infty:  3.841e-02
+Divergence time: 1.1 first:  4.931e-03 second:  6.701e-03 infty:  3.791e-02
+Divergence time: 1.1125 first:  4.938e-03 second:  6.726e-03 infty:  3.774e-02
+Divergence time: 1.125 first:  4.949e-03 second:  6.752e-03 infty:  3.766e-02
+Divergence time: 1.1375 first:  4.955e-03 second:  6.771e-03 infty:  3.774e-02
+Divergence time: 1.15 first:  4.953e-03 second:  6.750e-03 infty:  3.765e-02
+Divergence time: 1.1625 first:  4.943e-03 second:  6.751e-03 infty:  3.772e-02
+Divergence time: 1.175 first:  4.940e-03 second:  6.782e-03 infty:  3.763e-02
+Divergence time: 1.1875 first:  4.944e-03 second:  6.758e-03 infty:  4.034e-02
+Divergence time: 1.2 first:  4.946e-03 second:  6.810e-03 infty:  4.153e-02
+Divergence time: 1.2125 first:  4.953e-03 second:  6.799e-03 infty:  4.164e-02
+Divergence time: 1.225 first:  4.956e-03 second:  6.830e-03 infty:  4.164e-02
+Divergence time: 1.2375 first:  4.944e-03 second:  6.795e-03 infty:  4.153e-02
+Divergence time: 1.25 first:  4.925e-03 second:  6.819e-03 infty:  4.838e-02
+Divergence time: 1.2625 first:  4.922e-03 second:  6.790e-03 infty:  4.151e-02
+Divergence time: 1.275 first:  4.923e-03 second:  6.847e-03 infty:  4.834e-02
+Divergence time: 1.2875 first:  4.933e-03 second:  6.854e-03 infty:  4.359e-02
+Divergence time: 1.3 first:  4.936e-03 second:  6.853e-03 infty:  4.365e-02
+Divergence time: 1.3125 first:  4.925e-03 second:  6.856e-03 infty:  4.829e-02
+Divergence time: 1.325 first:  4.922e-03 second:  6.869e-03 infty:  4.827e-02
+Divergence time: 1.3375 first:  4.935e-03 second:  6.877e-03 infty:  4.351e-02
+Divergence time: 1.35 first:  4.944e-03 second:  6.877e-03 infty:  4.355e-02
+Divergence time: 1.3625 first:  4.921e-03 second:  6.846e-03 infty:  4.747e-02
+Divergence time: 1.375 first:  4.897e-03 second:  6.819e-03 infty:  4.690e-02
+Divergence time: 1.3875 first:  4.897e-03 second:  6.824e-03 infty:  5.302e-02
+Divergence time: 1.4 first:  4.895e-03 second:  6.825e-03 infty:  5.331e-02
+Divergence time: 1.4125 first:  4.893e-03 second:  6.842e-03 infty:  5.332e-02
+Divergence time: 1.425 first:  4.912e-03 second:  6.859e-03 infty:  5.331e-02
+Divergence time: 1.4375 first:  4.907e-03 second:  6.842e-03 infty:  5.204e-02
+Divergence time: 1.45 first:  4.902e-03 second:  6.797e-03 infty:  5.330e-02
+Divergence time: 1.4625 first:  4.897e-03 second:  6.799e-03 infty:  5.751e-02
+Divergence time: 1.475 first:  4.882e-03 second:  6.779e-03 infty:  5.839e-02
+Divergence time: 1.4875 first:  4.868e-03 second:  6.711e-03 infty:  5.672e-02
+Divergence time: 1.5 first:  4.875e-03 second:  6.716e-03 infty:  5.259e-02
+Divergence time: 1.5125 first:  4.875e-03 second:  6.689e-03 infty:  5.138e-02
+Divergence time: 1.525 first:  4.881e-03 second:  6.664e-03 infty:  4.740e-02
+Divergence time: 1.5375 first:  4.877e-03 second:  6.682e-03 infty:  5.261e-02
+Divergence time: 1.55 first:  4.868e-03 second:  6.685e-03 infty:  5.281e-02
+Divergence time: 1.5625 first:  4.859e-03 second:  6.665e-03 infty:  5.452e-02
+Divergence time: 1.575 first:  4.877e-03 second:  6.624e-03 infty:  5.162e-02
+Divergence time: 1.5875 first:  4.878e-03 second:  6.619e-03 infty:  4.735e-02
+Divergence time: 1.6 first:  4.901e-03 second:  6.667e-03 infty:  4.978e-02
+Divergence time: 1.6125 first:  4.879e-03 second:  6.638e-03 infty:  5.504e-02
+Divergence time: 1.625 first:  4.839e-03 second:  6.597e-03 infty:  5.416e-02
+Divergence time: 1.6375 first:  4.860e-03 second:  6.621e-03 infty:  5.212e-02
+Divergence time: 1.65 first:  4.854e-03 second:  6.580e-03 infty:  4.529e-02
+Divergence time: 1.6625 first:  4.848e-03 second:  6.525e-03 infty:  4.740e-02
+Divergence time: 1.675 first:  4.852e-03 second:  6.538e-03 infty:  4.422e-02
+Divergence time: 1.6875 first:  4.849e-03 second:  6.528e-03 infty:  4.603e-02
+Divergence time: 1.7 first:  4.848e-03 second:  6.573e-03 infty:  5.311e-02
+Divergence time: 1.7125 first:  4.853e-03 second:  6.583e-03 infty:  4.853e-02
+Divergence time: 1.725 first:  4.860e-03 second:  6.617e-03 infty:  4.800e-02
+Divergence time: 1.7375 first:  4.811e-03 second:  6.503e-03 infty:  4.850e-02
+Divergence time: 1.75 first:  4.805e-03 second:  6.500e-03 infty:  4.993e-02
+Divergence time: 1.7625 first:  4.834e-03 second:  6.538e-03 infty:  4.016e-02
+Divergence time: 1.775 first:  4.826e-03 second:  6.538e-03 infty:  4.972e-02
+Divergence time: 1.7875 first:  4.806e-03 second:  6.491e-03 infty:  4.020e-02
+Divergence time: 1.8 first:  4.781e-03 second:  6.456e-03 infty:  4.484e-02
+Divergence time: 1.8125 first:  4.794e-03 second:  6.491e-03 infty:  4.597e-02
+Divergence time: 1.825 first:  4.789e-03 second:  6.473e-03 infty:  4.497e-02
+Divergence time: 1.8375 first:  4.795e-03 second:  6.519e-03 infty:  4.654e-02
+Divergence time: 1.85 first:  4.792e-03 second:  6.531e-03 infty:  5.336e-02
+Divergence time: 1.8625 first:  4.803e-03 second:  6.522e-03 infty:  4.037e-02
+Divergence time: 1.875 first:  4.783e-03 second:  6.508e-03 infty:  4.894e-02
+Divergence time: 1.8875 first:  4.764e-03 second:  6.493e-03 infty:  4.601e-02
+Divergence time: 1.9 first:  4.772e-03 second:  6.483e-03 infty:  4.322e-02
+Divergence time: 1.9125 first:  4.772e-03 second:  6.484e-03 infty:  4.905e-02
+Divergence time: 1.925 first:  4.764e-03 second:  6.511e-03 infty:  5.155e-02
+Divergence time: 1.9375 first:  4.776e-03 second:  6.533e-03 infty:  5.463e-02
+Divergence time: 1.95 first:  4.790e-03 second:  6.525e-03 infty:  4.015e-02
+Divergence time: 1.9625 first:  4.756e-03 second:  6.475e-03 infty:  4.601e-02
+Divergence time: 1.975 first:  4.781e-03 second:  6.542e-03 infty:  5.230e-02
+Divergence time: 1.9875 first:  4.788e-03 second:  6.532e-03 infty:  4.800e-02
+Divergence time: 2 first:  4.782e-03 second:  6.543e-03 infty:  5.408e-02
diff --git a/test/reynolds/div7.ref b/test/reynolds/div7.ref
index eb1c78f..ce85cf2 100644
--- a/test/reynolds/div7.ref
+++ b/test/reynolds/div7.ref
@@ -1,321 +1,321 @@
-Divergence time: 0 first:  3.825e-15 second:  5.208e-15 infty:  2.487e-14
-Divergence time: 0.00625 first:  5.328e-04 second:  8.353e-04 infty:  1.662e-02
-Divergence time: 0.0125 first:  5.912e-04 second:  9.907e-04 infty:  1.738e-02
-Divergence time: 0.01875 first:  6.159e-04 second:  1.043e-03 infty:  1.687e-02
-Divergence time: 0.025 first:  6.530e-04 second:  1.188e-03 infty:  2.282e-02
-Divergence time: 0.03125 first:  6.739e-04 second:  1.171e-03 infty:  2.117e-02
-Divergence time: 0.0375 first:  6.978e-04 second:  1.242e-03 infty:  2.399e-02
-Divergence time: 0.04375 first:  7.196e-04 second:  1.285e-03 infty:  2.014e-02
-Divergence time: 0.05 first:  7.468e-04 second:  1.351e-03 infty:  2.136e-02
-Divergence time: 0.05625 first:  7.624e-04 second:  1.383e-03 infty:  2.404e-02
-Divergence time: 0.0625 first:  7.811e-04 second:  1.416e-03 infty:  2.200e-02
-Divergence time: 0.06875 first:  7.969e-04 second:  1.440e-03 infty:  2.146e-02
-Divergence time: 0.075 first:  8.114e-04 second:  1.471e-03 infty:  2.215e-02
-Divergence time: 0.08125 first:  8.204e-04 second:  1.493e-03 infty:  2.307e-02
-Divergence time: 0.0875 first:  8.328e-04 second:  1.526e-03 infty:  2.322e-02
-Divergence time: 0.09375 first:  8.411e-04 second:  1.537e-03 infty:  2.145e-02
-Divergence time: 0.1 first:  8.404e-04 second:  1.530e-03 infty:  2.222e-02
-Divergence time: 0.10625 first:  8.479e-04 second:  1.555e-03 infty:  2.056e-02
-Divergence time: 0.1125 first:  8.562e-04 second:  1.581e-03 infty:  2.219e-02
-Divergence time: 0.11875 first:  8.614e-04 second:  1.593e-03 infty:  2.148e-02
-Divergence time: 0.125 first:  8.623e-04 second:  1.584e-03 infty:  2.224e-02
-Divergence time: 0.13125 first:  8.620e-04 second:  1.574e-03 infty:  2.160e-02
-Divergence time: 0.1375 first:  8.643e-04 second:  1.581e-03 infty:  2.148e-02
-Divergence time: 0.14375 first:  8.643e-04 second:  1.588e-03 infty:  2.189e-02
-Divergence time: 0.15 first:  8.700e-04 second:  1.597e-03 infty:  2.086e-02
-Divergence time: 0.15625 first:  8.790e-04 second:  1.618e-03 infty:  2.222e-02
-Divergence time: 0.1625 first:  8.833e-04 second:  1.641e-03 infty:  2.242e-02
-Divergence time: 0.16875 first:  8.789e-04 second:  1.634e-03 infty:  2.203e-02
-Divergence time: 0.175 first:  8.761e-04 second:  1.613e-03 infty:  1.963e-02
-Divergence time: 0.18125 first:  8.760e-04 second:  1.614e-03 infty:  2.191e-02
-Divergence time: 0.1875 first:  8.796e-04 second:  1.627e-03 infty:  1.838e-02
-Divergence time: 0.19375 first:  8.846e-04 second:  1.653e-03 infty:  2.139e-02
-Divergence time: 0.2 first:  8.859e-04 second:  1.650e-03 infty:  1.823e-02
-Divergence time: 0.20625 first:  8.836e-04 second:  1.645e-03 infty:  2.136e-02
-Divergence time: 0.2125 first:  8.836e-04 second:  1.640e-03 infty:  1.818e-02
-Divergence time: 0.21875 first:  8.782e-04 second:  1.621e-03 infty:  2.129e-02
-Divergence time: 0.225 first:  8.823e-04 second:  1.648e-03 infty:  1.816e-02
-Divergence time: 0.23125 first:  8.876e-04 second:  1.678e-03 infty:  2.127e-02
-Divergence time: 0.2375 first:  8.900e-04 second:  1.685e-03 infty:  1.813e-02
-Divergence time: 0.24375 first:  8.800e-04 second:  1.638e-03 infty:  2.125e-02
-Divergence time: 0.25 first:  8.758e-04 second:  1.625e-03 infty:  1.808e-02
-Divergence time: 0.25625 first:  8.716e-04 second:  1.620e-03 infty:  2.121e-02
-Divergence time: 0.2625 first:  8.701e-04 second:  1.623e-03 infty:  1.808e-02
-Divergence time: 0.26875 first:  8.674e-04 second:  1.614e-03 infty:  2.122e-02
-Divergence time: 0.275 first:  8.692e-04 second:  1.632e-03 infty:  1.803e-02
-Divergence time: 0.28125 first:  8.664e-04 second:  1.616e-03 infty:  2.155e-02
-Divergence time: 0.2875 first:  8.614e-04 second:  1.598e-03 infty:  1.806e-02
-Divergence time: 0.29375 first:  8.599e-04 second:  1.598e-03 infty:  2.135e-02
-Divergence time: 0.3 first:  8.552e-04 second:  1.584e-03 infty:  2.199e-02
-Divergence time: 0.30625 first:  8.546e-04 second:  1.592e-03 infty:  2.124e-02
-Divergence time: 0.3125 first:  8.545e-04 second:  1.587e-03 infty:  2.075e-02
-Divergence time: 0.31875 first:  8.558e-04 second:  1.597e-03 infty:  2.128e-02
-Divergence time: 0.325 first:  8.520e-04 second:  1.589e-03 infty:  2.262e-02
-Divergence time: 0.33125 first:  8.499e-04 second:  1.594e-03 infty:  2.139e-02
-Divergence time: 0.3375 first:  8.469e-04 second:  1.581e-03 infty:  2.087e-02
-Divergence time: 0.34375 first:  8.407e-04 second:  1.557e-03 infty:  2.127e-02
-Divergence time: 0.35 first:  8.374e-04 second:  1.567e-03 infty:  2.233e-02
-Divergence time: 0.35625 first:  8.346e-04 second:  1.552e-03 infty:  2.438e-02
-Divergence time: 0.3625 first:  8.332e-04 second:  1.546e-03 infty:  2.132e-02
-Divergence time: 0.36875 first:  8.272e-04 second:  1.531e-03 infty:  2.548e-02
-Divergence time: 0.375 first:  8.226e-04 second:  1.536e-03 infty:  2.753e-02
-Divergence time: 0.38125 first:  8.227e-04 second:  1.518e-03 infty:  2.632e-02
-Divergence time: 0.3875 first:  8.149e-04 second:  1.505e-03 infty:  2.492e-02
-Divergence time: 0.39375 first:  8.184e-04 second:  1.520e-03 infty:  2.553e-02
-Divergence time: 0.4 first:  8.193e-04 second:  1.475e-03 infty:  1.910e-02
-Divergence time: 0.40625 first:  8.200e-04 second:  1.465e-03 infty:  1.951e-02
-Divergence time: 0.4125 first:  8.164e-04 second:  1.456e-03 infty:  1.895e-02
-Divergence time: 0.41875 first:  8.135e-04 second:  1.443e-03 infty:  1.957e-02
-Divergence time: 0.425 first:  8.127e-04 second:  1.429e-03 infty:  1.957e-02
-Divergence time: 0.43125 first:  8.198e-04 second:  1.454e-03 infty:  1.794e-02
-Divergence time: 0.4375 first:  8.240e-04 second:  1.462e-03 infty:  1.926e-02
-Divergence time: 0.44375 first:  8.286e-04 second:  1.467e-03 infty:  1.926e-02
-Divergence time: 0.45 first:  8.278e-04 second:  1.445e-03 infty:  1.747e-02
-Divergence time: 0.45625 first:  8.231e-04 second:  1.424e-03 infty:  1.747e-02
-Divergence time: 0.4625 first:  8.290e-04 second:  1.452e-03 infty:  1.547e-02
-Divergence time: 0.46875 first:  8.331e-04 second:  1.469e-03 infty:  1.554e-02
-Divergence time: 0.475 first:  8.335e-04 second:  1.465e-03 infty:  1.550e-02
-Divergence time: 0.48125 first:  8.338e-04 second:  1.468e-03 infty:  1.550e-02
-Divergence time: 0.4875 first:  8.342e-04 second:  1.475e-03 infty:  1.777e-02
-Divergence time: 0.49375 first:  8.343e-04 second:  1.493e-03 infty:  1.791e-02
-Divergence time: 0.5 first:  8.265e-04 second:  1.463e-03 infty:  1.790e-02
-Divergence time: 0.50625 first:  8.191e-04 second:  1.438e-03 infty:  2.093e-02
-Divergence time: 0.5125 first:  8.184e-04 second:  1.458e-03 infty:  2.484e-02
-Divergence time: 0.51875 first:  8.210e-04 second:  1.474e-03 infty:  2.794e-02
-Divergence time: 0.525 first:  8.175e-04 second:  1.447e-03 infty:  2.139e-02
-Divergence time: 0.53125 first:  8.194e-04 second:  1.451e-03 infty:  1.994e-02
-Divergence time: 0.5375 first:  8.268e-04 second:  1.478e-03 infty:  2.097e-02
-Divergence time: 0.54375 first:  8.307e-04 second:  1.482e-03 infty:  2.148e-02
-Divergence time: 0.55 first:  8.220e-04 second:  1.446e-03 infty:  2.210e-02
-Divergence time: 0.55625 first:  8.239e-04 second:  1.454e-03 infty:  2.207e-02
-Divergence time: 0.5625 first:  8.335e-04 second:  1.482e-03 infty:  2.064e-02
-Divergence time: 0.56875 first:  8.365e-04 second:  1.487e-03 infty:  2.236e-02
-Divergence time: 0.575 first:  8.399e-04 second:  1.480e-03 infty:  2.097e-02
-Divergence time: 0.58125 first:  8.450e-04 second:  1.500e-03 infty:  2.247e-02
-Divergence time: 0.5875 first:  8.515e-04 second:  1.520e-03 infty:  2.241e-02
-Divergence time: 0.59375 first:  8.471e-04 second:  1.514e-03 infty:  2.113e-02
-Divergence time: 0.6 first:  8.465e-04 second:  1.513e-03 infty:  2.257e-02
-Divergence time: 0.60625 first:  8.518e-04 second:  1.521e-03 infty:  2.128e-02
-Divergence time: 0.6125 first:  8.542e-04 second:  1.527e-03 infty:  2.256e-02
-Divergence time: 0.61875 first:  8.584e-04 second:  1.537e-03 infty:  2.095e-02
-Divergence time: 0.625 first:  8.609e-04 second:  1.547e-03 infty:  2.256e-02
-Divergence time: 0.63125 first:  8.574e-04 second:  1.533e-03 infty:  2.095e-02
-Divergence time: 0.6375 first:  8.567e-04 second:  1.541e-03 infty:  2.243e-02
-Divergence time: 0.64375 first:  8.579e-04 second:  1.533e-03 infty:  2.103e-02
-Divergence time: 0.65 first:  8.605e-04 second:  1.542e-03 infty:  2.245e-02
-Divergence time: 0.65625 first:  8.625e-04 second:  1.551e-03 infty:  2.086e-02
-Divergence time: 0.6625 first:  8.609e-04 second:  1.551e-03 infty:  2.234e-02
-Divergence time: 0.66875 first:  8.545e-04 second:  1.535e-03 infty:  2.230e-02
-Divergence time: 0.675 first:  8.635e-04 second:  1.553e-03 infty:  2.088e-02
-Divergence time: 0.68125 first:  8.622e-04 second:  1.547e-03 infty:  2.230e-02
-Divergence time: 0.6875 first:  8.573e-04 second:  1.532e-03 infty:  2.237e-02
-Divergence time: 0.69375 first:  8.597e-04 second:  1.535e-03 infty:  2.227e-02
-Divergence time: 0.7 first:  8.556e-04 second:  1.526e-03 infty:  2.078e-02
-Divergence time: 0.70625 first:  8.575e-04 second:  1.539e-03 infty:  2.234e-02
-Divergence time: 0.7125 first:  8.441e-04 second:  1.498e-03 infty:  2.102e-02
-Divergence time: 0.71875 first:  8.402e-04 second:  1.490e-03 infty:  2.255e-02
-Divergence time: 0.725 first:  8.374e-04 second:  1.482e-03 infty:  1.899e-02
-Divergence time: 0.73125 first:  8.356e-04 second:  1.478e-03 infty:  1.999e-02
-Divergence time: 0.7375 first:  8.267e-04 second:  1.445e-03 infty:  2.103e-02
-Divergence time: 0.74375 first:  8.226e-04 second:  1.441e-03 infty:  2.249e-02
-Divergence time: 0.75 first:  8.163e-04 second:  1.415e-03 infty:  2.265e-02
-Divergence time: 0.75625 first:  8.181e-04 second:  1.423e-03 infty:  1.974e-02
-Divergence time: 0.7625 first:  8.085e-04 second:  1.388e-03 infty:  2.137e-02
-Divergence time: 0.76875 first:  8.122e-04 second:  1.418e-03 infty:  2.285e-02
-Divergence time: 0.775 first:  8.116e-04 second:  1.410e-03 infty:  2.124e-02
-Divergence time: 0.78125 first:  8.019e-04 second:  1.392e-03 infty:  2.249e-02
-Divergence time: 0.7875 first:  7.892e-04 second:  1.355e-03 infty:  2.278e-02
-Divergence time: 0.79375 first:  7.878e-04 second:  1.354e-03 infty:  2.128e-02
-Divergence time: 0.8 first:  7.862e-04 second:  1.349e-03 infty:  2.284e-02
-Divergence time: 0.80625 first:  7.874e-04 second:  1.347e-03 infty:  1.923e-02
-Divergence time: 0.8125 first:  7.815e-04 second:  1.323e-03 infty:  2.100e-02
-Divergence time: 0.81875 first:  7.777e-04 second:  1.307e-03 infty:  2.132e-02
-Divergence time: 0.825 first:  7.771e-04 second:  1.317e-03 infty:  2.286e-02
-Divergence time: 0.83125 first:  7.727e-04 second:  1.295e-03 infty:  1.948e-02
-Divergence time: 0.8375 first:  7.689e-04 second:  1.279e-03 infty:  2.080e-02
-Divergence time: 0.84375 first:  7.644e-04 second:  1.264e-03 infty:  1.737e-02
-Divergence time: 0.85 first:  7.625e-04 second:  1.257e-03 infty:  2.134e-02
-Divergence time: 0.85625 first:  7.598e-04 second:  1.258e-03 infty:  2.273e-02
-Divergence time: 0.8625 first:  7.564e-04 second:  1.236e-03 infty:  1.931e-02
-Divergence time: 0.86875 first:  7.561e-04 second:  1.231e-03 infty:  1.951e-02
-Divergence time: 0.875 first:  7.547e-04 second:  1.228e-03 infty:  1.573e-02
-Divergence time: 0.88125 first:  7.588e-04 second:  1.243e-03 infty:  1.528e-02
-Divergence time: 0.8875 first:  7.605e-04 second:  1.256e-03 infty:  1.520e-02
-Divergence time: 0.89375 first:  7.595e-04 second:  1.248e-03 infty:  1.467e-02
-Divergence time: 0.9 first:  7.586e-04 second:  1.244e-03 infty:  1.360e-02
-Divergence time: 0.90625 first:  7.538e-04 second:  1.216e-03 infty:  1.379e-02
-Divergence time: 0.9125 first:  7.520e-04 second:  1.208e-03 infty:  1.277e-02
-Divergence time: 0.91875 first:  7.513e-04 second:  1.210e-03 infty:  1.384e-02
-Divergence time: 0.925 first:  7.552e-04 second:  1.237e-03 infty:  1.600e-02
-Divergence time: 0.93125 first:  7.568e-04 second:  1.246e-03 infty:  1.565e-02
-Divergence time: 0.9375 first:  7.590e-04 second:  1.244e-03 infty:  1.447e-02
-Divergence time: 0.94375 first:  7.533e-04 second:  1.218e-03 infty:  1.452e-02
-Divergence time: 0.95 first:  7.515e-04 second:  1.208e-03 infty:  1.448e-02
-Divergence time: 0.95625 first:  7.512e-04 second:  1.214e-03 infty:  1.352e-02
-Divergence time: 0.9625 first:  7.588e-04 second:  1.258e-03 infty:  1.600e-02
-Divergence time: 0.96875 first:  7.607e-04 second:  1.262e-03 infty:  1.571e-02
-Divergence time: 0.975 first:  7.603e-04 second:  1.254e-03 infty:  1.621e-02
-Divergence time: 0.98125 first:  7.574e-04 second:  1.229e-03 infty:  1.278e-02
-Divergence time: 0.9875 first:  7.529e-04 second:  1.216e-03 infty:  1.576e-02
-Divergence time: 0.99375 first:  7.524e-04 second:  1.219e-03 infty:  1.548e-02
-Divergence time: 1 first:  7.587e-04 second:  1.256e-03 infty:  1.549e-02
-Divergence time: 1.00625 first:  7.567e-04 second:  1.235e-03 infty:  1.400e-02
-Divergence time: 1.0125 first:  7.569e-04 second:  1.236e-03 infty:  1.456e-02
-Divergence time: 1.01875 first:  7.540e-04 second:  1.228e-03 infty:  1.551e-02
-Divergence time: 1.025 first:  7.597e-04 second:  1.254e-03 infty:  1.630e-02
-Divergence time: 1.03125 first:  7.604e-04 second:  1.249e-03 infty:  1.440e-02
-Divergence time: 1.0375 first:  7.608e-04 second:  1.257e-03 infty:  1.625e-02
-Divergence time: 1.04375 first:  7.610e-04 second:  1.255e-03 infty:  1.617e-02
-Divergence time: 1.05 first:  7.598e-04 second:  1.237e-03 infty:  1.281e-02
-Divergence time: 1.05625 first:  7.577e-04 second:  1.232e-03 infty:  1.636e-02
-Divergence time: 1.0625 first:  7.576e-04 second:  1.229e-03 infty:  1.429e-02
-Divergence time: 1.06875 first:  7.614e-04 second:  1.258e-03 infty:  1.608e-02
-Divergence time: 1.075 first:  7.578e-04 second:  1.241e-03 infty:  1.421e-02
-Divergence time: 1.08125 first:  7.587e-04 second:  1.229e-03 infty:  1.302e-02
-Divergence time: 1.0875 first:  7.578e-04 second:  1.229e-03 infty:  1.472e-02
-Divergence time: 1.09375 first:  7.579e-04 second:  1.229e-03 infty:  1.421e-02
-Divergence time: 1.1 first:  7.624e-04 second:  1.255e-03 infty:  1.604e-02
-Divergence time: 1.10625 first:  7.609e-04 second:  1.252e-03 infty:  1.630e-02
-Divergence time: 1.1125 first:  7.610e-04 second:  1.242e-03 infty:  1.424e-02
-Divergence time: 1.11875 first:  7.610e-04 second:  1.241e-03 infty:  1.577e-02
-Divergence time: 1.125 first:  7.612e-04 second:  1.239e-03 infty:  1.410e-02
-Divergence time: 1.13125 first:  7.624e-04 second:  1.247e-03 infty:  1.433e-02
-Divergence time: 1.1375 first:  7.630e-04 second:  1.255e-03 infty:  1.419e-02
-Divergence time: 1.14375 first:  7.598e-04 second:  1.242e-03 infty:  1.472e-02
-Divergence time: 1.15 first:  7.624e-04 second:  1.243e-03 infty:  1.308e-02
-Divergence time: 1.15625 first:  7.612e-04 second:  1.238e-03 infty:  1.453e-02
-Divergence time: 1.1625 first:  7.632e-04 second:  1.241e-03 infty:  1.322e-02
-Divergence time: 1.16875 first:  7.641e-04 second:  1.255e-03 infty:  1.628e-02
-Divergence time: 1.175 first:  7.635e-04 second:  1.256e-03 infty:  1.427e-02
-Divergence time: 1.18125 first:  7.619e-04 second:  1.239e-03 infty:  1.459e-02
-Divergence time: 1.1875 first:  7.623e-04 second:  1.244e-03 infty:  1.353e-02
-Divergence time: 1.19375 first:  7.641e-04 second:  1.248e-03 infty:  1.430e-02
-Divergence time: 1.2 first:  7.698e-04 second:  1.282e-03 infty:  1.601e-02
-Divergence time: 1.20625 first:  7.658e-04 second:  1.261e-03 infty:  1.464e-02
-Divergence time: 1.2125 first:  7.661e-04 second:  1.255e-03 infty:  1.373e-02
-Divergence time: 1.21875 first:  7.632e-04 second:  1.242e-03 infty:  1.452e-02
-Divergence time: 1.225 first:  7.624e-04 second:  1.241e-03 infty:  1.397e-02
-Divergence time: 1.23125 first:  7.643e-04 second:  1.254e-03 infty:  1.633e-02
-Divergence time: 1.2375 first:  7.703e-04 second:  1.292e-03 infty:  1.582e-02
-Divergence time: 1.24375 first:  7.660e-04 second:  1.261e-03 infty:  1.449e-02
-Divergence time: 1.25 first:  7.673e-04 second:  1.274e-03 infty:  1.556e-02
-Divergence time: 1.25625 first:  7.634e-04 second:  1.244e-03 infty:  1.520e-02
-Divergence time: 1.2625 first:  7.677e-04 second:  1.267e-03 infty:  1.524e-02
-Divergence time: 1.26875 first:  7.667e-04 second:  1.278e-03 infty:  2.056e-02
-Divergence time: 1.275 first:  7.694e-04 second:  1.294e-03 infty:  1.673e-02
-Divergence time: 1.28125 first:  7.641e-04 second:  1.266e-03 infty:  1.632e-02
-Divergence time: 1.2875 first:  7.648e-04 second:  1.261e-03 infty:  1.633e-02
-Divergence time: 1.29375 first:  7.635e-04 second:  1.250e-03 infty:  1.563e-02
-Divergence time: 1.3 first:  7.666e-04 second:  1.256e-03 infty:  1.557e-02
-Divergence time: 1.30625 first:  7.665e-04 second:  1.280e-03 infty:  2.082e-02
-Divergence time: 1.3125 first:  7.655e-04 second:  1.286e-03 infty:  1.676e-02
-Divergence time: 1.31875 first:  7.611e-04 second:  1.258e-03 infty:  1.614e-02
-Divergence time: 1.325 first:  7.614e-04 second:  1.248e-03 infty:  1.635e-02
-Divergence time: 1.33125 first:  7.656e-04 second:  1.266e-03 infty:  1.595e-02
-Divergence time: 1.3375 first:  7.676e-04 second:  1.287e-03 infty:  2.150e-02
-Divergence time: 1.34375 first:  7.685e-04 second:  1.307e-03 infty:  2.335e-02
-Divergence time: 1.35 first:  7.623e-04 second:  1.279e-03 infty:  1.686e-02
-Divergence time: 1.35625 first:  7.627e-04 second:  1.263e-03 infty:  1.669e-02
-Divergence time: 1.3625 first:  7.623e-04 second:  1.267e-03 infty:  2.058e-02
-Divergence time: 1.36875 first:  7.703e-04 second:  1.316e-03 infty:  2.621e-02
-Divergence time: 1.375 first:  7.625e-04 second:  1.283e-03 infty:  2.302e-02
-Divergence time: 1.38125 first:  7.612e-04 second:  1.277e-03 infty:  2.312e-02
-Divergence time: 1.3875 first:  7.616e-04 second:  1.274e-03 infty:  1.749e-02
-Divergence time: 1.39375 first:  7.676e-04 second:  1.300e-03 infty:  2.025e-02
-Divergence time: 1.4 first:  7.658e-04 second:  1.278e-03 infty:  2.107e-02
-Divergence time: 1.40625 first:  7.740e-04 second:  1.327e-03 infty:  2.728e-02
-Divergence time: 1.4125 first:  7.679e-04 second:  1.312e-03 infty:  2.339e-02
-Divergence time: 1.41875 first:  7.712e-04 second:  1.317e-03 infty:  2.323e-02
-Divergence time: 1.425 first:  7.699e-04 second:  1.299e-03 infty:  2.094e-02
-Divergence time: 1.43125 first:  7.731e-04 second:  1.322e-03 infty:  2.427e-02
-Divergence time: 1.4375 first:  7.661e-04 second:  1.291e-03 infty:  2.602e-02
-Divergence time: 1.44375 first:  7.730e-04 second:  1.314e-03 infty:  2.153e-02
-Divergence time: 1.45 first:  7.750e-04 second:  1.320e-03 infty:  2.278e-02
-Divergence time: 1.45625 first:  7.662e-04 second:  1.276e-03 infty:  2.261e-02
-Divergence time: 1.4625 first:  7.733e-04 second:  1.314e-03 infty:  2.136e-02
-Divergence time: 1.46875 first:  7.730e-04 second:  1.324e-03 infty:  2.462e-02
-Divergence time: 1.475 first:  7.730e-04 second:  1.318e-03 infty:  2.205e-02
-Divergence time: 1.48125 first:  7.757e-04 second:  1.330e-03 infty:  2.435e-02
-Divergence time: 1.4875 first:  7.774e-04 second:  1.327e-03 infty:  2.437e-02
-Divergence time: 1.49375 first:  7.748e-04 second:  1.320e-03 infty:  2.445e-02
-Divergence time: 1.5 first:  7.711e-04 second:  1.300e-03 infty:  2.287e-02
-Divergence time: 1.50625 first:  7.707e-04 second:  1.291e-03 infty:  2.225e-02
-Divergence time: 1.5125 first:  7.743e-04 second:  1.303e-03 infty:  2.002e-02
-Divergence time: 1.51875 first:  7.755e-04 second:  1.307e-03 infty:  2.237e-02
-Divergence time: 1.525 first:  7.797e-04 second:  1.330e-03 infty:  2.500e-02
-Divergence time: 1.53125 first:  7.718e-04 second:  1.294e-03 infty:  2.381e-02
-Divergence time: 1.5375 first:  7.656e-04 second:  1.279e-03 infty:  2.373e-02
-Divergence time: 1.54375 first:  7.730e-04 second:  1.309e-03 infty:  2.298e-02
-Divergence time: 1.55 first:  7.745e-04 second:  1.304e-03 infty:  2.060e-02
-Divergence time: 1.55625 first:  7.767e-04 second:  1.317e-03 infty:  2.357e-02
-Divergence time: 1.5625 first:  7.786e-04 second:  1.323e-03 infty:  2.300e-02
-Divergence time: 1.56875 first:  7.831e-04 second:  1.317e-03 infty:  1.904e-02
-Divergence time: 1.575 first:  7.842e-04 second:  1.317e-03 infty:  2.075e-02
-Divergence time: 1.58125 first:  7.804e-04 second:  1.307e-03 infty:  2.301e-02
-Divergence time: 1.5875 first:  7.821e-04 second:  1.332e-03 infty:  2.313e-02
-Divergence time: 1.59375 first:  7.879e-04 second:  1.358e-03 infty:  2.275e-02
-Divergence time: 1.6 first:  7.933e-04 second:  1.361e-03 infty:  2.077e-02
-Divergence time: 1.60625 first:  7.996e-04 second:  1.387e-03 infty:  2.447e-02
-Divergence time: 1.6125 first:  7.992e-04 second:  1.374e-03 infty:  2.071e-02
-Divergence time: 1.61875 first:  8.022e-04 second:  1.391e-03 infty:  2.261e-02
-Divergence time: 1.625 first:  8.025e-04 second:  1.394e-03 infty:  2.317e-02
-Divergence time: 1.63125 first:  8.036e-04 second:  1.382e-03 infty:  2.177e-02
-Divergence time: 1.6375 first:  8.035e-04 second:  1.380e-03 infty:  2.134e-02
-Divergence time: 1.64375 first:  8.013e-04 second:  1.363e-03 infty:  2.309e-02
-Divergence time: 1.65 first:  8.016e-04 second:  1.373e-03 infty:  2.196e-02
-Divergence time: 1.65625 first:  8.041e-04 second:  1.401e-03 infty:  2.460e-02
-Divergence time: 1.6625 first:  8.098e-04 second:  1.404e-03 infty:  2.060e-02
-Divergence time: 1.66875 first:  8.177e-04 second:  1.427e-03 infty:  2.170e-02
-Divergence time: 1.675 first:  8.177e-04 second:  1.424e-03 infty:  2.451e-02
-Divergence time: 1.68125 first:  8.197e-04 second:  1.415e-03 infty:  2.015e-02
-Divergence time: 1.6875 first:  8.183e-04 second:  1.425e-03 infty:  2.474e-02
-Divergence time: 1.69375 first:  8.156e-04 second:  1.422e-03 infty:  2.258e-02
-Divergence time: 1.7 first:  8.192e-04 second:  1.438e-03 infty:  2.105e-02
-Divergence time: 1.70625 first:  8.162e-04 second:  1.425e-03 infty:  2.302e-02
-Divergence time: 1.7125 first:  8.208e-04 second:  1.443e-03 infty:  2.421e-02
-Divergence time: 1.71875 first:  8.197e-04 second:  1.437e-03 infty:  2.259e-02
-Divergence time: 1.725 first:  8.229e-04 second:  1.434e-03 infty:  2.132e-02
-Divergence time: 1.73125 first:  8.225e-04 second:  1.429e-03 infty:  2.394e-02
-Divergence time: 1.7375 first:  8.277e-04 second:  1.439e-03 infty:  2.113e-02
-Divergence time: 1.74375 first:  8.321e-04 second:  1.443e-03 infty:  2.285e-02
-Divergence time: 1.75 first:  8.300e-04 second:  1.442e-03 infty:  2.148e-02
-Divergence time: 1.75625 first:  8.250e-04 second:  1.437e-03 infty:  2.399e-02
-Divergence time: 1.7625 first:  8.304e-04 second:  1.447e-03 infty:  2.015e-02
-Divergence time: 1.76875 first:  8.335e-04 second:  1.454e-03 infty:  2.180e-02
-Divergence time: 1.775 first:  8.327e-04 second:  1.458e-03 infty:  2.066e-02
-Divergence time: 1.78125 first:  8.380e-04 second:  1.474e-03 infty:  2.222e-02
-Divergence time: 1.7875 first:  8.352e-04 second:  1.469e-03 infty:  2.347e-02
-Divergence time: 1.79375 first:  8.347e-04 second:  1.470e-03 infty:  2.147e-02
-Divergence time: 1.8 first:  8.325e-04 second:  1.463e-03 infty:  2.328e-02
-Divergence time: 1.80625 first:  8.356e-04 second:  1.461e-03 infty:  2.268e-02
-Divergence time: 1.8125 first:  8.382e-04 second:  1.465e-03 infty:  2.072e-02
-Divergence time: 1.81875 first:  8.363e-04 second:  1.456e-03 infty:  2.112e-02
-Divergence time: 1.825 first:  8.356e-04 second:  1.456e-03 infty:  2.174e-02
-Divergence time: 1.83125 first:  8.348e-04 second:  1.453e-03 infty:  2.134e-02
-Divergence time: 1.8375 first:  8.314e-04 second:  1.440e-03 infty:  2.257e-02
-Divergence time: 1.84375 first:  8.289e-04 second:  1.447e-03 infty:  2.172e-02
-Divergence time: 1.85 first:  8.193e-04 second:  1.432e-03 infty:  2.317e-02
-Divergence time: 1.85625 first:  8.177e-04 second:  1.423e-03 infty:  2.172e-02
-Divergence time: 1.8625 first:  8.210e-04 second:  1.430e-03 infty:  2.306e-02
-Divergence time: 1.86875 first:  8.263e-04 second:  1.442e-03 infty:  1.955e-02
-Divergence time: 1.875 first:  8.306e-04 second:  1.452e-03 infty:  2.101e-02
-Divergence time: 1.88125 first:  8.289e-04 second:  1.456e-03 infty:  2.123e-02
-Divergence time: 1.8875 first:  8.262e-04 second:  1.447e-03 infty:  2.334e-02
-Divergence time: 1.89375 first:  8.221e-04 second:  1.439e-03 infty:  2.264e-02
-Divergence time: 1.9 first:  8.177e-04 second:  1.446e-03 infty:  2.379e-02
-Divergence time: 1.90625 first:  8.200e-04 second:  1.447e-03 infty:  2.128e-02
-Divergence time: 1.9125 first:  8.206e-04 second:  1.440e-03 infty:  2.207e-02
-Divergence time: 1.91875 first:  8.191e-04 second:  1.424e-03 infty:  2.264e-02
-Divergence time: 1.925 first:  8.226e-04 second:  1.429e-03 infty:  1.924e-02
-Divergence time: 1.93125 first:  8.219e-04 second:  1.448e-03 infty:  2.257e-02
-Divergence time: 1.9375 first:  8.170e-04 second:  1.428e-03 infty:  2.267e-02
-Divergence time: 1.94375 first:  8.118e-04 second:  1.417e-03 infty:  2.399e-02
-Divergence time: 1.95 first:  8.038e-04 second:  1.411e-03 infty:  2.370e-02
-Divergence time: 1.95625 first:  8.008e-04 second:  1.410e-03 infty:  2.524e-02
-Divergence time: 1.9625 first:  8.051e-04 second:  1.398e-03 infty:  2.086e-02
-Divergence time: 1.96875 first:  8.056e-04 second:  1.397e-03 infty:  2.082e-02
-Divergence time: 1.975 first:  8.037e-04 second:  1.385e-03 infty:  2.171e-02
-Divergence time: 1.98125 first:  8.056e-04 second:  1.393e-03 infty:  2.135e-02
-Divergence time: 1.9875 first:  8.036e-04 second:  1.382e-03 infty:  2.251e-02
-Divergence time: 1.99375 first:  8.021e-04 second:  1.385e-03 infty:  2.247e-02
-Divergence time: 2 first:  7.973e-04 second:  1.369e-03 infty:  2.366e-02
+Divergence time: 0 first:  3.776e-15 second:  5.130e-15 infty:  2.309e-14
+Divergence time: 0.00625 first:  5.297e-04 second:  8.362e-04 infty:  1.662e-02
+Divergence time: 0.0125 first:  5.899e-04 second:  9.905e-04 infty:  1.738e-02
+Divergence time: 0.01875 first:  6.151e-04 second:  1.042e-03 infty:  1.802e-02
+Divergence time: 0.025 first:  6.533e-04 second:  1.191e-03 infty:  2.313e-02
+Divergence time: 0.03125 first:  6.742e-04 second:  1.170e-03 infty:  1.793e-02
+Divergence time: 0.0375 first:  7.004e-04 second:  1.250e-03 infty:  2.399e-02
+Divergence time: 0.04375 first:  7.259e-04 second:  1.308e-03 infty:  2.281e-02
+Divergence time: 0.05 first:  7.487e-04 second:  1.364e-03 infty:  2.136e-02
+Divergence time: 0.05625 first:  7.622e-04 second:  1.390e-03 infty:  2.404e-02
+Divergence time: 0.0625 first:  7.853e-04 second:  1.438e-03 infty:  2.321e-02
+Divergence time: 0.06875 first:  7.967e-04 second:  1.442e-03 infty:  2.018e-02
+Divergence time: 0.075 first:  8.118e-04 second:  1.479e-03 infty:  2.214e-02
+Divergence time: 0.08125 first:  8.212e-04 second:  1.509e-03 infty:  2.307e-02
+Divergence time: 0.0875 first:  8.316e-04 second:  1.525e-03 infty:  2.205e-02
+Divergence time: 0.09375 first:  8.443e-04 second:  1.547e-03 infty:  2.143e-02
+Divergence time: 0.1 first:  8.457e-04 second:  1.547e-03 infty:  2.227e-02
+Divergence time: 0.10625 first:  8.471e-04 second:  1.555e-03 infty:  2.205e-02
+Divergence time: 0.1125 first:  8.579e-04 second:  1.588e-03 infty:  2.149e-02
+Divergence time: 0.11875 first:  8.667e-04 second:  1.614e-03 infty:  2.158e-02
+Divergence time: 0.125 first:  8.663e-04 second:  1.600e-03 infty:  2.224e-02
+Divergence time: 0.13125 first:  8.643e-04 second:  1.585e-03 infty:  2.142e-02
+Divergence time: 0.1375 first:  8.653e-04 second:  1.584e-03 infty:  2.128e-02
+Divergence time: 0.14375 first:  8.649e-04 second:  1.591e-03 infty:  2.257e-02
+Divergence time: 0.15 first:  8.706e-04 second:  1.604e-03 infty:  2.202e-02
+Divergence time: 0.15625 first:  8.803e-04 second:  1.630e-03 infty:  2.253e-02
+Divergence time: 0.1625 first:  8.835e-04 second:  1.647e-03 infty:  2.203e-02
+Divergence time: 0.16875 first:  8.805e-04 second:  1.632e-03 infty:  2.198e-02
+Divergence time: 0.175 first:  8.761e-04 second:  1.613e-03 infty:  2.185e-02
+Divergence time: 0.18125 first:  8.759e-04 second:  1.612e-03 infty:  2.145e-02
+Divergence time: 0.1875 first:  8.805e-04 second:  1.632e-03 infty:  2.140e-02
+Divergence time: 0.19375 first:  8.865e-04 second:  1.660e-03 infty:  2.176e-02
+Divergence time: 0.2 first:  8.842e-04 second:  1.648e-03 infty:  2.201e-02
+Divergence time: 0.20625 first:  8.824e-04 second:  1.635e-03 infty:  2.116e-02
+Divergence time: 0.2125 first:  8.818e-04 second:  1.636e-03 infty:  2.186e-02
+Divergence time: 0.21875 first:  8.789e-04 second:  1.628e-03 infty:  2.123e-02
+Divergence time: 0.225 first:  8.815e-04 second:  1.640e-03 infty:  2.130e-02
+Divergence time: 0.23125 first:  8.833e-04 second:  1.660e-03 infty:  2.197e-02
+Divergence time: 0.2375 first:  8.846e-04 second:  1.664e-03 infty:  2.125e-02
+Divergence time: 0.24375 first:  8.806e-04 second:  1.640e-03 infty:  2.129e-02
+Divergence time: 0.25 first:  8.789e-04 second:  1.640e-03 infty:  2.118e-02
+Divergence time: 0.25625 first:  8.728e-04 second:  1.615e-03 infty:  2.135e-02
+Divergence time: 0.2625 first:  8.756e-04 second:  1.642e-03 infty:  2.199e-02
+Divergence time: 0.26875 first:  8.767e-04 second:  1.650e-03 infty:  2.115e-02
+Divergence time: 0.275 first:  8.699e-04 second:  1.623e-03 infty:  2.116e-02
+Divergence time: 0.28125 first:  8.674e-04 second:  1.617e-03 infty:  2.138e-02
+Divergence time: 0.2875 first:  8.675e-04 second:  1.626e-03 infty:  2.129e-02
+Divergence time: 0.29375 first:  8.662e-04 second:  1.625e-03 infty:  2.148e-02
+Divergence time: 0.3 first:  8.626e-04 second:  1.612e-03 infty:  2.153e-02
+Divergence time: 0.30625 first:  8.609e-04 second:  1.611e-03 infty:  2.104e-02
+Divergence time: 0.3125 first:  8.577e-04 second:  1.599e-03 infty:  2.227e-02
+Divergence time: 0.31875 first:  8.551e-04 second:  1.597e-03 infty:  2.203e-02
+Divergence time: 0.325 first:  8.554e-04 second:  1.592e-03 infty:  2.128e-02
+Divergence time: 0.33125 first:  8.528e-04 second:  1.595e-03 infty:  2.088e-02
+Divergence time: 0.3375 first:  8.442e-04 second:  1.570e-03 infty:  2.216e-02
+Divergence time: 0.34375 first:  8.428e-04 second:  1.578e-03 infty:  2.315e-02
+Divergence time: 0.35 first:  8.412e-04 second:  1.578e-03 infty:  2.332e-02
+Divergence time: 0.35625 first:  8.349e-04 second:  1.543e-03 infty:  2.327e-02
+Divergence time: 0.3625 first:  8.321e-04 second:  1.548e-03 infty:  2.401e-02
+Divergence time: 0.36875 first:  8.292e-04 second:  1.541e-03 infty:  2.512e-02
+Divergence time: 0.375 first:  8.199e-04 second:  1.520e-03 infty:  2.622e-02
+Divergence time: 0.38125 first:  8.173e-04 second:  1.512e-03 infty:  2.825e-02
+Divergence time: 0.3875 first:  8.159e-04 second:  1.511e-03 infty:  2.730e-02
+Divergence time: 0.39375 first:  8.201e-04 second:  1.526e-03 infty:  2.159e-02
+Divergence time: 0.4 first:  8.158e-04 second:  1.469e-03 infty:  1.952e-02
+Divergence time: 0.40625 first:  8.149e-04 second:  1.455e-03 infty:  2.235e-02
+Divergence time: 0.4125 first:  8.165e-04 second:  1.464e-03 infty:  1.895e-02
+Divergence time: 0.41875 first:  8.167e-04 second:  1.465e-03 infty:  1.957e-02
+Divergence time: 0.425 first:  8.164e-04 second:  1.449e-03 infty:  1.957e-02
+Divergence time: 0.43125 first:  8.183e-04 second:  1.435e-03 infty:  1.752e-02
+Divergence time: 0.4375 first:  8.230e-04 second:  1.472e-03 infty:  1.926e-02
+Divergence time: 0.44375 first:  8.233e-04 second:  1.463e-03 infty:  1.926e-02
+Divergence time: 0.45 first:  8.242e-04 second:  1.432e-03 infty:  1.747e-02
+Divergence time: 0.45625 first:  8.301e-04 second:  1.464e-03 infty:  1.747e-02
+Divergence time: 0.4625 first:  8.307e-04 second:  1.458e-03 infty:  1.862e-02
+Divergence time: 0.46875 first:  8.288e-04 second:  1.443e-03 infty:  1.554e-02
+Divergence time: 0.475 first:  8.294e-04 second:  1.451e-03 infty:  1.797e-02
+Divergence time: 0.48125 first:  8.325e-04 second:  1.472e-03 infty:  1.550e-02
+Divergence time: 0.4875 first:  8.357e-04 second:  1.482e-03 infty:  1.751e-02
+Divergence time: 0.49375 first:  8.312e-04 second:  1.464e-03 infty:  1.790e-02
+Divergence time: 0.5 first:  8.249e-04 second:  1.456e-03 infty:  2.092e-02
+Divergence time: 0.50625 first:  8.224e-04 second:  1.467e-03 infty:  2.469e-02
+Divergence time: 0.5125 first:  8.205e-04 second:  1.469e-03 infty:  2.482e-02
+Divergence time: 0.51875 first:  8.199e-04 second:  1.452e-03 infty:  2.482e-02
+Divergence time: 0.525 first:  8.241e-04 second:  1.473e-03 infty:  1.997e-02
+Divergence time: 0.53125 first:  8.265e-04 second:  1.486e-03 infty:  2.175e-02
+Divergence time: 0.5375 first:  8.263e-04 second:  1.477e-03 infty:  2.281e-02
+Divergence time: 0.54375 first:  8.231e-04 second:  1.457e-03 infty:  2.141e-02
+Divergence time: 0.55 first:  8.374e-04 second:  1.499e-03 infty:  2.060e-02
+Divergence time: 0.55625 first:  8.425e-04 second:  1.506e-03 infty:  2.207e-02
+Divergence time: 0.5625 first:  8.420e-04 second:  1.502e-03 infty:  2.174e-02
+Divergence time: 0.56875 first:  8.359e-04 second:  1.483e-03 infty:  2.236e-02
+Divergence time: 0.575 first:  8.441e-04 second:  1.524e-03 infty:  2.254e-02
+Divergence time: 0.58125 first:  8.491e-04 second:  1.524e-03 infty:  2.247e-02
+Divergence time: 0.5875 first:  8.527e-04 second:  1.524e-03 infty:  2.111e-02
+Divergence time: 0.59375 first:  8.527e-04 second:  1.526e-03 infty:  2.254e-02
+Divergence time: 0.6 first:  8.544e-04 second:  1.529e-03 infty:  2.249e-02
+Divergence time: 0.60625 first:  8.603e-04 second:  1.547e-03 infty:  2.095e-02
+Divergence time: 0.6125 first:  8.540e-04 second:  1.535e-03 infty:  2.256e-02
+Divergence time: 0.61875 first:  8.561e-04 second:  1.536e-03 infty:  2.257e-02
+Divergence time: 0.625 first:  8.604e-04 second:  1.544e-03 infty:  2.256e-02
+Divergence time: 0.63125 first:  8.658e-04 second:  1.566e-03 infty:  2.241e-02
+Divergence time: 0.6375 first:  8.685e-04 second:  1.561e-03 infty:  2.236e-02
+Divergence time: 0.64375 first:  8.675e-04 second:  1.561e-03 infty:  2.107e-02
+Divergence time: 0.65 first:  8.618e-04 second:  1.554e-03 infty:  2.235e-02
+Divergence time: 0.65625 first:  8.667e-04 second:  1.570e-03 infty:  2.232e-02
+Divergence time: 0.6625 first:  8.640e-04 second:  1.560e-03 infty:  2.233e-02
+Divergence time: 0.66875 first:  8.603e-04 second:  1.547e-03 infty:  2.230e-02
+Divergence time: 0.675 first:  8.654e-04 second:  1.556e-03 infty:  2.111e-02
+Divergence time: 0.68125 first:  8.611e-04 second:  1.554e-03 infty:  2.230e-02
+Divergence time: 0.6875 first:  8.650e-04 second:  1.576e-03 infty:  2.229e-02
+Divergence time: 0.69375 first:  8.660e-04 second:  1.565e-03 infty:  2.232e-02
+Divergence time: 0.7 first:  8.655e-04 second:  1.561e-03 infty:  2.223e-02
+Divergence time: 0.70625 first:  8.641e-04 second:  1.547e-03 infty:  2.217e-02
+Divergence time: 0.7125 first:  8.600e-04 second:  1.539e-03 infty:  2.019e-02
+Divergence time: 0.71875 first:  8.539e-04 second:  1.523e-03 infty:  2.017e-02
+Divergence time: 0.725 first:  8.445e-04 second:  1.511e-03 infty:  2.206e-02
+Divergence time: 0.73125 first:  8.315e-04 second:  1.471e-03 infty:  2.255e-02
+Divergence time: 0.7375 first:  8.263e-04 second:  1.453e-03 infty:  2.094e-02
+Divergence time: 0.74375 first:  8.209e-04 second:  1.441e-03 infty:  2.240e-02
+Divergence time: 0.75 first:  8.236e-04 second:  1.447e-03 infty:  2.054e-02
+Divergence time: 0.75625 first:  8.229e-04 second:  1.443e-03 infty:  2.010e-02
+Divergence time: 0.7625 first:  8.157e-04 second:  1.416e-03 infty:  2.031e-02
+Divergence time: 0.76875 first:  8.092e-04 second:  1.392e-03 infty:  2.084e-02
+Divergence time: 0.775 first:  8.117e-04 second:  1.414e-03 infty:  1.797e-02
+Divergence time: 0.78125 first:  8.081e-04 second:  1.404e-03 infty:  2.123e-02
+Divergence time: 0.7875 first:  8.035e-04 second:  1.382e-03 infty:  2.271e-02
+Divergence time: 0.79375 first:  7.960e-04 second:  1.359e-03 infty:  2.068e-02
+Divergence time: 0.8 first:  7.907e-04 second:  1.351e-03 infty:  2.144e-02
+Divergence time: 0.80625 first:  7.851e-04 second:  1.324e-03 infty:  2.290e-02
+Divergence time: 0.8125 first:  7.903e-04 second:  1.349e-03 infty:  1.950e-02
+Divergence time: 0.81875 first:  7.909e-04 second:  1.357e-03 infty:  2.140e-02
+Divergence time: 0.825 first:  7.827e-04 second:  1.330e-03 infty:  2.282e-02
+Divergence time: 0.83125 first:  7.821e-04 second:  1.335e-03 infty:  2.241e-02
+Divergence time: 0.8375 first:  7.777e-04 second:  1.334e-03 infty:  2.260e-02
+Divergence time: 0.84375 first:  7.728e-04 second:  1.315e-03 infty:  2.264e-02
+Divergence time: 0.85 first:  7.724e-04 second:  1.301e-03 infty:  1.967e-02
+Divergence time: 0.85625 first:  7.760e-04 second:  1.312e-03 infty:  1.962e-02
+Divergence time: 0.8625 first:  7.722e-04 second:  1.290e-03 infty:  1.609e-02
+Divergence time: 0.86875 first:  7.689e-04 second:  1.273e-03 infty:  1.535e-02
+Divergence time: 0.875 first:  7.639e-04 second:  1.251e-03 infty:  1.435e-02
+Divergence time: 0.88125 first:  7.682e-04 second:  1.279e-03 infty:  1.602e-02
+Divergence time: 0.8875 first:  7.640e-04 second:  1.263e-03 infty:  1.420e-02
+Divergence time: 0.89375 first:  7.616e-04 second:  1.243e-03 infty:  1.304e-02
+Divergence time: 0.9 first:  7.555e-04 second:  1.225e-03 infty:  1.457e-02
+Divergence time: 0.90625 first:  7.530e-04 second:  1.215e-03 infty:  1.300e-02
+Divergence time: 0.9125 first:  7.539e-04 second:  1.221e-03 infty:  1.339e-02
+Divergence time: 0.91875 first:  7.538e-04 second:  1.229e-03 infty:  1.572e-02
+Divergence time: 0.925 first:  7.532e-04 second:  1.221e-03 infty:  1.368e-02
+Divergence time: 0.93125 first:  7.516e-04 second:  1.214e-03 infty:  1.518e-02
+Divergence time: 0.9375 first:  7.504e-04 second:  1.208e-03 infty:  1.356e-02
+Divergence time: 0.94375 first:  7.535e-04 second:  1.227e-03 infty:  1.519e-02
+Divergence time: 0.95 first:  7.527e-04 second:  1.225e-03 infty:  1.530e-02
+Divergence time: 0.95625 first:  7.560e-04 second:  1.237e-03 infty:  1.582e-02
+Divergence time: 0.9625 first:  7.536e-04 second:  1.225e-03 infty:  1.437e-02
+Divergence time: 0.96875 first:  7.564e-04 second:  1.236e-03 infty:  1.600e-02
+Divergence time: 0.975 first:  7.567e-04 second:  1.240e-03 infty:  1.449e-02
+Divergence time: 0.98125 first:  7.586e-04 second:  1.254e-03 infty:  1.567e-02
+Divergence time: 0.9875 first:  7.570e-04 second:  1.241e-03 infty:  1.440e-02
+Divergence time: 0.99375 first:  7.536e-04 second:  1.223e-03 infty:  1.410e-02
+Divergence time: 1 first:  7.535e-04 second:  1.216e-03 infty:  1.277e-02
+Divergence time: 1.00625 first:  7.577e-04 second:  1.243e-03 infty:  1.619e-02
+Divergence time: 1.0125 first:  7.605e-04 second:  1.254e-03 infty:  1.648e-02
+Divergence time: 1.01875 first:  7.622e-04 second:  1.262e-03 infty:  1.609e-02
+Divergence time: 1.025 first:  7.573e-04 second:  1.233e-03 infty:  1.413e-02
+Divergence time: 1.03125 first:  7.551e-04 second:  1.219e-03 infty:  1.278e-02
+Divergence time: 1.0375 first:  7.525e-04 second:  1.208e-03 infty:  1.285e-02
+Divergence time: 1.04375 first:  7.634e-04 second:  1.276e-03 infty:  1.627e-02
+Divergence time: 1.05 first:  7.631e-04 second:  1.268e-03 infty:  1.547e-02
+Divergence time: 1.05625 first:  7.611e-04 second:  1.245e-03 infty:  1.420e-02
+Divergence time: 1.0625 first:  7.570e-04 second:  1.218e-03 infty:  1.297e-02
+Divergence time: 1.06875 first:  7.560e-04 second:  1.218e-03 infty:  1.568e-02
+Divergence time: 1.075 first:  7.564e-04 second:  1.221e-03 infty:  1.301e-02
+Divergence time: 1.08125 first:  7.667e-04 second:  1.281e-03 infty:  1.610e-02
+Divergence time: 1.0875 first:  7.647e-04 second:  1.271e-03 infty:  1.629e-02
+Divergence time: 1.09375 first:  7.627e-04 second:  1.248e-03 infty:  1.423e-02
+Divergence time: 1.1 first:  7.581e-04 second:  1.218e-03 infty:  1.309e-02
+Divergence time: 1.10625 first:  7.560e-04 second:  1.209e-03 infty:  1.328e-02
+Divergence time: 1.1125 first:  7.640e-04 second:  1.260e-03 infty:  1.629e-02
+Divergence time: 1.11875 first:  7.674e-04 second:  1.289e-03 infty:  1.545e-02
+Divergence time: 1.125 first:  7.644e-04 second:  1.259e-03 infty:  1.415e-02
+Divergence time: 1.13125 first:  7.578e-04 second:  1.217e-03 infty:  1.339e-02
+Divergence time: 1.1375 first:  7.571e-04 second:  1.216e-03 infty:  1.352e-02
+Divergence time: 1.14375 first:  7.624e-04 second:  1.244e-03 infty:  1.332e-02
+Divergence time: 1.15 first:  7.672e-04 second:  1.275e-03 infty:  1.631e-02
+Divergence time: 1.15625 first:  7.644e-04 second:  1.265e-03 infty:  1.425e-02
+Divergence time: 1.1625 first:  7.629e-04 second:  1.248e-03 infty:  1.457e-02
+Divergence time: 1.16875 first:  7.606e-04 second:  1.230e-03 infty:  1.364e-02
+Divergence time: 1.175 first:  7.607e-04 second:  1.231e-03 infty:  1.386e-02
+Divergence time: 1.18125 first:  7.645e-04 second:  1.246e-03 infty:  1.323e-02
+Divergence time: 1.1875 first:  7.680e-04 second:  1.283e-03 infty:  1.622e-02
+Divergence time: 1.19375 first:  7.633e-04 second:  1.257e-03 infty:  1.393e-02
+Divergence time: 1.2 first:  7.625e-04 second:  1.241e-03 infty:  1.347e-02
+Divergence time: 1.20625 first:  7.632e-04 second:  1.239e-03 infty:  1.357e-02
+Divergence time: 1.2125 first:  7.636e-04 second:  1.242e-03 infty:  1.416e-02
+Divergence time: 1.21875 first:  7.643e-04 second:  1.245e-03 infty:  1.614e-02
+Divergence time: 1.225 first:  7.685e-04 second:  1.281e-03 infty:  1.566e-02
+Divergence time: 1.23125 first:  7.634e-04 second:  1.257e-03 infty:  1.394e-02
+Divergence time: 1.2375 first:  7.641e-04 second:  1.253e-03 infty:  1.490e-02
+Divergence time: 1.24375 first:  7.633e-04 second:  1.243e-03 infty:  1.487e-02
+Divergence time: 1.25 first:  7.635e-04 second:  1.249e-03 infty:  2.020e-02
+Divergence time: 1.25625 first:  7.658e-04 second:  1.269e-03 infty:  1.660e-02
+Divergence time: 1.2625 first:  7.657e-04 second:  1.269e-03 infty:  1.618e-02
+Divergence time: 1.26875 first:  7.650e-04 second:  1.261e-03 infty:  1.627e-02
+Divergence time: 1.275 first:  7.628e-04 second:  1.254e-03 infty:  1.560e-02
+Divergence time: 1.28125 first:  7.609e-04 second:  1.238e-03 infty:  1.557e-02
+Divergence time: 1.2875 first:  7.636e-04 second:  1.260e-03 infty:  2.089e-02
+Divergence time: 1.29375 first:  7.644e-04 second:  1.272e-03 infty:  1.683e-02
+Divergence time: 1.3 first:  7.618e-04 second:  1.266e-03 infty:  1.971e-02
+Divergence time: 1.30625 first:  7.594e-04 second:  1.248e-03 infty:  1.676e-02
+Divergence time: 1.3125 first:  7.597e-04 second:  1.258e-03 infty:  2.055e-02
+Divergence time: 1.31875 first:  7.618e-04 second:  1.261e-03 infty:  2.154e-02
+Divergence time: 1.325 first:  7.604e-04 second:  1.266e-03 infty:  2.337e-02
+Divergence time: 1.33125 first:  7.603e-04 second:  1.255e-03 infty:  1.642e-02
+Divergence time: 1.3375 first:  7.637e-04 second:  1.270e-03 infty:  2.027e-02
+Divergence time: 1.34375 first:  7.670e-04 second:  1.296e-03 infty:  2.191e-02
+Divergence time: 1.35 first:  7.641e-04 second:  1.288e-03 infty:  2.622e-02
+Divergence time: 1.35625 first:  7.652e-04 second:  1.292e-03 infty:  2.233e-02
+Divergence time: 1.3625 first:  7.613e-04 second:  1.260e-03 infty:  1.851e-02
+Divergence time: 1.36875 first:  7.620e-04 second:  1.254e-03 infty:  1.650e-02
+Divergence time: 1.375 first:  7.686e-04 second:  1.298e-03 infty:  2.354e-02
+Divergence time: 1.38125 first:  7.696e-04 second:  1.307e-03 infty:  2.317e-02
+Divergence time: 1.3875 first:  7.702e-04 second:  1.318e-03 infty:  2.397e-02
+Divergence time: 1.39375 first:  7.668e-04 second:  1.300e-03 infty:  2.472e-02
+Divergence time: 1.4 first:  7.599e-04 second:  1.249e-03 infty:  2.110e-02
+Divergence time: 1.40625 first:  7.621e-04 second:  1.257e-03 infty:  2.054e-02
+Divergence time: 1.4125 first:  7.713e-04 second:  1.319e-03 infty:  2.747e-02
+Divergence time: 1.41875 first:  7.707e-04 second:  1.304e-03 infty:  2.318e-02
+Divergence time: 1.425 first:  7.727e-04 second:  1.318e-03 infty:  2.381e-02
+Divergence time: 1.43125 first:  7.649e-04 second:  1.298e-03 infty:  2.465e-02
+Divergence time: 1.4375 first:  7.630e-04 second:  1.278e-03 infty:  2.184e-02
+Divergence time: 1.44375 first:  7.628e-04 second:  1.269e-03 infty:  2.333e-02
+Divergence time: 1.45 first:  7.697e-04 second:  1.308e-03 infty:  2.417e-02
+Divergence time: 1.45625 first:  7.682e-04 second:  1.289e-03 infty:  2.310e-02
+Divergence time: 1.4625 first:  7.769e-04 second:  1.319e-03 infty:  2.403e-02
+Divergence time: 1.46875 first:  7.726e-04 second:  1.299e-03 infty:  2.381e-02
+Divergence time: 1.475 first:  7.673e-04 second:  1.272e-03 infty:  2.158e-02
+Divergence time: 1.48125 first:  7.746e-04 second:  1.316e-03 infty:  2.463e-02
+Divergence time: 1.4875 first:  7.710e-04 second:  1.298e-03 infty:  2.259e-02
+Divergence time: 1.49375 first:  7.695e-04 second:  1.289e-03 infty:  2.313e-02
+Divergence time: 1.5 first:  7.739e-04 second:  1.318e-03 infty:  2.116e-02
+Divergence time: 1.50625 first:  7.703e-04 second:  1.288e-03 infty:  2.391e-02
+Divergence time: 1.5125 first:  7.697e-04 second:  1.287e-03 infty:  2.117e-02
+Divergence time: 1.51875 first:  7.687e-04 second:  1.289e-03 infty:  2.542e-02
+Divergence time: 1.525 first:  7.724e-04 second:  1.291e-03 infty:  2.136e-02
+Divergence time: 1.53125 first:  7.789e-04 second:  1.320e-03 infty:  2.122e-02
+Divergence time: 1.5375 first:  7.817e-04 second:  1.331e-03 infty:  2.426e-02
+Divergence time: 1.54375 first:  7.844e-04 second:  1.336e-03 infty:  2.344e-02
+Divergence time: 1.55 first:  7.823e-04 second:  1.332e-03 infty:  2.176e-02
+Divergence time: 1.55625 first:  7.832e-04 second:  1.346e-03 infty:  2.489e-02
+Divergence time: 1.5625 first:  7.857e-04 second:  1.344e-03 infty:  2.555e-02
+Divergence time: 1.56875 first:  7.817e-04 second:  1.312e-03 infty:  2.063e-02
+Divergence time: 1.575 first:  7.768e-04 second:  1.290e-03 infty:  2.034e-02
+Divergence time: 1.58125 first:  7.754e-04 second:  1.293e-03 infty:  2.391e-02
+Divergence time: 1.5875 first:  7.711e-04 second:  1.290e-03 infty:  2.250e-02
+Divergence time: 1.59375 first:  7.688e-04 second:  1.285e-03 infty:  2.404e-02
+Divergence time: 1.6 first:  7.702e-04 second:  1.297e-03 infty:  2.495e-02
+Divergence time: 1.60625 first:  7.821e-04 second:  1.331e-03 infty:  2.085e-02
+Divergence time: 1.6125 first:  7.884e-04 second:  1.333e-03 infty:  1.750e-02
+Divergence time: 1.61875 first:  7.912e-04 second:  1.329e-03 infty:  1.653e-02
+Divergence time: 1.625 first:  7.891e-04 second:  1.327e-03 infty:  2.178e-02
+Divergence time: 1.63125 first:  7.876e-04 second:  1.336e-03 infty:  2.339e-02
+Divergence time: 1.6375 first:  7.895e-04 second:  1.354e-03 infty:  2.405e-02
+Divergence time: 1.64375 first:  7.894e-04 second:  1.351e-03 infty:  2.498e-02
+Divergence time: 1.65 first:  7.959e-04 second:  1.353e-03 infty:  2.159e-02
+Divergence time: 1.65625 first:  7.997e-04 second:  1.368e-03 infty:  2.333e-02
+Divergence time: 1.6625 first:  8.007e-04 second:  1.373e-03 infty:  2.072e-02
+Divergence time: 1.66875 first:  8.053e-04 second:  1.368e-03 infty:  1.937e-02
+Divergence time: 1.675 first:  8.022e-04 second:  1.374e-03 infty:  2.369e-02
+Divergence time: 1.68125 first:  7.992e-04 second:  1.377e-03 infty:  2.386e-02
+Divergence time: 1.6875 first:  8.016e-04 second:  1.388e-03 infty:  2.338e-02
+Divergence time: 1.69375 first:  8.138e-04 second:  1.416e-03 infty:  2.121e-02
+Divergence time: 1.7 first:  8.167e-04 second:  1.420e-03 infty:  2.302e-02
+Divergence time: 1.70625 first:  8.188e-04 second:  1.412e-03 infty:  2.144e-02
+Divergence time: 1.7125 first:  8.165e-04 second:  1.405e-03 infty:  2.009e-02
+Divergence time: 1.71875 first:  8.121e-04 second:  1.397e-03 infty:  2.222e-02
+Divergence time: 1.725 first:  8.090e-04 second:  1.399e-03 infty:  2.222e-02
+Divergence time: 1.73125 first:  8.040e-04 second:  1.393e-03 infty:  2.345e-02
+Divergence time: 1.7375 first:  8.037e-04 second:  1.382e-03 infty:  2.122e-02
+Divergence time: 1.74375 first:  8.059e-04 second:  1.393e-03 infty:  2.253e-02
+Divergence time: 1.75 first:  8.101e-04 second:  1.401e-03 infty:  2.216e-02
+Divergence time: 1.75625 first:  8.104e-04 second:  1.400e-03 infty:  2.163e-02
+Divergence time: 1.7625 first:  8.126e-04 second:  1.398e-03 infty:  1.994e-02
+Divergence time: 1.76875 first:  8.107e-04 second:  1.396e-03 infty:  2.235e-02
+Divergence time: 1.775 first:  8.059e-04 second:  1.388e-03 infty:  2.327e-02
+Divergence time: 1.78125 first:  8.079e-04 second:  1.393e-03 infty:  2.263e-02
+Divergence time: 1.7875 first:  8.093e-04 second:  1.396e-03 infty:  2.026e-02
+Divergence time: 1.79375 first:  8.109e-04 second:  1.400e-03 infty:  2.283e-02
+Divergence time: 1.8 first:  8.076e-04 second:  1.407e-03 infty:  2.147e-02
+Divergence time: 1.80625 first:  8.069e-04 second:  1.395e-03 infty:  2.251e-02
+Divergence time: 1.8125 first:  8.119e-04 second:  1.403e-03 infty:  2.020e-02
+Divergence time: 1.81875 first:  8.163e-04 second:  1.411e-03 infty:  2.316e-02
+Divergence time: 1.825 first:  8.162e-04 second:  1.416e-03 infty:  2.074e-02
+Divergence time: 1.83125 first:  8.145e-04 second:  1.411e-03 infty:  2.388e-02
+Divergence time: 1.8375 first:  8.117e-04 second:  1.405e-03 infty:  2.140e-02
+Divergence time: 1.84375 first:  8.097e-04 second:  1.411e-03 infty:  2.277e-02
+Divergence time: 1.85 first:  8.134e-04 second:  1.407e-03 infty:  1.939e-02
+Divergence time: 1.85625 first:  8.129e-04 second:  1.398e-03 infty:  2.256e-02
+Divergence time: 1.8625 first:  8.086e-04 second:  1.399e-03 infty:  2.261e-02
+Divergence time: 1.86875 first:  8.099e-04 second:  1.396e-03 infty:  2.034e-02
+Divergence time: 1.875 first:  8.073e-04 second:  1.393e-03 infty:  2.232e-02
+Divergence time: 1.88125 first:  8.057e-04 second:  1.407e-03 infty:  2.348e-02
+Divergence time: 1.8875 first:  8.056e-04 second:  1.412e-03 infty:  2.183e-02
+Divergence time: 1.89375 first:  8.027e-04 second:  1.405e-03 infty:  2.475e-02
+Divergence time: 1.9 first:  8.017e-04 second:  1.394e-03 infty:  2.143e-02
+Divergence time: 1.90625 first:  7.992e-04 second:  1.380e-03 infty:  2.231e-02
+Divergence time: 1.9125 first:  8.031e-04 second:  1.384e-03 infty:  2.381e-02
+Divergence time: 1.91875 first:  8.045e-04 second:  1.382e-03 infty:  2.111e-02
+Divergence time: 1.925 first:  8.045e-04 second:  1.398e-03 infty:  2.126e-02
+Divergence time: 1.93125 first:  8.043e-04 second:  1.402e-03 infty:  2.258e-02
+Divergence time: 1.9375 first:  8.020e-04 second:  1.380e-03 infty:  2.197e-02
+Divergence time: 1.94375 first:  8.031e-04 second:  1.376e-03 infty:  1.949e-02
+Divergence time: 1.95 first:  8.050e-04 second:  1.391e-03 infty:  2.114e-02
+Divergence time: 1.95625 first:  8.004e-04 second:  1.383e-03 infty:  2.201e-02
+Divergence time: 1.9625 first:  7.979e-04 second:  1.365e-03 infty:  2.287e-02
+Divergence time: 1.96875 first:  7.904e-04 second:  1.346e-03 infty:  2.201e-02
+Divergence time: 1.975 first:  7.910e-04 second:  1.362e-03 infty:  2.340e-02
+Divergence time: 1.98125 first:  7.889e-04 second:  1.361e-03 infty:  2.250e-02
+Divergence time: 1.9875 first:  7.872e-04 second:  1.351e-03 infty:  2.457e-02
+Divergence time: 1.99375 first:  7.881e-04 second:  1.346e-03 infty:  2.024e-02
+Divergence time: 2 first:  7.812e-04 second:  1.318e-03 infty:  2.282e-02
diff --git a/test/reynolds/reynolds.ref b/test/reynolds/reynolds.ref
index a730684..a4be9cb 100644
--- a/test/reynolds/reynolds.ref
+++ b/test/reynolds/reynolds.ref
@@ -1,3 +1,3 @@
-5 9981.15
+5 9981.61
 6 79608.4
-7 637877
+7 637619
diff --git a/test/reynolds/reynolds.sh b/test/reynolds/reynolds.sh
index 7ba4a92..1f95632 100644
--- a/test/reynolds/reynolds.sh
+++ b/test/reynolds/reynolds.sh
@@ -1,4 +1,4 @@
-if ! $donotrun; then
+if test x$donotrun != xtrue; then
     rm -f reynolds
 
     for level in 5 6 7; do
diff --git a/test/shear/curvature/curvature.gfs b/test/shear/curvature/curvature.gfs
index 3166e1b..de04280 100644
--- a/test/shear/curvature/curvature.gfs
+++ b/test/shear/curvature/curvature.gfs
@@ -86,6 +86,6 @@
 
     OutputPPM { start = end } { convert ppm:- dt-5.eps } { v = DT }
 
-    OutputScalarSum { istep = 1 } { awk '{ print $3,$5-8.743441e-01 }' > t } { v = T }
+    OutputScalarSum { istep = 1 } { awk '{ print $3,$5-0.8743665 }' > t } { v = T }
 }
 GfsBox {}
diff --git a/test/shear/curvature/norms.ref b/test/shear/curvature/norms.ref
index 33cfacd..5a0d8f8 100644
--- a/test/shear/curvature/norms.ref
+++ b/test/shear/curvature/norms.ref
@@ -1 +1 @@
-T time: 5 first:  9.417e-04 second:  1.027e-02 infty:  4.270e-01 bias: -4.640e-05
+T time: 5 first:  1.021e-03 second:  1.143e-02 infty:  6.401e-01 bias: -4.271e-05
diff --git a/test/shear/shear.sh b/test/shear/shear.sh
index 9504cfd..cbfd8a5 100644
--- a/test/shear/shear.sh
+++ b/test/shear/shear.sh
@@ -1,4 +1,4 @@
-if ! $donotrun; then
+if test x$donotrun != xtrue; then
     if gerris2D $1; then :
     else
 	exit 1
diff --git a/test/source/error.gfv b/test/source/error.gfv
new file mode 100644
index 0000000..033e2e4
--- /dev/null
+++ b/test/source/error.gfv
@@ -0,0 +1,28 @@
+# GfsView 2D
+View {
+  tx = 0 ty = 0
+  sx = 1 sy = 1 sz = 1
+  q0 = 0 q1 = 0 q2 = 0 q3 = 1
+  fov = 2.72829
+  r = 0.3 g = 0.4 b = 0.6
+  res = 1
+  lc = 0.001
+  reactivity = 0.1
+}
+Linear {
+  r = 1 g = 1 b = 1
+  shading = Constant
+  maxlevel = -1
+  font_size = 1
+  raster_font = 1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} E {
+  amin = 0 min = -0.0005
+  amax = 0 max = 0.0005
+  cmap = Jet
+} 0 {
+  reversed = 0
+  use_scalar = 1
+}
diff --git a/test/source/error.ref b/test/source/error.ref
new file mode 100644
index 0000000..a87f003
--- /dev/null
+++ b/test/source/error.ref
@@ -0,0 +1,5 @@
+7 5.801e-02 9.586e-02 1.809e-01
+8 1.208e-02 2.953e-02 7.790e-02
+9 2.826e-03 1.090e-02 4.512e-02
+10 7.770e-04 3.813e-03 2.320e-02
+11 4.808e-04 1.441e-03 1.249e-02
diff --git a/test/source/source.gfs b/test/source/source.gfs
new file mode 100644
index 0000000..9934fd3
--- /dev/null
+++ b/test/source/source.gfs
@@ -0,0 +1,81 @@
+# Title: Flow created by a cylindrical volume source
+#
+# Description:
+#
+# The flow created by a cylindrical volume source is compared
+# against the analytical solution.
+#
+# $$
+# u_r = { s r \over 2 } \; \; if \; \;  r \le R_c
+# $$
+# $$
+# u_r = { s R_c^2 \over 2 r} \; \; if \; \;  r > R_c
+# $$
+#
+# \begin{figure}[htbp]
+# \caption{\label{Velocity Norm} Velocity field.}
+# \begin{center}
+# \includegraphics[width=0.8\hsize]{velfield.eps}
+# \end{center}
+# \end{figure}
+#
+# \begin{figure}[htbp]
+# \caption{\label{Error Norms} Error Norms.}
+# \begin{center}
+# \includegraphics[width=0.8\hsize]{error.eps}
+# \end{center}
+# \end{figure}
+#
+# \begin{figure}[htbp]
+# \caption{\label{Relative Local Error} Local error at level 11. Color scale [-5e-4:5e-4].}
+# \begin{center}
+# \includegraphics[width=0.8\hsize]{localerror.eps}
+# \end{center}
+# \end{figure}
+#
+# Author: Daniel Fuster
+# Command: sh source.sh source.gfs
+# Version: 101217
+# Required files: source.sh source.gfv error.gfv error.ref
+# Generated files: velfield.eps error.eps localerror.eps
+#
+1 0 GfsSimulation GfsBox GfsGEdge { } {
+
+    Global {
+        #define R0 (0.05)
+        double sol (double x, double y) {
+            double r = sqrt(x*x+y*y);
+            return r >= R0 ? R0*R0*0.5/r : r*0.5;
+        }
+    }
+
+
+    Time { iend = 10 }
+
+    Refine (LEVEL - 4*pow((x*x+y*y)/0.25, 0.5))
+
+    Variable F
+    InitFraction F (R0*R0 - x*x - y*y)
+    Source P F
+    PhysicalParams { L = 2 }
+
+    OutputTime { istep = 1 } stderr
+
+    OutputErrorNorm { start = end } { awk '{ print LEVEL,$5,$7,$9 }' > error-LEVEL } { 
+	v = Velocity 
+    } {
+        s = sol(x,y)
+        v = E
+        w = (x*x + y*y < 25.*R0*R0)
+        relative = 1
+    }
+    
+    OutputSimulation { start = end } end-LEVEL.gfs
+} 
+GfsBox {
+    left  =  GfsBoundaryOutflow
+    right  = GfsBoundaryOutflow
+    top    = GfsBoundaryOutflow
+    bottom = GfsBoundaryOutflow
+}
+
diff --git a/test/source/source.gfv b/test/source/source.gfv
new file mode 100644
index 0000000..9ae73bd
--- /dev/null
+++ b/test/source/source.gfv
@@ -0,0 +1,45 @@
+# GfsView 2D
+View {
+  tx = 0 ty = 0
+  sx = 1 sy = 1 sz = 1
+  q0 = 0 q1 = 0 q2 = 0 q3 = 1
+  fov = 2.90339
+  r = 0.3 g = 0.4 b = 0.6
+  res = 1
+  lc = 0.001
+  reactivity = 0.1
+}
+Vectors {
+  r = 0 g = 0 b = 0
+  shading = Constant
+  maxlevel = 9
+  font_size = 1
+  raster_font = 1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} P {
+  amin = 1
+  amax = 1
+  cmap = Jet
+} U V {
+  scale = 0.2
+  use_scalar = 0
+}
+Linear {
+  r = 1 g = 1 b = 1
+  shading = Constant
+  maxlevel = -1
+  font_size = 1
+  raster_font = 1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} Velocity2 {
+  amin = 1
+  amax = 1
+  cmap = Jet
+} 0 {
+  reversed = 0
+  use_scalar = 1
+}
diff --git a/test/source/source.sh b/test/source/source.sh
new file mode 100644
index 0000000..277d38f
--- /dev/null
+++ b/test/source/source.sh
@@ -0,0 +1,62 @@
+levels="7 8 9 10 11"
+
+if test x$donotrun != xtrue; then
+    for i in $levels; do
+	if gerris2D -DLEVEL=$i source.gfs 2> log-$i; then :
+	else
+	    exit 1
+	fi
+    done
+fi
+
+rm -rf error
+for i in $levels; do
+    tail -n 1 error-$i >> error
+done
+
+if gnuplot <<EOF ; then :
+set term postscript eps color enhanced lw 3 solid 20
+set output 'error.eps'
+set logscale
+set xlabel 'Spatial resolution'
+set ylabel 'Relative error norms'
+set xtics 128,2,2048
+set key spacing 1.5 bottom left
+ftitle(a,b) = sprintf("%.0f/x^{%4.2f}", exp(a), -b)
+f2(x)=a2+b2*x
+fit [5:]f2(x) 'error' u (log(2**\$1)):(log(\$3)) via a2,b2
+fm(x)=am+bm*x
+fit [5:]fm(x) 'error' u (log(2**\$1)):(log(\$4)) via am,bm
+plot 'error' u (2**\$1):3 t 'L2' w p ps 2, exp(f2(log(x))) t ftitle(a2,b2), \
+     'error' u (2**\$1):4 t 'Lmax' w p ps 2, exp(fm(log(x))) t ftitle(am,bm)
+EOF
+else
+: #    exit 1
+fi
+
+if echo "Save stdout { width = 800 height = 800 }" | \
+    gfsview-batch2D end-11.gfs source.gfv | \
+    convert -colors 256 ppm:- velfield.eps; then :
+else
+    exit 1
+fi
+
+if echo "Save stdout { width = 800 height = 800 }" | \
+    gfsview-batch2D end-11.gfs error.gfv | \
+    convert -colors 256 ppm:- localerror.eps; then :
+else
+    exit 1
+fi
+
+if python <<EOF ; then :
+from check import *
+from sys import *
+if (Curve('error',1,4) - Curve('error.ref',1,4)).max() > 1e-4 or\
+   (Curve('error',1,3) - Curve('error.ref',1,3)).max() > 1e-4:
+    print (Curve('error',1,4) - Curve('error.ref',1,4)).max()
+    print (Curve('error',1,3) - Curve('error.ref',1,3)).max()
+    exit(1)
+EOF
+else
+   exit 1
+fi
diff --git a/test/spurious/axi/convergence.ref b/test/spurious/axi/convergence.ref
index 80168d7..8b02e86 100644
--- a/test/spurious/axi/convergence.ref
+++ b/test/spurious/axi/convergence.ref
@@ -1,5 +1,5 @@
-6.4 5.024e-03 6.003e-02
-12.8 2.638e-03 3.845e-02
+6.4 6.745e-03 7.079e-02
+12.8 2.641e-03 3.854e-02
 25.6 9.115e-04 1.646e-02
-51.2 2.468e-04 7.265e-03
-102.4 9.238e-05 3.723e-03
+51.2 2.468e-04 7.262e-03
+102.4 9.157e-05 3.702e-03
diff --git a/test/spurious/axi/kconvergence.ref b/test/spurious/axi/kconvergence.ref
index 3fdf3b7..5919635 100644
--- a/test/spurious/axi/kconvergence.ref
+++ b/test/spurious/axi/kconvergence.ref
@@ -1,5 +1,5 @@
-6.4 0.010728 0.04292
-12.8 0.0014968 0.00882
+6.4 0.010036 0.04012
+12.8 0.0014992 0.008832
 25.6 0.00033816 0.0029452
 51.2 4.72e-05 0.0005896
-102.4 9.3e-06 0.00016372
+102.4 9.224e-06 0.0001624
diff --git a/test/spurious/convergence.ref b/test/spurious/convergence.ref
index ec86d3e..c04957c 100644
--- a/test/spurious/convergence.ref
+++ b/test/spurious/convergence.ref
@@ -1,5 +1,5 @@
 6.4 3.527e-02 2.461e-01
-12.8 3.735e-04 4.232e-03
-25.6 9.049e-05 1.263e-03
-51.2 2.475e-05 4.603e-04
-102.4 8.812e-06 2.312e-04
+12.8 3.736e-04 4.233e-03
+25.6 9.063e-05 1.266e-03
+51.2 2.491e-05 4.746e-04
+102.4 8.560e-06 2.158e-04
diff --git a/test/spurious/kconvergence.ref b/test/spurious/kconvergence.ref
index fe49a7b..a410514 100644
--- a/test/spurious/kconvergence.ref
+++ b/test/spurious/kconvergence.ref
@@ -1,5 +1,5 @@
 6.4 0.05632 0.15016
-12.8 0.002922 0.012968
-25.6 0.00049 0.0030176
-51.2 8.136e-05 0.0007292
-102.4 1.4608e-05 0.00018448
+12.8 0.0029224 0.012968
+25.6 0.0004904 0.0030192
+51.2 8.156e-05 0.0007308
+102.4 1.4616e-05 0.00018444
diff --git a/test/spurious/spurious.gfs b/test/spurious/spurious.gfs
index 7da7160..9615532 100644
--- a/test/spurious/spurious.gfs
+++ b/test/spurious/spurious.gfs
@@ -67,7 +67,7 @@
 # \end{figure}
 #
 # Author: St\'ephane Popinet
-# Command: sh spurious.sh spurious.gfs 1e-11
+# Command: sh spurious.sh spurious.gfs 4e-10
 # Version: 1.1.2
 # Required files: spurious.sh convergence.ref kconvergence.ref
 # Generated files: laplace.eps curvature.eps convergence.eps kconvergence.eps
@@ -88,8 +88,7 @@ Define MU sqrt(0.8/LAPLACE)
   VariableTracerVOF T
   VariableCurvature K T
   SourceTension T 1 K
-  SourceDiffusion U MU
-  SourceDiffusion V MU
+  SourceViscosity MU
 
   InitFraction T CIRCLE
   Init {} { Tref = T }
diff --git a/test/spurious/spurious.sh b/test/spurious/spurious.sh
index aa16417..47ffa27 100644
--- a/test/spurious/spurious.sh
+++ b/test/spurious/spurious.sh
@@ -1,4 +1,4 @@
-if ! $donotrun; then
+if test x$donotrun != xtrue; then
     for La in 120 1200 12000; do
 	tmax=`echo $La | awk '{print 0.8*0.8/sqrt(0.8/$1)}'`
 	if sed "s/end = TMAX/iend = 1/g" < $1 | gerris2D -DLEVEL=5 -DLAPLACE=$La -DDT=0 - |\
@@ -64,7 +64,7 @@ else
 fi
 
 for f in La-120-5 La-1200-5 La-12000-5; do
-    if awk -v tolerance=$2 '{ last = $2; }END{if (last > tolerance) exit (1);}' < $f; then :
+    if tail -n 1 < $f | awk -v tolerance=$2 '{if ($2 > tolerance) exit (1);}'; then :
     else
 	exit 1
     fi
diff --git a/test/strouhal/strouhal.sh b/test/strouhal/strouhal.sh
index a1b8a15..b08f553 100644
--- a/test/strouhal/strouhal.sh
+++ b/test/strouhal/strouhal.sh
@@ -1,4 +1,4 @@
-if ! $donotrun; then 
+if test x$donotrun != xtrue; then 
     shapes ellipse > cylinder.gts
     if gerris2D strouhal.gfs > strouhal.res; then :
     else
diff --git a/test/summary.sh b/test/summary.sh
new file mode 100755
index 0000000..3d98318
--- /dev/null
+++ b/test/summary.sh
@@ -0,0 +1,56 @@
+endstamp=`date +%s`
+end=`date -d@$endstamp +"%a %d %b %H:%M:%S"`
+
+dirs="$TESTS"
+
+status=`for d in $dirs; do find $d -name status; done`
+
+fail=`grep FAIL $status | wc -l`
+pass=`grep PASS $status | wc -l`
+n=`echo $status | wc -w`
+
+logs=""
+for d in $dirs; do
+    logs=$d.sh.log
+done
+
+earliest=`ls -tr *.log | head -n1`
+startstamp=`stat -c %Y $earliest`
+start=`date -d@$startstamp +"%a %d %b %H:%M:%S"`
+
+system=`uname -o -n -m | sed 's/_/\\\\_/'`
+path=`which gerris2D`
+version=`gerris2D -V 2>&1 | head -1 | cut -d' ' -f6-`
+
+if test x$fail = x0; then
+    status="{\color{OliveGreen}PASS ($pass)}"
+else
+    status="{\color{Red}FAIL ($fail/$n)}"
+fi
+
+elapsed=`awk "BEGIN{
+  elapsed = $endstamp - $startstamp
+  days = int(elapsed/86400)
+  elapsed -= days*86400
+  hours = int(elapsed/3600)
+  elapsed -= hours*3600
+  mins = int(elapsed/60)
+  elapsed -= mins*60
+  if (days > 0)
+    printf(\"%02d:\", days);
+  if (hours > 0)
+    printf(\"%02d:\", hours);
+  printf(\"%02d:%02d\", mins, elapsed);
+}"`
+
+cat <<EOF > summary.tex
+\begin{tabular}{ll}
+{\bf Version} & $version \\\\
+{\bf Path} & $path \\\\
+{\bf System} & $system \\\\
+{\bf Start} & $start \\\\
+{\bf Finish} & $end \\\\
+{\bf Elapsed} & $elapsed \\\\
+{\bf Status} & $status
+\end{tabular}
+EOF
diff --git a/test/template.tex b/test/template.tex
index db4c5ee..b6eac31 100644
--- a/test/template.tex
+++ b/test/template.tex
@@ -2,6 +2,7 @@
 \usepackage{hevea}
 \usepackage[usenames]{color}
 \usepackage{graphicx}
+\usepackage{gfs}
 
 \oddsidemargin=4mm
 \evensidemargin=-1mm
@@ -9,8 +10,6 @@
 \textwidth=15.42cm
 \textheight=23.2cm
 
-\newcommand{\htmladdnormallinkfoot}[2]{\footahref{#2}{#1}}
-\newcommand{\htmladdnormallink}[2]{\ahref{#2}{#1}}
 \renewcommand{\cuttingunit}{subsection}
 
 \title{Gerris test suite}
@@ -19,7 +18,7 @@
 
 \mbox{}\vspace{1cm}
 \begin{center}
-{\Huge Gerris Tests}\\
+{\huge Gerris Tests}\\
 \vspace{1cm}
 \input{summary.tex}
 \vspace{5mm}
@@ -40,17 +39,20 @@ branch only.
 
 \input{poisson/poisson.tex}
 \input{poisson/circle/circle.tex}
+\input{poisson/dirichlet/dirichlet.tex}
 \input{circle/circle.tex}
 \input{circle/star/star.tex}
 \input{circle/refined/refined.tex}
 \input{circle/thin/thin.tex}
 \input{dumbell/dumbell.tex}
 
-\section{Advection}
+\section{Advection and diffusion}
 
 \input{advection/advection.tex}
 \input{shear/shear.tex}
 \input{shear/curvature/curvature.tex}
+\input{diffusion/diffusion.tex}
+\input{conservation/conservation.tex}
 
 \section{Euler}
 
@@ -58,6 +60,7 @@ branch only.
 \input{reynolds/box/box.tex}
 \input{periodic/periodic.tex}
 \input{merging/merging.tex}
+\input{source/source.tex}
 
 \section{Axisymmetric}
 \input{axi/axi.tex}
@@ -69,11 +72,15 @@ branch only.
 
 \input{lid/lid.tex}
 \input{lid/explicit/explicit.tex}
+\input{lid/stretch/stretch.tex}
 \input{poiseuille/poiseuille.tex}
+\input{poiseuille/bagnold/bagnold.tex}
 \input{couette/couette.tex}
 \input{kinetic/kinetic.tex}
 \input{hydrostatic/hydrostatic.tex}
 \input{hydrostatic/quadratic/quadratic.tex}
+\input{coriolis/coriolis.tex}
+\input{lake/lake.tex}
 
 \section{Solid boundaries}
 
@@ -113,6 +120,19 @@ branch only.
 \input{lonlat/lonlat.tex}
 \input{lonlat/coriolis/coriolis.tex}
 \input{cosine/cosine.tex}
+\input{harmonic/harmonic.tex}
+\input{harmonic/lonlat/lonlat.tex}
+\input{gaussian/gaussian.tex}
+\input{gaussian/lonlat/lonlat.tex}
+
+\section{Electrohydrodynamics}
+
+\input{planar/planar.tex}
+\input{planar/solid/solid.tex}
+\input{bump/bump.tex}
+\input{cylinder/cylinder.tex}
+\input{cylinder/planar/planar.tex}
+\input{electro/electro.tex}
 
 \bibliographystyle{plain}
 \bibliography{tests}
diff --git a/test/test.py b/test/test.py
index 516ff7c..a2059ff 100644
--- a/test/test.py
+++ b/test/test.py
@@ -4,13 +4,8 @@ import os
 import os.path
 sys.path.append("../doc/examples")
 import gfs2tex
-from datetime import *
 
-env = "export PYTHONPATH=$PYTHONPATH:" + os.getcwd() + " && export donotrun=false &&"
-system = commands.getoutput('uname -o -n -m')
-path = commands.getoutput('which gerris2D')
-version = commands.getoutput("""gerris2D -V 2>&1 | head -1 | cut -d' ' -f6-""")
-starttime = datetime.now()
+env = "export PYTHONPATH=$PYTHONPATH:" + os.getcwd() + " &&"
 
 n = 0
 failed = 0
@@ -30,35 +25,6 @@ for start in sys.argv[1:]:
                 print >>open(test.path + "/status",'w'), "{\color{OliveGreen}PASS}:"
             n += 1
 
-endtime = datetime.now()
-e = endtime - starttime
-s = e.seconds
-h = int(s/3600)
-s -= h*3600
-m = int(s/60)
-s -= m*60
-
-summary = open('summary.tex','w')
-print >>summary, r'\begin{tabular}{ll}'
-print >>summary, r'{\bf Version} &', version, r'\\'
-print >>summary, r'{\bf Path} &', path, r'\\'
-print >>summary, r'{\bf System} &', system, r'\\'
-print >>summary, r'{\bf Start} &', starttime.strftime('%a %d %b %H:%M:%S'), r'\\'
-print >>summary, r'{\bf Finish} &', endtime.strftime('%a %d %b %H:%M:%S'), r'\\'
-elapsed = ""
-if e.days > 0:
-    elapsed += '%02d:' % e.days
-if h > 0:
-    elapsed += '%02d:' % h
-elapsed += '%02d:%02d' % (m,s)
-print >>summary, r'{\bf Elapsed} &', elapsed, r'\\'
-print >>summary, r'{\bf Status} &',
-if failed:
-    print >>summary, r'{\color{Red}FAIL (' + repr(failed) + '/' + repr(n) +')}'
-else:
-    print >>summary, r'{\color{OliveGreen}PASS (' + repr(n) + ')}'
-print >>summary, r'\end{tabular}'
-
 if failed:
     msg = repr(failed) + " of " + repr(n) + " tests failed"
 else:
diff --git a/test/tests.bib b/test/tests.bib
index f5bd5eb..f78ade6 100644
--- a/test/tests.bib
+++ b/test/tests.bib
@@ -9,8 +9,7 @@
   volume =	 18,
   number =	 5,
   pages =	 {1289-1309},
-  url =
-                  {http://seesar.lbl.gov/ccse/Publications/almgren/abcm.sisc/paper.ps.gz},
+  url =          {http://seesar.lbl.gov/ccse/Publications/almgren/abcm.sisc/paper.ps.gz},
   local_url =	 {almgren.ps.gz}
 }
 
@@ -24,11 +23,19 @@
   year =	 1998,
   volume =	 142,
   pages =	 {1-46},
-  url =
-                  {http://seesar.lbl.gov/ccse/Publications/almgren/abchw96/paper.ps.gz},
+  url =          {http://seesar.lbl.gov/ccse/Publications/almgren/abchw96/paper.ps.gz},
   local_url =	 {almgren1.ps.gz}
 }
 
+ at TechReport{arps,
+  author = 	 {K. K. Droegemeier},
+  title = 	 {{Advanced Regional Prediction System User guide (Version 4.0)}},
+  institution =  {University of Oklahoma},
+  year = 	 {2007},
+  note = 	 {Section 13.4},
+  url =          {http://www.caps.ou.edu/ARPS/download/code/pub/ARPS.docs/ARPS4DOC.PDF/arpsch13.pdf}
+}
+
 @Book{bird87,
   author =	 {R. B. Bird and R. C. Armstrong and O. Hassager},
   title =	 {Dynamics of polymeric liquids},
@@ -49,6 +56,17 @@
   publisher =	 {AIP}
 }
 
+ at Article{boyd2010,
+  author =	 {J. P Boyd and C. Zhou},
+  title =	 {{Three ways to solve the Poisson equation on 
+                  a sphere with Gaussian forcing}},
+  journal =	 {Journal of Computational Physics},
+  year =	 2010,
+  volume =	 228,
+  number =       13,
+  pages =	 {4702-4713}
+}
+
 @PhdThesis{dupont,
   author =	 {F. Dupont},
   title =	 {Comparison of numerical methods for modelling ocean
@@ -112,6 +130,19 @@
   pages =	 {423-456}
 }
 
+ at Article{johansen98,
+  title =        {A Cartesian Grid Embedded Boundary Method for
+                  {P}oisson Equation on Irregular Domains},
+  author =       {Johansen, H. and Colella, P.},
+  journal =      {Journal of Computational Physics},
+  volume =       {147},
+  number =       {1},
+  pages =        {60--85},
+  year =         {1998},
+  publisher =    {Elsevier},
+  url =          {https://seesar.lbl.gov/ANAG/publications/colella/A_1_35.pdf}
+}
+
 @Book{lamb,
   author =	 {H. Lamb},
   title =	 {Hydrodynamics},
@@ -220,8 +251,7 @@
   year =	 1995,
   number =	 {LA-UR-2000},
   local_url =	 {rider95.ps.gz},
-  url =
-                  {http://www-xdiv.lanl.gov/XHM/personnel/wjr/Web_papers/proj/proj.ps.Z},
+  url =          {http://www-xdiv.lanl.gov/XHM/personnel/wjr/Web_papers/proj/proj.ps.Z},
   pages =	 {81-85}
 }
 
@@ -264,8 +294,7 @@
   title =	 {Waves in a circular basin},
   institution =	 {Rutgers University},
   year =	 2005,
-  url =
-                  {http://marine.rutgers.edu/po/index.php?model=test-problems&title=circle}
+  url =          {http://marine.rutgers.edu/po/index.php?model=test-problems&title=circle}
 }
 
 @Article{sampson2006,
@@ -277,6 +306,37 @@
   year =	 2006
 }
 
+ at Article{taylor64,
+  author = 	 {G. I. Taylor},
+  title = 	 {Disintegration of water drops in an electric field},
+  journal = 	 {Proc. R. Soc. Lon. A},
+  year = 	 1964,
+  volume = 	 280,
+  pages = 	 {383-397}
+}
+
+ at Article{taylor66,
+  author = 	 {G. I. Taylor},
+  title = 	 {Studies in electrohydrodynamics {I}. {T}he circulation
+                  produced in a drop by an electric field},
+  journal = 	 {Proc. R. Soc. Lon. A},
+  year = 	 1966,
+  volume = 	 291,
+  pages = 	 {159-166}
+}
+
+ at Article{tomar2007,
+  title =        {Two-phase electrohydrodynamic simulations using a volume-of-fluid approach},
+  author =       {Tomar, G. and Gerlach, D. and Biswas, G. and
+                  Alleborn, N. and Sharma, A. and Durst, F. and Welch,
+                  S. W. J. and Delgado, A.},
+  journal =      {Journal of Computational Physics},
+  volume =       227,
+  number =       2,
+  pages =        {1267-1285},
+  year =         2007
+}
+
 @Article{torres00,
   author =	 {D. J. Torres and J. U. Brackbill},
   title =	 {The Point-Set method: front-tracking without
diff --git a/test/waves/adaptive/adaptive.gfs b/test/waves/adaptive/adaptive.gfs
index f09873d..198ec09 100644
--- a/test/waves/adaptive/adaptive.gfs
+++ b/test/waves/adaptive/adaptive.gfs
@@ -26,7 +26,7 @@
 #
 # Author: St\'ephane Popinet
 # Command: sh ../waves.sh adaptive.gfs
-# Version: 1.0.0
+# Version: 100323
 # Required files: solution.gfv correlation.ref
 # Generated files: correlation correlation.tex solution.eps
 #
@@ -77,11 +77,12 @@
     P = pwave(cx, cy, 0)
     U = uwave(x, y)
     V = vwave(x, y)
+    # Remove the line below when using gerris3D
     H = 1
   }
   Refine LEVEL
   AdaptVorticity { istep = 1 } { cmax = 5e-2 maxlevel = LEVEL }
-  Solid (- ellipse (0, 0, 0.25, 0.25)) { scale = 1.999 }
+  Solid (union (- ellipse (0, 0, 0.49975, 0.49975), z + 1.))
   AdvectionParams { scheme = none }
   ApproxProjectionParams { tolerance = 1e-9 weighted = 0 }
   SourceCoriolis {} 1.
@@ -620,5 +621,6 @@
   OutputSimulation { start = end } sim-LEVEL
 }
 GfsBox {
-  front = Boundary
+  # uncomment the line below when using gerris3D
+  # front = Boundary
 }
diff --git a/test/waves/adaptive/correlation.ref b/test/waves/adaptive/correlation.ref
index c049183..ee4cba6 100644
--- a/test/waves/adaptive/correlation.ref
+++ b/test/waves/adaptive/correlation.ref
@@ -1,3 +1,3 @@
-5		2.6			0.8648
-6		0.6			0.9707
-7		0.4			0.991
+5		2.5			0.9223
+6		0.5			0.9978
+7		0.3			0.9985
diff --git a/test/waves/correlation.ref b/test/waves/correlation.ref
index 0484393..af273ef 100644
--- a/test/waves/correlation.ref
+++ b/test/waves/correlation.ref
@@ -1,3 +1,3 @@
-5		2.7			0.8645
-6		0.6			0.9717
-7		0.2			0.9923
+5		2.4			0.9253
+6		0.1			1
+7		0			1
diff --git a/test/waves/waves.gfs b/test/waves/waves.gfs
index 5ff29dc..d104add 100644
--- a/test/waves/waves.gfs
+++ b/test/waves/waves.gfs
@@ -38,7 +38,7 @@
 #
 # Author: St\'ephane Popinet
 # Command: sh waves.sh waves.gfs
-# Version: 1.0.0
+# Version: 100323
 # Required files: waves.sh solution.gfv correlation.ref
 # Generated files: correlation correlation.tex solution.eps
 #
@@ -89,10 +89,11 @@
     P = pwave(cx, cy, 0)
     U = uwave(x, y)
     V = vwave(x, y)
+    # Remove the line below when using gerris3D
     H = 1
   }
   Refine LEVEL
-  Solid (- ellipse (0, 0, 0.25, 0.25)) { scale = 1.999 }
+  Solid (union (- ellipse (0, 0, 0.49975, 0.49975), z + 1.))
   AdvectionParams { scheme = none }
   ApproxProjectionParams { tolerance = 1e-9 weighted = 0 }
   SourceCoriolis {} 1.
@@ -629,7 +630,9 @@
     unbiased = 1
   }
   OutputSimulation { start = end } sim-LEVEL
+#  OutputSimulation { istep = 1 } stdout
 }
 GfsBox {
-  front = Boundary
+  # uncomment the line below when using gerris3D
+#  front = Boundary
 }
diff --git a/test/waves/waves.sh b/test/waves/waves.sh
index 0462dee..e537c6c 100644
--- a/test/waves/waves.sh
+++ b/test/waves/waves.sh
@@ -1,7 +1,7 @@
-if ! $donotrun; then
+if test x$donotrun != xtrue; then
     rm -f correlation res-* sim-*
     for level in 5 6 7; do
-	if sed "s/LEVEL/$level/g" < $1 | gerris2D3 - | \
+	if sed "s/LEVEL/$level/g" < $1 | gerris2D - | \
 	    awk '{ print $1 " " $5 }' > res-$level && \
 	    awk -v l=$level 'BEGIN { min1 = 0. } {
          if ($2 > min1) {
@@ -17,7 +17,7 @@ if ! $donotrun; then
     done
 fi
 
-echo "Save solution.eps { format = EPS }" | gfsview-batch2D3 sim-7 solution.gfv
+echo "Save solution.eps { format = EPS }" | gfsview-batch2D sim-7 solution.gfv
 
 awk 'BEGIN {
   print "\\begin{tabular}{|c|c|c|}"
diff --git a/tools/Makefile.am b/tools/Makefile.am
index a28b37a..08a9d9c 100644
--- a/tools/Makefile.am
+++ b/tools/Makefile.am
@@ -5,12 +5,10 @@ INCLUDES = -I$(top_srcdir)/src -I$(includedir) -DG_LOG_DOMAIN=\"Gfs-tools\"\
 
 bin_PROGRAMS = \
 	gfs2oogl2D \
-	gfs2oogl2D3 \
 	gfs2oogl3D \
 	streamanime \
 	ppmcombine \
 	gfscompare2D \
-	gfscompare2D3 \
 	gfscompare3D \
 	gfsjoin2D \
 	gfsjoin3D \
@@ -28,23 +26,17 @@ bin_SCRIPTS = \
 EXTRA_DIST = $(bin_SCRIPTS)
 
 gfs2oogl2D_SOURCES = gfs2oogl.c
-gfs2oogl2D3_SOURCES = gfs2oogl.c
 gfs2oogl3D_SOURCES = gfs2oogl.c
 gfscompare2D_SOURCES = gfscompare.c
-gfscompare2D3_SOURCES = gfscompare.c
 gfscompare3D_SOURCES = gfscompare.c
 gfsjoin2D_SOURCES = gfsjoin2.c
 gfsjoin3D_SOURCES = gfsjoin2.c
 
 gfs2oogl2D_CFLAGS = $(AM_CFLAGS) -DFTT_2D=1
-gfs2oogl2D3_CFLAGS = $(AM_CFLAGS) -DFTT_2D3=1
 gfs2oogl2D_LDADD = $(GFS2D_LIBS)
-gfs2oogl2D3_LDADD = $(GFS2D3_LIBS)
 gfs2oogl3D_LDADD = $(GFS3D_LIBS)
 gfscompare2D_CFLAGS = $(AM_CFLAGS) -DFTT_2D=1
-gfscompare2D3_CFLAGS = $(AM_CFLAGS) -DFTT_2D3=1
 gfscompare2D_LDADD = $(GFS2D_LIBS)
-gfscompare2D3_LDADD = $(GFS2D3_LIBS)
 gfscompare3D_LDADD = $(GFS3D_LIBS)
 gfsjoin2D_CFLAGS = $(AM_CFLAGS) -DFTT_2D=1
 gfsjoin2D_LDADD = $(GFS2D_LIBS)
diff --git a/tools/Makefile.in b/tools/Makefile.in
index 7b529ee..7a7f617 100644
--- a/tools/Makefile.in
+++ b/tools/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11 from Makefile.am.
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -35,9 +35,8 @@ PRE_UNINSTALL = :
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
-bin_PROGRAMS = gfs2oogl2D$(EXEEXT) gfs2oogl2D3$(EXEEXT) \
-	gfs2oogl3D$(EXEEXT) streamanime$(EXEEXT) ppmcombine$(EXEEXT) \
-	gfscompare2D$(EXEEXT) gfscompare2D3$(EXEEXT) \
+bin_PROGRAMS = gfs2oogl2D$(EXEEXT) gfs2oogl3D$(EXEEXT) \
+	streamanime$(EXEEXT) ppmcombine$(EXEEXT) gfscompare2D$(EXEEXT) \
 	gfscompare3D$(EXEEXT) gfsjoin2D$(EXEEXT) gfsjoin3D$(EXEEXT) \
 	shapes$(EXEEXT)
 subdir = tools
@@ -62,12 +61,6 @@ gfs2oogl2D_DEPENDENCIES = $(am__DEPENDENCIES_1)
 gfs2oogl2D_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(gfs2oogl2D_CFLAGS) \
 	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-am_gfs2oogl2D3_OBJECTS = gfs2oogl2D3-gfs2oogl.$(OBJEXT)
-gfs2oogl2D3_OBJECTS = $(am_gfs2oogl2D3_OBJECTS)
-gfs2oogl2D3_DEPENDENCIES = $(am__DEPENDENCIES_1)
-gfs2oogl2D3_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(gfs2oogl2D3_CFLAGS) \
-	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
 am_gfs2oogl3D_OBJECTS = gfs2oogl.$(OBJEXT)
 gfs2oogl3D_OBJECTS = $(am_gfs2oogl3D_OBJECTS)
 gfs2oogl3D_DEPENDENCIES = $(am__DEPENDENCIES_1)
@@ -77,12 +70,6 @@ gfscompare2D_DEPENDENCIES = $(am__DEPENDENCIES_1)
 gfscompare2D_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(gfscompare2D_CFLAGS) \
 	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-am_gfscompare2D3_OBJECTS = gfscompare2D3-gfscompare.$(OBJEXT)
-gfscompare2D3_OBJECTS = $(am_gfscompare2D3_OBJECTS)
-gfscompare2D3_DEPENDENCIES = $(am__DEPENDENCIES_1)
-gfscompare2D3_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(gfscompare2D3_CFLAGS) \
-	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
 am_gfscompare3D_OBJECTS = gfscompare.$(OBJEXT)
 gfscompare3D_OBJECTS = $(am_gfscompare3D_OBJECTS)
 gfscompare3D_DEPENDENCIES = $(am__DEPENDENCIES_1)
@@ -142,14 +129,12 @@ CCLD = $(CC)
 LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
 	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
 	$(LDFLAGS) -o $@
-SOURCES = $(gfs2oogl2D_SOURCES) $(gfs2oogl2D3_SOURCES) \
-	$(gfs2oogl3D_SOURCES) $(gfscompare2D_SOURCES) \
-	$(gfscompare2D3_SOURCES) $(gfscompare3D_SOURCES) \
+SOURCES = $(gfs2oogl2D_SOURCES) $(gfs2oogl3D_SOURCES) \
+	$(gfscompare2D_SOURCES) $(gfscompare3D_SOURCES) \
 	$(gfsjoin2D_SOURCES) $(gfsjoin3D_SOURCES) ppmcombine.c \
 	shapes.c streamanime.c
-DIST_SOURCES = $(gfs2oogl2D_SOURCES) $(gfs2oogl2D3_SOURCES) \
-	$(gfs2oogl3D_SOURCES) $(gfscompare2D_SOURCES) \
-	$(gfscompare2D3_SOURCES) $(gfscompare3D_SOURCES) \
+DIST_SOURCES = $(gfs2oogl2D_SOURCES) $(gfs2oogl3D_SOURCES) \
+	$(gfscompare2D_SOURCES) $(gfscompare3D_SOURCES) \
 	$(gfsjoin2D_SOURCES) $(gfsjoin3D_SOURCES) ppmcombine.c \
 	shapes.c streamanime.c
 ETAGS = etags
@@ -180,9 +165,10 @@ ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
 F77 = @F77@
+FC = @FC@
+FCFLAGS = @FCFLAGS@
 FFLAGS = @FFLAGS@
 FGREP = @FGREP@
-GFS2D3_LIBS = @GFS2D3_LIBS@
 GFS2D_LIBS = @GFS2D_LIBS@
 GFS3D_LIBS = @GFS3D_LIBS@
 GFS_COMPILATION_FLAGS = @GFS_COMPILATION_FLAGS@
@@ -217,6 +203,7 @@ LT_RELEASE = @LT_RELEASE@
 LT_REVISION = @LT_REVISION@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MODULES = @MODULES@
 NM = @NM@
@@ -224,6 +211,8 @@ NMEDIT = @NMEDIT@
 NO_UNDEFINED = @NO_UNDEFINED@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
+ODE_CFLAGS = @ODE_CFLAGS@
+ODE_LIBS = @ODE_LIBS@
 OTOOL = @OTOOL@
 OTOOL64 = @OTOOL64@
 PACKAGE = @PACKAGE@
@@ -245,9 +234,11 @@ abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
 ac_ct_F77 = @ac_ct_F77@
+ac_ct_FC = @ac_ct_FC@
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
 am__quote = @am__quote@
@@ -284,9 +275,9 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
+ode = @ode@
 oldincludedir = @oldincludedir@
 pdfdir = @pdfdir@
 prefix = @prefix@
@@ -315,22 +306,16 @@ bin_SCRIPTS = \
 
 EXTRA_DIST = $(bin_SCRIPTS)
 gfs2oogl2D_SOURCES = gfs2oogl.c
-gfs2oogl2D3_SOURCES = gfs2oogl.c
 gfs2oogl3D_SOURCES = gfs2oogl.c
 gfscompare2D_SOURCES = gfscompare.c
-gfscompare2D3_SOURCES = gfscompare.c
 gfscompare3D_SOURCES = gfscompare.c
 gfsjoin2D_SOURCES = gfsjoin2.c
 gfsjoin3D_SOURCES = gfsjoin2.c
 gfs2oogl2D_CFLAGS = $(AM_CFLAGS) -DFTT_2D=1
-gfs2oogl2D3_CFLAGS = $(AM_CFLAGS) -DFTT_2D3=1
 gfs2oogl2D_LDADD = $(GFS2D_LIBS)
-gfs2oogl2D3_LDADD = $(GFS2D3_LIBS)
 gfs2oogl3D_LDADD = $(GFS3D_LIBS)
 gfscompare2D_CFLAGS = $(AM_CFLAGS) -DFTT_2D=1
-gfscompare2D3_CFLAGS = $(AM_CFLAGS) -DFTT_2D3=1
 gfscompare2D_LDADD = $(GFS2D_LIBS)
-gfscompare2D3_LDADD = $(GFS2D3_LIBS)
 gfscompare3D_LDADD = $(GFS3D_LIBS)
 gfsjoin2D_CFLAGS = $(AM_CFLAGS) -DFTT_2D=1
 gfsjoin2D_LDADD = $(GFS2D_LIBS)
@@ -419,18 +404,12 @@ clean-binPROGRAMS:
 gfs2oogl2D$(EXEEXT): $(gfs2oogl2D_OBJECTS) $(gfs2oogl2D_DEPENDENCIES) 
 	@rm -f gfs2oogl2D$(EXEEXT)
 	$(gfs2oogl2D_LINK) $(gfs2oogl2D_OBJECTS) $(gfs2oogl2D_LDADD) $(LIBS)
-gfs2oogl2D3$(EXEEXT): $(gfs2oogl2D3_OBJECTS) $(gfs2oogl2D3_DEPENDENCIES) 
-	@rm -f gfs2oogl2D3$(EXEEXT)
-	$(gfs2oogl2D3_LINK) $(gfs2oogl2D3_OBJECTS) $(gfs2oogl2D3_LDADD) $(LIBS)
 gfs2oogl3D$(EXEEXT): $(gfs2oogl3D_OBJECTS) $(gfs2oogl3D_DEPENDENCIES) 
 	@rm -f gfs2oogl3D$(EXEEXT)
 	$(LINK) $(gfs2oogl3D_OBJECTS) $(gfs2oogl3D_LDADD) $(LIBS)
 gfscompare2D$(EXEEXT): $(gfscompare2D_OBJECTS) $(gfscompare2D_DEPENDENCIES) 
 	@rm -f gfscompare2D$(EXEEXT)
 	$(gfscompare2D_LINK) $(gfscompare2D_OBJECTS) $(gfscompare2D_LDADD) $(LIBS)
-gfscompare2D3$(EXEEXT): $(gfscompare2D3_OBJECTS) $(gfscompare2D3_DEPENDENCIES) 
-	@rm -f gfscompare2D3$(EXEEXT)
-	$(gfscompare2D3_LINK) $(gfscompare2D3_OBJECTS) $(gfscompare2D3_LDADD) $(LIBS)
 gfscompare3D$(EXEEXT): $(gfscompare3D_OBJECTS) $(gfscompare3D_DEPENDENCIES) 
 	@rm -f gfscompare3D$(EXEEXT)
 	$(LINK) $(gfscompare3D_OBJECTS) $(gfscompare3D_LDADD) $(LIBS)
@@ -492,10 +471,8 @@ distclean-compile:
 
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gfs2oogl.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gfs2oogl2D-gfs2oogl.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gfs2oogl2D3-gfs2oogl.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gfscompare.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gfscompare2D-gfscompare.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gfscompare2D3-gfscompare.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gfsjoin2.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gfsjoin2D-gfsjoin2.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ppmcombine-ppmcombine.Po at am__quote@
@@ -537,20 +514,6 @@ gfs2oogl2D-gfs2oogl.obj: gfs2oogl.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gfs2oogl2D_CFLAGS) $(CFLAGS) -c -o gfs2oogl2D-gfs2oogl.obj `if test -f 'gfs2oogl.c'; then $(CYGPATH_W) 'gfs2oogl.c'; else $(CYGPATH_W) '$(srcdir)/gfs2oogl.c'; fi`
 
-gfs2oogl2D3-gfs2oogl.o: gfs2oogl.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gfs2oogl2D3_CFLAGS) $(CFLAGS) -MT gfs2oogl2D3-gfs2oogl.o -MD -MP -MF $(DEPDIR)/gfs2oogl2D3-gfs2oogl.Tpo -c -o gfs2oogl2D3-gfs2oogl.o `test -f 'gfs2oogl.c' || echo '$(srcdir)/'`gfs2oogl.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/gfs2oogl2D3-gfs2oogl.Tpo $(DEPDIR)/gfs2oogl2D3-gfs2oogl.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gfs2oogl.c' object='gfs2oogl2D3-gfs2oogl.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gfs2oogl2D3_CFLAGS) $(CFLAGS) -c -o gfs2oogl2D3-gfs2oogl.o `test -f 'gfs2oogl.c' || echo '$(srcdir)/'`gfs2oogl.c
-
-gfs2oogl2D3-gfs2oogl.obj: gfs2oogl.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gfs2oogl2D3_CFLAGS) $(CFLAGS) -MT gfs2oogl2D3-gfs2oogl.obj -MD -MP -MF $(DEPDIR)/gfs2oogl2D3-gfs2oogl.Tpo -c -o gfs2oogl2D3-gfs2oogl.obj `if test -f 'gfs2oogl.c'; then $(CYGPATH_W) 'gfs2oogl.c'; else $(CYGPATH_W) '$(srcdir)/gfs2oogl.c'; fi`
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/gfs2oogl2D3-gfs2oogl.Tpo $(DEPDIR)/gfs2oogl2D3-gfs2oogl.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gfs2oogl.c' object='gfs2oogl2D3-gfs2oogl.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gfs2oogl2D3_CFLAGS) $(CFLAGS) -c -o gfs2oogl2D3-gfs2oogl.obj `if test -f 'gfs2oogl.c'; then $(CYGPATH_W) 'gfs2oogl.c'; else $(CYGPATH_W) '$(srcdir)/gfs2oogl.c'; fi`
-
 gfscompare2D-gfscompare.o: gfscompare.c
 @am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gfscompare2D_CFLAGS) $(CFLAGS) -MT gfscompare2D-gfscompare.o -MD -MP -MF $(DEPDIR)/gfscompare2D-gfscompare.Tpo -c -o gfscompare2D-gfscompare.o `test -f 'gfscompare.c' || echo '$(srcdir)/'`gfscompare.c
 @am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/gfscompare2D-gfscompare.Tpo $(DEPDIR)/gfscompare2D-gfscompare.Po
@@ -565,20 +528,6 @@ gfscompare2D-gfscompare.obj: gfscompare.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gfscompare2D_CFLAGS) $(CFLAGS) -c -o gfscompare2D-gfscompare.obj `if test -f 'gfscompare.c'; then $(CYGPATH_W) 'gfscompare.c'; else $(CYGPATH_W) '$(srcdir)/gfscompare.c'; fi`
 
-gfscompare2D3-gfscompare.o: gfscompare.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gfscompare2D3_CFLAGS) $(CFLAGS) -MT gfscompare2D3-gfscompare.o -MD -MP -MF $(DEPDIR)/gfscompare2D3-gfscompare.Tpo -c -o gfscompare2D3-gfscompare.o `test -f 'gfscompare.c' || echo '$(srcdir)/'`gfscompare.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/gfscompare2D3-gfscompare.Tpo $(DEPDIR)/gfscompare2D3-gfscompare.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gfscompare.c' object='gfscompare2D3-gfscompare.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gfscompare2D3_CFLAGS) $(CFLAGS) -c -o gfscompare2D3-gfscompare.o `test -f 'gfscompare.c' || echo '$(srcdir)/'`gfscompare.c
-
-gfscompare2D3-gfscompare.obj: gfscompare.c
- at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gfscompare2D3_CFLAGS) $(CFLAGS) -MT gfscompare2D3-gfscompare.obj -MD -MP -MF $(DEPDIR)/gfscompare2D3-gfscompare.Tpo -c -o gfscompare2D3-gfscompare.obj `if test -f 'gfscompare.c'; then $(CYGPATH_W) 'gfscompare.c'; else $(CYGPATH_W) '$(srcdir)/gfscompare.c'; fi`
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/gfscompare2D3-gfscompare.Tpo $(DEPDIR)/gfscompare2D3-gfscompare.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gfscompare.c' object='gfscompare2D3-gfscompare.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gfscompare2D3_CFLAGS) $(CFLAGS) -c -o gfscompare2D3-gfscompare.obj `if test -f 'gfscompare.c'; then $(CYGPATH_W) 'gfscompare.c'; else $(CYGPATH_W) '$(srcdir)/gfscompare.c'; fi`
-
 gfsjoin2D-gfsjoin2.o: gfsjoin2.c
 @am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gfsjoin2D_CFLAGS) $(CFLAGS) -MT gfsjoin2D-gfsjoin2.o -MD -MP -MF $(DEPDIR)/gfsjoin2D-gfsjoin2.Tpo -c -o gfsjoin2D-gfsjoin2.o `test -f 'gfsjoin2.c' || echo '$(srcdir)/'`gfsjoin2.c
 @am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/gfsjoin2D-gfsjoin2.Tpo $(DEPDIR)/gfsjoin2D-gfsjoin2.Po
diff --git a/tools/darcs2dist b/tools/darcs2dist
index e23f097..8e7f26a 100644
--- a/tools/darcs2dist
+++ b/tools/darcs2dist
@@ -1,3 +1,4 @@
+
 #!/bin/sh
 
 # see ../src/darcsversion.sh
@@ -18,6 +19,37 @@ EOF
 	exit $1
 }
 
+transfer()
+{
+    package=$1
+    version=$2
+    login=$3
+    dir=$4
+    if test x$dir = x; then
+	dir=$login
+	if rm -f $dir/tarballs/$package-snapshot-*.tar.gz && \
+	    cp $package-snapshot-$version.tar.gz $dir/tarballs && \
+	    rm -f $dir/$package-snapshot.tar.gz && \
+	    ln -s $dir/tarballs/$package-snapshot-$version.tar.gz $dir/$package-snapshot.tar.gz ; \
+	    then :
+	else
+	    exit 1
+	fi
+    else
+	if cat <<EOF | sftp $login; then :
+     cd $dir/tarballs
+     -rm $package-snapshot-*.tar.gz
+     put $package-snapshot-$version.tar.gz
+     cd $dir
+     -rm $package-snapshot.tar.gz
+     symlink tarballs/$package-snapshot-$version.tar.gz $package-snapshot.tar.gz
+EOF
+	else
+	    exit 1
+	fi
+    fi
+}
+
 if test $# -lt 3; then
 	usage 1 1>&2
 fi
@@ -42,14 +74,7 @@ if ( darcs get --partial $repo $package && \
      rm -r -f $package-[0-9].[0-9].[0-9] && tar xzf $package-*.tar.gz && \
      mv $package-[0-9].[0-9].[0-9] $package-snapshot-$version && \
      tar chof - $package-snapshot-$version | gzip --best -c > $package-snapshot-$version.tar.gz && \
-     cat <<EOF | sftp $login
-     cd $dir/tarballs
-     -rm $package-snapshot-*.tar.gz
-     put $package-snapshot-$version.tar.gz
-     cd $dir
-     -rm $package-snapshot.tar.gz
-     symlink tarballs/$package-snapshot-$version.tar.gz $package-snapshot.tar.gz
-EOF
+     transfer $package $version $login "$dir"
 ) > msg 2>&1; then
     rm -f msg
     status=0
diff --git a/tools/gfs2oogl.c b/tools/gfs2oogl.c
index 62fe314..d70a2b3 100644
--- a/tools/gfs2oogl.c
+++ b/tools/gfs2oogl.c
@@ -1020,7 +1020,8 @@ int main (int argc, char * argv[])
 
     if (var != NULL) {
       if (min == max) {
-	stats = gfs_domain_stats_variable (domain, var, FTT_TRAVERSE_ALL, -1);
+	stats = gfs_domain_stats_variable (domain, var, FTT_TRAVERSE_ALL, -1,
+					   NULL, NULL);
 	if (verbose)
 	  fprintf (stderr, 
 		   "min: %g avg: %g| %g max: %g n: %7d\n",
@@ -1087,9 +1088,11 @@ int main (int argc, char * argv[])
 
       if (var)
 	while (fscanf (profile, "%lf %lf %lf", &p.x, &p.y, &p.z) == 3) {
-	  FttCell * cell = gfs_domain_locate (domain, p, -1, NULL);
+	  FttVector pm = p;
+	  gfs_simulation_map (simulation, &pm);
+	  FttCell * cell = gfs_domain_locate (domain, pm, -1, NULL);
 	  if (cell)
-	    printf ("%g %g %g %g\n", p.x, p.y, p.z, gfs_interpolate (cell, p, var));
+	    printf ("%g %g %g %g\n", p.x, p.y, p.z, gfs_dimensional_value (var, gfs_interpolate (cell, pm, var)));
 	}
       else {
 	GSList * j;
@@ -1104,13 +1107,15 @@ int main (int argc, char * argv[])
 	}
 	printf ("\n");
 	while (fscanf (profile, "%lf %lf %lf", &p.x, &p.y, &p.z) == 3) {
-	  FttCell * cell = gfs_domain_locate (domain, p, -1, NULL);
+	   FttVector pm = p;
+	  gfs_simulation_map (simulation, &pm);
+	  FttCell * cell = gfs_domain_locate (domain, pm, -1, NULL);
 	  if (cell) {
 	    printf ("%g %g %g ", p.x, p.y, p.z);
 	    j = domain->variables;
 	    while (j) {
 	      GfsVariable * v = j->data;
-	      printf ("%g ", gfs_interpolate (cell, p, v));
+	      printf ("%g ", gfs_dimensional_value (v, gfs_interpolate (cell, pm, v)));
 	      j = j->next;
 	    }
 	    printf ("\n");
@@ -1129,7 +1134,8 @@ int main (int argc, char * argv[])
       gfs_domain_cell_traverse (domain,
 				FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
 				(FttCellTraverseFunc) velocity_norm, data);
-      stats = gfs_domain_stats_variable (domain, norm, FTT_TRAVERSE_LEAFS, -1);
+      stats = gfs_domain_stats_variable (domain, norm, FTT_TRAVERSE_LEAFS, -1,
+					 NULL, NULL);
       gts_object_destroy (GTS_OBJECT (norm));
       if (verbose)
 	fprintf (stderr, 
diff --git a/tools/gfscompare.c b/tools/gfscompare.c
index 2f89a2c..661c107 100644
--- a/tools/gfscompare.c
+++ b/tools/gfscompare.c
@@ -558,9 +558,11 @@ int main (int argc, char * argv[])
     GtsRange s;
 
     norm = gfs_domain_norm_variable (GFS_DOMAIN (s1),
-				     var1, NULL, FTT_TRAVERSE_LEAFS, -1);
+				     var1, NULL, FTT_TRAVERSE_LEAFS, -1,
+				     NULL, NULL);
     s = gfs_domain_stats_variable (GFS_DOMAIN (s1),
-				   var1, FTT_TRAVERSE_LEAFS, -1);
+				   var1, FTT_TRAVERSE_LEAFS, -1,
+				   NULL, NULL);
     fprintf (stderr, 
 	     "%s:\n"
 	     "  first: %g second: %g infty: %g w: %g\n"
@@ -569,9 +571,11 @@ int main (int argc, char * argv[])
 	     norm.first, norm.second, norm.infty, norm.w,
 	     s.min, s.mean, s.stddev, s.max);
     norm = gfs_domain_norm_variable (GFS_DOMAIN (s2),
-				     var2, NULL, FTT_TRAVERSE_LEAFS, -1);
+				     var2, NULL, FTT_TRAVERSE_LEAFS, -1,
+				     NULL, NULL);
     s = gfs_domain_stats_variable (GFS_DOMAIN (s2),
-				   var2, FTT_TRAVERSE_LEAFS, -1);
+				   var2, FTT_TRAVERSE_LEAFS, -1,
+				   NULL, NULL);
     fprintf (stderr, 
 	     "%s:\n"
 	     "  first: %g second: %g infty: %g w: %g\n"
@@ -674,7 +678,8 @@ int main (int argc, char * argv[])
     if (refined_error) {
       norm = gfs_domain_norm_variable (GFS_DOMAIN (s1),
 				       e, NULL, FTT_TRAVERSE_LEVEL,
-				       gfs_domain_depth (GFS_DOMAIN (s1)));
+				       gfs_domain_depth (GFS_DOMAIN (s1)),
+				       NULL, NULL);
       fprintf (stderr, 
 	  "refined err first: %10.3e second: %10.3e infty: %10.3e w: %g\n",
 	       norm.first, norm.second, norm.infty, norm.w);
@@ -695,7 +700,8 @@ int main (int argc, char * argv[])
 			       FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
 			       (FttCellTraverseFunc) compute_absolute, e);
     if (squares) {
-      GtsRange stats = gfs_domain_stats_variable (GFS_DOMAIN (s1), e, FTT_TRAVERSE_LEAFS, -1);
+      GtsRange stats = gfs_domain_stats_variable (GFS_DOMAIN (s1), e, FTT_TRAVERSE_LEAFS, -1,
+						  NULL, NULL);
 
       gfs_write_squares (GFS_DOMAIN (s1), e, 
 			 min < G_MAXDOUBLE ? min : stats.min, 
diff --git a/tools/ppm2theora b/tools/ppm2theora
index 9e8e14d..de13daf 100644
--- a/tools/ppm2theora
+++ b/tools/ppm2theora
@@ -1,12 +1,11 @@
 #!/bin/bash
 
-if test -z "`which ffmpeg2theora`"; then
-    echo "ppm2theora: error: could not find 'ffmpeg2theora'" > /dev/stderr
+if test -z "`which ffmpeg`"; then
+    echo "ppm2theora: error: could not find 'ffmpeg'" > /dev/stderr
     exit 1
 fi
 
-# command="ffmpeg -f image2pipe -vcodec ppm -i - -f avi -vcodec libtheora -vb 1800K"
-command="ffmpeg2theora -f image2pipe pipe:.ppm -K 8 -v 10 --artist Gerris -o /dev/stdout"
+command="ffmpeg -f image2pipe -vcodec ppm -i - -vcodec libtheora -vb 2048k -f ogg"
 while test $# -gt 0; do
     command="$command $1"
     shift
@@ -18,7 +17,7 @@ else
   log=`mktemp /tmp/ppm2theora.XXXXXX`
 fi
 
-if $command 2> $log; then :
+if $command - 2> $log; then :
 else
     cat $log > /dev/stderr
     rm -f $log
diff --git a/tools/ppm2video b/tools/ppm2video
index 140505b..1be9b6b 100644
--- a/tools/ppm2video
+++ b/tools/ppm2video
@@ -5,7 +5,7 @@ if test -z "`which ffmpeg`"; then
     exit 1
 fi
 
-command="ffmpeg -f image2pipe -vcodec ppm -i -"
+command="ffmpeg -f image2pipe -vcodec ppm -i - -y"
 while test $# -gt 0; do
     command="$command $1"
     shift
diff --git a/tools/shapes.c b/tools/shapes.c
index d8f725e..deb28f1 100644
--- a/tools/shapes.c
+++ b/tools/shapes.c
@@ -29,8 +29,8 @@
 #  include <unistd.h>
 #endif /* HAVE_UNISTD_H */
 
-#ifndef PI
-# define PI 3.14159265359
+#ifndef M_PI
+# define M_PI 3.14159265359
 #endif
 
 static GtsSurface * triangulate (GSList * vertices,
@@ -204,7 +204,7 @@ static void surface_add_ellipse_shape (GtsSurface * s,
   g_return_if_fail (s != NULL);
   g_return_if_fail (np >= 3);
 
-  if (thetamax < 2.*PI)
+  if (thetamax < 2.*M_PI)
     npm = np + 1;
   for (i = 0; i < npm; i++) {
     gdouble theta1 = theta + i*thetamax/(gdouble) np;
@@ -231,7 +231,7 @@ static void surface_add_star_shape (GtsSurface * s,
   g_return_if_fail (np >= 3);
 
   for (i = 0; i < np; i++) {
-    gdouble theta = .001 + 2.*i*PI/np;
+    gdouble theta = .001 + 2.*i*M_PI/np;
     gdouble radius = 0.45 - dr + dr*cos (6.*theta);
 
     shape = g_slist_prepend (shape, 
@@ -252,7 +252,7 @@ static gdouble shape_func_bottom (gdouble x)
   if (x <= -0.25)
     return y1;
   if (x < 0.25)
-    return y2 + 0.5*(y1 - y2)*(1. + cos (2.*PI*(x + 0.25)));
+    return y2 + 0.5*(y1 - y2)*(1. + cos (2.*M_PI*(x + 0.25)));
   return y2;
 }
 
@@ -505,32 +505,32 @@ int main (int argc, char * argv[])
 		       gts_edge_class (),
 		       gts_vertex_class ());
   if (!strcmp (shape, "ellipse"))
-    surface_add_ellipse_shape (s, 0., 0., 0.25, 0.001, 2.*PI,
+    surface_add_ellipse_shape (s, 0., 0., 0.25, 0.001, 2.*M_PI,
 			       sqrt (1./ratio), - 1., 1., number, closed);
   else if (!strcmp (shape, "star"))
     surface_add_star_shape (s, dr, - 1., 1., number, closed);
   else if (!strcmp (shape, "4ellipses")) {
-    surface_add_ellipse_shape (s, 0.25, 0.25, 5./32./sqrt (2.), 0.001, 2.*PI,
+    surface_add_ellipse_shape (s, 0.25, 0.25, 5./32./sqrt (2.), 0.001, 2.*M_PI,
 			       sqrt (2.), - 1., 1., number, closed);
-    surface_add_ellipse_shape (s, -0.25, 0.25, 5./32./sqrt (2.), 0.001, 2.*PI,
+    surface_add_ellipse_shape (s, -0.25, 0.25, 5./32./sqrt (2.), 0.001, 2.*M_PI,
 			       sqrt (2.), - 1., 1., number, closed);
-    surface_add_ellipse_shape (s, 0.25, -0.25, 5./32./sqrt (2.), 0.001, 2.*PI,
+    surface_add_ellipse_shape (s, 0.25, -0.25, 5./32./sqrt (2.), 0.001, 2.*M_PI,
 			       sqrt (2.), - 1., 1., number, closed);
-    surface_add_ellipse_shape (s, -0.25, -0.25, 5./32./sqrt (2.), 0.001, 2.*PI,
+    surface_add_ellipse_shape (s, -0.25, -0.25, 5./32./sqrt (2.), 0.001, 2.*M_PI,
 			       sqrt (2.), - 1., 1., number, closed);
   }
   else if (!strcmp (shape, "square"))
-    surface_add_ellipse_shape (s, 0., 0., 0.25*sqrt(2.), PI/4.,  2.*PI, 1.,
+    surface_add_ellipse_shape (s, 0., 0., 0.25*sqrt(2.), M_PI/4.,  2.*M_PI, 1.,
 			       - 1., 1., 4, closed);
   else if (!strcmp (shape, "almgren")) {
-    surface_add_ellipse_shape (s, 0.25, 0.25, 0.1, 0.001,  2.*PI, 1., -1., 1., 
+    surface_add_ellipse_shape (s, 0.25, 0.25, 0.1, 0.001,  2.*M_PI, 1., -1., 1., 
 			       number, closed);
     surface_add_ellipse_shape (s, -0.25, 0.125, sqrt (0.15*0.1),
-			       0.001, 2.*PI,
+			       0.001, 2.*M_PI,
 			       0.15/sqrt (0.15*0.1),
 			       -1., 1., number, closed);
     surface_add_ellipse_shape (s, 0., -0.25, sqrt (0.2*0.1),
-			       0.001, 2.*PI,
+			       0.001, 2.*M_PI,
 			       0.2/sqrt (0.2*0.1),
 			       -1., 1., number, closed);
   }
@@ -539,7 +539,7 @@ int main (int argc, char * argv[])
   else if (!strcmp (shape, "half-cylinder")) {
     //    surface_add_rectangular_channel_shape (s, -1., 1., closed);
     surface_add_ellipse_shape (s, -0.375001, 0., 0.03125001, 
-			       PI/2., PI, 1., -1., 1., 
+			       M_PI/2., M_PI, 1., -1., 1., 
 			       number, closed);
   }
   else if (!strcmp (shape, "witch"))
@@ -547,10 +547,10 @@ int main (int argc, char * argv[])
   else if (!strcmp (shape, "rayleigh-taylor"))
     surface_add_rayleigh_taylor_shape (s, 0., 0.025, -1., 1., number);
   else if (!strcmp (shape, "annulus")) {
-    surface_add_ellipse_shape (s, 0., 0., 0.5, 0.001, 2.*PI,
+    surface_add_ellipse_shape (s, 0., 0., 0.5, 0.001, 2.*M_PI,
 			       1., - 2., 2., number, closed);
     gts_surface_foreach_face (s, (GtsFunc) gts_triangle_revert, NULL);
-    surface_add_ellipse_shape (s, 0., 0., 0.25, 0.001, 2.*PI,
+    surface_add_ellipse_shape (s, 0., 0., 0.25, 0.001, 2.*M_PI,
 			       1., - 1., 1., number, closed);
   }
   else if ((!strcmp (shape, "-") && (sfp = stdin)) || 

-- 
Gerris Flow Solver



More information about the debian-science-commits mailing list