diff --git a/NOTICE b/NOTICE
index d020a8c..bccaeb9 100644
--- a/NOTICE
+++ b/NOTICE
@@ -1,4 +1,358 @@
 
+The libgloss subdirectory is a collection of software from several sources.
+
+Each file may have its own copyright/license that is embedded in the source 
+file.  Unless otherwise noted in the body of the source file(s), the following copyright
+notices will apply to the contents of the libgloss subdirectory:
+
+(1) Red Hat Incorporated
+
+Copyright (c) 1994-2009  Red Hat, Inc. All rights reserved.
+
+This copyrighted material is made available to anyone wishing to use, modify,
+copy, or redistribute it subject to the terms and conditions of the BSD 
+License.   This program is distributed in the hope that it will be useful, 
+but WITHOUT ANY WARRANTY expressed or implied, including the implied warranties 
+of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  A copy of this license
+is available at http://www.opensource.org/licenses. Any Red Hat trademarks that
+are incorporated in the source code or documentation are not subject to the BSD
+License and may only be used or replicated with the express permission of 
+Red Hat, Inc.
+
+(2) University of California, Berkeley
+
+Copyright (c) 1981-2000 The Regents of the University of California.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright notice, 
+      this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright notice,
+      this list of conditions and the following disclaimer in the documentation
+      and/or other materials provided with the distribution.
+    * Neither the name of the University nor the names of its contributors may
+      be used to endorse or promote products derived from this software without
+      specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
+IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+
+(3) DJ Delorie
+
+Copyright (C) 1993 DJ Delorie
+All rights reserved.
+
+Redistribution, modification,  and use in source and binary forms is permitted
+provided that the above copyright notice and following paragraph are
+duplicated in all such forms.
+
+This file is distributed WITHOUT ANY WARRANTY; without even the implied
+warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+(4) (formerly GPL for fr30)
+
+The GPL is no longer applicable to the fr30 platform.  The piece of
+code (syscalls.c) referencing the GPL has been officially relicensed.
+
+(5) Advanced Micro Devices
+
+Copyright 1989, 1990 Advanced Micro Devices, Inc.
+
+This software is the property of Advanced Micro Devices, Inc  (AMD)  which
+specifically  grants the user the right to modify, use and distribute this
+software provided this notice is not removed or altered.  All other rights
+are reserved by AMD.
+
+AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS
+SOFTWARE.  IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL
+DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR
+USE OF THIS SOFTWARE.
+
+So that all may benefit from your experience, please report  any  problems
+or  suggestions about this software to the 29K Technical Support Center at
+800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131  in  the  UK,  or
+0031-11-1129 in Japan, toll free.  The direct dial number is 512-462-4118.
+
+Advanced Micro Devices, Inc.
+29K Support Products
+Mail Stop 573
+5900 E. Ben White Blvd.
+Austin, TX 78741
+800-292-9263
+
+(6) - Analog Devices, Inc. (bfin-* targets)
+
+Copyright (C) 2006, 2008, 2009, 2011, 2012 Analog Devices, Inc.
+
+The authors hereby grant permission to use, copy, modify, distribute,
+and license this software and its documentation for any purpose, provided
+that existing copyright notices are retained in all copies and that this
+notice is included verbatim in any distributions. No written agreement,
+license, or royalty fee is required for any of the authorized uses.
+Modifications to this software may be copyrighted by their authors
+and need not follow the licensing terms described here, provided that
+the new terms are clearly indicated on the first page of each file where
+they apply.
+
+(7) University of Utah and the Computer Systems Laboratory (CSL)
+    [applies only to hppa*-*-pro* targets]
+Copyright (c) 1990,1994 The University of Utah and
+the Computer Systems Laboratory (CSL).  All rights reserved.
+
+Permission to use, copy, modify and distribute this software is hereby
+granted provided that (1) source code retains these copyright, permission,
+and disclaimer notices, and (2) redistributions including binaries
+reproduce the notices in supporting documentation, and (3) all advertising
+materials mentioning features or use of this software display the following
+acknowledgement: ``This product includes software developed by the
+Computer Systems Laboratory at the University of Utah.''
+
+THE UNIVERSITY OF UTAH AND CSL ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS
+IS" CONDITION.  THE UNIVERSITY OF UTAH AND CSL DISCLAIM ANY LIABILITY OF
+ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+
+CSL requests users of this software to return to csl-dist@cs.utah.edu any
+improvements that they make and grant CSL redistribution rights.
+
+(8) Sun Microsystems
+
+Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+
+Developed at SunPro, a Sun Microsystems, Inc. business.
+Permission to use, copy, modify, and distribute this
+software is freely granted, provided that this notice is preserved.
+
+(9) Hewlett Packard
+
+(c) Copyright 1986 HEWLETT-PACKARD COMPANY
+
+To anyone who acknowledges that this file is provided "AS IS"
+without any express or implied warranty:
+
+permission to use, copy, modify, and distribute this file
+for any purpose is hereby granted without fee, provided that
+the above copyright notice and this notice appears in all
+copies, and that the name of Hewlett-Packard Company not be
+used in advertising or publicity pertaining to distribution
+of the software without specific, written prior permission.
+Hewlett-Packard Company makes no representations about the
+suitability of this software for any purpose.
+
+(10) Hans-Peter Nilsson
+
+Copyright (C) 2001 Hans-Peter Nilsson
+
+Permission to use, copy, modify, and distribute this software is
+freely granted, provided that the above copyright notice, this notice
+and the following disclaimer are preserved with no changes.
+
+THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.
+
+(11) IBM Corp. spu processor (only spu-* targets)
+
+(C) Copyright IBM Corp. 2005, 2006
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+    * Neither the name of IBM nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+
+(12) Jon Beniston (only lm32-* targets)
+
+ Contributed by Jon Beniston <jon@beniston.com>
+ 
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ 
+ THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ SUCH DAMAGE.
+
+(13) - Xilinx, Inc. (microblaze-* and powerpc-* targets)
+
+Copyright (c) 2004, 2009 Xilinx, Inc.  All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+1.  Redistributions source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+
+2.  Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+
+3.  Neither the name of Xilinx nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "AS
+IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+(14) - National Semiconductor Corporation
+
+Copyright (c) 2004 National Semiconductor Corporation
+
+The authors hereby grant permission to use, copy, modify, distribute,
+and license this software and its documentation for any purpose, provided
+that existing copyright notices are retained in all copies and that this
+notice is included verbatim in any distributions. No written agreement,
+license, or royalty fee is required for any of the authorized uses.
+Modifications to this software may be copyrighted by their authors
+and need not follow the licensing terms described here, provided that
+the new terms are clearly indicated on the first page of each file where
+they apply.
+
+
+(15) - CodeSourcery, Inc. (tic6x-* targets)
+
+Copyright (c) 2010 CodeSourcery, Inc.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in the
+      documentation and/or other materials provided with the distribution.
+    * Neither the name of CodeSourcery nor the
+      names of its contributors may be used to endorse or promote products
+      derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY CODESOURCERY, INC. ``AS IS'' AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL CODESOURCERY BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+(16) - GPL with exception (sparc-*leon*, crx-*, cr16-* targets only)
+
+  Copyright (C) 1992 Free Software Foundation, Inc.
+  Written By David Vinayak Henkel-Wallace, June 1992
+
+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 the
+Free Software Foundation; either version 2, or (at your option) any
+later version.
+
+In addition to the permissions in the GNU General Public License, the
+Free Software Foundation gives you unlimited permission to link the
+compiled version of this file with other programs, and to distribute
+those programs without any restriction coming from the use of this
+file.  (The General Public License restrictions do apply in other
+respects; for example, they cover modification of the file, and
+distribution when not linked into another program.)
+
+This file 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; see the file COPYING.  If not, write to
+the Free Software Foundation, 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.
+
+   As a special exception, if you link this library with files
+   compiled with GCC to produce an executable, this does not cause
+   the resulting executable to be covered by the GNU General Public License.
+   This exception does not however invalidate any other reasons why
+   the executable file might be covered by the GNU General Public License.
+
+
+(17) - Adapteva, Inc. (epiphany-* targets)
+
+Copyright (c) 2011, Adapteva, Inc.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+ * Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+ * Neither the name of Adapteva nor the names of its contributors may be used
+   to endorse or promote products derived from this software without specific
+   prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
 The newlib subdirectory is a collection of software from several sources.
 
 Each file may have its own copyright/license that is embedded in the source 
@@ -1791,629 +2145,288 @@
 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>.
-                    GNU GENERAL PUBLIC LICENSE
-                       Version 3, 29 June 2007
+		    GNU GENERAL PUBLIC LICENSE
+		       Version 2, June 1991
 
- Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+     51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
  Everyone is permitted to copy and distribute verbatim copies
  of this license document, but changing it is not allowed.
 
-                            Preamble
+			    Preamble
 
-  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
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
 your programs, too.
 
   When we speak of free software, we are referring to freedom, not
 price.  Our General Public Licenses are designed to make sure that you
 have the freedom to distribute copies of free software (and charge for
-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.
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
 
-  To protect your rights, we need to 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.
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
 
   For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must 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.
+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.
 
-  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.
+  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.
 
-  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.
+  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.
 
-  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.
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
 
   The precise terms and conditions for copying, distribution and
 modification follow.
+
+		    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
 
-                       TERMS AND CONDITIONS
+  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".
 
-  0. Definitions.
+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.
 
-  "This License" refers to version 3 of the GNU General Public License.
+  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.
 
-  "Copyright" also means copyright-like laws that apply to other kinds of
-works, such as semiconductor masks.
+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.
 
-  "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.
+  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:
 
-  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) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
 
-  A "covered work" means either the unmodified Program or a work based
-on the Program.
+    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.
 
-  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.
+    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.
 
-  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.
+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.
 
-  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.
+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.
 
-  1. Source Code.
+  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:
 
-  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) 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,
 
-  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.
+    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,
 
-  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.
+    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 "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 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.
 
-  The Corresponding Source need not include anything that users
-can regenerate automatically from other parts of the Corresponding
-Source.
+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.
 
-  The Corresponding Source for a work in source code form is that
-same work.
+  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.
 
-  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
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
 this License.
 
-  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
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
 otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot 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.
+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.
 
-  13. Use with the GNU Affero General Public License.
+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.
 
-  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.
+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.
 
-  14. Revised Versions of this License.
+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.
 
-  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
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
 be similar in spirit to the present version, but may differ in detail to
 address new problems or concerns.
 
-  Each version is given a distinguishing version number.  If the
-Program specifies 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.
+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.
 
-  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.
+  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.
 
-  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.
+			    NO WARRANTY
 
-  15. Disclaimer of 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.
 
-  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.
 
-  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
+		     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
@@ -2421,15 +2434,15 @@
 
   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
-state the exclusion of warranty; and each file should have at least
+convey 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 3 of the License, or
+    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,
@@ -2438,33 +2451,40 @@
     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, see <http://www.gnu.org/licenses/>.
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
 
 Also add information on how to contact you by electronic and paper mail.
 
-  If the program does terminal interaction, make it output a short
-notice like this when it starts in an interactive mode:
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
 
-    <program>  Copyright (C) <year>  <name of author>
-    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    Gnomovision version 69, Copyright (C) year  name of author
+    Gnomovision 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, your program's commands
-might be different; for a GUI interface, you would use an "about box".
+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 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/>.
+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:
 
-  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>.
+  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.
 		    GNU GENERAL PUBLIC LICENSE
 		       Version 2, June 1991
 
@@ -3479,360 +3499,1858 @@
 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>.
-The libgloss subdirectory is a collection of software from several sources.
+		  GNU LESSER GENERAL PUBLIC LICENSE
+		       Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+     51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL.  It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+  This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it.  You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+  When we speak of free software, we are referring to freedom of use,
+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 and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+  To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights.  These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  To protect each distributor, we want to make it very clear that
+there is no warranty for the free library.  Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+  Finally, software patents pose a constant threat to the existence of
+any free program.  We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder.  Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+  Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License.  This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License.  We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+  When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library.  The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom.  The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+  We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License.  It also provides other free software developers Less
+of an advantage over competing non-free programs.  These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries.  However, the Lesser license provides advantages in certain
+special circumstances.
+
+  For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard.  To achieve this, non-free programs must be
+allowed to use the library.  A more frequent case is that a free
+library does the same job as widely used non-free libraries.  In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+  In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software.  For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+  Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+		  GNU LESSER GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+  A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+  "Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, 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 library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+  
+  1. You may copy and distribute verbatim copies of the Library's
+complete 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 distribute a copy of this License along with the
+Library.
+
+  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 Library or any portion
+of it, thus forming a work based on the Library, 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) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+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 Library, 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 Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+
+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you 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.
+
+  If distribution of 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 satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+  6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable "work that
+    uses the Library", as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Use a suitable shared library mechanism for linking with the
+    Library.  A suitable mechanism is one that (1) uses at run time a
+    copy of the library already present on the user's computer system,
+    rather than copying library functions into the executable, and (2)
+    will operate properly with a modified version of the library, if
+    the user installs one, as long as the modified version is
+    interface-compatible with the version that the work was made with.
+
+    c) Accompany the work with a written offer, valid for at
+    least three years, to give the same user the materials
+    specified in Subsection 6a, above, for a charge no more
+    than the cost of performing this distribution.
+
+    d) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    e) Verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the materials to be 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.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library 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.
+
+  9. 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 Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+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 with
+this License.
+
+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library 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 Library.
+
+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.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library 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.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser 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 Library
+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 Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+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
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "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
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. 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 LIBRARY 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
+LIBRARY (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 LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), 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 Libraries
+
+  If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change.  You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+  To apply these terms, attach the following notices to the library.  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 the
+"copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the library's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library 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
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
+  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+  <signature of Ty Coon>, 1 April 1990
+  Ty Coon, President of Vice
+
+That's all there is to it!
+
+
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 3, 29 June 2007
+
+ 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
+
+  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
+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 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 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.
+
+                       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.
 
-Each file may have its own copyright/license that is embedded in the source 
-file.  Unless otherwise noted in the body of the source file(s), the following copyright
-notices will apply to the contents of the libgloss subdirectory:
+  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.
 
-(1) Red Hat Incorporated
+  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.
 
-Copyright (c) 1994-2009  Red Hat, Inc. All rights reserved.
+  4. Conveying Verbatim Copies.
 
-This copyrighted material is made available to anyone wishing to use, modify,
-copy, or redistribute it subject to the terms and conditions of the BSD 
-License.   This program is distributed in the hope that it will be useful, 
-but WITHOUT ANY WARRANTY expressed or implied, including the implied warranties 
-of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  A copy of this license
-is available at http://www.opensource.org/licenses. Any Red Hat trademarks that
-are incorporated in the source code or documentation are not subject to the BSD
-License and may only be used or replicated with the express permission of 
-Red Hat, Inc.
+  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.
 
-(2) University of California, Berkeley
+  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.
 
-Copyright (c) 1981-2000 The Regents of the University of California.
-All rights reserved.
+  5. Conveying Modified Source Versions.
 
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
+  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:
 
-    * Redistributions of source code must retain the above copyright notice, 
-      this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above copyright notice,
-      this list of conditions and the following disclaimer in the documentation
-      and/or other materials provided with the distribution.
-    * Neither the name of the University nor the names of its contributors may
-      be used to endorse or promote products derived from this software without
-      specific prior written permission.
+    a) The work must carry prominent notices stating that you modified
+    it, and giving a relevant date.
 
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
-IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 
-INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
-WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
-OF SUCH DAMAGE.
+    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".
 
-(3) DJ Delorie
+    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.
 
-Copyright (C) 1993 DJ Delorie
-All rights reserved.
+    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.
 
-Redistribution, modification,  and use in source and binary forms is permitted
-provided that the above copyright notice and following paragraph are
-duplicated in all such forms.
+  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.
 
-This file is distributed WITHOUT ANY WARRANTY; without even the implied
-warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+  6. Conveying Non-Source Forms.
 
-(4) (formerly GPL for fr30)
+  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:
 
-The GPL is no longer applicable to the fr30 platform.  The piece of
-code (syscalls.c) referencing the GPL has been officially relicensed.
+    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.
 
-(5) Advanced Micro Devices
+    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.
 
-Copyright 1989, 1990 Advanced Micro Devices, Inc.
+    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.
 
-This software is the property of Advanced Micro Devices, Inc  (AMD)  which
-specifically  grants the user the right to modify, use and distribute this
-software provided this notice is not removed or altered.  All other rights
-are reserved by AMD.
+    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.
 
-AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS
-SOFTWARE.  IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL
-DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR
-USE OF THIS SOFTWARE.
+    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.
 
-So that all may benefit from your experience, please report  any  problems
-or  suggestions about this software to the 29K Technical Support Center at
-800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131  in  the  UK,  or
-0031-11-1129 in Japan, toll free.  The direct dial number is 512-462-4118.
+  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.
 
-Advanced Micro Devices, Inc.
-29K Support Products
-Mail Stop 573
-5900 E. Ben White Blvd.
-Austin, TX 78741
-800-292-9263
+  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.
 
-(6) - Analog Devices, Inc. (bfin-* targets)
+  "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.
 
-Copyright (C) 2006, 2008, 2009, 2011, 2012 Analog Devices, Inc.
+  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 authors hereby grant permission to use, copy, modify, distribute,
-and license this software and its documentation for any purpose, provided
-that existing copyright notices are retained in all copies and that this
-notice is included verbatim in any distributions. No written agreement,
-license, or royalty fee is required for any of the authorized uses.
-Modifications to this software may be copyrighted by their authors
-and need not follow the licensing terms described here, provided that
-the new terms are clearly indicated on the first page of each file where
-they apply.
+  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.
 
-(7) University of Utah and the Computer Systems Laboratory (CSL)
-    [applies only to hppa*-*-pro* targets]
-Copyright (c) 1990,1994 The University of Utah and
-the Computer Systems Laboratory (CSL).  All rights reserved.
+  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.
 
-Permission to use, copy, modify and distribute this software is hereby
-granted provided that (1) source code retains these copyright, permission,
-and disclaimer notices, and (2) redistributions including binaries
-reproduce the notices in supporting documentation, and (3) all advertising
-materials mentioning features or use of this software display the following
-acknowledgement: ``This product includes software developed by the
-Computer Systems Laboratory at the University of Utah.''
+  7. Additional Terms.
 
-THE UNIVERSITY OF UTAH AND CSL ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS
-IS" CONDITION.  THE UNIVERSITY OF UTAH AND CSL DISCLAIM ANY LIABILITY OF
-ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+  "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.
 
-CSL requests users of this software to return to csl-dist@cs.utah.edu any
-improvements that they make and grant CSL redistribution rights.
+  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.
 
-(8) Sun Microsystems
+  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:
 
-Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+    a) Disclaiming warranty or limiting liability differently from the
+    terms of sections 15 and 16 of this License; or
 
-Developed at SunPro, a Sun Microsystems, Inc. business.
-Permission to use, copy, modify, and distribute this
-software is freely granted, provided that this notice is preserved.
+    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
 
-(9) Hewlett Packard
+    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
 
-(c) Copyright 1986 HEWLETT-PACKARD COMPANY
+    d) Limiting the use for publicity purposes of names of licensors or
+    authors of the material; or
 
-To anyone who acknowledges that this file is provided "AS IS"
-without any express or implied warranty:
+    e) Declining to grant rights under trademark law for use of some
+    trade names, trademarks, or service marks; or
 
-permission to use, copy, modify, and distribute this file
-for any purpose is hereby granted without fee, provided that
-the above copyright notice and this notice appears in all
-copies, and that the name of Hewlett-Packard Company not be
-used in advertising or publicity pertaining to distribution
-of the software without specific, written prior permission.
-Hewlett-Packard Company makes no representations about the
-suitability of this software for any purpose.
+    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.
 
-(10) Hans-Peter Nilsson
+  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.
 
-Copyright (C) 2001 Hans-Peter Nilsson
+  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.
 
-Permission to use, copy, modify, and distribute this software is
-freely granted, provided that the above copyright notice, this notice
-and the following disclaimer are preserved with no changes.
+  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.
 
-THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE.
+  8. Termination.
 
-(11) IBM Corp. spu processor (only spu-* targets)
+  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).
 
-(C) Copyright IBM Corp. 2005, 2006
+  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.
 
-All rights reserved.
+  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.
 
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
+  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.
 
-    * Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-    * Neither the name of IBM nor the names of its contributors may be
-used to endorse or promote products derived from this software without
-specific prior written permission.
+  9. Acceptance Not Required for Having Copies.
 
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
+  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.
 
-(12) Jon Beniston (only lm32-* targets)
+  10. Automatic Licensing of Downstream Recipients.
 
- Contributed by Jon Beniston <jon@beniston.com>
- 
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- 
- THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- SUCH DAMAGE.
+  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.
 
-(13) - Xilinx, Inc. (microblaze-* and powerpc-* targets)
+  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.
 
-Copyright (c) 2004, 2009 Xilinx, Inc.  All rights reserved.
+  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.
 
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
+  11. Patents.
 
-1.  Redistributions source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
+  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".
 
-2.  Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
+  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.
 
-3.  Neither the name of Xilinx nor the names of its contributors may be
-used to endorse or promote products derived from this software without
-specific prior written permission.
+  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.
 
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "AS
-IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
-TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
-TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+  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.
 
-(14) - National Semiconductor Corporation
+  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.
 
-Copyright (c) 2004 National Semiconductor Corporation
+  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.
 
-The authors hereby grant permission to use, copy, modify, distribute,
-and license this software and its documentation for any purpose, provided
-that existing copyright notices are retained in all copies and that this
-notice is included verbatim in any distributions. No written agreement,
-license, or royalty fee is required for any of the authorized uses.
-Modifications to this software may be copyrighted by their authors
-and need not follow the licensing terms described here, provided that
-the new terms are clearly indicated on the first page of each file where
-they apply.
+  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.
 
-(15) - CodeSourcery, Inc. (tic6x-* targets)
+  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 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.
 
-Copyright (c) 2010 CodeSourcery, Inc.
-All rights reserved.
+  13. Use with the GNU Affero General Public License.
 
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-    * Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above copyright
-      notice, this list of conditions and the following disclaimer in the
-      documentation and/or other materials provided with the distribution.
-    * Neither the name of CodeSourcery nor the
-      names of its contributors may be used to endorse or promote products
-      derived from this software without specific prior written permission.
+  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.
 
-THIS SOFTWARE IS PROVIDED BY CODESOURCERY, INC. ``AS IS'' AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL CODESOURCERY BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+  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.
 
-(16) - GPL with exception (sparc-*leon*, crx-*, cr16-* targets only)
+  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.
 
-  Copyright (C) 1992 Free Software Foundation, Inc.
-  Written By David Vinayak Henkel-Wallace, June 1992
+  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.
 
-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 the
-Free Software Foundation; either version 2, or (at your option) any
+  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.
 
-In addition to the permissions in the GNU General Public License, the
-Free Software Foundation gives you unlimited permission to link the
-compiled version of this file with other programs, and to distribute
-those programs without any restriction coming from the use of this
-file.  (The General Public License restrictions do apply in other
-respects; for example, they cover modification of the file, and
-distribution when not linked into another program.)
+  15. Disclaimer of Warranty.
 
-This file 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.
+  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.
 
-You should have received a copy of the GNU General Public License
-along with this program; see the file COPYING.  If not, write to
-the Free Software Foundation, 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.
+  16. Limitation of Liability.
 
-   As a special exception, if you link this library with files
-   compiled with GCC to produce an executable, this does not cause
-   the resulting executable to be covered by the GNU General Public License.
-   This exception does not however invalidate any other reasons why
-   the executable file might be covered by the GNU General Public License.
+  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.
 
-(17) - Adapteva, Inc. (epiphany-* targets)
+  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.
 
-Copyright (c) 2011, Adapteva, Inc.
-All rights reserved.
+                     END OF TERMS AND CONDITIONS
 
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
- * Redistributions of source code must retain the above copyright notice, this
-   list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice,
-   this list of conditions and the following disclaimer in the documentation
-   and/or other materials provided with the distribution.
- * Neither the name of Adapteva nor the names of its contributors may be used
-   to endorse or promote products derived from this software without specific
-   prior written permission.
+            How to Apply These Terms to Your New Programs
 
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+  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
+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
+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
+    it under the terms of the GNU General Public License as published by
+    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,
+    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, see <http://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+  If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+    <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, 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>.
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 3, 29 June 2007
+
+ 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
+
+  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
+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 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 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.
+
+                       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.
+
+  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 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 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
+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
+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
+    it under the terms of the GNU General Public License as published by
+    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,
+    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, see <http://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+  If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+    <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, 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>.
 		  GNU LIBRARY GENERAL PUBLIC LICENSE
 		       Version 2, June 1991
 
@@ -4315,1524 +5833,6 @@
   Ty Coon, President of Vice
 
 That's all there is to it!
-                    GNU GENERAL PUBLIC LICENSE
-                       Version 3, 29 June 2007
-
- 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
-
-  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
-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 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 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.
-
-                       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.
-
-  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 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 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
-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
-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
-    it under the terms of the GNU General Public License as published by
-    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,
-    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, see <http://www.gnu.org/licenses/>.
-
-Also add information on how to contact you by electronic and paper mail.
-
-  If the program does terminal interaction, make it output a short
-notice like this when it starts in an interactive mode:
-
-    <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, 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>.
-		    GNU GENERAL PUBLIC LICENSE
-		       Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-     51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-			    Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users.  This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it.  (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.)  You can apply it to
-your programs, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
-  To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have.  You must make sure that they, too, receive or can get the
-source code.  And you must show them these terms so they know their
-rights.
-
-  We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
-  Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software.  If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
-  Finally, any free program is threatened constantly by software
-patents.  We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary.  To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.
-
-		    GNU GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License.  The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language.  (Hereinafter, translation is included without limitation in
-the term "modification".)  Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
-  1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
-  2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) You must cause the modified files to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    b) You must cause any work that you distribute or publish, that in
-    whole or in part contains or is derived from the Program or any
-    part thereof, to be licensed as a whole at no charge to all third
-    parties under the terms of this License.
-
-    c) If the modified program normally reads commands interactively
-    when run, you must cause it, when started running for such
-    interactive use in the most ordinary way, to print or display an
-    announcement including an appropriate copyright notice and a
-    notice that there is no warranty (or else, saying that you provide
-    a warranty) and that users may redistribute the program under
-    these conditions, and telling the user how to view a copy of this
-    License.  (Exception: if the Program itself is interactive but
-    does not normally print such an announcement, your work based on
-    the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
-    a) Accompany it with the complete corresponding machine-readable
-    source code, which must be distributed under the terms of Sections
-    1 and 2 above on a medium customarily used for software interchange; or,
-
-    b) Accompany it with a written offer, valid for at least three
-    years, to give any third party, for a charge no more than your
-    cost of physically performing source distribution, a complete
-    machine-readable copy of the corresponding source code, to be
-    distributed under the terms of Sections 1 and 2 above on a medium
-    customarily used for software interchange; or,
-
-    c) Accompany it with the information you received as to the offer
-    to distribute corresponding source code.  (This alternative is
-    allowed only for noncommercial distribution and only if you
-    received the program in object code or executable form with such
-    an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it.  For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable.  However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License.  Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-  5. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Program or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
-  6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
-  7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded.  In such case, this License incorporates
-the limitation as if written in the body of this License.
-
-  9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time.  Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation.  If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
-  10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission.  For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this.  Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
-			    NO WARRANTY
-
-  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
-  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
-		     END OF TERMS AND CONDITIONS
-
-	    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
-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
-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
-    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., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
-
-
-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:
-
-    Gnomovision version 69, Copyright (C) year  name of author
-    Gnomovision 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.
-		  GNU LESSER GENERAL PUBLIC LICENSE
-		       Version 2.1, February 1999
-
- Copyright (C) 1991, 1999 Free Software Foundation, Inc.
-     51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the Lesser GPL.  It also counts
- as the successor of the GNU Library Public License, version 2, hence
- the version number 2.1.]
-
-			    Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
-  This license, the Lesser General Public License, applies to some
-specially designated software packages--typically libraries--of the
-Free Software Foundation and other authors who decide to use it.  You
-can use it too, but we suggest you first think carefully about whether
-this license or the ordinary General Public License is the better
-strategy to use in any particular case, based on the explanations below.
-
-  When we speak of free software, we are referring to freedom of use,
-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 and use pieces of
-it in new free programs; and that you are informed that you can do
-these things.
-
-  To protect your rights, we need to make restrictions that forbid
-distributors to deny you these rights or to ask you to surrender these
-rights.  These restrictions translate to certain responsibilities for
-you if you distribute copies of the library or if you modify it.
-
-  For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you.  You must make sure that they, too, receive or can get the source
-code.  If you link other code with the library, you must provide
-complete object files to the recipients, so that they can relink them
-with the library after making changes to the library and recompiling
-it.  And you must show them these terms so they know their rights.
-
-  We protect your rights with a two-step method: (1) we copyright the
-library, and (2) we offer you this license, which gives you legal
-permission to copy, distribute and/or modify the library.
-
-  To protect each distributor, we want to make it very clear that
-there is no warranty for the free library.  Also, if the library is
-modified by someone else and passed on, the recipients should know
-that what they have is not the original version, so that the original
-author's reputation will not be affected by problems that might be
-introduced by others.
-
-  Finally, software patents pose a constant threat to the existence of
-any free program.  We wish to make sure that a company cannot
-effectively restrict the users of a free program by obtaining a
-restrictive license from a patent holder.  Therefore, we insist that
-any patent license obtained for a version of the library must be
-consistent with the full freedom of use specified in this license.
-
-  Most GNU software, including some libraries, is covered by the
-ordinary GNU General Public License.  This license, the GNU Lesser
-General Public License, applies to certain designated libraries, and
-is quite different from the ordinary General Public License.  We use
-this license for certain libraries in order to permit linking those
-libraries into non-free programs.
-
-  When a program is linked with a library, whether statically or using
-a shared library, the combination of the two is legally speaking a
-combined work, a derivative of the original library.  The ordinary
-General Public License therefore permits such linking only if the
-entire combination fits its criteria of freedom.  The Lesser General
-Public License permits more lax criteria for linking other code with
-the library.
-
-  We call this license the "Lesser" General Public License because it
-does Less to protect the user's freedom than the ordinary General
-Public License.  It also provides other free software developers Less
-of an advantage over competing non-free programs.  These disadvantages
-are the reason we use the ordinary General Public License for many
-libraries.  However, the Lesser license provides advantages in certain
-special circumstances.
-
-  For example, on rare occasions, there may be a special need to
-encourage the widest possible use of a certain library, so that it becomes
-a de-facto standard.  To achieve this, non-free programs must be
-allowed to use the library.  A more frequent case is that a free
-library does the same job as widely used non-free libraries.  In this
-case, there is little to gain by limiting the free library to free
-software only, so we use the Lesser General Public License.
-
-  In other cases, permission to use a particular library in non-free
-programs enables a greater number of people to use a large body of
-free software.  For example, permission to use the GNU C Library in
-non-free programs enables many more people to use the whole GNU
-operating system, as well as its variant, the GNU/Linux operating
-system.
-
-  Although the Lesser General Public License is Less protective of the
-users' freedom, it does ensure that the user of a program that is
-linked with the Library has the freedom and the wherewithal to run
-that program using a modified version of the Library.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.  Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library".  The
-former contains code derived from the library, whereas the latter must
-be combined with the library in order to run.
-
-		  GNU LESSER GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License Agreement applies to any software library or other
-program which contains a notice placed by the copyright holder or
-other authorized party saying it may be distributed under the terms of
-this Lesser General Public License (also called "this License").
-Each licensee is addressed as "you".
-
-  A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
-  The "Library", below, refers to any such software library or work
-which has been distributed under these terms.  A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language.  (Hereinafter, translation is
-included without limitation in the term "modification".)
-
-  "Source code" for a work means the preferred form of the work for
-making modifications to it.  For a library, 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 library.
-
-  Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it).  Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-  
-  1. You may copy and distribute verbatim copies of the Library's
-complete 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 distribute a copy of this License along with the
-Library.
-
-  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 Library or any portion
-of it, thus forming a work based on the Library, 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) The modified work must itself be a software library.
-
-    b) You must cause the files modified to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    c) You must cause the whole of the work to be licensed at no
-    charge to all third parties under the terms of this License.
-
-    d) If a facility in the modified Library refers to a function or a
-    table of data to be supplied by an application program that uses
-    the facility, other than as an argument passed when the facility
-    is invoked, then you must make a good faith effort to ensure that,
-    in the event an application does not supply such function or
-    table, the facility still operates, and performs whatever part of
-    its purpose remains meaningful.
-
-    (For example, a function in a library to compute square roots has
-    a purpose that is entirely well-defined independent of the
-    application.  Therefore, Subsection 2d requires that any
-    application-supplied function or table used by this function must
-    be optional: if the application does not supply it, the square
-    root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Library,
-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 Library, 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 Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library.  To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License.  (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.)  Do not make any other change in
-these notices.
-
-  Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
-  This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
-  4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you 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.
-
-  If distribution of 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 satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library".  Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
-  However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library".  The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
-  When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library.  The
-threshold for this to be true is not precisely defined by law.
-
-  If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work.  (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
-  Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-
-  6. As an exception to the Sections above, you may also combine or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
-  You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License.  You must supply a copy of this License.  If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License.  Also, you must do one
-of these things:
-
-    a) Accompany the work with the complete corresponding
-    machine-readable source code for the Library including whatever
-    changes were used in the work (which must be distributed under
-    Sections 1 and 2 above); and, if the work is an executable linked
-    with the Library, with the complete machine-readable "work that
-    uses the Library", as object code and/or source code, so that the
-    user can modify the Library and then relink to produce a modified
-    executable containing the modified Library.  (It is understood
-    that the user who changes the contents of definitions files in the
-    Library will not necessarily be able to recompile the application
-    to use the modified definitions.)
-
-    b) Use a suitable shared library mechanism for linking with the
-    Library.  A suitable mechanism is one that (1) uses at run time a
-    copy of the library already present on the user's computer system,
-    rather than copying library functions into the executable, and (2)
-    will operate properly with a modified version of the library, if
-    the user installs one, as long as the modified version is
-    interface-compatible with the version that the work was made with.
-
-    c) Accompany the work with a written offer, valid for at
-    least three years, to give the same user the materials
-    specified in Subsection 6a, above, for a charge no more
-    than the cost of performing this distribution.
-
-    d) If distribution of the work is made by offering access to copy
-    from a designated place, offer equivalent access to copy the above
-    specified materials from the same place.
-
-    e) Verify that the user has already received a copy of these
-    materials or that you have already sent this user a copy.
-
-  For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it.  However, as a special exception,
-the materials to be 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.
-
-  It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system.  Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-
-  7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
-    a) Accompany the combined library with a copy of the same work
-    based on the Library, uncombined with any other library
-    facilities.  This must be distributed under the terms of the
-    Sections above.
-
-    b) Give prominent notice with the combined library of the fact
-    that part of it is a work based on the Library, and explaining
-    where to find the accompanying uncombined form of the same work.
-
-  8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License.  Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library 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.
-
-  9. 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 Library or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
-  10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-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 with
-this License.
-
-  11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Library 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 Library.
-
-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.
-
-  12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library 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.
-
-  13. The Free Software Foundation may publish revised and/or new
-versions of the Lesser 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 Library
-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 Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-
-  14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-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
-
-  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "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
-LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
-  16. 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 LIBRARY 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
-LIBRARY (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 LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), 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 Libraries
-
-  If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change.  You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
-  To apply these terms, attach the following notices to the library.  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 the
-"copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the library's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    This library is free software; you can redistribute it and/or
-    modify it under the terms of the GNU Lesser General Public
-    License as published by the Free Software Foundation; either
-    version 2.1 of the License, or (at your option) any later version.
-
-    This library 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
-    Lesser General Public License for more details.
-
-    You should have received a copy of the GNU Lesser General Public
-    License along with this library; if not, write to the Free Software
-    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the
-  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
-
-  <signature of Ty Coon>, 1 April 1990
-  Ty Coon, President of Vice
-
-That's all there is to it!
-
-
 		   GNU LESSER GENERAL PUBLIC LICENSE
                        Version 3, 29 June 2007
 
@@ -5998,3116 +5998,6 @@
 apply, that proxy's public statement of acceptance of any version is
 permanent authorization for you to choose that version for the
 Library.
-                    GNU GENERAL PUBLIC LICENSE
-                       Version 3, 29 June 2007
-
- 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
-
-  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
-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 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 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.
-
-                       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.
-
-  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 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 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
-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
-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
-    it under the terms of the GNU General Public License as published by
-    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,
-    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, see <http://www.gnu.org/licenses/>.
-
-Also add information on how to contact you by electronic and paper mail.
-
-  If the program does terminal interaction, make it output a short
-notice like this when it starts in an interactive mode:
-
-    <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, 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>.
-                    GNU GENERAL PUBLIC LICENSE
-                       Version 3, 29 June 2007
-
- 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
-
-  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
-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 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 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.
-
-                       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.
-
-  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 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 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
-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
-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
-    it under the terms of the GNU General Public License as published by
-    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,
-    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, see <http://www.gnu.org/licenses/>.
-
-Also add information on how to contact you by electronic and paper mail.
-
-  If the program does terminal interaction, make it output a short
-notice like this when it starts in an interactive mode:
-
-    <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, 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>.
-		    GNU GENERAL PUBLIC LICENSE
-		       Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-     51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-			    Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users.  This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it.  (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.)  You can apply it to
-your programs, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
-  To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have.  You must make sure that they, too, receive or can get the
-source code.  And you must show them these terms so they know their
-rights.
-
-  We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
-  Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software.  If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
-  Finally, any free program is threatened constantly by software
-patents.  We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary.  To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.
-
-		    GNU GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License.  The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language.  (Hereinafter, translation is included without limitation in
-the term "modification".)  Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
-  1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
-  2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) You must cause the modified files to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    b) You must cause any work that you distribute or publish, that in
-    whole or in part contains or is derived from the Program or any
-    part thereof, to be licensed as a whole at no charge to all third
-    parties under the terms of this License.
-
-    c) If the modified program normally reads commands interactively
-    when run, you must cause it, when started running for such
-    interactive use in the most ordinary way, to print or display an
-    announcement including an appropriate copyright notice and a
-    notice that there is no warranty (or else, saying that you provide
-    a warranty) and that users may redistribute the program under
-    these conditions, and telling the user how to view a copy of this
-    License.  (Exception: if the Program itself is interactive but
-    does not normally print such an announcement, your work based on
-    the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
-    a) Accompany it with the complete corresponding machine-readable
-    source code, which must be distributed under the terms of Sections
-    1 and 2 above on a medium customarily used for software interchange; or,
-
-    b) Accompany it with a written offer, valid for at least three
-    years, to give any third party, for a charge no more than your
-    cost of physically performing source distribution, a complete
-    machine-readable copy of the corresponding source code, to be
-    distributed under the terms of Sections 1 and 2 above on a medium
-    customarily used for software interchange; or,
-
-    c) Accompany it with the information you received as to the offer
-    to distribute corresponding source code.  (This alternative is
-    allowed only for noncommercial distribution and only if you
-    received the program in object code or executable form with such
-    an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it.  For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable.  However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License.  Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-  5. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Program or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
-  6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
-  7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded.  In such case, this License incorporates
-the limitation as if written in the body of this License.
-
-  9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time.  Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation.  If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
-  10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission.  For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this.  Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
-			    NO WARRANTY
-
-  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
-  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
-		     END OF TERMS AND CONDITIONS
-
-	    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
-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
-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
-    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., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
-
-
-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:
-
-    Gnomovision version 69, Copyright (C) year  name of author
-    Gnomovision 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.
-
-                  GNU LESSER GENERAL PUBLIC LICENSE
-                       Version 2.1, February 1999
-
- Copyright (C) 1991, 1999 Free Software Foundation, Inc.
-	51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the Lesser GPL.  It also counts
- as the successor of the GNU Library Public License, version 2, hence
- the version number 2.1.]
-
-                            Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
-  This license, the Lesser General Public License, applies to some
-specially designated software packages--typically libraries--of the
-Free Software Foundation and other authors who decide to use it.  You
-can use it too, but we suggest you first think carefully about whether
-this license or the ordinary General Public License is the better
-strategy to use in any particular case, based on the explanations
-below.
-
-  When we speak of free software, we are referring to freedom of use,
-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 and use pieces of
-it in new free programs; and that you are informed that you can do
-these things.
-
-  To protect your rights, we need to make restrictions that forbid
-distributors to deny you these rights or to ask you to surrender these
-rights.  These restrictions translate to certain responsibilities for
-you if you distribute copies of the library or if you modify it.
-
-  For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you.  You must make sure that they, too, receive or can get the source
-code.  If you link other code with the library, you must provide
-complete object files to the recipients, so that they can relink them
-with the library after making changes to the library and recompiling
-it.  And you must show them these terms so they know their rights.
-
-  We protect your rights with a two-step method: (1) we copyright the
-library, and (2) we offer you this license, which gives you legal
-permission to copy, distribute and/or modify the library.
-
-  To protect each distributor, we want to make it very clear that
-there is no warranty for the free library.  Also, if the library is
-modified by someone else and passed on, the recipients should know
-that what they have is not the original version, so that the original
-author's reputation will not be affected by problems that might be
-introduced by others.
-
-  Finally, software patents pose a constant threat to the existence of
-any free program.  We wish to make sure that a company cannot
-effectively restrict the users of a free program by obtaining a
-restrictive license from a patent holder.  Therefore, we insist that
-any patent license obtained for a version of the library must be
-consistent with the full freedom of use specified in this license.
-
-  Most GNU software, including some libraries, is covered by the
-ordinary GNU General Public License.  This license, the GNU Lesser
-General Public License, applies to certain designated libraries, and
-is quite different from the ordinary General Public License.  We use
-this license for certain libraries in order to permit linking those
-libraries into non-free programs.
-
-  When a program is linked with a library, whether statically or using
-a shared library, the combination of the two is legally speaking a
-combined work, a derivative of the original library.  The ordinary
-General Public License therefore permits such linking only if the
-entire combination fits its criteria of freedom.  The Lesser General
-Public License permits more lax criteria for linking other code with
-the library.
-
-  We call this license the "Lesser" General Public License because it
-does Less to protect the user's freedom than the ordinary General
-Public License.  It also provides other free software developers Less
-of an advantage over competing non-free programs.  These disadvantages
-are the reason we use the ordinary General Public License for many
-libraries.  However, the Lesser license provides advantages in certain
-special circumstances.
-
-  For example, on rare occasions, there may be a special need to
-encourage the widest possible use of a certain library, so that it
-becomes a de-facto standard.  To achieve this, non-free programs must
-be allowed to use the library.  A more frequent case is that a free
-library does the same job as widely used non-free libraries.  In this
-case, there is little to gain by limiting the free library to free
-software only, so we use the Lesser General Public License.
-
-  In other cases, permission to use a particular library in non-free
-programs enables a greater number of people to use a large body of
-free software.  For example, permission to use the GNU C Library in
-non-free programs enables many more people to use the whole GNU
-operating system, as well as its variant, the GNU/Linux operating
-system.
-
-  Although the Lesser General Public License is Less protective of the
-users' freedom, it does ensure that the user of a program that is
-linked with the Library has the freedom and the wherewithal to run
-that program using a modified version of the Library.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.  Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library".  The
-former contains code derived from the library, whereas the latter must
-be combined with the library in order to run.
-
-                  GNU LESSER GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License Agreement applies to any software library or other
-program which contains a notice placed by the copyright holder or
-other authorized party saying it may be distributed under the terms of
-this Lesser General Public License (also called "this License").
-Each licensee is addressed as "you".
-
-  A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
-  The "Library", below, refers to any such software library or work
-which has been distributed under these terms.  A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language.  (Hereinafter, translation is
-included without limitation in the term "modification".)
-
-  "Source code" for a work means the preferred form of the work for
-making modifications to it.  For a library, 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 library.
-
-  Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it).  Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-
-  1. You may copy and distribute verbatim copies of the Library's
-complete 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 distribute a copy of this License along with the
-Library.
-
-  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 Library or any portion
-of it, thus forming a work based on the Library, 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) The modified work must itself be a software library.
-
-    b) You must cause the files modified to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    c) You must cause the whole of the work to be licensed at no
-    charge to all third parties under the terms of this License.
-
-    d) If a facility in the modified Library refers to a function or a
-    table of data to be supplied by an application program that uses
-    the facility, other than as an argument passed when the facility
-    is invoked, then you must make a good faith effort to ensure that,
-    in the event an application does not supply such function or
-    table, the facility still operates, and performs whatever part of
-    its purpose remains meaningful.
-
-    (For example, a function in a library to compute square roots has
-    a purpose that is entirely well-defined independent of the
-    application.  Therefore, Subsection 2d requires that any
-    application-supplied function or table used by this function must
-    be optional: if the application does not supply it, the square
-    root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Library,
-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 Library, 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 Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library.  To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License.  (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.)  Do not make any other change in
-these notices.
-
-  Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
-  This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
-  4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you 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.
-
-  If distribution of 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 satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library".  Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
-  However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library".  The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
-  When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library.  The
-threshold for this to be true is not precisely defined by law.
-
-  If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work.  (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
-  Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-
-  6. As an exception to the Sections above, you may also combine or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
-  You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License.  You must supply a copy of this License.  If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License.  Also, you must do one
-of these things:
-
-    a) Accompany the work with the complete corresponding
-    machine-readable source code for the Library including whatever
-    changes were used in the work (which must be distributed under
-    Sections 1 and 2 above); and, if the work is an executable linked
-    with the Library, with the complete machine-readable "work that
-    uses the Library", as object code and/or source code, so that the
-    user can modify the Library and then relink to produce a modified
-    executable containing the modified Library.  (It is understood
-    that the user who changes the contents of definitions files in the
-    Library will not necessarily be able to recompile the application
-    to use the modified definitions.)
-
-    b) Use a suitable shared library mechanism for linking with the
-    Library.  A suitable mechanism is one that (1) uses at run time a
-    copy of the library already present on the user's computer system,
-    rather than copying library functions into the executable, and (2)
-    will operate properly with a modified version of the library, if
-    the user installs one, as long as the modified version is
-    interface-compatible with the version that the work was made with.
-
-    c) Accompany the work with a written offer, valid for at least
-    three years, to give the same user the materials specified in
-    Subsection 6a, above, for a charge no more than the cost of
-    performing this distribution.
-
-    d) If distribution of the work is made by offering access to copy
-    from a designated place, offer equivalent access to copy the above
-    specified materials from the same place.
-
-    e) Verify that the user has already received a copy of these
-    materials or that you have already sent this user a copy.
-
-  For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it.  However, as a special exception,
-the materials to be 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.
-
-  It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system.  Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-
-  7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
-    a) Accompany the combined library with a copy of the same work
-    based on the Library, uncombined with any other library
-    facilities.  This must be distributed under the terms of the
-    Sections above.
-
-    b) Give prominent notice with the combined library of the fact
-    that part of it is a work based on the Library, and explaining
-    where to find the accompanying uncombined form of the same work.
-
-  8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License.  Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library 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.
-
-  9. 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 Library or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
-  10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-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 with
-this License.
-
-  11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Library 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 Library.
-
-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.
-
-  12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library 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.
-
-  13. The Free Software Foundation may publish revised and/or new
-versions of the Lesser 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 Library
-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 Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-
-  14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-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
-
-  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "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
-LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
-  16. 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 LIBRARY 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
-LIBRARY (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 LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), 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 Libraries
-
-  If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change.  You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms
-of the ordinary General Public License).
-
-  To apply these terms, attach the following notices to the library.
-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 the "copyright" line and a pointer to where the full
-notice is found.
-
-
-    <one line to give the library's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    This library is free software; you can redistribute it and/or
-    modify it under the terms of the GNU Lesser General Public
-    License as published by the Free Software Foundation; either
-    version 2.1 of the License, or (at your option) any later version.
-
-    This library 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
-    Lesser General Public License for more details.
-
-    You should have received a copy of the GNU Lesser General Public
-    License along with this library; if not, write to the Free Software
-    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or
-your school, if any, to sign a "copyright disclaimer" for the library,
-if necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the
-  library `Frob' (a library for tweaking knobs) written by James
-  Random Hacker.
-
-  <signature of Ty Coon>, 1 April 1990
-  Ty Coon, President of Vice
-
-That's all there is to it!
-
-
-GCC RUNTIME LIBRARY EXCEPTION
-
-Version 3.1, 31 March 2009
-
-Copyright (C) 2009 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.
-
-This GCC Runtime Library Exception ("Exception") is an additional
-permission under section 7 of the GNU General Public License, version
-3 ("GPLv3"). It applies to a given file (the "Runtime Library") that
-bears a notice placed by the copyright holder of the file stating that
-the file is governed by GPLv3 along with this Exception.
-
-When you use GCC to compile a program, GCC may combine portions of
-certain GCC header files and runtime libraries with the compiled
-program. The purpose of this Exception is to allow compilation of
-non-GPL (including proprietary) programs to use, in this way, the
-header files and runtime libraries covered by this Exception.
-
-0. Definitions.
-
-A file is an "Independent Module" if it either requires the Runtime
-Library for execution after a Compilation Process, or makes use of an
-interface provided by the Runtime Library, but is not otherwise based
-on the Runtime Library.
-
-"GCC" means a version of the GNU Compiler Collection, with or without
-modifications, governed by version 3 (or a specified later version) of
-the GNU General Public License (GPL) with the option of using any
-subsequent versions published by the FSF.
-
-"GPL-compatible Software" is software whose conditions of propagation,
-modification and use would permit combination with GCC in accord with
-the license of GCC.
-
-"Target Code" refers to output from any compiler for a real or virtual
-target processor architecture, in executable form or suitable for
-input to an assembler, loader, linker and/or execution
-phase. Notwithstanding that, Target Code does not include data in any
-format that is used as a compiler intermediate representation, or used
-for producing a compiler intermediate representation.
-
-The "Compilation Process" transforms code entirely represented in
-non-intermediate languages designed for human-written code, and/or in
-Java Virtual Machine byte code, into Target Code. Thus, for example,
-use of source code generators and preprocessors need not be considered
-part of the Compilation Process, since the Compilation Process can be
-understood as starting with the output of the generators or
-preprocessors.
-
-A Compilation Process is "Eligible" if it is done using GCC, alone or
-with other GPL-compatible software, or if it is done without using any
-work based on GCC. For example, using non-GPL-compatible Software to
-optimize any GCC intermediate representations would not qualify as an
-Eligible Compilation Process.
-
-1. Grant of Additional Permission.
-
-You have permission to propagate a work of Target Code formed by
-combining the Runtime Library with Independent Modules, even if such
-propagation would otherwise violate the terms of GPLv3, provided that
-all Target Code was generated by Eligible Compilation Processes. You
-may then convey such a combination under terms of your choice,
-consistent with the licensing of the Independent Modules.
-
-2. No Weakening of GCC Copyleft.
-
-The availability of this Exception does not imply any general
-presumption that third-party software is unaffected by the copyleft
-requirements of the license of GCC.
-
-		   GNU LESSER GENERAL PUBLIC LICENSE
-                       Version 3, 29 June 2007
-
- 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.
-
-
-  This version of the GNU Lesser General Public License incorporates
-the terms and conditions of version 3 of the GNU General Public
-License, supplemented by the additional permissions listed below.
-
-  0. Additional Definitions. 
-
-  As used herein, "this License" refers to version 3 of the GNU Lesser
-General Public License, and the "GNU GPL" refers to version 3 of the GNU
-General Public License.
-
-  "The Library" refers to a covered work governed by this License,
-other than an Application or a Combined Work as defined below.
-
-  An "Application" is any work that makes use of an interface provided
-by the Library, but which is not otherwise based on the Library.
-Defining a subclass of a class defined by the Library is deemed a mode
-of using an interface provided by the Library.
-
-  A "Combined Work" is a work produced by combining or linking an
-Application with the Library.  The particular version of the Library
-with which the Combined Work was made is also called the "Linked
-Version".
-
-  The "Minimal Corresponding Source" for a Combined Work means the
-Corresponding Source for the Combined Work, excluding any source code
-for portions of the Combined Work that, considered in isolation, are
-based on the Application, and not on the Linked Version.
-
-  The "Corresponding Application Code" for a Combined Work means the
-object code and/or source code for the Application, including any data
-and utility programs needed for reproducing the Combined Work from the
-Application, but excluding the System Libraries of the Combined Work.
-
-  1. Exception to Section 3 of the GNU GPL.
-
-  You may convey a covered work under sections 3 and 4 of this License
-without being bound by section 3 of the GNU GPL.
-
-  2. Conveying Modified Versions.
-
-  If you modify a copy of the Library, and, in your modifications, a
-facility refers to a function or data to be supplied by an Application
-that uses the facility (other than as an argument passed when the
-facility is invoked), then you may convey a copy of the modified
-version:
-
-   a) under this License, provided that you make a good faith effort to
-   ensure that, in the event an Application does not supply the
-   function or data, the facility still operates, and performs
-   whatever part of its purpose remains meaningful, or
-
-   b) under the GNU GPL, with none of the additional permissions of
-   this License applicable to that copy.
-
-  3. Object Code Incorporating Material from Library Header Files.
-
-  The object code form of an Application may incorporate material from
-a header file that is part of the Library.  You may convey such object
-code under terms of your choice, provided that, if the incorporated
-material is not limited to numerical parameters, data structure
-layouts and accessors, or small macros, inline functions and templates
-(ten or fewer lines in length), you do both of the following:
-
-   a) Give prominent notice with each copy of the object code that the
-   Library is used in it and that the Library and its use are
-   covered by this License.
-
-   b) Accompany the object code with a copy of the GNU GPL and this license
-   document.
-
-  4. Combined Works.
-
-  You may convey a Combined Work under terms of your choice that,
-taken together, effectively do not restrict modification of the
-portions of the Library contained in the Combined Work and reverse
-engineering for debugging such modifications, if you also do each of
-the following:
-
-   a) Give prominent notice with each copy of the Combined Work that
-   the Library is used in it and that the Library and its use are
-   covered by this License.
-
-   b) Accompany the Combined Work with a copy of the GNU GPL and this license
-   document.
-
-   c) For a Combined Work that displays copyright notices during
-   execution, include the copyright notice for the Library among
-   these notices, as well as a reference directing the user to the
-   copies of the GNU GPL and this license document.
-
-   d) Do one of the following:
-
-       0) Convey the Minimal Corresponding Source under the terms of this
-       License, and the Corresponding Application Code in a form
-       suitable for, and under terms that permit, the user to
-       recombine or relink the Application with a modified version of
-       the Linked Version to produce a modified Combined Work, in the
-       manner specified by section 6 of the GNU GPL for conveying
-       Corresponding Source.
-
-       1) Use a suitable shared library mechanism for linking with the
-       Library.  A suitable mechanism is one that (a) uses at run time
-       a copy of the Library already present on the user's computer
-       system, and (b) will operate properly with a modified version
-       of the Library that is interface-compatible with the Linked
-       Version. 
-
-   e) Provide Installation Information, but only if you would otherwise
-   be required to provide such information under section 6 of the
-   GNU GPL, and only to the extent that such information is
-   necessary to install and execute a modified version of the
-   Combined Work produced by recombining or relinking the
-   Application with a modified version of the Linked Version. (If
-   you use option 4d0, the Installation Information must accompany
-   the Minimal Corresponding Source and Corresponding Application
-   Code. If you use option 4d1, you must provide the Installation
-   Information in the manner specified by section 6 of the GNU GPL
-   for conveying Corresponding Source.)
-
-  5. Combined Libraries.
-
-  You may place library facilities that are a work based on the
-Library side by side in a single library together with other library
-facilities that are not Applications and are not covered by this
-License, and convey such a combined library under terms of your
-choice, if you do both of the following:
-
-   a) Accompany the combined library with a copy of the same work based
-   on the Library, uncombined with any other library facilities,
-   conveyed under the terms of this License.
-
-   b) Give prominent notice with the combined library that part of it
-   is a work based on the Library, and explaining where to find the
-   accompanying uncombined form of the same work.
-
-  6. Revised Versions of the GNU Lesser General Public License.
-
-  The Free Software Foundation may publish revised and/or new versions
-of the GNU Lesser 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
-Library as you received it specifies that a certain numbered version
-of the GNU Lesser General Public License "or any later version"
-applies to it, you have the option of following the terms and
-conditions either of that published version or of any later version
-published by the Free Software Foundation. If the Library as you
-received it does not specify a version number of the GNU Lesser
-General Public License, you may choose any version of the GNU Lesser
-General Public License ever published by the Free Software Foundation.
-
-  If the Library as you received it specifies that a proxy can decide
-whether future versions of the GNU Lesser General Public License shall
-apply, that proxy's public statement of acceptance of any version is
-permanent authorization for you to choose that version for the
-Library.
-                    GNU GENERAL PUBLIC LICENSE
-                       Version 3, 29 June 2007
-
- 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
-
-  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
-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 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 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.
-
-                       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.
-
-  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 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 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
-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
-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
-    it under the terms of the GNU General Public License as published by
-    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,
-    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, see <http://www.gnu.org/licenses/>.
-
-Also add information on how to contact you by electronic and paper mail.
-
-  If the program does terminal interaction, make it output a short
-notice like this when it starts in an interactive mode:
-
-    <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, 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>.
 		  GNU LESSER GENERAL PUBLIC LICENSE
 		       Version 2.1, February 1999
 
@@ -9616,7 +6506,7 @@
 		       Version 2, June 1991
 
  Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-     51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  Everyone is permitted to copy and distribute verbatim copies
  of this license document, but changing it is not allowed.
 
@@ -9919,7 +6809,7 @@
 
     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., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
 
 Also add information on how to contact you by electronic and paper mail.
@@ -9952,346 +6842,6 @@
 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.
-		    GNU GENERAL PUBLIC LICENSE
-		       Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-     51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-			    Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users.  This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it.  (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.)  You can apply it to
-your programs, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
-  To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have.  You must make sure that they, too, receive or can get the
-source code.  And you must show them these terms so they know their
-rights.
-
-  We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
-  Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software.  If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
-  Finally, any free program is threatened constantly by software
-patents.  We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary.  To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.
-
-		    GNU GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License.  The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language.  (Hereinafter, translation is included without limitation in
-the term "modification".)  Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
-  1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
-  2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) You must cause the modified files to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    b) You must cause any work that you distribute or publish, that in
-    whole or in part contains or is derived from the Program or any
-    part thereof, to be licensed as a whole at no charge to all third
-    parties under the terms of this License.
-
-    c) If the modified program normally reads commands interactively
-    when run, you must cause it, when started running for such
-    interactive use in the most ordinary way, to print or display an
-    announcement including an appropriate copyright notice and a
-    notice that there is no warranty (or else, saying that you provide
-    a warranty) and that users may redistribute the program under
-    these conditions, and telling the user how to view a copy of this
-    License.  (Exception: if the Program itself is interactive but
-    does not normally print such an announcement, your work based on
-    the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
-    a) Accompany it with the complete corresponding machine-readable
-    source code, which must be distributed under the terms of Sections
-    1 and 2 above on a medium customarily used for software interchange; or,
-
-    b) Accompany it with a written offer, valid for at least three
-    years, to give any third party, for a charge no more than your
-    cost of physically performing source distribution, a complete
-    machine-readable copy of the corresponding source code, to be
-    distributed under the terms of Sections 1 and 2 above on a medium
-    customarily used for software interchange; or,
-
-    c) Accompany it with the information you received as to the offer
-    to distribute corresponding source code.  (This alternative is
-    allowed only for noncommercial distribution and only if you
-    received the program in object code or executable form with such
-    an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it.  For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable.  However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License.  Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-  5. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Program or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
-  6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
-  7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded.  In such case, this License incorporates
-the limitation as if written in the body of this License.
-
-  9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time.  Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation.  If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
-  10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission.  For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this.  Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
-			    NO WARRANTY
-
-  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
-  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
-		     END OF TERMS AND CONDITIONS
-
-	    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
-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
-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) 19yy  <name of author>
-
-    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., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
-
-
-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:
-
-    Gnomovision version 69, Copyright (C) 19yy name of author
-    Gnomovision 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.
 
                   GNU LESSER GENERAL PUBLIC LICENSE
                        Version 2.1, February 1999
@@ -10811,7 +7361,347 @@
 		       Version 2, June 1991
 
  Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+     51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+		    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+			    NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+	    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
+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
+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) 19yy  <name of author>
+
+    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., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+
+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:
+
+    Gnomovision version 69, Copyright (C) 19yy name of author
+    Gnomovision 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.
+		    GNU GENERAL PUBLIC LICENSE
+		       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+     51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
  Everyone is permitted to copy and distribute verbatim copies
  of this license document, but changing it is not allowed.
 
@@ -11114,7 +8004,7 @@
 
     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
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 
 
 Also add information on how to contact you by electronic and paper mail.
@@ -11487,1179 +8377,1257 @@
 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.
-		  GNU LESSER GENERAL PUBLIC LICENSE
-		       Version 2.1, February 1999
-
- Copyright (C) 1991, 1999 Free Software Foundation, Inc.
-     51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the Lesser GPL.  It also counts
- as the successor of the GNU Library Public License, version 2, hence
- the version number 2.1.]
-
-			    Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
-  This license, the Lesser General Public License, applies to some
-specially designated software packages--typically libraries--of the
-Free Software Foundation and other authors who decide to use it.  You
-can use it too, but we suggest you first think carefully about whether
-this license or the ordinary General Public License is the better
-strategy to use in any particular case, based on the explanations below.
-
-  When we speak of free software, we are referring to freedom of use,
-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 and use pieces of
-it in new free programs; and that you are informed that you can do
-these things.
-
-  To protect your rights, we need to make restrictions that forbid
-distributors to deny you these rights or to ask you to surrender these
-rights.  These restrictions translate to certain responsibilities for
-you if you distribute copies of the library or if you modify it.
-
-  For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you.  You must make sure that they, too, receive or can get the source
-code.  If you link other code with the library, you must provide
-complete object files to the recipients, so that they can relink them
-with the library after making changes to the library and recompiling
-it.  And you must show them these terms so they know their rights.
-
-  We protect your rights with a two-step method: (1) we copyright the
-library, and (2) we offer you this license, which gives you legal
-permission to copy, distribute and/or modify the library.
-
-  To protect each distributor, we want to make it very clear that
-there is no warranty for the free library.  Also, if the library is
-modified by someone else and passed on, the recipients should know
-that what they have is not the original version, so that the original
-author's reputation will not be affected by problems that might be
-introduced by others.
-
-  Finally, software patents pose a constant threat to the existence of
-any free program.  We wish to make sure that a company cannot
-effectively restrict the users of a free program by obtaining a
-restrictive license from a patent holder.  Therefore, we insist that
-any patent license obtained for a version of the library must be
-consistent with the full freedom of use specified in this license.
-
-  Most GNU software, including some libraries, is covered by the
-ordinary GNU General Public License.  This license, the GNU Lesser
-General Public License, applies to certain designated libraries, and
-is quite different from the ordinary General Public License.  We use
-this license for certain libraries in order to permit linking those
-libraries into non-free programs.
-
-  When a program is linked with a library, whether statically or using
-a shared library, the combination of the two is legally speaking a
-combined work, a derivative of the original library.  The ordinary
-General Public License therefore permits such linking only if the
-entire combination fits its criteria of freedom.  The Lesser General
-Public License permits more lax criteria for linking other code with
-the library.
-
-  We call this license the "Lesser" General Public License because it
-does Less to protect the user's freedom than the ordinary General
-Public License.  It also provides other free software developers Less
-of an advantage over competing non-free programs.  These disadvantages
-are the reason we use the ordinary General Public License for many
-libraries.  However, the Lesser license provides advantages in certain
-special circumstances.
-
-  For example, on rare occasions, there may be a special need to
-encourage the widest possible use of a certain library, so that it becomes
-a de-facto standard.  To achieve this, non-free programs must be
-allowed to use the library.  A more frequent case is that a free
-library does the same job as widely used non-free libraries.  In this
-case, there is little to gain by limiting the free library to free
-software only, so we use the Lesser General Public License.
-
-  In other cases, permission to use a particular library in non-free
-programs enables a greater number of people to use a large body of
-free software.  For example, permission to use the GNU C Library in
-non-free programs enables many more people to use the whole GNU
-operating system, as well as its variant, the GNU/Linux operating
-system.
-
-  Although the Lesser General Public License is Less protective of the
-users' freedom, it does ensure that the user of a program that is
-linked with the Library has the freedom and the wherewithal to run
-that program using a modified version of the Library.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.  Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library".  The
-former contains code derived from the library, whereas the latter must
-be combined with the library in order to run.
-
-		  GNU LESSER GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License Agreement applies to any software library or other
-program which contains a notice placed by the copyright holder or
-other authorized party saying it may be distributed under the terms of
-this Lesser General Public License (also called "this License").
-Each licensee is addressed as "you".
-
-  A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
-  The "Library", below, refers to any such software library or work
-which has been distributed under these terms.  A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language.  (Hereinafter, translation is
-included without limitation in the term "modification".)
-
-  "Source code" for a work means the preferred form of the work for
-making modifications to it.  For a library, 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 library.
-
-  Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it).  Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-  
-  1. You may copy and distribute verbatim copies of the Library's
-complete 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 distribute a copy of this License along with the
-Library.
-
-  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 Library or any portion
-of it, thus forming a work based on the Library, 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) The modified work must itself be a software library.
-
-    b) You must cause the files modified to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    c) You must cause the whole of the work to be licensed at no
-    charge to all third parties under the terms of this License.
-
-    d) If a facility in the modified Library refers to a function or a
-    table of data to be supplied by an application program that uses
-    the facility, other than as an argument passed when the facility
-    is invoked, then you must make a good faith effort to ensure that,
-    in the event an application does not supply such function or
-    table, the facility still operates, and performs whatever part of
-    its purpose remains meaningful.
-
-    (For example, a function in a library to compute square roots has
-    a purpose that is entirely well-defined independent of the
-    application.  Therefore, Subsection 2d requires that any
-    application-supplied function or table used by this function must
-    be optional: if the application does not supply it, the square
-    root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Library,
-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 Library, 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 Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library.  To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License.  (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.)  Do not make any other change in
-these notices.
-
-  Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
-  This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
-  4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you 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.
-
-  If distribution of 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 satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library".  Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
-  However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library".  The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
-  When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library.  The
-threshold for this to be true is not precisely defined by law.
-
-  If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work.  (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
-  Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-
-  6. As an exception to the Sections above, you may also combine or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
-  You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License.  You must supply a copy of this License.  If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License.  Also, you must do one
-of these things:
-
-    a) Accompany the work with the complete corresponding
-    machine-readable source code for the Library including whatever
-    changes were used in the work (which must be distributed under
-    Sections 1 and 2 above); and, if the work is an executable linked
-    with the Library, with the complete machine-readable "work that
-    uses the Library", as object code and/or source code, so that the
-    user can modify the Library and then relink to produce a modified
-    executable containing the modified Library.  (It is understood
-    that the user who changes the contents of definitions files in the
-    Library will not necessarily be able to recompile the application
-    to use the modified definitions.)
-
-    b) Use a suitable shared library mechanism for linking with the
-    Library.  A suitable mechanism is one that (1) uses at run time a
-    copy of the library already present on the user's computer system,
-    rather than copying library functions into the executable, and (2)
-    will operate properly with a modified version of the library, if
-    the user installs one, as long as the modified version is
-    interface-compatible with the version that the work was made with.
-
-    c) Accompany the work with a written offer, valid for at
-    least three years, to give the same user the materials
-    specified in Subsection 6a, above, for a charge no more
-    than the cost of performing this distribution.
-
-    d) If distribution of the work is made by offering access to copy
-    from a designated place, offer equivalent access to copy the above
-    specified materials from the same place.
-
-    e) Verify that the user has already received a copy of these
-    materials or that you have already sent this user a copy.
-
-  For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it.  However, as a special exception,
-the materials to be 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.
-
-  It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system.  Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-
-  7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
-    a) Accompany the combined library with a copy of the same work
-    based on the Library, uncombined with any other library
-    facilities.  This must be distributed under the terms of the
-    Sections above.
-
-    b) Give prominent notice with the combined library of the fact
-    that part of it is a work based on the Library, and explaining
-    where to find the accompanying uncombined form of the same work.
-
-  8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License.  Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library 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.
-
-  9. 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 Library or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
-  10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-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 with
-this License.
-
-  11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Library 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 Library.
-
-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.
-
-  12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library 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.
-
-  13. The Free Software Foundation may publish revised and/or new
-versions of the Lesser 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 Library
-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 Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-
-  14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-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
-
-  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "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
-LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
-  16. 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 LIBRARY 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
-LIBRARY (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 LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), 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 Libraries
-
-  If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change.  You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
-  To apply these terms, attach the following notices to the library.  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 the
-"copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the library's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    This library is free software; you can redistribute it and/or
-    modify it under the terms of the GNU Lesser General Public
-    License as published by the Free Software Foundation; either
-    version 2.1 of the License, or (at your option) any later version.
-
-    This library 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
-    Lesser General Public License for more details.
-
-    You should have received a copy of the GNU Lesser General Public
-    License along with this library; if not, write to the Free Software
-    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the
-  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
-
-  <signature of Ty Coon>, 1 April 1990
-  Ty Coon, President of Vice
-
-That's all there is to it!
-
-
-		  GNU LESSER GENERAL PUBLIC LICENSE
-		       Version 2.1, February 1999
-
- Copyright (C) 1991, 1999 Free Software Foundation, Inc.
-     51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the Lesser GPL.  It also counts
- as the successor of the GNU Library Public License, version 2, hence
- the version number 2.1.]
-
-			    Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
-  This license, the Lesser General Public License, applies to some
-specially designated software packages--typically libraries--of the
-Free Software Foundation and other authors who decide to use it.  You
-can use it too, but we suggest you first think carefully about whether
-this license or the ordinary General Public License is the better
-strategy to use in any particular case, based on the explanations below.
-
-  When we speak of free software, we are referring to freedom of use,
-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 and use pieces of
-it in new free programs; and that you are informed that you can do
-these things.
-
-  To protect your rights, we need to make restrictions that forbid
-distributors to deny you these rights or to ask you to surrender these
-rights.  These restrictions translate to certain responsibilities for
-you if you distribute copies of the library or if you modify it.
-
-  For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you.  You must make sure that they, too, receive or can get the source
-code.  If you link other code with the library, you must provide
-complete object files to the recipients, so that they can relink them
-with the library after making changes to the library and recompiling
-it.  And you must show them these terms so they know their rights.
-
-  We protect your rights with a two-step method: (1) we copyright the
-library, and (2) we offer you this license, which gives you legal
-permission to copy, distribute and/or modify the library.
-
-  To protect each distributor, we want to make it very clear that
-there is no warranty for the free library.  Also, if the library is
-modified by someone else and passed on, the recipients should know
-that what they have is not the original version, so that the original
-author's reputation will not be affected by problems that might be
-introduced by others.
-
-  Finally, software patents pose a constant threat to the existence of
-any free program.  We wish to make sure that a company cannot
-effectively restrict the users of a free program by obtaining a
-restrictive license from a patent holder.  Therefore, we insist that
-any patent license obtained for a version of the library must be
-consistent with the full freedom of use specified in this license.
-
-  Most GNU software, including some libraries, is covered by the
-ordinary GNU General Public License.  This license, the GNU Lesser
-General Public License, applies to certain designated libraries, and
-is quite different from the ordinary General Public License.  We use
-this license for certain libraries in order to permit linking those
-libraries into non-free programs.
-
-  When a program is linked with a library, whether statically or using
-a shared library, the combination of the two is legally speaking a
-combined work, a derivative of the original library.  The ordinary
-General Public License therefore permits such linking only if the
-entire combination fits its criteria of freedom.  The Lesser General
-Public License permits more lax criteria for linking other code with
-the library.
-
-  We call this license the "Lesser" General Public License because it
-does Less to protect the user's freedom than the ordinary General
-Public License.  It also provides other free software developers Less
-of an advantage over competing non-free programs.  These disadvantages
-are the reason we use the ordinary General Public License for many
-libraries.  However, the Lesser license provides advantages in certain
-special circumstances.
-
-  For example, on rare occasions, there may be a special need to
-encourage the widest possible use of a certain library, so that it becomes
-a de-facto standard.  To achieve this, non-free programs must be
-allowed to use the library.  A more frequent case is that a free
-library does the same job as widely used non-free libraries.  In this
-case, there is little to gain by limiting the free library to free
-software only, so we use the Lesser General Public License.
-
-  In other cases, permission to use a particular library in non-free
-programs enables a greater number of people to use a large body of
-free software.  For example, permission to use the GNU C Library in
-non-free programs enables many more people to use the whole GNU
-operating system, as well as its variant, the GNU/Linux operating
-system.
-
-  Although the Lesser General Public License is Less protective of the
-users' freedom, it does ensure that the user of a program that is
-linked with the Library has the freedom and the wherewithal to run
-that program using a modified version of the Library.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.  Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library".  The
-former contains code derived from the library, whereas the latter must
-be combined with the library in order to run.
-
-		  GNU LESSER GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License Agreement applies to any software library or other
-program which contains a notice placed by the copyright holder or
-other authorized party saying it may be distributed under the terms of
-this Lesser General Public License (also called "this License").
-Each licensee is addressed as "you".
-
-  A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
-  The "Library", below, refers to any such software library or work
-which has been distributed under these terms.  A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language.  (Hereinafter, translation is
-included without limitation in the term "modification".)
-
-  "Source code" for a work means the preferred form of the work for
-making modifications to it.  For a library, 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 library.
-
-  Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it).  Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-  
-  1. You may copy and distribute verbatim copies of the Library's
-complete 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 distribute a copy of this License along with the
-Library.
-
-  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 Library or any portion
-of it, thus forming a work based on the Library, 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) The modified work must itself be a software library.
-
-    b) You must cause the files modified to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    c) You must cause the whole of the work to be licensed at no
-    charge to all third parties under the terms of this License.
-
-    d) If a facility in the modified Library refers to a function or a
-    table of data to be supplied by an application program that uses
-    the facility, other than as an argument passed when the facility
-    is invoked, then you must make a good faith effort to ensure that,
-    in the event an application does not supply such function or
-    table, the facility still operates, and performs whatever part of
-    its purpose remains meaningful.
-
-    (For example, a function in a library to compute square roots has
-    a purpose that is entirely well-defined independent of the
-    application.  Therefore, Subsection 2d requires that any
-    application-supplied function or table used by this function must
-    be optional: if the application does not supply it, the square
-    root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Library,
-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 Library, 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 Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library.  To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License.  (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.)  Do not make any other change in
-these notices.
-
-  Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
-  This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
-  4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you 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.
-
-  If distribution of 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 satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library".  Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
-  However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library".  The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
-  When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library.  The
-threshold for this to be true is not precisely defined by law.
-
-  If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work.  (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
-  Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-
-  6. As an exception to the Sections above, you may also combine or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
-  You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License.  You must supply a copy of this License.  If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License.  Also, you must do one
-of these things:
-
-    a) Accompany the work with the complete corresponding
-    machine-readable source code for the Library including whatever
-    changes were used in the work (which must be distributed under
-    Sections 1 and 2 above); and, if the work is an executable linked
-    with the Library, with the complete machine-readable "work that
-    uses the Library", as object code and/or source code, so that the
-    user can modify the Library and then relink to produce a modified
-    executable containing the modified Library.  (It is understood
-    that the user who changes the contents of definitions files in the
-    Library will not necessarily be able to recompile the application
-    to use the modified definitions.)
-
-    b) Use a suitable shared library mechanism for linking with the
-    Library.  A suitable mechanism is one that (1) uses at run time a
-    copy of the library already present on the user's computer system,
-    rather than copying library functions into the executable, and (2)
-    will operate properly with a modified version of the library, if
-    the user installs one, as long as the modified version is
-    interface-compatible with the version that the work was made with.
-
-    c) Accompany the work with a written offer, valid for at
-    least three years, to give the same user the materials
-    specified in Subsection 6a, above, for a charge no more
-    than the cost of performing this distribution.
-
-    d) If distribution of the work is made by offering access to copy
-    from a designated place, offer equivalent access to copy the above
-    specified materials from the same place.
-
-    e) Verify that the user has already received a copy of these
-    materials or that you have already sent this user a copy.
-
-  For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it.  However, as a special exception,
-the materials to be 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.
-
-  It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system.  Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-
-  7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
-    a) Accompany the combined library with a copy of the same work
-    based on the Library, uncombined with any other library
-    facilities.  This must be distributed under the terms of the
-    Sections above.
-
-    b) Give prominent notice with the combined library of the fact
-    that part of it is a work based on the Library, and explaining
-    where to find the accompanying uncombined form of the same work.
-
-  8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License.  Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library 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.
-
-  9. 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 Library or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
-  10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-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 with
-this License.
-
-  11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Library 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 Library.
-
-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.
-
-  12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library 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.
-
-  13. The Free Software Foundation may publish revised and/or new
-versions of the Lesser 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 Library
-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 Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-
-  14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-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
-
-  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "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
-LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
-  16. 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 LIBRARY 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
-LIBRARY (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 LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), 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 Libraries
-
-  If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change.  You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
-  To apply these terms, attach the following notices to the library.  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 the
-"copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the library's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    This library is free software; you can redistribute it and/or
-    modify it under the terms of the GNU Lesser General Public
-    License as published by the Free Software Foundation; either
-    version 2.1 of the License, or (at your option) any later version.
-
-    This library 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
-    Lesser General Public License for more details.
-
-    You should have received a copy of the GNU Lesser General Public
-    License along with this library; if not, write to the Free Software
-    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the
-  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
-
-  <signature of Ty Coon>, 1 April 1990
-  Ty Coon, President of Vice
-
-That's all there is to it!
-
-
-		   GNU LESSER GENERAL PUBLIC LICENSE
+                    GNU GENERAL PUBLIC LICENSE
                        Version 3, 29 June 2007
 
  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
 
-  This version of the GNU Lesser General Public License incorporates
-the terms and conditions of version 3 of the GNU General Public
-License, supplemented by the additional permissions listed below.
+  The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
 
-  0. Additional Definitions. 
+  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.
 
-  As used herein, "this License" refers to version 3 of the GNU Lesser
-General Public License, and the "GNU GPL" refers to version 3 of the GNU
-General Public License.
+  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
+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.
 
-  "The Library" refers to a covered work governed by this License,
-other than an Application or a Combined Work as defined below.
+  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.
 
-  An "Application" is any work that makes use of an interface provided
-by the Library, but which is not otherwise based on the Library.
-Defining a subclass of a class defined by the Library is deemed a mode
-of using an interface provided by the Library.
+  For example, if you distribute copies of such a program, whether
+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.
 
-  A "Combined Work" is a work produced by combining or linking an
-Application with the Library.  The particular version of the Library
-with which the Combined Work was made is also called the "Linked
-Version".
+  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.
 
-  The "Minimal Corresponding Source" for a Combined Work means the
-Corresponding Source for the Combined Work, excluding any source code
-for portions of the Combined Work that, considered in isolation, are
-based on the Application, and not on the Linked Version.
+  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.
 
-  The "Corresponding Application Code" for a Combined Work means the
-object code and/or source code for the Application, including any data
-and utility programs needed for reproducing the Combined Work from the
-Application, but excluding the System Libraries of the Combined Work.
+  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.
 
-  1. Exception to Section 3 of the GNU GPL.
+  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.
 
-  You may convey a covered work under sections 3 and 4 of this License
-without being bound by section 3 of the GNU GPL.
+  The precise terms and conditions for copying, distribution and
+modification follow.
 
-  2. Conveying Modified Versions.
+                       TERMS AND CONDITIONS
 
-  If you modify a copy of the Library, and, in your modifications, a
-facility refers to a function or data to be supplied by an Application
-that uses the facility (other than as an argument passed when the
-facility is invoked), then you may convey a copy of the modified
-version:
+  0. Definitions.
 
-   a) under this License, provided that you make a good faith effort to
-   ensure that, in the event an Application does not supply the
-   function or data, the facility still operates, and performs
-   whatever part of its purpose remains meaningful, or
+  "This License" refers to version 3 of the GNU General Public License.
 
-   b) under the GNU GPL, with none of the additional permissions of
-   this License applicable to that copy.
+  "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
 
-  3. Object Code Incorporating Material from Library Header Files.
+  "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.
 
-  The object code form of an Application may incorporate material from
-a header file that is part of the Library.  You may convey such object
-code under terms of your choice, provided that, if the incorporated
-material is not limited to numerical parameters, data structure
-layouts and accessors, or small macros, inline functions and templates
-(ten or fewer lines in length), you do both of the following:
+  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) Give prominent notice with each copy of the object code that the
-   Library is used in it and that the Library and its use are
-   covered by this License.
+  A "covered work" means either the unmodified Program or a work based
+on the Program.
 
-   b) Accompany the object code with a copy of the GNU GPL and this license
-   document.
+  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.
 
-  4. Combined Works.
+  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.
 
-  You may convey a Combined Work under terms of your choice that,
-taken together, effectively do not restrict modification of the
-portions of the Library contained in the Combined Work and reverse
-engineering for debugging such modifications, if you also do each of
-the following:
+  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.
 
-   a) Give prominent notice with each copy of the Combined Work that
-   the Library is used in it and that the Library and its use are
-   covered by this License.
+  1. Source Code.
 
-   b) Accompany the Combined Work with a copy of the GNU GPL and this license
-   document.
+  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.
 
-   c) For a Combined Work that displays copyright notices during
-   execution, include the copyright notice for the Library among
-   these notices, as well as a reference directing the user to the
-   copies of the GNU GPL and this license document.
+  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.
 
-   d) Do one of the following:
+  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.
 
-       0) Convey the Minimal Corresponding Source under the terms of this
-       License, and the Corresponding Application Code in a form
-       suitable for, and under terms that permit, the user to
-       recombine or relink the Application with a modified version of
-       the Linked Version to produce a modified Combined Work, in the
-       manner specified by section 6 of the GNU GPL for conveying
-       Corresponding Source.
+  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.
 
-       1) Use a suitable shared library mechanism for linking with the
-       Library.  A suitable mechanism is one that (a) uses at run time
-       a copy of the Library already present on the user's computer
-       system, and (b) will operate properly with a modified version
-       of the Library that is interface-compatible with the Linked
-       Version. 
+  The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
 
-   e) Provide Installation Information, but only if you would otherwise
-   be required to provide such information under section 6 of the
-   GNU GPL, and only to the extent that such information is
-   necessary to install and execute a modified version of the
-   Combined Work produced by recombining or relinking the
-   Application with a modified version of the Linked Version. (If
-   you use option 4d0, the Installation Information must accompany
-   the Minimal Corresponding Source and Corresponding Application
-   Code. If you use option 4d1, you must provide the Installation
-   Information in the manner specified by section 6 of the GNU GPL
-   for conveying Corresponding Source.)
+  The Corresponding Source for a work in source code form is that
+same work.
 
-  5. Combined Libraries.
+  2. Basic Permissions.
 
-  You may place library facilities that are a work based on the
-Library side by side in a single library together with other library
-facilities that are not Applications and are not covered by this
-License, and convey such a combined library under terms of your
-choice, if you do both of the following:
+  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.
 
-   a) Accompany the combined library with a copy of the same work based
-   on the Library, uncombined with any other library facilities,
-   conveyed under the terms of this License.
+  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.
 
-   b) Give prominent notice with the combined library that part of it
-   is a work based on the Library, and explaining where to find the
-   accompanying uncombined form of the same work.
+  Conveying under any other circumstances is permitted solely under
+the conditions stated below.  Sublicensing is not allowed; section 10
+makes it unnecessary.
 
-  6. Revised Versions of the GNU Lesser General Public License.
+  3. Protecting Users' Legal Rights From Anti-Circumvention Law.
 
-  The Free Software Foundation may publish revised and/or new versions
-of the GNU Lesser 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.
+  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.
 
-  Each version is given a distinguishing version number. If the
-Library as you received it specifies that a certain numbered version
-of the GNU Lesser General Public License "or any later version"
-applies to it, you have the option of following the terms and
-conditions either of that published version or of any later version
-published by the Free Software Foundation. If the Library as you
-received it does not specify a version number of the GNU Lesser
-General Public License, you may choose any version of the GNU Lesser
-General Public License ever published by the Free Software Foundation.
+  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.
 
-  If the Library as you received it specifies that a proxy can decide
-whether future versions of the GNU Lesser General Public License shall
-apply, that proxy's public statement of acceptance of any version is
-permanent authorization for you to choose that version for the
+  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.
+
+  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 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 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
+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
+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
+    it under the terms of the GNU General Public License as published by
+    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,
+    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, see <http://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+  If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+    <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, 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>.
+		  GNU LESSER GENERAL PUBLIC LICENSE
+		       Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+     51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL.  It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+  This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it.  You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+  When we speak of free software, we are referring to freedom of use,
+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 and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+  To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights.  These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  To protect each distributor, we want to make it very clear that
+there is no warranty for the free library.  Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+  Finally, software patents pose a constant threat to the existence of
+any free program.  We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder.  Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+  Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License.  This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License.  We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+  When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library.  The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom.  The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+  We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License.  It also provides other free software developers Less
+of an advantage over competing non-free programs.  These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries.  However, the Lesser license provides advantages in certain
+special circumstances.
+
+  For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard.  To achieve this, non-free programs must be
+allowed to use the library.  A more frequent case is that a free
+library does the same job as widely used non-free libraries.  In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+  In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software.  For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+  Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+		  GNU LESSER GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+  A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+  "Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, 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 library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+  
+  1. You may copy and distribute verbatim copies of the Library's
+complete 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 distribute a copy of this License along with the
 Library.
+
+  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 Library or any portion
+of it, thus forming a work based on the Library, 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) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+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 Library, 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 Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+
+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you 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.
+
+  If distribution of 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 satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+  6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable "work that
+    uses the Library", as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Use a suitable shared library mechanism for linking with the
+    Library.  A suitable mechanism is one that (1) uses at run time a
+    copy of the library already present on the user's computer system,
+    rather than copying library functions into the executable, and (2)
+    will operate properly with a modified version of the library, if
+    the user installs one, as long as the modified version is
+    interface-compatible with the version that the work was made with.
+
+    c) Accompany the work with a written offer, valid for at
+    least three years, to give the same user the materials
+    specified in Subsection 6a, above, for a charge no more
+    than the cost of performing this distribution.
+
+    d) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    e) Verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the materials to be 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.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library 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.
+
+  9. 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 Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+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 with
+this License.
+
+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library 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 Library.
+
+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.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library 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.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser 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 Library
+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 Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+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
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "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
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. 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 LIBRARY 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
+LIBRARY (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 LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), 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 Libraries
+
+  If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change.  You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+  To apply these terms, attach the following notices to the library.  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 the
+"copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the library's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library 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
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
+  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+  <signature of Ty Coon>, 1 April 1990
+  Ty Coon, President of Vice
+
+That's all there is to it!
+
+
+GCC RUNTIME LIBRARY EXCEPTION
+
+Version 3.1, 31 March 2009
+
+Copyright (C) 2009 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.
+
+This GCC Runtime Library Exception ("Exception") is an additional
+permission under section 7 of the GNU General Public License, version
+3 ("GPLv3"). It applies to a given file (the "Runtime Library") that
+bears a notice placed by the copyright holder of the file stating that
+the file is governed by GPLv3 along with this Exception.
+
+When you use GCC to compile a program, GCC may combine portions of
+certain GCC header files and runtime libraries with the compiled
+program. The purpose of this Exception is to allow compilation of
+non-GPL (including proprietary) programs to use, in this way, the
+header files and runtime libraries covered by this Exception.
+
+0. Definitions.
+
+A file is an "Independent Module" if it either requires the Runtime
+Library for execution after a Compilation Process, or makes use of an
+interface provided by the Runtime Library, but is not otherwise based
+on the Runtime Library.
+
+"GCC" means a version of the GNU Compiler Collection, with or without
+modifications, governed by version 3 (or a specified later version) of
+the GNU General Public License (GPL) with the option of using any
+subsequent versions published by the FSF.
+
+"GPL-compatible Software" is software whose conditions of propagation,
+modification and use would permit combination with GCC in accord with
+the license of GCC.
+
+"Target Code" refers to output from any compiler for a real or virtual
+target processor architecture, in executable form or suitable for
+input to an assembler, loader, linker and/or execution
+phase. Notwithstanding that, Target Code does not include data in any
+format that is used as a compiler intermediate representation, or used
+for producing a compiler intermediate representation.
+
+The "Compilation Process" transforms code entirely represented in
+non-intermediate languages designed for human-written code, and/or in
+Java Virtual Machine byte code, into Target Code. Thus, for example,
+use of source code generators and preprocessors need not be considered
+part of the Compilation Process, since the Compilation Process can be
+understood as starting with the output of the generators or
+preprocessors.
+
+A Compilation Process is "Eligible" if it is done using GCC, alone or
+with other GPL-compatible software, or if it is done without using any
+work based on GCC. For example, using non-GPL-compatible Software to
+optimize any GCC intermediate representations would not qualify as an
+Eligible Compilation Process.
+
+1. Grant of Additional Permission.
+
+You have permission to propagate a work of Target Code formed by
+combining the Runtime Library with Independent Modules, even if such
+propagation would otherwise violate the terms of GPLv3, provided that
+all Target Code was generated by Eligible Compilation Processes. You
+may then convey such a combination under terms of your choice,
+consistent with the licensing of the Independent Modules.
+
+2. No Weakening of GCC Copyleft.
+
+The availability of this Exception does not imply any general
+presumption that third-party software is unaffected by the copyleft
+requirements of the license of GCC.
+
                     GNU GENERAL PUBLIC LICENSE
                        Version 3, 29 June 2007
 
@@ -13499,6 +10467,346 @@
 apply, that proxy's public statement of acceptance of any version is
 permanent authorization for you to choose that version for the
 Library.
+		    GNU GENERAL PUBLIC LICENSE
+		       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+     51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+		    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+			    NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+	    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
+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
+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
+    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., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+
+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:
+
+    Gnomovision version 69, Copyright (C) year  name of author
+    Gnomovision 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.
                     GNU GENERAL PUBLIC LICENSE
                        Version 3, 29 June 2007
 
@@ -14173,6 +11481,1020 @@
 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>.
+		  GNU LESSER GENERAL PUBLIC LICENSE
+		       Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+     51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL.  It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+  This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it.  You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+  When we speak of free software, we are referring to freedom of use,
+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 and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+  To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights.  These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  To protect each distributor, we want to make it very clear that
+there is no warranty for the free library.  Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+  Finally, software patents pose a constant threat to the existence of
+any free program.  We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder.  Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+  Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License.  This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License.  We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+  When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library.  The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom.  The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+  We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License.  It also provides other free software developers Less
+of an advantage over competing non-free programs.  These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries.  However, the Lesser license provides advantages in certain
+special circumstances.
+
+  For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard.  To achieve this, non-free programs must be
+allowed to use the library.  A more frequent case is that a free
+library does the same job as widely used non-free libraries.  In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+  In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software.  For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+  Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+		  GNU LESSER GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+  A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+  "Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, 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 library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+  
+  1. You may copy and distribute verbatim copies of the Library's
+complete 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 distribute a copy of this License along with the
+Library.
+
+  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 Library or any portion
+of it, thus forming a work based on the Library, 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) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+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 Library, 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 Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+
+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you 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.
+
+  If distribution of 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 satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+  6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable "work that
+    uses the Library", as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Use a suitable shared library mechanism for linking with the
+    Library.  A suitable mechanism is one that (1) uses at run time a
+    copy of the library already present on the user's computer system,
+    rather than copying library functions into the executable, and (2)
+    will operate properly with a modified version of the library, if
+    the user installs one, as long as the modified version is
+    interface-compatible with the version that the work was made with.
+
+    c) Accompany the work with a written offer, valid for at
+    least three years, to give the same user the materials
+    specified in Subsection 6a, above, for a charge no more
+    than the cost of performing this distribution.
+
+    d) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    e) Verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the materials to be 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.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library 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.
+
+  9. 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 Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+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 with
+this License.
+
+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library 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 Library.
+
+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.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library 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.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser 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 Library
+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 Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+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
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "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
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. 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 LIBRARY 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
+LIBRARY (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 LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), 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 Libraries
+
+  If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change.  You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+  To apply these terms, attach the following notices to the library.  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 the
+"copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the library's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library 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
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
+  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+  <signature of Ty Coon>, 1 April 1990
+  Ty Coon, President of Vice
+
+That's all there is to it!
+
+
+
+                  GNU LESSER GENERAL PUBLIC LICENSE
+                       Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+	51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL.  It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+                            Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+  This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it.  You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations
+below.
+
+  When we speak of free software, we are referring to freedom of use,
+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 and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+  To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights.  These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  To protect each distributor, we want to make it very clear that
+there is no warranty for the free library.  Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+  Finally, software patents pose a constant threat to the existence of
+any free program.  We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder.  Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+  Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License.  This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License.  We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+  When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library.  The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom.  The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+  We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License.  It also provides other free software developers Less
+of an advantage over competing non-free programs.  These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries.  However, the Lesser license provides advantages in certain
+special circumstances.
+
+  For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it
+becomes a de-facto standard.  To achieve this, non-free programs must
+be allowed to use the library.  A more frequent case is that a free
+library does the same job as widely used non-free libraries.  In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+  In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software.  For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+  Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+                  GNU LESSER GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+  A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+  "Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, 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 library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+  1. You may copy and distribute verbatim copies of the Library's
+complete 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 distribute a copy of this License along with the
+Library.
+
+  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 Library or any portion
+of it, thus forming a work based on the Library, 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) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+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 Library, 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 Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+
+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you 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.
+
+  If distribution of 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 satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+  6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable "work that
+    uses the Library", as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Use a suitable shared library mechanism for linking with the
+    Library.  A suitable mechanism is one that (1) uses at run time a
+    copy of the library already present on the user's computer system,
+    rather than copying library functions into the executable, and (2)
+    will operate properly with a modified version of the library, if
+    the user installs one, as long as the modified version is
+    interface-compatible with the version that the work was made with.
+
+    c) Accompany the work with a written offer, valid for at least
+    three years, to give the same user the materials specified in
+    Subsection 6a, above, for a charge no more than the cost of
+    performing this distribution.
+
+    d) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    e) Verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the materials to be 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.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library 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.
+
+  9. 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 Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+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 with
+this License.
+
+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library 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 Library.
+
+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.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library 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.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser 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 Library
+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 Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+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
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "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
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. 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 LIBRARY 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
+LIBRARY (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 LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), 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 Libraries
+
+  If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change.  You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms
+of the ordinary General Public License).
+
+  To apply these terms, attach the following notices to the library.
+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 the "copyright" line and a pointer to where the full
+notice is found.
+
+
+    <one line to give the library's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library 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
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or
+your school, if any, to sign a "copyright disclaimer" for the library,
+if necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
+  library `Frob' (a library for tweaking knobs) written by James
+  Random Hacker.
+
+  <signature of Ty Coon>, 1 April 1990
+  Ty Coon, President of Vice
+
+That's all there is to it!
+
+
                    GNU LESSER GENERAL PUBLIC LICENSE
                        Version 3, 29 June 2007
 
@@ -14338,3 +12660,1681 @@
 apply, that proxy's public statement of acceptance of any version is
 permanent authorization for you to choose that version for the
 Library.
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 3, 29 June 2007
+
+ 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
+
+  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
+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 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 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.
+
+                       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.
+
+  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 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 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
+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
+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
+    it under the terms of the GNU General Public License as published by
+    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,
+    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, see <http://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+  If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+    <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, 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>.
+		   GNU LESSER GENERAL PUBLIC LICENSE
+                       Version 3, 29 June 2007
+
+ 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.
+
+
+  This version of the GNU Lesser General Public License incorporates
+the terms and conditions of version 3 of the GNU General Public
+License, supplemented by the additional permissions listed below.
+
+  0. Additional Definitions. 
+
+  As used herein, "this License" refers to version 3 of the GNU Lesser
+General Public License, and the "GNU GPL" refers to version 3 of the GNU
+General Public License.
+
+  "The Library" refers to a covered work governed by this License,
+other than an Application or a Combined Work as defined below.
+
+  An "Application" is any work that makes use of an interface provided
+by the Library, but which is not otherwise based on the Library.
+Defining a subclass of a class defined by the Library is deemed a mode
+of using an interface provided by the Library.
+
+  A "Combined Work" is a work produced by combining or linking an
+Application with the Library.  The particular version of the Library
+with which the Combined Work was made is also called the "Linked
+Version".
+
+  The "Minimal Corresponding Source" for a Combined Work means the
+Corresponding Source for the Combined Work, excluding any source code
+for portions of the Combined Work that, considered in isolation, are
+based on the Application, and not on the Linked Version.
+
+  The "Corresponding Application Code" for a Combined Work means the
+object code and/or source code for the Application, including any data
+and utility programs needed for reproducing the Combined Work from the
+Application, but excluding the System Libraries of the Combined Work.
+
+  1. Exception to Section 3 of the GNU GPL.
+
+  You may convey a covered work under sections 3 and 4 of this License
+without being bound by section 3 of the GNU GPL.
+
+  2. Conveying Modified Versions.
+
+  If you modify a copy of the Library, and, in your modifications, a
+facility refers to a function or data to be supplied by an Application
+that uses the facility (other than as an argument passed when the
+facility is invoked), then you may convey a copy of the modified
+version:
+
+   a) under this License, provided that you make a good faith effort to
+   ensure that, in the event an Application does not supply the
+   function or data, the facility still operates, and performs
+   whatever part of its purpose remains meaningful, or
+
+   b) under the GNU GPL, with none of the additional permissions of
+   this License applicable to that copy.
+
+  3. Object Code Incorporating Material from Library Header Files.
+
+  The object code form of an Application may incorporate material from
+a header file that is part of the Library.  You may convey such object
+code under terms of your choice, provided that, if the incorporated
+material is not limited to numerical parameters, data structure
+layouts and accessors, or small macros, inline functions and templates
+(ten or fewer lines in length), you do both of the following:
+
+   a) Give prominent notice with each copy of the object code that the
+   Library is used in it and that the Library and its use are
+   covered by this License.
+
+   b) Accompany the object code with a copy of the GNU GPL and this license
+   document.
+
+  4. Combined Works.
+
+  You may convey a Combined Work under terms of your choice that,
+taken together, effectively do not restrict modification of the
+portions of the Library contained in the Combined Work and reverse
+engineering for debugging such modifications, if you also do each of
+the following:
+
+   a) Give prominent notice with each copy of the Combined Work that
+   the Library is used in it and that the Library and its use are
+   covered by this License.
+
+   b) Accompany the Combined Work with a copy of the GNU GPL and this license
+   document.
+
+   c) For a Combined Work that displays copyright notices during
+   execution, include the copyright notice for the Library among
+   these notices, as well as a reference directing the user to the
+   copies of the GNU GPL and this license document.
+
+   d) Do one of the following:
+
+       0) Convey the Minimal Corresponding Source under the terms of this
+       License, and the Corresponding Application Code in a form
+       suitable for, and under terms that permit, the user to
+       recombine or relink the Application with a modified version of
+       the Linked Version to produce a modified Combined Work, in the
+       manner specified by section 6 of the GNU GPL for conveying
+       Corresponding Source.
+
+       1) Use a suitable shared library mechanism for linking with the
+       Library.  A suitable mechanism is one that (a) uses at run time
+       a copy of the Library already present on the user's computer
+       system, and (b) will operate properly with a modified version
+       of the Library that is interface-compatible with the Linked
+       Version. 
+
+   e) Provide Installation Information, but only if you would otherwise
+   be required to provide such information under section 6 of the
+   GNU GPL, and only to the extent that such information is
+   necessary to install and execute a modified version of the
+   Combined Work produced by recombining or relinking the
+   Application with a modified version of the Linked Version. (If
+   you use option 4d0, the Installation Information must accompany
+   the Minimal Corresponding Source and Corresponding Application
+   Code. If you use option 4d1, you must provide the Installation
+   Information in the manner specified by section 6 of the GNU GPL
+   for conveying Corresponding Source.)
+
+  5. Combined Libraries.
+
+  You may place library facilities that are a work based on the
+Library side by side in a single library together with other library
+facilities that are not Applications and are not covered by this
+License, and convey such a combined library under terms of your
+choice, if you do both of the following:
+
+   a) Accompany the combined library with a copy of the same work based
+   on the Library, uncombined with any other library facilities,
+   conveyed under the terms of this License.
+
+   b) Give prominent notice with the combined library that part of it
+   is a work based on the Library, and explaining where to find the
+   accompanying uncombined form of the same work.
+
+  6. Revised Versions of the GNU Lesser General Public License.
+
+  The Free Software Foundation may publish revised and/or new versions
+of the GNU Lesser 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
+Library as you received it specifies that a certain numbered version
+of the GNU Lesser General Public License "or any later version"
+applies to it, you have the option of following the terms and
+conditions either of that published version or of any later version
+published by the Free Software Foundation. If the Library as you
+received it does not specify a version number of the GNU Lesser
+General Public License, you may choose any version of the GNU Lesser
+General Public License ever published by the Free Software Foundation.
+
+  If the Library as you received it specifies that a proxy can decide
+whether future versions of the GNU Lesser General Public License shall
+apply, that proxy's public statement of acceptance of any version is
+permanent authorization for you to choose that version for the
+Library.
+		   GNU LESSER GENERAL PUBLIC LICENSE
+                       Version 3, 29 June 2007
+
+ 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.
+
+
+  This version of the GNU Lesser General Public License incorporates
+the terms and conditions of version 3 of the GNU General Public
+License, supplemented by the additional permissions listed below.
+
+  0. Additional Definitions. 
+
+  As used herein, "this License" refers to version 3 of the GNU Lesser
+General Public License, and the "GNU GPL" refers to version 3 of the GNU
+General Public License.
+
+  "The Library" refers to a covered work governed by this License,
+other than an Application or a Combined Work as defined below.
+
+  An "Application" is any work that makes use of an interface provided
+by the Library, but which is not otherwise based on the Library.
+Defining a subclass of a class defined by the Library is deemed a mode
+of using an interface provided by the Library.
+
+  A "Combined Work" is a work produced by combining or linking an
+Application with the Library.  The particular version of the Library
+with which the Combined Work was made is also called the "Linked
+Version".
+
+  The "Minimal Corresponding Source" for a Combined Work means the
+Corresponding Source for the Combined Work, excluding any source code
+for portions of the Combined Work that, considered in isolation, are
+based on the Application, and not on the Linked Version.
+
+  The "Corresponding Application Code" for a Combined Work means the
+object code and/or source code for the Application, including any data
+and utility programs needed for reproducing the Combined Work from the
+Application, but excluding the System Libraries of the Combined Work.
+
+  1. Exception to Section 3 of the GNU GPL.
+
+  You may convey a covered work under sections 3 and 4 of this License
+without being bound by section 3 of the GNU GPL.
+
+  2. Conveying Modified Versions.
+
+  If you modify a copy of the Library, and, in your modifications, a
+facility refers to a function or data to be supplied by an Application
+that uses the facility (other than as an argument passed when the
+facility is invoked), then you may convey a copy of the modified
+version:
+
+   a) under this License, provided that you make a good faith effort to
+   ensure that, in the event an Application does not supply the
+   function or data, the facility still operates, and performs
+   whatever part of its purpose remains meaningful, or
+
+   b) under the GNU GPL, with none of the additional permissions of
+   this License applicable to that copy.
+
+  3. Object Code Incorporating Material from Library Header Files.
+
+  The object code form of an Application may incorporate material from
+a header file that is part of the Library.  You may convey such object
+code under terms of your choice, provided that, if the incorporated
+material is not limited to numerical parameters, data structure
+layouts and accessors, or small macros, inline functions and templates
+(ten or fewer lines in length), you do both of the following:
+
+   a) Give prominent notice with each copy of the object code that the
+   Library is used in it and that the Library and its use are
+   covered by this License.
+
+   b) Accompany the object code with a copy of the GNU GPL and this license
+   document.
+
+  4. Combined Works.
+
+  You may convey a Combined Work under terms of your choice that,
+taken together, effectively do not restrict modification of the
+portions of the Library contained in the Combined Work and reverse
+engineering for debugging such modifications, if you also do each of
+the following:
+
+   a) Give prominent notice with each copy of the Combined Work that
+   the Library is used in it and that the Library and its use are
+   covered by this License.
+
+   b) Accompany the Combined Work with a copy of the GNU GPL and this license
+   document.
+
+   c) For a Combined Work that displays copyright notices during
+   execution, include the copyright notice for the Library among
+   these notices, as well as a reference directing the user to the
+   copies of the GNU GPL and this license document.
+
+   d) Do one of the following:
+
+       0) Convey the Minimal Corresponding Source under the terms of this
+       License, and the Corresponding Application Code in a form
+       suitable for, and under terms that permit, the user to
+       recombine or relink the Application with a modified version of
+       the Linked Version to produce a modified Combined Work, in the
+       manner specified by section 6 of the GNU GPL for conveying
+       Corresponding Source.
+
+       1) Use a suitable shared library mechanism for linking with the
+       Library.  A suitable mechanism is one that (a) uses at run time
+       a copy of the Library already present on the user's computer
+       system, and (b) will operate properly with a modified version
+       of the Library that is interface-compatible with the Linked
+       Version. 
+
+   e) Provide Installation Information, but only if you would otherwise
+   be required to provide such information under section 6 of the
+   GNU GPL, and only to the extent that such information is
+   necessary to install and execute a modified version of the
+   Combined Work produced by recombining or relinking the
+   Application with a modified version of the Linked Version. (If
+   you use option 4d0, the Installation Information must accompany
+   the Minimal Corresponding Source and Corresponding Application
+   Code. If you use option 4d1, you must provide the Installation
+   Information in the manner specified by section 6 of the GNU GPL
+   for conveying Corresponding Source.)
+
+  5. Combined Libraries.
+
+  You may place library facilities that are a work based on the
+Library side by side in a single library together with other library
+facilities that are not Applications and are not covered by this
+License, and convey such a combined library under terms of your
+choice, if you do both of the following:
+
+   a) Accompany the combined library with a copy of the same work based
+   on the Library, uncombined with any other library facilities,
+   conveyed under the terms of this License.
+
+   b) Give prominent notice with the combined library that part of it
+   is a work based on the Library, and explaining where to find the
+   accompanying uncombined form of the same work.
+
+  6. Revised Versions of the GNU Lesser General Public License.
+
+  The Free Software Foundation may publish revised and/or new versions
+of the GNU Lesser 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
+Library as you received it specifies that a certain numbered version
+of the GNU Lesser General Public License "or any later version"
+applies to it, you have the option of following the terms and
+conditions either of that published version or of any later version
+published by the Free Software Foundation. If the Library as you
+received it does not specify a version number of the GNU Lesser
+General Public License, you may choose any version of the GNU Lesser
+General Public License ever published by the Free Software Foundation.
+
+  If the Library as you received it specifies that a proxy can decide
+whether future versions of the GNU Lesser General Public License shall
+apply, that proxy's public statement of acceptance of any version is
+permanent authorization for you to choose that version for the
+Library.
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 3, 29 June 2007
+
+ 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
+
+  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
+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 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 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.
+
+                       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.
+
+  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 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 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
+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
+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
+    it under the terms of the GNU General Public License as published by
+    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,
+    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, see <http://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+  If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+    <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, 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/README b/README
index d898227..d3181e0 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-This file has been automatically generated on Thu Feb  2 20:33:18 UTC 2017 with the following command:
+This file has been automatically generated on Wed Jun 20 17:39:44 UTC 2018 with the following command:
 build.sh 
 
 The MD5 hashes for the original sources packages are:
diff --git a/bin/x86_64-w64-mingw32-addr2line b/bin/x86_64-w64-mingw32-addr2line
index dba1a3b..23be781 100755
--- a/bin/x86_64-w64-mingw32-addr2line
+++ b/bin/x86_64-w64-mingw32-addr2line
Binary files differ
diff --git a/bin/x86_64-w64-mingw32-ar b/bin/x86_64-w64-mingw32-ar
index 44b299c..7997747 100755
--- a/bin/x86_64-w64-mingw32-ar
+++ b/bin/x86_64-w64-mingw32-ar
Binary files differ
diff --git a/bin/x86_64-w64-mingw32-as b/bin/x86_64-w64-mingw32-as
index e05e3d4..6600e17 100755
--- a/bin/x86_64-w64-mingw32-as
+++ b/bin/x86_64-w64-mingw32-as
Binary files differ
diff --git a/bin/x86_64-w64-mingw32-c++ b/bin/x86_64-w64-mingw32-c++
index 7d17e5a..82e0e21 100755
--- a/bin/x86_64-w64-mingw32-c++
+++ b/bin/x86_64-w64-mingw32-c++
Binary files differ
diff --git a/bin/x86_64-w64-mingw32-c++filt b/bin/x86_64-w64-mingw32-c++filt
index 0310aa1..805ef00 100755
--- a/bin/x86_64-w64-mingw32-c++filt
+++ b/bin/x86_64-w64-mingw32-c++filt
Binary files differ
diff --git a/bin/x86_64-w64-mingw32-cpp b/bin/x86_64-w64-mingw32-cpp
index 1b38e43..01ae45d 100755
--- a/bin/x86_64-w64-mingw32-cpp
+++ b/bin/x86_64-w64-mingw32-cpp
Binary files differ
diff --git a/bin/x86_64-w64-mingw32-dlltool b/bin/x86_64-w64-mingw32-dlltool
index 346979d..3a727ca 100755
--- a/bin/x86_64-w64-mingw32-dlltool
+++ b/bin/x86_64-w64-mingw32-dlltool
Binary files differ
diff --git a/bin/x86_64-w64-mingw32-dllwrap b/bin/x86_64-w64-mingw32-dllwrap
index e2d071e..10a6d9c 100755
--- a/bin/x86_64-w64-mingw32-dllwrap
+++ b/bin/x86_64-w64-mingw32-dllwrap
Binary files differ
diff --git a/bin/x86_64-w64-mingw32-elfedit b/bin/x86_64-w64-mingw32-elfedit
index 2b154ae..3e54663 100755
--- a/bin/x86_64-w64-mingw32-elfedit
+++ b/bin/x86_64-w64-mingw32-elfedit
Binary files differ
diff --git a/bin/x86_64-w64-mingw32-g++ b/bin/x86_64-w64-mingw32-g++
index 7d17e5a..82e0e21 100755
--- a/bin/x86_64-w64-mingw32-g++
+++ b/bin/x86_64-w64-mingw32-g++
Binary files differ
diff --git a/bin/x86_64-w64-mingw32-gcc b/bin/x86_64-w64-mingw32-gcc
index 9f07546..9ec5fdd 100755
--- a/bin/x86_64-w64-mingw32-gcc
+++ b/bin/x86_64-w64-mingw32-gcc
Binary files differ
diff --git a/bin/x86_64-w64-mingw32-gcc-4.8.3 b/bin/x86_64-w64-mingw32-gcc-4.8.3
index 9f07546..9ec5fdd 100755
--- a/bin/x86_64-w64-mingw32-gcc-4.8.3
+++ b/bin/x86_64-w64-mingw32-gcc-4.8.3
Binary files differ
diff --git a/bin/x86_64-w64-mingw32-gcc-ar b/bin/x86_64-w64-mingw32-gcc-ar
index 994717e..4a92d48 100755
--- a/bin/x86_64-w64-mingw32-gcc-ar
+++ b/bin/x86_64-w64-mingw32-gcc-ar
Binary files differ
diff --git a/bin/x86_64-w64-mingw32-gcc-nm b/bin/x86_64-w64-mingw32-gcc-nm
index 2af16a1..71e7ffa 100755
--- a/bin/x86_64-w64-mingw32-gcc-nm
+++ b/bin/x86_64-w64-mingw32-gcc-nm
Binary files differ
diff --git a/bin/x86_64-w64-mingw32-gcc-ranlib b/bin/x86_64-w64-mingw32-gcc-ranlib
index 3a9338a..854efd4 100755
--- a/bin/x86_64-w64-mingw32-gcc-ranlib
+++ b/bin/x86_64-w64-mingw32-gcc-ranlib
Binary files differ
diff --git a/bin/x86_64-w64-mingw32-gcov b/bin/x86_64-w64-mingw32-gcov
index bd3545b..2cb52a8 100755
--- a/bin/x86_64-w64-mingw32-gcov
+++ b/bin/x86_64-w64-mingw32-gcov
Binary files differ
diff --git a/bin/x86_64-w64-mingw32-gprof b/bin/x86_64-w64-mingw32-gprof
index 79c46c1..3c227fc 100755
--- a/bin/x86_64-w64-mingw32-gprof
+++ b/bin/x86_64-w64-mingw32-gprof
Binary files differ
diff --git a/bin/x86_64-w64-mingw32-ld b/bin/x86_64-w64-mingw32-ld
index de6bc0b..fc559e8 100755
--- a/bin/x86_64-w64-mingw32-ld
+++ b/bin/x86_64-w64-mingw32-ld
Binary files differ
diff --git a/bin/x86_64-w64-mingw32-ld.bfd b/bin/x86_64-w64-mingw32-ld.bfd
index de6bc0b..fc559e8 100755
--- a/bin/x86_64-w64-mingw32-ld.bfd
+++ b/bin/x86_64-w64-mingw32-ld.bfd
Binary files differ
diff --git a/bin/x86_64-w64-mingw32-nm b/bin/x86_64-w64-mingw32-nm
index 596472b..a9dabc1 100755
--- a/bin/x86_64-w64-mingw32-nm
+++ b/bin/x86_64-w64-mingw32-nm
Binary files differ
diff --git a/bin/x86_64-w64-mingw32-objcopy b/bin/x86_64-w64-mingw32-objcopy
index 66218f9..1f0e4c5 100755
--- a/bin/x86_64-w64-mingw32-objcopy
+++ b/bin/x86_64-w64-mingw32-objcopy
Binary files differ
diff --git a/bin/x86_64-w64-mingw32-objdump b/bin/x86_64-w64-mingw32-objdump
index 1648cac..6340cda 100755
--- a/bin/x86_64-w64-mingw32-objdump
+++ b/bin/x86_64-w64-mingw32-objdump
Binary files differ
diff --git a/bin/x86_64-w64-mingw32-ranlib b/bin/x86_64-w64-mingw32-ranlib
index 620d213..2a9dcee 100755
--- a/bin/x86_64-w64-mingw32-ranlib
+++ b/bin/x86_64-w64-mingw32-ranlib
Binary files differ
diff --git a/bin/x86_64-w64-mingw32-readelf b/bin/x86_64-w64-mingw32-readelf
index 39615ea..502a1bf 100755
--- a/bin/x86_64-w64-mingw32-readelf
+++ b/bin/x86_64-w64-mingw32-readelf
Binary files differ
diff --git a/bin/x86_64-w64-mingw32-size b/bin/x86_64-w64-mingw32-size
index 59ee848..ff6ae73 100755
--- a/bin/x86_64-w64-mingw32-size
+++ b/bin/x86_64-w64-mingw32-size
Binary files differ
diff --git a/bin/x86_64-w64-mingw32-strings b/bin/x86_64-w64-mingw32-strings
index e92843c..2cf9674 100755
--- a/bin/x86_64-w64-mingw32-strings
+++ b/bin/x86_64-w64-mingw32-strings
Binary files differ
diff --git a/bin/x86_64-w64-mingw32-strip b/bin/x86_64-w64-mingw32-strip
index 5edbc2b..3391b27 100755
--- a/bin/x86_64-w64-mingw32-strip
+++ b/bin/x86_64-w64-mingw32-strip
Binary files differ
diff --git a/bin/x86_64-w64-mingw32-widl b/bin/x86_64-w64-mingw32-widl
index daa843b..7522dcb 100755
--- a/bin/x86_64-w64-mingw32-widl
+++ b/bin/x86_64-w64-mingw32-widl
Binary files differ
diff --git a/bin/x86_64-w64-mingw32-windmc b/bin/x86_64-w64-mingw32-windmc
index 8e73b82..dfd8e86 100755
--- a/bin/x86_64-w64-mingw32-windmc
+++ b/bin/x86_64-w64-mingw32-windmc
Binary files differ
diff --git a/bin/x86_64-w64-mingw32-windres b/bin/x86_64-w64-mingw32-windres
index bb84dc4..e65c14e 100755
--- a/bin/x86_64-w64-mingw32-windres
+++ b/bin/x86_64-w64-mingw32-windres
Binary files differ
diff --git a/build.sh b/build.sh
index dcaa6a9..e000948 100755
--- a/build.sh
+++ b/build.sh
@@ -91,7 +91,7 @@
 GMP_VERSION=5.0.5
 MPFR_VERSION=3.1.1
 MPC_VERSION=1.0.1
-BINUTILS_VERSION=2.25
+BINUTILS_VERSION=2.27
 GCC_VERSION=4.8.3
 MINGW_W64_VERSION=v5.0.0
 
@@ -220,7 +220,7 @@
 
 setup_host_build_env ()
 {
-    local BINPREFIX=$ANDROID_BUILD_TOP/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.11-4.8/bin/x86_64-linux-
+    local BINPREFIX=$ANDROID_BUILD_TOP/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.15-4.8/bin/x86_64-linux-
 
     CC=${BINPREFIX}gcc
     CXX=${BINPREFIX}g++
@@ -504,6 +504,7 @@
 var_append GCC_CONFIGURE_OPTIONS "--enable-languages=c,c++"
 var_append GCC_CONFIGURE_OPTIONS "--with-sysroot=$INSTALL_DIR"
 var_append GCC_CONFIGURE_OPTIONS "--enable-threads=posix"
+var_append GCC_CONFIGURE_OPTIONS "--enable-shared=libgcc"
 
 build_mingw_tools mingw-w64-tools
 build_mingw_headers mingw-w64-headers
diff --git a/include/gmp.h b/include/gmp.h
index adc2b17..beadb28 100644
--- a/include/gmp.h
+++ b/include/gmp.h
@@ -2266,7 +2266,7 @@
 };
 
 /* Define CC and CFLAGS which were used to build this version of GMP */
-#define __GMP_CC "/usr/local/google/buildbot/src/android/mingw/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.11-4.8/bin/x86_64-linux-gcc -std=gnu99"
+#define __GMP_CC "/buildbot/src/android/mingw/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.15-4.8/bin/x86_64-linux-gcc -std=gnu99"
 #define __GMP_CFLAGS "-O2 -fomit-frame-pointer -s"
 
 /* Major version number is the value of __GNU_MP__ too, above and in mp.h. */
diff --git a/lib/gcc/x86_64-w64-mingw32/4.8.3/32/crtfastmath.o b/lib/gcc/x86_64-w64-mingw32/4.8.3/32/crtfastmath.o
index ce11f40..57ce6f9 100644
--- a/lib/gcc/x86_64-w64-mingw32/4.8.3/32/crtfastmath.o
+++ b/lib/gcc/x86_64-w64-mingw32/4.8.3/32/crtfastmath.o
Binary files differ
diff --git a/lib/gcc/x86_64-w64-mingw32/4.8.3/32/libgcc.a b/lib/gcc/x86_64-w64-mingw32/4.8.3/32/libgcc.a
index b2232c1..2101117 100644
--- a/lib/gcc/x86_64-w64-mingw32/4.8.3/32/libgcc.a
+++ b/lib/gcc/x86_64-w64-mingw32/4.8.3/32/libgcc.a
Binary files differ
diff --git a/lib/gcc/x86_64-w64-mingw32/4.8.3/32/libgcc_eh.a b/lib/gcc/x86_64-w64-mingw32/4.8.3/32/libgcc_eh.a
new file mode 100644
index 0000000..8aefac0
--- /dev/null
+++ b/lib/gcc/x86_64-w64-mingw32/4.8.3/32/libgcc_eh.a
Binary files differ
diff --git a/lib/gcc/x86_64-w64-mingw32/4.8.3/32/libgcov.a b/lib/gcc/x86_64-w64-mingw32/4.8.3/32/libgcov.a
index 8dc0aca..a034332 100644
--- a/lib/gcc/x86_64-w64-mingw32/4.8.3/32/libgcov.a
+++ b/lib/gcc/x86_64-w64-mingw32/4.8.3/32/libgcov.a
Binary files differ
diff --git a/lib/gcc/x86_64-w64-mingw32/4.8.3/crtfastmath.o b/lib/gcc/x86_64-w64-mingw32/4.8.3/crtfastmath.o
index b69c190..c710eff 100644
--- a/lib/gcc/x86_64-w64-mingw32/4.8.3/crtfastmath.o
+++ b/lib/gcc/x86_64-w64-mingw32/4.8.3/crtfastmath.o
Binary files differ
diff --git a/lib/gcc/x86_64-w64-mingw32/4.8.3/install-tools/mkheaders.conf b/lib/gcc/x86_64-w64-mingw32/4.8.3/install-tools/mkheaders.conf
index 1f2ae4c..8035427 100644
--- a/lib/gcc/x86_64-w64-mingw32/4.8.3/install-tools/mkheaders.conf
+++ b/lib/gcc/x86_64-w64-mingw32/4.8.3/install-tools/mkheaders.conf
@@ -1,3 +1,3 @@
-SYSTEM_HEADER_DIR="/usr/local/google/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8${sysroot_headers_suffix}/mingw/include"
+SYSTEM_HEADER_DIR="/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8${sysroot_headers_suffix}/mingw/include"
 OTHER_FIXINCLUDES_DIRS=""
 STMP_FIXINC="stmp-fixinc"
diff --git a/lib/gcc/x86_64-w64-mingw32/4.8.3/libgcc.a b/lib/gcc/x86_64-w64-mingw32/4.8.3/libgcc.a
index bf05703..41a6138 100644
--- a/lib/gcc/x86_64-w64-mingw32/4.8.3/libgcc.a
+++ b/lib/gcc/x86_64-w64-mingw32/4.8.3/libgcc.a
Binary files differ
diff --git a/lib/gcc/x86_64-w64-mingw32/4.8.3/libgcc_eh.a b/lib/gcc/x86_64-w64-mingw32/4.8.3/libgcc_eh.a
new file mode 100644
index 0000000..ec00575
--- /dev/null
+++ b/lib/gcc/x86_64-w64-mingw32/4.8.3/libgcc_eh.a
Binary files differ
diff --git a/lib/gcc/x86_64-w64-mingw32/4.8.3/libgcov.a b/lib/gcc/x86_64-w64-mingw32/4.8.3/libgcov.a
index 3a0fb82..c4a5f39 100644
--- a/lib/gcc/x86_64-w64-mingw32/4.8.3/libgcov.a
+++ b/lib/gcc/x86_64-w64-mingw32/4.8.3/libgcov.a
Binary files differ
diff --git a/lib/gcc/x86_64-w64-mingw32/4.8.3/plugin/gtype.state b/lib/gcc/x86_64-w64-mingw32/4.8.3/plugin/gtype.state
index 485240b..db29401 100644
--- a/lib/gcc/x86_64-w64-mingw32/4.8.3/plugin/gtype.state
+++ b/lib/gcc/x86_64-w64-mingw32/4.8.3/plugin/gtype.state
@@ -6,7 +6,7 @@
 
 (!version  "4.8.3")
 
-(!srcdir  "/usr/local/google/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc")
+(!srcdir  "/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc")
 
 (!languages 9 ada c cp fortran go java lto objc objcp)
 
@@ -334,12 +334,12 @@
 (!srcfileloc  "tree.h" 437)
 nil )
 (!pair  "u"
-(!type union 12 nil  gc_unused "anonymous:/usr/local/google/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/tree.h:439"
+(!type union 12 nil  gc_unused "anonymous:/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/tree.h:439"
 (!srcfileloc  "tree.h" 472)
 
 (!fields 3 
 (!pair  "bits"
-(!type struct 13 nil  gc_unused "anonymous:/usr/local/google/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/tree.h:442"
+(!type struct 13 nil  gc_unused "anonymous:/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/tree.h:442"
 (!srcfileloc  "tree.h" 464)
 
 (!fields 15 
@@ -8074,7 +8074,7 @@
 (!srcfileloc  "gimple.h" 285)
 nil )
 (!pair  "u"
-(!type union 323 nil  gc_used "anonymous:/usr/local/google/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/gimple.h:288"
+(!type union 323 nil  gc_used "anonymous:/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/gimple.h:288"
 (!srcfileloc  "gimple.h" 291)
 
 (!fields 2 
@@ -8345,7 +8345,7 @@
 )
 )
 (!pair  "loc"
-(!type union 336 nil  gc_unused "anonymous:/usr/local/google/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/tree.h:1960"
+(!type union 336 nil  gc_unused "anonymous:/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/tree.h:1960"
 (!srcfileloc  "tree.h" 1960)
 
 (!fields 2 
@@ -8992,7 +8992,7 @@
 )
 )
 (!pair  "x"
-(!type struct 361 nil  gc_used "anonymous:/usr/local/google/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/basic-block.h:199"
+(!type struct 361 nil  gc_used "anonymous:/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/basic-block.h:199"
 (!srcfileloc  "basic-block.h" 202)
 
 (!fields 2 
@@ -15891,7 +15891,7 @@
 
 (!fields 11 
 (!pair  "u"
-(!type union 590 nil  gc_used "anonymous:/usr/local/google/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/c/c-decl.c:188"
+(!type union 590 nil  gc_used "anonymous:/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/c/c-decl.c:188"
 (!srcfileloc  "c/c-decl.c" 191)
 
 (!fields 2 
@@ -17131,7 +17131,7 @@
 (!fields 0 )
 nil 0 nil )
 
-(!type struct 653 nil  gc_unused "anonymous:/usr/local/google/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/java/expr.c:2058"nil 
+(!type struct 653 nil  gc_unused "anonymous:/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/java/expr.c:2058"nil 
 (!fields 0 )
 nil 0 nil )
 
@@ -17268,11 +17268,11 @@
 nil ))
 nil 8 nil )
 
-(!type struct 663 nil  gc_unused "anonymous:/usr/local/google/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/fortran/trans.h:334"nil 
+(!type struct 663 nil  gc_unused "anonymous:/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/fortran/trans.h:334"nil 
 (!fields 0 )
 nil 0 nil )
 
-(!type struct 664 nil  gc_unused "anonymous:/usr/local/google/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/fortran/trans.h:322"nil 
+(!type struct 664 nil  gc_unused "anonymous:/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/fortran/trans.h:322"nil 
 (!fields 0 )
 nil 0 nil )
 
@@ -17296,7 +17296,7 @@
 (!fields 0 )
 nil 0 nil )
 
-(!type struct 670 nil  gc_unused "anonymous:/usr/local/google/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/fortran/trans.h:31"nil 
+(!type struct 670 nil  gc_unused "anonymous:/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/fortran/trans.h:31"nil 
 (!fields 0 )
 nil 0 nil )
 
@@ -18633,7 +18633,7 @@
 
 (!type already_seen 112)
 
-(!type struct 759 nil  gc_unused "anonymous:/usr/local/google/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/c/c-parser.c:5589"nil 
+(!type struct 759 nil  gc_unused "anonymous:/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/c/c-parser.c:5589"nil 
 (!fields 0 )
 nil 0 nil )
 
@@ -18744,7 +18744,7 @@
 (!fields 0 )
 nil 0 nil )
 
-(!type struct 765 nil  gc_unused "anonymous:/usr/local/google/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/c-family/c-pragma.c:1160"nil 
+(!type struct 765 nil  gc_unused "anonymous:/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/c-family/c-pragma.c:1160"nil 
 (!fields 0 )
 nil 0 nil )
 
@@ -19317,7 +19317,7 @@
 (!fields 0 )
 nil 0 nil )
 
-(!type struct 821 nil  gc_unused "anonymous:/usr/local/google/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/ada/gcc-interface/decl.c:172"nil 
+(!type struct 821 nil  gc_unused "anonymous:/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/ada/gcc-interface/decl.c:172"nil 
 (!fields 0 )
 nil 0 nil )
 
@@ -20070,7 +20070,7 @@
 nil ))
 nil 511 nil )
 
-(!type struct 903 nil  gc_unused "anonymous:/usr/local/google/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/lto-streamer.h:451"nil 
+(!type struct 903 nil  gc_unused "anonymous:/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/lto-streamer.h:451"nil 
 (!fields 0 )
 nil 0 nil )
 
@@ -20082,7 +20082,7 @@
 (!fields 0 )
 nil 0 nil )
 
-(!type struct 906 nil  gc_unused "anonymous:/usr/local/google/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/lto-streamer.h:426"nil 
+(!type struct 906 nil  gc_unused "anonymous:/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/lto-streamer.h:426"nil 
 (!fields 0 )
 nil 0 nil )
 
@@ -21471,15 +21471,15 @@
 (!fields 0 )
 nil 0 nil )
 
-(!type struct 1004 nil  gc_unused "anonymous:/usr/local/google/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/config/i386/i386.c:31237"nil 
+(!type struct 1004 nil  gc_unused "anonymous:/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/config/i386/i386.c:31237"nil 
 (!fields 0 )
 nil 0 nil )
 
-(!type struct 1005 nil  gc_unused "anonymous:/usr/local/google/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/config/i386/i386.c:30762"nil 
+(!type struct 1005 nil  gc_unused "anonymous:/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/config/i386/i386.c:30762"nil 
 (!fields 0 )
 nil 0 nil )
 
-(!type struct 1006 nil  gc_unused "anonymous:/usr/local/google/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/config/i386/i386.c:30075"nil 
+(!type struct 1006 nil  gc_unused "anonymous:/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/config/i386/i386.c:30075"nil 
 (!fields 0 )
 nil 0 nil )
 
@@ -21731,7 +21731,7 @@
 (!fields 0 )
 nil 0 nil )
 
-(!type union 1052 nil  gc_unused "anonymous:/usr/local/google/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/tree-eh.c:41"nil 
+(!type union 1052 nil  gc_unused "anonymous:/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/tree-eh.c:41"nil 
 (!fields 0 )
 nil 0 nil )
 
@@ -21743,7 +21743,7 @@
 (!fields 0 )
 nil 0 nil )
 
-(!type struct 1055 nil  gc_unused "anonymous:/usr/local/google/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/tree-flow.h:571"nil 
+(!type struct 1055 nil  gc_unused "anonymous:/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/tree-flow.h:571"nil 
 (!fields 0 )
 nil 0 nil )
 
@@ -21792,7 +21792,7 @@
 (!fields 0 )
 nil 0 nil )
 
-(!type struct 1063 nil  gc_unused "anonymous:/usr/local/google/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/tree-flow.h:103"nil 
+(!type struct 1063 nil  gc_unused "anonymous:/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/tree-flow.h:103"nil 
 (!fields 0 )
 nil 0 nil )
 
@@ -21884,7 +21884,7 @@
 
 (!type already_seen 312)
 
-(!type struct 1069 nil  gc_unused "anonymous:/usr/local/google/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/gimple.h:134"nil 
+(!type struct 1069 nil  gc_unused "anonymous:/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/gimple.h:134"nil 
 (!fields 0 )
 nil 0 nil )
 
@@ -21903,11 +21903,11 @@
 (!fields 0 )
 nil 0 nil )
 
-(!type struct 1072 nil  gc_unused "anonymous:/usr/local/google/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/varasm.c:4712"nil 
+(!type struct 1072 nil  gc_unused "anonymous:/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/varasm.c:4712"nil 
 (!fields 0 )
 nil 0 nil )
 
-(!type struct 1073 nil  gc_unused "anonymous:/usr/local/google/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/varasm.c:4464"nil 
+(!type struct 1073 nil  gc_unused "anonymous:/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/varasm.c:4464"nil 
 (!fields 0 )
 nil 0 nil )
 
@@ -22000,7 +22000,7 @@
 (!fields 0 )
 nil 0 nil )
 
-(!type union 1087 nil  gc_unused "anonymous:/usr/local/google/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/mcf.c:344"nil 
+(!type union 1087 nil  gc_unused "anonymous:/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/mcf.c:344"nil 
 (!fields 0 )
 nil 0 nil )
 
@@ -22823,7 +22823,7 @@
 (!fields 0 )
 nil 0 nil )
 
-(!type struct 1179 nil  gc_unused "anonymous:/usr/local/google/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/dwarf2cfi.c:192"nil 
+(!type struct 1179 nil  gc_unused "anonymous:/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/dwarf2cfi.c:192"nil 
 (!fields 0 )
 nil 0 nil )
 
@@ -22831,7 +22831,7 @@
 (!type pointer 1181 nil  gc_unused
 (!type already_seen 1180)
 )
- gc_unused "anonymous:/usr/local/google/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/dwarf2cfi.c:98"nil 
+ gc_unused "anonymous:/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/dwarf2cfi.c:98"nil 
 (!fields 0 )
 nil 0 nil )
 
@@ -23330,11 +23330,11 @@
 
 (!type already_seen 940)
 
-(!type struct 1238 nil  gc_unused "anonymous:/usr/local/google/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/cgraph.h:363"nil 
+(!type struct 1238 nil  gc_unused "anonymous:/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/cgraph.h:363"nil 
 (!fields 0 )
 nil 0 nil )
 
-(!type struct 1239 nil  gc_unused "anonymous:/usr/local/google/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/cgraph.h:356"nil 
+(!type struct 1239 nil  gc_unused "anonymous:/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/cgraph.h:356"nil 
 (!fields 0 )
 nil 0 nil )
 
@@ -23420,7 +23420,7 @@
 
 (!type already_seen 920)
 
-(!type struct 1246 nil  gc_unused "anonymous:/usr/local/google/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/basic-block.h:574"nil 
+(!type struct 1246 nil  gc_unused "anonymous:/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/basic-block.h:574"nil 
 (!fields 0 )
 nil 0 nil )
 
@@ -23468,7 +23468,7 @@
 
 (!type already_seen 878)
 
-(!type struct 1254 nil  gc_unused "anonymous:/usr/local/google/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/cfgloop.h:544"nil 
+(!type struct 1254 nil  gc_unused "anonymous:/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/cfgloop.h:544"nil 
 (!fields 0 )
 nil 0 nil )
 
@@ -24387,7 +24387,7 @@
 (!fields 0 )
 nil 0 nil )
 
-(!type struct 1304 nil  gc_unused "anonymous:/usr/local/google/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/tree.h:5525"nil 
+(!type struct 1304 nil  gc_unused "anonymous:/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/tree.h:5525"nil 
 (!fields 0 )
 nil 0 nil )
 
@@ -24944,7 +24944,7 @@
 
 (!type already_seen 259)
 
-(!type struct 1323 nil  gc_unused "anonymous:/usr/local/google/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/rtl.h:116"nil 
+(!type struct 1323 nil  gc_unused "anonymous:/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/rtl.h:116"nil 
 (!fields 0 )
 nil 0 nil )
 
@@ -25002,7 +25002,7 @@
 )
 511 nil )
 
-(!type struct 1329 nil  gc_unused "anonymous:/usr/local/google/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/bitmap.h:316"nil 
+(!type struct 1329 nil  gc_unused "anonymous:/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/bitmap.h:316"nil 
 (!fields 0 )
 nil 0 nil )
 
@@ -25104,11 +25104,11 @@
 (!fields 0 )
 nil 0 nil )
 
-(!type struct 1345 nil  gc_unused "anonymous:/usr/local/google/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/../libcpp/include/cpplib.h:984"nil 
+(!type struct 1345 nil  gc_unused "anonymous:/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/../libcpp/include/cpplib.h:984"nil 
 (!fields 0 )
 nil 0 nil )
 
-(!type struct 1346 nil  gc_unused "anonymous:/usr/local/google/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/../libcpp/include/cpplib.h:973"nil 
+(!type struct 1346 nil  gc_unused "anonymous:/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/../libcpp/include/cpplib.h:973"nil 
 (!fields 0 )
 nil 0 nil )
 
@@ -25162,7 +25162,7 @@
 (!fields 0 )
 nil 0 nil )
 
-(!type struct 1355 nil  gc_unused "anonymous:/usr/local/google/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/../libcpp/include/line-map.h:627"nil 
+(!type struct 1355 nil  gc_unused "anonymous:/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/../libcpp/include/line-map.h:627"nil 
 (!fields 0 )
 nil 0 nil )
 
diff --git a/lib/gcc/x86_64-w64-mingw32/4.8.3/plugin/include/configargs.h b/lib/gcc/x86_64-w64-mingw32/4.8.3/plugin/include/configargs.h
index 6cd9e3d..84446e6 100644
--- a/lib/gcc/x86_64-w64-mingw32/4.8.3/plugin/include/configargs.h
+++ b/lib/gcc/x86_64-w64-mingw32/4.8.3/plugin/include/configargs.h
@@ -1,5 +1,5 @@
 /* Generated automatically. */
-static const char configuration_arguments[] = "/usr/local/google/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/configure --prefix=/usr/local/google/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8 --disable-shared --with-gmp=/usr/local/google/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8 --with-mpfr=/usr/local/google/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8 --with-mpc=/usr/local/google/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8 --target=x86_64-w64-mingw32 --enable-targets=all --enable-languages=c,c++ --with-sysroot=/usr/local/google/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8 --enable-threads=posix";
+static const char configuration_arguments[] = "/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/configure --prefix=/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8 --disable-shared --with-gmp=/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8 --with-mpfr=/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8 --with-mpc=/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8 --target=x86_64-w64-mingw32 --enable-targets=all --enable-languages=c,c++ --with-sysroot=/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8 --enable-threads=posix --enable-shared=libgcc";
 static const char thread_model[] = "posix";
 
 static const struct {
diff --git a/lib/gcc/x86_64-w64-mingw32/4.8.3/plugin/include/tm-preds.h b/lib/gcc/x86_64-w64-mingw32/4.8.3/plugin/include/tm-preds.h
index 170a493..30ddd25 100644
--- a/lib/gcc/x86_64-w64-mingw32/4.8.3/plugin/include/tm-preds.h
+++ b/lib/gcc/x86_64-w64-mingw32/4.8.3/plugin/include/tm-preds.h
@@ -1,5 +1,5 @@
 /* Generated automatically by the program 'build/genpreds'
-   from the machine description file '/usr/local/google/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/config/i386/i386.md'.  */
+   from the machine description file '/buildbot/src/android/mingw/toolchain/gcc/gcc-4.8.3/gcc/config/i386/i386.md'.  */
 
 #ifndef GCC_TM_PREDS_H
 #define GCC_TM_PREDS_H
diff --git a/lib/libgmp.a b/lib/libgmp.a
index 65c6dd7..64673b0 100644
--- a/lib/libgmp.a
+++ b/lib/libgmp.a
Binary files differ
diff --git a/lib/libgmp.la b/lib/libgmp.la
index 7e62f9a..458edc5 100755
--- a/lib/libgmp.la
+++ b/lib/libgmp.la
@@ -38,4 +38,4 @@
 dlpreopen=''
 
 # Directory that this library needs to be installed in:
-libdir='/usr/local/google/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/lib'
+libdir='/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/lib'
diff --git a/lib/libmpc.a b/lib/libmpc.a
index a6e2ba1..0170770 100644
--- a/lib/libmpc.a
+++ b/lib/libmpc.a
Binary files differ
diff --git a/lib/libmpc.la b/lib/libmpc.la
index 1e36494..9ef5a23 100755
--- a/lib/libmpc.la
+++ b/lib/libmpc.la
@@ -17,7 +17,7 @@
 inherited_linker_flags=''
 
 # Libraries that this one depends upon.
-dependency_libs=' -L/usr/local/google/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/lib /usr/local/google/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/lib/libmpfr.la /usr/local/google/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/lib/libgmp.la -lm'
+dependency_libs=' -L/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/lib /buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/lib/libmpfr.la /buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/lib/libgmp.la -lm'
 
 # Names of additional weak libraries provided by this library
 weak_library_names=''
@@ -38,4 +38,4 @@
 dlpreopen=''
 
 # Directory that this library needs to be installed in:
-libdir='/usr/local/google/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/lib'
+libdir='/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/lib'
diff --git a/lib/libmpfr.a b/lib/libmpfr.a
index 9cc4665..3f63a70 100644
--- a/lib/libmpfr.a
+++ b/lib/libmpfr.a
Binary files differ
diff --git a/lib/libmpfr.la b/lib/libmpfr.la
index f6dcf0c..2a5c814 100755
--- a/lib/libmpfr.la
+++ b/lib/libmpfr.la
@@ -17,7 +17,7 @@
 inherited_linker_flags=''
 
 # Libraries that this one depends upon.
-dependency_libs=' -L/usr/local/google/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/lib /usr/local/google/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/lib/libgmp.la'
+dependency_libs=' -L/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/lib /buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/lib/libgmp.la'
 
 # Names of additional weak libraries provided by this library
 weak_library_names=''
@@ -38,4 +38,4 @@
 dlpreopen=''
 
 # Directory that this library needs to be installed in:
-libdir='/usr/local/google/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/lib'
+libdir='/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/lib'
diff --git a/lib64/libiberty.a b/lib64/libiberty.a
index 8ee125d..377b64e 100644
--- a/lib64/libiberty.a
+++ b/lib64/libiberty.a
Binary files differ
diff --git a/libexec/gcc/x86_64-w64-mingw32/4.8.3/cc1 b/libexec/gcc/x86_64-w64-mingw32/4.8.3/cc1
index 6f175c6..e411e3f 100755
--- a/libexec/gcc/x86_64-w64-mingw32/4.8.3/cc1
+++ b/libexec/gcc/x86_64-w64-mingw32/4.8.3/cc1
Binary files differ
diff --git a/libexec/gcc/x86_64-w64-mingw32/4.8.3/cc1plus b/libexec/gcc/x86_64-w64-mingw32/4.8.3/cc1plus
index ea98ab9..8562640 100755
--- a/libexec/gcc/x86_64-w64-mingw32/4.8.3/cc1plus
+++ b/libexec/gcc/x86_64-w64-mingw32/4.8.3/cc1plus
Binary files differ
diff --git a/libexec/gcc/x86_64-w64-mingw32/4.8.3/collect2 b/libexec/gcc/x86_64-w64-mingw32/4.8.3/collect2
index 6aded36..8936a44 100755
--- a/libexec/gcc/x86_64-w64-mingw32/4.8.3/collect2
+++ b/libexec/gcc/x86_64-w64-mingw32/4.8.3/collect2
Binary files differ
diff --git a/libexec/gcc/x86_64-w64-mingw32/4.8.3/install-tools/fixincl b/libexec/gcc/x86_64-w64-mingw32/4.8.3/install-tools/fixincl
index 677e60f..6c73a65 100755
--- a/libexec/gcc/x86_64-w64-mingw32/4.8.3/install-tools/fixincl
+++ b/libexec/gcc/x86_64-w64-mingw32/4.8.3/install-tools/fixincl
Binary files differ
diff --git a/libexec/gcc/x86_64-w64-mingw32/4.8.3/install-tools/mkheaders b/libexec/gcc/x86_64-w64-mingw32/4.8.3/install-tools/mkheaders
index 2476e15..1f24dad 100755
--- a/libexec/gcc/x86_64-w64-mingw32/4.8.3/install-tools/mkheaders
+++ b/libexec/gcc/x86_64-w64-mingw32/4.8.3/install-tools/mkheaders
@@ -53,7 +53,7 @@
   prefix=$1
   shift
 else
-  prefix=/usr/local/google/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8
+  prefix=/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8
 fi
 
 # Allow for alternate isysroot in which to find headers
@@ -77,7 +77,7 @@
 itoolsdir=${libexecsubdir}/install-tools
 itoolsdatadir=${libsubdir}/install-tools
 incdir=${libsubdir}/include-fixed
-mkinstalldirs="/bin/sh ${itoolsdir}/mkinstalldirs"
+mkinstalldirs="/bin/bash ${itoolsdir}/mkinstalldirs"
 
 cd ${itoolsdir}
 rm -rf ${incdir}/*
@@ -90,7 +90,7 @@
   if [ x${STMP_FIXINC} != x ] ; then
 	TARGET_MACHINE="${target}" target_canonical="${target}" \
 	    MACRO_LIST="${itoolsdatadir}/macro_list" \
-	    /bin/sh ./fixinc.sh ${subincdir} \
+	    /bin/bash ./fixinc.sh ${subincdir} \
 	    ${isysroot}${SYSTEM_HEADER_DIR} ${OTHER_FIXINCLUDES_DIRS}
 	rm -f ${subincdir}/syslimits.h
 	if [ -f ${subincdir}/limits.h ]; then
diff --git a/libexec/gcc/x86_64-w64-mingw32/4.8.3/liblto_plugin.la b/libexec/gcc/x86_64-w64-mingw32/4.8.3/liblto_plugin.la
index 53f4482..b59ef80 100755
--- a/libexec/gcc/x86_64-w64-mingw32/4.8.3/liblto_plugin.la
+++ b/libexec/gcc/x86_64-w64-mingw32/4.8.3/liblto_plugin.la
@@ -38,4 +38,4 @@
 dlpreopen=''
 
 # Directory that this library needs to be installed in:
-libdir='/usr/local/google/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/libexec/gcc/x86_64-w64-mingw32/4.8.3'
+libdir='/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/libexec/gcc/x86_64-w64-mingw32/4.8.3'
diff --git a/libexec/gcc/x86_64-w64-mingw32/4.8.3/liblto_plugin.so.0.0.0 b/libexec/gcc/x86_64-w64-mingw32/4.8.3/liblto_plugin.so.0.0.0
index 42b87ea..3616d7e 100755
--- a/libexec/gcc/x86_64-w64-mingw32/4.8.3/liblto_plugin.so.0.0.0
+++ b/libexec/gcc/x86_64-w64-mingw32/4.8.3/liblto_plugin.so.0.0.0
Binary files differ
diff --git a/libexec/gcc/x86_64-w64-mingw32/4.8.3/lto-wrapper b/libexec/gcc/x86_64-w64-mingw32/4.8.3/lto-wrapper
index 3fad9b6..30602b8 100755
--- a/libexec/gcc/x86_64-w64-mingw32/4.8.3/lto-wrapper
+++ b/libexec/gcc/x86_64-w64-mingw32/4.8.3/lto-wrapper
Binary files differ
diff --git a/libexec/gcc/x86_64-w64-mingw32/4.8.3/lto1 b/libexec/gcc/x86_64-w64-mingw32/4.8.3/lto1
index 5849196..fc752a4 100755
--- a/libexec/gcc/x86_64-w64-mingw32/4.8.3/lto1
+++ b/libexec/gcc/x86_64-w64-mingw32/4.8.3/lto1
Binary files differ
diff --git a/libexec/gcc/x86_64-w64-mingw32/4.8.3/plugin/gengtype b/libexec/gcc/x86_64-w64-mingw32/4.8.3/plugin/gengtype
index 2b991ba..47fad05 100755
--- a/libexec/gcc/x86_64-w64-mingw32/4.8.3/plugin/gengtype
+++ b/libexec/gcc/x86_64-w64-mingw32/4.8.3/plugin/gengtype
Binary files differ
diff --git a/repo.prop b/repo.prop
index 1cf856c..2939bdd 100644
--- a/repo.prop
+++ b/repo.prop
@@ -1,11 +1,11 @@
-platform/manifest f7f30f2c711c5bb7af238ee5f7125cd3faf26572
-platform/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.11-4.8 e9534abf9e4916bc9f0f0c74b64ad2f404a34e97
-toolchain/binutils 9bf6cbf6dd88777719c5757922aff0190ec46539
+platform/manifest cde998305ff51c4cb98fb6887c9bef6f8b8f746e
+platform/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.15-4.8 2ccb38af8c940f1feef62ff5986f4bbc5d899e66
+toolchain/binutils 726e32dc8ba26fdc43a3dfab5223ded76b61c717
 toolchain/cloog 604793eab97d360aef729f064674569ee6dbf3e1
-toolchain/gcc 32c89c19b042a12b5a1bf0153299154ea5435c03
+toolchain/gcc 81788f3d99d2c5952fa9a6d673e8d6a53b76d511
 toolchain/gmp b2acd5dbf47868ac5b5bc844e16d2cadcbd4c810
 toolchain/isl 0ccf95726af8ce58ad61ff474addbce3a31ba99c
-toolchain/mingw da9c1475a8979478fb9163b02e8991ffb6826e5b
+toolchain/mingw 092cd6e82d47919d2bbc13e132493d079470a429
 toolchain/mpc 835d16e92eed875638a8b5d552034c3b1aae045b
 toolchain/mpfr de979fc377db766591e7feaf052f0de59be46e76
 toolchain/ppl 979062d362bc5a1c00804237b408b19b4618fb24
diff --git a/share/info/dir b/share/info/dir
index 52bb20e..60a20f0 100644
--- a/share/info/dir
+++ b/share/info/dir
@@ -24,7 +24,7 @@
 * mpc: (mpc)Multiple Precision Complex Library.
 
 Software development
-* Cpp: (cpp).                   The GNU C preprocessor.
+* Cpplib: (cppinternals).       Cpplib internals.
 * g++: (gcc).                   The GNU C++ compiler.
 * gcc: (gcc).                   The GNU Compiler Collection.
 * gccinstall: (gccinstall).     Installing the GNU Compiler Collection.
@@ -34,3 +34,4 @@
 Software libraries
 * mpfr: (mpfr).                 Multiple Precision Floating-Point Reliable 
                                   Library.
+rary.
diff --git a/share/man/man1/x86_64-w64-mingw32-addr2line.1 b/share/man/man1/x86_64-w64-mingw32-addr2line.1
index d81fc66..100942b 100644
--- a/share/man/man1/x86_64-w64-mingw32-addr2line.1
+++ b/share/man/man1/x86_64-w64-mingw32-addr2line.1
@@ -133,7 +133,7 @@
 .\" ========================================================================
 .\"
 .IX Title "ADDR2LINE 1"
-.TH ADDR2LINE 1 " " "binutils-2.25.51" "GNU Development Tools"
+.TH ADDR2LINE 1 "2018-06-20" "binutils-2.27.0" "GNU Development Tools"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
@@ -305,7 +305,7 @@
 Info entries for \fIbinutils\fR.
 .SH "COPYRIGHT"
 .IX Header "COPYRIGHT"
-Copyright (c) 1991\-2014 Free Software Foundation, Inc.
+Copyright (c) 1991\-2016 Free Software Foundation, Inc.
 .PP
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3
diff --git a/share/man/man1/x86_64-w64-mingw32-ar.1 b/share/man/man1/x86_64-w64-mingw32-ar.1
index 5dea6f3..73d3505 100644
--- a/share/man/man1/x86_64-w64-mingw32-ar.1
+++ b/share/man/man1/x86_64-w64-mingw32-ar.1
@@ -133,7 +133,7 @@
 .\" ========================================================================
 .\"
 .IX Title "AR 1"
-.TH AR 1 " " "binutils-2.25.51" "GNU Development Tools"
+.TH AR 1 "2018-06-20" "binutils-2.27.0" "GNU Development Tools"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
@@ -195,8 +195,7 @@
 individually to the second archive.
 .PP
 The paths to the elements of the archive are stored relative to the
-archive itself.  For security reasons absolute paths and paths with a
-\&\f(CW\*(C`/../\*(C'\fR component are not allowed.
+archive itself.
 .PP
 \&\s-1GNU \s0\fBar\fR is designed to be compatible with two different
 facilities.  You can control its activity using command-line options,
@@ -461,7 +460,7 @@
 \&\fInm\fR\|(1), \fIranlib\fR\|(1), and the Info entries for \fIbinutils\fR.
 .SH "COPYRIGHT"
 .IX Header "COPYRIGHT"
-Copyright (c) 1991\-2014 Free Software Foundation, Inc.
+Copyright (c) 1991\-2016 Free Software Foundation, Inc.
 .PP
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3
diff --git a/share/man/man1/x86_64-w64-mingw32-as.1 b/share/man/man1/x86_64-w64-mingw32-as.1
index 4c74fd5..dd159bd 100644
--- a/share/man/man1/x86_64-w64-mingw32-as.1
+++ b/share/man/man1/x86_64-w64-mingw32-as.1
@@ -133,7 +133,7 @@
 .\" ========================================================================
 .\"
 .IX Title "AS 1"
-.TH AS 1 " " "binutils-2.25.51" "GNU Development Tools"
+.TH AS 1 "2018-06-20" "binutils-2.27.0" "GNU Development Tools"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
@@ -150,14 +150,20 @@
  [\fB\-\-help\fR] [\fB\-I\fR \fIdir\fR] [\fB\-J\fR]
  [\fB\-K\fR] [\fB\-L\fR] [\fB\-\-listing\-lhs\-width\fR=\fI\s-1NUM\s0\fR]
  [\fB\-\-listing\-lhs\-width2\fR=\fI\s-1NUM\s0\fR] [\fB\-\-listing\-rhs\-width\fR=\fI\s-1NUM\s0\fR]
- [\fB\-\-listing\-cont\-lines\fR=\fI\s-1NUM\s0\fR] [\fB\-\-keep\-locals\fR] [\fB\-o\fR
- \fIobjfile\fR] [\fB\-R\fR] [\fB\-\-reduce\-memory\-overheads\fR] [\fB\-\-statistics\fR]
- [\fB\-v\fR] [\fB\-version\fR] [\fB\-\-version\fR] [\fB\-W\fR] [\fB\-\-warn\fR]
- [\fB\-\-fatal\-warnings\fR] [\fB\-w\fR] [\fB\-x\fR] [\fB\-Z\fR] [\fB@\fR\fI\s-1FILE\s0\fR]
- [\fB\-\-size\-check=[error|warning]\fR]
+ [\fB\-\-listing\-cont\-lines\fR=\fI\s-1NUM\s0\fR] [\fB\-\-keep\-locals\fR]
+ [\fB\-\-no\-pad\-sections\fR]
+ [\fB\-o\fR \fIobjfile\fR] [\fB\-R\fR]
+ [\fB\-\-hash\-size\fR=\fI\s-1NUM\s0\fR] [\fB\-\-reduce\-memory\-overheads\fR]
+ [\fB\-\-statistics\fR]
+ [\fB\-v\fR] [\fB\-version\fR] [\fB\-\-version\fR]
+ [\fB\-W\fR] [\fB\-\-warn\fR] [\fB\-\-fatal\-warnings\fR] [\fB\-w\fR] [\fB\-x\fR]
+ [\fB\-Z\fR] [\fB@\fR\fI\s-1FILE\s0\fR]
+ [\fB\-\-sectname\-subst\fR] [\fB\-\-size\-check=[error|warning]\fR]
+ [\fB\-\-elf\-stt\-common=[no|yes]\fR]
  [\fB\-\-target\-help\fR] [\fItarget-options\fR]
  [\fB\-\-\fR|\fIfiles\fR ...]
-.PP
+.SH "TARGET"
+.IX Header "TARGET"
 \&\fITarget AArch64 options:\fR
    [\fB\-EB\fR|\fB\-EL\fR]
    [\fB\-mabi\fR=\fI\s-1ABI\s0\fR]
@@ -170,7 +176,10 @@
    [\fB\-F\fR] [\fB\-32addr\fR]
 .PP
 \&\fITarget \s-1ARC\s0 options:\fR
-   [\fB\-marc[5|6|7|8]\fR]
+   [\fB\-mcpu=\fR\fIcpu\fR]
+   [\fB\-mA6\fR|\fB\-mARC600\fR|\fB\-mARC601\fR|\fB\-mA7\fR|\fB\-mARC700\fR|\fB\-mEM\fR|\fB\-mHS\fR]
+   [\fB\-mcode\-density\fR]
+   [\fB\-mrelax\fR]
    [\fB\-EB\fR|\fB\-EL\fR]
 .PP
 \&\fITarget \s-1ARM\s0 options:\fR
@@ -277,9 +286,9 @@
    [\fB\-mdmx\fR] [\fB\-no\-mdmx\fR]
    [\fB\-mdsp\fR] [\fB\-mno\-dsp\fR]
    [\fB\-mdspr2\fR] [\fB\-mno\-dspr2\fR]
+   [\fB\-mdspr3\fR] [\fB\-mno\-dspr3\fR]
    [\fB\-mmsa\fR] [\fB\-mno\-msa\fR]
    [\fB\-mxpa\fR] [\fB\-mno\-xpa\fR]
-   [\fB\-mmxu\fR] [\fB\-mno\-mxu\fR]
    [\fB\-mmt\fR] [\fB\-mno\-mt\fR]
    [\fB\-mmcu\fR] [\fB\-mno\-mcu\fR]
    [\fB\-minsn32\fR] [\fB\-mno\-insn32\fR]
@@ -324,7 +333,8 @@
     \fB\-m440\fR|\fB\-m464\fR|\fB\-m476\fR|\fB\-m7400\fR|\fB\-m7410\fR|\fB\-m7450\fR|\fB\-m7455\fR|\fB\-m750cl\fR|\fB\-mppc64\fR|
     \fB\-m620\fR|\fB\-me500\fR|\fB\-e500x2\fR|\fB\-me500mc\fR|\fB\-me500mc64\fR|\fB\-me5500\fR|\fB\-me6500\fR|\fB\-mppc64bridge\fR|
     \fB\-mbooke\fR|\fB\-mpower4\fR|\fB\-mpwr4\fR|\fB\-mpower5\fR|\fB\-mpwr5\fR|\fB\-mpwr5x\fR|\fB\-mpower6\fR|\fB\-mpwr6\fR|
-    \fB\-mpower7\fR|\fB\-mpwr7\fR|\fB\-mpower8\fR|\fB\-mpwr8\fR|\fB\-ma2\fR|\fB\-mcell\fR|\fB\-mspe\fR|\fB\-mtitan\fR|\fB\-me300\fR|\fB\-mcom\fR]
+    \fB\-mpower7\fR|\fB\-mpwr7\fR|\fB\-mpower8\fR|\fB\-mpwr8\fR|\fB\-mpower9\fR|\fB\-mpwr9\fR\fB\-ma2\fR|
+    \fB\-mcell\fR|\fB\-mspe\fR|\fB\-mtitan\fR|\fB\-me300\fR|\fB\-mcom\fR]
    [\fB\-many\fR] [\fB\-maltivec\fR|\fB\-mvsx\fR|\fB\-mhtm\fR|\fB\-mvle\fR]
    [\fB\-mregnames\fR|\fB\-mno\-regnames\fR]
    [\fB\-mrelocatable\fR|\fB\-mrelocatable\-lib\fR|\fB\-K \s-1PIC\s0\fR] [\fB\-memb\fR]
@@ -375,8 +385,12 @@
 \&\fITarget TILE-Gx options:\fR
    [\fB\-m32\fR|\fB\-m64\fR][\fB\-EB\fR][\fB\-EL\fR]
 .PP
+\&\fITarget Visium options:\fR
+   [\fB\-mtune=\fR\fIarch\fR]
+.PP
 \&\fITarget Xtensa options:\fR
- [\fB\-\-[no\-]text\-section\-literals\fR] [\fB\-\-[no\-]absolute\-literals\fR]
+ [\fB\-\-[no\-]text\-section\-literals\fR] [\fB\-\-[no\-]auto\-litpools\fR]
+ [\fB\-\-[no\-]absolute\-literals\fR]
  [\fB\-\-[no\-]target\-align\fR] [\fB\-\-[no\-]longcalls\fR]
  [\fB\-\-[no\-]transform\fR]
  [\fB\-\-rename\-section\fR \fIoldname\fR=\fInewname\fR]
@@ -511,12 +525,35 @@
 Begin in alternate macro mode.
 .IP "\fB\-\-compress\-debug\-sections\fR" 4
 .IX Item "--compress-debug-sections"
-Compress \s-1DWARF\s0 debug sections using zlib.  The debug sections are renamed
-to begin with \fB.zdebug\fR, and the resulting object file may not be
-compatible with older linkers and object file utilities.
+Compress \s-1DWARF\s0 debug sections using zlib with \s-1SHF_COMPRESSED\s0 from the
+\&\s-1ELF ABI. \s0 The resulting object file may not be compatible with older
+linkers and object file utilities.  Note if compression would make a
+given section \fIlarger\fR then it is not compressed.
+.IP "\fB\-\-compress\-debug\-sections=none\fR" 4
+.IX Item "--compress-debug-sections=none"
+.PD 0
+.IP "\fB\-\-compress\-debug\-sections=zlib\fR" 4
+.IX Item "--compress-debug-sections=zlib"
+.IP "\fB\-\-compress\-debug\-sections=zlib\-gnu\fR" 4
+.IX Item "--compress-debug-sections=zlib-gnu"
+.IP "\fB\-\-compress\-debug\-sections=zlib\-gabi\fR" 4
+.IX Item "--compress-debug-sections=zlib-gabi"
+.PD
+These options control how \s-1DWARF\s0 debug sections are compressed.
+\&\fB\-\-compress\-debug\-sections=none\fR is equivalent to
+\&\fB\-\-nocompress\-debug\-sections\fR.
+\&\fB\-\-compress\-debug\-sections=zlib\fR and
+\&\fB\-\-compress\-debug\-sections=zlib\-gabi\fR are equivalent to
+\&\fB\-\-compress\-debug\-sections\fR.
+\&\fB\-\-compress\-debug\-sections=zlib\-gnu\fR compresses \s-1DWARF\s0 debug
+sections using zlib.  The debug sections are renamed to begin with
+\&\fB.zdebug\fR.  Note if compression would make a given section
+\&\fIlarger\fR then it is not compressed nor renamed.
 .IP "\fB\-\-nocompress\-debug\-sections\fR" 4
 .IX Item "--nocompress-debug-sections"
-Do not compress \s-1DWARF\s0 debug sections.  This is the default.
+Do not compress \s-1DWARF\s0 debug sections.  This is usually the default for all
+targets except the x86/x86_64, but a configure time option can be used to
+override this.
 .IP "\fB\-D\fR" 4
 .IX Item "-D"
 Ignored.  This option is accepted for script compatibility with calls to
@@ -577,6 +614,15 @@
 .IX Item "--size-check=warning"
 .PD
 Issue an error or warning for invalid \s-1ELF \s0.size directive.
+.IP "\fB\-\-elf\-stt\-common=no\fR" 4
+.IX Item "--elf-stt-common=no"
+.PD 0
+.IP "\fB\-\-elf\-stt\-common=yes\fR" 4
+.IX Item "--elf-stt-common=yes"
+.PD
+These options control whether the \s-1ELF\s0 assembler should generate common
+symbols with the \f(CW\*(C`STT_COMMON\*(C'\fR type.  The default can be controlled
+by a configure option \fB\-\-enable\-elf\-stt\-common\fR.
 .IP "\fB\-\-help\fR" 4
 .IX Item "--help"
 Print a summary of the command line options and exit.
@@ -617,13 +663,19 @@
 .IX Item "--listing-cont-lines=number"
 Set the maximum number of lines printed in a listing for a single line of input
 to \fInumber\fR + 1.
+.IP "\fB\-\-no\-pad\-sections\fR" 4
+.IX Item "--no-pad-sections"
+Stop the assembler for padding the ends of output sections to the alignment
+of that section.  The default is to pad the sections, but this can waste space
+which might be needed on targets which have tight memory constraints.
 .IP "\fB\-o\fR \fIobjfile\fR" 4
 .IX Item "-o objfile"
 Name the object-file output from \fBas\fR \fIobjfile\fR.
 .IP "\fB\-R\fR" 4
 .IX Item "-R"
 Fold the data section into the text section.
-.Sp
+.IP "\fB\-\-hash\-size=\fR\fInumber\fR" 4
+.IX Item "--hash-size=number"
 Set the default size of \s-1GAS\s0's hash tables to a prime number close to
 \&\fInumber\fR.  Increasing this value can reduce the length of time it takes the
 assembler to perform its tasks, at the expense of increasing the assembler's
@@ -634,6 +686,9 @@
 This option reduces \s-1GAS\s0's memory requirements, at the expense of making the
 assembly processes slower.  Currently this switch is a synonym for
 \&\fB\-\-hash\-size=4051\fR, but in the future it may have other effects as well.
+.IP "\fB\-\-sectname\-subst\fR" 4
+.IX Item "--sectname-subst"
+Honor substitution sequences in section names.
 .IP "\fB\-\-statistics\fR" 4
 .IX Item "--statistics"
 Print the maximum space (in bytes) and total time (in seconds) used by
@@ -697,11 +752,20 @@
 This option specifies the target processor.  The assembler will issue an error
 message if an attempt is made to assemble an instruction which will not execute
 on the target processor.  The following processor names are recognized:
+\&\f(CW\*(C`cortex\-a35\*(C'\fR,
 \&\f(CW\*(C`cortex\-a53\*(C'\fR,
+\&\f(CW\*(C`cortex\-a55\*(C'\fR,
 \&\f(CW\*(C`cortex\-a57\*(C'\fR,
+\&\f(CW\*(C`cortex\-a72\*(C'\fR,
+\&\f(CW\*(C`cortex\-a73\*(C'\fR,
+\&\f(CW\*(C`cortex\-a75\*(C'\fR,
+\&\f(CW\*(C`exynos\-m1\*(C'\fR,
+\&\f(CW\*(C`qdf24xx\*(C'\fR,
 \&\f(CW\*(C`thunderx\*(C'\fR,
+\&\f(CW\*(C`vulcan\*(C'\fR,
+\&\f(CW\*(C`xgene1\*(C'\fR
 and
-\&\f(CW\*(C`xgene\-1\*(C'\fR.
+\&\f(CW\*(C`xgene2\*(C'\fR.
 The special name \f(CW\*(C`all\*(C'\fR may be used to allow the assembler to accept
 instructions valid for any supported processor, including all optional
 extensions.
@@ -719,7 +783,8 @@
 This option specifies the target architecture.  The assembler will
 issue an error message if an attempt is made to assemble an
 instruction which will not execute on the target architecture.  The
-only value for \fIarchitecture\fR is \f(CW\*(C`armv8\-a\*(C'\fR.
+following architecture names are recognized: \f(CW\*(C`armv8\-a\*(C'\fR,
+\&\f(CW\*(C`armv8.1\-a\*(C'\fR and \f(CW\*(C`armv8.2\-a\*(C'\fR.
 .Sp
 If both \fB\-mcpu\fR and \fB\-march\fR are specified, the
 assembler will use the setting for \fB\-mcpu\fR.  If neither are
@@ -816,14 +881,17 @@
 .PD
 These options are ignored for backward compatibility.
 .PP
-The following options are available when as is configured for
-an \s-1ARC\s0 processor.
-.IP "\fB\-marc[5|6|7|8]\fR" 4
-.IX Item "-marc[5|6|7|8]"
+The following options are available when as is configured for an \s-1ARC\s0
+processor.
+.IP "\fB\-mcpu=\fR\fIcpu\fR" 4
+.IX Item "-mcpu=cpu"
 This option selects the core processor variant.
 .IP "\fB\-EB | \-EL\fR" 4
 .IX Item "-EB | -EL"
 Select either big-endian (\-EB) or little-endian (\-EL) output.
+.IP "\fB\-mcode\-density\fR" 4
+.IX Item "-mcode-density"
+Enable Code Density extenssion instructions.
 .PP
 The following options are available when as is configured for the \s-1ARM\s0
 processor family.
@@ -954,6 +1022,16 @@
 .IP "\fB\-h\-tick\-hex\fR" 4
 .IX Item "-h-tick-hex"
 Support H'00 style hex constants in addition to 0x00 style.
+.IP "\fB\-mach=\fR\fIname\fR" 4
+.IX Item "-mach=name"
+Sets the H8300 machine variant.  The following machine names
+are recognised:
+\&\f(CW\*(C`h8300h\*(C'\fR,
+\&\f(CW\*(C`h8300hn\*(C'\fR,
+\&\f(CW\*(C`h8300s\*(C'\fR,
+\&\f(CW\*(C`h8300sn\*(C'\fR,
+\&\f(CW\*(C`h8300sx\*(C'\fR and 
+\&\f(CW\*(C`h8300sxn\*(C'\fR.
 .PP
 The following options are available when as is configured for
 an i386 processor.
@@ -1005,6 +1083,7 @@
 \&\f(CW\*(C`corei7\*(C'\fR,
 \&\f(CW\*(C`l1om\*(C'\fR,
 \&\f(CW\*(C`k1om\*(C'\fR,
+\&\f(CW\*(C`iamcu\*(C'\fR,
 \&\f(CW\*(C`k6\*(C'\fR,
 \&\f(CW\*(C`k6_2\*(C'\fR,
 \&\f(CW\*(C`athlon\*(C'\fR,
@@ -1015,6 +1094,7 @@
 \&\f(CW\*(C`bdver2\*(C'\fR,
 \&\f(CW\*(C`bdver3\*(C'\fR,
 \&\f(CW\*(C`bdver4\*(C'\fR,
+\&\f(CW\*(C`znver1\*(C'\fR,
 \&\f(CW\*(C`btver1\*(C'\fR,
 \&\f(CW\*(C`btver2\*(C'\fR,
 \&\f(CW\*(C`generic32\*(C'\fR and
@@ -1027,7 +1107,11 @@
 \&\f(CW8087\fR,
 \&\f(CW287\fR,
 \&\f(CW387\fR,
+\&\f(CW687\fR,
 \&\f(CW\*(C`no87\*(C'\fR,
+\&\f(CW\*(C`no287\*(C'\fR,
+\&\f(CW\*(C`no387\*(C'\fR,
+\&\f(CW\*(C`no687\*(C'\fR,
 \&\f(CW\*(C`mmx\*(C'\fR,
 \&\f(CW\*(C`nommx\*(C'\fR,
 \&\f(CW\*(C`sse\*(C'\fR,
@@ -1038,14 +1122,23 @@
 \&\f(CW\*(C`sse4.2\*(C'\fR,
 \&\f(CW\*(C`sse4\*(C'\fR,
 \&\f(CW\*(C`nosse\*(C'\fR,
+\&\f(CW\*(C`nosse2\*(C'\fR,
+\&\f(CW\*(C`nosse3\*(C'\fR,
+\&\f(CW\*(C`nossse3\*(C'\fR,
+\&\f(CW\*(C`nosse4.1\*(C'\fR,
+\&\f(CW\*(C`nosse4.2\*(C'\fR,
+\&\f(CW\*(C`nosse4\*(C'\fR,
 \&\f(CW\*(C`avx\*(C'\fR,
 \&\f(CW\*(C`avx2\*(C'\fR,
+\&\f(CW\*(C`noavx\*(C'\fR,
+\&\f(CW\*(C`noavx2\*(C'\fR,
 \&\f(CW\*(C`adx\*(C'\fR,
 \&\f(CW\*(C`rdseed\*(C'\fR,
 \&\f(CW\*(C`prfchw\*(C'\fR,
 \&\f(CW\*(C`smap\*(C'\fR,
 \&\f(CW\*(C`mpx\*(C'\fR,
 \&\f(CW\*(C`sha\*(C'\fR,
+\&\f(CW\*(C`rdpid\*(C'\fR,
 \&\f(CW\*(C`prefetchwt1\*(C'\fR,
 \&\f(CW\*(C`clflushopt\*(C'\fR,
 \&\f(CW\*(C`se1\*(C'\fR,
@@ -1060,7 +1153,15 @@
 \&\f(CW\*(C`avx512dq\*(C'\fR,
 \&\f(CW\*(C`avx512ifma\*(C'\fR,
 \&\f(CW\*(C`avx512vbmi\*(C'\fR,
-\&\f(CW\*(C`noavx\*(C'\fR,
+\&\f(CW\*(C`noavx512f\*(C'\fR,
+\&\f(CW\*(C`noavx512cd\*(C'\fR,
+\&\f(CW\*(C`noavx512er\*(C'\fR,
+\&\f(CW\*(C`noavx512pf\*(C'\fR,
+\&\f(CW\*(C`noavx512vl\*(C'\fR,
+\&\f(CW\*(C`noavx512bw\*(C'\fR,
+\&\f(CW\*(C`noavx512dq\*(C'\fR,
+\&\f(CW\*(C`noavx512ifma\*(C'\fR,
+\&\f(CW\*(C`noavx512vbmi\*(C'\fR,
 \&\f(CW\*(C`vmx\*(C'\fR,
 \&\f(CW\*(C`vmfunc\*(C'\fR,
 \&\f(CW\*(C`smx\*(C'\fR,
@@ -1082,6 +1183,8 @@
 \&\f(CW\*(C`rtm\*(C'\fR,
 \&\f(CW\*(C`invpcid\*(C'\fR,
 \&\f(CW\*(C`clflush\*(C'\fR,
+\&\f(CW\*(C`mwaitx\*(C'\fR,
+\&\f(CW\*(C`clzero\*(C'\fR,
 \&\f(CW\*(C`lwp\*(C'\fR,
 \&\f(CW\*(C`fma4\*(C'\fR,
 \&\f(CW\*(C`xop\*(C'\fR,
@@ -1189,6 +1292,15 @@
 .IX Item "-madd-bnd-prefix"
 This option forces the assembler to add \s-1BND\s0 prefix to all branches, even
 if such prefix was not explicitly specified in the source code.
+.IP "\fB\-mno\-shared\fR" 4
+.IX Item "-mno-shared"
+On \s-1ELF\s0 target, the assembler normally optimizes out non-PLT relocations
+against defined non-weak global branch targets with default visibility.
+The \fB\-mshared\fR option tells the assembler to generate code which
+may go into a shared library where all non-weak global branch targets
+with default visibility can be preempted.  The resulting code is
+slightly bigger.  This option only affects the handling of branch
+instructions.
 .IP "\fB\-mbig\-obj\fR" 4
 .IX Item "-mbig-obj"
 On x86\-64 \s-1PE/COFF\s0 target this option forces the use of big object file
@@ -1206,6 +1318,32 @@
 \&\fB\-momit\-lock\-prefix=\fR\fIyes\fR will omit all lock prefixes.
 \&\fB\-momit\-lock\-prefix=\fR\fIno\fR will encode lock prefix as usual,
 which is the default.
+.IP "\fB\-mfence\-as\-lock\-add=\fR\fIno\fR" 4
+.IX Item "-mfence-as-lock-add=no"
+.PD 0
+.IP "\fB\-mfence\-as\-lock\-add=\fR\fIyes\fR" 4
+.IX Item "-mfence-as-lock-add=yes"
+.PD
+These options control how the assembler should encode lfence, mfence and
+sfence.
+\&\fB\-mfence\-as\-lock\-add=\fR\fIyes\fR will encode lfence, mfence and
+sfence as \fBlock addl \f(CB$0x0\fB, (%rsp)\fR in 64\-bit mode and
+\&\fBlock addl \f(CB$0x0\fB, (%esp)\fR in 32\-bit mode.
+\&\fB\-mfence\-as\-lock\-add=\fR\fIno\fR will encode lfence, mfence and
+sfence as usual, which is the default.
+.IP "\fB\-mrelax\-relocations=\fR\fIno\fR" 4
+.IX Item "-mrelax-relocations=no"
+.PD 0
+.IP "\fB\-mrelax\-relocations=\fR\fIyes\fR" 4
+.IX Item "-mrelax-relocations=yes"
+.PD
+These options control whether the assembler should generate relax
+relocations, R_386_GOT32X, in 32\-bit mode, or R_X86_64_GOTPCRELX and
+R_X86_64_REX_GOTPCRELX, in 64\-bit mode.
+\&\fB\-mrelax\-relocations=\fR\fIyes\fR will generate relax relocations.
+\&\fB\-mrelax\-relocations=\fR\fIno\fR will not generate relax
+relocations.  The default can be controlled by a configure option
+\&\fB\-\-enable\-x86\-relax\-relocations\fR.
 .IP "\fB\-mevexrcig=\fR\fIrne\fR" 4
 .IX Item "-mevexrcig=rne"
 .PD 0
@@ -1222,6 +1360,14 @@
 \&\fB\-mevexrcig=\fR\fIrd\fR, \fB\-mevexrcig=\fR\fIru\fR
 and \fB\-mevexrcig=\fR\fIrz\fR will encode SAE-only \s-1EVEX\s0 instructions
 with 01, 10 and 11 \s-1RC\s0 bits, respectively.
+.IP "\fB\-mamd64\fR" 4
+.IX Item "-mamd64"
+.PD 0
+.IP "\fB\-mintel64\fR" 4
+.IX Item "-mintel64"
+.PD
+This option specifies that the assembler should accept only \s-1AMD64\s0 or
+Intel64 \s-1ISA\s0 in 64\-bit mode.  The default is to accept both.
 .PP
 The following options are available when as is configured for the
 Intel 80960 processor.
@@ -1327,6 +1473,15 @@
 .IP "\fB\-EL\fR" 4
 .IX Item "-EL"
 Generate little-endian output.  This is the default.
+.IP "\fB\-march=\fR\fIarchitecture\fR" 4
+.IX Item "-march=architecture"
+This option specifies the target architecture.  The assembler issues
+an error message if an attempt is made to assemble an instruction which
+will not execute on the target architecture.  The following architecture
+names are recognized:
+\&\f(CW\*(C`r1\*(C'\fR,
+\&\f(CW\*(C`r2\*(C'\fR.  
+The default is \f(CW\*(C`r1\*(C'\fR.
 .PP
 The following options are available when as is configured for a
 Meta processor.
@@ -1512,6 +1667,9 @@
 .IP "\fB\-m750cl\fR" 4
 .IX Item "-m750cl"
 Generate code for PowerPC 750CL.
+.IP "\fB\-m821, \-m850, \-m860\fR" 4
+.IX Item "-m821, -m850, -m860"
+Generate code for PowerPC 821/850/860.
 .IP "\fB\-mppc64, \-m620\fR" 4
 .IX Item "-mppc64, -m620"
 Generate code for PowerPC 620/625/630.
@@ -1575,6 +1733,9 @@
 .IP "\fB\-mpower8, \-mpwr8\fR" 4
 .IX Item "-mpower8, -mpwr8"
 Generate code for Power8 architecture.
+.IP "\fB\-mpower9, \-mpwr9\fR" 4
+.IX Item "-mpower9, -mpwr9"
+Generate code for Power9 architecture.
 .IP "\fB\-mcell\fR" 4
 .IX Item "-mcell"
 .PD 0
@@ -1643,7 +1804,7 @@
 .IX Item "-march=processor"
 Specify which s390 processor variant is the target, \fBg6\fR, \fBg6\fR,
 \&\fBz900\fR, \fBz990\fR, \fBz9\-109\fR, \fBz9\-ec\fR, \fBz10\fR,
-\&\fBz196\fR, or \fBzEC12\fR.
+\&\fBz196\fR, \fBzEC12\fR, or \fBz13\fR.
 .IP "\fB\-mregnames\fR" 4
 .IX Item "-mregnames"
 .PD 0
@@ -1725,6 +1886,20 @@
 .IX Item "-EB | -EL"
 Select the endianness, either big-endian (\-EB) or little-endian (\-EL).
 .PP
+The following option is available when as is configured for a Visium
+processor.
+.IP "\fB\-mtune=\fR\fIarch\fR" 4
+.IX Item "-mtune=arch"
+This option specifies the target architecture.  If an attempt is made to
+assemble an instruction that will not execute on the target architecture,
+the assembler will issue an error message.
+.Sp
+The following names are recognized:
+\&\f(CW\*(C`mcm24\*(C'\fR
+\&\f(CW\*(C`mcm\*(C'\fR
+\&\f(CW\*(C`gr5\*(C'\fR
+\&\f(CW\*(C`gr6\*(C'\fR
+.PP
 The following options are available when as is configured for an
 Xtensa processor.
 .IP "\fB\-\-text\-section\-literals | \-\-no\-text\-section\-literals\fR" 4
@@ -1736,9 +1911,27 @@
 literals are interspersed in the text section in order to keep them as
 close as possible to their references.  This may be necessary for large
 assembly files, where the literals would otherwise be out of range of the
-\&\f(CW\*(C`L32R\*(C'\fR instructions in the text section.  These options only affect
+\&\f(CW\*(C`L32R\*(C'\fR instructions in the text section.  Literals are grouped into
+pools following \f(CW\*(C`.literal_position\*(C'\fR directives or preceding
+\&\f(CW\*(C`ENTRY\*(C'\fR instructions.  These options only affect literals referenced
+via PC-relative \f(CW\*(C`L32R\*(C'\fR instructions; literals for absolute mode
+\&\f(CW\*(C`L32R\*(C'\fR instructions are handled separately.
+.IP "\fB\-\-auto\-litpools | \-\-no\-auto\-litpools\fR" 4
+.IX Item "--auto-litpools | --no-auto-litpools"
+Control the treatment of literal pools.  The default is
+\&\fB\-\-no\-auto\-litpools\fR, which in the absence of
+\&\fB\-\-text\-section\-literals\fR places literals in separate sections
+in the output file.  This allows the literal pool to be placed in a data
+\&\s-1RAM/ROM. \s0 With \fB\-\-auto\-litpools\fR, the literals are interspersed
+in the text section in order to keep them as close as possible to their
+references, explicit \f(CW\*(C`.literal_position\*(C'\fR directives are not
+required.  This may be necessary for very large functions, where single
+literal pool at the beginning of the function may not be reachable by
+\&\f(CW\*(C`L32R\*(C'\fR instructions at the end.  These options only affect
 literals referenced via PC-relative \f(CW\*(C`L32R\*(C'\fR instructions; literals
 for absolute mode \f(CW\*(C`L32R\*(C'\fR instructions are handled separately.
+When used together with \fB\-\-text\-section\-literals\fR,
+\&\fB\-\-auto\-litpools\fR takes precedence.
 .IP "\fB\-\-absolute\-literals | \-\-no\-absolute\-literals\fR" 4
 .IX Item "--absolute-literals | --no-absolute-literals"
 Indicate to the assembler whether \f(CW\*(C`L32R\*(C'\fR instructions use absolute
@@ -1835,7 +2028,7 @@
 \&\fIgcc\fR\|(1), \fIld\fR\|(1), and the Info entries for \fIbinutils\fR and \fIld\fR.
 .SH "COPYRIGHT"
 .IX Header "COPYRIGHT"
-Copyright (c) 1991\-2014 Free Software Foundation, Inc.
+Copyright (c) 1991\-2016 Free Software Foundation, Inc.
 .PP
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3
diff --git a/share/man/man1/x86_64-w64-mingw32-c++filt.1 b/share/man/man1/x86_64-w64-mingw32-c++filt.1
index 1035355..f9ea099 100644
--- a/share/man/man1/x86_64-w64-mingw32-c++filt.1
+++ b/share/man/man1/x86_64-w64-mingw32-c++filt.1
@@ -133,7 +133,7 @@
 .\" ========================================================================
 .\"
 .IX Title "C++FILT 1"
-.TH C++FILT 1 " " "binutils-2.25.51" "GNU Development Tools"
+.TH C++FILT 1 "2018-06-20" "binutils-2.27.0" "GNU Development Tools"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
@@ -335,7 +335,7 @@
 the Info entries for \fIbinutils\fR.
 .SH "COPYRIGHT"
 .IX Header "COPYRIGHT"
-Copyright (c) 1991\-2014 Free Software Foundation, Inc.
+Copyright (c) 1991\-2016 Free Software Foundation, Inc.
 .PP
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3
diff --git a/share/man/man1/x86_64-w64-mingw32-cpp.1 b/share/man/man1/x86_64-w64-mingw32-cpp.1
index e11bc34..6126ee7 100644
--- a/share/man/man1/x86_64-w64-mingw32-cpp.1
+++ b/share/man/man1/x86_64-w64-mingw32-cpp.1
@@ -1,7 +1,15 @@
-.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28)
+.\" Automatically generated by Pod::Man 2.16 (Pod::Simple 3.05)
 .\"
 .\" Standard preamble:
 .\" ========================================================================
+.de Sh \" Subsection heading
+.br
+.if t .Sp
+.ne 5
+.PP
+\fB\\$1\fR
+.PP
+..
 .de Sp \" Vertical space (when we can't use .PP)
 .if t .sp .5v
 .if n .sp
@@ -38,8 +46,6 @@
 .    ds PI \(*p
 .    ds L" ``
 .    ds R" ''
-.    ds C`
-.    ds C'
 'br\}
 .\"
 .\" Escape single quotes in literal strings from groff's Unicode transform.
@@ -47,27 +53,20 @@
 .el       .ds Aq '
 .\"
 .\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
+.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
 .\" entries marked with X<> in POD.  Of course, you'll have to process the
 .\" output yourself in some meaningful fashion.
-.\"
-.\" Avoid warning from groff about undefined register 'F'.
-.de IX
+.ie \nF \{\
+.    de IX
+.    tm Index:\\$1\t\\n%\t"\\$2"
 ..
-.nr rF 0
-.if \n(.g .if rF .nr rF 1
-.if (\n(rF:(\n(.g==0)) \{
-.    if \nF \{
-.        de IX
-.        tm Index:\\$1\t\\n%\t"\\$2"
-..
-.        if !\nF==2 \{
-.            nr % 0
-.            nr F 2
-.        \}
-.    \}
+.    nr % 0
+.    rr F
 .\}
-.rr rF
+.el \{\
+.    de IX
+..
+.\}
 .\"
 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
@@ -181,11 +180,11 @@
 you are writing in.  Modern versions of the \s-1GNU\s0 assembler have macro
 facilities.  Most high level programming languages have their own
 conditional compilation and inclusion mechanism.  If all else fails,
-try a true general text processor, such as \s-1GNU M4.\s0
+try a true general text processor, such as \s-1GNU\s0 M4.
 .PP
-C preprocessors vary in some details.  This manual discusses the \s-1GNU C\s0
+C preprocessors vary in some details.  This manual discusses the \s-1GNU\s0 C
 preprocessor, which provides a small superset of the features of \s-1ISO\s0
-Standard C.  In its default mode, the \s-1GNU C\s0 preprocessor does not do a
+Standard C.  In its default mode, the \s-1GNU\s0 C preprocessor does not do a
 few things required by the standard.  These are features which are
 rarely, if ever, used, and may cause surprising changes to the meaning
 of a program which does not expect them.  To get strict \s-1ISO\s0 Standard C,
@@ -202,7 +201,7 @@
 Mode\fR.
 .PP
 For clarity, unless noted otherwise, references to \fB\s-1CPP\s0\fR in this
-manual refer to \s-1GNU CPP.\s0
+manual refer to \s-1GNU\s0 \s-1CPP\s0.
 .SH "OPTIONS"
 .IX Header "OPTIONS"
 The C preprocessor expects two file names as arguments, \fIinfile\fR and
@@ -306,7 +305,7 @@
 .IP "\fB\-Wtraditional\fR" 4
 .IX Item "-Wtraditional"
 Warn about certain constructs that behave differently in traditional and
-\&\s-1ISO C. \s0 Also warn about \s-1ISO C\s0 constructs that have no traditional C
+\&\s-1ISO\s0 C.  Also warn about \s-1ISO\s0 C constructs that have no traditional C
 equivalent, and problematic constructs which should be avoided.
 .IP "\fB\-Wundef\fR" 4
 .IX Item "-Wundef"
@@ -359,7 +358,7 @@
 responsible for the system library, you may want to see them.
 .IP "\fB\-w\fR" 4
 .IX Item "-w"
-Suppress all warnings, including those which \s-1GNU CPP\s0 issues by default.
+Suppress all warnings, including those which \s-1GNU\s0 \s-1CPP\s0 issues by default.
 .IP "\fB\-pedantic\fR" 4
 .IX Item "-pedantic"
 Issue all the mandatory diagnostics listed in the C standard.  Some of
@@ -531,7 +530,7 @@
 .el .IP "\f(CWiso9899:1990\fR" 4
 .IX Item "iso9899:1990"
 .PD
-The \s-1ISO C\s0 standard from 1990.  \fBc90\fR is the customary shorthand for
+The \s-1ISO\s0 C standard from 1990.  \fBc90\fR is the customary shorthand for
 this version of the standard.
 .Sp
 The \fB\-ansi\fR option is equivalent to \fB\-std=c90\fR.
@@ -553,7 +552,7 @@
 .el .IP "\f(CWc9x\fR" 4
 .IX Item "c9x"
 .PD
-The revised \s-1ISO C\s0 standard, published in December 1999.  Before
+The revised \s-1ISO\s0 C standard, published in December 1999.  Before
 publication, this was known as C9X.
 .ie n .IP """iso9899:2011""" 4
 .el .IP "\f(CWiso9899:2011\fR" 4
@@ -566,7 +565,7 @@
 .el .IP "\f(CWc1x\fR" 4
 .IX Item "c1x"
 .PD
-The revised \s-1ISO C\s0 standard, published in December 2011.  Before
+The revised \s-1ISO\s0 C standard, published in December 2011.  Before
 publication, this was known as C1X.
 .ie n .IP """gnu90""" 4
 .el .IP "\f(CWgnu90\fR" 4
@@ -598,7 +597,7 @@
 .ie n .IP """c++98""" 4
 .el .IP "\f(CWc++98\fR" 4
 .IX Item "c++98"
-The 1998 \s-1ISO \*(C+\s0 standard plus amendments.
+The 1998 \s-1ISO\s0 \*(C+ standard plus amendments.
 .ie n .IP """gnu++98""" 4
 .el .IP "\f(CWgnu++98\fR" 4
 .IX Item "gnu++98"
@@ -727,7 +726,7 @@
 .IP "\fB\-fextended\-identifiers\fR" 4
 .IX Item "-fextended-identifiers"
 Accept universal character names in identifiers.  This option is
-experimental; in a future version of \s-1GCC,\s0 it will be enabled by
+experimental; in a future version of \s-1GCC\s0, it will be enabled by
 default for C99 and \*(C+.
 .IP "\fB\-fno\-canonical\-system\-headers\fR" 4
 .IX Item "-fno-canonical-system-headers"
@@ -754,7 +753,7 @@
 ignored.  The default is 8.
 .IP "\fB\-fdebug\-cpp\fR" 4
 .IX Item "-fdebug-cpp"
-This option is only useful for debugging \s-1GCC. \s0 When used with
+This option is only useful for debugging \s-1GCC\s0.  When used with
 \&\fB\-E\fR, dumps debugging information about location maps.  Every
 token in the output is preceded by the dump of the map its location
 belongs to.  The dump of the map holding the location of a token would
@@ -787,12 +786,12 @@
 .IP "\fB\-fexec\-charset=\fR\fIcharset\fR" 4
 .IX Item "-fexec-charset=charset"
 Set the execution character set, used for string and character
-constants.  The default is \s-1UTF\-8.  \s0\fIcharset\fR can be any encoding
+constants.  The default is \s-1UTF\-8\s0.  \fIcharset\fR can be any encoding
 supported by the system's \f(CW\*(C`iconv\*(C'\fR library routine.
 .IP "\fB\-fwide\-exec\-charset=\fR\fIcharset\fR" 4
 .IX Item "-fwide-exec-charset=charset"
 Set the wide execution character set, used for wide string and
-character constants.  The default is \s-1UTF\-32\s0 or \s-1UTF\-16,\s0 whichever
+character constants.  The default is \s-1UTF\-32\s0 or \s-1UTF\-16\s0, whichever
 corresponds to the width of \f(CW\*(C`wchar_t\*(C'\fR.  As with
 \&\fB\-fexec\-charset\fR, \fIcharset\fR can be any encoding supported
 by the system's \f(CW\*(C`iconv\*(C'\fR library routine; however, you will have
@@ -800,9 +799,9 @@
 .IP "\fB\-finput\-charset=\fR\fIcharset\fR" 4
 .IX Item "-finput-charset=charset"
 Set the input character set, used for translation from the character
-set of the input file to the source character set used by \s-1GCC. \s0 If the
+set of the input file to the source character set used by \s-1GCC\s0.  If the
 locale does not specify, or \s-1GCC\s0 cannot get this information from the
-locale, the default is \s-1UTF\-8. \s0 This can be overridden by either the locale
+locale, the default is \s-1UTF\-8\s0.  This can be overridden by either the locale
 or this command line option.  Currently the command line option takes
 precedence if there's a conflict.  \fIcharset\fR can be any encoding
 supported by the system's \f(CW\*(C`iconv\*(C'\fR library routine.
@@ -839,7 +838,7 @@
 .IX Item "-dCHARS"
 \&\fI\s-1CHARS\s0\fR is a sequence of one or more of the following characters,
 and must not be preceded by a space.  Other characters are interpreted
-by the compiler proper, or reserved for future versions of \s-1GCC,\s0 and so
+by the compiler proper, or reserved for future versions of \s-1GCC\s0, and so
 are silently ignored.  If you specify characters whose behavior
 conflicts, the result is undefined.
 .RS 4
@@ -915,7 +914,7 @@
 .IP "\fB\-traditional\-cpp\fR" 4
 .IX Item "-traditional-cpp"
 Try to imitate the behavior of old-fashioned C preprocessors, as
-opposed to \s-1ISO C\s0 preprocessors.
+opposed to \s-1ISO\s0 C preprocessors.
 .IP "\fB\-trigraphs\fR" 4
 .IX Item "-trigraphs"
 Process trigraph sequences.
@@ -933,7 +932,7 @@
 preprocessing anything.
 .IP "\fB\-v\fR" 4
 .IX Item "-v"
-Verbose mode.  Print out \s-1GNU CPP\s0's version number at the beginning of
+Verbose mode.  Print out \s-1GNU\s0 \s-1CPP\s0's version number at the beginning of
 execution, and report the final form of the include path.
 .IP "\fB\-H\fR" 4
 .IX Item "-H"
@@ -948,7 +947,7 @@
 .IP "\fB\-\-version\fR" 4
 .IX Item "--version"
 .PD
-Print out \s-1GNU CPP\s0's version number.  With one dash, proceed to
+Print out \s-1GNU\s0 \s-1CPP\s0's version number.  With one dash, proceed to
 preprocess as normal.  With two dashes, exit immediately.
 .SH "ENVIRONMENT"
 .IX Header "ENVIRONMENT"
@@ -960,7 +959,7 @@
 \&\fB\-I\fR, and control dependency output with options like
 \&\fB\-M\fR.  These take precedence over
 environment variables, which in turn take precedence over the
-configuration of \s-1GCC.\s0
+configuration of \s-1GCC\s0.
 .IP "\fB\s-1CPATH\s0\fR" 4
 .IX Item "CPATH"
 .PD 0
diff --git a/share/man/man1/x86_64-w64-mingw32-dlltool.1 b/share/man/man1/x86_64-w64-mingw32-dlltool.1
index 273eed4..2158994 100644
--- a/share/man/man1/x86_64-w64-mingw32-dlltool.1
+++ b/share/man/man1/x86_64-w64-mingw32-dlltool.1
@@ -133,7 +133,7 @@
 .\" ========================================================================
 .\"
 .IX Title "DLLTOOL 1"
-.TH DLLTOOL 1 " " "binutils-2.25.51" "GNU Development Tools"
+.TH DLLTOOL 1 "2018-06-20" "binutils-2.27.0" "GNU Development Tools"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
@@ -398,10 +398,14 @@
 .IP "\fB\-\-kill\-at\fR" 4
 .IX Item "--kill-at"
 .PD
-Specifies that when \fBdlltool\fR is creating the exports file it
-should not append the string \fB@ <number>\fR.  These numbers are
-called ordinal numbers and they represent another way of accessing the
-function in a \s-1DLL,\s0 other than by name.
+Specifies that \fB@<number>\fR suffixes should be omitted from the names
+of stdcall functions that will be imported from the \s-1DLL. \s0 This is
+useful when creating an import library for a \s-1DLL\s0 which exports stdcall
+functions but without the usual \fB@<number>\fR symbol name suffix.
+.Sp
+This does not change the naming of symbols provided by the import library
+to programs linked against it, but only the entries in the import table
+(ie the .idata section).
 .IP "\fB\-A\fR" 4
 .IX Item "-A"
 .PD 0
@@ -528,7 +532,7 @@
 The Info pages for \fIbinutils\fR.
 .SH "COPYRIGHT"
 .IX Header "COPYRIGHT"
-Copyright (c) 1991\-2014 Free Software Foundation, Inc.
+Copyright (c) 1991\-2016 Free Software Foundation, Inc.
 .PP
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3
diff --git a/share/man/man1/x86_64-w64-mingw32-elfedit.1 b/share/man/man1/x86_64-w64-mingw32-elfedit.1
index 4896a09..312d37b 100644
--- a/share/man/man1/x86_64-w64-mingw32-elfedit.1
+++ b/share/man/man1/x86_64-w64-mingw32-elfedit.1
@@ -133,7 +133,7 @@
 .\" ========================================================================
 .\"
 .IX Title "ELFEDIT 1"
-.TH ELFEDIT 1 " " "binutils-2.25.51" "GNU Development Tools"
+.TH ELFEDIT 1 "2018-06-20" "binutils-2.27.0" "GNU Development Tools"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
@@ -170,8 +170,8 @@
 \&\fB\-\-input\-mach\fR isn't specified, it will match any \s-1ELF\s0
 machine types.
 .Sp
-The supported \s-1ELF\s0 machine types are, \fIL1OM\fR, \fIK1OM\fR and
-\&\fIx86\-64\fR.
+The supported \s-1ELF\s0 machine types are, \fIi386\fR, \fI\s-1IAMCU\s0\fR, \fIL1OM\fR,
+\&\fIK1OM\fR and \fIx86\-64\fR.
 .IP "\fB\-\-output\-mach=\fR\fImachine\fR" 4
 .IX Item "--output-mach=machine"
 Change the \s-1ELF\s0 machine type in the \s-1ELF\s0 header to \fImachine\fR.  The
@@ -232,7 +232,7 @@
 \&\fIreadelf\fR\|(1), and the Info entries for \fIbinutils\fR.
 .SH "COPYRIGHT"
 .IX Header "COPYRIGHT"
-Copyright (c) 1991\-2014 Free Software Foundation, Inc.
+Copyright (c) 1991\-2016 Free Software Foundation, Inc.
 .PP
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3
diff --git a/share/man/man1/x86_64-w64-mingw32-gprof.1 b/share/man/man1/x86_64-w64-mingw32-gprof.1
index 157976d..70ec999 100644
--- a/share/man/man1/x86_64-w64-mingw32-gprof.1
+++ b/share/man/man1/x86_64-w64-mingw32-gprof.1
@@ -133,7 +133,7 @@
 .\" ========================================================================
 .\"
 .IX Title "GPROF 1"
-.TH GPROF 1 " " "binutils-2.25.51" "GNU"
+.TH GPROF 1 "2018-06-20" "binutils-2.27.0" "GNU"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
@@ -142,14 +142,14 @@
 gprof \- display call graph profile data
 .SH "SYNOPSIS"
 .IX Header "SYNOPSIS"
-gprof [ \-[abcDhilLrsTvwxyz] ] [ \-[ACeEfFJnNOpPqQZ][\fIname\fR] ] 
+gprof [ \-[abcDhilLrsTvwxyz] ] [ \-[ACeEfFJnNOpPqQZ][\fIname\fR] ]
  [ \-I \fIdirs\fR ] [ \-d[\fInum\fR] ] [ \-k \fIfrom/to\fR ]
  [ \-m \fImin-count\fR ] [ \-R \fImap_file\fR ] [ \-t \fItable-length\fR ]
- [ \-\-[no\-]annotated\-source[=\fIname\fR] ] 
+ [ \-\-[no\-]annotated\-source[=\fIname\fR] ]
  [ \-\-[no\-]exec\-counts[=\fIname\fR] ]
  [ \-\-[no\-]flat\-profile[=\fIname\fR] ] [ \-\-[no\-]graph[=\fIname\fR] ]
- [ \-\-[no\-]time=\fIname\fR] [ \-\-all\-lines ] [ \-\-brief ] 
- [ \-\-debug[=\fIlevel\fR] ] [ \-\-function\-ordering ] 
+ [ \-\-[no\-]time=\fIname\fR] [ \-\-all\-lines ] [ \-\-brief ]
+ [ \-\-debug[=\fIlevel\fR] ] [ \-\-function\-ordering ]
  [ \-\-file\-ordering \fImap_file\fR ] [ \-\-directory\-path=\fIdirs\fR ]
  [ \-\-display\-unused\-functions ] [ \-\-file\-format=\fIname\fR ]
  [ \-\-file\-info ] [ \-\-help ] [ \-\-line ] [ \-\-inline\-file\-names ]
@@ -162,14 +162,14 @@
  [ \fIimage-file\fR ] [ \fIprofile-file\fR ... ]
 .SH "DESCRIPTION"
 .IX Header "DESCRIPTION"
-\&\f(CW\*(C`gprof\*(C'\fR produces an execution profile of C, Pascal, or Fortran77 
-programs.  The effect of called routines is incorporated in the profile 
+\&\f(CW\*(C`gprof\*(C'\fR produces an execution profile of C, Pascal, or Fortran77
+programs.  The effect of called routines is incorporated in the profile
 of each caller.  The profile data is taken from the call graph profile file
 (\fIgmon.out\fR default) which is created by programs
 that are compiled with the \fB\-pg\fR option of
 \&\f(CW\*(C`cc\*(C'\fR, \f(CW\*(C`pc\*(C'\fR, and \f(CW\*(C`f77\*(C'\fR.
 The \fB\-pg\fR option also links in versions of the library routines
-that are compiled for profiling.  \f(CW\*(C`Gprof\*(C'\fR reads the given object 
+that are compiled for profiling.  \f(CW\*(C`Gprof\*(C'\fR reads the given object
 file (the default is \f(CW\*(C`a.out\*(C'\fR) and establishes the relation between
 its symbol table and the call graph profile from \fIgmon.out\fR.
 If more than one profile file is specified, the \f(CW\*(C`gprof\*(C'\fR
@@ -473,9 +473,9 @@
 .PD
 These options control whether \*(C+ symbol names should be demangled when
 printing output.  The default is to demangle symbols.  The
-\&\f(CW\*(C`\-\-no\-demangle\*(C'\fR option may be used to turn off demangling. Different 
-compilers have different mangling styles.  The optional demangling style 
-argument can be used to choose an appropriate demangling style for your 
+\&\f(CW\*(C`\-\-no\-demangle\*(C'\fR option may be used to turn off demangling. Different
+compilers have different mangling styles.  The optional demangling style
+argument can be used to choose an appropriate demangling style for your
 compiler.
 .SS "Analysis Options"
 .IX Subsection "Analysis Options"
@@ -597,8 +597,8 @@
 .IX Item "--external-symbol-table=filename"
 .PD
 The \fB\-S\fR option causes \f(CW\*(C`gprof\*(C'\fR to read an external symbol table
-file, such as \fI/proc/kallsyms\fR, rather than read the symbol table 
-from the given object file (the default is \f(CW\*(C`a.out\*(C'\fR). This is useful 
+file, such as \fI/proc/kallsyms\fR, rather than read the symbol table
+from the given object file (the default is \f(CW\*(C`a.out\*(C'\fR). This is useful
 for profiling kernel modules.
 .ie n .IP """\-z""" 4
 .el .IP "\f(CW\-z\fR" 4
@@ -762,7 +762,7 @@
 \&\s-1SIGPLAN\s0 Notices, Vol. 17, No  6, pp. 120\-126, June 1982.
 .SH "COPYRIGHT"
 .IX Header "COPYRIGHT"
-Copyright (c) 1988\-2014 Free Software Foundation, Inc.
+Copyright (c) 1988\-2016 Free Software Foundation, Inc.
 .PP
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3
diff --git a/share/man/man1/x86_64-w64-mingw32-ld.1 b/share/man/man1/x86_64-w64-mingw32-ld.1
index 943de8a..49a622a 100644
--- a/share/man/man1/x86_64-w64-mingw32-ld.1
+++ b/share/man/man1/x86_64-w64-mingw32-ld.1
@@ -133,7 +133,7 @@
 .\" ========================================================================
 .\"
 .IX Title "LD 1"
-.TH LD 1 " " "binutils-2.25.51" "GNU Development Tools"
+.TH LD 1 "2018-06-20" "binutils-2.27.0" "GNU Development Tools"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
@@ -838,6 +838,19 @@
 modules from standard libraries.  \fB\-u\fR may be repeated with
 different option arguments to enter additional undefined symbols.  This
 option is equivalent to the \f(CW\*(C`EXTERN\*(C'\fR linker script command.
+.Sp
+If this option is being used to force additional modules to be pulled
+into the link, and if it is an error for the symbol to remain
+undefined, then the option \fB\-\-require\-defined\fR should be used
+instead.
+.IP "\fB\-\-require\-defined=\fR\fIsymbol\fR" 4
+.IX Item "--require-defined=symbol"
+Require that \fIsymbol\fR is defined in the output file.  This option
+is the same as option \fB\-\-undefined\fR except that if \fIsymbol\fR
+is not defined in the output file then the linker will issue an error
+and exit.  The same effect can be achieved in a linker script by using
+\&\f(CW\*(C`EXTERN\*(C'\fR, \f(CW\*(C`ASSERT\*(C'\fR and \f(CW\*(C`DEFINED\*(C'\fR together.  This option
+can be used multiple times to require additional symbols.
 .IP "\fB\-Ur\fR" 4
 .IX Item "-Ur"
 For anything other than \*(C+ programs, this option is equivalent to
@@ -848,6 +861,38 @@
 with \fB\-Ur\fR; once the constructor table has been built, it cannot
 be added to.  Use \fB\-Ur\fR only for the last partial link, and
 \&\fB\-r\fR for the others.
+.IP "\fB\-\-orphan\-handling=\fR\fI\s-1MODE\s0\fR" 4
+.IX Item "--orphan-handling=MODE"
+Control how orphan sections are handled.  An orphan section is one not
+specifically mentioned in a linker script.
+.Sp
+\&\fI\s-1MODE\s0\fR can have any of the following values:
+.RS 4
+.ie n .IP """place""" 4
+.el .IP "\f(CWplace\fR" 4
+.IX Item "place"
+Orphan sections are placed into a suitable output section following
+the strategy described in \fBOrphan Sections\fR.  The option
+\&\fB\-\-unique\fR also effects how sections are placed.
+.ie n .IP """discard""" 4
+.el .IP "\f(CWdiscard\fR" 4
+.IX Item "discard"
+All orphan sections are discarded, by placing them in the
+\&\fB/DISCARD/\fR section.
+.ie n .IP """warn""" 4
+.el .IP "\f(CWwarn\fR" 4
+.IX Item "warn"
+The linker will place the orphan section as for \f(CW\*(C`place\*(C'\fR and also
+issue a warning.
+.ie n .IP """error""" 4
+.el .IP "\f(CWerror\fR" 4
+.IX Item "error"
+The linker will exit with an error if any orphan section is found.
+.RE
+.RS 4
+.Sp
+The default if \fB\-\-orphan\-handling\fR is not given is \f(CW\*(C`place\*(C'\fR.
+.RE
 .IP "\fB\-\-unique[=\fR\fI\s-1SECTION\s0\fR\fB]\fR" 4
 .IX Item "--unique[=SECTION]"
 Creates a separate output section for every input section matching
@@ -907,6 +952,10 @@
 .IX Item "combreloc"
 Combines multiple reloc sections and sorts them to make dynamic symbol
 lookup caching possible.
+.IP "\fBcommon\fR" 4
+.IX Item "common"
+Generate common symbols with the \s-1STT_COMMON\s0 type druing a relocatable
+link.
 .IP "\fBdefs\fR" 4
 .IX Item "defs"
 Disallows undefined symbols in object files.  Undefined symbols in
@@ -947,9 +996,14 @@
 .IP "\fBnocombreloc\fR" 4
 .IX Item "nocombreloc"
 Disables multiple reloc sections combining.
+.IP "\fBnocommon\fR" 4
+.IX Item "nocommon"
+Generate common symbols with the \s-1STT_OBJECT\s0 type druing a relocatable
+link.
 .IP "\fBnocopyreloc\fR" 4
 .IX Item "nocopyreloc"
-Disables production of copy relocs.
+Disable linker generated .dynbss variables used in place of variables
+defined in shared libraries.  May result in dynamic text relocations.
 .IP "\fBnodefaultlib\fR" 4
 .IX Item "nodefaultlib"
 Marks the object that the search for dependencies of this object will
@@ -966,6 +1020,15 @@
 .IP "\fBnoexecstack\fR" 4
 .IX Item "noexecstack"
 Marks the object as not requiring executable stack.
+.IP "\fBtext\fR" 4
+.IX Item "text"
+Treat \s-1DT_TEXTREL\s0 in shared object as error.
+.IP "\fBnotext\fR" 4
+.IX Item "notext"
+Don't treat \s-1DT_TEXTREL\s0 in shared object as error.
+.IP "\fBtextoff\fR" 4
+.IX Item "textoff"
+Don't treat \s-1DT_TEXTREL\s0 in shared object as error.
 .IP "\fBnorelro\fR" 4
 .IX Item "norelro"
 Don't create an \s-1ELF \s0\f(CW\*(C`PT_GNU_RELRO\*(C'\fR segment header in the object.
@@ -993,6 +1056,48 @@
 Specify a stack size for in an \s-1ELF \s0\f(CW\*(C`PT_GNU_STACK\*(C'\fR segment.
 Specifying zero will override any default non-zero sized
 \&\f(CW\*(C`PT_GNU_STACK\*(C'\fR segment creation.
+.IP "\fBbndplt\fR" 4
+.IX Item "bndplt"
+Always generate \s-1BND\s0 prefix in \s-1PLT\s0 entries. Supported for Linux/x86_64.
+.IP "\fBnoextern-protected-data\fR" 4
+.IX Item "noextern-protected-data"
+Don't treat protected data symbol as external when building shared
+library.  This option overrides linker backend default.  It can be used
+to workaround incorrect relocations against protected data symbols
+generated by compiler.  Updates on protected data symbols by another
+module aren't visible to the resulting shared library.  Supported for
+i386 and x86\-64.
+.IP "\fBnodynamic-undefined-weak\fR" 4
+.IX Item "nodynamic-undefined-weak"
+Don't treat undefined weak symbols as dynamic when building executable.
+This option overrides linker backend default.  It can be used to avoid
+dynamic relocations against undefined weak symbols in executable.
+Supported for i386 and x86\-64.
+.IP "\fBnoreloc-overflow\fR" 4
+.IX Item "noreloc-overflow"
+Disable relocation overflow check.  This can be used to disable
+relocation overflow check if there will be no dynamic relocation
+overflow at run-time.  Supported for x86_64.
+.IP "\fBcall\-nop=prefix\-addr\fR" 4
+.IX Item "call-nop=prefix-addr"
+.PD 0
+.IP "\fBcall\-nop=prefix\-nop\fR" 4
+.IX Item "call-nop=prefix-nop"
+.IP "\fBcall\-nop=suffix\-nop\fR" 4
+.IX Item "call-nop=suffix-nop"
+.IP "\fBcall\-nop=prefix\-\fR\fIbyte\fR" 4
+.IX Item "call-nop=prefix-byte"
+.IP "\fBcall\-nop=suffix\-\fR\fIbyte\fR" 4
+.IX Item "call-nop=suffix-byte"
+.PD
+Specify the 1\-byte \f(CW\*(C`NOP\*(C'\fR padding when transforming indirect call
+to a locally defined function, foo, via its \s-1GOT\s0 slot.
+\&\fBcall\-nop=prefix\-addr\fR generates \f(CW\*(C`0x67 call foo\*(C'\fR.
+\&\fBcall\-nop=prefix\-nop\fR generates \f(CW\*(C`0x90 call foo\*(C'\fR.
+\&\fBcall\-nop=suffix\-nop\fR generates \f(CW\*(C`call foo 0x90\*(C'\fR.
+\&\fBcall\-nop=prefix\-\fR\fIbyte\fR generates \f(CW\*(C`\f(CIbyte\f(CW call foo\*(C'\fR.
+\&\fBcall\-nop=suffix\-\fR\fIbyte\fR generates \f(CW\*(C`call foo \f(CIbyte\f(CW\*(C'\fR.
+Supported for i386 and x86_64.
 .RE
 .RS 4
 .Sp
@@ -1110,14 +1215,20 @@
 When creating a shared library, bind references to global symbols to the
 definition within the shared library, if any.  Normally, it is possible
 for a program linked against a shared library to override the definition
-within the shared library.  This option is only meaningful on \s-1ELF\s0
-platforms which support shared libraries.
+within the shared library.  This option can also be used with the
+\&\fB\-\-export\-dynamic\fR option, when creating a position independent
+executable, to bind references to global symbols to the definition within
+the executable.  This option is only meaningful on \s-1ELF\s0 platforms which
+support shared libraries and position independent executables.
 .IP "\fB\-Bsymbolic\-functions\fR" 4
 .IX Item "-Bsymbolic-functions"
 When creating a shared library, bind references to global function
 symbols to the definition within the shared library, if any.
+This option can also be used with the \fB\-\-export\-dynamic\fR option,
+when creating a position independent executable, to bind references
+to global function symbols to the definition within the executable.
 This option is only meaningful on \s-1ELF\s0 platforms which support shared
-libraries.
+libraries and position independent executables.
 .IP "\fB\-\-dynamic\-list=\fR\fIdynamic-list-file\fR" 4
 .IX Item "--dynamic-list=dynamic-list-file"
 Specify the name of a dynamic list file to the linker.  This is
@@ -1215,9 +1326,9 @@
 context: you may give a hexadecimal constant or the name of an existing
 symbol, or use \f(CW\*(C`+\*(C'\fR and \f(CW\*(C`\-\*(C'\fR to add or subtract hexadecimal
 constants or symbols.  If you need more elaborate expressions, consider
-using the linker command language from a script.  \fINote:\fR there should be no white
-space between \fIsymbol\fR, the equals sign ("\fB=\fR"), and
-\&\fIexpression\fR.
+using the linker command language from a script.
+\&\fINote:\fR there should be no white space between \fIsymbol\fR, the
+equals sign ("\fB=\fR"), and \fIexpression\fR.
 .IP "\fB\-\-demangle[=\fR\fIstyle\fR\fB]\fR" 4
 .IX Item "--demangle[=style]"
 .PD 0
@@ -1243,6 +1354,12 @@
 generating dynamically linked \s-1ELF\s0 executables.  The default dynamic
 linker is normally correct; don't use this unless you know what you are
 doing.
+.IP "\fB\-\-no\-dynamic\-linker\fR" 4
+.IX Item "--no-dynamic-linker"
+When producing an executable file, omit the request for a dynamic
+linker to be used at load-time.  This is only meaningful for \s-1ELF\s0
+executables that contain dynamic relocations, and usually requires
+entry point code that is capable of processing these relocations.
 .IP "\fB\-\-fatal\-warnings\fR" 4
 .IX Item "--fatal-warnings"
 .PD 0
@@ -1270,7 +1387,9 @@
 Enable garbage collection of unused input sections.  It is ignored on
 targets that do not support this option.  The default behaviour (of not
 performing this garbage collection) can be restored by specifying
-\&\fB\-\-no\-gc\-sections\fR on the command line.
+\&\fB\-\-no\-gc\-sections\fR on the command line.  Note that garbage
+collection for \s-1COFF\s0 and \s-1PE\s0 format targets is supported, but the
+implementation is currently considered to be experimental.
 .Sp
 \&\fB\-\-gc\-sections\fR decides which input sections are used by
 examining symbols and relocations.  The section containing the entry
@@ -1303,6 +1422,19 @@
 Print the name of the default output format (perhaps influenced by
 other command-line options).  This is the string that would appear
 in an \f(CW\*(C`OUTPUT_FORMAT\*(C'\fR linker script command.
+.IP "\fB\-\-print\-memory\-usage\fR" 4
+.IX Item "--print-memory-usage"
+Print used size, total size and used size of memory regions created with
+the \fB\s-1MEMORY\s0\fR command.  This is useful on embedded targets to have a
+quick view of amount of free memory.  The format of the output has one
+headline and one line per region.  It is both human readable and easily
+parsable by tools.  Here is an example of an output:
+.Sp
+.Vb 3
+\&        Memory region         Used Size  Region Size  %age Used
+\&                     ROM:        256 KB         1 MB     25.00%
+\&                     RAM:          32 B         2 GB      0.00%
+.Ve
 .IP "\fB\-\-help\fR" 4
 .IX Item "--help"
 Print a summary of the command-line options on the standard output and exit.
@@ -1499,7 +1631,7 @@
 \&\f(CW\*(C`LD_RUN_PATH\*(C'\fR will be used if it is defined.
 .Sp
 The \fB\-rpath\fR option may also be used on SunOS.  By default, on
-SunOS, the linker will form a runtime search patch out of all the
+SunOS, the linker will form a runtime search path out of all the
 \&\fB\-L\fR options it is given.  If a \fB\-rpath\fR option is used, the
 runtime search path will be formed exclusively using the \fB\-rpath\fR
 options, ignoring the \fB\-L\fR options.  This can be useful when using
@@ -1934,6 +2066,27 @@
 new style \s-1GNU \s0\f(CW\*(C`.gnu.hash\*(C'\fR section or \f(CW\*(C`both\*(C'\fR for both
 the classic \s-1ELF \s0\f(CW\*(C`.hash\*(C'\fR and new style \s-1GNU \s0\f(CW\*(C`.gnu.hash\*(C'\fR
 hash tables.  The default is \f(CW\*(C`sysv\*(C'\fR.
+.IP "\fB\-\-compress\-debug\-sections=none\fR" 4
+.IX Item "--compress-debug-sections=none"
+.PD 0
+.IP "\fB\-\-compress\-debug\-sections=zlib\fR" 4
+.IX Item "--compress-debug-sections=zlib"
+.IP "\fB\-\-compress\-debug\-sections=zlib\-gnu\fR" 4
+.IX Item "--compress-debug-sections=zlib-gnu"
+.IP "\fB\-\-compress\-debug\-sections=zlib\-gabi\fR" 4
+.IX Item "--compress-debug-sections=zlib-gabi"
+.PD
+On \s-1ELF\s0 platforms , these options control how \s-1DWARF\s0 debug sections are
+compressed using zlib.  \fB\-\-compress\-debug\-sections=none\fR doesn't
+compress \s-1DWARF\s0 debug sections.
+\&\fB\-\-compress\-debug\-sections=zlib\-gnu\fR compresses \s-1DWARF\s0 debug
+sections and rename debug section names to begin with \fB.zdebug\fR
+instead of \fB.debug\fR.  \fB\-\-compress\-debug\-sections=zlib\fR
+and \fB\-\-compress\-debug\-sections=zlib\-gabi\fR
+compress \s-1DWARF\s0 debug sections with \s-1SHF_COMPRESSED\s0 from the \s-1ELF ABI.\s0
+The default behaviour varies depending upon the target involved and
+the configure options used to build the toolchain.  The default can be
+determined by examing the output from the linker's \fB\-\-help\fR option.
 .IP "\fB\-\-reduce\-memory\-overheads\fR" 4
 .IX Item "--reduce-memory-overheads"
 This option reduces memory requirements at ld runtime, at the expense of
@@ -1955,7 +2108,7 @@
 .IX Item "--build-id=style"
 .PD
 Request the creation of a \f(CW\*(C`.note.gnu.build\-id\*(C'\fR \s-1ELF\s0 note section
-or a \f(CW\*(C`.build\-id\*(C'\fR \s-1COFF\s0 section.  The contents of the note are
+or a \f(CW\*(C`.buildid\*(C'\fR \s-1COFF\s0 section.  The contents of the note are
 unique bits identifying this linked file.  \fIstyle\fR can be
 \&\f(CW\*(C`uuid\*(C'\fR to use 128 random bits, \f(CW\*(C`sha1\*(C'\fR to use a 160\-bit
 \&\s-1SHA1\s0 hash on the normative parts of the output contents,
@@ -2026,10 +2179,10 @@
 .IP "\fB\-\-disable\-long\-section\-names\fR" 4
 .IX Item "--disable-long-section-names"
 .PD
-The \s-1PE\s0 variants of the Coff object format add an extension that permits
+The \s-1PE\s0 variants of the \s-1COFF\s0 object format add an extension that permits
 the use of section names longer than eight characters, the normal limit
-for Coff.  By default, these names are only allowed in object files, as
-fully-linked executable images do not carry the Coff string table required
+for \s-1COFF. \s0 By default, these names are only allowed in object files, as
+fully-linked executable images do not carry the \s-1COFF\s0 string table required
 to support the longer names.  As a \s-1GNU\s0 extension, it is possible to
 allow their use in executable images as well, or to (probably pointlessly!)
 disallow it in object files, by using these two options.  Executable images
@@ -2447,10 +2600,10 @@
 Insert a real timestamp into the image.  This is the default behaviour
 as it matches legacy code and it means that the image will work with
 other, proprietary tools.  The problem with this default is that it
-will result in slightly different images being produced each tiem the
+will result in slightly different images being produced each time the
 same sources are linked.  The option \fB\-\-no\-insert\-timestamp\fR
 can be used to insert a zero value for the timestamp, this ensuring
-that binaries produced from indentical sources will compare
+that binaries produced from identical sources will compare
 identically.
 .PP
 The C6X uClinux target uses a binary format called \s-1DSBT\s0 to support shared
@@ -2458,7 +2611,7 @@
 all executables use an index of 0.
 .IP "\fB\-\-dsbt\-size\fR \fIsize\fR" 4
 .IX Item "--dsbt-size size"
-This option sets the number of entires in the \s-1DSBT\s0 of the current executable
+This option sets the number of entries in the \s-1DSBT\s0 of the current executable
 or shared library to \fIsize\fR.  The default is to create a table with 64
 entries.
 .IP "\fB\-\-dsbt\-index\fR \fIindex\fR" 4
@@ -2508,14 +2661,6 @@
 32\-bit instruction encodings.  By default or if \fB\-\-no\-insn32\fR is
 used, all instruction encodings are used, including 16\-bit ones where
 possible.
-.IP "\fB\-\-compact\-branches\fR" 4
-.IX Item "--compact-branches"
-.PD 0
-.IP "\fB\-\-compact\-branches\fR" 4
-.IX Item "--compact-branches"
-.PD
-These options control the generation of compact instructions by the linker
-in the \s-1PLT\s0 entries for \s-1MIPS R6.\s0
 .SH "ENVIRONMENT"
 .IX Header "ENVIRONMENT"
 You can change the behaviour of \fBld\fR with the environment variables
@@ -2555,7 +2700,7 @@
 \&\fIld\fR.
 .SH "COPYRIGHT"
 .IX Header "COPYRIGHT"
-Copyright (c) 1991\-2014 Free Software Foundation, Inc.
+Copyright (c) 1991\-2016 Free Software Foundation, Inc.
 .PP
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3
diff --git a/share/man/man1/x86_64-w64-mingw32-nlmconv.1 b/share/man/man1/x86_64-w64-mingw32-nlmconv.1
index 3616536..41ec225 100644
--- a/share/man/man1/x86_64-w64-mingw32-nlmconv.1
+++ b/share/man/man1/x86_64-w64-mingw32-nlmconv.1
@@ -133,7 +133,7 @@
 .\" ========================================================================
 .\"
 .IX Title "NLMCONV 1"
-.TH NLMCONV 1 " " "binutils-2.25.51" "GNU Development Tools"
+.TH NLMCONV 1 "2018-06-20" "binutils-2.27.0" "GNU Development Tools"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
@@ -241,7 +241,7 @@
 the Info entries for \fIbinutils\fR.
 .SH "COPYRIGHT"
 .IX Header "COPYRIGHT"
-Copyright (c) 1991\-2014 Free Software Foundation, Inc.
+Copyright (c) 1991\-2016 Free Software Foundation, Inc.
 .PP
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3
diff --git a/share/man/man1/x86_64-w64-mingw32-nm.1 b/share/man/man1/x86_64-w64-mingw32-nm.1
index e1f0f00..74f6b6d 100644
--- a/share/man/man1/x86_64-w64-mingw32-nm.1
+++ b/share/man/man1/x86_64-w64-mingw32-nm.1
@@ -133,7 +133,7 @@
 .\" ========================================================================
 .\"
 .IX Title "NM 1"
-.TH NM 1 " " "binutils-2.25.51" "GNU Development Tools"
+.TH NM 1 "2018-06-20" "binutils-2.27.0" "GNU Development Tools"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
@@ -491,11 +491,12 @@
 with plugin support enabled.
 .IP "\fB\-\-size\-sort\fR" 4
 .IX Item "--size-sort"
-Sort symbols by size.  The size is computed as the difference between
-the value of the symbol and the value of the symbol with the next higher
-value.  If the \f(CW\*(C`bsd\*(C'\fR output format is used the size of the symbol
-is printed, rather than the value, and \fB\-S\fR must be used in order
-both size and value to be printed.
+Sort symbols by size.  For \s-1ELF\s0 objects symbol sizes are read from the
+\&\s-1ELF,\s0 for other object types the symbol sizes are computed as the
+difference between the value of the symbol and the value of the symbol
+with the next higher value.  If the \f(CW\*(C`bsd\*(C'\fR output format is used
+the size of the symbol is printed, rather than the value, and
+\&\fB\-S\fR must be used in order both size and value to be printed.
 .IP "\fB\-\-special\-syms\fR" 4
 .IX Item "--special-syms"
 Display symbols which have a target-specific special meaning.  These
@@ -529,7 +530,7 @@
 \&\fIar\fR\|(1), \fIobjdump\fR\|(1), \fIranlib\fR\|(1), and the Info entries for \fIbinutils\fR.
 .SH "COPYRIGHT"
 .IX Header "COPYRIGHT"
-Copyright (c) 1991\-2014 Free Software Foundation, Inc.
+Copyright (c) 1991\-2016 Free Software Foundation, Inc.
 .PP
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3
diff --git a/share/man/man1/x86_64-w64-mingw32-objcopy.1 b/share/man/man1/x86_64-w64-mingw32-objcopy.1
index 3846cf8..13987b2 100644
--- a/share/man/man1/x86_64-w64-mingw32-objcopy.1
+++ b/share/man/man1/x86_64-w64-mingw32-objcopy.1
@@ -133,7 +133,7 @@
 .\" ========================================================================
 .\"
 .IX Title "OBJCOPY 1"
-.TH OBJCOPY 1 " " "binutils-2.25.51" "GNU Development Tools"
+.TH OBJCOPY 1 "2018-06-20" "binutils-2.27.0" "GNU Development Tools"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
@@ -180,6 +180,7 @@
         [\fB\-\-set\-section\-flags\fR \fIsectionpattern\fR=\fIflags\fR]
         [\fB\-\-add\-section\fR \fIsectionname\fR=\fIfilename\fR]
         [\fB\-\-dump\-section\fR \fIsectionname\fR=\fIfilename\fR]
+        [\fB\-\-update\-section\fR \fIsectionname\fR=\fIfilename\fR]
         [\fB\-\-rename\-section\fR \fIoldname\fR=\fInewname\fR[,\fIflags\fR]]
         [\fB\-\-long\-section\-names\fR {enable,disable,keep}]
         [\fB\-\-change\-leading\-char\fR] [\fB\-\-remove\-leading\-char\fR]
@@ -195,6 +196,7 @@
         [\fB\-\-localize\-symbols=\fR\fIfilename\fR]
         [\fB\-\-globalize\-symbols=\fR\fIfilename\fR]
         [\fB\-\-weaken\-symbols=\fR\fIfilename\fR]
+        [\fB\-\-add\-symbol\fR \fIname\fR=[\fIsection\fR:]\fIvalue\fR[,\fIflags\fR]
         [\fB\-\-alt\-machine\-code=\fR\fIindex\fR]
         [\fB\-\-prefix\-symbols=\fR\fIstring\fR]
         [\fB\-\-prefix\-sections=\fR\fIstring\fR]
@@ -217,8 +219,7 @@
         [\fB\-\-subsystem=\fR\fIwhich\fR:\fImajor\fR.\fIminor\fR]
         [\fB\-\-compress\-debug\-sections\fR]
         [\fB\-\-decompress\-debug\-sections\fR]
-        [\fB\-\-dwarf\-depth=\fR\fIn\fR]
-        [\fB\-\-dwarf\-start=\fR\fIn\fR]
+        [\fB\-\-elf\-stt\-common=\fR\fIval\fR]
         [\fB\-v\fR|\fB\-\-verbose\fR]
         [\fB\-V\fR|\fB\-\-version\fR]
         [\fB\-\-help\fR] [\fB\-\-info\fR]
@@ -642,6 +643,33 @@
 that it does not create a formatted file, it just dumps the contents
 as raw binary data, without applying any relocations.  The option can
 be specified more than once.
+.IP "\fB\-\-update\-section\fR \fIsectionname\fR\fB=\fR\fIfilename\fR" 4
+.IX Item "--update-section sectionname=filename"
+Replace the existing contents of a section named \fIsectionname\fR
+with the contents of file \fIfilename\fR.  The size of the section
+will be adjusted to the size of the file.  The section flags for
+\&\fIsectionname\fR will be unchanged.  For \s-1ELF\s0 format files the section
+to segment mapping will also remain unchanged, something which is not
+possible using \fB\-\-remove\-section\fR followed by
+\&\fB\-\-add\-section\fR.  The option can be specified more than once.
+.Sp
+Note \- it is possible to use \fB\-\-rename\-section\fR and
+\&\fB\-\-update\-section\fR to both update and rename a section from one
+command line.  In this case, pass the original section name to
+\&\fB\-\-update\-section\fR, and the original and new section names to
+\&\fB\-\-rename\-section\fR.
+.IP "\fB\-\-add\-symbol\fR \fIname\fR\fB=[\fR\fIsection\fR\fB:]\fR\fIvalue\fR\fB[,\fR\fIflags\fR\fB]\fR" 4
+.IX Item "--add-symbol name=[section:]value[,flags]"
+Add a new symbol named \fIname\fR while copying the file.  This option may be
+specified multiple times.  If the \fIsection\fR is given, the symbol will be
+associated with and relative to that section, otherwise it will be an \s-1ABS\s0
+symbol.  Specifying an undefined section will result in a fatal error.  There
+is no check for the value, it will be taken as specified.  Symbol flags can
+be specified and not all flags will be meaningful for all object file
+formats.  By default, the symbol will be global.  The special flag
+\&'before=\fIothersym\fR' will insert the new symbol in front of the specified
+\&\fIothersym\fR, otherwise the symbol(s) will be added at the end of the
+symbol table in the order they appear.
 .IP "\fB\-\-rename\-section\fR \fIoldname\fR\fB=\fR\fInewname\fR\fB[,\fR\fIflags\fR\fB]\fR" 4
 .IX Item "--rename-section oldname=newname[,flags]"
 Rename a section from \fIoldname\fR to \fInewname\fR, optionally
@@ -822,8 +850,48 @@
 \&\fIstring\fR.
 .IP "\fB\-\-add\-gnu\-debuglink=\fR\fIpath-to-file\fR" 4
 .IX Item "--add-gnu-debuglink=path-to-file"
-Creates a .gnu_debuglink section which contains a reference to \fIpath-to-file\fR
-and adds it to the output file.
+Creates a .gnu_debuglink section which contains a reference to
+\&\fIpath-to-file\fR and adds it to the output file.  Note: the file at
+\&\fIpath-to-file\fR must exist.  Part of the process of adding the
+\&.gnu_debuglink section involves embedding a checksum of the contents
+of the debug info file into the section.
+.Sp
+If the debug info file is built in one location but it is going to be
+installed at a later time into a different location then do not use
+the path to the installed location.  The \fB\-\-add\-gnu\-debuglink\fR
+option will fail because the installed file does not exist yet.
+Instead put the debug info file in the current directory and use the
+\&\fB\-\-add\-gnu\-debuglink\fR option without any directory components,
+like this:
+.Sp
+.Vb 1
+\&         objcopy \-\-add\-gnu\-debuglink=foo.debug
+.Ve
+.Sp
+At debug time the debugger will attempt to look for the separate debug
+info file in a set of known locations.  The exact set of these
+locations varies depending upon the distribution being used, but it
+typically includes:
+.RS 4
+.ie n .IP """* The same directory as the executable.""" 4
+.el .IP "\f(CW* The same directory as the executable.\fR" 4
+.IX Item "* The same directory as the executable."
+.PD 0
+.ie n .IP """* A sub\-directory of the directory containing the executable""" 4
+.el .IP "\f(CW* A sub\-directory of the directory containing the executable\fR" 4
+.IX Item "* A sub-directory of the directory containing the executable"
+.PD
+called .debug
+.ie n .IP """* A global debug directory such as /usr/lib/debug.""" 4
+.el .IP "\f(CW* A global debug directory such as /usr/lib/debug.\fR" 4
+.IX Item "* A global debug directory such as /usr/lib/debug."
+.RE
+.RS 4
+.Sp
+As long as the debug info file has been installed into one of these
+locations before the debugger is run everything should work
+correctly.
+.RE
 .IP "\fB\-\-keep\-file\-symbols\fR" 4
 .IX Item "--keep-file-symbols"
 When stripping a file, perhaps with \fB\-\-strip\-debug\fR or
@@ -835,6 +903,12 @@
 stripped by \fB\-\-strip\-debug\fR and leaving the debugging sections
 intact.  In \s-1ELF\s0 files, this preserves all note sections in the output.
 .Sp
+Note \- the section headers of the stripped sections are preserved,
+including their sizes, but the contents of the section are discarded.
+The section headers are preserved so that other tools can match up the
+debuginfo file with the real executable, even if that executable has
+been relocated to a different address space.
+.Sp
 The intention is that this option will be used in conjunction with
 \&\fB\-\-add\-gnu\-debuglink\fR to create a two part executable.  One a
 stripped binary which will occupy less space in \s-1RAM\s0 and in a
@@ -980,10 +1054,45 @@
 .RE
 .IP "\fB\-\-compress\-debug\-sections\fR" 4
 .IX Item "--compress-debug-sections"
-Compress \s-1DWARF\s0 debug sections using zlib.
+Compress \s-1DWARF\s0 debug sections using zlib with \s-1SHF_COMPRESSED\s0 from the
+\&\s-1ELF ABI. \s0 Note \- if compression would actually make a section
+\&\fIlarger\fR, then it is not compressed.
+.IP "\fB\-\-compress\-debug\-sections=none\fR" 4
+.IX Item "--compress-debug-sections=none"
+.PD 0
+.IP "\fB\-\-compress\-debug\-sections=zlib\fR" 4
+.IX Item "--compress-debug-sections=zlib"
+.IP "\fB\-\-compress\-debug\-sections=zlib\-gnu\fR" 4
+.IX Item "--compress-debug-sections=zlib-gnu"
+.IP "\fB\-\-compress\-debug\-sections=zlib\-gabi\fR" 4
+.IX Item "--compress-debug-sections=zlib-gabi"
+.PD
+For \s-1ELF\s0 files, these options control how \s-1DWARF\s0 debug sections are
+compressed.  \fB\-\-compress\-debug\-sections=none\fR is equivalent
+to \fB\-\-decompress\-debug\-sections\fR.
+\&\fB\-\-compress\-debug\-sections=zlib\fR and
+\&\fB\-\-compress\-debug\-sections=zlib\-gabi\fR are equivalent to
+\&\fB\-\-compress\-debug\-sections\fR.
+\&\fB\-\-compress\-debug\-sections=zlib\-gnu\fR compresses \s-1DWARF\s0 debug
+sections using zlib.  The debug sections are renamed to begin with
+\&\fB.zdebug\fR instead of \fB.debug\fR.  Note \- if compression would
+actually make a section \fIlarger\fR, then it is not compressed nor
+renamed.
 .IP "\fB\-\-decompress\-debug\-sections\fR" 4
 .IX Item "--decompress-debug-sections"
-Decompress \s-1DWARF\s0 debug sections using zlib.
+Decompress \s-1DWARF\s0 debug sections using zlib.  The original section
+names of the compressed sections are restored.
+.IP "\fB\-\-elf\-stt\-common=yes\fR" 4
+.IX Item "--elf-stt-common=yes"
+.PD 0
+.IP "\fB\-\-elf\-stt\-common=no\fR" 4
+.IX Item "--elf-stt-common=no"
+.PD
+For \s-1ELF\s0 files, these options control whether common symbols should be
+converted to the \f(CW\*(C`STT_COMMON\*(C'\fR or \f(CW\*(C`STT_OBJECT\*(C'\fR type.
+\&\fB\-\-elf\-stt\-common=yes\fR converts common symbol type to
+\&\f(CW\*(C`STT_COMMON\*(C'\fR. \fB\-\-elf\-stt\-common=no\fR converts common symbol
+type to \f(CW\*(C`STT_OBJECT\*(C'\fR.
 .IP "\fB\-V\fR" 4
 .IX Item "-V"
 .PD 0
@@ -1023,7 +1132,7 @@
 \&\fIld\fR\|(1), \fIobjdump\fR\|(1), and the Info entries for \fIbinutils\fR.
 .SH "COPYRIGHT"
 .IX Header "COPYRIGHT"
-Copyright (c) 1991\-2014 Free Software Foundation, Inc.
+Copyright (c) 1991\-2016 Free Software Foundation, Inc.
 .PP
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3
diff --git a/share/man/man1/x86_64-w64-mingw32-objdump.1 b/share/man/man1/x86_64-w64-mingw32-objdump.1
index 2f660d0..3fe6353 100644
--- a/share/man/man1/x86_64-w64-mingw32-objdump.1
+++ b/share/man/man1/x86_64-w64-mingw32-objdump.1
@@ -133,7 +133,7 @@
 .\" ========================================================================
 .\"
 .IX Title "OBJDUMP 1"
-.TH OBJDUMP 1 " " "binutils-2.25.51" "GNU Development Tools"
+.TH OBJDUMP 1 "2018-06-20" "binutils-2.27.0" "GNU Development Tools"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
@@ -167,7 +167,10 @@
         [\fB\-R\fR|\fB\-\-dynamic\-reloc\fR]
         [\fB\-s\fR|\fB\-\-full\-contents\fR]
         [\fB\-W[lLiaprmfFsoRt]\fR|
-         \fB\-\-dwarf\fR[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames\-interp,=str,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges,=gdb_index]]
+         \fB\-\-dwarf\fR[=rawline,=decodedline,=info,=abbrev,=pubnames]
+                 [=aranges,=macro,=frames,=frames\-interp,=str,=loc]
+                 [=Ranges,=pubtypes,=trace_info,=trace_abbrev]
+                 [=trace_aranges,=gdb_index]
         [\fB\-G\fR|\fB\-\-stabs\fR]
         [\fB\-t\fR|\fB\-\-syms\fR]
         [\fB\-T\fR|\fB\-\-dynamic\-syms\fR]
@@ -178,6 +181,8 @@
         [\fB\-\-prefix\-addresses\fR]
         [\fB\-\-[no\-]show\-raw\-insn\fR]
         [\fB\-\-adjust\-vma=\fR\fIoffset\fR]
+        [\fB\-\-dwarf\-depth=\fR\fIn\fR]
+        [\fB\-\-dwarf\-start=\fR\fIn\fR]
         [\fB\-\-special\-syms\fR]
         [\fB\-\-prefix=\fR\fIprefix\fR]
         [\fB\-\-prefix\-strip=\fR\fIlevel\fR]
@@ -286,6 +291,15 @@
 Like \fB\-d\fR, but disassemble the contents of all sections, not just
 those expected to contain instructions.
 .Sp
+This option also has a subtle effect on the disassembly of
+instructions in code sections.  When option \fB\-d\fR is in effect
+objdump will assume that any symbols present in a code section occur
+on the boundary between instructions and it will refuse to disassemble
+across such a boundary.  When option \fB\-D\fR is in effect however
+this assumption is supressed.  This means that it is possible for the
+output of \fB\-d\fR and \fB\-D\fR to differ if, for example, data
+is stored in code sections.
+.Sp
 If the target is an \s-1ARM\s0 architecture this switch also has the effect
 of forcing the disassembler to decode pieces of data found in code
 sections as if they were instructions.
@@ -348,6 +362,11 @@
 \&\-h\fR to list the file section headers cannot show the correct addresses.
 Instead, it shows the usual addresses, which are implicit for the
 target.
+.Sp
+Note, in some cases it is possible for a section to have both the
+\&\s-1READONLY\s0 and the \s-1NOREAD\s0 attributes set.  In such cases the \s-1NOREAD\s0
+attribute takes precedence, but \fBobjdump\fR will report both
+since the exact setting of the flag bits might be important.
 .IP "\fB\-H\fR" 4
 .IX Item "-H"
 .PD 0
@@ -430,19 +449,75 @@
 For the x86, some of the options duplicate functions of the \fB\-m\fR
 switch, but allow finer grained control.  Multiple selections from the
 following may be specified as a comma separated string.
-\&\fBx86\-64\fR, \fBi386\fR and \fBi8086\fR select disassembly for
-the given architecture.  \fBintel\fR and \fBatt\fR select between
-intel syntax mode and \s-1AT&T\s0 syntax mode.
-\&\fBintel-mnemonic\fR and \fBatt-mnemonic\fR select between
-intel mnemonic mode and \s-1AT&T\s0 mnemonic mode. \fBintel-mnemonic\fR
-implies \fBintel\fR and \fBatt-mnemonic\fR implies \fBatt\fR.
-\&\fBaddr64\fR, \fBaddr32\fR,
-\&\fBaddr16\fR, \fBdata32\fR and \fBdata16\fR specify the default
-address size and operand size.  These four options will be overridden if
-\&\fBx86\-64\fR, \fBi386\fR or \fBi8086\fR appear later in the
-option string.  Lastly, \fBsuffix\fR, when in \s-1AT&T\s0 mode,
-instructs the disassembler to print a mnemonic suffix even when the
-suffix could be inferred by the operands.
+.RS 4
+.ie n .IP """x86\-64""" 4
+.el .IP "\f(CWx86\-64\fR" 4
+.IX Item "x86-64"
+.PD 0
+.ie n .IP """i386""" 4
+.el .IP "\f(CWi386\fR" 4
+.IX Item "i386"
+.ie n .IP """i8086""" 4
+.el .IP "\f(CWi8086\fR" 4
+.IX Item "i8086"
+.PD
+Select disassembly for the given architecture.
+.ie n .IP """intel""" 4
+.el .IP "\f(CWintel\fR" 4
+.IX Item "intel"
+.PD 0
+.ie n .IP """att""" 4
+.el .IP "\f(CWatt\fR" 4
+.IX Item "att"
+.PD
+Select between intel syntax mode and \s-1AT&T\s0 syntax mode.
+.ie n .IP """amd64""" 4
+.el .IP "\f(CWamd64\fR" 4
+.IX Item "amd64"
+.PD 0
+.ie n .IP """intel64""" 4
+.el .IP "\f(CWintel64\fR" 4
+.IX Item "intel64"
+.PD
+Select between \s-1AMD64 ISA\s0 and Intel64 \s-1ISA.\s0
+.ie n .IP """intel\-mnemonic""" 4
+.el .IP "\f(CWintel\-mnemonic\fR" 4
+.IX Item "intel-mnemonic"
+.PD 0
+.ie n .IP """att\-mnemonic""" 4
+.el .IP "\f(CWatt\-mnemonic\fR" 4
+.IX Item "att-mnemonic"
+.PD
+Select between intel mnemonic mode and \s-1AT&T\s0 mnemonic mode.
+Note: \f(CW\*(C`intel\-mnemonic\*(C'\fR implies \f(CW\*(C`intel\*(C'\fR and
+\&\f(CW\*(C`att\-mnemonic\*(C'\fR implies \f(CW\*(C`att\*(C'\fR.
+.ie n .IP """addr64""" 4
+.el .IP "\f(CWaddr64\fR" 4
+.IX Item "addr64"
+.PD 0
+.ie n .IP """addr32""" 4
+.el .IP "\f(CWaddr32\fR" 4
+.IX Item "addr32"
+.ie n .IP """addr16""" 4
+.el .IP "\f(CWaddr16\fR" 4
+.IX Item "addr16"
+.ie n .IP """data32""" 4
+.el .IP "\f(CWdata32\fR" 4
+.IX Item "data32"
+.ie n .IP """data16""" 4
+.el .IP "\f(CWdata16\fR" 4
+.IX Item "data16"
+.PD
+Specify the default address size and operand size.  These four options
+will be overridden if \f(CW\*(C`x86\-64\*(C'\fR, \f(CW\*(C`i386\*(C'\fR or \f(CW\*(C`i8086\*(C'\fR
+appear later in the option string.
+.ie n .IP """suffix""" 4
+.el .IP "\f(CWsuffix\fR" 4
+.IX Item "suffix"
+When in \s-1AT&T\s0 mode, instructs the disassembler to print a mnemonic
+suffix even when the suffix could be inferred by the operands.
+.RE
+.RS 4
 .Sp
 For PowerPC, \fBbooke\fR controls the disassembly of BookE
 instructions.  \fB32\fR and \fB64\fR select PowerPC and
@@ -455,7 +530,6 @@
 names and register names in disassembled instructions.  Multiple
 selections from the following may be specified as a comma separated
 string, and invalid options are ignored:
-.RS 4
 .ie n .IP """no\-aliases""" 4
 .el .IP "\f(CWno\-aliases\fR" 4
 .IX Item "no-aliases"
@@ -474,10 +548,6 @@
 .el .IP "\f(CWxpa\fR" 4
 .IX Item "xpa"
 Disassemble the eXtended Physical Address (\s-1XPA\s0) \s-1ASE\s0 instructions.
-.ie n .IP """mxu""" 4
-.el .IP "\f(CWmxu\fR" 4
-.IX Item "mxu"
-Disassemble the \s-1MXU ASE\s0 instructions.
 .ie n .IP """gpr\-names=\f(CIABI\f(CW""" 4
 .el .IP "\f(CWgpr\-names=\f(CIABI\f(CW\fR" 4
 .IX Item "gpr-names=ABI"
@@ -548,10 +618,52 @@
 argument \fIoptions\fR is a comma separated list that depends on the
 format (the lists of options is displayed with the help).
 .Sp
-For \s-1XCOFF,\s0 the available options are: \fBheader\fR, \fBaout\fR,
-\&\fBsections\fR, \fBsyms\fR, \fBrelocs\fR, \fBlineno\fR,
-\&\fBloader\fR, \fBexcept\fR, \fBtypchk\fR, \fBtraceback\fR,
-\&\fBtoc\fR and \fBldinfo\fR.
+For \s-1XCOFF,\s0 the available options are:
+.RS 4
+.ie n .IP """header""" 4
+.el .IP "\f(CWheader\fR" 4
+.IX Item "header"
+.PD 0
+.ie n .IP """aout""" 4
+.el .IP "\f(CWaout\fR" 4
+.IX Item "aout"
+.ie n .IP """sections""" 4
+.el .IP "\f(CWsections\fR" 4
+.IX Item "sections"
+.ie n .IP """syms""" 4
+.el .IP "\f(CWsyms\fR" 4
+.IX Item "syms"
+.ie n .IP """relocs""" 4
+.el .IP "\f(CWrelocs\fR" 4
+.IX Item "relocs"
+.ie n .IP """lineno,""" 4
+.el .IP "\f(CWlineno,\fR" 4
+.IX Item "lineno,"
+.ie n .IP """loader""" 4
+.el .IP "\f(CWloader\fR" 4
+.IX Item "loader"
+.ie n .IP """except""" 4
+.el .IP "\f(CWexcept\fR" 4
+.IX Item "except"
+.ie n .IP """typchk""" 4
+.el .IP "\f(CWtypchk\fR" 4
+.IX Item "typchk"
+.ie n .IP """traceback""" 4
+.el .IP "\f(CWtraceback\fR" 4
+.IX Item "traceback"
+.ie n .IP """toc""" 4
+.el .IP "\f(CWtoc\fR" 4
+.IX Item "toc"
+.ie n .IP """ldinfo""" 4
+.el .IP "\f(CWldinfo\fR" 4
+.IX Item "ldinfo"
+.RE
+.RS 4
+.PD
+.Sp
+Not all object formats support this option.  In particular the \s-1ELF\s0
+format does not use it.
+.RE
 .IP "\fB\-r\fR" 4
 .IX Item "-r"
 .PD 0
@@ -612,8 +724,14 @@
 .IP "\fB\-W[lLiaprmfFsoRt]\fR" 4
 .IX Item "-W[lLiaprmfFsoRt]"
 .PD 0
-.IP "\fB\-\-dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames\-interp,=str,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges,=gdb_index]\fR" 4
-.IX Item "--dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges,=gdb_index]"
+.IP "\fB\-\-dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames]\fR" 4
+.IX Item "--dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames]"
+.IP "\fB\-\-dwarf[=aranges,=macro,=frames,=frames\-interp,=str,=loc]\fR" 4
+.IX Item "--dwarf[=aranges,=macro,=frames,=frames-interp,=str,=loc]"
+.IP "\fB\-\-dwarf[=Ranges,=pubtypes,=trace_info,=trace_abbrev]\fR" 4
+.IX Item "--dwarf[=Ranges,=pubtypes,=trace_info,=trace_abbrev]"
+.IP "\fB\-\-dwarf[=trace_aranges,=gdb_index]\fR" 4
+.IX Item "--dwarf[=trace_aranges,=gdb_index]"
 .PD
 Displays the contents of the debug sections in the file, if any are
 present.  If one of the optional letters or words follows the switch
@@ -853,7 +971,7 @@
 \&\fInm\fR\|(1), \fIreadelf\fR\|(1), and the Info entries for \fIbinutils\fR.
 .SH "COPYRIGHT"
 .IX Header "COPYRIGHT"
-Copyright (c) 1991\-2014 Free Software Foundation, Inc.
+Copyright (c) 1991\-2016 Free Software Foundation, Inc.
 .PP
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3
diff --git a/share/man/man1/x86_64-w64-mingw32-ranlib.1 b/share/man/man1/x86_64-w64-mingw32-ranlib.1
index 6efc8ee..4fd30ff 100644
--- a/share/man/man1/x86_64-w64-mingw32-ranlib.1
+++ b/share/man/man1/x86_64-w64-mingw32-ranlib.1
@@ -133,7 +133,7 @@
 .\" ========================================================================
 .\"
 .IX Title "RANLIB 1"
-.TH RANLIB 1 " " "binutils-2.25.51" "GNU Development Tools"
+.TH RANLIB 1 "2018-06-20" "binutils-2.27.0" "GNU Development Tools"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
@@ -217,7 +217,7 @@
 \&\fIar\fR\|(1), \fInm\fR\|(1), and the Info entries for \fIbinutils\fR.
 .SH "COPYRIGHT"
 .IX Header "COPYRIGHT"
-Copyright (c) 1991\-2014 Free Software Foundation, Inc.
+Copyright (c) 1991\-2016 Free Software Foundation, Inc.
 .PP
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3
diff --git a/share/man/man1/x86_64-w64-mingw32-readelf.1 b/share/man/man1/x86_64-w64-mingw32-readelf.1
index ba51ec9..82fa924 100644
--- a/share/man/man1/x86_64-w64-mingw32-readelf.1
+++ b/share/man/man1/x86_64-w64-mingw32-readelf.1
@@ -133,7 +133,7 @@
 .\" ========================================================================
 .\"
 .IX Title "READELF 1"
-.TH READELF 1 " " "binutils-2.25.51" "GNU Development Tools"
+.TH READELF 1 "2018-06-20" "binutils-2.27.0" "GNU Development Tools"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
@@ -161,6 +161,7 @@
         [\fB\-x\fR <number or name>|\fB\-\-hex\-dump=\fR<number or name>]
         [\fB\-p\fR <number or name>|\fB\-\-string\-dump=\fR<number or name>]
         [\fB\-R\fR <number or name>|\fB\-\-relocated\-dump=\fR<number or name>]
+        [\fB\-z\fR|\fB\-\-decompress\fR]
         [\fB\-c\fR|\fB\-\-archive\-index\fR]
         [\fB\-w[lLiaprmfFsoRt]\fR|
          \fB\-\-debug\-dump\fR[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames\-interp,=str,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges,=gdb_index]]
@@ -345,6 +346,15 @@
 Displays the contents of the indicated section as printable strings.
 A number identifies a particular section by index in the section table;
 any other string identifies all sections with that name in the object file.
+.IP "\fB\-z\fR" 4
+.IX Item "-z"
+.PD 0
+.IP "\fB\-\-decompress\fR" 4
+.IX Item "--decompress"
+.PD
+Requests that the section(s) being dumped by \fBx\fR, \fBR\fR or
+\&\fBp\fR options are decompressed before being displayed.  If the
+section(s) are not compressed then they are displayed as is.
 .IP "\fB\-c\fR" 4
 .IX Item "-c"
 .PD 0
@@ -447,7 +457,7 @@
 \&\fIobjdump\fR\|(1), and the Info entries for \fIbinutils\fR.
 .SH "COPYRIGHT"
 .IX Header "COPYRIGHT"
-Copyright (c) 1991\-2014 Free Software Foundation, Inc.
+Copyright (c) 1991\-2016 Free Software Foundation, Inc.
 .PP
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3
diff --git a/share/man/man1/x86_64-w64-mingw32-size.1 b/share/man/man1/x86_64-w64-mingw32-size.1
index 28cd061..9d489f2 100644
--- a/share/man/man1/x86_64-w64-mingw32-size.1
+++ b/share/man/man1/x86_64-w64-mingw32-size.1
@@ -133,7 +133,7 @@
 .\" ========================================================================
 .\"
 .IX Title "SIZE 1"
-.TH SIZE 1 " " "binutils-2.25.51" "GNU Development Tools"
+.TH SIZE 1 "2018-06-20" "binutils-2.27.0" "GNU Development Tools"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
@@ -265,7 +265,7 @@
 \&\fIar\fR\|(1), \fIobjdump\fR\|(1), \fIreadelf\fR\|(1), and the Info entries for \fIbinutils\fR.
 .SH "COPYRIGHT"
 .IX Header "COPYRIGHT"
-Copyright (c) 1991\-2014 Free Software Foundation, Inc.
+Copyright (c) 1991\-2016 Free Software Foundation, Inc.
 .PP
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3
diff --git a/share/man/man1/x86_64-w64-mingw32-strings.1 b/share/man/man1/x86_64-w64-mingw32-strings.1
index b187dd1..4749996 100644
--- a/share/man/man1/x86_64-w64-mingw32-strings.1
+++ b/share/man/man1/x86_64-w64-mingw32-strings.1
@@ -133,7 +133,7 @@
 .\" ========================================================================
 .\"
 .IX Title "STRINGS 1"
-.TH STRINGS 1 " " "binutils-2.25.51" "GNU Development Tools"
+.TH STRINGS 1 "2018-06-20" "binutils-2.27.0" "GNU Development Tools"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
@@ -149,6 +149,7 @@
         [\fB\-\fR] [\fB\-\-all\fR] [\fB\-\-print\-file\-name\fR]
         [\fB\-T\fR \fIbfdname\fR] [\fB\-\-target=\fR\fIbfdname\fR]
         [\fB\-w\fR] [\fB\-\-include\-all\-whitespace\fR]
+        [\fB\-s\fR] [\fB\-\-output\-separator\fR\fIsep_string\fR]
         [\fB\-\-help\fR] [\fB\-\-version\fR] \fIfile\fR...
 .SH "DESCRIPTION"
 .IX Header "DESCRIPTION"
@@ -275,6 +276,16 @@
 are displayed, but other whitespace characters, such a newlines and
 carriage returns, are not.  The \fB\-w\fR option changes this so
 that all whitespace characters are considered to be part of a string.
+.IP "\fB\-s\fR" 4
+.IX Item "-s"
+.PD 0
+.IP "\fB\-\-output\-separator\fR" 4
+.IX Item "--output-separator"
+.PD
+By default, output strings are delimited by a new-line. This option
+allows you to supply any string to be used as the output record
+separator.  Useful with \-\-include\-all\-whitespace where strings
+may contain new-lines internally.
 .IP "\fB@\fR\fIfile\fR" 4
 .IX Item "@file"
 Read command-line options from \fIfile\fR.  The options read are
@@ -294,7 +305,7 @@
 and the Info entries for \fIbinutils\fR.
 .SH "COPYRIGHT"
 .IX Header "COPYRIGHT"
-Copyright (c) 1991\-2014 Free Software Foundation, Inc.
+Copyright (c) 1991\-2016 Free Software Foundation, Inc.
 .PP
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3
diff --git a/share/man/man1/x86_64-w64-mingw32-strip.1 b/share/man/man1/x86_64-w64-mingw32-strip.1
index 2e79b1b..0b0c753 100644
--- a/share/man/man1/x86_64-w64-mingw32-strip.1
+++ b/share/man/man1/x86_64-w64-mingw32-strip.1
@@ -133,7 +133,7 @@
 .\" ========================================================================
 .\"
 .IX Title "STRIP 1"
-.TH STRIP 1 " " "binutils-2.25.51" "GNU Development Tools"
+.TH STRIP 1 "2018-06-20" "binutils-2.27.0" "GNU Development Tools"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
@@ -206,7 +206,8 @@
 .IP "\fB\-\-remove\-section=\fR\fIsectionname\fR" 4
 .IX Item "--remove-section=sectionname"
 .PD
-Remove any section named \fIsectionname\fR from the output file.  This
+Remove any section named \fIsectionname\fR from the output file, in
+addition to whatever sections would otherwise be removed.  This
 option may be given more than once.  Note that using this option
 inappropriately may make the output file unusable.  The wildcard
 character \fB*\fR may be given at the end of \fIsectionname\fR.  If
@@ -334,9 +335,16 @@
 which would otherwise get stripped.
 .IP "\fB\-\-only\-keep\-debug\fR" 4
 .IX Item "--only-keep-debug"
-Strip a file, removing contents of any sections that would not be
+Strip a file, emptying the contents of any sections that would not be
 stripped by \fB\-\-strip\-debug\fR and leaving the debugging sections
-intact.  In \s-1ELF\s0 files, this preserves all note sections in the output.
+intact.  In \s-1ELF\s0 files, this preserves all the note sections in the
+output as well.
+.Sp
+Note \- the section headers of the stripped sections are preserved,
+including their sizes, but the contents of the section are discarded.
+The section headers are preserved so that other tools can match up the
+debuginfo file with the real executable, even if that executable has
+been relocated to a different address space.
 .Sp
 The intention is that this option will be used in conjunction with
 \&\fB\-\-add\-gnu\-debuglink\fR to create a two part executable.  One a
@@ -426,7 +434,7 @@
 the Info entries for \fIbinutils\fR.
 .SH "COPYRIGHT"
 .IX Header "COPYRIGHT"
-Copyright (c) 1991\-2014 Free Software Foundation, Inc.
+Copyright (c) 1991\-2016 Free Software Foundation, Inc.
 .PP
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3
diff --git a/share/man/man1/x86_64-w64-mingw32-windmc.1 b/share/man/man1/x86_64-w64-mingw32-windmc.1
index a0be0da..9e87144 100644
--- a/share/man/man1/x86_64-w64-mingw32-windmc.1
+++ b/share/man/man1/x86_64-w64-mingw32-windmc.1
@@ -133,7 +133,7 @@
 .\" ========================================================================
 .\"
 .IX Title "WINDMC 1"
-.TH WINDMC 1 " " "binutils-2.25.51" "GNU Development Tools"
+.TH WINDMC 1 "2018-06-20" "binutils-2.27.0" "GNU Development Tools"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
@@ -350,7 +350,7 @@
 the Info entries for \fIbinutils\fR.
 .SH "COPYRIGHT"
 .IX Header "COPYRIGHT"
-Copyright (c) 1991\-2014 Free Software Foundation, Inc.
+Copyright (c) 1991\-2016 Free Software Foundation, Inc.
 .PP
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3
diff --git a/share/man/man1/x86_64-w64-mingw32-windres.1 b/share/man/man1/x86_64-w64-mingw32-windres.1
index c1cc540..2a82274 100644
--- a/share/man/man1/x86_64-w64-mingw32-windres.1
+++ b/share/man/man1/x86_64-w64-mingw32-windres.1
@@ -133,7 +133,7 @@
 .\" ========================================================================
 .\"
 .IX Title "WINDRES 1"
-.TH WINDRES 1 " " "binutils-2.25.51" "GNU Development Tools"
+.TH WINDRES 1 "2018-06-20" "binutils-2.27.0" "GNU Development Tools"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
@@ -358,7 +358,7 @@
 the Info entries for \fIbinutils\fR.
 .SH "COPYRIGHT"
 .IX Header "COPYRIGHT"
-Copyright (c) 1991\-2014 Free Software Foundation, Inc.
+Copyright (c) 1991\-2016 Free Software Foundation, Inc.
 .PP
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3
diff --git a/x86_64-w64-mingw32/bin/ar b/x86_64-w64-mingw32/bin/ar
index 44b299c..7997747 100755
--- a/x86_64-w64-mingw32/bin/ar
+++ b/x86_64-w64-mingw32/bin/ar
Binary files differ
diff --git a/x86_64-w64-mingw32/bin/as b/x86_64-w64-mingw32/bin/as
index e05e3d4..6600e17 100755
--- a/x86_64-w64-mingw32/bin/as
+++ b/x86_64-w64-mingw32/bin/as
Binary files differ
diff --git a/x86_64-w64-mingw32/bin/c++ b/x86_64-w64-mingw32/bin/c++
index 7d17e5a..82e0e21 100755
--- a/x86_64-w64-mingw32/bin/c++
+++ b/x86_64-w64-mingw32/bin/c++
Binary files differ
diff --git a/x86_64-w64-mingw32/bin/dlltool b/x86_64-w64-mingw32/bin/dlltool
index 346979d..3a727ca 100755
--- a/x86_64-w64-mingw32/bin/dlltool
+++ b/x86_64-w64-mingw32/bin/dlltool
Binary files differ
diff --git a/x86_64-w64-mingw32/bin/g++ b/x86_64-w64-mingw32/bin/g++
index 7d17e5a..82e0e21 100755
--- a/x86_64-w64-mingw32/bin/g++
+++ b/x86_64-w64-mingw32/bin/g++
Binary files differ
diff --git a/x86_64-w64-mingw32/bin/gcc b/x86_64-w64-mingw32/bin/gcc
index 9f07546..9ec5fdd 100755
--- a/x86_64-w64-mingw32/bin/gcc
+++ b/x86_64-w64-mingw32/bin/gcc
Binary files differ
diff --git a/x86_64-w64-mingw32/bin/ld b/x86_64-w64-mingw32/bin/ld
index de6bc0b..fc559e8 100755
--- a/x86_64-w64-mingw32/bin/ld
+++ b/x86_64-w64-mingw32/bin/ld
Binary files differ
diff --git a/x86_64-w64-mingw32/bin/ld.bfd b/x86_64-w64-mingw32/bin/ld.bfd
index de6bc0b..fc559e8 100755
--- a/x86_64-w64-mingw32/bin/ld.bfd
+++ b/x86_64-w64-mingw32/bin/ld.bfd
Binary files differ
diff --git a/x86_64-w64-mingw32/bin/libwinpthread-1.dll b/x86_64-w64-mingw32/bin/libwinpthread-1.dll
index b2fd346..755f7a8 100755
--- a/x86_64-w64-mingw32/bin/libwinpthread-1.dll
+++ b/x86_64-w64-mingw32/bin/libwinpthread-1.dll
Binary files differ
diff --git a/x86_64-w64-mingw32/bin/nm b/x86_64-w64-mingw32/bin/nm
index 596472b..a9dabc1 100755
--- a/x86_64-w64-mingw32/bin/nm
+++ b/x86_64-w64-mingw32/bin/nm
Binary files differ
diff --git a/x86_64-w64-mingw32/bin/objcopy b/x86_64-w64-mingw32/bin/objcopy
index 66218f9..1f0e4c5 100755
--- a/x86_64-w64-mingw32/bin/objcopy
+++ b/x86_64-w64-mingw32/bin/objcopy
Binary files differ
diff --git a/x86_64-w64-mingw32/bin/objdump b/x86_64-w64-mingw32/bin/objdump
index 1648cac..6340cda 100755
--- a/x86_64-w64-mingw32/bin/objdump
+++ b/x86_64-w64-mingw32/bin/objdump
Binary files differ
diff --git a/x86_64-w64-mingw32/bin/ranlib b/x86_64-w64-mingw32/bin/ranlib
index 620d213..2a9dcee 100755
--- a/x86_64-w64-mingw32/bin/ranlib
+++ b/x86_64-w64-mingw32/bin/ranlib
Binary files differ
diff --git a/x86_64-w64-mingw32/bin/readelf b/x86_64-w64-mingw32/bin/readelf
new file mode 100755
index 0000000..502a1bf
--- /dev/null
+++ b/x86_64-w64-mingw32/bin/readelf
Binary files differ
diff --git a/x86_64-w64-mingw32/bin/strip b/x86_64-w64-mingw32/bin/strip
index 5edbc2b..3391b27 100755
--- a/x86_64-w64-mingw32/bin/strip
+++ b/x86_64-w64-mingw32/bin/strip
Binary files differ
diff --git a/x86_64-w64-mingw32/include/stdio.h b/x86_64-w64-mingw32/include/stdio.h
index 9f1cfff..300e9a8 100644
--- a/x86_64-w64-mingw32/include/stdio.h
+++ b/x86_64-w64-mingw32/include/stdio.h
@@ -187,14 +187,24 @@
   __attribute__((__format__ (gnu_printf, 2, 0))) __attribute__((nonnull (1,2)))
   int __cdecl __mingw_vasprintf(char ** __restrict__ , const char * __restrict__ , va_list) __MINGW_NOTHROW;
 
+#undef __MINGW_PRINTF_FORMAT
+#undef __MINGW_SCANF_FORMAT
+
+#if defined(__clang__)
+#define __MINGW_PRINTF_FORMAT printf
+#define __MINGW_SCANF_FORMAT  scanf
+#elif defined(__USE_MINGW_ANSI_STDIO)
+#define __MINGW_PRINTF_FORMAT gnu_printf
+#define __MINGW_SCANF_FORMAT  gnu_scanf
+#else
+#define __MINGW_PRINTF_FORMAT ms_printf
+#define __MINGW_SCANF_FORMAT  ms_scanf
+#endif
+
 #if __USE_MINGW_ANSI_STDIO
 /*
  * User has expressed a preference for C99 conformance...
  */
-#undef __MINGW_PRINTF_FORMAT
-#undef __MINGW_SCANF_FORMAT
-#define __MINGW_PRINTF_FORMAT gnu_printf
-#define __MINGW_SCANF_FORMAT  gnu_scanf
 
 #ifdef _GNU_SOURCE
 __mingw_ovr
@@ -364,10 +374,6 @@
 
 #else /* !__USE_MINGW_ANSI_STDIO */
 
-#undef __MINGW_PRINTF_FORMAT
-#undef __MINGW_SCANF_FORMAT
-#define __MINGW_PRINTF_FORMAT ms_printf
-#define __MINGW_SCANF_FORMAT  ms_scanf
 #undef __builtin_vsnprintf
 #undef __builtin_vsprintf
 
diff --git a/x86_64-w64-mingw32/lib/CRT_fp10.o b/x86_64-w64-mingw32/lib/CRT_fp10.o
index b37e5d4..3703e24 100644
--- a/x86_64-w64-mingw32/lib/CRT_fp10.o
+++ b/x86_64-w64-mingw32/lib/CRT_fp10.o
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/CRT_fp8.o b/x86_64-w64-mingw32/lib/CRT_fp8.o
index 06b381b..1a59a22 100644
--- a/x86_64-w64-mingw32/lib/CRT_fp8.o
+++ b/x86_64-w64-mingw32/lib/CRT_fp8.o
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/CRT_glob.o b/x86_64-w64-mingw32/lib/CRT_glob.o
index 2203529..e43338a 100644
--- a/x86_64-w64-mingw32/lib/CRT_glob.o
+++ b/x86_64-w64-mingw32/lib/CRT_glob.o
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/CRT_noglob.o b/x86_64-w64-mingw32/lib/CRT_noglob.o
index a3283d7..240d8eb 100644
--- a/x86_64-w64-mingw32/lib/CRT_noglob.o
+++ b/x86_64-w64-mingw32/lib/CRT_noglob.o
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/binmode.o b/x86_64-w64-mingw32/lib/binmode.o
index 1d92e89..8dc3c31 100644
--- a/x86_64-w64-mingw32/lib/binmode.o
+++ b/x86_64-w64-mingw32/lib/binmode.o
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/crt1.o b/x86_64-w64-mingw32/lib/crt1.o
index e369d64..5466f48 100644
--- a/x86_64-w64-mingw32/lib/crt1.o
+++ b/x86_64-w64-mingw32/lib/crt1.o
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/crt1u.o b/x86_64-w64-mingw32/lib/crt1u.o
index 00c6d8f..07ad001 100644
--- a/x86_64-w64-mingw32/lib/crt1u.o
+++ b/x86_64-w64-mingw32/lib/crt1u.o
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/crt2.o b/x86_64-w64-mingw32/lib/crt2.o
index e369d64..5466f48 100644
--- a/x86_64-w64-mingw32/lib/crt2.o
+++ b/x86_64-w64-mingw32/lib/crt2.o
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/crt2u.o b/x86_64-w64-mingw32/lib/crt2u.o
index 00c6d8f..07ad001 100644
--- a/x86_64-w64-mingw32/lib/crt2u.o
+++ b/x86_64-w64-mingw32/lib/crt2u.o
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/dllcrt1.o b/x86_64-w64-mingw32/lib/dllcrt1.o
index 97415e8..897e6f8 100644
--- a/x86_64-w64-mingw32/lib/dllcrt1.o
+++ b/x86_64-w64-mingw32/lib/dllcrt1.o
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/dllcrt2.o b/x86_64-w64-mingw32/lib/dllcrt2.o
index 97415e8..897e6f8 100644
--- a/x86_64-w64-mingw32/lib/dllcrt2.o
+++ b/x86_64-w64-mingw32/lib/dllcrt2.o
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/gcrt0.o b/x86_64-w64-mingw32/lib/gcrt0.o
index b76428f..0f975f2 100644
--- a/x86_64-w64-mingw32/lib/gcrt0.o
+++ b/x86_64-w64-mingw32/lib/gcrt0.o
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/gcrt1.o b/x86_64-w64-mingw32/lib/gcrt1.o
index b76428f..0f975f2 100644
--- a/x86_64-w64-mingw32/lib/gcrt1.o
+++ b/x86_64-w64-mingw32/lib/gcrt1.o
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/gcrt2.o b/x86_64-w64-mingw32/lib/gcrt2.o
index b76428f..0f975f2 100644
--- a/x86_64-w64-mingw32/lib/gcrt2.o
+++ b/x86_64-w64-mingw32/lib/gcrt2.o
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/ldscripts/i386pe.x b/x86_64-w64-mingw32/lib/ldscripts/i386pe.x
index 4f3cae8..e95704a 100644
--- a/x86_64-w64-mingw32/lib/ldscripts/i386pe.x
+++ b/x86_64-w64-mingw32/lib/ldscripts/i386pe.x
@@ -1,10 +1,10 @@
 /* Default linker script, for normal executables */
-/* Modified for Android.  */
-/* Copyright (C) 2014 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2016 Free Software Foundation, Inc.
    Copying and distribution of this script, with or without modification,
    are permitted in any medium without royalty provided the copyright
    notice and this notice are preserved.  */
 OUTPUT_FORMAT(pei-i386)
+SEARCH_DIR("=/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib");
 SECTIONS
 {
   /* Make the virtual address and file offset synced if the alignment is
@@ -13,7 +13,7 @@
   . = ALIGN(__section_alignment__);
   .text  __image_base__ + ( __section_alignment__ < 0x1000 ? . : __section_alignment__ ) :
   {
-     *(.init)
+     KEEP(*(.init))
     *(.text)
     *(SORT(.text$*))
      *(.text.*)
@@ -42,7 +42,7 @@
     *(.data)
     *(.data2)
     *(SORT(.data$*))
-    *(.jcr)
+    KEEP(*(.jcr))
     __data_end__ = . ;
     *(.data_cygwin_nocopy)
   }
@@ -51,7 +51,7 @@
     *(.rdata)
              *(SORT(.rdata$*))
     __rt_psrelocs_start = .;
-    *(.rdata_runtime_pseudo_reloc)
+    KEEP(*(.rdata_runtime_pseudo_reloc))
     __rt_psrelocs_end = .;
   }
   __rt_psrelocs_size = __rt_psrelocs_end - __rt_psrelocs_start;
@@ -61,11 +61,11 @@
   __RUNTIME_PSEUDO_RELOC_LIST__ = . - __rt_psrelocs_size;
   .eh_frame BLOCK(__section_alignment__) :
   {
-    *(.eh_frame*)
+    KEEP(*(.eh_frame*))
   }
   .pdata BLOCK(__section_alignment__) :
   {
-    *(.pdata)
+    KEEP(*(.pdata))
   }
   .bss BLOCK(__section_alignment__) :
   {
@@ -91,33 +91,33 @@
   {
     /* This cannot currently be handled with grouped sections.
 	See pe.em:sort_sections.  */
-    SORT(*)(.idata$2)
-    SORT(*)(.idata$3)
+    KEEP (SORT(*)(.idata$2))
+    KEEP (SORT(*)(.idata$3))
     /* These zeroes mark the end of the import list.  */
     LONG (0); LONG (0); LONG (0); LONG (0); LONG (0);
-    SORT(*)(.idata$4)
+    KEEP (SORT(*)(.idata$4))
     __IAT_start__ = .;
-    SORT(*)(.idata$5)
+    KEEP (SORT(*)(.idata$5))
     __IAT_end__ = .;
-    SORT(*)(.idata$6)
-    SORT(*)(.idata$7)
+    KEEP (SORT(*)(.idata$6))
+    KEEP (SORT(*)(.idata$7))
   }
   .CRT BLOCK(__section_alignment__) :
   {
     ___crt_xc_start__ = . ;
-    *(SORT(.CRT$XC*))  /* C initialization */
+    KEEP (*(SORT(.CRT$XC*)))  /* C initialization */
     ___crt_xc_end__ = . ;
     ___crt_xi_start__ = . ;
-    *(SORT(.CRT$XI*))  /* C++ initialization */
+    KEEP (*(SORT(.CRT$XI*)))  /* C++ initialization */
     ___crt_xi_end__ = . ;
     ___crt_xl_start__ = . ;
-    *(SORT(.CRT$XL*))  /* TLS callbacks */
+    KEEP (*(SORT(.CRT$XL*)))  /* TLS callbacks */
     /* ___crt_xl_end__ is defined in the TLS Directory support code */
     ___crt_xp_start__ = . ;
-    *(SORT(.CRT$XP*))  /* Pre-termination */
+    KEEP (*(SORT(.CRT$XP*)))  /* Pre-termination */
     ___crt_xp_end__ = . ;
     ___crt_xt_start__ = . ;
-    *(SORT(.CRT$XT*))  /* Termination */
+    KEEP (*(SORT(.CRT$XT*)))  /* Termination */
     ___crt_xt_end__ = . ;
   }
   /* Windows TLS expects .tls$AAA to be at the start and .tls$ZZZ to be
@@ -127,11 +127,11 @@
   .tls BLOCK(__section_alignment__) :
   {
     ___tls_start__ = . ;
-    *(.tls$AAA)
-    *(.tls)
-    *(.tls$)
-    *(SORT(.tls$*))
-    *(.tls$ZZZ)
+    KEEP (*(.tls$AAA))
+    KEEP (*(.tls))
+    KEEP (*(.tls$))
+    KEEP (*(SORT(.tls$*)))
+    KEEP (*(.tls$ZZZ))
     ___tls_end__ = . ;
   }
   .endjunk BLOCK(__section_alignment__) :
@@ -143,8 +143,8 @@
   }
   .rsrc BLOCK(__section_alignment__) : SUBALIGN(4)
   {
-    *(.rsrc)
-    *(.rsrc$*)
+    KEEP (*(.rsrc))
+    KEEP (*(.rsrc$*))
   }
   .reloc BLOCK(__section_alignment__) :
   {
diff --git a/x86_64-w64-mingw32/lib/ldscripts/i386pe.xa b/x86_64-w64-mingw32/lib/ldscripts/i386pe.xa
index 3633916..d4906a0 100644
--- a/x86_64-w64-mingw32/lib/ldscripts/i386pe.xa
+++ b/x86_64-w64-mingw32/lib/ldscripts/i386pe.xa
@@ -1,9 +1,10 @@
 /* Script for ld --enable-auto-import: Like the default script except read only data is placed into .data  */
-/* Copyright (C) 2014 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2016 Free Software Foundation, Inc.
    Copying and distribution of this script, with or without modification,
    are permitted in any medium without royalty provided the copyright
    notice and this notice are preserved.  */
 OUTPUT_FORMAT(pei-i386)
+SEARCH_DIR("=/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib");
 SECTIONS
 {
   /* Make the virtual address and file offset synced if the alignment is
@@ -12,7 +13,7 @@
   . = ALIGN(__section_alignment__);
   .text  __image_base__ + ( __section_alignment__ < 0x1000 ? . : __section_alignment__ ) :
   {
-     *(.init)
+     KEEP(*(.init))
     *(.text)
     *(SORT(.text$*))
      *(.text.*)
@@ -43,14 +44,14 @@
     *(SORT(.data$*))
             *(.rdata)
 	    *(SORT(.rdata$*))
-    *(.jcr)
+    KEEP(*(.jcr))
     __data_end__ = . ;
     *(.data_cygwin_nocopy)
   }
   .rdata BLOCK(__section_alignment__) :
   {
     __rt_psrelocs_start = .;
-    *(.rdata_runtime_pseudo_reloc)
+    KEEP(*(.rdata_runtime_pseudo_reloc))
     __rt_psrelocs_end = .;
   }
   __rt_psrelocs_size = __rt_psrelocs_end - __rt_psrelocs_start;
@@ -60,11 +61,11 @@
   __RUNTIME_PSEUDO_RELOC_LIST__ = . - __rt_psrelocs_size;
   .eh_frame BLOCK(__section_alignment__) :
   {
-    *(.eh_frame*)
+    KEEP(*(.eh_frame*))
   }
   .pdata BLOCK(__section_alignment__) :
   {
-    *(.pdata)
+    KEEP(*(.pdata))
   }
   .bss BLOCK(__section_alignment__) :
   {
@@ -90,33 +91,33 @@
   {
     /* This cannot currently be handled with grouped sections.
 	See pe.em:sort_sections.  */
-    SORT(*)(.idata$2)
-    SORT(*)(.idata$3)
+    KEEP (SORT(*)(.idata$2))
+    KEEP (SORT(*)(.idata$3))
     /* These zeroes mark the end of the import list.  */
     LONG (0); LONG (0); LONG (0); LONG (0); LONG (0);
-    SORT(*)(.idata$4)
+    KEEP (SORT(*)(.idata$4))
     __IAT_start__ = .;
-    SORT(*)(.idata$5)
+    KEEP (SORT(*)(.idata$5))
     __IAT_end__ = .;
-    SORT(*)(.idata$6)
-    SORT(*)(.idata$7)
+    KEEP (SORT(*)(.idata$6))
+    KEEP (SORT(*)(.idata$7))
   }
   .CRT BLOCK(__section_alignment__) :
   {
     ___crt_xc_start__ = . ;
-    *(SORT(.CRT$XC*))  /* C initialization */
+    KEEP (*(SORT(.CRT$XC*)))  /* C initialization */
     ___crt_xc_end__ = . ;
     ___crt_xi_start__ = . ;
-    *(SORT(.CRT$XI*))  /* C++ initialization */
+    KEEP (*(SORT(.CRT$XI*)))  /* C++ initialization */
     ___crt_xi_end__ = . ;
     ___crt_xl_start__ = . ;
-    *(SORT(.CRT$XL*))  /* TLS callbacks */
+    KEEP (*(SORT(.CRT$XL*)))  /* TLS callbacks */
     /* ___crt_xl_end__ is defined in the TLS Directory support code */
     ___crt_xp_start__ = . ;
-    *(SORT(.CRT$XP*))  /* Pre-termination */
+    KEEP (*(SORT(.CRT$XP*)))  /* Pre-termination */
     ___crt_xp_end__ = . ;
     ___crt_xt_start__ = . ;
-    *(SORT(.CRT$XT*))  /* Termination */
+    KEEP (*(SORT(.CRT$XT*)))  /* Termination */
     ___crt_xt_end__ = . ;
   }
   /* Windows TLS expects .tls$AAA to be at the start and .tls$ZZZ to be
@@ -126,11 +127,11 @@
   .tls BLOCK(__section_alignment__) :
   {
     ___tls_start__ = . ;
-    *(.tls$AAA)
-    *(.tls)
-    *(.tls$)
-    *(SORT(.tls$*))
-    *(.tls$ZZZ)
+    KEEP (*(.tls$AAA))
+    KEEP (*(.tls))
+    KEEP (*(.tls$))
+    KEEP (*(SORT(.tls$*)))
+    KEEP (*(.tls$ZZZ))
     ___tls_end__ = . ;
   }
   .endjunk BLOCK(__section_alignment__) :
@@ -142,8 +143,8 @@
   }
   .rsrc BLOCK(__section_alignment__) : SUBALIGN(4)
   {
-    *(.rsrc)
-    *(.rsrc$*)
+    KEEP (*(.rsrc))
+    KEEP (*(.rsrc$*))
   }
   .reloc BLOCK(__section_alignment__) :
   {
diff --git a/x86_64-w64-mingw32/lib/ldscripts/i386pe.xbn b/x86_64-w64-mingw32/lib/ldscripts/i386pe.xbn
index 511ec9c..cf4d34d 100644
--- a/x86_64-w64-mingw32/lib/ldscripts/i386pe.xbn
+++ b/x86_64-w64-mingw32/lib/ldscripts/i386pe.xbn
@@ -1,9 +1,10 @@
 /* Script for -N: mix text and data on same page; don't align data */
-/* Copyright (C) 2014 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2016 Free Software Foundation, Inc.
    Copying and distribution of this script, with or without modification,
    are permitted in any medium without royalty provided the copyright
    notice and this notice are preserved.  */
 OUTPUT_FORMAT(pei-i386)
+SEARCH_DIR("=/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib");
 SECTIONS
 {
   /* Make the virtual address and file offset synced if the alignment is
@@ -12,7 +13,7 @@
   . = ALIGN(__section_alignment__);
   .text  __image_base__ + ( __section_alignment__ < 0x1000 ? . : __section_alignment__ ) :
   {
-     *(.init)
+     KEEP(*(.init))
     *(.text)
     *(SORT(.text$*))
      *(.text.*)
@@ -41,7 +42,7 @@
     *(.data)
     *(.data2)
     *(SORT(.data$*))
-    *(.jcr)
+    KEEP(*(.jcr))
     __data_end__ = . ;
     *(.data_cygwin_nocopy)
   }
@@ -50,7 +51,7 @@
     *(.rdata)
              *(SORT(.rdata$*))
     __rt_psrelocs_start = .;
-    *(.rdata_runtime_pseudo_reloc)
+    KEEP(*(.rdata_runtime_pseudo_reloc))
     __rt_psrelocs_end = .;
   }
   __rt_psrelocs_size = __rt_psrelocs_end - __rt_psrelocs_start;
@@ -60,11 +61,11 @@
   __RUNTIME_PSEUDO_RELOC_LIST__ = . - __rt_psrelocs_size;
   .eh_frame BLOCK(__section_alignment__) :
   {
-    *(.eh_frame*)
+    KEEP(*(.eh_frame*))
   }
   .pdata BLOCK(__section_alignment__) :
   {
-    *(.pdata)
+    KEEP(*(.pdata))
   }
   .bss BLOCK(__section_alignment__) :
   {
@@ -90,33 +91,33 @@
   {
     /* This cannot currently be handled with grouped sections.
 	See pe.em:sort_sections.  */
-    SORT(*)(.idata$2)
-    SORT(*)(.idata$3)
+    KEEP (SORT(*)(.idata$2))
+    KEEP (SORT(*)(.idata$3))
     /* These zeroes mark the end of the import list.  */
     LONG (0); LONG (0); LONG (0); LONG (0); LONG (0);
-    SORT(*)(.idata$4)
+    KEEP (SORT(*)(.idata$4))
     __IAT_start__ = .;
-    SORT(*)(.idata$5)
+    KEEP (SORT(*)(.idata$5))
     __IAT_end__ = .;
-    SORT(*)(.idata$6)
-    SORT(*)(.idata$7)
+    KEEP (SORT(*)(.idata$6))
+    KEEP (SORT(*)(.idata$7))
   }
   .CRT BLOCK(__section_alignment__) :
   {
     ___crt_xc_start__ = . ;
-    *(SORT(.CRT$XC*))  /* C initialization */
+    KEEP (*(SORT(.CRT$XC*)))  /* C initialization */
     ___crt_xc_end__ = . ;
     ___crt_xi_start__ = . ;
-    *(SORT(.CRT$XI*))  /* C++ initialization */
+    KEEP (*(SORT(.CRT$XI*)))  /* C++ initialization */
     ___crt_xi_end__ = . ;
     ___crt_xl_start__ = . ;
-    *(SORT(.CRT$XL*))  /* TLS callbacks */
+    KEEP (*(SORT(.CRT$XL*)))  /* TLS callbacks */
     /* ___crt_xl_end__ is defined in the TLS Directory support code */
     ___crt_xp_start__ = . ;
-    *(SORT(.CRT$XP*))  /* Pre-termination */
+    KEEP (*(SORT(.CRT$XP*)))  /* Pre-termination */
     ___crt_xp_end__ = . ;
     ___crt_xt_start__ = . ;
-    *(SORT(.CRT$XT*))  /* Termination */
+    KEEP (*(SORT(.CRT$XT*)))  /* Termination */
     ___crt_xt_end__ = . ;
   }
   /* Windows TLS expects .tls$AAA to be at the start and .tls$ZZZ to be
@@ -126,11 +127,11 @@
   .tls BLOCK(__section_alignment__) :
   {
     ___tls_start__ = . ;
-    *(.tls$AAA)
-    *(.tls)
-    *(.tls$)
-    *(SORT(.tls$*))
-    *(.tls$ZZZ)
+    KEEP (*(.tls$AAA))
+    KEEP (*(.tls))
+    KEEP (*(.tls$))
+    KEEP (*(SORT(.tls$*)))
+    KEEP (*(.tls$ZZZ))
     ___tls_end__ = . ;
   }
   .endjunk BLOCK(__section_alignment__) :
@@ -142,8 +143,8 @@
   }
   .rsrc BLOCK(__section_alignment__) : SUBALIGN(4)
   {
-    *(.rsrc)
-    *(.rsrc$*)
+    KEEP (*(.rsrc))
+    KEEP (*(.rsrc$*))
   }
   .reloc BLOCK(__section_alignment__) :
   {
diff --git a/x86_64-w64-mingw32/lib/ldscripts/i386pe.xn b/x86_64-w64-mingw32/lib/ldscripts/i386pe.xn
index 6079cf0..07650fe 100644
--- a/x86_64-w64-mingw32/lib/ldscripts/i386pe.xn
+++ b/x86_64-w64-mingw32/lib/ldscripts/i386pe.xn
@@ -1,9 +1,10 @@
 /* Script for -n: mix text and data on same page */
-/* Copyright (C) 2014 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2016 Free Software Foundation, Inc.
    Copying and distribution of this script, with or without modification,
    are permitted in any medium without royalty provided the copyright
    notice and this notice are preserved.  */
 OUTPUT_FORMAT(pei-i386)
+SEARCH_DIR("=/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib");
 SECTIONS
 {
   /* Make the virtual address and file offset synced if the alignment is
@@ -12,7 +13,7 @@
   . = ALIGN(__section_alignment__);
   .text  __image_base__ + ( __section_alignment__ < 0x1000 ? . : __section_alignment__ ) :
   {
-     *(.init)
+     KEEP(*(.init))
     *(.text)
     *(SORT(.text$*))
      *(.text.*)
@@ -41,7 +42,7 @@
     *(.data)
     *(.data2)
     *(SORT(.data$*))
-    *(.jcr)
+    KEEP(*(.jcr))
     __data_end__ = . ;
     *(.data_cygwin_nocopy)
   }
@@ -50,7 +51,7 @@
     *(.rdata)
              *(SORT(.rdata$*))
     __rt_psrelocs_start = .;
-    *(.rdata_runtime_pseudo_reloc)
+    KEEP(*(.rdata_runtime_pseudo_reloc))
     __rt_psrelocs_end = .;
   }
   __rt_psrelocs_size = __rt_psrelocs_end - __rt_psrelocs_start;
@@ -60,11 +61,11 @@
   __RUNTIME_PSEUDO_RELOC_LIST__ = . - __rt_psrelocs_size;
   .eh_frame BLOCK(__section_alignment__) :
   {
-    *(.eh_frame*)
+    KEEP(*(.eh_frame*))
   }
   .pdata BLOCK(__section_alignment__) :
   {
-    *(.pdata)
+    KEEP(*(.pdata))
   }
   .bss BLOCK(__section_alignment__) :
   {
@@ -90,33 +91,33 @@
   {
     /* This cannot currently be handled with grouped sections.
 	See pe.em:sort_sections.  */
-    SORT(*)(.idata$2)
-    SORT(*)(.idata$3)
+    KEEP (SORT(*)(.idata$2))
+    KEEP (SORT(*)(.idata$3))
     /* These zeroes mark the end of the import list.  */
     LONG (0); LONG (0); LONG (0); LONG (0); LONG (0);
-    SORT(*)(.idata$4)
+    KEEP (SORT(*)(.idata$4))
     __IAT_start__ = .;
-    SORT(*)(.idata$5)
+    KEEP (SORT(*)(.idata$5))
     __IAT_end__ = .;
-    SORT(*)(.idata$6)
-    SORT(*)(.idata$7)
+    KEEP (SORT(*)(.idata$6))
+    KEEP (SORT(*)(.idata$7))
   }
   .CRT BLOCK(__section_alignment__) :
   {
     ___crt_xc_start__ = . ;
-    *(SORT(.CRT$XC*))  /* C initialization */
+    KEEP (*(SORT(.CRT$XC*)))  /* C initialization */
     ___crt_xc_end__ = . ;
     ___crt_xi_start__ = . ;
-    *(SORT(.CRT$XI*))  /* C++ initialization */
+    KEEP (*(SORT(.CRT$XI*)))  /* C++ initialization */
     ___crt_xi_end__ = . ;
     ___crt_xl_start__ = . ;
-    *(SORT(.CRT$XL*))  /* TLS callbacks */
+    KEEP (*(SORT(.CRT$XL*)))  /* TLS callbacks */
     /* ___crt_xl_end__ is defined in the TLS Directory support code */
     ___crt_xp_start__ = . ;
-    *(SORT(.CRT$XP*))  /* Pre-termination */
+    KEEP (*(SORT(.CRT$XP*)))  /* Pre-termination */
     ___crt_xp_end__ = . ;
     ___crt_xt_start__ = . ;
-    *(SORT(.CRT$XT*))  /* Termination */
+    KEEP (*(SORT(.CRT$XT*)))  /* Termination */
     ___crt_xt_end__ = . ;
   }
   /* Windows TLS expects .tls$AAA to be at the start and .tls$ZZZ to be
@@ -126,11 +127,11 @@
   .tls BLOCK(__section_alignment__) :
   {
     ___tls_start__ = . ;
-    *(.tls$AAA)
-    *(.tls)
-    *(.tls$)
-    *(SORT(.tls$*))
-    *(.tls$ZZZ)
+    KEEP (*(.tls$AAA))
+    KEEP (*(.tls))
+    KEEP (*(.tls$))
+    KEEP (*(SORT(.tls$*)))
+    KEEP (*(.tls$ZZZ))
     ___tls_end__ = . ;
   }
   .endjunk BLOCK(__section_alignment__) :
@@ -142,8 +143,8 @@
   }
   .rsrc BLOCK(__section_alignment__) : SUBALIGN(4)
   {
-    *(.rsrc)
-    *(.rsrc$*)
+    KEEP (*(.rsrc))
+    KEEP (*(.rsrc$*))
   }
   .reloc BLOCK(__section_alignment__) :
   {
diff --git a/x86_64-w64-mingw32/lib/ldscripts/i386pe.xr b/x86_64-w64-mingw32/lib/ldscripts/i386pe.xr
index 3b0b178..9063070 100644
--- a/x86_64-w64-mingw32/lib/ldscripts/i386pe.xr
+++ b/x86_64-w64-mingw32/lib/ldscripts/i386pe.xr
@@ -1,9 +1,10 @@
 /* Script for ld -r: link without relocation */
-/* Copyright (C) 2014 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2016 Free Software Foundation, Inc.
    Copying and distribution of this script, with or without modification,
    are permitted in any medium without royalty provided the copyright
    notice and this notice are preserved.  */
 OUTPUT_FORMAT(pe-i386)
+SEARCH_DIR("=/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib");
 SECTIONS
 {
   .text  :
@@ -22,20 +23,20 @@
   {
     *(.data)
     *(.data2)
-    *(.jcr)
+    KEEP(*(.jcr))
   }
   .rdata  :
   {
     *(.rdata)
-    *(.rdata_runtime_pseudo_reloc)
+    KEEP(*(.rdata_runtime_pseudo_reloc))
   }
   .eh_frame  :
   {
-    *(.eh_frame*)
+    KEEP(*(.eh_frame*))
   }
   .pdata  :
   {
-    *(.pdata)
+    KEEP(*(.pdata))
   }
   .bss  :
   {
diff --git a/x86_64-w64-mingw32/lib/ldscripts/i386pe.xu b/x86_64-w64-mingw32/lib/ldscripts/i386pe.xu
index 7ff4af9..b6d3d18 100644
--- a/x86_64-w64-mingw32/lib/ldscripts/i386pe.xu
+++ b/x86_64-w64-mingw32/lib/ldscripts/i386pe.xu
@@ -1,9 +1,10 @@
 /* Script for ld -Ur: link w/out relocation, do create constructors */
-/* Copyright (C) 2014 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2016 Free Software Foundation, Inc.
    Copying and distribution of this script, with or without modification,
    are permitted in any medium without royalty provided the copyright
    notice and this notice are preserved.  */
 OUTPUT_FORMAT(pe-i386)
+SEARCH_DIR("=/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib");
 SECTIONS
 {
   .text  :
@@ -26,20 +27,20 @@
   {
     *(.data)
     *(.data2)
-    *(.jcr)
+    KEEP(*(.jcr))
   }
   .rdata  :
   {
     *(.rdata)
-    *(.rdata_runtime_pseudo_reloc)
+    KEEP(*(.rdata_runtime_pseudo_reloc))
   }
   .eh_frame  :
   {
-    *(.eh_frame*)
+    KEEP(*(.eh_frame*))
   }
   .pdata  :
   {
-    *(.pdata)
+    KEEP(*(.pdata))
   }
   .bss  :
   {
diff --git a/x86_64-w64-mingw32/lib/ldscripts/i386pep.x b/x86_64-w64-mingw32/lib/ldscripts/i386pep.x
index ebc2d6b..f8f3b1c 100644
--- a/x86_64-w64-mingw32/lib/ldscripts/i386pep.x
+++ b/x86_64-w64-mingw32/lib/ldscripts/i386pep.x
@@ -1,10 +1,10 @@
 /* Default linker script, for normal executables */
-/* Modified for Android.  */
-/* Copyright (C) 2014 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2016 Free Software Foundation, Inc.
    Copying and distribution of this script, with or without modification,
    are permitted in any medium without royalty provided the copyright
    notice and this notice are preserved.  */
 OUTPUT_FORMAT(pei-x86-64)
+SEARCH_DIR("=/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib");
 SECTIONS
 {
   /* Make the virtual address and file offset synced if the alignment is
@@ -13,7 +13,7 @@
   . = ALIGN(__section_alignment__);
   .text  __image_base__ + ( __section_alignment__ < 0x1000 ? . : __section_alignment__ ) :
   {
-     *(.init)
+     KEEP(*(.init))
     *(.text)
     *(SORT(.text$*))
      *(.text.*)
@@ -22,14 +22,22 @@
     *(.glue_7)
     . = ALIGN(8);
      ___CTOR_LIST__ = .; __CTOR_LIST__ = . ;
-			LONG (-1); LONG (-1);*(.ctors); *(.ctor); *(SORT(.ctors.*));  LONG (0); LONG (0);
+			LONG (-1); LONG (-1);
+			KEEP (*(.ctors));
+			KEEP (*(.ctor));
+			KEEP (*(SORT(.ctors.*)));
+			LONG (0); LONG (0);
      ___DTOR_LIST__ = .; __DTOR_LIST__ = . ;
-			LONG (-1); LONG (-1); *(.dtors); *(.dtor); *(SORT(.dtors.*));  LONG (0); LONG (0);
-     *(.fini)
+			LONG (-1); LONG (-1);
+			KEEP (*(.dtors));
+			KEEP (*(.dtor));
+			KEEP (*(SORT(.dtors.*)));
+			LONG (0); LONG (0);
+     KEEP (*(.fini))
     /* ??? Why is .gcc_exc here?  */
      *(.gcc_exc)
     PROVIDE (etext = .);
-     *(.gcc_except_table)
+     KEEP (*(.gcc_except_table))
   }
   /* The Cygwin32 library uses a section to avoid copying certain data
      on fork.  This used to be named ".data".  The linker used
@@ -42,7 +50,7 @@
     *(.data)
     *(.data2)
     *(SORT(.data$*))
-    *(.jcr)
+    KEEP(*(.jcr))
     __data_end__ = . ;
     *(.data_cygwin_nocopy)
   }
@@ -51,7 +59,7 @@
     *(.rdata)
              *(SORT(.rdata$*))
     __rt_psrelocs_start = .;
-    *(.rdata_runtime_pseudo_reloc)
+    KEEP(*(.rdata_runtime_pseudo_reloc))
     __rt_psrelocs_end = .;
   }
   __rt_psrelocs_size = __rt_psrelocs_end - __rt_psrelocs_start;
@@ -61,15 +69,15 @@
   __RUNTIME_PSEUDO_RELOC_LIST__ = . - __rt_psrelocs_size;
   .eh_frame BLOCK(__section_alignment__) :
   {
-    *(.eh_frame*)
+    KEEP (*(.eh_frame*))
   }
   .pdata BLOCK(__section_alignment__) :
   {
-    *(.pdata*)
+    KEEP(*(.pdata*))
   }
   .xdata BLOCK(__section_alignment__) :
   {
-    *(.xdata*)
+    KEEP(*(.xdata*))
   }
   .bss BLOCK(__section_alignment__) :
   {
@@ -95,33 +103,33 @@
   {
     /* This cannot currently be handled with grouped sections.
 	See pep.em:sort_sections.  */
-    SORT(*)(.idata$2)
-    SORT(*)(.idata$3)
+    KEEP (SORT(*)(.idata$2))
+    KEEP (SORT(*)(.idata$3))
     /* These zeroes mark the end of the import list.  */
     LONG (0); LONG (0); LONG (0); LONG (0); LONG (0);
-    SORT(*)(.idata$4)
+    KEEP (SORT(*)(.idata$4))
     __IAT_start__ = .;
     SORT(*)(.idata$5)
     __IAT_end__ = .;
-    SORT(*)(.idata$6)
-    SORT(*)(.idata$7)
+    KEEP (SORT(*)(.idata$6))
+    KEEP (SORT(*)(.idata$7))
   }
   .CRT BLOCK(__section_alignment__) :
   {
     ___crt_xc_start__ = . ;
-    *(SORT(.CRT$XC*))  /* C initialization */
+    KEEP (*(SORT(.CRT$XC*)))  /* C initialization */
     ___crt_xc_end__ = . ;
     ___crt_xi_start__ = . ;
-    *(SORT(.CRT$XI*))  /* C++ initialization */
+    KEEP (*(SORT(.CRT$XI*)))  /* C++ initialization */
     ___crt_xi_end__ = . ;
     ___crt_xl_start__ = . ;
-    *(SORT(.CRT$XL*))  /* TLS callbacks */
+    KEEP (*(SORT(.CRT$XL*)))  /* TLS callbacks */
     /* ___crt_xl_end__ is defined in the TLS Directory support code */
     ___crt_xp_start__ = . ;
-    *(SORT(.CRT$XP*))  /* Pre-termination */
+    KEEP (*(SORT(.CRT$XP*)))  /* Pre-termination */
     ___crt_xp_end__ = . ;
     ___crt_xt_start__ = . ;
-    *(SORT(.CRT$XT*))  /* Termination */
+    KEEP (*(SORT(.CRT$XT*)))  /* Termination */
     ___crt_xt_end__ = . ;
   }
   /* Windows TLS expects .tls$AAA to be at the start and .tls$ZZZ to be
@@ -131,11 +139,11 @@
   .tls BLOCK(__section_alignment__) :
   {
     ___tls_start__ = . ;
-    *(.tls$AAA)
-    *(.tls)
-    *(.tls$)
-    *(SORT(.tls$*))
-    *(.tls$ZZZ)
+    KEEP (*(.tls$AAA))
+    KEEP (*(.tls))
+    KEEP (*(.tls$))
+    KEEP (*(SORT(.tls$*)))
+    KEEP (*(.tls$ZZZ))
     ___tls_end__ = . ;
   }
   .endjunk BLOCK(__section_alignment__) :
@@ -147,8 +155,8 @@
   }
   .rsrc BLOCK(__section_alignment__) : SUBALIGN(4)
   {
-    *(.rsrc)
-    *(.rsrc$*)
+    KEEP (*(.rsrc))
+    KEEP (*(.rsrc$*))
   }
   .reloc BLOCK(__section_alignment__) :
   {
diff --git a/x86_64-w64-mingw32/lib/ldscripts/i386pep.xa b/x86_64-w64-mingw32/lib/ldscripts/i386pep.xa
index 55ad1d3..06dd9a1 100644
--- a/x86_64-w64-mingw32/lib/ldscripts/i386pep.xa
+++ b/x86_64-w64-mingw32/lib/ldscripts/i386pep.xa
@@ -1,9 +1,10 @@
 /* Script for ld --enable-auto-import: Like the default script except read only data is placed into .data  */
-/* Copyright (C) 2014 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2016 Free Software Foundation, Inc.
    Copying and distribution of this script, with or without modification,
    are permitted in any medium without royalty provided the copyright
    notice and this notice are preserved.  */
 OUTPUT_FORMAT(pei-x86-64)
+SEARCH_DIR("=/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib");
 SECTIONS
 {
   /* Make the virtual address and file offset synced if the alignment is
@@ -12,7 +13,7 @@
   . = ALIGN(__section_alignment__);
   .text  __image_base__ + ( __section_alignment__ < 0x1000 ? . : __section_alignment__ ) :
   {
-     *(.init)
+     KEEP(*(.init))
     *(.text)
     *(SORT(.text$*))
      *(.text.*)
@@ -21,14 +22,22 @@
     *(.glue_7)
     . = ALIGN(8);
      ___CTOR_LIST__ = .; __CTOR_LIST__ = . ;
-			LONG (-1); LONG (-1);*(.ctors); *(.ctor); *(SORT(.ctors.*));  LONG (0); LONG (0);
+			LONG (-1); LONG (-1);
+			KEEP (*(.ctors));
+			KEEP (*(.ctor));
+			KEEP (*(SORT(.ctors.*)));
+			LONG (0); LONG (0);
      ___DTOR_LIST__ = .; __DTOR_LIST__ = . ;
-			LONG (-1); LONG (-1); *(.dtors); *(.dtor); *(SORT(.dtors.*));  LONG (0); LONG (0);
-     *(.fini)
+			LONG (-1); LONG (-1);
+			KEEP (*(.dtors));
+			KEEP (*(.dtor));
+			KEEP (*(SORT(.dtors.*)));
+			LONG (0); LONG (0);
+     KEEP (*(.fini))
     /* ??? Why is .gcc_exc here?  */
      *(.gcc_exc)
     PROVIDE (etext = .);
-     *(.gcc_except_table)
+     KEEP (*(.gcc_except_table))
   }
   /* The Cygwin32 library uses a section to avoid copying certain data
      on fork.  This used to be named ".data".  The linker used
@@ -43,14 +52,14 @@
     *(SORT(.data$*))
             *(.rdata)
 	    *(SORT(.rdata$*))
-    *(.jcr)
+    KEEP(*(.jcr))
     __data_end__ = . ;
     *(.data_cygwin_nocopy)
   }
   .rdata BLOCK(__section_alignment__) :
   {
     __rt_psrelocs_start = .;
-    *(.rdata_runtime_pseudo_reloc)
+    KEEP(*(.rdata_runtime_pseudo_reloc))
     __rt_psrelocs_end = .;
   }
   __rt_psrelocs_size = __rt_psrelocs_end - __rt_psrelocs_start;
@@ -60,15 +69,15 @@
   __RUNTIME_PSEUDO_RELOC_LIST__ = . - __rt_psrelocs_size;
   .eh_frame BLOCK(__section_alignment__) :
   {
-    *(.eh_frame*)
+    KEEP (*(.eh_frame*))
   }
   .pdata BLOCK(__section_alignment__) :
   {
-    *(.pdata*)
+    KEEP(*(.pdata*))
   }
   .xdata BLOCK(__section_alignment__) :
   {
-    *(.xdata*)
+    KEEP(*(.xdata*))
   }
   .bss BLOCK(__section_alignment__) :
   {
@@ -94,33 +103,33 @@
   {
     /* This cannot currently be handled with grouped sections.
 	See pep.em:sort_sections.  */
-    SORT(*)(.idata$2)
-    SORT(*)(.idata$3)
+    KEEP (SORT(*)(.idata$2))
+    KEEP (SORT(*)(.idata$3))
     /* These zeroes mark the end of the import list.  */
     LONG (0); LONG (0); LONG (0); LONG (0); LONG (0);
-    SORT(*)(.idata$4)
+    KEEP (SORT(*)(.idata$4))
     __IAT_start__ = .;
     SORT(*)(.idata$5)
     __IAT_end__ = .;
-    SORT(*)(.idata$6)
-    SORT(*)(.idata$7)
+    KEEP (SORT(*)(.idata$6))
+    KEEP (SORT(*)(.idata$7))
   }
   .CRT BLOCK(__section_alignment__) :
   {
     ___crt_xc_start__ = . ;
-    *(SORT(.CRT$XC*))  /* C initialization */
+    KEEP (*(SORT(.CRT$XC*)))  /* C initialization */
     ___crt_xc_end__ = . ;
     ___crt_xi_start__ = . ;
-    *(SORT(.CRT$XI*))  /* C++ initialization */
+    KEEP (*(SORT(.CRT$XI*)))  /* C++ initialization */
     ___crt_xi_end__ = . ;
     ___crt_xl_start__ = . ;
-    *(SORT(.CRT$XL*))  /* TLS callbacks */
+    KEEP (*(SORT(.CRT$XL*)))  /* TLS callbacks */
     /* ___crt_xl_end__ is defined in the TLS Directory support code */
     ___crt_xp_start__ = . ;
-    *(SORT(.CRT$XP*))  /* Pre-termination */
+    KEEP (*(SORT(.CRT$XP*)))  /* Pre-termination */
     ___crt_xp_end__ = . ;
     ___crt_xt_start__ = . ;
-    *(SORT(.CRT$XT*))  /* Termination */
+    KEEP (*(SORT(.CRT$XT*)))  /* Termination */
     ___crt_xt_end__ = . ;
   }
   /* Windows TLS expects .tls$AAA to be at the start and .tls$ZZZ to be
@@ -130,11 +139,11 @@
   .tls BLOCK(__section_alignment__) :
   {
     ___tls_start__ = . ;
-    *(.tls$AAA)
-    *(.tls)
-    *(.tls$)
-    *(SORT(.tls$*))
-    *(.tls$ZZZ)
+    KEEP (*(.tls$AAA))
+    KEEP (*(.tls))
+    KEEP (*(.tls$))
+    KEEP (*(SORT(.tls$*)))
+    KEEP (*(.tls$ZZZ))
     ___tls_end__ = . ;
   }
   .endjunk BLOCK(__section_alignment__) :
@@ -146,8 +155,8 @@
   }
   .rsrc BLOCK(__section_alignment__) : SUBALIGN(4)
   {
-    *(.rsrc)
-    *(.rsrc$*)
+    KEEP (*(.rsrc))
+    KEEP (*(.rsrc$*))
   }
   .reloc BLOCK(__section_alignment__) :
   {
diff --git a/x86_64-w64-mingw32/lib/ldscripts/i386pep.xbn b/x86_64-w64-mingw32/lib/ldscripts/i386pep.xbn
index a9a2e22..7a2fa67 100644
--- a/x86_64-w64-mingw32/lib/ldscripts/i386pep.xbn
+++ b/x86_64-w64-mingw32/lib/ldscripts/i386pep.xbn
@@ -1,9 +1,10 @@
 /* Script for -N: mix text and data on same page; don't align data */
-/* Copyright (C) 2014 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2016 Free Software Foundation, Inc.
    Copying and distribution of this script, with or without modification,
    are permitted in any medium without royalty provided the copyright
    notice and this notice are preserved.  */
 OUTPUT_FORMAT(pei-x86-64)
+SEARCH_DIR("=/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib");
 SECTIONS
 {
   /* Make the virtual address and file offset synced if the alignment is
@@ -12,7 +13,7 @@
   . = ALIGN(__section_alignment__);
   .text  __image_base__ + ( __section_alignment__ < 0x1000 ? . : __section_alignment__ ) :
   {
-     *(.init)
+     KEEP(*(.init))
     *(.text)
     *(SORT(.text$*))
      *(.text.*)
@@ -21,14 +22,22 @@
     *(.glue_7)
     . = ALIGN(8);
      ___CTOR_LIST__ = .; __CTOR_LIST__ = . ;
-			LONG (-1); LONG (-1);*(.ctors); *(.ctor); *(SORT(.ctors.*));  LONG (0); LONG (0);
+			LONG (-1); LONG (-1);
+			KEEP (*(.ctors));
+			KEEP (*(.ctor));
+			KEEP (*(SORT(.ctors.*)));
+			LONG (0); LONG (0);
      ___DTOR_LIST__ = .; __DTOR_LIST__ = . ;
-			LONG (-1); LONG (-1); *(.dtors); *(.dtor); *(SORT(.dtors.*));  LONG (0); LONG (0);
-     *(.fini)
+			LONG (-1); LONG (-1);
+			KEEP (*(.dtors));
+			KEEP (*(.dtor));
+			KEEP (*(SORT(.dtors.*)));
+			LONG (0); LONG (0);
+     KEEP (*(.fini))
     /* ??? Why is .gcc_exc here?  */
      *(.gcc_exc)
     PROVIDE (etext = .);
-     *(.gcc_except_table)
+     KEEP (*(.gcc_except_table))
   }
   /* The Cygwin32 library uses a section to avoid copying certain data
      on fork.  This used to be named ".data".  The linker used
@@ -41,7 +50,7 @@
     *(.data)
     *(.data2)
     *(SORT(.data$*))
-    *(.jcr)
+    KEEP(*(.jcr))
     __data_end__ = . ;
     *(.data_cygwin_nocopy)
   }
@@ -50,7 +59,7 @@
     *(.rdata)
              *(SORT(.rdata$*))
     __rt_psrelocs_start = .;
-    *(.rdata_runtime_pseudo_reloc)
+    KEEP(*(.rdata_runtime_pseudo_reloc))
     __rt_psrelocs_end = .;
   }
   __rt_psrelocs_size = __rt_psrelocs_end - __rt_psrelocs_start;
@@ -60,15 +69,15 @@
   __RUNTIME_PSEUDO_RELOC_LIST__ = . - __rt_psrelocs_size;
   .eh_frame BLOCK(__section_alignment__) :
   {
-    *(.eh_frame*)
+    KEEP (*(.eh_frame*))
   }
   .pdata BLOCK(__section_alignment__) :
   {
-    *(.pdata*)
+    KEEP(*(.pdata*))
   }
   .xdata BLOCK(__section_alignment__) :
   {
-    *(.xdata*)
+    KEEP(*(.xdata*))
   }
   .bss BLOCK(__section_alignment__) :
   {
@@ -94,33 +103,33 @@
   {
     /* This cannot currently be handled with grouped sections.
 	See pep.em:sort_sections.  */
-    SORT(*)(.idata$2)
-    SORT(*)(.idata$3)
+    KEEP (SORT(*)(.idata$2))
+    KEEP (SORT(*)(.idata$3))
     /* These zeroes mark the end of the import list.  */
     LONG (0); LONG (0); LONG (0); LONG (0); LONG (0);
-    SORT(*)(.idata$4)
+    KEEP (SORT(*)(.idata$4))
     __IAT_start__ = .;
     SORT(*)(.idata$5)
     __IAT_end__ = .;
-    SORT(*)(.idata$6)
-    SORT(*)(.idata$7)
+    KEEP (SORT(*)(.idata$6))
+    KEEP (SORT(*)(.idata$7))
   }
   .CRT BLOCK(__section_alignment__) :
   {
     ___crt_xc_start__ = . ;
-    *(SORT(.CRT$XC*))  /* C initialization */
+    KEEP (*(SORT(.CRT$XC*)))  /* C initialization */
     ___crt_xc_end__ = . ;
     ___crt_xi_start__ = . ;
-    *(SORT(.CRT$XI*))  /* C++ initialization */
+    KEEP (*(SORT(.CRT$XI*)))  /* C++ initialization */
     ___crt_xi_end__ = . ;
     ___crt_xl_start__ = . ;
-    *(SORT(.CRT$XL*))  /* TLS callbacks */
+    KEEP (*(SORT(.CRT$XL*)))  /* TLS callbacks */
     /* ___crt_xl_end__ is defined in the TLS Directory support code */
     ___crt_xp_start__ = . ;
-    *(SORT(.CRT$XP*))  /* Pre-termination */
+    KEEP (*(SORT(.CRT$XP*)))  /* Pre-termination */
     ___crt_xp_end__ = . ;
     ___crt_xt_start__ = . ;
-    *(SORT(.CRT$XT*))  /* Termination */
+    KEEP (*(SORT(.CRT$XT*)))  /* Termination */
     ___crt_xt_end__ = . ;
   }
   /* Windows TLS expects .tls$AAA to be at the start and .tls$ZZZ to be
@@ -130,11 +139,11 @@
   .tls BLOCK(__section_alignment__) :
   {
     ___tls_start__ = . ;
-    *(.tls$AAA)
-    *(.tls)
-    *(.tls$)
-    *(SORT(.tls$*))
-    *(.tls$ZZZ)
+    KEEP (*(.tls$AAA))
+    KEEP (*(.tls))
+    KEEP (*(.tls$))
+    KEEP (*(SORT(.tls$*)))
+    KEEP (*(.tls$ZZZ))
     ___tls_end__ = . ;
   }
   .endjunk BLOCK(__section_alignment__) :
@@ -146,8 +155,8 @@
   }
   .rsrc BLOCK(__section_alignment__) : SUBALIGN(4)
   {
-    *(.rsrc)
-    *(.rsrc$*)
+    KEEP (*(.rsrc))
+    KEEP (*(.rsrc$*))
   }
   .reloc BLOCK(__section_alignment__) :
   {
diff --git a/x86_64-w64-mingw32/lib/ldscripts/i386pep.xn b/x86_64-w64-mingw32/lib/ldscripts/i386pep.xn
index 2c82469..6921abc 100644
--- a/x86_64-w64-mingw32/lib/ldscripts/i386pep.xn
+++ b/x86_64-w64-mingw32/lib/ldscripts/i386pep.xn
@@ -1,9 +1,10 @@
 /* Script for -n: mix text and data on same page */
-/* Copyright (C) 2014 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2016 Free Software Foundation, Inc.
    Copying and distribution of this script, with or without modification,
    are permitted in any medium without royalty provided the copyright
    notice and this notice are preserved.  */
 OUTPUT_FORMAT(pei-x86-64)
+SEARCH_DIR("=/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib");
 SECTIONS
 {
   /* Make the virtual address and file offset synced if the alignment is
@@ -12,7 +13,7 @@
   . = ALIGN(__section_alignment__);
   .text  __image_base__ + ( __section_alignment__ < 0x1000 ? . : __section_alignment__ ) :
   {
-     *(.init)
+     KEEP(*(.init))
     *(.text)
     *(SORT(.text$*))
      *(.text.*)
@@ -21,14 +22,22 @@
     *(.glue_7)
     . = ALIGN(8);
      ___CTOR_LIST__ = .; __CTOR_LIST__ = . ;
-			LONG (-1); LONG (-1);*(.ctors); *(.ctor); *(SORT(.ctors.*));  LONG (0); LONG (0);
+			LONG (-1); LONG (-1);
+			KEEP (*(.ctors));
+			KEEP (*(.ctor));
+			KEEP (*(SORT(.ctors.*)));
+			LONG (0); LONG (0);
      ___DTOR_LIST__ = .; __DTOR_LIST__ = . ;
-			LONG (-1); LONG (-1); *(.dtors); *(.dtor); *(SORT(.dtors.*));  LONG (0); LONG (0);
-     *(.fini)
+			LONG (-1); LONG (-1);
+			KEEP (*(.dtors));
+			KEEP (*(.dtor));
+			KEEP (*(SORT(.dtors.*)));
+			LONG (0); LONG (0);
+     KEEP (*(.fini))
     /* ??? Why is .gcc_exc here?  */
      *(.gcc_exc)
     PROVIDE (etext = .);
-     *(.gcc_except_table)
+     KEEP (*(.gcc_except_table))
   }
   /* The Cygwin32 library uses a section to avoid copying certain data
      on fork.  This used to be named ".data".  The linker used
@@ -41,7 +50,7 @@
     *(.data)
     *(.data2)
     *(SORT(.data$*))
-    *(.jcr)
+    KEEP(*(.jcr))
     __data_end__ = . ;
     *(.data_cygwin_nocopy)
   }
@@ -50,7 +59,7 @@
     *(.rdata)
              *(SORT(.rdata$*))
     __rt_psrelocs_start = .;
-    *(.rdata_runtime_pseudo_reloc)
+    KEEP(*(.rdata_runtime_pseudo_reloc))
     __rt_psrelocs_end = .;
   }
   __rt_psrelocs_size = __rt_psrelocs_end - __rt_psrelocs_start;
@@ -60,15 +69,15 @@
   __RUNTIME_PSEUDO_RELOC_LIST__ = . - __rt_psrelocs_size;
   .eh_frame BLOCK(__section_alignment__) :
   {
-    *(.eh_frame*)
+    KEEP (*(.eh_frame*))
   }
   .pdata BLOCK(__section_alignment__) :
   {
-    *(.pdata*)
+    KEEP(*(.pdata*))
   }
   .xdata BLOCK(__section_alignment__) :
   {
-    *(.xdata*)
+    KEEP(*(.xdata*))
   }
   .bss BLOCK(__section_alignment__) :
   {
@@ -94,33 +103,33 @@
   {
     /* This cannot currently be handled with grouped sections.
 	See pep.em:sort_sections.  */
-    SORT(*)(.idata$2)
-    SORT(*)(.idata$3)
+    KEEP (SORT(*)(.idata$2))
+    KEEP (SORT(*)(.idata$3))
     /* These zeroes mark the end of the import list.  */
     LONG (0); LONG (0); LONG (0); LONG (0); LONG (0);
-    SORT(*)(.idata$4)
+    KEEP (SORT(*)(.idata$4))
     __IAT_start__ = .;
     SORT(*)(.idata$5)
     __IAT_end__ = .;
-    SORT(*)(.idata$6)
-    SORT(*)(.idata$7)
+    KEEP (SORT(*)(.idata$6))
+    KEEP (SORT(*)(.idata$7))
   }
   .CRT BLOCK(__section_alignment__) :
   {
     ___crt_xc_start__ = . ;
-    *(SORT(.CRT$XC*))  /* C initialization */
+    KEEP (*(SORT(.CRT$XC*)))  /* C initialization */
     ___crt_xc_end__ = . ;
     ___crt_xi_start__ = . ;
-    *(SORT(.CRT$XI*))  /* C++ initialization */
+    KEEP (*(SORT(.CRT$XI*)))  /* C++ initialization */
     ___crt_xi_end__ = . ;
     ___crt_xl_start__ = . ;
-    *(SORT(.CRT$XL*))  /* TLS callbacks */
+    KEEP (*(SORT(.CRT$XL*)))  /* TLS callbacks */
     /* ___crt_xl_end__ is defined in the TLS Directory support code */
     ___crt_xp_start__ = . ;
-    *(SORT(.CRT$XP*))  /* Pre-termination */
+    KEEP (*(SORT(.CRT$XP*)))  /* Pre-termination */
     ___crt_xp_end__ = . ;
     ___crt_xt_start__ = . ;
-    *(SORT(.CRT$XT*))  /* Termination */
+    KEEP (*(SORT(.CRT$XT*)))  /* Termination */
     ___crt_xt_end__ = . ;
   }
   /* Windows TLS expects .tls$AAA to be at the start and .tls$ZZZ to be
@@ -130,11 +139,11 @@
   .tls BLOCK(__section_alignment__) :
   {
     ___tls_start__ = . ;
-    *(.tls$AAA)
-    *(.tls)
-    *(.tls$)
-    *(SORT(.tls$*))
-    *(.tls$ZZZ)
+    KEEP (*(.tls$AAA))
+    KEEP (*(.tls))
+    KEEP (*(.tls$))
+    KEEP (*(SORT(.tls$*)))
+    KEEP (*(.tls$ZZZ))
     ___tls_end__ = . ;
   }
   .endjunk BLOCK(__section_alignment__) :
@@ -146,8 +155,8 @@
   }
   .rsrc BLOCK(__section_alignment__) : SUBALIGN(4)
   {
-    *(.rsrc)
-    *(.rsrc$*)
+    KEEP (*(.rsrc))
+    KEEP (*(.rsrc$*))
   }
   .reloc BLOCK(__section_alignment__) :
   {
diff --git a/x86_64-w64-mingw32/lib/ldscripts/i386pep.xr b/x86_64-w64-mingw32/lib/ldscripts/i386pep.xr
index d9d1c57..5c3fb20 100644
--- a/x86_64-w64-mingw32/lib/ldscripts/i386pep.xr
+++ b/x86_64-w64-mingw32/lib/ldscripts/i386pep.xr
@@ -1,9 +1,10 @@
 /* Script for ld -r: link without relocation */
-/* Copyright (C) 2014 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2016 Free Software Foundation, Inc.
    Copying and distribution of this script, with or without modification,
    are permitted in any medium without royalty provided the copyright
    notice and this notice are preserved.  */
 OUTPUT_FORMAT(pe-x86-64)
+SEARCH_DIR("=/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib");
 SECTIONS
 {
   .text  :
@@ -22,24 +23,24 @@
   {
     *(.data)
     *(.data2)
-    *(.jcr)
+    KEEP(*(.jcr))
   }
   .rdata  :
   {
     *(.rdata)
-    *(.rdata_runtime_pseudo_reloc)
+    KEEP(*(.rdata_runtime_pseudo_reloc))
   }
   .eh_frame  :
   {
-    *(.eh_frame*)
+    KEEP (*(.eh_frame*))
   }
   .pdata  :
   {
-    *(.pdata*)
+    KEEP(*(.pdata*))
   }
   .xdata  :
   {
-    *(.xdata*)
+    KEEP(*(.xdata*))
   }
   .bss  :
   {
diff --git a/x86_64-w64-mingw32/lib/ldscripts/i386pep.xu b/x86_64-w64-mingw32/lib/ldscripts/i386pep.xu
index b50ca8a..4618ac8 100644
--- a/x86_64-w64-mingw32/lib/ldscripts/i386pep.xu
+++ b/x86_64-w64-mingw32/lib/ldscripts/i386pep.xu
@@ -1,9 +1,10 @@
 /* Script for ld -Ur: link w/out relocation, do create constructors */
-/* Copyright (C) 2014 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2016 Free Software Foundation, Inc.
    Copying and distribution of this script, with or without modification,
    are permitted in any medium without royalty provided the copyright
    notice and this notice are preserved.  */
 OUTPUT_FORMAT(pe-x86-64)
+SEARCH_DIR("=/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib");
 SECTIONS
 {
   .text  :
@@ -13,9 +14,17 @@
     *(.glue_7)
     . = ALIGN(8);
      ___CTOR_LIST__ = .; __CTOR_LIST__ = . ;
-			LONG (-1); LONG (-1);*(.ctors); *(.ctor); *(SORT(.ctors.*));  LONG (0); LONG (0);
+			LONG (-1); LONG (-1);
+			KEEP (*(.ctors));
+			KEEP (*(.ctor));
+			KEEP (*(SORT(.ctors.*)));
+			LONG (0); LONG (0);
      ___DTOR_LIST__ = .; __DTOR_LIST__ = . ;
-			LONG (-1); LONG (-1); *(.dtors); *(.dtor); *(SORT(.dtors.*));  LONG (0); LONG (0);
+			LONG (-1); LONG (-1);
+			KEEP (*(.dtors));
+			KEEP (*(.dtor));
+			KEEP (*(SORT(.dtors.*)));
+			LONG (0); LONG (0);
     /* ??? Why is .gcc_exc here?  */
   }
   /* The Cygwin32 library uses a section to avoid copying certain data
@@ -27,24 +36,24 @@
   {
     *(.data)
     *(.data2)
-    *(.jcr)
+    KEEP(*(.jcr))
   }
   .rdata  :
   {
     *(.rdata)
-    *(.rdata_runtime_pseudo_reloc)
+    KEEP(*(.rdata_runtime_pseudo_reloc))
   }
   .eh_frame  :
   {
-    *(.eh_frame*)
+    KEEP (*(.eh_frame*))
   }
   .pdata  :
   {
-    *(.pdata*)
+    KEEP(*(.pdata*))
   }
   .xdata  :
   {
-    *(.xdata*)
+    KEEP(*(.xdata*))
   }
   .bss  :
   {
diff --git a/x86_64-w64-mingw32/lib/lib6to4svc.a b/x86_64-w64-mingw32/lib/lib6to4svc.a
index 34302e4..7e58c8e 100644
--- a/x86_64-w64-mingw32/lib/lib6to4svc.a
+++ b/x86_64-w64-mingw32/lib/lib6to4svc.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libCINTIME.a b/x86_64-w64-mingw32/lib/libCINTIME.a
index 16684cf..a1a6279 100644
--- a/x86_64-w64-mingw32/lib/libCINTIME.a
+++ b/x86_64-w64-mingw32/lib/libCINTIME.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libPS5UI.a b/x86_64-w64-mingw32/lib/libPS5UI.a
index 0f67e05..2fffd15 100644
--- a/x86_64-w64-mingw32/lib/libPS5UI.a
+++ b/x86_64-w64-mingw32/lib/libPS5UI.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libPSCRIPT5.a b/x86_64-w64-mingw32/lib/libPSCRIPT5.a
index 416612d..6770ee9 100644
--- a/x86_64-w64-mingw32/lib/libPSCRIPT5.a
+++ b/x86_64-w64-mingw32/lib/libPSCRIPT5.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libUNIDRV.a b/x86_64-w64-mingw32/lib/libUNIDRV.a
index 3ba427d..9deb62a 100644
--- a/x86_64-w64-mingw32/lib/libUNIDRV.a
+++ b/x86_64-w64-mingw32/lib/libUNIDRV.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libUNIDRVUI.a b/x86_64-w64-mingw32/lib/libUNIDRVUI.a
index a2c65e5..d6faad7 100644
--- a/x86_64-w64-mingw32/lib/libUNIDRVUI.a
+++ b/x86_64-w64-mingw32/lib/libUNIDRVUI.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libaaaamon.a b/x86_64-w64-mingw32/lib/libaaaamon.a
index 4c45d45..3d2b29a 100644
--- a/x86_64-w64-mingw32/lib/libaaaamon.a
+++ b/x86_64-w64-mingw32/lib/libaaaamon.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libacledit.a b/x86_64-w64-mingw32/lib/libacledit.a
index 2a60831..5ab0fe4 100644
--- a/x86_64-w64-mingw32/lib/libacledit.a
+++ b/x86_64-w64-mingw32/lib/libacledit.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libaclui.a b/x86_64-w64-mingw32/lib/libaclui.a
index ccae574..26a5050 100644
--- a/x86_64-w64-mingw32/lib/libaclui.a
+++ b/x86_64-w64-mingw32/lib/libaclui.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libactiveds.a b/x86_64-w64-mingw32/lib/libactiveds.a
index 4a3ac3b..145641b 100644
--- a/x86_64-w64-mingw32/lib/libactiveds.a
+++ b/x86_64-w64-mingw32/lib/libactiveds.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libactxprxy.a b/x86_64-w64-mingw32/lib/libactxprxy.a
index d335e00..45cbaa4 100644
--- a/x86_64-w64-mingw32/lib/libactxprxy.a
+++ b/x86_64-w64-mingw32/lib/libactxprxy.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libadmparse.a b/x86_64-w64-mingw32/lib/libadmparse.a
index a669021..71c78d2 100644
--- a/x86_64-w64-mingw32/lib/libadmparse.a
+++ b/x86_64-w64-mingw32/lib/libadmparse.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libadmwprox.a b/x86_64-w64-mingw32/lib/libadmwprox.a
index 2f0c760..f392b0b 100644
--- a/x86_64-w64-mingw32/lib/libadmwprox.a
+++ b/x86_64-w64-mingw32/lib/libadmwprox.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libadptif.a b/x86_64-w64-mingw32/lib/libadptif.a
index de2e1e6..6a14696 100644
--- a/x86_64-w64-mingw32/lib/libadptif.a
+++ b/x86_64-w64-mingw32/lib/libadptif.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libadrot.a b/x86_64-w64-mingw32/lib/libadrot.a
index aaab4cf..a702a88 100644
--- a/x86_64-w64-mingw32/lib/libadrot.a
+++ b/x86_64-w64-mingw32/lib/libadrot.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libadsiis.a b/x86_64-w64-mingw32/lib/libadsiis.a
index e2008f5..3d9c50d 100644
--- a/x86_64-w64-mingw32/lib/libadsiis.a
+++ b/x86_64-w64-mingw32/lib/libadsiis.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libadsiisex.a b/x86_64-w64-mingw32/lib/libadsiisex.a
index 7dcc86c..7118c53 100644
--- a/x86_64-w64-mingw32/lib/libadsiisex.a
+++ b/x86_64-w64-mingw32/lib/libadsiisex.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libadsldp.a b/x86_64-w64-mingw32/lib/libadsldp.a
index 73730a9..0f59b4b 100644
--- a/x86_64-w64-mingw32/lib/libadsldp.a
+++ b/x86_64-w64-mingw32/lib/libadsldp.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libadsldpc.a b/x86_64-w64-mingw32/lib/libadsldpc.a
index 0bdf437..c1c598f 100644
--- a/x86_64-w64-mingw32/lib/libadsldpc.a
+++ b/x86_64-w64-mingw32/lib/libadsldpc.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libadsmsext.a b/x86_64-w64-mingw32/lib/libadsmsext.a
index b4f6590..c73d0d0 100644
--- a/x86_64-w64-mingw32/lib/libadsmsext.a
+++ b/x86_64-w64-mingw32/lib/libadsmsext.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libadsnt.a b/x86_64-w64-mingw32/lib/libadsnt.a
index de5b2d5..0fa48c5 100644
--- a/x86_64-w64-mingw32/lib/libadsnt.a
+++ b/x86_64-w64-mingw32/lib/libadsnt.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libadvapi32.a b/x86_64-w64-mingw32/lib/libadvapi32.a
index c90ce4e..676087f 100644
--- a/x86_64-w64-mingw32/lib/libadvapi32.a
+++ b/x86_64-w64-mingw32/lib/libadvapi32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libadvpack.a b/x86_64-w64-mingw32/lib/libadvpack.a
index 6ad5fe5..06a4f92 100644
--- a/x86_64-w64-mingw32/lib/libadvpack.a
+++ b/x86_64-w64-mingw32/lib/libadvpack.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libaelupsvc.a b/x86_64-w64-mingw32/lib/libaelupsvc.a
index 6bd3936..b479c43 100644
--- a/x86_64-w64-mingw32/lib/libaelupsvc.a
+++ b/x86_64-w64-mingw32/lib/libaelupsvc.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libagentanm.a b/x86_64-w64-mingw32/lib/libagentanm.a
index b030ef5..d7e23c7 100644
--- a/x86_64-w64-mingw32/lib/libagentanm.a
+++ b/x86_64-w64-mingw32/lib/libagentanm.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libagentctl.a b/x86_64-w64-mingw32/lib/libagentctl.a
index d7f2dd9..3d6d467 100644
--- a/x86_64-w64-mingw32/lib/libagentctl.a
+++ b/x86_64-w64-mingw32/lib/libagentctl.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libagentdp2.a b/x86_64-w64-mingw32/lib/libagentdp2.a
index 5d63e34..296d81a 100644
--- a/x86_64-w64-mingw32/lib/libagentdp2.a
+++ b/x86_64-w64-mingw32/lib/libagentdp2.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libagentdpv.a b/x86_64-w64-mingw32/lib/libagentdpv.a
index 0a8e72f..b936056 100644
--- a/x86_64-w64-mingw32/lib/libagentdpv.a
+++ b/x86_64-w64-mingw32/lib/libagentdpv.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libagentmpx.a b/x86_64-w64-mingw32/lib/libagentmpx.a
index 24c850e..36e6fae 100644
--- a/x86_64-w64-mingw32/lib/libagentmpx.a
+++ b/x86_64-w64-mingw32/lib/libagentmpx.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libagentpsh.a b/x86_64-w64-mingw32/lib/libagentpsh.a
index a605499..819a265 100644
--- a/x86_64-w64-mingw32/lib/libagentpsh.a
+++ b/x86_64-w64-mingw32/lib/libagentpsh.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libagentsr.a b/x86_64-w64-mingw32/lib/libagentsr.a
index 98ce914..d9f6295 100644
--- a/x86_64-w64-mingw32/lib/libagentsr.a
+++ b/x86_64-w64-mingw32/lib/libagentsr.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libagrmco64.a b/x86_64-w64-mingw32/lib/libagrmco64.a
index 579ecab..6ee5800 100644
--- a/x86_64-w64-mingw32/lib/libagrmco64.a
+++ b/x86_64-w64-mingw32/lib/libagrmco64.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libagtintl.a b/x86_64-w64-mingw32/lib/libagtintl.a
index 10dc6f7..7c51a91 100644
--- a/x86_64-w64-mingw32/lib/libagtintl.a
+++ b/x86_64-w64-mingw32/lib/libagtintl.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libakscoinst.a b/x86_64-w64-mingw32/lib/libakscoinst.a
index 0072e1c..e3f6856 100644
--- a/x86_64-w64-mingw32/lib/libakscoinst.a
+++ b/x86_64-w64-mingw32/lib/libakscoinst.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libalrsvc.a b/x86_64-w64-mingw32/lib/libalrsvc.a
index 3a95061..f3ff1d6 100644
--- a/x86_64-w64-mingw32/lib/libalrsvc.a
+++ b/x86_64-w64-mingw32/lib/libalrsvc.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libamstream.a b/x86_64-w64-mingw32/lib/libamstream.a
index 400b7fc..e622228 100644
--- a/x86_64-w64-mingw32/lib/libamstream.a
+++ b/x86_64-w64-mingw32/lib/libamstream.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libamstrmid.a b/x86_64-w64-mingw32/lib/libamstrmid.a
index e5a88e6..b2dd05b 100644
--- a/x86_64-w64-mingw32/lib/libamstrmid.a
+++ b/x86_64-w64-mingw32/lib/libamstrmid.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libapcups.a b/x86_64-w64-mingw32/lib/libapcups.a
index 553af10..786bfc1 100644
--- a/x86_64-w64-mingw32/lib/libapcups.a
+++ b/x86_64-w64-mingw32/lib/libapcups.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libapphelp.a b/x86_64-w64-mingw32/lib/libapphelp.a
index 1bdbc18..f1bea38 100644
--- a/x86_64-w64-mingw32/lib/libapphelp.a
+++ b/x86_64-w64-mingw32/lib/libapphelp.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libappmgmts.a b/x86_64-w64-mingw32/lib/libappmgmts.a
index ad47b58..1deafc7 100644
--- a/x86_64-w64-mingw32/lib/libappmgmts.a
+++ b/x86_64-w64-mingw32/lib/libappmgmts.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libappmgr.a b/x86_64-w64-mingw32/lib/libappmgr.a
index adff214..eac27cd 100644
--- a/x86_64-w64-mingw32/lib/libappmgr.a
+++ b/x86_64-w64-mingw32/lib/libappmgr.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libaqadmin.a b/x86_64-w64-mingw32/lib/libaqadmin.a
index 74a5960..797001a 100644
--- a/x86_64-w64-mingw32/lib/libaqadmin.a
+++ b/x86_64-w64-mingw32/lib/libaqadmin.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libaqueue.a b/x86_64-w64-mingw32/lib/libaqueue.a
index cfe723c..1fa5e70 100644
--- a/x86_64-w64-mingw32/lib/libaqueue.a
+++ b/x86_64-w64-mingw32/lib/libaqueue.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libasp.a b/x86_64-w64-mingw32/lib/libasp.a
index 8ee81fb..2dac815 100644
--- a/x86_64-w64-mingw32/lib/libasp.a
+++ b/x86_64-w64-mingw32/lib/libasp.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libaspperf.a b/x86_64-w64-mingw32/lib/libaspperf.a
index 714a46f..ddfb304 100644
--- a/x86_64-w64-mingw32/lib/libaspperf.a
+++ b/x86_64-w64-mingw32/lib/libaspperf.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libasycfilt.a b/x86_64-w64-mingw32/lib/libasycfilt.a
index dbcf664..df3d7bd 100644
--- a/x86_64-w64-mingw32/lib/libasycfilt.a
+++ b/x86_64-w64-mingw32/lib/libasycfilt.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libatkctrs.a b/x86_64-w64-mingw32/lib/libatkctrs.a
index 35ad47f..1350eea 100644
--- a/x86_64-w64-mingw32/lib/libatkctrs.a
+++ b/x86_64-w64-mingw32/lib/libatkctrs.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libatl.a b/x86_64-w64-mingw32/lib/libatl.a
index 49880ce..06c6eb7 100644
--- a/x86_64-w64-mingw32/lib/libatl.a
+++ b/x86_64-w64-mingw32/lib/libatl.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libatmlib.a b/x86_64-w64-mingw32/lib/libatmlib.a
index c8ab84b..8435d84 100644
--- a/x86_64-w64-mingw32/lib/libatmlib.a
+++ b/x86_64-w64-mingw32/lib/libatmlib.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libatmpvcno.a b/x86_64-w64-mingw32/lib/libatmpvcno.a
index 1dc3874..5af52df 100644
--- a/x86_64-w64-mingw32/lib/libatmpvcno.a
+++ b/x86_64-w64-mingw32/lib/libatmpvcno.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libatrace.a b/x86_64-w64-mingw32/lib/libatrace.a
index ffe867c..5f4fcdc 100644
--- a/x86_64-w64-mingw32/lib/libatrace.a
+++ b/x86_64-w64-mingw32/lib/libatrace.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libaudiosrv.a b/x86_64-w64-mingw32/lib/libaudiosrv.a
index 971a9bb..24dc360 100644
--- a/x86_64-w64-mingw32/lib/libaudiosrv.a
+++ b/x86_64-w64-mingw32/lib/libaudiosrv.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libauthz.a b/x86_64-w64-mingw32/lib/libauthz.a
index 412f9b1..825e3e7 100644
--- a/x86_64-w64-mingw32/lib/libauthz.a
+++ b/x86_64-w64-mingw32/lib/libauthz.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libautodisc.a b/x86_64-w64-mingw32/lib/libautodisc.a
index 004fe73..75dc656 100644
--- a/x86_64-w64-mingw32/lib/libautodisc.a
+++ b/x86_64-w64-mingw32/lib/libautodisc.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libavicap32.a b/x86_64-w64-mingw32/lib/libavicap32.a
index b416a71..d55c290 100644
--- a/x86_64-w64-mingw32/lib/libavicap32.a
+++ b/x86_64-w64-mingw32/lib/libavicap32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libavifil32.a b/x86_64-w64-mingw32/lib/libavifil32.a
index 2467296..bd8946b 100644
--- a/x86_64-w64-mingw32/lib/libavifil32.a
+++ b/x86_64-w64-mingw32/lib/libavifil32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libavrt.a b/x86_64-w64-mingw32/lib/libavrt.a
index e3e2898..9e2d0ec 100644
--- a/x86_64-w64-mingw32/lib/libavrt.a
+++ b/x86_64-w64-mingw32/lib/libavrt.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libazroles.a b/x86_64-w64-mingw32/lib/libazroles.a
index 7aad677..87509ae 100644
--- a/x86_64-w64-mingw32/lib/libazroles.a
+++ b/x86_64-w64-mingw32/lib/libazroles.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libazroleui.a b/x86_64-w64-mingw32/lib/libazroleui.a
index 503eefb..d2077c2 100644
--- a/x86_64-w64-mingw32/lib/libazroleui.a
+++ b/x86_64-w64-mingw32/lib/libazroleui.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libbasesrv.a b/x86_64-w64-mingw32/lib/libbasesrv.a
index 6a660d9..7a4545d 100644
--- a/x86_64-w64-mingw32/lib/libbasesrv.a
+++ b/x86_64-w64-mingw32/lib/libbasesrv.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libbatmeter.a b/x86_64-w64-mingw32/lib/libbatmeter.a
index f1f9466..804c6b4 100644
--- a/x86_64-w64-mingw32/lib/libbatmeter.a
+++ b/x86_64-w64-mingw32/lib/libbatmeter.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libbatt.a b/x86_64-w64-mingw32/lib/libbatt.a
index db8b977..a111613 100644
--- a/x86_64-w64-mingw32/lib/libbatt.a
+++ b/x86_64-w64-mingw32/lib/libbatt.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libbcrypt.a b/x86_64-w64-mingw32/lib/libbcrypt.a
index cafc4bc..03bb044 100644
--- a/x86_64-w64-mingw32/lib/libbcrypt.a
+++ b/x86_64-w64-mingw32/lib/libbcrypt.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libbidispl.a b/x86_64-w64-mingw32/lib/libbidispl.a
index 7f32192..bd5edd9 100644
--- a/x86_64-w64-mingw32/lib/libbidispl.a
+++ b/x86_64-w64-mingw32/lib/libbidispl.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libbitsprx2.a b/x86_64-w64-mingw32/lib/libbitsprx2.a
index 5fac798..6129ec0 100644
--- a/x86_64-w64-mingw32/lib/libbitsprx2.a
+++ b/x86_64-w64-mingw32/lib/libbitsprx2.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libbitsprx3.a b/x86_64-w64-mingw32/lib/libbitsprx3.a
index 1fa7987..4d5e5f4 100644
--- a/x86_64-w64-mingw32/lib/libbitsprx3.a
+++ b/x86_64-w64-mingw32/lib/libbitsprx3.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libbnts.a b/x86_64-w64-mingw32/lib/libbnts.a
index 6cc17b5..8ae5ae2 100644
--- a/x86_64-w64-mingw32/lib/libbnts.a
+++ b/x86_64-w64-mingw32/lib/libbnts.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libbootvid.a b/x86_64-w64-mingw32/lib/libbootvid.a
index 721917c..529d773 100644
--- a/x86_64-w64-mingw32/lib/libbootvid.a
+++ b/x86_64-w64-mingw32/lib/libbootvid.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libbrowscap.a b/x86_64-w64-mingw32/lib/libbrowscap.a
index d05c98a..98fb60e 100644
--- a/x86_64-w64-mingw32/lib/libbrowscap.a
+++ b/x86_64-w64-mingw32/lib/libbrowscap.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libbrowser.a b/x86_64-w64-mingw32/lib/libbrowser.a
index 466dca3..7ecc449 100644
--- a/x86_64-w64-mingw32/lib/libbrowser.a
+++ b/x86_64-w64-mingw32/lib/libbrowser.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libbrowseui.a b/x86_64-w64-mingw32/lib/libbrowseui.a
index ca554ea..8dc53df 100644
--- a/x86_64-w64-mingw32/lib/libbrowseui.a
+++ b/x86_64-w64-mingw32/lib/libbrowseui.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libbrpinfo.a b/x86_64-w64-mingw32/lib/libbrpinfo.a
index 68fe548..608f788 100644
--- a/x86_64-w64-mingw32/lib/libbrpinfo.a
+++ b/x86_64-w64-mingw32/lib/libbrpinfo.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libbthci.a b/x86_64-w64-mingw32/lib/libbthci.a
index 5e28b29..ad38f1b 100644
--- a/x86_64-w64-mingw32/lib/libbthci.a
+++ b/x86_64-w64-mingw32/lib/libbthci.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libbthprops.a b/x86_64-w64-mingw32/lib/libbthprops.a
index e3a9b43..e9d5255 100644
--- a/x86_64-w64-mingw32/lib/libbthprops.a
+++ b/x86_64-w64-mingw32/lib/libbthprops.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libbthserv.a b/x86_64-w64-mingw32/lib/libbthserv.a
index fb1c7e2..73b3c0f 100644
--- a/x86_64-w64-mingw32/lib/libbthserv.a
+++ b/x86_64-w64-mingw32/lib/libbthserv.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libbtpanui.a b/x86_64-w64-mingw32/lib/libbtpanui.a
index 1324155..35703b0 100644
--- a/x86_64-w64-mingw32/lib/libbtpanui.a
+++ b/x86_64-w64-mingw32/lib/libbtpanui.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libc_g18030.a b/x86_64-w64-mingw32/lib/libc_g18030.a
index 28f3fa9..eaa054a 100644
--- a/x86_64-w64-mingw32/lib/libc_g18030.a
+++ b/x86_64-w64-mingw32/lib/libc_g18030.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libc_is2022.a b/x86_64-w64-mingw32/lib/libc_is2022.a
index 081fb76..9464719 100644
--- a/x86_64-w64-mingw32/lib/libc_is2022.a
+++ b/x86_64-w64-mingw32/lib/libc_is2022.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libc_iscii.a b/x86_64-w64-mingw32/lib/libc_iscii.a
index 0678112..8097c1e 100644
--- a/x86_64-w64-mingw32/lib/libc_iscii.a
+++ b/x86_64-w64-mingw32/lib/libc_iscii.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libcabinet.a b/x86_64-w64-mingw32/lib/libcabinet.a
index 93bbfba..7dc0561 100644
--- a/x86_64-w64-mingw32/lib/libcabinet.a
+++ b/x86_64-w64-mingw32/lib/libcabinet.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libcabview.a b/x86_64-w64-mingw32/lib/libcabview.a
index b65ee3b..392c1f1 100644
--- a/x86_64-w64-mingw32/lib/libcabview.a
+++ b/x86_64-w64-mingw32/lib/libcabview.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libcamocx.a b/x86_64-w64-mingw32/lib/libcamocx.a
index 60fc1bd..0d92b8a 100644
--- a/x86_64-w64-mingw32/lib/libcamocx.a
+++ b/x86_64-w64-mingw32/lib/libcamocx.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libcards.a b/x86_64-w64-mingw32/lib/libcards.a
index b451917..fd60ce0 100644
--- a/x86_64-w64-mingw32/lib/libcards.a
+++ b/x86_64-w64-mingw32/lib/libcards.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libcatsrv.a b/x86_64-w64-mingw32/lib/libcatsrv.a
index 3a53cee..f86930f 100644
--- a/x86_64-w64-mingw32/lib/libcatsrv.a
+++ b/x86_64-w64-mingw32/lib/libcatsrv.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libcatsrvps.a b/x86_64-w64-mingw32/lib/libcatsrvps.a
index 8b92ba4..648da53 100644
--- a/x86_64-w64-mingw32/lib/libcatsrvps.a
+++ b/x86_64-w64-mingw32/lib/libcatsrvps.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libcatsrvut.a b/x86_64-w64-mingw32/lib/libcatsrvut.a
index 9af7a54..1a7cf27 100644
--- a/x86_64-w64-mingw32/lib/libcatsrvut.a
+++ b/x86_64-w64-mingw32/lib/libcatsrvut.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libccfgnt.a b/x86_64-w64-mingw32/lib/libccfgnt.a
index b50ac4d..85d25f6 100644
--- a/x86_64-w64-mingw32/lib/libccfgnt.a
+++ b/x86_64-w64-mingw32/lib/libccfgnt.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libcdfview.a b/x86_64-w64-mingw32/lib/libcdfview.a
index 08fd07e..9165f70 100644
--- a/x86_64-w64-mingw32/lib/libcdfview.a
+++ b/x86_64-w64-mingw32/lib/libcdfview.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libcdm.a b/x86_64-w64-mingw32/lib/libcdm.a
index 782ed86..f416eda 100644
--- a/x86_64-w64-mingw32/lib/libcdm.a
+++ b/x86_64-w64-mingw32/lib/libcdm.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libcdosys.a b/x86_64-w64-mingw32/lib/libcdosys.a
index d75ed18..d0ab5b0 100644
--- a/x86_64-w64-mingw32/lib/libcdosys.a
+++ b/x86_64-w64-mingw32/lib/libcdosys.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libcertcli.a b/x86_64-w64-mingw32/lib/libcertcli.a
index 45ba323..ba0430d 100644
--- a/x86_64-w64-mingw32/lib/libcertcli.a
+++ b/x86_64-w64-mingw32/lib/libcertcli.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libcertmgr.a b/x86_64-w64-mingw32/lib/libcertmgr.a
index 3f622b9..5e95e77 100644
--- a/x86_64-w64-mingw32/lib/libcertmgr.a
+++ b/x86_64-w64-mingw32/lib/libcertmgr.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libcertobj.a b/x86_64-w64-mingw32/lib/libcertobj.a
index b5e3238..c1cb54a 100644
--- a/x86_64-w64-mingw32/lib/libcertobj.a
+++ b/x86_64-w64-mingw32/lib/libcertobj.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libcfgbkend.a b/x86_64-w64-mingw32/lib/libcfgbkend.a
index 2d7a14f..3a19f0e 100644
--- a/x86_64-w64-mingw32/lib/libcfgbkend.a
+++ b/x86_64-w64-mingw32/lib/libcfgbkend.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libcfgmgr32.a b/x86_64-w64-mingw32/lib/libcfgmgr32.a
index ff5890e..47b2ea6 100644
--- a/x86_64-w64-mingw32/lib/libcfgmgr32.a
+++ b/x86_64-w64-mingw32/lib/libcfgmgr32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libchsbrkr.a b/x86_64-w64-mingw32/lib/libchsbrkr.a
index bb5c482..8a0ffda 100644
--- a/x86_64-w64-mingw32/lib/libchsbrkr.a
+++ b/x86_64-w64-mingw32/lib/libchsbrkr.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libchtbrkr.a b/x86_64-w64-mingw32/lib/libchtbrkr.a
index 04b59f0..f5409fc 100644
--- a/x86_64-w64-mingw32/lib/libchtbrkr.a
+++ b/x86_64-w64-mingw32/lib/libchtbrkr.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libchtskdic.a b/x86_64-w64-mingw32/lib/libchtskdic.a
index 31f9719..ab27be0 100644
--- a/x86_64-w64-mingw32/lib/libchtskdic.a
+++ b/x86_64-w64-mingw32/lib/libchtskdic.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libciadmin.a b/x86_64-w64-mingw32/lib/libciadmin.a
index 81607e7..61b498d 100644
--- a/x86_64-w64-mingw32/lib/libciadmin.a
+++ b/x86_64-w64-mingw32/lib/libciadmin.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libcic.a b/x86_64-w64-mingw32/lib/libcic.a
index 4bc3efc..777fe22 100644
--- a/x86_64-w64-mingw32/lib/libcic.a
+++ b/x86_64-w64-mingw32/lib/libcic.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libcimwin32.a b/x86_64-w64-mingw32/lib/libcimwin32.a
index ff60142..4736525 100644
--- a/x86_64-w64-mingw32/lib/libcimwin32.a
+++ b/x86_64-w64-mingw32/lib/libcimwin32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libciodm.a b/x86_64-w64-mingw32/lib/libciodm.a
index d1938d8..ef83a75 100644
--- a/x86_64-w64-mingw32/lib/libciodm.a
+++ b/x86_64-w64-mingw32/lib/libciodm.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libclasspnp.a b/x86_64-w64-mingw32/lib/libclasspnp.a
index 2b41f78..6e9dd49 100644
--- a/x86_64-w64-mingw32/lib/libclasspnp.a
+++ b/x86_64-w64-mingw32/lib/libclasspnp.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libclb.a b/x86_64-w64-mingw32/lib/libclb.a
index 99aaa7b..9ef1bdb 100644
--- a/x86_64-w64-mingw32/lib/libclb.a
+++ b/x86_64-w64-mingw32/lib/libclb.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libclbcatex.a b/x86_64-w64-mingw32/lib/libclbcatex.a
index f6a7bad..fb5a580 100644
--- a/x86_64-w64-mingw32/lib/libclbcatex.a
+++ b/x86_64-w64-mingw32/lib/libclbcatex.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libclbcatq.a b/x86_64-w64-mingw32/lib/libclbcatq.a
index f9b907b..0b5f9b5 100644
--- a/x86_64-w64-mingw32/lib/libclbcatq.a
+++ b/x86_64-w64-mingw32/lib/libclbcatq.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libclfsw32.a b/x86_64-w64-mingw32/lib/libclfsw32.a
index d09dd89..549d1c8 100644
--- a/x86_64-w64-mingw32/lib/libclfsw32.a
+++ b/x86_64-w64-mingw32/lib/libclfsw32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libcliconfg.a b/x86_64-w64-mingw32/lib/libcliconfg.a
index fa7c5da..a31b4cf 100644
--- a/x86_64-w64-mingw32/lib/libcliconfg.a
+++ b/x86_64-w64-mingw32/lib/libcliconfg.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libclusapi.a b/x86_64-w64-mingw32/lib/libclusapi.a
index eb3f4f1..5eff02f 100644
--- a/x86_64-w64-mingw32/lib/libclusapi.a
+++ b/x86_64-w64-mingw32/lib/libclusapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libcmcfg32.a b/x86_64-w64-mingw32/lib/libcmcfg32.a
index 2df3057..d6e052c 100644
--- a/x86_64-w64-mingw32/lib/libcmcfg32.a
+++ b/x86_64-w64-mingw32/lib/libcmcfg32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libcmdial32.a b/x86_64-w64-mingw32/lib/libcmdial32.a
index dfa979a..6c29360 100644
--- a/x86_64-w64-mingw32/lib/libcmdial32.a
+++ b/x86_64-w64-mingw32/lib/libcmdial32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libcmpbk32.a b/x86_64-w64-mingw32/lib/libcmpbk32.a
index c304864..081c400 100644
--- a/x86_64-w64-mingw32/lib/libcmpbk32.a
+++ b/x86_64-w64-mingw32/lib/libcmpbk32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libcmprops.a b/x86_64-w64-mingw32/lib/libcmprops.a
index b9b5440..3eae6cc 100644
--- a/x86_64-w64-mingw32/lib/libcmprops.a
+++ b/x86_64-w64-mingw32/lib/libcmprops.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libcmsetacl.a b/x86_64-w64-mingw32/lib/libcmsetacl.a
index f7a2cbb..65ba38d 100644
--- a/x86_64-w64-mingw32/lib/libcmsetacl.a
+++ b/x86_64-w64-mingw32/lib/libcmsetacl.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libcmutil.a b/x86_64-w64-mingw32/lib/libcmutil.a
index 40e23d3..44adc8a 100644
--- a/x86_64-w64-mingw32/lib/libcmutil.a
+++ b/x86_64-w64-mingw32/lib/libcmutil.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libcnbjmon.a b/x86_64-w64-mingw32/lib/libcnbjmon.a
index 5444c4f..691373e 100644
--- a/x86_64-w64-mingw32/lib/libcnbjmon.a
+++ b/x86_64-w64-mingw32/lib/libcnbjmon.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libcnetcfg.a b/x86_64-w64-mingw32/lib/libcnetcfg.a
index d7576c6..61b8d50 100644
--- a/x86_64-w64-mingw32/lib/libcnetcfg.a
+++ b/x86_64-w64-mingw32/lib/libcnetcfg.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libcnvfat.a b/x86_64-w64-mingw32/lib/libcnvfat.a
index 50ec339..131b29f 100644
--- a/x86_64-w64-mingw32/lib/libcnvfat.a
+++ b/x86_64-w64-mingw32/lib/libcnvfat.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libcoadmin.a b/x86_64-w64-mingw32/lib/libcoadmin.a
index dd96b54..246e2bc 100644
--- a/x86_64-w64-mingw32/lib/libcoadmin.a
+++ b/x86_64-w64-mingw32/lib/libcoadmin.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libcolbact.a b/x86_64-w64-mingw32/lib/libcolbact.a
index 0fef13e..3df5e18 100644
--- a/x86_64-w64-mingw32/lib/libcolbact.a
+++ b/x86_64-w64-mingw32/lib/libcolbact.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libcomaddin.a b/x86_64-w64-mingw32/lib/libcomaddin.a
index 7ac5ff0..bafcb39 100644
--- a/x86_64-w64-mingw32/lib/libcomaddin.a
+++ b/x86_64-w64-mingw32/lib/libcomaddin.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libcomadmin.a b/x86_64-w64-mingw32/lib/libcomadmin.a
index 568cce1..0811b64 100644
--- a/x86_64-w64-mingw32/lib/libcomadmin.a
+++ b/x86_64-w64-mingw32/lib/libcomadmin.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libcomcat.a b/x86_64-w64-mingw32/lib/libcomcat.a
index 34f9500..24d963c 100644
--- a/x86_64-w64-mingw32/lib/libcomcat.a
+++ b/x86_64-w64-mingw32/lib/libcomcat.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libcomctl32.a b/x86_64-w64-mingw32/lib/libcomctl32.a
index c9ab445..6ff4a4d 100644
--- a/x86_64-w64-mingw32/lib/libcomctl32.a
+++ b/x86_64-w64-mingw32/lib/libcomctl32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libcomdlg32.a b/x86_64-w64-mingw32/lib/libcomdlg32.a
index a9c983b..fff9ee7 100644
--- a/x86_64-w64-mingw32/lib/libcomdlg32.a
+++ b/x86_64-w64-mingw32/lib/libcomdlg32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libcompatui.a b/x86_64-w64-mingw32/lib/libcompatui.a
index ddba7ae..ca98e53 100644
--- a/x86_64-w64-mingw32/lib/libcompatui.a
+++ b/x86_64-w64-mingw32/lib/libcompatui.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libcompstui.a b/x86_64-w64-mingw32/lib/libcompstui.a
index 282e61e..a416a11 100644
--- a/x86_64-w64-mingw32/lib/libcompstui.a
+++ b/x86_64-w64-mingw32/lib/libcompstui.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libcomrepl.a b/x86_64-w64-mingw32/lib/libcomrepl.a
index 09ee368..faa3a86 100644
--- a/x86_64-w64-mingw32/lib/libcomrepl.a
+++ b/x86_64-w64-mingw32/lib/libcomrepl.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libcomres.a b/x86_64-w64-mingw32/lib/libcomres.a
index 59acb0e..8779b21 100644
--- a/x86_64-w64-mingw32/lib/libcomres.a
+++ b/x86_64-w64-mingw32/lib/libcomres.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libcomsetup.a b/x86_64-w64-mingw32/lib/libcomsetup.a
index 2822022..95c89b9 100644
--- a/x86_64-w64-mingw32/lib/libcomsetup.a
+++ b/x86_64-w64-mingw32/lib/libcomsetup.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libcomsnap.a b/x86_64-w64-mingw32/lib/libcomsnap.a
index 24f3e8a..e1c02e2 100644
--- a/x86_64-w64-mingw32/lib/libcomsnap.a
+++ b/x86_64-w64-mingw32/lib/libcomsnap.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libcomsvcs.a b/x86_64-w64-mingw32/lib/libcomsvcs.a
index 2120fde..5be3f1c 100644
--- a/x86_64-w64-mingw32/lib/libcomsvcs.a
+++ b/x86_64-w64-mingw32/lib/libcomsvcs.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libcomuid.a b/x86_64-w64-mingw32/lib/libcomuid.a
index 82dc54d..158998d 100644
--- a/x86_64-w64-mingw32/lib/libcomuid.a
+++ b/x86_64-w64-mingw32/lib/libcomuid.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libconfmsp.a b/x86_64-w64-mingw32/lib/libconfmsp.a
index ac5c41d..3f68431 100644
--- a/x86_64-w64-mingw32/lib/libconfmsp.a
+++ b/x86_64-w64-mingw32/lib/libconfmsp.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libconnect.a b/x86_64-w64-mingw32/lib/libconnect.a
index 5ea9ec9..f62b253 100644
--- a/x86_64-w64-mingw32/lib/libconnect.a
+++ b/x86_64-w64-mingw32/lib/libconnect.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libconsole.a b/x86_64-w64-mingw32/lib/libconsole.a
index 5c0426e..610f31d 100644
--- a/x86_64-w64-mingw32/lib/libconsole.a
+++ b/x86_64-w64-mingw32/lib/libconsole.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libcontrot.a b/x86_64-w64-mingw32/lib/libcontrot.a
index 8ffcef0..ac31c79 100644
--- a/x86_64-w64-mingw32/lib/libcontrot.a
+++ b/x86_64-w64-mingw32/lib/libcontrot.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libcorpol.a b/x86_64-w64-mingw32/lib/libcorpol.a
index a5d15fb..df31a42 100644
--- a/x86_64-w64-mingw32/lib/libcorpol.a
+++ b/x86_64-w64-mingw32/lib/libcorpol.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libcredui.a b/x86_64-w64-mingw32/lib/libcredui.a
index a62c259..9e241bf 100644
--- a/x86_64-w64-mingw32/lib/libcredui.a
+++ b/x86_64-w64-mingw32/lib/libcredui.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libcrtdll.a b/x86_64-w64-mingw32/lib/libcrtdll.a
index 8eea75d..675a56b 100644
--- a/x86_64-w64-mingw32/lib/libcrtdll.a
+++ b/x86_64-w64-mingw32/lib/libcrtdll.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libcrypt32.a b/x86_64-w64-mingw32/lib/libcrypt32.a
index 9818a27..e59129f 100644
--- a/x86_64-w64-mingw32/lib/libcrypt32.a
+++ b/x86_64-w64-mingw32/lib/libcrypt32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libcryptdlg.a b/x86_64-w64-mingw32/lib/libcryptdlg.a
index 0cdb45d..b89bf32 100644
--- a/x86_64-w64-mingw32/lib/libcryptdlg.a
+++ b/x86_64-w64-mingw32/lib/libcryptdlg.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libcryptdll.a b/x86_64-w64-mingw32/lib/libcryptdll.a
index e7f038d..ac1e7dc 100644
--- a/x86_64-w64-mingw32/lib/libcryptdll.a
+++ b/x86_64-w64-mingw32/lib/libcryptdll.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libcryptext.a b/x86_64-w64-mingw32/lib/libcryptext.a
index 60680af..2127d5d 100644
--- a/x86_64-w64-mingw32/lib/libcryptext.a
+++ b/x86_64-w64-mingw32/lib/libcryptext.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libcryptnet.a b/x86_64-w64-mingw32/lib/libcryptnet.a
index 9ebc6de..40ed0a5 100644
--- a/x86_64-w64-mingw32/lib/libcryptnet.a
+++ b/x86_64-w64-mingw32/lib/libcryptnet.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libcryptsp.a b/x86_64-w64-mingw32/lib/libcryptsp.a
index aed9fb2..7d876f5 100644
--- a/x86_64-w64-mingw32/lib/libcryptsp.a
+++ b/x86_64-w64-mingw32/lib/libcryptsp.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libcryptsvc.a b/x86_64-w64-mingw32/lib/libcryptsvc.a
index 5aff5be..62bfce9 100644
--- a/x86_64-w64-mingw32/lib/libcryptsvc.a
+++ b/x86_64-w64-mingw32/lib/libcryptsvc.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libcryptui.a b/x86_64-w64-mingw32/lib/libcryptui.a
index 0c4e369..dc47cfe 100644
--- a/x86_64-w64-mingw32/lib/libcryptui.a
+++ b/x86_64-w64-mingw32/lib/libcryptui.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libcryptxml.a b/x86_64-w64-mingw32/lib/libcryptxml.a
index 9ca0cbc..bcf75a4 100644
--- a/x86_64-w64-mingw32/lib/libcryptxml.a
+++ b/x86_64-w64-mingw32/lib/libcryptxml.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libcscapi.a b/x86_64-w64-mingw32/lib/libcscapi.a
index 460f6aa..4584d6a 100644
--- a/x86_64-w64-mingw32/lib/libcscapi.a
+++ b/x86_64-w64-mingw32/lib/libcscapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libcscdll.a b/x86_64-w64-mingw32/lib/libcscdll.a
index 655a4bd..1dd96e9 100644
--- a/x86_64-w64-mingw32/lib/libcscdll.a
+++ b/x86_64-w64-mingw32/lib/libcscdll.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libcscui.a b/x86_64-w64-mingw32/lib/libcscui.a
index 8660ac0..7a77540 100644
--- a/x86_64-w64-mingw32/lib/libcscui.a
+++ b/x86_64-w64-mingw32/lib/libcscui.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libcsrsrv.a b/x86_64-w64-mingw32/lib/libcsrsrv.a
index 6403430..8917e42 100644
--- a/x86_64-w64-mingw32/lib/libcsrsrv.a
+++ b/x86_64-w64-mingw32/lib/libcsrsrv.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libd2d1.a b/x86_64-w64-mingw32/lib/libd2d1.a
index 8a8531d..9ec5ba5 100644
--- a/x86_64-w64-mingw32/lib/libd2d1.a
+++ b/x86_64-w64-mingw32/lib/libd2d1.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libd3d11.a b/x86_64-w64-mingw32/lib/libd3d11.a
index c6f7015..808ec00 100644
--- a/x86_64-w64-mingw32/lib/libd3d11.a
+++ b/x86_64-w64-mingw32/lib/libd3d11.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libd3d8thk.a b/x86_64-w64-mingw32/lib/libd3d8thk.a
index a60c451..1e958f4 100644
--- a/x86_64-w64-mingw32/lib/libd3d8thk.a
+++ b/x86_64-w64-mingw32/lib/libd3d8thk.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libd3d9.a b/x86_64-w64-mingw32/lib/libd3d9.a
index 448bdc8..543660e 100644
--- a/x86_64-w64-mingw32/lib/libd3d9.a
+++ b/x86_64-w64-mingw32/lib/libd3d9.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libd3dcompiler.a b/x86_64-w64-mingw32/lib/libd3dcompiler.a
index 86c6504..ea09086 100644
--- a/x86_64-w64-mingw32/lib/libd3dcompiler.a
+++ b/x86_64-w64-mingw32/lib/libd3dcompiler.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libd3dcompiler_33.a b/x86_64-w64-mingw32/lib/libd3dcompiler_33.a
index c50b95b..8b142ce 100644
--- a/x86_64-w64-mingw32/lib/libd3dcompiler_33.a
+++ b/x86_64-w64-mingw32/lib/libd3dcompiler_33.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libd3dcompiler_34.a b/x86_64-w64-mingw32/lib/libd3dcompiler_34.a
index c4ce8ad..7e83e69 100644
--- a/x86_64-w64-mingw32/lib/libd3dcompiler_34.a
+++ b/x86_64-w64-mingw32/lib/libd3dcompiler_34.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libd3dcompiler_35.a b/x86_64-w64-mingw32/lib/libd3dcompiler_35.a
index f84e00b..fad7941 100644
--- a/x86_64-w64-mingw32/lib/libd3dcompiler_35.a
+++ b/x86_64-w64-mingw32/lib/libd3dcompiler_35.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libd3dcompiler_36.a b/x86_64-w64-mingw32/lib/libd3dcompiler_36.a
index 4e66800..234dec4 100644
--- a/x86_64-w64-mingw32/lib/libd3dcompiler_36.a
+++ b/x86_64-w64-mingw32/lib/libd3dcompiler_36.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libd3dcompiler_37.a b/x86_64-w64-mingw32/lib/libd3dcompiler_37.a
index 1739c06..d955a18 100644
--- a/x86_64-w64-mingw32/lib/libd3dcompiler_37.a
+++ b/x86_64-w64-mingw32/lib/libd3dcompiler_37.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libd3dcompiler_38.a b/x86_64-w64-mingw32/lib/libd3dcompiler_38.a
index d6feab4..e2f3c3e 100644
--- a/x86_64-w64-mingw32/lib/libd3dcompiler_38.a
+++ b/x86_64-w64-mingw32/lib/libd3dcompiler_38.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libd3dcompiler_39.a b/x86_64-w64-mingw32/lib/libd3dcompiler_39.a
index 7a733f9..55e66fe 100644
--- a/x86_64-w64-mingw32/lib/libd3dcompiler_39.a
+++ b/x86_64-w64-mingw32/lib/libd3dcompiler_39.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libd3dcompiler_40.a b/x86_64-w64-mingw32/lib/libd3dcompiler_40.a
index e9a0f53..d886c6c 100644
--- a/x86_64-w64-mingw32/lib/libd3dcompiler_40.a
+++ b/x86_64-w64-mingw32/lib/libd3dcompiler_40.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libd3dcompiler_41.a b/x86_64-w64-mingw32/lib/libd3dcompiler_41.a
index 25a4914..dfc8f1d 100644
--- a/x86_64-w64-mingw32/lib/libd3dcompiler_41.a
+++ b/x86_64-w64-mingw32/lib/libd3dcompiler_41.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libd3dcompiler_42.a b/x86_64-w64-mingw32/lib/libd3dcompiler_42.a
index 895e115..e136ef0 100644
--- a/x86_64-w64-mingw32/lib/libd3dcompiler_42.a
+++ b/x86_64-w64-mingw32/lib/libd3dcompiler_42.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libd3dcompiler_43.a b/x86_64-w64-mingw32/lib/libd3dcompiler_43.a
index 76c3eea..89dbc5b 100644
--- a/x86_64-w64-mingw32/lib/libd3dcompiler_43.a
+++ b/x86_64-w64-mingw32/lib/libd3dcompiler_43.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libd3dcompiler_46.a b/x86_64-w64-mingw32/lib/libd3dcompiler_46.a
index a3518f5..8996eac 100644
--- a/x86_64-w64-mingw32/lib/libd3dcompiler_46.a
+++ b/x86_64-w64-mingw32/lib/libd3dcompiler_46.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libd3dcompiler_47.a b/x86_64-w64-mingw32/lib/libd3dcompiler_47.a
index 80fb7ec..06b1c9e 100644
--- a/x86_64-w64-mingw32/lib/libd3dcompiler_47.a
+++ b/x86_64-w64-mingw32/lib/libd3dcompiler_47.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libd3dcsx_46.a b/x86_64-w64-mingw32/lib/libd3dcsx_46.a
index 1768aab..1feb982 100644
--- a/x86_64-w64-mingw32/lib/libd3dcsx_46.a
+++ b/x86_64-w64-mingw32/lib/libd3dcsx_46.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libd3dcsxd.a b/x86_64-w64-mingw32/lib/libd3dcsxd.a
index 21858bd..10a7e86 100644
--- a/x86_64-w64-mingw32/lib/libd3dcsxd.a
+++ b/x86_64-w64-mingw32/lib/libd3dcsxd.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libd3dcsxd_43.a b/x86_64-w64-mingw32/lib/libd3dcsxd_43.a
index c8132ab..b8aa282 100644
--- a/x86_64-w64-mingw32/lib/libd3dcsxd_43.a
+++ b/x86_64-w64-mingw32/lib/libd3dcsxd_43.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libd3dx10.a b/x86_64-w64-mingw32/lib/libd3dx10.a
index 906bea9..e0e24c7 100644
--- a/x86_64-w64-mingw32/lib/libd3dx10.a
+++ b/x86_64-w64-mingw32/lib/libd3dx10.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libd3dx10_33.a b/x86_64-w64-mingw32/lib/libd3dx10_33.a
index c80b1e4..8850203 100644
--- a/x86_64-w64-mingw32/lib/libd3dx10_33.a
+++ b/x86_64-w64-mingw32/lib/libd3dx10_33.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libd3dx10_34.a b/x86_64-w64-mingw32/lib/libd3dx10_34.a
index 2e0b5d4..651397a 100644
--- a/x86_64-w64-mingw32/lib/libd3dx10_34.a
+++ b/x86_64-w64-mingw32/lib/libd3dx10_34.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libd3dx10_35.a b/x86_64-w64-mingw32/lib/libd3dx10_35.a
index 1f05131..38b9abc 100644
--- a/x86_64-w64-mingw32/lib/libd3dx10_35.a
+++ b/x86_64-w64-mingw32/lib/libd3dx10_35.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libd3dx10_36.a b/x86_64-w64-mingw32/lib/libd3dx10_36.a
index 82bf21b..506b0b5 100644
--- a/x86_64-w64-mingw32/lib/libd3dx10_36.a
+++ b/x86_64-w64-mingw32/lib/libd3dx10_36.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libd3dx10_37.a b/x86_64-w64-mingw32/lib/libd3dx10_37.a
index 642f8b2..326ed49 100644
--- a/x86_64-w64-mingw32/lib/libd3dx10_37.a
+++ b/x86_64-w64-mingw32/lib/libd3dx10_37.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libd3dx10_38.a b/x86_64-w64-mingw32/lib/libd3dx10_38.a
index 1c190ee..4f5e7df 100644
--- a/x86_64-w64-mingw32/lib/libd3dx10_38.a
+++ b/x86_64-w64-mingw32/lib/libd3dx10_38.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libd3dx10_39.a b/x86_64-w64-mingw32/lib/libd3dx10_39.a
index 1fed4d6..c4c256a 100644
--- a/x86_64-w64-mingw32/lib/libd3dx10_39.a
+++ b/x86_64-w64-mingw32/lib/libd3dx10_39.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libd3dx10_40.a b/x86_64-w64-mingw32/lib/libd3dx10_40.a
index 1ed4e9c..6b3e75a 100644
--- a/x86_64-w64-mingw32/lib/libd3dx10_40.a
+++ b/x86_64-w64-mingw32/lib/libd3dx10_40.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libd3dx10_41.a b/x86_64-w64-mingw32/lib/libd3dx10_41.a
index 59241b8..ee6084b 100644
--- a/x86_64-w64-mingw32/lib/libd3dx10_41.a
+++ b/x86_64-w64-mingw32/lib/libd3dx10_41.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libd3dx10_42.a b/x86_64-w64-mingw32/lib/libd3dx10_42.a
index c7497ed..6f925f9 100644
--- a/x86_64-w64-mingw32/lib/libd3dx10_42.a
+++ b/x86_64-w64-mingw32/lib/libd3dx10_42.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libd3dx10_43.a b/x86_64-w64-mingw32/lib/libd3dx10_43.a
index cac6308..ca13fb1 100644
--- a/x86_64-w64-mingw32/lib/libd3dx10_43.a
+++ b/x86_64-w64-mingw32/lib/libd3dx10_43.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libd3dx11.a b/x86_64-w64-mingw32/lib/libd3dx11.a
index 2594195..60f0b97 100644
--- a/x86_64-w64-mingw32/lib/libd3dx11.a
+++ b/x86_64-w64-mingw32/lib/libd3dx11.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libd3dx11_42.a b/x86_64-w64-mingw32/lib/libd3dx11_42.a
index 035ed91..664128d 100644
--- a/x86_64-w64-mingw32/lib/libd3dx11_42.a
+++ b/x86_64-w64-mingw32/lib/libd3dx11_42.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libd3dx11_43.a b/x86_64-w64-mingw32/lib/libd3dx11_43.a
index 783bc02..67140b9 100644
--- a/x86_64-w64-mingw32/lib/libd3dx11_43.a
+++ b/x86_64-w64-mingw32/lib/libd3dx11_43.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libd3dx9.a b/x86_64-w64-mingw32/lib/libd3dx9.a
index fd92388..2999521 100644
--- a/x86_64-w64-mingw32/lib/libd3dx9.a
+++ b/x86_64-w64-mingw32/lib/libd3dx9.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libd3dx9_24.a b/x86_64-w64-mingw32/lib/libd3dx9_24.a
index e2be013..c61f528 100644
--- a/x86_64-w64-mingw32/lib/libd3dx9_24.a
+++ b/x86_64-w64-mingw32/lib/libd3dx9_24.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libd3dx9_25.a b/x86_64-w64-mingw32/lib/libd3dx9_25.a
index 50cf243..1c2e156 100644
--- a/x86_64-w64-mingw32/lib/libd3dx9_25.a
+++ b/x86_64-w64-mingw32/lib/libd3dx9_25.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libd3dx9_26.a b/x86_64-w64-mingw32/lib/libd3dx9_26.a
index 77c5520..3c7f29f 100644
--- a/x86_64-w64-mingw32/lib/libd3dx9_26.a
+++ b/x86_64-w64-mingw32/lib/libd3dx9_26.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libd3dx9_27.a b/x86_64-w64-mingw32/lib/libd3dx9_27.a
index b275b6c..c6a5dab 100644
--- a/x86_64-w64-mingw32/lib/libd3dx9_27.a
+++ b/x86_64-w64-mingw32/lib/libd3dx9_27.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libd3dx9_28.a b/x86_64-w64-mingw32/lib/libd3dx9_28.a
index 53375c2..239c9bd 100644
--- a/x86_64-w64-mingw32/lib/libd3dx9_28.a
+++ b/x86_64-w64-mingw32/lib/libd3dx9_28.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libd3dx9_29.a b/x86_64-w64-mingw32/lib/libd3dx9_29.a
index 6dd4252..f24acdf 100644
--- a/x86_64-w64-mingw32/lib/libd3dx9_29.a
+++ b/x86_64-w64-mingw32/lib/libd3dx9_29.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libd3dx9_30.a b/x86_64-w64-mingw32/lib/libd3dx9_30.a
index 9c46965..c346953 100644
--- a/x86_64-w64-mingw32/lib/libd3dx9_30.a
+++ b/x86_64-w64-mingw32/lib/libd3dx9_30.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libd3dx9_31.a b/x86_64-w64-mingw32/lib/libd3dx9_31.a
index e070be2..8e2a3b2 100644
--- a/x86_64-w64-mingw32/lib/libd3dx9_31.a
+++ b/x86_64-w64-mingw32/lib/libd3dx9_31.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libd3dx9_32.a b/x86_64-w64-mingw32/lib/libd3dx9_32.a
index 60f0f00..ae2bbe2 100644
--- a/x86_64-w64-mingw32/lib/libd3dx9_32.a
+++ b/x86_64-w64-mingw32/lib/libd3dx9_32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libd3dx9_33.a b/x86_64-w64-mingw32/lib/libd3dx9_33.a
index 75ed597..2485a81 100644
--- a/x86_64-w64-mingw32/lib/libd3dx9_33.a
+++ b/x86_64-w64-mingw32/lib/libd3dx9_33.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libd3dx9_34.a b/x86_64-w64-mingw32/lib/libd3dx9_34.a
index 484100a..8d49fe5 100644
--- a/x86_64-w64-mingw32/lib/libd3dx9_34.a
+++ b/x86_64-w64-mingw32/lib/libd3dx9_34.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libd3dx9_35.a b/x86_64-w64-mingw32/lib/libd3dx9_35.a
index 0a66b6c..4a5933d 100644
--- a/x86_64-w64-mingw32/lib/libd3dx9_35.a
+++ b/x86_64-w64-mingw32/lib/libd3dx9_35.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libd3dx9_36.a b/x86_64-w64-mingw32/lib/libd3dx9_36.a
index 38a6481..da9f10b 100644
--- a/x86_64-w64-mingw32/lib/libd3dx9_36.a
+++ b/x86_64-w64-mingw32/lib/libd3dx9_36.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libd3dx9_37.a b/x86_64-w64-mingw32/lib/libd3dx9_37.a
index 1e88dee..db312e7 100644
--- a/x86_64-w64-mingw32/lib/libd3dx9_37.a
+++ b/x86_64-w64-mingw32/lib/libd3dx9_37.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libd3dx9_38.a b/x86_64-w64-mingw32/lib/libd3dx9_38.a
index a717af4..be00815 100644
--- a/x86_64-w64-mingw32/lib/libd3dx9_38.a
+++ b/x86_64-w64-mingw32/lib/libd3dx9_38.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libd3dx9_39.a b/x86_64-w64-mingw32/lib/libd3dx9_39.a
index aaf4bba..db3df70 100644
--- a/x86_64-w64-mingw32/lib/libd3dx9_39.a
+++ b/x86_64-w64-mingw32/lib/libd3dx9_39.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libd3dx9_40.a b/x86_64-w64-mingw32/lib/libd3dx9_40.a
index 2cc299e..6da00bc 100644
--- a/x86_64-w64-mingw32/lib/libd3dx9_40.a
+++ b/x86_64-w64-mingw32/lib/libd3dx9_40.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libd3dx9_41.a b/x86_64-w64-mingw32/lib/libd3dx9_41.a
index 977a3b4..0a884b6 100644
--- a/x86_64-w64-mingw32/lib/libd3dx9_41.a
+++ b/x86_64-w64-mingw32/lib/libd3dx9_41.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libd3dx9_42.a b/x86_64-w64-mingw32/lib/libd3dx9_42.a
index 5f5b70f..0aa0c05 100644
--- a/x86_64-w64-mingw32/lib/libd3dx9_42.a
+++ b/x86_64-w64-mingw32/lib/libd3dx9_42.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libd3dx9_43.a b/x86_64-w64-mingw32/lib/libd3dx9_43.a
index 2e5dd01..39b5c74 100644
--- a/x86_64-w64-mingw32/lib/libd3dx9_43.a
+++ b/x86_64-w64-mingw32/lib/libd3dx9_43.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libd3dxof.a b/x86_64-w64-mingw32/lib/libd3dxof.a
index 520f30f..5411d77 100644
--- a/x86_64-w64-mingw32/lib/libd3dxof.a
+++ b/x86_64-w64-mingw32/lib/libd3dxof.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdanim.a b/x86_64-w64-mingw32/lib/libdanim.a
index 284c89e..b913727 100644
--- a/x86_64-w64-mingw32/lib/libdanim.a
+++ b/x86_64-w64-mingw32/lib/libdanim.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdataclen.a b/x86_64-w64-mingw32/lib/libdataclen.a
index adff8e5..36c2ccd 100644
--- a/x86_64-w64-mingw32/lib/libdataclen.a
+++ b/x86_64-w64-mingw32/lib/libdataclen.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdatime.a b/x86_64-w64-mingw32/lib/libdatime.a
index 14f3624..9f73a98 100644
--- a/x86_64-w64-mingw32/lib/libdatime.a
+++ b/x86_64-w64-mingw32/lib/libdatime.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdavclnt.a b/x86_64-w64-mingw32/lib/libdavclnt.a
index 48280d1..264e167 100644
--- a/x86_64-w64-mingw32/lib/libdavclnt.a
+++ b/x86_64-w64-mingw32/lib/libdavclnt.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdavcprox.a b/x86_64-w64-mingw32/lib/libdavcprox.a
index ef2d6db..61b189f 100644
--- a/x86_64-w64-mingw32/lib/libdavcprox.a
+++ b/x86_64-w64-mingw32/lib/libdavcprox.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdbgeng.a b/x86_64-w64-mingw32/lib/libdbgeng.a
index 6a4e98e..39889a0 100644
--- a/x86_64-w64-mingw32/lib/libdbgeng.a
+++ b/x86_64-w64-mingw32/lib/libdbgeng.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdbghelp.a b/x86_64-w64-mingw32/lib/libdbghelp.a
index b0af495..1231d8a 100644
--- a/x86_64-w64-mingw32/lib/libdbghelp.a
+++ b/x86_64-w64-mingw32/lib/libdbghelp.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdbnetlib.a b/x86_64-w64-mingw32/lib/libdbnetlib.a
index e6d356c..3e32128 100644
--- a/x86_64-w64-mingw32/lib/libdbnetlib.a
+++ b/x86_64-w64-mingw32/lib/libdbnetlib.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdbnmpntw.a b/x86_64-w64-mingw32/lib/libdbnmpntw.a
index 71b37f9..0df43ca 100644
--- a/x86_64-w64-mingw32/lib/libdbnmpntw.a
+++ b/x86_64-w64-mingw32/lib/libdbnmpntw.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdciman32.a b/x86_64-w64-mingw32/lib/libdciman32.a
index b36c0e8..d4b3653 100644
--- a/x86_64-w64-mingw32/lib/libdciman32.a
+++ b/x86_64-w64-mingw32/lib/libdciman32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libddraw.a b/x86_64-w64-mingw32/lib/libddraw.a
index 3d6f230..c69c97e 100644
--- a/x86_64-w64-mingw32/lib/libddraw.a
+++ b/x86_64-w64-mingw32/lib/libddraw.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libddrawex.a b/x86_64-w64-mingw32/lib/libddrawex.a
index 27e1671..bdcafaf 100644
--- a/x86_64-w64-mingw32/lib/libddrawex.a
+++ b/x86_64-w64-mingw32/lib/libddrawex.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdeskadp.a b/x86_64-w64-mingw32/lib/libdeskadp.a
index 0343501..0782880 100644
--- a/x86_64-w64-mingw32/lib/libdeskadp.a
+++ b/x86_64-w64-mingw32/lib/libdeskadp.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdeskmon.a b/x86_64-w64-mingw32/lib/libdeskmon.a
index c61f2d7..2f6b12d 100644
--- a/x86_64-w64-mingw32/lib/libdeskmon.a
+++ b/x86_64-w64-mingw32/lib/libdeskmon.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdeskperf.a b/x86_64-w64-mingw32/lib/libdeskperf.a
index 2a7c5a0..daf4bb5 100644
--- a/x86_64-w64-mingw32/lib/libdeskperf.a
+++ b/x86_64-w64-mingw32/lib/libdeskperf.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdevenum.a b/x86_64-w64-mingw32/lib/libdevenum.a
index 18fe9fb..3099c5b 100644
--- a/x86_64-w64-mingw32/lib/libdevenum.a
+++ b/x86_64-w64-mingw32/lib/libdevenum.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdevmgr.a b/x86_64-w64-mingw32/lib/libdevmgr.a
index ccc5856..121dd40 100644
--- a/x86_64-w64-mingw32/lib/libdevmgr.a
+++ b/x86_64-w64-mingw32/lib/libdevmgr.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdevobj.a b/x86_64-w64-mingw32/lib/libdevobj.a
index 3c391c0..83b4b82 100644
--- a/x86_64-w64-mingw32/lib/libdevobj.a
+++ b/x86_64-w64-mingw32/lib/libdevobj.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdevrtl.a b/x86_64-w64-mingw32/lib/libdevrtl.a
index 561d0ea..4f5f1ee 100644
--- a/x86_64-w64-mingw32/lib/libdevrtl.a
+++ b/x86_64-w64-mingw32/lib/libdevrtl.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdfrgifps.a b/x86_64-w64-mingw32/lib/libdfrgifps.a
index 6e007e7..595cd4e 100644
--- a/x86_64-w64-mingw32/lib/libdfrgifps.a
+++ b/x86_64-w64-mingw32/lib/libdfrgifps.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdfrgsnap.a b/x86_64-w64-mingw32/lib/libdfrgsnap.a
index 6cdc63c..59ca93f 100644
--- a/x86_64-w64-mingw32/lib/libdfrgsnap.a
+++ b/x86_64-w64-mingw32/lib/libdfrgsnap.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdfrgui.a b/x86_64-w64-mingw32/lib/libdfrgui.a
index ad315c5..ad902a8 100644
--- a/x86_64-w64-mingw32/lib/libdfrgui.a
+++ b/x86_64-w64-mingw32/lib/libdfrgui.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdfsshlex.a b/x86_64-w64-mingw32/lib/libdfsshlex.a
index 36e2c63..3696153 100644
--- a/x86_64-w64-mingw32/lib/libdfsshlex.a
+++ b/x86_64-w64-mingw32/lib/libdfsshlex.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdgnet.a b/x86_64-w64-mingw32/lib/libdgnet.a
index 0c0dbef..2ea9b3e 100644
--- a/x86_64-w64-mingw32/lib/libdgnet.a
+++ b/x86_64-w64-mingw32/lib/libdgnet.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdhcpcsvc.a b/x86_64-w64-mingw32/lib/libdhcpcsvc.a
index 5e4e0ad..2d67400 100644
--- a/x86_64-w64-mingw32/lib/libdhcpcsvc.a
+++ b/x86_64-w64-mingw32/lib/libdhcpcsvc.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdhcpcsvc6.a b/x86_64-w64-mingw32/lib/libdhcpcsvc6.a
index 5bcfd4e..768f63d 100644
--- a/x86_64-w64-mingw32/lib/libdhcpcsvc6.a
+++ b/x86_64-w64-mingw32/lib/libdhcpcsvc6.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdhcpmon.a b/x86_64-w64-mingw32/lib/libdhcpmon.a
index a9179e7..f19f772 100644
--- a/x86_64-w64-mingw32/lib/libdhcpmon.a
+++ b/x86_64-w64-mingw32/lib/libdhcpmon.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdhcpsapi.a b/x86_64-w64-mingw32/lib/libdhcpsapi.a
index 11eedd7..581c095 100644
--- a/x86_64-w64-mingw32/lib/libdhcpsapi.a
+++ b/x86_64-w64-mingw32/lib/libdhcpsapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdiactfrm.a b/x86_64-w64-mingw32/lib/libdiactfrm.a
index f657db3..06a5bc3 100644
--- a/x86_64-w64-mingw32/lib/libdiactfrm.a
+++ b/x86_64-w64-mingw32/lib/libdiactfrm.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdigest.a b/x86_64-w64-mingw32/lib/libdigest.a
index 08bc6f2..3969ce2 100644
--- a/x86_64-w64-mingw32/lib/libdigest.a
+++ b/x86_64-w64-mingw32/lib/libdigest.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdimap.a b/x86_64-w64-mingw32/lib/libdimap.a
index d22aaed..abedfcc 100644
--- a/x86_64-w64-mingw32/lib/libdimap.a
+++ b/x86_64-w64-mingw32/lib/libdimap.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdimsntfy.a b/x86_64-w64-mingw32/lib/libdimsntfy.a
index 9b12303..4ebe368 100644
--- a/x86_64-w64-mingw32/lib/libdimsntfy.a
+++ b/x86_64-w64-mingw32/lib/libdimsntfy.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdimsroam.a b/x86_64-w64-mingw32/lib/libdimsroam.a
index d4886d8..0ab98b4 100644
--- a/x86_64-w64-mingw32/lib/libdimsroam.a
+++ b/x86_64-w64-mingw32/lib/libdimsroam.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdinput.a b/x86_64-w64-mingw32/lib/libdinput.a
index 76d97dd..5fed1f7 100644
--- a/x86_64-w64-mingw32/lib/libdinput.a
+++ b/x86_64-w64-mingw32/lib/libdinput.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdinput8.a b/x86_64-w64-mingw32/lib/libdinput8.a
index 611d400..b9ccfe7 100644
--- a/x86_64-w64-mingw32/lib/libdinput8.a
+++ b/x86_64-w64-mingw32/lib/libdinput8.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdirectdb.a b/x86_64-w64-mingw32/lib/libdirectdb.a
index 83b89b7..0e60544 100644
--- a/x86_64-w64-mingw32/lib/libdirectdb.a
+++ b/x86_64-w64-mingw32/lib/libdirectdb.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdiskcopy.a b/x86_64-w64-mingw32/lib/libdiskcopy.a
index 99e71b2..92b2e25 100644
--- a/x86_64-w64-mingw32/lib/libdiskcopy.a
+++ b/x86_64-w64-mingw32/lib/libdiskcopy.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdispex.a b/x86_64-w64-mingw32/lib/libdispex.a
index 6f6f348..b225c3d 100644
--- a/x86_64-w64-mingw32/lib/libdispex.a
+++ b/x86_64-w64-mingw32/lib/libdispex.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdmconfig.a b/x86_64-w64-mingw32/lib/libdmconfig.a
index fe7a885..8d49d03 100644
--- a/x86_64-w64-mingw32/lib/libdmconfig.a
+++ b/x86_64-w64-mingw32/lib/libdmconfig.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdmdlgs.a b/x86_64-w64-mingw32/lib/libdmdlgs.a
index dd3016c..ff2dd6b 100644
--- a/x86_64-w64-mingw32/lib/libdmdlgs.a
+++ b/x86_64-w64-mingw32/lib/libdmdlgs.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdmdskmgr.a b/x86_64-w64-mingw32/lib/libdmdskmgr.a
index 6c4af7d..bc65585 100644
--- a/x86_64-w64-mingw32/lib/libdmdskmgr.a
+++ b/x86_64-w64-mingw32/lib/libdmdskmgr.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdmintf.a b/x86_64-w64-mingw32/lib/libdmintf.a
index 1d0af49..4ad0e19 100644
--- a/x86_64-w64-mingw32/lib/libdmintf.a
+++ b/x86_64-w64-mingw32/lib/libdmintf.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdmivcitf.a b/x86_64-w64-mingw32/lib/libdmivcitf.a
index 7f379d2..e858cde 100644
--- a/x86_64-w64-mingw32/lib/libdmivcitf.a
+++ b/x86_64-w64-mingw32/lib/libdmivcitf.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdmocx.a b/x86_64-w64-mingw32/lib/libdmocx.a
index a34a58a..37e621c 100644
--- a/x86_64-w64-mingw32/lib/libdmocx.a
+++ b/x86_64-w64-mingw32/lib/libdmocx.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdmoguids.a b/x86_64-w64-mingw32/lib/libdmoguids.a
index e604df2..df3c984 100644
--- a/x86_64-w64-mingw32/lib/libdmoguids.a
+++ b/x86_64-w64-mingw32/lib/libdmoguids.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdmserver.a b/x86_64-w64-mingw32/lib/libdmserver.a
index dc227b8..f88e4fd 100644
--- a/x86_64-w64-mingw32/lib/libdmserver.a
+++ b/x86_64-w64-mingw32/lib/libdmserver.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdmutil.a b/x86_64-w64-mingw32/lib/libdmutil.a
index 03bd615..2014a57 100644
--- a/x86_64-w64-mingw32/lib/libdmutil.a
+++ b/x86_64-w64-mingw32/lib/libdmutil.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdmvdsitf.a b/x86_64-w64-mingw32/lib/libdmvdsitf.a
index a3dcc28..d311a2c 100644
--- a/x86_64-w64-mingw32/lib/libdmvdsitf.a
+++ b/x86_64-w64-mingw32/lib/libdmvdsitf.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdnsapi.a b/x86_64-w64-mingw32/lib/libdnsapi.a
index c8fadf8..ad7bfc9 100644
--- a/x86_64-w64-mingw32/lib/libdnsapi.a
+++ b/x86_64-w64-mingw32/lib/libdnsapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdnsrslvr.a b/x86_64-w64-mingw32/lib/libdnsrslvr.a
index 3abaa1c..1fed137 100644
--- a/x86_64-w64-mingw32/lib/libdnsrslvr.a
+++ b/x86_64-w64-mingw32/lib/libdnsrslvr.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdocprop.a b/x86_64-w64-mingw32/lib/libdocprop.a
index ec52967..988be36 100644
--- a/x86_64-w64-mingw32/lib/libdocprop.a
+++ b/x86_64-w64-mingw32/lib/libdocprop.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdocprop2.a b/x86_64-w64-mingw32/lib/libdocprop2.a
index 28a10ec..95a8336 100644
--- a/x86_64-w64-mingw32/lib/libdocprop2.a
+++ b/x86_64-w64-mingw32/lib/libdocprop2.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdpnaddr.a b/x86_64-w64-mingw32/lib/libdpnaddr.a
index f5baa09..3b3ca63 100644
--- a/x86_64-w64-mingw32/lib/libdpnaddr.a
+++ b/x86_64-w64-mingw32/lib/libdpnaddr.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdpnet.a b/x86_64-w64-mingw32/lib/libdpnet.a
index 95b5887..a58d3cf 100644
--- a/x86_64-w64-mingw32/lib/libdpnet.a
+++ b/x86_64-w64-mingw32/lib/libdpnet.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdpnhpast.a b/x86_64-w64-mingw32/lib/libdpnhpast.a
index 930f3ce..6d7197c 100644
--- a/x86_64-w64-mingw32/lib/libdpnhpast.a
+++ b/x86_64-w64-mingw32/lib/libdpnhpast.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdpnhupnp.a b/x86_64-w64-mingw32/lib/libdpnhupnp.a
index 6988312..0ebae7e 100644
--- a/x86_64-w64-mingw32/lib/libdpnhupnp.a
+++ b/x86_64-w64-mingw32/lib/libdpnhupnp.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdpnlobby.a b/x86_64-w64-mingw32/lib/libdpnlobby.a
index 9ce5887..e077523 100644
--- a/x86_64-w64-mingw32/lib/libdpnlobby.a
+++ b/x86_64-w64-mingw32/lib/libdpnlobby.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdpvacm.a b/x86_64-w64-mingw32/lib/libdpvacm.a
index 7658710..9dc23aa 100644
--- a/x86_64-w64-mingw32/lib/libdpvacm.a
+++ b/x86_64-w64-mingw32/lib/libdpvacm.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdpvoice.a b/x86_64-w64-mingw32/lib/libdpvoice.a
index 314c80c..8742d04 100644
--- a/x86_64-w64-mingw32/lib/libdpvoice.a
+++ b/x86_64-w64-mingw32/lib/libdpvoice.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdpvvox.a b/x86_64-w64-mingw32/lib/libdpvvox.a
index 9babb3d..551f87f 100644
--- a/x86_64-w64-mingw32/lib/libdpvvox.a
+++ b/x86_64-w64-mingw32/lib/libdpvvox.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdrprov.a b/x86_64-w64-mingw32/lib/libdrprov.a
index 0114039..5085c5b 100644
--- a/x86_64-w64-mingw32/lib/libdrprov.a
+++ b/x86_64-w64-mingw32/lib/libdrprov.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libds32gt.a b/x86_64-w64-mingw32/lib/libds32gt.a
index 54119e2..a3c7b9e 100644
--- a/x86_64-w64-mingw32/lib/libds32gt.a
+++ b/x86_64-w64-mingw32/lib/libds32gt.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdsauth.a b/x86_64-w64-mingw32/lib/libdsauth.a
index 045bde5..ca9433a 100644
--- a/x86_64-w64-mingw32/lib/libdsauth.a
+++ b/x86_64-w64-mingw32/lib/libdsauth.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdsdmo.a b/x86_64-w64-mingw32/lib/libdsdmo.a
index 2e0732c..beff391 100644
--- a/x86_64-w64-mingw32/lib/libdsdmo.a
+++ b/x86_64-w64-mingw32/lib/libdsdmo.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdsdmoprp.a b/x86_64-w64-mingw32/lib/libdsdmoprp.a
index 1ca3dbe..12ff5bf 100644
--- a/x86_64-w64-mingw32/lib/libdsdmoprp.a
+++ b/x86_64-w64-mingw32/lib/libdsdmoprp.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdskquota.a b/x86_64-w64-mingw32/lib/libdskquota.a
index 8d59bed..e6d1840 100644
--- a/x86_64-w64-mingw32/lib/libdskquota.a
+++ b/x86_64-w64-mingw32/lib/libdskquota.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdskquoui.a b/x86_64-w64-mingw32/lib/libdskquoui.a
index c567ece..39e2bbc 100644
--- a/x86_64-w64-mingw32/lib/libdskquoui.a
+++ b/x86_64-w64-mingw32/lib/libdskquoui.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdsound.a b/x86_64-w64-mingw32/lib/libdsound.a
index b215423..d26530a 100644
--- a/x86_64-w64-mingw32/lib/libdsound.a
+++ b/x86_64-w64-mingw32/lib/libdsound.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdsound3d.a b/x86_64-w64-mingw32/lib/libdsound3d.a
index a6d1201..3267786 100644
--- a/x86_64-w64-mingw32/lib/libdsound3d.a
+++ b/x86_64-w64-mingw32/lib/libdsound3d.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdsprop.a b/x86_64-w64-mingw32/lib/libdsprop.a
index 2cda57f..fab3ea5 100644
--- a/x86_64-w64-mingw32/lib/libdsprop.a
+++ b/x86_64-w64-mingw32/lib/libdsprop.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdsprov.a b/x86_64-w64-mingw32/lib/libdsprov.a
index c606fa2..7d302da 100644
--- a/x86_64-w64-mingw32/lib/libdsprov.a
+++ b/x86_64-w64-mingw32/lib/libdsprov.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdsquery.a b/x86_64-w64-mingw32/lib/libdsquery.a
index 9e76a1c..18946de 100644
--- a/x86_64-w64-mingw32/lib/libdsquery.a
+++ b/x86_64-w64-mingw32/lib/libdsquery.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdssec.a b/x86_64-w64-mingw32/lib/libdssec.a
index a0b8a90..992ffd7 100644
--- a/x86_64-w64-mingw32/lib/libdssec.a
+++ b/x86_64-w64-mingw32/lib/libdssec.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdssenh.a b/x86_64-w64-mingw32/lib/libdssenh.a
index a58bb25..0c9793d 100644
--- a/x86_64-w64-mingw32/lib/libdssenh.a
+++ b/x86_64-w64-mingw32/lib/libdssenh.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdsuiext.a b/x86_64-w64-mingw32/lib/libdsuiext.a
index d2e0483..946cd60 100644
--- a/x86_64-w64-mingw32/lib/libdsuiext.a
+++ b/x86_64-w64-mingw32/lib/libdsuiext.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libduser.a b/x86_64-w64-mingw32/lib/libduser.a
index d636a94..bc3f46a 100644
--- a/x86_64-w64-mingw32/lib/libduser.a
+++ b/x86_64-w64-mingw32/lib/libduser.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdwmapi.a b/x86_64-w64-mingw32/lib/libdwmapi.a
index 76e80ed..ee703ba 100644
--- a/x86_64-w64-mingw32/lib/libdwmapi.a
+++ b/x86_64-w64-mingw32/lib/libdwmapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdwrite.a b/x86_64-w64-mingw32/lib/libdwrite.a
index ba87f2e..990ba38 100644
--- a/x86_64-w64-mingw32/lib/libdwrite.a
+++ b/x86_64-w64-mingw32/lib/libdwrite.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdxdiagn.a b/x86_64-w64-mingw32/lib/libdxdiagn.a
index 34246d6..455f2ea 100644
--- a/x86_64-w64-mingw32/lib/libdxdiagn.a
+++ b/x86_64-w64-mingw32/lib/libdxdiagn.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdxerr8.a b/x86_64-w64-mingw32/lib/libdxerr8.a
index c32e5e2..a35288f 100644
--- a/x86_64-w64-mingw32/lib/libdxerr8.a
+++ b/x86_64-w64-mingw32/lib/libdxerr8.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdxerr9.a b/x86_64-w64-mingw32/lib/libdxerr9.a
index 69136c8..d0b6f4c 100644
--- a/x86_64-w64-mingw32/lib/libdxerr9.a
+++ b/x86_64-w64-mingw32/lib/libdxerr9.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdxgi.a b/x86_64-w64-mingw32/lib/libdxgi.a
index 296f132..d2b8b37 100644
--- a/x86_64-w64-mingw32/lib/libdxgi.a
+++ b/x86_64-w64-mingw32/lib/libdxgi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdxguid.a b/x86_64-w64-mingw32/lib/libdxguid.a
index 14d5d6c..2c98bdc 100644
--- a/x86_64-w64-mingw32/lib/libdxguid.a
+++ b/x86_64-w64-mingw32/lib/libdxguid.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdxtmsft.a b/x86_64-w64-mingw32/lib/libdxtmsft.a
index 4369260..ebb2401 100644
--- a/x86_64-w64-mingw32/lib/libdxtmsft.a
+++ b/x86_64-w64-mingw32/lib/libdxtmsft.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdxtrans.a b/x86_64-w64-mingw32/lib/libdxtrans.a
index 27bb7a1..12f9a6c 100644
--- a/x86_64-w64-mingw32/lib/libdxtrans.a
+++ b/x86_64-w64-mingw32/lib/libdxtrans.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libdxva2.a b/x86_64-w64-mingw32/lib/libdxva2.a
index 1688d52..743b44a 100644
--- a/x86_64-w64-mingw32/lib/libdxva2.a
+++ b/x86_64-w64-mingw32/lib/libdxva2.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libeappcfg.a b/x86_64-w64-mingw32/lib/libeappcfg.a
index 616b745..8124c33 100644
--- a/x86_64-w64-mingw32/lib/libeappcfg.a
+++ b/x86_64-w64-mingw32/lib/libeappcfg.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libeappgnui.a b/x86_64-w64-mingw32/lib/libeappgnui.a
index c0fb8c6..1cb62b5 100644
--- a/x86_64-w64-mingw32/lib/libeappgnui.a
+++ b/x86_64-w64-mingw32/lib/libeappgnui.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libeapphost.a b/x86_64-w64-mingw32/lib/libeapphost.a
index 563cbf1..1e87b51 100644
--- a/x86_64-w64-mingw32/lib/libeapphost.a
+++ b/x86_64-w64-mingw32/lib/libeapphost.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libeappprxy.a b/x86_64-w64-mingw32/lib/libeappprxy.a
index 08cbe77..58f6bd0 100644
--- a/x86_64-w64-mingw32/lib/libeappprxy.a
+++ b/x86_64-w64-mingw32/lib/libeappprxy.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libefsadu.a b/x86_64-w64-mingw32/lib/libefsadu.a
index 38e46b5..ed91cb6 100644
--- a/x86_64-w64-mingw32/lib/libefsadu.a
+++ b/x86_64-w64-mingw32/lib/libefsadu.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libels.a b/x86_64-w64-mingw32/lib/libels.a
index 2a59da0..45f7dfc 100644
--- a/x86_64-w64-mingw32/lib/libels.a
+++ b/x86_64-w64-mingw32/lib/libels.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libencapi.a b/x86_64-w64-mingw32/lib/libencapi.a
index f1b810a..d8f4e86 100644
--- a/x86_64-w64-mingw32/lib/libencapi.a
+++ b/x86_64-w64-mingw32/lib/libencapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libersvc.a b/x86_64-w64-mingw32/lib/libersvc.a
index 18795a2..59c6299 100644
--- a/x86_64-w64-mingw32/lib/libersvc.a
+++ b/x86_64-w64-mingw32/lib/libersvc.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libes.a b/x86_64-w64-mingw32/lib/libes.a
index 61f7bc7..70fa9d3 100644
--- a/x86_64-w64-mingw32/lib/libes.a
+++ b/x86_64-w64-mingw32/lib/libes.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libesent.a b/x86_64-w64-mingw32/lib/libesent.a
index c97fc54..750e771 100644
--- a/x86_64-w64-mingw32/lib/libesent.a
+++ b/x86_64-w64-mingw32/lib/libesent.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libesentprf.a b/x86_64-w64-mingw32/lib/libesentprf.a
index dbacfdb..b1cc0ce 100644
--- a/x86_64-w64-mingw32/lib/libesentprf.a
+++ b/x86_64-w64-mingw32/lib/libesentprf.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libesscli.a b/x86_64-w64-mingw32/lib/libesscli.a
index 482216d..febebb8 100644
--- a/x86_64-w64-mingw32/lib/libesscli.a
+++ b/x86_64-w64-mingw32/lib/libesscli.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libeventcls.a b/x86_64-w64-mingw32/lib/libeventcls.a
index 1e90692..c9b2042 100644
--- a/x86_64-w64-mingw32/lib/libeventcls.a
+++ b/x86_64-w64-mingw32/lib/libeventcls.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libeventlog.a b/x86_64-w64-mingw32/lib/libeventlog.a
index 4d6d5ee..acd2710 100644
--- a/x86_64-w64-mingw32/lib/libeventlog.a
+++ b/x86_64-w64-mingw32/lib/libeventlog.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libevntagnt.a b/x86_64-w64-mingw32/lib/libevntagnt.a
index d69b1eb..b5a5cd9 100644
--- a/x86_64-w64-mingw32/lib/libevntagnt.a
+++ b/x86_64-w64-mingw32/lib/libevntagnt.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libevntrprv.a b/x86_64-w64-mingw32/lib/libevntrprv.a
index a37f083..e9ba51f 100644
--- a/x86_64-w64-mingw32/lib/libevntrprv.a
+++ b/x86_64-w64-mingw32/lib/libevntrprv.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libevr.a b/x86_64-w64-mingw32/lib/libevr.a
index e943084..9077f34 100644
--- a/x86_64-w64-mingw32/lib/libevr.a
+++ b/x86_64-w64-mingw32/lib/libevr.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libevtgprov.a b/x86_64-w64-mingw32/lib/libevtgprov.a
index 848bda8..be5d451 100644
--- a/x86_64-w64-mingw32/lib/libevtgprov.a
+++ b/x86_64-w64-mingw32/lib/libevtgprov.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libexstrace.a b/x86_64-w64-mingw32/lib/libexstrace.a
index c76dd4f..690a638 100644
--- a/x86_64-w64-mingw32/lib/libexstrace.a
+++ b/x86_64-w64-mingw32/lib/libexstrace.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libextmgr.a b/x86_64-w64-mingw32/lib/libextmgr.a
index f7207c5..8cc2b25 100644
--- a/x86_64-w64-mingw32/lib/libextmgr.a
+++ b/x86_64-w64-mingw32/lib/libextmgr.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libf3ahvoas.a b/x86_64-w64-mingw32/lib/libf3ahvoas.a
index 8886906..1c54d77 100644
--- a/x86_64-w64-mingw32/lib/libf3ahvoas.a
+++ b/x86_64-w64-mingw32/lib/libf3ahvoas.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libfastprox.a b/x86_64-w64-mingw32/lib/libfastprox.a
index ac0e758..249e478 100644
--- a/x86_64-w64-mingw32/lib/libfastprox.a
+++ b/x86_64-w64-mingw32/lib/libfastprox.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libfaultrep.a b/x86_64-w64-mingw32/lib/libfaultrep.a
index cfe6315..9b3cf8b 100644
--- a/x86_64-w64-mingw32/lib/libfaultrep.a
+++ b/x86_64-w64-mingw32/lib/libfaultrep.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libfcachdll.a b/x86_64-w64-mingw32/lib/libfcachdll.a
index 8220d4e..22db256 100644
--- a/x86_64-w64-mingw32/lib/libfcachdll.a
+++ b/x86_64-w64-mingw32/lib/libfcachdll.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libfde.a b/x86_64-w64-mingw32/lib/libfde.a
index 21894a6..6f71636 100644
--- a/x86_64-w64-mingw32/lib/libfde.a
+++ b/x86_64-w64-mingw32/lib/libfde.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libfdeploy.a b/x86_64-w64-mingw32/lib/libfdeploy.a
index 89b4c2f..b174480 100644
--- a/x86_64-w64-mingw32/lib/libfdeploy.a
+++ b/x86_64-w64-mingw32/lib/libfdeploy.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libfeclient.a b/x86_64-w64-mingw32/lib/libfeclient.a
index f95861c..db38ccf 100644
--- a/x86_64-w64-mingw32/lib/libfeclient.a
+++ b/x86_64-w64-mingw32/lib/libfeclient.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libfilemgmt.a b/x86_64-w64-mingw32/lib/libfilemgmt.a
index 68650a3..9cdaeba 100644
--- a/x86_64-w64-mingw32/lib/libfilemgmt.a
+++ b/x86_64-w64-mingw32/lib/libfilemgmt.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libfldrclnr.a b/x86_64-w64-mingw32/lib/libfldrclnr.a
index f6e9bf3..845bb43 100644
--- a/x86_64-w64-mingw32/lib/libfldrclnr.a
+++ b/x86_64-w64-mingw32/lib/libfldrclnr.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libfltlib.a b/x86_64-w64-mingw32/lib/libfltlib.a
index 1d5c011..bd4b41f 100644
--- a/x86_64-w64-mingw32/lib/libfltlib.a
+++ b/x86_64-w64-mingw32/lib/libfltlib.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libfmifs.a b/x86_64-w64-mingw32/lib/libfmifs.a
index a4b7431..0ea7a6a 100644
--- a/x86_64-w64-mingw32/lib/libfmifs.a
+++ b/x86_64-w64-mingw32/lib/libfmifs.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libfontext.a b/x86_64-w64-mingw32/lib/libfontext.a
index cbb9a2b..7f61bd0 100644
--- a/x86_64-w64-mingw32/lib/libfontext.a
+++ b/x86_64-w64-mingw32/lib/libfontext.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libfontsub.a b/x86_64-w64-mingw32/lib/libfontsub.a
index bf88af3..961ea6d 100644
--- a/x86_64-w64-mingw32/lib/libfontsub.a
+++ b/x86_64-w64-mingw32/lib/libfontsub.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libframedyn.a b/x86_64-w64-mingw32/lib/libframedyn.a
index c9c29fb..50fda1c 100644
--- a/x86_64-w64-mingw32/lib/libframedyn.a
+++ b/x86_64-w64-mingw32/lib/libframedyn.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libfsusd.a b/x86_64-w64-mingw32/lib/libfsusd.a
index 60008eb..20a829b 100644
--- a/x86_64-w64-mingw32/lib/libfsusd.a
+++ b/x86_64-w64-mingw32/lib/libfsusd.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libftpctrs2.a b/x86_64-w64-mingw32/lib/libftpctrs2.a
index d87faaa..0a394e3 100644
--- a/x86_64-w64-mingw32/lib/libftpctrs2.a
+++ b/x86_64-w64-mingw32/lib/libftpctrs2.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libftpmib.a b/x86_64-w64-mingw32/lib/libftpmib.a
index 3eb7e21..a3ddd6e 100644
--- a/x86_64-w64-mingw32/lib/libftpmib.a
+++ b/x86_64-w64-mingw32/lib/libftpmib.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libftpsvc2.a b/x86_64-w64-mingw32/lib/libftpsvc2.a
index 18e4e11..81d6ea2 100644
--- a/x86_64-w64-mingw32/lib/libftpsvc2.a
+++ b/x86_64-w64-mingw32/lib/libftpsvc2.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libfwcfg.a b/x86_64-w64-mingw32/lib/libfwcfg.a
index e7d15a4..745548a 100644
--- a/x86_64-w64-mingw32/lib/libfwcfg.a
+++ b/x86_64-w64-mingw32/lib/libfwcfg.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libfwpuclnt.a b/x86_64-w64-mingw32/lib/libfwpuclnt.a
index 1a880f4..ac7bc02 100644
--- a/x86_64-w64-mingw32/lib/libfwpuclnt.a
+++ b/x86_64-w64-mingw32/lib/libfwpuclnt.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libfxsapi.a b/x86_64-w64-mingw32/lib/libfxsapi.a
index a293157..eb818a7 100644
--- a/x86_64-w64-mingw32/lib/libfxsapi.a
+++ b/x86_64-w64-mingw32/lib/libfxsapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libfxscfgwz.a b/x86_64-w64-mingw32/lib/libfxscfgwz.a
index 8db2ff9..a3c7925 100644
--- a/x86_64-w64-mingw32/lib/libfxscfgwz.a
+++ b/x86_64-w64-mingw32/lib/libfxscfgwz.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libfxscom.a b/x86_64-w64-mingw32/lib/libfxscom.a
index eaf80ee..e6fa292 100644
--- a/x86_64-w64-mingw32/lib/libfxscom.a
+++ b/x86_64-w64-mingw32/lib/libfxscom.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libfxscomex.a b/x86_64-w64-mingw32/lib/libfxscomex.a
index 980848f..03b0f51 100644
--- a/x86_64-w64-mingw32/lib/libfxscomex.a
+++ b/x86_64-w64-mingw32/lib/libfxscomex.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libfxsdrv.a b/x86_64-w64-mingw32/lib/libfxsdrv.a
index d7adaac..2c5e31d 100644
--- a/x86_64-w64-mingw32/lib/libfxsdrv.a
+++ b/x86_64-w64-mingw32/lib/libfxsdrv.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libfxsmon.a b/x86_64-w64-mingw32/lib/libfxsmon.a
index 73c79fc..59830c3 100644
--- a/x86_64-w64-mingw32/lib/libfxsmon.a
+++ b/x86_64-w64-mingw32/lib/libfxsmon.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libfxsocm.a b/x86_64-w64-mingw32/lib/libfxsocm.a
index 9fd9634..d6153a1 100644
--- a/x86_64-w64-mingw32/lib/libfxsocm.a
+++ b/x86_64-w64-mingw32/lib/libfxsocm.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libfxsperf.a b/x86_64-w64-mingw32/lib/libfxsperf.a
index ea5386c..1611dfc 100644
--- a/x86_64-w64-mingw32/lib/libfxsperf.a
+++ b/x86_64-w64-mingw32/lib/libfxsperf.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libfxsroute.a b/x86_64-w64-mingw32/lib/libfxsroute.a
index c236921..93360df 100644
--- a/x86_64-w64-mingw32/lib/libfxsroute.a
+++ b/x86_64-w64-mingw32/lib/libfxsroute.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libfxsst.a b/x86_64-w64-mingw32/lib/libfxsst.a
index 5cf4bd3..07ff07b 100644
--- a/x86_64-w64-mingw32/lib/libfxsst.a
+++ b/x86_64-w64-mingw32/lib/libfxsst.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libfxst30.a b/x86_64-w64-mingw32/lib/libfxst30.a
index 0b1d6f4..f7c36e7 100644
--- a/x86_64-w64-mingw32/lib/libfxst30.a
+++ b/x86_64-w64-mingw32/lib/libfxst30.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libfxstiff.a b/x86_64-w64-mingw32/lib/libfxstiff.a
index 377b4fa..42c62e9 100644
--- a/x86_64-w64-mingw32/lib/libfxstiff.a
+++ b/x86_64-w64-mingw32/lib/libfxstiff.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libfxsui.a b/x86_64-w64-mingw32/lib/libfxsui.a
index d3b877f..083fab8 100644
--- a/x86_64-w64-mingw32/lib/libfxsui.a
+++ b/x86_64-w64-mingw32/lib/libfxsui.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libfxswzrd.a b/x86_64-w64-mingw32/lib/libfxswzrd.a
index 6febb18..44a9f33 100644
--- a/x86_64-w64-mingw32/lib/libfxswzrd.a
+++ b/x86_64-w64-mingw32/lib/libfxswzrd.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libgcc_s.a b/x86_64-w64-mingw32/lib/libgcc_s.a
new file mode 100644
index 0000000..67d7d77
--- /dev/null
+++ b/x86_64-w64-mingw32/lib/libgcc_s.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libgcc_s_seh-1.dll b/x86_64-w64-mingw32/lib/libgcc_s_seh-1.dll
new file mode 100755
index 0000000..4e34026
--- /dev/null
+++ b/x86_64-w64-mingw32/lib/libgcc_s_seh-1.dll
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libgcdef.a b/x86_64-w64-mingw32/lib/libgcdef.a
index 5edf620..ff99045 100644
--- a/x86_64-w64-mingw32/lib/libgcdef.a
+++ b/x86_64-w64-mingw32/lib/libgcdef.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libgdi32.a b/x86_64-w64-mingw32/lib/libgdi32.a
index 07b1801..f23df82 100644
--- a/x86_64-w64-mingw32/lib/libgdi32.a
+++ b/x86_64-w64-mingw32/lib/libgdi32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libgdiplus.a b/x86_64-w64-mingw32/lib/libgdiplus.a
index 13ba5e6..77a4eee 100644
--- a/x86_64-w64-mingw32/lib/libgdiplus.a
+++ b/x86_64-w64-mingw32/lib/libgdiplus.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libgetuname.a b/x86_64-w64-mingw32/lib/libgetuname.a
index 68d2392..17db1b5 100644
--- a/x86_64-w64-mingw32/lib/libgetuname.a
+++ b/x86_64-w64-mingw32/lib/libgetuname.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libglmf32.a b/x86_64-w64-mingw32/lib/libglmf32.a
index 40927ad..5c5a4d0 100644
--- a/x86_64-w64-mingw32/lib/libglmf32.a
+++ b/x86_64-w64-mingw32/lib/libglmf32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libglu32.a b/x86_64-w64-mingw32/lib/libglu32.a
index d275a2e..9513204 100644
--- a/x86_64-w64-mingw32/lib/libglu32.a
+++ b/x86_64-w64-mingw32/lib/libglu32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libgmon.a b/x86_64-w64-mingw32/lib/libgmon.a
index aa964f4..6cbba53 100644
--- a/x86_64-w64-mingw32/lib/libgmon.a
+++ b/x86_64-w64-mingw32/lib/libgmon.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libgpedit.a b/x86_64-w64-mingw32/lib/libgpedit.a
index ca23d4d..81119fb 100644
--- a/x86_64-w64-mingw32/lib/libgpedit.a
+++ b/x86_64-w64-mingw32/lib/libgpedit.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libgpkcsp.a b/x86_64-w64-mingw32/lib/libgpkcsp.a
index 5f28fd0..f713628 100644
--- a/x86_64-w64-mingw32/lib/libgpkcsp.a
+++ b/x86_64-w64-mingw32/lib/libgpkcsp.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libgptext.a b/x86_64-w64-mingw32/lib/libgptext.a
index 8251075..af21d23 100644
--- a/x86_64-w64-mingw32/lib/libgptext.a
+++ b/x86_64-w64-mingw32/lib/libgptext.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libguitrn.a b/x86_64-w64-mingw32/lib/libguitrn.a
index a3fec84..537ec6e 100644
--- a/x86_64-w64-mingw32/lib/libguitrn.a
+++ b/x86_64-w64-mingw32/lib/libguitrn.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libgzip.a b/x86_64-w64-mingw32/lib/libgzip.a
index 87d0e22..95625dd 100644
--- a/x86_64-w64-mingw32/lib/libgzip.a
+++ b/x86_64-w64-mingw32/lib/libgzip.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libh323msp.a b/x86_64-w64-mingw32/lib/libh323msp.a
index 11091ad..9e87d65 100644
--- a/x86_64-w64-mingw32/lib/libh323msp.a
+++ b/x86_64-w64-mingw32/lib/libh323msp.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libhal.a b/x86_64-w64-mingw32/lib/libhal.a
index 43fd3bd..823f1ee 100644
--- a/x86_64-w64-mingw32/lib/libhal.a
+++ b/x86_64-w64-mingw32/lib/libhal.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libhbaapi.a b/x86_64-w64-mingw32/lib/libhbaapi.a
index 7849519..db9e183 100644
--- a/x86_64-w64-mingw32/lib/libhbaapi.a
+++ b/x86_64-w64-mingw32/lib/libhbaapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libhgfs.a b/x86_64-w64-mingw32/lib/libhgfs.a
index 1fc6cbd..f888e13 100644
--- a/x86_64-w64-mingw32/lib/libhgfs.a
+++ b/x86_64-w64-mingw32/lib/libhgfs.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libhhsetup.a b/x86_64-w64-mingw32/lib/libhhsetup.a
index bd51e00..eadd66f 100644
--- a/x86_64-w64-mingw32/lib/libhhsetup.a
+++ b/x86_64-w64-mingw32/lib/libhhsetup.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libhid.a b/x86_64-w64-mingw32/lib/libhid.a
index e925b36..e1ba698 100644
--- a/x86_64-w64-mingw32/lib/libhid.a
+++ b/x86_64-w64-mingw32/lib/libhid.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libhidclass.a b/x86_64-w64-mingw32/lib/libhidclass.a
index c99065c..326227e 100644
--- a/x86_64-w64-mingw32/lib/libhidclass.a
+++ b/x86_64-w64-mingw32/lib/libhidclass.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libhidparse.a b/x86_64-w64-mingw32/lib/libhidparse.a
index 4ab039d..5287076 100644
--- a/x86_64-w64-mingw32/lib/libhidparse.a
+++ b/x86_64-w64-mingw32/lib/libhidparse.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libhlink.a b/x86_64-w64-mingw32/lib/libhlink.a
index 4c62df7..0fa7519 100644
--- a/x86_64-w64-mingw32/lib/libhlink.a
+++ b/x86_64-w64-mingw32/lib/libhlink.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libhmmapi.a b/x86_64-w64-mingw32/lib/libhmmapi.a
index 17abcf2..44b33e4 100644
--- a/x86_64-w64-mingw32/lib/libhmmapi.a
+++ b/x86_64-w64-mingw32/lib/libhmmapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libhnetcfg.a b/x86_64-w64-mingw32/lib/libhnetcfg.a
index c2f5e86..04daa2b 100644
--- a/x86_64-w64-mingw32/lib/libhnetcfg.a
+++ b/x86_64-w64-mingw32/lib/libhnetcfg.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libhnetmon.a b/x86_64-w64-mingw32/lib/libhnetmon.a
index 7d84f7c..33050c5 100644
--- a/x86_64-w64-mingw32/lib/libhnetmon.a
+++ b/x86_64-w64-mingw32/lib/libhnetmon.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libhnetwiz.a b/x86_64-w64-mingw32/lib/libhnetwiz.a
index 3683eaf..f4b6acb 100644
--- a/x86_64-w64-mingw32/lib/libhnetwiz.a
+++ b/x86_64-w64-mingw32/lib/libhnetwiz.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libhostmib.a b/x86_64-w64-mingw32/lib/libhostmib.a
index b350487..c0078b0 100644
--- a/x86_64-w64-mingw32/lib/libhostmib.a
+++ b/x86_64-w64-mingw32/lib/libhostmib.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libhotplug.a b/x86_64-w64-mingw32/lib/libhotplug.a
index 44a04c2..95ba881 100644
--- a/x86_64-w64-mingw32/lib/libhotplug.a
+++ b/x86_64-w64-mingw32/lib/libhotplug.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libhticons.a b/x86_64-w64-mingw32/lib/libhticons.a
index f8d9504..30d4aef 100644
--- a/x86_64-w64-mingw32/lib/libhticons.a
+++ b/x86_64-w64-mingw32/lib/libhticons.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libhtrn_jis.a b/x86_64-w64-mingw32/lib/libhtrn_jis.a
index 1f99ad2..2a2746c 100644
--- a/x86_64-w64-mingw32/lib/libhtrn_jis.a
+++ b/x86_64-w64-mingw32/lib/libhtrn_jis.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libhttpapi.a b/x86_64-w64-mingw32/lib/libhttpapi.a
index fabee58..266a122 100644
--- a/x86_64-w64-mingw32/lib/libhttpapi.a
+++ b/x86_64-w64-mingw32/lib/libhttpapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libhttpext.a b/x86_64-w64-mingw32/lib/libhttpext.a
index 1b49c02..8296e93 100644
--- a/x86_64-w64-mingw32/lib/libhttpext.a
+++ b/x86_64-w64-mingw32/lib/libhttpext.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libhttpmib.a b/x86_64-w64-mingw32/lib/libhttpmib.a
index 460cd86..3d6056e 100644
--- a/x86_64-w64-mingw32/lib/libhttpmib.a
+++ b/x86_64-w64-mingw32/lib/libhttpmib.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libhttpodbc.a b/x86_64-w64-mingw32/lib/libhttpodbc.a
index 3bb2caa..99fc75f 100644
--- a/x86_64-w64-mingw32/lib/libhttpodbc.a
+++ b/x86_64-w64-mingw32/lib/libhttpodbc.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libhtui.a b/x86_64-w64-mingw32/lib/libhtui.a
index 55156e8..a017c19 100644
--- a/x86_64-w64-mingw32/lib/libhtui.a
+++ b/x86_64-w64-mingw32/lib/libhtui.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libhypertrm.a b/x86_64-w64-mingw32/lib/libhypertrm.a
index 2e14cd9..016e260 100644
--- a/x86_64-w64-mingw32/lib/libhypertrm.a
+++ b/x86_64-w64-mingw32/lib/libhypertrm.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libiasacct.a b/x86_64-w64-mingw32/lib/libiasacct.a
index e4c9b7a..14171b9 100644
--- a/x86_64-w64-mingw32/lib/libiasacct.a
+++ b/x86_64-w64-mingw32/lib/libiasacct.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libiasads.a b/x86_64-w64-mingw32/lib/libiasads.a
index f5bf27c..e843ce1 100644
--- a/x86_64-w64-mingw32/lib/libiasads.a
+++ b/x86_64-w64-mingw32/lib/libiasads.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libiashlpr.a b/x86_64-w64-mingw32/lib/libiashlpr.a
index c679f2d..8f86cae 100644
--- a/x86_64-w64-mingw32/lib/libiashlpr.a
+++ b/x86_64-w64-mingw32/lib/libiashlpr.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libiasnap.a b/x86_64-w64-mingw32/lib/libiasnap.a
index cc23eac..01073cb 100644
--- a/x86_64-w64-mingw32/lib/libiasnap.a
+++ b/x86_64-w64-mingw32/lib/libiasnap.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libiaspolcy.a b/x86_64-w64-mingw32/lib/libiaspolcy.a
index 97c40b9..a27b09d 100644
--- a/x86_64-w64-mingw32/lib/libiaspolcy.a
+++ b/x86_64-w64-mingw32/lib/libiaspolcy.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libiasrad.a b/x86_64-w64-mingw32/lib/libiasrad.a
index c8420b4..ba192f4 100644
--- a/x86_64-w64-mingw32/lib/libiasrad.a
+++ b/x86_64-w64-mingw32/lib/libiasrad.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libiassam.a b/x86_64-w64-mingw32/lib/libiassam.a
index 8767057..af5cdff 100644
--- a/x86_64-w64-mingw32/lib/libiassam.a
+++ b/x86_64-w64-mingw32/lib/libiassam.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libiassdo.a b/x86_64-w64-mingw32/lib/libiassdo.a
index 4a2cc68..fb65429 100644
--- a/x86_64-w64-mingw32/lib/libiassdo.a
+++ b/x86_64-w64-mingw32/lib/libiassdo.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libiassvcs.a b/x86_64-w64-mingw32/lib/libiassvcs.a
index c6b347f..fe8f248 100644
--- a/x86_64-w64-mingw32/lib/libiassvcs.a
+++ b/x86_64-w64-mingw32/lib/libiassvcs.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libicaapi.a b/x86_64-w64-mingw32/lib/libicaapi.a
index 333b7fc..3fd3a14 100644
--- a/x86_64-w64-mingw32/lib/libicaapi.a
+++ b/x86_64-w64-mingw32/lib/libicaapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libicfgnt5.a b/x86_64-w64-mingw32/lib/libicfgnt5.a
index 4570320..021a5af 100644
--- a/x86_64-w64-mingw32/lib/libicfgnt5.a
+++ b/x86_64-w64-mingw32/lib/libicfgnt5.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libicm32.a b/x86_64-w64-mingw32/lib/libicm32.a
index dc32a4f..e10dd63 100644
--- a/x86_64-w64-mingw32/lib/libicm32.a
+++ b/x86_64-w64-mingw32/lib/libicm32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libicmp.a b/x86_64-w64-mingw32/lib/libicmp.a
index 9abb609..db8dfd6 100644
--- a/x86_64-w64-mingw32/lib/libicmp.a
+++ b/x86_64-w64-mingw32/lib/libicmp.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libicmui.a b/x86_64-w64-mingw32/lib/libicmui.a
index c7acd6c..31aa41d 100644
--- a/x86_64-w64-mingw32/lib/libicmui.a
+++ b/x86_64-w64-mingw32/lib/libicmui.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libicwconn.a b/x86_64-w64-mingw32/lib/libicwconn.a
index c1c7630..d5fdbdb 100644
--- a/x86_64-w64-mingw32/lib/libicwconn.a
+++ b/x86_64-w64-mingw32/lib/libicwconn.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libicwdial.a b/x86_64-w64-mingw32/lib/libicwdial.a
index f87672b..5330af4 100644
--- a/x86_64-w64-mingw32/lib/libicwdial.a
+++ b/x86_64-w64-mingw32/lib/libicwdial.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libicwdl.a b/x86_64-w64-mingw32/lib/libicwdl.a
index 2fa7cdf..d5bc030 100644
--- a/x86_64-w64-mingw32/lib/libicwdl.a
+++ b/x86_64-w64-mingw32/lib/libicwdl.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libicwhelp.a b/x86_64-w64-mingw32/lib/libicwhelp.a
index d629deb..b5ddd85 100644
--- a/x86_64-w64-mingw32/lib/libicwhelp.a
+++ b/x86_64-w64-mingw32/lib/libicwhelp.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libicwphbk.a b/x86_64-w64-mingw32/lib/libicwphbk.a
index 6d57009..3000646 100644
--- a/x86_64-w64-mingw32/lib/libicwphbk.a
+++ b/x86_64-w64-mingw32/lib/libicwphbk.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libicwutil.a b/x86_64-w64-mingw32/lib/libicwutil.a
index 2af4729..669b63e 100644
--- a/x86_64-w64-mingw32/lib/libicwutil.a
+++ b/x86_64-w64-mingw32/lib/libicwutil.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libidq.a b/x86_64-w64-mingw32/lib/libidq.a
index 161e67e..a2f11cc 100644
--- a/x86_64-w64-mingw32/lib/libidq.a
+++ b/x86_64-w64-mingw32/lib/libidq.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libieakeng.a b/x86_64-w64-mingw32/lib/libieakeng.a
index 22db2bc..5c20010 100644
--- a/x86_64-w64-mingw32/lib/libieakeng.a
+++ b/x86_64-w64-mingw32/lib/libieakeng.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libieaksie.a b/x86_64-w64-mingw32/lib/libieaksie.a
index 8911d65..53bce0c 100644
--- a/x86_64-w64-mingw32/lib/libieaksie.a
+++ b/x86_64-w64-mingw32/lib/libieaksie.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libiedkcs32.a b/x86_64-w64-mingw32/lib/libiedkcs32.a
index c634503..e8b0d24 100644
--- a/x86_64-w64-mingw32/lib/libiedkcs32.a
+++ b/x86_64-w64-mingw32/lib/libiedkcs32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libieencode.a b/x86_64-w64-mingw32/lib/libieencode.a
index 3772212..c00b27e 100644
--- a/x86_64-w64-mingw32/lib/libieencode.a
+++ b/x86_64-w64-mingw32/lib/libieencode.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libiepeers.a b/x86_64-w64-mingw32/lib/libiepeers.a
index 3607279..26efe07 100644
--- a/x86_64-w64-mingw32/lib/libiepeers.a
+++ b/x86_64-w64-mingw32/lib/libiepeers.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libiernonce.a b/x86_64-w64-mingw32/lib/libiernonce.a
index e19cb08..6110647 100644
--- a/x86_64-w64-mingw32/lib/libiernonce.a
+++ b/x86_64-w64-mingw32/lib/libiernonce.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libiesetup.a b/x86_64-w64-mingw32/lib/libiesetup.a
index 2d0a173..15ed287 100644
--- a/x86_64-w64-mingw32/lib/libiesetup.a
+++ b/x86_64-w64-mingw32/lib/libiesetup.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libifmon.a b/x86_64-w64-mingw32/lib/libifmon.a
index 4bb3202..e361326 100644
--- a/x86_64-w64-mingw32/lib/libifmon.a
+++ b/x86_64-w64-mingw32/lib/libifmon.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libifsutil.a b/x86_64-w64-mingw32/lib/libifsutil.a
index 60ab367..517a57e 100644
--- a/x86_64-w64-mingw32/lib/libifsutil.a
+++ b/x86_64-w64-mingw32/lib/libifsutil.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libigmpagnt.a b/x86_64-w64-mingw32/lib/libigmpagnt.a
index e1a764f..b0adf1b 100644
--- a/x86_64-w64-mingw32/lib/libigmpagnt.a
+++ b/x86_64-w64-mingw32/lib/libigmpagnt.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libiis.a b/x86_64-w64-mingw32/lib/libiis.a
index 16244e0..be77f35 100644
--- a/x86_64-w64-mingw32/lib/libiis.a
+++ b/x86_64-w64-mingw32/lib/libiis.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libiisadmin.a b/x86_64-w64-mingw32/lib/libiisadmin.a
index 95acb09..c5f4304 100644
--- a/x86_64-w64-mingw32/lib/libiisadmin.a
+++ b/x86_64-w64-mingw32/lib/libiisadmin.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libiiscfg.a b/x86_64-w64-mingw32/lib/libiiscfg.a
index cd632a9..77dc842 100644
--- a/x86_64-w64-mingw32/lib/libiiscfg.a
+++ b/x86_64-w64-mingw32/lib/libiiscfg.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libiisclex4.a b/x86_64-w64-mingw32/lib/libiisclex4.a
index f4fe528..1f82884 100644
--- a/x86_64-w64-mingw32/lib/libiisclex4.a
+++ b/x86_64-w64-mingw32/lib/libiisclex4.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libiisext.a b/x86_64-w64-mingw32/lib/libiisext.a
index 3f59334..fce023d 100644
--- a/x86_64-w64-mingw32/lib/libiisext.a
+++ b/x86_64-w64-mingw32/lib/libiisext.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libiislog.a b/x86_64-w64-mingw32/lib/libiislog.a
index d87bd10..44fcc62 100644
--- a/x86_64-w64-mingw32/lib/libiislog.a
+++ b/x86_64-w64-mingw32/lib/libiislog.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libiismap.a b/x86_64-w64-mingw32/lib/libiismap.a
index 2c37385..188f8d7 100644
--- a/x86_64-w64-mingw32/lib/libiismap.a
+++ b/x86_64-w64-mingw32/lib/libiismap.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libiisrstap.a b/x86_64-w64-mingw32/lib/libiisrstap.a
index 59a2f44..fc72833 100644
--- a/x86_64-w64-mingw32/lib/libiisrstap.a
+++ b/x86_64-w64-mingw32/lib/libiisrstap.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libiisrtl.a b/x86_64-w64-mingw32/lib/libiisrtl.a
index 335bddd..ad958fc 100644
--- a/x86_64-w64-mingw32/lib/libiisrtl.a
+++ b/x86_64-w64-mingw32/lib/libiisrtl.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libiissuba.a b/x86_64-w64-mingw32/lib/libiissuba.a
index 951cc37..aa88ede 100644
--- a/x86_64-w64-mingw32/lib/libiissuba.a
+++ b/x86_64-w64-mingw32/lib/libiissuba.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libiisui.a b/x86_64-w64-mingw32/lib/libiisui.a
index 6354398..9f233e2 100644
--- a/x86_64-w64-mingw32/lib/libiisui.a
+++ b/x86_64-w64-mingw32/lib/libiisui.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libiisuiobj.a b/x86_64-w64-mingw32/lib/libiisuiobj.a
index 80ba34f..75be96e 100644
--- a/x86_64-w64-mingw32/lib/libiisuiobj.a
+++ b/x86_64-w64-mingw32/lib/libiisuiobj.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libiisutil.a b/x86_64-w64-mingw32/lib/libiisutil.a
index 97f1a98..6342356 100644
--- a/x86_64-w64-mingw32/lib/libiisutil.a
+++ b/x86_64-w64-mingw32/lib/libiisutil.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libiisw3adm.a b/x86_64-w64-mingw32/lib/libiisw3adm.a
index 4937936..5ca694f 100644
--- a/x86_64-w64-mingw32/lib/libiisw3adm.a
+++ b/x86_64-w64-mingw32/lib/libiisw3adm.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libiiswmi.a b/x86_64-w64-mingw32/lib/libiiswmi.a
index c47d8cc..2740209 100644
--- a/x86_64-w64-mingw32/lib/libiiswmi.a
+++ b/x86_64-w64-mingw32/lib/libiiswmi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libimagehlp.a b/x86_64-w64-mingw32/lib/libimagehlp.a
index c5f8252..9533aee 100644
--- a/x86_64-w64-mingw32/lib/libimagehlp.a
+++ b/x86_64-w64-mingw32/lib/libimagehlp.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libimekrcic.a b/x86_64-w64-mingw32/lib/libimekrcic.a
index 3db5aa1..ec5e099 100644
--- a/x86_64-w64-mingw32/lib/libimekrcic.a
+++ b/x86_64-w64-mingw32/lib/libimekrcic.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libimeshare.a b/x86_64-w64-mingw32/lib/libimeshare.a
index 174f579..b4565b9 100644
--- a/x86_64-w64-mingw32/lib/libimeshare.a
+++ b/x86_64-w64-mingw32/lib/libimeshare.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libimgutil.a b/x86_64-w64-mingw32/lib/libimgutil.a
index 393146d..9426c0c 100644
--- a/x86_64-w64-mingw32/lib/libimgutil.a
+++ b/x86_64-w64-mingw32/lib/libimgutil.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libimjp81k.a b/x86_64-w64-mingw32/lib/libimjp81k.a
index 6880703..ed6591d 100644
--- a/x86_64-w64-mingw32/lib/libimjp81k.a
+++ b/x86_64-w64-mingw32/lib/libimjp81k.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libimjpcic.a b/x86_64-w64-mingw32/lib/libimjpcic.a
index ee467b5..7a7d215 100644
--- a/x86_64-w64-mingw32/lib/libimjpcic.a
+++ b/x86_64-w64-mingw32/lib/libimjpcic.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libimjpcus.a b/x86_64-w64-mingw32/lib/libimjpcus.a
index 0d535fe..6f7aa45 100644
--- a/x86_64-w64-mingw32/lib/libimjpcus.a
+++ b/x86_64-w64-mingw32/lib/libimjpcus.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libimjpdct.a b/x86_64-w64-mingw32/lib/libimjpdct.a
index c66a751..1406f25 100644
--- a/x86_64-w64-mingw32/lib/libimjpdct.a
+++ b/x86_64-w64-mingw32/lib/libimjpdct.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libimjputyc.a b/x86_64-w64-mingw32/lib/libimjputyc.a
index dc67e29..ee8333d 100644
--- a/x86_64-w64-mingw32/lib/libimjputyc.a
+++ b/x86_64-w64-mingw32/lib/libimjputyc.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libimm32.a b/x86_64-w64-mingw32/lib/libimm32.a
index 16195d3..44926c6 100644
--- a/x86_64-w64-mingw32/lib/libimm32.a
+++ b/x86_64-w64-mingw32/lib/libimm32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libimsinsnt.a b/x86_64-w64-mingw32/lib/libimsinsnt.a
index 8ef4b61..96478df 100644
--- a/x86_64-w64-mingw32/lib/libimsinsnt.a
+++ b/x86_64-w64-mingw32/lib/libimsinsnt.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libimskdic.a b/x86_64-w64-mingw32/lib/libimskdic.a
index cbcfd6f..bf3e13d 100644
--- a/x86_64-w64-mingw32/lib/libimskdic.a
+++ b/x86_64-w64-mingw32/lib/libimskdic.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libinetcfg.a b/x86_64-w64-mingw32/lib/libinetcfg.a
index 155aace..30f14f3 100644
--- a/x86_64-w64-mingw32/lib/libinetcfg.a
+++ b/x86_64-w64-mingw32/lib/libinetcfg.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libinetcomm.a b/x86_64-w64-mingw32/lib/libinetcomm.a
index c13774d..f174c6b 100644
--- a/x86_64-w64-mingw32/lib/libinetcomm.a
+++ b/x86_64-w64-mingw32/lib/libinetcomm.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libinetmgr.a b/x86_64-w64-mingw32/lib/libinetmgr.a
index 417ea7a..ad6324e 100644
--- a/x86_64-w64-mingw32/lib/libinetmgr.a
+++ b/x86_64-w64-mingw32/lib/libinetmgr.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libinetmib1.a b/x86_64-w64-mingw32/lib/libinetmib1.a
index 1b0d5cb..68d2d9a 100644
--- a/x86_64-w64-mingw32/lib/libinetmib1.a
+++ b/x86_64-w64-mingw32/lib/libinetmib1.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libinetpp.a b/x86_64-w64-mingw32/lib/libinetpp.a
index 26bfb43..85c6a2d 100644
--- a/x86_64-w64-mingw32/lib/libinetpp.a
+++ b/x86_64-w64-mingw32/lib/libinetpp.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libinetppui.a b/x86_64-w64-mingw32/lib/libinetppui.a
index 4b89b37..44ae4ff 100644
--- a/x86_64-w64-mingw32/lib/libinetppui.a
+++ b/x86_64-w64-mingw32/lib/libinetppui.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libinfoadmn.a b/x86_64-w64-mingw32/lib/libinfoadmn.a
index 0d0500e..e3ba351 100644
--- a/x86_64-w64-mingw32/lib/libinfoadmn.a
+++ b/x86_64-w64-mingw32/lib/libinfoadmn.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libinfocomm.a b/x86_64-w64-mingw32/lib/libinfocomm.a
index 560fef5..26f7ddb 100644
--- a/x86_64-w64-mingw32/lib/libinfocomm.a
+++ b/x86_64-w64-mingw32/lib/libinfocomm.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libinfoctrs.a b/x86_64-w64-mingw32/lib/libinfoctrs.a
index c78fbc3..34d2231 100644
--- a/x86_64-w64-mingw32/lib/libinfoctrs.a
+++ b/x86_64-w64-mingw32/lib/libinfoctrs.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libinfosoft.a b/x86_64-w64-mingw32/lib/libinfosoft.a
index f996c25..70b311b 100644
--- a/x86_64-w64-mingw32/lib/libinfosoft.a
+++ b/x86_64-w64-mingw32/lib/libinfosoft.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libinitpki.a b/x86_64-w64-mingw32/lib/libinitpki.a
index 9d818b8..7d6c5d9 100644
--- a/x86_64-w64-mingw32/lib/libinitpki.a
+++ b/x86_64-w64-mingw32/lib/libinitpki.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libinput.a b/x86_64-w64-mingw32/lib/libinput.a
index e5098bd..c119e98 100644
--- a/x86_64-w64-mingw32/lib/libinput.a
+++ b/x86_64-w64-mingw32/lib/libinput.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libinseng.a b/x86_64-w64-mingw32/lib/libinseng.a
index 2567ad1..d71e950 100644
--- a/x86_64-w64-mingw32/lib/libinseng.a
+++ b/x86_64-w64-mingw32/lib/libinseng.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libiphlpapi.a b/x86_64-w64-mingw32/lib/libiphlpapi.a
index e093619..24c0e3b 100644
--- a/x86_64-w64-mingw32/lib/libiphlpapi.a
+++ b/x86_64-w64-mingw32/lib/libiphlpapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libipmontr.a b/x86_64-w64-mingw32/lib/libipmontr.a
index 774e087..c22792d 100644
--- a/x86_64-w64-mingw32/lib/libipmontr.a
+++ b/x86_64-w64-mingw32/lib/libipmontr.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libipnathlp.a b/x86_64-w64-mingw32/lib/libipnathlp.a
index 9415da8..3bcb5f3 100644
--- a/x86_64-w64-mingw32/lib/libipnathlp.a
+++ b/x86_64-w64-mingw32/lib/libipnathlp.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libippromon.a b/x86_64-w64-mingw32/lib/libippromon.a
index 5e39d2a..113f254 100644
--- a/x86_64-w64-mingw32/lib/libippromon.a
+++ b/x86_64-w64-mingw32/lib/libippromon.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libiprip.a b/x86_64-w64-mingw32/lib/libiprip.a
index 0687fd5..6c73f1e 100644
--- a/x86_64-w64-mingw32/lib/libiprip.a
+++ b/x86_64-w64-mingw32/lib/libiprip.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libiprop.a b/x86_64-w64-mingw32/lib/libiprop.a
index 98ba330..e276ea1 100644
--- a/x86_64-w64-mingw32/lib/libiprop.a
+++ b/x86_64-w64-mingw32/lib/libiprop.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libiprtprio.a b/x86_64-w64-mingw32/lib/libiprtprio.a
index 92ed6cd..63a2a2d 100644
--- a/x86_64-w64-mingw32/lib/libiprtprio.a
+++ b/x86_64-w64-mingw32/lib/libiprtprio.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libiprtrmgr.a b/x86_64-w64-mingw32/lib/libiprtrmgr.a
index ec65052..eb194b0 100644
--- a/x86_64-w64-mingw32/lib/libiprtrmgr.a
+++ b/x86_64-w64-mingw32/lib/libiprtrmgr.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libipsecsnp.a b/x86_64-w64-mingw32/lib/libipsecsnp.a
index 340428f..fa0b3ee 100644
--- a/x86_64-w64-mingw32/lib/libipsecsnp.a
+++ b/x86_64-w64-mingw32/lib/libipsecsnp.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libipsecsvc.a b/x86_64-w64-mingw32/lib/libipsecsvc.a
index e36e9b4..1eb4579 100644
--- a/x86_64-w64-mingw32/lib/libipsecsvc.a
+++ b/x86_64-w64-mingw32/lib/libipsecsvc.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libipsmsnap.a b/x86_64-w64-mingw32/lib/libipsmsnap.a
index 4f7ece8..562762c 100644
--- a/x86_64-w64-mingw32/lib/libipsmsnap.a
+++ b/x86_64-w64-mingw32/lib/libipsmsnap.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libipv6mon.a b/x86_64-w64-mingw32/lib/libipv6mon.a
index 6618799..75140ce 100644
--- a/x86_64-w64-mingw32/lib/libipv6mon.a
+++ b/x86_64-w64-mingw32/lib/libipv6mon.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libipxsap.a b/x86_64-w64-mingw32/lib/libipxsap.a
index 1905e15..eb1e78e 100644
--- a/x86_64-w64-mingw32/lib/libipxsap.a
+++ b/x86_64-w64-mingw32/lib/libipxsap.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libirclass.a b/x86_64-w64-mingw32/lib/libirclass.a
index 2f71122..4a08f43 100644
--- a/x86_64-w64-mingw32/lib/libirclass.a
+++ b/x86_64-w64-mingw32/lib/libirclass.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libisapips.a b/x86_64-w64-mingw32/lib/libisapips.a
index c511fbd..f8ebfe2 100644
--- a/x86_64-w64-mingw32/lib/libisapips.a
+++ b/x86_64-w64-mingw32/lib/libisapips.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libisatq.a b/x86_64-w64-mingw32/lib/libisatq.a
index 3f23603..654c2f6 100644
--- a/x86_64-w64-mingw32/lib/libisatq.a
+++ b/x86_64-w64-mingw32/lib/libisatq.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libiscomlog.a b/x86_64-w64-mingw32/lib/libiscomlog.a
index 402688f..7f73e1a 100644
--- a/x86_64-w64-mingw32/lib/libiscomlog.a
+++ b/x86_64-w64-mingw32/lib/libiscomlog.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libiscsidsc.a b/x86_64-w64-mingw32/lib/libiscsidsc.a
index 8b4b22b..9df0963 100644
--- a/x86_64-w64-mingw32/lib/libiscsidsc.a
+++ b/x86_64-w64-mingw32/lib/libiscsidsc.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libisign32.a b/x86_64-w64-mingw32/lib/libisign32.a
index bd8fe86..bdf1493 100644
--- a/x86_64-w64-mingw32/lib/libisign32.a
+++ b/x86_64-w64-mingw32/lib/libisign32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libitircl.a b/x86_64-w64-mingw32/lib/libitircl.a
index 03e5064..ad67d6b 100644
--- a/x86_64-w64-mingw32/lib/libitircl.a
+++ b/x86_64-w64-mingw32/lib/libitircl.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libitss.a b/x86_64-w64-mingw32/lib/libitss.a
index f7c2ffc..ca5c96d 100644
--- a/x86_64-w64-mingw32/lib/libitss.a
+++ b/x86_64-w64-mingw32/lib/libitss.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libixsso.a b/x86_64-w64-mingw32/lib/libixsso.a
index cc963e4..1f08f02 100644
--- a/x86_64-w64-mingw32/lib/libixsso.a
+++ b/x86_64-w64-mingw32/lib/libixsso.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libiyuv_32.a b/x86_64-w64-mingw32/lib/libiyuv_32.a
index b3a48a8..941f784 100644
--- a/x86_64-w64-mingw32/lib/libiyuv_32.a
+++ b/x86_64-w64-mingw32/lib/libiyuv_32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libjet500.a b/x86_64-w64-mingw32/lib/libjet500.a
index 1ff1e51..f774e72 100644
--- a/x86_64-w64-mingw32/lib/libjet500.a
+++ b/x86_64-w64-mingw32/lib/libjet500.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libjscript.a b/x86_64-w64-mingw32/lib/libjscript.a
index 2848098..a59a552 100644
--- a/x86_64-w64-mingw32/lib/libjscript.a
+++ b/x86_64-w64-mingw32/lib/libjscript.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libjsproxy.a b/x86_64-w64-mingw32/lib/libjsproxy.a
index 499e8fe..e8228e9 100644
--- a/x86_64-w64-mingw32/lib/libjsproxy.a
+++ b/x86_64-w64-mingw32/lib/libjsproxy.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbd101.a b/x86_64-w64-mingw32/lib/libkbd101.a
index a572e40..5a0960d 100644
--- a/x86_64-w64-mingw32/lib/libkbd101.a
+++ b/x86_64-w64-mingw32/lib/libkbd101.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbd101a.a b/x86_64-w64-mingw32/lib/libkbd101a.a
index 6cf6f78..acd79fc 100644
--- a/x86_64-w64-mingw32/lib/libkbd101a.a
+++ b/x86_64-w64-mingw32/lib/libkbd101a.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbd101b.a b/x86_64-w64-mingw32/lib/libkbd101b.a
index 467875d..f43707f 100644
--- a/x86_64-w64-mingw32/lib/libkbd101b.a
+++ b/x86_64-w64-mingw32/lib/libkbd101b.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbd101c.a b/x86_64-w64-mingw32/lib/libkbd101c.a
index 4254e41..5fda112 100644
--- a/x86_64-w64-mingw32/lib/libkbd101c.a
+++ b/x86_64-w64-mingw32/lib/libkbd101c.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbd103.a b/x86_64-w64-mingw32/lib/libkbd103.a
index 71f2d82..9284284 100644
--- a/x86_64-w64-mingw32/lib/libkbd103.a
+++ b/x86_64-w64-mingw32/lib/libkbd103.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbd106.a b/x86_64-w64-mingw32/lib/libkbd106.a
index 50decea..bd7585b 100644
--- a/x86_64-w64-mingw32/lib/libkbd106.a
+++ b/x86_64-w64-mingw32/lib/libkbd106.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbd106n.a b/x86_64-w64-mingw32/lib/libkbd106n.a
index 22e45a5..a9e2fd4 100644
--- a/x86_64-w64-mingw32/lib/libkbd106n.a
+++ b/x86_64-w64-mingw32/lib/libkbd106n.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbda1.a b/x86_64-w64-mingw32/lib/libkbda1.a
index 411c9a1..a6b4d1b 100644
--- a/x86_64-w64-mingw32/lib/libkbda1.a
+++ b/x86_64-w64-mingw32/lib/libkbda1.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbda2.a b/x86_64-w64-mingw32/lib/libkbda2.a
index 76317e9..fb52cc3 100644
--- a/x86_64-w64-mingw32/lib/libkbda2.a
+++ b/x86_64-w64-mingw32/lib/libkbda2.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbda3.a b/x86_64-w64-mingw32/lib/libkbda3.a
index cec3843..d20be29 100644
--- a/x86_64-w64-mingw32/lib/libkbda3.a
+++ b/x86_64-w64-mingw32/lib/libkbda3.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdal.a b/x86_64-w64-mingw32/lib/libkbdal.a
index 351e369..0cc73c1 100644
--- a/x86_64-w64-mingw32/lib/libkbdal.a
+++ b/x86_64-w64-mingw32/lib/libkbdal.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdarme.a b/x86_64-w64-mingw32/lib/libkbdarme.a
index b2d5dac..7bdb1bb 100644
--- a/x86_64-w64-mingw32/lib/libkbdarme.a
+++ b/x86_64-w64-mingw32/lib/libkbdarme.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdarmw.a b/x86_64-w64-mingw32/lib/libkbdarmw.a
index a8b18a1..421058f 100644
--- a/x86_64-w64-mingw32/lib/libkbdarmw.a
+++ b/x86_64-w64-mingw32/lib/libkbdarmw.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdax2.a b/x86_64-w64-mingw32/lib/libkbdax2.a
index 3379fbf..bcaea94 100644
--- a/x86_64-w64-mingw32/lib/libkbdax2.a
+++ b/x86_64-w64-mingw32/lib/libkbdax2.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdaze.a b/x86_64-w64-mingw32/lib/libkbdaze.a
index 603df31..52f16b3 100644
--- a/x86_64-w64-mingw32/lib/libkbdaze.a
+++ b/x86_64-w64-mingw32/lib/libkbdaze.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdazel.a b/x86_64-w64-mingw32/lib/libkbdazel.a
index 65b78e5..810b6ed 100644
--- a/x86_64-w64-mingw32/lib/libkbdazel.a
+++ b/x86_64-w64-mingw32/lib/libkbdazel.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdbe.a b/x86_64-w64-mingw32/lib/libkbdbe.a
index 0464cad..936293e 100644
--- a/x86_64-w64-mingw32/lib/libkbdbe.a
+++ b/x86_64-w64-mingw32/lib/libkbdbe.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdbene.a b/x86_64-w64-mingw32/lib/libkbdbene.a
index dea0604..cb070a1 100644
--- a/x86_64-w64-mingw32/lib/libkbdbene.a
+++ b/x86_64-w64-mingw32/lib/libkbdbene.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdblr.a b/x86_64-w64-mingw32/lib/libkbdblr.a
index 83e8966..778122e 100644
--- a/x86_64-w64-mingw32/lib/libkbdblr.a
+++ b/x86_64-w64-mingw32/lib/libkbdblr.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdbr.a b/x86_64-w64-mingw32/lib/libkbdbr.a
index c58dfe8..66fd59a 100644
--- a/x86_64-w64-mingw32/lib/libkbdbr.a
+++ b/x86_64-w64-mingw32/lib/libkbdbr.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdbu.a b/x86_64-w64-mingw32/lib/libkbdbu.a
index 502490b..7a76d6e 100644
--- a/x86_64-w64-mingw32/lib/libkbdbu.a
+++ b/x86_64-w64-mingw32/lib/libkbdbu.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdca.a b/x86_64-w64-mingw32/lib/libkbdca.a
index 1333af5..9ff3ad7 100644
--- a/x86_64-w64-mingw32/lib/libkbdca.a
+++ b/x86_64-w64-mingw32/lib/libkbdca.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdcan.a b/x86_64-w64-mingw32/lib/libkbdcan.a
index fd4724c..baa39ef 100644
--- a/x86_64-w64-mingw32/lib/libkbdcan.a
+++ b/x86_64-w64-mingw32/lib/libkbdcan.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdcr.a b/x86_64-w64-mingw32/lib/libkbdcr.a
index cd1b471..2cc6faa 100644
--- a/x86_64-w64-mingw32/lib/libkbdcr.a
+++ b/x86_64-w64-mingw32/lib/libkbdcr.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdcz.a b/x86_64-w64-mingw32/lib/libkbdcz.a
index 462147d..caf8211 100644
--- a/x86_64-w64-mingw32/lib/libkbdcz.a
+++ b/x86_64-w64-mingw32/lib/libkbdcz.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdcz1.a b/x86_64-w64-mingw32/lib/libkbdcz1.a
index 300cdc7..b6d610d 100644
--- a/x86_64-w64-mingw32/lib/libkbdcz1.a
+++ b/x86_64-w64-mingw32/lib/libkbdcz1.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdcz2.a b/x86_64-w64-mingw32/lib/libkbdcz2.a
index f2b61b0..69f763d 100644
--- a/x86_64-w64-mingw32/lib/libkbdcz2.a
+++ b/x86_64-w64-mingw32/lib/libkbdcz2.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdda.a b/x86_64-w64-mingw32/lib/libkbdda.a
index 8b53846..b1d4e2b 100644
--- a/x86_64-w64-mingw32/lib/libkbdda.a
+++ b/x86_64-w64-mingw32/lib/libkbdda.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbddiv1.a b/x86_64-w64-mingw32/lib/libkbddiv1.a
index 1902dcc..5517953 100644
--- a/x86_64-w64-mingw32/lib/libkbddiv1.a
+++ b/x86_64-w64-mingw32/lib/libkbddiv1.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbddiv2.a b/x86_64-w64-mingw32/lib/libkbddiv2.a
index 7612058..c6b2284 100644
--- a/x86_64-w64-mingw32/lib/libkbddiv2.a
+++ b/x86_64-w64-mingw32/lib/libkbddiv2.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbddv.a b/x86_64-w64-mingw32/lib/libkbddv.a
index 49b716f..d50ba3f 100644
--- a/x86_64-w64-mingw32/lib/libkbddv.a
+++ b/x86_64-w64-mingw32/lib/libkbddv.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdes.a b/x86_64-w64-mingw32/lib/libkbdes.a
index 167bf1f..9ce8811 100644
--- a/x86_64-w64-mingw32/lib/libkbdes.a
+++ b/x86_64-w64-mingw32/lib/libkbdes.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdest.a b/x86_64-w64-mingw32/lib/libkbdest.a
index 78a471c..b1b6aec 100644
--- a/x86_64-w64-mingw32/lib/libkbdest.a
+++ b/x86_64-w64-mingw32/lib/libkbdest.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdfa.a b/x86_64-w64-mingw32/lib/libkbdfa.a
index 2354038..c45febe 100644
--- a/x86_64-w64-mingw32/lib/libkbdfa.a
+++ b/x86_64-w64-mingw32/lib/libkbdfa.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdfc.a b/x86_64-w64-mingw32/lib/libkbdfc.a
index a4e208a..f992676 100644
--- a/x86_64-w64-mingw32/lib/libkbdfc.a
+++ b/x86_64-w64-mingw32/lib/libkbdfc.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdfi.a b/x86_64-w64-mingw32/lib/libkbdfi.a
index 8f3617e..9456ab9 100644
--- a/x86_64-w64-mingw32/lib/libkbdfi.a
+++ b/x86_64-w64-mingw32/lib/libkbdfi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdfo.a b/x86_64-w64-mingw32/lib/libkbdfo.a
index 38d8fa1..dff4e3e 100644
--- a/x86_64-w64-mingw32/lib/libkbdfo.a
+++ b/x86_64-w64-mingw32/lib/libkbdfo.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdfr.a b/x86_64-w64-mingw32/lib/libkbdfr.a
index 5606718..111f6ee 100644
--- a/x86_64-w64-mingw32/lib/libkbdfr.a
+++ b/x86_64-w64-mingw32/lib/libkbdfr.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdgae.a b/x86_64-w64-mingw32/lib/libkbdgae.a
index a5d526f..ff52bda 100644
--- a/x86_64-w64-mingw32/lib/libkbdgae.a
+++ b/x86_64-w64-mingw32/lib/libkbdgae.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdgeo.a b/x86_64-w64-mingw32/lib/libkbdgeo.a
index 80ee23f..d7935c6 100644
--- a/x86_64-w64-mingw32/lib/libkbdgeo.a
+++ b/x86_64-w64-mingw32/lib/libkbdgeo.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdgkl.a b/x86_64-w64-mingw32/lib/libkbdgkl.a
index 62700e1..bd06377 100644
--- a/x86_64-w64-mingw32/lib/libkbdgkl.a
+++ b/x86_64-w64-mingw32/lib/libkbdgkl.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdgr.a b/x86_64-w64-mingw32/lib/libkbdgr.a
index 2f7187d..e36e2f8 100644
--- a/x86_64-w64-mingw32/lib/libkbdgr.a
+++ b/x86_64-w64-mingw32/lib/libkbdgr.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdgr1.a b/x86_64-w64-mingw32/lib/libkbdgr1.a
index 64ac571..e7690ff 100644
--- a/x86_64-w64-mingw32/lib/libkbdgr1.a
+++ b/x86_64-w64-mingw32/lib/libkbdgr1.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdhe.a b/x86_64-w64-mingw32/lib/libkbdhe.a
index 812dd3a..8483ab2 100644
--- a/x86_64-w64-mingw32/lib/libkbdhe.a
+++ b/x86_64-w64-mingw32/lib/libkbdhe.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdhe220.a b/x86_64-w64-mingw32/lib/libkbdhe220.a
index 5c6b5fb..73e8fdf 100644
--- a/x86_64-w64-mingw32/lib/libkbdhe220.a
+++ b/x86_64-w64-mingw32/lib/libkbdhe220.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdhe319.a b/x86_64-w64-mingw32/lib/libkbdhe319.a
index 01d8496..d3f1c88 100644
--- a/x86_64-w64-mingw32/lib/libkbdhe319.a
+++ b/x86_64-w64-mingw32/lib/libkbdhe319.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdheb.a b/x86_64-w64-mingw32/lib/libkbdheb.a
index 89dbb9c..dbe68e6 100644
--- a/x86_64-w64-mingw32/lib/libkbdheb.a
+++ b/x86_64-w64-mingw32/lib/libkbdheb.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdhela2.a b/x86_64-w64-mingw32/lib/libkbdhela2.a
index d006f93..b4cf95c 100644
--- a/x86_64-w64-mingw32/lib/libkbdhela2.a
+++ b/x86_64-w64-mingw32/lib/libkbdhela2.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdhela3.a b/x86_64-w64-mingw32/lib/libkbdhela3.a
index 338aa6e..1b92113 100644
--- a/x86_64-w64-mingw32/lib/libkbdhela3.a
+++ b/x86_64-w64-mingw32/lib/libkbdhela3.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdhept.a b/x86_64-w64-mingw32/lib/libkbdhept.a
index f781185..97b3cc5 100644
--- a/x86_64-w64-mingw32/lib/libkbdhept.a
+++ b/x86_64-w64-mingw32/lib/libkbdhept.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdhu.a b/x86_64-w64-mingw32/lib/libkbdhu.a
index 45c1c1e..ad07a78 100644
--- a/x86_64-w64-mingw32/lib/libkbdhu.a
+++ b/x86_64-w64-mingw32/lib/libkbdhu.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdhu1.a b/x86_64-w64-mingw32/lib/libkbdhu1.a
index 5da719e..9669c81 100644
--- a/x86_64-w64-mingw32/lib/libkbdhu1.a
+++ b/x86_64-w64-mingw32/lib/libkbdhu1.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdibm02.a b/x86_64-w64-mingw32/lib/libkbdibm02.a
index 7857c9f..411b2cd 100644
--- a/x86_64-w64-mingw32/lib/libkbdibm02.a
+++ b/x86_64-w64-mingw32/lib/libkbdibm02.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdic.a b/x86_64-w64-mingw32/lib/libkbdic.a
index cea28ba..01a47f4 100644
--- a/x86_64-w64-mingw32/lib/libkbdic.a
+++ b/x86_64-w64-mingw32/lib/libkbdic.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdindev.a b/x86_64-w64-mingw32/lib/libkbdindev.a
index a780456..5164704 100644
--- a/x86_64-w64-mingw32/lib/libkbdindev.a
+++ b/x86_64-w64-mingw32/lib/libkbdindev.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdinguj.a b/x86_64-w64-mingw32/lib/libkbdinguj.a
index ad4694f..4af9bc7 100644
--- a/x86_64-w64-mingw32/lib/libkbdinguj.a
+++ b/x86_64-w64-mingw32/lib/libkbdinguj.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdinhin.a b/x86_64-w64-mingw32/lib/libkbdinhin.a
index 2f6ea41..717450a 100644
--- a/x86_64-w64-mingw32/lib/libkbdinhin.a
+++ b/x86_64-w64-mingw32/lib/libkbdinhin.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdinkan.a b/x86_64-w64-mingw32/lib/libkbdinkan.a
index 646da0a..ae824a9 100644
--- a/x86_64-w64-mingw32/lib/libkbdinkan.a
+++ b/x86_64-w64-mingw32/lib/libkbdinkan.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdinmar.a b/x86_64-w64-mingw32/lib/libkbdinmar.a
index 340004e..8f65ec0 100644
--- a/x86_64-w64-mingw32/lib/libkbdinmar.a
+++ b/x86_64-w64-mingw32/lib/libkbdinmar.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdinpun.a b/x86_64-w64-mingw32/lib/libkbdinpun.a
index 6b3ea79..113eb5b 100644
--- a/x86_64-w64-mingw32/lib/libkbdinpun.a
+++ b/x86_64-w64-mingw32/lib/libkbdinpun.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdintam.a b/x86_64-w64-mingw32/lib/libkbdintam.a
index a64c649..da95203 100644
--- a/x86_64-w64-mingw32/lib/libkbdintam.a
+++ b/x86_64-w64-mingw32/lib/libkbdintam.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdintel.a b/x86_64-w64-mingw32/lib/libkbdintel.a
index 66361ed..3195571 100644
--- a/x86_64-w64-mingw32/lib/libkbdintel.a
+++ b/x86_64-w64-mingw32/lib/libkbdintel.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdir.a b/x86_64-w64-mingw32/lib/libkbdir.a
index dc76ace..4333769 100644
--- a/x86_64-w64-mingw32/lib/libkbdir.a
+++ b/x86_64-w64-mingw32/lib/libkbdir.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdit.a b/x86_64-w64-mingw32/lib/libkbdit.a
index 2a225ed..f1279d8 100644
--- a/x86_64-w64-mingw32/lib/libkbdit.a
+++ b/x86_64-w64-mingw32/lib/libkbdit.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdit142.a b/x86_64-w64-mingw32/lib/libkbdit142.a
index 700a0da..362407c 100644
--- a/x86_64-w64-mingw32/lib/libkbdit142.a
+++ b/x86_64-w64-mingw32/lib/libkbdit142.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdjpn.a b/x86_64-w64-mingw32/lib/libkbdjpn.a
index 6f6d5e1..343e67b 100644
--- a/x86_64-w64-mingw32/lib/libkbdjpn.a
+++ b/x86_64-w64-mingw32/lib/libkbdjpn.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdkaz.a b/x86_64-w64-mingw32/lib/libkbdkaz.a
index c317adb..3eaa8ca 100644
--- a/x86_64-w64-mingw32/lib/libkbdkaz.a
+++ b/x86_64-w64-mingw32/lib/libkbdkaz.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdkor.a b/x86_64-w64-mingw32/lib/libkbdkor.a
index 4c4ee3d..a57d539 100644
--- a/x86_64-w64-mingw32/lib/libkbdkor.a
+++ b/x86_64-w64-mingw32/lib/libkbdkor.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdkyr.a b/x86_64-w64-mingw32/lib/libkbdkyr.a
index 2149fae..5d511d4 100644
--- a/x86_64-w64-mingw32/lib/libkbdkyr.a
+++ b/x86_64-w64-mingw32/lib/libkbdkyr.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdla.a b/x86_64-w64-mingw32/lib/libkbdla.a
index 84a3465..2238cec 100644
--- a/x86_64-w64-mingw32/lib/libkbdla.a
+++ b/x86_64-w64-mingw32/lib/libkbdla.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdlk41a.a b/x86_64-w64-mingw32/lib/libkbdlk41a.a
index 3edebdb..092329c 100644
--- a/x86_64-w64-mingw32/lib/libkbdlk41a.a
+++ b/x86_64-w64-mingw32/lib/libkbdlk41a.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdlk41j.a b/x86_64-w64-mingw32/lib/libkbdlk41j.a
index 1605d35..f19856a 100644
--- a/x86_64-w64-mingw32/lib/libkbdlk41j.a
+++ b/x86_64-w64-mingw32/lib/libkbdlk41j.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdlt.a b/x86_64-w64-mingw32/lib/libkbdlt.a
index 9546aa6..153e3d4 100644
--- a/x86_64-w64-mingw32/lib/libkbdlt.a
+++ b/x86_64-w64-mingw32/lib/libkbdlt.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdlt1.a b/x86_64-w64-mingw32/lib/libkbdlt1.a
index cf7ce6a..d23bdba 100644
--- a/x86_64-w64-mingw32/lib/libkbdlt1.a
+++ b/x86_64-w64-mingw32/lib/libkbdlt1.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdlv.a b/x86_64-w64-mingw32/lib/libkbdlv.a
index e6a8312..4570013 100644
--- a/x86_64-w64-mingw32/lib/libkbdlv.a
+++ b/x86_64-w64-mingw32/lib/libkbdlv.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdlv1.a b/x86_64-w64-mingw32/lib/libkbdlv1.a
index fd660c2..2433f38 100644
--- a/x86_64-w64-mingw32/lib/libkbdlv1.a
+++ b/x86_64-w64-mingw32/lib/libkbdlv1.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdmac.a b/x86_64-w64-mingw32/lib/libkbdmac.a
index 6b4d66e..bccc5db 100644
--- a/x86_64-w64-mingw32/lib/libkbdmac.a
+++ b/x86_64-w64-mingw32/lib/libkbdmac.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdmon.a b/x86_64-w64-mingw32/lib/libkbdmon.a
index 75627ca..628e42f 100644
--- a/x86_64-w64-mingw32/lib/libkbdmon.a
+++ b/x86_64-w64-mingw32/lib/libkbdmon.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdne.a b/x86_64-w64-mingw32/lib/libkbdne.a
index 52cedce..51567aa 100644
--- a/x86_64-w64-mingw32/lib/libkbdne.a
+++ b/x86_64-w64-mingw32/lib/libkbdne.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdnec.a b/x86_64-w64-mingw32/lib/libkbdnec.a
index 551fdbc..8a08e7b 100644
--- a/x86_64-w64-mingw32/lib/libkbdnec.a
+++ b/x86_64-w64-mingw32/lib/libkbdnec.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdnec95.a b/x86_64-w64-mingw32/lib/libkbdnec95.a
index 1bcf9f5..aa7ec8c 100644
--- a/x86_64-w64-mingw32/lib/libkbdnec95.a
+++ b/x86_64-w64-mingw32/lib/libkbdnec95.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdnecat.a b/x86_64-w64-mingw32/lib/libkbdnecat.a
index 7806433..79eb3c3 100644
--- a/x86_64-w64-mingw32/lib/libkbdnecat.a
+++ b/x86_64-w64-mingw32/lib/libkbdnecat.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdnecnt.a b/x86_64-w64-mingw32/lib/libkbdnecnt.a
index 33d6cd0..931031c 100644
--- a/x86_64-w64-mingw32/lib/libkbdnecnt.a
+++ b/x86_64-w64-mingw32/lib/libkbdnecnt.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdno.a b/x86_64-w64-mingw32/lib/libkbdno.a
index 9519faa..31e00ee 100644
--- a/x86_64-w64-mingw32/lib/libkbdno.a
+++ b/x86_64-w64-mingw32/lib/libkbdno.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdpl.a b/x86_64-w64-mingw32/lib/libkbdpl.a
index 660d2b6..510847d 100644
--- a/x86_64-w64-mingw32/lib/libkbdpl.a
+++ b/x86_64-w64-mingw32/lib/libkbdpl.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdpl1.a b/x86_64-w64-mingw32/lib/libkbdpl1.a
index fc9d8f9..269c676 100644
--- a/x86_64-w64-mingw32/lib/libkbdpl1.a
+++ b/x86_64-w64-mingw32/lib/libkbdpl1.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdpo.a b/x86_64-w64-mingw32/lib/libkbdpo.a
index e3e4e63..97677d4 100644
--- a/x86_64-w64-mingw32/lib/libkbdpo.a
+++ b/x86_64-w64-mingw32/lib/libkbdpo.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdro.a b/x86_64-w64-mingw32/lib/libkbdro.a
index 92d141e..7bd3c9d 100644
--- a/x86_64-w64-mingw32/lib/libkbdro.a
+++ b/x86_64-w64-mingw32/lib/libkbdro.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdru.a b/x86_64-w64-mingw32/lib/libkbdru.a
index 566a982..897d2aa 100644
--- a/x86_64-w64-mingw32/lib/libkbdru.a
+++ b/x86_64-w64-mingw32/lib/libkbdru.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdru1.a b/x86_64-w64-mingw32/lib/libkbdru1.a
index 8aa2a0b..4b212eb 100644
--- a/x86_64-w64-mingw32/lib/libkbdru1.a
+++ b/x86_64-w64-mingw32/lib/libkbdru1.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdsf.a b/x86_64-w64-mingw32/lib/libkbdsf.a
index d5ef3b8..7e79be7 100644
--- a/x86_64-w64-mingw32/lib/libkbdsf.a
+++ b/x86_64-w64-mingw32/lib/libkbdsf.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdsg.a b/x86_64-w64-mingw32/lib/libkbdsg.a
index a7ecd80..1ecb6bd 100644
--- a/x86_64-w64-mingw32/lib/libkbdsg.a
+++ b/x86_64-w64-mingw32/lib/libkbdsg.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdsl.a b/x86_64-w64-mingw32/lib/libkbdsl.a
index a1c22bd..490c674 100644
--- a/x86_64-w64-mingw32/lib/libkbdsl.a
+++ b/x86_64-w64-mingw32/lib/libkbdsl.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdsl1.a b/x86_64-w64-mingw32/lib/libkbdsl1.a
index d4a4e45..e97a0c9 100644
--- a/x86_64-w64-mingw32/lib/libkbdsl1.a
+++ b/x86_64-w64-mingw32/lib/libkbdsl1.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdsp.a b/x86_64-w64-mingw32/lib/libkbdsp.a
index a606317..1167127 100644
--- a/x86_64-w64-mingw32/lib/libkbdsp.a
+++ b/x86_64-w64-mingw32/lib/libkbdsp.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdsw.a b/x86_64-w64-mingw32/lib/libkbdsw.a
index 31481ec..cc5eb26 100644
--- a/x86_64-w64-mingw32/lib/libkbdsw.a
+++ b/x86_64-w64-mingw32/lib/libkbdsw.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdsyr1.a b/x86_64-w64-mingw32/lib/libkbdsyr1.a
index 495bbb5..56287b9 100644
--- a/x86_64-w64-mingw32/lib/libkbdsyr1.a
+++ b/x86_64-w64-mingw32/lib/libkbdsyr1.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdsyr2.a b/x86_64-w64-mingw32/lib/libkbdsyr2.a
index 2411a32..d8e621a 100644
--- a/x86_64-w64-mingw32/lib/libkbdsyr2.a
+++ b/x86_64-w64-mingw32/lib/libkbdsyr2.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdtat.a b/x86_64-w64-mingw32/lib/libkbdtat.a
index 32c5099..51e3b06 100644
--- a/x86_64-w64-mingw32/lib/libkbdtat.a
+++ b/x86_64-w64-mingw32/lib/libkbdtat.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdth0.a b/x86_64-w64-mingw32/lib/libkbdth0.a
index 80d10bf..9774ff6 100644
--- a/x86_64-w64-mingw32/lib/libkbdth0.a
+++ b/x86_64-w64-mingw32/lib/libkbdth0.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdth1.a b/x86_64-w64-mingw32/lib/libkbdth1.a
index a102079..5a944d2 100644
--- a/x86_64-w64-mingw32/lib/libkbdth1.a
+++ b/x86_64-w64-mingw32/lib/libkbdth1.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdth2.a b/x86_64-w64-mingw32/lib/libkbdth2.a
index 385ae32..5691aa7 100644
--- a/x86_64-w64-mingw32/lib/libkbdth2.a
+++ b/x86_64-w64-mingw32/lib/libkbdth2.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdth3.a b/x86_64-w64-mingw32/lib/libkbdth3.a
index aed5fc8..c920694 100644
--- a/x86_64-w64-mingw32/lib/libkbdth3.a
+++ b/x86_64-w64-mingw32/lib/libkbdth3.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdtuf.a b/x86_64-w64-mingw32/lib/libkbdtuf.a
index ff3a33c..726f9ba 100644
--- a/x86_64-w64-mingw32/lib/libkbdtuf.a
+++ b/x86_64-w64-mingw32/lib/libkbdtuf.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdtuq.a b/x86_64-w64-mingw32/lib/libkbdtuq.a
index 8851508..a918da4 100644
--- a/x86_64-w64-mingw32/lib/libkbdtuq.a
+++ b/x86_64-w64-mingw32/lib/libkbdtuq.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbduk.a b/x86_64-w64-mingw32/lib/libkbduk.a
index e963b2c..71ac605 100644
--- a/x86_64-w64-mingw32/lib/libkbduk.a
+++ b/x86_64-w64-mingw32/lib/libkbduk.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdur.a b/x86_64-w64-mingw32/lib/libkbdur.a
index 02afebf..c7708cd 100644
--- a/x86_64-w64-mingw32/lib/libkbdur.a
+++ b/x86_64-w64-mingw32/lib/libkbdur.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdurdu.a b/x86_64-w64-mingw32/lib/libkbdurdu.a
index 3b8ce74..a31bfc3 100644
--- a/x86_64-w64-mingw32/lib/libkbdurdu.a
+++ b/x86_64-w64-mingw32/lib/libkbdurdu.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdus.a b/x86_64-w64-mingw32/lib/libkbdus.a
index 5670075..f66b624 100644
--- a/x86_64-w64-mingw32/lib/libkbdus.a
+++ b/x86_64-w64-mingw32/lib/libkbdus.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdusa.a b/x86_64-w64-mingw32/lib/libkbdusa.a
index 577a481..1a96e10 100644
--- a/x86_64-w64-mingw32/lib/libkbdusa.a
+++ b/x86_64-w64-mingw32/lib/libkbdusa.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdusl.a b/x86_64-w64-mingw32/lib/libkbdusl.a
index 9234a9c..75c0335 100644
--- a/x86_64-w64-mingw32/lib/libkbdusl.a
+++ b/x86_64-w64-mingw32/lib/libkbdusl.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdusr.a b/x86_64-w64-mingw32/lib/libkbdusr.a
index 031b9f8..f2d149c 100644
--- a/x86_64-w64-mingw32/lib/libkbdusr.a
+++ b/x86_64-w64-mingw32/lib/libkbdusr.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdusx.a b/x86_64-w64-mingw32/lib/libkbdusx.a
index 5e87e1f..5d5cbc9 100644
--- a/x86_64-w64-mingw32/lib/libkbdusx.a
+++ b/x86_64-w64-mingw32/lib/libkbdusx.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbduzb.a b/x86_64-w64-mingw32/lib/libkbduzb.a
index 5c69446..e60c380 100644
--- a/x86_64-w64-mingw32/lib/libkbduzb.a
+++ b/x86_64-w64-mingw32/lib/libkbduzb.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdvntc.a b/x86_64-w64-mingw32/lib/libkbdvntc.a
index ae82ce4..9ec0f30 100644
--- a/x86_64-w64-mingw32/lib/libkbdvntc.a
+++ b/x86_64-w64-mingw32/lib/libkbdvntc.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdycc.a b/x86_64-w64-mingw32/lib/libkbdycc.a
index 8d1998e..6e86e25 100644
--- a/x86_64-w64-mingw32/lib/libkbdycc.a
+++ b/x86_64-w64-mingw32/lib/libkbdycc.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkbdycl.a b/x86_64-w64-mingw32/lib/libkbdycl.a
index 623fe5e..9a3594c 100644
--- a/x86_64-w64-mingw32/lib/libkbdycl.a
+++ b/x86_64-w64-mingw32/lib/libkbdycl.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkd1394.a b/x86_64-w64-mingw32/lib/libkd1394.a
index 134d4d9..aea112e 100644
--- a/x86_64-w64-mingw32/lib/libkd1394.a
+++ b/x86_64-w64-mingw32/lib/libkd1394.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkdcom.a b/x86_64-w64-mingw32/lib/libkdcom.a
index 7caed0c..b621f8d 100644
--- a/x86_64-w64-mingw32/lib/libkdcom.a
+++ b/x86_64-w64-mingw32/lib/libkdcom.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkerberos.a b/x86_64-w64-mingw32/lib/libkerberos.a
index 5ac09ab..9763c54 100644
--- a/x86_64-w64-mingw32/lib/libkerberos.a
+++ b/x86_64-w64-mingw32/lib/libkerberos.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkernel32.a b/x86_64-w64-mingw32/lib/libkernel32.a
index 0ee6180..bd2e7e5 100644
--- a/x86_64-w64-mingw32/lib/libkernel32.a
+++ b/x86_64-w64-mingw32/lib/libkernel32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkeymgr.a b/x86_64-w64-mingw32/lib/libkeymgr.a
index b9a5292..2b32eed 100644
--- a/x86_64-w64-mingw32/lib/libkeymgr.a
+++ b/x86_64-w64-mingw32/lib/libkeymgr.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkorwbrkr.a b/x86_64-w64-mingw32/lib/libkorwbrkr.a
index 5d8defc..cabe5c0 100644
--- a/x86_64-w64-mingw32/lib/libkorwbrkr.a
+++ b/x86_64-w64-mingw32/lib/libkorwbrkr.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libkrnlprov.a b/x86_64-w64-mingw32/lib/libkrnlprov.a
index 74dc4c5..5a69e9a 100644
--- a/x86_64-w64-mingw32/lib/libkrnlprov.a
+++ b/x86_64-w64-mingw32/lib/libkrnlprov.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libks.a b/x86_64-w64-mingw32/lib/libks.a
index 6b98d3a..5103d9c 100644
--- a/x86_64-w64-mingw32/lib/libks.a
+++ b/x86_64-w64-mingw32/lib/libks.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libksguid.a b/x86_64-w64-mingw32/lib/libksguid.a
index 8fb144d..b516caa 100644
--- a/x86_64-w64-mingw32/lib/libksguid.a
+++ b/x86_64-w64-mingw32/lib/libksguid.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libksuser.a b/x86_64-w64-mingw32/lib/libksuser.a
index a9c3416..b1d4125 100644
--- a/x86_64-w64-mingw32/lib/libksuser.a
+++ b/x86_64-w64-mingw32/lib/libksuser.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libktmw32.a b/x86_64-w64-mingw32/lib/libktmw32.a
index 20850a4..4190153 100644
--- a/x86_64-w64-mingw32/lib/libktmw32.a
+++ b/x86_64-w64-mingw32/lib/libktmw32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/liblangwrbk.a b/x86_64-w64-mingw32/lib/liblangwrbk.a
index 7883f82..1a7dd8e 100644
--- a/x86_64-w64-mingw32/lib/liblangwrbk.a
+++ b/x86_64-w64-mingw32/lib/liblangwrbk.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/liblargeint.a b/x86_64-w64-mingw32/lib/liblargeint.a
index ff97b80..ea9db2d 100644
--- a/x86_64-w64-mingw32/lib/liblargeint.a
+++ b/x86_64-w64-mingw32/lib/liblargeint.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/liblicdll.a b/x86_64-w64-mingw32/lib/liblicdll.a
index c6f6338..3c3d397 100644
--- a/x86_64-w64-mingw32/lib/liblicdll.a
+++ b/x86_64-w64-mingw32/lib/liblicdll.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/liblicmgr10.a b/x86_64-w64-mingw32/lib/liblicmgr10.a
index 73e84b7..06cffc9 100644
--- a/x86_64-w64-mingw32/lib/liblicmgr10.a
+++ b/x86_64-w64-mingw32/lib/liblicmgr10.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/liblicwmi.a b/x86_64-w64-mingw32/lib/liblicwmi.a
index 749c78e..d1f85ae 100644
--- a/x86_64-w64-mingw32/lib/liblicwmi.a
+++ b/x86_64-w64-mingw32/lib/liblicwmi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/liblinkinfo.a b/x86_64-w64-mingw32/lib/liblinkinfo.a
index affadf0..945386c 100644
--- a/x86_64-w64-mingw32/lib/liblinkinfo.a
+++ b/x86_64-w64-mingw32/lib/liblinkinfo.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/liblmhsvc.a b/x86_64-w64-mingw32/lib/liblmhsvc.a
index 1209560..b64eb4d 100644
--- a/x86_64-w64-mingw32/lib/liblmhsvc.a
+++ b/x86_64-w64-mingw32/lib/liblmhsvc.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/liblmmib2.a b/x86_64-w64-mingw32/lib/liblmmib2.a
index dc6d444..f7b025b 100644
--- a/x86_64-w64-mingw32/lib/liblmmib2.a
+++ b/x86_64-w64-mingw32/lib/liblmmib2.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/liblmrt.a b/x86_64-w64-mingw32/lib/liblmrt.a
index ccc611c..4bd3fe0 100644
--- a/x86_64-w64-mingw32/lib/liblmrt.a
+++ b/x86_64-w64-mingw32/lib/liblmrt.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libloadperf.a b/x86_64-w64-mingw32/lib/libloadperf.a
index 33ec544..90bda10 100644
--- a/x86_64-w64-mingw32/lib/libloadperf.a
+++ b/x86_64-w64-mingw32/lib/libloadperf.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/liblocalsec.a b/x86_64-w64-mingw32/lib/liblocalsec.a
index 00ce195..0f8c9c6 100644
--- a/x86_64-w64-mingw32/lib/liblocalsec.a
+++ b/x86_64-w64-mingw32/lib/liblocalsec.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/liblocalspl.a b/x86_64-w64-mingw32/lib/liblocalspl.a
index c1a97a1..79b56af 100644
--- a/x86_64-w64-mingw32/lib/liblocalspl.a
+++ b/x86_64-w64-mingw32/lib/liblocalspl.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/liblocalui.a b/x86_64-w64-mingw32/lib/liblocalui.a
index 3201af6..a057f5f 100644
--- a/x86_64-w64-mingw32/lib/liblocalui.a
+++ b/x86_64-w64-mingw32/lib/liblocalui.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/liblocationapi.a b/x86_64-w64-mingw32/lib/liblocationapi.a
index 1914364..0b5c11c 100644
--- a/x86_64-w64-mingw32/lib/liblocationapi.a
+++ b/x86_64-w64-mingw32/lib/liblocationapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/liblog.a b/x86_64-w64-mingw32/lib/liblog.a
index 2c34858..2551c49 100644
--- a/x86_64-w64-mingw32/lib/liblog.a
+++ b/x86_64-w64-mingw32/lib/liblog.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libloghours.a b/x86_64-w64-mingw32/lib/libloghours.a
index de2014f..50fbcc0 100644
--- a/x86_64-w64-mingw32/lib/libloghours.a
+++ b/x86_64-w64-mingw32/lib/libloghours.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/liblogscrpt.a b/x86_64-w64-mingw32/lib/liblogscrpt.a
index 3cf32f2..bca11c1 100644
--- a/x86_64-w64-mingw32/lib/liblogscrpt.a
+++ b/x86_64-w64-mingw32/lib/liblogscrpt.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/liblonsint.a b/x86_64-w64-mingw32/lib/liblonsint.a
index b74b410..99175a9 100644
--- a/x86_64-w64-mingw32/lib/liblonsint.a
+++ b/x86_64-w64-mingw32/lib/liblonsint.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/liblpdsvc.a b/x86_64-w64-mingw32/lib/liblpdsvc.a
index bb85266..b9066f7 100644
--- a/x86_64-w64-mingw32/lib/liblpdsvc.a
+++ b/x86_64-w64-mingw32/lib/liblpdsvc.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/liblpk.a b/x86_64-w64-mingw32/lib/liblpk.a
index 3130729..ceefeec 100644
--- a/x86_64-w64-mingw32/lib/liblpk.a
+++ b/x86_64-w64-mingw32/lib/liblpk.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/liblprhelp.a b/x86_64-w64-mingw32/lib/liblprhelp.a
index 78653d0..a3ca76c 100644
--- a/x86_64-w64-mingw32/lib/liblprhelp.a
+++ b/x86_64-w64-mingw32/lib/liblprhelp.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/liblprmon.a b/x86_64-w64-mingw32/lib/liblprmon.a
index 6cee67b..e9a8325 100644
--- a/x86_64-w64-mingw32/lib/liblprmon.a
+++ b/x86_64-w64-mingw32/lib/liblprmon.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/liblprmonui.a b/x86_64-w64-mingw32/lib/liblprmonui.a
index 8f8d051..c1996ac 100644
--- a/x86_64-w64-mingw32/lib/liblprmonui.a
+++ b/x86_64-w64-mingw32/lib/liblprmonui.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/liblsasrv.a b/x86_64-w64-mingw32/lib/liblsasrv.a
index 5bcc4c5..ba32380 100644
--- a/x86_64-w64-mingw32/lib/liblsasrv.a
+++ b/x86_64-w64-mingw32/lib/liblsasrv.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/liblz32.a b/x86_64-w64-mingw32/lib/liblz32.a
index 69997ee..c54116a 100644
--- a/x86_64-w64-mingw32/lib/liblz32.a
+++ b/x86_64-w64-mingw32/lib/liblz32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libm.a b/x86_64-w64-mingw32/lib/libm.a
index c843427..f84a801 100644
--- a/x86_64-w64-mingw32/lib/libm.a
+++ b/x86_64-w64-mingw32/lib/libm.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmag_hook.a b/x86_64-w64-mingw32/lib/libmag_hook.a
index 3807eb2..25bfc64 100644
--- a/x86_64-w64-mingw32/lib/libmag_hook.a
+++ b/x86_64-w64-mingw32/lib/libmag_hook.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmailmsg.a b/x86_64-w64-mingw32/lib/libmailmsg.a
index 30cd8ec..2039953 100644
--- a/x86_64-w64-mingw32/lib/libmailmsg.a
+++ b/x86_64-w64-mingw32/lib/libmailmsg.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmapi32.a b/x86_64-w64-mingw32/lib/libmapi32.a
index e8abe51..a566fb1 100644
--- a/x86_64-w64-mingw32/lib/libmapi32.a
+++ b/x86_64-w64-mingw32/lib/libmapi32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmapistub.a b/x86_64-w64-mingw32/lib/libmapistub.a
index a0a3a30..42087f9 100644
--- a/x86_64-w64-mingw32/lib/libmapistub.a
+++ b/x86_64-w64-mingw32/lib/libmapistub.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmcastmib.a b/x86_64-w64-mingw32/lib/libmcastmib.a
index 79792ed..8aa0f15 100644
--- a/x86_64-w64-mingw32/lib/libmcastmib.a
+++ b/x86_64-w64-mingw32/lib/libmcastmib.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmcd32.a b/x86_64-w64-mingw32/lib/libmcd32.a
index 3f3b9be..8e61f8a 100644
--- a/x86_64-w64-mingw32/lib/libmcd32.a
+++ b/x86_64-w64-mingw32/lib/libmcd32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmcdsrv32.a b/x86_64-w64-mingw32/lib/libmcdsrv32.a
index 700c915..e513305 100644
--- a/x86_64-w64-mingw32/lib/libmcdsrv32.a
+++ b/x86_64-w64-mingw32/lib/libmcdsrv32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmchgrcoi.a b/x86_64-w64-mingw32/lib/libmchgrcoi.a
index 91aaca0..e1d53fc 100644
--- a/x86_64-w64-mingw32/lib/libmchgrcoi.a
+++ b/x86_64-w64-mingw32/lib/libmchgrcoi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmciavi32.a b/x86_64-w64-mingw32/lib/libmciavi32.a
index 4e83789..38a3b4d 100644
--- a/x86_64-w64-mingw32/lib/libmciavi32.a
+++ b/x86_64-w64-mingw32/lib/libmciavi32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmcicda.a b/x86_64-w64-mingw32/lib/libmcicda.a
index cec09b2..e20a292 100644
--- a/x86_64-w64-mingw32/lib/libmcicda.a
+++ b/x86_64-w64-mingw32/lib/libmcicda.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmciole32.a b/x86_64-w64-mingw32/lib/libmciole32.a
index ba4e1c0..1099cc3 100644
--- a/x86_64-w64-mingw32/lib/libmciole32.a
+++ b/x86_64-w64-mingw32/lib/libmciole32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmciqtz32.a b/x86_64-w64-mingw32/lib/libmciqtz32.a
index b6b3be1..8b64b45 100644
--- a/x86_64-w64-mingw32/lib/libmciqtz32.a
+++ b/x86_64-w64-mingw32/lib/libmciqtz32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmciseq.a b/x86_64-w64-mingw32/lib/libmciseq.a
index e6f374d..0e4a7c3 100644
--- a/x86_64-w64-mingw32/lib/libmciseq.a
+++ b/x86_64-w64-mingw32/lib/libmciseq.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmciwave.a b/x86_64-w64-mingw32/lib/libmciwave.a
index d1c8a2d..1c2a677 100644
--- a/x86_64-w64-mingw32/lib/libmciwave.a
+++ b/x86_64-w64-mingw32/lib/libmciwave.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmdhcp.a b/x86_64-w64-mingw32/lib/libmdhcp.a
index b455116..1d9c6ce 100644
--- a/x86_64-w64-mingw32/lib/libmdhcp.a
+++ b/x86_64-w64-mingw32/lib/libmdhcp.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmdminst.a b/x86_64-w64-mingw32/lib/libmdminst.a
index 8dd7fd3..f8cbda9 100644
--- a/x86_64-w64-mingw32/lib/libmdminst.a
+++ b/x86_64-w64-mingw32/lib/libmdminst.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmetadata.a b/x86_64-w64-mingw32/lib/libmetadata.a
index 6cccfef..bb3fc04 100644
--- a/x86_64-w64-mingw32/lib/libmetadata.a
+++ b/x86_64-w64-mingw32/lib/libmetadata.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmf.a b/x86_64-w64-mingw32/lib/libmf.a
index 54eb797..05560ab 100644
--- a/x86_64-w64-mingw32/lib/libmf.a
+++ b/x86_64-w64-mingw32/lib/libmf.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmf3216.a b/x86_64-w64-mingw32/lib/libmf3216.a
index d3dcf7a..8fde98f 100644
--- a/x86_64-w64-mingw32/lib/libmf3216.a
+++ b/x86_64-w64-mingw32/lib/libmf3216.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmfc42.a b/x86_64-w64-mingw32/lib/libmfc42.a
index cda70d8..11638a8 100644
--- a/x86_64-w64-mingw32/lib/libmfc42.a
+++ b/x86_64-w64-mingw32/lib/libmfc42.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmfc42u.a b/x86_64-w64-mingw32/lib/libmfc42u.a
index 5bd9451..fb68e5e 100644
--- a/x86_64-w64-mingw32/lib/libmfc42u.a
+++ b/x86_64-w64-mingw32/lib/libmfc42u.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmfcsubs.a b/x86_64-w64-mingw32/lib/libmfcsubs.a
index 8cc5b7f..2c2f4a6 100644
--- a/x86_64-w64-mingw32/lib/libmfcsubs.a
+++ b/x86_64-w64-mingw32/lib/libmfcsubs.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmfplat.a b/x86_64-w64-mingw32/lib/libmfplat.a
index a2d005f..58c9375 100644
--- a/x86_64-w64-mingw32/lib/libmfplat.a
+++ b/x86_64-w64-mingw32/lib/libmfplat.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmfuuid.a b/x86_64-w64-mingw32/lib/libmfuuid.a
index 220c183..bb223b9 100644
--- a/x86_64-w64-mingw32/lib/libmfuuid.a
+++ b/x86_64-w64-mingw32/lib/libmfuuid.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmgmtapi.a b/x86_64-w64-mingw32/lib/libmgmtapi.a
index bd1289d..2c0cf17 100644
--- a/x86_64-w64-mingw32/lib/libmgmtapi.a
+++ b/x86_64-w64-mingw32/lib/libmgmtapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmidimap.a b/x86_64-w64-mingw32/lib/libmidimap.a
index b376bd1..bcd8d65 100644
--- a/x86_64-w64-mingw32/lib/libmidimap.a
+++ b/x86_64-w64-mingw32/lib/libmidimap.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmigism.a b/x86_64-w64-mingw32/lib/libmigism.a
index a0ef70f..fc1a579 100644
--- a/x86_64-w64-mingw32/lib/libmigism.a
+++ b/x86_64-w64-mingw32/lib/libmigism.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmiglibnt.a b/x86_64-w64-mingw32/lib/libmiglibnt.a
index d5f04f5..1d8604d 100644
--- a/x86_64-w64-mingw32/lib/libmiglibnt.a
+++ b/x86_64-w64-mingw32/lib/libmiglibnt.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmimefilt.a b/x86_64-w64-mingw32/lib/libmimefilt.a
index d472eba..6461ff5 100644
--- a/x86_64-w64-mingw32/lib/libmimefilt.a
+++ b/x86_64-w64-mingw32/lib/libmimefilt.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmingw32.a b/x86_64-w64-mingw32/lib/libmingw32.a
index 6423eed..441745d 100644
--- a/x86_64-w64-mingw32/lib/libmingw32.a
+++ b/x86_64-w64-mingw32/lib/libmingw32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmingwex.a b/x86_64-w64-mingw32/lib/libmingwex.a
index 7cb5c9e..57308f4 100644
--- a/x86_64-w64-mingw32/lib/libmingwex.a
+++ b/x86_64-w64-mingw32/lib/libmingwex.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmingwthrd.a b/x86_64-w64-mingw32/lib/libmingwthrd.a
index a6883b1..f7d05e6 100644
--- a/x86_64-w64-mingw32/lib/libmingwthrd.a
+++ b/x86_64-w64-mingw32/lib/libmingwthrd.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmlang.a b/x86_64-w64-mingw32/lib/libmlang.a
index b02b5b5..29b26a2 100644
--- a/x86_64-w64-mingw32/lib/libmlang.a
+++ b/x86_64-w64-mingw32/lib/libmlang.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmll_hp.a b/x86_64-w64-mingw32/lib/libmll_hp.a
index 82ce026..cf54866 100644
--- a/x86_64-w64-mingw32/lib/libmll_hp.a
+++ b/x86_64-w64-mingw32/lib/libmll_hp.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmll_mtf.a b/x86_64-w64-mingw32/lib/libmll_mtf.a
index f169baa..f5df8af 100644
--- a/x86_64-w64-mingw32/lib/libmll_mtf.a
+++ b/x86_64-w64-mingw32/lib/libmll_mtf.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmll_qic.a b/x86_64-w64-mingw32/lib/libmll_qic.a
index 1d53eb6..824c625 100644
--- a/x86_64-w64-mingw32/lib/libmll_qic.a
+++ b/x86_64-w64-mingw32/lib/libmll_qic.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmmcbase.a b/x86_64-w64-mingw32/lib/libmmcbase.a
index 382c0d1..e52e23f 100644
--- a/x86_64-w64-mingw32/lib/libmmcbase.a
+++ b/x86_64-w64-mingw32/lib/libmmcbase.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmmcndmgr.a b/x86_64-w64-mingw32/lib/libmmcndmgr.a
index 5f804c6..3298010 100644
--- a/x86_64-w64-mingw32/lib/libmmcndmgr.a
+++ b/x86_64-w64-mingw32/lib/libmmcndmgr.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmmcshext.a b/x86_64-w64-mingw32/lib/libmmcshext.a
index b94d7b5..850ac03 100644
--- a/x86_64-w64-mingw32/lib/libmmcshext.a
+++ b/x86_64-w64-mingw32/lib/libmmcshext.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmmfutil.a b/x86_64-w64-mingw32/lib/libmmfutil.a
index 1e63804..254c461 100644
--- a/x86_64-w64-mingw32/lib/libmmfutil.a
+++ b/x86_64-w64-mingw32/lib/libmmfutil.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmmutilse.a b/x86_64-w64-mingw32/lib/libmmutilse.a
index fd9f0c2..4cd2053 100644
--- a/x86_64-w64-mingw32/lib/libmmutilse.a
+++ b/x86_64-w64-mingw32/lib/libmmutilse.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmobsync.a b/x86_64-w64-mingw32/lib/libmobsync.a
index 2fe6e43..264b567 100644
--- a/x86_64-w64-mingw32/lib/libmobsync.a
+++ b/x86_64-w64-mingw32/lib/libmobsync.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmodemui.a b/x86_64-w64-mingw32/lib/libmodemui.a
index 6711646..bf3a974 100644
--- a/x86_64-w64-mingw32/lib/libmodemui.a
+++ b/x86_64-w64-mingw32/lib/libmodemui.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmofd.a b/x86_64-w64-mingw32/lib/libmofd.a
index 354f692..cb50497 100644
--- a/x86_64-w64-mingw32/lib/libmofd.a
+++ b/x86_64-w64-mingw32/lib/libmofd.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmoldname.a b/x86_64-w64-mingw32/lib/libmoldname.a
index ff63a86..ffb1beb 100644
--- a/x86_64-w64-mingw32/lib/libmoldname.a
+++ b/x86_64-w64-mingw32/lib/libmoldname.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmpr.a b/x86_64-w64-mingw32/lib/libmpr.a
index c8c712c..c43220f 100644
--- a/x86_64-w64-mingw32/lib/libmpr.a
+++ b/x86_64-w64-mingw32/lib/libmpr.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmprapi.a b/x86_64-w64-mingw32/lib/libmprapi.a
index d813ca9..7b8172e 100644
--- a/x86_64-w64-mingw32/lib/libmprapi.a
+++ b/x86_64-w64-mingw32/lib/libmprapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmprddm.a b/x86_64-w64-mingw32/lib/libmprddm.a
index 42c4762..593bdff 100644
--- a/x86_64-w64-mingw32/lib/libmprddm.a
+++ b/x86_64-w64-mingw32/lib/libmprddm.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmprdim.a b/x86_64-w64-mingw32/lib/libmprdim.a
index ac98b7c..460826f 100644
--- a/x86_64-w64-mingw32/lib/libmprdim.a
+++ b/x86_64-w64-mingw32/lib/libmprdim.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmprmsg.a b/x86_64-w64-mingw32/lib/libmprmsg.a
index 1d1f389..8402c2e 100644
--- a/x86_64-w64-mingw32/lib/libmprmsg.a
+++ b/x86_64-w64-mingw32/lib/libmprmsg.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmprui.a b/x86_64-w64-mingw32/lib/libmprui.a
index c90eff0..df70241 100644
--- a/x86_64-w64-mingw32/lib/libmprui.a
+++ b/x86_64-w64-mingw32/lib/libmprui.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmqad.a b/x86_64-w64-mingw32/lib/libmqad.a
index 51976af..217a9cd 100644
--- a/x86_64-w64-mingw32/lib/libmqad.a
+++ b/x86_64-w64-mingw32/lib/libmqad.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmqcertui.a b/x86_64-w64-mingw32/lib/libmqcertui.a
index 9b2a690..60fa2bd 100644
--- a/x86_64-w64-mingw32/lib/libmqcertui.a
+++ b/x86_64-w64-mingw32/lib/libmqcertui.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmqdscli.a b/x86_64-w64-mingw32/lib/libmqdscli.a
index 930cd85..c5642cb 100644
--- a/x86_64-w64-mingw32/lib/libmqdscli.a
+++ b/x86_64-w64-mingw32/lib/libmqdscli.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmqgentr.a b/x86_64-w64-mingw32/lib/libmqgentr.a
index 616f647..754ef8f 100644
--- a/x86_64-w64-mingw32/lib/libmqgentr.a
+++ b/x86_64-w64-mingw32/lib/libmqgentr.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmqise.a b/x86_64-w64-mingw32/lib/libmqise.a
index 1889bbd..809955e 100644
--- a/x86_64-w64-mingw32/lib/libmqise.a
+++ b/x86_64-w64-mingw32/lib/libmqise.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmqlogmgr.a b/x86_64-w64-mingw32/lib/libmqlogmgr.a
index 2569862..239f833 100644
--- a/x86_64-w64-mingw32/lib/libmqlogmgr.a
+++ b/x86_64-w64-mingw32/lib/libmqlogmgr.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmqoa.a b/x86_64-w64-mingw32/lib/libmqoa.a
index e4812c5..d187c55 100644
--- a/x86_64-w64-mingw32/lib/libmqoa.a
+++ b/x86_64-w64-mingw32/lib/libmqoa.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmqperf.a b/x86_64-w64-mingw32/lib/libmqperf.a
index 40378fe..e21427c 100644
--- a/x86_64-w64-mingw32/lib/libmqperf.a
+++ b/x86_64-w64-mingw32/lib/libmqperf.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmqqm.a b/x86_64-w64-mingw32/lib/libmqqm.a
index 7fe2a3c..3ccf485 100644
--- a/x86_64-w64-mingw32/lib/libmqqm.a
+++ b/x86_64-w64-mingw32/lib/libmqqm.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmqrt.a b/x86_64-w64-mingw32/lib/libmqrt.a
index 40d3e3a..b146f82 100644
--- a/x86_64-w64-mingw32/lib/libmqrt.a
+++ b/x86_64-w64-mingw32/lib/libmqrt.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmqrtdep.a b/x86_64-w64-mingw32/lib/libmqrtdep.a
index de317d8..54de72d 100644
--- a/x86_64-w64-mingw32/lib/libmqrtdep.a
+++ b/x86_64-w64-mingw32/lib/libmqrtdep.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmqsec.a b/x86_64-w64-mingw32/lib/libmqsec.a
index 4426155..420e772 100644
--- a/x86_64-w64-mingw32/lib/libmqsec.a
+++ b/x86_64-w64-mingw32/lib/libmqsec.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmqsnap.a b/x86_64-w64-mingw32/lib/libmqsnap.a
index 300b937..ccc5df2 100644
--- a/x86_64-w64-mingw32/lib/libmqsnap.a
+++ b/x86_64-w64-mingw32/lib/libmqsnap.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmqtrig.a b/x86_64-w64-mingw32/lib/libmqtrig.a
index ec3eac7..7f8d205 100644
--- a/x86_64-w64-mingw32/lib/libmqtrig.a
+++ b/x86_64-w64-mingw32/lib/libmqtrig.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmqupgrd.a b/x86_64-w64-mingw32/lib/libmqupgrd.a
index c7c6486..1826021 100644
--- a/x86_64-w64-mingw32/lib/libmqupgrd.a
+++ b/x86_64-w64-mingw32/lib/libmqupgrd.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmqutil.a b/x86_64-w64-mingw32/lib/libmqutil.a
index 680a004..5a17c67 100644
--- a/x86_64-w64-mingw32/lib/libmqutil.a
+++ b/x86_64-w64-mingw32/lib/libmqutil.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsaatext.a b/x86_64-w64-mingw32/lib/libmsaatext.a
index acef538..f666ddf 100644
--- a/x86_64-w64-mingw32/lib/libmsaatext.a
+++ b/x86_64-w64-mingw32/lib/libmsaatext.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsacm32.a b/x86_64-w64-mingw32/lib/libmsacm32.a
index d85e164..00a9e05 100644
--- a/x86_64-w64-mingw32/lib/libmsacm32.a
+++ b/x86_64-w64-mingw32/lib/libmsacm32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsadce.a b/x86_64-w64-mingw32/lib/libmsadce.a
index 7a4fdfd..613caca 100644
--- a/x86_64-w64-mingw32/lib/libmsadce.a
+++ b/x86_64-w64-mingw32/lib/libmsadce.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsadcf.a b/x86_64-w64-mingw32/lib/libmsadcf.a
index f9b4370..9ae0a7f 100644
--- a/x86_64-w64-mingw32/lib/libmsadcf.a
+++ b/x86_64-w64-mingw32/lib/libmsadcf.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsadco.a b/x86_64-w64-mingw32/lib/libmsadco.a
index 4c05b64..c080a4b 100644
--- a/x86_64-w64-mingw32/lib/libmsadco.a
+++ b/x86_64-w64-mingw32/lib/libmsadco.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsadcs.a b/x86_64-w64-mingw32/lib/libmsadcs.a
index 670d55c..c4edb88 100644
--- a/x86_64-w64-mingw32/lib/libmsadcs.a
+++ b/x86_64-w64-mingw32/lib/libmsadcs.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsadds.a b/x86_64-w64-mingw32/lib/libmsadds.a
index 1e15b94..70a577a 100644
--- a/x86_64-w64-mingw32/lib/libmsadds.a
+++ b/x86_64-w64-mingw32/lib/libmsadds.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsado15.a b/x86_64-w64-mingw32/lib/libmsado15.a
index 1a6a274..11ee1f5 100644
--- a/x86_64-w64-mingw32/lib/libmsado15.a
+++ b/x86_64-w64-mingw32/lib/libmsado15.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsadomd.a b/x86_64-w64-mingw32/lib/libmsadomd.a
index fe9eff0..42127dd 100644
--- a/x86_64-w64-mingw32/lib/libmsadomd.a
+++ b/x86_64-w64-mingw32/lib/libmsadomd.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsador15.a b/x86_64-w64-mingw32/lib/libmsador15.a
index 9d93f5a..212e9c2 100644
--- a/x86_64-w64-mingw32/lib/libmsador15.a
+++ b/x86_64-w64-mingw32/lib/libmsador15.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsadox.a b/x86_64-w64-mingw32/lib/libmsadox.a
index 755e6a5..f36290e 100644
--- a/x86_64-w64-mingw32/lib/libmsadox.a
+++ b/x86_64-w64-mingw32/lib/libmsadox.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsadrh15.a b/x86_64-w64-mingw32/lib/libmsadrh15.a
index df411ae..391b48c 100644
--- a/x86_64-w64-mingw32/lib/libmsadrh15.a
+++ b/x86_64-w64-mingw32/lib/libmsadrh15.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsafd.a b/x86_64-w64-mingw32/lib/libmsafd.a
index 755b6c8..c4edea0 100644
--- a/x86_64-w64-mingw32/lib/libmsafd.a
+++ b/x86_64-w64-mingw32/lib/libmsafd.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsasn1.a b/x86_64-w64-mingw32/lib/libmsasn1.a
index d3dff92..51e2c19 100644
--- a/x86_64-w64-mingw32/lib/libmsasn1.a
+++ b/x86_64-w64-mingw32/lib/libmsasn1.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmscandui.a b/x86_64-w64-mingw32/lib/libmscandui.a
index 0b3daba..7ad5300 100644
--- a/x86_64-w64-mingw32/lib/libmscandui.a
+++ b/x86_64-w64-mingw32/lib/libmscandui.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmscat32.a b/x86_64-w64-mingw32/lib/libmscat32.a
index 91e7296..13916a5 100644
--- a/x86_64-w64-mingw32/lib/libmscat32.a
+++ b/x86_64-w64-mingw32/lib/libmscat32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmscms.a b/x86_64-w64-mingw32/lib/libmscms.a
index 86fde2e..ec1be2c 100644
--- a/x86_64-w64-mingw32/lib/libmscms.a
+++ b/x86_64-w64-mingw32/lib/libmscms.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsctfmonitor.a b/x86_64-w64-mingw32/lib/libmsctfmonitor.a
index 699e26d..75cf820 100644
--- a/x86_64-w64-mingw32/lib/libmsctfmonitor.a
+++ b/x86_64-w64-mingw32/lib/libmsctfmonitor.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsctfp.a b/x86_64-w64-mingw32/lib/libmsctfp.a
index d1df872..8993d46 100644
--- a/x86_64-w64-mingw32/lib/libmsctfp.a
+++ b/x86_64-w64-mingw32/lib/libmsctfp.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsdadiag.a b/x86_64-w64-mingw32/lib/libmsdadiag.a
index 1500a31..4ccfb14 100644
--- a/x86_64-w64-mingw32/lib/libmsdadiag.a
+++ b/x86_64-w64-mingw32/lib/libmsdadiag.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsdaosp.a b/x86_64-w64-mingw32/lib/libmsdaosp.a
index f68d146..694d40f 100644
--- a/x86_64-w64-mingw32/lib/libmsdaosp.a
+++ b/x86_64-w64-mingw32/lib/libmsdaosp.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsdaprst.a b/x86_64-w64-mingw32/lib/libmsdaprst.a
index 7282ad8..760a888 100644
--- a/x86_64-w64-mingw32/lib/libmsdaprst.a
+++ b/x86_64-w64-mingw32/lib/libmsdaprst.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsdaps.a b/x86_64-w64-mingw32/lib/libmsdaps.a
index 468c497..7991d59 100644
--- a/x86_64-w64-mingw32/lib/libmsdaps.a
+++ b/x86_64-w64-mingw32/lib/libmsdaps.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsdarem.a b/x86_64-w64-mingw32/lib/libmsdarem.a
index 77124e4..f6cae4e 100644
--- a/x86_64-w64-mingw32/lib/libmsdarem.a
+++ b/x86_64-w64-mingw32/lib/libmsdarem.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsdart.a b/x86_64-w64-mingw32/lib/libmsdart.a
index 3b30771..5f5c412 100644
--- a/x86_64-w64-mingw32/lib/libmsdart.a
+++ b/x86_64-w64-mingw32/lib/libmsdart.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsdatl3.a b/x86_64-w64-mingw32/lib/libmsdatl3.a
index f96bf46..cb15e9f 100644
--- a/x86_64-w64-mingw32/lib/libmsdatl3.a
+++ b/x86_64-w64-mingw32/lib/libmsdatl3.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsdfmap.a b/x86_64-w64-mingw32/lib/libmsdfmap.a
index 643c95c..6eb25d9 100644
--- a/x86_64-w64-mingw32/lib/libmsdfmap.a
+++ b/x86_64-w64-mingw32/lib/libmsdfmap.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsdmo.a b/x86_64-w64-mingw32/lib/libmsdmo.a
index 6879220..77fccc7 100644
--- a/x86_64-w64-mingw32/lib/libmsdmo.a
+++ b/x86_64-w64-mingw32/lib/libmsdmo.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsdrm.a b/x86_64-w64-mingw32/lib/libmsdrm.a
index bbff124..ad2c94c 100644
--- a/x86_64-w64-mingw32/lib/libmsdrm.a
+++ b/x86_64-w64-mingw32/lib/libmsdrm.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsdtclog.a b/x86_64-w64-mingw32/lib/libmsdtclog.a
index f9585e7..0ac9f13 100644
--- a/x86_64-w64-mingw32/lib/libmsdtclog.a
+++ b/x86_64-w64-mingw32/lib/libmsdtclog.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsdtcprx.a b/x86_64-w64-mingw32/lib/libmsdtcprx.a
index 7cd4124..44c453a 100644
--- a/x86_64-w64-mingw32/lib/libmsdtcprx.a
+++ b/x86_64-w64-mingw32/lib/libmsdtcprx.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsdtcstp.a b/x86_64-w64-mingw32/lib/libmsdtcstp.a
index 930450f..5f306ff 100644
--- a/x86_64-w64-mingw32/lib/libmsdtcstp.a
+++ b/x86_64-w64-mingw32/lib/libmsdtcstp.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsdtctm.a b/x86_64-w64-mingw32/lib/libmsdtctm.a
index 1ed6412..123c489 100644
--- a/x86_64-w64-mingw32/lib/libmsdtctm.a
+++ b/x86_64-w64-mingw32/lib/libmsdtctm.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsdtcuiu.a b/x86_64-w64-mingw32/lib/libmsdtcuiu.a
index ff7e4ad..ef67c98 100644
--- a/x86_64-w64-mingw32/lib/libmsdtcuiu.a
+++ b/x86_64-w64-mingw32/lib/libmsdtcuiu.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsftedit.a b/x86_64-w64-mingw32/lib/libmsftedit.a
index 48d2436..f2ff039 100644
--- a/x86_64-w64-mingw32/lib/libmsftedit.a
+++ b/x86_64-w64-mingw32/lib/libmsftedit.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsgina.a b/x86_64-w64-mingw32/lib/libmsgina.a
index 2042e33..bb60c99 100644
--- a/x86_64-w64-mingw32/lib/libmsgina.a
+++ b/x86_64-w64-mingw32/lib/libmsgina.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsgr3en.a b/x86_64-w64-mingw32/lib/libmsgr3en.a
index e343917..fe68b24 100644
--- a/x86_64-w64-mingw32/lib/libmsgr3en.a
+++ b/x86_64-w64-mingw32/lib/libmsgr3en.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsgrocm.a b/x86_64-w64-mingw32/lib/libmsgrocm.a
index a8a56fd..b1a18c9 100644
--- a/x86_64-w64-mingw32/lib/libmsgrocm.a
+++ b/x86_64-w64-mingw32/lib/libmsgrocm.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsgsvc.a b/x86_64-w64-mingw32/lib/libmsgsvc.a
index 6649bdd..1d9b0fd 100644
--- a/x86_64-w64-mingw32/lib/libmsgsvc.a
+++ b/x86_64-w64-mingw32/lib/libmsgsvc.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmshtml.a b/x86_64-w64-mingw32/lib/libmshtml.a
index 0826e4c..385a10e 100644
--- a/x86_64-w64-mingw32/lib/libmshtml.a
+++ b/x86_64-w64-mingw32/lib/libmshtml.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmshtmled.a b/x86_64-w64-mingw32/lib/libmshtmled.a
index 5d4e4c5..f301b69 100644
--- a/x86_64-w64-mingw32/lib/libmshtmled.a
+++ b/x86_64-w64-mingw32/lib/libmshtmled.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsi.a b/x86_64-w64-mingw32/lib/libmsi.a
index 7e4e16c..155e0d7 100644
--- a/x86_64-w64-mingw32/lib/libmsi.a
+++ b/x86_64-w64-mingw32/lib/libmsi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsident.a b/x86_64-w64-mingw32/lib/libmsident.a
index 4cb776c..610ef58 100644
--- a/x86_64-w64-mingw32/lib/libmsident.a
+++ b/x86_64-w64-mingw32/lib/libmsident.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsieftp.a b/x86_64-w64-mingw32/lib/libmsieftp.a
index 98bb6ca..d712b8d 100644
--- a/x86_64-w64-mingw32/lib/libmsieftp.a
+++ b/x86_64-w64-mingw32/lib/libmsieftp.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsihnd.a b/x86_64-w64-mingw32/lib/libmsihnd.a
index d79231e..ce89f92 100644
--- a/x86_64-w64-mingw32/lib/libmsihnd.a
+++ b/x86_64-w64-mingw32/lib/libmsihnd.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsimg32.a b/x86_64-w64-mingw32/lib/libmsimg32.a
index 3544206..bff8aa1 100644
--- a/x86_64-w64-mingw32/lib/libmsimg32.a
+++ b/x86_64-w64-mingw32/lib/libmsimg32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsimtf.a b/x86_64-w64-mingw32/lib/libmsimtf.a
index 9bf9c5f..dc10c63 100644
--- a/x86_64-w64-mingw32/lib/libmsimtf.a
+++ b/x86_64-w64-mingw32/lib/libmsimtf.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsinfo.a b/x86_64-w64-mingw32/lib/libmsinfo.a
index 31b4a8a..9370774 100644
--- a/x86_64-w64-mingw32/lib/libmsinfo.a
+++ b/x86_64-w64-mingw32/lib/libmsinfo.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsiprov.a b/x86_64-w64-mingw32/lib/libmsiprov.a
index de4daf2..2960775 100644
--- a/x86_64-w64-mingw32/lib/libmsiprov.a
+++ b/x86_64-w64-mingw32/lib/libmsiprov.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsir3jp.a b/x86_64-w64-mingw32/lib/libmsir3jp.a
index 64fbeb1..ca92faf 100644
--- a/x86_64-w64-mingw32/lib/libmsir3jp.a
+++ b/x86_64-w64-mingw32/lib/libmsir3jp.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsisip.a b/x86_64-w64-mingw32/lib/libmsisip.a
index 39d69f9..646ddb5 100644
--- a/x86_64-w64-mingw32/lib/libmsisip.a
+++ b/x86_64-w64-mingw32/lib/libmsisip.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmslbui.a b/x86_64-w64-mingw32/lib/libmslbui.a
index 3baee59..e26a34b 100644
--- a/x86_64-w64-mingw32/lib/libmslbui.a
+++ b/x86_64-w64-mingw32/lib/libmslbui.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsls31.a b/x86_64-w64-mingw32/lib/libmsls31.a
index ee19f03..572a683 100644
--- a/x86_64-w64-mingw32/lib/libmsls31.a
+++ b/x86_64-w64-mingw32/lib/libmsls31.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmslwvtts.a b/x86_64-w64-mingw32/lib/libmslwvtts.a
index 50f7c16..c5526df 100644
--- a/x86_64-w64-mingw32/lib/libmslwvtts.a
+++ b/x86_64-w64-mingw32/lib/libmslwvtts.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsmqocm.a b/x86_64-w64-mingw32/lib/libmsmqocm.a
index 087eef1..defa55e 100644
--- a/x86_64-w64-mingw32/lib/libmsmqocm.a
+++ b/x86_64-w64-mingw32/lib/libmsmqocm.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsobcomm.a b/x86_64-w64-mingw32/lib/libmsobcomm.a
index 18ef3b0..4bbeba6 100644
--- a/x86_64-w64-mingw32/lib/libmsobcomm.a
+++ b/x86_64-w64-mingw32/lib/libmsobcomm.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsobdl.a b/x86_64-w64-mingw32/lib/libmsobdl.a
index e23c890..586bb49 100644
--- a/x86_64-w64-mingw32/lib/libmsobdl.a
+++ b/x86_64-w64-mingw32/lib/libmsobdl.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsobmain.a b/x86_64-w64-mingw32/lib/libmsobmain.a
index 95d41b2..43627de 100644
--- a/x86_64-w64-mingw32/lib/libmsobmain.a
+++ b/x86_64-w64-mingw32/lib/libmsobmain.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsobshel.a b/x86_64-w64-mingw32/lib/libmsobshel.a
index 471ff0d..7c80f61 100644
--- a/x86_64-w64-mingw32/lib/libmsobshel.a
+++ b/x86_64-w64-mingw32/lib/libmsobshel.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsobweb.a b/x86_64-w64-mingw32/lib/libmsobweb.a
index db9d27a..1ff5962 100644
--- a/x86_64-w64-mingw32/lib/libmsobweb.a
+++ b/x86_64-w64-mingw32/lib/libmsobweb.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsoe.a b/x86_64-w64-mingw32/lib/libmsoe.a
index db06597..3ce38be 100644
--- a/x86_64-w64-mingw32/lib/libmsoe.a
+++ b/x86_64-w64-mingw32/lib/libmsoe.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsoeacct.a b/x86_64-w64-mingw32/lib/libmsoeacct.a
index a12ca1b..c416cb8 100644
--- a/x86_64-w64-mingw32/lib/libmsoeacct.a
+++ b/x86_64-w64-mingw32/lib/libmsoeacct.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsoert2.a b/x86_64-w64-mingw32/lib/libmsoert2.a
index 79f6e7b..f2c1558 100644
--- a/x86_64-w64-mingw32/lib/libmsoert2.a
+++ b/x86_64-w64-mingw32/lib/libmsoert2.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmspatcha.a b/x86_64-w64-mingw32/lib/libmspatcha.a
index 216b9fa..4d732f6 100644
--- a/x86_64-w64-mingw32/lib/libmspatcha.a
+++ b/x86_64-w64-mingw32/lib/libmspatcha.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmspmsnsv.a b/x86_64-w64-mingw32/lib/libmspmsnsv.a
index f76609b..6e112f7 100644
--- a/x86_64-w64-mingw32/lib/libmspmsnsv.a
+++ b/x86_64-w64-mingw32/lib/libmspmsnsv.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsports.a b/x86_64-w64-mingw32/lib/libmsports.a
index f1cf4cf..4d9dcc5 100644
--- a/x86_64-w64-mingw32/lib/libmsports.a
+++ b/x86_64-w64-mingw32/lib/libmsports.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsrating.a b/x86_64-w64-mingw32/lib/libmsrating.a
index 5c10495..f77f61e 100644
--- a/x86_64-w64-mingw32/lib/libmsrating.a
+++ b/x86_64-w64-mingw32/lib/libmsrating.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsrle32.a b/x86_64-w64-mingw32/lib/libmsrle32.a
index b48f868..75d2f19 100644
--- a/x86_64-w64-mingw32/lib/libmsrle32.a
+++ b/x86_64-w64-mingw32/lib/libmsrle32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmssign32.a b/x86_64-w64-mingw32/lib/libmssign32.a
index a6cb623..c87572b 100644
--- a/x86_64-w64-mingw32/lib/libmssign32.a
+++ b/x86_64-w64-mingw32/lib/libmssign32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmssip32.a b/x86_64-w64-mingw32/lib/libmssip32.a
index cc2736d..341fb7d 100644
--- a/x86_64-w64-mingw32/lib/libmssip32.a
+++ b/x86_64-w64-mingw32/lib/libmssip32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmstask.a b/x86_64-w64-mingw32/lib/libmstask.a
index bd45faf..739c839 100644
--- a/x86_64-w64-mingw32/lib/libmstask.a
+++ b/x86_64-w64-mingw32/lib/libmstask.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmstime.a b/x86_64-w64-mingw32/lib/libmstime.a
index 4cff9e9..e7b11e7 100644
--- a/x86_64-w64-mingw32/lib/libmstime.a
+++ b/x86_64-w64-mingw32/lib/libmstime.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmstlsapi.a b/x86_64-w64-mingw32/lib/libmstlsapi.a
index 5933d46..918f01f 100644
--- a/x86_64-w64-mingw32/lib/libmstlsapi.a
+++ b/x86_64-w64-mingw32/lib/libmstlsapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmstscax.a b/x86_64-w64-mingw32/lib/libmstscax.a
index 636050c..6e72fbf 100644
--- a/x86_64-w64-mingw32/lib/libmstscax.a
+++ b/x86_64-w64-mingw32/lib/libmstscax.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsutb.a b/x86_64-w64-mingw32/lib/libmsutb.a
index 868fb8d..96b0a6a 100644
--- a/x86_64-w64-mingw32/lib/libmsutb.a
+++ b/x86_64-w64-mingw32/lib/libmsutb.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsv1_0.a b/x86_64-w64-mingw32/lib/libmsv1_0.a
index 51e21e8..4af0218 100644
--- a/x86_64-w64-mingw32/lib/libmsv1_0.a
+++ b/x86_64-w64-mingw32/lib/libmsv1_0.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsvcirt.a b/x86_64-w64-mingw32/lib/libmsvcirt.a
index d6facb5..91c7973 100644
--- a/x86_64-w64-mingw32/lib/libmsvcirt.a
+++ b/x86_64-w64-mingw32/lib/libmsvcirt.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsvcp60.a b/x86_64-w64-mingw32/lib/libmsvcp60.a
index bc53924..15e6a86 100644
--- a/x86_64-w64-mingw32/lib/libmsvcp60.a
+++ b/x86_64-w64-mingw32/lib/libmsvcp60.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsvcr100.a b/x86_64-w64-mingw32/lib/libmsvcr100.a
index a446820..c0d4e4c 100644
--- a/x86_64-w64-mingw32/lib/libmsvcr100.a
+++ b/x86_64-w64-mingw32/lib/libmsvcr100.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsvcr110.a b/x86_64-w64-mingw32/lib/libmsvcr110.a
index 384fdcd..db1f7aa 100644
--- a/x86_64-w64-mingw32/lib/libmsvcr110.a
+++ b/x86_64-w64-mingw32/lib/libmsvcr110.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsvcr120.a b/x86_64-w64-mingw32/lib/libmsvcr120.a
index 0fee78e..c081940 100644
--- a/x86_64-w64-mingw32/lib/libmsvcr120.a
+++ b/x86_64-w64-mingw32/lib/libmsvcr120.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsvcr120d.a b/x86_64-w64-mingw32/lib/libmsvcr120d.a
index dc69d5c..376146a 100644
--- a/x86_64-w64-mingw32/lib/libmsvcr120d.a
+++ b/x86_64-w64-mingw32/lib/libmsvcr120d.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsvcr80.a b/x86_64-w64-mingw32/lib/libmsvcr80.a
index 1de33cf..3aff927 100644
--- a/x86_64-w64-mingw32/lib/libmsvcr80.a
+++ b/x86_64-w64-mingw32/lib/libmsvcr80.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsvcr90.a b/x86_64-w64-mingw32/lib/libmsvcr90.a
index 6b72a78..d3d3a24 100644
--- a/x86_64-w64-mingw32/lib/libmsvcr90.a
+++ b/x86_64-w64-mingw32/lib/libmsvcr90.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsvcr90d.a b/x86_64-w64-mingw32/lib/libmsvcr90d.a
index 575367f..339af8f 100644
--- a/x86_64-w64-mingw32/lib/libmsvcr90d.a
+++ b/x86_64-w64-mingw32/lib/libmsvcr90d.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsvcrt.a b/x86_64-w64-mingw32/lib/libmsvcrt.a
index 38c0659..577c312 100644
--- a/x86_64-w64-mingw32/lib/libmsvcrt.a
+++ b/x86_64-w64-mingw32/lib/libmsvcrt.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsvfw32.a b/x86_64-w64-mingw32/lib/libmsvfw32.a
index e0b4b3c..e94ada5 100644
--- a/x86_64-w64-mingw32/lib/libmsvfw32.a
+++ b/x86_64-w64-mingw32/lib/libmsvfw32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsvidc32.a b/x86_64-w64-mingw32/lib/libmsvidc32.a
index 9092703..0fdc889 100644
--- a/x86_64-w64-mingw32/lib/libmsvidc32.a
+++ b/x86_64-w64-mingw32/lib/libmsvidc32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsvidctl.a b/x86_64-w64-mingw32/lib/libmsvidctl.a
index 33a58f9..bc09177 100644
--- a/x86_64-w64-mingw32/lib/libmsvidctl.a
+++ b/x86_64-w64-mingw32/lib/libmsvidctl.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsw3prt.a b/x86_64-w64-mingw32/lib/libmsw3prt.a
index 79c4003..68c622a 100644
--- a/x86_64-w64-mingw32/lib/libmsw3prt.a
+++ b/x86_64-w64-mingw32/lib/libmsw3prt.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmswsock.a b/x86_64-w64-mingw32/lib/libmswsock.a
index b9f89fb..22eeded 100644
--- a/x86_64-w64-mingw32/lib/libmswsock.a
+++ b/x86_64-w64-mingw32/lib/libmswsock.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsxactps.a b/x86_64-w64-mingw32/lib/libmsxactps.a
index 85d3c30..de2e7bc 100644
--- a/x86_64-w64-mingw32/lib/libmsxactps.a
+++ b/x86_64-w64-mingw32/lib/libmsxactps.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsxml3.a b/x86_64-w64-mingw32/lib/libmsxml3.a
index 272b465..e03d93f 100644
--- a/x86_64-w64-mingw32/lib/libmsxml3.a
+++ b/x86_64-w64-mingw32/lib/libmsxml3.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsxs64.a b/x86_64-w64-mingw32/lib/libmsxs64.a
index 9ede4b7..db66904 100644
--- a/x86_64-w64-mingw32/lib/libmsxs64.a
+++ b/x86_64-w64-mingw32/lib/libmsxs64.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmsyuv.a b/x86_64-w64-mingw32/lib/libmsyuv.a
index 48dfdaf..06d8449 100644
--- a/x86_64-w64-mingw32/lib/libmsyuv.a
+++ b/x86_64-w64-mingw32/lib/libmsyuv.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmtxclu.a b/x86_64-w64-mingw32/lib/libmtxclu.a
index 167cf2b..c1cbeed 100644
--- a/x86_64-w64-mingw32/lib/libmtxclu.a
+++ b/x86_64-w64-mingw32/lib/libmtxclu.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmtxdm.a b/x86_64-w64-mingw32/lib/libmtxdm.a
index b07f9f2..f81c6d5 100644
--- a/x86_64-w64-mingw32/lib/libmtxdm.a
+++ b/x86_64-w64-mingw32/lib/libmtxdm.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmtxex.a b/x86_64-w64-mingw32/lib/libmtxex.a
index e8aa30c..53ca33a 100644
--- a/x86_64-w64-mingw32/lib/libmtxex.a
+++ b/x86_64-w64-mingw32/lib/libmtxex.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmtxoci.a b/x86_64-w64-mingw32/lib/libmtxoci.a
index cd760e3..3ff5c32 100644
--- a/x86_64-w64-mingw32/lib/libmtxoci.a
+++ b/x86_64-w64-mingw32/lib/libmtxoci.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmycomput.a b/x86_64-w64-mingw32/lib/libmycomput.a
index 1ca7ce6..fb9b5a6 100644
--- a/x86_64-w64-mingw32/lib/libmycomput.a
+++ b/x86_64-w64-mingw32/lib/libmycomput.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libmydocs.a b/x86_64-w64-mingw32/lib/libmydocs.a
index 7de9900..037a702 100644
--- a/x86_64-w64-mingw32/lib/libmydocs.a
+++ b/x86_64-w64-mingw32/lib/libmydocs.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libnarrhook.a b/x86_64-w64-mingw32/lib/libnarrhook.a
index 2356051..d209cec 100644
--- a/x86_64-w64-mingw32/lib/libnarrhook.a
+++ b/x86_64-w64-mingw32/lib/libnarrhook.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libncobjapi.a b/x86_64-w64-mingw32/lib/libncobjapi.a
index 4a6e5b9..9ead978 100644
--- a/x86_64-w64-mingw32/lib/libncobjapi.a
+++ b/x86_64-w64-mingw32/lib/libncobjapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libncprov.a b/x86_64-w64-mingw32/lib/libncprov.a
index 2f6481d..2e8465a 100644
--- a/x86_64-w64-mingw32/lib/libncprov.a
+++ b/x86_64-w64-mingw32/lib/libncprov.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libncrypt.a b/x86_64-w64-mingw32/lib/libncrypt.a
index c7ffb4a..76c9a3a 100644
--- a/x86_64-w64-mingw32/lib/libncrypt.a
+++ b/x86_64-w64-mingw32/lib/libncrypt.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libncxpnt.a b/x86_64-w64-mingw32/lib/libncxpnt.a
index e09751b..2f989f7 100644
--- a/x86_64-w64-mingw32/lib/libncxpnt.a
+++ b/x86_64-w64-mingw32/lib/libncxpnt.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libnddeapi.a b/x86_64-w64-mingw32/lib/libnddeapi.a
index 68d8b03..3ede36a 100644
--- a/x86_64-w64-mingw32/lib/libnddeapi.a
+++ b/x86_64-w64-mingw32/lib/libnddeapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libnddenb32.a b/x86_64-w64-mingw32/lib/libnddenb32.a
index 319aa0b..3580144 100644
--- a/x86_64-w64-mingw32/lib/libnddenb32.a
+++ b/x86_64-w64-mingw32/lib/libnddenb32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libndfapi.a b/x86_64-w64-mingw32/lib/libndfapi.a
index 75c78d1..9ccc44b 100644
--- a/x86_64-w64-mingw32/lib/libndfapi.a
+++ b/x86_64-w64-mingw32/lib/libndfapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libndis.a b/x86_64-w64-mingw32/lib/libndis.a
index 7961987..8433492 100644
--- a/x86_64-w64-mingw32/lib/libndis.a
+++ b/x86_64-w64-mingw32/lib/libndis.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libndisnpp.a b/x86_64-w64-mingw32/lib/libndisnpp.a
index b500262..770565b 100644
--- a/x86_64-w64-mingw32/lib/libndisnpp.a
+++ b/x86_64-w64-mingw32/lib/libndisnpp.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libnetapi32.a b/x86_64-w64-mingw32/lib/libnetapi32.a
index 7876a33..9c0764c 100644
--- a/x86_64-w64-mingw32/lib/libnetapi32.a
+++ b/x86_64-w64-mingw32/lib/libnetapi32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libnetcfgx.a b/x86_64-w64-mingw32/lib/libnetcfgx.a
index 2c62356..29330c0 100644
--- a/x86_64-w64-mingw32/lib/libnetcfgx.a
+++ b/x86_64-w64-mingw32/lib/libnetcfgx.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libnetid.a b/x86_64-w64-mingw32/lib/libnetid.a
index ce22e48..2ff33b1 100644
--- a/x86_64-w64-mingw32/lib/libnetid.a
+++ b/x86_64-w64-mingw32/lib/libnetid.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libnetlogon.a b/x86_64-w64-mingw32/lib/libnetlogon.a
index 1b23144..32d6d9a 100644
--- a/x86_64-w64-mingw32/lib/libnetlogon.a
+++ b/x86_64-w64-mingw32/lib/libnetlogon.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libnetman.a b/x86_64-w64-mingw32/lib/libnetman.a
index 638874e..23fca04 100644
--- a/x86_64-w64-mingw32/lib/libnetman.a
+++ b/x86_64-w64-mingw32/lib/libnetman.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libnetoc.a b/x86_64-w64-mingw32/lib/libnetoc.a
index d52b832..c18f042 100644
--- a/x86_64-w64-mingw32/lib/libnetoc.a
+++ b/x86_64-w64-mingw32/lib/libnetoc.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libnetplwiz.a b/x86_64-w64-mingw32/lib/libnetplwiz.a
index 9a8fb8d..ebaf24a 100644
--- a/x86_64-w64-mingw32/lib/libnetplwiz.a
+++ b/x86_64-w64-mingw32/lib/libnetplwiz.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libnetrap.a b/x86_64-w64-mingw32/lib/libnetrap.a
index a8e2fc2..612683b 100644
--- a/x86_64-w64-mingw32/lib/libnetrap.a
+++ b/x86_64-w64-mingw32/lib/libnetrap.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libnetshell.a b/x86_64-w64-mingw32/lib/libnetshell.a
index e16a62a..57d19bf 100644
--- a/x86_64-w64-mingw32/lib/libnetshell.a
+++ b/x86_64-w64-mingw32/lib/libnetshell.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libnetui0.a b/x86_64-w64-mingw32/lib/libnetui0.a
index 371bb83..76d2f8f 100644
--- a/x86_64-w64-mingw32/lib/libnetui0.a
+++ b/x86_64-w64-mingw32/lib/libnetui0.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libnetui1.a b/x86_64-w64-mingw32/lib/libnetui1.a
index 54b50e1..8f58f0a 100644
--- a/x86_64-w64-mingw32/lib/libnetui1.a
+++ b/x86_64-w64-mingw32/lib/libnetui1.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libnetui2.a b/x86_64-w64-mingw32/lib/libnetui2.a
index 166a925..a3d96bd 100644
--- a/x86_64-w64-mingw32/lib/libnetui2.a
+++ b/x86_64-w64-mingw32/lib/libnetui2.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libnewdev.a b/x86_64-w64-mingw32/lib/libnewdev.a
index 761f664..a8e6ece 100644
--- a/x86_64-w64-mingw32/lib/libnewdev.a
+++ b/x86_64-w64-mingw32/lib/libnewdev.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libnextlink.a b/x86_64-w64-mingw32/lib/libnextlink.a
index 003c088..499fbde 100644
--- a/x86_64-w64-mingw32/lib/libnextlink.a
+++ b/x86_64-w64-mingw32/lib/libnextlink.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libnlhtml.a b/x86_64-w64-mingw32/lib/libnlhtml.a
index bae7003..fb7b1de 100644
--- a/x86_64-w64-mingw32/lib/libnlhtml.a
+++ b/x86_64-w64-mingw32/lib/libnlhtml.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libnntpadm.a b/x86_64-w64-mingw32/lib/libnntpadm.a
index b0ab909..2afe29d 100644
--- a/x86_64-w64-mingw32/lib/libnntpadm.a
+++ b/x86_64-w64-mingw32/lib/libnntpadm.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libnntpapi.a b/x86_64-w64-mingw32/lib/libnntpapi.a
index 58ec7d9..09578ec 100644
--- a/x86_64-w64-mingw32/lib/libnntpapi.a
+++ b/x86_64-w64-mingw32/lib/libnntpapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libnntpsnap.a b/x86_64-w64-mingw32/lib/libnntpsnap.a
index 5888942..ee961a6 100644
--- a/x86_64-w64-mingw32/lib/libnntpsnap.a
+++ b/x86_64-w64-mingw32/lib/libnntpsnap.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libnormaliz.a b/x86_64-w64-mingw32/lib/libnormaliz.a
index 6615352..5cb1c47 100644
--- a/x86_64-w64-mingw32/lib/libnormaliz.a
+++ b/x86_64-w64-mingw32/lib/libnormaliz.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libnpptools.a b/x86_64-w64-mingw32/lib/libnpptools.a
index 79ad2a6..a24d457 100644
--- a/x86_64-w64-mingw32/lib/libnpptools.a
+++ b/x86_64-w64-mingw32/lib/libnpptools.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libnshipsec.a b/x86_64-w64-mingw32/lib/libnshipsec.a
index bf16ecc..575611c 100644
--- a/x86_64-w64-mingw32/lib/libnshipsec.a
+++ b/x86_64-w64-mingw32/lib/libnshipsec.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libntdll.a b/x86_64-w64-mingw32/lib/libntdll.a
index 56de4bf..20a6a12 100644
--- a/x86_64-w64-mingw32/lib/libntdll.a
+++ b/x86_64-w64-mingw32/lib/libntdll.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libntdsapi.a b/x86_64-w64-mingw32/lib/libntdsapi.a
index a5c1ba1..ff1bfef 100644
--- a/x86_64-w64-mingw32/lib/libntdsapi.a
+++ b/x86_64-w64-mingw32/lib/libntdsapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libntdsbcli.a b/x86_64-w64-mingw32/lib/libntdsbcli.a
index c34cfca..4dd91b8 100644
--- a/x86_64-w64-mingw32/lib/libntdsbcli.a
+++ b/x86_64-w64-mingw32/lib/libntdsbcli.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libntevt.a b/x86_64-w64-mingw32/lib/libntevt.a
index 8435792..eb0f02c 100644
--- a/x86_64-w64-mingw32/lib/libntevt.a
+++ b/x86_64-w64-mingw32/lib/libntevt.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libntfsdrv.a b/x86_64-w64-mingw32/lib/libntfsdrv.a
index cf1148d..6365248 100644
--- a/x86_64-w64-mingw32/lib/libntfsdrv.a
+++ b/x86_64-w64-mingw32/lib/libntfsdrv.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libntlanman.a b/x86_64-w64-mingw32/lib/libntlanman.a
index dc9b081..c5180e5 100644
--- a/x86_64-w64-mingw32/lib/libntlanman.a
+++ b/x86_64-w64-mingw32/lib/libntlanman.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libntlanui.a b/x86_64-w64-mingw32/lib/libntlanui.a
index 3325c6a..0f5ac37 100644
--- a/x86_64-w64-mingw32/lib/libntlanui.a
+++ b/x86_64-w64-mingw32/lib/libntlanui.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libntlanui2.a b/x86_64-w64-mingw32/lib/libntlanui2.a
index 07d3288..0807ce3 100644
--- a/x86_64-w64-mingw32/lib/libntlanui2.a
+++ b/x86_64-w64-mingw32/lib/libntlanui2.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libntlsapi.a b/x86_64-w64-mingw32/lib/libntlsapi.a
index b5bec4b..f00b3c8 100644
--- a/x86_64-w64-mingw32/lib/libntlsapi.a
+++ b/x86_64-w64-mingw32/lib/libntlsapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libntmarta.a b/x86_64-w64-mingw32/lib/libntmarta.a
index 7cf1df2..eec07dc 100644
--- a/x86_64-w64-mingw32/lib/libntmarta.a
+++ b/x86_64-w64-mingw32/lib/libntmarta.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libntmsapi.a b/x86_64-w64-mingw32/lib/libntmsapi.a
index 12c1a1e..1fe2d6c 100644
--- a/x86_64-w64-mingw32/lib/libntmsapi.a
+++ b/x86_64-w64-mingw32/lib/libntmsapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libntmsdba.a b/x86_64-w64-mingw32/lib/libntmsdba.a
index 88fddd5..f6dd6c8 100644
--- a/x86_64-w64-mingw32/lib/libntmsdba.a
+++ b/x86_64-w64-mingw32/lib/libntmsdba.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libntmsevt.a b/x86_64-w64-mingw32/lib/libntmsevt.a
index a520f84..9ac03ed 100644
--- a/x86_64-w64-mingw32/lib/libntmsevt.a
+++ b/x86_64-w64-mingw32/lib/libntmsevt.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libntmsmgr.a b/x86_64-w64-mingw32/lib/libntmsmgr.a
index ce06524..9e324e8 100644
--- a/x86_64-w64-mingw32/lib/libntmsmgr.a
+++ b/x86_64-w64-mingw32/lib/libntmsmgr.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libntmssvc.a b/x86_64-w64-mingw32/lib/libntmssvc.a
index ced7a56..dbee585 100644
--- a/x86_64-w64-mingw32/lib/libntmssvc.a
+++ b/x86_64-w64-mingw32/lib/libntmssvc.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libntoc.a b/x86_64-w64-mingw32/lib/libntoc.a
index 721e570..5e03d58 100644
--- a/x86_64-w64-mingw32/lib/libntoc.a
+++ b/x86_64-w64-mingw32/lib/libntoc.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libntoskrnl.a b/x86_64-w64-mingw32/lib/libntoskrnl.a
index 0294237..16f9318 100644
--- a/x86_64-w64-mingw32/lib/libntoskrnl.a
+++ b/x86_64-w64-mingw32/lib/libntoskrnl.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libntprint.a b/x86_64-w64-mingw32/lib/libntprint.a
index e0c0dd0..d442d6d 100644
--- a/x86_64-w64-mingw32/lib/libntprint.a
+++ b/x86_64-w64-mingw32/lib/libntprint.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libntshrui.a b/x86_64-w64-mingw32/lib/libntshrui.a
index c7dc616..0a9b468 100644
--- a/x86_64-w64-mingw32/lib/libntshrui.a
+++ b/x86_64-w64-mingw32/lib/libntshrui.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libntvdm64.a b/x86_64-w64-mingw32/lib/libntvdm64.a
index 0a10ad6..fa60763 100644
--- a/x86_64-w64-mingw32/lib/libntvdm64.a
+++ b/x86_64-w64-mingw32/lib/libntvdm64.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libnwprovau.a b/x86_64-w64-mingw32/lib/libnwprovau.a
index ca5ef38..11f8ba7 100644
--- a/x86_64-w64-mingw32/lib/libnwprovau.a
+++ b/x86_64-w64-mingw32/lib/libnwprovau.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/liboakley.a b/x86_64-w64-mingw32/lib/liboakley.a
index f580670..b69d91d 100644
--- a/x86_64-w64-mingw32/lib/liboakley.a
+++ b/x86_64-w64-mingw32/lib/liboakley.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libobjsel.a b/x86_64-w64-mingw32/lib/libobjsel.a
index 6e7c8e0..bb06088 100644
--- a/x86_64-w64-mingw32/lib/libobjsel.a
+++ b/x86_64-w64-mingw32/lib/libobjsel.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/liboccache.a b/x86_64-w64-mingw32/lib/liboccache.a
index f92f641..2a6ea2c 100644
--- a/x86_64-w64-mingw32/lib/liboccache.a
+++ b/x86_64-w64-mingw32/lib/liboccache.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libocgen.a b/x86_64-w64-mingw32/lib/libocgen.a
index a8a4859..202d5f9 100644
--- a/x86_64-w64-mingw32/lib/libocgen.a
+++ b/x86_64-w64-mingw32/lib/libocgen.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libocmanage.a b/x86_64-w64-mingw32/lib/libocmanage.a
index ba9ce76..dcddbe0 100644
--- a/x86_64-w64-mingw32/lib/libocmanage.a
+++ b/x86_64-w64-mingw32/lib/libocmanage.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libocmsn.a b/x86_64-w64-mingw32/lib/libocmsn.a
index 0646efc..ce8d573 100644
--- a/x86_64-w64-mingw32/lib/libocmsn.a
+++ b/x86_64-w64-mingw32/lib/libocmsn.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libodbc32.a b/x86_64-w64-mingw32/lib/libodbc32.a
index 04b75c0..6e006aa 100644
--- a/x86_64-w64-mingw32/lib/libodbc32.a
+++ b/x86_64-w64-mingw32/lib/libodbc32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libodbc32gt.a b/x86_64-w64-mingw32/lib/libodbc32gt.a
index 3257ebf..0a63321 100644
--- a/x86_64-w64-mingw32/lib/libodbc32gt.a
+++ b/x86_64-w64-mingw32/lib/libodbc32gt.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libodbcbcp.a b/x86_64-w64-mingw32/lib/libodbcbcp.a
index e9822e7..233ecdb 100644
--- a/x86_64-w64-mingw32/lib/libodbcbcp.a
+++ b/x86_64-w64-mingw32/lib/libodbcbcp.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libodbcconf.a b/x86_64-w64-mingw32/lib/libodbcconf.a
index d15ab7b..c9d6807 100644
--- a/x86_64-w64-mingw32/lib/libodbcconf.a
+++ b/x86_64-w64-mingw32/lib/libodbcconf.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libodbccp32.a b/x86_64-w64-mingw32/lib/libodbccp32.a
index c492495..d789f9b 100644
--- a/x86_64-w64-mingw32/lib/libodbccp32.a
+++ b/x86_64-w64-mingw32/lib/libodbccp32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libodbccr32.a b/x86_64-w64-mingw32/lib/libodbccr32.a
index 1573c6d..e560442 100644
--- a/x86_64-w64-mingw32/lib/libodbccr32.a
+++ b/x86_64-w64-mingw32/lib/libodbccr32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libodbccu32.a b/x86_64-w64-mingw32/lib/libodbccu32.a
index e1f197f..816d3fb 100644
--- a/x86_64-w64-mingw32/lib/libodbccu32.a
+++ b/x86_64-w64-mingw32/lib/libodbccu32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libodbctrac.a b/x86_64-w64-mingw32/lib/libodbctrac.a
index 5e9849b..c266de4 100644
--- a/x86_64-w64-mingw32/lib/libodbctrac.a
+++ b/x86_64-w64-mingw32/lib/libodbctrac.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/liboeimport.a b/x86_64-w64-mingw32/lib/liboeimport.a
index 10e4f1c..6095e94 100644
--- a/x86_64-w64-mingw32/lib/liboeimport.a
+++ b/x86_64-w64-mingw32/lib/liboeimport.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/liboemiglib.a b/x86_64-w64-mingw32/lib/liboemiglib.a
index dacf20d..3866e2d 100644
--- a/x86_64-w64-mingw32/lib/liboemiglib.a
+++ b/x86_64-w64-mingw32/lib/liboemiglib.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libofffilt.a b/x86_64-w64-mingw32/lib/libofffilt.a
index c49cc00..6d3b8cf 100644
--- a/x86_64-w64-mingw32/lib/libofffilt.a
+++ b/x86_64-w64-mingw32/lib/libofffilt.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libole32.a b/x86_64-w64-mingw32/lib/libole32.a
index 3617ae2..24d69ce 100644
--- a/x86_64-w64-mingw32/lib/libole32.a
+++ b/x86_64-w64-mingw32/lib/libole32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/liboleacc.a b/x86_64-w64-mingw32/lib/liboleacc.a
index 57152af..16dde8e 100644
--- a/x86_64-w64-mingw32/lib/liboleacc.a
+++ b/x86_64-w64-mingw32/lib/liboleacc.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/liboleaut32.a b/x86_64-w64-mingw32/lib/liboleaut32.a
index 805c97c..08b70f3 100644
--- a/x86_64-w64-mingw32/lib/liboleaut32.a
+++ b/x86_64-w64-mingw32/lib/liboleaut32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libolecli32.a b/x86_64-w64-mingw32/lib/libolecli32.a
index e515ea5..a0d4a42 100644
--- a/x86_64-w64-mingw32/lib/libolecli32.a
+++ b/x86_64-w64-mingw32/lib/libolecli32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libolecnv32.a b/x86_64-w64-mingw32/lib/libolecnv32.a
index b18ed57..7cbe36a 100644
--- a/x86_64-w64-mingw32/lib/libolecnv32.a
+++ b/x86_64-w64-mingw32/lib/libolecnv32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/liboledb32.a b/x86_64-w64-mingw32/lib/liboledb32.a
index f472877..8e22021 100644
--- a/x86_64-w64-mingw32/lib/liboledb32.a
+++ b/x86_64-w64-mingw32/lib/liboledb32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/liboledb32r.a b/x86_64-w64-mingw32/lib/liboledb32r.a
index 3c7f9ab..d803133 100644
--- a/x86_64-w64-mingw32/lib/liboledb32r.a
+++ b/x86_64-w64-mingw32/lib/liboledb32r.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/liboledlg.a b/x86_64-w64-mingw32/lib/liboledlg.a
index 6bcaae9..14aef32 100644
--- a/x86_64-w64-mingw32/lib/liboledlg.a
+++ b/x86_64-w64-mingw32/lib/liboledlg.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/liboleprn.a b/x86_64-w64-mingw32/lib/liboleprn.a
index 8e584fd..900dc46 100644
--- a/x86_64-w64-mingw32/lib/liboleprn.a
+++ b/x86_64-w64-mingw32/lib/liboleprn.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libolesvr32.a b/x86_64-w64-mingw32/lib/libolesvr32.a
index a48a8e1..509db2d 100644
--- a/x86_64-w64-mingw32/lib/libolesvr32.a
+++ b/x86_64-w64-mingw32/lib/libolesvr32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libopengl32.a b/x86_64-w64-mingw32/lib/libopengl32.a
index b8208a1..b2c2404 100644
--- a/x86_64-w64-mingw32/lib/libopengl32.a
+++ b/x86_64-w64-mingw32/lib/libopengl32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libosuninst.a b/x86_64-w64-mingw32/lib/libosuninst.a
index 4f7affd..0daf2fd 100644
--- a/x86_64-w64-mingw32/lib/libosuninst.a
+++ b/x86_64-w64-mingw32/lib/libosuninst.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libovprintmondll.a b/x86_64-w64-mingw32/lib/libovprintmondll.a
index c3cd279..a18326e 100644
--- a/x86_64-w64-mingw32/lib/libovprintmondll.a
+++ b/x86_64-w64-mingw32/lib/libovprintmondll.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libp2p.a b/x86_64-w64-mingw32/lib/libp2p.a
index a703405..0630ca9 100644
--- a/x86_64-w64-mingw32/lib/libp2p.a
+++ b/x86_64-w64-mingw32/lib/libp2p.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libp2pcollab.a b/x86_64-w64-mingw32/lib/libp2pcollab.a
index 5bd3f07..7dbed16 100644
--- a/x86_64-w64-mingw32/lib/libp2pcollab.a
+++ b/x86_64-w64-mingw32/lib/libp2pcollab.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libp2pgraph.a b/x86_64-w64-mingw32/lib/libp2pgraph.a
index d7481b5..baae2ab 100644
--- a/x86_64-w64-mingw32/lib/libp2pgraph.a
+++ b/x86_64-w64-mingw32/lib/libp2pgraph.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libpanmap.a b/x86_64-w64-mingw32/lib/libpanmap.a
index 1419702..e72ae54 100644
--- a/x86_64-w64-mingw32/lib/libpanmap.a
+++ b/x86_64-w64-mingw32/lib/libpanmap.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libpautoenr.a b/x86_64-w64-mingw32/lib/libpautoenr.a
index 53de452..f9ee798 100644
--- a/x86_64-w64-mingw32/lib/libpautoenr.a
+++ b/x86_64-w64-mingw32/lib/libpautoenr.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libpchshell.a b/x86_64-w64-mingw32/lib/libpchshell.a
index cfda216..a92de2e 100644
--- a/x86_64-w64-mingw32/lib/libpchshell.a
+++ b/x86_64-w64-mingw32/lib/libpchshell.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libpchsvc.a b/x86_64-w64-mingw32/lib/libpchsvc.a
index c0ecafb..323ce5d 100644
--- a/x86_64-w64-mingw32/lib/libpchsvc.a
+++ b/x86_64-w64-mingw32/lib/libpchsvc.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libpcwum.a b/x86_64-w64-mingw32/lib/libpcwum.a
index 2e82cc5..faee82c 100644
--- a/x86_64-w64-mingw32/lib/libpcwum.a
+++ b/x86_64-w64-mingw32/lib/libpcwum.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libpdh.a b/x86_64-w64-mingw32/lib/libpdh.a
index ffa1d0a..772811f 100644
--- a/x86_64-w64-mingw32/lib/libpdh.a
+++ b/x86_64-w64-mingw32/lib/libpdh.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libperfctrs.a b/x86_64-w64-mingw32/lib/libperfctrs.a
index 7c51ef9..2f50f41 100644
--- a/x86_64-w64-mingw32/lib/libperfctrs.a
+++ b/x86_64-w64-mingw32/lib/libperfctrs.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libperfdisk.a b/x86_64-w64-mingw32/lib/libperfdisk.a
index b3eb2c0..5001d05 100644
--- a/x86_64-w64-mingw32/lib/libperfdisk.a
+++ b/x86_64-w64-mingw32/lib/libperfdisk.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libperfnet.a b/x86_64-w64-mingw32/lib/libperfnet.a
index 2d8b730..c14d85e 100644
--- a/x86_64-w64-mingw32/lib/libperfnet.a
+++ b/x86_64-w64-mingw32/lib/libperfnet.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libperfos.a b/x86_64-w64-mingw32/lib/libperfos.a
index 5895f7f..e5171db 100644
--- a/x86_64-w64-mingw32/lib/libperfos.a
+++ b/x86_64-w64-mingw32/lib/libperfos.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libperfproc.a b/x86_64-w64-mingw32/lib/libperfproc.a
index 06dd312..ded9406 100644
--- a/x86_64-w64-mingw32/lib/libperfproc.a
+++ b/x86_64-w64-mingw32/lib/libperfproc.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libperfts.a b/x86_64-w64-mingw32/lib/libperfts.a
index 86fca00..f961bee 100644
--- a/x86_64-w64-mingw32/lib/libperfts.a
+++ b/x86_64-w64-mingw32/lib/libperfts.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libphotowiz.a b/x86_64-w64-mingw32/lib/libphotowiz.a
index 4748505..82dcaee 100644
--- a/x86_64-w64-mingw32/lib/libphotowiz.a
+++ b/x86_64-w64-mingw32/lib/libphotowiz.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libpid.a b/x86_64-w64-mingw32/lib/libpid.a
index d5a2f37..ceaf767 100644
--- a/x86_64-w64-mingw32/lib/libpid.a
+++ b/x86_64-w64-mingw32/lib/libpid.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libpidgen.a b/x86_64-w64-mingw32/lib/libpidgen.a
index 6306d32..af6b6be 100644
--- a/x86_64-w64-mingw32/lib/libpidgen.a
+++ b/x86_64-w64-mingw32/lib/libpidgen.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libpintlcsa.a b/x86_64-w64-mingw32/lib/libpintlcsa.a
index 891abca..3d86476 100644
--- a/x86_64-w64-mingw32/lib/libpintlcsa.a
+++ b/x86_64-w64-mingw32/lib/libpintlcsa.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libpintlcsd.a b/x86_64-w64-mingw32/lib/libpintlcsd.a
index 2177de6..b66c790 100644
--- a/x86_64-w64-mingw32/lib/libpintlcsd.a
+++ b/x86_64-w64-mingw32/lib/libpintlcsd.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libpjlmon.a b/x86_64-w64-mingw32/lib/libpjlmon.a
index 9b0df03..ac41a19 100644
--- a/x86_64-w64-mingw32/lib/libpjlmon.a
+++ b/x86_64-w64-mingw32/lib/libpjlmon.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libpngfilt.a b/x86_64-w64-mingw32/lib/libpngfilt.a
index 31bbf77..8f1c252 100644
--- a/x86_64-w64-mingw32/lib/libpngfilt.a
+++ b/x86_64-w64-mingw32/lib/libpngfilt.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libpolicman.a b/x86_64-w64-mingw32/lib/libpolicman.a
index 9e7830f..04a8219 100644
--- a/x86_64-w64-mingw32/lib/libpolicman.a
+++ b/x86_64-w64-mingw32/lib/libpolicman.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libpolstore.a b/x86_64-w64-mingw32/lib/libpolstore.a
index 9a253bd..c0dc8f7 100644
--- a/x86_64-w64-mingw32/lib/libpolstore.a
+++ b/x86_64-w64-mingw32/lib/libpolstore.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libportabledeviceguids.a b/x86_64-w64-mingw32/lib/libportabledeviceguids.a
index 859441e..7352073 100644
--- a/x86_64-w64-mingw32/lib/libportabledeviceguids.a
+++ b/x86_64-w64-mingw32/lib/libportabledeviceguids.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libpowrprof.a b/x86_64-w64-mingw32/lib/libpowrprof.a
index 9a6514e..ec68bf0 100644
--- a/x86_64-w64-mingw32/lib/libpowrprof.a
+++ b/x86_64-w64-mingw32/lib/libpowrprof.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libprintui.a b/x86_64-w64-mingw32/lib/libprintui.a
index 35cc084..2043b0d 100644
--- a/x86_64-w64-mingw32/lib/libprintui.a
+++ b/x86_64-w64-mingw32/lib/libprintui.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libprofmap.a b/x86_64-w64-mingw32/lib/libprofmap.a
index d080f7c..33cb864 100644
--- a/x86_64-w64-mingw32/lib/libprofmap.a
+++ b/x86_64-w64-mingw32/lib/libprofmap.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libprovthrd.a b/x86_64-w64-mingw32/lib/libprovthrd.a
index 3201c83..474027f 100644
--- a/x86_64-w64-mingw32/lib/libprovthrd.a
+++ b/x86_64-w64-mingw32/lib/libprovthrd.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libpsapi.a b/x86_64-w64-mingw32/lib/libpsapi.a
index 3ebc90e..699a1da 100644
--- a/x86_64-w64-mingw32/lib/libpsapi.a
+++ b/x86_64-w64-mingw32/lib/libpsapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libpsbase.a b/x86_64-w64-mingw32/lib/libpsbase.a
index 28c9cf8..5a90583 100644
--- a/x86_64-w64-mingw32/lib/libpsbase.a
+++ b/x86_64-w64-mingw32/lib/libpsbase.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libpschdprf.a b/x86_64-w64-mingw32/lib/libpschdprf.a
index 3de2a00..63611c4 100644
--- a/x86_64-w64-mingw32/lib/libpschdprf.a
+++ b/x86_64-w64-mingw32/lib/libpschdprf.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libpsnppagn.a b/x86_64-w64-mingw32/lib/libpsnppagn.a
index 4b5617c..7e0ec41 100644
--- a/x86_64-w64-mingw32/lib/libpsnppagn.a
+++ b/x86_64-w64-mingw32/lib/libpsnppagn.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libpstorec.a b/x86_64-w64-mingw32/lib/libpstorec.a
index 1b5c0c3..2ccdf08 100644
--- a/x86_64-w64-mingw32/lib/libpstorec.a
+++ b/x86_64-w64-mingw32/lib/libpstorec.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libpstorsvc.a b/x86_64-w64-mingw32/lib/libpstorsvc.a
index 1936b4d..f0dc7cc 100644
--- a/x86_64-w64-mingw32/lib/libpstorsvc.a
+++ b/x86_64-w64-mingw32/lib/libpstorsvc.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libpthread.a b/x86_64-w64-mingw32/lib/libpthread.a
index 0190720..bd73933 100644
--- a/x86_64-w64-mingw32/lib/libpthread.a
+++ b/x86_64-w64-mingw32/lib/libpthread.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libpthread.dll.a b/x86_64-w64-mingw32/lib/libpthread.dll.a
index ad7eeff..ff5460e 100644
--- a/x86_64-w64-mingw32/lib/libpthread.dll.a
+++ b/x86_64-w64-mingw32/lib/libpthread.dll.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libqasf.a b/x86_64-w64-mingw32/lib/libqasf.a
index 96debaf..d595427 100644
--- a/x86_64-w64-mingw32/lib/libqasf.a
+++ b/x86_64-w64-mingw32/lib/libqasf.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libqcap.a b/x86_64-w64-mingw32/lib/libqcap.a
index c76f712..f1827e3 100644
--- a/x86_64-w64-mingw32/lib/libqcap.a
+++ b/x86_64-w64-mingw32/lib/libqcap.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libqdv.a b/x86_64-w64-mingw32/lib/libqdv.a
index 7f29915..fd6c625 100644
--- a/x86_64-w64-mingw32/lib/libqdv.a
+++ b/x86_64-w64-mingw32/lib/libqdv.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libqdvd.a b/x86_64-w64-mingw32/lib/libqdvd.a
index e7baea7..7767df9 100644
--- a/x86_64-w64-mingw32/lib/libqdvd.a
+++ b/x86_64-w64-mingw32/lib/libqdvd.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libqedit.a b/x86_64-w64-mingw32/lib/libqedit.a
index 3d2e66f..c204489 100644
--- a/x86_64-w64-mingw32/lib/libqedit.a
+++ b/x86_64-w64-mingw32/lib/libqedit.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libqmgr.a b/x86_64-w64-mingw32/lib/libqmgr.a
index e9abef8..2b3363e 100644
--- a/x86_64-w64-mingw32/lib/libqmgr.a
+++ b/x86_64-w64-mingw32/lib/libqmgr.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libqmgrprxy.a b/x86_64-w64-mingw32/lib/libqmgrprxy.a
index be31da0..293f5f6 100644
--- a/x86_64-w64-mingw32/lib/libqmgrprxy.a
+++ b/x86_64-w64-mingw32/lib/libqmgrprxy.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libqosname.a b/x86_64-w64-mingw32/lib/libqosname.a
index 283aeac..64fde08 100644
--- a/x86_64-w64-mingw32/lib/libqosname.a
+++ b/x86_64-w64-mingw32/lib/libqosname.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libquadmath.a b/x86_64-w64-mingw32/lib/libquadmath.a
index a126980..8bb8577 100644
--- a/x86_64-w64-mingw32/lib/libquadmath.a
+++ b/x86_64-w64-mingw32/lib/libquadmath.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libquadmath.la b/x86_64-w64-mingw32/lib/libquadmath.la
index 9f60c65..4b7ea50 100755
--- a/x86_64-w64-mingw32/lib/libquadmath.la
+++ b/x86_64-w64-mingw32/lib/libquadmath.la
@@ -17,7 +17,7 @@
 inherited_linker_flags=''
 
 # Libraries that this one depends upon.
-dependency_libs=' -L/usr/local/google/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/lib -L/usr/local/google/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/mingw/lib'
+dependency_libs=' -L/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/lib -L/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/mingw/lib'
 
 # Names of additional weak libraries provided by this library
 weak_library_names=''
@@ -38,4 +38,4 @@
 dlpreopen=''
 
 # Directory that this library needs to be installed in:
-libdir='/usr/local/google/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/lib/../lib'
+libdir='/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/lib/../lib'
diff --git a/x86_64-w64-mingw32/lib/libquartz.a b/x86_64-w64-mingw32/lib/libquartz.a
index fe02351..f2b5752 100644
--- a/x86_64-w64-mingw32/lib/libquartz.a
+++ b/x86_64-w64-mingw32/lib/libquartz.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libquery.a b/x86_64-w64-mingw32/lib/libquery.a
index 0056388..9e36221 100644
--- a/x86_64-w64-mingw32/lib/libquery.a
+++ b/x86_64-w64-mingw32/lib/libquery.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libqutil.a b/x86_64-w64-mingw32/lib/libqutil.a
index 430d6d1..cfc1956 100644
--- a/x86_64-w64-mingw32/lib/libqutil.a
+++ b/x86_64-w64-mingw32/lib/libqutil.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libqwave.a b/x86_64-w64-mingw32/lib/libqwave.a
index 4fb5af0..a38ddf4 100644
--- a/x86_64-w64-mingw32/lib/libqwave.a
+++ b/x86_64-w64-mingw32/lib/libqwave.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libracpldlg.a b/x86_64-w64-mingw32/lib/libracpldlg.a
index f228ea6..8d0e9a2 100644
--- a/x86_64-w64-mingw32/lib/libracpldlg.a
+++ b/x86_64-w64-mingw32/lib/libracpldlg.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/librasadhlp.a b/x86_64-w64-mingw32/lib/librasadhlp.a
index 1875c97..5afd354 100644
--- a/x86_64-w64-mingw32/lib/librasadhlp.a
+++ b/x86_64-w64-mingw32/lib/librasadhlp.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/librasapi32.a b/x86_64-w64-mingw32/lib/librasapi32.a
index 067e707..be28af5 100644
--- a/x86_64-w64-mingw32/lib/librasapi32.a
+++ b/x86_64-w64-mingw32/lib/librasapi32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/librasauto.a b/x86_64-w64-mingw32/lib/librasauto.a
index 629dc5c..5ca19b3 100644
--- a/x86_64-w64-mingw32/lib/librasauto.a
+++ b/x86_64-w64-mingw32/lib/librasauto.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libraschap.a b/x86_64-w64-mingw32/lib/libraschap.a
index 7bb9bb2..ca6ef8c 100644
--- a/x86_64-w64-mingw32/lib/libraschap.a
+++ b/x86_64-w64-mingw32/lib/libraschap.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/librasctrs.a b/x86_64-w64-mingw32/lib/librasctrs.a
index a3e4845..930d436 100644
--- a/x86_64-w64-mingw32/lib/librasctrs.a
+++ b/x86_64-w64-mingw32/lib/librasctrs.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/librasdlg.a b/x86_64-w64-mingw32/lib/librasdlg.a
index cf080e1..92624f3 100644
--- a/x86_64-w64-mingw32/lib/librasdlg.a
+++ b/x86_64-w64-mingw32/lib/librasdlg.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/librasman.a b/x86_64-w64-mingw32/lib/librasman.a
index 624dfe1..45b5bdb 100644
--- a/x86_64-w64-mingw32/lib/librasman.a
+++ b/x86_64-w64-mingw32/lib/librasman.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/librasmans.a b/x86_64-w64-mingw32/lib/librasmans.a
index 8b1505e..04bfa31 100644
--- a/x86_64-w64-mingw32/lib/librasmans.a
+++ b/x86_64-w64-mingw32/lib/librasmans.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/librasmontr.a b/x86_64-w64-mingw32/lib/librasmontr.a
index 05b2f42..eb7247a 100644
--- a/x86_64-w64-mingw32/lib/librasmontr.a
+++ b/x86_64-w64-mingw32/lib/librasmontr.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/librasmxs.a b/x86_64-w64-mingw32/lib/librasmxs.a
index 19aecf1..0f4b02e 100644
--- a/x86_64-w64-mingw32/lib/librasmxs.a
+++ b/x86_64-w64-mingw32/lib/librasmxs.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/librasppp.a b/x86_64-w64-mingw32/lib/librasppp.a
index 2e36f3e..45d1899 100644
--- a/x86_64-w64-mingw32/lib/librasppp.a
+++ b/x86_64-w64-mingw32/lib/librasppp.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/librasrad.a b/x86_64-w64-mingw32/lib/librasrad.a
index 7fec771..13d24f0 100644
--- a/x86_64-w64-mingw32/lib/librasrad.a
+++ b/x86_64-w64-mingw32/lib/librasrad.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/librassapi.a b/x86_64-w64-mingw32/lib/librassapi.a
index a436219..07348ba 100644
--- a/x86_64-w64-mingw32/lib/librassapi.a
+++ b/x86_64-w64-mingw32/lib/librassapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/librasser.a b/x86_64-w64-mingw32/lib/librasser.a
index 4cdfe8f..84bd2ac 100644
--- a/x86_64-w64-mingw32/lib/librasser.a
+++ b/x86_64-w64-mingw32/lib/librasser.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/librastapi.a b/x86_64-w64-mingw32/lib/librastapi.a
index 6dbf030..1a79ec4 100644
--- a/x86_64-w64-mingw32/lib/librastapi.a
+++ b/x86_64-w64-mingw32/lib/librastapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/librastls.a b/x86_64-w64-mingw32/lib/librastls.a
index 06a0f48..03af398 100644
--- a/x86_64-w64-mingw32/lib/librastls.a
+++ b/x86_64-w64-mingw32/lib/librastls.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/librcbdyctl.a b/x86_64-w64-mingw32/lib/librcbdyctl.a
index aab22b2..a0c1e91 100644
--- a/x86_64-w64-mingw32/lib/librcbdyctl.a
+++ b/x86_64-w64-mingw32/lib/librcbdyctl.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/librdchost.a b/x86_64-w64-mingw32/lib/librdchost.a
index 7f1cd19..6be63d1 100644
--- a/x86_64-w64-mingw32/lib/librdchost.a
+++ b/x86_64-w64-mingw32/lib/librdchost.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/librdpcfgex.a b/x86_64-w64-mingw32/lib/librdpcfgex.a
index 23805ae..328e293 100644
--- a/x86_64-w64-mingw32/lib/librdpcfgex.a
+++ b/x86_64-w64-mingw32/lib/librdpcfgex.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/librdpsnd.a b/x86_64-w64-mingw32/lib/librdpsnd.a
index a49c959..62198bc 100644
--- a/x86_64-w64-mingw32/lib/librdpsnd.a
+++ b/x86_64-w64-mingw32/lib/librdpsnd.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/librdpwsx.a b/x86_64-w64-mingw32/lib/librdpwsx.a
index c13b3aa..1a6a55f 100644
--- a/x86_64-w64-mingw32/lib/librdpwsx.a
+++ b/x86_64-w64-mingw32/lib/librdpwsx.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libregapi.a b/x86_64-w64-mingw32/lib/libregapi.a
index ee18819..6e15e7a 100644
--- a/x86_64-w64-mingw32/lib/libregapi.a
+++ b/x86_64-w64-mingw32/lib/libregapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libregsvc.a b/x86_64-w64-mingw32/lib/libregsvc.a
index 219640f..5d7ae79 100644
--- a/x86_64-w64-mingw32/lib/libregsvc.a
+++ b/x86_64-w64-mingw32/lib/libregsvc.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libregwizc.a b/x86_64-w64-mingw32/lib/libregwizc.a
index 1b6625e..82bbee4 100644
--- a/x86_64-w64-mingw32/lib/libregwizc.a
+++ b/x86_64-w64-mingw32/lib/libregwizc.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libremotepg.a b/x86_64-w64-mingw32/lib/libremotepg.a
index a29044c..dee95e4 100644
--- a/x86_64-w64-mingw32/lib/libremotepg.a
+++ b/x86_64-w64-mingw32/lib/libremotepg.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/librend.a b/x86_64-w64-mingw32/lib/librend.a
index d6343c9..8a5fdce 100644
--- a/x86_64-w64-mingw32/lib/librend.a
+++ b/x86_64-w64-mingw32/lib/librend.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/librepdrvfs.a b/x86_64-w64-mingw32/lib/librepdrvfs.a
index d058b8a..1c3ba12 100644
--- a/x86_64-w64-mingw32/lib/librepdrvfs.a
+++ b/x86_64-w64-mingw32/lib/librepdrvfs.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libresutil.a b/x86_64-w64-mingw32/lib/libresutil.a
index 9b8dbaa..9e3aa23 100644
--- a/x86_64-w64-mingw32/lib/libresutil.a
+++ b/x86_64-w64-mingw32/lib/libresutil.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libresutils.a b/x86_64-w64-mingw32/lib/libresutils.a
index c61261f..2d5946c 100644
--- a/x86_64-w64-mingw32/lib/libresutils.a
+++ b/x86_64-w64-mingw32/lib/libresutils.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libriched20.a b/x86_64-w64-mingw32/lib/libriched20.a
index db758f9..e69980a 100644
--- a/x86_64-w64-mingw32/lib/libriched20.a
+++ b/x86_64-w64-mingw32/lib/libriched20.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/librnr20.a b/x86_64-w64-mingw32/lib/librnr20.a
index 8a99cfb..cf81894 100644
--- a/x86_64-w64-mingw32/lib/librnr20.a
+++ b/x86_64-w64-mingw32/lib/librnr20.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libroutetab.a b/x86_64-w64-mingw32/lib/libroutetab.a
index 296df74..7a85ec3 100644
--- a/x86_64-w64-mingw32/lib/libroutetab.a
+++ b/x86_64-w64-mingw32/lib/libroutetab.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/librpcdiag.a b/x86_64-w64-mingw32/lib/librpcdiag.a
index c058b74..4a2b782 100644
--- a/x86_64-w64-mingw32/lib/librpcdiag.a
+++ b/x86_64-w64-mingw32/lib/librpcdiag.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/librpchttp.a b/x86_64-w64-mingw32/lib/librpchttp.a
index 595c403..7f9265d 100644
--- a/x86_64-w64-mingw32/lib/librpchttp.a
+++ b/x86_64-w64-mingw32/lib/librpchttp.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/librpcns4.a b/x86_64-w64-mingw32/lib/librpcns4.a
index 2535d9a..c361147 100644
--- a/x86_64-w64-mingw32/lib/librpcns4.a
+++ b/x86_64-w64-mingw32/lib/librpcns4.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/librpcnsh.a b/x86_64-w64-mingw32/lib/librpcnsh.a
index b39461c..51fab0c 100644
--- a/x86_64-w64-mingw32/lib/librpcnsh.a
+++ b/x86_64-w64-mingw32/lib/librpcnsh.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/librpcref.a b/x86_64-w64-mingw32/lib/librpcref.a
index 4c5648d..13b5524 100644
--- a/x86_64-w64-mingw32/lib/librpcref.a
+++ b/x86_64-w64-mingw32/lib/librpcref.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/librpcrt4.a b/x86_64-w64-mingw32/lib/librpcrt4.a
index dac6234..9ba4ea4 100644
--- a/x86_64-w64-mingw32/lib/librpcrt4.a
+++ b/x86_64-w64-mingw32/lib/librpcrt4.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/librpcss.a b/x86_64-w64-mingw32/lib/librpcss.a
index 2480ed5..7f42aa3 100644
--- a/x86_64-w64-mingw32/lib/librpcss.a
+++ b/x86_64-w64-mingw32/lib/librpcss.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/librsaenh.a b/x86_64-w64-mingw32/lib/librsaenh.a
index 58c529c..ac1c015 100644
--- a/x86_64-w64-mingw32/lib/librsaenh.a
+++ b/x86_64-w64-mingw32/lib/librsaenh.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/librsfsaps.a b/x86_64-w64-mingw32/lib/librsfsaps.a
index c7c08d0..21ba51a 100644
--- a/x86_64-w64-mingw32/lib/librsfsaps.a
+++ b/x86_64-w64-mingw32/lib/librsfsaps.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/librshx32.a b/x86_64-w64-mingw32/lib/librshx32.a
index e9dd241..91987dd 100644
--- a/x86_64-w64-mingw32/lib/librshx32.a
+++ b/x86_64-w64-mingw32/lib/librshx32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/librsmps.a b/x86_64-w64-mingw32/lib/librsmps.a
index 2222c1f..ef2a86a 100644
--- a/x86_64-w64-mingw32/lib/librsmps.a
+++ b/x86_64-w64-mingw32/lib/librsmps.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/librstrmgr.a b/x86_64-w64-mingw32/lib/librstrmgr.a
index 47347b5..fea3897 100644
--- a/x86_64-w64-mingw32/lib/librstrmgr.a
+++ b/x86_64-w64-mingw32/lib/librstrmgr.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/librtm.a b/x86_64-w64-mingw32/lib/librtm.a
index b42c7f3..fc8d5bb 100644
--- a/x86_64-w64-mingw32/lib/librtm.a
+++ b/x86_64-w64-mingw32/lib/librtm.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/librtutils.a b/x86_64-w64-mingw32/lib/librtutils.a
index 950a1bc..fe92ef0 100644
--- a/x86_64-w64-mingw32/lib/librtutils.a
+++ b/x86_64-w64-mingw32/lib/librtutils.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libruntimeobject.a b/x86_64-w64-mingw32/lib/libruntimeobject.a
index 8922b6a..ef6b7ed 100644
--- a/x86_64-w64-mingw32/lib/libruntimeobject.a
+++ b/x86_64-w64-mingw32/lib/libruntimeobject.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/librwnh.a b/x86_64-w64-mingw32/lib/librwnh.a
index e325fc6..d6d9e90 100644
--- a/x86_64-w64-mingw32/lib/librwnh.a
+++ b/x86_64-w64-mingw32/lib/librwnh.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsafrcdlg.a b/x86_64-w64-mingw32/lib/libsafrcdlg.a
index abaa74e..4b29f38 100644
--- a/x86_64-w64-mingw32/lib/libsafrcdlg.a
+++ b/x86_64-w64-mingw32/lib/libsafrcdlg.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsafrdm.a b/x86_64-w64-mingw32/lib/libsafrdm.a
index 9fe7807..be44bfb 100644
--- a/x86_64-w64-mingw32/lib/libsafrdm.a
+++ b/x86_64-w64-mingw32/lib/libsafrdm.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsafrslv.a b/x86_64-w64-mingw32/lib/libsafrslv.a
index 0db46e2..b80fca3 100644
--- a/x86_64-w64-mingw32/lib/libsafrslv.a
+++ b/x86_64-w64-mingw32/lib/libsafrslv.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsamlib.a b/x86_64-w64-mingw32/lib/libsamlib.a
index 70ab204..fc4de18 100644
--- a/x86_64-w64-mingw32/lib/libsamlib.a
+++ b/x86_64-w64-mingw32/lib/libsamlib.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsamsrv.a b/x86_64-w64-mingw32/lib/libsamsrv.a
index 6b72c12..22a83e8 100644
--- a/x86_64-w64-mingw32/lib/libsamsrv.a
+++ b/x86_64-w64-mingw32/lib/libsamsrv.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsapi.a b/x86_64-w64-mingw32/lib/libsapi.a
index e24bf07..2b13363 100644
--- a/x86_64-w64-mingw32/lib/libsapi.a
+++ b/x86_64-w64-mingw32/lib/libsapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libscarddlg.a b/x86_64-w64-mingw32/lib/libscarddlg.a
index ca34524..f7f16de 100644
--- a/x86_64-w64-mingw32/lib/libscarddlg.a
+++ b/x86_64-w64-mingw32/lib/libscarddlg.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsccbase.a b/x86_64-w64-mingw32/lib/libsccbase.a
index 964e6c6..2c2b308 100644
--- a/x86_64-w64-mingw32/lib/libsccbase.a
+++ b/x86_64-w64-mingw32/lib/libsccbase.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsccsccp.a b/x86_64-w64-mingw32/lib/libsccsccp.a
index 06b7cfa..898b350 100644
--- a/x86_64-w64-mingw32/lib/libsccsccp.a
+++ b/x86_64-w64-mingw32/lib/libsccsccp.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libscecli.a b/x86_64-w64-mingw32/lib/libscecli.a
index baacfad..51c9db3 100644
--- a/x86_64-w64-mingw32/lib/libscecli.a
+++ b/x86_64-w64-mingw32/lib/libscecli.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libscesrv.a b/x86_64-w64-mingw32/lib/libscesrv.a
index 0d1194f..7ae4308 100644
--- a/x86_64-w64-mingw32/lib/libscesrv.a
+++ b/x86_64-w64-mingw32/lib/libscesrv.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libschannel.a b/x86_64-w64-mingw32/lib/libschannel.a
index ee21033..84fd40b 100644
--- a/x86_64-w64-mingw32/lib/libschannel.a
+++ b/x86_64-w64-mingw32/lib/libschannel.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libschedsvc.a b/x86_64-w64-mingw32/lib/libschedsvc.a
index 7354fd0..f265680 100644
--- a/x86_64-w64-mingw32/lib/libschedsvc.a
+++ b/x86_64-w64-mingw32/lib/libschedsvc.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsclgntfy.a b/x86_64-w64-mingw32/lib/libsclgntfy.a
index ba57b80..b8e277e 100644
--- a/x86_64-w64-mingw32/lib/libsclgntfy.a
+++ b/x86_64-w64-mingw32/lib/libsclgntfy.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libscredir.a b/x86_64-w64-mingw32/lib/libscredir.a
index 48977d8..6bdd83c 100644
--- a/x86_64-w64-mingw32/lib/libscredir.a
+++ b/x86_64-w64-mingw32/lib/libscredir.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libscript.a b/x86_64-w64-mingw32/lib/libscript.a
index b190ae1..7989f87 100644
--- a/x86_64-w64-mingw32/lib/libscript.a
+++ b/x86_64-w64-mingw32/lib/libscript.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libscripto.a b/x86_64-w64-mingw32/lib/libscripto.a
index 2ce4c50..9c77833 100644
--- a/x86_64-w64-mingw32/lib/libscripto.a
+++ b/x86_64-w64-mingw32/lib/libscripto.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libscriptpw.a b/x86_64-w64-mingw32/lib/libscriptpw.a
index 54f3b29..5897bbc 100644
--- a/x86_64-w64-mingw32/lib/libscriptpw.a
+++ b/x86_64-w64-mingw32/lib/libscriptpw.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libscrnsave.a b/x86_64-w64-mingw32/lib/libscrnsave.a
index 9fe6ea6..1397ac2 100644
--- a/x86_64-w64-mingw32/lib/libscrnsave.a
+++ b/x86_64-w64-mingw32/lib/libscrnsave.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libscrnsavw.a b/x86_64-w64-mingw32/lib/libscrnsavw.a
index 2fa5fab..099be06 100644
--- a/x86_64-w64-mingw32/lib/libscrnsavw.a
+++ b/x86_64-w64-mingw32/lib/libscrnsavw.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libscrobj.a b/x86_64-w64-mingw32/lib/libscrobj.a
index 61a4a0f..437fb2f 100644
--- a/x86_64-w64-mingw32/lib/libscrobj.a
+++ b/x86_64-w64-mingw32/lib/libscrobj.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libscrptutl.a b/x86_64-w64-mingw32/lib/libscrptutl.a
index 0dcc2fd..94e0d2f 100644
--- a/x86_64-w64-mingw32/lib/libscrptutl.a
+++ b/x86_64-w64-mingw32/lib/libscrptutl.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libscrrun.a b/x86_64-w64-mingw32/lib/libscrrun.a
index b6b319b..a460950 100644
--- a/x86_64-w64-mingw32/lib/libscrrun.a
+++ b/x86_64-w64-mingw32/lib/libscrrun.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsdhcinst.a b/x86_64-w64-mingw32/lib/libsdhcinst.a
index be2009d..64b3523 100644
--- a/x86_64-w64-mingw32/lib/libsdhcinst.a
+++ b/x86_64-w64-mingw32/lib/libsdhcinst.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsdpblb.a b/x86_64-w64-mingw32/lib/libsdpblb.a
index a2bc896..90669cb 100644
--- a/x86_64-w64-mingw32/lib/libsdpblb.a
+++ b/x86_64-w64-mingw32/lib/libsdpblb.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libseclogon.a b/x86_64-w64-mingw32/lib/libseclogon.a
index 58238b8..cf320c7 100644
--- a/x86_64-w64-mingw32/lib/libseclogon.a
+++ b/x86_64-w64-mingw32/lib/libseclogon.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsecur32.a b/x86_64-w64-mingw32/lib/libsecur32.a
index 6f24bcd..bea46a5 100644
--- a/x86_64-w64-mingw32/lib/libsecur32.a
+++ b/x86_64-w64-mingw32/lib/libsecur32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsecurity.a b/x86_64-w64-mingw32/lib/libsecurity.a
index ca610a7..411f52c 100644
--- a/x86_64-w64-mingw32/lib/libsecurity.a
+++ b/x86_64-w64-mingw32/lib/libsecurity.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsendcmsg.a b/x86_64-w64-mingw32/lib/libsendcmsg.a
index 88988cc..2227e11 100644
--- a/x86_64-w64-mingw32/lib/libsendcmsg.a
+++ b/x86_64-w64-mingw32/lib/libsendcmsg.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsendmail.a b/x86_64-w64-mingw32/lib/libsendmail.a
index 666076d..20657e0 100644
--- a/x86_64-w64-mingw32/lib/libsendmail.a
+++ b/x86_64-w64-mingw32/lib/libsendmail.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsens.a b/x86_64-w64-mingw32/lib/libsens.a
index 08800de..d31da99 100644
--- a/x86_64-w64-mingw32/lib/libsens.a
+++ b/x86_64-w64-mingw32/lib/libsens.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsensapi.a b/x86_64-w64-mingw32/lib/libsensapi.a
index 8086162..9c9428e 100644
--- a/x86_64-w64-mingw32/lib/libsensapi.a
+++ b/x86_64-w64-mingw32/lib/libsensapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsenscfg.a b/x86_64-w64-mingw32/lib/libsenscfg.a
index 1af8231..18eeb00 100644
--- a/x86_64-w64-mingw32/lib/libsenscfg.a
+++ b/x86_64-w64-mingw32/lib/libsenscfg.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsensorsapi.a b/x86_64-w64-mingw32/lib/libsensorsapi.a
index 0fad960..9fac50d 100644
--- a/x86_64-w64-mingw32/lib/libsensorsapi.a
+++ b/x86_64-w64-mingw32/lib/libsensorsapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libseo.a b/x86_64-w64-mingw32/lib/libseo.a
index dbd7b61..9c36052 100644
--- a/x86_64-w64-mingw32/lib/libseo.a
+++ b/x86_64-w64-mingw32/lib/libseo.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libseos.a b/x86_64-w64-mingw32/lib/libseos.a
index 30c28eb..60bfcd4 100644
--- a/x86_64-w64-mingw32/lib/libseos.a
+++ b/x86_64-w64-mingw32/lib/libseos.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libserialui.a b/x86_64-w64-mingw32/lib/libserialui.a
index 27f0bcd..07b123a 100644
--- a/x86_64-w64-mingw32/lib/libserialui.a
+++ b/x86_64-w64-mingw32/lib/libserialui.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libservdeps.a b/x86_64-w64-mingw32/lib/libservdeps.a
index 1857ec2..42c2cf9 100644
--- a/x86_64-w64-mingw32/lib/libservdeps.a
+++ b/x86_64-w64-mingw32/lib/libservdeps.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libserwvdrv.a b/x86_64-w64-mingw32/lib/libserwvdrv.a
index 24caca5..d16825d 100644
--- a/x86_64-w64-mingw32/lib/libserwvdrv.a
+++ b/x86_64-w64-mingw32/lib/libserwvdrv.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsetupapi.a b/x86_64-w64-mingw32/lib/libsetupapi.a
index f84b12e..50b682f 100644
--- a/x86_64-w64-mingw32/lib/libsetupapi.a
+++ b/x86_64-w64-mingw32/lib/libsetupapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsetupqry.a b/x86_64-w64-mingw32/lib/libsetupqry.a
index 088cc99..0893215 100644
--- a/x86_64-w64-mingw32/lib/libsetupqry.a
+++ b/x86_64-w64-mingw32/lib/libsetupqry.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsfc.a b/x86_64-w64-mingw32/lib/libsfc.a
index 4400e25..0663495 100644
--- a/x86_64-w64-mingw32/lib/libsfc.a
+++ b/x86_64-w64-mingw32/lib/libsfc.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsfc_os.a b/x86_64-w64-mingw32/lib/libsfc_os.a
index bf3d94e..9b25eb5 100644
--- a/x86_64-w64-mingw32/lib/libsfc_os.a
+++ b/x86_64-w64-mingw32/lib/libsfc_os.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsfcfiles.a b/x86_64-w64-mingw32/lib/libsfcfiles.a
index 46f9ab0..18c7b2d 100644
--- a/x86_64-w64-mingw32/lib/libsfcfiles.a
+++ b/x86_64-w64-mingw32/lib/libsfcfiles.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsfmapi.a b/x86_64-w64-mingw32/lib/libsfmapi.a
index b675333..2109c7f 100644
--- a/x86_64-w64-mingw32/lib/libsfmapi.a
+++ b/x86_64-w64-mingw32/lib/libsfmapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libshdocvw.a b/x86_64-w64-mingw32/lib/libshdocvw.a
index 4d85baf..cc7239c 100644
--- a/x86_64-w64-mingw32/lib/libshdocvw.a
+++ b/x86_64-w64-mingw32/lib/libshdocvw.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libshell32.a b/x86_64-w64-mingw32/lib/libshell32.a
index 7a45ac4..b82ccc3 100644
--- a/x86_64-w64-mingw32/lib/libshell32.a
+++ b/x86_64-w64-mingw32/lib/libshell32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libshfolder.a b/x86_64-w64-mingw32/lib/libshfolder.a
index dad99b0..4e0f6e4 100644
--- a/x86_64-w64-mingw32/lib/libshfolder.a
+++ b/x86_64-w64-mingw32/lib/libshfolder.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libshgina.a b/x86_64-w64-mingw32/lib/libshgina.a
index 57b2446..d55719c 100644
--- a/x86_64-w64-mingw32/lib/libshgina.a
+++ b/x86_64-w64-mingw32/lib/libshgina.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libshimeng.a b/x86_64-w64-mingw32/lib/libshimeng.a
index 784f85c..0327331 100644
--- a/x86_64-w64-mingw32/lib/libshimeng.a
+++ b/x86_64-w64-mingw32/lib/libshimeng.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libshimgvw.a b/x86_64-w64-mingw32/lib/libshimgvw.a
index f766ccf..a8f6a64 100644
--- a/x86_64-w64-mingw32/lib/libshimgvw.a
+++ b/x86_64-w64-mingw32/lib/libshimgvw.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libshlwapi.a b/x86_64-w64-mingw32/lib/libshlwapi.a
index 0887c4e..e6abbcf 100644
--- a/x86_64-w64-mingw32/lib/libshlwapi.a
+++ b/x86_64-w64-mingw32/lib/libshlwapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libshmedia.a b/x86_64-w64-mingw32/lib/libshmedia.a
index a3a4395..98acaa3 100644
--- a/x86_64-w64-mingw32/lib/libshmedia.a
+++ b/x86_64-w64-mingw32/lib/libshmedia.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libshscrap.a b/x86_64-w64-mingw32/lib/libshscrap.a
index 23a59d0..c0e12a2 100644
--- a/x86_64-w64-mingw32/lib/libshscrap.a
+++ b/x86_64-w64-mingw32/lib/libshscrap.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libshsvcs.a b/x86_64-w64-mingw32/lib/libshsvcs.a
index 2446c2e..fb0f807 100644
--- a/x86_64-w64-mingw32/lib/libshsvcs.a
+++ b/x86_64-w64-mingw32/lib/libshsvcs.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsigtab.a b/x86_64-w64-mingw32/lib/libsigtab.a
index 258ba79..5799dac 100644
--- a/x86_64-w64-mingw32/lib/libsigtab.a
+++ b/x86_64-w64-mingw32/lib/libsigtab.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsimptcp.a b/x86_64-w64-mingw32/lib/libsimptcp.a
index 764be0d..9b1848d 100644
--- a/x86_64-w64-mingw32/lib/libsimptcp.a
+++ b/x86_64-w64-mingw32/lib/libsimptcp.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsisbkup.a b/x86_64-w64-mingw32/lib/libsisbkup.a
index e2c0a5e..5a9d306 100644
--- a/x86_64-w64-mingw32/lib/libsisbkup.a
+++ b/x86_64-w64-mingw32/lib/libsisbkup.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libskdll.a b/x86_64-w64-mingw32/lib/libskdll.a
index 3e616a6..62e8e71 100644
--- a/x86_64-w64-mingw32/lib/libskdll.a
+++ b/x86_64-w64-mingw32/lib/libskdll.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libslayerxp.a b/x86_64-w64-mingw32/lib/libslayerxp.a
index 74525aa..d6c27a1 100644
--- a/x86_64-w64-mingw32/lib/libslayerxp.a
+++ b/x86_64-w64-mingw32/lib/libslayerxp.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libslbcsp.a b/x86_64-w64-mingw32/lib/libslbcsp.a
index f861806..79ab17f 100644
--- a/x86_64-w64-mingw32/lib/libslbcsp.a
+++ b/x86_64-w64-mingw32/lib/libslbcsp.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libslbiop.a b/x86_64-w64-mingw32/lib/libslbiop.a
index 05811f1..12294d4 100644
--- a/x86_64-w64-mingw32/lib/libslbiop.a
+++ b/x86_64-w64-mingw32/lib/libslbiop.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libslc.a b/x86_64-w64-mingw32/lib/libslc.a
index 3ed4245..36032ff 100644
--- a/x86_64-w64-mingw32/lib/libslc.a
+++ b/x86_64-w64-mingw32/lib/libslc.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libslcext.a b/x86_64-w64-mingw32/lib/libslcext.a
index 5529df9..5f5d4c0 100644
--- a/x86_64-w64-mingw32/lib/libslcext.a
+++ b/x86_64-w64-mingw32/lib/libslcext.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libslwga.a b/x86_64-w64-mingw32/lib/libslwga.a
index dde7e17..dd387f7 100644
--- a/x86_64-w64-mingw32/lib/libslwga.a
+++ b/x86_64-w64-mingw32/lib/libslwga.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsmlogcfg.a b/x86_64-w64-mingw32/lib/libsmlogcfg.a
index 23da18d..b9a2c50 100644
--- a/x86_64-w64-mingw32/lib/libsmlogcfg.a
+++ b/x86_64-w64-mingw32/lib/libsmlogcfg.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsmtpadm.a b/x86_64-w64-mingw32/lib/libsmtpadm.a
index 9d3f26d..06dd674 100644
--- a/x86_64-w64-mingw32/lib/libsmtpadm.a
+++ b/x86_64-w64-mingw32/lib/libsmtpadm.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsmtpapi.a b/x86_64-w64-mingw32/lib/libsmtpapi.a
index 9d5ca62..b0b8a1b 100644
--- a/x86_64-w64-mingw32/lib/libsmtpapi.a
+++ b/x86_64-w64-mingw32/lib/libsmtpapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsmtpcons.a b/x86_64-w64-mingw32/lib/libsmtpcons.a
index e1289b2..78b7199 100644
--- a/x86_64-w64-mingw32/lib/libsmtpcons.a
+++ b/x86_64-w64-mingw32/lib/libsmtpcons.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsmtpctrs.a b/x86_64-w64-mingw32/lib/libsmtpctrs.a
index 9c32390..6b7009b 100644
--- a/x86_64-w64-mingw32/lib/libsmtpctrs.a
+++ b/x86_64-w64-mingw32/lib/libsmtpctrs.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsmtpsnap.a b/x86_64-w64-mingw32/lib/libsmtpsnap.a
index c9e49b1..9f2a197 100644
--- a/x86_64-w64-mingw32/lib/libsmtpsnap.a
+++ b/x86_64-w64-mingw32/lib/libsmtpsnap.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsmtpsvc.a b/x86_64-w64-mingw32/lib/libsmtpsvc.a
index 1f045d8..abdbcae 100644
--- a/x86_64-w64-mingw32/lib/libsmtpsvc.a
+++ b/x86_64-w64-mingw32/lib/libsmtpsvc.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsniffpol.a b/x86_64-w64-mingw32/lib/libsniffpol.a
index b1f83c0..1eb0fdb 100644
--- a/x86_64-w64-mingw32/lib/libsniffpol.a
+++ b/x86_64-w64-mingw32/lib/libsniffpol.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsnmpapi.a b/x86_64-w64-mingw32/lib/libsnmpapi.a
index 4908f07..4308ccd 100644
--- a/x86_64-w64-mingw32/lib/libsnmpapi.a
+++ b/x86_64-w64-mingw32/lib/libsnmpapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsnmpcl.a b/x86_64-w64-mingw32/lib/libsnmpcl.a
index 710eeed..5f37a6c 100644
--- a/x86_64-w64-mingw32/lib/libsnmpcl.a
+++ b/x86_64-w64-mingw32/lib/libsnmpcl.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsnmpincl.a b/x86_64-w64-mingw32/lib/libsnmpincl.a
index 4a50fa5..aa2d420 100644
--- a/x86_64-w64-mingw32/lib/libsnmpincl.a
+++ b/x86_64-w64-mingw32/lib/libsnmpincl.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsnmpmib.a b/x86_64-w64-mingw32/lib/libsnmpmib.a
index 91e13e0..32f8c47 100644
--- a/x86_64-w64-mingw32/lib/libsnmpmib.a
+++ b/x86_64-w64-mingw32/lib/libsnmpmib.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsnmpsmir.a b/x86_64-w64-mingw32/lib/libsnmpsmir.a
index be34bce..f7676c8 100644
--- a/x86_64-w64-mingw32/lib/libsnmpsmir.a
+++ b/x86_64-w64-mingw32/lib/libsnmpsmir.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsnmpsnap.a b/x86_64-w64-mingw32/lib/libsnmpsnap.a
index 6e7c7c3..cfcec55 100644
--- a/x86_64-w64-mingw32/lib/libsnmpsnap.a
+++ b/x86_64-w64-mingw32/lib/libsnmpsnap.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsnmpstup.a b/x86_64-w64-mingw32/lib/libsnmpstup.a
index 77d25ae..3552f68 100644
--- a/x86_64-w64-mingw32/lib/libsnmpstup.a
+++ b/x86_64-w64-mingw32/lib/libsnmpstup.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsnmpthrd.a b/x86_64-w64-mingw32/lib/libsnmpthrd.a
index 43a89bd..674afa1 100644
--- a/x86_64-w64-mingw32/lib/libsnmpthrd.a
+++ b/x86_64-w64-mingw32/lib/libsnmpthrd.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsnprfdll.a b/x86_64-w64-mingw32/lib/libsnprfdll.a
index 4e7e83e..473bea3 100644
--- a/x86_64-w64-mingw32/lib/libsnprfdll.a
+++ b/x86_64-w64-mingw32/lib/libsnprfdll.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsoftkbd.a b/x86_64-w64-mingw32/lib/libsoftkbd.a
index e4e7ff0..bbe7662 100644
--- a/x86_64-w64-mingw32/lib/libsoftkbd.a
+++ b/x86_64-w64-mingw32/lib/libsoftkbd.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsoftpub.a b/x86_64-w64-mingw32/lib/libsoftpub.a
index 5cc0b3b..f60475e 100644
--- a/x86_64-w64-mingw32/lib/libsoftpub.a
+++ b/x86_64-w64-mingw32/lib/libsoftpub.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libspcommon.a b/x86_64-w64-mingw32/lib/libspcommon.a
index 2824f6e..14baa10 100644
--- a/x86_64-w64-mingw32/lib/libspcommon.a
+++ b/x86_64-w64-mingw32/lib/libspcommon.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libspoolss.a b/x86_64-w64-mingw32/lib/libspoolss.a
index 8497a8d..deb8cc2 100644
--- a/x86_64-w64-mingw32/lib/libspoolss.a
+++ b/x86_64-w64-mingw32/lib/libspoolss.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsptip.a b/x86_64-w64-mingw32/lib/libsptip.a
index f16121c..fdcf138 100644
--- a/x86_64-w64-mingw32/lib/libsptip.a
+++ b/x86_64-w64-mingw32/lib/libsptip.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libspttseng.a b/x86_64-w64-mingw32/lib/libspttseng.a
index 2434f94..42b4c5e 100644
--- a/x86_64-w64-mingw32/lib/libspttseng.a
+++ b/x86_64-w64-mingw32/lib/libspttseng.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsqlsrv32.a b/x86_64-w64-mingw32/lib/libsqlsrv32.a
index 0dd494a..4a3c620 100644
--- a/x86_64-w64-mingw32/lib/libsqlsrv32.a
+++ b/x86_64-w64-mingw32/lib/libsqlsrv32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsqlxmlx.a b/x86_64-w64-mingw32/lib/libsqlxmlx.a
index 379417d..cabca6f 100644
--- a/x86_64-w64-mingw32/lib/libsqlxmlx.a
+++ b/x86_64-w64-mingw32/lib/libsqlxmlx.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsrchctls.a b/x86_64-w64-mingw32/lib/libsrchctls.a
index dc306fb..214e9ea 100644
--- a/x86_64-w64-mingw32/lib/libsrchctls.a
+++ b/x86_64-w64-mingw32/lib/libsrchctls.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsrchui.a b/x86_64-w64-mingw32/lib/libsrchui.a
index 2d49e2b..7b82464 100644
--- a/x86_64-w64-mingw32/lib/libsrchui.a
+++ b/x86_64-w64-mingw32/lib/libsrchui.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsrclient.a b/x86_64-w64-mingw32/lib/libsrclient.a
index 86ccb0f..d908bb1 100644
--- a/x86_64-w64-mingw32/lib/libsrclient.a
+++ b/x86_64-w64-mingw32/lib/libsrclient.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsrrstr.a b/x86_64-w64-mingw32/lib/libsrrstr.a
index 9e95794..400e26c 100644
--- a/x86_64-w64-mingw32/lib/libsrrstr.a
+++ b/x86_64-w64-mingw32/lib/libsrrstr.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsrsvc.a b/x86_64-w64-mingw32/lib/libsrsvc.a
index 8dd2f40..f44b351 100644
--- a/x86_64-w64-mingw32/lib/libsrsvc.a
+++ b/x86_64-w64-mingw32/lib/libsrsvc.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsrvsvc.a b/x86_64-w64-mingw32/lib/libsrvsvc.a
index 5abebec..a118453 100644
--- a/x86_64-w64-mingw32/lib/libsrvsvc.a
+++ b/x86_64-w64-mingw32/lib/libsrvsvc.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libssdpapi.a b/x86_64-w64-mingw32/lib/libssdpapi.a
index 7bb6132..d81108e 100644
--- a/x86_64-w64-mingw32/lib/libssdpapi.a
+++ b/x86_64-w64-mingw32/lib/libssdpapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libssdpsrv.a b/x86_64-w64-mingw32/lib/libssdpsrv.a
index 34b19f0..6cc46dd 100644
--- a/x86_64-w64-mingw32/lib/libssdpsrv.a
+++ b/x86_64-w64-mingw32/lib/libssdpsrv.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libssinc.a b/x86_64-w64-mingw32/lib/libssinc.a
index 42b441c..4387847 100644
--- a/x86_64-w64-mingw32/lib/libssinc.a
+++ b/x86_64-w64-mingw32/lib/libssinc.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libssp.a b/x86_64-w64-mingw32/lib/libssp.a
index 9195190..df72c3c 100644
--- a/x86_64-w64-mingw32/lib/libssp.a
+++ b/x86_64-w64-mingw32/lib/libssp.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libssp.la b/x86_64-w64-mingw32/lib/libssp.la
index ad0be27..fe615dc 100755
--- a/x86_64-w64-mingw32/lib/libssp.la
+++ b/x86_64-w64-mingw32/lib/libssp.la
@@ -17,7 +17,7 @@
 inherited_linker_flags=''
 
 # Libraries that this one depends upon.
-dependency_libs=' -L/usr/local/google/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/lib -L/usr/local/google/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/mingw/lib'
+dependency_libs=' -L/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/lib -L/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/mingw/lib'
 
 # Names of additional weak libraries provided by this library
 weak_library_names=''
@@ -38,4 +38,4 @@
 dlpreopen=''
 
 # Directory that this library needs to be installed in:
-libdir='/usr/local/google/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/lib/../lib'
+libdir='/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/lib/../lib'
diff --git a/x86_64-w64-mingw32/lib/libssp_nonshared.a b/x86_64-w64-mingw32/lib/libssp_nonshared.a
index 2b72960..25e99b2 100644
--- a/x86_64-w64-mingw32/lib/libssp_nonshared.a
+++ b/x86_64-w64-mingw32/lib/libssp_nonshared.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libssp_nonshared.la b/x86_64-w64-mingw32/lib/libssp_nonshared.la
index 6890c10..a53b3b8 100755
--- a/x86_64-w64-mingw32/lib/libssp_nonshared.la
+++ b/x86_64-w64-mingw32/lib/libssp_nonshared.la
@@ -17,7 +17,7 @@
 inherited_linker_flags=''
 
 # Libraries that this one depends upon.
-dependency_libs=' -L/usr/local/google/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/lib -L/usr/local/google/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/mingw/lib'
+dependency_libs=' -L/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/lib -L/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/mingw/lib'
 
 # Names of additional weak libraries provided by this library
 weak_library_names=''
@@ -38,4 +38,4 @@
 dlpreopen=''
 
 # Directory that this library needs to be installed in:
-libdir='/usr/local/google/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/lib/../lib'
+libdir='/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/lib/../lib'
diff --git a/x86_64-w64-mingw32/lib/libsspicli.a b/x86_64-w64-mingw32/lib/libsspicli.a
index 1ef8d47..e4c482c 100644
--- a/x86_64-w64-mingw32/lib/libsspicli.a
+++ b/x86_64-w64-mingw32/lib/libsspicli.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsstub.a b/x86_64-w64-mingw32/lib/libsstub.a
index 7003092..885e22f 100644
--- a/x86_64-w64-mingw32/lib/libsstub.a
+++ b/x86_64-w64-mingw32/lib/libsstub.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libstaxmem.a b/x86_64-w64-mingw32/lib/libstaxmem.a
index 913e39e..d613a98 100644
--- a/x86_64-w64-mingw32/lib/libstaxmem.a
+++ b/x86_64-w64-mingw32/lib/libstaxmem.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libstclient.a b/x86_64-w64-mingw32/lib/libstclient.a
index 9f4e3fd..cce5c63 100644
--- a/x86_64-w64-mingw32/lib/libstclient.a
+++ b/x86_64-w64-mingw32/lib/libstclient.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libstdc++.a b/x86_64-w64-mingw32/lib/libstdc++.a
index 9cd0ee2..67a0df7 100644
--- a/x86_64-w64-mingw32/lib/libstdc++.a
+++ b/x86_64-w64-mingw32/lib/libstdc++.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libstdc++.a-gdb.py b/x86_64-w64-mingw32/lib/libstdc++.a-gdb.py
index 5953c87..7065d71 100644
--- a/x86_64-w64-mingw32/lib/libstdc++.a-gdb.py
+++ b/x86_64-w64-mingw32/lib/libstdc++.a-gdb.py
@@ -19,8 +19,8 @@
 import os
 import os.path
 
-pythondir = '/usr/local/google/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/share/gcc-4.8.3/python'
-libdir = '/usr/local/google/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/lib/../lib'
+pythondir = '/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/share/gcc-4.8.3/python'
+libdir = '/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/lib/../lib'
 
 # This file might be loaded when there is no current objfile.  This
 # can happen if the user loads it manually.  In this case we don't
diff --git a/x86_64-w64-mingw32/lib/libstdc++.la b/x86_64-w64-mingw32/lib/libstdc++.la
index 48eda3c..0cdcea6 100755
--- a/x86_64-w64-mingw32/lib/libstdc++.la
+++ b/x86_64-w64-mingw32/lib/libstdc++.la
@@ -38,4 +38,4 @@
 dlpreopen=''
 
 # Directory that this library needs to be installed in:
-libdir='/usr/local/google/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/lib/../lib'
+libdir='/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/lib/../lib'
diff --git a/x86_64-w64-mingw32/lib/libstdprov.a b/x86_64-w64-mingw32/lib/libstdprov.a
index ac2a271..8b53a5f 100644
--- a/x86_64-w64-mingw32/lib/libstdprov.a
+++ b/x86_64-w64-mingw32/lib/libstdprov.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsti.a b/x86_64-w64-mingw32/lib/libsti.a
index 3a517d5..ec26f08 100644
--- a/x86_64-w64-mingw32/lib/libsti.a
+++ b/x86_64-w64-mingw32/lib/libsti.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsti_ci.a b/x86_64-w64-mingw32/lib/libsti_ci.a
index 4d8ae5f..ef14a0f 100644
--- a/x86_64-w64-mingw32/lib/libsti_ci.a
+++ b/x86_64-w64-mingw32/lib/libsti_ci.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libstobject.a b/x86_64-w64-mingw32/lib/libstobject.a
index 0927f0d..e9506bf 100644
--- a/x86_64-w64-mingw32/lib/libstobject.a
+++ b/x86_64-w64-mingw32/lib/libstobject.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libstorprop.a b/x86_64-w64-mingw32/lib/libstorprop.a
index 6c464c9..5aca62a 100644
--- a/x86_64-w64-mingw32/lib/libstorprop.a
+++ b/x86_64-w64-mingw32/lib/libstorprop.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libstreamci.a b/x86_64-w64-mingw32/lib/libstreamci.a
index 8bdadbf..eafba7f 100644
--- a/x86_64-w64-mingw32/lib/libstreamci.a
+++ b/x86_64-w64-mingw32/lib/libstreamci.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libstrmfilt.a b/x86_64-w64-mingw32/lib/libstrmfilt.a
index 9d1c593..4414985 100644
--- a/x86_64-w64-mingw32/lib/libstrmfilt.a
+++ b/x86_64-w64-mingw32/lib/libstrmfilt.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libstrmiids.a b/x86_64-w64-mingw32/lib/libstrmiids.a
index 2131bf3..556bb7f 100644
--- a/x86_64-w64-mingw32/lib/libstrmiids.a
+++ b/x86_64-w64-mingw32/lib/libstrmiids.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsupc++.a b/x86_64-w64-mingw32/lib/libsupc++.a
index d254d60..3aea4c0 100644
--- a/x86_64-w64-mingw32/lib/libsupc++.a
+++ b/x86_64-w64-mingw32/lib/libsupc++.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsupc++.la b/x86_64-w64-mingw32/lib/libsupc++.la
index 454b281..13c1458 100755
--- a/x86_64-w64-mingw32/lib/libsupc++.la
+++ b/x86_64-w64-mingw32/lib/libsupc++.la
@@ -38,4 +38,4 @@
 dlpreopen=''
 
 # Directory that this library needs to be installed in:
-libdir='/usr/local/google/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/lib/../lib'
+libdir='/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/lib/../lib'
diff --git a/x86_64-w64-mingw32/lib/libsvcext.a b/x86_64-w64-mingw32/lib/libsvcext.a
index 1162370..78e8f78 100644
--- a/x86_64-w64-mingw32/lib/libsvcext.a
+++ b/x86_64-w64-mingw32/lib/libsvcext.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsvcpack.a b/x86_64-w64-mingw32/lib/libsvcpack.a
index 75227b5..81f1188 100644
--- a/x86_64-w64-mingw32/lib/libsvcpack.a
+++ b/x86_64-w64-mingw32/lib/libsvcpack.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libswprv.a b/x86_64-w64-mingw32/lib/libswprv.a
index 08ec3bf..5e46c10 100644
--- a/x86_64-w64-mingw32/lib/libswprv.a
+++ b/x86_64-w64-mingw32/lib/libswprv.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsxs.a b/x86_64-w64-mingw32/lib/libsxs.a
index c0106bf..5bd83a6 100644
--- a/x86_64-w64-mingw32/lib/libsxs.a
+++ b/x86_64-w64-mingw32/lib/libsxs.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsynceng.a b/x86_64-w64-mingw32/lib/libsynceng.a
index 29db325..4cc68aa 100644
--- a/x86_64-w64-mingw32/lib/libsynceng.a
+++ b/x86_64-w64-mingw32/lib/libsynceng.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsyncui.a b/x86_64-w64-mingw32/lib/libsyncui.a
index 6154583..7f25e15 100644
--- a/x86_64-w64-mingw32/lib/libsyncui.a
+++ b/x86_64-w64-mingw32/lib/libsyncui.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsysinv.a b/x86_64-w64-mingw32/lib/libsysinv.a
index 1efa7e3..ffd438c 100644
--- a/x86_64-w64-mingw32/lib/libsysinv.a
+++ b/x86_64-w64-mingw32/lib/libsysinv.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsysmod.a b/x86_64-w64-mingw32/lib/libsysmod.a
index 0b051bd..3bf0b06 100644
--- a/x86_64-w64-mingw32/lib/libsysmod.a
+++ b/x86_64-w64-mingw32/lib/libsysmod.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libsyssetup.a b/x86_64-w64-mingw32/lib/libsyssetup.a
index 67b305c..b13cd84 100644
--- a/x86_64-w64-mingw32/lib/libsyssetup.a
+++ b/x86_64-w64-mingw32/lib/libsyssetup.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libt2embed.a b/x86_64-w64-mingw32/lib/libt2embed.a
index be6f983..4d98d9f 100644
--- a/x86_64-w64-mingw32/lib/libt2embed.a
+++ b/x86_64-w64-mingw32/lib/libt2embed.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libtapi3.a b/x86_64-w64-mingw32/lib/libtapi3.a
index 80e1e81..3815414 100644
--- a/x86_64-w64-mingw32/lib/libtapi3.a
+++ b/x86_64-w64-mingw32/lib/libtapi3.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libtapi32.a b/x86_64-w64-mingw32/lib/libtapi32.a
index 52b1f8e..ca37c45 100644
--- a/x86_64-w64-mingw32/lib/libtapi32.a
+++ b/x86_64-w64-mingw32/lib/libtapi32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libtapiperf.a b/x86_64-w64-mingw32/lib/libtapiperf.a
index 46ccb3a..fe06a62 100644
--- a/x86_64-w64-mingw32/lib/libtapiperf.a
+++ b/x86_64-w64-mingw32/lib/libtapiperf.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libtapisrv.a b/x86_64-w64-mingw32/lib/libtapisrv.a
index 18d3204..ef933a3 100644
--- a/x86_64-w64-mingw32/lib/libtapisrv.a
+++ b/x86_64-w64-mingw32/lib/libtapisrv.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libtbs.a b/x86_64-w64-mingw32/lib/libtbs.a
index 3493466..06462bc 100644
--- a/x86_64-w64-mingw32/lib/libtbs.a
+++ b/x86_64-w64-mingw32/lib/libtbs.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libtcpmib.a b/x86_64-w64-mingw32/lib/libtcpmib.a
index 48740db..56527cd 100644
--- a/x86_64-w64-mingw32/lib/libtcpmib.a
+++ b/x86_64-w64-mingw32/lib/libtcpmib.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libtcpmon.a b/x86_64-w64-mingw32/lib/libtcpmon.a
index 95d3ffb..f8f2cf3 100644
--- a/x86_64-w64-mingw32/lib/libtcpmon.a
+++ b/x86_64-w64-mingw32/lib/libtcpmon.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libtcpmonui.a b/x86_64-w64-mingw32/lib/libtcpmonui.a
index 6068067..9a1d5fe 100644
--- a/x86_64-w64-mingw32/lib/libtcpmonui.a
+++ b/x86_64-w64-mingw32/lib/libtcpmonui.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libtdh.a b/x86_64-w64-mingw32/lib/libtdh.a
index 8ffa928..fd557d4 100644
--- a/x86_64-w64-mingw32/lib/libtdh.a
+++ b/x86_64-w64-mingw32/lib/libtdh.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libtermmgr.a b/x86_64-w64-mingw32/lib/libtermmgr.a
index 9c111c4..241c18b 100644
--- a/x86_64-w64-mingw32/lib/libtermmgr.a
+++ b/x86_64-w64-mingw32/lib/libtermmgr.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libtermsrv.a b/x86_64-w64-mingw32/lib/libtermsrv.a
index 9d50995..027e3b8 100644
--- a/x86_64-w64-mingw32/lib/libtermsrv.a
+++ b/x86_64-w64-mingw32/lib/libtermsrv.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libthawbrkr.a b/x86_64-w64-mingw32/lib/libthawbrkr.a
index 43dbffa..125417f 100644
--- a/x86_64-w64-mingw32/lib/libthawbrkr.a
+++ b/x86_64-w64-mingw32/lib/libthawbrkr.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libthemeui.a b/x86_64-w64-mingw32/lib/libthemeui.a
index 8ec1036..465d916 100644
--- a/x86_64-w64-mingw32/lib/libthemeui.a
+++ b/x86_64-w64-mingw32/lib/libthemeui.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libtlntsvrp.a b/x86_64-w64-mingw32/lib/libtlntsvrp.a
index a7c7fa1..8b9b0fc 100644
--- a/x86_64-w64-mingw32/lib/libtlntsvrp.a
+++ b/x86_64-w64-mingw32/lib/libtlntsvrp.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libtraffic.a b/x86_64-w64-mingw32/lib/libtraffic.a
index 4f66ede..8dd0e5e 100644
--- a/x86_64-w64-mingw32/lib/libtraffic.a
+++ b/x86_64-w64-mingw32/lib/libtraffic.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libtrialoc.a b/x86_64-w64-mingw32/lib/libtrialoc.a
index 7c26f53..943ee2c 100644
--- a/x86_64-w64-mingw32/lib/libtrialoc.a
+++ b/x86_64-w64-mingw32/lib/libtrialoc.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libtrkwks.a b/x86_64-w64-mingw32/lib/libtrkwks.a
index 9b6a440..b74fa87 100644
--- a/x86_64-w64-mingw32/lib/libtrkwks.a
+++ b/x86_64-w64-mingw32/lib/libtrkwks.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libtsappcmp.a b/x86_64-w64-mingw32/lib/libtsappcmp.a
index f43f95b..6e24120 100644
--- a/x86_64-w64-mingw32/lib/libtsappcmp.a
+++ b/x86_64-w64-mingw32/lib/libtsappcmp.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libtsbyuv.a b/x86_64-w64-mingw32/lib/libtsbyuv.a
index e9b2418..ff89a2f 100644
--- a/x86_64-w64-mingw32/lib/libtsbyuv.a
+++ b/x86_64-w64-mingw32/lib/libtsbyuv.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libtscfgwmi.a b/x86_64-w64-mingw32/lib/libtscfgwmi.a
index 926fbd0..38bb413 100644
--- a/x86_64-w64-mingw32/lib/libtscfgwmi.a
+++ b/x86_64-w64-mingw32/lib/libtscfgwmi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libtsd32.a b/x86_64-w64-mingw32/lib/libtsd32.a
index ecc5875..ced2808 100644
--- a/x86_64-w64-mingw32/lib/libtsd32.a
+++ b/x86_64-w64-mingw32/lib/libtsd32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libtshoot.a b/x86_64-w64-mingw32/lib/libtshoot.a
index c3bb009..41a175b 100644
--- a/x86_64-w64-mingw32/lib/libtshoot.a
+++ b/x86_64-w64-mingw32/lib/libtshoot.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libtsoc.a b/x86_64-w64-mingw32/lib/libtsoc.a
index 01c4af6..ddcdff1 100644
--- a/x86_64-w64-mingw32/lib/libtsoc.a
+++ b/x86_64-w64-mingw32/lib/libtsoc.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libtwext.a b/x86_64-w64-mingw32/lib/libtwext.a
index c504b42..ef2dff6 100644
--- a/x86_64-w64-mingw32/lib/libtwext.a
+++ b/x86_64-w64-mingw32/lib/libtwext.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libtxflog.a b/x86_64-w64-mingw32/lib/libtxflog.a
index 957682b..eb720f2 100644
--- a/x86_64-w64-mingw32/lib/libtxflog.a
+++ b/x86_64-w64-mingw32/lib/libtxflog.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libtxfw32.a b/x86_64-w64-mingw32/lib/libtxfw32.a
index 7d53a55..b23da04 100644
--- a/x86_64-w64-mingw32/lib/libtxfw32.a
+++ b/x86_64-w64-mingw32/lib/libtxfw32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libudhisapi.a b/x86_64-w64-mingw32/lib/libudhisapi.a
index 7b56aa4..5b1c4cf 100644
--- a/x86_64-w64-mingw32/lib/libudhisapi.a
+++ b/x86_64-w64-mingw32/lib/libudhisapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libufat.a b/x86_64-w64-mingw32/lib/libufat.a
index 8146c37..29a4f29 100644
--- a/x86_64-w64-mingw32/lib/libufat.a
+++ b/x86_64-w64-mingw32/lib/libufat.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libuihelper.a b/x86_64-w64-mingw32/lib/libuihelper.a
index 72de5f2..4ed3f4a 100644
--- a/x86_64-w64-mingw32/lib/libuihelper.a
+++ b/x86_64-w64-mingw32/lib/libuihelper.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libulib.a b/x86_64-w64-mingw32/lib/libulib.a
index 58770ef..77fc100 100644
--- a/x86_64-w64-mingw32/lib/libulib.a
+++ b/x86_64-w64-mingw32/lib/libulib.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libumandlg.a b/x86_64-w64-mingw32/lib/libumandlg.a
index 1a2b857..4675a97 100644
--- a/x86_64-w64-mingw32/lib/libumandlg.a
+++ b/x86_64-w64-mingw32/lib/libumandlg.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libumdmxfrm.a b/x86_64-w64-mingw32/lib/libumdmxfrm.a
index e562f5a..ddac7b1 100644
--- a/x86_64-w64-mingw32/lib/libumdmxfrm.a
+++ b/x86_64-w64-mingw32/lib/libumdmxfrm.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libumpnpmgr.a b/x86_64-w64-mingw32/lib/libumpnpmgr.a
index ea323e2..cc22b87 100644
--- a/x86_64-w64-mingw32/lib/libumpnpmgr.a
+++ b/x86_64-w64-mingw32/lib/libumpnpmgr.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libuniime.a b/x86_64-w64-mingw32/lib/libuniime.a
index ba0de21..869e7fd 100644
--- a/x86_64-w64-mingw32/lib/libuniime.a
+++ b/x86_64-w64-mingw32/lib/libuniime.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libunimdmat.a b/x86_64-w64-mingw32/lib/libunimdmat.a
index 0f2d857..142d120 100644
--- a/x86_64-w64-mingw32/lib/libunimdmat.a
+++ b/x86_64-w64-mingw32/lib/libunimdmat.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libuniplat.a b/x86_64-w64-mingw32/lib/libuniplat.a
index 1103982..3e4eea0 100644
--- a/x86_64-w64-mingw32/lib/libuniplat.a
+++ b/x86_64-w64-mingw32/lib/libuniplat.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libuntfs.a b/x86_64-w64-mingw32/lib/libuntfs.a
index 127f3f5..df6e8a1 100644
--- a/x86_64-w64-mingw32/lib/libuntfs.a
+++ b/x86_64-w64-mingw32/lib/libuntfs.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libupnp.a b/x86_64-w64-mingw32/lib/libupnp.a
index 9c963ab..0e44acf 100644
--- a/x86_64-w64-mingw32/lib/libupnp.a
+++ b/x86_64-w64-mingw32/lib/libupnp.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libupnphost.a b/x86_64-w64-mingw32/lib/libupnphost.a
index fcfa118..937b6d6 100644
--- a/x86_64-w64-mingw32/lib/libupnphost.a
+++ b/x86_64-w64-mingw32/lib/libupnphost.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libupnpui.a b/x86_64-w64-mingw32/lib/libupnpui.a
index 19e0df0..916b453 100644
--- a/x86_64-w64-mingw32/lib/libupnpui.a
+++ b/x86_64-w64-mingw32/lib/libupnpui.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libureg.a b/x86_64-w64-mingw32/lib/libureg.a
index 73c1e0d..886b7f8 100644
--- a/x86_64-w64-mingw32/lib/libureg.a
+++ b/x86_64-w64-mingw32/lib/libureg.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/liburl.a b/x86_64-w64-mingw32/lib/liburl.a
index db861e2..03de0cb 100644
--- a/x86_64-w64-mingw32/lib/liburl.a
+++ b/x86_64-w64-mingw32/lib/liburl.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/liburlauth.a b/x86_64-w64-mingw32/lib/liburlauth.a
index b93ddfa..f6a23fa 100644
--- a/x86_64-w64-mingw32/lib/liburlauth.a
+++ b/x86_64-w64-mingw32/lib/liburlauth.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/liburlmon.a b/x86_64-w64-mingw32/lib/liburlmon.a
index e78c0b0..871f703 100644
--- a/x86_64-w64-mingw32/lib/liburlmon.a
+++ b/x86_64-w64-mingw32/lib/liburlmon.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libusbcamd2.a b/x86_64-w64-mingw32/lib/libusbcamd2.a
index 6b6a6d2..727cc27 100644
--- a/x86_64-w64-mingw32/lib/libusbcamd2.a
+++ b/x86_64-w64-mingw32/lib/libusbcamd2.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libusbd.a b/x86_64-w64-mingw32/lib/libusbd.a
index 99183df..1f99f44 100644
--- a/x86_64-w64-mingw32/lib/libusbd.a
+++ b/x86_64-w64-mingw32/lib/libusbd.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libusbmon.a b/x86_64-w64-mingw32/lib/libusbmon.a
index d9becd5..156f769 100644
--- a/x86_64-w64-mingw32/lib/libusbmon.a
+++ b/x86_64-w64-mingw32/lib/libusbmon.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libusbport.a b/x86_64-w64-mingw32/lib/libusbport.a
index 89cf2b5..d6e43c9 100644
--- a/x86_64-w64-mingw32/lib/libusbport.a
+++ b/x86_64-w64-mingw32/lib/libusbport.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libuser32.a b/x86_64-w64-mingw32/lib/libuser32.a
index 4c37a00..a233d32 100644
--- a/x86_64-w64-mingw32/lib/libuser32.a
+++ b/x86_64-w64-mingw32/lib/libuser32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libuserenv.a b/x86_64-w64-mingw32/lib/libuserenv.a
index fdfc2f1..b3aee22 100644
--- a/x86_64-w64-mingw32/lib/libuserenv.a
+++ b/x86_64-w64-mingw32/lib/libuserenv.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libusp10.a b/x86_64-w64-mingw32/lib/libusp10.a
index 1516e75..19124e2 100644
--- a/x86_64-w64-mingw32/lib/libusp10.a
+++ b/x86_64-w64-mingw32/lib/libusp10.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libutildll.a b/x86_64-w64-mingw32/lib/libutildll.a
index 8c2aa9e..e04c8da 100644
--- a/x86_64-w64-mingw32/lib/libutildll.a
+++ b/x86_64-w64-mingw32/lib/libutildll.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libuuid.a b/x86_64-w64-mingw32/lib/libuuid.a
index 5da1f76..48d4831 100644
--- a/x86_64-w64-mingw32/lib/libuuid.a
+++ b/x86_64-w64-mingw32/lib/libuuid.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libuxtheme.a b/x86_64-w64-mingw32/lib/libuxtheme.a
index a3acf07..4fbe0c0 100644
--- a/x86_64-w64-mingw32/lib/libuxtheme.a
+++ b/x86_64-w64-mingw32/lib/libuxtheme.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libvbscript.a b/x86_64-w64-mingw32/lib/libvbscript.a
index f23ce79..f362d91 100644
--- a/x86_64-w64-mingw32/lib/libvbscript.a
+++ b/x86_64-w64-mingw32/lib/libvbscript.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libvds_ps.a b/x86_64-w64-mingw32/lib/libvds_ps.a
index 806a9f6..bc99f36 100644
--- a/x86_64-w64-mingw32/lib/libvds_ps.a
+++ b/x86_64-w64-mingw32/lib/libvds_ps.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libvdsbas.a b/x86_64-w64-mingw32/lib/libvdsbas.a
index 23f39c8..8f376c3 100644
--- a/x86_64-w64-mingw32/lib/libvdsbas.a
+++ b/x86_64-w64-mingw32/lib/libvdsbas.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libvdsdyndr.a b/x86_64-w64-mingw32/lib/libvdsdyndr.a
index 51624a1..3bbd222 100644
--- a/x86_64-w64-mingw32/lib/libvdsdyndr.a
+++ b/x86_64-w64-mingw32/lib/libvdsdyndr.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libvdsutil.a b/x86_64-w64-mingw32/lib/libvdsutil.a
index 20bbbb1..c0d0875 100644
--- a/x86_64-w64-mingw32/lib/libvdsutil.a
+++ b/x86_64-w64-mingw32/lib/libvdsutil.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libvdswmi.a b/x86_64-w64-mingw32/lib/libvdswmi.a
index 83a3ac7..ff6e62b 100644
--- a/x86_64-w64-mingw32/lib/libvdswmi.a
+++ b/x86_64-w64-mingw32/lib/libvdswmi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libverifier.a b/x86_64-w64-mingw32/lib/libverifier.a
index d5d53d0..f7daa29 100644
--- a/x86_64-w64-mingw32/lib/libverifier.a
+++ b/x86_64-w64-mingw32/lib/libverifier.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libversion.a b/x86_64-w64-mingw32/lib/libversion.a
index 1a9ef6d..b680b4c 100644
--- a/x86_64-w64-mingw32/lib/libversion.a
+++ b/x86_64-w64-mingw32/lib/libversion.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libvfw32.a b/x86_64-w64-mingw32/lib/libvfw32.a
index 19d7ff8..b2a8c42 100644
--- a/x86_64-w64-mingw32/lib/libvfw32.a
+++ b/x86_64-w64-mingw32/lib/libvfw32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libvgx.a b/x86_64-w64-mingw32/lib/libvgx.a
index 04fa1da..487e597 100644
--- a/x86_64-w64-mingw32/lib/libvgx.a
+++ b/x86_64-w64-mingw32/lib/libvgx.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libviewprov.a b/x86_64-w64-mingw32/lib/libviewprov.a
index 1b542d0..b8f15ca 100644
--- a/x86_64-w64-mingw32/lib/libviewprov.a
+++ b/x86_64-w64-mingw32/lib/libviewprov.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libvirtdisk.a b/x86_64-w64-mingw32/lib/libvirtdisk.a
index af81854..b980590 100644
--- a/x86_64-w64-mingw32/lib/libvirtdisk.a
+++ b/x86_64-w64-mingw32/lib/libvirtdisk.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libvmx_mode.a b/x86_64-w64-mingw32/lib/libvmx_mode.a
index 6a7a57d..644552b 100644
--- a/x86_64-w64-mingw32/lib/libvmx_mode.a
+++ b/x86_64-w64-mingw32/lib/libvmx_mode.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libvss_ps.a b/x86_64-w64-mingw32/lib/libvss_ps.a
index 215a4de..488f76f 100644
--- a/x86_64-w64-mingw32/lib/libvss_ps.a
+++ b/x86_64-w64-mingw32/lib/libvss_ps.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libvssapi.a b/x86_64-w64-mingw32/lib/libvssapi.a
index 98017dc..3190fc9 100644
--- a/x86_64-w64-mingw32/lib/libvssapi.a
+++ b/x86_64-w64-mingw32/lib/libvssapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libvsstrace.a b/x86_64-w64-mingw32/lib/libvsstrace.a
index 26f445a..e1cf829 100644
--- a/x86_64-w64-mingw32/lib/libvsstrace.a
+++ b/x86_64-w64-mingw32/lib/libvsstrace.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libvsswmi.a b/x86_64-w64-mingw32/lib/libvsswmi.a
index b32434b..08f1ce9 100644
--- a/x86_64-w64-mingw32/lib/libvsswmi.a
+++ b/x86_64-w64-mingw32/lib/libvsswmi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libw32time.a b/x86_64-w64-mingw32/lib/libw32time.a
index de2ee59..c455c51 100644
--- a/x86_64-w64-mingw32/lib/libw32time.a
+++ b/x86_64-w64-mingw32/lib/libw32time.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libw32topl.a b/x86_64-w64-mingw32/lib/libw32topl.a
index d94d728..453acd9 100644
--- a/x86_64-w64-mingw32/lib/libw32topl.a
+++ b/x86_64-w64-mingw32/lib/libw32topl.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libw3cache.a b/x86_64-w64-mingw32/lib/libw3cache.a
index adbb854..22cc937 100644
--- a/x86_64-w64-mingw32/lib/libw3cache.a
+++ b/x86_64-w64-mingw32/lib/libw3cache.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libw3comlog.a b/x86_64-w64-mingw32/lib/libw3comlog.a
index 9c2b3bd..44138b5 100644
--- a/x86_64-w64-mingw32/lib/libw3comlog.a
+++ b/x86_64-w64-mingw32/lib/libw3comlog.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libw3core.a b/x86_64-w64-mingw32/lib/libw3core.a
index 281aef8..77afd3f 100644
--- a/x86_64-w64-mingw32/lib/libw3core.a
+++ b/x86_64-w64-mingw32/lib/libw3core.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libw3ctrlps.a b/x86_64-w64-mingw32/lib/libw3ctrlps.a
index 69a21f1..72543b0 100644
--- a/x86_64-w64-mingw32/lib/libw3ctrlps.a
+++ b/x86_64-w64-mingw32/lib/libw3ctrlps.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libw3ctrs.a b/x86_64-w64-mingw32/lib/libw3ctrs.a
index ca66160..5b08ccb 100644
--- a/x86_64-w64-mingw32/lib/libw3ctrs.a
+++ b/x86_64-w64-mingw32/lib/libw3ctrs.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libw3dt.a b/x86_64-w64-mingw32/lib/libw3dt.a
index 6e3d9ac..a577f26 100644
--- a/x86_64-w64-mingw32/lib/libw3dt.a
+++ b/x86_64-w64-mingw32/lib/libw3dt.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libw3ext.a b/x86_64-w64-mingw32/lib/libw3ext.a
index e68dc55..1ede696 100644
--- a/x86_64-w64-mingw32/lib/libw3ext.a
+++ b/x86_64-w64-mingw32/lib/libw3ext.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libw3isapi.a b/x86_64-w64-mingw32/lib/libw3isapi.a
index aef0d11..31410f3 100644
--- a/x86_64-w64-mingw32/lib/libw3isapi.a
+++ b/x86_64-w64-mingw32/lib/libw3isapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libw3ssl.a b/x86_64-w64-mingw32/lib/libw3ssl.a
index d7d99a8..4172a4b 100644
--- a/x86_64-w64-mingw32/lib/libw3ssl.a
+++ b/x86_64-w64-mingw32/lib/libw3ssl.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libw3tp.a b/x86_64-w64-mingw32/lib/libw3tp.a
index 8c9ab12..795a433 100644
--- a/x86_64-w64-mingw32/lib/libw3tp.a
+++ b/x86_64-w64-mingw32/lib/libw3tp.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwab32.a b/x86_64-w64-mingw32/lib/libwab32.a
index 26a2f79..30069d2 100644
--- a/x86_64-w64-mingw32/lib/libwab32.a
+++ b/x86_64-w64-mingw32/lib/libwab32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwabimp.a b/x86_64-w64-mingw32/lib/libwabimp.a
index 5d856e6..4e99f1d 100644
--- a/x86_64-w64-mingw32/lib/libwabimp.a
+++ b/x86_64-w64-mingw32/lib/libwabimp.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwamreg.a b/x86_64-w64-mingw32/lib/libwamreg.a
index 1947a84..8ffd410 100644
--- a/x86_64-w64-mingw32/lib/libwamreg.a
+++ b/x86_64-w64-mingw32/lib/libwamreg.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwamregps.a b/x86_64-w64-mingw32/lib/libwamregps.a
index 44fac14..db7d127 100644
--- a/x86_64-w64-mingw32/lib/libwamregps.a
+++ b/x86_64-w64-mingw32/lib/libwamregps.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwbemcore.a b/x86_64-w64-mingw32/lib/libwbemcore.a
index 95eabc0..999087f 100644
--- a/x86_64-w64-mingw32/lib/libwbemcore.a
+++ b/x86_64-w64-mingw32/lib/libwbemcore.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwbemupgd.a b/x86_64-w64-mingw32/lib/libwbemupgd.a
index 3470874..7accfae 100644
--- a/x86_64-w64-mingw32/lib/libwbemupgd.a
+++ b/x86_64-w64-mingw32/lib/libwbemupgd.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwbemuuid.a b/x86_64-w64-mingw32/lib/libwbemuuid.a
index f19a738..e1d710d 100644
--- a/x86_64-w64-mingw32/lib/libwbemuuid.a
+++ b/x86_64-w64-mingw32/lib/libwbemuuid.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwdigest.a b/x86_64-w64-mingw32/lib/libwdigest.a
index 484dd31..f843848 100644
--- a/x86_64-w64-mingw32/lib/libwdigest.a
+++ b/x86_64-w64-mingw32/lib/libwdigest.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwdmaud.a b/x86_64-w64-mingw32/lib/libwdmaud.a
index 7d79c62..db68e0e 100644
--- a/x86_64-w64-mingw32/lib/libwdmaud.a
+++ b/x86_64-w64-mingw32/lib/libwdmaud.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwdsclient.a b/x86_64-w64-mingw32/lib/libwdsclient.a
index 9189d61..9c6847d 100644
--- a/x86_64-w64-mingw32/lib/libwdsclient.a
+++ b/x86_64-w64-mingw32/lib/libwdsclient.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwdsclientapi.a b/x86_64-w64-mingw32/lib/libwdsclientapi.a
index e12a603..8d72b53 100644
--- a/x86_64-w64-mingw32/lib/libwdsclientapi.a
+++ b/x86_64-w64-mingw32/lib/libwdsclientapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwdscore.a b/x86_64-w64-mingw32/lib/libwdscore.a
index be936be..5dde99f 100644
--- a/x86_64-w64-mingw32/lib/libwdscore.a
+++ b/x86_64-w64-mingw32/lib/libwdscore.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwdscsl.a b/x86_64-w64-mingw32/lib/libwdscsl.a
index 65e558f..41a379a 100644
--- a/x86_64-w64-mingw32/lib/libwdscsl.a
+++ b/x86_64-w64-mingw32/lib/libwdscsl.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwdsimage.a b/x86_64-w64-mingw32/lib/libwdsimage.a
index 22a548e..113dfa5 100644
--- a/x86_64-w64-mingw32/lib/libwdsimage.a
+++ b/x86_64-w64-mingw32/lib/libwdsimage.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwdstptc.a b/x86_64-w64-mingw32/lib/libwdstptc.a
index 40c8536..d5fdf85 100644
--- a/x86_64-w64-mingw32/lib/libwdstptc.a
+++ b/x86_64-w64-mingw32/lib/libwdstptc.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwdsupgcompl.a b/x86_64-w64-mingw32/lib/libwdsupgcompl.a
index 0475fb2..6477f38 100644
--- a/x86_64-w64-mingw32/lib/libwdsupgcompl.a
+++ b/x86_64-w64-mingw32/lib/libwdsupgcompl.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwdsutil.a b/x86_64-w64-mingw32/lib/libwdsutil.a
index c5042da..64e539b 100644
--- a/x86_64-w64-mingw32/lib/libwdsutil.a
+++ b/x86_64-w64-mingw32/lib/libwdsutil.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwebcheck.a b/x86_64-w64-mingw32/lib/libwebcheck.a
index 3604d4b..b19da1d 100644
--- a/x86_64-w64-mingw32/lib/libwebcheck.a
+++ b/x86_64-w64-mingw32/lib/libwebcheck.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwebclnt.a b/x86_64-w64-mingw32/lib/libwebclnt.a
index 406da1d..24eb818 100644
--- a/x86_64-w64-mingw32/lib/libwebclnt.a
+++ b/x86_64-w64-mingw32/lib/libwebclnt.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwebhits.a b/x86_64-w64-mingw32/lib/libwebhits.a
index 25b834a..06e656c 100644
--- a/x86_64-w64-mingw32/lib/libwebhits.a
+++ b/x86_64-w64-mingw32/lib/libwebhits.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwecapi.a b/x86_64-w64-mingw32/lib/libwecapi.a
index 702645b..0861438 100644
--- a/x86_64-w64-mingw32/lib/libwecapi.a
+++ b/x86_64-w64-mingw32/lib/libwecapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwer.a b/x86_64-w64-mingw32/lib/libwer.a
index e7fe750..c4834c1 100644
--- a/x86_64-w64-mingw32/lib/libwer.a
+++ b/x86_64-w64-mingw32/lib/libwer.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwevtapi.a b/x86_64-w64-mingw32/lib/libwevtapi.a
index e94b12d..820b173 100644
--- a/x86_64-w64-mingw32/lib/libwevtapi.a
+++ b/x86_64-w64-mingw32/lib/libwevtapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwevtfwd.a b/x86_64-w64-mingw32/lib/libwevtfwd.a
index fe35d4d..2090e5c 100644
--- a/x86_64-w64-mingw32/lib/libwevtfwd.a
+++ b/x86_64-w64-mingw32/lib/libwevtfwd.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwiadss.a b/x86_64-w64-mingw32/lib/libwiadss.a
index 7f5c2dd..31dc587 100644
--- a/x86_64-w64-mingw32/lib/libwiadss.a
+++ b/x86_64-w64-mingw32/lib/libwiadss.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwiarpc.a b/x86_64-w64-mingw32/lib/libwiarpc.a
index 9cf6d85..f8afc93 100644
--- a/x86_64-w64-mingw32/lib/libwiarpc.a
+++ b/x86_64-w64-mingw32/lib/libwiarpc.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwiaservc.a b/x86_64-w64-mingw32/lib/libwiaservc.a
index fe60fd3..8cc1841 100644
--- a/x86_64-w64-mingw32/lib/libwiaservc.a
+++ b/x86_64-w64-mingw32/lib/libwiaservc.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwiashext.a b/x86_64-w64-mingw32/lib/libwiashext.a
index e133e75..0617424 100644
--- a/x86_64-w64-mingw32/lib/libwiashext.a
+++ b/x86_64-w64-mingw32/lib/libwiashext.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwin32spl.a b/x86_64-w64-mingw32/lib/libwin32spl.a
index 0429aa9..3ed1f04 100644
--- a/x86_64-w64-mingw32/lib/libwin32spl.a
+++ b/x86_64-w64-mingw32/lib/libwin32spl.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwindowscodecs.a b/x86_64-w64-mingw32/lib/libwindowscodecs.a
index da91199..0f297d5 100644
--- a/x86_64-w64-mingw32/lib/libwindowscodecs.a
+++ b/x86_64-w64-mingw32/lib/libwindowscodecs.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwinfax.a b/x86_64-w64-mingw32/lib/libwinfax.a
index 2b756f4..7b52c8f 100644
--- a/x86_64-w64-mingw32/lib/libwinfax.a
+++ b/x86_64-w64-mingw32/lib/libwinfax.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwinhttp.a b/x86_64-w64-mingw32/lib/libwinhttp.a
index 7a58e7d..5f9c61f 100644
--- a/x86_64-w64-mingw32/lib/libwinhttp.a
+++ b/x86_64-w64-mingw32/lib/libwinhttp.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwininet.a b/x86_64-w64-mingw32/lib/libwininet.a
index 6614014..0cb621e 100644
--- a/x86_64-w64-mingw32/lib/libwininet.a
+++ b/x86_64-w64-mingw32/lib/libwininet.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwinipsec.a b/x86_64-w64-mingw32/lib/libwinipsec.a
index 1521287..51b2815 100644
--- a/x86_64-w64-mingw32/lib/libwinipsec.a
+++ b/x86_64-w64-mingw32/lib/libwinipsec.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwinmm.a b/x86_64-w64-mingw32/lib/libwinmm.a
index ae973a5..3a69e33 100644
--- a/x86_64-w64-mingw32/lib/libwinmm.a
+++ b/x86_64-w64-mingw32/lib/libwinmm.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwinpthread.a b/x86_64-w64-mingw32/lib/libwinpthread.a
index 0190720..bd73933 100644
--- a/x86_64-w64-mingw32/lib/libwinpthread.a
+++ b/x86_64-w64-mingw32/lib/libwinpthread.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwinpthread.dll.a b/x86_64-w64-mingw32/lib/libwinpthread.dll.a
index 07a101d..ff5460e 100755
--- a/x86_64-w64-mingw32/lib/libwinpthread.dll.a
+++ b/x86_64-w64-mingw32/lib/libwinpthread.dll.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwinpthread.la b/x86_64-w64-mingw32/lib/libwinpthread.la
index d0d5dde..df7dcbd 100755
--- a/x86_64-w64-mingw32/lib/libwinpthread.la
+++ b/x86_64-w64-mingw32/lib/libwinpthread.la
@@ -38,4 +38,4 @@
 dlpreopen=''
 
 # Directory that this library needs to be installed in:
-libdir='/usr/local/google/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/lib'
+libdir='/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/lib'
diff --git a/x86_64-w64-mingw32/lib/libwinrnr.a b/x86_64-w64-mingw32/lib/libwinrnr.a
index 361dc8b..91da929 100644
--- a/x86_64-w64-mingw32/lib/libwinrnr.a
+++ b/x86_64-w64-mingw32/lib/libwinrnr.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwinscard.a b/x86_64-w64-mingw32/lib/libwinscard.a
index fff3448..a840ebc 100644
--- a/x86_64-w64-mingw32/lib/libwinscard.a
+++ b/x86_64-w64-mingw32/lib/libwinscard.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwinspool.a b/x86_64-w64-mingw32/lib/libwinspool.a
index 669b366..373a4dd 100644
--- a/x86_64-w64-mingw32/lib/libwinspool.a
+++ b/x86_64-w64-mingw32/lib/libwinspool.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwinsrv.a b/x86_64-w64-mingw32/lib/libwinsrv.a
index ed36cfc..2901597 100644
--- a/x86_64-w64-mingw32/lib/libwinsrv.a
+++ b/x86_64-w64-mingw32/lib/libwinsrv.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwinsta.a b/x86_64-w64-mingw32/lib/libwinsta.a
index b74f110..1260026 100644
--- a/x86_64-w64-mingw32/lib/libwinsta.a
+++ b/x86_64-w64-mingw32/lib/libwinsta.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwintrust.a b/x86_64-w64-mingw32/lib/libwintrust.a
index 8ce309b..38ddb49 100644
--- a/x86_64-w64-mingw32/lib/libwintrust.a
+++ b/x86_64-w64-mingw32/lib/libwintrust.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwinusb.a b/x86_64-w64-mingw32/lib/libwinusb.a
index 107a044..88d6e6e 100644
--- a/x86_64-w64-mingw32/lib/libwinusb.a
+++ b/x86_64-w64-mingw32/lib/libwinusb.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwkssvc.a b/x86_64-w64-mingw32/lib/libwkssvc.a
index bb5c478..c28c668 100644
--- a/x86_64-w64-mingw32/lib/libwkssvc.a
+++ b/x86_64-w64-mingw32/lib/libwkssvc.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwlanapi.a b/x86_64-w64-mingw32/lib/libwlanapi.a
index 11b6de9..3530fc4 100644
--- a/x86_64-w64-mingw32/lib/libwlanapi.a
+++ b/x86_64-w64-mingw32/lib/libwlanapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwlanui.a b/x86_64-w64-mingw32/lib/libwlanui.a
index 4bf0e04..de31a93 100644
--- a/x86_64-w64-mingw32/lib/libwlanui.a
+++ b/x86_64-w64-mingw32/lib/libwlanui.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwlanutil.a b/x86_64-w64-mingw32/lib/libwlanutil.a
index a7d76a7..c81aa9b 100644
--- a/x86_64-w64-mingw32/lib/libwlanutil.a
+++ b/x86_64-w64-mingw32/lib/libwlanutil.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwldap32.a b/x86_64-w64-mingw32/lib/libwldap32.a
index ef1b368..36a3265 100644
--- a/x86_64-w64-mingw32/lib/libwldap32.a
+++ b/x86_64-w64-mingw32/lib/libwldap32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwlnotify.a b/x86_64-w64-mingw32/lib/libwlnotify.a
index a1aa8e4..6b412ac 100644
--- a/x86_64-w64-mingw32/lib/libwlnotify.a
+++ b/x86_64-w64-mingw32/lib/libwlnotify.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwlstore.a b/x86_64-w64-mingw32/lib/libwlstore.a
index c480212..f73d618 100644
--- a/x86_64-w64-mingw32/lib/libwlstore.a
+++ b/x86_64-w64-mingw32/lib/libwlstore.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwmcodecdspuuid.a b/x86_64-w64-mingw32/lib/libwmcodecdspuuid.a
index 8eba101..e2a0ccb 100644
--- a/x86_64-w64-mingw32/lib/libwmcodecdspuuid.a
+++ b/x86_64-w64-mingw32/lib/libwmcodecdspuuid.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwmi.a b/x86_64-w64-mingw32/lib/libwmi.a
index e9eb9fe..dad230b 100644
--- a/x86_64-w64-mingw32/lib/libwmi.a
+++ b/x86_64-w64-mingw32/lib/libwmi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwmi2xml.a b/x86_64-w64-mingw32/lib/libwmi2xml.a
index dd838f2..35cfbd0 100644
--- a/x86_64-w64-mingw32/lib/libwmi2xml.a
+++ b/x86_64-w64-mingw32/lib/libwmi2xml.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwmiaprpl.a b/x86_64-w64-mingw32/lib/libwmiaprpl.a
index cbac0a6..03ea542 100644
--- a/x86_64-w64-mingw32/lib/libwmiaprpl.a
+++ b/x86_64-w64-mingw32/lib/libwmiaprpl.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwmilib.a b/x86_64-w64-mingw32/lib/libwmilib.a
index 0ba8e4f..f18e359 100644
--- a/x86_64-w64-mingw32/lib/libwmilib.a
+++ b/x86_64-w64-mingw32/lib/libwmilib.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwmiprop.a b/x86_64-w64-mingw32/lib/libwmiprop.a
index ea029c4..06349f2 100644
--- a/x86_64-w64-mingw32/lib/libwmiprop.a
+++ b/x86_64-w64-mingw32/lib/libwmiprop.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwmisvc.a b/x86_64-w64-mingw32/lib/libwmisvc.a
index 8d9ae14..24852cc 100644
--- a/x86_64-w64-mingw32/lib/libwmisvc.a
+++ b/x86_64-w64-mingw32/lib/libwmisvc.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwow64.a b/x86_64-w64-mingw32/lib/libwow64.a
index fb5f69b..6d52ea4 100644
--- a/x86_64-w64-mingw32/lib/libwow64.a
+++ b/x86_64-w64-mingw32/lib/libwow64.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwow64cpu.a b/x86_64-w64-mingw32/lib/libwow64cpu.a
index 0a1b15d..1b60bf2 100644
--- a/x86_64-w64-mingw32/lib/libwow64cpu.a
+++ b/x86_64-w64-mingw32/lib/libwow64cpu.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwow64mib.a b/x86_64-w64-mingw32/lib/libwow64mib.a
index a5d56bf..0c5ce32 100644
--- a/x86_64-w64-mingw32/lib/libwow64mib.a
+++ b/x86_64-w64-mingw32/lib/libwow64mib.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwow64win.a b/x86_64-w64-mingw32/lib/libwow64win.a
index 31e30fc..6e52f4f 100644
--- a/x86_64-w64-mingw32/lib/libwow64win.a
+++ b/x86_64-w64-mingw32/lib/libwow64win.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwpd_ci.a b/x86_64-w64-mingw32/lib/libwpd_ci.a
index a4c3e46..e46b18c 100644
--- a/x86_64-w64-mingw32/lib/libwpd_ci.a
+++ b/x86_64-w64-mingw32/lib/libwpd_ci.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libws2_32.a b/x86_64-w64-mingw32/lib/libws2_32.a
index 72371df..ec9c17f 100644
--- a/x86_64-w64-mingw32/lib/libws2_32.a
+++ b/x86_64-w64-mingw32/lib/libws2_32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libws2help.a b/x86_64-w64-mingw32/lib/libws2help.a
index 9fd56f7..3f7a1e3 100644
--- a/x86_64-w64-mingw32/lib/libws2help.a
+++ b/x86_64-w64-mingw32/lib/libws2help.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwscsvc.a b/x86_64-w64-mingw32/lib/libwscsvc.a
index ad1a516..10e2bbc 100644
--- a/x86_64-w64-mingw32/lib/libwscsvc.a
+++ b/x86_64-w64-mingw32/lib/libwscsvc.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwsdapi.a b/x86_64-w64-mingw32/lib/libwsdapi.a
index 8e977e1..acbc639 100644
--- a/x86_64-w64-mingw32/lib/libwsdapi.a
+++ b/x86_64-w64-mingw32/lib/libwsdapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwshatm.a b/x86_64-w64-mingw32/lib/libwshatm.a
index 93b6f37..df60f1d 100644
--- a/x86_64-w64-mingw32/lib/libwshatm.a
+++ b/x86_64-w64-mingw32/lib/libwshatm.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwshbth.a b/x86_64-w64-mingw32/lib/libwshbth.a
index 3705334..e462e25 100644
--- a/x86_64-w64-mingw32/lib/libwshbth.a
+++ b/x86_64-w64-mingw32/lib/libwshbth.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwshcon.a b/x86_64-w64-mingw32/lib/libwshcon.a
index 6059afe..a70333e 100644
--- a/x86_64-w64-mingw32/lib/libwshcon.a
+++ b/x86_64-w64-mingw32/lib/libwshcon.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwsock32.a b/x86_64-w64-mingw32/lib/libwsock32.a
index 0ad470d..1e01d80 100644
--- a/x86_64-w64-mingw32/lib/libwsock32.a
+++ b/x86_64-w64-mingw32/lib/libwsock32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libwtsapi32.a b/x86_64-w64-mingw32/lib/libwtsapi32.a
index 52a9221..311199c 100644
--- a/x86_64-w64-mingw32/lib/libwtsapi32.a
+++ b/x86_64-w64-mingw32/lib/libwtsapi32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libx3daudio.a b/x86_64-w64-mingw32/lib/libx3daudio.a
index 0771f9c..7aba12f 100644
--- a/x86_64-w64-mingw32/lib/libx3daudio.a
+++ b/x86_64-w64-mingw32/lib/libx3daudio.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libx3daudio1_2.a b/x86_64-w64-mingw32/lib/libx3daudio1_2.a
index e65a302..8f63143 100644
--- a/x86_64-w64-mingw32/lib/libx3daudio1_2.a
+++ b/x86_64-w64-mingw32/lib/libx3daudio1_2.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libx3daudio1_3.a b/x86_64-w64-mingw32/lib/libx3daudio1_3.a
index d991977..e109f21 100644
--- a/x86_64-w64-mingw32/lib/libx3daudio1_3.a
+++ b/x86_64-w64-mingw32/lib/libx3daudio1_3.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libx3daudio1_4.a b/x86_64-w64-mingw32/lib/libx3daudio1_4.a
index 2f6c96e..8645f2e 100644
--- a/x86_64-w64-mingw32/lib/libx3daudio1_4.a
+++ b/x86_64-w64-mingw32/lib/libx3daudio1_4.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libx3daudio1_5.a b/x86_64-w64-mingw32/lib/libx3daudio1_5.a
index 11c0d61..5c18115 100644
--- a/x86_64-w64-mingw32/lib/libx3daudio1_5.a
+++ b/x86_64-w64-mingw32/lib/libx3daudio1_5.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libx3daudio1_6.a b/x86_64-w64-mingw32/lib/libx3daudio1_6.a
index 5cc9027..e7c854c 100644
--- a/x86_64-w64-mingw32/lib/libx3daudio1_6.a
+++ b/x86_64-w64-mingw32/lib/libx3daudio1_6.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libx3daudio1_7.a b/x86_64-w64-mingw32/lib/libx3daudio1_7.a
index 4dc7999..6c7f1e4 100644
--- a/x86_64-w64-mingw32/lib/libx3daudio1_7.a
+++ b/x86_64-w64-mingw32/lib/libx3daudio1_7.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libx3daudiod1_7.a b/x86_64-w64-mingw32/lib/libx3daudiod1_7.a
index 3d83971..ba5e9b3 100644
--- a/x86_64-w64-mingw32/lib/libx3daudiod1_7.a
+++ b/x86_64-w64-mingw32/lib/libx3daudiod1_7.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libxapofx.a b/x86_64-w64-mingw32/lib/libxapofx.a
index ff0bdc5..11ec45a 100644
--- a/x86_64-w64-mingw32/lib/libxapofx.a
+++ b/x86_64-w64-mingw32/lib/libxapofx.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libxapofx1_0.a b/x86_64-w64-mingw32/lib/libxapofx1_0.a
index e5ae237..5a61dac 100644
--- a/x86_64-w64-mingw32/lib/libxapofx1_0.a
+++ b/x86_64-w64-mingw32/lib/libxapofx1_0.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libxapofx1_1.a b/x86_64-w64-mingw32/lib/libxapofx1_1.a
index e578391..6cfb1be 100644
--- a/x86_64-w64-mingw32/lib/libxapofx1_1.a
+++ b/x86_64-w64-mingw32/lib/libxapofx1_1.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libxapofx1_2.a b/x86_64-w64-mingw32/lib/libxapofx1_2.a
index 24a0cb9..166c6a3 100644
--- a/x86_64-w64-mingw32/lib/libxapofx1_2.a
+++ b/x86_64-w64-mingw32/lib/libxapofx1_2.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libxapofx1_3.a b/x86_64-w64-mingw32/lib/libxapofx1_3.a
index 8f009ed..70a626c 100644
--- a/x86_64-w64-mingw32/lib/libxapofx1_3.a
+++ b/x86_64-w64-mingw32/lib/libxapofx1_3.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libxapofx1_4.a b/x86_64-w64-mingw32/lib/libxapofx1_4.a
index 3c0098f..5b460d7 100644
--- a/x86_64-w64-mingw32/lib/libxapofx1_4.a
+++ b/x86_64-w64-mingw32/lib/libxapofx1_4.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libxapofx1_5.a b/x86_64-w64-mingw32/lib/libxapofx1_5.a
index 233b5f0..47d2b94 100644
--- a/x86_64-w64-mingw32/lib/libxapofx1_5.a
+++ b/x86_64-w64-mingw32/lib/libxapofx1_5.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libxapofxd1_5.a b/x86_64-w64-mingw32/lib/libxapofxd1_5.a
index 5cf888f..85c824f 100644
--- a/x86_64-w64-mingw32/lib/libxapofxd1_5.a
+++ b/x86_64-w64-mingw32/lib/libxapofxd1_5.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libxaudio2_8.a b/x86_64-w64-mingw32/lib/libxaudio2_8.a
index d224738..b9d5dd7 100644
--- a/x86_64-w64-mingw32/lib/libxaudio2_8.a
+++ b/x86_64-w64-mingw32/lib/libxaudio2_8.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libxinput.a b/x86_64-w64-mingw32/lib/libxinput.a
index a577cd8..21b1041 100644
--- a/x86_64-w64-mingw32/lib/libxinput.a
+++ b/x86_64-w64-mingw32/lib/libxinput.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libxinput1_1.a b/x86_64-w64-mingw32/lib/libxinput1_1.a
index 7f2825b..c237bb6 100644
--- a/x86_64-w64-mingw32/lib/libxinput1_1.a
+++ b/x86_64-w64-mingw32/lib/libxinput1_1.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libxinput1_2.a b/x86_64-w64-mingw32/lib/libxinput1_2.a
index e23f870..ae066f9 100644
--- a/x86_64-w64-mingw32/lib/libxinput1_2.a
+++ b/x86_64-w64-mingw32/lib/libxinput1_2.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libxinput1_3.a b/x86_64-w64-mingw32/lib/libxinput1_3.a
index 2dc5e16..8132ffd 100644
--- a/x86_64-w64-mingw32/lib/libxinput1_3.a
+++ b/x86_64-w64-mingw32/lib/libxinput1_3.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libxinput1_4.a b/x86_64-w64-mingw32/lib/libxinput1_4.a
index 7ea42fe..b1cbdb6 100644
--- a/x86_64-w64-mingw32/lib/libxinput1_4.a
+++ b/x86_64-w64-mingw32/lib/libxinput1_4.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libxinput9_1_0.a b/x86_64-w64-mingw32/lib/libxinput9_1_0.a
index 7628874..966ff9f 100644
--- a/x86_64-w64-mingw32/lib/libxinput9_1_0.a
+++ b/x86_64-w64-mingw32/lib/libxinput9_1_0.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/libzoneoc.a b/x86_64-w64-mingw32/lib/libzoneoc.a
index c5ef9dd..6ec57ce 100644
--- a/x86_64-w64-mingw32/lib/libzoneoc.a
+++ b/x86_64-w64-mingw32/lib/libzoneoc.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib/txtmode.o b/x86_64-w64-mingw32/lib/txtmode.o
index 2b42b00..c300dd4 100644
--- a/x86_64-w64-mingw32/lib/txtmode.o
+++ b/x86_64-w64-mingw32/lib/txtmode.o
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/CRT_fp10.o b/x86_64-w64-mingw32/lib32/CRT_fp10.o
index 55072df..77458ff 100644
--- a/x86_64-w64-mingw32/lib32/CRT_fp10.o
+++ b/x86_64-w64-mingw32/lib32/CRT_fp10.o
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/CRT_fp8.o b/x86_64-w64-mingw32/lib32/CRT_fp8.o
index 1153dad..94bfdd5 100644
--- a/x86_64-w64-mingw32/lib32/CRT_fp8.o
+++ b/x86_64-w64-mingw32/lib32/CRT_fp8.o
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/CRT_glob.o b/x86_64-w64-mingw32/lib32/CRT_glob.o
index f04c685..caf3ee5 100644
--- a/x86_64-w64-mingw32/lib32/CRT_glob.o
+++ b/x86_64-w64-mingw32/lib32/CRT_glob.o
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/CRT_noglob.o b/x86_64-w64-mingw32/lib32/CRT_noglob.o
index b6de955..9861490 100644
--- a/x86_64-w64-mingw32/lib32/CRT_noglob.o
+++ b/x86_64-w64-mingw32/lib32/CRT_noglob.o
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/binmode.o b/x86_64-w64-mingw32/lib32/binmode.o
index e51a3d2..7d9744a 100644
--- a/x86_64-w64-mingw32/lib32/binmode.o
+++ b/x86_64-w64-mingw32/lib32/binmode.o
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/crt1.o b/x86_64-w64-mingw32/lib32/crt1.o
index 1bcfbd0..dc3fc56 100644
--- a/x86_64-w64-mingw32/lib32/crt1.o
+++ b/x86_64-w64-mingw32/lib32/crt1.o
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/crt1u.o b/x86_64-w64-mingw32/lib32/crt1u.o
index 04b4ee7..7094b9c 100644
--- a/x86_64-w64-mingw32/lib32/crt1u.o
+++ b/x86_64-w64-mingw32/lib32/crt1u.o
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/crt2.o b/x86_64-w64-mingw32/lib32/crt2.o
index 1bcfbd0..dc3fc56 100644
--- a/x86_64-w64-mingw32/lib32/crt2.o
+++ b/x86_64-w64-mingw32/lib32/crt2.o
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/crt2u.o b/x86_64-w64-mingw32/lib32/crt2u.o
index 04b4ee7..7094b9c 100644
--- a/x86_64-w64-mingw32/lib32/crt2u.o
+++ b/x86_64-w64-mingw32/lib32/crt2u.o
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/dllcrt1.o b/x86_64-w64-mingw32/lib32/dllcrt1.o
index e887428..4769fca 100644
--- a/x86_64-w64-mingw32/lib32/dllcrt1.o
+++ b/x86_64-w64-mingw32/lib32/dllcrt1.o
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/dllcrt2.o b/x86_64-w64-mingw32/lib32/dllcrt2.o
index e887428..4769fca 100644
--- a/x86_64-w64-mingw32/lib32/dllcrt2.o
+++ b/x86_64-w64-mingw32/lib32/dllcrt2.o
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/gcrt0.o b/x86_64-w64-mingw32/lib32/gcrt0.o
index cdf6794..7561ec4 100644
--- a/x86_64-w64-mingw32/lib32/gcrt0.o
+++ b/x86_64-w64-mingw32/lib32/gcrt0.o
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/gcrt1.o b/x86_64-w64-mingw32/lib32/gcrt1.o
index cdf6794..7561ec4 100644
--- a/x86_64-w64-mingw32/lib32/gcrt1.o
+++ b/x86_64-w64-mingw32/lib32/gcrt1.o
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/gcrt2.o b/x86_64-w64-mingw32/lib32/gcrt2.o
index cdf6794..7561ec4 100644
--- a/x86_64-w64-mingw32/lib32/gcrt2.o
+++ b/x86_64-w64-mingw32/lib32/gcrt2.o
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libaclui.a b/x86_64-w64-mingw32/lib32/libaclui.a
index 8bcad9f..24964c5 100644
--- a/x86_64-w64-mingw32/lib32/libaclui.a
+++ b/x86_64-w64-mingw32/lib32/libaclui.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libactiveds.a b/x86_64-w64-mingw32/lib32/libactiveds.a
index b641f50..a66d105 100644
--- a/x86_64-w64-mingw32/lib32/libactiveds.a
+++ b/x86_64-w64-mingw32/lib32/libactiveds.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libadsldpc.a b/x86_64-w64-mingw32/lib32/libadsldpc.a
index d190b2e..cdfb008 100644
--- a/x86_64-w64-mingw32/lib32/libadsldpc.a
+++ b/x86_64-w64-mingw32/lib32/libadsldpc.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libadvapi32.a b/x86_64-w64-mingw32/lib32/libadvapi32.a
index da4c135..b26f346 100644
--- a/x86_64-w64-mingw32/lib32/libadvapi32.a
+++ b/x86_64-w64-mingw32/lib32/libadvapi32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libamstrmid.a b/x86_64-w64-mingw32/lib32/libamstrmid.a
index fb44ea8..fb28bdb 100644
--- a/x86_64-w64-mingw32/lib32/libamstrmid.a
+++ b/x86_64-w64-mingw32/lib32/libamstrmid.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libapcups.a b/x86_64-w64-mingw32/lib32/libapcups.a
index 97dab46..3dd9770 100644
--- a/x86_64-w64-mingw32/lib32/libapcups.a
+++ b/x86_64-w64-mingw32/lib32/libapcups.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libauthz.a b/x86_64-w64-mingw32/lib32/libauthz.a
index 40ff357..ba92442 100644
--- a/x86_64-w64-mingw32/lib32/libauthz.a
+++ b/x86_64-w64-mingw32/lib32/libauthz.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libavicap32.a b/x86_64-w64-mingw32/lib32/libavicap32.a
index 73c9c6e..b16f188 100644
--- a/x86_64-w64-mingw32/lib32/libavicap32.a
+++ b/x86_64-w64-mingw32/lib32/libavicap32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libavifil32.a b/x86_64-w64-mingw32/lib32/libavifil32.a
index 60e59ea..9f65baf 100644
--- a/x86_64-w64-mingw32/lib32/libavifil32.a
+++ b/x86_64-w64-mingw32/lib32/libavifil32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libavrt.a b/x86_64-w64-mingw32/lib32/libavrt.a
index bb6eff5..a5aa48a 100644
--- a/x86_64-w64-mingw32/lib32/libavrt.a
+++ b/x86_64-w64-mingw32/lib32/libavrt.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libbcrypt.a b/x86_64-w64-mingw32/lib32/libbcrypt.a
index ea4f1ba..c7232a7 100644
--- a/x86_64-w64-mingw32/lib32/libbcrypt.a
+++ b/x86_64-w64-mingw32/lib32/libbcrypt.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libbootvid.a b/x86_64-w64-mingw32/lib32/libbootvid.a
index 0b3fcbd..28cef9e 100644
--- a/x86_64-w64-mingw32/lib32/libbootvid.a
+++ b/x86_64-w64-mingw32/lib32/libbootvid.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libbrowcli.a b/x86_64-w64-mingw32/lib32/libbrowcli.a
index e4ddf24..7dcd24a 100644
--- a/x86_64-w64-mingw32/lib32/libbrowcli.a
+++ b/x86_64-w64-mingw32/lib32/libbrowcli.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libbthprops.a b/x86_64-w64-mingw32/lib32/libbthprops.a
index 3348244..1150fb5 100644
--- a/x86_64-w64-mingw32/lib32/libbthprops.a
+++ b/x86_64-w64-mingw32/lib32/libbthprops.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libcabinet.a b/x86_64-w64-mingw32/lib32/libcabinet.a
index e5e21ac..7882b33 100644
--- a/x86_64-w64-mingw32/lib32/libcabinet.a
+++ b/x86_64-w64-mingw32/lib32/libcabinet.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libcap.a b/x86_64-w64-mingw32/lib32/libcap.a
index 9aaef41..86f6017 100644
--- a/x86_64-w64-mingw32/lib32/libcap.a
+++ b/x86_64-w64-mingw32/lib32/libcap.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libcfgmgr32.a b/x86_64-w64-mingw32/lib32/libcfgmgr32.a
index d66f75c..915d78d 100644
--- a/x86_64-w64-mingw32/lib32/libcfgmgr32.a
+++ b/x86_64-w64-mingw32/lib32/libcfgmgr32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libclasspnp.a b/x86_64-w64-mingw32/lib32/libclasspnp.a
index 787fa96..af7ab15 100644
--- a/x86_64-w64-mingw32/lib32/libclasspnp.a
+++ b/x86_64-w64-mingw32/lib32/libclasspnp.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libclfsw32.a b/x86_64-w64-mingw32/lib32/libclfsw32.a
index 31b27e3..51da6b6 100644
--- a/x86_64-w64-mingw32/lib32/libclfsw32.a
+++ b/x86_64-w64-mingw32/lib32/libclfsw32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libclusapi.a b/x86_64-w64-mingw32/lib32/libclusapi.a
index 8d73a0d..64243f4 100644
--- a/x86_64-w64-mingw32/lib32/libclusapi.a
+++ b/x86_64-w64-mingw32/lib32/libclusapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libcmutil.a b/x86_64-w64-mingw32/lib32/libcmutil.a
index 2a6012e..594612f 100644
--- a/x86_64-w64-mingw32/lib32/libcmutil.a
+++ b/x86_64-w64-mingw32/lib32/libcmutil.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libcomctl32.a b/x86_64-w64-mingw32/lib32/libcomctl32.a
index 685f52f..95731b9 100644
--- a/x86_64-w64-mingw32/lib32/libcomctl32.a
+++ b/x86_64-w64-mingw32/lib32/libcomctl32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libcomdlg32.a b/x86_64-w64-mingw32/lib32/libcomdlg32.a
index c3ce78a..bb7868a 100644
--- a/x86_64-w64-mingw32/lib32/libcomdlg32.a
+++ b/x86_64-w64-mingw32/lib32/libcomdlg32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libconnect.a b/x86_64-w64-mingw32/lib32/libconnect.a
index e8a206d..22c7181 100644
--- a/x86_64-w64-mingw32/lib32/libconnect.a
+++ b/x86_64-w64-mingw32/lib32/libconnect.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libcredui.a b/x86_64-w64-mingw32/lib32/libcredui.a
index a0d647a..7eb21ec 100644
--- a/x86_64-w64-mingw32/lib32/libcredui.a
+++ b/x86_64-w64-mingw32/lib32/libcredui.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libcrtdll.a b/x86_64-w64-mingw32/lib32/libcrtdll.a
index 7582869..4767732 100644
--- a/x86_64-w64-mingw32/lib32/libcrtdll.a
+++ b/x86_64-w64-mingw32/lib32/libcrtdll.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libcrypt32.a b/x86_64-w64-mingw32/lib32/libcrypt32.a
index e042d42..c27c687 100644
--- a/x86_64-w64-mingw32/lib32/libcrypt32.a
+++ b/x86_64-w64-mingw32/lib32/libcrypt32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libcryptnet.a b/x86_64-w64-mingw32/lib32/libcryptnet.a
index cc705cb..ca1a7f6 100644
--- a/x86_64-w64-mingw32/lib32/libcryptnet.a
+++ b/x86_64-w64-mingw32/lib32/libcryptnet.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libcryptsp.a b/x86_64-w64-mingw32/lib32/libcryptsp.a
index 21d3ccd..1a8b3ba 100644
--- a/x86_64-w64-mingw32/lib32/libcryptsp.a
+++ b/x86_64-w64-mingw32/lib32/libcryptsp.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libcryptxml.a b/x86_64-w64-mingw32/lib32/libcryptxml.a
index b29ed17..eace05b 100644
--- a/x86_64-w64-mingw32/lib32/libcryptxml.a
+++ b/x86_64-w64-mingw32/lib32/libcryptxml.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libcscapi.a b/x86_64-w64-mingw32/lib32/libcscapi.a
index 4ecb698..07c0b9a 100644
--- a/x86_64-w64-mingw32/lib32/libcscapi.a
+++ b/x86_64-w64-mingw32/lib32/libcscapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libctl3d32.a b/x86_64-w64-mingw32/lib32/libctl3d32.a
index a138b15..1d9719f 100644
--- a/x86_64-w64-mingw32/lib32/libctl3d32.a
+++ b/x86_64-w64-mingw32/lib32/libctl3d32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd2d1.a b/x86_64-w64-mingw32/lib32/libd2d1.a
index d6c6c3d..46ea652 100644
--- a/x86_64-w64-mingw32/lib32/libd2d1.a
+++ b/x86_64-w64-mingw32/lib32/libd2d1.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3d11.a b/x86_64-w64-mingw32/lib32/libd3d11.a
index 097a6b5..e60d0c8 100644
--- a/x86_64-w64-mingw32/lib32/libd3d11.a
+++ b/x86_64-w64-mingw32/lib32/libd3d11.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3d8.a b/x86_64-w64-mingw32/lib32/libd3d8.a
index 383ca36..77a369c 100644
--- a/x86_64-w64-mingw32/lib32/libd3d8.a
+++ b/x86_64-w64-mingw32/lib32/libd3d8.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3d9.a b/x86_64-w64-mingw32/lib32/libd3d9.a
index 5536e49..06a3994 100644
--- a/x86_64-w64-mingw32/lib32/libd3d9.a
+++ b/x86_64-w64-mingw32/lib32/libd3d9.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3dcompiler.a b/x86_64-w64-mingw32/lib32/libd3dcompiler.a
index 28002db..0060792 100644
--- a/x86_64-w64-mingw32/lib32/libd3dcompiler.a
+++ b/x86_64-w64-mingw32/lib32/libd3dcompiler.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3dcompiler_33.a b/x86_64-w64-mingw32/lib32/libd3dcompiler_33.a
index a951cd1..a0e0f9c 100644
--- a/x86_64-w64-mingw32/lib32/libd3dcompiler_33.a
+++ b/x86_64-w64-mingw32/lib32/libd3dcompiler_33.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3dcompiler_34.a b/x86_64-w64-mingw32/lib32/libd3dcompiler_34.a
index 91c5aab..6fb44d8 100644
--- a/x86_64-w64-mingw32/lib32/libd3dcompiler_34.a
+++ b/x86_64-w64-mingw32/lib32/libd3dcompiler_34.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3dcompiler_35.a b/x86_64-w64-mingw32/lib32/libd3dcompiler_35.a
index eb5f3d7..f9c8b69 100644
--- a/x86_64-w64-mingw32/lib32/libd3dcompiler_35.a
+++ b/x86_64-w64-mingw32/lib32/libd3dcompiler_35.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3dcompiler_36.a b/x86_64-w64-mingw32/lib32/libd3dcompiler_36.a
index d845093..21e3e5e 100644
--- a/x86_64-w64-mingw32/lib32/libd3dcompiler_36.a
+++ b/x86_64-w64-mingw32/lib32/libd3dcompiler_36.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3dcompiler_37.a b/x86_64-w64-mingw32/lib32/libd3dcompiler_37.a
index 3706572..6680d8b 100644
--- a/x86_64-w64-mingw32/lib32/libd3dcompiler_37.a
+++ b/x86_64-w64-mingw32/lib32/libd3dcompiler_37.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3dcompiler_38.a b/x86_64-w64-mingw32/lib32/libd3dcompiler_38.a
index dc7e668..d184a4d 100644
--- a/x86_64-w64-mingw32/lib32/libd3dcompiler_38.a
+++ b/x86_64-w64-mingw32/lib32/libd3dcompiler_38.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3dcompiler_39.a b/x86_64-w64-mingw32/lib32/libd3dcompiler_39.a
index ad7f737..84d1714 100644
--- a/x86_64-w64-mingw32/lib32/libd3dcompiler_39.a
+++ b/x86_64-w64-mingw32/lib32/libd3dcompiler_39.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3dcompiler_40.a b/x86_64-w64-mingw32/lib32/libd3dcompiler_40.a
index 93c5e13..3db8ca9 100644
--- a/x86_64-w64-mingw32/lib32/libd3dcompiler_40.a
+++ b/x86_64-w64-mingw32/lib32/libd3dcompiler_40.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3dcompiler_41.a b/x86_64-w64-mingw32/lib32/libd3dcompiler_41.a
index 84a8b93..cfc37de 100644
--- a/x86_64-w64-mingw32/lib32/libd3dcompiler_41.a
+++ b/x86_64-w64-mingw32/lib32/libd3dcompiler_41.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3dcompiler_42.a b/x86_64-w64-mingw32/lib32/libd3dcompiler_42.a
index ccbbe8c..cb3d22f 100644
--- a/x86_64-w64-mingw32/lib32/libd3dcompiler_42.a
+++ b/x86_64-w64-mingw32/lib32/libd3dcompiler_42.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3dcompiler_43.a b/x86_64-w64-mingw32/lib32/libd3dcompiler_43.a
index f13705f..c7ed5b6 100644
--- a/x86_64-w64-mingw32/lib32/libd3dcompiler_43.a
+++ b/x86_64-w64-mingw32/lib32/libd3dcompiler_43.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3dcompiler_46.a b/x86_64-w64-mingw32/lib32/libd3dcompiler_46.a
index 5b07ca9..36f1ade 100644
--- a/x86_64-w64-mingw32/lib32/libd3dcompiler_46.a
+++ b/x86_64-w64-mingw32/lib32/libd3dcompiler_46.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3dcompiler_47.a b/x86_64-w64-mingw32/lib32/libd3dcompiler_47.a
index 64f9670..1fca8f5 100644
--- a/x86_64-w64-mingw32/lib32/libd3dcompiler_47.a
+++ b/x86_64-w64-mingw32/lib32/libd3dcompiler_47.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3dcsx_46.a b/x86_64-w64-mingw32/lib32/libd3dcsx_46.a
index 4824a3b..35b4e52 100644
--- a/x86_64-w64-mingw32/lib32/libd3dcsx_46.a
+++ b/x86_64-w64-mingw32/lib32/libd3dcsx_46.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3dcsxd.a b/x86_64-w64-mingw32/lib32/libd3dcsxd.a
index 5d6c616..f8f3c2c 100644
--- a/x86_64-w64-mingw32/lib32/libd3dcsxd.a
+++ b/x86_64-w64-mingw32/lib32/libd3dcsxd.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3dcsxd_43.a b/x86_64-w64-mingw32/lib32/libd3dcsxd_43.a
index 2b0a777..f1a3975 100644
--- a/x86_64-w64-mingw32/lib32/libd3dcsxd_43.a
+++ b/x86_64-w64-mingw32/lib32/libd3dcsxd_43.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3dim.a b/x86_64-w64-mingw32/lib32/libd3dim.a
index 8136d78..bab6d3a 100644
--- a/x86_64-w64-mingw32/lib32/libd3dim.a
+++ b/x86_64-w64-mingw32/lib32/libd3dim.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3drm.a b/x86_64-w64-mingw32/lib32/libd3drm.a
index cefa089..c388dd9 100644
--- a/x86_64-w64-mingw32/lib32/libd3drm.a
+++ b/x86_64-w64-mingw32/lib32/libd3drm.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3dx10.a b/x86_64-w64-mingw32/lib32/libd3dx10.a
index d633e2e..8aef4be 100644
--- a/x86_64-w64-mingw32/lib32/libd3dx10.a
+++ b/x86_64-w64-mingw32/lib32/libd3dx10.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3dx10_33.a b/x86_64-w64-mingw32/lib32/libd3dx10_33.a
index af1ddd9..e7f9324 100644
--- a/x86_64-w64-mingw32/lib32/libd3dx10_33.a
+++ b/x86_64-w64-mingw32/lib32/libd3dx10_33.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3dx10_34.a b/x86_64-w64-mingw32/lib32/libd3dx10_34.a
index 9fcae0d..3336057 100644
--- a/x86_64-w64-mingw32/lib32/libd3dx10_34.a
+++ b/x86_64-w64-mingw32/lib32/libd3dx10_34.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3dx10_35.a b/x86_64-w64-mingw32/lib32/libd3dx10_35.a
index e28d5ca..d39f9b2 100644
--- a/x86_64-w64-mingw32/lib32/libd3dx10_35.a
+++ b/x86_64-w64-mingw32/lib32/libd3dx10_35.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3dx10_36.a b/x86_64-w64-mingw32/lib32/libd3dx10_36.a
index c3061aa..17cc2b8 100644
--- a/x86_64-w64-mingw32/lib32/libd3dx10_36.a
+++ b/x86_64-w64-mingw32/lib32/libd3dx10_36.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3dx10_37.a b/x86_64-w64-mingw32/lib32/libd3dx10_37.a
index a72fe34..a33b37f 100644
--- a/x86_64-w64-mingw32/lib32/libd3dx10_37.a
+++ b/x86_64-w64-mingw32/lib32/libd3dx10_37.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3dx10_38.a b/x86_64-w64-mingw32/lib32/libd3dx10_38.a
index 95fc696..ec6c13a 100644
--- a/x86_64-w64-mingw32/lib32/libd3dx10_38.a
+++ b/x86_64-w64-mingw32/lib32/libd3dx10_38.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3dx10_39.a b/x86_64-w64-mingw32/lib32/libd3dx10_39.a
index 68a400a..34a9d12 100644
--- a/x86_64-w64-mingw32/lib32/libd3dx10_39.a
+++ b/x86_64-w64-mingw32/lib32/libd3dx10_39.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3dx10_40.a b/x86_64-w64-mingw32/lib32/libd3dx10_40.a
index 3a802e7..c1ec5cb 100644
--- a/x86_64-w64-mingw32/lib32/libd3dx10_40.a
+++ b/x86_64-w64-mingw32/lib32/libd3dx10_40.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3dx10_41.a b/x86_64-w64-mingw32/lib32/libd3dx10_41.a
index 4873ecc..5ae86f8 100644
--- a/x86_64-w64-mingw32/lib32/libd3dx10_41.a
+++ b/x86_64-w64-mingw32/lib32/libd3dx10_41.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3dx10_42.a b/x86_64-w64-mingw32/lib32/libd3dx10_42.a
index 25d3c16..f152a6d 100644
--- a/x86_64-w64-mingw32/lib32/libd3dx10_42.a
+++ b/x86_64-w64-mingw32/lib32/libd3dx10_42.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3dx10_43.a b/x86_64-w64-mingw32/lib32/libd3dx10_43.a
index 134d145..cc5aa05 100644
--- a/x86_64-w64-mingw32/lib32/libd3dx10_43.a
+++ b/x86_64-w64-mingw32/lib32/libd3dx10_43.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3dx11.a b/x86_64-w64-mingw32/lib32/libd3dx11.a
index 7487420..bfd1389 100644
--- a/x86_64-w64-mingw32/lib32/libd3dx11.a
+++ b/x86_64-w64-mingw32/lib32/libd3dx11.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3dx11_42.a b/x86_64-w64-mingw32/lib32/libd3dx11_42.a
index d8a198c..ee387c8 100644
--- a/x86_64-w64-mingw32/lib32/libd3dx11_42.a
+++ b/x86_64-w64-mingw32/lib32/libd3dx11_42.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3dx11_43.a b/x86_64-w64-mingw32/lib32/libd3dx11_43.a
index 9381229..956b22c 100644
--- a/x86_64-w64-mingw32/lib32/libd3dx11_43.a
+++ b/x86_64-w64-mingw32/lib32/libd3dx11_43.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3dx8d.a b/x86_64-w64-mingw32/lib32/libd3dx8d.a
index 22629f7..e9b6d7d 100644
--- a/x86_64-w64-mingw32/lib32/libd3dx8d.a
+++ b/x86_64-w64-mingw32/lib32/libd3dx8d.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3dx9.a b/x86_64-w64-mingw32/lib32/libd3dx9.a
index 215dee5..192cb75 100644
--- a/x86_64-w64-mingw32/lib32/libd3dx9.a
+++ b/x86_64-w64-mingw32/lib32/libd3dx9.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3dx9_24.a b/x86_64-w64-mingw32/lib32/libd3dx9_24.a
index 0c43770..1fb0151 100644
--- a/x86_64-w64-mingw32/lib32/libd3dx9_24.a
+++ b/x86_64-w64-mingw32/lib32/libd3dx9_24.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3dx9_25.a b/x86_64-w64-mingw32/lib32/libd3dx9_25.a
index 075da68..3b6c574 100644
--- a/x86_64-w64-mingw32/lib32/libd3dx9_25.a
+++ b/x86_64-w64-mingw32/lib32/libd3dx9_25.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3dx9_26.a b/x86_64-w64-mingw32/lib32/libd3dx9_26.a
index 9de3374..f3e4ba6 100644
--- a/x86_64-w64-mingw32/lib32/libd3dx9_26.a
+++ b/x86_64-w64-mingw32/lib32/libd3dx9_26.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3dx9_27.a b/x86_64-w64-mingw32/lib32/libd3dx9_27.a
index 3c2dc98..4621e17 100644
--- a/x86_64-w64-mingw32/lib32/libd3dx9_27.a
+++ b/x86_64-w64-mingw32/lib32/libd3dx9_27.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3dx9_28.a b/x86_64-w64-mingw32/lib32/libd3dx9_28.a
index 1be2b50..9032cb1 100644
--- a/x86_64-w64-mingw32/lib32/libd3dx9_28.a
+++ b/x86_64-w64-mingw32/lib32/libd3dx9_28.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3dx9_29.a b/x86_64-w64-mingw32/lib32/libd3dx9_29.a
index 7b120dd..8649d58 100644
--- a/x86_64-w64-mingw32/lib32/libd3dx9_29.a
+++ b/x86_64-w64-mingw32/lib32/libd3dx9_29.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3dx9_30.a b/x86_64-w64-mingw32/lib32/libd3dx9_30.a
index 50c9fe8..192091a 100644
--- a/x86_64-w64-mingw32/lib32/libd3dx9_30.a
+++ b/x86_64-w64-mingw32/lib32/libd3dx9_30.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3dx9_31.a b/x86_64-w64-mingw32/lib32/libd3dx9_31.a
index e6e1b40..29ccbab 100644
--- a/x86_64-w64-mingw32/lib32/libd3dx9_31.a
+++ b/x86_64-w64-mingw32/lib32/libd3dx9_31.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3dx9_32.a b/x86_64-w64-mingw32/lib32/libd3dx9_32.a
index 68faab8..6a33542 100644
--- a/x86_64-w64-mingw32/lib32/libd3dx9_32.a
+++ b/x86_64-w64-mingw32/lib32/libd3dx9_32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3dx9_33.a b/x86_64-w64-mingw32/lib32/libd3dx9_33.a
index 39074cd..3e17641 100644
--- a/x86_64-w64-mingw32/lib32/libd3dx9_33.a
+++ b/x86_64-w64-mingw32/lib32/libd3dx9_33.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3dx9_34.a b/x86_64-w64-mingw32/lib32/libd3dx9_34.a
index ab4fef8..fcfa110 100644
--- a/x86_64-w64-mingw32/lib32/libd3dx9_34.a
+++ b/x86_64-w64-mingw32/lib32/libd3dx9_34.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3dx9_35.a b/x86_64-w64-mingw32/lib32/libd3dx9_35.a
index 29b34f0..46f38c5 100644
--- a/x86_64-w64-mingw32/lib32/libd3dx9_35.a
+++ b/x86_64-w64-mingw32/lib32/libd3dx9_35.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3dx9_36.a b/x86_64-w64-mingw32/lib32/libd3dx9_36.a
index bb3ef72..5aec411 100644
--- a/x86_64-w64-mingw32/lib32/libd3dx9_36.a
+++ b/x86_64-w64-mingw32/lib32/libd3dx9_36.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3dx9_37.a b/x86_64-w64-mingw32/lib32/libd3dx9_37.a
index c3147cf..e4a4801 100644
--- a/x86_64-w64-mingw32/lib32/libd3dx9_37.a
+++ b/x86_64-w64-mingw32/lib32/libd3dx9_37.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3dx9_38.a b/x86_64-w64-mingw32/lib32/libd3dx9_38.a
index fed14e3..b775de8 100644
--- a/x86_64-w64-mingw32/lib32/libd3dx9_38.a
+++ b/x86_64-w64-mingw32/lib32/libd3dx9_38.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3dx9_39.a b/x86_64-w64-mingw32/lib32/libd3dx9_39.a
index 2c5b0c5..1b1a5d2 100644
--- a/x86_64-w64-mingw32/lib32/libd3dx9_39.a
+++ b/x86_64-w64-mingw32/lib32/libd3dx9_39.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3dx9_40.a b/x86_64-w64-mingw32/lib32/libd3dx9_40.a
index 2131879..ae45d6b 100644
--- a/x86_64-w64-mingw32/lib32/libd3dx9_40.a
+++ b/x86_64-w64-mingw32/lib32/libd3dx9_40.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3dx9_41.a b/x86_64-w64-mingw32/lib32/libd3dx9_41.a
index c34574d..8ca3754 100644
--- a/x86_64-w64-mingw32/lib32/libd3dx9_41.a
+++ b/x86_64-w64-mingw32/lib32/libd3dx9_41.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3dx9_42.a b/x86_64-w64-mingw32/lib32/libd3dx9_42.a
index e8e1b03..b16151b 100644
--- a/x86_64-w64-mingw32/lib32/libd3dx9_42.a
+++ b/x86_64-w64-mingw32/lib32/libd3dx9_42.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3dx9_43.a b/x86_64-w64-mingw32/lib32/libd3dx9_43.a
index 34e4efc..4292b99 100644
--- a/x86_64-w64-mingw32/lib32/libd3dx9_43.a
+++ b/x86_64-w64-mingw32/lib32/libd3dx9_43.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3dx9d.a b/x86_64-w64-mingw32/lib32/libd3dx9d.a
index 548f1bb..885a0e9 100644
--- a/x86_64-w64-mingw32/lib32/libd3dx9d.a
+++ b/x86_64-w64-mingw32/lib32/libd3dx9d.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libd3dxof.a b/x86_64-w64-mingw32/lib32/libd3dxof.a
index fa02e70..f4c540c 100644
--- a/x86_64-w64-mingw32/lib32/libd3dxof.a
+++ b/x86_64-w64-mingw32/lib32/libd3dxof.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libdavclnt.a b/x86_64-w64-mingw32/lib32/libdavclnt.a
index e789fd4..7a8644d 100644
--- a/x86_64-w64-mingw32/lib32/libdavclnt.a
+++ b/x86_64-w64-mingw32/lib32/libdavclnt.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libdavhlpr.a b/x86_64-w64-mingw32/lib32/libdavhlpr.a
index 4d83e66..ee535f9 100644
--- a/x86_64-w64-mingw32/lib32/libdavhlpr.a
+++ b/x86_64-w64-mingw32/lib32/libdavhlpr.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libdbgeng.a b/x86_64-w64-mingw32/lib32/libdbgeng.a
index 416edda..d37ec11 100644
--- a/x86_64-w64-mingw32/lib32/libdbgeng.a
+++ b/x86_64-w64-mingw32/lib32/libdbgeng.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libdbghelp.a b/x86_64-w64-mingw32/lib32/libdbghelp.a
index da216c3..2201295 100644
--- a/x86_64-w64-mingw32/lib32/libdbghelp.a
+++ b/x86_64-w64-mingw32/lib32/libdbghelp.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libddraw.a b/x86_64-w64-mingw32/lib32/libddraw.a
index 9fe61b3..0404644 100644
--- a/x86_64-w64-mingw32/lib32/libddraw.a
+++ b/x86_64-w64-mingw32/lib32/libddraw.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libdevmgr.a b/x86_64-w64-mingw32/lib32/libdevmgr.a
index fdd63e4..558d974 100644
--- a/x86_64-w64-mingw32/lib32/libdevmgr.a
+++ b/x86_64-w64-mingw32/lib32/libdevmgr.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libdevobj.a b/x86_64-w64-mingw32/lib32/libdevobj.a
index c2cee30..ff25f3f 100644
--- a/x86_64-w64-mingw32/lib32/libdevobj.a
+++ b/x86_64-w64-mingw32/lib32/libdevobj.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libdevrtl.a b/x86_64-w64-mingw32/lib32/libdevrtl.a
index 6d2bb8c..df159e7 100644
--- a/x86_64-w64-mingw32/lib32/libdevrtl.a
+++ b/x86_64-w64-mingw32/lib32/libdevrtl.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libdfscli.a b/x86_64-w64-mingw32/lib32/libdfscli.a
index c1297ba..04a1604 100644
--- a/x86_64-w64-mingw32/lib32/libdfscli.a
+++ b/x86_64-w64-mingw32/lib32/libdfscli.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libdhcpcsvc.a b/x86_64-w64-mingw32/lib32/libdhcpcsvc.a
index c535e09..3ae2290 100644
--- a/x86_64-w64-mingw32/lib32/libdhcpcsvc.a
+++ b/x86_64-w64-mingw32/lib32/libdhcpcsvc.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libdhcpcsvc6.a b/x86_64-w64-mingw32/lib32/libdhcpcsvc6.a
index 2d0967e..a2abfc6 100644
--- a/x86_64-w64-mingw32/lib32/libdhcpcsvc6.a
+++ b/x86_64-w64-mingw32/lib32/libdhcpcsvc6.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libdhcpsapi.a b/x86_64-w64-mingw32/lib32/libdhcpsapi.a
index 7b77905..6998ca6 100644
--- a/x86_64-w64-mingw32/lib32/libdhcpsapi.a
+++ b/x86_64-w64-mingw32/lib32/libdhcpsapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libdinput.a b/x86_64-w64-mingw32/lib32/libdinput.a
index da2c6c2..12387b8 100644
--- a/x86_64-w64-mingw32/lib32/libdinput.a
+++ b/x86_64-w64-mingw32/lib32/libdinput.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libdinput8.a b/x86_64-w64-mingw32/lib32/libdinput8.a
index 1e7b9fc..96dfad1 100644
--- a/x86_64-w64-mingw32/lib32/libdinput8.a
+++ b/x86_64-w64-mingw32/lib32/libdinput8.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libdlcapi.a b/x86_64-w64-mingw32/lib32/libdlcapi.a
index ca0f7d5..9415bd6 100644
--- a/x86_64-w64-mingw32/lib32/libdlcapi.a
+++ b/x86_64-w64-mingw32/lib32/libdlcapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libdmoguids.a b/x86_64-w64-mingw32/lib32/libdmoguids.a
index 5fde4bd..6c29413 100644
--- a/x86_64-w64-mingw32/lib32/libdmoguids.a
+++ b/x86_64-w64-mingw32/lib32/libdmoguids.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libdnsapi.a b/x86_64-w64-mingw32/lib32/libdnsapi.a
index 845d8dd..3c343c1 100644
--- a/x86_64-w64-mingw32/lib32/libdnsapi.a
+++ b/x86_64-w64-mingw32/lib32/libdnsapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libdplayx.a b/x86_64-w64-mingw32/lib32/libdplayx.a
index 39ab6d2..2f48d68 100644
--- a/x86_64-w64-mingw32/lib32/libdplayx.a
+++ b/x86_64-w64-mingw32/lib32/libdplayx.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libdpnaddr.a b/x86_64-w64-mingw32/lib32/libdpnaddr.a
index f20e11d..deb6f2f 100644
--- a/x86_64-w64-mingw32/lib32/libdpnaddr.a
+++ b/x86_64-w64-mingw32/lib32/libdpnaddr.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libdpnet.a b/x86_64-w64-mingw32/lib32/libdpnet.a
index 9c2d0d8..09aaaa6 100644
--- a/x86_64-w64-mingw32/lib32/libdpnet.a
+++ b/x86_64-w64-mingw32/lib32/libdpnet.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libdpnlobby.a b/x86_64-w64-mingw32/lib32/libdpnlobby.a
index e3f3dc3..e3e4476 100644
--- a/x86_64-w64-mingw32/lib32/libdpnlobby.a
+++ b/x86_64-w64-mingw32/lib32/libdpnlobby.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libdpvoice.a b/x86_64-w64-mingw32/lib32/libdpvoice.a
index 2815271..8ee6542 100644
--- a/x86_64-w64-mingw32/lib32/libdpvoice.a
+++ b/x86_64-w64-mingw32/lib32/libdpvoice.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libdsetup.a b/x86_64-w64-mingw32/lib32/libdsetup.a
index 1d0cac6..6c7c69d 100644
--- a/x86_64-w64-mingw32/lib32/libdsetup.a
+++ b/x86_64-w64-mingw32/lib32/libdsetup.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libdsound.a b/x86_64-w64-mingw32/lib32/libdsound.a
index d3820b7..941c301 100644
--- a/x86_64-w64-mingw32/lib32/libdsound.a
+++ b/x86_64-w64-mingw32/lib32/libdsound.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libdsrole.a b/x86_64-w64-mingw32/lib32/libdsrole.a
index a483823..8b886fc 100644
--- a/x86_64-w64-mingw32/lib32/libdsrole.a
+++ b/x86_64-w64-mingw32/lib32/libdsrole.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libdssec.a b/x86_64-w64-mingw32/lib32/libdssec.a
index 2e5b0c8..d566ab0 100644
--- a/x86_64-w64-mingw32/lib32/libdssec.a
+++ b/x86_64-w64-mingw32/lib32/libdssec.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libdwmapi.a b/x86_64-w64-mingw32/lib32/libdwmapi.a
index 24b1884..8e36233 100644
--- a/x86_64-w64-mingw32/lib32/libdwmapi.a
+++ b/x86_64-w64-mingw32/lib32/libdwmapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libdwrite.a b/x86_64-w64-mingw32/lib32/libdwrite.a
index 088db2a..b983de1 100644
--- a/x86_64-w64-mingw32/lib32/libdwrite.a
+++ b/x86_64-w64-mingw32/lib32/libdwrite.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libdxapi.a b/x86_64-w64-mingw32/lib32/libdxapi.a
index 45d8d1a..fbf4290 100644
--- a/x86_64-w64-mingw32/lib32/libdxapi.a
+++ b/x86_64-w64-mingw32/lib32/libdxapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libdxerr8.a b/x86_64-w64-mingw32/lib32/libdxerr8.a
index 564a233..c5a8d01 100644
--- a/x86_64-w64-mingw32/lib32/libdxerr8.a
+++ b/x86_64-w64-mingw32/lib32/libdxerr8.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libdxerr9.a b/x86_64-w64-mingw32/lib32/libdxerr9.a
index 8731d3c..026e925 100644
--- a/x86_64-w64-mingw32/lib32/libdxerr9.a
+++ b/x86_64-w64-mingw32/lib32/libdxerr9.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libdxgi.a b/x86_64-w64-mingw32/lib32/libdxgi.a
index f008a3c..7d221c4 100644
--- a/x86_64-w64-mingw32/lib32/libdxgi.a
+++ b/x86_64-w64-mingw32/lib32/libdxgi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libdxguid.a b/x86_64-w64-mingw32/lib32/libdxguid.a
index fd8a292..e6ff90c 100644
--- a/x86_64-w64-mingw32/lib32/libdxguid.a
+++ b/x86_64-w64-mingw32/lib32/libdxguid.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libdxva2.a b/x86_64-w64-mingw32/lib32/libdxva2.a
index cd29fed..ff6e8e2 100644
--- a/x86_64-w64-mingw32/lib32/libdxva2.a
+++ b/x86_64-w64-mingw32/lib32/libdxva2.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libeapp3hst.a b/x86_64-w64-mingw32/lib32/libeapp3hst.a
index 3108d93..582acb7 100644
--- a/x86_64-w64-mingw32/lib32/libeapp3hst.a
+++ b/x86_64-w64-mingw32/lib32/libeapp3hst.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libeappcfg.a b/x86_64-w64-mingw32/lib32/libeappcfg.a
index a7df0b4..453468c 100644
--- a/x86_64-w64-mingw32/lib32/libeappcfg.a
+++ b/x86_64-w64-mingw32/lib32/libeappcfg.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libeappgnui.a b/x86_64-w64-mingw32/lib32/libeappgnui.a
index 69d6cbc..1222884 100644
--- a/x86_64-w64-mingw32/lib32/libeappgnui.a
+++ b/x86_64-w64-mingw32/lib32/libeappgnui.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libeapphost.a b/x86_64-w64-mingw32/lib32/libeapphost.a
index 64d4dff..fd6c87b 100644
--- a/x86_64-w64-mingw32/lib32/libeapphost.a
+++ b/x86_64-w64-mingw32/lib32/libeapphost.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libeappprxy.a b/x86_64-w64-mingw32/lib32/libeappprxy.a
index 89a1429..497eea4 100644
--- a/x86_64-w64-mingw32/lib32/libeappprxy.a
+++ b/x86_64-w64-mingw32/lib32/libeappprxy.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libelscore.a b/x86_64-w64-mingw32/lib32/libelscore.a
index f932299..fbdb291 100644
--- a/x86_64-w64-mingw32/lib32/libelscore.a
+++ b/x86_64-w64-mingw32/lib32/libelscore.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libesent.a b/x86_64-w64-mingw32/lib32/libesent.a
index 9152d1b..50327f9 100644
--- a/x86_64-w64-mingw32/lib32/libesent.a
+++ b/x86_64-w64-mingw32/lib32/libesent.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libevr.a b/x86_64-w64-mingw32/lib32/libevr.a
index 24e959e..225aefa 100644
--- a/x86_64-w64-mingw32/lib32/libevr.a
+++ b/x86_64-w64-mingw32/lib32/libevr.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libfaultrep.a b/x86_64-w64-mingw32/lib32/libfaultrep.a
index b91459e..9bdf555 100644
--- a/x86_64-w64-mingw32/lib32/libfaultrep.a
+++ b/x86_64-w64-mingw32/lib32/libfaultrep.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libfwpuclnt.a b/x86_64-w64-mingw32/lib32/libfwpuclnt.a
index 2014af1..a94b2a6 100644
--- a/x86_64-w64-mingw32/lib32/libfwpuclnt.a
+++ b/x86_64-w64-mingw32/lib32/libfwpuclnt.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libgcc_s.a b/x86_64-w64-mingw32/lib32/libgcc_s.a
new file mode 100644
index 0000000..3a64c46
--- /dev/null
+++ b/x86_64-w64-mingw32/lib32/libgcc_s.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libgcc_s_sjlj-1.dll b/x86_64-w64-mingw32/lib32/libgcc_s_sjlj-1.dll
new file mode 100755
index 0000000..00ea577
--- /dev/null
+++ b/x86_64-w64-mingw32/lib32/libgcc_s_sjlj-1.dll
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libgdi32.a b/x86_64-w64-mingw32/lib32/libgdi32.a
index 42a3231..b03ae03 100644
--- a/x86_64-w64-mingw32/lib32/libgdi32.a
+++ b/x86_64-w64-mingw32/lib32/libgdi32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libgdiplus.a b/x86_64-w64-mingw32/lib32/libgdiplus.a
index d953da7..778804e 100644
--- a/x86_64-w64-mingw32/lib32/libgdiplus.a
+++ b/x86_64-w64-mingw32/lib32/libgdiplus.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libglaux.a b/x86_64-w64-mingw32/lib32/libglaux.a
index 3ba1271..0a1cc4c 100644
--- a/x86_64-w64-mingw32/lib32/libglaux.a
+++ b/x86_64-w64-mingw32/lib32/libglaux.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libglu32.a b/x86_64-w64-mingw32/lib32/libglu32.a
index 257475f..111de47 100644
--- a/x86_64-w64-mingw32/lib32/libglu32.a
+++ b/x86_64-w64-mingw32/lib32/libglu32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libglut.a b/x86_64-w64-mingw32/lib32/libglut.a
index 08f0f41..af4c09d 100644
--- a/x86_64-w64-mingw32/lib32/libglut.a
+++ b/x86_64-w64-mingw32/lib32/libglut.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libglut32.a b/x86_64-w64-mingw32/lib32/libglut32.a
index a80fca0..8b0f113 100644
--- a/x86_64-w64-mingw32/lib32/libglut32.a
+++ b/x86_64-w64-mingw32/lib32/libglut32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libgmon.a b/x86_64-w64-mingw32/lib32/libgmon.a
index 97934e5..d959357 100644
--- a/x86_64-w64-mingw32/lib32/libgmon.a
+++ b/x86_64-w64-mingw32/lib32/libgmon.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libgpapi.a b/x86_64-w64-mingw32/lib32/libgpapi.a
index 41ce599..b52e8a6 100644
--- a/x86_64-w64-mingw32/lib32/libgpapi.a
+++ b/x86_64-w64-mingw32/lib32/libgpapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libgpedit.a b/x86_64-w64-mingw32/lib32/libgpedit.a
index 0092252..4dbb1cc 100644
--- a/x86_64-w64-mingw32/lib32/libgpedit.a
+++ b/x86_64-w64-mingw32/lib32/libgpedit.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libgpprefcl.a b/x86_64-w64-mingw32/lib32/libgpprefcl.a
index 73dd6ed..201eb9f 100644
--- a/x86_64-w64-mingw32/lib32/libgpprefcl.a
+++ b/x86_64-w64-mingw32/lib32/libgpprefcl.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libgpscript.a b/x86_64-w64-mingw32/lib32/libgpscript.a
index 96c0fcb..7a8c785 100644
--- a/x86_64-w64-mingw32/lib32/libgpscript.a
+++ b/x86_64-w64-mingw32/lib32/libgpscript.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libgptext.a b/x86_64-w64-mingw32/lib32/libgptext.a
index b3ecb54..7891b4f 100644
--- a/x86_64-w64-mingw32/lib32/libgptext.a
+++ b/x86_64-w64-mingw32/lib32/libgptext.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libhal.a b/x86_64-w64-mingw32/lib32/libhal.a
index 9533189..adaacec 100644
--- a/x86_64-w64-mingw32/lib32/libhal.a
+++ b/x86_64-w64-mingw32/lib32/libhal.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libhid.a b/x86_64-w64-mingw32/lib32/libhid.a
index e5ff963..64abf88 100644
--- a/x86_64-w64-mingw32/lib32/libhid.a
+++ b/x86_64-w64-mingw32/lib32/libhid.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libhidclass.a b/x86_64-w64-mingw32/lib32/libhidclass.a
index 381c122..ea03c73 100644
--- a/x86_64-w64-mingw32/lib32/libhidclass.a
+++ b/x86_64-w64-mingw32/lib32/libhidclass.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libhidparse.a b/x86_64-w64-mingw32/lib32/libhidparse.a
index bb3ad7a..806277a 100644
--- a/x86_64-w64-mingw32/lib32/libhidparse.a
+++ b/x86_64-w64-mingw32/lib32/libhidparse.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libhttpapi.a b/x86_64-w64-mingw32/lib32/libhttpapi.a
index 902048d..b683353 100644
--- a/x86_64-w64-mingw32/lib32/libhttpapi.a
+++ b/x86_64-w64-mingw32/lib32/libhttpapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libicmui.a b/x86_64-w64-mingw32/lib32/libicmui.a
index 13aa810..a1ad5ee 100644
--- a/x86_64-w64-mingw32/lib32/libicmui.a
+++ b/x86_64-w64-mingw32/lib32/libicmui.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libigmpagnt.a b/x86_64-w64-mingw32/lib32/libigmpagnt.a
index 9f37a21..90aa396 100644
--- a/x86_64-w64-mingw32/lib32/libigmpagnt.a
+++ b/x86_64-w64-mingw32/lib32/libigmpagnt.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libimagehlp.a b/x86_64-w64-mingw32/lib32/libimagehlp.a
index 87d8043..dcf4bb1 100644
--- a/x86_64-w64-mingw32/lib32/libimagehlp.a
+++ b/x86_64-w64-mingw32/lib32/libimagehlp.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libimm32.a b/x86_64-w64-mingw32/lib32/libimm32.a
index d55c8aa..46a2a54 100644
--- a/x86_64-w64-mingw32/lib32/libimm32.a
+++ b/x86_64-w64-mingw32/lib32/libimm32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libiphlpapi.a b/x86_64-w64-mingw32/lib32/libiphlpapi.a
index 0c30e26..712ba3b 100644
--- a/x86_64-w64-mingw32/lib32/libiphlpapi.a
+++ b/x86_64-w64-mingw32/lib32/libiphlpapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libiscsidsc.a b/x86_64-w64-mingw32/lib32/libiscsidsc.a
index 05c3844..eda81ae 100644
--- a/x86_64-w64-mingw32/lib32/libiscsidsc.a
+++ b/x86_64-w64-mingw32/lib32/libiscsidsc.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libkernel32.a b/x86_64-w64-mingw32/lib32/libkernel32.a
index 6a0e438..13a811b 100644
--- a/x86_64-w64-mingw32/lib32/libkernel32.a
+++ b/x86_64-w64-mingw32/lib32/libkernel32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libks.a b/x86_64-w64-mingw32/lib32/libks.a
index cbaf484..2800a42 100644
--- a/x86_64-w64-mingw32/lib32/libks.a
+++ b/x86_64-w64-mingw32/lib32/libks.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libksguid.a b/x86_64-w64-mingw32/lib32/libksguid.a
index 3bc09ac..aca3693 100644
--- a/x86_64-w64-mingw32/lib32/libksguid.a
+++ b/x86_64-w64-mingw32/lib32/libksguid.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libksproxy.a b/x86_64-w64-mingw32/lib32/libksproxy.a
index c628e85..850238c 100644
--- a/x86_64-w64-mingw32/lib32/libksproxy.a
+++ b/x86_64-w64-mingw32/lib32/libksproxy.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libksuser.a b/x86_64-w64-mingw32/lib32/libksuser.a
index 4fa2abf..03a9434 100644
--- a/x86_64-w64-mingw32/lib32/libksuser.a
+++ b/x86_64-w64-mingw32/lib32/libksuser.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libktmw32.a b/x86_64-w64-mingw32/lib32/libktmw32.a
index c8513ad..788116c 100644
--- a/x86_64-w64-mingw32/lib32/libktmw32.a
+++ b/x86_64-w64-mingw32/lib32/libktmw32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/liblargeint.a b/x86_64-w64-mingw32/lib32/liblargeint.a
index 55da547..6993cc1 100644
--- a/x86_64-w64-mingw32/lib32/liblargeint.a
+++ b/x86_64-w64-mingw32/lib32/liblargeint.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/liblocationapi.a b/x86_64-w64-mingw32/lib32/liblocationapi.a
index 7d9b84b..5aca548 100644
--- a/x86_64-w64-mingw32/lib32/liblocationapi.a
+++ b/x86_64-w64-mingw32/lib32/liblocationapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/liblogoncli.a b/x86_64-w64-mingw32/lib32/liblogoncli.a
index 4e81fbb..d0ec124 100644
--- a/x86_64-w64-mingw32/lib32/liblogoncli.a
+++ b/x86_64-w64-mingw32/lib32/liblogoncli.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/liblz32.a b/x86_64-w64-mingw32/lib32/liblz32.a
index 3b7cd17..d73ac26 100644
--- a/x86_64-w64-mingw32/lib32/liblz32.a
+++ b/x86_64-w64-mingw32/lib32/liblz32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libm.a b/x86_64-w64-mingw32/lib32/libm.a
index 417b845..d6b0d5d 100644
--- a/x86_64-w64-mingw32/lib32/libm.a
+++ b/x86_64-w64-mingw32/lib32/libm.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libmapi32.a b/x86_64-w64-mingw32/lib32/libmapi32.a
index 0b71e7d..9bc00eb 100644
--- a/x86_64-w64-mingw32/lib32/libmapi32.a
+++ b/x86_64-w64-mingw32/lib32/libmapi32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libmcd.a b/x86_64-w64-mingw32/lib32/libmcd.a
index de2c2c8..89a42bb 100644
--- a/x86_64-w64-mingw32/lib32/libmcd.a
+++ b/x86_64-w64-mingw32/lib32/libmcd.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libmf.a b/x86_64-w64-mingw32/lib32/libmf.a
index 1db68e6..f4ec016 100644
--- a/x86_64-w64-mingw32/lib32/libmf.a
+++ b/x86_64-w64-mingw32/lib32/libmf.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libmfcuia32.a b/x86_64-w64-mingw32/lib32/libmfcuia32.a
index d564df4..a0d9627 100644
--- a/x86_64-w64-mingw32/lib32/libmfcuia32.a
+++ b/x86_64-w64-mingw32/lib32/libmfcuia32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libmfplat.a b/x86_64-w64-mingw32/lib32/libmfplat.a
index 7fee819..18eee7d 100644
--- a/x86_64-w64-mingw32/lib32/libmfplat.a
+++ b/x86_64-w64-mingw32/lib32/libmfplat.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libmfuuid.a b/x86_64-w64-mingw32/lib32/libmfuuid.a
index 0640416..8a60dc5 100644
--- a/x86_64-w64-mingw32/lib32/libmfuuid.a
+++ b/x86_64-w64-mingw32/lib32/libmfuuid.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libmgmtapi.a b/x86_64-w64-mingw32/lib32/libmgmtapi.a
index af9b302..4ec520a 100644
--- a/x86_64-w64-mingw32/lib32/libmgmtapi.a
+++ b/x86_64-w64-mingw32/lib32/libmgmtapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libmingw32.a b/x86_64-w64-mingw32/lib32/libmingw32.a
index 3c6acf1..14a7b7b 100644
--- a/x86_64-w64-mingw32/lib32/libmingw32.a
+++ b/x86_64-w64-mingw32/lib32/libmingw32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libmingwex.a b/x86_64-w64-mingw32/lib32/libmingwex.a
index e01ae4e..89ad786 100644
--- a/x86_64-w64-mingw32/lib32/libmingwex.a
+++ b/x86_64-w64-mingw32/lib32/libmingwex.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libmingwthrd.a b/x86_64-w64-mingw32/lib32/libmingwthrd.a
index eacee19..ab06627 100644
--- a/x86_64-w64-mingw32/lib32/libmingwthrd.a
+++ b/x86_64-w64-mingw32/lib32/libmingwthrd.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libmoldname.a b/x86_64-w64-mingw32/lib32/libmoldname.a
index 4739928..ab2ea63 100644
--- a/x86_64-w64-mingw32/lib32/libmoldname.a
+++ b/x86_64-w64-mingw32/lib32/libmoldname.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libmpr.a b/x86_64-w64-mingw32/lib32/libmpr.a
index 756c8dd..a8ab4ae 100644
--- a/x86_64-w64-mingw32/lib32/libmpr.a
+++ b/x86_64-w64-mingw32/lib32/libmpr.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libmprapi.a b/x86_64-w64-mingw32/lib32/libmprapi.a
index ca6069b..6c13f15 100644
--- a/x86_64-w64-mingw32/lib32/libmprapi.a
+++ b/x86_64-w64-mingw32/lib32/libmprapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libmqrt.a b/x86_64-w64-mingw32/lib32/libmqrt.a
index 6147835..f846f3d 100644
--- a/x86_64-w64-mingw32/lib32/libmqrt.a
+++ b/x86_64-w64-mingw32/lib32/libmqrt.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libmsacm32.a b/x86_64-w64-mingw32/lib32/libmsacm32.a
index 6acef77..c7c4ac5 100644
--- a/x86_64-w64-mingw32/lib32/libmsacm32.a
+++ b/x86_64-w64-mingw32/lib32/libmsacm32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libmscms.a b/x86_64-w64-mingw32/lib32/libmscms.a
index 2f24b12..a023d0e 100644
--- a/x86_64-w64-mingw32/lib32/libmscms.a
+++ b/x86_64-w64-mingw32/lib32/libmscms.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libmsctf.a b/x86_64-w64-mingw32/lib32/libmsctf.a
index 6b84ca4..7f8e4cc 100644
--- a/x86_64-w64-mingw32/lib32/libmsctf.a
+++ b/x86_64-w64-mingw32/lib32/libmsctf.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libmsctfmonitor.a b/x86_64-w64-mingw32/lib32/libmsctfmonitor.a
index 0a7c585..3d7118d 100644
--- a/x86_64-w64-mingw32/lib32/libmsctfmonitor.a
+++ b/x86_64-w64-mingw32/lib32/libmsctfmonitor.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libmsdmo.a b/x86_64-w64-mingw32/lib32/libmsdmo.a
index 3b0803e..0c56efd 100644
--- a/x86_64-w64-mingw32/lib32/libmsdmo.a
+++ b/x86_64-w64-mingw32/lib32/libmsdmo.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libmsdrm.a b/x86_64-w64-mingw32/lib32/libmsdrm.a
index 03165f2..24f1f92 100644
--- a/x86_64-w64-mingw32/lib32/libmsdrm.a
+++ b/x86_64-w64-mingw32/lib32/libmsdrm.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libmshtml.a b/x86_64-w64-mingw32/lib32/libmshtml.a
index d35e4d9..f3bd38a 100644
--- a/x86_64-w64-mingw32/lib32/libmshtml.a
+++ b/x86_64-w64-mingw32/lib32/libmshtml.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libmshtmled.a b/x86_64-w64-mingw32/lib32/libmshtmled.a
index 3f1860d..4e6b43c 100644
--- a/x86_64-w64-mingw32/lib32/libmshtmled.a
+++ b/x86_64-w64-mingw32/lib32/libmshtmled.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libmsi.a b/x86_64-w64-mingw32/lib32/libmsi.a
index bb1e80d..7c07bcb 100644
--- a/x86_64-w64-mingw32/lib32/libmsi.a
+++ b/x86_64-w64-mingw32/lib32/libmsi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libmsimg32.a b/x86_64-w64-mingw32/lib32/libmsimg32.a
index 99e5c4c..d609664 100644
--- a/x86_64-w64-mingw32/lib32/libmsimg32.a
+++ b/x86_64-w64-mingw32/lib32/libmsimg32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libmstask.a b/x86_64-w64-mingw32/lib32/libmstask.a
index 6571977..a0093c3 100644
--- a/x86_64-w64-mingw32/lib32/libmstask.a
+++ b/x86_64-w64-mingw32/lib32/libmstask.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libmsvcp60.a b/x86_64-w64-mingw32/lib32/libmsvcp60.a
index ee736af..ac63455 100644
--- a/x86_64-w64-mingw32/lib32/libmsvcp60.a
+++ b/x86_64-w64-mingw32/lib32/libmsvcp60.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libmsvcr100.a b/x86_64-w64-mingw32/lib32/libmsvcr100.a
index 23b6cc7..241033e 100644
--- a/x86_64-w64-mingw32/lib32/libmsvcr100.a
+++ b/x86_64-w64-mingw32/lib32/libmsvcr100.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libmsvcr110.a b/x86_64-w64-mingw32/lib32/libmsvcr110.a
index dedc7a2..3a9cf8c 100644
--- a/x86_64-w64-mingw32/lib32/libmsvcr110.a
+++ b/x86_64-w64-mingw32/lib32/libmsvcr110.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libmsvcr120.a b/x86_64-w64-mingw32/lib32/libmsvcr120.a
index eec6e28..9653760 100644
--- a/x86_64-w64-mingw32/lib32/libmsvcr120.a
+++ b/x86_64-w64-mingw32/lib32/libmsvcr120.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libmsvcr120d.a b/x86_64-w64-mingw32/lib32/libmsvcr120d.a
index dfffb09..92259d1 100644
--- a/x86_64-w64-mingw32/lib32/libmsvcr120d.a
+++ b/x86_64-w64-mingw32/lib32/libmsvcr120d.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libmsvcr80.a b/x86_64-w64-mingw32/lib32/libmsvcr80.a
index 64e8559..243d1a2 100644
--- a/x86_64-w64-mingw32/lib32/libmsvcr80.a
+++ b/x86_64-w64-mingw32/lib32/libmsvcr80.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libmsvcr90.a b/x86_64-w64-mingw32/lib32/libmsvcr90.a
index cd7e602..7664bac 100644
--- a/x86_64-w64-mingw32/lib32/libmsvcr90.a
+++ b/x86_64-w64-mingw32/lib32/libmsvcr90.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libmsvcr90d.a b/x86_64-w64-mingw32/lib32/libmsvcr90d.a
index 639684f..66924a6 100644
--- a/x86_64-w64-mingw32/lib32/libmsvcr90d.a
+++ b/x86_64-w64-mingw32/lib32/libmsvcr90d.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libmsvcrt.a b/x86_64-w64-mingw32/lib32/libmsvcrt.a
index b0f94ca..e430987 100644
--- a/x86_64-w64-mingw32/lib32/libmsvcrt.a
+++ b/x86_64-w64-mingw32/lib32/libmsvcrt.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libmsvfw32.a b/x86_64-w64-mingw32/lib32/libmsvfw32.a
index 222fdd4..61794ac 100644
--- a/x86_64-w64-mingw32/lib32/libmsvfw32.a
+++ b/x86_64-w64-mingw32/lib32/libmsvfw32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libmswsock.a b/x86_64-w64-mingw32/lib32/libmswsock.a
index 9670d7e..2611c44 100644
--- a/x86_64-w64-mingw32/lib32/libmswsock.a
+++ b/x86_64-w64-mingw32/lib32/libmswsock.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libncrypt.a b/x86_64-w64-mingw32/lib32/libncrypt.a
index 1bd2fcc..84781b7 100644
--- a/x86_64-w64-mingw32/lib32/libncrypt.a
+++ b/x86_64-w64-mingw32/lib32/libncrypt.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libnddeapi.a b/x86_64-w64-mingw32/lib32/libnddeapi.a
index fd1279c..0742d3e 100644
--- a/x86_64-w64-mingw32/lib32/libnddeapi.a
+++ b/x86_64-w64-mingw32/lib32/libnddeapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libndfapi.a b/x86_64-w64-mingw32/lib32/libndfapi.a
index b540268..7596a08 100644
--- a/x86_64-w64-mingw32/lib32/libndfapi.a
+++ b/x86_64-w64-mingw32/lib32/libndfapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libndis.a b/x86_64-w64-mingw32/lib32/libndis.a
index 1dd5c97..cfdd1c2 100644
--- a/x86_64-w64-mingw32/lib32/libndis.a
+++ b/x86_64-w64-mingw32/lib32/libndis.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libnetapi32.a b/x86_64-w64-mingw32/lib32/libnetapi32.a
index e14e77b..a2535b1 100644
--- a/x86_64-w64-mingw32/lib32/libnetapi32.a
+++ b/x86_64-w64-mingw32/lib32/libnetapi32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libnetjoin.a b/x86_64-w64-mingw32/lib32/libnetjoin.a
index 92e151b..e91d723 100644
--- a/x86_64-w64-mingw32/lib32/libnetjoin.a
+++ b/x86_64-w64-mingw32/lib32/libnetjoin.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libnetutils.a b/x86_64-w64-mingw32/lib32/libnetutils.a
index caf477f..0ca8570 100644
--- a/x86_64-w64-mingw32/lib32/libnetutils.a
+++ b/x86_64-w64-mingw32/lib32/libnetutils.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libnewdev.a b/x86_64-w64-mingw32/lib32/libnewdev.a
index 3ee0147..f60712a 100644
--- a/x86_64-w64-mingw32/lib32/libnewdev.a
+++ b/x86_64-w64-mingw32/lib32/libnewdev.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libnormaliz.a b/x86_64-w64-mingw32/lib32/libnormaliz.a
index b9dfe05..409a597 100644
--- a/x86_64-w64-mingw32/lib32/libnormaliz.a
+++ b/x86_64-w64-mingw32/lib32/libnormaliz.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libntdll.a b/x86_64-w64-mingw32/lib32/libntdll.a
index 2034a92..b05fe9c 100644
--- a/x86_64-w64-mingw32/lib32/libntdll.a
+++ b/x86_64-w64-mingw32/lib32/libntdll.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libntdsapi.a b/x86_64-w64-mingw32/lib32/libntdsapi.a
index d78c035..0f80e6c 100644
--- a/x86_64-w64-mingw32/lib32/libntdsapi.a
+++ b/x86_64-w64-mingw32/lib32/libntdsapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libntmsapi.a b/x86_64-w64-mingw32/lib32/libntmsapi.a
index 713b608..57a426d 100644
--- a/x86_64-w64-mingw32/lib32/libntmsapi.a
+++ b/x86_64-w64-mingw32/lib32/libntmsapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libntoskrnl.a b/x86_64-w64-mingw32/lib32/libntoskrnl.a
index 7baf2fb..4539d15 100644
--- a/x86_64-w64-mingw32/lib32/libntoskrnl.a
+++ b/x86_64-w64-mingw32/lib32/libntoskrnl.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libodbc32.a b/x86_64-w64-mingw32/lib32/libodbc32.a
index 0384dc9..a003045 100644
--- a/x86_64-w64-mingw32/lib32/libodbc32.a
+++ b/x86_64-w64-mingw32/lib32/libodbc32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libodbccp32.a b/x86_64-w64-mingw32/lib32/libodbccp32.a
index bf3d55d..d50fe85 100644
--- a/x86_64-w64-mingw32/lib32/libodbccp32.a
+++ b/x86_64-w64-mingw32/lib32/libodbccp32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libole32.a b/x86_64-w64-mingw32/lib32/libole32.a
index 5f3a52e..a68f547 100644
--- a/x86_64-w64-mingw32/lib32/libole32.a
+++ b/x86_64-w64-mingw32/lib32/libole32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/liboleacc.a b/x86_64-w64-mingw32/lib32/liboleacc.a
index 6623ac4..353476c 100644
--- a/x86_64-w64-mingw32/lib32/liboleacc.a
+++ b/x86_64-w64-mingw32/lib32/liboleacc.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/liboleaut32.a b/x86_64-w64-mingw32/lib32/liboleaut32.a
index e5adb71..902ba53 100644
--- a/x86_64-w64-mingw32/lib32/liboleaut32.a
+++ b/x86_64-w64-mingw32/lib32/liboleaut32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libolecli32.a b/x86_64-w64-mingw32/lib32/libolecli32.a
index b79bc80..5b5e33a 100644
--- a/x86_64-w64-mingw32/lib32/libolecli32.a
+++ b/x86_64-w64-mingw32/lib32/libolecli32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/liboledlg.a b/x86_64-w64-mingw32/lib32/liboledlg.a
index 9a93ff1..e2b5712 100644
--- a/x86_64-w64-mingw32/lib32/liboledlg.a
+++ b/x86_64-w64-mingw32/lib32/liboledlg.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libolepro32.a b/x86_64-w64-mingw32/lib32/libolepro32.a
index 4b4a530..337479c 100644
--- a/x86_64-w64-mingw32/lib32/libolepro32.a
+++ b/x86_64-w64-mingw32/lib32/libolepro32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libolesvr32.a b/x86_64-w64-mingw32/lib32/libolesvr32.a
index 4e2247b..0891844 100644
--- a/x86_64-w64-mingw32/lib32/libolesvr32.a
+++ b/x86_64-w64-mingw32/lib32/libolesvr32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libolethk32.a b/x86_64-w64-mingw32/lib32/libolethk32.a
index e14fdeb..da05e5b 100644
--- a/x86_64-w64-mingw32/lib32/libolethk32.a
+++ b/x86_64-w64-mingw32/lib32/libolethk32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libopengl32.a b/x86_64-w64-mingw32/lib32/libopengl32.a
index 34f9719..6f6ef7c 100644
--- a/x86_64-w64-mingw32/lib32/libopengl32.a
+++ b/x86_64-w64-mingw32/lib32/libopengl32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libp2p.a b/x86_64-w64-mingw32/lib32/libp2p.a
index eaeb03b..f032851 100644
--- a/x86_64-w64-mingw32/lib32/libp2p.a
+++ b/x86_64-w64-mingw32/lib32/libp2p.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libp2pcollab.a b/x86_64-w64-mingw32/lib32/libp2pcollab.a
index 8ee7a04..80cd7ce 100644
--- a/x86_64-w64-mingw32/lib32/libp2pcollab.a
+++ b/x86_64-w64-mingw32/lib32/libp2pcollab.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libp2pgraph.a b/x86_64-w64-mingw32/lib32/libp2pgraph.a
index 349d2d0..721d8f2 100644
--- a/x86_64-w64-mingw32/lib32/libp2pgraph.a
+++ b/x86_64-w64-mingw32/lib32/libp2pgraph.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libpcwum.a b/x86_64-w64-mingw32/lib32/libpcwum.a
index f83738d..59c5791 100644
--- a/x86_64-w64-mingw32/lib32/libpcwum.a
+++ b/x86_64-w64-mingw32/lib32/libpcwum.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libpdh.a b/x86_64-w64-mingw32/lib32/libpdh.a
index 1d0d693..b912de3 100644
--- a/x86_64-w64-mingw32/lib32/libpdh.a
+++ b/x86_64-w64-mingw32/lib32/libpdh.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libpdhui.a b/x86_64-w64-mingw32/lib32/libpdhui.a
index 87d3e6a..89145e5 100644
--- a/x86_64-w64-mingw32/lib32/libpdhui.a
+++ b/x86_64-w64-mingw32/lib32/libpdhui.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libpenwin32.a b/x86_64-w64-mingw32/lib32/libpenwin32.a
index 4b8727f..98b9fce 100644
--- a/x86_64-w64-mingw32/lib32/libpenwin32.a
+++ b/x86_64-w64-mingw32/lib32/libpenwin32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libpkpd32.a b/x86_64-w64-mingw32/lib32/libpkpd32.a
index fca563f..7614a6b 100644
--- a/x86_64-w64-mingw32/lib32/libpkpd32.a
+++ b/x86_64-w64-mingw32/lib32/libpkpd32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libportabledeviceguids.a b/x86_64-w64-mingw32/lib32/libportabledeviceguids.a
index 247b79f..3fdab03 100644
--- a/x86_64-w64-mingw32/lib32/libportabledeviceguids.a
+++ b/x86_64-w64-mingw32/lib32/libportabledeviceguids.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libpowrprof.a b/x86_64-w64-mingw32/lib32/libpowrprof.a
index 5d28d25..574bad1 100644
--- a/x86_64-w64-mingw32/lib32/libpowrprof.a
+++ b/x86_64-w64-mingw32/lib32/libpowrprof.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libpsapi.a b/x86_64-w64-mingw32/lib32/libpsapi.a
index 068a1a6..aad0fec 100644
--- a/x86_64-w64-mingw32/lib32/libpsapi.a
+++ b/x86_64-w64-mingw32/lib32/libpsapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libpthread.a b/x86_64-w64-mingw32/lib32/libpthread.a
index 593ba58..4767d96 100644
--- a/x86_64-w64-mingw32/lib32/libpthread.a
+++ b/x86_64-w64-mingw32/lib32/libpthread.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libpthread.dll.a b/x86_64-w64-mingw32/lib32/libpthread.dll.a
index 082d8db..dbeac70 100644
--- a/x86_64-w64-mingw32/lib32/libpthread.dll.a
+++ b/x86_64-w64-mingw32/lib32/libpthread.dll.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libquadmath.a b/x86_64-w64-mingw32/lib32/libquadmath.a
index 2a30855..d46b09d 100644
--- a/x86_64-w64-mingw32/lib32/libquadmath.a
+++ b/x86_64-w64-mingw32/lib32/libquadmath.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libquadmath.la b/x86_64-w64-mingw32/lib32/libquadmath.la
index 63b2219..7a38e77 100755
--- a/x86_64-w64-mingw32/lib32/libquadmath.la
+++ b/x86_64-w64-mingw32/lib32/libquadmath.la
@@ -17,7 +17,7 @@
 inherited_linker_flags=''
 
 # Libraries that this one depends upon.
-dependency_libs=' -L/usr/local/google/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/lib -L/usr/local/google/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/mingw/lib'
+dependency_libs=' -L/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/lib -L/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/mingw/lib'
 
 # Names of additional weak libraries provided by this library
 weak_library_names=''
@@ -38,4 +38,4 @@
 dlpreopen=''
 
 # Directory that this library needs to be installed in:
-libdir='/usr/local/google/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/lib/../lib32'
+libdir='/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/lib/../lib32'
diff --git a/x86_64-w64-mingw32/lib32/libquartz.a b/x86_64-w64-mingw32/lib32/libquartz.a
index 667017c..4029f70 100644
--- a/x86_64-w64-mingw32/lib32/libquartz.a
+++ b/x86_64-w64-mingw32/lib32/libquartz.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libqutil.a b/x86_64-w64-mingw32/lib32/libqutil.a
index c20d4ba..8e991ba 100644
--- a/x86_64-w64-mingw32/lib32/libqutil.a
+++ b/x86_64-w64-mingw32/lib32/libqutil.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libqwave.a b/x86_64-w64-mingw32/lib32/libqwave.a
index 7079fb4..bdd06d7 100644
--- a/x86_64-w64-mingw32/lib32/libqwave.a
+++ b/x86_64-w64-mingw32/lib32/libqwave.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/librapi.a b/x86_64-w64-mingw32/lib32/librapi.a
index 2f315ab..4d9f0a7 100644
--- a/x86_64-w64-mingw32/lib32/librapi.a
+++ b/x86_64-w64-mingw32/lib32/librapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/librasapi32.a b/x86_64-w64-mingw32/lib32/librasapi32.a
index d8f5752..2c9e7b0 100644
--- a/x86_64-w64-mingw32/lib32/librasapi32.a
+++ b/x86_64-w64-mingw32/lib32/librasapi32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/librasdlg.a b/x86_64-w64-mingw32/lib32/librasdlg.a
index 96b6150..60542cd 100644
--- a/x86_64-w64-mingw32/lib32/librasdlg.a
+++ b/x86_64-w64-mingw32/lib32/librasdlg.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libresutil.a b/x86_64-w64-mingw32/lib32/libresutil.a
index fdc6ce3..313184f 100644
--- a/x86_64-w64-mingw32/lib32/libresutil.a
+++ b/x86_64-w64-mingw32/lib32/libresutil.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/librpcdce4.a b/x86_64-w64-mingw32/lib32/librpcdce4.a
index bee4248..2ee57c7 100644
--- a/x86_64-w64-mingw32/lib32/librpcdce4.a
+++ b/x86_64-w64-mingw32/lib32/librpcdce4.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/librpcdiag.a b/x86_64-w64-mingw32/lib32/librpcdiag.a
index bbfd425..65b0c1c 100644
--- a/x86_64-w64-mingw32/lib32/librpcdiag.a
+++ b/x86_64-w64-mingw32/lib32/librpcdiag.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/librpchttp.a b/x86_64-w64-mingw32/lib32/librpchttp.a
index 4ba7b5f..8f5ecd9 100644
--- a/x86_64-w64-mingw32/lib32/librpchttp.a
+++ b/x86_64-w64-mingw32/lib32/librpchttp.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/librpcns4.a b/x86_64-w64-mingw32/lib32/librpcns4.a
index 190597e..5f4d00b 100644
--- a/x86_64-w64-mingw32/lib32/librpcns4.a
+++ b/x86_64-w64-mingw32/lib32/librpcns4.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/librpcrt4.a b/x86_64-w64-mingw32/lib32/librpcrt4.a
index 3110089..18d0b44 100644
--- a/x86_64-w64-mingw32/lib32/librpcrt4.a
+++ b/x86_64-w64-mingw32/lib32/librpcrt4.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/librstrmgr.a b/x86_64-w64-mingw32/lib32/librstrmgr.a
index 296c630..332ebdc 100644
--- a/x86_64-w64-mingw32/lib32/librstrmgr.a
+++ b/x86_64-w64-mingw32/lib32/librstrmgr.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/librtm.a b/x86_64-w64-mingw32/lib32/librtm.a
index 4c627a7..61538e8 100644
--- a/x86_64-w64-mingw32/lib32/librtm.a
+++ b/x86_64-w64-mingw32/lib32/librtm.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/librtutils.a b/x86_64-w64-mingw32/lib32/librtutils.a
index a8aedf8..d48c81a 100644
--- a/x86_64-w64-mingw32/lib32/librtutils.a
+++ b/x86_64-w64-mingw32/lib32/librtutils.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libsamcli.a b/x86_64-w64-mingw32/lib32/libsamcli.a
index b2093ae..2fa7ce9 100644
--- a/x86_64-w64-mingw32/lib32/libsamcli.a
+++ b/x86_64-w64-mingw32/lib32/libsamcli.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libsapi.a b/x86_64-w64-mingw32/lib32/libsapi.a
index 4fce3ad..9099fff 100644
--- a/x86_64-w64-mingw32/lib32/libsapi.a
+++ b/x86_64-w64-mingw32/lib32/libsapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libschedcli.a b/x86_64-w64-mingw32/lib32/libschedcli.a
index 0429498..6b6ff69 100644
--- a/x86_64-w64-mingw32/lib32/libschedcli.a
+++ b/x86_64-w64-mingw32/lib32/libschedcli.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libscrnsave.a b/x86_64-w64-mingw32/lib32/libscrnsave.a
index 72b8053..28071d4 100644
--- a/x86_64-w64-mingw32/lib32/libscrnsave.a
+++ b/x86_64-w64-mingw32/lib32/libscrnsave.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libscrnsavw.a b/x86_64-w64-mingw32/lib32/libscrnsavw.a
index 574a9ed..a92c4a4 100644
--- a/x86_64-w64-mingw32/lib32/libscrnsavw.a
+++ b/x86_64-w64-mingw32/lib32/libscrnsavw.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libscsiport.a b/x86_64-w64-mingw32/lib32/libscsiport.a
index 94e0c4e..fe4dd13 100644
--- a/x86_64-w64-mingw32/lib32/libscsiport.a
+++ b/x86_64-w64-mingw32/lib32/libscsiport.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libsecur32.a b/x86_64-w64-mingw32/lib32/libsecur32.a
index c6c8cba..970c69f 100644
--- a/x86_64-w64-mingw32/lib32/libsecur32.a
+++ b/x86_64-w64-mingw32/lib32/libsecur32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libsensorsapi.a b/x86_64-w64-mingw32/lib32/libsensorsapi.a
index 2c425d3..b64b6dd 100644
--- a/x86_64-w64-mingw32/lib32/libsensorsapi.a
+++ b/x86_64-w64-mingw32/lib32/libsensorsapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libsetupapi.a b/x86_64-w64-mingw32/lib32/libsetupapi.a
index eb40b13..bd27642 100644
--- a/x86_64-w64-mingw32/lib32/libsetupapi.a
+++ b/x86_64-w64-mingw32/lib32/libsetupapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libshell32.a b/x86_64-w64-mingw32/lib32/libshell32.a
index 48d4676..13c78f5 100644
--- a/x86_64-w64-mingw32/lib32/libshell32.a
+++ b/x86_64-w64-mingw32/lib32/libshell32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libshfolder.a b/x86_64-w64-mingw32/lib32/libshfolder.a
index 85b6bc7..0309dc6 100644
--- a/x86_64-w64-mingw32/lib32/libshfolder.a
+++ b/x86_64-w64-mingw32/lib32/libshfolder.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libshlwapi.a b/x86_64-w64-mingw32/lib32/libshlwapi.a
index 781c5d1..5a7727c 100644
--- a/x86_64-w64-mingw32/lib32/libshlwapi.a
+++ b/x86_64-w64-mingw32/lib32/libshlwapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libslc.a b/x86_64-w64-mingw32/lib32/libslc.a
index e62c3d3..f637baf 100644
--- a/x86_64-w64-mingw32/lib32/libslc.a
+++ b/x86_64-w64-mingw32/lib32/libslc.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libslcext.a b/x86_64-w64-mingw32/lib32/libslcext.a
index aef2b44..714efaa 100644
--- a/x86_64-w64-mingw32/lib32/libslcext.a
+++ b/x86_64-w64-mingw32/lib32/libslcext.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libslwga.a b/x86_64-w64-mingw32/lib32/libslwga.a
index 5cbd64d..2423e1f 100644
--- a/x86_64-w64-mingw32/lib32/libslwga.a
+++ b/x86_64-w64-mingw32/lib32/libslwga.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libsnmpapi.a b/x86_64-w64-mingw32/lib32/libsnmpapi.a
index 4a9e709..3fc248f 100644
--- a/x86_64-w64-mingw32/lib32/libsnmpapi.a
+++ b/x86_64-w64-mingw32/lib32/libsnmpapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libspoolss.a b/x86_64-w64-mingw32/lib32/libspoolss.a
index a5ca324..e365e0d 100644
--- a/x86_64-w64-mingw32/lib32/libspoolss.a
+++ b/x86_64-w64-mingw32/lib32/libspoolss.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libsrvcli.a b/x86_64-w64-mingw32/lib32/libsrvcli.a
index fc655f1..79a53bf 100644
--- a/x86_64-w64-mingw32/lib32/libsrvcli.a
+++ b/x86_64-w64-mingw32/lib32/libsrvcli.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libssp.a b/x86_64-w64-mingw32/lib32/libssp.a
index e2dc579..85fa36a 100644
--- a/x86_64-w64-mingw32/lib32/libssp.a
+++ b/x86_64-w64-mingw32/lib32/libssp.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libssp.la b/x86_64-w64-mingw32/lib32/libssp.la
index bb8738e..d338398 100755
--- a/x86_64-w64-mingw32/lib32/libssp.la
+++ b/x86_64-w64-mingw32/lib32/libssp.la
@@ -17,7 +17,7 @@
 inherited_linker_flags=''
 
 # Libraries that this one depends upon.
-dependency_libs=' -L/usr/local/google/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/lib -L/usr/local/google/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/mingw/lib'
+dependency_libs=' -L/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/lib -L/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/mingw/lib'
 
 # Names of additional weak libraries provided by this library
 weak_library_names=''
@@ -38,4 +38,4 @@
 dlpreopen=''
 
 # Directory that this library needs to be installed in:
-libdir='/usr/local/google/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/lib/../lib32'
+libdir='/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/lib/../lib32'
diff --git a/x86_64-w64-mingw32/lib32/libssp_nonshared.a b/x86_64-w64-mingw32/lib32/libssp_nonshared.a
index ce919be..19964bb 100644
--- a/x86_64-w64-mingw32/lib32/libssp_nonshared.a
+++ b/x86_64-w64-mingw32/lib32/libssp_nonshared.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libssp_nonshared.la b/x86_64-w64-mingw32/lib32/libssp_nonshared.la
index 9d49b90..8d745fd 100755
--- a/x86_64-w64-mingw32/lib32/libssp_nonshared.la
+++ b/x86_64-w64-mingw32/lib32/libssp_nonshared.la
@@ -17,7 +17,7 @@
 inherited_linker_flags=''
 
 # Libraries that this one depends upon.
-dependency_libs=' -L/usr/local/google/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/lib -L/usr/local/google/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/mingw/lib'
+dependency_libs=' -L/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/lib -L/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/mingw/lib'
 
 # Names of additional weak libraries provided by this library
 weak_library_names=''
@@ -38,4 +38,4 @@
 dlpreopen=''
 
 # Directory that this library needs to be installed in:
-libdir='/usr/local/google/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/lib/../lib32'
+libdir='/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/lib/../lib32'
diff --git a/x86_64-w64-mingw32/lib32/libsspicli.a b/x86_64-w64-mingw32/lib32/libsspicli.a
index e65206b..4a452b5 100644
--- a/x86_64-w64-mingw32/lib32/libsspicli.a
+++ b/x86_64-w64-mingw32/lib32/libsspicli.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libstdc++.a b/x86_64-w64-mingw32/lib32/libstdc++.a
index 9bec70f..9fd7cf7 100644
--- a/x86_64-w64-mingw32/lib32/libstdc++.a
+++ b/x86_64-w64-mingw32/lib32/libstdc++.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libstdc++.a-gdb.py b/x86_64-w64-mingw32/lib32/libstdc++.a-gdb.py
index 835fef4..2921ddc 100644
--- a/x86_64-w64-mingw32/lib32/libstdc++.a-gdb.py
+++ b/x86_64-w64-mingw32/lib32/libstdc++.a-gdb.py
@@ -19,8 +19,8 @@
 import os
 import os.path
 
-pythondir = '/usr/local/google/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/share/gcc-4.8.3/python'
-libdir = '/usr/local/google/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/lib/../lib32'
+pythondir = '/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/share/gcc-4.8.3/python'
+libdir = '/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/lib/../lib32'
 
 # This file might be loaded when there is no current objfile.  This
 # can happen if the user loads it manually.  In this case we don't
diff --git a/x86_64-w64-mingw32/lib32/libstdc++.la b/x86_64-w64-mingw32/lib32/libstdc++.la
index a92609b..35ef073 100755
--- a/x86_64-w64-mingw32/lib32/libstdc++.la
+++ b/x86_64-w64-mingw32/lib32/libstdc++.la
@@ -38,4 +38,4 @@
 dlpreopen=''
 
 # Directory that this library needs to be installed in:
-libdir='/usr/local/google/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/lib/../lib32'
+libdir='/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/lib/../lib32'
diff --git a/x86_64-w64-mingw32/lib32/libstrmiids.a b/x86_64-w64-mingw32/lib32/libstrmiids.a
index b685dd6..6df6a32 100644
--- a/x86_64-w64-mingw32/lib32/libstrmiids.a
+++ b/x86_64-w64-mingw32/lib32/libstrmiids.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libsupc++.a b/x86_64-w64-mingw32/lib32/libsupc++.a
index 455e3eb..2e14f98 100644
--- a/x86_64-w64-mingw32/lib32/libsupc++.a
+++ b/x86_64-w64-mingw32/lib32/libsupc++.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libsupc++.la b/x86_64-w64-mingw32/lib32/libsupc++.la
index 7f15c08..ce46b48 100755
--- a/x86_64-w64-mingw32/lib32/libsupc++.la
+++ b/x86_64-w64-mingw32/lib32/libsupc++.la
@@ -38,4 +38,4 @@
 dlpreopen=''
 
 # Directory that this library needs to be installed in:
-libdir='/usr/local/google/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/lib/../lib32'
+libdir='/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/lib/../lib32'
diff --git a/x86_64-w64-mingw32/lib32/libsvrapi.a b/x86_64-w64-mingw32/lib32/libsvrapi.a
index 6cba428..40643d6 100644
--- a/x86_64-w64-mingw32/lib32/libsvrapi.a
+++ b/x86_64-w64-mingw32/lib32/libsvrapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libsxs.a b/x86_64-w64-mingw32/lib32/libsxs.a
index ab8a8ec..0266edd 100644
--- a/x86_64-w64-mingw32/lib32/libsxs.a
+++ b/x86_64-w64-mingw32/lib32/libsxs.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libt2embed.a b/x86_64-w64-mingw32/lib32/libt2embed.a
index 2a5404d..3bc5e30 100644
--- a/x86_64-w64-mingw32/lib32/libt2embed.a
+++ b/x86_64-w64-mingw32/lib32/libt2embed.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libtapi32.a b/x86_64-w64-mingw32/lib32/libtapi32.a
index 7189f9d..f19b01f 100644
--- a/x86_64-w64-mingw32/lib32/libtapi32.a
+++ b/x86_64-w64-mingw32/lib32/libtapi32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libtbs.a b/x86_64-w64-mingw32/lib32/libtbs.a
index 0a345f1..c70f43c 100644
--- a/x86_64-w64-mingw32/lib32/libtbs.a
+++ b/x86_64-w64-mingw32/lib32/libtbs.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libtdh.a b/x86_64-w64-mingw32/lib32/libtdh.a
index 0b5e982..0051bd1 100644
--- a/x86_64-w64-mingw32/lib32/libtdh.a
+++ b/x86_64-w64-mingw32/lib32/libtdh.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libtdi.a b/x86_64-w64-mingw32/lib32/libtdi.a
index d17e14e..7557f5b 100644
--- a/x86_64-w64-mingw32/lib32/libtdi.a
+++ b/x86_64-w64-mingw32/lib32/libtdi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libtxfw32.a b/x86_64-w64-mingw32/lib32/libtxfw32.a
index ebd4cbf..546f57d 100644
--- a/x86_64-w64-mingw32/lib32/libtxfw32.a
+++ b/x86_64-w64-mingw32/lib32/libtxfw32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/liburl.a b/x86_64-w64-mingw32/lib32/liburl.a
index 7c0358c..46c8580 100644
--- a/x86_64-w64-mingw32/lib32/liburl.a
+++ b/x86_64-w64-mingw32/lib32/liburl.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/liburlmon.a b/x86_64-w64-mingw32/lib32/liburlmon.a
index 8e0654e..f55f129 100644
--- a/x86_64-w64-mingw32/lib32/liburlmon.a
+++ b/x86_64-w64-mingw32/lib32/liburlmon.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libusbcamd.a b/x86_64-w64-mingw32/lib32/libusbcamd.a
index 33025ed..86d0739 100644
--- a/x86_64-w64-mingw32/lib32/libusbcamd.a
+++ b/x86_64-w64-mingw32/lib32/libusbcamd.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libusbcamd2.a b/x86_64-w64-mingw32/lib32/libusbcamd2.a
index 5181cdc..a9eabe7 100644
--- a/x86_64-w64-mingw32/lib32/libusbcamd2.a
+++ b/x86_64-w64-mingw32/lib32/libusbcamd2.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libusbd.a b/x86_64-w64-mingw32/lib32/libusbd.a
index 1ae3fe8..1c6fa2a 100644
--- a/x86_64-w64-mingw32/lib32/libusbd.a
+++ b/x86_64-w64-mingw32/lib32/libusbd.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libusbport.a b/x86_64-w64-mingw32/lib32/libusbport.a
index 22a84b9..c9c2368 100644
--- a/x86_64-w64-mingw32/lib32/libusbport.a
+++ b/x86_64-w64-mingw32/lib32/libusbport.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libuser32.a b/x86_64-w64-mingw32/lib32/libuser32.a
index 93e04e3..49010be 100644
--- a/x86_64-w64-mingw32/lib32/libuser32.a
+++ b/x86_64-w64-mingw32/lib32/libuser32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libuserenv.a b/x86_64-w64-mingw32/lib32/libuserenv.a
index 5a45f25..17837bb 100644
--- a/x86_64-w64-mingw32/lib32/libuserenv.a
+++ b/x86_64-w64-mingw32/lib32/libuserenv.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libusp10.a b/x86_64-w64-mingw32/lib32/libusp10.a
index 386f62c..63dd598 100644
--- a/x86_64-w64-mingw32/lib32/libusp10.a
+++ b/x86_64-w64-mingw32/lib32/libusp10.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libuuid.a b/x86_64-w64-mingw32/lib32/libuuid.a
index 01de1ee..333dd49 100644
--- a/x86_64-w64-mingw32/lib32/libuuid.a
+++ b/x86_64-w64-mingw32/lib32/libuuid.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libuxtheme.a b/x86_64-w64-mingw32/lib32/libuxtheme.a
index 9444f6f..9367f2d 100644
--- a/x86_64-w64-mingw32/lib32/libuxtheme.a
+++ b/x86_64-w64-mingw32/lib32/libuxtheme.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libvdmdbg.a b/x86_64-w64-mingw32/lib32/libvdmdbg.a
index eccf09d..f4a8745 100644
--- a/x86_64-w64-mingw32/lib32/libvdmdbg.a
+++ b/x86_64-w64-mingw32/lib32/libvdmdbg.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libversion.a b/x86_64-w64-mingw32/lib32/libversion.a
index b33dead..313ee36 100644
--- a/x86_64-w64-mingw32/lib32/libversion.a
+++ b/x86_64-w64-mingw32/lib32/libversion.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libvfw32.a b/x86_64-w64-mingw32/lib32/libvfw32.a
index 5d44be4..46e620a 100644
--- a/x86_64-w64-mingw32/lib32/libvfw32.a
+++ b/x86_64-w64-mingw32/lib32/libvfw32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libvideoprt.a b/x86_64-w64-mingw32/lib32/libvideoprt.a
index 76806f2..a0863fe 100644
--- a/x86_64-w64-mingw32/lib32/libvideoprt.a
+++ b/x86_64-w64-mingw32/lib32/libvideoprt.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libvirtdisk.a b/x86_64-w64-mingw32/lib32/libvirtdisk.a
index 25dbb6c..efa2c0c 100644
--- a/x86_64-w64-mingw32/lib32/libvirtdisk.a
+++ b/x86_64-w64-mingw32/lib32/libvirtdisk.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libvss_ps.a b/x86_64-w64-mingw32/lib32/libvss_ps.a
index 594a45a..f0e9aa5 100644
--- a/x86_64-w64-mingw32/lib32/libvss_ps.a
+++ b/x86_64-w64-mingw32/lib32/libvss_ps.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libvssapi.a b/x86_64-w64-mingw32/lib32/libvssapi.a
index 00627f9..76ed4b3 100644
--- a/x86_64-w64-mingw32/lib32/libvssapi.a
+++ b/x86_64-w64-mingw32/lib32/libvssapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libvsstrace.a b/x86_64-w64-mingw32/lib32/libvsstrace.a
index ce219f4..a5f23f1 100644
--- a/x86_64-w64-mingw32/lib32/libvsstrace.a
+++ b/x86_64-w64-mingw32/lib32/libvsstrace.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libwbemuuid.a b/x86_64-w64-mingw32/lib32/libwbemuuid.a
index c6836dd..208fbf8 100644
--- a/x86_64-w64-mingw32/lib32/libwbemuuid.a
+++ b/x86_64-w64-mingw32/lib32/libwbemuuid.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libwdsclient.a b/x86_64-w64-mingw32/lib32/libwdsclient.a
index 5b832bd..53feced 100644
--- a/x86_64-w64-mingw32/lib32/libwdsclient.a
+++ b/x86_64-w64-mingw32/lib32/libwdsclient.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libwdsclientapi.a b/x86_64-w64-mingw32/lib32/libwdsclientapi.a
index a7bb549..0fc7d5c 100644
--- a/x86_64-w64-mingw32/lib32/libwdsclientapi.a
+++ b/x86_64-w64-mingw32/lib32/libwdsclientapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libwdscore.a b/x86_64-w64-mingw32/lib32/libwdscore.a
index 80ac78a..a2a5c02 100644
--- a/x86_64-w64-mingw32/lib32/libwdscore.a
+++ b/x86_64-w64-mingw32/lib32/libwdscore.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libwdscsl.a b/x86_64-w64-mingw32/lib32/libwdscsl.a
index 0743660..a044ae3 100644
--- a/x86_64-w64-mingw32/lib32/libwdscsl.a
+++ b/x86_64-w64-mingw32/lib32/libwdscsl.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libwdsimage.a b/x86_64-w64-mingw32/lib32/libwdsimage.a
index d099299..50cc9f0 100644
--- a/x86_64-w64-mingw32/lib32/libwdsimage.a
+++ b/x86_64-w64-mingw32/lib32/libwdsimage.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libwdstptc.a b/x86_64-w64-mingw32/lib32/libwdstptc.a
index fd3adcd..48e8ed2 100644
--- a/x86_64-w64-mingw32/lib32/libwdstptc.a
+++ b/x86_64-w64-mingw32/lib32/libwdstptc.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libwdsupgcompl.a b/x86_64-w64-mingw32/lib32/libwdsupgcompl.a
index 92ca0f6..de9e129 100644
--- a/x86_64-w64-mingw32/lib32/libwdsupgcompl.a
+++ b/x86_64-w64-mingw32/lib32/libwdsupgcompl.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libwdsutil.a b/x86_64-w64-mingw32/lib32/libwdsutil.a
index 4fda8c9..b03699b 100644
--- a/x86_64-w64-mingw32/lib32/libwdsutil.a
+++ b/x86_64-w64-mingw32/lib32/libwdsutil.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libwecapi.a b/x86_64-w64-mingw32/lib32/libwecapi.a
index 0f01d15..c5409cf 100644
--- a/x86_64-w64-mingw32/lib32/libwecapi.a
+++ b/x86_64-w64-mingw32/lib32/libwecapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libwer.a b/x86_64-w64-mingw32/lib32/libwer.a
index e996990..d807646 100644
--- a/x86_64-w64-mingw32/lib32/libwer.a
+++ b/x86_64-w64-mingw32/lib32/libwer.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libwevtapi.a b/x86_64-w64-mingw32/lib32/libwevtapi.a
index 73f4da9..b574a20 100644
--- a/x86_64-w64-mingw32/lib32/libwevtapi.a
+++ b/x86_64-w64-mingw32/lib32/libwevtapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libwevtfwd.a b/x86_64-w64-mingw32/lib32/libwevtfwd.a
index 3f6ddfc..b91f49f 100644
--- a/x86_64-w64-mingw32/lib32/libwevtfwd.a
+++ b/x86_64-w64-mingw32/lib32/libwevtfwd.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libwiadss.a b/x86_64-w64-mingw32/lib32/libwiadss.a
index 189d92d..58d1973 100644
--- a/x86_64-w64-mingw32/lib32/libwiadss.a
+++ b/x86_64-w64-mingw32/lib32/libwiadss.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libwin32k.a b/x86_64-w64-mingw32/lib32/libwin32k.a
index 7abebe9..fe3d6c1 100644
--- a/x86_64-w64-mingw32/lib32/libwin32k.a
+++ b/x86_64-w64-mingw32/lib32/libwin32k.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libwin32spl.a b/x86_64-w64-mingw32/lib32/libwin32spl.a
index fbaea37..a63295e 100644
--- a/x86_64-w64-mingw32/lib32/libwin32spl.a
+++ b/x86_64-w64-mingw32/lib32/libwin32spl.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libwindowscodecs.a b/x86_64-w64-mingw32/lib32/libwindowscodecs.a
index 8b51f76..73f9c34 100644
--- a/x86_64-w64-mingw32/lib32/libwindowscodecs.a
+++ b/x86_64-w64-mingw32/lib32/libwindowscodecs.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libwinhttp.a b/x86_64-w64-mingw32/lib32/libwinhttp.a
index f8b8bfc..cfdfd0b 100644
--- a/x86_64-w64-mingw32/lib32/libwinhttp.a
+++ b/x86_64-w64-mingw32/lib32/libwinhttp.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libwininet.a b/x86_64-w64-mingw32/lib32/libwininet.a
index 1801a03..235cbca 100644
--- a/x86_64-w64-mingw32/lib32/libwininet.a
+++ b/x86_64-w64-mingw32/lib32/libwininet.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libwinmm.a b/x86_64-w64-mingw32/lib32/libwinmm.a
index 53e5754..63224b2 100644
--- a/x86_64-w64-mingw32/lib32/libwinmm.a
+++ b/x86_64-w64-mingw32/lib32/libwinmm.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libwinpthread-1.dll b/x86_64-w64-mingw32/lib32/libwinpthread-1.dll
index 3aa88d7..5979688 100755
--- a/x86_64-w64-mingw32/lib32/libwinpthread-1.dll
+++ b/x86_64-w64-mingw32/lib32/libwinpthread-1.dll
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libwinpthread.a b/x86_64-w64-mingw32/lib32/libwinpthread.a
index 593ba58..4767d96 100644
--- a/x86_64-w64-mingw32/lib32/libwinpthread.a
+++ b/x86_64-w64-mingw32/lib32/libwinpthread.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libwinpthread.dll.a b/x86_64-w64-mingw32/lib32/libwinpthread.dll.a
index 082d8db..dbeac70 100755
--- a/x86_64-w64-mingw32/lib32/libwinpthread.dll.a
+++ b/x86_64-w64-mingw32/lib32/libwinpthread.dll.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libwinpthread.la b/x86_64-w64-mingw32/lib32/libwinpthread.la
index b2db6b9..28b5eb2 100755
--- a/x86_64-w64-mingw32/lib32/libwinpthread.la
+++ b/x86_64-w64-mingw32/lib32/libwinpthread.la
@@ -38,4 +38,4 @@
 dlpreopen=''
 
 # Directory that this library needs to be installed in:
-libdir='/usr/local/google/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/lib32'
+libdir='/buildbot/src/android/mingw/out/install/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/lib32'
diff --git a/x86_64-w64-mingw32/lib32/libwinscard.a b/x86_64-w64-mingw32/lib32/libwinscard.a
index 1b8a504..2da94aa 100644
--- a/x86_64-w64-mingw32/lib32/libwinscard.a
+++ b/x86_64-w64-mingw32/lib32/libwinscard.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libwinspool.a b/x86_64-w64-mingw32/lib32/libwinspool.a
index e5ad53b..98a038e 100644
--- a/x86_64-w64-mingw32/lib32/libwinspool.a
+++ b/x86_64-w64-mingw32/lib32/libwinspool.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libwinstrm.a b/x86_64-w64-mingw32/lib32/libwinstrm.a
index 5a73eca..4cba0b9 100644
--- a/x86_64-w64-mingw32/lib32/libwinstrm.a
+++ b/x86_64-w64-mingw32/lib32/libwinstrm.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libwintrust.a b/x86_64-w64-mingw32/lib32/libwintrust.a
index 71868e3..9cbc89d 100644
--- a/x86_64-w64-mingw32/lib32/libwintrust.a
+++ b/x86_64-w64-mingw32/lib32/libwintrust.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libwinusb.a b/x86_64-w64-mingw32/lib32/libwinusb.a
index 21b66e9..4639da9 100644
--- a/x86_64-w64-mingw32/lib32/libwinusb.a
+++ b/x86_64-w64-mingw32/lib32/libwinusb.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libwkscli.a b/x86_64-w64-mingw32/lib32/libwkscli.a
index 5e39ce0..30728a4 100644
--- a/x86_64-w64-mingw32/lib32/libwkscli.a
+++ b/x86_64-w64-mingw32/lib32/libwkscli.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libwlanapi.a b/x86_64-w64-mingw32/lib32/libwlanapi.a
index 214bebf..2cca4bb 100644
--- a/x86_64-w64-mingw32/lib32/libwlanapi.a
+++ b/x86_64-w64-mingw32/lib32/libwlanapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libwlanui.a b/x86_64-w64-mingw32/lib32/libwlanui.a
index 1375883..ddaa139 100644
--- a/x86_64-w64-mingw32/lib32/libwlanui.a
+++ b/x86_64-w64-mingw32/lib32/libwlanui.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libwlanutil.a b/x86_64-w64-mingw32/lib32/libwlanutil.a
index 4a67b37..881c022 100644
--- a/x86_64-w64-mingw32/lib32/libwlanutil.a
+++ b/x86_64-w64-mingw32/lib32/libwlanutil.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libwldap32.a b/x86_64-w64-mingw32/lib32/libwldap32.a
index 249b361..84ecc71 100644
--- a/x86_64-w64-mingw32/lib32/libwldap32.a
+++ b/x86_64-w64-mingw32/lib32/libwldap32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libwmcodecdspuuid.a b/x86_64-w64-mingw32/lib32/libwmcodecdspuuid.a
index c4bccef..9b6ffbc 100644
--- a/x86_64-w64-mingw32/lib32/libwmcodecdspuuid.a
+++ b/x86_64-w64-mingw32/lib32/libwmcodecdspuuid.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libwmilib.a b/x86_64-w64-mingw32/lib32/libwmilib.a
index c3f6970..ef51047 100644
--- a/x86_64-w64-mingw32/lib32/libwmilib.a
+++ b/x86_64-w64-mingw32/lib32/libwmilib.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libwow32.a b/x86_64-w64-mingw32/lib32/libwow32.a
index 78f2b36..7434413 100644
--- a/x86_64-w64-mingw32/lib32/libwow32.a
+++ b/x86_64-w64-mingw32/lib32/libwow32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libws2_32.a b/x86_64-w64-mingw32/lib32/libws2_32.a
index 50f17af..d8c4611 100644
--- a/x86_64-w64-mingw32/lib32/libws2_32.a
+++ b/x86_64-w64-mingw32/lib32/libws2_32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libwsdapi.a b/x86_64-w64-mingw32/lib32/libwsdapi.a
index c0051cb..67f7af4 100644
--- a/x86_64-w64-mingw32/lib32/libwsdapi.a
+++ b/x86_64-w64-mingw32/lib32/libwsdapi.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libwsnmp32.a b/x86_64-w64-mingw32/lib32/libwsnmp32.a
index afbc2e9..55a6f69 100644
--- a/x86_64-w64-mingw32/lib32/libwsnmp32.a
+++ b/x86_64-w64-mingw32/lib32/libwsnmp32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libwsock32.a b/x86_64-w64-mingw32/lib32/libwsock32.a
index 5c7f1d3..2afb9c8 100644
--- a/x86_64-w64-mingw32/lib32/libwsock32.a
+++ b/x86_64-w64-mingw32/lib32/libwsock32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libwst.a b/x86_64-w64-mingw32/lib32/libwst.a
index 423acc1..accda44 100644
--- a/x86_64-w64-mingw32/lib32/libwst.a
+++ b/x86_64-w64-mingw32/lib32/libwst.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libwtsapi32.a b/x86_64-w64-mingw32/lib32/libwtsapi32.a
index a9e26db..10bfa09 100644
--- a/x86_64-w64-mingw32/lib32/libwtsapi32.a
+++ b/x86_64-w64-mingw32/lib32/libwtsapi32.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libx3daudio.a b/x86_64-w64-mingw32/lib32/libx3daudio.a
index f009ac0..efa3e4c 100644
--- a/x86_64-w64-mingw32/lib32/libx3daudio.a
+++ b/x86_64-w64-mingw32/lib32/libx3daudio.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libx3daudio1_2.a b/x86_64-w64-mingw32/lib32/libx3daudio1_2.a
index 1d647f1..5d403ae 100644
--- a/x86_64-w64-mingw32/lib32/libx3daudio1_2.a
+++ b/x86_64-w64-mingw32/lib32/libx3daudio1_2.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libx3daudio1_3.a b/x86_64-w64-mingw32/lib32/libx3daudio1_3.a
index 27ee2c1..d5fe64f 100644
--- a/x86_64-w64-mingw32/lib32/libx3daudio1_3.a
+++ b/x86_64-w64-mingw32/lib32/libx3daudio1_3.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libx3daudio1_4.a b/x86_64-w64-mingw32/lib32/libx3daudio1_4.a
index 31036a8..b4fe7dc 100644
--- a/x86_64-w64-mingw32/lib32/libx3daudio1_4.a
+++ b/x86_64-w64-mingw32/lib32/libx3daudio1_4.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libx3daudio1_5.a b/x86_64-w64-mingw32/lib32/libx3daudio1_5.a
index 10b9e27..e89661e 100644
--- a/x86_64-w64-mingw32/lib32/libx3daudio1_5.a
+++ b/x86_64-w64-mingw32/lib32/libx3daudio1_5.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libx3daudio1_6.a b/x86_64-w64-mingw32/lib32/libx3daudio1_6.a
index fc1c312..dc72596 100644
--- a/x86_64-w64-mingw32/lib32/libx3daudio1_6.a
+++ b/x86_64-w64-mingw32/lib32/libx3daudio1_6.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libx3daudio1_7.a b/x86_64-w64-mingw32/lib32/libx3daudio1_7.a
index 29ee75e..241fa3c 100644
--- a/x86_64-w64-mingw32/lib32/libx3daudio1_7.a
+++ b/x86_64-w64-mingw32/lib32/libx3daudio1_7.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libx3daudiod1_7.a b/x86_64-w64-mingw32/lib32/libx3daudiod1_7.a
index bf32fd8..24e8787 100644
--- a/x86_64-w64-mingw32/lib32/libx3daudiod1_7.a
+++ b/x86_64-w64-mingw32/lib32/libx3daudiod1_7.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libxapofx.a b/x86_64-w64-mingw32/lib32/libxapofx.a
index dc1d6e3..08ab06d 100644
--- a/x86_64-w64-mingw32/lib32/libxapofx.a
+++ b/x86_64-w64-mingw32/lib32/libxapofx.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libxapofx1_0.a b/x86_64-w64-mingw32/lib32/libxapofx1_0.a
index 887e55e..ece50f7 100644
--- a/x86_64-w64-mingw32/lib32/libxapofx1_0.a
+++ b/x86_64-w64-mingw32/lib32/libxapofx1_0.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libxapofx1_1.a b/x86_64-w64-mingw32/lib32/libxapofx1_1.a
index 7f880fa..b925f11 100644
--- a/x86_64-w64-mingw32/lib32/libxapofx1_1.a
+++ b/x86_64-w64-mingw32/lib32/libxapofx1_1.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libxapofx1_2.a b/x86_64-w64-mingw32/lib32/libxapofx1_2.a
index e15695d..303011a 100644
--- a/x86_64-w64-mingw32/lib32/libxapofx1_2.a
+++ b/x86_64-w64-mingw32/lib32/libxapofx1_2.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libxapofx1_3.a b/x86_64-w64-mingw32/lib32/libxapofx1_3.a
index 009df9e..13b9133 100644
--- a/x86_64-w64-mingw32/lib32/libxapofx1_3.a
+++ b/x86_64-w64-mingw32/lib32/libxapofx1_3.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libxapofx1_4.a b/x86_64-w64-mingw32/lib32/libxapofx1_4.a
index 3b3d778..603b74f 100644
--- a/x86_64-w64-mingw32/lib32/libxapofx1_4.a
+++ b/x86_64-w64-mingw32/lib32/libxapofx1_4.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libxapofx1_5.a b/x86_64-w64-mingw32/lib32/libxapofx1_5.a
index 574d3e7..dfb2866 100644
--- a/x86_64-w64-mingw32/lib32/libxapofx1_5.a
+++ b/x86_64-w64-mingw32/lib32/libxapofx1_5.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libxapofxd1_5.a b/x86_64-w64-mingw32/lib32/libxapofxd1_5.a
index c23d214..b1c5914 100644
--- a/x86_64-w64-mingw32/lib32/libxapofxd1_5.a
+++ b/x86_64-w64-mingw32/lib32/libxapofxd1_5.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libxaudio2_8.a b/x86_64-w64-mingw32/lib32/libxaudio2_8.a
index 22762af..0ca145e 100644
--- a/x86_64-w64-mingw32/lib32/libxaudio2_8.a
+++ b/x86_64-w64-mingw32/lib32/libxaudio2_8.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libxinput.a b/x86_64-w64-mingw32/lib32/libxinput.a
index 8544e0c..453f4a1 100644
--- a/x86_64-w64-mingw32/lib32/libxinput.a
+++ b/x86_64-w64-mingw32/lib32/libxinput.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libxinput1_1.a b/x86_64-w64-mingw32/lib32/libxinput1_1.a
index 8d5f2b5..61e38e6 100644
--- a/x86_64-w64-mingw32/lib32/libxinput1_1.a
+++ b/x86_64-w64-mingw32/lib32/libxinput1_1.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libxinput1_2.a b/x86_64-w64-mingw32/lib32/libxinput1_2.a
index d2dca07..4c27a11 100644
--- a/x86_64-w64-mingw32/lib32/libxinput1_2.a
+++ b/x86_64-w64-mingw32/lib32/libxinput1_2.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libxinput1_3.a b/x86_64-w64-mingw32/lib32/libxinput1_3.a
index 0678b5e..713a61e 100644
--- a/x86_64-w64-mingw32/lib32/libxinput1_3.a
+++ b/x86_64-w64-mingw32/lib32/libxinput1_3.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libxinput1_4.a b/x86_64-w64-mingw32/lib32/libxinput1_4.a
index 82998b1..84e8c26 100644
--- a/x86_64-w64-mingw32/lib32/libxinput1_4.a
+++ b/x86_64-w64-mingw32/lib32/libxinput1_4.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/libxinput9_1_0.a b/x86_64-w64-mingw32/lib32/libxinput9_1_0.a
index db83c91..ff6891a 100644
--- a/x86_64-w64-mingw32/lib32/libxinput9_1_0.a
+++ b/x86_64-w64-mingw32/lib32/libxinput9_1_0.a
Binary files differ
diff --git a/x86_64-w64-mingw32/lib32/txtmode.o b/x86_64-w64-mingw32/lib32/txtmode.o
index 74e8cc5..47849cb 100644
--- a/x86_64-w64-mingw32/lib32/txtmode.o
+++ b/x86_64-w64-mingw32/lib32/txtmode.o
Binary files differ
